<?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>194926</bug_id>
          
          <creation_ts>2019-02-21 17:44:13 -0800</creation_ts>
          <short_desc>NetworkSession should own NetworkStorageSession</short_desc>
          <delta_ts>2019-04-17 11:15:40 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1508788</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-02-21 17:44:13 -0800</bug_when>
    <thetext>NetworkSession should own NetworkStorageSession</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508790</commentid>
    <comment_count>1</comment_count>
      <attachid>362677</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-02-21 17:47:03 -0800</bug_when>
    <thetext>Created attachment 362677
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508791</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-02-21 17:47:05 -0800</bug_when>
    <thetext>&lt;rdar://problem/47580502&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362677</attachid>
            <date>2019-02-21 17:47:03 -0800</date>
            <delta_ts>2019-04-17 11:15:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194926-20190221174702.patch</filename>
            <type>text/plain</type>
            <size>29495</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDE5MjQpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYwIEBACisyMDE5LTAyLTIxICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTmV0d29ya1Nlc3Np
b24gc2hvdWxkIG93biBOZXR3b3JrU3RvcmFnZVNlc3Npb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDkyNgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNDc1ODA1MDI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW5zdGVhZCBvZiBrZWVwaW5nIHR3byBtYXBzIHdpdGggdGhlIHNhbWUga2V5cyB0aGF0
IGFyZSBzdXBwb3NlZCB0byBzdGF5IHN5bmNocm9uaXplZCBidXQgZG9uJ3QgYWx3YXlzLgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6c3dpdGNoVG9OZXdUZXN0aW5nU2Vzc2lvbik6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzdG9yYWdlU2Vzc2lvbiBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24gY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Zm9yRWFjaE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkZXN0cm95U2Vzc2lvbik6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjplbnN1cmVTZXNzaW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
OjpkZWNvZGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24u
Y3BwOgorICAgICAgICAoV2ViS2l0OjpjcmVhdGVOZXR3b3JrU3RvcmFnZVNlc3Npb24pOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24pOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtTZXNzaW9uOjpzZXROZXdUZXN0aW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtTZXNzaW9uOjpuZXR3b3JrU3RvcmFnZVNlc3Npb24pOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OnByaXZhdGVTZXNzaW9uUGFyYW1l
dGVycyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJz
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNyZWF0aW9u
UGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzc0NvY29hKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtQ3JlYXRlRGVmYXVsdFN0b3JhZ2VTZXNzaW9uIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vz
c2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjptYWluQnVuZGxlSWRlbnRpZmllcik6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9uQ29jb2Ep
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya1Nlc3Npb25DdXJsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DdXJsOjpOZXR3b3JrU2Vzc2lvbkN1cmwp
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5t
bToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVdlYnNp
dGVEYXRhU3RvcmVTZXNzaW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdv
cmtQcm9jZXNzU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0
Zm9ybUNyZWF0ZURlZmF1bHRTdG9yYWdlU2Vzc2lvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrU2Vzc2lvblNvdXA6Ok5ldHdvcmtTZXNzaW9uU291cCk6CisgICAgICAg
ICogU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6cHJpdmF0ZVNlc3Npb25QYXJhbWV0ZXJz
KToKKyAgICAgICAgKiBTaGFyZWQvV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNv
Y29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKToK
KwogMjAxOS0wMi0yMSAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAg
ICAgICAgIFtNU1ZDXSBGaXggY29tcGlsYXRpb24gZXJyb3JzIHdpdGggbGFtYmRhcyBpbiBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcAkocmV2aXNpb24gMjQxOTAzKQorKysgU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2
MSw2ICs0NjEsOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjphZGRXZWJzaXRlRGF0YVN0b3JlCiAK
IHZvaWQgTmV0d29ya1Byb2Nlc3M6OnN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb24oKQogeworICAg
IGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gbV9uZXR3b3JrU2Vzc2lvbnMuZ2V0KFBBTDo6U2Vzc2lv
bklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOworCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgLy8g
U2Vzc2lvbiBuYW1lIHNob3VsZCBiZSBzaG9ydCBlbm91Z2ggZm9yIHNoYXJlZCBtZW1vcnkgcmVn
aW9uIG5hbWUgdG8gYmUgdW5kZXIgdGhlIGxpbWl0LCBvdGhlcndpc2Ugc2FuZGJveCBydWxlcyB3
b24ndCB3b3JrIChzZWUgPHJkYXI6Ly9wcm9ibGVtLzEzNjQyODUyPikuCiAgICAgU3RyaW5nIHNl
c3Npb25OYW1lID0gbWFrZVN0cmluZygiV2ViS2l0IFRlc3QtIiwgZ2V0Q3VycmVudFByb2Nlc3NJ
RCgpKTsKQEAgLTQ3NCw2NyArNDc2LDMzIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnN3aXRjaFRv
TmV3VGVzdGluZ1MKICAgICAgICAgICAgIGNvb2tpZVN0b3JhZ2UgPSBhZG9wdENGKF9DRlVSTFN0
b3JhZ2VTZXNzaW9uQ29weUNvb2tpZVN0b3JhZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgc2Vzc2lv
bi5nZXQoKSkpOwogICAgIH0KIAotICAgIG1fZGVmYXVsdE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9
IHN0ZDo6bWFrZV91bmlxdWU8V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihQQUw6OlNl
c3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBXVEZNb3ZlKHNlc3Npb24pLCBXVEZNb3ZlKGNv
b2tpZVN0b3JhZ2UpKTsKLSNlbGlmIFVTRShTT1VQKQotICAgIG1fZGVmYXVsdE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNz
aW9uPihQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBzdGQ6Om1ha2VfdW5pcXVl
PFdlYkNvcmU6OlNvdXBOZXR3b3JrU2Vzc2lvbj4oKSk7Ci0jZWxpZiBVU0UoQ1VSTCkKLSAgICBt
X2RlZmF1bHROZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4oUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQo
KSk7Ci0jZW5kaWYKLX0KLQotI2lmIFBMQVRGT1JNKENPQ09BKQotdm9pZCBOZXR3b3JrUHJvY2Vz
czo6ZW5zdXJlU2Vzc2lvbihjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklELCBjb25zdCBT
dHJpbmcmIGlkZW50aWZpZXJCYXNlLCBSZXRhaW5QdHI8Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4m
JiBjb29raWVTdG9yYWdlKQotI2Vsc2UKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmVuc3VyZVNlc3Np
b24oY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBpZGVudGlm
aWVyQmFzZSkKLSNlbmRpZgotewotICAgIEFTU0VSVChzZXNzaW9uSUQgIT0gUEFMOjpTZXNzaW9u
SUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7Ci0KLSAgICBhdXRvIGFkZFJlc3VsdCA9IG1fbmV0d29y
a1N0b3JhZ2VTZXNzaW9ucy5hZGQoc2Vzc2lvbklELCBudWxscHRyKTsKLSAgICBpZiAoIWFkZFJl
c3VsdC5pc05ld0VudHJ5KQotICAgICAgICByZXR1cm47Ci0KLSNpZiBQTEFURk9STShDT0NPQSkK
LSAgICBSZXRhaW5QdHI8Q0ZVUkxTdG9yYWdlU2Vzc2lvblJlZj4gc3RvcmFnZVNlc3Npb247Ci0g
ICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBjZklkZW50aWZpZXIgPSBTdHJpbmcoaWRlbnRpZmll
ckJhc2UgKyAiLlByaXZhdGVCcm93c2luZyIpLmNyZWF0ZUNGU3RyaW5nKCk7Ci0gICAgaWYgKHNl
c3Npb25JRC5pc0VwaGVtZXJhbCgpKQotICAgICAgICBzdG9yYWdlU2Vzc2lvbiA9IGFkb3B0Q0Yo
Y3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKGNmSWRlbnRpZmllci5nZXQoKSkpOwotICAgIGVs
c2UKLSAgICAgICAgc3RvcmFnZVNlc3Npb24gPSBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b246OmNyZWF0ZUNGU3RvcmFnZVNlc3Npb25Gb3JJZGVudGlmaWVyKGNmSWRlbnRpZmllci5nZXQo
KSk7Ci0KLSAgICBpZiAoTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpwcm9jZXNzTWF5VXNlQ29va2ll
QVBJKCkpIHsKLSAgICAgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZp
bGVnZTo6Q2FuQWNjZXNzUmF3Q29va2llcykpOwotICAgICAgICBpZiAoIWNvb2tpZVN0b3JhZ2Ug
JiYgc3RvcmFnZVNlc3Npb24pCi0gICAgICAgICAgICBjb29raWVTdG9yYWdlID0gYWRvcHRDRihf
Q0ZVUkxTdG9yYWdlU2Vzc2lvbkNvcHlDb29raWVTdG9yYWdlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IHN0b3JhZ2VTZXNzaW9uLmdldCgpKSk7Ci0gICAgfQotCi0gICAgYWRkUmVzdWx0Lml0ZXJhdG9y
LT52YWx1ZSA9IHN0ZDo6bWFrZV91bmlxdWU8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihzZXNzaW9u
SUQsIFdURk1vdmUoc3RvcmFnZVNlc3Npb24pLCBXVEZNb3ZlKGNvb2tpZVN0b3JhZ2UpKTsKKyAg
ICBhdXRvIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6TmV0
d29ya1N0b3JhZ2VTZXNzaW9uPihQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBX
VEZNb3ZlKHNlc3Npb24pLCBXVEZNb3ZlKGNvb2tpZVN0b3JhZ2UpKTsKICNlbGlmIFVTRShTT1VQ
KQotICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBzdGQ6Om1ha2VfdW5pcXVlPE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbj4oc2Vzc2lvbklELCBzdGQ6Om1ha2VfdW5pcXVlPFNvdXBOZXR3b3Jr
U2Vzc2lvbj4oc2Vzc2lvbklEKSk7CisgICAgYXV0byBuZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBt
YWtlVW5pcXVlUmVmPFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4oUEFMOjpTZXNzaW9u
SUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgc3RkOjptYWtlX3VuaXF1ZTxXZWJDb3JlOjpTb3VwTmV0
d29ya1Nlc3Npb24+KCkpOwogI2VsaWYgVVNFKENVUkwpCi0gICAgYWRkUmVzdWx0Lml0ZXJhdG9y
LT52YWx1ZSA9IHN0ZDo6bWFrZV91bmlxdWU8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihzZXNzaW9u
SUQpOworICAgIGF1dG8gbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gbWFrZVVuaXF1ZVJlZjxXZWJD
b3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24+KFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lv
bklEKCkpOwogI2VuZGlmCisgICAgbmV0d29ya1Nlc3Npb24tPnNldE5ld1Rlc3RpbmdTZXNzaW9u
KFdURk1vdmUobmV0d29ya1N0b3JhZ2VTZXNzaW9uKSk7CiB9CiAKIFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiogTmV0d29ya1Byb2Nlc3M6OnN0b3JhZ2VTZXNzaW9uKGNvbnN0IFBBTDo6
U2Vzc2lvbklEJiBzZXNzaW9uSUQpIGNvbnN0CiB7Ci0gICAgaWYgKHNlc3Npb25JRCA9PSBQQUw6
OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKQotICAgICAgICByZXR1cm4gJmRlZmF1bHRT
dG9yYWdlU2Vzc2lvbigpOwotICAgIHJldHVybiBtX25ldHdvcmtTdG9yYWdlU2Vzc2lvbnMuZ2V0
KHNlc3Npb25JRCk7CisgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBtX25ldHdvcmtTZXNzaW9ucy5n
ZXQoc2Vzc2lvbklEKSkKKyAgICAgICAgcmV0dXJuICZzZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNl
c3Npb24oKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogV2ViQ29yZTo6TmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiBOZXR3b3JrUHJvY2Vzczo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCkgY29uc3QK
IHsKLSAgICBpZiAoIW1fZGVmYXVsdE5ldHdvcmtTdG9yYWdlU2Vzc2lvbikKLSAgICAgICAgbV9k
ZWZhdWx0TmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gcGxhdGZvcm1DcmVhdGVEZWZhdWx0U3RvcmFn
ZVNlc3Npb24oKTsKLSAgICByZXR1cm4gKm1fZGVmYXVsdE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjsK
KyAgICBhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IG1fbmV0d29ya1Nlc3Npb25zLmdldChQQUw6OlNl
c3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKKyAgICBSRUxFQVNFX0FTU0VSVChuZXR3b3Jr
U2Vzc2lvbik7CisgICAgcmV0dXJuIG5ldHdvcmtTZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Np
b24oKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6Zm9yRWFjaE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbihjb25zdCBGdW5jdGlvbjx2b2lkKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYp
PiYgZnVuY3RvcikKIHsKLSAgICBmdW5jdG9yKGRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpKTsKLSAg
ICBmb3IgKGF1dG8mIHN0b3JhZ2VTZXNzaW9uIDogbV9uZXR3b3JrU3RvcmFnZVNlc3Npb25zLnZh
bHVlcygpKQotICAgICAgICBmdW5jdG9yKCpzdG9yYWdlU2Vzc2lvbik7CisgICAgZm9yIChhdXRv
JiBuZXR3b3JrU2Vzc2lvbiA6IG1fbmV0d29ya1Nlc3Npb25zLnZhbHVlcygpKQorICAgICAgICBm
dW5jdG9yKG5ldHdvcmtTZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKSk7CiB9CiAKIE5l
dHdvcmtTZXNzaW9uKiBOZXR3b3JrUHJvY2Vzczo6bmV0d29ya1Nlc3Npb24oY29uc3QgUEFMOjpT
ZXNzaW9uSUQmIHNlc3Npb25JRCkgY29uc3QKQEAgLTU1Myw3ICs1MjEsNiBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzOjpkZXN0cm95U2Vzc2lvbihjb25zCiAKICAgICBpZiAoYXV0byBzZXNzaW9uID0g
bV9uZXR3b3JrU2Vzc2lvbnMudGFrZShzZXNzaW9uSUQpKQogICAgICAgICBzZXNzaW9uLT5nZXQo
KS5pbnZhbGlkYXRlQW5kQ2FuY2VsKCk7Ci0gICAgbV9uZXR3b3JrU3RvcmFnZVNlc3Npb25zLnJl
bW92ZShzZXNzaW9uSUQpOwogICAgIG1fc2Vzc2lvbnNDb250cm9sbGVkQnlBdXRvbWF0aW9uLnJl
bW92ZShzZXNzaW9uSUQpOwogICAgIENhY2hlU3RvcmFnZTo6RW5naW5lOjpkZXN0cm95RW5naW5l
KCp0aGlzLCBzZXNzaW9uSUQpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCShyZXZpc2lvbiAyNDE5MDMpCisrKyBTb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0Nywx
MSArMTQ3LDYgQEAgcHVibGljOgogICAgIFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiog
c3RvcmFnZVNlc3Npb24oY29uc3QgUEFMOjpTZXNzaW9uSUQmKSBjb25zdDsKICAgICBXZWJDb3Jl
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIGRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpIGNvbnN0Owog
ICAgIHZvaWQgc3dpdGNoVG9OZXdUZXN0aW5nU2Vzc2lvbigpOwotI2lmIFBMQVRGT1JNKENPQ09B
KQotICAgIHZvaWQgZW5zdXJlU2Vzc2lvbihjb25zdCBQQUw6OlNlc3Npb25JRCYsIGNvbnN0IFN0
cmluZyYgaWRlbnRpZmllciwgUmV0YWluUHRyPENGSFRUUENvb2tpZVN0b3JhZ2VSZWY+JiYpOwot
I2Vsc2UKLSAgICB2b2lkIGVuc3VyZVNlc3Npb24oY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25z
dCBTdHJpbmcmIGlkZW50aWZpZXIpOwotI2VuZGlmCiAKICAgICBib29sIGNhbkhhbmRsZUhUVFBT
U2VydmVyVHJ1c3RFdmFsdWF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jYW5IYW5kbGVIVFRQU1Nl
cnZlclRydXN0RXZhbHVhdGlvbjsgfQogCkBAIC0zMDEsNyArMjk2LDYgQEAgcHVibGljOgogCiBw
cml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoY29uc3Qg
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uPiBwbGF0Zm9ybUNyZWF0ZURlZmF1bHRTdG9y
YWdlU2Vzc2lvbigpIGNvbnN0OwogCiAgICAgdm9pZCB0ZXJtaW5hdGUoKSBvdmVycmlkZTsKICAg
ICB2b2lkIHBsYXRmb3JtVGVybWluYXRlKCk7CkBAIC00NTIsOCArNDQ2LDYgQEAgcHJpdmF0ZToK
ICAgICBIYXNoU2V0PFBBTDo6U2Vzc2lvbklEPiBtX3Nlc3Npb25zQ29udHJvbGxlZEJ5QXV0b21h
dGlvbjsKICAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBWZWN0b3I8Q2FjaGVTdG9yYWdlUGFy
YW1ldGVyc0NhbGxiYWNrPj4gbV9jYWNoZVN0b3JhZ2VQYXJhbWV0ZXJzQ2FsbGJhY2tzOwogICAg
IEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIFJlZjxOZXR3b3JrU2Vzc2lvbj4+IG1fbmV0d29ya1Nl
c3Npb25zOwotICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24+PiBtX25ldHdvcmtTdG9yYWdlU2Vzc2lvbnM7Ci0g
ICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
PiBtX2RlZmF1bHROZXR3b3JrU3RvcmFnZVNlc3Npb247CiAgICAgTmV0d29ya0Jsb2JSZWdpc3Ry
eSBtX25ldHdvcmtCbG9iUmVnaXN0cnk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAyNDE5MDMpCisrKyBTb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDksOSArNDksNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjplCiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJ
VkVfUkVWQUxJREFUSU9OKQogICAgIGVuY29kZXIgPDwgc2hvdWxkRW5hYmxlTmV0d29ya0NhY2hl
U3BlY3VsYXRpdmVSZXZhbGlkYXRpb247CiAjZW5kaWYKLSNpZiBQTEFURk9STShNQUMpCi0gICAg
ZW5jb2RlciA8PCB1aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllcjsKLSNlbmRpZgogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgZW5jb2RlciA8PCBjb29raWVTdG9yYWdlRGlyZWN0
b3J5RXh0ZW5zaW9uSGFuZGxlOwogICAgIGVuY29kZXIgPDwgY29udGFpbmVyQ2FjaGVzRGlyZWN0
b3J5RXh0ZW5zaW9uSGFuZGxlOwpAQCAtMTE3LDEwICsxMTQsNiBAQCBib29sIE5ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQu
c2hvdWxkRW5hYmxlTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVSZXZhbGlkYXRpb24pKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKLSNpZiBQTEFURk9STShNQUMpCi0gICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShyZXN1bHQudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAg
IE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gY29va2llU3RvcmFnZURpcmVjdG9y
eUV4dGVuc2lvbkhhbmRsZTsKICAgICBkZWNvZGVyID4+IGNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlF
eHRlbnNpb25IYW5kbGU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCShyZXZp
c2lvbiAyNDE5MDMpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTYwLDkgKzYwLDYgQEAg
c3RydWN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIAogI2lmIEVOQUJMRShORVRX
T1JLX0NBQ0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElPTikKICAgICBib29sIHNob3VsZEVuYWJs
ZU5ldHdvcmtDYWNoZVNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uIHsgZmFsc2UgfTsKICNlbmRpZgot
I2lmIFBMQVRGT1JNKE1BQykKLSAgICBWZWN0b3I8dWludDhfdD4gdWlQcm9jZXNzQ29va2llU3Rv
cmFnZUlkZW50aWZpZXI7Ci0jZW5kaWYKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZSBjb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFu
ZGxlOwogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBjb250YWluZXJDYWNoZXNEaXJlY3Rv
cnlFeHRlbnNpb25IYW5kbGU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtTZXNzaW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmNwcAkocmV2aXNpb24gMjQxOTAzKQorKysgU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1
LDYgKzM1LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgog
CiAjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiQ29va2llU3RvcmFnZVV0aWxzQ0YuaCIK
ICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbkNvY29hLmgiCiAjZW5kaWYKICNpZiBVU0UoU09VUCkK
QEAgLTYyLDE1ICs2Myw1MSBAQCBSZWY8TmV0d29ya1Nlc3Npb24+IE5ldHdvcmtTZXNzaW9uOjpj
cmVhCiAKIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgTmV0d29ya1Nlc3Npb246Om5ldHdvcmtTdG9y
YWdlU2Vzc2lvbigpIGNvbnN0CiB7Ci0gICAgYXV0byogc3RvcmFnZVNlc3Npb24gPSBtX25ldHdv
cmtQcm9jZXNzLT5zdG9yYWdlU2Vzc2lvbihtX3Nlc3Npb25JRCk7Ci0gICAgUkVMRUFTRV9BU1NF
UlQoc3RvcmFnZVNlc3Npb24pOwotICAgIHJldHVybiAqc3RvcmFnZVNlc3Npb247CisgICAgcmV0
dXJuIG1fbmV0d29ya1N0b3JhZ2VTZXNzaW9uLmdldCgpOwogfQogCi1OZXR3b3JrU2Vzc2lvbjo6
TmV0d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpCi0gICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCitzdGF0aWMgVW5p
cXVlUmVmPFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gY3JlYXRlTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0d29ya1Nlc3Npb25D
cmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisg
ICAgUmV0YWluUHRyPENGSFRUUENvb2tpZVN0b3JhZ2VSZWY+IGNvb2tpZVN0b3JhZ2U7CisgICAg
aWYgKCFwYXJhbWV0ZXJzLnNlc3Npb25JRC5pc0VwaGVtZXJhbCgpICYmICFwYXJhbWV0ZXJzLnVp
UHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyLmlzRW1wdHkoKSkKKyAgICAgICAgY29va2ll
U3RvcmFnZSA9IGNvb2tpZVN0b3JhZ2VGcm9tSWRlbnRpZnlpbmdEYXRhKHBhcmFtZXRlcnMudWlQ
cm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIpOworCisgICAgU3RyaW5nIGJhc2UgPSBuZXR3
b3JrUHJvY2Vzcy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKCk7CisgICAgaWYgKGJhc2UuaXNO
dWxsKCkpCisgICAgICAgIGJhc2UgPSBtYWluQnVuZGxlSWRlbnRpZmllcigpOworICAgIFN0cmlu
ZyBpZGVudGlmaWVyQmFzZSA9IG1ha2VTdHJpbmcoYmFzZSwgJy4nLCBwYXJhbWV0ZXJzLnNlc3Np
b25JRC5zZXNzaW9uSUQoKSk7CisKKyAgICBSZXRhaW5QdHI8Q0ZVUkxTdG9yYWdlU2Vzc2lvblJl
Zj4gc3RvcmFnZVNlc3Npb247CisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBjZklkZW50aWZp
ZXIgPSBTdHJpbmcoaWRlbnRpZmllckJhc2UgKyAiLlByaXZhdGVCcm93c2luZyIpLmNyZWF0ZUNG
U3RyaW5nKCk7CisgICAgaWYgKHBhcmFtZXRlcnMuc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpCisg
ICAgICAgIHN0b3JhZ2VTZXNzaW9uID0gYWRvcHRDRihjcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Np
b24oY2ZJZGVudGlmaWVyLmdldCgpKSk7CisgICAgZWxzZQorICAgICAgICBzdG9yYWdlU2Vzc2lv
biA9IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y3JlYXRlQ0ZTdG9yYWdlU2Vzc2lv
bkZvcklkZW50aWZpZXIoY2ZJZGVudGlmaWVyLmdldCgpKTsKKyAgICBpZiAoTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpwcm9jZXNzTWF5VXNlQ29va2llQVBJKCkpIHsKKyAgICAgICAgQVNTRVJUKGhh
c1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNzUmF3Q29va2llcykp
OworICAgICAgICBpZiAoIWNvb2tpZVN0b3JhZ2UgJiYgc3RvcmFnZVNlc3Npb24pCisgICAgICAg
ICAgICBjb29raWVTdG9yYWdlID0gYWRvcHRDRihfQ0ZVUkxTdG9yYWdlU2Vzc2lvbkNvcHlDb29r
aWVTdG9yYWdlKGtDRkFsbG9jYXRvckRlZmF1bHQsIHN0b3JhZ2VTZXNzaW9uLmdldCgpKSk7Cisg
ICAgfQorI2VuZGlmCisKKyAgICBpZiAocGFyYW1ldGVycy5zZXNzaW9uSUQgPT0gUEFMOjpTZXNz
aW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkgeworICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZVJl
ZjxXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24+KHBhcmFtZXRlcnMuc2Vzc2lvbklECisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgICAgICAsIFdURk1vdmUoc3RvcmFnZVNlc3Npb24p
LCBXVEZNb3ZlKGNvb2tpZVN0b3JhZ2UpCisjZWxpZiBVU0UoU09VUCkKKyAgICAgICAgICAgICwg
c3RkOjptYWtlX3VuaXF1ZTxTb3VwTmV0d29ya1Nlc3Npb24+KFBBTDo6U2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEKCkpCisjZW5kaWYKKyAgICAgICAgKTsKKyAgICB9CisgICAgcmV0dXJuIG1h
a2VVbmlxdWVSZWY8V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihwYXJhbWV0ZXJzLnNl
c3Npb25JRCk7Cit9CisKK05ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbihOZXR3b3JrUHJv
Y2VzcyYgbmV0d29ya1Byb2Nlc3MsIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiBw
YXJhbWV0ZXJzKQorICAgIDogbV9zZXNzaW9uSUQocGFyYW1ldGVycy5zZXNzaW9uSUQpCiAgICAg
LCBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9jZXNzKQogICAgICwgbV9hZENsaWNrQXR0cmli
dXRpb24obWFrZVVuaXF1ZVJlZjxOZXR3b3JrQWRDbGlja0F0dHJpYnV0aW9uPigpKQorICAgICwg
bV9uZXR3b3JrU3RvcmFnZVNlc3Npb24oY3JlYXRlTmV0d29ya1N0b3JhZ2VTZXNzaW9uKG5ldHdv
cmtQcm9jZXNzLCBwYXJhbWV0ZXJzKSkKIHsKIH0KIApJbmRleDogU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAkocmV2aXNpb24gMjQxOTAzKQorKysgU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCSh3b3JraW5nIGNvcHkp
CkBAIC04MCw4ICs4MCwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkdW1wQWRDbGlja0F0dHJpYnV0
aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJik7CiAgICAgdm9pZCBjbGVhckFk
Q2xpY2tBdHRyaWJ1dGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCisgICAgdm9p
ZCBzZXROZXdUZXN0aW5nU2Vzc2lvbihVbmlxdWVSZWY8V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VT
ZXNzaW9uPiYmIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbikgeyBtX25ldHdvcmtTdG9yYWdlU2Vzc2lv
biA9IFdURk1vdmUobmV0d29ya1N0b3JhZ2VTZXNzaW9uKTsgfQorICAgIAorICAgIFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkgeyByZXR1cm4g
bV9uZXR3b3JrU3RvcmFnZVNlc3Npb24uZ2V0KCk7IH0KKwogcHJvdGVjdGVkOgotICAgIE5ldHdv
cmtTZXNzaW9uKE5ldHdvcmtQcm9jZXNzJiwgUEFMOjpTZXNzaW9uSUQpOworICAgIE5ldHdvcmtT
ZXNzaW9uKE5ldHdvcmtQcm9jZXNzJiwgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMm
KTsKIAogICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogICAgIFJlZjxOZXR3b3JrUHJv
Y2Vzcz4gbV9uZXR3b3JrUHJvY2VzczsKQEAgLTkxLDYgKzk1LDkgQEAgcHJvdGVjdGVkOgogICAg
IFJlZlB0cjxXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU+IG1fcmVzb3VyY2VMb2FkU3Rh
dGlzdGljczsKICNlbmRpZgogICAgIFVuaXF1ZVJlZjxOZXR3b3JrQWRDbGlja0F0dHJpYnV0aW9u
PiBtX2FkQ2xpY2tBdHRyaWJ1dGlvbjsKKyAgICBVbmlxdWVSZWY8V2ViQ29yZTo6TmV0d29ya1N0
b3JhZ2VTZXNzaW9uPiBtX25ldHdvcmtTdG9yYWdlU2Vzc2lvbjsKIH07CiAKK1N0cmluZyBtYWlu
QnVuZGxlSWRlbnRpZmllcigpOworCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nl
c3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAyNDE5MDMpCisrKyBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBh
cmFtZXRlcnM6OnByaXZhdGVTZXNzaW9uUGFyYW1ldGVycyhjb25zdCBQQUw6OlNlc3Npb25JRCYg
c2Vzc2lvbklEKQogewotICAgIHJldHVybiB7IHNlc3Npb25JRCwgeyB9LCBBbGxvd3NDZWxsdWxh
ckFjY2Vzczo6WWVzCisgICAgcmV0dXJuIHsgc2Vzc2lvbklELCB7IH0sIHsgfSwgQWxsb3dzQ2Vs
bHVsYXJBY2Nlc3M6OlllcwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICAgICAsIHsgfSwgeyB9
LCB7IH0sIGZhbHNlLCB7IH0sIHsgfSwgeyB9CiAjZW5kaWYKQEAgLTU3LDYgKzU3LDcgQEAgTmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMgTmV0d29yawogdm9pZCBOZXR3b3JrU2Vzc2lv
bkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
IHsKICAgICBlbmNvZGVyIDw8IHNlc3Npb25JRDsKKyAgICBlbmNvZGVyIDw8IHVpUHJvY2Vzc0Nv
b2tpZVN0b3JhZ2VJZGVudGlmaWVyOwogICAgIGVuY29kZXIgPDwgYm91bmRJbnRlcmZhY2VJZGVu
dGlmaWVyOwogICAgIGVuY29kZXIgPDwgYWxsb3dzQ2VsbHVsYXJBY2Nlc3M7CiAjaWYgUExBVEZP
Uk0oQ09DT0EpCkBAIC04Nyw2ICs4OCwxMSBAQCBPcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0
aW9uUGFyYW1ldGVyCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzZXNzaW9uSUQpKQogICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIAorICAgIE9wdGlvbmFsPFZlY3Rvcjx1aW50OF90
Pj4gdWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiB1aVBy
b2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllcjsKKyAgICBpZiAoIXVpUHJvY2Vzc0Nvb2tpZVN0
b3JhZ2VJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCiAgICAgT3B0
aW9uYWw8U3RyaW5nPiBib3VuZEludGVyZmFjZUlkZW50aWZpZXI7CiAgICAgZGVjb2RlciA+PiBi
b3VuZEludGVyZmFjZUlkZW50aWZpZXI7CiAgICAgaWYgKCFib3VuZEludGVyZmFjZUlkZW50aWZp
ZXIpCkBAIC0xNzQsNiArMTgwLDcgQEAgT3B0aW9uYWw8TmV0d29ya1Nlc3Npb25DcmVhdGlvblBh
cmFtZXRlcgogCiAgICAgcmV0dXJuIHt7CiAgICAgICAgIHNlc3Npb25JRAorICAgICAgICAsIFdU
Rk1vdmUoKnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyKQogICAgICAgICAsIFdURk1v
dmUoKmJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcikKICAgICAgICAgLCBXVEZNb3ZlKCphbGxvd3ND
ZWxsdWxhckFjY2VzcykKICNpZiBQTEFURk9STShDT0NPQSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRp
b25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDI0MTkwMykKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5
KQpAQCAtNTksNiArNTksNyBAQCBzdHJ1Y3QgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRl
cnMgCiAgICAgc3RhdGljIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzIHByaXZhdGVT
ZXNzaW9uUGFyYW1ldGVycyhjb25zdCBQQUw6OlNlc3Npb25JRCYpOwogICAgIAogICAgIFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCB7IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkg
fTsKKyAgICBWZWN0b3I8dWludDhfdD4gdWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXI7
CiAgICAgU3RyaW5nIGJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcjsKICAgICBBbGxvd3NDZWxsdWxh
ckFjY2VzcyBhbGxvd3NDZWxsdWxhckFjY2VzcyB7IEFsbG93c0NlbGx1bGFyQWNjZXNzOjpZZXMg
fTsKICNpZiBQTEFURk9STShDT0NPQSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0JKHJldmlzaW9u
IDI0MTkwMykKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1By
b2Nlc3NDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtOTQsNyArOTQsNyBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVOCiAgICAgaW5pdGlhbGl6ZU5ldHdvcmtTZXR0
aW5ncygpOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHNldFNoYXJlZEhUVFBDb29raWVTdG9y
YWdlKHBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIpOworICAgIHNl
dFNoYXJlZEhUVFBDb29raWVTdG9yYWdlKHBhcmFtZXRlcnMuZGVmYXVsdERhdGFTdG9yZVBhcmFt
ZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVu
dGlmaWVyKTsKICNlbmRpZgogCiAgICAgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpz
ZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChwYXJhbWV0ZXJzLnN0b3JhZ2VBY2Nlc3NBUElFbmFi
bGVkKTsKQEAgLTEzMCwxMSArMTMwLDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1J
bml0aWFsaXplTgogICAgIFtOU1VSTENhY2hlIHNldFNoYXJlZFVSTENhY2hlOnVybENhY2hlLmdl
dCgpXTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lv
bj4gTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtQ3JlYXRlRGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxXZWJDb3JlOjpOZXR3b3JrU3Rv
cmFnZVNlc3Npb24+KFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwotfQotCiBS
ZXRhaW5QdHI8Q0ZEYXRhUmVmPiBOZXR3b3JrUHJvY2Vzczo6c291cmNlQXBwbGljYXRpb25BdWRp
dERhdGEoKSBjb25zdAogewogI2lmIFVTRShTT1VSQ0VfQVBQTElDQVRJT05fQVVESVRfREFUQSkK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25D
b2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtTZXNzaW9uQ29jb2EubW0JKHJldmlzaW9uIDI0MTkwMykKKysrIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQkod29ya2luZyBj
b3B5KQpAQCAtNzg2LDYgKzc4NiwxMSBAQCAtICh2b2lkKVVSTFNlc3Npb246KE5TVVJMU2Vzc2lv
biAqKXNlc3NpCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitTdHJpbmcgbWFpbkJ1bmRsZUlkZW50
aWZpZXIoKQoreworICAgIHJldHVybiBbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50
aWZpZXJdOworfQorCiAjaWYgIUFTU0VSVF9ESVNBQkxFRAogc3RhdGljIGJvb2wgc2Vzc2lvbnND
cmVhdGVkID0gZmFsc2U7CiAjZW5kaWYKQEAgLTg0NSw3ICs4NTAsNyBAQCBzdGF0aWMgTlNEaWN0
aW9uYXJ5ICpwcm94eURpY3Rpb25hcnkoY29uCiB9CiAKIE5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5l
dHdvcmtTZXNzaW9uQ29jb2EoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3Jr
U2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCi0gICAgOiBOZXR3b3JrU2Vz
c2lvbihuZXR3b3JrUHJvY2VzcywgcGFyYW1ldGVycy5zZXNzaW9uSUQpCisgICAgOiBOZXR3b3Jr
U2Vzc2lvbihuZXR3b3JrUHJvY2VzcywgcGFyYW1ldGVycykKICAgICAsIG1fYm91bmRJbnRlcmZh
Y2VJZGVudGlmaWVyKHBhcmFtZXRlcnMuYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyKQogICAgICwg
bV9wcm94eUNvbmZpZ3VyYXRpb24ocGFyYW1ldGVycy5wcm94eUNvbmZpZ3VyYXRpb24pCiAgICAg
LCBtX3Nob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKHBhcmFtZXRlcnMuc2hvdWxkTG9nQ29va2ll
SW5mb3JtYXRpb24pCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2N1cmwvTmV0
d29ya1Nlc3Npb25DdXJsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2N1cmwvTmV0d29ya1Nlc3Npb25DdXJsLmNwcAkocmV2aXNpb24gMjQxOTAzKQorKysg
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jdXJsL05ldHdvcmtTZXNzaW9uQ3VybC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogTmV0d29ya1Nlc3Npb25DdXJsOjpOZXR3b3JrU2Vzc2lv
bkN1cmwoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrU2Vzc2lvbkNyZWF0
aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCi0gICAgOiBOZXR3b3JrU2Vzc2lvbihuZXR3b3Jr
UHJvY2VzcywgcGFyYW1ldGVycy5zZXNzaW9uSUQpCisgICAgOiBOZXR3b3JrU2Vzc2lvbihuZXR3
b3JrUHJvY2VzcywgcGFyYW1ldGVycykKIHsKICAgICBpZiAoIXBhcmFtZXRlcnMuY29va2llUGVy
c2lzdGVudFN0b3JhZ2VGaWxlLmlzRW1wdHkoKSkKICAgICAgICAgbmV0d29ya1N0b3JhZ2VTZXNz
aW9uKCkuc2V0Q29va2llRGF0YWJhc2UobWFrZVVuaXF1ZVJlZjxDb29raWVKYXJEQj4ocGFyYW1l
dGVycy5jb29raWVQZXJzaXN0ZW50U3RvcmFnZUZpbGUpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250
ZXh0Lm1tCShyZXZpc2lvbiAyNDE5MDMpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQkod29ya2luZyBjb3B5KQpAQCAtNDcsMTkg
KzQ3LDkgQEAgdm9pZCBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlV2VicwogICAgIGlm
IChuZXR3b3JrUHJvY2Vzcy5zdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBTdHJpbmcgYmFzZSA9IG5ldHdvcmtQcm9jZXNzLnVpUHJvY2Vzc0J1bmRsZUlk
ZW50aWZpZXIoKTsKLSAgICBpZiAoYmFzZS5pc051bGwoKSkKLSAgICAgICAgYmFzZSA9IFtbTlNC
dW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl07Ci0KICAgICBpZiAoIXNlc3Npb25J
RC5pc0VwaGVtZXJhbCgpKQogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFu
ZW50bHkocGFyYW1ldGVycy5jb29raWVTdG9yYWdlUGF0aEV4dGVuc2lvbkhhbmRsZSk7CiAKLSAg
ICBSZXRhaW5QdHI8Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4gdWlQcm9jZXNzQ29va2llU3RvcmFn
ZTsKLSAgICBpZiAoIXNlc3Npb25JRC5pc0VwaGVtZXJhbCgpICYmICFwYXJhbWV0ZXJzLnVpUHJv
Y2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyLmlzRW1wdHkoKSkKLSAgICAgICAgdWlQcm9jZXNz
Q29va2llU3RvcmFnZSA9IGNvb2tpZVN0b3JhZ2VGcm9tSWRlbnRpZnlpbmdEYXRhKHBhcmFtZXRl
cnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIpOwotCi0gICAgbmV0d29ya1Byb2Nl
c3MuZW5zdXJlU2Vzc2lvbihzZXNzaW9uSUQsIG1ha2VTdHJpbmcoYmFzZSwgJy4nLCBzZXNzaW9u
SUQuc2Vzc2lvbklEKCkpLCBXVEZNb3ZlKHVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2UpKTsKLQogICAg
IGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrUHJvY2Vzcy5zdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQp
OwogICAgIGZvciAoY29uc3QgYXV0byYgY29va2llIDogcGFyYW1ldGVycy5wZW5kaW5nQ29va2ll
cykKICAgICAgICAgc2Vzc2lvbi0+c2V0Q29va2llKGNvb2tpZSk7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3Vw
LmNwcAkocmV2aXNpb24gMjQxOTAzKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
b3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyOSwxMSArMTI5
LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplTgogICAgIHNldEln
bm9yZVRMU0Vycm9ycyhwYXJhbWV0ZXJzLmlnbm9yZVRMU0Vycm9ycyk7CiB9CiAKLXN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24+IE5ldHdvcmtQcm9jZXNzOjpw
bGF0Zm9ybUNyZWF0ZURlZmF1bHRTdG9yYWdlU2Vzc2lvbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihQQUw6OlNl
c3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBzdGQ6Om1ha2VfdW5pcXVlPFNvdXBOZXR3b3Jr
U2Vzc2lvbj4oUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkpOwotfQotCiB2b2lk
IE5ldHdvcmtQcm9jZXNzOjpzZXRJZ25vcmVUTFNFcnJvcnMoYm9vbCBpZ25vcmVUTFNFcnJvcnMp
CiB7CiAgICAgU291cE5ldHdvcmtTZXNzaW9uOjpzZXRTaG91bGRJZ25vcmVUTFNFcnJvcnMoaWdu
b3JlVExTRXJyb3JzKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9O
ZXR3b3JrU2Vzc2lvblNvdXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwCShyZXZpc2lvbiAyNDE5MDMpCisr
KyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBOZXR3b3JrU2Vzc2lvblNvdXA6Ok5ldHdvcmtTZXNz
aW9uU291cChOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIE5ldHdvcmtTZXNzaW9uQ3Jl
YXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKLSAgICA6IE5ldHdvcmtTZXNzaW9uKG5ldHdv
cmtQcm9jZXNzLCBwYXJhbWV0ZXJzLnNlc3Npb25JRCkKKyAgICA6IE5ldHdvcmtTZXNzaW9uKG5l
dHdvcmtQcm9jZXNzLCBwYXJhbWV0ZXJzKQogewogICAgIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbigp
LnNldENvb2tpZU9ic2VydmVySGFuZGxlcihbdGhpc10gewogICAgICAgICB0aGlzLT5uZXR3b3Jr
UHJvY2VzcygpLnN1cHBsZW1lbnQ8V2ViQ29va2llTWFuYWdlcj4oKS0+bm90aWZ5Q29va2llc0Rp
ZENoYW5nZShtX3Nlc3Npb25JRCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRl
RGF0YVN0b3JlUGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFy
ZWQvV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAyNDE5MDMpCisrKyBT
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM4LDcgKzM4LDYgQEAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM6On5X
ZWJzaXRlRGF0YQogdm9pZCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8IG5ldHdvcmtTZXNzaW9u
UGFyYW1ldGVyczsKLSAgICBlbmNvZGVyIDw8IHVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlm
aWVyOwogICAgIGVuY29kZXIgPDwgY29va2llU3RvcmFnZVBhdGhFeHRlbnNpb25IYW5kbGU7CiAg
ICAgZW5jb2RlciA8PCBwZW5kaW5nQ29va2llczsKIApAQCAtNjQsMTIgKzYzLDYgQEAgT3B0aW9u
YWw8V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM+IFdlYgogICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwogICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzID0gV1RGTW92
ZSgqbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzKTsKIAotICAgIE9wdGlvbmFsPFZlY3Rvcjx1aW50
OF90Pj4gdWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXI7Ci0gICAgZGVjb2RlciA+PiB1
aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllcjsKLSAgICBpZiAoIXVpUHJvY2Vzc0Nvb2tp
ZVN0b3JhZ2VJZGVudGlmaWVyKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIHBh
cmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIgPSBXVEZNb3ZlKCp1aVBy
b2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllcik7Ci0KICAgICBPcHRpb25hbDxTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGU+IGNvb2tpZVN0b3JhZ2VQYXRoRXh0ZW5zaW9uSGFuZGxlOwogICAgIGRl
Y29kZXIgPj4gY29va2llU3RvcmFnZVBhdGhFeHRlbnNpb25IYW5kbGU7CiAgICAgaWYgKCFjb29r
aWVTdG9yYWdlUGF0aEV4dGVuc2lvbkhhbmRsZSkKQEAgLTEyNCw3ICsxMTcsNyBAQCBPcHRpb25h
bDxXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycz4gV2ViCiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1l
dGVycyBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6cHJpdmF0ZVNlc3Npb25QYXJhbWV0ZXJz
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBBU1NFUlQoc2Vzc2lvbklELmlzRXBo
ZW1lcmFsKCkpOwotICAgIHJldHVybiB7IHsgfSwgeyB9LCB7IH0sIE5ldHdvcmtTZXNzaW9uQ3Jl
YXRpb25QYXJhbWV0ZXJzOjpwcml2YXRlU2Vzc2lvblBhcmFtZXRlcnMoc2Vzc2lvbklEKQorICAg
IHJldHVybiB7IHsgfSwgeyB9LCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6cHJp
dmF0ZVNlc3Npb25QYXJhbWV0ZXJzKHNlc3Npb25JRCkKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKICAgICAgICAgLCB7IH0sIHsgfQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJz
LmgJKHJldmlzaW9uIDI0MTkwMykKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDYgQEAgc3RydWN0
IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIHsKICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29k
ZXImKSBjb25zdDsKICAgICBzdGF0aWMgT3B0aW9uYWw8V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRl
cnM+IGRlY29kZShJUEM6OkRlY29kZXImKTsKIAotICAgIFZlY3Rvcjx1aW50OF90PiB1aVByb2Nl
c3NDb29raWVTdG9yYWdlSWRlbnRpZmllcjsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUg
Y29va2llU3RvcmFnZVBhdGhFeHRlbnNpb25IYW5kbGU7CiAgICAgVmVjdG9yPFdlYkNvcmU6OkNv
b2tpZT4gcGVuZGluZ0Nvb2tpZXM7CiAgICAgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRl
cnMgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCShyZXZpc2lvbiAyNDE5
MDMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29h
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yODUsOSArMjg1LDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplTgogICAgIHBhcmFtZXRlcnMuc2hvdWxkU3VwcHJlc3NNZW1v
cnlQcmVzc3VyZUhhbmRsZXIgPSBbZGVmYXVsdHMgYm9vbEZvcktleTpXZWJLaXRTdXBwcmVzc01l
bW9yeVByZXNzdXJlSGFuZGxlckRlZmF1bHRzS2V5XTsKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAg
ICBBU1NFUlQocGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllci5pc0Vt
cHR5KCkpOworICAgIEFTU0VSVChwYXJhbWV0ZXJzLmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0ZXJz
Lm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmll
ci5pc0VtcHR5KCkpOwogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2
aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKLSAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nv
b2tpZVN0b3JhZ2VJZGVudGlmaWVyID0gaWRlbnRpZnlpbmdEYXRhRnJvbUNvb2tpZVN0b3JhZ2Uo
W1tOU0hUVFBDb29raWVTdG9yYWdlIHNoYXJlZEhUVFBDb29raWVTdG9yYWdlXSBfY29va2llU3Rv
cmFnZV0pOworICAgIHBhcmFtZXRlcnMuZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnMubmV0d29y
a1Nlc3Npb25QYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyID0gaWRl
bnRpZnlpbmdEYXRhRnJvbUNvb2tpZVN0b3JhZ2UoW1tOU0hUVFBDb29raWVTdG9yYWdlIHNoYXJl
ZEhUVFBDb29raWVTdG9yYWdlXSBfY29va2llU3RvcmFnZV0pOwogI2VuZGlmCiAKICAgICBwYXJh
bWV0ZXJzLnN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkID0gc3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQo
KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNp
dGVEYXRhU3RvcmVDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0JKHJldmlzaW9uIDI0
MTkwMykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNp
dGVEYXRhU3RvcmVDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtOTEsNiArOTEsNyBAQCBXZWJz
aXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0CiAgICAgV2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnMgcGFyYW1ldGVyczsKICAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFy
YW1ldGVycyA9IHsKICAgICAgICAgbV9zZXNzaW9uSUQsCisgICAgICAgIG1fdWlQcm9jZXNzQ29v
a2llU3RvcmFnZUlkZW50aWZpZXIsCiAgICAgICAgIG1fYm91bmRJbnRlcmZhY2VJZGVudGlmaWVy
LAogICAgICAgICBtX2FsbG93c0NlbGx1bGFyQWNjZXNzLAogICAgICAgICBtX3Byb3h5Q29uZmln
dXJhdGlvbiwKQEAgLTExNCw3ICsxMTUsNyBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBX
ZWJzaXRlRGF0YVN0CiAgICAgICAgIG1fdWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIg
PSBpZGVudGlmeWluZ0RhdGFGcm9tQ29va2llU3RvcmFnZShtX2NmQ29va2llU3RvcmFnZS5nZXQo
KSk7CiAgICAgfQogCi0gICAgcGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRp
ZmllciA9IG1fdWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXI7CisgICAgcGFyYW1ldGVy
cy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZp
ZXIgPSBtX3VpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyOwogICAgIHBhcmFtZXRlcnMu
bmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmll
ciA9IG1fY29uZmlndXJhdGlvbi0+c291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCk7
CiAgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuc291cmNlQXBwbGljYXRp
b25TZWNvbmRhcnlJZGVudGlmaWVyID0gbV9jb25maWd1cmF0aW9uLT5zb3VyY2VBcHBsaWNhdGlv
blNlY29uZGFyeUlkZW50aWZpZXIoKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>