<?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>66004</bug_id>
          
          <creation_ts>2011-08-10 12:39:57 -0700</creation_ts>
          <short_desc>Remove ifdefs for CSS exclusions and CSS regions</short_desc>
          <delta_ts>2012-07-23 23:26:30 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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>
          
          <blocked>57312</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          <cc>mihnea</cc>
    
    <cc>peter</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>449310</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-08-10 12:39:57 -0700</bug_when>
    <thetext>CSS Exclusions have morphed into a different feature: positioned floats, and I don&apos;t want to try to maintain ifdefs in the float code for this, since that will just get pointlessly complicated. Regions also I would like to just turn on, since I expect them to share a bit of code with columns eventually, and I don&apos;t want that forked either. The specs are coming along, and I think it&apos;s ok to just have this on by default now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449313</commentid>
    <comment_count>1</comment_count>
      <attachid>103519</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-08-10 12:43:20 -0700</bug_when>
    <thetext>Created attachment 103519
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449334</commentid>
    <comment_count>2</comment_count>
      <attachid>103519</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-08-10 13:01:36 -0700</bug_when>
    <thetext>Comment on attachment 103519
Patch

There are other FeatureDefines.xcconfig files that need to be modified (in places like Source/WebKit2/Configurations, e.g.). And you need to modify WebKitLibraries/win/tools/vsprops/FeatureDefines.*. And maybe other places for other ports, too. And you&apos;ll need to modify build-webkit to remove the Regions-related flags, and the files in Tools/BuildSlaveSupport/build.webkit.org-config that control how the CSSRegions bot operates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449347</commentid>
    <comment_count>3</comment_count>
      <attachid>103525</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-08-10 13:16:59 -0700</bug_when>
    <thetext>Created attachment 103525
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449348</commentid>
    <comment_count>4</comment_count>
      <attachid>103525</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-08-10 13:20:44 -0700</bug_when>
    <thetext>Comment on attachment 103525
Patch v2

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

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/config.json:259
&gt; -                    }
&gt; +                    }                    }

Whoops.

You also need to delete the declaration of adobe-mac-slave1 higher up in the file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449365</commentid>
    <comment_count>5</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-08-10 13:37:11 -0700</bug_when>
    <thetext>Fixed in r92792.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449596</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-10 22:17:40 -0700</bug_when>
    <thetext>This patch deleted the PlatformSpecificSchedule for all SnowLeopard bots :(.  Fixed in http://trac.webkit.org/changeset/92820.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103519</attachid>
            <date>2011-08-10 12:43:20 -0700</date>
            <delta_ts>2011-08-10 13:16:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>49508</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyNzg0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNzUgQEAKKzIwMTEtMDgtMTAgIERhdmlkIEh5
YXR0ICA8aHlhdHRAYXBwbGUuY29tPgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NjAwNAorCisgICAgICAgIFJlbW92ZSBpZmRlZnMgZm9yIENTUyBF
eGNsdXNpb25zIChzaW5jZSB0aGUgZmVhdHVyZSBkb2Vzbid0IGV4aXN0IGFueSBsb25nZXIgYW5k
IGhhcyBtb3JwaGVkIGludG8gcG9zaXRpb25lZAorICAgICAgICBmbG9hdHMgaW5zdGVhZCkuIEdv
IGFoZWFkIGFuZCB5YW5rIHRoZSBpZmRlZnMgZm9yIENTUyBSZWdpb25zIGFsc28gYW5kIGp1c3Qg
dHVybiB0aGVtIG9uLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWc6CisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3Bl
cnR5Q1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNl
cjo6cGFyc2VDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VXcmFw
U2hhcGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUZyb21GbG93Q29udGVu
dCk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5oOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRp
dmVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6aW5pdCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y2xlYW51cCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Z2V0U3RyaW5nVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmNzc1RleHQpOgorICAgICAgICAqIGNzcy9DU1NQ
cmltaXRpdmVWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Omdl
dFNoYXBlVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgUmVnaW9uT3Zl
cmZsb3cpOgorICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0eU5hbWVzLmluOgorICAgICAgICAqIGNz
cy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0
b3I6OmFwcGx5UHJvcGVydHkpOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgor
ICAgICAgICAqIGNzcy9DU1NXcmFwU2hhcGVzLmNwcDoKKyAgICAgICAgKiBjc3MvQ1NTV3JhcFNo
YXBlcy5oOgorICAgICAgICAqIGNzcy9TVkdDU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAq
IGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmRpZmYpOgorICAgICAgICAq
IGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmVu
ZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZVJlbmRlcmluZ0NvbnRleHQ6OnNldFN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVS
ZW5kZXJpbmdDb250ZXh0OjpuZXh0UmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJl
bmRlcmluZ0NvbnRleHQ6OnByZXZpb3VzUmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZVJlbmRlcmluZ0NvbnRleHQ6OnBhcmVudFJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGVSZW5kZXJpbmdDb250ZXh0Ojptb3ZlVG9GbG93VGhyZWFkSWZOZWVkZWQpOgorICAgICAgICAo
V2ViQ29yZTo6Tm9kZVJlbmRlcmVyRmFjdG9yeTo6Y3JlYXRlUmVuZGVyZXJJZk5lZWRlZCk6Cisg
ICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckZsb3dUaHJlYWQuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhy
ZWFkLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjpjb2xsZWN0TGF5ZXJzKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6Y3JlYXRl
T2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmlzUmVuZGVyUmVnaW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck9iamVjdDo6aXNSZW5kZXJGbG93VGhyZWFkKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyUmVnaW9uLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6d3JpdGVMYXllcnMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OnJlbmRlckZsb3dUaHJlYWRXaXRoTmFtZSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmRpZmYp
OgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6SW5oZXJpdGVkRmxhZ3M6OnJlZ2lvbk92ZXJmbG93KToKKyAgICAgICAgKFdlYkNvcmU6
OkluaGVyaXRlZEZsYWdzOjpzZXRSZWdpb25PdmVyZmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpJ
bmhlcml0ZWRGbGFnczo6aW5pdGlhbFdyYXBTaGFwZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmhl
cml0ZWRGbGFnczo6aW5pdGlhbFJlZ2lvbk92ZXJmbG93KToKKyAgICAgICAgKiByZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJh
cmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0pOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmg6CisKIDIwMTEt
MDgtMTAgIEtlbmljaGkgSXNoaWJhc2hpICA8YmFzaGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFtDaHJvbWl1bV0gSW1wbGVtZW50IHRleHQgc2hhcGluZyB3aXRoIGZvbnQtZmVhdHVyZS1zZXR0
aW5ncyBvbiBMaW51eApJbmRleDogU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHJldmlzaW9uIDkyNzc0KQorKysgU291cmNl
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcg
Y29weSkKQEAgLTU0LDggKzU0LDYgQEAgRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyA9IDsK
IEVOQUJMRV9BTklNQVRJT05fQVBJID0gOwogRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HID0gRU5B
QkxFX0NIQU5ORUxfTUVTU0FHSU5HOwogRU5BQkxFX0NTUzNfRkxFWEJPWCA9IDsKLUVOQUJMRV9D
U1NfRVhDTFVTSU9OUyA9IDsKLUVOQUJMRV9DU1NfUkVHSU9OUyA9IDsKIEVOQUJMRV9EQVRBQkFT
RSA9IEVOQUJMRV9EQVRBQkFTRTsKIEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TID0gOwogRU5B
QkxFX0RFVEFJTFMgPSBFTkFCTEVfREVUQUlMUzsKQEAgLTEwMCw0ICs5OCw0IEBAIEVOQUJMRV9Y
SFRNTE1QID0gOwogRU5BQkxFX1hQQVRIID0gRU5BQkxFX1hQQVRIOwogRU5BQkxFX1hTTFQgPSBF
TkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAk
KEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FOSU1BVElPTl9BUEkpICQo
RU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRf
QkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0NTUzNfRkxFWEJPWCkgJChFTkFCTEVfQ1NTX0VY
Q0xVU0lPTlMpICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFC
TEVfREFUQUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJ
TFMpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9B
RCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9G
SUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQo
RU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVY
RURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gp
ICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQo
RU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJf
VEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNB
VElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RB
RykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQo
RU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJ
T04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdT
KSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFC
TEVfU1ZHX1VTRSkgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9WSURFTykg
JChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8p
ICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JL
RVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CitG
RUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJB
VEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChF
TkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElP
TikgJChFTkFCTEVfQ1NTM19GTEVYQk9YKSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFU
QUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQo
RU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChF
TkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxFX1NZ
U1RFTSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxF
X0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFU
QUJBU0UpICQoRU5BQkxFX0lOUFVUX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5B
QkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxF
X01BVEhNTCkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfVEFHKSAk
KEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMp
ICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChF
TkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxF
X1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQo
RU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVO
QUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZH
X1VTRSkgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9WSURFTykgJChFTkFC
TEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5B
QkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAk
KEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cAkocmV2aXNpb24gOTI3NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQ3LDEyICsyNDcsMTAgQEAgc3Rh
dGljIGNvbnN0IGludCBjb21wdXRlZFByb3BlcnRpZXNbXSA9IAogICAgIENTU1Byb3BlcnR5V2Vi
a2l0VXNlckRyYWcsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRVc2VyTW9kaWZ5LAogICAgIENTU1By
b3BlcnR5V2Via2l0VXNlclNlbGVjdCwKLSAgICBDU1NQcm9wZXJ0eVdlYmtpdFdyaXRpbmdNb2Rl
Ci0jaWYgRU5BQkxFKENTU19SRUdJT05TKQotICAgICwgQ1NTUHJvcGVydHlXZWJraXRGbG93Ci0g
ICAgLCBDU1NQcm9wZXJ0eVdlYmtpdENvbnRlbnRPcmRlcgotICAgICwgQ1NTUHJvcGVydHlXZWJr
aXRSZWdpb25PdmVyZmxvdwotI2VuZGlmCisgICAgQ1NTUHJvcGVydHlXZWJraXRXcml0aW5nTW9k
ZSwKKyAgICBDU1NQcm9wZXJ0eVdlYmtpdEZsb3csCisgICAgQ1NTUHJvcGVydHlXZWJraXRDb250
ZW50T3JkZXIsCisgICAgQ1NTUHJvcGVydHlXZWJraXRSZWdpb25PdmVyZmxvdwogI2lmIEVOQUJM
RShTVkcpCiAgICAgLAogICAgIENTU1Byb3BlcnR5Q2xpcFBhdGgsCkBAIC0xNjgxLDcgKzE2Nzks
NiBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjCiAgICAgICAgICAg
ICByZXR1cm4gY291bnRlclRvQ1NTVmFsdWUoc3R5bGUuZ2V0KCksIHByb3BlcnR5SUQsIHByaW1p
dGl2ZVZhbHVlQ2FjaGUpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5Q291bnRlclJlc2V0Ogog
ICAgICAgICAgICAgcmV0dXJuIGNvdW50ZXJUb0NTU1ZhbHVlKHN0eWxlLmdldCgpLCBwcm9wZXJ0
eUlELCBwcmltaXRpdmVWYWx1ZUNhY2hlKTsKLSNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRGbG93OgogICAgICAgICAgICAgaWYgKHN0eWxlLT5m
bG93VGhyZWFkKCkuaXNOdWxsKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHByaW1pdGl2ZVZh
bHVlQ2FjaGUtPmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOwpAQCAtMTY5MCw3
ICsxNjg3LDcgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlYwogICAg
ICAgICAgICAgcmV0dXJuIHByaW1pdGl2ZVZhbHVlQ2FjaGUtPmNyZWF0ZVZhbHVlKHN0eWxlLT5y
ZWdpb25JbmRleCgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUik7CiAgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRSZWdpb25PdmVyZmxvdzoKICAgICAgICAgICAgIHJldHVybiBw
cmltaXRpdmVWYWx1ZUNhY2hlLT5jcmVhdGVWYWx1ZShzdHlsZS0+cmVnaW9uT3ZlcmZsb3coKSk7
Ci0jZW5kaWYKKwogICAgICAgICAvKiBTaG9ydGhhbmQgcHJvcGVydGllcywgY3VycmVudGx5IG5v
dCBzdXBwb3J0ZWQgc2VlIGJ1ZyAxMzY1OCovCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNr
Z3JvdW5kOgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyOgpAQCAtMTc5OSwxMyArMTc5
NiwxMSBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjCiAgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2l0aW9uOgogICAgICAgICAgICAgYnJlYWs7CiAK
LSNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJr
aXRXcmFwU2hhcGU6CiAgICAgICAgICAgICBpZiAoIXN0eWxlLT53cmFwU2hhcGUoKSkKICAgICAg
ICAgICAgICAgICByZXR1cm4gcHJpbWl0aXZlVmFsdWVDYWNoZS0+Y3JlYXRlSWRlbnRpZmllclZh
bHVlKENTU1ZhbHVlQXV0byk7CiAKICAgICAgICAgICAgIHJldHVybiBwcmltaXRpdmVWYWx1ZUNh
Y2hlLT5jcmVhdGVWYWx1ZShzdHlsZS0+d3JhcFNoYXBlKCkpOwotI2VuZGlmCiAKICNpZiBFTkFC
TEUoU1ZHKQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5Q2xpcFBhdGg6CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcAkocmV2aXNpb24gOTI3NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU4OSw3ICsxNTg5LDcgQEAgYm9vbCBD
U1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgogICAgICAgICAgICAgdmFsaWRQcmlt
aXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZUaW1lIHwgRkludGVnZXIgfCBGTm9uTmVnLCBtX3N0
cmljdCk7CiAgICAgICAgIGJyZWFrOwogI2VuZGlmCi0jaWYgRU5BQkxFKENTU19SRUdJT05TKQor
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZsb3c6CiAgICAgICAgIHJldHVybiBwYXJzZUZs
b3dUaHJlYWQocHJvcElkLCBpbXBvcnRhbnQpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRD
b250ZW50T3JkZXI6CkBAIC0xNTk5LDcgKzE1OTksNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VW
YWx1ZShpbnQgcHJvcElkLCBiCiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUF1dG8gfHwgaWQg
PT0gQ1NTVmFsdWVXZWJraXRCcmVhaykKICAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1
ZTsKICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKKwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRV
c2VyRHJhZzogLy8gYXV0byB8IG5vbmUgfCBlbGVtZW50CiAgICAgICAgIGlmIChpZCA9PSBDU1NW
YWx1ZUF1dG8gfHwgaWQgPT0gQ1NTVmFsdWVOb25lIHx8IGlkID09IENTU1ZhbHVlRWxlbWVudCkK
ICAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKQEAgLTIwOTIsMTQgKzIwOTIsMTIg
QEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgogICAgICAgICAgICAg
cmV0dXJuIHBhcnNlRm9udEZlYXR1cmVTZXR0aW5ncyhpbXBvcnRhbnQpOwogICAgICAgICBicmVh
azsKIAotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0V3JhcFNoYXBlOgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVBdXRvKQogICAgICAgICAg
ICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlIGlmICh2YWx1ZS0+dW5pdCA9
PSBDU1NQYXJzZXJWYWx1ZTo6RnVuY3Rpb24pCiAgICAgICAgICAgICByZXR1cm4gcGFyc2VXcmFw
U2hhcGUoaW1wb3J0YW50KTsKICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShT
VkcpCiAgICAgZGVmYXVsdDoKQEAgLTI2ODEsMTIgKzI2NzksMTAgQEAgYm9vbCBDU1NQYXJzZXI6
OnBhcnNlQ29udGVudChpbnQgcHJvcElkLAogICAgICAgICAgICAgfSBlbHNlIGlmIChpc0dlbmVy
YXRlZEltYWdlVmFsdWUodmFsKSkgewogICAgICAgICAgICAgICAgIGlmICghcGFyc2VHZW5lcmF0
ZWRJbWFnZShwYXJzZWRWYWx1ZSkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAgICAgICAgICB9IGVsc2UgaWYgKGVxdWFsSWdu
b3JpbmdDYXNlKHZhbC0+ZnVuY3Rpb24tPm5hbWUsICItd2Via2l0LWZyb20tZmxvdygiKSkgewog
ICAgICAgICAgICAgICAgIHBhcnNlZFZhbHVlID0gcGFyc2VGcm9tRmxvd0NvbnRlbnQoYXJncyk7
CiAgICAgICAgICAgICAgICAgaWYgKCFwYXJzZWRWYWx1ZSkKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotI2VuZGlmCiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0gZWxzZSBpZiAodmFsLT51bml0ID09IENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfSURFTlQpIHsKQEAgLTM2NzMsNyArMzY2OSw2IEBAIGJvb2wgQ1NTUGFy
c2VyOjpwYXJzZVNoYXBlKGludCBwcm9wSWQsIGIKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLSNp
ZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiBQYXNzUmVmUHRyPENTU1dyYXBTaGFwZT4gQ1NTUGFy
c2VyOjpwYXJzZVdyYXBTaGFwZVJlY3QoQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzKQogewogICAg
IEFTU0VSVChhcmdzKTsKQEAgLTM4OTksNyArMzg5NCw2IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJz
ZVdyYXBTaGFwZShib29sIGltcG8KIAogICAgIHJldHVybiBmYWxzZTsKIH0KLSNlbmRpZiAvLyBF
TkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAKIC8vIFsgJ2ZvbnQtc3R5bGUnIHx8ICdmb250LXZhcmlh
bnQnIHx8ICdmb250LXdlaWdodCcgXT8gJ2ZvbnQtc2l6ZScgWyAvICdsaW5lLWhlaWdodCcgXT8g
J2ZvbnQtZmFtaWx5JwogYm9vbCBDU1NQYXJzZXI6OnBhcnNlRm9udChib29sIGltcG9ydGFudCkK
QEAgLTYwOTQsNyArNjA4OCw2IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWVMaXN0PiBDU1NQYXJzZXI6
OnBhcnMKICAgICByZXR1cm4gbGlzdC5yZWxlYXNlKCk7CiB9CiAKLSNpZiBFTkFCTEUoQ1NTX1JF
R0lPTlMpCiAvLyBhdXRvIHwgPGZsb3dfbmFtZT4KIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUZsb3dU
aHJlYWQoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiB7CkBAIC02MTM5LDcgKzYxMzIsNiBA
QCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlRnJvCiAKICAgICByZXR1cm4g
Q1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShhcmdGbG93VGhyZWFkTmFtZS0+c3RyaW5nLCBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX0ZST01fRkxPVyk7CiB9Ci0jZW5kaWYKIAogYm9vbCBDU1NQYXJz
ZXI6OnBhcnNlVHJhbnNmb3JtT3JpZ2luKGludCBwcm9wSWQsIGludCYgcHJvcElkMSwgaW50JiBw
cm9wSWQyLCBpbnQmIHByb3BJZDMsIFJlZlB0cjxDU1NWYWx1ZT4mIHZhbHVlLCBSZWZQdHI8Q1NT
VmFsdWU+JiB2YWx1ZTIsIFJlZlB0cjxDU1NWYWx1ZT4mIHZhbHVlMykKIHsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmgJKHJldmlzaW9uIDkyNzc0KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01MiwxMCArNTIsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgY2xhc3MgU3R5bGVCYXNlOwogICAgIGNsYXNzIFdlYktpdENTU0tleWZyYW1l
UnVsZTsKICAgICBjbGFzcyBXZWJLaXRDU1NLZXlmcmFtZXNSdWxlOwotCi0jaWYgRU5BQkxFKENT
U19FWENMVVNJT05TKQogICAgIGNsYXNzIENTU1dyYXBTaGFwZTsKLSNlbmRpZgogCiAgICAgY2xh
c3MgQ1NTUGFyc2VyIHsKICAgICBwdWJsaWM6CkBAIC0xMjksMTMgKzEyNiwxMSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICAgICAgYm9vbCBwYXJzZVNoYXBlKGludCBwcm9wSWQsIGJvb2wg
aW1wb3J0YW50KTsKIAotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICAgICAgYm9vbCBw
YXJzZVdyYXBTaGFwZShib29sIGltcG9ydGFudCk7CiAgICAgICAgIFBhc3NSZWZQdHI8Q1NTV3Jh
cFNoYXBlPiBwYXJzZVdyYXBTaGFwZVJlY3QoQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzKTsKICAg
ICAgICAgUGFzc1JlZlB0cjxDU1NXcmFwU2hhcGU+IHBhcnNlV3JhcFNoYXBlQ2lyY2xlKENTU1Bh
cnNlclZhbHVlTGlzdCogYXJncyk7CiAgICAgICAgIFBhc3NSZWZQdHI8Q1NTV3JhcFNoYXBlPiBw
YXJzZVdyYXBTaGFwZUVsbGlwc2UoQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzKTsKICAgICAgICAg
UGFzc1JlZlB0cjxDU1NXcmFwU2hhcGU+IHBhcnNlV3JhcFNoYXBlUG9seWdvbihDU1NQYXJzZXJW
YWx1ZUxpc3QqIGFyZ3MpOwotI2VuZGlmCiAKICAgICAgICAgYm9vbCBwYXJzZUZvbnQoYm9vbCBp
bXBvcnRhbnQpOwogICAgICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlTGlzdD4gcGFyc2VGb250RmFt
aWx5KCk7CkBAIC0xNjgsMTAgKzE2Myw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
UGFzc1JlZlB0cjxDU1NWYWx1ZT4gcGFyc2VXQ1NTSW5wdXRQcm9wZXJ0eSgpOwogI2VuZGlmCiAK
LSNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCi0gICAgICAgIGJvb2wgcGFyc2VGbG93VGhyZWFkKGlu
dCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KTsKLSAgICAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4g
cGFyc2VGcm9tRmxvd0NvbnRlbnQoQ1NTUGFyc2VyVmFsdWVMaXN0Kik7Ci0jZW5kaWYKICAgICAg
ICAgLy8gQ1NTMyBQYXJzaW5nIFJvdXRpbmVzIChmb3IgcHJvcGVydGllcyBzcGVjaWZpYyB0byBD
U1MzKQogICAgICAgICBib29sIHBhcnNlU2hhZG93KGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50
KTsKICAgICAgICAgYm9vbCBwYXJzZUJvcmRlckltYWdlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0
YW50LCBSZWZQdHI8Q1NTVmFsdWU+Jik7CkBAIC0yMDAsNiArMTkxLDkgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBib29sIHBhcnNlRm9udEZlYXR1cmVUYWcoQ1NTVmFsdWVMaXN0Kik7
CiAgICAgICAgIGJvb2wgcGFyc2VGb250RmVhdHVyZVNldHRpbmdzKGJvb2wgaW1wb3J0YW50KTsK
IAorICAgICAgICBib29sIHBhcnNlRmxvd1RocmVhZChpbnQgcHJvcElkLCBib29sIGltcG9ydGFu
dCk7CisgICAgICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlRnJvbUZsb3dDb250ZW50KENT
U1BhcnNlclZhbHVlTGlzdCopOworCiAgICAgICAgIGludCB5eXBhcnNlKCk7CiAKICAgICAgICAg
Q1NTUGFyc2VyU2VsZWN0b3IqIGNyZWF0ZUZsb2F0aW5nU2VsZWN0b3IoKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAkocmV2aXNpb24gOTI3NzQpCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMTEsMTQgKzIxMSwxMiBAQCB2b2lkIENTU1ByaW1pdGl2ZVZhbHVlOjppbml0KFBhc3NSZWZQ
dHI8CiAgICAgbV92YWx1ZS5wYWlyID0gcC5yZWxlYXNlUmVmKCk7CiB9CiAKLSNpZiBFTkFCTEUo
Q1NTX0VYQ0xVU0lPTlMpCiB2b2lkIENTU1ByaW1pdGl2ZVZhbHVlOjppbml0KFBhc3NSZWZQdHI8
Q1NTV3JhcFNoYXBlPiBzaGFwZSkKIHsKICAgICBtX3R5cGUgPSBDU1NfU0hBUEU7CiAgICAgbV9o
YXNDYWNoZWRDU1NUZXh0ID0gZmFsc2U7CiAgICAgbV92YWx1ZS5zaGFwZSA9IHNoYXBlLnJlbGVh
c2VSZWYoKTsKIH0KLSNlbmRpZgogCiBDU1NQcmltaXRpdmVWYWx1ZTo6fkNTU1ByaW1pdGl2ZVZh
bHVlKCkKIHsKQEAgLTIzMSw5ICsyMjksNyBAQCB2b2lkIENTU1ByaW1pdGl2ZVZhbHVlOjpjbGVh
bnVwKCkKICAgICAgICAgY2FzZSBDU1NfU1RSSU5HOgogICAgICAgICBjYXNlIENTU19VUkk6CiAg
ICAgICAgIGNhc2UgQ1NTX0FUVFI6Ci0jaWYgRU5BQkxFKENTU19SRUdJT05TKQogICAgICAgICBj
YXNlIENTU19GUk9NX0ZMT1c6Ci0jZW5kaWYKICAgICAgICAgY2FzZSBDU1NfUEFSU0VSX0hFWENP
TE9SOgogICAgICAgICAgICAgaWYgKG1fdmFsdWUuc3RyaW5nKQogICAgICAgICAgICAgICAgIG1f
dmFsdWUuc3RyaW5nLT5kZXJlZigpOwpAQCAtMjUzLDExICsyNDksOSBAQCB2b2lkIENTU1ByaW1p
dGl2ZVZhbHVlOjpjbGVhbnVwKCkKICAgICAgICAgICAgICAgICBtX3ZhbHVlLnJlZ2lvbi0+ZGVy
ZWYoKTsKICAgICAgICAgICAgIGJyZWFrOwogI2VuZGlmCi0jaWYgRU5BQkxFKENTU19FWENMVVNJ
T05TKQogICAgICAgICBjYXNlIENTU19TSEFQRToKICAgICAgICAgICAgIG1fdmFsdWUuc2hhcGUt
PmRlcmVmKCk7CiAgICAgICAgICAgICBicmVhazsKLSNlbmRpZgogICAgICAgICBkZWZhdWx0Ogog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtNTIxLDkgKzUxNSw3IEBAIFN0cmluZyBDU1NQ
cmltaXRpdmVWYWx1ZTo6Z2V0U3RyaW5nVmFsdWUKICAgICAgICAgY2FzZSBDU1NfU1RSSU5HOgog
ICAgICAgICBjYXNlIENTU19BVFRSOgogICAgICAgICBjYXNlIENTU19VUkk6Ci0jaWYgRU5BQkxF
KENTU19SRUdJT05TKQogICAgICAgICBjYXNlIENTU19GUk9NX0ZMT1c6Ci0jZW5kaWYKICAgICAg
ICAgICAgIHJldHVybiBtX3ZhbHVlLnN0cmluZzsKICAgICAgICAgY2FzZSBDU1NfSURFTlQ6CiAg
ICAgICAgICAgICByZXR1cm4gdmFsdWVPclByb3BlcnR5TmFtZShtX3ZhbHVlLmlkZW50KTsKQEAg
LTU0MSw5ICs1MzMsNyBAQCBTdHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6OmdldFN0cmluZ1ZhbHVl
CiAgICAgICAgIGNhc2UgQ1NTX1NUUklORzoKICAgICAgICAgY2FzZSBDU1NfQVRUUjoKICAgICAg
ICAgY2FzZSBDU1NfVVJJOgotI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKICAgICAgICAgY2FzZSBD
U1NfRlJPTV9GTE9XOgotI2VuZGlmCiAgICAgICAgICAgICAgcmV0dXJuIG1fdmFsdWUuc3RyaW5n
OwogICAgICAgICBjYXNlIENTU19JREVOVDoKICAgICAgICAgICAgIHJldHVybiB2YWx1ZU9yUHJv
cGVydHlOYW1lKG1fdmFsdWUuaWRlbnQpOwpAQCAtNzA3LDExICs2OTcsOSBAQCBTdHJpbmcgQ1NT
UHJpbWl0aXZlVmFsdWU6OmNzc1RleHQoKSBjb25zCiAgICAgICAgIGNhc2UgQ1NTX1NUUklORzoK
ICAgICAgICAgICAgIHRleHQgPSBxdW90ZUNTU1N0cmluZ0lmTmVlZGVkKG1fdmFsdWUuc3RyaW5n
KTsKICAgICAgICAgICAgIGJyZWFrOwotI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKICAgICAgICAg
Y2FzZSBDU1NfRlJPTV9GTE9XOgogICAgICAgICAgICAgdGV4dCA9ICItd2Via2l0LWZyb20tZmxv
dygiICsgcXVvdGVDU1NTdHJpbmdJZk5lZWRlZChtX3ZhbHVlLnN0cmluZykgKyAiKSI7CiAgICAg
ICAgICAgICBicmVhazsKLSNlbmRpZgogICAgICAgICBjYXNlIENTU19VUkk6CiAgICAgICAgICAg
ICB0ZXh0ID0gInVybCgiICsgcXVvdGVDU1NVUkxJZk5lZWRlZChtX3ZhbHVlLnN0cmluZykgKyAi
KSI7CiAgICAgICAgICAgICBicmVhazsKQEAgLTg0MywxMSArODMxLDkgQEAgU3RyaW5nIENTU1By
aW1pdGl2ZVZhbHVlOjpjc3NUZXh0KCkgY29ucwogICAgICAgICBjYXNlIENTU19QQVJTRVJfSURF
TlRJRklFUjoKICAgICAgICAgICAgIHRleHQgPSBxdW90ZUNTU1N0cmluZ0lmTmVlZGVkKG1fdmFs
dWUuc3RyaW5nKTsKICAgICAgICAgICAgIGJyZWFrOwotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9O
UykKICAgICAgICAgY2FzZSBDU1NfU0hBUEU6CiAgICAgICAgICAgICB0ZXh0ID0gbV92YWx1ZS5z
aGFwZS0+Y3NzVGV4dCgpOwogICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKICAgICB9CiAKICAg
ICBBU1NFUlQoIWNzc1RleHRDYWNoZSgpLmNvbnRhaW5zKHRoaXMpKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCShyZXZpc2lvbiA5Mjc3NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxMCAr
MzYsNyBAQCBjbGFzcyBQYWlyOwogY2xhc3MgUkdCQ29sb3I7CiBjbGFzcyBSZWN0OwogY2xhc3Mg
UmVuZGVyU3R5bGU7Ci0KLSNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiBjbGFzcyBDU1NXcmFw
U2hhcGU7Ci0jZW5kaWYKIAogc3RydWN0IExlbmd0aDsKIApAQCAtMTg3LDkgKzE4NCw3IEBAIHB1
YmxpYzoKIAogICAgIERhc2hib2FyZFJlZ2lvbiogZ2V0RGFzaGJvYXJkUmVnaW9uVmFsdWUoKSBj
b25zdCB7IHJldHVybiBtX3R5cGUgIT0gQ1NTX0RBU0hCT0FSRF9SRUdJT04gPyAwIDogbV92YWx1
ZS5yZWdpb247IH0KIAotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICBDU1NXcmFwU2hh
cGUqIGdldFNoYXBlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgIT0gQ1NTX1NIQVBFID8g
MCA6IG1fdmFsdWUuc2hhcGU7IH0KLSNlbmRpZgogCiAgICAgaW50IGdldElkZW50KCkgY29uc3Q7
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIG9wZXJhdG9yIFQoKSBjb25zdDsgLy8g
RGVmaW5lZCBpbiBDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKQEAgLTIzMCw5ICsyMjUsOCBA
QCBwcml2YXRlOgogICAgIHZvaWQgaW5pdChQYXNzUmVmUHRyPFJlY3Q+KTsKICAgICB2b2lkIGlu
aXQoUGFzc1JlZlB0cjxQYWlyPik7CiAgICAgdm9pZCBpbml0KFBhc3NSZWZQdHI8RGFzaGJvYXJk
UmVnaW9uPik7IC8vIEZJWE1FOiBEYXNoYm9hcmQgcmVnaW9uIHNob3VsZCBub3QgYmUgYSBwcmlt
aXRpdmUgdmFsdWUuCi0jaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQogICAgIHZvaWQgaW5pdChQ
YXNzUmVmUHRyPENTU1dyYXBTaGFwZT4pOwotI2VuZGlmCisKICAgICBib29sIGdldERvdWJsZVZh
bHVlSW50ZXJuYWwoVW5pdFR5cGVzIHRhcmdldFVuaXRUeXBlLCBkb3VibGUqIHJlc3VsdCkgY29u
c3Q7CiAKICAgICBkb3VibGUgY29tcHV0ZUxlbmd0aERvdWJsZShSZW5kZXJTdHlsZSogY3VycmVu
dFN0eWxlLCBSZW5kZXJTdHlsZSogcm9vdFN0eWxlLCBkb3VibGUgbXVsdGlwbGllciwgYm9vbCBj
b21wdXRpbmdGb250U2l6ZSk7CkBAIC0yNTIsOSArMjQ2LDcgQEAgcHJpdmF0ZToKICAgICAgICAg
dW5zaWduZWQgcmdiY29sb3I7CiAgICAgICAgIFBhaXIqIHBhaXI7CiAgICAgICAgIERhc2hib2Fy
ZFJlZ2lvbiogcmVnaW9uOwotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICAgICAgQ1NT
V3JhcFNoYXBlKiBzaGFwZTsKLSNlbmRpZgogICAgIH0gbV92YWx1ZTsKIH07CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAkocmV2aXNp
b24gOTI3NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5n
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMyLDcgKzE0MzIsNiBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlCiAgICAgfQogfQogCi0jaWYgRU5BQkxFKENTU19SRUdJ
T05TKQogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKFJlZ2lvbk92ZXJmbG93IGUpCiAgICAgOiBtX3R5cGUoQ1NTX0lERU5UKQogICAgICwgbV9o
YXNDYWNoZWRDU1NUZXh0KGZhbHNlKQpAQCAtMTQ1OSw3ICsxNDU4LDYgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZQogICAgICAgICByZXR1cm4gQXV0b1JlZ2lvbk92
ZXJmbG93OwogICAgIH0KIH0KLSNlbmRpZgogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRU1hcnF1ZWVEaXJlY3Rpb24gZSkKICAgICA6IG1f
dHlwZShDU1NfSURFTlQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1l
cy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5p
bgkocmV2aXNpb24gOTI3NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1l
cy5pbgkod29ya2luZyBjb3B5KQpAQCAtMzI3LDExICszMjcsOCBAQCB6LWluZGV4CiAtd2Via2l0
LXVzZXItZHJhZwogLXdlYmtpdC11c2VyLW1vZGlmeQogLXdlYmtpdC11c2VyLXNlbGVjdAotI2lm
IGRlZmluZWQoRU5BQkxFX0NTU19SRUdJT05TKSAmJiBFTkFCTEVfQ1NTX1JFR0lPTlMKIC13ZWJr
aXQtZmxvdwogLXdlYmtpdC1jb250ZW50LW9yZGVyCiAtd2Via2l0LXJlZ2lvbi1vdmVyZmxvdwot
I2VuZGlmCi0jaWYgZGVmaW5lZChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpICYmIEVOQUJMRV9DU1Nf
RVhDTFVTSU9OUwogLXdlYmtpdC13cmFwLXNoYXBlCi0jZW5kaWYKKwpJbmRleDogU291cmNlL1dl
YkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkocmV2aXNpb24gOTI3NzQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwMjMs
NyArNDAyMyw2IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAg
ICAgICAgaWYgKCF2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkKICAgICAgICAgICAgIHJldHVybjsKIAot
I2lmIEVOQUJMRShDU1NfUkVHSU9OUykKICAgICAgICAgQ1NTVmFsdWVMaXN0SW5zcGVjdG9yIGlu
c3BlY3RvciA9IHZhbHVlOwogICAgICAgICBpZiAoaW5zcGVjdG9yLmxlbmd0aCgpID09IDEgJiYg
aW5zcGVjdG9yLmZpcnN0KCktPmlzUHJpbWl0aXZlVmFsdWUoKSkgewogICAgICAgICAgICAgQ1NT
UHJpbWl0aXZlVmFsdWUqIGNvbnRlbnRWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZh
bHVlKj4oaW5zcGVjdG9yLmZpcnN0KCkpOwpAQCAtNDAzMiw3ICs0MDMxLDYgQEAgdm9pZCBDU1NT
dHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQotI2VuZGlmCiAKICAgICAgICAgYm9vbCBkaWRTZXQg
PSBmYWxzZTsKICAgICAgICAgZm9yIChDU1NWYWx1ZUxpc3RJdGVyYXRvciBpID0gdmFsdWU7IGku
aGFzTW9yZSgpOyBpLmFkdmFuY2UoKSkgewpAQCAtNDY4Nyw3ICs0Njg1LDcgQEAgdm9pZCBDU1NT
dHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgICAgICB9CiAgICAgICAgIHJldHVy
bjsKICNlbmRpZgotI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKKwogICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRGbG93OgogICAgICAgICBpZiAoaXNJbml0aWFsKQogICAgICAgICAgICAgSEFORExF
X0lOSVRJQUxfQ09ORChDU1NQcm9wZXJ0eVdlYmtpdEZsb3csIEZsb3dUaHJlYWQpOwpAQCAtNDcw
Nyw3ICs0NzA1LDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAog
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRSZWdpb25PdmVyZmxvdzoKICAgICAgICAgSEFORExF
X0lOSEVSSVRfQU5EX0lOSVRJQUxfQU5EX1BSSU1JVElWRShyZWdpb25PdmVyZmxvdywgUmVnaW9u
T3ZlcmZsb3cpOwogICAgICAgICByZXR1cm47Ci0jZW5kaWYKKwogICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRNYXJxdWVlRGlyZWN0aW9uOgogICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5J
VElBTF9BTkRfUFJJTUlUSVZFKG1hcnF1ZWVEaXJlY3Rpb24sIE1hcnF1ZWVEaXJlY3Rpb24pCiAg
ICAgICAgIHJldHVybjsKQEAgLTUwNTEsNyArNTA0OSw2IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rv
cjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSNpZiBF
TkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFdyYXBTaGFw
ZToKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwod3JhcFNoYXBlLCBXcmFwU2hh
cGUpOwogICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQpAQCAtNTA2Myw3ICs1MDYwLDYgQEAg
dm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgICAgICAgICAgbV9z
dHlsZS0+c2V0V3JhcFNoYXBlKHByaW1pdGl2ZVZhbHVlLT5nZXRTaGFwZVZhbHVlKCkpOwogCiAg
ICAgICAgIHJldHVybjsKLSNlbmRpZgogCiAgICAgLy8gQ1NTIEZvbnRzIE1vZHVsZSBMZXZlbCAz
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZvbnRGZWF0dXJlU2V0dGluZ3M6IHsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCShyZXZpc2lvbiA5Mjc3NCkKKysr
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCSh3b3JraW5nIGNvcHkpCkBA
IC04MTksMTQgKzgxOSwxMCBAQCBvcHRpbWl6ZVF1YWxpdHkKIC8vIFBvc2l0aW9uZWQgRmxvYXRz
CiAtd2Via2l0LXBvc2l0aW9uZWQKIAotI2lmIGRlZmluZWQoRU5BQkxFX0NTU19FWENMVVNJT05T
KSAmJiBFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMKIC8vIC13ZWJraXQtd3JhcC1zaGFwZQogbm9uemVy
bwogZXZlbm9kZAotI2VuZGlmCiAKLSNpZiBkZWZpbmVkKEVOQUJMRV9DU1NfUkVHSU9OUykgJiYg
RU5BQkxFX0NTU19SRUdJT05TCiAvLyAtd2Via2l0LXJlZ2lvbi1vdmVyZmxvdwogLy8gYXV0bwog
LXdlYmtpdC1icmVhawotI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTV3JhcFNo
YXBlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1dyYXBTaGFwZXMu
Y3BwCShyZXZpc2lvbiA5Mjc3NCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NXcmFwU2hhcGVz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksOCArMjksNiBAQAogCiAjaW5jbHVkZSAiY29uZmln
LmgiCiAKLSNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0KICNpbmNsdWRlICJDU1NXcmFwU2hh
cGVzLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CkBAIC0xNDcsNCArMTQ1LDMgQEAgU3RyaW5n
IENTU1dyYXBTaGFwZVBvbHlnb246OmNzc1RleHQoKSBjbwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTV3JhcFNoYXBlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NXcmFwU2hhcGVzLmgJKHJldmlzaW9uIDkyNzc0KQorKysgU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1dyYXBTaGFwZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsOCArMzAsNiBAQAogI2lmbmRl
ZiBDU1NXcmFwU2hhcGVzX2gKICNkZWZpbmUgQ1NTV3JhcFNoYXBlc19oCiAKLSNpZiBFTkFCTEUo
Q1NTX0VYQ0xVU0lPTlMpCi0KICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiV2luZFJ1bGUuaCIKQEAgLTE3Miw2ICsx
NzAsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBF
TkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0KICNlbmRpZiAvLyBDU1NXcmFwU2hhcGVzX2gKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NWYWx1ZUtleXdvcmRzLmluCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NWYWx1ZUtleXdvcmRzLmluCShyZXZpc2lvbiA5Mjc3
NCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NWYWx1ZUtleXdvcmRzLmluCSh3b3JraW5n
IGNvcHkpCkBAIC0xNjIsMTIgKzE2Miw3IEBAIHllbGxvd2dyZWVuCiAKIC8vIENTU19QUk9QX0NM
SVBfUEFUSAogLy8gQ1NTX1BST1BfQ0xJUF9SVUxFCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NTU19F
WENMVVNJT05TKSB8fCAhRU5BQkxFX0NTU19FWENMVVNJT05TCi0vLyBDU1MgZXhjbHVzaW9ucyBh
bHNvIHVzZXMgbm9uemVybyBhbmQgZXZlbm9kZCwgc28gZG9uJ3QgZHVwbGljYXRlIHRoZSB2YWx1
ZXMKLS8vIGlmIEVOQUJMRURfQ1NTX0VYQ0xVU0lPTlMgaXMgZW5hYmxlZC4KLW5vbnplcm8KLWV2
ZW5vZGQKLSNlbmRpZgorLy8gbm9uemVybyBhbmQgZXZlbm9kZCBwYXJ0IG9mIGNvcmUgQ1NTIHZh
bHVlcyBub3cuCiAKIC8vIENTU19QUk9QX01BU0sKIC8vIENTU19QUk9QX09QQUNJVFkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5jcHAJKHJldmlzaW9uIDkyNzc0KQorKysgU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNTcsNyArMzU3LDYgQEAgTm9kZTo6U3R5bGVDaGFu
Z2UgTm9kZTo6ZGlmZihjb25zdCBSZW5kZQogICAgIGlmICgoczEgJiYgczIpICYmIChzMS0+aGFz
VGV4dENvbWJpbmUoKSAhPSBzMi0+aGFzVGV4dENvbWJpbmUoKSkpCiAgICAgICAgIGNoID0gRGV0
YWNoOwogCi0jaWYgRU5BQkxFKENTU19SRUdJT05TKQogICAgIC8vIFdlIG5lZWQgdG8gcmVhdHRh
Y2ggdGhlIG5vZGUsIHNvIHRoYXQgaXQgaXMgbW92ZWQgdG8gdGhlIGNvcnJlY3QgUmVuZGVyRmxv
d1RocmVhZC4KICAgICBpZiAoKHMxICYmIHMyKSAmJiAoczEtPmZsb3dUaHJlYWQoKSAhPSBzMi0+
Zmxvd1RocmVhZCgpKSkKICAgICAgICAgY2ggPSBEZXRhY2g7CkBAIC0zNjYsNyArMzY1LDYgQEAg
Tm9kZTo6U3R5bGVDaGFuZ2UgTm9kZTo6ZGlmZihjb25zdCBSZW5kZQogICAgIC8vIHdlIG5lZWQg
dG8gcHJlcGFyZSBhIHNlcGFyYXRlIHJlbmRlciByZWdpb24gb2JqZWN0LgogICAgIGlmICgoczEg
JiYgczIpICYmICgoczEtPnJlZ2lvblRocmVhZCgpICE9IHMyLT5yZWdpb25UaHJlYWQoKSB8fCAo
czEtPnJlZ2lvbkluZGV4KCkgIT0gczItPnJlZ2lvbkluZGV4KCkpKSkpCiAgICAgICAgICAgICBj
aCA9IERldGFjaDsKLSNlbmRpZgogCiAgICAgcmV0dXJuIGNoOwogfQpJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCShyZXZpc2lvbiA5Mjc3NCkKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ2LDkgKzQ2LDcgQEAgTm9kZVJlbmRlcmluZ0NvbnRleHQ6Ok5vZGVSZW5kZXJpbmdD
b250ZQogICAgICwgbV92aXN1YWxQYXJlbnRTaGFkb3dSb290KDApCiAgICAgLCBtX2luY2x1ZGVy
KDApCiAgICAgLCBtX3N0eWxlKDApCi0jaWYgRU5BQkxFKENTU19SRUdJT05TKQogICAgICwgbV9w
YXJlbnRGbG93UmVuZGVyZXIoMCkKLSNlbmRpZgogewogICAgIENvbnRhaW5lck5vZGUqIHBhcmVu
dCA9IG1fbm9kZS0+cGFyZW50T3JIb3N0Tm9kZSgpOwogICAgIGlmICghcGFyZW50KQpAQCAtODks
OSArODcsNyBAQCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRlCiAgICAg
LCBtX3Zpc3VhbFBhcmVudFNoYWRvd1Jvb3QoMCkKICAgICAsIG1faW5jbHVkZXIoMCkKICAgICAs
IG1fc3R5bGUoc3R5bGUpCi0jaWYgRU5BQkxFKENTU19SRUdJT05TKQogICAgICwgbV9wYXJlbnRG
bG93UmVuZGVyZXIoMCkKLSNlbmRpZgogewogfQogCkBAIC0xMDIsOSArOTgsNyBAQCBOb2RlUmVu
ZGVyaW5nQ29udGV4dDo6fk5vZGVSZW5kZXJpbmdDb250CiB2b2lkIE5vZGVSZW5kZXJpbmdDb250
ZXh0OjpzZXRTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKICAgICBtX3N0
eWxlID0gc3R5bGU7Ci0jaWYgRU5BQkxFKENTU19SRUdJT05TKQogICAgIG1vdmVUb0Zsb3dUaHJl
YWRJZk5lZWRlZCgpOwotI2VuZGlmCiB9CiAKIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IE5vZGVS
ZW5kZXJpbmdDb250ZXh0OjpyZWxlYXNlU3R5bGUoKQpAQCAtMTY2LDEwICsxNjAsOCBAQCBSZW5k
ZXJPYmplY3QqIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpuZXh0CiAgICAgaWYgKFJlbmRlck9iamVj
dCogcmVuZGVyZXIgPSBtX25vZGUtPnJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybiByZW5kZXJl
ci0+bmV4dFNpYmxpbmcoKTsKIAotI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKICAgICBpZiAobV9w
YXJlbnRGbG93UmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBtX3BhcmVudEZsb3dSZW5kZXJlci0+
bmV4dFJlbmRlcmVyRm9yTm9kZShtX25vZGUpOwotI2VuZGlmCiAKICAgICBpZiAobV9waGFzZSA9
PSBBdHRhY2hDb250ZW50Rm9yd2FyZGVkKSB7CiAgICAgICAgIGlmIChSZW5kZXJPYmplY3QqIGZv
dW5kID0gbmV4dFJlbmRlcmVyT2YobV9pbmNsdWRlciwgbV9ub2RlKSkKQEAgLTE4NCwxMSArMTc2
LDkgQEAgUmVuZGVyT2JqZWN0KiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6bmV4dAogCiAgICAgZm9y
IChOb2RlKiBub2RlID0gbV9ub2RlLT5uZXh0U2libGluZygpOyBub2RlOyBub2RlID0gbm9kZS0+
bmV4dFNpYmxpbmcoKSkgewogICAgICAgICBpZiAobm9kZS0+cmVuZGVyZXIoKSkgewotI2lmIEVO
QUJMRShDU1NfUkVHSU9OUykKICAgICAgICAgICAgIC8vIERvIG5vdCByZXR1cm4gZWxlbWVudHMg
dGhhdCBhcmUgYXR0YWNoZWQgdG8gYSBkaWZmZXJlbnQgZmxvdy10aHJlYWQuCiAgICAgICAgICAg
ICBpZiAobm9kZS0+cmVuZGVyZXIoKS0+c3R5bGUoKSAmJiAhbm9kZS0+cmVuZGVyZXIoKS0+c3R5
bGUoKS0+Zmxvd1RocmVhZCgpLmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsK
LSNlbmRpZgogICAgICAgICAgICAgcmV0dXJuIG5vZGUtPnJlbmRlcmVyKCk7CiAgICAgICAgIH0K
ICAgICAgICAgaWYgKG5vZGUtPmlzQ29udGVudEVsZW1lbnQoKSkgewpAQCAtMjA2LDEwICsxOTYs
OCBAQCBSZW5kZXJPYmplY3QqIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpwcmV2CiAgICAgaWYgKFJl
bmRlck9iamVjdCogcmVuZGVyZXIgPSBtX25vZGUtPnJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVy
biByZW5kZXJlci0+cHJldmlvdXNTaWJsaW5nKCk7CiAKLSNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMp
CiAgICAgaWYgKG1fcGFyZW50Rmxvd1JlbmRlcmVyKQogICAgICAgICByZXR1cm4gbV9wYXJlbnRG
bG93UmVuZGVyZXItPnByZXZpb3VzUmVuZGVyZXJGb3JOb2RlKG1fbm9kZSk7Ci0jZW5kaWYKIAog
ICAgIGlmIChtX3BoYXNlID09IEF0dGFjaENvbnRlbnRGb3J3YXJkZWQpIHsKICAgICAgICAgaWYg
KFJlbmRlck9iamVjdCogZm91bmQgPSBwcmV2aW91c1JlbmRlcmVyT2YobV9pbmNsdWRlciwgbV9u
b2RlKSkKQEAgLTIyMSwxMSArMjA5LDkgQEAgUmVuZGVyT2JqZWN0KiBOb2RlUmVuZGVyaW5nQ29u
dGV4dDo6cHJldgogICAgIC8vIGhvd2V2ZXIsIHdoZW4gSSB0cmllZCBhZGRpbmcgaXQsIHNldmVy
YWwgdGVzdHMgZmFpbGVkLgogICAgIGZvciAoTm9kZSogbm9kZSA9IG1fbm9kZS0+cHJldmlvdXNT
aWJsaW5nKCk7IG5vZGU7IG5vZGUgPSBub2RlLT5wcmV2aW91c1NpYmxpbmcoKSkgewogICAgICAg
ICBpZiAobm9kZS0+cmVuZGVyZXIoKSkgewotI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKICAgICAg
ICAgICAgIC8vIERvIG5vdCByZXR1cm4gZWxlbWVudHMgdGhhdCBhcmUgYXR0YWNoZWQgdG8gYSBk
aWZmZXJlbnQgZmxvdy10aHJlYWQuCiAgICAgICAgICAgICBpZiAobm9kZS0+cmVuZGVyZXIoKS0+
c3R5bGUoKSAmJiAhbm9kZS0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+Zmxvd1RocmVhZCgpLmlzRW1w
dHkoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSNlbmRpZgogICAgICAgICAgICAgcmV0
dXJuIG5vZGUtPnJlbmRlcmVyKCk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKG5vZGUtPmlzQ29u
dGVudEVsZW1lbnQoKSkgewpAQCAtMjQ0LDEwICsyMzAsOCBAQCBSZW5kZXJPYmplY3QqIE5vZGVS
ZW5kZXJpbmdDb250ZXh0OjpwYXJlCiAgICAgICAgIHJldHVybiByZW5kZXJlci0+cGFyZW50KCk7
CiAgICAgfQogCi0jaWYgRU5BQkxFKENTU19SRUdJT05TKQogICAgIGlmIChtX3BhcmVudEZsb3dS
ZW5kZXJlcikKICAgICAgICAgcmV0dXJuIG1fcGFyZW50Rmxvd1JlbmRlcmVyOwotI2VuZGlmCiAK
ICAgICBBU1NFUlQobV9sb2NhdGlvbiAhPSBMb2NhdGlvblVuZGV0ZXJtaW5lZCk7CiAgICAgcmV0
dXJuIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlID8gbV9wYXJlbnROb2RlRm9yUmVu
ZGVyaW5nQW5kU3R5bGUtPnJlbmRlcmVyKCkgOiAwOwpAQCAtMjg3LDcgKzI3MSw2IEBAIGJvb2wg
Tm9kZVJlbmRlcmluZ0NvbnRleHQ6OnNob3VsZENyZWF0ZVIKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKIHZvaWQgTm9kZVJlbmRlcmluZ0NvbnRleHQ6Om1v
dmVUb0Zsb3dUaHJlYWRJZk5lZWRlZCgpCiB7CiAgICAgaWYgKCFtX25vZGUtPmlzRWxlbWVudE5v
ZGUoKSB8fCAhbV9zdHlsZSB8fCBtX3N0eWxlLT5mbG93VGhyZWFkKCkuaXNFbXB0eSgpKQpAQCAt
Mjk3LDcgKzI4MCw2IEBAIHZvaWQgTm9kZVJlbmRlcmluZ0NvbnRleHQ6Om1vdmVUb0Zsb3dUaHIK
ICAgICBBU1NFUlQobV9ub2RlLT5kb2N1bWVudCgpLT5yZW5kZXJWaWV3KCkpOwogICAgIG1fcGFy
ZW50Rmxvd1JlbmRlcmVyID0gbV9ub2RlLT5kb2N1bWVudCgpLT5yZW5kZXJWaWV3KCktPnJlbmRl
ckZsb3dUaHJlYWRXaXRoTmFtZShtX2Zsb3dUaHJlYWQpOwogfQotI2VuZGlmCiAKIE5vZGVSZW5k
ZXJlckZhY3Rvcnk6Ok5vZGVSZW5kZXJlckZhY3RvcnkoTm9kZSogbm9kZSkKICAgICA6IG1fY29u
dGV4dChub2RlKQpAQCAtMzY1LDE0ICszNDcsMTIgQEAgdm9pZCBOb2RlUmVuZGVyZXJGYWN0b3J5
OjpjcmVhdGVSZW5kZXJlcgogICAgIFJlbmRlck9iamVjdCogbmV4dFJlbmRlcmVyID0gbV9jb250
ZXh0Lm5leHRSZW5kZXJlcigpOwogICAgIFJlbmRlck9iamVjdCogbmV3UmVuZGVyZXIgPSBjcmVh
dGVSZW5kZXJlckFuZFN0eWxlKCk7CiAKLSNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAgaWYg
KG1fY29udGV4dC5oYXNGbG93VGhyZWFkUGFyZW50KCkpIHsKICAgICAgICAgcGFyZW50UmVuZGVy
ZXIgPSBtX2NvbnRleHQucGFyZW50Rmxvd1JlbmRlcmVyKCk7CiAgICAgICAgIC8vIERvIG5vdCBj
YWxsIG1fY29udGV4dC5uZXh0UmVuZGVyZXIoKSBoZXJlLCBiZWNhdXNlIGl0IGV4cGVjdHMgdG8g
aGF2ZSAKICAgICAgICAgLy8gdGhlIHJlbmRlcmVyIGFkZGVkIHRvIGl0cyBwYXJlbnQgYWxyZWFk
eS4KICAgICAgICAgbmV4dFJlbmRlcmVyID0gbV9jb250ZXh0LnBhcmVudEZsb3dSZW5kZXJlcigp
LT5uZXh0UmVuZGVyZXJGb3JOb2RlKG5vZGUpOwogICAgIH0KLSNlbmRpZgogCiAjaWYgRU5BQkxF
KEZVTExTQ1JFRU5fQVBJKQogICAgIGlmIChkb2N1bWVudC0+d2Via2l0SXNGdWxsU2NyZWVuKCkg
JiYgZG9jdW1lbnQtPndlYmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVudCgpID09IG5vZGUpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaAkocmV2aXNpb24g
OTI3NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaAkod29y
a2luZyBjb3B5KQpAQCAtMzUsMTUgKzM1LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IENvbnRhaW5lck5vZGU7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIE5vZGU7CitjbGFzcyBSZW5k
ZXJGbG93VGhyZWFkOwogY2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3MgUmVuZGVyU3R5bGU7CiBj
bGFzcyBTaGFkb3dDb250ZW50RWxlbWVudDsKIGNsYXNzIFNoYWRvd1Jvb3Q7CiAKLSNpZiBFTkFC
TEUoQ1NTX1JFR0lPTlMpCi1jbGFzcyBSZW5kZXJGbG93VGhyZWFkOwotI2VuZGlmCi0KIGNsYXNz
IE5vZGVSZW5kZXJpbmdDb250ZXh0IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBOb2RlUmVuZGVy
aW5nQ29udGV4dChOb2RlKik7CkBAIC02NSwxMSArNjIsMTAgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7CiAKLSNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAg
Ym9vbCBoYXNGbG93VGhyZWFkUGFyZW50KCkgY29uc3QgeyByZXR1cm4gbV9wYXJlbnRGbG93UmVu
ZGVyZXI7IH0KICAgICBSZW5kZXJGbG93VGhyZWFkKiBwYXJlbnRGbG93UmVuZGVyZXIoKSBjb25z
dCB7IHJldHVybiBtX3BhcmVudEZsb3dSZW5kZXJlcjsgfQogICAgIHZvaWQgbW92ZVRvRmxvd1Ro
cmVhZElmTmVlZGVkKCk7Ci0jZW5kaWYKKwogcHJpdmF0ZToKIAogICAgIGVudW0gVHJlZUxvY2F0
aW9uIHsKQEAgLTkyLDEwICs4OCw4IEBAIHByaXZhdGU6CiAgICAgU2hhZG93Um9vdCogbV92aXN1
YWxQYXJlbnRTaGFkb3dSb290OwogICAgIFNoYWRvd0NvbnRlbnRFbGVtZW50KiBtX2luY2x1ZGVy
OwogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV9zdHlsZTsKLSNpZiBFTkFCTEUoQ1NTX1JFR0lP
TlMpCiAgICAgUmVuZGVyRmxvd1RocmVhZCogbV9wYXJlbnRGbG93UmVuZGVyZXI7CiAgICAgQXRv
bWljU3RyaW5nIG1fZmxvd1RocmVhZDsKLSNlbmRpZgogfTsKIAogaW5saW5lIE5vZGUqIE5vZGVS
ZW5kZXJpbmdDb250ZXh0Ojpub2RlKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAJKHJldmlzaW9uIDkyNzc0KQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOSwxMCArMjksNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpZiBFTkFCTEUoQ1NT
X1JFR0lPTlMpCi0KICNpbmNsdWRlICJSZW5kZXJGbG93VGhyZWFkLmgiCi0KICNpbmNsdWRlICJO
b2RlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTExNCw1ICsxMTEsMyBAQCB2b2lkIFJl
bmRlckZsb3dUaHJlYWQ6OnJlbW92ZUNoaWxkKFJlbmRlCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShDU1NfUkVHSU9OUykKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaAkocmV2aXNpb24gOTI3NzQpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCw3ICszMCw2IEBACiAjaWZuZGVmIFJlbmRlckZsb3dUaHJlYWRfaAogI2RlZmluZSBS
ZW5kZXJGbG93VGhyZWFkX2gKIAotI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKIAogI2luY2x1ZGUg
IlJlbmRlckJsb2NrLmgiCiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CkBAIC05NCw2ICs5
Myw0IEBAIHZvaWQgdG9SZW5kZXJGbG93VGhyZWFkKGNvbnN0IFJlbmRlckZsb3cKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKENTU19SRUdJT05TKQotCiAjZW5k
aWYgLy8gUmVuZGVyRmxvd1RocmVhZF9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAJKHJldmlzaW9uIDkyNzc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzg3OSwxMiArMzg3OSwxMCBA
QCB2b2lkIFJlbmRlckxheWVyOjpjb2xsZWN0TGF5ZXJzKFZlY3RvcjxSCiB7CiAgICAgdXBkYXRl
VmlzaWJpbGl0eVN0YXR1cygpOwogCi0jaWYgRU5BQkxFKENTU19SRUdJT05TKQogICAgIC8vIERv
IG5vdCBsZXQgdGhlIFJlbmRlckZsb3dUaHJlYWQgdG8gcmVuZGVyIGRpcmVjdGx5IHRvIHNjcmVl
bi4gSXQgd2lsbCBvbmx5IHJlbmRlcgogICAgIC8vIGluc2lkZSB0aGUgUmVuZGVyUmVnaW9uIG9i
amVjdHMsIHNvIGF2b2lkIGNvbGxlY3RpbmcgaXQuCiAgICAgaWYgKHJlbmRlcmVyKCktPmlzUmVu
ZGVyRmxvd1RocmVhZCgpKQogICAgICAgICByZXR1cm47Ci0jZW5kaWYKIAogICAgIC8vIE92ZXJm
bG93IGxheWVycyBhcmUganVzdCBwYWludGVkIGJ5IHRoZWlyIGVuY2xvc2luZyBsYXllcnMsIHNv
IHRoZXkgZG9uJ3QgZ2V0IHB1dCBpbiB6b3JkZXIgbGlzdHMuCiAgICAgaWYgKChtX2hhc1Zpc2li
bGVDb250ZW50IHx8IChtX2hhc1Zpc2libGVEZXNjZW5kYW50ICYmIGlzU3RhY2tpbmdDb250ZXh0
KCkpKSAmJiAhaXNOb3JtYWxGbG93T25seSgpKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAkocmV2aXNpb24gOTI3NzQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM3LDExICsx
MzcsOSBAQCBSZW5kZXJPYmplY3QqIFJlbmRlck9iamVjdDo6Y3JlYXRlT2JqZWN0CiAgICAgICAg
IGNhc2UgSU5MSU5FX0JMT0NLOgogICAgICAgICBjYXNlIFJVTl9JTjoKICAgICAgICAgY2FzZSBD
T01QQUNUOgotI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKICAgICAgICAgICAgIC8vIE9ubHkgbm9u
LXJlcGxhY2VkIGJsb2NrIGVsZW1lbnRzIGNhbiBiZWNvbWUgYSByZWdpb24uCiAgICAgICAgICAg
ICBpZiAoIXN0eWxlLT5yZWdpb25UaHJlYWQoKS5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclJlZ2lvbihub2RlKTsKLSNlbmRpZgogICAgICAgICAg
ICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlckJsb2NrKG5vZGUpOwogICAgICAgICBjYXNlIExJ
U1RfSVRFTToKICAgICAgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJMaXN0SXRlbShu
b2RlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHJldmlz
aW9uIDkyNzc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yODcsNiArMjg3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBpc1JlbmRlckltYWdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJv
b2wgaXNSZW5kZXJJbmxpbmUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwg
Ym9vbCBpc1JlbmRlclBhcnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
Ym9vbCBpc1JlbmRlclJlZ2lvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBib29sIGlzUmVuZGVyVmlldygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBib29sIGlzUmVwbGljYSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKQEAgLTMxNiw5ICsz
MTcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVyRnVsbFNjcmVlblBsYWNl
aG9sZGVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKENT
U19SRUdJT05TKQogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlckZsb3dUaHJlYWQoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQotI2VuZGlmCiAKICAgICBib29sIGlzUm9vdCgpIGNvbnN0IHsgcmV0
dXJuIGRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpID09IG1fbm9kZTsgfQogICAgIGJvb2wg
aXNCb2R5KCkgY29uc3Q7CkBAIC00MzEsMTAgKzQzMCw2IEBAIHB1YmxpYzoKICAgICBib29sIGlz
UmVwbGFjZWQoKSBjb25zdCB7IHJldHVybiBtX3JlcGxhY2VkOyB9IC8vIGEgInJlcGxhY2VkIiBl
bGVtZW50IChzZWUgQ1NTKQogICAgIGJvb2wgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSBjb25z
dCB7IHJldHVybiBtX2hvcml6b250YWxXcml0aW5nTW9kZTsgfQogCi0jaWYgRU5BQkxFKENTU19S
RUdJT05TKQotICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlclJlZ2lvbigpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9Ci0jZW5kaWYKLQogICAgIGJvb2wgaGFzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBt
X2hhc0xheWVyOyB9CiAgICAgCiAgICAgYm9vbCBoYXNCb3hEZWNvcmF0aW9ucygpIGNvbnN0IHsg
cmV0dXJuIG1fcGFpbnRCYWNrZ3JvdW5kOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUmVnaW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUmVnaW9uLmNwcAkocmV2aXNpb24gOTI3NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsOCArMzUsNiBA
QAogI2luY2x1ZGUgIlBhaW50SW5mby5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKIAotI2lm
IEVOQUJMRShDU1NfUkVHSU9OUykKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJSZWdp
b246OlJlbmRlclJlZ2lvbihOb2RlKiBub2RlKQpAQCAtODYsNSArODQsMyBAQCB2b2lkIFJlbmRl
clJlZ2lvbjo6cGFpbnQoUGFpbnRJbmZvJiBwYWluCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotI2VuZGlmIC8vIEVOQUJMRShDU1NfUkVHSU9OUykKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgJKHJldmlzaW9uIDkyNzc0KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw4ICszMCw2
IEBACiAjaWZuZGVmIFJlbmRlclJlZ2lvbl9oCiAjZGVmaW5lIFJlbmRlclJlZ2lvbl9oCiAKLSNp
ZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCi0KICNpbmNsdWRlICJSZW5kZXJCb3guaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtNjcsNiArNjUsNCBAQCB2b2lkIHRvUmVuZGVyUmVnaW9uKGNvbnN0
IFJlbmRlclJlZ2lvbiopCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVO
QUJMRShDU1NfUkVHSU9OUykKLQogI2VuZGlmIC8vIFJlbmRlclJlZ2lvbl9oCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCShyZXZpc2lvbiA5
Mjc3NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzA3LDcgKzcwNyw2IEBAIHN0YXRpYyB2b2lkIHdyaXRlTGF5ZXJz
KFRleHRTdHJlYW0mIHRzLCAKICAgICAgICAgICAgIHdyaXRlTGF5ZXJzKHRzLCByb290TGF5ZXIs
IHBvc0xpc3QtPmF0KGkpLCBwYWludERpcnR5UmVjdCwgY3VyckluZGVudCwgYmVoYXZpb3IpOwog
ICAgIH0KICAgICAKLSNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAgLy8gQWx0b3VnaCB0aGUg
UmVuZGVyRmxvd1RocmVhZCByZXF1aXJlcyBhIGxheWVyLCBpdCBpcyBub3QgY29sbGVjdGVkIGJ5
IGl0cyBwYXJlbnQsCiAgICAgLy8gc28gd2UgaGF2ZSB0byB0cmVhdCBpdCBhcyBhIHNwZWNpYWwg
Y2FzZS4KICAgICBib29sIGZpcnN0UmVuZGVyRmxvd1RocmVhZCA9IHRydWU7CkBAIC03MjUsNyAr
NzI0LDYgQEAgc3RhdGljIHZvaWQgd3JpdGVMYXllcnMoVGV4dFN0cmVhbSYgdHMsIAogICAgICAg
ICAgICAgd3JpdGVMYXllcnModHMsIHJvb3RMYXllciwgbGF5ZXIsIHBhaW50RGlydHlSZWN0LCBp
bmRlbnQgKyAyLCBiZWhhdmlvcik7CiAgICAgICAgIH0KICAgICB9Ci0jZW5kaWYKIH0KIAogc3Rh
dGljIFN0cmluZyBub2RlUG9zaXRpb24oTm9kZSogbm9kZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAJKHJldmlzaW9uIDkyNzc0KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OTMsNyArNzkz
LDYgQEAgdm9pZCBSZW5kZXJWaWV3Ojp3aWxsTW92ZU9mZnNjcmVlbigpCiAjZW5kaWYKIH0KIAot
I2lmIEVOQUJMRShDU1NfUkVHSU9OUykKIFJlbmRlckZsb3dUaHJlYWQqIFJlbmRlclZpZXc6OnJl
bmRlckZsb3dUaHJlYWRXaXRoTmFtZShjb25zdCBBdG9taWNTdHJpbmcmIGZsb3dUaHJlYWQpCiB7
CiAgICAgZm9yIChSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gZmlyc3RDaGlsZCgpOyByZW5kZXJl
cjsgcmVuZGVyZXIgPSByZW5kZXJlci0+bmV4dFNpYmxpbmcoKSkgewpAQCAtODA5LDYgKzgwOCw1
IEBAIFJlbmRlckZsb3dUaHJlYWQqIFJlbmRlclZpZXc6OnJlbmRlckZsb3cKICAgICAKICAgICBy
ZXR1cm4gZmxvd1JlbmRlcmVyOwogfQotI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAkocmV2aXNpb24gOTI3NzQp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSwxMSArMjksOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFJlbmRl
cldpZGdldDsKLQotI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKIGNsYXNzIFJlbmRlckZsb3dUaHJl
YWQ7Ci0jZW5kaWYKK2NsYXNzIFJlbmRlcldpZGdldDsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKIGNsYXNzIFJlbmRlckxheWVyQ29tcG9zaXRvcjsKQEAgLTE2OSw5ICsxNjYs
NyBAQCBwdWJsaWM6CiAKICAgICBJbnRSZWN0IGRvY3VtZW50UmVjdCgpIGNvbnN0OwogCi0jaWYg
RU5BQkxFKENTU19SRUdJT05TKQogICAgIFJlbmRlckZsb3dUaHJlYWQqIHJlbmRlckZsb3dUaHJl
YWRXaXRoTmFtZShjb25zdCBBdG9taWNTdHJpbmcmIGZsb3dUaHJlYWQpOwotI2VuZGlmCiAKIHBy
b3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBib29sIGZp
eGVkLCBUcmFuc2Zvcm1TdGF0ZSYsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Q7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAJKHJldmlz
aW9uIDkyNzc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQ4LDEwICszNDgsOSBAQCBTdHlsZURpZmZlcmVuY2Ug
UmVuZGVyU3R5bGU6OmRpZmYoY29uc3QgCiAgICAgICAgICAgICB8fCByYXJlTm9uSW5oZXJpdGVk
RGF0YS0+dGV4dE92ZXJmbG93ICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+dGV4dE92
ZXJmbG93KQogICAgICAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZUxheW91dDsKIAotI2lm
IEVOQUJMRShDU1NfUkVHSU9OUykKICAgICAgICAgaWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5t
X3JlZ2lvbk92ZXJmbG93ICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9yZWdpb25P
dmVyZmxvdykKICAgICAgICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VMYXlvdXQ7Ci0jZW5k
aWYKKwogICAgICAgICBpZiAocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZGVwcmVjYXRlZEZsZXhp
YmxlQm94LmdldCgpICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9kZXByZWNhdGVk
RmxleGlibGVCb3guZ2V0KCkKICAgICAgICAgICAgICYmICpyYXJlTm9uSW5oZXJpdGVkRGF0YS0+
bV9kZXByZWNhdGVkRmxleGlibGVCb3guZ2V0KCkgIT0gKm90aGVyLT5yYXJlTm9uSW5oZXJpdGVk
RGF0YS0+bV9kZXByZWNhdGVkRmxleGlibGVCb3guZ2V0KCkpCiAgICAgICAgICAgICByZXR1cm4g
U3R5bGVEaWZmZXJlbmNlTGF5b3V0OwpAQCAtNTc4LDcgKzU3Nyw2IEBAIFN0eWxlRGlmZmVyZW5j
ZSBSZW5kZXJTdHlsZTo6ZGlmZihjb25zdCAKICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEt
Pm1faW1hZ2VSZW5kZXJpbmcgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5tX2ltYWdlUmVu
ZGVyaW5nKQogICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNlUmVwYWludDsKICAgICAgICAg
Ci0jaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQogICAgICAgICAvLyBGSVhNRTogVGhlIGN1cnJl
bnQgc3BlYyBpcyBiZWluZyByZXdvcmtlZCB0byByZW1vdmUgZGVwZW5kZW5jaWVzIGJldHdlZW4g
ZXhjbHVzaW9ucyBhbmQgYWZmZWN0ZWQgCiAgICAgICAgIC8vIGNvbnRlbnQuIFRoZXJlJ3MgYSBw
cm9wb3NhbCB0byB1c2UgZmxvYXRzIGluc3RlYWQuIEluIHRoYXQgY2FzZSwgd3JhcC1zaGFwZSBz
aG91bGQgYWN0dWFsbHkgcmVsYXlvdXQgCiAgICAgICAgIC8vIHRoZSBwYXJlbnQgY29udGFpbmVy
LiBGb3Igc3VyZSwgSSB3aWxsIGhhdmUgdG8gcmV2aXNpdCB0aGlzIGNvZGUsIGJ1dCBmb3Igbm93
IEkndmUgYWRkZWQgdGhpcyBpbiBvcmRlciAKQEAgLTU4Niw3ICs1ODQsNiBAQCBTdHlsZURpZmZl
cmVuY2UgUmVuZGVyU3R5bGU6OmRpZmYoY29uc3QgCiAgICAgICAgIC8vIFRyYWNraW5nIGJ1Zzog
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTkxCiAgICAgICAgIGlm
IChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV93cmFwU2hhcGUgIT0gb3RoZXItPnJhcmVOb25Jbmhl
cml0ZWREYXRhLT5tX3dyYXBTaGFwZSkKICAgICAgICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVu
Y2VSZXBhaW50OwotI2VuZGlmCiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAg
ICAgaWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLmdldCgpICE9IG90aGVyLT5yYXJlTm9uSW5oZXJp
dGVkRGF0YS5nZXQoKSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmgJKHJldmlzaW9uIDkyNzc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc1MSwxMiArNzUxLDEw
IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1RleHRDb21iaW5lKCkgY29uc3QgeyByZXR1cm4gdGV4
dENvbWJpbmUoKSAhPSBUZXh0Q29tYmluZU5vbmU7IH0KICAgICAvLyBFbmQgQ1NTMyBHZXR0ZXJz
CiAKLSNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBmbG93
VGhyZWFkKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZmxvd1RocmVh
ZDsgfQogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgcmVnaW9uVGhyZWFkKCkgY29uc3QgeyByZXR1
cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fcmVnaW9uVGhyZWFkOyB9CiAgICAgaW50IHJlZ2lv
bkluZGV4KCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fcmVnaW9uSW5k
ZXg7IH0KICAgICBSZWdpb25PdmVyZmxvdyByZWdpb25PdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJu
IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3JlZ2lvbk92ZXJmbG93OyB9Ci0jZW5kaWYKIAogICAg
IC8vIEFwcGxlLXNwZWNpZmljIHByb3BlcnR5IGdldHRlciBtZXRob2RzCiAgICAgRVBvaW50ZXJF
dmVudHMgcG9pbnRlckV2ZW50cygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVQb2ludGVy
RXZlbnRzPihpbmhlcml0ZWRfZmxhZ3MuX3BvaW50ZXJFdmVudHMpOyB9CkBAIC0xMTEzLDEyICsx
MTExLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFRleHRFbXBoYXNpc1Bvc2l0aW9uKFRleHRF
bXBoYXNpc1Bvc2l0aW9uIHBvc2l0aW9uKSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIHRl
eHRFbXBoYXNpc1Bvc2l0aW9uLCBwb3NpdGlvbik7IH0KICAgICAvLyBFbmQgQ1NTMyBTZXR0ZXJz
CiAKLSNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAgdm9pZCBzZXRGbG93VGhyZWFkKGNvbnN0
IEF0b21pY1N0cmluZyYgZmxvd1RocmVhZCkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRh
LCBtX2Zsb3dUaHJlYWQsIGZsb3dUaHJlYWQpOyB9CiAgICAgdm9pZCBzZXRSZWdpb25UaHJlYWQo
Y29uc3QgQXRvbWljU3RyaW5nJiByZWdpb25UaHJlYWQpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJp
dGVkRGF0YSwgbV9yZWdpb25UaHJlYWQsIHJlZ2lvblRocmVhZCk7IH0KICAgICB2b2lkIHNldFJl
Z2lvbkluZGV4KGludCByZWdpb25JbmRleCkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRh
LCBtX3JlZ2lvbkluZGV4LCByZWdpb25JbmRleCk7IH0KICAgICB2b2lkIHNldFJlZ2lvbk92ZXJm
bG93KFJlZ2lvbk92ZXJmbG93IHJlZ2lvbk92ZXJmbG93KSB7IFNFVF9WQVIocmFyZU5vbkluaGVy
aXRlZERhdGEsIG1fcmVnaW9uT3ZlcmZsb3csIHJlZ2lvbk92ZXJmbG93KTsgfQotI2VuZGlmCiAK
ICAgICAvLyBBcHBsZS1zcGVjaWZpYyBwcm9wZXJ0eSBzZXR0ZXJzCiAgICAgdm9pZCBzZXRQb2lu
dGVyRXZlbnRzKEVQb2ludGVyRXZlbnRzIHApIHsgaW5oZXJpdGVkX2ZsYWdzLl9wb2ludGVyRXZl
bnRzID0gcDsgfQpAQCAtMTE3MCw3ICsxMTY2LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Rmxv
b2RPcGFjaXR5KGZsb2F0IGYpIHsgYWNjZXNzU1ZHU3R5bGUoKS0+c2V0Rmxvb2RPcGFjaXR5KGYp
OyB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICB2b2lkIHNldFdy
YXBTaGFwZShQYXNzUmVmUHRyPENTU1dyYXBTaGFwZT4gc2hhcGUpCiAgICAgewogICAgICAgICBp
ZiAocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fd3JhcFNoYXBlICE9IHNoYXBlKQpAQCAtMTE3OCw3
ICsxMTczLDYgQEAgcHVibGljOgogICAgIH0KICAgICBDU1NXcmFwU2hhcGUqIHdyYXBTaGFwZSgp
IGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3dyYXBTaGFwZS5nZXQoKTsg
fQogICAgIHN0YXRpYyBDU1NXcmFwU2hhcGUqIGluaXRpYWxXcmFwU2hhcGUoKSB7IHJldHVybiAw
OyB9Ci0jZW5kaWYKIAogICAgIGJvb2wgaGFzQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIGNvbnRl
bnREYXRhKCk7IH0KICAgICBjb25zdCBDb250ZW50RGF0YSogY29udGVudERhdGEoKSBjb25zdCB7
IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9jb250ZW50LmdldCgpOyB9CkBAIC0xMzYz
LDEyICsxMzU3LDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgTGluZUJveENvbnRhaW4gaW5pdGlh
bExpbmVCb3hDb250YWluKCkgeyByZXR1cm4gTGluZUJveENvbnRhaW5CbG9jayB8IExpbmVCb3hD
b250YWluSW5saW5lIHwgTGluZUJveENvbnRhaW5SZXBsYWNlZDsgfQogICAgIHN0YXRpYyBFSW1h
Z2VSZW5kZXJpbmcgaW5pdGlhbEltYWdlUmVuZGVyaW5nKCkgeyByZXR1cm4gSW1hZ2VSZW5kZXJp
bmdBdXRvOyB9CiAKLSNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAgc3RhdGljIGNvbnN0IEF0
b21pY1N0cmluZyYgaW5pdGlhbEZsb3dUaHJlYWQoKSB7IHJldHVybiBudWxsQXRvbTsgfQogICAg
IHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGluaXRpYWxSZWdpb25UaHJlYWQoKSB7IHJldHVy
biBudWxsQXRvbTsgfQogICAgIHN0YXRpYyBpbnQgaW5pdGlhbFJlZ2lvbkluZGV4KCkgeyByZXR1
cm4gMDsgfQogICAgIHN0YXRpYyBSZWdpb25PdmVyZmxvdyBpbml0aWFsUmVnaW9uT3ZlcmZsb3co
KSB7IHJldHVybiBBdXRvUmVnaW9uT3ZlcmZsb3c7IH0KLSNlbmRpZgogCiAgICAgLy8gS2VlcCB0
aGVzZSBhdCB0aGUgZW5kLgogICAgIHN0YXRpYyBMaW5lQ2xhbXBWYWx1ZSBpbml0aWFsTGluZUNs
YW1wKCkgeyByZXR1cm4gTGluZUNsYW1wVmFsdWUoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgJKHJldmlz
aW9uIDkyNzc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
Q29uc3RhbnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzOCw5ICs0MzgsNyBAQCBlbnVtIEVJbWFn
ZVJlbmRlcmluZyB7IEltYWdlUmVuZGVyaW5nQXV0CiAKIGVudW0gT3JkZXIgeyBMb2dpY2FsT3Jk
ZXIgPSAwLCBWaXN1YWxPcmRlciB9OwogCi0jaWYgRU5BQkxFKENTU19SRUdJT05TKQogZW51bSBS
ZWdpb25PdmVyZmxvdyB7IEF1dG9SZWdpb25PdmVyZmxvdywgQnJlYWtSZWdpb25PdmVyZmxvdyB9
OwotI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhLmNwcAkocmV2aXNpb24gOTI3NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1
LDE1ICs1NSwxMSBAQCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25JCiAg
ICAgLCBtX3BlcnNwZWN0aXZlT3JpZ2luWShSZW5kZXJTdHlsZTo6aW5pdGlhbFBlcnNwZWN0aXZl
T3JpZ2luWSgpKQogICAgICwgbV9wYWdlU2l6ZSgpCiAgICAgLCBtX3BhZ2VTaXplVHlwZShQQUdF
X1NJWkVfQVVUTykKLSNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAgLCBtX2Zsb3dUaHJlYWQo
UmVuZGVyU3R5bGU6OmluaXRpYWxGbG93VGhyZWFkKCkpCiAgICAgLCBtX3JlZ2lvblRocmVhZChS
ZW5kZXJTdHlsZTo6aW5pdGlhbFJlZ2lvblRocmVhZCgpKQogICAgICwgbV9yZWdpb25JbmRleChS
ZW5kZXJTdHlsZTo6aW5pdGlhbFJlZ2lvbkluZGV4KCkpCiAgICAgLCBtX3JlZ2lvbk92ZXJmbG93
KFJlbmRlclN0eWxlOjppbml0aWFsUmVnaW9uT3ZlcmZsb3coKSkKLSNlbmRpZgotI2lmIEVOQUJM
RShDU1NfRVhDTFVTSU9OUykKICAgICAsIG1fd3JhcFNoYXBlKFJlbmRlclN0eWxlOjppbml0aWFs
V3JhcFNoYXBlKCkpCi0jZW5kaWYKIHsKIH0KIApAQCAtMTA2LDE1ICsxMDIsMTEgQEAgU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSQogICAgICwgbV9wZXJzcGVjdGl2ZU9y
aWdpblkoby5tX3BlcnNwZWN0aXZlT3JpZ2luWSkKICAgICAsIG1fcGFnZVNpemUoby5tX3BhZ2VT
aXplKQogICAgICwgbV9wYWdlU2l6ZVR5cGUoby5tX3BhZ2VTaXplVHlwZSkKLSNpZiBFTkFCTEUo
Q1NTX1JFR0lPTlMpCiAgICAgLCBtX2Zsb3dUaHJlYWQoby5tX2Zsb3dUaHJlYWQpCiAgICAgLCBt
X3JlZ2lvblRocmVhZChvLm1fcmVnaW9uVGhyZWFkKQogICAgICwgbV9yZWdpb25JbmRleChvLm1f
cmVnaW9uSW5kZXgpCiAgICAgLCBtX3JlZ2lvbk92ZXJmbG93KG8ubV9yZWdpb25PdmVyZmxvdykK
LSNlbmRpZgotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICAsIG1fd3JhcFNoYXBlKG8u
bV93cmFwU2hhcGUpCi0jZW5kaWYKIHsKIH0KIApAQCAtMTY0LDE2ICsxNTYsMTEgQEAgYm9vbCBT
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRvcgogICAgICAgICAmJiAobV9wZXJzcGVj
dGl2ZU9yaWdpblkgPT0gby5tX3BlcnNwZWN0aXZlT3JpZ2luWSkKICAgICAgICAgJiYgKG1fcGFn
ZVNpemUgPT0gby5tX3BhZ2VTaXplKQogICAgICAgICAmJiAobV9wYWdlU2l6ZVR5cGUgPT0gby5t
X3BhZ2VTaXplVHlwZSkKLSNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAgICAgICYmIChtX2Zs
b3dUaHJlYWQgPT0gby5tX2Zsb3dUaHJlYWQpCiAgICAgICAgICYmIChtX3JlZ2lvblRocmVhZCA9
PSBvLm1fcmVnaW9uVGhyZWFkKQogICAgICAgICAmJiAobV9yZWdpb25JbmRleCA9PSBvLm1fcmVn
aW9uSW5kZXgpCiAgICAgICAgICYmIChtX3JlZ2lvbk92ZXJmbG93ID09IG8ubV9yZWdpb25PdmVy
ZmxvdykKLSNlbmRpZgotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICAgICAgJiYgKG1f
d3JhcFNoYXBlID09IG8ubV93cmFwU2hhcGUpCi0jZW5kaWYKLSAgICAgICAgOworICAgICAgICAm
JiAobV93cmFwU2hhcGUgPT0gby5tX3dyYXBTaGFwZSk7CiB9CiAKIGJvb2wgU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YTo6Y29udGVudERhdGFFcXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEmIG8pIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgJKHJldmlzaW9u
IDkyNzc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDE2ICsxMzYsMTIgQEAgcHVibGlj
OgogICAgIExlbmd0aFNpemUgbV9wYWdlU2l6ZTsKICAgICBQYWdlU2l6ZVR5cGUgbV9wYWdlU2l6
ZVR5cGU7CiAKLSNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAgQXRvbWljU3RyaW5nIG1fZmxv
d1RocmVhZDsKICAgICBBdG9taWNTdHJpbmcgbV9yZWdpb25UaHJlYWQ7CiAgICAgaW50IG1fcmVn
aW9uSW5kZXg7CiAgICAgUmVnaW9uT3ZlcmZsb3cgbV9yZWdpb25PdmVyZmxvdzsKLSNlbmRpZgog
Ci0jaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQogICAgIFJlZlB0cjxDU1NXcmFwU2hhcGU+IG1f
d3JhcFNoYXBlOwotI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YSgpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gOTI3ODQpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0wOC0xMCAgRGF2aWQgSHlh
dHQgIDxoeWF0dEBhcHBsZS5jb20+CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY2MDA0CisKKyAgICAgICAgUmVtb3ZpbmcgaWZkZWZzIGZvciBDU1Mg
RXhjbHVzaW9ucyBhbmQgQ1NTIFJlZ2lvbnMuIFRoZSBjb2RlIGlzIG5vdyBvbiBieSBkZWZhdWx0
LCBzbyB0aGUgbmV3IENTUworICAgICAgICBwcm9wZXJ0aWVzIGFyZSBzaG93aW5nIHVwIGluIHRo
ZSBjb21wdXRlZCBzdHlsZSByZXN1bHRzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1z
dHlsZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2dldENv
bXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtd2l0aG91dC1yZW5kZXJlci1leHBlY3RlZC50eHQ6
CisgICAgICAgICogc3ZnL2Nzcy9nZXRDb21wdXRlZFN0eWxlLWJhc2ljLWV4cGVjdGVkLnR4dDoK
KwogMjAxMS0wOC0xMCAgS2VuaWNoaSBJc2hpYmFzaGkgIDxiYXNoaUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgW0Nocm9taXVtXSBJbXBsZW1lbnQgdGV4dCBzaGFwaW5nIHdpdGggZm9udC1mZWF0
dXJlLXNldHRpbmdzIG9uIExpbnV4CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21w
dXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gOTI3NzQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRl
ZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTg2
LDYgKzE4Niw5IEBAIHpvb206IDE7CiAtd2Via2l0LXVzZXItbW9kaWZ5OiByZWFkLW9ubHk7CiAt
d2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0OwogLXdlYmtpdC13cml0aW5nLW1vZGU6IGhvcml6b250
YWwtdGI7Cistd2Via2l0LWZsb3c6IGF1dG87Cistd2Via2l0LWNvbnRlbnQtb3JkZXI6IDA7Cist
d2Via2l0LXJlZ2lvbi1vdmVyZmxvdzogYXV0bzsKIGNsaXAtcGF0aDogbm9uZTsKIGNsaXAtcnVs
ZTogbm9uemVybzsKIG1hc2s6IG5vbmU7CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVy
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVyLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gOTI3NzQpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVy
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTg1LDYgKzE4NSw5IEBAIENvbXB1dGVk
IHN0eWxlIG9mIGFuIGVsZW1lbnQgd2hvc2UgcGFyZW4KICAgICAtd2Via2l0LXVzZXItbW9kaWZ5
OiByZWFkLW9ubHkKICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0CiAgICAgLXdlYmtpdC13
cml0aW5nLW1vZGU6IGhvcml6b250YWwtdGIKKyAgICAtd2Via2l0LWZsb3c6IGF1dG8KKyAgICAt
d2Via2l0LWNvbnRlbnQtb3JkZXI6IDAKKyAgICAtd2Via2l0LXJlZ2lvbi1vdmVyZmxvdzogYXV0
bwogICAgIGNsaXAtcGF0aDogbm9uZQogICAgIGNsaXAtcnVsZTogbm9uemVybwogICAgIG1hc2s6
IG5vbmUKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS1iYXNpYy1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2Nzcy9nZXRDb21wdXRl
ZFN0eWxlLWJhc2ljLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTI3NzQpCisrKyBMYXlvdXRUZXN0
cy9zdmcvY3NzL2dldENvbXB1dGVkU3R5bGUtYmFzaWMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0zNzAsNiArMzcwLDEyIEBAIHJlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoLXdl
YmtpdC11c2UKIHJlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC11c2VyLXNl
bGVjdCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQogcmVjdDogc3R5bGUuZ2V0UHJvcGVy
dHlWYWx1ZSgtd2Via2l0LXdyaXRpbmctbW9kZSkgOiBob3Jpem9udGFsLXRiCiByZWN0OiBzdHls
ZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtd3JpdGluZy1tb2RlKSA6IFtvYmplY3QgQ1NT
UHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtZmxv
dykgOiBhdXRvCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtZmxvdykg
OiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1
ZSgtd2Via2l0LWNvbnRlbnQtb3JkZXIpIDogMAorcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NW
YWx1ZSgtd2Via2l0LWNvbnRlbnQtb3JkZXIpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0K
K3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoLXdlYmtpdC1yZWdpb24tb3ZlcmZsb3cpIDog
YXV0bworcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0LXJlZ2lvbi1vdmVy
ZmxvdykgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQogcmVjdDogc3R5bGUuZ2V0UHJvcGVy
dHlWYWx1ZShjbGlwLXBhdGgpIDogbm9uZQogcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1
ZShjbGlwLXBhdGgpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KIHJlY3Q6IHN0eWxlLmdl
dFByb3BlcnR5VmFsdWUoY2xpcC1ydWxlKSA6IG5vbnplcm8KQEAgLTgxNiw2ICs4MjIsMTIgQEAg
Zzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LXVzZXItcwogZzogc3R5bGUuZ2V0UHJv
cGVydHlDU1NWYWx1ZSgtd2Via2l0LXVzZXItc2VsZWN0KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZl
VmFsdWVdCiBnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtd3JpdGluZy1tb2RlKSA6
IGhvcml6b250YWwtdGIKIGc6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC13cml0
aW5nLW1vZGUpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdldFByb3Bl
cnR5VmFsdWUoLXdlYmtpdC1mbG93KSA6IGF1dG8KK2c6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFs
dWUoLXdlYmtpdC1mbG93KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtY29udGVudC1vcmRlcikgOiAwCitnOiBzdHlsZS5nZXRQ
cm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtY29udGVudC1vcmRlcikgOiBbb2JqZWN0IENTU1ByaW1p
dGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LXJlZ2lvbi1vdmVy
ZmxvdykgOiBhdXRvCitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtcmVnaW9u
LW92ZXJmbG93KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCiBnOiBzdHlsZS5nZXRQcm9w
ZXJ0eVZhbHVlKGNsaXAtcGF0aCkgOiBub25lCiBnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVl
KGNsaXAtcGF0aCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQogZzogc3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZShjbGlwLXJ1bGUpIDogbm9uemVybwo=
</data>
<flag name="review"
          id="99158"
          type_id="1"
          status="-"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103525</attachid>
            <date>2011-08-10 13:16:59 -0700</date>
            <delta_ts>2011-08-10 13:20:44 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>61056</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyNzg0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNzUgQEAKKzIwMTEtMDgtMTAgIERhdmlkIEh5
YXR0ICA8aHlhdHRAYXBwbGUuY29tPgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NjAwNAorCisgICAgICAgIFJlbW92ZSBpZmRlZnMgZm9yIENTUyBF
eGNsdXNpb25zIChzaW5jZSB0aGUgZmVhdHVyZSBkb2Vzbid0IGV4aXN0IGFueSBsb25nZXIgYW5k
IGhhcyBtb3JwaGVkIGludG8gcG9zaXRpb25lZAorICAgICAgICBmbG9hdHMgaW5zdGVhZCkuIEdv
IGFoZWFkIGFuZCB5YW5rIHRoZSBpZmRlZnMgZm9yIENTUyBSZWdpb25zIGFsc28gYW5kIGp1c3Qg
dHVybiB0aGVtIG9uLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWc6CisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3Bl
cnR5Q1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNl
cjo6cGFyc2VDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VXcmFw
U2hhcGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUZyb21GbG93Q29udGVu
dCk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5oOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRp
dmVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6aW5pdCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y2xlYW51cCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Z2V0U3RyaW5nVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmNzc1RleHQpOgorICAgICAgICAqIGNzcy9DU1NQ
cmltaXRpdmVWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Omdl
dFNoYXBlVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgUmVnaW9uT3Zl
cmZsb3cpOgorICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0eU5hbWVzLmluOgorICAgICAgICAqIGNz
cy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0
b3I6OmFwcGx5UHJvcGVydHkpOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgor
ICAgICAgICAqIGNzcy9DU1NXcmFwU2hhcGVzLmNwcDoKKyAgICAgICAgKiBjc3MvQ1NTV3JhcFNo
YXBlcy5oOgorICAgICAgICAqIGNzcy9TVkdDU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAq
IGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmRpZmYpOgorICAgICAgICAq
IGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmVu
ZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZVJlbmRlcmluZ0NvbnRleHQ6OnNldFN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVS
ZW5kZXJpbmdDb250ZXh0OjpuZXh0UmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJl
bmRlcmluZ0NvbnRleHQ6OnByZXZpb3VzUmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZVJlbmRlcmluZ0NvbnRleHQ6OnBhcmVudFJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGVSZW5kZXJpbmdDb250ZXh0Ojptb3ZlVG9GbG93VGhyZWFkSWZOZWVkZWQpOgorICAgICAgICAo
V2ViQ29yZTo6Tm9kZVJlbmRlcmVyRmFjdG9yeTo6Y3JlYXRlUmVuZGVyZXJJZk5lZWRlZCk6Cisg
ICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckZsb3dUaHJlYWQuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhy
ZWFkLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjpjb2xsZWN0TGF5ZXJzKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6Y3JlYXRl
T2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmlzUmVuZGVyUmVnaW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck9iamVjdDo6aXNSZW5kZXJGbG93VGhyZWFkKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyUmVnaW9uLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6d3JpdGVMYXllcnMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OnJlbmRlckZsb3dUaHJlYWRXaXRoTmFtZSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmRpZmYp
OgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6SW5oZXJpdGVkRmxhZ3M6OnJlZ2lvbk92ZXJmbG93KToKKyAgICAgICAgKFdlYkNvcmU6
OkluaGVyaXRlZEZsYWdzOjpzZXRSZWdpb25PdmVyZmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpJ
bmhlcml0ZWRGbGFnczo6aW5pdGlhbFdyYXBTaGFwZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmhl
cml0ZWRGbGFnczo6aW5pdGlhbFJlZ2lvbk92ZXJmbG93KToKKyAgICAgICAgKiByZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJh
cmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0pOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmg6CisKIDIwMTEt
MDgtMTAgIEtlbmljaGkgSXNoaWJhc2hpICA8YmFzaGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFtDaHJvbWl1bV0gSW1wbGVtZW50IHRleHQgc2hhcGluZyB3aXRoIGZvbnQtZmVhdHVyZS1zZXR0
aW5ncyBvbiBMaW51eApJbmRleDogU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHJldmlzaW9uIDkyNzc0KQorKysgU291cmNl
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcg
Y29weSkKQEAgLTU0LDggKzU0LDYgQEAgRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyA9IDsK
IEVOQUJMRV9BTklNQVRJT05fQVBJID0gOwogRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HID0gRU5B
QkxFX0NIQU5ORUxfTUVTU0FHSU5HOwogRU5BQkxFX0NTUzNfRkxFWEJPWCA9IDsKLUVOQUJMRV9D
U1NfRVhDTFVTSU9OUyA9IDsKLUVOQUJMRV9DU1NfUkVHSU9OUyA9IDsKIEVOQUJMRV9EQVRBQkFT
RSA9IEVOQUJMRV9EQVRBQkFTRTsKIEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TID0gOwogRU5B
QkxFX0RFVEFJTFMgPSBFTkFCTEVfREVUQUlMUzsKQEAgLTEwMCw0ICs5OCw0IEBAIEVOQUJMRV9Y
SFRNTE1QID0gOwogRU5BQkxFX1hQQVRIID0gRU5BQkxFX1hQQVRIOwogRU5BQkxFX1hTTFQgPSBF
TkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAk
KEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FOSU1BVElPTl9BUEkpICQo
RU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRf
QkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0NTUzNfRkxFWEJPWCkgJChFTkFCTEVfQ1NTX0VY
Q0xVU0lPTlMpICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFC
TEVfREFUQUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJ
TFMpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9B
RCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9G
SUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQo
RU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVY
RURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gp
ICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQo
RU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJf
VEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNB
VElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RB
RykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQo
RU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJ
T04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdT
KSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFC
TEVfU1ZHX1VTRSkgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9WSURFTykg
JChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8p
ICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JL
RVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CitG
RUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJB
VEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChF
TkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElP
TikgJChFTkFCTEVfQ1NTM19GTEVYQk9YKSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFU
QUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQo
RU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChF
TkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxFX1NZ
U1RFTSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxF
X0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFU
QUJBU0UpICQoRU5BQkxFX0lOUFVUX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5B
QkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxF
X01BVEhNTCkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfVEFHKSAk
KEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMp
ICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChF
TkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxF
X1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQo
RU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVO
QUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZH
X1VTRSkgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9WSURFTykgJChFTkFC
TEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5B
QkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAk
KEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cAkocmV2aXNpb24gOTI3NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQ3LDEyICsyNDcsMTAgQEAgc3Rh
dGljIGNvbnN0IGludCBjb21wdXRlZFByb3BlcnRpZXNbXSA9IAogICAgIENTU1Byb3BlcnR5V2Vi
a2l0VXNlckRyYWcsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRVc2VyTW9kaWZ5LAogICAgIENTU1By
b3BlcnR5V2Via2l0VXNlclNlbGVjdCwKLSAgICBDU1NQcm9wZXJ0eVdlYmtpdFdyaXRpbmdNb2Rl
Ci0jaWYgRU5BQkxFKENTU19SRUdJT05TKQotICAgICwgQ1NTUHJvcGVydHlXZWJraXRGbG93Ci0g
ICAgLCBDU1NQcm9wZXJ0eVdlYmtpdENvbnRlbnRPcmRlcgotICAgICwgQ1NTUHJvcGVydHlXZWJr
aXRSZWdpb25PdmVyZmxvdwotI2VuZGlmCisgICAgQ1NTUHJvcGVydHlXZWJraXRXcml0aW5nTW9k
ZSwKKyAgICBDU1NQcm9wZXJ0eVdlYmtpdEZsb3csCisgICAgQ1NTUHJvcGVydHlXZWJraXRDb250
ZW50T3JkZXIsCisgICAgQ1NTUHJvcGVydHlXZWJraXRSZWdpb25PdmVyZmxvdwogI2lmIEVOQUJM
RShTVkcpCiAgICAgLAogICAgIENTU1Byb3BlcnR5Q2xpcFBhdGgsCkBAIC0xNjgxLDcgKzE2Nzks
NiBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjCiAgICAgICAgICAg
ICByZXR1cm4gY291bnRlclRvQ1NTVmFsdWUoc3R5bGUuZ2V0KCksIHByb3BlcnR5SUQsIHByaW1p
dGl2ZVZhbHVlQ2FjaGUpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5Q291bnRlclJlc2V0Ogog
ICAgICAgICAgICAgcmV0dXJuIGNvdW50ZXJUb0NTU1ZhbHVlKHN0eWxlLmdldCgpLCBwcm9wZXJ0
eUlELCBwcmltaXRpdmVWYWx1ZUNhY2hlKTsKLSNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRGbG93OgogICAgICAgICAgICAgaWYgKHN0eWxlLT5m
bG93VGhyZWFkKCkuaXNOdWxsKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHByaW1pdGl2ZVZh
bHVlQ2FjaGUtPmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOwpAQCAtMTY5MCw3
ICsxNjg3LDcgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlYwogICAg
ICAgICAgICAgcmV0dXJuIHByaW1pdGl2ZVZhbHVlQ2FjaGUtPmNyZWF0ZVZhbHVlKHN0eWxlLT5y
ZWdpb25JbmRleCgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUik7CiAgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRSZWdpb25PdmVyZmxvdzoKICAgICAgICAgICAgIHJldHVybiBw
cmltaXRpdmVWYWx1ZUNhY2hlLT5jcmVhdGVWYWx1ZShzdHlsZS0+cmVnaW9uT3ZlcmZsb3coKSk7
Ci0jZW5kaWYKKwogICAgICAgICAvKiBTaG9ydGhhbmQgcHJvcGVydGllcywgY3VycmVudGx5IG5v
dCBzdXBwb3J0ZWQgc2VlIGJ1ZyAxMzY1OCovCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNr
Z3JvdW5kOgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyOgpAQCAtMTc5OSwxMyArMTc5
NiwxMSBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjCiAgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2l0aW9uOgogICAgICAgICAgICAgYnJlYWs7CiAK
LSNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJr
aXRXcmFwU2hhcGU6CiAgICAgICAgICAgICBpZiAoIXN0eWxlLT53cmFwU2hhcGUoKSkKICAgICAg
ICAgICAgICAgICByZXR1cm4gcHJpbWl0aXZlVmFsdWVDYWNoZS0+Y3JlYXRlSWRlbnRpZmllclZh
bHVlKENTU1ZhbHVlQXV0byk7CiAKICAgICAgICAgICAgIHJldHVybiBwcmltaXRpdmVWYWx1ZUNh
Y2hlLT5jcmVhdGVWYWx1ZShzdHlsZS0+d3JhcFNoYXBlKCkpOwotI2VuZGlmCiAKICNpZiBFTkFC
TEUoU1ZHKQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5Q2xpcFBhdGg6CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcAkocmV2aXNpb24gOTI3NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU4OSw3ICsxNTg5LDcgQEAgYm9vbCBD
U1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgogICAgICAgICAgICAgdmFsaWRQcmlt
aXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZUaW1lIHwgRkludGVnZXIgfCBGTm9uTmVnLCBtX3N0
cmljdCk7CiAgICAgICAgIGJyZWFrOwogI2VuZGlmCi0jaWYgRU5BQkxFKENTU19SRUdJT05TKQor
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZsb3c6CiAgICAgICAgIHJldHVybiBwYXJzZUZs
b3dUaHJlYWQocHJvcElkLCBpbXBvcnRhbnQpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRD
b250ZW50T3JkZXI6CkBAIC0xNTk5LDcgKzE1OTksNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VW
YWx1ZShpbnQgcHJvcElkLCBiCiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUF1dG8gfHwgaWQg
PT0gQ1NTVmFsdWVXZWJraXRCcmVhaykKICAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1
ZTsKICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKKwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRV
c2VyRHJhZzogLy8gYXV0byB8IG5vbmUgfCBlbGVtZW50CiAgICAgICAgIGlmIChpZCA9PSBDU1NW
YWx1ZUF1dG8gfHwgaWQgPT0gQ1NTVmFsdWVOb25lIHx8IGlkID09IENTU1ZhbHVlRWxlbWVudCkK
ICAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKQEAgLTIwOTIsMTQgKzIwOTIsMTIg
QEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgogICAgICAgICAgICAg
cmV0dXJuIHBhcnNlRm9udEZlYXR1cmVTZXR0aW5ncyhpbXBvcnRhbnQpOwogICAgICAgICBicmVh
azsKIAotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0V3JhcFNoYXBlOgogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVBdXRvKQogICAgICAgICAg
ICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBlbHNlIGlmICh2YWx1ZS0+dW5pdCA9
PSBDU1NQYXJzZXJWYWx1ZTo6RnVuY3Rpb24pCiAgICAgICAgICAgICByZXR1cm4gcGFyc2VXcmFw
U2hhcGUoaW1wb3J0YW50KTsKICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShT
VkcpCiAgICAgZGVmYXVsdDoKQEAgLTI2ODEsMTIgKzI2NzksMTAgQEAgYm9vbCBDU1NQYXJzZXI6
OnBhcnNlQ29udGVudChpbnQgcHJvcElkLAogICAgICAgICAgICAgfSBlbHNlIGlmIChpc0dlbmVy
YXRlZEltYWdlVmFsdWUodmFsKSkgewogICAgICAgICAgICAgICAgIGlmICghcGFyc2VHZW5lcmF0
ZWRJbWFnZShwYXJzZWRWYWx1ZSkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAgICAgICAgICB9IGVsc2UgaWYgKGVxdWFsSWdu
b3JpbmdDYXNlKHZhbC0+ZnVuY3Rpb24tPm5hbWUsICItd2Via2l0LWZyb20tZmxvdygiKSkgewog
ICAgICAgICAgICAgICAgIHBhcnNlZFZhbHVlID0gcGFyc2VGcm9tRmxvd0NvbnRlbnQoYXJncyk7
CiAgICAgICAgICAgICAgICAgaWYgKCFwYXJzZWRWYWx1ZSkKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotI2VuZGlmCiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0gZWxzZSBpZiAodmFsLT51bml0ID09IENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfSURFTlQpIHsKQEAgLTM2NzMsNyArMzY2OSw2IEBAIGJvb2wgQ1NTUGFy
c2VyOjpwYXJzZVNoYXBlKGludCBwcm9wSWQsIGIKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLSNp
ZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiBQYXNzUmVmUHRyPENTU1dyYXBTaGFwZT4gQ1NTUGFy
c2VyOjpwYXJzZVdyYXBTaGFwZVJlY3QoQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzKQogewogICAg
IEFTU0VSVChhcmdzKTsKQEAgLTM4OTksNyArMzg5NCw2IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJz
ZVdyYXBTaGFwZShib29sIGltcG8KIAogICAgIHJldHVybiBmYWxzZTsKIH0KLSNlbmRpZiAvLyBF
TkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAKIC8vIFsgJ2ZvbnQtc3R5bGUnIHx8ICdmb250LXZhcmlh
bnQnIHx8ICdmb250LXdlaWdodCcgXT8gJ2ZvbnQtc2l6ZScgWyAvICdsaW5lLWhlaWdodCcgXT8g
J2ZvbnQtZmFtaWx5JwogYm9vbCBDU1NQYXJzZXI6OnBhcnNlRm9udChib29sIGltcG9ydGFudCkK
QEAgLTYwOTQsNyArNjA4OCw2IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWVMaXN0PiBDU1NQYXJzZXI6
OnBhcnMKICAgICByZXR1cm4gbGlzdC5yZWxlYXNlKCk7CiB9CiAKLSNpZiBFTkFCTEUoQ1NTX1JF
R0lPTlMpCiAvLyBhdXRvIHwgPGZsb3dfbmFtZT4KIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUZsb3dU
aHJlYWQoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiB7CkBAIC02MTM5LDcgKzYxMzIsNiBA
QCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlRnJvCiAKICAgICByZXR1cm4g
Q1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShhcmdGbG93VGhyZWFkTmFtZS0+c3RyaW5nLCBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX0ZST01fRkxPVyk7CiB9Ci0jZW5kaWYKIAogYm9vbCBDU1NQYXJz
ZXI6OnBhcnNlVHJhbnNmb3JtT3JpZ2luKGludCBwcm9wSWQsIGludCYgcHJvcElkMSwgaW50JiBw
cm9wSWQyLCBpbnQmIHByb3BJZDMsIFJlZlB0cjxDU1NWYWx1ZT4mIHZhbHVlLCBSZWZQdHI8Q1NT
VmFsdWU+JiB2YWx1ZTIsIFJlZlB0cjxDU1NWYWx1ZT4mIHZhbHVlMykKIHsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmgJKHJldmlzaW9uIDkyNzc0KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01MiwxMCArNTIsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgY2xhc3MgU3R5bGVCYXNlOwogICAgIGNsYXNzIFdlYktpdENTU0tleWZyYW1l
UnVsZTsKICAgICBjbGFzcyBXZWJLaXRDU1NLZXlmcmFtZXNSdWxlOwotCi0jaWYgRU5BQkxFKENT
U19FWENMVVNJT05TKQogICAgIGNsYXNzIENTU1dyYXBTaGFwZTsKLSNlbmRpZgogCiAgICAgY2xh
c3MgQ1NTUGFyc2VyIHsKICAgICBwdWJsaWM6CkBAIC0xMjksMTMgKzEyNiwxMSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICAgICAgYm9vbCBwYXJzZVNoYXBlKGludCBwcm9wSWQsIGJvb2wg
aW1wb3J0YW50KTsKIAotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICAgICAgYm9vbCBw
YXJzZVdyYXBTaGFwZShib29sIGltcG9ydGFudCk7CiAgICAgICAgIFBhc3NSZWZQdHI8Q1NTV3Jh
cFNoYXBlPiBwYXJzZVdyYXBTaGFwZVJlY3QoQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzKTsKICAg
ICAgICAgUGFzc1JlZlB0cjxDU1NXcmFwU2hhcGU+IHBhcnNlV3JhcFNoYXBlQ2lyY2xlKENTU1Bh
cnNlclZhbHVlTGlzdCogYXJncyk7CiAgICAgICAgIFBhc3NSZWZQdHI8Q1NTV3JhcFNoYXBlPiBw
YXJzZVdyYXBTaGFwZUVsbGlwc2UoQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzKTsKICAgICAgICAg
UGFzc1JlZlB0cjxDU1NXcmFwU2hhcGU+IHBhcnNlV3JhcFNoYXBlUG9seWdvbihDU1NQYXJzZXJW
YWx1ZUxpc3QqIGFyZ3MpOwotI2VuZGlmCiAKICAgICAgICAgYm9vbCBwYXJzZUZvbnQoYm9vbCBp
bXBvcnRhbnQpOwogICAgICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlTGlzdD4gcGFyc2VGb250RmFt
aWx5KCk7CkBAIC0xNjgsMTAgKzE2Myw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
UGFzc1JlZlB0cjxDU1NWYWx1ZT4gcGFyc2VXQ1NTSW5wdXRQcm9wZXJ0eSgpOwogI2VuZGlmCiAK
LSNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCi0gICAgICAgIGJvb2wgcGFyc2VGbG93VGhyZWFkKGlu
dCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KTsKLSAgICAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4g
cGFyc2VGcm9tRmxvd0NvbnRlbnQoQ1NTUGFyc2VyVmFsdWVMaXN0Kik7Ci0jZW5kaWYKICAgICAg
ICAgLy8gQ1NTMyBQYXJzaW5nIFJvdXRpbmVzIChmb3IgcHJvcGVydGllcyBzcGVjaWZpYyB0byBD
U1MzKQogICAgICAgICBib29sIHBhcnNlU2hhZG93KGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50
KTsKICAgICAgICAgYm9vbCBwYXJzZUJvcmRlckltYWdlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0
YW50LCBSZWZQdHI8Q1NTVmFsdWU+Jik7CkBAIC0yMDAsNiArMTkxLDkgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBib29sIHBhcnNlRm9udEZlYXR1cmVUYWcoQ1NTVmFsdWVMaXN0Kik7
CiAgICAgICAgIGJvb2wgcGFyc2VGb250RmVhdHVyZVNldHRpbmdzKGJvb2wgaW1wb3J0YW50KTsK
IAorICAgICAgICBib29sIHBhcnNlRmxvd1RocmVhZChpbnQgcHJvcElkLCBib29sIGltcG9ydGFu
dCk7CisgICAgICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlRnJvbUZsb3dDb250ZW50KENT
U1BhcnNlclZhbHVlTGlzdCopOworCiAgICAgICAgIGludCB5eXBhcnNlKCk7CiAKICAgICAgICAg
Q1NTUGFyc2VyU2VsZWN0b3IqIGNyZWF0ZUZsb2F0aW5nU2VsZWN0b3IoKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAkocmV2aXNpb24gOTI3NzQpCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMTEsMTQgKzIxMSwxMiBAQCB2b2lkIENTU1ByaW1pdGl2ZVZhbHVlOjppbml0KFBhc3NSZWZQ
dHI8CiAgICAgbV92YWx1ZS5wYWlyID0gcC5yZWxlYXNlUmVmKCk7CiB9CiAKLSNpZiBFTkFCTEUo
Q1NTX0VYQ0xVU0lPTlMpCiB2b2lkIENTU1ByaW1pdGl2ZVZhbHVlOjppbml0KFBhc3NSZWZQdHI8
Q1NTV3JhcFNoYXBlPiBzaGFwZSkKIHsKICAgICBtX3R5cGUgPSBDU1NfU0hBUEU7CiAgICAgbV9o
YXNDYWNoZWRDU1NUZXh0ID0gZmFsc2U7CiAgICAgbV92YWx1ZS5zaGFwZSA9IHNoYXBlLnJlbGVh
c2VSZWYoKTsKIH0KLSNlbmRpZgogCiBDU1NQcmltaXRpdmVWYWx1ZTo6fkNTU1ByaW1pdGl2ZVZh
bHVlKCkKIHsKQEAgLTIzMSw5ICsyMjksNyBAQCB2b2lkIENTU1ByaW1pdGl2ZVZhbHVlOjpjbGVh
bnVwKCkKICAgICAgICAgY2FzZSBDU1NfU1RSSU5HOgogICAgICAgICBjYXNlIENTU19VUkk6CiAg
ICAgICAgIGNhc2UgQ1NTX0FUVFI6Ci0jaWYgRU5BQkxFKENTU19SRUdJT05TKQogICAgICAgICBj
YXNlIENTU19GUk9NX0ZMT1c6Ci0jZW5kaWYKICAgICAgICAgY2FzZSBDU1NfUEFSU0VSX0hFWENP
TE9SOgogICAgICAgICAgICAgaWYgKG1fdmFsdWUuc3RyaW5nKQogICAgICAgICAgICAgICAgIG1f
dmFsdWUuc3RyaW5nLT5kZXJlZigpOwpAQCAtMjUzLDExICsyNDksOSBAQCB2b2lkIENTU1ByaW1p
dGl2ZVZhbHVlOjpjbGVhbnVwKCkKICAgICAgICAgICAgICAgICBtX3ZhbHVlLnJlZ2lvbi0+ZGVy
ZWYoKTsKICAgICAgICAgICAgIGJyZWFrOwogI2VuZGlmCi0jaWYgRU5BQkxFKENTU19FWENMVVNJ
T05TKQogICAgICAgICBjYXNlIENTU19TSEFQRToKICAgICAgICAgICAgIG1fdmFsdWUuc2hhcGUt
PmRlcmVmKCk7CiAgICAgICAgICAgICBicmVhazsKLSNlbmRpZgogICAgICAgICBkZWZhdWx0Ogog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtNTIxLDkgKzUxNSw3IEBAIFN0cmluZyBDU1NQ
cmltaXRpdmVWYWx1ZTo6Z2V0U3RyaW5nVmFsdWUKICAgICAgICAgY2FzZSBDU1NfU1RSSU5HOgog
ICAgICAgICBjYXNlIENTU19BVFRSOgogICAgICAgICBjYXNlIENTU19VUkk6Ci0jaWYgRU5BQkxF
KENTU19SRUdJT05TKQogICAgICAgICBjYXNlIENTU19GUk9NX0ZMT1c6Ci0jZW5kaWYKICAgICAg
ICAgICAgIHJldHVybiBtX3ZhbHVlLnN0cmluZzsKICAgICAgICAgY2FzZSBDU1NfSURFTlQ6CiAg
ICAgICAgICAgICByZXR1cm4gdmFsdWVPclByb3BlcnR5TmFtZShtX3ZhbHVlLmlkZW50KTsKQEAg
LTU0MSw5ICs1MzMsNyBAQCBTdHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6OmdldFN0cmluZ1ZhbHVl
CiAgICAgICAgIGNhc2UgQ1NTX1NUUklORzoKICAgICAgICAgY2FzZSBDU1NfQVRUUjoKICAgICAg
ICAgY2FzZSBDU1NfVVJJOgotI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKICAgICAgICAgY2FzZSBD
U1NfRlJPTV9GTE9XOgotI2VuZGlmCiAgICAgICAgICAgICAgcmV0dXJuIG1fdmFsdWUuc3RyaW5n
OwogICAgICAgICBjYXNlIENTU19JREVOVDoKICAgICAgICAgICAgIHJldHVybiB2YWx1ZU9yUHJv
cGVydHlOYW1lKG1fdmFsdWUuaWRlbnQpOwpAQCAtNzA3LDExICs2OTcsOSBAQCBTdHJpbmcgQ1NT
UHJpbWl0aXZlVmFsdWU6OmNzc1RleHQoKSBjb25zCiAgICAgICAgIGNhc2UgQ1NTX1NUUklORzoK
ICAgICAgICAgICAgIHRleHQgPSBxdW90ZUNTU1N0cmluZ0lmTmVlZGVkKG1fdmFsdWUuc3RyaW5n
KTsKICAgICAgICAgICAgIGJyZWFrOwotI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKICAgICAgICAg
Y2FzZSBDU1NfRlJPTV9GTE9XOgogICAgICAgICAgICAgdGV4dCA9ICItd2Via2l0LWZyb20tZmxv
dygiICsgcXVvdGVDU1NTdHJpbmdJZk5lZWRlZChtX3ZhbHVlLnN0cmluZykgKyAiKSI7CiAgICAg
ICAgICAgICBicmVhazsKLSNlbmRpZgogICAgICAgICBjYXNlIENTU19VUkk6CiAgICAgICAgICAg
ICB0ZXh0ID0gInVybCgiICsgcXVvdGVDU1NVUkxJZk5lZWRlZChtX3ZhbHVlLnN0cmluZykgKyAi
KSI7CiAgICAgICAgICAgICBicmVhazsKQEAgLTg0MywxMSArODMxLDkgQEAgU3RyaW5nIENTU1By
aW1pdGl2ZVZhbHVlOjpjc3NUZXh0KCkgY29ucwogICAgICAgICBjYXNlIENTU19QQVJTRVJfSURF
TlRJRklFUjoKICAgICAgICAgICAgIHRleHQgPSBxdW90ZUNTU1N0cmluZ0lmTmVlZGVkKG1fdmFs
dWUuc3RyaW5nKTsKICAgICAgICAgICAgIGJyZWFrOwotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9O
UykKICAgICAgICAgY2FzZSBDU1NfU0hBUEU6CiAgICAgICAgICAgICB0ZXh0ID0gbV92YWx1ZS5z
aGFwZS0+Y3NzVGV4dCgpOwogICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKICAgICB9CiAKICAg
ICBBU1NFUlQoIWNzc1RleHRDYWNoZSgpLmNvbnRhaW5zKHRoaXMpKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCShyZXZpc2lvbiA5Mjc3NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxMCAr
MzYsNyBAQCBjbGFzcyBQYWlyOwogY2xhc3MgUkdCQ29sb3I7CiBjbGFzcyBSZWN0OwogY2xhc3Mg
UmVuZGVyU3R5bGU7Ci0KLSNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiBjbGFzcyBDU1NXcmFw
U2hhcGU7Ci0jZW5kaWYKIAogc3RydWN0IExlbmd0aDsKIApAQCAtMTg3LDkgKzE4NCw3IEBAIHB1
YmxpYzoKIAogICAgIERhc2hib2FyZFJlZ2lvbiogZ2V0RGFzaGJvYXJkUmVnaW9uVmFsdWUoKSBj
b25zdCB7IHJldHVybiBtX3R5cGUgIT0gQ1NTX0RBU0hCT0FSRF9SRUdJT04gPyAwIDogbV92YWx1
ZS5yZWdpb247IH0KIAotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICBDU1NXcmFwU2hh
cGUqIGdldFNoYXBlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgIT0gQ1NTX1NIQVBFID8g
MCA6IG1fdmFsdWUuc2hhcGU7IH0KLSNlbmRpZgogCiAgICAgaW50IGdldElkZW50KCkgY29uc3Q7
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIG9wZXJhdG9yIFQoKSBjb25zdDsgLy8g
RGVmaW5lZCBpbiBDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKQEAgLTIzMCw5ICsyMjUsOCBA
QCBwcml2YXRlOgogICAgIHZvaWQgaW5pdChQYXNzUmVmUHRyPFJlY3Q+KTsKICAgICB2b2lkIGlu
aXQoUGFzc1JlZlB0cjxQYWlyPik7CiAgICAgdm9pZCBpbml0KFBhc3NSZWZQdHI8RGFzaGJvYXJk
UmVnaW9uPik7IC8vIEZJWE1FOiBEYXNoYm9hcmQgcmVnaW9uIHNob3VsZCBub3QgYmUgYSBwcmlt
aXRpdmUgdmFsdWUuCi0jaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQogICAgIHZvaWQgaW5pdChQ
YXNzUmVmUHRyPENTU1dyYXBTaGFwZT4pOwotI2VuZGlmCisKICAgICBib29sIGdldERvdWJsZVZh
bHVlSW50ZXJuYWwoVW5pdFR5cGVzIHRhcmdldFVuaXRUeXBlLCBkb3VibGUqIHJlc3VsdCkgY29u
c3Q7CiAKICAgICBkb3VibGUgY29tcHV0ZUxlbmd0aERvdWJsZShSZW5kZXJTdHlsZSogY3VycmVu
dFN0eWxlLCBSZW5kZXJTdHlsZSogcm9vdFN0eWxlLCBkb3VibGUgbXVsdGlwbGllciwgYm9vbCBj
b21wdXRpbmdGb250U2l6ZSk7CkBAIC0yNTIsOSArMjQ2LDcgQEAgcHJpdmF0ZToKICAgICAgICAg
dW5zaWduZWQgcmdiY29sb3I7CiAgICAgICAgIFBhaXIqIHBhaXI7CiAgICAgICAgIERhc2hib2Fy
ZFJlZ2lvbiogcmVnaW9uOwotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICAgICAgQ1NT
V3JhcFNoYXBlKiBzaGFwZTsKLSNlbmRpZgogICAgIH0gbV92YWx1ZTsKIH07CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAkocmV2aXNp
b24gOTI3NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5n
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMyLDcgKzE0MzIsNiBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlCiAgICAgfQogfQogCi0jaWYgRU5BQkxFKENTU19SRUdJ
T05TKQogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKFJlZ2lvbk92ZXJmbG93IGUpCiAgICAgOiBtX3R5cGUoQ1NTX0lERU5UKQogICAgICwgbV9o
YXNDYWNoZWRDU1NUZXh0KGZhbHNlKQpAQCAtMTQ1OSw3ICsxNDU4LDYgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZQogICAgICAgICByZXR1cm4gQXV0b1JlZ2lvbk92
ZXJmbG93OwogICAgIH0KIH0KLSNlbmRpZgogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRU1hcnF1ZWVEaXJlY3Rpb24gZSkKICAgICA6IG1f
dHlwZShDU1NfSURFTlQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1l
cy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5p
bgkocmV2aXNpb24gOTI3NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1l
cy5pbgkod29ya2luZyBjb3B5KQpAQCAtMzI3LDExICszMjcsOCBAQCB6LWluZGV4CiAtd2Via2l0
LXVzZXItZHJhZwogLXdlYmtpdC11c2VyLW1vZGlmeQogLXdlYmtpdC11c2VyLXNlbGVjdAotI2lm
IGRlZmluZWQoRU5BQkxFX0NTU19SRUdJT05TKSAmJiBFTkFCTEVfQ1NTX1JFR0lPTlMKIC13ZWJr
aXQtZmxvdwogLXdlYmtpdC1jb250ZW50LW9yZGVyCiAtd2Via2l0LXJlZ2lvbi1vdmVyZmxvdwot
I2VuZGlmCi0jaWYgZGVmaW5lZChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpICYmIEVOQUJMRV9DU1Nf
RVhDTFVTSU9OUwogLXdlYmtpdC13cmFwLXNoYXBlCi0jZW5kaWYKKwpJbmRleDogU291cmNlL1dl
YkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkocmV2aXNpb24gOTI3NzQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwMjMs
NyArNDAyMyw2IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAg
ICAgICAgaWYgKCF2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkKICAgICAgICAgICAgIHJldHVybjsKIAot
I2lmIEVOQUJMRShDU1NfUkVHSU9OUykKICAgICAgICAgQ1NTVmFsdWVMaXN0SW5zcGVjdG9yIGlu
c3BlY3RvciA9IHZhbHVlOwogICAgICAgICBpZiAoaW5zcGVjdG9yLmxlbmd0aCgpID09IDEgJiYg
aW5zcGVjdG9yLmZpcnN0KCktPmlzUHJpbWl0aXZlVmFsdWUoKSkgewogICAgICAgICAgICAgQ1NT
UHJpbWl0aXZlVmFsdWUqIGNvbnRlbnRWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZh
bHVlKj4oaW5zcGVjdG9yLmZpcnN0KCkpOwpAQCAtNDAzMiw3ICs0MDMxLDYgQEAgdm9pZCBDU1NT
dHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQotI2VuZGlmCiAKICAgICAgICAgYm9vbCBkaWRTZXQg
PSBmYWxzZTsKICAgICAgICAgZm9yIChDU1NWYWx1ZUxpc3RJdGVyYXRvciBpID0gdmFsdWU7IGku
aGFzTW9yZSgpOyBpLmFkdmFuY2UoKSkgewpAQCAtNDY4Nyw3ICs0Njg1LDcgQEAgdm9pZCBDU1NT
dHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgICAgICB9CiAgICAgICAgIHJldHVy
bjsKICNlbmRpZgotI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKKwogICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRGbG93OgogICAgICAgICBpZiAoaXNJbml0aWFsKQogICAgICAgICAgICAgSEFORExF
X0lOSVRJQUxfQ09ORChDU1NQcm9wZXJ0eVdlYmtpdEZsb3csIEZsb3dUaHJlYWQpOwpAQCAtNDcw
Nyw3ICs0NzA1LDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAog
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRSZWdpb25PdmVyZmxvdzoKICAgICAgICAgSEFORExF
X0lOSEVSSVRfQU5EX0lOSVRJQUxfQU5EX1BSSU1JVElWRShyZWdpb25PdmVyZmxvdywgUmVnaW9u
T3ZlcmZsb3cpOwogICAgICAgICByZXR1cm47Ci0jZW5kaWYKKwogICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRNYXJxdWVlRGlyZWN0aW9uOgogICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5J
VElBTF9BTkRfUFJJTUlUSVZFKG1hcnF1ZWVEaXJlY3Rpb24sIE1hcnF1ZWVEaXJlY3Rpb24pCiAg
ICAgICAgIHJldHVybjsKQEAgLTUwNTEsNyArNTA0OSw2IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rv
cjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSNpZiBF
TkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFdyYXBTaGFw
ZToKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwod3JhcFNoYXBlLCBXcmFwU2hh
cGUpOwogICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQpAQCAtNTA2Myw3ICs1MDYwLDYgQEAg
dm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgICAgICAgICAgbV9z
dHlsZS0+c2V0V3JhcFNoYXBlKHByaW1pdGl2ZVZhbHVlLT5nZXRTaGFwZVZhbHVlKCkpOwogCiAg
ICAgICAgIHJldHVybjsKLSNlbmRpZgogCiAgICAgLy8gQ1NTIEZvbnRzIE1vZHVsZSBMZXZlbCAz
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZvbnRGZWF0dXJlU2V0dGluZ3M6IHsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCShyZXZpc2lvbiA5Mjc3NCkKKysr
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCSh3b3JraW5nIGNvcHkpCkBA
IC04MTksMTQgKzgxOSwxMCBAQCBvcHRpbWl6ZVF1YWxpdHkKIC8vIFBvc2l0aW9uZWQgRmxvYXRz
CiAtd2Via2l0LXBvc2l0aW9uZWQKIAotI2lmIGRlZmluZWQoRU5BQkxFX0NTU19FWENMVVNJT05T
KSAmJiBFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMKIC8vIC13ZWJraXQtd3JhcC1zaGFwZQogbm9uemVy
bwogZXZlbm9kZAotI2VuZGlmCiAKLSNpZiBkZWZpbmVkKEVOQUJMRV9DU1NfUkVHSU9OUykgJiYg
RU5BQkxFX0NTU19SRUdJT05TCiAvLyAtd2Via2l0LXJlZ2lvbi1vdmVyZmxvdwogLy8gYXV0bwog
LXdlYmtpdC1icmVhawotI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTV3JhcFNo
YXBlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1dyYXBTaGFwZXMu
Y3BwCShyZXZpc2lvbiA5Mjc3NCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NXcmFwU2hhcGVz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksOCArMjksNiBAQAogCiAjaW5jbHVkZSAiY29uZmln
LmgiCiAKLSNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0KICNpbmNsdWRlICJDU1NXcmFwU2hh
cGVzLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CkBAIC0xNDcsNCArMTQ1LDMgQEAgU3RyaW5n
IENTU1dyYXBTaGFwZVBvbHlnb246OmNzc1RleHQoKSBjbwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTV3JhcFNoYXBlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NXcmFwU2hhcGVzLmgJKHJldmlzaW9uIDkyNzc0KQorKysgU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1dyYXBTaGFwZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsOCArMzAsNiBAQAogI2lmbmRl
ZiBDU1NXcmFwU2hhcGVzX2gKICNkZWZpbmUgQ1NTV3JhcFNoYXBlc19oCiAKLSNpZiBFTkFCTEUo
Q1NTX0VYQ0xVU0lPTlMpCi0KICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiV2luZFJ1bGUuaCIKQEAgLTE3Miw2ICsx
NzAsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBF
TkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0KICNlbmRpZiAvLyBDU1NXcmFwU2hhcGVzX2gKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NWYWx1ZUtleXdvcmRzLmluCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NWYWx1ZUtleXdvcmRzLmluCShyZXZpc2lvbiA5Mjc3
NCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NWYWx1ZUtleXdvcmRzLmluCSh3b3JraW5n
IGNvcHkpCkBAIC0xNjIsMTIgKzE2Miw3IEBAIHllbGxvd2dyZWVuCiAKIC8vIENTU19QUk9QX0NM
SVBfUEFUSAogLy8gQ1NTX1BST1BfQ0xJUF9SVUxFCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NTU19F
WENMVVNJT05TKSB8fCAhRU5BQkxFX0NTU19FWENMVVNJT05TCi0vLyBDU1MgZXhjbHVzaW9ucyBh
bHNvIHVzZXMgbm9uemVybyBhbmQgZXZlbm9kZCwgc28gZG9uJ3QgZHVwbGljYXRlIHRoZSB2YWx1
ZXMKLS8vIGlmIEVOQUJMRURfQ1NTX0VYQ0xVU0lPTlMgaXMgZW5hYmxlZC4KLW5vbnplcm8KLWV2
ZW5vZGQKLSNlbmRpZgorLy8gbm9uemVybyBhbmQgZXZlbm9kZCBwYXJ0IG9mIGNvcmUgQ1NTIHZh
bHVlcyBub3cuCiAKIC8vIENTU19QUk9QX01BU0sKIC8vIENTU19QUk9QX09QQUNJVFkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5jcHAJKHJldmlzaW9uIDkyNzc0KQorKysgU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNTcsNyArMzU3LDYgQEAgTm9kZTo6U3R5bGVDaGFu
Z2UgTm9kZTo6ZGlmZihjb25zdCBSZW5kZQogICAgIGlmICgoczEgJiYgczIpICYmIChzMS0+aGFz
VGV4dENvbWJpbmUoKSAhPSBzMi0+aGFzVGV4dENvbWJpbmUoKSkpCiAgICAgICAgIGNoID0gRGV0
YWNoOwogCi0jaWYgRU5BQkxFKENTU19SRUdJT05TKQogICAgIC8vIFdlIG5lZWQgdG8gcmVhdHRh
Y2ggdGhlIG5vZGUsIHNvIHRoYXQgaXQgaXMgbW92ZWQgdG8gdGhlIGNvcnJlY3QgUmVuZGVyRmxv
d1RocmVhZC4KICAgICBpZiAoKHMxICYmIHMyKSAmJiAoczEtPmZsb3dUaHJlYWQoKSAhPSBzMi0+
Zmxvd1RocmVhZCgpKSkKICAgICAgICAgY2ggPSBEZXRhY2g7CkBAIC0zNjYsNyArMzY1LDYgQEAg
Tm9kZTo6U3R5bGVDaGFuZ2UgTm9kZTo6ZGlmZihjb25zdCBSZW5kZQogICAgIC8vIHdlIG5lZWQg
dG8gcHJlcGFyZSBhIHNlcGFyYXRlIHJlbmRlciByZWdpb24gb2JqZWN0LgogICAgIGlmICgoczEg
JiYgczIpICYmICgoczEtPnJlZ2lvblRocmVhZCgpICE9IHMyLT5yZWdpb25UaHJlYWQoKSB8fCAo
czEtPnJlZ2lvbkluZGV4KCkgIT0gczItPnJlZ2lvbkluZGV4KCkpKSkpCiAgICAgICAgICAgICBj
aCA9IERldGFjaDsKLSNlbmRpZgogCiAgICAgcmV0dXJuIGNoOwogfQpJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCShyZXZpc2lvbiA5Mjc3NCkKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ2LDkgKzQ2LDcgQEAgTm9kZVJlbmRlcmluZ0NvbnRleHQ6Ok5vZGVSZW5kZXJpbmdD
b250ZQogICAgICwgbV92aXN1YWxQYXJlbnRTaGFkb3dSb290KDApCiAgICAgLCBtX2luY2x1ZGVy
KDApCiAgICAgLCBtX3N0eWxlKDApCi0jaWYgRU5BQkxFKENTU19SRUdJT05TKQogICAgICwgbV9w
YXJlbnRGbG93UmVuZGVyZXIoMCkKLSNlbmRpZgogewogICAgIENvbnRhaW5lck5vZGUqIHBhcmVu
dCA9IG1fbm9kZS0+cGFyZW50T3JIb3N0Tm9kZSgpOwogICAgIGlmICghcGFyZW50KQpAQCAtODks
OSArODcsNyBAQCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRlCiAgICAg
LCBtX3Zpc3VhbFBhcmVudFNoYWRvd1Jvb3QoMCkKICAgICAsIG1faW5jbHVkZXIoMCkKICAgICAs
IG1fc3R5bGUoc3R5bGUpCi0jaWYgRU5BQkxFKENTU19SRUdJT05TKQogICAgICwgbV9wYXJlbnRG
bG93UmVuZGVyZXIoMCkKLSNlbmRpZgogewogfQogCkBAIC0xMDIsOSArOTgsNyBAQCBOb2RlUmVu
ZGVyaW5nQ29udGV4dDo6fk5vZGVSZW5kZXJpbmdDb250CiB2b2lkIE5vZGVSZW5kZXJpbmdDb250
ZXh0OjpzZXRTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZSkKIHsKICAgICBtX3N0
eWxlID0gc3R5bGU7Ci0jaWYgRU5BQkxFKENTU19SRUdJT05TKQogICAgIG1vdmVUb0Zsb3dUaHJl
YWRJZk5lZWRlZCgpOwotI2VuZGlmCiB9CiAKIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IE5vZGVS
ZW5kZXJpbmdDb250ZXh0OjpyZWxlYXNlU3R5bGUoKQpAQCAtMTY2LDEwICsxNjAsOCBAQCBSZW5k
ZXJPYmplY3QqIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpuZXh0CiAgICAgaWYgKFJlbmRlck9iamVj
dCogcmVuZGVyZXIgPSBtX25vZGUtPnJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybiByZW5kZXJl
ci0+bmV4dFNpYmxpbmcoKTsKIAotI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKICAgICBpZiAobV9w
YXJlbnRGbG93UmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBtX3BhcmVudEZsb3dSZW5kZXJlci0+
bmV4dFJlbmRlcmVyRm9yTm9kZShtX25vZGUpOwotI2VuZGlmCiAKICAgICBpZiAobV9waGFzZSA9
PSBBdHRhY2hDb250ZW50Rm9yd2FyZGVkKSB7CiAgICAgICAgIGlmIChSZW5kZXJPYmplY3QqIGZv
dW5kID0gbmV4dFJlbmRlcmVyT2YobV9pbmNsdWRlciwgbV9ub2RlKSkKQEAgLTE4NCwxMSArMTc2
LDkgQEAgUmVuZGVyT2JqZWN0KiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6bmV4dAogCiAgICAgZm9y
IChOb2RlKiBub2RlID0gbV9ub2RlLT5uZXh0U2libGluZygpOyBub2RlOyBub2RlID0gbm9kZS0+
bmV4dFNpYmxpbmcoKSkgewogICAgICAgICBpZiAobm9kZS0+cmVuZGVyZXIoKSkgewotI2lmIEVO
QUJMRShDU1NfUkVHSU9OUykKICAgICAgICAgICAgIC8vIERvIG5vdCByZXR1cm4gZWxlbWVudHMg
dGhhdCBhcmUgYXR0YWNoZWQgdG8gYSBkaWZmZXJlbnQgZmxvdy10aHJlYWQuCiAgICAgICAgICAg
ICBpZiAobm9kZS0+cmVuZGVyZXIoKS0+c3R5bGUoKSAmJiAhbm9kZS0+cmVuZGVyZXIoKS0+c3R5
bGUoKS0+Zmxvd1RocmVhZCgpLmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsK
LSNlbmRpZgogICAgICAgICAgICAgcmV0dXJuIG5vZGUtPnJlbmRlcmVyKCk7CiAgICAgICAgIH0K
ICAgICAgICAgaWYgKG5vZGUtPmlzQ29udGVudEVsZW1lbnQoKSkgewpAQCAtMjA2LDEwICsxOTYs
OCBAQCBSZW5kZXJPYmplY3QqIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpwcmV2CiAgICAgaWYgKFJl
bmRlck9iamVjdCogcmVuZGVyZXIgPSBtX25vZGUtPnJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVy
biByZW5kZXJlci0+cHJldmlvdXNTaWJsaW5nKCk7CiAKLSNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMp
CiAgICAgaWYgKG1fcGFyZW50Rmxvd1JlbmRlcmVyKQogICAgICAgICByZXR1cm4gbV9wYXJlbnRG
bG93UmVuZGVyZXItPnByZXZpb3VzUmVuZGVyZXJGb3JOb2RlKG1fbm9kZSk7Ci0jZW5kaWYKIAog
ICAgIGlmIChtX3BoYXNlID09IEF0dGFjaENvbnRlbnRGb3J3YXJkZWQpIHsKICAgICAgICAgaWYg
KFJlbmRlck9iamVjdCogZm91bmQgPSBwcmV2aW91c1JlbmRlcmVyT2YobV9pbmNsdWRlciwgbV9u
b2RlKSkKQEAgLTIyMSwxMSArMjA5LDkgQEAgUmVuZGVyT2JqZWN0KiBOb2RlUmVuZGVyaW5nQ29u
dGV4dDo6cHJldgogICAgIC8vIGhvd2V2ZXIsIHdoZW4gSSB0cmllZCBhZGRpbmcgaXQsIHNldmVy
YWwgdGVzdHMgZmFpbGVkLgogICAgIGZvciAoTm9kZSogbm9kZSA9IG1fbm9kZS0+cHJldmlvdXNT
aWJsaW5nKCk7IG5vZGU7IG5vZGUgPSBub2RlLT5wcmV2aW91c1NpYmxpbmcoKSkgewogICAgICAg
ICBpZiAobm9kZS0+cmVuZGVyZXIoKSkgewotI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKICAgICAg
ICAgICAgIC8vIERvIG5vdCByZXR1cm4gZWxlbWVudHMgdGhhdCBhcmUgYXR0YWNoZWQgdG8gYSBk
aWZmZXJlbnQgZmxvdy10aHJlYWQuCiAgICAgICAgICAgICBpZiAobm9kZS0+cmVuZGVyZXIoKS0+
c3R5bGUoKSAmJiAhbm9kZS0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+Zmxvd1RocmVhZCgpLmlzRW1w
dHkoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSNlbmRpZgogICAgICAgICAgICAgcmV0
dXJuIG5vZGUtPnJlbmRlcmVyKCk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKG5vZGUtPmlzQ29u
dGVudEVsZW1lbnQoKSkgewpAQCAtMjQ0LDEwICsyMzAsOCBAQCBSZW5kZXJPYmplY3QqIE5vZGVS
ZW5kZXJpbmdDb250ZXh0OjpwYXJlCiAgICAgICAgIHJldHVybiByZW5kZXJlci0+cGFyZW50KCk7
CiAgICAgfQogCi0jaWYgRU5BQkxFKENTU19SRUdJT05TKQogICAgIGlmIChtX3BhcmVudEZsb3dS
ZW5kZXJlcikKICAgICAgICAgcmV0dXJuIG1fcGFyZW50Rmxvd1JlbmRlcmVyOwotI2VuZGlmCiAK
ICAgICBBU1NFUlQobV9sb2NhdGlvbiAhPSBMb2NhdGlvblVuZGV0ZXJtaW5lZCk7CiAgICAgcmV0
dXJuIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlID8gbV9wYXJlbnROb2RlRm9yUmVu
ZGVyaW5nQW5kU3R5bGUtPnJlbmRlcmVyKCkgOiAwOwpAQCAtMjg3LDcgKzI3MSw2IEBAIGJvb2wg
Tm9kZVJlbmRlcmluZ0NvbnRleHQ6OnNob3VsZENyZWF0ZVIKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKIHZvaWQgTm9kZVJlbmRlcmluZ0NvbnRleHQ6Om1v
dmVUb0Zsb3dUaHJlYWRJZk5lZWRlZCgpCiB7CiAgICAgaWYgKCFtX25vZGUtPmlzRWxlbWVudE5v
ZGUoKSB8fCAhbV9zdHlsZSB8fCBtX3N0eWxlLT5mbG93VGhyZWFkKCkuaXNFbXB0eSgpKQpAQCAt
Mjk3LDcgKzI4MCw2IEBAIHZvaWQgTm9kZVJlbmRlcmluZ0NvbnRleHQ6Om1vdmVUb0Zsb3dUaHIK
ICAgICBBU1NFUlQobV9ub2RlLT5kb2N1bWVudCgpLT5yZW5kZXJWaWV3KCkpOwogICAgIG1fcGFy
ZW50Rmxvd1JlbmRlcmVyID0gbV9ub2RlLT5kb2N1bWVudCgpLT5yZW5kZXJWaWV3KCktPnJlbmRl
ckZsb3dUaHJlYWRXaXRoTmFtZShtX2Zsb3dUaHJlYWQpOwogfQotI2VuZGlmCiAKIE5vZGVSZW5k
ZXJlckZhY3Rvcnk6Ok5vZGVSZW5kZXJlckZhY3RvcnkoTm9kZSogbm9kZSkKICAgICA6IG1fY29u
dGV4dChub2RlKQpAQCAtMzY1LDE0ICszNDcsMTIgQEAgdm9pZCBOb2RlUmVuZGVyZXJGYWN0b3J5
OjpjcmVhdGVSZW5kZXJlcgogICAgIFJlbmRlck9iamVjdCogbmV4dFJlbmRlcmVyID0gbV9jb250
ZXh0Lm5leHRSZW5kZXJlcigpOwogICAgIFJlbmRlck9iamVjdCogbmV3UmVuZGVyZXIgPSBjcmVh
dGVSZW5kZXJlckFuZFN0eWxlKCk7CiAKLSNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAgaWYg
KG1fY29udGV4dC5oYXNGbG93VGhyZWFkUGFyZW50KCkpIHsKICAgICAgICAgcGFyZW50UmVuZGVy
ZXIgPSBtX2NvbnRleHQucGFyZW50Rmxvd1JlbmRlcmVyKCk7CiAgICAgICAgIC8vIERvIG5vdCBj
YWxsIG1fY29udGV4dC5uZXh0UmVuZGVyZXIoKSBoZXJlLCBiZWNhdXNlIGl0IGV4cGVjdHMgdG8g
aGF2ZSAKICAgICAgICAgLy8gdGhlIHJlbmRlcmVyIGFkZGVkIHRvIGl0cyBwYXJlbnQgYWxyZWFk
eS4KICAgICAgICAgbmV4dFJlbmRlcmVyID0gbV9jb250ZXh0LnBhcmVudEZsb3dSZW5kZXJlcigp
LT5uZXh0UmVuZGVyZXJGb3JOb2RlKG5vZGUpOwogICAgIH0KLSNlbmRpZgogCiAjaWYgRU5BQkxF
KEZVTExTQ1JFRU5fQVBJKQogICAgIGlmIChkb2N1bWVudC0+d2Via2l0SXNGdWxsU2NyZWVuKCkg
JiYgZG9jdW1lbnQtPndlYmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVudCgpID09IG5vZGUpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaAkocmV2aXNpb24g
OTI3NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaAkod29y
a2luZyBjb3B5KQpAQCAtMzUsMTUgKzM1LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IENvbnRhaW5lck5vZGU7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIE5vZGU7CitjbGFzcyBSZW5k
ZXJGbG93VGhyZWFkOwogY2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3MgUmVuZGVyU3R5bGU7CiBj
bGFzcyBTaGFkb3dDb250ZW50RWxlbWVudDsKIGNsYXNzIFNoYWRvd1Jvb3Q7CiAKLSNpZiBFTkFC
TEUoQ1NTX1JFR0lPTlMpCi1jbGFzcyBSZW5kZXJGbG93VGhyZWFkOwotI2VuZGlmCi0KIGNsYXNz
IE5vZGVSZW5kZXJpbmdDb250ZXh0IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBOb2RlUmVuZGVy
aW5nQ29udGV4dChOb2RlKik7CkBAIC02NSwxMSArNjIsMTAgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7CiAKLSNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAg
Ym9vbCBoYXNGbG93VGhyZWFkUGFyZW50KCkgY29uc3QgeyByZXR1cm4gbV9wYXJlbnRGbG93UmVu
ZGVyZXI7IH0KICAgICBSZW5kZXJGbG93VGhyZWFkKiBwYXJlbnRGbG93UmVuZGVyZXIoKSBjb25z
dCB7IHJldHVybiBtX3BhcmVudEZsb3dSZW5kZXJlcjsgfQogICAgIHZvaWQgbW92ZVRvRmxvd1Ro
cmVhZElmTmVlZGVkKCk7Ci0jZW5kaWYKKwogcHJpdmF0ZToKIAogICAgIGVudW0gVHJlZUxvY2F0
aW9uIHsKQEAgLTkyLDEwICs4OCw4IEBAIHByaXZhdGU6CiAgICAgU2hhZG93Um9vdCogbV92aXN1
YWxQYXJlbnRTaGFkb3dSb290OwogICAgIFNoYWRvd0NvbnRlbnRFbGVtZW50KiBtX2luY2x1ZGVy
OwogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV9zdHlsZTsKLSNpZiBFTkFCTEUoQ1NTX1JFR0lP
TlMpCiAgICAgUmVuZGVyRmxvd1RocmVhZCogbV9wYXJlbnRGbG93UmVuZGVyZXI7CiAgICAgQXRv
bWljU3RyaW5nIG1fZmxvd1RocmVhZDsKLSNlbmRpZgogfTsKIAogaW5saW5lIE5vZGUqIE5vZGVS
ZW5kZXJpbmdDb250ZXh0Ojpub2RlKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAJKHJldmlzaW9uIDkyNzc0KQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOSwxMCArMjksNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpZiBFTkFCTEUoQ1NT
X1JFR0lPTlMpCi0KICNpbmNsdWRlICJSZW5kZXJGbG93VGhyZWFkLmgiCi0KICNpbmNsdWRlICJO
b2RlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTExNCw1ICsxMTEsMyBAQCB2b2lkIFJl
bmRlckZsb3dUaHJlYWQ6OnJlbW92ZUNoaWxkKFJlbmRlCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShDU1NfUkVHSU9OUykKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaAkocmV2aXNpb24gOTI3NzQpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCw3ICszMCw2IEBACiAjaWZuZGVmIFJlbmRlckZsb3dUaHJlYWRfaAogI2RlZmluZSBS
ZW5kZXJGbG93VGhyZWFkX2gKIAotI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKIAogI2luY2x1ZGUg
IlJlbmRlckJsb2NrLmgiCiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CkBAIC05NCw2ICs5
Myw0IEBAIHZvaWQgdG9SZW5kZXJGbG93VGhyZWFkKGNvbnN0IFJlbmRlckZsb3cKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKENTU19SRUdJT05TKQotCiAjZW5k
aWYgLy8gUmVuZGVyRmxvd1RocmVhZF9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAJKHJldmlzaW9uIDkyNzc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzg3OSwxMiArMzg3OSwxMCBA
QCB2b2lkIFJlbmRlckxheWVyOjpjb2xsZWN0TGF5ZXJzKFZlY3RvcjxSCiB7CiAgICAgdXBkYXRl
VmlzaWJpbGl0eVN0YXR1cygpOwogCi0jaWYgRU5BQkxFKENTU19SRUdJT05TKQogICAgIC8vIERv
IG5vdCBsZXQgdGhlIFJlbmRlckZsb3dUaHJlYWQgdG8gcmVuZGVyIGRpcmVjdGx5IHRvIHNjcmVl
bi4gSXQgd2lsbCBvbmx5IHJlbmRlcgogICAgIC8vIGluc2lkZSB0aGUgUmVuZGVyUmVnaW9uIG9i
amVjdHMsIHNvIGF2b2lkIGNvbGxlY3RpbmcgaXQuCiAgICAgaWYgKHJlbmRlcmVyKCktPmlzUmVu
ZGVyRmxvd1RocmVhZCgpKQogICAgICAgICByZXR1cm47Ci0jZW5kaWYKIAogICAgIC8vIE92ZXJm
bG93IGxheWVycyBhcmUganVzdCBwYWludGVkIGJ5IHRoZWlyIGVuY2xvc2luZyBsYXllcnMsIHNv
IHRoZXkgZG9uJ3QgZ2V0IHB1dCBpbiB6b3JkZXIgbGlzdHMuCiAgICAgaWYgKChtX2hhc1Zpc2li
bGVDb250ZW50IHx8IChtX2hhc1Zpc2libGVEZXNjZW5kYW50ICYmIGlzU3RhY2tpbmdDb250ZXh0
KCkpKSAmJiAhaXNOb3JtYWxGbG93T25seSgpKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAkocmV2aXNpb24gOTI3NzQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM3LDExICsx
MzcsOSBAQCBSZW5kZXJPYmplY3QqIFJlbmRlck9iamVjdDo6Y3JlYXRlT2JqZWN0CiAgICAgICAg
IGNhc2UgSU5MSU5FX0JMT0NLOgogICAgICAgICBjYXNlIFJVTl9JTjoKICAgICAgICAgY2FzZSBD
T01QQUNUOgotI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKICAgICAgICAgICAgIC8vIE9ubHkgbm9u
LXJlcGxhY2VkIGJsb2NrIGVsZW1lbnRzIGNhbiBiZWNvbWUgYSByZWdpb24uCiAgICAgICAgICAg
ICBpZiAoIXN0eWxlLT5yZWdpb25UaHJlYWQoKS5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclJlZ2lvbihub2RlKTsKLSNlbmRpZgogICAgICAgICAg
ICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlckJsb2NrKG5vZGUpOwogICAgICAgICBjYXNlIExJ
U1RfSVRFTToKICAgICAgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJMaXN0SXRlbShu
b2RlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHJldmlz
aW9uIDkyNzc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yODcsNiArMjg3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBpc1JlbmRlckltYWdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJv
b2wgaXNSZW5kZXJJbmxpbmUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwg
Ym9vbCBpc1JlbmRlclBhcnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
Ym9vbCBpc1JlbmRlclJlZ2lvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBib29sIGlzUmVuZGVyVmlldygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBib29sIGlzUmVwbGljYSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKQEAgLTMxNiw5ICsz
MTcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVyRnVsbFNjcmVlblBsYWNl
aG9sZGVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKENT
U19SRUdJT05TKQogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlckZsb3dUaHJlYWQoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQotI2VuZGlmCiAKICAgICBib29sIGlzUm9vdCgpIGNvbnN0IHsgcmV0
dXJuIGRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpID09IG1fbm9kZTsgfQogICAgIGJvb2wg
aXNCb2R5KCkgY29uc3Q7CkBAIC00MzEsMTAgKzQzMCw2IEBAIHB1YmxpYzoKICAgICBib29sIGlz
UmVwbGFjZWQoKSBjb25zdCB7IHJldHVybiBtX3JlcGxhY2VkOyB9IC8vIGEgInJlcGxhY2VkIiBl
bGVtZW50IChzZWUgQ1NTKQogICAgIGJvb2wgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSBjb25z
dCB7IHJldHVybiBtX2hvcml6b250YWxXcml0aW5nTW9kZTsgfQogCi0jaWYgRU5BQkxFKENTU19S
RUdJT05TKQotICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlclJlZ2lvbigpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9Ci0jZW5kaWYKLQogICAgIGJvb2wgaGFzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBt
X2hhc0xheWVyOyB9CiAgICAgCiAgICAgYm9vbCBoYXNCb3hEZWNvcmF0aW9ucygpIGNvbnN0IHsg
cmV0dXJuIG1fcGFpbnRCYWNrZ3JvdW5kOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUmVnaW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUmVnaW9uLmNwcAkocmV2aXNpb24gOTI3NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsOCArMzUsNiBA
QAogI2luY2x1ZGUgIlBhaW50SW5mby5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKIAotI2lm
IEVOQUJMRShDU1NfUkVHSU9OUykKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJSZWdp
b246OlJlbmRlclJlZ2lvbihOb2RlKiBub2RlKQpAQCAtODYsNSArODQsMyBAQCB2b2lkIFJlbmRl
clJlZ2lvbjo6cGFpbnQoUGFpbnRJbmZvJiBwYWluCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotI2VuZGlmIC8vIEVOQUJMRShDU1NfUkVHSU9OUykKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgJKHJldmlzaW9uIDkyNzc0KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw4ICszMCw2
IEBACiAjaWZuZGVmIFJlbmRlclJlZ2lvbl9oCiAjZGVmaW5lIFJlbmRlclJlZ2lvbl9oCiAKLSNp
ZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCi0KICNpbmNsdWRlICJSZW5kZXJCb3guaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtNjcsNiArNjUsNCBAQCB2b2lkIHRvUmVuZGVyUmVnaW9uKGNvbnN0
IFJlbmRlclJlZ2lvbiopCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVO
QUJMRShDU1NfUkVHSU9OUykKLQogI2VuZGlmIC8vIFJlbmRlclJlZ2lvbl9oCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCShyZXZpc2lvbiA5
Mjc3NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzA3LDcgKzcwNyw2IEBAIHN0YXRpYyB2b2lkIHdyaXRlTGF5ZXJz
KFRleHRTdHJlYW0mIHRzLCAKICAgICAgICAgICAgIHdyaXRlTGF5ZXJzKHRzLCByb290TGF5ZXIs
IHBvc0xpc3QtPmF0KGkpLCBwYWludERpcnR5UmVjdCwgY3VyckluZGVudCwgYmVoYXZpb3IpOwog
ICAgIH0KICAgICAKLSNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAgLy8gQWx0b3VnaCB0aGUg
UmVuZGVyRmxvd1RocmVhZCByZXF1aXJlcyBhIGxheWVyLCBpdCBpcyBub3QgY29sbGVjdGVkIGJ5
IGl0cyBwYXJlbnQsCiAgICAgLy8gc28gd2UgaGF2ZSB0byB0cmVhdCBpdCBhcyBhIHNwZWNpYWwg
Y2FzZS4KICAgICBib29sIGZpcnN0UmVuZGVyRmxvd1RocmVhZCA9IHRydWU7CkBAIC03MjUsNyAr
NzI0LDYgQEAgc3RhdGljIHZvaWQgd3JpdGVMYXllcnMoVGV4dFN0cmVhbSYgdHMsIAogICAgICAg
ICAgICAgd3JpdGVMYXllcnModHMsIHJvb3RMYXllciwgbGF5ZXIsIHBhaW50RGlydHlSZWN0LCBp
bmRlbnQgKyAyLCBiZWhhdmlvcik7CiAgICAgICAgIH0KICAgICB9Ci0jZW5kaWYKIH0KIAogc3Rh
dGljIFN0cmluZyBub2RlUG9zaXRpb24oTm9kZSogbm9kZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAJKHJldmlzaW9uIDkyNzc0KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OTMsNyArNzkz
LDYgQEAgdm9pZCBSZW5kZXJWaWV3Ojp3aWxsTW92ZU9mZnNjcmVlbigpCiAjZW5kaWYKIH0KIAot
I2lmIEVOQUJMRShDU1NfUkVHSU9OUykKIFJlbmRlckZsb3dUaHJlYWQqIFJlbmRlclZpZXc6OnJl
bmRlckZsb3dUaHJlYWRXaXRoTmFtZShjb25zdCBBdG9taWNTdHJpbmcmIGZsb3dUaHJlYWQpCiB7
CiAgICAgZm9yIChSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gZmlyc3RDaGlsZCgpOyByZW5kZXJl
cjsgcmVuZGVyZXIgPSByZW5kZXJlci0+bmV4dFNpYmxpbmcoKSkgewpAQCAtODA5LDYgKzgwOCw1
IEBAIFJlbmRlckZsb3dUaHJlYWQqIFJlbmRlclZpZXc6OnJlbmRlckZsb3cKICAgICAKICAgICBy
ZXR1cm4gZmxvd1JlbmRlcmVyOwogfQotI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAkocmV2aXNpb24gOTI3NzQp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSwxMSArMjksOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFJlbmRl
cldpZGdldDsKLQotI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKIGNsYXNzIFJlbmRlckZsb3dUaHJl
YWQ7Ci0jZW5kaWYKK2NsYXNzIFJlbmRlcldpZGdldDsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKIGNsYXNzIFJlbmRlckxheWVyQ29tcG9zaXRvcjsKQEAgLTE2OSw5ICsxNjYs
NyBAQCBwdWJsaWM6CiAKICAgICBJbnRSZWN0IGRvY3VtZW50UmVjdCgpIGNvbnN0OwogCi0jaWYg
RU5BQkxFKENTU19SRUdJT05TKQogICAgIFJlbmRlckZsb3dUaHJlYWQqIHJlbmRlckZsb3dUaHJl
YWRXaXRoTmFtZShjb25zdCBBdG9taWNTdHJpbmcmIGZsb3dUaHJlYWQpOwotI2VuZGlmCiAKIHBy
b3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBib29sIGZp
eGVkLCBUcmFuc2Zvcm1TdGF0ZSYsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Q7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAJKHJldmlz
aW9uIDkyNzc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQ4LDEwICszNDgsOSBAQCBTdHlsZURpZmZlcmVuY2Ug
UmVuZGVyU3R5bGU6OmRpZmYoY29uc3QgCiAgICAgICAgICAgICB8fCByYXJlTm9uSW5oZXJpdGVk
RGF0YS0+dGV4dE92ZXJmbG93ICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+dGV4dE92
ZXJmbG93KQogICAgICAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZUxheW91dDsKIAotI2lm
IEVOQUJMRShDU1NfUkVHSU9OUykKICAgICAgICAgaWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5t
X3JlZ2lvbk92ZXJmbG93ICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9yZWdpb25P
dmVyZmxvdykKICAgICAgICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VMYXlvdXQ7Ci0jZW5k
aWYKKwogICAgICAgICBpZiAocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZGVwcmVjYXRlZEZsZXhp
YmxlQm94LmdldCgpICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9kZXByZWNhdGVk
RmxleGlibGVCb3guZ2V0KCkKICAgICAgICAgICAgICYmICpyYXJlTm9uSW5oZXJpdGVkRGF0YS0+
bV9kZXByZWNhdGVkRmxleGlibGVCb3guZ2V0KCkgIT0gKm90aGVyLT5yYXJlTm9uSW5oZXJpdGVk
RGF0YS0+bV9kZXByZWNhdGVkRmxleGlibGVCb3guZ2V0KCkpCiAgICAgICAgICAgICByZXR1cm4g
U3R5bGVEaWZmZXJlbmNlTGF5b3V0OwpAQCAtNTc4LDcgKzU3Nyw2IEBAIFN0eWxlRGlmZmVyZW5j
ZSBSZW5kZXJTdHlsZTo6ZGlmZihjb25zdCAKICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEt
Pm1faW1hZ2VSZW5kZXJpbmcgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5tX2ltYWdlUmVu
ZGVyaW5nKQogICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNlUmVwYWludDsKICAgICAgICAg
Ci0jaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQogICAgICAgICAvLyBGSVhNRTogVGhlIGN1cnJl
bnQgc3BlYyBpcyBiZWluZyByZXdvcmtlZCB0byByZW1vdmUgZGVwZW5kZW5jaWVzIGJldHdlZW4g
ZXhjbHVzaW9ucyBhbmQgYWZmZWN0ZWQgCiAgICAgICAgIC8vIGNvbnRlbnQuIFRoZXJlJ3MgYSBw
cm9wb3NhbCB0byB1c2UgZmxvYXRzIGluc3RlYWQuIEluIHRoYXQgY2FzZSwgd3JhcC1zaGFwZSBz
aG91bGQgYWN0dWFsbHkgcmVsYXlvdXQgCiAgICAgICAgIC8vIHRoZSBwYXJlbnQgY29udGFpbmVy
LiBGb3Igc3VyZSwgSSB3aWxsIGhhdmUgdG8gcmV2aXNpdCB0aGlzIGNvZGUsIGJ1dCBmb3Igbm93
IEkndmUgYWRkZWQgdGhpcyBpbiBvcmRlciAKQEAgLTU4Niw3ICs1ODQsNiBAQCBTdHlsZURpZmZl
cmVuY2UgUmVuZGVyU3R5bGU6OmRpZmYoY29uc3QgCiAgICAgICAgIC8vIFRyYWNraW5nIGJ1Zzog
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTkxCiAgICAgICAgIGlm
IChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV93cmFwU2hhcGUgIT0gb3RoZXItPnJhcmVOb25Jbmhl
cml0ZWREYXRhLT5tX3dyYXBTaGFwZSkKICAgICAgICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVu
Y2VSZXBhaW50OwotI2VuZGlmCiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAg
ICAgaWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLmdldCgpICE9IG90aGVyLT5yYXJlTm9uSW5oZXJp
dGVkRGF0YS5nZXQoKSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmgJKHJldmlzaW9uIDkyNzc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc1MSwxMiArNzUxLDEw
IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1RleHRDb21iaW5lKCkgY29uc3QgeyByZXR1cm4gdGV4
dENvbWJpbmUoKSAhPSBUZXh0Q29tYmluZU5vbmU7IH0KICAgICAvLyBFbmQgQ1NTMyBHZXR0ZXJz
CiAKLSNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBmbG93
VGhyZWFkKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZmxvd1RocmVh
ZDsgfQogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgcmVnaW9uVGhyZWFkKCkgY29uc3QgeyByZXR1
cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fcmVnaW9uVGhyZWFkOyB9CiAgICAgaW50IHJlZ2lv
bkluZGV4KCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fcmVnaW9uSW5k
ZXg7IH0KICAgICBSZWdpb25PdmVyZmxvdyByZWdpb25PdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJu
IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3JlZ2lvbk92ZXJmbG93OyB9Ci0jZW5kaWYKIAogICAg
IC8vIEFwcGxlLXNwZWNpZmljIHByb3BlcnR5IGdldHRlciBtZXRob2RzCiAgICAgRVBvaW50ZXJF
dmVudHMgcG9pbnRlckV2ZW50cygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVQb2ludGVy
RXZlbnRzPihpbmhlcml0ZWRfZmxhZ3MuX3BvaW50ZXJFdmVudHMpOyB9CkBAIC0xMTEzLDEyICsx
MTExLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFRleHRFbXBoYXNpc1Bvc2l0aW9uKFRleHRF
bXBoYXNpc1Bvc2l0aW9uIHBvc2l0aW9uKSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIHRl
eHRFbXBoYXNpc1Bvc2l0aW9uLCBwb3NpdGlvbik7IH0KICAgICAvLyBFbmQgQ1NTMyBTZXR0ZXJz
CiAKLSNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAgdm9pZCBzZXRGbG93VGhyZWFkKGNvbnN0
IEF0b21pY1N0cmluZyYgZmxvd1RocmVhZCkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRh
LCBtX2Zsb3dUaHJlYWQsIGZsb3dUaHJlYWQpOyB9CiAgICAgdm9pZCBzZXRSZWdpb25UaHJlYWQo
Y29uc3QgQXRvbWljU3RyaW5nJiByZWdpb25UaHJlYWQpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJp
dGVkRGF0YSwgbV9yZWdpb25UaHJlYWQsIHJlZ2lvblRocmVhZCk7IH0KICAgICB2b2lkIHNldFJl
Z2lvbkluZGV4KGludCByZWdpb25JbmRleCkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRh
LCBtX3JlZ2lvbkluZGV4LCByZWdpb25JbmRleCk7IH0KICAgICB2b2lkIHNldFJlZ2lvbk92ZXJm
bG93KFJlZ2lvbk92ZXJmbG93IHJlZ2lvbk92ZXJmbG93KSB7IFNFVF9WQVIocmFyZU5vbkluaGVy
aXRlZERhdGEsIG1fcmVnaW9uT3ZlcmZsb3csIHJlZ2lvbk92ZXJmbG93KTsgfQotI2VuZGlmCiAK
ICAgICAvLyBBcHBsZS1zcGVjaWZpYyBwcm9wZXJ0eSBzZXR0ZXJzCiAgICAgdm9pZCBzZXRQb2lu
dGVyRXZlbnRzKEVQb2ludGVyRXZlbnRzIHApIHsgaW5oZXJpdGVkX2ZsYWdzLl9wb2ludGVyRXZl
bnRzID0gcDsgfQpAQCAtMTE3MCw3ICsxMTY2LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Rmxv
b2RPcGFjaXR5KGZsb2F0IGYpIHsgYWNjZXNzU1ZHU3R5bGUoKS0+c2V0Rmxvb2RPcGFjaXR5KGYp
OyB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICB2b2lkIHNldFdy
YXBTaGFwZShQYXNzUmVmUHRyPENTU1dyYXBTaGFwZT4gc2hhcGUpCiAgICAgewogICAgICAgICBp
ZiAocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fd3JhcFNoYXBlICE9IHNoYXBlKQpAQCAtMTE3OCw3
ICsxMTczLDYgQEAgcHVibGljOgogICAgIH0KICAgICBDU1NXcmFwU2hhcGUqIHdyYXBTaGFwZSgp
IGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3dyYXBTaGFwZS5nZXQoKTsg
fQogICAgIHN0YXRpYyBDU1NXcmFwU2hhcGUqIGluaXRpYWxXcmFwU2hhcGUoKSB7IHJldHVybiAw
OyB9Ci0jZW5kaWYKIAogICAgIGJvb2wgaGFzQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIGNvbnRl
bnREYXRhKCk7IH0KICAgICBjb25zdCBDb250ZW50RGF0YSogY29udGVudERhdGEoKSBjb25zdCB7
IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9jb250ZW50LmdldCgpOyB9CkBAIC0xMzYz
LDEyICsxMzU3LDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgTGluZUJveENvbnRhaW4gaW5pdGlh
bExpbmVCb3hDb250YWluKCkgeyByZXR1cm4gTGluZUJveENvbnRhaW5CbG9jayB8IExpbmVCb3hD
b250YWluSW5saW5lIHwgTGluZUJveENvbnRhaW5SZXBsYWNlZDsgfQogICAgIHN0YXRpYyBFSW1h
Z2VSZW5kZXJpbmcgaW5pdGlhbEltYWdlUmVuZGVyaW5nKCkgeyByZXR1cm4gSW1hZ2VSZW5kZXJp
bmdBdXRvOyB9CiAKLSNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAgc3RhdGljIGNvbnN0IEF0
b21pY1N0cmluZyYgaW5pdGlhbEZsb3dUaHJlYWQoKSB7IHJldHVybiBudWxsQXRvbTsgfQogICAg
IHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGluaXRpYWxSZWdpb25UaHJlYWQoKSB7IHJldHVy
biBudWxsQXRvbTsgfQogICAgIHN0YXRpYyBpbnQgaW5pdGlhbFJlZ2lvbkluZGV4KCkgeyByZXR1
cm4gMDsgfQogICAgIHN0YXRpYyBSZWdpb25PdmVyZmxvdyBpbml0aWFsUmVnaW9uT3ZlcmZsb3co
KSB7IHJldHVybiBBdXRvUmVnaW9uT3ZlcmZsb3c7IH0KLSNlbmRpZgogCiAgICAgLy8gS2VlcCB0
aGVzZSBhdCB0aGUgZW5kLgogICAgIHN0YXRpYyBMaW5lQ2xhbXBWYWx1ZSBpbml0aWFsTGluZUNs
YW1wKCkgeyByZXR1cm4gTGluZUNsYW1wVmFsdWUoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgJKHJldmlz
aW9uIDkyNzc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
Q29uc3RhbnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzOCw5ICs0MzgsNyBAQCBlbnVtIEVJbWFn
ZVJlbmRlcmluZyB7IEltYWdlUmVuZGVyaW5nQXV0CiAKIGVudW0gT3JkZXIgeyBMb2dpY2FsT3Jk
ZXIgPSAwLCBWaXN1YWxPcmRlciB9OwogCi0jaWYgRU5BQkxFKENTU19SRUdJT05TKQogZW51bSBS
ZWdpb25PdmVyZmxvdyB7IEF1dG9SZWdpb25PdmVyZmxvdywgQnJlYWtSZWdpb25PdmVyZmxvdyB9
OwotI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhLmNwcAkocmV2aXNpb24gOTI3NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1
LDE1ICs1NSwxMSBAQCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25JCiAg
ICAgLCBtX3BlcnNwZWN0aXZlT3JpZ2luWShSZW5kZXJTdHlsZTo6aW5pdGlhbFBlcnNwZWN0aXZl
T3JpZ2luWSgpKQogICAgICwgbV9wYWdlU2l6ZSgpCiAgICAgLCBtX3BhZ2VTaXplVHlwZShQQUdF
X1NJWkVfQVVUTykKLSNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAgLCBtX2Zsb3dUaHJlYWQo
UmVuZGVyU3R5bGU6OmluaXRpYWxGbG93VGhyZWFkKCkpCiAgICAgLCBtX3JlZ2lvblRocmVhZChS
ZW5kZXJTdHlsZTo6aW5pdGlhbFJlZ2lvblRocmVhZCgpKQogICAgICwgbV9yZWdpb25JbmRleChS
ZW5kZXJTdHlsZTo6aW5pdGlhbFJlZ2lvbkluZGV4KCkpCiAgICAgLCBtX3JlZ2lvbk92ZXJmbG93
KFJlbmRlclN0eWxlOjppbml0aWFsUmVnaW9uT3ZlcmZsb3coKSkKLSNlbmRpZgotI2lmIEVOQUJM
RShDU1NfRVhDTFVTSU9OUykKICAgICAsIG1fd3JhcFNoYXBlKFJlbmRlclN0eWxlOjppbml0aWFs
V3JhcFNoYXBlKCkpCi0jZW5kaWYKIHsKIH0KIApAQCAtMTA2LDE1ICsxMDIsMTEgQEAgU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSQogICAgICwgbV9wZXJzcGVjdGl2ZU9y
aWdpblkoby5tX3BlcnNwZWN0aXZlT3JpZ2luWSkKICAgICAsIG1fcGFnZVNpemUoby5tX3BhZ2VT
aXplKQogICAgICwgbV9wYWdlU2l6ZVR5cGUoby5tX3BhZ2VTaXplVHlwZSkKLSNpZiBFTkFCTEUo
Q1NTX1JFR0lPTlMpCiAgICAgLCBtX2Zsb3dUaHJlYWQoby5tX2Zsb3dUaHJlYWQpCiAgICAgLCBt
X3JlZ2lvblRocmVhZChvLm1fcmVnaW9uVGhyZWFkKQogICAgICwgbV9yZWdpb25JbmRleChvLm1f
cmVnaW9uSW5kZXgpCiAgICAgLCBtX3JlZ2lvbk92ZXJmbG93KG8ubV9yZWdpb25PdmVyZmxvdykK
LSNlbmRpZgotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICAsIG1fd3JhcFNoYXBlKG8u
bV93cmFwU2hhcGUpCi0jZW5kaWYKIHsKIH0KIApAQCAtMTY0LDE2ICsxNTYsMTEgQEAgYm9vbCBT
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRvcgogICAgICAgICAmJiAobV9wZXJzcGVj
dGl2ZU9yaWdpblkgPT0gby5tX3BlcnNwZWN0aXZlT3JpZ2luWSkKICAgICAgICAgJiYgKG1fcGFn
ZVNpemUgPT0gby5tX3BhZ2VTaXplKQogICAgICAgICAmJiAobV9wYWdlU2l6ZVR5cGUgPT0gby5t
X3BhZ2VTaXplVHlwZSkKLSNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAgICAgICYmIChtX2Zs
b3dUaHJlYWQgPT0gby5tX2Zsb3dUaHJlYWQpCiAgICAgICAgICYmIChtX3JlZ2lvblRocmVhZCA9
PSBvLm1fcmVnaW9uVGhyZWFkKQogICAgICAgICAmJiAobV9yZWdpb25JbmRleCA9PSBvLm1fcmVn
aW9uSW5kZXgpCiAgICAgICAgICYmIChtX3JlZ2lvbk92ZXJmbG93ID09IG8ubV9yZWdpb25PdmVy
ZmxvdykKLSNlbmRpZgotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICAgICAgJiYgKG1f
d3JhcFNoYXBlID09IG8ubV93cmFwU2hhcGUpCi0jZW5kaWYKLSAgICAgICAgOworICAgICAgICAm
JiAobV93cmFwU2hhcGUgPT0gby5tX3dyYXBTaGFwZSk7CiB9CiAKIGJvb2wgU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YTo6Y29udGVudERhdGFFcXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEmIG8pIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgJKHJldmlzaW9u
IDkyNzc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDE2ICsxMzYsMTIgQEAgcHVibGlj
OgogICAgIExlbmd0aFNpemUgbV9wYWdlU2l6ZTsKICAgICBQYWdlU2l6ZVR5cGUgbV9wYWdlU2l6
ZVR5cGU7CiAKLSNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAgQXRvbWljU3RyaW5nIG1fZmxv
d1RocmVhZDsKICAgICBBdG9taWNTdHJpbmcgbV9yZWdpb25UaHJlYWQ7CiAgICAgaW50IG1fcmVn
aW9uSW5kZXg7CiAgICAgUmVnaW9uT3ZlcmZsb3cgbV9yZWdpb25PdmVyZmxvdzsKLSNlbmRpZgog
Ci0jaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQogICAgIFJlZlB0cjxDU1NXcmFwU2hhcGU+IG1f
d3JhcFNoYXBlOwotI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YSgpOwpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gOTI3OTEpCisrKyBTb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0wOC0xMCAg
RGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2MDA0CisKKyAgICAgICAgUmVtb3ZpbmcgdGhlIENT
UyBSZWdpb25zIGFuZCBDU1MgRXhjbHVzaW9ucyBpZmRlZnMuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZzoKKwogMjAxMS0wOC0xMCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFw
cGxlLmNvbT4KIAogICAgICAgICBBY2NpZGVudGFsbHkgY29tbWVudGVkIG91dCBhbiBhc3NlcnRp
b24gaW4gQmFja2luZ1N0b3JlOjppbmNvcnBvcmF0ZVVwZGF0ZQpJbmRleDogU291cmNlL1dlYktp
dDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHJl
dmlzaW9uIDkyNzc0KQorKysgU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTU0LDggKzU0LDYgQEAgRU5BQkxFX0FD
Q0VMRVJBVEVEXzJEX0NBTlZBUyA9IDsKIEVOQUJMRV9BTklNQVRJT05fQVBJID0gOwogRU5BQkxF
X0NIQU5ORUxfTUVTU0FHSU5HID0gRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HOwogRU5BQkxFX0NT
UzNfRkxFWEJPWCA9IDsKLUVOQUJMRV9DU1NfRVhDTFVTSU9OUyA9IDsKLUVOQUJMRV9DU1NfUkVH
SU9OUyA9IDsKIEVOQUJMRV9EQVRBQkFTRSA9IEVOQUJMRV9EQVRBQkFTRTsKIEVOQUJMRV9EQVRB
X1RSQU5TRkVSX0lURU1TID0gOwogRU5BQkxFX0RFVEFJTFMgPSBFTkFCTEVfREVUQUlMUzsKQEAg
LTEwMCw0ICs5OCw0IEBAIEVOQUJMRV9YSFRNTE1QID0gOwogRU5BQkxFX1hQQVRIID0gRU5BQkxF
X1hQQVRIOwogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0g
JChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQo
RU5BQkxFX0FOSU1BVElPTl9BUEkpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVT
U0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0NTUzNf
RkxFWEJPWCkgJChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpICQoRU5BQkxFX0NTU19SRUdJT05TKSAk
KEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNG
RVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikg
JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxF
X0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykgJChF
TkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09O
REFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX0NPTE9S
KSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQo
RU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfU1RB
VElTVElDUykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVO
QUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9B
UEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFR0lT
VEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9T
VkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFC
TEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NW
R19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVE9VQ0hfSUNPTl9M
T0FESU5HKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dF
QkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9X
RUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9Y
UEFUSCkgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5E
RVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQU5JTUFUSU9O
X0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxF
X0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfQ1NTM19GTEVYQk9YKSAkKEVOQUJM
RV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRF
TVMpICQoRU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFC
TEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5U
U09VUkNFKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVf
RlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJB
U0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX0NPTE9SKSAkKEVO
QUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxF
X0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfU1RBVElTVElD
UykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9P
RkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQo
RU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFR0lTVEVSX1BS
T1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQo
RU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZH
X0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JF
SUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5H
KSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAk
KEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElN
SU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkg
JChFTkFCTEVfWFNMVCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5Mjc5MSkKKysr
IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEz
IEBACisyMDExLTA4LTEwICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYwMDQKKworICAgICAg
ICBSZW1vdmluZyB0aGUgQ1NTIFJlZ2lvbnMgYW5kIEV4Y2x1c2lvbnMgaWZkZWZzLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMTEtMDgtMDkgIE1hcmsgSGFobmVuYmVy
ZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgUGFyZW50Q2xhc3MgdHlw
ZWRlZiBpbiBhbGwgSlNDIGNsYXNzZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCShyZXZpc2lvbiA5
Mjc3NCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC01NCw4ICs1NCw2IEBAIEVOQUJMRV9BQ0NFTEVS
QVRFRF8yRF9DQU5WQVMgPSA7CiBFTkFCTEVfQU5JTUFUSU9OX0FQSSA9IDsKIEVOQUJMRV9DSEFO
TkVMX01FU1NBR0lORyA9IEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORzsKIEVOQUJMRV9DU1MzX0ZM
RVhCT1ggPSA7Ci1FTkFCTEVfQ1NTX0VYQ0xVU0lPTlMgPSA7Ci1FTkFCTEVfQ1NTX1JFR0lPTlMg
PSA7CiBFTkFCTEVfREFUQUJBU0UgPSBFTkFCTEVfREFUQUJBU0U7CiBFTkFCTEVfREFUQV9UUkFO
U0ZFUl9JVEVNUyA9IDsKIEVOQUJMRV9ERVRBSUxTID0gRU5BQkxFX0RFVEFJTFM7CkBAIC0xMDAs
NCArOTgsNCBAQCBFTkFCTEVfWEhUTUxNUCA9IDsKIEVOQUJMRV9YUEFUSCA9IEVOQUJMRV9YUEFU
SDsKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5B
QkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJM
RV9BTklNQVRJT05fQVBJKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lO
RykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9DU1MzX0ZMRVhC
T1gpICQoRU5BQkxFX0NTU19FWENMVVNJT05TKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFC
TEVfREFUQUJBU0UpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lU
RU1TKSAkKEVOQUJMRV9ERVRBSUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5B
QkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVO
VFNPVVJDRSkgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxF
X0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFC
QVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xPUikgJChF
TkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJM
RV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJ
Q1MpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVf
T0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAk
KEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRUdJU1RFUl9Q
Uk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAk
KEVOQUJMRV9TVkdfQU5JTUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NW
R19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9S
RUlHTl9PQkpFQ1QpICQoRU5BQkxFX1NWR19VU0UpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElO
RykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkg
JChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJ
TUlORykgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgp
ICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5H
KSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FOSU1BVElPTl9BUEkp
ICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0NTUzNfRkxFWEJPWCkgJChFTkFCTEVfREFU
QUJBU0UpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAk
KEVOQUJMRV9ERVRBSUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJ
UkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNPVVJD
RSkgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExT
Q1JFRU5fQVBJKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAk
KEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFCTEVf
SU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MSU5L
X1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQo
RU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElO
RV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJM
RV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NP
TF9IQU5ETEVSKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJM
RV9TVkdfQU5JTUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01f
T0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9P
QkpFQ1QpICQoRU5BQkxFX1NWR19VU0UpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChF
TkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFC
TEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykg
JChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5B
QkxFX1hTTFQpOwpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0No
YW5nZUxvZwkocmV2aXNpb24gOTI3OTEpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0wOC0xMCAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBs
ZS5jb20+CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY2MDA0CisKKyAgICAgICAgUmVtb3ZlIHRoZSByZWdpb25zIGFuZCBleGNsdXNpb25zIGJvdHMg
YW5kIGFsc28gdGhlIGZsYWdzIGluIGJ1aWxkLXdlYmtpdCwgc2luY2UgSSdtIGp1c3QgdHVybmlu
ZworICAgICAgICB0aGUgY29kZSBvbiBieSBkZWZhdWx0LgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Vi
a2l0Lm9yZy1jb25maWcvY29uZmlnLmpzb246CisgICAgICAgICogU2NyaXB0cy9idWlsZC13ZWJr
aXQ6CisKIDIwMTEtMDgtMTAgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBKU0V2YWx1dGVTY3JpcHQgZG9lcyBub3QgcmV0dXJuIHRoZSBjb3JyZWN0IG9iamVjdCB3
aGVuIGdpdmVuIEpTT05QIGRhdGEKSW5kZXg6IFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxk
LndlYmtpdC5vcmctY29uZmlnL2NvbmZpZy5qc29uCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0J1aWxk
U2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL2NvbmZpZy5qc29uCShyZXZpc2lv
biA5Mjc3NCkKKysrIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29u
ZmlnL2NvbmZpZy5qc29uCSh3b3JraW5nIGNvcHkpCkBAIC0yNTYsMTIgKzI1Niw3IEBACiAgICAg
ICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiRUZMIExpbnV4IFJlbGVhc2UgKEJ1aWxkKSIsICJ0
eXBlIjogIkJ1aWxkIiwgImJ1aWxkZGlyIjogImVmbC1saW51eC1yZWxlYXNlIiwKICAgICAgICAg
ICAgICAgICAgICAgICAicGxhdGZvcm0iOiAiZWZsIiwgImNvbmZpZ3VyYXRpb24iOiAicmVsZWFz
ZSIsICJhcmNoaXRlY3R1cmVzIjogWyJpMzg2Il0sCiAgICAgICAgICAgICAgICAgICAgICAgInNs
YXZlbmFtZXMiOiBbImVmbC1saW51eC1zbGF2ZS0xIl0KLSAgICAgICAgICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJDU1NSZWdpb25zIFNub3dMZW9wYXJkIElu
dGVsIFJlbGVhc2UgKEJ1aWxkKSIsICJ0eXBlIjogIkJ1aWxkIiwgImJ1aWxkZGlyIjogImNzc3Jl
Z2lvbnMtc25vd2xlb3BhcmQtaW50ZWwtcmVsZWFzZSIsCi0gICAgICAgICAgICAgICAgICAgICAg
InBsYXRmb3JtIjogIm1hYy1zbm93bGVvcGFyZCIsICJjb25maWd1cmF0aW9uIjogInJlbGVhc2Ui
LCAiYXJjaGl0ZWN0dXJlcyI6IFsieDg2XzY0Il0sICJmZWF0dXJlcyI6IFsiY3NzLXJlZ2lvbnMi
LCAiY3NzLWV4Y2x1c2lvbnMiXSwKLSAgICAgICAgICAgICAgICAgICAgICAidXBsb2FkIjogdHJ1
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAic2xhdmVuYW1lcyI6IFsiYWRvYmUtbWFjLXNsYXZl
MSJdCi0gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgXSwKIAogICAgICJzY2hlZHVsZXJzIjog
WyB7ICJ0eXBlIjogIkFueUJyYW5jaFNjaGVkdWxlciIsICJuYW1lIjogInRydW5rIiwgImNoYW5n
ZV9maWx0ZXIiOiAidHJ1bmtfZmlsdGVyIiwgInRyZWVTdGFibGVUaW1lciI6IDQ1LjAsCkBAIC0y
NzUsMTAgKzI3MCw2IEBACiAgICAgICAgICAgICAgICAgICAgIHsgInR5cGUiOiAiUGxhdGZvcm1T
cGVjaWZpY1NjaGVkdWxlciIsICJwbGF0Zm9ybSI6ICJtYWMtbGVvcGFyZCIsICJicmFuY2giOiAi
dHJ1bmsiLCAidHJlZVN0YWJsZVRpbWVyIjogNDUuMCwKICAgICAgICAgICAgICAgICAgICAgICAi
YnVpbGRlck5hbWVzIjogWyJMZW9wYXJkIEludGVsIERlYnVnIChCdWlsZCkiXQogICAgICAgICAg
ICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICB7ICJ0eXBlIjogIlBsYXRmb3JtU3Bl
Y2lmaWNTY2hlZHVsZXIiLCAicGxhdGZvcm0iOiAibWFjLXNub3dsZW9wYXJkIiwgImJyYW5jaCI6
ICJ0cnVuayIsICJ0cmVlU3RhYmxlVGltZXIiOiA0NS4wLAotICAgICAgICAgICAgICAgICAgICAg
ICJidWlsZGVyTmFtZXMiOiBbIlNub3dMZW9wYXJkIEludGVsIFJlbGVhc2UgKEJ1aWxkKSIsICJT
bm93TGVvcGFyZCBJbnRlbCBMZWFrcyIsICJTbm93TGVvcGFyZCBJbnRlbCBEZWJ1ZyAoQnVpbGQp
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDU1NSZWdpb25zIFNu
b3dMZW9wYXJkIEludGVsIFJlbGVhc2UgKEJ1aWxkKSJdCi0gICAgICAgICAgICAgICAgICAgIH0s
CiAgICAgICAgICAgICAgICAgICAgIHsgInR5cGUiOiAiUGxhdGZvcm1TcGVjaWZpY1NjaGVkdWxl
ciIsICJwbGF0Zm9ybSI6ICJtYWMtbGlvbiIsICJicmFuY2giOiAidHJ1bmsiLCAidHJlZVN0YWJs
ZVRpbWVyIjogNDUuMCwKICAgICAgICAgICAgICAgICAgICAgICAiYnVpbGRlck5hbWVzIjogWyJM
aW9uIEludGVsIFJlbGVhc2UgKEJ1aWxkKSIsICJMaW9uIEludGVsIERlYnVnIChCdWlsZCkiXQog
ICAgICAgICAgICAgICAgICAgICB9LApJbmRleDogVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQJKHJldmlzaW9uIDkyNzc0
KQorKysgVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQJKHdvcmtpbmcgY29weSkKQEAgLTczLDgg
KzczLDYgQEAgbXkgKAogICAgICRjbGllbnRCYXNlZEdlb2xvY2F0aW9uU3VwcG9ydCwKICAgICAk
Y292ZXJhZ2VTdXBwb3J0LAogICAgICRjc3MzRmxleGJveFN1cHBvcnQsCi0gICAgJGNzc1JlZ2lv
bnNTdXBwb3J0LAotICAgICRjc3NFeGNsdXNpb25zU3VwcG9ydCwKICAgICAkZGF0YWJhc2VTdXBw
b3J0LAogICAgICRkYXRhbGlzdFN1cHBvcnQsCiAgICAgJGRhdGFUcmFuc2Zlckl0ZW1zU3VwcG9y
dCwKQEAgLTE1NiwxMiArMTU0LDYgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgIHsgb3B0aW9uID0+
ICJjc3MzLWZsZXhib3giLCBkZXNjID0+ICJUb2dnbGUgQ1NTMyBGbGV4Ym94IHN1cHBvcnQiLAog
ICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NTM19GTEVYQk9YIiwgZGVmYXVsdCA9PiAwLCB2YWx1
ZSA9PiBcJGNzczNGbGV4Ym94U3VwcG9ydCB9LAogCi0gICAgeyBvcHRpb24gPT4gImNzcy1yZWdp
b25zIiwgZGVzYyA9PiAiVG9nZ2xlIENTUyBSZWdpb25zIHN1cHBvcnQiLAotICAgICAgZGVmaW5l
ID0+ICJFTkFCTEVfQ1NTX1JFR0lPTlMiLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkY3NzUmVn
aW9uc1N1cHBvcnQgfSwKLSAgICAgCi0gICAgeyBvcHRpb24gPT4gImNzcy1leGNsdXNpb25zIiwg
ZGVzYyA9PiAiVG9nZ2xlIENTUyBFeGNsdXNpb25zIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+
ICJFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMiLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkY3NzRXhj
bHVzaW9uc1N1cHBvcnQgfSwKLQogICAgIHsgb3B0aW9uID0+ICJjb3ZlcmFnZSIsIGRlc2MgPT4g
IlRvZ2dsZSBjb2RlIGNvdmVyYWdlIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICIiLCBkZWZh
dWx0ID0+IDAsIHZhbHVlID0+IFwkY292ZXJhZ2VTdXBwb3J0IH0sCiAKSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDkyNzg0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMTEtMDgtMTAgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgor
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjAwNAor
CisgICAgICAgIFJlbW92aW5nIGlmZGVmcyBmb3IgQ1NTIEV4Y2x1c2lvbnMgYW5kIENTUyBSZWdp
b25zLiBUaGUgY29kZSBpcyBub3cgb24gYnkgZGVmYXVsdCwgc28gdGhlIG5ldyBDU1MKKyAgICAg
ICAgcHJvcGVydGllcyBhcmUgc2hvd2luZyB1cCBpbiB0aGUgY29tcHV0ZWQgc3R5bGUgcmVzdWx0
cy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZh
c3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0
eWxlLXdpdGhvdXQtcmVuZGVyZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN2Zy9jc3MvZ2V0
Q29tcHV0ZWRTdHlsZS1iYXNpYy1leHBlY3RlZC50eHQ6CisKIDIwMTEtMDgtMTAgIEtlbmljaGkg
SXNoaWJhc2hpICA8YmFzaGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gSW1w
bGVtZW50IHRleHQgc2hhcGluZyB3aXRoIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyBvbiBMaW51eApJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHls
ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29t
cHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDkyNzc0KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1zdHlsZS1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE4Niw2ICsxODYsOSBAQCB6b29tOiAxOwog
LXdlYmtpdC11c2VyLW1vZGlmeTogcmVhZC1vbmx5OwogLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4
dDsKIC13ZWJraXQtd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLXRiOworLXdlYmtpdC1mbG93OiBh
dXRvOworLXdlYmtpdC1jb250ZW50LW9yZGVyOiAwOworLXdlYmtpdC1yZWdpb24tb3ZlcmZsb3c6
IGF1dG87CiBjbGlwLXBhdGg6IG5vbmU7CiBjbGlwLXJ1bGU6IG5vbnplcm87CiBtYXNrOiBub25l
OwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5
bGUvY29tcHV0ZWQtc3R5bGUtd2l0aG91dC1yZW5kZXJlci1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUv
Y29tcHV0ZWQtc3R5bGUtd2l0aG91dC1yZW5kZXJlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDky
Nzc0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5
bGUvY29tcHV0ZWQtc3R5bGUtd2l0aG91dC1yZW5kZXJlci1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTE4NSw2ICsxODUsOSBAQCBDb21wdXRlZCBzdHlsZSBvZiBhbiBlbGVtZW50IHdo
b3NlIHBhcmVuCiAgICAgLXdlYmtpdC11c2VyLW1vZGlmeTogcmVhZC1vbmx5CiAgICAgLXdlYmtp
dC11c2VyLXNlbGVjdDogdGV4dAogICAgIC13ZWJraXQtd3JpdGluZy1tb2RlOiBob3Jpem9udGFs
LXRiCisgICAgLXdlYmtpdC1mbG93OiBhdXRvCisgICAgLXdlYmtpdC1jb250ZW50LW9yZGVyOiAw
CisgICAgLXdlYmtpdC1yZWdpb24tb3ZlcmZsb3c6IGF1dG8KICAgICBjbGlwLXBhdGg6IG5vbmUK
ICAgICBjbGlwLXJ1bGU6IG5vbnplcm8KICAgICBtYXNrOiBub25lCkluZGV4OiBMYXlvdXRUZXN0
cy9zdmcvY3NzL2dldENvbXB1dGVkU3R5bGUtYmFzaWMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3N2Zy9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS1iYXNpYy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDkyNzc0KQorKysgTGF5b3V0VGVzdHMvc3ZnL2Nzcy9nZXRDb21wdXRlZFN0
eWxlLWJhc2ljLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzcwLDYgKzM3MCwxMiBA
QCByZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtdXNlCiByZWN0OiBzdHlsZS5n
ZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtdXNlci1zZWxlY3QpIDogW29iamVjdCBDU1NQcmlt
aXRpdmVWYWx1ZV0KIHJlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoLXdlYmtpdC13cml0aW5n
LW1vZGUpIDogaG9yaXpvbnRhbC10YgogcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgt
d2Via2l0LXdyaXRpbmctbW9kZSkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDog
c3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0LWZsb3cpIDogYXV0bworcmVjdDogc3R5bGUu
Z2V0UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0LWZsb3cpIDogW29iamVjdCBDU1NQcmltaXRpdmVW
YWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoLXdlYmtpdC1jb250ZW50LW9yZGVy
KSA6IDAKK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1jb250ZW50LW9y
ZGVyKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCityZWN0OiBzdHlsZS5nZXRQcm9wZXJ0
eVZhbHVlKC13ZWJraXQtcmVnaW9uLW92ZXJmbG93KSA6IGF1dG8KK3JlY3Q6IHN0eWxlLmdldFBy
b3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC1yZWdpb24tb3ZlcmZsb3cpIDogW29iamVjdCBDU1NQcmlt
aXRpdmVWYWx1ZV0KIHJlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoY2xpcC1wYXRoKSA6IG5v
bmUKIHJlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoY2xpcC1wYXRoKSA6IFtvYmplY3Qg
Q1NTUHJpbWl0aXZlVmFsdWVdCiByZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGNsaXAtcnVs
ZSkgOiBub256ZXJvCkBAIC04MTYsNiArODIyLDEyIEBAIGc6IHN0eWxlLmdldFByb3BlcnR5VmFs
dWUoLXdlYmtpdC11c2VyLXMKIGc6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoLXdlYmtpdC11
c2VyLXNlbGVjdCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQogZzogc3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZSgtd2Via2l0LXdyaXRpbmctbW9kZSkgOiBob3Jpem9udGFsLXRiCiBnOiBzdHls
ZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtd3JpdGluZy1tb2RlKSA6IFtvYmplY3QgQ1NT
UHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKC13ZWJraXQtZmxvdykg
OiBhdXRvCitnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKC13ZWJraXQtZmxvdykgOiBbb2Jq
ZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgtd2Via2l0
LWNvbnRlbnQtb3JkZXIpIDogMAorZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0
LWNvbnRlbnQtb3JkZXIpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0eWxlLmdl
dFByb3BlcnR5VmFsdWUoLXdlYmtpdC1yZWdpb24tb3ZlcmZsb3cpIDogYXV0bworZzogc3R5bGUu
Z2V0UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0LXJlZ2lvbi1vdmVyZmxvdykgOiBbb2JqZWN0IENT
U1ByaW1pdGl2ZVZhbHVlXQogZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShjbGlwLXBhdGgpIDog
bm9uZQogZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShjbGlwLXBhdGgpIDogW29iamVjdCBD
U1NQcmltaXRpdmVWYWx1ZV0KIGc6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoY2xpcC1ydWxlKSA6
IG5vbnplcm8K
</data>
<flag name="review"
          id="99165"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>