<?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>183131</bug_id>
          
          <creation_ts>2018-02-26 09:04:02 -0800</creation_ts>
          <short_desc>Support transferring ImageBitmap objects</short_desc>
          <delta_ts>2018-04-06 12:21:20 -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>Canvas</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>182424</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ms2ger (he/him; ⌚ UTC+1/+2)">Ms2ger</reporter>
          <assigned_to name="Ms2ger (he/him; ⌚ UTC+1/+2)">Ms2ger</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jsbell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1402062</commentid>
    <comment_count>0</comment_count>
    <who name="Ms2ger (he/him; ⌚ UTC+1/+2)">Ms2ger</who>
    <bug_when>2018-02-26 09:04:02 -0800</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402067</commentid>
    <comment_count>1</comment_count>
      <attachid>334620</attachid>
    <who name="Ms2ger (he/him; ⌚ UTC+1/+2)">Ms2ger</who>
    <bug_when>2018-02-26 09:13:36 -0800</bug_when>
    <thetext>Created attachment 334620
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402068</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-02-26 09:15:35 -0800</bug_when>
    <thetext>Attachment 334620 did not pass style-queue:


ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1787:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1788:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1814:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1815:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:3183:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 5 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402294</commentid>
    <comment_count>3</comment_count>
      <attachid>334675</attachid>
    <who name="Ms2ger (he/him; ⌚ UTC+1/+2)">Ms2ger</who>
    <bug_when>2018-02-26 23:45:09 -0800</bug_when>
    <thetext>Created attachment 334675
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402297</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-02-26 23:48:16 -0800</bug_when>
    <thetext>Attachment 334675 did not pass style-queue:


ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1787:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1788:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1814:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1815:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:3183:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 5 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409269</commentid>
    <comment_count>5</comment_count>
    <who name="Ms2ger (he/him; ⌚ UTC+1/+2)">Ms2ger</who>
    <bug_when>2018-03-26 05:16:46 -0700</bug_when>
    <thetext>Dino, could you take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412434</commentid>
    <comment_count>6</comment_count>
      <attachid>334675</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-06 12:20:41 -0700</bug_when>
    <thetext>Comment on attachment 334675
Patch

Clearing flags on attachment: 334675

Committed r230348: &lt;https://trac.webkit.org/changeset/230348&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412435</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-06 12:20:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412436</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-06 12:21:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/39245597&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334620</attachid>
            <date>2018-02-26 09:13:36 -0800</date>
            <delta_ts>2018-02-26 23:45:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183131-20180226181335.patch</filename>
            <type>text/plain</type>
            <size>26063</size>
            <attacher name="Ms2ger (he/him; ⌚ UTC+1/+2)">Ms2ger</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4ODE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjA0OGUwZWY2ODZjZDg2
YWUzYmJiZmFhZmFjZTE0MWVlZWRiNDUzMC4uZGFlM2M1ZjE2NjUyNjEwNjViZDlkYjFjYTkwMmE3
YTBkM2U1MDAyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE4LTAyLTI2ICBNczJn
ZXIgIDxNczJnZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBTdXBwb3J0IHRyYW5zZmVycmluZyBJ
bWFnZUJpdG1hcCBvYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODMxMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUZXN0OiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzLzJkY29udGV4
dC9pbWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC10cmFuc2Zlci5odG1sCisKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q2xvbmVTZXJpYWxpemVyOjpzZXJpYWxpemUpOiB0aHJlYWQgdGhyb3VnaCBJbWFnZUJpdG1h
cHMuCisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OkNsb25lU2VyaWFsaXplcik6
IHRocmVhZCB0aHJvdWdoIEltYWdlQml0bWFwcy4KKyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2Vy
aWFsaXplcjo6ZmlsbFRyYW5zZmVyTWFwKTogZG9uJ3QgcmVxdWlyZSBhIG11dGFibGUgcmVmZXJl
bmNlLgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVTZXJpYWxpemVyOjpkdW1wSW1hZ2VCaXRtYXAp
OiBhZGQuCisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmR1bXBJZlRlcm1pbmFs
KTogY2hlY2sgZm9yIEltYWdlQml0bWFwLgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVEZXNlcmlh
bGl6ZXI6OmRlc2VyaWFsaXplKTogdGhyZWFkIHRocm91Z2ggSW1hZ2VCaXRtYXBzLgorICAgICAg
ICAoV2ViQ29yZTo6Q2xvbmVEZXNlcmlhbGl6ZXI6OkNsb25lRGVzZXJpYWxpemVyKTogdGhyZWFk
IHRocm91Z2ggSW1hZ2VCaXRtYXBzLgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVEZXNlcmlhbGl6
ZXI6OnJlYWRJbWFnZUJpdG1hcCk6IGFkZC4KKyAgICAgICAgKFdlYkNvcmU6OkNsb25lRGVzZXJp
YWxpemVyOjpyZWFkVGVybWluYWwpOiBjaGVjayBmb3IgSW1hZ2VCaXRtYXAuCisgICAgICAgIChX
ZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk6IHRo
cmVhZCB0aHJvdWdoIEltYWdlQml0bWFwcy4KKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZTo6Y3JlYXRlKTogdGhyZWFkIHRocm91Z2ggSW1hZ2VCaXRtYXBzLgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGFpbnNEdXBsaWNhdGVzKTogYWRkLgorICAgICAgICAoV2ViQ29yZTo6
U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpkZXNlcmlhbGl6ZSk6IGhhbmRsZSBJbWFnZUJpdG1hcCBh
cmd1bWVudHMuCisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg6
IHVwZGF0ZSBzaWduYXR1cmVzLCBhZGQgbWVtYmVyLgorICAgICAgICAqIGh0bWwvSW1hZ2VCaXRt
YXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCaXRtYXA6OmNyZWF0ZSk6IGFkZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlQml0bWFwOjpkZXRhY2hCaXRtYXBzKTogYWRkLgorICAgICAg
ICAqIGh0bWwvSW1hZ2VCaXRtYXAuaDogYWRkIHNpZ25hdHVyZXMuCisKIDIwMTgtMDItMjAgIFBo
aWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFt
ZXJdW01pbmlCcm93c2VyXSBIb25vciBHU3RyZWFtZXIgY29tbWFuZCBsaW5lIHBhcmFtZXRlcnMg
aW4gTWluaUJyb3dzZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJp
YWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IGI4NTY5YTNkMTM2ZTMwZjQzYjI5MzJmYzU1YmNj
YjNkNmRiNTQzY2EuLjJlZmI1NzkzY2U0MWRiZjM0NWU5ZDEwM2NhMjY4ZjI3MDc1MzUyZGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZh
bHVlLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIkpTRE9NUmVjdC5oIgogI2luY2x1
ZGUgIkpTRmlsZS5oIgogI2luY2x1ZGUgIkpTRmlsZUxpc3QuaCIKKyNpbmNsdWRlICJKU0ltYWdl
Qml0bWFwLmgiCiAjaW5jbHVkZSAiSlNJbWFnZURhdGEuaCIKICNpbmNsdWRlICJKU01lc3NhZ2VQ
b3J0LmgiCiAjaW5jbHVkZSAiSlNOYXZpZ2F0b3IuaCIKQEAgLTE2MCw2ICsxNjEsNyBAQCBlbnVt
IFNlcmlhbGl6YXRpb25UYWcgewogICAgIERPTU1hdHJpeFJlYWRPbmx5VGFnID0gNDAsCiAgICAg
RE9NTWF0cml4VGFnID0gNDEsCiAgICAgRE9NUXVhZFRhZyA9IDQyLAorICAgIEltYWdlQml0bWFw
VHJhbnNmZXJUYWcgPSA0MywKICAgICBFcnJvclRhZyA9IDI1NQogfTsKIApAQCAtMzM5LDYgKzM0
MSw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJpbmdEYXRhSXM4Qml0RmxhZyA9IDB4ODAw
MDAwMDA7CiAgKiAgICB8IERPTVJlY3QKICAqICAgIHwgRE9NTWF0cml4CiAgKiAgICB8IERPTVF1
YWQKKyAqICAgIHwgSW1hZ2VCaXRtYXBUcmFuc2ZlclRhZyA8dmFsdWU6dWludDMyX3Q+CiAgKgog
ICogSW5zaWRlIHdyYXBwZWQgY3J5cHRvIGtleSwgZGF0YSBpcyBzZXJpYWxpemVkIGluIHRoaXMg
Zm9ybWF0OgogICoKQEAgLTUzMCwxMyArNTMzLDEzIEBAIHRlbXBsYXRlIDw+IGJvb2wgd3JpdGVM
aXR0bGVFbmRpYW48dWludDhfdD4oVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIsIGNvbnN0IHVpbnQ4
CiAKIGNsYXNzIENsb25lU2VyaWFsaXplciA6IENsb25lQmFzZSB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFNlcmlhbGl6YXRpb25SZXR1cm5Db2RlIHNlcmlhbGl6ZShFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgdmFsdWUsIFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiYgbWVzc2FnZVBvcnRzLCBW
ZWN0b3I8UmVmUHRyPEpTQzo6QXJyYXlCdWZmZXI+PiYgYXJyYXlCdWZmZXJzLAorICAgIHN0YXRp
YyBTZXJpYWxpemF0aW9uUmV0dXJuQ29kZSBzZXJpYWxpemUoRXhlY1N0YXRlKiBleGVjLCBKU1Zh
bHVlIHZhbHVlLCBWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0Pj4mIG1lc3NhZ2VQb3J0cywgVmVj
dG9yPFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPj4mIGFycmF5QnVmZmVycywgY29uc3QgVmVjdG9y
PFJlZlB0cjxJbWFnZUJpdG1hcD4+JiBpbWFnZUJpdG1hcHMsCiAjaWYgRU5BQkxFKFdFQkFTU0VN
QkxZKQogICAgICAgICAgICAgV2FzbU1vZHVsZUFycmF5JiB3YXNtTW9kdWxlcywKICNlbmRpZgog
ICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBWZWN0b3I8dWludDhfdD4mIG91
dCwgU2VyaWFsaXphdGlvbkNvbnRleHQgY29udGV4dCwgQXJyYXlCdWZmZXJDb250ZW50c0FycmF5
JiBzaGFyZWRCdWZmZXJzKQogICAgIHsKLSAgICAgICAgQ2xvbmVTZXJpYWxpemVyIHNlcmlhbGl6
ZXIoZXhlYywgbWVzc2FnZVBvcnRzLCBhcnJheUJ1ZmZlcnMsCisgICAgICAgIENsb25lU2VyaWFs
aXplciBzZXJpYWxpemVyKGV4ZWMsIG1lc3NhZ2VQb3J0cywgYXJyYXlCdWZmZXJzLCBpbWFnZUJp
dG1hcHMsCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICAgICAgICAgd2FzbU1vZHVsZXMs
CiAjZW5kaWYKQEAgLTU2Myw3ICs1NjYsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHR5cGVk
ZWYgSGFzaE1hcDxKU09iamVjdCosIHVpbnQzMl90PiBPYmplY3RQb29sOwogCi0gICAgQ2xvbmVT
ZXJpYWxpemVyKEV4ZWNTdGF0ZSogZXhlYywgVmVjdG9yPFJlZlB0cjxNZXNzYWdlUG9ydD4+JiBt
ZXNzYWdlUG9ydHMsIFZlY3RvcjxSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4+JiBhcnJheUJ1ZmZl
cnMsCisgICAgQ2xvbmVTZXJpYWxpemVyKEV4ZWNTdGF0ZSogZXhlYywgVmVjdG9yPFJlZlB0cjxN
ZXNzYWdlUG9ydD4+JiBtZXNzYWdlUG9ydHMsIFZlY3RvcjxSZWZQdHI8SlNDOjpBcnJheUJ1ZmZl
cj4+JiBhcnJheUJ1ZmZlcnMsIGNvbnN0IFZlY3RvcjxSZWZQdHI8SW1hZ2VCaXRtYXA+PiYgaW1h
Z2VCaXRtYXBzLAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAgICAgICAgIFdhc21Nb2R1
bGVBcnJheSYgd2FzbU1vZHVsZXMsCiAjZW5kaWYKQEAgLTU4MSwxMCArNTg0LDExIEBAIHByaXZh
dGU6CiAgICAgICAgIHdyaXRlKEN1cnJlbnRWZXJzaW9uKTsKICAgICAgICAgZmlsbFRyYW5zZmVy
TWFwKG1lc3NhZ2VQb3J0cywgbV90cmFuc2ZlcnJlZE1lc3NhZ2VQb3J0cyk7CiAgICAgICAgIGZp
bGxUcmFuc2Zlck1hcChhcnJheUJ1ZmZlcnMsIG1fdHJhbnNmZXJyZWRBcnJheUJ1ZmZlcnMpOwor
ICAgICAgICBmaWxsVHJhbnNmZXJNYXAoaW1hZ2VCaXRtYXBzLCBtX3RyYW5zZmVycmVkSW1hZ2VC
aXRtYXBzKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KLSAgICB2b2lkIGZpbGxU
cmFuc2Zlck1hcChWZWN0b3I8UmVmUHRyPFQ+PiYgaW5wdXQsIE9iamVjdFBvb2wmIHJlc3VsdCkK
KyAgICB2b2lkIGZpbGxUcmFuc2Zlck1hcChjb25zdCBWZWN0b3I8UmVmUHRyPFQ+PiYgaW5wdXQs
IE9iamVjdFBvb2wmIHJlc3VsdCkKICAgICB7CiAgICAgICAgIGlmIChpbnB1dC5pc0VtcHR5KCkp
CiAgICAgICAgICAgICByZXR1cm47CkBAIC04NzIsNiArODc2LDE5IEBAIHByaXZhdGU6CiAgICAg
ICAgIGR1bXBET01Qb2ludChxdWFkLnA0KCkpOwogICAgIH0KIAorICAgIHZvaWQgZHVtcEltYWdl
Qml0bWFwKEpTT2JqZWN0KiBvYmosIFNlcmlhbGl6YXRpb25SZXR1cm5Db2RlJiBjb2RlKQorICAg
IHsKKyAgICAgICAgYXV0byBpbmRleCA9IG1fdHJhbnNmZXJyZWRJbWFnZUJpdG1hcHMuZmluZChv
YmopOworICAgICAgICBpZiAoaW5kZXggIT0gbV90cmFuc2ZlcnJlZEltYWdlQml0bWFwcy5lbmQo
KSkgeworICAgICAgICAgICAgd3JpdGUoSW1hZ2VCaXRtYXBUcmFuc2ZlclRhZyk7CisgICAgICAg
ICAgICB3cml0ZShpbmRleC0+dmFsdWUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgLy8gQ29weWluZyBJbWFnZUJpdG1hcHMgaXMgbm90IHlldCBzdXBwb3J0ZWQu
CisgICAgICAgIGNvZGUgPSBTZXJpYWxpemF0aW9uUmV0dXJuQ29kZTo6VmFsaWRhdGlvbkVycm9y
OworICAgIH0KKwogICAgIGJvb2wgZHVtcElmVGVybWluYWwoSlNWYWx1ZSB2YWx1ZSwgU2VyaWFs
aXphdGlvblJldHVybkNvZGUmIGNvZGUpCiAgICAgewogICAgICAgICBpZiAoIXZhbHVlLmlzQ2Vs
bCgpKSB7CkBAIC0xMDY3LDYgKzEwODQsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBk
dW1wRE9NUXVhZChvYmopOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAg
ICAgfQorICAgICAgICAgICAgaWYgKG9iai0+aW5oZXJpdHModm0sIEpTSW1hZ2VCaXRtYXA6Omlu
Zm8oKSkpIHsKKyAgICAgICAgICAgICAgICBkdW1wSW1hZ2VCaXRtYXAob2JqLCBjb2RlKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICAvLyBBbnkgb3RoZXIgdHlwZXMgYXJlIGV4
cGVjdGVkIHRvIHNlcmlhbGl6ZSBhcyBudWxsLgpAQCAtMTQxMiw2ICsxNDMzLDcgQEAgcHJpdmF0
ZToKICAgICBPYmplY3RQb29sIG1fb2JqZWN0UG9vbDsKICAgICBPYmplY3RQb29sIG1fdHJhbnNm
ZXJyZWRNZXNzYWdlUG9ydHM7CiAgICAgT2JqZWN0UG9vbCBtX3RyYW5zZmVycmVkQXJyYXlCdWZm
ZXJzOworICAgIE9iamVjdFBvb2wgbV90cmFuc2ZlcnJlZEltYWdlQml0bWFwczsKICAgICB0eXBl
ZGVmIEhhc2hNYXA8UmVmUHRyPFVuaXF1ZWRTdHJpbmdJbXBsPiwgdWludDMyX3QsIElkZW50aWZp
ZXJSZXBIYXNoPiBTdHJpbmdDb25zdGFudFBvb2w7CiAgICAgU3RyaW5nQ29uc3RhbnRQb29sIG1f
Y29uc3RhbnRQb29sOwogICAgIElkZW50aWZpZXIgbV9lbXB0eUlkZW50aWZpZXI7CkBAIC0xNjkx
LDcgKzE3MTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBzdHI7CiAgICAgfQogCi0gICAg
c3RhdGljIERlc2VyaWFsaXphdGlvblJlc3VsdCBkZXNlcmlhbGl6ZShFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFZlY3RvcjxSZWZQdHI8TWVzc2Fn
ZVBvcnQ+PiYgbWVzc2FnZVBvcnRzLCBBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkqIGFycmF5QnVm
ZmVyQ29udGVudHNBcnJheSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBibG9iVVJMcywgY29uc3QgVmVjdG9yPFN0cmluZz4gYmxvYkZpbGVQYXRo
cywgQXJyYXlCdWZmZXJDb250ZW50c0FycmF5KiBzaGFyZWRCdWZmZXJzCisgICAgc3RhdGljIERl
c2VyaWFsaXphdGlvblJlc3VsdCBkZXNlcmlhbGl6ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiYg
bWVzc2FnZVBvcnRzLCBWZWN0b3I8c3RkOjpwYWlyPHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZl
cj4sIGJvb2w+PiYmIGltYWdlQnVmZmVycywgQXJyYXlCdWZmZXJDb250ZW50c0FycmF5KiBhcnJh
eUJ1ZmZlckNvbnRlbnRzQXJyYXksIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgYnVmZmVyLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+IGJsb2JGaWxl
UGF0aHMsIEFycmF5QnVmZmVyQ29udGVudHNBcnJheSogc2hhcmVkQnVmZmVycwogI2lmIEVOQUJM
RShXRUJBU1NFTUJMWSkKICAgICAgICAgLCBXYXNtTW9kdWxlQXJyYXkqIHdhc21Nb2R1bGVzCiAj
ZW5kaWYKQEAgLTE2OTksNyArMTcyMSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIGlmICgh
YnVmZmVyLnNpemUoKSkKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihqc051bGwo
KSwgU2VyaWFsaXphdGlvblJldHVybkNvZGU6OlVuc3BlY2lmaWVkRXJyb3IpOwotICAgICAgICBD
bG9uZURlc2VyaWFsaXplciBkZXNlcmlhbGl6ZXIoZXhlYywgZ2xvYmFsT2JqZWN0LCBtZXNzYWdl
UG9ydHMsIGFycmF5QnVmZmVyQ29udGVudHNBcnJheSwgYnVmZmVyLCBibG9iVVJMcywgYmxvYkZp
bGVQYXRocywgc2hhcmVkQnVmZmVycworICAgICAgICBDbG9uZURlc2VyaWFsaXplciBkZXNlcmlh
bGl6ZXIoZXhlYywgZ2xvYmFsT2JqZWN0LCBtZXNzYWdlUG9ydHMsIGFycmF5QnVmZmVyQ29udGVu
dHNBcnJheSwgYnVmZmVyLCBibG9iVVJMcywgYmxvYkZpbGVQYXRocywgc2hhcmVkQnVmZmVycywg
V1RGTW92ZShpbWFnZUJ1ZmZlcnMpCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICAgICAg
ICAgLCB3YXNtTW9kdWxlcwogI2VuZGlmCkBAIC0xNzQ4LDcgKzE3NzAsNyBAQCBwcml2YXRlOgog
ICAgICAgICBzaXplX3QgbV9pbmRleDsKICAgICB9OwogCi0gICAgQ2xvbmVEZXNlcmlhbGl6ZXIo
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBWZWN0
b3I8UmVmUHRyPE1lc3NhZ2VQb3J0Pj4mIG1lc3NhZ2VQb3J0cywgQXJyYXlCdWZmZXJDb250ZW50
c0FycmF5KiBhcnJheUJ1ZmZlckNvbnRlbnRzLAorICAgIENsb25lRGVzZXJpYWxpemVyKEV4ZWNT
dGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgVmVjdG9yPFJl
ZlB0cjxNZXNzYWdlUG9ydD4+JiBtZXNzYWdlUG9ydHMsIEFycmF5QnVmZmVyQ29udGVudHNBcnJh
eSogYXJyYXlCdWZmZXJDb250ZW50cywgVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnVuaXF1ZV9wdHI8
SW1hZ2VCdWZmZXI+LCBib29sPj4mJiBpbWFnZUJ1ZmZlcnMsCiAjaWYgRU5BQkxFKFdFQkFTU0VN
QkxZKQogICAgICAgICBXYXNtTW9kdWxlQXJyYXkqIHdhc21Nb2R1bGVzLAogI2VuZGlmCkBAIC0x
NzYyLDYgKzE3ODQsOCBAQCBwcml2YXRlOgogICAgICAgICAsIG1fbWVzc2FnZVBvcnRzKG1lc3Nh
Z2VQb3J0cykKICAgICAgICAgLCBtX2FycmF5QnVmZmVyQ29udGVudHMoYXJyYXlCdWZmZXJDb250
ZW50cykKICAgICAgICAgLCBtX2FycmF5QnVmZmVycyhhcnJheUJ1ZmZlckNvbnRlbnRzID8gYXJy
YXlCdWZmZXJDb250ZW50cy0+c2l6ZSgpIDogMCkKKyAgICAgICAgLCBtX2ltYWdlQnVmZmVycyhX
VEZNb3ZlKGltYWdlQnVmZmVycykpCisgICAgICAgICwgbV9pbWFnZUJpdG1hcHMobV9pbWFnZUJ1
ZmZlcnMuc2l6ZSgpKQogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAgICAgLCBtX3dhc21N
b2R1bGVzKHdhc21Nb2R1bGVzKQogI2VuZGlmCkBAIC0xNzcwLDcgKzE3OTQsNyBAQCBwcml2YXRl
OgogICAgICAgICAgICAgbV92ZXJzaW9uID0gMHhGRkZGRkZGRjsKICAgICB9CiAKLSAgICBDbG9u
ZURlc2VyaWFsaXplcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIGNvbnN0IFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiYgbWVzc2FnZVBvcnRzLCBBcnJh
eUJ1ZmZlckNvbnRlbnRzQXJyYXkqIGFycmF5QnVmZmVyQ29udGVudHMsIGNvbnN0IFZlY3Rvcjx1
aW50OF90PiYgYnVmZmVyLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+IGJsb2JGaWxlUGF0aHMsIEFycmF5QnVmZmVyQ29udGVudHNBcnJheSogc2hh
cmVkQnVmZmVycworICAgIENsb25lRGVzZXJpYWxpemVyKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgVmVjdG9yPFJlZlB0cjxNZXNzYWdlUG9ydD4+
JiBtZXNzYWdlUG9ydHMsIEFycmF5QnVmZmVyQ29udGVudHNBcnJheSogYXJyYXlCdWZmZXJDb250
ZW50cywgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBibG9iVVJMcywgY29uc3QgVmVjdG9yPFN0cmluZz4gYmxvYkZpbGVQYXRocywgQXJyYXlCdWZm
ZXJDb250ZW50c0FycmF5KiBzaGFyZWRCdWZmZXJzLCBWZWN0b3I8c3RkOjpwYWlyPHN0ZDo6dW5p
cXVlX3B0cjxJbWFnZUJ1ZmZlcj4sIGJvb2w+PiYmIGltYWdlQnVmZmVycwogI2lmIEVOQUJMRShX
RUJBU1NFTUJMWSkKICAgICAgICAgLCBXYXNtTW9kdWxlQXJyYXkqIHdhc21Nb2R1bGVzCiAjZW5k
aWYKQEAgLTE3ODcsNiArMTgxMSw4IEBAIHByaXZhdGU6CiAgICAgICAgICwgbV9ibG9iVVJMcyhi
bG9iVVJMcykKICAgICAgICAgLCBtX2Jsb2JGaWxlUGF0aHMoYmxvYkZpbGVQYXRocykKICAgICAg
ICAgLCBtX3NoYXJlZEJ1ZmZlcnMoc2hhcmVkQnVmZmVycykKKyAgICAgICAgLCBtX2ltYWdlQnVm
ZmVycyhXVEZNb3ZlKGltYWdlQnVmZmVycykpCisgICAgICAgICwgbV9pbWFnZUJpdG1hcHMobV9p
bWFnZUJ1ZmZlcnMuc2l6ZSgpKQogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAgICAgLCBt
X3dhc21Nb2R1bGVzKHdhc21Nb2R1bGVzKQogI2VuZGlmCkBAIC0yNjAxLDYgKzI2MjcsMjIgQEAg
cHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHRvSlNOZXdseUNyZWF0ZWQobV9leGVjLCBqc0Nhc3Q8
SlNET01HbG9iYWxPYmplY3QqPihtX2dsb2JhbE9iamVjdCksIERPTVF1YWQ6OmNyZWF0ZShwMS52
YWx1ZSgpLCBwMi52YWx1ZSgpLCBwMy52YWx1ZSgpLCBwNC52YWx1ZSgpKSk7CiAgICAgfQogCisg
ICAgSlNWYWx1ZSByZWFkSW1hZ2VCaXRtYXAoKQorICAgIHsKKyAgICAgICAgdWludDMyX3QgaW5k
ZXg7CisgICAgICAgIGJvb2wgaW5kZXhTdWNjZXNzZnVsbHlSZWFkID0gcmVhZChpbmRleCk7Cisg
ICAgICAgIGlmICghaW5kZXhTdWNjZXNzZnVsbHlSZWFkIHx8IGluZGV4ID49IG1faW1hZ2VCdWZm
ZXJzLnNpemUoKSkgeworICAgICAgICAgICAgZmFpbCgpOworICAgICAgICAgICAgcmV0dXJuIEpT
VmFsdWUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghbV9pbWFnZUJpdG1hcHNbaW5kZXhd
KQorICAgICAgICAgICAgbV9pbWFnZUJpdG1hcHNbaW5kZXhdID0gSW1hZ2VCaXRtYXA6OmNyZWF0
ZShXVEZNb3ZlKG1faW1hZ2VCdWZmZXJzLmF0KGluZGV4KSkpOworCisgICAgICAgIGF1dG8gYml0
bWFwID0gbV9pbWFnZUJpdG1hcHNbaW5kZXhdLmdldCgpOworICAgICAgICByZXR1cm4gZ2V0SlNW
YWx1ZShiaXRtYXApOworICAgIH0KKwogICAgIEpTVmFsdWUgcmVhZFRlcm1pbmFsKCkKICAgICB7
CiAgICAgICAgIFNlcmlhbGl6YXRpb25UYWcgdGFnID0gcmVhZFRhZygpOwpAQCAtMjg4OSw2ICsy
OTMxLDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybiByZWFkRE9NTWF0cml4PERPTU1h
dHJpeD4oKTsKICAgICAgICAgY2FzZSBET01RdWFkVGFnOgogICAgICAgICAgICAgcmV0dXJuIHJl
YWRET01RdWFkKCk7CisgICAgICAgIGNhc2UgSW1hZ2VCaXRtYXBUcmFuc2ZlclRhZzoKKyAgICAg
ICAgICAgIHJldHVybiByZWFkSW1hZ2VCaXRtYXAoKTsKICAgICAgICAgZGVmYXVsdDoKICAgICAg
ICAgICAgIG1fcHRyLS07IC8vIFB1c2ggdGhlIHRhZyBiYWNrCiAgICAgICAgICAgICByZXR1cm4g
SlNWYWx1ZSgpOwpAQCAtMjkxNiw2ICsyOTYwLDggQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8U3Ry
aW5nPiBtX2Jsb2JVUkxzOwogICAgIFZlY3RvcjxTdHJpbmc+IG1fYmxvYkZpbGVQYXRoczsKICAg
ICBBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkqIG1fc2hhcmVkQnVmZmVyczsKKyAgICBWZWN0b3I8
c3RkOjpwYWlyPHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4sIGJvb2w+PiBtX2ltYWdlQnVm
ZmVyczsKKyAgICBWZWN0b3I8UmVmUHRyPEltYWdlQml0bWFwPj4gbV9pbWFnZUJpdG1hcHM7CiAj
aWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgIFdhc21Nb2R1bGVBcnJheSogbV93YXNtTW9kdWxl
czsKICNlbmRpZgpAQCAtMzEyNiw3ICszMTcyLDcgQEAgU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpT
ZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVpbnQ4X3Q+JiYgYnVmZmVyKQogewogfQogCi1T
ZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dWludDhf
dD4mJiBidWZmZXIsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgc3RkOjp1bmlxdWVf
cHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4gYXJyYXlCdWZmZXJDb250ZW50c0FycmF5LCBz
dGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5PiBzaGFyZWRCdWZmZXJDb250
ZW50c0FycmF5CitTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShW
ZWN0b3I8dWludDhfdD4mJiBidWZmZXIsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywg
c3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4gYXJyYXlCdWZmZXJDb250
ZW50c0FycmF5LCBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5PiBzaGFy
ZWRCdWZmZXJDb250ZW50c0FycmF5LCBWZWN0b3I8c3RkOjpwYWlyPHN0ZDo6dW5pcXVlX3B0cjxJ
bWFnZUJ1ZmZlcj4sIGJvb2w+PiYmIGltYWdlQnVmZmVycwogI2lmIEVOQUJMRShXRUJBU1NFTUJM
WSkKICAgICAgICAgLCBzdGQ6OnVuaXF1ZV9wdHI8V2FzbU1vZHVsZUFycmF5PiB3YXNtTW9kdWxl
c0FycmF5CiAjZW5kaWYKQEAgLTMxMzQsNiArMzE4MCw3IEBAIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1aW50OF90PiYmIGJ1ZmZlciwgY29uc3Qg
VmVjCiAgICAgOiBtX2RhdGEoV1RGTW92ZShidWZmZXIpKQogICAgICwgbV9hcnJheUJ1ZmZlckNv
bnRlbnRzQXJyYXkoV1RGTW92ZShhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkpKQogICAgICwgbV9z
aGFyZWRCdWZmZXJDb250ZW50c0FycmF5KFdURk1vdmUoc2hhcmVkQnVmZmVyQ29udGVudHNBcnJh
eSkpCisgICAgLCBtX2ltYWdlQnVmZmVycyhXVEZNb3ZlKGltYWdlQnVmZmVycykpCiAjaWYgRU5B
QkxFKFdFQkFTU0VNQkxZKQogICAgICwgbV93YXNtTW9kdWxlc0FycmF5KFdURk1vdmUod2FzbU1v
ZHVsZXNBcnJheSkpCiAjZW5kaWYKQEAgLTMyMjAsMTIgKzMyNjcsMTMgQEAgUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoRXhlY1N0YXRl
JiBleGVjLCBKU1YKICAgICBWZWN0b3I8dWludDhfdD4gYnVmZmVyOwogICAgIFZlY3RvcjxTdHJp
bmc+IGJsb2JVUkxzOwogICAgIFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiBkdW1teU1lc3Nh
Z2VQb3J0czsKKyAgICBWZWN0b3I8UmVmUHRyPEltYWdlQml0bWFwPj4gZHVtbXlJbWFnZUJpdG1h
cHM7CiAgICAgVmVjdG9yPFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPj4gZHVtbXlBcnJheUJ1ZmZl
cnM7CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgIFdhc21Nb2R1bGVBcnJheSBkdW1teU1v
ZHVsZXM7CiAjZW5kaWYKICAgICBBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkgZHVtbXlTaGFyZWRC
dWZmZXJzOwotICAgIGF1dG8gY29kZSA9IENsb25lU2VyaWFsaXplcjo6c2VyaWFsaXplKCZleGVj
LCB2YWx1ZSwgZHVtbXlNZXNzYWdlUG9ydHMsIGR1bW15QXJyYXlCdWZmZXJzLAorICAgIGF1dG8g
Y29kZSA9IENsb25lU2VyaWFsaXplcjo6c2VyaWFsaXplKCZleGVjLCB2YWx1ZSwgZHVtbXlNZXNz
YWdlUG9ydHMsIGR1bW15QXJyYXlCdWZmZXJzLCBkdW1teUltYWdlQml0bWFwcywKICNpZiBFTkFC
TEUoV0VCQVNTRU1CTFkpCiAgICAgICAgIGR1bW15TW9kdWxlcywKICNlbmRpZgpAQCAtMzI0MSwx
NyArMzI4OSwyOCBAQCBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVkU2Ny
aXB0VmFsdWU6OmNyZWF0ZShFeGVjU3RhdGUmIGV4ZWMsIEpTVgogICAgIGlmIChjb2RlICE9IFNl
cmlhbGl6YXRpb25SZXR1cm5Db2RlOjpTdWNjZXNzZnVsbHlDb21wbGV0ZWQpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFNjcmlw
dFZhbHVlKFdURk1vdmUoYnVmZmVyKSwgYmxvYlVSTHMsIG51bGxwdHIsIG51bGxwdHIKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoV1RGTW92ZShidWZmZXIp
LCBibG9iVVJMcywgbnVsbHB0ciwgbnVsbHB0ciwgeyB9CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZ
KQogICAgICAgICAsIG51bGxwdHIKICNlbmRpZgogICAgICAgICAgICAgKSk7CiB9CiAKK3N0YXRp
YyBib29sIGNvbnRhaW5zRHVwbGljYXRlcyhjb25zdCBWZWN0b3I8UmVmUHRyPEltYWdlQml0bWFw
Pj4mIGltYWdlQml0bWFwcykKK3sKKyAgICBIYXNoU2V0PEltYWdlQml0bWFwKj4gdmlzaXRlZDsK
KyAgICBmb3IgKGF1dG8mIGltYWdlQml0bWFwIDogaW1hZ2VCaXRtYXBzKSB7CisgICAgICAgIGlm
ICghdmlzaXRlZC5hZGQoaW1hZ2VCaXRtYXAuZ2V0KCkpKQorICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwogRXhjZXB0aW9uT3I8UmVmPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4+IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKEV4ZWNTdGF0
ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUsIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0
Pj4mJiB0cmFuc2Zlckxpc3QsIFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiYgbWVzc2FnZVBv
cnRzLCBTZXJpYWxpemF0aW9uQ29udGV4dCBjb250ZXh0KQogewogICAgIFZNJiB2bSA9IHN0YXRl
LnZtKCk7CiAgICAgVmVjdG9yPFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPj4gYXJyYXlCdWZmZXJz
OworICAgIFZlY3RvcjxSZWZQdHI8SW1hZ2VCaXRtYXA+PiBpbWFnZUJpdG1hcHM7CiAgICAgZm9y
IChhdXRvJiB0cmFuc2ZlcmFibGUgOiB0cmFuc2Zlckxpc3QpIHsKICAgICAgICAgaWYgKGF1dG8g
YXJyYXlCdWZmZXIgPSB0b1Bvc3NpYmx5U2hhcmVkQXJyYXlCdWZmZXIodm0sIHRyYW5zZmVyYWJs
ZS5nZXQoKSkpIHsKICAgICAgICAgICAgIGlmIChhcnJheUJ1ZmZlci0+aXNOZXV0ZXJlZCgpKQpA
QCAtMzI3MCwxNiArMzMyOSwyNyBAQCBFeGNlcHRpb25PcjxSZWY8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPj4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoRXhlY1N0YXRlJgogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIH0KIAorICAgICAgICBpZiAoYXV0byBpbWFnZUJpdG1hcCA9
IEpTSW1hZ2VCaXRtYXA6OnRvV3JhcHBlZCh2bSwgdHJhbnNmZXJhYmxlLmdldCgpKSkgeworICAg
ICAgICAgICAgaWYgKGltYWdlQml0bWFwLT5pc0RldGFjaGVkKCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IERhdGFDbG9uZUVycm9yIH07CisKKyAgICAgICAgICAgIGltYWdl
Qml0bWFwcy5hcHBlbmQoV1RGTW92ZShpbWFnZUJpdG1hcCkpOworICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgIH0KKwogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRGF0YUNsb25lRXJy
b3IgfTsKICAgICB9CiAKKyAgICBpZiAoY29udGFpbnNEdXBsaWNhdGVzKGltYWdlQml0bWFwcykp
CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBEYXRhQ2xvbmVFcnJvciB9OworCiAgICAgVmVj
dG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKICAgICBWZWN0b3I8U3RyaW5nPiBibG9iVVJMczsKICNpZiBF
TkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgV2FzbU1vZHVsZUFycmF5IHdhc21Nb2R1bGVzOwogI2Vu
ZGlmCiAgICAgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4gc2hhcmVk
QnVmZmVycyA9IHN0ZDo6bWFrZV91bmlxdWU8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5PigpOwot
ICAgIGF1dG8gY29kZSA9IENsb25lU2VyaWFsaXplcjo6c2VyaWFsaXplKCZzdGF0ZSwgdmFsdWUs
IG1lc3NhZ2VQb3J0cywgYXJyYXlCdWZmZXJzLCAKKyAgICBhdXRvIGNvZGUgPSBDbG9uZVNlcmlh
bGl6ZXI6OnNlcmlhbGl6ZSgmc3RhdGUsIHZhbHVlLCBtZXNzYWdlUG9ydHMsIGFycmF5QnVmZmVy
cywgaW1hZ2VCaXRtYXBzLAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAgICAgd2FzbU1v
ZHVsZXMsIAogI2VuZGlmCkBAIC0zMjkyLDcgKzMzNjIsOSBAQCBFeGNlcHRpb25PcjxSZWY8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPj4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoRXhlY1N0
YXRlJgogICAgIGlmIChhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkuaGFzRXhjZXB0aW9uKCkpCiAg
ICAgICAgIHJldHVybiBhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkucmVsZWFzZUV4Y2VwdGlvbigp
OwogCi0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFdURk1v
dmUoYnVmZmVyKSwgYmxvYlVSTHMsIGFycmF5QnVmZmVyQ29udGVudHNBcnJheS5yZWxlYXNlUmV0
dXJuVmFsdWUoKSwgY29udGV4dCA9PSBTZXJpYWxpemF0aW9uQ29udGV4dDo6V29ya2VyUG9zdE1l
c3NhZ2UgPyBXVEZNb3ZlKHNoYXJlZEJ1ZmZlcnMpIDogbnVsbHB0cgorICAgIGF1dG8gaW1hZ2VC
dWZmZXJzID0gSW1hZ2VCaXRtYXA6OmRldGFjaEJpdG1hcHMoV1RGTW92ZShpbWFnZUJpdG1hcHMp
KTsKKworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShXVEZN
b3ZlKGJ1ZmZlciksIGJsb2JVUkxzLCBhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkucmVsZWFzZVJl
dHVyblZhbHVlKCksIGNvbnRleHQgPT0gU2VyaWFsaXphdGlvbkNvbnRleHQ6OldvcmtlclBvc3RN
ZXNzYWdlID8gV1RGTW92ZShzaGFyZWRCdWZmZXJzKSA6IG51bGxwdHIsIFdURk1vdmUoaW1hZ2VC
dWZmZXJzKQogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAgICAgICAgICAgICAsIHN0ZDo6
bWFrZV91bmlxdWU8V2FzbU1vZHVsZUFycmF5Pih3YXNtTW9kdWxlcykKICNlbmRpZgpAQCAtMzM0
NSw3ICszNDE3LDcgQEAgSlNWYWx1ZSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmRlc2VyaWFsaXpl
KEV4ZWNTdGF0ZSYgZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2IKIAogSlNWYWx1ZSBTZXJpYWxp
emVkU2NyaXB0VmFsdWU6OmRlc2VyaWFsaXplKEV4ZWNTdGF0ZSYgZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgY29uc3QgVmVjdG9yPFJlZlB0cjxNZXNzYWdlUG9ydD4+JiBtZXNz
YWdlUG9ydHMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgY29uc3QgVmVjdG9yPFN0
cmluZz4mIGJsb2JGaWxlUGF0aHMsIFNlcmlhbGl6YXRpb25FcnJvck1vZGUgdGhyb3dFeGNlcHRp
b25zKQogewotICAgIERlc2VyaWFsaXphdGlvblJlc3VsdCByZXN1bHQgPSBDbG9uZURlc2VyaWFs
aXplcjo6ZGVzZXJpYWxpemUoJmV4ZWMsIGdsb2JhbE9iamVjdCwgbWVzc2FnZVBvcnRzLCBtX2Fy
cmF5QnVmZmVyQ29udGVudHNBcnJheS5nZXQoKSwgbV9kYXRhLCBibG9iVVJMcywgYmxvYkZpbGVQ
YXRocywgbV9zaGFyZWRCdWZmZXJDb250ZW50c0FycmF5LmdldCgpCisgICAgRGVzZXJpYWxpemF0
aW9uUmVzdWx0IHJlc3VsdCA9IENsb25lRGVzZXJpYWxpemVyOjpkZXNlcmlhbGl6ZSgmZXhlYywg
Z2xvYmFsT2JqZWN0LCBtZXNzYWdlUG9ydHMsIFdURk1vdmUobV9pbWFnZUJ1ZmZlcnMpLCBtX2Fy
cmF5QnVmZmVyQ29udGVudHNBcnJheS5nZXQoKSwgbV9kYXRhLCBibG9iVVJMcywgYmxvYkZpbGVQ
YXRocywgbV9zaGFyZWRCdWZmZXJDb250ZW50c0FycmF5LmdldCgpCiAjaWYgRU5BQkxFKFdFQkFT
U0VNQkxZKQogICAgICAgICAsIG1fd2FzbU1vZHVsZXNBcnJheS5nZXQoKQogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCmlu
ZGV4IDU2ODY2YTdlYWQ3YjVkNTI5YzQ3OWIyZjllNTg1OWI3ZTZhMWY2ZWEuLjQzZDEzMDQzOTM5
ZWIzZjgzYjJmYWM1ODg2MDUwZTgzNzQzNjZmNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAj
cHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSAiSW1hZ2VC
dWZmZXIuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BcnJheUJ1ZmZlci5oPgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWUuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9TdHJvbmcuaD4KQEAgLTQ2LDYgKzQ3LDcgQEAgY2xhc3MgTW9kdWxlOwogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBJREJWYWx1ZTsKK2NsYXNzIEltYWdlQml0bWFwOwogY2xhc3MgTWVz
c2FnZVBvcnQ7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiBlbnVtIGNsYXNzIFNlcmlhbGl6YXRpb25S
ZXR1cm5Db2RlOwpAQCAtMTAzLDcgKzEwNSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBX
RUJDT1JFX0VYUE9SVCBTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVuc2lnbmVkIGNoYXI+
JiYpOwotICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dW5zaWduZWQgY2hhcj4mJiwg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZm
ZXJDb250ZW50c0FycmF5Piwgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJh
eT4gc2hhcmVkQnVmZmVycworICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dW5zaWdu
ZWQgY2hhcj4mJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBzdGQ6OnVuaXF1ZV9w
dHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5Piwgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVy
Q29udGVudHNBcnJheT4gc2hhcmVkQnVmZmVycywgVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnVuaXF1
ZV9wdHI8SW1hZ2VCdWZmZXI+LCBib29sPj4mJiBpbWFnZUJ1ZmZlcnMKICNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCiAgICAgICAgICwgc3RkOjp1bmlxdWVfcHRyPFdhc21Nb2R1bGVBcnJheT4KICNl
bmRpZgpAQCAtMTEyLDYgKzExNCw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPHVuc2lnbmVkIGNo
YXI+IG1fZGF0YTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5
PiBtX2FycmF5QnVmZmVyQ29udGVudHNBcnJheTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlC
dWZmZXJDb250ZW50c0FycmF5PiBtX3NoYXJlZEJ1ZmZlckNvbnRlbnRzQXJyYXk7CisgICAgVmVj
dG9yPHN0ZDo6cGFpcjxzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+LCBib29sPj4gbV9pbWFn
ZUJ1ZmZlcnM7CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxX
YXNtTW9kdWxlQXJyYXk+IG1fd2FzbU1vZHVsZXNBcnJheTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ltYWdlQml0bWFwLmNwcAppbmRleCBlMTBkM2I0ZTg3NGEwYmQ4M2NlMjBiNWYwYjgyMzc2ZmIz
MDlhYzZhLi42MDNmMThhNDlkZDY0YTA1NDYxMzAyNmI5MjRmZmFjNGI3MmQxOTQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ltYWdlQml0bWFwLmNwcApAQCAtNTksNiArNTksMTMgQEAgUmVmPEltYWdlQml0
bWFwPiBJbWFnZUJpdG1hcDo6Y3JlYXRlKEludFNpemUgc2l6ZSkKICAgICByZXR1cm4gY3JlYXRl
KEltYWdlQnVmZmVyOjpjcmVhdGUoRmxvYXRTaXplKHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQo
KSksIGJ1ZmZlclJlbmRlcmluZ01vZGUpKTsKIH0KIAorUmVmPEltYWdlQml0bWFwPiBJbWFnZUJp
dG1hcDo6Y3JlYXRlKHN0ZDo6cGFpcjxzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+LCBib29s
PiYmIGJ1ZmZlcikKK3sKKyAgICBhdXRvIGltYWdlQml0bWFwID0gY3JlYXRlKFdURk1vdmUoYnVm
ZmVyLmZpcnN0KSk7CisgICAgaW1hZ2VCaXRtYXAtPm1fb3JpZ2luQ2xlYW4gPSBidWZmZXIuc2Vj
b25kOworICAgIHJldHVybiBpbWFnZUJpdG1hcDsKK30KKwogUmVmPEltYWdlQml0bWFwPiBJbWFn
ZUJpdG1hcDo6Y3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4mJiBidWZmZXIpCiB7
CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW1hZ2VCaXRtYXAoV1RGTW92ZShidWZmZXIpKSk7
CkBAIC03Myw2ICs4MCwxNSBAQCB2b2lkIEltYWdlQml0bWFwOjpjcmVhdGVQcm9taXNlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsCiAgICAgKTsKIH0KIAor
VmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+LCBib29sPj4gSW1h
Z2VCaXRtYXA6OmRldGFjaEJpdG1hcHMoVmVjdG9yPFJlZlB0cjxJbWFnZUJpdG1hcD4+JiYgYml0
bWFwcykKK3sKKyAgICBWZWN0b3I8c3RkOjpwYWlyPHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZl
cj4sIGJvb2w+PiBidWZmZXJzOworICAgIGZvciAoYXV0byYgYml0bWFwIDogYml0bWFwcykKKyAg
ICAgICAgYnVmZmVycy5hcHBlbmQoc3RkOjptYWtlX3BhaXIoYml0bWFwLT50cmFuc2Zlck93bmVy
c2hpcEFuZENsb3NlKCksIGJpdG1hcC0+b3JpZ2luQ2xlYW4oKSkpOworICAgIHJldHVybiBidWZm
ZXJzOworfQorCisKIHZvaWQgSW1hZ2VCaXRtYXA6OmNyZWF0ZVByb21pc2UoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgSW1hZ2VCaXRtYXA6OlNvdXJjZSYm
IHNvdXJjZSwgSW1hZ2VCaXRtYXBPcHRpb25zJiYgb3B0aW9ucywgaW50IHN4LCBpbnQgc3ksIGlu
dCBzdywgaW50IHNoLCBJbWFnZUJpdG1hcDo6UHJvbWlzZSYmIHByb21pc2UpCiB7CiAgICAgLy8g
MS4gSWYgZWl0aGVyIHRoZSBzdyBvciBzaCBhcmd1bWVudHMgYXJlIHNwZWNpZmllZCBidXQgemVy
bywgcmV0dXJuIGEgcHJvbWlzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFn
ZUJpdG1hcC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5oCmluZGV4IDk1ZDQ5
YjdlYTZiNTAzOTQyNTdiMTgyMDFlYzM1ODg4YWU1ODc3MGIuLjc4ZjdjYmQ4MzdjNGUwYTNkYjY3
YzU3NTczNWZhMGQ0ZjAyNTFlODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1h
Z2VCaXRtYXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmgKQEAgLTY0
LDYgKzY0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGNyZWF0ZVByb21pc2UoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIFNvdXJjZSYmLCBJbWFnZUJpdG1hcE9wdGlvbnMmJiwgaW50IHN4
LCBpbnQgc3ksIGludCBzdywgaW50IHNoLCBQcm9taXNlJiYpOwogCiAgICAgc3RhdGljIFJlZjxJ
bWFnZUJpdG1hcD4gY3JlYXRlKEludFNpemUpOworICAgIHN0YXRpYyBSZWY8SW1hZ2VCaXRtYXA+
IGNyZWF0ZShzdGQ6OnBhaXI8c3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiwgYm9vbD4mJik7
CiAKICAgICB+SW1hZ2VCaXRtYXAoKTsKIApAQCAtNzksNiArODAsOCBAQCBwdWJsaWM6CiAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IHRyYW5zZmVyT3duZXJzaGlwQW5kQ2xvc2Uo
KTsKIAorICAgIHN0YXRpYyBWZWN0b3I8c3RkOjpwYWlyPHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1
ZmZlcj4sIGJvb2w+PiBkZXRhY2hCaXRtYXBzKFZlY3RvcjxSZWZQdHI8SW1hZ2VCaXRtYXA+PiYm
KTsKKwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUGVuZGluZ0ltYWdlQml0bWFwOwogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCAzNTJmMDM5NmM4NjhjYmNkOWEwNjY2MTgx
ODlmMWYyYjQwYmQzYWRiLi42NjJhOWJkMTYzMDVmOTViYzJlNDhmODI5OWE5YjAxMDc1OGJiNDYw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOC0w
Mi0yNiAgTXMyZ2VyICA8TXMyZ2VyQGlnYWxpYS5jb20+CisKKyAgICAgICAgU3VwcG9ydCB0cmFu
c2ZlcnJpbmcgSW1hZ2VCaXRtYXAgb2JqZWN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvMmRjb250ZXh0L2ltYWdl
Yml0bWFwL2NyZWF0ZUltYWdlQml0bWFwLXRyYW5zZmVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzLzJkY29udGV4dC9pbWFnZWJpdG1hcC9jcmVhdGVJ
bWFnZUJpdG1hcC10cmFuc2Zlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvMmRjb250ZXh0L2ltYWdlYml0bWFwL3RyYW5zZmVyLXdvcmtlci5qczogQWRkZWQuCisK
IDIwMTgtMDItMTkgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbV2ViIEFuaW1hdGlvbnNdIE1ha2UgS2V5ZnJhbWVFZmZlY3QgdGFyZ2V0IG51bGxhYmxlIGFu
ZCByZWFkLXdyaXRlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzLzJkY29udGV4dC9pbWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC10cmFu
c2Zlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzLzJkY29udGV4dC9pbWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC10cmFuc2Zlci1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDVkZDM3YmVlZDAwYTU3ODEyZDZjZTMzMTA3NDI5Zjkw
Njk1MTZkNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvMmRjb250ZXh0L2ltYWdlYml0bWFwL2NyZWF0ZUltYWdlQml0bWFwLXRy
YW5zZmVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACisKK1BBU1MgVHJhbnNmZXIgSW1h
Z2VCaXRtYXAgY3JlYXRlZCBmcm9tIGFuIEhUTUxDYW52YXNFbGVtZW50IAorUEFTUyBUcmFuc2Zl
ciBJbWFnZUJpdG1hcCBjcmVhdGVkIGZyb20gYW4gSFRNTFZpZGVvRWxlbWVudCAKK1BBU1MgVHJh
bnNmZXIgSW1hZ2VCaXRtYXAgY3JlYXRlZCBmcm9tIGFuIEhUTUxWaWRlb0VsZW1lbnQgZnJvbSBh
IGRhdGEgVVJMIAorUEFTUyBUcmFuc2ZlciBJbWFnZUJpdG1hcCBjcmVhdGVkIGZyb20gYSBiaXRt
YXAgSFRNTEltYWdlRWxlbWVudCAKK1BBU1MgVHJhbnNmZXIgSW1hZ2VCaXRtYXAgY3JlYXRlZCBm
cm9tIGEgdmVjdG9yIEhUTUxJbWFnZUVsZW1lbnQgCitGQUlMIFRyYW5zZmVyIEltYWdlQml0bWFw
IGNyZWF0ZWQgZnJvbSBhIGJpdG1hcCBTVkdJbWFnZUVsZW1lbnQgcHJvbWlzZV90ZXN0OiBVbmhh
bmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9y
IgorRkFJTCBUcmFuc2ZlciBJbWFnZUJpdG1hcCBjcmVhdGVkIGZyb20gYSB2ZWN0b3IgU1ZHSW1h
Z2VFbGVtZW50IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKK0ZBSUwgVHJhbnNmZXIgSW1hZ2VCaXRtYXAg
Y3JlYXRlZCBmcm9tIGFuIE9mZnNjcmVlbkNhbnZhcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCBy
ZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IG51bGwgaXMgbm90IGFuIG9i
amVjdCAoZXZhbHVhdGluZyAndGVzdEN0eC5maWxsU3R5bGUgPSAicmdiKDI1NSwgMCwgMCkiJyki
CitGQUlMIFRyYW5zZmVyIEltYWdlQml0bWFwIGNyZWF0ZWQgZnJvbSBhbiBJbWFnZURhdGEgcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVy
cm9yOiBjcmVhdGVJbWFnZUJpdG1hcCB3aXRoIEltYWdlRGF0YSBpcyBub3QgaW1wbGVtZW50ZWQi
CitQQVNTIFRyYW5zZmVyIEltYWdlQml0bWFwIGNyZWF0ZWQgZnJvbSBhbiBJbWFnZUJpdG1hcCAK
K0ZBSUwgVHJhbnNmZXIgSW1hZ2VCaXRtYXAgY3JlYXRlZCBmcm9tIGEgQmxvYiBwcm9taXNlX3Rl
c3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGNy
ZWF0ZUltYWdlQml0bWFwIHdpdGggQXJyYXlCdWZmZXIgb3IgQmxvYiBpcyBub3QgaW1wbGVtZW50
ZWQiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvMmRjb250ZXh0L2ltYWdlYml0bWFwL2NyZWF0ZUltYWdlQml0bWFwLXRyYW5zZmVyLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzLzJkY29udGV4
dC9pbWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC10cmFuc2Zlci5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmViZGEzOTViNzU4Mzg3ZTg2ODA5MmRjYzliZTZlZDhlYTUzZGZmZmQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzLzJkY29udGV4
dC9pbWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC10cmFuc2Zlci5odG1sCkBAIC0wLDAgKzEs
NDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5jcmVh
dGVJbWFnZUJpdG1hcCB0cmFuc2ZlcnJpbmcgdGVzdDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9t
ZWRpYS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9uYW1lc3BhY2VzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJjb21tb24uc3ViLmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9
bG9nPjwvZGl2PgorPHNjcmlwdD4KK2xldCB3b3JrZXIsIHRlc3RzID0ge307CitzZXR1cChmdW5j
dGlvbigpIHsKKyAgICB3b3JrZXIgPSBuZXcgV29ya2VyKCJ0cmFuc2Zlci13b3JrZXIuanMiKTsK
KyAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgICAgIGxldCB7IG5hbWUsIGJpdG1hcCB9ID0gZXZlbnQuZGF0YTsKKyAgICAgICAgdGVz
dHNbbmFtZV0oYml0bWFwKTsKKyAgICB9KTsKK30pOworCitmb3IgKGxldCB7IG5hbWUsIGZhY3Rv
cnkgfSBvZiBpbWFnZVNvdXJjZVR5cGVzKSB7CisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQp
IHsKKyAgICAgICAgbGV0IG1lc3NhZ2VfaGFuZGxlciA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJl
c29sdmUpIHsKKyAgICAgICAgICAgIHRlc3RzW3QubmFtZV0gPSByZXNvbHZlOworICAgICAgICB9
KTsKKyAgICAgICAgcmV0dXJuIGZhY3RvcnkoKS50aGVuKGNyZWF0ZUltYWdlQml0bWFwKS50aGVu
KGZ1bmN0aW9uKGJpdG1hcCkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhiaXRtYXAud2lk
dGgsIDIwKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoYml0bWFwLmhlaWdodCwgMjApOwor
CisgICAgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoeyBuYW1lOiB0Lm5hbWUsIGJpdG1hcDog
Yml0bWFwIH0sIFtiaXRtYXBdKTsKKworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhiaXRtYXAu
d2lkdGgsIDApOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhiaXRtYXAuaGVpZ2h0LCAwKTsK
KworICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2VfaGFuZGxlcjsKKyAgICAgICAgfSkudGhlbihm
dW5jdGlvbihiaXRtYXApIHsKKyAgICAgICAgICAgIGFzc2VydF9jbGFzc19zdHJpbmcoYml0bWFw
LCAiSW1hZ2VCaXRtYXAiKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoYml0bWFwLndpZHRo
LCAyMCk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJpdG1hcC5oZWlnaHQsIDIwKTsKKyAg
ICAgICAgfSk7CisgICAgfSwgYFRyYW5zZmVyIEltYWdlQml0bWFwIGNyZWF0ZWQgZnJvbSAke25h
bWV9YCk7Cit9Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvMmRjb250ZXh0L2ltYWdlYml0bWFwL3RyYW5zZmVyLXdvcmtl
ci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvMmRjb250
ZXh0L2ltYWdlYml0bWFwL3RyYW5zZmVyLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTQ2NWE4OTlj
YTI3ZDUyMDJkZmE3OTZlYzUyMDBiZGU4NDU4OTJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy8yZGNvbnRleHQvaW1hZ2ViaXRt
YXAvdHJhbnNmZXItd29ya2VyLmpzCkBAIC0wLDAgKzEsMyBAQAorYWRkRXZlbnRMaXN0ZW5lcign
bWVzc2FnZScsIGV2dCA9PiB7CisgICAgcG9zdE1lc3NhZ2UoZXZ0LmRhdGEsIFtldnQuZGF0YS5i
aXRtYXBdKTsKK30pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334675</attachid>
            <date>2018-02-26 23:45:09 -0800</date>
            <delta_ts>2018-04-06 12:20:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183131-20180227084508.patch</filename>
            <type>text/plain</type>
            <size>26882</size>
            <attacher name="Ms2ger (he/him; ⌚ UTC+1/+2)">Ms2ger</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4ODE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjA0OGUwZWY2ODZjZDg2
YWUzYmJiZmFhZmFjZTE0MWVlZWRiNDUzMC4uZGFlM2M1ZjE2NjUyNjEwNjViZDlkYjFjYTkwMmE3
YTBkM2U1MDAyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE4LTAyLTI2ICBNczJn
ZXIgIDxNczJnZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBTdXBwb3J0IHRyYW5zZmVycmluZyBJ
bWFnZUJpdG1hcCBvYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODMxMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUZXN0OiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzLzJkY29udGV4
dC9pbWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC10cmFuc2Zlci5odG1sCisKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q2xvbmVTZXJpYWxpemVyOjpzZXJpYWxpemUpOiB0aHJlYWQgdGhyb3VnaCBJbWFnZUJpdG1h
cHMuCisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OkNsb25lU2VyaWFsaXplcik6
IHRocmVhZCB0aHJvdWdoIEltYWdlQml0bWFwcy4KKyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2Vy
aWFsaXplcjo6ZmlsbFRyYW5zZmVyTWFwKTogZG9uJ3QgcmVxdWlyZSBhIG11dGFibGUgcmVmZXJl
bmNlLgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVTZXJpYWxpemVyOjpkdW1wSW1hZ2VCaXRtYXAp
OiBhZGQuCisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmR1bXBJZlRlcm1pbmFs
KTogY2hlY2sgZm9yIEltYWdlQml0bWFwLgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVEZXNlcmlh
bGl6ZXI6OmRlc2VyaWFsaXplKTogdGhyZWFkIHRocm91Z2ggSW1hZ2VCaXRtYXBzLgorICAgICAg
ICAoV2ViQ29yZTo6Q2xvbmVEZXNlcmlhbGl6ZXI6OkNsb25lRGVzZXJpYWxpemVyKTogdGhyZWFk
IHRocm91Z2ggSW1hZ2VCaXRtYXBzLgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVEZXNlcmlhbGl6
ZXI6OnJlYWRJbWFnZUJpdG1hcCk6IGFkZC4KKyAgICAgICAgKFdlYkNvcmU6OkNsb25lRGVzZXJp
YWxpemVyOjpyZWFkVGVybWluYWwpOiBjaGVjayBmb3IgSW1hZ2VCaXRtYXAuCisgICAgICAgIChX
ZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk6IHRo
cmVhZCB0aHJvdWdoIEltYWdlQml0bWFwcy4KKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZTo6Y3JlYXRlKTogdGhyZWFkIHRocm91Z2ggSW1hZ2VCaXRtYXBzLgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGFpbnNEdXBsaWNhdGVzKTogYWRkLgorICAgICAgICAoV2ViQ29yZTo6
U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpkZXNlcmlhbGl6ZSk6IGhhbmRsZSBJbWFnZUJpdG1hcCBh
cmd1bWVudHMuCisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg6
IHVwZGF0ZSBzaWduYXR1cmVzLCBhZGQgbWVtYmVyLgorICAgICAgICAqIGh0bWwvSW1hZ2VCaXRt
YXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCaXRtYXA6OmNyZWF0ZSk6IGFkZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlQml0bWFwOjpkZXRhY2hCaXRtYXBzKTogYWRkLgorICAgICAg
ICAqIGh0bWwvSW1hZ2VCaXRtYXAuaDogYWRkIHNpZ25hdHVyZXMuCisKIDIwMTgtMDItMjAgIFBo
aWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFt
ZXJdW01pbmlCcm93c2VyXSBIb25vciBHU3RyZWFtZXIgY29tbWFuZCBsaW5lIHBhcmFtZXRlcnMg
aW4gTWluaUJyb3dzZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJp
YWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IGI4NTY5YTNkMTM2ZTMwZjQzYjI5MzJmYzU1YmNj
YjNkNmRiNTQzY2EuLmExMmIwZmVjZWVlYzAxMjE4YjQyNDFhNTMwZDcyMmY4ODBiY2M5ZDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZh
bHVlLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIkpTRE9NUmVjdC5oIgogI2luY2x1
ZGUgIkpTRmlsZS5oIgogI2luY2x1ZGUgIkpTRmlsZUxpc3QuaCIKKyNpbmNsdWRlICJKU0ltYWdl
Qml0bWFwLmgiCiAjaW5jbHVkZSAiSlNJbWFnZURhdGEuaCIKICNpbmNsdWRlICJKU01lc3NhZ2VQ
b3J0LmgiCiAjaW5jbHVkZSAiSlNOYXZpZ2F0b3IuaCIKQEAgLTE2MCw2ICsxNjEsNyBAQCBlbnVt
IFNlcmlhbGl6YXRpb25UYWcgewogICAgIERPTU1hdHJpeFJlYWRPbmx5VGFnID0gNDAsCiAgICAg
RE9NTWF0cml4VGFnID0gNDEsCiAgICAgRE9NUXVhZFRhZyA9IDQyLAorICAgIEltYWdlQml0bWFw
VHJhbnNmZXJUYWcgPSA0MywKICAgICBFcnJvclRhZyA9IDI1NQogfTsKIApAQCAtMzM5LDYgKzM0
MSw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJpbmdEYXRhSXM4Qml0RmxhZyA9IDB4ODAw
MDAwMDA7CiAgKiAgICB8IERPTVJlY3QKICAqICAgIHwgRE9NTWF0cml4CiAgKiAgICB8IERPTVF1
YWQKKyAqICAgIHwgSW1hZ2VCaXRtYXBUcmFuc2ZlclRhZyA8dmFsdWU6dWludDMyX3Q+CiAgKgog
ICogSW5zaWRlIHdyYXBwZWQgY3J5cHRvIGtleSwgZGF0YSBpcyBzZXJpYWxpemVkIGluIHRoaXMg
Zm9ybWF0OgogICoKQEAgLTUzMCwxMyArNTMzLDEzIEBAIHRlbXBsYXRlIDw+IGJvb2wgd3JpdGVM
aXR0bGVFbmRpYW48dWludDhfdD4oVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIsIGNvbnN0IHVpbnQ4
CiAKIGNsYXNzIENsb25lU2VyaWFsaXplciA6IENsb25lQmFzZSB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFNlcmlhbGl6YXRpb25SZXR1cm5Db2RlIHNlcmlhbGl6ZShFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgdmFsdWUsIFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiYgbWVzc2FnZVBvcnRzLCBW
ZWN0b3I8UmVmUHRyPEpTQzo6QXJyYXlCdWZmZXI+PiYgYXJyYXlCdWZmZXJzLAorICAgIHN0YXRp
YyBTZXJpYWxpemF0aW9uUmV0dXJuQ29kZSBzZXJpYWxpemUoRXhlY1N0YXRlKiBleGVjLCBKU1Zh
bHVlIHZhbHVlLCBWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0Pj4mIG1lc3NhZ2VQb3J0cywgVmVj
dG9yPFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPj4mIGFycmF5QnVmZmVycywgY29uc3QgVmVjdG9y
PFJlZlB0cjxJbWFnZUJpdG1hcD4+JiBpbWFnZUJpdG1hcHMsCiAjaWYgRU5BQkxFKFdFQkFTU0VN
QkxZKQogICAgICAgICAgICAgV2FzbU1vZHVsZUFycmF5JiB3YXNtTW9kdWxlcywKICNlbmRpZgog
ICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBWZWN0b3I8dWludDhfdD4mIG91
dCwgU2VyaWFsaXphdGlvbkNvbnRleHQgY29udGV4dCwgQXJyYXlCdWZmZXJDb250ZW50c0FycmF5
JiBzaGFyZWRCdWZmZXJzKQogICAgIHsKLSAgICAgICAgQ2xvbmVTZXJpYWxpemVyIHNlcmlhbGl6
ZXIoZXhlYywgbWVzc2FnZVBvcnRzLCBhcnJheUJ1ZmZlcnMsCisgICAgICAgIENsb25lU2VyaWFs
aXplciBzZXJpYWxpemVyKGV4ZWMsIG1lc3NhZ2VQb3J0cywgYXJyYXlCdWZmZXJzLCBpbWFnZUJp
dG1hcHMsCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICAgICAgICAgd2FzbU1vZHVsZXMs
CiAjZW5kaWYKQEAgLTU2Myw3ICs1NjYsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHR5cGVk
ZWYgSGFzaE1hcDxKU09iamVjdCosIHVpbnQzMl90PiBPYmplY3RQb29sOwogCi0gICAgQ2xvbmVT
ZXJpYWxpemVyKEV4ZWNTdGF0ZSogZXhlYywgVmVjdG9yPFJlZlB0cjxNZXNzYWdlUG9ydD4+JiBt
ZXNzYWdlUG9ydHMsIFZlY3RvcjxSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4+JiBhcnJheUJ1ZmZl
cnMsCisgICAgQ2xvbmVTZXJpYWxpemVyKEV4ZWNTdGF0ZSogZXhlYywgVmVjdG9yPFJlZlB0cjxN
ZXNzYWdlUG9ydD4+JiBtZXNzYWdlUG9ydHMsIFZlY3RvcjxSZWZQdHI8SlNDOjpBcnJheUJ1ZmZl
cj4+JiBhcnJheUJ1ZmZlcnMsIGNvbnN0IFZlY3RvcjxSZWZQdHI8SW1hZ2VCaXRtYXA+PiYgaW1h
Z2VCaXRtYXBzLAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAgICAgICAgIFdhc21Nb2R1
bGVBcnJheSYgd2FzbU1vZHVsZXMsCiAjZW5kaWYKQEAgLTU4MSwxMCArNTg0LDExIEBAIHByaXZh
dGU6CiAgICAgICAgIHdyaXRlKEN1cnJlbnRWZXJzaW9uKTsKICAgICAgICAgZmlsbFRyYW5zZmVy
TWFwKG1lc3NhZ2VQb3J0cywgbV90cmFuc2ZlcnJlZE1lc3NhZ2VQb3J0cyk7CiAgICAgICAgIGZp
bGxUcmFuc2Zlck1hcChhcnJheUJ1ZmZlcnMsIG1fdHJhbnNmZXJyZWRBcnJheUJ1ZmZlcnMpOwor
ICAgICAgICBmaWxsVHJhbnNmZXJNYXAoaW1hZ2VCaXRtYXBzLCBtX3RyYW5zZmVycmVkSW1hZ2VC
aXRtYXBzKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KLSAgICB2b2lkIGZpbGxU
cmFuc2Zlck1hcChWZWN0b3I8UmVmUHRyPFQ+PiYgaW5wdXQsIE9iamVjdFBvb2wmIHJlc3VsdCkK
KyAgICB2b2lkIGZpbGxUcmFuc2Zlck1hcChjb25zdCBWZWN0b3I8UmVmUHRyPFQ+PiYgaW5wdXQs
IE9iamVjdFBvb2wmIHJlc3VsdCkKICAgICB7CiAgICAgICAgIGlmIChpbnB1dC5pc0VtcHR5KCkp
CiAgICAgICAgICAgICByZXR1cm47CkBAIC04NzIsNiArODc2LDE5IEBAIHByaXZhdGU6CiAgICAg
ICAgIGR1bXBET01Qb2ludChxdWFkLnA0KCkpOwogICAgIH0KIAorICAgIHZvaWQgZHVtcEltYWdl
Qml0bWFwKEpTT2JqZWN0KiBvYmosIFNlcmlhbGl6YXRpb25SZXR1cm5Db2RlJiBjb2RlKQorICAg
IHsKKyAgICAgICAgYXV0byBpbmRleCA9IG1fdHJhbnNmZXJyZWRJbWFnZUJpdG1hcHMuZmluZChv
YmopOworICAgICAgICBpZiAoaW5kZXggIT0gbV90cmFuc2ZlcnJlZEltYWdlQml0bWFwcy5lbmQo
KSkgeworICAgICAgICAgICAgd3JpdGUoSW1hZ2VCaXRtYXBUcmFuc2ZlclRhZyk7CisgICAgICAg
ICAgICB3cml0ZShpbmRleC0+dmFsdWUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgLy8gQ29weWluZyBJbWFnZUJpdG1hcHMgaXMgbm90IHlldCBzdXBwb3J0ZWQu
CisgICAgICAgIGNvZGUgPSBTZXJpYWxpemF0aW9uUmV0dXJuQ29kZTo6VmFsaWRhdGlvbkVycm9y
OworICAgIH0KKwogICAgIGJvb2wgZHVtcElmVGVybWluYWwoSlNWYWx1ZSB2YWx1ZSwgU2VyaWFs
aXphdGlvblJldHVybkNvZGUmIGNvZGUpCiAgICAgewogICAgICAgICBpZiAoIXZhbHVlLmlzQ2Vs
bCgpKSB7CkBAIC0xMDI1LDcgKzEwNDIsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIFdh
c21Nb2R1bGVBcnJheSBkdW1teU1vZHVsZXM7CiAjZW5kaWYKICAgICAgICAgICAgICAgICBBcnJh
eUJ1ZmZlckNvbnRlbnRzQXJyYXkgZHVtbXlTaGFyZWRCdWZmZXJzOwotICAgICAgICAgICAgICAg
IENsb25lU2VyaWFsaXplciByYXdLZXlTZXJpYWxpemVyKG1fZXhlYywgZHVtbXlNZXNzYWdlUG9y
dHMsIGR1bW15QXJyYXlCdWZmZXJzLAorICAgICAgICAgICAgICAgIENsb25lU2VyaWFsaXplciBy
YXdLZXlTZXJpYWxpemVyKG1fZXhlYywgZHVtbXlNZXNzYWdlUG9ydHMsIGR1bW15QXJyYXlCdWZm
ZXJzLCB7IH0sCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICAgICAgICAgICAgICAgICBk
dW1teU1vZHVsZXMsCiAjZW5kaWYKQEAgLTEwNjcsNiArMTA4NCwxMCBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgICAgIGR1bXBET01RdWFkKG9iaik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAob2JqLT5pbmhlcml0cyh2bSwgSlNJ
bWFnZUJpdG1hcDo6aW5mbygpKSkgeworICAgICAgICAgICAgICAgIGR1bXBJbWFnZUJpdG1hcChv
YmosIGNvZGUpOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIC8vIEFueSBvdGhl
ciB0eXBlcyBhcmUgZXhwZWN0ZWQgdG8gc2VyaWFsaXplIGFzIG51bGwuCkBAIC0xNDEyLDYgKzE0
MzMsNyBAQCBwcml2YXRlOgogICAgIE9iamVjdFBvb2wgbV9vYmplY3RQb29sOwogICAgIE9iamVj
dFBvb2wgbV90cmFuc2ZlcnJlZE1lc3NhZ2VQb3J0czsKICAgICBPYmplY3RQb29sIG1fdHJhbnNm
ZXJyZWRBcnJheUJ1ZmZlcnM7CisgICAgT2JqZWN0UG9vbCBtX3RyYW5zZmVycmVkSW1hZ2VCaXRt
YXBzOwogICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+LCB1aW50
MzJfdCwgSWRlbnRpZmllclJlcEhhc2g+IFN0cmluZ0NvbnN0YW50UG9vbDsKICAgICBTdHJpbmdD
b25zdGFudFBvb2wgbV9jb25zdGFudFBvb2w7CiAgICAgSWRlbnRpZmllciBtX2VtcHR5SWRlbnRp
ZmllcjsKQEAgLTE2OTEsNyArMTcxMyw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHN0cjsK
ICAgICB9CiAKLSAgICBzdGF0aWMgRGVzZXJpYWxpemF0aW9uUmVzdWx0IGRlc2VyaWFsaXplKEV4
ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgVmVjdG9y
PFJlZlB0cjxNZXNzYWdlUG9ydD4+JiBtZXNzYWdlUG9ydHMsIEFycmF5QnVmZmVyQ29udGVudHNB
cnJheSogYXJyYXlCdWZmZXJDb250ZW50c0FycmF5LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGJ1
ZmZlciwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBjb25zdCBWZWN0b3I8U3RyaW5n
PiBibG9iRmlsZVBhdGhzLCBBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkqIHNoYXJlZEJ1ZmZlcnMK
KyAgICBzdGF0aWMgRGVzZXJpYWxpemF0aW9uUmVzdWx0IGRlc2VyaWFsaXplKEV4ZWNTdGF0ZSog
ZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgVmVjdG9yPFJlZlB0cjxN
ZXNzYWdlUG9ydD4+JiBtZXNzYWdlUG9ydHMsIFZlY3RvcjxzdGQ6OnBhaXI8c3RkOjp1bmlxdWVf
cHRyPEltYWdlQnVmZmVyPiwgYm9vbD4+JiYgaW1hZ2VCdWZmZXJzLCBBcnJheUJ1ZmZlckNvbnRl
bnRzQXJyYXkqIGFycmF5QnVmZmVyQ29udGVudHNBcnJheSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+
JiBidWZmZXIsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgY29uc3QgVmVjdG9yPFN0
cmluZz4gYmxvYkZpbGVQYXRocywgQXJyYXlCdWZmZXJDb250ZW50c0FycmF5KiBzaGFyZWRCdWZm
ZXJzCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICAgICAsIFdhc21Nb2R1bGVBcnJheSog
d2FzbU1vZHVsZXMKICNlbmRpZgpAQCAtMTY5OSw3ICsxNzIxLDcgQEAgcHVibGljOgogICAgIHsK
ICAgICAgICAgaWYgKCFidWZmZXIuc2l6ZSgpKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFr
ZV9wYWlyKGpzTnVsbCgpLCBTZXJpYWxpemF0aW9uUmV0dXJuQ29kZTo6VW5zcGVjaWZpZWRFcnJv
cik7Ci0gICAgICAgIENsb25lRGVzZXJpYWxpemVyIGRlc2VyaWFsaXplcihleGVjLCBnbG9iYWxP
YmplY3QsIG1lc3NhZ2VQb3J0cywgYXJyYXlCdWZmZXJDb250ZW50c0FycmF5LCBidWZmZXIsIGJs
b2JVUkxzLCBibG9iRmlsZVBhdGhzLCBzaGFyZWRCdWZmZXJzCisgICAgICAgIENsb25lRGVzZXJp
YWxpemVyIGRlc2VyaWFsaXplcihleGVjLCBnbG9iYWxPYmplY3QsIG1lc3NhZ2VQb3J0cywgYXJy
YXlCdWZmZXJDb250ZW50c0FycmF5LCBidWZmZXIsIGJsb2JVUkxzLCBibG9iRmlsZVBhdGhzLCBz
aGFyZWRCdWZmZXJzLCBXVEZNb3ZlKGltYWdlQnVmZmVycykKICNpZiBFTkFCTEUoV0VCQVNTRU1C
TFkpCiAgICAgICAgICAgICAsIHdhc21Nb2R1bGVzCiAjZW5kaWYKQEAgLTE3NDgsNyArMTc3MCw3
IEBAIHByaXZhdGU6CiAgICAgICAgIHNpemVfdCBtX2luZGV4OwogICAgIH07CiAKLSAgICBDbG9u
ZURlc2VyaWFsaXplcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIGNvbnN0IFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiYgbWVzc2FnZVBvcnRzLCBBcnJh
eUJ1ZmZlckNvbnRlbnRzQXJyYXkqIGFycmF5QnVmZmVyQ29udGVudHMsCisgICAgQ2xvbmVEZXNl
cmlhbGl6ZXIoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBj
b25zdCBWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0Pj4mIG1lc3NhZ2VQb3J0cywgQXJyYXlCdWZm
ZXJDb250ZW50c0FycmF5KiBhcnJheUJ1ZmZlckNvbnRlbnRzLCBWZWN0b3I8c3RkOjpwYWlyPHN0
ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4sIGJvb2w+PiYmIGltYWdlQnVmZmVycywKICNpZiBF
TkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgICAgIFdhc21Nb2R1bGVBcnJheSogd2FzbU1vZHVsZXMs
CiAjZW5kaWYKQEAgLTE3NjIsNiArMTc4NCw4IEBAIHByaXZhdGU6CiAgICAgICAgICwgbV9tZXNz
YWdlUG9ydHMobWVzc2FnZVBvcnRzKQogICAgICAgICAsIG1fYXJyYXlCdWZmZXJDb250ZW50cyhh
cnJheUJ1ZmZlckNvbnRlbnRzKQogICAgICAgICAsIG1fYXJyYXlCdWZmZXJzKGFycmF5QnVmZmVy
Q29udGVudHMgPyBhcnJheUJ1ZmZlckNvbnRlbnRzLT5zaXplKCkgOiAwKQorICAgICAgICAsIG1f
aW1hZ2VCdWZmZXJzKFdURk1vdmUoaW1hZ2VCdWZmZXJzKSkKKyAgICAgICAgLCBtX2ltYWdlQml0
bWFwcyhtX2ltYWdlQnVmZmVycy5zaXplKCkpCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAg
ICAgICAsIG1fd2FzbU1vZHVsZXMod2FzbU1vZHVsZXMpCiAjZW5kaWYKQEAgLTE3NzAsNyArMTc5
NCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBtX3ZlcnNpb24gPSAweEZGRkZGRkZGOwogICAg
IH0KIAotICAgIENsb25lRGVzZXJpYWxpemVyKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgY29uc3QgVmVjdG9yPFJlZlB0cjxNZXNzYWdlUG9ydD4+JiBtZXNz
YWdlUG9ydHMsIEFycmF5QnVmZmVyQ29udGVudHNBcnJheSogYXJyYXlCdWZmZXJDb250ZW50cywg
Y29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9i
VVJMcywgY29uc3QgVmVjdG9yPFN0cmluZz4gYmxvYkZpbGVQYXRocywgQXJyYXlCdWZmZXJDb250
ZW50c0FycmF5KiBzaGFyZWRCdWZmZXJzCisgICAgQ2xvbmVEZXNlcmlhbGl6ZXIoRXhlY1N0YXRl
KiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBWZWN0b3I8UmVmUHRy
PE1lc3NhZ2VQb3J0Pj4mIG1lc3NhZ2VQb3J0cywgQXJyYXlCdWZmZXJDb250ZW50c0FycmF5KiBh
cnJheUJ1ZmZlckNvbnRlbnRzLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGJ1ZmZlciwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiBibG9iRmlsZVBh
dGhzLCBBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkqIHNoYXJlZEJ1ZmZlcnMsIFZlY3RvcjxzdGQ6
OnBhaXI8c3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiwgYm9vbD4+JiYgaW1hZ2VCdWZmZXJz
CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICAgICAsIFdhc21Nb2R1bGVBcnJheSogd2Fz
bU1vZHVsZXMKICNlbmRpZgpAQCAtMTc4Nyw2ICsxODExLDggQEAgcHJpdmF0ZToKICAgICAgICAg
LCBtX2Jsb2JVUkxzKGJsb2JVUkxzKQogICAgICAgICAsIG1fYmxvYkZpbGVQYXRocyhibG9iRmls
ZVBhdGhzKQogICAgICAgICAsIG1fc2hhcmVkQnVmZmVycyhzaGFyZWRCdWZmZXJzKQorICAgICAg
ICAsIG1faW1hZ2VCdWZmZXJzKFdURk1vdmUoaW1hZ2VCdWZmZXJzKSkKKyAgICAgICAgLCBtX2lt
YWdlQml0bWFwcyhtX2ltYWdlQnVmZmVycy5zaXplKCkpCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZ
KQogICAgICAgICAsIG1fd2FzbU1vZHVsZXMod2FzbU1vZHVsZXMpCiAjZW5kaWYKQEAgLTI2MDEs
NiArMjYyNywyMiBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gdG9KU05ld2x5Q3JlYXRlZCht
X2V4ZWMsIGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KG1fZ2xvYmFsT2JqZWN0KSwgRE9NUXVh
ZDo6Y3JlYXRlKHAxLnZhbHVlKCksIHAyLnZhbHVlKCksIHAzLnZhbHVlKCksIHA0LnZhbHVlKCkp
KTsKICAgICB9CiAKKyAgICBKU1ZhbHVlIHJlYWRJbWFnZUJpdG1hcCgpCisgICAgeworICAgICAg
ICB1aW50MzJfdCBpbmRleDsKKyAgICAgICAgYm9vbCBpbmRleFN1Y2Nlc3NmdWxseVJlYWQgPSBy
ZWFkKGluZGV4KTsKKyAgICAgICAgaWYgKCFpbmRleFN1Y2Nlc3NmdWxseVJlYWQgfHwgaW5kZXgg
Pj0gbV9pbWFnZUJ1ZmZlcnMuc2l6ZSgpKSB7CisgICAgICAgICAgICBmYWlsKCk7CisgICAgICAg
ICAgICByZXR1cm4gSlNWYWx1ZSgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFtX2ltYWdl
Qml0bWFwc1tpbmRleF0pCisgICAgICAgICAgICBtX2ltYWdlQml0bWFwc1tpbmRleF0gPSBJbWFn
ZUJpdG1hcDo6Y3JlYXRlKFdURk1vdmUobV9pbWFnZUJ1ZmZlcnMuYXQoaW5kZXgpKSk7CisKKyAg
ICAgICAgYXV0byBiaXRtYXAgPSBtX2ltYWdlQml0bWFwc1tpbmRleF0uZ2V0KCk7CisgICAgICAg
IHJldHVybiBnZXRKU1ZhbHVlKGJpdG1hcCk7CisgICAgfQorCiAgICAgSlNWYWx1ZSByZWFkVGVy
bWluYWwoKQogICAgIHsKICAgICAgICAgU2VyaWFsaXphdGlvblRhZyB0YWcgPSByZWFkVGFnKCk7
CkBAIC0yODYyLDcgKzI5MDQsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgSlNWYWx1ZSBjcnlwdG9LZXk7CiAgICAgICAgICAgICBWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQ
b3J0Pj4gZHVtbXlNZXNzYWdlUG9ydHM7Ci0gICAgICAgICAgICBDbG9uZURlc2VyaWFsaXplciBy
YXdLZXlEZXNlcmlhbGl6ZXIobV9leGVjLCBtX2dsb2JhbE9iamVjdCwgZHVtbXlNZXNzYWdlUG9y
dHMsIG51bGxwdHIsCisgICAgICAgICAgICBDbG9uZURlc2VyaWFsaXplciByYXdLZXlEZXNlcmlh
bGl6ZXIobV9leGVjLCBtX2dsb2JhbE9iamVjdCwgZHVtbXlNZXNzYWdlUG9ydHMsIG51bGxwdHIs
IHsgfSwKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgICAgICAgICAgICAgbnVsbHB0ciwK
ICNlbmRpZgpAQCAtMjg4OSw2ICsyOTMxLDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVy
biByZWFkRE9NTWF0cml4PERPTU1hdHJpeD4oKTsKICAgICAgICAgY2FzZSBET01RdWFkVGFnOgog
ICAgICAgICAgICAgcmV0dXJuIHJlYWRET01RdWFkKCk7CisgICAgICAgIGNhc2UgSW1hZ2VCaXRt
YXBUcmFuc2ZlclRhZzoKKyAgICAgICAgICAgIHJldHVybiByZWFkSW1hZ2VCaXRtYXAoKTsKICAg
ICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIG1fcHRyLS07IC8vIFB1c2ggdGhlIHRhZyBiYWNr
CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOwpAQCAtMjkxNiw2ICsyOTYwLDggQEAgcHJp
dmF0ZToKICAgICBWZWN0b3I8U3RyaW5nPiBtX2Jsb2JVUkxzOwogICAgIFZlY3RvcjxTdHJpbmc+
IG1fYmxvYkZpbGVQYXRoczsKICAgICBBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkqIG1fc2hhcmVk
QnVmZmVyczsKKyAgICBWZWN0b3I8c3RkOjpwYWlyPHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZl
cj4sIGJvb2w+PiBtX2ltYWdlQnVmZmVyczsKKyAgICBWZWN0b3I8UmVmUHRyPEltYWdlQml0bWFw
Pj4gbV9pbWFnZUJpdG1hcHM7CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgIFdhc21Nb2R1
bGVBcnJheSogbV93YXNtTW9kdWxlczsKICNlbmRpZgpAQCAtMzEyNiw3ICszMTcyLDcgQEAgU2Vy
aWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVpbnQ4X3Q+
JiYgYnVmZmVyKQogewogfQogCi1TZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZShWZWN0b3I8dWludDhfdD4mJiBidWZmZXIsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBi
bG9iVVJMcywgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4gYXJyYXlC
dWZmZXJDb250ZW50c0FycmF5LCBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0Fy
cmF5PiBzaGFyZWRCdWZmZXJDb250ZW50c0FycmF5CitTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dWludDhfdD4mJiBidWZmZXIsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBibG9iVVJMcywgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNB
cnJheT4gYXJyYXlCdWZmZXJDb250ZW50c0FycmF5LCBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZm
ZXJDb250ZW50c0FycmF5PiBzaGFyZWRCdWZmZXJDb250ZW50c0FycmF5LCBWZWN0b3I8c3RkOjpw
YWlyPHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4sIGJvb2w+PiYmIGltYWdlQnVmZmVycwog
I2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAgICAgLCBzdGQ6OnVuaXF1ZV9wdHI8V2FzbU1v
ZHVsZUFycmF5PiB3YXNtTW9kdWxlc0FycmF5CiAjZW5kaWYKQEAgLTMxMzQsNiArMzE4MCw3IEBA
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1aW50
OF90PiYmIGJ1ZmZlciwgY29uc3QgVmVjCiAgICAgOiBtX2RhdGEoV1RGTW92ZShidWZmZXIpKQog
ICAgICwgbV9hcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkoV1RGTW92ZShhcnJheUJ1ZmZlckNvbnRl
bnRzQXJyYXkpKQogICAgICwgbV9zaGFyZWRCdWZmZXJDb250ZW50c0FycmF5KFdURk1vdmUoc2hh
cmVkQnVmZmVyQ29udGVudHNBcnJheSkpCisgICAgLCBtX2ltYWdlQnVmZmVycyhXVEZNb3ZlKGlt
YWdlQnVmZmVycykpCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICwgbV93YXNtTW9kdWxl
c0FycmF5KFdURk1vdmUod2FzbU1vZHVsZXNBcnJheSkpCiAjZW5kaWYKQEAgLTMyMjAsMTIgKzMy
NjcsMTMgQEAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZh
bHVlOjpjcmVhdGUoRXhlY1N0YXRlJiBleGVjLCBKU1YKICAgICBWZWN0b3I8dWludDhfdD4gYnVm
ZmVyOwogICAgIFZlY3RvcjxTdHJpbmc+IGJsb2JVUkxzOwogICAgIFZlY3RvcjxSZWZQdHI8TWVz
c2FnZVBvcnQ+PiBkdW1teU1lc3NhZ2VQb3J0czsKKyAgICBWZWN0b3I8UmVmUHRyPEltYWdlQml0
bWFwPj4gZHVtbXlJbWFnZUJpdG1hcHM7CiAgICAgVmVjdG9yPFJlZlB0cjxKU0M6OkFycmF5QnVm
ZmVyPj4gZHVtbXlBcnJheUJ1ZmZlcnM7CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgIFdh
c21Nb2R1bGVBcnJheSBkdW1teU1vZHVsZXM7CiAjZW5kaWYKICAgICBBcnJheUJ1ZmZlckNvbnRl
bnRzQXJyYXkgZHVtbXlTaGFyZWRCdWZmZXJzOwotICAgIGF1dG8gY29kZSA9IENsb25lU2VyaWFs
aXplcjo6c2VyaWFsaXplKCZleGVjLCB2YWx1ZSwgZHVtbXlNZXNzYWdlUG9ydHMsIGR1bW15QXJy
YXlCdWZmZXJzLAorICAgIGF1dG8gY29kZSA9IENsb25lU2VyaWFsaXplcjo6c2VyaWFsaXplKCZl
eGVjLCB2YWx1ZSwgZHVtbXlNZXNzYWdlUG9ydHMsIGR1bW15QXJyYXlCdWZmZXJzLCBkdW1teUlt
YWdlQml0bWFwcywKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgICAgIGR1bW15TW9kdWxl
cywKICNlbmRpZgpAQCAtMzI0MSwxNyArMzI4OSwyOCBAQCBSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShFeGVjU3RhdGUmIGV4ZWMsIEpT
VgogICAgIGlmIChjb2RlICE9IFNlcmlhbGl6YXRpb25SZXR1cm5Db2RlOjpTdWNjZXNzZnVsbHlD
b21wbGV0ZWQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFdURk1vdmUoYnVmZmVyKSwgYmxvYlVSTHMsIG51
bGxwdHIsIG51bGxwdHIKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0
VmFsdWUoV1RGTW92ZShidWZmZXIpLCBibG9iVVJMcywgbnVsbHB0ciwgbnVsbHB0ciwgeyB9CiAj
aWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICAgICAsIG51bGxwdHIKICNlbmRpZgogICAgICAg
ICAgICAgKSk7CiB9CiAKK3N0YXRpYyBib29sIGNvbnRhaW5zRHVwbGljYXRlcyhjb25zdCBWZWN0
b3I8UmVmUHRyPEltYWdlQml0bWFwPj4mIGltYWdlQml0bWFwcykKK3sKKyAgICBIYXNoU2V0PElt
YWdlQml0bWFwKj4gdmlzaXRlZDsKKyAgICBmb3IgKGF1dG8mIGltYWdlQml0bWFwIDogaW1hZ2VC
aXRtYXBzKSB7CisgICAgICAgIGlmICghdmlzaXRlZC5hZGQoaW1hZ2VCaXRtYXAuZ2V0KCkpKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwog
RXhjZXB0aW9uT3I8UmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4+IFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZTo6Y3JlYXRlKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUsIFZlY3RvcjxKU0M6
OlN0cm9uZzxKU0M6OkpTT2JqZWN0Pj4mJiB0cmFuc2Zlckxpc3QsIFZlY3RvcjxSZWZQdHI8TWVz
c2FnZVBvcnQ+PiYgbWVzc2FnZVBvcnRzLCBTZXJpYWxpemF0aW9uQ29udGV4dCBjb250ZXh0KQog
ewogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CiAgICAgVmVjdG9yPFJlZlB0cjxKU0M6OkFycmF5
QnVmZmVyPj4gYXJyYXlCdWZmZXJzOworICAgIFZlY3RvcjxSZWZQdHI8SW1hZ2VCaXRtYXA+PiBp
bWFnZUJpdG1hcHM7CiAgICAgZm9yIChhdXRvJiB0cmFuc2ZlcmFibGUgOiB0cmFuc2Zlckxpc3Qp
IHsKICAgICAgICAgaWYgKGF1dG8gYXJyYXlCdWZmZXIgPSB0b1Bvc3NpYmx5U2hhcmVkQXJyYXlC
dWZmZXIodm0sIHRyYW5zZmVyYWJsZS5nZXQoKSkpIHsKICAgICAgICAgICAgIGlmIChhcnJheUJ1
ZmZlci0+aXNOZXV0ZXJlZCgpKQpAQCAtMzI3MCwxNiArMzMyOSwyNyBAQCBFeGNlcHRpb25PcjxS
ZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPj4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUo
RXhlY1N0YXRlJgogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAorICAgICAgICBp
ZiAoYXV0byBpbWFnZUJpdG1hcCA9IEpTSW1hZ2VCaXRtYXA6OnRvV3JhcHBlZCh2bSwgdHJhbnNm
ZXJhYmxlLmdldCgpKSkgeworICAgICAgICAgICAgaWYgKGltYWdlQml0bWFwLT5pc0RldGFjaGVk
KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IERhdGFDbG9uZUVycm9yIH07
CisKKyAgICAgICAgICAgIGltYWdlQml0bWFwcy5hcHBlbmQoV1RGTW92ZShpbWFnZUJpdG1hcCkp
OworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKwogICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgRGF0YUNsb25lRXJyb3IgfTsKICAgICB9CiAKKyAgICBpZiAoY29udGFpbnNEdXBs
aWNhdGVzKGltYWdlQml0bWFwcykpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBEYXRhQ2xv
bmVFcnJvciB9OworCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKICAgICBWZWN0b3I8U3Ry
aW5nPiBibG9iVVJMczsKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgV2FzbU1vZHVsZUFy
cmF5IHdhc21Nb2R1bGVzOwogI2VuZGlmCiAgICAgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVy
Q29udGVudHNBcnJheT4gc2hhcmVkQnVmZmVycyA9IHN0ZDo6bWFrZV91bmlxdWU8QXJyYXlCdWZm
ZXJDb250ZW50c0FycmF5PigpOwotICAgIGF1dG8gY29kZSA9IENsb25lU2VyaWFsaXplcjo6c2Vy
aWFsaXplKCZzdGF0ZSwgdmFsdWUsIG1lc3NhZ2VQb3J0cywgYXJyYXlCdWZmZXJzLCAKKyAgICBh
dXRvIGNvZGUgPSBDbG9uZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZSgmc3RhdGUsIHZhbHVlLCBtZXNz
YWdlUG9ydHMsIGFycmF5QnVmZmVycywgaW1hZ2VCaXRtYXBzLAogI2lmIEVOQUJMRShXRUJBU1NF
TUJMWSkKICAgICAgICAgd2FzbU1vZHVsZXMsIAogI2VuZGlmCkBAIC0zMjkyLDcgKzMzNjIsOSBA
QCBFeGNlcHRpb25PcjxSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPj4gU2VyaWFsaXplZFNjcmlw
dFZhbHVlOjpjcmVhdGUoRXhlY1N0YXRlJgogICAgIGlmIChhcnJheUJ1ZmZlckNvbnRlbnRzQXJy
YXkuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBhcnJheUJ1ZmZlckNvbnRlbnRzQXJy
YXkucmVsZWFzZUV4Y2VwdGlvbigpOwogCi0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFs
aXplZFNjcmlwdFZhbHVlKFdURk1vdmUoYnVmZmVyKSwgYmxvYlVSTHMsIGFycmF5QnVmZmVyQ29u
dGVudHNBcnJheS5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgY29udGV4dCA9PSBTZXJpYWxpemF0aW9u
Q29udGV4dDo6V29ya2VyUG9zdE1lc3NhZ2UgPyBXVEZNb3ZlKHNoYXJlZEJ1ZmZlcnMpIDogbnVs
bHB0cgorICAgIGF1dG8gaW1hZ2VCdWZmZXJzID0gSW1hZ2VCaXRtYXA6OmRldGFjaEJpdG1hcHMo
V1RGTW92ZShpbWFnZUJpdG1hcHMpKTsKKworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZShXVEZNb3ZlKGJ1ZmZlciksIGJsb2JVUkxzLCBhcnJheUJ1ZmZlckNv
bnRlbnRzQXJyYXkucmVsZWFzZVJldHVyblZhbHVlKCksIGNvbnRleHQgPT0gU2VyaWFsaXphdGlv
bkNvbnRleHQ6OldvcmtlclBvc3RNZXNzYWdlID8gV1RGTW92ZShzaGFyZWRCdWZmZXJzKSA6IG51
bGxwdHIsIFdURk1vdmUoaW1hZ2VCdWZmZXJzKQogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAg
ICAgICAgICAgICAgICAsIHN0ZDo6bWFrZV91bmlxdWU8V2FzbU1vZHVsZUFycmF5Pih3YXNtTW9k
dWxlcykKICNlbmRpZgpAQCAtMzM0NSw3ICszNDE3LDcgQEAgSlNWYWx1ZSBTZXJpYWxpemVkU2Ny
aXB0VmFsdWU6OmRlc2VyaWFsaXplKEV4ZWNTdGF0ZSYgZXhlYywgSlNHbG9iYWxPYmplY3QqIGds
b2IKIAogSlNWYWx1ZSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmRlc2VyaWFsaXplKEV4ZWNTdGF0
ZSYgZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgVmVjdG9yPFJlZlB0
cjxNZXNzYWdlUG9ydD4+JiBtZXNzYWdlUG9ydHMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9i
VVJMcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JGaWxlUGF0aHMsIFNlcmlhbGl6YXRpb25F
cnJvck1vZGUgdGhyb3dFeGNlcHRpb25zKQogewotICAgIERlc2VyaWFsaXphdGlvblJlc3VsdCBy
ZXN1bHQgPSBDbG9uZURlc2VyaWFsaXplcjo6ZGVzZXJpYWxpemUoJmV4ZWMsIGdsb2JhbE9iamVj
dCwgbWVzc2FnZVBvcnRzLCBtX2FycmF5QnVmZmVyQ29udGVudHNBcnJheS5nZXQoKSwgbV9kYXRh
LCBibG9iVVJMcywgYmxvYkZpbGVQYXRocywgbV9zaGFyZWRCdWZmZXJDb250ZW50c0FycmF5Lmdl
dCgpCisgICAgRGVzZXJpYWxpemF0aW9uUmVzdWx0IHJlc3VsdCA9IENsb25lRGVzZXJpYWxpemVy
OjpkZXNlcmlhbGl6ZSgmZXhlYywgZ2xvYmFsT2JqZWN0LCBtZXNzYWdlUG9ydHMsIFdURk1vdmUo
bV9pbWFnZUJ1ZmZlcnMpLCBtX2FycmF5QnVmZmVyQ29udGVudHNBcnJheS5nZXQoKSwgbV9kYXRh
LCBibG9iVVJMcywgYmxvYkZpbGVQYXRocywgbV9zaGFyZWRCdWZmZXJDb250ZW50c0FycmF5Lmdl
dCgpCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICAgICAsIG1fd2FzbU1vZHVsZXNBcnJh
eS5nZXQoKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
ZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5oCmluZGV4IDU2ODY2YTdlYWQ3YjVkNTI5YzQ3OWIyZjllNTg1OWI3
ZTZhMWY2ZWEuLjQzZDEzMDQzOTM5ZWIzZjgzYjJmYWM1ODg2MDUwZTgzNzQzNjZmNTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5o
CkBAIC0yNyw2ICsyNyw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkV4Y2VwdGlvbk9y
LmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9B
cnJheUJ1ZmZlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWUuaD4KICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TdHJvbmcuaD4KQEAgLTQ2LDYgKzQ3LDcgQEAgY2xhc3Mg
TW9kdWxlOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJREJWYWx1ZTsKK2NsYXNzIElt
YWdlQml0bWFwOwogY2xhc3MgTWVzc2FnZVBvcnQ7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiBlbnVt
IGNsYXNzIFNlcmlhbGl6YXRpb25SZXR1cm5Db2RlOwpAQCAtMTAzLDcgKzEwNSw3IEBAIHB1Ymxp
YzoKIAogcHJpdmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCBTZXJpYWxpemVkU2NyaXB0VmFsdWUo
VmVjdG9yPHVuc2lnbmVkIGNoYXI+JiYpOwotICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0
b3I8dW5zaWduZWQgY2hhcj4mJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBzdGQ6
OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5Piwgc3RkOjp1bmlxdWVfcHRyPEFy
cmF5QnVmZmVyQ29udGVudHNBcnJheT4gc2hhcmVkQnVmZmVycworICAgIFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZShWZWN0b3I8dW5zaWduZWQgY2hhcj4mJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJs
b2JVUkxzLCBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5Piwgc3RkOjp1
bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4gc2hhcmVkQnVmZmVycywgVmVjdG9y
PHN0ZDo6cGFpcjxzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+LCBib29sPj4mJiBpbWFnZUJ1
ZmZlcnMKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgICAgICwgc3RkOjp1bmlxdWVfcHRy
PFdhc21Nb2R1bGVBcnJheT4KICNlbmRpZgpAQCAtMTEyLDYgKzExNCw3IEBAIHByaXZhdGU6CiAg
ICAgVmVjdG9yPHVuc2lnbmVkIGNoYXI+IG1fZGF0YTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXJy
YXlCdWZmZXJDb250ZW50c0FycmF5PiBtX2FycmF5QnVmZmVyQ29udGVudHNBcnJheTsKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5PiBtX3NoYXJlZEJ1ZmZlckNv
bnRlbnRzQXJyYXk7CisgICAgVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VC
dWZmZXI+LCBib29sPj4gbV9pbWFnZUJ1ZmZlcnM7CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXYXNtTW9kdWxlQXJyYXk+IG1fd2FzbU1vZHVsZXNBcnJheTsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcAppbmRleCBlMTBkM2I0ZTg3NGEw
YmQ4M2NlMjBiNWYwYjgyMzc2ZmIzMDlhYzZhLi42MDNmMThhNDlkZDY0YTA1NDYxMzAyNmI5MjRm
ZmFjNGI3MmQxOTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFw
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcApAQCAtNTksNiAr
NTksMTMgQEAgUmVmPEltYWdlQml0bWFwPiBJbWFnZUJpdG1hcDo6Y3JlYXRlKEludFNpemUgc2l6
ZSkKICAgICByZXR1cm4gY3JlYXRlKEltYWdlQnVmZmVyOjpjcmVhdGUoRmxvYXRTaXplKHNpemUu
d2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSksIGJ1ZmZlclJlbmRlcmluZ01vZGUpKTsKIH0KIAorUmVm
PEltYWdlQml0bWFwPiBJbWFnZUJpdG1hcDo6Y3JlYXRlKHN0ZDo6cGFpcjxzdGQ6OnVuaXF1ZV9w
dHI8SW1hZ2VCdWZmZXI+LCBib29sPiYmIGJ1ZmZlcikKK3sKKyAgICBhdXRvIGltYWdlQml0bWFw
ID0gY3JlYXRlKFdURk1vdmUoYnVmZmVyLmZpcnN0KSk7CisgICAgaW1hZ2VCaXRtYXAtPm1fb3Jp
Z2luQ2xlYW4gPSBidWZmZXIuc2Vjb25kOworICAgIHJldHVybiBpbWFnZUJpdG1hcDsKK30KKwog
UmVmPEltYWdlQml0bWFwPiBJbWFnZUJpdG1hcDo6Y3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxJbWFn
ZUJ1ZmZlcj4mJiBidWZmZXIpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW1hZ2VCaXRt
YXAoV1RGTW92ZShidWZmZXIpKSk7CkBAIC03Myw2ICs4MCwxNSBAQCB2b2lkIEltYWdlQml0bWFw
OjpjcmVhdGVQcm9taXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQsCiAgICAgKTsKIH0KIAorVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnVuaXF1ZV9wdHI8SW1h
Z2VCdWZmZXI+LCBib29sPj4gSW1hZ2VCaXRtYXA6OmRldGFjaEJpdG1hcHMoVmVjdG9yPFJlZlB0
cjxJbWFnZUJpdG1hcD4+JiYgYml0bWFwcykKK3sKKyAgICBWZWN0b3I8c3RkOjpwYWlyPHN0ZDo6
dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4sIGJvb2w+PiBidWZmZXJzOworICAgIGZvciAoYXV0byYg
Yml0bWFwIDogYml0bWFwcykKKyAgICAgICAgYnVmZmVycy5hcHBlbmQoc3RkOjptYWtlX3BhaXIo
Yml0bWFwLT50cmFuc2Zlck93bmVyc2hpcEFuZENsb3NlKCksIGJpdG1hcC0+b3JpZ2luQ2xlYW4o
KSkpOworICAgIHJldHVybiBidWZmZXJzOworfQorCisKIHZvaWQgSW1hZ2VCaXRtYXA6OmNyZWF0
ZVByb21pc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwg
SW1hZ2VCaXRtYXA6OlNvdXJjZSYmIHNvdXJjZSwgSW1hZ2VCaXRtYXBPcHRpb25zJiYgb3B0aW9u
cywgaW50IHN4LCBpbnQgc3ksIGludCBzdywgaW50IHNoLCBJbWFnZUJpdG1hcDo6UHJvbWlzZSYm
IHByb21pc2UpCiB7CiAgICAgLy8gMS4gSWYgZWl0aGVyIHRoZSBzdyBvciBzaCBhcmd1bWVudHMg
YXJlIHNwZWNpZmllZCBidXQgemVybywgcmV0dXJuIGEgcHJvbWlzZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFn
ZUJpdG1hcC5oCmluZGV4IDk1ZDQ5YjdlYTZiNTAzOTQyNTdiMTgyMDFlYzM1ODg4YWU1ODc3MGIu
Ljc4ZjdjYmQ4MzdjNGUwYTNkYjY3YzU3NTczNWZhMGQ0ZjAyNTFlODggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ltYWdlQml0bWFwLmgKQEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lk
IGNyZWF0ZVByb21pc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFNvdXJjZSYmLCBJbWFnZUJp
dG1hcE9wdGlvbnMmJiwgaW50IHN4LCBpbnQgc3ksIGludCBzdywgaW50IHNoLCBQcm9taXNlJiYp
OwogCiAgICAgc3RhdGljIFJlZjxJbWFnZUJpdG1hcD4gY3JlYXRlKEludFNpemUpOworICAgIHN0
YXRpYyBSZWY8SW1hZ2VCaXRtYXA+IGNyZWF0ZShzdGQ6OnBhaXI8c3RkOjp1bmlxdWVfcHRyPElt
YWdlQnVmZmVyPiwgYm9vbD4mJik7CiAKICAgICB+SW1hZ2VCaXRtYXAoKTsKIApAQCAtNzksNiAr
ODAsOCBAQCBwdWJsaWM6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IHRyYW5z
ZmVyT3duZXJzaGlwQW5kQ2xvc2UoKTsKIAorICAgIHN0YXRpYyBWZWN0b3I8c3RkOjpwYWlyPHN0
ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4sIGJvb2w+PiBkZXRhY2hCaXRtYXBzKFZlY3RvcjxS
ZWZQdHI8SW1hZ2VCaXRtYXA+PiYmKTsKKwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUGVu
ZGluZ0ltYWdlQml0bWFwOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCAzNTJm
MDM5NmM4NjhjYmNkOWEwNjY2MTgxODlmMWYyYjQwYmQzYWRiLi42NjJhOWJkMTYzMDVmOTViYzJl
NDhmODI5OWE5YjAxMDc1OGJiNDYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNCBAQAorMjAxOC0wMi0yNiAgTXMyZ2VyICA8TXMyZ2VyQGlnYWxpYS5jb20+CisK
KyAgICAgICAgU3VwcG9ydCB0cmFuc2ZlcnJpbmcgSW1hZ2VCaXRtYXAgb2JqZWN0cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMTMxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvMmRjb250ZXh0L2ltYWdlYml0bWFwL2NyZWF0ZUltYWdlQml0bWFwLXRyYW5zZmVyLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzLzJkY29udGV4
dC9pbWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC10cmFuc2Zlci5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvMmRjb250ZXh0L2ltYWdlYml0bWFwL3RyYW5zZmVy
LXdvcmtlci5qczogQWRkZWQuCisKIDIwMTgtMDItMTkgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRz
QGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIE1ha2UgS2V5ZnJhbWVFZmZl
Y3QgdGFyZ2V0IG51bGxhYmxlIGFuZCByZWFkLXdyaXRlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzLzJkY29udGV4dC9pbWFnZWJpdG1hcC9j
cmVhdGVJbWFnZUJpdG1hcC10cmFuc2Zlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzLzJkY29udGV4dC9pbWFnZWJpdG1hcC9jcmVhdGVJ
bWFnZUJpdG1hcC10cmFuc2Zlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDVkZDM3YmVlZDAw
YTU3ODEyZDZjZTMzMTA3NDI5ZjkwNjk1MTZkNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvMmRjb250ZXh0L2ltYWdlYml0bWFw
L2NyZWF0ZUltYWdlQml0bWFwLXRyYW5zZmVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBA
CisKK1BBU1MgVHJhbnNmZXIgSW1hZ2VCaXRtYXAgY3JlYXRlZCBmcm9tIGFuIEhUTUxDYW52YXNF
bGVtZW50IAorUEFTUyBUcmFuc2ZlciBJbWFnZUJpdG1hcCBjcmVhdGVkIGZyb20gYW4gSFRNTFZp
ZGVvRWxlbWVudCAKK1BBU1MgVHJhbnNmZXIgSW1hZ2VCaXRtYXAgY3JlYXRlZCBmcm9tIGFuIEhU
TUxWaWRlb0VsZW1lbnQgZnJvbSBhIGRhdGEgVVJMIAorUEFTUyBUcmFuc2ZlciBJbWFnZUJpdG1h
cCBjcmVhdGVkIGZyb20gYSBiaXRtYXAgSFRNTEltYWdlRWxlbWVudCAKK1BBU1MgVHJhbnNmZXIg
SW1hZ2VCaXRtYXAgY3JlYXRlZCBmcm9tIGEgdmVjdG9yIEhUTUxJbWFnZUVsZW1lbnQgCitGQUlM
IFRyYW5zZmVyIEltYWdlQml0bWFwIGNyZWF0ZWQgZnJvbSBhIGJpdG1hcCBTVkdJbWFnZUVsZW1l
bnQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAi
VHlwZUVycm9yOiBUeXBlIGVycm9yIgorRkFJTCBUcmFuc2ZlciBJbWFnZUJpdG1hcCBjcmVhdGVk
IGZyb20gYSB2ZWN0b3IgU1ZHSW1hZ2VFbGVtZW50IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKK0ZBSUwg
VHJhbnNmZXIgSW1hZ2VCaXRtYXAgY3JlYXRlZCBmcm9tIGFuIE9mZnNjcmVlbkNhbnZhcyBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJy
b3I6IG51bGwgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndGVzdEN0eC5maWxsU3R5bGUg
PSAicmdiKDI1NSwgMCwgMCkiJykiCitGQUlMIFRyYW5zZmVyIEltYWdlQml0bWFwIGNyZWF0ZWQg
ZnJvbSBhbiBJbWFnZURhdGEgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBjcmVhdGVJbWFnZUJpdG1hcCB3aXRoIEltYWdlRGF0
YSBpcyBub3QgaW1wbGVtZW50ZWQiCitQQVNTIFRyYW5zZmVyIEltYWdlQml0bWFwIGNyZWF0ZWQg
ZnJvbSBhbiBJbWFnZUJpdG1hcCAKK0ZBSUwgVHJhbnNmZXIgSW1hZ2VCaXRtYXAgY3JlYXRlZCBm
cm9tIGEgQmxvYiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJUeXBlRXJyb3I6IGNyZWF0ZUltYWdlQml0bWFwIHdpdGggQXJyYXlCdWZmZXIgb3Ig
QmxvYiBpcyBub3QgaW1wbGVtZW50ZWQiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvMmRjb250ZXh0L2ltYWdlYml0bWFwL2NyZWF0ZUlt
YWdlQml0bWFwLXRyYW5zZmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzLzJkY29udGV4dC9pbWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC10cmFu
c2Zlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViZGEzOTViNzU4Mzg3ZTg2ODA5MmRjYzliZTZlZDhlYTUz
ZGZmZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzLzJkY29udGV4dC9pbWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC10cmFu
c2Zlci5odG1sCkBAIC0wLDAgKzEsNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNl
dD11dGYtOD4KKzx0aXRsZT5jcmVhdGVJbWFnZUJpdG1hcCB0cmFuc2ZlcnJpbmcgdGVzdDwvdGl0
bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iL2NvbW1vbi9tZWRpYS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2Nv
bW1vbi9uYW1lc3BhY2VzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJjb21tb24uc3ViLmpz
Ij48L3NjcmlwdD4KKzxkaXYgaWQ9bG9nPjwvZGl2PgorPHNjcmlwdD4KK2xldCB3b3JrZXIsIHRl
c3RzID0ge307CitzZXR1cChmdW5jdGlvbigpIHsKKyAgICB3b3JrZXIgPSBuZXcgV29ya2VyKCJ0
cmFuc2Zlci13b3JrZXIuanMiKTsKKyAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2Fn
ZSIsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGxldCB7IG5hbWUsIGJpdG1hcCB9ID0gZXZl
bnQuZGF0YTsKKyAgICAgICAgdGVzdHNbbmFtZV0oYml0bWFwKTsKKyAgICB9KTsKK30pOworCitm
b3IgKGxldCB7IG5hbWUsIGZhY3RvcnkgfSBvZiBpbWFnZVNvdXJjZVR5cGVzKSB7CisgICAgcHJv
bWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICAgICAgbGV0IG1lc3NhZ2VfaGFuZGxlciA9IG5l
dyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgICAgICAgIHRlc3RzW3QubmFtZV0g
PSByZXNvbHZlOworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuIGZhY3RvcnkoKS50aGVuKGNy
ZWF0ZUltYWdlQml0bWFwKS50aGVuKGZ1bmN0aW9uKGJpdG1hcCkgeworICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhiaXRtYXAud2lkdGgsIDIwKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
Yml0bWFwLmhlaWdodCwgMjApOworCisgICAgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoeyBu
YW1lOiB0Lm5hbWUsIGJpdG1hcDogYml0bWFwIH0sIFtiaXRtYXBdKTsKKworICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhiaXRtYXAud2lkdGgsIDApOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhiaXRtYXAuaGVpZ2h0LCAwKTsKKworICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2VfaGFuZGxl
cjsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbihiaXRtYXApIHsKKyAgICAgICAgICAgIGFzc2Vy
dF9jbGFzc19zdHJpbmcoYml0bWFwLCAiSW1hZ2VCaXRtYXAiKTsKKyAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoYml0bWFwLndpZHRoLCAyMCk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJp
dG1hcC5oZWlnaHQsIDIwKTsKKyAgICAgICAgfSk7CisgICAgfSwgYFRyYW5zZmVyIEltYWdlQml0
bWFwIGNyZWF0ZWQgZnJvbSAke25hbWV9YCk7Cit9Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvMmRjb250ZXh0L2ltYWdl
Yml0bWFwL3RyYW5zZmVyLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvMmRjb250ZXh0L2ltYWdlYml0bWFwL3RyYW5zZmVyLXdvcmtlci5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41NTQ2NWE4OTljYTI3ZDUyMDJkZmE3OTZlYzUyMDBiZGU4NDU4OTJiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy8yZGNvbnRleHQvaW1hZ2ViaXRtYXAvdHJhbnNmZXItd29ya2VyLmpzCkBAIC0wLDAgKzEsMyBA
QAorYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGV2dCA9PiB7CisgICAgcG9zdE1lc3NhZ2Uo
ZXZ0LmRhdGEsIFtldnQuZGF0YS5iaXRtYXBdKTsKK30pOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>