<?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>154750</bug_id>
          
          <creation_ts>2016-02-26 13:57:54 -0800</creation_ts>
          <short_desc>WKWebsiteDataStore/WKWebsiteDataRecord needs to provide size information about each type of data</short_desc>
          <delta_ts>2016-02-26 14:54:25 -0800</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>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1168668</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-02-26 13:57:54 -0800</bug_when>
    <thetext>WKWebsiteDataStore/WKWebsiteDataRecord needs to provide size information about each type of data</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168673</commentid>
    <comment_count>1</comment_count>
      <attachid>272367</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-02-26 14:04:47 -0800</bug_when>
    <thetext>Created attachment 272367
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168676</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-26 14:05:56 -0800</bug_when>
    <thetext>Attachment 272367 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h:63:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Tools/MiniBrowser/mac/WK2BrowserWindowController.m:483:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/NetworkProcess/NetworkProcess.cpp:285:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp:153:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp:156:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp:121:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:32:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/_WKWebsiteDataSizeInternal.h:32:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.h:78:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 9 in 27 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168682</commentid>
    <comment_count>3</comment_count>
      <attachid>272367</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-02-26 14:13:14 -0800</bug_when>
    <thetext>Comment on attachment 272367
Patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebsiteDataRecord.mm:134
&gt; +    return [[_WKWebsiteDataSize alloc] initWithSize:*size];

Shouldn&apos;t it be more clear that this returns a retained thing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168697</commentid>
    <comment_count>4</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-02-26 14:25:59 -0800</bug_when>
    <thetext>Committed r197203: &lt;http://trac.webkit.org/changeset/197203&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168705</commentid>
    <comment_count>5</comment_count>
      <attachid>272367</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-02-26 14:54:25 -0800</bug_when>
    <thetext>Comment on attachment 272367
Patch

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

&gt; Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp:231
&gt; +                    callbackAggregator-&gt;m_websiteData.entries.append(WebsiteData::Entry { securityOrigin, WebsiteDataType::IndexedDBDatabases, 0 });

Does this need a FIXME? Shouldn&apos;t we be sending a size?

&gt; Source/WebKit2/NetworkProcess/NetworkProcess.cpp:310
&gt; +            auto result = originsAndSizes-&gt;add(SecurityOrigin::create(traversalEntry-&gt;entry.response().url()), 0);

Should I add a version of HashMap::ensure() that takes two lambdas, one for the success case, one for the failure?

&gt; Source/WebKit2/UIProcess/API/Cocoa/_WKWebsiteDataSize.mm:50
&gt; +- (unsigned long long)sizeOfDataTypes:(NSSet&lt;NSString *&gt; *)dataTypes

This will fail on Yosemite.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272367</attachid>
            <date>2016-02-26 14:04:47 -0800</date>
            <delta_ts>2016-02-26 14:15:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154750-20160226140430.patch</filename>
            <type>text/plain</type>
            <size>63236</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3MTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjM4YWVlYzVmYjQyMmZl
YTM0OTY2MDVjNmNlZjBiMmQxODQ5OTI0Mi4uNTg4Mjk2ZmY3OGQwMzY4NzBjM2QyYTZlMzRlMmEz
Y2IyMmViN2Y5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDEwMCBAQAogMjAxNi0wMi0yNiAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCisgICAgICAgIFdLV2Vic2l0ZURh
dGFTdG9yZS9XS1dlYnNpdGVEYXRhUmVjb3JkIG5lZWRzIHRvIHByb3ZpZGUgc2l6ZSBpbmZvcm1h
dGlvbiBhYm91dCBlYWNoIHR5cGUgb2YgZGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0NzUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKToK
KyAgICAgICAgV2Vic2l0ZURhdGE6OkVudHJ5IG5vdyB0YWtlcyBhIHNpemUuCisKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OmZl
dGNoRGlza0NhY2hlRW50cmllcyk6CisgICAgICAgIElmIG5lY2Vzc2FyeSwgY29tcHV0ZSBzaXpl
cy4KKworICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YSk6
CisgICAgICAgIEp1c3QgcGFzcyAwIGZvciB0aGUgQ0YgY2FjaGUgZm9yIG5vdy4KKworICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgIEZldGNoV2Vic2l0ZURh
dGEgbm93IHRha2VzIGEgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+LgorCisgICAg
ICAgICogU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2Vic2l0ZURhdGE6OkVudHJ5OjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRl
RGF0YTo6RW50cnk6OmRlY29kZSk6CisgICAgICAgIEVuY29kZSBhbmQgZGVjb2RlIHRoZSBzaXpl
LgorCisgICAgICAgICogU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhLmg6CisgICAgICAg
IEFkZCBzaXplLgorCisgICAgICAgICogU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhRmV0
Y2hPcHRpb24uaDoKKyAgICAgICAgQWRkIG5ldyBlbnVtLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwOgorICAgICAgICAoV0tBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlckdldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5zKToKKyAgICAgICAgUGFz
cyBhbiBlbXB0eSBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4uCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHA6CisgICAgICAgIChX
S1Jlc291cmNlQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmlnaW5zKToKKyAgICAgICAgUGFzcyBhbiBl
bXB0eSBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4uCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmQubW06CisgICAgICAgICgtW1dLV2Vi
c2l0ZURhdGFSZWNvcmQgZGVzY3JpcHRpb25dKToKKyAgICAgICAgSWYgd2UgaGF2ZSBhIHNpemUs
IHByaW50IGl0IG91dCBhcyB3ZWxsLgorCisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFSZWNvcmQg
X2RhdGFTaXplXSk6CisgICAgICAgIFJldHVybiBhIHNpemUgaWYgd2UgaGF2ZSBvbmUuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmRQcml2YXRlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW06Cisg
ICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBmZXRjaERhdGFSZWNvcmRzT2ZUeXBlczpjb21w
bGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgQ2FsbCB0aHJvdWdoIHRvIHRoZSBTUEkuCisKKyAg
ICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9mZXRjaERhdGFSZWNvcmRzT2ZUeXBlczp3aXRo
T3B0aW9uczpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgQ29tcHV0ZSB0aGUgcmlnaHQg
b3B0aW9ucy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlSW50ZXJuYWwuaDoKKyAgICAgICAgSW1wb3J0IFdLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUu
aC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJp
dmF0ZS5oOgorICAgICAgICBBZGQgU1BJLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tXZWJzaXRlRGF0YVNpemUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S1dlYnNpdGVEYXRhU2l6ZS5tbToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTaXplIGluaXRX
aXRoU2l6ZTpdKToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTaXplIHRvdGFsU2l6ZV0pOgor
ICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVNpemUgc2l6ZU9mRGF0YVR5cGVzOl0pOgorICAgICAg
ICBBZGQgX1dLV2Vic2l0ZURhdGFTaXplIGhlYWRlci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTaXplSW50ZXJuYWwuaDogQWRkIElQSSBoZWFkZXIuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YSk6Cisg
ICAgICAgIFRoaXMgbm93IHRha2VzIGEgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+
LgorCisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgor
ICAgICAgICBVcGRhdGUgbWVtYmVycy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVJlY29yZC5oOgorICAgICAgICBBZGQgYSBoYXNoIG1hcCBmcm9tIHR5cGVz
IHRvIHNpemVzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpmZXRjaERhdGEp
OgorICAgICAgICBUaGlzIG5vdyB0YWtlcyBhIE9wdGlvblNldDxXZWJzaXRlRGF0YUZldGNoT3B0
aW9uPi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
Lmg6CisgICAgICAgIFVwZGF0ZSBtZW1iZXIgZnVuY3Rpb25zLgorCisgICAgICAgICogV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBBZGQgbmV3IGZpbGVzLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIFRoaXMgbm93IHRha2VzIGEgT3B0
aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+LgorCisyMDE2LTAyLTI2ICBBbmRlcnMgQ2Fy
bHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKICAgICAgICAgQWRkIGEgdG9XZWJzaXRlRGF0
YVR5cGUgYW5kIHJlaW1wbGVtZW50IHRvV2Vic2l0ZURhdGFUeXBlcyB1c2luZyBpdAogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0NzQ2CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKaW5k
ZXggZjZlYmZkYzNjZmZlZGJiZGEwNjUxNjAxOWY3ZTlhYmZmNDYxZjc1OC4uOWM2YWUwMjUyMTAx
YWI2MjMxMWQ5NmJmNDcyZGM2YWNmYzg4Y2U1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKQEAgLTIyOCw3ICsyMjgsNyBAQCB2
b2lkIERhdGFiYXNlUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YShTZXNzaW9uSUQsIE9wdGlvblNl
dDxXZWJzaXRlRGF0YVR5cGU+IHdlYgogCiAgICAgICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlz
cGF0Y2goW2NhbGxiYWNrQWdncmVnYXRvciwgc2VjdXJpdHlPcmlnaW5zXSB7CiAgICAgICAgICAg
ICAgICAgZm9yIChjb25zdCBhdXRvJiBzZWN1cml0eU9yaWdpbiA6IHNlY3VyaXR5T3JpZ2lucykK
LSAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5tX3dlYnNpdGVEYXRhLmVu
dHJpZXMuYXBwZW5kKFdlYnNpdGVEYXRhOjpFbnRyeSB7IHNlY3VyaXR5T3JpZ2luLCBXZWJzaXRl
RGF0YVR5cGU6OkluZGV4ZWREQkRhdGFiYXNlcyB9KTsKKyAgICAgICAgICAgICAgICAgICAgY2Fs
bGJhY2tBZ2dyZWdhdG9yLT5tX3dlYnNpdGVEYXRhLmVudHJpZXMuYXBwZW5kKFdlYnNpdGVEYXRh
OjpFbnRyeSB7IHNlY3VyaXR5T3JpZ2luLCBXZWJzaXRlRGF0YVR5cGU6OkluZGV4ZWREQkRhdGFi
YXNlcywgMCB9KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KSk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDE4
NjJhNzdhMGRkODJiMzQ5MmZlMTFmYTgyYzBjMzg5NWYwNjY2ZDkuLjU0MzNlNzBhOGI1M2NlZDlk
Zjk4YjFjMjQxNThjZWMyMDJiY2NiMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJX
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbE1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGEuaCIKKyNpbmNsdWRlICJXZWJzaXRlRGF0YUZldGNo
T3B0aW9uLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFUeXBlLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9ETlMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg+CkBA
IC0yODEsMjAgKzI4MiwyMyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkZXN0cm95UHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIFNlc3Npb25UcmFja2VyOjpk
ZXN0cm95U2Vzc2lvbihzZXNzaW9uSUQpOwogfQogCi1zdGF0aWMgdm9pZCBmZXRjaERpc2tDYWNo
ZUVudHJpZXMoU2Vzc2lvbklEIHNlc3Npb25JRCwgc3RkOjpmdW5jdGlvbjx2b2lkIChWZWN0b3I8
V2Vic2l0ZURhdGE6OkVudHJ5Pik+IGNvbXBsZXRpb25IYW5kbGVyKQorc3RhdGljIHZvaWQgZmV0
Y2hEaXNrQ2FjaGVFbnRyaWVzKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRl
RGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoVmVjdG9y
PFdlYnNpdGVEYXRhOjpFbnRyeT4pPiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICNpZiBFTkFCTEUo
TkVUV09SS19DQUNIRSkKICAgICBpZiAoTmV0d29ya0NhY2hlOjpzaW5nbGV0b24oKS5pc0VuYWJs
ZWQoKSkgewotICAgICAgICBhdXRvKiBvcmlnaW5zID0gbmV3IEhhc2hTZXQ8UmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPj4oKTsKKyAgICAgICAgYXV0byogb3JpZ2luc0FuZFNpemVzID0gbmV3IEhhc2hN
YXA8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgdWludDY0X3Q+KCk7CiAKLSAgICAgICAgTmV0d29y
a0NhY2hlOjpzaW5nbGV0b24oKS50cmF2ZXJzZShbY29tcGxldGlvbkhhbmRsZXIsIG9yaWdpbnNd
KGNvbnN0IE5ldHdvcmtDYWNoZTo6Q2FjaGU6OlRyYXZlcnNhbEVudHJ5ICp0cmF2ZXJzYWxFbnRy
eSkgeworICAgICAgICBOZXR3b3JrQ2FjaGU6OnNpbmdsZXRvbigpLnRyYXZlcnNlKFtmZXRjaE9w
dGlvbnMsIGNvbXBsZXRpb25IYW5kbGVyLCBvcmlnaW5zQW5kU2l6ZXNdKGNvbnN0IE5ldHdvcmtD
YWNoZTo6Q2FjaGU6OlRyYXZlcnNhbEVudHJ5ICp0cmF2ZXJzYWxFbnRyeSkgewogICAgICAgICAg
ICAgaWYgKCF0cmF2ZXJzYWxFbnRyeSkgewogICAgICAgICAgICAgICAgIFZlY3RvcjxXZWJzaXRl
RGF0YTo6RW50cnk+IGVudHJpZXM7CiAKLSAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIG9yaWdp
biA6ICpvcmlnaW5zKQotICAgICAgICAgICAgICAgICAgICBlbnRyaWVzLmFwcGVuZChXZWJzaXRl
RGF0YTo6RW50cnkgeyBvcmlnaW4sIFdlYnNpdGVEYXRhVHlwZTo6RGlza0NhY2hlIH0pOworICAg
ICAgICAgICAgICAgIGZvciAoYXV0byYgb3JpZ2luQW5kU2l6ZSA6ICpvcmlnaW5zQW5kU2l6ZXMp
IHsKKyAgICAgICAgICAgICAgICAgICAgV2Vic2l0ZURhdGE6OkVudHJ5IGVudHJ5IHsgb3JpZ2lu
QW5kU2l6ZS5rZXksIFdlYnNpdGVEYXRhVHlwZTo6RGlza0NhY2hlLCBvcmlnaW5BbmRTaXplLnZh
bHVlIH07CiAKLSAgICAgICAgICAgICAgICBkZWxldGUgb3JpZ2luczsKKyAgICAgICAgICAgICAg
ICAgICAgZW50cmllcy5hcHBlbmQoV1RGTW92ZShlbnRyeSkpOworICAgICAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgICAgIGRlbGV0ZSBvcmlnaW5zQW5kU2l6ZXM7CiAKICAgICAgICAgICAg
ICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2NvbXBsZXRpb25IYW5kbGVyLCBlbnRyaWVz
XSB7CiAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGVudHJpZXMpOwpAQCAt
MzAzLDcgKzMwNywxMCBAQCBzdGF0aWMgdm9pZCBmZXRjaERpc2tDYWNoZUVudHJpZXMoU2Vzc2lv
bklEIHNlc3Npb25JRCwgc3RkOjpmdW5jdGlvbjx2b2lkIChWZWN0bwogICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgb3JpZ2lucy0+YWRkKFNlY3Vy
aXR5T3JpZ2luOjpjcmVhdGUodHJhdmVyc2FsRW50cnktPmVudHJ5LnJlc3BvbnNlKCkudXJsKCkp
KTsKKyAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gb3JpZ2luc0FuZFNpemVzLT5hZGQoU2VjdXJp
dHlPcmlnaW46OmNyZWF0ZSh0cmF2ZXJzYWxFbnRyeS0+ZW50cnkucmVzcG9uc2UoKS51cmwoKSks
IDApOworCisgICAgICAgICAgICBpZiAoZmV0Y2hPcHRpb25zLmNvbnRhaW5zKFdlYnNpdGVEYXRh
RmV0Y2hPcHRpb246OkNvbXB1dGVTaXplcykpCisgICAgICAgICAgICAgICAgcmVzdWx0Lml0ZXJh
dG9yLT52YWx1ZSArPSB0cmF2ZXJzYWxFbnRyeS0+ZW50cnkuc291cmNlU3RvcmFnZVJlY29yZCgp
LmhlYWRlci5zaXplKCkgKyB0cmF2ZXJzYWxFbnRyeS0+cmVjb3JkSW5mby5ib2R5U2l6ZTsKICAg
ICAgICAgfSk7CiAKICAgICAgICAgcmV0dXJuOwpAQCAtMzE0LDcgKzMyMSw3IEBAIHN0YXRpYyB2
b2lkIGZldGNoRGlza0NhY2hlRW50cmllcyhTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6OmZ1bmN0
aW9uPHZvaWQgKFZlY3RvCiAKICNpZiBVU0UoQ0ZVUkxDQUNIRSkKICAgICBmb3IgKGF1dG8mIG9y
aWdpbiA6IE5ldHdvcmtQcm9jZXNzOjpjZlVSTENhY2hlT3JpZ2lucygpKQotICAgICAgICBlbnRy
aWVzLmFwcGVuZChXZWJzaXRlRGF0YTo6RW50cnkgeyBXVEZNb3ZlKG9yaWdpbiksIFdlYnNpdGVE
YXRhVHlwZTo6RGlza0NhY2hlIH0pOworICAgICAgICBlbnRyaWVzLmFwcGVuZChXZWJzaXRlRGF0
YTo6RW50cnkgeyBXVEZNb3ZlKG9yaWdpbiksIFdlYnNpdGVEYXRhVHlwZTo6RGlza0NhY2hlLCAw
IH0pOwogI2VuZGlmCiAKICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2NvbXBsZXRpb25I
YW5kbGVyLCBlbnRyaWVzXSB7CkBAIC0zMjIsNyArMzI5LDcgQEAgc3RhdGljIHZvaWQgZmV0Y2hE
aXNrQ2FjaGVFbnRyaWVzKFNlc3Npb25JRCBzZXNzaW9uSUQsIHN0ZDo6ZnVuY3Rpb248dm9pZCAo
VmVjdG8KICAgICB9KTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0
YShTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRl
RGF0YVR5cGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6ZmV0
Y2hXZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFU
eXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4g
ZmV0Y2hPcHRpb25zLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogICAgIHN0cnVjdCBDYWxsYmFj
a0FnZ3JlZ2F0b3IgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxDYWxsYmFja0FnZ3JlZ2F0b3I+
IHsKICAgICAgICAgZXhwbGljaXQgQ2FsbGJhY2tBZ2dyZWdhdG9yKHN0ZDo6ZnVuY3Rpb248dm9p
ZCAoV2Vic2l0ZURhdGEpPiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTM1Niw3ICszNjMsNyBAQCB2
b2lkIE5ldHdvcmtQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKFNlc3Npb25JRCBzZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJzaXRlRGF0YQogICAgIH0KIAogICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVz
LmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6RGlza0NhY2hlKSkgewotICAgICAgICBmZXRjaERp
c2tDYWNoZUVudHJpZXMoc2Vzc2lvbklELCBbY2FsbGJhY2tBZ2dyZWdhdG9yXShWZWN0b3I8V2Vi
c2l0ZURhdGE6OkVudHJ5PiBlbnRyaWVzKSB7CisgICAgICAgIGZldGNoRGlza0NhY2hlRW50cmll
cyhzZXNzaW9uSUQsIGZldGNoT3B0aW9ucywgW2NhbGxiYWNrQWdncmVnYXRvcl0oVmVjdG9yPFdl
YnNpdGVEYXRhOjpFbnRyeT4gZW50cmllcykgewogICAgICAgICAgICAgY2FsbGJhY2tBZ2dyZWdh
dG9yLT5tX3dlYnNpdGVEYXRhLmVudHJpZXMuYXBwZW5kVmVjdG9yKGVudHJpZXMpOwogICAgICAg
ICB9KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaAppbmRleCA1ZGMwZTRjYTQ4NzcxNDJiMzAyNmJiNzRhNTI3NDJmMGI5Y2M1Njg5Li4x
ZTQyZmJlMjgyYzkzM2IzZWFjMDE0MDg1OTAzZmVmMzcxMTAyNDg3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTU0LDYgKzU0LDcgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBBdXRoZW50aWNhdGlvbk1hbmFnZXI7CiBjbGFzcyBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKIGNsYXNzIE5ldHdvcmtQcm9jZXNzU3VwcGxl
bWVudDsKK2VudW0gY2xhc3MgV2Vic2l0ZURhdGFGZXRjaE9wdGlvbjsKIGVudW0gY2xhc3MgV2Vi
c2l0ZURhdGFUeXBlOwogc3RydWN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOwog
CkBAIC0xNTEsNyArMTUyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGVuc3VyZVByaXZhdGVCcm93
c2luZ1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsKICAgICB2b2lkIGRlc3Ryb3lQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7CiAKLSAgICB2b2lkIGZldGNoV2Vi
c2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwg
dWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRhKFdlYkNvcmU6
OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIE9wdGlvblNldDxXZWJzaXRl
RGF0YUZldGNoT3B0aW9uPiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkZWxldGVX
ZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+
LCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIHVp
bnQ2NF90IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5z
KFdlYkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIGNvbnN0IFZl
Y3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5zLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgY29va2llSG9zdE5hbWVzLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNz
YWdlcy5pbgppbmRleCA4ODcwMTAzOTRiZjIzYWQ2NDc5Y2NmMzFiZTE2Njk1NmQ2MjM0ODA3Li4z
YzQ5OTkxYTdkY2Y3NWNhOGE4MDcyYWJhNjUwY2E3MDRjY2FmMzg4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5p
bgpAQCAtMzcsNyArMzcsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNl
aXZlciB7CiAgICAgRW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihXZWJDb3JlOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQogICAgIERlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6
OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAKLSAgICBGZXRjaFdlYnNpdGVEYXRhKFdlYkNvcmU6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vi
c2l0ZURhdGFUeXBlcywgdWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICBGZXRjaFdlYnNpdGVEYXRh
KFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVE
YXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFG
ZXRjaE9wdGlvbj4gZmV0Y2hPcHRpb25zLCB1aW50NjRfdCBjYWxsYmFja0lEKQogICAgIERlbGV0
ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJL
aXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3Rl
bV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKQog
ICAgIERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMs
IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbnMsIFZlY3RvcjxTdHJp
bmc+IGNvb2tpZUhvc3ROYW1lcywgdWludDY0X3QgY2FsbGJhY2tJRCkKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5jcHAKaW5kZXggZTZlNjM2
MTk2NDA0Nzk4ZDdlZTBiMWU5MmExY2MyZTRhN2IzNzQyMC4uYTQ0NjQ3MTlhOWIxMDYyYzdlYjRm
Mjk4MjA1NWY0YWU4NjkzYTE3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGEuY3BwCkBAIC0zNiw2ICszNiw3IEBAIHZvaWQgV2Vic2l0ZURh
dGE6OkVudHJ5OjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7
CiAgICAgZW5jb2RlciA8PCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0
eU9yaWdpbigqb3JpZ2luKTsKICAgICBlbmNvZGVyLmVuY29kZUVudW0odHlwZSk7CisgICAgZW5j
b2RlciA8PCBzaXplOwogfQogCiBib29sIFdlYnNpdGVEYXRhOjpFbnRyeTo6ZGVjb2RlKElQQzo6
QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXZWJzaXRlRGF0YTo6RW50cnkmIHJlc3VsdCkKQEAg
LTQ3LDYgKzQ4LDkgQEAgYm9vbCBXZWJzaXRlRGF0YTo6RW50cnk6OmRlY29kZShJUEM6OkFyZ3Vt
ZW50RGVjb2RlciYgZGVjb2RlciwgV2Vic2l0ZURhdGE6OkVudHIKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlRW51bShyZXN1bHQudHlwZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNpemUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
ICAgICByZXN1bHQub3JpZ2luID0gc2VjdXJpdHlPcmlnaW5EYXRhLnNlY3VyaXR5T3JpZ2luKCk7
CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGEuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YS5oCmluZGV4IDIwODgwODYxMzE0YWQyOTg4ZjYwYjFlNjIyOWQ3MjQ4
MTRkYmFkMGUuLmU2OWQwOWZmNDg4NGRkN2E1OTBiOGQ0NjlhZTI0Y2RjM2I5NGRiZTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5oCkBAIC0y
Nyw2ICsyNyw3IEBACiAjZGVmaW5lIFdlYnNpdGVEYXRhX2gKIAogI2luY2x1ZGUgPFdlYkNvcmUv
U2VjdXJpdHlPcmlnaW4uaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC00Myw2ICs0NCw3IEBA
IHN0cnVjdCBXZWJzaXRlRGF0YSB7CiAgICAgc3RydWN0IEVudHJ5IHsKICAgICAgICAgUmVmUHRy
PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBvcmlnaW47CiAgICAgICAgIFdlYnNpdGVEYXRhVHlw
ZSB0eXBlOworICAgICAgICB1aW50NjRfdCBzaXplOwogCiAgICAgICAgIHZvaWQgZW5jb2RlKElQ
Qzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShJ
UEM6OkFyZ3VtZW50RGVjb2RlciYsIFdlYnNpdGVEYXRhOjpFbnRyeSYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhRmV0Y2hPcHRpb24u
aCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YUZldGNoT3B0
aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjdjNzViMjk1ZmI3OTY5MDdhZjhiMTAzZjVmMTE1ZDdmNDY0ZDdh
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YUZldGNoT3B0aW9uLmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgV2Vic2l0ZURhdGFGZXRjaE9wdGlvbl9oCisjZGVmaW5lIFdlYnNpdGVEYXRhRmV0Y2hP
cHRpb25faAorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBjbGFzcyBXZWJzaXRlRGF0YUZl
dGNoT3B0aW9uIHsKKyAgICBDb21wdXRlU2l6ZXMgPSAxIDw8IDAsCit9OworCit9CisKKworI2Vu
ZGlmIC8vIFdlYnNpdGVEYXRhRmV0Y2hPcHRpb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwCmlu
ZGV4IDA3YWE4ZjJkYjA5Y2U1NWRkOGVlZDNkNWM0ZmUzNjg5ZWRjNTVhZWIuLmFmYWI3MGQ5NTYw
ODhiNzZkMGY1NWEwNjY4MzllYTEwZWRjODkxZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAK
QEAgLTQwLDcgKzQwLDcgQEAgV0tUeXBlSUQgV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlckdldFR5
cGVJRCgpCiB2b2lkIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJHZXRBcHBsaWNhdGlvbkNhY2hl
T3JpZ2lucyhXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUmVmIGFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyLCB2b2lkKiBjb250ZXh0LCBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyR2V0QXBwbGljYXRp
b25DYWNoZU9yaWdpbnNGdW5jdGlvbiBjYWxsYmFjaykKIHsKICAgICBhdXRvJiB3ZWJzaXRlRGF0
YVN0b3JlID0gdG9JbXBsKHJlaW50ZXJwcmV0X2Nhc3Q8V0tXZWJzaXRlRGF0YVN0b3JlUmVmPihh
cHBsaWNhdGlvbkNhY2hlTWFuYWdlcikpLT53ZWJzaXRlRGF0YVN0b3JlKCk7Ci0gICAgd2Vic2l0
ZURhdGFTdG9yZS5mZXRjaERhdGEoV2Vic2l0ZURhdGFUeXBlOjpPZmZsaW5lV2ViQXBwbGljYXRp
b25DYWNoZSwgW2NvbnRleHQsIGNhbGxiYWNrXShWZWN0b3I8V2Vic2l0ZURhdGFSZWNvcmQ+IGRh
dGFSZWNvcmRzKSB7CisgICAgd2Vic2l0ZURhdGFTdG9yZS5mZXRjaERhdGEoV2Vic2l0ZURhdGFU
eXBlOjpPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZSwgeyB9LCBbY29udGV4dCwgY2FsbGJhY2td
KFZlY3RvcjxXZWJzaXRlRGF0YVJlY29yZD4gZGF0YVJlY29yZHMpIHsKICAgICAgICAgVmVjdG9y
PFJlZlB0cjxBUEk6Ok9iamVjdD4+IHNlY3VyaXR5T3JpZ2luczsKICAgICAgICAgZm9yIChjb25z
dCBhdXRvJiBkYXRhUmVjb3JkIDogZGF0YVJlY29yZHMpIHsKICAgICAgICAgICAgIGZvciAoY29u
c3QgYXV0byYgb3JpZ2luIDogZGF0YVJlY29yZC5vcmlnaW5zKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwCmlu
ZGV4IDUwODEzNjQ3MTk0NDljYzE4Y2IzNWM4Mjk4NjM2OTAzODE4OGZhMDMuLjczYmRjMGFmMTY1
MTQ1OGNlMDg1OTcxNDhjYTQ0NmNkNzdlOTY1NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAKQEAgLTUy
LDcgKzUyLDcgQEAgc3RhdGljIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHRvV2Vic2l0ZURh
dGFUeXBlcyhXS1Jlc291cmNlQ2FjaGVzVG9DbGVhciBjYWMKIHZvaWQgV0tSZXNvdXJjZUNhY2hl
TWFuYWdlckdldENhY2hlT3JpZ2lucyhXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVmIGNhY2hlTWFu
YWdlciwgdm9pZCogY29udGV4dCwgV0tSZXNvdXJjZUNhY2hlTWFuYWdlckdldENhY2hlT3JpZ2lu
c0Z1bmN0aW9uIGNhbGxiYWNrKQogewogICAgIGF1dG8mIHdlYnNpdGVEYXRhU3RvcmUgPSB0b0lt
cGwocmVpbnRlcnByZXRfY2FzdDxXS1dlYnNpdGVEYXRhU3RvcmVSZWY+KGNhY2hlTWFuYWdlcikp
LT53ZWJzaXRlRGF0YVN0b3JlKCk7Ci0gICAgd2Vic2l0ZURhdGFTdG9yZS5mZXRjaERhdGEodG9X
ZWJzaXRlRGF0YVR5cGVzKFdLUmVzb3VyY2VDYWNoZXNUb0NsZWFyQWxsKSwgW2NvbnRleHQsIGNh
bGxiYWNrXShWZWN0b3I8V2Vic2l0ZURhdGFSZWNvcmQ+IGRhdGFSZWNvcmRzKSB7CisgICAgd2Vi
c2l0ZURhdGFTdG9yZS5mZXRjaERhdGEodG9XZWJzaXRlRGF0YVR5cGVzKFdLUmVzb3VyY2VDYWNo
ZXNUb0NsZWFyQWxsKSwgeyB9LCBbY29udGV4dCwgY2FsbGJhY2tdKFZlY3RvcjxXZWJzaXRlRGF0
YVJlY29yZD4gZGF0YVJlY29yZHMpIHsKICAgICAgICAgVmVjdG9yPFJlZlB0cjxBUEk6Ok9iamVj
dD4+IHNlY3VyaXR5T3JpZ2luczsKICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBkYXRhUmVjb3Jk
IDogZGF0YVJlY29yZHMpIHsKICAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgb3JpZ2luIDog
ZGF0YVJlY29yZC5vcmlnaW5zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkLm1tCmluZGV4IDZkYWYwYmNhMWZkZmM3
NjAzMmU5NWEzMjU0MWVkMzZhMDZhMmQ4OTEuLjljNjIyNTZjNGM2ZGRhZGZlMTI4MzVkNDI1ZTUz
NzdiNTg0YTcwMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJzaXRlRGF0YVJlY29yZC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmQubW0KQEAgLTI4LDYgKzI4LDggQEAKIAogI2lm
IFdLX0FQSV9FTkFCTEVECiAKKyNpbXBvcnQgIl9XS1dlYnNpdGVEYXRhU2l6ZUludGVybmFsLmgi
CisKIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVEaXNrQ2FjaGUgPSBAIldLV2Vi
c2l0ZURhdGFUeXBlRGlza0NhY2hlIjsKIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5
cGVNZW1vcnlDYWNoZSA9IEAiV0tXZWJzaXRlRGF0YVR5cGVNZW1vcnlDYWNoZSI7CiBOU1N0cmlu
ZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBlT2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGUgPSBA
IldLV2Vic2l0ZURhdGFUeXBlT2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGUiOwpAQCAtOTIsNyAr
OTQsMTMgQEAgc3RhdGljIE5TU3RyaW5nICpkYXRhVHlwZXNUb1N0cmluZyhOU1NldCAqZGF0YVR5
cGVzKQogCiAtIChOU1N0cmluZyAqKWRlc2NyaXB0aW9uCiB7Ci0gICAgcmV0dXJuIFtOU1N0cmlu
ZyBzdHJpbmdXaXRoRm9ybWF0OkAiPCVAOiAlcDsgZGlzcGxheU5hbWUgPSAlQDsgZGF0YVR5cGVz
ID0geyAlQCB9PiIsIE5TU3RyaW5nRnJvbUNsYXNzKHNlbGYuY2xhc3MpLCBzZWxmLCBzZWxmLmRp
c3BsYXlOYW1lLCBkYXRhVHlwZXNUb1N0cmluZyhzZWxmLmRhdGFUeXBlcyldOworICAgIGF1dG8g
cmVzdWx0ID0gYWRvcHROUyhbW05TTXV0YWJsZVN0cmluZyBhbGxvY10gaW5pdFdpdGhGb3JtYXQ6
QCI8JUA6ICVwOyBkaXNwbGF5TmFtZSA9ICVAOyBkYXRhVHlwZXMgPSB7ICVAIH0iLCBOU1N0cmlu
Z0Zyb21DbGFzcyhzZWxmLmNsYXNzKSwgc2VsZiwgc2VsZi5kaXNwbGF5TmFtZSwgZGF0YVR5cGVz
VG9TdHJpbmcoc2VsZi5kYXRhVHlwZXMpXSk7CisKKyAgICBpZiAoYXV0byogZGF0YVNpemUgPSBz
ZWxmLl9kYXRhU2l6ZSkKKyAgICAgICAgW3Jlc3VsdCBhcHBlbmRGb3JtYXQ6QCI7IF9kYXRhU2l6
ZSA9IHsgJWxsdSBieXRlcyB9IiwgZGF0YVNpemUudG90YWxTaXplXTsKKworICAgIFtyZXN1bHQg
YXBwZW5kU3RyaW5nOkAiPiJdOworICAgIHJldHVybiByZXN1bHQuYXV0b3JlbGVhc2UoKTsKIH0K
IAogLSAoTlNTdHJpbmcgKilkaXNwbGF5TmFtZQpAQCAtMTE0LDQgKzEyMiwxOCBAQCBzdGF0aWMg
TlNTdHJpbmcgKmRhdGFUeXBlc1RvU3RyaW5nKE5TU2V0ICpkYXRhVHlwZXMpCiAKIEBlbmQKIAor
QGltcGxlbWVudGF0aW9uIFdLV2Vic2l0ZURhdGFSZWNvcmQgKFdLUHJpdmF0ZSkKKworLSAoX1dL
V2Vic2l0ZURhdGFTaXplICopX2RhdGFTaXplCit7CisgICAgYXV0byYgc2l6ZSA9IF93ZWJzaXRl
RGF0YVJlY29yZC0+d2Vic2l0ZURhdGFSZWNvcmQoKS5zaXplOworCisgICAgaWYgKCFzaXplKQor
ICAgICAgICByZXR1cm4gbmlsOworCisgICAgcmV0dXJuIFtbX1dLV2Vic2l0ZURhdGFTaXplIGFs
bG9jXSBpbml0V2l0aFNpemU6KnNpemVdOworfQorCitAZW5kCisKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3Jk
UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVE
YXRhUmVjb3JkUHJpdmF0ZS5oCmluZGV4IDg0N2M1NGZiMTUwMjI1MWUwZjg0MWQ4ODRjZDYyNmU4
YTI2MjhkOTAuLjQ0MzNhY2EyYjhhZmU3ZDY2OGQ1Njg0NDAyMjNlZmY4ODAzMDAzYjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJl
Y29yZFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2Vic2l0ZURhdGFSZWNvcmRQcml2YXRlLmgKQEAgLTI3LDYgKzI3LDEwIEBACiAKICNpZiBXS19B
UElfRU5BQkxFRAogCitOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCitAY2xhc3MgX1dLV2Vic2l0
ZURhdGFTaXplOworCiBXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5
cGVIU1RTQ2FjaGUgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOwogV0tfRVhURVJOIE5TU3RyaW5n
ICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlTWVkaWFLZXlzIFdLX0FWQUlMQUJMRSgxMF8xMSwg
OV8wKTsKIFdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZVNlYXJj
aEZpZWxkUmVjZW50U2VhcmNoZXMgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEp
OwpAQCAtMzUsNCArMzksMTIgQEAgV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0
ZURhdGFUeXBlU2VhcmNoRmllbGRSZWNlbnRTZWFyY2hlcyBXS19BVkFJTEEKIFdLX0VYVEVSTiBO
U1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZVBsdWdJbkRhdGEgV0tfQVZBSUxBQkxF
KDEwXzExLCBOQSk7CiAjZW5kaWYKIAorQGludGVyZmFjZSBXS1dlYnNpdGVEYXRhUmVjb3JkIChX
S1ByaXZhdGUpCisKK0Bwcm9wZXJ0eSAobnVsbGFibGUsIG5vbmF0b21pYywgcmVhZG9ubHkpIF9X
S1dlYnNpdGVEYXRhU2l6ZSAqX2RhdGFTaXplOworCitAZW5kCisKK05TX0FTU1VNRV9OT05OVUxM
X0VORAorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXggM2E0OWZiMWM3OTVmZmQ0NjJmNTYy
NDZlYjYzN2Q3ZDM0Njk5OTNkYi4uNTFiZDk1YmJkYmZhMzVmN2EzZjc2NDAxMmQxNjBmY2ZiMzhi
MDM1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KQEAgLTMwLDYgKzMwLDcgQEAKIAogI2ltcG9ydCAiV0tO
U0FycmF5LmgiCiAjaW1wb3J0ICJXS1dlYnNpdGVEYXRhUmVjb3JkSW50ZXJuYWwuaCIKKyNpbXBv
cnQgIldlYnNpdGVEYXRhRmV0Y2hPcHRpb24uaCIKICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgog
CiBAaW1wbGVtZW50YXRpb24gV0tXZWJzaXRlRGF0YVN0b3JlCkBAIC0xMDMsMTcgKzEwNCw3IEBA
IHN0YXRpYyBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IHRvU3lzdGVtQ2xv
Y2tUaW1lKE5TRGF0ZSAqZGF0ZSkKIAogLSAodm9pZClmZXRjaERhdGFSZWNvcmRzT2ZUeXBlczoo
TlNTZXQgKilkYXRhVHlwZXMgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKFdLX0FSUkFZKFdL
V2Vic2l0ZURhdGFSZWNvcmQgKikgKikpY29tcGxldGlvbkhhbmRsZXIKIHsKLSAgICBhdXRvIGNv
bXBsZXRpb25IYW5kbGVyQ29weSA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcik7Ci0K
LSAgICBfd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFTdG9yZSgpLmZldGNoRGF0YShXZWJL
aXQ6OnRvV2Vic2l0ZURhdGFUeXBlcyhkYXRhVHlwZXMpLCBbY29tcGxldGlvbkhhbmRsZXJDb3B5
XShWZWN0b3I8V2ViS2l0OjpXZWJzaXRlRGF0YVJlY29yZD4gd2Vic2l0ZURhdGFSZWNvcmRzKSB7
Ci0gICAgICAgIFZlY3RvcjxSZWZQdHI8QVBJOjpPYmplY3Q+PiBlbGVtZW50czsKLSAgICAgICAg
ZWxlbWVudHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh3ZWJzaXRlRGF0YVJlY29yZHMuc2l6ZSgp
KTsKLQotICAgICAgICBmb3IgKGF1dG8mIHdlYnNpdGVEYXRhUmVjb3JkIDogd2Vic2l0ZURhdGFS
ZWNvcmRzKQotICAgICAgICAgICAgZWxlbWVudHMudW5jaGVja2VkQXBwZW5kKEFQSTo6V2Vic2l0
ZURhdGFSZWNvcmQ6OmNyZWF0ZShXVEZNb3ZlKHdlYnNpdGVEYXRhUmVjb3JkKSkpOwotCi0gICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyQ29weSh3cmFwcGVyKEFQSTo6QXJyYXk6OmNyZWF0ZShXVEZN
b3ZlKGVsZW1lbnRzKSkpKTsKLSAgICB9KTsKKyAgICBbc2VsZiBfZmV0Y2hEYXRhUmVjb3Jkc09m
VHlwZXM6ZGF0YVR5cGVzIHdpdGhPcHRpb25zOjAgY29tcGxldGlvbkhhbmRsZXI6Y29tcGxldGlv
bkhhbmRsZXJdOwogfQogCiAtICh2b2lkKXJlbW92ZURhdGFPZlR5cGVzOihOU1NldCAqKWRhdGFU
eXBlcyBtb2RpZmllZFNpbmNlOihOU0RhdGUgKilkYXRlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lk
ICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcgpAQCAtMTUyLDQgKzE0MywyNyBAQCBzdGF0aWMg
VmVjdG9yPFdlYktpdDo6V2Vic2l0ZURhdGFSZWNvcmQ+IHRvV2Vic2l0ZURhdGFSZWNvcmRzKE5T
QXJyYXkgKmRhdGFSZWNvcgogCiBAZW5kCiAKK0BpbXBsZW1lbnRhdGlvbiBXS1dlYnNpdGVEYXRh
U3RvcmUgKFdLUHJpdmF0ZSkKKworLSAodm9pZClfZmV0Y2hEYXRhUmVjb3Jkc09mVHlwZXM6KFdL
X1NFVChOU1N0cmluZyAqKSAqKWRhdGFUeXBlcyB3aXRoT3B0aW9uczooX1dLV2Vic2l0ZURhdGFT
dG9yZUZldGNoT3B0aW9ucylvcHRpb25zIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShXS19B
UlJBWShXS1dlYnNpdGVEYXRhUmVjb3JkICopICopKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAg
YXV0byBjb21wbGV0aW9uSGFuZGxlckNvcHkgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRs
ZXIpOworCisgICAgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4gZmV0
Y2hPcHRpb25zOworICAgIGlmIChvcHRpb25zICYgX1dLV2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0
aW9uQ29tcHV0ZVNpemVzKQorICAgICAgICBmZXRjaE9wdGlvbnMgfD0gV2ViS2l0OjpXZWJzaXRl
RGF0YUZldGNoT3B0aW9uOjpDb21wdXRlU2l6ZXM7CisKKyAgICBfd2Vic2l0ZURhdGFTdG9yZS0+
d2Vic2l0ZURhdGFTdG9yZSgpLmZldGNoRGF0YShXZWJLaXQ6OnRvV2Vic2l0ZURhdGFUeXBlcyhk
YXRhVHlwZXMpLCBmZXRjaE9wdGlvbnMsIFtjb21wbGV0aW9uSGFuZGxlckNvcHldKFZlY3RvcjxX
ZWJLaXQ6OldlYnNpdGVEYXRhUmVjb3JkPiB3ZWJzaXRlRGF0YVJlY29yZHMpIHsKKyAgICAgICAg
VmVjdG9yPFJlZlB0cjxBUEk6Ok9iamVjdD4+IGVsZW1lbnRzOworICAgICAgICBlbGVtZW50cy5y
ZXNlcnZlSW5pdGlhbENhcGFjaXR5KHdlYnNpdGVEYXRhUmVjb3Jkcy5zaXplKCkpOworCisgICAg
ICAgIGZvciAoYXV0byYgd2Vic2l0ZURhdGFSZWNvcmQgOiB3ZWJzaXRlRGF0YVJlY29yZHMpCisg
ICAgICAgICAgICBlbGVtZW50cy51bmNoZWNrZWRBcHBlbmQoQVBJOjpXZWJzaXRlRGF0YVJlY29y
ZDo6Y3JlYXRlKFdURk1vdmUod2Vic2l0ZURhdGFSZWNvcmQpKSk7CisKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXJDb3B5KHdyYXBwZXIoQVBJOjpBcnJheTo6Y3JlYXRlKFdURk1vdmUoZWxlbWVu
dHMpKSkpOworICAgIH0pOworfQorCitAZW5kCisKICNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVE
YXRhU3RvcmVJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oCmluZGV4IDc4NmIxMmY1MmI5ZGE2NmQ1NzY4NDY2
YTBkZDc0YTMwNjYyNmEwNTIuLjlkMzljOGFhN2Q4ZDMzNTIzNjQ4MDIwNDUwMWUxN2QwNTJlOTA2
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJz
aXRlRGF0YVN0b3JlSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmgKQEAgLTIzLDcgKzIzLDcgQEAKICAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaW1wb3J0ICJXS1dlYnNp
dGVEYXRhU3RvcmUuaCIKKyNpbXBvcnQgIldLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaCIKIAog
I2lmIFdLX0FQSV9FTkFCTEVECiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTNkODA1MmIxYWU0Y2RkZTVlOWE5Nzc4ZTRiODMwZGQ4MmM2YTNjZgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlUHJpdmF0ZS5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJL
aXQvV0tXZWJzaXRlRGF0YVN0b3JlLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRAorCitOU19BU1NV
TUVfTk9OTlVMTF9CRUdJTgorCit0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLV2Vi
c2l0ZURhdGFTdG9yZUZldGNoT3B0aW9ucykgeworICAgIF9XS1dlYnNpdGVEYXRhU3RvcmVGZXRj
aE9wdGlvbkNvbXB1dGVTaXplcyA9IDEgPDwgMCwKK30gV0tfRU5VTV9BVkFJTEFCTEUoV0tfTUFD
X1RCQSwgV0tfSU9TX1RCQSk7CisKK0BpbnRlcmZhY2UgV0tXZWJzaXRlRGF0YVN0b3JlIChXS1By
aXZhdGUpCisKKy0gKHZvaWQpX2ZldGNoRGF0YVJlY29yZHNPZlR5cGVzOihXS19TRVQoTlNTdHJp
bmcgKikgKilkYXRhVHlwZXMgd2l0aE9wdGlvbnM6KF9XS1dlYnNpdGVEYXRhU3RvcmVGZXRjaE9w
dGlvbnMpb3B0aW9ucyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoV0tfQVJSQVkoV0tXZWJz
aXRlRGF0YVJlY29yZCAqKSAqKSljb21wbGV0aW9uSGFuZGxlcjsKKworQGVuZAorCitOU19BU1NV
TUVfTk9OTlVMTF9FTkQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU2l6ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVNpemUuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYmU2MzI5
ZmQxODYyZjExODQ3YzRmZjE4NzIxYTdlOTYzZjRmOGNlCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVNpemUuaApAQCAt
MCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5o
PgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9u
Lmg+CisKK05TX0FTU1VNRV9OT05OVUxMX0JFR0lOCisKK1dLX0NMQVNTX0FWQUlMQUJMRShXS19N
QUNfVEJBLCBXS19JT1NfVEJBKQorQGludGVyZmFjZSBfV0tXZWJzaXRlRGF0YVNpemUgOiBOU09i
amVjdAorCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIHVuc2lnbmVkIGxvbmcgbG9u
ZyB0b3RhbFNpemU7CisKKy0gKHVuc2lnbmVkIGxvbmcgbG9uZylzaXplT2ZEYXRhVHlwZXM6KFdL
X1NFVChOU1N0cmluZyAqKSAqKWRhdGFUeXBlczsKKworQGVuZAorCitOU19BU1NVTUVfTk9OTlVM
TF9FTkQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1dlYnNpdGVEYXRhU2l6ZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTaXplLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiOTVmODE1ZTNhNjZm
ZjU1YzJiZjkzNWVjNzlkYmNjMTljNTA1MjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU2l6ZS5tbQpAQCAtMCwwICsx
LDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJfV0tXZWJz
aXRlRGF0YVNpemVJbnRlcm5hbC5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9ydCAi
V0tXZWJzaXRlRGF0YVJlY29yZEludGVybmFsLmgiCisKK0BpbXBsZW1lbnRhdGlvbiBfV0tXZWJz
aXRlRGF0YVNpemUKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoU2l6ZTooY29uc3QgV2ViS2l0
OjpXZWJzaXRlRGF0YVJlY29yZDo6U2l6ZSYpc2l6ZQoreworICAgIGlmICghKHNlbGYgPSBbc3Vw
ZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX3NpemUgPSBzaXplOworCisg
ICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHVuc2lnbmVkIGxvbmcgbG9uZyl0b3RhbFNpemUKK3sK
KyAgICByZXR1cm4gX3NpemUudG90YWxTaXplOworfQorCistICh1bnNpZ25lZCBsb25nIGxvbmcp
c2l6ZU9mRGF0YVR5cGVzOihOU1NldDxOU1N0cmluZyAqPiAqKWRhdGFUeXBlcworeworICAgIHVu
c2lnbmVkIGxvbmcgbG9uZyBzaXplID0gMDsKKworICAgIGZvciAoTlNTdHJpbmcgKmRhdGFUeXBl
IGluIGRhdGFUeXBlcykgeworICAgICAgICBpZiAoYXV0byB3ZWJzaXRlRGF0YVR5cGUgPSBXZWJL
aXQ6OnRvV2Vic2l0ZURhdGFUeXBlKGRhdGFUeXBlKSkKKyAgICAgICAgICAgIHNpemUgKz0gX3Np
emUudHlwZVNpemVzLmdldChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oKndlYnNpdGVEYXRhVHlwZSkp
OworICAgIH0KKyAgICAKKyAgICByZXR1cm4gc2l6ZTsKK30KKworQGVuZAorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURh
dGFTaXplSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
V2Vic2l0ZURhdGFTaXplSW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZWE2Yzg3ZTQwMzdmNzY4MTk0
Nzg0MTVlNTM1ODhiNDhjNWU5MTg5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVNpemVJbnRlcm5hbC5oCkBAIC0wLDAg
KzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJfV0tXZWJzaXRlRGF0YVNpemUuaCIKKwor
I2lmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBvcnQgIldlYnNpdGVEYXRhUmVjb3JkLmgiCisKK0Bp
bnRlcmZhY2UgX1dLV2Vic2l0ZURhdGFTaXplICgpIHsKKyAgICBXZWJLaXQ6OldlYnNpdGVEYXRh
UmVjb3JkOjpTaXplIF9zaXplOworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTaXplOihj
b25zdCBXZWJLaXQ6OldlYnNpdGVEYXRhUmVjb3JkOjpTaXplJilzaXplOworCitAZW5kCisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAwM2Y0M2YzYjVmZDE0MDU0MTliZjRiODkxNWI5NTIz
OTZiMzg1MjgyLi5iYjA0ODIyNmYxOTE1MTZkYzBhZmUyMDcxZWE1MTVhMTg1YTM2MTk4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcApAQCAtMTE4LDcgKzExOCw3IEBAIERvd25sb2FkUHJveHkqIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OmNyZWF0ZURvd25sb2FkUHJveHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
CiAgICAgcmV0dXJuIG1fZG93bmxvYWRQcm94eU1hcC0+Y3JlYXRlRG93bmxvYWRQcm94eShtX3By
b2Nlc3NQb29sLCByZXNvdXJjZVJlcXVlc3QpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OmZldGNoV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNp
dGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKFdlYnNpdGVEYXRhKT4g
Y29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmZldGNoV2Vic2l0
ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0
YVR5cGVzLCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4gZmV0Y2hPcHRpb25zLCBz
dGQ6OmZ1bmN0aW9uPHZvaWQgKFdlYnNpdGVEYXRhKT4gY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgQVNTRVJUKGNhblNlbmRNZXNzYWdlKCkpOwogCkBAIC0xMjksNyArMTI5LDcgQEAgdm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKFNlc3Npb25JRCBzZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJzaXQKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZSh3ZWJz
aXRlRGF0YSkpOwogICAgIH0pOwogCi0gICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6RmV0
Y2hXZWJzaXRlRGF0YShzZXNzaW9uSUQsIGRhdGFUeXBlcywgY2FsbGJhY2tJRCksIDApOworICAg
IHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpGZXRjaFdlYnNpdGVEYXRhKHNlc3Npb25J
RCwgZGF0YVR5cGVzLCBmZXRjaE9wdGlvbnMsIGNhbGxiYWNrSUQpLCAwKTsKIH0KIAogdm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIHN0ZDo6Y2hy
b25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgIHN0ZDo6ZnVuY3Rp
b248dm9pZCAoKT4gY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggZjM3YWI2ZTc0
YWZlZjZiZWU3ZTEyMzYyOGRiMjI5YzFhNzUyNzJlNC4uMGZmM2ExNGIzMDkyZDNhODk2MDM3MDVl
MmEwYTBhM2QzZmE4ODVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtNDcsNiArNDcsNyBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIGNsYXNzIERvd25sb2FkUHJveHk7CiBjbGFzcyBEb3dubG9hZFByb3h5TWFw
OwogY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CitlbnVtIGNsYXNzIFdlYnNpdGVEYXRhRmV0Y2hPcHRp
b247CiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVyczsKIApAQCAtNTksNyArNjAsNyBAQCBwdWJsaWM6CiAKICAgICBEb3du
bG9hZFByb3h5KiBjcmVhdGVEb3dubG9hZFByb3h5KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYpOwogCi0gICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCwg
T3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIHN0ZDo6ZnVuY3Rpb248dm9pZCAoV2Vic2l0ZURh
dGEpPiBjb21wbGV0aW9uSGFuZGxlcik7CisgICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRhKFdlYkNv
cmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIE9wdGlvblNldDxXZWJz
aXRlRGF0YUZldGNoT3B0aW9uPiwgc3RkOjpmdW5jdGlvbjx2b2lkIChXZWJzaXRlRGF0YSk+IGNv
bXBsZXRpb25IYW5kbGVyKTsKICAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNl
c3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIHN0ZDo6Y2hyb25vOjpzeXN0ZW1f
Y2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBj
b21wbGV0aW9uSGFuZGxlcik7CiAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMo
V2ViQ29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+LCBj
b25zdCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPj4mIG9yaWdpbnMsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBjb29raWVIb3N0TmFtZXMsIHN0ZDo6ZnVuY3Rpb248dm9pZCAo
KT4gY29tcGxldGlvbkhhbmRsZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFSZWNvcmQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVJlY29yZC5oCmluZGV4IDMwY2EzNzJlNzVi
NDEzZWMzMmNiNDU0NzIzZDJmZDAzNmJkZDUwZGUuLjU0ZGJkNzU2MTIyMGJhYWM2NjJiY2Y5ODEy
Y2VjN2MzZDViOGYzYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVJlY29yZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVJlY29yZC5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkhhc2guaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKQEAgLTU0LDYgKzU1LDEzIEBAIHN0cnVjdCBXZWJzaXRlRGF0YVJlY29y
ZCB7CiAKICAgICBTdHJpbmcgZGlzcGxheU5hbWU7CiAgICAgT3B0aW9uU2V0PFdlYnNpdGVEYXRh
VHlwZT4gdHlwZXM7CisKKyAgICBzdHJ1Y3QgU2l6ZSB7CisgICAgICAgIHVpbnQ2NF90IHRvdGFs
U2l6ZTsKKyAgICAgICAgSGFzaE1hcDx1bnNpZ25lZCwgdWludDY0X3Q+IHR5cGVTaXplczsKKyAg
ICB9OworICAgIE9wdGlvbmFsPFNpemU+IHNpemU7CisKICAgICBIYXNoU2V0PFJlZlB0cjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbj4+IG9yaWdpbnM7CiAgICAgSGFzaFNldDxTdHJpbmc+IGNvb2tp
ZUhvc3ROYW1lczsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmNwcAppbmRleCBkNzM1M2Q4OWRjYjA4ZDI1OWM0NWMyNTZmMWJmMTUzZDQ4YjRkYzA5Li42MmFi
MzQ2NTMwMTM5ODdlN2QwY2JjZDJjYzM4MDk1NTVhZjI0YTlhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3Bw
CkBAIC0xNTAsMTEgKzE1MCwxMiBAQCBzdGF0aWMgUHJvY2Vzc0FjY2Vzc1R5cGUgY29tcHV0ZVdl
YlByb2Nlc3NBY2Nlc3NUeXBlRm9yRGF0YUZldGNoKE9wdGlvblNldDxXZWJzaQogICAgIHJldHVy
biBwcm9jZXNzQWNjZXNzVHlwZTsKIH0KIAotdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpmZXRjaERh
dGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBzdGQ6OmZ1bmN0aW9uPHZv
aWQgKFZlY3RvcjxXZWJzaXRlRGF0YVJlY29yZD4pPiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQg
V2Vic2l0ZURhdGFTdG9yZTo6ZmV0Y2hEYXRhKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRh
dGFUeXBlcywgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9ucywg
c3RkOjpmdW5jdGlvbjx2b2lkIChWZWN0b3I8V2Vic2l0ZURhdGFSZWNvcmQ+KT4gY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgc3RydWN0IENhbGxiYWNrQWdncmVnYXRvciBmaW5hbCA6IFRocmVh
ZFNhZmVSZWZDb3VudGVkPENhbGxiYWNrQWdncmVnYXRvcj4gewotICAgICAgICBleHBsaWNpdCBD
YWxsYmFja0FnZ3JlZ2F0b3Ioc3RkOjpmdW5jdGlvbjx2b2lkIChWZWN0b3I8V2Vic2l0ZURhdGFS
ZWNvcmQ+KT4gY29tcGxldGlvbkhhbmRsZXIpCi0gICAgICAgICAgICA6IGNvbXBsZXRpb25IYW5k
bGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQorICAgICAgICBleHBsaWNpdCBDYWxsYmFj
a0FnZ3JlZ2F0b3IoT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9u
cywgc3RkOjpmdW5jdGlvbjx2b2lkIChWZWN0b3I8V2Vic2l0ZURhdGFSZWNvcmQ+KT4gY29tcGxl
dGlvbkhhbmRsZXIpCisgICAgICAgICAgICA6IGZldGNoT3B0aW9ucyhmZXRjaE9wdGlvbnMpCisg
ICAgICAgICAgICAsIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KQogICAgICAgICB7CiAgICAgICAgIH0KIApAQCAtMTgzLDYgKzE4NCwxNCBAQCB2b2lkIFdlYnNp
dGVEYXRhU3RvcmU6OmZldGNoRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlw
ZXMsIHN0ZDo6ZnVuYwogICAgICAgICAgICAgICAgICAgICByZWNvcmQuZGlzcGxheU5hbWUgPSBX
VEZNb3ZlKGRpc3BsYXlOYW1lKTsKIAogICAgICAgICAgICAgICAgIHJlY29yZC5hZGQoZW50cnku
dHlwZSwgV1RGTW92ZShlbnRyeS5vcmlnaW4pKTsKKworICAgICAgICAgICAgICAgIGlmIChmZXRj
aE9wdGlvbnMuY29udGFpbnMoV2Vic2l0ZURhdGFGZXRjaE9wdGlvbjo6Q29tcHV0ZVNpemVzKSkg
eworICAgICAgICAgICAgICAgICAgICBpZiAoIXJlY29yZC5zaXplKQorICAgICAgICAgICAgICAg
ICAgICAgICAgcmVjb3JkLnNpemUgPSBXZWJzaXRlRGF0YVJlY29yZDo6U2l6ZSB7IDAsIHsgfSB9
OworCisgICAgICAgICAgICAgICAgICAgIHJlY29yZC5zaXplLT50b3RhbFNpemUgKz0gZW50cnku
c2l6ZTsKKyAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnNpemUtPnR5cGVTaXplcy5hZGQoc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KGVudHJ5LnR5cGUpLCAwKS5pdGVyYXRvci0+dmFsdWUgKz0gZW50
cnkuc2l6ZTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAg
IGZvciAoYXV0byYgaG9zdE5hbWUgOiB3ZWJzaXRlRGF0YS5ob3N0TmFtZXNXaXRoQ29va2llcykg
ewpAQCAtMjMyLDEzICsyNDEsMTUgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpmZXRjaERhdGEo
T3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBzdGQ6OmZ1bmMKICAgICAgICAg
ICAgIH0pOwogICAgICAgICB9CiAKKyAgICAgICAgY29uc3QgT3B0aW9uU2V0PFdlYnNpdGVEYXRh
RmV0Y2hPcHRpb24+IGZldGNoT3B0aW9uczsKKwogICAgICAgICB1bnNpZ25lZCBwZW5kaW5nQ2Fs
bGJhY2tzID0gMDsKICAgICAgICAgc3RkOjpmdW5jdGlvbjx2b2lkIChWZWN0b3I8V2Vic2l0ZURh
dGFSZWNvcmQ+KT4gY29tcGxldGlvbkhhbmRsZXI7CiAKICAgICAgICAgSGFzaE1hcDxTdHJpbmcs
IFdlYnNpdGVEYXRhUmVjb3JkPiBtX3dlYnNpdGVEYXRhUmVjb3JkczsKICAgICB9OwogCi0gICAg
UmVmUHRyPENhbGxiYWNrQWdncmVnYXRvcj4gY2FsbGJhY2tBZ2dyZWdhdG9yID0gYWRvcHRSZWYo
bmV3IENhbGxiYWNrQWdncmVnYXRvcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkpOworICAg
IFJlZlB0cjxDYWxsYmFja0FnZ3JlZ2F0b3I+IGNhbGxiYWNrQWdncmVnYXRvciA9IGFkb3B0UmVm
KG5ldyBDYWxsYmFja0FnZ3JlZ2F0b3IoZmV0Y2hPcHRpb25zLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSkpOwogCiAgICAgYXV0byBuZXR3b3JrUHJvY2Vzc0FjY2Vzc1R5cGUgPSBjb21wdXRl
TmV0d29ya1Byb2Nlc3NBY2Nlc3NUeXBlRm9yRGF0YUZldGNoKGRhdGFUeXBlcywgIWlzUGVyc2lz
dGVudCgpKTsKICAgICBpZiAobmV0d29ya1Byb2Nlc3NBY2Nlc3NUeXBlICE9IFByb2Nlc3NBY2Nl
c3NUeXBlOjpOb25lKSB7CkBAIC0yNTgsNyArMjY5LDcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3Jl
OjpmZXRjaERhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBzdGQ6OmZ1
bmMKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5hZGRQ
ZW5kaW5nQ2FsbGJhY2soKTsKLSAgICAgICAgICAgIHByb2Nlc3NQb29sLT5uZXR3b3JrUHJvY2Vz
cygpLT5mZXRjaFdlYnNpdGVEYXRhKG1fc2Vzc2lvbklELCBkYXRhVHlwZXMsIFtjYWxsYmFja0Fn
Z3JlZ2F0b3IsIHByb2Nlc3NQb29sXShXZWJzaXRlRGF0YSB3ZWJzaXRlRGF0YSkgeworICAgICAg
ICAgICAgcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9jZXNzKCktPmZldGNoV2Vic2l0ZURhdGEobV9z
ZXNzaW9uSUQsIGRhdGFUeXBlcywgZmV0Y2hPcHRpb25zLCBbY2FsbGJhY2tBZ2dyZWdhdG9yLCBw
cm9jZXNzUG9vbF0oV2Vic2l0ZURhdGEgd2Vic2l0ZURhdGEpIHsKICAgICAgICAgICAgICAgICBj
YWxsYmFja0FnZ3JlZ2F0b3ItPnJlbW92ZVBlbmRpbmdDYWxsYmFjayhXVEZNb3ZlKHdlYnNpdGVE
YXRhKSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfQpAQCAtMjk2LDcgKzMwNyw3IEBAIHZv
aWQgV2Vic2l0ZURhdGFTdG9yZTo6ZmV0Y2hEYXRhKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+
IGRhdGFUeXBlcywgc3RkOjpmdW5jCiAgICAgICAgICAgICBXZWJzaXRlRGF0YSB3ZWJzaXRlRGF0
YTsKIAogICAgICAgICAgICAgd2hpbGUgKCFvcmlnaW5zLmlzRW1wdHkoKSkKLSAgICAgICAgICAg
ICAgICB3ZWJzaXRlRGF0YS5lbnRyaWVzLmFwcGVuZChXZWJzaXRlRGF0YTo6RW50cnkgeyBvcmln
aW5zLnRha2VBbnkoKSwgV2Vic2l0ZURhdGFUeXBlOjpTZXNzaW9uU3RvcmFnZSB9KTsKKyAgICAg
ICAgICAgICAgICB3ZWJzaXRlRGF0YS5lbnRyaWVzLmFwcGVuZChXZWJzaXRlRGF0YTo6RW50cnkg
eyBvcmlnaW5zLnRha2VBbnkoKSwgV2Vic2l0ZURhdGFUeXBlOjpTZXNzaW9uU3RvcmFnZSwgMCB9
KTsKIAogICAgICAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5yZW1vdmVQZW5kaW5nQ2FsbGJh
Y2soV1RGTW92ZSh3ZWJzaXRlRGF0YSkpOwogICAgICAgICB9KTsKQEAgLTMwOSw3ICszMjAsNyBA
QCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmZldGNoRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFU
eXBlPiBkYXRhVHlwZXMsIHN0ZDo6ZnVuYwogICAgICAgICAgICAgV2Vic2l0ZURhdGEgd2Vic2l0
ZURhdGE7CiAKICAgICAgICAgICAgIHdoaWxlICghb3JpZ2lucy5pc0VtcHR5KCkpCi0gICAgICAg
ICAgICAgICAgd2Vic2l0ZURhdGEuZW50cmllcy5hcHBlbmQoV2Vic2l0ZURhdGE6OkVudHJ5IHsg
b3JpZ2lucy50YWtlQW55KCksIFdlYnNpdGVEYXRhVHlwZTo6TG9jYWxTdG9yYWdlIH0pOworICAg
ICAgICAgICAgICAgIHdlYnNpdGVEYXRhLmVudHJpZXMuYXBwZW5kKFdlYnNpdGVEYXRhOjpFbnRy
eSB7IG9yaWdpbnMudGFrZUFueSgpLCBXZWJzaXRlRGF0YVR5cGU6OkxvY2FsU3RvcmFnZSwgMCB9
KTsKIAogICAgICAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5yZW1vdmVQZW5kaW5nQ2FsbGJh
Y2soV1RGTW92ZSh3ZWJzaXRlRGF0YSkpOwogICAgICAgICB9KTsKQEAgLTMyMCwxOSArMzMxLDI1
IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6ZmV0Y2hEYXRhKE9wdGlvblNldDxXZWJzaXRlRGF0
YVR5cGU+IGRhdGFUeXBlcywgc3RkOjpmdW5jCiAKICAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9y
LT5hZGRQZW5kaW5nQ2FsbGJhY2soKTsKIAotICAgICAgICBtX3F1ZXVlLT5kaXNwYXRjaChbYXBw
bGljYXRpb25DYWNoZURpcmVjdG9yeSwgY2FsbGJhY2tBZ2dyZWdhdG9yXSB7CisgICAgICAgIG1f
cXVldWUtPmRpc3BhdGNoKFtmZXRjaE9wdGlvbnMsIGFwcGxpY2F0aW9uQ2FjaGVEaXJlY3Rvcnks
IGNhbGxiYWNrQWdncmVnYXRvcl0gewogICAgICAgICAgICAgYXV0byBzdG9yYWdlID0gV2ViQ29y
ZTo6QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNyZWF0ZShhcHBsaWNhdGlvbkNhY2hlRGlyZWN0
b3J5LnN0cmluZygpLCAiRmlsZXMiKTsKIAorICAgICAgICAgICAgV2Vic2l0ZURhdGEqIHdlYnNp
dGVEYXRhID0gbmV3IFdlYnNpdGVEYXRhOworCiAgICAgICAgICAgICBIYXNoU2V0PFJlZlB0cjxX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4+IG9yaWdpbnM7CiAgICAgICAgICAgICBzdG9yYWdlLT5n
ZXRPcmlnaW5zV2l0aENhY2hlKG9yaWdpbnMpOwogCi0gICAgICAgICAgICBXVEY6OlJ1bkxvb3A6
Om1haW4oKS5kaXNwYXRjaChbY2FsbGJhY2tBZ2dyZWdhdG9yLCBvcmlnaW5zXSgpIG11dGFibGUg
ewotICAgICAgICAgICAgICAgIFdlYnNpdGVEYXRhIHdlYnNpdGVEYXRhOworICAgICAgICAgICAg
Zm9yIChhdXRvJiBvcmlnaW4gOiBvcmlnaW5zKSB7CisgICAgICAgICAgICAgICAgdWludDY0X3Qg
c2l6ZSA9IGZldGNoT3B0aW9ucy5jb250YWlucyhXZWJzaXRlRGF0YUZldGNoT3B0aW9uOjpDb21w
dXRlU2l6ZXMpID8gc3RvcmFnZS0+ZGlza1VzYWdlRm9yT3JpZ2luKCpvcmlnaW4pIDogMDsKKyAg
ICAgICAgICAgICAgICBXZWJzaXRlRGF0YTo6RW50cnkgZW50cnkgeyBvcmlnaW4sIFdlYnNpdGVE
YXRhVHlwZTo6T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGUsIHNpemUgfTsKIAotICAgICAgICAg
ICAgICAgIGZvciAoYXV0byYgb3JpZ2luIDogb3JpZ2lucykKLSAgICAgICAgICAgICAgICAgICAg
d2Vic2l0ZURhdGEuZW50cmllcy5hcHBlbmQoV2Vic2l0ZURhdGE6OkVudHJ5IHsgb3JpZ2luLCBX
ZWJzaXRlRGF0YVR5cGU6Ok9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlIH0pOworICAgICAgICAg
ICAgICAgIHdlYnNpdGVEYXRhLT5lbnRyaWVzLmFwcGVuZChXVEZNb3ZlKGVudHJ5KSk7CisgICAg
ICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPnJlbW92ZVBl
bmRpbmdDYWxsYmFjayhXVEZNb3ZlKHdlYnNpdGVEYXRhKSk7CisgICAgICAgICAgICBXVEY6OlJ1
bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY2FsbGJhY2tBZ2dyZWdhdG9yLCBvcmlnaW5zLCB3ZWJz
aXRlRGF0YV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3It
PnJlbW92ZVBlbmRpbmdDYWxsYmFjayhXVEZNb3ZlKCp3ZWJzaXRlRGF0YSkpOworCisgICAgICAg
ICAgICAgICAgZGVsZXRlIHdlYnNpdGVEYXRhOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OwogICAgIH0KQEAgLTM0OSw3ICszNjYsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmZldGNo
RGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIHN0ZDo6ZnVuYwogICAg
ICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjYWxsYmFja0FnZ3JlZ2F0b3IsIG9y
aWdpbnNdKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgV2Vic2l0ZURhdGEgd2Vic2l0ZURh
dGE7CiAgICAgICAgICAgICAgICAgZm9yIChhdXRvJiBvcmlnaW4gOiBvcmlnaW5zKQotICAgICAg
ICAgICAgICAgICAgICB3ZWJzaXRlRGF0YS5lbnRyaWVzLmFwcGVuZChXZWJzaXRlRGF0YTo6RW50
cnkgeyBXVEZNb3ZlKG9yaWdpbiksIFdlYnNpdGVEYXRhVHlwZTo6V2ViU1FMRGF0YWJhc2VzIH0p
OworICAgICAgICAgICAgICAgICAgICB3ZWJzaXRlRGF0YS5lbnRyaWVzLmFwcGVuZChXZWJzaXRl
RGF0YTo6RW50cnkgeyBXVEZNb3ZlKG9yaWdpbiksIFdlYnNpdGVEYXRhVHlwZTo6V2ViU1FMRGF0
YWJhc2VzLCAwIH0pOwogCiAgICAgICAgICAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5yZW1v
dmVQZW5kaW5nQ2FsbGJhY2soV1RGTW92ZSh3ZWJzaXRlRGF0YSkpOwogICAgICAgICAgICAgfSk7
CkBAIC0zODAsNyArMzk3LDcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpmZXRjaERhdGEoT3B0
aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBzdGQ6OmZ1bmMKICAgICAgICAgICAg
IFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY2FsbGJhY2tBZ2dyZWdhdG9yLCBvcmlnaW5zXSgp
IG11dGFibGUgewogICAgICAgICAgICAgICAgIFdlYnNpdGVEYXRhIHdlYnNpdGVEYXRhOwogICAg
ICAgICAgICAgICAgIGZvciAoYXV0byYgb3JpZ2luIDogb3JpZ2lucykKLSAgICAgICAgICAgICAg
ICAgICAgd2Vic2l0ZURhdGEuZW50cmllcy5hcHBlbmQoV2Vic2l0ZURhdGE6OkVudHJ5IHsgV1RG
TW92ZShvcmlnaW4pLCBXZWJzaXRlRGF0YVR5cGU6Ok1lZGlhS2V5cyB9KTsKKyAgICAgICAgICAg
ICAgICAgICAgd2Vic2l0ZURhdGEuZW50cmllcy5hcHBlbmQoV2Vic2l0ZURhdGE6OkVudHJ5IHsg
V1RGTW92ZShvcmlnaW4pLCBXZWJzaXRlRGF0YVR5cGU6Ok1lZGlhS2V5cywgMCB9KTsKIAogICAg
ICAgICAgICAgICAgIGNhbGxiYWNrQWdncmVnYXRvci0+cmVtb3ZlUGVuZGluZ0NhbGxiYWNrKFdU
Rk1vdmUod2Vic2l0ZURhdGEpKTsKICAgICAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXgg
OGVkOTAzNDA1YTE0NTczNmZkYjdlZjFhNjEyNmZjNDAzOTJhNzNiMS4uYzU4MjdhZmY3ZWJiNWE2
NmQxNzRkZjlkM2YwZTRmMTkzMGFiNDY0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC00Niw2ICs0Niw3
IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgU3RvcmFnZU1hbmFnZXI7CiBjbGFzcyBXZWJQ
YWdlUHJveHk7CiBjbGFzcyBXZWJQcm9jZXNzUG9vbDsKK2VudW0gY2xhc3MgV2Vic2l0ZURhdGFG
ZXRjaE9wdGlvbjsKIGVudW0gY2xhc3MgV2Vic2l0ZURhdGFUeXBlOwogc3RydWN0IFdlYnNpdGVE
YXRhUmVjb3JkOwogCkBAIC03NCw3ICs3NSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2b2lk
IGNsb25lU2Vzc2lvbkRhdGEoV2ViUGFnZVByb3h5JiBzb3VyY2VQYWdlLCBXZWJQYWdlUHJveHkm
IG5ld1BhZ2UpOwogCi0gICAgdm9pZCBmZXRjaERhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlw
ZT4sIHN0ZDo6ZnVuY3Rpb248dm9pZCAoVmVjdG9yPFdlYnNpdGVEYXRhUmVjb3JkPik+IGNvbXBs
ZXRpb25IYW5kbGVyKTsKKyAgICB2b2lkIGZldGNoRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFU
eXBlPiwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+LCBzdGQ6OmZ1bmN0aW9uPHZv
aWQgKFZlY3RvcjxXZWJzaXRlRGF0YVJlY29yZD4pPiBjb21wbGV0aW9uSGFuZGxlcik7CiAgICAg
dm9pZCByZW1vdmVEYXRhKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBzdGQ6OmNocm9ubzo6
c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIHN0ZDo6ZnVuY3Rpb248dm9p
ZCAoKT4gY29tcGxldGlvbkhhbmRsZXIpOwogICAgIHZvaWQgcmVtb3ZlRGF0YShPcHRpb25TZXQ8
V2Vic2l0ZURhdGFUeXBlPiwgY29uc3QgVmVjdG9yPFdlYnNpdGVEYXRhUmVjb3JkPiYsIHN0ZDo6
ZnVuY3Rpb248dm9pZCAoKT4gY29tcGxldGlvbkhhbmRsZXIpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTM4YzZmOGNmNjBh
OGEzMGQxMWFkYTg0NmMzZDM1ODZiMzM5MzJjYi4uYzM4YWM0NTAzMDM3MjY0Y2M0YTBjNjAxZWU4
ZWIzMGNlNmE4YjMwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMjM1LDggKzIzNSw2IEBACiAJCTFBNDRCOTVCMTZCNzNGOUYw
MEI3QkJEOCAvKiBTdG9yYWdlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQTQ0Qjk1OTE2QjczRjlGMDBCN0JCRDggLyogU3RvcmFnZU1h
bmFnZXIuY3BwICovOyB9OwogCQkxQTQ0Qjk1QzE2QjczRjlGMDBCN0JCRDggLyogU3RvcmFnZU1h
bmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFB
NDRCOTVBMTZCNzNGOUYwMEI3QkJEOCAvKiBTdG9yYWdlTWFuYWdlci5oICovOyB9OwogCQkxQTQ4
MzJDMzFBOTY1QTNDMDA4QjRERkUgLyogV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE0ODMyQzExQTk2NUEzQzAw
OEI0REZFIC8qIFdlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbSAqLzsgfTsKLQkJMUE0ODMyQzcxQTlC
QzEzQzAwOEI0REZFIC8qIEFQSVdlYnNpdGVEYXRhUmVjb3JkLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNDgzMkM1MUE5QkMxM0MwMDhCNERGRSAv
KiBBUElXZWJzaXRlRGF0YVJlY29yZC5jcHAgKi87IH07Ci0JCTFBNDgzMkM4MUE5QkMxM0MwMDhC
NERGRSAvKiBBUElXZWJzaXRlRGF0YVJlY29yZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUE0ODMyQzYxQTlCQzEzQzAwOEI0REZFIC8qIEFQSVdlYnNp
dGVEYXRhUmVjb3JkLmggKi87IH07CiAJCTFBNDgzMkNCMUE5QkM0NjUwMDhCNERGRSAvKiBXS1dl
YnNpdGVEYXRhUmVjb3JkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUE0ODMyQzkxQTlCQzQ2NTAwOEI0REZFIC8qIFdLV2Vic2l0ZURhdGFSZWNvcmQu
bW0gKi87IH07CiAJCTFBNDgzMkNDMUE5QkM0NjUwMDhCNERGRSAvKiBXS1dlYnNpdGVEYXRhUmVj
b3JkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTQ4
MzJDQTFBOUJDNDY1MDA4QjRERkUgLyogV0tXZWJzaXRlRGF0YVJlY29yZC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJMUE0ODMyQ0UxQTlCQzQ4NDAw
OEI0REZFIC8qIFdLV2Vic2l0ZURhdGFSZWNvcmRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE0ODMyQ0QxQTlCQzQ4NDAwOEI0REZFIC8q
IFdLV2Vic2l0ZURhdGFSZWNvcmRJbnRlcm5hbC5oICovOyB9OwpAQCAtNDcwLDYgKzQ2OCwxMiBA
QAogCQkxQUUwMEQ2QjE4MzI3QzEyMDAwODdERDcgLyogU3RyaW5nUmVmZXJlbmNlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBRTAwRDY5MTgzMjdD
MTIwMDA4N0RENyAvKiBTdHJpbmdSZWZlcmVuY2UuY3BwICovOyB9OwogCQkxQUUwMEQ2QzE4MzI3
QzEyMDAwODdERDcgLyogU3RyaW5nUmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUUwMEQ2QTE4MzI3QzEyMDAwODdERDcgLyogU3RyaW5n
UmVmZXJlbmNlLmggKi87IH07CiAJCTFBRTExN0Y2MTFEQkIzMDkwMDk4MTYxNSAvKiBQcm9jZXNz
TGF1bmNoZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUFFMTE3RjUxMURCQjMwOTAwOTgxNjE1IC8qIFByb2Nlc3NMYXVuY2hlci5jcHAgKi87IH07
CisJCTFBRTI4Njc3MUM3RTc2NTEwMDY5QUM0RiAvKiBfV0tXZWJzaXRlRGF0YVNpemUubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUUyODY3NTFDN0U3
NjUxMDA2OUFDNEYgLyogX1dLV2Vic2l0ZURhdGFTaXplLm1tICovOyB9OworCQkxQUUyODY3ODFD
N0U3NjUxMDA2OUFDNEYgLyogX1dLV2Vic2l0ZURhdGFTaXplLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUUyODY3NjFDN0U3NjUxMDA2OUFDNEYgLyog
X1dLV2Vic2l0ZURhdGFTaXplLmggKi87IH07CisJCTFBRTI4NjdBMUM3RjdCQTYwMDY5QUM0RiAv
KiBXS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQUUyODY3OTFDN0Y3QkE2MDA2OUFDNEYgLyogV0tXZWJzaXRl
RGF0YVN0b3JlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTFBRTI4NjgwMUM3RjkyQzAwMDY5QUM0RiAvKiBfV0tXZWJzaXRlRGF0YVNp
emVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUFFMjg2N0YxQzdGOTJCRjAwNjlBQzRGIC8qIF9XS1dlYnNpdGVEYXRhU2l6ZUludGVybmFs
LmggKi87IH07CisJCTFBRTI4NjgzMUM3RjkzODYwMDY5QUM0RiAvKiBBUElXZWJzaXRlRGF0YVJl
Y29yZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
QUUyODY4MTFDN0Y5Mzg2MDA2OUFDNEYgLyogQVBJV2Vic2l0ZURhdGFSZWNvcmQuY3BwICovOyB9
OworCQkxQUUyODY4NDFDN0Y5Mzg2MDA2OUFDNEYgLyogQVBJV2Vic2l0ZURhdGFSZWNvcmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBRTI4NjgyMUM3
RjkzODYwMDY5QUM0RiAvKiBBUElXZWJzaXRlRGF0YVJlY29yZC5oICovOyB9OwogCQkxQUU0OTc2
ODExRkY2NThFMDA0OEI0NjQgLyogTlBKU09iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFFNDk3NjYxMUZGNjU4RTAwNDhCNDY0IC8qIE5QSlNP
YmplY3QuaCAqLzsgfTsKIAkJMUFFNDk3NjkxMUZGNjU4RTAwNDhCNDY0IC8qIE5QSlNPYmplY3Qu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFFNDk3
NjcxMUZGNjU4RTAwNDhCNDY0IC8qIE5QSlNPYmplY3QuY3BwICovOyB9OwogCQkxQUU0OTg3ODEx
RkY3RkFBMDA0OEI0NjQgLyogSlNOUE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUFFNDk4NzYxMUZGN0ZBQTAwNDhCNDY0IC8qIEpTTlBPYmpl
Y3QuaCAqLzsgfTsKQEAgLTIwOTcsNiArMjEwMSw3IEBACiAJCTFBMjU2RTM1MThBMUE3ODgwMDZG
QjkyMiAvKiBXS05hdmlnYXRpb25BY3Rpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXS05hdmlnYXRpb25BY3Rpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFBMjU2RTM2MThBMUE3ODgwMDZGQjkyMiAvKiBXS05hdmlnYXRpb25BY3Rpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tOYXZpZ2F0aW9uQWN0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMjU2RTM5MThBMUE3REYwMDZGQjkyMiAv
KiBXS05hdmlnYXRpb25BY3Rpb25JbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS05hdmlnYXRpb25BY3Rpb25JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxQTI4QjhDQjFDODBFRDU5MDA2RkQ3NDMgLyogV2Vic2l0ZURhdGFGZXRjaE9w
dGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJzaXRlRGF0YUZldGNo
T3B0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMkE0QUZEMTU4NjkzOTIw
MDkwQzlFOSAvKiBDb2xvclNwYWNlRGF0YS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IENvbG9yU3BhY2VEYXRhLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxQTJBNEFGRTE1ODY5MzkyMDA5MEM5RTkgLyogQ29sb3JTcGFjZURhdGEuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29sb3JTcGFjZURhdGEuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUEyQkI2Q0MxNDExN0E1RjAwMEYzNUQ0IC8qIFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBsdWdpblBy
b2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMjE1MSw4ICsyMTU2LDYgQEAKIAkJMUE0NEI5NTkxNkI3M0Y5RjAwQjdCQkQ4IC8qIFN0b3Jh
Z2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0b3Jh
Z2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE0NEI5NUExNkI3
M0Y5RjAwQjdCQkQ4IC8qIFN0b3JhZ2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFN0b3JhZ2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFBNDgzMkMxMUE5NjVBM0MwMDhCNERGRSAvKiBXZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJzaXRlRGF0YVN0b3JlQ29j
b2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFBNDgzMkM1MUE5QkMxM0MwMDhC
NERGRSAvKiBBUElXZWJzaXRlRGF0YVJlY29yZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBBUElXZWJzaXRlRGF0YVJlY29yZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTFBNDgzMkM2MUE5QkMxM0MwMDhCNERGRSAvKiBBUElXZWJzaXRlRGF0YVJl
Y29yZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElXZWJzaXRlRGF0YVJl
Y29yZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTQ4MzJDOTFBOUJDNDY1MDA4
QjRERkUgLyogV0tXZWJzaXRlRGF0YVJlY29yZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFdLV2Vic2l0ZURhdGFSZWNvcmQubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFBNDgzMkNBMUE5QkM0NjUwMDhCNERGRSAvKiBXS1dlYnNpdGVEYXRhUmVj
b3JkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2Vic2l0ZURhdGFSZWNv
cmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE0ODMyQ0QxQTlCQzQ4NDAwOEI0
REZFIC8qIFdLV2Vic2l0ZURhdGFSZWNvcmRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS1dlYnNpdGVEYXRhUmVjb3JkSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTI0MTUsNiArMjQxOCwxMiBAQAogCQkxQUUwMEQ2OTE4MzI3QzEy
MDAwODdERDcgLyogU3RyaW5nUmVmZXJlbmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFN0cmluZ1JlZmVyZW5jZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFBRTAwRDZBMTgzMjdDMTIwMDA4N0RENyAvKiBTdHJpbmdSZWZlcmVuY2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RyaW5nUmVmZXJlbmNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBRTExN0Y1MTFEQkIzMDkwMDk4MTYxNSAvKiBQcm9jZXNz
TGF1bmNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvY2Vz
c0xhdW5jaGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUFFMjg2NzUxQzdF
NzY1MTAwNjlBQzRGIC8qIF9XS1dlYnNpdGVEYXRhU2l6ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS1dlYnNpdGVEYXRhU2l6ZS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMUFFMjg2NzYxQzdFNzY1MTAwNjlBQzRGIC8qIF9XS1dlYnNpdGVE
YXRhU2l6ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tXZWJzaXRlRGF0
YVNpemUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUFFMjg2NzkxQzdGN0JBNjAw
NjlBQzRGIC8qIFdLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQUUyODY3RjFDN0Y5MkJGMDA2OUFDNEYgLyogX1dLV2Vic2l0ZURh
dGFTaXplSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLV2Vi
c2l0ZURhdGFTaXplSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUFF
Mjg2ODExQzdGOTM4NjAwNjlBQzRGIC8qIEFQSVdlYnNpdGVEYXRhUmVjb3JkLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFQSVdlYnNpdGVEYXRhUmVjb3JkLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUFFMjg2ODIxQzdGOTM4NjAwNjlBQzRGIC8q
IEFQSVdlYnNpdGVEYXRhUmVjb3JkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFQSVdlYnNpdGVEYXRhUmVjb3JkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFB
RTQ5NzY2MTFGRjY1OEUwMDQ4QjQ2NCAvKiBOUEpTT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE5QSlNPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMUFFNDk3NjcxMUZGNjU4RTAwNDhCNDY0IC8qIE5QSlNPYmplY3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTlBKU09iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFBRTQ5ODc2MTFGRjdGQUEwMDQ4QjQ2NCAvKiBKU05QT2JqZWN0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTlBPYmplY3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ2MDcsNiArNDYxNiw3IEBACiAJCQljaGlsZHJlbiA9ICgK
IAkJCQkxQTQ4MzJENDFBOUNERjk2MDA4QjRERkUgLyogV2Vic2l0ZURhdGEuY3BwICovLAogCQkJ
CTFBNDgzMkQ1MUE5Q0RGOTYwMDhCNERGRSAvKiBXZWJzaXRlRGF0YS5oICovLAorCQkJCTFBMjhC
OENCMUM4MEVENTkwMDZGRDc0MyAvKiBXZWJzaXRlRGF0YUZldGNoT3B0aW9uLmggKi8sCiAJCQkJ
MUFCRjQzNzkxQTM2ODA1MDAwM0ZCMEU2IC8qIFdlYnNpdGVEYXRhVHlwZS5oICovLAogCQkJKTsK
IAkJCXBhdGggPSBXZWJzaXRlRGF0YTsKQEAgLTQ5ODMsNiArNDk5Myw5IEBACiAJCQkJMUE4MUIz
N0YxOEJENjZBRDAwMDdGREFDIC8qIF9XS1Zpc2l0ZWRMaW5rU3RvcmUuaCAqLywKIAkJCQkxQTgx
QjM3RTE4QkQ2NkFEMDAwN0ZEQUMgLyogX1dLVmlzaXRlZExpbmtTdG9yZS5tbSAqLywKIAkJCQkx
QTgxQjM4NDE4QkQ2NzNBMDAwN0ZEQUMgLyogX1dLVmlzaXRlZExpbmtTdG9yZUludGVybmFsLmgg
Ki8sCisJCQkJMUFFMjg2NzUxQzdFNzY1MTAwNjlBQzRGIC8qIF9XS1dlYnNpdGVEYXRhU2l6ZS5t
bSAqLywKKwkJCQkxQUUyODY3NjFDN0U3NjUxMDA2OUFDNEYgLyogX1dLV2Vic2l0ZURhdGFTaXpl
LmggKi8sCisJCQkJMUFFMjg2N0YxQzdGOTJCRjAwNjlBQzRGIC8qIF9XS1dlYnNpdGVEYXRhU2l6
ZUludGVybmFsLmggKi8sCiAJCQkJRkVEM0MxREExQjQ0N0FFODAwRTBFQjdGIC8qIEFQSVNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUNvY29hLm1tICovLAogCQkJCTdDRUZBOTYwMUFDMDk5OTMwMEI5MTBG
RCAvKiBBUElVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlQ29jb2EubW0gKi8sCiAJCQkJMUEzNjM1
QUIxQTMxNDVFNTAwRUQ2MTk3IC8qIEFQSVdlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbSAqLywKQEAg
LTUwNTEsNiArNTA2NCw3IEBACiAJCQkJNzVBOEQyQzQxODdDQ0Y5RjAwQzM5QzlFIC8qIFdLV2Vi
c2l0ZURhdGFTdG9yZS5oICovLAogCQkJCTc1QThEMkM1MTg3Q0NGOUYwMEMzOUM5RSAvKiBXS1dl
YnNpdGVEYXRhU3RvcmUubW0gKi8sCiAJCQkJNzVBOEQyRDQxODdEMUMwMTAwQzM5QzlFIC8qIFdL
V2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmggKi8sCisJCQkJMUFFMjg2NzkxQzdGN0JBNjAwNjlB
QzRGIC8qIFdLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaCAqLywKIAkJCQkxQTNDQzE2NTE4OTA2
QUNGMDAxRTZFRDggLyogV0tXZWJWaWV3LmggKi8sCiAJCQkJMUEzQ0MxNjQxODkwNkFDRjAwMUU2
RUQ4IC8qIFdLV2ViVmlldy5tbSAqLywKIAkJCQkxQURGNTkxOTE4OTA1MjhFMDA0M0MxNDUgLyog
V0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oICovLApAQCAtNTg5NSw2ICs1OTA5LDggQEAKIAkJQkMw
MzJEQzQxMEY0Mzg3QzAwNThDMTVBIC8qIEFQSSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCisJCQkJMUFFMjg2ODExQzdGOTM4NjAwNjlBQzRGIC8qIEFQSVdlYnNp
dGVEYXRhUmVjb3JkLmNwcCAqLywKKwkJCQkxQUUyODY4MjFDN0Y5Mzg2MDA2OUFDNEYgLyogQVBJ
V2Vic2l0ZURhdGFSZWNvcmQuaCAqLywKIAkJCQlCQzBDMzc2NjEwRjgwNzY2MDA3NkQ3Q0IgLyog
QyAqLywKIAkJCQkzN0M0QzA4MzE4MTQ5QzJBMDAzNjg4QjkgLyogQ29jb2EgKi8sCiAJCQkJQkM4
QTUwMTMxMTc2NUY0NTAwNzU3NTczIC8qIGNwcCAqLywKQEAgLTU5NDEsOCArNTk1Nyw2IEBACiAJ
CQkJN0M4OUQyOTIxQTY3MTIyRjAwM0E1RkRFIC8qIEFQSVVzZXJTY3JpcHQuaCAqLywKIAkJCQky
RDg3ODYyMTFCREI1OEZGMDBEMDJBQkIgLyogQVBJVXNlclN0eWxlU2hlZXQuY3BwICovLAogCQkJ
CTJEODc4NjIyMUJEQjU4RkYwMEQwMkFCQiAvKiBBUElVc2VyU3R5bGVTaGVldC5oICovLAotCQkJ
CTFBNDgzMkM1MUE5QkMxM0MwMDhCNERGRSAvKiBBUElXZWJzaXRlRGF0YVJlY29yZC5jcHAgKi8s
Ci0JCQkJMUE0ODMyQzYxQTlCQzEzQzAwOEI0REZFIC8qIEFQSVdlYnNpdGVEYXRhUmVjb3JkLmgg
Ki8sCiAJCQkJMUEzNjM1QTcxQTMxNDRBMzAwRUQ2MTk3IC8qIEFQSVdlYnNpdGVEYXRhU3RvcmUu
Y3BwICovLAogCQkJCTFBMzYzNUE4MUEzMTQ0QTMwMEVENjE5NyAvKiBBUElXZWJzaXRlRGF0YVN0
b3JlLmggKi8sCiAJCQkJMUE2NTYzRTIxQjdBOEM1MDAwOUNGNzg3IC8qIEFQSVdpbmRvd0ZlYXR1
cmVzLmNwcCAqLywKQEAgLTcxMjIsNiArNzEzNiw3IEBACiAJCQkJOTNFNkE0RUUxQkM1REQzOTAw
RjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQTg4QjNC
MUJDNzEwRDkwMEFCQTVDMiAvKiBfV0tIaXRUZXN0UmVzdWx0SW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTM3QTY0RTU1MThGMzhFM0MwMEVCMzBGMSAvKiBfV0tJbnB1dERlbGVnYXRlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkxQUUyODY3QTFDN0Y3QkE2MDA2OUFDNEYgLyogV0tXZWJzaXRl
RGF0YVN0b3JlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTk1NUE2RUYxQzc5ODEwODAw
RUI2QTkzIC8qIEF1dG9tYXRpb24uanNvbiBpbiBIZWFkZXJzICovLAogCQkJCTJENzkwQTlEMUFE
NzA1MEQwMEFCOTBCMyAvKiBfV0tMYXlvdXRNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTE4
QTlGMzE5MDhCOEVBMDBGN0M5MkIgLyogX1dLTlNGaWxlTWFuYWdlckV4dHJhcy5oIGluIEhlYWRl
cnMgKi8sCkBAIC03MjA0LDcgKzcyMTksNiBAQAogCQkJCTJEODc4NjI0MUJEQjU4RkYwMEQwMkFC
QiAvKiBBUElVc2VyU3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzVFMUFGRUQxNkIy
MTAxNzAwNkNDMUYyIC8qIEFQSVdlYkFyY2hpdmUuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1RTFB
RkVGMTZCMjEwMjkwMDZDQzFGMiAvKiBBUElXZWJBcmNoaXZlUmVzb3VyY2UuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTFBNDgzMkM4MUE5QkMxM0MwMDhCNERGRSAvKiBBUElXZWJzaXRlRGF0YVJlY29y
ZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzVCQ0U1REYxQzUwNzY2QTAwQ0RFM0ZBIC8qIEludGVy
YWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTM2MzVB
QTFBMzE0NEEzMDBFRDYxOTcgLyogQVBJV2Vic2l0ZURhdGFTdG9yZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUE2NTYzRTUxQjdBOEM1MDAwOUNGNzg3IC8qIEFQSVdpbmRvd0ZlYXR1cmVzLmggaW4g
SGVhZGVycyAqLywKQEAgLTczMzUsNiArNzM0OSw3IEBACiAJCQkJMUFCQzNERjYxODk5RTQzNzAw
NEYwNjI2IC8qIE5hdmlnYXRpb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE2RkJBMkEx
MUU2ODYyNzAwREIxMzcxIC8qIE5ldHNjYXBlQnJvd3NlckZ1bmNzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5OTBEMjhBQjFDNjQyMEM2MDA5ODY5NzcgLyogX1dLQXV0b21hdGlvblNlc3Npb24uaCBp
biBIZWFkZXJzICovLAorCQkJCTFBRTI4NjgwMUM3RjkyQzAwMDY5QUM0RiAvKiBfV0tXZWJzaXRl
RGF0YVNpemVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE2RkJEMjgxMUU2OUJDMjAw
REIxMzcxIC8qIE5ldHNjYXBlUGx1Z2luLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTRBOUM1NjEy
QjgxNkNGMDA4RkU5ODQgLyogTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBQTU4ODkyMTFFRTcwNDAwMDYxQjg4MiAvKiBOZXRzY2FwZVBsdWdpblN0cmVhbS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC03ODU4LDYgKzc4NzMsNyBAQAogCQkJCTM3QzRDMDk0MTgxNEIzQUYw
MDM2ODhCOSAvKiBXS05TQXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3M0NFQUQ2MTg1NDE3
QUUwMDhDMzYzRCAvKiBXS05TRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzcxQTE5NDIxODI0
RDI5MzAwRjMyQTVFIC8qIFdLTlNEaWN0aW9uYXJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQkxQUUy
ODY3ODFDN0U3NjUxMDA2OUFDNEYgLyogX1dLV2Vic2l0ZURhdGFTaXplLmggaW4gSGVhZGVycyAq
LywKIAkJCQkzNzJDQUYwQjE4MzNGRDkxMDA0MEFDMjcgLyogV0tOU0Vycm9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzNzhFMUE0QTE4MjA4Q0Q2MDAzMTAwN0EgLyogV0tOU1N0cmluZy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMzc4RTFBNEUxODIwOEQ3MDAwMzEwMDdBIC8qIFdLTlNVUkwuaCBpbiBI
ZWFkZXJzICovLApAQCAtNzg3OSw2ICs3ODk1LDcgQEAKIAkJCQkxQUI4QTFGMDE4NDAwQjAwMDBF
OUFFNjkgLyogV0tQYWdlRm9ybUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3QjYzMzcx
MkE0NUFCQTAwRDE3NEE0IC8qIFdLUGFnZUdyb3VwLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDlF
QTMwRDFBOTZDQjU5MDAyRDI4MDcgLyogV0tQYWdlSW5qZWN0ZWRCdW5kbGVDbGllbnQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTFBRTI4Njg0MUM3RjkzODYwMDY5QUM0RiAvKiBBUElXZWJzaXRlRGF0
YVJlY29yZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCOEExRUMxODQwMDgwOTAwRTlBRTY5IC8q
IFdLUGFnZUxvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyRDAyMTkxMkFDNDI2
QzAwRTczMkEzIC8qIFdLUGFnZUxvYWRUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNCREVC
MDExNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaCBpbiBIZWFkZXJz
ICovLApAQCAtODY0Myw3ICs4NjYwLDYgQEAKIAkJCQkyRDg3ODYyMzFCREI1OEZGMDBEMDJBQkIg
LyogQVBJVXNlclN0eWxlU2hlZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzVFMUFGRUMxNkIy
MTAxMjAwNkNDMUYyIC8qIEFQSVdlYkFyY2hpdmUubW0gaW4gU291cmNlcyAqLywKIAkJCQlDNUUx
QUZFRTE2QjIxMDI1MDA2Q0MxRjIgLyogQVBJV2ViQXJjaGl2ZVJlc291cmNlLm1tIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMUE0ODMyQzcxQTlCQzEzQzAwOEI0REZFIC8qIEFQSVdlYnNpdGVEYXRhUmVj
b3JkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMzYzNUE5MUEzMTQ0QTMwMEVENjE5NyAvKiBB
UElXZWJzaXRlRGF0YVN0b3JlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMzYzNUFEMUEzMTQ1
RTUwMEVENjE5NyAvKiBBUElXZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0gaW4gU291cmNlcyAqLywK
IAkJCQkxQTY1NjNFNDFCN0E4QzUwMDA5Q0Y3ODcgLyogQVBJV2luZG93RmVhdHVyZXMuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC04NjgxLDYgKzg2OTcsNyBAQAogCQkJCUI4NzhCNjE2MTMzNDI4REMw
MDY4ODhFOSAvKiBDb3JyZWN0aW9uUGFuZWwubW0gaW4gU291cmNlcyAqLywKIAkJCQkyOTg0RjU4
ODE2NEJBMDk1MDA0QkMwQzYgLyogQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI5QUQzMDk2MTY0QjRDOTMwMDcyREVBOSAvKiBDdXN0
b21Qcm90b2NvbE1hbmFnZXJQcm94eU1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTFBRTI4Njgz
MUM3RjkzODYwMDY5QUM0RiAvKiBBUElXZWJzaXRlRGF0YVJlY29yZC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkyOTg0RjU3QzE2NEI5MTVGMDA0QkMwQzYgLyogQ3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFFMzUxRkYxODBG
NUQwRjAwRTUzQkU5IC8qIERhdGFiYXNlUHJvY2Vzcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1
MTVFNzcyQjE4NDAwOEI5MDAwNzIwM0YgLyogRGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTI0Nyw2ICs5MjY0LDcgQEAKIAkJCQlDNTcxOTNC
RTE4QzE0QTQ0MDAyRDBGMTIgLyogV0tGb3JtU2VsZWN0Q29udHJvbC5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUM1NUNCNUI4MThDMkE1RDYwMENBODFFMSAvKiBXS0Zvcm1TZWxlY3RQaWNrZXIubW0g
aW4gU291cmNlcyAqLywKIAkJCQlDNTVDQjVCNzE4QzI2OUNGMDBDQTgxRTEgLyogV0tGb3JtU2Vs
ZWN0UG9wb3Zlci5tbSBpbiBTb3VyY2VzICovLAorCQkJCTFBRTI4Njc3MUM3RTc2NTEwMDY5QUM0
RiAvKiBfV0tXZWJzaXRlRGF0YVNpemUubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQ0U0Njk1OTEy
MTRFREY0MDAwQjk4RUIgLyogV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDRDAxMzlDMTEwRkE0MjAwMDNCOEE2NyAvKiBXS0ZyYW1lLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTFBNEQ2NjRCMThBMzAzMEUwMEQ4MkUyMSAvKiBXS0ZyYW1lSW5mby5tbSBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5k
ZXggZmVlNGZiYTMxNWUwMDc1ZDFkZGUzOGY5ZTc4YmRmNWY5YjZiNTM3MS4uZDE3YmU0ODc0NmEw
NjhhZDA3ZmU1ZjIzZGI5ZmU1NmY4M2E2MzFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCkBAIC0xMTE3LDcgKzExMTcsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmZl
dGNoV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRh
VHlwZQogCiAgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBl
OjpNZW1vcnlDYWNoZSkpIHsKICAgICAgICAgZm9yIChhdXRvJiBvcmlnaW4gOiBNZW1vcnlDYWNo
ZTo6c2luZ2xldG9uKCkub3JpZ2luc1dpdGhDYWNoZShzZXNzaW9uSUQpKQotICAgICAgICAgICAg
d2Vic2l0ZURhdGEuZW50cmllcy5hcHBlbmQoV2Vic2l0ZURhdGE6OkVudHJ5IHsgb3JpZ2luLCBX
ZWJzaXRlRGF0YVR5cGU6Ok1lbW9yeUNhY2hlIH0pOworICAgICAgICAgICAgd2Vic2l0ZURhdGEu
ZW50cmllcy5hcHBlbmQoV2Vic2l0ZURhdGE6OkVudHJ5IHsgb3JpZ2luLCBXZWJzaXRlRGF0YVR5
cGU6Ok1lbW9yeUNhY2hlLCAwIH0pOwogICAgIH0KIAogICAgIHBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6RGlkRmV0Y2hXZWJzaXRlRGF0
YShjYWxsYmFja0lELCB3ZWJzaXRlRGF0YSksIDApOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGM2ZWMzYThhZmRkNDA5NzA5OTk5ZjhlMGQ4MzE0
YjJhODljNjYzZmUuLjUxN2FlOWQxYTVmYWVhMzVkYjcwYjVmNGU1OGQ3MDRkNzk4OTRlYjYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAxNi0wMi0yNiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29t
PgorCisgICAgICAgIFdLV2Vic2l0ZURhdGFTdG9yZS9XS1dlYnNpdGVEYXRhUmVjb3JkIG5lZWRz
IHRvIHByb3ZpZGUgc2l6ZSBpbmZvcm1hdGlvbiBhYm91dCBlYWNoIHR5cGUgb2YgZGF0YQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0NzUwCisgICAg
ICAgIHJkYXI6Ly9wcm9ibGVtLzIzODYxMzk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0Nv
bnRyb2xsZXIubToKKyAgICAgICAgKC1bV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgZmV0Y2hX
ZWJzaXRlRGF0YTpdKToKKyAgICAgICAgVXNlIHRoZSBuZXcgV0tXZWJzaXRlRGF0YVN0b3JlIFNQ
SSB0byBjb21wdXRlIGRhdGEgc2l6ZXMuCisKIDIwMTYtMDItMjUgIEdhdmluIEJhcnJhY2xvdWdo
ICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZkNvdW50ZXIgdmFsdWUgY2hh
bmdlZCBjYWxsYmFjayBzaG91bGQgYmUgY2FsbGVkIG9uIGFsbCBjaGFuZ2VzIChub3QganVzdCB6
ZXJvIGVkZ2UpLgpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dzZXJX
aW5kb3dDb250cm9sbGVyLm0gYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRv
d0NvbnRyb2xsZXIubQppbmRleCBiMjYwMmVmNWJlNmU0MjBlMjc5OGMwMzhiNWIzZTc4OGQ1YmY4
ODM0Li4xNTk5ZjM4YzRiOGRmZjY5MDRjYTg2NTA5NTYzZDllOTA3Y2RhZmM2IDEwMDY0NAotLS0g
YS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQorKysg
Yi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQpAQCAt
MzUsNiArMzUsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dLVUlEZWxlZ2F0ZS5oPgogI2ltcG9ydCA8
V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQv
V0tXZWJWaWV3UHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFTdG9yZVBy
aXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJOU1VSTEV4dHJhcy5oPgogCiBzdGF0aWMgdm9p
ZCoga2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0ID0gJmtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dDsK
QEAgLTQ3OSw3ICs0ODAsNyBAQCAtIChJQkFjdGlvbilmaW5kOihpZClzZW5kZXIKIAogLSAoSUJB
Y3Rpb24pZmV0Y2hXZWJzaXRlRGF0YTooaWQpc2VuZGVyCiB7Ci0gICAgW19jb25maWd1cmF0aW9u
LndlYnNpdGVEYXRhU3RvcmUgZmV0Y2hEYXRhUmVjb3Jkc09mVHlwZXM6ZGF0YVR5cGVzKCkgY29t
cGxldGlvbkhhbmRsZXI6XihOU0FycmF5ICp3ZWJzaXRlRGF0YVJlY29yZHMpIHsKKyAgICBbX2Nv
bmZpZ3VyYXRpb24ud2Vic2l0ZURhdGFTdG9yZSBfZmV0Y2hEYXRhUmVjb3Jkc09mVHlwZXM6ZGF0
YVR5cGVzKCkgd2l0aE9wdGlvbnM6X1dLV2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0aW9uQ29tcHV0
ZVNpemVzIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNBcnJheSAqd2Vic2l0ZURhdGFSZWNvcmRzKSB7
CiAgICAgICAgIE5TTG9nKEAiZGlkIGZldGNoIHdlYnNpdGUgZGF0YSAlQC4iLCB3ZWJzaXRlRGF0
YVJlY29yZHMpOwogICAgIH1dOwogfQo=
</data>
<flag name="review"
          id="297138"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>