<?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>74355</bug_id>
          
          <creation_ts>2011-12-12 15:11:40 -0800</creation_ts>
          <short_desc>Remove vptrs from JSCell hierarchy</short_desc>
          <delta_ts>2011-12-18 12:23:21 -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>JavaScriptCore</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>
          <dependson>74353</dependson>
          <blocked>74331</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>abarth</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>519551</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-12-12 15:11:40 -0800</bug_when>
    <thetext>Now that we&apos;ve de-virtualized all of the destructors, we can remove any bogus virtual vtableAnchor() functions we left behind to keep things working along with all of the remaining vptr optimizations in the JIT and the garbage collector.  This patch ended up a little bigger than I intended because I was having trouble getting tests to pass, so I ended up trying a lot of stuff I had planned for later in an attempt to get things working.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519554</commentid>
    <comment_count>1</comment_count>
      <attachid>118872</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-12-12 15:12:39 -0800</bug_when>
    <thetext>Created attachment 118872
Remove vptrs from JSCell hierarchy

No changelog (see bug 74331).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519558</commentid>
    <comment_count>2</comment_count>
      <attachid>118875</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-12-12 15:14:30 -0800</bug_when>
    <thetext>Created attachment 118875
Remove cruft added during sequence

Remove a lot of the compiler cruft used to get things to build earlier on.  Also fixed up the 32-bit JIT a bit, although at this point it still wouldn&apos;t have built if I had tested it :-/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519562</commentid>
    <comment_count>3</comment_count>
      <attachid>118876</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-12-12 15:16:07 -0800</bug_when>
    <thetext>Created attachment 118876
Remove VPtrStealingHack, more JIT fixes

Again, a little schizophrenic of a patch.  Removed VPtrStealingHack related code, made some JIT fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519566</commentid>
    <comment_count>4</comment_count>
      <attachid>118878</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-12-12 15:17:18 -0800</bug_when>
    <thetext>Created attachment 118878
Get 32-bit building

Getting 32 bit JIT stuff building.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519568</commentid>
    <comment_count>5</comment_count>
      <attachid>118879</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-12-12 15:17:51 -0800</bug_when>
    <thetext>Created attachment 118879
Getting Windows building

Getting Windows building.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519593</commentid>
    <comment_count>6</comment_count>
      <attachid>118872</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-12-12 15:35:55 -0800</bug_when>
    <thetext>Comment on attachment 118872
Remove vptrs from JSCell hierarchy

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519598</commentid>
    <comment_count>7</comment_count>
      <attachid>118875</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-12-12 15:38:00 -0800</bug_when>
    <thetext>Comment on attachment 118875
Remove cruft added during sequence

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519601</commentid>
    <comment_count>8</comment_count>
      <attachid>118876</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-12-12 15:38:23 -0800</bug_when>
    <thetext>Comment on attachment 118876
Remove VPtrStealingHack, more JIT fixes

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519603</commentid>
    <comment_count>9</comment_count>
      <attachid>118878</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-12-12 15:38:44 -0800</bug_when>
    <thetext>Comment on attachment 118878
Get 32-bit building

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519604</commentid>
    <comment_count>10</comment_count>
      <attachid>118879</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-12-12 15:39:16 -0800</bug_when>
    <thetext>Comment on attachment 118879
Getting Windows building

r=me</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118872</attachid>
            <date>2011-12-12 15:12:39 -0800</date>
            <delta_ts>2011-12-12 15:35:55 -0800</delta_ts>
            <desc>Remove vptrs from JSCell hierarchy</desc>
            <filename>0014-Removed-vptrs-entirely-from-the-JSCell-hierarchy.-Al.patch</filename>
            <type>text/plain</type>
            <size>107332</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">RnJvbSBkZTA2M2EzOWU1MjlmNWIxZDZjNDA3MTkzNDQ0ZDM5NDRhZTkyNDc4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJrIEhhaG5lbmJlcmcgPG1oYWhuZW5iZXJnQGFwcGxlLmNv
bT4KRGF0ZTogRnJpLCA5IERlYyAyMDExIDExOjMxOjQ5IC0wODAwClN1YmplY3Q6IFtQQVRDSCAx
NC8xOF0gUmVtb3ZlZCB2cHRycyBlbnRpcmVseSBmcm9tIHRoZSBKU0NlbGwgaGllcmFyY2h5LiAK
IEFsc28gZmluaXNoZWQgY2xlYW5pbmcgdXAgdmFyaW91cyBjbGFzc2VzIHRoYXQgc3RpbGwKIGhh
ZCBzb21lIHJlbWFpbmluZyB2aXJ0dWFsIGZ1bmN0aW9ucy4KCi0tLQogU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cCAgICAgICAgICAgfCAgIDE2IC0tLS0tLS0tCiAuLi4v
SmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmggICB8ICAgIDUgLS0t
CiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCAgICB8ICAg
MzggKysrKysrKysrKy0tLS0tLS0tLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuaCAgICAgIHwgICAgNyArLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9WVGFibGVTcGVjdHJ1bS5jcHAgICAgICB8ICAgIDQgKystCiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwICB8ICAgMTEgKysrLS0tCiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVC5oICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lTWV0aG9kcy5oICAgICAgIHwgICAgOSArKy0t
LQogU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgICAgICAgICAgICAgICAgICAgICAgfCAg
ICA1IC0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmggICAgICAg
ICAgfCAgICAyIC0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0
b3IuaCAgIHwgICAgNSAtLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJv
dG90eXBlLmggICAgIHwgICAgNSAtLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jv
b2xlYW5Db25zdHJ1Y3Rvci5oIHwgICAgNSAtLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Jvb2xlYW5PYmplY3QuaCAgICAgIHwgICAgNSAtLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaCAgIHwgICAgNSAtLS0KIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oICAgIHwgICAgNSAtLS0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5oICAgICAgIHwgICAgNSAtLS0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuaCAgICAgIHwgICAgNSAt
LS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmggICAgICAgICAgICAgIHwg
ICAgNSAtLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3Iu
aCAgIHwgICAgNSAtLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFu
Y2UuaCAgICAgIHwgICAgNSAtLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9y
UHJvdG90eXBlLmggICAgIHwgICAgNSAtLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0V4Y2VwdGlvbkhlbHBlcnMuaCAgIHwgICAgNSAtLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4ZWN1dGFibGUuaCAgICAgICAgIHwgICAgNSAtLS0KIC4uLi9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuaCAgIHwgICAgNSAtLS0KIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmggIHwgICAgNSAtLS0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dldHRlclNldHRlci5oICAgICAgIHwgICAgNSAtLS0K
IC4uLi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuY3BwIHwgICAg
MSAtCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcCB8
ICAgIDMgLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24u
aCAgIHwgICAgOCAtLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FQSVZhbHVl
V3JhcHBlci5oICB8ICAgIDUgLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Fj
dGl2YXRpb24uaCAgICAgICB8ICAgIDUgLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FycmF5LmggICAgICAgICAgICB8ICAgIDUgLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaCAgICB8ICAgIDUgLS0tCiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oICAgICAgICB8ICAgIDUgLS0tCiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwICAgICAgICAgICB8ICAgIDQgLS0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oICAgICAgICAgICAgIHwgICAxMCArLS0t
LS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwICAgICAgIHwg
ICAgNSAtLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaCAgICAg
ICAgIHwgICAgNiAtLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0
YS5jcHAgICAgIHwgICAyNSAtLS0tLS0tLS0tLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbERhdGEuaCAgICAgICB8ICAgMTQgKysrLS0tLS0KIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCAgIHwgICAgNCAtLQogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCAgICAgfCAgICA2IC0tLQogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxUaGlzLmNwcCAgICAgfCAgICAxICsK
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsVGhpcy5oICAgICAgIHwgICAg
NSAtLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaCAgICAg
IHwgICAgNSAtLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaCAg
ICAgICAgIHwgICAgNSAtLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0
LmNwcCAgICAgICAgIHwgICAgOCAtLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdC5oICAgICAgICAgICB8ICAgMTMgKystLS0tLQogLi4uL3J1bnRpbWUvSlNQcm9wZXJ0
eU5hbWVJdGVyYXRvci5oICAgICAgICAgICAgICAgfCAgICA1IC0tLQogLi4uL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oICAgfCAgICA1IC0tLQogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwICAgICAgICAgfCAgICA0IC0tCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oICAgICAgICAgICB8ICAgIDYgLS0t
CiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmNwcCB8ICAg
IDQgLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaCAg
IHwgICAgNyAtLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmpl
Y3QuY3BwICB8ICAgIDQgLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBl
ck9iamVjdC5oICAgIHwgICAgNiAtLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01h
dGhPYmplY3QuaCAgICAgICAgIHwgICAgNSAtLS0KIC4uLi9ydW50aW1lL05hdGl2ZUVycm9yQ29u
c3RydWN0b3IuaCAgICAgICAgICAgICAgIHwgICAgNSAtLS0KIC4uLi9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL05hdGl2ZUVycm9yUHJvdG90eXBlLmggIHwgICAgNSAtLS0KIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmggIHwgICAgNSAtLS0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5oICAgICAgIHwgICAgNSAtLS0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oICAgIHwgICAgNSAt
LS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmggIHwg
ICAgNSAtLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5o
ICAgIHwgICAgNSAtLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5oICAg
ICAgICAgICAgIHwgICAgNSAtLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cENvbnN0cnVjdG9yLmggIHwgICAgNSAtLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cE1hdGNoZXNBcnJheS5oIHwgICAgNSAtLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cE9iamVjdC5oICAgICAgIHwgICAgNSAtLS0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oICAgIHwgICAgNSAtLS0KIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlQ2hhaW4uY3BwICAgICAgIHwgICAgNCAtLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVDaGFpbi5oICAgICAgICAgfCAgICA3IC0tLS0K
IC4uLi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmggIHwgICAg
NSAtLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmgg
IHwgICAgNSAtLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5j
cHAgICAgIHwgICAgNCAtLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2Jq
ZWN0LmggICAgICAgfCAgICA3IC0tLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ1Byb3RvdHlwZS5oICAgIHwgICAgNSAtLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cnVjdHVyZS5oICAgICAgICAgIHwgICAgOSArLS0tLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hhaW4uaCAgICAgfCAgICA1IC0tLQogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RSZWdFeHAuY3BwICAgICAgICAgICAgICAgfCAgICA1IC0tLQogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gICAgICAgICAgICAgICAgICAgICAgfCAgICA1ICstLQog
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwICAgfCAgIDEz
ICsrKysrLS0KIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0Lmgg
ICAgIHwgICAgNCArLS0KIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFz
ZS5oICAgICAgIHwgICAgMiArLQogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFw
cGVyLmNwcCAgICAgICAgfCAgICA1IC0tLQogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XcmFwcGVyLmggICAgICAgICAgfCAgICA0IC0tCiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU05vZGVDdXN0b20uY3BwICAgICAgICB8ICAgIDQgKystCiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmggICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIHwgICAyMiArKystLS0tLS0tLS0K
IFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oICAgICAgICAgIHwgICAg
MiArLQogU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcCAgICAgICAgICAg
fCAgICA0IC0tCiBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaCAgICAgICAg
ICAgICB8ICAgIDEgLQogLi4uL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1l
T2JqZWN0LmggfCAgICAyIC0KIC4uLi9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2Jq
ZWN0Lm1tICAgICAgIHwgICAgNCAtLQogOTQgZmlsZXMgY2hhbmdlZCwgNjcgaW5zZXJ0aW9ucygr
KSwgNTAxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5leHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
ZXhwCmluZGV4IDIwNTNkOTMuLjJlNGNlMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLmV4cApAQCAtMTM5LDcgKzEzOSw2IEBAIF9fWk4zSlNDMTJKU0dsb2JhbERhdGEx
MmNyZWF0ZUxlYWtlZEVOU18xNVRocmVhZFN0YWNrVHlwZUVOU184SGVhcFNpemVFCiBfX1pOM0pT
QzEySlNHbG9iYWxEYXRhMTJzdG9wU2FtcGxpbmdFdgogX19aTjNKU0MxMkpTR2xvYmFsRGF0YTEz
c3RhcnRTYW1wbGluZ0V2CiBfX1pOM0pTQzEySlNHbG9iYWxEYXRhMTRkdW1wU2FtcGxlRGF0YUVQ
TlNfOUV4ZWNTdGF0ZUUKLV9fWk4zSlNDMTJKU0dsb2JhbERhdGExNGpzRnVuY3Rpb25WUHRyRQog
X19aTjNKU0MxMkpTR2xvYmFsRGF0YTE0cmVzZXREYXRlQ2FjaGVFdgogX19aTjNKU0MxMkpTR2xv
YmFsRGF0YTE0c2hhcmVkSW5zdGFuY2VFdgogX19aTjNKU0MxMkpTR2xvYmFsRGF0YTE1ZHVtcFJl
Z0V4cFRyYWNlRXYKQEAgLTE2Nyw3ICsxNjYsNiBAQCBfX1pOM0pTQzEzU3RhdGVtZW50Tm9kZTZz
ZXRMb2NFaWkKIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDEwZ2xvYmFsRXhlY0V2CiBfX1pOM0pT
QzE0SlNHbG9iYWxPYmplY3QxMmRlZmluZUdldHRlckVQTlNfOEpTT2JqZWN0RVBOU185RXhlY1N0
YXRlRVJLTlNfMTBJZGVudGlmaWVyRVMyX2oKIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDEyZGVm
aW5lU2V0dGVyRVBOU184SlNPYmplY3RFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJF
UzJfagotX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTJ2dGFibGVBbmNob3JFdgogX19aTjNKU0Mx
NEpTR2xvYmFsT2JqZWN0MTNjbGVhclJhcmVEYXRhRVBOU182SlNDZWxsRQogX19aTjNKU0MxNEpT
R2xvYmFsT2JqZWN0MTN2aXNpdENoaWxkcmVuRVBOU182SlNDZWxsRVJOU18xMVNsb3RWaXNpdG9y
RQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTZhZGRTdGF0aWNHbG9iYWxzRVBOUzBfMThHbG9i
YWxQcm9wZXJ0eUluZm9FaQpAQCAtMTk1LDEyICsxOTMsMTAgQEAgX19aTjNKU0MxNVdlYWtIYW5k
bGVPd25lcjI2aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHNFTlNfNkhhbmRsZUlOU183VW5rbm93
bkVFRVAKIF9fWk4zSlNDMTVXZWFrSGFuZGxlT3duZXI4ZmluYWxpemVFTlNfNkhhbmRsZUlOU183
VW5rbm93bkVFRVB2CiBfX1pOM0pTQzE1V2Vha0hhbmRsZU93bmVyRDJFdgogX19aTjNKU0MxNWNy
ZWF0ZVR5cGVFcnJvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzdVU3RyaW5nRQotX19aTjNKU0MxNklu
dGVybmFsRnVuY3Rpb24xMnZ0YWJsZUFuY2hvckV2CiBfX1pOM0pTQzE2SW50ZXJuYWxGdW5jdGlv
bjE0ZmluaXNoQ3JlYXRpb25FUk5TXzEySlNHbG9iYWxEYXRhRVJLTlNfMTBJZGVudGlmaWVyRQog
X19aTjNKU0MxNkludGVybmFsRnVuY3Rpb240bmFtZUVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk4zSlND
MTZJbnRlcm5hbEZ1bmN0aW9uNnNfaW5mb0UKIF9fWk4zSlNDMTZJbnRlcm5hbEZ1bmN0aW9uQzJF
UE5TXzE0SlNHbG9iYWxPYmplY3RFUE5TXzlTdHJ1Y3R1cmVFCi1fX1pOM0pTQzE2SlNOb25GaW5h
bE9iamVjdDEydnRhYmxlQW5jaG9yRXYKIF9fWk4zSlNDMTZKU05vbkZpbmFsT2JqZWN0N2Rlc3Ry
b3lFUE5TXzZKU0NlbGxFCiBfX1pOM0pTQzE2SlNWYXJpYWJsZU9iamVjdDE0ZGVsZXRlUHJvcGVy
dHlFUE5TXzZKU0NlbGxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFCiBfX1pOM0pT
QzE2SlNWYXJpYWJsZU9iamVjdDE0c3ltYm9sVGFibGVHZXRFUktOU18xMElkZW50aWZpZXJFUk5T
XzE4UHJvcGVydHlEZXNjcmlwdG9yRQpAQCAtMzE5LDcgKzMxNSw2IEBAIF9fWk4zSlNDOEpTT2Jq
ZWN0MTJkZWZpbmVTZXR0ZXJFUFMwX1BOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVMx
X2oKIF9fWk4zSlNDOEpTT2JqZWN0MTJsb29rdXBHZXR0ZXJFUE5TXzlFeGVjU3RhdGVFUktOU18x
MElkZW50aWZpZXJFCiBfX1pOM0pTQzhKU09iamVjdDEybG9va3VwU2V0dGVyRVBOU185RXhlY1N0
YXRlRVJLTlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0M4SlNPYmplY3QxMnRvVGhpc09iamVjdEVQ
TlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUUKLV9fWk4zSlNDOEpTT2JqZWN0MTJ2dGFibGVBbmNo
b3JFdgogX19aTjNKU0M4SlNPYmplY3QxM3Zpc2l0Q2hpbGRyZW5FUE5TXzZKU0NlbGxFUk5TXzEx
U2xvdFZpc2l0b3JFCiBfX1pOM0pTQzhKU09iamVjdDE0ZGVsZXRlUHJvcGVydHlFUE5TXzZKU0Nl
bGxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFCiBfX1pOM0pTQzhKU09iamVjdDE2
Z2V0UHJvcGVydHlOYW1lc0VQUzBfUE5TXzlFeGVjU3RhdGVFUk5TXzE3UHJvcGVydHlOYW1lQXJy
YXlFTlNfMTVFbnVtZXJhdGlvbk1vZGVFCkBAIC02MjUsMTggKzYyMCw3IEBAIF9fWk5LM1dURjZT
dHJpbmc4dG9JbnRQdHJFUGIKIF9fWk5LM1dURjZTdHJpbmc4dG9VSW50NjRFUGIKIF9fWk5LM1dU
RjZTdHJpbmc5c3Vic3RyaW5nRWpqCiBfX1pOSzNXVEY4Q29sbGF0b3I3Y29sbGF0ZUVQS3RtUzJf
bQotX19aVFZOM0pTQzEyU3RyaW5nT2JqZWN0RQotX19aVFZOM0pTQzEzSlNGaW5hbE9iamVjdEUK
LV9fWlRWTjNKU0MxNEpTR2xvYmFsT2JqZWN0RQotX19aVFZOM0pTQzE0U2NvcGVDaGFpbk5vZGVF
Ci1fX1pUVk4zSlNDMTVKU1dyYXBwZXJPYmplY3RFCiBfX1pUVk4zSlNDMTVXZWFrSGFuZGxlT3du
ZXJFCi1fX1pUVk4zSlNDMTZJbnRlcm5hbEZ1bmN0aW9uRQotX19aVFZOM0pTQzE2SlNOb25GaW5h
bE9iamVjdEUKLV9fWlRWTjNKU0MxNkpTVmFyaWFibGVPYmplY3RFCi1fX1pUVk4zSlNDNkpTQ2Vs
bEUKIF9fWlRWTjNKU0M4RGVidWdnZXJFCi1fX1pUVk4zSlNDOEpTT2JqZWN0RQotX19aVFZOM0pT
QzhKU1N0cmluZ0UKIF9qc2NvcmVfZmFzdG1hbGxvY19pbnRyb3NwZWN0aW9uCiBfa0pTQ2xhc3NE
ZWZpbml0aW9uRW1wdHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dl
ci9EZWJ1Z2dlckFjdGl2YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9E
ZWJ1Z2dlckFjdGl2YXRpb24uaAppbmRleCAyNmViYzdhLi42OGNjM2EzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCkBAIC0z
MCw5ICszMCw2IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9uLXZpcnR1YWwt
ZHRvciIKLQogICAgIGNsYXNzIERlYnVnZ2VyQWN0aXZhdGlvbiA6IHB1YmxpYyBKU05vbkZpbmFs
T2JqZWN0IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBC
YXNlOwpAQCAtNzIsOCArNjksNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgV3JpdGVCYXJy
aWVyPEpTQWN0aXZhdGlvbj4gbV9hY3RpdmF0aW9uOwogICAgIH07CiAKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBEZWJ1Z2dl
ckFjdGl2YXRpb25faApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcAppbmRleCA4YTE1YzIzLi45OGE0NTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMTA3OSw0MiArMTA3OSw0MiBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjaGVja0FyZ3VtZW50VHlwZXMoKQogICAgICAgICAgICAg
R1BSVGVtcG9yYXJ5IHRlbXAodGhpcyk7CiAgICAgICAgICAgICBtX2ppdC5sb2FkUHRyKEpJVENv
bXBpbGVyOjphZGRyZXNzRm9yKHZpcnR1YWxSZWdpc3RlciksIHRlbXAuZ3ByKCkpOwogICAgICAg
ICAgICAgc3BlY3VsYXRpb25DaGVjayhKU1ZhbHVlUmVncygpLCBOb05vZGUsIG1faml0LmJyYW5j
aFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIHRlbXAuZ3ByKCksIEdQUkluZm86OnRh
Z01hc2tSZWdpc3RlcikpOwotICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhKU1ZhbHVlUmVn
cygpLCBOb05vZGUsIG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1h
Y3JvQXNzZW1ibGVyOjpBZGRyZXNzKHRlbXAuZ3ByKCkpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbVB0cihtX2ppdC5nbG9iYWxEYXRhKCktPmludDhBcnJheURlc2NyaXB0b3IoKS5tX3ZwdHIp
KSk7CisgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEpTVmFsdWVSZWdzKCksIE5vTm9kZSwg
bV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3ModGVtcC5ncHIoKSwgSlNDZWxsOjpjbGFzc0luZm9PZmZzZXQoKSksIE1hY3JvQXNz
ZW1ibGVyOjpUcnVzdGVkSW1tUHRyKG1faml0Lmdsb2JhbERhdGEoKS0+aW50OEFycmF5RGVzY3Jp
cHRvcigpLm1fY2xhc3NJbmZvKSkpOwogICAgICAgICB9IGVsc2UgaWYgKGlzSW50MTZBcnJheVBy
ZWRpY3Rpb24ocHJlZGljdGVkVHlwZSkpIHsKICAgICAgICAgICAgIEdQUlRlbXBvcmFyeSB0ZW1w
KHRoaXMpOwogICAgICAgICAgICAgbV9qaXQubG9hZFB0cihKSVRDb21waWxlcjo6YWRkcmVzc0Zv
cih2aXJ0dWFsUmVnaXN0ZXIpLCB0ZW1wLmdwcigpKTsKICAgICAgICAgICAgIHNwZWN1bGF0aW9u
Q2hlY2soSlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlLCBtX2ppdC5icmFuY2hUZXN0UHRyKE1hY3JvQXNz
ZW1ibGVyOjpOb25aZXJvLCB0ZW1wLmdwcigpLCBHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpKTsK
LSAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlLCBtX2pp
dC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyh0ZW1wLmdwcigpKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIobV9qaXQuZ2xv
YmFsRGF0YSgpLT5pbnQxNkFycmF5RGVzY3JpcHRvcigpLm1fdnB0cikpKTsKKyAgICAgICAgICAg
IHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlLCBtX2ppdC5icmFuY2hQdHIo
TWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyh0ZW1wLmdw
cigpLCBKU0NlbGw6OmNsYXNzSW5mb09mZnNldCgpKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW1QdHIobV9qaXQuZ2xvYmFsRGF0YSgpLT5pbnQxNkFycmF5RGVzY3JpcHRvcigpLm1fY2xhc3NJ
bmZvKSkpOwogICAgICAgICB9IGVsc2UgaWYgKGlzSW50MzJBcnJheVByZWRpY3Rpb24ocHJlZGlj
dGVkVHlwZSkpIHsKICAgICAgICAgICAgIEdQUlRlbXBvcmFyeSB0ZW1wKHRoaXMpOwogICAgICAg
ICAgICAgbV9qaXQubG9hZFB0cihKSVRDb21waWxlcjo6YWRkcmVzc0Zvcih2aXJ0dWFsUmVnaXN0
ZXIpLCB0ZW1wLmdwcigpKTsKICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVJl
Z3MoKSwgTm9Ob2RlLCBtX2ppdC5icmFuY2hUZXN0UHRyKE1hY3JvQXNzZW1ibGVyOjpOb25aZXJv
LCB0ZW1wLmdwcigpLCBHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpKTsKLSAgICAgICAgICAgIHNw
ZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlLCBtX2ppdC5icmFuY2hQdHIoTWFj
cm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyh0ZW1wLmdwcigp
KSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIobV9qaXQuZ2xvYmFsRGF0YSgpLT5pbnQz
MkFycmF5RGVzY3JpcHRvcigpLm1fdnB0cikpKTsKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hl
Y2soSlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlLCBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6
Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyh0ZW1wLmdwcigpLCBKU0NlbGw6OmNs
YXNzSW5mb09mZnNldCgpKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIobV9qaXQuZ2xv
YmFsRGF0YSgpLT5pbnQzMkFycmF5RGVzY3JpcHRvcigpLm1fY2xhc3NJbmZvKSkpOwogICAgICAg
ICB9IGVsc2UgaWYgKGlzVWludDhBcnJheVByZWRpY3Rpb24ocHJlZGljdGVkVHlwZSkpIHsKICAg
ICAgICAgICAgIEdQUlRlbXBvcmFyeSB0ZW1wKHRoaXMpOwogICAgICAgICAgICAgbV9qaXQubG9h
ZFB0cihKSVRDb21waWxlcjo6YWRkcmVzc0Zvcih2aXJ0dWFsUmVnaXN0ZXIpLCB0ZW1wLmdwcigp
KTsKICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlLCBt
X2ppdC5icmFuY2hUZXN0UHRyKE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLCB0ZW1wLmdwcigpLCBH
UFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpKTsKLSAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2so
SlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlLCBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5v
dEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyh0ZW1wLmdwcigpKSwgTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW1QdHIobV9qaXQuZ2xvYmFsRGF0YSgpLT51aW50OEFycmF5RGVzY3JpcHRv
cigpLm1fdnB0cikpKTsKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVJlZ3Mo
KSwgTm9Ob2RlLCBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBNYWNy
b0Fzc2VtYmxlcjo6QWRkcmVzcyh0ZW1wLmdwcigpLCBKU0NlbGw6OmNsYXNzSW5mb09mZnNldCgp
KSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIobV9qaXQuZ2xvYmFsRGF0YSgpLT51aW50
OEFycmF5RGVzY3JpcHRvcigpLm1fY2xhc3NJbmZvKSkpOwogICAgICAgICB9IGVsc2UgaWYgKGlz
VWludDE2QXJyYXlQcmVkaWN0aW9uKHByZWRpY3RlZFR5cGUpKSB7CiAgICAgICAgICAgICBHUFJU
ZW1wb3JhcnkgdGVtcCh0aGlzKTsKICAgICAgICAgICAgIG1faml0LmxvYWRQdHIoSklUQ29tcGls
ZXI6OmFkZHJlc3NGb3IodmlydHVhbFJlZ2lzdGVyKSwgdGVtcC5ncHIoKSk7CiAgICAgICAgICAg
ICBzcGVjdWxhdGlvbkNoZWNrKEpTVmFsdWVSZWdzKCksIE5vTm9kZSwgbV9qaXQuYnJhbmNoVGVz
dFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywgdGVtcC5ncHIoKSwgR1BSSW5mbzo6dGFnTWFz
a1JlZ2lzdGVyKSk7Ci0gICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEpTVmFsdWVSZWdzKCks
IE5vTm9kZSwgbV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3ModGVtcC5ncHIoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
UHRyKG1faml0Lmdsb2JhbERhdGEoKS0+dWludDE2QXJyYXlEZXNjcmlwdG9yKCkubV92cHRyKSkp
OworICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhKU1ZhbHVlUmVncygpLCBOb05vZGUsIG1f
aml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzKHRlbXAuZ3ByKCksIEpTQ2VsbDo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbVB0cihtX2ppdC5nbG9iYWxEYXRhKCktPnVpbnQxNkFycmF5RGVzY3Jp
cHRvcigpLm1fY2xhc3NJbmZvKSkpOwogICAgICAgICB9IGVsc2UgaWYgKGlzVWludDMyQXJyYXlQ
cmVkaWN0aW9uKHByZWRpY3RlZFR5cGUpKSB7CiAgICAgICAgICAgICBHUFJUZW1wb3JhcnkgdGVt
cCh0aGlzKTsKICAgICAgICAgICAgIG1faml0LmxvYWRQdHIoSklUQ29tcGlsZXI6OmFkZHJlc3NG
b3IodmlydHVhbFJlZ2lzdGVyKSwgdGVtcC5ncHIoKSk7CiAgICAgICAgICAgICBzcGVjdWxhdGlv
bkNoZWNrKEpTVmFsdWVSZWdzKCksIE5vTm9kZSwgbV9qaXQuYnJhbmNoVGVzdFB0cihNYWNyb0Fz
c2VtYmxlcjo6Tm9uWmVybywgdGVtcC5ncHIoKSwgR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyKSk7
Ci0gICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEpTVmFsdWVSZWdzKCksIE5vTm9kZSwgbV9q
aXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3ModGVtcC5ncHIoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKG1faml0Lmds
b2JhbERhdGEoKS0+dWludDMyQXJyYXlEZXNjcmlwdG9yKCkubV92cHRyKSkpOworICAgICAgICAg
ICAgc3BlY3VsYXRpb25DaGVjayhKU1ZhbHVlUmVncygpLCBOb05vZGUsIG1faml0LmJyYW5jaFB0
cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHRlbXAu
Z3ByKCksIEpTQ2VsbDo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbVB0cihtX2ppdC5nbG9iYWxEYXRhKCktPnVpbnQzMkFycmF5RGVzY3JpcHRvcigpLm1fY2xh
c3NJbmZvKSkpOwogICAgICAgICB9IGVsc2UgaWYgKGlzRmxvYXQzMkFycmF5UHJlZGljdGlvbihw
cmVkaWN0ZWRUeXBlKSkgewogICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHRlbXAodGhpcyk7CiAg
ICAgICAgICAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKHZpcnR1YWxS
ZWdpc3RlciksIHRlbXAuZ3ByKCkpOwogICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhKU1Zh
bHVlUmVncygpLCBOb05vZGUsIG1faml0LmJyYW5jaFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5v
blplcm8sIHRlbXAuZ3ByKCksIEdQUkluZm86OnRhZ01hc2tSZWdpc3RlcikpOwotICAgICAgICAg
ICAgc3BlY3VsYXRpb25DaGVjayhKU1ZhbHVlUmVncygpLCBOb05vZGUsIG1faml0LmJyYW5jaFB0
cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHRlbXAu
Z3ByKCkpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihtX2ppdC5nbG9iYWxEYXRhKCkt
PmZsb2F0MzJBcnJheURlc2NyaXB0b3IoKS5tX3ZwdHIpKSk7CisgICAgICAgICAgICBzcGVjdWxh
dGlvbkNoZWNrKEpTVmFsdWVSZWdzKCksIE5vTm9kZSwgbV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNz
ZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3ModGVtcC5ncHIoKSwgSlND
ZWxsOjpjbGFzc0luZm9PZmZzZXQoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKG1f
aml0Lmdsb2JhbERhdGEoKS0+ZmxvYXQzMkFycmF5RGVzY3JpcHRvcigpLm1fY2xhc3NJbmZvKSkp
OwogICAgICAgICB9IGVsc2UgaWYgKGlzRmxvYXQ2NEFycmF5UHJlZGljdGlvbihwcmVkaWN0ZWRU
eXBlKSkgewogICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHRlbXAodGhpcyk7CiAgICAgICAgICAg
ICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKHZpcnR1YWxSZWdpc3Rlciks
IHRlbXAuZ3ByKCkpOwogICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhKU1ZhbHVlUmVncygp
LCBOb05vZGUsIG1faml0LmJyYW5jaFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIHRl
bXAuZ3ByKCksIEdQUkluZm86OnRhZ01hc2tSZWdpc3RlcikpOwotICAgICAgICAgICAgc3BlY3Vs
YXRpb25DaGVjayhKU1ZhbHVlUmVncygpLCBOb05vZGUsIG1faml0LmJyYW5jaFB0cihNYWNyb0Fz
c2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHRlbXAuZ3ByKCkpLCBN
YWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihtX2ppdC5nbG9iYWxEYXRhKCktPmZsb2F0NjRB
cnJheURlc2NyaXB0b3IoKS5tX3ZwdHIpKSk7CisgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNr
KEpTVmFsdWVSZWdzKCksIE5vTm9kZSwgbV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpO
b3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3ModGVtcC5ncHIoKSwgSlNDZWxsOjpjbGFz
c0luZm9PZmZzZXQoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKG1faml0Lmdsb2Jh
bERhdGEoKS0+ZmxvYXQ2NEFycmF5RGVzY3JpcHRvcigpLm1fY2xhc3NJbmZvKSkpOwogICAgICAg
ICB9CiAjZWxzZQogICAgICAgICBpZiAoaXNJbnQzMlByZWRpY3Rpb24ocHJlZGljdGVkVHlwZSkp
CkBAIC0xMTM4LDQ5ICsxMTM4LDQ5IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNoZWNrQXJndW1l
bnRUeXBlcygpCiAgICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnRhZ0Zvcih2
aXJ0dWFsUmVnaXN0ZXIpLCB0ZW1wLmdwcigpKTsKICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hl
Y2soSlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlLCBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6
Tm90RXF1YWwsIHRlbXAuZ3ByKCksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSkpOwog
ICAgICAgICAgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKHZpcnR1YWxS
ZWdpc3RlciksIHRlbXAuZ3ByKCkpOwotICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhKU1Zh
bHVlUmVncygpLCBOb05vZGUsIG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1
YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHRlbXAuZ3ByKCkpLCBNYWNyb0Fzc2VtYmxlcjo6
VHJ1c3RlZEltbVB0cihtX2ppdC5nbG9iYWxEYXRhKCktPmludDhBcnJheURlc2NyaXB0b3IoKS5t
X3ZwdHIpKSk7CisgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEpTVmFsdWVSZWdzKCksIE5v
Tm9kZSwgbV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3ModGVtcC5ncHIoKSwgSlNDZWxsOjpjbGFzc0luZm9PZmZzZXQoKSksIE1h
Y3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKG1faml0Lmdsb2JhbERhdGEoKS0+aW50OEFycmF5
RGVzY3JpcHRvcigpLm1fY2xhc3NJbmZvKSkpOwogICAgICAgICB9IGVsc2UgaWYgKGlzSW50MTZB
cnJheVByZWRpY3Rpb24ocHJlZGljdGVkVHlwZSkpIHsKICAgICAgICAgICAgIEdQUlRlbXBvcmFy
eSB0ZW1wKHRoaXMpOwogICAgICAgICAgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjp0YWdG
b3IodmlydHVhbFJlZ2lzdGVyKSwgdGVtcC5ncHIoKSk7CiAgICAgICAgICAgICBzcGVjdWxhdGlv
bkNoZWNrKEpTVmFsdWVSZWdzKCksIE5vTm9kZSwgbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJs
ZXI6Ok5vdEVxdWFsLCB0ZW1wLmdwcigpLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykp
KTsKICAgICAgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6cGF5bG9hZEZvcih2aXJ0
dWFsUmVnaXN0ZXIpLCB0ZW1wLmdwcigpKTsKLSAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2so
SlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlLCBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5v
dEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyh0ZW1wLmdwcigpKSwgTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW1QdHIobV9qaXQuZ2xvYmFsRGF0YSgpLT5pbnQxNkFycmF5RGVzY3JpcHRv
cigpLm1fdnB0cikpKTsKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVJlZ3Mo
KSwgTm9Ob2RlLCBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBNYWNy
b0Fzc2VtYmxlcjo6QWRkcmVzcyh0ZW1wLmdwcigpLCBKU0NlbGw6OmNsYXNzSW5mb09mZnNldCgp
KSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIobV9qaXQuZ2xvYmFsRGF0YSgpLT5pbnQx
NkFycmF5RGVzY3JpcHRvcigpLm1fY2xhc3NJbmZvKSkpOwogICAgICAgICB9IGVsc2UgaWYgKGlz
SW50MzJBcnJheVByZWRpY3Rpb24ocHJlZGljdGVkVHlwZSkpIHsKICAgICAgICAgICAgIEdQUlRl
bXBvcmFyeSB0ZW1wKHRoaXMpOwogICAgICAgICAgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVy
Ojp0YWdGb3IodmlydHVhbFJlZ2lzdGVyKSwgdGVtcC5ncHIoKSk7CiAgICAgICAgICAgICBzcGVj
dWxhdGlvbkNoZWNrKEpTVmFsdWVSZWdzKCksIE5vTm9kZSwgbV9qaXQuYnJhbmNoMzIoTWFjcm9B
c3NlbWJsZXI6Ok5vdEVxdWFsLCB0ZW1wLmdwcigpLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2Vs
bFRhZykpKTsKICAgICAgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6cGF5bG9hZEZv
cih2aXJ0dWFsUmVnaXN0ZXIpLCB0ZW1wLmdwcigpKTsKLSAgICAgICAgICAgIHNwZWN1bGF0aW9u
Q2hlY2soSlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlLCBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJs
ZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyh0ZW1wLmdwcigpKSwgTWFjcm9B
c3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIobV9qaXQuZ2xvYmFsRGF0YSgpLT5pbnQzMkFycmF5RGVz
Y3JpcHRvcigpLm1fdnB0cikpKTsKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1
ZVJlZ3MoKSwgTm9Ob2RlLCBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFs
LCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyh0ZW1wLmdwcigpLCBKU0NlbGw6OmNsYXNzSW5mb09m
ZnNldCgpKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIobV9qaXQuZ2xvYmFsRGF0YSgp
LT5pbnQzMkFycmF5RGVzY3JpcHRvcigpLm1fY2xhc3NJbmZvKSkpOwogICAgICAgICB9IGVsc2Ug
aWYgKGlzVWludDhBcnJheVByZWRpY3Rpb24ocHJlZGljdGVkVHlwZSkpIHsKICAgICAgICAgICAg
IEdQUlRlbXBvcmFyeSB0ZW1wKHRoaXMpOwogICAgICAgICAgICAgbV9qaXQubG9hZDMyKEpJVENv
bXBpbGVyOjp0YWdGb3IodmlydHVhbFJlZ2lzdGVyKSwgdGVtcC5ncHIoKSk7CiAgICAgICAgICAg
ICBzcGVjdWxhdGlvbkNoZWNrKEpTVmFsdWVSZWdzKCksIE5vTm9kZSwgbV9qaXQuYnJhbmNoMzIo
TWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCB0ZW1wLmdwcigpLCBUcnVzdGVkSW1tMzIoSlNWYWx1
ZTo6Q2VsbFRhZykpKTsKICAgICAgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6cGF5
bG9hZEZvcih2aXJ0dWFsUmVnaXN0ZXIpLCB0ZW1wLmdwcigpKTsKLSAgICAgICAgICAgIHNwZWN1
bGF0aW9uQ2hlY2soSlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlLCBtX2ppdC5icmFuY2hQdHIoTWFjcm9B
c3NlbWJsZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyh0ZW1wLmdwcigpKSwg
TWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIobV9qaXQuZ2xvYmFsRGF0YSgpLT51aW50OEFy
cmF5RGVzY3JpcHRvcigpLm1fdnB0cikpKTsKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2so
SlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlLCBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5v
dEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyh0ZW1wLmdwcigpLCBKU0NlbGw6OmNsYXNz
SW5mb09mZnNldCgpKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIobV9qaXQuZ2xvYmFs
RGF0YSgpLT51aW50OEFycmF5RGVzY3JpcHRvcigpLm1fY2xhc3NJbmZvKSkpOwogICAgICAgICB9
IGVsc2UgaWYgKGlzVWludDE2QXJyYXlQcmVkaWN0aW9uKHByZWRpY3RlZFR5cGUpKSB7CiAgICAg
ICAgICAgICBHUFJUZW1wb3JhcnkgdGVtcCh0aGlzKTsKICAgICAgICAgICAgIG1faml0LmxvYWQz
MihKSVRDb21waWxlcjo6dGFnRm9yKHZpcnR1YWxSZWdpc3RlciksIHRlbXAuZ3ByKCkpOwogICAg
ICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhKU1ZhbHVlUmVncygpLCBOb05vZGUsIG1faml0LmJy
YW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgdGVtcC5ncHIoKSwgVHJ1c3RlZEltbTMy
KEpTVmFsdWU6OkNlbGxUYWcpKSk7CiAgICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGls
ZXI6OnBheWxvYWRGb3IodmlydHVhbFJlZ2lzdGVyKSwgdGVtcC5ncHIoKSk7Ci0gICAgICAgICAg
ICBzcGVjdWxhdGlvbkNoZWNrKEpTVmFsdWVSZWdzKCksIE5vTm9kZSwgbV9qaXQuYnJhbmNoUHRy
KE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3ModGVtcC5n
cHIoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKG1faml0Lmdsb2JhbERhdGEoKS0+
dWludDE2QXJyYXlEZXNjcmlwdG9yKCkubV92cHRyKSkpOworICAgICAgICAgICAgc3BlY3VsYXRp
b25DaGVjayhKU1ZhbHVlUmVncygpLCBOb05vZGUsIG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2Vt
Ymxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHRlbXAuZ3ByKCksIEpTQ2Vs
bDo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihtX2pp
dC5nbG9iYWxEYXRhKCktPnVpbnQxNkFycmF5RGVzY3JpcHRvcigpLm1fY2xhc3NJbmZvKSkpOwog
ICAgICAgICB9ICBlbHNlIGlmIChpc1VpbnQzMkFycmF5UHJlZGljdGlvbihwcmVkaWN0ZWRUeXBl
KSkgewogICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHRlbXAodGhpcyk7CiAgICAgICAgICAgICBt
X2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnRhZ0Zvcih2aXJ0dWFsUmVnaXN0ZXIpLCB0ZW1wLmdw
cigpKTsKICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVJlZ3MoKSwgTm9Ob2Rl
LCBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIHRlbXAuZ3ByKCksIFRy
dXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSkpOwogICAgICAgICAgICAgbV9qaXQubG9hZDMy
KEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKHZpcnR1YWxSZWdpc3RlciksIHRlbXAuZ3ByKCkpOwot
ICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhKU1ZhbHVlUmVncygpLCBOb05vZGUsIG1faml0
LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKHRlbXAuZ3ByKCkpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihtX2ppdC5nbG9i
YWxEYXRhKCktPnVpbnQzMkFycmF5RGVzY3JpcHRvcigpLm1fdnB0cikpKTsKKyAgICAgICAgICAg
IHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlLCBtX2ppdC5icmFuY2hQdHIo
TWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyh0ZW1wLmdw
cigpLCBKU0NlbGw6OmNsYXNzSW5mb09mZnNldCgpKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW1QdHIobV9qaXQuZ2xvYmFsRGF0YSgpLT51aW50MzJBcnJheURlc2NyaXB0b3IoKS5tX2NsYXNz
SW5mbykpKTsKICAgICAgICAgfSAgZWxzZSBpZiAoaXNGbG9hdDMyQXJyYXlQcmVkaWN0aW9uKHBy
ZWRpY3RlZFR5cGUpKSB7CiAgICAgICAgICAgICBHUFJUZW1wb3JhcnkgdGVtcCh0aGlzKTsKICAg
ICAgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6dGFnRm9yKHZpcnR1YWxSZWdpc3Rl
ciksIHRlbXAuZ3ByKCkpOwogICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhKU1ZhbHVlUmVn
cygpLCBOb05vZGUsIG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgdGVt
cC5ncHIoKSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKSk7CiAgICAgICAgICAgICBt
X2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnBheWxvYWRGb3IodmlydHVhbFJlZ2lzdGVyKSwgdGVt
cC5ncHIoKSk7Ci0gICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEpTVmFsdWVSZWdzKCksIE5v
Tm9kZSwgbV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3ModGVtcC5ncHIoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRy
KG1faml0Lmdsb2JhbERhdGEoKS0+ZmxvYXQzMkFycmF5RGVzY3JpcHRvcigpLm1fdnB0cikpKTsK
KyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVJlZ3MoKSwgTm9Ob2RlLCBtX2pp
dC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyh0ZW1wLmdwcigpLCBKU0NlbGw6OmNsYXNzSW5mb09mZnNldCgpKSwgTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW1QdHIobV9qaXQuZ2xvYmFsRGF0YSgpLT5mbG9hdDMyQXJyYXlEZXNjcmlw
dG9yKCkubV9jbGFzc0luZm8pKSk7CiAgICAgICAgIH0gICBlbHNlIGlmIChpc0Zsb2F0NjRBcnJh
eVByZWRpY3Rpb24ocHJlZGljdGVkVHlwZSkpIHsKICAgICAgICAgICAgIEdQUlRlbXBvcmFyeSB0
ZW1wKHRoaXMpOwogICAgICAgICAgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjp0YWdGb3Io
dmlydHVhbFJlZ2lzdGVyKSwgdGVtcC5ncHIoKSk7CiAgICAgICAgICAgICBzcGVjdWxhdGlvbkNo
ZWNrKEpTVmFsdWVSZWdzKCksIE5vTm9kZSwgbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6
Ok5vdEVxdWFsLCB0ZW1wLmdwcigpLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpKTsK
ICAgICAgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6cGF5bG9hZEZvcih2aXJ0dWFs
UmVnaXN0ZXIpLCB0ZW1wLmdwcigpKTsKLSAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNW
YWx1ZVJlZ3MoKSwgTm9Ob2RlLCBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVx
dWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyh0ZW1wLmdwcigpKSwgTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW1QdHIobV9qaXQuZ2xvYmFsRGF0YSgpLT5mbG9hdDY0QXJyYXlEZXNjcmlwdG9y
KCkubV92cHRyKSkpOworICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhKU1ZhbHVlUmVncygp
LCBOb05vZGUsIG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKHRlbXAuZ3ByKCksIEpTQ2VsbDo6Y2xhc3NJbmZvT2Zmc2V0KCkp
LCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihtX2ppdC5nbG9iYWxEYXRhKCktPmZsb2F0
NjRBcnJheURlc2NyaXB0b3IoKS5tX2NsYXNzSW5mbykpKTsKICAgICAgICAgfSAKICNlbmRpZgog
ICAgIH0KQEAgLTE1ODksNyArMTU4OSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVH
ZXRUeXBlZEFycmF5TGVuZ3RoKGNvbnN0IFR5cGVkQXJyYXlEZXNjcmlwdG9yJiBkZXNjCiAgICAg
R1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKICAgICAKICAgICBpZiAobmVlZHNTcGVj
dWxhdGlvbkNoZWNrKQotICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEpTVmFsdWVTb3VyY2U6OnVu
Ym94ZWRDZWxsKGJhc2VHUFIpLCBub2RlLmNoaWxkMSgpLCBtX2ppdC5icmFuY2hQdHIoTWFjcm9B
c3NlbWJsZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlR1BSKSwgTWFj
cm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoZGVzY3JpcHRvci5tX3ZwdHIpKSk7CisgICAgICAg
IHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoYmFzZUdQUiksIG5v
ZGUuY2hpbGQxKCksIG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1h
Y3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VHUFIsIEpTQ2VsbDo6Y2xhc3NJbmZvT2Zmc2V0KCkp
LCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihkZXNjcmlwdG9yLm1fY2xhc3NJbmZvKSkp
OwogICAgIAogICAgIG1faml0LmxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlR1BS
LCBkZXNjcmlwdG9yLm1fbGVuZ3RoT2Zmc2V0KSwgcmVzdWx0R1BSKTsKICAgICAKQEAgLTE2NTIs
NyArMTY1Miw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckludFR5
cGVkQXJyYXkoY29uc3QgVHlwZWRBcnJheURlc2NyaXB0b3ImCiAgICAgTm9kZUluZGV4IHZhbHVl
SW5kZXggPSBub2RlLmNoaWxkMygpOwogICAgIAogICAgIGlmIChzcGVjdWxhdGlvblJlcXVpcmVt
ZW50cyAhPSBOb1R5cGVkQXJyYXlUeXBlU3BlY0NoZWNrKQotICAgICAgICBzcGVjdWxhdGlvbkNo
ZWNrKEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKGJhc2UpLCBiYXNlSW5kZXgsIG1faml0LmJy
YW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNz
KGJhc2UpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihkZXNjcmlwdG9yLm1fdnB0cikp
KTsKKyAgICAgICAgc3BlY3VsYXRpb25DaGVjayhKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbChi
YXNlKSwgYmFzZUluZGV4LCBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFs
LCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlLCBKU0NlbGw6OmNsYXNzSW5mb09mZnNldCgp
KSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoZGVzY3JpcHRvci5tX2NsYXNzSW5mbykp
KTsKICAgICBHUFJUZW1wb3JhcnkgdmFsdWU7CiAgICAgR1BSUmVnIHZhbHVlR1BSOwogICAgIApA
QCAtMTc3NSw3ICsxNzc1LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFs
Rm9yRmxvYXRUeXBlZEFycmF5KGNvbnN0IFR5cGVkQXJyYXlEZXNjcmlwdG8KICAgICBTcGVjdWxh
dGVEb3VibGVPcGVyYW5kIHZhbHVlT3AodGhpcywgdmFsdWVJbmRleCk7CiAgICAgCiAgICAgaWYg
KHNwZWN1bGF0aW9uUmVxdWlyZW1lbnRzICE9IE5vVHlwZWRBcnJheVR5cGVTcGVjQ2hlY2spCi0g
ICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoYmFzZSks
IGJhc2VJbmRleCwgbV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgTWFj
cm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRy
KGRlc2NyaXB0b3IubV92cHRyKSkpOworICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEpTVmFsdWVT
b3VyY2U6OnVuYm94ZWRDZWxsKGJhc2UpLCBiYXNlSW5kZXgsIG1faml0LmJyYW5jaFB0cihNYWNy
b0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2UsIEpTQ2Vs
bDo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihkZXNj
cmlwdG9yLm1fY2xhc3NJbmZvKSkpOwogICAgIAogICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhp
cyk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmgKaW5kZXggZmI4NjBkMzUuLjZmZTliZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTE5NTEsMTIgKzE5NTEsMTIgQEAgcHJpdmF0ZToK
ICAgICBib29sIGNvbXBpbGVQZWVwSG9sZUJyYW5jaChOb2RlJiwgTWFjcm9Bc3NlbWJsZXI6OlJl
bGF0aW9uYWxDb25kaXRpb24sIE1hY3JvQXNzZW1ibGVyOjpEb3VibGVDb25kaXRpb24sIFNfREZH
T3BlcmF0aW9uX0VKSik7CiAgICAgdm9pZCBjb21waWxlUGVlcEhvbGVJbnRlZ2VyQnJhbmNoKE5v
ZGUmLCBOb2RlSW5kZXggYnJhbmNoTm9kZUluZGV4LCBKSVRDb21waWxlcjo6UmVsYXRpb25hbENv
bmRpdGlvbik7CiAgICAgdm9pZCBjb21waWxlUGVlcEhvbGVEb3VibGVCcmFuY2goTm9kZSYsIE5v
ZGVJbmRleCBicmFuY2hOb2RlSW5kZXgsIEpJVENvbXBpbGVyOjpEb3VibGVDb25kaXRpb24pOwot
ICAgIHZvaWQgY29tcGlsZVBlZXBIb2xlT2JqZWN0RXF1YWxpdHkoTm9kZSYsIE5vZGVJbmRleCBi
cmFuY2hOb2RlSW5kZXgsIGNvbnN0IENsYXNzSW5mbyogdnB0ciwgUHJlZGljdGlvbkNoZWNrZXIp
OworICAgIHZvaWQgY29tcGlsZVBlZXBIb2xlT2JqZWN0RXF1YWxpdHkoTm9kZSYsIE5vZGVJbmRl
eCBicmFuY2hOb2RlSW5kZXgsIGNvbnN0IENsYXNzSW5mbyosIFByZWRpY3Rpb25DaGVja2VyKTsK
ICAgICB2b2lkIGNvbXBpbGVPYmplY3RFcXVhbGl0eShOb2RlJiwgY29uc3QgQ2xhc3NJbmZvKiwg
UHJlZGljdGlvbkNoZWNrZXIpOwogICAgIHZvaWQgY29tcGlsZVZhbHVlQWRkKE5vZGUmKTsKICAg
ICB2b2lkIGNvbXBpbGVPYmplY3RPck90aGVyTG9naWNhbE5vdChOb2RlSW5kZXggdmFsdWUsIGNv
bnN0IENsYXNzSW5mbyosIGJvb2wgbmVlZFNwZWN1bGF0aW9uQ2hlY2spOwogICAgIHZvaWQgY29t
cGlsZUxvZ2ljYWxOb3QoTm9kZSYpOwotICAgIHZvaWQgZW1pdE9iamVjdE9yT3RoZXJCcmFuY2go
Tm9kZUluZGV4IHZhbHVlLCBCbG9ja0luZGV4IHRha2VuLCBCbG9ja0luZGV4IG5vdFRha2VuLCBj
b25zdCBDbGFzc0luZm8qIHZwdHIsIGJvb2wgbmVlZFNwZWN1bGF0aW9uQ2hlY2spOworICAgIHZv
aWQgZW1pdE9iamVjdE9yT3RoZXJCcmFuY2goTm9kZUluZGV4IHZhbHVlLCBCbG9ja0luZGV4IHRh
a2VuLCBCbG9ja0luZGV4IG5vdFRha2VuLCBjb25zdCBDbGFzc0luZm8qLCBib29sIG5lZWRTcGVj
dWxhdGlvbkNoZWNrKTsKICAgICB2b2lkIGVtaXRCcmFuY2goTm9kZSYpOwogICAgIAogICAgIHZv
aWQgY29tcGlsZUludGVnZXJDb21wYXJlKE5vZGUmLCBNYWNyb0Fzc2VtYmxlcjo6UmVsYXRpb25h
bENvbmRpdGlvbik7CkBAIC0yMDExLDkgKzIwMTEsNiBAQCBwcml2YXRlOgogICAgICAgICBtX2pp
dC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJlc3VsdEdQUiksIHNjcmF0Y2hHUFIp
OwogICAgICAgICBtX2ppdC5zdG9yZVB0cihzY3JhdGNoR1BSLCAmc2l6ZUNsYXNzLT5maXJzdEZy
ZWVDZWxsKTsKICAgICAgICAgCi0gICAgICAgIC8vIEluaXRpYWxpemUgdGhlIG9iamVjdCdzIHZ0
YWJsZQotICAgICAgICBtX2ppdC5zdG9yZVB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0
cihtX2ppdC5nbG9iYWxEYXRhKCktPmpzRmluYWxPYmplY3RWUHRyKSwgTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3MocmVzdWx0R1BSKSk7Ci0KICAgICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgb2JqZWN0
J3MgY2xhc3NJbmZvIHBvaW50ZXIKICAgICAgICAgbV9qaXQuc3RvcmVQdHIoTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW1QdHIoJkpTRmluYWxPYmplY3Q6OnNfaW5mbyksIE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzKHJlc3VsdEdQUiwgSlNDZWxsOjpjbGFzc0luZm9PZmZzZXQoKSkpOwogICAgICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1ZUYWJsZVNwZWN0cnVt
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1ZUYWJsZVNwZWN0cnVtLmNwcAppbmRl
eCBiOThkMWE1Li5kNWM5NGFjNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvVlRhYmxlU3BlY3RydW0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1ZU
YWJsZVNwZWN0cnVtLmNwcApAQCAtNTQsNyArNTQsOSBAQCB2b2lkIFZUYWJsZVNwZWN0cnVtOjpj
b3VudFZQdHIodm9pZCogdlRhYmxlUG9pbnRlcikKIAogdm9pZCBWVGFibGVTcGVjdHJ1bTo6Y291
bnQoSlNDZWxsKiBjZWxsKQogewotICAgIGNvdW50VlB0cihjZWxsLT52cHRyKCkpOworICAgIC8v
IEZJWE1FOiB3ZSBuZWVkIHRvIGNoYW5nZSB0aGlzIGNsYXNzIHRvIGNvdW50IENsYXNzSW5mb3Mg
cmF0aGVyIHRoYW4gdnB0cnMKKyAgICBVTlVTRURfUEFSQU0oY2VsbCk7CisgICAgLy9jb3VudFZQ
dHIoY2VsbC0+dnB0cigpKTsKIH0KIAogdm9pZCBWVGFibGVTcGVjdHJ1bTo6ZHVtcChGSUxFKiBv
dXRwdXQsIGNvbnN0IGNoYXIqIGNvbW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAppbmRleCA3Mzc3ZjJmLi4xMWQ1NGRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAK
QEAgLTE1MDgsMTMgKzE1MDgsMTIgQEAgTkVWRVJfSU5MSU5FIHZvaWQgSW50ZXJwcmV0ZXI6OnRy
eUNhY2hlR2V0QnlJRChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgQ29kZUJsb2NrKgogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhID0gJmNhbGxGcmFt
ZS0+Z2xvYmFsRGF0YSgpOwogICAgIGlmIChpc0pTQXJyYXkoYmFzZVZhbHVlKSAmJiBwcm9wZXJ0
eU5hbWUgPT0gY2FsbEZyYW1lLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKSB7CiAgICAgICAgIHZQ
Q1swXSA9IGdldE9wY29kZShvcF9nZXRfYXJyYXlfbGVuZ3RoKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIGlmIChpc0pTU3RyaW5nKGdsb2JhbERhdGEsIGJhc2VWYWx1ZSkgJiYgcHJv
cGVydHlOYW1lID09IGNhbGxGcmFtZS0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCkgeworICAgIGlm
IChpc0pTU3RyaW5nKGJhc2VWYWx1ZSkgJiYgcHJvcGVydHlOYW1lID09IGNhbGxGcmFtZS0+cHJv
cGVydHlOYW1lcygpLmxlbmd0aCkgewogICAgICAgICB2UENbMF0gPSBnZXRPcGNvZGUob3BfZ2V0
X3N0cmluZ19sZW5ndGgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMzI0Miw3ICszMjQx
LDcgQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKIAogICAgICAgICBpbnQgYmFzZSA9IHZQQ1syXS51
Lm9wZXJhbmQ7CiAgICAgICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gY2FsbEZyYW1lLT5yKGJhc2Up
LmpzVmFsdWUoKTsKLSAgICAgICAgaWYgKExJS0VMWShpc0pTU3RyaW5nKGdsb2JhbERhdGEsIGJh
c2VWYWx1ZSkpKSB7CisgICAgICAgIGlmIChMSUtFTFkoaXNKU1N0cmluZyhiYXNlVmFsdWUpKSkg
ewogICAgICAgICAgICAgaW50IGRzdCA9IHZQQ1sxXS51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBj
YWxsRnJhbWUtPnVuY2hlY2tlZFIoZHN0KSA9IGpzTnVtYmVyKGFzU3RyaW5nKGJhc2VWYWx1ZSkt
Pmxlbmd0aCgpKTsKICAgICAgICAgICAgIHZQQyArPSBPUENPREVfTEVOR1RIKG9wX2dldF9zdHJp
bmdfbGVuZ3RoKTsKQEAgLTM1MTcsOSArMzUxNiw5IEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6CiAg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGpzQXJyYXktPmdldEluZGV4KGkpOwogICAgICAg
ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0ganNBcnJheS0+SlNB
cnJheTo6Z2V0KGNhbGxGcmFtZSwgaSk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGlzSlNTdHJp
bmcoZ2xvYmFsRGF0YSwgYmFzZVZhbHVlKSAmJiBhc1N0cmluZyhiYXNlVmFsdWUpLT5jYW5HZXRJ
bmRleChpKSkKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNKU1N0cmluZyhiYXNlVmFsdWUpICYm
IGFzU3RyaW5nKGJhc2VWYWx1ZSktPmNhbkdldEluZGV4KGkpKQogICAgICAgICAgICAgICAgIHJl
c3VsdCA9IGFzU3RyaW5nKGJhc2VWYWx1ZSktPmdldEluZGV4KGNhbGxGcmFtZSwgaSk7Ci0gICAg
ICAgICAgICBlbHNlIGlmIChpc0pTQnl0ZUFycmF5KGdsb2JhbERhdGEsIGJhc2VWYWx1ZSkgJiYg
YXNCeXRlQXJyYXkoYmFzZVZhbHVlKS0+Y2FuQWNjZXNzSW5kZXgoaSkpCisgICAgICAgICAgICBl
bHNlIGlmIChpc0pTQnl0ZUFycmF5KGJhc2VWYWx1ZSkgJiYgYXNCeXRlQXJyYXkoYmFzZVZhbHVl
KS0+Y2FuQWNjZXNzSW5kZXgoaSkpCiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gYXNCeXRlQXJy
YXkoYmFzZVZhbHVlKS0+Z2V0SW5kZXgoY2FsbEZyYW1lLCBpKTsKICAgICAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgICAgICByZXN1bHQgPSBiYXNlVmFsdWUuZ2V0KGNhbGxGcmFtZSwgaSk7CkBA
IC0zNTU5LDcgKzM1NTgsNyBAQCBza2lwX2lkX2N1c3RvbV9zZWxmOgogICAgICAgICAgICAgICAg
ICAgICBqc0FycmF5LT5zZXRJbmRleCgqZ2xvYmFsRGF0YSwgaSwgY2FsbEZyYW1lLT5yKHZhbHVl
KS5qc1ZhbHVlKCkpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAg
anNBcnJheS0+SlNBcnJheTo6cHV0QnlJbmRleChqc0FycmF5LCBjYWxsRnJhbWUsIGksIGNhbGxG
cmFtZS0+cih2YWx1ZSkuanNWYWx1ZSgpKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNKU0J5
dGVBcnJheShnbG9iYWxEYXRhLCBiYXNlVmFsdWUpICYmIGFzQnl0ZUFycmF5KGJhc2VWYWx1ZSkt
PmNhbkFjY2Vzc0luZGV4KGkpKSB7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGlzSlNCeXRlQXJy
YXkoYmFzZVZhbHVlKSAmJiBhc0J5dGVBcnJheShiYXNlVmFsdWUpLT5jYW5BY2Nlc3NJbmRleChp
KSkgewogICAgICAgICAgICAgICAgIEpTQnl0ZUFycmF5KiBqc0J5dGVBcnJheSA9IGFzQnl0ZUFy
cmF5KGJhc2VWYWx1ZSk7CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSBqc1ZhbHVlID0gY2FsbEZy
YW1lLT5yKHZhbHVlKS5qc1ZhbHVlKCk7CiAgICAgICAgICAgICAgICAgaWYgKGpzVmFsdWUuaXNJ
bnQzMigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKaW5kZXggZjgzYTc1OS4uZTY0ZTY5MCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVC5oCkBAIC0zMjksNyArMzI5LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIHZvaWQgZW1pdFdyaXRlQmFycmllcihSZWdpc3RlcklEIG93bmVyLCBSZWdpc3Rl
cklEIHZhbHVlVGFnLCBSZWdpc3RlcklEIHNjcmF0Y2gsIFJlZ2lzdGVySUQgc2NyYXRjaDIsIFdy
aXRlQmFycmllck1vZGUsIFdyaXRlQmFycmllclVzZUtpbmQpOwogICAgICAgICB2b2lkIGVtaXRX
cml0ZUJhcnJpZXIoSlNDZWxsKiBvd25lciwgUmVnaXN0ZXJJRCB2YWx1ZSwgUmVnaXN0ZXJJRCBz
Y3JhdGNoLCBXcml0ZUJhcnJpZXJNb2RlLCBXcml0ZUJhcnJpZXJVc2VLaW5kKTsKIAotICAgICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBDbGFzc1R5cGUsIHR5cGVuYW1lIFN0cnVjdHVyZVR5cGU+IHZv
aWQgZW1pdEFsbG9jYXRlQmFzaWNKU09iamVjdChTdHJ1Y3R1cmVUeXBlLCB2b2lkKiB2dGFibGUs
IFJlZ2lzdGVySUQgcmVzdWx0LCBSZWdpc3RlcklEIHN0b3JhZ2VQdHIpOworICAgICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBDbGFzc1R5cGUsIHR5cGVuYW1lIFN0cnVjdHVyZVR5cGU+IHZvaWQgZW1p
dEFsbG9jYXRlQmFzaWNKU09iamVjdChTdHJ1Y3R1cmVUeXBlLCBSZWdpc3RlcklEIHJlc3VsdCwg
UmVnaXN0ZXJJRCBzdG9yYWdlUHRyKTsKICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9p
ZCBlbWl0QWxsb2NhdGVKU0ZpbmFsT2JqZWN0KFQgc3RydWN0dXJlLCBSZWdpc3RlcklEIHJlc3Vs
dCwgUmVnaXN0ZXJJRCBzdG9yYWdlUHRyKTsKICAgICAgICAgdm9pZCBlbWl0QWxsb2NhdGVKU0Z1
bmN0aW9uKEZ1bmN0aW9uRXhlY3V0YWJsZSosIFJlZ2lzdGVySUQgc2NvcGVDaGFpbiwgUmVnaXN0
ZXJJRCByZXN1bHQsIFJlZ2lzdGVySUQgc3RvcmFnZVB0cik7CiAgICAgICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVNZXRob2RzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaAppbmRleCA2ODM3OWRkLi5mNDg1
MTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhv
ZHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaApA
QCAtMzk5LDcgKzM5OSw3IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBKSVQ6OmlzT3BlcmFuZENvbnN0
YW50SW1tZWRpYXRlQ2hhcih1bnNpZ25lZCBzcmMpCiAgICAgcmV0dXJuIG1fY29kZUJsb2NrLT5p
c0NvbnN0YW50UmVnaXN0ZXJJbmRleChzcmMpICYmIGdldENvbnN0YW50T3BlcmFuZChzcmMpLmlz
U3RyaW5nKCkgJiYgYXNTdHJpbmcoZ2V0Q29uc3RhbnRPcGVyYW5kKHNyYykuYXNDZWxsKCkpLT5s
ZW5ndGgoKSA9PSAxOwogfQogCi10ZW1wbGF0ZSA8dHlwZW5hbWUgQ2xhc3NUeXBlLCB0eXBlbmFt
ZSBTdHJ1Y3R1cmVUeXBlPiBpbmxpbmUgdm9pZCBKSVQ6OmVtaXRBbGxvY2F0ZUJhc2ljSlNPYmpl
Y3QoU3RydWN0dXJlVHlwZSBzdHJ1Y3R1cmUsIHZvaWQqIHZ0YWJsZSwgUmVnaXN0ZXJJRCByZXN1
bHQsIFJlZ2lzdGVySUQgc3RvcmFnZVB0cikKK3RlbXBsYXRlIDx0eXBlbmFtZSBDbGFzc1R5cGUs
IHR5cGVuYW1lIFN0cnVjdHVyZVR5cGU+IGlubGluZSB2b2lkIEpJVDo6ZW1pdEFsbG9jYXRlQmFz
aWNKU09iamVjdChTdHJ1Y3R1cmVUeXBlIHN0cnVjdHVyZSwgUmVnaXN0ZXJJRCByZXN1bHQsIFJl
Z2lzdGVySUQgc3RvcmFnZVB0cikKIHsKICAgICBNYXJrZWRTcGFjZTo6U2l6ZUNsYXNzKiBzaXpl
Q2xhc3MgPSAmbV9nbG9iYWxEYXRhLT5oZWFwLnNpemVDbGFzc0Zvck9iamVjdChzaXplb2YoQ2xh
c3NUeXBlKSk7CiAgICAgbG9hZFB0cigmc2l6ZUNsYXNzLT5maXJzdEZyZWVDZWxsLCByZXN1bHQp
OwpAQCAtNDA5LDkgKzQwOSw2IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBDbGFzc1R5cGUsIHR5cGVu
YW1lIFN0cnVjdHVyZVR5cGU+IGlubGluZSB2b2lkIEpJVDo6ZW1pdEFsbG9jCiAgICAgbG9hZFB0
cihBZGRyZXNzKHJlc3VsdCksIHN0b3JhZ2VQdHIpOwogICAgIHN0b3JlUHRyKHN0b3JhZ2VQdHIs
ICZzaXplQ2xhc3MtPmZpcnN0RnJlZUNlbGwpOwogCi0gICAgLy8gaW5pdGlhbGl6ZSB0aGUgb2Jq
ZWN0J3MgdnRhYmxlCi0gICAgc3RvcmVQdHIoVHJ1c3RlZEltbVB0cih2dGFibGUpLCBBZGRyZXNz
KHJlc3VsdCkpOwotCiAgICAgLy8gaW5pdGlhbGl6ZSB0aGUgb2JqZWN0J3Mgc3RydWN0dXJlCiAg
ICAgc3RvcmVQdHIoc3RydWN0dXJlLCBBZGRyZXNzKHJlc3VsdCwgSlNDZWxsOjpzdHJ1Y3R1cmVP
ZmZzZXQoKSkpOwogCkBAIC00MjgsMTIgKzQyNSwxMiBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2xh
c3NUeXBlLCB0eXBlbmFtZSBTdHJ1Y3R1cmVUeXBlPiBpbmxpbmUgdm9pZCBKSVQ6OmVtaXRBbGxv
YwogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIHZvaWQgSklUOjplbWl0QWxsb2NhdGVK
U0ZpbmFsT2JqZWN0KFQgc3RydWN0dXJlLCBSZWdpc3RlcklEIHJlc3VsdCwgUmVnaXN0ZXJJRCBz
Y3JhdGNoKQogewotICAgIGVtaXRBbGxvY2F0ZUJhc2ljSlNPYmplY3Q8SlNGaW5hbE9iamVjdD4o
c3RydWN0dXJlLCBtX2dsb2JhbERhdGEtPmpzRmluYWxPYmplY3RWUHRyLCByZXN1bHQsIHNjcmF0
Y2gpOworICAgIGVtaXRBbGxvY2F0ZUJhc2ljSlNPYmplY3Q8SlNGaW5hbE9iamVjdD4oc3RydWN0
dXJlLCByZXN1bHQsIHNjcmF0Y2gpOwogfQogCiBpbmxpbmUgdm9pZCBKSVQ6OmVtaXRBbGxvY2F0
ZUpTRnVuY3Rpb24oRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBSZWdpc3RlcklEIHNj
b3BlQ2hhaW4sIFJlZ2lzdGVySUQgcmVzdWx0LCBSZWdpc3RlcklEIHN0b3JhZ2VQdHIpCiB7Ci0g
ICAgZW1pdEFsbG9jYXRlQmFzaWNKU09iamVjdDxKU0Z1bmN0aW9uPihUcnVzdGVkSW1tUHRyKG1f
Y29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKS0+bmFtZWRGdW5jdGlvblN0cnVjdHVyZSgpKSwgbV9n
bG9iYWxEYXRhLT5qc0Z1bmN0aW9uVlB0ciwgcmVzdWx0LCBzdG9yYWdlUHRyKTsKKyAgICBlbWl0
QWxsb2NhdGVCYXNpY0pTT2JqZWN0PEpTRnVuY3Rpb24+KFRydXN0ZWRJbW1QdHIobV9jb2RlQmxv
Y2stPmdsb2JhbE9iamVjdCgpLT5uYW1lZEZ1bmN0aW9uU3RydWN0dXJlKCkpLCByZXN1bHQsIHN0
b3JhZ2VQdHIpOwogCiAgICAgLy8gc3RvcmUgdGhlIGZ1bmN0aW9uJ3Mgc2NvcGUgY2hhaW4KICAg
ICBzdG9yZVB0cihzY29wZUNoYWluLCBBZGRyZXNzKHJlc3VsdCwgSlNGdW5jdGlvbjo6b2Zmc2V0
T2ZTY29wZUNoYWluKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggMTc3NWVkMi4uZDFmYjUx
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTE0Myw5ICsxNDMsNiBAQCBsb25nIFN0b3BXYXRj
aDo6Z2V0RWxhcHNlZE1TKCkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8bG9uZz4oKG1fc3RvcFRp
bWUgLSBtX3N0YXJ0VGltZSkgKiAxMDAwKTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbi12aXJ0dWFsLWR0
b3IiCi0KIGNsYXNzIEdsb2JhbE9iamVjdCA6IHB1YmxpYyBKU0dsb2JhbE9iamVjdCB7CiBwcml2
YXRlOgogICAgIEdsb2JhbE9iamVjdChKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqKTsKQEAgLTIw
Myw4ICsyMDAsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgfQogfTsKIAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAotCiBDT01QSUxFX0FTU0VSVCghSXNJbnRlZ2VyPEdsb2JhbE9iamVjdD46OnZh
bHVlLCBXVEZfSXNJbnRlZ2VyX0dsb2JhbE9iamVjdF9mYWxzZSk7CiBBU1NFUlRfQ0xBU1NfRklU
U19JTl9DRUxMKEdsb2JhbE9iamVjdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJndW1lbnRzLmgKaW5kZXggNGE4OTk3ZC4uYjZjZGEzOSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKQEAgLTEyNiw4ICsxMjYsNiBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgT3duUHRyPEFyZ3VtZW50c0RhdGE+IGQ7CiAgICAgfTsKIAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAotCiAgICAgQXJndW1lbnRzKiBhc0FyZ3VtZW50cyhKU1ZhbHVl
KTsKIAogICAgIGlubGluZSBBcmd1bWVudHMqIGFzQXJndW1lbnRzKEpTVmFsdWUgdmFsdWUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmgKaW5k
ZXggOGJkNzUwMS4uZWMxZmY3OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FycmF5Q29uc3RydWN0b3IuaApAQCAtMjcsOSArMjcsNiBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogICAgIGNsYXNzIEFycmF5UHJvdG90eXBlOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9uLXZpcnR1YWwtZHRv
ciIKLQogICAgIGNsYXNzIEFycmF5Q29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlv
biB7CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFzZTsK
QEAgLTYyLDggKzU5LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBDYWxsVHlw
ZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogICAgIH07CiAKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBBcnJh
eUNvbnN0cnVjdG9yX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVBy
b3RvdHlwZS5oCmluZGV4IGM3ZDdkYWEuLjNmZTFhZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaApAQCAtMjYsOSArMjYsNiBAQAogCiBuYW1l
c3BhY2UgSlNDIHsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbi12aXJ0dWFsLWR0b3IiCi0KICAgICBjbGFzcyBB
cnJheVByb3RvdHlwZSA6IHB1YmxpYyBKU0FycmF5IHsKICAgICBwcml2YXRlOgogICAgICAgICBB
cnJheVByb3RvdHlwZShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwpAQCAtNTcsOCArNTQs
NiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2Jh
bE9iamVjdCopOwogICAgIH07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLQogfSAv
LyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBBcnJheVByb3RvdHlwZV9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5oCmluZGV4IDcx
ODFjMzQuLmFmNmJlNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Jvb2xlYW5Db25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Jvb2xlYW5Db25zdHJ1Y3Rvci5oCkBAIC0yNyw5ICsyNyw2IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiAgICAgY2xhc3MgQm9vbGVhblByb3RvdHlwZTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbi12aXJ0dWFsLWR0
b3IiCi0KICAgICBjbGFzcyBCb29sZWFuQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5j
dGlvbiB7CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFz
ZTsKQEAgLTU3LDggKzU0LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBDYWxs
VHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogICAgIH07CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKLQogICAgIEpTT2JqZWN0KiBjb25zdHJ1Y3RCb29sZWFuRnJv
bUltbWVkaWF0ZUJvb2xlYW4oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsK
ICAgICBKU09iamVjdCogY29uc3RydWN0Qm9vbGVhbihFeGVjU3RhdGUqLCBjb25zdCBBcmdMaXN0
Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5P
YmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuaApp
bmRleCAxYjQzYzJhLi4wMDBkMTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Cb29sZWFuT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQm9vbGVhbk9iamVjdC5oCkBAIC0yNSw5ICsyNSw2IEBACiAKIG5hbWVzcGFjZSBKU0Mgewog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1Xbm9uLXZpcnR1YWwtZHRvciIKLQogICAgIGNsYXNzIEJvb2xlYW5PYmplY3Qg
OiBwdWJsaWMgSlNXcmFwcGVyT2JqZWN0IHsKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIEJvb2xl
YW5PYmplY3QoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKik7CkBAIC01MSw4ICs0OCw2IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICB9CiAgICAgfTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAotCiAgICAgQm9vbGVhbk9iamVjdCogYXNCb29sZWFuT2JqZWN0KEpTVmFsdWUpOwog
CiAgICAgaW5saW5lIEJvb2xlYW5PYmplY3QqIGFzQm9vbGVhbk9iamVjdChKU1ZhbHVlIHZhbHVl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3Rv
dHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5o
CmluZGV4IGM3NWI5MjQuLmI3OWNlZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmgKQEAgLTI1LDkgKzI1LDYgQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgotCiAgICAgY2xhc3MgQm9vbGVh
blByb3RvdHlwZSA6IHB1YmxpYyBCb29sZWFuT2JqZWN0IHsKICAgICBwdWJsaWM6CiAgICAgICAg
IHR5cGVkZWYgQm9vbGVhbk9iamVjdCBCYXNlOwpAQCAtNTcsOCArNTQsNiBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2Jq
ZWN0KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYp
OwogICAgIH07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLQogfSAvLyBuYW1lc3Bh
Y2UgSlNDCiAKICNlbmRpZiAvLyBCb29sZWFuUHJvdG90eXBlX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmgKaW5kZXggOTVlNWRkMC4uYWUyMzc2
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVj
dG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9y
LmgKQEAgLTI3LDkgKzI3LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBEYXRlUHJv
dG90eXBlOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9uLXZpcnR1YWwtZHRvciIKLQogICAgIGNsYXNzIERhdGVD
b25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICBwdWJsaWM6CiAgICAg
ICAgIHR5cGVkZWYgSW50ZXJuYWxGdW5jdGlvbiBCYXNlOwpAQCAtNjIsOCArNTksNiBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3Jp
cHRvciYpOwogICAgIH07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLQogICAgIEpT
T2JqZWN0KiBjb25zdHJ1Y3REYXRlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgY29uc3Qg
QXJnTGlzdCYpOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKaW5kZXggMWEwMWYyNy4uOGQ5MGNmMCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKQEAgLTI5LDkgKzI5LDYg
QEAgbmFtZXNwYWNlIFdURiB7CiAKIG5hbWVzcGFjZSBKU0MgewogCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9uLXZp
cnR1YWwtZHRvciIKLQogICAgIGNsYXNzIERhdGVJbnN0YW5jZSA6IHB1YmxpYyBKU1dyYXBwZXJP
YmplY3QgewogICAgIHByb3RlY3RlZDoKICAgICAgICAgRGF0ZUluc3RhbmNlKEV4ZWNTdGF0ZSos
IFN0cnVjdHVyZSopOwpAQCAtODcsOCArODQsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
bXV0YWJsZSBSZWZQdHI8RGF0ZUluc3RhbmNlRGF0YT4gbV9kYXRhOwogICAgIH07CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLQogICAgIERhdGVJbnN0YW5jZSogYXNEYXRlSW5zdGFu
Y2UoSlNWYWx1ZSk7CiAKICAgICBpbmxpbmUgRGF0ZUluc3RhbmNlKiBhc0RhdGVJbnN0YW5jZShK
U1ZhbHVlIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RGF0ZVByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3Rv
dHlwZS5oCmluZGV4IDZmYTBkM2MuLjUwYTAwZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmgKQEAgLTI3LDkgKzI3LDYgQEAgbmFtZXNwYWNlIEpT
QyB7CiAKICAgICBjbGFzcyBPYmplY3RQcm90b3R5cGU7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVh
bC1kdG9yIgotCiAgICAgY2xhc3MgRGF0ZVByb3RvdHlwZSA6IHB1YmxpYyBEYXRlSW5zdGFuY2Ug
ewogICAgIHByaXZhdGU6CiAgICAgICAgIERhdGVQcm90b3R5cGUoRXhlY1N0YXRlKiwgU3RydWN0
dXJlKik7CkBAIC01OSw4ICs1Niw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNs
b3QgfCBEYXRlSW5zdGFuY2U6OlN0cnVjdHVyZUZsYWdzOwogICAgIH07CiAKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBEYXRl
UHJvdG90eXBlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5oCmluZGV4IDE4MDk0
M2EuLjE3YzM0OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuaApAQCAtNzQs
OSArNzQsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIEpTVmFsdWUgY3JlYXRlVHlwZUVycm9y
RnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBVU3RyaW5nJiBtZXNzYWdlKTsKICAgICAK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgotCiAgICAgY2xhc3MgU3RyaWN0TW9kZVR5cGVF
cnJvckZ1bmN0aW9uIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogICAgIHByaXZhdGU6CiAg
ICAgICAgIFN0cmljdE1vZGVUeXBlRXJyb3JGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgVVN0cmluZyYgbWVzc2FnZSkKQEAg
LTEzMiw4ICsxMjksNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgVVN0cmluZyBtX21lc3Nh
Z2U7CiAgICAgfTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotCiB9IC8vIG5hbWVz
cGFjZSBKU0MKIAogI2VuZGlmIC8vIEVycm9yX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuaAppbmRleCAxMzc1NGJmLi5iZTY3ZDZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5oCkBA
IC0yOCw5ICsyOCw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgRXJyb3JQcm90b3R5
cGU7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgotCiAgICAgY2xhc3MgRXJyb3JDb25z
dHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICBwdWJsaWM6CiAgICAgICAg
IHR5cGVkZWYgSW50ZXJuYWxGdW5jdGlvbiBCYXNlOwpAQCAtNTgsOCArNTUsNiBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENh
bGxEYXRhJik7CiAgICAgfTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotCiB9IC8v
IG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVycm9yQ29uc3RydWN0b3JfaApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCmluZGV4IGQwZGU0YjQuLmQ5
YWNhMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5z
dGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNl
LmgKQEAgLTI1LDkgKzI1LDYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24t
dmlydHVhbC1kdG9yIgotCiAgICAgY2xhc3MgRXJyb3JJbnN0YW5jZSA6IHB1YmxpYyBKU05vbkZp
bmFsT2JqZWN0IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVj
dCBCYXNlOwpAQCAtNzIsOCArNjksNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBt
X2FwcGVuZFNvdXJjZVRvTWVzc2FnZTsKICAgICB9OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCi0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRXJyb3JJbnN0YW5jZV9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlw
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuaAppbmRl
eCBmOWFmZmM2Li42NjdiZTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FcnJvclByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9yUHJvdG90eXBlLmgKQEAgLTI3LDkgKzI3LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICBjbGFzcyBPYmplY3RQcm90b3R5cGU7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgot
CiAgICAgY2xhc3MgRXJyb3JQcm90b3R5cGUgOiBwdWJsaWMgRXJyb3JJbnN0YW5jZSB7CiAgICAg
cHVibGljOgogICAgICAgICB0eXBlZGVmIEVycm9ySW5zdGFuY2UgQmFzZTsKQEAgLTU5LDggKzU2
LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5
RGVzY3JpcHRvcihKU09iamVjdCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eURlc2NyaXB0b3ImKTsKICAgICB9OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRXJyb3JQcm90b3R5cGVfaApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oCmluZGV4
IGE2NTY5OWIuLmMyMjI2NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FeGNlcHRpb25IZWxwZXJzLmgKQEAgLTU1LDkgKzU1LDYgQEAgSlNPYmplY3QqIHRocm93T3V0
T2ZNZW1vcnlFcnJvcihFeGVjU3RhdGUqKTsKIEpTT2JqZWN0KiB0aHJvd1N0YWNrT3ZlcmZsb3dF
cnJvcihFeGVjU3RhdGUqKTsKIAogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9uLXZpcnR1YWwtZHRvciIKLQogY2xh
c3MgSW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvciA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsK
IHByaXZhdGU6CiAgICAgSW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvcihKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEpCkBAIC0xMTIsOCArMTA5LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBKU19FWFBP
UlREQVRBIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiB9OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCi0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRXhjZXB0aW9uSGVs
cGVyc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRh
YmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgKaW5kZXgg
MzY3YjdhZS4uN2Y4NWM5MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1
dGFibGUuaApAQCAtNTUsOSArNTUsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbi12aXJ0dWFsLWR0b3IiCi0KICAgICBjbGFz
cyBFeGVjdXRhYmxlQmFzZSA6IHB1YmxpYyBKU0NlbGwgewogICAgICAgICBmcmllbmQgY2xhc3Mg
SklUOwogCkBAIC02NjgsOCArNjY1LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFNoYXJl
ZFN5bWJvbFRhYmxlKiBtX3N5bWJvbFRhYmxlOwogICAgIH07CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKLQogICAgIGlubGluZSBGdW5jdGlvbkV4ZWN1dGFibGUqIEpTRnVuY3Rpb246
OmpzRXhlY3V0YWJsZSgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQoIWlzSG9zdEZ1bmN0
aW9uTm9uSW5saW5lKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RnVuY3Rpb25Db25zdHJ1Y3Rvci5oCmluZGV4IGJkMGUyODAuLmE4YWNmMWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmgKQEAg
LTMxLDkgKzMxLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBGdW5jdGlvblByb3Rv
dHlwZTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV25vbi12aXJ0dWFsLWR0b3IiCi0KICAgICBjbGFzcyBGdW5jdGlv
bkNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogICAgIHB1YmxpYzoKICAg
ICAgICAgdHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7CkBAIC01OSw4ICs1Niw2IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxs
KiwgQ2FsbERhdGEmKTsKICAgICB9OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0K
ICAgICBKU09iamVjdCogY29uc3RydWN0RnVuY3Rpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmpl
Y3QqLCBjb25zdCBBcmdMaXN0JiwgY29uc3QgSWRlbnRpZmllciYgZnVuY3Rpb25OYW1lLCBjb25z
dCBVU3RyaW5nJiBzb3VyY2VVUkwsIGNvbnN0IFdURjo6VGV4dFBvc2l0aW9uJik7CiAgICAgSlNP
YmplY3QqIGNvbnN0cnVjdEZ1bmN0aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgY29u
c3QgQXJnTGlzdCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9GdW5jdGlvblByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVu
Y3Rpb25Qcm90b3R5cGUuaAppbmRleCBhOGFlN2ViLi40NWUwOTMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmgKQEAgLTI1LDkgKzI1
LDYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgot
CiAgICAgY2xhc3MgRnVuY3Rpb25Qcm90b3R5cGUgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7
CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFzZTsKQEAg
LTU2LDggKzUzLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBDYWxsVHlwZSBn
ZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogICAgIH07CiAKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBGdW5jdGlv
blByb3RvdHlwZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9H
ZXR0ZXJTZXR0ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dldHRlclNldHRl
ci5oCmluZGV4IDUxZDFhYzkuLmQ1YWFiODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0dldHRlclNldHRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0dldHRlclNldHRlci5oCkBAIC0zMiw5ICszMiw2IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiAgICAgY2xhc3MgSlNPYmplY3Q7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgotCiAg
ICAgLy8gVGhpcyBpcyBhbiBpbnRlcm5hbCB2YWx1ZSBvYmplY3Qgd2hpY2ggc3RvcmVzIGdldHRl
ciBhbmQgc2V0dGVyIGZ1bmN0aW9ucwogICAgIC8vIGZvciBhIHByb3BlcnR5LgogICAgIGNsYXNz
IEdldHRlclNldHRlciA6IHB1YmxpYyBKU0NlbGwgewpAQCAtNzQsOCArNzEsNiBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgV3JpdGVCYXJyaWVyPEpTT2JqZWN0PiBtX3NldHRlcjsgIAogICAg
IH07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLQogICAgIEdldHRlclNldHRlciog
YXNHZXR0ZXJTZXR0ZXIoSlNWYWx1ZSk7CiAKICAgICBpbmxpbmUgR2V0dGVyU2V0dGVyKiBhc0dl
dHRlclNldHRlcihKU1ZhbHVlIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmNwcAppbmRleCAzYTM3MWY5Li5lNWUxYzJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Jbml0aWFsaXplVGhy
ZWFkaW5nLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Jbml0aWFsaXpl
VGhyZWFkaW5nLmNwcApAQCAtNTcsNyArNTcsNiBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXplVGhy
ZWFkaW5nT25jZSgpCiAjaWYgRU5BQkxFKFdSSVRFX0JBUlJJRVJfUFJPRklMSU5HKQogICAgIFdy
aXRlQmFycmllckNvdW50ZXJzOjppbml0aWFsaXplKCk7CiAjZW5kaWYKLSAgICBKU0dsb2JhbERh
dGE6OnN0b3JlVlB0cnMoKTsKICNpZiBFTkFCTEUoSklUKSAmJiBFTkFCTEUoQVNTRU1CTEVSKQog
ICAgIEV4ZWN1dGFibGVBbGxvY2F0b3I6OmluaXRpYWxpemVBbGxvY2F0b3IoKTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlv
bi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNw
cAppbmRleCBiMDJkMWUxLi4xOWU3YjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcApAQCAtMjksOSArMjksNiBAQAogCiBuYW1l
c3BhY2UgSlNDIHsKIAotLy8gRW5zdXJlIHRoZSBjb21waWxlciBnZW5lcmF0ZXMgYSB2dGFibGUg
Zm9yIEludGVybmFsRnVuY3Rpb24hCi12b2lkIEludGVybmFsRnVuY3Rpb246OnZ0YWJsZUFuY2hv
cigpIHt9Ci0KIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSW50ZXJuYWxGdW5jdGlvbik7CiBB
U1NFUlRfSEFTX1RSSVZJQUxfREVTVFJVQ1RPUihJbnRlcm5hbEZ1bmN0aW9uKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCmluZGV4IGFh
NWNmZTkuLjNjMTMzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGVybmFsRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRlcm5hbEZ1bmN0aW9uLmgKQEAgLTMxLDkgKzMxLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICBjbGFzcyBGdW5jdGlvblByb3RvdHlwZTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbi12aXJ0dWFsLWR0b3Ii
Ci0KICAgICBjbGFzcyBJbnRlcm5hbEZ1bmN0aW9uIDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qg
ewogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CkBA
IC02MCwxMyArNTcsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBmaW5pc2hDcmVh
dGlvbihKU0dsb2JhbERhdGEmLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKTsKIAogICAgICAgICBz
dGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKLQotICAgIHBy
aXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB2dGFibGVBbmNob3IoKTsKICAgICB9OwogCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0KICAgICBJbnRlcm5hbEZ1bmN0aW9uKiBhc0lu
dGVybmFsRnVuY3Rpb24oSlNWYWx1ZSk7CiAKICAgICBpbmxpbmUgSW50ZXJuYWxGdW5jdGlvbiog
YXNJbnRlcm5hbEZ1bmN0aW9uKEpTVmFsdWUgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FQSVZhbHVlV3JhcHBlci5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBUElWYWx1ZVdyYXBwZXIuaAppbmRleCBkMzUzY2EzLi43M2VmYWFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FQSVZhbHVlV3Jh
cHBlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQVBJVmFsdWVXcmFw
cGVyLmgKQEAgLTMwLDkgKzMwLDYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdu
b24tdmlydHVhbC1kdG9yIgotCiAgICAgY2xhc3MgSlNBUElWYWx1ZVdyYXBwZXIgOiBwdWJsaWMg
SlNDZWxsIHsKICAgICAgICAgZnJpZW5kIEpTVmFsdWUganNBUElWYWx1ZVdyYXBwZXIoRXhlY1N0
YXRlKiwgSlNWYWx1ZSk7CiAgICAgcHVibGljOgpAQCAtNzEsOCArNjgsNiBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgV3JpdGVCYXJyaWVyPFVua25vd24+IG1fdmFsdWU7CiAgICAgfTsKIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotCiAgICAgaW5saW5lIEpTVmFsdWUganNBUElW
YWx1ZVdyYXBwZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIEpTQVBJVmFsdWVXcmFwcGVyOjpjcmVhdGUoZXhlYywgdmFsdWUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaAppbmRleCA2MWYyNjhiLi4y
ZDY0NDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2
YXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24u
aApAQCAtMzksOSArMzksNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBBcmd1bWVudHM7
CiAgICAgY2xhc3MgUmVnaXN0ZXI7CiAgICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9uLXZpcnR1YWwtZHRvciIK
LQogICAgIGNsYXNzIEpTQWN0aXZhdGlvbiA6IHB1YmxpYyBKU1ZhcmlhYmxlT2JqZWN0IHsKICAg
ICBwcml2YXRlOgogICAgICAgICBKU0FjdGl2YXRpb24oQ2FsbEZyYW1lKiwgRnVuY3Rpb25FeGVj
dXRhYmxlKik7CkBAIC05OCw4ICs5NSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBpbnQg
bV9hcmd1bWVudHNSZWdpc3RlcjsKICAgICB9OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCi0KICAgICBKU0FjdGl2YXRpb24qIGFzQWN0aXZhdGlvbihKU1ZhbHVlKTsKIAogICAgIGlu
bGluZSBKU0FjdGl2YXRpb24qIGFzQWN0aXZhdGlvbihKU1ZhbHVlIHZhbHVlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCmluZGV4IDEyNTE2M2EuLmM1ZDJhMzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKQEAgLTU3LDkgKzU3LDYgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKICAgICBlbnVtIEFycmF5Q3JlYXRpb25Nb2RlIHsgQ3JlYXRlQ29tcGFj
dCwgQ3JlYXRlSW5pdGlhbGl6ZWQgfTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbi12aXJ0dWFsLWR0b3IiCi0K
ICAgICBjbGFzcyBKU0FycmF5IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgICAgICBm
cmllbmQgY2xhc3MgV2Fsa2VyOwogCkBAIC0yMDcsOCArMjA0LDYgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIEFycmF5U3RvcmFnZSAqbV9zdG9yYWdlOwogICAgIH07CiAKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKLQogICAgIEpTQXJyYXkqIGFzQXJyYXkoSlNWYWx1ZSk7CiAKICAg
ICBpbmxpbmUgSlNBcnJheSogYXNBcnJheShKU0NlbGwqIGNlbGwpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oCmluZGV4IDk1ZGFmNjQuLmM2MGQ3
ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5j
dGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlv
bi5oCkBAIC0zMyw5ICszMyw2IEBAIG5hbWVzcGFjZSBKU0MgewogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBib3VuZEZ1bmN0aW9uQ2FsbChFeGVjU3RhdGUqKTsKIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgYm91bmRGdW5jdGlvbkNvbnN0cnVjdChFeGVjU3RhdGUqKTsKIAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV25vbi12aXJ0dWFsLWR0b3IiCi0KIGNsYXNzIEpTQm91bmRGdW5jdGlvbiA6IHB1Ymxp
YyBKU0Z1bmN0aW9uIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRnVuY3Rpb24gQmFzZTsKQEAg
LTcxLDggKzY4LDYgQEAgcHJpdmF0ZToKICAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4gbV9ib3Vu
ZEFyZ3M7CiB9OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0KIH0gLy8gbmFtZXNw
YWNlIEpTQwogCiAjZW5kaWYgLy8gSlNGdW5jdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNCeXRlQXJyYXkuaAppbmRleCA0MGUxMGFhLi5mZTM2YzA0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKQEAgLTMyLDkgKzMyLDYgQEAK
IAogbmFtZXNwYWNlIEpTQyB7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgotCiAgICAg
Y2xhc3MgSlNCeXRlQXJyYXkgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgICAgIGZy
aWVuZCBjbGFzcyBKU0dsb2JhbERhdGE7CiAgICAgcHVibGljOgpAQCAtMTI4LDggKzEyNSw2IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBSZWZQdHI8V1RGOjpCeXRlQXJyYXk+IG1fc3RvcmFn
ZTsKICAgICB9OwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotCiAgICAgSlNC
eXRlQXJyYXkqIGFzQnl0ZUFycmF5KEpTVmFsdWUgdmFsdWUpOwogICAgIGlubGluZSBKU0J5dGVB
cnJheSogYXNCeXRlQXJyYXkoSlNWYWx1ZSB2YWx1ZSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDZWxsLmNwcAppbmRleCBiYjUxYzUxLi4wNjVmZDEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKQEAgLTMzLDEwICszMyw2IEBAIG5hbWVz
cGFjZSBKU0MgewogCiBBU1NFUlRfSEFTX1RSSVZJQUxfREVTVFJVQ1RPUihKU0NlbGwpOwogCi12
b2lkIEpTQ2VsbDo6dnRhYmxlQW5jaG9yKCkKLXsKLX0KLQogdm9pZCBKU0NlbGw6OmRlc3Ryb3ko
SlNDZWxsKiBjZWxsKQogewogICAgIGNlbGwtPkpTQ2VsbDo6fkpTQ2VsbCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAppbmRleCAzZWU0YmJjLi4xOTk5YTEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaApAQCAtNTcsOSArNTcsNiBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgVHlwZWRBcnJheUZsb2F0NjQKICAgICB9OwogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
bm9uLXZpcnR1YWwtZHRvciIKLQogICAgIGNsYXNzIEpTQ2VsbCB7CiAgICAgICAgIGZyaWVuZCBj
bGFzcyBKU1ZhbHVlOwogICAgICAgICBmcmllbmQgY2xhc3MgTWFya2VkQmxvY2s7CkBAIC03Niw3
ICs3Myw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBKU0Nl
bGwoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB2dGFi
bGVBbmNob3IoKTsKICAgICAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKIAogICAg
IHB1YmxpYzoKQEAgLTEyMiw4ICsxMTgsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBz
dGF0aWMgSlNPYmplY3QqIHRvVGhpc09iamVjdChKU0NlbGwqLCBFeGVjU3RhdGUqKTsKIAotICAg
ICAgICB2b2lkKiB2cHRyKCkgY29uc3QgeyBBU1NFUlQoIWlzWmFwcGVkKCkpOyByZXR1cm4gKnJl
aW50ZXJwcmV0X2Nhc3Q8dm9pZCogY29uc3QqPih0aGlzKTsgfQotICAgICAgICB2b2lkIHNldFZQ
dHIodm9pZCogdnB0cikgeyAqcmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KHRoaXMpID0gdnB0cjsg
QVNTRVJUKCFpc1phcHBlZCgpKTsgfQogICAgICAgICB2b2lkIHphcCgpIHsgKnJlaW50ZXJwcmV0
X2Nhc3Q8dWludHB0cl90Kio+KHRoaXMpID0gMDsgfQogICAgICAgICBib29sIGlzWmFwcGVkKCkg
Y29uc3QgeyByZXR1cm4gISpyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdCogY29uc3QqPih0aGlz
KTsgfQogCkBAIC0xNzYsMTIgKzE3MCwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCiAgICAgcHJpdmF0ZToK
LSAgICAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9zdHJ1Y3R1cmU7CiAgICAgICAgIGNv
bnN0IENsYXNzSW5mbyogbV9jbGFzc0luZm87CisgICAgICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1
cmU+IG1fc3RydWN0dXJlOwogICAgIH07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
LQogICAgIGlubGluZSBKU0NlbGw6OkpTQ2VsbChDcmVhdGluZ0Vhcmx5Q2VsbFRhZykKICAgICB7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5j
dGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApp
bmRleCAyNmUyNjhiLi45ODY4NTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Z1bmN0aW9uLmNwcApAQCAtMTIwLDExICsxMjAsNiBAQCB2b2lkIEpTRnVuY3Rpb246OmRl
c3Ryb3koSlNDZWxsKiBjZWxsKQogICAgIHRoaXNPYmplY3QtPkpTRnVuY3Rpb246On5KU0Z1bmN0
aW9uKCk7CiB9CiAKLXZvaWQgSlNGdW5jdGlvbjo6dnRhYmxlQW5jaG9yKCkKLXsKLSAgICBmcHJp
bnRmKHN0ZGVyciwgIldlIG5lZWQgc29tZXRoaW5nIGhlcmUgdGhhdCBWaXN1YWwgU3R1ZGlvIGNh
bid0IG9wdGltaXplIGF3YXkuXG4iKTsKLX0KLQogdm9pZCBjcmVhdGVEZXNjcmlwdG9yRm9yVGhy
b3dpbmdQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3Jp
cHRvciwgY29uc3QgY2hhciogbWVzc2FnZSkKIHsKICAgICBKU1ZhbHVlIHRocm93ZXIgPSBjcmVh
dGVUeXBlRXJyb3JGdW5jdGlvbihleGVjLCBtZXNzYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTRnVuY3Rpb24uaAppbmRleCAxMDk2OTZjLi5iNzA0ZDE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCkBAIC00NSw5ICs0NSw2IEBAIG5h
bWVzcGFjZSBKU0MgewogCiAgICAgdm9pZCBjcmVhdGVEZXNjcmlwdG9yRm9yVGhyb3dpbmdQcm9w
ZXJ0eShFeGVjU3RhdGUqLCBQcm9wZXJ0eURlc2NyaXB0b3ImLCBjb25zdCBjaGFyKiBtZXNzYWdl
KTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV25vbi12aXJ0dWFsLWR0b3IiCi0KICAgICBjbGFzcyBKU0Z1bmN0aW9u
IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgICAgICBmcmllbmQgY2xhc3MgSklUOwog
ICAgICAgICBmcmllbmQgY2xhc3MgREZHOjpTcGVjdWxhdGl2ZUpJVDsKQEAgLTY5LDcgKzY2LDYg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHN0YXRpYyB2
b2lkIGRlc3Ryb3koSlNDZWxsKik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB2dGFibGVBbmNob3Io
KTsgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG9uY2Ugb3B0aW1pemF0aW9ucyBubyBsb25nZXIgcmVs
eSBvbiB0ZXN0aW5nIHZ0YWJsZXMKIAogICAgICAgICBjb25zdCBVU3RyaW5nJiBuYW1lKEV4ZWNT
dGF0ZSopOwogICAgICAgICBjb25zdCBVU3RyaW5nIGRpc3BsYXlOYW1lKEV4ZWNTdGF0ZSopOwpA
QCAtMTU5LDggKzE1NSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBXcml0ZUJhcnJpZXI8
U2NvcGVDaGFpbk5vZGU+IG1fc2NvcGVDaGFpbjsKICAgICB9OwogCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCi0KICAgICBKU0Z1bmN0aW9uKiBhc0Z1bmN0aW9uKEpTVmFsdWUpOwogCiAg
ICAgaW5saW5lIEpTRnVuY3Rpb24qIGFzRnVuY3Rpb24oSlNWYWx1ZSB2YWx1ZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwCmluZGV4IDgyMTJhZmMu
LjIyZTc2OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsRGF0YS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxE
YXRhLmNwcApAQCAtMTA5LDkgKzEwOSw2IEBAIGV4dGVybiBjb25zdCBIYXNoVGFibGUgcmVnRXhw
UHJvdG90eXBlVGFibGU7CiBleHRlcm4gY29uc3QgSGFzaFRhYmxlIHN0cmluZ1RhYmxlOwogZXh0
ZXJuIGNvbnN0IEhhc2hUYWJsZSBzdHJpbmdDb25zdHJ1Y3RvclRhYmxlOwogCi12b2lkKiBKU0ds
b2JhbERhdGE6OmpzRmluYWxPYmplY3RWUHRyOwotdm9pZCogSlNHbG9iYWxEYXRhOjpqc0Z1bmN0
aW9uVlB0cjsKLQogI2lmIENPTVBJTEVSKEdDQykKIC8vIFdvcmsgYXJvdW5kIGZvciBnY2MgdHJ5
aW5nIHRvIGNvYWxlc2NlIG91ciByZWFkcyBvZiB0aGUgdmFyaW91cyBjZWxsIHZwdHJzCiAjZGVm
aW5lIENMT0JCRVJfTUVNT1JZKCkgZG8geyBcCkBAIC0xMjEsMjggKzExOCw2IEBAIHZvaWQqIEpT
R2xvYmFsRGF0YTo6anNGdW5jdGlvblZQdHI7CiAjZGVmaW5lIENMT0JCRVJfTUVNT1JZKCkgZG8g
eyB9IHdoaWxlIChmYWxzZSkKICNlbmRpZgogCi12b2lkIEpTR2xvYmFsRGF0YTo6c3RvcmVWUHRy
cygpCi17Ci0gICAgLy8gRW5vdWdoIHN0b3JhZ2UgdG8gZml0IGEgSlNBcnJheSwgSlNCeXRlQXJy
YXksIEpTU3RyaW5nLCBvciBKU0Z1bmN0aW9uLgotICAgIC8vIENPTVBJTEVfQVNTRVJUUyBiZWxv
dyBjaGVjayB0aGF0IHRoaXMgaXMgdHJ1ZS4KLSAgICBjaGFyIHN0b3JhZ2VbNjRdOwotCi0gICAg
Q09NUElMRV9BU1NFUlQoc2l6ZW9mKEpTRmluYWxPYmplY3QpIDw9IHNpemVvZihzdG9yYWdlKSwg
c2l6ZW9mX0pTRmluYWxPYmplY3RfbXVzdF9iZV9sZXNzX3RoYW5fc3RvcmFnZSk7Ci0gICAgSlND
ZWxsKiBqc0ZpbmFsT2JqZWN0ID0gbmV3IChzdG9yYWdlKSBKU0ZpbmFsT2JqZWN0KEpTRmluYWxP
YmplY3Q6OlZQdHJTdGVhbGluZ0hhY2spOwotICAgIENMT0JCRVJfTUVNT1JZKCk7Ci0gICAgSlNH
bG9iYWxEYXRhOjpqc0ZpbmFsT2JqZWN0VlB0ciA9IGpzRmluYWxPYmplY3QtPnZwdHIoKTsKLQot
ICAgIENPTVBJTEVfQVNTRVJUKHNpemVvZihKU0Z1bmN0aW9uKSA8PSBzaXplb2Yoc3RvcmFnZSks
IHNpemVvZl9KU0Z1bmN0aW9uX211c3RfYmVfbGVzc190aGFuX3N0b3JhZ2UpOwotICAgIEpTQ2Vs
bCoganNGdW5jdGlvbiA9IG5ldyAoc3RvcmFnZSkgSlNGdW5jdGlvbihKU0NlbGw6OlZQdHJTdGVh
bGluZ0hhY2spOwotICAgIENMT0JCRVJfTUVNT1JZKCk7Ci0gICAgSlNHbG9iYWxEYXRhOjpqc0Z1
bmN0aW9uVlB0ciA9IGpzRnVuY3Rpb24tPnZwdHIoKTsKLQotICAgIC8vIFVudGlsIHdlIGZ1bGx5
IHJlbW92ZSBvdXIgcmVsaWFuY2Ugb24gdnB0cnMsIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQg
ZXZlcnlib2R5IHRoYXQgCi0gICAgLy8gd2UgdGhpbmsgaGFzIGEgdW5pcXVlIHZpcnR1YWwgcG9p
bnRlciBhY3R1YWxseSBkb2VzLgotICAgIGlmIChqc0ZpbmFsT2JqZWN0VlB0ciA9PSBqc0Z1bmN0
aW9uVlB0cikKLSAgICAgICAgQ1JBU0goKTsKLX0KLQogSlNHbG9iYWxEYXRhOjpKU0dsb2JhbERh
dGEoR2xvYmFsRGF0YVR5cGUgZ2xvYmFsRGF0YVR5cGUsIFRocmVhZFN0YWNrVHlwZSB0aHJlYWRT
dGFja1R5cGUsIEhlYXBTaXplIGhlYXBTaXplKQogICAgIDogZ2xvYmFsRGF0YVR5cGUoZ2xvYmFs
RGF0YVR5cGUpCiAgICAgLCBjbGllbnREYXRhKDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsRGF0YS5oCmluZGV4IGMxNjZlNGMuLjE2MTlmOTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCkBAIC0xMDUsMTggKzEwNSwx
OCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHN0cnVjdCBUeXBlZEFycmF5RGVzY3JpcHRvciB7
CiAgICAgICAgIFR5cGVkQXJyYXlEZXNjcmlwdG9yKCkKLSAgICAgICAgICAgIDogbV92cHRyKDAp
CisgICAgICAgICAgICA6IG1fY2xhc3NJbmZvKDApCiAgICAgICAgICAgICAsIG1fc3RvcmFnZU9m
ZnNldCgwKQogICAgICAgICAgICAgLCBtX2xlbmd0aE9mZnNldCgwKQogICAgICAgICB7CiAgICAg
ICAgIH0KLSAgICAgICAgVHlwZWRBcnJheURlc2NyaXB0b3Iodm9pZCogdnB0ciwgc2l6ZV90IHN0
b3JhZ2VPZmZzZXQsIHNpemVfdCBsZW5ndGhPZmZzZXQpCi0gICAgICAgICAgICA6IG1fdnB0cih2
cHRyKQorICAgICAgICBUeXBlZEFycmF5RGVzY3JpcHRvcihjb25zdCBDbGFzc0luZm8qIGNsYXNz
SW5mbywgc2l6ZV90IHN0b3JhZ2VPZmZzZXQsIHNpemVfdCBsZW5ndGhPZmZzZXQpCisgICAgICAg
ICAgICA6IG1fY2xhc3NJbmZvKGNsYXNzSW5mbykKICAgICAgICAgICAgICwgbV9zdG9yYWdlT2Zm
c2V0KHN0b3JhZ2VPZmZzZXQpCiAgICAgICAgICAgICAsIG1fbGVuZ3RoT2Zmc2V0KGxlbmd0aE9m
ZnNldCkKICAgICAgICAgewogICAgICAgICB9Ci0gICAgICAgIHZvaWQqIG1fdnB0cjsKKyAgICAg
ICAgY29uc3QgQ2xhc3NJbmZvKiBtX2NsYXNzSW5mbzsKICAgICAgICAgc2l6ZV90IG1fc3RvcmFn
ZU9mZnNldDsKICAgICAgICAgc2l6ZV90IG1fbGVuZ3RoT2Zmc2V0OwogICAgIH07CkBAIC0xOTMs
MTAgKzE5Myw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBTdHJvbmc8U3RydWN0dXJlPiBy
ZWdFeHBTdHJ1Y3R1cmU7CiAgICAgICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IHN0cnVjdHVyZUNoYWlu
U3RydWN0dXJlOwogCi0gICAgICAgIHN0YXRpYyB2b2lkIHN0b3JlVlB0cnMoKTsKLSAgICAgICAg
c3RhdGljIEpTX0VYUE9SVERBVEEgdm9pZCoganNGaW5hbE9iamVjdFZQdHI7Ci0gICAgICAgIHN0
YXRpYyBKU19FWFBPUlREQVRBIHZvaWQqIGpzRnVuY3Rpb25WUHRyOwotCiAgICAgICAgIElkZW50
aWZpZXJUYWJsZSogaWRlbnRpZmllclRhYmxlOwogICAgICAgICBDb21tb25JZGVudGlmaWVycyog
cHJvcGVydHlOYW1lczsKICAgICAgICAgY29uc3QgTWFya2VkQXJndW1lbnRCdWZmZXIqIGVtcHR5
TGlzdDsgLy8gTGlzdHMgYXJlIHN1cHBvc2VkIHRvIGJlIGFsbG9jYXRlZCBvbiB0aGUgc3RhY2sg
dG8gaGF2ZSB0aGVpciBlbGVtZW50cyBwcm9wZXJseSBtYXJrZWQsIHdoaWNoIGlzIG5vdCB0aGUg
Y2FzZSBoZXJlIC0gYnV0IHRoaXMgbGlzdCBoYXMgbm90aGluZyB0byBtYXJrLgpAQCAtMzM3LDcg
KzMzMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogI2RlZmluZSByZWdpc3RlclR5cGVkQXJyYXlGdW5j
dGlvbih0eXBlLCBjYXBpdGFsaXplZFR5cGUpIFwKICAgICAgICAgdm9pZCByZWdpc3RlclR5cGVk
QXJyYXlEZXNjcmlwdG9yKGNvbnN0IGNhcGl0YWxpemVkVHlwZSMjQXJyYXkqLCBjb25zdCBUeXBl
ZEFycmF5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikgXAogICAgICAgICB7IFwKLSAgICAgICAgICAg
IEFTU0VSVCghbV8jI3R5cGUjI0FycmF5RGVzY3JpcHRvci5tX3ZwdHIgfHwgbV8jI3R5cGUjI0Fy
cmF5RGVzY3JpcHRvci5tX3ZwdHIgPT0gZGVzY3JpcHRvci5tX3ZwdHIpOyBcCisgICAgICAgICAg
ICBBU1NFUlQoIW1fIyN0eXBlIyNBcnJheURlc2NyaXB0b3IubV9jbGFzc0luZm8gfHwgbV8jI3R5
cGUjI0FycmF5RGVzY3JpcHRvci5tX2NsYXNzSW5mbyA9PSBkZXNjcmlwdG9yLm1fY2xhc3NJbmZv
KTsgXAogICAgICAgICAgICAgbV8jI3R5cGUjI0FycmF5RGVzY3JpcHRvciA9IGRlc2NyaXB0b3I7
IFwKICAgICAgICAgfSBcCiAgICAgICAgIGNvbnN0IFR5cGVkQXJyYXlEZXNjcmlwdG9yJiB0eXBl
IyNBcnJheURlc2NyaXB0b3IoKSBjb25zdCB7IHJldHVybiBtXyMjdHlwZSMjQXJyYXlEZXNjcmlw
dG9yOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHAKaW5kZXggNjI5MTcwOC4uNDIwYmM4OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtMTI3LDEwICsxMjcsNiBAQCB2b2lk
IEpTR2xvYmFsT2JqZWN0OjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKICAgICBqc0Nhc3Q8SlNHbG9i
YWxPYmplY3QqPihjZWxsKS0+SlNHbG9iYWxPYmplY3Q6On5KU0dsb2JhbE9iamVjdCgpOwogfQog
Ci12b2lkIEpTR2xvYmFsT2JqZWN0Ojp2dGFibGVBbmNob3IoKQotewotfQotCiB2b2lkIEpTR2xv
YmFsT2JqZWN0Ojppbml0KEpTT2JqZWN0KiB0aGlzVmFsdWUpCiB7CiAgICAgQVNTRVJUKEpTTG9j
azo6Y3VycmVudFRocmVhZElzSG9sZGluZ0xvY2soKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCBjZjI0NTZjLi4xNDAxMWRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTY2
LDggKzY2LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFNob3VsZEludGVycnVwdFNjcmlw
dEZ1bmN0aW9uUHRyIHNob3VsZEludGVycnVwdFNjcmlwdDsKICAgICB9OwogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
bm9uLXZpcnR1YWwtZHRvciIKIAogICAgIGNsYXNzIEpTR2xvYmFsT2JqZWN0IDogcHVibGljIEpT
VmFyaWFibGVPYmplY3QgewogICAgIHByaXZhdGU6CkBAIC04Myw4ICs4MSw2IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICAgICAgdW5zaWduZWQgcHJvZmlsZUdyb3VwOwogICAgICAgICB9Owog
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB2dGFibGVBbmNob3IoKTsKLQogICAgIHByb3RlY3RlZDoK
IAogICAgICAgICBSZWZQdHI8SlNHbG9iYWxEYXRhPiBtX2dsb2JhbERhdGE7CkBAIC0zNTIsOCAr
MzQ4LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyB2b2lkIGNsZWFyUmFyZURh
dGEoSlNDZWxsKik7CiAgICAgfTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotCiAg
ICAgSlNHbG9iYWxPYmplY3QqIGFzR2xvYmFsT2JqZWN0KEpTVmFsdWUpOwogCiAgICAgaW5saW5l
IEpTR2xvYmFsT2JqZWN0KiBhc0dsb2JhbE9iamVjdChKU1ZhbHVlIHZhbHVlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxUaGlzLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsVGhpcy5jcHAKaW5kZXggODViZmI3YS4u
OGIyYTdhMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxUaGlzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbFRo
aXMuY3BwCkBAIC0zMSw2ICszMSw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIAogQVNTRVJUX0NMQVNT
X0ZJVFNfSU5fQ0VMTChKU0dsb2JhbFRoaXMpOworQVNTRVJUX0hBU19UUklWSUFMX0RFU1RSVUNU
T1IoSlNHbG9iYWxUaGlzKTsKIAogY29uc3QgQ2xhc3NJbmZvIEpTR2xvYmFsVGhpczo6c19pbmZv
ID0geyAiSlNHbG9iYWxUaGlzIiwgJkJhc2U6OnNfaW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU0dsb2JhbFRoaXMpIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsVGhpcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxUaGlzLmgKaW5kZXggZDFmZjg5ZC4uZTMzY2E3YSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxUaGlzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxUaGlzLmgKQEAgLTMwLDkgKzMwLDYgQEAKIAogbmFt
ZXNwYWNlIEpTQyB7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgotCiBjbGFzcyBKU0ds
b2JhbFRoaXMgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRl
ZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CkBAIC03MSw4ICs2OCw2IEBAIHByb3RlY3RlZDoKICAg
ICBXcml0ZUJhcnJpZXI8SlNHbG9iYWxPYmplY3Q+IG1fdW53cmFwcGVkT2JqZWN0OwogfTsKIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2Vu
ZGlmIC8vIEpTR2xvYmFsVGhpc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU05vdEFuT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U05vdEFuT2JqZWN0LmgKaW5kZXggNzZkOTYxMC4uNzdmMDJlZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaApAQCAtMzMsOSArMzMsNiBAQAogCiBu
YW1lc3BhY2UgSlNDIHsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbi12aXJ0dWFsLWR0b3IiCi0KICAgICAvLyBU
aGlzIHVuaG9seSBjbGFzcyBpcyB1c2VkIHRvIGFsbG93IHVzIHRvIGF2b2lkIG11bHRpcGxlIGV4
Y2VwdGlvbiBjaGVja3MKICAgICAvLyBpbiBjZXJ0YWluIFNxdWlycmVsRmlzaCBieXRlY29kZXMg
LS0gZWZmZWN0aXZlbHkgaXQganVzdCBzaWxlbnRseSBjb25zdW1lcwogICAgIC8vIGFueSBvcGVy
YXRpb25zIHBlcmZvcm1lZCBvbiB0aGUgcmVzdWx0IG9mIGEgZmFpbGVkIHRvT2JqZWN0IGNhbGwu
CkBAIC04NCw4ICs4MSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgdm9pZCBn
ZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJy
YXkmLCBFbnVtZXJhdGlvbk1vZGUpOwogICAgIH07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBKU05vdEFuT2JqZWN0X2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaAppbmRleCAzOTNjZDI1
Li41YjdiNTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09O
T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5o
CkBAIC0zMiw5ICszMiw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgU3RyaW5naWZp
ZXI7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgotCiAgICAgY2xhc3MgSlNPTk9iamVj
dCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVk
ZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwpAQCAtNjQsOCArNjEsNiBAQCBuYW1lc3BhY2UgSlND
IHsKIAogICAgIH07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLQogICAgIFVTdHJp
bmcgSlNPTlN0cmluZ2lmeShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVk
IGluZGVudCk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuY3BwCmluZGV4IGE3OWIyNjUuLjY2MmU5OTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKQEAgLTY0LDEwICs2NCw2IEBAIHZvaWQg
SlNOb25GaW5hbE9iamVjdDo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCiAgICAganNDYXN0PEpTTm9u
RmluYWxPYmplY3QqPihjZWxsKS0+SlNOb25GaW5hbE9iamVjdDo6fkpTTm9uRmluYWxPYmplY3Qo
KTsKIH0KIAotdm9pZCBKU05vbkZpbmFsT2JqZWN0Ojp2dGFibGVBbmNob3IoKQotewotfQotCiBz
dGF0aWMgaW5saW5lIHZvaWQgZ2V0Q2xhc3NQcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8sIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5h
bWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICAvLyBBZGQgcHJvcGVydGllcyBmcm9t
IHRoZSBzdGF0aWMgaGFzaHRhYmxlcyBvZiBwcm9wZXJ0aWVzCkBAIC05NywxMCArOTMsNiBAQCB2
b2lkIEpTT2JqZWN0OjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKICAgICBqc0Nhc3Q8SlNPYmplY3Qq
PihjZWxsKS0+fkpTT2JqZWN0KCk7CiB9CiAKLXZvaWQgSlNPYmplY3Q6OnZ0YWJsZUFuY2hvcigp
Ci17Ci19Ci0KIHZvaWQgSlNPYmplY3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90
VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBKU09iamVjdCogdGhpc09iamVjdCA9IGpzQ2FzdDxK
U09iamVjdCo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgK
aW5kZXggMjhmZmI3My4uNTkyODdjMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdC5oCkBAIC03MCw5ICs3MCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBTZXR0
ZXIgICAgICAgPSAxIDw8IDYgICAvLyBwcm9wZXJ0eSBpcyBhIHNldHRlcgogICAgIH07CiAKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgotCiAgICAgY2xhc3MgSlNPYmplY3QgOiBwdWJsaWMg
SlNDZWxsIHsKICAgICAgICAgZnJpZW5kIGNsYXNzIEJhdGNoZWRUcmFuc2l0aW9uT3B0aW1pemVy
OwogICAgICAgICBmcmllbmQgY2xhc3MgSklUOwpAQCAtODQsNyArODEsNiBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgdHlwZWRlZiBKU0NlbGwgQmFzZTsKIAogICAgICAgICBzdGF0aWMgdm9p
ZCBkZXN0cm95KEpTQ2VsbCopOwotICAgICAgICB2aXJ0dWFsIHZvaWQgdnRhYmxlQW5jaG9yKCk7
CiAKICAgICAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRv
ciYpOwogCkBAIC0zMDEsMTEgKzI5NywxMSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogCiAjaWYgVVNF
KEpTVkFMVUUzMl82NCkKKyNkZWZpbmUgSlNOb25GaW5hbE9iamVjdF9pbmxpbmVTdG9yYWdlQ2Fw
YWNpdHkgNAorI2RlZmluZSBKU0ZpbmFsT2JqZWN0X2lubGluZVN0b3JhZ2VDYXBhY2l0eSA2Cisj
ZWxzZQogI2RlZmluZSBKU05vbkZpbmFsT2JqZWN0X2lubGluZVN0b3JhZ2VDYXBhY2l0eSAyCiAj
ZGVmaW5lIEpTRmluYWxPYmplY3RfaW5saW5lU3RvcmFnZUNhcGFjaXR5IDQKLSNlbHNlCi0jZGVm
aW5lIEpTTm9uRmluYWxPYmplY3RfaW5saW5lU3RvcmFnZUNhcGFjaXR5IDEKLSNkZWZpbmUgSlNG
aW5hbE9iamVjdF9pbmxpbmVTdG9yYWdlQ2FwYWNpdHkgMwogI2VuZGlmCiAKIENPTVBJTEVfQVNT
RVJUKChKU0ZpbmFsT2JqZWN0X2lubGluZVN0b3JhZ2VDYXBhY2l0eSA+PSBKU05vbkZpbmFsT2Jq
ZWN0X2lubGluZVN0b3JhZ2VDYXBhY2l0eSksIGZpbmFsX3N0b3JhZ2VfaXNfYXRfbGVhc3RfYXNf
bGFyZ2VfYXNfbm9uX2ZpbmFsKTsKQEAgLTMyNSw3ICszMjEsNiBAQCBDT01QSUxFX0FTU0VSVCgo
SlNGaW5hbE9iamVjdF9pbmxpbmVTdG9yYWdlQ2FwYWNpdHkgPj0gSlNOb25GaW5hbE9iamVjdF9p
bmxpbmVTdAogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwq
KTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHZ0YWJsZUFuY2hvcigpOwogCiAgICAgcHJvdGVjdGVk
OgogICAgICAgICBleHBsaWNpdCBKU05vbkZpbmFsT2JqZWN0KFZQdHJTdGVhbGluZ0hhY2tUeXBl
KQpAQCAtNDAxLDggKzM5Niw2IEBAIENPTVBJTEVfQVNTRVJUKChKU0ZpbmFsT2JqZWN0X2lubGlu
ZVN0b3JhZ2VDYXBhY2l0eSA+PSBKU05vbkZpbmFsT2JqZWN0X2lubGluZVN0CiAgICAgICAgIFdy
aXRlQmFycmllckJhc2U8VW5rbm93bj4gbV9pbmxpbmVTdG9yYWdlW0pTRmluYWxPYmplY3RfaW5s
aW5lU3RvcmFnZUNhcGFjaXR5XTsKICAgICB9OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCi0KIGlubGluZSBzaXplX3QgSlNPYmplY3Q6Om9mZnNldE9mSW5saW5lU3RvcmFnZSgpCiB7
CiAgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihKU0ZpbmFsT2JqZWN0LCBtX2lubGluZVN0b3Jh
Z2UpID09IE9CSkVDVF9PRkZTRVRPRihKU05vbkZpbmFsT2JqZWN0LCBtX2lubGluZVN0b3JhZ2Up
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlO
YW1lSXRlcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlO
YW1lSXRlcmF0b3IuaAppbmRleCBhNmJkMGY3Li5jZTJlNDRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oCkBAIC0z
OSw5ICszOSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIElkZW50aWZpZXI7CiAgICAg
Y2xhc3MgSlNPYmplY3Q7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgotCiAgICAgY2xh
c3MgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciA6IHB1YmxpYyBKU0NlbGwgewogICAgICAgICBmcmll
bmQgY2xhc3MgSklUOwogCkBAIC0xMDgsOCArMTA1LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIE93bkFycmF5UHRyPFdyaXRlQmFycmllcjxVbmtub3duPiA+IG1fanNTdHJpbmdzOwogICAg
IH07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLQogICAgIGlubGluZSB2b2lkIFN0
cnVjdHVyZTo6c2V0RW51bWVyYXRpb25DYWNoZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpT
UHJvcGVydHlOYW1lSXRlcmF0b3IqIGVudW1lcmF0aW9uQ2FjaGUpCiAgICAgewogICAgICAgICBB
U1NFUlQoIWlzRGljdGlvbmFyeSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaAppbmRleCBhNDgxMzEzLi5kZTBiODE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVj
dC5oCkBAIC0zMCw5ICszMCw2IEBACiAKIG5hbWVzcGFjZSBKU0N7CiAgICAgCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
bm9uLXZpcnR1YWwtZHRvciIKLQogICAgIGNsYXNzIEpTU3RhdGljU2NvcGVPYmplY3QgOiBwdWJs
aWMgSlNWYXJpYWJsZU9iamVjdCB7CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEpTVmFy
aWFibGVPYmplY3QgQmFzZTsKQEAgLTc3LDggKzc0LDYgQEAgbmFtZXNwYWNlIEpTQ3sKICAgICAg
ICAgV3JpdGVCYXJyaWVyPFVua25vd24+IG1fcmVnaXN0ZXJTdG9yZTsKICAgICB9OwogCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0KICAgICBpbmxpbmUgYm9vbCBKU1N0YXRpY1Njb3Bl
T2JqZWN0Ojppc0R5bmFtaWNTY29wZShib29sJikgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVy
biBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3Ry
aW5nLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcAppbmRl
eCA5OGNmZmYwLi4wMWJiOTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1N0cmluZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNT
dHJpbmcuY3BwCkBAIC00NSwxMCArNDUsNiBAQCB2b2lkIEpTU3RyaW5nOjpSb3BlQnVpbGRlcjo6
ZXhwYW5kKCkKICAgICBhcHBlbmQoanNTdHJpbmcpOwogfQogCi12b2lkIEpTU3RyaW5nOjp2dGFi
bGVBbmNob3IoKQotewotfQotCiB2b2lkIEpTU3RyaW5nOjpkZXN0cm95KEpTQ2VsbCogY2VsbCkK
IHsKICAgICBKU1N0cmluZyogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1N0cmluZyo+KGNlbGwpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKaW5kZXggMjU4MTEwOC4uNDc3
NDUxYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCkBAIC01OSw5
ICs1OSw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgSlNTdHJpbmcqIGpzU3RyaW5nQnVpbGRl
cihKU0dsb2JhbERhdGEqKTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbi12aXJ0dWFsLWR0b3IiCi0KICAgICBj
bGFzcyBKU19FWFBPUlRDTEFTUyBKU1N0cmluZyA6IHB1YmxpYyBKU0NlbGwgewogICAgIHB1Ymxp
YzoKICAgICAgICAgZnJpZW5kIGNsYXNzIEpJVDsKQEAgLTcyLDcgKzY5LDYgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKICAgICAgICAgdHlwZWRlZiBKU0NlbGwgQmFzZTsKIAotICAgICAgICB2aXJ0dWFs
IHZvaWQgdnRhYmxlQW5jaG9yKCk7CiAgICAgICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxs
Kik7CiAKICAgICAgICAgY2xhc3MgUm9wZUJ1aWxkZXIgewpAQCAtMjgxLDggKzI3Nyw2IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBmcmllbmQgSlNTdHJpbmcqIGpzU3Vic3RyaW5nKEV4ZWNT
dGF0ZSosIEpTU3RyaW5nKiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpOwogICAg
IH07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLQogICAgIEpTU3RyaW5nKiBhc1N0
cmluZyhKU1ZhbHVlKTsKIAogICAgIC8vIFdoZW4gYW4gb2JqZWN0IGlzIGNyZWF0ZWQgZnJvbSBh
IGRpZmZlcmVudCBETEwsIE1TVkMgY2hhbmdlcyB2cHRyIHRvIGEgImxvY2FsIiBvbmUgcmlnaHQg
YWZ0ZXIgaW52b2tpbmcgYSBjb25zdHJ1Y3RvciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5jcHAKaW5kZXggMmNiOWZlMC4uNzA2ZTNkZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVj
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVj
dC5jcHAKQEAgLTQyLDEwICs0Miw2IEBAIHZvaWQgSlNWYXJpYWJsZU9iamVjdDo6ZGVzdHJveShK
U0NlbGwqIGNlbGwpCiAgICAganNDYXN0PEpTVmFyaWFibGVPYmplY3QqPihjZWxsKS0+SlNWYXJp
YWJsZU9iamVjdDo6fkpTVmFyaWFibGVPYmplY3QoKTsKIH0KIAotdm9pZCBKU1ZhcmlhYmxlT2Jq
ZWN0Ojp2dGFibGVBbmNob3IoKQotewotfQotCiBib29sIEpTVmFyaWFibGVPYmplY3Q6OmRlbGV0
ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNWYXJpYWJsZU9iamVjdCogdGhpc09iamVjdCA9IGpz
Q2FzdDxKU1ZhcmlhYmxlT2JqZWN0Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmgKaW5kZXggODFkMDM3Mi4uOGE1YzVhMCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaApA
QCAtNDAsOSArNDAsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGNsYXNzIFJlZ2lzdGVyOwog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1Xbm9uLXZpcnR1YWwtZHRvciIKLQogICAgIGNsYXNzIEpTVmFyaWFibGVPYmpl
Y3QgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBKSVQ7
CiAKQEAgLTg3LDggKzg0LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBDT01QSUxF
X0FTU0VSVChzaXplb2YoV3JpdGVCYXJyaWVyPFVua25vd24+KSA9PSBzaXplb2YoUmVnaXN0ZXIp
LCBSZWdpc3Rlcl9zaG91bGRfYmVfc2FtZV9zaXplX2FzX1dyaXRlQmFycmllcik7CiAgICAgICAg
IH0KIAotICAgICAgICB2aXJ0dWFsIHZvaWQgdnRhYmxlQW5jaG9yKCk7Ci0KICAgICAgICAgUGFz
c093bkFycmF5UHRyPFdyaXRlQmFycmllcjxVbmtub3duPiA+IGNvcHlSZWdpc3RlckFycmF5KEpT
R2xvYmFsRGF0YSYsIFdyaXRlQmFycmllcjxVbmtub3duPiogc3JjLCBzaXplX3QgY291bnQsIHNp
emVfdCBjYWxsZnJhbWVTdGFydHMpOwogICAgICAgICB2b2lkIHNldFJlZ2lzdGVycyhXcml0ZUJh
cnJpZXI8VW5rbm93bj4qIHJlZ2lzdGVycywgUGFzc093bkFycmF5UHRyPFdyaXRlQmFycmllcjxV
bmtub3duPiA+IHJlZ2lzdGVyQXJyYXkpOwogCkBAIC0xMDMsOCArOTgsNiBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgT3duQXJyYXlQdHI8V3JpdGVCYXJyaWVyPFVua25vd24+ID4gbV9yZWdp
c3RlckFycmF5OyAvLyBJbmRlcGVuZGVudCBjb3B5IG9mIHJlZ2lzdGVycywgdXNlZCB3aGVuIGEg
dmFyaWFibGUgb2JqZWN0IGNvcGllcyBpdHMgcmVnaXN0ZXJzIG91dCBvZiB0aGUgcmVnaXN0ZXIg
ZmlsZS4KICAgICB9OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0KICAgICBpbmxp
bmUgYm9vbCBKU1ZhcmlhYmxlT2JqZWN0OjpzeW1ib2xUYWJsZUdldChjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKICAgICB7CiAgICAgICAgIFN5bWJv
bFRhYmxlRW50cnkgZW50cnkgPSBzeW1ib2xUYWJsZSgpLmlubGluZUdldChwcm9wZXJ0eU5hbWUu
aW1wbCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3Jh
cHBlck9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJP
YmplY3QuY3BwCmluZGV4IDhjNjNmZDQuLmY4ZjU3MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmNwcApAQCAtMjcsMTAgKzI3LDYgQEAg
bmFtZXNwYWNlIEpTQyB7CiBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTV3JhcHBlck9iamVj
dCk7CiBBU1NFUlRfSEFTX1RSSVZJQUxfREVTVFJVQ1RPUihKU1dyYXBwZXJPYmplY3QpOwogCi12
b2lkIEpTV3JhcHBlck9iamVjdDo6dnRhYmxlQW5jaG9yKCkKLXsKLX0KLQogdm9pZCBKU1dyYXBw
ZXJPYmplY3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRv
cikKIHsKICAgICBKU1dyYXBwZXJPYmplY3QqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNXcmFwcGVy
T2JqZWN0Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1dyYXBwZXJPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3Jh
cHBlck9iamVjdC5oCmluZGV4IGViOWVhZjMuLjY1YjRiZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5oCkBAIC0yNiw5ICsyNiw2IEBACiAK
IG5hbWVzcGFjZSBKU0MgewogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9uLXZpcnR1YWwtZHRvciIKLQogICAgIC8v
IFRoaXMgY2xhc3MgaXMgdXNlZCBhcyBhIGJhc2UgZm9yIGNsYXNzZXMgc3VjaCBhcyBTdHJpbmcs
CiAgICAgLy8gTnVtYmVyLCBCb29sZWFuIGFuZCBEYXRlIHdoaWNoIGFyZSB3cmFwcGVycyBmb3Ig
cHJpbWl0aXZlIHR5cGVzLgogICAgIGNsYXNzIEpTV3JhcHBlck9iamVjdCA6IHB1YmxpYyBKU05v
bkZpbmFsT2JqZWN0IHsKQEAgLTUxLDExICs0OCw4IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAg
cHJpdmF0ZToKICAgICAgICAgV3JpdGVCYXJyaWVyPFVua25vd24+IG1faW50ZXJuYWxWYWx1ZTsK
LSAgICAgICAgdmlydHVhbCB2b2lkIHZ0YWJsZUFuY2hvcigpOwogICAgIH07CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKLQogICAgIGlubGluZSBKU1dyYXBwZXJPYmplY3Q6OkpTV3Jh
cHBlck9iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJl
KQogICAgICAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQogICAg
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3Qu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaAppbmRleCAxZDNi
ZTYwLi5hNDEyOTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9N
YXRoT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVj
dC5oCkBAIC0yNSw5ICsyNSw2IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9u
LXZpcnR1YWwtZHRvciIKLQogICAgIGNsYXNzIE1hdGhPYmplY3QgOiBwdWJsaWMgSlNOb25GaW5h
bE9iamVjdCB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgTWF0aE9iamVjdChKU0dsb2JhbE9iamVj
dCosIFN0cnVjdHVyZSopOwpAQCAtNTYsOCArNTMsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3du
UHJvcGVydHlTbG90IHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogICAgIH07CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAv
LyBNYXRoT2JqZWN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaAppbmRleCA1ZThkYTUxLi45ODMyMmYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9y
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1
Y3Rvci5oCkBAIC0zMCw5ICszMCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIEZ1bmN0
aW9uUHJvdG90eXBlOwogICAgIGNsYXNzIE5hdGl2ZUVycm9yUHJvdG90eXBlOwogCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1Xbm9uLXZpcnR1YWwtZHRvciIKLQogICAgIGNsYXNzIE5hdGl2ZUVycm9yQ29uc3RydWN0b3Ig
OiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVm
IEludGVybmFsRnVuY3Rpb24gQmFzZTsKQEAgLTc4LDggKzc1LDYgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fZXJyb3JTdHJ1Y3R1cmU7CiAgICAg
fTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotCiB9IC8vIG5hbWVzcGFjZSBKU0MK
IAogI2VuZGlmIC8vIE5hdGl2ZUVycm9yQ29uc3RydWN0b3JfaApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JQcm90b3R5cGUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yUHJvdG90eXBlLmgKaW5kZXggMjFlOWY2
Yi4uNzZhZDcwNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0
aXZlRXJyb3JQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9O
YXRpdmVFcnJvclByb3RvdHlwZS5oCkBAIC0yNiw5ICsyNiw2IEBACiBuYW1lc3BhY2UgSlNDIHsK
ICAgICBjbGFzcyBOYXRpdmVFcnJvckNvbnN0cnVjdG9yOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9uLXZpcnR1
YWwtZHRvciIKLQogICAgIGNsYXNzIE5hdGl2ZUVycm9yUHJvdG90eXBlIDogcHVibGljIEVycm9y
UHJvdG90eXBlIHsKICAgICBwcml2YXRlOgogICAgICAgICBOYXRpdmVFcnJvclByb3RvdHlwZShF
eGVjU3RhdGUqLCBTdHJ1Y3R1cmUqKTsKQEAgLTQ3LDggKzQ0LDYgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3Qq
LCBjb25zdCBVU3RyaW5nJiBuYW1lQW5kTWVzc2FnZSwgTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvciop
OwogICAgIH07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLQogfSAvLyBuYW1lc3Bh
Y2UgSlNDCiAKICNlbmRpZiAvLyBOYXRpdmVFcnJvclByb3RvdHlwZV9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaAppbmRleCBjNjFjMDg0
Li4wYjljMjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1i
ZXJDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJl
ckNvbnN0cnVjdG9yLmgKQEAgLTI3LDkgKzI3LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBj
bGFzcyBOdW1iZXJQcm90b3R5cGU7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgotCiAg
ICAgY2xhc3MgTnVtYmVyQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAg
ICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFzZTsKQEAgLTY0
LDggKzYxLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRD
YWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogICAgIH07CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBOdW1iZXJDb25z
dHJ1Y3Rvcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1i
ZXJPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5o
CmluZGV4IGI3ZDZiOWUuLmE1ZjQ0ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL051bWJlck9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL051bWJlck9iamVjdC5oCkBAIC0yNSw5ICsyNSw2IEBACiAKIG5hbWVzcGFjZSBKU0Mgewog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1Xbm9uLXZpcnR1YWwtZHRvciIKLQogICAgIGNsYXNzIE51bWJlck9iamVjdCA6
IHB1YmxpYyBKU1dyYXBwZXJPYmplY3QgewogICAgIHByb3RlY3RlZDoKICAgICAgICAgTnVtYmVy
T2JqZWN0KEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSopOwpAQCAtNTEsOCArNDgsNiBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgfQogICAgIH07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKLQogICAgIE51bWJlck9iamVjdCogY29uc3RydWN0TnVtYmVyKEV4ZWNTdGF0ZSosIEpT
R2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuaAppbmRleCA2NGUzOGZi
Li4wNWJiZTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1i
ZXJQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQ
cm90b3R5cGUuaApAQCAtMjUsOSArMjUsNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV25vbi12aXJ0dWFsLWR0b3IiCi0KICAgICBjbGFzcyBOdW1iZXJQcm90b3R5cGUgOiBwdWJs
aWMgTnVtYmVyT2JqZWN0IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgTnVtYmVyT2Jq
ZWN0IEJhc2U7CkBAIC01Niw4ICs1Myw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0
aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgfTsKIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAotCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8v
IE51bWJlclByb3RvdHlwZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T2JqZWN0Q29uc3RydWN0b3IuaAppbmRleCA4NGM2MjQyLi40ZTBhZmE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKQEAgLTI3LDkg
KzI3LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBPYmplY3RQcm90b3R5cGU7CiAK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgotCiAgICAgY2xhc3MgT2JqZWN0Q29uc3RydWN0
b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgcHVibGljOgogICAgICAgICB0eXBl
ZGVmIEludGVybmFsRnVuY3Rpb24gQmFzZTsKQEAgLTYxLDggKzU4LDYgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0
YSYpOwogICAgIH07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLQogfSAvLyBuYW1l
c3BhY2UgSlNDCiAKICNlbmRpZiAvLyBPYmplY3RDb25zdHJ1Y3Rvcl9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5oCmluZGV4IDdkZTFmMmQuLmI2
MDVhNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFBy
b3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3Rv
dHlwZS5oCkBAIC0yNSw5ICsyNSw2IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
bm9uLXZpcnR1YWwtZHRvciIKLQogICAgIGNsYXNzIE9iamVjdFByb3RvdHlwZSA6IHB1YmxpYyBK
U05vbkZpbmFsT2JqZWN0IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgSlNOb25GaW5h
bE9iamVjdCBCYXNlOwpAQCAtNjIsOCArNTksNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
Ym9vbCBtX2hhc05vUHJvcGVydGllc1dpdGhVSW50MzJOYW1lczsKICAgICB9OwogCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCi0KICAgICBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IG9iamVjdFByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSopOwogCiB9IC8vIG5hbWVzcGFjZSBK
U0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmgKaW5kZXggNTQ2MzBlOC4uNjVl
YjQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmgKQEAgLTM3LDkgKzM3
LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBSZWdFeHBGbGFncyByZWdFeHBGbGFncyhjb25z
dCBVU3RyaW5nJik7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgotCiAgICAgY2xhc3Mg
UmVnRXhwIDogcHVibGljIEpTQ2VsbCB7CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEpT
Q2VsbCBCYXNlOwpAQCAtMTE0LDggKzExMSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBP
d25QdHI8UmVnRXhwUmVwcmVzZW50YXRpb24+IG1fcmVwcmVzZW50YXRpb247CiAgICAgfTsKIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2Vu
ZGlmIC8vIFJlZ0V4cF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwQ29uc3RydWN0b3IuaAppbmRleCBmNGZlMmVjLi43ZmI4OGQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKQEAgLTU1LDkgKzU1
LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHVuc2lnbmVkIGxhc3RPdmVjdG9ySW5kZXgg
OiAxOwogICAgIH07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgotCiAgICAgY2xhc3Mg
UmVnRXhwQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgcHVibGlj
OgogICAgICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFzZTsKQEAgLTEwOCw4ICsxMDUs
NiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgT3duUHRyPFJlZ0V4cENvbnN0cnVjdG9yUHJp
dmF0ZT4gZDsKICAgICB9OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0KICAgICBS
ZWdFeHBDb25zdHJ1Y3RvciogYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlKTsKIAogICAgIEpT
T2JqZWN0KiBjb25zdHJ1Y3RSZWdFeHAoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBjb25z
dCBBcmdMaXN0JiwgYm9vbCBjYWxsQXNDb25zdHJ1Y3RvciA9IGZhbHNlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKaW5kZXggYmY5
NmE3Yy4uMWMxMTdiMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwTWF0Y2hlc0FycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwTWF0Y2hlc0FycmF5LmgKQEAgLTI0LDkgKzI0LDYgQEAKIAogbmFtZXNwYWNlIEpTQyB7
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgotCiAgICAgY2xhc3MgUmVnRXhwTWF0Y2hl
c0FycmF5IDogcHVibGljIEpTQXJyYXkgewogICAgIHByaXZhdGU6CiAgICAgICAgIFJlZ0V4cE1h
dGNoZXNBcnJheShFeGVjU3RhdGUqKTsKQEAgLTEyMSw4ICsxMTgsNiBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgdm9pZCBmaWxsQXJyYXlJbnN0YW5jZShFeGVjU3RhdGUqKTsKIH07CiAKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLQogfQogCiAjZW5kaWYgLy8gUmVnRXhwTWF0Y2hl
c0FycmF5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgK
aW5kZXggZTVlNDRhOC4uZWU5OGI2NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwT2JqZWN0LmgKQEAgLTI2LDkgKzI2LDYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAg
ICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1Xbm9uLXZpcnR1YWwtZHRvciIKLQogICAgIGNsYXNzIFJlZ0V4cE9iamVj
dCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVk
ZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwpAQCAtMTA3LDggKzEwNCw2IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBPd25QdHI8UmVnRXhwT2JqZWN0RGF0YT4gZDsKICAgICB9OwogCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0KICAgICBSZWdFeHBPYmplY3QqIGFzUmVnRXhwT2Jq
ZWN0KEpTVmFsdWUpOwogCiAgICAgaW5saW5lIFJlZ0V4cE9iamVjdCogYXNSZWdFeHBPYmplY3Qo
SlNWYWx1ZSB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cFByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
UHJvdG90eXBlLmgKaW5kZXggN2I0MTk3OS4uMjU1NWU1MiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmgKQEAgLTI2LDkgKzI2LDYgQEAKIAog
bmFtZXNwYWNlIEpTQyB7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgotCiAgICAgY2xh
c3MgUmVnRXhwUHJvdG90eXBlIDogcHVibGljIFJlZ0V4cE9iamVjdCB7CiAgICAgcHVibGljOgog
ICAgICAgICB0eXBlZGVmIFJlZ0V4cE9iamVjdCBCYXNlOwpAQCAtNTYsOCArNTMsNiBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3Jp
cHRvciYpOwogICAgIH07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLQogfSAvLyBu
YW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBSZWdFeHBQcm90b3R5cGVfaApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVDaGFpbi5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TY29wZUNoYWluLmNwcAppbmRleCAyNjQwOGU4Li4wOTlmN2Zk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZUNoYWluLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZUNoYWluLmNwcApAQCAt
NTUsMTAgKzU1LDYgQEAgdm9pZCBTY29wZUNoYWluTm9kZTo6cHJpbnQoKQogCiBjb25zdCBDbGFz
c0luZm8gU2NvcGVDaGFpbk5vZGU6OnNfaW5mbyA9IHsgIlNjb3BlQ2hhaW5Ob2RlIiwgMCwgMCwg
MCwgQ1JFQVRFX01FVEhPRF9UQUJMRShTY29wZUNoYWluTm9kZSkgfTsKIAotdm9pZCBTY29wZUNo
YWluTm9kZTo6dnRhYmxlQW5jaG9yKCkKLXsKLX0KLQogaW50IFNjb3BlQ2hhaW5Ob2RlOjpsb2Nh
bERlcHRoKCkKIHsKICAgICBpbnQgc2NvcGVEZXB0aCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZUNoYWluLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TY29wZUNoYWluLmgKaW5kZXggZDhhMWVkMi4uZmRlNjkwZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVDaGFpbi5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlQ2hhaW4uaApAQCAtMzMsOSArMzMsNiBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBTY29wZUNoYWluSXRlcmF0b3I7CiAgICAgY2xhc3Mg
U2xvdFZpc2l0b3I7CiAgICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9uLXZpcnR1YWwtZHRvciIKLQogICAgIGNs
YXNzIFNjb3BlQ2hhaW5Ob2RlIDogcHVibGljIEpTQ2VsbCB7CiAgICAgcHJpdmF0ZToKICAgICAg
ICAgU2NvcGVDaGFpbk5vZGUoU2NvcGVDaGFpbk5vZGUqIG5leHQsIEpTT2JqZWN0KiBvYmplY3Qs
IEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNPYmplY3QqIGdsb2JhbFRoaXMpCkBAIC01NSw4ICs1Miw2IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCk7CiAg
ICAgICAgIH0KIAotICAgICAgICB2aXJ0dWFsIHZvaWQgdnRhYmxlQW5jaG9yKCk7Ci0KICAgICBw
dWJsaWM6CiAgICAgICAgIHR5cGVkZWYgSlNDZWxsIEJhc2U7CiAKQEAgLTEzMiw4ICsxMjcsNiBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgU2NvcGVDaGFpbk5vZGUqIG1fbm9kZTsKICAgICB9
OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0KICAgICBpbmxpbmUgU2NvcGVDaGFp
bkl0ZXJhdG9yIFNjb3BlQ2hhaW5Ob2RlOjpiZWdpbigpCiAgICAgewogICAgICAgICByZXR1cm4g
U2NvcGVDaGFpbkl0ZXJhdG9yKHRoaXMpOyAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5oCmluZGV4IDU3MDVkM2UuLmJiNzAzNTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3Rp
dmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFj
dGl2YXRpb24uaApAQCAtMzAsOSArMzAsNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV25vbi12aXJ0dWFsLWR0b3IiCi0KIGNsYXNzIFN0cmljdEV2YWxBY3RpdmF0aW9uIDogcHVi
bGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9i
amVjdCBCYXNlOwpAQCAtNjEsOCArNTgsNiBAQCBwcml2YXRlOgogICAgIFN0cmljdEV2YWxBY3Rp
dmF0aW9uKEV4ZWNTdGF0ZSopOwogfTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAot
CiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIFN0cmljdEV2YWxBY3RpdmF0aW9uX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVj
dG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5o
CmluZGV4IDJiNjdlZmEuLjlmYjI5YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaApAQCAtMjcsOSArMjcsNiBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogICAgIGNsYXNzIFN0cmluZ1Byb3RvdHlwZTsKIAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbi12aXJ0
dWFsLWR0b3IiCi0KICAgICBjbGFzcyBTdHJpbmdDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5h
bEZ1bmN0aW9uIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgSW50ZXJuYWxGdW5jdGlv
biBCYXNlOwpAQCAtNjEsOCArNTgsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIH07CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBT
dHJpbmdDb25zdHJ1Y3Rvcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nT2JqZWN0LmNwcAppbmRleCBhMzZjZmU0Li40YTI0Njk4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKQEAgLTM1LDEwICszNSw2IEBAIFN0
cmluZ09iamVjdDo6U3RyaW5nT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCiB7CiB9CiAKLXZvaWQgU3RyaW5nT2JqZWN0Ojp2dGFibGVBbmNob3Io
KQotewotfQotCiB2b2lkIFN0cmluZ09iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU1N0cmluZyogc3RyaW5nKQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0
aW9uKGdsb2JhbERhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RyaW5nT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdP
YmplY3QuaAppbmRleCA5YzQ4MDlhLi44MDZkMDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdPYmplY3QuaApAQCAtMjYsMTUgKzI2LDEwIEBACiAKIG5hbWVzcGFj
ZSBKU0MgewogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9uLXZpcnR1YWwtZHRvciIKLQogICAgIGNsYXNzIFN0cmlu
Z09iamVjdCA6IHB1YmxpYyBKU1dyYXBwZXJPYmplY3QgewogICAgIHB1YmxpYzoKICAgICAgICAg
dHlwZWRlZiBKU1dyYXBwZXJPYmplY3QgQmFzZTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgdnRh
YmxlQW5jaG9yKCk7Ci0KICAgICAgICAgc3RhdGljIFN0cmluZ09iamVjdCogY3JlYXRlKEV4ZWNT
dGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgICAgIHsKICAgICAgICAgICAg
IEpTU3RyaW5nKiBzdHJpbmcgPSBqc0VtcHR5U3RyaW5nKGV4ZWMpOwpAQCAtNzQsOCArNjksNiBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgU3RyaW5nT2JqZWN0KEpTR2xvYmFsRGF0YSYsIFN0
cnVjdHVyZSopOwogICAgIH07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLQogICAg
IFN0cmluZ09iamVjdCogYXNTdHJpbmdPYmplY3QoSlNWYWx1ZSk7CiAKICAgICBpbmxpbmUgU3Ry
aW5nT2JqZWN0KiBhc1N0cmluZ09iamVjdChKU1ZhbHVlIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaAppbmRleCA4Zjk2NzUxLi4xNDEy
MmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90
b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5
cGUuaApAQCAtMjUsOSArMjUsNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25v
bi12aXJ0dWFsLWR0b3IiCi0KICAgICBjbGFzcyBPYmplY3RQcm90b3R5cGU7CiAKICAgICBjbGFz
cyBTdHJpbmdQcm90b3R5cGUgOiBwdWJsaWMgU3RyaW5nT2JqZWN0IHsKQEAgLTYxLDggKzU4LDYg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICB9OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCi0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gU3RyaW5nUHJvdG90eXBlX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKaW5kZXggOWE5YTEwMy4u
OTJlMWIzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKQEAg
LTUwLDkgKzUwLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgU3RydWN0dXJlQ2hhaW47
CiAgICAgY2xhc3MgU2xvdFZpc2l0b3I7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgot
CiAgICAgY2xhc3MgU3RydWN0dXJlIDogcHVibGljIEpTQ2VsbCB7CiAgICAgcHVibGljOgogICAg
ICAgICBmcmllbmQgY2xhc3MgU3RydWN0dXJlVHJhbnNpdGlvblRhYmxlOwpAQCAtMjkzLDggKzI5
MCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB1bnNpZ25lZCBtX3N0YXRpY0Z1bmN0aW9u
UmVpZmllZDsKICAgICB9OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0KICAgICBp
bmxpbmUgc2l6ZV90IFN0cnVjdHVyZTo6Z2V0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogICAgIHsKICAgICAgICAgQVNTRVJUKHN0cnVj
dHVyZSgpLT5jbGFzc0luZm8oKSA9PSAmc19pbmZvKTsKQEAgLTM4OCw4ICszODMsOCBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICB9CiAKICAgICBpbmxpbmUgSlNDZWxsOjpKU0NlbGwoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICAgICAgOiBtX3N0cnVj
dHVyZShnbG9iYWxEYXRhLCB0aGlzLCBzdHJ1Y3R1cmUpCi0gICAgICAgICwgbV9jbGFzc0luZm8o
c3RydWN0dXJlLT5jbGFzc0luZm8oKSkKKyAgICAgICAgOiBtX2NsYXNzSW5mbyhzdHJ1Y3R1cmUt
PmNsYXNzSW5mbygpKQorICAgICAgICAsIG1fc3RydWN0dXJlKGdsb2JhbERhdGEsIHRoaXMsIHN0
cnVjdHVyZSkKICAgICB7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RydWN0dXJlQ2hhaW4uaAppbmRleCA0ZmZlY2VkLi4wMWE1OWJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNoYWluLmgKQEAgLTM5LDkgKzM5LDYg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBTdHJ1Y3R1cmU7CiAKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdu
b24tdmlydHVhbC1kdG9yIgotCiAgICAgY2xhc3MgU3RydWN0dXJlQ2hhaW4gOiBwdWJsaWMgSlND
ZWxsIHsKICAgICAgICAgZnJpZW5kIGNsYXNzIEpJVDsKIApAQCAtODIsOCArNzksNiBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgT3duQXJyYXlQdHI8V3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4g
PiBtX3ZlY3RvcjsKICAgICB9OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0KIH0g
Ly8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gU3RydWN0dXJlQ2hhaW5faApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RSZWdFeHAuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RSZWdFeHAuY3BwCmluZGV4IDkyYzMxYzYuLjdmOWZhN2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0UmVnRXhwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdFJlZ0V4cC5jcHAKQEAgLTEwOCw5ICsxMDgsNiBAQCBzdHJ1Y3QgUmVnRXhw
VGVzdCB7CiAgICAgVmVjdG9yPGludCwgMzI+IGV4cGVjdFZlY3RvcjsKIH07CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdub24tdmlydHVhbC1kdG9yIgotCiBjbGFzcyBHbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNHbG9i
YWxPYmplY3QgewogcHJpdmF0ZToKICAgICBHbG9iYWxPYmplY3QoSlNHbG9iYWxEYXRhJiwgU3Ry
dWN0dXJlKiwgY29uc3QgVmVjdG9yPFVTdHJpbmc+JiBhcmd1bWVudHMpOwpAQCAtMTM4LDggKzEz
NSw2IEBAIHByb3RlY3RlZDoKICAgICB9CiB9OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCi0KIENPTVBJTEVfQVNTRVJUKCFJc0ludGVnZXI8R2xvYmFsT2JqZWN0Pjo6dmFsdWUsIFdU
Rl9Jc0ludGVnZXJfR2xvYmFsT2JqZWN0X2ZhbHNlKTsKIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NF
TEwoR2xvYmFsT2JqZWN0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBjZjNhNTA3Li43NWY1
OTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjYzLDcgKzI2Myw2IEBAIF9fWk43V2ViQ29y
ZTEySWNvbkRhdGFiYXNlMjdjaGVja0ludGVncml0eUJlZm9yZU9wZW5pbmdFdgogX19aTjdXZWJD
b3JlMTJJY29uRGF0YWJhc2U1Y2xvc2VFdgogX19aTjdXZWJDb3JlMTJJY29uRGF0YWJhc2U5c2V0
Q2xpZW50RVBOU18xOEljb25EYXRhYmFzZUNsaWVudEUKIF9fWk43V2ViQ29yZTEySWNvbkRhdGFi
YXNlQzFFdgotX19aTjdXZWJDb3JlMTJKU0RPTVdyYXBwZXIzNHZpcnR1YWxGdW5jdGlvblRvUHJl
dmVudFdlYWtWdGFibGVFdgogX19aTjdXZWJDb3JlMTJKU0RPTVdyYXBwZXI2c19pbmZvRQogX19a
TjdXZWJDb3JlMTJQb3B1cE1lbnVNYWNDMUVQTlNfMTVQb3B1cE1lbnVDbGllbnRFCiBfX1pON1dl
YkNvcmUxMlByaW50Q29udGV4dDEycGFnZVByb3BlcnR5RVBOU181RnJhbWVFUEtjaQpAQCAtMTI3
Niw2ICsxMjc1LDcgQEAgX19aTks3V2ViQ29yZTE2VmlzaWJsZVNlbGVjdGlvbjE3dG9Ob3JtYWxp
emVkUmFuZ2VFdgogX19aTks3V2ViQ29yZTE2VmlzaWJsZVNlbGVjdGlvbjE5cm9vdEVkaXRhYmxl
RWxlbWVudEV2CiBfX1pOSzdXZWJDb3JlMTZWaXNpYmxlU2VsZWN0aW9uMjNpc0NvbnRlbnRSaWNo
bHlFZGl0YWJsZUV2CiBfX1pOSzdXZWJDb3JlMTZWaXNpYmxlU2VsZWN0aW9uNWlzQWxsRU5TXzI3
RWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlRQorX19aTks3V2ViQ29yZTE3SlNET01HbG9iYWxP
YmplY3QyMnNjcmlwdEV4ZWN1dGlvbkNvbnRleHRFdgogX19aTks3V2ViQ29yZTE3UmVndWxhckV4
cHJlc3Npb24xM21hdGNoZWRMZW5ndGhFdgogX19aTks3V2ViQ29yZTE3UmVndWxhckV4cHJlc3Np
b241bWF0Y2hFUktOM1dURjZTdHJpbmdFaVBpCiBfX1pOSzdXZWJDb3JlMTdSZWd1bGFyRXhwcmVz
c2lvbjlzZWFyY2hSZXZFUktOM1dURjZTdHJpbmdFCkBAIC0xNDQwLDcgKzE0NDAsNiBAQCBfX1pO
SzdXZWJDb3JlOVBhZ2VDYWNoZTEwZnJhbWVDb3VudEV2CiBfX1pOSzdXZWJDb3JlOVBhZ2VDYWNo
ZTIxYXV0b3JlbGVhc2VkUGFnZUNvdW50RXYKIF9fWk5LN1dlYkNvcmU5VHJlZVNjb3BlMTRnZXRF
bGVtZW50QnlJZEVSS04zV1RGMTJBdG9taWNTdHJpbmdFCiBfX1pUVk43V2ViQ29yZTEyQ2hyb21l
Q2xpZW50RQotX19aVFZON1dlYkNvcmUxMkpTRE9NV3JhcHBlckUKIF9fWlRWTjdXZWJDb3JlMTZJ
Y29uRGF0YWJhc2VCYXNlRQogX19aVFZON1dlYkNvcmUxN0ZyYW1lTG9hZGVyQ2xpZW50RQogX19a
VFZON1dlYkNvcmUxOFBsYXRmb3JtU3RyYXRlZ2llc0UKQEAgLTE3MjMsNyArMTcyMiw2IEBAIF9f
Wk43V2ViQ29yZTVGcmFtZTI2c2VuZE9yaWVudGF0aW9uQ2hhbmdlRXZlbnRFaQogCiAjaWYgVVNF
KFBMVUdJTl9IT1NUX1BST0NFU1MpCiBfX1pOM0pTQzEzUnVudGltZU1ldGhvZDExZ2V0Q2FsbERh
dGFFUE5TXzZKU0NlbGxFUk5TXzhDYWxsRGF0YUUKLV9fWk4zSlNDMTNSdW50aW1lTWV0aG9kMTJ2
dGFibGVBbmNob3JFdgogX19aTjNKU0MxM1J1bnRpbWVNZXRob2QxNGZpbmlzaENyZWF0aW9uRVJO
U18xMkpTR2xvYmFsRGF0YUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDMTNSdW50aW1lTWV0
aG9kMThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzZKU0NlbGxFUE5TXzlFeGVjU3RhdGVFUktOU18x
MElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0MxM1J1bnRpbWVNZXRob2Qy
NGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOEpTT2JqZWN0RVBOU185RXhlY1N0YXRlRVJL
TlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKQEAgLTE3NTAsNyArMTc0
OCw2IEBAIF9fWk4zSlNDOEJpbmRpbmdzOEluc3RhbmNlQzJFTjNXVEYxMFBhc3NSZWZQdHJJTlMw
XzEwUm9vdE9iamVjdEVFRQogX19aTjNKU0M4QmluZGluZ3M4SW5zdGFuY2VEMkV2CiBfX1pON1dl
YkNvcmUxM0lkZW50aWZpZXJSZXA3aXNWYWxpZEVQUzBfCiBfX1pON1dlYkNvcmUxNlNjcmlwdENv
bnRyb2xsZXIxNmNyZWF0ZVJvb3RPYmplY3RFUHYKLV9fWlRWTjNKU0MxM1J1bnRpbWVNZXRob2RF
CiAjZW5kaWYKIAogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKaW5kZXgg
NGEzYTZhMC4uMGYzOWQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01HbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NR2xvYmFsT2JqZWN0LmNwcApAQCAtNTQsMTAgKzU0LDYgQEAgdm9pZCBKU0RPTUdsb2JhbE9i
amVjdDo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCiAgICAganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0
Kj4oY2VsbCktPkpTRE9NR2xvYmFsT2JqZWN0Ojp+SlNET01HbG9iYWxPYmplY3QoKTsKIH0KIAot
dm9pZCBKU0RPTUdsb2JhbE9iamVjdDo6dnRhYmxlQW5jaG9yKCkKLXsKLX0KLQogdm9pZCBKU0RP
TUdsb2JhbE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQog
ewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwpAQCAtNzAsNiArNjYsMTUg
QEAgdm9pZCBKU0RPTUdsb2JhbE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBKU0dsb2JhbFRoaXMqIHQKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykp
OwogfQogCitTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBKU0RPTUdsb2JhbE9iamVjdDo6c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0Cit7CisgICAgaWYgKGluaGVyaXRzKCZKU0RPTVdpbmRv
d0Jhc2U6OnNfaW5mbykpCisgICAgICAgIHJldHVybiBqc0Nhc3Q8Y29uc3QgSlNET01XaW5kb3dC
YXNlKj4odGhpcyktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoaW5oZXJpdHMo
JkpTV29ya2VyQ29udGV4dEJhc2U6OnNfaW5mbykpCisgICAgICAgIHJldHVybiBqc0Nhc3Q8Y29u
c3QgSlNXb3JrZXJDb250ZXh0QmFzZSo+KHRoaXMpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIHZvaWQgSlNET01HbG9iYWxPYmplY3Q6
OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAg
ICBKU0RPTUdsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVj
dCo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01H
bG9iYWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2Jq
ZWN0LmgKaW5kZXggN2U2NGZjOC4uYTRmYTRhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCkBAIC01NSwxMyArNTUsMTEgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6SlNHbG9iYWxEYXRh
Jik7CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpKU0dsb2JhbERhdGEmLCBKU0M6
OkpTR2xvYmFsVGhpcyopOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCB2dGFibGVBbmNob3IoKTsK
LQogICAgIHB1YmxpYzoKICAgICAgICAgSlNET01TdHJ1Y3R1cmVNYXAmIHN0cnVjdHVyZXMoKSB7
IHJldHVybiBtX3N0cnVjdHVyZXM7IH0KICAgICAgICAgSlNET01Db25zdHJ1Y3Rvck1hcCYgY29u
c3RydWN0b3JzKCkgeyByZXR1cm4gbV9jb25zdHJ1Y3RvcnM7IH0KIAotICAgICAgICB2aXJ0dWFs
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCA9
IDA7CisgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSBjb25zdDsKIAogICAgICAgICAvLyBNYWtlIGJpbmRpbmcgY29kZSBnZW5lcmF0aW9uIGVh
c2llci4KICAgICAgICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCgpIHsgcmV0dXJu
IHRoaXM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgK
aW5kZXggNmYxOTViMC4uOWZmZWI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dCYXNlLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICB2b2lkIHVwZGF0ZURvY3VtZW50KCk7CiAKICAgICAgICAgRE9NV2luZG93KiBpbXBs
KCkgY29uc3QgeyByZXR1cm4gbV9pbXBsLmdldCgpOyB9Ci0gICAgICAgIHZpcnR1YWwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0OworICAgICAg
ICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Q7
CiAKICAgICAgICAgLy8gQ2FsbGVkIGp1c3QgYmVmb3JlIHJlbW92aW5nIHRoaXMgd2luZG93IGZy
b20gdGhlIEpTRE9NV2luZG93U2hlbGwuCiAgICAgICAgIHZvaWQgd2lsbFJlbW92ZUZyb21XaW5k
b3dTaGVsbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
cmFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5jcHAK
aW5kZXggMmJiNjhlMC4uMDVkYTQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XcmFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdyYXBwZXIuY3BwCkBAIC0zNiw5ICszNiw0IEBAIEFTU0VSVF9IQVNfVFJJVklBTF9ERVNU
UlVDVE9SKEpTRE9NV3JhcHBlcik7CiAKIGNvbnN0IENsYXNzSW5mbyBKU0RPTVdyYXBwZXI6OnNf
aW5mbyA9IHsgIkpTRE9NV3JhcHBlciIsICZCYXNlOjpzX2luZm8sIDAsIDAsIENSRUFURV9NRVRI
T0RfVEFCTEUoSlNET01XcmFwcGVyKSB9OwogCi12b2lkIEpTRE9NV3JhcHBlcjo6dmlydHVhbEZ1
bmN0aW9uVG9QcmV2ZW50V2Vha1Z0YWJsZSgpCi17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XcmFwcGVyLmgKaW5kZXggNDY3NGMyMS4uM2RmOWE1NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XcmFwcGVyLmgKQEAgLTUzLDEwICs1Myw2IEBAIHB1YmxpYzoKICAg
ICB9CiAKIHByb3RlY3RlZDoKLSAgICAvLyBBbiBpbmxpbmUgZnVuY3Rpb24gY2Fubm90IGJlIHRo
ZSBmaXJzdCBub24tYWJzdHJhY3QgdmlydHVhbCBmdW5jdGlvbiBkZWNsYXJlZAotICAgIC8vIGlu
IHRoZSBjbGFzcyBhcyBpdCByZXN1bHRzIGluIHRoZSB2dGFibGUgYmVpbmcgZ2VuZXJhdGVkIGFz
IGEgd2VhayBzeW1ib2wuCi0gICAgdmlydHVhbCB2b2lkIHZpcnR1YWxGdW5jdGlvblRvUHJldmVu
dFdlYWtWdGFibGUoKTsKLQogICAgIGV4cGxpY2l0IEpTRE9NV3JhcHBlcihKU0M6OlN0cnVjdHVy
ZSogc3RydWN0dXJlLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIAogICAgICAg
ICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIHN0cnVjdHVy
ZSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcApp
bmRleCA1YWY3ZTM3Li42MWMxNWQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNOb2RlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U05vZGVDdXN0b20uY3BwCkBAIC0xODgsOCArMTg4LDEwIEBAIEpTVmFsdWUgSlNOb2RlOjphcHBl
bmRDaGlsZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIGpzTnVsbCgpOwogfQogCi1TY29w
ZUNoYWluTm9kZSogSlNOb2RlOjpwdXNoRXZlbnRIYW5kbGVyU2NvcGUoRXhlY1N0YXRlKiwgU2Nv
cGVDaGFpbk5vZGUqIG5vZGUpIGNvbnN0CitTY29wZUNoYWluTm9kZSogSlNOb2RlOjpwdXNoRXZl
bnRIYW5kbGVyU2NvcGUoRXhlY1N0YXRlKiBleGVjLCBTY29wZUNoYWluTm9kZSogbm9kZSkgY29u
c3QKIHsKKyAgICBpZiAoaW5oZXJpdHMoJkpTSFRNTEVsZW1lbnQ6OnNfaW5mbykpCisgICAgICAg
IHJldHVybiBqc0Nhc3Q8Y29uc3QgSlNIVE1MRWxlbWVudCo+KHRoaXMpLT5wdXNoRXZlbnRIYW5k
bGVyU2NvcGUoZXhlYywgbm9kZSk7CiAgICAgcmV0dXJuIG5vZGU7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuaAppbmRleCBlZjUwZjE4
Li4yNjk2Nzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtl
ckNvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJD
b250ZXh0QmFzZS5oCkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKIAogICAgICAgICBXb3JrZXJD
b250ZXh0KiBpbXBsKCkgY29uc3QgeyByZXR1cm4gbV9pbXBsLmdldCgpOyB9Ci0gICAgICAgIHZp
cnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNv
bnN0OworICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkgY29uc3Q7CiAKICAgICAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1
Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0g
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRl
eCA3YTc4NTkwLi4zNDJlY2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtODMzLDcgKzgzMyw3IEBAIHN1YiBHZW5lcmF0
ZUhlYWRlcgogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgfVxuXG4iKTsKIAogICAgICMg
Q3VzdG9tIHB1c2hFdmVudEhhbmRsZXJTY29wZSBmdW5jdGlvbgotICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAgdmlydHVhbCBKU0M6OlNjb3BlQ2hhaW5Ob2RlKiBwdXNoRXZlbnRIYW5kbGVy
U2NvcGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlNjb3BlQ2hhaW5Ob2RlKikgY29uc3Q7XG5cbiIp
IGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbVB1c2hFdmVudEhhbmRs
ZXJTY29wZSJ9OworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgSlNDOjpTY29wZUNoYWlu
Tm9kZSogcHVzaEV2ZW50SGFuZGxlclNjb3BlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpTY29wZUNo
YWluTm9kZSopIGNvbnN0O1xuXG4iKSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDdXN0b21QdXNoRXZlbnRIYW5kbGVyU2NvcGUifTsKIAogICAgICMgQ3VzdG9tIGNhbGwgZnVu
Y3Rpb25zCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgSlNDOjpDYWxsVHlw
ZSBnZXRDYWxsRGF0YShKU0M6OkpTQ2VsbCosIEpTQzo6Q2FsbERhdGEmKTtcblxuIikgaWYgJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ2FsbCJ9OwpAQCAtODY0LDcgKzg2
NCw2IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogCiAgICAgIyBPdmVycmlkZSB0b0Jvb2xlYW4gdG8g
cmV0dXJuIGZhbHNlIGZvciBvYmplY3RzIHRoYXQgd2FudCB0byAnTWFzcXVlcmFkZXNBc1VuZGVm
aW5lZCcuCiAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik1hc3F1ZXJh
ZGVzQXNVbmRlZmluZWQifSkgewotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZp
cnR1YWwgYm9vbCB0b0Jvb2xlYW4oSlNDOjpFeGVjU3RhdGUqKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfTtcbiIpOwogICAgICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6TWFzcXVlcmFkZXNBc1Vu
ZGVmaW5lZCJ9ID0gMTsKICAgICB9CiAKQEAgLTEwNjUsOSArMTA2NCw2IEBAIHN1YiBHZW5lcmF0
ZUhlYWRlcgogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBwdHI7XG4i
KTsKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIH1cblxuIik7CiAKLSAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgfiR7Y2xhc3NOYW1lfVByb3RvdHlwZSgpO1xuIik7
Ci0gICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6
SlNDZWxsKik7XG5cbiIpOwotCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMg
Y29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvO1xuIik7CiAgICAgaWYgKCRudW1GdW5jdGlvbnMg
PiAwIHx8ICRudW1Db25zdGFudHMgPiAwIHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkRlbGVnYXRpbmdQcm90b3R5cGVHZXRPd25Qcm9wZXJ0eVNsb3QifSkgewogICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChK
U0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlND
OjpQcm9wZXJ0eVNsb3QmKTtcbiIpOwpAQCAtMTUxMiw5ICsxNTA4LDkgQEAgc3ViIEdlbmVyYXRl
SW1wbGVtZW50YXRpb24KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGdldEhhc2hUYWJsZUZvckdsb2JhbERh
dGEoZXhlYy0+Z2xvYmFsRGF0YSgpLCAmJHtjbGFzc05hbWV9UHJvdG90eXBlVGFibGUpO1xuIik7
CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKLSAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJjb25zdCBDbGFzc0luZm8gJHtjbGFzc05hbWV9UHJvdG90eXBlOjpzX2luZm8g
PSB7IFwiJHt2aXNpYmxlQ2xhc3NOYW1lfVByb3RvdHlwZVwiLCAmSlNDOjpKU05vbkZpbmFsT2Jq
ZWN0OjpzX2luZm8sIDAsIGdldCR7Y2xhc3NOYW1lfVByb3RvdHlwZVRhYmxlLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKCR7Y2xhc3NOYW1lfVByb3RvdHlwZSkgfTtcblxuIik7CisgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiY29uc3QgQ2xhc3NJbmZvICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6c19p
bmZvID0geyBcIiR7dmlzaWJsZUNsYXNzTmFtZX1Qcm90b3R5cGVcIiwgJkJhc2U6OnNfaW5mbywg
MCwgZ2V0JHtjbGFzc05hbWV9UHJvdG90eXBlVGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoJHtj
bGFzc05hbWV9UHJvdG90eXBlKSB9O1xuXG4iKTsKICAgICB9IGVsc2UgewotICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgImNvbnN0IENsYXNzSW5mbyAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OnNf
aW5mbyA9IHsgXCIke3Zpc2libGVDbGFzc05hbWV9UHJvdG90eXBlXCIsICZKU0M6OkpTTm9uRmlu
YWxPYmplY3Q6OnNfaW5mbywgJiR7Y2xhc3NOYW1lfVByb3RvdHlwZVRhYmxlLCAwLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKCR7Y2xhc3NOYW1lfVByb3RvdHlwZSkgfTtcblxuIik7CisgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiY29uc3QgQ2xhc3NJbmZvICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6
c19pbmZvID0geyBcIiR7dmlzaWJsZUNsYXNzTmFtZX1Qcm90b3R5cGVcIiwgJkJhc2U6OnNfaW5m
bywgJiR7Y2xhc3NOYW1lfVByb3RvdHlwZVRhYmxlLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKCR7
Y2xhc3NOYW1lfVByb3RvdHlwZSkgfTtcblxuIik7CiAgICAgfQogICAgIGlmICgkaW50ZXJmYWNl
TmFtZSBuZSAiRE9NV2luZG93IiAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
SXNXb3JrZXJDb250ZXh0In0pIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU09iamVj
dCogJHtjbGFzc05hbWV9UHJvdG90eXBlOjpzZWxmKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdClcbiIpOwpAQCAtMTUyMywxNCArMTUxOSw2IEBAIHN1YiBHZW5l
cmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsK
ICAgICB9CiAKLSAgICBwdXNoKEBpbXBsQ29udGVudCwgIiR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6
fiR7Y2xhc3NOYW1lfVByb3RvdHlwZSgpXG4iKTsKLSAgICBwdXNoKEBpbXBsQ29udGVudCwgIntc
biIpOwotICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKLSAgICBwdXNoKEBpbXBsQ29u
dGVudCwgInZvaWQgJHtjbGFzc05hbWV9UHJvdG90eXBlOjpkZXN0cm95KEpTQ2VsbCogY2VsbClc
biIpOwotICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7Ci0gICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAganNDYXN0PCR7Y2xhc3NOYW1lfVByb3RvdHlwZSo+KGNlbGwpLT5+JHtjbGFzc05h
bWV9UHJvdG90eXBlKCk7XG4iKTsKLSAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7Ci0K
ICAgICBpZiAoJG51bUNvbnN0YW50cyA+IDAgfHwgJG51bUZ1bmN0aW9ucyA+IDAgfHwgJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ1Byb3RvdHlwZUdldE93blByb3Bl
cnR5U2xvdCJ9KSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2NsYXNzTmFt
ZX1Qcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3Qp
XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKQEAgLTE1OTEsNyArMTU3
OSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAifVxuXG4iKTsKICAgICB9CiAKLSAgICBwdXNoKEBpbXBsQ29udGVudCwgImNvbnN0IENs
YXNzSW5mbyAkY2xhc3NOYW1lIiAuICI6OnNfaW5mbyA9IHsgXCIke3Zpc2libGVDbGFzc05hbWV9
XCIsICYiIC4gJHBhcmVudENsYXNzTmFtZSAuICI6OnNfaW5mbywgIik7CisgICAgcHVzaChAaW1w
bENvbnRlbnQsICJjb25zdCBDbGFzc0luZm8gJGNsYXNzTmFtZSIgLiAiOjpzX2luZm8gPSB7IFwi
JHt2aXNpYmxlQ2xhc3NOYW1lfVwiLCAmQmFzZTo6c19pbmZvLCAiKTsKIAogICAgIGlmICgkbnVt
QXR0cmlidXRlcyA+IDAgJiYgISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vU3Rh
dGljVGFibGVzIn0pIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICImJHtjbGFzc05hbWV9
VGFibGUiKTsKQEAgLTE2NDEsNyArMTYyOSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9u
CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpO1xuIik7CiAgICAg
ICAgIGlmIChJc1R5cGVkQXJyYXlUeXBlKCRpbXBsVHlwZSkgYW5kICgkaW1wbFR5cGUgbmUgIkFy
cmF5QnVmZmVyVmlldyIpIGFuZCAoJGltcGxUeXBlIG5lICJBcnJheUJ1ZmZlciIpKSB7Ci0gICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBUeXBlZEFycmF5RGVzY3JpcHRvciBkZXNj
cmlwdG9yKHZwdHIoKSwgT0JKRUNUX09GRlNFVE9GKCR7Y2xhc3NOYW1lfSwgbV9zdG9yYWdlKSwg
T0JKRUNUX09GRlNFVE9GKCR7Y2xhc3NOYW1lfSwgbV9zdG9yYWdlTGVuZ3RoKSk7XG4iKTsKKyAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFR5cGVkQXJyYXlEZXNjcmlwdG9yIGRl
c2NyaXB0b3IoJiR7Y2xhc3NOYW1lfTo6c19pbmZvLCBPQkpFQ1RfT0ZGU0VUT0YoJHtjbGFzc05h
bWV9LCBtX3N0b3JhZ2UpLCBPQkpFQ1RfT0ZGU0VUT0YoJHtjbGFzc05hbWV9LCBtX3N0b3JhZ2VM
ZW5ndGgpKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgZ2xvYmFs
RGF0YS5yZWdpc3RlclR5cGVkQXJyYXlEZXNjcmlwdG9yKGltcGwoKSwgZGVzY3JpcHRvcik7XG4i
KTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIG1fc3RvcmFnZSA9IGltcGwo
KS0+ZGF0YSgpO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBtX3N0
b3JhZ2VMZW5ndGggPSBpbXBsKCktPmxlbmd0aCgpO1xuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9vYmpjL29iamNfcnVudGltZS5oCmluZGV4IDUzNjJkOGQuLjhiMDdkZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCkBAIC0xMzQsNyArMTM0LDcgQEAgcHJp
dmF0ZToKICAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgIHN0YXRpYyBKU1ZhbHVlIGRl
ZmF1bHRWYWx1ZShjb25zdCBKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByZWZlcnJlZFByaW1pdGl2
ZVR5cGUpOwogCi0gICAgdmlydHVhbCBib29sIHRvQm9vbGVhbihFeGVjU3RhdGUqKSBjb25zdDsK
KyAgICAvKnZpcnR1YWwgKi9ib29sIHRvQm9vbGVhbihFeGVjU3RhdGUqKSBjb25zdDsgLy8gRklY
TUU6IEN1cnJlbnRseSB0aGlzIGlzIGJyb2tlbiBiZWNhdXNlIG5vbmUgb2YgdGhlIHN1cGVyY2xh
c3NlcyBhcmUgbWFya2VkIHZpcnR1YWwuICBXZSBuZWVkIHRvIHNvbHZlIHRoaXMgaW4gdGhlIGxv
bmdlciB0ZXJtLgogCiAgICAgUmVmUHRyPE9iamNJbnN0YW5jZT4gX2luc3RhbmNlOwogICAgIElk
ZW50aWZpZXIgX2l0ZW07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9tZXRob2QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcApp
bmRleCA2YzJlY2U0Li42Yjg2MjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9tZXRob2QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21l
dGhvZC5jcHAKQEAgLTUwLDEwICs1MCw2IEBAIFJ1bnRpbWVNZXRob2Q6OlJ1bnRpbWVNZXRob2Qo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsCiB7CiB9
CiAKLXZvaWQgUnVudGltZU1ldGhvZDo6dnRhYmxlQW5jaG9yKCkKLXsKLX0KLQogdm9pZCBSdW50
aW1lTWV0aG9kOjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKIHsKICAgICBqc0Nhc3Q8UnVudGltZU1l
dGhvZCo+KGNlbGwpLT5SdW50aW1lTWV0aG9kOjp+UnVudGltZU1ldGhvZCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmggYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaAppbmRleCA0NzhhMTg2Li44YmEzZWZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaApAQCAtNDAsNyArNDAsNiBAQCBjbGFzcyBS
dW50aW1lTWV0aG9kIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogcHVibGljOgogICAgIHR5
cGVkZWYgSW50ZXJuYWxGdW5jdGlvbiBCYXNlOwogCi0gICAgdmlydHVhbCB2b2lkIHZ0YWJsZUFu
Y2hvcigpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAKICAgICBzdGF0aWMg
UnVudGltZU1ldGhvZCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IElkZW50aWZpZXImIG5hbWUs
IEJpbmRpbmdzOjpNZXRob2RMaXN0JiBtZXRob2RMaXN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
S2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QuaAppbmRleCBjMTY0Njgw
Li44MzRmOWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Q
cm94eVJ1bnRpbWVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3Rl
ZC9Qcm94eVJ1bnRpbWVPYmplY3QuaApAQCAtNDksOCArNDksNiBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBvYmplY3Q7CiAgICAgfQogCi0gICAgdmlydHVhbCB+UHJveHlSdW50aW1lT2JqZWN0
KCk7Ci0KICAgICBQcm94eUluc3RhbmNlKiBnZXRJbnRlcm5hbFByb3h5SW5zdGFuY2UoKSBjb25z
dDsKIAogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9Q
bHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9Q
bHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QubW0KaW5kZXggZjUzMTkyNC4uYzI3ZTcy
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50
aW1lT2JqZWN0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5
UnVudGltZU9iamVjdC5tbQpAQCAtNDcsMTAgKzQ3LDYgQEAgdm9pZCBQcm94eVJ1bnRpbWVPYmpl
Y3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgQVNT
RVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIAotUHJveHlSdW50aW1lT2JqZWN0Ojp+UHJveHlS
dW50aW1lT2JqZWN0KCkKLXsKLX0KLQogUHJveHlJbnN0YW5jZSogUHJveHlSdW50aW1lT2JqZWN0
OjpnZXRJbnRlcm5hbFByb3h5SW5zdGFuY2UoKSBjb25zdAogewogICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxQcm94eUluc3RhbmNlKj4oZ2V0SW50ZXJuYWxJbnN0YW5jZSgpKTsKLS0gCjEuNy40LjQK
Cg==
</data>
<flag name="review"
          id="118732"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118875</attachid>
            <date>2011-12-12 15:14:30 -0800</date>
            <delta_ts>2011-12-12 15:38:00 -0800</delta_ts>
            <desc>Remove cruft added during sequence</desc>
            <filename>0015-Replaced-vptrs-in-DFG-32_64-and-removed-some-cruft-t.patch</filename>
            <type>text/plain</type>
            <size>31787</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">RnJvbSA3MDM2ZjkwNzE2NzllNjFjMmE2OGQ3ZWI2M2NhM2Y2NGU1NjU5YWJiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJrIEhhaG5lbmJlcmcgPG1oYWhuZW5iZXJnQGFwcGxlLmNv
bT4KRGF0ZTogRnJpLCA5IERlYyAyMDExIDEzOjEzOjA3IC0wODAwClN1YmplY3Q6IFtQQVRDSCAx
NS8xOF0gUmVwbGFjZWQgdnB0cnMgaW4gREZHIDMyXzY0IGFuZCByZW1vdmVkIHNvbWUgY3J1ZnQK
IHRoYXQgd2FzIHVzZWQgdG8gaWdub3JlIHNvbWUgc3B1cmlvdXMgd2FybmluZ3MuCgotLS0KIC4u
Li9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgIHwgICAzMiAr
KysrKysrKysrLS0tLS0tLS0tLQogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5k
aW5nLmggICAgICAgICAgfCAgICA1IC0tLQogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01HbG9iYWxPYmplY3QuaCAgICAgfCAgICA1IC0tLQogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dCYXNlLmggICAgICAgfCAgICA1IC0tLQogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oICAgICAgfCAgICA1IC0tLQogU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmggICAgICAgICAgfCAgICA1IC0tLQogU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmggICAgfCAgICA1IC0tLQog
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5oICAgfCAgICA1
IC0tLQogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0g
fCAgIDE1IC0tLS0tLS0tLQogU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvQ1J1bnRpbWVPYmplY3Qu
aCAgICAgICAgICAgfCAgICA1IC0tLQogU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19pbnN0YW5j
ZS5jcHAgICAgICAgICAgICAgfCAgICA1IC0tLQogU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9q
c2MvSmF2YUluc3RhbmNlSlNDLmNwcCAgfCAgICA1IC0tLQogU291cmNlL1dlYkNvcmUvYnJpZGdl
L2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuaCAgfCAgICA1IC0tLQogU291cmNlL1dlYkNvcmUv
YnJpZGdlL29iamMvT2JqQ1J1bnRpbWVPYmplY3QuaCAgICAgfCAgICA1IC0tLQogU291cmNlL1dl
YkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbSAgICAgICAgfCAgICA1IC0tLQogU291
cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmggICAgICAgICAgfCAgICA1IC0t
LQogU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaCAgICAgICAgICAgICAgfCAg
ICA1IC0tLQogU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmggICAgICAgICAg
ICAgfCAgICA1IC0tLQogU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmggICAg
ICAgICAgICAgfCAgICA1IC0tLQogU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJv
eHlJbnN0YW5jZS5tbSAgfCAgICA1IC0tLQogLi4uL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9KU05QTWV0aG9kLmggICAgICAgfCAgICA2IC0tLS0KIC4uLi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvSlNOUE9iamVjdC5oICAgICAgIHwgICAgNSAtLS0KIDIyIGZpbGVzIGNoYW5nZWQs
IDE2IGluc2VydGlvbnMoKyksIDEzMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCA5NjY5ZWUz
Li5hNWU3YzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTE4MjIsMTEgKzE4MjIsMTEgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUxvZ2ljYWxOb3QoTm9kZSYgbm9kZSkKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICBpZiAoYXQobm9kZS5jaGlsZDEoKSkuc2hvdWxkU3BlY3VsYXRlRmluYWxPYmpl
Y3RPck90aGVyKCkpIHsKLSAgICAgICAgY29tcGlsZU9iamVjdE9yT3RoZXJMb2dpY2FsTm90KG5v
ZGUuY2hpbGQxKCksIG1faml0Lmdsb2JhbERhdGEoKS0+anNGaW5hbE9iamVjdFZQdHIsICFpc0Zp
bmFsT2JqZWN0T3JPdGhlclByZWRpY3Rpb24obV9zdGF0ZS5mb3JOb2RlKG5vZGUuY2hpbGQxKCkp
Lm1fdHlwZSkpOworICAgICAgICBjb21waWxlT2JqZWN0T3JPdGhlckxvZ2ljYWxOb3Qobm9kZS5j
aGlsZDEoKSwgJkpTRmluYWxPYmplY3Q6OnNfaW5mbywgIWlzRmluYWxPYmplY3RPck90aGVyUHJl
ZGljdGlvbihtX3N0YXRlLmZvck5vZGUobm9kZS5jaGlsZDEoKSkubV90eXBlKSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgaWYgKGF0KG5vZGUuY2hpbGQxKCkpLnNob3VsZFNwZWN1bGF0
ZUFycmF5T3JPdGhlcigpKSB7Ci0gICAgICAgIGNvbXBpbGVPYmplY3RPck90aGVyTG9naWNhbE5v
dChub2RlLmNoaWxkMSgpLCBtX2ppdC5nbG9iYWxEYXRhKCktPmpzQXJyYXlWUHRyLCAhaXNBcnJh
eU9yT3RoZXJQcmVkaWN0aW9uKG1fc3RhdGUuZm9yTm9kZShub2RlLmNoaWxkMSgpKS5tX3R5cGUp
KTsKKyAgICAgICAgY29tcGlsZU9iamVjdE9yT3RoZXJMb2dpY2FsTm90KG5vZGUuY2hpbGQxKCks
ICZKU0FycmF5OjpzX2luZm8sICFpc0FycmF5T3JPdGhlclByZWRpY3Rpb24obV9zdGF0ZS5mb3JO
b2RlKG5vZGUuY2hpbGQxKCkpLm1fdHlwZSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IGlmIChhdChub2RlLmNoaWxkMSgpKS5zaG91bGRTcGVjdWxhdGVJbnRlZ2VyKCkpIHsKQEAgLTE5
MjEsOSArMTkyMSw5IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRCcmFuY2goTm9kZSYgbm9k
ZSkKIAogICAgICAgICBub1Jlc3VsdChtX2NvbXBpbGVJbmRleCk7CiAgICAgfSBlbHNlIGlmIChh
dChub2RlLmNoaWxkMSgpKS5zaG91bGRTcGVjdWxhdGVGaW5hbE9iamVjdE9yT3RoZXIoKSkgewot
ICAgICAgICBlbWl0T2JqZWN0T3JPdGhlckJyYW5jaChub2RlLmNoaWxkMSgpLCB0YWtlbiwgbm90
VGFrZW4sIG1faml0Lmdsb2JhbERhdGEoKS0+anNGaW5hbE9iamVjdFZQdHIsICFpc0ZpbmFsT2Jq
ZWN0T3JPdGhlclByZWRpY3Rpb24obV9zdGF0ZS5mb3JOb2RlKG5vZGUuY2hpbGQxKCkpLm1fdHlw
ZSkpOworICAgICAgICBlbWl0T2JqZWN0T3JPdGhlckJyYW5jaChub2RlLmNoaWxkMSgpLCB0YWtl
biwgbm90VGFrZW4sICZKU0ZpbmFsT2JqZWN0OjpzX2luZm8sICFpc0ZpbmFsT2JqZWN0T3JPdGhl
clByZWRpY3Rpb24obV9zdGF0ZS5mb3JOb2RlKG5vZGUuY2hpbGQxKCkpLm1fdHlwZSkpOwogICAg
IH0gZWxzZSBpZiAoYXQobm9kZS5jaGlsZDEoKSkuc2hvdWxkU3BlY3VsYXRlQXJyYXlPck90aGVy
KCkpIHsKLSAgICAgICAgZW1pdE9iamVjdE9yT3RoZXJCcmFuY2gobm9kZS5jaGlsZDEoKSwgdGFr
ZW4sIG5vdFRha2VuLCBtX2ppdC5nbG9iYWxEYXRhKCktPmpzQXJyYXlWUHRyLCAhaXNBcnJheU9y
T3RoZXJQcmVkaWN0aW9uKG1fc3RhdGUuZm9yTm9kZShub2RlLmNoaWxkMSgpKS5tX3R5cGUpKTsK
KyAgICAgICAgZW1pdE9iamVjdE9yT3RoZXJCcmFuY2gobm9kZS5jaGlsZDEoKSwgdGFrZW4sIG5v
dFRha2VuLCAmSlNBcnJheTo6c19pbmZvLCAhaXNBcnJheU9yT3RoZXJQcmVkaWN0aW9uKG1fc3Rh
dGUuZm9yTm9kZShub2RlLmNoaWxkMSgpKS5tX3R5cGUpKTsKICAgICB9IGVsc2UgaWYgKGF0KG5v
ZGUuY2hpbGQxKCkpLnNob3VsZFNwZWN1bGF0ZU51bWJlcigpKSB7CiAgICAgICAgIGlmIChhdChu
b2RlLmNoaWxkMSgpKS5zaG91bGRTcGVjdWxhdGVJbnRlZ2VyKCkpIHsKICAgICAgICAgICAgIGJv
b2wgaW52ZXJ0ID0gZmFsc2U7CkBAIC0yMDgwLDE0ICsyMDgwLDE0IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVy
YW5kIGNlbGwodGhpcywgbm9kZS5jaGlsZDEoKSk7CiAgICAgICAgICAgICBHUFJSZWcgY2VsbEdQ
UiA9IGNlbGwuZ3ByKCk7CiAgICAgICAgICAgICBpZiAoIWlzQXJyYXlQcmVkaWN0aW9uKG1fc3Rh
dGUuZm9yTm9kZShub2RlLmNoaWxkMSgpKS5tX3R5cGUpKQotICAgICAgICAgICAgICAgIHNwZWN1
bGF0aW9uQ2hlY2soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoY2VsbEdQUiksIG5vZGUuY2hp
bGQxKCksIG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKGNlbGxHUFIpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0ciht
X2ppdC5nbG9iYWxEYXRhKCktPmpzQXJyYXlWUHRyKSkpOworICAgICAgICAgICAgICAgIHNwZWN1
bGF0aW9uQ2hlY2soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoY2VsbEdQUiksIG5vZGUuY2hp
bGQxKCksIG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKGNlbGxHUFIsIEpTQ2VsbDo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBNYWNy
b0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cigmSlNBcnJheTo6c19pbmZvKSkpOwogICAgICAgICAg
ICAgbV9qaXQuc3RvcmVQdHIoY2VsbEdQUiwgSklUQ29tcGlsZXI6OnBheWxvYWRGb3Iobm9kZS5s
b2NhbCgpKSk7CiAgICAgICAgICAgICBub1Jlc3VsdChtX2NvbXBpbGVJbmRleCk7CiAgICAgICAg
IH0gZWxzZSBpZiAoaXNCeXRlQXJyYXlQcmVkaWN0aW9uKHByZWRpY3RlZFR5cGUpKSB7CiAgICAg
ICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBjZWxsKHRoaXMsIG5vZGUuY2hpbGQxKCkpOwog
ICAgICAgICAgICAgR1BSUmVnIGNlbGxHUFIgPSBjZWxsLmdwcigpOwogICAgICAgICAgICAgaWYg
KCFpc0J5dGVBcnJheVByZWRpY3Rpb24obV9zdGF0ZS5mb3JOb2RlKG5vZGUuY2hpbGQxKCkpLm1f
dHlwZSkpCi0gICAgICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhKU1ZhbHVlU291cmNlOjp1
bmJveGVkQ2VsbChjZWxsR1BSKSwgbm9kZS5jaGlsZDEoKSwgbV9qaXQuYnJhbmNoUHRyKE1hY3Jv
QXNzZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoY2VsbEdQUiksIE1h
Y3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKG1faml0Lmdsb2JhbERhdGEoKS0+anNCeXRlQXJy
YXlWUHRyKSkpOworICAgICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVNvdXJj
ZTo6dW5ib3hlZENlbGwoY2VsbEdQUiksIG5vZGUuY2hpbGQxKCksIG1faml0LmJyYW5jaFB0cihN
YWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGNlbGxHUFIs
IEpTQ2VsbDo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0
cigmSlNCeXRlQXJyYXk6OnNfaW5mbykpKTsKICAgICAgICAgICAgIG1faml0LnN0b3JlUHRyKGNl
bGxHUFIsIEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKG5vZGUubG9jYWwoKSkpOwogICAgICAgICAg
ICAgbm9SZXN1bHQobV9jb21waWxlSW5kZXgpOwogICAgICAgICB9IGVsc2UgaWYgKGlzQm9vbGVh
blByZWRpY3Rpb24ocHJlZGljdGVkVHlwZSkpIHsKQEAgLTI2ODUsNyArMjY4NSw3IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgICAgIFNwZWN1bGF0
ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS5jaGlsZDEoKSk7CiAgICAgICAgICAgICBHUFJS
ZWcgYmFzZVJlZyA9IGJhc2UuZ3ByKCk7CiAgICAgICAgICAgICBpZiAoIWlzQXJyYXlQcmVkaWN0
aW9uKG1fc3RhdGUuZm9yTm9kZShub2RlLmNoaWxkMSgpKS5tX3R5cGUpKQotICAgICAgICAgICAg
ICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoYmFzZVJlZyks
IG5vZGUuY2hpbGQxKCksIG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWws
IE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbVB0cihtX2ppdC5nbG9iYWxEYXRhKCktPmpzQXJyYXlWUHRyKSkpOworICAgICAgICAgICAg
ICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoYmFzZVJlZyks
IG5vZGUuY2hpbGQxKCksIG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWws
IE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIEpTQ2VsbDo6Y2xhc3NJbmZvT2Zmc2V0
KCkpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cigmSlNBcnJheTo6c19pbmZvKSkpOwog
ICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhKU1ZhbHVlUmVncygpLCBOb05vZGUsIG1faml0
LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLCBNYWNy
b0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVnLCBKU0FycmF5Ojp2ZWN0b3JMZW5ndGhPZmZzZXQo
KSkpKTsKICAgICAgICAgfQogCkBAIC0yODA0LDcgKzI4MDQsNyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAgICAgIC8vIENoZWNrIHRoYXQgYmFzZSBpcyBh
biBhcnJheSwgYW5kIHRoYXQgcHJvcGVydHkgaXMgY29udGFpbmVkIHdpdGhpbiBtX3ZlY3RvciAo
PCBtX3ZlY3Rvckxlbmd0aCkuCiAgICAgICAgIC8vIElmIHdlIGhhdmUgcHJlZGljdGVkIHRoZSBi
YXNlIHRvIGJlIHR5cGUgYXJyYXksIHdlIGNhbiBza2lwIHRoZSBjaGVjay4KICAgICAgICAgaWYg
KCFpc0FycmF5UHJlZGljdGlvbihtX3N0YXRlLmZvck5vZGUobm9kZS5jaGlsZDEoKSkubV90eXBl
KSkKLSAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENl
bGwoYmFzZVJlZyksIG5vZGUuY2hpbGQxKCksIG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxl
cjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcpLCBNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbVB0cihtX2ppdC5nbG9iYWxEYXRhKCktPmpzQXJyYXlWUHRyKSkpOwor
ICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbChi
YXNlUmVnKSwgbm9kZS5jaGlsZDEoKSwgbV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpO
b3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJlZywgSlNDZWxsOjpjbGFzc0lu
Zm9PZmZzZXQoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKCZKU0FycmF5OjpzX2lu
Zm8pKSk7CiAKICAgICAgICAgYmFzZS51c2UoKTsKICAgICAgICAgcHJvcGVydHkudXNlKCk7CkBA
IC0yOTQ4LDcgKzI5NDgsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5v
ZGUpCiAgICAgICAgIHdyaXRlQmFycmllcihiYXNlR1BSLCB2YWx1ZVRhZ0dQUiwgbm9kZS5jaGls
ZDIoKSwgV3JpdGVCYXJyaWVyRm9yUHJvcGVydHlBY2Nlc3MsIHN0b3JhZ2VHUFIsIHN0b3JhZ2VM
ZW5ndGhHUFIpOwogCiAgICAgICAgIGlmICghaXNBcnJheVByZWRpY3Rpb24obV9zdGF0ZS5mb3JO
b2RlKG5vZGUuY2hpbGQxKCkpLm1fdHlwZSkpCi0gICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNr
KEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKGJhc2VHUFIpLCBub2RlLmNoaWxkMSgpLCBtX2pp
dC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhiYXNlR1BSKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIobV9qaXQuZ2xvYmFs
RGF0YSgpLT5qc0FycmF5VlB0cikpKTsKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNW
YWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoYmFzZUdQUiksIG5vZGUuY2hpbGQxKCksIG1faml0LmJy
YW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNz
KGJhc2VHUFIsIEpTQ2VsbDo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbVB0cigmSlNBcnJheTo6c19pbmZvKSkpOwogICAgICAgICAKICAgICAgICAgbV9qaXQu
bG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlR1BSLCBKU0FycmF5OjpzdG9yYWdl
T2Zmc2V0KCkpLCBzdG9yYWdlR1BSKTsKICAgICAgICAgbV9qaXQubG9hZDMyKE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKHN0b3JhZ2VHUFIsIE9CSkVDVF9PRkZTRVRPRihBcnJheVN0b3JhZ2UsIG1f
bGVuZ3RoKSksIHN0b3JhZ2VMZW5ndGhHUFIpOwpAQCAtMjk5NCw3ICsyOTk0LDcgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogICAgICAgICBHUFJSZWcgc3RvcmFn
ZUxlbmd0aEdQUiA9IHN0b3JhZ2VMZW5ndGguZ3ByKCk7CiAgICAgICAgIAogICAgICAgICBpZiAo
IWlzQXJyYXlQcmVkaWN0aW9uKG1fc3RhdGUuZm9yTm9kZShub2RlLmNoaWxkMSgpKS5tX3R5cGUp
KQotICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2Vs
bChiYXNlR1BSKSwgbm9kZS5jaGlsZDEoKSwgbV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVy
OjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZUdQUiksIE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tUHRyKG1faml0Lmdsb2JhbERhdGEoKS0+anNBcnJheVZQdHIpKSk7Cisg
ICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKGJh
c2VHUFIpLCBub2RlLmNoaWxkMSgpLCBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5v
dEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlR1BSLCBKU0NlbGw6OmNsYXNzSW5m
b09mZnNldCgpKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoJkpTQXJyYXk6OnNfaW5m
bykpKTsKICAgICAgICAgCiAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3MoYmFzZUdQUiwgSlNBcnJheTo6c3RvcmFnZU9mZnNldCgpKSwgc3RvcmFnZUdQUik7CiAg
ICAgICAgIG1faml0LmxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlR1BSLCBP
QkpFQ1RfT0ZGU0VUT0YoQXJyYXlTdG9yYWdlLCBtX2xlbmd0aCkpLCBzdG9yYWdlTGVuZ3RoR1BS
KTsKQEAgLTMxNTYsNyArMzE1Niw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9k
ZSYgbm9kZSkKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBhbHJlYWR5UHJp
bWl0aXZlOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBhbHJlYWR5UHJpbWl0aXZlLmFwcGVu
ZChtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIG9wMVRhZ0dQUiwgVHJ1
c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKSk7Ci0gICAgICAgICAgICBhbHJlYWR5UHJpbWl0
aXZlLmFwcGVuZChtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCBNYWNyb0Fz
c2VtYmxlcjo6QWRkcmVzcyhvcDFQYXlsb2FkR1BSKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW1QdHIobV9qaXQuZ2xvYmFsRGF0YSgpLT5qc1N0cmluZ1ZQdHIpKSk7CisgICAgICAgICAgICBh
bHJlYWR5UHJpbWl0aXZlLmFwcGVuZChtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6OkVx
dWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhvcDFQYXlsb2FkR1BSLCBKU0NlbGw6OmNsYXNz
SW5mb09mZnNldCgpKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoJkpTU3RyaW5nOjpz
X2luZm8pKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0
ZXJzKHJlc3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9hZEdQUik7CiAgICAgICAgICAgICBjYWxsT3Bl
cmF0aW9uKG9wZXJhdGlvblRvUHJpbWl0aXZlLCByZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRH
UFIsIG9wMVRhZ0dQUiwgb3AxUGF5bG9hZEdQUik7CkBAIC0zMjc3LDcgKzMyNzcsNyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAgICAgICAgICBHUFJSZWcg
cmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAo
IWlzT2JqZWN0UHJlZGljdGlvbihtX3N0YXRlLmZvck5vZGUobm9kZS5jaGlsZDEoKSkubV90eXBl
KSkKLSAgICAgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEpTVmFsdWVTb3VyY2U6OnVuYm94
ZWRDZWxsKHRoaXNWYWx1ZUdQUiksIG5vZGUuY2hpbGQxKCksIG1faml0LmJyYW5jaFB0cihKSVRD
b21waWxlcjo6RXF1YWwsIEpJVENvbXBpbGVyOjpBZGRyZXNzKHRoaXNWYWx1ZUdQUiksIEpJVENv
bXBpbGVyOjpUcnVzdGVkSW1tUHRyKG1faml0Lmdsb2JhbERhdGEoKS0+anNTdHJpbmdWUHRyKSkp
OworICAgICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVNvdXJjZTo6dW5ib3hl
ZENlbGwodGhpc1ZhbHVlR1BSKSwgbm9kZS5jaGlsZDEoKSwgbV9qaXQuYnJhbmNoUHRyKEpJVENv
bXBpbGVyOjpFcXVhbCwgSklUQ29tcGlsZXI6OkFkZHJlc3ModGhpc1ZhbHVlR1BSLCBKU0NlbGw6
OmNsYXNzSW5mb09mZnNldCgpKSwgSklUQ29tcGlsZXI6OlRydXN0ZWRJbW1QdHIoJkpTU3RyaW5n
OjpzX2luZm8pKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIG1faml0Lm1vdmUodGhpc1Zh
bHVlR1BSLCByZXN1bHRHUFIpOwogICAgICAgICAgICAgY2VsbFJlc3VsdChyZXN1bHRHUFIsIG1f
Y29tcGlsZUluZGV4KTsKQEAgLTMzMjIsNyArMzMyMiw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgLy8gZG8gdGhlIHNsb3cgKHN0cnVjdHVyZS1i
YXNlZCkgY2hlY2suCiAgICAgICAgIGlmIChhdChub2RlLmNoaWxkMSgpKS5zaG91bGRTcGVjdWxh
dGVGaW5hbE9iamVjdCgpKSB7CiAgICAgICAgICAgICBpZiAoIWlzRmluYWxPYmplY3RQcmVkaWN0
aW9uKG1fc3RhdGUuZm9yTm9kZShub2RlLmNoaWxkMSgpKS5tX3R5cGUpKQotICAgICAgICAgICAg
ICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwocHJvdG9HUFIp
LCBub2RlLmNoaWxkMSgpLCBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFs
LCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhwcm90b0dQUiksIE1hY3JvQXNzZW1ibGVyOjpUcnVz
dGVkSW1tUHRyKG1faml0Lmdsb2JhbERhdGEoKS0+anNGaW5hbE9iamVjdFZQdHIpKSk7CisgICAg
ICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbChw
cm90b0dQUiksIG5vZGUuY2hpbGQxKCksIG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6
Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHByb3RvR1BSLCBKU0NlbGw6OmNsYXNz
SW5mb09mZnNldCgpKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoJkpTRmluYWxPYmpl
Y3Q6OnNfaW5mbykpKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1faml0LmxvYWRQ
dHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MocHJvdG9HUFIsIEpTQ2VsbDo6c3RydWN0dXJlT2Zm
c2V0KCkpLCBzY3JhdGNoR1BSKTsKICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChtX2ppdC5i
cmFuY2g4KE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc2Ny
YXRjaEdQUiwgU3RydWN0dXJlOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSksIE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tMzIoT2JqZWN0VHlwZSkpKTsKQEAgLTM0OTQsNyArMzQ5NCw3IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgR1BSUmVnIHJlc3Vs
dEdQUiA9IHJlc3VsdC5ncHIoKTsKICAgICAgICAgCiAgICAgICAgIGlmICghaXNBcnJheVByZWRp
Y3Rpb24obV9zdGF0ZS5mb3JOb2RlKG5vZGUuY2hpbGQxKCkpLm1fdHlwZSkpCi0gICAgICAgICAg
ICBzcGVjdWxhdGlvbkNoZWNrKEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKGJhc2VHUFIpLCBu
b2RlLmNoaWxkMSgpLCBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBN
YWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlR1BSKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW1QdHIobV9qaXQuZ2xvYmFsRGF0YSgpLT5qc0FycmF5VlB0cikpKTsKKyAgICAgICAgICAgIHNw
ZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoYmFzZUdQUiksIG5vZGUu
Y2hpbGQxKCksIG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VHUFIsIEpTQ2VsbDo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBN
YWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cigmSlNBcnJheTo6c19pbmZvKSkpOwogICAgICAg
ICAKICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlR1BS
LCBKU0FycmF5OjpzdG9yYWdlT2Zmc2V0KCkpLCByZXN1bHRHUFIpOwogICAgICAgICBtX2ppdC5s
b2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MocmVzdWx0R1BSLCBPQkpFQ1RfT0ZGU0VUT0Yo
QXJyYXlTdG9yYWdlLCBtX2xlbmd0aCkpLCByZXN1bHRHUFIpOwpAQCAtMzUxMyw3ICszNTEzLDcg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogICAgICAgICBHUFJS
ZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwogICAgICAgICAKICAgICAgICAgaWYgKCFpc1N0
cmluZ1ByZWRpY3Rpb24obV9zdGF0ZS5mb3JOb2RlKG5vZGUuY2hpbGQxKCkpLm1fdHlwZSkpCi0g
ICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKGJh
c2VHUFIpLCBub2RlLmNoaWxkMSgpLCBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5v
dEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlR1BSKSwgTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW1QdHIobV9qaXQuZ2xvYmFsRGF0YSgpLT5qc1N0cmluZ1ZQdHIpKSk7CisgICAg
ICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKGJhc2VH
UFIpLCBub2RlLmNoaWxkMSgpLCBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVx
dWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlR1BSLCBKU0NlbGw6OmNsYXNzSW5mb09m
ZnNldCgpKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoJkpTU3RyaW5nOjpzX2luZm8p
KSk7CiAgICAgICAgIAogICAgICAgICBtX2ppdC5sb2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3MoYmFzZUdQUiwgSlNTdHJpbmc6Om9mZnNldE9mTGVuZ3RoKCkpLCByZXN1bHRHUFIpOwogCkBA
IC0zNTI5LDcgKzM1MjksNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5v
ZGUpCiAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgICAgIAog
ICAgICAgICBpZiAoIWlzQnl0ZUFycmF5UHJlZGljdGlvbihtX3N0YXRlLmZvck5vZGUobm9kZS5j
aGlsZDEoKSkubV90eXBlKSkKLSAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVNv
dXJjZTo6dW5ib3hlZENlbGwoYmFzZUdQUiksIG5vZGUuY2hpbGQxKCksIG1faml0LmJyYW5jaFB0
cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VH
UFIpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihtX2ppdC5nbG9iYWxEYXRhKCktPmpz
Qnl0ZUFycmF5VlB0cikpKTsKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVNv
dXJjZTo6dW5ib3hlZENlbGwoYmFzZUdQUiksIG5vZGUuY2hpbGQxKCksIG1faml0LmJyYW5jaFB0
cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VH
UFIsIEpTQ2VsbDo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bVB0cigmSlNCeXRlQXJyYXk6OnNfaW5mbykpKTsKICAgICAgICAgCiAgICAgICAgIG1faml0Lmxv
YWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZUdQUiwgSlNCeXRlQXJyYXk6Om9mZnNl
dE9mU3RvcmFnZSgpKSwgcmVzdWx0R1BSKTsKICAgICAgICAgbV9qaXQubG9hZDMyKE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKGJhc2VHUFIsIEJ5dGVBcnJheTo6b2Zmc2V0T2ZTaXplKCkpLCByZXN1
bHRHUFIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5k
aW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAppbmRleCA5
YjZjYjRjLi4zYjA1MjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRp
bmcuaApAQCAtNTMsOSArNTMsNiBAQCBlbnVtIFBhcmFtZXRlck1pc3NpbmdQb2xpY3kgewogCiAg
ICAgdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbi12aXJ0dWFsLWR0
b3IiCi0KICAgICAvLyBCYXNlIGNsYXNzIGZvciBhbGwgY29uc3RydWN0b3Igb2JqZWN0cyBpbiB0
aGUgSlNDIGJpbmRpbmdzLgogICAgIGNsYXNzIERPTUNvbnN0cnVjdG9yT2JqZWN0IDogcHVibGlj
IEpTRE9NV3JhcHBlciB7CiAgICAgICAgIHR5cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7CkBAIC0x
MDEsOCArOTgsNiBAQCBlbnVtIFBhcmFtZXRlck1pc3NpbmdQb2xpY3kgewogICAgICAgICB9CiAg
ICAgfTsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLQogICAgIEpTQzo6U3Ry
dWN0dXJlKiBnZXRDYWNoZWRET01TdHJ1Y3R1cmUoSlNET01HbG9iYWxPYmplY3QqLCBjb25zdCBK
U0M6OkNsYXNzSW5mbyopOwogICAgIEpTQzo6U3RydWN0dXJlKiBjYWNoZURPTVN0cnVjdHVyZShK
U0RPTUdsb2JhbE9iamVjdCosIEpTQzo6U3RydWN0dXJlKiwgY29uc3QgSlNDOjpDbGFzc0luZm8q
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxP
YmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgK
aW5kZXggYTRmYTRhMy4uYWRjZDM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01HbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUdsb2JhbE9iamVjdC5oCkBAIC00Miw5ICs0Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgSlNDOjpDbGFzc0luZm8qLCBKU0M6OldyaXRl
QmFycmllcjxKU0M6OlN0cnVjdHVyZT4gPiBKU0RPTVN0cnVjdHVyZU1hcDsKICAgICB0eXBlZGVm
IEhhc2hNYXA8Y29uc3QgSlNDOjpDbGFzc0luZm8qLCBKU0M6OldyaXRlQmFycmllcjxKU0M6OkpT
T2JqZWN0PiA+IEpTRE9NQ29uc3RydWN0b3JNYXA7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1k
dG9yIgotCiAgICAgY2xhc3MgSlNET01HbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNDOjpKU0dsb2Jh
bE9iamVjdCB7CiAgICAgICAgIHR5cGVkZWYgSlNDOjpKU0dsb2JhbE9iamVjdCBCYXNlOwogICAg
IHByb3RlY3RlZDoKQEAgLTkwLDggKzg3LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBKU0M6OldyaXRlQmFycmllcjxKU09iamVjdD4gbV9pbmplY3RlZFNjcmlwdDsKICAgICB9Owog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0KICAgICB0ZW1wbGF0ZTxjbGFzcyBDb25z
dHJ1Y3RvckNsYXNzPgogICAgIGlubGluZSBKU0M6OkpTT2JqZWN0KiBnZXRET01Db25zdHJ1Y3Rv
cihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFz
ZS5oCmluZGV4IDlmZmViOWEuLjg0YzE4NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93QmFzZS5oCkBAIC0zNCw5ICszNCw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgIGNsYXNzIEpTRE9NV2luZG93QmFzZVByaXZhdGU7CiAKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24t
dmlydHVhbC1kdG9yIgotCiAgICAgY2xhc3MgSlNET01XaW5kb3dCYXNlIDogcHVibGljIEpTRE9N
R2xvYmFsT2JqZWN0IHsKICAgICAgICAgdHlwZWRlZiBKU0RPTUdsb2JhbE9iamVjdCBCYXNlOwog
ICAgIHByb3RlY3RlZDoKQEAgLTg4LDggKzg1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICBTdHJpbmcgY3Jvc3NEb21haW5BY2Nlc3NFcnJvck1lc3NhZ2UoY29uc3QgSlNDOjpKU0ds
b2JhbE9iamVjdCopIGNvbnN0OwogICAgIH07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKLQogICAgIC8vIFJldHVybnMgYSBKU0RPTVdpbmRvdyBvciBqc051bGwoKQogICAgIC8vIEpT
RE9NR2xvYmFsT2JqZWN0KiBpcyBpZ25vcmVkLCBhY2Nlc3NpbmcgYSB3aW5kb3cgaW4gYW55IGNv
bnRleHQgd2lsbAogICAgIC8vIHVzZSB0aGF0IERPTVdpbmRvdydzIHByb3RvdHlwZSBjaGFpbi4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaAppbmRleCAy
YTUwMWQ0Li5kODY3NjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd1NoZWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dTaGVsbC5oCkBAIC0zNyw5ICszNyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBj
bGFzcyBET01XaW5kb3c7CiAgICAgY2xhc3MgRnJhbWU7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVh
bC1kdG9yIgotCiAgICAgY2xhc3MgSlNET01XaW5kb3dTaGVsbCA6IHB1YmxpYyBKU0M6OkpTR2xv
YmFsVGhpcyB7CiAgICAgICAgIHR5cGVkZWYgSlNDOjpKU0dsb2JhbFRoaXMgQmFzZTsKICAgICBw
dWJsaWM6CkBAIC05Niw4ICs5Myw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUmVm
UHRyPERPTVdyYXBwZXJXb3JsZD4gbV93b3JsZDsKICAgICB9OwogCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCi0KICAgICBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEZy
YW1lKik7CiAgICAgSlNET01XaW5kb3dTaGVsbCogdG9KU0RPTVdpbmRvd1NoZWxsKEZyYW1lKiwg
RE9NV3JhcHBlcldvcmxkKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV3JhcHBlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFw
cGVyLmgKaW5kZXggM2RmOWE1Ni4uYWNkNzk2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XcmFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XcmFwcGVyLmgKQEAgLTI5LDkgKzI5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9uLXZpcnR1YWwt
ZHRvciIKLQogY2xhc3MgSlNET01XcmFwcGVyIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVj
dCB7CiBwdWJsaWM6CiAgICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCgpIGNvbnN0
CkBAIC02Myw4ICs2MCw2IEBAIHByb3RlY3RlZDoKICAgICB9CiB9OwogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEpT
RE9NV3JhcHBlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lt
YWdlQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25z
dHJ1Y3Rvci5oCmluZGV4IGIyZGNiN2YuLjljYzRmZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5oCkBAIC0yNSw5ICsyNSw2IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbi12aXJ0dWFsLWR0b3IiCi0KICAgICBj
bGFzcyBKU0ltYWdlQ29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0b3JXaXRoRG9jdW1l
bnQgewogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBET01Db25zdHJ1Y3RvcldpdGhEb2N1
bWVudCBCYXNlOwpAQCAtNTIsOCArNDksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IHN0YXRpYyBKU0M6OkNvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0M6OkpTQ2VsbCos
IEpTQzo6Q29uc3RydWN0RGF0YSYpOwogICAgIH07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSlNJbWFnZUNvbnN0
cnVjdG9yX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2Vy
Q29udGV4dEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4
dEJhc2UuaAppbmRleCAyNjk2Nzg3Li5hYmNiZWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5oCkBAIC0zOCw5ICszOCw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBKU1dvcmtlckNvbnRleHQ7CiAgICAgY2xhc3MgV29y
a2VyQ29udGV4dDsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbi12aXJ0dWFsLWR0b3IiCi0KICAgICBjbGFzcyBK
U1dvcmtlckNvbnRleHRCYXNlIDogcHVibGljIEpTRE9NR2xvYmFsT2JqZWN0IHsKICAgICAgICAg
dHlwZWRlZiBKU0RPTUdsb2JhbE9iamVjdCBCYXNlOwogICAgIHB1YmxpYzoKQEAgLTY0LDggKzYx
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBSZWZQdHI8V29ya2VyQ29udGV4dD4g
bV9pbXBsOwogICAgIH07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLQogICAgIC8v
IFJldHVybnMgYSBKU1dvcmtlckNvbnRleHQgb3IganNOdWxsKCkKICAgICAvLyBBbHdheXMgaWdu
b3JlcyB0aGUgZXhlY1N0YXRlIGFuZCBwYXNzZWQgZ2xvYmFsT2JqZWN0LCBXb3JrZXJDb250ZXh0
IGlzIGl0c2VsZiBhIGdsb2JhbE9iamVjdCBhbmQgd2lsbCBhbHdheXMgdXNlIGl0cyBvd24gcHJv
dG90eXBlIGNoYWluLgogICAgIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNE
T01HbG9iYWxPYmplY3QqLCBXb3JrZXJDb250ZXh0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDM0MmVjZDAuLjVkNGJi
NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCkBAIC03MzYsOSArNzM2LDYgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgQWRk
Q2xhc3NGb3J3YXJkSWZOZWVkZWQoIkpTRE9NV2luZG93U2hlbGwiKSBpZiAkaW50ZXJmYWNlTmFt
ZSBlcSAiRE9NV2luZG93IjsKICAgICBBZGRDbGFzc0ZvcndhcmRJZk5lZWRlZCgiSlNEaWN0aW9u
YXJ5IikgaWYgSXNDb25zdHJ1Y3RvclRlbXBsYXRlKCRkYXRhTm9kZSwgIkV2ZW50Iik7CiAKLSAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2hcbiIp
OwotICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCBcIi1Xbm9uLXZpcnR1YWwtZHRvclwiXG5cbiIpOwotCiAgICAgIyBDbGFzcyBkZWNsYXJh
dGlvbgogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJjbGFzcyAkY2xhc3NOYW1lIDogcHVibGlj
ICRwYXJlbnRDbGFzc05hbWUge1xuIik7CiAKQEAgLTExMDEsOCArMTA5OCw2IEBAIHN1YiBHZW5l
cmF0ZUhlYWRlcgogCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIn07XG5cbiIpOwogCi0gICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3BcblxuIik7
Ci0KICAgICBpZiAoISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik9taXRDb25zdHJ1
Y3RvciJ9KSB7CiAgICAgICAgICRoZWFkZXJJbmNsdWRlc3siSlNET01CaW5kaW5nLmgifSA9IDE7
CiAgICAgICAgIEdlbmVyYXRlQ29uc3RydWN0b3JEZWNsYXJhdGlvbihcQGhlYWRlckNvbnRlbnQs
ICRjbGFzc05hbWUsICRkYXRhTm9kZSwgJGludGVyZmFjZU5hbWUpOwpAQCAtMzMxNCw5ICszMzA5
LDYgQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0b3JEZWNsYXJhdGlvbgogICAgIG15ICRjb25zdHJ1
Y3RvckNsYXNzTmFtZSA9ICIke2NsYXNzTmFtZX1Db25zdHJ1Y3RvciI7CiAgICAgbXkgJGNhbGxX
aXRoID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FsbFdpdGgifTsKIAotICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoXG4iKTsK
LSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCBcIi1Xbm9uLXZpcnR1YWwtZHRvclwiXG5cbiIpOwotCiAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiY2xhc3MgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0gOiBwdWJsaWMgRE9NQ29uc3RydWN0b3JP
YmplY3Qge1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAicHJpdmF0ZTpcbiIpOwogICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfShKU0M6OlN0
cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7XG4iKTsKQEAgLTMzNDksMTcgKzMzNDEsMTIg
QEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0b3JEZWNsYXJhdGlvbgogICAgIH0KICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICJ9O1xuXG4iKTsKIAotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3BcblxuIik7Ci0KICAgICBpZiAoSXNDb25zdHJ1Y3RvclRl
bXBsYXRlKCRkYXRhTm9kZSwgIkV2ZW50IikpIHsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiYm9vbCBmaWxsJHtpbnRlcmZhY2VOYW1lfUluaXQoJHtpbnRlcmZhY2VOYW1lfUluaXQmLCBK
U0RpY3Rpb25hcnkmKTtcblxuIik7CiAgICAgfQogCiAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0b3IifSkgewogICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksIDw8RU5EKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgotCiBjbGFzcyBK
UyR7aW50ZXJmYWNlTmFtZX1OYW1lZENvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9y
V2l0aERvY3VtZW50IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIERPTUNvbnN0cnVjdG9yV2l0aERv
Y3VtZW50IEJhc2U7CkBAIC0zMzg1LDggKzMzNzIsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgZmlu
aXNoQ3JlYXRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCopOwogfTsKIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotCiBFTkQKICAgICB9CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL2MvQ1J1bnRpbWVPYmplY3QuaAppbmRleCA0YWE1NTI1Li42YmMxMWZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50aW1lT2JqZWN0LmgKQEAgLTM2LDkgKzM2LDYgQEAg
bmFtZXNwYWNlIEJpbmRpbmdzIHsKIAogY2xhc3MgQ0luc3RhbmNlOwogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9u
LXZpcnR1YWwtZHRvciIKLQogY2xhc3MgQ1J1bnRpbWVPYmplY3QgOiBwdWJsaWMgUnVudGltZU9i
amVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBSdW50aW1lT2JqZWN0IEJhc2U7CkBAIC02Nyw4
ICs2NCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVj
dCopOwogfTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotCiB9CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFuY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL2MvY19pbnN0YW5jZS5jcHAKaW5kZXggYjBiODExMy4uNGE1NGJmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19pbnN0YW5jZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19pbnN0YW5jZS5jcHAKQEAgLTEwOSw5ICsxMDksNiBAQCBi
b29sIENJbnN0YW5jZTo6c3VwcG9ydHNJbnZva2VEZWZhdWx0TWV0aG9kKCkgY29uc3QKICAgICBy
ZXR1cm4gX29iamVjdC0+X2NsYXNzLT5pbnZva2VEZWZhdWx0OwogfQogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9u
LXZpcnR1YWwtZHRvciIKLQogY2xhc3MgQ1J1bnRpbWVNZXRob2QgOiBwdWJsaWMgUnVudGltZU1l
dGhvZCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBSdW50aW1lTWV0aG9kIEJhc2U7CkBAIC0xNDcs
OCArMTQ0LDYgQEAgcHJpdmF0ZToKIAogfTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAotCiBjb25zdCBDbGFzc0luZm8gQ1J1bnRpbWVNZXRob2Q6OnNfaW5mbyA9IHsgIkNSdW50aW1l
TWV0aG9kIiwgJlJ1bnRpbWVNZXRob2Q6OnNfaW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJM
RShDUnVudGltZU1ldGhvZCkgfTsKIAogSlNWYWx1ZSBDSW5zdGFuY2U6OmdldE1ldGhvZChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuY3BwCmluZGV4IDMxZTYw
ODMuLjUwMjBiYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0ph
dmFJbnN0YW5jZUpTQy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2
YUluc3RhbmNlSlNDLmNwcApAQCAtMTE0LDkgKzExNCw2IEBAIEpTVmFsdWUgSmF2YUluc3RhbmNl
Ojpib29sZWFuVmFsdWUoKSBjb25zdAogICAgIHJldHVybiBqc0Jvb2xlYW4oYm9vbGVhblZhbHVl
KTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV25vbi12aXJ0dWFsLWR0b3IiCi0KIGNsYXNzIEphdmFSdW50aW1l
TWV0aG9kIDogcHVibGljIFJ1bnRpbWVNZXRob2QgewogcHVibGljOgogICAgIHR5cGVkZWYgUnVu
dGltZU1ldGhvZCBCYXNlOwpAQCAtMTUxLDggKzE0OCw2IEBAIHByaXZhdGU6CiAgICAgfQogfTsK
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotCiBjb25zdCBDbGFzc0luZm8gSmF2YVJ1
bnRpbWVNZXRob2Q6OnNfaW5mbyA9IHsgIkphdmFSdW50aW1lTWV0aG9kIiwgJlJ1bnRpbWVNZXRo
b2Q6OnNfaW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKYXZhUnVudGltZU1ldGhvZCkg
fTsKIAogSlNWYWx1ZSBKYXZhSW5zdGFuY2U6OmdldE1ldGhvZChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvam5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5oCmluZGV4IDY4YmVmZmQuLjg0OWEwMDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3Qu
aApAQCAtMzQsOSArMzQsNiBAQCBuYW1lc3BhY2UgQmluZGluZ3MgewogCiBjbGFzcyBKYXZhSW5z
dGFuY2U7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgotCiBjbGFzcyBKYXZhUnVudGlt
ZU9iamVjdCA6IHB1YmxpYyBSdW50aW1lT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIFJ1
bnRpbWVPYmplY3QgQmFzZTsKQEAgLTY1LDggKzYyLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGZp
bmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0Kik7CiB9OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCi0KIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29i
amMvT2JqQ1J1bnRpbWVPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL09iakNS
dW50aW1lT2JqZWN0LmgKaW5kZXggOWVlMTA4OC4uMGQ4ODUxZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYnJpZGdlL29iamMvT2JqQ1J1bnRpbWVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2Uvb2JqYy9PYmpDUnVudGltZU9iamVjdC5oCkBAIC0zMyw5ICszMyw2IEBAIG5h
bWVzcGFjZSBCaW5kaW5ncyB7CiAKIGNsYXNzIE9iamNJbnN0YW5jZTsKIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25v
bi12aXJ0dWFsLWR0b3IiCi0KIGNsYXNzIE9iakNSdW50aW1lT2JqZWN0IDogcHVibGljIFJ1bnRp
bWVPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYgUnVudGltZU9iamVjdCBCYXNlOwpAQCAt
NjQsOCArNjEsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxP
YmplY3QqKTsKIH07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLQogfQogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbQppbmRleCBiOTAwZjA3
Li5mOWFkZDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2lu
c3RhbmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfaW5zdGFuY2Uu
bW0KQEAgLTE3MCw5ICsxNzAsNiBAQCBib29sIE9iamNJbnN0YW5jZTo6c3VwcG9ydHNJbnZva2VE
ZWZhdWx0TWV0aG9kKCkgY29uc3QKICAgICByZXR1cm4gW19pbnN0YW5jZS5nZXQoKSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKGludm9rZURlZmF1bHRNZXRob2RXaXRoQXJndW1lbnRzOild
OwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1Xbm9uLXZpcnR1YWwtZHRvciIKLQogY2xhc3MgT2JqQ1J1bnRpbWVN
ZXRob2QgOiBwdWJsaWMgUnVudGltZU1ldGhvZCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIE9iakNS
dW50aW1lTWV0aG9kKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBCaW5kaW5nczo6TWV0aG9kTGlzdCYg
bGlzdCkKQEAgLTIwNyw4ICsyMDQsNiBAQCBwcml2YXRlOgogICAgIH0KIH07CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKLQogY29uc3QgQ2xhc3NJbmZvIE9iakNSdW50aW1lTWV0aG9k
OjpzX2luZm8gPSB7ICJPYmpDUnVudGltZU1ldGhvZCIsICZSdW50aW1lTWV0aG9kOjpzX2luZm8s
IDAsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoT2JqQ1J1bnRpbWVNZXRob2QpIH07CiAKIEpTVmFs
dWUgT2JqY0luc3RhbmNlOjpnZXRNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2Jq
Yy9vYmpjX3J1bnRpbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGlt
ZS5oCmluZGV4IDhiMDdkZjguLmJjOGI0ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9vYmpjL29iamNfcnVudGltZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpj
L29iamNfcnVudGltZS5oCkBAIC05MCw5ICs5MCw2IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRy
PE9iamVjdFN0cnVjdFB0cj4gX2FycmF5OwogfTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbi12aXJ0dWFsLWR0
b3IiCi0KIGNsYXNzIE9iamNGYWxsYmFja09iamVjdEltcCA6IHB1YmxpYyBKU05vbkZpbmFsT2Jq
ZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKQEAgLTE0
MCw4ICsxMzcsNiBAQCBwcml2YXRlOgogICAgIElkZW50aWZpZXIgX2l0ZW07CiB9OwogCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0KIH0gLy8gbmFtZXNwYWNlIEJpbmRpbmdzCiB9IC8v
IG5hbWVzcGFjZSBKU0MKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfYXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKaW5kZXgg
MWY5YzcxZC4uNTUzMGNiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfYXJyYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCkBA
IC0zMiw5ICszMiw2IEBACiAKIG5hbWVzcGFjZSBKU0MgewogICAgIAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbi12
aXJ0dWFsLWR0b3IiCi0KIGNsYXNzIFJ1bnRpbWVBcnJheSA6IHB1YmxpYyBKU0FycmF5IHsKIHB1
YmxpYzoKICAgICB0eXBlZGVmIEpTQXJyYXkgQmFzZTsKQEAgLTkwLDggKzg3LDYgQEAgcHJpdmF0
ZToKICAgICBzdGF0aWMgSlNWYWx1ZSBpbmRleEdldHRlcihFeGVjU3RhdGUqLCBKU1ZhbHVlLCB1
bnNpZ25lZCk7CiB9OwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotCiB9IC8v
IG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIFJVTlRJTUVfQVJSQVlfSF8KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfbWV0aG9kLmgKaW5kZXggOGJhM2VmZS4uZjc5NTVhMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmgKQEAgLTMzLDkgKzMzLDYgQEAKIAogbmFtZXNw
YWNlIEpTQyB7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgotCiBjbGFzcyBSdW50aW1l
TWV0aG9kIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogcHVibGljOgogICAgIHR5cGVkZWYg
SW50ZXJuYWxGdW5jdGlvbiBCYXNlOwpAQCAtNzgsOCArNzUsNiBAQCBwcml2YXRlOgogICAgIE93
blB0cjxCaW5kaW5nczo6TWV0aG9kTGlzdD4gX21ldGhvZExpc3Q7CiB9OwogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCi0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKaW5kZXggNjc1MTU1OS4uNjQzNzE1MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKQEAgLTMyLDkgKzMyLDYgQEAKIG5h
bWVzcGFjZSBKU0MgewogbmFtZXNwYWNlIEJpbmRpbmdzIHsKIAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbi12aXJ0
dWFsLWR0b3IiCi0KIGNsYXNzIFJ1bnRpbWVPYmplY3QgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVj
dCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CkBAIC04OSw4
ICs4Niw2IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEluc3RhbmNlPiBtX2luc3RhbmNlOwogfTsK
ICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLQogfQogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tIGIvU291
cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbQppbmRleCA3YjA1
YTliLi5hMzk2NjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3Rl
ZC9Qcm94eUluc3RhbmNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVk
L1Byb3h5SW5zdGFuY2UubW0KQEAgLTE3Nyw5ICsxNzcsNiBAQCBKU1ZhbHVlIFByb3h5SW5zdGFu
Y2U6Omludm9rZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSW52b2tlVHlwZSB0eXBlLCB1aW50NjRf
dCBpZAogICAgIHJldHVybiBtX2luc3RhbmNlUHJveHktPmRlbWFyc2hhbFZhbHVlKGV4ZWMsIChj
aGFyKilDRkRhdGFHZXRCeXRlUHRyKHJlcGx5LT5tX3Jlc3VsdC5nZXQoKSksIENGRGF0YUdldExl
bmd0aChyZXBseS0+bV9yZXN1bHQuZ2V0KCkpKTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbi12aXJ0dWFs
LWR0b3IiCi0KIGNsYXNzIFByb3h5UnVudGltZU1ldGhvZCA6IHB1YmxpYyBSdW50aW1lTWV0aG9k
IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIFJ1bnRpbWVNZXRob2QgQmFzZTsKQEAgLTIxNCw4ICsy
MTEsNiBAQCBwcml2YXRlOgogICAgIH0KIH07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKLQogY29uc3QgQ2xhc3NJbmZvIFByb3h5UnVudGltZU1ldGhvZDo6c19pbmZvID0geyAiUHJv
eHlSdW50aW1lTWV0aG9kIiwgJlJ1bnRpbWVNZXRob2Q6OnNfaW5mbywgMCwgMCwgQ1JFQVRFX01F
VEhPRF9UQUJMRShQcm94eVJ1bnRpbWVNZXRob2QpIH07CiAKIEpTVmFsdWUgUHJveHlJbnN0YW5j
ZTo6Z2V0TWV0aG9kKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBKU0M6OklkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5oCmluZGV4IDdmMTQ1NzguLjM0MGRiNmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0
aG9kLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pT
TlBNZXRob2QuaApAQCAtMzQsOSArMzQsNiBAQCB0eXBlZGVmIHZvaWQqIE5QSWRlbnRpZmllcjsK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9yIgotCiAv
LyBBIEpTT2JqZWN0IHRoYXQgd3JhcHMgYW4gTlBNZXRob2QuCiBjbGFzcyBKU05QTWV0aG9kIDog
cHVibGljIEpTQzo6SW50ZXJuYWxGdW5jdGlvbiB7CiBwdWJsaWM6CkBAIC03MCw5ICs2Nyw2IEBA
IHByaXZhdGU6CiAgICAgTlBJZGVudGlmaWVyIG1fbnBJZGVudGlmaWVyOwogfTsKIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAotCi0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5k
aWYgLy8gSlNOUE1ldGhvZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAppbmRleCAyZWNmYzJkLi43ZjI2ZjBkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNO
UE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9KU05QT2JqZWN0LmgKQEAgLTM3LDkgKzM3LDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNs
YXNzIE5QUnVudGltZU9iamVjdE1hcDsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub24tdmlydHVhbC1kdG9y
IgotCiAvLyBKU05QT2JqZWN0IGlzIGEgSlNPYmplY3QgdGhhdCB3cmFwcyBhbiBOUE9iamVjdC4K
IAogY2xhc3MgSlNOUE9iamVjdCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewpAQCAt
MTA1LDggKzEwMiw2IEBAIHByaXZhdGU6CiAgICAgTlBPYmplY3QqIG1fbnBPYmplY3Q7CiB9Owog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdAog
CiAjZW5kaWYgLy8gSlNOUE9iamVjdF9oCi0tIAoxLjcuNC40Cgo=
</data>
<flag name="review"
          id="118735"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118876</attachid>
            <date>2011-12-12 15:16:07 -0800</date>
            <delta_ts>2011-12-12 15:38:22 -0800</delta_ts>
            <desc>Remove VPtrStealingHack, more JIT fixes</desc>
            <filename>0016-Removed-all-VPtrStealingHack-related-stuff-along-wit.patch</filename>
            <type>text/plain</type>
            <size>22702</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">RnJvbSBmZmVkYmNhNDAwMzA1NWE5ZjdiYTExNGRjNDc1MTAzNTRmYTFjMjNlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJrIEhhaG5lbmJlcmcgPG1oYWhuZW5iZXJnQGFwcGxlLmNv
bT4KRGF0ZTogTW9uLCAxMiBEZWMgMjAxMSAxMDoyMzozMCAtMDgwMApTdWJqZWN0OiBbUEFUQ0gg
MTYvMThdIFJlbW92ZWQgYWxsIFZQdHJTdGVhbGluZ0hhY2sgcmVsYXRlZCBzdHVmZiwgYWxvbmcg
d2l0aAogZml4dXBWUHRyIGhhY2sgZm9yIFdpbmRvd3MuCgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwICAgIHwgICAyMiArKysrKystLS0tLS0KIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwIHwgICAgNSAt
LS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaCAgIHwg
ICAgMyAtLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAgICAgICAg
ICAgfCAgICA1IC0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oICAg
ICAgICAgICAgfCAgICAxIC0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFy
cmF5LmggICAgICAgIHwgICAgNSAtLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q2VsbC5oICAgICAgICAgICAgIHwgICAgMyAtLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNGdW5jdGlvbi5jcHAgICAgICAgfCAgICA1IC0tLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNGdW5jdGlvbi5oICAgICAgICAgfCAgICAzIC0tCiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdC5oICAgICAgICAgICB8ICAgMTUgLS0tLS0tLS0tCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oICAgICAgICAgICB8ICAgMzMgKysr
KystLS0tLS0tLS0tLS0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9u
cy5oICAgICAgICAgfCAgICA0ICstCiAxMiBmaWxlcyBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCsp
LCA4MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwCmluZGV4IDk4YTQ1MGYuLjM3OGFhNGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0yMzMxLDcgKzIzMzEs
NyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0SW5kZXhlZFByb3BlcnR5U3RvcmFn
ZShOb2RlJiBub2RlKQogICAgIEdQUlJlZyBzdG9yYWdlUmVnID0gc3RvcmFnZS5ncHIoKTsKICAg
ICBpZiAoYXQobm9kZS5jaGlsZDEoKSkucHJlZGljdGlvbigpID09IFByZWRpY3RTdHJpbmcpIHsK
ICAgICAgICAgaWYgKCFpc1N0cmluZ1ByZWRpY3Rpb24obV9zdGF0ZS5mb3JOb2RlKG5vZGUuY2hp
bGQxKCkpLm1fdHlwZSkpCi0gICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEpTVmFsdWVTb3Vy
Y2U6OnVuYm94ZWRDZWxsKGJhc2VSZWcpLCBub2RlLmNoaWxkMSgpLCBtX2ppdC5icmFuY2hQdHIo
TWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVn
KSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIobV9qaXQuZ2xvYmFsRGF0YSgpLT5qc1N0
cmluZ1ZQdHIpKSk7CisgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEpTVmFsdWVTb3VyY2U6
OnVuYm94ZWRDZWxsKGJhc2VSZWcpLCBub2RlLmNoaWxkMSgpLCBtX2ppdC5icmFuY2hQdHIoTWFj
cm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVnLCBK
U0NlbGw6OmNsYXNzSW5mb09mZnNldCgpKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIo
JkpTU3RyaW5nOjpzX2luZm8pKSk7CiAKICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhiYXNlUmVnLCBKU1N0cmluZzo6b2Zmc2V0T2ZWYWx1ZSgpKSwgc3RvcmFn
ZVJlZyk7CiAgICAgICAgIApAQCAtMjM0MSw1MSArMjM0MSw1MSBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlR2V0SW5kZXhlZFByb3BlcnR5U3RvcmFnZShOb2RlJiBub2RlKQogICAgICAg
ICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIFN0cmlu
Z0ltcGw6OmRhdGFPZmZzZXQoKSksIHN0b3JhZ2VSZWcpOwogICAgIH0gZWxzZSBpZiAoYXQobm9k
ZS5jaGlsZDEoKSkuc2hvdWxkU3BlY3VsYXRlQnl0ZUFycmF5KCkpIHsKICAgICAgICAgaWYgKCFp
c0J5dGVBcnJheVByZWRpY3Rpb24obV9zdGF0ZS5mb3JOb2RlKG5vZGUuY2hpbGQxKCkpLm1fdHlw
ZSkpCi0gICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRD
ZWxsKGJhc2VSZWcpLCBub2RlLmNoaWxkMSgpLCBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJs
ZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVnKSwgTWFjcm9Bc3Nl
bWJsZXI6OlRydXN0ZWRJbW1QdHIobV9qaXQuZ2xvYmFsRGF0YSgpLT5qc0J5dGVBcnJheVZQdHIp
KSk7CisgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRD
ZWxsKGJhc2VSZWcpLCBub2RlLmNoaWxkMSgpLCBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJs
ZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVnLCBKU0NlbGw6OmNs
YXNzSW5mb09mZnNldCgpKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoJkpTQnl0ZUFy
cmF5OjpzX2luZm8pKSk7CiAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3MoYmFzZVJlZywgSlNCeXRlQXJyYXk6Om9mZnNldE9mU3RvcmFnZSgpKSwgc3RvcmFnZVJl
Zyk7CiAgICAgfSBlbHNlIGlmIChhdChub2RlLmNoaWxkMSgpKS5zaG91bGRTcGVjdWxhdGVJbnQ4
QXJyYXkoKSkgewogICAgICAgICBjb25zdCBUeXBlZEFycmF5RGVzY3JpcHRvciYgZGVzY3JpcHRv
ciA9IG1faml0Lmdsb2JhbERhdGEoKS0+aW50OEFycmF5RGVzY3JpcHRvcigpOwogICAgICAgICBp
ZiAoIWlzSW50OEFycmF5UHJlZGljdGlvbihtX3N0YXRlLmZvck5vZGUobm9kZS5jaGlsZDEoKSku
bV90eXBlKSkKLSAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVNvdXJjZTo6dW5i
b3hlZENlbGwoYmFzZVJlZyksIG5vZGUuY2hpbGQxKCksIG1faml0LmJyYW5jaFB0cihNYWNyb0Fz
c2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcpLCBNYWNy
b0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihkZXNjcmlwdG9yLm1fdnB0cikpKTsKKyAgICAgICAg
ICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoYmFzZVJlZyks
IG5vZGUuY2hpbGQxKCksIG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWws
IE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbVB0cihkZXNjcmlwdG9yLm1fY2xhc3NJbmZvKSkpOwogICAgICAgICBtX2ppdC5sb2FkUHRy
KE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIGRlc2NyaXB0b3IubV9zdG9yYWdlT2Zm
c2V0KSwgc3RvcmFnZVJlZyk7CiAgICAgfSBlbHNlIGlmIChhdChub2RlLmNoaWxkMSgpKS5zaG91
bGRTcGVjdWxhdGVJbnQxNkFycmF5KCkpIHsKICAgICAgICAgY29uc3QgVHlwZWRBcnJheURlc2Ny
aXB0b3ImIGRlc2NyaXB0b3IgPSBtX2ppdC5nbG9iYWxEYXRhKCktPmludDE2QXJyYXlEZXNjcmlw
dG9yKCk7CiAgICAgICAgIGlmICghaXNJbnQxNkFycmF5UHJlZGljdGlvbihtX3N0YXRlLmZvck5v
ZGUobm9kZS5jaGlsZDEoKSkubV90eXBlKSkKLSAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2so
SlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoYmFzZVJlZyksIG5vZGUuY2hpbGQxKCksIG1faml0
LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKGJhc2VSZWcpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihkZXNjcmlwdG9yLm1f
dnB0cikpKTsKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVNvdXJjZTo6dW5i
b3hlZENlbGwoYmFzZVJlZyksIG5vZGUuY2hpbGQxKCksIG1faml0LmJyYW5jaFB0cihNYWNyb0Fz
c2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcpLCBNYWNy
b0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihkZXNjcmlwdG9yLm1fY2xhc3NJbmZvKSkpOwogICAg
ICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIGRlc2Ny
aXB0b3IubV9zdG9yYWdlT2Zmc2V0KSwgc3RvcmFnZVJlZyk7CiAgICAgfSBlbHNlIGlmIChhdChu
b2RlLmNoaWxkMSgpKS5zaG91bGRTcGVjdWxhdGVJbnQzMkFycmF5KCkpIHsKICAgICAgICAgY29u
c3QgVHlwZWRBcnJheURlc2NyaXB0b3ImIGRlc2NyaXB0b3IgPSBtX2ppdC5nbG9iYWxEYXRhKCkt
PmludDMyQXJyYXlEZXNjcmlwdG9yKCk7CiAgICAgICAgIGlmICghaXNJbnQzMkFycmF5UHJlZGlj
dGlvbihtX3N0YXRlLmZvck5vZGUobm9kZS5jaGlsZDEoKSkubV90eXBlKSkKLSAgICAgICAgICAg
IHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoYmFzZVJlZyksIG5v
ZGUuY2hpbGQxKCksIG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1h
Y3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bVB0cihkZXNjcmlwdG9yLm1fdnB0cikpKTsKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2so
SlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoYmFzZVJlZyksIG5vZGUuY2hpbGQxKCksIG1faml0
LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKGJhc2VSZWcpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihkZXNjcmlwdG9yLm1f
Y2xhc3NJbmZvKSkpOwogICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKGJhc2VSZWcsIGRlc2NyaXB0b3IubV9zdG9yYWdlT2Zmc2V0KSwgc3RvcmFnZVJlZyk7CiAg
ICAgfSBlbHNlIGlmIChhdChub2RlLmNoaWxkMSgpKS5zaG91bGRTcGVjdWxhdGVVaW50OEFycmF5
KCkpIHsKICAgICAgICAgY29uc3QgVHlwZWRBcnJheURlc2NyaXB0b3ImIGRlc2NyaXB0b3IgPSBt
X2ppdC5nbG9iYWxEYXRhKCktPnVpbnQ4QXJyYXlEZXNjcmlwdG9yKCk7CiAgICAgICAgIGlmICgh
aXNVaW50OEFycmF5UHJlZGljdGlvbihtX3N0YXRlLmZvck5vZGUobm9kZS5jaGlsZDEoKSkubV90
eXBlKSkKLSAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVNvdXJjZTo6dW5ib3hl
ZENlbGwoYmFzZVJlZyksIG5vZGUuY2hpbGQxKCksIG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2Vt
Ymxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcpLCBNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbVB0cihkZXNjcmlwdG9yLm1fdnB0cikpKTsKKyAgICAgICAgICAg
IHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoYmFzZVJlZyksIG5v
ZGUuY2hpbGQxKCksIG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1h
Y3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bVB0cihkZXNjcmlwdG9yLm1fY2xhc3NJbmZvKSkpOwogICAgICAgICBtX2ppdC5sb2FkUHRyKE1h
Y3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIGRlc2NyaXB0b3IubV9zdG9yYWdlT2Zmc2V0
KSwgc3RvcmFnZVJlZyk7CiAgICAgfSBlbHNlIGlmIChhdChub2RlLmNoaWxkMSgpKS5zaG91bGRT
cGVjdWxhdGVVaW50MTZBcnJheSgpKSB7CiAgICAgICAgIGNvbnN0IFR5cGVkQXJyYXlEZXNjcmlw
dG9yJiBkZXNjcmlwdG9yID0gbV9qaXQuZ2xvYmFsRGF0YSgpLT51aW50MTZBcnJheURlc2NyaXB0
b3IoKTsKICAgICAgICAgaWYgKCFpc1VpbnQxNkFycmF5UHJlZGljdGlvbihtX3N0YXRlLmZvck5v
ZGUobm9kZS5jaGlsZDEoKSkubV90eXBlKSkKLSAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2so
SlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoYmFzZVJlZyksIG5vZGUuY2hpbGQxKCksIG1faml0
LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKGJhc2VSZWcpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihkZXNjcmlwdG9yLm1f
dnB0cikpKTsKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVNvdXJjZTo6dW5i
b3hlZENlbGwoYmFzZVJlZyksIG5vZGUuY2hpbGQxKCksIG1faml0LmJyYW5jaFB0cihNYWNyb0Fz
c2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcpLCBNYWNy
b0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihkZXNjcmlwdG9yLm1fY2xhc3NJbmZvKSkpOwogICAg
ICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIGRlc2Ny
aXB0b3IubV9zdG9yYWdlT2Zmc2V0KSwgc3RvcmFnZVJlZyk7CiAgICAgfSBlbHNlIGlmIChhdChu
b2RlLmNoaWxkMSgpKS5zaG91bGRTcGVjdWxhdGVVaW50MzJBcnJheSgpKSB7CiAgICAgICAgIGNv
bnN0IFR5cGVkQXJyYXlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yID0gbV9qaXQuZ2xvYmFsRGF0YSgp
LT51aW50MzJBcnJheURlc2NyaXB0b3IoKTsKICAgICAgICAgaWYgKCFpc1VpbnQzMkFycmF5UHJl
ZGljdGlvbihtX3N0YXRlLmZvck5vZGUobm9kZS5jaGlsZDEoKSkubV90eXBlKSkKLSAgICAgICAg
ICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoYmFzZVJlZyks
IG5vZGUuY2hpbGQxKCksIG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWws
IE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbVB0cihkZXNjcmlwdG9yLm1fdnB0cikpKTsKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hl
Y2soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoYmFzZVJlZyksIG5vZGUuY2hpbGQxKCksIG1f
aml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzKGJhc2VSZWcpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihkZXNjcmlwdG9y
Lm1fY2xhc3NJbmZvKSkpOwogICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzKGJhc2VSZWcsIGRlc2NyaXB0b3IubV9zdG9yYWdlT2Zmc2V0KSwgc3RvcmFnZVJlZyk7
CiAgICAgfSBlbHNlIGlmIChhdChub2RlLmNoaWxkMSgpKS5zaG91bGRTcGVjdWxhdGVGbG9hdDMy
QXJyYXkoKSkgewogICAgICAgICBjb25zdCBUeXBlZEFycmF5RGVzY3JpcHRvciYgZGVzY3JpcHRv
ciA9IG1faml0Lmdsb2JhbERhdGEoKS0+ZmxvYXQzMkFycmF5RGVzY3JpcHRvcigpOwogICAgICAg
ICBpZiAoIWlzRmxvYXQzMkFycmF5UHJlZGljdGlvbihtX3N0YXRlLmZvck5vZGUobm9kZS5jaGls
ZDEoKSkubV90eXBlKSkKLSAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVNvdXJj
ZTo6dW5ib3hlZENlbGwoYmFzZVJlZyksIG5vZGUuY2hpbGQxKCksIG1faml0LmJyYW5jaFB0cihN
YWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcp
LCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihkZXNjcmlwdG9yLm1fdnB0cikpKTsKKyAg
ICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoYmFz
ZVJlZyksIG5vZGUuY2hpbGQxKCksIG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90
RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcpLCBNYWNyb0Fzc2VtYmxlcjo6
VHJ1c3RlZEltbVB0cihkZXNjcmlwdG9yLm1fY2xhc3NJbmZvKSkpOwogICAgICAgICBtX2ppdC5s
b2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIGRlc2NyaXB0b3IubV9zdG9y
YWdlT2Zmc2V0KSwgc3RvcmFnZVJlZyk7CiAgICAgfSBlbHNlIGlmIChhdChub2RlLmNoaWxkMSgp
KS5zaG91bGRTcGVjdWxhdGVGbG9hdDY0QXJyYXkoKSkgewogICAgICAgICBjb25zdCBUeXBlZEFy
cmF5RGVzY3JpcHRvciYgZGVzY3JpcHRvciA9IG1faml0Lmdsb2JhbERhdGEoKS0+ZmxvYXQ2NEFy
cmF5RGVzY3JpcHRvcigpOwogICAgICAgICBpZiAoIWlzRmxvYXQ2NEFycmF5UHJlZGljdGlvbiht
X3N0YXRlLmZvck5vZGUobm9kZS5jaGlsZDEoKSkubV90eXBlKSkKLSAgICAgICAgICAgIHNwZWN1
bGF0aW9uQ2hlY2soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoYmFzZVJlZyksIG5vZGUuY2hp
bGQxKCksIG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihk
ZXNjcmlwdG9yLm1fdnB0cikpKTsKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1
ZVNvdXJjZTo6dW5ib3hlZENlbGwoYmFzZVJlZyksIG5vZGUuY2hpbGQxKCksIG1faml0LmJyYW5j
aFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJh
c2VSZWcpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihkZXNjcmlwdG9yLm1fY2xhc3NJ
bmZvKSkpOwogICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJh
c2VSZWcsIGRlc2NyaXB0b3IubV9zdG9yYWdlT2Zmc2V0KSwgc3RvcmFnZVJlZyk7CiAgICAgfSBl
bHNlIHsKICAgICAgICAgaWYgKCFpc0FycmF5UHJlZGljdGlvbihtX3N0YXRlLmZvck5vZGUobm9k
ZS5jaGlsZDEoKSkubV90eXBlKSkKLSAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1
ZVNvdXJjZTo6dW5ib3hlZENlbGwoYmFzZVJlZyksIG5vZGUuY2hpbGQxKCksIG1faml0LmJyYW5j
aFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJh
c2VSZWcpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihtX2ppdC5nbG9iYWxEYXRhKCkt
PmpzQXJyYXlWUHRyKSkpOworICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhKU1ZhbHVlU291
cmNlOjp1bmJveGVkQ2VsbChiYXNlUmVnKSwgbm9kZS5jaGlsZDEoKSwgbV9qaXQuYnJhbmNoUHRy
KE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJl
ZywgSlNDZWxsOjpjbGFzc0luZm9PZmZzZXQoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
UHRyKCZKU0FycmF5OjpzX2luZm8pKSk7CiAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3MoYmFzZVJlZywgSlNBcnJheTo6c3RvcmFnZU9mZnNldCgpKSwgc3RvcmFn
ZVJlZyk7CiAgICAgfQogICAgIHN0b3JhZ2VSZXN1bHQoc3RvcmFnZVJlZywgbV9jb21waWxlSW5k
ZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxG
dW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0
aW9uLmNwcAppbmRleCAxOWU3YjRmLi41MGVhNTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcApAQCAtMzQsMTEgKzM0LDYgQEAg
QVNTRVJUX0hBU19UUklWSUFMX0RFU1RSVUNUT1IoSW50ZXJuYWxGdW5jdGlvbik7CiAKIGNvbnN0
IENsYXNzSW5mbyBJbnRlcm5hbEZ1bmN0aW9uOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZKU05v
bkZpbmFsT2JqZWN0OjpzX2luZm8sIDAsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSW50ZXJuYWxG
dW5jdGlvbikgfTsKIAotSW50ZXJuYWxGdW5jdGlvbjo6SW50ZXJuYWxGdW5jdGlvbihWUHRyU3Rl
YWxpbmdIYWNrVHlwZSkKLSAgICA6IEpTTm9uRmluYWxPYmplY3QoVlB0clN0ZWFsaW5nSGFjaykK
LXsKLX0KLQogSW50ZXJuYWxGdW5jdGlvbjo6SW50ZXJuYWxGdW5jdGlvbihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEpTTm9uRmluYWxP
YmplY3QoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaAppbmRleCAzYzEz
MzEyLi5hMDM4YjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRlcm5hbEZ1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
ZXJuYWxGdW5jdGlvbi5oCkBAIC00OSw5ICs0OSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHBy
b3RlY3RlZDoKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
SW1wbGVtZW50c0hhc0luc3RhbmNlIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCi0gICAg
ICAgIC8vIE9ubHkgdXNlZCB0byBhbGxvdyB1cyB0byBkZXRlcm1pbmUgdGhlIEpTRnVuY3Rpb24g
dnB0cgotICAgICAgICBJbnRlcm5hbEZ1bmN0aW9uKFZQdHJTdGVhbGluZ0hhY2tUeXBlKTsKLQog
ICAgICAgICBJbnRlcm5hbEZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CiAK
ICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmLCBjb25zdCBJZGVudGlm
aWVyJiBuYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKaW5k
ZXggNjU0NDBiMi4uNGIzMGYzNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
cnJheS5jcHAKQEAgLTEyNiwxMSArMTI2LDYgQEAgaW5saW5lIHZvaWQgSlNBcnJheTo6Y2hlY2tD
b25zaXN0ZW5jeShDb25zaXN0ZW5jeUNoZWNrVHlwZSkKIAogI2VuZGlmCiAKLUpTQXJyYXk6OkpT
QXJyYXkoVlB0clN0ZWFsaW5nSGFja1R5cGUpCi0gICAgOiBKU05vbkZpbmFsT2JqZWN0KFZQdHJT
dGVhbGluZ0hhY2spCi17Ci19Ci0KIEpTQXJyYXk6OkpTQXJyYXkoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xv
YmFsRGF0YSwgc3RydWN0dXJlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJh
eS5oCmluZGV4IGM1ZDJhMzMuLjFlYWQ4MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FycmF5LmgKQEAgLTcxLDcgKzcxLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHVibGlj
OgogICAgICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKIAotICAgICAgICBKU0Fy
cmF5KFZQdHJTdGVhbGluZ0hhY2tUeXBlKTsKICAgICAgICAgfkpTQXJyYXkoKTsKICAgICAgICAg
c3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQnl0ZUFycmF5LmgKaW5kZXggZmUzNmMwNC4uNTEyMmJhZCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCkBAIC0xMTcsMTEgKzExNyw2IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBKU0J5
dGVBcnJheShWUHRyU3RlYWxpbmdIYWNrVHlwZSkKLSAgICAgICAgICAgIDogSlNOb25GaW5hbE9i
amVjdChWUHRyU3RlYWxpbmdIYWNrKQotICAgICAgICB7Ci0gICAgICAgIH0KLQogICAgICAgICBS
ZWZQdHI8V1RGOjpCeXRlQXJyYXk+IG1fc3RvcmFnZTsKICAgICB9OwogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAppbmRleCAxOTk5YTEwLi5jNzU1YTYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaApAQCAtNjUsOSArNjUsNiBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgZW51bSBDcmVhdGluZ0Vhcmx5Q2VsbFRhZyB7IENyZWF0aW5nRWFy
bHlDZWxsIH07CiAgICAgICAgIEpTQ2VsbChDcmVhdGluZ0Vhcmx5Q2VsbFRhZyk7CiAKLSAgICAg
ICAgZW51bSBWUHRyU3RlYWxpbmdIYWNrVHlwZSB7IFZQdHJTdGVhbGluZ0hhY2sgfTsKLSAgICAg
ICAgZXhwbGljaXQgSlNDZWxsKFZQdHJTdGVhbGluZ0hhY2tUeXBlKSB7IH0KLQogICAgIHB1Ymxp
YzoKICAgICAgICAgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVfdCwgdm9pZCogcGxhY2VtZW50TmV3
RGVzdGluYXRpb24pIHsgcmV0dXJuIHBsYWNlbWVudE5ld0Rlc3RpbmF0aW9uOyB9IC8vIFVzZWQg
Zm9yIGluaXRpYWxpemF0aW9uIGFmdGVyIEdDIGFsbG9jYXRpb24uCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5kZXggOTg2ODUzYy4uNGUwNTUzNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKQEAgLTcz
LDExICs3Myw2IEBAIEpTRnVuY3Rpb24qIEpTRnVuY3Rpb246OmNyZWF0ZShFeGVjU3RhdGUqIGV4
ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGluCiAgICAgcmV0dXJuIGZ1bmN0aW9u
OwogfQogCi1KU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKFZQdHJTdGVhbGluZ0hhY2tUeXBlKQotICAg
IDogQmFzZShWUHRyU3RlYWxpbmdIYWNrKQotewotfQotCiBKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9u
KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNlKGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQog
ICAgICwgbV9leGVjdXRhYmxlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVu
Y3Rpb24uaAppbmRleCBiNzA0ZDE4Li45ODhhZTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNGdW5jdGlvbi5oCkBAIC0zNSw3ICszNSw2IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgIGNsYXNzIEpTR2xvYmFsT2JqZWN0OwogICAgIGNsYXNzIE5hdGl2ZUV4ZWN1dGFibGU7CiAg
ICAgY2xhc3MgU291cmNlQ29kZTsKLSAgICBjbGFzcyBWUHRySGFja0V4ZWN1dGFibGU7CiAgICAg
bmFtZXNwYWNlIERGRyB7CiAgICAgY2xhc3MgU3BlY3VsYXRpdmVKSVQ7CiAgICAgY2xhc3MgSklU
Q29tcGlsZXI7CkBAIC0xNDMsOCArMTQyLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0
YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKIAogICAgIHBy
aXZhdGU6Ci0gICAgICAgIGV4cGxpY2l0IEpTRnVuY3Rpb24oVlB0clN0ZWFsaW5nSGFja1R5cGUp
OwotCiAgICAgICAgIGJvb2wgaXNIb3N0RnVuY3Rpb25Ob25JbmxpbmUoKSBjb25zdDsKIAogICAg
ICAgICBzdGF0aWMgSlNWYWx1ZSBhcmd1bWVudHNHZXR0ZXIoRXhlY1N0YXRlKiwgSlNWYWx1ZSwg
Y29uc3QgSWRlbnRpZmllciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0
LmgKaW5kZXggNTkyODdjMy4uYmY1NjQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09iamVjdC5oCkBAIC0yNTYsMTEgKzI1Niw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICAvLyBUbyBpbnN0YW50aWF0ZSBvYmplY3RzIHlvdSBsaWtlbHkgd2FudCBKU0ZpbmFsT2JqZWN0
LCBiZWxvdy4KICAgICAgICAgLy8gVG8gY3JlYXRlIGRlcml2ZWQgdHlwZXMgeW91IGxpa2VseSB3
YW50IEpTTm9uRmluYWxPYmplY3QsIGJlbG93LgogICAgICAgICBKU09iamVjdChKU0dsb2JhbERh
dGEmLCBTdHJ1Y3R1cmUqLCBQcm9wZXJ0eVN0b3JhZ2UgaW5saW5lU3RvcmFnZSk7Ci0gICAgICAg
IEpTT2JqZWN0KFZQdHJTdGVhbGluZ0hhY2tUeXBlLCBQcm9wZXJ0eVN0b3JhZ2UgaW5saW5lU3Rv
cmFnZSkKLSAgICAgICAgICAgIDogSlNDZWxsKFZQdHJTdGVhbGluZ0hhY2spCi0gICAgICAgICAg
ICAsIG1fcHJvcGVydHlTdG9yYWdlKGlubGluZVN0b3JhZ2UsIFN0b3JhZ2VCYXJyaWVyOjpVbmNo
ZWNrZWQpCi0gICAgICAgIHsKLSAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgLy8g
Tm9ib2R5IHNob3VsZCBldmVyIGFzayBhbnkgb2YgdGhlc2UgcXVlc3Rpb25zIG9uIHNvbWV0aGlu
ZyBhbHJlYWR5IGtub3duIHRvIGJlIGEgSlNPYmplY3QuCkBAIC0zMjMsMTEgKzMxOCw2IEBAIENP
TVBJTEVfQVNTRVJUKChKU0ZpbmFsT2JqZWN0X2lubGluZVN0b3JhZ2VDYXBhY2l0eSA+PSBKU05v
bkZpbmFsT2JqZWN0X2lubGluZVN0CiAgICAgICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxs
Kik7CiAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIGV4cGxpY2l0IEpTTm9uRmluYWxPYmplY3Qo
VlB0clN0ZWFsaW5nSGFja1R5cGUpCi0gICAgICAgICAgICA6IEpTT2JqZWN0KFZQdHJTdGVhbGlu
Z0hhY2ssIG1faW5saW5lU3RvcmFnZSkKLSAgICAgICAgewotICAgICAgICB9Ci0gICAgCiAgICAg
ICAgIGV4cGxpY2l0IEpTTm9uRmluYWxPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICAgICAgICAgIDogSlNPYmplY3QoZ2xvYmFsRGF0YSwg
c3RydWN0dXJlLCBtX2lubGluZVN0b3JhZ2UpCiAgICAgICAgIHsKQEAgLTM1MywxMSArMzQzLDYg
QEAgQ09NUElMRV9BU1NFUlQoKEpTRmluYWxPYmplY3RfaW5saW5lU3RvcmFnZUNhcGFjaXR5ID49
IEpTTm9uRmluYWxPYmplY3RfaW5saW5lU3QKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYg
SlNPYmplY3QgQmFzZTsKIAotICAgICAgICBleHBsaWNpdCBKU0ZpbmFsT2JqZWN0KFZQdHJTdGVh
bGluZ0hhY2tUeXBlKQotICAgICAgICAgICAgOiBKU09iamVjdChWUHRyU3RlYWxpbmdIYWNrLCBt
X2lubGluZVN0b3JhZ2UpCi0gICAgICAgIHsKLSAgICAgICAgfQotICAgICAgICAKICAgICAgICAg
c3RhdGljIEpTRmluYWxPYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSog
c3RydWN0dXJlKQogICAgICAgICB7CiAgICAgICAgICAgICBKU0ZpbmFsT2JqZWN0KiBmaW5hbE9i
amVjdCA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTRmluYWxPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBK
U0ZpbmFsT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCmluZGV4IDQ3NzQ1MWMuLmQ1MWEyM2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaApAQCAtMjQzLDExICsyNDMsNiBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0Nl
bGwqLCBTbG90VmlzaXRvciYpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgSlNTdHJpbmcoVlB0
clN0ZWFsaW5nSGFja1R5cGUpIAotICAgICAgICAgICAgOiBKU0NlbGwoVlB0clN0ZWFsaW5nSGFj
aykKLSAgICAgICAgewotICAgICAgICB9Ci0KICAgICAgICAgdm9pZCByZXNvbHZlUm9wZShFeGVj
U3RhdGUqKSBjb25zdDsKICAgICAgICAgdm9pZCByZXNvbHZlUm9wZVNsb3dDYXNlOChMQ2hhciop
IGNvbnN0OwogICAgICAgICB2b2lkIHJlc29sdmVSb3BlU2xvd0Nhc2UoVUNoYXIqKSBjb25zdDsK
QEAgLTI3OSwxNiArMjc0LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBKU1N0cmluZyogYXNT
dHJpbmcoSlNWYWx1ZSk7CiAKLSAgICAvLyBXaGVuIGFuIG9iamVjdCBpcyBjcmVhdGVkIGZyb20g
YSBkaWZmZXJlbnQgRExMLCBNU1ZDIGNoYW5nZXMgdnB0ciB0byBhICJsb2NhbCIgb25lIHJpZ2h0
IGFmdGVyIGludm9raW5nIGEgY29uc3RydWN0b3IsCi0gICAgLy8gc2VlIDxodHRwOi8vZ3JvdXBz
Lmdvb2dsZS5jb20vZ3JvdXAvbWljcm9zb2Z0LnB1YmxpYy52Yy5sYW5ndWFnZS9tc2cvNTVjZGNl
ZmVhZjc3MDIxMj4uCi0gICAgLy8gVGhpcyBicmVha3MgaXNKU1N0cmluZygpLCBhbmQgd2UgZG9u
J3QgbmVlZCB0aGF0IGhhY2sgYW55d2F5LCBzbyB3ZSBjaGFuZ2UgdnB0ciBiYWNrIHRvIHByaW1h
cnkgb25lLgotICAgIC8vIFRoZSBiZWxvdyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCBieSBhbnkg
aW5saW5lIGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBhIEpTU3RyaW5nIGNvbnN0cnVjdG9yLgotI2lm
IENPTVBJTEVSKE1TVkMpICYmICFkZWZpbmVkKEJVSUxESU5HX0phdmFTY3JpcHRDb3JlKQotICAg
IGlubGluZSBKU1N0cmluZyogZml4dXBWUHRyKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgSlNT
dHJpbmcqIHN0cmluZykgeyBzdHJpbmctPnNldFZQdHIoZ2xvYmFsRGF0YS0+anNTdHJpbmdWUHRy
KTsgcmV0dXJuIHN0cmluZzsgfQotI2Vsc2UKLSAgICBpbmxpbmUgSlNTdHJpbmcqIGZpeHVwVlB0
cihKU0dsb2JhbERhdGEqLCBKU1N0cmluZyogc3RyaW5nKSB7IHJldHVybiBzdHJpbmc7IH0KLSNl
bmRpZgotCiAgICAgaW5saW5lIEpTU3RyaW5nKiBhc1N0cmluZyhKU1ZhbHVlIHZhbHVlKQogICAg
IHsKICAgICAgICAgQVNTRVJUKHZhbHVlLmFzQ2VsbCgpLT5pc1N0cmluZygpKTsKQEAgLTMwNCw3
ICsyODksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB7CiAgICAgICAgIGlmIChjIDw9IG1heFNp
bmdsZUNoYXJhY3RlclN0cmluZykKICAgICAgICAgICAgIHJldHVybiBnbG9iYWxEYXRhLT5zbWFs
bFN0cmluZ3Muc2luZ2xlQ2hhcmFjdGVyU3RyaW5nKGdsb2JhbERhdGEsIGMpOwotICAgICAgICBy
ZXR1cm4gZml4dXBWUHRyKGdsb2JhbERhdGEsIEpTU3RyaW5nOjpjcmVhdGUoKmdsb2JhbERhdGEs
IFVTdHJpbmcoJmMsIDEpLmltcGwoKSkpOworICAgICAgICByZXR1cm4gSlNTdHJpbmc6OmNyZWF0
ZSgqZ2xvYmFsRGF0YSwgVVN0cmluZygmYywgMSkuaW1wbCgpKTsKICAgICB9CiAKICAgICBpbmxp
bmUgSlNTdHJpbmcqIGpzU2luZ2xlQ2hhcmFjdGVyU3Vic3RyaW5nKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgVVN0cmluZyYgcywgdW5zaWduZWQgb2Zmc2V0KQpAQCAtMzE0LDcgKzI5OSw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBVQ2hhciBjID0gc1tvZmZzZXRdOwogICAgICAgICBpZiAo
YyA8PSBtYXhTaW5nbGVDaGFyYWN0ZXJTdHJpbmcpCiAgICAgICAgICAgICByZXR1cm4gZ2xvYmFs
RGF0YS0+c21hbGxTdHJpbmdzLnNpbmdsZUNoYXJhY3RlclN0cmluZyhnbG9iYWxEYXRhLCBjKTsK
LSAgICAgICAgcmV0dXJuIGZpeHVwVlB0cihnbG9iYWxEYXRhLCBKU1N0cmluZzo6Y3JlYXRlKCpn
bG9iYWxEYXRhLCBTdHJpbmdJbXBsOjpjcmVhdGUocy5pbXBsKCksIG9mZnNldCwgMSkpKTsKKyAg
ICAgICAgcmV0dXJuIEpTU3RyaW5nOjpjcmVhdGUoKmdsb2JhbERhdGEsIFN0cmluZ0ltcGw6OmNy
ZWF0ZShzLmltcGwoKSwgb2Zmc2V0LCAxKSk7CiAgICAgfQogCiAgICAgaW5saW5lIEpTU3RyaW5n
KiBqc05vbnRyaXZpYWxTdHJpbmcoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBjb25zdCBjaGFy
KiBzKQpAQCAtMzIyLDEzICszMDcsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEFTU0VS
VChzKTsKICAgICAgICAgQVNTRVJUKHNbMF0pOwogICAgICAgICBBU1NFUlQoc1sxXSk7Ci0gICAg
ICAgIHJldHVybiBmaXh1cFZQdHIoZ2xvYmFsRGF0YSwgSlNTdHJpbmc6OmNyZWF0ZSgqZ2xvYmFs
RGF0YSwgVVN0cmluZyhzKS5pbXBsKCkpKTsKKyAgICAgICAgcmV0dXJuIEpTU3RyaW5nOjpjcmVh
dGUoKmdsb2JhbERhdGEsIFVTdHJpbmcocykuaW1wbCgpKTsKICAgICB9CiAKICAgICBpbmxpbmUg
SlNTdHJpbmcqIGpzTm9udHJpdmlhbFN0cmluZyhKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIGNv
bnN0IFVTdHJpbmcmIHMpCiAgICAgewogICAgICAgICBBU1NFUlQocy5sZW5ndGgoKSA+IDEpOwot
ICAgICAgICByZXR1cm4gZml4dXBWUHRyKGdsb2JhbERhdGEsIEpTU3RyaW5nOjpjcmVhdGUoKmds
b2JhbERhdGEsIHMuaW1wbCgpKSk7CisgICAgICAgIHJldHVybiBKU1N0cmluZzo6Y3JlYXRlKCpn
bG9iYWxEYXRhLCBzLmltcGwoKSk7CiAgICAgfQogCiAgICAgaW5saW5lIEpTU3RyaW5nKiBKU1N0
cmluZzo6Z2V0SW5kZXgoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpKQpAQCAtMzUwLDcgKzMz
NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgaWYgKGMgPD0gbWF4U2luZ2xlQ2hh
cmFjdGVyU3RyaW5nKQogICAgICAgICAgICAgICAgIHJldHVybiBnbG9iYWxEYXRhLT5zbWFsbFN0
cmluZ3Muc2luZ2xlQ2hhcmFjdGVyU3RyaW5nKGdsb2JhbERhdGEsIGMpOwogICAgICAgICB9Ci0g
ICAgICAgIHJldHVybiBmaXh1cFZQdHIoZ2xvYmFsRGF0YSwgSlNTdHJpbmc6OmNyZWF0ZSgqZ2xv
YmFsRGF0YSwgcy5pbXBsKCkpKTsKKyAgICAgICAgcmV0dXJuIEpTU3RyaW5nOjpjcmVhdGUoKmds
b2JhbERhdGEsIHMuaW1wbCgpKTsKICAgICB9CiAKICAgICBpbmxpbmUgSlNTdHJpbmcqIGpzU3Vi
c3RyaW5nKEV4ZWNTdGF0ZSogZXhlYywgSlNTdHJpbmcqIHMsIHVuc2lnbmVkIG9mZnNldCwgdW5z
aWduZWQgbGVuZ3RoKQpAQCAtMzc2LDcgKzM2MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICAgICAgaWYgKGMgPD0gbWF4U2luZ2xlQ2hhcmFjdGVyU3RyaW5nKQogICAgICAgICAgICAgICAg
IHJldHVybiBnbG9iYWxEYXRhLT5zbWFsbFN0cmluZ3Muc2luZ2xlQ2hhcmFjdGVyU3RyaW5nKGds
b2JhbERhdGEsIGMpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiBmaXh1cFZQdHIoZ2xvYmFs
RGF0YSwgSlNTdHJpbmc6OmNyZWF0ZUhhc090aGVyT3duZXIoKmdsb2JhbERhdGEsIFN0cmluZ0lt
cGw6OmNyZWF0ZTgocy5pbXBsKCksIG9mZnNldCwgbGVuZ3RoKSkpOworICAgICAgICByZXR1cm4g
SlNTdHJpbmc6OmNyZWF0ZUhhc090aGVyT3duZXIoKmdsb2JhbERhdGEsIFN0cmluZ0ltcGw6OmNy
ZWF0ZTgocy5pbXBsKCksIG9mZnNldCwgbGVuZ3RoKSk7CiAgICAgfQogCiAgICAgaW5saW5lIEpT
U3RyaW5nKiBqc1N1YnN0cmluZyhKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIGNvbnN0IFVTdHJp
bmcmIHMsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQpAQCAtMzkxLDcgKzM3Niw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgaWYgKGMgPD0gbWF4U2luZ2xlQ2hhcmFj
dGVyU3RyaW5nKQogICAgICAgICAgICAgICAgIHJldHVybiBnbG9iYWxEYXRhLT5zbWFsbFN0cmlu
Z3Muc2luZ2xlQ2hhcmFjdGVyU3RyaW5nKGdsb2JhbERhdGEsIGMpOwogICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiBmaXh1cFZQdHIoZ2xvYmFsRGF0YSwgSlNTdHJpbmc6OmNyZWF0ZUhhc090aGVy
T3duZXIoKmdsb2JhbERhdGEsIFN0cmluZ0ltcGw6OmNyZWF0ZShzLmltcGwoKSwgb2Zmc2V0LCBs
ZW5ndGgpKSk7CisgICAgICAgIHJldHVybiBKU1N0cmluZzo6Y3JlYXRlSGFzT3RoZXJPd25lcigq
Z2xvYmFsRGF0YSwgU3RyaW5nSW1wbDo6Y3JlYXRlKHMuaW1wbCgpLCBvZmZzZXQsIGxlbmd0aCkp
OwogICAgIH0KIAogICAgIGlubGluZSBKU1N0cmluZyoganNPd25lZFN0cmluZyhKU0dsb2JhbERh
dGEqIGdsb2JhbERhdGEsIGNvbnN0IFVTdHJpbmcmIHMpCkBAIC00MDQsMTIgKzM4OSwxMiBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIGlmIChjIDw9IG1heFNpbmdsZUNoYXJhY3RlclN0
cmluZykKICAgICAgICAgICAgICAgICByZXR1cm4gZ2xvYmFsRGF0YS0+c21hbGxTdHJpbmdzLnNp
bmdsZUNoYXJhY3RlclN0cmluZyhnbG9iYWxEYXRhLCBjKTsKICAgICAgICAgfQotICAgICAgICBy
ZXR1cm4gZml4dXBWUHRyKGdsb2JhbERhdGEsIEpTU3RyaW5nOjpjcmVhdGVIYXNPdGhlck93bmVy
KCpnbG9iYWxEYXRhLCBzLmltcGwoKSkpOworICAgICAgICByZXR1cm4gSlNTdHJpbmc6OmNyZWF0
ZUhhc090aGVyT3duZXIoKmdsb2JhbERhdGEsIHMuaW1wbCgpKTsKICAgICB9CiAKICAgICBpbmxp
bmUgSlNTdHJpbmcqIGpzU3RyaW5nQnVpbGRlcihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEpCiAg
ICAgewotICAgICAgICByZXR1cm4gZml4dXBWUHRyKGdsb2JhbERhdGEsIEpTU3RyaW5nOjpjcmVh
dGVOdWxsKCpnbG9iYWxEYXRhKSk7CisgICAgICAgIHJldHVybiBKU1N0cmluZzo6Y3JlYXRlTnVs
bCgqZ2xvYmFsRGF0YSk7CiAgICAgfQogCiAgICAgaW5saW5lIEpTU3RyaW5nKiBqc0VtcHR5U3Ry
aW5nKEV4ZWNTdGF0ZSogZXhlYykgeyByZXR1cm4ganNFbXB0eVN0cmluZygmZXhlYy0+Z2xvYmFs
RGF0YSgpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3Bl
cmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5oCmlu
ZGV4IDM1OTgwYjkuLmNhMjE3NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
cGVyYXRpb25zLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGlm
ICgobGVuZ3RoMSArIGxlbmd0aDIpIDwgbGVuZ3RoMSkKICAgICAgICAgICAgIHJldHVybiB0aHJv
d091dE9mTWVtb3J5RXJyb3IoZXhlYyk7CiAKLSAgICAgICAgcmV0dXJuIGZpeHVwVlB0cigmZ2xv
YmFsRGF0YSwgSlNTdHJpbmc6OmNyZWF0ZShnbG9iYWxEYXRhLCBzMSwgczIpKTsKKyAgICAgICAg
cmV0dXJuIEpTU3RyaW5nOjpjcmVhdGUoZ2xvYmFsRGF0YSwgczEsIHMyKTsKICAgICB9CiAKICAg
ICBBTFdBWVNfSU5MSU5FIEpTVmFsdWUganNTdHJpbmcoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBV
U3RyaW5nJiB1MSwgY29uc3QgVVN0cmluZyYgdTIsIGNvbnN0IFVTdHJpbmcmIHUzKQpAQCAtNjks
NyArNjksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgaWYgKChsZW5ndGgxICsgbGVuZ3Ro
MiArIGxlbmd0aDMpIDwgbGVuZ3RoMykKICAgICAgICAgICAgIHJldHVybiB0aHJvd091dE9mTWVt
b3J5RXJyb3IoZXhlYyk7CiAKLSAgICAgICAgcmV0dXJuIGZpeHVwVlB0cihnbG9iYWxEYXRhLCBK
U1N0cmluZzo6Y3JlYXRlKGV4ZWMtPmdsb2JhbERhdGEoKSwganNTdHJpbmcoZ2xvYmFsRGF0YSwg
dTEpLCBqc1N0cmluZyhnbG9iYWxEYXRhLCB1MiksIGpzU3RyaW5nKGdsb2JhbERhdGEsIHUzKSkp
OworICAgICAgICByZXR1cm4gSlNTdHJpbmc6OmNyZWF0ZShleGVjLT5nbG9iYWxEYXRhKCksIGpz
U3RyaW5nKGdsb2JhbERhdGEsIHUxKSwganNTdHJpbmcoZ2xvYmFsRGF0YSwgdTIpLCBqc1N0cmlu
ZyhnbG9iYWxEYXRhLCB1MykpOwogICAgIH0KIAogICAgIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBq
c1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMsIFJlZ2lzdGVyKiBzdHJpbmdzLCB1bnNpZ25lZCBjb3Vu
dCkKLS0gCjEuNy40LjQKCg==
</data>
<flag name="review"
          id="118737"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118878</attachid>
            <date>2011-12-12 15:17:18 -0800</date>
            <delta_ts>2011-12-12 15:38:44 -0800</delta_ts>
            <desc>Get 32-bit building</desc>
            <filename>0017-Fixing-32-bit-build.patch</filename>
            <type>text/plain</type>
            <size>9014</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">RnJvbSA3YmMzOTk5N2JkNThlOTU0M2Q0ZGYwMmFmNzFmMzM4MDhkYTEzNTBiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJrIEhhaG5lbmJlcmcgPG1oYWhuZW5iZXJnQGFwcGxlLmNv
bT4KRGF0ZTogTW9uLCAxMiBEZWMgMjAxMSAxMToyNTozNSAtMDgwMApTdWJqZWN0OiBbUEFUQ0gg
MTcvMThdIEZpeGluZyAzMi1iaXQgYnVpbGQKCi0tLQogLi4uL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCAgfCAgICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAgICAgICB8ICAgMTggKysrKysrKysrLS0tLS0tLS0t
CiAuLi4vSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwICB8ICAg
MTAgKysrKystLS0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCAg
ICAgICAgICAgfCAgICAyIC0tCiA0IGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDE3
IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IGE1ZTdjNGIuLmVlZTdiMGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApA
QCAtMTcxMCw3ICsxNzEwLDcgQEAgSklUQ29tcGlsZXI6Okp1bXAgU3BlY3VsYXRpdmVKSVQ6OmNv
bnZlcnRUb0RvdWJsZShKU1ZhbHVlT3BlcmFuZCYgb3AsIEZQUlJlZyByZXMKICAgICByZXR1cm4g
bm90TnVtYmVyOwogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlT2JqZWN0RXF1YWxp
dHkoTm9kZSYgbm9kZSwgdm9pZCogY2xhc3NJbmZvLCBQcmVkaWN0aW9uQ2hlY2tlciBwcmVkaWN0
aW9uQ2hlY2spCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlT2JqZWN0RXF1YWxpdHkoTm9k
ZSYgbm9kZSwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8sIFByZWRpY3Rpb25DaGVja2VyIHBy
ZWRpY3Rpb25DaGVjaykKIHsKICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBvcDEodGhpcywgbm9k
ZS5jaGlsZDEoKSk7CiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3AyKHRoaXMsIG5vZGUuY2hp
bGQyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVz
MzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3Bw
CmluZGV4IDBjZWE0OWUuLjU5YzQyYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wY29kZXMzMl82NC5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgUGFzc1JlZlB0cjxFeGVjdXRh
YmxlTWVtb3J5SGFuZGxlPiBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVz
KEpTR2wKICAgICAvLyByZWdUMCBob2xkcyBwYXlsb2FkLCByZWdUMSBob2xkcyB0YWcKIAogICAg
IEp1bXAgc3RyaW5nX2ZhaWx1cmVDYXNlczEgPSBicmFuY2gzMihOb3RFcXVhbCwgcmVnVDEsIFRy
dXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSk7Ci0gICAgSnVtcCBzdHJpbmdfZmFpbHVyZUNh
c2VzMiA9IGJyYW5jaFB0cihOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMCksIFRydXN0ZWRJbW1QdHIo
bV9nbG9iYWxEYXRhLT5qc1N0cmluZ1ZQdHIpKTsKKyAgICBKdW1wIHN0cmluZ19mYWlsdXJlQ2Fz
ZXMyID0gYnJhbmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OmNsYXNzSW5m
b09mZnNldCgpKSwgVHJ1c3RlZEltbVB0cigmSlNTdHJpbmc6OnNfaW5mbykpOwogCiAgICAgLy8g
Q2hlY2tzIG91dCBva2F5ISAtIGdldCB0aGUgbGVuZ3RoIGZyb20gdGhlIFVzdHJpbmcuCiAgICAg
bG9hZDMyKEFkZHJlc3MocmVnVDAsIE9CSkVDVF9PRkZTRVRPRihKU1N0cmluZywgbV9sZW5ndGgp
KSwgcmVnVDIpOwpAQCAtNjcxLDcgKzY3MSw3IEBAIHZvaWQgSklUOjplbWl0X29wX3RvX3ByaW1p
dGl2ZShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRMb2FkKHNyYywg
cmVnVDEsIHJlZ1QwKTsKIAogICAgIEp1bXAgaXNJbW0gPSBicmFuY2gzMihOb3RFcXVhbCwgcmVn
VDEsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSk7Ci0gICAgYWRkU2xvd0Nhc2UoYnJh
bmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwKSwgVHJ1c3RlZEltbVB0cihtX2dsb2JhbERh
dGEtPmpzU3RyaW5nVlB0cikpKTsKKyAgICBhZGRTbG93Q2FzZShicmFuY2hQdHIoTm90RXF1YWws
IEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBUcnVzdGVkSW1tUHRy
KCZKU1N0cmluZzo6c19pbmZvKSkpOwogICAgIGlzSW1tLmxpbmsodGhpcyk7CiAKICAgICBpZiAo
ZHN0ICE9IHNyYykKQEAgLTk2Myw4ICs5NjMsOCBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZXEo
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+Ogog
ICAgIGdlbmVyaWNDYXNlLmFwcGVuZChnZXRTbG93Q2FzZShpdGVyKSk7IC8vIHRhZ3Mgbm90IGVx
dWFsCiAKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIHRhZ3MgZXF1YWwgYW5kIEpTQ2VsbAot
ICAgIGdlbmVyaWNDYXNlLmFwcGVuZChicmFuY2hQdHIoTm90RXF1YWwsIEFkZHJlc3MocmVnVDAp
LCBUcnVzdGVkSW1tUHRyKG1fZ2xvYmFsRGF0YS0+anNTdHJpbmdWUHRyKSkpOwotICAgIGdlbmVy
aWNDYXNlLmFwcGVuZChicmFuY2hQdHIoTm90RXF1YWwsIEFkZHJlc3MocmVnVDIpLCBUcnVzdGVk
SW1tUHRyKG1fZ2xvYmFsRGF0YS0+anNTdHJpbmdWUHRyKSkpOworICAgIGdlbmVyaWNDYXNlLmFw
cGVuZChicmFuY2hQdHIoTm90RXF1YWwsIEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6Y2xhc3NJbmZv
T2Zmc2V0KCkpLCBUcnVzdGVkSW1tUHRyKCZKU1N0cmluZzo6c19pbmZvKSkpOworICAgIGdlbmVy
aWNDYXNlLmFwcGVuZChicmFuY2hQdHIoTm90RXF1YWwsIEFkZHJlc3MocmVnVDIsIEpTQ2VsbDo6
Y2xhc3NJbmZvT2Zmc2V0KCkpLCBUcnVzdGVkSW1tUHRyKCZKU1N0cmluZzo6c19pbmZvKSkpOwog
CiAgICAgLy8gU3RyaW5nIGNhc2UuCiAgICAgSklUU3R1YkNhbGwgc3R1YkNhbGxFcVN0cmluZ3Mo
dGhpcywgY3RpX29wX2VxX3N0cmluZ3MpOwpAQCAtMTAxMSw4ICsxMDExLDggQEAgdm9pZCBKSVQ6
OmVtaXRTbG93X29wX25lcShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8
U2xvd0Nhc2VFbnRyeT4KICAgICBnZW5lcmljQ2FzZS5hcHBlbmQoZ2V0U2xvd0Nhc2UoaXRlcikp
OyAvLyB0YWdzIG5vdCBlcXVhbAogCiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyB0YWdzIGVx
dWFsIGFuZCBKU0NlbGwKLSAgICBnZW5lcmljQ2FzZS5hcHBlbmQoYnJhbmNoUHRyKE5vdEVxdWFs
LCBBZGRyZXNzKHJlZ1QwKSwgVHJ1c3RlZEltbVB0cihtX2dsb2JhbERhdGEtPmpzU3RyaW5nVlB0
cikpKTsKLSAgICBnZW5lcmljQ2FzZS5hcHBlbmQoYnJhbmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNz
KHJlZ1QyKSwgVHJ1c3RlZEltbVB0cihtX2dsb2JhbERhdGEtPmpzU3RyaW5nVlB0cikpKTsKKyAg
ICBnZW5lcmljQ2FzZS5hcHBlbmQoYnJhbmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwLCBK
U0NlbGw6OmNsYXNzSW5mb09mZnNldCgpKSwgVHJ1c3RlZEltbVB0cigmSlNTdHJpbmc6OnNfaW5m
bykpKTsKKyAgICBnZW5lcmljQ2FzZS5hcHBlbmQoYnJhbmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNz
KHJlZ1QyLCBKU0NlbGw6OmNsYXNzSW5mb09mZnNldCgpKSwgVHJ1c3RlZEltbVB0cigmSlNTdHJp
bmc6OnNfaW5mbykpKTsKIAogICAgIC8vIFN0cmluZyBjYXNlLgogICAgIEpJVFN0dWJDYWxsIHN0
dWJDYWxsRXFTdHJpbmdzKHRoaXMsIGN0aV9vcF9lcV9zdHJpbmdzKTsKQEAgLTEwNDgsOCArMTA0
OCw4IEBAIHZvaWQgSklUOjpjb21waWxlT3BTdHJpY3RFcShJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uLCBDb21waWxlT3BTdHJpY3RFcVR5CiAKICAgICAvLyBKdW1wIHRvIGEgc2xvdyBj
YXNlIGlmIGJvdGggYXJlIHN0cmluZ3MuCiAgICAgSnVtcCBub3RDZWxsID0gYnJhbmNoMzIoTm90
RXF1YWwsIHJlZ1QxLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpOwotICAgIEp1bXAg
Zmlyc3ROb3RTdHJpbmcgPSBicmFuY2hQdHIoTm90RXF1YWwsIEFkZHJlc3MocmVnVDApLCBUcnVz
dGVkSW1tUHRyKG1fZ2xvYmFsRGF0YS0+anNTdHJpbmdWUHRyKSk7Ci0gICAgYWRkU2xvd0Nhc2Uo
YnJhbmNoUHRyKEVxdWFsLCBBZGRyZXNzKHJlZ1QyKSwgVHJ1c3RlZEltbVB0cihtX2dsb2JhbERh
dGEtPmpzU3RyaW5nVlB0cikpKTsKKyAgICBKdW1wIGZpcnN0Tm90U3RyaW5nID0gYnJhbmNoUHRy
KE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OmNsYXNzSW5mb09mZnNldCgpKSwgVHJ1
c3RlZEltbVB0cigmSlNTdHJpbmc6OnNfaW5mbykpOworICAgIGFkZFNsb3dDYXNlKGJyYW5jaFB0
cihFcXVhbCwgQWRkcmVzcyhyZWdUMiwgSlNDZWxsOjpjbGFzc0luZm9PZmZzZXQoKSksIFRydXN0
ZWRJbW1QdHIoJkpTU3RyaW5nOjpzX2luZm8pKSk7CiAgICAgbm90Q2VsbC5saW5rKHRoaXMpOwog
ICAgIGZpcnN0Tm90U3RyaW5nLmxpbmsodGhpcyk7CiAKQEAgLTE1MjQsNyArMTUyNCw3IEBAIHZv
aWQgSklUOjplbWl0X29wX2NvbnZlcnRfdGhpcyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogICAgIGVtaXRMb2FkKHRoaXNSZWdpc3RlciwgcmVnVDEsIHJlZ1QwKTsKIAogICAgIGFk
ZFNsb3dDYXNlKGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6
OkNlbGxUYWcpKSk7Ci0gICAgYWRkU2xvd0Nhc2UoYnJhbmNoUHRyKEVxdWFsLCBBZGRyZXNzKHJl
Z1QwKSwgVHJ1c3RlZEltbVB0cihtX2dsb2JhbERhdGEtPmpzU3RyaW5nVlB0cikpKTsKKyAgICBh
ZGRTbG93Q2FzZShicmFuY2hQdHIoRXF1YWwsIEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6Y2xhc3NJ
bmZvT2Zmc2V0KCkpLCBUcnVzdGVkSW1tUHRyKCZKU1N0cmluZzo6c19pbmZvKSkpOwogCiAgICAg
bWFwKG1fYnl0ZWNvZGVPZmZzZXQgKyBPUENPREVfTEVOR1RIKG9wX2NvbnZlcnRfdGhpcyksIHRo
aXNSZWdpc3RlciwgcmVnVDEsIHJlZ1QwKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCmluZGV4IGZlYWY4YjguLmI3M2Q3
YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nl
c3MzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFj
Y2VzczMyXzY0LmNwcApAQCAtMTcxLDcgKzE3MSw3IEBAIEpJVDo6Q29kZVJlZiBKSVQ6OnN0cmlu
Z0dldEJ5VmFsU3R1YkdlbmVyYXRvcihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEpCiB7CiAgICAg
SlNJbnRlcmZhY2VKSVQgaml0OwogICAgIEp1bXBMaXN0IGZhaWx1cmVzOwotICAgIGZhaWx1cmVz
LmFwcGVuZChqaXQuYnJhbmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwKSwgVHJ1c3RlZElt
bVB0cihnbG9iYWxEYXRhLT5qc1N0cmluZ1ZQdHIpKSk7CisgICAgZmFpbHVyZXMuYXBwZW5kKGpp
dC5icmFuY2hQdHIoTm90RXF1YWwsIEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6Y2xhc3NJbmZvT2Zm
c2V0KCkpLCBUcnVzdGVkSW1tUHRyKCZKU1N0cmluZzo6c19pbmZvKSkpOwogICAgIAogICAgIC8v
IExvYWQgc3RyaW5nIGxlbmd0aCB0byByZWdUMSwgYW5kIHN0YXJ0IHRoZSBwcm9jZXNzIG9mIGxv
YWRpbmcgdGhlIGRhdGEgcG9pbnRlciBpbnRvIHJlZ1QwCiAgICAgaml0LmxvYWQzMihBZGRyZXNz
KHJlZ1QwLCBUaHVua0hlbHBlcnM6OmpzU3RyaW5nTGVuZ3RoT2Zmc2V0KCkpLCByZWdUMSk7CkBA
IC0yMTksNyArMjE5LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uKQogICAgIAogICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKE5v
dEVxdWFsLCByZWdUMywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSkpOwogICAgIGVt
aXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNlLCByZWdUMSk7Ci0gICAgYWRkU2xvd0Nhc2Uo
YnJhbmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwKSwgVHJ1c3RlZEltbVB0cihtX2dsb2Jh
bERhdGEtPmpzQXJyYXlWUHRyKSkpOworICAgIGFkZFNsb3dDYXNlKGJyYW5jaFB0cihOb3RFcXVh
bCwgQWRkcmVzcyhyZWdUMCwgSlNDZWxsOjpjbGFzc0luZm9PZmZzZXQoKSksIFRydXN0ZWRJbW1Q
dHIoJkpTQXJyYXk6OnNfaW5mbykpKTsKICAgICAKICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDAs
IEpTQXJyYXk6OnN0b3JhZ2VPZmZzZXQoKSksIHJlZ1QzKTsKICAgICBhZGRTbG93Q2FzZShicmFu
Y2gzMihBYm92ZU9yRXF1YWwsIHJlZ1QyLCBBZGRyZXNzKHJlZ1QwLCBKU0FycmF5Ojp2ZWN0b3JM
ZW5ndGhPZmZzZXQoKSkpKTsKQEAgLTI0NCw3ICsyNDQsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3df
b3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xv
d0NhcwogCiAgICAgSnVtcCBub25DZWxsID0ganVtcCgpOwogICAgIGxpbmtTbG93Q2FzZShpdGVy
KTsgLy8gYmFzZSBhcnJheSBjaGVjawotICAgIEp1bXAgbm90U3RyaW5nID0gYnJhbmNoUHRyKE5v
dEVxdWFsLCBBZGRyZXNzKHJlZ1QwKSwgVHJ1c3RlZEltbVB0cihtX2dsb2JhbERhdGEtPmpzU3Ry
aW5nVlB0cikpOworICAgIEp1bXAgbm90U3RyaW5nID0gYnJhbmNoUHRyKE5vdEVxdWFsLCBBZGRy
ZXNzKHJlZ1QwLCBKU0NlbGw6OmNsYXNzSW5mb09mZnNldCgpKSwgVHJ1c3RlZEltbVB0cigmSlNT
dHJpbmc6OnNfaW5mbykpOwogICAgIGVtaXROYWtlZENhbGwobV9nbG9iYWxEYXRhLT5nZXRDVElT
dHViKHN0cmluZ0dldEJ5VmFsU3R1YkdlbmVyYXRvcikuY29kZSgpKTsKICAgICBKdW1wIGZhaWxl
ZCA9IGJyYW5jaFRlc3RQdHIoWmVybywgcmVnVDApOwogICAgIGVtaXRTdG9yZShkc3QsIHJlZ1Qx
LCByZWdUMCk7CkBAIC0yNzQsNyArMjc0LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X3Zh
bChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIAogICAgIGFkZFNsb3dDYXNl
KGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkludDMyVGFn
KSkpOwogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNlLCByZWdUMSk7Ci0gICAg
YWRkU2xvd0Nhc2UoYnJhbmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwKSwgVHJ1c3RlZElt
bVB0cihtX2dsb2JhbERhdGEtPmpzQXJyYXlWUHRyKSkpOworICAgIGFkZFNsb3dDYXNlKGJyYW5j
aFB0cihOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMCwgSlNDZWxsOjpjbGFzc0luZm9PZmZzZXQoKSks
IFRydXN0ZWRJbW1QdHIoJkpTQXJyYXk6OnNfaW5mbykpKTsKICAgICBhZGRTbG93Q2FzZShicmFu
Y2gzMihBYm92ZU9yRXF1YWwsIHJlZ1QyLCBBZGRyZXNzKHJlZ1QwLCBKU0FycmF5Ojp2ZWN0b3JM
ZW5ndGhPZmZzZXQoKSkpKTsKIAogICAgIGVtaXRXcml0ZUJhcnJpZXIocmVnVDAsIHJlZ1QxLCBy
ZWdUMSwgcmVnVDMsIFVuY29uZGl0aW9uYWxXcml0ZUJhcnJpZXIsIFdyaXRlQmFycmllckZvclBy
b3BlcnR5QWNjZXNzKTsKQEAgLTYwNiw3ICs2MDYsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBp
bGVQYXRjaEdldEFycmF5TGVuZ3RoKFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcykKICAg
ICAvLyByZWdUMCBob2xkcyBhIEpTQ2VsbCoKICAgICAKICAgICAvLyBDaGVjayBmb3IgYXJyYXkK
LSAgICBKdW1wIGZhaWx1cmVDYXNlczEgPSBicmFuY2hQdHIoTm90RXF1YWwsIEFkZHJlc3MocmVn
VDApLCBUcnVzdGVkSW1tUHRyKG1fZ2xvYmFsRGF0YS0+anNBcnJheVZQdHIpKTsKKyAgICBKdW1w
IGZhaWx1cmVDYXNlczEgPSBicmFuY2hQdHIoTm90RXF1YWwsIEFkZHJlc3MocmVnVDAsIEpTQ2Vs
bDo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBUcnVzdGVkSW1tUHRyKCZKU0FycmF5OjpzX2luZm8pKTsK
ICAgICAKICAgICAvLyBDaGVja3Mgb3V0IG9rYXkhIC0gZ2V0IHRoZSBsZW5ndGggZnJvbSB0aGUg
c3RvcmFnZQogICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMCwgSlNBcnJheTo6c3RvcmFnZU9mZnNl
dCgpKSwgcmVnVDIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5k
ZXggYmY1NjQ3ZS4uNjFmNmM2MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5oCkBAIC0zNzQsOCArMzc0LDYgQEAgQ09NUElMRV9BU1NFUlQoKEpTRmluYWxPYmplY3Rf
aW5saW5lU3RvcmFnZUNhcGFjaXR5ID49IEpTTm9uRmluYWxPYmplY3RfaW5saW5lU3QKICAgICAg
ICAgewogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHZ0YWJsZUFuY2hvcigpOwot
CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTT2JqZWN0
OjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgICAgICBXcml0ZUJhcnJpZXJCYXNlPFVua25vd24+IG1f
aW5saW5lU3RvcmFnZVtKU0ZpbmFsT2JqZWN0X2lubGluZVN0b3JhZ2VDYXBhY2l0eV07Ci0tIAox
LjcuNC40Cgo=
</data>
<flag name="review"
          id="118739"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118879</attachid>
            <date>2011-12-12 15:17:51 -0800</date>
            <delta_ts>2011-12-12 15:39:15 -0800</delta_ts>
            <desc>Getting Windows building</desc>
            <filename>0018-Getting-windows-building.patch</filename>
            <type>text/plain</type>
            <size>5340</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">RnJvbSBhYzM5MzFhMTJjMGQxNjFmNzE1OWQyYTUzYWRlYTcwMTM1OWJkMzIzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJrIEhhaG5lbmJlcmcgPG1oYWhuZW5iZXJnQGFwcGxlLmNv
bT4KRGF0ZTogTW9uLCAxMiBEZWMgMjAxMSAxMzoyNjowMCAtMDgwMApTdWJqZWN0OiBbUEFUQ0gg
MTgvMThdIEdldHRpbmcgd2luZG93cyBidWlsZGluZwoKLS0tCiAuLi4vSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUuZGVmICAgICAgICAgICAgICB8ICAgMTAgKysrKy0tLS0tLQogU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwICAgfCAgICAxICsKIFNv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZiAgICAgICAgICAgICAgICAgICAgIHwgICAgMyAr
Ky0KIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZiAgICAgICAgICAgICAgIHwg
ICAgMSAtCiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyICAgICAgICAgICAgICAgICAg
ICB8ICAgIDEgLQogNSBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25z
KC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
cHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LmRlZgppbmRleCBmZmQ1YTUyLi5mYzUxNmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LmRlZgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtMzMsMTEgKzMzLDkgQEAgRVhQT1JU
UwogICAgID8/MURlYnVnZ2VyQEpTQ0BAVUFFQFhaCiAgICAgPz8xRHJvcEFsbExvY2tzQEpTTG9j
a0BKU0NAQFFBRUBYWgogICAgID8/MUpTR2xvYmFsRGF0YUBKU0NAQFFBRUBYWgotICAgID8/MUpT
R2xvYmFsT2JqZWN0QEpTQ0BAVUFFQFhaCi0gICAgPz8xSlNWYXJpYWJsZU9iamVjdEBKU0NAQFVB
RUBYWgorICAgPz8xSlNHbG9iYWxPYmplY3RASlNDQEBRQUVAWFoKICAgICA/PzFNdXRleEBXVEZA
QFFBRUBYWgogICAgID8/MVJlZkNvdW50ZWRMZWFrQ291bnRlckBXVEZAQFFBRUBYWgotICAgID8/
MVNjb3BlQ2hhaW5Ob2RlQEpTQ0BARUFFQFhaCiAgICAgPz8xU291cmNlUHJvdmlkZXJDYWNoZUBK
U0NAQFFBRUBYWgogICAgID8/MVRocmVhZENvbmRpdGlvbkBXVEZAQFFBRUBYWgogICAgID8/MVdU
RlRocmVhZERhdGFAV1RGQEBRQUVAWFoKQEAgLTE1OCw2ICsxNTYsOSBAQCBFWFBPUlRTCiAgICAg
P2Rlc3BlY2lmeURpY3Rpb25hcnlGdW5jdGlvbkBTdHJ1Y3R1cmVASlNDQEBRQUVYQUFWSlNHbG9i
YWxEYXRhQDJAQUJWSWRlbnRpZmllckAyQEBaCiAgICAgP2Rlc3BlY2lmeUZ1bmN0aW9uVHJhbnNp
dGlvbkBTdHJ1Y3R1cmVASlNDQEBTQVBBVjEyQEFBVkpTR2xvYmFsRGF0YUAyQFBBVjEyQEFCVklk
ZW50aWZpZXJAMkBAWgogICAgID9kZXN0cm95QEhlYXBASlNDQEBRQUVYWFoKKyAgICA/ZGVzdHJv
eUBKU0J5dGVBcnJheUBKU0NAQFNBWFBBVkpTQ2VsbEAyQEBaCisgICAgP2Rlc3Ryb3lASlNHbG9i
YWxPYmplY3RASlNDQEBTQVhQQVZKU0NlbGxAMkBAWgorICAgID9kZXN0cm95QEpTTm9uRmluYWxP
YmplY3RASlNDQEBTQVhQQVZKU0NlbGxAMkBAWgogICAgID9kZXRhY2hARGVidWdnZXJASlNDQEBV
QUVYUEFWSlNHbG9iYWxPYmplY3RAMkBAWgogICAgID9kZXRhY2hUaHJlYWRAV1RGQEBZQVhJQFoK
ICAgICA/ZGlkVGltZU91dEBUaW1lb3V0Q2hlY2tlckBKU0NAQFFBRV9OUEFWRXhlY1N0YXRlQDJA
QFoKQEAgLTM2Myw5ICszNjQsNiBAQCBFWFBPUlRTCiAgICAgP3Zpc2l0Q2hpbGRyZW5ASlNHbG9i
YWxPYmplY3RASlNDQEBTQVhQQVZKU0NlbGxAMkBBQVZTbG90VmlzaXRvckAyQEBaCiAgICAgP3Zp
c2l0Q2hpbGRyZW5ASlNHbG9iYWxUaGlzQEpTQ0BAS0FYUEFWSlNDZWxsQDJAQUFWU2xvdFZpc2l0
b3JAMkBAWgogICAgID92aXNpdENoaWxkcmVuQEpTT2JqZWN0QEpTQ0BAU0FYUEFWSlNDZWxsQDJA
QUFWU2xvdFZpc2l0b3JAMkBAWgotICAgID92dGFibGVBbmNob3JASW50ZXJuYWxGdW5jdGlvbkBK
U0NAQEVBRVhYWgotICAgID92dGFibGVBbmNob3JASlNGaW5hbE9iamVjdEBKU0NAQEVBRVhYWgot
ICAgID92dGFibGVBbmNob3JASlNPYmplY3RASlNDQEBVQUVYWFoKICAgICA/d2FpdEBUaHJlYWRD
b25kaXRpb25AV1RGQEBRQUVYQUFWTXV0ZXhAMkBAWgogICAgID93YWl0Rm9yVGhyZWFkQ29tcGxl
dGlvbkBXVEZAQFlBSElQQVBBWEBaCiAgICAgP3dyaXRhYmxlQFByb3BlcnR5RGVzY3JpcHRvckBK
U0NAQFFCRV9OWFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
R2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmNwcAppbmRleCAwZjM5ZDE0Li4xMjQ2MTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCkBAIC03Myw2ICs3Myw3IEBAIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIEpTRE9NR2xvYmFsT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgY29uc3QKICAgICBpZiAoaW5oZXJpdHMoJkpTV29ya2VyQ29udGV4dEJhc2U6OnNf
aW5mbykpCiAgICAgICAgIHJldHVybiBqc0Nhc3Q8Y29uc3QgSlNXb3JrZXJDb250ZXh0QmFzZSo+
KHRoaXMpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuIDA7CiB9CiAKIHZvaWQgSlNET01HbG9iYWxPYmplY3Q6OnZpc2l0Q2hp
bGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
LmRlZgppbmRleCBiNDZmMTU5Li41OWUxMjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0Mi5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCkBAIC0x
NjgsNiArMTY4LDggQEAgRVhQT1JUUwogICAgICAgICA/cGFpbnRDb250cm9sVGludHNARnJhbWVW
aWV3QFdlYkNvcmVAQEFBRVhYWgogICAgICAgICA/cmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5ndGhA
VGV4dEl0ZXJhdG9yQFdlYkNvcmVAQFNBP0FWPyRQYXNzUmVmUHRyQFZSYW5nZUBXZWJDb3JlQEBA
V1RGQEBQQVZFbGVtZW50QDJASEhfTkBaCiAgICAgICAgID9yZW1vdmVTaGFkb3dSb290QEVsZW1l
bnRAV2ViQ29yZUBAUUFFWFhaCisgICAgICAgID9zX2luZm9ASlNET01XcmFwcGVyQFdlYkNvcmVA
QDJVQ2xhc3NJbmZvQEpTQ0BAQgorICAgICAgICA/c2NyaXB0RXhlY3V0aW9uQ29udGV4dEBKU0RP
TUdsb2JhbE9iamVjdEBXZWJDb3JlQEBRQkVQQVZTY3JpcHRFeGVjdXRpb25Db250ZXh0QDJAWFoK
ICAgICAgICAgP3Njcm9sbEVsZW1lbnRUb1JlY3RARnJhbWVWaWV3QFdlYkNvcmVAQFFBRVhQQVZF
bGVtZW50QDJAQUJWSW50UmVjdEAyQEBaCiAgICAgICAgID9zZXRTaG91bGRMYXlvdXRGaXhlZEVs
ZW1lbnRzUmVsYXRpdmVUb0ZyYW1lQEZyYW1lVmlld0BXZWJDb3JlQEBRQUVYX05AWgogICAgICAg
ICA/c2V0RE9NRXhjZXB0aW9uQFdlYkNvcmVAQFlBWFBBVkV4ZWNTdGF0ZUBKU0NAQEhAWgpAQCAt
MTg5LDQgKzE5MSwzIEBAIEVYUE9SVFMKICAgICAgICAgP3RvUmFuZ2VAV2ViQ29yZUBAWUFQQVZS
YW5nZUAxQFZKU1ZhbHVlQEpTQ0BAQFoKICAgICAgICAgP3VwZGF0ZUxheW91dElnbm9yZVBlbmRp
bmdTdHlsZXNoZWV0c0BEb2N1bWVudEBXZWJDb3JlQEBRQUVYWFoKICAgICAgICAgP3ZpZXdARG9j
dW1lbnRAV2ViQ29yZUBAUUJFUEFWRnJhbWVWaWV3QDJAWFoKLSAgICAgICAgP3ZpcnR1YWxGdW5j
dGlvblRvUHJldmVudFdlYWtWdGFibGVASlNET01XcmFwcGVyQFdlYkNvcmVAQE1BRVhYWgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmIGIvU291cmNlL1dl
YktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCmluZGV4IGU1N2RjZGIuLmYwYmYxOGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKQEAgLTE4Miw0ICsxODIsMyBAQCBFWFBPUlRT
CiAgICAgICAgID90b1JhbmdlQFdlYkNvcmVAQFlBUEFWUmFuZ2VAMUBWSlNWYWx1ZUBKU0NAQEBa
CiAgICAgICAgID91cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHNARG9jdW1lbnRA
V2ViQ29yZUBAUUFFWFhaCiAgICAgICAgID92aWV3QERvY3VtZW50QFdlYkNvcmVAQFFCRVBBVkZy
YW1lVmlld0AyQFhaCi0gICAgICAgID92aXJ0dWFsRnVuY3Rpb25Ub1ByZXZlbnRXZWFrVnRhYmxl
QEpTRE9NV3JhcHBlckBXZWJDb3JlQEBNQUVYWFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9v
bHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4
IDQwY2I3OGIuLmVjYmRmZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5m
aWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtNDEsNyArNDEs
NiBAQCBfWk43V2ViQ29yZTEwQ2xpZW50UmVjdEMxRXY7CiBfWk43V2ViQ29yZTEwQ2xpZW50UmVj
dEMxRVJLTlNfN0ludFJlY3RFOwogX1pON1dlYkNvcmUxMUV2ZW50VGFyZ2V0MTd0b0dlbmVyYXRl
ZFN0cmVhbUV2OwogX1pON1dlYkNvcmUxMUV2ZW50VGFyZ2V0OHRvU3RyZWFtRXY7Ci1fWk43V2Vi
Q29yZTEySlNET01XcmFwcGVyMzR2aXJ0dWFsRnVuY3Rpb25Ub1ByZXZlbnRXZWFrVnRhYmxlRXY7
CiBfWk43V2ViQ29yZTEyVGV4dEl0ZXJhdG9yMjZyYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0aEVQ
TlNfN0VsZW1lbnRFaWliOwogX1pON1dlYkNvcmUxMlRleHRJdGVyYXRvcjI5Z2V0TG9jYXRpb25B
bmRMZW5ndGhGcm9tUmFuZ2VFUE5TXzdFbGVtZW50RVBLTlNfNVJhbmdlRVJqUzZfOwogX1pON1dl
YkNvcmUxMlRleHRJdGVyYXRvcjI5Z2V0TG9jYXRpb25BbmRMZW5ndGhGcm9tUmFuZ2VFUE5TXzdF
bGVtZW50RVBLTlNfNVJhbmdlRVJtUzZfOwotLSAKMS43LjQuNAoK
</data>
<flag name="review"
          id="118740"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>