<?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>202865</bug_id>
          
          <creation_ts>2019-10-11 14:01:37 -0700</creation_ts>
          <short_desc>Clearing Website data for a given session should not shut down cached processes for other sessions</short_desc>
          <delta_ts>2019-10-12 09:18:01 -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>WebKit2</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>
          <dependson>202660</dependson>
          <blocked>202293</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1579236</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-11 14:01:37 -0700</bug_when>
    <thetext>Clearing Website data for a given session should do shut down cached processes (e.g. suspended processes for the back/forward cache) for other sessions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579238</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-11 14:02:32 -0700</bug_when>
    <thetext>&lt;rdar://problem/56202912&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579277</commentid>
    <comment_count>2</comment_count>
      <attachid>380794</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-11 15:28:41 -0700</bug_when>
    <thetext>Created attachment 380794
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579280</commentid>
    <comment_count>3</comment_count>
      <attachid>380795</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-11 15:32:59 -0700</bug_when>
    <thetext>Created attachment 380795
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579386</commentid>
    <comment_count>4</comment_count>
      <attachid>380795</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-10-11 22:09:40 -0700</bug_when>
    <thetext>Comment on attachment 380795
Patch

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

&gt; Source/WebKit/UIProcess/WebProcessProxy.h:274
&gt; +    class ScopePreventingShutdown {

It would be nice to have some sort of WTF template for this. The pattern shows up occasionally.

&gt; Source/WebKit/UIProcess/WebProcessProxy.h:284
&gt; +        ~ScopePreventingShutdown()
&gt; +        {
&gt; +            if (m_process) {

m_process can&apos;t be null here.

&gt; Source/WebKit/UIProcess/WebProcessProxy.h:292
&gt; +        RefPtr&lt;WebProcessProxy&gt; m_process;

Ref&lt;&gt;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579427</commentid>
    <comment_count>5</comment_count>
      <attachid>380827</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-12 08:33:14 -0700</bug_when>
    <thetext>Created attachment 380827
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579428</commentid>
    <comment_count>6</comment_count>
      <attachid>380827</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-12 09:17:59 -0700</bug_when>
    <thetext>Comment on attachment 380827
Patch

Clearing flags on attachment: 380827

Committed r251048: &lt;https://trac.webkit.org/changeset/251048&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579429</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-12 09:18:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380794</attachid>
            <date>2019-10-11 15:28:41 -0700</date>
            <delta_ts>2019-10-11 15:32:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202865-20191011152840.patch</filename>
            <type>text/plain</type>
            <size>21126</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM0YzViMWFmMzJjOWM4Mzgx
NzUxYjI0ZWRiNWQwNWJhZjkzMTFmZGUuLmVkNmEzMzA0MmNlYzY4YWExYjIyN2EzMTI1MjkwYWUy
OTAzNzdlYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMTktMTAtMTEgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDbGVhcmluZyBXZWJzaXRlIGRhdGEg
Zm9yIGEgZ2l2ZW4gc2Vzc2lvbiBzaG91bGQgZG8gc2h1dCBkb3duIGNhY2hlZCBwcm9jZXNzZXMg
Zm9yIG90aGVyIHNlc3Npb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDI4NjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2MjAyOTEyPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gY2xlYXJp
bmcgV2Vic2l0ZSBkYXRhIGZvciBhIGdpdmVuIGRhdGEgc3RvcmUsIHdlIG5vdyBvbmx5IGNsZWFy
IGNhY2hlZCBwcm9jZXNzZXMKKyAgICAgICAgKGVpdGhlciBpZiBCYWNrRm9yd2FyZENhY2hlIG9y
IFdlYlByb2Nlc3NDYWNoZSkgaWYgdGhleSBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoaXMKKyAgICAg
ICAgcGFydGljdWxhciBkYXRhIHN0b3JlLiBJdCBpcyB2ZXJ5IHdhc3RlZnVsIG90aGVyd2lzZS4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5Ojp+UHJvdmlzaW9uYWxQYWdlUHJveHkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpTdXNwZW5kZWRQYWdlUHJveHk6On5TdXNwZW5kZWRQYWdlUHJveHkpOgorICAgICAgICBQ
cm92aXNpb25hbFBhZ2VQcm94eSAmIFN1c3BlbmRlZFBhZ2VQcm94eSdzIGRlc3RydWN0b3JzIG5v
IGxvbmdlciBjYWxsCisgICAgICAgIFdlYlByb2Nlc3NQcm94eTo6bWF5YmVTaHV0ZG93bigpIGFz
eW5jaHJvbm91c2x5LiBXZSBub3cgY2FsbCBtYXliZVNodXRkb3duKCkKKyAgICAgICAgc3luY2hy
b25vdXNseSBpbiBXZWJQcm9jZXNzUHJveHk6OmRlY3JlbWVudFN1c3BlbmRlZFBhZ2VDb3VudCgp
IGFuZAorICAgICAgICBXZWJQcm9jZXNzUHJveHk6OnJlbW92ZVByb3Zpc2lvbmFsUGFnZVByb3h5
KCkgaW5zdGVhZC4gVGhpcyBtYWtlcyB0aGluZ3MgYQorICAgICAgICBsb3QgbW9yZSBwcmVkaWN0
YWJsZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZENhY2hlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViQmFja0ZvcndhcmRDYWNoZTo6cmVtb3ZlRW50cmllc0ZvclNlc3Np
b24pOgorICAgICAgICBBZGQgbmV3IHJlbW92ZUVudHJpZXNGb3JTZXNzaW9uKCkgbWV0aG9kIHRv
IGNsZWFyIG9ubHkgYmFjayAvIGZvcndhcmQgY2FjaGUKKyAgICAgICAgZW50cmllcyBhc3NvY2lh
dGVkIHdpdGggYSBwYXJ0aWN1bGFyIHNlc3Npb24uCisKKyAgICAgICAgKFdlYktpdDo6V2ViQmFj
a0ZvcndhcmRDYWNoZTo6Y2xlYXIpOgorICAgICAgICBTdG9wIHRha2luZyBhIHBhcmFtZXRlciBp
bmRpY2F0aW5nIGlmIHdlIGFsbG93IHRoZSBwcm9jZXNzZXMgdG8gZW50ZXIgdGhlCisgICAgICAg
IHByb2Nlc3MgY2FjaGUuIE5vdyB0aGF0IHdlIGNhbGwgbWF5YmVTaHV0ZG93bigpIHN5bmNocm9u
b3VzbHkgd2hlbiBkZXN0cm95aW5nCisgICAgICAgIGEgU3VzcGVuZGVkUGFnZVByb3h5LCB3ZSBj
YW4gc2ltcGx5IGFsbG93IHRoZSBwcm9jZXNzZXMgdG8gZW50ZXIgdGhlIHByb2Nlc3MKKyAgICAg
ICAgY2FjaGUgdW5jb25kaXRpb25hbGx5LiBJZiB0aGUgY2FsbGVyIGRvZXMgbm90IHdhbnQgdGhp
cyBwcm9jZXNzZXMgaW4gdGhlIHBhZ2UKKyAgICAgICAgY2FjaGUsIHRoZXkgY2FuIGNsZWFyIHRo
ZSBwcm9jZXNzIGNhY2hlIGFmdGVyd2FyZHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQmFj
a0ZvcndhcmRDYWNoZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURl
Y2lzaW9uKToKKyAgICAgICAgTm93IHRoYXQgZGVzdHJveWluZyBhIFN1c3BlbmRlZFBhZ2VQcm94
eSBvciBhIFByb3Zpc2lvbmFsUGFnZVByb3h5IG1heSBzaHV0ZG93bgorICAgICAgICB0aGVpciBw
cm9jZXNzIHN5bmNocm9ub3VzbHksIGFkZCBhIHNjb3BlIGhlcmUgdG8gcHJldmVudCBzaHV0ZG93
biBvZiB0aGUgcHJvY2VzcworICAgICAgICBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoaXMgc2NvcGUs
IHNpbmNlIHdlJ3JlIGFib3V0IHRvIHVzZSBpdCBmb3IgYSBuYXZpZ2F0aW9uIGFuZAorICAgICAg
ICB3ZSBkb24ndCB3YW50IGl0IHRvIGdldCBzaHV0ZG93biwgZXZlbiBpZiB0aGVyZSBpcyBubyBs
b25nZXIgYW55dGhpbmcgdXNpbmcgaXQuCisKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
Ojpjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MpOgorICAgICAgICBBZGQgbmV3IGFzc2Vy
dGlvbiBhbmQgcmVuYW1lIHBhcmFtZXRlciBmb3IgY29uc2lzdGVuY3kuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UG9vbDo6aGFuZGxlTWVtb3J5UHJlc3N1cmVXYXJuaW5nKToKKworICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6
OmFkZFByb3Zpc2lvbmFsUGFnZVByb3h5KToKKyAgICAgICAgQWRkIG5ldyBhc3NlcnRpb24uCisK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpyZW1vdmVQcm92aXNpb25hbFBhZ2VQ
cm94eSk6CisgICAgICAgIENhbGwgbWF5YmVTaHV0RG93bigpIGlmIHRoaXMgd2FzIHRoZSBsYXN0
IHByb3Zpc2lvbmFsIHBhZ2UuCisKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpt
YXliZVNodXREb3duKToKKyAgICAgICAgRHJvcCBwYXJhbWV0ZXIgaW5kaWNhdGluZyBpZiB3ZSB3
YW50IHRvIGFsbG93IHRoZSBwcm9jZXNzIHRvIGVudGVyIHRoZSBwcm9jZXNzCisgICAgICAgIGNh
Y2hlIGFuZCBhbGxvdyBjYWNoaW5nIHVuY29uZGl0aW9uYWxseS4KKworICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUHJveHk6OmNhblRlcm1pbmF0ZUF1eGlsaWFyeVByb2Nlc3MpOgorICAgICAg
ICBQcmV2ZW50IHRlcm1pbmF0aW9uIGlmIHRoZXJlIGlzIGEgU2NvcGVQcmV2ZW50aW5nU2h1dGRv
d24uCisKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkZWNyZW1lbnRTdXNwZW5k
ZWRQYWdlQ291bnQpOgorICAgICAgICBDYWxsIG1heWJlU2h1dERvd24oKSBpZiB0aGlzIHdhcyB0
aGUgbGFzdCBzdXNwZW5kZWQgcGFnZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpTY29wZVByZXZlbnRp
bmdTaHV0ZG93bjo6U2NvcGVQcmV2ZW50aW5nU2h1dGRvd24pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUHJveHk6OlNjb3BlUHJldmVudGluZ1NodXRkb3duOjp+U2NvcGVQcmV2ZW50aW5n
U2h1dGRvd24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Om1ha2VTY29wZVBy
ZXZlbnRpbmdTaHV0ZG93bik6CisgICAgICAgIEFkZCBuZXcgZmFjaWxpdHkgdG8gcHJldmVudCBz
aHV0ZG93biBvZiBhIHByb2Nlc3MgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgc2NvcGUuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZURhdGEpOgorICAgICAgICBXaGVu
IHJlbW92aW5nIHdlYnNpdGUgZGF0YSwgb25seSBjbGVhciBjYWNoZWQgcHJvY2Vzc2VzIGlmIHRo
ZXkgYXJlIGFzc29jaWF0ZWQgd2l0aAorICAgICAgICB0aGUgY3VycmVudCBkYXRhIHN0b3JlLgor
CiAyMDE5LTEwLTExICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
TW92ZSBTdXNwZW5kZWRQYWdlIGxvZ2ljIGZyb20gV2ViUHJvY2Vzc1Bvb2wgdG8gbmV3IFdlYkJh
Y2tGb3J3YXJkQ2FjaGUgY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zp
c2lvbmFsUGFnZVByb3h5LmNwcAppbmRleCBhMmEwOWRjNDkyNWRmNDJlNTQ4NDQ1MGJlZjQ3OTc4
YzAzOTdmOWU1Li5lOThlYzBlYTQ4MDk0ODBiM2E3ZTQ3ODk2NTEzYzQ4MGM0OGNiNzc4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCkBA
IC04OCwyMSArODgsMTYgQEAgUHJvdmlzaW9uYWxQYWdlUHJveHk6OlByb3Zpc2lvbmFsUGFnZVBy
b3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgUmVmPFdlYlByb2Nlc3NQcm8KIAogUHJvdmlzaW9uYWxQ
YWdlUHJveHk6On5Qcm92aXNpb25hbFBhZ2VQcm94eSgpCiB7Ci0gICAgbV9wcm9jZXNzLT5yZW1v
dmVQcm92aXNpb25hbFBhZ2VQcm94eSgqdGhpcyk7Ci0KLSAgICBpZiAobV93YXNDb21taXR0ZWQp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIGlmICgmbV9wcm9jZXNzLT53ZWJzaXRlRGF0YVN0b3Jl
KCkgIT0gJm1fcGFnZS53ZWJzaXRlRGF0YVN0b3JlKCkpCi0gICAgICAgIG1fcHJvY2Vzcy0+cHJv
Y2Vzc1Bvb2woKS5wYWdlRW5kVXNpbmdXZWJzaXRlRGF0YVN0b3JlKG1fcGFnZS5pZGVudGlmaWVy
KCksIG1fcHJvY2Vzcy0+d2Vic2l0ZURhdGFTdG9yZSgpKTsKKyAgICBpZiAoIW1fd2FzQ29tbWl0
dGVkKSB7CisgICAgICAgIGlmICgmbV9wcm9jZXNzLT53ZWJzaXRlRGF0YVN0b3JlKCkgIT0gJm1f
cGFnZS53ZWJzaXRlRGF0YVN0b3JlKCkpCisgICAgICAgICAgICBtX3Byb2Nlc3MtPnByb2Nlc3NQ
b29sKCkucGFnZUVuZFVzaW5nV2Vic2l0ZURhdGFTdG9yZShtX3BhZ2UuaWRlbnRpZmllcigpLCBt
X3Byb2Nlc3MtPndlYnNpdGVEYXRhU3RvcmUoKSk7CiAKLSAgICBtX3Byb2Nlc3MtPnJlbW92ZU1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViUGFnZVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksIG1fd2ViUGFnZUlEKTsKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkNsb3NlKCksIG1fd2ViUGFnZUlEKTsKLSAgICBtX3Byb2Nlc3MtPnJlbW92ZVZpc2l0ZWRMaW5r
U3RvcmVVc2VyKG1fcGFnZS52aXNpdGVkTGlua1N0b3JlKCksIG1fcGFnZS5pZGVudGlmaWVyKCkp
OworICAgICAgICBtX3Byb2Nlc3MtPnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fd2ViUGFnZUlEKTsKKyAgICAgICAg
bV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpDbG9zZSgpLCBtX3dlYlBhZ2VJRCk7
CisgICAgICAgIG1fcHJvY2Vzcy0+cmVtb3ZlVmlzaXRlZExpbmtTdG9yZVVzZXIobV9wYWdlLnZp
c2l0ZWRMaW5rU3RvcmUoKSwgbV9wYWdlLmlkZW50aWZpZXIoKSk7CisgICAgfQogCi0gICAgUnVu
TG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcm9jZXNzID0gbV9wcm9jZXNzLmNvcHlSZWYoKV0gewot
ICAgICAgICBwcm9jZXNzLT5tYXliZVNodXREb3duKCk7Ci0gICAgfSk7CisgICAgbV9wcm9jZXNz
LT5yZW1vdmVQcm92aXNpb25hbFBhZ2VQcm94eSgqdGhpcyk7CiB9CiAKIHZvaWQgUHJvdmlzaW9u
YWxQYWdlUHJveHk6OnByb2Nlc3NEaWRUZXJtaW5hdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAKaW5kZXggNWM1Yjg2ZTJmOThjZGZhMzJkODI4
NjBmMGVkNTcxOTczYTRjM2M0ZC4uODM1OGQyZjkwYjFhZTQwNGExZjRjMDBiMmJkZDhjM2MxMjhi
ZTkzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHku
Y3BwCkBAIC0xMTYsNyArMTE2LDYgQEAgU3VzcGVuZGVkUGFnZVByb3h5OjpTdXNwZW5kZWRQYWdl
UHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYKIAogU3VzcGVu
ZGVkUGFnZVByb3h5Ojp+U3VzcGVuZGVkUGFnZVByb3h5KCkKIHsKLSAgICBtX3Byb2Nlc3MtPmRl
Y3JlbWVudFN1c3BlbmRlZFBhZ2VDb3VudCgpOwogICAgIGFsbFN1c3BlbmRlZFBhZ2VzKCkucmVt
b3ZlKHRoaXMpOwogCiAgICAgaWYgKG1fcmVhZHlUb1Vuc3VzcGVuZEhhbmRsZXIpIHsKQEAgLTEy
NSwyMSArMTI0LDE2IEBAIFN1c3BlbmRlZFBhZ2VQcm94eTo6flN1c3BlbmRlZFBhZ2VQcm94eSgp
CiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIGlmIChtX3N1c3BlbnNpb25TdGF0ZSA9PSBTdXNw
ZW5zaW9uU3RhdGU6OlJlc3VtZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIElmIHRoZSBz
dXNwZW5kZWQgcGFnZSB3YXMgbm90IGNvbnN1bWVkIGJlZm9yZSBnZXR0aW5nIGRlc3Ryb3llZCwg
dGhlbiBjbG9zZSB0aGUgY29ycmVzcG9uZGluZyBwYWdlCi0gICAgLy8gb24gdGhlIFdlYlByb2Nl
c3Mgc2lkZS4KLSAgICBjbG9zZSgpOworICAgIGlmIChtX3N1c3BlbnNpb25TdGF0ZSAhPSBTdXNw
ZW5zaW9uU3RhdGU6OlJlc3VtZWQpIHsKKyAgICAgICAgLy8gSWYgdGhlIHN1c3BlbmRlZCBwYWdl
IHdhcyBub3QgY29uc3VtZWQgYmVmb3JlIGdldHRpbmcgZGVzdHJveWVkLCB0aGVuIGNsb3NlIHRo
ZSBjb3JyZXNwb25kaW5nIHBhZ2UKKyAgICAgICAgLy8gb24gdGhlIFdlYlByb2Nlc3Mgc2lkZS4K
KyAgICAgICAgY2xvc2UoKTsKIAotICAgIGlmIChtX3N1c3BlbnNpb25TdGF0ZSA9PSBTdXNwZW5z
aW9uU3RhdGU6OlN1c3BlbmRpbmcpCi0gICAgICAgIG1fcHJvY2Vzcy0+cmVtb3ZlTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV93
ZWJQYWdlSUQpOworICAgICAgICBpZiAobV9zdXNwZW5zaW9uU3RhdGUgPT0gU3VzcGVuc2lvblN0
YXRlOjpTdXNwZW5kaW5nKQorICAgICAgICAgICAgbV9wcm9jZXNzLT5yZW1vdmVNZXNzYWdlUmVj
ZWl2ZXIoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dl
YlBhZ2VJRCk7CisgICAgfQogCi0gICAgLy8gV2UgY2FsbCBtYXliZVNodXREb3duKCkgYXN5bmNo
cm9ub3VzbHkgc2luY2UgdGhlIFN1c3BlbmRlZFBhZ2UgaXMgY3VycmVudGx5IGJlaW5nIHJlbW92
ZWQgZnJvbSB0aGUgV2ViUHJvY2Vzc1Bvb2wKLSAgICAvLyBhbmQgd2Ugd2FudCB0byBhdm9pZCBy
ZS1lbnRlcmluZyBXZWJQcm9jZXNzUG9vbCBtZXRob2RzLgotICAgIFJ1bkxvb3A6Om1haW4oKS5k
aXNwYXRjaChbcHJvY2VzcyA9IG1fcHJvY2Vzcy5jb3B5UmVmKCldIHsKLSAgICAgICAgcHJvY2Vz
cy0+bWF5YmVTaHV0RG93bigpOwotICAgIH0pOworICAgIG1fcHJvY2Vzcy0+ZGVjcmVtZW50U3Vz
cGVuZGVkUGFnZUNvdW50KCk7CiB9CiAKIHZvaWQgU3VzcGVuZGVkUGFnZVByb3h5OjpzZXRCYWNr
Rm9yd2FyZExpc3RJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZENhY2hlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkQ2FjaGUuY3BwCmluZGV4IDVkZTE4NmU2
OTczMGVhOTgzYWUwYzE4MDA2ZWRmNmI3OGYzNTdhNTIuLjQ2NDg3NjRjZmUyNDBjZjdhMGM3Nzhl
YWIzZjllYTQxM2VlN2M1YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkJhY2tGb3J3YXJkQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkJh
Y2tGb3J3YXJkQ2FjaGUuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiV2ViQmFja0Zv
cndhcmRMaXN0SXRlbS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldl
YlByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIKIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKQEAgLTgzLDYgKzg0LDEzIEBAIHZvaWQgV2ViQmFja0ZvcndhcmRDYWNo
ZTo6cmVtb3ZlRW50cmllc0ZvclByb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzKQogICAg
IH0pOwogfQogCit2b2lkIFdlYkJhY2tGb3J3YXJkQ2FjaGU6OnJlbW92ZUVudHJpZXNGb3JTZXNz
aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKK3sKKyAgICByZW1vdmVFbnRyaWVzTWF0Y2hp
bmcoW3Nlc3Npb25JRF0oYXV0byYgaXRlbSkgeworICAgICAgICByZXR1cm4gaXRlbS5zdXNwZW5k
ZWRQYWdlKCktPnByb2Nlc3MoKS53ZWJzaXRlRGF0YVN0b3JlKCkuc2Vzc2lvbklEKCkgPT0gc2Vz
c2lvbklEOworICAgIH0pOworfQorCiB2b2lkIFdlYkJhY2tGb3J3YXJkQ2FjaGU6OnJlbW92ZUVu
dHJpZXNGb3JQYWdlKFdlYlBhZ2VQcm94eSYgcGFnZSkKIHsKICAgICByZW1vdmVFbnRyaWVzTWF0
Y2hpbmcoW3BhZ2VJRCA9IHBhZ2UuaWRlbnRpZmllcigpXShhdXRvJiBpdGVtKSB7CkBAIC0xMDIs
MTQgKzExMCwxMSBAQCB2b2lkIFdlYkJhY2tGb3J3YXJkQ2FjaGU6OnJlbW92ZUVudHJpZXNNYXRj
aGluZyhjb25zdCBGdW5jdGlvbjxib29sKFdlYkJhY2tGb3J3YQogICAgIH0KIH0KIAotdm9pZCBX
ZWJCYWNrRm9yd2FyZENhY2hlOjpjbGVhcihBbGxvd1Byb2Nlc3NDYWNoaW5nIGFsbG93UHJvY2Vz
c0NhY2hpbmcpCit2b2lkIFdlYkJhY2tGb3J3YXJkQ2FjaGU6OmNsZWFyKCkKIHsKICAgICBhdXRv
IGl0ZW1zV2l0aENhY2hlZFBhZ2UgPSBXVEZNb3ZlKG1faXRlbXNXaXRoQ2FjaGVkUGFnZSk7Ci0g
ICAgZm9yIChhdXRvKiBpdGVtIDogaXRlbXNXaXRoQ2FjaGVkUGFnZSkgewotICAgICAgICBhdXRv
IHByb2Nlc3MgPSBtYWtlUmVmKGl0ZW0tPnN1c3BlbmRlZFBhZ2UoKS0+cHJvY2VzcygpKTsKKyAg
ICBmb3IgKGF1dG8qIGl0ZW0gOiBpdGVtc1dpdGhDYWNoZWRQYWdlKQogICAgICAgICBpdGVtLT5z
ZXRTdXNwZW5kZWRQYWdlKG51bGxwdHIpOwotICAgICAgICBwcm9jZXNzLT5tYXliZVNodXREb3du
KGFsbG93UHJvY2Vzc0NhY2hpbmcpOwotICAgIH0KIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRDYWNo
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRDYWNoZS5oCmluZGV4
IDZlMDJhYjE3NzJmY2QyODQ1NzFlY2UyNjlkOTAwOTI3MjFmY2ZkZDEuLjRkZjE5YWQ0YWU3Mjcw
OGJmMDAxZTUzZmRmMjcxNmQ0M2FmYjgxZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkJhY2tGb3J3YXJkQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJCYWNrRm9yd2FyZENhY2hlLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNl
CiAKKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
ICNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KIApAQCAtMzQsNyArMzUsNiBAQCBjbGFzcyBT
dXNwZW5kZWRQYWdlUHJveHk7CiBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3RJdGVtOwogY2xhc3Mg
V2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OwotZW51bSBjbGFzcyBBbGxvd1By
b2Nlc3NDYWNoaW5nOwogCiBjbGFzcyBXZWJCYWNrRm9yd2FyZENhY2hlIHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKQEAgLTQ2LDkgKzQ2LDEwIEBAIHB1YmxpYzoKICAgICB1bnNpZ25l
ZCBjYXBhY2l0eSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FwYWNpdHk7IH0KICAgICB1bnNpZ25lZCBz
aXplKCkgY29uc3QgeyByZXR1cm4gbV9pdGVtc1dpdGhDYWNoZWRQYWdlLnNpemUoKTsgfQogCi0g
ICAgdm9pZCBjbGVhcihBbGxvd1Byb2Nlc3NDYWNoaW5nKTsKKyAgICB2b2lkIGNsZWFyKCk7CiAg
ICAgdm9pZCByZW1vdmVFbnRyaWVzRm9yUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmKTsKICAgICB2
b2lkIHJlbW92ZUVudHJpZXNGb3JQYWdlKFdlYlBhZ2VQcm94eSYpOworICAgIHZvaWQgcmVtb3Zl
RW50cmllc0ZvclNlc3Npb24oUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgdm9pZCBhZGRFbnRyeShX
ZWJCYWNrRm9yd2FyZExpc3RJdGVtJiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94
eT4mJik7CiAgICAgdm9pZCByZW1vdmVFbnRyeShXZWJCYWNrRm9yd2FyZExpc3RJdGVtJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBlMjUxYjM2ZjdjM2Qw
ZTVjMjUyNTk5OWViNDU4ZTRkZTdkOGY3NTRkLi4wMTg3NmM2MDFmMGEyODZiNGVmOTY0ZWU1YmJk
ZjIyM2M4ZWU5Y2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
QEAgLTI5NTQsNiArMjk1NCw5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWNlaXZlZE5hdmlnYXRp
b25Qb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCBBCiAgICAgICAgICAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb246IGtlZXAgdXNpbmcgcHJvY2VzcyAlaSBmb3IgbmF2aWdhdGlvbiwg
cmVhc29uOiAle3B1YmxpY31zIiwgcHJvY2Vzc0lkZW50aWZpZXIoKSwgcmVhc29uLnV0ZjgoKS5k
YXRhKCkpOwogCiAgICAgICAgIGlmIChzaG91bGRQcm9jZXNzU3dhcCkgeworICAgICAgICAgICAg
Ly8gTWFrZSBzdXJlIHRoZSBwcm9jZXNzIHRvIGJlIHVzZWQgZm9yIHRoZSBuYXZpZ2F0aW9uIGRv
ZXMgbm90IGdldCBzaHV0RG93biBub3cgZHVlIHRvIGRlc3Ryb3lpbmcgU3VzcGVuZGVkUGFnZVBy
b3h5IG9yIFByb3Zpc2lvbmFsUGFnZVByb3h5IG9iamVjdHMuCisgICAgICAgICAgICBhdXRvIHBy
ZXZlbnROYXZpZ2F0aW9uUHJvY2Vzc1NodXRkb3duID0gcHJvY2Vzc0Zvck5hdmlnYXRpb24tPm1h
a2VTY29wZVByZXZlbnRpbmdTaHV0ZG93bigpOworCiAgICAgICAgICAgICBhdXRvIHN1c3BlbmRl
ZFBhZ2UgPSBkZXN0aW5hdGlvblN1c3BlbmRlZFBhZ2UgPyBiYWNrRm9yd2FyZENhY2hlKCkudGFr
ZUVudHJ5KCpkZXN0aW5hdGlvblN1c3BlbmRlZFBhZ2UtPmJhY2tGb3J3YXJkTGlzdEl0ZW0oKSkg
OiBudWxscHRyOwogICAgICAgICAgICAgaWYgKHN1c3BlbmRlZFBhZ2UgJiYgc3VzcGVuZGVkUGFn
ZS0+cGFnZUlzQ2xvc2VkT3JDbG9zaW5nKCkpCiAgICAgICAgICAgICAgICAgc3VzcGVuZGVkUGFn
ZSA9IG51bGxwdHI7CkBAIC0zMDM1LDEwICszMDM4LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpj
b21taXRQcm92aXNpb25hbFBhZ2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5h
dmlnCiAgICAgbV9wcm92aXNpb25hbFBhZ2UgPSBudWxscHRyOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKEFQSTo6TmF2aWdhdGlvbiYgbmF2
aWdhdGlvbiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4mJiBzdXNwZW5kZWRQ
YWdlUHJveHksIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgbmV3UHJvY2VzcywgUHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBPcHRpb25hbDxX
ZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcykKK3ZvaWQgV2ViUGFnZVByb3h5
Ojpjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0
aW9uLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5PiYmIHN1c3BlbmRlZFBhZ2Us
IFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgbmV3UHJvY2VzcywgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRC
eUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBPcHRpb25hbDxXZWJzaXRlUG9s
aWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcykKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKExvYWRpbmcsICJjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3M6IG5ld1Byb2Nlc3NQ
SUQgPSAlaSwgaGFzU3VzcGVuZGVkUGFnZSA9ICVpIiwgbmV3UHJvY2Vzcy0+cHJvY2Vzc0lkZW50
aWZpZXIoKSwgISFzdXNwZW5kZWRQYWdlUHJveHkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoTG9hZGluZywgImNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzczogbmV3UHJvY2Vzc1BJ
RCA9ICVpLCBoYXNTdXNwZW5kZWRQYWdlID0gJWkiLCBuZXdQcm9jZXNzLT5wcm9jZXNzSWRlbnRp
ZmllcigpLCAhIXN1c3BlbmRlZFBhZ2UpOwogICAgIExPRyhMb2FkaW5nLCAiQ29udGludWluZyBu
YXZpZ2F0aW9uICUiIFBSSXU2NCAiICclcycgaW4gYSBuZXcgd2ViIHByb2Nlc3MiLCBuYXZpZ2F0
aW9uLm5hdmlnYXRpb25JRCgpLCBuYXZpZ2F0aW9uLmxvZ2dpbmdTdHJpbmcoKSk7CisgICAgUkVM
RUFTRV9BU1NFUlQoIW5ld1Byb2Nlc3MtPmlzSW5Qcm9jZXNzQ2FjaGUoKSk7CiAKICAgICBpZiAo
bV9wcm92aXNpb25hbFBhZ2UpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9j
ZXNzU3dhcHBpbmcsICJjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3M6IFRoZXJlIGlzIGFs
cmVhZHkgYSBwZW5kaW5nIHByb3Zpc2lvbmFsIGxvYWQsIGNhbmNlbGxpbmcgaXQgKHByb3Zpc29u
YWxOYXZpZ2F0aW9uSUQ6ICVsbHUsIG5hdmlnYXRpb25JRDogJWxsdSkiLCBtX3Byb3Zpc2lvbmFs
UGFnZS0+bmF2aWdhdGlvbklEKCksIG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCkpOwpAQCAtMzA0
Nyw3ICszMDUxLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRpbnVlTmF2aWdhdGlvbkluTmV3
UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIHMKICAgICAgICAgbV9wcm92aXNp
b25hbFBhZ2UgPSBudWxscHRyOwogICAgIH0KIAotICAgIG1fcHJvdmlzaW9uYWxQYWdlID0gbWFr
ZVVuaXF1ZTxQcm92aXNpb25hbFBhZ2VQcm94eT4oKnRoaXMsIG5ld1Byb2Nlc3MuY29weVJlZigp
LCBXVEZNb3ZlKHN1c3BlbmRlZFBhZ2VQcm94eSksIG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCks
IG5hdmlnYXRpb24uY3VycmVudFJlcXVlc3RJc1JlZGlyZWN0KCksIG5hdmlnYXRpb24uY3VycmVu
dFJlcXVlc3QoKSwgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCk7CisgICAgbV9wcm92aXNp
b25hbFBhZ2UgPSBtYWtlVW5pcXVlPFByb3Zpc2lvbmFsUGFnZVByb3h5PigqdGhpcywgbmV3UHJv
Y2Vzcy5jb3B5UmVmKCksIFdURk1vdmUoc3VzcGVuZGVkUGFnZSksIG5hdmlnYXRpb24ubmF2aWdh
dGlvbklEKCksIG5hdmlnYXRpb24uY3VycmVudFJlcXVlc3RJc1JlZGlyZWN0KCksIG5hdmlnYXRp
b24uY3VycmVudFJlcXVlc3QoKSwgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCk7CiAKICAg
ICBpZiAoYXV0byogaXRlbSA9IG5hdmlnYXRpb24udGFyZ2V0SXRlbSgpKSB7CiAgICAgICAgIExP
RyhMb2FkaW5nLCAiV2ViUGFnZVByb3h5ICVwIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2Vz
cyB0byBiYWNrIGl0ZW0gVVJMICVzIiwgdGhpcywgaXRlbS0+dXJsKCkudXRmOCgpLmRhdGEoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggMzA1NTdh
NjczOThkZjMzYzExYzQ0MzEzODY3MDU0NzI1NTBiOTllNy4uNTJmNTQ0MmY4NjgwZDFiZTUzYzdi
ZWQ3OGYxNDBiNTJmOTM4NGQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcApAQCAtMTM4Nyw4ICsxMzg3LDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6aGFu
ZGxlTWVtb3J5UHJlc3N1cmVXYXJuaW5nKENyaXRpY2FsKQogewogICAgIFJFTEVBU0VfTE9HKFBl
cmZvcm1hbmNlTG9nZ2luZywgIiVwIC0gV2ViUHJvY2Vzc1Bvb2w6OmhhbmRsZU1lbW9yeVByZXNz
dXJlV2FybmluZyIsIHRoaXMpOwogCi0KLSAgICBtX2JhY2tGb3J3YXJkQ2FjaGUtPmNsZWFyKEFs
bG93UHJvY2Vzc0NhY2hpbmc6Ok5vKTsKKyAgICAvLyBDbGVhciBiYWNrL2ZvcndhcmQgY2FjaGUg
Zmlyc3QgYXMgcHJvY2Vzc2VzIHJlbW92ZWQgZnJvbSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlIHdp
bGwgbGlrZWx5CisgICAgLy8gYmUgYWRkZWQgdG8gdGhlIFdlYlByb2Nlc3MgY2FjaGUuCisgICAg
bV9iYWNrRm9yd2FyZENhY2hlLT5jbGVhcigpOwogICAgIG1fd2ViUHJvY2Vzc0NhY2hlLT5jbGVh
cigpOwogCiAgICAgaWYgKG1fcHJld2FybWVkUHJvY2VzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDc0OTUyNWE4OWIzZDQxNTBlZjBjZDI0ODk1
ZTc1MDUzMTQ0OTk5ZGYuLjk5NjBhY2YwOGQzYTk3NmM5NDg0NTc3ZWQ2NjViYjFiODY5MTY2MzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMjQ4
LDYgKzI0OCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojp1cGRhdGVSZWdpc3RyYXRpb25XaXRo
RGF0YVN0b3JlKCkKIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmFkZFByb3Zpc2lvbmFsUGFnZVBy
b3h5KFByb3Zpc2lvbmFsUGFnZVByb3h5JiBwcm92aXNpb25hbFBhZ2UpCiB7CisgICAgQVNTRVJU
KCFtX2lzSW5Qcm9jZXNzQ2FjaGUpOwogICAgIEFTU0VSVCghbV9wcm92aXNpb25hbFBhZ2VzLmNv
bnRhaW5zKCZwcm92aXNpb25hbFBhZ2UpKTsKICAgICBtX3Byb3Zpc2lvbmFsUGFnZXMuYWRkKCZw
cm92aXNpb25hbFBhZ2UpOwogICAgIHVwZGF0ZVJlZ2lzdHJhdGlvbldpdGhEYXRhU3RvcmUoKTsK
QEAgLTI1OCw2ICsyNTksOCBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6cmVtb3ZlUHJvdmlzaW9u
YWxQYWdlUHJveHkoUHJvdmlzaW9uYWxQYWdlUHJveHkmIHByb3Zpc2lvbgogICAgIEFTU0VSVCht
X3Byb3Zpc2lvbmFsUGFnZXMuY29udGFpbnMoJnByb3Zpc2lvbmFsUGFnZSkpOwogICAgIG1fcHJv
dmlzaW9uYWxQYWdlcy5yZW1vdmUoJnByb3Zpc2lvbmFsUGFnZSk7CiAgICAgdXBkYXRlUmVnaXN0
cmF0aW9uV2l0aERhdGFTdG9yZSgpOworICAgIGlmIChtX3Byb3Zpc2lvbmFsUGFnZXMuaXNFbXB0
eSgpKQorICAgICAgICBtYXliZVNodXREb3duKCk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5
OjpnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNo
T3B0aW9ucykKQEAgLTkzNyw3ICs5NDAsNyBAQCBib29sIFdlYlByb2Nlc3NQcm94eTo6Y2FuQmVB
ZGRlZFRvV2ViUHJvY2Vzc0NhY2hlKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9p
ZCBXZWJQcm9jZXNzUHJveHk6Om1heWJlU2h1dERvd24oQWxsb3dQcm9jZXNzQ2FjaGluZyBhbGxv
d1Byb2Nlc3NDYWNoaW5nKQordm9pZCBXZWJQcm9jZXNzUHJveHk6Om1heWJlU2h1dERvd24oKQog
ewogICAgIGlmIChwcm9jZXNzUG9vbCgpLmR1bW15UHJvY2Vzc1Byb3h5KCkgPT0gdGhpcyAmJiBt
X3BhZ2VNYXAuaXNFbXB0eSgpKSB7CiAgICAgICAgIEFTU0VSVChzdGF0ZSgpID09IFN0YXRlOjpU
ZXJtaW5hdGVkKTsKQEAgLTk0OCw3ICs5NTEsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6bWF5
YmVTaHV0RG93bihBbGxvd1Byb2Nlc3NDYWNoaW5nIGFsbG93UHJvY2Vzc0NhY2hpbmcpCiAgICAg
aWYgKHN0YXRlKCkgPT0gU3RhdGU6OlRlcm1pbmF0ZWQgfHwgIWNhblRlcm1pbmF0ZUF1eGlsaWFy
eVByb2Nlc3MoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGFsbG93UHJvY2Vzc0NhY2hp
bmcgPT0gQWxsb3dQcm9jZXNzQ2FjaGluZzo6WWVzICYmIGNhbkJlQWRkZWRUb1dlYlByb2Nlc3ND
YWNoZSgpICYmIHByb2Nlc3NQb29sKCkud2ViUHJvY2Vzc0NhY2hlKCkuYWRkUHJvY2Vzc0lmUG9z
c2libGUoKnRoaXMpKQorICAgIGlmIChjYW5CZUFkZGVkVG9XZWJQcm9jZXNzQ2FjaGUoKSAmJiBw
cm9jZXNzUG9vbCgpLndlYlByb2Nlc3NDYWNoZSgpLmFkZFByb2Nlc3NJZlBvc3NpYmxlKCp0aGlz
KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgc2h1dERvd24oKTsKQEAgLTk1Niw3ICs5NTksNyBA
QCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6bWF5YmVTaHV0RG93bihBbGxvd1Byb2Nlc3NDYWNoaW5n
IGFsbG93UHJvY2Vzc0NhY2hpbmcpCiAKIGJvb2wgV2ViUHJvY2Vzc1Byb3h5OjpjYW5UZXJtaW5h
dGVBdXhpbGlhcnlQcm9jZXNzKCkKIHsKLSAgICBpZiAoIW1fcGFnZU1hcC5pc0VtcHR5KCkgfHwg
bV9zdXNwZW5kZWRQYWdlQ291bnQgfHwgIW1fcHJvdmlzaW9uYWxQYWdlcy5pc0VtcHR5KCkgfHwg
bV9pc0luUHJvY2Vzc0NhY2hlKQorICAgIGlmICghbV9wYWdlTWFwLmlzRW1wdHkoKSB8fCBtX3N1
c3BlbmRlZFBhZ2VDb3VudCB8fCAhbV9wcm92aXNpb25hbFBhZ2VzLmlzRW1wdHkoKSB8fCBtX2lz
SW5Qcm9jZXNzQ2FjaGUgfHwgbV9zaHV0ZG93blByZXZlbnRpbmdTY29wZUNvdW50KQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIW1fcHJvY2Vzc1Bvb2wtPnNob3VsZFRlcm1pbmF0
ZSh0aGlzKSkKQEAgLTE0ODMsOCArMTQ4NiwxMCBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGVj
cmVtZW50U3VzcGVuZGVkUGFnZUNvdW50KCkKIHsKICAgICBBU1NFUlQobV9zdXNwZW5kZWRQYWdl
Q291bnQpOwogICAgIC0tbV9zdXNwZW5kZWRQYWdlQ291bnQ7Ci0gICAgaWYgKCFtX3N1c3BlbmRl
ZFBhZ2VDb3VudCkKKyAgICBpZiAoIW1fc3VzcGVuZGVkUGFnZUNvdW50KSB7CiAgICAgICAgIHNl
bmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldEhhc1N1c3BlbmRlZFBhZ2VQcm94eShmYWxzZSks
IDApOworICAgICAgICBtYXliZVNodXREb3duKCk7CisgICAgfQogfQogCiBXZWJQcm9jZXNzUG9v
bCogV2ViUHJvY2Vzc1Byb3h5Ojpwcm9jZXNzUG9vbElmRXhpc3RzKCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggNWIwNTIxODk0YjIxOThlYmNl
ZGViYWU2M2Y2NzUzNTY1NjE0YjczMi4uYWI4ZjVmYWU5MjM1MzVhY2M0ODM3MmIzYTFhYzNmYjky
MzJiMDdiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAg
LTk0LDggKzk0LDYgQEAgdHlwZWRlZiBSZWZDb3VudGVyPEJhY2tncm91bmRXZWJQcm9jZXNzQ291
bnRlclR5cGU+IEJhY2tncm91bmRXZWJQcm9jZXNzQ291bnRlcjsKIHR5cGVkZWYgQmFja2dyb3Vu
ZFdlYlByb2Nlc3NDb3VudGVyOjpUb2tlbiBCYWNrZ3JvdW5kV2ViUHJvY2Vzc1Rva2VuOwogI2Vu
ZGlmCiAKLWVudW0gY2xhc3MgQWxsb3dQcm9jZXNzQ2FjaGluZyB7IE5vLCBZZXMgfTsKLQogY2xh
c3MgV2ViUHJvY2Vzc1Byb3h5IDogcHVibGljIEF1eGlsaWFyeVByb2Nlc3NQcm94eSwgcHVibGlj
IFJlc3BvbnNpdmVuZXNzVGltZXI6OkNsaWVudCwgcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PFdlYlByb2Nlc3NQcm94eT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXZWJQcm9jZXNzUHJveHk+
LCBwcml2YXRlIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQgewogcHVibGljOgogICAgIHR5cGVkZWYg
SGFzaE1hcDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZlB0cjxXZWJGcmFtZVByb3h5Pj4g
V2ViRnJhbWVQcm94eU1hcDsKQEAgLTI3Miw3ICsyNzAsMjkgQEAgcHVibGljOgogICAgIC8vIENh
bGxlZCB3aGVuIHRoZSB3ZWIgcHJvY2VzcyBoYXMgY3Jhc2hlZCBvciB3ZSBrbm93IHRoYXQgaXQg
d2lsbCB0ZXJtaW5hdGUgc29vbi4KICAgICAvLyBXaWxsIHBvdGVudGlhbGx5IGNhdXNlIHRoZSBX
ZWJQcm9jZXNzUHJveHkgb2JqZWN0IHRvIGJlIGZyZWVkLgogICAgIHZvaWQgc2h1dERvd24oKTsK
LSAgICB2b2lkIG1heWJlU2h1dERvd24oQWxsb3dQcm9jZXNzQ2FjaGluZyA9IEFsbG93UHJvY2Vz
c0NhY2hpbmc6Olllcyk7CisKKyAgICBjbGFzcyBTY29wZVByZXZlbnRpbmdTaHV0ZG93biB7Cisg
ICAgcHVibGljOgorICAgICAgICBleHBsaWNpdCBTY29wZVByZXZlbnRpbmdTaHV0ZG93bihXZWJQ
cm9jZXNzUHJveHkmIHByb2Nlc3MpCisgICAgICAgICAgICA6IG1fcHJvY2VzcygmcHJvY2VzcykK
KyAgICAgICAgeworICAgICAgICAgICAgKysobV9wcm9jZXNzLT5tX3NodXRkb3duUHJldmVudGlu
Z1Njb3BlQ291bnQpOworICAgICAgICB9CisKKyAgICAgICAgflNjb3BlUHJldmVudGluZ1NodXRk
b3duKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG1fcHJvY2VzcykgeworICAgICAgICAg
ICAgICAgIEFTU0VSVChtX3Byb2Nlc3MtPm1fc2h1dGRvd25QcmV2ZW50aW5nU2NvcGVDb3VudCk7
CisgICAgICAgICAgICAgICAgaWYgKCEtLShtX3Byb2Nlc3MtPm1fc2h1dGRvd25QcmV2ZW50aW5n
U2NvcGVDb3VudCkpCisgICAgICAgICAgICAgICAgICAgIG1fcHJvY2Vzcy0+bWF5YmVTaHV0RG93
bigpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBS
ZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiBtX3Byb2Nlc3M7CisgICAgfTsKKworICAgIFNjb3BlUHJl
dmVudGluZ1NodXRkb3duIG1ha2VTY29wZVByZXZlbnRpbmdTaHV0ZG93bigpIHsgcmV0dXJuIFNj
b3BlUHJldmVudGluZ1NodXRkb3duIHsgKnRoaXMgfTsgfQogCiAgICAgdm9pZCBkaWRTdGFydFBy
b3Zpc2lvbmFsTG9hZEZvck1haW5GcmFtZShjb25zdCBVUkwmKTsKIApAQCAtNDA0LDYgKzQyNCw4
IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdm9pZCB1cGRhdGVSZWdpc3RyYXRpb25XaXRoRGF0YVN0
b3JlKCk7CiAKKyAgICB2b2lkIG1heWJlU2h1dERvd24oKTsKKwogICAgIGVudW0gY2xhc3MgSXNX
ZWFrIHsgTm8sIFllcyB9OwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYWtPclN0
cm9uZ1B0ciB7CiAgICAgcHVibGljOgpAQCAtNDgyLDYgKzUwNCw3IEBAIHByaXZhdGU6CiAjZW5k
aWYKIAogICAgIHVuc2lnbmVkIG1fc3VzcGVuZGVkUGFnZUNvdW50IHsgMCB9OworICAgIHVuc2ln
bmVkIG1fc2h1dGRvd25QcmV2ZW50aW5nU2NvcGVDb3VudCB7IDAgfTsKICAgICBib29sIG1faGFz
Q29tbWl0dGVkQW55UHJvdmlzaW9uYWxMb2FkcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzUHJl
d2FybWVkOwogICAgIGJvb2wgbV9oYXNBdWRpYmxlV2ViUGFnZSB7IGZhbHNlIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuY3BwCmluZGV4IDJhMjNiMmFjZWNhYTNkYmMzYzVhMmQzNDBhOGZmNzMzMmNjZWZiMjAuLjgz
NzUxZTkzNDVjZmE3YmZmM2E1YTc0NWVhODhmMjAwZjlmYjk4NzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3Bw
CkBAIC03MjYsOCArNzI2LDEwIEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YShP
cHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIFdhbGxUaW1lCiAgICAgYXV0byB3
ZWJQcm9jZXNzQWNjZXNzVHlwZSA9IGNvbXB1dGVXZWJQcm9jZXNzQWNjZXNzVHlwZUZvckRhdGFS
ZW1vdmFsKGRhdGFUeXBlcywgIWlzUGVyc2lzdGVudCgpKTsKICAgICBpZiAod2ViUHJvY2Vzc0Fj
Y2Vzc1R5cGUgIT0gUHJvY2Vzc0FjY2Vzc1R5cGU6Ok5vbmUpIHsKICAgICAgICAgZm9yIChhdXRv
JiBwcm9jZXNzUG9vbCA6IHByb2Nlc3NQb29scygpKSB7Ci0gICAgICAgICAgICBwcm9jZXNzUG9v
bC0+YmFja0ZvcndhcmRDYWNoZSgpLmNsZWFyKEFsbG93UHJvY2Vzc0NhY2hpbmc6Ok5vKTsKLSAg
ICAgICAgICAgIHByb2Nlc3NQb29sLT53ZWJQcm9jZXNzQ2FjaGUoKS5jbGVhcigpOworICAgICAg
ICAgICAgLy8gQ2xlYXIgYmFjay9mb3J3YXJkIGNhY2hlIGZpcnN0IGFzIHByb2Nlc3NlcyByZW1v
dmVkIGZyb20gdGhlIGJhY2svZm9yd2FyZCBjYWNoZSB3aWxsIGxpa2VseQorICAgICAgICAgICAg
Ly8gYmUgYWRkZWQgdG8gdGhlIFdlYlByb2Nlc3MgY2FjaGUuCisgICAgICAgICAgICBwcm9jZXNz
UG9vbC0+YmFja0ZvcndhcmRDYWNoZSgpLnJlbW92ZUVudHJpZXNGb3JTZXNzaW9uKHNlc3Npb25J
RCgpKTsKKyAgICAgICAgICAgIHByb2Nlc3NQb29sLT53ZWJQcm9jZXNzQ2FjaGUoKS5jbGVhckFs
bFByb2Nlc3Nlc0ZvclNlc3Npb24oc2Vzc2lvbklEKCkpOwogICAgICAgICB9CiAKICAgICAgICAg
Zm9yIChhdXRvJiBwcm9jZXNzIDogcHJvY2Vzc2VzKCkpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380795</attachid>
            <date>2019-10-11 15:32:59 -0700</date>
            <delta_ts>2019-10-12 08:33:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202865-20191011153258.patch</filename>
            <type>text/plain</type>
            <size>21127</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM0YzViMWFmMzJjOWM4Mzgx
NzUxYjI0ZWRiNWQwNWJhZjkzMTFmZGUuLmM1ZGU3YTUzYmM0N2NiM2RlMWM0YWQ2YzVjYmY5ZGE5
Y2UxMzRmODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMTktMTAtMTEgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDbGVhcmluZyBXZWJzaXRlIGRhdGEg
Zm9yIGEgZ2l2ZW4gc2Vzc2lvbiBzaG91bGQgbm90IHNodXQgZG93biBjYWNoZWQgcHJvY2Vzc2Vz
IGZvciBvdGhlciBzZXNzaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAyODY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NjIwMjkxMj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGNsZWFy
aW5nIFdlYnNpdGUgZGF0YSBmb3IgYSBnaXZlbiBkYXRhIHN0b3JlLCB3ZSBub3cgb25seSBjbGVh
ciBjYWNoZWQgcHJvY2Vzc2VzCisgICAgICAgIChlaXRoZXIgaWYgQmFja0ZvcndhcmRDYWNoZSBv
ciBXZWJQcm9jZXNzQ2FjaGUpIGlmIHRoZXkgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGlzCisgICAg
ICAgIHBhcnRpY3VsYXIgZGF0YSBzdG9yZS4gSXQgaXMgdmVyeSB3YXN0ZWZ1bCBvdGhlcndpc2Uu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6flByb3Zpc2lvbmFsUGFnZVByb3h5KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6U3VzcGVuZGVkUGFnZVByb3h5Ojp+U3VzcGVuZGVkUGFnZVByb3h5KToKKyAgICAgICAg
UHJvdmlzaW9uYWxQYWdlUHJveHkgJiBTdXNwZW5kZWRQYWdlUHJveHkncyBkZXN0cnVjdG9ycyBu
byBsb25nZXIgY2FsbAorICAgICAgICBXZWJQcm9jZXNzUHJveHk6Om1heWJlU2h1dGRvd24oKSBh
c3luY2hyb25vdXNseS4gV2Ugbm93IGNhbGwgbWF5YmVTaHV0ZG93bigpCisgICAgICAgIHN5bmNo
cm9ub3VzbHkgaW4gV2ViUHJvY2Vzc1Byb3h5OjpkZWNyZW1lbnRTdXNwZW5kZWRQYWdlQ291bnQo
KSBhbmQKKyAgICAgICAgV2ViUHJvY2Vzc1Byb3h5OjpyZW1vdmVQcm92aXNpb25hbFBhZ2VQcm94
eSgpIGluc3RlYWQuIFRoaXMgbWFrZXMgdGhpbmdzIGEKKyAgICAgICAgbG90IG1vcmUgcHJlZGlj
dGFibGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRDYWNoZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkJhY2tGb3J3YXJkQ2FjaGU6OnJlbW92ZUVudHJpZXNGb3JTZXNz
aW9uKToKKyAgICAgICAgQWRkIG5ldyByZW1vdmVFbnRyaWVzRm9yU2Vzc2lvbigpIG1ldGhvZCB0
byBjbGVhciBvbmx5IGJhY2sgLyBmb3J3YXJkIGNhY2hlCisgICAgICAgIGVudHJpZXMgYXNzb2Np
YXRlZCB3aXRoIGEgcGFydGljdWxhciBzZXNzaW9uLgorCisgICAgICAgIChXZWJLaXQ6OldlYkJh
Y2tGb3J3YXJkQ2FjaGU6OmNsZWFyKToKKyAgICAgICAgU3RvcCB0YWtpbmcgYSBwYXJhbWV0ZXIg
aW5kaWNhdGluZyBpZiB3ZSBhbGxvdyB0aGUgcHJvY2Vzc2VzIHRvIGVudGVyIHRoZQorICAgICAg
ICBwcm9jZXNzIGNhY2hlLiBOb3cgdGhhdCB3ZSBjYWxsIG1heWJlU2h1dGRvd24oKSBzeW5jaHJv
bm91c2x5IHdoZW4gZGVzdHJveWluZworICAgICAgICBhIFN1c3BlbmRlZFBhZ2VQcm94eSwgd2Ug
Y2FuIHNpbXBseSBhbGxvdyB0aGUgcHJvY2Vzc2VzIHRvIGVudGVyIHRoZSBwcm9jZXNzCisgICAg
ICAgIGNhY2hlIHVuY29uZGl0aW9uYWxseS4gSWYgdGhlIGNhbGxlciBkb2VzIG5vdCB3YW50IHRo
aXMgcHJvY2Vzc2VzIGluIHRoZSBwYWdlCisgICAgICAgIGNhY2hlLCB0aGV5IGNhbiBjbGVhciB0
aGUgcHJvY2VzcyBjYWNoZSBhZnRlcndhcmRzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkJh
Y2tGb3J3YXJkQ2FjaGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lE
ZWNpc2lvbik6CisgICAgICAgIE5vdyB0aGF0IGRlc3Ryb3lpbmcgYSBTdXNwZW5kZWRQYWdlUHJv
eHkgb3IgYSBQcm92aXNpb25hbFBhZ2VQcm94eSBtYXkgc2h1dGRvd24KKyAgICAgICAgdGhlaXIg
cHJvY2VzcyBzeW5jaHJvbm91c2x5LCBhZGQgYSBzY29wZSBoZXJlIHRvIHByZXZlbnQgc2h1dGRv
d24gb2YgdGhlIHByb2Nlc3MKKyAgICAgICAgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGlzIHNjb3Bl
LCBzaW5jZSB3ZSdyZSBhYm91dCB0byB1c2UgaXQgZm9yIGEgbmF2aWdhdGlvbiBhbmQKKyAgICAg
ICAgd2UgZG9uJ3Qgd2FudCBpdCB0byBnZXQgc2h1dGRvd24sIGV2ZW4gaWYgdGhlcmUgaXMgbm8g
bG9uZ2VyIGFueXRoaW5nIHVzaW5nIGl0LgorCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKToKKyAgICAgICAgQWRkIG5ldyBhc3Nl
cnRpb24gYW5kIHJlbmFtZSBwYXJhbWV0ZXIgZm9yIGNvbnNpc3RlbmN5LgorCisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Bvb2w6OmhhbmRsZU1lbW9yeVByZXNzdXJlV2FybmluZyk6CisKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5
OjphZGRQcm92aXNpb25hbFBhZ2VQcm94eSk6CisgICAgICAgIEFkZCBuZXcgYXNzZXJ0aW9uLgor
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cmVtb3ZlUHJvdmlzaW9uYWxQYWdl
UHJveHkpOgorICAgICAgICBDYWxsIG1heWJlU2h1dERvd24oKSBpZiB0aGlzIHdhcyB0aGUgbGFz
dCBwcm92aXNpb25hbCBwYWdlLgorCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6
bWF5YmVTaHV0RG93bik6CisgICAgICAgIERyb3AgcGFyYW1ldGVyIGluZGljYXRpbmcgaWYgd2Ug
d2FudCB0byBhbGxvdyB0aGUgcHJvY2VzcyB0byBlbnRlciB0aGUgcHJvY2VzcworICAgICAgICBj
YWNoZSBhbmQgYWxsb3cgY2FjaGluZyB1bmNvbmRpdGlvbmFsbHkuCisKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Byb3h5OjpjYW5UZXJtaW5hdGVBdXhpbGlhcnlQcm9jZXNzKToKKyAgICAg
ICAgUHJldmVudCB0ZXJtaW5hdGlvbiBpZiB0aGVyZSBpcyBhIFNjb3BlUHJldmVudGluZ1NodXRk
b3duLgorCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGVjcmVtZW50U3VzcGVu
ZGVkUGFnZUNvdW50KToKKyAgICAgICAgQ2FsbCBtYXliZVNodXREb3duKCkgaWYgdGhpcyB3YXMg
dGhlIGxhc3Qgc3VzcGVuZGVkIHBhZ2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6U2NvcGVQcmV2ZW50
aW5nU2h1dGRvd246OlNjb3BlUHJldmVudGluZ1NodXRkb3duKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Byb3h5OjpTY29wZVByZXZlbnRpbmdTaHV0ZG93bjo6flNjb3BlUHJldmVudGlu
Z1NodXRkb3duKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjptYWtlU2NvcGVQ
cmV2ZW50aW5nU2h1dGRvd24pOgorICAgICAgICBBZGQgbmV3IGZhY2lsaXR5IHRvIHByZXZlbnQg
c2h1dGRvd24gb2YgYSBwcm9jZXNzIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIHNjb3BlLgorCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVEYXRhKToKKyAgICAgICAgV2hl
biByZW1vdmluZyB3ZWJzaXRlIGRhdGEsIG9ubHkgY2xlYXIgY2FjaGVkIHByb2Nlc3NlcyBpZiB0
aGV5IGFyZSBhc3NvY2lhdGVkIHdpdGgKKyAgICAgICAgdGhlIGN1cnJlbnQgZGF0YSBzdG9yZS4K
KwogMjAxOS0xMC0xMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IE1vdmUgU3VzcGVuZGVkUGFnZSBsb2dpYyBmcm9tIFdlYlByb2Nlc3NQb29sIHRvIG5ldyBXZWJC
YWNrRm9yd2FyZENhY2hlIGNsYXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92
aXNpb25hbFBhZ2VQcm94eS5jcHAKaW5kZXggYTJhMDlkYzQ5MjVkZjQyZTU0ODQ0NTBiZWY0Nzk3
OGMwMzk3ZjllNS4uZTk4ZWMwZWE0ODA5NDgwYjNhN2U0Nzg5NjUxM2M0ODBjNDhjYjc3OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcApA
QCAtODgsMjEgKzg4LDE2IEBAIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpQcm92aXNpb25hbFBhZ2VQ
cm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIFJlZjxXZWJQcm9jZXNzUHJvCiAKIFByb3Zpc2lvbmFs
UGFnZVByb3h5Ojp+UHJvdmlzaW9uYWxQYWdlUHJveHkoKQogewotICAgIG1fcHJvY2Vzcy0+cmVt
b3ZlUHJvdmlzaW9uYWxQYWdlUHJveHkoKnRoaXMpOwotCi0gICAgaWYgKG1fd2FzQ29tbWl0dGVk
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoJm1fcHJvY2Vzcy0+d2Vic2l0ZURhdGFTdG9y
ZSgpICE9ICZtX3BhZ2Uud2Vic2l0ZURhdGFTdG9yZSgpKQotICAgICAgICBtX3Byb2Nlc3MtPnBy
b2Nlc3NQb29sKCkucGFnZUVuZFVzaW5nV2Vic2l0ZURhdGFTdG9yZShtX3BhZ2UuaWRlbnRpZmll
cigpLCBtX3Byb2Nlc3MtPndlYnNpdGVEYXRhU3RvcmUoKSk7CisgICAgaWYgKCFtX3dhc0NvbW1p
dHRlZCkgeworICAgICAgICBpZiAoJm1fcHJvY2Vzcy0+d2Vic2l0ZURhdGFTdG9yZSgpICE9ICZt
X3BhZ2Uud2Vic2l0ZURhdGFTdG9yZSgpKQorICAgICAgICAgICAgbV9wcm9jZXNzLT5wcm9jZXNz
UG9vbCgpLnBhZ2VFbmRVc2luZ1dlYnNpdGVEYXRhU3RvcmUobV9wYWdlLmlkZW50aWZpZXIoKSwg
bV9wcm9jZXNzLT53ZWJzaXRlRGF0YVN0b3JlKCkpOwogCi0gICAgbV9wcm9jZXNzLT5yZW1vdmVN
ZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpLCBtX3dlYlBhZ2VJRCk7Ci0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpDbG9zZSgpLCBtX3dlYlBhZ2VJRCk7Ci0gICAgbV9wcm9jZXNzLT5yZW1vdmVWaXNpdGVkTGlu
a1N0b3JlVXNlcihtX3BhZ2UudmlzaXRlZExpbmtTdG9yZSgpLCBtX3BhZ2UuaWRlbnRpZmllcigp
KTsKKyAgICAgICAgbV9wcm9jZXNzLT5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VJRCk7CisgICAgICAg
IG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Q2xvc2UoKSwgbV93ZWJQYWdlSUQp
OworICAgICAgICBtX3Byb2Nlc3MtPnJlbW92ZVZpc2l0ZWRMaW5rU3RvcmVVc2VyKG1fcGFnZS52
aXNpdGVkTGlua1N0b3JlKCksIG1fcGFnZS5pZGVudGlmaWVyKCkpOworICAgIH0KIAotICAgIFJ1
bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbcHJvY2VzcyA9IG1fcHJvY2Vzcy5jb3B5UmVmKCldIHsK
LSAgICAgICAgcHJvY2Vzcy0+bWF5YmVTaHV0RG93bigpOwotICAgIH0pOworICAgIG1fcHJvY2Vz
cy0+cmVtb3ZlUHJvdmlzaW9uYWxQYWdlUHJveHkoKnRoaXMpOwogfQogCiB2b2lkIFByb3Zpc2lv
bmFsUGFnZVByb3h5Ojpwcm9jZXNzRGlkVGVybWluYXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCmluZGV4IDVjNWI4NmUyZjk4Y2RmYTMyZDgy
ODYwZjBlZDU3MTk3M2E0YzNjNGQuLjgzNThkMmY5MGIxYWU0MDRhMWY0YzAwYjJiZGQ4YzNjMTI4
YmU5M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5
LmNwcApAQCAtMTE2LDcgKzExNiw2IEBAIFN1c3BlbmRlZFBhZ2VQcm94eTo6U3VzcGVuZGVkUGFn
ZVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgUmVmPFdlYlByb2Nlc3NQcm94eT4mCiAKIFN1c3Bl
bmRlZFBhZ2VQcm94eTo6flN1c3BlbmRlZFBhZ2VQcm94eSgpCiB7Ci0gICAgbV9wcm9jZXNzLT5k
ZWNyZW1lbnRTdXNwZW5kZWRQYWdlQ291bnQoKTsKICAgICBhbGxTdXNwZW5kZWRQYWdlcygpLnJl
bW92ZSh0aGlzKTsKIAogICAgIGlmIChtX3JlYWR5VG9VbnN1c3BlbmRIYW5kbGVyKSB7CkBAIC0x
MjUsMjEgKzEyNCwxNiBAQCBTdXNwZW5kZWRQYWdlUHJveHk6On5TdXNwZW5kZWRQYWdlUHJveHko
KQogICAgICAgICB9KTsKICAgICB9CiAKLSAgICBpZiAobV9zdXNwZW5zaW9uU3RhdGUgPT0gU3Vz
cGVuc2lvblN0YXRlOjpSZXN1bWVkKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBJZiB0aGUg
c3VzcGVuZGVkIHBhZ2Ugd2FzIG5vdCBjb25zdW1lZCBiZWZvcmUgZ2V0dGluZyBkZXN0cm95ZWQs
IHRoZW4gY2xvc2UgdGhlIGNvcnJlc3BvbmRpbmcgcGFnZQotICAgIC8vIG9uIHRoZSBXZWJQcm9j
ZXNzIHNpZGUuCi0gICAgY2xvc2UoKTsKKyAgICBpZiAobV9zdXNwZW5zaW9uU3RhdGUgIT0gU3Vz
cGVuc2lvblN0YXRlOjpSZXN1bWVkKSB7CisgICAgICAgIC8vIElmIHRoZSBzdXNwZW5kZWQgcGFn
ZSB3YXMgbm90IGNvbnN1bWVkIGJlZm9yZSBnZXR0aW5nIGRlc3Ryb3llZCwgdGhlbiBjbG9zZSB0
aGUgY29ycmVzcG9uZGluZyBwYWdlCisgICAgICAgIC8vIG9uIHRoZSBXZWJQcm9jZXNzIHNpZGUu
CisgICAgICAgIGNsb3NlKCk7CiAKLSAgICBpZiAobV9zdXNwZW5zaW9uU3RhdGUgPT0gU3VzcGVu
c2lvblN0YXRlOjpTdXNwZW5kaW5nKQotICAgICAgICBtX3Byb2Nlc3MtPnJlbW92ZU1lc3NhZ2VS
ZWNlaXZlcihNZXNzYWdlczo6V2ViUGFnZVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
d2ViUGFnZUlEKTsKKyAgICAgICAgaWYgKG1fc3VzcGVuc2lvblN0YXRlID09IFN1c3BlbnNpb25T
dGF0ZTo6U3VzcGVuZGluZykKKyAgICAgICAgICAgIG1fcHJvY2Vzcy0+cmVtb3ZlTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV93
ZWJQYWdlSUQpOworICAgIH0KIAotICAgIC8vIFdlIGNhbGwgbWF5YmVTaHV0RG93bigpIGFzeW5j
aHJvbm91c2x5IHNpbmNlIHRoZSBTdXNwZW5kZWRQYWdlIGlzIGN1cnJlbnRseSBiZWluZyByZW1v
dmVkIGZyb20gdGhlIFdlYlByb2Nlc3NQb29sCi0gICAgLy8gYW5kIHdlIHdhbnQgdG8gYXZvaWQg
cmUtZW50ZXJpbmcgV2ViUHJvY2Vzc1Bvb2wgbWV0aG9kcy4KLSAgICBSdW5Mb29wOjptYWluKCku
ZGlzcGF0Y2goW3Byb2Nlc3MgPSBtX3Byb2Nlc3MuY29weVJlZigpXSB7Ci0gICAgICAgIHByb2Nl
c3MtPm1heWJlU2h1dERvd24oKTsKLSAgICB9KTsKKyAgICBtX3Byb2Nlc3MtPmRlY3JlbWVudFN1
c3BlbmRlZFBhZ2VDb3VudCgpOwogfQogCiB2b2lkIFN1c3BlbmRlZFBhZ2VQcm94eTo6c2V0QmFj
a0ZvcndhcmRMaXN0SXRlbShXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiBpdGVtKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRDYWNoZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZENhY2hlLmNwcAppbmRleCA1ZGUxODZl
Njk3MzBlYTk4M2FlMGMxODAwNmVkZjZiNzhmMzU3YTUyLi40NjQ4NzY0Y2ZlMjQwY2Y3YTBjNzc4
ZWFiM2Y5ZWE0MTNlZTdjNWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJCYWNrRm9yd2FyZENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJC
YWNrRm9yd2FyZENhY2hlLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIldlYkJhY2tG
b3J3YXJkTGlzdEl0ZW0uaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlLmgiCiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCkBAIC04Myw2ICs4NCwxMyBAQCB2b2lkIFdlYkJhY2tGb3J3YXJkQ2Fj
aGU6OnJlbW92ZUVudHJpZXNGb3JQcm9jZXNzKFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcykKICAg
ICB9KTsKIH0KIAordm9pZCBXZWJCYWNrRm9yd2FyZENhY2hlOjpyZW1vdmVFbnRyaWVzRm9yU2Vz
c2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCit7CisgICAgcmVtb3ZlRW50cmllc01hdGNo
aW5nKFtzZXNzaW9uSURdKGF1dG8mIGl0ZW0pIHsKKyAgICAgICAgcmV0dXJuIGl0ZW0uc3VzcGVu
ZGVkUGFnZSgpLT5wcm9jZXNzKCkud2Vic2l0ZURhdGFTdG9yZSgpLnNlc3Npb25JRCgpID09IHNl
c3Npb25JRDsKKyAgICB9KTsKK30KKwogdm9pZCBXZWJCYWNrRm9yd2FyZENhY2hlOjpyZW1vdmVF
bnRyaWVzRm9yUGFnZShXZWJQYWdlUHJveHkmIHBhZ2UpCiB7CiAgICAgcmVtb3ZlRW50cmllc01h
dGNoaW5nKFtwYWdlSUQgPSBwYWdlLmlkZW50aWZpZXIoKV0oYXV0byYgaXRlbSkgewpAQCAtMTAy
LDE0ICsxMTAsMTEgQEAgdm9pZCBXZWJCYWNrRm9yd2FyZENhY2hlOjpyZW1vdmVFbnRyaWVzTWF0
Y2hpbmcoY29uc3QgRnVuY3Rpb248Ym9vbChXZWJCYWNrRm9yd2EKICAgICB9CiB9CiAKLXZvaWQg
V2ViQmFja0ZvcndhcmRDYWNoZTo6Y2xlYXIoQWxsb3dQcm9jZXNzQ2FjaGluZyBhbGxvd1Byb2Nl
c3NDYWNoaW5nKQordm9pZCBXZWJCYWNrRm9yd2FyZENhY2hlOjpjbGVhcigpCiB7CiAgICAgYXV0
byBpdGVtc1dpdGhDYWNoZWRQYWdlID0gV1RGTW92ZShtX2l0ZW1zV2l0aENhY2hlZFBhZ2UpOwot
ICAgIGZvciAoYXV0byogaXRlbSA6IGl0ZW1zV2l0aENhY2hlZFBhZ2UpIHsKLSAgICAgICAgYXV0
byBwcm9jZXNzID0gbWFrZVJlZihpdGVtLT5zdXNwZW5kZWRQYWdlKCktPnByb2Nlc3MoKSk7Cisg
ICAgZm9yIChhdXRvKiBpdGVtIDogaXRlbXNXaXRoQ2FjaGVkUGFnZSkKICAgICAgICAgaXRlbS0+
c2V0U3VzcGVuZGVkUGFnZShudWxscHRyKTsKLSAgICAgICAgcHJvY2Vzcy0+bWF5YmVTaHV0RG93
bihhbGxvd1Byb2Nlc3NDYWNoaW5nKTsKLSAgICB9CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkQ2Fj
aGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkQ2FjaGUuaAppbmRl
eCA2ZTAyYWIxNzcyZmNkMjg0NTcxZWNlMjY5ZDkwMDkyNzIxZmNmZGQxLi40ZGYxOWFkNGFlNzI3
MDhiZjAwMWU1M2ZkZjI3MTZkNDNhZmI4MWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJCYWNrRm9yd2FyZENhY2hlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQmFja0ZvcndhcmRDYWNoZS5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25j
ZQogCisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAKQEAgLTM0LDcgKzM1LDYgQEAgY2xhc3Mg
U3VzcGVuZGVkUGFnZVByb3h5OwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0SXRlbTsKIGNsYXNz
IFdlYlBhZ2VQcm94eTsKIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKLWVudW0gY2xhc3MgQWxsb3dQ
cm9jZXNzQ2FjaGluZzsKIAogY2xhc3MgV2ViQmFja0ZvcndhcmRDYWNoZSB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CkBAIC00Niw5ICs0NiwxMCBAQCBwdWJsaWM6CiAgICAgdW5zaWdu
ZWQgY2FwYWNpdHkoKSBjb25zdCB7IHJldHVybiBtX2NhcGFjaXR5OyB9CiAgICAgdW5zaWduZWQg
c2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXRlbXNXaXRoQ2FjaGVkUGFnZS5zaXplKCk7IH0KIAot
ICAgIHZvaWQgY2xlYXIoQWxsb3dQcm9jZXNzQ2FjaGluZyk7CisgICAgdm9pZCBjbGVhcigpOwog
ICAgIHZvaWQgcmVtb3ZlRW50cmllc0ZvclByb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5Jik7CiAgICAg
dm9pZCByZW1vdmVFbnRyaWVzRm9yUGFnZShXZWJQYWdlUHJveHkmKTsKKyAgICB2b2lkIHJlbW92
ZUVudHJpZXNGb3JTZXNzaW9uKFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIHZvaWQgYWRkRW50cnko
V2ViQmFja0ZvcndhcmRMaXN0SXRlbSYsIHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kZWRQYWdlUHJv
eHk+JiYpOwogICAgIHZvaWQgcmVtb3ZlRW50cnkoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZTI1MWIzNmY3YzNk
MGU1YzI1MjU5OTllYjQ1OGU0ZGU3ZDhmNzU0ZC4uMDE4NzZjNjAxZjBhMjg2YjRlZjk2NGVlNWJi
ZGYyMjNjOGVlOWNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CkBAIC0yOTU0LDYgKzI5NTQsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVjZWl2ZWROYXZpZ2F0
aW9uUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgQQogICAgICAgICAg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uOiBrZWVwIHVzaW5nIHByb2Nlc3MgJWkgZm9yIG5hdmlnYXRpb24s
IHJlYXNvbjogJXtwdWJsaWN9cyIsIHByb2Nlc3NJZGVudGlmaWVyKCksIHJlYXNvbi51dGY4KCku
ZGF0YSgpKTsKIAogICAgICAgICBpZiAoc2hvdWxkUHJvY2Vzc1N3YXApIHsKKyAgICAgICAgICAg
IC8vIE1ha2Ugc3VyZSB0aGUgcHJvY2VzcyB0byBiZSB1c2VkIGZvciB0aGUgbmF2aWdhdGlvbiBk
b2VzIG5vdCBnZXQgc2h1dERvd24gbm93IGR1ZSB0byBkZXN0cm95aW5nIFN1c3BlbmRlZFBhZ2VQ
cm94eSBvciBQcm92aXNpb25hbFBhZ2VQcm94eSBvYmplY3RzLgorICAgICAgICAgICAgYXV0byBw
cmV2ZW50TmF2aWdhdGlvblByb2Nlc3NTaHV0ZG93biA9IHByb2Nlc3NGb3JOYXZpZ2F0aW9uLT5t
YWtlU2NvcGVQcmV2ZW50aW5nU2h1dGRvd24oKTsKKwogICAgICAgICAgICAgYXV0byBzdXNwZW5k
ZWRQYWdlID0gZGVzdGluYXRpb25TdXNwZW5kZWRQYWdlID8gYmFja0ZvcndhcmRDYWNoZSgpLnRh
a2VFbnRyeSgqZGVzdGluYXRpb25TdXNwZW5kZWRQYWdlLT5iYWNrRm9yd2FyZExpc3RJdGVtKCkp
IDogbnVsbHB0cjsKICAgICAgICAgICAgIGlmIChzdXNwZW5kZWRQYWdlICYmIHN1c3BlbmRlZFBh
Z2UtPnBhZ2VJc0Nsb3NlZE9yQ2xvc2luZygpKQogICAgICAgICAgICAgICAgIHN1c3BlbmRlZFBh
Z2UgPSBudWxscHRyOwpAQCAtMzAzNSwxMCArMzAzOCwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
Y29tbWl0UHJvdmlzaW9uYWxQYWdlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBu
YXZpZwogICAgIG1fcHJvdmlzaW9uYWxQYWdlID0gbnVsbHB0cjsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mIG5h
dmlnYXRpb24sIHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kZWRQYWdlUHJveHk+JiYgc3VzcGVuZGVk
UGFnZVByb3h5LCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIG5ld1Byb2Nlc3MsIFByb2Nlc3NTd2Fw
UmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgT3B0aW9uYWw8
V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCit2b2lkIFdlYlBhZ2VQcm94
eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdh
dGlvbiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4mJiBzdXNwZW5kZWRQYWdl
LCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIG5ld1Byb2Nlc3MsIFByb2Nlc3NTd2FwUmVxdWVzdGVk
QnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgT3B0aW9uYWw8V2Vic2l0ZVBv
bGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChMb2FkaW5nLCAiY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzOiBuZXdQcm9jZXNz
UElEID0gJWksIGhhc1N1c3BlbmRlZFBhZ2UgPSAlaSIsIG5ld1Byb2Nlc3MtPnByb2Nlc3NJZGVu
dGlmaWVyKCksICEhc3VzcGVuZGVkUGFnZVByb3h5KTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKExvYWRpbmcsICJjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3M6IG5ld1Byb2Nlc3NQ
SUQgPSAlaSwgaGFzU3VzcGVuZGVkUGFnZSA9ICVpIiwgbmV3UHJvY2Vzcy0+cHJvY2Vzc0lkZW50
aWZpZXIoKSwgISFzdXNwZW5kZWRQYWdlKTsKICAgICBMT0coTG9hZGluZywgIkNvbnRpbnVpbmcg
bmF2aWdhdGlvbiAlIiBQUkl1NjQgIiAnJXMnIGluIGEgbmV3IHdlYiBwcm9jZXNzIiwgbmF2aWdh
dGlvbi5uYXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbi5sb2dnaW5nU3RyaW5nKCkpOworICAgIFJF
TEVBU0VfQVNTRVJUKCFuZXdQcm9jZXNzLT5pc0luUHJvY2Vzc0NhY2hlKCkpOwogCiAgICAgaWYg
KG1fcHJvdmlzaW9uYWxQYWdlKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJv
Y2Vzc1N3YXBwaW5nLCAiY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzOiBUaGVyZSBpcyBh
bHJlYWR5IGEgcGVuZGluZyBwcm92aXNpb25hbCBsb2FkLCBjYW5jZWxsaW5nIGl0IChwcm92aXNv
bmFsTmF2aWdhdGlvbklEOiAlbGx1LCBuYXZpZ2F0aW9uSUQ6ICVsbHUpIiwgbV9wcm92aXNpb25h
bFBhZ2UtPm5hdmlnYXRpb25JRCgpLCBuYXZpZ2F0aW9uLm5hdmlnYXRpb25JRCgpKTsKQEAgLTMw
NDcsNyArMzA1MSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250aW51ZU5hdmlnYXRpb25Jbk5l
d1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBzCiAgICAgICAgIG1fcHJvdmlz
aW9uYWxQYWdlID0gbnVsbHB0cjsKICAgICB9CiAKLSAgICBtX3Byb3Zpc2lvbmFsUGFnZSA9IG1h
a2VVbmlxdWU8UHJvdmlzaW9uYWxQYWdlUHJveHk+KCp0aGlzLCBuZXdQcm9jZXNzLmNvcHlSZWYo
KSwgV1RGTW92ZShzdXNwZW5kZWRQYWdlUHJveHkpLCBuYXZpZ2F0aW9uLm5hdmlnYXRpb25JRCgp
LCBuYXZpZ2F0aW9uLmN1cnJlbnRSZXF1ZXN0SXNSZWRpcmVjdCgpLCBuYXZpZ2F0aW9uLmN1cnJl
bnRSZXF1ZXN0KCksIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQpOworICAgIG1fcHJvdmlz
aW9uYWxQYWdlID0gbWFrZVVuaXF1ZTxQcm92aXNpb25hbFBhZ2VQcm94eT4oKnRoaXMsIG5ld1By
b2Nlc3MuY29weVJlZigpLCBXVEZNb3ZlKHN1c3BlbmRlZFBhZ2UpLCBuYXZpZ2F0aW9uLm5hdmln
YXRpb25JRCgpLCBuYXZpZ2F0aW9uLmN1cnJlbnRSZXF1ZXN0SXNSZWRpcmVjdCgpLCBuYXZpZ2F0
aW9uLmN1cnJlbnRSZXF1ZXN0KCksIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQpOwogCiAg
ICAgaWYgKGF1dG8qIGl0ZW0gPSBuYXZpZ2F0aW9uLnRhcmdldEl0ZW0oKSkgewogICAgICAgICBM
T0coTG9hZGluZywgIldlYlBhZ2VQcm94eSAlcCBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nl
c3MgdG8gYmFjayBpdGVtIFVSTCAlcyIsIHRoaXMsIGl0ZW0tPnVybCgpLnV0ZjgoKS5kYXRhKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDMwNTU3
YTY3Mzk4ZGYzM2MxMWM0NDMxMzg2NzA1NDcyNTUwYjk5ZTcuLjUyZjU0NDJmODY4MGQxYmU1M2M3
YmVkNzhmMTQwYjUyZjkzODRkNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHAKQEAgLTEzODcsOCArMTM4Nyw5IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6Omhh
bmRsZU1lbW9yeVByZXNzdXJlV2FybmluZyhDcml0aWNhbCkKIHsKICAgICBSRUxFQVNFX0xPRyhQ
ZXJmb3JtYW5jZUxvZ2dpbmcsICIlcCAtIFdlYlByb2Nlc3NQb29sOjpoYW5kbGVNZW1vcnlQcmVz
c3VyZVdhcm5pbmciLCB0aGlzKTsKIAotCi0gICAgbV9iYWNrRm9yd2FyZENhY2hlLT5jbGVhcihB
bGxvd1Byb2Nlc3NDYWNoaW5nOjpObyk7CisgICAgLy8gQ2xlYXIgYmFjay9mb3J3YXJkIGNhY2hl
IGZpcnN0IGFzIHByb2Nlc3NlcyByZW1vdmVkIGZyb20gdGhlIGJhY2svZm9yd2FyZCBjYWNoZSB3
aWxsIGxpa2VseQorICAgIC8vIGJlIGFkZGVkIHRvIHRoZSBXZWJQcm9jZXNzIGNhY2hlLgorICAg
IG1fYmFja0ZvcndhcmRDYWNoZS0+Y2xlYXIoKTsKICAgICBtX3dlYlByb2Nlc3NDYWNoZS0+Y2xl
YXIoKTsKIAogICAgIGlmIChtX3ByZXdhcm1lZFByb2Nlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA3NDk1MjVhODliM2Q0MTUwZWYwY2QyNDg5
NWU3NTA1MzE0NDk5OWRmLi45OTYwYWNmMDhkM2E5NzZjOTQ4NDU3N2VkNjY1YmIxYjg2OTE2NjMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTI0
OCw2ICsyNDgsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6dXBkYXRlUmVnaXN0cmF0aW9uV2l0
aERhdGFTdG9yZSgpCiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjphZGRQcm92aXNpb25hbFBhZ2VQ
cm94eShQcm92aXNpb25hbFBhZ2VQcm94eSYgcHJvdmlzaW9uYWxQYWdlKQogeworICAgIEFTU0VS
VCghbV9pc0luUHJvY2Vzc0NhY2hlKTsKICAgICBBU1NFUlQoIW1fcHJvdmlzaW9uYWxQYWdlcy5j
b250YWlucygmcHJvdmlzaW9uYWxQYWdlKSk7CiAgICAgbV9wcm92aXNpb25hbFBhZ2VzLmFkZCgm
cHJvdmlzaW9uYWxQYWdlKTsKICAgICB1cGRhdGVSZWdpc3RyYXRpb25XaXRoRGF0YVN0b3JlKCk7
CkBAIC0yNTgsNiArMjU5LDggQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnJlbW92ZVByb3Zpc2lv
bmFsUGFnZVByb3h5KFByb3Zpc2lvbmFsUGFnZVByb3h5JiBwcm92aXNpb24KICAgICBBU1NFUlQo
bV9wcm92aXNpb25hbFBhZ2VzLmNvbnRhaW5zKCZwcm92aXNpb25hbFBhZ2UpKTsKICAgICBtX3By
b3Zpc2lvbmFsUGFnZXMucmVtb3ZlKCZwcm92aXNpb25hbFBhZ2UpOwogICAgIHVwZGF0ZVJlZ2lz
dHJhdGlvbldpdGhEYXRhU3RvcmUoKTsKKyAgICBpZiAobV9wcm92aXNpb25hbFBhZ2VzLmlzRW1w
dHkoKSkKKyAgICAgICAgbWF5YmVTaHV0RG93bigpOwogfQogCiB2b2lkIFdlYlByb2Nlc3NQcm94
eTo6Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5j
aE9wdGlvbnMpCkBAIC05MzcsNyArOTQwLDcgQEAgYm9vbCBXZWJQcm9jZXNzUHJveHk6OmNhbkJl
QWRkZWRUb1dlYlByb2Nlc3NDYWNoZSgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZv
aWQgV2ViUHJvY2Vzc1Byb3h5OjptYXliZVNodXREb3duKEFsbG93UHJvY2Vzc0NhY2hpbmcgYWxs
b3dQcm9jZXNzQ2FjaGluZykKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjptYXliZVNodXREb3duKCkK
IHsKICAgICBpZiAocHJvY2Vzc1Bvb2woKS5kdW1teVByb2Nlc3NQcm94eSgpID09IHRoaXMgJiYg
bV9wYWdlTWFwLmlzRW1wdHkoKSkgewogICAgICAgICBBU1NFUlQoc3RhdGUoKSA9PSBTdGF0ZTo6
VGVybWluYXRlZCk7CkBAIC05NDgsNyArOTUxLDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6Om1h
eWJlU2h1dERvd24oQWxsb3dQcm9jZXNzQ2FjaGluZyBhbGxvd1Byb2Nlc3NDYWNoaW5nKQogICAg
IGlmIChzdGF0ZSgpID09IFN0YXRlOjpUZXJtaW5hdGVkIHx8ICFjYW5UZXJtaW5hdGVBdXhpbGlh
cnlQcm9jZXNzKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChhbGxvd1Byb2Nlc3NDYWNo
aW5nID09IEFsbG93UHJvY2Vzc0NhY2hpbmc6OlllcyAmJiBjYW5CZUFkZGVkVG9XZWJQcm9jZXNz
Q2FjaGUoKSAmJiBwcm9jZXNzUG9vbCgpLndlYlByb2Nlc3NDYWNoZSgpLmFkZFByb2Nlc3NJZlBv
c3NpYmxlKCp0aGlzKSkKKyAgICBpZiAoY2FuQmVBZGRlZFRvV2ViUHJvY2Vzc0NhY2hlKCkgJiYg
cHJvY2Vzc1Bvb2woKS53ZWJQcm9jZXNzQ2FjaGUoKS5hZGRQcm9jZXNzSWZQb3NzaWJsZSgqdGhp
cykpCiAgICAgICAgIHJldHVybjsKIAogICAgIHNodXREb3duKCk7CkBAIC05NTYsNyArOTU5LDcg
QEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6Om1heWJlU2h1dERvd24oQWxsb3dQcm9jZXNzQ2FjaGlu
ZyBhbGxvd1Byb2Nlc3NDYWNoaW5nKQogCiBib29sIFdlYlByb2Nlc3NQcm94eTo6Y2FuVGVybWlu
YXRlQXV4aWxpYXJ5UHJvY2VzcygpCiB7Ci0gICAgaWYgKCFtX3BhZ2VNYXAuaXNFbXB0eSgpIHx8
IG1fc3VzcGVuZGVkUGFnZUNvdW50IHx8ICFtX3Byb3Zpc2lvbmFsUGFnZXMuaXNFbXB0eSgpIHx8
IG1faXNJblByb2Nlc3NDYWNoZSkKKyAgICBpZiAoIW1fcGFnZU1hcC5pc0VtcHR5KCkgfHwgbV9z
dXNwZW5kZWRQYWdlQ291bnQgfHwgIW1fcHJvdmlzaW9uYWxQYWdlcy5pc0VtcHR5KCkgfHwgbV9p
c0luUHJvY2Vzc0NhY2hlIHx8IG1fc2h1dGRvd25QcmV2ZW50aW5nU2NvcGVDb3VudCkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCFtX3Byb2Nlc3NQb29sLT5zaG91bGRUZXJtaW5h
dGUodGhpcykpCkBAIC0xNDgzLDggKzE0ODYsMTAgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRl
Y3JlbWVudFN1c3BlbmRlZFBhZ2VDb3VudCgpCiB7CiAgICAgQVNTRVJUKG1fc3VzcGVuZGVkUGFn
ZUNvdW50KTsKICAgICAtLW1fc3VzcGVuZGVkUGFnZUNvdW50OwotICAgIGlmICghbV9zdXNwZW5k
ZWRQYWdlQ291bnQpCisgICAgaWYgKCFtX3N1c3BlbmRlZFBhZ2VDb3VudCkgewogICAgICAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTZXRIYXNTdXNwZW5kZWRQYWdlUHJveHkoZmFsc2Up
LCAwKTsKKyAgICAgICAgbWF5YmVTaHV0RG93bigpOworICAgIH0KIH0KIAogV2ViUHJvY2Vzc1Bv
b2wqIFdlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc1Bvb2xJZkV4aXN0cygpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDViMDUyMTg5NGIyMTk4ZWJj
ZWRlYmFlNjNmNjc1MzU2NTYxNGI3MzIuLmFiOGY1ZmFlOTIzNTM1YWNjNDgzNzJiM2ExYWMzZmI5
MjMyYjA3YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBA
IC05NCw4ICs5NCw2IEBAIHR5cGVkZWYgUmVmQ291bnRlcjxCYWNrZ3JvdW5kV2ViUHJvY2Vzc0Nv
dW50ZXJUeXBlPiBCYWNrZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXI7CiB0eXBlZGVmIEJhY2tncm91
bmRXZWJQcm9jZXNzQ291bnRlcjo6VG9rZW4gQmFja2dyb3VuZFdlYlByb2Nlc3NUb2tlbjsKICNl
bmRpZgogCi1lbnVtIGNsYXNzIEFsbG93UHJvY2Vzc0NhY2hpbmcgeyBObywgWWVzIH07Ci0KIGNs
YXNzIFdlYlByb2Nlc3NQcm94eSA6IHB1YmxpYyBBdXhpbGlhcnlQcm9jZXNzUHJveHksIHB1Ymxp
YyBSZXNwb25zaXZlbmVzc1RpbWVyOjpDbGllbnQsIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxXZWJQcm9jZXNzUHJveHk+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2ViUHJvY2Vzc1Byb3h5
PiwgcHJpdmF0ZSBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICB0eXBlZGVm
IEhhc2hNYXA8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWZQdHI8V2ViRnJhbWVQcm94eT4+
IFdlYkZyYW1lUHJveHlNYXA7CkBAIC0yNzIsNyArMjcwLDI5IEBAIHB1YmxpYzoKICAgICAvLyBD
YWxsZWQgd2hlbiB0aGUgd2ViIHByb2Nlc3MgaGFzIGNyYXNoZWQgb3Igd2Uga25vdyB0aGF0IGl0
IHdpbGwgdGVybWluYXRlIHNvb24uCiAgICAgLy8gV2lsbCBwb3RlbnRpYWxseSBjYXVzZSB0aGUg
V2ViUHJvY2Vzc1Byb3h5IG9iamVjdCB0byBiZSBmcmVlZC4KICAgICB2b2lkIHNodXREb3duKCk7
Ci0gICAgdm9pZCBtYXliZVNodXREb3duKEFsbG93UHJvY2Vzc0NhY2hpbmcgPSBBbGxvd1Byb2Nl
c3NDYWNoaW5nOjpZZXMpOworCisgICAgY2xhc3MgU2NvcGVQcmV2ZW50aW5nU2h1dGRvd24gewor
ICAgIHB1YmxpYzoKKyAgICAgICAgZXhwbGljaXQgU2NvcGVQcmV2ZW50aW5nU2h1dGRvd24oV2Vi
UHJvY2Vzc1Byb3h5JiBwcm9jZXNzKQorICAgICAgICAgICAgOiBtX3Byb2Nlc3MoJnByb2Nlc3Mp
CisgICAgICAgIHsKKyAgICAgICAgICAgICsrKG1fcHJvY2Vzcy0+bV9zaHV0ZG93blByZXZlbnRp
bmdTY29wZUNvdW50KTsKKyAgICAgICAgfQorCisgICAgICAgIH5TY29wZVByZXZlbnRpbmdTaHV0
ZG93bigpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChtX3Byb2Nlc3MpIHsKKyAgICAgICAg
ICAgICAgICBBU1NFUlQobV9wcm9jZXNzLT5tX3NodXRkb3duUHJldmVudGluZ1Njb3BlQ291bnQp
OworICAgICAgICAgICAgICAgIGlmICghLS0obV9wcm9jZXNzLT5tX3NodXRkb3duUHJldmVudGlu
Z1Njb3BlQ291bnQpKQorICAgICAgICAgICAgICAgICAgICBtX3Byb2Nlc3MtPm1heWJlU2h1dERv
d24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAg
UmVmUHRyPFdlYlByb2Nlc3NQcm94eT4gbV9wcm9jZXNzOworICAgIH07CisKKyAgICBTY29wZVBy
ZXZlbnRpbmdTaHV0ZG93biBtYWtlU2NvcGVQcmV2ZW50aW5nU2h1dGRvd24oKSB7IHJldHVybiBT
Y29wZVByZXZlbnRpbmdTaHV0ZG93biB7ICp0aGlzIH07IH0KIAogICAgIHZvaWQgZGlkU3RhcnRQ
cm92aXNpb25hbExvYWRGb3JNYWluRnJhbWUoY29uc3QgVVJMJik7CiAKQEAgLTQwNCw2ICs0MjQs
OCBAQCBwcml2YXRlOgogICAgIAogICAgIHZvaWQgdXBkYXRlUmVnaXN0cmF0aW9uV2l0aERhdGFT
dG9yZSgpOwogCisgICAgdm9pZCBtYXliZVNodXREb3duKCk7CisKICAgICBlbnVtIGNsYXNzIElz
V2VhayB7IE5vLCBZZXMgfTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBXZWFrT3JT
dHJvbmdQdHIgewogICAgIHB1YmxpYzoKQEAgLTQ4Miw2ICs1MDQsNyBAQCBwcml2YXRlOgogI2Vu
ZGlmCiAKICAgICB1bnNpZ25lZCBtX3N1c3BlbmRlZFBhZ2VDb3VudCB7IDAgfTsKKyAgICB1bnNp
Z25lZCBtX3NodXRkb3duUHJldmVudGluZ1Njb3BlQ291bnQgeyAwIH07CiAgICAgYm9vbCBtX2hh
c0NvbW1pdHRlZEFueVByb3Zpc2lvbmFsTG9hZHMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1By
ZXdhcm1lZDsKICAgICBib29sIG1faGFzQXVkaWJsZVdlYlBhZ2UgeyBmYWxzZSB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcAppbmRleCAyYTIzYjJhY2VjYWEzZGJjM2M1YTJkMzQwYThmZjczMzJjY2VmYjIwLi44
Mzc1MWU5MzQ1Y2ZhN2JmZjNhNWE3NDVlYTg4ZjIwMGY5ZmI5ODc2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cApAQCAtNzI2LDggKzcyNiwxMCBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZURhdGEo
T3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBXYWxsVGltZQogICAgIGF1dG8g
d2ViUHJvY2Vzc0FjY2Vzc1R5cGUgPSBjb21wdXRlV2ViUHJvY2Vzc0FjY2Vzc1R5cGVGb3JEYXRh
UmVtb3ZhbChkYXRhVHlwZXMsICFpc1BlcnNpc3RlbnQoKSk7CiAgICAgaWYgKHdlYlByb2Nlc3NB
Y2Nlc3NUeXBlICE9IFByb2Nlc3NBY2Nlc3NUeXBlOjpOb25lKSB7CiAgICAgICAgIGZvciAoYXV0
byYgcHJvY2Vzc1Bvb2wgOiBwcm9jZXNzUG9vbHMoKSkgewotICAgICAgICAgICAgcHJvY2Vzc1Bv
b2wtPmJhY2tGb3J3YXJkQ2FjaGUoKS5jbGVhcihBbGxvd1Byb2Nlc3NDYWNoaW5nOjpObyk7Ci0g
ICAgICAgICAgICBwcm9jZXNzUG9vbC0+d2ViUHJvY2Vzc0NhY2hlKCkuY2xlYXIoKTsKKyAgICAg
ICAgICAgIC8vIENsZWFyIGJhY2svZm9yd2FyZCBjYWNoZSBmaXJzdCBhcyBwcm9jZXNzZXMgcmVt
b3ZlZCBmcm9tIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUgd2lsbCBsaWtlbHkKKyAgICAgICAgICAg
IC8vIGJlIGFkZGVkIHRvIHRoZSBXZWJQcm9jZXNzIGNhY2hlLgorICAgICAgICAgICAgcHJvY2Vz
c1Bvb2wtPmJhY2tGb3J3YXJkQ2FjaGUoKS5yZW1vdmVFbnRyaWVzRm9yU2Vzc2lvbihzZXNzaW9u
SUQoKSk7CisgICAgICAgICAgICBwcm9jZXNzUG9vbC0+d2ViUHJvY2Vzc0NhY2hlKCkuY2xlYXJB
bGxQcm9jZXNzZXNGb3JTZXNzaW9uKHNlc3Npb25JRCgpKTsKICAgICAgICAgfQogCiAgICAgICAg
IGZvciAoYXV0byYgcHJvY2VzcyA6IHByb2Nlc3NlcygpKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380827</attachid>
            <date>2019-10-12 08:33:14 -0700</date>
            <delta_ts>2019-10-12 09:17:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202865-20191012083312.patch</filename>
            <type>text/plain</type>
            <size>21032</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMDQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFkMzQ5NDQ3MDMzNGQ5N2Q4
NDFjZDM4NmU0YTg1MDRhNGY5OTY1MzAuLjZhMzY4OGNlMjM2NzMxNjMzNzhlZWE1MTk5M2JlYmQ0
NWQzNWQ1NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMTktMTAtMTIgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDbGVhcmluZyBXZWJzaXRlIGRhdGEg
Zm9yIGEgZ2l2ZW4gc2Vzc2lvbiBzaG91bGQgbm90IHNodXQgZG93biBjYWNoZWQgcHJvY2Vzc2Vz
IGZvciBvdGhlciBzZXNzaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAyODY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NjIwMjkxMj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICBXaGVuIGNsZWFy
aW5nIFdlYnNpdGUgZGF0YSBmb3IgYSBnaXZlbiBkYXRhIHN0b3JlLCB3ZSBub3cgb25seSBjbGVh
ciBjYWNoZWQgcHJvY2Vzc2VzCisgICAgICAgIChlaXRoZXIgaWYgQmFja0ZvcndhcmRDYWNoZSBv
ciBXZWJQcm9jZXNzQ2FjaGUpIGlmIHRoZXkgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGlzCisgICAg
ICAgIHBhcnRpY3VsYXIgZGF0YSBzdG9yZS4gSXQgaXMgdmVyeSB3YXN0ZWZ1bCBvdGhlcndpc2Uu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6flByb3Zpc2lvbmFsUGFnZVByb3h5KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6U3VzcGVuZGVkUGFnZVByb3h5Ojp+U3VzcGVuZGVkUGFnZVByb3h5KToKKyAgICAgICAg
UHJvdmlzaW9uYWxQYWdlUHJveHkgJiBTdXNwZW5kZWRQYWdlUHJveHkncyBkZXN0cnVjdG9ycyBu
byBsb25nZXIgY2FsbAorICAgICAgICBXZWJQcm9jZXNzUHJveHk6Om1heWJlU2h1dGRvd24oKSBh
c3luY2hyb25vdXNseS4gV2Ugbm93IGNhbGwgbWF5YmVTaHV0ZG93bigpCisgICAgICAgIHN5bmNo
cm9ub3VzbHkgaW4gV2ViUHJvY2Vzc1Byb3h5OjpkZWNyZW1lbnRTdXNwZW5kZWRQYWdlQ291bnQo
KSBhbmQKKyAgICAgICAgV2ViUHJvY2Vzc1Byb3h5OjpyZW1vdmVQcm92aXNpb25hbFBhZ2VQcm94
eSgpIGluc3RlYWQuIFRoaXMgbWFrZXMgdGhpbmdzIGEKKyAgICAgICAgbG90IG1vcmUgcHJlZGlj
dGFibGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRDYWNoZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkJhY2tGb3J3YXJkQ2FjaGU6OnJlbW92ZUVudHJpZXNGb3JTZXNz
aW9uKToKKyAgICAgICAgQWRkIG5ldyByZW1vdmVFbnRyaWVzRm9yU2Vzc2lvbigpIG1ldGhvZCB0
byBjbGVhciBvbmx5IGJhY2sgLyBmb3J3YXJkIGNhY2hlCisgICAgICAgIGVudHJpZXMgYXNzb2Np
YXRlZCB3aXRoIGEgcGFydGljdWxhciBzZXNzaW9uLgorCisgICAgICAgIChXZWJLaXQ6OldlYkJh
Y2tGb3J3YXJkQ2FjaGU6OmNsZWFyKToKKyAgICAgICAgU3RvcCB0YWtpbmcgYSBwYXJhbWV0ZXIg
aW5kaWNhdGluZyBpZiB3ZSBhbGxvdyB0aGUgcHJvY2Vzc2VzIHRvIGVudGVyIHRoZQorICAgICAg
ICBwcm9jZXNzIGNhY2hlLiBOb3cgdGhhdCB3ZSBjYWxsIG1heWJlU2h1dGRvd24oKSBzeW5jaHJv
bm91c2x5IHdoZW4gZGVzdHJveWluZworICAgICAgICBhIFN1c3BlbmRlZFBhZ2VQcm94eSwgd2Ug
Y2FuIHNpbXBseSBhbGxvdyB0aGUgcHJvY2Vzc2VzIHRvIGVudGVyIHRoZSBwcm9jZXNzCisgICAg
ICAgIGNhY2hlIHVuY29uZGl0aW9uYWxseS4gSWYgdGhlIGNhbGxlciBkb2VzIG5vdCB3YW50IHRo
aXMgcHJvY2Vzc2VzIGluIHRoZSBwYWdlCisgICAgICAgIGNhY2hlLCB0aGV5IGNhbiBjbGVhciB0
aGUgcHJvY2VzcyBjYWNoZSBhZnRlcndhcmRzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkJh
Y2tGb3J3YXJkQ2FjaGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lE
ZWNpc2lvbik6CisgICAgICAgIE5vdyB0aGF0IGRlc3Ryb3lpbmcgYSBTdXNwZW5kZWRQYWdlUHJv
eHkgb3IgYSBQcm92aXNpb25hbFBhZ2VQcm94eSBtYXkgc2h1dGRvd24KKyAgICAgICAgdGhlaXIg
cHJvY2VzcyBzeW5jaHJvbm91c2x5LCBhZGQgYSBzY29wZSBoZXJlIHRvIHByZXZlbnQgc2h1dGRv
d24gb2YgdGhlIHByb2Nlc3MKKyAgICAgICAgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGlzIHNjb3Bl
LCBzaW5jZSB3ZSdyZSBhYm91dCB0byB1c2UgaXQgZm9yIGEgbmF2aWdhdGlvbiBhbmQKKyAgICAg
ICAgd2UgZG9uJ3Qgd2FudCBpdCB0byBnZXQgc2h1dGRvd24sIGV2ZW4gaWYgdGhlcmUgaXMgbm8g
bG9uZ2VyIGFueXRoaW5nIHVzaW5nIGl0LgorCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKToKKyAgICAgICAgQWRkIG5ldyBhc3Nl
cnRpb24gYW5kIHJlbmFtZSBwYXJhbWV0ZXIgZm9yIGNvbnNpc3RlbmN5LgorCisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Bvb2w6OmhhbmRsZU1lbW9yeVByZXNzdXJlV2FybmluZyk6CisKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5
OjphZGRQcm92aXNpb25hbFBhZ2VQcm94eSk6CisgICAgICAgIEFkZCBuZXcgYXNzZXJ0aW9uLgor
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cmVtb3ZlUHJvdmlzaW9uYWxQYWdl
UHJveHkpOgorICAgICAgICBDYWxsIG1heWJlU2h1dERvd24oKSBpZiB0aGlzIHdhcyB0aGUgbGFz
dCBwcm92aXNpb25hbCBwYWdlLgorCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6
bWF5YmVTaHV0RG93bik6CisgICAgICAgIERyb3AgcGFyYW1ldGVyIGluZGljYXRpbmcgaWYgd2Ug
d2FudCB0byBhbGxvdyB0aGUgcHJvY2VzcyB0byBlbnRlciB0aGUgcHJvY2VzcworICAgICAgICBj
YWNoZSBhbmQgYWxsb3cgY2FjaGluZyB1bmNvbmRpdGlvbmFsbHkuCisKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Byb3h5OjpjYW5UZXJtaW5hdGVBdXhpbGlhcnlQcm9jZXNzKToKKyAgICAg
ICAgUHJldmVudCB0ZXJtaW5hdGlvbiBpZiB0aGVyZSBpcyBhIFNjb3BlUHJldmVudGluZ1NodXRk
b3duLgorCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGVjcmVtZW50U3VzcGVu
ZGVkUGFnZUNvdW50KToKKyAgICAgICAgQ2FsbCBtYXliZVNodXREb3duKCkgaWYgdGhpcyB3YXMg
dGhlIGxhc3Qgc3VzcGVuZGVkIHBhZ2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6U2NvcGVQcmV2ZW50
aW5nU2h1dGRvd246OlNjb3BlUHJldmVudGluZ1NodXRkb3duKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Byb3h5OjpTY29wZVByZXZlbnRpbmdTaHV0ZG93bjo6flNjb3BlUHJldmVudGlu
Z1NodXRkb3duKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjptYWtlU2NvcGVQ
cmV2ZW50aW5nU2h1dGRvd24pOgorICAgICAgICBBZGQgbmV3IGZhY2lsaXR5IHRvIHByZXZlbnQg
c2h1dGRvd24gb2YgYSBwcm9jZXNzIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIHNjb3BlLgorCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVEYXRhKToKKyAgICAgICAgV2hl
biByZW1vdmluZyB3ZWJzaXRlIGRhdGEsIG9ubHkgY2xlYXIgY2FjaGVkIHByb2Nlc3NlcyBpZiB0
aGV5IGFyZSBhc3NvY2lhdGVkIHdpdGgKKyAgICAgICAgdGhlIGN1cnJlbnQgZGF0YSBzdG9yZS4K
KwogMjAxOS0xMC0xMiAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFYOiBNYWtlIEFYSXNvbGF0ZWRUcmVlIGNvbXBpbGUgYWdhaW4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAppbmRleCBhMmEwOWRj
NDkyNWRmNDJlNTQ4NDQ1MGJlZjQ3OTc4YzAzOTdmOWU1Li5lOThlYzBlYTQ4MDk0ODBiM2E3ZTQ3
ODk2NTEzYzQ4MGM0OGNiNzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
cm92aXNpb25hbFBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJv
dmlzaW9uYWxQYWdlUHJveHkuY3BwCkBAIC04OCwyMSArODgsMTYgQEAgUHJvdmlzaW9uYWxQYWdl
UHJveHk6OlByb3Zpc2lvbmFsUGFnZVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgUmVmPFdlYlBy
b2Nlc3NQcm8KIAogUHJvdmlzaW9uYWxQYWdlUHJveHk6On5Qcm92aXNpb25hbFBhZ2VQcm94eSgp
CiB7Ci0gICAgbV9wcm9jZXNzLT5yZW1vdmVQcm92aXNpb25hbFBhZ2VQcm94eSgqdGhpcyk7Ci0K
LSAgICBpZiAobV93YXNDb21taXR0ZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICgmbV9w
cm9jZXNzLT53ZWJzaXRlRGF0YVN0b3JlKCkgIT0gJm1fcGFnZS53ZWJzaXRlRGF0YVN0b3JlKCkp
Ci0gICAgICAgIG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5wYWdlRW5kVXNpbmdXZWJzaXRlRGF0
YVN0b3JlKG1fcGFnZS5pZGVudGlmaWVyKCksIG1fcHJvY2Vzcy0+d2Vic2l0ZURhdGFTdG9yZSgp
KTsKKyAgICBpZiAoIW1fd2FzQ29tbWl0dGVkKSB7CisgICAgICAgIGlmICgmbV9wcm9jZXNzLT53
ZWJzaXRlRGF0YVN0b3JlKCkgIT0gJm1fcGFnZS53ZWJzaXRlRGF0YVN0b3JlKCkpCisgICAgICAg
ICAgICBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkucGFnZUVuZFVzaW5nV2Vic2l0ZURhdGFTdG9y
ZShtX3BhZ2UuaWRlbnRpZmllcigpLCBtX3Byb2Nlc3MtPndlYnNpdGVEYXRhU3RvcmUoKSk7CiAK
LSAgICBtX3Byb2Nlc3MtPnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fd2ViUGFnZUlEKTsKLSAgICBtX3Byb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNsb3NlKCksIG1fd2ViUGFnZUlEKTsKLSAgICBtX3By
b2Nlc3MtPnJlbW92ZVZpc2l0ZWRMaW5rU3RvcmVVc2VyKG1fcGFnZS52aXNpdGVkTGlua1N0b3Jl
KCksIG1fcGFnZS5pZGVudGlmaWVyKCkpOworICAgICAgICBtX3Byb2Nlc3MtPnJlbW92ZU1lc3Nh
Z2VSZWNlaXZlcihNZXNzYWdlczo6V2ViUGFnZVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCks
IG1fd2ViUGFnZUlEKTsKKyAgICAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpDbG9zZSgpLCBtX3dlYlBhZ2VJRCk7CisgICAgICAgIG1fcHJvY2Vzcy0+cmVtb3ZlVmlzaXRl
ZExpbmtTdG9yZVVzZXIobV9wYWdlLnZpc2l0ZWRMaW5rU3RvcmUoKSwgbV9wYWdlLmlkZW50aWZp
ZXIoKSk7CisgICAgfQogCi0gICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcm9jZXNzID0g
bV9wcm9jZXNzLmNvcHlSZWYoKV0gewotICAgICAgICBwcm9jZXNzLT5tYXliZVNodXREb3duKCk7
Ci0gICAgfSk7CisgICAgbV9wcm9jZXNzLT5yZW1vdmVQcm92aXNpb25hbFBhZ2VQcm94eSgqdGhp
cyk7CiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OnByb2Nlc3NEaWRUZXJtaW5hdGUo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAKaW5k
ZXggNWM1Yjg2ZTJmOThjZGZhMzJkODI4NjBmMGVkNTcxOTczYTRjM2M0ZC4uODM1OGQyZjkwYjFh
ZTQwNGExZjRjMDBiMmJkZDhjM2MxMjhiZTkzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCkBAIC0xMTYsNyArMTE2LDYgQEAgU3VzcGVuZGVk
UGFnZVByb3h5OjpTdXNwZW5kZWRQYWdlUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYKIAogU3VzcGVuZGVkUGFnZVByb3h5Ojp+U3VzcGVuZGVkUGFnZVByb3h5
KCkKIHsKLSAgICBtX3Byb2Nlc3MtPmRlY3JlbWVudFN1c3BlbmRlZFBhZ2VDb3VudCgpOwogICAg
IGFsbFN1c3BlbmRlZFBhZ2VzKCkucmVtb3ZlKHRoaXMpOwogCiAgICAgaWYgKG1fcmVhZHlUb1Vu
c3VzcGVuZEhhbmRsZXIpIHsKQEAgLTEyNSwyMSArMTI0LDE2IEBAIFN1c3BlbmRlZFBhZ2VQcm94
eTo6flN1c3BlbmRlZFBhZ2VQcm94eSgpCiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIGlmICht
X3N1c3BlbnNpb25TdGF0ZSA9PSBTdXNwZW5zaW9uU3RhdGU6OlJlc3VtZWQpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIC8vIElmIHRoZSBzdXNwZW5kZWQgcGFnZSB3YXMgbm90IGNvbnN1bWVkIGJl
Zm9yZSBnZXR0aW5nIGRlc3Ryb3llZCwgdGhlbiBjbG9zZSB0aGUgY29ycmVzcG9uZGluZyBwYWdl
Ci0gICAgLy8gb24gdGhlIFdlYlByb2Nlc3Mgc2lkZS4KLSAgICBjbG9zZSgpOworICAgIGlmICht
X3N1c3BlbnNpb25TdGF0ZSAhPSBTdXNwZW5zaW9uU3RhdGU6OlJlc3VtZWQpIHsKKyAgICAgICAg
Ly8gSWYgdGhlIHN1c3BlbmRlZCBwYWdlIHdhcyBub3QgY29uc3VtZWQgYmVmb3JlIGdldHRpbmcg
ZGVzdHJveWVkLCB0aGVuIGNsb3NlIHRoZSBjb3JyZXNwb25kaW5nIHBhZ2UKKyAgICAgICAgLy8g
b24gdGhlIFdlYlByb2Nlc3Mgc2lkZS4KKyAgICAgICAgY2xvc2UoKTsKIAotICAgIGlmIChtX3N1
c3BlbnNpb25TdGF0ZSA9PSBTdXNwZW5zaW9uU3RhdGU6OlN1c3BlbmRpbmcpCi0gICAgICAgIG1f
cHJvY2Vzcy0+cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSwgbV93ZWJQYWdlSUQpOworICAgICAgICBpZiAobV9zdXNwZW5z
aW9uU3RhdGUgPT0gU3VzcGVuc2lvblN0YXRlOjpTdXNwZW5kaW5nKQorICAgICAgICAgICAgbV9w
cm9jZXNzLT5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VJRCk7CisgICAgfQogCi0gICAgLy8gV2UgY2Fs
bCBtYXliZVNodXREb3duKCkgYXN5bmNocm9ub3VzbHkgc2luY2UgdGhlIFN1c3BlbmRlZFBhZ2Ug
aXMgY3VycmVudGx5IGJlaW5nIHJlbW92ZWQgZnJvbSB0aGUgV2ViUHJvY2Vzc1Bvb2wKLSAgICAv
LyBhbmQgd2Ugd2FudCB0byBhdm9pZCByZS1lbnRlcmluZyBXZWJQcm9jZXNzUG9vbCBtZXRob2Rz
LgotICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbcHJvY2VzcyA9IG1fcHJvY2Vzcy5jb3B5
UmVmKCldIHsKLSAgICAgICAgcHJvY2Vzcy0+bWF5YmVTaHV0RG93bigpOwotICAgIH0pOworICAg
IG1fcHJvY2Vzcy0+ZGVjcmVtZW50U3VzcGVuZGVkUGFnZUNvdW50KCk7CiB9CiAKIHZvaWQgU3Vz
cGVuZGVkUGFnZVByb3h5OjpzZXRCYWNrRm9yd2FyZExpc3RJdGVtKFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW0mIGl0ZW0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJCYWNr
Rm9yd2FyZENhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJk
Q2FjaGUuY3BwCmluZGV4IDVkZTE4NmU2OTczMGVhOTgzYWUwYzE4MDA2ZWRmNmI3OGYzNTdhNTIu
LjQ2NDg3NjRjZmUyNDBjZjdhMGM3NzhlYWIzZjllYTQxM2VlN2M1YmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkQ2FjaGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkQ2FjaGUuY3BwCkBAIC0zMCw2ICszMCw3
IEBACiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIgogI2luY2x1ZGUgIldlYlBh
Z2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIldlYnNp
dGVEYXRhU3RvcmUuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTgzLDYgKzg0LDEzIEBA
IHZvaWQgV2ViQmFja0ZvcndhcmRDYWNoZTo6cmVtb3ZlRW50cmllc0ZvclByb2Nlc3MoV2ViUHJv
Y2Vzc1Byb3h5JiBwcm9jZXNzKQogICAgIH0pOwogfQogCit2b2lkIFdlYkJhY2tGb3J3YXJkQ2Fj
aGU6OnJlbW92ZUVudHJpZXNGb3JTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKK3sK
KyAgICByZW1vdmVFbnRyaWVzTWF0Y2hpbmcoW3Nlc3Npb25JRF0oYXV0byYgaXRlbSkgeworICAg
ICAgICByZXR1cm4gaXRlbS5zdXNwZW5kZWRQYWdlKCktPnByb2Nlc3MoKS53ZWJzaXRlRGF0YVN0
b3JlKCkuc2Vzc2lvbklEKCkgPT0gc2Vzc2lvbklEOworICAgIH0pOworfQorCiB2b2lkIFdlYkJh
Y2tGb3J3YXJkQ2FjaGU6OnJlbW92ZUVudHJpZXNGb3JQYWdlKFdlYlBhZ2VQcm94eSYgcGFnZSkK
IHsKICAgICByZW1vdmVFbnRyaWVzTWF0Y2hpbmcoW3BhZ2VJRCA9IHBhZ2UuaWRlbnRpZmllcigp
XShhdXRvJiBpdGVtKSB7CkBAIC0xMDIsMTQgKzExMCwxMSBAQCB2b2lkIFdlYkJhY2tGb3J3YXJk
Q2FjaGU6OnJlbW92ZUVudHJpZXNNYXRjaGluZyhjb25zdCBGdW5jdGlvbjxib29sKFdlYkJhY2tG
b3J3YQogICAgIH0KIH0KIAotdm9pZCBXZWJCYWNrRm9yd2FyZENhY2hlOjpjbGVhcihBbGxvd1By
b2Nlc3NDYWNoaW5nIGFsbG93UHJvY2Vzc0NhY2hpbmcpCit2b2lkIFdlYkJhY2tGb3J3YXJkQ2Fj
aGU6OmNsZWFyKCkKIHsKICAgICBhdXRvIGl0ZW1zV2l0aENhY2hlZFBhZ2UgPSBXVEZNb3ZlKG1f
aXRlbXNXaXRoQ2FjaGVkUGFnZSk7Ci0gICAgZm9yIChhdXRvKiBpdGVtIDogaXRlbXNXaXRoQ2Fj
aGVkUGFnZSkgewotICAgICAgICBhdXRvIHByb2Nlc3MgPSBtYWtlUmVmKGl0ZW0tPnN1c3BlbmRl
ZFBhZ2UoKS0+cHJvY2VzcygpKTsKKyAgICBmb3IgKGF1dG8qIGl0ZW0gOiBpdGVtc1dpdGhDYWNo
ZWRQYWdlKQogICAgICAgICBpdGVtLT5zZXRTdXNwZW5kZWRQYWdlKG51bGxwdHIpOwotICAgICAg
ICBwcm9jZXNzLT5tYXliZVNodXREb3duKGFsbG93UHJvY2Vzc0NhY2hpbmcpOwotICAgIH0KIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQmFja0ZvcndhcmRDYWNoZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QmFja0ZvcndhcmRDYWNoZS5oCmluZGV4IDZlMDJhYjE3NzJmY2QyODQ1NzFlY2UyNjlkOTAwOTI3
MjFmY2ZkZDEuLjRkZjE5YWQ0YWU3MjcwOGJmMDAxZTUzZmRmMjcxNmQ0M2FmYjgxZTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkQ2FjaGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZENhY2hlLmgKQEAgLTI1LDYg
KzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KIApA
QCAtMzQsNyArMzUsNiBAQCBjbGFzcyBTdXNwZW5kZWRQYWdlUHJveHk7CiBjbGFzcyBXZWJCYWNr
Rm9yd2FyZExpc3RJdGVtOwogY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUHJvY2Vzc1By
b3h5OwotZW51bSBjbGFzcyBBbGxvd1Byb2Nlc3NDYWNoaW5nOwogCiBjbGFzcyBXZWJCYWNrRm9y
d2FyZENhY2hlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTQ2LDkgKzQ2LDEw
IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBjYXBhY2l0eSgpIGNvbnN0IHsgcmV0dXJuIG1fY2Fw
YWNpdHk7IH0KICAgICB1bnNpZ25lZCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9pdGVtc1dpdGhD
YWNoZWRQYWdlLnNpemUoKTsgfQogCi0gICAgdm9pZCBjbGVhcihBbGxvd1Byb2Nlc3NDYWNoaW5n
KTsKKyAgICB2b2lkIGNsZWFyKCk7CiAgICAgdm9pZCByZW1vdmVFbnRyaWVzRm9yUHJvY2VzcyhX
ZWJQcm9jZXNzUHJveHkmKTsKICAgICB2b2lkIHJlbW92ZUVudHJpZXNGb3JQYWdlKFdlYlBhZ2VQ
cm94eSYpOworICAgIHZvaWQgcmVtb3ZlRW50cmllc0ZvclNlc3Npb24oUEFMOjpTZXNzaW9uSUQp
OwogCiAgICAgdm9pZCBhZGRFbnRyeShXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiwgc3RkOjp1bmlx
dWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4mJik7CiAgICAgdm9pZCByZW1vdmVFbnRyeShXZWJC
YWNrRm9yd2FyZExpc3RJdGVtJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAppbmRleCBlMjUxYjM2ZjdjM2QwZTVjMjUyNTk5OWViNDU4ZTRkZTdkOGY3NTRkLi4wMTg3
NmM2MDFmMGEyODZiNGVmOTY0ZWU1YmJkZjIyM2M4ZWU5Y2U5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTI5NTQsNiArMjk1NCw5IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpyZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gcG9s
aWN5QWN0aW9uLCBBCiAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NT
d2FwcGluZywgImRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246IGtlZXAgdXNpbmcgcHJv
Y2VzcyAlaSBmb3IgbmF2aWdhdGlvbiwgcmVhc29uOiAle3B1YmxpY31zIiwgcHJvY2Vzc0lkZW50
aWZpZXIoKSwgcmVhc29uLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgICAgIGlmIChzaG91bGRQcm9j
ZXNzU3dhcCkgeworICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBwcm9jZXNzIHRvIGJlIHVz
ZWQgZm9yIHRoZSBuYXZpZ2F0aW9uIGRvZXMgbm90IGdldCBzaHV0RG93biBub3cgZHVlIHRvIGRl
c3Ryb3lpbmcgU3VzcGVuZGVkUGFnZVByb3h5IG9yIFByb3Zpc2lvbmFsUGFnZVByb3h5IG9iamVj
dHMuCisgICAgICAgICAgICBhdXRvIHByZXZlbnROYXZpZ2F0aW9uUHJvY2Vzc1NodXRkb3duID0g
cHJvY2Vzc0Zvck5hdmlnYXRpb24tPm1ha2VTY29wZVByZXZlbnRpbmdTaHV0ZG93bigpOworCiAg
ICAgICAgICAgICBhdXRvIHN1c3BlbmRlZFBhZ2UgPSBkZXN0aW5hdGlvblN1c3BlbmRlZFBhZ2Ug
PyBiYWNrRm9yd2FyZENhY2hlKCkudGFrZUVudHJ5KCpkZXN0aW5hdGlvblN1c3BlbmRlZFBhZ2Ut
PmJhY2tGb3J3YXJkTGlzdEl0ZW0oKSkgOiBudWxscHRyOwogICAgICAgICAgICAgaWYgKHN1c3Bl
bmRlZFBhZ2UgJiYgc3VzcGVuZGVkUGFnZS0+cGFnZUlzQ2xvc2VkT3JDbG9zaW5nKCkpCiAgICAg
ICAgICAgICAgICAgc3VzcGVuZGVkUGFnZSA9IG51bGxwdHI7CkBAIC0zMDM1LDEwICszMDM4LDEx
IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb21taXRQcm92aXNpb25hbFBhZ2UoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnCiAgICAgbV9wcm92aXNpb25hbFBhZ2UgPSBudWxs
cHRyOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9j
ZXNzKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRl
ZFBhZ2VQcm94eT4mJiBzdXNwZW5kZWRQYWdlUHJveHksIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYg
bmV3UHJvY2VzcywgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVl
c3RlZEJ5Q2xpZW50LCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xp
Y2llcykKK3ZvaWQgV2ViUGFnZVByb3h5Ojpjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3Mo
QVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFn
ZVByb3h5PiYmIHN1c3BlbmRlZFBhZ2UsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgbmV3UHJvY2Vz
cywgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xp
ZW50LCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcykKIHsK
LSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJjb250aW51ZU5hdmlnYXRpb25J
bk5ld1Byb2Nlc3M6IG5ld1Byb2Nlc3NQSUQgPSAlaSwgaGFzU3VzcGVuZGVkUGFnZSA9ICVpIiwg
bmV3UHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgISFzdXNwZW5kZWRQYWdlUHJveHkpOwor
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImNvbnRpbnVlTmF2aWdhdGlvbklu
TmV3UHJvY2VzczogbmV3UHJvY2Vzc1BJRCA9ICVpLCBoYXNTdXNwZW5kZWRQYWdlID0gJWkiLCBu
ZXdQcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCAhIXN1c3BlbmRlZFBhZ2UpOwogICAgIExP
RyhMb2FkaW5nLCAiQ29udGludWluZyBuYXZpZ2F0aW9uICUiIFBSSXU2NCAiICclcycgaW4gYSBu
ZXcgd2ViIHByb2Nlc3MiLCBuYXZpZ2F0aW9uLm5hdmlnYXRpb25JRCgpLCBuYXZpZ2F0aW9uLmxv
Z2dpbmdTdHJpbmcoKSk7CisgICAgUkVMRUFTRV9BU1NFUlQoIW5ld1Byb2Nlc3MtPmlzSW5Qcm9j
ZXNzQ2FjaGUoKSk7CiAKICAgICBpZiAobV9wcm92aXNpb25hbFBhZ2UpIHsKICAgICAgICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJjb250aW51ZU5hdmlnYXRpb25J
bk5ld1Byb2Nlc3M6IFRoZXJlIGlzIGFscmVhZHkgYSBwZW5kaW5nIHByb3Zpc2lvbmFsIGxvYWQs
IGNhbmNlbGxpbmcgaXQgKHByb3Zpc29uYWxOYXZpZ2F0aW9uSUQ6ICVsbHUsIG5hdmlnYXRpb25J
RDogJWxsdSkiLCBtX3Byb3Zpc2lvbmFsUGFnZS0+bmF2aWdhdGlvbklEKCksIG5hdmlnYXRpb24u
bmF2aWdhdGlvbklEKCkpOwpAQCAtMzA0Nyw3ICszMDUxLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRp
b24sIHMKICAgICAgICAgbV9wcm92aXNpb25hbFBhZ2UgPSBudWxscHRyOwogICAgIH0KIAotICAg
IG1fcHJvdmlzaW9uYWxQYWdlID0gbWFrZVVuaXF1ZTxQcm92aXNpb25hbFBhZ2VQcm94eT4oKnRo
aXMsIG5ld1Byb2Nlc3MuY29weVJlZigpLCBXVEZNb3ZlKHN1c3BlbmRlZFBhZ2VQcm94eSksIG5h
dmlnYXRpb24ubmF2aWdhdGlvbklEKCksIG5hdmlnYXRpb24uY3VycmVudFJlcXVlc3RJc1JlZGly
ZWN0KCksIG5hdmlnYXRpb24uY3VycmVudFJlcXVlc3QoKSwgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRC
eUNsaWVudCk7CisgICAgbV9wcm92aXNpb25hbFBhZ2UgPSBtYWtlVW5pcXVlPFByb3Zpc2lvbmFs
UGFnZVByb3h5PigqdGhpcywgbmV3UHJvY2Vzcy5jb3B5UmVmKCksIFdURk1vdmUoc3VzcGVuZGVk
UGFnZSksIG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCksIG5hdmlnYXRpb24uY3VycmVudFJlcXVl
c3RJc1JlZGlyZWN0KCksIG5hdmlnYXRpb24uY3VycmVudFJlcXVlc3QoKSwgcHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudCk7CiAKICAgICBpZiAoYXV0byogaXRlbSA9IG5hdmlnYXRpb24udGFy
Z2V0SXRlbSgpKSB7CiAgICAgICAgIExPRyhMb2FkaW5nLCAiV2ViUGFnZVByb3h5ICVwIGNvbnRp
bnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyB0byBiYWNrIGl0ZW0gVVJMICVzIiwgdGhpcywgaXRl
bS0+dXJsKCkudXRmOCgpLmRhdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHAKaW5kZXggODQwOGE2ZTc3MzZmN2JjYmM0OTNlZGQ1M2M0ZjkxZDY1OTMwMTI1
Yi4uYjcyZDNkNGEwNzQ0NzY2MmQyNmEzY2VhMzdjM2MzMmNlNzA5Mzg1YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMTM4Niw4ICsxMzg2LDkgQEAg
dm9pZCBXZWJQcm9jZXNzUG9vbDo6aGFuZGxlTWVtb3J5UHJlc3N1cmVXYXJuaW5nKENyaXRpY2Fs
KQogewogICAgIFJFTEVBU0VfTE9HKFBlcmZvcm1hbmNlTG9nZ2luZywgIiVwIC0gV2ViUHJvY2Vz
c1Bvb2w6OmhhbmRsZU1lbW9yeVByZXNzdXJlV2FybmluZyIsIHRoaXMpOwogCi0KLSAgICBtX2Jh
Y2tGb3J3YXJkQ2FjaGUtPmNsZWFyKEFsbG93UHJvY2Vzc0NhY2hpbmc6Ok5vKTsKKyAgICAvLyBD
bGVhciBiYWNrL2ZvcndhcmQgY2FjaGUgZmlyc3QgYXMgcHJvY2Vzc2VzIHJlbW92ZWQgZnJvbSB0
aGUgYmFjay9mb3J3YXJkIGNhY2hlIHdpbGwgbGlrZWx5CisgICAgLy8gYmUgYWRkZWQgdG8gdGhl
IFdlYlByb2Nlc3MgY2FjaGUuCisgICAgbV9iYWNrRm9yd2FyZENhY2hlLT5jbGVhcigpOwogICAg
IG1fd2ViUHJvY2Vzc0NhY2hlLT5jbGVhcigpOwogCiAgICAgaWYgKG1fcHJld2FybWVkUHJvY2Vz
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDc0
OTUyNWE4OWIzZDQxNTBlZjBjZDI0ODk1ZTc1MDUzMTQ0OTk5ZGYuLjk5NjBhY2YwOGQzYTk3NmM5
NDg0NTc3ZWQ2NjViYjFiODY5MTY2MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcApAQCAtMjQ4LDYgKzI0OCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5
Ojp1cGRhdGVSZWdpc3RyYXRpb25XaXRoRGF0YVN0b3JlKCkKIAogdm9pZCBXZWJQcm9jZXNzUHJv
eHk6OmFkZFByb3Zpc2lvbmFsUGFnZVByb3h5KFByb3Zpc2lvbmFsUGFnZVByb3h5JiBwcm92aXNp
b25hbFBhZ2UpCiB7CisgICAgQVNTRVJUKCFtX2lzSW5Qcm9jZXNzQ2FjaGUpOwogICAgIEFTU0VS
VCghbV9wcm92aXNpb25hbFBhZ2VzLmNvbnRhaW5zKCZwcm92aXNpb25hbFBhZ2UpKTsKICAgICBt
X3Byb3Zpc2lvbmFsUGFnZXMuYWRkKCZwcm92aXNpb25hbFBhZ2UpOwogICAgIHVwZGF0ZVJlZ2lz
dHJhdGlvbldpdGhEYXRhU3RvcmUoKTsKQEAgLTI1OCw2ICsyNTksOCBAQCB2b2lkIFdlYlByb2Nl
c3NQcm94eTo6cmVtb3ZlUHJvdmlzaW9uYWxQYWdlUHJveHkoUHJvdmlzaW9uYWxQYWdlUHJveHkm
IHByb3Zpc2lvbgogICAgIEFTU0VSVChtX3Byb3Zpc2lvbmFsUGFnZXMuY29udGFpbnMoJnByb3Zp
c2lvbmFsUGFnZSkpOwogICAgIG1fcHJvdmlzaW9uYWxQYWdlcy5yZW1vdmUoJnByb3Zpc2lvbmFs
UGFnZSk7CiAgICAgdXBkYXRlUmVnaXN0cmF0aW9uV2l0aERhdGFTdG9yZSgpOworICAgIGlmICht
X3Byb3Zpc2lvbmFsUGFnZXMuaXNFbXB0eSgpKQorICAgICAgICBtYXliZVNodXREb3duKCk7CiB9
CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hl
cjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW9ucykKQEAgLTkzNyw3ICs5NDAsNyBAQCBib29s
IFdlYlByb2Nlc3NQcm94eTo6Y2FuQmVBZGRlZFRvV2ViUHJvY2Vzc0NhY2hlKCkgY29uc3QKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6Om1heWJlU2h1dERvd24o
QWxsb3dQcm9jZXNzQ2FjaGluZyBhbGxvd1Byb2Nlc3NDYWNoaW5nKQordm9pZCBXZWJQcm9jZXNz
UHJveHk6Om1heWJlU2h1dERvd24oKQogewogICAgIGlmIChwcm9jZXNzUG9vbCgpLmR1bW15UHJv
Y2Vzc1Byb3h5KCkgPT0gdGhpcyAmJiBtX3BhZ2VNYXAuaXNFbXB0eSgpKSB7CiAgICAgICAgIEFT
U0VSVChzdGF0ZSgpID09IFN0YXRlOjpUZXJtaW5hdGVkKTsKQEAgLTk0OCw3ICs5NTEsNyBAQCB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6bWF5YmVTaHV0RG93bihBbGxvd1Byb2Nlc3NDYWNoaW5nIGFs
bG93UHJvY2Vzc0NhY2hpbmcpCiAgICAgaWYgKHN0YXRlKCkgPT0gU3RhdGU6OlRlcm1pbmF0ZWQg
fHwgIWNhblRlcm1pbmF0ZUF1eGlsaWFyeVByb2Nlc3MoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgaWYgKGFsbG93UHJvY2Vzc0NhY2hpbmcgPT0gQWxsb3dQcm9jZXNzQ2FjaGluZzo6WWVzICYm
IGNhbkJlQWRkZWRUb1dlYlByb2Nlc3NDYWNoZSgpICYmIHByb2Nlc3NQb29sKCkud2ViUHJvY2Vz
c0NhY2hlKCkuYWRkUHJvY2Vzc0lmUG9zc2libGUoKnRoaXMpKQorICAgIGlmIChjYW5CZUFkZGVk
VG9XZWJQcm9jZXNzQ2FjaGUoKSAmJiBwcm9jZXNzUG9vbCgpLndlYlByb2Nlc3NDYWNoZSgpLmFk
ZFByb2Nlc3NJZlBvc3NpYmxlKCp0aGlzKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgc2h1dERv
d24oKTsKQEAgLTk1Niw3ICs5NTksNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6bWF5YmVTaHV0
RG93bihBbGxvd1Byb2Nlc3NDYWNoaW5nIGFsbG93UHJvY2Vzc0NhY2hpbmcpCiAKIGJvb2wgV2Vi
UHJvY2Vzc1Byb3h5OjpjYW5UZXJtaW5hdGVBdXhpbGlhcnlQcm9jZXNzKCkKIHsKLSAgICBpZiAo
IW1fcGFnZU1hcC5pc0VtcHR5KCkgfHwgbV9zdXNwZW5kZWRQYWdlQ291bnQgfHwgIW1fcHJvdmlz
aW9uYWxQYWdlcy5pc0VtcHR5KCkgfHwgbV9pc0luUHJvY2Vzc0NhY2hlKQorICAgIGlmICghbV9w
YWdlTWFwLmlzRW1wdHkoKSB8fCBtX3N1c3BlbmRlZFBhZ2VDb3VudCB8fCAhbV9wcm92aXNpb25h
bFBhZ2VzLmlzRW1wdHkoKSB8fCBtX2lzSW5Qcm9jZXNzQ2FjaGUgfHwgbV9zaHV0ZG93blByZXZl
bnRpbmdTY29wZUNvdW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIW1fcHJv
Y2Vzc1Bvb2wtPnNob3VsZFRlcm1pbmF0ZSh0aGlzKSkKQEAgLTE0ODMsOCArMTQ4NiwxMCBAQCB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGVjcmVtZW50U3VzcGVuZGVkUGFnZUNvdW50KCkKIHsKICAg
ICBBU1NFUlQobV9zdXNwZW5kZWRQYWdlQ291bnQpOwogICAgIC0tbV9zdXNwZW5kZWRQYWdlQ291
bnQ7Ci0gICAgaWYgKCFtX3N1c3BlbmRlZFBhZ2VDb3VudCkKKyAgICBpZiAoIW1fc3VzcGVuZGVk
UGFnZUNvdW50KSB7CiAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldEhhc1N1
c3BlbmRlZFBhZ2VQcm94eShmYWxzZSksIDApOworICAgICAgICBtYXliZVNodXREb3duKCk7Cisg
ICAgfQogfQogCiBXZWJQcm9jZXNzUG9vbCogV2ViUHJvY2Vzc1Byb3h5Ojpwcm9jZXNzUG9vbElm
RXhpc3RzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgK
aW5kZXggNWIwNTIxODk0YjIxOThlYmNlZGViYWU2M2Y2NzUzNTY1NjE0YjczMi4uODMyMzQ5YTk5
ZjAwMWY3NDRiNWM2ZWM4MGM2ZmRkMzFkYTczMTEzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTk0LDggKzk0LDYgQEAgdHlwZWRlZiBSZWZDb3VudGVy
PEJhY2tncm91bmRXZWJQcm9jZXNzQ291bnRlclR5cGU+IEJhY2tncm91bmRXZWJQcm9jZXNzQ291
bnRlcjsKIHR5cGVkZWYgQmFja2dyb3VuZFdlYlByb2Nlc3NDb3VudGVyOjpUb2tlbiBCYWNrZ3Jv
dW5kV2ViUHJvY2Vzc1Rva2VuOwogI2VuZGlmCiAKLWVudW0gY2xhc3MgQWxsb3dQcm9jZXNzQ2Fj
aGluZyB7IE5vLCBZZXMgfTsKLQogY2xhc3MgV2ViUHJvY2Vzc1Byb3h5IDogcHVibGljIEF1eGls
aWFyeVByb2Nlc3NQcm94eSwgcHVibGljIFJlc3BvbnNpdmVuZXNzVGltZXI6OkNsaWVudCwgcHVi
bGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdlYlByb2Nlc3NQcm94eT4sIHB1YmxpYyBDYW5NYWtl
V2Vha1B0cjxXZWJQcm9jZXNzUHJveHk+LCBwcml2YXRlIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQg
ewogcHVibGljOgogICAgIHR5cGVkZWYgSGFzaE1hcDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IFJlZlB0cjxXZWJGcmFtZVByb3h5Pj4gV2ViRnJhbWVQcm94eU1hcDsKQEAgLTI3Miw3ICsyNzAs
MjcgQEAgcHVibGljOgogICAgIC8vIENhbGxlZCB3aGVuIHRoZSB3ZWIgcHJvY2VzcyBoYXMgY3Jh
c2hlZCBvciB3ZSBrbm93IHRoYXQgaXQgd2lsbCB0ZXJtaW5hdGUgc29vbi4KICAgICAvLyBXaWxs
IHBvdGVudGlhbGx5IGNhdXNlIHRoZSBXZWJQcm9jZXNzUHJveHkgb2JqZWN0IHRvIGJlIGZyZWVk
LgogICAgIHZvaWQgc2h1dERvd24oKTsKLSAgICB2b2lkIG1heWJlU2h1dERvd24oQWxsb3dQcm9j
ZXNzQ2FjaGluZyA9IEFsbG93UHJvY2Vzc0NhY2hpbmc6Olllcyk7CisKKyAgICBjbGFzcyBTY29w
ZVByZXZlbnRpbmdTaHV0ZG93biB7CisgICAgcHVibGljOgorICAgICAgICBleHBsaWNpdCBTY29w
ZVByZXZlbnRpbmdTaHV0ZG93bihXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCisgICAgICAgICAg
ICA6IG1fcHJvY2Vzcyhwcm9jZXNzKQorICAgICAgICB7CisgICAgICAgICAgICArKyhtX3Byb2Nl
c3MtPm1fc2h1dGRvd25QcmV2ZW50aW5nU2NvcGVDb3VudCk7CisgICAgICAgIH0KKworICAgICAg
ICB+U2NvcGVQcmV2ZW50aW5nU2h1dGRvd24oKQorICAgICAgICB7CisgICAgICAgICAgICBBU1NF
UlQobV9wcm9jZXNzLT5tX3NodXRkb3duUHJldmVudGluZ1Njb3BlQ291bnQpOworICAgICAgICAg
ICAgaWYgKCEtLShtX3Byb2Nlc3MtPm1fc2h1dGRvd25QcmV2ZW50aW5nU2NvcGVDb3VudCkpCisg
ICAgICAgICAgICAgICAgbV9wcm9jZXNzLT5tYXliZVNodXREb3duKCk7CisgICAgICAgIH0KKwor
ICAgIHByaXZhdGU6CisgICAgICAgIFJlZjxXZWJQcm9jZXNzUHJveHk+IG1fcHJvY2VzczsKKyAg
ICB9OworCisgICAgU2NvcGVQcmV2ZW50aW5nU2h1dGRvd24gbWFrZVNjb3BlUHJldmVudGluZ1No
dXRkb3duKCkgeyByZXR1cm4gU2NvcGVQcmV2ZW50aW5nU2h1dGRvd24geyAqdGhpcyB9OyB9CiAK
ICAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1lKGNvbnN0IFVSTCYp
OwogCkBAIC00MDQsNiArNDIyLDggQEAgcHJpdmF0ZToKICAgICAKICAgICB2b2lkIHVwZGF0ZVJl
Z2lzdHJhdGlvbldpdGhEYXRhU3RvcmUoKTsKIAorICAgIHZvaWQgbWF5YmVTaHV0RG93bigpOwor
CiAgICAgZW51bSBjbGFzcyBJc1dlYWsgeyBObywgWWVzIH07CiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVD4gY2xhc3MgV2Vha09yU3Ryb25nUHRyIHsKICAgICBwdWJsaWM6CkBAIC00ODIsNiArNTAy
LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgdW5zaWduZWQgbV9zdXNwZW5kZWRQYWdlQ291
bnQgeyAwIH07CisgICAgdW5zaWduZWQgbV9zaHV0ZG93blByZXZlbnRpbmdTY29wZUNvdW50IHsg
MCB9OwogICAgIGJvb2wgbV9oYXNDb21taXR0ZWRBbnlQcm92aXNpb25hbExvYWRzIHsgZmFsc2Ug
fTsKICAgICBib29sIG1faXNQcmV3YXJtZWQ7CiAgICAgYm9vbCBtX2hhc0F1ZGlibGVXZWJQYWdl
IHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggMmEyM2IyYWNlY2FhM2RiYzNjNWEyZDM0
MGE4ZmY3MzMyY2NlZmIyMC4uODM3NTFlOTM0NWNmYTdiZmYzYTVhNzQ1ZWE4OGYyMDBmOWZiOTg3
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTcyNiw4ICs3MjYsMTAgQEAgdm9pZCBXZWJzaXRlRGF0
YVN0b3JlOjpyZW1vdmVEYXRhKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywg
V2FsbFRpbWUKICAgICBhdXRvIHdlYlByb2Nlc3NBY2Nlc3NUeXBlID0gY29tcHV0ZVdlYlByb2Nl
c3NBY2Nlc3NUeXBlRm9yRGF0YVJlbW92YWwoZGF0YVR5cGVzLCAhaXNQZXJzaXN0ZW50KCkpOwog
ICAgIGlmICh3ZWJQcm9jZXNzQWNjZXNzVHlwZSAhPSBQcm9jZXNzQWNjZXNzVHlwZTo6Tm9uZSkg
ewogICAgICAgICBmb3IgKGF1dG8mIHByb2Nlc3NQb29sIDogcHJvY2Vzc1Bvb2xzKCkpIHsKLSAg
ICAgICAgICAgIHByb2Nlc3NQb29sLT5iYWNrRm9yd2FyZENhY2hlKCkuY2xlYXIoQWxsb3dQcm9j
ZXNzQ2FjaGluZzo6Tm8pOwotICAgICAgICAgICAgcHJvY2Vzc1Bvb2wtPndlYlByb2Nlc3NDYWNo
ZSgpLmNsZWFyKCk7CisgICAgICAgICAgICAvLyBDbGVhciBiYWNrL2ZvcndhcmQgY2FjaGUgZmly
c3QgYXMgcHJvY2Vzc2VzIHJlbW92ZWQgZnJvbSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlIHdpbGwg
bGlrZWx5CisgICAgICAgICAgICAvLyBiZSBhZGRlZCB0byB0aGUgV2ViUHJvY2VzcyBjYWNoZS4K
KyAgICAgICAgICAgIHByb2Nlc3NQb29sLT5iYWNrRm9yd2FyZENhY2hlKCkucmVtb3ZlRW50cmll
c0ZvclNlc3Npb24oc2Vzc2lvbklEKCkpOworICAgICAgICAgICAgcHJvY2Vzc1Bvb2wtPndlYlBy
b2Nlc3NDYWNoZSgpLmNsZWFyQWxsUHJvY2Vzc2VzRm9yU2Vzc2lvbihzZXNzaW9uSUQoKSk7CiAg
ICAgICAgIH0KIAogICAgICAgICBmb3IgKGF1dG8mIHByb2Nlc3MgOiBwcm9jZXNzZXMoKSkgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>