<?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>13195</bug_id>
          
          <creation_ts>2007-03-26 13:38:13 -0700</creation_ts>
          <short_desc>[s60] rich file upload implimentation</short_desc>
          <delta_ts>2008-04-09 11:39:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>S60 Hardware</rep_platform>
          <op_sys>S60 3rd edition</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Steven Winship">steven.winship</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>17224</commentid>
    <comment_count>0</comment_count>
    <who name="Steven Winship">steven.winship</who>
    <bug_when>2007-03-26 13:38:13 -0700</bug_when>
    <thetext>rich file upload implimentation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>17193</commentid>
    <comment_count>1</comment_count>
      <attachid>13819</attachid>
    <who name="Sriram">sriram.yadavalli</who>
    <bug_when>2007-03-26 14:34:39 -0700</bug_when>
    <thetext>Created attachment 13819
Rich File upload implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16967</commentid>
    <comment_count>2</comment_count>
      <attachid>13819</attachid>
    <who name="alan">zalan</who>
    <bug_when>2007-03-27 15:12:42 -0700</bug_when>
    <thetext>Comment on attachment 13819
Rich File upload implementation

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16970</commentid>
    <comment_count>3</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2007-03-27 15:30:31 -0700</bug_when>
    <thetext>r20538 -&gt;ccb</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76892</commentid>
    <comment_count>4</comment_count>
    <who name="Bradley Morrison">bradley.morrison</who>
    <bug_when>2008-04-09 11:39:29 -0700</bug_when>
    <thetext>Bulk closing of all s60 platform bugs. 

Sorry for the noise!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>13819</attachid>
            <date>2007-03-26 14:34:39 -0700</date>
            <delta_ts>2007-03-27 15:12:42 -0700</delta_ts>
            <desc>Rich File upload implementation</desc>
            <filename>RichFileUpload.patch</filename>
            <type>text/plain</type>
            <size>24624</size>
            <attacher name="Sriram">sriram.yadavalli</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDIwNDk3KQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDE5IEBADQoreWFkYXZhbGwsIHJldmlld2VkIGJ5IDx6YnVqdGFzQGdtYWls
LmNvbT4NCisgREVTQzogUmljaCBGaWxlIFVwbG9hZCBpbXBsZW1lbnRhdGlvbg0KKyBodHRwOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzE5NQ0KKw0KKyAgICAgICAgV0FSTklO
RzogTk8gVEVTVCBDQVNFUyBBRERFRCBPUiBDSEFOR0VEDQorDQorICAgICAgICAqIGJyaWRnZS9X
ZWJDb3JlRm9ybUNvbnRyb2xzLmg6DQorICAgICAgICAqIGtodG1sL2h0bWwvaHRtbF9mb3JtaW1w
bC5jcHA6DQorICAgICAgICAoRE9NOjopOg0KKyAgICAgICAgKiBraHRtbC9odG1sL2h0bWxfZm9y
bWltcGwuaDoNCisgICAgICAgICoga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9mb3JtLmNwcDoNCisg
ICAgICAgIChSZW5kZXJGaWxlQnV0dG9uOjp1cGRhdGVGcm9tRWxlbWVudCk6DQorICAgICAgICAq
IGt3cS9LV1FGaWxlQnV0dG9uLmNwcDoNCisgICAgICAgIChLV1FGaWxlQnV0dG9uOjpzZXRBY2Nl
cHQpOg0KKyAgICAgICAgKiBrd3EvS1dRRmlsZUJ1dHRvbi5oOg0KKw0KIHJhdGhuYXNhLCByZXZp
ZXdlZCBieSB6YWxhbg0KICBERVNDOiBbUzYwXSBFU01TLTZZRE1XUDogVFJVRSAtIEdTTSAtIGJy
b3N3ZXIgY3Jhc2hlcyBvbiBjZXJ0YWluIHdlYiBwYWdlcw0KICBRdWljayBmaXggdG8gdmFsaWRh
dGUgbnVsbCBwb2ludGVycw0KSW5kZXg6IFdlYkNvcmUvYnJpZGdlL1dlYkNvcmVGb3JtQ29udHJv
bHMuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvYnJpZGdlL1dlYkNvcmVGb3JtQ29udHJvbHMu
aAkocmV2aXNpb24gMjA0OTQpDQorKysgV2ViQ29yZS9icmlkZ2UvV2ViQ29yZUZvcm1Db250cm9s
cy5oCSh3b3JraW5nIGNvcHkpDQpAQCAtMTMxLDEwICsxMzEsMTIgQEAgY2xhc3MgTVdlYkNvcmVG
aWxlSW5wdXRXaWRnZXQ6IHB1YmxpYyBNVw0KIA0KICAgICAgICAgdmlydHVhbCB2b2lkIFNldEV2
ZW50SGFuZGxlcihNV2ViQ29yZUZvcm1FdmVudEhhbmRsZXIqIGFJbnB1dEV2ZW50SGFuZGxlcikg
PSAwOw0KIA0KLQkJdmlydHVhbCBUU2l6ZSBTaXplRm9yQ2hhcmFjdGVyV2lkdGgoVEludCBhTnVt
Q2hhcmFjdGVycykgY29uc3Q9IDA7DQorICAgICAgICB2aXJ0dWFsIFRTaXplIFNpemVGb3JDaGFy
YWN0ZXJXaWR0aChUSW50IGFOdW1DaGFyYWN0ZXJzKSBjb25zdD0gMDsNCiANCi0JCXZpcnR1YWwg
dm9pZCBTZXRGb250IChDRm9udCogYUZvbnQpID0gMDsNCi0JfTsNCisgICAgICAgIHZpcnR1YWwg
dm9pZCBTZXRGb250IChDRm9udCogYUZvbnQpID0gMDsNCisgICAgICAgIA0KKyAgICAgICAgdmly
dHVhbCB2b2lkIFNldEFjY2VwdGVkTWltZVR5cGUoIGNvbnN0IFREZXNDJiBhTWltZVR5cGUgKSA9
MDsNCisgICAgfTsNCiANCiAvKioNCiAqICBpbnRlcmZhY2UgLCBpbXBsZW1lbnRlZCBieSBidXR0
b24gc2tpbg0KQEAgLTIyOCw0ICsyMzAsNCBAQCBjbGFzcyBNV2ViQ29yZVNjcm9sbEJhcldpZGdl
dDogcHVibGljIE1XDQogDQogI2VuZGlmICAvLyBfX1dFQkNPUkVGT1JNQ09OVFJPTFNfXw0KIA0K
LS8vIEVuZCBvZiBGaWxlDQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUNCisvLyBFbmQgb2Yg
RmlsZQ0KSW5kZXg6IFdlYkNvcmUva2h0bWwvaHRtbC9odG1sX2Zvcm1pbXBsLmNwcA0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KLS0tIFdlYkNvcmUva2h0bWwvaHRtbC9odG1sX2Zvcm1pbXBsLmNwcAkocmV2aXNpb24g
MjA0OTQpDQorKysgV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfZm9ybWltcGwuY3BwCSh3b3JraW5n
IGNvcHkpDQpAQCAtMTI3Myw2ICsxMjczLDkgQEAgSFRNTElucHV0RWxlbWVudEltcGw6OkhUTUxJ
bnB1dEVsZW1lbnRJbQ0KICNpZiBBUFBMRV9DSEFOR0VTDQogICAgIG1fbWF4UmVzdWx0cyA9IC0x
Ow0KICNlbmRpZg0KKyNpZmRlZiBOT0tJQV9DSEFOR0VTDQorICAgIG1fYWNjZXB0ID0gIiI7DQor
I2VuZGlmDQogDQogICAgIGlmICggbV9mb3JtICkNCiAgICAgICAgIG1fYXV0b2NvbXBsZXRlID0g
Zi0+YXV0b0NvbXBsZXRlKCk7DQpAQCAtMTY4MSw2ICsxNjg0LDExIEBAIHZvaWQgSFRNTElucHV0
RWxlbWVudEltcGw6OnBhcnNlSFRNTEF0dHINCiAgICAgICAgICAgICByZW5kZXJlcigpLT5zZXRO
ZWVkc0xheW91dEFuZE1pbk1heFJlY2FsYygpOyAgICAgICAgDQogI2VuZGlmICAgICAgICAgICAg
DQogICAgICAgICBicmVhazsNCisjaWYgTk9LSUFfQ0hBTkdFUw0KKyAgICBjYXNlIEFUVFJfQUND
RVBUOg0KKyAgICAgICAgbV9hY2NlcHQgPSAhYXR0ci0+aXNOdWxsKCkgPyBhdHRyLT52YWx1ZSgp
IDogIiI7DQorICAgICAgICBicmVhazsNCisjZW5kaWYNCiAgICAgY2FzZSBBVFRSX0FMVDoNCiAg
ICAgICAgIGlmIChtX3JlbmRlciAmJiBtX3R5cGUgPT0gSU1BR0UpDQogICAgICAgICAgICAgc3Rh
dGljX2Nhc3Q8UmVuZGVySW1hZ2UqPihtX3JlbmRlciktPnVwZGF0ZUFsdFRleHQoKTsNCkBAIC0y
MTcyLDYgKzIxODAsMTMgQEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50SW1wbDo6c3RvcmVzVmFsdWVT
ZQ0KICAgICB9DQogICAgIHJldHVybiBmYWxzZTsNCiB9DQorDQorI2lmZGVmIE5PS0lBX0NIQU5H
RVMNCitET01TdHJpbmcgSFRNTElucHV0RWxlbWVudEltcGw6OmFjY2VwdCgpIGNvbnN0DQorew0K
KyAgICByZXR1cm4gbV9hY2NlcHQ7DQorfQ0KKyNlbmRpZg0KIA0KIHZvaWQgSFRNTElucHV0RWxl
bWVudEltcGw6OmJsdXIoKQ0KIHsNCkluZGV4OiBXZWJDb3JlL2todG1sL2h0bWwvaHRtbF9mb3Jt
aW1wbC5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfZm9ybWltcGwu
aAkocmV2aXNpb24gMjA0OTQpDQorKysgV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfZm9ybWltcGwu
aAkod29ya2luZyBjb3B5KQ0KQEAgLTM3OSw2ICszNzksMTAgQEAgcHVibGljOg0KICAgICBsb25n
IG1heFJlc3VsdHMoKSBjb25zdCB7IHJldHVybiBtX21heFJlc3VsdHM7IH0NCiAjZW5kaWYNCiAg
ICAgDQorI2lmZGVmIE5PS0lBX0NIQU5HRVMNCisgICAgRE9NU3RyaW5nIGFjY2VwdCgpIGNvbnN0
Ow0KKyNlbmRpZg0KKw0KIHByb3RlY3RlZDoNCiAgICAgYm9vbCBzdG9yZXNWYWx1ZVNlcGFyYXRl
RnJvbUF0dHJpYnV0ZSgpIGNvbnN0Ow0KIA0KQEAgLTQwMiw2ICs0MDYsMTEgQEAgcHJvdGVjdGVk
Og0KICAgICBib29sIG1fYWN0aXZlU3VibWl0IDogMTsNCiAgICAgYm9vbCBtX2F1dG9jb21wbGV0
ZSA6IDE7DQogICAgIGJvb2wgbV92YWx1ZU1hdGNoZXNSZW5kZXJlciA6IDE7DQorICAgIA0KKyNp
ZmRlZiBOT0tJQV9DSEFOR0VTDQorICAgIERPTVN0cmluZyBtX2FjY2VwdDsNCisjZW5kaWYNCisN
CiB9Ow0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkluZGV4OiBXZWJDb3JlL2todG1sL3JlbmRl
cmluZy9yZW5kZXJfZm9ybS5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL2todG1sL3JlbmRl
cmluZy9yZW5kZXJfZm9ybS5jcHAJKHJldmlzaW9uIDIwNDk0KQ0KKysrIFdlYkNvcmUva2h0bWwv
cmVuZGVyaW5nL3JlbmRlcl9mb3JtLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTEwNzYsNiArMTA3
Niw5IEBAIHZvaWQgUmVuZGVyRmlsZUJ1dHRvbjo6dXBkYXRlRnJvbUVsZW1lbnQNCiAgICAgbV9l
ZGl0LT5zZXRNYXhMZW5ndGgoIG1sICk7DQogICAgIG1fZWRpdC0+c2V0RWRpdGVkKCBmYWxzZSAp
Ow0KICNlbmRpZg0KKyNpZiBOT0tJQV9DSEFOR0VTDQorICAgIHN0YXRpY19jYXN0PEtXUUZpbGVC
dXR0b24gKj4od2lkZ2V0KCkpLT5zZXRBY2NlcHQoZWxlbWVudCgpLT5hY2NlcHQoKS5zdHJpbmco
KSk7DQorI2VuZGlmDQogDQogICAgIFJlbmRlckZvcm1FbGVtZW50Ojp1cGRhdGVGcm9tRWxlbWVu
dCgpOw0KIH0NCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FGaWxlQnV0dG9uLmNwcA0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KLS0tIFdlYkNvcmUva3dxL0tXUUZpbGVCdXR0b24uY3BwCShyZXZpc2lvbiAyMDQ5NCkNCisr
KyBXZWJDb3JlL2t3cS9LV1FGaWxlQnV0dG9uLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTMzLDY3
ICszMyw2NyBAQCBLV1FGaWxlQnV0dG9uOjpLV1FGaWxlQnV0dG9uKEtIVE1MUGFydCAqDQogICAg
IDogX2NsaWNrZWQodGhpcywgU0lHTkFMKGNsaWNrZWQoKSkpDQogICAgICwgX3RleHRDaGFuZ2Vk
KHRoaXMsIFNJR05BTCh0ZXh0Q2hhbmdlZChjb25zdCBRU3RyaW5nICYpKSkNCiB7DQotCV9maWxl
SW5wdXRXaWRnZXQgPSBUV2ViQ29yZUZvcm1Db250cm9sRmFjdG9yeTo6RmFjdG9yeSgpLT5Db25z
dHJ1Y3RGaWxlKCk7DQotCWlmIChfZmlsZUlucHV0V2lkZ2V0KQ0KLQl7DQotCQlfZmlsZUlucHV0
V2lkZ2V0LT5TZXRFdmVudEhhbmRsZXIodGhpcyk7DQotCQlzZXRWaWV3KF9maWxlSW5wdXRXaWRn
ZXQpOw0KLQl9DQorICAgIF9maWxlSW5wdXRXaWRnZXQgPSBUV2ViQ29yZUZvcm1Db250cm9sRmFj
dG9yeTo6RmFjdG9yeSgpLT5Db25zdHJ1Y3RGaWxlKCk7DQorICAgIGlmIChfZmlsZUlucHV0V2lk
Z2V0KQ0KKyAgICB7DQorICAgICAgICBfZmlsZUlucHV0V2lkZ2V0LT5TZXRFdmVudEhhbmRsZXIo
dGhpcyk7DQorICAgICAgICBzZXRWaWV3KF9maWxlSW5wdXRXaWRnZXQpOw0KKyAgICB9DQogfQ0K
IA0KIHZvaWQgS1dRRmlsZUJ1dHRvbjo6c2V0Rm9udChjb25zdCBRRm9udCAmZm9udCkNCiB7DQot
CVFXaWRnZXQ6OnNldEZvbnQoZm9udCk7DQotCWlmIChfZmlsZUlucHV0V2lkZ2V0KQ0KLQl7DQot
CQlRRm9udCBmb250Q3B5ID0gZm9udDsNCi0JCUNGb250KiBzeW1Gb250ID0gY29uc3RfY2FzdDxD
Rm9udCo+KGZvbnRDcHkuRm9udCgpKTsNCi0JCV9maWxlSW5wdXRXaWRnZXQtPlNldEZvbnQoc3lt
Rm9udCApOw0KLQl9DQorICAgIFFXaWRnZXQ6OnNldEZvbnQoZm9udCk7DQorICAgIGlmIChfZmls
ZUlucHV0V2lkZ2V0KQ0KKyAgICB7DQorICAgICAgICBRRm9udCBmb250Q3B5ID0gZm9udDsNCisg
ICAgICAgIENGb250KiBzeW1Gb250ID0gY29uc3RfY2FzdDxDRm9udCo+KGZvbnRDcHkuRm9udCgp
KTsNCisgICAgICAgIF9maWxlSW5wdXRXaWRnZXQtPlNldEZvbnQoc3ltRm9udCApOw0KKyAgICB9
DQogfQ0KIA0KIA0KIEtXUUZpbGVCdXR0b246On5LV1FGaWxlQnV0dG9uKCkNCiB7DQotCWlmIChf
ZmlsZUlucHV0V2lkZ2V0KQ0KLQl7DQotCQlfZmlsZUlucHV0V2lkZ2V0LT5DbG9zZSgpOw0KLQl9
DQorICAgIGlmIChfZmlsZUlucHV0V2lkZ2V0KQ0KKyAgICB7DQorICAgICAgICBfZmlsZUlucHV0
V2lkZ2V0LT5DbG9zZSgpOw0KKyAgICB9DQogfQ0KIA0KIHZvaWQgS1dRRmlsZUJ1dHRvbjo6c2V0
RmlsZW5hbWUoY29uc3QgUVN0cmluZyAmZikNCiB7DQotCWlmIChfZmlsZUlucHV0V2lkZ2V0KQ0K
LQl7DQotCQlfZmlsZUlucHV0V2lkZ2V0LT5TZXRGaWxlTmFtZShmLkRlcygpKTsNCi0JfQ0KKyAg
ICBpZiAoX2ZpbGVJbnB1dFdpZGdldCkNCisgICAgew0KKyAgICAgICAgX2ZpbGVJbnB1dFdpZGdl
dC0+U2V0RmlsZU5hbWUoZi5EZXMoKSk7DQorICAgIH0NCiB9DQogDQogdm9pZCBLV1FGaWxlQnV0
dG9uOjpjbGljayhib29sIHNlbmRNb3VzZUV2ZW50cykNCiB7DQotCWlmIChfZmlsZUlucHV0V2lk
Z2V0KQ0KLQl7DQotCQlfZmlsZUlucHV0V2lkZ2V0LT5BY3RpdmF0ZSgpOw0KLQl9DQorICAgIGlm
IChfZmlsZUlucHV0V2lkZ2V0KQ0KKyAgICB7DQorICAgICAgICBfZmlsZUlucHV0V2lkZ2V0LT5B
Y3RpdmF0ZSgpOw0KKyAgICB9DQogfQ0KIA0KIFFTaXplIEtXUUZpbGVCdXR0b246OnNpemVGb3JD
aGFyYWN0ZXJXaWR0aChpbnQgY2hhcmFjdGVycykgY29uc3QNCiB7DQotCWlmIChfZmlsZUlucHV0
V2lkZ2V0KQ0KLQl7DQotCQlyZXR1cm4gUVNpemUoX2ZpbGVJbnB1dFdpZGdldC0+U2l6ZUZvckNo
YXJhY3RlcldpZHRoKGNoYXJhY3RlcnMpKTsNCi0JfQ0KLQlyZXR1cm4gUVNpemUoMCwwKTsNCisg
ICAgaWYgKF9maWxlSW5wdXRXaWRnZXQpDQorICAgIHsNCisgICAgICAgIHJldHVybiBRU2l6ZShf
ZmlsZUlucHV0V2lkZ2V0LT5TaXplRm9yQ2hhcmFjdGVyV2lkdGgoY2hhcmFjdGVycykpOw0KKyAg
ICB9DQorICAgIHJldHVybiBRU2l6ZSgwLDApOw0KIH0NCiANCiBRUmVjdCBLV1FGaWxlQnV0dG9u
OjpmcmFtZUdlb21ldHJ5KCkgY29uc3QNCiB7DQotCXJldHVybiBRV2lkZ2V0OjpmcmFtZUdlb21l
dHJ5KCk7DQorICAgIHJldHVybiBRV2lkZ2V0OjpmcmFtZUdlb21ldHJ5KCk7DQogfQ0KIA0KIHZv
aWQgS1dRRmlsZUJ1dHRvbjo6c2V0RnJhbWVHZW9tZXRyeShjb25zdCBRUmVjdCAmcmVjdCkNCiB7
DQotCXJldHVybiBRV2lkZ2V0OjpzZXRGcmFtZUdlb21ldHJ5KHJlY3QpOw0KKyAgICByZXR1cm4g
UVdpZGdldDo6c2V0RnJhbWVHZW9tZXRyeShyZWN0KTsNCiB9DQogDQogaW50IEtXUUZpbGVCdXR0
b246OmJhc2VsaW5lUG9zaXRpb24oaW50IGhlaWdodCkgY29uc3QNCkBAIC0xMjIsNyArMTIyLDE0
IEBAIHZvaWQgS1dRRmlsZUJ1dHRvbjo6Y2xpY2tlZCgpDQogDQogdm9pZCBLV1FGaWxlQnV0dG9u
OjpIYW5kbGVFdmVudChURXZlbnQgYUV2ZW50KQ0KIHsNCi0JaWYoYUV2ZW50ID09IEVWYWx1ZUNo
YW5nZWQgJiYgX2ZpbGVJbnB1dFdpZGdldCkNCi0JCWZpbGVuYW1lQ2hhbmdlZChRU3RyaW5nOjpG
cm9tRGVzKF9maWxlSW5wdXRXaWRnZXQtPkZpbGVOYW1lKCkpKTsNCisgICAgaWYoYUV2ZW50ID09
IEVWYWx1ZUNoYW5nZWQgJiYgX2ZpbGVJbnB1dFdpZGdldCkNCisgICAgICAgIGZpbGVuYW1lQ2hh
bmdlZChRU3RyaW5nOjpGcm9tRGVzKF9maWxlSW5wdXRXaWRnZXQtPkZpbGVOYW1lKCkpKTsNCiB9
DQogDQordm9pZCBLV1FGaWxlQnV0dG9uOjpzZXRBY2NlcHQoY29uc3QgUVN0cmluZyAmYSkNCit7
DQorICAgIGlmIChfZmlsZUlucHV0V2lkZ2V0KQ0KKyAgICB7DQorICAgICAgICBfZmlsZUlucHV0
V2lkZ2V0LT5TZXRBY2NlcHRlZE1pbWVUeXBlKGEuRGVzKCkpOw0KKyAgICB9DQorfQ0KSW5kZXg6
IFdlYkNvcmUva3dxL0tXUUZpbGVCdXR0b24uaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUva3dx
L0tXUUZpbGVCdXR0b24uaAkocmV2aXNpb24gMjA0OTQpDQorKysgV2ViQ29yZS9rd3EvS1dRRmls
ZUJ1dHRvbi5oCSh3b3JraW5nIGNvcHkpDQpAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6DQogICAg
IHZvaWQgc2V0RnJhbWVHZW9tZXRyeShjb25zdCBRUmVjdCAmKTsNCiAgICAgaW50IGJhc2VsaW5l
UG9zaXRpb24oaW50IGhlaWdodCkgY29uc3Q7DQogDQotCXZvaWQgc2V0Rm9udChjb25zdCBRRm9u
dCAmZm9udCk7DQorICAgIHZvaWQgc2V0Rm9udChjb25zdCBRRm9udCAmZm9udCk7DQogDQogDQog
ICAgIHZpcnR1YWwgRm9jdXNQb2xpY3kgZm9jdXNQb2xpY3koKSBjb25zdDsNCkBAIC01OCwxMyAr
NTgsMTQgQEAgcHVibGljOg0KICAgICB2b2lkIGZvY3VzQ2hhbmdlZChib29sKTsNCiAgICAgdm9p
ZCBjbGlja2VkKCk7DQogDQotCXZvaWQgSGFuZGxlRXZlbnQoVEV2ZW50IGFFdmVudCk7DQorICAg
IHZvaWQgSGFuZGxlRXZlbnQoVEV2ZW50IGFFdmVudCk7DQogDQorICAgIHZvaWQgc2V0QWNjZXB0
KGNvbnN0IFFTdHJpbmcgJik7DQogDQogcHJpdmF0ZToNCiAgICAgS1dRU2lnbmFsIF9jbGlja2Vk
Ow0KICAgICBLV1FTaWduYWwgX3RleHRDaGFuZ2VkOw0KLQlNV2ViQ29yZUZpbGVJbnB1dFdpZGdl
dCogX2ZpbGVJbnB1dFdpZGdldDsNCisgICAgTVdlYkNvcmVGaWxlSW5wdXRXaWRnZXQqIF9maWxl
SW5wdXRXaWRnZXQ7DQogfTsNCiANCiAjZW5kaWYNCkluZGV4OiBXZWJLaXQvQ2hhbmdlTG9nDQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09DQotLS0gV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjA0OTcpDQorKysgV2Vi
S2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQ0KQEAgLTEsMyArMSwxNyBAQA0KK3lhZGF2YWxs
LCByZXZpZXdlZCBieSA8emJ1anRhc0BnbWFpbC5jb20+DQorIERFU0M6IFJpY2ggRmlsZSBVcGxv
YWQgaW1wbGVtZW50YXRpb24NCisgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTMxOTUNCisNCisgICAgICAgICogQnJvd3NlckNvbnRyb2wvaW5jL0JyQ3RsRGlhbG9nc1By
b3ZpZGVyLmg6DQorICAgICAgICAqIEJyb3dzZXJDb250cm9sL2luYy9CckN0bERpYWxvZ3NQcm92
aWRlckltcGwuaDoNCisgICAgICAgIChDQnJDdGxEaWFsb2dzUHJvdmlkZXI6OkRpYWxvZ01pbWVG
aWxlU2VsZWN0TEMpOg0KKyAgICAgICAgKiBCcm93c2VyQ29yZS9Gb3JtY29udHJvbHMvaW5jL0ZD
b250cm9sRmlsZUlucHV0U2tpbi5oOg0KKyAgICAgICAgKiBCcm93c2VyQ29yZS9Gb3JtY29udHJv
bHMvc3JjL0ZDb250cm9sRmlsZUlucHV0U2tpbi5jcHA6DQorICAgICAgICAoVEZpbGVEaWFsb2dX
cmFwcGVyOjpEaWFsb2dNaW1lRmlsZVNlbGVjdExDKToNCisgICAgICAgIChDRm9ybUZpbGVJbnB1
dFNraW46OlNldEFjY2VwdGVkTWltZVR5cGUpOg0KKyAgICAgICAgKENGb3JtRmlsZUlucHV0U2tp
bjo6QWN0aXZhdGVMKToNCisgICAgICAgIChDRm9ybUZpbGVJbnB1dFNraW46On5DRm9ybUZpbGVJ
bnB1dFNraW4pOg0KKw0KIDIwMDctMDMtMjIgIHNwYWRtYSAgPHNhY2hpbi5wYWRtYUBub2tpYS5j
b20+DQogDQogICAgICAgICBSZXZpZXdlZCBieSBZb25nanVuLg0KSW5kZXg6IFdlYktpdC9Ccm93
c2VyQ29udHJvbC9pbmMvQnJDdGxEaWFsb2dzUHJvdmlkZXIuaA0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdl
YktpdC9Ccm93c2VyQ29udHJvbC9pbmMvQnJDdGxEaWFsb2dzUHJvdmlkZXIuaAkocmV2aXNpb24g
MjA0OTQpDQorKysgV2ViS2l0L0Jyb3dzZXJDb250cm9sL2luYy9CckN0bERpYWxvZ3NQcm92aWRl
ci5oCSh3b3JraW5nIGNvcHkpDQpAQCAtMjc5LDYgKzI3OSwyMCBAQCBjbGFzcyBNQnJDdGxEaWFs
b2dzUHJvdmlkZXINCiAgICAgICAgICogQHJldHVybiB2b2lkDQogICAgICAgICAqLw0KICAgICAg
ICB2aXJ0dWFsIHZvaWQgRGlhbG9nRmluZEwoKSA9IDA7IA0KKyAgICAgICANCisgICAgICAgIC8q
Kg0KKyAgICAgICAgKiBOYXZpZ2F0ZXMgdGhyb3VnaCB5b3VyIGZpbGUgc3lzdGVtIGFuZCBzZWxl
Y3RzIGEgZmlsZSBvZiBzcGVjaWZpYyBtaW1lIHR5cGU7IA0KKyAgICAgICAgKiBhbmFsb2dvdXMg
dG8gdGhlIEJyb3dzZSBjb21tYW5kIGluIFdpbmRvd3MuDQorICAgICAgICAqIEBzaW5jZSAzLjIN
CisgICAgICAgICogQHBhcmFtIGFTZWxlY3RlZEZpbGVOYW1lIFRoZSBzZWxlY3RlZCBmaWxlIG5h
bWUuDQorICAgICAgICAqIEBwYXJhbSBhTWltZVR5cGUgVGhlIGFjY2VwdGVkIG1pbWUgdHlwZS4N
CisgICAgICAgICogQHJldHVybiBFVHJ1ZSBpZiB0aGUgdXNlciBzZWxlY3RlZCBhIGZpbGUNCisg
ICAgICAgICogRUZhbHNlIGlmIHRoZSB1c2VyIGNhbmNlbGxlZCB0aGUgdHJhbnNhY3Rpb24gYW5k
IGRpZCBub3Qgc2VsZWN0IGEgZmlsZS4NCisgICAgICAgICogQGF0dGlvbnRpb24gUmV0dXJuZWQg
b24gY2xlYW51cCBzdGFjay4gQnJvd3NlciBjb250cm9sIHdpbGwgZnJlZSB0aGUgYnVmZmVyLg0K
KyAgICAgICAgKi8NCisgICAgICAgIHZpcnR1YWwgVEJvb2wgRGlhbG9nTWltZUZpbGVTZWxlY3RM
QyhIQnVmQyomIGFTZWxlY3RlZEZpbGVOYW1lLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgVERlc0MmIGFNaW1lVHlwZSkgPSAwOw0KKyAgICAgICANCiAg
ICAgfTsNCiANCiANCkluZGV4OiBXZWJLaXQvQnJvd3NlckNvbnRyb2wvaW5jL0JyQ3RsRGlhbG9n
c1Byb3ZpZGVySW1wbC5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJDb250cm9sL2lu
Yy9CckN0bERpYWxvZ3NQcm92aWRlckltcGwuaAkocmV2aXNpb24gMjA0OTQpDQorKysgV2ViS2l0
L0Jyb3dzZXJDb250cm9sL2luYy9CckN0bERpYWxvZ3NQcm92aWRlckltcGwuaAkod29ya2luZyBj
b3B5KQ0KQEAgLTksOSArOSw5IEBADQogKiAgICBDb3B5cmlnaHQgKGMpIDIwMDYsIE5va2lhIENv
cnBvcmF0aW9uDQogKiAgICBBbGwgcmlnaHRzIHJlc2VydmVkLg0KICogIA0KLSogIAlSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQNCi0qICAJbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zDQotKiAgCWFyZSBtZXQ6DQorKiAgICAgIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KKyog
ICAgICBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMNCisqICAgICAgYXJlIG1ldDoNCiAqICANCiAqICAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0K
ICogICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4NCkBAIC0yMywxOCArMjMsMTggQEANCiAqICAgICAgICBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQNCiAq
ICAgICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uDQogKiAgDQotKiAgCVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMNCi0qICAJIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QNCi0qICAJ
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SDQotKiAgCUEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUDQotKiAgCU9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KLSogIAlT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UDQotKiAgCUxJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLA0KLSogIAlEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkNCi0qICAJVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVA0KLSogIAkoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRQ0KLSogIAlVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIDQotKiAgCURBTUFHRS4NCisqICAgICAg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUw0KKyogICAgICAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVA0KKyogICAgICBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCisqICAg
ICAgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQNCisqICAgICAgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsDQorKiAgICAgIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QNCisq
ICAgICAgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsDQorKiAgICAgIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQ0KKyogICAgICBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUDQorKiAgICAgIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFDQorKiAgICAgIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gNCisqICAgICAgREFNQUdFLg0K
ICogIA0KICogICAgUGxlYXNlIHNlZSBmaWxlIHBhdGVudGxpY2Vuc2UudHh0IGZvciBmdXJ0aGVy
IGdyYW50cy4NCiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTIyMSw5ICsyMjEsMjQgQEAg
Y2xhc3MgQ0JyQ3RsRGlhbG9nc1Byb3ZpZGVyIDogcHVibGljIENCYQ0KICAgICAgICAgKiBAc2lu
Y2UgMy4wDQogICAgICAgICAqIEByZXR1cm4gdm9pZA0KICAgICAgICAgKi8NCi0JCXZpcnR1YWwg
dm9pZCBEaWFsb2dGaW5kTCgpIA0KLQkJCXsNCi0JCQl9IA0KKyAgICAgICAgdmlydHVhbCB2b2lk
IERpYWxvZ0ZpbmRMKCkgDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgIH0gDQorDQorICAg
ICAgICAvKioNCisgICAgICAgICogTWltZSBGaWxlIHNlbGVjdGlvbiBkaWFsb2cgZm9yIHNwZWNp
ZmljIG1pbWUgdHlwZSBmaWxlcw0KKyAgICAgICAgKiBAc2luY2UgMy4yDQorICAgICAgICAqIEBw
YXJhbSBhU2VsZWN0ZWRGaWxlTmFtZSBUaGUgc2VsZWN0ZWQgZmlsZSBuYW1lLiANCisgICAgICAg
ICogQHBhcmFtIGFNaW1lVHlwZSBUaGUgYWNjZXB0ZWQgbWltZSB0eXBlDQorICAgICAgICAqIFJl
dHVybmVkIG9uIGNsZWFudXAgc3RhY2suIEJyb3dzZXIgY29udHJvbCB3aWxsIGZyZWUgdGhlIGJ1
ZmZlcg0KKyAgICAgICAgKiBAcmV0dXJuIEVGYWxzZSBpZiB0aGUgdXNlciBjYW5jZWxlZCwgRVRy
dWUgb3RoZXJ3aXNlDQorICAgICAgICAqLw0KKyAgICAgICAgdmlydHVhbCBUQm9vbCBEaWFsb2dN
aW1lRmlsZVNlbGVjdExDKEhCdWZDKiYgLyphU2VsZWN0ZWRGaWxlTmFtZSovLA0KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBURGVzQyYg
LyphTWltZVR5cGUqLykNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgcmV0dXJuIEVGYWxz
ZTsNCisgICAgICAgICAgICB9DQorDQogICAgIH07DQogDQogDQpJbmRleDogV2ViS2l0L0Jyb3dz
ZXJDb3JlL0Zvcm1jb250cm9scy9pbmMvRkNvbnRyb2xGaWxlSW5wdXRTa2luLmgNCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBXZWJLaXQvQnJvd3NlckNvcmUvRm9ybWNvbnRyb2xzL2luYy9GQ29udHJvbEZpbGVJ
bnB1dFNraW4uaAkocmV2aXNpb24gMjA0OTQpDQorKysgV2ViS2l0L0Jyb3dzZXJDb3JlL0Zvcm1j
b250cm9scy9pbmMvRkNvbnRyb2xGaWxlSW5wdXRTa2luLmgJKHdvcmtpbmcgY29weSkNCkBAIC05
LDkgKzksOSBAQA0KICogICAgQ29weXJpZ2h0IChjKSAyMDA2LCBOb2tpYSBDb3Jwb3JhdGlvbg0K
ICogICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqICANCi0qICAJUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQotKiAgCW1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucw0KLSogIAlhcmUgbWV0Og0KKyogICAgICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCisqICAgICAgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zDQorKiAgICAgIGFyZSBtZXQ6DQogKiAgDQogKiAgICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCiAqICAgICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuDQpAQCAtMjMsMTggKzIzLDE4IEBADQogKiAgICAgICAgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkDQogKiAgICAgICAgZnJv
bSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
Lg0KICogIA0KLSogIAlUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQotKiAgCSJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQotKiAgCUxJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
Ug0KLSogIAlBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVA0KLSogIAlPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwNCi0qICAJU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVA0KLSog
IAlMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwNCi0qICAJREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZDQotKiAgCVRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQNCi0qICAJ
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUNCi0qICAJVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSA0KLSogIAlEQU1BR0UuDQorKiAgICAgIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMN
CisqICAgICAgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QNCisqICAgICAgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SDQorKiAgICAgIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUDQorKiAgICAgIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KKyogICAgICBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UDQorKiAgICAgIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLA0KKyogICAgICBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkNCisqICAgICAgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVA0KKyogICAg
ICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRQ0KKyogICAgICBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIDQorKiAgICAgIERBTUFHRS4NCiAqICANCiAqICAg
IFBsZWFzZSBzZWUgZmlsZSBwYXRlbnRsaWNlbnNlLnR4dCBmb3IgZnVydGhlciBncmFudHMuDQog
KiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC03Niw0MiArNzYsNTQgQEAgY2xhc3MgTVdlYkNv
cmVGb3JtRXZlbnRIYW5kbGVyOw0KICogIEBzaW5jZSAzLjENCiAqLw0KIGNsYXNzIFRGaWxlRGlh
bG9nV3JhcHBlcg0KLQl7DQotCXB1YmxpYzoNCisgICAgew0KKyAgICBwdWJsaWM6DQogDQotCQkv
KioNCi0JCSogY3JlYXRlcyBhIGZpbGUgZGlhbG9nDQotCQkqIEBzaW5jZSAzLjENCi0JCSogQHBh
cmFtIGFTdGFydFBhdGggLSBzdGFydCBvZiB0aGUgYnJvd3NpbmcgZGlyZWN0b3J5DQotCQkqIEBw
YXJhbSBhUm9vdFBhdGggLSByb290IGRyaXZlDQotCQkqIEBwYXJhbSBhU2VsZWN0ZWRGaWxlTmFt
ZSAtIG5hbWUgb2YgdGhlIGZpbGUgbmFtZSB0aGF0IHdhcyBwcmV2aW91c2x5IHNlbGVjdGVkDQot
CQkqIEBwYXJhbSBhRGlhbG9nUHJvdmlkZXIgLSBkaWFsb2cgcHJvdmlkZXINCi0JCSogQHJldHVy
biBUQm9vbCAtIGlmIGEgZmlsZSB3YXMgc2VsZWN0ZWQNCi0JCSovDQotCQlUQm9vbCBEaWFsb2dG
aWxlU2VsZWN0TEMoIGNvbnN0IFREZXNDJiBhU3RhcnRQYXRoLGNvbnN0IFREZXNDJiBhUm9vdFBh
dGgsDQotCQkJCQkJCQlIQnVmQyomIGFTZWxlY3RlZEZpbGVOYW1lLA0KLQkJCQkJCQkJTUJyQ3Rs
RGlhbG9nc1Byb3ZpZGVyKiBhRGlhbG9nUHJvdmlkZXIpOw0KLQ0KLQkJLyoqDQotCQkqIHNldHMg
dGhlIGNhbGxlciBmbGFnIHRvIGRlbGV0ZWQuDQotCQkqLw0KLQkJdm9pZCBDYWxsZXJEZWxldGVk
KCl7aUNhbGxlckFjdGl2ZSA9IEVGYWxzZTt9DQotDQotDQotCQkvKioNCi0JCSogYWNjZXNzb3Ig
bWV0aG9kIHRvIGNoZWNrIGlmIHRoZSBjYWxsZXIgaXMgYWN0aXZlDQotCQkqLw0KLQkJVEJvb2wg
SXNDYWxsZXJBY3RpdmUoKSB7cmV0dXJuIGlDYWxsZXJBY3RpdmU7fQ0KLQ0KLQkJLyoqDQotCQkq
IGNvbnN0cnVjdG9yDQotCQkqLw0KLQkJVEZpbGVEaWFsb2dXcmFwcGVyKCk6aUNhbGxlckFjdGl2
ZShFVHJ1ZSkge30NCisgICAgICAgIC8qKg0KKyAgICAgICAgKiBjcmVhdGVzIGEgZmlsZSBkaWFs
b2cNCisgICAgICAgICogQHNpbmNlIDMuMQ0KKyAgICAgICAgKiBAcGFyYW0gYVN0YXJ0UGF0aCAt
IHN0YXJ0IG9mIHRoZSBicm93c2luZyBkaXJlY3RvcnkNCisgICAgICAgICogQHBhcmFtIGFSb290
UGF0aCAtIHJvb3QgZHJpdmUNCisgICAgICAgICogQHBhcmFtIGFTZWxlY3RlZEZpbGVOYW1lIC0g
bmFtZSBvZiB0aGUgZmlsZSBuYW1lIHRoYXQgd2FzIHByZXZpb3VzbHkgc2VsZWN0ZWQNCisgICAg
ICAgICogQHBhcmFtIGFEaWFsb2dQcm92aWRlciAtIGRpYWxvZyBwcm92aWRlcg0KKyAgICAgICAg
KiBAcmV0dXJuIFRCb29sIC0gaWYgYSBmaWxlIHdhcyBzZWxlY3RlZA0KKyAgICAgICAgKi8NCisg
ICAgICAgIFRCb29sIERpYWxvZ0ZpbGVTZWxlY3RMQyggY29uc3QgVERlc0MmIGFTdGFydFBhdGgs
Y29uc3QgVERlc0MmIGFSb290UGF0aCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEhCdWZDKiYgYVNlbGVjdGVkRmlsZU5hbWUsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBNQnJDdGxEaWFsb2dzUHJvdmlkZXIqIGFEaWFsb2dQcm92aWRlcik7DQorICAgICAgICAv
KioNCisgICAgICAgICogTmF2aWdhdGVzIHRocm91Z2ggeW91ciBmaWxlIHN5c3RlbSBhbmQgc2Vs
ZWN0cyBhIGZpbGUgb2Ygc3BlY2lmaWMgbWltZSB0eXBlOyANCisgICAgICAgICogQHNpbmNlIDMu
Mg0KKyAgICAgICAgKiBAcGFyYW0gYVNlbGVjdGVkRmlsZU5hbWUgVGhlIHNlbGVjdGVkIGZpbGUg
bmFtZS4NCisgICAgICAgICogQHBhcmFtIGFNaW1lVHlwZSBUaGUgYWNjZXB0ZWQgbWltZSB0eXBl
Lg0KKyAgICAgICAgKiBAcmV0dXJuIEVUcnVlIGlmIHRoZSB1c2VyIHNlbGVjdGVkIGEgZmlsZQ0K
KyAgICAgICAgKiBFRmFsc2UgaWYgdGhlIHVzZXIgY2FuY2VsbGVkIHRoZSB0cmFuc2FjdGlvbiBh
bmQgZGlkIG5vdCBzZWxlY3QgYSBmaWxlLg0KKyAgICAgICAgKiBAYXR0aW9udGlvbiBSZXR1cm5l
ZCBvbiBjbGVhbnVwIHN0YWNrLiBCcm93c2VyIGNvbnRyb2wgd2lsbCBmcmVlIHRoZSBidWZmZXIu
DQorICAgICAgICAqLw0KKyAgICAgICAgVEJvb2wgRGlhbG9nTWltZUZpbGVTZWxlY3RMQyhIQnVm
QyomIGFTZWxlY3RlZEZpbGVOYW1lLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgVERlc0MmIGFNaW1lVHlwZSwNCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE1CckN0bERpYWxvZ3NQcm92aWRlciogYURpYWxvZ1Byb3ZpZGVy
KTsNCisNCisgICAgICAgIC8qKg0KKyAgICAgICAgKiBzZXRzIHRoZSBjYWxsZXIgZmxhZyB0byBk
ZWxldGVkLg0KKyAgICAgICAgKi8NCisgICAgICAgIHZvaWQgQ2FsbGVyRGVsZXRlZCgpe2lDYWxs
ZXJBY3RpdmUgPSBFRmFsc2U7fQ0KKw0KKw0KKyAgICAgICAgLyoqDQorICAgICAgICAqIGFjY2Vz
c29yIG1ldGhvZCB0byBjaGVjayBpZiB0aGUgY2FsbGVyIGlzIGFjdGl2ZQ0KKyAgICAgICAgKi8N
CisgICAgICAgIFRCb29sIElzQ2FsbGVyQWN0aXZlKCkge3JldHVybiBpQ2FsbGVyQWN0aXZlO30N
CisNCisgICAgICAgIC8qKg0KKyAgICAgICAgKiBjb25zdHJ1Y3Rvcg0KKyAgICAgICAgKi8NCisg
ICAgICAgIFRGaWxlRGlhbG9nV3JhcHBlcigpOmlDYWxsZXJBY3RpdmUoRVRydWUpIHt9DQogDQot
CXByaXZhdGU6DQorICAgIHByaXZhdGU6DQogDQotCQlUQm9vbCBpQ2FsbGVyQWN0aXZlOw0KLQl9
Ow0KKyAgICAgICAgVEJvb2wgaUNhbGxlckFjdGl2ZTsNCisgICAgfTsNCiANCiANCiANCkBAIC0x
MjIsNyArMTM0LDcgQEAgY2xhc3MgVEZpbGVEaWFsb2dXcmFwcGVyDQogKiAgQHNpbmNlIDMuMQ0K
ICovDQogY2xhc3MgQ0Zvcm1GaWxlSW5wdXRTa2luOiBwdWJsaWMgQ0Jhc2UsDQotCQkJCQkJcHVi
bGljIE1XZWJDb3JlRmlsZUlucHV0V2lkZ2V0DQorICAgICAgICAgICAgICAgICAgICAgICAgcHVi
bGljIE1XZWJDb3JlRmlsZUlucHV0V2lkZ2V0DQogICB7DQogICBwdWJsaWM6DQogDQpAQCAtMTk5
LDEzICsyMTEsMjEgQEAgY2xhc3MgQ0Zvcm1GaWxlSW5wdXRTa2luOiBwdWJsaWMgQ0Jhc2UsDQog
ICAgIHZvaWQgU2V0UGFyZW50KCBNV2ViQ29yZVNjcm9sbFZpZXcqIGFQYXJlbnQgKTsNCiANCiAN
Ci0JLyoqDQorICAgIC8qKg0KICAgICAqIFNldCB3aWR0aA0KICAgICAqIEBzaW5jZSAzLjENCiAg
ICAgKiBAcGFyYW0NCiAgICAgKiBAcmV0dXJuIHZvaWQNCiAgICAgKi8NCi0Jdm9pZCBTZXRPdXRs
aW5lV2lkdGgoVFVpbnQ4IGFXaWR0aCkgOw0KKyAgICB2b2lkIFNldE91dGxpbmVXaWR0aChUVWlu
dDggYVdpZHRoKSA7DQorDQorICAgIC8qKg0KKyAgICAqIFNldCBhY2NlcHRlZCBtaW1lIHR5cGUN
CisgICAgKiBAc2luY2UgMy4yDQorICAgICogQHBhcmFtDQorICAgICogQHJldHVybiB2b2lkDQor
ICAgICovDQorICAgIHZvaWQgU2V0QWNjZXB0ZWRNaW1lVHlwZSggY29uc3QgVERlc0MmIGFNaW1l
VHlwZSApIDsNCiANCiANCiAgICAgLyoqDQpAQCAtMzAzLDcgKzMyMyw3IEBAIGNsYXNzIENGb3Jt
RmlsZUlucHV0U2tpbjogcHVibGljIENCYXNlLA0KICAgICAqIEBzaW5jZSAzLjANCiAgICAgKiBA
cmV0dXJuIFRCb29sDQogICAgICovDQotCVRCb29sIElzUmVzdHJpY3RlZEZpbGVMKGNvbnN0IFRE
ZXNDJiBhRmlsZU5hbWUpOw0KKyAgICBUQm9vbCBJc1Jlc3RyaWN0ZWRGaWxlTChjb25zdCBURGVz
QyYgYUZpbGVOYW1lKTsNCiAgICAgLyoqDQogICAgICogY29uc3RydWN0b3INCiAgICAgKiBvZiB0
ZXh0IGFyZWENCkBAIC0zMTIsNyArMzMyLDcgQEAgY2xhc3MgQ0Zvcm1GaWxlSW5wdXRTa2luOiBw
dWJsaWMgQ0Jhc2UsDQogICAgICovDQogICAgIENGb3JtRmlsZUlucHV0U2tpbihDQ2FubmVkSW1h
Z2VzJiBhQ2FubmVkSW1hZ2VzKTsNCiANCi0JLyoqDQorICAgIC8qKg0KICAgICAqIHNldHMgdGhl
IHRleHQgb24gdGhlIGNvbnRyb2wNCiAgICAgKiBAc2luY2UgMy4xDQogICAgICogQHBhcmFtIGFE
YXRhIC0gdGV4dCB0byBiZSBzZXQgb24gdGhlIGNvbnRyb2wNCkBAIC0zNDQsMTggKzM2NCwxOSBA
QCBjbGFzcyBDRm9ybUZpbGVJbnB1dFNraW46IHB1YmxpYyBDQmFzZSwNCiAgICAgTVdlYkNvcmVG
b3JtRXZlbnRIYW5kbGVyKiBpSW5wdXRFdmVudEhhbmRsZXI7DQogICAgIEhCdWZDKiBpRGF0YTsN
CiAgICAgSEJ1ZkMqIGlWaXN1YWxDbGlwVGV4dDsNCisgICAgSEJ1ZkMqIGlBY2NlcHRlZE1pbWVU
eXBlOw0KICAgICBUSW50IGlEaXNwbGF5V2lkdGhJbkNoYXJzOw0KICAgICBUSW50IGlCb3JkZXJX
aWR0aDsNCiAgICAgTVdlYkNvcmVTY3JvbGxWaWV3KiBpUGFyZW50Ow0KLQlDQ2FubmVkSW1hZ2Vz
JiBpQ2FubmVkSW1hZ2VzOw0KKyAgICBDQ2FubmVkSW1hZ2VzJiBpQ2FubmVkSW1hZ2VzOw0KICAg
ICBDRm9udCogaUZvbnQ7IC8vIGZvbnQgdG8gYmUgdXNlZCB0byB3cml0ZSB0aGUgaW5wdXQgdGV4
dA0KICAgICBUQm9vbCBpRm9jdXNlZDsNCiAgICAgVFJlY3QgaVJlY3Q7DQotCVRSZWN0IGlJbnB1
dFJlY3Q7DQotCVRSZWN0IGlCdXR0b25SZWN0Ow0KKyAgICBUUmVjdCBpSW5wdXRSZWN0Ow0KKyAg
ICBUUmVjdCBpQnV0dG9uUmVjdDsNCiAgICAgVEJvb2wgaURpc2FibGVkOw0KICAgICBUQm9vbCBp
VmlzaWJsZTsNCi0JVEZpbGVEaWFsb2dXcmFwcGVyKiBpRGlhbG9nV3JhcHBlcjsvLyBvd25zDQor
ICAgIFRGaWxlRGlhbG9nV3JhcHBlciogaURpYWxvZ1dyYXBwZXI7Ly8gb3ducw0KIA0KICAgfTsN
Ci0jZW5kaWYgLy9GSUxFX1NLSU5fSF8NClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQ0KKyNl
bmRpZiAvL0ZJTEVfU0tJTl9IXw0KSW5kZXg6IFdlYktpdC9Ccm93c2VyQ29yZS9Gb3JtY29udHJv
bHMvc3JjL0ZDb250cm9sRmlsZUlucHV0U2tpbi5jcHANCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQv
QnJvd3NlckNvcmUvRm9ybWNvbnRyb2xzL3NyYy9GQ29udHJvbEZpbGVJbnB1dFNraW4uY3BwCShy
ZXZpc2lvbiAyMDQ5NCkNCisrKyBXZWJLaXQvQnJvd3NlckNvcmUvRm9ybWNvbnRyb2xzL3NyYy9G
Q29udHJvbEZpbGVJbnB1dFNraW4uY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtODUsNiArODUsMTQg
QEAgVEJvb2wgVEZpbGVEaWFsb2dXcmFwcGVyOjpEaWFsb2dGaWxlU2VsZQ0KICAgfQ0KIA0KIA0K
K1RCb29sIFRGaWxlRGlhbG9nV3JhcHBlcjo6RGlhbG9nTWltZUZpbGVTZWxlY3RMQyggSEJ1ZkMq
JiBhU2VsZWN0ZWRGaWxlTmFtZSwNCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IFREZXNDJiBh
TWltZVR5cGUsDQorICAgICAgICAgICAgICAgICAgICBNQnJDdGxEaWFsb2dzUHJvdmlkZXIqIGFE
aWFsb2dQcm92aWRlcikNCisgIHsNCisgIHJldHVybiBhRGlhbG9nUHJvdmlkZXItPkRpYWxvZ01p
bWVGaWxlU2VsZWN0TEMoIGFTZWxlY3RlZEZpbGVOYW1lLCBhTWltZVR5cGUpOw0KKyAgfQ0KKw0K
Kw0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8gQ0Zvcm1GaWxlSW5wdXRTa2luOjpOZXdM
DQogLy8gVHdvLXBoYXNlZCBjb25zdHJ1Y3Rvci4NCkBAIC0yMjgsNiArMjM2LDE5IEBAIHZvaWQg
Q0Zvcm1GaWxlSW5wdXRTa2luOjpTZXRPdXRsaW5lV2lkdGgNCiAgIH0NCiANCiAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQ0KKy8vIENGb3JtRmlsZUlucHV0U2tpbjo6U2V0QWNjZXB0ZWRNaW1lVHlw
ZSwgc2V0cyB0aGUgYWNjZXB0ZWQgbWltZSB0eXBlIA0KKy8vICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZm9yIGZpbGUgc2VsZWN0aW9uDQorLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0NCit2b2lkIENGb3JtRmlsZUlucHV0U2tpbjo6U2V0QWNjZXB0ZWRNaW1lVHlwZSgg
Y29uc3QgVERlc0MmIGFNaW1lVHlwZSApDQorICAgIHsNCisgICAgZGVsZXRlIGlBY2NlcHRlZE1p
bWVUeXBlOw0KKyAgICBpQWNjZXB0ZWRNaW1lVHlwZSA9IE5VTEw7DQorICAgIA0KKyAgICBUUkFQ
X0lHTk9SRShpQWNjZXB0ZWRNaW1lVHlwZSA9IGFNaW1lVHlwZS5BbGxvY0woKSk7DQorICAgIA0K
KyAgICB9DQorICAgICAgICANCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8vIENGb3JtRmls
ZUlucHV0U2tpbjo6U2V0UmVjdCwgc2V0cyB0aGUgY28tb3JkaW5hdGVzIGZvciB0aGUgY29udHJv
bA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogdm9pZCBDRm9ybUZpbGVJbnB1dFNraW46OlNl
dFJlY3QoY29uc3QgVFJlY3QmIGFSZWN0KQ0KQEAgLTM1Niw4ICszNzcsMjUgQEAgdm9pZCBDRm9y
bUZpbGVJbnB1dFNraW46OkFjdGl2YXRlTCgpDQogICBpRGlhbG9nV3JhcHBlciA9IGRpYWxvZ1dy
YXBwZXI7DQogDQogICAgIHdlYmtpdEZyYW1lLT5XZWJLaXRWaWV3KCkuU2V0RGlhbG9nTGF1bmNo
ZWQoRVRydWUpOw0KKyAgICANCisgICAgDQorI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCisg
ICAgLy8gSWYgV2lkZ2V0IG1vZGUgYW5kIEFjY2VwdGVkIE1pbWUgVHlwZSBoYXMgYmVlbiBzZXQN
CisgICAgaWYgKHdlYktpdENvbnRyb2wtPldpZGdldEV4dGVuc2lvbigpICYmDQorICAgICAgICBp
QWNjZXB0ZWRNaW1lVHlwZSAmJiBpQWNjZXB0ZWRNaW1lVHlwZS0+TGVuZ3RoKCkpDQorICAgICAg
ICB7DQorICAgICAgLy8gTGF1bmNoIHRoZSBkaWFsb2cgdGhhdCB3aWxsIHVzZSBNaW1lIFR5cGUg
ZmlsdGVyLg0KKyAgICAgICAgc2VsZWN0ZWQgPSBpRGlhbG9nV3JhcHBlci0+RGlhbG9nTWltZUZp
bGVTZWxlY3RMQyggYnVmLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqaUFjY2VwdGVkTWltZVR5cGUsDQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpYWxvZ1Byb3ZpZGVyKTsNCisg
ICAgICAgIA0KKyAgICAgICAgfQ0KKyAgICAvLyBJZiBhIHJlY2VudCBwYXRoIGV4aXN0cywgdXNl
IHRoYXQgYXMgdGhlIHN0YXJ0aW5nIHBvaW50Lg0KKyAgICBlbHNlIGlmICggcHRyTW9zdFJlY2Vu
dFBhdGguTGVuZ3RoKCkgKQ0KKyNlbHNlDQogICAgIC8vIElmIGEgcmVjZW50IHBhdGggZXhpc3Rz
LCB1c2UgdGhhdCBhcyB0aGUgc3RhcnRpbmcgcG9pbnQuDQogICAgIGlmICggcHRyTW9zdFJlY2Vu
dFBhdGguTGVuZ3RoKCkgKQ0KKyNlbmRpZg0KICAgICAgICAgew0KICAgICAgICAgVFBhcnNlUHRy
QyBmaWxlTmFtZVBhcnNlciggcHRyTW9zdFJlY2VudFBhdGggKTsNCiAgICAgICAgIC8vIEdldCBk
cml2ZQ0KQEAgLTQzMSw2ICs0NjksNyBAQCBDRm9ybUZpbGVJbnB1dFNraW46On5DRm9ybUZpbGVJ
bnB1dFNraW4oDQogICAgIGlEaWFsb2dXcmFwcGVyLT5DYWxsZXJEZWxldGVkKCk7DQogICAgIH0N
CiAgICAgZGVsZXRlIGlEYXRhOw0KKyAgICBkZWxldGUgaUFjY2VwdGVkTWltZVR5cGU7DQogICB9
DQogDQogdm9pZCBDRm9ybUZpbGVJbnB1dFNraW46OlNldEZvbnQgKCBDRm9udCogYUZvbnQgKQ0K
</data>
<flag name="review"
          id="5521"
          type_id="1"
          status="+"
          setter="zalan"
    />
          </attachment>
      

    </bug>

</bugzilla>