<?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>214668</bug_id>
          
          <creation_ts>2020-07-22 17:55:43 -0700</creation_ts>
          <short_desc>Fix missing exception checks below RTCPeerConnection.generateCertificate().</short_desc>
          <delta_ts>2020-07-23 01:49:47 -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>WebCore JavaScript</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1674058</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-07-22 17:55:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/65929975&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674066</commentid>
    <comment_count>1</comment_count>
      <attachid>405005</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-07-22 18:16:06 -0700</bug_when>
    <thetext>Created attachment 405005
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674069</commentid>
    <comment_count>2</comment_count>
      <attachid>405005</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-22 18:23:24 -0700</bug_when>
    <thetext>Comment on attachment 405005
proposed patch.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674091</commentid>
    <comment_count>3</comment_count>
      <attachid>405010</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-07-22 19:47:53 -0700</bug_when>
    <thetext>Created attachment 405010
proposed patch.

Previous fix has a bug.  Let&apos;s try this new one on the EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674112</commentid>
    <comment_count>4</comment_count>
      <attachid>405016</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-07-22 21:29:02 -0700</bug_when>
    <thetext>Created attachment 405016
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674116</commentid>
    <comment_count>5</comment_count>
      <attachid>405016</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-07-22 22:16:54 -0700</bug_when>
    <thetext>Comment on attachment 405016
proposed patch.

EWS bots are green.  This is ready for a review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674117</commentid>
    <comment_count>6</comment_count>
      <attachid>405016</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-22 22:21:25 -0700</bug_when>
    <thetext>Comment on attachment 405016
proposed patch.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674135</commentid>
    <comment_count>7</comment_count>
      <attachid>405016</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-23 01:43:48 -0700</bug_when>
    <thetext>Comment on attachment 405016
proposed patch.

Looks like EWS is green!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674138</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-23 01:49:46 -0700</bug_when>
    <thetext>Committed r264751: &lt;https://trac.webkit.org/changeset/264751&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 405016.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405005</attachid>
            <date>2020-07-22 18:16:06 -0700</date>
            <delta_ts>2020-07-22 19:47:53 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-214668.patch</filename>
            <type>text/plain</type>
            <size>16770</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NDczNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA3LTIyICBNYXJrIExh
bSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggbWlzc2luZyBleGNlcHRpb24g
Y2hlY2tzIGluIGJlbG93IFJUQ1BlZXJDb25uZWN0aW9uLmdlbmVyYXRlQ2VydGlmaWNhdGUoKS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDY2OAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjU5Mjk5NzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogd2VicnRjL21pc3NpbmctZXhjZXB0aW9u
LWNoZWNrcy1SVENQZWVyQ29ubmVjdGlvbi1nZW5lcmF0ZUNlcnRpZmljYXRlLmh0bWwKKworICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVydFVuaW9uLmg6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNET01PcGVyYXRpb25SZXR1cm5pbmdQcm9taXNlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpJRExPcGVyYXRpb25SZXR1cm5pbmdQcm9taXNlOjpjYWxsKToKKyAgICAgICAgKFdlYkNvcmU6
OklETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U6OmNhbGxSZXR1cm5pbmdPd25Qcm9taXNlKToK
KyAgICAgICAgKFdlYkNvcmU6OklETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U6OmNhbGxTdGF0
aWMpOgorICAgICAgICAoV2ViQ29yZTo6SURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTo6Y2Fs
bFN0YXRpY1JldHVybmluZ093blByb21pc2UpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
UHJvbWlzZURlZmVycmVkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZmVycmVkUHJvbWlzZTo6
cmVqZWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5oOgor
ICAgICAgICAoV2ViQ29yZTo6Y2FsbFByb21pc2VGdW5jdGlvbik6CisKIDIwMjAtMDctMjIgIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgdXBkYXRlIGZlYXR1cmUgc3RhdHVzIGZvciBhc3luYyBjbGlwYm9hcmQgQVBJCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRVbmlvbi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFVuaW9uLmgJKHJldmlz
aW9uIDI2NDczNykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFVu
aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNi0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMTcyLDcgKzE3Miw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lLi4u
IFQ+IHN0cnVjdCBDb252ZXJ0ZXIKICAgICAgICAgY29uc3RleHByIGJvb2wgaGFzTnVsbFR5cGUg
PSBicmlnYW5kOjphbnk8VHlwZUxpc3QsIHN0ZDo6aXNfc2FtZTxJRExOdWxsLCBicmlnYW5kOjpf
MT4+Ojp2YWx1ZTsKICAgICAgICAgaWYgKGhhc051bGxUeXBlKSB7CiAgICAgICAgICAgICBpZiAo
dmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gQ29uZGl0
aW9uYWxDb252ZXJ0ZXI8UmV0dXJuVHlwZSwgSURMTnVsbCwgaGFzTnVsbFR5cGU+Ojpjb252ZXJ0
KGxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKS52YWx1ZSgpOworICAgICAgICAgICAgICAgIFJF
TEVBU0VfQU5EX1JFVFVSTihzY29wZSwgKENvbmRpdGlvbmFsQ29udmVydGVyPFJldHVyblR5cGUs
IElETE51bGwsIGhhc051bGxUeXBlPjo6Y29udmVydChsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1
ZSkudmFsdWUoKSkpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICAvLyAyLiBMZXQgdHlw
ZXMgYmUgdGhlIGZsYXR0ZW5lZCBtZW1iZXIgdHlwZXMgb2YgdGhlIHVuaW9uIHR5cGUuCkBAIC0x
ODIsNyArMTgyLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gVD4gc3RydWN0IENvbnZlcnRlcgog
ICAgICAgICBpZiAoaGFzRGljdGlvbmFyeVR5cGUpIHsKICAgICAgICAgICAgIGlmICh2YWx1ZS5p
c1VuZGVmaW5lZE9yTnVsbCgpKSB7CiAgICAgICAgICAgICAgICAgLy8gICAgIDEuIElmIHR5cGVz
IGluY2x1ZGVzIGEgZGljdGlvbmFyeSB0eXBlLCB0aGVuIHJldHVybiB0aGUgcmVzdWx0IG9mIGNv
bnZlcnRpbmcgViB0byB0aGF0IGRpY3Rpb25hcnkgdHlwZS4KLSAgICAgICAgICAgICAgICByZXR1
cm4gQ29uZGl0aW9uYWxDb252ZXJ0ZXI8UmV0dXJuVHlwZSwgRGljdGlvbmFyeVR5cGUsIGhhc0Rp
Y3Rpb25hcnlUeXBlPjo6Y29udmVydChsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSkudmFsdWUo
KTsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIChDb25kaXRpb25h
bENvbnZlcnRlcjxSZXR1cm5UeXBlLCBEaWN0aW9uYXJ5VHlwZSwgaGFzRGljdGlvbmFyeVR5cGU+
Ojpjb252ZXJ0KGxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKS52YWx1ZSgpKSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KIApAQCAtMjMxLDcgKzIzMSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1l
Li4uIFQ+IHN0cnVjdCBDb252ZXJ0ZXIKICAgICAgICAgICAgIGlmIChhcnJheUJ1ZmZlcikgewog
ICAgICAgICAgICAgICAgIGlmIChoYXNBcnJheUJ1ZmZlclR5cGUpCiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBDb25kaXRpb25hbFJldHVybmVyPFJldHVyblR5cGUsIGhhc0FycmF5QnVmZmVy
VHlwZT46OmdldChXVEZNb3ZlKGFycmF5QnVmZmVyKSkudmFsdWUoKTsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gQ29uZGl0aW9uYWxDb252ZXJ0ZXI8UmV0dXJuVHlwZSwgT2JqZWN0VHlwZSwgaGFz
T2JqZWN0VHlwZT46OmNvbnZlcnQobGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpLnZhbHVlKCk7
CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCAoQ29uZGl0aW9uYWxD
b252ZXJ0ZXI8UmV0dXJuVHlwZSwgT2JqZWN0VHlwZSwgaGFzT2JqZWN0VHlwZT46OmNvbnZlcnQo
bGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpLnZhbHVlKCkpKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQogCkBAIC0yNDEsNyArMjQxLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gVD4gc3Ry
dWN0IENvbnZlcnRlcgogICAgICAgICAgICAgaWYgKGFycmF5QnVmZmVyVmlldykgewogICAgICAg
ICAgICAgICAgIGlmIChoYXNBcnJheUJ1ZmZlclZpZXdUeXBlKQogICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gQ29uZGl0aW9uYWxSZXR1cm5lcjxSZXR1cm5UeXBlLCBoYXNBcnJheUJ1ZmZlclZp
ZXdUeXBlPjo6Z2V0KFdURk1vdmUoYXJyYXlCdWZmZXJWaWV3KSkudmFsdWUoKTsKLSAgICAgICAg
ICAgICAgICByZXR1cm4gQ29uZGl0aW9uYWxDb252ZXJ0ZXI8UmV0dXJuVHlwZSwgT2JqZWN0VHlw
ZSwgaGFzT2JqZWN0VHlwZT46OmNvbnZlcnQobGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpLnZh
bHVlKCk7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCAoQ29uZGl0
aW9uYWxDb252ZXJ0ZXI8UmV0dXJuVHlwZSwgT2JqZWN0VHlwZSwgaGFzT2JqZWN0VHlwZT46OmNv
bnZlcnQobGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpLnZhbHVlKCkpKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogCkBAIC0yNTQsNyArMjU0LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUuLi4g
VD4gc3RydWN0IENvbnZlcnRlcgogICAgICAgICAgICAgaWYgKGRhdGFWaWV3KSB7CiAgICAgICAg
ICAgICAgICAgaWYgKGhhc0RhdGFWaWV3VHlwZSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IENvbmRpdGlvbmFsUmV0dXJuZXI8UmV0dXJuVHlwZSwgaGFzRGF0YVZpZXdUeXBlPjo6Z2V0KFdU
Rk1vdmUoZGF0YVZpZXcpKS52YWx1ZSgpOwotICAgICAgICAgICAgICAgIHJldHVybiBDb25kaXRp
b25hbENvbnZlcnRlcjxSZXR1cm5UeXBlLCBPYmplY3RUeXBlLCBoYXNPYmplY3RUeXBlPjo6Y29u
dmVydChsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSkudmFsdWUoKTsKKyAgICAgICAgICAgICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIChDb25kaXRpb25hbENvbnZlcnRlcjxSZXR1cm5U
eXBlLCBPYmplY3RUeXBlLCBoYXNPYmplY3RUeXBlPjo6Y29udmVydChsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB2YWx1ZSkudmFsdWUoKSkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKQEAgLTMw
Nyw3ICszMDcsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUPiBzdHJ1Y3QgQ29udmVydGVyCiAg
ICAgICAgICAgICAgICAgICAgICAgICBhdXRvIG1ldGhvZCA9IEpTQzo6aXRlcmF0b3JNZXRob2Qo
JmxleGljYWxHbG9iYWxPYmplY3QsIG9iamVjdCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBSZXR1cm5UeXBlKCkpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKCFtZXRob2QuaXNVbmRlZmluZWQoKSkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gQ29uZGl0aW9uYWxTZXF1ZW5jZUNvbnZlcnRlcjxSZXR1cm5UeXBlLCBT
ZXF1ZW5jZVR5cGUsIGhhc1NlcXVlbmNlVHlwZT46OmNvbnZlcnQobGV4aWNhbEdsb2JhbE9iamVj
dCwgb2JqZWN0LCBtZXRob2QpLnZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCAoQ29uZGl0aW9uYWxTZXF1ZW5jZUNvbnZlcnRlcjxS
ZXR1cm5UeXBlLCBTZXF1ZW5jZVR5cGUsIGhhc1NlcXVlbmNlVHlwZT46OmNvbnZlcnQobGV4aWNh
bEdsb2JhbE9iamVjdCwgb2JqZWN0LCBtZXRob2QpLnZhbHVlKCkpKTsKICAgICAgICAgICAgICAg
ICAgICAgfQogCiAgICAgICAgICAgICAgICAgICAgIC8vICAgICAyLiBJZiB0eXBlcyBpbmNsdWRl
cyBhIGZyb3plbiBhcnJheSB0eXBlLCB0aGVuOgpAQCAtMzIwLDI0ICszMjAsMjQgQEAgdGVtcGxh
dGU8dHlwZW5hbWUuLi4gVD4gc3RydWN0IENvbnZlcnRlcgogICAgICAgICAgICAgICAgICAgICAg
ICAgYXV0byBtZXRob2QgPSBKU0M6Oml0ZXJhdG9yTWV0aG9kKCZsZXhpY2FsR2xvYmFsT2JqZWN0
LCBvYmplY3QpOwogICAgICAgICAgICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgUmV0dXJuVHlwZSgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbWV0aG9k
LmlzVW5kZWZpbmVkKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENvbmRp
dGlvbmFsU2VxdWVuY2VDb252ZXJ0ZXI8UmV0dXJuVHlwZSwgRnJvemVuQXJyYXlUeXBlLCBoYXNG
cm96ZW5BcnJheVR5cGU+Ojpjb252ZXJ0KGxleGljYWxHbG9iYWxPYmplY3QsIG9iamVjdCwgbWV0
aG9kKS52YWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQU5EX1JF
VFVSTihzY29wZSwgKENvbmRpdGlvbmFsU2VxdWVuY2VDb252ZXJ0ZXI8UmV0dXJuVHlwZSwgRnJv
emVuQXJyYXlUeXBlLCBoYXNGcm96ZW5BcnJheVR5cGU+Ojpjb252ZXJ0KGxleGljYWxHbG9iYWxP
YmplY3QsIG9iamVjdCwgbWV0aG9kKS52YWx1ZSgpKSk7CiAgICAgICAgICAgICAgICAgICAgIH0K
IAogICAgICAgICAgICAgICAgICAgICAvLyAgICAgMy4gSWYgdHlwZXMgaW5jbHVkZXMgYSBkaWN0
aW9uYXJ5IHR5cGUsIHRoZW4gcmV0dXJuIHRoZSByZXN1bHQgb2YKICAgICAgICAgICAgICAgICAg
ICAgLy8gICAgICAgIGNvbnZlcnRpbmcgViB0byB0aGF0IGRpY3Rpb25hcnkgdHlwZS4KICAgICAg
ICAgICAgICAgICAgICAgaWYgKGhhc0RpY3Rpb25hcnlUeXBlKQotICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIENvbmRpdGlvbmFsQ29udmVydGVyPFJldHVyblR5cGUsIERpY3Rpb25hcnlU
eXBlLCBoYXNEaWN0aW9uYXJ5VHlwZT46OmNvbnZlcnQobGV4aWNhbEdsb2JhbE9iamVjdCwgdmFs
dWUpLnZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
c2NvcGUsIChDb25kaXRpb25hbENvbnZlcnRlcjxSZXR1cm5UeXBlLCBEaWN0aW9uYXJ5VHlwZSwg
aGFzRGljdGlvbmFyeVR5cGU+Ojpjb252ZXJ0KGxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKS52
YWx1ZSgpKSk7CiAKICAgICAgICAgICAgICAgICAgICAgLy8gICAgIDQuIElmIHR5cGVzIGluY2x1
ZGVzIGEgcmVjb3JkIHR5cGUsIHRoZW4gcmV0dXJuIHRoZSByZXN1bHQgb2YgY29udmVydGluZyBW
IHRvIHRoYXQgcmVjb3JkIHR5cGUuCiAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNSZWNvcmRU
eXBlKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENvbmRpdGlvbmFsQ29udmVydGVy
PFJldHVyblR5cGUsIFJlY29yZFR5cGUsIGhhc1JlY29yZFR5cGU+Ojpjb252ZXJ0KGxleGljYWxH
bG9iYWxPYmplY3QsIHZhbHVlKS52YWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHNjb3BlLCAoQ29uZGl0aW9uYWxDb252ZXJ0ZXI8UmV0dXJuVHlwZSwg
UmVjb3JkVHlwZSwgaGFzUmVjb3JkVHlwZT46OmNvbnZlcnQobGV4aWNhbEdsb2JhbE9iamVjdCwg
dmFsdWUpLnZhbHVlKCkpKTsKIAogICAgICAgICAgICAgICAgICAgICAvLyAgICAgNS4gSWYgdHlw
ZXMgaW5jbHVkZXMgYSBjYWxsYmFjayBpbnRlcmZhY2UgdHlwZSwgdGhlbiByZXR1cm4gdGhlIHJl
c3VsdCBvZiBjb252ZXJ0aW5nIFYgdG8gdGhhdCBpbnRlcmZhY2UgdHlwZS4KICAgICAgICAgICAg
ICAgICAgICAgLy8gICAgICAgICAoRklYTUU6IEFkZCBzdXBwb3J0IGZvciBjYWxsYmFjayBpbnRl
cmZhY2UgdHlwZSBhbmQgc3RlcCAxMi41KQogCiAgICAgICAgICAgICAgICAgICAgIC8vICAgICA2
LiBJZiB0eXBlcyBpbmNsdWRlcyBvYmplY3QsIHRoZW4gcmV0dXJuIHRoZSBJREwgdmFsdWUgdGhh
dCBpcyBhIHJlZmVyZW5jZSB0byB0aGUgb2JqZWN0IFYuCiAgICAgICAgICAgICAgICAgICAgIGlm
IChoYXNPYmplY3RUeXBlKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENvbmRpdGlv
bmFsQ29udmVydGVyPFJldHVyblR5cGUsIE9iamVjdFR5cGUsIGhhc09iamVjdFR5cGU+Ojpjb252
ZXJ0KGxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKS52YWx1ZSgpOworICAgICAgICAgICAgICAg
ICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCAoQ29uZGl0aW9uYWxDb252ZXJ0ZXI8
UmV0dXJuVHlwZSwgT2JqZWN0VHlwZSwgaGFzT2JqZWN0VHlwZT46OmNvbnZlcnQobGV4aWNhbEds
b2JhbE9iamVjdCwgdmFsdWUpLnZhbHVlKCkpKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KQEAgLTM0Nyw3ICszNDcsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZS4u
LiBUPiBzdHJ1Y3QgQ29udmVydGVyCiAgICAgICAgIGNvbnN0ZXhwciBib29sIGhhc0Jvb2xlYW5U
eXBlID0gYnJpZ2FuZDo6YW55PFR5cGVMaXN0LCBzdGQ6OmlzX3NhbWU8SURMQm9vbGVhbiwgYnJp
Z2FuZDo6XzE+Pjo6dmFsdWU7CiAgICAgICAgIGlmIChoYXNCb29sZWFuVHlwZSkgewogICAgICAg
ICAgICAgaWYgKHZhbHVlLmlzQm9vbGVhbigpKQotICAgICAgICAgICAgICAgIHJldHVybiBDb25k
aXRpb25hbENvbnZlcnRlcjxSZXR1cm5UeXBlLCBJRExCb29sZWFuLCBoYXNCb29sZWFuVHlwZT46
OmNvbnZlcnQobGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpLnZhbHVlKCk7CisgICAgICAgICAg
ICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCAoQ29uZGl0aW9uYWxDb252ZXJ0ZXI8UmV0
dXJuVHlwZSwgSURMQm9vbGVhbiwgaGFzQm9vbGVhblR5cGU+Ojpjb252ZXJ0KGxleGljYWxHbG9i
YWxPYmplY3QsIHZhbHVlKS52YWx1ZSgpKSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAg
IC8vIDEzLiBJZiBWIGlzIGEgTnVtYmVyIHZhbHVlLCB0aGVuOgpAQCAtMzU1LDIxICszNTUsMjEg
QEAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gVD4gc3RydWN0IENvbnZlcnRlcgogICAgICAgICBjb25z
dGV4cHIgYm9vbCBoYXNOdW1lcmljVHlwZSA9IGJyaWdhbmQ6OnNpemU8TnVtZXJpY1R5cGVMaXN0
Pjo6dmFsdWUgIT0gMDsKICAgICAgICAgaWYgKGhhc051bWVyaWNUeXBlKSB7CiAgICAgICAgICAg
ICBpZiAodmFsdWUuaXNOdW1iZXIoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gQ29uZGl0aW9u
YWxDb252ZXJ0ZXI8UmV0dXJuVHlwZSwgTnVtZXJpY1R5cGUsIGhhc051bWVyaWNUeXBlPjo6Y29u
dmVydChsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSkudmFsdWUoKTsKKyAgICAgICAgICAgICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIChDb25kaXRpb25hbENvbnZlcnRlcjxSZXR1cm5U
eXBlLCBOdW1lcmljVHlwZSwgaGFzTnVtZXJpY1R5cGU+Ojpjb252ZXJ0KGxleGljYWxHbG9iYWxP
YmplY3QsIHZhbHVlKS52YWx1ZSgpKSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8v
IDE0LiBJZiB0eXBlcyBpbmNsdWRlcyBhIHN0cmluZyB0eXBlLCB0aGVuIHJldHVybiB0aGUgcmVz
dWx0IG9mIGNvbnZlcnRpbmcgViB0byB0aGF0IHR5cGUuCiAgICAgICAgIGNvbnN0ZXhwciBib29s
IGhhc1N0cmluZ1R5cGUgPSBicmlnYW5kOjpzaXplPFN0cmluZ1R5cGVMaXN0Pjo6dmFsdWUgIT0g
MDsKICAgICAgICAgaWYgKGhhc1N0cmluZ1R5cGUpCi0gICAgICAgICAgICByZXR1cm4gQ29uZGl0
aW9uYWxDb252ZXJ0ZXI8UmV0dXJuVHlwZSwgU3RyaW5nVHlwZSwgaGFzU3RyaW5nVHlwZT46OmNv
bnZlcnQobGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpLnZhbHVlKCk7CisgICAgICAgICAgICBS
RUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIChDb25kaXRpb25hbENvbnZlcnRlcjxSZXR1cm5UeXBl
LCBTdHJpbmdUeXBlLCBoYXNTdHJpbmdUeXBlPjo6Y29udmVydChsZXhpY2FsR2xvYmFsT2JqZWN0
LCB2YWx1ZSkudmFsdWUoKSkpOwogCiAgICAgICAgIC8vIDE1LiBJZiB0eXBlcyBpbmNsdWRlcyBh
IG51bWVyaWMgdHlwZSwgdGhlbiByZXR1cm4gdGhlIHJlc3VsdCBvZiBjb252ZXJ0aW5nIFYgdG8g
dGhhdCBudW1lcmljIHR5cGUuCiAgICAgICAgIGlmIChoYXNOdW1lcmljVHlwZSkKLSAgICAgICAg
ICAgIHJldHVybiBDb25kaXRpb25hbENvbnZlcnRlcjxSZXR1cm5UeXBlLCBOdW1lcmljVHlwZSwg
aGFzTnVtZXJpY1R5cGU+Ojpjb252ZXJ0KGxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKS52YWx1
ZSgpOworICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCAoQ29uZGl0aW9uYWxD
b252ZXJ0ZXI8UmV0dXJuVHlwZSwgTnVtZXJpY1R5cGUsIGhhc051bWVyaWNUeXBlPjo6Y29udmVy
dChsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSkudmFsdWUoKSkpOwogCiAgICAgICAgIC8vIDE2
LiBJZiB0eXBlcyBpbmNsdWRlcyBhIGJvb2xlYW4sIHRoZW4gcmV0dXJuIHRoZSByZXN1bHQgb2Yg
Y29udmVydGluZyBWIHRvIGJvb2xlYW4uCiAgICAgICAgIGlmIChoYXNCb29sZWFuVHlwZSkKLSAg
ICAgICAgICAgIHJldHVybiBDb25kaXRpb25hbENvbnZlcnRlcjxSZXR1cm5UeXBlLCBJRExCb29s
ZWFuLCBoYXNCb29sZWFuVHlwZT46OmNvbnZlcnQobGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUp
LnZhbHVlKCk7CisgICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIChDb25kaXRp
b25hbENvbnZlcnRlcjxSZXR1cm5UeXBlLCBJRExCb29sZWFuLCBoYXNCb29sZWFuVHlwZT46OmNv
bnZlcnQobGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpLnZhbHVlKCkpKTsKIAogICAgICAgICAv
LyAxNy4gVGhyb3cgYSBUeXBlRXJyb3IuCiAgICAgICAgIHRocm93VHlwZUVycm9yKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBzY29wZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTU9wZXJhdGlvblJldHVybmluZ1Byb21pc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTU9wZXJhdGlvblJldHVybmluZ1Byb21pc2UuaAkocmV2aXNp
b24gMjY0NzM3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01PcGVyYXRpb25S
ZXR1cm5pbmdQcm9taXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvKgogICog
IENvcHlyaWdodCAoQykgMTk5OS0yMDAxIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCi0g
KiAgQ29weXJpZ2h0IChDKSAyMDAzLTIwMDYsIDIwMDgtMjAwOSwgMjAxMywgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDAzLTIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogIENvcHlyaWdodCAoQykgMjAwNyBTYW11
ZWwgV2VpbmlnIDxzYW1Ad2Via2l0Lm9yZz4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xl
LCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAgQ29weXJpZ2h0IChDKSAyMDEyIEVyaWNz
c29uIEFCLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIEpTQ2xhc3M6
OmluZm8oKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
cmVmYWN0b3IgdGhlIGJpbmRpbmcgZ2VuZXJhdGVkIGNvZGUgdG8gdXNlIHJlZmVyZW5jZXMgZm9y
IGxleGljYWxHbG9iYWxPYmplY3QgYW5kIHRoaXNPYmplY3QuCi0gICAgICAgICAgICByZXR1cm4g
b3BlcmF0aW9uKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCAmY2FsbEZyYW1lLCB0aGlzT2JqZWN0LCBX
VEZNb3ZlKHByb21pc2UpLCB0aHJvd1Njb3BlKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCBvcGVyYXRpb24oJmxleGljYWxHbG9iYWxPYmplY3QsICZjYWxsRnJh
bWUsIHRoaXNPYmplY3QsIFdURk1vdmUocHJvbWlzZSksIHRocm93U2NvcGUpKTsKICAgICAgICAg
fSkpOwogICAgIH0KIApAQCAtNjgsNyArNjgsNyBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVF9H
Q19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgSlNDbGFzczo6aW5mbygpKTsKIAogICAgICAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJlZmFjdG9yIHRoZSBiaW5kaW5nIGdlbmVyYXRlZCBjb2Rl
IHRvIHVzZSByZWZlcmVuY2VzIGZvciBsZXhpY2FsR2xvYmFsT2JqZWN0IGFuZCB0aGlzT2JqZWN0
LgotICAgICAgICByZXR1cm4gb3BlcmF0aW9uKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCAmY2FsbEZy
YW1lLCB0aGlzT2JqZWN0LCB0aHJvd1Njb3BlKTsKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsIG9wZXJhdGlvbigmbGV4aWNhbEdsb2JhbE9iamVjdCwgJmNhbGxGcmFtZSwg
dGhpc09iamVjdCwgdGhyb3dTY29wZSkpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPFN0YXRpY09w
ZXJhdGlvbiBvcGVyYXRpb24sIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yIHNob3VsZFRocm93ID0g
Q2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OlJlamVjdFByb21pc2U+CkBAIC03OCw3ICs3OCw3IEBA
IHB1YmxpYzoKICAgICAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgICAgICAgICAgCiAgICAg
ICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJlZmFjdG9yIHRoZSBiaW5kaW5nIGdlbmVyYXRl
ZCBjb2RlIHRvIHVzZSByZWZlcmVuY2VzIGZvciBsZXhpY2FsR2xvYmFsT2JqZWN0LgotICAgICAg
ICAgICAgcmV0dXJuIG9wZXJhdGlvbigmbGV4aWNhbEdsb2JhbE9iamVjdCwgJmNhbGxGcmFtZSwg
V1RGTW92ZShwcm9taXNlKSwgdGhyb3dTY29wZSk7CisgICAgICAgICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgb3BlcmF0aW9uKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCAmY2FsbEZy
YW1lLCBXVEZNb3ZlKHByb21pc2UpLCB0aHJvd1Njb3BlKSk7CiAgICAgICAgIH0pKTsKICAgICB9
CiAKQEAgLTkwLDcgKzkwLDcgQEAgcHVibGljOgogICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpKTsKIAog
ICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJlZmFjdG9yIHRoZSBiaW5kaW5nIGdlbmVyYXRl
ZCBjb2RlIHRvIHVzZSByZWZlcmVuY2VzIGZvciBsZXhpY2FsR2xvYmFsT2JqZWN0LgotICAgICAg
ICByZXR1cm4gb3BlcmF0aW9uKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCAmY2FsbEZyYW1lLCB0aHJv
d1Njb3BlKTsKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIG9wZXJhdGlv
bigmbGV4aWNhbEdsb2JhbE9iamVjdCwgJmNhbGxGcmFtZSwgdGhyb3dTY29wZSkpOwogICAgIH0K
IH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVy
cmVkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVBy
b21pc2VEZWZlcnJlZC5jcHAJKHJldmlzaW9uIDI2NDczNykKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE1
MCw2ICsxNTAsNyBAQCB2b2lkIERlZmVycmVkUHJvbWlzZTo6cmVqZWN0KEV4Y2VwdGlvbiBlCiAg
ICAgfQogCiAgICAgcmVqZWN0KGxleGljYWxHbG9iYWxPYmplY3QsIGVycm9yLCByZWplY3RBc0hh
bmRsZWQpOworICAgIEVYQ0VQVElPTl9BU1NFUlQoIXNjb3BlLmV4Y2VwdGlvbigpIHx8IGlzVGVy
bWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCksIHNjb3Bl
LmV4Y2VwdGlvbigpKSk7CiB9CiAKIHZvaWQgRGVmZXJyZWRQcm9taXNlOjpyZWplY3QoRXhjZXB0
aW9uQ29kZSBlYywgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBSZWplY3RBc0hhbmRsZWQgcmVqZWN0
QXNIYW5kbGVkKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Qcm9taXNl
RGVmZXJyZWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVByb21pc2VEZWZlcnJlZC5oCShyZXZpc2lvbiAyNjQ3MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyNiw2ICsz
MjYsNyBAQCBpbmxpbmUgSlNDOjpKU1ZhbHVlIGNhbGxQcm9taXNlRnVuY3Rpb24oCiAgICAgQVNT
RVJUKHByb21pc2UpOwogCiAgICAgZnVuY3RvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUsIERlZmVycmVkUHJvbWlzZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgKnByb21pc2UpKTsKKyAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU0M6OmpzVW5kZWZpbmVkKCkpOwogCiAgICAg
cmVqZWN0UHJvbWlzZVdpdGhFeGNlcHRpb25JZkFueShsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9i
YWxPYmplY3QsICpwcm9taXNlKTsKICAgICAvLyBGSVhNRTogV2UgY291bGQgaGF2ZSBlcnJvciBz
aW5jZSBhbnkgSlMgY2FsbCBjYW4gdGhyb3cgc3RhY2stb3ZlcmZsb3cgZXJyb3JzLgpJbmRleDog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxv
ZwkocmV2aXNpb24gMjY0NzM3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDctMjIgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBw
bGUuY29tPgorCisgICAgICAgIEZpeCBtaXNzaW5nIGV4Y2VwdGlvbiBjaGVja3MgaW4gYmVsb3cg
UlRDUGVlckNvbm5lY3Rpb24uZ2VuZXJhdGVDZXJ0aWZpY2F0ZSgpLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0NjY4CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS82NTkyOTk3NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHdlYnJ0Yy9taXNzaW5nLWV4Y2VwdGlvbi1jaGVja3MtUlRDUGVlckNvbm5l
Y3Rpb24tZ2VuZXJhdGVDZXJ0aWZpY2F0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHdlYnJ0Yy9taXNzaW5nLWV4Y2VwdGlvbi1jaGVja3MtUlRDUGVlckNvbm5lY3Rpb24tZ2VuZXJh
dGVDZXJ0aWZpY2F0ZS5odG1sOiBBZGRlZC4KKwogMjAyMC0wNy0yMiAgUnlhbiBIYWRkYWQgIDxy
eWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5n
LCByZW1vdmUgb2xkIHRlc3QgZXhwZWN0YXRpb24gIGRpcmVjdG9yaWVzIGZvciBpT1MgMTIgc2lu
Y2UgdGhleSBhcmUgdW51c2VkLgpJbmRleDogTGF5b3V0VGVzdHMvd2VicnRjL21pc3NpbmctZXhj
ZXB0aW9uLWNoZWNrcy1SVENQZWVyQ29ubmVjdGlvbi1nZW5lcmF0ZUNlcnRpZmljYXRlLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJydGMvbWlzc2luZy1leGNlcHRp
b24tY2hlY2tzLVJUQ1BlZXJDb25uZWN0aW9uLWdlbmVyYXRlQ2VydGlmaWNhdGUtZXhwZWN0ZWQu
dHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3dlYnJ0Yy9taXNzaW5nLWV4Y2VwdGlv
bi1jaGVja3MtUlRDUGVlckNvbm5lY3Rpb24tZ2VuZXJhdGVDZXJ0aWZpY2F0ZS1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvd2VicnRjL21p
c3NpbmctZXhjZXB0aW9uLWNoZWNrcy1SVENQZWVyQ29ubmVjdGlvbi1nZW5lcmF0ZUNlcnRpZmlj
YXRlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2VicnRjL21pc3NpbmctZXhjZXB0
aW9uLWNoZWNrcy1SVENQZWVyQ29ubmVjdGlvbi1nZW5lcmF0ZUNlcnRpZmljYXRlLmh0bWwJKG5v
bmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvd2VicnRjL21pc3NpbmctZXhjZXB0aW9uLWNoZWNr
cy1SVENQZWVyQ29ubmVjdGlvbi1nZW5lcmF0ZUNlcnRpZmljYXRlLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBqc2NPcHRpb25zPS0tdmFsaWRhdGVFeGNlcHRpb25DaGVja3M9dHJ1ZSBdIC0tPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIFJUQ1BlZXJDb25uZWN0aW9u
LmdlbmVyYXRlQ2VydGlmaWNhdGUoe30pLmNhdGNoKCgpID0+IHsgfSk7Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="420393"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405010</attachid>
            <date>2020-07-22 19:47:53 -0700</date>
            <delta_ts>2020-07-22 21:29:02 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-214668.patch</filename>
            <type>text/plain</type>
            <size>22267</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NDc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIwLTA3LTIyICBNYXJrIExh
bSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggbWlzc2luZyBleGNlcHRpb24g
Y2hlY2tzIGluIGJlbG93IFJUQ1BlZXJDb25uZWN0aW9uLmdlbmVyYXRlQ2VydGlmaWNhdGUoKS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDY2OAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjU5Mjk5NzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogd2VicnRjL21pc3NpbmctZXhjZXB0aW9u
LWNoZWNrcy1SVENQZWVyQ29ubmVjdGlvbi1nZW5lcmF0ZUNlcnRpZmljYXRlLmh0bWwKKworICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Ojp3aGVuRGVmaW5lZCk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01Db252ZXJ0VW5pb24uaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RPTU9wZXJhdGlvblJldHVybmluZ1Byb21pc2UuaDoKKyAgICAgICAgKFdlYkNv
cmU6OklETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U6OmNhbGwpOgorICAgICAgICAoV2ViQ29y
ZTo6SURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTo6Y2FsbFJldHVybmluZ093blByb21pc2Up
OgorICAgICAgICAoV2ViQ29yZTo6SURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTo6Y2FsbFN0
YXRpYyk6CisgICAgICAgIChXZWJDb3JlOjpJRExPcGVyYXRpb25SZXR1cm5pbmdQcm9taXNlOjpj
YWxsU3RhdGljUmV0dXJuaW5nT3duUHJvbWlzZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNE
T01Qcm9taXNlRGVmZXJyZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVmZXJyZWRQcm9taXNl
OjpyZWplY3QpOgorICAgICAgICAoV2ViQ29yZTo6cmVqZWN0UHJvbWlzZVdpdGhFeGNlcHRpb25J
ZkFueSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVmZXJyZWQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNhbGxQcm9taXNlRnVuY3Rpb24pOgorCiAyMDIwLTA3LTIyICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5DYWly
b11bMzJiaXRdIEpQRUcyMDAwSW1hZ2VEZWNvZGVyLmNwcDogZXJyb3IgQzI2NjQ6ICdzdGQ6OnVu
aXF1ZV9wdHI8Li4uPjo6dW5pcXVlX3B0ciguLi4pJzogY2Fubm90IGNvbnZlcnQgYXJndW1lbnQg
MiBmcm9tICd2b2lkIChfX3N0ZGNhbGwgKikob3BqX2NvZGVjX3QgKiknIHRvICdjb25zdCBfRHgg
JicKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudFJlZ2lz
dHJ5Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0N1c3RvbUVsZW1lbnRSZWdpc3RyeUN1c3RvbS5jcHAJKHJldmlzaW9uIDI2NDc0MSkKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Q3VzdG9tLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTIwNCwxOSArMjA0LDE3IEBAIHN0YXRpYyBKU1ZhbHVlIHdo
ZW5EZWZpbmVkUHJvbWlzZShKU0dsb2IKIAogSlNWYWx1ZSBKU0N1c3RvbUVsZW1lbnRSZWdpc3Ry
eTo6d2hlbkRlZmluZWQoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSYgY2FsbEZyYW1lKQogewotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BF
KGxleGljYWxHbG9iYWxPYmplY3Qudm0oKSk7CisgICAgYXV0byBjYXRjaFNjb3BlID0gREVDTEFS
RV9DQVRDSF9TQ09QRShsZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCkpOwogCiAgICAgQVNTRVJUKGds
b2JhbE9iamVjdCgpKTsKICAgICBhdXRvKiByZXN1bHQgPSBKU1Byb21pc2U6OmNyZWF0ZShsZXhp
Y2FsR2xvYmFsT2JqZWN0LnZtKCksIGxleGljYWxHbG9iYWxPYmplY3QucHJvbWlzZVN0cnVjdHVy
ZSgpKTsKICAgICBKU1ZhbHVlIHByb21pc2UgPSB3aGVuRGVmaW5lZFByb21pc2UobGV4aWNhbEds
b2JhbE9iamVjdCwgY2FsbEZyYW1lLCAqZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKSwgKnJlc3Vs
dCk7CiAKLSAgICBpZiAoVU5MSUtFTFkoc2NvcGUuZXhjZXB0aW9uKCkpKSB7Ci0gICAgICAgIHJl
amVjdFByb21pc2VXaXRoRXhjZXB0aW9uSWZBbnkobGV4aWNhbEdsb2JhbE9iamVjdCwgKmdsb2Jh
bE9iamVjdCgpLCAqcmVzdWx0KTsKLSAgICAgICAgc2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsK
LSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KKyAgICByZWplY3RQcm9taXNlV2l0aEV4
Y2VwdGlvbklmQW55KGxleGljYWxHbG9iYWxPYmplY3QsICpnbG9iYWxPYmplY3QoKSwgKnJlc3Vs
dCwgY2F0Y2hTY29wZSk7CisgICAgLy8gRklYTUU6IFdlIGNvdWxkIGhhdmUgZXJyb3Igc2luY2Ug
YW55IEpTIGNhbGwgY2FuIHRocm93IHN0YWNrLW92ZXJmbG93IGVycm9ycy4KKyAgICAvLyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNDAyCisgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihjYXRjaFNjb3BlLCBKU0M6OmpzVW5kZWZpbmVkKCkpOwogICAgIHJldHVybiBw
cm9taXNlOwogfQogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRVbmlvbi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFVuaW9uLmgJKHJldmlzaW9uIDI2NDc0
MSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFVuaW9uLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMTcyLDcgKzE3Miw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFQ+IHN0cnVj
dCBDb252ZXJ0ZXIKICAgICAgICAgY29uc3RleHByIGJvb2wgaGFzTnVsbFR5cGUgPSBicmlnYW5k
Ojphbnk8VHlwZUxpc3QsIHN0ZDo6aXNfc2FtZTxJRExOdWxsLCBicmlnYW5kOjpfMT4+Ojp2YWx1
ZTsKICAgICAgICAgaWYgKGhhc051bGxUeXBlKSB7CiAgICAgICAgICAgICBpZiAodmFsdWUuaXNV
bmRlZmluZWRPck51bGwoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gQ29uZGl0aW9uYWxDb252
ZXJ0ZXI8UmV0dXJuVHlwZSwgSURMTnVsbCwgaGFzTnVsbFR5cGU+Ojpjb252ZXJ0KGxleGljYWxH
bG9iYWxPYmplY3QsIHZhbHVlKS52YWx1ZSgpOworICAgICAgICAgICAgICAgIFJFTEVBU0VfQU5E
X1JFVFVSTihzY29wZSwgKENvbmRpdGlvbmFsQ29udmVydGVyPFJldHVyblR5cGUsIElETE51bGws
IGhhc051bGxUeXBlPjo6Y29udmVydChsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSkudmFsdWUo
KSkpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICAvLyAyLiBMZXQgdHlwZXMgYmUgdGhl
IGZsYXR0ZW5lZCBtZW1iZXIgdHlwZXMgb2YgdGhlIHVuaW9uIHR5cGUuCkBAIC0xODIsNyArMTgy
LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gVD4gc3RydWN0IENvbnZlcnRlcgogICAgICAgICBp
ZiAoaGFzRGljdGlvbmFyeVR5cGUpIHsKICAgICAgICAgICAgIGlmICh2YWx1ZS5pc1VuZGVmaW5l
ZE9yTnVsbCgpKSB7CiAgICAgICAgICAgICAgICAgLy8gICAgIDEuIElmIHR5cGVzIGluY2x1ZGVz
IGEgZGljdGlvbmFyeSB0eXBlLCB0aGVuIHJldHVybiB0aGUgcmVzdWx0IG9mIGNvbnZlcnRpbmcg
ViB0byB0aGF0IGRpY3Rpb25hcnkgdHlwZS4KLSAgICAgICAgICAgICAgICByZXR1cm4gQ29uZGl0
aW9uYWxDb252ZXJ0ZXI8UmV0dXJuVHlwZSwgRGljdGlvbmFyeVR5cGUsIGhhc0RpY3Rpb25hcnlU
eXBlPjo6Y29udmVydChsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSkudmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIChDb25kaXRpb25hbENvbnZlcnRl
cjxSZXR1cm5UeXBlLCBEaWN0aW9uYXJ5VHlwZSwgaGFzRGljdGlvbmFyeVR5cGU+Ojpjb252ZXJ0
KGxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKS52YWx1ZSgpKSk7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KIApAQCAtMjMxLDcgKzIzMSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFQ+IHN0
cnVjdCBDb252ZXJ0ZXIKICAgICAgICAgICAgIGlmIChhcnJheUJ1ZmZlcikgewogICAgICAgICAg
ICAgICAgIGlmIChoYXNBcnJheUJ1ZmZlclR5cGUpCiAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBDb25kaXRpb25hbFJldHVybmVyPFJldHVyblR5cGUsIGhhc0FycmF5QnVmZmVyVHlwZT46Omdl
dChXVEZNb3ZlKGFycmF5QnVmZmVyKSkudmFsdWUoKTsKLSAgICAgICAgICAgICAgICByZXR1cm4g
Q29uZGl0aW9uYWxDb252ZXJ0ZXI8UmV0dXJuVHlwZSwgT2JqZWN0VHlwZSwgaGFzT2JqZWN0VHlw
ZT46OmNvbnZlcnQobGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpLnZhbHVlKCk7CisgICAgICAg
ICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCAoQ29uZGl0aW9uYWxDb252ZXJ0ZXI8
UmV0dXJuVHlwZSwgT2JqZWN0VHlwZSwgaGFzT2JqZWN0VHlwZT46OmNvbnZlcnQobGV4aWNhbEds
b2JhbE9iamVjdCwgdmFsdWUpLnZhbHVlKCkpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQog
CkBAIC0yNDEsNyArMjQxLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gVD4gc3RydWN0IENvbnZl
cnRlcgogICAgICAgICAgICAgaWYgKGFycmF5QnVmZmVyVmlldykgewogICAgICAgICAgICAgICAg
IGlmIChoYXNBcnJheUJ1ZmZlclZpZXdUeXBlKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Q29uZGl0aW9uYWxSZXR1cm5lcjxSZXR1cm5UeXBlLCBoYXNBcnJheUJ1ZmZlclZpZXdUeXBlPjo6
Z2V0KFdURk1vdmUoYXJyYXlCdWZmZXJWaWV3KSkudmFsdWUoKTsKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gQ29uZGl0aW9uYWxDb252ZXJ0ZXI8UmV0dXJuVHlwZSwgT2JqZWN0VHlwZSwgaGFzT2Jq
ZWN0VHlwZT46OmNvbnZlcnQobGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpLnZhbHVlKCk7Cisg
ICAgICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCAoQ29uZGl0aW9uYWxDb252
ZXJ0ZXI8UmV0dXJuVHlwZSwgT2JqZWN0VHlwZSwgaGFzT2JqZWN0VHlwZT46OmNvbnZlcnQobGV4
aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpLnZhbHVlKCkpKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogCkBAIC0yNTQsNyArMjU0LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gVD4gc3RydWN0
IENvbnZlcnRlcgogICAgICAgICAgICAgaWYgKGRhdGFWaWV3KSB7CiAgICAgICAgICAgICAgICAg
aWYgKGhhc0RhdGFWaWV3VHlwZSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENvbmRpdGlv
bmFsUmV0dXJuZXI8UmV0dXJuVHlwZSwgaGFzRGF0YVZpZXdUeXBlPjo6Z2V0KFdURk1vdmUoZGF0
YVZpZXcpKS52YWx1ZSgpOwotICAgICAgICAgICAgICAgIHJldHVybiBDb25kaXRpb25hbENvbnZl
cnRlcjxSZXR1cm5UeXBlLCBPYmplY3RUeXBlLCBoYXNPYmplY3RUeXBlPjo6Y29udmVydChsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSkudmFsdWUoKTsKKyAgICAgICAgICAgICAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIChDb25kaXRpb25hbENvbnZlcnRlcjxSZXR1cm5UeXBlLCBPYmpl
Y3RUeXBlLCBoYXNPYmplY3RUeXBlPjo6Y29udmVydChsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1
ZSkudmFsdWUoKSkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKQEAgLTMwNyw3ICszMDcs
NyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUPiBzdHJ1Y3QgQ29udmVydGVyCiAgICAgICAgICAg
ICAgICAgICAgICAgICBhdXRvIG1ldGhvZCA9IEpTQzo6aXRlcmF0b3JNZXRob2QoJmxleGljYWxH
bG9iYWxPYmplY3QsIG9iamVjdCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBSZXR1cm5UeXBlKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCFtZXRob2QuaXNVbmRlZmluZWQoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gQ29uZGl0aW9uYWxTZXF1ZW5jZUNvbnZlcnRlcjxSZXR1cm5UeXBlLCBTZXF1ZW5jZVR5
cGUsIGhhc1NlcXVlbmNlVHlwZT46OmNvbnZlcnQobGV4aWNhbEdsb2JhbE9iamVjdCwgb2JqZWN0
LCBtZXRob2QpLnZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHNjb3BlLCAoQ29uZGl0aW9uYWxTZXF1ZW5jZUNvbnZlcnRlcjxSZXR1cm5UeXBl
LCBTZXF1ZW5jZVR5cGUsIGhhc1NlcXVlbmNlVHlwZT46OmNvbnZlcnQobGV4aWNhbEdsb2JhbE9i
amVjdCwgb2JqZWN0LCBtZXRob2QpLnZhbHVlKCkpKTsKICAgICAgICAgICAgICAgICAgICAgfQog
CiAgICAgICAgICAgICAgICAgICAgIC8vICAgICAyLiBJZiB0eXBlcyBpbmNsdWRlcyBhIGZyb3pl
biBhcnJheSB0eXBlLCB0aGVuOgpAQCAtMzIwLDI0ICszMjAsMjQgQEAgdGVtcGxhdGU8dHlwZW5h
bWUuLi4gVD4gc3RydWN0IENvbnZlcnRlcgogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBt
ZXRob2QgPSBKU0M6Oml0ZXJhdG9yTWV0aG9kKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCBvYmplY3Qp
OwogICAgICAgICAgICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgUmV0
dXJuVHlwZSgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbWV0aG9kLmlzVW5kZWZp
bmVkKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENvbmRpdGlvbmFsU2Vx
dWVuY2VDb252ZXJ0ZXI8UmV0dXJuVHlwZSwgRnJvemVuQXJyYXlUeXBlLCBoYXNGcm96ZW5BcnJh
eVR5cGU+Ojpjb252ZXJ0KGxleGljYWxHbG9iYWxPYmplY3QsIG9iamVjdCwgbWV0aG9kKS52YWx1
ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29w
ZSwgKENvbmRpdGlvbmFsU2VxdWVuY2VDb252ZXJ0ZXI8UmV0dXJuVHlwZSwgRnJvemVuQXJyYXlU
eXBlLCBoYXNGcm96ZW5BcnJheVR5cGU+Ojpjb252ZXJ0KGxleGljYWxHbG9iYWxPYmplY3QsIG9i
amVjdCwgbWV0aG9kKS52YWx1ZSgpKSk7CiAgICAgICAgICAgICAgICAgICAgIH0KIAogICAgICAg
ICAgICAgICAgICAgICAvLyAgICAgMy4gSWYgdHlwZXMgaW5jbHVkZXMgYSBkaWN0aW9uYXJ5IHR5
cGUsIHRoZW4gcmV0dXJuIHRoZSByZXN1bHQgb2YKICAgICAgICAgICAgICAgICAgICAgLy8gICAg
ICAgIGNvbnZlcnRpbmcgViB0byB0aGF0IGRpY3Rpb25hcnkgdHlwZS4KICAgICAgICAgICAgICAg
ICAgICAgaWYgKGhhc0RpY3Rpb25hcnlUeXBlKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIENvbmRpdGlvbmFsQ29udmVydGVyPFJldHVyblR5cGUsIERpY3Rpb25hcnlUeXBlLCBoYXNE
aWN0aW9uYXJ5VHlwZT46OmNvbnZlcnQobGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpLnZhbHVl
KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIChD
b25kaXRpb25hbENvbnZlcnRlcjxSZXR1cm5UeXBlLCBEaWN0aW9uYXJ5VHlwZSwgaGFzRGljdGlv
bmFyeVR5cGU+Ojpjb252ZXJ0KGxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKS52YWx1ZSgpKSk7
CiAKICAgICAgICAgICAgICAgICAgICAgLy8gICAgIDQuIElmIHR5cGVzIGluY2x1ZGVzIGEgcmVj
b3JkIHR5cGUsIHRoZW4gcmV0dXJuIHRoZSByZXN1bHQgb2YgY29udmVydGluZyBWIHRvIHRoYXQg
cmVjb3JkIHR5cGUuCiAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNSZWNvcmRUeXBlKQotICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENvbmRpdGlvbmFsQ29udmVydGVyPFJldHVyblR5
cGUsIFJlY29yZFR5cGUsIGhhc1JlY29yZFR5cGU+Ojpjb252ZXJ0KGxleGljYWxHbG9iYWxPYmpl
Y3QsIHZhbHVlKS52YWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHNjb3BlLCAoQ29uZGl0aW9uYWxDb252ZXJ0ZXI8UmV0dXJuVHlwZSwgUmVjb3JkVHlw
ZSwgaGFzUmVjb3JkVHlwZT46OmNvbnZlcnQobGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpLnZh
bHVlKCkpKTsKIAogICAgICAgICAgICAgICAgICAgICAvLyAgICAgNS4gSWYgdHlwZXMgaW5jbHVk
ZXMgYSBjYWxsYmFjayBpbnRlcmZhY2UgdHlwZSwgdGhlbiByZXR1cm4gdGhlIHJlc3VsdCBvZiBj
b252ZXJ0aW5nIFYgdG8gdGhhdCBpbnRlcmZhY2UgdHlwZS4KICAgICAgICAgICAgICAgICAgICAg
Ly8gICAgICAgICAoRklYTUU6IEFkZCBzdXBwb3J0IGZvciBjYWxsYmFjayBpbnRlcmZhY2UgdHlw
ZSBhbmQgc3RlcCAxMi41KQogCiAgICAgICAgICAgICAgICAgICAgIC8vICAgICA2LiBJZiB0eXBl
cyBpbmNsdWRlcyBvYmplY3QsIHRoZW4gcmV0dXJuIHRoZSBJREwgdmFsdWUgdGhhdCBpcyBhIHJl
ZmVyZW5jZSB0byB0aGUgb2JqZWN0IFYuCiAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNPYmpl
Y3RUeXBlKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENvbmRpdGlvbmFsQ29udmVy
dGVyPFJldHVyblR5cGUsIE9iamVjdFR5cGUsIGhhc09iamVjdFR5cGU+Ojpjb252ZXJ0KGxleGlj
YWxHbG9iYWxPYmplY3QsIHZhbHVlKS52YWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCAoQ29uZGl0aW9uYWxDb252ZXJ0ZXI8UmV0dXJuVHlw
ZSwgT2JqZWN0VHlwZSwgaGFzT2JqZWN0VHlwZT46OmNvbnZlcnQobGV4aWNhbEdsb2JhbE9iamVj
dCwgdmFsdWUpLnZhbHVlKCkpKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KQEAgLTM0Nyw3ICszNDcsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUPiBzdHJ1
Y3QgQ29udmVydGVyCiAgICAgICAgIGNvbnN0ZXhwciBib29sIGhhc0Jvb2xlYW5UeXBlID0gYnJp
Z2FuZDo6YW55PFR5cGVMaXN0LCBzdGQ6OmlzX3NhbWU8SURMQm9vbGVhbiwgYnJpZ2FuZDo6XzE+
Pjo6dmFsdWU7CiAgICAgICAgIGlmIChoYXNCb29sZWFuVHlwZSkgewogICAgICAgICAgICAgaWYg
KHZhbHVlLmlzQm9vbGVhbigpKQotICAgICAgICAgICAgICAgIHJldHVybiBDb25kaXRpb25hbENv
bnZlcnRlcjxSZXR1cm5UeXBlLCBJRExCb29sZWFuLCBoYXNCb29sZWFuVHlwZT46OmNvbnZlcnQo
bGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpLnZhbHVlKCk7CisgICAgICAgICAgICAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHNjb3BlLCAoQ29uZGl0aW9uYWxDb252ZXJ0ZXI8UmV0dXJuVHlwZSwg
SURMQm9vbGVhbiwgaGFzQm9vbGVhblR5cGU+Ojpjb252ZXJ0KGxleGljYWxHbG9iYWxPYmplY3Qs
IHZhbHVlKS52YWx1ZSgpKSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIDEzLiBJ
ZiBWIGlzIGEgTnVtYmVyIHZhbHVlLCB0aGVuOgpAQCAtMzU1LDIxICszNTUsMjEgQEAgdGVtcGxh
dGU8dHlwZW5hbWUuLi4gVD4gc3RydWN0IENvbnZlcnRlcgogICAgICAgICBjb25zdGV4cHIgYm9v
bCBoYXNOdW1lcmljVHlwZSA9IGJyaWdhbmQ6OnNpemU8TnVtZXJpY1R5cGVMaXN0Pjo6dmFsdWUg
IT0gMDsKICAgICAgICAgaWYgKGhhc051bWVyaWNUeXBlKSB7CiAgICAgICAgICAgICBpZiAodmFs
dWUuaXNOdW1iZXIoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gQ29uZGl0aW9uYWxDb252ZXJ0
ZXI8UmV0dXJuVHlwZSwgTnVtZXJpY1R5cGUsIGhhc051bWVyaWNUeXBlPjo6Y29udmVydChsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSkudmFsdWUoKTsKKyAgICAgICAgICAgICAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIChDb25kaXRpb25hbENvbnZlcnRlcjxSZXR1cm5UeXBlLCBOdW1l
cmljVHlwZSwgaGFzTnVtZXJpY1R5cGU+Ojpjb252ZXJ0KGxleGljYWxHbG9iYWxPYmplY3QsIHZh
bHVlKS52YWx1ZSgpKSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIDE0LiBJZiB0
eXBlcyBpbmNsdWRlcyBhIHN0cmluZyB0eXBlLCB0aGVuIHJldHVybiB0aGUgcmVzdWx0IG9mIGNv
bnZlcnRpbmcgViB0byB0aGF0IHR5cGUuCiAgICAgICAgIGNvbnN0ZXhwciBib29sIGhhc1N0cmlu
Z1R5cGUgPSBicmlnYW5kOjpzaXplPFN0cmluZ1R5cGVMaXN0Pjo6dmFsdWUgIT0gMDsKICAgICAg
ICAgaWYgKGhhc1N0cmluZ1R5cGUpCi0gICAgICAgICAgICByZXR1cm4gQ29uZGl0aW9uYWxDb252
ZXJ0ZXI8UmV0dXJuVHlwZSwgU3RyaW5nVHlwZSwgaGFzU3RyaW5nVHlwZT46OmNvbnZlcnQobGV4
aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpLnZhbHVlKCk7CisgICAgICAgICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIChDb25kaXRpb25hbENvbnZlcnRlcjxSZXR1cm5UeXBlLCBTdHJpbmdU
eXBlLCBoYXNTdHJpbmdUeXBlPjo6Y29udmVydChsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSku
dmFsdWUoKSkpOwogCiAgICAgICAgIC8vIDE1LiBJZiB0eXBlcyBpbmNsdWRlcyBhIG51bWVyaWMg
dHlwZSwgdGhlbiByZXR1cm4gdGhlIHJlc3VsdCBvZiBjb252ZXJ0aW5nIFYgdG8gdGhhdCBudW1l
cmljIHR5cGUuCiAgICAgICAgIGlmIChoYXNOdW1lcmljVHlwZSkKLSAgICAgICAgICAgIHJldHVy
biBDb25kaXRpb25hbENvbnZlcnRlcjxSZXR1cm5UeXBlLCBOdW1lcmljVHlwZSwgaGFzTnVtZXJp
Y1R5cGU+Ojpjb252ZXJ0KGxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKS52YWx1ZSgpOworICAg
ICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCAoQ29uZGl0aW9uYWxDb252ZXJ0ZXI8
UmV0dXJuVHlwZSwgTnVtZXJpY1R5cGUsIGhhc051bWVyaWNUeXBlPjo6Y29udmVydChsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB2YWx1ZSkudmFsdWUoKSkpOwogCiAgICAgICAgIC8vIDE2LiBJZiB0eXBl
cyBpbmNsdWRlcyBhIGJvb2xlYW4sIHRoZW4gcmV0dXJuIHRoZSByZXN1bHQgb2YgY29udmVydGlu
ZyBWIHRvIGJvb2xlYW4uCiAgICAgICAgIGlmIChoYXNCb29sZWFuVHlwZSkKLSAgICAgICAgICAg
IHJldHVybiBDb25kaXRpb25hbENvbnZlcnRlcjxSZXR1cm5UeXBlLCBJRExCb29sZWFuLCBoYXNC
b29sZWFuVHlwZT46OmNvbnZlcnQobGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpLnZhbHVlKCk7
CisgICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIChDb25kaXRpb25hbENvbnZl
cnRlcjxSZXR1cm5UeXBlLCBJRExCb29sZWFuLCBoYXNCb29sZWFuVHlwZT46OmNvbnZlcnQobGV4
aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpLnZhbHVlKCkpKTsKIAogICAgICAgICAvLyAxNy4gVGhy
b3cgYSBUeXBlRXJyb3IuCiAgICAgICAgIHRocm93VHlwZUVycm9yKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBzY29wZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTU9wZXJh
dGlvblJldHVybmluZ1Byb21pc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTU9wZXJhdGlvblJldHVybmluZ1Byb21pc2UuaAkocmV2aXNpb24gMjY0NzQx
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01PcGVyYXRpb25SZXR1cm5pbmdQ
cm9taXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogIENvcHlyaWdo
dCAoQykgMTk5OS0yMDAxIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCi0gKiAgQ29weXJp
Z2h0IChDKSAyMDAzLTIwMDYsIDIwMDgtMjAwOSwgMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDAzLTIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogIENvcHlyaWdodCAoQykgMjAwNyBTYW11ZWwgV2Vpbmln
IDxzYW1Ad2Via2l0Lm9yZz4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlLCBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAgQ29weXJpZ2h0IChDKSAyMDEyIEVyaWNzc29uIEFCLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgICAgICAg
ICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIEpTQ2xhc3M6OmluZm8oKSk7
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVmYWN0b3Ig
dGhlIGJpbmRpbmcgZ2VuZXJhdGVkIGNvZGUgdG8gdXNlIHJlZmVyZW5jZXMgZm9yIGxleGljYWxH
bG9iYWxPYmplY3QgYW5kIHRoaXNPYmplY3QuCi0gICAgICAgICAgICByZXR1cm4gb3BlcmF0aW9u
KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCAmY2FsbEZyYW1lLCB0aGlzT2JqZWN0LCBXVEZNb3ZlKHBy
b21pc2UpLCB0aHJvd1Njb3BlKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCBvcGVyYXRpb24oJmxleGljYWxHbG9iYWxPYmplY3QsICZjYWxsRnJhbWUsIHRoaXNP
YmplY3QsIFdURk1vdmUocHJvbWlzZSksIHRocm93U2NvcGUpKTsKICAgICAgICAgfSkpOwogICAg
IH0KIApAQCAtNjgsNyArNjgsNyBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVF9HQ19PQkpFQ1Rf
SU5IRVJJVFModGhpc09iamVjdCwgSlNDbGFzczo6aW5mbygpKTsKIAogICAgICAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIHJlZmFjdG9yIHRoZSBiaW5kaW5nIGdlbmVyYXRlZCBjb2RlIHRvIHVzZSBy
ZWZlcmVuY2VzIGZvciBsZXhpY2FsR2xvYmFsT2JqZWN0IGFuZCB0aGlzT2JqZWN0LgotICAgICAg
ICByZXR1cm4gb3BlcmF0aW9uKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCAmY2FsbEZyYW1lLCB0aGlz
T2JqZWN0LCB0aHJvd1Njb3BlKTsKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsIG9wZXJhdGlvbigmbGV4aWNhbEdsb2JhbE9iamVjdCwgJmNhbGxGcmFtZSwgdGhpc09iamVj
dCwgdGhyb3dTY29wZSkpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPFN0YXRpY09wZXJhdGlvbiBv
cGVyYXRpb24sIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yIHNob3VsZFRocm93ID0gQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OlJlamVjdFByb21pc2U+CkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIHJlZmFjdG9yIHRoZSBiaW5kaW5nIGdlbmVyYXRlZCBjb2RlIHRv
IHVzZSByZWZlcmVuY2VzIGZvciBsZXhpY2FsR2xvYmFsT2JqZWN0LgotICAgICAgICAgICAgcmV0
dXJuIG9wZXJhdGlvbigmbGV4aWNhbEdsb2JhbE9iamVjdCwgJmNhbGxGcmFtZSwgV1RGTW92ZShw
cm9taXNlKSwgdGhyb3dTY29wZSk7CisgICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgb3BlcmF0aW9uKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCAmY2FsbEZyYW1lLCBXVEZN
b3ZlKHByb21pc2UpLCB0aHJvd1Njb3BlKSk7CiAgICAgICAgIH0pKTsKICAgICB9CiAKQEAgLTkw
LDcgKzkwLDcgQEAgcHVibGljOgogICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpKTsKIAogICAgICAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIHJlZmFjdG9yIHRoZSBiaW5kaW5nIGdlbmVyYXRlZCBjb2RlIHRv
IHVzZSByZWZlcmVuY2VzIGZvciBsZXhpY2FsR2xvYmFsT2JqZWN0LgotICAgICAgICByZXR1cm4g
b3BlcmF0aW9uKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCAmY2FsbEZyYW1lLCB0aHJvd1Njb3BlKTsK
KyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIG9wZXJhdGlvbigmbGV4aWNh
bEdsb2JhbE9iamVjdCwgJmNhbGxGcmFtZSwgdGhyb3dTY29wZSkpOwogICAgIH0KIH07CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZl
cnJlZC5jcHAJKHJldmlzaW9uIDI2NDc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NUHJvbWlzZURlZmVycmVkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE1MCw2ICsxNTAs
NyBAQCB2b2lkIERlZmVycmVkUHJvbWlzZTo6cmVqZWN0KEV4Y2VwdGlvbiBlCiAgICAgfQogCiAg
ICAgcmVqZWN0KGxleGljYWxHbG9iYWxPYmplY3QsIGVycm9yLCByZWplY3RBc0hhbmRsZWQpOwor
ICAgIEVYQ0VQVElPTl9BU1NFUlQoIXNjb3BlLmV4Y2VwdGlvbigpIHx8IGlzVGVybWluYXRlZEV4
ZWN1dGlvbkV4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCksIHNjb3BlLmV4Y2VwdGlv
bigpKSk7CiB9CiAKIHZvaWQgRGVmZXJyZWRQcm9taXNlOjpyZWplY3QoRXhjZXB0aW9uQ29kZSBl
YywgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBSZWplY3RBc0hhbmRsZWQgcmVqZWN0QXNIYW5kbGVk
KQpAQCAtMTk3LDE2ICsxOTgsMTQgQEAgdm9pZCBEZWZlcnJlZFByb21pc2U6OnJlamVjdChjb25z
dCBKU0M6OgogICAgIHJlamVjdCgqbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpTeW1ib2w6OmNy
ZWF0ZShsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpLCBwcml2YXRlTmFtZS51aWQoKSksIHJlamVj
dEFzSGFuZGxlZCk7CiB9CiAKLXZvaWQgcmVqZWN0UHJvbWlzZVdpdGhFeGNlcHRpb25JZkFueShK
U0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0RPTUdsb2JhbE9iamVj
dCYgZ2xvYmFsT2JqZWN0LCBKU1Byb21pc2UmIHByb21pc2UpCit2b2lkIHJlamVjdFByb21pc2VX
aXRoRXhjZXB0aW9uSWZBbnkoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgSlNQcm9taXNlJiBwcm9taXNlLCBK
U0M6OkNhdGNoU2NvcGUmIGNhdGNoU2NvcGUpCiB7Ci0gICAgVk0mIHZtID0gbGV4aWNhbEdsb2Jh
bE9iamVjdC52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsK
LQotICAgIGlmIChMSUtFTFkoIXNjb3BlLmV4Y2VwdGlvbigpKSkKKyAgICBVTlVTRURfUEFSQU0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CisgICAgaWYgKExJS0VMWSghY2F0Y2hTY29wZS5leGNlcHRp
b24oKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEpTVmFsdWUgZXJyb3IgPSBzY29wZS5leGNl
cHRpb24oKS0+dmFsdWUoKTsKLSAgICBzY29wZS5jbGVhckV4Y2VwdGlvbigpOworICAgIEpTVmFs
dWUgZXJyb3IgPSBjYXRjaFNjb3BlLmV4Y2VwdGlvbigpLT52YWx1ZSgpOworICAgIGNhdGNoU2Nv
cGUuY2xlYXJFeGNlcHRpb24oKTsKIAogICAgIERlZmVycmVkUHJvbWlzZTo6Y3JlYXRlKGdsb2Jh
bE9iamVjdCwgcHJvbWlzZSktPnJlamVjdDxJRExBbnk+KGVycm9yKTsKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVmZXJyZWQuaAkocmV2
aXNpb24gMjY0NzQxKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Qcm9taXNl
RGVmZXJyZWQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEzLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yODksNyArMjg5LDcgQEAgUmVmPERlZmVycmVkUHJv
bWlzZT4gY3JlYXRlRGVmZXJyZWRQcm9taQogdm9pZCBmdWxmaWxsUHJvbWlzZVdpdGhKU09OKFJl
ZjxEZWZlcnJlZFByb21pc2U+JiYsIGNvbnN0IFN0cmluZyYpOwogdm9pZCBmdWxmaWxsUHJvbWlz
ZVdpdGhBcnJheUJ1ZmZlcihSZWY8RGVmZXJyZWRQcm9taXNlPiYmLCBBcnJheUJ1ZmZlciopOwog
dm9pZCBmdWxmaWxsUHJvbWlzZVdpdGhBcnJheUJ1ZmZlcihSZWY8RGVmZXJyZWRQcm9taXNlPiYm
LCBjb25zdCB2b2lkKiwgc2l6ZV90KTsKLVdFQkNPUkVfRVhQT1JUIHZvaWQgcmVqZWN0UHJvbWlz
ZVdpdGhFeGNlcHRpb25JZkFueShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNET01HbG9iYWxPYmpl
Y3QmLCBKU0M6OkpTUHJvbWlzZSYpOworV0VCQ09SRV9FWFBPUlQgdm9pZCByZWplY3RQcm9taXNl
V2l0aEV4Y2VwdGlvbklmQW55KEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0RPTUdsb2JhbE9iamVj
dCYsIEpTQzo6SlNQcm9taXNlJiwgSlNDOjpDYXRjaFNjb3BlJik7CiAKIGVudW0gY2xhc3MgUmVq
ZWN0ZWRQcm9taXNlV2l0aFR5cGVFcnJvckNhdXNlIHsgTmF0aXZlR2V0dGVyLCBJbnZhbGlkVGhp
cyB9OwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBjcmVhdGVSZWplY3RlZFByb21pc2VXaXRoVHlwZUVy
cm9yKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBjb25zdCBTdHJpbmcmLCBSZWplY3RlZFByb21pc2VX
aXRoVHlwZUVycm9yQ2F1c2UpOwpAQCAtMzAwLDcgKzMwMCw3IEBAIHRlbXBsYXRlPFByb21pc2VG
dW5jdGlvbiBwcm9taXNlRnVuY3Rpb24KIGlubGluZSBKU0M6OkpTVmFsdWUgY2FsbFByb21pc2VG
dW5jdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNh
bGxGcmFtZSYgY2FsbEZyYW1lKQogewogICAgIEpTQzo6Vk0mIHZtID0gSlNDOjpnZXRWTSgmbGV4
aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUo
dm0pOworICAgIGF1dG8gY2F0Y2hTY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOwogCiAg
ICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gY2FsbGVyR2xvYmFsT2JqZWN0KGxleGljYWxHbG9iYWxP
YmplY3QsIGNhbGxGcmFtZSk7CiAgICAgYXV0byogcHJvbWlzZSA9IEpTQzo6SlNQcm9taXNlOjpj
cmVhdGUodm0sIGdsb2JhbE9iamVjdC5wcm9taXNlU3RydWN0dXJlKCkpOwpAQCAtMzA4LDEwICsz
MDgsMTAgQEAgaW5saW5lIEpTQzo6SlNWYWx1ZSBjYWxsUHJvbWlzZUZ1bmN0aW9uKAogCiAgICAg
cHJvbWlzZUZ1bmN0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgRGVmZXJyZWRQ
cm9taXNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCAqcHJvbWlzZSkpOwogCi0gICAgcmVqZWN0UHJv
bWlzZVdpdGhFeGNlcHRpb25JZkFueShsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3Qs
ICpwcm9taXNlKTsKKyAgICByZWplY3RQcm9taXNlV2l0aEV4Y2VwdGlvbklmQW55KGxleGljYWxH
bG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwgKnByb21pc2UsIGNhdGNoU2NvcGUpOwogICAgIC8v
IEZJWE1FOiBXZSBjb3VsZCBoYXZlIGVycm9yIHNpbmNlIGFueSBKUyBjYWxsIGNhbiB0aHJvdyBz
dGFjay1vdmVyZmxvdyBlcnJvcnMuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMzQwMgotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTQzo6
anNVbmRlZmluZWQoKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihjYXRjaFNjb3BlLCBKU0M6
OmpzVW5kZWZpbmVkKCkpOwogICAgIHJldHVybiBwcm9taXNlOwogfQogCkBAIC0zMTksNyArMzE5
LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgUHJvbWlzZUZ1bmN0b3I+CiBpbmxpbmUgSlNDOjpKU1Zh
bHVlIGNhbGxQcm9taXNlRnVuY3Rpb24oSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNDOjpDYWxsRnJhbWUmIGNhbGxGcmFtZSwgUHJvbWlzZUZ1bmN0b3IgZnVuY3Rv
cikKIHsKICAgICBKU0M6OlZNJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
OwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKKyAgICBhdXRvIGNh
dGNoU2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKIAogICAgIGF1dG8mIGdsb2JhbE9i
amVjdCA9IGNhbGxlckdsb2JhbE9iamVjdChsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUp
OwogICAgIGF1dG8qIHByb21pc2UgPSBKU0M6OkpTUHJvbWlzZTo6Y3JlYXRlKHZtLCBnbG9iYWxP
YmplY3QucHJvbWlzZVN0cnVjdHVyZSgpKTsKQEAgLTMyNywxMCArMzI3LDEwIEBAIGlubGluZSBK
U0M6OkpTVmFsdWUgY2FsbFByb21pc2VGdW5jdGlvbigKIAogICAgIGZ1bmN0b3IobGV4aWNhbEds
b2JhbE9iamVjdCwgY2FsbEZyYW1lLCBEZWZlcnJlZFByb21pc2U6OmNyZWF0ZShnbG9iYWxPYmpl
Y3QsICpwcm9taXNlKSk7CiAKLSAgICByZWplY3RQcm9taXNlV2l0aEV4Y2VwdGlvbklmQW55KGxl
eGljYWxHbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwgKnByb21pc2UpOworICAgIHJlamVjdFBy
b21pc2VXaXRoRXhjZXB0aW9uSWZBbnkobGV4aWNhbEdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0
LCAqcHJvbWlzZSwgY2F0Y2hTY29wZSk7CiAgICAgLy8gRklYTUU6IFdlIGNvdWxkIGhhdmUgZXJy
b3Igc2luY2UgYW55IEpTIGNhbGwgY2FuIHRocm93IHN0YWNrLW92ZXJmbG93IGVycm9ycy4KICAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNDAyCi0gICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNDOjpqc1VuZGVmaW5lZCgpKTsKKyAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKGNhdGNoU2NvcGUsIEpTQzo6anNVbmRlZmluZWQoKSk7CiAgICAgcmV0
dXJuIHByb21pc2U7CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NDc0MSkKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA3LTIy
ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggbWlzc2luZyBl
eGNlcHRpb24gY2hlY2tzIGluIGJlbG93IFJUQ1BlZXJDb25uZWN0aW9uLmdlbmVyYXRlQ2VydGlm
aWNhdGUoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNDY2OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjU5Mjk5NzU+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWJydGMvbWlzc2luZy1leGNl
cHRpb24tY2hlY2tzLVJUQ1BlZXJDb25uZWN0aW9uLWdlbmVyYXRlQ2VydGlmaWNhdGUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJydGMvbWlzc2luZy1leGNlcHRpb24tY2hlY2tz
LVJUQ1BlZXJDb25uZWN0aW9uLWdlbmVyYXRlQ2VydGlmaWNhdGUuaHRtbDogQWRkZWQuCisKIDIw
MjAtMDctMjIgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCB0ZXN0IGdhcmRlbmluZywgcmVtb3ZlIG9sZCB0ZXN0IGV4cGVjdGF0aW9uICBk
aXJlY3RvcmllcyBmb3IgaU9TIDEyIHNpbmNlIHRoZXkgYXJlIHVudXNlZC4KSW5kZXg6IExheW91
dFRlc3RzL3dlYnJ0Yy9taXNzaW5nLWV4Y2VwdGlvbi1jaGVja3MtUlRDUGVlckNvbm5lY3Rpb24t
Z2VuZXJhdGVDZXJ0aWZpY2F0ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvd2VicnRjL21pc3NpbmctZXhjZXB0aW9uLWNoZWNrcy1SVENQZWVyQ29ubmVjdGlvbi1nZW5l
cmF0ZUNlcnRpZmljYXRlLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0
cy93ZWJydGMvbWlzc2luZy1leGNlcHRpb24tY2hlY2tzLVJUQ1BlZXJDb25uZWN0aW9uLWdlbmVy
YXRlQ2VydGlmaWNhdGUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNCBA
QAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5k
ZXg6IExheW91dFRlc3RzL3dlYnJ0Yy9taXNzaW5nLWV4Y2VwdGlvbi1jaGVja3MtUlRDUGVlckNv
bm5lY3Rpb24tZ2VuZXJhdGVDZXJ0aWZpY2F0ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3dlYnJ0Yy9taXNzaW5nLWV4Y2VwdGlvbi1jaGVja3MtUlRDUGVlckNvbm5lY3Rpb24tZ2Vu
ZXJhdGVDZXJ0aWZpY2F0ZS5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3dlYnJ0
Yy9taXNzaW5nLWV4Y2VwdGlvbi1jaGVja3MtUlRDUGVlckNvbm5lY3Rpb24tZ2VuZXJhdGVDZXJ0
aWZpY2F0ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBo
dG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsganNjT3B0aW9ucz0tLXZhbGlkYXRlRXhjZXB0
aW9uQ2hlY2tzPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dD4KKyAgICBSVENQZWVyQ29ubmVjdGlvbi5nZW5lcmF0ZUNlcnRpZmljYXRlKHt9KS5jYXRjaCgo
KSA9PiB7IH0pOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405016</attachid>
            <date>2020-07-22 21:29:02 -0700</date>
            <delta_ts>2020-07-23 01:49:47 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-214668.patch</filename>
            <type>text/plain</type>
            <size>22322</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NDc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIwLTA3LTIyICBNYXJrIExh
bSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggbWlzc2luZyBleGNlcHRpb24g
Y2hlY2tzIGJlbG93IFJUQ1BlZXJDb25uZWN0aW9uLmdlbmVyYXRlQ2VydGlmaWNhdGUoKS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDY2OAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNjU5Mjk5NzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogd2VicnRjL21pc3NpbmctZXhjZXB0aW9uLWNo
ZWNrcy1SVENQZWVyQ29ubmVjdGlvbi1nZW5lcmF0ZUNlcnRpZmljYXRlLmh0bWwKKworICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Q3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Ojp3aGVuRGVmaW5lZCk6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNET01Db252ZXJ0VW5pb24uaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0RPTU9wZXJhdGlvblJldHVybmluZ1Byb21pc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6
OklETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U6OmNhbGwpOgorICAgICAgICAoV2ViQ29yZTo6
SURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTo6Y2FsbFJldHVybmluZ093blByb21pc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6SURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTo6Y2FsbFN0YXRp
Yyk6CisgICAgICAgIChXZWJDb3JlOjpJRExPcGVyYXRpb25SZXR1cm5pbmdQcm9taXNlOjpjYWxs
U3RhdGljUmV0dXJuaW5nT3duUHJvbWlzZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01Q
cm9taXNlRGVmZXJyZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVmZXJyZWRQcm9taXNlOjpy
ZWplY3QpOgorICAgICAgICAoV2ViQ29yZTo6cmVqZWN0UHJvbWlzZVdpdGhFeGNlcHRpb25JZkFu
eSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVmZXJyZWQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNhbGxQcm9taXNlRnVuY3Rpb24pOgorCiAyMDIwLTA3LTIyICBGdWppaSBI
aXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5DYWlyb11b
MzJiaXRdIEpQRUcyMDAwSW1hZ2VEZWNvZGVyLmNwcDogZXJyb3IgQzI2NjQ6ICdzdGQ6OnVuaXF1
ZV9wdHI8Li4uPjo6dW5pcXVlX3B0ciguLi4pJzogY2Fubm90IGNvbnZlcnQgYXJndW1lbnQgMiBm
cm9tICd2b2lkIChfX3N0ZGNhbGwgKikob3BqX2NvZGVjX3QgKiknIHRvICdjb25zdCBfRHggJicK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5
Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1
c3RvbUVsZW1lbnRSZWdpc3RyeUN1c3RvbS5jcHAJKHJldmlzaW9uIDI2NDc0MSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Q3VzdG9tLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUt
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTIwNCwxOSArMjA0LDIxIEBAIHN0YXRpYyBKU1ZhbHVlIHdoZW5E
ZWZpbmVkUHJvbWlzZShKU0dsb2IKIAogSlNWYWx1ZSBKU0N1c3RvbUVsZW1lbnRSZWdpc3RyeTo6
d2hlbkRlZmluZWQoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSYgY2FsbEZyYW1lKQogewotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKGxl
eGljYWxHbG9iYWxPYmplY3Qudm0oKSk7CisgICAgYXV0byBjYXRjaFNjb3BlID0gREVDTEFSRV9D
QVRDSF9TQ09QRShsZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCkpOwogCiAgICAgQVNTRVJUKGdsb2Jh
bE9iamVjdCgpKTsKICAgICBhdXRvKiByZXN1bHQgPSBKU1Byb21pc2U6OmNyZWF0ZShsZXhpY2Fs
R2xvYmFsT2JqZWN0LnZtKCksIGxleGljYWxHbG9iYWxPYmplY3QucHJvbWlzZVN0cnVjdHVyZSgp
KTsKICAgICBKU1ZhbHVlIHByb21pc2UgPSB3aGVuRGVmaW5lZFByb21pc2UobGV4aWNhbEdsb2Jh
bE9iamVjdCwgY2FsbEZyYW1lLCAqZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKSwgKnJlc3VsdCk7
CiAKLSAgICBpZiAoVU5MSUtFTFkoc2NvcGUuZXhjZXB0aW9uKCkpKSB7Ci0gICAgICAgIHJlamVj
dFByb21pc2VXaXRoRXhjZXB0aW9uSWZBbnkobGV4aWNhbEdsb2JhbE9iamVjdCwgKmdsb2JhbE9i
amVjdCgpLCAqcmVzdWx0KTsKLSAgICAgICAgc2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKKyAg
ICBpZiAoVU5MSUtFTFkoY2F0Y2hTY29wZS5leGNlcHRpb24oKSkpIHsKKyAgICAgICAgcmVqZWN0
UHJvbWlzZVdpdGhFeGNlcHRpb25JZkFueShsZXhpY2FsR2xvYmFsT2JqZWN0LCAqZ2xvYmFsT2Jq
ZWN0KCksICpyZXN1bHQsIGNhdGNoU2NvcGUpOworICAgICAgICAvLyBGSVhNRTogV2UgY291bGQg
aGF2ZSBlcnJvciBzaW5jZSBhbnkgSlMgY2FsbCBjYW4gdGhyb3cgc3RhY2stb3ZlcmZsb3cgZXJy
b3JzLgorICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAzNDAyCisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oY2F0Y2hTY29wZSwgSlNDOjpqc1Vu
ZGVmaW5lZCgpKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKICAgICByZXR1cm4g
cHJvbWlzZTsKIH0KIAotfQorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0VW5pb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRVbmlvbi5oCShyZXZpc2lvbiAyNjQ3
NDEpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRVbmlvbi5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTE3Miw3ICsxNzIsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUPiBzdHJ1
Y3QgQ29udmVydGVyCiAgICAgICAgIGNvbnN0ZXhwciBib29sIGhhc051bGxUeXBlID0gYnJpZ2Fu
ZDo6YW55PFR5cGVMaXN0LCBzdGQ6OmlzX3NhbWU8SURMTnVsbCwgYnJpZ2FuZDo6XzE+Pjo6dmFs
dWU7CiAgICAgICAgIGlmIChoYXNOdWxsVHlwZSkgewogICAgICAgICAgICAgaWYgKHZhbHVlLmlz
VW5kZWZpbmVkT3JOdWxsKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIENvbmRpdGlvbmFsQ29u
dmVydGVyPFJldHVyblR5cGUsIElETE51bGwsIGhhc051bGxUeXBlPjo6Y29udmVydChsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB2YWx1ZSkudmFsdWUoKTsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIChDb25kaXRpb25hbENvbnZlcnRlcjxSZXR1cm5UeXBlLCBJRExOdWxs
LCBoYXNOdWxsVHlwZT46OmNvbnZlcnQobGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpLnZhbHVl
KCkpKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgLy8gMi4gTGV0IHR5cGVzIGJlIHRo
ZSBmbGF0dGVuZWQgbWVtYmVyIHR5cGVzIG9mIHRoZSB1bmlvbiB0eXBlLgpAQCAtMTgyLDcgKzE4
Miw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFQ+IHN0cnVjdCBDb252ZXJ0ZXIKICAgICAgICAg
aWYgKGhhc0RpY3Rpb25hcnlUeXBlKSB7CiAgICAgICAgICAgICBpZiAodmFsdWUuaXNVbmRlZmlu
ZWRPck51bGwoKSkgewogICAgICAgICAgICAgICAgIC8vICAgICAxLiBJZiB0eXBlcyBpbmNsdWRl
cyBhIGRpY3Rpb25hcnkgdHlwZSwgdGhlbiByZXR1cm4gdGhlIHJlc3VsdCBvZiBjb252ZXJ0aW5n
IFYgdG8gdGhhdCBkaWN0aW9uYXJ5IHR5cGUuCi0gICAgICAgICAgICAgICAgcmV0dXJuIENvbmRp
dGlvbmFsQ29udmVydGVyPFJldHVyblR5cGUsIERpY3Rpb25hcnlUeXBlLCBoYXNEaWN0aW9uYXJ5
VHlwZT46OmNvbnZlcnQobGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpLnZhbHVlKCk7CisgICAg
ICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCAoQ29uZGl0aW9uYWxDb252ZXJ0
ZXI8UmV0dXJuVHlwZSwgRGljdGlvbmFyeVR5cGUsIGhhc0RpY3Rpb25hcnlUeXBlPjo6Y29udmVy
dChsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSkudmFsdWUoKSkpOwogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAKQEAgLTIzMSw3ICsyMzEsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUPiBz
dHJ1Y3QgQ29udmVydGVyCiAgICAgICAgICAgICBpZiAoYXJyYXlCdWZmZXIpIHsKICAgICAgICAg
ICAgICAgICBpZiAoaGFzQXJyYXlCdWZmZXJUeXBlKQogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gQ29uZGl0aW9uYWxSZXR1cm5lcjxSZXR1cm5UeXBlLCBoYXNBcnJheUJ1ZmZlclR5cGU+Ojpn
ZXQoV1RGTW92ZShhcnJheUJ1ZmZlcikpLnZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IENvbmRpdGlvbmFsQ29udmVydGVyPFJldHVyblR5cGUsIE9iamVjdFR5cGUsIGhhc09iamVjdFR5
cGU+Ojpjb252ZXJ0KGxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKS52YWx1ZSgpOworICAgICAg
ICAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgKENvbmRpdGlvbmFsQ29udmVydGVy
PFJldHVyblR5cGUsIE9iamVjdFR5cGUsIGhhc09iamVjdFR5cGU+Ojpjb252ZXJ0KGxleGljYWxH
bG9iYWxPYmplY3QsIHZhbHVlKS52YWx1ZSgpKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
IApAQCAtMjQxLDcgKzI0MSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFQ+IHN0cnVjdCBDb252
ZXJ0ZXIKICAgICAgICAgICAgIGlmIChhcnJheUJ1ZmZlclZpZXcpIHsKICAgICAgICAgICAgICAg
ICBpZiAoaGFzQXJyYXlCdWZmZXJWaWV3VHlwZSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IENvbmRpdGlvbmFsUmV0dXJuZXI8UmV0dXJuVHlwZSwgaGFzQXJyYXlCdWZmZXJWaWV3VHlwZT46
OmdldChXVEZNb3ZlKGFycmF5QnVmZmVyVmlldykpLnZhbHVlKCk7Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIENvbmRpdGlvbmFsQ29udmVydGVyPFJldHVyblR5cGUsIE9iamVjdFR5cGUsIGhhc09i
amVjdFR5cGU+Ojpjb252ZXJ0KGxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKS52YWx1ZSgpOwor
ICAgICAgICAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgKENvbmRpdGlvbmFsQ29u
dmVydGVyPFJldHVyblR5cGUsIE9iamVjdFR5cGUsIGhhc09iamVjdFR5cGU+Ojpjb252ZXJ0KGxl
eGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKS52YWx1ZSgpKSk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KIApAQCAtMjU0LDcgKzI1NCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFQ+IHN0cnVj
dCBDb252ZXJ0ZXIKICAgICAgICAgICAgIGlmIChkYXRhVmlldykgewogICAgICAgICAgICAgICAg
IGlmIChoYXNEYXRhVmlld1R5cGUpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDb25kaXRp
b25hbFJldHVybmVyPFJldHVyblR5cGUsIGhhc0RhdGFWaWV3VHlwZT46OmdldChXVEZNb3ZlKGRh
dGFWaWV3KSkudmFsdWUoKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gQ29uZGl0aW9uYWxDb252
ZXJ0ZXI8UmV0dXJuVHlwZSwgT2JqZWN0VHlwZSwgaGFzT2JqZWN0VHlwZT46OmNvbnZlcnQobGV4
aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpLnZhbHVlKCk7CisgICAgICAgICAgICAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCAoQ29uZGl0aW9uYWxDb252ZXJ0ZXI8UmV0dXJuVHlwZSwgT2Jq
ZWN0VHlwZSwgaGFzT2JqZWN0VHlwZT46OmNvbnZlcnQobGV4aWNhbEdsb2JhbE9iamVjdCwgdmFs
dWUpLnZhbHVlKCkpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCkBAIC0zMDcsNyArMzA3
LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gVD4gc3RydWN0IENvbnZlcnRlcgogICAgICAgICAg
ICAgICAgICAgICAgICAgYXV0byBtZXRob2QgPSBKU0M6Oml0ZXJhdG9yTWV0aG9kKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBvYmplY3QpOwogICAgICAgICAgICAgICAgICAgICAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgUmV0dXJuVHlwZSgpKTsKICAgICAgICAgICAgICAgICAgICAgICAg
IGlmICghbWV0aG9kLmlzVW5kZWZpbmVkKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIENvbmRpdGlvbmFsU2VxdWVuY2VDb252ZXJ0ZXI8UmV0dXJuVHlwZSwgU2VxdWVuY2VU
eXBlLCBoYXNTZXF1ZW5jZVR5cGU+Ojpjb252ZXJ0KGxleGljYWxHbG9iYWxPYmplY3QsIG9iamVj
dCwgbWV0aG9kKS52YWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTihzY29wZSwgKENvbmRpdGlvbmFsU2VxdWVuY2VDb252ZXJ0ZXI8UmV0dXJuVHlw
ZSwgU2VxdWVuY2VUeXBlLCBoYXNTZXF1ZW5jZVR5cGU+Ojpjb252ZXJ0KGxleGljYWxHbG9iYWxP
YmplY3QsIG9iamVjdCwgbWV0aG9kKS52YWx1ZSgpKSk7CiAgICAgICAgICAgICAgICAgICAgIH0K
IAogICAgICAgICAgICAgICAgICAgICAvLyAgICAgMi4gSWYgdHlwZXMgaW5jbHVkZXMgYSBmcm96
ZW4gYXJyYXkgdHlwZSwgdGhlbjoKQEAgLTMyMCwyNCArMzIwLDI0IEBAIHRlbXBsYXRlPHR5cGVu
YW1lLi4uIFQ+IHN0cnVjdCBDb252ZXJ0ZXIKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8g
bWV0aG9kID0gSlNDOjppdGVyYXRvck1ldGhvZCgmbGV4aWNhbEdsb2JhbE9iamVjdCwgb2JqZWN0
KTsKICAgICAgICAgICAgICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIFJl
dHVyblR5cGUoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW1ldGhvZC5pc1VuZGVm
aW5lZCgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDb25kaXRpb25hbFNl
cXVlbmNlQ29udmVydGVyPFJldHVyblR5cGUsIEZyb3plbkFycmF5VHlwZSwgaGFzRnJvemVuQXJy
YXlUeXBlPjo6Y29udmVydChsZXhpY2FsR2xvYmFsT2JqZWN0LCBvYmplY3QsIG1ldGhvZCkudmFs
dWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2Nv
cGUsIChDb25kaXRpb25hbFNlcXVlbmNlQ29udmVydGVyPFJldHVyblR5cGUsIEZyb3plbkFycmF5
VHlwZSwgaGFzRnJvemVuQXJyYXlUeXBlPjo6Y29udmVydChsZXhpY2FsR2xvYmFsT2JqZWN0LCBv
YmplY3QsIG1ldGhvZCkudmFsdWUoKSkpOwogICAgICAgICAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgICAgICAgICAgLy8gICAgIDMuIElmIHR5cGVzIGluY2x1ZGVzIGEgZGljdGlvbmFyeSB0
eXBlLCB0aGVuIHJldHVybiB0aGUgcmVzdWx0IG9mCiAgICAgICAgICAgICAgICAgICAgIC8vICAg
ICAgICBjb252ZXJ0aW5nIFYgdG8gdGhhdCBkaWN0aW9uYXJ5IHR5cGUuCiAgICAgICAgICAgICAg
ICAgICAgIGlmIChoYXNEaWN0aW9uYXJ5VHlwZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBDb25kaXRpb25hbENvbnZlcnRlcjxSZXR1cm5UeXBlLCBEaWN0aW9uYXJ5VHlwZSwgaGFz
RGljdGlvbmFyeVR5cGU+Ojpjb252ZXJ0KGxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKS52YWx1
ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCAo
Q29uZGl0aW9uYWxDb252ZXJ0ZXI8UmV0dXJuVHlwZSwgRGljdGlvbmFyeVR5cGUsIGhhc0RpY3Rp
b25hcnlUeXBlPjo6Y29udmVydChsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSkudmFsdWUoKSkp
OwogCiAgICAgICAgICAgICAgICAgICAgIC8vICAgICA0LiBJZiB0eXBlcyBpbmNsdWRlcyBhIHJl
Y29yZCB0eXBlLCB0aGVuIHJldHVybiB0aGUgcmVzdWx0IG9mIGNvbnZlcnRpbmcgViB0byB0aGF0
IHJlY29yZCB0eXBlLgogICAgICAgICAgICAgICAgICAgICBpZiAoaGFzUmVjb3JkVHlwZSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDb25kaXRpb25hbENvbnZlcnRlcjxSZXR1cm5U
eXBlLCBSZWNvcmRUeXBlLCBoYXNSZWNvcmRUeXBlPjo6Y29udmVydChsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB2YWx1ZSkudmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQU5E
X1JFVFVSTihzY29wZSwgKENvbmRpdGlvbmFsQ29udmVydGVyPFJldHVyblR5cGUsIFJlY29yZFR5
cGUsIGhhc1JlY29yZFR5cGU+Ojpjb252ZXJ0KGxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKS52
YWx1ZSgpKSk7CiAKICAgICAgICAgICAgICAgICAgICAgLy8gICAgIDUuIElmIHR5cGVzIGluY2x1
ZGVzIGEgY2FsbGJhY2sgaW50ZXJmYWNlIHR5cGUsIHRoZW4gcmV0dXJuIHRoZSByZXN1bHQgb2Yg
Y29udmVydGluZyBWIHRvIHRoYXQgaW50ZXJmYWNlIHR5cGUuCiAgICAgICAgICAgICAgICAgICAg
IC8vICAgICAgICAgKEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgY2FsbGJhY2sgaW50ZXJmYWNlIHR5
cGUgYW5kIHN0ZXAgMTIuNSkKIAogICAgICAgICAgICAgICAgICAgICAvLyAgICAgNi4gSWYgdHlw
ZXMgaW5jbHVkZXMgb2JqZWN0LCB0aGVuIHJldHVybiB0aGUgSURMIHZhbHVlIHRoYXQgaXMgYSBy
ZWZlcmVuY2UgdG8gdGhlIG9iamVjdCBWLgogICAgICAgICAgICAgICAgICAgICBpZiAoaGFzT2Jq
ZWN0VHlwZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDb25kaXRpb25hbENvbnZl
cnRlcjxSZXR1cm5UeXBlLCBPYmplY3RUeXBlLCBoYXNPYmplY3RUeXBlPjo6Y29udmVydChsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSkudmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgKENvbmRpdGlvbmFsQ29udmVydGVyPFJldHVyblR5
cGUsIE9iamVjdFR5cGUsIGhhc09iamVjdFR5cGU+Ojpjb252ZXJ0KGxleGljYWxHbG9iYWxPYmpl
Y3QsIHZhbHVlKS52YWx1ZSgpKSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQog
ICAgICAgICB9CkBAIC0zNDcsNyArMzQ3LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gVD4gc3Ry
dWN0IENvbnZlcnRlcgogICAgICAgICBjb25zdGV4cHIgYm9vbCBoYXNCb29sZWFuVHlwZSA9IGJy
aWdhbmQ6OmFueTxUeXBlTGlzdCwgc3RkOjppc19zYW1lPElETEJvb2xlYW4sIGJyaWdhbmQ6Ol8x
Pj46OnZhbHVlOwogICAgICAgICBpZiAoaGFzQm9vbGVhblR5cGUpIHsKICAgICAgICAgICAgIGlm
ICh2YWx1ZS5pc0Jvb2xlYW4oKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gQ29uZGl0aW9uYWxD
b252ZXJ0ZXI8UmV0dXJuVHlwZSwgSURMQm9vbGVhbiwgaGFzQm9vbGVhblR5cGU+Ojpjb252ZXJ0
KGxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKS52YWx1ZSgpOworICAgICAgICAgICAgICAgIFJF
TEVBU0VfQU5EX1JFVFVSTihzY29wZSwgKENvbmRpdGlvbmFsQ29udmVydGVyPFJldHVyblR5cGUs
IElETEJvb2xlYW4sIGhhc0Jvb2xlYW5UeXBlPjo6Y29udmVydChsZXhpY2FsR2xvYmFsT2JqZWN0
LCB2YWx1ZSkudmFsdWUoKSkpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICAvLyAxMy4g
SWYgViBpcyBhIE51bWJlciB2YWx1ZSwgdGhlbjoKQEAgLTM1NSwyMSArMzU1LDIxIEBAIHRlbXBs
YXRlPHR5cGVuYW1lLi4uIFQ+IHN0cnVjdCBDb252ZXJ0ZXIKICAgICAgICAgY29uc3RleHByIGJv
b2wgaGFzTnVtZXJpY1R5cGUgPSBicmlnYW5kOjpzaXplPE51bWVyaWNUeXBlTGlzdD46OnZhbHVl
ICE9IDA7CiAgICAgICAgIGlmIChoYXNOdW1lcmljVHlwZSkgewogICAgICAgICAgICAgaWYgKHZh
bHVlLmlzTnVtYmVyKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIENvbmRpdGlvbmFsQ29udmVy
dGVyPFJldHVyblR5cGUsIE51bWVyaWNUeXBlLCBoYXNOdW1lcmljVHlwZT46OmNvbnZlcnQobGV4
aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpLnZhbHVlKCk7CisgICAgICAgICAgICAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCAoQ29uZGl0aW9uYWxDb252ZXJ0ZXI8UmV0dXJuVHlwZSwgTnVt
ZXJpY1R5cGUsIGhhc051bWVyaWNUeXBlPjo6Y29udmVydChsZXhpY2FsR2xvYmFsT2JqZWN0LCB2
YWx1ZSkudmFsdWUoKSkpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICAvLyAxNC4gSWYg
dHlwZXMgaW5jbHVkZXMgYSBzdHJpbmcgdHlwZSwgdGhlbiByZXR1cm4gdGhlIHJlc3VsdCBvZiBj
b252ZXJ0aW5nIFYgdG8gdGhhdCB0eXBlLgogICAgICAgICBjb25zdGV4cHIgYm9vbCBoYXNTdHJp
bmdUeXBlID0gYnJpZ2FuZDo6c2l6ZTxTdHJpbmdUeXBlTGlzdD46OnZhbHVlICE9IDA7CiAgICAg
ICAgIGlmIChoYXNTdHJpbmdUeXBlKQotICAgICAgICAgICAgcmV0dXJuIENvbmRpdGlvbmFsQ29u
dmVydGVyPFJldHVyblR5cGUsIFN0cmluZ1R5cGUsIGhhc1N0cmluZ1R5cGU+Ojpjb252ZXJ0KGxl
eGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKS52YWx1ZSgpOworICAgICAgICAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHNjb3BlLCAoQ29uZGl0aW9uYWxDb252ZXJ0ZXI8UmV0dXJuVHlwZSwgU3RyaW5n
VHlwZSwgaGFzU3RyaW5nVHlwZT46OmNvbnZlcnQobGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUp
LnZhbHVlKCkpKTsKIAogICAgICAgICAvLyAxNS4gSWYgdHlwZXMgaW5jbHVkZXMgYSBudW1lcmlj
IHR5cGUsIHRoZW4gcmV0dXJuIHRoZSByZXN1bHQgb2YgY29udmVydGluZyBWIHRvIHRoYXQgbnVt
ZXJpYyB0eXBlLgogICAgICAgICBpZiAoaGFzTnVtZXJpY1R5cGUpCi0gICAgICAgICAgICByZXR1
cm4gQ29uZGl0aW9uYWxDb252ZXJ0ZXI8UmV0dXJuVHlwZSwgTnVtZXJpY1R5cGUsIGhhc051bWVy
aWNUeXBlPjo6Y29udmVydChsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSkudmFsdWUoKTsKKyAg
ICAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgKENvbmRpdGlvbmFsQ29udmVydGVy
PFJldHVyblR5cGUsIE51bWVyaWNUeXBlLCBoYXNOdW1lcmljVHlwZT46OmNvbnZlcnQobGV4aWNh
bEdsb2JhbE9iamVjdCwgdmFsdWUpLnZhbHVlKCkpKTsKIAogICAgICAgICAvLyAxNi4gSWYgdHlw
ZXMgaW5jbHVkZXMgYSBib29sZWFuLCB0aGVuIHJldHVybiB0aGUgcmVzdWx0IG9mIGNvbnZlcnRp
bmcgViB0byBib29sZWFuLgogICAgICAgICBpZiAoaGFzQm9vbGVhblR5cGUpCi0gICAgICAgICAg
ICByZXR1cm4gQ29uZGl0aW9uYWxDb252ZXJ0ZXI8UmV0dXJuVHlwZSwgSURMQm9vbGVhbiwgaGFz
Qm9vbGVhblR5cGU+Ojpjb252ZXJ0KGxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKS52YWx1ZSgp
OworICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCAoQ29uZGl0aW9uYWxDb252
ZXJ0ZXI8UmV0dXJuVHlwZSwgSURMQm9vbGVhbiwgaGFzQm9vbGVhblR5cGU+Ojpjb252ZXJ0KGxl
eGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKS52YWx1ZSgpKSk7CiAKICAgICAgICAgLy8gMTcuIFRo
cm93IGEgVHlwZUVycm9yLgogICAgICAgICB0aHJvd1R5cGVFcnJvcigmbGV4aWNhbEdsb2JhbE9i
amVjdCwgc2NvcGUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01PcGVy
YXRpb25SZXR1cm5pbmdQcm9taXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01PcGVyYXRpb25SZXR1cm5pbmdQcm9taXNlLmgJKHJldmlzaW9uIDI2NDc0
MSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NT3BlcmF0aW9uUmV0dXJuaW5n
UHJvbWlzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBDb3B5cmln
aHQgKEMpIDE5OTktMjAwMSBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQotICogIENvcHly
aWdodCAoQykgMjAwMy0yMDA2LCAyMDA4LTIwMDksIDIwMTMsIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwMy0yMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5p
ZyA8c2FtQHdlYmtpdC5vcmc+CiAgKiAgQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSwgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogIENvcHlyaWdodCAoQykgMjAxMiBFcmljc3NvbiBBQi4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAgICAgICAg
ICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBKU0NsYXNzOjppbmZvKCkp
OwogICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJlZmFjdG9y
IHRoZSBiaW5kaW5nIGdlbmVyYXRlZCBjb2RlIHRvIHVzZSByZWZlcmVuY2VzIGZvciBsZXhpY2Fs
R2xvYmFsT2JqZWN0IGFuZCB0aGlzT2JqZWN0LgotICAgICAgICAgICAgcmV0dXJuIG9wZXJhdGlv
bigmbGV4aWNhbEdsb2JhbE9iamVjdCwgJmNhbGxGcmFtZSwgdGhpc09iamVjdCwgV1RGTW92ZShw
cm9taXNlKSwgdGhyb3dTY29wZSk7CisgICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgb3BlcmF0aW9uKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCAmY2FsbEZyYW1lLCB0aGlz
T2JqZWN0LCBXVEZNb3ZlKHByb21pc2UpLCB0aHJvd1Njb3BlKSk7CiAgICAgICAgIH0pKTsKICAg
ICB9CiAKQEAgLTY4LDcgKzY4LDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKHRoaXNPYmplY3QsIEpTQ2xhc3M6OmluZm8oKSk7CiAKICAgICAgICAgLy8gRklY
TUU6IFdlIHNob3VsZCByZWZhY3RvciB0aGUgYmluZGluZyBnZW5lcmF0ZWQgY29kZSB0byB1c2Ug
cmVmZXJlbmNlcyBmb3IgbGV4aWNhbEdsb2JhbE9iamVjdCBhbmQgdGhpc09iamVjdC4KLSAgICAg
ICAgcmV0dXJuIG9wZXJhdGlvbigmbGV4aWNhbEdsb2JhbE9iamVjdCwgJmNhbGxGcmFtZSwgdGhp
c09iamVjdCwgdGhyb3dTY29wZSk7CisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCBvcGVyYXRpb24oJmxleGljYWxHbG9iYWxPYmplY3QsICZjYWxsRnJhbWUsIHRoaXNPYmpl
Y3QsIHRocm93U2NvcGUpKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTxTdGF0aWNPcGVyYXRpb24g
b3BlcmF0aW9uLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvciBzaG91bGRUaHJvdyA9IENhc3RlZFRo
aXNFcnJvckJlaGF2aW9yOjpSZWplY3RQcm9taXNlPgpAQCAtNzgsNyArNzgsNyBAQCBwdWJsaWM6
CiAgICAgICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKEpTQzo6
Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAg
Ly8gRklYTUU6IFdlIHNob3VsZCByZWZhY3RvciB0aGUgYmluZGluZyBnZW5lcmF0ZWQgY29kZSB0
byB1c2UgcmVmZXJlbmNlcyBmb3IgbGV4aWNhbEdsb2JhbE9iamVjdC4KLSAgICAgICAgICAgIHJl
dHVybiBvcGVyYXRpb24oJmxleGljYWxHbG9iYWxPYmplY3QsICZjYWxsRnJhbWUsIFdURk1vdmUo
cHJvbWlzZSksIHRocm93U2NvcGUpOworICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsIG9wZXJhdGlvbigmbGV4aWNhbEdsb2JhbE9iamVjdCwgJmNhbGxGcmFtZSwgV1RG
TW92ZShwcm9taXNlKSwgdGhyb3dTY29wZSkpOwogICAgICAgICB9KSk7CiAgICAgfQogCkBAIC05
MCw3ICs5MCw3IEBAIHB1YmxpYzoKICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRShKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSk7CiAKICAgICAgICAg
Ly8gRklYTUU6IFdlIHNob3VsZCByZWZhY3RvciB0aGUgYmluZGluZyBnZW5lcmF0ZWQgY29kZSB0
byB1c2UgcmVmZXJlbmNlcyBmb3IgbGV4aWNhbEdsb2JhbE9iamVjdC4KLSAgICAgICAgcmV0dXJu
IG9wZXJhdGlvbigmbGV4aWNhbEdsb2JhbE9iamVjdCwgJmNhbGxGcmFtZSwgdGhyb3dTY29wZSk7
CisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBvcGVyYXRpb24oJmxleGlj
YWxHbG9iYWxPYmplY3QsICZjYWxsRnJhbWUsIHRocm93U2NvcGUpKTsKICAgICB9CiB9OwogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVm
ZXJyZWQuY3BwCShyZXZpc2lvbiAyNjQ3NDEpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVByb21pc2VEZWZlcnJlZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNTAsNiArMTUw
LDcgQEAgdm9pZCBEZWZlcnJlZFByb21pc2U6OnJlamVjdChFeGNlcHRpb24gZQogICAgIH0KIAog
ICAgIHJlamVjdChsZXhpY2FsR2xvYmFsT2JqZWN0LCBlcnJvciwgcmVqZWN0QXNIYW5kbGVkKTsK
KyAgICBFWENFUFRJT05fQVNTRVJUKCFzY29wZS5leGNlcHRpb24oKSB8fCBpc1Rlcm1pbmF0ZWRF
eGVjdXRpb25FeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdC52bSgpLCBzY29wZS5leGNlcHRp
b24oKSkpOwogfQogCiB2b2lkIERlZmVycmVkUHJvbWlzZTo6cmVqZWN0KEV4Y2VwdGlvbkNvZGUg
ZWMsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUmVqZWN0QXNIYW5kbGVkIHJlamVjdEFzSGFuZGxl
ZCkKQEAgLTE5NywxNiArMTk4LDE0IEBAIHZvaWQgRGVmZXJyZWRQcm9taXNlOjpyZWplY3QoY29u
c3QgSlNDOjoKICAgICByZWplY3QoKmxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6U3ltYm9sOjpj
cmVhdGUobGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKSwgcHJpdmF0ZU5hbWUudWlkKCkpLCByZWpl
Y3RBc0hhbmRsZWQpOwogfQogCi12b2lkIHJlamVjdFByb21pc2VXaXRoRXhjZXB0aW9uSWZBbnko
SlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01HbG9iYWxPYmpl
Y3QmIGdsb2JhbE9iamVjdCwgSlNQcm9taXNlJiBwcm9taXNlKQordm9pZCByZWplY3RQcm9taXNl
V2l0aEV4Y2VwdGlvbklmQW55KEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIEpTUHJvbWlzZSYgcHJvbWlzZSwg
SlNDOjpDYXRjaFNjb3BlJiBjYXRjaFNjb3BlKQogewotICAgIFZNJiB2bSA9IGxleGljYWxHbG9i
YWxPYmplY3Qudm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7
Ci0KLSAgICBpZiAoTElLRUxZKCFzY29wZS5leGNlcHRpb24oKSkpCisgICAgVU5VU0VEX1BBUkFN
KGxleGljYWxHbG9iYWxPYmplY3QpOworICAgIGlmIChMSUtFTFkoIWNhdGNoU2NvcGUuZXhjZXB0
aW9uKCkpKQogICAgICAgICByZXR1cm47CiAKLSAgICBKU1ZhbHVlIGVycm9yID0gc2NvcGUuZXhj
ZXB0aW9uKCktPnZhbHVlKCk7Ci0gICAgc2NvcGUuY2xlYXJFeGNlcHRpb24oKTsKKyAgICBKU1Zh
bHVlIGVycm9yID0gY2F0Y2hTY29wZS5leGNlcHRpb24oKS0+dmFsdWUoKTsKKyAgICBjYXRjaFNj
b3BlLmNsZWFyRXhjZXB0aW9uKCk7CiAKICAgICBEZWZlcnJlZFByb21pc2U6OmNyZWF0ZShnbG9i
YWxPYmplY3QsIHByb21pc2UpLT5yZWplY3Q8SURMQW55PihlcnJvcik7CiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmgJKHJl
dmlzaW9uIDI2NDc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlz
ZURlZmVycmVkLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMy0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjg5LDcgKzI4OSw3IEBAIFJlZjxEZWZlcnJlZFBy
b21pc2U+IGNyZWF0ZURlZmVycmVkUHJvbWkKIHZvaWQgZnVsZmlsbFByb21pc2VXaXRoSlNPTihS
ZWY8RGVmZXJyZWRQcm9taXNlPiYmLCBjb25zdCBTdHJpbmcmKTsKIHZvaWQgZnVsZmlsbFByb21p
c2VXaXRoQXJyYXlCdWZmZXIoUmVmPERlZmVycmVkUHJvbWlzZT4mJiwgQXJyYXlCdWZmZXIqKTsK
IHZvaWQgZnVsZmlsbFByb21pc2VXaXRoQXJyYXlCdWZmZXIoUmVmPERlZmVycmVkUHJvbWlzZT4m
JiwgY29uc3Qgdm9pZCosIHNpemVfdCk7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkIHJlamVjdFByb21p
c2VXaXRoRXhjZXB0aW9uSWZBbnkoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTRE9NR2xvYmFsT2Jq
ZWN0JiwgSlNDOjpKU1Byb21pc2UmKTsKK1dFQkNPUkVfRVhQT1JUIHZvaWQgcmVqZWN0UHJvbWlz
ZVdpdGhFeGNlcHRpb25JZkFueShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNET01HbG9iYWxPYmpl
Y3QmLCBKU0M6OkpTUHJvbWlzZSYsIEpTQzo6Q2F0Y2hTY29wZSYpOwogCiBlbnVtIGNsYXNzIFJl
amVjdGVkUHJvbWlzZVdpdGhUeXBlRXJyb3JDYXVzZSB7IE5hdGl2ZUdldHRlciwgSW52YWxpZFRo
aXMgfTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgY3JlYXRlUmVqZWN0ZWRQcm9taXNlV2l0aFR5cGVF
cnJvcihKU0M6OkpTR2xvYmFsT2JqZWN0JiwgY29uc3QgU3RyaW5nJiwgUmVqZWN0ZWRQcm9taXNl
V2l0aFR5cGVFcnJvckNhdXNlKTsKQEAgLTMwMCw3ICszMDAsNyBAQCB0ZW1wbGF0ZTxQcm9taXNl
RnVuY3Rpb24gcHJvbWlzZUZ1bmN0aW9uCiBpbmxpbmUgSlNDOjpKU1ZhbHVlIGNhbGxQcm9taXNl
RnVuY3Rpb24oSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpD
YWxsRnJhbWUmIGNhbGxGcmFtZSkKIHsKICAgICBKU0M6OlZNJiB2bSA9IEpTQzo6Z2V0Vk0oJmxl
eGljYWxHbG9iYWxPYmplY3QpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BF
KHZtKTsKKyAgICBhdXRvIGNhdGNoU2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKIAog
ICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9IGNhbGxlckdsb2JhbE9iamVjdChsZXhpY2FsR2xvYmFs
T2JqZWN0LCBjYWxsRnJhbWUpOwogICAgIGF1dG8qIHByb21pc2UgPSBKU0M6OkpTUHJvbWlzZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QucHJvbWlzZVN0cnVjdHVyZSgpKTsKQEAgLTMwOCwxMCAr
MzA4LDEwIEBAIGlubGluZSBKU0M6OkpTVmFsdWUgY2FsbFByb21pc2VGdW5jdGlvbigKIAogICAg
IHByb21pc2VGdW5jdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIERlZmVycmVk
UHJvbWlzZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgKnByb21pc2UpKTsKIAotICAgIHJlamVjdFBy
b21pc2VXaXRoRXhjZXB0aW9uSWZBbnkobGV4aWNhbEdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0
LCAqcHJvbWlzZSk7CisgICAgcmVqZWN0UHJvbWlzZVdpdGhFeGNlcHRpb25JZkFueShsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsICpwcm9taXNlLCBjYXRjaFNjb3BlKTsKICAgICAv
LyBGSVhNRTogV2UgY291bGQgaGF2ZSBlcnJvciBzaW5jZSBhbnkgSlMgY2FsbCBjYW4gdGhyb3cg
c3RhY2stb3ZlcmZsb3cgZXJyb3JzLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDM0MDIKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU0M6
OmpzVW5kZWZpbmVkKCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oY2F0Y2hTY29wZSwgSlND
Ojpqc1VuZGVmaW5lZCgpKTsKICAgICByZXR1cm4gcHJvbWlzZTsKIH0KIApAQCAtMzE5LDcgKzMx
OSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFByb21pc2VGdW5jdG9yPgogaW5saW5lIEpTQzo6SlNW
YWx1ZSBjYWxsUHJvbWlzZUZ1bmN0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lJiBjYWxsRnJhbWUsIFByb21pc2VGdW5jdG9yIGZ1bmN0
b3IpCiB7CiAgICAgSlNDOjpWTSYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CisgICAgYXV0byBj
YXRjaFNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CiAKICAgICBhdXRvJiBnbG9iYWxP
YmplY3QgPSBjYWxsZXJHbG9iYWxPYmplY3QobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1l
KTsKICAgICBhdXRvKiBwcm9taXNlID0gSlNDOjpKU1Byb21pc2U6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LnByb21pc2VTdHJ1Y3R1cmUoKSk7CkBAIC0zMjcsMTAgKzMyNywxMCBAQCBpbmxpbmUg
SlNDOjpKU1ZhbHVlIGNhbGxQcm9taXNlRnVuY3Rpb24oCiAKICAgICBmdW5jdG9yKGxleGljYWxH
bG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgRGVmZXJyZWRQcm9taXNlOjpjcmVhdGUoZ2xvYmFsT2Jq
ZWN0LCAqcHJvbWlzZSkpOwogCi0gICAgcmVqZWN0UHJvbWlzZVdpdGhFeGNlcHRpb25JZkFueShs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsICpwcm9taXNlKTsKKyAgICByZWplY3RQ
cm9taXNlV2l0aEV4Y2VwdGlvbklmQW55KGxleGljYWxHbG9iYWxPYmplY3QsIGdsb2JhbE9iamVj
dCwgKnByb21pc2UsIGNhdGNoU2NvcGUpOwogICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBoYXZlIGVy
cm9yIHNpbmNlIGFueSBKUyBjYWxsIGNhbiB0aHJvdyBzdGFjay1vdmVyZmxvdyBlcnJvcnMuCiAg
ICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzQwMgotICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTQzo6anNVbmRlZmluZWQoKSk7CisgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihjYXRjaFNjb3BlLCBKU0M6OmpzVW5kZWZpbmVkKCkpOwogICAgIHJl
dHVybiBwcm9taXNlOwogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjQ3NDEpCisrKyBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0wNy0y
MiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IG1pc3Npbmcg
ZXhjZXB0aW9uIGNoZWNrcyBiZWxvdyBSVENQZWVyQ29ubmVjdGlvbi5nZW5lcmF0ZUNlcnRpZmlj
YXRlKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTQ2NjgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY1OTI5OTc1PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2VicnRjL21pc3NpbmctZXhjZXB0
aW9uLWNoZWNrcy1SVENQZWVyQ29ubmVjdGlvbi1nZW5lcmF0ZUNlcnRpZmljYXRlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogd2VicnRjL21pc3NpbmctZXhjZXB0aW9uLWNoZWNrcy1S
VENQZWVyQ29ubmVjdGlvbi1nZW5lcmF0ZUNlcnRpZmljYXRlLmh0bWw6IEFkZGVkLgorCiAyMDIw
LTA3LTIyICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmcsIHJlbW92ZSBvbGQgdGVzdCBleHBlY3RhdGlvbiAgZGly
ZWN0b3JpZXMgZm9yIGlPUyAxMiBzaW5jZSB0aGV5IGFyZSB1bnVzZWQuCkluZGV4OiBMYXlvdXRU
ZXN0cy93ZWJydGMvbWlzc2luZy1leGNlcHRpb24tY2hlY2tzLVJUQ1BlZXJDb25uZWN0aW9uLWdl
bmVyYXRlQ2VydGlmaWNhdGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3dlYnJ0Yy9taXNzaW5nLWV4Y2VwdGlvbi1jaGVja3MtUlRDUGVlckNvbm5lY3Rpb24tZ2VuZXJh
dGVDZXJ0aWZpY2F0ZS1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMv
d2VicnRjL21pc3NpbmctZXhjZXB0aW9uLWNoZWNrcy1SVENQZWVyQ29ubmVjdGlvbi1nZW5lcmF0
ZUNlcnRpZmljYXRlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQgQEAK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4
OiBMYXlvdXRUZXN0cy93ZWJydGMvbWlzc2luZy1leGNlcHRpb24tY2hlY2tzLVJUQ1BlZXJDb25u
ZWN0aW9uLWdlbmVyYXRlQ2VydGlmaWNhdGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy93ZWJydGMvbWlzc2luZy1leGNlcHRpb24tY2hlY2tzLVJUQ1BlZXJDb25uZWN0aW9uLWdlbmVy
YXRlQ2VydGlmaWNhdGUuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy93ZWJydGMv
bWlzc2luZy1leGNlcHRpb24tY2hlY2tzLVJUQ1BlZXJDb25uZWN0aW9uLWdlbmVyYXRlQ2VydGlm
aWNhdGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgaHRt
bD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGpzY09wdGlvbnM9LS12YWxpZGF0ZUV4Y2VwdGlv
bkNoZWNrcz10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CisgICAgUlRDUGVlckNvbm5lY3Rpb24uZ2VuZXJhdGVDZXJ0aWZpY2F0ZSh7fSkuY2F0Y2goKCkg
PT4geyB9KTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>