<?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>187600</bug_id>
          
          <creation_ts>2018-07-12 07:12:19 -0700</creation_ts>
          <short_desc>[GStreamer] Add GstBufferMapped abstraction</short_desc>
          <delta_ts>2018-08-16 01:30:42 -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>WebKitGTK</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Charlie Turner">cturner</reporter>
          <assigned_to name="Charlie Turner">cturner</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1441488</commentid>
    <comment_count>0</comment_count>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2018-07-12 07:12:19 -0700</bug_when>
    <thetext>[GStreamer] Add GstBufferMapped abstraction</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441490</commentid>
    <comment_count>1</comment_count>
      <attachid>344841</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2018-07-12 07:16:02 -0700</bug_when>
    <thetext>Created attachment 344841
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441491</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-07-12 07:17:17 -0700</bug_when>
    <thetext>Attachment 344841 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:28:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 5 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>1441495</commentid>
    <comment_count>3</comment_count>
      <attachid>344842</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2018-07-12 07:22:22 -0700</bug_when>
    <thetext>Created attachment 344842
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441817</commentid>
    <comment_count>4</comment_count>
      <attachid>344842</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-07-13 00:43:31 -0700</bug_when>
    <thetext>Comment on attachment 344842
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:303
&gt; +                gst_byte_reader_free(reader);

Interesting catch! We should do this (not necessarily now) a GUniquePtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441819</commentid>
    <comment_count>5</comment_count>
      <attachid>344842</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-13 01:10:58 -0700</bug_when>
    <thetext>Comment on attachment 344842
Patch

Clearing flags on attachment: 344842

Committed r233796: &lt;https://trac.webkit.org/changeset/233796&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441820</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-13 01:11:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1450634</commentid>
    <comment_count>7</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2018-08-16 01:30:42 -0700</bug_when>
    <thetext>*** Bug 187586 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344841</attachid>
            <date>2018-07-12 07:16:02 -0700</date>
            <delta_ts>2018-07-12 07:22:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187600-20180712151601.patch</filename>
            <type>text/plain</type>
            <size>17547</size>
            <attacher name="Charlie Turner">cturner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjVhYmY3ZjdiZjZmNTUy
N2Y1N2QzYTM2YzU5Zjk2YmU5ZTE2NTcxYS4uZTllZWYzYzBmOWVlOGNhZTc4ZDA5NjgwZGE1NmM1
MWI0NTEzMjRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE4LTA3LTEyICBDaGFy
bGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXSBB
ZGQgR3N0QnVmZmVyTWFwcGVkIGFic3RyYWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODc2MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGVyZSBpcyBhIHNpbWlsYXIgYWJzdHJhY3Rpb24gY2Fs
bGVkIGBtYXBHc3RCdWZmZXJgIGFuZCBmcmllbmRzLAorICAgICAgICB3aGljaCBoYXZlIGEgc2xp
Z2h0bHkgZGlmZmVyZW50IHVzZS1jYXNlOiB3YW50aW5nIGEgYnVmZmVyIHRoYXQgaXMKKyAgICAg
ICAgbWFwcGVkIGZvciBhIGxvbmdlciBsaWZldGltZSB3aXRob3V0IGhhdmUgdG8ga2VlcCB0cmFj
ayBvZiB0aGUgbWFwCisgICAgICAgIGluZm9zIHNlcGFyYXRlbHkuIFRoZXkgY291bGQgYmUgc3Vi
c3VtZWQgYnkgdGhpcyBhYnN0cmFjdGlvbiwgYnV0CisgICAgICAgIGV2ZXJ5dGltZSB0aGV5IG5l
ZWQgdG8gd3JpdGUgdG8gdGhlIGJ1ZmZlciwgdGhleSdkIGhhdmUgdG8gcmVtYXAKKyAgICAgICAg
dGhlIG1lbW9yeSBibG9ja3MuCisKKyAgICAgICAgVGhpcyBhYnN0cmFjdGlvbiBpcyBtb3JlIGZv
ciBvbmUtc2hvcnQgcmVhZHMgYW5kIHdyaXRlcyBzYXZpbmcgdGhlIHVzZXIKKyAgICAgICAgZnJv
bSByZW1lbWJlcmluZyB0byB1bm1hcCB0aGUgYnVmZmVyIGFuZCBoYXZpbmcgdG8gbWFuYWdlIHRv
CisgICAgICAgIGF1eGlsaWFyeSBHc3RNYXBJbmZvIHN0cnVjdHVyZXMuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmg6CisgICAgICAgIChX
ZWJDb3JlOjpHc3RNYXBwZWRCdWZmZXI6OkdzdE1hcHBlZEJ1ZmZlcik6CisgICAgICAgIChXZWJD
b3JlOjpHc3RNYXBwZWRCdWZmZXI6On5Hc3RNYXBwZWRCdWZmZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6R3N0TWFwcGVkQnVmZmVyOjpkYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkdzdE1hcHBlZEJ1
ZmZlcjo6c2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHc3RNYXBwZWRCdWZmZXI6Om9w
ZXJhdG9yIGJvb2wgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkluYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZTYW1wbGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lckJhc2U6OmhhbmRsZVN5bmNNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVk
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENsZWFy
S2V5RGVjcnlwdG9yR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKHdlYktpdE1lZGlhQ2xlYXJLZXlE
ZWNyeXB0b3JTZXR1cENpcGhlcik6CisgICAgICAgICh3ZWJLaXRNZWRpYUNsZWFyS2V5RGVjcnlw
dG9yRGVjcnlwdCk6CisKIDIwMTgtMDctMTEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIE1lZGlhRGV2aWNlcyBzaG91bGQgZGVyaXZlIGZyb20gRXZlbnRUYXJn
ZXQgaW4gaXRzIElETApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5oCmluZGV4IGNiYjQ5MzIzYTY4ZDIx
YmU5NTY3YTFlZjFjYTdiYjY1NmRmZGU2MjAuLjc5M2I0ZGQ3NTY0ODk3ZmQxMzM4ZWVjMjAzY2U5
ZTk3MTE0OTliMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmgKQEAgLTgxLDYgKzgxLDM1IEBA
IGlubGluZSBHc3RDbG9ja1RpbWUgdG9Hc3RDbG9ja1RpbWUoY29uc3QgTWVkaWFUaW1lICZtZWRp
YVRpbWUpCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdzdENsb2NrVGltZT4odG9Hc3RVbnNpZ25l
ZDY0VGltZShtZWRpYVRpbWUpKTsKIH0KIAorY2xhc3MgR3N0TWFwcGVkQnVmZmVyIHsKKyAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShHc3RNYXBwZWRCdWZmZXIpOworcHVibGljOgorICAgIEdzdE1h
cHBlZEJ1ZmZlcihHc3RCdWZmZXIqIGJ1ZmZlciwgR3N0TWFwRmxhZ3MgZmxhZ3MpCisgICAgICAg
IDogbV9idWZmZXIoYnVmZmVyKQorICAgIHsKKyAgICAgICAgbV9pc1ZhbGlkID0gZ3N0X2J1ZmZl
cl9tYXAobV9idWZmZXIsICZtX2luZm8sIGZsYWdzKTsKKyAgICB9CisgICAgLy8gVW5mb3J0dW5h
dGVseSwgR1NUX01BUF9SRUFEV1JJVEUgaXMgZGVmaW5lZCBvdXQgb2YgbGluZSBmcm9tIHRoZSBN
YXBGbGFncworICAgIC8vIGVudW0gYXMgYW4gaW50LCBhbmQgQysrIGlzIGNhcmVmdWwgdG8gbm90
IGltcGxpY2l0eSBjb252ZXJ0IGl0IHRvIGFuIGVudW0uCisgICAgR3N0TWFwcGVkQnVmZmVyKEdz
dEJ1ZmZlciogYnVmZmVyLCBpbnQgZmxhZ3MpCisgICAgICAgIDogR3N0TWFwcGVkQnVmZmVyKGJ1
ZmZlciwgc3RhdGljX2Nhc3Q8R3N0TWFwRmxhZ3M+KGZsYWdzKSkgeyB9CisKKyAgICB+R3N0TWFw
cGVkQnVmZmVyKCkKKyAgICB7CisgICAgICAgIGlmIChtX2lzVmFsaWQpCisgICAgICAgICAgICBn
c3RfYnVmZmVyX3VubWFwKG1fYnVmZmVyLCAmbV9pbmZvKTsKKyAgICB9CisKKyAgICB1aW50OF90
KiBkYXRhKCkgeyBBU1NFUlQobV9pc1ZhbGlkKTsgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3Qq
PihtX2luZm8uZGF0YSk7IH0KKyAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgQVNTRVJUKG1faXNW
YWxpZCk7IHJldHVybiBzdGF0aWNfY2FzdDxzaXplX3Q+KG1faW5mby5zaXplKTsgfQorCisgICAg
ZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuIG1faXNWYWxpZDsgfQorcHJp
dmF0ZToKKyAgICBHc3RCdWZmZXIqIG1fYnVmZmVyOworICAgIEdzdE1hcEluZm8gbV9pbmZvOwor
ICAgIGJvb2wgbV9pc1ZhbGlkIHsgZmFsc2UgfTsKK307CisKIGJvb2wgZ3N0UmVnaXN0cnlIYXNF
bGVtZW50Rm9yTWVkaWFUeXBlKEdMaXN0KiBlbGVtZW50RmFjdG9yaWVzLCBjb25zdCBjaGFyKiBj
YXBzU3RyaW5nKTsKIHZvaWQgY29ubmVjdFNpbXBsZUJ1c01lc3NhZ2VDYWxsYmFjayhHc3RFbGVt
ZW50ICpwaXBlbGluZSk7CiB2b2lkIGRpc2Nvbm5lY3RTaW1wbGVCdXNNZXNzYWdlQ2FsbGJhY2so
R3N0RWxlbWVudCAqcGlwZWxpbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRU
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDk4MjcwOTU3ZDE5MjcxODM4ZWY0YzVlYjZl
YTE3YzQxYmQ2OGI2Y2QuLmMyZGQxMjMyMGMxZDg5YzE5NTYyYTYxZTgyNmQ5MGZjMGU3NmJhNDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9J
bmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1l
ci5jcHAKQEAgLTExMiwxOCArMTEyLDE2IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdT
dHJlYW1lcjo6bm90aWZ5VHJhY2tPZlNhbXBsZSgpCiAgICAgICAgICAgICBHU1RfV0FSTklORygi
VHJhY2sgJWQgZ290IHNhbXBsZSB3aXRoIG5vIGJ1ZmZlci4iLCBtX2luZGV4KTsKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0gICAgICAgIEdzdE1hcEluZm8gaW5mbzsKLSAgICAg
ICAgZ2Jvb2xlYW4gcmV0ID0gZ3N0X2J1ZmZlcl9tYXAoYnVmZmVyLCAmaW5mbywgR1NUX01BUF9S
RUFEKTsKLSAgICAgICAgQVNTRVJUKHJldCk7Ci0gICAgICAgIGlmICghcmV0KSB7CisgICAgICAg
IEdzdE1hcHBlZEJ1ZmZlciBtYXBwZWRCdWZmZXIoYnVmZmVyLCBHU1RfTUFQX1JFQUQpOworICAg
ICAgICBBU1NFUlQobWFwcGVkQnVmZmVyKTsKKyAgICAgICAgaWYgKCFtYXBwZWRCdWZmZXIpIHsK
ICAgICAgICAgICAgIEdTVF9XQVJOSU5HKCJUcmFjayAlZCB1bmFibGUgdG8gbWFwIGJ1ZmZlci4i
LCBtX2luZGV4KTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAg
R1NUX0lORk8oIlRyYWNrICVkIHBhcnNpbmcgc2FtcGxlOiAlLipzIiwgbV9pbmRleCwgc3RhdGlj
X2Nhc3Q8aW50PihpbmZvLnNpemUpLAotICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4oaW5mby5kYXRhKSk7Ci0gICAgICAgIGNsaWVudCgpLT5wYXJzZVdlYlZUVEN1ZURhdGEocmVp
bnRlcnByZXRfY2FzdDxjaGFyKj4oaW5mby5kYXRhKSwgaW5mby5zaXplKTsKLSAgICAgICAgZ3N0
X2J1ZmZlcl91bm1hcChidWZmZXIsICZpbmZvKTsKKyAgICAgICAgR1NUX0lORk8oIlRyYWNrICVk
IHBhcnNpbmcgc2FtcGxlOiAlLipzIiwgbV9pbmRleCwgc3RhdGljX2Nhc3Q8aW50PihtYXBwZWRC
dWZmZXIuc2l6ZSgpKSwKKyAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1hcHBl
ZEJ1ZmZlci5kYXRhKCkpKTsKKyAgICAgICAgY2xpZW50KCktPnBhcnNlV2ViVlRUQ3VlRGF0YShy
ZWludGVycHJldF9jYXN0PGNoYXIqPihtYXBwZWRCdWZmZXIuZGF0YSgpKSwgbWFwcGVkQnVmZmVy
LnNpemUoKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKaW5kZXggYjYxNDcxYmNiM2QxYzhhMjcyYzJlY2M2ODY5
YWFiNTM5NzNkYmFmNC4uZTM2MzVkMjIxZjkzNmFmOTkzZmMxOTMyYjRlYjdhYzM3MDU3ZDAyMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
LmNwcApAQCAtNDAzLDIxICs0MDMsMjAgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJCYXNlOjpoYW5kbGVTeW5jTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICAg
ICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0cjsKICAgICAgICAgICAgIGdzdF9ldmVudF9wYXJz
ZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAmZXZlbnRLZXlTeXN0ZW1JZCwgJmRhdGEsIG51bGxw
dHIpOwogCi0gICAgICAgICAgICBHc3RNYXBJbmZvIG1hcEluZm87Ci0gICAgICAgICAgICBpZiAo
IWdzdF9idWZmZXJfbWFwKGRhdGEsICZtYXBJbmZvLCBHU1RfTUFQX1JFQUQpKSB7CisgICAgICAg
ICAgICBHc3RNYXBwZWRCdWZmZXIgZGF0YU1hcHBlZChkYXRhLCBHU1RfTUFQX1JFQUQpOworICAg
ICAgICAgICAgaWYgKCFkYXRhTWFwcGVkKSB7CiAgICAgICAgICAgICAgICAgR1NUX1dBUk5JTkco
ImNhbm5vdCBtYXAgJXMgcHJvdGVjdGlvbiBkYXRhIiwgZXZlbnRLZXlTeXN0ZW1JZCk7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBHU1RfVFJBQ0Uo
ImFwcGVuZGluZyBpbml0IGRhdGEgZm9yICVzIG9mIHNpemUgJSIgR19HU0laRV9GT1JNQVQsIGV2
ZW50S2V5U3lzdGVtSWQsIG1hcEluZm8uc2l6ZSk7Ci0gICAgICAgICAgICBHU1RfTUVNRFVNUCgi
aW5pdCBkYXRhIiwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4obWFwSW5m
by5kYXRhKSwgbWFwSW5mby5zaXplKTsKLSAgICAgICAgICAgIGNvbmNhdGVuYXRlZEluaXREYXRh
Q2h1bmtzLmFwcGVuZChtYXBJbmZvLmRhdGEsIG1hcEluZm8uc2l6ZSk7CisgICAgICAgICAgICBH
U1RfVFJBQ0UoImFwcGVuZGluZyBpbml0IGRhdGEgZm9yICVzIG9mIHNpemUgJSIgR19HU0laRV9G
T1JNQVQsIGV2ZW50S2V5U3lzdGVtSWQsIGRhdGFNYXBwZWQuc2l6ZSgpKTsKKyAgICAgICAgICAg
IEdTVF9NRU1EVU1QKCJpbml0IGRhdGEiLCByZWludGVycHJldF9jYXN0PGNvbnN0IHVuc2lnbmVk
IGNoYXIqPihkYXRhTWFwcGVkLmRhdGEoKSksIGRhdGFNYXBwZWQuc2l6ZSgpKTsKKyAgICAgICAg
ICAgIGNvbmNhdGVuYXRlZEluaXREYXRhQ2h1bmtzLmFwcGVuZChkYXRhTWFwcGVkLmRhdGEoKSwg
ZGF0YU1hcHBlZC5zaXplKCkpOwogICAgICAgICAgICAgKytjb25jYXRlbmF0ZWRJbml0RGF0YUNo
dW5rc051bWJlcjsKICAgICAgICAgICAgIGV2ZW50S2V5U3lzdGVtSWRTdHJpbmcgPSBldmVudEtl
eVN5c3RlbUlkOwogICAgICAgICAgICAgaWYgKHN0cmVhbUVuY3J5cHRpb25JbmZvcm1hdGlvbi5z
ZWNvbmQuY29udGFpbnMoZXZlbnRLZXlTeXN0ZW1JZCkpIHsKICAgICAgICAgICAgICAgICBHU1Rf
VFJBQ0UoImNvbnNpZGVyaW5nIGluaXQgZGF0YSBoYW5kbGVkIGZvciAlcyIsIGV2ZW50S2V5U3lz
dGVtSWQpOwogICAgICAgICAgICAgICAgIG1faGFuZGxlZFByb3RlY3Rpb25FdmVudHMuYWRkKEdT
VF9FVkVOVF9TRVFOVU0oZXZlbnQuZ2V0KCkpKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGdzdF9idWZmZXJfdW5tYXAoZGF0YSwgJm1hcEluZm8pOwogICAgICAgICB9CiAKICAgICAgICAg
aWYgKCFjb25jYXRlbmF0ZWRJbml0RGF0YUNodW5rc051bWJlcikKQEAgLTEyMzAsMTYgKzEyMjks
MTUgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjppbml0aWFsaXphdGlv
bkRhdGFFbmNvdW50ZXJlZChHc3RFdmVudCogZXYKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIEdzdE1hcEluZm8gbWFwSW5mbzsKLSAgICBpZiAoIWdzdF9idWZmZXJfbWFwKGRhdGEsICZt
YXBJbmZvLCBHU1RfTUFQX1JFQUQpKSB7CisgICAgR3N0TWFwcGVkQnVmZmVyIGRhdGFNYXBwZWQo
ZGF0YSwgR1NUX01BUF9SRUFEKTsKKyAgICBpZiAoIWRhdGFNYXBwZWQpIHsKICAgICAgICAgR1NU
X1dBUk5JTkcoImNhbm5vdCBtYXAgJXMgcHJvdGVjdGlvbiBkYXRhIiwgZXZlbnRLZXlTeXN0ZW1V
VUlEKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEdTVF9UUkFDRSgiaW5pdCBkYXRh
IGVuY291bnRlcmVkIGZvciAlcyBvZiBzaXplICUiIEdfR1NJWkVfRk9STUFULCBldmVudEtleVN5
c3RlbVVVSUQsIG1hcEluZm8uc2l6ZSk7Ci0gICAgR1NUX01FTURVTVAoImluaXQgZGF0YSIsIHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KG1hcEluZm8uZGF0YSksIG1hcEluZm8uc2l6
ZSk7Ci0gICAgSW5pdERhdGEgaW5pdERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90
Kj4obWFwSW5mby5kYXRhKSwgbWFwSW5mby5zaXplKTsKLSAgICBnc3RfYnVmZmVyX3VubWFwKGRh
dGEsICZtYXBJbmZvKTsKKyAgICBHU1RfVFJBQ0UoImluaXQgZGF0YSBlbmNvdW50ZXJlZCBmb3Ig
JXMgb2Ygc2l6ZSAlIiBHX0dTSVpFX0ZPUk1BVCwgZXZlbnRLZXlTeXN0ZW1VVUlELCBkYXRhTWFw
cGVkLnNpemUoKSk7CisgICAgR1NUX01FTURVTVAoImluaXQgZGF0YSIsIHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgdWludDhfdCo+KGRhdGFNYXBwZWQuZGF0YSgpKSwgZGF0YU1hcHBlZC5zaXplKCkp
OworICAgIEluaXREYXRhIGluaXREYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+
KGRhdGFNYXBwZWQuZGF0YSgpKSwgZGF0YU1hcHBlZC5zaXplKCkpOwogCiAgICAgU3RyaW5nIGV2
ZW50S2V5U3lzdGVtVVVJRFN0cmluZyA9IGV2ZW50S2V5U3lzdGVtVVVJRDsKICAgICBSdW5Mb29w
OjptYWluKCkuZGlzcGF0Y2goW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBldmVudEtl
eVN5c3RlbVVVSUQgPSBldmVudEtleVN5c3RlbVVVSURTdHJpbmcsIGluaXREYXRhXSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dl
YktpdENsZWFyS2V5RGVjcnlwdG9yR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q2xlYXJLZXlEZWNyeXB0b3JHU3RyZWFt
ZXIuY3BwCmluZGV4IDhlZDU3MGM1YTkwNzk3NmJjNzE2ODBlOTljNjc0OTExOTJmODM5MjMuLjJk
NGY0ZGUyOTEwNTdhZjdjNTM4NDg3OGY4OGE2NWNkMDc0ZDE5YWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q2xlYXJLZXlE
ZWNyeXB0b3JHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q2xlYXJLZXlEZWNyeXB0b3JHU3RyZWFtZXIuY3BwCkBA
IC0yNSw2ICsyNSw3IEBACiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkgJiYgVVNFKEdTVFJF
QU1FUikKIAogI2luY2x1ZGUgIkdTdHJlYW1lckVNRVV0aWxpdGllcy5oIgorI2luY2x1ZGUgIkdT
dHJlYW1lckNvbW1vbi5oIgogI2luY2x1ZGUgPGdjcnlwdC5oPgogI2luY2x1ZGUgPGdzdC9iYXNl
L2dzdGJ5dGVyZWFkZXIuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgpAQCAtMTU4LDIxICsx
NTksMTcgQEAgc3RhdGljIGdib29sZWFuIHdlYktpdE1lZGlhQ2xlYXJLZXlEZWNyeXB0b3JTZXR1
cENpcGhlcihXZWJLaXRNZWRpYUNvbW1vbkVuY3J5cHQKICAgICBnY3J5X2Vycm9yX3QgZXJyb3I7
CiAKICAgICBHUmVmUHRyPEdzdEJ1ZmZlcj4ga2V5QnVmZmVyOwotICAgIHsKLSAgICAgICAgR3N0
TWFwSW5mbyBrZXlJREJ1ZmZlck1hcDsKLSAgICAgICAgaWYgKCFnc3RfYnVmZmVyX21hcChrZXlJ
REJ1ZmZlciwgJmtleUlEQnVmZmVyTWFwLCBHU1RfTUFQX1JFQUQpKSB7Ci0gICAgICAgICAgICBH
U1RfRVJST1JfT0JKRUNUKHNlbGYsICJGYWlsZWQgdG8gbWFwIGtleSBJRCBidWZmZXIiKTsKLSAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQorICAgIFdlYkNvcmU6OkdzdE1hcHBl
ZEJ1ZmZlciBtYXBwZWRLZXlJZEJ1ZmZlcihrZXlJREJ1ZmZlciwgR1NUX01BUF9SRUFEKTsKKyAg
ICBpZiAoIW1hcHBlZEtleUlkQnVmZmVyKSB7CisgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc2Vs
ZiwgIkZhaWxlZCB0byBtYXAga2V5IElEIGJ1ZmZlciIpOworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQogCi0gICAgICAgIGZvciAoYXV0byYga2V5IDogcHJpdi0+a2V5cykgewotICAgICAg
ICAgICAgaWYgKCFnc3RfYnVmZmVyX21lbWNtcChrZXkua2V5SUQuZ2V0KCksIDAsIGtleUlEQnVm
ZmVyTWFwLmRhdGEsIGtleUlEQnVmZmVyTWFwLnNpemUpKSB7Ci0gICAgICAgICAgICAgICAga2V5
QnVmZmVyID0ga2V5LmtleVZhbHVlOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgfQorICAgIGZvciAoYXV0byYga2V5IDogcHJpdi0+a2V5cykgeworICAgICAgICBpZiAoIWdz
dF9idWZmZXJfbWVtY21wKGtleS5rZXlJRC5nZXQoKSwgMCwgbWFwcGVkS2V5SWRCdWZmZXIuZGF0
YSgpLCBtYXBwZWRLZXlJZEJ1ZmZlci5zaXplKCkpKSB7CisgICAgICAgICAgICBrZXlCdWZmZXIg
PSBrZXkua2V5VmFsdWU7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotCi0gICAgICAg
IGdzdF9idWZmZXJfdW5tYXAoa2V5SURCdWZmZXIsICZrZXlJREJ1ZmZlck1hcCk7CiAgICAgfQog
CiAgICAgaWYgKCFrZXlCdWZmZXIpIHsKQEAgLTE4NiwxNSArMTgzLDE0IEBAIHN0YXRpYyBnYm9v
bGVhbiB3ZWJLaXRNZWRpYUNsZWFyS2V5RGVjcnlwdG9yU2V0dXBDaXBoZXIoV2ViS2l0TWVkaWFD
b21tb25FbmNyeXB0CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBHc3RNYXBJ
bmZvIGtleU1hcDsKLSAgICBpZiAoIWdzdF9idWZmZXJfbWFwKGtleUJ1ZmZlci5nZXQoKSwgJmtl
eU1hcCwgR1NUX01BUF9SRUFEKSkgeworICAgIFdlYkNvcmU6OkdzdE1hcHBlZEJ1ZmZlciBtYXBw
ZWRLZXlCdWZmZXIoa2V5QnVmZmVyLmdldCgpLCBHU1RfTUFQX1JFQUQpOworICAgIGlmICghbWFw
cGVkS2V5QnVmZmVyKSB7CiAgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc2VsZiwgIkZhaWxlZCB0
byBtYXAgZGVjcnlwdGlvbiBrZXkiKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAot
ICAgIEFTU0VSVChrZXlNYXAuc2l6ZSA9PSBDTEVBUktFWV9TSVpFKTsKLSAgICBlcnJvciA9IGdj
cnlfY2lwaGVyX3NldGtleShwcml2LT5oYW5kbGUsIGtleU1hcC5kYXRhLCBrZXlNYXAuc2l6ZSk7
Ci0gICAgZ3N0X2J1ZmZlcl91bm1hcChrZXlCdWZmZXIuZ2V0KCksICZrZXlNYXApOworICAgIEFT
U0VSVChtYXBwZWRLZXlCdWZmZXIuc2l6ZSgpID09IENMRUFSS0VZX1NJWkUpOworICAgIGVycm9y
ID0gZ2NyeV9jaXBoZXJfc2V0a2V5KHByaXYtPmhhbmRsZSwgbWFwcGVkS2V5QnVmZmVyLmRhdGEo
KSwgbWFwcGVkS2V5QnVmZmVyLnNpemUoKSk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIEdT
VF9FUlJPUl9PQkpFQ1Qoc2VsZiwgImdjcnlfY2lwaGVyX3NldGtleSBmYWlsZWQ6ICVzIiwgZ3Bn
X3N0cmVycm9yKGVycm9yKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTIwNSwyNyArMjAx
LDI2IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRNZWRpYUNsZWFyS2V5RGVjcnlwdG9yU2V0dXBD
aXBoZXIoV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0CiAKIHN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRN
ZWRpYUNsZWFyS2V5RGVjcnlwdG9yRGVjcnlwdChXZWJLaXRNZWRpYUNvbW1vbkVuY3J5cHRpb25E
ZWNyeXB0KiBzZWxmLCBHc3RCdWZmZXIqIGl2QnVmZmVyLCBHc3RCdWZmZXIqIGJ1ZmZlciwgdW5z
aWduZWQgc3ViU2FtcGxlQ291bnQsIEdzdEJ1ZmZlciogc3ViU2FtcGxlc0J1ZmZlcikKIHsKLSAg
ICBHc3RNYXBJbmZvIGl2TWFwOwogICAgIC8vIENoZWNrIGl2QnVmZmVyIGlzbid0IG51bGwuCiAg
ICAgaWYgKCFpdkJ1ZmZlcikgewogICAgICAgICBHU1RfRVJST1JfT0JKRUNUKHNlbGYsICJFcnJv
ciwgdGhlIGl2QnVmZmVyIGlzIG51bGwiKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
IAotICAgIGlmICghZ3N0X2J1ZmZlcl9tYXAoaXZCdWZmZXIsICZpdk1hcCwgR1NUX01BUF9SRUFE
KSkgeworICAgIFdlYkNvcmU6OkdzdE1hcHBlZEJ1ZmZlciBtYXBwZWRJVkJ1ZmZlcihpdkJ1ZmZl
ciwgR1NUX01BUF9SRUFEKTsKKyAgICBpZiAoIW1hcHBlZElWQnVmZmVyKSB7CiAgICAgICAgIEdT
VF9FUlJPUl9PQkpFQ1Qoc2VsZiwgIkZhaWxlZCB0byBtYXAgSVYiKTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIAogICAgIHVpbnQ4X3QgY3RyW0NMRUFSS0VZX1NJWkVdOwotICAgIGlm
IChpdk1hcC5zaXplID09IDgpIHsKKyAgICBpZiAobWFwcGVkSVZCdWZmZXIuc2l6ZSgpID09IDgp
IHsKICAgICAgICAgbWVtc2V0KGN0ciArIDgsIDAsIDgpOwotICAgICAgICBtZW1jcHkoY3RyLCBp
dk1hcC5kYXRhLCA4KTsKKyAgICAgICAgbWVtY3B5KGN0ciwgbWFwcGVkSVZCdWZmZXIuZGF0YSgp
LCA4KTsKICAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlQoaXZNYXAuc2l6ZSA9PSBDTEVBUktF
WV9TSVpFKTsKLSAgICAgICAgbWVtY3B5KGN0ciwgaXZNYXAuZGF0YSwgQ0xFQVJLRVlfU0laRSk7
CisgICAgICAgIEFTU0VSVChtYXBwZWRJVkJ1ZmZlci5zaXplKCkgPT0gQ0xFQVJLRVlfU0laRSk7
CisgICAgICAgIG1lbWNweShjdHIsIG1hcHBlZElWQnVmZmVyLmRhdGEoKSwgQ0xFQVJLRVlfU0la
RSk7CiAgICAgfQotICAgIGdzdF9idWZmZXJfdW5tYXAoaXZCdWZmZXIsICZpdk1hcCk7CiAKICAg
ICBXZWJLaXRNZWRpYUNsZWFyS2V5RGVjcnlwdFByaXZhdGUqIHByaXYgPSBXRUJLSVRfTUVESUFf
Q0tfREVDUllQVF9HRVRfUFJJVkFURShXRUJLSVRfTUVESUFfQ0tfREVDUllQVChzZWxmKSk7CiAg
ICAgZ2NyeV9lcnJvcl90IGNpcGhlckVycm9yID0gZ2NyeV9jaXBoZXJfc2V0Y3RyKHByaXYtPmhh
bmRsZSwgY3RyLCBDTEVBUktFWV9TSVpFKTsKQEAgLTI0MCw1MiArMjM1LDQ4IEBAIHN0YXRpYyBn
Ym9vbGVhbiB3ZWJLaXRNZWRpYUNsZWFyS2V5RGVjcnlwdG9yRGVjcnlwdChXZWJLaXRNZWRpYUNv
bW1vbkVuY3J5cHRpb25ECiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBHc3RN
YXBJbmZvIG1hcDsKLSAgICBnYm9vbGVhbiBidWZmZXJNYXBwZWQgPSBnc3RfYnVmZmVyX21hcChi
dWZmZXIsICZtYXAsIHN0YXRpY19jYXN0PEdzdE1hcEZsYWdzPihHU1RfTUFQX1JFQURXUklURSkp
OwotICAgIGlmICghYnVmZmVyTWFwcGVkKSB7CisgICAgV2ViQ29yZTo6R3N0TWFwcGVkQnVmZmVy
IG1hcHBlZEJ1ZmZlcihidWZmZXIsIEdTVF9NQVBfUkVBRFdSSVRFKTsKKyAgICBpZiAoIW1hcHBl
ZEJ1ZmZlcikgewogICAgICAgICBHU1RfRVJST1JfT0JKRUNUKHNlbGYsICJGYWlsZWQgdG8gbWFw
IGJ1ZmZlciIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgYm9vbCByZXR1
cm5WYWx1ZSA9IHRydWU7CiAgICAgR3N0Qnl0ZVJlYWRlciogcmVhZGVyOwogICAgIHVuc2lnbmVk
IHBvc2l0aW9uID0gMDsKICAgICB1bnNpZ25lZCBzYW1wbGVJbmRleCA9IDA7Ci0gICAgR3N0TWFw
SW5mbyBzdWJTYW1wbGVzTWFwOwogCiAgICAgaWYgKCFzdWJTYW1wbGVDb3VudCkgewogICAgICAg
ICAvLyBGdWxsIHNhbXBsZSBlbmNyeXB0aW9uLgotICAgICAgICBHU1RfVFJBQ0VfT0JKRUNUKHNl
bGYsICJmdWxsIHNhbXBsZSBlbmNyeXB0aW9uOiAlenUgZW5jcnlwdGVkIGJ5dGVzIiwgbWFwLnNp
emUpOworICAgICAgICBHU1RfVFJBQ0VfT0JKRUNUKHNlbGYsICJmdWxsIHNhbXBsZSBlbmNyeXB0
aW9uOiAlenUgZW5jcnlwdGVkIGJ5dGVzIiwgbWFwcGVkQnVmZmVyLnNpemUoKSk7CiAKICAgICAg
ICAgLy8gQ2hlY2sgaWYgdGhlIGJ1ZmZlciBpcyBlbXB0eS4KLSAgICAgICAgaWYgKG1hcC5zaXpl
KSB7Ci0gICAgICAgICAgICBjaXBoZXJFcnJvciA9IGdjcnlfY2lwaGVyX2RlY3J5cHQocHJpdi0+
aGFuZGxlLCBtYXAuZGF0YSwgbWFwLnNpemUsIDAsIDApOworICAgICAgICBpZiAobWFwcGVkQnVm
ZmVyLnNpemUoKSkgeworICAgICAgICAgICAgY2lwaGVyRXJyb3IgPSBnY3J5X2NpcGhlcl9kZWNy
eXB0KHByaXYtPmhhbmRsZSwgbWFwcGVkQnVmZmVyLmRhdGEoKSwgbWFwcGVkQnVmZmVyLnNpemUo
KSwgMCwgMCk7CiAgICAgICAgICAgICBpZiAoY2lwaGVyRXJyb3IpIHsKICAgICAgICAgICAgICAg
ICBHU1RfRVJST1JfT0JKRUNUKHNlbGYsICJmdWxsIHNhbXBsZSBkZWNyeXB0aW9uIGZhaWxlZDog
JXMiLCBncGdfc3RyZXJyb3IoY2lwaGVyRXJyb3IpKTsKLSAgICAgICAgICAgICAgICByZXR1cm5W
YWx1ZSA9IGZhbHNlOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQotICAgICAgICBnb3RvIHJlbGVhc2VCdWZmZXI7CisgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KIAogICAgIC8vIENoZWNrIHN1YlNhbXBsZXNCdWZmZXIgaXNuJ3QgbnVs
bC4KICAgICBpZiAoIXN1YlNhbXBsZXNCdWZmZXIpIHsKICAgICAgICAgR1NUX0VSUk9SX09CSkVD
VChzZWxmLCAiRXJyb3IsIHRoZSBzdWJTYW1wbGVCdWZmZXIgaXMgbnVsbCIpOwotICAgICAgICBy
ZXR1cm5WYWx1ZSA9IGZhbHNlOwotICAgICAgICBnb3RvIHJlbGVhc2VCdWZmZXI7CisgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICAvLyBTdWJzYW1wbGUgZW5jcnlwdGlvbi4KLSAg
ICBpZiAoIWdzdF9idWZmZXJfbWFwKHN1YlNhbXBsZXNCdWZmZXIsICZzdWJTYW1wbGVzTWFwLCBH
U1RfTUFQX1JFQUQpKSB7CisgICAgV2ViQ29yZTo6R3N0TWFwcGVkQnVmZmVyIG1hcHBlZFN1YlNh
bXBsZXNCdWZmZXIoc3ViU2FtcGxlc0J1ZmZlciwgR1NUX01BUF9SRUFEKTsKKyAgICBpZiAoIW1h
cHBlZFN1YlNhbXBsZXNCdWZmZXIpIHsKICAgICAgICAgR1NUX0VSUk9SX09CSkVDVChzZWxmLCAi
RmFpbGVkIHRvIG1hcCBzdWJzYW1wbGUgYnVmZmVyIik7Ci0gICAgICAgIHJldHVyblZhbHVlID0g
ZmFsc2U7Ci0gICAgICAgIGdvdG8gcmVsZWFzZUJ1ZmZlcjsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KIAotICAgIHJlYWRlciA9IGdzdF9ieXRlX3JlYWRlcl9uZXcoc3ViU2FtcGxlc01h
cC5kYXRhLCBzdWJTYW1wbGVzTWFwLnNpemUpOwotICAgIEdTVF9ERUJVR19PQkpFQ1Qoc2VsZiwg
InBvc2l0aW9uOiAlZCwgc2l6ZTogJXp1IiwgcG9zaXRpb24sIG1hcC5zaXplKTsKKyAgICByZWFk
ZXIgPSBnc3RfYnl0ZV9yZWFkZXJfbmV3KG1hcHBlZFN1YlNhbXBsZXNCdWZmZXIuZGF0YSgpLCBt
YXBwZWRTdWJTYW1wbGVzQnVmZmVyLnNpemUoKSk7CisgICAgR1NUX0RFQlVHX09CSkVDVChzZWxm
LCAicG9zaXRpb246ICVkLCBzaXplOiAlenUiLCBwb3NpdGlvbiwgbWFwcGVkQnVmZmVyLnNpemUo
KSk7CiAKLSAgICB3aGlsZSAocG9zaXRpb24gPCBtYXAuc2l6ZSkgeworICAgIHdoaWxlIChwb3Np
dGlvbiA8IG1hcHBlZEJ1ZmZlci5zaXplKCkpIHsKICAgICAgICAgZ3VpbnQxNiBuQnl0ZXNDbGVh
ciA9IDA7CiAgICAgICAgIGd1aW50MzIgbkJ5dGVzRW5jcnlwdGVkID0gMDsKIApAQCAtMjkzLDM1
ICsyODQsMzEgQEAgc3RhdGljIGdib29sZWFuIHdlYktpdE1lZGlhQ2xlYXJLZXlEZWNyeXB0b3JE
ZWNyeXB0KFdlYktpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkQKICAgICAgICAgICAgIGlmICghZ3N0
X2J5dGVfcmVhZGVyX2dldF91aW50MTZfYmUocmVhZGVyLCAmbkJ5dGVzQ2xlYXIpCiAgICAgICAg
ICAgICAgICAgfHwgIWdzdF9ieXRlX3JlYWRlcl9nZXRfdWludDMyX2JlKHJlYWRlciwgJm5CeXRl
c0VuY3J5cHRlZCkpIHsKICAgICAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHNlbGYsICJ1
bnN1cHBvcnRlZCIpOwotICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gZmFsc2U7Ci0gICAg
ICAgICAgICAgICAgZ290byByZWxlYXNlU3Vic2FtcGxlczsKKyAgICAgICAgICAgICAgICBnc3Rf
Ynl0ZV9yZWFkZXJfZnJlZShyZWFkZXIpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHNhbXBsZUluZGV4Kys7CiAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICBuQnl0ZXNDbGVhciA9IDA7Ci0gICAgICAgICAgICBuQnl0ZXNFbmNy
eXB0ZWQgPSBtYXAuc2l6ZSAtIHBvc2l0aW9uOworICAgICAgICAgICAgbkJ5dGVzRW5jcnlwdGVk
ID0gbWFwcGVkQnVmZmVyLnNpemUoKSAtIHBvc2l0aW9uOwogICAgICAgICB9CiAKLSAgICAgICAg
R1NUX1RSQUNFX09CSkVDVChzZWxmLCAic3Vic2FtcGxlIGluZGV4ICV1IC0gJWh1IGJ5dGVzIGNs
ZWFyICh0b2RvPSV6dSkiLCBzYW1wbGVJbmRleCwgbkJ5dGVzQ2xlYXIsIG1hcC5zaXplIC0gcG9z
aXRpb24pOworICAgICAgICBHU1RfVFJBQ0VfT0JKRUNUKHNlbGYsICJzdWJzYW1wbGUgaW5kZXgg
JXUgLSAlaHUgYnl0ZXMgY2xlYXIgKHRvZG89JXp1KSIsIHNhbXBsZUluZGV4LCBuQnl0ZXNDbGVh
ciwgbWFwcGVkQnVmZmVyLnNpemUoKSAtIHBvc2l0aW9uKTsKICAgICAgICAgcG9zaXRpb24gKz0g
bkJ5dGVzQ2xlYXI7CiAgICAgICAgIGlmIChuQnl0ZXNFbmNyeXB0ZWQpIHsKLSAgICAgICAgICAg
IEdTVF9UUkFDRV9PQkpFQ1Qoc2VsZiwgInN1YnNhbXBsZSBpbmRleCAldSAtICVodSBieXRlcyBl
bmNyeXB0ZWQgKHRvZG89JXp1KSIsIHNhbXBsZUluZGV4LCBuQnl0ZXNFbmNyeXB0ZWQsIG1hcC5z
aXplIC0gcG9zaXRpb24pOwotICAgICAgICAgICAgY2lwaGVyRXJyb3IgPSBnY3J5X2NpcGhlcl9k
ZWNyeXB0KHByaXYtPmhhbmRsZSwgbWFwLmRhdGEgKyBwb3NpdGlvbiwgbkJ5dGVzRW5jcnlwdGVk
LCAwLCAwKTsKKyAgICAgICAgICAgIEdTVF9UUkFDRV9PQkpFQ1Qoc2VsZiwgInN1YnNhbXBsZSBp
bmRleCAldSAtICVodSBieXRlcyBlbmNyeXB0ZWQgKHRvZG89JXp1KSIsIHNhbXBsZUluZGV4LCBu
Qnl0ZXNFbmNyeXB0ZWQsIG1hcHBlZEJ1ZmZlci5zaXplKCkgLSBwb3NpdGlvbik7CisgICAgICAg
ICAgICBjaXBoZXJFcnJvciA9IGdjcnlfY2lwaGVyX2RlY3J5cHQocHJpdi0+aGFuZGxlLCBtYXBw
ZWRCdWZmZXIuZGF0YSgpICsgcG9zaXRpb24sIG5CeXRlc0VuY3J5cHRlZCwgMCwgMCk7CiAgICAg
ICAgICAgICBpZiAoY2lwaGVyRXJyb3IpIHsKICAgICAgICAgICAgICAgICBHU1RfRVJST1JfT0JK
RUNUKHNlbGYsICJzdWIgc2FtcGxlIGluZGV4ICV1IGRlY3J5cHRpb24gZmFpbGVkOiAlcyIsIHNh
bXBsZUluZGV4LCBncGdfc3RyZXJyb3IoY2lwaGVyRXJyb3IpKTsKLSAgICAgICAgICAgICAgICBy
ZXR1cm5WYWx1ZSA9IGZhbHNlOwotICAgICAgICAgICAgICAgIGdvdG8gcmVsZWFzZVN1YnNhbXBs
ZXM7CisgICAgICAgICAgICAgICAgZ3N0X2J5dGVfcmVhZGVyX2ZyZWUocmVhZGVyKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBwb3Np
dGlvbiArPSBuQnl0ZXNFbmNyeXB0ZWQ7CiAgICAgICAgIH0KICAgICB9Ci1yZWxlYXNlU3Vic2Ft
cGxlczoKLSAgICBnc3RfYnl0ZV9yZWFkZXJfZnJlZShyZWFkZXIpOwotICAgIGdzdF9idWZmZXJf
dW5tYXAoc3ViU2FtcGxlc0J1ZmZlciwgJnN1YlNhbXBsZXNNYXApOwogCi1yZWxlYXNlQnVmZmVy
OgotICAgIGdzdF9idWZmZXJfdW5tYXAoYnVmZmVyLCAmbWFwKTsKLSAgICByZXR1cm4gcmV0dXJu
VmFsdWU7CisgICAgZ3N0X2J5dGVfcmVhZGVyX2ZyZWUocmVhZGVyKTsKKyAgICByZXR1cm4gdHJ1
ZTsKIH0KIAogc3RhdGljIHZvaWQgd2ViS2l0TWVkaWFDbGVhcktleURlY3J5cHRvclJlbGVhc2VD
aXBoZXIoV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0aW9uRGVjcnlwdCogc2VsZikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344842</attachid>
            <date>2018-07-12 07:22:22 -0700</date>
            <delta_ts>2018-07-13 01:10:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187600-20180712152221.patch</filename>
            <type>text/plain</type>
            <size>17523</size>
            <attacher name="Charlie Turner">cturner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjVhYmY3ZjdiZjZmNTUy
N2Y1N2QzYTM2YzU5Zjk2YmU5ZTE2NTcxYS4uZTllZWYzYzBmOWVlOGNhZTc4ZDA5NjgwZGE1NmM1
MWI0NTEzMjRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE4LTA3LTEyICBDaGFy
bGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXSBB
ZGQgR3N0QnVmZmVyTWFwcGVkIGFic3RyYWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODc2MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGVyZSBpcyBhIHNpbWlsYXIgYWJzdHJhY3Rpb24gY2Fs
bGVkIGBtYXBHc3RCdWZmZXJgIGFuZCBmcmllbmRzLAorICAgICAgICB3aGljaCBoYXZlIGEgc2xp
Z2h0bHkgZGlmZmVyZW50IHVzZS1jYXNlOiB3YW50aW5nIGEgYnVmZmVyIHRoYXQgaXMKKyAgICAg
ICAgbWFwcGVkIGZvciBhIGxvbmdlciBsaWZldGltZSB3aXRob3V0IGhhdmUgdG8ga2VlcCB0cmFj
ayBvZiB0aGUgbWFwCisgICAgICAgIGluZm9zIHNlcGFyYXRlbHkuIFRoZXkgY291bGQgYmUgc3Vi
c3VtZWQgYnkgdGhpcyBhYnN0cmFjdGlvbiwgYnV0CisgICAgICAgIGV2ZXJ5dGltZSB0aGV5IG5l
ZWQgdG8gd3JpdGUgdG8gdGhlIGJ1ZmZlciwgdGhleSdkIGhhdmUgdG8gcmVtYXAKKyAgICAgICAg
dGhlIG1lbW9yeSBibG9ja3MuCisKKyAgICAgICAgVGhpcyBhYnN0cmFjdGlvbiBpcyBtb3JlIGZv
ciBvbmUtc2hvcnQgcmVhZHMgYW5kIHdyaXRlcyBzYXZpbmcgdGhlIHVzZXIKKyAgICAgICAgZnJv
bSByZW1lbWJlcmluZyB0byB1bm1hcCB0aGUgYnVmZmVyIGFuZCBoYXZpbmcgdG8gbWFuYWdlIHRv
CisgICAgICAgIGF1eGlsaWFyeSBHc3RNYXBJbmZvIHN0cnVjdHVyZXMuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmg6CisgICAgICAgIChX
ZWJDb3JlOjpHc3RNYXBwZWRCdWZmZXI6OkdzdE1hcHBlZEJ1ZmZlcik6CisgICAgICAgIChXZWJD
b3JlOjpHc3RNYXBwZWRCdWZmZXI6On5Hc3RNYXBwZWRCdWZmZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6R3N0TWFwcGVkQnVmZmVyOjpkYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkdzdE1hcHBlZEJ1
ZmZlcjo6c2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHc3RNYXBwZWRCdWZmZXI6Om9w
ZXJhdG9yIGJvb2wgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkluYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZTYW1wbGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lckJhc2U6OmhhbmRsZVN5bmNNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVk
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENsZWFy
S2V5RGVjcnlwdG9yR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKHdlYktpdE1lZGlhQ2xlYXJLZXlE
ZWNyeXB0b3JTZXR1cENpcGhlcik6CisgICAgICAgICh3ZWJLaXRNZWRpYUNsZWFyS2V5RGVjcnlw
dG9yRGVjcnlwdCk6CisKIDIwMTgtMDctMTEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIE1lZGlhRGV2aWNlcyBzaG91bGQgZGVyaXZlIGZyb20gRXZlbnRUYXJn
ZXQgaW4gaXRzIElETApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckNvbW1vbi5oCmluZGV4IGNiYjQ5MzIzYTY4ZDIx
YmU5NTY3YTFlZjFjYTdiYjY1NmRmZGU2MjAuLjc5M2I0ZGQ3NTY0ODk3ZmQxMzM4ZWVjMjAzY2U5
ZTk3MTE0OTliMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9HU3RyZWFtZXJDb21tb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyQ29tbW9uLmgKQEAgLTgxLDYgKzgxLDM1IEBA
IGlubGluZSBHc3RDbG9ja1RpbWUgdG9Hc3RDbG9ja1RpbWUoY29uc3QgTWVkaWFUaW1lICZtZWRp
YVRpbWUpCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdzdENsb2NrVGltZT4odG9Hc3RVbnNpZ25l
ZDY0VGltZShtZWRpYVRpbWUpKTsKIH0KIAorY2xhc3MgR3N0TWFwcGVkQnVmZmVyIHsKKyAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShHc3RNYXBwZWRCdWZmZXIpOworcHVibGljOgorICAgIEdzdE1h
cHBlZEJ1ZmZlcihHc3RCdWZmZXIqIGJ1ZmZlciwgR3N0TWFwRmxhZ3MgZmxhZ3MpCisgICAgICAg
IDogbV9idWZmZXIoYnVmZmVyKQorICAgIHsKKyAgICAgICAgbV9pc1ZhbGlkID0gZ3N0X2J1ZmZl
cl9tYXAobV9idWZmZXIsICZtX2luZm8sIGZsYWdzKTsKKyAgICB9CisgICAgLy8gVW5mb3J0dW5h
dGVseSwgR1NUX01BUF9SRUFEV1JJVEUgaXMgZGVmaW5lZCBvdXQgb2YgbGluZSBmcm9tIHRoZSBN
YXBGbGFncworICAgIC8vIGVudW0gYXMgYW4gaW50LCBhbmQgQysrIGlzIGNhcmVmdWwgdG8gbm90
IGltcGxpY2l0eSBjb252ZXJ0IGl0IHRvIGFuIGVudW0uCisgICAgR3N0TWFwcGVkQnVmZmVyKEdz
dEJ1ZmZlciogYnVmZmVyLCBpbnQgZmxhZ3MpCisgICAgICAgIDogR3N0TWFwcGVkQnVmZmVyKGJ1
ZmZlciwgc3RhdGljX2Nhc3Q8R3N0TWFwRmxhZ3M+KGZsYWdzKSkgeyB9CisKKyAgICB+R3N0TWFw
cGVkQnVmZmVyKCkKKyAgICB7CisgICAgICAgIGlmIChtX2lzVmFsaWQpCisgICAgICAgICAgICBn
c3RfYnVmZmVyX3VubWFwKG1fYnVmZmVyLCAmbV9pbmZvKTsKKyAgICB9CisKKyAgICB1aW50OF90
KiBkYXRhKCkgeyBBU1NFUlQobV9pc1ZhbGlkKTsgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3Qq
PihtX2luZm8uZGF0YSk7IH0KKyAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgQVNTRVJUKG1faXNW
YWxpZCk7IHJldHVybiBzdGF0aWNfY2FzdDxzaXplX3Q+KG1faW5mby5zaXplKTsgfQorCisgICAg
ZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuIG1faXNWYWxpZDsgfQorcHJp
dmF0ZToKKyAgICBHc3RCdWZmZXIqIG1fYnVmZmVyOworICAgIEdzdE1hcEluZm8gbV9pbmZvOwor
ICAgIGJvb2wgbV9pc1ZhbGlkIHsgZmFsc2UgfTsKK307CisKIGJvb2wgZ3N0UmVnaXN0cnlIYXNF
bGVtZW50Rm9yTWVkaWFUeXBlKEdMaXN0KiBlbGVtZW50RmFjdG9yaWVzLCBjb25zdCBjaGFyKiBj
YXBzU3RyaW5nKTsKIHZvaWQgY29ubmVjdFNpbXBsZUJ1c01lc3NhZ2VDYWxsYmFjayhHc3RFbGVt
ZW50ICpwaXBlbGluZSk7CiB2b2lkIGRpc2Nvbm5lY3RTaW1wbGVCdXNNZXNzYWdlQ2FsbGJhY2so
R3N0RWxlbWVudCAqcGlwZWxpbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRU
cmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDk4MjcwOTU3ZDE5MjcxODM4ZWY0YzVlYjZl
YTE3YzQxYmQ2OGI2Y2QuLmMyZGQxMjMyMGMxZDg5YzE5NTYyYTYxZTgyNmQ5MGZjMGU3NmJhNDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9J
bmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1l
ci5jcHAKQEAgLTExMiwxOCArMTEyLDE2IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdT
dHJlYW1lcjo6bm90aWZ5VHJhY2tPZlNhbXBsZSgpCiAgICAgICAgICAgICBHU1RfV0FSTklORygi
VHJhY2sgJWQgZ290IHNhbXBsZSB3aXRoIG5vIGJ1ZmZlci4iLCBtX2luZGV4KTsKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0gICAgICAgIEdzdE1hcEluZm8gaW5mbzsKLSAgICAg
ICAgZ2Jvb2xlYW4gcmV0ID0gZ3N0X2J1ZmZlcl9tYXAoYnVmZmVyLCAmaW5mbywgR1NUX01BUF9S
RUFEKTsKLSAgICAgICAgQVNTRVJUKHJldCk7Ci0gICAgICAgIGlmICghcmV0KSB7CisgICAgICAg
IEdzdE1hcHBlZEJ1ZmZlciBtYXBwZWRCdWZmZXIoYnVmZmVyLCBHU1RfTUFQX1JFQUQpOworICAg
ICAgICBBU1NFUlQobWFwcGVkQnVmZmVyKTsKKyAgICAgICAgaWYgKCFtYXBwZWRCdWZmZXIpIHsK
ICAgICAgICAgICAgIEdTVF9XQVJOSU5HKCJUcmFjayAlZCB1bmFibGUgdG8gbWFwIGJ1ZmZlci4i
LCBtX2luZGV4KTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAg
R1NUX0lORk8oIlRyYWNrICVkIHBhcnNpbmcgc2FtcGxlOiAlLipzIiwgbV9pbmRleCwgc3RhdGlj
X2Nhc3Q8aW50PihpbmZvLnNpemUpLAotICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4oaW5mby5kYXRhKSk7Ci0gICAgICAgIGNsaWVudCgpLT5wYXJzZVdlYlZUVEN1ZURhdGEocmVp
bnRlcnByZXRfY2FzdDxjaGFyKj4oaW5mby5kYXRhKSwgaW5mby5zaXplKTsKLSAgICAgICAgZ3N0
X2J1ZmZlcl91bm1hcChidWZmZXIsICZpbmZvKTsKKyAgICAgICAgR1NUX0lORk8oIlRyYWNrICVk
IHBhcnNpbmcgc2FtcGxlOiAlLipzIiwgbV9pbmRleCwgc3RhdGljX2Nhc3Q8aW50PihtYXBwZWRC
dWZmZXIuc2l6ZSgpKSwKKyAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1hcHBl
ZEJ1ZmZlci5kYXRhKCkpKTsKKyAgICAgICAgY2xpZW50KCktPnBhcnNlV2ViVlRUQ3VlRGF0YShy
ZWludGVycHJldF9jYXN0PGNoYXIqPihtYXBwZWRCdWZmZXIuZGF0YSgpKSwgbWFwcGVkQnVmZmVy
LnNpemUoKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKaW5kZXggYjYxNDcxYmNiM2QxYzhhMjcyYzJlY2M2ODY5
YWFiNTM5NzNkYmFmNC4uZTM2MzVkMjIxZjkzNmFmOTkzZmMxOTMyYjRlYjdhYzM3MDU3ZDAyMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
LmNwcApAQCAtNDAzLDIxICs0MDMsMjAgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJCYXNlOjpoYW5kbGVTeW5jTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICAg
ICAgR3N0QnVmZmVyKiBkYXRhID0gbnVsbHB0cjsKICAgICAgICAgICAgIGdzdF9ldmVudF9wYXJz
ZV9wcm90ZWN0aW9uKGV2ZW50LmdldCgpLCAmZXZlbnRLZXlTeXN0ZW1JZCwgJmRhdGEsIG51bGxw
dHIpOwogCi0gICAgICAgICAgICBHc3RNYXBJbmZvIG1hcEluZm87Ci0gICAgICAgICAgICBpZiAo
IWdzdF9idWZmZXJfbWFwKGRhdGEsICZtYXBJbmZvLCBHU1RfTUFQX1JFQUQpKSB7CisgICAgICAg
ICAgICBHc3RNYXBwZWRCdWZmZXIgZGF0YU1hcHBlZChkYXRhLCBHU1RfTUFQX1JFQUQpOworICAg
ICAgICAgICAgaWYgKCFkYXRhTWFwcGVkKSB7CiAgICAgICAgICAgICAgICAgR1NUX1dBUk5JTkco
ImNhbm5vdCBtYXAgJXMgcHJvdGVjdGlvbiBkYXRhIiwgZXZlbnRLZXlTeXN0ZW1JZCk7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBHU1RfVFJBQ0Uo
ImFwcGVuZGluZyBpbml0IGRhdGEgZm9yICVzIG9mIHNpemUgJSIgR19HU0laRV9GT1JNQVQsIGV2
ZW50S2V5U3lzdGVtSWQsIG1hcEluZm8uc2l6ZSk7Ci0gICAgICAgICAgICBHU1RfTUVNRFVNUCgi
aW5pdCBkYXRhIiwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4obWFwSW5m
by5kYXRhKSwgbWFwSW5mby5zaXplKTsKLSAgICAgICAgICAgIGNvbmNhdGVuYXRlZEluaXREYXRh
Q2h1bmtzLmFwcGVuZChtYXBJbmZvLmRhdGEsIG1hcEluZm8uc2l6ZSk7CisgICAgICAgICAgICBH
U1RfVFJBQ0UoImFwcGVuZGluZyBpbml0IGRhdGEgZm9yICVzIG9mIHNpemUgJSIgR19HU0laRV9G
T1JNQVQsIGV2ZW50S2V5U3lzdGVtSWQsIGRhdGFNYXBwZWQuc2l6ZSgpKTsKKyAgICAgICAgICAg
IEdTVF9NRU1EVU1QKCJpbml0IGRhdGEiLCByZWludGVycHJldF9jYXN0PGNvbnN0IHVuc2lnbmVk
IGNoYXIqPihkYXRhTWFwcGVkLmRhdGEoKSksIGRhdGFNYXBwZWQuc2l6ZSgpKTsKKyAgICAgICAg
ICAgIGNvbmNhdGVuYXRlZEluaXREYXRhQ2h1bmtzLmFwcGVuZChkYXRhTWFwcGVkLmRhdGEoKSwg
ZGF0YU1hcHBlZC5zaXplKCkpOwogICAgICAgICAgICAgKytjb25jYXRlbmF0ZWRJbml0RGF0YUNo
dW5rc051bWJlcjsKICAgICAgICAgICAgIGV2ZW50S2V5U3lzdGVtSWRTdHJpbmcgPSBldmVudEtl
eVN5c3RlbUlkOwogICAgICAgICAgICAgaWYgKHN0cmVhbUVuY3J5cHRpb25JbmZvcm1hdGlvbi5z
ZWNvbmQuY29udGFpbnMoZXZlbnRLZXlTeXN0ZW1JZCkpIHsKICAgICAgICAgICAgICAgICBHU1Rf
VFJBQ0UoImNvbnNpZGVyaW5nIGluaXQgZGF0YSBoYW5kbGVkIGZvciAlcyIsIGV2ZW50S2V5U3lz
dGVtSWQpOwogICAgICAgICAgICAgICAgIG1faGFuZGxlZFByb3RlY3Rpb25FdmVudHMuYWRkKEdT
VF9FVkVOVF9TRVFOVU0oZXZlbnQuZ2V0KCkpKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGdzdF9idWZmZXJfdW5tYXAoZGF0YSwgJm1hcEluZm8pOwogICAgICAgICB9CiAKICAgICAgICAg
aWYgKCFjb25jYXRlbmF0ZWRJbml0RGF0YUNodW5rc051bWJlcikKQEAgLTEyMzAsMTYgKzEyMjks
MTUgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjppbml0aWFsaXphdGlv
bkRhdGFFbmNvdW50ZXJlZChHc3RFdmVudCogZXYKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIEdzdE1hcEluZm8gbWFwSW5mbzsKLSAgICBpZiAoIWdzdF9idWZmZXJfbWFwKGRhdGEsICZt
YXBJbmZvLCBHU1RfTUFQX1JFQUQpKSB7CisgICAgR3N0TWFwcGVkQnVmZmVyIGRhdGFNYXBwZWQo
ZGF0YSwgR1NUX01BUF9SRUFEKTsKKyAgICBpZiAoIWRhdGFNYXBwZWQpIHsKICAgICAgICAgR1NU
X1dBUk5JTkcoImNhbm5vdCBtYXAgJXMgcHJvdGVjdGlvbiBkYXRhIiwgZXZlbnRLZXlTeXN0ZW1V
VUlEKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEdTVF9UUkFDRSgiaW5pdCBkYXRh
IGVuY291bnRlcmVkIGZvciAlcyBvZiBzaXplICUiIEdfR1NJWkVfRk9STUFULCBldmVudEtleVN5
c3RlbVVVSUQsIG1hcEluZm8uc2l6ZSk7Ci0gICAgR1NUX01FTURVTVAoImluaXQgZGF0YSIsIHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KG1hcEluZm8uZGF0YSksIG1hcEluZm8uc2l6
ZSk7Ci0gICAgSW5pdERhdGEgaW5pdERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90
Kj4obWFwSW5mby5kYXRhKSwgbWFwSW5mby5zaXplKTsKLSAgICBnc3RfYnVmZmVyX3VubWFwKGRh
dGEsICZtYXBJbmZvKTsKKyAgICBHU1RfVFJBQ0UoImluaXQgZGF0YSBlbmNvdW50ZXJlZCBmb3Ig
JXMgb2Ygc2l6ZSAlIiBHX0dTSVpFX0ZPUk1BVCwgZXZlbnRLZXlTeXN0ZW1VVUlELCBkYXRhTWFw
cGVkLnNpemUoKSk7CisgICAgR1NUX01FTURVTVAoImluaXQgZGF0YSIsIHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgdWludDhfdCo+KGRhdGFNYXBwZWQuZGF0YSgpKSwgZGF0YU1hcHBlZC5zaXplKCkp
OworICAgIEluaXREYXRhIGluaXREYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+
KGRhdGFNYXBwZWQuZGF0YSgpKSwgZGF0YU1hcHBlZC5zaXplKCkpOwogCiAgICAgU3RyaW5nIGV2
ZW50S2V5U3lzdGVtVVVJRFN0cmluZyA9IGV2ZW50S2V5U3lzdGVtVVVJRDsKICAgICBSdW5Mb29w
OjptYWluKCkuZGlzcGF0Y2goW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBldmVudEtl
eVN5c3RlbVVVSUQgPSBldmVudEtleVN5c3RlbVVVSURTdHJpbmcsIGluaXREYXRhXSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dl
YktpdENsZWFyS2V5RGVjcnlwdG9yR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q2xlYXJLZXlEZWNyeXB0b3JHU3RyZWFt
ZXIuY3BwCmluZGV4IDhlZDU3MGM1YTkwNzk3NmJjNzE2ODBlOTljNjc0OTExOTJmODM5MjMuLjMw
ODEyZTA2Y2RkOTJkYTAxM2ZiZjZhYWQ4NGVjNGJhOTgyZGEzNmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q2xlYXJLZXlE
ZWNyeXB0b3JHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q2xlYXJLZXlEZWNyeXB0b3JHU3RyZWFtZXIuY3BwCkBA
IC0yNCw2ICsyNCw3IEBACiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKSAmJiBVU0UoR1NU
UkVBTUVSKQogCisjaW5jbHVkZSAiR1N0cmVhbWVyQ29tbW9uLmgiCiAjaW5jbHVkZSAiR1N0cmVh
bWVyRU1FVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSA8Z2NyeXB0Lmg+CiAjaW5jbHVkZSA8Z3N0L2Jh
c2UvZ3N0Ynl0ZXJlYWRlci5oPgpAQCAtMTU4LDIxICsxNTksMTcgQEAgc3RhdGljIGdib29sZWFu
IHdlYktpdE1lZGlhQ2xlYXJLZXlEZWNyeXB0b3JTZXR1cENpcGhlcihXZWJLaXRNZWRpYUNvbW1v
bkVuY3J5cHQKICAgICBnY3J5X2Vycm9yX3QgZXJyb3I7CiAKICAgICBHUmVmUHRyPEdzdEJ1ZmZl
cj4ga2V5QnVmZmVyOwotICAgIHsKLSAgICAgICAgR3N0TWFwSW5mbyBrZXlJREJ1ZmZlck1hcDsK
LSAgICAgICAgaWYgKCFnc3RfYnVmZmVyX21hcChrZXlJREJ1ZmZlciwgJmtleUlEQnVmZmVyTWFw
LCBHU1RfTUFQX1JFQUQpKSB7Ci0gICAgICAgICAgICBHU1RfRVJST1JfT0JKRUNUKHNlbGYsICJG
YWlsZWQgdG8gbWFwIGtleSBJRCBidWZmZXIiKTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgfQorICAgIFdlYkNvcmU6OkdzdE1hcHBlZEJ1ZmZlciBtYXBwZWRLZXlJZEJ1ZmZl
cihrZXlJREJ1ZmZlciwgR1NUX01BUF9SRUFEKTsKKyAgICBpZiAoIW1hcHBlZEtleUlkQnVmZmVy
KSB7CisgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc2VsZiwgIkZhaWxlZCB0byBtYXAga2V5IElE
IGJ1ZmZlciIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCi0gICAgICAgIGZvciAo
YXV0byYga2V5IDogcHJpdi0+a2V5cykgewotICAgICAgICAgICAgaWYgKCFnc3RfYnVmZmVyX21l
bWNtcChrZXkua2V5SUQuZ2V0KCksIDAsIGtleUlEQnVmZmVyTWFwLmRhdGEsIGtleUlEQnVmZmVy
TWFwLnNpemUpKSB7Ci0gICAgICAgICAgICAgICAga2V5QnVmZmVyID0ga2V5LmtleVZhbHVlOwot
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQorICAgIGZvciAoYXV0byYga2V5
IDogcHJpdi0+a2V5cykgeworICAgICAgICBpZiAoIWdzdF9idWZmZXJfbWVtY21wKGtleS5rZXlJ
RC5nZXQoKSwgMCwgbWFwcGVkS2V5SWRCdWZmZXIuZGF0YSgpLCBtYXBwZWRLZXlJZEJ1ZmZlci5z
aXplKCkpKSB7CisgICAgICAgICAgICBrZXlCdWZmZXIgPSBrZXkua2V5VmFsdWU7CisgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQotCi0gICAgICAgIGdzdF9idWZmZXJfdW5tYXAoa2V5SURC
dWZmZXIsICZrZXlJREJ1ZmZlck1hcCk7CiAgICAgfQogCiAgICAgaWYgKCFrZXlCdWZmZXIpIHsK
QEAgLTE4NiwxNSArMTgzLDE0IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRNZWRpYUNsZWFyS2V5
RGVjcnlwdG9yU2V0dXBDaXBoZXIoV2ViS2l0TWVkaWFDb21tb25FbmNyeXB0CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBHc3RNYXBJbmZvIGtleU1hcDsKLSAgICBpZiAoIWdz
dF9idWZmZXJfbWFwKGtleUJ1ZmZlci5nZXQoKSwgJmtleU1hcCwgR1NUX01BUF9SRUFEKSkgewor
ICAgIFdlYkNvcmU6OkdzdE1hcHBlZEJ1ZmZlciBtYXBwZWRLZXlCdWZmZXIoa2V5QnVmZmVyLmdl
dCgpLCBHU1RfTUFQX1JFQUQpOworICAgIGlmICghbWFwcGVkS2V5QnVmZmVyKSB7CiAgICAgICAg
IEdTVF9FUlJPUl9PQkpFQ1Qoc2VsZiwgIkZhaWxlZCB0byBtYXAgZGVjcnlwdGlvbiBrZXkiKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIEFTU0VSVChrZXlNYXAuc2l6ZSA9
PSBDTEVBUktFWV9TSVpFKTsKLSAgICBlcnJvciA9IGdjcnlfY2lwaGVyX3NldGtleShwcml2LT5o
YW5kbGUsIGtleU1hcC5kYXRhLCBrZXlNYXAuc2l6ZSk7Ci0gICAgZ3N0X2J1ZmZlcl91bm1hcChr
ZXlCdWZmZXIuZ2V0KCksICZrZXlNYXApOworICAgIEFTU0VSVChtYXBwZWRLZXlCdWZmZXIuc2l6
ZSgpID09IENMRUFSS0VZX1NJWkUpOworICAgIGVycm9yID0gZ2NyeV9jaXBoZXJfc2V0a2V5KHBy
aXYtPmhhbmRsZSwgbWFwcGVkS2V5QnVmZmVyLmRhdGEoKSwgbWFwcGVkS2V5QnVmZmVyLnNpemUo
KSk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc2VsZiwgImdj
cnlfY2lwaGVyX3NldGtleSBmYWlsZWQ6ICVzIiwgZ3BnX3N0cmVycm9yKGVycm9yKSk7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKQEAgLTIwNSwyNyArMjAxLDI2IEBAIHN0YXRpYyBnYm9vbGVhbiB3
ZWJLaXRNZWRpYUNsZWFyS2V5RGVjcnlwdG9yU2V0dXBDaXBoZXIoV2ViS2l0TWVkaWFDb21tb25F
bmNyeXB0CiAKIHN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRNZWRpYUNsZWFyS2V5RGVjcnlwdG9yRGVj
cnlwdChXZWJLaXRNZWRpYUNvbW1vbkVuY3J5cHRpb25EZWNyeXB0KiBzZWxmLCBHc3RCdWZmZXIq
IGl2QnVmZmVyLCBHc3RCdWZmZXIqIGJ1ZmZlciwgdW5zaWduZWQgc3ViU2FtcGxlQ291bnQsIEdz
dEJ1ZmZlciogc3ViU2FtcGxlc0J1ZmZlcikKIHsKLSAgICBHc3RNYXBJbmZvIGl2TWFwOwogICAg
IC8vIENoZWNrIGl2QnVmZmVyIGlzbid0IG51bGwuCiAgICAgaWYgKCFpdkJ1ZmZlcikgewogICAg
ICAgICBHU1RfRVJST1JfT0JKRUNUKHNlbGYsICJFcnJvciwgdGhlIGl2QnVmZmVyIGlzIG51bGwi
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIGlmICghZ3N0X2J1ZmZlcl9t
YXAoaXZCdWZmZXIsICZpdk1hcCwgR1NUX01BUF9SRUFEKSkgeworICAgIFdlYkNvcmU6OkdzdE1h
cHBlZEJ1ZmZlciBtYXBwZWRJVkJ1ZmZlcihpdkJ1ZmZlciwgR1NUX01BUF9SRUFEKTsKKyAgICBp
ZiAoIW1hcHBlZElWQnVmZmVyKSB7CiAgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc2VsZiwgIkZh
aWxlZCB0byBtYXAgSVYiKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIHVp
bnQ4X3QgY3RyW0NMRUFSS0VZX1NJWkVdOwotICAgIGlmIChpdk1hcC5zaXplID09IDgpIHsKKyAg
ICBpZiAobWFwcGVkSVZCdWZmZXIuc2l6ZSgpID09IDgpIHsKICAgICAgICAgbWVtc2V0KGN0ciAr
IDgsIDAsIDgpOwotICAgICAgICBtZW1jcHkoY3RyLCBpdk1hcC5kYXRhLCA4KTsKKyAgICAgICAg
bWVtY3B5KGN0ciwgbWFwcGVkSVZCdWZmZXIuZGF0YSgpLCA4KTsKICAgICB9IGVsc2UgewotICAg
ICAgICBBU1NFUlQoaXZNYXAuc2l6ZSA9PSBDTEVBUktFWV9TSVpFKTsKLSAgICAgICAgbWVtY3B5
KGN0ciwgaXZNYXAuZGF0YSwgQ0xFQVJLRVlfU0laRSk7CisgICAgICAgIEFTU0VSVChtYXBwZWRJ
VkJ1ZmZlci5zaXplKCkgPT0gQ0xFQVJLRVlfU0laRSk7CisgICAgICAgIG1lbWNweShjdHIsIG1h
cHBlZElWQnVmZmVyLmRhdGEoKSwgQ0xFQVJLRVlfU0laRSk7CiAgICAgfQotICAgIGdzdF9idWZm
ZXJfdW5tYXAoaXZCdWZmZXIsICZpdk1hcCk7CiAKICAgICBXZWJLaXRNZWRpYUNsZWFyS2V5RGVj
cnlwdFByaXZhdGUqIHByaXYgPSBXRUJLSVRfTUVESUFfQ0tfREVDUllQVF9HRVRfUFJJVkFURShX
RUJLSVRfTUVESUFfQ0tfREVDUllQVChzZWxmKSk7CiAgICAgZ2NyeV9lcnJvcl90IGNpcGhlckVy
cm9yID0gZ2NyeV9jaXBoZXJfc2V0Y3RyKHByaXYtPmhhbmRsZSwgY3RyLCBDTEVBUktFWV9TSVpF
KTsKQEAgLTI0MCw1MiArMjM1LDQ4IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRNZWRpYUNsZWFy
S2V5RGVjcnlwdG9yRGVjcnlwdChXZWJLaXRNZWRpYUNvbW1vbkVuY3J5cHRpb25ECiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBHc3RNYXBJbmZvIG1hcDsKLSAgICBnYm9vbGVh
biBidWZmZXJNYXBwZWQgPSBnc3RfYnVmZmVyX21hcChidWZmZXIsICZtYXAsIHN0YXRpY19jYXN0
PEdzdE1hcEZsYWdzPihHU1RfTUFQX1JFQURXUklURSkpOwotICAgIGlmICghYnVmZmVyTWFwcGVk
KSB7CisgICAgV2ViQ29yZTo6R3N0TWFwcGVkQnVmZmVyIG1hcHBlZEJ1ZmZlcihidWZmZXIsIEdT
VF9NQVBfUkVBRFdSSVRFKTsKKyAgICBpZiAoIW1hcHBlZEJ1ZmZlcikgewogICAgICAgICBHU1Rf
RVJST1JfT0JKRUNUKHNlbGYsICJGYWlsZWQgdG8gbWFwIGJ1ZmZlciIpOwogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogCi0gICAgYm9vbCByZXR1cm5WYWx1ZSA9IHRydWU7CiAgICAgR3N0
Qnl0ZVJlYWRlciogcmVhZGVyOwogICAgIHVuc2lnbmVkIHBvc2l0aW9uID0gMDsKICAgICB1bnNp
Z25lZCBzYW1wbGVJbmRleCA9IDA7Ci0gICAgR3N0TWFwSW5mbyBzdWJTYW1wbGVzTWFwOwogCiAg
ICAgaWYgKCFzdWJTYW1wbGVDb3VudCkgewogICAgICAgICAvLyBGdWxsIHNhbXBsZSBlbmNyeXB0
aW9uLgotICAgICAgICBHU1RfVFJBQ0VfT0JKRUNUKHNlbGYsICJmdWxsIHNhbXBsZSBlbmNyeXB0
aW9uOiAlenUgZW5jcnlwdGVkIGJ5dGVzIiwgbWFwLnNpemUpOworICAgICAgICBHU1RfVFJBQ0Vf
T0JKRUNUKHNlbGYsICJmdWxsIHNhbXBsZSBlbmNyeXB0aW9uOiAlenUgZW5jcnlwdGVkIGJ5dGVz
IiwgbWFwcGVkQnVmZmVyLnNpemUoKSk7CiAKICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGJ1ZmZl
ciBpcyBlbXB0eS4KLSAgICAgICAgaWYgKG1hcC5zaXplKSB7Ci0gICAgICAgICAgICBjaXBoZXJF
cnJvciA9IGdjcnlfY2lwaGVyX2RlY3J5cHQocHJpdi0+aGFuZGxlLCBtYXAuZGF0YSwgbWFwLnNp
emUsIDAsIDApOworICAgICAgICBpZiAobWFwcGVkQnVmZmVyLnNpemUoKSkgeworICAgICAgICAg
ICAgY2lwaGVyRXJyb3IgPSBnY3J5X2NpcGhlcl9kZWNyeXB0KHByaXYtPmhhbmRsZSwgbWFwcGVk
QnVmZmVyLmRhdGEoKSwgbWFwcGVkQnVmZmVyLnNpemUoKSwgMCwgMCk7CiAgICAgICAgICAgICBp
ZiAoY2lwaGVyRXJyb3IpIHsKICAgICAgICAgICAgICAgICBHU1RfRVJST1JfT0JKRUNUKHNlbGYs
ICJmdWxsIHNhbXBsZSBkZWNyeXB0aW9uIGZhaWxlZDogJXMiLCBncGdfc3RyZXJyb3IoY2lwaGVy
RXJyb3IpKTsKLSAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IGZhbHNlOworICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBn
b3RvIHJlbGVhc2VCdWZmZXI7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIC8v
IENoZWNrIHN1YlNhbXBsZXNCdWZmZXIgaXNuJ3QgbnVsbC4KICAgICBpZiAoIXN1YlNhbXBsZXNC
dWZmZXIpIHsKICAgICAgICAgR1NUX0VSUk9SX09CSkVDVChzZWxmLCAiRXJyb3IsIHRoZSBzdWJT
YW1wbGVCdWZmZXIgaXMgbnVsbCIpOwotICAgICAgICByZXR1cm5WYWx1ZSA9IGZhbHNlOwotICAg
ICAgICBnb3RvIHJlbGVhc2VCdWZmZXI7CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAK
ICAgICAvLyBTdWJzYW1wbGUgZW5jcnlwdGlvbi4KLSAgICBpZiAoIWdzdF9idWZmZXJfbWFwKHN1
YlNhbXBsZXNCdWZmZXIsICZzdWJTYW1wbGVzTWFwLCBHU1RfTUFQX1JFQUQpKSB7CisgICAgV2Vi
Q29yZTo6R3N0TWFwcGVkQnVmZmVyIG1hcHBlZFN1YlNhbXBsZXNCdWZmZXIoc3ViU2FtcGxlc0J1
ZmZlciwgR1NUX01BUF9SRUFEKTsKKyAgICBpZiAoIW1hcHBlZFN1YlNhbXBsZXNCdWZmZXIpIHsK
ICAgICAgICAgR1NUX0VSUk9SX09CSkVDVChzZWxmLCAiRmFpbGVkIHRvIG1hcCBzdWJzYW1wbGUg
YnVmZmVyIik7Ci0gICAgICAgIHJldHVyblZhbHVlID0gZmFsc2U7Ci0gICAgICAgIGdvdG8gcmVs
ZWFzZUJ1ZmZlcjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIHJlYWRlciA9
IGdzdF9ieXRlX3JlYWRlcl9uZXcoc3ViU2FtcGxlc01hcC5kYXRhLCBzdWJTYW1wbGVzTWFwLnNp
emUpOwotICAgIEdTVF9ERUJVR19PQkpFQ1Qoc2VsZiwgInBvc2l0aW9uOiAlZCwgc2l6ZTogJXp1
IiwgcG9zaXRpb24sIG1hcC5zaXplKTsKKyAgICByZWFkZXIgPSBnc3RfYnl0ZV9yZWFkZXJfbmV3
KG1hcHBlZFN1YlNhbXBsZXNCdWZmZXIuZGF0YSgpLCBtYXBwZWRTdWJTYW1wbGVzQnVmZmVyLnNp
emUoKSk7CisgICAgR1NUX0RFQlVHX09CSkVDVChzZWxmLCAicG9zaXRpb246ICVkLCBzaXplOiAl
enUiLCBwb3NpdGlvbiwgbWFwcGVkQnVmZmVyLnNpemUoKSk7CiAKLSAgICB3aGlsZSAocG9zaXRp
b24gPCBtYXAuc2l6ZSkgeworICAgIHdoaWxlIChwb3NpdGlvbiA8IG1hcHBlZEJ1ZmZlci5zaXpl
KCkpIHsKICAgICAgICAgZ3VpbnQxNiBuQnl0ZXNDbGVhciA9IDA7CiAgICAgICAgIGd1aW50MzIg
bkJ5dGVzRW5jcnlwdGVkID0gMDsKIApAQCAtMjkzLDM1ICsyODQsMzEgQEAgc3RhdGljIGdib29s
ZWFuIHdlYktpdE1lZGlhQ2xlYXJLZXlEZWNyeXB0b3JEZWNyeXB0KFdlYktpdE1lZGlhQ29tbW9u
RW5jcnlwdGlvbkQKICAgICAgICAgICAgIGlmICghZ3N0X2J5dGVfcmVhZGVyX2dldF91aW50MTZf
YmUocmVhZGVyLCAmbkJ5dGVzQ2xlYXIpCiAgICAgICAgICAgICAgICAgfHwgIWdzdF9ieXRlX3Jl
YWRlcl9nZXRfdWludDMyX2JlKHJlYWRlciwgJm5CeXRlc0VuY3J5cHRlZCkpIHsKICAgICAgICAg
ICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHNlbGYsICJ1bnN1cHBvcnRlZCIpOwotICAgICAgICAg
ICAgICAgIHJldHVyblZhbHVlID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgZ290byByZWxlYXNl
U3Vic2FtcGxlczsKKyAgICAgICAgICAgICAgICBnc3RfYnl0ZV9yZWFkZXJfZnJlZShyZWFkZXIp
OworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIHNhbXBsZUluZGV4Kys7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBuQnl0ZXND
bGVhciA9IDA7Ci0gICAgICAgICAgICBuQnl0ZXNFbmNyeXB0ZWQgPSBtYXAuc2l6ZSAtIHBvc2l0
aW9uOworICAgICAgICAgICAgbkJ5dGVzRW5jcnlwdGVkID0gbWFwcGVkQnVmZmVyLnNpemUoKSAt
IHBvc2l0aW9uOwogICAgICAgICB9CiAKLSAgICAgICAgR1NUX1RSQUNFX09CSkVDVChzZWxmLCAi
c3Vic2FtcGxlIGluZGV4ICV1IC0gJWh1IGJ5dGVzIGNsZWFyICh0b2RvPSV6dSkiLCBzYW1wbGVJ
bmRleCwgbkJ5dGVzQ2xlYXIsIG1hcC5zaXplIC0gcG9zaXRpb24pOworICAgICAgICBHU1RfVFJB
Q0VfT0JKRUNUKHNlbGYsICJzdWJzYW1wbGUgaW5kZXggJXUgLSAlaHUgYnl0ZXMgY2xlYXIgKHRv
ZG89JXp1KSIsIHNhbXBsZUluZGV4LCBuQnl0ZXNDbGVhciwgbWFwcGVkQnVmZmVyLnNpemUoKSAt
IHBvc2l0aW9uKTsKICAgICAgICAgcG9zaXRpb24gKz0gbkJ5dGVzQ2xlYXI7CiAgICAgICAgIGlm
IChuQnl0ZXNFbmNyeXB0ZWQpIHsKLSAgICAgICAgICAgIEdTVF9UUkFDRV9PQkpFQ1Qoc2VsZiwg
InN1YnNhbXBsZSBpbmRleCAldSAtICVodSBieXRlcyBlbmNyeXB0ZWQgKHRvZG89JXp1KSIsIHNh
bXBsZUluZGV4LCBuQnl0ZXNFbmNyeXB0ZWQsIG1hcC5zaXplIC0gcG9zaXRpb24pOwotICAgICAg
ICAgICAgY2lwaGVyRXJyb3IgPSBnY3J5X2NpcGhlcl9kZWNyeXB0KHByaXYtPmhhbmRsZSwgbWFw
LmRhdGEgKyBwb3NpdGlvbiwgbkJ5dGVzRW5jcnlwdGVkLCAwLCAwKTsKKyAgICAgICAgICAgIEdT
VF9UUkFDRV9PQkpFQ1Qoc2VsZiwgInN1YnNhbXBsZSBpbmRleCAldSAtICVodSBieXRlcyBlbmNy
eXB0ZWQgKHRvZG89JXp1KSIsIHNhbXBsZUluZGV4LCBuQnl0ZXNFbmNyeXB0ZWQsIG1hcHBlZEJ1
ZmZlci5zaXplKCkgLSBwb3NpdGlvbik7CisgICAgICAgICAgICBjaXBoZXJFcnJvciA9IGdjcnlf
Y2lwaGVyX2RlY3J5cHQocHJpdi0+aGFuZGxlLCBtYXBwZWRCdWZmZXIuZGF0YSgpICsgcG9zaXRp
b24sIG5CeXRlc0VuY3J5cHRlZCwgMCwgMCk7CiAgICAgICAgICAgICBpZiAoY2lwaGVyRXJyb3Ip
IHsKICAgICAgICAgICAgICAgICBHU1RfRVJST1JfT0JKRUNUKHNlbGYsICJzdWIgc2FtcGxlIGlu
ZGV4ICV1IGRlY3J5cHRpb24gZmFpbGVkOiAlcyIsIHNhbXBsZUluZGV4LCBncGdfc3RyZXJyb3Io
Y2lwaGVyRXJyb3IpKTsKLSAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IGZhbHNlOwotICAg
ICAgICAgICAgICAgIGdvdG8gcmVsZWFzZVN1YnNhbXBsZXM7CisgICAgICAgICAgICAgICAgZ3N0
X2J5dGVfcmVhZGVyX2ZyZWUocmVhZGVyKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBwb3NpdGlvbiArPSBuQnl0ZXNFbmNyeXB0ZWQ7
CiAgICAgICAgIH0KICAgICB9Ci1yZWxlYXNlU3Vic2FtcGxlczoKLSAgICBnc3RfYnl0ZV9yZWFk
ZXJfZnJlZShyZWFkZXIpOwotICAgIGdzdF9idWZmZXJfdW5tYXAoc3ViU2FtcGxlc0J1ZmZlciwg
JnN1YlNhbXBsZXNNYXApOwogCi1yZWxlYXNlQnVmZmVyOgotICAgIGdzdF9idWZmZXJfdW5tYXAo
YnVmZmVyLCAmbWFwKTsKLSAgICByZXR1cm4gcmV0dXJuVmFsdWU7CisgICAgZ3N0X2J5dGVfcmVh
ZGVyX2ZyZWUocmVhZGVyKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIHZvaWQgd2Vi
S2l0TWVkaWFDbGVhcktleURlY3J5cHRvclJlbGVhc2VDaXBoZXIoV2ViS2l0TWVkaWFDb21tb25F
bmNyeXB0aW9uRGVjcnlwdCogc2VsZikK
</data>

          </attachment>
      

    </bug>

</bugzilla>