<?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>125797</bug_id>
          
          <creation_ts>2013-12-16 12:09:35 -0800</creation_ts>
          <short_desc>Rename WebData to API::Data</short_desc>
          <delta_ts>2013-12-16 12:18:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>bdakin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>960168</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-12-16 12:09:35 -0800</bug_when>
    <thetext>Rename WebData to API::Data</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960171</commentid>
    <comment_count>1</comment_count>
      <attachid>219340</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-12-16 12:14:15 -0800</bug_when>
    <thetext>Created attachment 219340
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960174</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-12-16 12:18:31 -0800</bug_when>
    <thetext>Committed r160653: &lt;http://trac.webkit.org/changeset/160653&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219340</attachid>
            <date>2013-12-16 12:14:15 -0800</date>
            <delta_ts>2013-12-16 12:16:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-125797-20131216121414.patch</filename>
            <type>text/plain</type>
            <size>60058</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwNjQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOTIxMDUxOGY2ZDNlY2Ez
ZTk5OTIwZTlkOTBmYmFlNmQ4ZTIxYzQ4Yi4uNjJhZjk1M2IwODIxNzIxMjIyMmUxOWVhNmUyN2U4
NDgzM2VkZWQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1IEBACisyMDEzLTEyLTE2ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFdlYkRh
dGEgdG8gQVBJOjpEYXRhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjU3OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvV0tSZW1vdGVPYmplY3RDb2Rlci5tbToKKyAgICAg
ICAgKC1bV0tSZW1vdGVPYmplY3RFbmNvZGVyIGVuY29kZUJ5dGVzOmxlbmd0aDpmb3JLZXk6XSk6
CisgICAgICAgICgtW1dLUmVtb3RlT2JqZWN0RGVjb2RlciBkZWNvZGVCeXRlc0ZvcktleTpyZXR1
cm5lZExlbmd0aDpdKToKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tEYXRhLmNwcDoKKyAgICAg
ICAgKFdLRGF0YUdldFR5cGVJRCk6CisgICAgICAgIChXS0RhdGFDcmVhdGUpOgorICAgICAgICAq
IFNoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL2Mv
bWFjL1dLV2ViQXJjaGl2ZS5jcHA6CisgICAgICAgIChXS1dlYkFyY2hpdmVDb3B5RGF0YSk6Cisg
ICAgICAgICogU2hhcmVkL0FQSS9jL21hYy9XS1dlYkFyY2hpdmVSZXNvdXJjZS5jcHA6CisgICAg
ICAgIChXS1dlYkFyY2hpdmVSZXNvdXJjZUNvcHlEYXRhKToKKyAgICAgICAgKiBTaGFyZWQvQVBJ
RGF0YS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkRhdGEuaC4KKyAg
ICAgICAgKEFQSTo6RGF0YTo6Y3JlYXRlV2l0aG91dENvcHlpbmcpOgorICAgICAgICAoQVBJOjpE
YXRhOjpjcmVhdGUpOgorICAgICAgICAoQVBJOjpEYXRhOjp+RGF0YSk6CisgICAgICAgIChBUEk6
OkRhdGE6OmJ5dGVzKToKKyAgICAgICAgKEFQSTo6RGF0YTo6c2l6ZSk6CisgICAgICAgIChBUEk6
OkRhdGE6OmRhdGFSZWZlcmVuY2UpOgorICAgICAgICAoQVBJOjpEYXRhOjpEYXRhKToKKyAgICAg
ICAgKEFQSTo6RGF0YTo6ZmFzdEZyZWVCeXRlcyk6CisgICAgICAgICogU2hhcmVkL0NvY29hL1dL
TlNEYXRhLmg6CisgICAgICAgIChXZWJLaXQ6OndyYXBwZXIpOgorICAgICAgICAqIFNoYXJlZC9D
b2NvYS9XS05TRGF0YS5tbToKKyAgICAgICAgKC1bV0tOU0RhdGEgZGVhbGxvY10pOgorICAgICAg
ICAqIFNoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVz
c2FnZUVuY29kZXI6OmJhc2VFbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVzc2FnZURl
Y29kZXI6OmJhc2VEZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJBcmNoaXZlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXJjaGl2ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
QXJjaGl2ZTo6V2ViQXJjaGl2ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkFyY2hpdmU6OmRhdGEp
OgorICAgICAgICAqIFNoYXJlZC9XZWJBcmNoaXZlLmg6CisgICAgICAgICogU2hhcmVkL1dlYkFy
Y2hpdmVSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkFyY2hpdmVSZXNvdXJjZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXJjaGl2ZVJlc291cmNlOjpXZWJBcmNoaXZl
UmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJBcmNoaXZlUmVzb3VyY2U6OmRhdGEpOgor
ICAgICAgICAqIFNoYXJlZC9XZWJBcmNoaXZlUmVzb3VyY2UuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tCcm93c2luZ0NvbnRleHRD
b250cm9sbGVyIGxvYWREYXRhOk1JTUVUeXBlOnRleHRFbmNvZGluZ05hbWU6YmFzZVVSTDp1c2Vy
RGF0YTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ByaW50aW5nVmlldy5tbToK
KyAgICAgICAgKHBhZ2VEaWREcmF3VG9QREYpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNyZWF0ZURhdGEpOgorICAg
ICAgICAoV2ViS2l0OjpEb3dubG9hZFByb3h5OjpkaWRGYWlsKToKKyAgICAgICAgKFdlYktpdDo6
RG93bmxvYWRQcm94eTo6ZGlkQ2FuY2VsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRz
L0Rvd25sb2FkUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRQcm94eTo6cmVzdW1l
RGF0YSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9hZERhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmxvYWRXZWJBcmNoaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGF0YUNhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzYXZlRGF0
YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpzYXZlUERGVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJVSUNsaWVudDo6c2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRl
cik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlVJQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL2NmL1dlYlBhZ2VQcm94eUNGLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpzZXNzaW9uU3RhdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXN0
b3JlRnJvbVNlc3Npb25TdGF0ZURhdGEpOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlLmNwcDoKKyAgICAgICAgKFdLQnVuZGxlQ3JlYXRlV0tEYXRhRnJvbVVJbnQ4QXJy
YXkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6Y3JlYXRlV2ViRGF0YUZyb21V
aW50OEFycmF5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRs
ZVBhZ2VFZGl0b3JDbGllbnQ6OmdldFBhc3RlYm9hcmREYXRhRm9yUmFuZ2UpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Ojp3
aWxsTG9hZERhdGFSZXF1ZXN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZERhdGFJ
bXBsKToKKwogMjAxMy0xMi0xNiAgTWljaGHFgiBQYWt1xYJhIHZlbCBSdXRrYSAgPG0ucGFrdWxh
QHNhbXN1bmcuY29tPgogCiAgICAgICAgIEZpeCBidWlsZCB3YXJuaW5nIGluIGZpbGVzIGluY2x1
ZGluZyBEcmF3aW5nQXJlYVByb3h5LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvQ29jb2EvV0tSZW1vdGVPYmplY3RDb2Rlci5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvQ29jb2EvV0tSZW1vdGVPYmplY3RDb2Rlci5tbQppbmRleCAyZmRlNDE2MjYwMWM2ZGVi
ZjVhNDk0ZmU3YzdhMjBlMTY1NWIxZWRiLi45ZTYxNDMzM2E0YzMyNDAyMTY1ODE1NDFiYzUxMjJk
OGE4ZDZkODMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1dL
UmVtb3RlT2JqZWN0Q29kZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2Nv
YS9XS1JlbW90ZU9iamVjdENvZGVyLm1tCkBAIC0yOSwxMSArMjksMTEgQEAKICNpZiBXS19BUElf
RU5BQkxFRAogCiAjaW1wb3J0ICJBUElBcnJheS5oIgorI2ltcG9ydCAiQVBJRGF0YS5oIgogI2lt
cG9ydCAiQVBJTnVtYmVyLmgiCiAjaW1wb3J0ICJBUElTdHJpbmcuaCIKICNpbXBvcnQgIk11dGFi
bGVEaWN0aW9uYXJ5LmgiCiAjaW1wb3J0ICJXS1JlbW90ZU9iamVjdEludGVyZmFjZUludGVybmFs
LmgiCi0jaW1wb3J0ICJXZWJEYXRhLmgiCiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KICNpbXBv
cnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KQEAg
LTIzNyw3ICsyMzcsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKmVzY2FwZUtleShOU1N0cmluZyAqa2V5
KQogCiAtICh2b2lkKWVuY29kZUJ5dGVzOihjb25zdCB1aW50OF90ICopYnl0ZXMgbGVuZ3RoOihO
U1VJbnRlZ2VyKWxlbmd0aCBmb3JLZXk6KE5TU3RyaW5nICopa2V5CiB7Ci0gICAgX2N1cnJlbnRE
aWN0aW9uYXJ5LT5zZXQoZXNjYXBlS2V5KGtleSksIFdlYkRhdGE6OmNyZWF0ZShieXRlcywgbGVu
Z3RoKSk7CisgICAgX2N1cnJlbnREaWN0aW9uYXJ5LT5zZXQoZXNjYXBlS2V5KGtleSksIEFQSTo6
RGF0YTo6Y3JlYXRlKGJ5dGVzLCBsZW5ndGgpKTsKIH0KIAogLSAodm9pZCllbmNvZGVCb29sOihC
T09MKXZhbHVlIGZvcktleTooTlNTdHJpbmcgKilrZXkKQEAgLTUwNSw3ICs1MDUsNyBAQCBzdGF0
aWMgaWQgZGVjb2RlT2JqZWN0KFdLUmVtb3RlT2JqZWN0RGVjb2RlciAqZGVjb2RlciwgY29uc3Qg
SW1tdXRhYmxlRGljdGlvbmFyeQogCiAtIChjb25zdCB1aW50OF90ICopZGVjb2RlQnl0ZXNGb3JL
ZXk6KE5TU3RyaW5nICopa2V5IHJldHVybmVkTGVuZ3RoOihOU1VJbnRlZ2VyICopbGVuZ3RoCiB7
Ci0gICAgV2ViRGF0YSogZGF0YSA9IF9jdXJyZW50RGljdGlvbmFyeS0+Z2V0PFdlYkRhdGE+KGVz
Y2FwZUtleShrZXkpKTsKKyAgICBhdXRvKiBkYXRhID0gX2N1cnJlbnREaWN0aW9uYXJ5LT5nZXQ8
QVBJOjpEYXRhPihlc2NhcGVLZXkoa2V5KSk7CiAgICAgaWYgKCFkYXRhIHx8ICFkYXRhLT5zaXpl
KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL2MvV0tEYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9X
S0RhdGEuY3BwCmluZGV4IGY1MTYzNjkxNGEyNzYzYTQ4NGM3ZDlhOGQzMzZkZGYxZTkxZTE5ZjAu
LmViYzQwYjE0Mjg4MDRlNDIzZDkxMTJhYWQ3ZjlmZGJlNTVlNzhkMWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0RhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUEkvYy9XS0RhdGEuY3BwCkBAIC0yNiwyMCArMjYsMTkgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJXS0RhdGEuaCIKIAotI2luY2x1ZGUgIldlYkRhdGEuaCIKKyNp
bmNsdWRlICJBUElEYXRhLmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CiAKIFdLVHlwZUlEIFdLRGF0YUdldFR5cGVJRCgpCiB7Ci0gICAgcmV0dXJu
IHRvQVBJKFdlYkRhdGE6OkFQSVR5cGUpOworICAgIHJldHVybiB0b0FQSShBUEk6OkRhdGE6OkFQ
SVR5cGUpOwogfQogCiBXS0RhdGFSZWYgV0tEYXRhQ3JlYXRlKGNvbnN0IHVuc2lnbmVkIGNoYXIq
IGJ5dGVzLCBzaXplX3Qgc2l6ZSkKIHsKLSAgICBSZWZQdHI8V2ViRGF0YT4gZGF0YSA9IFdlYkRh
dGE6OmNyZWF0ZShieXRlcywgc2l6ZSk7Ci0gICAgcmV0dXJuIHRvQVBJKGRhdGEucmVsZWFzZSgp
LmxlYWtSZWYoKSk7CisgICAgcmV0dXJuIHRvQVBJKEFQSTo6RGF0YTo6Y3JlYXRlKGJ5dGVzLCBz
aXplKS5sZWFrUmVmKCkpOwogfQogCiBjb25zdCB1bnNpZ25lZCBjaGFyKiBXS0RhdGFHZXRCeXRl
cyhXS0RhdGFSZWYgZGF0YVJlZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS1NoYXJlZEFQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1No
YXJlZEFQSUNhc3QuaAppbmRleCAxMTBiMTYwOTFlYTRiODQxNWZkNzQ2YTBkZWQ2NTIzZWQ1Nzc2
ZmZjLi5kODdmYmFiMTRiMTljNzE3MzA1ZDBmYWM2NTlhYjllZjIzY2U5MzdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCkBAIC02MCw2ICs2MCw3
IEBACiAKIG5hbWVzcGFjZSBBUEkgewogY2xhc3MgQXJyYXk7CitjbGFzcyBEYXRhOwogY2xhc3Mg
UG9pbnQ7CiBjbGFzcyBSZWN0OwogY2xhc3MgU2l6ZTsKQEAgLTc1LDcgKzc2LDYgQEAgY2xhc3Mg
V2ViQXJjaGl2ZVJlc291cmNlOwogY2xhc3MgV2ViQ2VydGlmaWNhdGVJbmZvOwogY2xhc3MgV2Vi
Q29ubmVjdGlvbjsKIGNsYXNzIFdlYkNvbnRleHRNZW51SXRlbTsKLWNsYXNzIFdlYkRhdGE7CiBj
bGFzcyBXZWJHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBXZWJJbWFnZTsKIGNsYXNzIFdlYlNlY3Vy
aXR5T3JpZ2luOwpAQCAtOTYsNyArOTYsNyBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tCb29sZWFu
UmVmLCBBUEk6OkJvb2xlYW4pCiBXS19BRERfQVBJX01BUFBJTkcoV0tDZXJ0aWZpY2F0ZUluZm9S
ZWYsIFdlYkNlcnRpZmljYXRlSW5mbykKIFdLX0FERF9BUElfTUFQUElORyhXS0Nvbm5lY3Rpb25S
ZWYsIFdlYkNvbm5lY3Rpb24pCiBXS19BRERfQVBJX01BUFBJTkcoV0tDb250ZXh0TWVudUl0ZW1S
ZWYsIFdlYkNvbnRleHRNZW51SXRlbSkKLVdLX0FERF9BUElfTUFQUElORyhXS0RhdGFSZWYsIFdl
YkRhdGEpCitXS19BRERfQVBJX01BUFBJTkcoV0tEYXRhUmVmLCBBUEk6OkRhdGEpCiBXS19BRERf
QVBJX01BUFBJTkcoV0tEaWN0aW9uYXJ5UmVmLCBJbW11dGFibGVEaWN0aW9uYXJ5KQogV0tfQURE
X0FQSV9NQVBQSU5HKFdLRG91YmxlUmVmLCBBUEk6OkRvdWJsZSkKIFdLX0FERF9BUElfTUFQUElO
RyhXS0Vycm9yUmVmLCBXZWJFcnJvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvYy9tYWMvV0tXZWJBcmNoaXZlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Yy9tYWMvV0tXZWJBcmNoaXZlLmNwcAppbmRleCA2Nzc4NDllNDMyZDZmMzJhMzUzMjcwMmI2NTgz
NGY1ZTVlZmY1MWM5Li5iZDkxNGU0ZDE5ZTZiMWY5N2FjNjZkODkxMzk1MmNiMDRiMDIyMWZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvbWFjL1dLV2ViQXJjaGl2ZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL21hYy9XS1dlYkFyY2hpdmUuY3Bw
CkBAIC0yNywxMiArMjcsMTIgQEAKICNpbmNsdWRlICJXS1dlYkFyY2hpdmUuaCIKIAogI2luY2x1
ZGUgIkFQSUFycmF5LmgiCisjaW5jbHVkZSAiQVBJRGF0YS5oIgogI2luY2x1ZGUgIkluamVjdGVk
QnVuZGxlUmFuZ2VIYW5kbGUuaCIKICNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKICNpbmNs
dWRlICJXS1NoYXJlZEFQSUNhc3QuaCIKICNpbmNsdWRlICJXZWJBcmNoaXZlLmgiCiAjaW5jbHVk
ZSAiV2ViQXJjaGl2ZVJlc291cmNlLmgiCi0jaW5jbHVkZSAiV2ViRGF0YS5oIgogCiB1c2luZyBu
YW1lc3BhY2UgV2ViS2l0OwogCkBAIC03OSw2ICs3OSw1IEBAIFdLQXJyYXlSZWYgV0tXZWJBcmNo
aXZlQ29weVN1YmZyYW1lQXJjaGl2ZXMoV0tXZWJBcmNoaXZlUmVmIHdlYkFyY2hpdmVSZWYpCiAK
IFdLRGF0YVJlZiBXS1dlYkFyY2hpdmVDb3B5RGF0YShXS1dlYkFyY2hpdmVSZWYgd2ViQXJjaGl2
ZVJlZikKIHsKLSAgICBSZWZQdHI8V2ViRGF0YT4gZGF0YSA9IHRvSW1wbCh3ZWJBcmNoaXZlUmVm
KS0+ZGF0YSgpOwotICAgIHJldHVybiB0b0FQSShkYXRhLnJlbGVhc2UoKS5sZWFrUmVmKCkpOwor
ICAgIHJldHVybiB0b0FQSSh0b0ltcGwod2ViQXJjaGl2ZVJlZiktPmRhdGEoKS5sZWFrUmVmKCkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL21hYy9XS1dlYkFy
Y2hpdmVSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvbWFjL1dLV2Vi
QXJjaGl2ZVJlc291cmNlLmNwcAppbmRleCA3YWU2ZDNkYjI3MDUxZWU0ZDFjYjFlZjhjMjM5ZTY3
YjI1ZTNhMGE3Li45ZDA5MWM0Y2FmMTZlN2NiYTJlMDRiYzYwNTBjMGJjZjUyMjk4ZjZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvbWFjL1dLV2ViQXJjaGl2ZVJlc291
cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvbWFjL1dLV2ViQXJjaGl2
ZVJlc291cmNlLmNwcApAQCAtMjYsOSArMjYsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIldLV2ViQXJjaGl2ZVJlc291cmNlLmgiCiAKKyNpbmNsdWRlICJBUElEYXRhLmgiCiAj
aW5jbHVkZSAiV0tTaGFyZWRBUElDYXN0LmgiCiAjaW5jbHVkZSAiV2ViQXJjaGl2ZVJlc291cmNl
LmgiCi0jaW5jbHVkZSAiV2ViRGF0YS5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCkBA
IC00NSw4ICs0NSw3IEBAIFdLV2ViQXJjaGl2ZVJlc291cmNlUmVmIFdLV2ViQXJjaGl2ZVJlc291
cmNlQ3JlYXRlKFdLRGF0YVJlZiBkYXRhUmVmLCBXS1VSTFJlZiBVCiAKIFdLRGF0YVJlZiBXS1dl
YkFyY2hpdmVSZXNvdXJjZUNvcHlEYXRhKFdLV2ViQXJjaGl2ZVJlc291cmNlUmVmIHdlYkFyY2hp
dmVSZXNvdXJjZVJlZikKIHsKLSAgICBSZWZQdHI8V2ViRGF0YT4gZGF0YSA9IHRvSW1wbCh3ZWJB
cmNoaXZlUmVzb3VyY2VSZWYpLT5kYXRhKCk7Ci0gICAgcmV0dXJuIHRvQVBJKGRhdGEucmVsZWFz
ZSgpLmxlYWtSZWYoKSk7CisgICAgcmV0dXJuIHRvQVBJKHRvSW1wbCh3ZWJBcmNoaXZlUmVzb3Vy
Y2VSZWYpLT5kYXRhKCkubGVha1JlZigpKTsKIH0KIAogV0tVUkxSZWYgV0tXZWJBcmNoaXZlUmVz
b3VyY2VDb3B5VVJMKFdLV2ViQXJjaGl2ZVJlc291cmNlUmVmIHdlYkFyY2hpdmVSZXNvdXJjZVJl
ZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElEYXRhLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJRGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3MjA5NzExMDMxOTliMzU0ZGRm
OTM5NTZkYzdkYzlkZDhlNjczZGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJRGF0YS5oCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEFQ
SURhdGFfaAorI2RlZmluZSBBUElEYXRhX2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2lu
Y2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIEFQSSB7CisKK2NsYXNzIERhdGEgOiBwdWJs
aWMgT2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6RGF0YT4geworcHVibGljOgorICAgIHR5
cGVkZWYgdm9pZCAoKkZyZWVEYXRhRnVuY3Rpb24pKHVuc2lnbmVkIGNoYXIqLCBjb25zdCB2b2lk
KiBjb250ZXh0KTsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGE+IGNyZWF0ZVdpdGhvdXRD
b3B5aW5nKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGJ5dGVzLCBzaXplX3Qgc2l6ZSwgRnJlZURhdGFG
dW5jdGlvbiBmcmVlRGF0YUZ1bmN0aW9uLCBjb25zdCB2b2lkKiBjb250ZXh0KQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRhKGJ5dGVzLCBzaXplLCBmcmVlRGF0YUZ1bmN0
aW9uLCBjb250ZXh0KSk7CisgICAgfQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YT4gY3Jl
YXRlKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGJ5dGVzLCBzaXplX3Qgc2l6ZSkKKyAgICB7CisgICAg
ICAgIHVuc2lnbmVkIGNoYXIgKmNvcGllZEJ5dGVzID0gMDsKKworICAgICAgICBpZiAoc2l6ZSkg
eworICAgICAgICAgICAgY29waWVkQnl0ZXMgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyKj4o
ZmFzdE1hbGxvYyhzaXplKSk7CisgICAgICAgICAgICBtZW1jcHkoY29waWVkQnl0ZXMsIGJ5dGVz
LCBzaXplKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBjcmVhdGVXaXRob3V0Q29weWlu
Zyhjb3BpZWRCeXRlcywgc2l6ZSwgZmFzdEZyZWVCeXRlcywgMCk7CisgICAgfQorICAgIAorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPERhdGE+IGNyZWF0ZShjb25zdCBWZWN0b3I8dW5zaWduZWQgY2hh
cj4mIGJ1ZmZlcikKKyAgICB7CisgICAgICAgIHJldHVybiBjcmVhdGUoYnVmZmVyLmRhdGEoKSwg
YnVmZmVyLnNpemUoKSk7CisgICAgfQorCisgICAgfkRhdGEoKQorICAgIHsKKyAgICAgICAgbV9m
cmVlRGF0YUZ1bmN0aW9uKGNvbnN0X2Nhc3Q8dW5zaWduZWQgY2hhcio+KG1fYnl0ZXMpLCBtX2Nv
bnRleHQpOworICAgIH0KKworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGJ5dGVzKCkgY29uc3Qg
eyByZXR1cm4gbV9ieXRlczsgfQorICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9z
aXplOyB9CisKKyAgICBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YVJlZmVyZW5jZSgpIGNvbnN0IHsg
cmV0dXJuIElQQzo6RGF0YVJlZmVyZW5jZShtX2J5dGVzLCBtX3NpemUpOyB9CisKK3ByaXZhdGU6
CisgICAgRGF0YShjb25zdCB1bnNpZ25lZCBjaGFyKiBieXRlcywgc2l6ZV90IHNpemUsIEZyZWVE
YXRhRnVuY3Rpb24gZnJlZURhdGFGdW5jdGlvbiwgY29uc3Qgdm9pZCogY29udGV4dCkKKyAgICAg
ICAgOiBtX2J5dGVzKGJ5dGVzKQorICAgICAgICAsIG1fc2l6ZShzaXplKQorICAgICAgICAsIG1f
ZnJlZURhdGFGdW5jdGlvbihmcmVlRGF0YUZ1bmN0aW9uKQorICAgICAgICAsIG1fY29udGV4dChj
b250ZXh0KQorICAgIHsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBmYXN0RnJlZUJ5dGVzKHVu
c2lnbmVkIGNoYXIqIGJ5dGVzLCBjb25zdCB2b2lkKikKKyAgICB7CisgICAgICAgIGlmIChieXRl
cykKKyAgICAgICAgICAgIGZhc3RGcmVlKHN0YXRpY19jYXN0PHZvaWQqPihieXRlcykpOworICAg
IH0KKworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIG1fYnl0ZXM7CisgICAgc2l6ZV90IG1fc2l6
ZTsKKworICAgIEZyZWVEYXRhRnVuY3Rpb24gbV9mcmVlRGF0YUZ1bmN0aW9uOworICAgIGNvbnN0
IHZvaWQqIG1fY29udGV4dDsKK307CisKK30gLy8gbmFtZXNwYWNlIEFQSQorCisjZW5kaWYgLy8g
QVBJRGF0YV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvV0tOU0Rh
dGEuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9XS05TRGF0YS5oCmluZGV4IDc0Yjk2
ZGI3NTQ0OTA1ZmFmYzU5ZDNkOTQ5NTRmMGU3MzAxZWQyNzIuLmIxMjllZmFlZTIzZTIwOGNlZmFh
ZTU5MjU5Y2QxZjU5ZWFhOTQxOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b2NvYS9XS05TRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9XS05TRGF0
YS5oCkBAIC0yNywxOSArMjcsMTUgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKKyNpbXBvcnQg
IkFQSURhdGEuaCIKICNpbXBvcnQgIldLT2JqZWN0LmgiCi0jaW1wb3J0ICJXZWJEYXRhLmgiCiAK
LW5hbWVzcGFjZSBXZWJLaXQgewotCi1pbmxpbmUgTlNEYXRhICp3cmFwcGVyKFdlYkRhdGEmIGRh
dGEpCitpbmxpbmUgTlNEYXRhICp3cmFwcGVyKEFQSTo6RGF0YSYgZGF0YSkKIHsKICAgICBBU1NF
UlQoW2RhdGEud3JhcHBlcigpIGlzS2luZE9mQ2xhc3M6W05TRGF0YSBzZWxmXV0pOwogICAgIHJl
dHVybiAoTlNEYXRhICopZGF0YS53cmFwcGVyKCk7CiB9CiAKLX0KLQogQGludGVyZmFjZSBXS05T
RGF0YSA6IE5TRGF0YSA8V0tPYmplY3Q+CiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Db2NvYS9XS05TRGF0YS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2Nv
YS9XS05TRGF0YS5tbQppbmRleCBhNzljOGUzNDY5NDYzY2UzYjE4ZjBiOTM2NzE4OTg5ODYwZTNl
OTMzLi45ZDgwZjM0N2I3ZTA4YTUwYmEyYWRiNDQ5MzA2NmY3Y2U2YWEzZjFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvV0tOU0RhdGEubW0KKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0NvY29hL1dLTlNEYXRhLm1tCkBAIC0yOCwxNSArMjgsMTMgQEAKIAogI2lm
IFdLX0FQSV9FTkFCTEVECiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KIEBpbXBsZW1lbnRh
dGlvbiBXS05TRGF0YSB7Ci0gICAgQVBJOjpPYmplY3RTdG9yYWdlPFdlYkRhdGE+IF9kYXRhOwor
ICAgIEFQSTo6T2JqZWN0U3RvcmFnZTxBUEk6OkRhdGE+IF9kYXRhOwogfQogCiAtICh2b2lkKWRl
YWxsb2MKIHsKLSAgICBfZGF0YS0+fldlYkRhdGEoKTsKKyAgICBfZGF0YS0+fkRhdGEoKTsKIAog
ICAgIFtzdXBlciBkZWFsbG9jXTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Vc2VyTWVzc2FnZUNvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdl
Q29kZXJzLmgKaW5kZXggNjkwOTJkMGNjMzMzZTJiMjVkNWM4YTNjOTBmNTdmYzY3ZmJiZjVlOC4u
ODI1OGM4OGZiMjNlMTZlMWIxOWFmYmQ4Njk5NDhmZTA4ZjM1ZmYxZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUg
VXNlck1lc3NhZ2VDb2RlcnNfaAogCiAjaW5jbHVkZSAiQVBJQXJyYXkuaCIKKyNpbmNsdWRlICJB
UElEYXRhLmgiCiAjaW5jbHVkZSAiQVBJR2VvbWV0cnkuaCIKICNpbmNsdWRlICJBUElOdW1iZXIu
aCIKICNpbmNsdWRlICJBUElTdHJpbmcuaCIKQEAgLTM3LDcgKzM4LDYgQEAKICNpbmNsdWRlICJT
aGFyZWFibGVCaXRtYXAuaCIKICNpbmNsdWRlICJXZWJDZXJ0aWZpY2F0ZUluZm8uaCIKICNpbmNs
dWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJEYXRhLmgiCiAjaW5j
bHVkZSAiV2ViRXJyb3IuaCIKICNpbmNsdWRlICJXZWJJbWFnZS5oIgogI2luY2x1ZGUgIldlYlJl
bmRlckxheWVyLmgiCkBAIC01Nyw3ICs1Nyw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogLy8gICAt
IFN0cmluZyAtPiBTdHJpbmcKIC8vICAgLSBVc2VyQ29udGVudFVSTFBhdHRlcm4gLT4gVXNlckNv
bnRlbnRVUkxQYXR0ZXJuCiAvLyAgIC0gV2ViQ2VydGlmaWNhdGVJbmZvIC0+IFdlYkNlcnRpZmlj
YXRlSW5mbwotLy8gICAtIFdlYkRhdGEgLT4gV2ViRGF0YQorLy8gICAtIEFQSTo6RGF0YSAtPiBB
UEk6OkRhdGEKIC8vICAgLSBBUEk6OkRvdWJsZSAtPiBBUEk6OkRvdWJsZQogLy8gICAtIFdlYklt
YWdlIC0+IFdlYkltYWdlCiAvLyAgIC0gV2ViUmVuZGVyTGF5ZXIgLT4gV2ViUmVuZGVyTGF5ZXIK
QEAgLTIwOSw3ICsyMDksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgfQogICAgICAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpEYXRhOiB7Ci0gICAgICAg
ICAgICBXZWJEYXRhKiBkYXRhID0gc3RhdGljX2Nhc3Q8V2ViRGF0YSo+KG1fcm9vdCk7CisgICAg
ICAgICAgICBBUEk6OkRhdGEqIGRhdGEgPSBzdGF0aWNfY2FzdDxBUEk6OkRhdGEqPihtX3Jvb3Qp
OwogICAgICAgICAgICAgZW5jb2RlciA8PCBkYXRhLT5kYXRhUmVmZXJlbmNlKCk7CiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpAQCAtNTAwLDcgKzUwMCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIENvcmVJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YVJlZmVyZW5jZTsKICAgICAg
ICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZGF0YVJlZmVyZW5jZSkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgY29kZXIubV9yb290ID0gV2ViRGF0YTo6Y3Jl
YXRlKGRhdGFSZWZlcmVuY2UuZGF0YSgpLCBkYXRhUmVmZXJlbmNlLnNpemUoKSk7CisgICAgICAg
ICAgICBjb2Rlci5tX3Jvb3QgPSBBUEk6OkRhdGE6OmNyZWF0ZShkYXRhUmVmZXJlbmNlLmRhdGEo
KSwgZGF0YVJlZmVyZW5jZS5zaXplKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICAgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6Q2VydGlmaWNhdGVJbmZvOiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQXJjaGl2ZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViQXJjaGl2ZS5jcHAKaW5kZXggM2VlNTNlOThiZjhiOWFmMWQ1Mjc0NzQ1
Zjg2NjMzZTc2YWVlNmFmYy4uMDJkZWMxMjc3ZWEyOTU1MDMyYTNkNzRiM2Y4NmZhYmMwYmZhNDAz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkFyY2hpdmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJBcmNoaXZlLmNwcApAQCAtMjksOCArMjksOCBAQAog
I2lmIFBMQVRGT1JNKE1BQykKIAogI2luY2x1ZGUgIkFQSUFycmF5LmgiCisjaW5jbHVkZSAiQVBJ
RGF0YS5oIgogI2luY2x1ZGUgIldlYkFyY2hpdmVSZXNvdXJjZS5oIgotI2luY2x1ZGUgIldlYkRh
dGEuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KICNpbmNsdWRlIDx3
dGYvUmV0YWluUHRyLmg+CiAKQEAgLTQzLDcgKzQzLDcgQEAgUGFzc1JlZlB0cjxXZWJBcmNoaXZl
PiBXZWJBcmNoaXZlOjpjcmVhdGUoV2ViQXJjaGl2ZVJlc291cmNlKiBtYWluUmVzb3VyY2UsIFBh
c3MKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkFyY2hpdmUobWFpblJlc291cmNlLCBzdWJy
ZXNvdXJjZXMsIHN1YmZyYW1lQXJjaGl2ZXMpKTsKIH0KIAotUGFzc1JlZlB0cjxXZWJBcmNoaXZl
PiBXZWJBcmNoaXZlOjpjcmVhdGUoV2ViRGF0YSogZGF0YSkKK1Bhc3NSZWZQdHI8V2ViQXJjaGl2
ZT4gV2ViQXJjaGl2ZTo6Y3JlYXRlKEFQSTo6RGF0YSogZGF0YSkKIHsKICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFdlYkFyY2hpdmUoZGF0YSkpOwogfQpAQCAtODIsNyArODIsNyBAQCBXZWJBcmNo
aXZlOjpXZWJBcmNoaXZlKFdlYkFyY2hpdmVSZXNvdXJjZSogbWFpblJlc291cmNlLCBQYXNzUmVm
UHRyPEFQSTo6QXJyYXk+CiAgICAgbV9sZWdhY3lXZWJBcmNoaXZlID0gTGVnYWN5V2ViQXJjaGl2
ZTo6Y3JlYXRlKGNvcmVNYWluUmVzb3VyY2UucmVsZWFzZSgpLCBjb3JlQXJjaGl2ZVJlc291cmNl
cywgY29yZVN1YmZyYW1lTGVnYWN5V2ViQXJjaGl2ZXMpOwogfQogCi1XZWJBcmNoaXZlOjpXZWJB
cmNoaXZlKFdlYkRhdGEqIGRhdGEpCitXZWJBcmNoaXZlOjpXZWJBcmNoaXZlKEFQSTo6RGF0YSog
ZGF0YSkKIHsKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBTaGFyZWRCdWZmZXI6
OmNyZWF0ZShkYXRhLT5ieXRlcygpLCBkYXRhLT5zaXplKCkpOwogICAgIG1fbGVnYWN5V2ViQXJj
aGl2ZSA9IExlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0ZShidWZmZXIuZ2V0KCkpOwpAQCAtMTQwLDE0
ICsxNDAsMTQgQEAgc3RhdGljIHZvaWQgcmVsZWFzZUNGRGF0YSh1bnNpZ25lZCBjaGFyKiwgY29u
c3Qgdm9pZCogZGF0YSkKICAgICBDRlJlbGVhc2UoZGF0YSk7CiB9CiAKLVBhc3NSZWZQdHI8V2Vi
RGF0YT4gV2ViQXJjaGl2ZTo6ZGF0YSgpCitQYXNzUmVmUHRyPEFQSTo6RGF0YT4gV2ViQXJjaGl2
ZTo6ZGF0YSgpCiB7CiAgICAgUmV0YWluUHRyPENGRGF0YVJlZj4gcmF3RGF0YVJlcHJlc2VudGF0
aW9uID0gbV9sZWdhY3lXZWJBcmNoaXZlLT5yYXdEYXRhUmVwcmVzZW50YXRpb24oKTsKIAogICAg
IC8vIEJhbGFuY2VkIGJ5IENGUmVsZWFzZSBpbiByZWxlYXNlQ0ZEYXRhLgogICAgIENGUmV0YWlu
KHJhd0RhdGFSZXByZXNlbnRhdGlvbi5nZXQoKSk7CiAKLSAgICByZXR1cm4gV2ViRGF0YTo6Y3Jl
YXRlV2l0aG91dENvcHlpbmcoQ0ZEYXRhR2V0Qnl0ZVB0cihyYXdEYXRhUmVwcmVzZW50YXRpb24u
Z2V0KCkpLCBDRkRhdGFHZXRMZW5ndGgocmF3RGF0YVJlcHJlc2VudGF0aW9uLmdldCgpKSwgcmVs
ZWFzZUNGRGF0YSwgcmF3RGF0YVJlcHJlc2VudGF0aW9uLmdldCgpKTsKKyAgICByZXR1cm4gQVBJ
OjpEYXRhOjpjcmVhdGVXaXRob3V0Q29weWluZyhDRkRhdGFHZXRCeXRlUHRyKHJhd0RhdGFSZXBy
ZXNlbnRhdGlvbi5nZXQoKSksIENGRGF0YUdldExlbmd0aChyYXdEYXRhUmVwcmVzZW50YXRpb24u
Z2V0KCkpLCByZWxlYXNlQ0ZEYXRhLCByYXdEYXRhUmVwcmVzZW50YXRpb24uZ2V0KCkpOwogfQog
CiBMZWdhY3lXZWJBcmNoaXZlKiBXZWJBcmNoaXZlOjpjb3JlTGVnYWN5V2ViQXJjaGl2ZSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQXJjaGl2ZS5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkFyY2hpdmUuaAppbmRleCA5MjBlMzI0MDZlZWViNWE1OTcyM2Q1ZTQ5
OTVlMWMwNGRkODgxZTkzLi5kYWRkYjg3Yzk2ZjQzMzEzYzE2Yjc4MWJmODI2ZDdhNjNjZGNjZmYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQXJjaGl2ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJBcmNoaXZlLmgKQEAgLTM0LDYgKzM0LDcgQEAKIAogbmFt
ZXNwYWNlIEFQSSB7CiBjbGFzcyBBcnJheTsKK2NsYXNzIERhdGE7CiB9CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTQ0LDE0ICs0NSwxMyBAQCBjbGFzcyBSYW5nZTsKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBXZWJBcmNoaXZlUmVzb3VyY2U7Ci1jbGFzcyBXZWJEYXRhOwogCiBjbGFz
cyBXZWJBcmNoaXZlIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6
V2ViQXJjaGl2ZT4gewogcHVibGljOgogICAgIHZpcnR1YWwgfldlYkFyY2hpdmUoKTsKIAogICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFdlYkFyY2hpdmU+IGNyZWF0ZShXZWJBcmNoaXZlUmVzb3VyY2Uq
IG1haW5SZXNvdXJjZSwgUGFzc1JlZlB0cjxBUEk6OkFycmF5PiBzdWJyZXNvdXJjZXMsIFBhc3NS
ZWZQdHI8QVBJOjpBcnJheT4gc3ViZnJhbWVBcmNoaXZlcyk7Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8V2ViQXJjaGl2ZT4gY3JlYXRlKFdlYkRhdGEqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxX
ZWJBcmNoaXZlPiBjcmVhdGUoQVBJOjpEYXRhKik7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2Vi
QXJjaGl2ZT4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6TGVnYWN5V2ViQXJjaGl2ZT4pOwog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkFyY2hpdmU+IGNyZWF0ZShXZWJDb3JlOjpSYW5nZSop
OwogCkBAIC01OSwxMyArNTksMTMgQEAgcHVibGljOgogICAgIEFQSTo6QXJyYXkqIHN1YnJlc291
cmNlcygpOwogICAgIEFQSTo6QXJyYXkqIHN1YmZyYW1lQXJjaGl2ZXMoKTsKIAotICAgIFBhc3NS
ZWZQdHI8V2ViRGF0YT4gZGF0YSgpOworICAgIFBhc3NSZWZQdHI8QVBJOjpEYXRhPiBkYXRhKCk7
CiAKICAgICBXZWJDb3JlOjpMZWdhY3lXZWJBcmNoaXZlKiBjb3JlTGVnYWN5V2ViQXJjaGl2ZSgp
OwogCiBwcml2YXRlOgogICAgIFdlYkFyY2hpdmUoV2ViQXJjaGl2ZVJlc291cmNlKiBtYWluUmVz
b3VyY2UsIFBhc3NSZWZQdHI8QVBJOjpBcnJheT4gc3VicmVzb3VyY2VzLCBQYXNzUmVmUHRyPEFQ
STo6QXJyYXk+IHN1YmZyYW1lQXJjaGl2ZXMpOwotICAgIFdlYkFyY2hpdmUoV2ViRGF0YSopOwor
ICAgIFdlYkFyY2hpdmUoQVBJOjpEYXRhKik7CiAgICAgV2ViQXJjaGl2ZShQYXNzUmVmUHRyPFdl
YkNvcmU6OkxlZ2FjeVdlYkFyY2hpdmU+KTsKIAogICAgIFJlZlB0cjxXZWJDb3JlOjpMZWdhY3lX
ZWJBcmNoaXZlPiBtX2xlZ2FjeVdlYkFyY2hpdmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViQXJjaGl2ZVJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJBcmNoaXZlUmVzb3VyY2UuY3BwCmluZGV4IDA4M2IyMTA4MzI4YmNjYWJhZjU5ZDU2M2E1ZWI0
NzI5NjcyYzI3M2YuLmM0OTUwOTlmNzIzYmZjZDNjOWEzMzU3ZTU1MDYxZmE0NmQ2Zjk0ZjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJBcmNoaXZlUmVzb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJBcmNoaXZlUmVzb3VyY2UuY3BwCkBAIC0yOCw3
ICsyOCw3IEBACiAKICNpZiBQTEFURk9STShNQUMpCiAKLSNpbmNsdWRlICJXZWJEYXRhLmgiCisj
aW5jbHVkZSAiQVBJRGF0YS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXJjaGl2ZVJlc291cmNlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9VUkwuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CkBA
IC0zNyw3ICszNyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAotUGFzc1JlZlB0cjxXZWJBcmNoaXZlUmVzb3VyY2U+IFdlYkFyY2hpdmVSZXNvdXJj
ZTo6Y3JlYXRlKFdlYkRhdGEqIGRhdGEsIGNvbnN0IFN0cmluZyYgVVJMLCBjb25zdCBTdHJpbmcm
IE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIHRleHRFbmNvZGluZykKK1Bhc3NSZWZQdHI8V2ViQXJj
aGl2ZVJlc291cmNlPiBXZWJBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZShBUEk6OkRhdGEqIGRhdGEs
IGNvbnN0IFN0cmluZyYgVVJMLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcm
IHRleHRFbmNvZGluZykKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkFyY2hpdmVSZXNv
dXJjZShkYXRhLCBVUkwsIE1JTUVUeXBlLCB0ZXh0RW5jb2RpbmcpKTsKIH0KQEAgLTQ3LDcgKzQ3
LDcgQEAgUGFzc1JlZlB0cjxXZWJBcmNoaXZlUmVzb3VyY2U+IFdlYkFyY2hpdmVSZXNvdXJjZTo6
Y3JlYXRlKFBhc3NSZWZQdHI8QXJjaGl2ZVJlc28KICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdl
YkFyY2hpdmVSZXNvdXJjZShhcmNoaXZlUmVzb3VyY2UpKTsKIH0KIAotV2ViQXJjaGl2ZVJlc291
cmNlOjpXZWJBcmNoaXZlUmVzb3VyY2UoV2ViRGF0YSogZGF0YSwgY29uc3QgU3RyaW5nJiBVUkws
IGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dEVuY29kaW5nKQorV2Vi
QXJjaGl2ZVJlc291cmNlOjpXZWJBcmNoaXZlUmVzb3VyY2UoQVBJOjpEYXRhKiBkYXRhLCBjb25z
dCBTdHJpbmcmIFVSTCwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0
RW5jb2RpbmcpCiAgICAgOiBtX2FyY2hpdmVSZXNvdXJjZShBcmNoaXZlUmVzb3VyY2U6OmNyZWF0
ZShTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLT5ieXRlcygpLCBkYXRhLT5zaXplKCkpLCBXZWJD
b3JlOjpVUkwoV2ViQ29yZTo6VVJMKCksIFVSTCksIE1JTUVUeXBlLCB0ZXh0RW5jb2RpbmcsIFN0
cmluZygpKSkKIHsKIH0KQEAgLTY3LDE0ICs2NywxNCBAQCBzdGF0aWMgdm9pZCByZWxlYXNlQ0ZE
YXRhKHVuc2lnbmVkIGNoYXIqLCBjb25zdCB2b2lkKiBkYXRhKQogICAgIENGUmVsZWFzZShkYXRh
KTsKIH0KIAotUGFzc1JlZlB0cjxXZWJEYXRhPiBXZWJBcmNoaXZlUmVzb3VyY2U6OmRhdGEoKQor
UGFzc1JlZlB0cjxBUEk6OkRhdGE+IFdlYkFyY2hpdmVSZXNvdXJjZTo6ZGF0YSgpCiB7CiAgICAg
UmV0YWluUHRyPENGRGF0YVJlZj4gY2ZEYXRhID0gbV9hcmNoaXZlUmVzb3VyY2UtPmRhdGEoKS0+
Y3JlYXRlQ0ZEYXRhKCk7CiAKICAgICAvLyBCYWxhbmNlZCBieSBDRlJlbGVhc2UgaW4gcmVsZWFz
ZUNGRGF0YS4KICAgICBDRlJldGFpbihjZkRhdGEuZ2V0KCkpOwogCi0gICAgcmV0dXJuIFdlYkRh
dGE6OmNyZWF0ZVdpdGhvdXRDb3B5aW5nKENGRGF0YUdldEJ5dGVQdHIoY2ZEYXRhLmdldCgpKSwg
Q0ZEYXRhR2V0TGVuZ3RoKGNmRGF0YS5nZXQoKSksIHJlbGVhc2VDRkRhdGEsIGNmRGF0YS5nZXQo
KSk7CisgICAgcmV0dXJuIEFQSTo6RGF0YTo6Y3JlYXRlV2l0aG91dENvcHlpbmcoQ0ZEYXRhR2V0
Qnl0ZVB0cihjZkRhdGEuZ2V0KCkpLCBDRkRhdGFHZXRMZW5ndGgoY2ZEYXRhLmdldCgpKSwgcmVs
ZWFzZUNGRGF0YSwgY2ZEYXRhLmdldCgpKTsKIH0KIAogU3RyaW5nIFdlYkFyY2hpdmVSZXNvdXJj
ZTo6VVJMKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJBcmNoaXZlUmVz
b3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJBcmNoaXZlUmVzb3VyY2UuaAppbmRl
eCBjMjY3NWVkNTg0MTA1Yjc5NTI2ZGI2ZjA5ZGI1NTk1ODIxOWRlYmI2Li4xYTZjYTJlYjY0NjE5
MTg1ZWZkMjNlZmY2ZGNjMmI1MjJlY2UzN2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQXJjaGl2ZVJlc291cmNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkFyY2hpdmVSZXNvdXJjZS5oCkBAIC0zMywyMyArMzMsMjYgQEAKICNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorbmFtZXNwYWNlIEFQSSB7Citj
bGFzcyBEYXRhOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBcmNoaXZlUmVzb3Vy
Y2U7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBXZWJEYXRhOwogY2xhc3MgV2Vi
VVJMOwogCiBjbGFzcyBXZWJBcmNoaXZlUmVzb3VyY2UgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBs
PEFQSTo6T2JqZWN0OjpUeXBlOjpXZWJBcmNoaXZlUmVzb3VyY2U+IHsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5XZWJBcmNoaXZlUmVzb3VyY2UoKTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdl
YkFyY2hpdmVSZXNvdXJjZT4gY3JlYXRlKFdlYkRhdGEqLCBjb25zdCBTdHJpbmcmIFVSTCwgY29u
c3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0RW5jb2RpbmcpOworICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFdlYkFyY2hpdmVSZXNvdXJjZT4gY3JlYXRlKEFQSTo6RGF0YSosIGNv
bnN0IFN0cmluZyYgVVJMLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIHRl
eHRFbmNvZGluZyk7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQXJjaGl2ZVJlc291cmNlPiBj
cmVhdGUoUGFzc1JlZlB0cjxXZWJDb3JlOjpBcmNoaXZlUmVzb3VyY2U+KTsKIAotICAgIFBhc3NS
ZWZQdHI8V2ViRGF0YT4gZGF0YSgpOworICAgIFBhc3NSZWZQdHI8QVBJOjpEYXRhPiBkYXRhKCk7
CiAgICAgU3RyaW5nIFVSTCgpOwogICAgIFN0cmluZyBNSU1FVHlwZSgpOwogICAgIFN0cmluZyB0
ZXh0RW5jb2RpbmcoKTsKQEAgLTU3LDcgKzYwLDcgQEAgcHVibGljOgogICAgIFdlYkNvcmU6OkFy
Y2hpdmVSZXNvdXJjZSogY29yZUFyY2hpdmVSZXNvdXJjZSgpOwogCiBwcml2YXRlOgotICAgIFdl
YkFyY2hpdmVSZXNvdXJjZShXZWJEYXRhKiwgY29uc3QgU3RyaW5nJiBVUkwsIGNvbnN0IFN0cmlu
ZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dEVuY29kaW5nKTsKKyAgICBXZWJBcmNoaXZl
UmVzb3VyY2UoQVBJOjpEYXRhKiwgY29uc3QgU3RyaW5nJiBVUkwsIGNvbnN0IFN0cmluZyYgTUlN
RVR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dEVuY29kaW5nKTsKICAgICBXZWJBcmNoaXZlUmVzb3Vy
Y2UoUGFzc1JlZlB0cjxXZWJDb3JlOjpBcmNoaXZlUmVzb3VyY2U+KTsKIAogICAgIFJlZlB0cjxX
ZWJDb3JlOjpBcmNoaXZlUmVzb3VyY2U+IG1fYXJjaGl2ZVJlc291cmNlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkRhdGEuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJEYXRhLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxYWQ4NDQ3ODJmMzcyNjUy
OWUxMmRiYjk5MWNjOTgxODA5ZDgwYjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkRhdGEuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDk4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYkRhdGFfaAotI2Rl
ZmluZSBXZWJEYXRhX2gKLQotI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgIkRhdGFS
ZWZlcmVuY2UuaCIKLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLS8vIFdlYkRhdGEgLSBBIGRhdGEgYnVmZmVy
IHR5cGUgc3VpdGFibGUgZm9yIHZlbmRpbmcgdG8gYW4gQVBJLgotCi1jbGFzcyBXZWJEYXRhIDog
cHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6RGF0YT4gewotcHVibGlj
OgotICAgIHR5cGVkZWYgdm9pZCAoKkZyZWVEYXRhRnVuY3Rpb24pKHVuc2lnbmVkIGNoYXIqLCBj
b25zdCB2b2lkKiBjb250ZXh0KTsKLQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkRhdGE+IGNy
ZWF0ZVdpdGhvdXRDb3B5aW5nKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGJ5dGVzLCBzaXplX3Qgc2l6
ZSwgRnJlZURhdGFGdW5jdGlvbiBmcmVlRGF0YUZ1bmN0aW9uLCBjb25zdCB2b2lkKiBjb250ZXh0
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJEYXRhKGJ5dGVzLCBzaXpl
LCBmcmVlRGF0YUZ1bmN0aW9uLCBjb250ZXh0KSk7Ci0gICAgfQotCi0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8V2ViRGF0YT4gY3JlYXRlKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGJ5dGVzLCBzaXplX3Qg
c2l6ZSkKLSAgICB7Ci0gICAgICAgIHVuc2lnbmVkIGNoYXIgKmNvcGllZEJ5dGVzID0gMDsKLQot
ICAgICAgICBpZiAoc2l6ZSkgewotICAgICAgICAgICAgY29waWVkQnl0ZXMgPSBzdGF0aWNfY2Fz
dDx1bnNpZ25lZCBjaGFyKj4oZmFzdE1hbGxvYyhzaXplKSk7Ci0gICAgICAgICAgICBtZW1jcHko
Y29waWVkQnl0ZXMsIGJ5dGVzLCBzaXplKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBj
cmVhdGVXaXRob3V0Q29weWluZyhjb3BpZWRCeXRlcywgc2l6ZSwgZmFzdEZyZWVCeXRlcywgMCk7
Ci0gICAgfQotICAgIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkRhdGE+IGNyZWF0ZShjb25z
dCBWZWN0b3I8dW5zaWduZWQgY2hhcj4mIGJ1ZmZlcikKLSAgICB7Ci0gICAgICAgIHJldHVybiBj
cmVhdGUoYnVmZmVyLmRhdGEoKSwgYnVmZmVyLnNpemUoKSk7Ci0gICAgfQotCi0gICAgfldlYkRh
dGEoKQotICAgIHsKLSAgICAgICAgbV9mcmVlRGF0YUZ1bmN0aW9uKGNvbnN0X2Nhc3Q8dW5zaWdu
ZWQgY2hhcio+KG1fYnl0ZXMpLCBtX2NvbnRleHQpOwotICAgIH0KLQotICAgIGNvbnN0IHVuc2ln
bmVkIGNoYXIqIGJ5dGVzKCkgY29uc3QgeyByZXR1cm4gbV9ieXRlczsgfQotICAgIHNpemVfdCBz
aXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9Ci0KLSAgICBDb3JlSVBDOjpEYXRhUmVmZXJl
bmNlIGRhdGFSZWZlcmVuY2UoKSBjb25zdCB7IHJldHVybiBDb3JlSVBDOjpEYXRhUmVmZXJlbmNl
KG1fYnl0ZXMsIG1fc2l6ZSk7IH0KLQotcHJpdmF0ZToKLSAgICBXZWJEYXRhKGNvbnN0IHVuc2ln
bmVkIGNoYXIqIGJ5dGVzLCBzaXplX3Qgc2l6ZSwgRnJlZURhdGFGdW5jdGlvbiBmcmVlRGF0YUZ1
bmN0aW9uLCBjb25zdCB2b2lkKiBjb250ZXh0KQotICAgICAgICA6IG1fYnl0ZXMoYnl0ZXMpCi0g
ICAgICAgICwgbV9zaXplKHNpemUpCi0gICAgICAgICwgbV9mcmVlRGF0YUZ1bmN0aW9uKGZyZWVE
YXRhRnVuY3Rpb24pCi0gICAgICAgICwgbV9jb250ZXh0KGNvbnRleHQpCi0gICAgewotICAgIH0K
LQotICAgIHN0YXRpYyB2b2lkIGZhc3RGcmVlQnl0ZXModW5zaWduZWQgY2hhciogYnl0ZXMsIGNv
bnN0IHZvaWQqKQotICAgIHsKLSAgICAgICAgaWYgKGJ5dGVzKQotICAgICAgICAgICAgZmFzdEZy
ZWUoc3RhdGljX2Nhc3Q8dm9pZCo+KGJ5dGVzKSk7Ci0gICAgfQotCi0gICAgY29uc3QgdW5zaWdu
ZWQgY2hhciogbV9ieXRlczsKLSAgICBzaXplX3QgbV9zaXplOwotCi0gICAgRnJlZURhdGFGdW5j
dGlvbiBtX2ZyZWVEYXRhRnVuY3Rpb247Ci0gICAgY29uc3Qgdm9pZCogbV9jb250ZXh0OwotfTsK
LQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBXZWJEYXRhX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggYjIwYTU0ZjNmYzEwZTAwZWFi
OTVmODM0YTM1YTVlNTA2NTdiMTEzZi4uODIxOWZjNjA3MDVjMTJhMzViNmM3MmNlOWQ3ODlkNGE0
NDM0MDQ2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAg
LTI4LDExICsyOCwxMSBAQAogI2luY2x1ZGUgIldLUGFnZVByaXZhdGUuaCIKIAogI2luY2x1ZGUg
IkFQSUFycmF5LmgiCisjaW5jbHVkZSAiQVBJRGF0YS5oIgogI2luY2x1ZGUgIlByaW50SW5mby5o
IgogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldLUGx1Z2luSW5mb3JtYXRpb24u
aCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3QuaCIKLSNpbmNsdWRlICJXZWJEYXRhLmgi
CiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5Lmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVy
Lm1tCmluZGV4IGJkNmYwY2FlZjA5Yjk3MDU3MjdiMWQzNDcxMmRhNmY5M2E5ZmI4YTQuLjI1OTBk
M2I3OGMwMWYwNzA2NzdhZmQ5OThmMzA0OTZkMzQ4MWI2MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRl
eHRDb250cm9sbGVyLm1tCkBAIC0yOCwxMCArMjgsMTQgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVE
CiAKLSNpbXBvcnQgIldlYWtPYmpDUHRyLmgiCisjaW1wb3J0ICJBUElEYXRhLmgiCiAjaW1wb3J0
ICJPYmpDT2JqZWN0R3JhcGguaCIKICNpbXBvcnQgIldLQmFja0ZvcndhcmRMaXN0SW50ZXJuYWwu
aCIKICNpbXBvcnQgIldLQmFja0ZvcndhcmRMaXN0SXRlbUludGVybmFsLmgiCisjaW1wb3J0ICJX
S0Jyb3dzaW5nQ29udGV4dEdyb3VwSW50ZXJuYWwuaCIKKyNpbXBvcnQgIldLQnJvd3NpbmdDb250
ZXh0SGFuZGxlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVn
YXRlUHJpdmF0ZS5oIgorI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRQb2xpY3lEZWxlZ2F0ZS5o
IgogI2ltcG9ydCAiV0tFcnJvclJlY292ZXJ5QXR0ZW1wdGluZy5oIgogI2ltcG9ydCAiV0tGcmFt
ZS5oIgogI2ltcG9ydCAiV0tGcmFtZVBvbGljeUxpc3RlbmVyLmgiCkBAIC00MCwyMCArNDQsMTUg
QEAKICNpbXBvcnQgIldLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIgogI2ltcG9ydCAi
V0tOU1VSTEV4dHJhcy5oIgogI2ltcG9ydCAiV0tOU1VSTFByb3RlY3Rpb25TcGFjZS5oIgorI2lt
cG9ydCAiV0tQcm9jZXNzR3JvdXBJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tSZXRhaW5QdHIuaCIK
ICNpbXBvcnQgIldLVVJMUmVxdWVzdE5TLmgiCiAjaW1wb3J0ICJXS1VSTFJlc3BvbnNlTlMuaCIK
KyNpbXBvcnQgIldlYWtPYmpDUHRyLmgiCiAjaW1wb3J0ICJXZWJDZXJ0aWZpY2F0ZUluZm8uaCIK
ICNpbXBvcnQgIldlYkNvbnRleHQuaCIKLSNpbXBvcnQgIldlYkRhdGEuaCIKICNpbXBvcnQgIldl
YlBhZ2VQcm94eS5oIgogCi0jaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dEdyb3VwSW50ZXJuYWwu
aCIKLSNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0SGFuZGxlSW50ZXJuYWwuaCIKLSNpbXBvcnQg
IldLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlUHJpdmF0ZS5oIgotI2ltcG9ydCAiV0tCcm93
c2luZ0NvbnRleHRQb2xpY3lEZWxlZ2F0ZS5oIgotI2ltcG9ydCAiV0tQcm9jZXNzR3JvdXBJbnRl
cm5hbC5oIgotCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CiAKQEAgLTI0MiwxNyArMjQxLDE4IEBAIHN0YXRpYyB2b2lkIHJlbGVhc2VOU0RhdGEodW5z
aWduZWQgY2hhciosIGNvbnN0IHZvaWQqIGRhdGEpCiAKIC0gKHZvaWQpbG9hZERhdGE6KE5TRGF0
YSAqKWRhdGEgTUlNRVR5cGU6KE5TU3RyaW5nICopTUlNRVR5cGUgdGV4dEVuY29kaW5nTmFtZToo
TlNTdHJpbmcgKillbmNvZGluZ05hbWUgYmFzZVVSTDooTlNVUkwgKiliYXNlVVJMIHVzZXJEYXRh
OihpZCl1c2VyRGF0YQogewotICAgIFJlZlB0cjxXZWJEYXRhPiB3a0RhdGE7CisgICAgUmVmUHRy
PEFQSTo6RGF0YT4gYXBpRGF0YTsKICAgICBpZiAoZGF0YSkgeworICAgICAgICAvLyBGSVhNRTog
VGhpcyBzaG91bGQgY29weSB0aGUgZGF0YS4KICAgICAgICAgW2RhdGEgcmV0YWluXTsKLSAgICAg
ICAgd2tEYXRhID0gV2ViRGF0YTo6Y3JlYXRlV2l0aG91dENvcHlpbmcoKGNvbnN0IHVuc2lnbmVk
IGNoYXIqKVtkYXRhIGJ5dGVzXSwgW2RhdGEgbGVuZ3RoXSwgcmVsZWFzZU5TRGF0YSwgZGF0YSk7
CisgICAgICAgIGFwaURhdGEgPSBBUEk6OkRhdGE6OmNyZWF0ZVdpdGhvdXRDb3B5aW5nKChjb25z
dCB1bnNpZ25lZCBjaGFyKilbZGF0YSBieXRlc10sIFtkYXRhIGxlbmd0aF0sIHJlbGVhc2VOU0Rh
dGEsIGRhdGEpOwogICAgIH0KIAogICAgIFJlZlB0cjxPYmpDT2JqZWN0R3JhcGg+IHdrVXNlckRh
dGE7CiAgICAgaWYgKHVzZXJEYXRhKQogICAgICAgICB3a1VzZXJEYXRhID0gT2JqQ09iamVjdEdy
YXBoOjpjcmVhdGUodXNlckRhdGEpOwogCi0gICAgX3BhZ2UtPmxvYWREYXRhKHdrRGF0YS5nZXQo
KSwgTUlNRVR5cGUsIGVuY29kaW5nTmFtZSwgW2Jhc2VVUkwgX3dlYl9vcmlnaW5hbERhdGFBc1dU
RlN0cmluZ10sIHdrVXNlckRhdGEuZ2V0KCkpOworICAgIF9wYWdlLT5sb2FkRGF0YShhcGlEYXRh
LmdldCgpLCBNSU1FVHlwZSwgZW5jb2RpbmdOYW1lLCBbYmFzZVVSTCBfd2ViX29yaWdpbmFsRGF0
YUFzV1RGU3RyaW5nXSwgd2tVc2VyRGF0YS5nZXQoKSk7CiB9CiAKIC0gKHZvaWQpc3RvcExvYWRp
bmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLUHJpbnRp
bmdWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tQcmludGluZ1Zp
ZXcubW0KaW5kZXggNmE5MmU0N2I1NWJlZjNjNTUzZWI0MjUxOTkzZTE2NDE1NzI1M2ExMC4uNzJm
OGE0NzU0ZjY3ZjBmYzI3MDc1Y2EzYTY4OWRjODgzOTJhZDk4MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tQcmludGluZ1ZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tQcmludGluZ1ZpZXcubW0KQEAgLTI2LDExICsy
NiwxMSBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJXS1ByaW50aW5nVmlldy5oIgog
CisjaW1wb3J0ICJBUElEYXRhLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJQREZL
aXRJbXBvcnRzLmgiCiAjaW1wb3J0ICJQcmludEluZm8uaCIKICNpbXBvcnQgIlNoYXJlYWJsZUJp
dG1hcC5oIgotI2ltcG9ydCAiV2ViRGF0YS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAj
aW1wb3J0IDxQREZLaXQvUERGS2l0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4
dC5oPgpAQCAtMjQyLDcgKzI0Miw3IEBAIHN0YXRpYyB2b2lkIHBhZ2VEaWREcmF3VG9QREYoV0tE
YXRhUmVmIGRhdGFSZWYsIFdLRXJyb3JSZWYsIHZvaWQqIHVudHlwZWRDb250ZXh0CiAKICAgICBP
d25QdHI8SVBDQ2FsbGJhY2tDb250ZXh0PiBjb250ZXh0ID0gYWRvcHRQdHIoc3RhdGljX2Nhc3Q8
SVBDQ2FsbGJhY2tDb250ZXh0Kj4odW50eXBlZENvbnRleHQpKTsKICAgICBXS1ByaW50aW5nVmll
dyAqdmlldyA9IGNvbnRleHQtPnZpZXcuZ2V0KCk7Ci0gICAgV2ViRGF0YSogZGF0YSA9IHRvSW1w
bChkYXRhUmVmKTsKKyAgICBBUEk6OkRhdGEqIGRhdGEgPSB0b0ltcGwoZGF0YVJlZik7CiAKICAg
ICBpZiAoY29udGV4dC0+Y2FsbGJhY2tJRCA9PSB2aWV3LT5fZXhwZWN0ZWRQcmludENhbGxiYWNr
KSB7CiAgICAgICAgIEFTU0VSVCghW3ZpZXcgX2lzUHJpbnRpbmdQcmV2aWV3XSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmNwcApp
bmRleCAwOTI0NjMzNjlkOWUwNmUyNDg4YmVkZjU5MTkzMTBiMzljM2MyNTg1Li5mYTNmNzUyMzVk
MDM0MWVkNDYzNGQ5MTRjNWRkN2NkNTY4YWI5NGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5jcHAKQEAgLTI2LDExICsyNiwx
MSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRvd25sb2FkUHJveHkuaCIKIAor
I2luY2x1ZGUgIkFQSURhdGEuaCIKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVBy
b3h5LmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkRvd25sb2FkUHJv
eHlNYXAuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0LmgiCi0jaW5jbHVkZSAiV2ViRGF0YS5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTE3NSwxMiArMTc1LDEy
IEBAIHZvaWQgRG93bmxvYWRQcm94eTo6ZGlkRmluaXNoKCkKICAgICBtX2Rvd25sb2FkUHJveHlN
YXAuZG93bmxvYWRGaW5pc2hlZCh0aGlzKTsKIH0KIAotc3RhdGljIFBhc3NSZWZQdHI8V2ViRGF0
YT4gY3JlYXRlV2ViRGF0YShjb25zdCBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhKQorc3Rh
dGljIFBhc3NSZWZQdHI8QVBJOjpEYXRhPiBjcmVhdGVEYXRhKGNvbnN0IENvcmVJUEM6OkRhdGFS
ZWZlcmVuY2UmIGRhdGEpCiB7CiAgICAgaWYgKGRhdGEuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm4gMDsKIAotICAgIHJldHVybiBXZWJEYXRhOjpjcmVhdGUoZGF0YS5kYXRhKCksIGRhdGEuc2l6
ZSgpKTsKKyAgICByZXR1cm4gQVBJOjpEYXRhOjpjcmVhdGUoZGF0YS5kYXRhKCksIGRhdGEuc2l6
ZSgpKTsKIH0KIAogdm9pZCBEb3dubG9hZFByb3h5OjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJy
b3ImIGVycm9yLCBjb25zdCBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlJiByZXN1bWVEYXRhKQpAQCAt
MTg4LDcgKzE4OCw3IEBAIHZvaWQgRG93bmxvYWRQcm94eTo6ZGlkRmFpbChjb25zdCBSZXNvdXJj
ZUVycm9yJiBlcnJvciwgY29uc3QgQ29yZUlQQzo6RGF0YVJlZmVyCiAgICAgaWYgKCFtX3dlYkNv
bnRleHQpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcmVzdW1lRGF0YSA9IGNyZWF0ZVdlYkRh
dGEocmVzdW1lRGF0YSk7CisgICAgbV9yZXN1bWVEYXRhID0gY3JlYXRlRGF0YShyZXN1bWVEYXRh
KTsKIAogICAgIG1fd2ViQ29udGV4dC0+ZG93bmxvYWRDbGllbnQoKS5kaWRGYWlsKG1fd2ViQ29u
dGV4dC5nZXQoKSwgdGhpcywgZXJyb3IpOwogCkBAIC0xOTgsNyArMTk4LDcgQEAgdm9pZCBEb3du
bG9hZFByb3h5OjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBDb3Jl
SVBDOjpEYXRhUmVmZXIKIAogdm9pZCBEb3dubG9hZFByb3h5OjpkaWRDYW5jZWwoY29uc3QgQ29y
ZUlQQzo6RGF0YVJlZmVyZW5jZSYgcmVzdW1lRGF0YSkKIHsKLSAgICBtX3Jlc3VtZURhdGEgPSBj
cmVhdGVXZWJEYXRhKHJlc3VtZURhdGEpOworICAgIG1fcmVzdW1lRGF0YSA9IGNyZWF0ZURhdGEo
cmVzdW1lRGF0YSk7CiAKICAgICBtX3dlYkNvbnRleHQtPmRvd25sb2FkQ2xpZW50KCkuZGlkQ2Fu
Y2VsKG1fd2ViQ29udGV4dC5nZXQoKSwgdGhpcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgKaW5kZXggNWVmMjAyZThkYmFjYWJi
ZDE0OTcxNzdhYzM5ZTlkNzJmMjYyNzNhOS4uOTI5NTA1MGExOTQxNTE5MTJjMmE2NTUyZGUyY2E1
YjljMDBjYjk4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fk
cy9Eb3dubG9hZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fk
cy9Eb3dubG9hZFByb3h5LmgKQEAgLTMzLDYgKzMzLDEwIEBACiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCituYW1lc3BhY2UgQVBJIHsKK2Ns
YXNzIERhdGE7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZTsKICAgICBjbGFzcyBSZXNvdXJjZUVycm9yOwpAQCAtNDMsNyArNDcsNiBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRG93bmxvYWRQcm94eU1hcDsKIGNsYXNzIFdl
YkNvbnRleHQ7Ci1jbGFzcyBXZWJEYXRhOwogY2xhc3MgV2ViUGFnZVByb3h5OwogCiBjbGFzcyBE
b3dubG9hZFByb3h5IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6
RG93bmxvYWQ+LCBwdWJsaWMgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKQEAgLTUzLDcgKzU2
LDcgQEAgcHVibGljOgogCiAgICAgdWludDY0X3QgZG93bmxvYWRJRCgpIGNvbnN0IHsgcmV0dXJu
IG1fZG93bmxvYWRJRDsgfQogICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdDsgfQotICAgIFdlYkRhdGEqIHJlc3VtZURh
dGEoKSBjb25zdCB7IHJldHVybiBtX3Jlc3VtZURhdGEuZ2V0KCk7IH0KKyAgICBBUEk6OkRhdGEq
IHJlc3VtZURhdGEoKSBjb25zdCB7IHJldHVybiBtX3Jlc3VtZURhdGEuZ2V0KCk7IH0KIAogICAg
IHZvaWQgY2FuY2VsKCk7CiAKQEAgLTg2LDcgKzg5LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8
V2ViQ29udGV4dD4gbV93ZWJDb250ZXh0OwogICAgIHVpbnQ2NF90IG1fZG93bmxvYWRJRDsKIAot
ICAgIFJlZlB0cjxXZWJEYXRhPiBtX3Jlc3VtZURhdGE7CisgICAgUmVmUHRyPEFQSTo6RGF0YT4g
bV9yZXN1bWVEYXRhOwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBtX3JlcXVlc3Q7CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGQyOTBm
MDQ4YmZjMzg1NjhmNDY3NDI0Y2Q5NTc1YmFmZjAzODlkMmQuLmZhNDVjZmY5OGRiOWVkY2IyNjAz
Yzk0OWVjNTg1ODVhMTE4ODQzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCkBAIC01OCw3ICs1OCw2IEBACiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVQcm94
eS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRVc2VyTWVzc2FnZUNvZGVycy5oIgogI2luY2x1ZGUg
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIgotI2luY2x1ZGUgIldlYkRhdGEuaCIKICNpbmNsdWRl
ICJXZWJFZGl0Q29tbWFuZFByb3h5LmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRl
ICJXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkuaCIKQEAgLTY1OSw3ICs2NTgsNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6bG9hZEZpbGUoY29uc3QgU3RyaW5nJiBmaWxlVVJMU3RyaW5nLCBj
b25zdCBTdHJpbmcmIHJlc291cmNlRAogICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1l
cigpLT5zdGFydCgpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6bG9hZERhdGEoV2ViRGF0YSog
ZGF0YSwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29u
c3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6bG9hZERhdGEoQVBJOjpEYXRhKiBkYXRhLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBj
b25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0
KiB1c2VyRGF0YSkKIHsKICAgICBpZiAoIWlzVmFsaWQoKSkKICAgICAgICAgcmVhdHRhY2hUb1dl
YlByb2Nlc3MoKTsKQEAgLTcwNSw3ICs3MDQsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFBs
YWluVGV4dFN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZywgQVBJOjpPYmplY3QqIHVzZXJEYQog
ICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLT5zdGFydCgpOwogfQogCi12b2lk
IFdlYlBhZ2VQcm94eTo6bG9hZFdlYkFyY2hpdmVEYXRhKGNvbnN0IFdlYkRhdGEqIHdlYkFyY2hp
dmVEYXRhLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFdl
YkFyY2hpdmVEYXRhKEFQSTo6RGF0YSogd2ViQXJjaGl2ZURhdGEsIEFQSTo6T2JqZWN0KiB1c2Vy
RGF0YSkKIHsKICAgICBpZiAoIWlzVmFsaWQoKSkKICAgICAgICAgcmVhdHRhY2hUb1dlYlByb2Nl
c3MoKTsKQEAgLTM2MDUsNyArMzYwNCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkYXRhQ2FsbGJh
Y2soY29uc3QgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5jZSwgdWluCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJl
dHVyblZhbHVlKFdlYkRhdGE6OmNyZWF0ZShkYXRhUmVmZXJlbmNlLmRhdGEoKSwgZGF0YVJlZmVy
ZW5jZS5zaXplKCkpLmdldCgpKTsKKyAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJl
dHVyblZhbHVlKEFQSTo6RGF0YTo6Y3JlYXRlKGRhdGFSZWZlcmVuY2UuZGF0YSgpLCBkYXRhUmVm
ZXJlbmNlLnNpemUoKSkuZ2V0KCkpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6aW1hZ2VDYWxs
YmFjayhjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgYml0bWFwSGFuZGxlLCB1aW50NjRf
dCBjYWxsYmFja0lEKQpAQCAtNDI1OCwxOSArNDI1NywxOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
dXBkYXRlQmFja2luZ1N0b3JlRGlzY2FyZGFibGVTdGF0ZSgpCiAgICAgbV9kcmF3aW5nQXJlYS0+
c2V0QmFja2luZ1N0b3JlSXNEaXNjYXJkYWJsZShpc0Rpc2NhcmRhYmxlKTsKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OnNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXIoY29uc3QgU3RyaW5n
JiBzdWdnZXN0ZWRGaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5n
JiBvcmlnaW5hdGluZ1VSTFN0cmluZywgV2ViRGF0YSogZGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5
OjpzYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyKGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVk
RmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgb3JpZ2luYXRp
bmdVUkxTdHJpbmcsIEFQSTo6RGF0YSogZGF0YSkKIHsKICAgICBtX3VpQ2xpZW50LnNhdmVEYXRh
VG9GaWxlSW5Eb3dubG9hZHNGb2xkZXIodGhpcywgc3VnZ2VzdGVkRmlsZW5hbWUsIG1pbWVUeXBl
LCBvcmlnaW5hdGluZ1VSTFN0cmluZywgZGF0YSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpz
YXZlUERGVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXIoY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxl
bmFtZSwgY29uc3QgU3RyaW5nJiBvcmlnaW5hdGluZ1VSTFN0cmluZywgY29uc3QgQ29yZUlQQzo6
RGF0YVJlZmVyZW5jZSYgZGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpzYXZlUERGVG9GaWxlSW5E
b3dubG9hZHNGb2xkZXIoY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSwgY29uc3QgU3Ry
aW5nJiBvcmlnaW5hdGluZ1VSTFN0cmluZywgY29uc3QgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSYg
ZGF0YVJlZmVyZW5jZSkKIHsKICAgICBpZiAoIXN1Z2dlc3RlZEZpbGVuYW1lLmVuZHNXaXRoKCIu
cGRmIiwgZmFsc2UpKQogICAgICAgICByZXR1cm47CiAKLSAgICBSZWZQdHI8V2ViRGF0YT4gd2Vi
RGF0YSA9IFdlYkRhdGE6OmNyZWF0ZShkYXRhLmRhdGEoKSwgZGF0YS5zaXplKCkpOworICAgIFJl
ZlB0cjxBUEk6OkRhdGE+IGRhdGEgPSBBUEk6OkRhdGE6OmNyZWF0ZShkYXRhUmVmZXJlbmNlLmRh
dGEoKSwgZGF0YVJlZmVyZW5jZS5zaXplKCkpOwogCi0gICAgc2F2ZURhdGFUb0ZpbGVJbkRvd25s
b2Fkc0ZvbGRlcihzdWdnZXN0ZWRGaWxlbmFtZSwgImFwcGxpY2F0aW9uL3BkZiIsIG9yaWdpbmF0
aW5nVVJMU3RyaW5nLCB3ZWJEYXRhLmdldCgpKTsKKyAgICBzYXZlRGF0YVRvRmlsZUluRG93bmxv
YWRzRm9sZGVyKHN1Z2dlc3RlZEZpbGVuYW1lLCAiYXBwbGljYXRpb24vcGRmIiwgb3JpZ2luYXRp
bmdVUkxTdHJpbmcsIGRhdGEuZ2V0KCkpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6bGlua0Ns
aWNrZWQoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFdlYk1vdXNlRXZlbnQmIGV2ZW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGEwNWVkNzlhYzI5MWVkZWJh
Yjk2NDAwN2NmN2YyOWE3MDkyNTMxNDcuLjQ0YmRiZDRiMmM1ZDg0YmM2ZmY0YTYzOTY5YTczZmE2
NTBmZjU4MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEz
Nyw3ICsxMzcsNiBAQCBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3Q7CiBjbGFzcyBXZWJCYWNrRm9y
d2FyZExpc3RJdGVtOwogY2xhc3MgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclByb3h5Owog
Y2xhc3MgV2ViQ29udGV4dE1lbnVQcm94eTsKLWNsYXNzIFdlYkRhdGE7CiBjbGFzcyBXZWJFZGl0
Q29tbWFuZFByb3h5OwogY2xhc3MgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTsKIGNsYXNzIFdl
YktleWJvYXJkRXZlbnQ7CkBAIC0zNzAsMTEgKzM2OSwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBs
b2FkVVJMKGNvbnN0IFN0cmluZyYsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSA9IG51bGxwdHIpOwog
ICAgIHZvaWQgbG9hZFVSTFJlcXVlc3QoV2ViVVJMUmVxdWVzdCosIEFQSTo6T2JqZWN0KiB1c2Vy
RGF0YSA9IG51bGxwdHIpOwogICAgIHZvaWQgbG9hZEZpbGUoY29uc3QgU3RyaW5nJiBmaWxlVVJM
LCBjb25zdCBTdHJpbmcmIHJlc291cmNlRGlyZWN0b3J5VVJMLCBBUEk6Ok9iamVjdCogdXNlckRh
dGEgPSBudWxscHRyKTsKLSAgICB2b2lkIGxvYWREYXRhKFdlYkRhdGEqLCBjb25zdCBTdHJpbmcm
IE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkws
IEFQSTo6T2JqZWN0KiB1c2VyRGF0YSA9IG51bGxwdHIpOworICAgIHZvaWQgbG9hZERhdGEoQVBJ
OjpEYXRhKiwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywg
Y29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEgPSBudWxscHRyKTsK
ICAgICB2b2lkIGxvYWRIVE1MU3RyaW5nKGNvbnN0IFN0cmluZyYgaHRtbFN0cmluZywgY29uc3Qg
U3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEgPSBudWxscHRyKTsKICAgICB2
b2lkIGxvYWRBbHRlcm5hdGVIVE1MU3RyaW5nKGNvbnN0IFN0cmluZyYgaHRtbFN0cmluZywgY29u
c3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVucmVhY2hhYmxlVVJMLCBBUEk6Ok9i
amVjdCogdXNlckRhdGEgPSBudWxscHRyKTsKICAgICB2b2lkIGxvYWRQbGFpblRleHRTdHJpbmco
Y29uc3QgU3RyaW5nJiwgQVBJOjpPYmplY3QqIHVzZXJEYXRhID0gbnVsbHB0cik7Ci0gICAgdm9p
ZCBsb2FkV2ViQXJjaGl2ZURhdGEoY29uc3QgV2ViRGF0YSosIEFQSTo6T2JqZWN0KiB1c2VyRGF0
YSA9IG51bGxwdHIpOworICAgIHZvaWQgbG9hZFdlYkFyY2hpdmVEYXRhKEFQSTo6RGF0YSosIEFQ
STo6T2JqZWN0KiB1c2VyRGF0YSA9IG51bGxwdHIpOwogCiAgICAgdm9pZCBzdG9wTG9hZGluZygp
OwogICAgIHZvaWQgcmVsb2FkKGJvb2wgcmVsb2FkRnJvbU9yaWdpbik7CkBAIC01MzUsOCArNTM0
LDggQEAgcHVibGljOgogICAgIHZvaWQgdGVybWluYXRlUHJvY2VzcygpOwogCiAgICAgdHlwZWRl
ZiBib29sICgqV2ViUGFnZVByb3h5U2Vzc2lvblN0YXRlRmlsdGVyQ2FsbGJhY2spKFdLUGFnZVJl
ZiwgV0tTdHJpbmdSZWYgdHlwZSwgV0tUeXBlUmVmIG9iamVjdCwgdm9pZCogY29udGV4dCk7Ci0g
ICAgUGFzc1JlZlB0cjxXZWJEYXRhPiBzZXNzaW9uU3RhdGVEYXRhKFdlYlBhZ2VQcm94eVNlc3Np
b25TdGF0ZUZpbHRlckNhbGxiYWNrLCB2b2lkKiBjb250ZXh0KSBjb25zdDsKLSAgICB2b2lkIHJl
c3RvcmVGcm9tU2Vzc2lvblN0YXRlRGF0YShXZWJEYXRhKik7CisgICAgUGFzc1JlZlB0cjxBUEk6
OkRhdGE+IHNlc3Npb25TdGF0ZURhdGEoV2ViUGFnZVByb3h5U2Vzc2lvblN0YXRlRmlsdGVyQ2Fs
bGJhY2ssIHZvaWQqIGNvbnRleHQpIGNvbnN0OworICAgIHZvaWQgcmVzdG9yZUZyb21TZXNzaW9u
U3RhdGVEYXRhKEFQSTo6RGF0YSopOwogCiAgICAgYm9vbCBzdXBwb3J0c1RleHRab29tKCkgY29u
c3Q7CiAgICAgZG91YmxlIHRleHRab29tRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0Wm9v
bUZhY3RvcjsgfQpAQCAtNzc4LDcgKzc3Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGhhbmRsZUFs
dGVybmF0aXZlVGV4dFVJUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdWx0KTsKICNlbmRpZgogCi0g
ICAgdm9pZCBzYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyKGNvbnN0IFN0cmluZyYgc3Vn
Z2VzdGVkRmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgb3Jp
Z2luYXRpbmdVUkxTdHJpbmcsIFdlYkRhdGEqKTsKKyAgICB2b2lkIHNhdmVEYXRhVG9GaWxlSW5E
b3dubG9hZHNGb2xkZXIoY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSwgY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBvcmlnaW5hdGluZ1VSTFN0cmluZywgQVBJOjpE
YXRhKik7CiAgICAgdm9pZCBzYXZlUERGVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXIoY29uc3QgU3Ry
aW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBvcmlnaW5hdGluZ1VSTFN0cmlu
ZywgY29uc3QgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSYpOwogI2lmIFBMQVRGT1JNKE1BQykKICAg
ICB2b2lkIHNhdmVQREZUb1RlbXBvcmFyeUZvbGRlckFuZE9wZW5XaXRoTmF0aXZlQXBwbGljYXRp
b25SYXcoY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBvcmln
aW5hdGluZ1VSTFN0cmluZywgY29uc3QgdWludDhfdCogZGF0YSwgdW5zaWduZWQgbG9uZyBzaXpl
LCBjb25zdCBTdHJpbmcmIHBkZlVVSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNs
aWVudC5jcHAKaW5kZXggY2Y1NTYwNjJiODI2OTY4ZTFjNGZiZWJjY2Y4ODUwYWY2MjE1MGM1OS4u
N2JiYzEzYTY3YjJmNGE0N2UzNTM3OTkyOWIyZTY0NDE1ZWIyMzY4MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwCkBAIC00MjAsNyArNDIwLDcgQEAgdm9pZCBXZWJV
SUNsaWVudDo6cnVuTW9kYWwoV2ViUGFnZVByb3h5KiBwYWdlKQogICAgIG1fY2xpZW50LnJ1bk1v
ZGFsKHRvQVBJKHBhZ2UpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCi12b2lkIFdl
YlVJQ2xpZW50OjpzYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyKFdlYlBhZ2VQcm94eSog
cGFnZSwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSwgY29uc3QgU3RyaW5nJiBvcmlnaW5hdGluZ1VSTFN0cmluZywgV2ViRGF0YSogZGF0YSkK
K3ZvaWQgV2ViVUlDbGllbnQ6OnNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXIoV2ViUGFn
ZVByb3h5KiBwYWdlLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lLCBjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIG9yaWdpbmF0aW5nVVJMU3RyaW5nLCBBUEk6OkRh
dGEqIGRhdGEpCiB7CiAgICAgaWYgKCFtX2NsaWVudC5zYXZlRGF0YVRvRmlsZUluRG93bmxvYWRz
Rm9sZGVyKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVu
dC5oCmluZGV4IGI0Nzc1NDUzN2U3OGJhZmRkNTZiMDgzZDY3ZmNhYjZiOWM2Njg2NGIuLjI3YzZi
ZGU0OTAzMWZhMGI1Yzk5OWQ4OTc4NmEyM2UzNWFmZDQ5OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJVSUNsaWVudC5oCkBAIC0zNSw2ICszNSw4IEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KIAogbmFtZXNwYWNlIEFQSSB7CitjbGFzcyBEYXRhOworCiB0ZW1wbGF0ZTw+IHN0
cnVjdCBDbGllbnRUcmFpdHM8V0tQYWdlVUlDbGllbnRCYXNlPiB7CiAgICAgdHlwZWRlZiBzdGQ6
OnR1cGxlPFdLUGFnZVVJQ2xpZW50VjAsIFdLUGFnZVVJQ2xpZW50VjEsIFdLUGFnZVVJQ2xpZW50
VjI+IFZlcnNpb25zOwogfTsKQEAgLTU1LDcgKzU3LDYgQEAgY2xhc3MgTmF0aXZlV2ViS2V5Ym9h
cmRFdmVudDsKIGNsYXNzIE5hdGl2ZVdlYldoZWVsRXZlbnQ7CiBjbGFzcyBOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdDsKIGNsYXNzIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94
eTsKLWNsYXNzIFdlYkRhdGE7CiBjbGFzcyBXZWJGcmFtZVByb3h5OwogY2xhc3MgV2ViUGFnZVBy
b3h5OwogY2xhc3MgV2ViU2VjdXJpdHlPcmlnaW47CkBAIC0xMjEsNyArMTIyLDcgQEAgcHVibGlj
OgogICAgIGJvb2wgY2FuUnVuTW9kYWwoKSBjb25zdDsKICAgICB2b2lkIHJ1bk1vZGFsKFdlYlBh
Z2VQcm94eSopOwogCi0gICAgdm9pZCBzYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyKFdl
YlBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUsIGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgb3JpZ2luYXRpbmdVUkxTdHJpbmcsIFdlYkRhdGEq
KTsKKyAgICB2b2lkIHNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXIoV2ViUGFnZVByb3h5
KiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgY29uc3QgU3RyaW5nJiBvcmlnaW5hdGluZ1VSTFN0cmluZywgQVBJOjpEYXRhKik7CiAKICAg
ICBib29sIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQoV2ViUGFnZVByb3h5Kik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9jZi9XZWJQYWdlUHJveHlDRi5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvY2YvV2ViUGFnZVByb3h5Q0YuY3BwCmluZGV4IGRmYzI1
NWQ3NGRjMmJhMDYxMTRlZDFhNzFkODFmMmE3NGIwNDlmYzMuLjlmNjFmOGQ3NzMzNTFlNmE2MzBl
N2RjN2RmODIxODM2OTNiOTEyZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9jZi9XZWJQYWdlUHJveHlDRi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2Nm
L1dlYlBhZ2VQcm94eUNGLmNwcApAQCAtMjYsMTEgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAKKyNpbmNsdWRlICJBUElEYXRhLmgiCiAj
aW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRl
ICJTZXNzaW9uU3RhdGUuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3QuaCIKLSNpbmNs
dWRlICJXZWJEYXRhLmgiCiAjaW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Byb3h5LmgiCiAKQEAgLTQ2LDcgKzQ2LDcgQEAgREVGSU5FX1NUQVRJQ19HRVRU
RVIoQ0ZTdHJpbmdSZWYsIFByb3Zpc2lvbmFsVVJMS2V5LCAoQ0ZTVFIoIlByb3Zpc2lvbmFsVVJM
IikpKTsKIAogc3RhdGljIGNvbnN0IFVJbnQzMiBDdXJyZW50U2Vzc2lvblN0YXRlRGF0YVZlcnNp
b24gPSAyOwogCi1QYXNzUmVmUHRyPFdlYkRhdGE+IFdlYlBhZ2VQcm94eTo6c2Vzc2lvblN0YXRl
RGF0YShXZWJQYWdlUHJveHlTZXNzaW9uU3RhdGVGaWx0ZXJDYWxsYmFjayBmaWx0ZXIsIHZvaWQq
IGNvbnRleHQpIGNvbnN0CitQYXNzUmVmUHRyPEFQSTo6RGF0YT4gV2ViUGFnZVByb3h5OjpzZXNz
aW9uU3RhdGVEYXRhKFdlYlBhZ2VQcm94eVNlc3Npb25TdGF0ZUZpbHRlckNhbGxiYWNrIGZpbHRl
ciwgdm9pZCogY29udGV4dCkgY29uc3QKIHsKICAgICBjb25zdCB2b2lkKiBrZXlzWzJdOwogICAg
IGNvbnN0IHZvaWQqIHZhbHVlc1syXTsKQEAgLTEwMSwxNSArMTAxLDE1IEBAIFBhc3NSZWZQdHI8
V2ViRGF0YT4gV2ViUGFnZVByb3h5OjpzZXNzaW9uU3RhdGVEYXRhKFdlYlBhZ2VQcm94eVNlc3Np
b25TdGF0ZUZpbHRlCiAgICAgLy8gQ29weSBpbiB0aGUgYWN0dWFsIHNlc3Npb24gc3RhdGUgZGF0
YQogICAgIENGRGF0YUdldEJ5dGVzKHN0YXRlQ0ZEYXRhLmdldCgpLCBDRlJhbmdlTWFrZSgwLCBs
ZW5ndGgpLCBzdGF0ZVZlY3Rvci5kYXRhKCkgKyBzaXplb2YoVUludDMyKSk7CiAgICAgCi0gICAg
cmV0dXJuIFdlYkRhdGE6OmNyZWF0ZShzdGF0ZVZlY3Rvcik7CisgICAgcmV0dXJuIEFQSTo6RGF0
YTo6Y3JlYXRlKHN0YXRlVmVjdG9yKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJlc3RvcmVG
cm9tU2Vzc2lvblN0YXRlRGF0YShXZWJEYXRhKiB3ZWJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6
OnJlc3RvcmVGcm9tU2Vzc2lvblN0YXRlRGF0YShBUEk6OkRhdGEqIGFwaURhdGEpCiB7Ci0gICAg
aWYgKCF3ZWJEYXRhIHx8IHdlYkRhdGEtPnNpemUoKSA8IHNpemVvZihVSW50MzIpKQorICAgIGlm
ICghYXBpRGF0YSB8fCBhcGlEYXRhLT5zaXplKCkgPCBzaXplb2YoVUludDMyKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgY29uc3QgdW5zaWduZWQgY2hhciogYnVmZmVyID0gd2ViRGF0YS0+Ynl0
ZXMoKTsKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBidWZmZXIgPSBhcGlEYXRhLT5ieXRlcygp
OwogICAgIFVJbnQzMiB2ZXJzaW9uSGVhZGVyID0gKGJ1ZmZlclswXSA8PCAyNCkgKyAoYnVmZmVy
WzFdIDw8IDE2KSArIChidWZmZXJbMl0gPDwgOCkgKyBidWZmZXJbM107CiAgICAgCiAgICAgaWYg
KHZlcnNpb25IZWFkZXIgIT0gQ3VycmVudFNlc3Npb25TdGF0ZURhdGFWZXJzaW9uKSB7CkBAIC0x
MTcsNyArMTE3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlc3RvcmVGcm9tU2Vzc2lvblN0YXRl
RGF0YShXZWJEYXRhKiB3ZWJEYXRhKQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAg
IFJldGFpblB0cjxDRkRhdGFSZWY+IGRhdGEgPSBhZG9wdENGKENGRGF0YUNyZWF0ZSgwLCB3ZWJE
YXRhLT5ieXRlcygpICsgc2l6ZW9mKFVJbnQzMiksIHdlYkRhdGEtPnNpemUoKSAtIHNpemVvZihV
SW50MzIpKSk7CisgICAgUmV0YWluUHRyPENGRGF0YVJlZj4gZGF0YSA9IGFkb3B0Q0YoQ0ZEYXRh
Q3JlYXRlKDAsIGFwaURhdGEtPmJ5dGVzKCkgKyBzaXplb2YoVUludDMyKSwgYXBpRGF0YS0+c2l6
ZSgpIC0gc2l6ZW9mKFVJbnQzMikpKTsKIAogICAgIENGRXJyb3JSZWYgcHJvcGVydHlMaXN0RXJy
b3IgPSAwOwogICAgIGF1dG8gcHJvcGVydHlMaXN0ID0gYWRvcHRDRihDRlByb3BlcnR5TGlzdENy
ZWF0ZVdpdGhEYXRhKDAsIGRhdGEuZ2V0KCksIGtDRlByb3BlcnR5TGlzdEltbXV0YWJsZSwgMCwg
JnByb3BlcnR5TGlzdEVycm9yKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzI5MmQ1NmExMWZiZTkwYWI3MzI5MjBiNmU0MGQw
NWJkZWRkNGM0OS4uMGRiNjY4MDVmODgyYTY1Zjc5ZjdkZjk5NGJjMzJkM2JmMDY2OTQ4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNTgzLDcgKzU4Myw3IEBACiAJCTUxNEJERUQzMTZDOThFREQwMEU0RTI1RSAvKiBTdGF0aXN0
aWNzUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTE0QkRFRDIxNkM5OEVERDAwRTRFMjVFIC8qIFN0YXRpc3RpY3NSZXF1ZXN0LmggKi87IH07
CiAJCTUxNTM1NjlDMTI5MUIxRDIwMDA3NDlEQyAvKiBXZWJQYWdlQ29udGV4dE1lbnVDbGllbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE1MzU2
OUExMjkxQjFEMjAwMDc0OURDIC8qIFdlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgKi87IH07
CiAJCTUxNTM1NjlEMTI5MUIxRDIwMDA3NDlEQyAvKiBXZWJQYWdlQ29udGV4dE1lbnVDbGllbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNTM1NjlC
MTI5MUIxRDIwMDA3NDlEQyAvKiBXZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuaCAqLzsgfTsKLQkJ
NTE1NzhCODMxMjA5RUNFRjAwQTM3QzRBIC8qIFdlYkRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNTc4QjgyMTIwOUVDRUYwMEEzN0M0QSAvKiBX
ZWJEYXRhLmggKi87IH07CisJCTUxNTc4QjgzMTIwOUVDRUYwMEEzN0M0QSAvKiBBUElEYXRhLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTU3OEI4MjEy
MDlFQ0VGMDBBMzdDNEEgLyogQVBJRGF0YS5oICovOyB9OwogCQk1MTVFNzcyNzE4M0RENkY2MDAw
NzIwM0YgLyogQXN5bmNSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxNUU3NzI1MTgzREQ2RjYwMDA3MjAzRiAvKiBBc3luY1JlcXVlc3Qu
Y3BwICovOyB9OwogCQk1MTVFNzcyODE4M0RENkY2MDAwNzIwM0YgLyogQXN5bmNSZXF1ZXN0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTVFNzcyNjE4
M0RENkY2MDAwNzIwM0YgLyogQXN5bmNSZXF1ZXN0LmggKi87IH07CiAJCTUxNUU3NzJCMTg0MDA4
QjkwMDA3MjAzRiAvKiBEYXRhYmFzZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE1RTc3MjkxODQwMDhC
OTAwMDcyMDNGIC8qIERhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi87IH07
CkBAIC0yMTcwLDcgKzIxNzAsNyBAQAogCQk1MTRCREVEMjE2Qzk4RUREMDBFNEUyNUUgLyogU3Rh
dGlzdGljc1JlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RhdGlz
dGljc1JlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE1MzU2OUExMjkx
QjFEMjAwMDc0OURDIC8qIFdlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTUzNTY5QjEyOTFCMUQyMDAwNzQ5REMgLyog
V2ViUGFnZUNvbnRleHRNZW51Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk1MTU3OEI4MjEyMDlFQ0VGMDBBMzdDNEEgLyogV2ViRGF0YS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTUxNTc4QjgyMTIwOUVDRUYwMEEzN0M0QSAvKiBBUElEYXRhLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFQSURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTE1RTc3MjUxODNERDZGNjAwMDcyMDNGIC8qIEFzeW5jUmVxdWVzdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBc3luY1JlcXVlc3QuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTVFNzcyNjE4M0RENkY2MDAwNzIwM0YgLyogQXN5bmNSZXF1
ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFzeW5jUmVxdWVzdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTVFNzcyOTE4NDAwOEI5MDAwNzIwM0YgLyog
RGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IERhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNDY4LDYgKzM0NjgsNyBAQAogCQkJCUJD
NjQ2OTZEMTFEQkU2MDMwMDY0NTVCMCAvKiBBUElBcnJheS5jcHAgKi8sCiAJCQkJQkM2NDY5NkUx
MURCRTYwMzAwNjQ1NUIwIC8qIEFQSUFycmF5LmggKi8sCiAJCQkJMUEzREQyMDUxMjVFNUEyRjAw
NDUxNUU2IC8qIEFQSUNsaWVudC5oICovLAorCQkJCTUxNTc4QjgyMTIwOUVDRUYwMEEzN0M0QSAv
KiBBUElEYXRhLmggKi8sCiAJCQkJMUFDMTMzNkYxODU2NkM3QzAwRjNFQzA1IC8qIEFQSUZyYW1l
SGFuZGxlLmNwcCAqLywKIAkJCQkxQUMxMzM3MDE4NTY2QzdDMDBGM0VDMDUgLyogQVBJRnJhbWVI
YW5kbGUuaCAqLywKIAkJCQkxQUMxMzM3MzE4NTdDMjFFMDBGM0VDMDUgLyogQVBJR2VvbWV0cnku
Y3BwICovLApAQCAtMzU2Myw3ICszNTY0LDYgQEAKIAkJCQlCQzFERDdCMTExNERDMzk2MDA1QURB
RjMgLyogV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggKi8sCiAJCQkJNTFCQTI0NDUxODU4RjQxNTAw
RUEyODExIC8qIFdlYkNyb3NzVGhyZWFkQ29waWVyLmNwcCAqLywKIAkJCQk1MTYzMTE4NjE4NTg0
NDY2MDA1MzQ2NDcgLyogV2ViQ3Jvc3NUaHJlYWRDb3BpZXIuaCAqLywKLQkJCQk1MTU3OEI4MjEy
MDlFQ0VGMDBBMzdDNEEgLyogV2ViRGF0YS5oICovLAogCQkJCUJDNTc1NjEyMTI2RTAxMzgwMDZG
MEYxMiAvKiBXZWJFcnJvci5jcHAgKi8sCiAJCQkJNTE2QTRBNUIxMjBBMkNDRDAwQzA1QjdGIC8q
IFdlYkVycm9yLmggKi8sCiAJCQkJQzAzMzdEQUQxMjdBMjRGRTAwOEZGNEY0IC8qIFdlYkV2ZW50
LmNwcCAqLywKQEAgLTU5OTksNyArNTk5OSw3IEBACiAJCQkJQkMxREQ3QjIxMTREQzM5NjAwNUFE
QUYzIC8qIFdlYkNvcmVBcmd1bWVudENvZGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE5RTMy
OTcxODIxOUJFQTAwRjVEMDRDIC8qIFdLUmVtb3RlT2JqZWN0UmVnaXN0cnlQcml2YXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MTJGNTg5QjEyQTg4Mzg4MDA2Mjk1MzAgLyogV2ViQ3JlZGVudGlh
bC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTE1NzhCODMxMjA5RUNFRjAwQTM3QzRBIC8qIFdlYkRh
dGEuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxNTc4QjgzMTIwOUVDRUYwMEEzN0M0QSAvKiBBUElE
YXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNkEyNUZERDEyQURDNkNDMDBEQzQwQ0MgLyogV2Vi
RGF0YWJhc2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNjJBNzZCNzEyQjFCMjVGMDAw
NUYxQjYgLyogV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUY2MkE3NjVEMTJCMUFCQzMwMDA1RjFCNiAvKiBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oIGlu
IEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwCmluZGV4IGQ5MmE4ZGVmNTI2NWFmNjQ3
ZDIxOTU0ZTQ4MzQ3YjQ2M2M5OWZjZmUuLmJjMGNhMTQyZTRmNzBmY2VjMTJmYTVlYmI2ZThjMzI0
MGFkMjgwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwCkBAIC0yNywxMSArMjcsMTEgQEAKICNp
bmNsdWRlICJXS0J1bmRsZS5oIgogCiAjaW5jbHVkZSAiQVBJQXJyYXkuaCIKKyNpbmNsdWRlICJB
UElEYXRhLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGUuaCIKICNpbmNsdWRlICJXS0FQSUNh
c3QuaCIKICNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKICNpbmNsdWRlICJXS0J1bmRsZVBy
aXZhdGUuaCIKLSNpbmNsdWRlICJXZWJEYXRhLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7
CiAKQEAgLTI2Niw4ICsyNjYsNyBAQCBXS0FycmF5UmVmIFdLQnVuZGxlQ29weU9yaWdpbnNXaXRo
QXBwbGljYXRpb25DYWNoZShXS0J1bmRsZVJlZiBidW5kbGVSZWYpCiAKIFdLRGF0YVJlZiBXS0J1
bmRsZUNyZWF0ZVdLRGF0YUZyb21VSW50OEFycmF5KFdLQnVuZGxlUmVmIGJ1bmRsZSwgSlNDb250
ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgZGF0YSkKIHsKLSAgICBSZWZQdHI8V2ViRGF0YT4g
d2ViRGF0YSA9IHRvSW1wbChidW5kbGUpLT5jcmVhdGVXZWJEYXRhRnJvbVVpbnQ4QXJyYXkoY29u
dGV4dCwgZGF0YSk7Ci0gICAgcmV0dXJuIHRvQVBJKHdlYkRhdGEucmVsZWFzZSgpLmxlYWtSZWYo
KSk7CisgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChidW5kbGUpLT5jcmVhdGVXZWJEYXRhRnJvbVVp
bnQ4QXJyYXkoY29udGV4dCwgZGF0YSkubGVha1JlZigpKTsKIH0KIAogaW50IFdLQnVuZGxlTnVt
YmVyT2ZQYWdlcyhXS0J1bmRsZVJlZiBidW5kbGVSZWYsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWVS
ZWYsIGRvdWJsZSBwYWdlV2lkdGhJblBpeGVscywgZG91YmxlIHBhZ2VIZWlnaHRJblBpeGVscykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggZWYwNGQzYmZmNzRkMDc0ZjE0MzM2ZTcwZWYzOTA1
YmI5MzFhZDQxNi4uNzkzODgxNDcwYWE3YzhiY2I2MmVhZTcwZjE4ZGJkMThmMjAwZTJjYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRlICJXZWJDb250
ZXh0TWVzc2FnZUtpbmRzLmgiCiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlci5oIgogI2luY2x1
ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgotI2luY2x1ZGUgIldlYkRhdGEuaCIKICNpbmNs
dWRlICJXZWJEYXRhYmFzZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1
ZGUgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKQEAgLTYyNiwxMSArNjI1LDEyIEBAIHVp
bnQ2NF90IEluamVjdGVkQnVuZGxlOjp3ZWJOb3RpZmljYXRpb25JRChKU0NvbnRleHRSZWYganND
b250ZXh0LCBKU1ZhbHVlUmVmIGpzCiAjZW5kaWYKIH0KIAotUGFzc1JlZlB0cjxXZWJEYXRhPiBJ
bmplY3RlZEJ1bmRsZTo6Y3JlYXRlV2ViRGF0YUZyb21VaW50OEFycmF5KEpTQ29udGV4dFJlZiBj
b250ZXh0LCBKU1ZhbHVlUmVmIGRhdGEpCisvLyBGSVhNRSBHZXQgcmlkIG9mIHRoaXMgZnVuY3Rp
b24gYW5kIG1vdmUgaXQgaW50byBXS0J1bmRsZS5jcHAuCitQYXNzUmVmUHRyPEFQSTo6RGF0YT4g
SW5qZWN0ZWRCdW5kbGU6OmNyZWF0ZVdlYkRhdGFGcm9tVWludDhBcnJheShKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlNWYWx1ZVJlZiBkYXRhKQogewogICAgIEpTQzo6RXhlY1N0YXRlKiBleGVjU3Rh
dGUgPSB0b0pTKGNvbnRleHQpOwogICAgIFJlZlB0cjxVaW50OEFycmF5PiBhcnJheURhdGEgPSBX
ZWJDb3JlOjp0b1VpbnQ4QXJyYXkodG9KUyhleGVjU3RhdGUsIGRhdGEpKTsKLSAgICByZXR1cm4g
V2ViRGF0YTo6Y3JlYXRlKHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXIqPihhcnJheURhdGEtPmJh
c2VBZGRyZXNzKCkpLCBhcnJheURhdGEtPmJ5dGVMZW5ndGgoKSk7CisgICAgcmV0dXJuIEFQSTo6
RGF0YTo6Y3JlYXRlKHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXIqPihhcnJheURhdGEtPmJhc2VB
ZGRyZXNzKCkpLCBhcnJheURhdGEtPmJ5dGVMZW5ndGgoKSk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRC
dW5kbGU6OnNldFRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyhXZWJQYWdlKiBwYWdlLCBib29s
IGVuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKaW5kZXggNjgxNzYzZTRkM2Y5NWRhMDhjNTAzODFj
NDYxZDg3MmFhNmViNmI5ZC4uMjM1MDhjZTFiOTEzNWEyODRlZDc3NTllYjEwMjgxZTYxOGI3NzZj
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuaApAQCAtNDksMTEgKzQ5LDEyIEBAIE9CSkNfQ0xBU1MgTlNC
dW5kbGU7CiAKIG5hbWVzcGFjZSBBUEkgewogY2xhc3MgQXJyYXk7CitjbGFzcyBEYXRhOwogfQog
Ci1uYW1lc3BhY2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwotICAgIGNs
YXNzIENvbm5lY3Rpb247CituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIEFyZ3VtZW50RGVjb2RlcjsK
K2NsYXNzIENvbm5lY3Rpb247CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNjksNyArNzAs
NiBAQCB0eXBlZGVmIEVpbmFfTW9kdWxlKiBQbGF0Zm9ybUJ1bmRsZTsKIGNsYXNzIEluamVjdGVk
QnVuZGxlU2NyaXB0V29ybGQ7CiBjbGFzcyBXZWJDZXJ0aWZpY2F0ZUluZm87CiBjbGFzcyBXZWJD
b25uZWN0aW9uOwotY2xhc3MgV2ViRGF0YTsKIGNsYXNzIFdlYkZyYW1lOwogY2xhc3MgV2ViUGFn
ZTsKIGNsYXNzIFdlYlBhZ2VHcm91cFByb3h5OwpAQCAtMTIyLDcgKzEyMiw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oV2ViUGFnZSosIGNvbnN0IFN0
cmluZyYgb3JpZ2luU3RyaW5nLCBib29sIGFsbG93ZWQpOwogICAgIHZvaWQgcmVtb3ZlQWxsV2Vi
Tm90aWZpY2F0aW9uUGVybWlzc2lvbnMoV2ViUGFnZSopOwogICAgIHVpbnQ2NF90IHdlYk5vdGlm
aWNhdGlvbklEKEpTQ29udGV4dFJlZiwgSlNWYWx1ZVJlZik7Ci0gICAgUGFzc1JlZlB0cjxXZWJE
YXRhPiBjcmVhdGVXZWJEYXRhRnJvbVVpbnQ4QXJyYXkoSlNDb250ZXh0UmVmLCBKU1ZhbHVlUmVm
KTsKKyAgICBQYXNzUmVmUHRyPEFQSTo6RGF0YT4gY3JlYXRlV2ViRGF0YUZyb21VaW50OEFycmF5
KEpTQ29udGV4dFJlZiwgSlNWYWx1ZVJlZik7CiAKICAgICAvLyBVc2VyQ29udGVudCBBUEkKICAg
ICB2b2lkIGFkZFVzZXJTY3JpcHQoV2ViUGFnZUdyb3VwUHJveHkqLCBJbmplY3RlZEJ1bmRsZVNj
cmlwdFdvcmxkKiwgY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFN0cmluZyYgdXJsLCBBUEk6
OkFycmF5KiB3aGl0ZWxpc3QsIEFQSTo6QXJyYXkqIGJsYWNrbGlzdCwgV2ViQ29yZTo6VXNlclNj
cmlwdEluamVjdGlvblRpbWUsIFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwCmluZGV4
IDBiYzY1NmEzZWY2YmU1MGM0ZTdmM2UxZmVjYTk0MzA4ZDVlYzcyMDAuLjI3N2E5ZWQ1NDU4N2I5
MzFjNjc2OWQ3MTQ4NTVjYjZlOTE2ZWYyOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHAKQEAgLTI3LDEyICsyNywxMiBAQAogI2luY2x1ZGUg
IkluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oIgogCiAjaW5jbHVkZSAiQVBJQXJyYXku
aCIKKyNpbmNsdWRlICJBUElEYXRhLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVOb2RlSGFu
ZGxlLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5oIgogI2luY2x1ZGUg
IldLQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldLQnVuZGxlQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldL
U3RyaW5nLmgiCi0jaW5jbHVkZSAiV2ViRGF0YS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTE1Nyw3ICsxNTcsNyBAQCB2
b2lkIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudDo6Z2V0UGFzdGVib2FyZERhdGFGb3JS
YW5nZShXZWJQYWdlKiBwYWdlLCBSYQogICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHR5cGUgOiB0
eXBlc0FycmF5LT5lbGVtZW50c09mVHlwZTxBUEk6OlN0cmluZz4oKSkKICAgICAgICAgICAgIHBh
c3RlYm9hcmRUeXBlcy5hcHBlbmQodHlwZS0+c3RyaW5nKCkpOwogCi0gICAgICAgIGZvciAoY29u
c3QgYXV0byYgaXRlbSA6IGRhdGFBcnJheS0+ZWxlbWVudHNPZlR5cGU8V2ViRGF0YT4oKSkgewor
ICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGl0ZW0gOiBkYXRhQXJyYXktPmVsZW1lbnRzT2ZUeXBl
PEFQSTo6RGF0YT4oKSkgewogICAgICAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVy
ID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoaXRlbS0+Ynl0ZXMoKSwgaXRlbS0+c2l6ZSgpKTsKICAg
ICAgICAgICAgIHBhc3RlYm9hcmREYXRhLmFwcGVuZChidWZmZXIpOwogICAgICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAKaW5kZXggZTQw
NjdlNjM5NWFiNTQyOWMxMDg0ZDgxMjc2ZTViMzdhMjlkODEyMi4uYzY0MzM2M2I1M2JlZjQyZjJj
MjE1MmJhY2UwMzEzOTRhM2ZiMGJhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlTG9hZGVyQ2xpZW50LmNwcApAQCAtMjcsMTEgKzI3LDExIEBACiAjaW5jbHVkZSAiSW5q
ZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmgiCiAKICNpbmNsdWRlICJBUElBcnJheS5oIgor
I2luY2x1ZGUgIkFQSURhdGEuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4
dGVuc2lvbi5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQuaCIKICNpbmNs
dWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKLSNpbmNsdWRl
ICJXZWJEYXRhLmgiCiAjaW5jbHVkZSAiV2ViRXJyb3IuaCIKICNpbmNsdWRlICJXZWJVUkxSZXF1
ZXN0LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KQEAgLTU1LDE4ICs1NSwx
OCBAQCBzdGF0aWMgdm9pZCByZWxlYXNlU2hhcmVkQnVmZmVyKHVuc2lnbmVkIGNoYXIqLCBjb25z
dCB2b2lkKiBkYXRhKQogICAgIHN0YXRpY19jYXN0PFNoYXJlZEJ1ZmZlcio+KGNvbnN0X2Nhc3Q8
dm9pZCo+KGRhdGEpKS0+ZGVyZWYoKTsKIH0KIAotdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VMb2Fk
ZXJDbGllbnQ6OndpbGxMb2FkRGF0YVJlcXVlc3QoV2ViUGFnZSogcGFnZSwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTaGFyZWRCdWZmZXIqIGRhdGEsIGNvbnN0IFN0cmlu
ZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmdOYW1lLCBjb25zdCBVUkwmIHVucmVh
Y2hhYmxlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpCit2b2lkIEluamVjdGVkQnVuZGxlUGFn
ZUxvYWRlckNsaWVudDo6d2lsbExvYWREYXRhUmVxdWVzdChXZWJQYWdlKiBwYWdlLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFNoYXJlZEJ1ZmZlciogc2hhcmVkQnVmZmVyLCBjb25z
dCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nTmFtZSwgY29uc3QgVVJM
JiB1bnJlYWNoYWJsZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKQogewogICAgIGlmICghbV9j
bGllbnQud2lsbExvYWREYXRhUmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRy
PFdlYkRhdGE+IHdlYkRhdGE7CisgICAgUmVmUHRyPEFQSTo6RGF0YT4gZGF0YTsKICAgICBpZiAo
ZGF0YSkgewotICAgICAgICBjb25zdF9jYXN0PFNoYXJlZEJ1ZmZlcio+KGRhdGEpLT5yZWYoKTsK
LSAgICAgICAgd2ViRGF0YSA9IFdlYkRhdGE6OmNyZWF0ZVdpdGhvdXRDb3B5aW5nKChjb25zdCB1
bnNpZ25lZCBjaGFyKilkYXRhLT5kYXRhKCksIGRhdGEtPnNpemUoKSwgcmVsZWFzZVNoYXJlZEJ1
ZmZlciwgZGF0YSk7CisgICAgICAgIHNoYXJlZEJ1ZmZlci0+cmVmKCk7CisgICAgICAgIGRhdGEg
PSBBUEk6OkRhdGE6OmNyZWF0ZVdpdGhvdXRDb3B5aW5nKChjb25zdCB1bnNpZ25lZCBjaGFyKilz
aGFyZWRCdWZmZXItPmRhdGEoKSwgc2hhcmVkQnVmZmVyLT5zaXplKCksIHJlbGVhc2VTaGFyZWRC
dWZmZXIsIHNoYXJlZEJ1ZmZlcik7CiAgICAgfQogCi0gICAgbV9jbGllbnQud2lsbExvYWREYXRh
UmVxdWVzdCh0b0FQSShwYWdlKSwgdG9BUEkocmVxdWVzdCksIHRvQVBJKHdlYkRhdGEuZ2V0KCkp
LCB0b0FQSShNSU1FVHlwZS5pbXBsKCkpLCB0b0FQSShlbmNvZGluZ05hbWUuaW1wbCgpKSwgdG9V
UkxSZWYodW5yZWFjaGFibGVVUkwuc3RyaW5nKCkuaW1wbCgpKSwgdG9BUEkodXNlckRhdGEpLCBt
X2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgIG1fY2xpZW50LndpbGxMb2FkRGF0YVJlcXVl
c3QodG9BUEkocGFnZSksIHRvQVBJKHJlcXVlc3QpLCB0b0FQSShkYXRhLmdldCgpKSwgdG9BUEko
TUlNRVR5cGUuaW1wbCgpKSwgdG9BUEkoZW5jb2RpbmdOYW1lLmltcGwoKSksIHRvVVJMUmVmKHVu
cmVhY2hhYmxlVVJMLnN0cmluZygpLmltcGwoKSksIHRvQVBJKHVzZXJEYXRhKSwgbV9jbGllbnQu
YmFzZS5jbGllbnRJbmZvKTsKIH0KIAogYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGll
bnQ6OnNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKFdlYlBhZ2UqIHBhZ2UsIEluamVjdGVk
QnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbSogaXRlbSwgUmVmUHRyPEFQSTo6T2JqZWN0PiYgdXNl
ckRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaApp
bmRleCA4Mzk1YTRmMTI4YWZkNzQyZWQyODU4MWE3M2Q0ZmFjMzVlZWJjM2QxLi5hZTJiOTUwM2E1
ZTk3YTdjNjVlZGMxODgxMzE2MDEzMWE0NGRkNzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmgKQEAgLTYxLDcgKzYxLDcgQEAgY2xhc3MgV2ViRnJh
bWU7CiBjbGFzcyBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQgOiBwdWJsaWMgQVBJOjpD
bGllbnQ8V0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50QmFzZT4gewogcHVibGljOgogICAgIHZvaWQg
d2lsbExvYWRVUkxSZXF1ZXN0KFdlYlBhZ2UqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBBUEk6Ok9iamVjdCopOwotICAgIHZvaWQgd2lsbExvYWREYXRhUmVxdWVzdChXZWJQYWdl
KiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6U2hhcmVk
QnVmZmVyKiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6VVJM
JiwgQVBJOjpPYmplY3QqKTsKKyAgICB2b2lkIHdpbGxMb2FkRGF0YVJlcXVlc3QoV2ViUGFnZSos
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcios
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIEFQSTo6
T2JqZWN0Kik7CiAKICAgICBib29sIHNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKFdlYlBh
Z2UqLCBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0qLCBSZWZQdHI8QVBJOjpPYmpl
Y3Q+JiB1c2VyRGF0YSk7CiAgICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
KFdlYlBhZ2UqLCBXZWJGcmFtZSosIFJlZlB0cjxBUEk6Ok9iamVjdD4mIHVzZXJEYXRhKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA3ODNm
MGY2ZGNhY2MwNGFjYWVlZTMwOWZlYmMzZjA4NDE5MTZmMGM1Li42Mzg5NTkxNTMyMWYwZWU4Nzc0
OWViOGFhNjhmMDUxNGE2ZDM2MGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC05MTEsNyArOTExLDcgQEAgdm9pZCBXZWJQYWdlOjpsb2Fk
RGF0YUltcGwoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHNoYXJlZEJ1ZmZlciwgY29uc3QgU3Ry
aW5nJgogCiAgICAgLy8gTGV0IHRoZSBJbmplY3RlZEJ1bmRsZSBrbm93IHdlIGFyZSBhYm91dCB0
byBzdGFydCB0aGUgbG9hZCwgcGFzc2luZyB0aGUgdXNlciBkYXRhIGZyb20gdGhlIFVJUHJvY2Vz
cwogICAgIC8vIHRvIGFsbCB0aGUgY2xpZW50IHRvIHNldCB1cCBhbnkgbmVlZGVkIHN0YXRlLgot
ICAgIG1fbG9hZGVyQ2xpZW50LndpbGxMb2FkRGF0YVJlcXVlc3QodGhpcywgcmVxdWVzdCwgc3Vi
c3RpdHV0ZURhdGEuY29udGVudCgpLCBzdWJzdGl0dXRlRGF0YS5taW1lVHlwZSgpLCBzdWJzdGl0
dXRlRGF0YS50ZXh0RW5jb2RpbmcoKSwgc3Vic3RpdHV0ZURhdGEuZmFpbGluZ1VSTCgpLCB1c2Vy
RGF0YS5nZXQoKSk7CisgICAgbV9sb2FkZXJDbGllbnQud2lsbExvYWREYXRhUmVxdWVzdCh0aGlz
LCByZXF1ZXN0LCBjb25zdF9jYXN0PFNoYXJlZEJ1ZmZlcio+KHN1YnN0aXR1dGVEYXRhLmNvbnRl
bnQoKSksIHN1YnN0aXR1dGVEYXRhLm1pbWVUeXBlKCksIHN1YnN0aXR1dGVEYXRhLnRleHRFbmNv
ZGluZygpLCBzdWJzdGl0dXRlRGF0YS5mYWlsaW5nVVJMKCksIHVzZXJEYXRhLmdldCgpKTsKIAog
ICAgIC8vIEluaXRhdGUgdGhlIGxvYWQgaW4gV2ViQ29yZS4KICAgICBtX21haW5GcmFtZS0+Y29y
ZUZyYW1lKCktPmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdChtX21haW5GcmFtZS0+Y29y
ZUZyYW1lKCksIHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhKSk7Cg==
</data>
<flag name="review"
          id="242952"
          type_id="1"
          status="+"
          setter="bdakin"
    />
          </attachment>
      

    </bug>

</bugzilla>