<?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>206784</bug_id>
          
          <creation_ts>2020-01-24 16:50:38 -0800</creation_ts>
          <short_desc>Make ContentWorlds be identified by an ObjectIdentifier instead of a uint64_t</short_desc>
          <delta_ts>2020-01-25 21:44:02 -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>WebKit Misc.</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="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1610922</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-01-24 16:50:38 -0800</bug_when>
    <thetext>Make ContentWorlds be identified by an ObjectIdentifier instead of a uin64_t</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610925</commentid>
    <comment_count>1</comment_count>
      <attachid>388743</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-01-24 16:54:38 -0800</bug_when>
    <thetext>Created attachment 388743
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610998</commentid>
    <comment_count>2</comment_count>
      <attachid>388762</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-01-24 22:37:16 -0800</bug_when>
    <thetext>Created attachment 388762
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610999</commentid>
    <comment_count>3</comment_count>
      <attachid>388763</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-01-24 22:56:42 -0800</bug_when>
    <thetext>Created attachment 388763
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611057</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-01-25 09:36:34 -0800</bug_when>
    <thetext>Failures:
WKUserContentController.ScriptMessageHandlerBasicPostIsolatedWorld
UserContentWorld.IsolatedWorldUserScript


I&apos;d tried to make it so custom worlds do not conflict with the page content world, but certain API use cases still make it possible.

Update that definitely takes care of it is coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611059</commentid>
    <comment_count>5</comment_count>
      <attachid>388778</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-01-25 09:38:37 -0800</bug_when>
    <thetext>Created attachment 388778
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611129</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-25 21:02:41 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 388778:

editing/spelling/spellcheck-attribute.html bug 206178 (authors: g.czajkowski@samsung.com, mark.lam@apple.com, and rniwa@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611132</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-25 21:03:05 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 388778:

editing/spelling/spellcheck-async-remove-frame.html bug 158401 (authors: morrita@google.com, rniwa@webkit.org, and tony@chromium.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611135</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-25 21:43:01 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 388778:

editing/spelling/spellcheck-attribute.html bug 206178 (authors: g.czajkowski@samsung.com, mark.lam@apple.com, and rniwa@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611136</commentid>
    <comment_count>9</comment_count>
      <attachid>388778</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-25 21:43:34 -0800</bug_when>
    <thetext>Comment on attachment 388778
Patch

Clearing flags on attachment: 388778

Committed r255127: &lt;https://trac.webkit.org/changeset/255127&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611137</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-25 21:43:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388743</attachid>
            <date>2020-01-24 16:54:38 -0800</date>
            <delta_ts>2020-01-24 22:37:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206784-20200124165438.patch</filename>
            <type>text/plain</type>
            <size>40033</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1MDc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDVmZmMyZmU3YjMwNTA0ODlmZjNiOGIy
ZjJjMWMyYjcxZjkwNjcwNGUuLjI2NzU2YzlhZDNhZWM5YTI2M2Y5YjZhYTU4OTJmNzE1MGJhOWI2
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDEtMjQgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgQ29udGVudFdvcmxkcyBiZSBpZGVudGlmaWVk
IGJ5IGFuIE9iamVjdElkZW50aWZpZXIgaW5zdGVhZCBvZiBhIHVpbnQ2NF90CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY3ODQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9PYmplY3RJZGVudGlm
aWVyLmg6CisgICAgICAgIChXVEY6Ok9iamVjdElkZW50aWZpZXI6OmdlbmVyYXRlKToKKyAgICAg
ICAgKFdURjo6T2JqZWN0SWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKToKKyAgICAgICAg
KFdURjo6T2JqZWN0SWRlbnRpZmllcjo6ZW5hYmxlR2VuZXJhdGlvblByb3RlY3Rpb24pOiBUbyBh
bGxvdyByZXN0cmljdGluZyBnZW5lcmF0aW5nIGFuIGlkZW50aWZpZXIgdG8gdGhlIFVJUHJvY2Vz
cy4KKwogMjAyMC0wMS0yNCAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAK
ICAgICAgICAgV1RGOiBSZW1vdmUgb2xkIGlPUyB2ZXJzaW9uIG1hY3JvcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4
OWNhMzZhYmI5OWZiMGJjNWQ1ZTMzMDgzOTAwN2JkODQyZDk0ZWM0Li41MTk1MDkwMTY0NDA3Mzgw
OGViMTVjMDQwYzE5ZGYxODI0ZGQ1NzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDIw
LTAxLTI0ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtl
IENvbnRlbnRXb3JsZHMgYmUgaWRlbnRpZmllZCBieSBhbiBPYmplY3RJZGVudGlmaWVyIGluc3Rl
YWQgb2YgYSB1aW50NjRfdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA2Nzg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVmYWN0b3I6IE5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5OgorCisgICAgICAgICogU2hhcmVkL0F1eGlsaWFyeVByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNzOjppbml0aWFsaXplKToK
KworICAgICAgICAqIFNoYXJlZC9Db250ZW50V29ybGRTaGFyZWQuaDoKKyAgICAgICAgKFdlYktp
dDo6cGFnZUNvbnRlbnRXb3JsZElkZW50aWZpZXIpOgorCisgICAgICAgICogU2hhcmVkL1dlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzLmg6CisKKyAgICAgICAgKiBTaGFyZWQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
RGF0YVR5cGVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlclNjcmlwdERhdGE6OmRlY29k
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJTdHlsZVNoZWV0RGF0YTo6ZGVjb2RlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViU2NyaXB0TWVzc2FnZUhhbmRsZXJEYXRhOjpkZWNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuaDoKKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFdvcmxkLmNwcDoKKyAgICAgICAgKEFQSTo6
Q29udGVudFdvcmxkOjpwYWdlQ29udGVudFdvcmxkKToKKyAgICAgICAgKEFQSTo6Q29udGVudFdv
cmxkOjpkZWZhdWx0Q2xpZW50V29ybGQpOgorICAgICAgICAoQVBJOjpDb250ZW50V29ybGQ6OkNv
bnRlbnRXb3JsZCk6CisgICAgICAgIChBUEk6OkNvbnRlbnRXb3JsZEJhc2U6OmdlbmVyYXRlSWRl
bnRpZmllcik6IERlbGV0ZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRX
b3JsZC5oOgorICAgICAgICAoQVBJOjpDb250ZW50V29ybGRCYXNlOjppZGVudGlmaWVyIGNvbnN0
KToKKyAgICAgICAgKEFQSTo6Q29udGVudFdvcmxkQmFzZTo6d29ybGREYXRhIGNvbnN0KToKKyAg
ICAgICAgKEFQSTo6Q29udGVudFdvcmxkQmFzZTo6Q29udGVudFdvcmxkQmFzZSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9BUElVc2VyQ29udGVudFdvcmxkLmNwcDoKKyAgICAgICAgKEFQSTo6
VXNlckNvbnRlbnRXb3JsZDo6VXNlckNvbnRlbnRXb3JsZCk6CisKKyAgICAgICAgKiBVSVByb2Nl
c3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6cmVtb3ZlVXNlckNvbnRl
bnRXb3JsZFVzZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQ
cm94eTo6cmVtb3ZlQWxsVXNlclNjcmlwdHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyQ29u
dGVudENvbnRyb2xsZXJQcm94eTo6cmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzKToKKworICAgICAg
ICAqIFdlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6d29ybGRNYXApOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyQ29u
dGVudENvbnRyb2xsZXI6OndvcmxkRm9ySWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlVzZXJDb250ZW50Q29udHJvbGxlcjo6YWRkVXNlckNvbnRlbnRXb3JsZCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6YWRkVXNlckNvbnRlbnRXb3JsZHMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OnJlbW92ZVVzZXJDb250
ZW50V29ybGRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjph
ZGRVc2VyU2NyaXB0cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJvbGxl
cjo6cmVtb3ZlVXNlclNjcmlwdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29u
dHJvbGxlcjo6cmVtb3ZlQWxsVXNlclNjcmlwdHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2Vy
Q29udGVudENvbnRyb2xsZXI6OmFkZFVzZXJTdHlsZVNoZWV0cyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6cmVtb3ZlVXNlclN0eWxlU2hlZXQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OnJlbW92ZUFsbFVzZXJTdHlsZVNo
ZWV0cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6YWRkVXNl
clNjcmlwdE1lc3NhZ2VIYW5kbGVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50
Q29udHJvbGxlcjo6cmVtb3ZlVXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVyKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVBbGxVc2VyU2NyaXB0TWVzc2Fn
ZUhhbmRsZXJzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250
ZW50Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyLm1lc3NhZ2VzLmluOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpydW5KYXZhU2Ny
aXB0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1l
U2NyaXB0V29ybGQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpydW5KYXZhU2NyaXB0SW5G
cmFtZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAyMC0wMS0yNCAg
QnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBBZGQg
bWlzc2luZyBzeXNjdGwtcmVhZCBwZXJtaXNzaW9uIChhbHJlYWR5IGF2YWlsYWJsZSBpbiBtYWNP
UyBzYW5kYm94KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvT2JqZWN0SWRlbnRpZmllci5o
IGIvU291cmNlL1dURi93dGYvT2JqZWN0SWRlbnRpZmllci5oCmluZGV4IGY3M2MwNGU0NTdjMjI3
MzRlN2IxZTIxMDJmNTQ1NWQ3OWI1OTJjOWYuLmRiNTIyMmEwNzRhZGI1MjUzNGMyMTkyMDIzNjI2
NDg5NzAxYmNkZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL09iamVjdElkZW50aWZpZXIu
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9PYmplY3RJZGVudGlmaWVyLmgKQEAgLTQ0LDE0ICs0NCwy
MSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBPYmplY3RJZGVudGlmaWVyIDogcHJpdmF0
ZSBPYmplY3RJZGVudGlmaWVyQmFzZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIE9iamVjdElkZW50
aWZpZXIgZ2VuZXJhdGUoKQogICAgIHsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoIW1fZ2VuZXJh
dGlvblJlc3RyaWN0ZWQpOwogICAgICAgICByZXR1cm4gT2JqZWN0SWRlbnRpZmllciB7IGdlbmVy
YXRlSWRlbnRpZmllckludGVybmFsKCkgfTsKICAgICB9CiAKICAgICBzdGF0aWMgT2JqZWN0SWRl
bnRpZmllciBnZW5lcmF0ZVRocmVhZFNhZmUoKQogICAgIHsKKyAgICAgICAgUkVMRUFTRV9BU1NF
UlQoIW1fZ2VuZXJhdGlvblJlc3RyaWN0ZWQpOwogICAgICAgICByZXR1cm4gT2JqZWN0SWRlbnRp
ZmllciB7IGdlbmVyYXRlVGhyZWFkU2FmZUlkZW50aWZpZXJJbnRlcm5hbCgpIH07CiAgICAgfQog
CisgICAgc3RhdGljIHZvaWQgZW5hYmxlR2VuZXJhdGlvblByb3RlY3Rpb24oKQorICAgIHsKKyAg
ICAgICAgbV9nZW5lcmF0aW9uUmVzdHJpY3RlZCA9IHRydWU7CisgICAgfQorCiAgICAgT2JqZWN0
SWRlbnRpZmllcigpID0gZGVmYXVsdDsKIAogICAgIE9iamVjdElkZW50aWZpZXIoSGFzaFRhYmxl
RGVsZXRlZFZhbHVlVHlwZSkgOiBtX2lkZW50aWZpZXIoaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkp
IHsgfQpAQCAtMTAzLDYgKzExMCw3IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgdWludDY0X3Qg
bV9pZGVudGlmaWVyIHsgMCB9OworICAgIGlubGluZSBzdGF0aWMgYm9vbCBtX2dlbmVyYXRpb25S
ZXN0cmljdGVkIHsgZmFsc2UgfTsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBP
YmplY3RJZGVudGlmaWVyPFQ+IG1ha2VPYmplY3RJZGVudGlmaWVyKHVpbnQ2NF90IGlkZW50aWZp
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBkYzllMTRm
NWFjZGY2OTg0MTEzN2JmY2IxMGU0ZTY0NmNjNDJlYTI2Li5mODdiNDRhZWFiNWMzOWM3YzdlM2Jj
N2U1MWY0YzJkMzM4ODhlZmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkKQEAgLTIxOSw2ICsyMTksNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2Fy
ZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllcicsCiAgICAgICAgICdXZWJLaXQ6OkFjdGl2aXR5U3RhdGVDaGFuZ2VJRCcsCiAgICAgICAg
ICdXZWJLaXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllcicsCisgICAg
ICAgICdXZWJLaXQ6OkNvbnRlbnRXb3JsZElkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpM
YXllckhvc3RpbmdDb250ZXh0SUQnLAogICAgICAgICAnV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6TWVkaWFSZWNvcmRlcklkZW50
aWZpZXInLApAQCAtNjA1LDYgKzYwNiw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgog
ICAgICAgICAnV2ViQ29yZTo6U2VsZWN0aW9uUmVjdCc6IFsnIkVkaXRvclN0YXRlLmgiJ10sCiAg
ICAgICAgICdXZWJLaXQ6OkFjdGl2aXR5U3RhdGVDaGFuZ2VJRCc6IFsnIkRyYXdpbmdBcmVhSW5m
by5oIiddLAogICAgICAgICAnV2ViS2l0OjpCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUnOiBbJyJT
ZXNzaW9uU3RhdGUuaCInXSwKKyAgICAgICAgJ1dlYktpdDo6Q29udGVudFdvcmxkSWRlbnRpZmll
cicgOiBbJyJDb250ZW50V29ybGRTaGFyZWQuaCInXSwKICAgICAgICAgJ1dlYktpdDo6TGF5ZXJI
b3N0aW5nQ29udGV4dElEJzogWyciTGF5ZXJIb3N0aW5nQ29udGV4dC5oIiddLAogICAgICAgICAn
V2ViS2l0OjpMYXllckhvc3RpbmdNb2RlJzogWyciTGF5ZXJUcmVlQ29udGV4dC5oIiddLAogICAg
ICAgICAnV2ViS2l0OjpQYWdlU3RhdGUnOiBbJyJTZXNzaW9uU3RhdGUuaCInXSwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAKaW5kZXggYjFkNDM2Y2FmMTZkNDYzYWU1
ZjA1MmJjYjI1OTUzZTdmODFiNjAzNC4uYzJjNDgwZThjZDdiN2FiMWQ3MmM1YWVjNWVjMmIxYTRh
NGYwZmI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAKQEAg
LTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBdXhpbGlhcnlQ
cm9jZXNzLmgiCiAKKyNpbmNsdWRlICJDb250ZW50V29ybGRTaGFyZWQuaCIKICNpbmNsdWRlICJE
ZXBlbmRlbmN5UHJvY2Vzc0Fzc2VydGlvbi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNs
dWRlICJTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgiCkBAIC03OCw4ICs3OSw5IEBA
IHZvaWQgQXV4aWxpYXJ5UHJvY2Vzczo6aW5pdGlhbGl6ZShjb25zdCBBdXhpbGlhcnlQcm9jZXNz
SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzCiAKICAgICBpbml0aWFsaXplUHJvY2Vzc05hbWUocGFy
YW1ldGVycyk7CiAKLSAgICAvLyBJbiBXZWJLaXQyLCBvbmx5IHRoZSBVSSBwcm9jZXNzIHNob3Vs
ZCBldmVyIGJlIGdlbmVyYXRpbmcgbm9uLWRlZmF1bHQgUEFMOjpTZXNzaW9uSURzLgorICAgIC8v
IEluIFdlYktpdDIsIG9ubHkgdGhlIFVJIHByb2Nlc3Mgc2hvdWxkIGV2ZXIgYmUgZ2VuZXJhdGlu
ZyBjZXJ0YWluIGlkZW50aWZpZXJzLgogICAgIFBBTDo6U2Vzc2lvbklEOjplbmFibGVHZW5lcmF0
aW9uUHJvdGVjdGlvbigpOworICAgIENvbnRlbnRXb3JsZElkZW50aWZpZXI6OmVuYWJsZUdlbmVy
YXRpb25Qcm90ZWN0aW9uKCk7CiAKICAgICBtX2Nvbm5lY3Rpb24gPSBJUEM6OkNvbm5lY3Rpb246
OmNyZWF0ZUNsaWVudENvbm5lY3Rpb24ocGFyYW1ldGVycy5jb25uZWN0aW9uSWRlbnRpZmllciwg
KnRoaXMpOwogICAgIGluaXRpYWxpemVDb25uZWN0aW9uKG1fY29ubmVjdGlvbi5nZXQoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db250ZW50V29ybGRTaGFyZWQuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRlbnRXb3JsZFNoYXJlZC5oCmluZGV4IDFkYWQ2ZTE4NTBj
MDhiMzRmMTJkNGE2OGE1MDlkODZjODNjZjBhNTAuLmY0M2QyZjJjYmM3NDdmMjdhMGZkZDgyYjBh
M2MxMzEyYjgxMjJiNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRlbnRX
b3JsZFNoYXJlZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRlbnRXb3JsZFNoYXJl
ZC5oCkBAIC0yNSw4ICsyNSwxNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9P
YmplY3RJZGVudGlmaWVyLmg+CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1zdGF0aWMgY29uc3Qg
dWludDY0X3QgcGFnZUNvbnRlbnRXb3JsZElkZW50aWZpZXIgPSAxOworZW51bSBDb250ZW50V29y
bGRJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBDb250ZW50V29ybGRJZGVudGlmaWVyID0gT2Jq
ZWN0SWRlbnRpZmllcjxDb250ZW50V29ybGRJZGVudGlmaWVyVHlwZT47CisKK2lubGluZSBDb250
ZW50V29ybGRJZGVudGlmaWVyIHBhZ2VDb250ZW50V29ybGRJZGVudGlmaWVyKCkKK3sKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q29udGVudFdvcmxkSWRlbnRpZmllcj4gaWRlbnRpZmllciht
YWtlT2JqZWN0SWRlbnRpZmllcjxDb250ZW50V29ybGRJZGVudGlmaWVyVHlwZT4oMSkpOworICAg
IHJldHVybiBpZGVudGlmaWVyOworfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXgg
NzBjM2VhMWFiNTJkYWMyN2NkMWVmYTNkZGQ5MmZmNWZhNTRlZmI5ZC4uNmJmYTk5ZjIxM2ZjMzkw
NmQ0MmMzOWRjMzY4OGRkOWVlMWI3NjUzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTM3MCw3ICszNzAsNyBAQCBPcHRp
b25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
OjpkZWNvZGUoSVBDOjpEZWNvZAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5l
bnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzRW5hYmxlZCkpCiAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CiAKLSAgICBPcHRpb25hbDxWZWN0b3I8c3RkOjpwYWlyPHVpbnQ2NF90LCBT
dHJpbmc+Pj4gdXNlckNvbnRlbnRXb3JsZHM7CisgICAgT3B0aW9uYWw8VmVjdG9yPHN0ZDo6cGFp
cjxDb250ZW50V29ybGRJZGVudGlmaWVyLCBTdHJpbmc+Pj4gdXNlckNvbnRlbnRXb3JsZHM7CiAg
ICAgZGVjb2RlciA+PiB1c2VyQ29udGVudFdvcmxkczsKICAgICBpZiAoIXVzZXJDb250ZW50V29y
bGRzKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDc0MTM3NWUyYmI1ZTY4Yzlh
NWZlODY1NWYxODU1MWQ2NzdmNjI5ZmEuLmE4NTU1MTQ3MWFhNWI1NjA1OTRjN2IzYzBkZmJkZDRm
Yjk2NGVkYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgKQEAgLTE5Myw3ICsxOTMsNyBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyB7CiAgICAgYm9vbCBlbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzRW5hYmxl
ZCB7IGZhbHNlIH07CiAKICAgICAvLyBVc2VyQ29udGVudENvbnRyb2xsZXIgbWVtYmVycwotICAg
IFZlY3RvcjxzdGQ6OnBhaXI8dWludDY0X3QsIFN0cmluZz4+IHVzZXJDb250ZW50V29ybGRzOwor
ICAgIFZlY3RvcjxzdGQ6OnBhaXI8Q29udGVudFdvcmxkSWRlbnRpZmllciwgU3RyaW5nPj4gdXNl
ckNvbnRlbnRXb3JsZHM7CiAgICAgVmVjdG9yPFdlYlVzZXJTY3JpcHREYXRhPiB1c2VyU2NyaXB0
czsKICAgICBWZWN0b3I8V2ViVXNlclN0eWxlU2hlZXREYXRhPiB1c2VyU3R5bGVTaGVldHM7CiAg
ICAgVmVjdG9yPFdlYlNjcmlwdE1lc3NhZ2VIYW5kbGVyRGF0YT4gbWVzc2FnZUhhbmRsZXJzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
RGF0YVR5cGVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlVzZXJDb250ZW50Q29udHJv
bGxlckRhdGFUeXBlcy5jcHAKaW5kZXggZGI3ZDMzYzhkNTViYzk3YjkzMWEwYWY0NTg4NDlkMjQy
NTExZmQ5Zi4uMDZiYTZjZjc2YjA0ZDlkNjU1NGU0NWYzMTMxZWRlZjQyMmJlNDdmYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5
cGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJVc2VyQ29udGVudENvbnRyb2xs
ZXJEYXRhVHlwZXMuY3BwCkBAIC00NCw3ICs0NCw3IEBAIE9wdGlvbmFsPFdlYlVzZXJTY3JpcHRE
YXRhPiBXZWJVc2VyU2NyaXB0RGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKICAg
ICBpZiAoIWlkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgCi0g
ICAgT3B0aW9uYWw8dWludDY0X3Q+IHdvcmxkSWRlbnRpZmllcjsKKyAgICBPcHRpb25hbDxDb250
ZW50V29ybGRJZGVudGlmaWVyPiB3b3JsZElkZW50aWZpZXI7CiAgICAgZGVjb2RlciA+PiB3b3Js
ZElkZW50aWZpZXI7CiAgICAgaWYgKCF3b3JsZElkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CkBAIC03MCw3ICs3MCw3IEBAIE9wdGlvbmFsPFdlYlVzZXJTdHlsZVNoZWV0
RGF0YT4gV2ViVXNlclN0eWxlU2hlZXREYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvCiAg
ICAgaWYgKCFpZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIAot
ICAgIE9wdGlvbmFsPHVpbnQ2NF90PiB3b3JsZElkZW50aWZpZXI7CisgICAgT3B0aW9uYWw8Q29u
dGVudFdvcmxkSWRlbnRpZmllcj4gd29ybGRJZGVudGlmaWVyOwogICAgIGRlY29kZXIgPj4gd29y
bGRJZGVudGlmaWVyOwogICAgIGlmICghd29ybGRJZGVudGlmaWVyKQogICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwpAQCAtOTcsNyArOTcsNyBAQCBPcHRpb25hbDxXZWJTY3JpcHRNZXNzYWdl
SGFuZGxlckRhdGE+IFdlYlNjcmlwdE1lc3NhZ2VIYW5kbGVyRGF0YTo6ZGVjb2RlKElQQzo6RAog
ICAgIGlmICghaWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICAK
LSAgICBPcHRpb25hbDx1aW50NjRfdD4gd29ybGRJZGVudGlmaWVyOworICAgIE9wdGlvbmFsPENv
bnRlbnRXb3JsZElkZW50aWZpZXI+IHdvcmxkSWRlbnRpZmllcjsKICAgICBkZWNvZGVyID4+IHdv
cmxkSWRlbnRpZmllcjsKICAgICBpZiAoIXdvcmxkSWRlbnRpZmllcikKICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlVzZXJD
b250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmgKaW5kZXggNWNkYWU1NTJlZjE4ZDQ4OTM4NzFl
NGNiNjQwMTdmNWU3YTQwNjlhOS4uZDE1NGYyMGE5MWMxODBkZTI0MGZiNTQ4OGQ0ZDc4N2MyMTU1
NTNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVXNlckNvbnRlbnRDb250
cm9sbGVyRGF0YVR5cGVzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVXNlckNvbnRl
bnRDb250cm9sbGVyRGF0YVR5cGVzLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNl
CiAKKyNpbmNsdWRlICJDb250ZW50V29ybGRTaGFyZWQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Vz
ZXJTY3JpcHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJTdHlsZVNoZWV0Lmg+CiAKQEAgLTQw
LDcgKzQxLDcgQEAgc3RydWN0IFdlYlVzZXJTY3JpcHREYXRhIHsKICAgICBzdGF0aWMgT3B0aW9u
YWw8V2ViVXNlclNjcmlwdERhdGE+IGRlY29kZShJUEM6OkRlY29kZXImKTsKIAogICAgIHVpbnQ2
NF90IGlkZW50aWZpZXI7Ci0gICAgdWludDY0X3Qgd29ybGRJZGVudGlmaWVyOworICAgIENvbnRl
bnRXb3JsZElkZW50aWZpZXIgd29ybGRJZGVudGlmaWVyOwogICAgIFdlYkNvcmU6OlVzZXJTY3Jp
cHQgdXNlclNjcmlwdDsKIH07CiAKQEAgLTQ5LDcgKzUwLDcgQEAgc3RydWN0IFdlYlVzZXJTdHls
ZVNoZWV0RGF0YSB7CiAgICAgc3RhdGljIE9wdGlvbmFsPFdlYlVzZXJTdHlsZVNoZWV0RGF0YT4g
ZGVjb2RlKElQQzo6RGVjb2RlciYpOwogCiAgICAgdWludDY0X3QgaWRlbnRpZmllcjsKLSAgICB1
aW50NjRfdCB3b3JsZElkZW50aWZpZXI7CisgICAgQ29udGVudFdvcmxkSWRlbnRpZmllciB3b3Js
ZElkZW50aWZpZXI7CiAgICAgV2ViQ29yZTo6VXNlclN0eWxlU2hlZXQgdXNlclN0eWxlU2hlZXQ7
CiB9OwogCkBAIC01OCw3ICs1OSw3IEBAIHN0cnVjdCBXZWJTY3JpcHRNZXNzYWdlSGFuZGxlckRh
dGEgewogICAgIHN0YXRpYyBPcHRpb25hbDxXZWJTY3JpcHRNZXNzYWdlSGFuZGxlckRhdGE+IGRl
Y29kZShJUEM6OkRlY29kZXImKTsKIAogICAgIHVpbnQ2NF90IGlkZW50aWZpZXI7Ci0gICAgdWlu
dDY0X3Qgd29ybGRJZGVudGlmaWVyOworICAgIENvbnRlbnRXb3JsZElkZW50aWZpZXIgd29ybGRJ
ZGVudGlmaWVyOwogICAgIFN0cmluZyBuYW1lOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRXb3JsZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJQ29udGVudFdvcmxkLmNwcAppbmRleCA0MWI2MDM3NTk0NTFiYmMxZTIy
NjQ0NDE4NGViNmRjNDQwYzM5OWM4Li5iOGQ5Mzg4NTYxMmVmY2MzODk4NGRmMDE5MjllMWYxYTMz
OGEzOTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVu
dFdvcmxkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFdv
cmxkLmNwcApAQCAtMzMsMTMgKzMzLDYgQEAKIAogbmFtZXNwYWNlIEFQSSB7CiAKLXVpbnQ2NF90
IENvbnRlbnRXb3JsZEJhc2U6OmdlbmVyYXRlSWRlbnRpZmllcigpCi17Ci0gICAgc3RhdGljIHVp
bnQ2NF90IGlkZW50aWZpZXIgPSBXZWJLaXQ6OnBhZ2VDb250ZW50V29ybGRJZGVudGlmaWVyOwot
Ci0gICAgcmV0dXJuICsraWRlbnRpZmllcjsKLX0KLQogc3RhdGljIEhhc2hNYXA8V1RGOjpTdHJp
bmcsIENvbnRlbnRXb3JsZCo+JiBzaGFyZWRXb3JsZE1hcCgpCiB7CiAgICAgc3RhdGljIEhhc2hN
YXA8V1RGOjpTdHJpbmcsIENvbnRlbnRXb3JsZCo+KiBzaGFyZWRNYXAgPSBuZXcgSGFzaE1hcDxX
VEY6OlN0cmluZywgQ29udGVudFdvcmxkKj47CkBAIC01OSwxMyArNTIsMjMgQEAgUmVmPENvbnRl
bnRXb3JsZD4gQ29udGVudFdvcmxkOjpzaGFyZWRXb3JsZFdpdGhOYW1lKGNvbnN0IFdURjo6U3Ry
aW5nJiBuYW1lKQogCiBDb250ZW50V29ybGQmIENvbnRlbnRXb3JsZDo6cGFnZUNvbnRlbnRXb3Js
ZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZlB0cjxDb250ZW50V29ybGQ+PiB3
b3JsZChhZG9wdFJlZihuZXcgQ29udGVudFdvcmxkKFdlYktpdDo6cGFnZUNvbnRlbnRXb3JsZElk
ZW50aWZpZXIpKSk7CisgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxSZWZQdHI8Q29udGVu
dFdvcmxkPj4gd29ybGQ7CisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7CisgICAgc3Rk
OjpjYWxsX29uY2Uob25jZSwgW10geworICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIGN1cnJlbnQg
Z2VuZXJhdGVkIGNvbnRlbnQgd29ybGQgaWRlbnRpZmllciBpcyBncmVhdGVyIHRoYW4gb3VyIGlu
dGVnZXIgaWRlbnRpZmllciBmb3IgdGhlIHBhZ2VDb250ZW50V29ybGQuCisgICAgICAgIC8vIFdl
IGNhbiBkbyB0aGlzIGJ5IGdlbmVyYXRpbmcgb25lIGFuZCBqdXN0IHRocm93aW5nIGl0IGF3YXku
CisgICAgICAgIGF1dG8gaWRlbnRpZmllciA9IFdlYktpdDo6Q29udGVudFdvcmxkSWRlbnRpZmll
cjo6Z2VuZXJhdGUoKTsKKyAgICAgICAgQVNTRVJUKGlkZW50aWZpZXIudG9VSW50NjQoKSA+PSBX
ZWJLaXQ6OnBhZ2VDb250ZW50V29ybGRJZGVudGlmaWVyKCkudG9VSW50NjQoKSk7CisKKyAgICAg
ICAgd29ybGQuY29uc3RydWN0KGFkb3B0UmVmKG5ldyBDb250ZW50V29ybGQoV2ViS2l0OjpwYWdl
Q29udGVudFdvcmxkSWRlbnRpZmllcigpKSkpOworICAgIH0pOworCiAgICAgcmV0dXJuICp3b3Js
ZC5nZXQoKTsKIH0KIAogQ29udGVudFdvcmxkJiBDb250ZW50V29ybGQ6OmRlZmF1bHRDbGllbnRX
b3JsZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZlB0cjxDb250ZW50V29ybGQ+
PiB3b3JsZChhZG9wdFJlZihuZXcgQ29udGVudFdvcmxkKGdlbmVyYXRlSWRlbnRpZmllcigpKSkp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZWZQdHI8Q29udGVudFdvcmxkPj4gd29ybGQo
YWRvcHRSZWYobmV3IENvbnRlbnRXb3JsZChTdHJpbmcgeyB9KSkpOwogICAgIHJldHVybiAqd29y
bGQuZ2V0KCk7CiB9CiAKQEAgLTc0LDcgKzc3LDcgQEAgQ29udGVudFdvcmxkOjpDb250ZW50V29y
bGQoY29uc3QgV1RGOjpTdHJpbmcmIG5hbWUpCiB7CiB9CiAKLUNvbnRlbnRXb3JsZDo6Q29udGVu
dFdvcmxkKHVpbnQ2NF90IGlkZW50aWZpZXIpCitDb250ZW50V29ybGQ6OkNvbnRlbnRXb3JsZChX
ZWJLaXQ6OkNvbnRlbnRXb3JsZElkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICA6IENvbnRlbnRX
b3JsZEJhc2UoaWRlbnRpZmllcikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElDb250ZW50V29ybGQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElDb250ZW50V29ybGQuaAppbmRleCBiMzRmMTI5YzRjYmJlYmM1ZTU2MmEzYjlhZDlmMDJi
MjE5ZGI3ODhhLi41YjVkMmEzZWQ2NTNkZDc1NWFmODhlNjhjYmViZDU4ZmY1NDk1OTAxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFdvcmxkLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRXb3JsZC5oCkBAIC0yNiw2
ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1
ZGUgIkNvbnRlbnRXb3JsZFNoYXJlZC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCiBuYW1lc3BhY2UgQVBJIHsKQEAgLTM0LDMwICszNSwyNyBAQCBjbGFzcyBDb250ZW50V29y
bGRCYXNlIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Db250ZW50V29ybGRCYXNlKCkgPSBkZWZh
dWx0OwogCi0gICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRp
ZmllcjsgfQorICAgIFdlYktpdDo6Q29udGVudFdvcmxkSWRlbnRpZmllciBpZGVudGlmaWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAgICAgY29uc3QgV1RGOjpTdHJpbmcmIG5h
bWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KLSAgICBzdGQ6OnBhaXI8dWludDY0X3QsIFdU
Rjo6U3RyaW5nPiB3b3JsZERhdGEoKSBjb25zdCB7IHJldHVybiB7IGlkZW50aWZpZXIoKSwgbmFt
ZSgpIH07IH0KKyAgICBzdGQ6OnBhaXI8V2ViS2l0OjpDb250ZW50V29ybGRJZGVudGlmaWVyLCBX
VEY6OlN0cmluZz4gd29ybGREYXRhKCkgY29uc3QgeyByZXR1cm4geyBtX2lkZW50aWZpZXIsIG1f
bmFtZSB9OyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVmKCkgY29uc3QgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBkZXJlZigpIGNvbnN0ID0gMDsKIAotICAgIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0
ZUlkZW50aWZpZXIoKTsKLQogcHJvdGVjdGVkOgogICAgIENvbnRlbnRXb3JsZEJhc2UoY29uc3Qg
V1RGOjpTdHJpbmcmIG5hbWUpCi0gICAgICAgIDogbV9pZGVudGlmaWVyKGdlbmVyYXRlSWRlbnRp
ZmllcigpKQorICAgICAgICA6IG1faWRlbnRpZmllcihXZWJLaXQ6OkNvbnRlbnRXb3JsZElkZW50
aWZpZXI6OmdlbmVyYXRlKCkpCiAgICAgICAgICwgbV9uYW1lKG5hbWUpCiAgICAgewogICAgIH0K
IAotICAgIENvbnRlbnRXb3JsZEJhc2UodWludDY0X3QgaWRlbnRpZmllcikKKyAgICBDb250ZW50
V29ybGRCYXNlKFdlYktpdDo6Q29udGVudFdvcmxkSWRlbnRpZmllciBpZGVudGlmaWVyKQogICAg
ICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgIHsKICAgICB9CiAKIHByaXZhdGU6
Ci0gICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGFuIE9iamVjdElkZW50aWZpZXIgb25jZSB3
ZSBjYW4gZ2V0IGFsbCBTY3JpcHRXb3JsZCByZWxhdGVkIGNsYXNzZXMgdG8gdXNlIE9iamVjdElk
ZW50aWZpZXIuCi0gICAgdWludDY0X3QgbV9pZGVudGlmaWVyOworICAgIFdlYktpdDo6Q29udGVu
dFdvcmxkSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgV1RGOjpTdHJpbmcgbV9uYW1lOwog
fTsKIApAQCAtNzQsNyArNzIsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQg
Q29udGVudFdvcmxkKGNvbnN0IFdURjo6U3RyaW5nJik7Ci0gICAgZXhwbGljaXQgQ29udGVudFdv
cmxkKHVpbnQ2NF90IGlkZW50aWZpZXIpOworICAgIGV4cGxpY2l0IENvbnRlbnRXb3JsZChXZWJL
aXQ6OkNvbnRlbnRXb3JsZElkZW50aWZpZXIpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRXb3Js
ZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRXb3JsZC5j
cHAKaW5kZXggZGI5ZDAwMzhiNTIwMmEyN2YyYWM0YmE4M2I0MmIwMmU0NDdhYjI0Mi4uNjU5OTYz
N2NmMGI3MjAwOTU1NzY3NGRjMjY0NDgzOGExYzIyNjMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250ZW50V29ybGQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVc2VyQ29udGVudFdvcmxkLmNwcApAQCAtNDcsNyArNDcs
NyBAQCBVc2VyQ29udGVudFdvcmxkOjpVc2VyQ29udGVudFdvcmxkKGNvbnN0IFdURjo6U3RyaW5n
JiBuYW1lKQogfQogCiBVc2VyQ29udGVudFdvcmxkOjpVc2VyQ29udGVudFdvcmxkKEZvck5vcm1h
bFdvcmxkT25seSkKLSAgICA6IENvbnRlbnRXb3JsZEJhc2UoV2ViS2l0OjpwYWdlQ29udGVudFdv
cmxkSWRlbnRpZmllcikKKyAgICA6IENvbnRlbnRXb3JsZEJhc2UoV2ViS2l0OjpwYWdlQ29udGVu
dFdvcmxkSWRlbnRpZmllcigpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xs
ZXJQcm94eS5jcHAKaW5kZXggMGM5OTNiYjc4YjFmOGUwYzc5OTEwODI5MGMwNzE0ZTEwYzNmZDcx
Ny4uOTg3YTk4NjYxOGY5MGIyMWY3OWU5ZmRiYzBlYTAyNDFmYmVmZmE4MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dl
YlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNwcApAQCAtMTg0LDcgKzE4NCw3IEBAIHZvaWQg
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92ZVVzZXJDb250ZW50V29ybGRVc2Vz
KEFQSTo6VXNlckNvbnRlbnRXCiAKIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6
OnJlbW92ZVVzZXJDb250ZW50V29ybGRVc2VzKEhhc2hDb3VudGVkU2V0PFJlZlB0cjxBUEk6OlVz
ZXJDb250ZW50V29ybGQ+PiYgd29ybGRzKQogewotICAgIFZlY3Rvcjx1aW50NjRfdD4gd29ybGRz
VG9SZW1vdmU7CisgICAgVmVjdG9yPENvbnRlbnRXb3JsZElkZW50aWZpZXI+IHdvcmxkc1RvUmVt
b3ZlOwogICAgIGZvciAoYXV0byYgd29ybGRVc2VQYWlyIDogd29ybGRzKSB7CiAgICAgICAgIGlm
IChzaG91bGRTZW5kUmVtb3ZlVXNlckNvbnRlbnRXb3JsZHNNZXNzYWdlKCp3b3JsZFVzZVBhaXIu
a2V5LmdldCgpLCB3b3JsZFVzZVBhaXIudmFsdWUpKQogICAgICAgICAgICAgd29ybGRzVG9SZW1v
dmUuYXBwZW5kKHdvcmxkVXNlUGFpci5rZXktPmlkZW50aWZpZXIoKSk7CkBAIC0yMzYsNyArMjM2
LDcgQEAgdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6cmVtb3ZlQWxsVXNlclNj
cmlwdHMoKQogICAgIGZvciAoYXV0byB1c2VyU2NyaXB0IDogbV91c2VyU2NyaXB0cy0+ZWxlbWVu
dHNPZlR5cGU8QVBJOjpVc2VyU2NyaXB0PigpKQogICAgICAgICB3b3JsZHMuYWRkKGNvbnN0X2Nh
c3Q8QVBJOjpVc2VyQ29udGVudFdvcmxkKj4oJnVzZXJTY3JpcHQtPnVzZXJDb250ZW50V29ybGQo
KSkpOwogCi0gICAgVmVjdG9yPHVpbnQ2NF90PiB3b3JsZElkZW50aWZpZXJzOworICAgIFZlY3Rv
cjxDb250ZW50V29ybGRJZGVudGlmaWVyPiB3b3JsZElkZW50aWZpZXJzOwogICAgIHdvcmxkSWRl
bnRpZmllcnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh3b3JsZHMuc2l6ZSgpKTsKICAgICBmb3Ig
KGNvbnN0IGF1dG8mIHdvcmxkQ291bnRQYWlyIDogd29ybGRzKQogICAgICAgICB3b3JsZElkZW50
aWZpZXJzLnVuY2hlY2tlZEFwcGVuZCh3b3JsZENvdW50UGFpci5rZXktPmlkZW50aWZpZXIoKSk7
CkBAIC0yOTEsNyArMjkxLDcgQEAgdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6
cmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzKCkKICAgICBmb3IgKGF1dG8gdXNlclN0eWxlU2hlZXQg
OiBtX3VzZXJTdHlsZVNoZWV0cy0+ZWxlbWVudHNPZlR5cGU8QVBJOjpVc2VyU3R5bGVTaGVldD4o
KSkKICAgICAgICAgd29ybGRzLmFkZChjb25zdF9jYXN0PEFQSTo6VXNlckNvbnRlbnRXb3JsZCo+
KCZ1c2VyU3R5bGVTaGVldC0+dXNlckNvbnRlbnRXb3JsZCgpKSk7CiAKLSAgICBWZWN0b3I8dWlu
dDY0X3Q+IHdvcmxkSWRlbnRpZmllcnM7CisgICAgVmVjdG9yPENvbnRlbnRXb3JsZElkZW50aWZp
ZXI+IHdvcmxkSWRlbnRpZmllcnM7CiAgICAgd29ybGRJZGVudGlmaWVycy5yZXNlcnZlSW5pdGlh
bENhcGFjaXR5KHdvcmxkcy5zaXplKCkpOwogICAgIGZvciAoY29uc3QgYXV0byYgd29ybGRDb3Vu
dFBhaXIgOiB3b3JsZHMpCiAgICAgICAgIHdvcmxkSWRlbnRpZmllcnMudW5jaGVja2VkQXBwZW5k
KHdvcmxkQ291bnRQYWlyLmtleS0+aWRlbnRpZmllcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29u
dHJvbGxlci5jcHAKaW5kZXggMjc2ZjgxYjNlZGFhOTgzMDhhNDhhNzUyNTk1OTlkMzQwODUyNTRi
Mi4uNjkyOTRhZDk1ZWJjNmY1NTE3YjEwMjk0MjcwMzVhM2FjMTYyZjMxNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVz
ZXJDb250ZW50Q29udHJvbGxlci5jcHAKQEAgLTU5LDExICs1OSwxMSBAQCBzdGF0aWMgSGFzaE1h
cDxVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyLCBXZWJVc2VyQ29udGVudENvbnRyb2xs
ZXIqPiYgdXNlcgogICAgIHJldHVybiB1c2VyQ29udGVudENvbnRyb2xsZXJzOwogfQogCi10eXBl
ZGVmIEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6cGFpcjxSZWZQdHI8SW5qZWN0ZWRCdW5kbGVTY3Jp
cHRXb3JsZD4sIHVuc2lnbmVkPj4gV29ybGRNYXA7Cit0eXBlZGVmIEhhc2hNYXA8Q29udGVudFdv
cmxkSWRlbnRpZmllciwgc3RkOjpwYWlyPFJlZlB0cjxJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxk
PiwgdW5zaWduZWQ+PiBXb3JsZE1hcDsKIAogc3RhdGljIFdvcmxkTWFwJiB3b3JsZE1hcCgpCiB7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFdvcmxkTWFwPiBtYXAoc3RkOjppbml0aWFsaXpl
cl9saXN0PFdvcmxkTWFwOjpLZXlWYWx1ZVBhaXJUeXBlPiB7IHsgV2ViVXNlckNvbnRlbnRDb250
cm9sbGVyOjppZGVudGlmaWVyRm9yTm9ybWFsV29ybGQoKSwgc3RkOjptYWtlX3BhaXIoJkluamVj
dGVkQnVuZGxlU2NyaXB0V29ybGQ6Om5vcm1hbFdvcmxkKCksIDEpIH0gfSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFdvcmxkTWFwPiBtYXAoc3RkOjppbml0aWFsaXplcl9saXN0PFdvcmxk
TWFwOjpLZXlWYWx1ZVBhaXJUeXBlPiB7IHsgcGFnZUNvbnRlbnRXb3JsZElkZW50aWZpZXIoKSwg
c3RkOjptYWtlX3BhaXIoJkluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQ6Om5vcm1hbFdvcmxkKCks
IDEpIH0gfSk7CiAKICAgICByZXR1cm4gbWFwOwogfQpAQCAtOTUsMTYgKzk1LDE2IEBAIFdlYlVz
ZXJDb250ZW50Q29udHJvbGxlcjo6fldlYlVzZXJDb250ZW50Q29udHJvbGxlcigpCiAgICAgdXNl
ckNvbnRlbnRDb250cm9sbGVycygpLnJlbW92ZShtX2lkZW50aWZpZXIpOwogfQogCi1JbmplY3Rl
ZEJ1bmRsZVNjcmlwdFdvcmxkKiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OndvcmxkRm9ySWRl
bnRpZmllcih1aW50NjRfdCBpZGVudGlmaWVyKQorSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCog
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjp3b3JsZEZvcklkZW50aWZpZXIoQ29udGVudFdvcmxk
SWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIGF1dG8gaXRlcmF0b3IgPSB3b3JsZE1hcCgp
LmZpbmQoaWRlbnRpZmllcik7CiAgICAgcmV0dXJuIGl0ZXJhdG9yID09IHdvcmxkTWFwKCkuZW5k
KCkgPyBudWxscHRyIDogaXRlcmF0b3ItPnZhbHVlLmZpcnN0LmdldCgpOwogfQogCi12b2lkIFdl
YlVzZXJDb250ZW50Q29udHJvbGxlcjo6YWRkVXNlckNvbnRlbnRXb3JsZChjb25zdCBzdGQ6OnBh
aXI8dWludDY0X3QsIFN0cmluZz4mIHdvcmxkKQordm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xs
ZXI6OmFkZFVzZXJDb250ZW50V29ybGQoY29uc3Qgc3RkOjpwYWlyPENvbnRlbnRXb3JsZElkZW50
aWZpZXIsIFN0cmluZz4mIHdvcmxkKQogewogICAgIEFTU0VSVCh3b3JsZC5maXJzdCk7Ci0gICAg
aWYgKHdvcmxkLmZpcnN0ID09IHBhZ2VDb250ZW50V29ybGRJZGVudGlmaWVyKQorICAgIGlmICh3
b3JsZC5maXJzdCA9PSBwYWdlQ29udGVudFdvcmxkSWRlbnRpZmllcigpKQogICAgICAgICByZXR1
cm47CiAKICAgICB3b3JsZE1hcCgpLmVuc3VyZSh3b3JsZC5maXJzdCwgWyZdIHsKQEAgLTExMywy
NyArMTEzLDI3IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjphZGRVc2VyQ29udGVu
dFdvcmxkKGNvbnN0IHN0ZDo6cGFpcjx1aW50NjRfdCwgU3RyCiAgICAgICAgIC8vIHVzZSB0aGUg
ZXhpc3Rpbmcgd29ybGQgY3JlYXRlZCBieSB0aGUgd2ViIGV4dGVuc2lvbiBpZiBhbnkuIFRoZSB3
b3JsZCBuYW1lIGlzIHVzZWQKICAgICAgICAgLy8gYXMgdGhlIGlkZW50aWZpZXIuCiAgICAgICAg
IGlmIChhdXRvKiBleGlzdGluZ1dvcmxkID0gSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZDo6Zmlu
ZCh3b3JsZC5zZWNvbmQpKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKFJlZjxJ
bmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkPigqZXhpc3RpbmdXb3JsZCksIHBhZ2VDb250ZW50V29y
bGRJZGVudGlmaWVyKTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihSZWY8SW5q
ZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZD4oKmV4aXN0aW5nV29ybGQpLCAxKTsKICNlbmRpZgotICAg
ICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZDo6Y3Jl
YXRlKHdvcmxkLnNlY29uZCksIHBhZ2VDb250ZW50V29ybGRJZGVudGlmaWVyKTsKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bWFrZV9wYWlyKEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQ6OmNyZWF0ZSh3
b3JsZC5zZWNvbmQpLCAxKTsKICAgICB9KTsKIH0KIAotdm9pZCBXZWJVc2VyQ29udGVudENvbnRy
b2xsZXI6OmFkZFVzZXJDb250ZW50V29ybGRzKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8dWludDY0
X3QsIFN0cmluZz4+JiB3b3JsZHMpCit2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6YWRk
VXNlckNvbnRlbnRXb3JsZHMoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxDb250ZW50V29ybGRJZGVu
dGlmaWVyLCBTdHJpbmc+PiYgd29ybGRzKQogewogICAgIGZvciAoYXV0byYgd29ybGQgOiB3b3Js
ZHMpCiAgICAgICAgIGFkZFVzZXJDb250ZW50V29ybGQod29ybGQpOwogfQogCi12b2lkIFdlYlVz
ZXJDb250ZW50Q29udHJvbGxlcjo6cmVtb3ZlVXNlckNvbnRlbnRXb3JsZHMoY29uc3QgVmVjdG9y
PHVpbnQ2NF90PiYgd29ybGRJZGVudGlmaWVycykKK3ZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyOjpyZW1vdmVVc2VyQ29udGVudFdvcmxkcyhjb25zdCBWZWN0b3I8Q29udGVudFdvcmxkSWRl
bnRpZmllcj4mIHdvcmxkSWRlbnRpZmllcnMpCiB7CiAgICAgZm9yIChhdXRvJiB3b3JsZElkZW50
aWZpZXIgOiB3b3JsZElkZW50aWZpZXJzKSB7CiAgICAgICAgIEFTU0VSVCh3b3JsZElkZW50aWZp
ZXIpOwotICAgICAgICBBU1NFUlQod29ybGRJZGVudGlmaWVyICE9IDEpOworICAgICAgICBBU1NF
UlQod29ybGRJZGVudGlmaWVyICE9IHBhZ2VDb250ZW50V29ybGRJZGVudGlmaWVyKCkpOwogCiAg
ICAgICAgIGF1dG8gaXQgPSB3b3JsZE1hcCgpLmZpbmQod29ybGRJZGVudGlmaWVyKTsKICAgICAg
ICAgaWYgKGl0ID09IHdvcmxkTWFwKCkuZW5kKCkpIHsKLSAgICAgICAgICAgIFdURkxvZ0Fsd2F5
cygiVHJ5aW5nIHRvIHJlbW92ZSBhIFVzZXJDb250ZW50V29ybGQgKGlkPSUiIFBSSXU2NCAiKSB0
aGF0IGRvZXMgbm90IGV4aXN0LiIsIHdvcmxkSWRlbnRpZmllcik7CisgICAgICAgICAgICBXVEZM
b2dBbHdheXMoIlRyeWluZyB0byByZW1vdmUgYSBVc2VyQ29udGVudFdvcmxkIChpZD0lIiBQUkl1
NjQgIikgdGhhdCBkb2VzIG5vdCBleGlzdC4iLCB3b3JsZElkZW50aWZpZXIudG9VSW50NjQoKSk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtMTQ5LDcgKzE0OSw3IEBAIHZv
aWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjphZGRVc2VyU2NyaXB0cyhWZWN0b3I8V2ViVXNl
clNjcmlwdERhdGE+JiYgdXNlclNjCiAgICAgZm9yIChjb25zdCBhdXRvJiB1c2VyU2NyaXB0RGF0
YSA6IHVzZXJTY3JpcHRzKSB7CiAgICAgICAgIGF1dG8gaXQgPSB3b3JsZE1hcCgpLmZpbmQodXNl
clNjcmlwdERhdGEud29ybGRJZGVudGlmaWVyKTsKICAgICAgICAgaWYgKGl0ID09IHdvcmxkTWFw
KCkuZW5kKCkpIHsKLSAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiVHJ5aW5nIHRvIGFkZCBhIFVz
ZXJTY3JpcHQgdG8gYSBVc2VyQ29udGVudFdvcmxkIChpZD0lIiBQUkl1NjQgIikgdGhhdCBkb2Vz
IG5vdCBleGlzdC4iLCB1c2VyU2NyaXB0RGF0YS53b3JsZElkZW50aWZpZXIpOworICAgICAgICAg
ICAgV1RGTG9nQWx3YXlzKCJUcnlpbmcgdG8gYWRkIGEgVXNlclNjcmlwdCB0byBhIFVzZXJDb250
ZW50V29ybGQgKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRvZXMgbm90IGV4aXN0LiIsIHVzZXJTY3Jp
cHREYXRhLndvcmxkSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICB9CiAKQEAgLTE1OCwyMyArMTU4LDIzIEBAIHZvaWQgV2ViVXNlckNvbnRlbnRD
b250cm9sbGVyOjphZGRVc2VyU2NyaXB0cyhWZWN0b3I8V2ViVXNlclNjcmlwdERhdGE+JiYgdXNl
clNjCiAgICAgfQogfQogCi12b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6cmVtb3ZlVXNl
clNjcmlwdCh1aW50NjRfdCB3b3JsZElkZW50aWZpZXIsIHVpbnQ2NF90IHVzZXJTY3JpcHRJZGVu
dGlmaWVyKQordm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OnJlbW92ZVVzZXJTY3JpcHQo
Q29udGVudFdvcmxkSWRlbnRpZmllciB3b3JsZElkZW50aWZpZXIsIHVpbnQ2NF90IHVzZXJTY3Jp
cHRJZGVudGlmaWVyKQogewogICAgIGF1dG8gaXQgPSB3b3JsZE1hcCgpLmZpbmQod29ybGRJZGVu
dGlmaWVyKTsKICAgICBpZiAoaXQgPT0gd29ybGRNYXAoKS5lbmQoKSkgewotICAgICAgICBXVEZM
b2dBbHdheXMoIlRyeWluZyB0byByZW1vdmUgYSBVc2VyU2NyaXB0IGZyb20gYSBVc2VyQ29udGVu
dFdvcmxkIChpZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlzdC4iLCB3b3JsZElkZW50
aWZpZXIpOworICAgICAgICBXVEZMb2dBbHdheXMoIlRyeWluZyB0byByZW1vdmUgYSBVc2VyU2Ny
aXB0IGZyb20gYSBVc2VyQ29udGVudFdvcmxkIChpZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5v
dCBleGlzdC4iLCB3b3JsZElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKICAgICByZW1vdmVVc2VyU2NyaXB0SW50ZXJuYWwoKml0LT52YWx1ZS5maXJzdCwg
dXNlclNjcmlwdElkZW50aWZpZXIpOwogfQogCi12b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxl
cjo6cmVtb3ZlQWxsVXNlclNjcmlwdHMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYgd29ybGRJZGVu
dGlmaWVycykKK3ZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVBbGxVc2VyU2Ny
aXB0cyhjb25zdCBWZWN0b3I8Q29udGVudFdvcmxkSWRlbnRpZmllcj4mIHdvcmxkSWRlbnRpZmll
cnMpCiB7CiAgICAgZm9yIChhdXRvJiB3b3JsZElkZW50aWZpZXIgOiB3b3JsZElkZW50aWZpZXJz
KSB7CiAgICAgICAgIGF1dG8gaXQgPSB3b3JsZE1hcCgpLmZpbmQod29ybGRJZGVudGlmaWVyKTsK
ICAgICAgICAgaWYgKGl0ID09IHdvcmxkTWFwKCkuZW5kKCkpIHsKLSAgICAgICAgICAgIFdURkxv
Z0Fsd2F5cygiVHJ5aW5nIHRvIHJlbW92ZSBhbGwgVXNlclNjcmlwdHMgZnJvbSBhIFVzZXJDb250
ZW50V29ybGQgKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRvZXMgbm90IGV4aXN0LiIsIHdvcmxkSWRl
bnRpZmllcik7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIlRyeWluZyB0byByZW1vdmUgYWxs
IFVzZXJTY3JpcHRzIGZyb20gYSBVc2VyQ29udGVudFdvcmxkIChpZD0lIiBQUkl1NjQgIikgdGhh
dCBkb2VzIG5vdCBleGlzdC4iLCB3b3JsZElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtMTg3LDcgKzE4Nyw3IEBAIHZvaWQgV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldHMoY29uc3QgVmVjdG9yPFdlYlVz
ZXJTdHlsZVNoZWV0CiAgICAgZm9yIChjb25zdCBhdXRvJiB1c2VyU3R5bGVTaGVldERhdGEgOiB1
c2VyU3R5bGVTaGVldHMpIHsKICAgICAgICAgYXV0byBpdCA9IHdvcmxkTWFwKCkuZmluZCh1c2Vy
U3R5bGVTaGVldERhdGEud29ybGRJZGVudGlmaWVyKTsKICAgICAgICAgaWYgKGl0ID09IHdvcmxk
TWFwKCkuZW5kKCkpIHsKLSAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiVHJ5aW5nIHRvIGFkZCBh
IFVzZXJTdHlsZVNoZWV0IHRvIGEgVXNlckNvbnRlbnRXb3JsZCAoaWQ9JSIgUFJJdTY0ICIpIHRo
YXQgZG9lcyBub3QgZXhpc3QuIiwgdXNlclN0eWxlU2hlZXREYXRhLndvcmxkSWRlbnRpZmllcik7
CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIlRyeWluZyB0byBhZGQgYSBVc2VyU3R5bGVTaGVl
dCB0byBhIFVzZXJDb250ZW50V29ybGQgKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRvZXMgbm90IGV4
aXN0LiIsIHVzZXJTdHlsZVNoZWV0RGF0YS53b3JsZElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogICAgICAgICAKQEAgLTE5OCwyNCArMTk4
LDI0IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldHMo
Y29uc3QgVmVjdG9yPFdlYlVzZXJTdHlsZVNoZWV0CiAgICAgaW52YWxpZGF0ZUluamVjdGVkU3R5
bGVTaGVldENhY2hlSW5BbGxGcmFtZXNJbkFsbFBhZ2VzKCk7CiB9CiAKLXZvaWQgV2ViVXNlckNv
bnRlbnRDb250cm9sbGVyOjpyZW1vdmVVc2VyU3R5bGVTaGVldCh1aW50NjRfdCB3b3JsZElkZW50
aWZpZXIsIHVpbnQ2NF90IHVzZXJTdHlsZVNoZWV0SWRlbnRpZmllcikKK3ZvaWQgV2ViVXNlckNv
bnRlbnRDb250cm9sbGVyOjpyZW1vdmVVc2VyU3R5bGVTaGVldChDb250ZW50V29ybGRJZGVudGlm
aWVyIHdvcmxkSWRlbnRpZmllciwgdWludDY0X3QgdXNlclN0eWxlU2hlZXRJZGVudGlmaWVyKQog
ewogICAgIGF1dG8gaXQgPSB3b3JsZE1hcCgpLmZpbmQod29ybGRJZGVudGlmaWVyKTsKICAgICBp
ZiAoaXQgPT0gd29ybGRNYXAoKS5lbmQoKSkgewotICAgICAgICBXVEZMb2dBbHdheXMoIlRyeWlu
ZyB0byByZW1vdmUgYSBVc2VyU3R5bGVTaGVldCBmcm9tIGEgVXNlckNvbnRlbnRXb3JsZCAoaWQ9
JSIgUFJJdTY0ICIpIHRoYXQgZG9lcyBub3QgZXhpc3QuIiwgd29ybGRJZGVudGlmaWVyKTsKKyAg
ICAgICAgV1RGTG9nQWx3YXlzKCJUcnlpbmcgdG8gcmVtb3ZlIGEgVXNlclN0eWxlU2hlZXQgZnJv
bSBhIFVzZXJDb250ZW50V29ybGQgKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRvZXMgbm90IGV4aXN0
LiIsIHdvcmxkSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIHJlbW92ZVVzZXJTdHlsZVNoZWV0SW50ZXJuYWwoKml0LT52YWx1ZS5maXJzdCwgdXNl
clN0eWxlU2hlZXRJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xs
ZXI6OnJlbW92ZUFsbFVzZXJTdHlsZVNoZWV0cyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JiB3b3Js
ZElkZW50aWZpZXJzKQordm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OnJlbW92ZUFsbFVz
ZXJTdHlsZVNoZWV0cyhjb25zdCBWZWN0b3I8Q29udGVudFdvcmxkSWRlbnRpZmllcj4mIHdvcmxk
SWRlbnRpZmllcnMpCiB7CiAgICAgYm9vbCBzaGVldHNDaGFuZ2VkID0gZmFsc2U7CiAgICAgZm9y
IChhdXRvJiB3b3JsZElkZW50aWZpZXIgOiB3b3JsZElkZW50aWZpZXJzKSB7CiAgICAgICAgIGF1
dG8gaXQgPSB3b3JsZE1hcCgpLmZpbmQod29ybGRJZGVudGlmaWVyKTsKICAgICAgICAgaWYgKGl0
ID09IHdvcmxkTWFwKCkuZW5kKCkpIHsKLSAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiVHJ5aW5n
IHRvIHJlbW92ZSBhbGwgVXNlclN0eWxlU2hlZXRzIGZyb20gYSBVc2VyQ29udGVudFdvcmxkIChp
ZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlzdC4iLCB3b3JsZElkZW50aWZpZXIpOwor
ICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJUcnlpbmcgdG8gcmVtb3ZlIGFsbCBVc2VyU3R5bGVT
aGVldHMgZnJvbSBhIFVzZXJDb250ZW50V29ybGQgKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRvZXMg
bm90IGV4aXN0LiIsIHdvcmxkSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogCkBAIC0yNzgsNyArMjc4LDcgQEAgdm9pZCBXZWJVc2VyQ29udGVu
dENvbnRyb2xsZXI6OmFkZFVzZXJTY3JpcHRNZXNzYWdlSGFuZGxlcnMoY29uc3QgVmVjdG9yPFdl
YlNjcmkKICAgICBmb3IgKGF1dG8mIGhhbmRsZXIgOiBzY3JpcHRNZXNzYWdlSGFuZGxlcnMpIHsK
ICAgICAgICAgYXV0byBpdCA9IHdvcmxkTWFwKCkuZmluZChoYW5kbGVyLndvcmxkSWRlbnRpZmll
cik7CiAgICAgICAgIGlmIChpdCA9PSB3b3JsZE1hcCgpLmVuZCgpKSB7Ci0gICAgICAgICAgICBX
VEZMb2dBbHdheXMoIlRyeWluZyB0byBhZGQgYSBVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXIgdG8g
YSBVc2VyQ29udGVudFdvcmxkIChpZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlzdC4i
LCBoYW5kbGVyLndvcmxkSWRlbnRpZmllcik7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIlRy
eWluZyB0byBhZGQgYSBVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXIgdG8gYSBVc2VyQ29udGVudFdv
cmxkIChpZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlzdC4iLCBoYW5kbGVyLndvcmxk
SWRlbnRpZmllci50b1VJbnQ2NCgpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKQEAgLTI4OSwxMiArMjg5LDEyIEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjph
ZGRVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXJzKGNvbnN0IFZlY3RvcjxXZWJTY3JpCiAjZW5kaWYK
IH0KIAotdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OnJlbW92ZVVzZXJTY3JpcHRNZXNz
YWdlSGFuZGxlcih1aW50NjRfdCB3b3JsZElkZW50aWZpZXIsIHVpbnQ2NF90IHVzZXJTY3JpcHRN
ZXNzYWdlSGFuZGxlcklkZW50aWZpZXIpCit2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6
cmVtb3ZlVXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVyKENvbnRlbnRXb3JsZElkZW50aWZpZXIgd29y
bGRJZGVudGlmaWVyLCB1aW50NjRfdCB1c2VyU2NyaXB0TWVzc2FnZUhhbmRsZXJJZGVudGlmaWVy
KQogewogI2lmIEVOQUJMRShVU0VSX01FU1NBR0VfSEFORExFUlMpCiAgICAgYXV0byBpdCA9IHdv
cmxkTWFwKCkuZmluZCh3b3JsZElkZW50aWZpZXIpOwogICAgIGlmIChpdCA9PSB3b3JsZE1hcCgp
LmVuZCgpKSB7Ci0gICAgICAgIFdURkxvZ0Fsd2F5cygiVHJ5aW5nIHRvIHJlbW92ZSBhIFVzZXJT
Y3JpcHRNZXNzYWdlSGFuZGxlciBmcm9tIGEgVXNlckNvbnRlbnRXb3JsZCAoaWQ9JSIgUFJJdTY0
ICIpIHRoYXQgZG9lcyBub3QgZXhpc3QuIiwgd29ybGRJZGVudGlmaWVyKTsKKyAgICAgICAgV1RG
TG9nQWx3YXlzKCJUcnlpbmcgdG8gcmVtb3ZlIGEgVXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVyIGZy
b20gYSBVc2VyQ29udGVudFdvcmxkIChpZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlz
dC4iLCB3b3JsZElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKQEAgLTMwNSwxNCArMzA1LDE0IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpy
ZW1vdmVVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXIodWludDY0X3Qgd29ybGRJZGVuCiAjZW5kaWYK
IH0KIAotdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OnJlbW92ZUFsbFVzZXJTY3JpcHRN
ZXNzYWdlSGFuZGxlcnMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYgd29ybGRJZGVudGlmaWVycykK
K3ZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVBbGxVc2VyU2NyaXB0TWVzc2Fn
ZUhhbmRsZXJzKGNvbnN0IFZlY3RvcjxDb250ZW50V29ybGRJZGVudGlmaWVyPiYgd29ybGRJZGVu
dGlmaWVycykKIHsKICNpZiBFTkFCTEUoVVNFUl9NRVNTQUdFX0hBTkRMRVJTKQogICAgIGJvb2wg
dXNlck1lc3NhZ2VIYW5kbGVyc0NoYW5nZWQgPSBmYWxzZTsKICAgICBmb3IgKGF1dG8mIHdvcmxk
SWRlbnRpZmllciA6IHdvcmxkSWRlbnRpZmllcnMpIHsKICAgICAgICAgYXV0byBpdCA9IHdvcmxk
TWFwKCkuZmluZCh3b3JsZElkZW50aWZpZXIpOwogICAgICAgICBpZiAoaXQgPT0gd29ybGRNYXAo
KS5lbmQoKSkgewotICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJUcnlpbmcgdG8gcmVtb3ZlIGFs
bCBVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXIgZnJvbSBhIFVzZXJDb250ZW50V29ybGQgKGlkPSUi
IFBSSXU2NCAiKSB0aGF0IGRvZXMgbm90IGV4aXN0LiIsIHdvcmxkSWRlbnRpZmllcik7CisgICAg
ICAgICAgICBXVEZMb2dBbHdheXMoIlRyeWluZyB0byByZW1vdmUgYWxsIFVzZXJTY3JpcHRNZXNz
YWdlSGFuZGxlciBmcm9tIGEgVXNlckNvbnRlbnRXb3JsZCAoaWQ9JSIgUFJJdTY0ICIpIHRoYXQg
ZG9lcyBub3QgZXhpc3QuIiwgd29ybGRJZGVudGlmaWVyLnRvVUludDY0KCkpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuaAppbmRl
eCA0OGU3ZDZhYzVjN2UyZDk1YTJjMWE4MjYwYzk0OTAwYmViMGFjOGYzLi45NTg4NTY3MTcyZDRj
OGIyYmE4MWFhMjJkM2NjNzY4ZmIyNTVlZGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxl
ci5oCkBAIC02NCwxMSArNjQsMTAgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlVXNlclN0eWxl
U2hlZXRzKEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQmKTsKICAgICB2b2lkIHJlbW92ZUFsbFVz
ZXJDb250ZW50KCk7CiAKLSAgICBzdGF0aWMgdWludDY0X3QgaWRlbnRpZmllckZvck5vcm1hbFdv
cmxkKCkgeyByZXR1cm4gMTsgfQotICAgIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqIHdvcmxk
Rm9ySWRlbnRpZmllcih1aW50NjRfdCk7CisgICAgSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCog
d29ybGRGb3JJZGVudGlmaWVyKENvbnRlbnRXb3JsZElkZW50aWZpZXIpOwogCi0gICAgdm9pZCBh
ZGRVc2VyQ29udGVudFdvcmxkcyhjb25zdCBWZWN0b3I8c3RkOjpwYWlyPHVpbnQ2NF90LCBTdHJp
bmc+PiYpOwotICAgIHZvaWQgYWRkVXNlckNvbnRlbnRXb3JsZChjb25zdCBzdGQ6OnBhaXI8dWlu
dDY0X3QsIFN0cmluZz4mKTsKKyAgICB2b2lkIGFkZFVzZXJDb250ZW50V29ybGRzKGNvbnN0IFZl
Y3RvcjxzdGQ6OnBhaXI8Q29udGVudFdvcmxkSWRlbnRpZmllciwgU3RyaW5nPj4mKTsKKyAgICB2
b2lkIGFkZFVzZXJDb250ZW50V29ybGQoY29uc3Qgc3RkOjpwYWlyPENvbnRlbnRXb3JsZElkZW50
aWZpZXIsIFN0cmluZz4mKTsKICAgICB2b2lkIGFkZFVzZXJTY3JpcHRzKFZlY3RvcjxXZWJVc2Vy
U2NyaXB0RGF0YT4mJiwgSW5qZWN0VXNlclNjcmlwdEltbWVkaWF0ZWx5KTsKICAgICB2b2lkIGFk
ZFVzZXJTdHlsZVNoZWV0cyhjb25zdCBWZWN0b3I8V2ViVXNlclN0eWxlU2hlZXREYXRhPiYpOwog
ICAgIHZvaWQgYWRkVXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVycyhjb25zdCBWZWN0b3I8V2ViU2Ny
aXB0TWVzc2FnZUhhbmRsZXJEYXRhPiYpOwpAQCAtOTIsMTYgKzkxLDE2IEBAIHByaXZhdGU6CiAg
ICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKIAotICAgIHZvaWQgcmVt
b3ZlVXNlckNvbnRlbnRXb3JsZHMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYpOworICAgIHZvaWQg
cmVtb3ZlVXNlckNvbnRlbnRXb3JsZHMoY29uc3QgVmVjdG9yPENvbnRlbnRXb3JsZElkZW50aWZp
ZXI+Jik7CiAKLSAgICB2b2lkIHJlbW92ZVVzZXJTY3JpcHQodWludDY0X3Qgd29ybGRJZGVudGlm
aWVyLCB1aW50NjRfdCB1c2VyU2NyaXB0SWRlbnRpZmllcik7Ci0gICAgdm9pZCByZW1vdmVBbGxV
c2VyU2NyaXB0cyhjb25zdCBWZWN0b3I8dWludDY0X3Q+Jik7CisgICAgdm9pZCByZW1vdmVVc2Vy
U2NyaXB0KENvbnRlbnRXb3JsZElkZW50aWZpZXIsIHVpbnQ2NF90IHVzZXJTY3JpcHRJZGVudGlm
aWVyKTsKKyAgICB2b2lkIHJlbW92ZUFsbFVzZXJTY3JpcHRzKGNvbnN0IFZlY3RvcjxDb250ZW50
V29ybGRJZGVudGlmaWVyPiYpOwogCi0gICAgdm9pZCByZW1vdmVVc2VyU3R5bGVTaGVldCh1aW50
NjRfdCB3b3JsZElkZW50aWZpZXIsIHVpbnQ2NF90IHVzZXJTY3JpcHRJZGVudGlmaWVyKTsKLSAg
ICB2b2lkIHJlbW92ZUFsbFVzZXJTdHlsZVNoZWV0cyhjb25zdCBWZWN0b3I8dWludDY0X3Q+Jik7
CisgICAgdm9pZCByZW1vdmVVc2VyU3R5bGVTaGVldChDb250ZW50V29ybGRJZGVudGlmaWVyLCB1
aW50NjRfdCB1c2VyU2NyaXB0SWRlbnRpZmllcik7CisgICAgdm9pZCByZW1vdmVBbGxVc2VyU3R5
bGVTaGVldHMoY29uc3QgVmVjdG9yPENvbnRlbnRXb3JsZElkZW50aWZpZXI+Jik7CiAKLSAgICB2
b2lkIHJlbW92ZVVzZXJTY3JpcHRNZXNzYWdlSGFuZGxlcih1aW50NjRfdCB3b3JsZElkZW50aWZp
ZXIsIHVpbnQ2NF90IHVzZXJTY3JpcHRJZGVudGlmaWVyKTsKLSAgICB2b2lkIHJlbW92ZUFsbFVz
ZXJTY3JpcHRNZXNzYWdlSGFuZGxlcnMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYpOworICAgIHZv
aWQgcmVtb3ZlVXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVyKENvbnRlbnRXb3JsZElkZW50aWZpZXIs
IHVpbnQ2NF90IHVzZXJTY3JpcHRJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbW92ZUFsbFVzZXJT
Y3JpcHRNZXNzYWdlSGFuZGxlcnMoY29uc3QgVmVjdG9yPENvbnRlbnRXb3JsZElkZW50aWZpZXI+
Jik7CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAgIHZvaWQgcmVtb3ZlQ29u
dGVudFJ1bGVMaXN0KGNvbnN0IFN0cmluZyYgbmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250
ZW50Q29udHJvbGxlci5tZXNzYWdlcy5pbgppbmRleCA0N2E1YTZmNDdhOTUwOTJkNmI1NjkxNzFj
YzhlODAyMTYyZjc3YWMyLi41NzQyNTlhYTc0NTI2YWU5MTUzZTM2Y2QwYjE2NzZkMDYwNmM2ZTRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIubWVzc2FnZXMuaW4KQEAg
LTI0LDIwICsyNCwyMCBAQAogICovCiAKIG1lc3NhZ2VzIC0+IFdlYlVzZXJDb250ZW50Q29udHJv
bGxlciB7Ci0gICAgQWRkVXNlckNvbnRlbnRXb3JsZHMoVmVjdG9yPHN0ZDo6cGFpcjx1aW50NjRf
dCwgU3RyaW5nPj4gd29ybGRzKTsKLSAgICBSZW1vdmVVc2VyQ29udGVudFdvcmxkcyhWZWN0b3I8
dWludDY0X3Q+IHdvcmxkSWRlbnRpZmllcnMpOworICAgIEFkZFVzZXJDb250ZW50V29ybGRzKFZl
Y3RvcjxzdGQ6OnBhaXI8V2ViS2l0OjpDb250ZW50V29ybGRJZGVudGlmaWVyLCBTdHJpbmc+PiB3
b3JsZHMpOworICAgIFJlbW92ZVVzZXJDb250ZW50V29ybGRzKFZlY3RvcjxXZWJLaXQ6OkNvbnRl
bnRXb3JsZElkZW50aWZpZXI+IHdvcmxkSWRlbnRpZmllcnMpOwogCiAgICAgQWRkVXNlclNjcmlw
dHMoVmVjdG9yPHN0cnVjdCBXZWJLaXQ6OldlYlVzZXJTY3JpcHREYXRhPiB1c2VyU2NyaXB0cywg
ZW51bTpib29sIFdlYktpdDo6SW5qZWN0VXNlclNjcmlwdEltbWVkaWF0ZWx5IGltbWVkaWF0ZWx5
KTsKLSAgICBSZW1vdmVVc2VyU2NyaXB0KHVpbnQ2NF90IHdvcmxkSWRlbnRpZmllciwgdWludDY0
X3QgaWRlbnRpZmllcik7Ci0gICAgUmVtb3ZlQWxsVXNlclNjcmlwdHMoVmVjdG9yPHVpbnQ2NF90
PiB3b3JsZElkZW50aWZpZXJzKTsKKyAgICBSZW1vdmVVc2VyU2NyaXB0KFdlYktpdDo6Q29udGVu
dFdvcmxkSWRlbnRpZmllciB3b3JsZElkZW50aWZpZXIsIHVpbnQ2NF90IGlkZW50aWZpZXIpOwor
ICAgIFJlbW92ZUFsbFVzZXJTY3JpcHRzKFZlY3RvcjxXZWJLaXQ6OkNvbnRlbnRXb3JsZElkZW50
aWZpZXI+IHdvcmxkSWRlbnRpZmllcnMpOwogCiAgICAgQWRkVXNlclN0eWxlU2hlZXRzKFZlY3Rv
cjxzdHJ1Y3QgV2ViS2l0OjpXZWJVc2VyU3R5bGVTaGVldERhdGE+IHVzZXJTdHlsZVNoZWV0cyk7
Ci0gICAgUmVtb3ZlVXNlclN0eWxlU2hlZXQodWludDY0X3Qgd29ybGRJZGVudGlmaWVyLCB1aW50
NjRfdCBpZGVudGlmaWVyKTsKLSAgICBSZW1vdmVBbGxVc2VyU3R5bGVTaGVldHMoVmVjdG9yPHVp
bnQ2NF90PiB3b3JsZElkZW50aWZpZXJzKTsKKyAgICBSZW1vdmVVc2VyU3R5bGVTaGVldChXZWJL
aXQ6OkNvbnRlbnRXb3JsZElkZW50aWZpZXIgd29ybGRJZGVudGlmaWVyLCB1aW50NjRfdCBpZGVu
dGlmaWVyKTsKKyAgICBSZW1vdmVBbGxVc2VyU3R5bGVTaGVldHMoVmVjdG9yPFdlYktpdDo6Q29u
dGVudFdvcmxkSWRlbnRpZmllcj4gd29ybGRJZGVudGlmaWVycyk7CiAKICAgICBBZGRVc2VyU2Ny
aXB0TWVzc2FnZUhhbmRsZXJzKFZlY3RvcjxzdHJ1Y3QgV2ViS2l0OjpXZWJTY3JpcHRNZXNzYWdl
SGFuZGxlckRhdGE+IHNjcmlwdE1lc3NhZ2VIYW5kbGVycyk7Ci0gICAgUmVtb3ZlVXNlclNjcmlw
dE1lc3NhZ2VIYW5kbGVyKHVpbnQ2NF90IHdvcmxkSWRlbnRpZmllciwgdWludDY0X3QgaWRlbnRp
Zmllcik7Ci0gICAgUmVtb3ZlQWxsVXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVycyhWZWN0b3I8dWlu
dDY0X3Q+IHdvcmxkSWRlbnRpZmllcnMpOworICAgIFJlbW92ZVVzZXJTY3JpcHRNZXNzYWdlSGFu
ZGxlcihXZWJLaXQ6OkNvbnRlbnRXb3JsZElkZW50aWZpZXIgd29ybGRJZGVudGlmaWVyLCB1aW50
NjRfdCBpZGVudGlmaWVyKTsKKyAgICBSZW1vdmVBbGxVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXJz
KFZlY3RvcjxXZWJLaXQ6OkNvbnRlbnRXb3JsZElkZW50aWZpZXI+IHdvcmxkSWRlbnRpZmllcnMp
OwogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKICAgICBBZGRDb250ZW50UnVsZUxp
c3RzKFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1
bGVMaXN0RGF0YT4+IGNvbnRlbnRGaWx0ZXJzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggODYyYjEzYWM3ZDc4ZTNjYmEwZTdlZGU1Mzc5MWE4
NTQ3NzIwZDY0YS4uYmQzNDEwNjhmYjcyNWY5ZWUxNWEzYWIxNWU5N2E5N2YzYzlmZjY5MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTMzODAs
NyArMzM4MCw3IEBAIEtleWJvYXJkVUlNb2RlIFdlYlBhZ2U6OmtleWJvYXJkVUlNb2RlKCkKICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8S2V5Ym9hcmRVSU1vZGU+KChmdWxsS2V5Ym9hcmRBY2Nlc3NF
bmFibGVkID8gS2V5Ym9hcmRBY2Nlc3NGdWxsIDogS2V5Ym9hcmRBY2Nlc3NEZWZhdWx0KSB8ICht
X3RhYlRvTGlua3MgPyBLZXlib2FyZEFjY2Vzc1RhYnNUb0xpbmtzIDogMCkpOwogfQogCi12b2lk
IFdlYlBhZ2U6OnJ1bkphdmFTY3JpcHQoV2ViRnJhbWUqIGZyYW1lLCBSdW5KYXZhU2NyaXB0UGFy
YW1ldGVycyYmIHBhcmFtZXRlcnMsIHVpbnQ2NF90IHdvcmxkSWRlbnRpZmllciwgQ2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjpydW5KYXZhU2NyaXB0KFdlYkZyYW1lKiBmcmFt
ZSwgUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzLCBDb250ZW50V29ybGRJZGVu
dGlmaWVyIHdvcmxkSWRlbnRpZmllciwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIC8v
IE5PVEU6IFdlIG5lZWQgdG8gYmUgY2FyZWZ1bCB3aGVuIHJ1bm5pbmcgc2NyaXB0cyB0aGF0IHRo
ZSBvYmplY3RzIHdlIGRlcGVuZCBvbiBkb24ndAogICAgIC8vIGRpc2FwcGVhciBkdXJpbmcgc2Ny
aXB0IGV4ZWN1dGlvbi4KQEAgLTMzOTAsNyArMzM5MCw2IEBAIHZvaWQgV2ViUGFnZTo6cnVuSmF2
YVNjcmlwdChXZWJGcmFtZSogZnJhbWUsIFJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzJiYgcGFyYW1l
dGVyCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBBU1NFUlQod29ybGRJZGVudGlmaWVy
KTsKICAgICBhdXRvKiB3b3JsZCA9IG1fdXNlckNvbnRlbnRDb250cm9sbGVyLT53b3JsZEZvcklk
ZW50aWZpZXIod29ybGRJZGVudGlmaWVyKTsKICAgICBpZiAoIXdvcmxkKSB7CiAgICAgICAgIHNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2NyaXB0VmFsdWVDYWxsYmFjayh7IH0sIEV4Y2Vw
dGlvbkRldGFpbHMgeyAiVW5hYmxlIHRvIGV4ZWN1dGUgSmF2YVNjcmlwdDogQ2Fubm90IGZpbmQg
c3BlY2lmaWVkIGNvbnRlbnQgd29ybGQiX3MgfSwgY2FsbGJhY2tJRCkpOwpAQCAtMzQxOSw3ICsz
NDE4LDcgQEAgdm9pZCBXZWJQYWdlOjpydW5KYXZhU2NyaXB0KFdlYkZyYW1lKiBmcmFtZSwgUnVu
SmF2YVNjcmlwdFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXIKICAgICBmcmFtZS0+Y29yZUZyYW1lKCkt
PnNjcmlwdCgpLmV4ZWN1dGVBc3luY2hyb25vdXNVc2VyQWdlbnRTY3JpcHRJbldvcmxkKHdvcmxk
LT5jb3JlV29ybGQoKSwgV1RGTW92ZShwYXJhbWV0ZXJzKSwgV1RGTW92ZShyZXNvbHZlRnVuY3Rp
b24pKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRX
b3JsZChSdW5KYXZhU2NyaXB0UGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIGNvbnN0IHN0ZDo6cGFp
cjx1aW50NjRfdCwgU3RyaW5nPiYgd29ybGREYXRhLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2
b2lkIFdlYlBhZ2U6OnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZVNjcmlwdFdvcmxkKFJ1bkphdmFT
Y3JpcHRQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycywgY29uc3Qgc3RkOjpwYWlyPENvbnRlbnRXb3Js
ZElkZW50aWZpZXIsIFN0cmluZz4mIHdvcmxkRGF0YSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQog
ewogICAgIG1fdXNlckNvbnRlbnRDb250cm9sbGVyLT5hZGRVc2VyQ29udGVudFdvcmxkKHdvcmxk
RGF0YSk7CiAgICAgcnVuSmF2YVNjcmlwdChtYWluV2ViRnJhbWUoKSwgV1RGTW92ZShwYXJhbWV0
ZXJzKSwgd29ybGREYXRhLmZpcnN0LCBjYWxsYmFja0lEKTsKQEAgLTM0MjksNyArMzQyOCw3IEBA
IHZvaWQgV2ViUGFnZTo6cnVuSmF2YVNjcmlwdEluRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0CiB7CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgQVNTRVJUKG1haW5XZWJG
cmFtZSgpICE9IGZyYW1lKTsKLSAgICBydW5KYXZhU2NyaXB0KGZyYW1lLCB7IHNjcmlwdCwgZmFs
c2UsIFdURjo6bnVsbG9wdCwgZm9yY2VVc2VyR2VzdHVyZSB9LCBXZWJVc2VyQ29udGVudENvbnRy
b2xsZXI6OmlkZW50aWZpZXJGb3JOb3JtYWxXb3JsZCgpLCBjYWxsYmFja0lEKTsKKyAgICBydW5K
YXZhU2NyaXB0KGZyYW1lLCB7IHNjcmlwdCwgZmFsc2UsIFdURjo6bnVsbG9wdCwgZm9yY2VVc2Vy
R2VzdHVyZSB9LCBwYWdlQ29udGVudFdvcmxkSWRlbnRpZmllcigpLCBjYWxsYmFja0lEKTsKIH0K
IAogdm9pZCBXZWJQYWdlOjpnZXRDb250ZW50c0FzU3RyaW5nKENhbGxiYWNrSUQgY2FsbGJhY2tJ
RCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA0YTZk
NGYyOTcxN2M1NTY2YzBmY2ZkYjQyNTNlZjk3MWU3NTVmYjgxLi5kNTQwMDgxZjFkM2VkNjcwZDA3
YWZiMWJmYWUxZWE5M2M5MmM4ODUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCkBAIC0xNDYyLDggKzE0NjIsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0
U2VsZWN0aW9uQXNXZWJBcmNoaXZlRGF0YShDYWxsYmFja0lEKTsKICAgICB2b2lkIGdldFNvdXJj
ZUZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ2FsbGJhY2tJRCk7CiAgICAgdm9p
ZCBnZXRXZWJBcmNoaXZlT2ZGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENhbGxiYWNr
SUQpOwotICAgIHZvaWQgcnVuSmF2YVNjcmlwdChXZWJGcmFtZSosIFdlYkNvcmU6OlJ1bkphdmFT
Y3JpcHRQYXJhbWV0ZXJzJiYsIHVpbnQ2NF90IHdvcmxkSWRlbnRpZmllciwgQ2FsbGJhY2tJRCk7
Ci0gICAgdm9pZCBydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZChXZWJDb3JlOjpS
dW5KYXZhU2NyaXB0UGFyYW1ldGVycyYmLCBjb25zdCBzdGQ6OnBhaXI8dWludDY0X3QsIFN0cmlu
Zz4mIHdvcmxkRGF0YSwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBydW5KYXZhU2NyaXB0KFdlYkZy
YW1lKiwgV2ViQ29yZTo6UnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMmJiwgQ29udGVudFdvcmxkSWRl
bnRpZmllciwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVT
Y3JpcHRXb3JsZChXZWJDb3JlOjpSdW5KYXZhU2NyaXB0UGFyYW1ldGVycyYmLCBjb25zdCBzdGQ6
OnBhaXI8Q29udGVudFdvcmxkSWRlbnRpZmllciwgU3RyaW5nPiYgd29ybGREYXRhLCBDYWxsYmFj
a0lEKTsKICAgICB2b2lkIHJ1bkphdmFTY3JpcHRJbkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBDYWxsYmFja0lEKTsK
ICAgICB2b2lkIGZvcmNlUmVwYWludChDYWxsYmFja0lEKTsKICAgICB2b2lkIHRha2VTbmFwc2hv
dChXZWJDb3JlOjpJbnRSZWN0IHNuYXBzaG90UmVjdCwgV2ViQ29yZTo6SW50U2l6ZSBiaXRtYXBT
aXplLCB1aW50MzJfdCBvcHRpb25zLCBDYWxsYmFja0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IGQ2ZGQzNzA1
NzYzZDk0ZTI4OTZjNTRlYjhlZmQxN2Q3MzFiMjk5ZGMuLmQ2MWRmODAzYjIzNWQ5NGU2ZjJiY2Jj
YzYxNTNiMWU5Mzg0Njk1MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMjA4LDcgKzIwOCw3IEBAIEdlbmVyYXRl
U3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRp
dGluZ0NvbW1hbmRUeXBlCiAgICAgR2V0V2ViQXJjaGl2ZU9mRnJhbWUoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogCiAgICAg
Ly8gRklYTUU6IFRoZXNlIHNob3VsZCB1c2Ugc2VuZFdpdGhBc3luY1JlcGx5IGluc3RlYWQgb2Yg
Y2FsbGJhY2tJRHMKLSAgICBSdW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZChzdHJ1
Y3QgV2ViQ29yZTo6UnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMgcGFyYW1ldGVycywgc3RkOjpwYWly
PHVpbnQ2NF90LCBTdHJpbmc+IHdvcmxkLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkK
KyAgICBSdW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZChzdHJ1Y3QgV2ViQ29yZTo6
UnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMgcGFyYW1ldGVycywgc3RkOjpwYWlyPFdlYktpdDo6Q29u
dGVudFdvcmxkSWRlbnRpZmllciwgU3RyaW5nPiB3b3JsZCwgV2ViS2l0OjpDYWxsYmFja0lEIGNh
bGxiYWNrSUQpCiAgICAgUnVuSmF2YVNjcmlwdEluRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFN0cmluZyBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgV2ViS2l0
OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAKICAgICBGb3JjZVJlcGFpbnQoV2ViS2l0OjpDYWxs
YmFja0lEIGNhbGxiYWNrSUQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388762</attachid>
            <date>2020-01-24 22:37:16 -0800</date>
            <delta_ts>2020-01-24 22:56:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206784-20200124223715.patch</filename>
            <type>text/plain</type>
            <size>40022</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0OTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDk3MDRjNGE3YThkMWU2NTQ3Njg5ZjEz
OGNhZGRiOTI2MjQ1MjA1ZmIuLjFkMmRjZjFhNzY3Y2QzYzljMjIyYmFiZDI5NDcyYmVmYmUyZGMw
YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDEtMjQgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgQ29udGVudFdvcmxkcyBiZSBpZGVudGlmaWVk
IGJ5IGFuIE9iamVjdElkZW50aWZpZXIgaW5zdGVhZCBvZiBhIHVpbnQ2NF90CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY3ODQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9PYmplY3RJZGVudGlm
aWVyLmg6CisgICAgICAgIChXVEY6Ok9iamVjdElkZW50aWZpZXI6OmdlbmVyYXRlKToKKyAgICAg
ICAgKFdURjo6T2JqZWN0SWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKToKKyAgICAgICAg
KFdURjo6T2JqZWN0SWRlbnRpZmllcjo6ZW5hYmxlR2VuZXJhdGlvblByb3RlY3Rpb24pOiBUbyBh
bGxvdyByZXN0cmljdGluZyBnZW5lcmF0aW5nIGFuIGlkZW50aWZpZXIgdG8gdGhlIFVJUHJvY2Vz
cy4KKwogMjAyMC0wMS0yMiAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4K
IAogICAgICAgICB1bmlxdWVMb2dJZGVudGlmaWVyKCkgc2hvdWxkIGdlbmVyYXRlIGEgdW5pcXVl
IGlkZW50aWZpZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRmMGQyZTEyN2Q2NmIwZGUzOWRjOTFiN2RmYjI4YWMy
OWI5ZWJjOTcuLjhkZjcyYTA5NTYwMTVhZWQ3ZTAwOTFlMjI5N2Q1MjFiZDcxMzNhYjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNzMgQEAKKzIwMjAtMDEtMjQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25A
YXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgQ29udGVudFdvcmxkcyBiZSBpZGVudGlmaWVkIGJ5
IGFuIE9iamVjdElkZW50aWZpZXIgaW5zdGVhZCBvZiBhIHVpbnQ2NF90CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY3ODQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvcjogTm8gYmVoYXZpb3Ig
Y2hhbmdlLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisKKyAgICAg
ICAgKiBTaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1eGls
aWFyeVByb2Nlc3M6OmluaXRpYWxpemUpOgorCisgICAgICAgICogU2hhcmVkL0NvbnRlbnRXb3Js
ZFNoYXJlZC5oOgorICAgICAgICAoV2ViS2l0OjpwYWdlQ29udGVudFdvcmxkSWRlbnRpZmllcik6
CisKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaDoKKworICAgICAgICAqIFNoYXJl
ZC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJVc2VyU2NyaXB0RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlclN0
eWxlU2hlZXREYXRhOjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTY3JpcHRNZXNzYWdl
SGFuZGxlckRhdGE6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlVzZXJDb250ZW50Q29u
dHJvbGxlckRhdGFUeXBlcy5oOgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElDb250ZW50
V29ybGQuY3BwOgorICAgICAgICAoQVBJOjpDb250ZW50V29ybGQ6OnBhZ2VDb250ZW50V29ybGQp
OgorICAgICAgICAoQVBJOjpDb250ZW50V29ybGQ6OmRlZmF1bHRDbGllbnRXb3JsZCk6CisgICAg
ICAgIChBUEk6OkNvbnRlbnRXb3JsZDo6Q29udGVudFdvcmxkKToKKyAgICAgICAgKEFQSTo6Q29u
dGVudFdvcmxkQmFzZTo6Z2VuZXJhdGVJZGVudGlmaWVyKTogRGVsZXRlZC4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFdvcmxkLmg6CisgICAgICAgIChBUEk6OkNvbnRlbnRX
b3JsZEJhc2U6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoQVBJOjpDb250ZW50V29ybGRC
YXNlOjp3b3JsZERhdGEgY29uc3QpOgorICAgICAgICAoQVBJOjpDb250ZW50V29ybGRCYXNlOjpD
b250ZW50V29ybGRCYXNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250ZW50
V29ybGQuY3BwOgorICAgICAgICAoQVBJOjpVc2VyQ29udGVudFdvcmxkOjpVc2VyQ29udGVudFdv
cmxkKToKKworICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENv
bnRyb2xsZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJv
bGxlclByb3h5OjpyZW1vdmVVc2VyQ29udGVudFdvcmxkVXNlcyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpyZW1vdmVBbGxVc2VyU2NyaXB0cyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpyZW1vdmVBbGxV
c2VyU3R5bGVTaGVldHMpOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJV
c2VyQ29udGVudENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0Ojp3b3JsZE1hcCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6d29ybGRGb3JJZGVudGlm
aWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjphZGRVc2Vy
Q29udGVudFdvcmxkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVy
OjphZGRVc2VyQ29udGVudFdvcmxkcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50
Q29udHJvbGxlcjo6cmVtb3ZlVXNlckNvbnRlbnRXb3JsZHMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OmFkZFVzZXJTY3JpcHRzKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVVc2VyU2NyaXB0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVBbGxVc2VyU2NyaXB0cyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6YWRkVXNlclN0eWxl
U2hlZXRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1v
dmVVc2VyU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJv
bGxlcjo6cmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyOjphZGRVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXJzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVVc2VyU2NyaXB0TWVz
c2FnZUhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6
OnJlbW92ZUFsbFVzZXJTY3JpcHRNZXNzYWdlSGFuZGxlcnMpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIubWVzc2FnZXMuaW46
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OnJ1bkphdmFTY3JpcHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnJ1bkphdmFTY3JpcHRJbkZyYW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluOgorCiAyMDIwLTAxLTIyICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNv
bT4KIAogICAgICAgICBGaXggU0RLIGF2YWlsYWJpbGl0eSBtYWNyb3MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL09iamVjdElkZW50aWZpZXIuaCBiL1NvdXJjZS9XVEYvd3RmL09iamVjdElk
ZW50aWZpZXIuaAppbmRleCBmNzNjMDRlNDU3YzIyNzM0ZTdiMWUyMTAyZjU0NTVkNzliNTkyYzlm
Li5jMWRkNDNlODBlZDZlYTc0ZTRiM2E4ZTI3NDY2OTljMmZiZjEzYzJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9PYmplY3RJZGVudGlmaWVyLmgKKysrIGIvU291cmNlL1dURi93dGYvT2Jq
ZWN0SWRlbnRpZmllci5oCkBAIC00NCwxNCArNDQsMjEgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
Y2xhc3MgT2JqZWN0SWRlbnRpZmllciA6IHByaXZhdGUgT2JqZWN0SWRlbnRpZmllckJhc2Ugewog
cHVibGljOgogICAgIHN0YXRpYyBPYmplY3RJZGVudGlmaWVyIGdlbmVyYXRlKCkKICAgICB7Cisg
ICAgICAgIFJFTEVBU0VfQVNTRVJUKCFtX2dlbmVyYXRpb25Qcm90ZWN0ZWQpOwogICAgICAgICBy
ZXR1cm4gT2JqZWN0SWRlbnRpZmllciB7IGdlbmVyYXRlSWRlbnRpZmllckludGVybmFsKCkgfTsK
ICAgICB9CiAKICAgICBzdGF0aWMgT2JqZWN0SWRlbnRpZmllciBnZW5lcmF0ZVRocmVhZFNhZmUo
KQogICAgIHsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoIW1fZ2VuZXJhdGlvblByb3RlY3RlZCk7
CiAgICAgICAgIHJldHVybiBPYmplY3RJZGVudGlmaWVyIHsgZ2VuZXJhdGVUaHJlYWRTYWZlSWRl
bnRpZmllckludGVybmFsKCkgfTsKICAgICB9CiAKKyAgICBzdGF0aWMgdm9pZCBlbmFibGVHZW5l
cmF0aW9uUHJvdGVjdGlvbigpCisgICAgeworICAgICAgICBtX2dlbmVyYXRpb25Qcm90ZWN0ZWQg
PSB0cnVlOworICAgIH0KKwogICAgIE9iamVjdElkZW50aWZpZXIoKSA9IGRlZmF1bHQ7CiAKICAg
ICBPYmplY3RJZGVudGlmaWVyKEhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpIDogbV9pZGVudGlm
aWVyKGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpKSB7IH0KQEAgLTEwMyw2ICsxMTAsNyBAQCBwcml2
YXRlOgogICAgIH0KIAogICAgIHVpbnQ2NF90IG1faWRlbnRpZmllciB7IDAgfTsKKyAgICBpbmxp
bmUgc3RhdGljIGJvb2wgbV9nZW5lcmF0aW9uUHJvdGVjdGVkIHsgZmFsc2UgfTsKIH07CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBPYmplY3RJZGVudGlmaWVyPFQ+IG1ha2VPYmplY3RJ
ZGVudGlmaWVyKHVpbnQ2NF90IGlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weQppbmRleCBkYzllMTRmNWFjZGY2OTg0MTEzN2JmY2IxMGU0ZTY0NmNjNDJl
YTI2Li5mODdiNDRhZWFiNWMzOWM3YzdlM2JjN2U1MWY0YzJkMzM4ODhlZmQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTIxOSw2ICsyMTksNyBAQCBkZWYg
dHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViQ29y
ZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OkFjdGl2
aXR5U3RhdGVDaGFuZ2VJRCcsCiAgICAgICAgICdXZWJLaXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVySWRlbnRpZmllcicsCisgICAgICAgICdXZWJLaXQ6OkNvbnRlbnRXb3JsZElkZW50
aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQnLAogICAgICAg
ICAnV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyJywKICAgICAgICAg
J1dlYktpdDo6TWVkaWFSZWNvcmRlcklkZW50aWZpZXInLApAQCAtNjA1LDYgKzYwNiw3IEBAIGRl
ZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6U2VsZWN0aW9uUmVj
dCc6IFsnIkVkaXRvclN0YXRlLmgiJ10sCiAgICAgICAgICdXZWJLaXQ6OkFjdGl2aXR5U3RhdGVD
aGFuZ2VJRCc6IFsnIkRyYXdpbmdBcmVhSW5mby5oIiddLAogICAgICAgICAnV2ViS2l0OjpCYWNr
Rm9yd2FyZExpc3RJdGVtU3RhdGUnOiBbJyJTZXNzaW9uU3RhdGUuaCInXSwKKyAgICAgICAgJ1dl
YktpdDo6Q29udGVudFdvcmxkSWRlbnRpZmllcicgOiBbJyJDb250ZW50V29ybGRTaGFyZWQuaCIn
XSwKICAgICAgICAgJ1dlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEJzogWyciTGF5ZXJIb3N0
aW5nQ29udGV4dC5oIiddLAogICAgICAgICAnV2ViS2l0OjpMYXllckhvc3RpbmdNb2RlJzogWyci
TGF5ZXJUcmVlQ29udGV4dC5oIiddLAogICAgICAgICAnV2ViS2l0OjpQYWdlU3RhdGUnOiBbJyJT
ZXNzaW9uU3RhdGUuaCInXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGls
aWFyeVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5j
cHAKaW5kZXggYjFkNDM2Y2FmMTZkNDYzYWU1ZjA1MmJjYjI1OTUzZTdmODFiNjAzNC4uYzJjNDgw
ZThjZDdiN2FiMWQ3MmM1YWVjNWVjMmIxYTRhNGYwZmI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJBdXhpbGlhcnlQcm9jZXNzLmgiCiAKKyNpbmNsdWRlICJDb250ZW50
V29ybGRTaGFyZWQuaCIKICNpbmNsdWRlICJEZXBlbmRlbmN5UHJvY2Vzc0Fzc2VydGlvbi5oIgog
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJh
bWV0ZXJzLmgiCkBAIC03OCw4ICs3OSw5IEBAIHZvaWQgQXV4aWxpYXJ5UHJvY2Vzczo6aW5pdGlh
bGl6ZShjb25zdCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzCiAKICAg
ICBpbml0aWFsaXplUHJvY2Vzc05hbWUocGFyYW1ldGVycyk7CiAKLSAgICAvLyBJbiBXZWJLaXQy
LCBvbmx5IHRoZSBVSSBwcm9jZXNzIHNob3VsZCBldmVyIGJlIGdlbmVyYXRpbmcgbm9uLWRlZmF1
bHQgUEFMOjpTZXNzaW9uSURzLgorICAgIC8vIEluIFdlYktpdDIsIG9ubHkgdGhlIFVJIHByb2Nl
c3Mgc2hvdWxkIGV2ZXIgYmUgZ2VuZXJhdGluZyBjZXJ0YWluIGlkZW50aWZpZXJzLgogICAgIFBB
TDo6U2Vzc2lvbklEOjplbmFibGVHZW5lcmF0aW9uUHJvdGVjdGlvbigpOworICAgIENvbnRlbnRX
b3JsZElkZW50aWZpZXI6OmVuYWJsZUdlbmVyYXRpb25Qcm90ZWN0aW9uKCk7CiAKICAgICBtX2Nv
bm5lY3Rpb24gPSBJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZUNsaWVudENvbm5lY3Rpb24ocGFyYW1l
dGVycy5jb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMpOwogICAgIGluaXRpYWxpemVDb25uZWN0
aW9uKG1fY29ubmVjdGlvbi5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Db250ZW50V29ybGRTaGFyZWQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRlbnRXb3Js
ZFNoYXJlZC5oCmluZGV4IDFkYWQ2ZTE4NTBjMDhiMzRmMTJkNGE2OGE1MDlkODZjODNjZjBhNTAu
LmY0M2QyZjJjYmM3NDdmMjdhMGZkZDgyYjBhM2MxMzEyYjgxMjJiNmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRlbnRXb3JsZFNoYXJlZC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0NvbnRlbnRXb3JsZFNoYXJlZC5oCkBAIC0yNSw4ICsyNSwxNyBAQAogCiAjcHJh
Z21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCi1zdGF0aWMgY29uc3QgdWludDY0X3QgcGFnZUNvbnRlbnRXb3JsZElkZW50
aWZpZXIgPSAxOworZW51bSBDb250ZW50V29ybGRJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBD
b250ZW50V29ybGRJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxDb250ZW50V29ybGRJZGVu
dGlmaWVyVHlwZT47CisKK2lubGluZSBDb250ZW50V29ybGRJZGVudGlmaWVyIHBhZ2VDb250ZW50
V29ybGRJZGVudGlmaWVyKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q29udGVudFdv
cmxkSWRlbnRpZmllcj4gaWRlbnRpZmllcihtYWtlT2JqZWN0SWRlbnRpZmllcjxDb250ZW50V29y
bGRJZGVudGlmaWVyVHlwZT4oMSkpOworICAgIHJldHVybiBpZGVudGlmaWVyOworfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggNzBjM2VhMWFiNTJkYWMyN2NkMWVmYTNkZGQ5MmZm
NWZhNTRlZmI5ZC4uNmJmYTk5ZjIxM2ZjMzkwNmQ0MmMzOWRjMzY4OGRkOWVlMWI3NjUzZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5j
cHAKQEAgLTM3MCw3ICszNzAsNyBAQCBPcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
PiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZAogICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5lbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2Vz
RW5hYmxlZCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBPcHRpb25hbDxW
ZWN0b3I8c3RkOjpwYWlyPHVpbnQ2NF90LCBTdHJpbmc+Pj4gdXNlckNvbnRlbnRXb3JsZHM7Cisg
ICAgT3B0aW9uYWw8VmVjdG9yPHN0ZDo6cGFpcjxDb250ZW50V29ybGRJZGVudGlmaWVyLCBTdHJp
bmc+Pj4gdXNlckNvbnRlbnRXb3JsZHM7CiAgICAgZGVjb2RlciA+PiB1c2VyQ29udGVudFdvcmxk
czsKICAgICBpZiAoIXVzZXJDb250ZW50V29ybGRzKQogICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cy5oCmluZGV4IDc0MTM3NWUyYmI1ZTY4YzlhNWZlODY1NWYxODU1MWQ2NzdmNjI5ZmEuLmE4NTU1
MTQ3MWFhNWI1NjA1OTRjN2IzYzBkZmJkZDRmYjk2NGVkYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTE5Myw3ICsxOTMsNyBA
QCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgYm9vbCBlbnVtZXJhdGlu
Z0FsbE5ldHdvcmtJbnRlcmZhY2VzRW5hYmxlZCB7IGZhbHNlIH07CiAKICAgICAvLyBVc2VyQ29u
dGVudENvbnRyb2xsZXIgbWVtYmVycwotICAgIFZlY3RvcjxzdGQ6OnBhaXI8dWludDY0X3QsIFN0
cmluZz4+IHVzZXJDb250ZW50V29ybGRzOworICAgIFZlY3RvcjxzdGQ6OnBhaXI8Q29udGVudFdv
cmxkSWRlbnRpZmllciwgU3RyaW5nPj4gdXNlckNvbnRlbnRXb3JsZHM7CiAgICAgVmVjdG9yPFdl
YlVzZXJTY3JpcHREYXRhPiB1c2VyU2NyaXB0czsKICAgICBWZWN0b3I8V2ViVXNlclN0eWxlU2hl
ZXREYXRhPiB1c2VyU3R5bGVTaGVldHM7CiAgICAgVmVjdG9yPFdlYlNjcmlwdE1lc3NhZ2VIYW5k
bGVyRGF0YT4gbWVzc2FnZUhhbmRsZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5jcHAKaW5kZXggZGI3ZDMz
YzhkNTViYzk3YjkzMWEwYWY0NTg4NDlkMjQyNTExZmQ5Zi4uMDZiYTZjZjc2YjA0ZDlkNjU1NGU0
NWYzMTMxZWRlZjQyMmJlNDdmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuY3BwCkBAIC00NCw3ICs0NCw3
IEBAIE9wdGlvbmFsPFdlYlVzZXJTY3JpcHREYXRhPiBXZWJVc2VyU2NyaXB0RGF0YTo6ZGVjb2Rl
KElQQzo6RGVjb2RlciYgZGVjb2RlcikKICAgICBpZiAoIWlkZW50aWZpZXIpCiAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CiAgICAgCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IHdvcmxkSWRl
bnRpZmllcjsKKyAgICBPcHRpb25hbDxDb250ZW50V29ybGRJZGVudGlmaWVyPiB3b3JsZElkZW50
aWZpZXI7CiAgICAgZGVjb2RlciA+PiB3b3JsZElkZW50aWZpZXI7CiAgICAgaWYgKCF3b3JsZElk
ZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CkBAIC03MCw3ICs3MCw3IEBA
IE9wdGlvbmFsPFdlYlVzZXJTdHlsZVNoZWV0RGF0YT4gV2ViVXNlclN0eWxlU2hlZXREYXRhOjpk
ZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvCiAgICAgaWYgKCFpZGVudGlmaWVyKQogICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiB3b3JsZElk
ZW50aWZpZXI7CisgICAgT3B0aW9uYWw8Q29udGVudFdvcmxkSWRlbnRpZmllcj4gd29ybGRJZGVu
dGlmaWVyOwogICAgIGRlY29kZXIgPj4gd29ybGRJZGVudGlmaWVyOwogICAgIGlmICghd29ybGRJ
ZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwpAQCAtOTcsNyArOTcsNyBA
QCBPcHRpb25hbDxXZWJTY3JpcHRNZXNzYWdlSGFuZGxlckRhdGE+IFdlYlNjcmlwdE1lc3NhZ2VI
YW5kbGVyRGF0YTo6ZGVjb2RlKElQQzo6RAogICAgIGlmICghaWRlbnRpZmllcikKICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gd29ybGRJ
ZGVudGlmaWVyOworICAgIE9wdGlvbmFsPENvbnRlbnRXb3JsZElkZW50aWZpZXI+IHdvcmxkSWRl
bnRpZmllcjsKICAgICBkZWNvZGVyID4+IHdvcmxkSWRlbnRpZmllcjsKICAgICBpZiAoIXdvcmxk
SWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmgK
aW5kZXggNWNkYWU1NTJlZjE4ZDQ4OTM4NzFlNGNiNjQwMTdmNWU3YTQwNjlhOS4uZDE1NGYyMGE5
MWMxODBkZTI0MGZiNTQ4OGQ0ZDc4N2MyMTU1NTNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmgKQEAgLTI1
LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJDb250ZW50V29ybGRTaGFy
ZWQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJTY3JpcHQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1VzZXJTdHlsZVNoZWV0Lmg+CiAKQEAgLTQwLDcgKzQxLDcgQEAgc3RydWN0IFdlYlVzZXJTY3Jp
cHREYXRhIHsKICAgICBzdGF0aWMgT3B0aW9uYWw8V2ViVXNlclNjcmlwdERhdGE+IGRlY29kZShJ
UEM6OkRlY29kZXImKTsKIAogICAgIHVpbnQ2NF90IGlkZW50aWZpZXI7Ci0gICAgdWludDY0X3Qg
d29ybGRJZGVudGlmaWVyOworICAgIENvbnRlbnRXb3JsZElkZW50aWZpZXIgd29ybGRJZGVudGlm
aWVyOwogICAgIFdlYkNvcmU6OlVzZXJTY3JpcHQgdXNlclNjcmlwdDsKIH07CiAKQEAgLTQ5LDcg
KzUwLDcgQEAgc3RydWN0IFdlYlVzZXJTdHlsZVNoZWV0RGF0YSB7CiAgICAgc3RhdGljIE9wdGlv
bmFsPFdlYlVzZXJTdHlsZVNoZWV0RGF0YT4gZGVjb2RlKElQQzo6RGVjb2RlciYpOwogCiAgICAg
dWludDY0X3QgaWRlbnRpZmllcjsKLSAgICB1aW50NjRfdCB3b3JsZElkZW50aWZpZXI7CisgICAg
Q29udGVudFdvcmxkSWRlbnRpZmllciB3b3JsZElkZW50aWZpZXI7CiAgICAgV2ViQ29yZTo6VXNl
clN0eWxlU2hlZXQgdXNlclN0eWxlU2hlZXQ7CiB9OwogCkBAIC01OCw3ICs1OSw3IEBAIHN0cnVj
dCBXZWJTY3JpcHRNZXNzYWdlSGFuZGxlckRhdGEgewogICAgIHN0YXRpYyBPcHRpb25hbDxXZWJT
Y3JpcHRNZXNzYWdlSGFuZGxlckRhdGE+IGRlY29kZShJUEM6OkRlY29kZXImKTsKIAogICAgIHVp
bnQ2NF90IGlkZW50aWZpZXI7Ci0gICAgdWludDY0X3Qgd29ybGRJZGVudGlmaWVyOworICAgIENv
bnRlbnRXb3JsZElkZW50aWZpZXIgd29ybGRJZGVudGlmaWVyOwogICAgIFN0cmluZyBuYW1lOwog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRX
b3JsZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFdvcmxkLmNw
cAppbmRleCA0MWI2MDM3NTk0NTFiYmMxZTIyNjQ0NDE4NGViNmRjNDQwYzM5OWM4Li43NjY4ZTI3
NGJlZTU0ZDg0MWUzMThjMDFhYmQzNjRjNzYwYjllNmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFdvcmxkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFdvcmxkLmNwcApAQCAtMzMsMTMgKzMzLDYgQEAKIAog
bmFtZXNwYWNlIEFQSSB7CiAKLXVpbnQ2NF90IENvbnRlbnRXb3JsZEJhc2U6OmdlbmVyYXRlSWRl
bnRpZmllcigpCi17Ci0gICAgc3RhdGljIHVpbnQ2NF90IGlkZW50aWZpZXIgPSBXZWJLaXQ6OnBh
Z2VDb250ZW50V29ybGRJZGVudGlmaWVyOwotCi0gICAgcmV0dXJuICsraWRlbnRpZmllcjsKLX0K
LQogc3RhdGljIEhhc2hNYXA8V1RGOjpTdHJpbmcsIENvbnRlbnRXb3JsZCo+JiBzaGFyZWRXb3Js
ZE1hcCgpCiB7CiAgICAgc3RhdGljIEhhc2hNYXA8V1RGOjpTdHJpbmcsIENvbnRlbnRXb3JsZCo+
KiBzaGFyZWRNYXAgPSBuZXcgSGFzaE1hcDxXVEY6OlN0cmluZywgQ29udGVudFdvcmxkKj47CkBA
IC01OSwxMyArNTIsMjMgQEAgUmVmPENvbnRlbnRXb3JsZD4gQ29udGVudFdvcmxkOjpzaGFyZWRX
b3JsZFdpdGhOYW1lKGNvbnN0IFdURjo6U3RyaW5nJiBuYW1lKQogCiBDb250ZW50V29ybGQmIENv
bnRlbnRXb3JsZDo6cGFnZUNvbnRlbnRXb3JsZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFJlZlB0cjxDb250ZW50V29ybGQ+PiB3b3JsZChhZG9wdFJlZihuZXcgQ29udGVudFdvcmxk
KFdlYktpdDo6cGFnZUNvbnRlbnRXb3JsZElkZW50aWZpZXIpKSk7CisgICAgc3RhdGljIExhenlO
ZXZlckRlc3Ryb3llZDxSZWZQdHI8Q29udGVudFdvcmxkPj4gd29ybGQ7CisgICAgc3RhdGljIHN0
ZDo6b25jZV9mbGFnIG9uY2U7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZSwgW10geworICAgICAg
ICAvLyBNYWtlIHN1cmUgdGhlIGN1cnJlbnQgZ2VuZXJhdGVkIGNvbnRlbnQgd29ybGQgaWRlbnRp
ZmllciBpcyBncmVhdGVyIHRoYW4gb3VyIGludGVnZXIgaWRlbnRpZmllciBmb3IgdGhlIHBhZ2VD
b250ZW50V29ybGQuCisgICAgICAgIC8vIFdlIGNhbiBkbyB0aGlzIGJ5IGdlbmVyYXRpbmcgb25l
IGFuZCBqdXN0IHRocm93aW5nIGl0IGF3YXkuCisgICAgICAgIGF1dG8gaWRlbnRpZmllciA9IFdl
YktpdDo6Q29udGVudFdvcmxkSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKKyAgICAgICAgQVNTRVJU
X1VOVVNFRChpZGVudGlmaWVyLCBpZGVudGlmaWVyLnRvVUludDY0KCkgPj0gV2ViS2l0OjpwYWdl
Q29udGVudFdvcmxkSWRlbnRpZmllcigpLnRvVUludDY0KCkpOworCisgICAgICAgIHdvcmxkLmNv
bnN0cnVjdChhZG9wdFJlZihuZXcgQ29udGVudFdvcmxkKFdlYktpdDo6cGFnZUNvbnRlbnRXb3Js
ZElkZW50aWZpZXIoKSkpKTsKKyAgICB9KTsKKwogICAgIHJldHVybiAqd29ybGQuZ2V0KCk7CiB9
CiAKIENvbnRlbnRXb3JsZCYgQ29udGVudFdvcmxkOjpkZWZhdWx0Q2xpZW50V29ybGQoKQogewot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZWZQdHI8Q29udGVudFdvcmxkPj4gd29ybGQoYWRv
cHRSZWYobmV3IENvbnRlbnRXb3JsZChnZW5lcmF0ZUlkZW50aWZpZXIoKSkpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8UmVmUHRyPENvbnRlbnRXb3JsZD4+IHdvcmxkKGFkb3B0UmVmKG5l
dyBDb250ZW50V29ybGQoU3RyaW5nIHsgfSkpKTsKICAgICByZXR1cm4gKndvcmxkLmdldCgpOwog
fQogCkBAIC03NCw3ICs3Nyw3IEBAIENvbnRlbnRXb3JsZDo6Q29udGVudFdvcmxkKGNvbnN0IFdU
Rjo6U3RyaW5nJiBuYW1lKQogewogfQogCi1Db250ZW50V29ybGQ6OkNvbnRlbnRXb3JsZCh1aW50
NjRfdCBpZGVudGlmaWVyKQorQ29udGVudFdvcmxkOjpDb250ZW50V29ybGQoV2ViS2l0OjpDb250
ZW50V29ybGRJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAgOiBDb250ZW50V29ybGRCYXNlKGlk
ZW50aWZpZXIpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJQ29udGVudFdvcmxkLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVu
dFdvcmxkLmgKaW5kZXggYjM0ZjEyOWM0Y2JiZWJjNWU1NjJhM2I5YWQ5ZjAyYjIxOWRiNzg4YS4u
NWI1ZDJhM2VkNjUzZGQ3NTVhZjg4ZTY4Y2JlYmQ1OGZmNTQ5NTkwMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRXb3JsZC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50V29ybGQuaApAQCAtMjYsNiArMjYsNyBAQAog
I3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJDb250ZW50
V29ybGRTaGFyZWQuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNw
YWNlIEFQSSB7CkBAIC0zNCwzMCArMzUsMjcgQEAgY2xhc3MgQ29udGVudFdvcmxkQmFzZSB7CiBw
dWJsaWM6CiAgICAgdmlydHVhbCB+Q29udGVudFdvcmxkQmFzZSgpID0gZGVmYXVsdDsKIAotICAg
IHVpbnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKyAg
ICBXZWJLaXQ6OkNvbnRlbnRXb3JsZElkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0
dXJuIG1faWRlbnRpZmllcjsgfQogICAgIGNvbnN0IFdURjo6U3RyaW5nJiBuYW1lKCkgY29uc3Qg
eyByZXR1cm4gbV9uYW1lOyB9Ci0gICAgc3RkOjpwYWlyPHVpbnQ2NF90LCBXVEY6OlN0cmluZz4g
d29ybGREYXRhKCkgY29uc3QgeyByZXR1cm4geyBpZGVudGlmaWVyKCksIG5hbWUoKSB9OyB9Cisg
ICAgc3RkOjpwYWlyPFdlYktpdDo6Q29udGVudFdvcmxkSWRlbnRpZmllciwgV1RGOjpTdHJpbmc+
IHdvcmxkRGF0YSgpIGNvbnN0IHsgcmV0dXJuIHsgbV9pZGVudGlmaWVyLCBtX25hbWUgfTsgfQog
CiAgICAgdmlydHVhbCB2b2lkIHJlZigpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGVy
ZWYoKSBjb25zdCA9IDA7CiAKLSAgICBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVJZGVudGlmaWVy
KCk7Ci0KIHByb3RlY3RlZDoKICAgICBDb250ZW50V29ybGRCYXNlKGNvbnN0IFdURjo6U3RyaW5n
JiBuYW1lKQotICAgICAgICA6IG1faWRlbnRpZmllcihnZW5lcmF0ZUlkZW50aWZpZXIoKSkKKyAg
ICAgICAgOiBtX2lkZW50aWZpZXIoV2ViS2l0OjpDb250ZW50V29ybGRJZGVudGlmaWVyOjpnZW5l
cmF0ZSgpKQogICAgICAgICAsIG1fbmFtZShuYW1lKQogICAgIHsKICAgICB9CiAKLSAgICBDb250
ZW50V29ybGRCYXNlKHVpbnQ2NF90IGlkZW50aWZpZXIpCisgICAgQ29udGVudFdvcmxkQmFzZShX
ZWJLaXQ6OkNvbnRlbnRXb3JsZElkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICAgICAgOiBtX2lk
ZW50aWZpZXIoaWRlbnRpZmllcikKICAgICB7CiAgICAgfQogCiBwcml2YXRlOgotICAgIC8vIEZJ
WE1FOiBUaGlzIHNob3VsZCBiZSBhbiBPYmplY3RJZGVudGlmaWVyIG9uY2Ugd2UgY2FuIGdldCBh
bGwgU2NyaXB0V29ybGQgcmVsYXRlZCBjbGFzc2VzIHRvIHVzZSBPYmplY3RJZGVudGlmaWVyLgot
ICAgIHVpbnQ2NF90IG1faWRlbnRpZmllcjsKKyAgICBXZWJLaXQ6OkNvbnRlbnRXb3JsZElkZW50
aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFdURjo6U3RyaW5nIG1fbmFtZTsKIH07CiAKQEAgLTc0
LDcgKzcyLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IENvbnRlbnRXb3Js
ZChjb25zdCBXVEY6OlN0cmluZyYpOwotICAgIGV4cGxpY2l0IENvbnRlbnRXb3JsZCh1aW50NjRf
dCBpZGVudGlmaWVyKTsKKyAgICBleHBsaWNpdCBDb250ZW50V29ybGQoV2ViS2l0OjpDb250ZW50
V29ybGRJZGVudGlmaWVyKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEFQSQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250ZW50V29ybGQuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250ZW50V29ybGQuY3BwCmluZGV4IGRi
OWQwMDM4YjUyMDJhMjdmMmFjNGJhODNiNDJiMDJlNDQ3YWIyNDIuLjY1OTk2MzdjZjBiNzIwMDk1
NTc2NzRkYzI2NDQ4MzhhMWMyMjYzMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElVc2VyQ29udGVudFdvcmxkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRXb3JsZC5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgVXNlckNv
bnRlbnRXb3JsZDo6VXNlckNvbnRlbnRXb3JsZChjb25zdCBXVEY6OlN0cmluZyYgbmFtZSkKIH0K
IAogVXNlckNvbnRlbnRXb3JsZDo6VXNlckNvbnRlbnRXb3JsZChGb3JOb3JtYWxXb3JsZE9ubHkp
Ci0gICAgOiBDb250ZW50V29ybGRCYXNlKFdlYktpdDo6cGFnZUNvbnRlbnRXb3JsZElkZW50aWZp
ZXIpCisgICAgOiBDb250ZW50V29ybGRCYXNlKFdlYktpdDo6cGFnZUNvbnRlbnRXb3JsZElkZW50
aWZpZXIoKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNl
ckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3Bw
CmluZGV4IDBjOTkzYmI3OGIxZjhlMGM3OTkxMDgyOTBjMDcxNGUxMGMzZmQ3MTcuLjk4N2E5ODY2
MThmOTBiMjFmNzllOWZkYmMwZWEwMjQxZmJlZmZhODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVu
dENvbnRyb2xsZXJQcm94eS5jcHAKQEAgLTE4NCw3ICsxODQsNyBAQCB2b2lkIFdlYlVzZXJDb250
ZW50Q29udHJvbGxlclByb3h5OjpyZW1vdmVVc2VyQ29udGVudFdvcmxkVXNlcyhBUEk6OlVzZXJD
b250ZW50VwogCiB2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpyZW1vdmVVc2Vy
Q29udGVudFdvcmxkVXNlcyhIYXNoQ291bnRlZFNldDxSZWZQdHI8QVBJOjpVc2VyQ29udGVudFdv
cmxkPj4mIHdvcmxkcykKIHsKLSAgICBWZWN0b3I8dWludDY0X3Q+IHdvcmxkc1RvUmVtb3ZlOwor
ICAgIFZlY3RvcjxDb250ZW50V29ybGRJZGVudGlmaWVyPiB3b3JsZHNUb1JlbW92ZTsKICAgICBm
b3IgKGF1dG8mIHdvcmxkVXNlUGFpciA6IHdvcmxkcykgewogICAgICAgICBpZiAoc2hvdWxkU2Vu
ZFJlbW92ZVVzZXJDb250ZW50V29ybGRzTWVzc2FnZSgqd29ybGRVc2VQYWlyLmtleS5nZXQoKSwg
d29ybGRVc2VQYWlyLnZhbHVlKSkKICAgICAgICAgICAgIHdvcmxkc1RvUmVtb3ZlLmFwcGVuZCh3
b3JsZFVzZVBhaXIua2V5LT5pZGVudGlmaWVyKCkpOwpAQCAtMjM2LDcgKzIzNiw3IEBAIHZvaWQg
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92ZUFsbFVzZXJTY3JpcHRzKCkKICAg
ICBmb3IgKGF1dG8gdXNlclNjcmlwdCA6IG1fdXNlclNjcmlwdHMtPmVsZW1lbnRzT2ZUeXBlPEFQ
STo6VXNlclNjcmlwdD4oKSkKICAgICAgICAgd29ybGRzLmFkZChjb25zdF9jYXN0PEFQSTo6VXNl
ckNvbnRlbnRXb3JsZCo+KCZ1c2VyU2NyaXB0LT51c2VyQ29udGVudFdvcmxkKCkpKTsKIAotICAg
IFZlY3Rvcjx1aW50NjRfdD4gd29ybGRJZGVudGlmaWVyczsKKyAgICBWZWN0b3I8Q29udGVudFdv
cmxkSWRlbnRpZmllcj4gd29ybGRJZGVudGlmaWVyczsKICAgICB3b3JsZElkZW50aWZpZXJzLnJl
c2VydmVJbml0aWFsQ2FwYWNpdHkod29ybGRzLnNpemUoKSk7CiAgICAgZm9yIChjb25zdCBhdXRv
JiB3b3JsZENvdW50UGFpciA6IHdvcmxkcykKICAgICAgICAgd29ybGRJZGVudGlmaWVycy51bmNo
ZWNrZWRBcHBlbmQod29ybGRDb3VudFBhaXIua2V5LT5pZGVudGlmaWVyKCkpOwpAQCAtMjkxLDcg
KzI5MSw3IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92ZUFsbFVz
ZXJTdHlsZVNoZWV0cygpCiAgICAgZm9yIChhdXRvIHVzZXJTdHlsZVNoZWV0IDogbV91c2VyU3R5
bGVTaGVldHMtPmVsZW1lbnRzT2ZUeXBlPEFQSTo6VXNlclN0eWxlU2hlZXQ+KCkpCiAgICAgICAg
IHdvcmxkcy5hZGQoY29uc3RfY2FzdDxBUEk6OlVzZXJDb250ZW50V29ybGQqPigmdXNlclN0eWxl
U2hlZXQtPnVzZXJDb250ZW50V29ybGQoKSkpOwogCi0gICAgVmVjdG9yPHVpbnQ2NF90PiB3b3Js
ZElkZW50aWZpZXJzOworICAgIFZlY3RvcjxDb250ZW50V29ybGRJZGVudGlmaWVyPiB3b3JsZElk
ZW50aWZpZXJzOwogICAgIHdvcmxkSWRlbnRpZmllcnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh3
b3JsZHMuc2l6ZSgpKTsKICAgICBmb3IgKGNvbnN0IGF1dG8mIHdvcmxkQ291bnRQYWlyIDogd29y
bGRzKQogICAgICAgICB3b3JsZElkZW50aWZpZXJzLnVuY2hlY2tlZEFwcGVuZCh3b3JsZENvdW50
UGFpci5rZXktPmlkZW50aWZpZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuY3Bw
CmluZGV4IDI3NmY4MWIzZWRhYTk4MzA4YTQ4YTc1MjU5NTk5ZDM0MDg1MjU0YjIuLjY5Mjk0YWQ5
NWViYzZmNTUxN2IxMDI5NDI3MDM1YTNhYzE2MmYzMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENv
bnRyb2xsZXIuY3BwCkBAIC01OSwxMSArNTksMTEgQEAgc3RhdGljIEhhc2hNYXA8VXNlckNvbnRl
bnRDb250cm9sbGVySWRlbnRpZmllciwgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyKj4mIHVzZXIK
ICAgICByZXR1cm4gdXNlckNvbnRlbnRDb250cm9sbGVyczsKIH0KIAotdHlwZWRlZiBIYXNoTWFw
PHVpbnQ2NF90LCBzdGQ6OnBhaXI8UmVmUHRyPEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQ+LCB1
bnNpZ25lZD4+IFdvcmxkTWFwOwordHlwZWRlZiBIYXNoTWFwPENvbnRlbnRXb3JsZElkZW50aWZp
ZXIsIHN0ZDo6cGFpcjxSZWZQdHI8SW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZD4sIHVuc2lnbmVk
Pj4gV29ybGRNYXA7CiAKIHN0YXRpYyBXb3JsZE1hcCYgd29ybGRNYXAoKQogewotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxXb3JsZE1hcD4gbWFwKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxXb3Js
ZE1hcDo6S2V5VmFsdWVQYWlyVHlwZT4geyB7IFdlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6aWRl
bnRpZmllckZvck5vcm1hbFdvcmxkKCksIHN0ZDo6bWFrZV9wYWlyKCZJbmplY3RlZEJ1bmRsZVNj
cmlwdFdvcmxkOjpub3JtYWxXb3JsZCgpLCAxKSB9IH0pOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxXb3JsZE1hcD4gbWFwKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxXb3JsZE1hcDo6S2V5VmFs
dWVQYWlyVHlwZT4geyB7IHBhZ2VDb250ZW50V29ybGRJZGVudGlmaWVyKCksIHN0ZDo6bWFrZV9w
YWlyKCZJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkOjpub3JtYWxXb3JsZCgpLCAxKSB9IH0pOwog
CiAgICAgcmV0dXJuIG1hcDsKIH0KQEAgLTk1LDE2ICs5NSwxNiBAQCBXZWJVc2VyQ29udGVudENv
bnRyb2xsZXI6On5XZWJVc2VyQ29udGVudENvbnRyb2xsZXIoKQogICAgIHVzZXJDb250ZW50Q29u
dHJvbGxlcnMoKS5yZW1vdmUobV9pZGVudGlmaWVyKTsKIH0KIAotSW5qZWN0ZWRCdW5kbGVTY3Jp
cHRXb3JsZCogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjp3b3JsZEZvcklkZW50aWZpZXIodWlu
dDY0X3QgaWRlbnRpZmllcikKK0luamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqIFdlYlVzZXJDb250
ZW50Q29udHJvbGxlcjo6d29ybGRGb3JJZGVudGlmaWVyKENvbnRlbnRXb3JsZElkZW50aWZpZXIg
aWRlbnRpZmllcikKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gd29ybGRNYXAoKS5maW5kKGlkZW50
aWZpZXIpOwogICAgIHJldHVybiBpdGVyYXRvciA9PSB3b3JsZE1hcCgpLmVuZCgpID8gbnVsbHB0
ciA6IGl0ZXJhdG9yLT52YWx1ZS5maXJzdC5nZXQoKTsKIH0KIAotdm9pZCBXZWJVc2VyQ29udGVu
dENvbnRyb2xsZXI6OmFkZFVzZXJDb250ZW50V29ybGQoY29uc3Qgc3RkOjpwYWlyPHVpbnQ2NF90
LCBTdHJpbmc+JiB3b3JsZCkKK3ZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjphZGRVc2Vy
Q29udGVudFdvcmxkKGNvbnN0IHN0ZDo6cGFpcjxDb250ZW50V29ybGRJZGVudGlmaWVyLCBTdHJp
bmc+JiB3b3JsZCkKIHsKICAgICBBU1NFUlQod29ybGQuZmlyc3QpOwotICAgIGlmICh3b3JsZC5m
aXJzdCA9PSBwYWdlQ29udGVudFdvcmxkSWRlbnRpZmllcikKKyAgICBpZiAod29ybGQuZmlyc3Qg
PT0gcGFnZUNvbnRlbnRXb3JsZElkZW50aWZpZXIoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
d29ybGRNYXAoKS5lbnN1cmUod29ybGQuZmlyc3QsIFsmXSB7CkBAIC0xMTMsMjcgKzExMywyNyBA
QCB2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6YWRkVXNlckNvbnRlbnRXb3JsZChjb25z
dCBzdGQ6OnBhaXI8dWludDY0X3QsIFN0cgogICAgICAgICAvLyB1c2UgdGhlIGV4aXN0aW5nIHdv
cmxkIGNyZWF0ZWQgYnkgdGhlIHdlYiBleHRlbnNpb24gaWYgYW55LiBUaGUgd29ybGQgbmFtZSBp
cyB1c2VkCiAgICAgICAgIC8vIGFzIHRoZSBpZGVudGlmaWVyLgogICAgICAgICBpZiAoYXV0byog
ZXhpc3RpbmdXb3JsZCA9IEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQ6OmZpbmQod29ybGQuc2Vj
b25kKSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihSZWY8SW5qZWN0ZWRCdW5k
bGVTY3JpcHRXb3JsZD4oKmV4aXN0aW5nV29ybGQpLCBwYWdlQ29udGVudFdvcmxkSWRlbnRpZmll
cik7CisgICAgICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoUmVmPEluamVjdGVkQnVuZGxl
U2NyaXB0V29ybGQ+KCpleGlzdGluZ1dvcmxkKSwgMSk7CiAjZW5kaWYKLSAgICAgICAgcmV0dXJu
IHN0ZDo6bWFrZV9wYWlyKEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQ6OmNyZWF0ZSh3b3JsZC5z
ZWNvbmQpLCBwYWdlQ29udGVudFdvcmxkSWRlbnRpZmllcik7CisgICAgICAgIHJldHVybiBzdGQ6
Om1ha2VfcGFpcihJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkOjpjcmVhdGUod29ybGQuc2Vjb25k
KSwgMSk7CiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjphZGRV
c2VyQ29udGVudFdvcmxkcyhjb25zdCBWZWN0b3I8c3RkOjpwYWlyPHVpbnQ2NF90LCBTdHJpbmc+
PiYgd29ybGRzKQordm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OmFkZFVzZXJDb250ZW50
V29ybGRzKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8Q29udGVudFdvcmxkSWRlbnRpZmllciwgU3Ry
aW5nPj4mIHdvcmxkcykKIHsKICAgICBmb3IgKGF1dG8mIHdvcmxkIDogd29ybGRzKQogICAgICAg
ICBhZGRVc2VyQ29udGVudFdvcmxkKHdvcmxkKTsKIH0KIAotdm9pZCBXZWJVc2VyQ29udGVudENv
bnRyb2xsZXI6OnJlbW92ZVVzZXJDb250ZW50V29ybGRzKGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4m
IHdvcmxkSWRlbnRpZmllcnMpCit2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6cmVtb3Zl
VXNlckNvbnRlbnRXb3JsZHMoY29uc3QgVmVjdG9yPENvbnRlbnRXb3JsZElkZW50aWZpZXI+JiB3
b3JsZElkZW50aWZpZXJzKQogewogICAgIGZvciAoYXV0byYgd29ybGRJZGVudGlmaWVyIDogd29y
bGRJZGVudGlmaWVycykgewogICAgICAgICBBU1NFUlQod29ybGRJZGVudGlmaWVyKTsKLSAgICAg
ICAgQVNTRVJUKHdvcmxkSWRlbnRpZmllciAhPSAxKTsKKyAgICAgICAgQVNTRVJUKHdvcmxkSWRl
bnRpZmllciAhPSBwYWdlQ29udGVudFdvcmxkSWRlbnRpZmllcigpKTsKIAogICAgICAgICBhdXRv
IGl0ID0gd29ybGRNYXAoKS5maW5kKHdvcmxkSWRlbnRpZmllcik7CiAgICAgICAgIGlmIChpdCA9
PSB3b3JsZE1hcCgpLmVuZCgpKSB7Ci0gICAgICAgICAgICBXVEZMb2dBbHdheXMoIlRyeWluZyB0
byByZW1vdmUgYSBVc2VyQ29udGVudFdvcmxkIChpZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5v
dCBleGlzdC4iLCB3b3JsZElkZW50aWZpZXIpOworICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJU
cnlpbmcgdG8gcmVtb3ZlIGEgVXNlckNvbnRlbnRXb3JsZCAoaWQ9JSIgUFJJdTY0ICIpIHRoYXQg
ZG9lcyBub3QgZXhpc3QuIiwgd29ybGRJZGVudGlmaWVyLnRvVUludDY0KCkpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTE0OSw3ICsxNDksNyBAQCB2b2lkIFdlYlVzZXJD
b250ZW50Q29udHJvbGxlcjo6YWRkVXNlclNjcmlwdHMoVmVjdG9yPFdlYlVzZXJTY3JpcHREYXRh
PiYmIHVzZXJTYwogICAgIGZvciAoY29uc3QgYXV0byYgdXNlclNjcmlwdERhdGEgOiB1c2VyU2Ny
aXB0cykgewogICAgICAgICBhdXRvIGl0ID0gd29ybGRNYXAoKS5maW5kKHVzZXJTY3JpcHREYXRh
LndvcmxkSWRlbnRpZmllcik7CiAgICAgICAgIGlmIChpdCA9PSB3b3JsZE1hcCgpLmVuZCgpKSB7
Ci0gICAgICAgICAgICBXVEZMb2dBbHdheXMoIlRyeWluZyB0byBhZGQgYSBVc2VyU2NyaXB0IHRv
IGEgVXNlckNvbnRlbnRXb3JsZCAoaWQ9JSIgUFJJdTY0ICIpIHRoYXQgZG9lcyBub3QgZXhpc3Qu
IiwgdXNlclNjcmlwdERhdGEud29ybGRJZGVudGlmaWVyKTsKKyAgICAgICAgICAgIFdURkxvZ0Fs
d2F5cygiVHJ5aW5nIHRvIGFkZCBhIFVzZXJTY3JpcHQgdG8gYSBVc2VyQ29udGVudFdvcmxkIChp
ZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlzdC4iLCB1c2VyU2NyaXB0RGF0YS53b3Js
ZElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
fQogCkBAIC0xNTgsMjMgKzE1OCwyMyBAQCB2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6
YWRkVXNlclNjcmlwdHMoVmVjdG9yPFdlYlVzZXJTY3JpcHREYXRhPiYmIHVzZXJTYwogICAgIH0K
IH0KIAotdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OnJlbW92ZVVzZXJTY3JpcHQodWlu
dDY0X3Qgd29ybGRJZGVudGlmaWVyLCB1aW50NjRfdCB1c2VyU2NyaXB0SWRlbnRpZmllcikKK3Zv
aWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVVc2VyU2NyaXB0KENvbnRlbnRXb3Js
ZElkZW50aWZpZXIgd29ybGRJZGVudGlmaWVyLCB1aW50NjRfdCB1c2VyU2NyaXB0SWRlbnRpZmll
cikKIHsKICAgICBhdXRvIGl0ID0gd29ybGRNYXAoKS5maW5kKHdvcmxkSWRlbnRpZmllcik7CiAg
ICAgaWYgKGl0ID09IHdvcmxkTWFwKCkuZW5kKCkpIHsKLSAgICAgICAgV1RGTG9nQWx3YXlzKCJU
cnlpbmcgdG8gcmVtb3ZlIGEgVXNlclNjcmlwdCBmcm9tIGEgVXNlckNvbnRlbnRXb3JsZCAoaWQ9
JSIgUFJJdTY0ICIpIHRoYXQgZG9lcyBub3QgZXhpc3QuIiwgd29ybGRJZGVudGlmaWVyKTsKKyAg
ICAgICAgV1RGTG9nQWx3YXlzKCJUcnlpbmcgdG8gcmVtb3ZlIGEgVXNlclNjcmlwdCBmcm9tIGEg
VXNlckNvbnRlbnRXb3JsZCAoaWQ9JSIgUFJJdTY0ICIpIHRoYXQgZG9lcyBub3QgZXhpc3QuIiwg
d29ybGRJZGVudGlmaWVyLnRvVUludDY0KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgcmVtb3ZlVXNlclNjcmlwdEludGVybmFsKCppdC0+dmFsdWUuZmlyc3QsIHVzZXJTY3JpcHRJ
ZGVudGlmaWVyKTsKIH0KIAotdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OnJlbW92ZUFs
bFVzZXJTY3JpcHRzKGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mIHdvcmxkSWRlbnRpZmllcnMpCit2
b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6cmVtb3ZlQWxsVXNlclNjcmlwdHMoY29uc3Qg
VmVjdG9yPENvbnRlbnRXb3JsZElkZW50aWZpZXI+JiB3b3JsZElkZW50aWZpZXJzKQogewogICAg
IGZvciAoYXV0byYgd29ybGRJZGVudGlmaWVyIDogd29ybGRJZGVudGlmaWVycykgewogICAgICAg
ICBhdXRvIGl0ID0gd29ybGRNYXAoKS5maW5kKHdvcmxkSWRlbnRpZmllcik7CiAgICAgICAgIGlm
IChpdCA9PSB3b3JsZE1hcCgpLmVuZCgpKSB7Ci0gICAgICAgICAgICBXVEZMb2dBbHdheXMoIlRy
eWluZyB0byByZW1vdmUgYWxsIFVzZXJTY3JpcHRzIGZyb20gYSBVc2VyQ29udGVudFdvcmxkIChp
ZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlzdC4iLCB3b3JsZElkZW50aWZpZXIpOwor
ICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJUcnlpbmcgdG8gcmVtb3ZlIGFsbCBVc2VyU2NyaXB0
cyBmcm9tIGEgVXNlckNvbnRlbnRXb3JsZCAoaWQ9JSIgUFJJdTY0ICIpIHRoYXQgZG9lcyBub3Qg
ZXhpc3QuIiwgd29ybGRJZGVudGlmaWVyLnRvVUludDY0KCkpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAKQEAgLTE4Nyw3ICsxODcsNyBAQCB2b2lkIFdlYlVzZXJDb250ZW50Q29u
dHJvbGxlcjo6YWRkVXNlclN0eWxlU2hlZXRzKGNvbnN0IFZlY3RvcjxXZWJVc2VyU3R5bGVTaGVl
dAogICAgIGZvciAoY29uc3QgYXV0byYgdXNlclN0eWxlU2hlZXREYXRhIDogdXNlclN0eWxlU2hl
ZXRzKSB7CiAgICAgICAgIGF1dG8gaXQgPSB3b3JsZE1hcCgpLmZpbmQodXNlclN0eWxlU2hlZXRE
YXRhLndvcmxkSWRlbnRpZmllcik7CiAgICAgICAgIGlmIChpdCA9PSB3b3JsZE1hcCgpLmVuZCgp
KSB7Ci0gICAgICAgICAgICBXVEZMb2dBbHdheXMoIlRyeWluZyB0byBhZGQgYSBVc2VyU3R5bGVT
aGVldCB0byBhIFVzZXJDb250ZW50V29ybGQgKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRvZXMgbm90
IGV4aXN0LiIsIHVzZXJTdHlsZVNoZWV0RGF0YS53b3JsZElkZW50aWZpZXIpOworICAgICAgICAg
ICAgV1RGTG9nQWx3YXlzKCJUcnlpbmcgdG8gYWRkIGEgVXNlclN0eWxlU2hlZXQgdG8gYSBVc2Vy
Q29udGVudFdvcmxkIChpZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlzdC4iLCB1c2Vy
U3R5bGVTaGVldERhdGEud29ybGRJZGVudGlmaWVyLnRvVUludDY0KCkpOwogICAgICAgICAgICAg
Y29udGludWU7CiAgICAgICAgIH0KICAgICAgICAgCkBAIC0xOTgsMjQgKzE5OCwyNCBAQCB2b2lk
IFdlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6YWRkVXNlclN0eWxlU2hlZXRzKGNvbnN0IFZlY3Rv
cjxXZWJVc2VyU3R5bGVTaGVldAogICAgIGludmFsaWRhdGVJbmplY3RlZFN0eWxlU2hlZXRDYWNo
ZUluQWxsRnJhbWVzSW5BbGxQYWdlcygpOwogfQogCi12b2lkIFdlYlVzZXJDb250ZW50Q29udHJv
bGxlcjo6cmVtb3ZlVXNlclN0eWxlU2hlZXQodWludDY0X3Qgd29ybGRJZGVudGlmaWVyLCB1aW50
NjRfdCB1c2VyU3R5bGVTaGVldElkZW50aWZpZXIpCit2b2lkIFdlYlVzZXJDb250ZW50Q29udHJv
bGxlcjo6cmVtb3ZlVXNlclN0eWxlU2hlZXQoQ29udGVudFdvcmxkSWRlbnRpZmllciB3b3JsZElk
ZW50aWZpZXIsIHVpbnQ2NF90IHVzZXJTdHlsZVNoZWV0SWRlbnRpZmllcikKIHsKICAgICBhdXRv
IGl0ID0gd29ybGRNYXAoKS5maW5kKHdvcmxkSWRlbnRpZmllcik7CiAgICAgaWYgKGl0ID09IHdv
cmxkTWFwKCkuZW5kKCkpIHsKLSAgICAgICAgV1RGTG9nQWx3YXlzKCJUcnlpbmcgdG8gcmVtb3Zl
IGEgVXNlclN0eWxlU2hlZXQgZnJvbSBhIFVzZXJDb250ZW50V29ybGQgKGlkPSUiIFBSSXU2NCAi
KSB0aGF0IGRvZXMgbm90IGV4aXN0LiIsIHdvcmxkSWRlbnRpZmllcik7CisgICAgICAgIFdURkxv
Z0Fsd2F5cygiVHJ5aW5nIHRvIHJlbW92ZSBhIFVzZXJTdHlsZVNoZWV0IGZyb20gYSBVc2VyQ29u
dGVudFdvcmxkIChpZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlzdC4iLCB3b3JsZElk
ZW50aWZpZXIudG9VSW50NjQoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICByZW1v
dmVVc2VyU3R5bGVTaGVldEludGVybmFsKCppdC0+dmFsdWUuZmlyc3QsIHVzZXJTdHlsZVNoZWV0
SWRlbnRpZmllcik7CiB9CiAKLXZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVB
bGxVc2VyU3R5bGVTaGVldHMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYgd29ybGRJZGVudGlmaWVy
cykKK3ZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVBbGxVc2VyU3R5bGVTaGVl
dHMoY29uc3QgVmVjdG9yPENvbnRlbnRXb3JsZElkZW50aWZpZXI+JiB3b3JsZElkZW50aWZpZXJz
KQogewogICAgIGJvb2wgc2hlZXRzQ2hhbmdlZCA9IGZhbHNlOwogICAgIGZvciAoYXV0byYgd29y
bGRJZGVudGlmaWVyIDogd29ybGRJZGVudGlmaWVycykgewogICAgICAgICBhdXRvIGl0ID0gd29y
bGRNYXAoKS5maW5kKHdvcmxkSWRlbnRpZmllcik7CiAgICAgICAgIGlmIChpdCA9PSB3b3JsZE1h
cCgpLmVuZCgpKSB7Ci0gICAgICAgICAgICBXVEZMb2dBbHdheXMoIlRyeWluZyB0byByZW1vdmUg
YWxsIFVzZXJTdHlsZVNoZWV0cyBmcm9tIGEgVXNlckNvbnRlbnRXb3JsZCAoaWQ9JSIgUFJJdTY0
ICIpIHRoYXQgZG9lcyBub3QgZXhpc3QuIiwgd29ybGRJZGVudGlmaWVyKTsKKyAgICAgICAgICAg
IFdURkxvZ0Fsd2F5cygiVHJ5aW5nIHRvIHJlbW92ZSBhbGwgVXNlclN0eWxlU2hlZXRzIGZyb20g
YSBVc2VyQ29udGVudFdvcmxkIChpZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlzdC4i
LCB3b3JsZElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KIApAQCAtMjc4LDcgKzI3OCw3IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
OjphZGRVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXJzKGNvbnN0IFZlY3RvcjxXZWJTY3JpCiAgICAg
Zm9yIChhdXRvJiBoYW5kbGVyIDogc2NyaXB0TWVzc2FnZUhhbmRsZXJzKSB7CiAgICAgICAgIGF1
dG8gaXQgPSB3b3JsZE1hcCgpLmZpbmQoaGFuZGxlci53b3JsZElkZW50aWZpZXIpOwogICAgICAg
ICBpZiAoaXQgPT0gd29ybGRNYXAoKS5lbmQoKSkgewotICAgICAgICAgICAgV1RGTG9nQWx3YXlz
KCJUcnlpbmcgdG8gYWRkIGEgVXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVyIHRvIGEgVXNlckNvbnRl
bnRXb3JsZCAoaWQ9JSIgUFJJdTY0ICIpIHRoYXQgZG9lcyBub3QgZXhpc3QuIiwgaGFuZGxlci53
b3JsZElkZW50aWZpZXIpOworICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJUcnlpbmcgdG8gYWRk
IGEgVXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVyIHRvIGEgVXNlckNvbnRlbnRXb3JsZCAoaWQ9JSIg
UFJJdTY0ICIpIHRoYXQgZG9lcyBub3QgZXhpc3QuIiwgaGFuZGxlci53b3JsZElkZW50aWZpZXIu
dG9VSW50NjQoKSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCkBAIC0yODks
MTIgKzI4OSwxMiBAQCB2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6YWRkVXNlclNjcmlw
dE1lc3NhZ2VIYW5kbGVycyhjb25zdCBWZWN0b3I8V2ViU2NyaQogI2VuZGlmCiB9CiAKLXZvaWQg
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXIo
dWludDY0X3Qgd29ybGRJZGVudGlmaWVyLCB1aW50NjRfdCB1c2VyU2NyaXB0TWVzc2FnZUhhbmRs
ZXJJZGVudGlmaWVyKQordm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OnJlbW92ZVVzZXJT
Y3JpcHRNZXNzYWdlSGFuZGxlcihDb250ZW50V29ybGRJZGVudGlmaWVyIHdvcmxkSWRlbnRpZmll
ciwgdWludDY0X3QgdXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVySWRlbnRpZmllcikKIHsKICNpZiBF
TkFCTEUoVVNFUl9NRVNTQUdFX0hBTkRMRVJTKQogICAgIGF1dG8gaXQgPSB3b3JsZE1hcCgpLmZp
bmQod29ybGRJZGVudGlmaWVyKTsKICAgICBpZiAoaXQgPT0gd29ybGRNYXAoKS5lbmQoKSkgewot
ICAgICAgICBXVEZMb2dBbHdheXMoIlRyeWluZyB0byByZW1vdmUgYSBVc2VyU2NyaXB0TWVzc2Fn
ZUhhbmRsZXIgZnJvbSBhIFVzZXJDb250ZW50V29ybGQgKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRv
ZXMgbm90IGV4aXN0LiIsIHdvcmxkSWRlbnRpZmllcik7CisgICAgICAgIFdURkxvZ0Fsd2F5cygi
VHJ5aW5nIHRvIHJlbW92ZSBhIFVzZXJTY3JpcHRNZXNzYWdlSGFuZGxlciBmcm9tIGEgVXNlckNv
bnRlbnRXb3JsZCAoaWQ9JSIgUFJJdTY0ICIpIHRoYXQgZG9lcyBub3QgZXhpc3QuIiwgd29ybGRJ
ZGVudGlmaWVyLnRvVUludDY0KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0zMDUs
MTQgKzMwNSwxNCBAQCB2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6cmVtb3ZlVXNlclNj
cmlwdE1lc3NhZ2VIYW5kbGVyKHVpbnQ2NF90IHdvcmxkSWRlbgogI2VuZGlmCiB9CiAKLXZvaWQg
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVBbGxVc2VyU2NyaXB0TWVzc2FnZUhhbmRs
ZXJzKGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mIHdvcmxkSWRlbnRpZmllcnMpCit2b2lkIFdlYlVz
ZXJDb250ZW50Q29udHJvbGxlcjo6cmVtb3ZlQWxsVXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVycyhj
b25zdCBWZWN0b3I8Q29udGVudFdvcmxkSWRlbnRpZmllcj4mIHdvcmxkSWRlbnRpZmllcnMpCiB7
CiAjaWYgRU5BQkxFKFVTRVJfTUVTU0FHRV9IQU5ETEVSUykKICAgICBib29sIHVzZXJNZXNzYWdl
SGFuZGxlcnNDaGFuZ2VkID0gZmFsc2U7CiAgICAgZm9yIChhdXRvJiB3b3JsZElkZW50aWZpZXIg
OiB3b3JsZElkZW50aWZpZXJzKSB7CiAgICAgICAgIGF1dG8gaXQgPSB3b3JsZE1hcCgpLmZpbmQo
d29ybGRJZGVudGlmaWVyKTsKICAgICAgICAgaWYgKGl0ID09IHdvcmxkTWFwKCkuZW5kKCkpIHsK
LSAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiVHJ5aW5nIHRvIHJlbW92ZSBhbGwgVXNlclNjcmlw
dE1lc3NhZ2VIYW5kbGVyIGZyb20gYSBVc2VyQ29udGVudFdvcmxkIChpZD0lIiBQUkl1NjQgIikg
dGhhdCBkb2VzIG5vdCBleGlzdC4iLCB3b3JsZElkZW50aWZpZXIpOworICAgICAgICAgICAgV1RG
TG9nQWx3YXlzKCJUcnlpbmcgdG8gcmVtb3ZlIGFsbCBVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXIg
ZnJvbSBhIFVzZXJDb250ZW50V29ybGQgKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRvZXMgbm90IGV4
aXN0LiIsIHdvcmxkSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvVXNlckNv
bnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmgKaW5kZXggNDhlN2Q2YWM1
YzdlMmQ5NWEyYzFhODI2MGM5NDkwMGJlYjBhYzhmMy4uOTU4ODU2NzE3MmQ0YzhiMmJhODFhYTIy
ZDNjYzc2OGZiMjU1ZWRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Vz
ZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuaApAQCAtNjQs
MTEgKzY0LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZVVzZXJTdHlsZVNoZWV0cyhJbmpl
Y3RlZEJ1bmRsZVNjcmlwdFdvcmxkJik7CiAgICAgdm9pZCByZW1vdmVBbGxVc2VyQ29udGVudCgp
OwogCi0gICAgc3RhdGljIHVpbnQ2NF90IGlkZW50aWZpZXJGb3JOb3JtYWxXb3JsZCgpIHsgcmV0
dXJuIDE7IH0KLSAgICBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkKiB3b3JsZEZvcklkZW50aWZp
ZXIodWludDY0X3QpOworICAgIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqIHdvcmxkRm9ySWRl
bnRpZmllcihDb250ZW50V29ybGRJZGVudGlmaWVyKTsKIAotICAgIHZvaWQgYWRkVXNlckNvbnRl
bnRXb3JsZHMoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjx1aW50NjRfdCwgU3RyaW5nPj4mKTsKLSAg
ICB2b2lkIGFkZFVzZXJDb250ZW50V29ybGQoY29uc3Qgc3RkOjpwYWlyPHVpbnQ2NF90LCBTdHJp
bmc+Jik7CisgICAgdm9pZCBhZGRVc2VyQ29udGVudFdvcmxkcyhjb25zdCBWZWN0b3I8c3RkOjpw
YWlyPENvbnRlbnRXb3JsZElkZW50aWZpZXIsIFN0cmluZz4+Jik7CisgICAgdm9pZCBhZGRVc2Vy
Q29udGVudFdvcmxkKGNvbnN0IHN0ZDo6cGFpcjxDb250ZW50V29ybGRJZGVudGlmaWVyLCBTdHJp
bmc+Jik7CiAgICAgdm9pZCBhZGRVc2VyU2NyaXB0cyhWZWN0b3I8V2ViVXNlclNjcmlwdERhdGE+
JiYsIEluamVjdFVzZXJTY3JpcHRJbW1lZGlhdGVseSk7CiAgICAgdm9pZCBhZGRVc2VyU3R5bGVT
aGVldHMoY29uc3QgVmVjdG9yPFdlYlVzZXJTdHlsZVNoZWV0RGF0YT4mKTsKICAgICB2b2lkIGFk
ZFVzZXJTY3JpcHRNZXNzYWdlSGFuZGxlcnMoY29uc3QgVmVjdG9yPFdlYlNjcmlwdE1lc3NhZ2VI
YW5kbGVyRGF0YT4mKTsKQEAgLTkyLDE2ICs5MSwxNiBAQCBwcml2YXRlOgogICAgIC8vIElQQzo6
TWVzc2FnZVJlY2VpdmVyLgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHJlbW92ZVVzZXJDb250
ZW50V29ybGRzKGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mKTsKKyAgICB2b2lkIHJlbW92ZVVzZXJD
b250ZW50V29ybGRzKGNvbnN0IFZlY3RvcjxDb250ZW50V29ybGRJZGVudGlmaWVyPiYpOwogCi0g
ICAgdm9pZCByZW1vdmVVc2VyU2NyaXB0KHVpbnQ2NF90IHdvcmxkSWRlbnRpZmllciwgdWludDY0
X3QgdXNlclNjcmlwdElkZW50aWZpZXIpOwotICAgIHZvaWQgcmVtb3ZlQWxsVXNlclNjcmlwdHMo
Y29uc3QgVmVjdG9yPHVpbnQ2NF90PiYpOworICAgIHZvaWQgcmVtb3ZlVXNlclNjcmlwdChDb250
ZW50V29ybGRJZGVudGlmaWVyLCB1aW50NjRfdCB1c2VyU2NyaXB0SWRlbnRpZmllcik7CisgICAg
dm9pZCByZW1vdmVBbGxVc2VyU2NyaXB0cyhjb25zdCBWZWN0b3I8Q29udGVudFdvcmxkSWRlbnRp
Zmllcj4mKTsKIAotICAgIHZvaWQgcmVtb3ZlVXNlclN0eWxlU2hlZXQodWludDY0X3Qgd29ybGRJ
ZGVudGlmaWVyLCB1aW50NjRfdCB1c2VyU2NyaXB0SWRlbnRpZmllcik7Ci0gICAgdm9pZCByZW1v
dmVBbGxVc2VyU3R5bGVTaGVldHMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYpOworICAgIHZvaWQg
cmVtb3ZlVXNlclN0eWxlU2hlZXQoQ29udGVudFdvcmxkSWRlbnRpZmllciwgdWludDY0X3QgdXNl
clNjcmlwdElkZW50aWZpZXIpOworICAgIHZvaWQgcmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzKGNv
bnN0IFZlY3RvcjxDb250ZW50V29ybGRJZGVudGlmaWVyPiYpOwogCi0gICAgdm9pZCByZW1vdmVV
c2VyU2NyaXB0TWVzc2FnZUhhbmRsZXIodWludDY0X3Qgd29ybGRJZGVudGlmaWVyLCB1aW50NjRf
dCB1c2VyU2NyaXB0SWRlbnRpZmllcik7Ci0gICAgdm9pZCByZW1vdmVBbGxVc2VyU2NyaXB0TWVz
c2FnZUhhbmRsZXJzKGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mKTsKKyAgICB2b2lkIHJlbW92ZVVz
ZXJTY3JpcHRNZXNzYWdlSGFuZGxlcihDb250ZW50V29ybGRJZGVudGlmaWVyLCB1aW50NjRfdCB1
c2VyU2NyaXB0SWRlbnRpZmllcik7CisgICAgdm9pZCByZW1vdmVBbGxVc2VyU2NyaXB0TWVzc2Fn
ZUhhbmRsZXJzKGNvbnN0IFZlY3RvcjxDb250ZW50V29ybGRJZGVudGlmaWVyPiYpOwogCiAjaWYg
RU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKICAgICB2b2lkIHJlbW92ZUNvbnRlbnRSdWxlTGlz
dChjb25zdCBTdHJpbmcmIG5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xs
ZXIubWVzc2FnZXMuaW4KaW5kZXggNDdhNWE2ZjQ3YTk1MDkyZDZiNTY5MTcxY2M4ZTgwMjE2MmY3
N2FjMi4uNTc0MjU5YWE3NDUyNmFlOTE1M2UzNmNkMGIxNjc2ZDA2MDZjNmU0YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29u
dHJvbGxlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvVXNlckNv
bnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLm1lc3NhZ2VzLmluCkBAIC0yNCwyMCArMjQs
MjAgQEAKICAqLwogCiBtZXNzYWdlcyAtPiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXIgewotICAg
IEFkZFVzZXJDb250ZW50V29ybGRzKFZlY3RvcjxzdGQ6OnBhaXI8dWludDY0X3QsIFN0cmluZz4+
IHdvcmxkcyk7Ci0gICAgUmVtb3ZlVXNlckNvbnRlbnRXb3JsZHMoVmVjdG9yPHVpbnQ2NF90PiB3
b3JsZElkZW50aWZpZXJzKTsKKyAgICBBZGRVc2VyQ29udGVudFdvcmxkcyhWZWN0b3I8c3RkOjpw
YWlyPFdlYktpdDo6Q29udGVudFdvcmxkSWRlbnRpZmllciwgU3RyaW5nPj4gd29ybGRzKTsKKyAg
ICBSZW1vdmVVc2VyQ29udGVudFdvcmxkcyhWZWN0b3I8V2ViS2l0OjpDb250ZW50V29ybGRJZGVu
dGlmaWVyPiB3b3JsZElkZW50aWZpZXJzKTsKIAogICAgIEFkZFVzZXJTY3JpcHRzKFZlY3Rvcjxz
dHJ1Y3QgV2ViS2l0OjpXZWJVc2VyU2NyaXB0RGF0YT4gdXNlclNjcmlwdHMsIGVudW06Ym9vbCBX
ZWJLaXQ6OkluamVjdFVzZXJTY3JpcHRJbW1lZGlhdGVseSBpbW1lZGlhdGVseSk7Ci0gICAgUmVt
b3ZlVXNlclNjcmlwdCh1aW50NjRfdCB3b3JsZElkZW50aWZpZXIsIHVpbnQ2NF90IGlkZW50aWZp
ZXIpOwotICAgIFJlbW92ZUFsbFVzZXJTY3JpcHRzKFZlY3Rvcjx1aW50NjRfdD4gd29ybGRJZGVu
dGlmaWVycyk7CisgICAgUmVtb3ZlVXNlclNjcmlwdChXZWJLaXQ6OkNvbnRlbnRXb3JsZElkZW50
aWZpZXIgd29ybGRJZGVudGlmaWVyLCB1aW50NjRfdCBpZGVudGlmaWVyKTsKKyAgICBSZW1vdmVB
bGxVc2VyU2NyaXB0cyhWZWN0b3I8V2ViS2l0OjpDb250ZW50V29ybGRJZGVudGlmaWVyPiB3b3Js
ZElkZW50aWZpZXJzKTsKIAogICAgIEFkZFVzZXJTdHlsZVNoZWV0cyhWZWN0b3I8c3RydWN0IFdl
YktpdDo6V2ViVXNlclN0eWxlU2hlZXREYXRhPiB1c2VyU3R5bGVTaGVldHMpOwotICAgIFJlbW92
ZVVzZXJTdHlsZVNoZWV0KHVpbnQ2NF90IHdvcmxkSWRlbnRpZmllciwgdWludDY0X3QgaWRlbnRp
Zmllcik7Ci0gICAgUmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzKFZlY3Rvcjx1aW50NjRfdD4gd29y
bGRJZGVudGlmaWVycyk7CisgICAgUmVtb3ZlVXNlclN0eWxlU2hlZXQoV2ViS2l0OjpDb250ZW50
V29ybGRJZGVudGlmaWVyIHdvcmxkSWRlbnRpZmllciwgdWludDY0X3QgaWRlbnRpZmllcik7Cisg
ICAgUmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzKFZlY3RvcjxXZWJLaXQ6OkNvbnRlbnRXb3JsZElk
ZW50aWZpZXI+IHdvcmxkSWRlbnRpZmllcnMpOwogCiAgICAgQWRkVXNlclNjcmlwdE1lc3NhZ2VI
YW5kbGVycyhWZWN0b3I8c3RydWN0IFdlYktpdDo6V2ViU2NyaXB0TWVzc2FnZUhhbmRsZXJEYXRh
PiBzY3JpcHRNZXNzYWdlSGFuZGxlcnMpOwotICAgIFJlbW92ZVVzZXJTY3JpcHRNZXNzYWdlSGFu
ZGxlcih1aW50NjRfdCB3b3JsZElkZW50aWZpZXIsIHVpbnQ2NF90IGlkZW50aWZpZXIpOwotICAg
IFJlbW92ZUFsbFVzZXJTY3JpcHRNZXNzYWdlSGFuZGxlcnMoVmVjdG9yPHVpbnQ2NF90PiB3b3Js
ZElkZW50aWZpZXJzKTsKKyAgICBSZW1vdmVVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXIoV2ViS2l0
OjpDb250ZW50V29ybGRJZGVudGlmaWVyIHdvcmxkSWRlbnRpZmllciwgdWludDY0X3QgaWRlbnRp
Zmllcik7CisgICAgUmVtb3ZlQWxsVXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVycyhWZWN0b3I8V2Vi
S2l0OjpDb250ZW50V29ybGRJZGVudGlmaWVyPiB3b3JsZElkZW50aWZpZXJzKTsKIAogI2lmIEVO
QUJMRShDT05URU5UX0VYVEVOU0lPTlMpCiAgICAgQWRkQ29udGVudFJ1bGVMaXN0cyhWZWN0b3I8
c3RkOjpwYWlyPFN0cmluZywgV2ViS2l0OjpXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE+
PiBjb250ZW50RmlsdGVycyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCmluZGV4IDg2MmIxM2FjN2Q3OGUzY2JhMGU3ZWRlNTM3OTFhODU0NzcyMGQ2NGEu
LmJkMzQxMDY4ZmI3MjVmOWVlMTVhM2FiMTVlOTdhOTdmM2M5ZmY2OTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zMzgwLDcgKzMzODAsNyBA
QCBLZXlib2FyZFVJTW9kZSBXZWJQYWdlOjprZXlib2FyZFVJTW9kZSgpCiAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PEtleWJvYXJkVUlNb2RlPigoZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCA/IEtl
eWJvYXJkQWNjZXNzRnVsbCA6IEtleWJvYXJkQWNjZXNzRGVmYXVsdCkgfCAobV90YWJUb0xpbmtz
ID8gS2V5Ym9hcmRBY2Nlc3NUYWJzVG9MaW5rcyA6IDApKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpy
dW5KYXZhU2NyaXB0KFdlYkZyYW1lKiBmcmFtZSwgUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMmJiBw
YXJhbWV0ZXJzLCB1aW50NjRfdCB3b3JsZElkZW50aWZpZXIsIENhbGxiYWNrSUQgY2FsbGJhY2tJ
RCkKK3ZvaWQgV2ViUGFnZTo6cnVuSmF2YVNjcmlwdChXZWJGcmFtZSogZnJhbWUsIFJ1bkphdmFT
Y3JpcHRQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycywgQ29udGVudFdvcmxkSWRlbnRpZmllciB3b3Js
ZElkZW50aWZpZXIsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICAvLyBOT1RFOiBXZSBu
ZWVkIHRvIGJlIGNhcmVmdWwgd2hlbiBydW5uaW5nIHNjcmlwdHMgdGhhdCB0aGUgb2JqZWN0cyB3
ZSBkZXBlbmQgb24gZG9uJ3QKICAgICAvLyBkaXNhcHBlYXIgZHVyaW5nIHNjcmlwdCBleGVjdXRp
b24uCkBAIC0zMzkwLDcgKzMzOTAsNiBAQCB2b2lkIFdlYlBhZ2U6OnJ1bkphdmFTY3JpcHQoV2Vi
RnJhbWUqIGZyYW1lLCBSdW5KYXZhU2NyaXB0UGFyYW1ldGVycyYmIHBhcmFtZXRlcgogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgQVNTRVJUKHdvcmxkSWRlbnRpZmllcik7CiAgICAgYXV0
byogd29ybGQgPSBtX3VzZXJDb250ZW50Q29udHJvbGxlci0+d29ybGRGb3JJZGVudGlmaWVyKHdv
cmxkSWRlbnRpZmllcik7CiAgICAgaWYgKCF3b3JsZCkgewogICAgICAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlNjcmlwdFZhbHVlQ2FsbGJhY2soeyB9LCBFeGNlcHRpb25EZXRhaWxz
IHsgIlVuYWJsZSB0byBleGVjdXRlIEphdmFTY3JpcHQ6IENhbm5vdCBmaW5kIHNwZWNpZmllZCBj
b250ZW50IHdvcmxkIl9zIH0sIGNhbGxiYWNrSUQpKTsKQEAgLTM0MTksNyArMzQxOCw3IEBAIHZv
aWQgV2ViUGFnZTo6cnVuSmF2YVNjcmlwdChXZWJGcmFtZSogZnJhbWUsIFJ1bkphdmFTY3JpcHRQ
YXJhbWV0ZXJzJiYgcGFyYW1ldGVyCiAgICAgZnJhbWUtPmNvcmVGcmFtZSgpLT5zY3JpcHQoKS5l
eGVjdXRlQXN5bmNocm9ub3VzVXNlckFnZW50U2NyaXB0SW5Xb3JsZCh3b3JsZC0+Y29yZVdvcmxk
KCksIFdURk1vdmUocGFyYW1ldGVycyksIFdURk1vdmUocmVzb2x2ZUZ1bmN0aW9uKSk7CiB9CiAK
LXZvaWQgV2ViUGFnZTo6cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0V29ybGQoUnVuSmF2
YVNjcmlwdFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzLCBjb25zdCBzdGQ6OnBhaXI8dWludDY0X3Qs
IFN0cmluZz4mIHdvcmxkRGF0YSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdl
OjpydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZChSdW5KYXZhU2NyaXB0UGFyYW1l
dGVycyYmIHBhcmFtZXRlcnMsIGNvbnN0IHN0ZDo6cGFpcjxDb250ZW50V29ybGRJZGVudGlmaWVy
LCBTdHJpbmc+JiB3b3JsZERhdGEsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBtX3Vz
ZXJDb250ZW50Q29udHJvbGxlci0+YWRkVXNlckNvbnRlbnRXb3JsZCh3b3JsZERhdGEpOwogICAg
IHJ1bkphdmFTY3JpcHQobWFpbldlYkZyYW1lKCksIFdURk1vdmUocGFyYW1ldGVycyksIHdvcmxk
RGF0YS5maXJzdCwgY2FsbGJhY2tJRCk7CkBAIC0zNDI5LDcgKzM0MjgsNyBAQCB2b2lkIFdlYlBh
Z2U6OnJ1bkphdmFTY3JpcHRJbkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBT
dHJpbmcmIHNjcmlwdAogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIEFTU0VSVChtYWluV2ViRnJhbWUoKSAhPSBm
cmFtZSk7Ci0gICAgcnVuSmF2YVNjcmlwdChmcmFtZSwgeyBzY3JpcHQsIGZhbHNlLCBXVEY6Om51
bGxvcHQsIGZvcmNlVXNlckdlc3R1cmUgfSwgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjppZGVu
dGlmaWVyRm9yTm9ybWFsV29ybGQoKSwgY2FsbGJhY2tJRCk7CisgICAgcnVuSmF2YVNjcmlwdChm
cmFtZSwgeyBzY3JpcHQsIGZhbHNlLCBXVEY6Om51bGxvcHQsIGZvcmNlVXNlckdlc3R1cmUgfSwg
cGFnZUNvbnRlbnRXb3JsZElkZW50aWZpZXIoKSwgY2FsbGJhY2tJRCk7CiB9CiAKIHZvaWQgV2Vi
UGFnZTo6Z2V0Q29udGVudHNBc1N0cmluZyhDYWxsYmFja0lEIGNhbGxiYWNrSUQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMDQ0YTFhYzU5MmM2MjYx
ZDMxMzU4MjA4NzM5OTQ5YTljZGZlMDgyNi4uNzFmM2NmOTFkNDM1M2U0MTExM2EwNzE4ZGZiYzQw
YjM4N2NjMWY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aApAQCAtMTQ2Miw4ICsxNDYyLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldFNlbGVjdGlvbkFz
V2ViQXJjaGl2ZURhdGEoQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBnZXRTb3VyY2VGb3JGcmFtZShX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENhbGxiYWNrSUQpOwogICAgIHZvaWQgZ2V0V2ViQXJj
aGl2ZU9mRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDYWxsYmFja0lEKTsKLSAgICB2
b2lkIHJ1bkphdmFTY3JpcHQoV2ViRnJhbWUqLCBXZWJDb3JlOjpSdW5KYXZhU2NyaXB0UGFyYW1l
dGVycyYmLCB1aW50NjRfdCB3b3JsZElkZW50aWZpZXIsIENhbGxiYWNrSUQpOwotICAgIHZvaWQg
cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0V29ybGQoV2ViQ29yZTo6UnVuSmF2YVNjcmlw
dFBhcmFtZXRlcnMmJiwgY29uc3Qgc3RkOjpwYWlyPHVpbnQ2NF90LCBTdHJpbmc+JiB3b3JsZERh
dGEsIENhbGxiYWNrSUQpOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdChXZWJGcmFtZSosIFdlYkNv
cmU6OlJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzJiYsIENvbnRlbnRXb3JsZElkZW50aWZpZXIsIENh
bGxiYWNrSUQpOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0V29ybGQo
V2ViQ29yZTo6UnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMmJiwgY29uc3Qgc3RkOjpwYWlyPENvbnRl
bnRXb3JsZElkZW50aWZpZXIsIFN0cmluZz4mIHdvcmxkRGF0YSwgQ2FsbGJhY2tJRCk7CiAgICAg
dm9pZCBydW5KYXZhU2NyaXB0SW5GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBm
b3JjZVJlcGFpbnQoQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCB0YWtlU25hcHNob3QoV2ViQ29yZTo6
SW50UmVjdCBzbmFwc2hvdFJlY3QsIFdlYkNvcmU6OkludFNpemUgYml0bWFwU2l6ZSwgdWludDMy
X3Qgb3B0aW9ucywgQ2FsbGJhY2tJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCAyMjlhMzAwZDQ4YjBlZTc3YmMw
YmQwYjY1YjI2ZTA2MTdkYjZlMWVkLi5hMTQ2NDNhODQ5M2YzYTAyMjFhYmJlMTcwNzM4MWI5MmFk
ZTk0MGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4KQEAgLTIwOCw3ICsyMDgsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0Vk
aXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5k
VHlwZQogICAgIEdldFdlYkFyY2hpdmVPZkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIAogICAgIC8vIEZJWE1FOiBU
aGVzZSBzaG91bGQgdXNlIHNlbmRXaXRoQXN5bmNSZXBseSBpbnN0ZWFkIG9mIGNhbGxiYWNrSURz
Ci0gICAgUnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0V29ybGQoc3RydWN0IFdlYkNvcmU6
OlJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzIHBhcmFtZXRlcnMsIHN0ZDo6cGFpcjx1aW50NjRfdCwg
U3RyaW5nPiB3b3JsZCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisgICAgUnVuSmF2
YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0V29ybGQoc3RydWN0IFdlYkNvcmU6OlJ1bkphdmFTY3Jp
cHRQYXJhbWV0ZXJzIHBhcmFtZXRlcnMsIHN0ZDo6cGFpcjxXZWJLaXQ6OkNvbnRlbnRXb3JsZElk
ZW50aWZpZXIsIFN0cmluZz4gd29ybGQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQog
ICAgIFJ1bkphdmFTY3JpcHRJbkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBTdHJpbmcgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIFdlYktpdDo6Q2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQogCiAgICAgRm9yY2VSZXBhaW50KFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxs
YmFja0lEKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388763</attachid>
            <date>2020-01-24 22:56:42 -0800</date>
            <delta_ts>2020-01-25 09:38:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206784-20200124225641.patch</filename>
            <type>text/plain</type>
            <size>40027</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0OTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDk3MDRjNGE3YThkMWU2NTQ3Njg5ZjEz
OGNhZGRiOTI2MjQ1MjA1ZmIuLjFkMmRjZjFhNzY3Y2QzYzljMjIyYmFiZDI5NDcyYmVmYmUyZGMw
YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDEtMjQgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgQ29udGVudFdvcmxkcyBiZSBpZGVudGlmaWVk
IGJ5IGFuIE9iamVjdElkZW50aWZpZXIgaW5zdGVhZCBvZiBhIHVpbnQ2NF90CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY3ODQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9PYmplY3RJZGVudGlm
aWVyLmg6CisgICAgICAgIChXVEY6Ok9iamVjdElkZW50aWZpZXI6OmdlbmVyYXRlKToKKyAgICAg
ICAgKFdURjo6T2JqZWN0SWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKToKKyAgICAgICAg
KFdURjo6T2JqZWN0SWRlbnRpZmllcjo6ZW5hYmxlR2VuZXJhdGlvblByb3RlY3Rpb24pOiBUbyBh
bGxvdyByZXN0cmljdGluZyBnZW5lcmF0aW5nIGFuIGlkZW50aWZpZXIgdG8gdGhlIFVJUHJvY2Vz
cy4KKwogMjAyMC0wMS0yMiAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4K
IAogICAgICAgICB1bmlxdWVMb2dJZGVudGlmaWVyKCkgc2hvdWxkIGdlbmVyYXRlIGEgdW5pcXVl
IGlkZW50aWZpZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRmMGQyZTEyN2Q2NmIwZGUzOWRjOTFiN2RmYjI4YWMy
OWI5ZWJjOTcuLjhkZjcyYTA5NTYwMTVhZWQ3ZTAwOTFlMjI5N2Q1MjFiZDcxMzNhYjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNzMgQEAKKzIwMjAtMDEtMjQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25A
YXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgQ29udGVudFdvcmxkcyBiZSBpZGVudGlmaWVkIGJ5
IGFuIE9iamVjdElkZW50aWZpZXIgaW5zdGVhZCBvZiBhIHVpbnQ2NF90CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY3ODQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvcjogTm8gYmVoYXZpb3Ig
Y2hhbmdlLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisKKyAgICAg
ICAgKiBTaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1eGls
aWFyeVByb2Nlc3M6OmluaXRpYWxpemUpOgorCisgICAgICAgICogU2hhcmVkL0NvbnRlbnRXb3Js
ZFNoYXJlZC5oOgorICAgICAgICAoV2ViS2l0OjpwYWdlQ29udGVudFdvcmxkSWRlbnRpZmllcik6
CisKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaDoKKworICAgICAgICAqIFNoYXJl
ZC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJVc2VyU2NyaXB0RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlclN0
eWxlU2hlZXREYXRhOjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTY3JpcHRNZXNzYWdl
SGFuZGxlckRhdGE6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlVzZXJDb250ZW50Q29u
dHJvbGxlckRhdGFUeXBlcy5oOgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElDb250ZW50
V29ybGQuY3BwOgorICAgICAgICAoQVBJOjpDb250ZW50V29ybGQ6OnBhZ2VDb250ZW50V29ybGQp
OgorICAgICAgICAoQVBJOjpDb250ZW50V29ybGQ6OmRlZmF1bHRDbGllbnRXb3JsZCk6CisgICAg
ICAgIChBUEk6OkNvbnRlbnRXb3JsZDo6Q29udGVudFdvcmxkKToKKyAgICAgICAgKEFQSTo6Q29u
dGVudFdvcmxkQmFzZTo6Z2VuZXJhdGVJZGVudGlmaWVyKTogRGVsZXRlZC4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFdvcmxkLmg6CisgICAgICAgIChBUEk6OkNvbnRlbnRX
b3JsZEJhc2U6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoQVBJOjpDb250ZW50V29ybGRC
YXNlOjp3b3JsZERhdGEgY29uc3QpOgorICAgICAgICAoQVBJOjpDb250ZW50V29ybGRCYXNlOjpD
b250ZW50V29ybGRCYXNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250ZW50
V29ybGQuY3BwOgorICAgICAgICAoQVBJOjpVc2VyQ29udGVudFdvcmxkOjpVc2VyQ29udGVudFdv
cmxkKToKKworICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENv
bnRyb2xsZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJv
bGxlclByb3h5OjpyZW1vdmVVc2VyQ29udGVudFdvcmxkVXNlcyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpyZW1vdmVBbGxVc2VyU2NyaXB0cyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpyZW1vdmVBbGxV
c2VyU3R5bGVTaGVldHMpOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJV
c2VyQ29udGVudENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0Ojp3b3JsZE1hcCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6d29ybGRGb3JJZGVudGlm
aWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjphZGRVc2Vy
Q29udGVudFdvcmxkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVy
OjphZGRVc2VyQ29udGVudFdvcmxkcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50
Q29udHJvbGxlcjo6cmVtb3ZlVXNlckNvbnRlbnRXb3JsZHMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OmFkZFVzZXJTY3JpcHRzKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVVc2VyU2NyaXB0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVBbGxVc2VyU2NyaXB0cyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6YWRkVXNlclN0eWxl
U2hlZXRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1v
dmVVc2VyU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJv
bGxlcjo6cmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyOjphZGRVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXJzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVVc2VyU2NyaXB0TWVz
c2FnZUhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6
OnJlbW92ZUFsbFVzZXJTY3JpcHRNZXNzYWdlSGFuZGxlcnMpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIubWVzc2FnZXMuaW46
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OnJ1bkphdmFTY3JpcHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnJ1bkphdmFTY3JpcHRJbkZyYW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluOgorCiAyMDIwLTAxLTIyICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNv
bT4KIAogICAgICAgICBGaXggU0RLIGF2YWlsYWJpbGl0eSBtYWNyb3MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL09iamVjdElkZW50aWZpZXIuaCBiL1NvdXJjZS9XVEYvd3RmL09iamVjdElk
ZW50aWZpZXIuaAppbmRleCBmNzNjMDRlNDU3YzIyNzM0ZTdiMWUyMTAyZjU0NTVkNzliNTkyYzlm
Li5jMWRkNDNlODBlZDZlYTc0ZTRiM2E4ZTI3NDY2OTljMmZiZjEzYzJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9PYmplY3RJZGVudGlmaWVyLmgKKysrIGIvU291cmNlL1dURi93dGYvT2Jq
ZWN0SWRlbnRpZmllci5oCkBAIC00NCwxNCArNDQsMjEgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
Y2xhc3MgT2JqZWN0SWRlbnRpZmllciA6IHByaXZhdGUgT2JqZWN0SWRlbnRpZmllckJhc2Ugewog
cHVibGljOgogICAgIHN0YXRpYyBPYmplY3RJZGVudGlmaWVyIGdlbmVyYXRlKCkKICAgICB7Cisg
ICAgICAgIFJFTEVBU0VfQVNTRVJUKCFtX2dlbmVyYXRpb25Qcm90ZWN0ZWQpOwogICAgICAgICBy
ZXR1cm4gT2JqZWN0SWRlbnRpZmllciB7IGdlbmVyYXRlSWRlbnRpZmllckludGVybmFsKCkgfTsK
ICAgICB9CiAKICAgICBzdGF0aWMgT2JqZWN0SWRlbnRpZmllciBnZW5lcmF0ZVRocmVhZFNhZmUo
KQogICAgIHsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoIW1fZ2VuZXJhdGlvblByb3RlY3RlZCk7
CiAgICAgICAgIHJldHVybiBPYmplY3RJZGVudGlmaWVyIHsgZ2VuZXJhdGVUaHJlYWRTYWZlSWRl
bnRpZmllckludGVybmFsKCkgfTsKICAgICB9CiAKKyAgICBzdGF0aWMgdm9pZCBlbmFibGVHZW5l
cmF0aW9uUHJvdGVjdGlvbigpCisgICAgeworICAgICAgICBtX2dlbmVyYXRpb25Qcm90ZWN0ZWQg
PSB0cnVlOworICAgIH0KKwogICAgIE9iamVjdElkZW50aWZpZXIoKSA9IGRlZmF1bHQ7CiAKICAg
ICBPYmplY3RJZGVudGlmaWVyKEhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpIDogbV9pZGVudGlm
aWVyKGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpKSB7IH0KQEAgLTEwMyw2ICsxMTAsNyBAQCBwcml2
YXRlOgogICAgIH0KIAogICAgIHVpbnQ2NF90IG1faWRlbnRpZmllciB7IDAgfTsKKyAgICBpbmxp
bmUgc3RhdGljIGJvb2wgbV9nZW5lcmF0aW9uUHJvdGVjdGVkIHsgZmFsc2UgfTsKIH07CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBPYmplY3RJZGVudGlmaWVyPFQ+IG1ha2VPYmplY3RJ
ZGVudGlmaWVyKHVpbnQ2NF90IGlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weQppbmRleCBkYzllMTRmNWFjZGY2OTg0MTEzN2JmY2IxMGU0ZTY0NmNjNDJl
YTI2Li5mODdiNDRhZWFiNWMzOWM3YzdlM2JjN2U1MWY0YzJkMzM4ODhlZmQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTIxOSw2ICsyMTksNyBAQCBkZWYg
dHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViQ29y
ZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OkFjdGl2
aXR5U3RhdGVDaGFuZ2VJRCcsCiAgICAgICAgICdXZWJLaXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVySWRlbnRpZmllcicsCisgICAgICAgICdXZWJLaXQ6OkNvbnRlbnRXb3JsZElkZW50
aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQnLAogICAgICAg
ICAnV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyJywKICAgICAgICAg
J1dlYktpdDo6TWVkaWFSZWNvcmRlcklkZW50aWZpZXInLApAQCAtNjA1LDYgKzYwNiw3IEBAIGRl
ZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6U2VsZWN0aW9uUmVj
dCc6IFsnIkVkaXRvclN0YXRlLmgiJ10sCiAgICAgICAgICdXZWJLaXQ6OkFjdGl2aXR5U3RhdGVD
aGFuZ2VJRCc6IFsnIkRyYXdpbmdBcmVhSW5mby5oIiddLAogICAgICAgICAnV2ViS2l0OjpCYWNr
Rm9yd2FyZExpc3RJdGVtU3RhdGUnOiBbJyJTZXNzaW9uU3RhdGUuaCInXSwKKyAgICAgICAgJ1dl
YktpdDo6Q29udGVudFdvcmxkSWRlbnRpZmllcicgOiBbJyJDb250ZW50V29ybGRTaGFyZWQuaCIn
XSwKICAgICAgICAgJ1dlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEJzogWyciTGF5ZXJIb3N0
aW5nQ29udGV4dC5oIiddLAogICAgICAgICAnV2ViS2l0OjpMYXllckhvc3RpbmdNb2RlJzogWyci
TGF5ZXJUcmVlQ29udGV4dC5oIiddLAogICAgICAgICAnV2ViS2l0OjpQYWdlU3RhdGUnOiBbJyJT
ZXNzaW9uU3RhdGUuaCInXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGls
aWFyeVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5j
cHAKaW5kZXggYjFkNDM2Y2FmMTZkNDYzYWU1ZjA1MmJjYjI1OTUzZTdmODFiNjAzNC4uYzJjNDgw
ZThjZDdiN2FiMWQ3MmM1YWVjNWVjMmIxYTRhNGYwZmI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJBdXhpbGlhcnlQcm9jZXNzLmgiCiAKKyNpbmNsdWRlICJDb250ZW50
V29ybGRTaGFyZWQuaCIKICNpbmNsdWRlICJEZXBlbmRlbmN5UHJvY2Vzc0Fzc2VydGlvbi5oIgog
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJh
bWV0ZXJzLmgiCkBAIC03OCw4ICs3OSw5IEBAIHZvaWQgQXV4aWxpYXJ5UHJvY2Vzczo6aW5pdGlh
bGl6ZShjb25zdCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzCiAKICAg
ICBpbml0aWFsaXplUHJvY2Vzc05hbWUocGFyYW1ldGVycyk7CiAKLSAgICAvLyBJbiBXZWJLaXQy
LCBvbmx5IHRoZSBVSSBwcm9jZXNzIHNob3VsZCBldmVyIGJlIGdlbmVyYXRpbmcgbm9uLWRlZmF1
bHQgUEFMOjpTZXNzaW9uSURzLgorICAgIC8vIEluIFdlYktpdDIsIG9ubHkgdGhlIFVJIHByb2Nl
c3Mgc2hvdWxkIGV2ZXIgYmUgZ2VuZXJhdGluZyBjZXJ0YWluIGlkZW50aWZpZXJzLgogICAgIFBB
TDo6U2Vzc2lvbklEOjplbmFibGVHZW5lcmF0aW9uUHJvdGVjdGlvbigpOworICAgIENvbnRlbnRX
b3JsZElkZW50aWZpZXI6OmVuYWJsZUdlbmVyYXRpb25Qcm90ZWN0aW9uKCk7CiAKICAgICBtX2Nv
bm5lY3Rpb24gPSBJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZUNsaWVudENvbm5lY3Rpb24ocGFyYW1l
dGVycy5jb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMpOwogICAgIGluaXRpYWxpemVDb25uZWN0
aW9uKG1fY29ubmVjdGlvbi5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Db250ZW50V29ybGRTaGFyZWQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRlbnRXb3Js
ZFNoYXJlZC5oCmluZGV4IDFkYWQ2ZTE4NTBjMDhiMzRmMTJkNGE2OGE1MDlkODZjODNjZjBhNTAu
LmY0M2QyZjJjYmM3NDdmMjdhMGZkZDgyYjBhM2MxMzEyYjgxMjJiNmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRlbnRXb3JsZFNoYXJlZC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0NvbnRlbnRXb3JsZFNoYXJlZC5oCkBAIC0yNSw4ICsyNSwxNyBAQAogCiAjcHJh
Z21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCi1zdGF0aWMgY29uc3QgdWludDY0X3QgcGFnZUNvbnRlbnRXb3JsZElkZW50
aWZpZXIgPSAxOworZW51bSBDb250ZW50V29ybGRJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBD
b250ZW50V29ybGRJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxDb250ZW50V29ybGRJZGVu
dGlmaWVyVHlwZT47CisKK2lubGluZSBDb250ZW50V29ybGRJZGVudGlmaWVyIHBhZ2VDb250ZW50
V29ybGRJZGVudGlmaWVyKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q29udGVudFdv
cmxkSWRlbnRpZmllcj4gaWRlbnRpZmllcihtYWtlT2JqZWN0SWRlbnRpZmllcjxDb250ZW50V29y
bGRJZGVudGlmaWVyVHlwZT4oMSkpOworICAgIHJldHVybiBpZGVudGlmaWVyOworfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggNzBjM2VhMWFiNTJkYWMyN2NkMWVmYTNkZGQ5MmZm
NWZhNTRlZmI5ZC4uNmJmYTk5ZjIxM2ZjMzkwNmQ0MmMzOWRjMzY4OGRkOWVlMWI3NjUzZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5j
cHAKQEAgLTM3MCw3ICszNzAsNyBAQCBPcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
PiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZAogICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5lbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2Vz
RW5hYmxlZCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBPcHRpb25hbDxW
ZWN0b3I8c3RkOjpwYWlyPHVpbnQ2NF90LCBTdHJpbmc+Pj4gdXNlckNvbnRlbnRXb3JsZHM7Cisg
ICAgT3B0aW9uYWw8VmVjdG9yPHN0ZDo6cGFpcjxDb250ZW50V29ybGRJZGVudGlmaWVyLCBTdHJp
bmc+Pj4gdXNlckNvbnRlbnRXb3JsZHM7CiAgICAgZGVjb2RlciA+PiB1c2VyQ29udGVudFdvcmxk
czsKICAgICBpZiAoIXVzZXJDb250ZW50V29ybGRzKQogICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cy5oCmluZGV4IDc0MTM3NWUyYmI1ZTY4YzlhNWZlODY1NWYxODU1MWQ2NzdmNjI5ZmEuLmE4NTU1
MTQ3MWFhNWI1NjA1OTRjN2IzYzBkZmJkZDRmYjk2NGVkYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTE5Myw3ICsxOTMsNyBA
QCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgYm9vbCBlbnVtZXJhdGlu
Z0FsbE5ldHdvcmtJbnRlcmZhY2VzRW5hYmxlZCB7IGZhbHNlIH07CiAKICAgICAvLyBVc2VyQ29u
dGVudENvbnRyb2xsZXIgbWVtYmVycwotICAgIFZlY3RvcjxzdGQ6OnBhaXI8dWludDY0X3QsIFN0
cmluZz4+IHVzZXJDb250ZW50V29ybGRzOworICAgIFZlY3RvcjxzdGQ6OnBhaXI8Q29udGVudFdv
cmxkSWRlbnRpZmllciwgU3RyaW5nPj4gdXNlckNvbnRlbnRXb3JsZHM7CiAgICAgVmVjdG9yPFdl
YlVzZXJTY3JpcHREYXRhPiB1c2VyU2NyaXB0czsKICAgICBWZWN0b3I8V2ViVXNlclN0eWxlU2hl
ZXREYXRhPiB1c2VyU3R5bGVTaGVldHM7CiAgICAgVmVjdG9yPFdlYlNjcmlwdE1lc3NhZ2VIYW5k
bGVyRGF0YT4gbWVzc2FnZUhhbmRsZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5jcHAKaW5kZXggZGI3ZDMz
YzhkNTViYzk3YjkzMWEwYWY0NTg4NDlkMjQyNTExZmQ5Zi4uMDZiYTZjZjc2YjA0ZDlkNjU1NGU0
NWYzMTMxZWRlZjQyMmJlNDdmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuY3BwCkBAIC00NCw3ICs0NCw3
IEBAIE9wdGlvbmFsPFdlYlVzZXJTY3JpcHREYXRhPiBXZWJVc2VyU2NyaXB0RGF0YTo6ZGVjb2Rl
KElQQzo6RGVjb2RlciYgZGVjb2RlcikKICAgICBpZiAoIWlkZW50aWZpZXIpCiAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CiAgICAgCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IHdvcmxkSWRl
bnRpZmllcjsKKyAgICBPcHRpb25hbDxDb250ZW50V29ybGRJZGVudGlmaWVyPiB3b3JsZElkZW50
aWZpZXI7CiAgICAgZGVjb2RlciA+PiB3b3JsZElkZW50aWZpZXI7CiAgICAgaWYgKCF3b3JsZElk
ZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CkBAIC03MCw3ICs3MCw3IEBA
IE9wdGlvbmFsPFdlYlVzZXJTdHlsZVNoZWV0RGF0YT4gV2ViVXNlclN0eWxlU2hlZXREYXRhOjpk
ZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvCiAgICAgaWYgKCFpZGVudGlmaWVyKQogICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiB3b3JsZElk
ZW50aWZpZXI7CisgICAgT3B0aW9uYWw8Q29udGVudFdvcmxkSWRlbnRpZmllcj4gd29ybGRJZGVu
dGlmaWVyOwogICAgIGRlY29kZXIgPj4gd29ybGRJZGVudGlmaWVyOwogICAgIGlmICghd29ybGRJ
ZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwpAQCAtOTcsNyArOTcsNyBA
QCBPcHRpb25hbDxXZWJTY3JpcHRNZXNzYWdlSGFuZGxlckRhdGE+IFdlYlNjcmlwdE1lc3NhZ2VI
YW5kbGVyRGF0YTo6ZGVjb2RlKElQQzo6RAogICAgIGlmICghaWRlbnRpZmllcikKICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gd29ybGRJ
ZGVudGlmaWVyOworICAgIE9wdGlvbmFsPENvbnRlbnRXb3JsZElkZW50aWZpZXI+IHdvcmxkSWRl
bnRpZmllcjsKICAgICBkZWNvZGVyID4+IHdvcmxkSWRlbnRpZmllcjsKICAgICBpZiAoIXdvcmxk
SWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmgK
aW5kZXggNWNkYWU1NTJlZjE4ZDQ4OTM4NzFlNGNiNjQwMTdmNWU3YTQwNjlhOS4uZDE1NGYyMGE5
MWMxODBkZTI0MGZiNTQ4OGQ0ZDc4N2MyMTU1NTNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmgKQEAgLTI1
LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJDb250ZW50V29ybGRTaGFy
ZWQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJTY3JpcHQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1VzZXJTdHlsZVNoZWV0Lmg+CiAKQEAgLTQwLDcgKzQxLDcgQEAgc3RydWN0IFdlYlVzZXJTY3Jp
cHREYXRhIHsKICAgICBzdGF0aWMgT3B0aW9uYWw8V2ViVXNlclNjcmlwdERhdGE+IGRlY29kZShJ
UEM6OkRlY29kZXImKTsKIAogICAgIHVpbnQ2NF90IGlkZW50aWZpZXI7Ci0gICAgdWludDY0X3Qg
d29ybGRJZGVudGlmaWVyOworICAgIENvbnRlbnRXb3JsZElkZW50aWZpZXIgd29ybGRJZGVudGlm
aWVyOwogICAgIFdlYkNvcmU6OlVzZXJTY3JpcHQgdXNlclNjcmlwdDsKIH07CiAKQEAgLTQ5LDcg
KzUwLDcgQEAgc3RydWN0IFdlYlVzZXJTdHlsZVNoZWV0RGF0YSB7CiAgICAgc3RhdGljIE9wdGlv
bmFsPFdlYlVzZXJTdHlsZVNoZWV0RGF0YT4gZGVjb2RlKElQQzo6RGVjb2RlciYpOwogCiAgICAg
dWludDY0X3QgaWRlbnRpZmllcjsKLSAgICB1aW50NjRfdCB3b3JsZElkZW50aWZpZXI7CisgICAg
Q29udGVudFdvcmxkSWRlbnRpZmllciB3b3JsZElkZW50aWZpZXI7CiAgICAgV2ViQ29yZTo6VXNl
clN0eWxlU2hlZXQgdXNlclN0eWxlU2hlZXQ7CiB9OwogCkBAIC01OCw3ICs1OSw3IEBAIHN0cnVj
dCBXZWJTY3JpcHRNZXNzYWdlSGFuZGxlckRhdGEgewogICAgIHN0YXRpYyBPcHRpb25hbDxXZWJT
Y3JpcHRNZXNzYWdlSGFuZGxlckRhdGE+IGRlY29kZShJUEM6OkRlY29kZXImKTsKIAogICAgIHVp
bnQ2NF90IGlkZW50aWZpZXI7Ci0gICAgdWludDY0X3Qgd29ybGRJZGVudGlmaWVyOworICAgIENv
bnRlbnRXb3JsZElkZW50aWZpZXIgd29ybGRJZGVudGlmaWVyOwogICAgIFN0cmluZyBuYW1lOwog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRX
b3JsZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFdvcmxkLmNw
cAppbmRleCA0MWI2MDM3NTk0NTFiYmMxZTIyNjQ0NDE4NGViNmRjNDQwYzM5OWM4Li5lZjg4Y2Qw
ZDljYmE3NDhiMzJkNDk4OWFiNzYzYjcwNDFjNGM4OTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFdvcmxkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFdvcmxkLmNwcApAQCAtMzMsMTMgKzMzLDYgQEAKIAog
bmFtZXNwYWNlIEFQSSB7CiAKLXVpbnQ2NF90IENvbnRlbnRXb3JsZEJhc2U6OmdlbmVyYXRlSWRl
bnRpZmllcigpCi17Ci0gICAgc3RhdGljIHVpbnQ2NF90IGlkZW50aWZpZXIgPSBXZWJLaXQ6OnBh
Z2VDb250ZW50V29ybGRJZGVudGlmaWVyOwotCi0gICAgcmV0dXJuICsraWRlbnRpZmllcjsKLX0K
LQogc3RhdGljIEhhc2hNYXA8V1RGOjpTdHJpbmcsIENvbnRlbnRXb3JsZCo+JiBzaGFyZWRXb3Js
ZE1hcCgpCiB7CiAgICAgc3RhdGljIEhhc2hNYXA8V1RGOjpTdHJpbmcsIENvbnRlbnRXb3JsZCo+
KiBzaGFyZWRNYXAgPSBuZXcgSGFzaE1hcDxXVEY6OlN0cmluZywgQ29udGVudFdvcmxkKj47CkBA
IC01OSwxMyArNTIsMjMgQEAgUmVmPENvbnRlbnRXb3JsZD4gQ29udGVudFdvcmxkOjpzaGFyZWRX
b3JsZFdpdGhOYW1lKGNvbnN0IFdURjo6U3RyaW5nJiBuYW1lKQogCiBDb250ZW50V29ybGQmIENv
bnRlbnRXb3JsZDo6cGFnZUNvbnRlbnRXb3JsZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFJlZlB0cjxDb250ZW50V29ybGQ+PiB3b3JsZChhZG9wdFJlZihuZXcgQ29udGVudFdvcmxk
KFdlYktpdDo6cGFnZUNvbnRlbnRXb3JsZElkZW50aWZpZXIpKSk7CisgICAgc3RhdGljIExhenlO
ZXZlckRlc3Ryb3llZDxSZWZQdHI8Q29udGVudFdvcmxkPj4gd29ybGQ7CisgICAgc3RhdGljIHN0
ZDo6b25jZV9mbGFnIG9uY2U7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZSwgW10geworICAgICAg
ICAvLyBNYWtlIHN1cmUgdGhlIGN1cnJlbnQgZ2VuZXJhdGVkIGNvbnRlbnQgd29ybGQgaWRlbnRp
ZmllciBpcyBncmVhdGVyIHRoYW4gb3VyIGludGVnZXIgaWRlbnRpZmllciBmb3IgdGhlIHBhZ2VD
b250ZW50V29ybGQuCisgICAgICAgIC8vIFdlIGNhbiBkbyB0aGlzIGJ5IGdlbmVyYXRpbmcgb25l
IGFuZCBqdXN0IHRocm93aW5nIGl0IGF3YXkuCisgICAgICAgIGF1dG8gaWRlbnRpZmllciA9IFdl
YktpdDo6Q29udGVudFdvcmxkSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKKyAgICAgICAgQVNTRVJU
X1VOVVNFRChpZGVudGlmaWVyLCBpZGVudGlmaWVyLnRvVUludDY0KCkgPj0gV2ViS2l0OjpwYWdl
Q29udGVudFdvcmxkSWRlbnRpZmllcigpLnRvVUludDY0KCkpOworCisgICAgICAgIHdvcmxkLmNv
bnN0cnVjdChhZG9wdFJlZihuZXcgQ29udGVudFdvcmxkKFdlYktpdDo6cGFnZUNvbnRlbnRXb3Js
ZElkZW50aWZpZXIoKSkpKTsKKyAgICB9KTsKKwogICAgIHJldHVybiAqd29ybGQuZ2V0KCk7CiB9
CiAKIENvbnRlbnRXb3JsZCYgQ29udGVudFdvcmxkOjpkZWZhdWx0Q2xpZW50V29ybGQoKQogewot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZWZQdHI8Q29udGVudFdvcmxkPj4gd29ybGQoYWRv
cHRSZWYobmV3IENvbnRlbnRXb3JsZChnZW5lcmF0ZUlkZW50aWZpZXIoKSkpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8UmVmUHRyPENvbnRlbnRXb3JsZD4+IHdvcmxkKGFkb3B0UmVmKG5l
dyBDb250ZW50V29ybGQoV1RGOjpTdHJpbmcgeyB9KSkpOwogICAgIHJldHVybiAqd29ybGQuZ2V0
KCk7CiB9CiAKQEAgLTc0LDcgKzc3LDcgQEAgQ29udGVudFdvcmxkOjpDb250ZW50V29ybGQoY29u
c3QgV1RGOjpTdHJpbmcmIG5hbWUpCiB7CiB9CiAKLUNvbnRlbnRXb3JsZDo6Q29udGVudFdvcmxk
KHVpbnQ2NF90IGlkZW50aWZpZXIpCitDb250ZW50V29ybGQ6OkNvbnRlbnRXb3JsZChXZWJLaXQ6
OkNvbnRlbnRXb3JsZElkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICA6IENvbnRlbnRXb3JsZEJh
c2UoaWRlbnRpZmllcikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElDb250ZW50V29ybGQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElD
b250ZW50V29ybGQuaAppbmRleCBiMzRmMTI5YzRjYmJlYmM1ZTU2MmEzYjlhZDlmMDJiMjE5ZGI3
ODhhLi41YjVkMmEzZWQ2NTNkZDc1NWFmODhlNjhjYmViZDU4ZmY1NDk1OTAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFdvcmxkLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRXb3JsZC5oCkBAIC0yNiw2ICsyNiw3
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIkNv
bnRlbnRXb3JsZFNoYXJlZC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBu
YW1lc3BhY2UgQVBJIHsKQEAgLTM0LDMwICszNSwyNyBAQCBjbGFzcyBDb250ZW50V29ybGRCYXNl
IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Db250ZW50V29ybGRCYXNlKCkgPSBkZWZhdWx0Owog
Ci0gICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsg
fQorICAgIFdlYktpdDo6Q29udGVudFdvcmxkSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAgICAgY29uc3QgV1RGOjpTdHJpbmcmIG5hbWUoKSBj
b25zdCB7IHJldHVybiBtX25hbWU7IH0KLSAgICBzdGQ6OnBhaXI8dWludDY0X3QsIFdURjo6U3Ry
aW5nPiB3b3JsZERhdGEoKSBjb25zdCB7IHJldHVybiB7IGlkZW50aWZpZXIoKSwgbmFtZSgpIH07
IH0KKyAgICBzdGQ6OnBhaXI8V2ViS2l0OjpDb250ZW50V29ybGRJZGVudGlmaWVyLCBXVEY6OlN0
cmluZz4gd29ybGREYXRhKCkgY29uc3QgeyByZXR1cm4geyBtX2lkZW50aWZpZXIsIG1fbmFtZSB9
OyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVmKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBkZXJlZigpIGNvbnN0ID0gMDsKIAotICAgIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUlkZW50
aWZpZXIoKTsKLQogcHJvdGVjdGVkOgogICAgIENvbnRlbnRXb3JsZEJhc2UoY29uc3QgV1RGOjpT
dHJpbmcmIG5hbWUpCi0gICAgICAgIDogbV9pZGVudGlmaWVyKGdlbmVyYXRlSWRlbnRpZmllcigp
KQorICAgICAgICA6IG1faWRlbnRpZmllcihXZWJLaXQ6OkNvbnRlbnRXb3JsZElkZW50aWZpZXI6
OmdlbmVyYXRlKCkpCiAgICAgICAgICwgbV9uYW1lKG5hbWUpCiAgICAgewogICAgIH0KIAotICAg
IENvbnRlbnRXb3JsZEJhc2UodWludDY0X3QgaWRlbnRpZmllcikKKyAgICBDb250ZW50V29ybGRC
YXNlKFdlYktpdDo6Q29udGVudFdvcmxkSWRlbnRpZmllciBpZGVudGlmaWVyKQogICAgICAgICA6
IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgIHsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAg
Ly8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGFuIE9iamVjdElkZW50aWZpZXIgb25jZSB3ZSBjYW4g
Z2V0IGFsbCBTY3JpcHRXb3JsZCByZWxhdGVkIGNsYXNzZXMgdG8gdXNlIE9iamVjdElkZW50aWZp
ZXIuCi0gICAgdWludDY0X3QgbV9pZGVudGlmaWVyOworICAgIFdlYktpdDo6Q29udGVudFdvcmxk
SWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgV1RGOjpTdHJpbmcgbV9uYW1lOwogfTsKIApA
QCAtNzQsNyArNzIsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQ29udGVu
dFdvcmxkKGNvbnN0IFdURjo6U3RyaW5nJik7Ci0gICAgZXhwbGljaXQgQ29udGVudFdvcmxkKHVp
bnQ2NF90IGlkZW50aWZpZXIpOworICAgIGV4cGxpY2l0IENvbnRlbnRXb3JsZChXZWJLaXQ6OkNv
bnRlbnRXb3JsZElkZW50aWZpZXIpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRXb3JsZC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRXb3JsZC5jcHAKaW5k
ZXggZGI5ZDAwMzhiNTIwMmEyN2YyYWM0YmE4M2I0MmIwMmU0NDdhYjI0Mi4uNjU5OTYzN2NmMGI3
MjAwOTU1NzY3NGRjMjY0NDgzOGExYzIyNjMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVVzZXJDb250ZW50V29ybGQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElVc2VyQ29udGVudFdvcmxkLmNwcApAQCAtNDcsNyArNDcsNyBAQCBV
c2VyQ29udGVudFdvcmxkOjpVc2VyQ29udGVudFdvcmxkKGNvbnN0IFdURjo6U3RyaW5nJiBuYW1l
KQogfQogCiBVc2VyQ29udGVudFdvcmxkOjpVc2VyQ29udGVudFdvcmxkKEZvck5vcm1hbFdvcmxk
T25seSkKLSAgICA6IENvbnRlbnRXb3JsZEJhc2UoV2ViS2l0OjpwYWdlQ29udGVudFdvcmxkSWRl
bnRpZmllcikKKyAgICA6IENvbnRlbnRXb3JsZEJhc2UoV2ViS2l0OjpwYWdlQ29udGVudFdvcmxk
SWRlbnRpZmllcigpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94
eS5jcHAKaW5kZXggMGM5OTNiYjc4YjFmOGUwYzc5OTEwODI5MGMwNzE0ZTEwYzNmZDcxNy4uOTg3
YTk4NjYxOGY5MGIyMWY3OWU5ZmRiYzBlYTAyNDFmYmVmZmE4MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJD
b250ZW50Q29udHJvbGxlclByb3h5LmNwcApAQCAtMTg0LDcgKzE4NCw3IEBAIHZvaWQgV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92ZVVzZXJDb250ZW50V29ybGRVc2VzKEFQSTo6
VXNlckNvbnRlbnRXCiAKIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92
ZVVzZXJDb250ZW50V29ybGRVc2VzKEhhc2hDb3VudGVkU2V0PFJlZlB0cjxBUEk6OlVzZXJDb250
ZW50V29ybGQ+PiYgd29ybGRzKQogewotICAgIFZlY3Rvcjx1aW50NjRfdD4gd29ybGRzVG9SZW1v
dmU7CisgICAgVmVjdG9yPENvbnRlbnRXb3JsZElkZW50aWZpZXI+IHdvcmxkc1RvUmVtb3ZlOwog
ICAgIGZvciAoYXV0byYgd29ybGRVc2VQYWlyIDogd29ybGRzKSB7CiAgICAgICAgIGlmIChzaG91
bGRTZW5kUmVtb3ZlVXNlckNvbnRlbnRXb3JsZHNNZXNzYWdlKCp3b3JsZFVzZVBhaXIua2V5Lmdl
dCgpLCB3b3JsZFVzZVBhaXIudmFsdWUpKQogICAgICAgICAgICAgd29ybGRzVG9SZW1vdmUuYXBw
ZW5kKHdvcmxkVXNlUGFpci5rZXktPmlkZW50aWZpZXIoKSk7CkBAIC0yMzYsNyArMjM2LDcgQEAg
dm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6cmVtb3ZlQWxsVXNlclNjcmlwdHMo
KQogICAgIGZvciAoYXV0byB1c2VyU2NyaXB0IDogbV91c2VyU2NyaXB0cy0+ZWxlbWVudHNPZlR5
cGU8QVBJOjpVc2VyU2NyaXB0PigpKQogICAgICAgICB3b3JsZHMuYWRkKGNvbnN0X2Nhc3Q8QVBJ
OjpVc2VyQ29udGVudFdvcmxkKj4oJnVzZXJTY3JpcHQtPnVzZXJDb250ZW50V29ybGQoKSkpOwog
Ci0gICAgVmVjdG9yPHVpbnQ2NF90PiB3b3JsZElkZW50aWZpZXJzOworICAgIFZlY3RvcjxDb250
ZW50V29ybGRJZGVudGlmaWVyPiB3b3JsZElkZW50aWZpZXJzOwogICAgIHdvcmxkSWRlbnRpZmll
cnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh3b3JsZHMuc2l6ZSgpKTsKICAgICBmb3IgKGNvbnN0
IGF1dG8mIHdvcmxkQ291bnRQYWlyIDogd29ybGRzKQogICAgICAgICB3b3JsZElkZW50aWZpZXJz
LnVuY2hlY2tlZEFwcGVuZCh3b3JsZENvdW50UGFpci5rZXktPmlkZW50aWZpZXIoKSk7CkBAIC0y
OTEsNyArMjkxLDcgQEAgdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6cmVtb3Zl
QWxsVXNlclN0eWxlU2hlZXRzKCkKICAgICBmb3IgKGF1dG8gdXNlclN0eWxlU2hlZXQgOiBtX3Vz
ZXJTdHlsZVNoZWV0cy0+ZWxlbWVudHNPZlR5cGU8QVBJOjpVc2VyU3R5bGVTaGVldD4oKSkKICAg
ICAgICAgd29ybGRzLmFkZChjb25zdF9jYXN0PEFQSTo6VXNlckNvbnRlbnRXb3JsZCo+KCZ1c2Vy
U3R5bGVTaGVldC0+dXNlckNvbnRlbnRXb3JsZCgpKSk7CiAKLSAgICBWZWN0b3I8dWludDY0X3Q+
IHdvcmxkSWRlbnRpZmllcnM7CisgICAgVmVjdG9yPENvbnRlbnRXb3JsZElkZW50aWZpZXI+IHdv
cmxkSWRlbnRpZmllcnM7CiAgICAgd29ybGRJZGVudGlmaWVycy5yZXNlcnZlSW5pdGlhbENhcGFj
aXR5KHdvcmxkcy5zaXplKCkpOwogICAgIGZvciAoY29uc3QgYXV0byYgd29ybGRDb3VudFBhaXIg
OiB3b3JsZHMpCiAgICAgICAgIHdvcmxkSWRlbnRpZmllcnMudW5jaGVja2VkQXBwZW5kKHdvcmxk
Q291bnRQYWlyLmtleS0+aWRlbnRpZmllcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxl
ci5jcHAKaW5kZXggMjc2ZjgxYjNlZGFhOTgzMDhhNDhhNzUyNTk1OTlkMzQwODUyNTRiMi4uNjky
OTRhZDk1ZWJjNmY1NTE3YjEwMjk0MjcwMzVhM2FjMTYyZjMxNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250
ZW50Q29udHJvbGxlci5jcHAKQEAgLTU5LDExICs1OSwxMSBAQCBzdGF0aWMgSGFzaE1hcDxVc2Vy
Q29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyLCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXIqPiYg
dXNlcgogICAgIHJldHVybiB1c2VyQ29udGVudENvbnRyb2xsZXJzOwogfQogCi10eXBlZGVmIEhh
c2hNYXA8dWludDY0X3QsIHN0ZDo6cGFpcjxSZWZQdHI8SW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3Js
ZD4sIHVuc2lnbmVkPj4gV29ybGRNYXA7Cit0eXBlZGVmIEhhc2hNYXA8Q29udGVudFdvcmxkSWRl
bnRpZmllciwgc3RkOjpwYWlyPFJlZlB0cjxJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkPiwgdW5z
aWduZWQ+PiBXb3JsZE1hcDsKIAogc3RhdGljIFdvcmxkTWFwJiB3b3JsZE1hcCgpCiB7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPFdvcmxkTWFwPiBtYXAoc3RkOjppbml0aWFsaXplcl9saXN0
PFdvcmxkTWFwOjpLZXlWYWx1ZVBhaXJUeXBlPiB7IHsgV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
OjppZGVudGlmaWVyRm9yTm9ybWFsV29ybGQoKSwgc3RkOjptYWtlX3BhaXIoJkluamVjdGVkQnVu
ZGxlU2NyaXB0V29ybGQ6Om5vcm1hbFdvcmxkKCksIDEpIH0gfSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFdvcmxkTWFwPiBtYXAoc3RkOjppbml0aWFsaXplcl9saXN0PFdvcmxkTWFwOjpL
ZXlWYWx1ZVBhaXJUeXBlPiB7IHsgcGFnZUNvbnRlbnRXb3JsZElkZW50aWZpZXIoKSwgc3RkOjpt
YWtlX3BhaXIoJkluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQ6Om5vcm1hbFdvcmxkKCksIDEpIH0g
fSk7CiAKICAgICByZXR1cm4gbWFwOwogfQpAQCAtOTUsMTYgKzk1LDE2IEBAIFdlYlVzZXJDb250
ZW50Q29udHJvbGxlcjo6fldlYlVzZXJDb250ZW50Q29udHJvbGxlcigpCiAgICAgdXNlckNvbnRl
bnRDb250cm9sbGVycygpLnJlbW92ZShtX2lkZW50aWZpZXIpOwogfQogCi1JbmplY3RlZEJ1bmRs
ZVNjcmlwdFdvcmxkKiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OndvcmxkRm9ySWRlbnRpZmll
cih1aW50NjRfdCBpZGVudGlmaWVyKQorSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCogV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyOjp3b3JsZEZvcklkZW50aWZpZXIoQ29udGVudFdvcmxkSWRlbnRp
ZmllciBpZGVudGlmaWVyKQogewogICAgIGF1dG8gaXRlcmF0b3IgPSB3b3JsZE1hcCgpLmZpbmQo
aWRlbnRpZmllcik7CiAgICAgcmV0dXJuIGl0ZXJhdG9yID09IHdvcmxkTWFwKCkuZW5kKCkgPyBu
dWxscHRyIDogaXRlcmF0b3ItPnZhbHVlLmZpcnN0LmdldCgpOwogfQogCi12b2lkIFdlYlVzZXJD
b250ZW50Q29udHJvbGxlcjo6YWRkVXNlckNvbnRlbnRXb3JsZChjb25zdCBzdGQ6OnBhaXI8dWlu
dDY0X3QsIFN0cmluZz4mIHdvcmxkKQordm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OmFk
ZFVzZXJDb250ZW50V29ybGQoY29uc3Qgc3RkOjpwYWlyPENvbnRlbnRXb3JsZElkZW50aWZpZXIs
IFN0cmluZz4mIHdvcmxkKQogewogICAgIEFTU0VSVCh3b3JsZC5maXJzdCk7Ci0gICAgaWYgKHdv
cmxkLmZpcnN0ID09IHBhZ2VDb250ZW50V29ybGRJZGVudGlmaWVyKQorICAgIGlmICh3b3JsZC5m
aXJzdCA9PSBwYWdlQ29udGVudFdvcmxkSWRlbnRpZmllcigpKQogICAgICAgICByZXR1cm47CiAK
ICAgICB3b3JsZE1hcCgpLmVuc3VyZSh3b3JsZC5maXJzdCwgWyZdIHsKQEAgLTExMywyNyArMTEz
LDI3IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjphZGRVc2VyQ29udGVudFdvcmxk
KGNvbnN0IHN0ZDo6cGFpcjx1aW50NjRfdCwgU3RyCiAgICAgICAgIC8vIHVzZSB0aGUgZXhpc3Rp
bmcgd29ybGQgY3JlYXRlZCBieSB0aGUgd2ViIGV4dGVuc2lvbiBpZiBhbnkuIFRoZSB3b3JsZCBu
YW1lIGlzIHVzZWQKICAgICAgICAgLy8gYXMgdGhlIGlkZW50aWZpZXIuCiAgICAgICAgIGlmIChh
dXRvKiBleGlzdGluZ1dvcmxkID0gSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZDo6ZmluZCh3b3Js
ZC5zZWNvbmQpKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKFJlZjxJbmplY3Rl
ZEJ1bmRsZVNjcmlwdFdvcmxkPigqZXhpc3RpbmdXb3JsZCksIHBhZ2VDb250ZW50V29ybGRJZGVu
dGlmaWVyKTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihSZWY8SW5qZWN0ZWRC
dW5kbGVTY3JpcHRXb3JsZD4oKmV4aXN0aW5nV29ybGQpLCAxKTsKICNlbmRpZgotICAgICAgICBy
ZXR1cm4gc3RkOjptYWtlX3BhaXIoSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZDo6Y3JlYXRlKHdv
cmxkLnNlY29uZCksIHBhZ2VDb250ZW50V29ybGRJZGVudGlmaWVyKTsKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bWFrZV9wYWlyKEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQ6OmNyZWF0ZSh3b3JsZC5z
ZWNvbmQpLCAxKTsKICAgICB9KTsKIH0KIAotdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6
OmFkZFVzZXJDb250ZW50V29ybGRzKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8dWludDY0X3QsIFN0
cmluZz4+JiB3b3JsZHMpCit2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6YWRkVXNlckNv
bnRlbnRXb3JsZHMoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxDb250ZW50V29ybGRJZGVudGlmaWVy
LCBTdHJpbmc+PiYgd29ybGRzKQogewogICAgIGZvciAoYXV0byYgd29ybGQgOiB3b3JsZHMpCiAg
ICAgICAgIGFkZFVzZXJDb250ZW50V29ybGQod29ybGQpOwogfQogCi12b2lkIFdlYlVzZXJDb250
ZW50Q29udHJvbGxlcjo6cmVtb3ZlVXNlckNvbnRlbnRXb3JsZHMoY29uc3QgVmVjdG9yPHVpbnQ2
NF90PiYgd29ybGRJZGVudGlmaWVycykKK3ZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpy
ZW1vdmVVc2VyQ29udGVudFdvcmxkcyhjb25zdCBWZWN0b3I8Q29udGVudFdvcmxkSWRlbnRpZmll
cj4mIHdvcmxkSWRlbnRpZmllcnMpCiB7CiAgICAgZm9yIChhdXRvJiB3b3JsZElkZW50aWZpZXIg
OiB3b3JsZElkZW50aWZpZXJzKSB7CiAgICAgICAgIEFTU0VSVCh3b3JsZElkZW50aWZpZXIpOwot
ICAgICAgICBBU1NFUlQod29ybGRJZGVudGlmaWVyICE9IDEpOworICAgICAgICBBU1NFUlQod29y
bGRJZGVudGlmaWVyICE9IHBhZ2VDb250ZW50V29ybGRJZGVudGlmaWVyKCkpOwogCiAgICAgICAg
IGF1dG8gaXQgPSB3b3JsZE1hcCgpLmZpbmQod29ybGRJZGVudGlmaWVyKTsKICAgICAgICAgaWYg
KGl0ID09IHdvcmxkTWFwKCkuZW5kKCkpIHsKLSAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiVHJ5
aW5nIHRvIHJlbW92ZSBhIFVzZXJDb250ZW50V29ybGQgKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRv
ZXMgbm90IGV4aXN0LiIsIHdvcmxkSWRlbnRpZmllcik7CisgICAgICAgICAgICBXVEZMb2dBbHdh
eXMoIlRyeWluZyB0byByZW1vdmUgYSBVc2VyQ29udGVudFdvcmxkIChpZD0lIiBQUkl1NjQgIikg
dGhhdCBkb2VzIG5vdCBleGlzdC4iLCB3b3JsZElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtMTQ5LDcgKzE0OSw3IEBAIHZvaWQgV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyOjphZGRVc2VyU2NyaXB0cyhWZWN0b3I8V2ViVXNlclNjcmlw
dERhdGE+JiYgdXNlclNjCiAgICAgZm9yIChjb25zdCBhdXRvJiB1c2VyU2NyaXB0RGF0YSA6IHVz
ZXJTY3JpcHRzKSB7CiAgICAgICAgIGF1dG8gaXQgPSB3b3JsZE1hcCgpLmZpbmQodXNlclNjcmlw
dERhdGEud29ybGRJZGVudGlmaWVyKTsKICAgICAgICAgaWYgKGl0ID09IHdvcmxkTWFwKCkuZW5k
KCkpIHsKLSAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiVHJ5aW5nIHRvIGFkZCBhIFVzZXJTY3Jp
cHQgdG8gYSBVc2VyQ29udGVudFdvcmxkIChpZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBl
eGlzdC4iLCB1c2VyU2NyaXB0RGF0YS53b3JsZElkZW50aWZpZXIpOworICAgICAgICAgICAgV1RG
TG9nQWx3YXlzKCJUcnlpbmcgdG8gYWRkIGEgVXNlclNjcmlwdCB0byBhIFVzZXJDb250ZW50V29y
bGQgKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRvZXMgbm90IGV4aXN0LiIsIHVzZXJTY3JpcHREYXRh
LndvcmxkSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICB9CiAKQEAgLTE1OCwyMyArMTU4LDIzIEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyOjphZGRVc2VyU2NyaXB0cyhWZWN0b3I8V2ViVXNlclNjcmlwdERhdGE+JiYgdXNlclNjCiAg
ICAgfQogfQogCi12b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6cmVtb3ZlVXNlclNjcmlw
dCh1aW50NjRfdCB3b3JsZElkZW50aWZpZXIsIHVpbnQ2NF90IHVzZXJTY3JpcHRJZGVudGlmaWVy
KQordm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OnJlbW92ZVVzZXJTY3JpcHQoQ29udGVu
dFdvcmxkSWRlbnRpZmllciB3b3JsZElkZW50aWZpZXIsIHVpbnQ2NF90IHVzZXJTY3JpcHRJZGVu
dGlmaWVyKQogewogICAgIGF1dG8gaXQgPSB3b3JsZE1hcCgpLmZpbmQod29ybGRJZGVudGlmaWVy
KTsKICAgICBpZiAoaXQgPT0gd29ybGRNYXAoKS5lbmQoKSkgewotICAgICAgICBXVEZMb2dBbHdh
eXMoIlRyeWluZyB0byByZW1vdmUgYSBVc2VyU2NyaXB0IGZyb20gYSBVc2VyQ29udGVudFdvcmxk
IChpZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlzdC4iLCB3b3JsZElkZW50aWZpZXIp
OworICAgICAgICBXVEZMb2dBbHdheXMoIlRyeWluZyB0byByZW1vdmUgYSBVc2VyU2NyaXB0IGZy
b20gYSBVc2VyQ29udGVudFdvcmxkIChpZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlz
dC4iLCB3b3JsZElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKICAgICByZW1vdmVVc2VyU2NyaXB0SW50ZXJuYWwoKml0LT52YWx1ZS5maXJzdCwgdXNlclNj
cmlwdElkZW50aWZpZXIpOwogfQogCi12b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6cmVt
b3ZlQWxsVXNlclNjcmlwdHMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYgd29ybGRJZGVudGlmaWVy
cykKK3ZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVBbGxVc2VyU2NyaXB0cyhj
b25zdCBWZWN0b3I8Q29udGVudFdvcmxkSWRlbnRpZmllcj4mIHdvcmxkSWRlbnRpZmllcnMpCiB7
CiAgICAgZm9yIChhdXRvJiB3b3JsZElkZW50aWZpZXIgOiB3b3JsZElkZW50aWZpZXJzKSB7CiAg
ICAgICAgIGF1dG8gaXQgPSB3b3JsZE1hcCgpLmZpbmQod29ybGRJZGVudGlmaWVyKTsKICAgICAg
ICAgaWYgKGl0ID09IHdvcmxkTWFwKCkuZW5kKCkpIHsKLSAgICAgICAgICAgIFdURkxvZ0Fsd2F5
cygiVHJ5aW5nIHRvIHJlbW92ZSBhbGwgVXNlclNjcmlwdHMgZnJvbSBhIFVzZXJDb250ZW50V29y
bGQgKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRvZXMgbm90IGV4aXN0LiIsIHdvcmxkSWRlbnRpZmll
cik7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIlRyeWluZyB0byByZW1vdmUgYWxsIFVzZXJT
Y3JpcHRzIGZyb20gYSBVc2VyQ29udGVudFdvcmxkIChpZD0lIiBQUkl1NjQgIikgdGhhdCBkb2Vz
IG5vdCBleGlzdC4iLCB3b3JsZElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIApAQCAtMTg3LDcgKzE4Nyw3IEBAIHZvaWQgV2ViVXNlckNvbnRl
bnRDb250cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldHMoY29uc3QgVmVjdG9yPFdlYlVzZXJTdHls
ZVNoZWV0CiAgICAgZm9yIChjb25zdCBhdXRvJiB1c2VyU3R5bGVTaGVldERhdGEgOiB1c2VyU3R5
bGVTaGVldHMpIHsKICAgICAgICAgYXV0byBpdCA9IHdvcmxkTWFwKCkuZmluZCh1c2VyU3R5bGVT
aGVldERhdGEud29ybGRJZGVudGlmaWVyKTsKICAgICAgICAgaWYgKGl0ID09IHdvcmxkTWFwKCku
ZW5kKCkpIHsKLSAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiVHJ5aW5nIHRvIGFkZCBhIFVzZXJT
dHlsZVNoZWV0IHRvIGEgVXNlckNvbnRlbnRXb3JsZCAoaWQ9JSIgUFJJdTY0ICIpIHRoYXQgZG9l
cyBub3QgZXhpc3QuIiwgdXNlclN0eWxlU2hlZXREYXRhLndvcmxkSWRlbnRpZmllcik7CisgICAg
ICAgICAgICBXVEZMb2dBbHdheXMoIlRyeWluZyB0byBhZGQgYSBVc2VyU3R5bGVTaGVldCB0byBh
IFVzZXJDb250ZW50V29ybGQgKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRvZXMgbm90IGV4aXN0LiIs
IHVzZXJTdHlsZVNoZWV0RGF0YS53b3JsZElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgfQogICAgICAgICAKQEAgLTE5OCwyNCArMTk4LDI0IEBA
IHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldHMoY29uc3Qg
VmVjdG9yPFdlYlVzZXJTdHlsZVNoZWV0CiAgICAgaW52YWxpZGF0ZUluamVjdGVkU3R5bGVTaGVl
dENhY2hlSW5BbGxGcmFtZXNJbkFsbFBhZ2VzKCk7CiB9CiAKLXZvaWQgV2ViVXNlckNvbnRlbnRD
b250cm9sbGVyOjpyZW1vdmVVc2VyU3R5bGVTaGVldCh1aW50NjRfdCB3b3JsZElkZW50aWZpZXIs
IHVpbnQ2NF90IHVzZXJTdHlsZVNoZWV0SWRlbnRpZmllcikKK3ZvaWQgV2ViVXNlckNvbnRlbnRD
b250cm9sbGVyOjpyZW1vdmVVc2VyU3R5bGVTaGVldChDb250ZW50V29ybGRJZGVudGlmaWVyIHdv
cmxkSWRlbnRpZmllciwgdWludDY0X3QgdXNlclN0eWxlU2hlZXRJZGVudGlmaWVyKQogewogICAg
IGF1dG8gaXQgPSB3b3JsZE1hcCgpLmZpbmQod29ybGRJZGVudGlmaWVyKTsKICAgICBpZiAoaXQg
PT0gd29ybGRNYXAoKS5lbmQoKSkgewotICAgICAgICBXVEZMb2dBbHdheXMoIlRyeWluZyB0byBy
ZW1vdmUgYSBVc2VyU3R5bGVTaGVldCBmcm9tIGEgVXNlckNvbnRlbnRXb3JsZCAoaWQ9JSIgUFJJ
dTY0ICIpIHRoYXQgZG9lcyBub3QgZXhpc3QuIiwgd29ybGRJZGVudGlmaWVyKTsKKyAgICAgICAg
V1RGTG9nQWx3YXlzKCJUcnlpbmcgdG8gcmVtb3ZlIGEgVXNlclN0eWxlU2hlZXQgZnJvbSBhIFVz
ZXJDb250ZW50V29ybGQgKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRvZXMgbm90IGV4aXN0LiIsIHdv
cmxkSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IHJlbW92ZVVzZXJTdHlsZVNoZWV0SW50ZXJuYWwoKml0LT52YWx1ZS5maXJzdCwgdXNlclN0eWxl
U2hlZXRJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OnJl
bW92ZUFsbFVzZXJTdHlsZVNoZWV0cyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JiB3b3JsZElkZW50
aWZpZXJzKQordm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OnJlbW92ZUFsbFVzZXJTdHls
ZVNoZWV0cyhjb25zdCBWZWN0b3I8Q29udGVudFdvcmxkSWRlbnRpZmllcj4mIHdvcmxkSWRlbnRp
ZmllcnMpCiB7CiAgICAgYm9vbCBzaGVldHNDaGFuZ2VkID0gZmFsc2U7CiAgICAgZm9yIChhdXRv
JiB3b3JsZElkZW50aWZpZXIgOiB3b3JsZElkZW50aWZpZXJzKSB7CiAgICAgICAgIGF1dG8gaXQg
PSB3b3JsZE1hcCgpLmZpbmQod29ybGRJZGVudGlmaWVyKTsKICAgICAgICAgaWYgKGl0ID09IHdv
cmxkTWFwKCkuZW5kKCkpIHsKLSAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiVHJ5aW5nIHRvIHJl
bW92ZSBhbGwgVXNlclN0eWxlU2hlZXRzIGZyb20gYSBVc2VyQ29udGVudFdvcmxkIChpZD0lIiBQ
Ukl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlzdC4iLCB3b3JsZElkZW50aWZpZXIpOworICAgICAg
ICAgICAgV1RGTG9nQWx3YXlzKCJUcnlpbmcgdG8gcmVtb3ZlIGFsbCBVc2VyU3R5bGVTaGVldHMg
ZnJvbSBhIFVzZXJDb250ZW50V29ybGQgKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRvZXMgbm90IGV4
aXN0LiIsIHdvcmxkSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogCkBAIC0yNzgsNyArMjc4LDcgQEAgdm9pZCBXZWJVc2VyQ29udGVudENvbnRy
b2xsZXI6OmFkZFVzZXJTY3JpcHRNZXNzYWdlSGFuZGxlcnMoY29uc3QgVmVjdG9yPFdlYlNjcmkK
ICAgICBmb3IgKGF1dG8mIGhhbmRsZXIgOiBzY3JpcHRNZXNzYWdlSGFuZGxlcnMpIHsKICAgICAg
ICAgYXV0byBpdCA9IHdvcmxkTWFwKCkuZmluZChoYW5kbGVyLndvcmxkSWRlbnRpZmllcik7CiAg
ICAgICAgIGlmIChpdCA9PSB3b3JsZE1hcCgpLmVuZCgpKSB7Ci0gICAgICAgICAgICBXVEZMb2dB
bHdheXMoIlRyeWluZyB0byBhZGQgYSBVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXIgdG8gYSBVc2Vy
Q29udGVudFdvcmxkIChpZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlzdC4iLCBoYW5k
bGVyLndvcmxkSWRlbnRpZmllcik7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIlRyeWluZyB0
byBhZGQgYSBVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXIgdG8gYSBVc2VyQ29udGVudFdvcmxkIChp
ZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlzdC4iLCBoYW5kbGVyLndvcmxkSWRlbnRp
Zmllci50b1VJbnQ2NCgpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKQEAg
LTI4OSwxMiArMjg5LDEyIEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjphZGRVc2Vy
U2NyaXB0TWVzc2FnZUhhbmRsZXJzKGNvbnN0IFZlY3RvcjxXZWJTY3JpCiAjZW5kaWYKIH0KIAot
dm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OnJlbW92ZVVzZXJTY3JpcHRNZXNzYWdlSGFu
ZGxlcih1aW50NjRfdCB3b3JsZElkZW50aWZpZXIsIHVpbnQ2NF90IHVzZXJTY3JpcHRNZXNzYWdl
SGFuZGxlcklkZW50aWZpZXIpCit2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6cmVtb3Zl
VXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVyKENvbnRlbnRXb3JsZElkZW50aWZpZXIgd29ybGRJZGVu
dGlmaWVyLCB1aW50NjRfdCB1c2VyU2NyaXB0TWVzc2FnZUhhbmRsZXJJZGVudGlmaWVyKQogewog
I2lmIEVOQUJMRShVU0VSX01FU1NBR0VfSEFORExFUlMpCiAgICAgYXV0byBpdCA9IHdvcmxkTWFw
KCkuZmluZCh3b3JsZElkZW50aWZpZXIpOwogICAgIGlmIChpdCA9PSB3b3JsZE1hcCgpLmVuZCgp
KSB7Ci0gICAgICAgIFdURkxvZ0Fsd2F5cygiVHJ5aW5nIHRvIHJlbW92ZSBhIFVzZXJTY3JpcHRN
ZXNzYWdlSGFuZGxlciBmcm9tIGEgVXNlckNvbnRlbnRXb3JsZCAoaWQ9JSIgUFJJdTY0ICIpIHRo
YXQgZG9lcyBub3QgZXhpc3QuIiwgd29ybGRJZGVudGlmaWVyKTsKKyAgICAgICAgV1RGTG9nQWx3
YXlzKCJUcnlpbmcgdG8gcmVtb3ZlIGEgVXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVyIGZyb20gYSBV
c2VyQ29udGVudFdvcmxkIChpZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlzdC4iLCB3
b3JsZElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAg
LTMwNSwxNCArMzA1LDE0IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVV
c2VyU2NyaXB0TWVzc2FnZUhhbmRsZXIodWludDY0X3Qgd29ybGRJZGVuCiAjZW5kaWYKIH0KIAot
dm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OnJlbW92ZUFsbFVzZXJTY3JpcHRNZXNzYWdl
SGFuZGxlcnMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYgd29ybGRJZGVudGlmaWVycykKK3ZvaWQg
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVBbGxVc2VyU2NyaXB0TWVzc2FnZUhhbmRs
ZXJzKGNvbnN0IFZlY3RvcjxDb250ZW50V29ybGRJZGVudGlmaWVyPiYgd29ybGRJZGVudGlmaWVy
cykKIHsKICNpZiBFTkFCTEUoVVNFUl9NRVNTQUdFX0hBTkRMRVJTKQogICAgIGJvb2wgdXNlck1l
c3NhZ2VIYW5kbGVyc0NoYW5nZWQgPSBmYWxzZTsKICAgICBmb3IgKGF1dG8mIHdvcmxkSWRlbnRp
ZmllciA6IHdvcmxkSWRlbnRpZmllcnMpIHsKICAgICAgICAgYXV0byBpdCA9IHdvcmxkTWFwKCku
ZmluZCh3b3JsZElkZW50aWZpZXIpOwogICAgICAgICBpZiAoaXQgPT0gd29ybGRNYXAoKS5lbmQo
KSkgewotICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJUcnlpbmcgdG8gcmVtb3ZlIGFsbCBVc2Vy
U2NyaXB0TWVzc2FnZUhhbmRsZXIgZnJvbSBhIFVzZXJDb250ZW50V29ybGQgKGlkPSUiIFBSSXU2
NCAiKSB0aGF0IGRvZXMgbm90IGV4aXN0LiIsIHdvcmxkSWRlbnRpZmllcik7CisgICAgICAgICAg
ICBXVEZMb2dBbHdheXMoIlRyeWluZyB0byByZW1vdmUgYWxsIFVzZXJTY3JpcHRNZXNzYWdlSGFu
ZGxlciBmcm9tIGEgVXNlckNvbnRlbnRXb3JsZCAoaWQ9JSIgUFJJdTY0ICIpIHRoYXQgZG9lcyBu
b3QgZXhpc3QuIiwgd29ybGRJZGVudGlmaWVyLnRvVUludDY0KCkpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9V
c2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuaAppbmRleCA0OGU3
ZDZhYzVjN2UyZDk1YTJjMWE4MjYwYzk0OTAwYmViMGFjOGYzLi45NTg4NTY3MTcyZDRjOGIyYmE4
MWFhMjJkM2NjNzY4ZmIyNTVlZGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5oCkBA
IC02NCwxMSArNjQsMTAgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlVXNlclN0eWxlU2hlZXRz
KEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQmKTsKICAgICB2b2lkIHJlbW92ZUFsbFVzZXJDb250
ZW50KCk7CiAKLSAgICBzdGF0aWMgdWludDY0X3QgaWRlbnRpZmllckZvck5vcm1hbFdvcmxkKCkg
eyByZXR1cm4gMTsgfQotICAgIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqIHdvcmxkRm9ySWRl
bnRpZmllcih1aW50NjRfdCk7CisgICAgSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCogd29ybGRG
b3JJZGVudGlmaWVyKENvbnRlbnRXb3JsZElkZW50aWZpZXIpOwogCi0gICAgdm9pZCBhZGRVc2Vy
Q29udGVudFdvcmxkcyhjb25zdCBWZWN0b3I8c3RkOjpwYWlyPHVpbnQ2NF90LCBTdHJpbmc+PiYp
OwotICAgIHZvaWQgYWRkVXNlckNvbnRlbnRXb3JsZChjb25zdCBzdGQ6OnBhaXI8dWludDY0X3Qs
IFN0cmluZz4mKTsKKyAgICB2b2lkIGFkZFVzZXJDb250ZW50V29ybGRzKGNvbnN0IFZlY3Rvcjxz
dGQ6OnBhaXI8Q29udGVudFdvcmxkSWRlbnRpZmllciwgU3RyaW5nPj4mKTsKKyAgICB2b2lkIGFk
ZFVzZXJDb250ZW50V29ybGQoY29uc3Qgc3RkOjpwYWlyPENvbnRlbnRXb3JsZElkZW50aWZpZXIs
IFN0cmluZz4mKTsKICAgICB2b2lkIGFkZFVzZXJTY3JpcHRzKFZlY3RvcjxXZWJVc2VyU2NyaXB0
RGF0YT4mJiwgSW5qZWN0VXNlclNjcmlwdEltbWVkaWF0ZWx5KTsKICAgICB2b2lkIGFkZFVzZXJT
dHlsZVNoZWV0cyhjb25zdCBWZWN0b3I8V2ViVXNlclN0eWxlU2hlZXREYXRhPiYpOwogICAgIHZv
aWQgYWRkVXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVycyhjb25zdCBWZWN0b3I8V2ViU2NyaXB0TWVz
c2FnZUhhbmRsZXJEYXRhPiYpOwpAQCAtOTIsMTYgKzkxLDE2IEBAIHByaXZhdGU6CiAgICAgLy8g
SVBDOjpNZXNzYWdlUmVjZWl2ZXIuCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKIAotICAgIHZvaWQgcmVtb3ZlVXNl
ckNvbnRlbnRXb3JsZHMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYpOworICAgIHZvaWQgcmVtb3Zl
VXNlckNvbnRlbnRXb3JsZHMoY29uc3QgVmVjdG9yPENvbnRlbnRXb3JsZElkZW50aWZpZXI+Jik7
CiAKLSAgICB2b2lkIHJlbW92ZVVzZXJTY3JpcHQodWludDY0X3Qgd29ybGRJZGVudGlmaWVyLCB1
aW50NjRfdCB1c2VyU2NyaXB0SWRlbnRpZmllcik7Ci0gICAgdm9pZCByZW1vdmVBbGxVc2VyU2Ny
aXB0cyhjb25zdCBWZWN0b3I8dWludDY0X3Q+Jik7CisgICAgdm9pZCByZW1vdmVVc2VyU2NyaXB0
KENvbnRlbnRXb3JsZElkZW50aWZpZXIsIHVpbnQ2NF90IHVzZXJTY3JpcHRJZGVudGlmaWVyKTsK
KyAgICB2b2lkIHJlbW92ZUFsbFVzZXJTY3JpcHRzKGNvbnN0IFZlY3RvcjxDb250ZW50V29ybGRJ
ZGVudGlmaWVyPiYpOwogCi0gICAgdm9pZCByZW1vdmVVc2VyU3R5bGVTaGVldCh1aW50NjRfdCB3
b3JsZElkZW50aWZpZXIsIHVpbnQ2NF90IHVzZXJTY3JpcHRJZGVudGlmaWVyKTsKLSAgICB2b2lk
IHJlbW92ZUFsbFVzZXJTdHlsZVNoZWV0cyhjb25zdCBWZWN0b3I8dWludDY0X3Q+Jik7CisgICAg
dm9pZCByZW1vdmVVc2VyU3R5bGVTaGVldChDb250ZW50V29ybGRJZGVudGlmaWVyLCB1aW50NjRf
dCB1c2VyU2NyaXB0SWRlbnRpZmllcik7CisgICAgdm9pZCByZW1vdmVBbGxVc2VyU3R5bGVTaGVl
dHMoY29uc3QgVmVjdG9yPENvbnRlbnRXb3JsZElkZW50aWZpZXI+Jik7CiAKLSAgICB2b2lkIHJl
bW92ZVVzZXJTY3JpcHRNZXNzYWdlSGFuZGxlcih1aW50NjRfdCB3b3JsZElkZW50aWZpZXIsIHVp
bnQ2NF90IHVzZXJTY3JpcHRJZGVudGlmaWVyKTsKLSAgICB2b2lkIHJlbW92ZUFsbFVzZXJTY3Jp
cHRNZXNzYWdlSGFuZGxlcnMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYpOworICAgIHZvaWQgcmVt
b3ZlVXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVyKENvbnRlbnRXb3JsZElkZW50aWZpZXIsIHVpbnQ2
NF90IHVzZXJTY3JpcHRJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbW92ZUFsbFVzZXJTY3JpcHRN
ZXNzYWdlSGFuZGxlcnMoY29uc3QgVmVjdG9yPENvbnRlbnRXb3JsZElkZW50aWZpZXI+Jik7CiAK
ICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAgIHZvaWQgcmVtb3ZlQ29udGVudFJ1
bGVMaXN0KGNvbnN0IFN0cmluZyYgbmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29u
dHJvbGxlci5tZXNzYWdlcy5pbgppbmRleCA0N2E1YTZmNDdhOTUwOTJkNmI1NjkxNzFjYzhlODAy
MTYyZjc3YWMyLi41NzQyNTlhYTc0NTI2YWU5MTUzZTM2Y2QwYjE2NzZkMDYwNmM2ZTRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRl
bnRDb250cm9sbGVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9V
c2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIubWVzc2FnZXMuaW4KQEAgLTI0LDIw
ICsyNCwyMCBAQAogICovCiAKIG1lc3NhZ2VzIC0+IFdlYlVzZXJDb250ZW50Q29udHJvbGxlciB7
Ci0gICAgQWRkVXNlckNvbnRlbnRXb3JsZHMoVmVjdG9yPHN0ZDo6cGFpcjx1aW50NjRfdCwgU3Ry
aW5nPj4gd29ybGRzKTsKLSAgICBSZW1vdmVVc2VyQ29udGVudFdvcmxkcyhWZWN0b3I8dWludDY0
X3Q+IHdvcmxkSWRlbnRpZmllcnMpOworICAgIEFkZFVzZXJDb250ZW50V29ybGRzKFZlY3Rvcjxz
dGQ6OnBhaXI8V2ViS2l0OjpDb250ZW50V29ybGRJZGVudGlmaWVyLCBTdHJpbmc+PiB3b3JsZHMp
OworICAgIFJlbW92ZVVzZXJDb250ZW50V29ybGRzKFZlY3RvcjxXZWJLaXQ6OkNvbnRlbnRXb3Js
ZElkZW50aWZpZXI+IHdvcmxkSWRlbnRpZmllcnMpOwogCiAgICAgQWRkVXNlclNjcmlwdHMoVmVj
dG9yPHN0cnVjdCBXZWJLaXQ6OldlYlVzZXJTY3JpcHREYXRhPiB1c2VyU2NyaXB0cywgZW51bTpi
b29sIFdlYktpdDo6SW5qZWN0VXNlclNjcmlwdEltbWVkaWF0ZWx5IGltbWVkaWF0ZWx5KTsKLSAg
ICBSZW1vdmVVc2VyU2NyaXB0KHVpbnQ2NF90IHdvcmxkSWRlbnRpZmllciwgdWludDY0X3QgaWRl
bnRpZmllcik7Ci0gICAgUmVtb3ZlQWxsVXNlclNjcmlwdHMoVmVjdG9yPHVpbnQ2NF90PiB3b3Js
ZElkZW50aWZpZXJzKTsKKyAgICBSZW1vdmVVc2VyU2NyaXB0KFdlYktpdDo6Q29udGVudFdvcmxk
SWRlbnRpZmllciB3b3JsZElkZW50aWZpZXIsIHVpbnQ2NF90IGlkZW50aWZpZXIpOworICAgIFJl
bW92ZUFsbFVzZXJTY3JpcHRzKFZlY3RvcjxXZWJLaXQ6OkNvbnRlbnRXb3JsZElkZW50aWZpZXI+
IHdvcmxkSWRlbnRpZmllcnMpOwogCiAgICAgQWRkVXNlclN0eWxlU2hlZXRzKFZlY3RvcjxzdHJ1
Y3QgV2ViS2l0OjpXZWJVc2VyU3R5bGVTaGVldERhdGE+IHVzZXJTdHlsZVNoZWV0cyk7Ci0gICAg
UmVtb3ZlVXNlclN0eWxlU2hlZXQodWludDY0X3Qgd29ybGRJZGVudGlmaWVyLCB1aW50NjRfdCBp
ZGVudGlmaWVyKTsKLSAgICBSZW1vdmVBbGxVc2VyU3R5bGVTaGVldHMoVmVjdG9yPHVpbnQ2NF90
PiB3b3JsZElkZW50aWZpZXJzKTsKKyAgICBSZW1vdmVVc2VyU3R5bGVTaGVldChXZWJLaXQ6OkNv
bnRlbnRXb3JsZElkZW50aWZpZXIgd29ybGRJZGVudGlmaWVyLCB1aW50NjRfdCBpZGVudGlmaWVy
KTsKKyAgICBSZW1vdmVBbGxVc2VyU3R5bGVTaGVldHMoVmVjdG9yPFdlYktpdDo6Q29udGVudFdv
cmxkSWRlbnRpZmllcj4gd29ybGRJZGVudGlmaWVycyk7CiAKICAgICBBZGRVc2VyU2NyaXB0TWVz
c2FnZUhhbmRsZXJzKFZlY3RvcjxzdHJ1Y3QgV2ViS2l0OjpXZWJTY3JpcHRNZXNzYWdlSGFuZGxl
ckRhdGE+IHNjcmlwdE1lc3NhZ2VIYW5kbGVycyk7Ci0gICAgUmVtb3ZlVXNlclNjcmlwdE1lc3Nh
Z2VIYW5kbGVyKHVpbnQ2NF90IHdvcmxkSWRlbnRpZmllciwgdWludDY0X3QgaWRlbnRpZmllcik7
Ci0gICAgUmVtb3ZlQWxsVXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVycyhWZWN0b3I8dWludDY0X3Q+
IHdvcmxkSWRlbnRpZmllcnMpOworICAgIFJlbW92ZVVzZXJTY3JpcHRNZXNzYWdlSGFuZGxlcihX
ZWJLaXQ6OkNvbnRlbnRXb3JsZElkZW50aWZpZXIgd29ybGRJZGVudGlmaWVyLCB1aW50NjRfdCBp
ZGVudGlmaWVyKTsKKyAgICBSZW1vdmVBbGxVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXJzKFZlY3Rv
cjxXZWJLaXQ6OkNvbnRlbnRXb3JsZElkZW50aWZpZXI+IHdvcmxkSWRlbnRpZmllcnMpOwogCiAj
aWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKICAgICBBZGRDb250ZW50UnVsZUxpc3RzKFZl
Y3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0
RGF0YT4+IGNvbnRlbnRGaWx0ZXJzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKaW5kZXggODYyYjEzYWM3ZDc4ZTNjYmEwZTdlZGU1Mzc5MWE4NTQ3NzIw
ZDY0YS4uYmQzNDEwNjhmYjcyNWY5ZWUxNWEzYWIxNWU5N2E5N2YzYzlmZjY5MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTMzODAsNyArMzM4
MCw3IEBAIEtleWJvYXJkVUlNb2RlIFdlYlBhZ2U6OmtleWJvYXJkVUlNb2RlKCkKICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8S2V5Ym9hcmRVSU1vZGU+KChmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVk
ID8gS2V5Ym9hcmRBY2Nlc3NGdWxsIDogS2V5Ym9hcmRBY2Nlc3NEZWZhdWx0KSB8IChtX3RhYlRv
TGlua3MgPyBLZXlib2FyZEFjY2Vzc1RhYnNUb0xpbmtzIDogMCkpOwogfQogCi12b2lkIFdlYlBh
Z2U6OnJ1bkphdmFTY3JpcHQoV2ViRnJhbWUqIGZyYW1lLCBSdW5KYXZhU2NyaXB0UGFyYW1ldGVy
cyYmIHBhcmFtZXRlcnMsIHVpbnQ2NF90IHdvcmxkSWRlbnRpZmllciwgQ2FsbGJhY2tJRCBjYWxs
YmFja0lEKQordm9pZCBXZWJQYWdlOjpydW5KYXZhU2NyaXB0KFdlYkZyYW1lKiBmcmFtZSwgUnVu
SmF2YVNjcmlwdFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzLCBDb250ZW50V29ybGRJZGVudGlmaWVy
IHdvcmxkSWRlbnRpZmllciwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIC8vIE5PVEU6
IFdlIG5lZWQgdG8gYmUgY2FyZWZ1bCB3aGVuIHJ1bm5pbmcgc2NyaXB0cyB0aGF0IHRoZSBvYmpl
Y3RzIHdlIGRlcGVuZCBvbiBkb24ndAogICAgIC8vIGRpc2FwcGVhciBkdXJpbmcgc2NyaXB0IGV4
ZWN1dGlvbi4KQEAgLTMzOTAsNyArMzM5MCw2IEBAIHZvaWQgV2ViUGFnZTo6cnVuSmF2YVNjcmlw
dChXZWJGcmFtZSogZnJhbWUsIFJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzJiYgcGFyYW1ldGVyCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBBU1NFUlQod29ybGRJZGVudGlmaWVyKTsKICAg
ICBhdXRvKiB3b3JsZCA9IG1fdXNlckNvbnRlbnRDb250cm9sbGVyLT53b3JsZEZvcklkZW50aWZp
ZXIod29ybGRJZGVudGlmaWVyKTsKICAgICBpZiAoIXdvcmxkKSB7CiAgICAgICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6U2NyaXB0VmFsdWVDYWxsYmFjayh7IH0sIEV4Y2VwdGlvbkRl
dGFpbHMgeyAiVW5hYmxlIHRvIGV4ZWN1dGUgSmF2YVNjcmlwdDogQ2Fubm90IGZpbmQgc3BlY2lm
aWVkIGNvbnRlbnQgd29ybGQiX3MgfSwgY2FsbGJhY2tJRCkpOwpAQCAtMzQxOSw3ICszNDE4LDcg
QEAgdm9pZCBXZWJQYWdlOjpydW5KYXZhU2NyaXB0KFdlYkZyYW1lKiBmcmFtZSwgUnVuSmF2YVNj
cmlwdFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXIKICAgICBmcmFtZS0+Y29yZUZyYW1lKCktPnNjcmlw
dCgpLmV4ZWN1dGVBc3luY2hyb25vdXNVc2VyQWdlbnRTY3JpcHRJbldvcmxkKHdvcmxkLT5jb3Jl
V29ybGQoKSwgV1RGTW92ZShwYXJhbWV0ZXJzKSwgV1RGTW92ZShyZXNvbHZlRnVuY3Rpb24pKTsK
IH0KIAotdm9pZCBXZWJQYWdlOjpydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZChS
dW5KYXZhU2NyaXB0UGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIGNvbnN0IHN0ZDo6cGFpcjx1aW50
NjRfdCwgU3RyaW5nPiYgd29ybGREYXRhLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdl
YlBhZ2U6OnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZVNjcmlwdFdvcmxkKFJ1bkphdmFTY3JpcHRQ
YXJhbWV0ZXJzJiYgcGFyYW1ldGVycywgY29uc3Qgc3RkOjpwYWlyPENvbnRlbnRXb3JsZElkZW50
aWZpZXIsIFN0cmluZz4mIHdvcmxkRGF0YSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAg
IG1fdXNlckNvbnRlbnRDb250cm9sbGVyLT5hZGRVc2VyQ29udGVudFdvcmxkKHdvcmxkRGF0YSk7
CiAgICAgcnVuSmF2YVNjcmlwdChtYWluV2ViRnJhbWUoKSwgV1RGTW92ZShwYXJhbWV0ZXJzKSwg
d29ybGREYXRhLmZpcnN0LCBjYWxsYmFja0lEKTsKQEAgLTM0MjksNyArMzQyOCw3IEBAIHZvaWQg
V2ViUGFnZTo6cnVuSmF2YVNjcmlwdEluRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNv
bnN0IFN0cmluZyYgc2NyaXB0CiB7CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgQVNTRVJUKG1haW5XZWJGcmFtZSgp
ICE9IGZyYW1lKTsKLSAgICBydW5KYXZhU2NyaXB0KGZyYW1lLCB7IHNjcmlwdCwgZmFsc2UsIFdU
Rjo6bnVsbG9wdCwgZm9yY2VVc2VyR2VzdHVyZSB9LCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6
OmlkZW50aWZpZXJGb3JOb3JtYWxXb3JsZCgpLCBjYWxsYmFja0lEKTsKKyAgICBydW5KYXZhU2Ny
aXB0KGZyYW1lLCB7IHNjcmlwdCwgZmFsc2UsIFdURjo6bnVsbG9wdCwgZm9yY2VVc2VyR2VzdHVy
ZSB9LCBwYWdlQ29udGVudFdvcmxkSWRlbnRpZmllcigpLCBjYWxsYmFja0lEKTsKIH0KIAogdm9p
ZCBXZWJQYWdlOjpnZXRDb250ZW50c0FzU3RyaW5nKENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAwNDRhMWFjNTky
YzYyNjFkMzEzNTgyMDg3Mzk5NDlhOWNkZmUwODI2Li43MWYzY2Y5MWQ0MzUzZTQxMTEzYTA3MThk
ZmJjNDBiMzg3Y2MxZjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCkBAIC0xNDYyLDggKzE0NjIsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0U2VsZWN0
aW9uQXNXZWJBcmNoaXZlRGF0YShDYWxsYmFja0lEKTsKICAgICB2b2lkIGdldFNvdXJjZUZvckZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBnZXRX
ZWJBcmNoaXZlT2ZGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENhbGxiYWNrSUQpOwot
ICAgIHZvaWQgcnVuSmF2YVNjcmlwdChXZWJGcmFtZSosIFdlYkNvcmU6OlJ1bkphdmFTY3JpcHRQ
YXJhbWV0ZXJzJiYsIHVpbnQ2NF90IHdvcmxkSWRlbnRpZmllciwgQ2FsbGJhY2tJRCk7Ci0gICAg
dm9pZCBydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZChXZWJDb3JlOjpSdW5KYXZh
U2NyaXB0UGFyYW1ldGVycyYmLCBjb25zdCBzdGQ6OnBhaXI8dWludDY0X3QsIFN0cmluZz4mIHdv
cmxkRGF0YSwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBydW5KYXZhU2NyaXB0KFdlYkZyYW1lKiwg
V2ViQ29yZTo6UnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMmJiwgQ29udGVudFdvcmxkSWRlbnRpZmll
ciwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRX
b3JsZChXZWJDb3JlOjpSdW5KYXZhU2NyaXB0UGFyYW1ldGVycyYmLCBjb25zdCBzdGQ6OnBhaXI8
Q29udGVudFdvcmxkSWRlbnRpZmllciwgU3RyaW5nPiYgd29ybGREYXRhLCBDYWxsYmFja0lEKTsK
ICAgICB2b2lkIHJ1bkphdmFTY3JpcHRJbkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBDYWxsYmFja0lEKTsKICAgICB2
b2lkIGZvcmNlUmVwYWludChDYWxsYmFja0lEKTsKICAgICB2b2lkIHRha2VTbmFwc2hvdChXZWJD
b3JlOjpJbnRSZWN0IHNuYXBzaG90UmVjdCwgV2ViQ29yZTo6SW50U2l6ZSBiaXRtYXBTaXplLCB1
aW50MzJfdCBvcHRpb25zLCBDYWxsYmFja0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDIyOWEzMDBkNDhiMGVl
NzdiYzBiZDBiNjViMjZlMDYxN2RiNmUxZWQuLmExNDY0M2E4NDkzZjNhMDIyMWFiYmUxNzA3Mzgx
YjkyYWRlOTQwZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMjA4LDcgKzIwOCw3IEBAIEdlbmVyYXRlU3ludGhl
dGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0Nv
bW1hbmRUeXBlCiAgICAgR2V0V2ViQXJjaGl2ZU9mRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogCiAgICAgLy8gRklY
TUU6IFRoZXNlIHNob3VsZCB1c2Ugc2VuZFdpdGhBc3luY1JlcGx5IGluc3RlYWQgb2YgY2FsbGJh
Y2tJRHMKLSAgICBSdW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZChzdHJ1Y3QgV2Vi
Q29yZTo6UnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMgcGFyYW1ldGVycywgc3RkOjpwYWlyPHVpbnQ2
NF90LCBTdHJpbmc+IHdvcmxkLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBS
dW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZChzdHJ1Y3QgV2ViQ29yZTo6UnVuSmF2
YVNjcmlwdFBhcmFtZXRlcnMgcGFyYW1ldGVycywgc3RkOjpwYWlyPFdlYktpdDo6Q29udGVudFdv
cmxkSWRlbnRpZmllciwgU3RyaW5nPiB3b3JsZCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNr
SUQpCiAgICAgUnVuSmF2YVNjcmlwdEluRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFN0cmluZyBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgV2ViS2l0OjpDYWxs
YmFja0lEIGNhbGxiYWNrSUQpCiAKICAgICBGb3JjZVJlcGFpbnQoV2ViS2l0OjpDYWxsYmFja0lE
IGNhbGxiYWNrSUQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388778</attachid>
            <date>2020-01-25 09:38:37 -0800</date>
            <delta_ts>2020-01-25 21:43:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206784-20200125093837.patch</filename>
            <type>text/plain</type>
            <size>39970</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0OTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDk3MDRjNGE3YThkMWU2NTQ3Njg5ZjEz
OGNhZGRiOTI2MjQ1MjA1ZmIuLjFkMmRjZjFhNzY3Y2QzYzljMjIyYmFiZDI5NDcyYmVmYmUyZGMw
YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDEtMjQgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgQ29udGVudFdvcmxkcyBiZSBpZGVudGlmaWVk
IGJ5IGFuIE9iamVjdElkZW50aWZpZXIgaW5zdGVhZCBvZiBhIHVpbnQ2NF90CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY3ODQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9PYmplY3RJZGVudGlm
aWVyLmg6CisgICAgICAgIChXVEY6Ok9iamVjdElkZW50aWZpZXI6OmdlbmVyYXRlKToKKyAgICAg
ICAgKFdURjo6T2JqZWN0SWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKToKKyAgICAgICAg
KFdURjo6T2JqZWN0SWRlbnRpZmllcjo6ZW5hYmxlR2VuZXJhdGlvblByb3RlY3Rpb24pOiBUbyBh
bGxvdyByZXN0cmljdGluZyBnZW5lcmF0aW5nIGFuIGlkZW50aWZpZXIgdG8gdGhlIFVJUHJvY2Vz
cy4KKwogMjAyMC0wMS0yMiAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4K
IAogICAgICAgICB1bmlxdWVMb2dJZGVudGlmaWVyKCkgc2hvdWxkIGdlbmVyYXRlIGEgdW5pcXVl
IGlkZW50aWZpZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRmMGQyZTEyN2Q2NmIwZGUzOWRjOTFiN2RmYjI4YWMy
OWI5ZWJjOTcuLjhkZjcyYTA5NTYwMTVhZWQ3ZTAwOTFlMjI5N2Q1MjFiZDcxMzNhYjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNzMgQEAKKzIwMjAtMDEtMjQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25A
YXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgQ29udGVudFdvcmxkcyBiZSBpZGVudGlmaWVkIGJ5
IGFuIE9iamVjdElkZW50aWZpZXIgaW5zdGVhZCBvZiBhIHVpbnQ2NF90CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY3ODQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvcjogTm8gYmVoYXZpb3Ig
Y2hhbmdlLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisKKyAgICAg
ICAgKiBTaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1eGls
aWFyeVByb2Nlc3M6OmluaXRpYWxpemUpOgorCisgICAgICAgICogU2hhcmVkL0NvbnRlbnRXb3Js
ZFNoYXJlZC5oOgorICAgICAgICAoV2ViS2l0OjpwYWdlQ29udGVudFdvcmxkSWRlbnRpZmllcik6
CisKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaDoKKworICAgICAgICAqIFNoYXJl
ZC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJVc2VyU2NyaXB0RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlclN0
eWxlU2hlZXREYXRhOjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTY3JpcHRNZXNzYWdl
SGFuZGxlckRhdGE6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlVzZXJDb250ZW50Q29u
dHJvbGxlckRhdGFUeXBlcy5oOgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElDb250ZW50
V29ybGQuY3BwOgorICAgICAgICAoQVBJOjpDb250ZW50V29ybGQ6OnBhZ2VDb250ZW50V29ybGQp
OgorICAgICAgICAoQVBJOjpDb250ZW50V29ybGQ6OmRlZmF1bHRDbGllbnRXb3JsZCk6CisgICAg
ICAgIChBUEk6OkNvbnRlbnRXb3JsZDo6Q29udGVudFdvcmxkKToKKyAgICAgICAgKEFQSTo6Q29u
dGVudFdvcmxkQmFzZTo6Z2VuZXJhdGVJZGVudGlmaWVyKTogRGVsZXRlZC4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFdvcmxkLmg6CisgICAgICAgIChBUEk6OkNvbnRlbnRX
b3JsZEJhc2U6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoQVBJOjpDb250ZW50V29ybGRC
YXNlOjp3b3JsZERhdGEgY29uc3QpOgorICAgICAgICAoQVBJOjpDb250ZW50V29ybGRCYXNlOjpD
b250ZW50V29ybGRCYXNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250ZW50
V29ybGQuY3BwOgorICAgICAgICAoQVBJOjpVc2VyQ29udGVudFdvcmxkOjpVc2VyQ29udGVudFdv
cmxkKToKKworICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENv
bnRyb2xsZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJv
bGxlclByb3h5OjpyZW1vdmVVc2VyQ29udGVudFdvcmxkVXNlcyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpyZW1vdmVBbGxVc2VyU2NyaXB0cyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpyZW1vdmVBbGxV
c2VyU3R5bGVTaGVldHMpOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJV
c2VyQ29udGVudENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0Ojp3b3JsZE1hcCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6d29ybGRGb3JJZGVudGlm
aWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjphZGRVc2Vy
Q29udGVudFdvcmxkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVy
OjphZGRVc2VyQ29udGVudFdvcmxkcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50
Q29udHJvbGxlcjo6cmVtb3ZlVXNlckNvbnRlbnRXb3JsZHMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OmFkZFVzZXJTY3JpcHRzKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVVc2VyU2NyaXB0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVBbGxVc2VyU2NyaXB0cyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6YWRkVXNlclN0eWxl
U2hlZXRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1v
dmVVc2VyU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJv
bGxlcjo6cmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyOjphZGRVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXJzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVVc2VyU2NyaXB0TWVz
c2FnZUhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6
OnJlbW92ZUFsbFVzZXJTY3JpcHRNZXNzYWdlSGFuZGxlcnMpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIubWVzc2FnZXMuaW46
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OnJ1bkphdmFTY3JpcHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnJ1bkphdmFTY3JpcHRJbkZyYW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluOgorCiAyMDIwLTAxLTIyICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNv
bT4KIAogICAgICAgICBGaXggU0RLIGF2YWlsYWJpbGl0eSBtYWNyb3MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL09iamVjdElkZW50aWZpZXIuaCBiL1NvdXJjZS9XVEYvd3RmL09iamVjdElk
ZW50aWZpZXIuaAppbmRleCBmNzNjMDRlNDU3YzIyNzM0ZTdiMWUyMTAyZjU0NTVkNzliNTkyYzlm
Li5jMWRkNDNlODBlZDZlYTc0ZTRiM2E4ZTI3NDY2OTljMmZiZjEzYzJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9PYmplY3RJZGVudGlmaWVyLmgKKysrIGIvU291cmNlL1dURi93dGYvT2Jq
ZWN0SWRlbnRpZmllci5oCkBAIC00NCwxNCArNDQsMjEgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
Y2xhc3MgT2JqZWN0SWRlbnRpZmllciA6IHByaXZhdGUgT2JqZWN0SWRlbnRpZmllckJhc2Ugewog
cHVibGljOgogICAgIHN0YXRpYyBPYmplY3RJZGVudGlmaWVyIGdlbmVyYXRlKCkKICAgICB7Cisg
ICAgICAgIFJFTEVBU0VfQVNTRVJUKCFtX2dlbmVyYXRpb25Qcm90ZWN0ZWQpOwogICAgICAgICBy
ZXR1cm4gT2JqZWN0SWRlbnRpZmllciB7IGdlbmVyYXRlSWRlbnRpZmllckludGVybmFsKCkgfTsK
ICAgICB9CiAKICAgICBzdGF0aWMgT2JqZWN0SWRlbnRpZmllciBnZW5lcmF0ZVRocmVhZFNhZmUo
KQogICAgIHsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoIW1fZ2VuZXJhdGlvblByb3RlY3RlZCk7
CiAgICAgICAgIHJldHVybiBPYmplY3RJZGVudGlmaWVyIHsgZ2VuZXJhdGVUaHJlYWRTYWZlSWRl
bnRpZmllckludGVybmFsKCkgfTsKICAgICB9CiAKKyAgICBzdGF0aWMgdm9pZCBlbmFibGVHZW5l
cmF0aW9uUHJvdGVjdGlvbigpCisgICAgeworICAgICAgICBtX2dlbmVyYXRpb25Qcm90ZWN0ZWQg
PSB0cnVlOworICAgIH0KKwogICAgIE9iamVjdElkZW50aWZpZXIoKSA9IGRlZmF1bHQ7CiAKICAg
ICBPYmplY3RJZGVudGlmaWVyKEhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpIDogbV9pZGVudGlm
aWVyKGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpKSB7IH0KQEAgLTEwMyw2ICsxMTAsNyBAQCBwcml2
YXRlOgogICAgIH0KIAogICAgIHVpbnQ2NF90IG1faWRlbnRpZmllciB7IDAgfTsKKyAgICBpbmxp
bmUgc3RhdGljIGJvb2wgbV9nZW5lcmF0aW9uUHJvdGVjdGVkIHsgZmFsc2UgfTsKIH07CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBPYmplY3RJZGVudGlmaWVyPFQ+IG1ha2VPYmplY3RJ
ZGVudGlmaWVyKHVpbnQ2NF90IGlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weQppbmRleCBkYzllMTRmNWFjZGY2OTg0MTEzN2JmY2IxMGU0ZTY0NmNjNDJl
YTI2Li5mODdiNDRhZWFiNWMzOWM3YzdlM2JjN2U1MWY0YzJkMzM4ODhlZmQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTIxOSw2ICsyMTksNyBAQCBkZWYg
dHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViQ29y
ZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OkFjdGl2
aXR5U3RhdGVDaGFuZ2VJRCcsCiAgICAgICAgICdXZWJLaXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVySWRlbnRpZmllcicsCisgICAgICAgICdXZWJLaXQ6OkNvbnRlbnRXb3JsZElkZW50
aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQnLAogICAgICAg
ICAnV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyJywKICAgICAgICAg
J1dlYktpdDo6TWVkaWFSZWNvcmRlcklkZW50aWZpZXInLApAQCAtNjA1LDYgKzYwNiw3IEBAIGRl
ZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6U2VsZWN0aW9uUmVj
dCc6IFsnIkVkaXRvclN0YXRlLmgiJ10sCiAgICAgICAgICdXZWJLaXQ6OkFjdGl2aXR5U3RhdGVD
aGFuZ2VJRCc6IFsnIkRyYXdpbmdBcmVhSW5mby5oIiddLAogICAgICAgICAnV2ViS2l0OjpCYWNr
Rm9yd2FyZExpc3RJdGVtU3RhdGUnOiBbJyJTZXNzaW9uU3RhdGUuaCInXSwKKyAgICAgICAgJ1dl
YktpdDo6Q29udGVudFdvcmxkSWRlbnRpZmllcicgOiBbJyJDb250ZW50V29ybGRTaGFyZWQuaCIn
XSwKICAgICAgICAgJ1dlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEJzogWyciTGF5ZXJIb3N0
aW5nQ29udGV4dC5oIiddLAogICAgICAgICAnV2ViS2l0OjpMYXllckhvc3RpbmdNb2RlJzogWyci
TGF5ZXJUcmVlQ29udGV4dC5oIiddLAogICAgICAgICAnV2ViS2l0OjpQYWdlU3RhdGUnOiBbJyJT
ZXNzaW9uU3RhdGUuaCInXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGls
aWFyeVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5j
cHAKaW5kZXggYjFkNDM2Y2FmMTZkNDYzYWU1ZjA1MmJjYjI1OTUzZTdmODFiNjAzNC4uYzJjNDgw
ZThjZDdiN2FiMWQ3MmM1YWVjNWVjMmIxYTRhNGYwZmI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJBdXhpbGlhcnlQcm9jZXNzLmgiCiAKKyNpbmNsdWRlICJDb250ZW50
V29ybGRTaGFyZWQuaCIKICNpbmNsdWRlICJEZXBlbmRlbmN5UHJvY2Vzc0Fzc2VydGlvbi5oIgog
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJh
bWV0ZXJzLmgiCkBAIC03OCw4ICs3OSw5IEBAIHZvaWQgQXV4aWxpYXJ5UHJvY2Vzczo6aW5pdGlh
bGl6ZShjb25zdCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzCiAKICAg
ICBpbml0aWFsaXplUHJvY2Vzc05hbWUocGFyYW1ldGVycyk7CiAKLSAgICAvLyBJbiBXZWJLaXQy
LCBvbmx5IHRoZSBVSSBwcm9jZXNzIHNob3VsZCBldmVyIGJlIGdlbmVyYXRpbmcgbm9uLWRlZmF1
bHQgUEFMOjpTZXNzaW9uSURzLgorICAgIC8vIEluIFdlYktpdDIsIG9ubHkgdGhlIFVJIHByb2Nl
c3Mgc2hvdWxkIGV2ZXIgYmUgZ2VuZXJhdGluZyBjZXJ0YWluIGlkZW50aWZpZXJzLgogICAgIFBB
TDo6U2Vzc2lvbklEOjplbmFibGVHZW5lcmF0aW9uUHJvdGVjdGlvbigpOworICAgIENvbnRlbnRX
b3JsZElkZW50aWZpZXI6OmVuYWJsZUdlbmVyYXRpb25Qcm90ZWN0aW9uKCk7CiAKICAgICBtX2Nv
bm5lY3Rpb24gPSBJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZUNsaWVudENvbm5lY3Rpb24ocGFyYW1l
dGVycy5jb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMpOwogICAgIGluaXRpYWxpemVDb25uZWN0
aW9uKG1fY29ubmVjdGlvbi5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Db250ZW50V29ybGRTaGFyZWQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRlbnRXb3Js
ZFNoYXJlZC5oCmluZGV4IDFkYWQ2ZTE4NTBjMDhiMzRmMTJkNGE2OGE1MDlkODZjODNjZjBhNTAu
LmY0M2QyZjJjYmM3NDdmMjdhMGZkZDgyYjBhM2MxMzEyYjgxMjJiNmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRlbnRXb3JsZFNoYXJlZC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0NvbnRlbnRXb3JsZFNoYXJlZC5oCkBAIC0yNSw4ICsyNSwxNyBAQAogCiAjcHJh
Z21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCi1zdGF0aWMgY29uc3QgdWludDY0X3QgcGFnZUNvbnRlbnRXb3JsZElkZW50
aWZpZXIgPSAxOworZW51bSBDb250ZW50V29ybGRJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBD
b250ZW50V29ybGRJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxDb250ZW50V29ybGRJZGVu
dGlmaWVyVHlwZT47CisKK2lubGluZSBDb250ZW50V29ybGRJZGVudGlmaWVyIHBhZ2VDb250ZW50
V29ybGRJZGVudGlmaWVyKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q29udGVudFdv
cmxkSWRlbnRpZmllcj4gaWRlbnRpZmllcihtYWtlT2JqZWN0SWRlbnRpZmllcjxDb250ZW50V29y
bGRJZGVudGlmaWVyVHlwZT4oMSkpOworICAgIHJldHVybiBpZGVudGlmaWVyOworfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggNzBjM2VhMWFiNTJkYWMyN2NkMWVmYTNkZGQ5MmZm
NWZhNTRlZmI5ZC4uNmJmYTk5ZjIxM2ZjMzkwNmQ0MmMzOWRjMzY4OGRkOWVlMWI3NjUzZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5j
cHAKQEAgLTM3MCw3ICszNzAsNyBAQCBPcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
PiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZAogICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5lbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2Vz
RW5hYmxlZCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBPcHRpb25hbDxW
ZWN0b3I8c3RkOjpwYWlyPHVpbnQ2NF90LCBTdHJpbmc+Pj4gdXNlckNvbnRlbnRXb3JsZHM7Cisg
ICAgT3B0aW9uYWw8VmVjdG9yPHN0ZDo6cGFpcjxDb250ZW50V29ybGRJZGVudGlmaWVyLCBTdHJp
bmc+Pj4gdXNlckNvbnRlbnRXb3JsZHM7CiAgICAgZGVjb2RlciA+PiB1c2VyQ29udGVudFdvcmxk
czsKICAgICBpZiAoIXVzZXJDb250ZW50V29ybGRzKQogICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cy5oCmluZGV4IDc0MTM3NWUyYmI1ZTY4YzlhNWZlODY1NWYxODU1MWQ2NzdmNjI5ZmEuLmE4NTU1
MTQ3MWFhNWI1NjA1OTRjN2IzYzBkZmJkZDRmYjk2NGVkYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTE5Myw3ICsxOTMsNyBA
QCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgYm9vbCBlbnVtZXJhdGlu
Z0FsbE5ldHdvcmtJbnRlcmZhY2VzRW5hYmxlZCB7IGZhbHNlIH07CiAKICAgICAvLyBVc2VyQ29u
dGVudENvbnRyb2xsZXIgbWVtYmVycwotICAgIFZlY3RvcjxzdGQ6OnBhaXI8dWludDY0X3QsIFN0
cmluZz4+IHVzZXJDb250ZW50V29ybGRzOworICAgIFZlY3RvcjxzdGQ6OnBhaXI8Q29udGVudFdv
cmxkSWRlbnRpZmllciwgU3RyaW5nPj4gdXNlckNvbnRlbnRXb3JsZHM7CiAgICAgVmVjdG9yPFdl
YlVzZXJTY3JpcHREYXRhPiB1c2VyU2NyaXB0czsKICAgICBWZWN0b3I8V2ViVXNlclN0eWxlU2hl
ZXREYXRhPiB1c2VyU3R5bGVTaGVldHM7CiAgICAgVmVjdG9yPFdlYlNjcmlwdE1lc3NhZ2VIYW5k
bGVyRGF0YT4gbWVzc2FnZUhhbmRsZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5jcHAKaW5kZXggZGI3ZDMz
YzhkNTViYzk3YjkzMWEwYWY0NTg4NDlkMjQyNTExZmQ5Zi4uMDZiYTZjZjc2YjA0ZDlkNjU1NGU0
NWYzMTMxZWRlZjQyMmJlNDdmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuY3BwCkBAIC00NCw3ICs0NCw3
IEBAIE9wdGlvbmFsPFdlYlVzZXJTY3JpcHREYXRhPiBXZWJVc2VyU2NyaXB0RGF0YTo6ZGVjb2Rl
KElQQzo6RGVjb2RlciYgZGVjb2RlcikKICAgICBpZiAoIWlkZW50aWZpZXIpCiAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CiAgICAgCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IHdvcmxkSWRl
bnRpZmllcjsKKyAgICBPcHRpb25hbDxDb250ZW50V29ybGRJZGVudGlmaWVyPiB3b3JsZElkZW50
aWZpZXI7CiAgICAgZGVjb2RlciA+PiB3b3JsZElkZW50aWZpZXI7CiAgICAgaWYgKCF3b3JsZElk
ZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CkBAIC03MCw3ICs3MCw3IEBA
IE9wdGlvbmFsPFdlYlVzZXJTdHlsZVNoZWV0RGF0YT4gV2ViVXNlclN0eWxlU2hlZXREYXRhOjpk
ZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvCiAgICAgaWYgKCFpZGVudGlmaWVyKQogICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiB3b3JsZElk
ZW50aWZpZXI7CisgICAgT3B0aW9uYWw8Q29udGVudFdvcmxkSWRlbnRpZmllcj4gd29ybGRJZGVu
dGlmaWVyOwogICAgIGRlY29kZXIgPj4gd29ybGRJZGVudGlmaWVyOwogICAgIGlmICghd29ybGRJ
ZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwpAQCAtOTcsNyArOTcsNyBA
QCBPcHRpb25hbDxXZWJTY3JpcHRNZXNzYWdlSGFuZGxlckRhdGE+IFdlYlNjcmlwdE1lc3NhZ2VI
YW5kbGVyRGF0YTo6ZGVjb2RlKElQQzo6RAogICAgIGlmICghaWRlbnRpZmllcikKICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gd29ybGRJ
ZGVudGlmaWVyOworICAgIE9wdGlvbmFsPENvbnRlbnRXb3JsZElkZW50aWZpZXI+IHdvcmxkSWRl
bnRpZmllcjsKICAgICBkZWNvZGVyID4+IHdvcmxkSWRlbnRpZmllcjsKICAgICBpZiAoIXdvcmxk
SWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmgK
aW5kZXggNWNkYWU1NTJlZjE4ZDQ4OTM4NzFlNGNiNjQwMTdmNWU3YTQwNjlhOS4uZDE1NGYyMGE5
MWMxODBkZTI0MGZiNTQ4OGQ0ZDc4N2MyMTU1NTNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmgKQEAgLTI1
LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJDb250ZW50V29ybGRTaGFy
ZWQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJTY3JpcHQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1VzZXJTdHlsZVNoZWV0Lmg+CiAKQEAgLTQwLDcgKzQxLDcgQEAgc3RydWN0IFdlYlVzZXJTY3Jp
cHREYXRhIHsKICAgICBzdGF0aWMgT3B0aW9uYWw8V2ViVXNlclNjcmlwdERhdGE+IGRlY29kZShJ
UEM6OkRlY29kZXImKTsKIAogICAgIHVpbnQ2NF90IGlkZW50aWZpZXI7Ci0gICAgdWludDY0X3Qg
d29ybGRJZGVudGlmaWVyOworICAgIENvbnRlbnRXb3JsZElkZW50aWZpZXIgd29ybGRJZGVudGlm
aWVyOwogICAgIFdlYkNvcmU6OlVzZXJTY3JpcHQgdXNlclNjcmlwdDsKIH07CiAKQEAgLTQ5LDcg
KzUwLDcgQEAgc3RydWN0IFdlYlVzZXJTdHlsZVNoZWV0RGF0YSB7CiAgICAgc3RhdGljIE9wdGlv
bmFsPFdlYlVzZXJTdHlsZVNoZWV0RGF0YT4gZGVjb2RlKElQQzo6RGVjb2RlciYpOwogCiAgICAg
dWludDY0X3QgaWRlbnRpZmllcjsKLSAgICB1aW50NjRfdCB3b3JsZElkZW50aWZpZXI7CisgICAg
Q29udGVudFdvcmxkSWRlbnRpZmllciB3b3JsZElkZW50aWZpZXI7CiAgICAgV2ViQ29yZTo6VXNl
clN0eWxlU2hlZXQgdXNlclN0eWxlU2hlZXQ7CiB9OwogCkBAIC01OCw3ICs1OSw3IEBAIHN0cnVj
dCBXZWJTY3JpcHRNZXNzYWdlSGFuZGxlckRhdGEgewogICAgIHN0YXRpYyBPcHRpb25hbDxXZWJT
Y3JpcHRNZXNzYWdlSGFuZGxlckRhdGE+IGRlY29kZShJUEM6OkRlY29kZXImKTsKIAogICAgIHVp
bnQ2NF90IGlkZW50aWZpZXI7Ci0gICAgdWludDY0X3Qgd29ybGRJZGVudGlmaWVyOworICAgIENv
bnRlbnRXb3JsZElkZW50aWZpZXIgd29ybGRJZGVudGlmaWVyOwogICAgIFN0cmluZyBuYW1lOwog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRX
b3JsZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFdvcmxkLmNw
cAppbmRleCA0MWI2MDM3NTk0NTFiYmMxZTIyNjQ0NDE4NGViNmRjNDQwYzM5OWM4Li4zMmQ3YzNl
ZTRjMGNmYzliZTEzODg1OTNlNTgwZmZiZmFjYTNiMzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFdvcmxkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFdvcmxkLmNwcApAQCAtMzMsMTEgKzMzLDE4IEBACiAK
IG5hbWVzcGFjZSBBUEkgewogCi11aW50NjRfdCBDb250ZW50V29ybGRCYXNlOjpnZW5lcmF0ZUlk
ZW50aWZpZXIoKQorQ29udGVudFdvcmxkQmFzZTo6Q29udGVudFdvcmxkQmFzZShjb25zdCBXVEY6
OlN0cmluZyYgbmFtZSkKKyAgICA6IG1fbmFtZShuYW1lKQogewotICAgIHN0YXRpYyB1aW50NjRf
dCBpZGVudGlmaWVyID0gV2ViS2l0OjpwYWdlQ29udGVudFdvcmxkSWRlbnRpZmllcjsKKyAgICBz
dGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlLCBbXSB7
CisgICAgICAgIC8vIFRvIG1ha2Ugc3VyZSB3ZSBkb24ndCB1c2Ugb3VyIHNoYXJlZCBwYWdlQ29u
dGVudFdvcmxkIGlkZW50aWZpZXIgZm9yIHRoaXMKKyAgICAgICAgLy8gY29udGVudCB3b3JsZCB3
ZSdyZSBhYm91dCB0byBtYWtlLCBidXJuIHRocm91Z2ggb25lIGlkZW50aWZpZXIuCisgICAgICAg
IGF1dG8gaWRlbnRpZmllciA9IFdlYktpdDo6Q29udGVudFdvcmxkSWRlbnRpZmllcjo6Z2VuZXJh
dGUoKTsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChpZGVudGlmaWVyLCBpZGVudGlmaWVyLnRvVUlu
dDY0KCkgPj0gV2ViS2l0OjpwYWdlQ29udGVudFdvcmxkSWRlbnRpZmllcigpLnRvVUludDY0KCkp
OworICAgIH0pOwogCi0gICAgcmV0dXJuICsraWRlbnRpZmllcjsKKyAgICBtX2lkZW50aWZpZXIg
PSBXZWJLaXQ6OkNvbnRlbnRXb3JsZElkZW50aWZpZXI6OmdlbmVyYXRlKCk7CiB9CiAKIHN0YXRp
YyBIYXNoTWFwPFdURjo6U3RyaW5nLCBDb250ZW50V29ybGQqPiYgc2hhcmVkV29ybGRNYXAoKQpA
QCAtNTksMTMgKzY2LDEzIEBAIFJlZjxDb250ZW50V29ybGQ+IENvbnRlbnRXb3JsZDo6c2hhcmVk
V29ybGRXaXRoTmFtZShjb25zdCBXVEY6OlN0cmluZyYgbmFtZSkKIAogQ29udGVudFdvcmxkJiBD
b250ZW50V29ybGQ6OnBhZ2VDb250ZW50V29ybGQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxSZWZQdHI8Q29udGVudFdvcmxkPj4gd29ybGQoYWRvcHRSZWYobmV3IENvbnRlbnRXb3Js
ZChXZWJLaXQ6OnBhZ2VDb250ZW50V29ybGRJZGVudGlmaWVyKSkpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxSZWZQdHI8Q29udGVudFdvcmxkPj4gd29ybGQoYWRvcHRSZWYobmV3IENvbnRl
bnRXb3JsZChXZWJLaXQ6OnBhZ2VDb250ZW50V29ybGRJZGVudGlmaWVyKCkpKSk7CiAgICAgcmV0
dXJuICp3b3JsZC5nZXQoKTsKIH0KIAogQ29udGVudFdvcmxkJiBDb250ZW50V29ybGQ6OmRlZmF1
bHRDbGllbnRXb3JsZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZlB0cjxDb250
ZW50V29ybGQ+PiB3b3JsZChhZG9wdFJlZihuZXcgQ29udGVudFdvcmxkKGdlbmVyYXRlSWRlbnRp
ZmllcigpKSkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZWZQdHI8Q29udGVudFdvcmxk
Pj4gd29ybGQoYWRvcHRSZWYobmV3IENvbnRlbnRXb3JsZChXVEY6OlN0cmluZyB7IH0pKSk7CiAg
ICAgcmV0dXJuICp3b3JsZC5nZXQoKTsKIH0KIApAQCAtNzQsNyArODEsNyBAQCBDb250ZW50V29y
bGQ6OkNvbnRlbnRXb3JsZChjb25zdCBXVEY6OlN0cmluZyYgbmFtZSkKIHsKIH0KIAotQ29udGVu
dFdvcmxkOjpDb250ZW50V29ybGQodWludDY0X3QgaWRlbnRpZmllcikKK0NvbnRlbnRXb3JsZDo6
Q29udGVudFdvcmxkKFdlYktpdDo6Q29udGVudFdvcmxkSWRlbnRpZmllciBpZGVudGlmaWVyKQog
ICAgIDogQ29udGVudFdvcmxkQmFzZShpZGVudGlmaWVyKQogewogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRXb3JsZC5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRXb3JsZC5oCmluZGV4IGIzNGYxMjljNGNiYmViYzVl
NTYyYTNiOWFkOWYwMmIyMTlkYjc4OGEuLmU0MzY4YjIyZTFkMWJhNjdhMDAwN2M3YTM0NDQ1NTMw
OTYzNDAxZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250
ZW50V29ybGQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFdv
cmxkLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQVBJT2Jq
ZWN0LmgiCisjaW5jbHVkZSAiQ29udGVudFdvcmxkU2hhcmVkLmgiCiAjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBBUEkgewpAQCAtMzQsMzAgKzM1LDIyIEBAIGNs
YXNzIENvbnRlbnRXb3JsZEJhc2UgewogcHVibGljOgogICAgIHZpcnR1YWwgfkNvbnRlbnRXb3Js
ZEJhc2UoKSA9IGRlZmF1bHQ7CiAKLSAgICB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAgV2ViS2l0OjpDb250ZW50V29ybGRJZGVudGlmaWVy
IGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KICAgICBjb25zdCBX
VEY6OlN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQotICAgIHN0ZDo6cGFp
cjx1aW50NjRfdCwgV1RGOjpTdHJpbmc+IHdvcmxkRGF0YSgpIGNvbnN0IHsgcmV0dXJuIHsgaWRl
bnRpZmllcigpLCBuYW1lKCkgfTsgfQorICAgIHN0ZDo6cGFpcjxXZWJLaXQ6OkNvbnRlbnRXb3Js
ZElkZW50aWZpZXIsIFdURjo6U3RyaW5nPiB3b3JsZERhdGEoKSBjb25zdCB7IHJldHVybiB7IG1f
aWRlbnRpZmllciwgbV9uYW1lIH07IH0KIAogICAgIHZpcnR1YWwgdm9pZCByZWYoKSBjb25zdCA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgY29uc3QgPSAwOwogCi0gICAgc3RhdGljIHVp
bnQ2NF90IGdlbmVyYXRlSWRlbnRpZmllcigpOwotCiBwcm90ZWN0ZWQ6Ci0gICAgQ29udGVudFdv
cmxkQmFzZShjb25zdCBXVEY6OlN0cmluZyYgbmFtZSkKLSAgICAgICAgOiBtX2lkZW50aWZpZXIo
Z2VuZXJhdGVJZGVudGlmaWVyKCkpCi0gICAgICAgICwgbV9uYW1lKG5hbWUpCi0gICAgewotICAg
IH0KLQotICAgIENvbnRlbnRXb3JsZEJhc2UodWludDY0X3QgaWRlbnRpZmllcikKKyAgICBDb250
ZW50V29ybGRCYXNlKGNvbnN0IFdURjo6U3RyaW5nJiBuYW1lKTsKKyAgICBDb250ZW50V29ybGRC
YXNlKFdlYktpdDo6Q29udGVudFdvcmxkSWRlbnRpZmllciBpZGVudGlmaWVyKQogICAgICAgICA6
IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgIHsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAg
Ly8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGFuIE9iamVjdElkZW50aWZpZXIgb25jZSB3ZSBjYW4g
Z2V0IGFsbCBTY3JpcHRXb3JsZCByZWxhdGVkIGNsYXNzZXMgdG8gdXNlIE9iamVjdElkZW50aWZp
ZXIuCi0gICAgdWludDY0X3QgbV9pZGVudGlmaWVyOworICAgIFdlYktpdDo6Q29udGVudFdvcmxk
SWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgV1RGOjpTdHJpbmcgbV9uYW1lOwogfTsKIApA
QCAtNzQsNyArNjcsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQ29udGVu
dFdvcmxkKGNvbnN0IFdURjo6U3RyaW5nJik7Ci0gICAgZXhwbGljaXQgQ29udGVudFdvcmxkKHVp
bnQ2NF90IGlkZW50aWZpZXIpOworICAgIGV4cGxpY2l0IENvbnRlbnRXb3JsZChXZWJLaXQ6OkNv
bnRlbnRXb3JsZElkZW50aWZpZXIpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRXb3JsZC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRXb3JsZC5jcHAKaW5k
ZXggZGI5ZDAwMzhiNTIwMmEyN2YyYWM0YmE4M2I0MmIwMmU0NDdhYjI0Mi4uNjU5OTYzN2NmMGI3
MjAwOTU1NzY3NGRjMjY0NDgzOGExYzIyNjMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVVzZXJDb250ZW50V29ybGQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElVc2VyQ29udGVudFdvcmxkLmNwcApAQCAtNDcsNyArNDcsNyBAQCBV
c2VyQ29udGVudFdvcmxkOjpVc2VyQ29udGVudFdvcmxkKGNvbnN0IFdURjo6U3RyaW5nJiBuYW1l
KQogfQogCiBVc2VyQ29udGVudFdvcmxkOjpVc2VyQ29udGVudFdvcmxkKEZvck5vcm1hbFdvcmxk
T25seSkKLSAgICA6IENvbnRlbnRXb3JsZEJhc2UoV2ViS2l0OjpwYWdlQ29udGVudFdvcmxkSWRl
bnRpZmllcikKKyAgICA6IENvbnRlbnRXb3JsZEJhc2UoV2ViS2l0OjpwYWdlQ29udGVudFdvcmxk
SWRlbnRpZmllcigpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94
eS5jcHAKaW5kZXggMGM5OTNiYjc4YjFmOGUwYzc5OTEwODI5MGMwNzE0ZTEwYzNmZDcxNy4uOTg3
YTk4NjYxOGY5MGIyMWY3OWU5ZmRiYzBlYTAyNDFmYmVmZmE4MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJD
b250ZW50Q29udHJvbGxlclByb3h5LmNwcApAQCAtMTg0LDcgKzE4NCw3IEBAIHZvaWQgV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92ZVVzZXJDb250ZW50V29ybGRVc2VzKEFQSTo6
VXNlckNvbnRlbnRXCiAKIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92
ZVVzZXJDb250ZW50V29ybGRVc2VzKEhhc2hDb3VudGVkU2V0PFJlZlB0cjxBUEk6OlVzZXJDb250
ZW50V29ybGQ+PiYgd29ybGRzKQogewotICAgIFZlY3Rvcjx1aW50NjRfdD4gd29ybGRzVG9SZW1v
dmU7CisgICAgVmVjdG9yPENvbnRlbnRXb3JsZElkZW50aWZpZXI+IHdvcmxkc1RvUmVtb3ZlOwog
ICAgIGZvciAoYXV0byYgd29ybGRVc2VQYWlyIDogd29ybGRzKSB7CiAgICAgICAgIGlmIChzaG91
bGRTZW5kUmVtb3ZlVXNlckNvbnRlbnRXb3JsZHNNZXNzYWdlKCp3b3JsZFVzZVBhaXIua2V5Lmdl
dCgpLCB3b3JsZFVzZVBhaXIudmFsdWUpKQogICAgICAgICAgICAgd29ybGRzVG9SZW1vdmUuYXBw
ZW5kKHdvcmxkVXNlUGFpci5rZXktPmlkZW50aWZpZXIoKSk7CkBAIC0yMzYsNyArMjM2LDcgQEAg
dm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6cmVtb3ZlQWxsVXNlclNjcmlwdHMo
KQogICAgIGZvciAoYXV0byB1c2VyU2NyaXB0IDogbV91c2VyU2NyaXB0cy0+ZWxlbWVudHNPZlR5
cGU8QVBJOjpVc2VyU2NyaXB0PigpKQogICAgICAgICB3b3JsZHMuYWRkKGNvbnN0X2Nhc3Q8QVBJ
OjpVc2VyQ29udGVudFdvcmxkKj4oJnVzZXJTY3JpcHQtPnVzZXJDb250ZW50V29ybGQoKSkpOwog
Ci0gICAgVmVjdG9yPHVpbnQ2NF90PiB3b3JsZElkZW50aWZpZXJzOworICAgIFZlY3RvcjxDb250
ZW50V29ybGRJZGVudGlmaWVyPiB3b3JsZElkZW50aWZpZXJzOwogICAgIHdvcmxkSWRlbnRpZmll
cnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh3b3JsZHMuc2l6ZSgpKTsKICAgICBmb3IgKGNvbnN0
IGF1dG8mIHdvcmxkQ291bnRQYWlyIDogd29ybGRzKQogICAgICAgICB3b3JsZElkZW50aWZpZXJz
LnVuY2hlY2tlZEFwcGVuZCh3b3JsZENvdW50UGFpci5rZXktPmlkZW50aWZpZXIoKSk7CkBAIC0y
OTEsNyArMjkxLDcgQEAgdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6cmVtb3Zl
QWxsVXNlclN0eWxlU2hlZXRzKCkKICAgICBmb3IgKGF1dG8gdXNlclN0eWxlU2hlZXQgOiBtX3Vz
ZXJTdHlsZVNoZWV0cy0+ZWxlbWVudHNPZlR5cGU8QVBJOjpVc2VyU3R5bGVTaGVldD4oKSkKICAg
ICAgICAgd29ybGRzLmFkZChjb25zdF9jYXN0PEFQSTo6VXNlckNvbnRlbnRXb3JsZCo+KCZ1c2Vy
U3R5bGVTaGVldC0+dXNlckNvbnRlbnRXb3JsZCgpKSk7CiAKLSAgICBWZWN0b3I8dWludDY0X3Q+
IHdvcmxkSWRlbnRpZmllcnM7CisgICAgVmVjdG9yPENvbnRlbnRXb3JsZElkZW50aWZpZXI+IHdv
cmxkSWRlbnRpZmllcnM7CiAgICAgd29ybGRJZGVudGlmaWVycy5yZXNlcnZlSW5pdGlhbENhcGFj
aXR5KHdvcmxkcy5zaXplKCkpOwogICAgIGZvciAoY29uc3QgYXV0byYgd29ybGRDb3VudFBhaXIg
OiB3b3JsZHMpCiAgICAgICAgIHdvcmxkSWRlbnRpZmllcnMudW5jaGVja2VkQXBwZW5kKHdvcmxk
Q291bnRQYWlyLmtleS0+aWRlbnRpZmllcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxl
ci5jcHAKaW5kZXggMjc2ZjgxYjNlZGFhOTgzMDhhNDhhNzUyNTk1OTlkMzQwODUyNTRiMi4uNjky
OTRhZDk1ZWJjNmY1NTE3YjEwMjk0MjcwMzVhM2FjMTYyZjMxNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250
ZW50Q29udHJvbGxlci5jcHAKQEAgLTU5LDExICs1OSwxMSBAQCBzdGF0aWMgSGFzaE1hcDxVc2Vy
Q29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyLCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXIqPiYg
dXNlcgogICAgIHJldHVybiB1c2VyQ29udGVudENvbnRyb2xsZXJzOwogfQogCi10eXBlZGVmIEhh
c2hNYXA8dWludDY0X3QsIHN0ZDo6cGFpcjxSZWZQdHI8SW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3Js
ZD4sIHVuc2lnbmVkPj4gV29ybGRNYXA7Cit0eXBlZGVmIEhhc2hNYXA8Q29udGVudFdvcmxkSWRl
bnRpZmllciwgc3RkOjpwYWlyPFJlZlB0cjxJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkPiwgdW5z
aWduZWQ+PiBXb3JsZE1hcDsKIAogc3RhdGljIFdvcmxkTWFwJiB3b3JsZE1hcCgpCiB7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPFdvcmxkTWFwPiBtYXAoc3RkOjppbml0aWFsaXplcl9saXN0
PFdvcmxkTWFwOjpLZXlWYWx1ZVBhaXJUeXBlPiB7IHsgV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
OjppZGVudGlmaWVyRm9yTm9ybWFsV29ybGQoKSwgc3RkOjptYWtlX3BhaXIoJkluamVjdGVkQnVu
ZGxlU2NyaXB0V29ybGQ6Om5vcm1hbFdvcmxkKCksIDEpIH0gfSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFdvcmxkTWFwPiBtYXAoc3RkOjppbml0aWFsaXplcl9saXN0PFdvcmxkTWFwOjpL
ZXlWYWx1ZVBhaXJUeXBlPiB7IHsgcGFnZUNvbnRlbnRXb3JsZElkZW50aWZpZXIoKSwgc3RkOjpt
YWtlX3BhaXIoJkluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQ6Om5vcm1hbFdvcmxkKCksIDEpIH0g
fSk7CiAKICAgICByZXR1cm4gbWFwOwogfQpAQCAtOTUsMTYgKzk1LDE2IEBAIFdlYlVzZXJDb250
ZW50Q29udHJvbGxlcjo6fldlYlVzZXJDb250ZW50Q29udHJvbGxlcigpCiAgICAgdXNlckNvbnRl
bnRDb250cm9sbGVycygpLnJlbW92ZShtX2lkZW50aWZpZXIpOwogfQogCi1JbmplY3RlZEJ1bmRs
ZVNjcmlwdFdvcmxkKiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OndvcmxkRm9ySWRlbnRpZmll
cih1aW50NjRfdCBpZGVudGlmaWVyKQorSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCogV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyOjp3b3JsZEZvcklkZW50aWZpZXIoQ29udGVudFdvcmxkSWRlbnRp
ZmllciBpZGVudGlmaWVyKQogewogICAgIGF1dG8gaXRlcmF0b3IgPSB3b3JsZE1hcCgpLmZpbmQo
aWRlbnRpZmllcik7CiAgICAgcmV0dXJuIGl0ZXJhdG9yID09IHdvcmxkTWFwKCkuZW5kKCkgPyBu
dWxscHRyIDogaXRlcmF0b3ItPnZhbHVlLmZpcnN0LmdldCgpOwogfQogCi12b2lkIFdlYlVzZXJD
b250ZW50Q29udHJvbGxlcjo6YWRkVXNlckNvbnRlbnRXb3JsZChjb25zdCBzdGQ6OnBhaXI8dWlu
dDY0X3QsIFN0cmluZz4mIHdvcmxkKQordm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OmFk
ZFVzZXJDb250ZW50V29ybGQoY29uc3Qgc3RkOjpwYWlyPENvbnRlbnRXb3JsZElkZW50aWZpZXIs
IFN0cmluZz4mIHdvcmxkKQogewogICAgIEFTU0VSVCh3b3JsZC5maXJzdCk7Ci0gICAgaWYgKHdv
cmxkLmZpcnN0ID09IHBhZ2VDb250ZW50V29ybGRJZGVudGlmaWVyKQorICAgIGlmICh3b3JsZC5m
aXJzdCA9PSBwYWdlQ29udGVudFdvcmxkSWRlbnRpZmllcigpKQogICAgICAgICByZXR1cm47CiAK
ICAgICB3b3JsZE1hcCgpLmVuc3VyZSh3b3JsZC5maXJzdCwgWyZdIHsKQEAgLTExMywyNyArMTEz
LDI3IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjphZGRVc2VyQ29udGVudFdvcmxk
KGNvbnN0IHN0ZDo6cGFpcjx1aW50NjRfdCwgU3RyCiAgICAgICAgIC8vIHVzZSB0aGUgZXhpc3Rp
bmcgd29ybGQgY3JlYXRlZCBieSB0aGUgd2ViIGV4dGVuc2lvbiBpZiBhbnkuIFRoZSB3b3JsZCBu
YW1lIGlzIHVzZWQKICAgICAgICAgLy8gYXMgdGhlIGlkZW50aWZpZXIuCiAgICAgICAgIGlmIChh
dXRvKiBleGlzdGluZ1dvcmxkID0gSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZDo6ZmluZCh3b3Js
ZC5zZWNvbmQpKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKFJlZjxJbmplY3Rl
ZEJ1bmRsZVNjcmlwdFdvcmxkPigqZXhpc3RpbmdXb3JsZCksIHBhZ2VDb250ZW50V29ybGRJZGVu
dGlmaWVyKTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihSZWY8SW5qZWN0ZWRC
dW5kbGVTY3JpcHRXb3JsZD4oKmV4aXN0aW5nV29ybGQpLCAxKTsKICNlbmRpZgotICAgICAgICBy
ZXR1cm4gc3RkOjptYWtlX3BhaXIoSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZDo6Y3JlYXRlKHdv
cmxkLnNlY29uZCksIHBhZ2VDb250ZW50V29ybGRJZGVudGlmaWVyKTsKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bWFrZV9wYWlyKEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQ6OmNyZWF0ZSh3b3JsZC5z
ZWNvbmQpLCAxKTsKICAgICB9KTsKIH0KIAotdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6
OmFkZFVzZXJDb250ZW50V29ybGRzKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8dWludDY0X3QsIFN0
cmluZz4+JiB3b3JsZHMpCit2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6YWRkVXNlckNv
bnRlbnRXb3JsZHMoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxDb250ZW50V29ybGRJZGVudGlmaWVy
LCBTdHJpbmc+PiYgd29ybGRzKQogewogICAgIGZvciAoYXV0byYgd29ybGQgOiB3b3JsZHMpCiAg
ICAgICAgIGFkZFVzZXJDb250ZW50V29ybGQod29ybGQpOwogfQogCi12b2lkIFdlYlVzZXJDb250
ZW50Q29udHJvbGxlcjo6cmVtb3ZlVXNlckNvbnRlbnRXb3JsZHMoY29uc3QgVmVjdG9yPHVpbnQ2
NF90PiYgd29ybGRJZGVudGlmaWVycykKK3ZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpy
ZW1vdmVVc2VyQ29udGVudFdvcmxkcyhjb25zdCBWZWN0b3I8Q29udGVudFdvcmxkSWRlbnRpZmll
cj4mIHdvcmxkSWRlbnRpZmllcnMpCiB7CiAgICAgZm9yIChhdXRvJiB3b3JsZElkZW50aWZpZXIg
OiB3b3JsZElkZW50aWZpZXJzKSB7CiAgICAgICAgIEFTU0VSVCh3b3JsZElkZW50aWZpZXIpOwot
ICAgICAgICBBU1NFUlQod29ybGRJZGVudGlmaWVyICE9IDEpOworICAgICAgICBBU1NFUlQod29y
bGRJZGVudGlmaWVyICE9IHBhZ2VDb250ZW50V29ybGRJZGVudGlmaWVyKCkpOwogCiAgICAgICAg
IGF1dG8gaXQgPSB3b3JsZE1hcCgpLmZpbmQod29ybGRJZGVudGlmaWVyKTsKICAgICAgICAgaWYg
KGl0ID09IHdvcmxkTWFwKCkuZW5kKCkpIHsKLSAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiVHJ5
aW5nIHRvIHJlbW92ZSBhIFVzZXJDb250ZW50V29ybGQgKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRv
ZXMgbm90IGV4aXN0LiIsIHdvcmxkSWRlbnRpZmllcik7CisgICAgICAgICAgICBXVEZMb2dBbHdh
eXMoIlRyeWluZyB0byByZW1vdmUgYSBVc2VyQ29udGVudFdvcmxkIChpZD0lIiBQUkl1NjQgIikg
dGhhdCBkb2VzIG5vdCBleGlzdC4iLCB3b3JsZElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtMTQ5LDcgKzE0OSw3IEBAIHZvaWQgV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyOjphZGRVc2VyU2NyaXB0cyhWZWN0b3I8V2ViVXNlclNjcmlw
dERhdGE+JiYgdXNlclNjCiAgICAgZm9yIChjb25zdCBhdXRvJiB1c2VyU2NyaXB0RGF0YSA6IHVz
ZXJTY3JpcHRzKSB7CiAgICAgICAgIGF1dG8gaXQgPSB3b3JsZE1hcCgpLmZpbmQodXNlclNjcmlw
dERhdGEud29ybGRJZGVudGlmaWVyKTsKICAgICAgICAgaWYgKGl0ID09IHdvcmxkTWFwKCkuZW5k
KCkpIHsKLSAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiVHJ5aW5nIHRvIGFkZCBhIFVzZXJTY3Jp
cHQgdG8gYSBVc2VyQ29udGVudFdvcmxkIChpZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBl
eGlzdC4iLCB1c2VyU2NyaXB0RGF0YS53b3JsZElkZW50aWZpZXIpOworICAgICAgICAgICAgV1RG
TG9nQWx3YXlzKCJUcnlpbmcgdG8gYWRkIGEgVXNlclNjcmlwdCB0byBhIFVzZXJDb250ZW50V29y
bGQgKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRvZXMgbm90IGV4aXN0LiIsIHVzZXJTY3JpcHREYXRh
LndvcmxkSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICB9CiAKQEAgLTE1OCwyMyArMTU4LDIzIEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyOjphZGRVc2VyU2NyaXB0cyhWZWN0b3I8V2ViVXNlclNjcmlwdERhdGE+JiYgdXNlclNjCiAg
ICAgfQogfQogCi12b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6cmVtb3ZlVXNlclNjcmlw
dCh1aW50NjRfdCB3b3JsZElkZW50aWZpZXIsIHVpbnQ2NF90IHVzZXJTY3JpcHRJZGVudGlmaWVy
KQordm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OnJlbW92ZVVzZXJTY3JpcHQoQ29udGVu
dFdvcmxkSWRlbnRpZmllciB3b3JsZElkZW50aWZpZXIsIHVpbnQ2NF90IHVzZXJTY3JpcHRJZGVu
dGlmaWVyKQogewogICAgIGF1dG8gaXQgPSB3b3JsZE1hcCgpLmZpbmQod29ybGRJZGVudGlmaWVy
KTsKICAgICBpZiAoaXQgPT0gd29ybGRNYXAoKS5lbmQoKSkgewotICAgICAgICBXVEZMb2dBbHdh
eXMoIlRyeWluZyB0byByZW1vdmUgYSBVc2VyU2NyaXB0IGZyb20gYSBVc2VyQ29udGVudFdvcmxk
IChpZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlzdC4iLCB3b3JsZElkZW50aWZpZXIp
OworICAgICAgICBXVEZMb2dBbHdheXMoIlRyeWluZyB0byByZW1vdmUgYSBVc2VyU2NyaXB0IGZy
b20gYSBVc2VyQ29udGVudFdvcmxkIChpZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlz
dC4iLCB3b3JsZElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKICAgICByZW1vdmVVc2VyU2NyaXB0SW50ZXJuYWwoKml0LT52YWx1ZS5maXJzdCwgdXNlclNj
cmlwdElkZW50aWZpZXIpOwogfQogCi12b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6cmVt
b3ZlQWxsVXNlclNjcmlwdHMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYgd29ybGRJZGVudGlmaWVy
cykKK3ZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVBbGxVc2VyU2NyaXB0cyhj
b25zdCBWZWN0b3I8Q29udGVudFdvcmxkSWRlbnRpZmllcj4mIHdvcmxkSWRlbnRpZmllcnMpCiB7
CiAgICAgZm9yIChhdXRvJiB3b3JsZElkZW50aWZpZXIgOiB3b3JsZElkZW50aWZpZXJzKSB7CiAg
ICAgICAgIGF1dG8gaXQgPSB3b3JsZE1hcCgpLmZpbmQod29ybGRJZGVudGlmaWVyKTsKICAgICAg
ICAgaWYgKGl0ID09IHdvcmxkTWFwKCkuZW5kKCkpIHsKLSAgICAgICAgICAgIFdURkxvZ0Fsd2F5
cygiVHJ5aW5nIHRvIHJlbW92ZSBhbGwgVXNlclNjcmlwdHMgZnJvbSBhIFVzZXJDb250ZW50V29y
bGQgKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRvZXMgbm90IGV4aXN0LiIsIHdvcmxkSWRlbnRpZmll
cik7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIlRyeWluZyB0byByZW1vdmUgYWxsIFVzZXJT
Y3JpcHRzIGZyb20gYSBVc2VyQ29udGVudFdvcmxkIChpZD0lIiBQUkl1NjQgIikgdGhhdCBkb2Vz
IG5vdCBleGlzdC4iLCB3b3JsZElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIApAQCAtMTg3LDcgKzE4Nyw3IEBAIHZvaWQgV2ViVXNlckNvbnRl
bnRDb250cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldHMoY29uc3QgVmVjdG9yPFdlYlVzZXJTdHls
ZVNoZWV0CiAgICAgZm9yIChjb25zdCBhdXRvJiB1c2VyU3R5bGVTaGVldERhdGEgOiB1c2VyU3R5
bGVTaGVldHMpIHsKICAgICAgICAgYXV0byBpdCA9IHdvcmxkTWFwKCkuZmluZCh1c2VyU3R5bGVT
aGVldERhdGEud29ybGRJZGVudGlmaWVyKTsKICAgICAgICAgaWYgKGl0ID09IHdvcmxkTWFwKCku
ZW5kKCkpIHsKLSAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiVHJ5aW5nIHRvIGFkZCBhIFVzZXJT
dHlsZVNoZWV0IHRvIGEgVXNlckNvbnRlbnRXb3JsZCAoaWQ9JSIgUFJJdTY0ICIpIHRoYXQgZG9l
cyBub3QgZXhpc3QuIiwgdXNlclN0eWxlU2hlZXREYXRhLndvcmxkSWRlbnRpZmllcik7CisgICAg
ICAgICAgICBXVEZMb2dBbHdheXMoIlRyeWluZyB0byBhZGQgYSBVc2VyU3R5bGVTaGVldCB0byBh
IFVzZXJDb250ZW50V29ybGQgKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRvZXMgbm90IGV4aXN0LiIs
IHVzZXJTdHlsZVNoZWV0RGF0YS53b3JsZElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgfQogICAgICAgICAKQEAgLTE5OCwyNCArMTk4LDI0IEBA
IHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldHMoY29uc3Qg
VmVjdG9yPFdlYlVzZXJTdHlsZVNoZWV0CiAgICAgaW52YWxpZGF0ZUluamVjdGVkU3R5bGVTaGVl
dENhY2hlSW5BbGxGcmFtZXNJbkFsbFBhZ2VzKCk7CiB9CiAKLXZvaWQgV2ViVXNlckNvbnRlbnRD
b250cm9sbGVyOjpyZW1vdmVVc2VyU3R5bGVTaGVldCh1aW50NjRfdCB3b3JsZElkZW50aWZpZXIs
IHVpbnQ2NF90IHVzZXJTdHlsZVNoZWV0SWRlbnRpZmllcikKK3ZvaWQgV2ViVXNlckNvbnRlbnRD
b250cm9sbGVyOjpyZW1vdmVVc2VyU3R5bGVTaGVldChDb250ZW50V29ybGRJZGVudGlmaWVyIHdv
cmxkSWRlbnRpZmllciwgdWludDY0X3QgdXNlclN0eWxlU2hlZXRJZGVudGlmaWVyKQogewogICAg
IGF1dG8gaXQgPSB3b3JsZE1hcCgpLmZpbmQod29ybGRJZGVudGlmaWVyKTsKICAgICBpZiAoaXQg
PT0gd29ybGRNYXAoKS5lbmQoKSkgewotICAgICAgICBXVEZMb2dBbHdheXMoIlRyeWluZyB0byBy
ZW1vdmUgYSBVc2VyU3R5bGVTaGVldCBmcm9tIGEgVXNlckNvbnRlbnRXb3JsZCAoaWQ9JSIgUFJJ
dTY0ICIpIHRoYXQgZG9lcyBub3QgZXhpc3QuIiwgd29ybGRJZGVudGlmaWVyKTsKKyAgICAgICAg
V1RGTG9nQWx3YXlzKCJUcnlpbmcgdG8gcmVtb3ZlIGEgVXNlclN0eWxlU2hlZXQgZnJvbSBhIFVz
ZXJDb250ZW50V29ybGQgKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRvZXMgbm90IGV4aXN0LiIsIHdv
cmxkSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IHJlbW92ZVVzZXJTdHlsZVNoZWV0SW50ZXJuYWwoKml0LT52YWx1ZS5maXJzdCwgdXNlclN0eWxl
U2hlZXRJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OnJl
bW92ZUFsbFVzZXJTdHlsZVNoZWV0cyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JiB3b3JsZElkZW50
aWZpZXJzKQordm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OnJlbW92ZUFsbFVzZXJTdHls
ZVNoZWV0cyhjb25zdCBWZWN0b3I8Q29udGVudFdvcmxkSWRlbnRpZmllcj4mIHdvcmxkSWRlbnRp
ZmllcnMpCiB7CiAgICAgYm9vbCBzaGVldHNDaGFuZ2VkID0gZmFsc2U7CiAgICAgZm9yIChhdXRv
JiB3b3JsZElkZW50aWZpZXIgOiB3b3JsZElkZW50aWZpZXJzKSB7CiAgICAgICAgIGF1dG8gaXQg
PSB3b3JsZE1hcCgpLmZpbmQod29ybGRJZGVudGlmaWVyKTsKICAgICAgICAgaWYgKGl0ID09IHdv
cmxkTWFwKCkuZW5kKCkpIHsKLSAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiVHJ5aW5nIHRvIHJl
bW92ZSBhbGwgVXNlclN0eWxlU2hlZXRzIGZyb20gYSBVc2VyQ29udGVudFdvcmxkIChpZD0lIiBQ
Ukl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlzdC4iLCB3b3JsZElkZW50aWZpZXIpOworICAgICAg
ICAgICAgV1RGTG9nQWx3YXlzKCJUcnlpbmcgdG8gcmVtb3ZlIGFsbCBVc2VyU3R5bGVTaGVldHMg
ZnJvbSBhIFVzZXJDb250ZW50V29ybGQgKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRvZXMgbm90IGV4
aXN0LiIsIHdvcmxkSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogCkBAIC0yNzgsNyArMjc4LDcgQEAgdm9pZCBXZWJVc2VyQ29udGVudENvbnRy
b2xsZXI6OmFkZFVzZXJTY3JpcHRNZXNzYWdlSGFuZGxlcnMoY29uc3QgVmVjdG9yPFdlYlNjcmkK
ICAgICBmb3IgKGF1dG8mIGhhbmRsZXIgOiBzY3JpcHRNZXNzYWdlSGFuZGxlcnMpIHsKICAgICAg
ICAgYXV0byBpdCA9IHdvcmxkTWFwKCkuZmluZChoYW5kbGVyLndvcmxkSWRlbnRpZmllcik7CiAg
ICAgICAgIGlmIChpdCA9PSB3b3JsZE1hcCgpLmVuZCgpKSB7Ci0gICAgICAgICAgICBXVEZMb2dB
bHdheXMoIlRyeWluZyB0byBhZGQgYSBVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXIgdG8gYSBVc2Vy
Q29udGVudFdvcmxkIChpZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlzdC4iLCBoYW5k
bGVyLndvcmxkSWRlbnRpZmllcik7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIlRyeWluZyB0
byBhZGQgYSBVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXIgdG8gYSBVc2VyQ29udGVudFdvcmxkIChp
ZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlzdC4iLCBoYW5kbGVyLndvcmxkSWRlbnRp
Zmllci50b1VJbnQ2NCgpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKQEAg
LTI4OSwxMiArMjg5LDEyIEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjphZGRVc2Vy
U2NyaXB0TWVzc2FnZUhhbmRsZXJzKGNvbnN0IFZlY3RvcjxXZWJTY3JpCiAjZW5kaWYKIH0KIAot
dm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OnJlbW92ZVVzZXJTY3JpcHRNZXNzYWdlSGFu
ZGxlcih1aW50NjRfdCB3b3JsZElkZW50aWZpZXIsIHVpbnQ2NF90IHVzZXJTY3JpcHRNZXNzYWdl
SGFuZGxlcklkZW50aWZpZXIpCit2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6cmVtb3Zl
VXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVyKENvbnRlbnRXb3JsZElkZW50aWZpZXIgd29ybGRJZGVu
dGlmaWVyLCB1aW50NjRfdCB1c2VyU2NyaXB0TWVzc2FnZUhhbmRsZXJJZGVudGlmaWVyKQogewog
I2lmIEVOQUJMRShVU0VSX01FU1NBR0VfSEFORExFUlMpCiAgICAgYXV0byBpdCA9IHdvcmxkTWFw
KCkuZmluZCh3b3JsZElkZW50aWZpZXIpOwogICAgIGlmIChpdCA9PSB3b3JsZE1hcCgpLmVuZCgp
KSB7Ci0gICAgICAgIFdURkxvZ0Fsd2F5cygiVHJ5aW5nIHRvIHJlbW92ZSBhIFVzZXJTY3JpcHRN
ZXNzYWdlSGFuZGxlciBmcm9tIGEgVXNlckNvbnRlbnRXb3JsZCAoaWQ9JSIgUFJJdTY0ICIpIHRo
YXQgZG9lcyBub3QgZXhpc3QuIiwgd29ybGRJZGVudGlmaWVyKTsKKyAgICAgICAgV1RGTG9nQWx3
YXlzKCJUcnlpbmcgdG8gcmVtb3ZlIGEgVXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVyIGZyb20gYSBV
c2VyQ29udGVudFdvcmxkIChpZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlzdC4iLCB3
b3JsZElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAg
LTMwNSwxNCArMzA1LDE0IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVV
c2VyU2NyaXB0TWVzc2FnZUhhbmRsZXIodWludDY0X3Qgd29ybGRJZGVuCiAjZW5kaWYKIH0KIAot
dm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OnJlbW92ZUFsbFVzZXJTY3JpcHRNZXNzYWdl
SGFuZGxlcnMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYgd29ybGRJZGVudGlmaWVycykKK3ZvaWQg
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVBbGxVc2VyU2NyaXB0TWVzc2FnZUhhbmRs
ZXJzKGNvbnN0IFZlY3RvcjxDb250ZW50V29ybGRJZGVudGlmaWVyPiYgd29ybGRJZGVudGlmaWVy
cykKIHsKICNpZiBFTkFCTEUoVVNFUl9NRVNTQUdFX0hBTkRMRVJTKQogICAgIGJvb2wgdXNlck1l
c3NhZ2VIYW5kbGVyc0NoYW5nZWQgPSBmYWxzZTsKICAgICBmb3IgKGF1dG8mIHdvcmxkSWRlbnRp
ZmllciA6IHdvcmxkSWRlbnRpZmllcnMpIHsKICAgICAgICAgYXV0byBpdCA9IHdvcmxkTWFwKCku
ZmluZCh3b3JsZElkZW50aWZpZXIpOwogICAgICAgICBpZiAoaXQgPT0gd29ybGRNYXAoKS5lbmQo
KSkgewotICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJUcnlpbmcgdG8gcmVtb3ZlIGFsbCBVc2Vy
U2NyaXB0TWVzc2FnZUhhbmRsZXIgZnJvbSBhIFVzZXJDb250ZW50V29ybGQgKGlkPSUiIFBSSXU2
NCAiKSB0aGF0IGRvZXMgbm90IGV4aXN0LiIsIHdvcmxkSWRlbnRpZmllcik7CisgICAgICAgICAg
ICBXVEZMb2dBbHdheXMoIlRyeWluZyB0byByZW1vdmUgYWxsIFVzZXJTY3JpcHRNZXNzYWdlSGFu
ZGxlciBmcm9tIGEgVXNlckNvbnRlbnRXb3JsZCAoaWQ9JSIgUFJJdTY0ICIpIHRoYXQgZG9lcyBu
b3QgZXhpc3QuIiwgd29ybGRJZGVudGlmaWVyLnRvVUludDY0KCkpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9V
c2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuaAppbmRleCA0OGU3
ZDZhYzVjN2UyZDk1YTJjMWE4MjYwYzk0OTAwYmViMGFjOGYzLi45NTg4NTY3MTcyZDRjOGIyYmE4
MWFhMjJkM2NjNzY4ZmIyNTVlZGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5oCkBA
IC02NCwxMSArNjQsMTAgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlVXNlclN0eWxlU2hlZXRz
KEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQmKTsKICAgICB2b2lkIHJlbW92ZUFsbFVzZXJDb250
ZW50KCk7CiAKLSAgICBzdGF0aWMgdWludDY0X3QgaWRlbnRpZmllckZvck5vcm1hbFdvcmxkKCkg
eyByZXR1cm4gMTsgfQotICAgIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqIHdvcmxkRm9ySWRl
bnRpZmllcih1aW50NjRfdCk7CisgICAgSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCogd29ybGRG
b3JJZGVudGlmaWVyKENvbnRlbnRXb3JsZElkZW50aWZpZXIpOwogCi0gICAgdm9pZCBhZGRVc2Vy
Q29udGVudFdvcmxkcyhjb25zdCBWZWN0b3I8c3RkOjpwYWlyPHVpbnQ2NF90LCBTdHJpbmc+PiYp
OwotICAgIHZvaWQgYWRkVXNlckNvbnRlbnRXb3JsZChjb25zdCBzdGQ6OnBhaXI8dWludDY0X3Qs
IFN0cmluZz4mKTsKKyAgICB2b2lkIGFkZFVzZXJDb250ZW50V29ybGRzKGNvbnN0IFZlY3Rvcjxz
dGQ6OnBhaXI8Q29udGVudFdvcmxkSWRlbnRpZmllciwgU3RyaW5nPj4mKTsKKyAgICB2b2lkIGFk
ZFVzZXJDb250ZW50V29ybGQoY29uc3Qgc3RkOjpwYWlyPENvbnRlbnRXb3JsZElkZW50aWZpZXIs
IFN0cmluZz4mKTsKICAgICB2b2lkIGFkZFVzZXJTY3JpcHRzKFZlY3RvcjxXZWJVc2VyU2NyaXB0
RGF0YT4mJiwgSW5qZWN0VXNlclNjcmlwdEltbWVkaWF0ZWx5KTsKICAgICB2b2lkIGFkZFVzZXJT
dHlsZVNoZWV0cyhjb25zdCBWZWN0b3I8V2ViVXNlclN0eWxlU2hlZXREYXRhPiYpOwogICAgIHZv
aWQgYWRkVXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVycyhjb25zdCBWZWN0b3I8V2ViU2NyaXB0TWVz
c2FnZUhhbmRsZXJEYXRhPiYpOwpAQCAtOTIsMTYgKzkxLDE2IEBAIHByaXZhdGU6CiAgICAgLy8g
SVBDOjpNZXNzYWdlUmVjZWl2ZXIuCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKIAotICAgIHZvaWQgcmVtb3ZlVXNl
ckNvbnRlbnRXb3JsZHMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYpOworICAgIHZvaWQgcmVtb3Zl
VXNlckNvbnRlbnRXb3JsZHMoY29uc3QgVmVjdG9yPENvbnRlbnRXb3JsZElkZW50aWZpZXI+Jik7
CiAKLSAgICB2b2lkIHJlbW92ZVVzZXJTY3JpcHQodWludDY0X3Qgd29ybGRJZGVudGlmaWVyLCB1
aW50NjRfdCB1c2VyU2NyaXB0SWRlbnRpZmllcik7Ci0gICAgdm9pZCByZW1vdmVBbGxVc2VyU2Ny
aXB0cyhjb25zdCBWZWN0b3I8dWludDY0X3Q+Jik7CisgICAgdm9pZCByZW1vdmVVc2VyU2NyaXB0
KENvbnRlbnRXb3JsZElkZW50aWZpZXIsIHVpbnQ2NF90IHVzZXJTY3JpcHRJZGVudGlmaWVyKTsK
KyAgICB2b2lkIHJlbW92ZUFsbFVzZXJTY3JpcHRzKGNvbnN0IFZlY3RvcjxDb250ZW50V29ybGRJ
ZGVudGlmaWVyPiYpOwogCi0gICAgdm9pZCByZW1vdmVVc2VyU3R5bGVTaGVldCh1aW50NjRfdCB3
b3JsZElkZW50aWZpZXIsIHVpbnQ2NF90IHVzZXJTY3JpcHRJZGVudGlmaWVyKTsKLSAgICB2b2lk
IHJlbW92ZUFsbFVzZXJTdHlsZVNoZWV0cyhjb25zdCBWZWN0b3I8dWludDY0X3Q+Jik7CisgICAg
dm9pZCByZW1vdmVVc2VyU3R5bGVTaGVldChDb250ZW50V29ybGRJZGVudGlmaWVyLCB1aW50NjRf
dCB1c2VyU2NyaXB0SWRlbnRpZmllcik7CisgICAgdm9pZCByZW1vdmVBbGxVc2VyU3R5bGVTaGVl
dHMoY29uc3QgVmVjdG9yPENvbnRlbnRXb3JsZElkZW50aWZpZXI+Jik7CiAKLSAgICB2b2lkIHJl
bW92ZVVzZXJTY3JpcHRNZXNzYWdlSGFuZGxlcih1aW50NjRfdCB3b3JsZElkZW50aWZpZXIsIHVp
bnQ2NF90IHVzZXJTY3JpcHRJZGVudGlmaWVyKTsKLSAgICB2b2lkIHJlbW92ZUFsbFVzZXJTY3Jp
cHRNZXNzYWdlSGFuZGxlcnMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYpOworICAgIHZvaWQgcmVt
b3ZlVXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVyKENvbnRlbnRXb3JsZElkZW50aWZpZXIsIHVpbnQ2
NF90IHVzZXJTY3JpcHRJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbW92ZUFsbFVzZXJTY3JpcHRN
ZXNzYWdlSGFuZGxlcnMoY29uc3QgVmVjdG9yPENvbnRlbnRXb3JsZElkZW50aWZpZXI+Jik7CiAK
ICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAgIHZvaWQgcmVtb3ZlQ29udGVudFJ1
bGVMaXN0KGNvbnN0IFN0cmluZyYgbmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29u
dHJvbGxlci5tZXNzYWdlcy5pbgppbmRleCA0N2E1YTZmNDdhOTUwOTJkNmI1NjkxNzFjYzhlODAy
MTYyZjc3YWMyLi41NzQyNTlhYTc0NTI2YWU5MTUzZTM2Y2QwYjE2NzZkMDYwNmM2ZTRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRl
bnRDb250cm9sbGVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9V
c2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIubWVzc2FnZXMuaW4KQEAgLTI0LDIw
ICsyNCwyMCBAQAogICovCiAKIG1lc3NhZ2VzIC0+IFdlYlVzZXJDb250ZW50Q29udHJvbGxlciB7
Ci0gICAgQWRkVXNlckNvbnRlbnRXb3JsZHMoVmVjdG9yPHN0ZDo6cGFpcjx1aW50NjRfdCwgU3Ry
aW5nPj4gd29ybGRzKTsKLSAgICBSZW1vdmVVc2VyQ29udGVudFdvcmxkcyhWZWN0b3I8dWludDY0
X3Q+IHdvcmxkSWRlbnRpZmllcnMpOworICAgIEFkZFVzZXJDb250ZW50V29ybGRzKFZlY3Rvcjxz
dGQ6OnBhaXI8V2ViS2l0OjpDb250ZW50V29ybGRJZGVudGlmaWVyLCBTdHJpbmc+PiB3b3JsZHMp
OworICAgIFJlbW92ZVVzZXJDb250ZW50V29ybGRzKFZlY3RvcjxXZWJLaXQ6OkNvbnRlbnRXb3Js
ZElkZW50aWZpZXI+IHdvcmxkSWRlbnRpZmllcnMpOwogCiAgICAgQWRkVXNlclNjcmlwdHMoVmVj
dG9yPHN0cnVjdCBXZWJLaXQ6OldlYlVzZXJTY3JpcHREYXRhPiB1c2VyU2NyaXB0cywgZW51bTpi
b29sIFdlYktpdDo6SW5qZWN0VXNlclNjcmlwdEltbWVkaWF0ZWx5IGltbWVkaWF0ZWx5KTsKLSAg
ICBSZW1vdmVVc2VyU2NyaXB0KHVpbnQ2NF90IHdvcmxkSWRlbnRpZmllciwgdWludDY0X3QgaWRl
bnRpZmllcik7Ci0gICAgUmVtb3ZlQWxsVXNlclNjcmlwdHMoVmVjdG9yPHVpbnQ2NF90PiB3b3Js
ZElkZW50aWZpZXJzKTsKKyAgICBSZW1vdmVVc2VyU2NyaXB0KFdlYktpdDo6Q29udGVudFdvcmxk
SWRlbnRpZmllciB3b3JsZElkZW50aWZpZXIsIHVpbnQ2NF90IGlkZW50aWZpZXIpOworICAgIFJl
bW92ZUFsbFVzZXJTY3JpcHRzKFZlY3RvcjxXZWJLaXQ6OkNvbnRlbnRXb3JsZElkZW50aWZpZXI+
IHdvcmxkSWRlbnRpZmllcnMpOwogCiAgICAgQWRkVXNlclN0eWxlU2hlZXRzKFZlY3RvcjxzdHJ1
Y3QgV2ViS2l0OjpXZWJVc2VyU3R5bGVTaGVldERhdGE+IHVzZXJTdHlsZVNoZWV0cyk7Ci0gICAg
UmVtb3ZlVXNlclN0eWxlU2hlZXQodWludDY0X3Qgd29ybGRJZGVudGlmaWVyLCB1aW50NjRfdCBp
ZGVudGlmaWVyKTsKLSAgICBSZW1vdmVBbGxVc2VyU3R5bGVTaGVldHMoVmVjdG9yPHVpbnQ2NF90
PiB3b3JsZElkZW50aWZpZXJzKTsKKyAgICBSZW1vdmVVc2VyU3R5bGVTaGVldChXZWJLaXQ6OkNv
bnRlbnRXb3JsZElkZW50aWZpZXIgd29ybGRJZGVudGlmaWVyLCB1aW50NjRfdCBpZGVudGlmaWVy
KTsKKyAgICBSZW1vdmVBbGxVc2VyU3R5bGVTaGVldHMoVmVjdG9yPFdlYktpdDo6Q29udGVudFdv
cmxkSWRlbnRpZmllcj4gd29ybGRJZGVudGlmaWVycyk7CiAKICAgICBBZGRVc2VyU2NyaXB0TWVz
c2FnZUhhbmRsZXJzKFZlY3RvcjxzdHJ1Y3QgV2ViS2l0OjpXZWJTY3JpcHRNZXNzYWdlSGFuZGxl
ckRhdGE+IHNjcmlwdE1lc3NhZ2VIYW5kbGVycyk7Ci0gICAgUmVtb3ZlVXNlclNjcmlwdE1lc3Nh
Z2VIYW5kbGVyKHVpbnQ2NF90IHdvcmxkSWRlbnRpZmllciwgdWludDY0X3QgaWRlbnRpZmllcik7
Ci0gICAgUmVtb3ZlQWxsVXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVycyhWZWN0b3I8dWludDY0X3Q+
IHdvcmxkSWRlbnRpZmllcnMpOworICAgIFJlbW92ZVVzZXJTY3JpcHRNZXNzYWdlSGFuZGxlcihX
ZWJLaXQ6OkNvbnRlbnRXb3JsZElkZW50aWZpZXIgd29ybGRJZGVudGlmaWVyLCB1aW50NjRfdCBp
ZGVudGlmaWVyKTsKKyAgICBSZW1vdmVBbGxVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXJzKFZlY3Rv
cjxXZWJLaXQ6OkNvbnRlbnRXb3JsZElkZW50aWZpZXI+IHdvcmxkSWRlbnRpZmllcnMpOwogCiAj
aWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKICAgICBBZGRDb250ZW50UnVsZUxpc3RzKFZl
Y3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0
RGF0YT4+IGNvbnRlbnRGaWx0ZXJzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKaW5kZXggODYyYjEzYWM3ZDc4ZTNjYmEwZTdlZGU1Mzc5MWE4NTQ3NzIw
ZDY0YS4uYmQzNDEwNjhmYjcyNWY5ZWUxNWEzYWIxNWU5N2E5N2YzYzlmZjY5MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTMzODAsNyArMzM4
MCw3IEBAIEtleWJvYXJkVUlNb2RlIFdlYlBhZ2U6OmtleWJvYXJkVUlNb2RlKCkKICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8S2V5Ym9hcmRVSU1vZGU+KChmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVk
ID8gS2V5Ym9hcmRBY2Nlc3NGdWxsIDogS2V5Ym9hcmRBY2Nlc3NEZWZhdWx0KSB8IChtX3RhYlRv
TGlua3MgPyBLZXlib2FyZEFjY2Vzc1RhYnNUb0xpbmtzIDogMCkpOwogfQogCi12b2lkIFdlYlBh
Z2U6OnJ1bkphdmFTY3JpcHQoV2ViRnJhbWUqIGZyYW1lLCBSdW5KYXZhU2NyaXB0UGFyYW1ldGVy
cyYmIHBhcmFtZXRlcnMsIHVpbnQ2NF90IHdvcmxkSWRlbnRpZmllciwgQ2FsbGJhY2tJRCBjYWxs
YmFja0lEKQordm9pZCBXZWJQYWdlOjpydW5KYXZhU2NyaXB0KFdlYkZyYW1lKiBmcmFtZSwgUnVu
SmF2YVNjcmlwdFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzLCBDb250ZW50V29ybGRJZGVudGlmaWVy
IHdvcmxkSWRlbnRpZmllciwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIC8vIE5PVEU6
IFdlIG5lZWQgdG8gYmUgY2FyZWZ1bCB3aGVuIHJ1bm5pbmcgc2NyaXB0cyB0aGF0IHRoZSBvYmpl
Y3RzIHdlIGRlcGVuZCBvbiBkb24ndAogICAgIC8vIGRpc2FwcGVhciBkdXJpbmcgc2NyaXB0IGV4
ZWN1dGlvbi4KQEAgLTMzOTAsNyArMzM5MCw2IEBAIHZvaWQgV2ViUGFnZTo6cnVuSmF2YVNjcmlw
dChXZWJGcmFtZSogZnJhbWUsIFJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzJiYgcGFyYW1ldGVyCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBBU1NFUlQod29ybGRJZGVudGlmaWVyKTsKICAg
ICBhdXRvKiB3b3JsZCA9IG1fdXNlckNvbnRlbnRDb250cm9sbGVyLT53b3JsZEZvcklkZW50aWZp
ZXIod29ybGRJZGVudGlmaWVyKTsKICAgICBpZiAoIXdvcmxkKSB7CiAgICAgICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6U2NyaXB0VmFsdWVDYWxsYmFjayh7IH0sIEV4Y2VwdGlvbkRl
dGFpbHMgeyAiVW5hYmxlIHRvIGV4ZWN1dGUgSmF2YVNjcmlwdDogQ2Fubm90IGZpbmQgc3BlY2lm
aWVkIGNvbnRlbnQgd29ybGQiX3MgfSwgY2FsbGJhY2tJRCkpOwpAQCAtMzQxOSw3ICszNDE4LDcg
QEAgdm9pZCBXZWJQYWdlOjpydW5KYXZhU2NyaXB0KFdlYkZyYW1lKiBmcmFtZSwgUnVuSmF2YVNj
cmlwdFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXIKICAgICBmcmFtZS0+Y29yZUZyYW1lKCktPnNjcmlw
dCgpLmV4ZWN1dGVBc3luY2hyb25vdXNVc2VyQWdlbnRTY3JpcHRJbldvcmxkKHdvcmxkLT5jb3Jl
V29ybGQoKSwgV1RGTW92ZShwYXJhbWV0ZXJzKSwgV1RGTW92ZShyZXNvbHZlRnVuY3Rpb24pKTsK
IH0KIAotdm9pZCBXZWJQYWdlOjpydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZChS
dW5KYXZhU2NyaXB0UGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIGNvbnN0IHN0ZDo6cGFpcjx1aW50
NjRfdCwgU3RyaW5nPiYgd29ybGREYXRhLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdl
YlBhZ2U6OnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZVNjcmlwdFdvcmxkKFJ1bkphdmFTY3JpcHRQ
YXJhbWV0ZXJzJiYgcGFyYW1ldGVycywgY29uc3Qgc3RkOjpwYWlyPENvbnRlbnRXb3JsZElkZW50
aWZpZXIsIFN0cmluZz4mIHdvcmxkRGF0YSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAg
IG1fdXNlckNvbnRlbnRDb250cm9sbGVyLT5hZGRVc2VyQ29udGVudFdvcmxkKHdvcmxkRGF0YSk7
CiAgICAgcnVuSmF2YVNjcmlwdChtYWluV2ViRnJhbWUoKSwgV1RGTW92ZShwYXJhbWV0ZXJzKSwg
d29ybGREYXRhLmZpcnN0LCBjYWxsYmFja0lEKTsKQEAgLTM0MjksNyArMzQyOCw3IEBAIHZvaWQg
V2ViUGFnZTo6cnVuSmF2YVNjcmlwdEluRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNv
bnN0IFN0cmluZyYgc2NyaXB0CiB7CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgQVNTRVJUKG1haW5XZWJGcmFtZSgp
ICE9IGZyYW1lKTsKLSAgICBydW5KYXZhU2NyaXB0KGZyYW1lLCB7IHNjcmlwdCwgZmFsc2UsIFdU
Rjo6bnVsbG9wdCwgZm9yY2VVc2VyR2VzdHVyZSB9LCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6
OmlkZW50aWZpZXJGb3JOb3JtYWxXb3JsZCgpLCBjYWxsYmFja0lEKTsKKyAgICBydW5KYXZhU2Ny
aXB0KGZyYW1lLCB7IHNjcmlwdCwgZmFsc2UsIFdURjo6bnVsbG9wdCwgZm9yY2VVc2VyR2VzdHVy
ZSB9LCBwYWdlQ29udGVudFdvcmxkSWRlbnRpZmllcigpLCBjYWxsYmFja0lEKTsKIH0KIAogdm9p
ZCBXZWJQYWdlOjpnZXRDb250ZW50c0FzU3RyaW5nKENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAwNDRhMWFjNTky
YzYyNjFkMzEzNTgyMDg3Mzk5NDlhOWNkZmUwODI2Li43MWYzY2Y5MWQ0MzUzZTQxMTEzYTA3MThk
ZmJjNDBiMzg3Y2MxZjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCkBAIC0xNDYyLDggKzE0NjIsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0U2VsZWN0
aW9uQXNXZWJBcmNoaXZlRGF0YShDYWxsYmFja0lEKTsKICAgICB2b2lkIGdldFNvdXJjZUZvckZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBnZXRX
ZWJBcmNoaXZlT2ZGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENhbGxiYWNrSUQpOwot
ICAgIHZvaWQgcnVuSmF2YVNjcmlwdChXZWJGcmFtZSosIFdlYkNvcmU6OlJ1bkphdmFTY3JpcHRQ
YXJhbWV0ZXJzJiYsIHVpbnQ2NF90IHdvcmxkSWRlbnRpZmllciwgQ2FsbGJhY2tJRCk7Ci0gICAg
dm9pZCBydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZChXZWJDb3JlOjpSdW5KYXZh
U2NyaXB0UGFyYW1ldGVycyYmLCBjb25zdCBzdGQ6OnBhaXI8dWludDY0X3QsIFN0cmluZz4mIHdv
cmxkRGF0YSwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBydW5KYXZhU2NyaXB0KFdlYkZyYW1lKiwg
V2ViQ29yZTo6UnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMmJiwgQ29udGVudFdvcmxkSWRlbnRpZmll
ciwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRX
b3JsZChXZWJDb3JlOjpSdW5KYXZhU2NyaXB0UGFyYW1ldGVycyYmLCBjb25zdCBzdGQ6OnBhaXI8
Q29udGVudFdvcmxkSWRlbnRpZmllciwgU3RyaW5nPiYgd29ybGREYXRhLCBDYWxsYmFja0lEKTsK
ICAgICB2b2lkIHJ1bkphdmFTY3JpcHRJbkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBDYWxsYmFja0lEKTsKICAgICB2
b2lkIGZvcmNlUmVwYWludChDYWxsYmFja0lEKTsKICAgICB2b2lkIHRha2VTbmFwc2hvdChXZWJD
b3JlOjpJbnRSZWN0IHNuYXBzaG90UmVjdCwgV2ViQ29yZTo6SW50U2l6ZSBiaXRtYXBTaXplLCB1
aW50MzJfdCBvcHRpb25zLCBDYWxsYmFja0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDIyOWEzMDBkNDhiMGVl
NzdiYzBiZDBiNjViMjZlMDYxN2RiNmUxZWQuLmExNDY0M2E4NDkzZjNhMDIyMWFiYmUxNzA3Mzgx
YjkyYWRlOTQwZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMjA4LDcgKzIwOCw3IEBAIEdlbmVyYXRlU3ludGhl
dGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0Nv
bW1hbmRUeXBlCiAgICAgR2V0V2ViQXJjaGl2ZU9mRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogCiAgICAgLy8gRklY
TUU6IFRoZXNlIHNob3VsZCB1c2Ugc2VuZFdpdGhBc3luY1JlcGx5IGluc3RlYWQgb2YgY2FsbGJh
Y2tJRHMKLSAgICBSdW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZChzdHJ1Y3QgV2Vi
Q29yZTo6UnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMgcGFyYW1ldGVycywgc3RkOjpwYWlyPHVpbnQ2
NF90LCBTdHJpbmc+IHdvcmxkLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBS
dW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZChzdHJ1Y3QgV2ViQ29yZTo6UnVuSmF2
YVNjcmlwdFBhcmFtZXRlcnMgcGFyYW1ldGVycywgc3RkOjpwYWlyPFdlYktpdDo6Q29udGVudFdv
cmxkSWRlbnRpZmllciwgU3RyaW5nPiB3b3JsZCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNr
SUQpCiAgICAgUnVuSmF2YVNjcmlwdEluRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFN0cmluZyBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgV2ViS2l0OjpDYWxs
YmFja0lEIGNhbGxiYWNrSUQpCiAKICAgICBGb3JjZVJlcGFpbnQoV2ViS2l0OjpDYWxsYmFja0lE
IGNhbGxiYWNrSUQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>