<?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>106279</bug_id>
          
          <creation_ts>2013-01-07 17:20:14 -0800</creation_ts>
          <short_desc>Remove PLATFORM(WIN) #ifdefs</short_desc>
          <delta_ts>2013-01-07 17:46: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>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>801869</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-01-07 17:20:14 -0800</bug_when>
    <thetext>Remove PLATFORM(WIN) #ifdefs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801872</commentid>
    <comment_count>1</comment_count>
      <attachid>181611</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-01-07 17:21:55 -0800</bug_when>
    <thetext>Created attachment 181611
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801890</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-01-07 17:46:31 -0800</bug_when>
    <thetext>Committed r139023: &lt;http://trac.webkit.org/changeset/139023&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181611</attachid>
            <date>2013-01-07 17:21:55 -0800</date>
            <delta_ts>2013-01-07 17:37:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106279-20130107172018.patch</filename>
            <type>text/plain</type>
            <size>102328</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5MDAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmFmZjhkOWMwZWYxODFh
YjMxYWFjMGE4MjY2YTM4OWIxZmIyZjczNC4uNzViMDQxOGMxYjFmN2U1MjY0ZGFmNGE4MThiOWYz
Y2ZjMmQ3YzNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE3MyBAQAogMjAxMy0wMS0wNyAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCisgICAgICAgIFJlbW92ZSBQTEFU
Rk9STShXSU4pICNpZmRlZnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwNjI3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9CaW5hcnlTZW1hcGhvcmUuY3BwOgorICAgICAg
ICAqIFBsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChDb3JlSVBDOjpD
b25uZWN0aW9uOjp3YWl0Rm9yU3luY1JlcGx5KToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBD
L0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKENsaWVudCk6CisgICAgICAgICogUGxhdGZvcm0vTW9k
dWxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TW9kdWxlOjpNb2R1bGUpOgorICAgICAgICAqIFBs
YXRmb3JtL01vZHVsZS5oOgorICAgICAgICAoTW9kdWxlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9Q
bGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAq
IFNoYXJlZC9Db21tYW5kTGluZS5oOgorICAgICAgICAoQ29tbWFuZExpbmUpOgorICAgICAgICAq
IFNoYXJlZC9Gb250U21vb3RoaW5nTGV2ZWwuaDoKKyAgICAgICAgKiBTaGFyZWQvTGF5ZXJUcmVl
Q29udGV4dC5oOgorICAgICAgICAoTGF5ZXJUcmVlQ29udGV4dCk6CisgICAgICAgICogU2hhcmVk
L05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaDoKKyAgICAgICAgKE5hdGl2ZVdlYktleWJvYXJkRXZl
bnQpOgorICAgICAgICAqIFNoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50Lmg6CisgICAgICAgIChO
YXRpdmVXZWJNb3VzZUV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVu
dC5oOgorICAgICAgICAoTmF0aXZlV2ViV2hlZWxFdmVudCk6CisgICAgICAgICogU2hhcmVkL1Bs
YXRmb3JtUG9wdXBNZW51RGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtUG9wdXBN
ZW51RGF0YTo6UGxhdGZvcm1Qb3B1cE1lbnVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZv
cm1Qb3B1cE1lbnVEYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybVBvcHVw
TWVudURhdGE6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0
YS5oOgorICAgICAgICAoUGxhdGZvcm1Qb3B1cE1lbnVEYXRhKToKKyAgICAgICAgKiBTaGFyZWQv
UGx1Z2lucy9QbHVnaW5Nb2R1bGVJbmZvLmg6CisgICAgICAgIChQbHVnaW5Nb2R1bGVJbmZvKToK
KyAgICAgICAgKFdlYktpdDo6UGx1Z2luTW9kdWxlSW5mbzo6aXNvbGF0ZWRDb3B5KToKKyAgICAg
ICAgKiBTaGFyZWQvU2hhcmVhYmxlQml0bWFwLmg6CisgICAgICAgIChTaGFyZWFibGVCaXRtYXAp
OgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBT
aGFyZWQvV2ViRXZlbnQuaDoKKyAgICAgICAgKFdlYk1vdXNlRXZlbnQpOgorICAgICAgICAqIFNo
YXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJLaXQyUGxh
dGZvcm1Nb3VzZUV2ZW50OjpXZWJLaXQyUGxhdGZvcm1Nb3VzZUV2ZW50KToKKyAgICAgICAgKiBT
aGFyZWQvV2ViTW91c2VFdmVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6
OldlYk1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjplbmNvZGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpkZWNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAoV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyk6
CisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaDoKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oOgorICAgICAgICAoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyk6Cisg
ICAgICAgICogU2hhcmVkL1dlYlVSTFJlcXVlc3QuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViVVJM
UmVzcG9uc2UuaDoKKyAgICAgICAgKiBTaGFyZWQvY2cvU2hhcmVhYmxlQml0bWFwQ0cuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6Om1ha2VDR0ltYWdlQ29weSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAoV2ViS2l0Ojp0b0Zv
bnRTbW9vdGhpbmdMZXZlbCk6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQmFja2luZ1N0
b3JlLmg6CisgICAgICAgIChCYWNraW5nU3RvcmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdl
Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoUGFnZUNsaWVudCk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250
ZXh0OjpXZWJDb250ZXh0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5oOgorICAg
ICAgICAoV2ViQ29udGV4dCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYklu
c3BlY3RvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6Oldl
Ykluc3BlY3RvclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHku
aDoKKyAgICAgICAgKFdlYkluc3BlY3RvclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpwZXJmb3JtRHJh
Z0NvbnRyb2xsZXJBY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFJl
Y2VpdmVFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJh
bWV0ZXJzKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlBhZ2VQcm94eSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgIChXZWJQcm9jZXNzUHJveHkpOgorICAg
ICAgICAqIFdlYktpdDJQcmVmaXguaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3BwOgorICAgICAgICAoV0tCdW5kbGVGcmFtZUNvcHlX
ZWJBcmNoaXZlRmlsdGVyaW5nU3ViZnJhbWVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRC
dW5kbGU6OnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpJbmpl
Y3RlZEJ1bmRsZTo6c3dpdGNoTmV0d29ya0xvYWRlclRvTmV3VGVzdGluZ1Nlc3Npb24pOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaDoKKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgIChJbmplY3RlZEJ1bmRsZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TlBOX0dldFZhbHVlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvTmV0c2NhcGVQbHVnaW4uaDoKKyAgICAgICAgKE5ldHNjYXBlUGx1Z2luKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luQ29udHJvbGxlci5oOgorICAgICAgICAoUGx1
Z2luQ29udHJvbGxlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcu
Y3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAg
IChQbHVnaW5WaWV3KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUvY2YvV2Vi
UmVzb3VyY2VDYWNoZU1hbmFnZXJDRk5ldC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJv
bWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVX
cml0aW5nRGlyZWN0aW9uKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNocm9tZUNs
aWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGll
bnQ6OnJlc3BvbmRUb0NoYW5nZWRTZWxlY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lmg6CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUG9wdXBNZW51Ojp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJLaXRNYWluLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0Fy
ZWEuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChEcmF3aW5nQXJlYSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkRyYXdpbmdBcmVhSW1wbDo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmg6CisgICAgICAgIChEcmF3aW5nQXJl
YUltcGwpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAoTGF5ZXJUcmVlSG9zdCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmg6CisgICAgICAgIChXZWJGcmFtZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aW5zdGFsbFBhZ2VP
dmVybGF5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dW5pbnN0YWxsUGFnZU92ZXJsYXkp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRXZWJBcmNoaXZlT2ZGcmFtZSk6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6Cisg
ICAgICAgIChXZWJQYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgIChXZWJQcm9jZXNzKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICog
Y29uZmlnLmg6CisKKzIwMTMtMDEtMDcgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxl
LmNvbT4KKwogICAgICAgICBSZW1vdmUgV2luZG93cyBmaWxlcyBmcm9tIFdlYktpdDIKICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjI2NAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0JpbmFyeVNlbWFwaG9yZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0JpbmFyeVNlbWFwaG9yZS5jcHAK
aW5kZXggZDRkOWU3ZDY5NDRmYjAxMWRiNzE5OGMxYjY0NWEyNzM4OTRiMTgwNi4uMzE0OGUyM2U2
ODdkN2NjYzM3M2JjM2JiMjExOGEwZmY0ZDVkOGU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9CaW5hcnlTZW1hcGhvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0NvcmVJUEMvQmluYXJ5U2VtYXBob3JlLmNwcApAQCAtMjgsOCArMjgsNiBA
QAogCiBuYW1lc3BhY2UgQ29yZUlQQyB7CiAKLSNpZiAhUExBVEZPUk0oV0lOKQotCiBCaW5hcnlT
ZW1hcGhvcmU6OkJpbmFyeVNlbWFwaG9yZSgpCiAgICAgOiBtX2lzU2V0KGZhbHNlKQogewpAQCAt
NjMsNiArNjEsNCBAQCBib29sIEJpbmFyeVNlbWFwaG9yZTo6d2FpdChkb3VibGUgYWJzb2x1dGVU
aW1lKQogICAgIHJldHVybiB0cnVlOwogfQogCi0jZW5kaWYgLy8gIVBMQVRGT1JNKFdJTikKLQog
fSAvLyBuYW1lc3BhY2UgQ29yZUlQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvQ29ubmVjdGlvbi5jcHAKaW5kZXggNGE3MGM1MzZiMjFkZTFiMjBjOTIyNmY5MjMwZDk0OWVi
OWE2NDMzMy4uM2IxYTc1ZGVmYjlmMGNkOTM1ZWE3ODJkNWUwNDM3ZTg1MDJjYTYzMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwCkBAIC01MCwx
MyArNTAsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX3dhaXRGb3JTeW5jUmVwbHlTZW1h
cGhvcmUud2FpdChhYnNvbHV0ZVRpbWUpOwogICAgIH0KIAotI2lmIFBMQVRGT1JNKFdJTikKLSAg
ICBib29sIHdhaXRXaGlsZURpc3BhdGNoaW5nU2VudFdpbjMyTWVzc2FnZXMoZG91YmxlIGFic29s
dXRlVGltZSwgY29uc3QgVmVjdG9yPEhXTkQ+JiB3aW5kb3dzVG9SZWNlaXZlTWVzc2FnZXMpCi0g
ICAgewotICAgICAgICByZXR1cm4gQ29ubmVjdGlvbjo6ZGlzcGF0Y2hTZW50TWVzc2FnZXNVbnRp
bCh3aW5kb3dzVG9SZWNlaXZlTWVzc2FnZXMsIG1fd2FpdEZvclN5bmNSZXBseVNlbWFwaG9yZSwg
YWJzb2x1dGVUaW1lKTsKLSAgICB9Ci0jZW5kaWYKLQogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0
aGlzIG1lc3NhZ2Ugd2lsbCBiZSBoYW5kbGVkIG9uIGEgY2xpZW50IHRocmVhZCB0aGF0IGlzIGN1
cnJlbnRseQogICAgIC8vIHdhaXRpbmcgZm9yIGEgcmVwbHkgdG8gYSBzeW5jaHJvbm91cyBtZXNz
YWdlLgogICAgIGJvb2wgcHJvY2Vzc0luY29taW5nTWVzc2FnZShDb25uZWN0aW9uKiwgSW5jb21p
bmdNZXNzYWdlJik7CkBAIC00NTIsMTEgKzQ0NSw3IEBAIFBhc3NPd25QdHI8TWVzc2FnZURlY29k
ZXI+IENvbm5lY3Rpb246OndhaXRGb3JTeW5jUmVwbHkodWludDY0X3Qgc3luY1JlcXVlc3RJRCwK
ICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgICAgIC8vIFdlIGRpZG4ndCBmaW5k
IGEgc3luYyByZXBseSB5ZXQsIGtlZXAgd2FpdGluZy4KLSNpZiBQTEFURk9STShXSU4pCi0gICAg
ICAgIHRpbWVkT3V0ID0gIW1fc3luY01lc3NhZ2VTdGF0ZS0+d2FpdFdoaWxlRGlzcGF0Y2hpbmdT
ZW50V2luMzJNZXNzYWdlcyhhYnNvbHV0ZVRpbWUsIG1fY2xpZW50LT53aW5kb3dzVG9SZWNlaXZl
U2VudE1lc3NhZ2VzV2hpbGVXYWl0aW5nRm9yU3luY1JlcGx5KCkpOwotI2Vsc2UKLQotICAgICAg
ICAvLyBUaGlzIGFsbG93cyB0aGUgV2ViUHJvY2VzcyB0byBzdGlsbCBzZXJ2ZSBjbGllbnRzIHdo
aWxlIHdhaXRpbmcgZm9yIHRoZSBtZXNzYWdlIHRvIHJldHVybi4gCisgICAgICAgIC8vIFRoaXMg
YWxsb3dzIHRoZSBXZWJQcm9jZXNzIHRvIHN0aWxsIHNlcnZlIGNsaWVudHMgd2hpbGUgd2FpdGlu
ZyBmb3IgdGhlIG1lc3NhZ2UgdG8gcmV0dXJuLgogICAgICAgICAvLyBOb3RhYmx5LCBpdCBjYW4g
Y29udGludWUgdG8gcHJvY2VzcyBhY2Nlc3NpYmlsaXR5IHJlcXVlc3RzLCB3aGljaCBhcmUgb24g
dGhlIG1haW4gdGhyZWFkLgogICAgICAgICBpZiAoc3luY1NlbmRGbGFncyAmIFNwaW5SdW5Mb29w
V2hpbGVXYWl0aW5nRm9yUmVwbHkpIHsKICNpZiBQTEFURk9STShNQUMpCkBAIC00NjcsNyArNDU2
LDYgQEAgUGFzc093blB0cjxNZXNzYWdlRGVjb2Rlcj4gQ29ubmVjdGlvbjo6d2FpdEZvclN5bmNS
ZXBseSh1aW50NjRfdCBzeW5jUmVxdWVzdElELAogI2VuZGlmCiAgICAgICAgIH0gZWxzZQogICAg
ICAgICAgICAgdGltZWRPdXQgPSAhbV9zeW5jTWVzc2FnZVN0YXRlLT53YWl0KGFic29sdXRlVGlt
ZSk7Ci0jZW5kaWYKICAgICAgICAgCiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvQ29ubmVjdGlvbi5oCmluZGV4IGE5YzQ4ZDRiNjljMzVhNTQ4YjUyMjU0ODJkN2Ux
NTI0ZWQ2ODNjNmUuLjBjOTdmZTEyNjJiODIwZDA3NzI1NWQ1NDFkYTcwNDVkM2RkNGJhNDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oCkBAIC00Myw4
ICs0Myw2IEBACiAjaWYgSEFWRShYUEMpCiAjaW5jbHVkZSA8eHBjL3hwYy5oPgogI2VuZGlmCi0j
ZWxpZiBQTEFURk9STShXSU4pCi0jaW5jbHVkZSA8c3RyaW5nPgogI2VsaWYgUExBVEZPUk0oUVQp
CiBRVF9CRUdJTl9OQU1FU1BBQ0UKIGNsYXNzIFFTb2NrZXROb3RpZmllcjsKQEAgLTkwLDEwICs4
OCw2IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvbm5lY3Rpb24q
KSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29u
bmVjdGlvbiosIFN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBTdHJpbmdSZWZl
cmVuY2UgbWVzc2FnZU5hbWUpID0gMDsKIAotI2lmIFBMQVRGT1JNKFdJTikKLSAgICAgICAgdmly
dHVhbCBWZWN0b3I8SFdORD4gd2luZG93c1RvUmVjZWl2ZVNlbnRNZXNzYWdlc1doaWxlV2FpdGlu
Z0ZvclN5bmNSZXBseSgpID0gMDsKLSNlbmRpZgotCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2
aXJ0dWFsIH5DbGllbnQoKSB7IH0KICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vTW9kdWxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL01vZHVsZS5jcHAK
aW5kZXggYTc4ZGIyOTRmNGRlZTU3MGEzOWMzNzY0NDA2MmIyZDNjZDQwYjQ4Yi4uNzU1ZmM4NzE0
MTk2NDNhZDk4NDU3MDczYzg3NWFhOTliYmZkZDdiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vTW9kdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Nb2R1
bGUuY3BwCkBAIC0zMCw5ICszMCw2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBNb2R1bGU6Ok1v
ZHVsZShjb25zdCBTdHJpbmcmIHBhdGgpCiAgICAgOiBtX3BhdGgocGF0aCkKLSNpZiBQTEFURk9S
TShXSU4pCi0gICAgLCBtX21vZHVsZSgwKQotI2VuZGlmCiAjaWYgUExBVEZPUk0oTUFDKSAmJiAh
ZGVmaW5lZChfX0xQNjRfXykKICAgICAsIG1fYnVuZGxlUmVzb3VyY2VNYXAoLTEpCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL01vZHVsZS5oIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vTW9kdWxlLmgKaW5kZXggNGNlOGRhMzU4NTMxMjg3NWRkMThhNzMxZmE2
MGQwMjYxZTlmMDBiZC4uYzQzMzQzYmIxNTA0MDQwYmM0MjJhZjdjNThjMDdjYTk3OWYxMDI0NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vTW9kdWxlLmgKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vTW9kdWxlLmgKQEAgLTY4LDEwICs2OCw2IEBAIHB1YmxpYzoKICAg
ICBDRkJ1bmRsZVJlZk51bSBidW5kbGVSZXNvdXJjZU1hcCgpOwogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShXSU4pCi0gICAgdm9pZCBpbnN0YWxsSUFUSG9vayhjb25zdCBjaGFyKiBpbXBvcnRETExO
YW1lLCBjb25zdCBjaGFyKiBpbXBvcnRGdW5jdGlvbk5hbWUsIGNvbnN0IHZvaWQqIGhvb2tGdW5j
dGlvbik7Ci0jZW5kaWYKLQogcHJpdmF0ZToKICAgICB2b2lkKiBwbGF0Zm9ybUZ1bmN0aW9uUG9p
bnRlcihjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUpIGNvbnN0OwogCkBAIC04MSw4ICs3Nyw2IEBA
IHByaXZhdGU6CiAjaWYgIWRlZmluZWQoX19MUDY0X18pCiAgICAgQ0ZCdW5kbGVSZWZOdW0gbV9i
dW5kbGVSZXNvdXJjZU1hcDsKICNlbmRpZgotI2VsaWYgUExBVEZPUk0oV0lOKQotICAgIEhNT0RV
TEUgbV9tb2R1bGU7CiAjZWxpZiBQTEFURk9STShRVCkKICAgICBRTGlicmFyeSBtX2xpYjsKICNl
bGlmIFBMQVRGT1JNKEdUSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1Bs
YXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1BsYXRm
b3JtUHJvY2Vzc0lkZW50aWZpZXIuaAppbmRleCAyZDE4OTc1MTA1OTNlZjk1MDdhNTEzODgxOTJj
YWI0MmM0ZmFiYzY2Li4xNjk5ZDM1YjZjMTQ3OWI5ZTc4MGUwYjdiNDc1ZTBkNTk0MDRiMzUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9QbGF0Zm9ybVByb2Nlc3NJZGVudGlm
aWVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vUGxhdGZvcm1Qcm9jZXNzSWRlbnRp
Zmllci5oCkBAIC0zOSw4ICszOSw2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiAjaWYgUExBVEZP
Uk0oTUFDKQogdHlwZWRlZiBwaWRfdCBQbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyOwotI2VsaWYg
UExBVEZPUk0oV0lOKQotdHlwZWRlZiBIQU5ETEUgUGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmllcjsK
ICNlbGlmIFBMQVRGT1JNKFFUKQogdHlwZWRlZiBRUHJvY2VzcyogUGxhdGZvcm1Qcm9jZXNzSWRl
bnRpZmllcjsKICNlbGlmIFBMQVRGT1JNKEdUSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9Db21tYW5kTGluZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvbW1hbmRMaW5l
LmgKaW5kZXggMmQ3OTUxMDY3ZjBmZThhZDhmMzY0ZDc1YTRiNzJkODAwNTBiODY0Yy4uZjU5NTVl
NzU0MzExYjJiYjQ4M2NiNDY4NmYzOGE0NDIxMjUxZjZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0NvbW1hbmRMaW5lLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nv
bW1hbmRMaW5lLmgKQEAgLTM5LDggKzM5LDYgQEAgY2xhc3MgQ29tbWFuZExpbmUgewogcHVibGlj
OgogI2lmIFBMQVRGT1JNKE1BQykKICAgICBib29sIHBhcnNlKGludCBhcmdjLCBjaGFyKiogYXJn
dik7Ci0jZWxpZiBQTEFURk9STShXSU4pCi0gICAgYm9vbCBwYXJzZShMUFRTVFIgY29tbWFuZExp
bmVTdHJpbmcpOwogI2VuZGlmCiAgICAgU3RyaW5nIG9wZXJhdG9yW10oY29uc3QgU3RyaW5nJiBr
ZXkpIGNvbnN0CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0ZvbnRT
bW9vdGhpbmdMZXZlbC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0ZvbnRTbW9vdGhpbmdMZXZl
bC5oCmluZGV4IDc1ZGVjZDZiZDljNTFhODkxM2EwZjhkNGI1Mzk3MTY0NTZhMmQ3NTYuLmFlYmRk
ZGFjMGYzMjJmZTZhNjYwNWQwOTE5YTgxYzk3NmNlOTljNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9Gb250U21vb3RoaW5nTGV2ZWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvRm9udFNtb290aGluZ0xldmVsLmgKQEAgLTMzLDkgKzMzLDYgQEAgZW51bSBGb250U21v
b3RoaW5nTGV2ZWwgewogICAgIEZvbnRTbW9vdGhpbmdMZXZlbExpZ2h0ID0gMSwKICAgICBGb250
U21vb3RoaW5nTGV2ZWxNZWRpdW0gPSAyLAogICAgIEZvbnRTbW9vdGhpbmdMZXZlbFN0cm9uZyA9
IDMsCi0jaWYgUExBVEZPUk0oV0lOKQotICAgIEZvbnRTbW9vdGhpbmdMZXZlbFdpbmRvd3MgPSA0
LAotI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9MYXllclRyZWVDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvTGF5ZXJUcmVlQ29udGV4dC5oCmluZGV4IDNmZjdjYjRhMzViMWRjMmEyNTJkY2FjYWM3NGFm
YTIwZmY4MTkzMjQuLjE4NDFjZTRmOTBiMTlmMzcyMmU3ODRhNjFlMDVhZTRiMDhlOGJlZGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9MYXllclRyZWVDb250ZXh0LmgKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0xheWVyVHJlZUNvbnRleHQuaApAQCAtNTQsOCArNTQsNiBA
QCBwdWJsaWM6CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgdWludDMyX3QgY29udGV4dElEOwot
I2VsaWYgUExBVEZPUk0oV0lOKQotICAgIEhXTkQgd2luZG93OwogI2VsaWYgUExBVEZPUk0oUVQp
CiAgICAgdWludDMyX3QgY29vcmRpbmF0ZWRMYXllcklEOwogI2VsaWYgUExBVEZPUk0oR1RLKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQu
aCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgKaW5kZXgg
ZWZiMDI1YTRjMTAyNGI3MzZkOTg1NzE5MTM5YjZhOTRlYmNhMTI2Ni4uOTVkNzZhYmQwOGI3OTYw
MjU2ZTZhOGVjZGNkZDZkMmQzODU1MTU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
TmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oCkBAIC01MCw4ICs1MCw2IEBAIGNsYXNzIE5hdGl2ZVdl
YktleWJvYXJkRXZlbnQgOiBwdWJsaWMgV2ViS2V5Ym9hcmRFdmVudCB7CiBwdWJsaWM6CiAjaWYg
VVNFKEFQUEtJVCkKICAgICBOYXRpdmVXZWJLZXlib2FyZEV2ZW50KE5TRXZlbnQgKiwgTlNWaWV3
ICopOwotI2VsaWYgUExBVEZPUk0oV0lOKQotICAgIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoSFdO
RCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0sIExQQVJBTSk7CiAjZWxpZiBQTEFURk9STShRVCkKICAg
ICBleHBsaWNpdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50KFFLZXlFdmVudCopOwogI2VsaWYgUExB
VEZPUk0oR1RLKQpAQCAtNjQsOCArNjIsNiBAQCBwdWJsaWM6CiAKICNpZiBVU0UoQVBQS0lUKQog
ICAgIE5TRXZlbnQgKm5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVFdmVudC5n
ZXQoKTsgfQotI2VsaWYgUExBVEZPUk0oV0lOKQotICAgIGNvbnN0IE1TRyogbmF0aXZlRXZlbnQo
KSBjb25zdCB7IHJldHVybiAmbV9uYXRpdmVFdmVudDsgfQogI2VsaWYgUExBVEZPUk0oUVQpCiAg
ICAgY29uc3QgUUtleUV2ZW50KiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuICZtX25hdGl2
ZUV2ZW50OyB9CiAjZWxpZiBQTEFURk9STShHVEspCkBAIC04MCw4ICs3Niw2IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAjaWYgVVNFKEFQUEtJVCkKICAgICBSZXRhaW5QdHI8TlNFdmVudD4gbV9uYXRp
dmVFdmVudDsKLSNlbGlmIFBMQVRGT1JNKFdJTikKLSAgICBNU0cgbV9uYXRpdmVFdmVudDsKICNl
bGlmIFBMQVRGT1JNKFFUKQogICAgIFFLZXlFdmVudCBtX25hdGl2ZUV2ZW50OwogI2VsaWYgUExB
VEZPUk0oR1RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYk1v
dXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50LmgK
aW5kZXggYzIzZDJmOGYyOTRkOWYwZjVkMTVhMjBkZDU2NTYzOTlkZGU1MWNmZC4uZGRlNWIzNjJl
M2QyNTFlZmNmNjE1NmRkODVlNGQ0MjA0OTY5OWU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL05hdGl2ZVdlYk1vdXNlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvTmF0aXZlV2ViTW91c2VFdmVudC5oCkBAIC00Nyw4ICs0Nyw2IEBAIGNsYXNzIE5hdGl2ZVdl
Yk1vdXNlRXZlbnQgOiBwdWJsaWMgV2ViTW91c2VFdmVudCB7CiBwdWJsaWM6CiAjaWYgVVNFKEFQ
UEtJVCkKICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50KE5TRXZlbnQgKiwgTlNWaWV3ICopOwotI2Vs
aWYgUExBVEZPUk0oV0lOKQotICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQoSFdORCwgVUlOVCBtZXNz
YWdlLCBXUEFSQU0sIExQQVJBTSwgYm9vbCk7CiAjZWxpZiBQTEFURk9STShRVCkKICAgICBleHBs
aWNpdCBOYXRpdmVXZWJNb3VzZUV2ZW50KFFNb3VzZUV2ZW50KiwgY29uc3QgUVRyYW5zZm9ybSYg
ZnJvbUl0ZW1UcmFuc2Zvcm0sIGludCBldmVudENsaWNrQ291bnQpOwogI2VsaWYgUExBVEZPUk0o
R1RLKQpAQCAtNjIsOCArNjAsNiBAQCBwdWJsaWM6CiAKICNpZiBVU0UoQVBQS0lUKQogICAgIE5T
RXZlbnQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVFdmVudC5nZXQoKTsg
fQotI2VsaWYgUExBVEZPUk0oV0lOKQotICAgIGNvbnN0IE1TRyogbmF0aXZlRXZlbnQoKSBjb25z
dCB7IHJldHVybiAmbV9uYXRpdmVFdmVudDsgfQogI2VsaWYgUExBVEZPUk0oUVQpCiAgICAgY29u
c3QgUU1vdXNlRXZlbnQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVFdmVu
dDsgfQogI2VsaWYgUExBVEZPUk0oR1RLKQpAQCAtNzUsOCArNzEsNiBAQCBwdWJsaWM6CiBwcml2
YXRlOgogI2lmIFVTRShBUFBLSVQpCiAgICAgUmV0YWluUHRyPE5TRXZlbnQ+IG1fbmF0aXZlRXZl
bnQ7Ci0jZWxpZiBQTEFURk9STShXSU4pCi0gICAgTVNHIG1fbmF0aXZlRXZlbnQ7CiAjZWxpZiBQ
TEFURk9STShRVCkKICAgICBRTW91c2VFdmVudCogbV9uYXRpdmVFdmVudDsKICNlbGlmIFBMQVRG
T1JNKEdUSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJXaGVl
bEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oCmlu
ZGV4IDQzZDcwOGUzMGUxNGRjMThmYTFlYzhjNDA2NzljMzk5NjUwOWZiY2UuLmZhZTllOTZiZTJk
NmQ2YjY0YTRhNThiY2RjMGM4Y2M2MDYxMTU1MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L05hdGl2ZVdlYldoZWVsRXZlbnQuaApAQCAtNDcsOCArNDcsNiBAQCBjbGFzcyBOYXRpdmVXZWJX
aGVlbEV2ZW50IDogcHVibGljIFdlYldoZWVsRXZlbnQgewogcHVibGljOgogI2lmIFVTRShBUFBL
SVQpCiAgICAgTmF0aXZlV2ViV2hlZWxFdmVudChOU0V2ZW50ICosIE5TVmlldyAqKTsKLSNlbGlm
IFBMQVRGT1JNKFdJTikKLSAgICBOYXRpdmVXZWJXaGVlbEV2ZW50KEhXTkQsIFVJTlQgbWVzc2Fn
ZSwgV1BBUkFNLCBMUEFSQU0pOwogI2VsaWYgUExBVEZPUk0oUVQpCiAgICAgZXhwbGljaXQgTmF0
aXZlV2ViV2hlZWxFdmVudChRV2hlZWxFdmVudCosIGNvbnN0IFFUcmFuc2Zvcm0mIGZyb21JdGVt
VHJhbnNmb3JtKTsKICNlbGlmIFBMQVRGT1JNKEdUSykKQEAgLTYwLDggKzU4LDYgQEAgcHVibGlj
OgogCiAjaWYgVVNFKEFQUEtJVCkKICAgICBOU0V2ZW50KiBuYXRpdmVFdmVudCgpIGNvbnN0IHsg
cmV0dXJuIG1fbmF0aXZlRXZlbnQuZ2V0KCk7IH0KLSNlbGlmIFBMQVRGT1JNKFdJTikKLSAgICBj
b25zdCBNU0cqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gJm1fbmF0aXZlRXZlbnQ7IH0K
ICNlbGlmIFBMQVRGT1JNKFFUKQogICAgIGNvbnN0IFFXaGVlbEV2ZW50KiBuYXRpdmVFdmVudCgp
IGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlRXZlbnQ7IH0KICNlbGlmIFBMQVRGT1JNKEdUSykKQEAg
LTczLDggKzY5LDYgQEAgcHVibGljOgogcHJpdmF0ZToKICNpZiBVU0UoQVBQS0lUKQogICAgIFJl
dGFpblB0cjxOU0V2ZW50PiBtX25hdGl2ZUV2ZW50OwotI2VsaWYgUExBVEZPUk0oV0lOKQotICAg
IE1TRyBtX25hdGl2ZUV2ZW50OwogI2VsaWYgUExBVEZPUk0oUVQpCiAgICAgUVdoZWVsRXZlbnQq
IG1fbmF0aXZlRXZlbnQ7CiAjZWxpZiBQTEFURk9STShHVEspCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEuY3BwCmluZGV4IDljYjIyM2M1NDdiNmI2MzJj
ZDEwZWQ5ZmQ1YmIxNTE0MWU0ODk5YzYuLjgwZmQyZjk5ZjQ0YmZiMWNhMzkwYWM1OWI4OTEyOGZi
MzE2MGJjN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbGF0Zm9ybVBvcHVw
TWVudURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbGF0Zm9ybVBvcHVwTWVu
dURhdGEuY3BwCkBAIC0zMSwxNCArMzEsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFBsYXRm
b3JtUG9wdXBNZW51RGF0YTo6UGxhdGZvcm1Qb3B1cE1lbnVEYXRhKCkKLSNpZiBQTEFURk9STShX
SU4pCi0gICAgOiBtX2NsaWVudFBhZGRpbmdMZWZ0KDApCi0gICAgLCBtX2NsaWVudFBhZGRpbmdS
aWdodCgwKQotICAgICwgbV9jbGllbnRJbnNldExlZnQoMCkKLSAgICAsIG1fY2xpZW50SW5zZXRS
aWdodCgwKQotICAgICwgbV9wb3B1cFdpZHRoKDApCi0gICAgLCBtX2l0ZW1IZWlnaHQoMCkKLSNl
bGlmIFBMQVRGT1JNKFFUKQorI2lmIFBMQVRGT1JNKFFUKQogICAgIDogbXVsdGlwbGVTZWxlY3Rp
b25zKGZhbHNlKQogI2VuZGlmCiB7CkBAIC00NiwyMiArMzksNyBAQCBQbGF0Zm9ybVBvcHVwTWVu
dURhdGE6OlBsYXRmb3JtUG9wdXBNZW51RGF0YSgpCiAKIHZvaWQgUGxhdGZvcm1Qb3B1cE1lbnVE
YXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewot
I2lmIFBMQVRGT1JNKFdJTikKLSAgICBlbmNvZGVyIDw8IG1fY2xpZW50UGFkZGluZ0xlZnQ7Ci0g
ICAgZW5jb2RlciA8PCBtX2NsaWVudFBhZGRpbmdSaWdodDsKLSAgICBlbmNvZGVyIDw8IG1fY2xp
ZW50SW5zZXRMZWZ0OwotICAgIGVuY29kZXIgPDwgbV9jbGllbnRJbnNldFJpZ2h0OwotICAgIGVu
Y29kZXIgPDwgbV9wb3B1cFdpZHRoOwotICAgIGVuY29kZXIgPDwgbV9pdGVtSGVpZ2h0OwotCi0g
ICAgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgbm90U2VsZWN0ZWRCYWNraW5nU3RvcmVIYW5kbGU7
Ci0gICAgbV9ub3RTZWxlY3RlZEJhY2tpbmdTdG9yZS0+Y3JlYXRlSGFuZGxlKG5vdFNlbGVjdGVk
QmFja2luZ1N0b3JlSGFuZGxlKTsKLSAgICBlbmNvZGVyIDw8IG5vdFNlbGVjdGVkQmFja2luZ1N0
b3JlSGFuZGxlOwotCi0gICAgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgc2VsZWN0ZWRCYWNraW5n
U3RvcmVIYW5kbGU7Ci0gICAgbV9zZWxlY3RlZEJhY2tpbmdTdG9yZS0+Y3JlYXRlSGFuZGxlKHNl
bGVjdGVkQmFja2luZ1N0b3JlSGFuZGxlKTsKLSAgICBlbmNvZGVyIDw8IHNlbGVjdGVkQmFja2lu
Z1N0b3JlSGFuZGxlOwotI2VsaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKE1BQykKICAg
ICBlbmNvZGVyIDw8IGZvbnRJbmZvOwogICAgIGVuY29kZXIgPDwgc2hvdWxkUG9wT3ZlcjsKICNl
bGlmIFBMQVRGT1JNKFFUKQpAQCAtNzMsMzAgKzUxLDcgQEAgdm9pZCBQbGF0Zm9ybVBvcHVwTWVu
dURhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAK
IGJvb2wgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBkZWNvZGVyLCBQbGF0Zm9ybVBvcHVwTWVudURhdGEmIGRhdGEpCiB7Ci0jaWYgUExBVEZP
Uk0oV0lOKQotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGRhdGEubV9jbGllbnRQYWRkaW5nTGVm
dCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShkYXRh
Lm1fY2xpZW50UGFkZGluZ1JpZ2h0KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlKGRhdGEubV9jbGllbnRJbnNldExlZnQpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoZGF0YS5tX2NsaWVudEluc2V0UmlnaHQp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoZGF0YS5t
X3BvcHVwV2lkdGgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5k
ZWNvZGUoZGF0YS5tX2l0ZW1IZWlnaHQpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBT
aGFyZWFibGVCaXRtYXA6OkhhbmRsZSBub3RTZWxlY3RlZEJhY2tpbmdTdG9yZUhhbmRsZTsKLSAg
ICBpZiAoIWRlY29kZXItPmRlY29kZShub3RTZWxlY3RlZEJhY2tpbmdTdG9yZUhhbmRsZSkpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBkYXRhLm1fbm90U2VsZWN0ZWRCYWNraW5nU3RvcmUg
PSBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZShub3RTZWxlY3RlZEJhY2tpbmdTdG9yZUhhbmRsZSk7
Ci0KLSAgICBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBzZWxlY3RlZEJhY2tpbmdTdG9yZUhhbmRs
ZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShzZWxlY3RlZEJhY2tpbmdTdG9yZUhhbmRsZSkp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBkYXRhLm1fc2VsZWN0ZWRCYWNraW5nU3RvcmUg
PSBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZShzZWxlY3RlZEJhY2tpbmdTdG9yZUhhbmRsZSk7Ci0j
ZWxpZiBQTEFURk9STShNQUMpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlKGRhdGEuZm9udEluZm8pKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFk
ZWNvZGVyLT5kZWNvZGUoZGF0YS5zaG91bGRQb3BPdmVyKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEuaAppbmRleCA3ZDlkOTRkMmExODg2YzA0ZGE3MmIz
Zjg1ZGNkMDZjNDliZTQzY2VlLi5hNmM4ODVlY2JhZGIzYWJhZmYzM2MwOTQ2Y2JmMWUzYjU2ZDg3
YTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Qb3B1cE1lbnVE
YXRhLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5o
CkBAIC00MywxNiArNDMsNyBAQCBzdHJ1Y3QgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhIHsKICAgICB2
b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgUGxhdGZvcm1Qb3B1cE1lbnVE
YXRhJik7CiAKLSNpZiBQTEFURk9STShXSU4pCi0gICAgaW50IG1fY2xpZW50UGFkZGluZ0xlZnQ7
Ci0gICAgaW50IG1fY2xpZW50UGFkZGluZ1JpZ2h0OwotICAgIGludCBtX2NsaWVudEluc2V0TGVm
dDsKLSAgICBpbnQgbV9jbGllbnRJbnNldFJpZ2h0OwotICAgIGludCBtX3BvcHVwV2lkdGg7Ci0g
ICAgaW50IG1faXRlbUhlaWdodDsKLSAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBtX25vdFNl
bGVjdGVkQmFja2luZ1N0b3JlOwotICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IG1fc2VsZWN0
ZWRCYWNraW5nU3RvcmU7Ci0jZWxpZiBQTEFURk9STShNQUMpCisjaWYgUExBVEZPUk0oTUFDKQog
ICAgIEZvbnRJbmZvIGZvbnRJbmZvOwogICAgIGJvb2wgc2hvdWxkUG9wT3ZlcjsKICNlbGlmIFBM
QVRGT1JNKFFUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvUGx1
Z2luTW9kdWxlSW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvUGx1Z2luTW9k
dWxlSW5mby5oCmluZGV4IDllNTBmNjM5NjZiN2QzNmFiNGY2Mjk0NGE0ZjRhOGY2ZThjMDYxNmYu
LmI0OGZmMzRiODIyYmQ1ZWEwNDMzMWViZjRhOWY5ZWM2ZjgwNWMzMjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL1BsdWdpbk1vZHVsZUluZm8uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9QbHVnaW5Nb2R1bGVJbmZvLmgKQEAgLTU0LDggKzU0
LDYgQEAgc3RydWN0IFBsdWdpbk1vZHVsZUluZm8gewogICAgIGNwdV90eXBlX3QgcGx1Z2luQXJj
aGl0ZWN0dXJlOwogICAgIFN0cmluZyBidW5kbGVJZGVudGlmaWVyOwogICAgIFN0cmluZyB2ZXJz
aW9uU3RyaW5nOwotI2VsaWYgUExBVEZPUk0oV0lOKQotICAgIHVpbnQ2NF90IGZpbGVWZXJzaW9u
OwogI2VuZGlmCiAKICAgICBQbHVnaW5Nb2R1bGVJbmZvIGlzb2xhdGVkQ29weSgpIGNvbnN0CkBA
IC02Nyw4ICs2NSw2IEBAIHN0cnVjdCBQbHVnaW5Nb2R1bGVJbmZvIHsKICAgICAgICAgY2xvbmUu
cGx1Z2luQXJjaGl0ZWN0dXJlID0gcGx1Z2luQXJjaGl0ZWN0dXJlOwogICAgICAgICBjbG9uZS5i
dW5kbGVJZGVudGlmaWVyID0gYnVuZGxlSWRlbnRpZmllci5pc29sYXRlZENvcHkoKTsKICAgICAg
ICAgY2xvbmUudmVyc2lvblN0cmluZyA9IHZlcnNpb25TdHJpbmcuaXNvbGF0ZWRDb3B5KCk7Ci0j
ZWxpZiBQTEFURk9STShXSU4pCi0gICAgICAgIGNsb25lLmZpbGVWZXJzaW9uID0gZmlsZVZlcnNp
b247CiAjZW5kaWYKICAgICAgICAgcmV0dXJuIGNsb25lOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9TaGFyZWFibGVCaXRtYXAuaAppbmRleCA2YTU3NWYyODE3YTA1OGYwNDRmYTkyZjU0NmU3
MjMzMzdlNjM3M2NlLi5hMDBmMWE3ODFkNzdjM2E4OWFmODczY2FhZjUxZTYwMjhjNzAwMDIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmgKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oCkBAIC0xMTgsOSArMTE4LDYg
QEAgcHVibGljOgogICAgIC8vIFRoaXMgaXMgb25seSBzYWZlIHRvIHVzZSB3aGVuIHdlIGtub3cg
dGhhdCB0aGUgY29udGVudHMgb2YgdGhlIHNoYXJlYWJsZSBiaXRtYXAgd29uJ3QgY2hhbmdlLgog
ICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+IGNyZWF0ZUltYWdlKCk7CiAKLSNpZiBQTEFU
Rk9STShXSU4pCi0gICAgSERDIHdpbmRvd3NDb250ZXh0KCkgY29uc3Q7Ci0jZW5kaWYKICNpZiBV
U0UoQ0cpCiAgICAgLy8gVGhpcyBjcmVhdGVzIGEgY29waWVkIENHSW1hZ2VSZWYgKG1vc3QgbGlr
ZWx5IGEgY29weS1vbi13cml0ZSkgb2YgdGhlIHNoYXJlYWJsZSBiaXRtYXAuCiAgICAgUmV0YWlu
UHRyPENHSW1hZ2VSZWY+IG1ha2VDR0ltYWdlQ29weSgpOwpAQCAtMTcwLDExICsxNjcsNiBAQCBw
cml2YXRlOgogCiAgICAgLy8gSWYgdGhlIHNoYXJlYWJsZSBiaXRtYXAgaXMgYmFja2VkIGJ5IGZh
c3RNYWxsb2NlZCBtZW1vcnksIHRoaXMgcG9pbnRzIHRvIHRoZSBkYXRhLgogICAgIHZvaWQqIG1f
ZGF0YTsKLQotI2lmIFBMQVRGT1JNKFdJTikKLSAgICBtdXRhYmxlIE93blB0cjxIREM+IG1fd2lu
ZG93c0NvbnRleHQ7Ci0gICAgbXV0YWJsZSBPd25QdHI8SEJJVE1BUD4gbV93aW5kb3dzQml0bWFw
OwotI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCA3NWI0YWNjNTlkNTkxYWI3ZTcx
OGYxODI5YzcyMzNlMGI1NDhkOTU1Li45M2U5NzNlMDkyZWU0OWMwOTQ1ODg1Nzg1NTY4NmY3ZWYz
YmY5MTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oCkBAIC0xNDgsNyArMTQ4LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpDdXJzb3I+IHsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0PiB7Ci0jaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9S
TShXSU4pCisjaWYgUExBVEZPUk0oTUFDKQogICAgIHN0YXRpYyBjb25zdCBib29sIGtTaG91bGRT
ZXJpYWxpemVXZWJDb3JlRGF0YSA9IGZhbHNlOwogI2Vsc2UKICAgICBzdGF0aWMgY29uc3QgYm9v
bCBrU2hvdWxkU2VyaWFsaXplV2ViQ29yZURhdGEgPSB0cnVlOwpAQCAtMTYxLDcgKzE2MSw3IEBA
IHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
PiB7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2U+IHsKLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKFdJTikKKyNpZiBQ
TEFURk9STShNQUMpCiAgICAgc3RhdGljIGNvbnN0IGJvb2wga1Nob3VsZFNlcmlhbGl6ZVdlYkNv
cmVEYXRhID0gZmFsc2U7CiAjZWxzZQogICAgIHN0YXRpYyBjb25zdCBib29sIGtTaG91bGRTZXJp
YWxpemVXZWJDb3JlRGF0YSA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5oCmluZGV4IDk2
ODFkYzE2MGRlZjU5YTFiNmE3ZTRjMjliOTlkMDhkNWEwOGNiMTkuLjgzZTYyMTYyZGM4M2I3Njhl
YjE2YTk2ZTViMzgzMDg2ZjhjMTM5NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5oCkBAIC0x
MjUsOSArMTI1LDYgQEAgcHVibGljOgogICAgIFdlYk1vdXNlRXZlbnQoKTsKIAogICAgIFdlYk1v
dXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24s
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBm
bG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgZG91
YmxlIHRpbWVzdGFtcCk7Ci0jaWYgUExBVEZPUk0oV0lOKQotICAgIFdlYk1vdXNlRXZlbnQoVHlw
ZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVks
IGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFt
cCwgYm9vbCBkaWRBY3RpdmF0ZVdlYlZpZXcpOwotI2VuZGlmCiAKICAgICBCdXR0b24gYnV0dG9u
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8QnV0dG9uPihtX2J1dHRvbik7IH0KICAgICBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0
aW9uOyB9CkBAIC0xMzYsOSArMTMzLDYgQEAgcHVibGljOgogICAgIGZsb2F0IGRlbHRhWSgpIGNv
bnN0IHsgcmV0dXJuIG1fZGVsdGFZOyB9CiAgICAgZmxvYXQgZGVsdGFaKCkgY29uc3QgeyByZXR1
cm4gbV9kZWx0YVo7IH0KICAgICBpbnQzMl90IGNsaWNrQ291bnQoKSBjb25zdCB7IHJldHVybiBt
X2NsaWNrQ291bnQ7IH0KLSNpZiBQTEFURk9STShXSU4pCi0gICAgYm9vbCBkaWRBY3RpdmF0ZVdl
YlZpZXcoKSBjb25zdCB7IHJldHVybiBtX2RpZEFjdGl2YXRlV2ViVmlldzsgfQotI2VuZGlmCiAK
ICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgV2ViTW91c2VFdmVu
dCYpOwpAQCAtMTUzLDkgKzE0Nyw2IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9kZWx0YVk7CiAg
ICAgZmxvYXQgbV9kZWx0YVo7CiAgICAgaW50MzJfdCBtX2NsaWNrQ291bnQ7Ci0jaWYgUExBVEZP
Uk0oV0lOKQotICAgIGJvb2wgbV9kaWRBY3RpdmF0ZVdlYlZpZXc7Ci0jZW5kaWYKIH07CiAKIC8v
IEZJWE1FOiBNb3ZlIHRoaXMgY2xhc3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAKaW5kZXggMGZhZDY4M2U2MDU2
ZDM3MTA0MTJkOWNiMmVkZGE5ZDgxNGE4MjAxOC4uODFhZjdlYjI3MDJlNjQwNjIxZTI4Y2JhNzUw
OGE2ODM2Y2U0MzZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50
Q29udmVyc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50Q29udmVy
c2lvbi5jcHAKQEAgLTkyLDEwICs5Miw2IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fbW9kaWZp
ZXJGbGFncyB8PSBXZWJFdmVudDo6QWx0S2V5OwogICAgICAgICBpZiAod2ViRXZlbnQubWV0YUtl
eSgpKQogICAgICAgICAgICAgbV9tb2RpZmllckZsYWdzIHw9IFdlYkV2ZW50OjpNZXRhS2V5Owot
Ci0jaWYgUExBVEZPUk0oV0lOKQotICAgICAgICBtX2RpZEFjdGl2YXRlV2ViVmlldyA9IHdlYkV2
ZW50LmRpZEFjdGl2YXRlV2ViVmlldygpOwotI2VuZGlmCiAgICAgfQogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwCmluZGV4IGZiMDJhYzM5ZTNhMWE2NTk2NDBmOGUw
OWNlNmU5MmU3Yjc1ODY3NzQuLjA0OTM3NGI1ZGYyZjgyMjZjZjY1ZTQzMTAyZDgyMGViZDhjYjI4
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKQEAgLTQwLDkgKzQw
LDYgQEAgV2ViTW91c2VFdmVudDo6V2ViTW91c2VFdmVudCgpCiAgICAgLCBtX2RlbHRhWSgwKQog
ICAgICwgbV9kZWx0YVooMCkKICAgICAsIG1fY2xpY2tDb3VudCgwKQotI2lmIFBMQVRGT1JNKFdJ
TikKLSAgICAsIG1fZGlkQWN0aXZhdGVXZWJWaWV3KGZhbHNlKQotI2VuZGlmCiB7CiB9CiAKQEAg
LTU1LDI5ICs1MiwxMCBAQCBXZWJNb3VzZUV2ZW50OjpXZWJNb3VzZUV2ZW50KFR5cGUgdHlwZSwg
QnV0dG9uIGJ1dHRvbiwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLAogICAgICwgbV9kZWx0YVko
ZGVsdGFZKQogICAgICwgbV9kZWx0YVooZGVsdGFaKQogICAgICwgbV9jbGlja0NvdW50KGNsaWNr
Q291bnQpCi0jaWYgUExBVEZPUk0oV0lOKQotICAgICwgbV9kaWRBY3RpdmF0ZVdlYlZpZXcoZmFs
c2UpCi0jZW5kaWYKIHsKICAgICBBU1NFUlQoaXNNb3VzZUV2ZW50VHlwZSh0eXBlKSk7CiB9CiAK
LSNpZiBQTEFURk9STShXSU4pCi1XZWJNb3VzZUV2ZW50OjpXZWJNb3VzZUV2ZW50KFR5cGUgdHlw
ZSwgQnV0dG9uIGJ1dHRvbiwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2lu
dCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0
YVosIGludCBjbGlja0NvdW50LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1w
LCBib29sIGRpZEFjdGl2YXRlV2ViVmlldykKLSAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVy
cywgdGltZXN0YW1wKQotICAgICwgbV9idXR0b24oYnV0dG9uKQotICAgICwgbV9wb3NpdGlvbihw
b3NpdGlvbikKLSAgICAsIG1fZ2xvYmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb24pCi0gICAgLCBt
X2RlbHRhWChkZWx0YVgpCi0gICAgLCBtX2RlbHRhWShkZWx0YVkpCi0gICAgLCBtX2RlbHRhWihk
ZWx0YVopCi0gICAgLCBtX2NsaWNrQ291bnQoY2xpY2tDb3VudCkKLSAgICAsIG1fZGlkQWN0aXZh
dGVXZWJWaWV3KGRpZEFjdGl2YXRlV2ViVmlldykKLXsKLSAgICBBU1NFUlQoaXNNb3VzZUV2ZW50
VHlwZSh0eXBlKSk7Ci19Ci0jZW5kaWYKLQogdm9pZCBXZWJNb3VzZUV2ZW50OjplbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIFdlYkV2ZW50Ojpl
bmNvZGUoZW5jb2Rlcik7CkBAIC04OSwxMCArNjcsNiBAQCB2b2lkIFdlYk1vdXNlRXZlbnQ6OmVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rl
ciA8PCBtX2RlbHRhWTsKICAgICBlbmNvZGVyIDw8IG1fZGVsdGFaOwogICAgIGVuY29kZXIgPDwg
bV9jbGlja0NvdW50OwotCi0jaWYgUExBVEZPUk0oV0lOKQotICAgIGVuY29kZXIgPDwgbV9kaWRB
Y3RpdmF0ZVdlYlZpZXc7Ci0jZW5kaWYKIH0KIAogYm9vbCBXZWJNb3VzZUV2ZW50OjpkZWNvZGUo
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJNb3VzZUV2ZW50JiByZXN1bHQp
CkBAIC0xMTQsMTAgKzg4LDYgQEAgYm9vbCBXZWJNb3VzZUV2ZW50OjpkZWNvZGUoQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJNb3VzZUV2ZW50JiByZXMKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tX2NsaWNrQ291bnQp
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0jaWYgUExBVEZPUk0oV0lOKQotICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlKHJlc3VsdC5tX2RpZEFjdGl2YXRlV2ViVmlldykpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSNlbmRpZgogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggMjJlMjg4
NDljNGI4OGJhZWFmYTg5MGI3MmU4ZmRhOTRmOGY0YjVjYy4uZTkyNWRiMzQxYWJjMDRhZGIyNTU4
MDE5MzA2MTA4NTIyZmVlMzg3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNjQsMTAgKzY0LDYgQEAgdm9pZCBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIuZW5jb2RlRW51bShsYXllckhvc3RpbmdNb2RlKTsK
ICAgICBlbmNvZGVyIDw8IGNvbG9yU3BhY2U7CiAjZW5kaWYKLQotI2lmIFBMQVRGT1JNKFdJTikK
LSAgICBlbmNvZGVyIDw8IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KG5hdGl2ZVdpbmRvdyk7
Ci0jZW5kaWYKIH0KIAogYm9vbCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
JiBwYXJhbWV0ZXJzKQpAQCAtMTMyLDEzICsxMjgsNiBAQCBib29sIFdlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnM6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYlBh
ZwogICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKFdJTikKLSAg
ICB1aW50NjRfdCBuYXRpdmVXaW5kb3c7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUobmF0aXZl
V2luZG93KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHBhcmFtZXRlcnMubmF0aXZlV2lu
ZG93ID0gcmVpbnRlcnByZXRfY2FzdDxIV05EPihuYXRpdmVXaW5kb3cpOwotI2VuZGlmCi0KICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggN2E1ODBmM2UzOGU2YTIxYTUxMzRkZDNkYzM2ODgy
ODNlZjUyNTZjZC4uNTgwM2NkMGMxZTcwYTBiNmIzYjNhYTQyNWJhNDlkYWJiOTJiYmJmMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5o
CkBAIC05MiwxMCArOTIsNiBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAg
ICAgTGF5ZXJIb3N0aW5nTW9kZSBsYXllckhvc3RpbmdNb2RlOwogICAgIENvbG9yU3BhY2VEYXRh
IGNvbG9yU3BhY2U7CiAjZW5kaWYKLQotI2lmIFBMQVRGT1JNKFdJTikKLSAgICBIV05EIG5hdGl2
ZVdpbmRvdzsKLSNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaAppbmRleCBhZjcyYmVkMzQzMTY4YjYy
NDhhYjA4Mzk3YjQyYjgyODE5YWQ2YWQ1Li5hYWIzY2NiOTY5OThhNzhjZWRhZDQwNjg4NDA4N2Jl
OGYyMjFkN2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXNTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3Jl
LmgKQEAgLTM2LDEyICszNiw2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiAvLyBtYWNybyhLZXlV
cHBlciwgS2V5TG93ZXIsIFR5cGVOYW1lVXBwZXIsIFR5cGVOYW1lLCBEZWZhdWx0VmFsdWUpIAog
Ci0jaWYgUExBVEZPUk0oV0lOKQotI2RlZmluZSBERUZBVUxUX1dFQktJVF9BVkZPVU5EQVRJT05f
RU5BQkxFRCBmYWxzZQotI2Vsc2UKLSNkZWZpbmUgREVGQVVMVF9XRUJLSVRfQVZGT1VOREFUSU9O
X0VOQUJMRUQgdHJ1ZQotI2VuZGlmCi0KICNpZiBQTEFURk9STShHVEspCiAjZGVmaW5lIERFRkFV
TFRfV0VCS0lUX1RBQlNUT0xJTktTX0VOQUJMRUQgdHJ1ZQogI2Vsc2UKQEAgLTEwOCw3ICsxMDIs
NyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICBtYWNybyhXZWJTZWN1cml0eUVuYWJsZWQsIHdl
YlNlY3VyaXR5RW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAogICAgIG1hY3JvKEFsbG93VW5p
dmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzLCBhbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJM
cywgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBtYWNybyhBbGxvd0ZpbGVBY2Nlc3NGcm9tRmls
ZVVSTHMsIGFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcywgQm9vbCwgYm9vbCwgZmFsc2UpIFwK
LSAgICBtYWNybyhBVkZvdW5kYXRpb25FbmFibGVkLCBpc0FWRm91bmRhdGlvbkVuYWJsZWQsIEJv
b2wsIGJvb2wsIERFRkFVTFRfV0VCS0lUX0FWRk9VTkRBVElPTl9FTkFCTEVEKSBcCisgICAgbWFj
cm8oQVZGb3VuZGF0aW9uRW5hYmxlZCwgaXNBVkZvdW5kYXRpb25FbmFibGVkLCBCb29sLCBib29s
LCB0cnVlKSBcCiAgICAgbWFjcm8oTWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUsIG1l
ZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlLCBCb29sLCBib29sLCBmYWxzZSkgXAogICAg
IG1hY3JvKE1lZGlhUGxheWJhY2tBbGxvd3NJbmxpbmUsIG1lZGlhUGxheWJhY2tBbGxvd3NJbmxp
bmUsIEJvb2wsIGJvb2wsIHRydWUpIFwKICAgICBtYWNybyhJbnNwZWN0b3JTdGFydHNBdHRhY2hl
ZCwgaW5zcGVjdG9yU3RhcnRzQXR0YWNoZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKQEAgLTE1Miwx
NCArMTQ2LDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAjZGVmaW5lIEZPUl9FQUNIX1dFQktJVF9G
TE9BVF9QUkVGRVJFTkNFKG1hY3JvKSBcCiAgICAgXAogCi0jaWYgUExBVEZPUk0oV0lOKQotI2Rl
ZmluZSBERUZBVUxUX1dFQktJVF9GT05UX1NNT09USElOR19MRVZFTCBGb250U21vb3RoaW5nTGV2
ZWxXaW5kb3dzCi0jZWxzZQotI2RlZmluZSBERUZBVUxUX1dFQktJVF9GT05UX1NNT09USElOR19M
RVZFTCBGb250U21vb3RoaW5nTGV2ZWxNZWRpdW0KLSNlbmRpZgotCiAjZGVmaW5lIEZPUl9FQUNI
X1dFQktJVF9VSU5UMzJfUFJFRkVSRU5DRShtYWNybykgXAotICAgIG1hY3JvKEZvbnRTbW9vdGhp
bmdMZXZlbCwgZm9udFNtb290aGluZ0xldmVsLCBVSW50MzIsIHVpbnQzMl90LCBERUZBVUxUX1dF
QktJVF9GT05UX1NNT09USElOR19MRVZFTCkgXAorICAgIG1hY3JvKEZvbnRTbW9vdGhpbmdMZXZl
bCwgZm9udFNtb290aGluZ0xldmVsLCBVSW50MzIsIHVpbnQzMl90LCBGb250U21vb3RoaW5nTGV2
ZWxNZWRpdW0pIFwKICAgICBtYWNybyhNaW5pbXVtRm9udFNpemUsIG1pbmltdW1Gb250U2l6ZSwg
VUludDMyLCB1aW50MzJfdCwgMCkgXAogICAgIG1hY3JvKE1pbmltdW1Mb2dpY2FsRm9udFNpemUs
IG1pbmltdW1Mb2dpY2FsRm9udFNpemUsIFVJbnQzMiwgdWludDMyX3QsIDkpIFwKICAgICBtYWNy
byhEZWZhdWx0Rm9udFNpemUsIGRlZmF1bHRGb250U2l6ZSwgVUludDMyLCB1aW50MzJfdCwgMTYp
IFwKQEAgLTE3MiwxOSArMTYwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgbWFjcm8oSW5z
cGVjdG9yQXR0YWNoZWRIZWlnaHQsIGluc3BlY3RvckF0dGFjaGVkSGVpZ2h0LCBVSW50MzIsIHVp
bnQzMl90LCAzMDApIFwKICAgICBcCiAKLSNpZiBQTEFURk9STShXSU4pCi0KLSNkZWZpbmUgRk9S
X0VBQ0hfV0VCS0lUX0ZPTlRfRkFNSUxZX1BSRUZFUkVOQ0UobWFjcm8pIFwKLSAgICBtYWNybyhT
dGFuZGFyZEZvbnRGYW1pbHksIHN0YW5kYXJkRm9udEZhbWlseSwgU3RyaW5nLCBTdHJpbmcsICJU
aW1lcyBOZXcgUm9tYW4iKSBcCi0gICAgbWFjcm8oQ3Vyc2l2ZUZvbnRGYW1pbHksIGN1cnNpdmVG
b250RmFtaWx5LCBTdHJpbmcsIFN0cmluZywgIkNvbWljIFNhbnMgTVMiKSBcCi0gICAgbWFjcm8o
RmFudGFzeUZvbnRGYW1pbHksIGZhbnRhc3lGb250RmFtaWx5LCBTdHJpbmcsIFN0cmluZywgIkNv
bWljIFNhbnMgTVMiKSBcCi0gICAgbWFjcm8oRml4ZWRGb250RmFtaWx5LCBmaXhlZEZvbnRGYW1p
bHksIFN0cmluZywgU3RyaW5nLCAiQ291cmllciBOZXciKSBcCi0gICAgbWFjcm8oU2Fuc1Nlcmlm
Rm9udEZhbWlseSwgc2Fuc1NlcmlmRm9udEZhbWlseSwgU3RyaW5nLCBTdHJpbmcsICJBcmlhbCIp
IFwKLSAgICBtYWNybyhTZXJpZkZvbnRGYW1pbHksIHNlcmlmRm9udEZhbWlseSwgU3RyaW5nLCBT
dHJpbmcsICJUaW1lcyBOZXcgUm9tYW4iKSBcCi0gICAgbWFjcm8oUGljdG9ncmFwaEZvbnRGYW1p
bHksIHBpY3RvZ3JhcGhGb250RmFtaWx5LCBTdHJpbmcsIFN0cmluZywgIlRpbWVzIE5ldyBSb21h
biIpIFwKLSAgICBcCi0KLSNlbGlmIFBMQVRGT1JNKE1BQykKKyNpZiBQTEFURk9STShNQUMpCiAK
ICNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX0ZPTlRfRkFNSUxZX1BSRUZFUkVOQ0UobWFjcm8pIFwK
ICAgICBtYWNybyhTdGFuZGFyZEZvbnRGYW1pbHksIHN0YW5kYXJkRm9udEZhbWlseSwgU3RyaW5n
LCBTdHJpbmcsICJUaW1lcyIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCA2Mjc3MDgzMTJhMzVjOWMyNjUz
ZGU5NjVlNGJiYTZiNTgwMDAxMzU0Li5kYzEyN2VmNDc5NjAxYTYwYThlNzY2MWQyZDIyYmNiMjgz
ZmYzZjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0yNyw5ICsyNyw2IEBACiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIK
LSNpZiBQTEFURk9STShXSU4pICYmIFVTRShDRk5FVFdPUkspCi0jaW5jbHVkZSAiQXJndW1lbnRD
b2RlcnNDRi5oIgotI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00Myw4ICs0MCw2
IEBAIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMoKQogICAgICwgbnNVUkxDYWNoZURpc2tDYXBhY2l0eSgwKQogICAgICwgc2hvdWxkRm9y
Y2VTY3JlZW5Gb250U3Vic3RpdHV0aW9uKGZhbHNlKQogICAgICwgc2hvdWxkRW5hYmxlS2Vybmlu
Z0FuZExpZ2F0dXJlc0J5RGVmYXVsdChmYWxzZSkKLSNlbGlmIFBMQVRGT1JNKFdJTikKLSAgICAs
IHNob3VsZFBhaW50TmF0aXZlQ29udHJvbHMoZmFsc2UpCiAjZW5kaWYKICNpZiBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQogICAgICwgdXNlc05ldHdvcmtQcm9jZXNzKGZhbHNlKQpAQCAtMTA1LDE3
ICsxMDAsNiBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbgogICAgIGVuY29kZXIgPDwgdWlQcm9j
ZXNzQnVuZGxlUmVzb3VyY2VQYXRoRXh0ZW5zaW9uSGFuZGxlOwogICAgIGVuY29kZXIgPDwgc2hv
dWxkRm9yY2VTY3JlZW5Gb250U3Vic3RpdHV0aW9uOwogICAgIGVuY29kZXIgPDwgc2hvdWxkRW5h
YmxlS2VybmluZ0FuZExpZ2F0dXJlc0J5RGVmYXVsdDsKLSNlbGlmIFBMQVRGT1JNKFdJTikKLSAg
ICBlbmNvZGVyIDw8IHNob3VsZFBhaW50TmF0aXZlQ29udHJvbHM7Ci0gICAgZW5jb2RlciA8PCBj
ZlVSTENhY2hlRGlza0NhcGFjaXR5OwotICAgIGVuY29kZXIgPDwgY2ZVUkxDYWNoZU1lbW9yeUNh
cGFjaXR5OwotICAgIGVuY29kZXIgPDwgaW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3k7Ci0j
aWYgVVNFKENGTkVUV09SSykKLSAgICBDRkRhdGFSZWYgc3RvcmFnZVNlc3Npb24gPSBzZXJpYWxp
emVkRGVmYXVsdFN0b3JhZ2VTZXNzaW9uLmdldCgpOwotICAgIGVuY29kZXIgPDwgc3RhdGljX2Nh
c3Q8Ym9vbD4oc3RvcmFnZVNlc3Npb24pOwotICAgIGlmIChzdG9yYWdlU2Vzc2lvbikKLSAgICAg
ICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29kZXIsIHN0b3JhZ2VTZXNzaW9uKTsKLSNlbmRpZgogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklD
QVRJT05TKQpAQCAtMjI3LDIyICsyMTEsNiBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnM6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYgogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy5z
aG91bGRFbmFibGVLZXJuaW5nQW5kTGlnYXR1cmVzQnlEZWZhdWx0KSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotI2VsaWYgUExBVEZPUk0oV0lOKQotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBh
cmFtZXRlcnMuc2hvdWxkUGFpbnROYXRpdmVDb250cm9scykpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLmNmVVJMQ2FjaGVEaXNrQ2Fw
YWNpdHkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUo
cGFyYW1ldGVycy5jZlVSTENhY2hlTWVtb3J5Q2FwYWNpdHkpKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy5pbml0aWFsSFRUUENvb2tp
ZUFjY2VwdFBvbGljeSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSNpZiBQTEFURk9STShNQUMp
IHx8IFVTRShDRk5FVFdPUkspCi0gICAgYm9vbCBoYXNTdG9yYWdlU2Vzc2lvbiA9IGZhbHNlOwot
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGhhc1N0b3JhZ2VTZXNzaW9uKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIGlmIChoYXNTdG9yYWdlU2Vzc2lvbiAmJiAhQ29yZUlQQzo6ZGVjb2Rl
KGRlY29kZXIsIHBhcmFtZXRlcnMuc2VyaWFsaXplZERlZmF1bHRTdG9yYWdlU2Vzc2lvbikpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgogI2VuZGlmCiAKICNpZiBFTkFCTEUoTk9USUZJ
Q0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggYjcy
N2Y0MGJkOGNkOTY0OWIxMzY0YjUyMDk3OTU1YTU1NzkyZGQ5MC4uY2YwZWMzMzZiNDQ1YWFiOTk3
MTQ4OTUxMWY0MWI5N2NhODMxZmNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0xMjIsMTkgKzEyMiw3IEBAIHN0
cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKIAogICAgIGJvb2wgc2hvdWxkRm9y
Y2VTY3JlZW5Gb250U3Vic3RpdHV0aW9uOwogICAgIGJvb2wgc2hvdWxkRW5hYmxlS2VybmluZ0Fu
ZExpZ2F0dXJlc0J5RGVmYXVsdDsKLQotI2VsaWYgUExBVEZPUk0oV0lOKQotICAgIHVpbnQ2NF90
IGNmVVJMQ2FjaGVEaXNrQ2FwYWNpdHk7Ci0gICAgdWludDY0X3QgY2ZVUkxDYWNoZU1lbW9yeUNh
cGFjaXR5OwotCi0gICAgdWludDMyX3QgaW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3k7Ci0K
LSAgICBib29sIHNob3VsZFBhaW50TmF0aXZlQ29udHJvbHM7Ci0KLSNpZiBVU0UoQ0ZORVRXT1JL
KQotICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IHNlcmlhbGl6ZWREZWZhdWx0U3RvcmFnZVNlc3Np
b247Ci0jZW5kaWYKLSNlbmRpZiAvLyBQTEFURk9STShXSU4pCisjZW5kaWYgLy8gUExBVEZPUk0o
TUFDKQogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJ
Q0FUSU9OUykKICAgICBIYXNoTWFwPFN0cmluZywgYm9vbD4gbm90aWZpY2F0aW9uUGVybWlzc2lv
bnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViVVJMUmVxdWVzdC5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlVSTFJlcXVlc3QuaAppbmRleCBhM2E1OTMxMmY1NjE4
ZWYzNTU1MzQ4MmE1MDA1MjI4MzE0NzdmZGMzLi5kM2UzOTgyMGQ3MmE5ZGY3NGNmY2JhM2RlNmZi
N2E4Y2U5YmNkMGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViVVJMUmVx
dWVzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJVUkxSZXF1ZXN0LmgKQEAgLTMy
LDggKzMyLDYgQEAKIAogI2lmIFBMQVRGT1JNKE1BQykKIHR5cGVkZWYgTlNVUkxSZXF1ZXN0KiBQ
bGF0Zm9ybVJlcXVlc3Q7Ci0jZWxpZiBQTEFURk9STShXSU4pCi10eXBlZGVmIENGVVJMUmVxdWVz
dFJlZiBQbGF0Zm9ybVJlcXVlc3Q7CiAjZWxzZQogdHlwZWRlZiB2b2lkKiBQbGF0Zm9ybVJlcXVl
c3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJVUkxSZXNw
b25zZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlVSTFJlc3BvbnNlLmgKaW5kZXggNGYw
NmRiMmI5NzUyZGRiYWQzOTM0YmY3M2Q0YTBmNjQ3NmM3YzYyYi4uNzdiYmMxODBjMDEzZmY0N2I5
N2VjZDY5NDg2ZTMwOGE5YjUwYTRjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlVSTFJlc3BvbnNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlVSTFJlc3Bv
bnNlLmgKQEAgLTMyLDggKzMyLDYgQEAKIAogI2lmIFBMQVRGT1JNKE1BQykKIHR5cGVkZWYgTlNV
UkxSZXNwb25zZSogUGxhdGZvcm1SZXNwb25zZTsKLSNlbGlmIFBMQVRGT1JNKFdJTikKLXR5cGVk
ZWYgQ0ZVUkxSZXNwb25zZVJlZiBQbGF0Zm9ybVJlc3BvbnNlOwogI2Vsc2UKIHR5cGVkZWYgdm9p
ZCogUGxhdGZvcm1SZXNwb25zZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL2NnL1NoYXJlYWJsZUJpdG1hcENHLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9j
Zy9TaGFyZWFibGVCaXRtYXBDRy5jcHAKaW5kZXggZjQwZmQ1Y2RkZmY4MGRlYWFkMzNjNmJhNmE1
NWVhZjAxNTA2ZDRjMy4uYTM4ZmE0NThlNTNlYmFiNWVmYjgzYWZmNzk2MWU0Nzg5YjMzYmE4YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2NnL1NoYXJlYWJsZUJpdG1hcENHLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvY2cvU2hhcmVhYmxlQml0bWFwQ0cuY3BwCkBA
IC03MiwxNCArNzIsMTIgQEAgdm9pZCBTaGFyZWFibGVCaXRtYXA6OnBhaW50KFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCwgZmxvYXQgc2NhbGVGYWN0b3IKICAgICBwYWludEltYWdl
KGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCksIG1ha2VDR0ltYWdlQ29weSgpLmdldCgpLCBzY2Fs
ZUZhY3RvciwgZGVzdGluYXRpb24sIHNvdXJjZSk7CiB9CiAKLSNpZiAhUExBVEZPUk0oV0lOKQog
UmV0YWluUHRyPENHSW1hZ2VSZWY+IFNoYXJlYWJsZUJpdG1hcDo6bWFrZUNHSW1hZ2VDb3B5KCkK
IHsKICAgICBPd25QdHI8R3JhcGhpY3NDb250ZXh0PiBncmFwaGljc0NvbnRleHQgPSBjcmVhdGVH
cmFwaGljc0NvbnRleHQoKTsKICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2UoQWRvcHRD
RiwgQ0dCaXRtYXBDb250ZXh0Q3JlYXRlSW1hZ2UoZ3JhcGhpY3NDb250ZXh0LT5wbGF0Zm9ybUNv
bnRleHQoKSkpOwogICAgIHJldHVybiBpbWFnZTsKIH0KLSNlbmRpZgogCiBSZXRhaW5QdHI8Q0dJ
bWFnZVJlZj4gU2hhcmVhYmxlQml0bWFwOjptYWtlQ0dJbWFnZSgpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggM2MwNTg0YzA2YjUzNTQyOTUwNmEz
ZjgwMThmZThjMTg5MjMyMjNiOS4uMjMyMDQ1Yjg3MTViYTE5NWMyNDQyMDM3YjJmZDdhOTQ5MGZl
Zjc2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2Fz
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApAQCAt
MjEwLDEwICsyMTAsNiBAQCBpbmxpbmUgRm9udFNtb290aGluZ0xldmVsIHRvRm9udFNtb290aGlu
Z0xldmVsKFdLRm9udFNtb290aGluZ0xldmVsIHdrTGV2ZWwpCiAgICAgICAgIHJldHVybiBGb250
U21vb3RoaW5nTGV2ZWxNZWRpdW07CiAgICAgY2FzZSBrV0tGb250U21vb3RoaW5nTGV2ZWxTdHJv
bmc6CiAgICAgICAgIHJldHVybiBGb250U21vb3RoaW5nTGV2ZWxTdHJvbmc7Ci0jaWYgUExBVEZP
Uk0oV0lOKQotICAgIGNhc2Uga1dLRm9udFNtb290aGluZ0xldmVsV2luZG93czoKLSAgICAgICAg
cmV0dXJuIEZvbnRTbW9vdGhpbmdMZXZlbFdpbmRvd3M7Ci0jZW5kaWYKICAgICB9CiAKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTIzMiwxMCArMjI4LDYgQEAgaW5saW5lIFdLRm9udFNt
b290aGluZ0xldmVsIHRvQVBJKEZvbnRTbW9vdGhpbmdMZXZlbCBsZXZlbCkKICAgICAgICAgcmV0
dXJuIGtXS0ZvbnRTbW9vdGhpbmdMZXZlbE1lZGl1bTsKICAgICBjYXNlIEZvbnRTbW9vdGhpbmdM
ZXZlbFN0cm9uZzoKICAgICAgICAgcmV0dXJuIGtXS0ZvbnRTbW9vdGhpbmdMZXZlbFN0cm9uZzsK
LSNpZiBQTEFURk9STShXSU4pCi0gICAgY2FzZSBGb250U21vb3RoaW5nTGV2ZWxXaW5kb3dzOgot
ICAgICAgICByZXR1cm4ga1dLRm9udFNtb290aGluZ0xldmVsV2luZG93czsKLSNlbmRpZgogICAg
IH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmNwcAppbmRleCBhMjc2NjA2NGYzZmFjNmM0OTQ0M2I5ODZmMWU5ODExMGFm
Y2FkZjI3Li5jNjc1OWJkYjUwMGRiYzM5Y2RiZTg0MWE0MGYzNTE0YzEyYTFhM2UyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtNjkwLDcgKzY5MCw3IEBA
IHZvaWQgV0tQYWdlRXhlY3V0ZUNvbW1hbmQoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLU3RyaW5nUmVm
IGNvbW1hbmQpCiAgICAgdG9JbXBsKHBhZ2VSZWYpLT5leGVjdXRlRWRpdENvbW1hbmQodG9JbXBs
KGNvbW1hbmQpLT5zdHJpbmcoKSk7CiB9CiAKLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JN
KFdJTikKKyNpZiBQTEFURk9STShNQUMpCiBzdHJ1Y3QgQ29tcHV0ZWRQYWdlc0NvbnRleHQgewog
ICAgIENvbXB1dGVkUGFnZXNDb250ZXh0KFdLUGFnZUNvbXB1dGVQYWdlc0ZvclByaW50aW5nRnVu
Y3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNvbnRleHQpCiAgICAgICAgIDogY2FsbGJhY2soY2FsbGJh
Y2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQmFja2luZ1N0b3JlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQmFja2luZ1N0b3JlLmgKaW5kZXggYmQzMDFiYmU0
ZDNjMjI1YWZlOGNjODNjNzc4MzM2NmRhNGM3ZDczNC4uN2MyNjEzZmViZGMxYjk0MTJkNGViNDky
NDVkNDk4NDZmMmIwMWI0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Jh
Y2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9CYWNraW5nU3RvcmUu
aApAQCAtMzIsOCArMzIsNiBAQAogCiAjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgPHd0Zi9S
ZXRhaW5QdHIuaD4KLSNlbGlmIFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oV0lOX0NBSVJPKQot
I2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oUVQpCkBAIC00
MSw3ICszOSw3IEBACiAjaW5jbHVkZSA8UXRHdWkvUVBpeG1hcD4KICNlbmRpZgogCi0jaWYgVVNF
KENBSVJPKSAmJiAhUExBVEZPUk0oV0lOX0NBSVJPKQorI2lmIFVTRShDQUlSTykKICNpbmNsdWRl
IDxSZWZQdHJDYWlyby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2lkZ2V0QmFja2luZ1N0b3JlLmg+
CiAjZW5kaWYKQEAgLTY0LDggKzYyLDYgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oTUFDKQog
ICAgIHR5cGVkZWYgQ0dDb250ZXh0UmVmIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0OwotI2VsaWYg
UExBVEZPUk0oV0lOKQotICAgIHR5cGVkZWYgSERDIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0Owog
I2VsaWYgUExBVEZPUk0oUVQpCiAgICAgdHlwZWRlZiBRUGFpbnRlciogUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQ7CiAjZWxpZiBVU0UoQ0FJUk8pCkBAIC0xMDAsOCArOTYsNiBAQCBwcml2YXRlOgog
ICAgIC8vIENvbnRlbnRzIG9mIG1fc2Nyb2xsZWRSZWN0IGFyZSBvZmZzZXQgYnkgdGhpcyBhbW91
bnQgKGFuZCB3cmFwcGVkIGFyb3VuZCkgd2l0aCByZXNwZWN0IHRvCiAgICAgLy8gdGhlaXIgb3Jp
Z2luYWwgbG9jYXRpb24uCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX3Njcm9sbGVkUmVjdE9mZnNl
dDsKLSNlbGlmIFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oV0lOX0NBSVJPKQotICAgIE93blB0
cjxIQklUTUFQPiBtX2JpdG1hcDsKICNlbGlmIFBMQVRGT1JNKFFUKQogICAgIFFQaXhtYXAgbV9w
aXhtYXA7CiAjZWxpZiBVU0UoQ0FJUk8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQu
aAppbmRleCBmZGI2YTUwYjcyYzY0OTY0OGIwNGYyY2UwODYwMmYxZmFjMDY5MmU5Li5kMDhjYzkx
ZjY0NGQ5YTlmOGJiODczZWI0ZmU4MzFiOTk4M2Y4YzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmgKQEAgLTY4LDEwICs2OCw2IEBAIGNsYXNzIFdlYlBvcHVwTWVudVByb3h5
OwogY2xhc3MgV2ViQ29sb3JDaG9vc2VyUHJveHk7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKFdJ
TikKLXN0cnVjdCBXaW5kb3dHZW9tZXRyeTsKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oTUFDKQog
c3RydWN0IENvbG9yU3BhY2VEYXRhOwogI2VuZGlmCkBAIC0xNjcsOSArMTYzLDYgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBzZXRQcm9taXNlZERhdGEoY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkTmFtZSwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGltYWdlQnVmZmVyLCBj
b25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBTdHJpbmcmIGV4dGVuc2lvbiwgY29uc3QgU3Ry
aW5nJiB0aXRsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmlu
ZyYgdXJsLCBjb25zdCBTdHJpbmcmIHZpc2libGVVcmwsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2hh
cmVkQnVmZmVyPiBhcmNoaXZlQnVmZmVyKSA9IDA7CiAjZW5kaWYKLSNpZiBQTEFURk9STShXSU4p
Ci0gICAgdmlydHVhbCB2b2lkIGNvbXBvc2l0aW9uU2VsZWN0aW9uQ2hhbmdlZChib29sKSA9IDA7
Ci0jZW5kaWYKICNpZiBQTEFURk9STShHVEspCiAgICAgdmlydHVhbCB2b2lkIGdldEVkaXRvckNv
bW1hbmRzRm9yS2V5RXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYsIGNvbnN0IEF0
b21pY1N0cmluZyYsIFZlY3RvcjxXVEY6OlN0cmluZz4mKSA9IDA7CiAjZW5kaWYKQEAgLTE5NCw5
ICsxODcsNiBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRGaW5kSW5k
aWNhdG9yKFBhc3NSZWZQdHI8RmluZEluZGljYXRvcj4sIGJvb2wgZmFkZU91dCwgYm9vbCBhbmlt
YXRlKSA9IDA7Ci0jaWYgUExBVEZPUk0oV0lOKQotICAgIHZpcnR1YWwgdm9pZCBkaWRJbnN0YWxs
T3JVbmluc3RhbGxQYWdlT3ZlcmxheShib29sKSA9IDA7Ci0jZW5kaWYKIAogI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0JikgPSAwOwpAQCAtMjA0LDEyICsx
OTQsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSA9IDA7CiAjZW5kaWYKIAotI2lmIFBM
QVRGT1JNKFdJTikKLSAgICB2aXJ0dWFsIEhXTkQgbmF0aXZlV2luZG93KCkgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCBzZXRHZXN0dXJlUmVhY2hlZFNjcm9sbGluZ0xpbWl0KGJvb2wpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDaGlsZFdpbmRvd0dlb21ldHJ5VXBkYXRlKGNvbnN0IFdp
bmRvd0dlb21ldHJ5JikgPSAwOwotI2VuZGlmCi0KICNpZiBQTEFURk9STShNQUMpCiAgICAgdmly
dHVhbCB2b2lkIHBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQodWludDY0X3QgcGx1Z2lu
Q29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgcGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dI
YXNGb2N1cykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQbHVnaW5Db21wbGV4VGV4dElucHV0
U3RhdGUodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIFBsdWdpbkNv
bXBsZXhUZXh0SW5wdXRTdGF0ZSkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHQuY3BwCmluZGV4IDBjNzljODVlMGM0MjdkYzE5NTMyNjQ3ZGNjMzgxMmY4YTQzZGI5Y2YuLjJj
YjhjMmE2Yjk3ZjE0ODg5NGI0MzVkZTQzNTZhZmE3OWMyYTI5ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAgLTEzNiwxMCArMTM2LDYgQEAgV2ViQ29udGV4dDo6
V2ViQ29udGV4dChQcm9jZXNzTW9kZWwgcHJvY2Vzc01vZGVsLCBjb25zdCBTdHJpbmcmIGluamVj
dGVkQnVuZGxlUGEKICAgICAsIG1fY2FjaGVNb2RlbChDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXIp
CiAgICAgLCBtX21lbW9yeVNhbXBsZXJFbmFibGVkKGZhbHNlKQogICAgICwgbV9tZW1vcnlTYW1w
bGVySW50ZXJ2YWwoMTQwMC4wKQotI2lmIFBMQVRGT1JNKFdJTikKLSAgICAsIG1fc2hvdWxkUGFp
bnROYXRpdmVDb250cm9scyh0cnVlKQotICAgICwgbV9pbml0aWFsSFRUUENvb2tpZUFjY2VwdFBv
bGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzKQotI2VuZGlmCiAjaWYgVVNFKFNPVVAp
CiAgICAgLCBtX2luaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQ
b2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbikKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb250ZXh0LmgKaW5kZXggNjUyY2QyZWQ2MzVkY2FlNzA3NjY0ZTgyNjcxZmYxMzg3
MGY0N2FhNi4uZmM5M2EwOGI5OWQzNmYzMGU4YjRlMTIzNTRiYzVlYjRjYzhiMmY0ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCkBAIC0xODYsMTAgKzE4Niw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHN0YXJ0TWVtb3J5U2FtcGxlcihjb25zdCBkb3VibGUgaW50ZXJ2YWwpOwog
ICAgIHZvaWQgc3RvcE1lbW9yeVNhbXBsZXIoKTsKIAotI2lmIFBMQVRGT1JNKFdJTikKLSAgICB2
b2lkIHNldFNob3VsZFBhaW50TmF0aXZlQ29udHJvbHMoYm9vbCk7Ci0jZW5kaWYKLSNpZiBQTEFU
Rk9STShXSU4pIHx8IFVTRShTT1VQKQorI2lmIFVTRShTT1VQKQogICAgIHZvaWQgc2V0SW5pdGlh
bEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpIHsg
bV9pbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeSA9IHBvbGljeTsgfQogI2VuZGlmCiAgICAg
dm9pZCBzZXRFbmhhbmNlZEFjY2Vzc2liaWxpdHkoYm9vbCk7CkBAIC00MjUsMTAgKzQyMiw3IEBA
IHByaXZhdGU6CiAgICAgdHlwZWRlZiBIYXNoTWFwPEF0b21pY1N0cmluZywgUmVmUHRyPFdlYkNv
bnRleHRTdXBwbGVtZW50PiA+IFdlYkNvbnRleHRTdXBwbGVtZW50TWFwOwogICAgIFdlYkNvbnRl
eHRTdXBwbGVtZW50TWFwIG1fc3VwcGxlbWVudHM7CiAKLSNpZiBQTEFURk9STShXSU4pCi0gICAg
Ym9vbCBtX3Nob3VsZFBhaW50TmF0aXZlQ29udHJvbHM7Ci0jZW5kaWYKLSNpZiBQTEFURk9STShX
SU4pIHx8IFVTRShTT1VQKQorI2lmIFVTRShTT1VQKQogICAgIEhUVFBDb29raWVBY2NlcHRQb2xp
Y3kgbV9pbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeTsKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaAppbmRl
eCAwNGFlZDlhM2YzNDVmZDk0NTcxNThiNmFiMTg0ZDBiZjJkNzliMDlhLi4xZmEyZWU4OWIxOGE3
MGVlNzQzODdjNjMxNTAzYzgwNDY3MmNkZTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTU0LDkgKzU0LDYgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiAgICAgCiAjaWYgUExBVEZPUk0oTUFDKQogdHlwZWRlZiBXS1Zp
ZXcgUGxhdGZvcm1XZWJWaWV3OwotI2VsaWYgUExBVEZPUk0oV0lOKQotY2xhc3MgV2ViVmlldzsK
LXR5cGVkZWYgV2ViVmlldyBQbGF0Zm9ybVdlYlZpZXc7CiAjZWxpZiBQTEFURk9STShRVCkKIHR5
cGVkZWYgUVF1aWNrV2ViVmlldyBQbGF0Zm9ybVdlYlZpZXc7CiAjZWxpZiBQTEFURk9STShHVEsp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcAppbmRl
eCA1YmMyNzAyODJhODRiMjI3NjQyMTcyM2QzM2ZjOTU1MjMyNzhjYjEzLi5iMmE2YTVhMTllOTg0
Yzg1NTE3MTY2NTY5MjQ3NmY2YzYxZmU2MjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5jcHAKQEAgLTQyLDkgKzQyLDYgQEAKICNpZiBFTkFCTEUo
SU5TUEVDVE9SX1NFUlZFUikKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JTZXJ2ZXIuaCIKICNlbmRp
ZgotI2lmIFBMQVRGT1JNKFdJTikKLSNpbmNsdWRlICJXZWJWaWV3LmgiCi0jZW5kaWYKIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTg2LDkgKzgzLDcgQEAgV2ViSW5zcGVjdG9yUHJv
eHk6OldlYkluc3BlY3RvclByb3h5KFdlYlBhZ2VQcm94eSogcGFnZSkKICAgICAsIG1faXNEZWJ1
Z2dpbmdKYXZhU2NyaXB0KGZhbHNlKQogICAgICwgbV9pc1Byb2ZpbGluZ0phdmFTY3JpcHQoZmFs
c2UpCiAgICAgLCBtX2lzUHJvZmlsaW5nUGFnZShmYWxzZSkKLSNpZiBQTEFURk9STShXSU4pCi0g
ICAgLCBtX2luc3BlY3RvcldpbmRvdygwKQotI2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9S
TShFRkwpCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpCiAgICAgLCBtX2luc3Bl
Y3RvclZpZXcoMCkKICAgICAsIG1faW5zcGVjdG9yV2luZG93KDApCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgKaW5kZXggNGE5NGQyZTYwMzk0
MzljNjZkMmZhNWQ3MzZiMDA5NmQ2YzkzY2M1OC4uYjhiMDQwMWU1Y2IwZWI1ZmQ0Y2QwNmY3NjQx
ZmIzNWIzMDE4NmQxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYklu
c3BlY3RvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3Rv
clByb3h5LmgKQEAgLTQ2LDEwICs0Niw2IEBAIE9CSkNfQ0xBU1MgV0tXZWJJbnNwZWN0b3JQcm94
eU9iakNBZGFwdGVyOwogT0JKQ19DTEFTUyBXS1dlYkluc3BlY3RvcldLVmlldzsKICNlbmRpZgog
Ci0jaWYgUExBVEZPUk0oV0lOKQotI2luY2x1ZGUgPFdlYkNvcmUvV2luZG93TWVzc2FnZUxpc3Rl
bmVyLmg+Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKEdUSykKICNpbmNsdWRlICJXZWJJbnNwZWN0
b3JDbGllbnRHdGsuaCIKICNlbmRpZgpAQCAtNjYsMTUgKzYyLDcgQEAgY2xhc3MgV2ViUGFnZUdy
b3VwOwogY2xhc3MgV2ViUGFnZVByb3h5Owogc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnM7CiAKLSNpZiBQTEFURk9STShXSU4pCi1jbGFzcyBXZWJWaWV3OwotI2VuZGlmCi0KLWNsYXNz
IFdlYkluc3BlY3RvclByb3h5IDogcHVibGljIEFQSU9iamVjdAotI2lmIFBMQVRGT1JNKFdJTikK
LSAgICAsIHB1YmxpYyBXZWJDb3JlOjpXaW5kb3dNZXNzYWdlTGlzdGVuZXIKLSNlbmRpZgotewor
Y2xhc3MgV2ViSW5zcGVjdG9yUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0IHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZUluc3BlY3RvcjsKIApAQCAtMTgyLDIw
ICsxNzAsNiBAQCBwcml2YXRlOgogCiAgICAgc3RhdGljIFdlYlBhZ2VHcm91cCogaW5zcGVjdG9y
UGFnZUdyb3VwKCk7CiAKLSNpZiBQTEFURk9STShXSU4pCi0gICAgc3RhdGljIGJvb2wgcmVnaXN0
ZXJJbnNwZWN0b3JWaWV3V2luZG93Q2xhc3MoKTsKLSAgICBzdGF0aWMgTFJFU1VMVCBDQUxMQkFD
SyBJbnNwZWN0b3JWaWV3V25kUHJvYyhIV05ELCBVSU5ULCBXUEFSQU0sIExQQVJBTSk7Ci0gICAg
TFJFU1VMVCB3bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBM
UEFSQU0gbFBhcmFtKTsKLQotICAgIExSRVNVTFQgb25TaXplRXZlbnQoSFdORCBoV25kLCBVSU5U
IG1lc3NhZ2UsIFdQQVJBTSwgTFBBUkFNLCBib29sJiBoYW5kbGVkKTsKLSAgICBMUkVTVUxUIG9u
TWluTWF4SW5mb0V2ZW50KEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0sIExQQVJBTSwg
Ym9vbCYgaGFuZGxlZCk7Ci0gICAgTFJFU1VMVCBvblNldEZvY3VzRXZlbnQoSFdORCBoV25kLCBV
SU5UIG1lc3NhZ2UsIFdQQVJBTSwgTFBBUkFNLCBib29sJiBoYW5kbGVkKTsKLSAgICBMUkVTVUxU
IG9uQ2xvc2VFdmVudChIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNLCBMUEFSQU0sIGJv
b2wmIGhhbmRsZWQpOwotCi0gICAgdm9pZCBvbldlYlZpZXdXaW5kb3dQb3NDaGFuZ2luZ0V2ZW50
KFdQQVJBTSwgTFBBUkFNKTsKLSAgICB2aXJ0dWFsIHZvaWQgd2luZG93UmVjZWl2ZWRNZXNzYWdl
KEhXTkQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNLCBMUEFSQU0pOwotI2VuZGlmCi0KICNpZiBQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkKICAgICB2b2lkIGNyZWF0ZUluc3BlY3RvcldpbmRv
dygpOwogI2VuZGlmCkBAIC0yMjMsOSArMTk3LDYgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8
TlNCdXR0b24+IG1fZG9ja0J1dHRvbjsKICAgICBSZXRhaW5QdHI8V0tXZWJJbnNwZWN0b3JQcm94
eU9iakNBZGFwdGVyPiBtX2luc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXI7CiAgICAgU3RyaW5nIG1f
dXJsU3RyaW5nOwotI2VsaWYgUExBVEZPUk0oV0lOKQotICAgIEhXTkQgbV9pbnNwZWN0b3JXaW5k
b3c7Ci0gICAgUmVmUHRyPFdlYlZpZXc+IG1faW5zcGVjdG9yVmlldzsKICNlbGlmIFBMQVRGT1JN
KEdUSykKICAgICBXZWJJbnNwZWN0b3JDbGllbnRHdGsgbV9jbGllbnQ7CiAgICAgR3RrV2lkZ2V0
KiBtX2luc3BlY3RvclZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCmluZGV4IDIwMTZjYmE4MDA0YWY4MDJkMTA1MjIwODBhNjg4ZThiNTdlOTQ5MDguLjMwYTE0
NzQ3MjZmODNjZDk0ZjIyMmYxOGRhZmE0Zjc0OGY3YWI3ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMDI5LDExICsxMDI5LDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihEcmFnQ29udHJvbGxlckFjdGlv
biBhY3Rpb24sIERyYWcKIHsKICAgICBpZiAoIWlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwot
I2lmIFBMQVRGT1JNKFdJTikKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHBhc3MgdGhlIGRyYWcg
ZGF0YSBtYXAgb25seSBvbiBEcmFnRW50ZXIuCi0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24oYWN0aW9uLCBkcmFnRGF0YS0+
Y2xpZW50UG9zaXRpb24oKSwgZHJhZ0RhdGEtPmdsb2JhbFBvc2l0aW9uKCksCi0gICAgICAgIGRy
YWdEYXRhLT5kcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2soKSwgZHJhZ0RhdGEtPmRyYWdEYXRh
TWFwKCksIGRyYWdEYXRhLT5mbGFncygpKSwgbV9wYWdlSUQpOwotI2VsaWYgUExBVEZPUk0oUVQp
IHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oR1RLKQogICAg
IG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UGVyZm9ybURyYWdDb250cm9sbGVy
QWN0aW9uKGFjdGlvbiwgKmRyYWdEYXRhKSwgbV9wYWdlSUQpOwogI2Vsc2UKICAgICBtX3Byb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihh
Y3Rpb24sIGRyYWdEYXRhLT5jbGllbnRQb3NpdGlvbigpLCBkcmFnRGF0YS0+Z2xvYmFsUG9zaXRp
b24oKSwgZHJhZ0RhdGEtPmRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFzaygpLCBkcmFnU3RvcmFn
ZU5hbWUsIGRyYWdEYXRhLT5mbGFncygpLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlLCBzYW5kYm94
RXh0ZW5zaW9uc0ZvclVwbG9hZCksIG1fcGFnZUlEKTsKQEAgLTM0NzAsMTAgKzM0NjYsNiBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZUV2ZW50KHVpbnQzMl90IG9wYXF1ZVR5cGUsIGJv
b2wgaGFuZGxlZCkKIAogICAgICAgICBpZiAobV91aUNsaWVudC5pbXBsZW1lbnRzRGlkTm90SGFu
ZGxlS2V5RXZlbnQoKSkKICAgICAgICAgICAgIG1fdWlDbGllbnQuZGlkTm90SGFuZGxlS2V5RXZl
bnQodGhpcywgZXZlbnQpOwotI2lmIFBMQVRGT1JNKFdJTikKLSAgICAgICAgZWxzZQotICAgICAg
ICAgICAgOjpUcmFuc2xhdGVNZXNzYWdlKGV2ZW50Lm5hdGl2ZUV2ZW50KCkpOwotI2VuZGlmCiAg
ICAgICAgIGJyZWFrOwogICAgIH0KICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQpAQCAtMzgxNSw5
ICszODA3LDYgQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6OmNyZWF0
aW9uUGFyYW1ldGVycygpIGNvbnN0CiAgICAgcGFyYW1ldGVycy5jb2xvclNwYWNlID0gbV9wYWdl
Q2xpZW50LT5jb2xvclNwYWNlKCk7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKFdJTikKLSAgICBw
YXJhbWV0ZXJzLm5hdGl2ZVdpbmRvdyA9IG1fcGFnZUNsaWVudC0+bmF0aXZlV2luZG93KCk7Ci0j
ZW5kaWYKICAgICByZXR1cm4gcGFyYW1ldGVyczsKIH0KIApAQCAtNDA2Niw3ICs0MDU1LDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nKFdlYkZyYW1lUHJveHkq
IGZyYW1lLCBjb25zdCBQcmludEluZm8KICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclByaW50aW5nKGZyYW1lLT5mcmFtZUlEKCksIHByaW50SW5m
bywgY2FsbGJhY2tJRCksIG1fcGFnZUlELCBtX2lzUGVyZm9ybWluZ0RPTVByaW50T3BlcmF0aW9u
ID8gQ29yZUlQQzo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5IDog
MCk7CiB9CiAKLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKFdJTikKKyNpZiBQTEFURk9S
TShNQUMpCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZHJhd1JlY3RUb0ltYWdlKFdlYkZyYW1lUHJveHkq
IGZyYW1lLCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCwg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW1hZ2VTaXplLCBQYXNzUmVmUHRyPEltYWdlQ2FsbGJh
Y2s+IHBycENhbGxiYWNrKQogewogICAgIFJlZlB0cjxJbWFnZUNhbGxiYWNrPiBjYWxsYmFjayA9
IHBycENhbGxiYWNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4
IDJlZDBhZjFjZDRiM2JhMTIyZGEwZWUzZjJhMjdlYzdhMGYyMGE1MWQuLjRkYTJjZGU5OGJlZTBk
ODcwOTQ0YmQ1ZDE4YmEyMmRmM2UzOWVmYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKQEAgLTE2MCwxMCArMTYwLDYgQEAgc3RydWN0IFByaW50SW5mbzsKIHN0cnVj
dCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOwogc3RydWN0IFdlYlBvcHVwSXRlbTsKIAotI2lm
IFBMQVRGT1JNKFdJTikKLXN0cnVjdCBXaW5kb3dHZW9tZXRyeTsKLSNlbmRpZgotCiAjaWYgRU5B
QkxFKEdFU1RVUkVfRVZFTlRTKQogY2xhc3MgV2ViR2VzdHVyZUV2ZW50OwogI2VuZGlmCkBAIC00
MTcsMjggKzQxMywxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbnRyaW5zaWNDb250ZW50U2l6ZURp
ZENoYW5nZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBpbnRyaW5zaWNDb250ZW50U2l6ZSk7CiAj
ZW5kaWYKICNlbmRpZgotI2lmIFBMQVRGT1JNKFdJTikKLSAgICB2b2lkIGRpZENoYW5nZUNvbXBv
c2l0aW9uU2VsZWN0aW9uKGJvb2wpOwotICAgIHZvaWQgY29uZmlybUNvbXBvc2l0aW9uKGNvbnN0
IFN0cmluZyYpOwotICAgIHZvaWQgc2V0Q29tcG9zaXRpb24oY29uc3QgU3RyaW5nJiwgVmVjdG9y
PFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lPiYsIGludCk7Ci0gICAgV2ViQ29yZTo6SW50
UmVjdCBmaXJzdFJlY3RGb3JDaGFyYWN0ZXJJblNlbGVjdGVkUmFuZ2UoaW50KTsKLSAgICBTdHJp
bmcgZ2V0U2VsZWN0ZWRUZXh0KCk7Ci0KLSAgICBib29sIGdlc3R1cmVXaWxsQmVnaW4oY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmKTsKLSAgICB2b2lkIGdlc3R1cmVEaWRTY3JvbGwoY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYpOwotICAgIHZvaWQgZ2VzdHVyZURpZEVuZCgpOwotCi0gICAgdm9pZCBz
ZXRHZXN0dXJlUmVhY2hlZFNjcm9sbGluZ0xpbWl0KGJvb2wpOwotCi0gICAgSFdORCBuYXRpdmVX
aW5kb3coKSBjb25zdDsKLSNlbmRpZgogI2lmIFBMQVRGT1JNKEVGTCkKICAgICB2b2lkIGhhbmRs
ZUlucHV0TWV0aG9kS2V5ZG93bihib29sJiBoYW5kbGVkKTsKICAgICB2b2lkIGNvbmZpcm1Db21w
b3NpdGlvbihjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHNldENvbXBvc2l0aW9uKGNvbnN0IFN0
cmluZyYsIFZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVybGluZT4mLCBpbnQpOwogICAg
IHZvaWQgY2FuY2VsQ29tcG9zaXRpb24oKTsKICNlbmRpZgotI2lmIFVTRShDQUlSTykgJiYgIVBM
QVRGT1JNKFdJTl9DQUlSTykKKyNpZiBVU0UoQ0FJUk8pCiAgICAgUGxhdGZvcm1XaWRnZXQgdmll
d1dpZGdldCgpOwogI2VuZGlmCiAjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCkBAIC01NTgs
OSArNTM5LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RmluZEluZGljYXRvcihjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmIHNlbGVjdGlvblJlY3RJbldpbmRvd0Nvb3JkaW5hdGVzLCBjb25zdCBW
ZWN0b3I8V2ViQ29yZTo6RmxvYXRSZWN0PiYgdGV4dFJlY3RzSW5TZWxlY3Rpb25SZWN0Q29vcmRp
bmF0ZXMsIGZsb2F0IGNvbnRlbnRJbWFnZVNjYWxlRmFjdG9yLCBjb25zdCBTaGFyZWFibGVCaXRt
YXA6OkhhbmRsZSYgY29udGVudEltYWdlSGFuZGxlLCBib29sIGZhZGVPdXQsIGJvb2wgYW5pbWF0
ZSk7CiAgICAgdm9pZCBkaWRGaW5kU3RyaW5nKGNvbnN0IFN0cmluZyYsIHVpbnQzMl90IG1hdGNo
Q291bnQpOwogICAgIHZvaWQgZGlkRmFpbFRvRmluZFN0cmluZyhjb25zdCBTdHJpbmcmKTsKLSNp
ZiBQTEFURk9STShXSU4pCi0gICAgdm9pZCBkaWRJbnN0YWxsT3JVbmluc3RhbGxQYWdlT3Zlcmxh
eShib29sKTsKLSNlbmRpZgogCiAgICAgdm9pZCBnZXRDb250ZW50c0FzU3RyaW5nKFBhc3NSZWZQ
dHI8U3RyaW5nQ2FsbGJhY2s+KTsKICNpZiBFTkFCTEUoTUhUTUwpCkBAIC02MDgsOSArNTg2LDYg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0UHJvbWlzZWREYXRhKGNvbnN0IFN0cmluZyYgcGFzdGVi
b2FyZE5hbWUsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBpbWFnZUhhbmRsZSwgdWludDY0
X3QgaW1hZ2VTaXplLCBjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBTdHJpbmcmIGV4dGVu
c2lvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25z
dCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB2aXNpYmxlVVJMLCBjb25zdCBTaGFyZWRNZW1v
cnk6OkhhbmRsZSYgYXJjaGl2ZUhhbmRsZSwgdWludDY0X3QgYXJjaGl2ZVNpemUpOwogI2VuZGlm
Ci0jaWYgUExBVEZPUk0oV0lOKQotICAgIHZvaWQgc3RhcnREcmFnRHJvcChjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgaW1hZ2VQb2ludCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRyYWdQb2lu
dCwgdWludDY0X3Qgb2tFZmZlY3QsIGNvbnN0IEhhc2hNYXA8VUlOVCwgVmVjdG9yPFN0cmluZz4g
PiYgZGF0YU1hcCwgdWludDY0X3QgZmlsZVNpemUsIGNvbnN0IFN0cmluZyYgcGF0aG5hbWUsIGNv
bnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBmaWxlQ29udGVudEhhbmRsZSwgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgZHJhZ0ltYWdlU2l6ZSwgY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGRy
YWdJbWFnZUhhbmRsZSwgYm9vbCBpc0xpbmtEcmFnKTsKLSNlbmRpZgogI2lmIFBMQVRGT1JNKFFU
KSB8fCBQTEFURk9STShHVEspCiAgICAgdm9pZCBzdGFydERyYWcoY29uc3QgV2ViQ29yZTo6RHJh
Z0RhdGEmLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgZHJhZ0ltYWdlKTsKICNlbmRp
ZgpAQCAtNzA1LDcgKzY4MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGJlZ2luUHJpbnRpbmcoV2Vi
RnJhbWVQcm94eSosIGNvbnN0IFByaW50SW5mbyYpOwogICAgIHZvaWQgZW5kUHJpbnRpbmcoKTsK
ICAgICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nKFdlYkZyYW1lUHJveHkqLCBjb25zdCBQ
cmludEluZm8mLCBQYXNzUmVmUHRyPENvbXB1dGVkUGFnZXNDYWxsYmFjaz4pOwotI2lmIFBMQVRG
T1JNKE1BQykgfHwgUExBVEZPUk0oV0lOKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIGRy
YXdSZWN0VG9JbWFnZShXZWJGcmFtZVByb3h5KiwgY29uc3QgUHJpbnRJbmZvJiwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBQYXNzUmVmUHRyPEltYWdl
Q2FsbGJhY2s+KTsKICAgICB2b2lkIGRyYXdQYWdlc1RvUERGKFdlYkZyYW1lUHJveHkqLCBjb25z
dCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIFBhc3NSZWZQdHI8
RGF0YUNhbGxiYWNrPik7CiAjZWxpZiBQTEFURk9STShHVEspCkBAIC05NDcsOSArOTIyLDYgQEAg
cHJpdmF0ZToKICAgICAvLyBQb3B1cCBNZW51LgogICAgIHZvaWQgc2hvd1BvcHVwTWVudShjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0LCB1aW50NjRfdCB0ZXh0RGlyZWN0aW9uLCBjb25zdCBW
ZWN0b3I8V2ViUG9wdXBJdGVtPiYgaXRlbXMsIGludDMyX3Qgc2VsZWN0ZWRJbmRleCwgY29uc3Qg
UGxhdGZvcm1Qb3B1cE1lbnVEYXRhJik7CiAgICAgdm9pZCBoaWRlUG9wdXBNZW51KCk7Ci0jaWYg
UExBVEZPUk0oV0lOKQotICAgIHZvaWQgc2V0UG9wdXBNZW51U2VsZWN0ZWRJbmRleChpbnQzMl90
KTsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgLy8gQ29udGV4dCBN
ZW51LgpAQCAtMTA1MSwxMCArMTAyMyw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHVwZGF0ZUJh
Y2tpbmdTdG9yZURpc2NhcmRhYmxlU3RhdGUoKTsKIAotI2lmIFBMQVRGT1JNKFdJTikKLSAgICB2
b2lkIHNjaGVkdWxlQ2hpbGRXaW5kb3dHZW9tZXRyeVVwZGF0ZShjb25zdCBXaW5kb3dHZW9tZXRy
eSYpOwotI2VuZGlmCi0KICAgICB2b2lkIHNldFJlbmRlclRyZWVTaXplKHVpbnQ2NF90IHRyZWVT
aXplKSB7IG1fcmVuZGVyVHJlZVNpemUgPSB0cmVlU2l6ZTsgfQogCiAjaWYgUExVR0lOX0FSQ0hJ
VEVDVFVSRShYMTEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgppbmRleCAwZWRjZDlkZDgxMDM4MWJjYWE1MjM2MmRjZTgxNDYyYjBhYTUz
YTQ3Li5jMTU1MDQ3MzVmMmEwZDVhMGIzNTZlYTcwMmNmNjdlZDdjOGY0MmZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTIw
NCw5ICsyMDQsNiBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAgIyBFZGl0b3Ig
bm90aWZpY2F0aW9ucwogICAgIEVkaXRvclN0YXRlQ2hhbmdlZChXZWJLaXQ6OkVkaXRvclN0YXRl
IGVkaXRvclN0YXRlKQotI2lmIFBMQVRGT1JNKFdJTikKLSAgICBEaWRDaGFuZ2VDb21wb3NpdGlv
blNlbGVjdGlvbihib29sIGhhc0NoYW5nZWQpCi0jZW5kaWYKICNpZiBQTEFURk9STShRVCkKICAg
ICBXaWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpCiAjZW5kaWYKQEAgLTIxNSwxNiArMjEyLDEwIEBA
IG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgU2V0RmluZEluZGljYXRvcihXZWJDb3Jl
OjpGbG9hdFJlY3Qgc2VsZWN0aW9uUmVjdCwgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UmVjdD4gdGV4
dFJlY3RzLCBmbG9hdCBjb250ZW50SW1hZ2VTY2FsZUZhY3RvciwgV2ViS2l0OjpTaGFyZWFibGVC
aXRtYXA6OkhhbmRsZSBjb250ZW50SW1hZ2VIYW5kbGUsIGJvb2wgZmFkZU91dCwgYm9vbCBhbmlt
YXRlKQogICAgIERpZEZpbmRTdHJpbmcoV1RGOjpTdHJpbmcgc3RyaW5nLCB1aW50MzJfdCBtYXRj
aENvdW50KQogICAgIERpZEZhaWxUb0ZpbmRTdHJpbmcoV1RGOjpTdHJpbmcgc3RyaW5nKQotI2lm
IFBMQVRGT1JNKFdJTikKLSAgICBEaWRJbnN0YWxsT3JVbmluc3RhbGxQYWdlT3ZlcmxheShib29s
IGRpZEluc3RhbGwpCi0jZW5kaWYKIAogICAgICMgUG9wdXBNZW51IG1lc3NhZ2VzCiAgICAgU2hv
d1BvcHVwTWVudShXZWJDb3JlOjpJbnRSZWN0IHJlY3QsIHVpbnQ2NF90IHRleHREaXJlY3Rpb24s
IFZlY3RvcjxXZWJLaXQ6OldlYlBvcHVwSXRlbT4gaXRlbXMsIGludDMyX3Qgc2VsZWN0ZWRJbmRl
eCwgV2ViS2l0OjpQbGF0Zm9ybVBvcHVwTWVudURhdGEgZGF0YSkKICAgICBIaWRlUG9wdXBNZW51
KCkKLSNpZiBQTEFURk9STShXSU4pCi0gICAgU2V0UG9wdXBNZW51U2VsZWN0ZWRJbmRleChpbnQz
Ml90IHNlbGVjdGVkSW5kZXgpCi0jZW5kaWYKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQog
ICAgICMgQ29udGV4dE1lbnUgbWVzc2FnZXMKQEAgLTI2Niw5ICsyNTcsNiBAQCBtZXNzYWdlcyAt
PiBXZWJQYWdlUHJveHkgewogICAgIFNldERyYWdJbWFnZShXZWJDb3JlOjpJbnRQb2ludCBjbGll
bnRQb3NpdGlvbiwgV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBkcmFnSW1hZ2UsIGJv
b2wgbGlua0RyYWcpCiAgICAgU2V0UHJvbWlzZWREYXRhKFdURjo6U3RyaW5nIHBhc3RlYm9hcmRO
YW1lLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlIGltYWdlSGFuZGxlLCB1aW50NjRfdCBp
bWFnZVNpemUsIFdURjo6U3RyaW5nIGZpbGVuYW1lLCBXVEY6OlN0cmluZyBleHRlbnNpb24sIFdU
Rjo6U3RyaW5nIHRpdGxlLCBXVEY6OlN0cmluZyB1cmwsIFdURjo6U3RyaW5nIHZpc2libGVVUkws
IFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgYXJjaGl2ZUhhbmRsZSwgdWludDY0X3QgYXJj
aGl2ZVNpemUpCiAjZW5kaWYKLSNpZiBQTEFURk9STShXSU4pICYmIEVOQUJMRShEUkFHX1NVUFBP
UlQpCi0gICAgU3RhcnREcmFnRHJvcChXZWJDb3JlOjpJbnRQb2ludCBpbWFnZVBvaW50LCBXZWJD
b3JlOjpJbnRQb2ludCBkcmFnUG9pbnQsIHVpbnQ2NF90IG9rRWZmZWN0LCBIYXNoTWFwPFVJTlQs
VmVjdG9yPFN0cmluZz4gPiBkYXRhTWFwLCB1aW50NjRfdCBmaWxlU2l6ZSwgU3RyaW5nIHBhdGhu
YW1lLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlIGZpbGVDb250ZW50SGFuZGxlLCBXZWJD
b3JlOjpJbnRTaXplIGRyYWdJbWFnZVNpemUsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUg
ZHJhZ0ltYWdlLCBib29sIGxpbmtEcmFnKQotI2VuZGlmCiAjaWYgKFBMQVRGT1JNKFFUKSB8fCBQ
TEFURk9STShHVEspKSAmJiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIFN0YXJ0RHJhZyhXZWJD
b3JlOjpEcmFnRGF0YSBkcmFnRGF0YSwgV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBk
cmFnSW1hZ2UpCiAjZW5kaWYKQEAgLTMxNywxNCArMzA1LDYgQEAgbWVzc2FnZXMgLT4gV2ViUGFn
ZVByb3h5IHsKICAgICBEaWN0YXRpb25BbHRlcm5hdGl2ZXModWludDY0X3QgZGljdGF0aW9uQ29u
dGV4dCkgLT4gKFZlY3RvcjxTdHJpbmc+IGFsdGVybmF0aXZlcykKICNlbmRpZgogCi0jaWYgUExB
VEZPUk0oV0lOKQotICAgICMgV2luZG93cyA3IEdlc3R1cmUgTWVzc2FnZXMKLSAgICBTZXRHZXN0
dXJlUmVhY2hlZFNjcm9sbGluZ0xpbWl0KGJvb2wgbGltaXRSZWFjaGVkKQotCi0gICAgIyBNaXNj
ZWxsYW5lb3VzIFdpbmRvd3MgbWVzc2FnZXMKLSAgICBTY2hlZHVsZUNoaWxkV2luZG93R2VvbWV0
cnlVcGRhdGUoV2ViS2l0OjpXaW5kb3dHZW9tZXRyeSBnZW9tZXRyeSkKLSNlbmRpZgotCiAjaWYg
UExVR0lOX0FSQ0hJVEVDVFVSRShYMTEpCiAgICAgIyBYMTEgd2luZG93ZWQgcGx1Z2luIG1lc3Nh
Z2VzCiAgICAgQ3JlYXRlUGx1Z2luQ29udGFpbmVyKCkgLT4gKHVpbnQ2NF90IHdpbmRvd0lEKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGQyODVmYzk5
NGM1Y2QwNWM4ZGJmOGU1ZWM1NDU1MTEwOTUxOTkwMjguLmFjOWJhNGY1ZDg2M2RjZGM0NjA5YWFi
OGIyMWQ3OTcxMTQ2NWRjYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmgKQEAgLTE2Myw5ICsxNjMsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVu
Y29kZXI+JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNv
bm5lY3Rpb24qKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVz
c2FnZVJlY2VpdmVyTmFtZSwgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBP
VkVSUklERTsKLSNpZiBQTEFURk9STShXSU4pCi0gICAgdmlydHVhbCBWZWN0b3I8SFdORD4gd2lu
ZG93c1RvUmVjZWl2ZVNlbnRNZXNzYWdlc1doaWxlV2FpdGluZ0ZvclN5bmNSZXBseSgpIE9WRVJS
SURFOwotI2VuZGlmCiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpRdWV1ZUNsaWVudAog
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYsIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViS2l0MlByZWZpeC5oIGIvU291cmNlL1dlYktpdDIvV2ViS2l0MlBy
ZWZpeC5oCmluZGV4IGEzMmVlMWNkZjI3NTc1NGY5ODc5YzY5MGI0NzExYzY1YmI0NDI5YzAuLjQ1
ODJlYmM2NDRhNWJhZDgxNjM2ODczMWJiOTU3MWI5NzA1NWQ5MTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDJQcmVmaXguaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyUHJl
Zml4LmgKQEAgLTU5LDcgKzU5LDcgQEAKICNkZWZpbmUgRU5BQkxFX1NIQVJFRF9XT1JLRVJfUFJP
Q0VTUyAxCiAjZW5kaWYKIAotI2VsaWYgIVBMQVRGT1JNKFdJTikKKyNlbHNlCiAjZGVmaW5lIEVO
QUJMRV9TSEFSRURfV09SS0VSX1BST0NFU1MgMQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlRnJhbWUuY3BwCmluZGV4IDU1YzI5Mjc5ZTkxNmNlM2E4Y2ZjMmVhNDQ3MGNiZTY3MWIwMGUw
Y2EuLjljMTA0OWJhMjAyNmE3MmI3YjBjZTExYzAzYzMzYWFkNTI0NjYwYzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVG
cmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZUZyYW1lLmNwcApAQCAtMjY2LDcgKzI2Niw3IEBAIFdLRGF0YVJlZiBXS0J1
bmRsZUZyYW1lQ29weVdlYkFyY2hpdmUoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZVJlZikKIAogV0tE
YXRhUmVmIFdLQnVuZGxlRnJhbWVDb3B5V2ViQXJjaGl2ZUZpbHRlcmluZ1N1YmZyYW1lcyhXS0J1
bmRsZUZyYW1lUmVmIGZyYW1lUmVmLCBXS0J1bmRsZUZyYW1lRnJhbWVGaWx0ZXJDYWxsYmFjayBm
cmFtZUZpbHRlckNhbGxiYWNrLCB2b2lkKiBjb250ZXh0KQogewotI2lmIFBMQVRGT1JNKE1BQykg
fHwgUExBVEZPUk0oV0lOKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICBSZXRhaW5QdHI8Q0ZEYXRh
UmVmPiBkYXRhID0gdG9JbXBsKGZyYW1lUmVmKS0+d2ViQXJjaGl2ZURhdGEoZnJhbWVGaWx0ZXJD
YWxsYmFjaywgY29udGV4dCk7CiAgICAgaWYgKGRhdGEpCiAgICAgICAgIHJldHVybiBXS0RhdGFD
cmVhdGUoQ0ZEYXRhR2V0Qnl0ZVB0cihkYXRhLmdldCgpKSwgQ0ZEYXRhR2V0TGVuZ3RoKGRhdGEu
Z2V0KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggZjE5MjI4NzUyNDg0N2EzOTliNjg1
ZmMzNDdiYTFmMzZhY2E0OThlYS4uODk1NjBiN2UzZWZhNzBiNzk4OTlmMjkwNjg1MDE5NTg2N2I5
M2E0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTI5MCw3ICsyOTAsNyBAQCB2b2lkIElu
amVjdGVkQnVuZGxlOjpzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKFdlYlBhZ2VHcm91
cFByb3h5KiBwYWdlR3JvdQogCiB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRQcml2YXRlQnJvd3Np
bmdFbmFibGVkKFdlYlBhZ2VHcm91cFByb3h5KiBwYWdlR3JvdXAsIGJvb2wgZW5hYmxlZCkKIHsK
LSNpZiAoUExBVEZPUk0oTUFDKSB8fCBVU0UoQ0ZORVRXT1JLKSkgJiYgIVBMQVRGT1JNKFdJTikK
KyNpZiBQTEFURk9STShNQUMpIHx8IFVTRShDRk5FVFdPUkspCiAgICAgaWYgKGVuYWJsZWQpCiAg
ICAgICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nl
c3Npb24oKTsKICAgICBlbHNlCkBAIC0zMTEsNyArMzExLDcgQEAgdm9pZCBJbmplY3RlZEJ1bmRs
ZTo6c2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQoV2ViUGFnZUdyb3VwUHJveHkqIHBhZ2VHcm91cCwg
Ym9vbAogCiB2b2lkIEluamVjdGVkQnVuZGxlOjpzd2l0Y2hOZXR3b3JrTG9hZGVyVG9OZXdUZXN0
aW5nU2Vzc2lvbigpCiB7Ci0jaWYgKFBMQVRGT1JNKE1BQykgfHwgVVNFKENGTkVUV09SSykpICYm
ICFQTEFURk9STShXSU4pCisjaWYgUExBVEZPUk0oTUFDKSB8fCBVU0UoQ0ZORVRXT1JLKQogICAg
IC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vzcyk6IERvIHRoaXMgaW4gbmV0d29yayBwcm9jZXNzLCB0
b28uCiAgICAgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UoKTsKICAgICBOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OnN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaApp
bmRleCA1YWExYWQxZmJkYzUwYTY5NmFjODY3YTlhMGM2MzdhZGIxYmIzODAxLi45ODU5MTE1N2Fj
MDFjMWY4NDNmMDZhNjE0YWE3MzgwZTBiYTcyMGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCkBAIC02
MSw4ICs2MSw2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiAjaWYgUExBVEZPUk0oTUFDKQogdHlw
ZWRlZiBOU0J1bmRsZSAqUGxhdGZvcm1CdW5kbGU7Ci0jZWxpZiBQTEFURk9STShXSU4pCi10eXBl
ZGVmIEhNT0RVTEUgUGxhdGZvcm1CdW5kbGU7CiAjZWxpZiBQTEFURk9STShRVCkKIHR5cGVkZWYg
UUxpYnJhcnkgUGxhdGZvcm1CdW5kbGU7CiAjZWxpZiBQTEFURk9STShHVEspCkBAIC05NywxMCAr
OTUsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbml0aWFsaXplQ2xpZW50KFdLQnVuZGxlQ2xpZW50
Kik7CiAgICAgdm9pZCBwb3N0TWVzc2FnZShjb25zdCBTdHJpbmcmLCBBUElPYmplY3QqKTsKICAg
ICB2b2lkIHBvc3RTeW5jaHJvbm91c01lc3NhZ2UoY29uc3QgU3RyaW5nJiwgQVBJT2JqZWN0Kiwg
UmVmUHRyPEFQSU9iamVjdD4mIHJldHVybkRhdGEpOwotI2lmIFBMQVRGT1JNKFdJTikKLSAgICB2
b2lkIHNldEhvc3RBbGxvd3NBbnlIVFRQU0NlcnRpZmljYXRlKGNvbnN0IFN0cmluZyYpOwotICAg
IHZvaWQgc2V0Q2xpZW50Q2VydGlmaWNhdGUoY29uc3QgU3RyaW5nJiBob3N0LCBjb25zdCBTdHJp
bmcmIGNlcnRpZmljYXRlU3lzdGVtU3RvcmVOYW1lLCBjb25zdCBXZWJDZXJ0aWZpY2F0ZUluZm8q
KTsKLSNlbmRpZgogCiAgICAgV2ViQ29ubmVjdGlvbiogd2ViQ29ubmVjdGlvblRvVUlQcm9jZXNz
KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwCmluZGV4IDg2
MDJlM2FkOTY0NDk5MTU5ZWQ0NGIzNTJlYTk4OWZjNzE4ZjNiZTQuLmI0OTZjM2IxZWU5MWRmMjM5
NmVkMzFhYzBhMWUyMzgxODMzZGIzNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1
bmNzLmNwcApAQCAtNTI0LDE1ICs1MjQsNiBAQCBzdGF0aWMgTlBFcnJvciBOUE5fR2V0VmFsdWUo
TlBQIG5wcCwgTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQgKnZhbHVlKQogICAgICAgICAgICAg
KihOUEJvb2wqKXZhbHVlID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwogI2VuZGlmCi0jZWxp
ZiBQTEFURk9STShXSU4pCi0gICAgICAgY2FzZSBOUE5WbmV0c2NhcGVXaW5kb3c6IHsKLSAgICAg
ICAgICAgUmVmUHRyPE5ldHNjYXBlUGx1Z2luPiBwbHVnaW4gPSBOZXRzY2FwZVBsdWdpbjo6ZnJv
bU5QUChucHApOwotICAgICAgICAgICAqcmVpbnRlcnByZXRfY2FzdDxIV05EKj4odmFsdWUpID0g
cGx1Z2luLT5jb250YWluaW5nV2luZG93KCk7Ci0gICAgICAgICAgIGJyZWFrOwotICAgICAgIH0K
LSAgICAgICBjYXNlIE5QTlZTdXBwb3J0c1dpbmRvd2xlc3M6Ci0gICAgICAgICAgICooTlBCb29s
Kil2YWx1ZSA9IHRydWU7Ci0gICAgICAgICAgIGJyZWFrOwogI2VsaWYgUExVR0lOX0FSQ0hJVEVD
VFVSRShYMTEpCiAgICAgICAgY2FzZSBOUE5WeERpc3BsYXk6IHsKICAgICAgICAgICAgaWYgKCFu
cHApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvTmV0c2NhcGVQbHVnaW4uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCmluZGV4IDRhNzY3MGM3ZTA0ZjYwY2RkOTkwZGY5OWJh
ODhlZTM5YzIyNjUwNzcuLmY4ZmY5Mjc3OTQ0ZjQ3MThjMWFkMjc2OTI5YTVjY2QyZWQxZTIzODQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9O
ZXRzY2FwZVBsdWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCkBAIC04Miw4ICs4Miw2IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgdW5zaWduZWQgYnV0dG9uU3RhdGUoKTsKICNlbmRpZgogCi0jZWxpZiBQTEFURk9STShX
SU4pCi0gICAgSFdORCBjb250YWluaW5nV2luZG93KCk7CiAjZW5kaWYKIAogICAgIFBsdWdpblF1
aXJrcyBxdWlya3MoKSBjb25zdCB7IHJldHVybiBtX3BsdWdpbk1vZHVsZS0+cGx1Z2luUXVpcmtz
KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
Q29udHJvbGxlci5oCmluZGV4IDY2ODJiYTAyMDc4NzkyZjg3MzgzZTQ2Y2IxZmQ3NDZhNmE0Y2Y0
MzIuLmY2ZWZlZWYxYzFmNzhjYmYxODM0NDI1ODA4OGRlZmIwYWUzOGM4NzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9sbGVyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkNvbnRyb2xsZXIuaApA
QCAtNDUsMTAgKzQ1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAotI2lmIFBMQVRGT1JNKFdJTikKLXN0cnVjdCBXaW5kb3dHZW9tZXRyeTsKLSNlbmRpZgot
CiBjbGFzcyBQbHVnaW5Db250cm9sbGVyIHsKIHB1YmxpYzoKICAgICAvLyBSZXR1cm5zIGZhbHNl
IGlmIHRoZSBwbHVnaW4gaGFzIGV4cGxpY2l0bHkgYmVlbiBoaWRkZW4uIFJldHVybnMgdHJ1ZSBv
dGhlcndpc2UgKGV2ZW4gaWYgdGhlIHBsdWdpbiBpcyBjdXJyZW50bHkgb2JzY3VyZWQgZnJvbSB2
aWV3IG9uIHNjcmVlbi4pCkBAIC0xMDEsMTUgKzk3LDYgQEAgcHVibGljOgogICAgIC8vIFRlbGxz
IHRoZSBjb250cm9sbGVyIHRoYXQgd2UncmUgYWJvdXQgdG8gZGlzcGF0Y2ggYW4gZXZlbnQgdG8g
dGhlIHBsdWctaW4uCiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZW5kRXZlbnRUb1BsdWdpbigpID0g
MDsKICAgICAKLSNpZiBQTEFURk9STShXSU4pCi0gICAgLy8gVGhlIHdpbmRvdyB0byB1c2UgYXMg
dGhlIHBhcmVudCBvZiB0aGUgcGx1Z2luJ3Mgd2luZG93LgotICAgIHZpcnR1YWwgSFdORCBuYXRp
dmVQYXJlbnRXaW5kb3coKSA9IDA7Ci0KLSAgICAvLyBUZWxscyB0aGUgY29udHJvbGxlciB0aGF0
IHRoZSBnaXZlbiBIV05EIG5lZWRzIHRvIGJlIHBvc2l0aW9uZWQgYW5kIGNsaXBwZWQgdG8gdGhl
IGdpdmVuCi0gICAgLy8gY29vcmRpbmF0ZXMgc29tZXRpbWUgc29vbi4gVGhlIGNvbnRyb2xsZXIg
d2lsbCBkZWNpZGUgZXhhY3RseSB3aGVuIHRoaXMgd2lsbCBoYXBwZW4uCi0gICAgdmlydHVhbCB2
b2lkIHNjaGVkdWxlV2luZG93ZWRQbHVnaW5HZW9tZXRyeVVwZGF0ZShjb25zdCBXaW5kb3dHZW9t
ZXRyeSYpID0gMDsKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIC8vIFRlbGxzIHRo
ZSBjb250cm9sbGVyIHRoYXQgdGhlIHBsdWctaW4gZm9jdXMgb3Igd2luZG93IGZvY3VzIGRpZCBj
aGFuZ2UuCiAgICAgdmlydHVhbCB2b2lkIHBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQo
Ym9vbCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blZpZXcuY3BwCmluZGV4IDcwYWFiNDBiODc1MmRmYTc3OGYzNmM1YTcyOTE1OWI5OTY2NTg1MTYu
LjZiZTg5Nzc5NmZmZTY0NGIwYzI4ZDU5NTVlZjAxN2EzYTg4ZDIzYjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTEzNTIsMTgg
KzEzNTIsNiBAQCB2b2lkIFBsdWdpblZpZXc6OndpbGxTZW5kRXZlbnRUb1BsdWdpbigpCiAgICAg
bV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0b3BSZXNwb25zaXZlbmVz
c1RpbWVyKCkpOwogfQogCi0jaWYgUExBVEZPUk0oV0lOKQotSFdORCBQbHVnaW5WaWV3OjpuYXRp
dmVQYXJlbnRXaW5kb3coKQotewotICAgIHJldHVybiBtX3dlYlBhZ2UtPm5hdGl2ZVdpbmRvdygp
OwotfQotCi12b2lkIFBsdWdpblZpZXc6OnNjaGVkdWxlV2luZG93ZWRQbHVnaW5HZW9tZXRyeVVw
ZGF0ZShjb25zdCBXaW5kb3dHZW9tZXRyeSYgZ2VvbWV0cnkpCi17Ci0gICAgbV93ZWJQYWdlLT5k
cmF3aW5nQXJlYSgpLT5zY2hlZHVsZUNoaWxkV2luZG93R2VvbWV0cnlVcGRhdGUoZ2VvbWV0cnkp
OwotfQotI2VuZGlmCi0KICNpZiBQTEFURk9STShNQUMpCiB2b2lkIFBsdWdpblZpZXc6OnBsdWdp
bkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQoYm9vbCBwbHVnaW5IYXNGb2N1c0FuZFdpbmRvd0hh
c0ZvY3VzKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5W
aWV3LmgKaW5kZXggN2UwN2E3YjQ3MzU0OTk5NGQ4ZjMzYzJmYTI0NjJlZmE5MDBjZGNkNS4uYWQ0
YTRjYjU1MWJmNGVkMzMzODQyNjE1ZDQyYjBiZDAwODk3ZDA3ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCkBAIC0xNzgsMTAgKzE3OCw2IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJs
ZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcGx1Z2luUHJvY2Vzc0NyYXNoZWQoKTsKICAgICB2aXJ0
dWFsIHZvaWQgd2lsbFNlbmRFdmVudFRvUGx1Z2luKCk7Ci0jaWYgUExBVEZPUk0oV0lOKQotICAg
IHZpcnR1YWwgSFdORCBuYXRpdmVQYXJlbnRXaW5kb3coKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2No
ZWR1bGVXaW5kb3dlZFBsdWdpbkdlb21ldHJ5VXBkYXRlKGNvbnN0IFdpbmRvd0dlb21ldHJ5Jik7
Ci0jZW5kaWYKICNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIHBsdWdpbkZvY3Vz
T3JXaW5kb3dGb2N1c0NoYW5nZWQoYm9vbCBwbHVnaW5IYXNGb2N1c0FuZFdpbmRvd0hhc0ZvY3Vz
KTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dFN0YXRlKFBsdWdpbkNvbXBs
ZXhUZXh0SW5wdXRTdGF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1Jlc291cmNlQ2FjaGUvY2YvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJDRk5ldC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUvY2YvV2ViUmVzb3VyY2VDYWNoZU1h
bmFnZXJDRk5ldC5jcHAKaW5kZXggODYzNzJjZjllOGZjMDEzMzNkM2NhZjViZjgwZmY2ZWQ0M2Jk
NGJkZC4uZDI4NjIyNGVkYmU0M2NkNzhkYzA0NzkxNjI5NzQwODExMWYxYWJmNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL2NmL1dlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVz
b3VyY2VDYWNoZS9jZi9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlckNGTmV0LmNwcApAQCAtMjgsMjEg
KzI4LDEzIEBACiAKICNpZiBVU0UoQ0ZVUkxDQUNIRSkKIAotI2lmIFBMQVRGT1JNKFdJTikKLSNp
bmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+Ci0j
ZWxpZiBQTEFURk9STShNQUMpCisjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIldlYktpdFN5
c3RlbUludGVyZmFjZS5oIgogI2VuZGlmCiAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLSNpZiBQ
TEFURk9STShXSU4pCi0vLyBUaGUgV2luZG93cyB2ZXJzaW9uIG9mIFdLU0kgZGVmaW5lcyB0aGVz
ZSBmdW5jdGlvbnMgYXMgY2FwaXRhbGl6ZWQsIHdoaWxlIHRoZSBNYWMgdmVyc2lvbiBkZWZpbmVz
IHRoZW0gYXMgbG93ZXIgY2FzZS4KLXN0YXRpYyBpbmxpbmUgQ0ZBcnJheVJlZiBXS0NGVVJMQ2Fj
aGVDb3B5QWxsSG9zdE5hbWVzSW5QZXJzaXN0ZW50U3RvcmUoKSB7IHJldHVybiB3a0NGVVJMQ2Fj
aGVDb3B5QWxsSG9zdE5hbWVzSW5QZXJzaXN0ZW50U3RvcmUoKTsgfQotc3RhdGljIGlubGluZSB2
b2lkIFdLQ0ZVUkxDYWNoZURlbGV0ZUhvc3ROYW1lc0luUGVyc2lzdGVudFN0b3JlKENGQXJyYXlS
ZWYgaG9zdE5hbWVzKSB7IHJldHVybiB3a0NGVVJMQ2FjaGVEZWxldGVIb3N0TmFtZXNJblBlcnNp
c3RlbnRTdG9yZShob3N0TmFtZXMpOyB9Ci0jZW5kaWYKLQogUmV0YWluUHRyPENGQXJyYXlSZWY+
IFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyOjpjZlVSTENhY2hlSG9zdE5hbWVzKCkKIHsKICAgICBy
ZXR1cm4gUmV0YWluUHRyPENGQXJyYXlSZWY+KEFkb3B0Q0YsIFdLQ0ZVUkxDYWNoZUNvcHlBbGxI
b3N0TmFtZXNJblBlcnNpc3RlbnRTdG9yZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRl
eCBiMDE5Yjk1ODQyZTdkN2FmZjMxNDJlOGNlMWE4NmNiMWIzMGZkOGVlLi5mZTk0MzhhYzE5MTFj
YzJjOGRjYjVhYTQzNjViZTFjYThhNGFlYjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBA
IC02NzYsNyArNjc2LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmZvcm1TdGF0ZURpZENoYW5n
ZShjb25zdCBOb2RlKikKIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5n
RGlyZWN0aW9uSXNOYXR1cmFsKCkKIHsKLSNpZiBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKEVG
TCkKKyNpZiBQTEFURk9STShFRkwpCiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQogICAgIHJldHVy
biBmYWxzZTsKQEAgLTY4NSwxMSArNjg1LDcgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNlbGVj
dEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6
OnNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKQogewotI2lm
IFBMQVRGT1JNKFdJTikKLSAgICByZXR1cm4gZmFsc2U7Ci0jZWxzZQogICAgIHJldHVybiB0cnVl
OwotI2VuZGlmCiB9CiAKIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpoYXNPcGVuZWRQb3B1cCgpIGNv
bnN0CkBAIC03MzUsMTUgKzczMSw2IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzY2hlZHVsZUNv
bXBvc2l0aW5nTGF5ZXJGbHVzaCgpCiAKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oV0lOKSAmJiBV
U0UoQVZGT1VOREFUSU9OKQotV2ViQ29yZTo6R3JhcGhpY3NEZXZpY2VBZGFwdGVyKiBXZWJDaHJv
bWVDbGllbnQ6OmdyYXBoaWNzRGV2aWNlQWRhcHRlcigpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX3Bh
Z2UtPmRyYXdpbmdBcmVhKCkpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBtX3BhZ2Ut
PmRyYXdpbmdBcmVhKCktPmxheWVyVHJlZUhvc3QoKS0+Z3JhcGhpY3NEZXZpY2VBZGFwdGVyKCk7
Ci19Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiB2b2lkIFdlYkNocm9tZUNs
aWVudDo6bmVlZFRvdWNoRXZlbnRzKGJvb2wgbmVlZFRvdWNoRXZlbnRzKQogewpAQCAtNzUxLDEy
ICs3MzgsNiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6bmVlZFRvdWNoRXZlbnRzKGJvb2wgbmVl
ZFRvdWNoRXZlbnRzKQogfQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShXSU4pCi12b2lkIFdlYkNo
cm9tZUNsaWVudDo6c2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpCi17Ci19Ci0jZW5k
aWYKLQogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIGJvb2wgV2ViQ2hyb21lQ2xpZW50Ojpz
dXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQqLCBib29s
IHdpdGhLZXlib2FyZCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGIxOWI1ZmVmYWM0YTgx
OTVjZjQ3YmY5NDcwY2VhNzM3ODcyY2FjMDIuLjRlYTg3ZTZhMWY0ODJmODhmNjVkY2JlOTdjYzY2
NjM5M2ExODUyM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTk0LDE4ICsxOTQsMTAgQEAg
cHJpdmF0ZToKICAgICB9CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKEFWRk9V
TkRBVElPTikKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkdyYXBoaWNzRGV2aWNlQWRhcHRlciogZ3Jh
cGhpY3NEZXZpY2VBZGFwdGVyKCkgY29uc3QgT1ZFUlJJREU7Ci0jZW5kaWYKLQogI2lmIEVOQUJM
RShUT1VDSF9FVkVOVFMpCiAgICAgdmlydHVhbCB2b2lkIG5lZWRUb3VjaEV2ZW50cyhib29sKSBP
VkVSUklERTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oV0lOKQotICAgIHZpcnR1YWwgdm9pZCBz
ZXRMYXN0U2V0Q3Vyc29yVG9DdXJyZW50Q3Vyc29yKCkgT1ZFUlJJREU7Ci0jZW5kaWYKLQogI2lm
IEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGdWxsU2Ny
ZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50KiwgYm9vbCB3aXRoS2V5Ym9hcmQp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdl
YkNvcmU6OkVsZW1lbnQqKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwCmluZGV4IGQ1NmEw
MzAwNGMxNWQ1M2EzZTAzNzkwYzhmYjRjOThhMmU0MDBlZWQuLjliNmNkODVmM2NkMDhhYjk0MzY3
ZDAyNzMzOGJhNjk5OThmMWRmNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcApAQCAtNTYsNyArNTYs
NyBAQCBEcmFnU291cmNlQWN0aW9uIFdlYkRyYWdDbGllbnQ6OmRyYWdTb3VyY2VBY3Rpb25NYXNr
Rm9yUG9pbnQoY29uc3QgSW50UG9pbnQmIC8qdwogICAgIHJldHVybiBEcmFnU291cmNlQWN0aW9u
QW55OwogfQogCi0jaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKFdJTikgJiYgIVBMQVRG
T1JNKFFUKSAmJiAhUExBVEZPUk0oR1RLKQorI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9S
TShRVCkgJiYgIVBMQVRGT1JNKEdUSykKIHZvaWQgV2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKERy
YWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQmLCBjb25zdCBJbnRQb2ludCYsIENsaXBib2FyZCos
IEZyYW1lKiwgYm9vbCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAppbmRleCAxZjcyNzA4
NjA5NzdkN2Y0OWQ5ZDVlODUzMGI3MTBmYmQ0ZmY2YTMxLi5jNmNjOWMyNjVhYWQzNzFhY2Q5NDY1
NGI4NTM1ZjIxMWE4NDU0Y2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC0xOTMsMTUg
KzE5Myw3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9u
KEZyYW1lKiBmcmFtZSkKIAogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpFZGl0b3JTdGF0ZUNoYW5nZWQoc3RhdGUpKTsKIAotI2lmIFBMQVRGT1JNKFdJTikKLSAgICAv
LyBGSVhNRTogVGhpcyBzaG91bGQgYWxzbyBnbyBpbnRvIHRoZSBzZWxlY3Rpb24gc3RhdGUuCi0g
ICAgaWYgKCFmcmFtZS0+ZWRpdG9yKCktPmhhc0NvbXBvc2l0aW9uKCkgfHwgZnJhbWUtPmVkaXRv
cigpLT5pZ25vcmVDb21wb3NpdGlvblNlbGVjdGlvbkNoYW5nZSgpKQotICAgICAgICByZXR1cm47
Ci0KLSAgICB1bnNpZ25lZCBzdGFydDsKLSAgICB1bnNpZ25lZCBlbmQ7Ci0gICAgbV9wYWdlLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENoYW5nZUNvbXBvc2l0aW9uU2VsZWN0aW9u
KGZyYW1lLT5lZGl0b3IoKS0+Z2V0Q29tcG9zaXRpb25TZWxlY3Rpb24oc3RhcnQsIGVuZCkpKTsK
LSNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oUVQpCisjaWYgUExBVEZPUk0oR1RLKSB8
fCBQTEFURk9STShRVCkKICAgICB1cGRhdGVHbG9iYWxTZWxlY3Rpb24oZnJhbWUpOwogI2VuZGlm
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDI5ZThjNGY5MzMyMmFl
NmFmYjVhYjc4NDViZjcyZjI4OGQ1NDRlYjUuLjllMDRhZDAzMjI4NjliMGVjZGYyM2I1YTllOTJi
MmUxOTg3Mzg5YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0xNTY1
LDE3ICsxNTY1LDYgQEAgTlNDYWNoZWRVUkxSZXNwb25zZSogV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OndpbGxDYWNoZVJlc3BvbnNlKERvY3VtZW50TG9hZGVyKiwgdW4KIAogI2VuZGlmIC8vIFBMQVRG
T1JNKE1BQykKIAotI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKENGTkVUV09SSykKLWJvb2wgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZENhY2hlUmVzcG9uc2UoRG9jdW1lbnRMb2FkZXIqLCB1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCB1
bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsb25nIGxvbmcgbGVuZ3RoKQotewotICAgIFdl
YlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7Ci0gICAgaWYgKCF3ZWJQYWdlKQotICAg
ICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIHJldHVybiB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZVJl
c291cmNlTG9hZENsaWVudCgpLnNob3VsZENhY2hlUmVzcG9uc2Uod2ViUGFnZSwgbV9mcmFtZSwg
aWRlbnRpZmllcik7Ci19Ci0jZW5kaWYgLy8gUExBVEZPUk0oV0lOKSAmJiBVU0UoQ0ZORVRXT1JL
KQotCiAjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hJbnRlbnQoUGFzc1JlZlB0cjxJbnRlbnRSZXF1ZXN0PiByZXF1ZXN0KQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGUxZTE1NTMyOTQyYzFkZWJhOTliYWFlOGY3
ZGY0ZjY2MmYwMDJlNTkuLjFjYjlmNjBhYzVmZDM3Y2Q4NjYzMWUwNzg3ODNhOTk5YWRiMWIyYjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTIxOSwxMCArMjE5LDYgQEAgcHJp
dmF0ZToKICAgICAKICAgICB2aXJ0dWFsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHdpbGxDYWNoZVJl
c3BvbnNlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBOU0NhY2hlZFVSTFJlc3BvbnNlKikgY29uc3QgT1ZFUlJJREU7CiAjZW5kaWYKLSNpZiBQTEFU
Rk9STShXSU4pICYmIFVTRShDRk5FVFdPUkspCi0gICAgLy8gRklYTUU6IFdpbmRvd3Mgc2hvdWxk
IHVzZSB3aWxsQ2FjaGVSZXNwb25zZSAtIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTcyNTc+LgotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDYWNoZVJlc3BvbnNlKFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5z
aWduZWQgbG9uZyBsb25nIGxlbmd0aCkgT1ZFUlJJREU7Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShX
RUJfSU5URU5UUykKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hJbnRlbnQoUGFzc1JlZlB0cjxX
ZWJDb3JlOjpJbnRlbnRSZXF1ZXN0PikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5jcHAKaW5kZXggMGZmYmEwYzI0MmFhNDFkNmUwZGYzMWFjMzgzZTM1NTFkNzVhMWQ0
ZS4uOWRjNDhjNTBiNGI0NTE3ODg3ZDMyZTZlZDY2YmJmZTM4NTQ4NzE4MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtNTAsMTEgKzUwLDYgQEAKICNpbmNsdWRlICJX
ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oV0lOKSAm
JiBVU0UoQ0ZORVRXT1JLKQotI2luY2x1ZGUgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIK
LSNpbmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+
Ci0jZW5kaWYKLQogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJQb3B1cE1lbnUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQb3B1cE1lbnUuY3BwCmluZGV4IDRjMzA5ZGNhZmExNmFjNzRlMzBhMzFlZGIzN2Q1NjBl
NzkyZTkwOGYuLmQ0YWY5MmZjMjAxYjA5M2RjMzY1ZjEwMTM5NTY0NzA0NDY5ZmFmMTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBN
ZW51LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlBvcHVwTWVudS5jcHAKQEAgLTEzMSwxMyArMTMxLDYgQEAgdm9pZCBXZWJQb3B1cE1lbnU6Omhp
ZGUoKQogCiB2b2lkIFdlYlBvcHVwTWVudTo6dXBkYXRlRnJvbUVsZW1lbnQoKQogewotI2lmIFBM
QVRGT1JNKFdJTikKLSAgICBpZiAoIW1fcGFnZSB8fCAhbV9wb3B1cENsaWVudCkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgaW50IHNlbGVjdGVkSW5kZXggPSBtX3BvcHVwQ2xpZW50LT5zZWxlY3Rl
ZEluZGV4KCk7Ci0gICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldFBvcHVwTWVudVNlbGVjdGVkSW5kZXgoc2VsZWN0ZWRJ
bmRleCksIG1fcGFnZS0+cGFnZUlEKCkpOwotI2VuZGlmCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJLaXRNYWluLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViS2l0TWFpbi5jcHAKaW5kZXggMGQyYTBl
MTkzYjZjNTI5NDMxOGI1N2NiZjFiNjI0ZGJiODExZjM5ZC4uODIwZDg0MDRhNmEyYmU3NjdlNDRi
MTg3YjBkNjVjODcxZGI4MTA3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJLaXRNYWluLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYktpdE1h
aW4uY3BwCkBAIC00MSw4ICs0MSw2IEBACiAKICNpZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSA8
b2JqYy9vYmpjLWF1dG8uaD4KLSNlbGlmIFBMQVRGT1JNKFdJTikKLSNpbmNsdWRlIDxzaGx3YXBp
Lmg+CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKQEAgLTg4LDExNyArODYsNCBA
QCBpbnQgV2ViS2l0TWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgcmV0dXJuIFdlYktp
dE1haW4oY29tbWFuZExpbmUpOwogfQogCi0jZWxpZiBQTEFURk9STShXSU4pCi0KLXN0YXRpYyB2
b2lkIGVuYWJsZURhdGFFeGVjdXRpb25QcmV2ZW50aW9uKCkKLXsKLSAgICAvLyBFbmFibGUgRGF0
YSBFeGVjdXRpb24gcHJldmVudGlvbiBhdCBydW50aW1lIHJhdGhlciB0aGFuIHZpYSAvTlhDT01Q
QVQKLSAgICAvLyBodHRwOi8vYmxvZ3MubXNkbi5jb20vbWljaGFlbF9ob3dhcmQvYXJjaGl2ZS8y
MDA4LzAxLzI5L25ldy1ueC1hcGlzLWFkZGVkLXRvLXdpbmRvd3MtdmlzdGEtc3AxLXdpbmRvd3Mt
eHAtc3AzLWFuZC13aW5kb3dzLXNlcnZlci0yMDA4LmFzcHgKLQotICAgIGNvbnN0IERXT1JEIGVu
YWJsZURFUCA9IDB4MDAwMDAwMDE7Ci0KLSAgICBITU9EVUxFIGhNb2QgPSA6OkdldE1vZHVsZUhh
bmRsZVcoTCJLZXJuZWwzMi5kbGwiKTsKLSAgICBpZiAoIWhNb2QpCi0gICAgICAgIHJldHVybjsK
LQotICAgIHR5cGVkZWYgQk9PTCAoV0lOQVBJICpQU0VUREVQKShEV09SRCk7Ci0KLSAgICBQU0VU
REVQIHByb2NTZXQgPSByZWludGVycHJldF9jYXN0PFBTRVRERVA+KDo6R2V0UHJvY0FkZHJlc3Mo
aE1vZCwgIlNldFByb2Nlc3NERVBQb2xpY3kiKSk7Ci0gICAgaWYgKCFwcm9jU2V0KQotICAgICAg
ICByZXR1cm47Ci0KLSAgICAvLyBFbmFibGUgRGF0YSBFeGVjdXRpb24gUHJldmVudGlvbiwgYnV0
IGFsbG93IEFUTCB0aHVua3MgKGZvciBjb21wYXRpYmlsaXR5IHdpdGggdGhlIHZlcnNpb24gb2Yg
QVRMIHRoYXQgc2hpcHMgd2l0aCB0aGUgUGxhdGZvcm0gU0RLKS4KLSAgICBwcm9jU2V0KGVuYWJs
ZURFUCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGVuYWJsZVRlcm1pbmF0aW9uT25IZWFwQ29ycnVwdGlv
bigpCi17Ci0gICAgLy8gRW5hYmxlIHRlcm1pbmF0aW9uIG9uIGhlYXAgY29ycnVwdGlvbiBvbiBP
U2VzIHRoYXQgc3VwcG9ydCBpdCAoVmlzdGEgYW5kIFhQU1AzKS4KLSAgICAvLyBodHRwOi8vbXNk
bi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvYWEzNjY3MDUoVlMuODUpLmFzcHgKLQotICAg
IGNvbnN0IEhFQVBfSU5GT1JNQVRJT05fQ0xBU1MgaGVhcEVuYWJsZVRlcm1pbmF0aW9uT25Db3Jy
dXB0aW9uID0gc3RhdGljX2Nhc3Q8SEVBUF9JTkZPUk1BVElPTl9DTEFTUz4oMSk7Ci0KLSAgICBI
TU9EVUxFIGhNb2QgPSA6OkdldE1vZHVsZUhhbmRsZVcoTCJrZXJuZWwzMi5kbGwiKTsKLSAgICBp
ZiAoIWhNb2QpCi0gICAgICAgIHJldHVybjsKLQotICAgIHR5cGVkZWYgQk9PTCAoV0lOQVBJKkhT
SSkoSEFORExFLCBIRUFQX0lORk9STUFUSU9OX0NMQVNTLCBQVk9JRCwgU0laRV9UKTsKLSAgICBI
U0kgaGVhcFNldEluZm9ybWF0aW9uID0gcmVpbnRlcnByZXRfY2FzdDxIU0k+KDo6R2V0UHJvY0Fk
ZHJlc3MoaE1vZCwgIkhlYXBTZXRJbmZvcm1hdGlvbiIpKTsKLSAgICBpZiAoIWhlYXBTZXRJbmZv
cm1hdGlvbikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaGVhcFNldEluZm9ybWF0aW9uKDAsIGhl
YXBFbmFibGVUZXJtaW5hdGlvbk9uQ29ycnVwdGlvbiwgMCwgMCk7Ci19Ci0KLXN0YXRpYyB2b2lk
IGRpc2FibGVVc2VyTW9kZUNhbGxiYWNrRXhjZXB0aW9uRmlsdGVyKCkKLXsKLSAgICBjb25zdCBE
V09SRCBQUk9DRVNTX0NBTExCQUNLX0ZJTFRFUl9FTkFCTEVEID0gMHgxOwotICAgIHR5cGVkZWYg
Qk9PTCAoTlRBUEkgKmdldFByb2Nlc3NVc2VyTW9kZUV4Y2VwdGlvblBvbGljeVB0cikoTFBEV09S
RCBscEZsYWdzKTsKLSAgICB0eXBlZGVmIEJPT0wgKE5UQVBJICpzZXRQcm9jZXNzVXNlck1vZGVF
eGNlcHRpb25Qb2xpY3lQdHIpKERXT1JEIGR3RmxhZ3MpOwotCi0gICAgSE1PRFVMRSBsaWIgPSBM
b2FkTGlicmFyeShURVhUKCJrZXJuZWwzMi5kbGwiKSk7Ci0gICAgQVNTRVJUKGxpYik7Ci0KLSAg
ICBnZXRQcm9jZXNzVXNlck1vZGVFeGNlcHRpb25Qb2xpY3lQdHIgZ2V0UG9saWN5UHRyID0gKGdl
dFByb2Nlc3NVc2VyTW9kZUV4Y2VwdGlvblBvbGljeVB0cilHZXRQcm9jQWRkcmVzcyhsaWIsICJH
ZXRQcm9jZXNzVXNlck1vZGVFeGNlcHRpb25Qb2xpY3kiKTsKLSAgICBzZXRQcm9jZXNzVXNlck1v
ZGVFeGNlcHRpb25Qb2xpY3lQdHIgc2V0UG9saWN5UHRyID0gKHNldFByb2Nlc3NVc2VyTW9kZUV4
Y2VwdGlvblBvbGljeVB0cilHZXRQcm9jQWRkcmVzcyhsaWIsICJTZXRQcm9jZXNzVXNlck1vZGVF
eGNlcHRpb25Qb2xpY3kiKTsKLQotICAgIERXT1JEIGR3RmxhZ3M7Ci0gICAgaWYgKCFnZXRQb2xp
Y3lQdHIgfHwgIXNldFBvbGljeVB0ciB8fCAhZ2V0UG9saWN5UHRyKCZkd0ZsYWdzKSkgewotICAg
ICAgICBGcmVlTGlicmFyeShsaWIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8g
SWYgdGhpcyBmbGFnIGlzbid0IGNsZWFyZWQsIGV4Y2VwdGlvbnMgdGhhdCBhcmUgdGhyb3duIHdo
ZW4gcnVubmluZyBpbiBhIDY0LWJpdCB2ZXJzaW9uIG9mCi0gICAgLy8gV2luZG93cyBhcmUgaWdu
b3JlZCwgcG9zc2libHkgbGVhdmluZyBTYWZhcmkgaW4gYW4gaW5jb25zaXN0ZW50IHN0YXRlIHRo
YXQgY291bGQgY2F1c2UgYW4gCi0gICAgLy8gdW5yZWxhdGVkIGV4Y2VwdGlvbiB0byBiZSB0aHJv
d24uCi0gICAgLy8gaHR0cDovL3N1cHBvcnQubWljcm9zb2Z0LmNvbS9rYi85NzYwMzgKLSAgICAv
LyBodHRwOi8vYmxvZy5wYXVsYmV0dHMub3JnL2luZGV4LnBocC8yMDEwLzA3LzIwL3RoZS1jYXNl
LW9mLXRoZS1kaXNhcHBlYXJpbmctb25sb2FkLWV4Y2VwdGlvbi11c2VyLW1vZGUtY2FsbGJhY2st
ZXhjZXB0aW9ucy1pbi14NjQvCi0gICAgc2V0UG9saWN5UHRyKGR3RmxhZ3MgJiB+UFJPQ0VTU19D
QUxMQkFDS19GSUxURVJfRU5BQkxFRCk7Ci0KLSAgICBGcmVlTGlicmFyeShsaWIpOwotfQotCi0j
aWZuZGVmIE5ERUJVRwotc3RhdGljIHZvaWQgcGF1c2VQcm9jZXNzSWZOZWVkZWQoSE1PRFVMRSBt
b2R1bGUpCi17Ci0gICAgLy8gU2hvdyBhbiBhbGVydCB3aGVuIEN0cmwtQWx0LVNoaWZ0IGlzIGhl
bGQgZG93biBkdXJpbmcgbGF1bmNoIHRvIGdpdmUgdGhlIHVzZXIgdGltZSB0byBhdHRhY2ggYQot
ICAgIC8vIGRlYnVnZ2VyLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZGVidWdnaW5nIHByb2JsZW1zIHRo
YXQgaGFwcGVuIGVhcmx5IGluIHRoZSB3ZWIgcHJvY2VzcydzIGxpZmV0aW1lLgotICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0IGhpZ2hCaXRNYXNrU2hvcnQgPSAweDgwMDA7Ci0gICAgaWYgKCFnZXRl
bnYoIldFQktJVDJfUEFVU0VfV0VCX1BST0NFU1NfT05fTEFVTkNIIikgJiYgISgoOjpHZXRLZXlT
dGF0ZShWS19DT05UUk9MKSAmIGhpZ2hCaXRNYXNrU2hvcnQpICYmICg6OkdldEtleVN0YXRlKFZL
X01FTlUpICYgaGlnaEJpdE1hc2tTaG9ydCkgJiYgKDo6R2V0S2V5U3RhdGUoVktfU0hJRlQpICYg
aGlnaEJpdE1hc2tTaG9ydCkpKQotICAgICAgICByZXR1cm47Ci0KLSAgICB3Y2hhcl90IHBhdGhb
TUFYX1BBVEhdOwotICAgIERXT1JEIGxlbmd0aCA9IDo6R2V0TW9kdWxlRmlsZU5hbWVXKG1vZHVs
ZSwgcGF0aCwgV1RGX0FSUkFZX0xFTkdUSChwYXRoKSk7Ci0gICAgaWYgKCFsZW5ndGggfHwgbGVu
Z3RoID09IFdURl9BUlJBWV9MRU5HVEgocGF0aCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHdj
aGFyX3QqIHN0YXJ0T2ZGaWxlbmFtZSA9IDo6UGF0aEZpbmRGaWxlTmFtZVcocGF0aCk7Ci0gICAg
U3RyaW5nIGZpbGVuYW1lU3RyaW5nKHN0YXJ0T2ZGaWxlbmFtZSwgbGVuZ3RoIC0gKHN0YXJ0T2ZG
aWxlbmFtZSAtIHBhdGgpKTsKLQotICAgIFN0cmluZyBtZXNzYWdlID0gTCJZb3UgY2FuIG5vdyBh
dHRhY2ggYSBkZWJ1Z2dlciB0byAiICsgZmlsZW5hbWVTdHJpbmcgKyBMIi4gWW91IGNhbiB1c2Ug
dGhlIHNhbWUgZGVidWdnZXIgZm9yICIgKyBmaWxlbmFtZVN0cmluZyArIEwiIGFuZCB0aGUgVUkg
cHJvY2VzcywgaWYgZGVzaXJlZC4gQ2xpY2sgT0sgd2hlbiB5b3UgYXJlIHJlYWR5IGZvciAiICsg
ZmlsZW5hbWVTdHJpbmcgKyBMIiB0byBjb250aW51ZS4iOwotICAgIFN0cmluZyB0aXRsZSA9IGZp
bGVuYW1lU3RyaW5nICsgTCIgaGFzIGxhdW5jaGVkIjsKLSAgICA6Ok1lc3NhZ2VCb3hXKDAsIG1l
c3NhZ2UuY2hhcmFjdGVyc1dpdGhOdWxsVGVybWluYXRpb24oKSwgdGl0bGUuY2hhcmFjdGVyc1dp
dGhOdWxsVGVybWluYXRpb24oKSwgTUJfT0sgfCBNQl9JQ09OSU5GT1JNQVRJT04pOwotfQotI2Vu
ZGlmCi0KLWV4dGVybiAiQyIgX19kZWNsc3BlYyhkbGxleHBvcnQpIAotaW50IFdlYktpdE1haW4o
SElOU1RBTkNFIGhJbnN0YW5jZSwgSElOU1RBTkNFIGhQcmV2SW5zdGFuY2UsIExQVFNUUiBscHN0
ckNtZExpbmUsIGludCBuQ21kU2hvdykKLXsKLSNpZm5kZWYgTkRFQlVHCi0gICAgcGF1c2VQcm9j
ZXNzSWZOZWVkZWQoaEluc3RhbmNlKTsKLSNlbmRpZgotCi0gICAgZW5hYmxlRGF0YUV4ZWN1dGlv
blByZXZlbnRpb24oKTsKLQotICAgIGVuYWJsZVRlcm1pbmF0aW9uT25IZWFwQ29ycnVwdGlvbigp
OwotCi0gICAgZGlzYWJsZVVzZXJNb2RlQ2FsbGJhY2tFeGNlcHRpb25GaWx0ZXIoKTsKLQotICAg
IENvbW1hbmRMaW5lIGNvbW1hbmRMaW5lOwotICAgIGlmICghY29tbWFuZExpbmUucGFyc2UobHBz
dHJDbWRMaW5lKSkKLSAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKLQotICAgIHJldHVybiBX
ZWJLaXRNYWluKGNvbW1hbmRMaW5lKTsKLX0KLQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCmluZGV4IGFlNWIyYzhiNjk4OGRjOGQ2
ZTJhMTJmNWNjZjZjMzEyMzkzOGQ3NDMuLmEwNWQwMDM2NjNhYjg2OTRjNDFiNmJlM2Q4NzU1ZDJk
NjY4OWEyZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9E
cmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3
aW5nQXJlYS5oCkBAIC01MiwxMCArNTIsNiBAQCBjbGFzcyBXZWJQYWdlOwogc3RydWN0IFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgV2ViUHJlZmVyZW5jZXNTdG9yZTsKIAotI2lm
IFBMQVRGT1JNKFdJTikKLXN0cnVjdCBXaW5kb3dHZW9tZXRyeTsKLSNlbmRpZgotCiBjbGFzcyBE
cmF3aW5nQXJlYSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRHJhd2luZ0FyZWEpOwogCkBA
IC05OCwxMCArOTQsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVDb29y
ZGluYXRlZExheWVyVHJlZUhvc3RNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgPSAwOwogI2VuZGlmCiAKLSNp
ZiBQTEFURk9STShXSU4pCi0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ2hpbGRXaW5kb3dHZW9t
ZXRyeVVwZGF0ZShjb25zdCBXaW5kb3dHZW9tZXRyeSYpID0gMDsKLSNlbmRpZgotCiAgICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoQWZ0ZXJFbnN1cmluZ1VwZGF0ZWRTY3JvbGxQb3NpdGlvbihjb25z
dCBGdW5jdGlvbjx2b2lkICgpPiYpOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwCmluZGV4IDg1MzBl
NWFlYWQ0NzdkZDU1MmExOGIzNWNmYjUxZjk2NjY0YTNhMTUuLmEwN2Q3MzJlZTcwZDNkZDI3YjIy
ZGFlNjU2NDY2MzVhNzlmMDJjYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwCkBAIC02NTIsMTIgKzY1MiwxMCBAQCBz
dGF0aWMgYm9vbCBzaG91bGRQYWludEJvdW5kc1JlY3QoY29uc3QgSW50UmVjdCYgYm91bmRzLCBj
b25zdCBWZWN0b3I8SW50UmVjdD4mCiAgICAgcmV0dXJuIHdhc3RlZFNwYWNlIDw9IHdhc3RlZFNw
YWNlVGhyZXNob2xkOwogfQogCi0jaWYgIVBMQVRGT1JNKFdJTikKIFBhc3NPd25QdHI8R3JhcGhp
Y3NDb250ZXh0PiBEcmF3aW5nQXJlYUltcGw6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dChTaGFyZWFi
bGVCaXRtYXAqIGJpdG1hcCkKIHsKICAgICByZXR1cm4gYml0bWFwLT5jcmVhdGVHcmFwaGljc0Nv
bnRleHQoKTsKIH0KLSNlbmRpZgogCiB2b2lkIERyYXdpbmdBcmVhSW1wbDo6ZGlzcGxheShVcGRh
dGVJbmZvJiB1cGRhdGVJbmZvKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCmluZGV4IGEzMTMzMTZjOWFkOTlkOThmNjZjNzJi
YmVmZjk0NWIxMGE5MWVkYWUuLjUyNmU1OWI5ZmQ1ZjQ1N2EwMDJhMDQwZWE1MGU2ZDA0YjA4ZjFi
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5n
QXJlYUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2lu
Z0FyZWFJbXBsLmgKQEAgLTc0LDEwICs3NCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkgT1ZFUlJJREU7CiAjZW5kaWYKIAotI2lm
IFBMQVRGT1JNKFdJTikKLSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDaGlsZFdpbmRvd0dlb21l
dHJ5VXBkYXRlKGNvbnN0IFdpbmRvd0dlb21ldHJ5Jik7Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JN
KE1BQykKICAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJIb3N0aW5nTW9kZSh1aW50MzJfdCkgT1ZF
UlJJREU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9MYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9MYXllclRyZWVIb3N0LmNwcAppbmRleCAzZTMwNDJkYTYyNmRlMjFhMDM1ODE3YWExMDAwZjFh
YjZlY2U2N2I2Li5hYWU4MjkzZDZlZGI4MzRiZDIxYTNiMmZmMGM3NDgzODZiNmQ5YzM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3Qu
Y3BwCkBAIC0yNiwxMiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxh
eWVyVHJlZUhvc3QuaCIKIAotI2lmIFVTRShDQSkKICNpZiBQTEFURk9STShNQUMpCiAjaW5jbHVk
ZSAiTGF5ZXJUcmVlSG9zdENBTWFjLmgiCi0jZWxpZiBQTEFURk9STShXSU4pCi0jaW5jbHVkZSAi
TGF5ZXJUcmVlSG9zdENBV2luLmgiCi0jZW5kaWYKICNlbmRpZgogCiAjaWYgVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTKQpAQCAtNTAsOCArNDYsNiBAQCBQYXNzUmVmUHRyPExheWVyVHJlZUhvc3Q+
IExheWVyVHJlZUhvc3Q6OmNyZWF0ZShXZWJQYWdlKiB3ZWJQYWdlKQogewogI2lmIFBMQVRGT1JN
KE1BQykKICAgICByZXR1cm4gTGF5ZXJUcmVlSG9zdENBTWFjOjpjcmVhdGUod2ViUGFnZSk7Ci0j
ZWxpZiBQTEFURk9STShXSU4pICYmIEhBVkUoV0tRQ0EpCi0gICAgcmV0dXJuIExheWVyVHJlZUhv
c3RDQVdpbjo6Y3JlYXRlKHdlYlBhZ2UpOwogI2VsaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNT
KQogICAgIHJldHVybiBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmNyZWF0ZSh3ZWJQYWdlKTsK
ICNlbGlmIFBMQVRGT1JNKEdUSykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmgKaW5kZXggZWQ4
OTEwNTRkMzIzOTI4ODg2YmZmNjM2MWI2ODUyYzExODE0N2NjZi4uMjA5NmMwYzgxOGEwNzMxMzZl
MWUyYjVlZjU1YjJjZjg3NjRiN2M1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5oCkBAIC00NCwxMCArNDQsNiBAQCBjbGFzcyBJbnRS
ZWN0OwogY2xhc3MgSW50U2l6ZTsKIGNsYXNzIEdyYXBoaWNzTGF5ZXI7CiBjbGFzcyBHcmFwaGlj
c0xheWVyRmFjdG9yeTsKLQotI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKEFWRk9VTkRBVElPTikK
LXN0cnVjdCBHcmFwaGljc0RldmljZUFkYXB0ZXI7Ci0jZW5kaWYKIH0KIAogbmFtZXNwYWNlIFdl
YktpdCB7CkBAIC01NSwxMCArNTEsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFVwZGF0
ZUluZm87CiBjbGFzcyBXZWJQYWdlOwogCi0jaWYgUExBVEZPUk0oV0lOKQotc3RydWN0IFdpbmRv
d0dlb21ldHJ5OwotI2VuZGlmCi0KIGNsYXNzIExheWVyVHJlZUhvc3QgOiBwdWJsaWMgUmVmQ291
bnRlZDxMYXllclRyZWVIb3N0PiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TGF5
ZXJUcmVlSG9zdD4gY3JlYXRlKFdlYlBhZ2UqKTsKQEAgLTk5LDE4ICs5MSwxMCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVDb29yZGluYXRlZExheWVyVHJlZUhvc3RNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJikgPSAwOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShXSU4pCi0gICAgdmly
dHVhbCB2b2lkIHNjaGVkdWxlQ2hpbGRXaW5kb3dHZW9tZXRyeVVwZGF0ZShjb25zdCBXaW5kb3dH
ZW9tZXRyeSYpID0gMDsKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwg
dm9pZCBzZXRMYXllckhvc3RpbmdNb2RlKExheWVySG9zdGluZ01vZGUpIHsgfQogI2VuZGlmCiAK
LSNpZiBQTEFURk9STShXSU4pICYmIFVTRShBVkZPVU5EQVRJT04pCi0gICAgdmlydHVhbCBXZWJD
b3JlOjpHcmFwaGljc0RldmljZUFkYXB0ZXIqIGdyYXBoaWNzRGV2aWNlQWRhcHRlcigpIGNvbnN0
IHsgcmV0dXJuIDA7IH0KLSNlbmRpZgotCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKSAm
JiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCiAgICAgdmlydHVhbCB2b2lkIHNjaGVk
dWxlQW5pbWF0aW9uKCkgPSAwOwogI2VuZGlmCkBAIC0xMjUsNyArMTA5LDcgQEAgcHJvdGVjdGVk
OgogI2VuZGlmCiB9OwogCi0jaWYgIVBMQVRGT1JNKFdJTikgJiYgIVVTRShDT09SRElOQVRFRF9H
UkFQSElDUykKKyNpZiAhVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogaW5saW5lIGJvb2wgTGF5
ZXJUcmVlSG9zdDo6c3VwcG9ydHNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkKIHsKICAgICByZXR1
cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUu
Y3BwCmluZGV4IDk4M2E1ZTczZDc3ZDA2ZDk1YzY3N2VjMzQzZmM1MjkwYTc0ODNjNTcuLjhlZmNh
NWMyMDc4MDZmOTEwOWUzZWVhNWQ0YTgyNTQwOTAxOGJhOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAtNzQsNyArNzQsNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaD4KICNlbmRpZgogCi0j
aWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShXSU4pCisjaWYgUExBVEZPUk0oTUFDKQogI2lu
Y2x1ZGUgPFdlYkNvcmUvTGVnYWN5V2ViQXJjaGl2ZS5oPgogI2VuZGlmCiAKQEAgLTg0MCw3ICs4
NDAsNyBAQCB2b2lkIFdlYkZyYW1lOjpzZXRUZXh0RGlyZWN0aW9uKGNvbnN0IFN0cmluZyYgZGly
ZWN0aW9uKQogICAgICAgICBtX2NvcmVGcmFtZS0+ZWRpdG9yKCktPnNldEJhc2VXcml0aW5nRGly
ZWN0aW9uKFJpZ2h0VG9MZWZ0V3JpdGluZ0RpcmVjdGlvbik7CiB9CiAKLSNpZiBQTEFURk9STShN
QUMpIHx8IFBMQVRGT1JNKFdJTikKKyNpZiBQTEFURk9STShNQUMpCiAKIGNsYXNzIFdlYkZyYW1l
RmlsdGVyIDogcHVibGljIEZyYW1lRmlsdGVyIHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKaW5kZXggODNjNzkzZTUwNWYwNzhlNTRiYzY2
MDM3Y2VkNThiOGIwOTY3NjlkMi4uMDk2ZTFmZDNkNDY4Mjc5NDE0NjRkNDBmOWUyZjkyODM4ZDUw
MmRlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZy
YW1lLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgK
QEAgLTE1NSw3ICsxNTUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRMb2FkTGlzdGVuZXIoTG9h
ZExpc3RlbmVyKiBsb2FkTGlzdGVuZXIpIHsgbV9sb2FkTGlzdGVuZXIgPSBsb2FkTGlzdGVuZXI7
IH0KICAgICBMb2FkTGlzdGVuZXIqIGxvYWRMaXN0ZW5lcigpIGNvbnN0IHsgcmV0dXJuIG1fbG9h
ZExpc3RlbmVyOyB9CiAgICAgCi0jaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShXSU4pCisj
aWYgUExBVEZPUk0oTUFDKQogICAgIHR5cGVkZWYgYm9vbCAoKkZyYW1lRmlsdGVyRnVuY3Rpb24p
KFdLQnVuZGxlRnJhbWVSZWYsIFdLQnVuZGxlRnJhbWVSZWYgc3ViZnJhbWUsIHZvaWQqIGNvbnRl
eHQpOwogICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IHdlYkFyY2hpdmVEYXRhKEZyYW1lRmlsdGVy
RnVuY3Rpb24sIHZvaWQqIGNvbnRleHQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZTA2ZTNhMzEwYTFiMDlkNjVkYWFlYjU0
OWNkODAyNThlMTM0Zjk5Yy4uODc4MWU3MTdiNWVlNTU4NzcxNmJlMGFkNDFhMzYzYjc5YjE4Mjdm
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApA
QCAtMjQwLDggKzI0MCw2IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25z
dCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgICwgbV9pc1NtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZChwYXJhbWV0ZXJzLmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVk
KQogICAgICwgbV9sYXllckhvc3RpbmdNb2RlKHBhcmFtZXRlcnMubGF5ZXJIb3N0aW5nTW9kZSkK
ICAgICAsIG1fa2V5Ym9hcmRFdmVudEJlaW5nSW50ZXJwcmV0ZWQoMCkKLSNlbGlmIFBMQVRGT1JN
KFdJTikKLSAgICAsIG1fbmF0aXZlV2luZG93KHBhcmFtZXRlcnMubmF0aXZlV2luZG93KQogI2Vs
aWYgUExBVEZPUk0oR1RLKQogICAgICwgbV9hY2Nlc3NpYmlsaXR5T2JqZWN0KDApCiAjZW5kaWYK
QEAgLTI3Myw5ICsyNzEsNiBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29u
c3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICAgICAsIG1faXNTaG93
aW5nQ29udGV4dE1lbnUoZmFsc2UpCiAjZW5kaWYKICAgICAsIG1fd2lsbEdvVG9CYWNrRm9yd2Fy
ZEl0ZW1DYWxsYmFja0VuYWJsZWQodHJ1ZSkKLSNpZiBQTEFURk9STShXSU4pCi0gICAgLCBtX2dl
c3R1cmVSZWFjaGVkU2Nyb2xsaW5nTGltaXQoZmFsc2UpCi0jZW5kaWYKICNpZiBFTkFCTEUoUEFH
RV9WSVNJQklMSVRZX0FQSSkKICAgICAsIG1fdmlzaWJpbGl0eVN0YXRlKFdlYkNvcmU6OlBhZ2VW
aXNpYmlsaXR5U3RhdGVWaXNpYmxlKQogI2VuZGlmCkBAIC0xMzQ1LDEwICsxMzQwLDYgQEAgdm9p
ZCBXZWJQYWdlOjppbnN0YWxsUGFnZU92ZXJsYXkoUGFzc1JlZlB0cjxQYWdlT3ZlcmxheT4gcGFn
ZU92ZXJsYXkpCiAgICAgICAgIG1fcGFnZU92ZXJsYXktPnN0YXJ0RmFkZUluQW5pbWF0aW9uKCk7
CiAKICAgICBtX2RyYXdpbmdBcmVhLT5kaWRJbnN0YWxsUGFnZU92ZXJsYXkoKTsKLSNpZiBQTEFU
Rk9STShXSU4pCi0gICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRJbnN0YWxsT3JV
bmluc3RhbGxQYWdlT3ZlcmxheSh0cnVlKSk7Ci0jZW5kaWYKLQogICAgIG1fcGFnZU92ZXJsYXkt
PnNldE5lZWRzRGlzcGxheSgpOwogfQogCkBAIC0xMzY2LDkgKzEzNTcsNiBAQCB2b2lkIFdlYlBh
Z2U6OnVuaW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5KiBwYWdlT3ZlcmxheSwgYm9vbCBm
YWRlT3V0KQogICAgIG1fcGFnZU92ZXJsYXkgPSBudWxscHRyOwogCiAgICAgbV9kcmF3aW5nQXJl
YS0+ZGlkVW5pbnN0YWxsUGFnZU92ZXJsYXkoKTsKLSNpZiBQTEFURk9STShXSU4pCi0gICAgc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRJbnN0YWxsT3JVbmluc3RhbGxQYWdlT3Zlcmxh
eShmYWxzZSkpOwotI2VuZGlmCiB9CiAKIHN0YXRpYyBJbWFnZU9wdGlvbnMgc25hcHNob3RPcHRp
b25zVG9JbWFnZU9wdGlvbnMoU25hcHNob3RPcHRpb25zIHNuYXBzaG90T3B0aW9ucykKQEAgLTIx
OTAsNyArMjE3OCw3IEBAIHZvaWQgV2ViUGFnZTo6Z2V0V2ViQXJjaGl2ZU9mRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKICAgICBDb3JlSVBDOjpEYXRhUmVm
ZXJlbmNlIGRhdGFSZWZlcmVuY2U7CiAKLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKFdJ
TikKKyNpZiBQTEFURk9STShNQUMpCiAgICAgUmV0YWluUHRyPENGRGF0YVJlZj4gZGF0YTsKICAg
ICBpZiAoV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2hhcmVkKCkud2ViRnJhbWUoZnJh
bWVJRCkpIHsKICAgICAgICAgaWYgKChkYXRhID0gZnJhbWUtPndlYkFyY2hpdmVEYXRhKDAsIDAp
KSkKQEAgLTI0NjMsMzggKzI0NTEsNyBAQCBib29sIFdlYlBhZ2U6OmhhbmRsZUVkaXRpbmdLZXli
b2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2dCkKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQp
CiAKLSNpZiBQTEFURk9STShXSU4pCi12b2lkIFdlYlBhZ2U6OnBlcmZvcm1EcmFnQ29udHJvbGxl
ckFjdGlvbih1aW50NjRfdCBhY3Rpb24sIFdlYkNvcmU6OkludFBvaW50IGNsaWVudFBvc2l0aW9u
LCBXZWJDb3JlOjpJbnRQb2ludCBnbG9iYWxQb3NpdGlvbiwgdWludDY0X3QgZHJhZ2dpbmdTb3Vy
Y2VPcGVyYXRpb25NYXNrLCBjb25zdCBXZWJDb3JlOjpEcmFnRGF0YU1hcCYgZGF0YU1hcCwgdWlu
dDMyX3QgZmxhZ3MpCi17Ci0gICAgaWYgKCFtX3BhZ2UpIHsKLSAgICAgICAgc2VuZChNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24oV2ViQ29yZTo6
RHJhZ1Nlc3Npb24oKSkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgRHJhZ0RhdGEg
ZHJhZ0RhdGEoZGF0YU1hcCwgY2xpZW50UG9zaXRpb24sIGdsb2JhbFBvc2l0aW9uLCBzdGF0aWNf
Y2FzdDxEcmFnT3BlcmF0aW9uPihkcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2spLCBzdGF0aWNf
Y2FzdDxEcmFnQXBwbGljYXRpb25GbGFncz4oZmxhZ3MpKTsKLSAgICBzd2l0Y2ggKGFjdGlvbikg
ewotICAgIGNhc2UgRHJhZ0NvbnRyb2xsZXJBY3Rpb25FbnRlcmVkOgotICAgICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihtX3Bh
Z2UtPmRyYWdDb250cm9sbGVyKCktPmRyYWdFbnRlcmVkKCZkcmFnRGF0YSkpKTsKLSAgICAgICAg
YnJlYWs7Ci0KLSAgICBjYXNlIERyYWdDb250cm9sbGVyQWN0aW9uVXBkYXRlZDoKLSAgICAgICAg
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rp
b24obV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLT5kcmFnVXBkYXRlZCgmZHJhZ0RhdGEpKSk7Ci0g
ICAgICAgIGJyZWFrOwotICAgICAgICAKLSAgICBjYXNlIERyYWdDb250cm9sbGVyQWN0aW9uRXhp
dGVkOgotICAgICAgICBtX3BhZ2UtPmRyYWdDb250cm9sbGVyKCktPmRyYWdFeGl0ZWQoJmRyYWdE
YXRhKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICAgIAotICAgIGNhc2UgRHJhZ0NvbnRyb2xsZXJB
Y3Rpb25QZXJmb3JtRHJhZzoKLSAgICAgICAgbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLT5wZXJm
b3JtRHJhZygmZHJhZ0RhdGEpOwotICAgICAgICBicmVhazsKLSAgICAgICAgCi0gICAgZGVmYXVs
dDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgfQotfQotCi0jZWxpZiBQTEFU
Rk9STShRVCkgfHwgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShH
VEspCiB2b2lkIFdlYlBhZ2U6OnBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbih1aW50NjRfdCBh
Y3Rpb24sIFdlYkNvcmU6OkRyYWdEYXRhIGRyYWdEYXRhKQogewogICAgIGlmICghbV9wYWdlKSB7
CkBAIC0zMjk5LDcgKzMyNTYsNyBAQCB2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50
aW5nKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbgogICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q29tcHV0ZWRQYWdlc0NhbGxiYWNrKHJlc3VsdFBhZ2VS
ZWN0cywgcmVzdWx0VG90YWxTY2FsZUZhY3RvckZvclByaW50aW5nLCBjYWxsYmFja0lEKSk7CiB9
CiAKLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKFdJTikKKyNpZiBQTEFURk9STShNQUMp
CiB2b2lkIFdlYlBhZ2U6OmRyYXdSZWN0VG9JbWFnZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQ
cmludEluZm8mIHByaW50SW5mbywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCwgY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYgaW1hZ2VTaXplLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogICAg
IFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNoYXJlZCgpLndlYkZyYW1lKGZyYW1lSUQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMTRm
YzkxZTAyZmEyZTFmYTBmOGVlZDJjOWM2MTM4ZmVmYzlmNjYwZi4uMWViNjMzMjRmZDdmZjIzNDEx
ODNjM2RkMDUxOTkxMzBiMzA0YzlhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCkBAIC0zNDksOCArMzQ5LDYgQEAgcHVibGljOgogICAgIHZvaWQgdXBk
YXRlUGx1Z2luc0FjdGl2ZUFuZEZvY3VzZWRTdGF0ZSgpOwogICAgIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcygpIGNvbnN0IHsgcmV0dXJuIG1f
d2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzOyB9CiAgICAgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fdmll
d0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlczsgfQotI2VsaWYgUExBVEZPUk0oV0lOKQotICAgIEhX
TkQgbmF0aXZlV2luZG93KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVXaW5kb3c7IH0KICNlbmRp
ZgogCiAgICAgYm9vbCB3aW5kb3dJc0ZvY3VzZWQoKSBjb25zdDsKQEAgLTQ1NywxNSArNDU1LDYg
QEAgcHVibGljOgogICAgIHZvaWQgYWNjZXB0c0ZpcnN0TW91c2UoaW50IGV2ZW50TnVtYmVyLCBj
b25zdCBXZWJLaXQ6OldlYk1vdXNlRXZlbnQmLCBib29sJiByZXN1bHQpOwogICAgIGJvb2wgcGVy
Zm9ybU5vbkVkaXRpbmdCZWhhdmlvckZvclNlbGVjdG9yKGNvbnN0IFN0cmluZyYpOwogICAgIHZv
aWQgaW5zZXJ0RGljdGF0ZWRUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgdWludDY0X3QgcmVwbGFj
ZW1lbnRSYW5nZVN0YXJ0LCB1aW50NjRfdCByZXBsYWNlbWVudFJhbmdlRW5kLCBjb25zdCBWZWN0
b3I8V2ViQ29yZTo6RGljdGF0aW9uQWx0ZXJuYXRpdmU+JiBkaWN0YXRpb25BbHRlcm5hdGl2ZUxv
Y2F0aW9ucywgYm9vbCYgaGFuZGxlZCwgRWRpdG9yU3RhdGUmIG5ld1N0YXRlKTsKLSNlbGlmIFBM
QVRGT1JNKFdJTikKLSAgICB2b2lkIGNvbmZpcm1Db21wb3NpdGlvbihjb25zdCBTdHJpbmcmIGNv
bXBvc2l0aW9uU3RyaW5nKTsKLSAgICB2b2lkIHNldENvbXBvc2l0aW9uKGNvbnN0IFdURjo6U3Ry
aW5nJiBjb21wb3NpdGlvblN0cmluZywgY29uc3QgV1RGOjpWZWN0b3I8V2ViQ29yZTo6Q29tcG9z
aXRpb25VbmRlcmxpbmU+JiB1bmRlcmxpbmVzLCB1aW50NjRfdCBjdXJzb3JQb3NpdGlvbik7Ci0g
ICAgdm9pZCBmaXJzdFJlY3RGb3JDaGFyYWN0ZXJJblNlbGVjdGVkUmFuZ2UoY29uc3QgdWludDY0
X3QgY2hhcmFjdGVyUG9zaXRpb24sIFdlYkNvcmU6OkludFJlY3QmIHJlc3VsdFJlY3QpOwotICAg
IHZvaWQgZ2V0U2VsZWN0ZWRUZXh0KFdURjo6U3RyaW5nJik7Ci0KLSAgICB2b2lkIGdlc3R1cmVX
aWxsQmVnaW4oY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBib29sJiBjYW5CZWdpblBhbm5pbmcp
OwotICAgIHZvaWQgZ2VzdHVyZURpZFNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7Ci0g
ICAgdm9pZCBnZXN0dXJlRGlkRW5kKCk7CiAjZWxpZiBQTEFURk9STShFRkwpCiAgICAgdm9pZCBj
b25maXJtQ29tcG9zaXRpb24oY29uc3QgU3RyaW5nJiBjb21wb3NpdGlvblN0cmluZyk7CiAgICAg
dm9pZCBzZXRDb21wb3NpdGlvbihjb25zdCBXVEY6OlN0cmluZyYgY29tcG9zaXRpb25TdHJpbmcs
IGNvbnN0IFdURjo6VmVjdG9yPFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lPiYgdW5kZXJs
aW5lcywgdWludDY0X3QgY3Vyc29yUG9zaXRpb24pOwpAQCAtNTAzLDkgKzQ5Miw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGNsZWFyU2VsZWN0aW9uKCk7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JU
KQotI2lmIFBMQVRGT1JNKFdJTikKLSAgICB2b2lkIHBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlv
bih1aW50NjRfdCBhY3Rpb24sIFdlYkNvcmU6OkludFBvaW50IGNsaWVudFBvc2l0aW9uLCBXZWJD
b3JlOjpJbnRQb2ludCBnbG9iYWxQb3NpdGlvbiwgdWludDY0X3QgZHJhZ2dpbmdTb3VyY2VPcGVy
YXRpb25NYXNrLCBjb25zdCBXZWJDb3JlOjpEcmFnRGF0YU1hcCYsIHVpbnQzMl90IGZsYWdzKTsK
LSNlbGlmIFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oUVQpIHx8
IFBMQVRGT1JNKEdUSykKICAgICB2b2lkIHBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbih1aW50
NjRfdCBhY3Rpb24sIFdlYkNvcmU6OkRyYWdEYXRhKTsKICNlbHNlCiAgICAgdm9pZCBwZXJmb3Jt
RHJhZ0NvbnRyb2xsZXJBY3Rpb24odWludDY0X3QgYWN0aW9uLCBXZWJDb3JlOjpJbnRQb2ludCBj
bGllbnRQb3NpdGlvbiwgV2ViQ29yZTo6SW50UG9pbnQgZ2xvYmFsUG9zaXRpb24sIHVpbnQ2NF90
IGRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFzaywgY29uc3QgV1RGOjpTdHJpbmcmIGRyYWdTdG9y
YWdlTmFtZSwgdWludDMyX3QgZmxhZ3MsIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYs
IGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5Jik7CkBAIC01MTksNyArNTA2LDcg
QEAgcHVibGljOgogICAgIHZvaWQgYmVnaW5QcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBQcmludEluZm8mKTsKICAgICB2b2lkIGVuZFByaW50aW5nKCk7CiAgICAgdm9pZCBjb21wdXRl
UGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCB1aW50
NjRfdCBjYWxsYmFja0lEKTsKLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKFdJTikKKyNp
ZiBQTEFURk9STShNQUMpCiAgICAgdm9pZCBkcmF3UmVjdFRvSW1hZ2UodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgUHJpbnRJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNv
cmU6OkludFNpemUmLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGRyYXdQYWdlc1Rv
UERGKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIHVpbnQzMl90IGZpcnN0LCB1
aW50MzJfdCBjb3VudCwgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAjZWxpZiBQTEFURk9STShHVEsp
CkBAIC04NDksMTEgKzgzNiw2IEBAIHByaXZhdGU6CiAKICAgICBXZWJDb3JlOjpLZXlib2FyZEV2
ZW50KiBtX2tleWJvYXJkRXZlbnRCZWluZ0ludGVycHJldGVkOwogCi0jZWxpZiBQTEFURk9STShX
SU4pCi0gICAgLy8gT3VyIHZpZXcncyB3aW5kb3cgKGluIHRoZSBVSSBwcm9jZXNzKS4KLSAgICBI
V05EIG1fbmF0aXZlV2luZG93OwotCi0gICAgUmVmUHRyPFdlYkNvcmU6Ok5vZGU+IG1fZ2VzdHVy
ZVRhcmdldE5vZGU7CiAjZWxpZiBQTEFURk9STShHVEspCiAgICAgR1JlZlB0cjxXZWJQYWdlQWNj
ZXNzaWJpbGl0eU9iamVjdD4gbV9hY2Nlc3NpYmlsaXR5T2JqZWN0OwogCkBAIC05NDcsOSArOTI5
LDYgQEAgcHJpdmF0ZToKICAgICAKICAgICBib29sIG1fd2lsbEdvVG9CYWNrRm9yd2FyZEl0ZW1D
YWxsYmFja0VuYWJsZWQ7CiAKLSNpZiBQTEFURk9STShXSU4pCi0gICAgYm9vbCBtX2dlc3R1cmVS
ZWFjaGVkU2Nyb2xsaW5nTGltaXQ7Ci0jZW5kaWYKICNpZiBQTEFURk9STShRVCkKICAgICBIYXNo
TWFwPFN0cmluZywgUXROZXR3b3JrUmVwbHkqPiBtX2FwcGxpY2F0aW9uU2NoZW1lUmVwbGllczsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgppbmRleCBiMzA1ZGRkMzg3OTNhN2IwYjU2MTg5NzlkOGQzZjBhOWM3
MmExOTI1Li4wMGNkZGRkYTg4MWFmMDAzMzc2ODZkMDgzZTAxMTk2OGIxYzMyMmMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbgpAQCAtMTU1LDEzICsxNTUsMTAgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSB7CiAgICAgQ291
bnRTdHJpbmdNYXRjaGVzKFdURjo6U3RyaW5nIHN0cmluZywgdWludDMyX3QgZmluZE9wdGlvbnMs
IHVuc2lnbmVkIG1heE1hdGNoQ291bnQpCiAKICAgICAjIERyYWcgYW5kIGRyb3AuCi0jaWYgUExB
VEZPUk0oV0lOKSAmJiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgIFBlcmZvcm1EcmFnQ29udHJv
bGxlckFjdGlvbih1aW50NjRfdCBhY3Rpb24sIFdlYkNvcmU6OkludFBvaW50IGNsaWVudFBvc2l0
aW9uLCBXZWJDb3JlOjpJbnRQb2ludCBnbG9iYWxQb3NpdGlvbiwgdWludDY0X3QgZHJhZ2dpbmdT
b3VyY2VPcGVyYXRpb25NYXNrLCBIYXNoTWFwPFVJTlQsVmVjdG9yPFN0cmluZz4+IGRhdGFNYXAs
IHVpbnQzMl90IGZsYWdzKQotI2VuZGlmCiAjaWYgKFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShH
VEspKSAmJiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIFBlcmZvcm1EcmFnQ29udHJvbGxlckFj
dGlvbih1aW50NjRfdCBhY3Rpb24sIFdlYkNvcmU6OkRyYWdEYXRhIGRyYWdEYXRhKQogI2VuZGlm
Ci0jaWYgIVBMQVRGT1JNKFdJTikgJiYgIVBMQVRGT1JNKFFUKSAmJiAhUExBVEZPUk0oR1RLKSAm
JiBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2lmICFQTEFURk9STShRVCkgJiYgIVBMQVRGT1JNKEdU
SykgJiYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICBQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rp
b24odWludDY0X3QgYWN0aW9uLCBXZWJDb3JlOjpJbnRQb2ludCBjbGllbnRQb3NpdGlvbiwgV2Vi
Q29yZTo6SW50UG9pbnQgZ2xvYmFsUG9zaXRpb24sIHVpbnQ2NF90IGRyYWdnaW5nU291cmNlT3Bl
cmF0aW9uTWFzaywgV1RGOjpTdHJpbmcgZHJhZ1N0b3JhZ2VOYW1lLCB1aW50MzJfdCBmbGFncywg
V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSwg
V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBzYW5kYm94RXh0ZW5zaW9uc0Zv
clVwbG9hZCkKICNlbmRpZgogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCkBAIC0yMTYsNyArMjEz
LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSB7CiAgICAgQmVnaW5QcmludGluZyh1aW50NjRfdCBm
cmFtZUlELCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8pCiAgICAgRW5kUHJpbnRpbmcoKQog
ICAgIENvbXB1dGVQYWdlc0ZvclByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6UHJp
bnRJbmZvIHByaW50SW5mbywgdWludDY0X3QgY2FsbGJhY2tJRCkKLSNpZiBQTEFURk9STShNQUMp
IHx8IFBMQVRGT1JNKFdJTikKKyNpZiBQTEFURk9STShNQUMpCiAgICAgRHJhd1JlY3RUb0ltYWdl
KHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViQ29yZTo6
SW50UmVjdCByZWN0LCBXZWJDb3JlOjpJbnRTaXplIGltYWdlU2l6ZSwgdWludDY0X3QgY2FsbGJh
Y2tJRCkKICAgICBEcmF3UGFnZXNUb1BERih1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OlByaW50
SW5mbyBwcmludEluZm8sIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgdWludDY0X3Qg
Y2FsbGJhY2tJRCkKICNlbmRpZgpAQCAtMjgyLDE3ICsyNzksNiBAQCBtZXNzYWdlcyAtPiBXZWJQ
YWdlIHsKICAgICBBY2NlcHRzRmlyc3RNb3VzZShpbnQgZXZlbnROdW1iZXIsIFdlYktpdDo6V2Vi
TW91c2VFdmVudCBldmVudCkgLT4gKGJvb2wgcmVzdWx0KQogICAgIEluc2VydERpY3RhdGVkVGV4
dChXVEY6OlN0cmluZyB0ZXh0LCB1aW50NjRfdCByZXBsYWNlbWVudFJhbmdlU3RhcnQsIHVpbnQ2
NF90IHJlcGxhY2VtZW50UmFuZ2VFbmQsIFdURjo6VmVjdG9yPFdlYkNvcmU6OkRpY3RhdGlvbkFs
dGVybmF0aXZlPiBkaWN0YXRpb25BbHRlcm5hdGl2ZXMpIC0+IChib29sIGhhbmRsZWQsIFdlYktp
dDo6RWRpdG9yU3RhdGUgbmV3U3RhdGUpCiAjZW5kaWYKLSNpZiBQTEFURk9STShXSU4pCi0gICAg
Ly8gRklYTUU6IFVuaWZ5IHdpdGggTWFjIGNvdW50ZXJwYXJ0cy4KLSAgICBDb25maXJtQ29tcG9z
aXRpb24oV1RGOjpTdHJpbmcgY29tcG9zaXRpb25TdHJpbmcpCi0gICAgU2V0Q29tcG9zaXRpb24o
V1RGOjpTdHJpbmcgY29tcG9zaXRpb25TdHJpbmcsIFdURjo6VmVjdG9yPFdlYkNvcmU6OkNvbXBv
c2l0aW9uVW5kZXJsaW5lPiB1bmRlcmxpbmVzLCB1aW50NjRfdCBjdXJzb3JQb3NpdGlvbikKLSAg
ICBGaXJzdFJlY3RGb3JDaGFyYWN0ZXJJblNlbGVjdGVkUmFuZ2UodWludDY0X3QgY2hhcmFjdGVy
UG9zaXRpb24pIC0+IChXZWJDb3JlOjpJbnRSZWN0IHJlc3VsdFJlY3QpCi0gICAgR2V0U2VsZWN0
ZWRUZXh0KCkgLT4gKFdURjo6U3RyaW5nIHRleHQpCi0KLSAgICBHZXN0dXJlV2lsbEJlZ2luKFdl
YkNvcmU6OkludFBvaW50IHBvaW50KSAtPiAoYm9vbCBjYW5CZWdpblBhbm5pbmcpCi0gICAgR2Vz
dHVyZURpZFNjcm9sbChXZWJDb3JlOjpJbnRTaXplIHNpemUpCi0gICAgR2VzdHVyZURpZEVuZCgp
Ci0jZW5kaWYKICNpZiBQTEFURk9STShFRkwpCiAgICAgQ29uZmlybUNvbXBvc2l0aW9uKFdURjo6
U3RyaW5nIGNvbXBvc2l0aW9uU3RyaW5nKQogICAgIFNldENvbXBvc2l0aW9uKFdURjo6U3RyaW5n
IGNvbXBvc2l0aW9uU3RyaW5nLCBXVEY6OlZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVy
bGluZT4gdW5kZXJsaW5lcywgdWludDY0X3QgY3Vyc29yUG9zaXRpb24pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA4MTA2YmIzN2YxNmU3MzQxZmEwZTBiZTkw
MzE1NjEzMWQyYTM0ZjBjLi5mNzM4NzVjNzM0Mjg1NjQ4OTc2NDIyMTJlNGVjOTU2YWQ4YTA5Mjdj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTMwNSw3ICsz
MDUsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZQogICAgIGlmIChwYXJhbWV0ZXJzLnNob3Vs
ZFVzZUZvbnRTbW9vdGhpbmcpCiAgICAgICAgIHNldFNob3VsZFVzZUZvbnRTbW9vdGhpbmcodHJ1
ZSk7CiAKLSNpZiAoUExBVEZPUk0oTUFDKSB8fCBVU0UoQ0ZORVRXT1JLKSkgJiYgIVBMQVRGT1JN
KFdJTikKKyNpZiBQTEFURk9STShNQUMpIHx8IFVTRShDRk5FVFdPUkspCiAgICAgV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dDo6c2V0UHJpdmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb25JZGVudGlm
aWVyQmFzZShwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIpOwogI2VuZGlmCiAK
QEAgLTQxMywxNCArNDEzLDE0IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZnVsbEtleWJvYXJkQWNjZXNz
TW9kZUNoYW5nZWQoYm9vbCBmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKQogCiB2b2lkIFdlYlBy
b2Nlc3M6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQogewotI2lmIChQTEFURk9STShN
QUMpIHx8IFVTRShDRk5FVFdPUkspKSAmJiAhUExBVEZPUk0oV0lOKQorI2lmIFBMQVRGT1JNKE1B
QykgfHwgVVNFKENGTkVUV09SSykKICAgICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1
cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7CiAjZW5kaWYKIH0KIAogdm9pZCBXZWJQcm9jZXNz
OjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCiB7Ci0jaWYgKFBMQVRGT1JNKE1BQykg
fHwgVVNFKENGTkVUV09SSykpICYmICFQTEFURk9STShXSU4pCisjaWYgUExBVEZPUk0oTUFDKSB8
fCBVU0UoQ0ZORVRXT1JLKQogICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmRlc3Ryb3lQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgKaW5kZXggMDhjZTViMDA0YjJjZTk3ZWU2ZmE3ZmI1YWIwOTE3YmZkNDkw
MGVhYy4uZWUyZmFlMDE1M2NjZjkyMWE0OWM4N2YyYTg2YmIyN2M2NGYxNmY2NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTIyMyw5ICsyMjMsNiBAQCBwcml2YXRl
OgogICAgIHZvaWQgc2V0U2hvdWxkVXNlRm9udFNtb290aGluZyhib29sKTsKICAgICB2b2lkIHVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXNDaGFuZ2VkKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgY29uc3Q7
CiAgICAgdm9pZCBmdWxsS2V5Ym9hcmRBY2Nlc3NNb2RlQ2hhbmdlZChib29sIGZ1bGxLZXlib2Fy
ZEFjY2Vzc0VuYWJsZWQpOwotI2lmIFBMQVRGT1JNKFdJTikKLSAgICB2b2lkIHNldFNob3VsZFBh
aW50TmF0aXZlQ29udHJvbHMoYm9vbCk7Ci0jZW5kaWYKIAogICAgIHZvaWQgc2V0VmlzaXRlZExp
bmtUYWJsZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYpOwogICAgIHZvaWQgdmlzaXRlZExp
bmtTdGF0ZUNoYW5nZWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkxpbmtIYXNoPiYgbGlua0hhc2hl
cyk7CkBAIC0yOTEsOSArMjg4LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVy
PiYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKik7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIENvcmVJ
UEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgT1ZFUlJJREU7Ci0jaWYgUExBVEZPUk0o
V0lOKQotICAgIHZpcnR1YWwgVmVjdG9yPEhXTkQ+IHdpbmRvd3NUb1JlY2VpdmVTZW50TWVzc2Fn
ZXNXaGlsZVdhaXRpbmdGb3JTeW5jUmVwbHkoKTsKLSNlbmRpZgogCiAgICAgLy8gQ29yZUlQQzo6
Q29ubmVjdGlvbjo6UXVldWVDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBib29sJiBkaWRIYW5kbGVNZXNzYWdl
KSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbgppbmRleCAwMWU3OTk0NTY0ZGY3ZmJlODk0ZDBhMGNmNGFmNzI3NWU4MzYxNjRj
Li5lOTJjMmE0NmQ5YzU0MTg3NzA1ZTFlMzc3ODVkODhkMDExNTAwYmI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC01MSw5ICs1
MSw2IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgewogICAgIFNldFNob3VsZFVzZUZvbnRTbW9v
dGhpbmcoYm9vbCB1c2VGb250U21vb3RoaW5nKQogICAgIFVzZXJQcmVmZXJyZWRMYW5ndWFnZXND
aGFuZ2VkKFZlY3RvcjxXVEY6OlN0cmluZz4gbGFuZ3VhZ2VzKQogICAgIEZ1bGxLZXlib2FyZEFj
Y2Vzc01vZGVDaGFuZ2VkKGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCkKLSNpZiBQTEFU
Rk9STShXSU4pCi0gICAgU2V0U2hvdWxkUGFpbnROYXRpdmVDb250cm9scyhib29sIHNob3VsZFBh
aW50TmF0aXZlQ29udHJvbHMpCi0jZW5kaWYKICNpZiBVU0UoU09VUCkKICAgICBTZXRJZ25vcmVU
TFNFcnJvcnMoYm9vbCBpZ25vcmVUTFNFcnJvcnMpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL2NvbmZpZy5oIGIvU291cmNlL1dlYktpdDIvY29uZmlnLmgKaW5kZXggYjU4ZTk1
MmZjYjllODc3ZmNhODNhMzA4ZTA2MWRjMjAyNTE2MTM3Ni4uOTk5NWVhNzQwMGNhOGZmNGI2NTU2
MTViNjllNTRmMmE5MWM0ZmMzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvY29uZmlnLmgK
KysrIGIvU291cmNlL1dlYktpdDIvY29uZmlnLmgKQEAgLTEwNiw4ICsxMDYsNiBAQCBzdGF0aWMg
Y29uc3QgdHlwZSYgbmFtZSgpIFwKICNpZm5kZWYgUExVR0lOX0FSQ0hJVEVDVFVSRV9VTlNVUFBP
UlRFRAogI2lmIFBMQVRGT1JNKE1BQykKICNkZWZpbmUgUExVR0lOX0FSQ0hJVEVDVFVSRV9NQUMg
MQotI2VsaWYgUExBVEZPUk0oV0lOKQotI2RlZmluZSBQTFVHSU5fQVJDSElURUNUVVJFX1dJTiAx
CiAjZWxpZiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpKSAmJiAoT1MoVU5JWCkgJiYg
IU9TKE1BQ19PU19YKSkKICNkZWZpbmUgUExVR0lOX0FSQ0hJVEVDVFVSRV9YMTEgMQogI2VsaWYg
UExBVEZPUk0oUVQpCg==
</data>
<flag name="review"
          id="199300"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>