<?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>11840</bug_id>
          
          <creation_ts>2006-12-15 08:54:13 -0800</creation_ts>
          <short_desc>[S60] TLUU-6VJQX3 : Cache cannot support more than one application simultaneously</short_desc>
          <delta_ts>2011-03-21 11:52:56 -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>New Bugs</component>
          <version>420+</version>
          <rep_platform>S60 Emulator</rep_platform>
          <op_sys>S60 3rd edition</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>11834</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yael">yael</reporter>
          <assigned_to name="Yael">yael</assigned_to>
          <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>41917</commentid>
    <comment_count>0</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2006-12-15 08:54:13 -0800</bug_when>
    <thetext>TLUU-6VJQX3 : Cache cannot support more than one application simultaneously
Added notification mechanism when the cache index file changes, and merging the
old and new lookup tables.
Tested with Browser and MusicShop on HW.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41918</commentid>
    <comment_count>1</comment_count>
      <attachid>11862</attachid>
    <who name="Yael">yael</who>
    <bug_when>2006-12-15 08:56:11 -0800</bug_when>
    <thetext>Created attachment 11862
3.2 fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41919</commentid>
    <comment_count>2</comment_count>
      <attachid>11863</attachid>
    <who name="Yael">yael</who>
    <bug_when>2006-12-15 08:57:02 -0800</bug_when>
    <thetext>Created attachment 11863
3.1 fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41920</commentid>
    <comment_count>3</comment_count>
    <who name="Bradley Morrison">bradley.morrison</who>
    <bug_when>2006-12-15 09:14:05 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of 11834 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41392</commentid>
    <comment_count>4</comment_count>
    <who name="Krishna">krishnamurty.podipireddy</who>
    <bug_when>2006-12-18 10:01:17 -0800</bug_when>
    <thetext>
This duplicate report is closed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370642</commentid>
    <comment_count>5</comment_count>
    <who name="Joel Parks">joel.parks</who>
    <bug_when>2011-03-21 11:52:56 -0700</bug_when>
    <thetext>re-purposing InTSW keyword for use by QtWebkit team</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11862</attachid>
            <date>2006-12-15 08:56:11 -0800</date>
            <delta_ts>2006-12-15 09:14:26 -0800</delta_ts>
            <desc>3.2 fix</desc>
            <filename>MyBrilliantWork.patch</filename>
            <type>text/plain</type>
            <size>32334</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxODIyNikNCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpDQpA
QCAtMSwzICsxLDM1IEBADQorMjAwNi0xMi0xNCAgeWFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lh
LmNvbT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKyAgICAgICAg
REVTQzogQnVnIDExODM0OiBUTFVVLTZWSlFYMyA6IENhY2hlIGNhbm5vdCBzdXBwb3J0IG1vcmUg
dGhhbiBvbmUgYXBwbGljYXRpb24gc2ltdWx0YW5lb3VzbHkNCisgICAgICAgIGh0dHA6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODM0DQorDQorICAgICAgICAqIFJlc291cmNl
TG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZUVudHJ5Lmg6DQorICAgICAgICAqIFJlc291cmNlTG9h
ZGVyL0NhY2hlSW5jL0h0dHBDYWNoZUhhbmRsZXIuaDoNCisgICAgICAgICogUmVzb3VyY2VMb2Fk
ZXIvQ2FjaGVJbmMvSHR0cENhY2hlTG9va3VwVGFibGUuaDoNCisgICAgICAgICogUmVzb3VyY2VM
b2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlT2JzZXJ2ZXIuaDogQWRkZWQuDQorICAgICAgICAoTk9O
U0hBUkFCTEVfQ0xBU1MpOg0KKyAgICAgICAgKiBSZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRw
Q2FjaGVFbnRyeS5jcHA6DQorICAgICAgICAoQ0h0dHBDYWNoZUVudHJ5OjpBY2Nlc3NlZCk6DQor
ICAgICAgICAqIFJlc291cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUhhbmRsZXIuY3BwOg0K
KyAgICAgICAgKENIdHRwQ2FjaGVIYW5kbGVyOjpDb25zdHJ1Y3RMKToNCisgICAgICAgIChDSHR0
cENhY2hlSGFuZGxlcjo6fkNIdHRwQ2FjaGVIYW5kbGVyKToNCisgICAgICAgIChDSHR0cENhY2hl
SGFuZGxlcjo6T3Blbkxvb2t1cFRhYmxlTCk6DQorICAgICAgICAoQ0h0dHBDYWNoZUhhbmRsZXI6
OlNhdmVMb29rdXBUYWJsZUwpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVIYW5kbGVyOjpVcGRhdGVM
b29rdXBUYWJsZSk6DQorICAgICAgICAoQ0h0dHBDYWNoZUhhbmRsZXI6OlVwZGF0ZUxvb2t1cFRh
YmxlTCk6DQorICAgICAgICAqIFJlc291cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUxvb2t1
cFRhYmxlLmNwcDoNCisgICAgICAgICogUmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hl
T2JzZXJ2ZXIuY3BwOiBBZGRlZC4NCisgICAgICAgIChDSHR0cENhY2hlT2JzZXJ2ZXI6OkNIdHRw
Q2FjaGVPYnNlcnZlcik6DQorICAgICAgICAoQ0h0dHBDYWNoZU9ic2VydmVyOjpDb25zdHJ1Y3RM
KToNCisgICAgICAgIChDSHR0cENhY2hlT2JzZXJ2ZXI6Ok5ld0wpOg0KKyAgICAgICAgKENIdHRw
Q2FjaGVPYnNlcnZlcjo6fkNIdHRwQ2FjaGVPYnNlcnZlcik6DQorICAgICAgICAoQ0h0dHBDYWNo
ZU9ic2VydmVyOjpSdW5MKToNCisgICAgICAgIChDSHR0cENhY2hlT2JzZXJ2ZXI6OlJ1bkVycm9y
KToNCisgICAgICAgIChDSHR0cENhY2hlT2JzZXJ2ZXI6OkRvQ2FuY2VsKToNCisgICAgICAgIChD
SHR0cENhY2hlT2JzZXJ2ZXI6OlN0YXJ0T2JzZXJ2ZXJMKToNCisgICAgICAgICogZ3JvdXAvQnJv
d3NlckNhY2hlLm1tcDoNCisNCiAyMDA2LTEyLTEyICByYXRobmFzYSAgPHNvcm5hbGF0aGEucmF0
aG5hc2FteUBub2tpYS5jb20+DQogDQogICAgICAgICBSZXZpZXdlZCBieSBZb25nanVuIFpoYW5n
IGFuZCBTdGV2ZSBXaW5zaGlwLg0KSW5kZXg6IFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUlu
Yy9IdHRwQ2FjaGVFbnRyeS5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L1Jlc291cmNlTG9hZGVy
L0NhY2hlSW5jL0h0dHBDYWNoZUVudHJ5LmgJKHJldmlzaW9uIDE4MjIxKQ0KKysrIFdlYktpdC9S
ZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVFbnRyeS5oCSh3b3JraW5nIGNvcHkpDQpA
QCAtOSw5ICs5LDkgQEANCiAqICAgIENvcHlyaWdodCAoYykgMjAwNiwgTm9raWEgQ29ycG9yYXRp
b24NCiAqICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQogKiAgDQotKiAgCVJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KLSog
IAltb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMNCi0qICAJYXJlIG1ldDoNCisqICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQorKiAgIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cw0KKyogICBhcmUgbWV0Og0KICogIA0KICogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQogKiAgICAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0K
QEAgLTIzLDE4ICsyMywxOCBAQA0KICogICAgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZA0KICogICAgICAgIGZyb20gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCiAq
ICANCi0qICAJVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUw0KLSogIAkiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVA0KLSogIAlMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCi0q
ICAJQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQNCi0qICAJT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsDQotKiAgCVNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QNCi0qICAJTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsDQotKiAgCURBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQ0KLSogIAlUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUDQotKiAgCShJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFDQotKiAgCVVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0gNCi0qICAJREFNQUdFLg0KKyogICBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQorKiAgICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UDQorKiAgIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUg0KKyogICBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVA0KKyogICBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwNCisqICAgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVA0KKyogICBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwNCisqICAgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
DQorKiAgIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQNCisqICAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUNCisqICAgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSA0KKyogICBEQU1B
R0UuDQogKiAgDQogKiAgICBQbGVhc2Ugc2VlIGZpbGUgcGF0ZW50bGljZW5zZS50eHQgZm9yIGZ1
cnRoZXIgZ3JhbnRzLg0KICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMjM3LDYgKzIzNywx
NCBAQCBjbGFzcyBDSHR0cENhY2hlRW50cnkgOiBwdWJsaWMgQ0Jhc2UNCiAgICAgICAgICogQHJl
dHVybiANCiAgICAgICAgICovDQogICAgICAgICBUSW50IEV4dGVybmFsaXplKCBSRmlsZVdyaXRl
U3RyZWFtJiBhV3JpdGVTdHJlYW0gKTsNCisNCisgICAgICAgIC8qKg0KKyAgICAgICAgKiANCisg
ICAgICAgICogQHNpbmNlIDMuMQ0KKyAgICAgICAgKiBAcGFyYW0gDQorICAgICAgICAqIEByZXR1
cm4gDQorICAgICAgICAqLw0KKyAgICAgICAgdm9pZCBBY2Nlc3NlZChUSW50NjQgYUxhc3RBY2Nl
c3NlZCwgVFVpbnQxNiBhUmVmKTsNCiANCiAgICAgcHVibGljIDogDQogDQpJbmRleDogV2ViS2l0
L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZUhhbmRsZXIuaA0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
LS0tIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVIYW5kbGVyLmgJKHJl
dmlzaW9uIDE4MjIxKQ0KKysrIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2Fj
aGVIYW5kbGVyLmgJKHdvcmtpbmcgY29weSkNCkBAIC02OCw2ICs2OCw3IEBAIGNsYXNzIE1IVFRQ
RGF0YVN1cHBsaWVyOw0KIGNsYXNzIENJZGxlOw0KIGNsYXNzIENIdHRwQ2FjaGVFdmljdGlvbkhh
bmRsZXI7DQogY2xhc3MgVEh0dHBDYWNoZUVudHJ5Ow0KK2NsYXNzIENIdHRwQ2FjaGVPYnNlcnZl
cjsNCiANCiAvLyBDTEFTUyBERUNMQVJBVElPTg0KIA0KQEAgLTIwMyw2ICsyMDQsMTUgQEAgY2xh
c3MgQ0h0dHBDYWNoZUhhbmRsZXIgOiBwdWJsaWMgQ0Jhc2UNCiAgICAgICAgICovDQogICAgICAg
ICB2b2lkIEFkanVzdFJlc3BvbnNlVGltZShSSFRUUFRyYW5zYWN0aW9uJiBhVHJhbnMpOw0KIA0K
KyAgICAgICAgLyoqDQorICAgICAgICAqIFNvbWUgb3RoZXIgYXBwbGljYXRpb24gbW9kaWZpZWQg
dGhlIGNhY2hlIGFuZCB0aGUgbG9va3VwIHRhYmxlIG5lZWRzIHRvIGJlIHVwZGF0ZWQNCisgICAg
ICAgICoNCisgICAgICAgICogQHNpbmNlIDMuMQ0KKyAgICAgICAgKiBAcGFyYW0NCisgICAgICAg
ICogQHJldHVybg0KKyAgICAgICAgKi8NCisgICAgICAgIHZvaWQgVXBkYXRlTG9va3VwVGFibGUo
KTsNCisNCiAgICAgcHJpdmF0ZToNCiANCiAgICAgICAgIC8qKg0KQEAgLTIyMiw2ICsyMzIsMTUg
QEAgY2xhc3MgQ0h0dHBDYWNoZUhhbmRsZXIgOiBwdWJsaWMgQ0Jhc2UNCiAgICAgcHJpdmF0ZTog
Ly8NCiANCiAgICAgICAgIC8qKg0KKyAgICAgICAgKiBTb21lIG90aGVyIGFwcGxpY2F0aW9uIG1v
ZGlmaWVkIHRoZSBjYWNoZSBhbmQgdGhlIGxvb2t1cCB0YWJsZSBuZWVkcyB0byBiZSB1cGRhdGVk
DQorICAgICAgICAqDQorICAgICAgICAqIEBzaW5jZSAzLjENCisgICAgICAgICogQHBhcmFtDQor
ICAgICAgICAqIEByZXR1cm4NCisgICAgICAgICovDQorICAgICAgICB2b2lkIFVwZGF0ZUxvb2t1
cFRhYmxlTCgpOw0KKw0KKyAgICAgICAgLyoqDQogICAgICAgICAqDQogICAgICAgICAqIEBzaW5j
ZSAzLjENCiAgICAgICAgICogQHBhcmFtDQpAQCAtMjkxLDYgKzMxMCwxNSBAQCBjbGFzcyBDSHR0
cENhY2hlSGFuZGxlciA6IHB1YmxpYyBDQmFzZQ0KICAgICAgICAgKiBAcGFyYW0NCiAgICAgICAg
ICogQHJldHVybg0KICAgICAgICAgKi8NCisgICAgICAgIHZvaWQgT3Blbkxvb2t1cFRhYmxlTChD
SHR0cENhY2hlTG9va3VwVGFibGUqIGFMb29rdXBUYWJsZSk7DQorDQorICAgICAgICAvKioNCisg
ICAgICAgICoNCisgICAgICAgICogQHNpbmNlIDMuMQ0KKyAgICAgICAgKiBAcGFyYW0NCisgICAg
ICAgICogQHBhcmFtDQorICAgICAgICAqIEByZXR1cm4NCisgICAgICAgICovDQogICAgICAgICB2
b2lkIEhhbmRsZUNvcnJ1cHRFbnRyeSggQ0h0dHBDYWNoZUVudHJ5JiBhU3RyYXlFbnRyeSwgVEJv
b2wgYVVwZGF0ZSA9IEVUcnVlICk7DQogDQogICAgICAgICAvKioNCkBAIC0zNDUsNiArMzczLDgg
QEAgY2xhc3MgQ0h0dHBDYWNoZUhhbmRsZXIgOiBwdWJsaWMgQ0Jhc2UNCiAgICAgICAgIENJZGxl
KiAgICAgICAgICAgICAgICAgICAgICAgICAgaUlkbGU7ICAgICAgLy8gb3duZWQNCiAgICAgICAg
IC8vIG5hbWUgb2YgdGhlIGluZGV4IGZpbGUNCiAgICAgICAgIEhCdWZDKiAgICAgICAgICAgICAg
ICAgICAgICAgICAgaUluZGV4RmlsZTsgLy8gb3duZWQNCisgICAgICAgIC8vIE9ic2VydmluZyBj
aGFuZ2VzIGluIGNhY2hlDQorICAgICAgICBDSHR0cENhY2hlT2JzZXJ2ZXIqIGlIdHRwQ2FjaGVP
YnNlcnZlcjsgLy8gb3duZWQNCiAgICAgfTsNCiANCiAjZW5kaWYgICAgICAvLyBDSFRUUENBQ0hF
SEFORExFUl9IDQpJbmRleDogV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNo
ZUxvb2t1cFRhYmxlLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2Fj
aGVJbmMvSHR0cENhY2hlTG9va3VwVGFibGUuaAkocmV2aXNpb24gMTgyMjEpDQorKysgV2ViS2l0
L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZUxvb2t1cFRhYmxlLmgJKHdvcmtpbmcg
Y29weSkNCkBAIC05LDkgKzksOSBAQA0KICogICAgQ29weXJpZ2h0IChjKSAyMDA2LCBOb2tpYSBD
b3Jwb3JhdGlvbg0KICogICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqICANCi0qICAJUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0DQotKiAgCW1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucw0KLSogIAlhcmUgbWV0Og0KKyogICBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCisqICAg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zDQorKiAgIGFyZSBtZXQ6DQogKiAgDQogKiAgICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCiAqICAgICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuDQpAQCAtMjMsMTggKzIzLDE4IEBADQogKiAgICAgICAgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkDQogKiAgICAgICAg
ZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLg0KICogIA0KLSogIAlUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQotKiAgCSJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQotKiAgCUxJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUg0KLSogIAlBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVA0KLSogIAlPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwNCi0qICAJU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVA0K
LSogIAlMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwNCi0qICAJREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZDQotKiAgCVRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQNCi0q
ICAJKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUNCi0qICAJVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSA0KLSogIAlEQU1BR0UuDQorKiAgIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMN
CisqICAgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QNCisqICAgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SDQorKiAgIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUDQorKiAg
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLA0KKyogICBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UDQorKiAgIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLA0KKyogICBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkNCisqICAgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVA0KKyogICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRQ0KKyogICBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIDQor
KiAgIERBTUFHRS4NCiAqICANCiAqICAgIFBsZWFzZSBzZWUgZmlsZSBwYXRlbnRsaWNlbnNlLnR4
dCBmb3IgZnVydGhlciBncmFudHMuDQogKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC00NSw2
ICs0NSw3IEBADQogDQogLy8gIElOQ0xVREVTDQogI2luY2x1ZGUgPGUzMmJhc2UuaD4NCisjaW5j
bHVkZSA8czMyZmlsZS5oPg0KIA0KIC8vIENPTlNUQU5UUw0KIA0KQEAgLTk0LDcgKzk1LDcgQEAg
Y2xhc3MgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlIDogcHVibGljIENCYQ0KICAgICAgICAgKiBAcGFy
YW0NCiAgICAgICAgICogQHJldHVybg0KICAgICAgICAgKi8NCi0JCUNIdHRwQ2FjaGVFbnRyeSog
SW5zZXJ0TCggY29uc3QgVERlc0M4JiBhVXJsICk7DQorICAgIENIdHRwQ2FjaGVFbnRyeSogSW5z
ZXJ0TCggY29uc3QgVERlc0M4JiBhVXJsICk7DQogDQogICAgICAgICAvKioNCiAgICAgICAgICoN
CkBAIC0xMDIsNyArMTAzLDcgQEAgY2xhc3MgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlIDogcHVibGlj
IENCYQ0KICAgICAgICAgKiBAcGFyYW0NCiAgICAgICAgICogQHJldHVybg0KICAgICAgICAgKi8N
Ci0JCUNIdHRwQ2FjaGVFbnRyeSogRmluZCggY29uc3QgVERlc0M4JiBhVXJsICk7DQorICAgIENI
dHRwQ2FjaGVFbnRyeSogRmluZCggY29uc3QgVERlc0M4JiBhVXJsICk7DQogDQogICAgICAgICAv
KioNCiAgICAgICAgICoNCkBAIC0xMTAsNyArMTExLDcgQEAgY2xhc3MgQ0h0dHBDYWNoZUxvb2t1
cFRhYmxlIDogcHVibGljIENCYQ0KICAgICAgICAgKiBAcGFyYW0NCiAgICAgICAgICogQHJldHVy
bg0KICAgICAgICAgKi8NCi0JCVRJbnQgUmVtb3ZlKCBjb25zdCBURGVzQzgmIGFVcmwgKTsNCisg
ICAgVEludCBSZW1vdmUoIGNvbnN0IFREZXNDOCYgYVVybCApOw0KIA0KICAgICAgICAgLyoqDQog
ICAgICAgICAqDQpAQCAtMTE4LDcgKzExOSw3IEBAIGNsYXNzIENIdHRwQ2FjaGVMb29rdXBUYWJs
ZSA6IHB1YmxpYyBDQmENCiAgICAgICAgICogQHBhcmFtDQogICAgICAgICAqIEByZXR1cm4NCiAg
ICAgICAgICovDQotCQlUSW50IFJlbW92ZUFsbCgpOw0KKyAgICBUSW50IFJlbW92ZUFsbCgpOw0K
IA0KICAgICAgICAgLyoqDQogICAgICAgICAqDQpAQCAtMTUyLDYgKzE1MywxNCBAQCBjbGFzcyBD
SHR0cENhY2hlTG9va3VwVGFibGUgOiBwdWJsaWMgQ0JhDQogICAgICAgICAqLw0KICAgICAgICAg
dm9pZCBFeHRlcm5hbGl6ZUwoIFJGaWxlV3JpdGVTdHJlYW0mIGFXcml0ZVN0cmVhbSApOw0KIA0K
KyAgICAgICAgLyoqDQorICAgICAgICAqDQorICAgICAgICAqIEBzaW5jZSAzLjENCisgICAgICAg
ICogQHBhcmFtDQorICAgICAgICAqIEByZXR1cm4NCisgICAgICAgICovDQorICAgIHZvaWQgTWVy
Z2VMKCBDSHR0cENhY2hlTG9va3VwVGFibGUqIGFIdHRwQ2FjaGVMb29rdXBUYWJsZSwgUkZzIGFS
ZnMgICk7DQorDQogICAgIHByaXZhdGU6DQogDQogICAgICAgICAvKioNCkBAIC0yNjEsNyArMjcw
LDcgQEAgY2xhc3MgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlIDogcHVibGljIENCYQ0KICAgICBwcml2
YXRlOiAgICAvLyBEYXRhDQogDQogICAgICAgICAvLyBoYXNoIHRhYmxlIGZvciBjYWNoZSBlbnRy
aWVzDQotCQlDQXJyYXlQdHJGbGF0PENIdHRwQ2FjaGVFbnRyeT4qIGlFbnRyaWVzOw0KKyAgICBD
QXJyYXlQdHJGbGF0PENIdHRwQ2FjaGVFbnRyeT4qIGlFbnRyaWVzOw0KICAgICAgICAgLy8gbnVt
YmVyIG9mIGVudHJpZXMgaW4gdGhlIGhhc2h0YWJsZQ0KICAgICAgICAgVEludCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpQ291bnQ7DQogICAgICAgICAvLw0KSW5kZXg6IFdlYktpdC9SZXNv
dXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVPYnNlcnZlci5oDQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
V2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZU9ic2VydmVyLmgJKHJldmlz
aW9uIDApDQorKysgV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZU9ic2Vy
dmVyLmgJKHJldmlzaW9uIDApDQpAQCAtMCwwICsxLDEyMSBAQA0KKy8qDQorKiA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NCisqICBOYW1lICAgICAgICA6IEh0dHBDYWNoZUhhbmRsZXJVcGRhdGVyLmgN
CisqICBQYXJ0IG9mICAgICA6IFdlYktpdCAvIFJlc291cmNlTG9hZGVyDQorKiAgSW50ZXJmYWNl
ICAgOg0KKyogIERlc2NyaXB0aW9uIDogRGVmaW5pdGlvbiBvZiBDSHR0cENhY2hlT2JzZXJ2ZXIN
CisqICBWZXJzaW9uICAgICA6ICVWZXJzaW9uJQ0KKyoNCisqICAgIENvcHlyaWdodCAoYykgMjAw
NiwgTm9raWEgQ29ycG9yYXRpb24NCisqICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQorKg0KKyog
ICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQNCisqICAgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQorKiAgIGFyZSBtZXQ6DQorKg0KKyogICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0DQorKiAgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KKyogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0DQorKiAgICAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluDQorKiAgICAgICAgdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQ0KKyogICAgICAgIGRpc3RyaWJ1dGlvbi4NCisqICAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIHRoZSBOb2tpYSBDb3Jwb3JhdGlvbiBub3IgdGhlIG5hbWVzIG9mIGl0
cw0KKyogICAgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZA0KKyogICAgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCisqDQorKiAgIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMN
CisqICAgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QNCisqICAgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SDQorKiAgIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUDQorKiAg
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLA0KKyogICBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UDQorKiAgIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLA0KKyogICBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkNCisqICAgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVA0KKyogICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRQ0KKyogICBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIDQor
KiAgIERBTUFHRS4NCisqDQorKiAgICBQbGVhc2Ugc2VlIGZpbGUgcGF0ZW50bGljZW5zZS50eHQg
Zm9yIGZ1cnRoZXIgZ3JhbnRzLg0KKyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorKi8NCisNCisj
aWZuZGVmIENIVFRQQ0FDSEVPQlNFUlZFUl9IDQorI2RlZmluZSBDSFRUUENBQ0hFT0JTRVJWRVJf
SA0KKw0KKy8vICBJTkNMVURFUw0KKyNpbmNsdWRlIDxlMzJiYXNlLmg+DQorI2luY2x1ZGUgPGYz
MmZpbGUuaD4NCisNCisvLyBDT05TVEFOVFMNCisNCisvLyBNQUNST1MNCisNCisvLyBEQVRBIFRZ
UEVTDQorDQorLy8gRlVOQ1RJT04gUFJPVE9UWVBFUw0KKw0KKy8vIEZPUldBUkQgREVDTEFSQVRJ
T05TDQorY2xhc3MgQ0h0dHBDYWNoZUhhbmRsZXI7DQorDQorLy8gQ0xBU1MgREVDTEFSQVRJT04N
CisNCisvKioNCisqDQorKiAgQGxpYg0KKyogIEBzaW5jZSAzLjENCisqLw0KK05PTlNIQVJBQkxF
X0NMQVNTKENIdHRwQ2FjaGVPYnNlcnZlcikgOiBwdWJsaWMgQ0FjdGl2ZQ0KKyAgICB7DQorICAg
IHB1YmxpYzogIC8vIENvbnN0cnVjdG9ycyBhbmQgZGVzdHJ1Y3Rvcg0KKw0KKyAgICAgICAgLyoq
DQorICAgICAgICAqIFR3by1waGFzZWQgY29uc3RydWN0b3IuDQorICAgICAgICAqIEBzaW5jZSAz
LjENCisgICAgICAgICogQHBhcmFtDQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAgICAgKiBAcmV0
dXJuIENhY2hlSGFuZGxlciBvYmplY3QuDQorICAgICAgICAqLw0KKyAgICAgICAgc3RhdGljIENI
dHRwQ2FjaGVPYnNlcnZlciogTmV3TCggY29uc3QgSEJ1ZkMqIGFEaXJlY3RvcnksIGNvbnN0IEhC
dWZDKiBhSW5kZXhGaWxlLA0KKyAgICAgICAgICAgIENIdHRwQ2FjaGVIYW5kbGVyKiBhSHR0cENh
Y2hlSGFuZGxlcik7DQorDQorICAgICAgICAvKioNCisgICAgICAgICogRGVzdHJ1Y3Rvci4NCisg
ICAgICAgICovDQorICAgICAgICB2aXJ0dWFsIH5DSHR0cENhY2hlT2JzZXJ2ZXIoKTsNCisNCisg
ICAgcHVibGljOiAvLyBuZXcgZnVuY3Rpb25zDQorICAgICAgICB2b2lkIFN0YXJ0T2JzZXJ2ZXJM
KCk7DQorDQorICAgIHB1YmxpYzogLy8gZnJvbSBiYXNlIGNsYXNzIENBY3RpdmUNCisgICAgICAg
IHZvaWQgUnVuTCgpOw0KKyAgICAgICAgVEludCBSdW5FcnJvcihUSW50IGFFcnJvcik7DQorICAg
ICAgICB2b2lkIERvQ2FuY2VsKCk7DQorDQorICAgIHByaXZhdGU6DQorDQorICAgICAgICAvKioN
CisgICAgICAgICogQ29uc3RydWN0Lg0KKyAgICAgICAgKiBAc2luY2UgMy4xDQorICAgICAgICAq
IEBwYXJhbQ0KKyAgICAgICAgKiBAcGFyYW0NCisgICAgICAgICogQHJldHVybiBDYWNoZU9ic2Vy
dmVyIG9iamVjdC4NCisgICAgICAgICovDQorICAgICAgICBDSHR0cENhY2hlT2JzZXJ2ZXIoQ0h0
dHBDYWNoZUhhbmRsZXIqIGFIdHRwQ2FjaGVIYW5kbGVyKTsNCisNCisgICAgICAgIC8qKg0KKyAg
ICAgICAgKiBCeSBkZWZhdWx0IFN5bWJpYW4gMm5kIHBoYXNlIGNvbnN0cnVjdG9yIGlzIHByaXZh
dGUuDQorICAgICAgICAqLw0KKyAgICAgICAgdm9pZCBDb25zdHJ1Y3RMKGNvbnN0IEhCdWZDKiBh
RGlyZWN0b3J5LCBjb25zdCBIQnVmQyogYUluZGV4RmlsZSk7DQorDQorICAgIHByaXZhdGU6ICAg
IC8vIERhdGENCisNCisgICAgICAgIC8vIG5hbWUgYW5kIHBhdGggb2YgaW5kZXggZmlsZQ0KKyAg
ICAgICAgSEJ1ZkMqIGlGaWxlTmFtZTsgLy8gb3duZWQNCisgICAgICAgIFJGcyBpRnNTZXNzaW9u
OyAvLyBub3Qgb3duZWQNCisgICAgICAgIENIdHRwQ2FjaGVIYW5kbGVyKiBpSHR0cENhY2hlSGFu
ZGxlcjsNCisgICAgfTsNCisNCisjZW5kaWYgICAgICAvLyBDSFRUUENBQ0hFT0JTRVJWRVJfSA0K
Kw0KKy8vIEVuZCBvZiBGaWxlDQpJbmRleDogV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlU3Jj
L0h0dHBDYWNoZUVudHJ5LmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9SZXNvdXJjZUxvYWRl
ci9DYWNoZVNyYy9IdHRwQ2FjaGVFbnRyeS5jcHAJKHJldmlzaW9uIDE4MjIxKQ0KKysrIFdlYktp
dC9SZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVFbnRyeS5jcHAJKHdvcmtpbmcgY29w
eSkNCkBAIC0zMDYsNCArMzA2LDI2IEBAIFRJbnQgQ0h0dHBDYWNoZUVudHJ5OjpFeHRlcm5hbGl6
ZSgNCiAgICAgcmV0dXJuIGVycjsNCiAgICAgfQ0KIA0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
DQorLy8gQ0h0dHBDYWNoZUVudHJ5OjpBY2Nlc3NlZA0KKy8vDQorLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0NCisvLw0KK3ZvaWQgQ0h0dHBDYWNoZUVudHJ5OjpBY2Nlc3NlZChUSW50NjQgYUxhc3RB
Y2Nlc3NlZCwgVFVpbnQxNiBhUmVmKQ0KKyAgICB7DQorICAgIGlMYXN0QWNjZXNzZWQgPSBhTGFz
dEFjY2Vzc2VkOw0KKyAgICBpUmVmID0gYVJlZjsNCisgICAgaWYoIGlWaWN0aW0gKQ0KKyAgICAg
ICAgew0KKyAgICAgICAgaUV2aWN0aW9uSGFuZGxlci0+QWNjZXNzZWQoICp0aGlzICk7DQorICAg
ICAgICB9DQorI2lmZGVmIF9fQ0FDSEVMT0dfXw0KKyAgICBfTElUKCBLQWNjZXNzRm9ybWF0LCAi
ZW50cnkgYWNjZXNzZWQ6ICVkIiApOw0KKyAgICBUQnVmPDEwMD4gYnVmOw0KKyAgICBidWYuRm9y
bWF0KCBLQWNjZXNzRm9ybWF0LCBpUmVmICk7DQorICAgIEh0dHBDYWNoZVV0aWw6OldyaXRlVXJs
VG9Mb2coIDAsIGJ1ZiwgaVVybC0+RGVzKCkgKTsNCisjZW5kaWYgLy8gX19DQUNIRUxPR19fDQor
DQorICAgIH0NCisNCiAvLyAgRW5kIG9mIEZpbGUNCkluZGV4OiBXZWJLaXQvUmVzb3VyY2VMb2Fk
ZXIvQ2FjaGVTcmMvSHR0cENhY2hlSGFuZGxlci5jcHANCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQv
UmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlSGFuZGxlci5jcHAJKHJldmlzaW9uIDE4
MjIxKQ0KKysrIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVIYW5kbGVy
LmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTQ4LDYgKzQ4LDcgQEANCiAjaW5jbHVkZSAiSHR0cENh
Y2hlU3RyZWFtSGFuZGxlci5oIg0KICNpbmNsdWRlICJIdHRwQ2FjaGVVdGlsLmgiDQogI2luY2x1
ZGUgIkh0dHBDYWNoZUV2aWN0aW9uSGFuZGxlci5oIg0KKyNpbmNsdWRlICJIdHRwQ2FjaGVPYnNl
cnZlci5oIg0KICNpbmNsdWRlIDxodHRwXFJIVFRQVHJhbnNhY3Rpb24uaD4NCiAjaW5jbHVkZSA8
aHR0cFxyaHR0cHNlc3Npb24uaD4NCiAjaW5jbHVkZSA8aHR0cFxyaHR0cGhlYWRlcnMuaD4NCkBA
IC0xMTUsNiArMTE2LDkgQEAgdm9pZCBDSHR0cENhY2hlSGFuZGxlcjo6Q29uc3RydWN0TCgNCiAg
ICAgT3Blbkxvb2t1cFRhYmxlTCgpOw0KICAgICAvLw0KICAgICBpSWRsZSA9IENJZGxlOjpOZXdM
KCBDQWN0aXZlOjpFUHJpb3JpdHlJZGxlICk7DQorICAgIC8vDQorICAgIGlIdHRwQ2FjaGVPYnNl
cnZlciA9IENIdHRwQ2FjaGVPYnNlcnZlcjo6TmV3TChpRGlyZWN0b3J5LCBpSW5kZXhGaWxlLCB0
aGlzKTsNCisgICAgaUh0dHBDYWNoZU9ic2VydmVyLT5TdGFydE9ic2VydmVyTCgpOw0KICAgICB9
DQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkBAIC0xMzksOCArMTQzLDEzIEBAIENIdHRw
Q2FjaGVIYW5kbGVyKiBDSHR0cENhY2hlSGFuZGxlcjo6TmUNCiAvLyBEZXN0cnVjdG9yDQogQ0h0
dHBDYWNoZUhhbmRsZXI6On5DSHR0cENhY2hlSGFuZGxlcigpDQogICAgIHsNCi0gICAgLy8gc2F2
ZSBlbnRyeSB0YWJsZQ0KLSAgICBUUkFQX0lHTk9SRSggU2F2ZUxvb2t1cFRhYmxlTCgpICk7DQor
ICAgIGlmIChpSWRsZS0+SXNBY3RpdmUoKSkNCisgICAgICAgIHsNCisgICAgICAgIC8vIHNhdmUg
ZW50cnkgdGFibGUsIGJ1dCBvbmx5IGlmIGl0IHdhcyBtb2RpZmllZA0KKyAgICAgICAgVFJBUF9J
R05PUkUoIFNhdmVMb29rdXBUYWJsZUwoKSApOw0KKyAgICAgICAgfQ0KKyAgICAvLw0KKyAgICBk
ZWxldGUgaUh0dHBDYWNoZU9ic2VydmVyOw0KICAgICAvLw0KICAgICBpZiAoaUV2aWN0aW9uSGFu
ZGxlcikNCiAgICAgICAgIHsNCkBAIC0xMDY0LDYgKzEwNzMsMTYgQEAgVEJvb2wgQ0h0dHBDYWNo
ZUhhbmRsZXI6OkhhbmRsZVJlc3BvbnNlTg0KIC8vDQogdm9pZCBDSHR0cENhY2hlSGFuZGxlcjo6
T3Blbkxvb2t1cFRhYmxlTCgpDQogICAgIHsNCisgICAgT3Blbkxvb2t1cFRhYmxlTChpTG9va3Vw
VGFibGUpOw0KKyAgICB9DQorDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDSHR0cENh
Y2hlSGFuZGxlcjo6T3Blbkxvb2t1cFRhYmxlTA0KKy8vDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0NCisvLw0KK3ZvaWQgQ0h0dHBDYWNoZUhhbmRsZXI6Ok9wZW5Mb29rdXBUYWJsZUwoQ0h0dHBD
YWNoZUxvb2t1cFRhYmxlKiBhTG9va3VwVGFibGUpDQorICAgIHsNCiAgICAgLy8gcmVhZCBlbnRy
aWVzIGZyb20gaW5kZXguZGF0DQogICAgIFJGaWxlUmVhZFN0cmVhbSByZWFkU3RyZWFtOw0KICAg
ICBSRnMgZnM7DQpAQCAtMTA4MywxMSArMTEwMiwyNiBAQCB2b2lkIENIdHRwQ2FjaGVIYW5kbGVy
OjpPcGVuTG9va3VwVGFibGVMDQogICAgIGlmKCBlcnIgPT0gS0Vyck5vbmUgKQ0KICAgICAgICAg
ew0KICAgICAgICAgZnMuU2V0U2Vzc2lvblBhdGgoIGlEaXJlY3RvcnktPkRlcygpICk7DQotDQot
ICAgICAgICBpZiggcmVhZFN0cmVhbS5PcGVuKCBmcywgaUluZGV4RmlsZS0+RGVzKCksIEVGaWxl
UmVhZCApID09IEtFcnJOb25lICkNCisgICAgICAgIFRJbnQgcmV0ID0gS0Vyck5vbmU7DQorICAg
ICAgICBUSW50IHRyeUNvdW50ID0gMDsNCisgICAgICAgIGZvciAodHJ5Q291bnQgPSAwOyB0cnlD
b3VudCA8IDU7IHRyeUNvdW50KyspIA0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICByZXQg
PSByZWFkU3RyZWFtLk9wZW4oIGZzLCBpSW5kZXhGaWxlLT5EZXMoKSwgRUZpbGVSZWFkIHwgRUZp
bGVTaGFyZUFueSApOw0KKyAgICAgICAgICAgIGlmIChyZXQgPT0gS0VyckluVXNlKQ0KKyAgICAg
ICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIC8vIFdoZW4gdGhlIGNhY2hlIGlzIGZ1bGws
IGl0IHRha2VzIDY1IC0gODUgbWlsaXNlY29uZHMgdG8gd3JpdGUgdGhlIGluZGV4Lg0KKyAgICAg
ICAgICAgICAgICAvLyBTbyB3YWl0IDUwIG1pbGlzZWNvbmRzIGFuZCB0cnkgYWdhaW4NCisgICAg
ICAgICAgICAgICAgVXNlcjo6QWZ0ZXIoNTAwMDApOw0KKyAgICAgICAgICAgICAgICB9DQorICAg
ICAgICAgICAgZWxzZQ0KKyAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIGJyZWFr
Ow0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgaWYoIHJldCA9
PSBLRXJyTm9uZSApDQogICAgICAgICAgICAgew0KICAgICAgICAgICAgIENsZWFudXBDbG9zZVB1
c2hMKCByZWFkU3RyZWFtICk7DQotICAgICAgICAgICAgaUxvb2t1cFRhYmxlLT5JbnRlcm5hbGl6
ZUwoIHJlYWRTdHJlYW0sIGlEaXJlY3RvcnktPkRlcygpICk7DQorICAgICAgICAgICAgYUxvb2t1
cFRhYmxlLT5JbnRlcm5hbGl6ZUwoIHJlYWRTdHJlYW0sIGlEaXJlY3RvcnktPkRlcygpICk7DQog
ICAgICAgICAgICAgQ2xlYW51cFN0YWNrOjpQb3BBbmREZXN0cm95KCk7IC8vIHJlYWRTdHJlYW0N
CiAgICAgICAgICAgICB9DQogICAgICAgICB9DQpAQCAtMTEwNywxMCArMTE0MSwyNiBAQCB2b2lk
IENIdHRwQ2FjaGVIYW5kbGVyOjpTYXZlTG9va3VwVGFibGVMDQogICAgIFJGcyBmczsNCiAgICAg
VXNlcjo6TGVhdmVJZkVycm9yKCBmcy5Db25uZWN0KCkgKTsNCiAgICAgQ2xlYW51cENsb3NlUHVz
aEwoIGZzICk7DQotDQogICAgIGZzLlNldFNlc3Npb25QYXRoKCBpRGlyZWN0b3J5LT5EZXMoKSAp
Ow0KLQ0KLSAgICBpZiggd3JpdGVTdHJlYW0uUmVwbGFjZSggZnMsIGlJbmRleEZpbGUtPkRlcygp
LCBFRmlsZVdyaXRlICkgPT0gS0Vyck5vbmUgKQ0KKyAgICAvLyBEb24ndCBnZXQgbm90aWZpZWQg
YWJvdXQgb3duIGNoYW5nZXMNCisgICAgaUh0dHBDYWNoZU9ic2VydmVyLT5DYW5jZWwoKTsNCisg
ICAgVEludCByZXQgPSBLRXJyTm9uZTsNCisgICAgVEludCB0cnlDb3VudCA9IDA7DQorICAgIGZv
ciAodHJ5Q291bnQgPSAwOyB0cnlDb3VudCA8IDU7IHRyeUNvdW50KyspIA0KKyAgICAgICAgew0K
KyAgICAgICAgcmV0ID0gd3JpdGVTdHJlYW0uUmVwbGFjZSggZnMsIGlJbmRleEZpbGUtPkRlcygp
LCBFRmlsZVdyaXRlICk7DQorICAgICAgICBpZiAocmV0ID09IEtFcnJJblVzZSkNCisgICAgICAg
ICAgICB7DQorICAgICAgICAgICAgLy8gV2hlbiB0aGUgY2FjaGUgaXMgZnVsbCwgaXQgdGFrZXMg
NjUgLSA4NSBtaWxpc2Vjb25kcyB0byB3cml0ZSB0aGUgaW5kZXguDQorICAgICAgICAgICAgLy8g
U28gd2FpdCA1MCBtaWxpc2Vjb25kcyBhbmQgdHJ5IGFnYWluDQorICAgICAgICAgICAgVXNlcjo6
QWZ0ZXIoNTAwMDApOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgIGVsc2UNCisgICAgICAgICAg
ICB7DQorICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgfQ0KKyAg
ICBpZiggcmV0ID09IEtFcnJOb25lICkNCiAgICAgICAgIHsNCiAgICAgICAgIENsZWFudXBDbG9z
ZVB1c2hMKCB3cml0ZVN0cmVhbSApOw0KICAgICAgICAgaUxvb2t1cFRhYmxlLT5FeHRlcm5hbGl6
ZUwoIHdyaXRlU3RyZWFtICk7DQpAQCAtMTExOCw2ICsxMTY4LDcgQEAgdm9pZCBDSHR0cENhY2hl
SGFuZGxlcjo6U2F2ZUxvb2t1cFRhYmxlTA0KICAgICAgICAgQ2xlYW51cFN0YWNrOjpQb3BBbmRE
ZXN0cm95KCk7IC8vIHdyaXRlU3RyZWFtDQogICAgICAgICB9DQogICAgIENsZWFudXBTdGFjazo6
UG9wQW5kRGVzdHJveSgpOyAvLyBmcw0KKyAgICBpSHR0cENhY2hlT2JzZXJ2ZXItPlN0YXJ0T2Jz
ZXJ2ZXJMKCk7DQogICAgIH0NCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQEAgLTEyNDgs
NCArMTI5OSwzNSBAQCBUSW50IENIdHRwQ2FjaGVIYW5kbGVyOjpEb0JhY2tncm91bmRTYXZlDQog
ICAgIHJldHVybiBLRXJyTm9uZTsNCiAgICAgfQ0KIA0KKw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tDQorLy8gQ0h0dHBDYWNoZUhhbmRsZXI6OlVwZGF0ZUxvb2t1cFRhYmxlDQorLy8NCisvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQordm9pZCBDSHR0cENhY2hlSGFuZGxlcjo6VXBkYXRl
TG9va3VwVGFibGUoKQ0KKyAgICB7DQorICAgIFRSQVBfSUdOT1JFKFVwZGF0ZUxvb2t1cFRhYmxl
TCgpKTsNCisgICAgaUh0dHBDYWNoZU9ic2VydmVyLT5TdGFydE9ic2VydmVyTCgpOw0KKyAgICB9
DQorDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDSHR0cENhY2hlSGFuZGxlcjo6VXBk
YXRlTG9va3VwVGFibGVMDQorLy8NCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQordm9p
ZCBDSHR0cENhY2hlSGFuZGxlcjo6VXBkYXRlTG9va3VwVGFibGVMKCkNCisgICAgew0KKyAgICBD
SHR0cENhY2hlRXZpY3Rpb25IYW5kbGVyKiBldmljdGlvbkhhbmRsZXIgPSBDSHR0cENhY2hlRXZp
Y3Rpb25IYW5kbGVyOjpOZXdMKCk7DQorICAgIENsZWFudXBTdGFjazo6UHVzaEwoZXZpY3Rpb25I
YW5kbGVyKTsNCisgICAgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlKiBsb29rdXBUYWJsZSA9IENIdHRw
Q2FjaGVMb29rdXBUYWJsZTo6TmV3TCggKmV2aWN0aW9uSGFuZGxlciwgKmlTdHJlYW1IYW5kbGVy
ICk7DQorICAgIENsZWFudXBTdGFjazo6UHVzaEwobG9va3VwVGFibGUpOw0KKyAgICBPcGVuTG9v
a3VwVGFibGVMKGxvb2t1cFRhYmxlKTsNCisgICAgUkZzIHJmczsNCisgICAgVXNlcjo6TGVhdmVJ
ZkVycm9yKHJmcy5Db25uZWN0KCkpOw0KKyAgICBDbGVhbnVwQ2xvc2VQdXNoTChyZnMpOw0KKyAg
ICByZnMuU2V0U2Vzc2lvblBhdGgoIGlEaXJlY3RvcnktPkRlcygpICk7DQorICAgIGlMb29rdXBU
YWJsZS0+TWVyZ2VMKGxvb2t1cFRhYmxlLCByZnMpOw0KKyAgICBDbGVhbnVwU3RhY2s6OlBvcEFu
ZERlc3Ryb3koMyk7IC8vIHJmcywgbG9va3VwVGFibGUsIGV2aWN0aW9uSGFuZGxlcg0KKyAgICB9
DQogLy8gIEVuZCBvZiBGaWxlDQpJbmRleDogV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlU3Jj
L0h0dHBDYWNoZUxvb2t1cFRhYmxlLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9SZXNvdXJj
ZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVMb29rdXBUYWJsZS5jcHAJKHJldmlzaW9uIDE4MjIx
KQ0KKysrIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVMb29rdXBUYWJs
ZS5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC00Niw3ICs0Niw2IEBADQogI2luY2x1ZGUgIkh0dHBD
YWNoZVV0aWwuaCINCiAjaW5jbHVkZSAiSHR0cENhY2hlRXZpY3Rpb25IYW5kbGVyLmgiDQogI2lu
Y2x1ZGUgIkh0dHBDYWNoZVN0cmVhbUhhbmRsZXIuaCINCi0jaW5jbHVkZSA8czMyZmlsZS5oPg0K
IA0KIC8vIEVYVEVSTkFMIERBVEEgU1RSVUNUVVJFUw0KIA0KQEAgLTY3Miw1ICs2NzEsNzIgQEAg
VEJvb2wgQ0h0dHBDYWNoZUxvb2t1cFRhYmxlOjpCb3VuZGFyeUNoZQ0KICAgICBUSW50IGFQb3Mg
KQ0KICAgICB7DQogICAgIHJldHVybiAoIGFQb3MgPj0gMCAmJiBhUG9zIDwgaUVudHJpZXMtPkNv
dW50KCkgKTsNCisgICAgfQ0KKw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBD
YWNoZUxvb2t1cFRhYmxlOjpNZXJnZUwNCisvLw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQor
Ly8NCit2b2lkIENIdHRwQ2FjaGVMb29rdXBUYWJsZTo6TWVyZ2VMKCBDSHR0cENhY2hlTG9va3Vw
VGFibGUqIGFIdHRwQ2FjaGVMb29rdXBUYWJsZSwgUkZzIGFSZnMgKQ0KKyAgICB7DQorICAgIFRJ
bnQgbXlDb3VudCA9IGlFbnRyaWVzLT5Db3VudCgpOw0KKyAgICBUSW50IGkgPSAwOw0KKyAgICBm
b3IgKGkgPSBteUNvdW50IC0gMTsgaSA+PSAwOyBpLS0pDQorICAgICAgICB7DQorICAgICAgICBp
ZiAoIFZhbGlkKCBpICkgKQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICBDSHR0cENhY2hl
RW50cnkqIGVudHJ5ID0gaUVudHJpZXMtPkF0KGkpOw0KKyAgICAgICAgICAgIENIdHRwQ2FjaGVF
bnRyeSogbmV3RW50cnkgPSBhSHR0cENhY2hlTG9va3VwVGFibGUtPkZpbmQoZW50cnktPlVybCgp
KTsNCisgICAgICAgICAgICBpZiAobmV3RW50cnkpDQorICAgICAgICAgICAgICAgIHsNCisgICAg
ICAgICAgICAgICAgLy8gRW50cnkgaXMgaW4gdGhlIG5ldyBpbmRleCBmaWxlDQorICAgICAgICAg
ICAgICAgIGlmIChuZXdFbnRyeS0+TGFzdEFjY2Vzc2VkKCkgPiBlbnRyeS0+TGFzdEFjY2Vzc2Vk
KCkpDQorICAgICAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgICAgICBlbnRyeS0+
QWNjZXNzZWQobmV3RW50cnktPkxhc3RBY2Nlc3NlZCgpLCBuZXdFbnRyeS0+UmVmKCkpOw0KKyAg
ICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICBUSW50IHBvcyA9IGFIdHRwQ2Fj
aGVMb29rdXBUYWJsZS0+UHJvYmUobmV3RW50cnktPlVybCgpLCBFRmFsc2UpOw0KKyAgICAgICAg
ICAgICAgICBpZiAoYUh0dHBDYWNoZUxvb2t1cFRhYmxlLT5WYWxpZChwb3MpKQ0KKyAgICAgICAg
ICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICAgICAgYUh0dHBDYWNoZUxvb2t1cFRhYmxl
LT5TZXREZWxldGVkKHBvcyk7DQorICAgICAgICAgICAgICAgICAgICBkZWxldGUgbmV3RW50cnk7
DQorICAgICAgICAgICAgICAgICAgICBhSHR0cENhY2hlTG9va3VwVGFibGUtPmlDb3VudC0tOw0K
KyAgICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAg
ZWxzZSAvLyAobmV3RW50cnkpDQorICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAg
Ly8gRW50cnkgaXMgbm90IGluIHRoZSBuZXcgaW5kZXggZmlsZQ0KKyAgICAgICAgICAgICAgICBU
VWludCBhdHQ7DQorICAgICAgICAgICAgICAgIGlmIChhUmZzLkF0dChlbnRyeS0+RmlsZW5hbWUo
KSwgYXR0KSAhPSBLRXJyTm9uZSkNCisgICAgICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAg
ICAgICAgICAgIFRJbnQgdGhlUG9zID0gUHJvYmUoZW50cnktPlVybCgpLCBFRmFsc2UpOw0KKyAg
ICAgICAgICAgICAgICAgICAgaWYgKFZhbGlkKHRoZVBvcykpDQorICAgICAgICAgICAgICAgICAg
ICAgICAgew0KKyAgICAgICAgICAgICAgICAgICAgICAgIEVyYXNlKHRoZVBvcyk7DQorICAgICAg
ICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAg
ICAgICB9DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgfQ0KKw0KKyAgICBUSW50IG5ld0NvdW50
ID0gYUh0dHBDYWNoZUxvb2t1cFRhYmxlLT5pRW50cmllcy0+Q291bnQoKTsNCisgICAgZm9yIChp
ID0gbmV3Q291bnQgLSAxOyBpID49IDA7IGktLSkNCisgICAgICAgIHsNCisgICAgICAgIGlmICgg
YUh0dHBDYWNoZUxvb2t1cFRhYmxlLT5WYWxpZCggaSApICkNCisgICAgICAgICAgICB7DQorICAg
ICAgICAgICAgQ0h0dHBDYWNoZUVudHJ5KiBuZXdFbnRyeSA9IGFIdHRwQ2FjaGVMb29rdXBUYWJs
ZS0+aUVudHJpZXMtPkF0KGkpOw0KKyAgICAgICAgICAgIFRJbnQgcG9zID0gYUh0dHBDYWNoZUxv
b2t1cFRhYmxlLT5Qcm9iZShuZXdFbnRyeS0+VXJsKCksIEVGYWxzZSk7DQorICAgICAgICAgICAg
VFVpbnQgYXR0Ow0KKyAgICAgICAgICAgIGlmIChhUmZzLkF0dChuZXdFbnRyeS0+RmlsZW5hbWUo
KSwgYXR0KSA9PSBLRXJyTm9uZSkNCisgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAg
ICBDSHR0cENhY2hlRW50cnkqIG15RW50cnkgPSBJbnNlcnRMKG5ld0VudHJ5LT5VcmwoKSk7DQor
ICAgICAgICAgICAgICAgIG15RW50cnktPlNldFN0YXRlKCBDSHR0cENhY2hlRW50cnk6OkVDYWNo
ZUNvbXBsZXRlICk7DQorICAgICAgICAgICAgICAgIG15RW50cnktPkFjY2Vzc2VkKG5ld0VudHJ5
LT5MYXN0QWNjZXNzZWQoKSwgbmV3RW50cnktPlJlZigpKTsNCisgICAgICAgICAgICAgICAgfSAg
ICAgICAgICANCisgICAgICAgICAgICBhSHR0cENhY2hlTG9va3VwVGFibGUtPlNldERlbGV0ZWQo
cG9zKTsNCisgICAgICAgICAgICBkZWxldGUgbmV3RW50cnk7DQorICAgICAgICAgICAgYUh0dHBD
YWNoZUxvb2t1cFRhYmxlLT5pQ291bnQtLTsNCisgICAgICAgICAgICB9DQorICAgICAgICB9DQog
ICAgIH0NCiAvLyAgRW5kIG9mIEZpbGUNCkluZGV4OiBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2Fj
aGVTcmMvSHR0cENhY2hlT2JzZXJ2ZXIuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L1Jlc291
cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZU9ic2VydmVyLmNwcAkocmV2aXNpb24gMCkNCisr
KyBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlT2JzZXJ2ZXIuY3BwCShy
ZXZpc2lvbiAwKQ0KQEAgLTAsMCArMSwxNjAgQEANCisvKg0KKyogPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQorKiAgTmFtZSAgICAgICAgOiBIdHRwQ2FjaGVPYnNlcnZlci5jcHANCisqICBQYXJ0IG9m
ICAgICA6IFdlYktpdCAvIFJlc291cmNlTG9hZGVyDQorKiAgSW50ZXJmYWNlICAgOg0KKyogIERl
c2NyaXB0aW9uIDogSW1wbGVtZW50YXRpb24gb2YgQ0h0dHBDYWNoZU9ic2VydmVyDQorKiAgVmVy
c2lvbiAgICAgOiAlVmVyc2lvbiUNCisqDQorKiAgICBDb3B5cmlnaHQgKGMpIDIwMDYsIE5va2lh
IENvcnBvcmF0aW9uDQorKiAgICBBbGwgcmlnaHRzIHJlc2VydmVkLg0KKyoNCisqICAgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0DQorKiAgIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucw0KKyogICBhcmUgbWV0Og0KKyoNCisqICAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0K
KyogICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4NCisqICAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KKyogICAgICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbg0KKyog
ICAgICAgIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUNCisqICAgICAgICBkaXN0cmlidXRpb24uDQorKiAgICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiB0aGUgTm9raWEgQ29ycG9yYXRpb24gbm9yIHRoZSBuYW1lcyBvZiBpdHMNCisqICAg
ICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQNCisqICAgICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uDQorKg0KKyogICBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQorKiAgICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UDQorKiAgIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUg0KKyogICBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVA0KKyogICBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwNCisqICAgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVA0KKyogICBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwNCisqICAgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
DQorKiAgIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQNCisqICAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUNCisqICAgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSA0KKyogICBEQU1B
R0UuDQorKg0KKyogICAgUGxlYXNlIHNlZSBmaWxlIHBhdGVudGxpY2Vuc2UudHh0IGZvciBmdXJ0
aGVyIGdyYW50cy4NCisqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyovDQorDQorLy8gSU5DTFVE
RSBGSUxFUw0KKyNpbmNsdWRlICJIdHRwQ2FjaGVPYnNlcnZlci5oIg0KKyNpbmNsdWRlICJIdHRw
Q2FjaGVIYW5kbGVyLmgiDQorDQorDQorLy8gRVhURVJOQUwgREFUQSBTVFJVQ1RVUkVTDQorDQor
Ly8gRVhURVJOQUwgRlVOQ1RJT04gUFJPVE9UWVBFUw0KKw0KKy8vIENPTlNUQU5UUw0KKw0KKy8v
IE1BQ1JPUw0KKw0KKy8vIExPQ0FMIENPTlNUQU5UUyBBTkQgTUFDUk9TDQorDQorLy8gTU9EVUxF
IERBVEEgU1RSVUNUVVJFUw0KKw0KKy8vIExPQ0FMIEZVTkNUSU9OIFBST1RPVFlQRVMNCisNCisv
LyBGT1JXQVJEIERFQ0xBUkFUSU9OUw0KKw0KKw0KKy8vID09PT09PT09PT09PT09PT09PT09PT09
PT09PT0gTUVNQkVSIEZVTkNUSU9OUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQor
DQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDSHR0cENhY2hlT2JzZXJ2ZXI6OkNIdHRw
Q2FjaGVPYnNlcnZlcg0KKy8vIEMrKyBkZWZhdWx0IGNvbnN0cnVjdG9yIGNhbiBOT1QgY29udGFp
biBhbnkgY29kZSwgdGhhdA0KKy8vIG1pZ2h0IGxlYXZlLg0KKy8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tDQorLy8NCitDSHR0cENhY2hlT2JzZXJ2ZXI6OkNIdHRwQ2FjaGVPYnNlcnZlcihDSHR0cENh
Y2hlSGFuZGxlciogYUh0dHBDYWNoZUhhbmRsZXIpIDogQ0FjdGl2ZSggQ0FjdGl2ZTo6RVByaW9y
aXR5SWRsZSApLA0KK2lIdHRwQ2FjaGVIYW5kbGVyKGFIdHRwQ2FjaGVIYW5kbGVyKQ0KKyAgICB7
DQorICAgIENBY3RpdmVTY2hlZHVsZXI6OkFkZCh0aGlzKTsNCisgICAgfQ0KKw0KKy8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBDYWNoZU9ic2VydmVyOjpDb25zdHJ1Y3RMDQorLy8g
U3ltYmlhbiAybmQgcGhhc2UgY29uc3RydWN0b3IgY2FuIGxlYXZlLg0KKy8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tDQorLy8NCit2b2lkIENIdHRwQ2FjaGVPYnNlcnZlcjo6Q29uc3RydWN0TChjb25z
dCBIQnVmQyogYURpcmVjdG9yeSwgY29uc3QgSEJ1ZkMqIGFJbmRleEZpbGUpDQorICAgIHsNCisg
ICAgVXNlcjo6TGVhdmVJZkVycm9yKGlGc1Nlc3Npb24uQ29ubmVjdCgpKTsNCisgICAgaUZpbGVO
YW1lID0gSEJ1ZkM6Ok5ld0woYURpcmVjdG9yeS0+TGVuZ3RoKCkgKyBhSW5kZXhGaWxlLT5MZW5n
dGgoKSk7DQorICAgIGlGaWxlTmFtZS0+RGVzKCkuQ29weSgqYURpcmVjdG9yeSk7DQorICAgIGlG
aWxlTmFtZS0+RGVzKCkuQXBwZW5kKCphSW5kZXhGaWxlKTsNCisgICAgfQ0KKw0KKy8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBDYWNoZU9ic2VydmVyOjpOZXdMDQorLy8gVHdvLXBo
YXNlZCBjb25zdHJ1Y3Rvci4NCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQorQ0h0dHBD
YWNoZU9ic2VydmVyKiBDSHR0cENhY2hlT2JzZXJ2ZXI6Ok5ld0woIGNvbnN0IEhCdWZDKiBhRGly
ZWN0b3J5LCBjb25zdCBIQnVmQyogYUluZGV4RmlsZSwNCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDSHR0cENhY2hlSGFuZGxlciogYUh0
dHBDYWNoZUhhbmRsZXIpDQorICAgIHsNCisgICAgQ0h0dHBDYWNoZU9ic2VydmVyKiBzZWxmID0g
bmV3KCBFTGVhdmUgKSBDSHR0cENhY2hlT2JzZXJ2ZXIoYUh0dHBDYWNoZUhhbmRsZXIpOw0KKyAg
ICBDbGVhbnVwU3RhY2s6OlB1c2hMKCBzZWxmICk7DQorICAgIHNlbGYtPkNvbnN0cnVjdEwoYURp
cmVjdG9yeSwgYUluZGV4RmlsZSk7DQorICAgIENsZWFudXBTdGFjazo6UG9wKCk7DQorICAgIHJl
dHVybiBzZWxmOw0KKyAgICB9DQorDQorLy8gRGVzdHJ1Y3Rvcg0KK0NIdHRwQ2FjaGVPYnNlcnZl
cjo6fkNIdHRwQ2FjaGVPYnNlcnZlcigpDQorICAgIHsNCisgICAgQ2FuY2VsKCk7DQorICAgIGRl
bGV0ZSBpRmlsZU5hbWU7DQorICAgIGlGc1Nlc3Npb24uQ2xvc2UoKTsNCisgICAgfQ0KKw0KKy8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBDYWNoZU9ic2VydmVyOjpSdW5MDQorLy8N
CisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQordm9pZCBDSHR0cENhY2hlT2JzZXJ2ZXI6
OlJ1bkwoKQ0KKyAgICB7DQorICAgIGlIdHRwQ2FjaGVIYW5kbGVyLT5VcGRhdGVMb29rdXBUYWJs
ZSgpOw0KKyAgICB9DQorDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDSHR0cENhY2hl
T2JzZXJ2ZXI6OlJ1bkVycm9yDQorLy8NCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQor
VEludCBDSHR0cENhY2hlT2JzZXJ2ZXI6OlJ1bkVycm9yKFRJbnQgLyphRXJyb3IqLykNCisgICAg
ew0KKyAgICByZXR1cm4gS0Vyck5vbmU7DQorICAgIH0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQ0KKy8vIENIdHRwQ2FjaGVPYnNlcnZlcjo6RG9DYW5jZWwNCisvLw0KKy8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tDQorLy8NCit2b2lkIENIdHRwQ2FjaGVPYnNlcnZlcjo6RG9DYW5jZWwoKQ0K
KyAgICB7DQorICAgIGlGc1Nlc3Npb24uTm90aWZ5Q2hhbmdlQ2FuY2VsKGlTdGF0dXMpOw0KKyAg
ICB9DQorDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBDSHR0cENhY2hlT2JzZXJ2ZXI6
OlN0YXJ0T2JzZXJ2ZXJMDQorLy8NCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQordm9p
ZCBDSHR0cENhY2hlT2JzZXJ2ZXI6OlN0YXJ0T2JzZXJ2ZXJMKCkNCisgICAgew0KKyAgICBpZiAo
IUlzQWN0aXZlKCkpDQorICAgICAgICB7DQorICAgICAgICBpRnNTZXNzaW9uLk5vdGlmeUNoYW5n
ZShFTm90aWZ5V3JpdGUsIGlTdGF0dXMsICppRmlsZU5hbWUpOw0KKyAgICAgICAgU2V0QWN0aXZl
KCk7DQorICAgICAgICB9DQorICAgIH0NCisNCisNCisvLyAgRW5kIG9mIEZpbGUNCkluZGV4OiBX
ZWJLaXQvZ3JvdXAvQnJvd3NlckNhY2hlLm1tcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9ncm91
cC9Ccm93c2VyQ2FjaGUubW1wCShyZXZpc2lvbiAxODIyMSkNCisrKyBXZWJLaXQvZ3JvdXAvQnJv
d3NlckNhY2hlLm1tcAkod29ya2luZyBjb3B5KQ0KQEAgLTY2LDYgKzY2LDcgQEAgU09VUkNFICAg
ICAgICBIdHRwQ2FjaGVNYW5hZ2VyLmNwcA0KIFNPVVJDRSAgICAgICAgSHR0cENhY2hlRW50cnku
Y3BwDQogU09VUkNFICAgICAgICBIdHRwQ2FjaGVFdmljdGlvbkhhbmRsZXIuY3BwDQogU09VUkNF
ICAgICAgICBIdHRwQ2FjaGVIYW5kbGVyLmNwcA0KK1NPVVJDRSAgICAgICAgSHR0cENhY2hlT2Jz
ZXJ2ZXIuY3BwDQogU09VUkNFICAgICAgICBIdHRwQ2FjaGVMb29rdXBUYWJsZS5jcHANCiBTT1VS
Q0UgICAgICAgIEh0dHBDYWNoZVN0cmVhbUhhbmRsZXIuY3BwDQogU09VUkNFICAgICAgICBIdHRw
Q2FjaGVVdGlsLmNwcA0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11863</attachid>
            <date>2006-12-15 08:57:02 -0800</date>
            <delta_ts>2006-12-15 09:14:52 -0800</delta_ts>
            <desc>3.1 fix</desc>
            <filename>MyBrilliantWork.patch</filename>
            <type>text/plain</type>
            <size>36211</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxODIyNikNCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpDQpA
QCAtMSwzICsxLDQxIEBADQorMjAwNi0xMi0xNCAgeWFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lh
LmNvbT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKyAgICAgICAg
REVTQzogQnVnIDExODM0OiBUTFVVLTZWSlFYMyA6IENhY2hlIGNhbm5vdCBzdXBwb3J0IG1vcmUg
dGhhbiBvbmUgYXBwbGljYXRpb24gc2ltdWx0YW5lb3VzbHkNCisgICAgICAgIGh0dHA6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODM0DQorDQorICAgICAgICAqIENoYW5nZUxv
ZzoNCisgICAgICAgICogUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlRW50cnkuaDoN
CisgICAgICAgICogUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlSGFuZGxlci5oOg0K
KyAgICAgICAgKiBSZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVMb29rdXBUYWJsZS5o
Og0KKyAgICAgICAgKiBSZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVPYnNlcnZlci5o
OiBBZGRlZC4NCisgICAgICAgIChOT05TSEFSQUJMRV9DTEFTUyk6DQorICAgICAgICAqIFJlc291
cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUVudHJ5LmNwcDoNCisgICAgICAgIChDSHR0cENh
Y2hlRW50cnk6On5DSHR0cENhY2hlRW50cnkpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVFbnRyeTo6
U2V0U2l6ZSk6DQorICAgICAgICAoQ0h0dHBDYWNoZUVudHJ5OjpJbnRlcm5hbGl6ZSk6DQorICAg
ICAgICAoQ0h0dHBDYWNoZUVudHJ5OjpFeHRlcm5hbGl6ZSk6DQorICAgICAgICAoQ0h0dHBDYWNo
ZUVudHJ5OjpBY2Nlc3NlZCk6DQorICAgICAgICAqIFJlc291cmNlTG9hZGVyL0NhY2hlU3JjL0h0
dHBDYWNoZUhhbmRsZXIuY3BwOg0KKyAgICAgICAgKENIdHRwQ2FjaGVIYW5kbGVyOjpDb25zdHJ1
Y3RMKToNCisgICAgICAgIChDSHR0cENhY2hlSGFuZGxlcjo6fkNIdHRwQ2FjaGVIYW5kbGVyKToN
CisgICAgICAgIChDSHR0cENhY2hlSGFuZGxlcjo6T3Blbkxvb2t1cFRhYmxlTCk6DQorICAgICAg
ICAoQ0h0dHBDYWNoZUhhbmRsZXI6OlNhdmVMb29rdXBUYWJsZUwpOg0KKyAgICAgICAgKENIdHRw
Q2FjaGVIYW5kbGVyOjpEb0JhY2tncm91bmRTYXZlKToNCisgICAgICAgIChDSHR0cENhY2hlSGFu
ZGxlcjo6VXBkYXRlTG9va3VwVGFibGUpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVIYW5kbGVyOjpV
cGRhdGVMb29rdXBUYWJsZUwpOg0KKyAgICAgICAgKiBSZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9I
dHRwQ2FjaGVMb29rdXBUYWJsZS5jcHA6DQorICAgICAgICAqIFJlc291cmNlTG9hZGVyL0NhY2hl
U3JjL0h0dHBDYWNoZU9ic2VydmVyLmNwcDogQWRkZWQuDQorICAgICAgICAoQ0h0dHBDYWNoZU9i
c2VydmVyOjpDSHR0cENhY2hlT2JzZXJ2ZXIpOg0KKyAgICAgICAgKENIdHRwQ2FjaGVPYnNlcnZl
cjo6Q29uc3RydWN0TCk6DQorICAgICAgICAoQ0h0dHBDYWNoZU9ic2VydmVyOjpOZXdMKToNCisg
ICAgICAgIChDSHR0cENhY2hlT2JzZXJ2ZXI6On5DSHR0cENhY2hlT2JzZXJ2ZXIpOg0KKyAgICAg
ICAgKENIdHRwQ2FjaGVPYnNlcnZlcjo6UnVuTCk6DQorICAgICAgICAoQ0h0dHBDYWNoZU9ic2Vy
dmVyOjpSdW5FcnJvcik6DQorICAgICAgICAoQ0h0dHBDYWNoZU9ic2VydmVyOjpEb0NhbmNlbCk6
DQorICAgICAgICAoQ0h0dHBDYWNoZU9ic2VydmVyOjpTdGFydE9ic2VydmVyTCk6DQorICAgICAg
ICAqIGdyb3VwL0Jyb3dzZXJDYWNoZS5tbXA6DQorDQogMjAwNi0xMi0xMSAgc2FyZWVuICA8c2h5
YW0uc2FyZWVuQG5va2lhLmNvbT4NCiANCiAgICAgICAgIFJldmlld2VkIFNhY2hpbiBQYWRtYS4N
CkluZGV4OiBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlRW50cnkuaA0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQ0KLS0tIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVF
bnRyeS5oCShyZXZpc2lvbiAxODIyMSkNCisrKyBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVJ
bmMvSHR0cENhY2hlRW50cnkuaAkod29ya2luZyBjb3B5KQ0KQEAgLTksOSArOSw5IEBADQogKiAg
ICBDb3B5cmlnaHQgKGMpIDIwMDYsIE5va2lhIENvcnBvcmF0aW9uDQogKiAgICBBbGwgcmlnaHRz
IHJlc2VydmVkLg0KICogIA0KLSogIAlSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCi0qICAJbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQotKiAgCWFy
ZSBtZXQ6DQorKiAgIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dA0KKyogICBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCisqICAgYXJlIG1ldDoNCiAq
ICANCiAqICAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodA0KICogICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCkBAIC0yMywxOCArMjMsMTggQEAN
CiAqICAgICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQNCiAqICAgICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uDQogKiAgDQotKiAgCVRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMN
Ci0qICAJIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QNCi0qICAJTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SDQotKiAgCUEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUDQotKiAg
CU9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLA0KLSogIAlTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UDQotKiAgCUxJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLA0KLSogIAlEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkNCi0qICAJVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVA0KLSogIAkoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRQ0KLSogIAlVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIDQot
KiAgCURBTUFHRS4NCisqICAgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUw0KKyogICAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVA0KKyogICBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1INCisqICAgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQNCisqICAgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsDQorKiAgIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QN
CisqICAgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsDQorKiAgIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQ0KKyogICBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUDQor
KiAgIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFDQorKiAgIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gNCisqICAgREFNQUdFLg0KICogIA0KICogICAgUGxl
YXNlIHNlZSBmaWxlIHBhdGVudGxpY2Vuc2UudHh0IGZvciBmdXJ0aGVyIGdyYW50cy4NCiAqID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KQEAgLTIzNyw2ICsyMzcsMTQgQEAgY2xhc3MgQ0h0dHBDYWNo
ZUVudHJ5IDogcHVibGljIENCYXNlDQogICAgICAgICAqIEByZXR1cm4gDQogICAgICAgICAqLw0K
ICAgICAgICAgVEludCBFeHRlcm5hbGl6ZSggUkZpbGVXcml0ZVN0cmVhbSYgYVdyaXRlU3RyZWFt
ICk7DQorDQorICAgICAgICAvKioNCisgICAgICAgICogDQorICAgICAgICAqIEBzaW5jZSAzLjEN
CisgICAgICAgICogQHBhcmFtIA0KKyAgICAgICAgKiBAcmV0dXJuIA0KKyAgICAgICAgKi8NCisg
ICAgICAgIHZvaWQgQWNjZXNzZWQoVEludDY0IGFMYXN0QWNjZXNzZWQsIFRVaW50MTYgYVJlZik7
DQogDQogICAgIHB1YmxpYyA6IA0KIA0KSW5kZXg6IFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNo
ZUluYy9IdHRwQ2FjaGVIYW5kbGVyLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvUmVzb3VyY2VM
b2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlSGFuZGxlci5oCShyZXZpc2lvbiAxODIyMSkNCisrKyBX
ZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMvSHR0cENhY2hlSGFuZGxlci5oCSh3b3JraW5n
IGNvcHkpDQpAQCAtNjgsNiArNjgsNyBAQCBjbGFzcyBNSFRUUERhdGFTdXBwbGllcjsNCiBjbGFz
cyBDSWRsZTsNCiBjbGFzcyBDSHR0cENhY2hlRXZpY3Rpb25IYW5kbGVyOw0KIGNsYXNzIFRIdHRw
Q2FjaGVFbnRyeTsNCitjbGFzcyBDSHR0cENhY2hlT2JzZXJ2ZXI7DQogDQogLy8gQ0xBU1MgREVD
TEFSQVRJT04NCiANCkBAIC0yMDMsNiArMjA0LDE1IEBAIGNsYXNzIENIdHRwQ2FjaGVIYW5kbGVy
IDogcHVibGljIENCYXNlDQogICAgICAgICAqLw0KICAgICAgICAgdm9pZCBBZGp1c3RSZXNwb25z
ZVRpbWUoUkhUVFBUcmFuc2FjdGlvbiYgYVRyYW5zKTsNCiANCisgICAgICAgIC8qKg0KKyAgICAg
ICAgKiBTb21lIG90aGVyIGFwcGxpY2F0aW9uIG1vZGlmaWVkIHRoZSBjYWNoZSBhbmQgdGhlIGxv
b2t1cCB0YWJsZSBuZWVkcyB0byBiZSB1cGRhdGVkDQorICAgICAgICAqDQorICAgICAgICAqIEBz
aW5jZSAzLjENCisgICAgICAgICogQHBhcmFtDQorICAgICAgICAqIEByZXR1cm4NCisgICAgICAg
ICovDQorICAgICAgICB2b2lkIFVwZGF0ZUxvb2t1cFRhYmxlKCk7DQorDQogICAgIHByaXZhdGU6
DQogDQogICAgICAgICAvKioNCkBAIC0yMjIsNiArMjMyLDE1IEBAIGNsYXNzIENIdHRwQ2FjaGVI
YW5kbGVyIDogcHVibGljIENCYXNlDQogICAgIHByaXZhdGU6IC8vDQogDQogICAgICAgICAvKioN
CisgICAgICAgICogU29tZSBvdGhlciBhcHBsaWNhdGlvbiBtb2RpZmllZCB0aGUgY2FjaGUgYW5k
IHRoZSBsb29rdXAgdGFibGUgbmVlZHMgdG8gYmUgdXBkYXRlZA0KKyAgICAgICAgKg0KKyAgICAg
ICAgKiBAc2luY2UgMy4xDQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAgICAgKiBAcmV0dXJuDQor
ICAgICAgICAqLw0KKyAgICAgICAgdm9pZCBVcGRhdGVMb29rdXBUYWJsZUwoKTsNCisNCisgICAg
ICAgIC8qKg0KICAgICAgICAgKg0KICAgICAgICAgKiBAc2luY2UgMy4xDQogICAgICAgICAqIEBw
YXJhbQ0KQEAgLTI5MSw2ICszMTAsMTUgQEAgY2xhc3MgQ0h0dHBDYWNoZUhhbmRsZXIgOiBwdWJs
aWMgQ0Jhc2UNCiAgICAgICAgICogQHBhcmFtDQogICAgICAgICAqIEByZXR1cm4NCiAgICAgICAg
ICovDQorICAgICAgICB2b2lkIE9wZW5Mb29rdXBUYWJsZUwoQ0h0dHBDYWNoZUxvb2t1cFRhYmxl
KiBhTG9va3VwVGFibGUpOw0KKw0KKyAgICAgICAgLyoqDQorICAgICAgICAqDQorICAgICAgICAq
IEBzaW5jZSAzLjENCisgICAgICAgICogQHBhcmFtDQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAg
ICAgKiBAcmV0dXJuDQorICAgICAgICAqLw0KICAgICAgICAgdm9pZCBIYW5kbGVDb3JydXB0RW50
cnkoIENIdHRwQ2FjaGVFbnRyeSYgYVN0cmF5RW50cnksIFRCb29sIGFVcGRhdGUgPSBFVHJ1ZSAp
Ow0KIA0KICAgICAgICAgLyoqDQpAQCAtMzQ1LDYgKzM3Myw4IEBAIGNsYXNzIENIdHRwQ2FjaGVI
YW5kbGVyIDogcHVibGljIENCYXNlDQogICAgICAgICBDSWRsZSogICAgICAgICAgICAgICAgICAg
ICAgICAgIGlJZGxlOyAgICAgIC8vIG93bmVkDQogICAgICAgICAvLyBuYW1lIG9mIHRoZSBpbmRl
eCBmaWxlDQogICAgICAgICBIQnVmQyogICAgICAgICAgICAgICAgICAgICAgICAgIGlJbmRleEZp
bGU7IC8vIG93bmVkDQorICAgICAgICAvLyBPYnNlcnZpbmcgY2hhbmdlcyBpbiBjYWNoZQ0KKyAg
ICAgICAgQ0h0dHBDYWNoZU9ic2VydmVyKiBpSHR0cENhY2hlT2JzZXJ2ZXI7IC8vIG93bmVkDQog
ICAgIH07DQogDQogI2VuZGlmICAgICAgLy8gQ0hUVFBDQUNIRUhBTkRMRVJfSA0KSW5kZXg6IFdl
YktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVMb29rdXBUYWJsZS5oDQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09DQotLS0gV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlSW5jL0h0dHBDYWNoZUxvb2t1
cFRhYmxlLmgJKHJldmlzaW9uIDE4MjIxKQ0KKysrIFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNo
ZUluYy9IdHRwQ2FjaGVMb29rdXBUYWJsZS5oCSh3b3JraW5nIGNvcHkpDQpAQCAtOSw5ICs5LDkg
QEANCiAqICAgIENvcHlyaWdodCAoYykgMjAwNiwgTm9raWEgQ29ycG9yYXRpb24NCiAqICAgIEFs
bCByaWdodHMgcmVzZXJ2ZWQuDQogKiAgDQotKiAgCVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KLSogIAltb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMN
Ci0qICAJYXJlIG1ldDoNCisqICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQorKiAgIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0KKyogICBhcmUg
bWV0Og0KICogIA0KICogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQogKiAgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KQEAgLTIzLDE4ICsy
MywxOCBAQA0KICogICAgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZA0KICogICAgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCiAqICANCi0qICAJVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUw0KLSogIAkiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVA0KLSogIAlMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCi0qICAJQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQNCi0qICAJT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsDQotKiAgCVNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QNCi0qICAJTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsDQot
KiAgCURBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQ0KLSogIAlUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUDQotKiAgCShJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFDQotKiAgCVVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0gNCi0qICAJREFNQUdFLg0KKyogICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQorKiAgICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQorKiAg
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUg0KKyogICBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVA0KKyogICBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwNCisqICAg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVA0KKyogICBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwNCisqICAgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZDQorKiAgIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQNCisqICAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUNCisqICAgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSA0KKyogICBEQU1BR0UuDQogKiAgDQog
KiAgICBQbGVhc2Ugc2VlIGZpbGUgcGF0ZW50bGljZW5zZS50eHQgZm9yIGZ1cnRoZXIgZ3JhbnRz
Lg0KICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtNDUsNiArNDUsNyBAQA0KIA0KIC8vICBJ
TkNMVURFUw0KICNpbmNsdWRlIDxlMzJiYXNlLmg+DQorI2luY2x1ZGUgPHMzMmZpbGUuaD4NCiAN
CiAvLyBDT05TVEFOVFMNCiANCkBAIC05NCw3ICs5NSw3IEBAIGNsYXNzIENIdHRwQ2FjaGVMb29r
dXBUYWJsZSA6IHB1YmxpYyBDQmENCiAgICAgICAgICogQHBhcmFtDQogICAgICAgICAqIEByZXR1
cm4NCiAgICAgICAgICovDQotCQlDSHR0cENhY2hlRW50cnkqIEluc2VydEwoIGNvbnN0IFREZXND
OCYgYVVybCApOw0KKyAgICBDSHR0cENhY2hlRW50cnkqIEluc2VydEwoIGNvbnN0IFREZXNDOCYg
YVVybCApOw0KIA0KICAgICAgICAgLyoqDQogICAgICAgICAqDQpAQCAtMTAyLDcgKzEwMyw3IEBA
IGNsYXNzIENIdHRwQ2FjaGVMb29rdXBUYWJsZSA6IHB1YmxpYyBDQmENCiAgICAgICAgICogQHBh
cmFtDQogICAgICAgICAqIEByZXR1cm4NCiAgICAgICAgICovDQotCQlDSHR0cENhY2hlRW50cnkq
IEZpbmQoIGNvbnN0IFREZXNDOCYgYVVybCApOw0KKyAgICBDSHR0cENhY2hlRW50cnkqIEZpbmQo
IGNvbnN0IFREZXNDOCYgYVVybCApOw0KIA0KICAgICAgICAgLyoqDQogICAgICAgICAqDQpAQCAt
MTEwLDcgKzExMSw3IEBAIGNsYXNzIENIdHRwQ2FjaGVMb29rdXBUYWJsZSA6IHB1YmxpYyBDQmEN
CiAgICAgICAgICogQHBhcmFtDQogICAgICAgICAqIEByZXR1cm4NCiAgICAgICAgICovDQotCQlU
SW50IFJlbW92ZSggY29uc3QgVERlc0M4JiBhVXJsICk7DQorICAgIFRJbnQgUmVtb3ZlKCBjb25z
dCBURGVzQzgmIGFVcmwgKTsNCiANCiAgICAgICAgIC8qKg0KICAgICAgICAgKg0KQEAgLTExOCw3
ICsxMTksNyBAQCBjbGFzcyBDSHR0cENhY2hlTG9va3VwVGFibGUgOiBwdWJsaWMgQ0JhDQogICAg
ICAgICAqIEBwYXJhbQ0KICAgICAgICAgKiBAcmV0dXJuDQogICAgICAgICAqLw0KLQkJVEludCBS
ZW1vdmVBbGwoKTsNCisgICAgVEludCBSZW1vdmVBbGwoKTsNCiANCiAgICAgICAgIC8qKg0KICAg
ICAgICAgKg0KQEAgLTE1Miw2ICsxNTMsMTQgQEAgY2xhc3MgQ0h0dHBDYWNoZUxvb2t1cFRhYmxl
IDogcHVibGljIENCYQ0KICAgICAgICAgKi8NCiAgICAgICAgIHZvaWQgRXh0ZXJuYWxpemVMKCBS
RmlsZVdyaXRlU3RyZWFtJiBhV3JpdGVTdHJlYW0gKTsNCiANCisgICAgICAgIC8qKg0KKyAgICAg
ICAgKg0KKyAgICAgICAgKiBAc2luY2UgMy4xDQorICAgICAgICAqIEBwYXJhbQ0KKyAgICAgICAg
KiBAcmV0dXJuDQorICAgICAgICAqLw0KKyAgICB2b2lkIE1lcmdlTCggQ0h0dHBDYWNoZUxvb2t1
cFRhYmxlKiBhSHR0cENhY2hlTG9va3VwVGFibGUsIFJGcyBhUmZzICApOw0KKw0KICAgICBwcml2
YXRlOg0KIA0KICAgICAgICAgLyoqDQpAQCAtMjYxLDcgKzI3MCw3IEBAIGNsYXNzIENIdHRwQ2Fj
aGVMb29rdXBUYWJsZSA6IHB1YmxpYyBDQmENCiAgICAgcHJpdmF0ZTogICAgLy8gRGF0YQ0KIA0K
ICAgICAgICAgLy8gaGFzaCB0YWJsZSBmb3IgY2FjaGUgZW50cmllcw0KLQkJQ0FycmF5UHRyRmxh
dDxDSHR0cENhY2hlRW50cnk+KiBpRW50cmllczsNCisgICAgQ0FycmF5UHRyRmxhdDxDSHR0cENh
Y2hlRW50cnk+KiBpRW50cmllczsNCiAgICAgICAgIC8vIG51bWJlciBvZiBlbnRyaWVzIGluIHRo
ZSBoYXNodGFibGUNCiAgICAgICAgIFRJbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgaUNv
dW50Ow0KICAgICAgICAgLy8NCkluZGV4OiBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVJbmMv
SHR0cENhY2hlT2JzZXJ2ZXIuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9SZXNvdXJjZUxvYWRl
ci9DYWNoZUluYy9IdHRwQ2FjaGVPYnNlcnZlci5oCShyZXZpc2lvbiAwKQ0KKysrIFdlYktpdC9S
ZXNvdXJjZUxvYWRlci9DYWNoZUluYy9IdHRwQ2FjaGVPYnNlcnZlci5oCShyZXZpc2lvbiAwKQ0K
QEAgLTAsMCArMSwxMjEgQEANCisvKg0KKyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorKiAgTmFt
ZSAgICAgICAgOiBIdHRwQ2FjaGVIYW5kbGVyVXBkYXRlci5oDQorKiAgUGFydCBvZiAgICAgOiBX
ZWJLaXQgLyBSZXNvdXJjZUxvYWRlcg0KKyogIEludGVyZmFjZSAgIDoNCisqICBEZXNjcmlwdGlv
biA6IERlZmluaXRpb24gb2YgQ0h0dHBDYWNoZU9ic2VydmVyDQorKiAgVmVyc2lvbiAgICAgOiAl
VmVyc2lvbiUNCisqDQorKiAgICBDb3B5cmlnaHQgKGMpIDIwMDYsIE5va2lhIENvcnBvcmF0aW9u
DQorKiAgICBBbGwgcmlnaHRzIHJlc2VydmVkLg0KKyoNCisqICAgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQorKiAgIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucw0KKyogICBhcmUgbWV0Og0KKyoNCisqICAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0KKyogICAgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4NCisqICAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KKyogICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbg0KKyogICAgICAgIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUNCisq
ICAgICAgICBkaXN0cmlidXRpb24uDQorKiAgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUg
Tm9raWEgQ29ycG9yYXRpb24gbm9yIHRoZSBuYW1lcyBvZiBpdHMNCisqICAgICAgICBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQN
CisqICAgICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uDQorKg0KKyogICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQorKiAgICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQorKiAg
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUg0KKyogICBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVA0KKyogICBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwNCisqICAg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVA0KKyogICBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwNCisqICAgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZDQorKiAgIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQNCisqICAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUNCisqICAgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSA0KKyogICBEQU1BR0UuDQorKg0KKyog
ICAgUGxlYXNlIHNlZSBmaWxlIHBhdGVudGxpY2Vuc2UudHh0IGZvciBmdXJ0aGVyIGdyYW50cy4N
CisqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyovDQorDQorI2lmbmRlZiBDSFRUUENBQ0hFT0JT
RVJWRVJfSA0KKyNkZWZpbmUgQ0hUVFBDQUNIRU9CU0VSVkVSX0gNCisNCisvLyAgSU5DTFVERVMN
CisjaW5jbHVkZSA8ZTMyYmFzZS5oPg0KKyNpbmNsdWRlIDxmMzJmaWxlLmg+DQorDQorLy8gQ09O
U1RBTlRTDQorDQorLy8gTUFDUk9TDQorDQorLy8gREFUQSBUWVBFUw0KKw0KKy8vIEZVTkNUSU9O
IFBST1RPVFlQRVMNCisNCisvLyBGT1JXQVJEIERFQ0xBUkFUSU9OUw0KK2NsYXNzIENIdHRwQ2Fj
aGVIYW5kbGVyOw0KKw0KKy8vIENMQVNTIERFQ0xBUkFUSU9ODQorDQorLyoqDQorKg0KKyogIEBs
aWINCisqICBAc2luY2UgMy4xDQorKi8NCitOT05TSEFSQUJMRV9DTEFTUyhDSHR0cENhY2hlT2Jz
ZXJ2ZXIpIDogcHVibGljIENBY3RpdmUNCisgICAgew0KKyAgICBwdWJsaWM6ICAvLyBDb25zdHJ1
Y3RvcnMgYW5kIGRlc3RydWN0b3INCisNCisgICAgICAgIC8qKg0KKyAgICAgICAgKiBUd28tcGhh
c2VkIGNvbnN0cnVjdG9yLg0KKyAgICAgICAgKiBAc2luY2UgMy4xDQorICAgICAgICAqIEBwYXJh
bQ0KKyAgICAgICAgKiBAcGFyYW0NCisgICAgICAgICogQHJldHVybiBDYWNoZUhhbmRsZXIgb2Jq
ZWN0Lg0KKyAgICAgICAgKi8NCisgICAgICAgIHN0YXRpYyBDSHR0cENhY2hlT2JzZXJ2ZXIqIE5l
d0woIGNvbnN0IEhCdWZDKiBhRGlyZWN0b3J5LCBjb25zdCBIQnVmQyogYUluZGV4RmlsZSwNCisg
ICAgICAgICAgICBDSHR0cENhY2hlSGFuZGxlciogYUh0dHBDYWNoZUhhbmRsZXIpOw0KKw0KKyAg
ICAgICAgLyoqDQorICAgICAgICAqIERlc3RydWN0b3IuDQorICAgICAgICAqLw0KKyAgICAgICAg
dmlydHVhbCB+Q0h0dHBDYWNoZU9ic2VydmVyKCk7DQorDQorICAgIHB1YmxpYzogLy8gbmV3IGZ1
bmN0aW9ucw0KKyAgICAgICAgdm9pZCBTdGFydE9ic2VydmVyTCgpOw0KKw0KKyAgICBwdWJsaWM6
IC8vIGZyb20gYmFzZSBjbGFzcyBDQWN0aXZlDQorICAgICAgICB2b2lkIFJ1bkwoKTsNCisgICAg
ICAgIFRJbnQgUnVuRXJyb3IoVEludCBhRXJyb3IpOw0KKyAgICAgICAgdm9pZCBEb0NhbmNlbCgp
Ow0KKw0KKyAgICBwcml2YXRlOg0KKw0KKyAgICAgICAgLyoqDQorICAgICAgICAqIENvbnN0cnVj
dC4NCisgICAgICAgICogQHNpbmNlIDMuMQ0KKyAgICAgICAgKiBAcGFyYW0NCisgICAgICAgICog
QHBhcmFtDQorICAgICAgICAqIEByZXR1cm4gQ2FjaGVPYnNlcnZlciBvYmplY3QuDQorICAgICAg
ICAqLw0KKyAgICAgICAgQ0h0dHBDYWNoZU9ic2VydmVyKENIdHRwQ2FjaGVIYW5kbGVyKiBhSHR0
cENhY2hlSGFuZGxlcik7DQorDQorICAgICAgICAvKioNCisgICAgICAgICogQnkgZGVmYXVsdCBT
eW1iaWFuIDJuZCBwaGFzZSBjb25zdHJ1Y3RvciBpcyBwcml2YXRlLg0KKyAgICAgICAgKi8NCisg
ICAgICAgIHZvaWQgQ29uc3RydWN0TChjb25zdCBIQnVmQyogYURpcmVjdG9yeSwgY29uc3QgSEJ1
ZkMqIGFJbmRleEZpbGUpOw0KKw0KKyAgICBwcml2YXRlOiAgICAvLyBEYXRhDQorDQorICAgICAg
ICAvLyBuYW1lIGFuZCBwYXRoIG9mIGluZGV4IGZpbGUNCisgICAgICAgIEhCdWZDKiBpRmlsZU5h
bWU7IC8vIG93bmVkDQorICAgICAgICBSRnMgaUZzU2Vzc2lvbjsgLy8gbm90IG93bmVkDQorICAg
ICAgICBDSHR0cENhY2hlSGFuZGxlciogaUh0dHBDYWNoZUhhbmRsZXI7DQorICAgIH07DQorDQor
I2VuZGlmICAgICAgLy8gQ0hUVFBDQUNIRU9CU0VSVkVSX0gNCisNCisvLyBFbmQgb2YgRmlsZQ0K
SW5kZXg6IFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVFbnRyeS5jcHAN
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NCi0tLSBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hl
RW50cnkuY3BwCShyZXZpc2lvbiAxODIyMSkNCisrKyBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2Fj
aGVTcmMvSHR0cENhY2hlRW50cnkuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtOSw5ICs5LDkgQEAN
CiAqICAgIENvcHlyaWdodCAoYykgMjAwNiwgTm9raWEgQ29ycG9yYXRpb24NCiAqICAgIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuDQogKiAgDQotKiAgCVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KLSogIAltb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCi0q
ICAJYXJlIG1ldDoNCisqICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQorKiAgIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0KKyogICBhcmUgbWV0
Og0KICogIA0KICogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQogKiAgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KQEAgLTIzLDE4ICsyMywx
OCBAQA0KICogICAgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZA0KICogICAgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCiAqICANCi0qICAJVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUw0KLSogIAkiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVA0KLSogIAlMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCi0qICAJQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQN
Ci0qICAJT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsDQotKiAgCVNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QNCi0qICAJTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsDQotKiAg
CURBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQ0KLSogIAlUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUDQotKiAgCShJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFDQotKiAgCVVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0gNCi0qICAJREFNQUdFLg0KKyogICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQorKiAgICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQorKiAgIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUg0KKyogICBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVA0KKyogICBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwNCisqICAgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVA0KKyogICBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwNCisqICAgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZDQorKiAgIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQNCisqICAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUNCisqICAgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSA0KKyogICBEQU1BR0UuDQogKiAgDQogKiAg
ICBQbGVhc2Ugc2VlIGZpbGUgcGF0ZW50bGljZW5zZS50eHQgZm9yIGZ1cnRoZXIgZ3JhbnRzLg0K
ICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQpAQCAtMTI4LDEwICsxMjgsMTAgQEAgQ0h0dHBDYWNo
ZUVudHJ5KiBDSHR0cENhY2hlRW50cnk6Ok5ld0xDKA0KIC8vIERlc3RydWN0b3INCiBDSHR0cENh
Y2hlRW50cnk6On5DSHR0cENhY2hlRW50cnkoKQ0KICAgICB7DQotCWlmKCBpVmljdGltICkNCi0J
CXsNCi0JCWlFdmljdGlvbkhhbmRsZXItPlJlbW92ZSggKnRoaXMgKTsNCi0JCX0NCisgIGlmKCBp
VmljdGltICkNCisgICAgew0KKyAgICBpRXZpY3Rpb25IYW5kbGVyLT5SZW1vdmUoICp0aGlzICk7
DQorICAgIH0NCiAgICAgZGVsZXRlIGlVcmw7DQogICAgIGRlbGV0ZSBpRmlsZU5hbWU7DQogICAg
IH0NCkBAIC0yMDcsMTEgKzIwNywxMSBAQCB2b2lkIENIdHRwQ2FjaGVFbnRyeTo6U2V0U2l6ZSgN
CiAgICAgICAgIC8vIGJvZHkgcmVtb3ZhbA0KICAgICAgICAgLy8gcmVtb3ZlIGl0c2VsZiBmcm9t
IHRoZSBldmljdGlvbiB0YWJsZS4NCiAgICAgICAgIC8vIHRoaXMgaXMgbm8gbG9uZ2VyIGEgdmlj
dGltDQotCSAgICBpZiggaVZpY3RpbSApDQotCQkgICAgew0KLQkJICAgIGlFdmljdGlvbkhhbmRs
ZXItPlJlbW92ZSggKnRoaXMgKTsNCisgICAgICBpZiggaVZpY3RpbSApDQorICAgICAgICB7DQor
ICAgICAgICBpRXZpY3Rpb25IYW5kbGVyLT5SZW1vdmUoICp0aGlzICk7DQogICAgICAgICAgICAg
aVZpY3RpbSA9IEVGYWxzZTsNCi0JCSAgICB9DQorICAgICAgICB9DQogICAgICAgICB9DQogICAg
IGlTaXplID0gYVNpemU7DQogICAgIH0NCkBAIC0yNDIsNiArMjQyLDcgQEAgVEludCBDSHR0cENh
Y2hlRW50cnk6OkludGVybmFsaXplKA0KICAgICAvLyB1cmwgbGVuZ3RoDQogICAgIGxlbiA9IGFS
ZWFkU3RyZWFtLlJlYWRJbnQzMkwoKTsNCiAgICAgZGVsZXRlIGlVcmw7DQorICAgIGlVcmw9TlVM
TDsNCiAgICAgaVVybCA9IEhCdWZDODo6TmV3TCggbGVuICk7DQogICAgIFRQdHI4IHB0cjgoIGlV
cmwtPkRlcygpICk7DQogICAgIC8vIHVybA0KQEAgLTMwMSw2ICszMDIsMjggQEAgVEludCBDSHR0
cENhY2hlRW50cnk6OkV4dGVybmFsaXplKA0KICAgICAvLyBwcm90ZWN0ZWQNCiAgICAgYVdyaXRl
U3RyZWFtLldyaXRlSW50MzJMKCBpUHJvdGVjdGVkICk7ICk7DQogICAgIHJldHVybiBlcnI7DQor
ICAgIH0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVFbnRyeTo6
QWNjZXNzZWQNCisvLw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8NCit2b2lkIENIdHRw
Q2FjaGVFbnRyeTo6QWNjZXNzZWQoVEludDY0IGFMYXN0QWNjZXNzZWQsIFRVaW50MTYgYVJlZikN
CisgICAgew0KKyAgICBpTGFzdEFjY2Vzc2VkID0gYUxhc3RBY2Nlc3NlZDsNCisgICAgaVJlZiA9
IGFSZWY7DQorICAgIGlmKCBpVmljdGltICkNCisgICAgICAgIHsNCisgICAgICAgIGlFdmljdGlv
bkhhbmRsZXItPkFjY2Vzc2VkKCAqdGhpcyApOw0KKyAgICAgICAgfQ0KKyNpZmRlZiBfX0NBQ0hF
TE9HX18NCisgICAgX0xJVCggS0FjY2Vzc0Zvcm1hdCwgImVudHJ5IGFjY2Vzc2VkOiAlZCIgKTsN
CisgICAgVEJ1ZjwxMDA+IGJ1ZjsNCisgICAgYnVmLkZvcm1hdCggS0FjY2Vzc0Zvcm1hdCwgaVJl
ZiApOw0KKyAgICBIdHRwQ2FjaGVVdGlsOjpXcml0ZVVybFRvTG9nKCAwLCBidWYsIGlVcmwtPkRl
cygpICk7DQorI2VuZGlmIC8vIF9fQ0FDSEVMT0dfXw0KKw0KICAgICB9DQogDQogLy8gIEVuZCBv
ZiBGaWxlDQpJbmRleDogV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZUhh
bmRsZXIuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlU3Jj
L0h0dHBDYWNoZUhhbmRsZXIuY3BwCShyZXZpc2lvbiAxODIyMSkNCisrKyBXZWJLaXQvUmVzb3Vy
Y2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlSGFuZGxlci5jcHAJKHdvcmtpbmcgY29weSkNCkBA
IC00OCw2ICs0OCw3IEBADQogI2luY2x1ZGUgIkh0dHBDYWNoZVN0cmVhbUhhbmRsZXIuaCINCiAj
aW5jbHVkZSAiSHR0cENhY2hlVXRpbC5oIg0KICNpbmNsdWRlICJIdHRwQ2FjaGVFdmljdGlvbkhh
bmRsZXIuaCINCisjaW5jbHVkZSAiSHR0cENhY2hlT2JzZXJ2ZXIuaCINCiAjaW5jbHVkZSA8aHR0
cFxSSFRUUFRyYW5zYWN0aW9uLmg+DQogI2luY2x1ZGUgPGh0dHBccmh0dHBzZXNzaW9uLmg+DQog
I2luY2x1ZGUgPGh0dHBccmh0dHBoZWFkZXJzLmg+DQpAQCAtMTE1LDYgKzExNiw5IEBAIHZvaWQg
Q0h0dHBDYWNoZUhhbmRsZXI6OkNvbnN0cnVjdEwoDQogICAgIE9wZW5Mb29rdXBUYWJsZUwoKTsN
CiAgICAgLy8NCiAgICAgaUlkbGUgPSBDSWRsZTo6TmV3TCggQ0FjdGl2ZTo6RVByaW9yaXR5SWRs
ZSApOw0KKyAgICAvLw0KKyAgICBpSHR0cENhY2hlT2JzZXJ2ZXIgPSBDSHR0cENhY2hlT2JzZXJ2
ZXI6Ok5ld0woaURpcmVjdG9yeSwgaUluZGV4RmlsZSwgdGhpcyk7DQorICAgIGlIdHRwQ2FjaGVP
YnNlcnZlci0+U3RhcnRPYnNlcnZlckwoKTsNCiAgICAgfQ0KIA0KIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tDQpAQCAtMTM5LDggKzE0MywxMyBAQCBDSHR0cENhY2hlSGFuZGxlciogQ0h0dHBDYWNo
ZUhhbmRsZXI6Ok5lDQogLy8gRGVzdHJ1Y3Rvcg0KIENIdHRwQ2FjaGVIYW5kbGVyOjp+Q0h0dHBD
YWNoZUhhbmRsZXIoKQ0KICAgICB7DQotICAgIC8vIHNhdmUgZW50cnkgdGFibGUNCi0gICAgVFJB
UF9JR05PUkUoIFNhdmVMb29rdXBUYWJsZUwoKSApOw0KKyAgICBpZiAoaUlkbGUtPklzQWN0aXZl
KCkpDQorICAgICAgICB7DQorICAgICAgICAvLyBzYXZlIGVudHJ5IHRhYmxlLCBidXQgb25seSBp
ZiBpdCB3YXMgbW9kaWZpZWQNCisgICAgICAgIFRSQVBfSUdOT1JFKCBTYXZlTG9va3VwVGFibGVM
KCkgKTsNCisgICAgICAgIH0NCisgICAgLy8NCisgICAgZGVsZXRlIGlIdHRwQ2FjaGVPYnNlcnZl
cjsNCiAgICAgLy8NCiAgICAgaWYgKGlFdmljdGlvbkhhbmRsZXIpDQogICAgICAgICB7DQpAQCAt
MTA2NCw2ICsxMDczLDE2IEBAIFRCb29sIENIdHRwQ2FjaGVIYW5kbGVyOjpIYW5kbGVSZXNwb25z
ZU4NCiAvLw0KIHZvaWQgQ0h0dHBDYWNoZUhhbmRsZXI6Ok9wZW5Mb29rdXBUYWJsZUwoKQ0KICAg
ICB7DQorICAgIE9wZW5Mb29rdXBUYWJsZUwoaUxvb2t1cFRhYmxlKTsNCisgICAgfQ0KKw0KKy8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBDYWNoZUhhbmRsZXI6Ok9wZW5Mb29rdXBU
YWJsZUwNCisvLw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8NCit2b2lkIENIdHRwQ2Fj
aGVIYW5kbGVyOjpPcGVuTG9va3VwVGFibGVMKENIdHRwQ2FjaGVMb29rdXBUYWJsZSogYUxvb2t1
cFRhYmxlKQ0KKyAgICB7DQogICAgIC8vIHJlYWQgZW50cmllcyBmcm9tIGluZGV4LmRhdA0KICAg
ICBSRmlsZVJlYWRTdHJlYW0gcmVhZFN0cmVhbTsNCiAgICAgUkZzIGZzOw0KQEAgLTEwODMsMTEg
KzExMDIsMjYgQEAgdm9pZCBDSHR0cENhY2hlSGFuZGxlcjo6T3Blbkxvb2t1cFRhYmxlTA0KICAg
ICBpZiggZXJyID09IEtFcnJOb25lICkNCiAgICAgICAgIHsNCiAgICAgICAgIGZzLlNldFNlc3Np
b25QYXRoKCBpRGlyZWN0b3J5LT5EZXMoKSApOw0KLQ0KLSAgICAgICAgaWYoIHJlYWRTdHJlYW0u
T3BlbiggZnMsIGlJbmRleEZpbGUtPkRlcygpLCBFRmlsZVJlYWQgKSA9PSBLRXJyTm9uZSApDQor
ICAgICAgICBUSW50IHJldCA9IEtFcnJOb25lOw0KKyAgICAgICAgVEludCB0cnlDb3VudCA9IDA7
DQorICAgICAgICBmb3IgKHRyeUNvdW50ID0gMDsgdHJ5Q291bnQgPCA1OyB0cnlDb3VudCsrKSAN
CisgICAgICAgICAgICB7DQorICAgICAgICAgICAgcmV0ID0gcmVhZFN0cmVhbS5PcGVuKCBmcywg
aUluZGV4RmlsZS0+RGVzKCksIEVGaWxlUmVhZCB8IEVGaWxlU2hhcmVBbnkgKTsNCisgICAgICAg
ICAgICBpZiAocmV0ID09IEtFcnJJblVzZSkNCisgICAgICAgICAgICAgICAgew0KKyAgICAgICAg
ICAgICAgICAvLyBXaGVuIHRoZSBjYWNoZSBpcyBmdWxsLCBpdCB0YWtlcyA2NSAtIDg1IG1pbGlz
ZWNvbmRzIHRvIHdyaXRlIHRoZSBpbmRleC4NCisgICAgICAgICAgICAgICAgLy8gU28gd2FpdCA1
MCBtaWxpc2Vjb25kcyBhbmQgdHJ5IGFnYWluDQorICAgICAgICAgICAgICAgIFVzZXI6OkFmdGVy
KDUwMDAwKTsNCisgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGVsc2UNCisgICAgICAg
ICAgICAgICAgew0KKyAgICAgICAgICAgICAgICBicmVhazsNCisgICAgICAgICAgICAgICAgfQ0K
KyAgICAgICAgICAgIH0NCisgICAgICAgIGlmKCByZXQgPT0gS0Vyck5vbmUgKQ0KICAgICAgICAg
ICAgIHsNCiAgICAgICAgICAgICBDbGVhbnVwQ2xvc2VQdXNoTCggcmVhZFN0cmVhbSApOw0KLSAg
ICAgICAgICAgIGlMb29rdXBUYWJsZS0+SW50ZXJuYWxpemVMKCByZWFkU3RyZWFtLCBpRGlyZWN0
b3J5LT5EZXMoKSApOw0KKyAgICAgICAgICAgIGFMb29rdXBUYWJsZS0+SW50ZXJuYWxpemVMKCBy
ZWFkU3RyZWFtLCBpRGlyZWN0b3J5LT5EZXMoKSApOw0KICAgICAgICAgICAgIENsZWFudXBTdGFj
azo6UG9wQW5kRGVzdHJveSgpOyAvLyByZWFkU3RyZWFtDQogICAgICAgICAgICAgfQ0KICAgICAg
ICAgfQ0KQEAgLTExMDcsMTAgKzExNDEsMjYgQEAgdm9pZCBDSHR0cENhY2hlSGFuZGxlcjo6U2F2
ZUxvb2t1cFRhYmxlTA0KICAgICBSRnMgZnM7DQogICAgIFVzZXI6OkxlYXZlSWZFcnJvciggZnMu
Q29ubmVjdCgpICk7DQogICAgIENsZWFudXBDbG9zZVB1c2hMKCBmcyApOw0KLQ0KICAgICBmcy5T
ZXRTZXNzaW9uUGF0aCggaURpcmVjdG9yeS0+RGVzKCkgKTsNCi0NCi0gICAgaWYoIHdyaXRlU3Ry
ZWFtLlJlcGxhY2UoIGZzLCBpSW5kZXhGaWxlLT5EZXMoKSwgRUZpbGVXcml0ZSApID09IEtFcnJO
b25lICkNCisgICAgLy8gRG9uJ3QgZ2V0IG5vdGlmaWVkIGFib3V0IG93biBjaGFuZ2VzDQorICAg
IGlIdHRwQ2FjaGVPYnNlcnZlci0+Q2FuY2VsKCk7DQorICAgIFRJbnQgcmV0ID0gS0Vyck5vbmU7
DQorICAgIFRJbnQgdHJ5Q291bnQgPSAwOw0KKyAgICBmb3IgKHRyeUNvdW50ID0gMDsgdHJ5Q291
bnQgPCA1OyB0cnlDb3VudCsrKSANCisgICAgICAgIHsNCisgICAgICAgIHJldCA9IHdyaXRlU3Ry
ZWFtLlJlcGxhY2UoIGZzLCBpSW5kZXhGaWxlLT5EZXMoKSwgRUZpbGVXcml0ZSApOw0KKyAgICAg
ICAgaWYgKHJldCA9PSBLRXJySW5Vc2UpDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgIC8v
IFdoZW4gdGhlIGNhY2hlIGlzIGZ1bGwsIGl0IHRha2VzIDY1IC0gODUgbWlsaXNlY29uZHMgdG8g
d3JpdGUgdGhlIGluZGV4Lg0KKyAgICAgICAgICAgIC8vIFNvIHdhaXQgNTAgbWlsaXNlY29uZHMg
YW5kIHRyeSBhZ2Fpbg0KKyAgICAgICAgICAgIFVzZXI6OkFmdGVyKDUwMDAwKTsNCisgICAgICAg
ICAgICB9DQorICAgICAgICBlbHNlDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgIGJyZWFr
Ow0KKyAgICAgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgaWYoIHJldCA9PSBLRXJyTm9uZSAp
DQogICAgICAgICB7DQogICAgICAgICBDbGVhbnVwQ2xvc2VQdXNoTCggd3JpdGVTdHJlYW0gKTsN
CiAgICAgICAgIGlMb29rdXBUYWJsZS0+RXh0ZXJuYWxpemVMKCB3cml0ZVN0cmVhbSApOw0KQEAg
LTExMTgsNiArMTE2OCw3IEBAIHZvaWQgQ0h0dHBDYWNoZUhhbmRsZXI6OlNhdmVMb29rdXBUYWJs
ZUwNCiAgICAgICAgIENsZWFudXBTdGFjazo6UG9wQW5kRGVzdHJveSgpOyAvLyB3cml0ZVN0cmVh
bQ0KICAgICAgICAgfQ0KICAgICBDbGVhbnVwU3RhY2s6OlBvcEFuZERlc3Ryb3koKTsgLy8gZnMN
CisgICAgaUh0dHBDYWNoZU9ic2VydmVyLT5TdGFydE9ic2VydmVyTCgpOw0KICAgICB9DQogDQog
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkBAIC0xMjQ2LDYgKzEyOTcsMzggQEAgVEludCBDSHR0
cENhY2hlSGFuZGxlcjo6RG9CYWNrZ3JvdW5kU2F2ZQ0KICAgICB7DQogICAgIFRSQVBfSUdOT1JF
KCAoKENIdHRwQ2FjaGVIYW5kbGVyKilhVGhpcyktPlNhdmVMb29rdXBUYWJsZUwoKSApOw0KICAg
ICByZXR1cm4gS0Vyck5vbmU7DQorICAgIH0NCisNCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQ0KKy8vIENIdHRwQ2FjaGVIYW5kbGVyOjpVcGRhdGVMb29rdXBUYWJsZQ0KKy8vDQorLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK3ZvaWQgQ0h0dHBDYWNoZUhhbmRsZXI6OlVwZGF0ZUxv
b2t1cFRhYmxlKCkNCisgICAgew0KKyAgICBUUkFQX0lHTk9SRShVcGRhdGVMb29rdXBUYWJsZUwo
KSk7DQorICAgIGlIdHRwQ2FjaGVPYnNlcnZlci0+U3RhcnRPYnNlcnZlckwoKTsNCisgICAgfQ0K
Kw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBDYWNoZUhhbmRsZXI6OlVwZGF0
ZUxvb2t1cFRhYmxlTA0KKy8vDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK3ZvaWQg
Q0h0dHBDYWNoZUhhbmRsZXI6OlVwZGF0ZUxvb2t1cFRhYmxlTCgpDQorICAgIHsNCisgICAgQ0h0
dHBDYWNoZUV2aWN0aW9uSGFuZGxlciogZXZpY3Rpb25IYW5kbGVyID0gQ0h0dHBDYWNoZUV2aWN0
aW9uSGFuZGxlcjo6TmV3TCgpOw0KKyAgICBDbGVhbnVwU3RhY2s6OlB1c2hMKGV2aWN0aW9uSGFu
ZGxlcik7DQorICAgIENIdHRwQ2FjaGVMb29rdXBUYWJsZSogbG9va3VwVGFibGUgPSBDSHR0cENh
Y2hlTG9va3VwVGFibGU6Ok5ld0woICpldmljdGlvbkhhbmRsZXIsICppU3RyZWFtSGFuZGxlciAp
Ow0KKyAgICBDbGVhbnVwU3RhY2s6OlB1c2hMKGxvb2t1cFRhYmxlKTsNCisgICAgT3Blbkxvb2t1
cFRhYmxlTChsb29rdXBUYWJsZSk7DQorICAgIFJGcyByZnM7DQorICAgIFVzZXI6OkxlYXZlSWZF
cnJvcihyZnMuQ29ubmVjdCgpKTsNCisgICAgQ2xlYW51cENsb3NlUHVzaEwocmZzKTsNCisgICAg
cmZzLlNldFNlc3Npb25QYXRoKCBpRGlyZWN0b3J5LT5EZXMoKSApOw0KKyAgICBpTG9va3VwVGFi
bGUtPk1lcmdlTChsb29rdXBUYWJsZSwgcmZzKTsNCisgICAgQ2xlYW51cFN0YWNrOjpQb3BBbmRE
ZXN0cm95KDMpOyAvLyByZnMsIGxvb2t1cFRhYmxlLCBldmljdGlvbkhhbmRsZXINCiAgICAgfQ0K
IA0KIC8vICBFbmQgb2YgRmlsZQ0KSW5kZXg6IFdlYktpdC9SZXNvdXJjZUxvYWRlci9DYWNoZVNy
Yy9IdHRwQ2FjaGVMb29rdXBUYWJsZS5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvUmVzb3Vy
Y2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlTG9va3VwVGFibGUuY3BwCShyZXZpc2lvbiAxODIy
MSkNCisrKyBXZWJLaXQvUmVzb3VyY2VMb2FkZXIvQ2FjaGVTcmMvSHR0cENhY2hlTG9va3VwVGFi
bGUuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNDYsNyArNDYsNiBAQA0KICNpbmNsdWRlICJIdHRw
Q2FjaGVVdGlsLmgiDQogI2luY2x1ZGUgIkh0dHBDYWNoZUV2aWN0aW9uSGFuZGxlci5oIg0KICNp
bmNsdWRlICJIdHRwQ2FjaGVTdHJlYW1IYW5kbGVyLmgiDQotI2luY2x1ZGUgPHMzMmZpbGUuaD4N
CiANCiAvLyBFWFRFUk5BTCBEQVRBIFNUUlVDVFVSRVMNCiANCkBAIC02NzIsNSArNjcxLDcyIEBA
IFRCb29sIENIdHRwQ2FjaGVMb29rdXBUYWJsZTo6Qm91bmRhcnlDaGUNCiAgICAgVEludCBhUG9z
ICkNCiAgICAgew0KICAgICByZXR1cm4gKCBhUG9zID49IDAgJiYgYVBvcyA8IGlFbnRyaWVzLT5D
b3VudCgpICk7DQorICAgIH0NCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRw
Q2FjaGVMb29rdXBUYWJsZTo6TWVyZ2VMDQorLy8NCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K
Ky8vDQordm9pZCBDSHR0cENhY2hlTG9va3VwVGFibGU6Ok1lcmdlTCggQ0h0dHBDYWNoZUxvb2t1
cFRhYmxlKiBhSHR0cENhY2hlTG9va3VwVGFibGUsIFJGcyBhUmZzICkNCisgICAgew0KKyAgICBU
SW50IG15Q291bnQgPSBpRW50cmllcy0+Q291bnQoKTsNCisgICAgVEludCBpID0gMDsNCisgICAg
Zm9yIChpID0gbXlDb3VudCAtIDE7IGkgPj0gMDsgaS0tKQ0KKyAgICAgICAgew0KKyAgICAgICAg
aWYgKCBWYWxpZCggaSApICkNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgQ0h0dHBDYWNo
ZUVudHJ5KiBlbnRyeSA9IGlFbnRyaWVzLT5BdChpKTsNCisgICAgICAgICAgICBDSHR0cENhY2hl
RW50cnkqIG5ld0VudHJ5ID0gYUh0dHBDYWNoZUxvb2t1cFRhYmxlLT5GaW5kKGVudHJ5LT5Vcmwo
KSk7DQorICAgICAgICAgICAgaWYgKG5ld0VudHJ5KQ0KKyAgICAgICAgICAgICAgICB7DQorICAg
ICAgICAgICAgICAgIC8vIEVudHJ5IGlzIGluIHRoZSBuZXcgaW5kZXggZmlsZQ0KKyAgICAgICAg
ICAgICAgICBpZiAobmV3RW50cnktPkxhc3RBY2Nlc3NlZCgpID4gZW50cnktPkxhc3RBY2Nlc3Nl
ZCgpKQ0KKyAgICAgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICAgICAgZW50cnkt
PkFjY2Vzc2VkKG5ld0VudHJ5LT5MYXN0QWNjZXNzZWQoKSwgbmV3RW50cnktPlJlZigpKTsNCisg
ICAgICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgVEludCBwb3MgPSBhSHR0cENh
Y2hlTG9va3VwVGFibGUtPlByb2JlKG5ld0VudHJ5LT5VcmwoKSwgRUZhbHNlKTsNCisgICAgICAg
ICAgICAgICAgaWYgKGFIdHRwQ2FjaGVMb29rdXBUYWJsZS0+VmFsaWQocG9zKSkNCisgICAgICAg
ICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgICAgIGFIdHRwQ2FjaGVMb29rdXBUYWJs
ZS0+U2V0RGVsZXRlZChwb3MpOw0KKyAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG5ld0VudHJ5
Ow0KKyAgICAgICAgICAgICAgICAgICAgYUh0dHBDYWNoZUxvb2t1cFRhYmxlLT5pQ291bnQtLTsN
CisgICAgICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAg
IGVsc2UgLy8gKG5ld0VudHJ5KQ0KKyAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAg
IC8vIEVudHJ5IGlzIG5vdCBpbiB0aGUgbmV3IGluZGV4IGZpbGUNCisgICAgICAgICAgICAgICAg
VFVpbnQgYXR0Ow0KKyAgICAgICAgICAgICAgICBpZiAoYVJmcy5BdHQoZW50cnktPkZpbGVuYW1l
KCksIGF0dCkgIT0gS0Vyck5vbmUpDQorICAgICAgICAgICAgICAgICAgICB7DQorICAgICAgICAg
ICAgICAgICAgICBUSW50IHRoZVBvcyA9IFByb2JlKGVudHJ5LT5VcmwoKSwgRUZhbHNlKTsNCisg
ICAgICAgICAgICAgICAgICAgIGlmIChWYWxpZCh0aGVQb3MpKQ0KKyAgICAgICAgICAgICAgICAg
ICAgICAgIHsNCisgICAgICAgICAgICAgICAgICAgICAgICBFcmFzZSh0aGVQb3MpOw0KKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAg
ICAgICAgfQ0KKyAgICAgICAgICAgIH0NCisgICAgICAgIH0NCisNCisgICAgVEludCBuZXdDb3Vu
dCA9IGFIdHRwQ2FjaGVMb29rdXBUYWJsZS0+aUVudHJpZXMtPkNvdW50KCk7DQorICAgIGZvciAo
aSA9IG5ld0NvdW50IC0gMTsgaSA+PSAwOyBpLS0pDQorICAgICAgICB7DQorICAgICAgICBpZiAo
IGFIdHRwQ2FjaGVMb29rdXBUYWJsZS0+VmFsaWQoIGkgKSApDQorICAgICAgICAgICAgew0KKyAg
ICAgICAgICAgIENIdHRwQ2FjaGVFbnRyeSogbmV3RW50cnkgPSBhSHR0cENhY2hlTG9va3VwVGFi
bGUtPmlFbnRyaWVzLT5BdChpKTsNCisgICAgICAgICAgICBUSW50IHBvcyA9IGFIdHRwQ2FjaGVM
b29rdXBUYWJsZS0+UHJvYmUobmV3RW50cnktPlVybCgpLCBFRmFsc2UpOw0KKyAgICAgICAgICAg
IFRVaW50IGF0dDsNCisgICAgICAgICAgICBpZiAoYVJmcy5BdHQobmV3RW50cnktPkZpbGVuYW1l
KCksIGF0dCkgPT0gS0Vyck5vbmUpDQorICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAg
ICAgQ0h0dHBDYWNoZUVudHJ5KiBteUVudHJ5ID0gSW5zZXJ0TChuZXdFbnRyeS0+VXJsKCkpOw0K
KyAgICAgICAgICAgICAgICBteUVudHJ5LT5TZXRTdGF0ZSggQ0h0dHBDYWNoZUVudHJ5OjpFQ2Fj
aGVDb21wbGV0ZSApOw0KKyAgICAgICAgICAgICAgICBteUVudHJ5LT5BY2Nlc3NlZChuZXdFbnRy
eS0+TGFzdEFjY2Vzc2VkKCksIG5ld0VudHJ5LT5SZWYoKSk7DQorICAgICAgICAgICAgICAgIH0g
ICAgICAgICAgDQorICAgICAgICAgICAgYUh0dHBDYWNoZUxvb2t1cFRhYmxlLT5TZXREZWxldGVk
KHBvcyk7DQorICAgICAgICAgICAgZGVsZXRlIG5ld0VudHJ5Ow0KKyAgICAgICAgICAgIGFIdHRw
Q2FjaGVMb29rdXBUYWJsZS0+aUNvdW50LS07DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgfQ0K
ICAgICB9DQogLy8gIEVuZCBvZiBGaWxlDQpJbmRleDogV2ViS2l0L1Jlc291cmNlTG9hZGVyL0Nh
Y2hlU3JjL0h0dHBDYWNoZU9ic2VydmVyLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9SZXNv
dXJjZUxvYWRlci9DYWNoZVNyYy9IdHRwQ2FjaGVPYnNlcnZlci5jcHAJKHJldmlzaW9uIDApDQor
KysgV2ViS2l0L1Jlc291cmNlTG9hZGVyL0NhY2hlU3JjL0h0dHBDYWNoZU9ic2VydmVyLmNwcAko
cmV2aXNpb24gMCkNCkBAIC0wLDAgKzEsMTYwIEBADQorLyoNCisqID09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KKyogIE5hbWUgICAgICAgIDogSHR0cENhY2hlT2JzZXJ2ZXIuY3BwDQorKiAgUGFydCBv
ZiAgICAgOiBXZWJLaXQgLyBSZXNvdXJjZUxvYWRlcg0KKyogIEludGVyZmFjZSAgIDoNCisqICBE
ZXNjcmlwdGlvbiA6IEltcGxlbWVudGF0aW9uIG9mIENIdHRwQ2FjaGVPYnNlcnZlcg0KKyogIFZl
cnNpb24gICAgIDogJVZlcnNpb24lDQorKg0KKyogICAgQ29weXJpZ2h0IChjKSAyMDA2LCBOb2tp
YSBDb3Jwb3JhdGlvbg0KKyogICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4NCisqDQorKiAgIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dA0KKyogICBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMNCisqICAgYXJlIG1ldDoNCisqDQorKiAgICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQN
CisqICAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuDQorKiAgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQNCisqICAgICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4NCisq
ICAgICAgICB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlDQorKiAgICAgICAgZGlzdHJpYnV0aW9uLg0KKyogICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgdGhlIE5va2lhIENvcnBvcmF0aW9uIG5vciB0aGUgbmFtZXMgb2YgaXRzDQorKiAg
ICAgICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkDQorKiAgICAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLg0KKyoNCisqICAgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUw0KKyogICAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVA0KKyogICBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCisqICAgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQNCisqICAgT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsDQorKiAgIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QNCisqICAgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsDQorKiAgIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQ0KKyogICBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUDQorKiAgIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFDQorKiAgIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gNCisqICAgREFN
QUdFLg0KKyoNCisqICAgIFBsZWFzZSBzZWUgZmlsZSBwYXRlbnRsaWNlbnNlLnR4dCBmb3IgZnVy
dGhlciBncmFudHMuDQorKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisqLw0KKw0KKy8vIElOQ0xV
REUgRklMRVMNCisjaW5jbHVkZSAiSHR0cENhY2hlT2JzZXJ2ZXIuaCINCisjaW5jbHVkZSAiSHR0
cENhY2hlSGFuZGxlci5oIg0KKw0KKw0KKy8vIEVYVEVSTkFMIERBVEEgU1RSVUNUVVJFUw0KKw0K
Ky8vIEVYVEVSTkFMIEZVTkNUSU9OIFBST1RPVFlQRVMNCisNCisvLyBDT05TVEFOVFMNCisNCisv
LyBNQUNST1MNCisNCisvLyBMT0NBTCBDT05TVEFOVFMgQU5EIE1BQ1JPUw0KKw0KKy8vIE1PRFVM
RSBEQVRBIFNUUlVDVFVSRVMNCisNCisvLyBMT0NBTCBGVU5DVElPTiBQUk9UT1RZUEVTDQorDQor
Ly8gRk9SV0FSRCBERUNMQVJBVElPTlMNCisNCisNCisvLyA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09IE1FTUJFUiBGVU5DVElPTlMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
Kw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBDYWNoZU9ic2VydmVyOjpDSHR0
cENhY2hlT2JzZXJ2ZXINCisvLyBDKysgZGVmYXVsdCBjb25zdHJ1Y3RvciBjYW4gTk9UIGNvbnRh
aW4gYW55IGNvZGUsIHRoYXQNCisvLyBtaWdodCBsZWF2ZS4NCisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQ0KKy8vDQorQ0h0dHBDYWNoZU9ic2VydmVyOjpDSHR0cENhY2hlT2JzZXJ2ZXIoQ0h0dHBD
YWNoZUhhbmRsZXIqIGFIdHRwQ2FjaGVIYW5kbGVyKSA6IENBY3RpdmUoIENBY3RpdmU6OkVQcmlv
cml0eUlkbGUgKSwNCitpSHR0cENhY2hlSGFuZGxlcihhSHR0cENhY2hlSGFuZGxlcikNCisgICAg
ew0KKyAgICBDQWN0aXZlU2NoZWR1bGVyOjpBZGQodGhpcyk7DQorICAgIH0NCisNCisvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVPYnNlcnZlcjo6Q29uc3RydWN0TA0KKy8v
IFN5bWJpYW4gMm5kIHBoYXNlIGNvbnN0cnVjdG9yIGNhbiBsZWF2ZS4NCisvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQ0KKy8vDQordm9pZCBDSHR0cENhY2hlT2JzZXJ2ZXI6OkNvbnN0cnVjdEwoY29u
c3QgSEJ1ZkMqIGFEaXJlY3RvcnksIGNvbnN0IEhCdWZDKiBhSW5kZXhGaWxlKQ0KKyAgICB7DQor
ICAgIFVzZXI6OkxlYXZlSWZFcnJvcihpRnNTZXNzaW9uLkNvbm5lY3QoKSk7DQorICAgIGlGaWxl
TmFtZSA9IEhCdWZDOjpOZXdMKGFEaXJlY3RvcnktPkxlbmd0aCgpICsgYUluZGV4RmlsZS0+TGVu
Z3RoKCkpOw0KKyAgICBpRmlsZU5hbWUtPkRlcygpLkNvcHkoKmFEaXJlY3RvcnkpOw0KKyAgICBp
RmlsZU5hbWUtPkRlcygpLkFwcGVuZCgqYUluZGV4RmlsZSk7DQorICAgIH0NCisNCisvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVPYnNlcnZlcjo6TmV3TA0KKy8vIFR3by1w
aGFzZWQgY29uc3RydWN0b3IuDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK0NIdHRw
Q2FjaGVPYnNlcnZlciogQ0h0dHBDYWNoZU9ic2VydmVyOjpOZXdMKCBjb25zdCBIQnVmQyogYURp
cmVjdG9yeSwgY29uc3QgSEJ1ZkMqIGFJbmRleEZpbGUsDQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0h0dHBDYWNoZUhhbmRsZXIqIGFI
dHRwQ2FjaGVIYW5kbGVyKQ0KKyAgICB7DQorICAgIENIdHRwQ2FjaGVPYnNlcnZlciogc2VsZiA9
IG5ldyggRUxlYXZlICkgQ0h0dHBDYWNoZU9ic2VydmVyKGFIdHRwQ2FjaGVIYW5kbGVyKTsNCisg
ICAgQ2xlYW51cFN0YWNrOjpQdXNoTCggc2VsZiApOw0KKyAgICBzZWxmLT5Db25zdHJ1Y3RMKGFE
aXJlY3RvcnksIGFJbmRleEZpbGUpOw0KKyAgICBDbGVhbnVwU3RhY2s6OlBvcCgpOw0KKyAgICBy
ZXR1cm4gc2VsZjsNCisgICAgfQ0KKw0KKy8vIERlc3RydWN0b3INCitDSHR0cENhY2hlT2JzZXJ2
ZXI6On5DSHR0cENhY2hlT2JzZXJ2ZXIoKQ0KKyAgICB7DQorICAgIENhbmNlbCgpOw0KKyAgICBk
ZWxldGUgaUZpbGVOYW1lOw0KKyAgICBpRnNTZXNzaW9uLkNsb3NlKCk7DQorICAgIH0NCisNCisv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vIENIdHRwQ2FjaGVPYnNlcnZlcjo6UnVuTA0KKy8v
DQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK3ZvaWQgQ0h0dHBDYWNoZU9ic2VydmVy
OjpSdW5MKCkNCisgICAgew0KKyAgICBpSHR0cENhY2hlSGFuZGxlci0+VXBkYXRlTG9va3VwVGFi
bGUoKTsNCisgICAgfQ0KKw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBDYWNo
ZU9ic2VydmVyOjpSdW5FcnJvcg0KKy8vDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0K
K1RJbnQgQ0h0dHBDYWNoZU9ic2VydmVyOjpSdW5FcnJvcihUSW50IC8qYUVycm9yKi8pDQorICAg
IHsNCisgICAgcmV0dXJuIEtFcnJOb25lOw0KKyAgICB9DQorDQorLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0NCisvLyBDSHR0cENhY2hlT2JzZXJ2ZXI6OkRvQ2FuY2VsDQorLy8NCisvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQ0KKy8vDQordm9pZCBDSHR0cENhY2hlT2JzZXJ2ZXI6OkRvQ2FuY2VsKCkN
CisgICAgew0KKyAgICBpRnNTZXNzaW9uLk5vdGlmeUNoYW5nZUNhbmNlbChpU3RhdHVzKTsNCisg
ICAgfQ0KKw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ0h0dHBDYWNoZU9ic2VydmVy
OjpTdGFydE9ic2VydmVyTA0KKy8vDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLw0KK3Zv
aWQgQ0h0dHBDYWNoZU9ic2VydmVyOjpTdGFydE9ic2VydmVyTCgpDQorICAgIHsNCisgICAgaWYg
KCFJc0FjdGl2ZSgpKQ0KKyAgICAgICAgew0KKyAgICAgICAgaUZzU2Vzc2lvbi5Ob3RpZnlDaGFu
Z2UoRU5vdGlmeVdyaXRlLCBpU3RhdHVzLCAqaUZpbGVOYW1lKTsNCisgICAgICAgIFNldEFjdGl2
ZSgpOw0KKyAgICAgICAgfQ0KKyAgICB9DQorDQorDQorLy8gIEVuZCBvZiBGaWxlDQpJbmRleDog
V2ViS2l0L2dyb3VwL0Jyb3dzZXJDYWNoZS5tbXANCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvZ3Jv
dXAvQnJvd3NlckNhY2hlLm1tcAkocmV2aXNpb24gMTgyMjEpDQorKysgV2ViS2l0L2dyb3VwL0Jy
b3dzZXJDYWNoZS5tbXAJKHdvcmtpbmcgY29weSkNCkBAIC02MSw2ICs2MSw3IEBAIFNPVVJDRSAg
ICAgICAgSHR0cENhY2hlTWFuYWdlci5jcHANCiBTT1VSQ0UgICAgICAgIEh0dHBDYWNoZUVudHJ5
LmNwcA0KIFNPVVJDRSAgICAgICAgSHR0cENhY2hlRXZpY3Rpb25IYW5kbGVyLmNwcA0KIFNPVVJD
RSAgICAgICAgSHR0cENhY2hlSGFuZGxlci5jcHANCitTT1VSQ0UgICAgICAgIEh0dHBDYWNoZU9i
c2VydmVyLmNwcA0KIFNPVVJDRSAgICAgICAgSHR0cENhY2hlTG9va3VwVGFibGUuY3BwDQogU09V
UkNFICAgICAgICBIdHRwQ2FjaGVTdHJlYW1IYW5kbGVyLmNwcA0KIFNPVVJDRSAgICAgICAgSHR0
cENhY2hlVXRpbC5jcHANCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>