<?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>142262</bug_id>
          
          <creation_ts>2015-03-03 23:45:12 -0800</creation_ts>
          <short_desc>&lt;attachment&gt; icons are low-resolution when transformed or under page scale</short_desc>
          <delta_ts>2015-03-04 17:43:59 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>enrica</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1073996</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-03-03 23:45:12 -0800</bug_when>
    <thetext>&lt;attachment&gt; icons are low-resolution when transformed or under page scale</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073997</commentid>
    <comment_count>1</comment_count>
      <attachid>247844</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-03-03 23:45:53 -0800</bug_when>
    <thetext>Created attachment 247844
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073998</commentid>
    <comment_count>2</comment_count>
      <attachid>247845</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-03-03 23:47:29 -0800</bug_when>
    <thetext>Created attachment 247845
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073999</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-03-03 23:48:04 -0800</bug_when>
    <thetext>&lt;rdar://problem/20035480&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074153</commentid>
    <comment_count>4</comment_count>
      <attachid>247876</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-03-04 11:50:57 -0800</bug_when>
    <thetext>Created attachment 247876
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074251</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-03-04 15:04:09 -0800</bug_when>
    <thetext>I don&apos;t think the Windows failure is my fault?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074306</commentid>
    <comment_count>6</comment_count>
      <attachid>247913</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-03-04 17:26:45 -0800</bug_when>
    <thetext>Created attachment 247913
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074313</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-03-04 17:43:59 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/181058</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247844</attachid>
            <date>2015-03-03 23:45:53 -0800</date>
            <delta_ts>2015-03-03 23:47:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142262-20150303234535.patch</filename>
            <type>text/plain</type>
            <size>16217</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwODkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2E3MzkxZDRkNmZhOWYz
MGJlM2NlMzM2NzU2YTYwYTQ4NWEwNWE5Mi4uNjYzZjRkYmY2NWRjMTI3ZTMxNWM1YTkzYzAwNjM4
MzIyOTc1ODgyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQzIEBACiAyMDE1LTAzLTAzICBUaW1v
dGh5IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAorICAgICAgICA8YXR0YWNo
bWVudD4gaWNvbnMgYXJlIGxvdy1yZXNvbHV0aW9uIHdoZW4gdHJhbnNmb3JtZWQgb3IgdW5kZXIg
cGFnZSBzY2FsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQyMjYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2Ugc2hvdWxkIHVzZSBJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMsIGp1c3QgbGlrZSA8aW5w
dXQgdHlwZT0iZmlsZSI+IGRvZXMsCisgICAgICAgIGluc3RlYWQgb2YgZGlyZWN0bHkgdGFsa2lu
ZyB0byBJY29uU2VydmljZXMuIFRoaXMgcmVzdWx0cyBib3RoIGluIGxlc3MgY29kZQorICAgICAg
ICBhbmQgaW4gTlNJbWFnZSdzIG11bHRpcmVzb2x1dGlvbiBtYWdpYyBtYWtpbmcgdGhlIGljb25z
IHNoYXJwIGV2ZW4gdW5kZXIKKyAgICAgICAgdGhlIGluZmx1ZW5jZSBvZiB0cmFuc2Zvcm1zIGFu
ZCBwYWdlIHNjYWxlLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIHBsYXRmb3JtL3NwaS9tYWMvSWNvblNlcnZpY2VzU1BJLmg6IFJlbW92
ZWQuCisgICAgICAgIEdldCByaWQgb2YgSWNvblNlcnZpY2VzU1BJLgorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvSWNvbi5oOgorICAgICAgICBJbmNsdWRlIFJldGFpblB0ciBqdXN0IG9u
Y2UuCisgICAgICAgIHBhaW50KCkgc2hvdWxkIHRha2UgYSBHcmFwaGljc0NvbnRleHQgcmVmZXJl
bmNlIChudWxsIGlzIG5vdCBhbiBvcHRpb24pCisgICAgICAgIGFuZCBhIEZsb2F0UmVjdCAoYWZ0
ZXIgYWxsLCBpdCBqdXN0IHR1cm5zIGFyb3VuZCBhbmQgY29udmVydHMgdG8gTlNSZWN0KS4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2lvcy9JY29uSU9TLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6SWNvbjo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9JY29u
TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6SWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKToKKyAg
ICAgICAgKFdlYkNvcmU6Okljb246OnBhaW50KToKKyAgICAgICAgQWRhcHQgdG8gdGhlIHBhaW50
KCkgc2lnbmF0dXJlIGNoYW5nZXMsIGZpeCBzb21lIHN0eWxlLCBldGMuCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnBhaW50T2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVGhlbWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6
cGFpbnRGaWxlVXBsb2FkSWNvbkRlY29yYXRpb25zKToKKyAgICAgICAgQWRhcHQgdG8gdGhlIHBh
aW50KCkgc2lnbmF0dXJlIGNoYW5nZXMuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpwYWludEF0dGFjaG1lbnRJY29uKToKKyAgICAg
ICAgVXNlIEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyBpbnN0ZWFkIG9mIEljb25TZXJ2aWNlcy4K
KworMjAxNS0wMy0wMyAgVGltb3RoeSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CisKICAgICAgICAgPGF0dGFjaG1lbnQ+IHNob3VsZCBzaG93IHRoZSBmaWxlIHNpemUgYXMgZGV0
YWlsIHRleHQgYmVsb3cgdGhlIGljb24KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0MjI2MQogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjAwMDk1NzA+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggYzBlZDE2YmExZjczNTAyZTBlMjQ5M2FiYTQxN2E4MTFlMTlkN2IzZi4uODFiMjMwODYy
MjcwZTZjNThhN2M3NjZmOTI5NjkwNjRkMTc5NDViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTEyNyw3ICsxMTI3LDYgQEAK
IAkJMkQ2RTQ2ODQxN0Q2NjBGNTAwRUNGOEJCIC8qIFBERkRvY3VtZW50SW1hZ2VNYWMubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDZFNDY4MjE3RDY2
MEY1MDBFQ0Y4QkIgLyogUERGRG9jdW1lbnRJbWFnZU1hYy5tbSAqLzsgfTsKIAkJMkQ3MEJBMTMx
ODA3NERERjAwMDE5MDhBIC8qIFBsYXRmb3JtQ0FMYXllck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ3MEJBMTIxODA3NERERjAwMDE5MDhBIC8q
IFBsYXRmb3JtQ0FMYXllck1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTJENzBCQTE1MTgwNzRGODYwMDAxOTA4QSAvKiBQbGF0Zm9ybUNBTGF5
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ3
MEJBMTQxODA3NEY4NTAwMDE5MDhBIC8qIFBsYXRmb3JtQ0FMYXllci5jcHAgKi87IH07Ci0JCTJE
NzRFOTlDMUE5RDNGMzIwMERGQjNENCAvKiBJY29uU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJENzRFOTlCMUE5RDNGMzIwMERGQjNE
NCAvKiBJY29uU2VydmljZXNTUEkuaCAqLzsgfTsKIAkJMkQ3NEU5OUUxQTlENDAyOTAwREZCM0Q0
IC8qIExhdW5jaFNlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyRDc0RTk5RDFBOUQ0MDI5MDBERkIzRDQgLyogTGF1bmNoU2VydmljZXNT
UEkuaCAqLzsgfTsKIAkJMkQ3NkJCODIxOTQ1NjMyNDAwQ0ZEMjlBIC8qIFJ1bkxvb3BPYnNlcnZl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ3NkJC
ODAxOTQ1NjMyNDAwQ0ZEMjlBIC8qIFJ1bkxvb3BPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJENzZCQjg0MTk0NTZGODEwMENGRDI5
QSAvKiBSdW5Mb29wT2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkQ3NkJCODMxOTQ1NkY4MTAwQ0ZEMjlBIC8qIFJ1bkxvb3BPYnNlcnZl
ci5jcHAgKi87IH07CkBAIC04MTg3LDcgKzgxODYsNiBAQAogCQkyRDZFNDY4MjE3RDY2MEY1MDBF
Q0Y4QkIgLyogUERGRG9jdW1lbnRJbWFnZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFBERkRvY3VtZW50SW1hZ2VNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTJENzBCQTEyMTgwNzREREYwMDAxOTA4QSAvKiBQbGF0Zm9ybUNBTGF5ZXJN
YWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUGxhdGZvcm1DQUxheWVyTWFj
Lmg7IHBhdGggPSBjYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTJENzBCQTE0MTgwNzRGODUwMDAxOTA4QSAvKiBQbGF0Zm9ybUNBTGF5ZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUGxhdGZvcm1DQUxheWVy
LmNwcDsgcGF0aCA9IGNhL1BsYXRmb3JtQ0FMYXllci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTJENzRFOTlCMUE5RDNGMzIwMERGQjNENCAvKiBJY29uU2VydmljZXNTUEkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSWNvblNlcnZpY2VzU1BJLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJENzRFOTlEMUE5RDQwMjkwMERGQjNENCAvKiBMYXVu
Y2hTZXJ2aWNlc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXVuY2hT
ZXJ2aWNlc1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDc2QkI4MDE5NDU2
MzI0MDBDRkQyOUEgLyogUnVuTG9vcE9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJ1bkxvb3BPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkyRDc2QkI4MzE5NDU2RjgxMDBDRkQyOUEgLyogUnVuTG9vcE9ic2VydmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJ1bkxvb3BPYnNlcnZlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzY4OCw3ICsxNzY4Niw2IEBACiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTJENTlGMUJFMUEwMDQ0QzYwMDFGM0QyOSAv
KiBEYXRhRGV0ZWN0b3JzU1BJLmggKi8sCi0JCQkJMkQ3NEU5OUIxQTlEM0YzMjAwREZCM0Q0IC8q
IEljb25TZXJ2aWNlc1NQSS5oICovLAogCQkJCTJENzRFOTlEMUE5RDQwMjkwMERGQjNENCAvKiBM
YXVuY2hTZXJ2aWNlc1NQSS5oICovLAogCQkJCTJENDEzRjYwMUExODdBM0YwMDQxQTUyMSAvKiBM
b29rdXBTUEkuaCAqLywKIAkJCQkxQzY0NjYyNzFBMTJDM0Y5MDA5NDYwM0MgLyogTlNGb250U1BJ
LmggKi8sCkBAIC0yNDI5Miw3ICsyNDI4OSw2IEBACiAJCQkJMkUzN0RGREIxMkRCQUZCODAwQTZC
MjMzIC8qIERPTVVSTC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q5REUxODIxN0FBRDZBNDAwRUEz
ODZEIC8qIERPTVVSTE1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNUM3NzBBNjEw
MEQ0MUNEMDA1QkEyNjcgLyogRE9NVmFsaWRpdHlTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MkQ3NEU5OUMxQTlEM0YzMjAwREZCM0Q0IC8qIEljb25TZXJ2aWNlc1NQSS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkMxQTM3QzAwOTdDNzE1RjAwMTlGM0Q4IC8qIERPTVZpZXdzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzMUMwRkY0OTBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0QW5pbWF0aW9u
RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxQzBGRjRCMEU0Q0VGREQwMDdENkZFNSAvKiBE
T01XZWJLaXRBbmltYXRpb25FdmVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ljb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ljb24uaAppbmRleCBjZjk0ZWU4NTRiYWQ4NmQ3MDgxZmRi
NDdhMTNhODQ0MWQ4MzgzZDY3Li5hYTM5NWM1OTE0ZmQ0ZDViOTc0YWJiMWY0NWNlNmZiOWY4OTI3
ODI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JY29uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5oCkBAIC0yMSwxNyAr
MjEsMTYgQEAKICNpZm5kZWYgSWNvbl9oCiAjZGVmaW5lIEljb25faAogCisjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvUmV0
YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiAjaWYgUExBVEZPUk0oSU9TKQog
I2luY2x1ZGUgIk5hdGl2ZUltYWdlUHRyLmgiCiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NvcmVH
cmFwaGljcy5oPgotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNlbGlmIFBMQVRGT1JNKE1B
QykKLSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiBPQkpDX0NMQVNTIE5TSW1hZ2U7CiAjZWxp
ZiBQTEFURk9STShXSU4pCiB0eXBlZGVmIHN0cnVjdCBISUNPTl9fKiBISUNPTjsKQEAgLTQyLDcg
KzQxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX0dka1BpeGJ1ZiBHZGtQaXhidWY7CiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKLWNsYXNzIEludFJlY3Q7CitjbGFz
cyBGbG9hdFJlY3Q7CiAgICAgCiBjbGFzcyBJY29uIDogcHVibGljIFJlZkNvdW50ZWQ8SWNvbj4g
ewogcHVibGljOgpAQCAtNTAsNyArNDksNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9S
VCB+SWNvbigpOwogCi0gICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRS
ZWN0Jik7CisgICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3Qm
KTsKIAogI2lmIFBMQVRGT1JNKFdJTikKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJY29uPiBjcmVh
dGUoSElDT04gaEljb24pIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBJY29uKGhJY29uKSk7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9JY29uSU9TLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ljb25JT1MubW0KaW5kZXgg
ODhiZmNhMDczMTRmYmFhYTA5MDczNjEzY2JiZGIzODRhOTgxZDliNS4uYmUzNTA3NjA5MzBjYWFi
Y2MxY2ZlZjNiYTI0YzIxNDI5MDcxMDY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvaW9zL0ljb25JT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvaW9zL0ljb25JT1MubW0KQEAgLTU1LDIxICs1NSwyMCBAQCBQYXNzUmVmUHRy
PEljb24+IEljb246OmNyZWF0ZUljb25Gb3JJbWFnZShOYXRpdmVJbWFnZVB0ciBpbWFnZVJlZikK
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEljb24oaW1hZ2VSZWYpKTsKIH0KIAotdm9pZCBJY29u
OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIGRlc3RSZWN0
KQordm9pZCBJY29uOjpwYWludChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QpCiB7Ci0gICAgaWYgKGNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkK
KyAgICBpZiAoY29udGV4dC5wYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcigqY29udGV4dCk7CisgICAg
R3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOwogCiAgICAgZmxv
YXQgd2lkdGggPSBDR0ltYWdlR2V0V2lkdGgobV9jZ0ltYWdlLmdldCgpKTsKICAgICBmbG9hdCBo
ZWlnaHQgPSBDR0ltYWdlR2V0SGVpZ2h0KG1fY2dJbWFnZS5nZXQoKSk7CiAgICAgRmxvYXRTaXpl
IHNpemUod2lkdGgsIGhlaWdodCk7Ci0gICAgRmxvYXRSZWN0IHNyY1JlY3QoMCwgMCwgd2lkdGgs
IGhlaWdodCk7Ci0gICAgQ29sb3JTcGFjZSBjb2xvclNwYWNlID0gQ29sb3JTcGFjZURldmljZVJH
QjsKKyAgICBGbG9hdFJlY3Qgc3JjUmVjdChGbG9hdFBvaW50KCksIHNpemUpOwogCi0gICAgY29u
dGV4dC0+c2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uSGlnaCk7Ci0g
ICAgY29udGV4dC0+ZHJhd05hdGl2ZUltYWdlKG1fY2dJbWFnZS5nZXQoKSwgc2l6ZSwgY29sb3JT
cGFjZSwgZGVzdFJlY3QsIHNyY1JlY3QpOworICAgIGNvbnRleHQuc2V0SW1hZ2VJbnRlcnBvbGF0
aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uSGlnaCk7CisgICAgY29udGV4dC5kcmF3TmF0aXZlSW1h
Z2UobV9jZ0ltYWdlLmdldCgpLCBzaXplLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkZXN0UmVjdCwg
c3JjUmVjdCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9JY29uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0ljb25NYWMubW0KaW5kZXggMWZjMDk0ZTQyMTgxMjJiMTNlZDU0YjViOWU2NjA4NzVhOTdh
ZmNjZi4uNjg0MWVlNGFkNWNkYWQxYTVmMjczM2Q3ZTEzNDNjOTA3YTNiMWFiOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0KQEAgLTQ5LDcg
KzQ5LDcgQEAgSWNvbjo6fkljb24oKQogUGFzc1JlZlB0cjxJY29uPiBJY29uOjpjcmVhdGVJY29u
Rm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcykKIHsKICAgICBpZiAoZmls
ZW5hbWVzLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxs
cHRyOwogCiAgICAgYm9vbCB1c2VJY29uRnJvbUZpcnN0RmlsZTsKICAgICB1c2VJY29uRnJvbUZp
cnN0RmlsZSA9IGZpbGVuYW1lcy5zaXplKCkgPT0gMTsKQEAgLTU3LDMxICs1NywyOSBAQCBQYXNz
UmVmUHRyPEljb24+IEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYgZmlsZW5hbWVzKQogICAgICAgICAvLyBEb24ndCBwYXNzIHJlbGF0aXZlIGZpbGVuYW1lcyAt
LSB3ZSBkb24ndCB3YW50IGEgcmVzdWx0IHRoYXQgZGVwZW5kcyBvbiB0aGUgY3VycmVudCBkaXJl
Y3RvcnkuCiAgICAgICAgIC8vIE5lZWQgMFUgaGVyZSB0byBkaXNhbWJpZ3VhdGUgU3RyaW5nOjpv
cGVyYXRvcltdIGZyb20gb3BlcmF0b3IoTlNTdHJpbmcqLCBpbnQpW10KICAgICAgICAgaWYgKGZp
bGVuYW1lc1swXS5pc0VtcHR5KCkgfHwgZmlsZW5hbWVzWzBdWzBVXSAhPSAnLycpCi0gICAgICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgICAgIE5T
SW1hZ2UqIGltYWdlID0gW1tOU1dvcmtzcGFjZSBzaGFyZWRXb3Jrc3BhY2VdIGljb25Gb3JGaWxl
OmZpbGVuYW1lc1swXV07CisgICAgICAgIE5TSW1hZ2UgKmltYWdlID0gW1tOU1dvcmtzcGFjZSBz
aGFyZWRXb3Jrc3BhY2VdIGljb25Gb3JGaWxlOmZpbGVuYW1lc1swXV07CiAgICAgICAgIGlmICgh
aW1hZ2UpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRy
OwogCiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSWNvbihpbWFnZSkpOwogICAgIH0KLSAg
ICBOU0ltYWdlKiBpbWFnZSA9IFtOU0ltYWdlIGltYWdlTmFtZWQ6TlNJbWFnZU5hbWVNdWx0aXBs
ZURvY3VtZW50c107CisgICAgTlNJbWFnZSAqaW1hZ2UgPSBbTlNJbWFnZSBpbWFnZU5hbWVkOk5T
SW1hZ2VOYW1lTXVsdGlwbGVEb2N1bWVudHNdOwogICAgIGlmICghaW1hZ2UpCi0gICAgICAgIHJl
dHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgSWNvbihpbWFnZSkpOwogfQogCi12b2lkIEljb246OnBhaW50KEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3ZvaWQgSWNvbjo6cGFpbnQoR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAgaWYgKGNvbnRl
eHQtPnBhaW50aW5nRGlzYWJsZWQoKSkKKyAgICBpZiAoY29udGV4dC5wYWludGluZ0Rpc2FibGVk
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dCBs
b2NhbEN1cnJlbnRHQyhjb250ZXh0KTsKKyAgICBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQg
bG9jYWxDdXJyZW50R0MoJmNvbnRleHQpOwogCi0gICAgW21fbnNJbWFnZS5nZXQoKSBkcmF3SW5S
ZWN0OnJlY3QKLSAgICAgICAgZnJvbVJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBbbV9uc0ltYWdlLmdl
dCgpIHNpemVdLndpZHRoLCBbbV9uc0ltYWdlLmdldCgpIHNpemVdLmhlaWdodCkKLSAgICAgICAg
b3BlcmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3ZlciBmcmFjdGlvbjoxLjBmXTsKKyAgICBbbV9u
c0ltYWdlIGRyYXdJblJlY3Q6cmVjdCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIFttX25zSW1h
Z2Ugc2l6ZV0ud2lkdGgsIFttX25zSW1hZ2Ugc2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21w
b3NpdGVTb3VyY2VPdmVyIGZyYWN0aW9uOjEuMGZdOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvbWFjL0ljb25TZXJ2aWNlc1NQSS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vc3BpL21hYy9JY29uU2VydmljZXNTUEkuaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNGM2NTkyNDQ3YjYzMWRjYzllZjJjMzJjMjZlNDA0MWZmNDhjOGQ3OS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9zcGkvbWFjL0ljb25TZXJ2aWNlc1NQSS5oCisrKyAvZGV2L251bGwKQEAg
LTEsMzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgIkxhdW5jaFNlcnZpY2VzU1BJLmgi
Ci0jaW1wb3J0ICJTb2Z0TGlua2luZy5oIgotI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+Ci0KLVNP
RlRfTElOS19QUklWQVRFX0ZSQU1FV09SSyhJY29uU2VydmljZXMpCi0KLXR5cGVkZWYgVUludDMy
IElTU2NhbGU7Ci0KLVNPRlRfTElOSyhJY29uU2VydmljZXMsIF9JU0NyZWF0ZUNHSW1hZ2VGcm9t
QmluZGluZ1dpdGhTaXplU2NhbGVBbmRPcHRpb25zLCBDR0ltYWdlUmVmLCAoTFNCaW5kaW5nUmVm
IGJpbmRpbmcsIENHU2l6ZSBzaXplLCBJU1NjYWxlIHNjYWxlLCBDRkRpY3Rpb25hcnlSZWYgb3B0
aW9ucyksIChiaW5kaW5nLCBzaXplLCBzY2FsZSwgb3B0aW9ucykpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcAppbmRleCBiMmE5
OTkwMDEwODE1YTFmYjMzMjE1ZDFmOTYwNjg3MWM4ZmQ3NmI1Li5jYmIxYTczODViZWY2ZTBiZWY2
NWZlY2QwOTkwZDg3Y2VjNDRjNTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKQEAgLTE4Niw3ICsxODYsNyBAQCB2b2lk
IFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpwYWludE9iamVjdChQYWludEluZm8mIHBhaW50SW5m
bywgY29uc3QgTGF5b3V0UG9pbgogICAgICAgICAgICAgfQogI2Vsc2UKICAgICAgICAgICAgIC8v
IERyYXcgdGhlIGZpbGUgaWNvbgotICAgICAgICAgICAgaW5wdXRFbGVtZW50KCkuaWNvbigpLT5w
YWludChwYWludEluZm8uY29udGV4dCwgSW50UmVjdChyb3VuZFRvSW50KGljb25YKSwgcm91bmRU
b0ludChpY29uWSksIGljb25XaWR0aCwgaWNvbkhlaWdodCkpOworICAgICAgICAgICAgaW5wdXRF
bGVtZW50KCkuaWNvbigpLT5wYWludCgqcGFpbnRJbmZvLmNvbnRleHQsIEludFJlY3Qocm91bmRU
b0ludChpY29uWCksIHJvdW5kVG9JbnQoaWNvblkpLCBpY29uV2lkdGgsIGljb25IZWlnaHQpKTsK
ICNlbmRpZgogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lSU9TLm1tCmluZGV4IDhiZjg4OGQ0MjAwNjYxNWUyODMzZmZjZWU5YTk4ZjNhYTMxYjIz
MzQuLjdjOTRiNzJkZmU5NWQ4YzMyMmMwZmRkNjYwNjMwOTdkNGUyMTE1ZDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KQEAgLTEwNTQsNyArMTA1NCw3IEBA
IGJvb2wgUmVuZGVyVGhlbWVJT1M6OnBhaW50RmlsZVVwbG9hZEljb25EZWNvcmF0aW9ucyhjb25z
dCBSZW5kZXJPYmplY3QmLCBjb25zdCBSCiAKICAgICAvLyBGb3JlZ3JvdW5kIHBpY3R1cmUgZnJh
bWUgYW5kIGljb24uCiAgICAgcGFpbnRJbmZvLmNvbnRleHQtPmZpbGxSb3VuZGVkUmVjdChGbG9h
dFJvdW5kZWRSZWN0KHRodW1ibmFpbFBpY3R1cmVGcmFtZVJlY3QsIGNvcm5lclNpemUsIGNvcm5l
clNpemUsIGNvcm5lclNpemUsIGNvcm5lclNpemUpLCBwaWN0dXJlRnJhbWVDb2xvciwgQ29sb3JT
cGFjZURldmljZVJHQik7Ci0gICAgaWNvbi0+cGFpbnQocGFpbnRJbmZvLmNvbnRleHQsIHRodW1i
bmFpbFJlY3QpOworICAgIGljb24tPnBhaW50KCpwYWludEluZm8uY29udGV4dCwgdGh1bWJuYWls
UmVjdCk7CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVNYWMubW0KaW5kZXggOGY1OTg4MzI4NmM5YTExN2ZhM2U2NTkwMjBlYmFkNjZh
NmYzMDQ1NC4uNzc3ZTk2ZjMwMmM2OWMxYWNiMmU3MTgyNjU4ZjQxY2Y4ODcyZTQ3NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtNDIsNyArNDIsNyBA
QAogI2ltcG9ydCAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2ltcG9ydCAiSFRNTE5hbWVzLmgiCiAj
aW1wb3J0ICJIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgiCi0jaW1wb3J0ICJJY29uU2VydmljZXNT
UEkuaCIKKyNpbXBvcnQgIkljb24uaCIKICNpbXBvcnQgIkltYWdlLmgiCiAjaW1wb3J0ICJJbWFn
ZUJ1ZmZlci5oIgogI2ltcG9ydCAiTGF1bmNoU2VydmljZXNTUEkuaCIKQEAgLTIzMjMsMjAgKzIz
MjMsMTMgQEAgc3RhdGljIHZvaWQgcGFpbnRBdHRhY2htZW50SWNvbkJhY2tncm91bmQoY29uc3Qg
UmVuZGVyQXR0YWNobWVudCYsIEdyYXBoaWNzQ29udGUKIAogc3RhdGljIHZvaWQgcGFpbnRBdHRh
Y2htZW50SWNvbihjb25zdCBSZW5kZXJBdHRhY2htZW50JiBhdHRhY2htZW50LCBHcmFwaGljc0Nv
bnRleHQmIGNvbnRleHQsIEF0dGFjaG1lbnRMYXlvdXQmIGxheW91dCkKIHsKLSAgICBGaWxlKiBm
aWxlID0gYXR0YWNobWVudC5hdHRhY2htZW50RWxlbWVudCgpLmZpbGUoKTsKLSAgICBSZXRhaW5Q
dHI8TFNCaW5kaW5nUmVmPiBsc0JpbmRpbmcgPSBhZG9wdENGKF9MU0JpbmRpbmdDcmVhdGVXaXRo
VVJMKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDRlVSTFJlZilbTlNVUkwgZmlsZVVSTFdpdGhQYXRo
OmZpbGUgPyBmaWxlLT5wYXRoKCkgOiBTdHJpbmcoKV0pKTsKLSAgICBpZiAoIWxzQmluZGluZykK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHRha2UgdHJhbnNm
b3JtcyBhbmQgcGFnZSBzY2FsZSBpbnRvIGFjY291bnQsIG5vdCBqdXN0IGRldmljZVNjYWxlRmFj
dG9yLgotICAgIEZsb2F0U2l6ZSBpY29uU2l6ZUluUG9pbnRzKGF0dGFjaG1lbnRJY29uU2l6ZSwg
YXR0YWNobWVudEljb25TaXplKTsKLSAgICBpY29uU2l6ZUluUG9pbnRzLnNjYWxlKGF0dGFjaG1l
bnQuZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKLQotICAgIFJldGFpblB0cjxDR0lt
YWdlUmVmPiBpY29uID0gYWRvcHRDRihfSVNDcmVhdGVDR0ltYWdlRnJvbUJpbmRpbmdXaXRoU2l6
ZVNjYWxlQW5kT3B0aW9ucyhsc0JpbmRpbmcuZ2V0KCksIGljb25TaXplSW5Qb2ludHMsIDEsIG5p
bCkpOworICAgIFZlY3RvcjxTdHJpbmc+IGZpbGVuYW1lczsKKyAgICBpZiAoRmlsZSogZmlsZSA9
IGF0dGFjaG1lbnQuYXR0YWNobWVudEVsZW1lbnQoKS5maWxlKCkpCisgICAgICAgIGZpbGVuYW1l
cy5hcHBlbmQoZmlsZS0+cGF0aCgpKTsKKyAgICBSZWZQdHI8SWNvbj4gaWNvbiA9IEljb246OmNy
ZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpOwogICAgIGlmICghaWNvbikKICAgICAgICAgcmV0
dXJuOwotCi0gICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoaWNvbi5nZXQoKSwgaWNvblNpemVJ
blBvaW50cywgQ29sb3JTcGFjZURldmljZVJHQiwgbGF5b3V0Lmljb25SZWN0LCBGbG9hdFJlY3Qo
RmxvYXRQb2ludCgpLCBpY29uU2l6ZUluUG9pbnRzKSk7CisgICAgaWNvbi0+cGFpbnQoY29udGV4
dCwgbGF5b3V0Lmljb25SZWN0KTsKIH0KIAogc3RhdGljIHZvaWQgYWRkQXR0YWNobWVudFRpdGxl
QmFja2dyb3VuZFJpZ2h0Q29ybmVyKFBhdGgmIHBhdGgsIGNvbnN0IEZsb2F0UmVjdCogZnJvbVJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCogdG9SZWN0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247845</attachid>
            <date>2015-03-03 23:47:29 -0800</date>
            <delta_ts>2015-03-04 11:50:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142262-20150303234710.patch</filename>
            <type>text/plain</type>
            <size>19268</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwODkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2E3MzkxZDRkNmZhOWYz
MGJlM2NlMzM2NzU2YTYwYTQ4NWEwNWE5Mi4uOGNhYWU0ODBjMDZlN2I5YTcwZGYzODliYThkM2Ri
NDU0NDVmM2Q0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ0IEBACiAyMDE1LTAzLTAzICBUaW1v
dGh5IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAorICAgICAgICA8YXR0YWNo
bWVudD4gaWNvbnMgYXJlIGxvdy1yZXNvbHV0aW9uIHdoZW4gdHJhbnNmb3JtZWQgb3IgdW5kZXIg
cGFnZSBzY2FsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQyMjYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2Ugc2hvdWxkIHVzZSBJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMsIGp1c3QgbGlrZSA8aW5w
dXQgdHlwZT0iZmlsZSI+IGRvZXMsCisgICAgICAgIGluc3RlYWQgb2YgZGlyZWN0bHkgdGFsa2lu
ZyB0byBJY29uU2VydmljZXMuIFRoaXMgcmVzdWx0cyBib3RoIGluIGxlc3MgY29kZQorICAgICAg
ICBhbmQgaW4gTlNJbWFnZSdzIG11bHRpcmVzb2x1dGlvbiBtYWdpYyBtYWtpbmcgdGhlIGljb25z
IHNoYXJwIGV2ZW4gdW5kZXIKKyAgICAgICAgdGhlIGluZmx1ZW5jZSBvZiB0cmFuc2Zvcm1zIGFu
ZCBwYWdlIHNjYWxlLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIHBsYXRmb3JtL3NwaS9tYWMvSWNvblNlcnZpY2VzU1BJLmg6IFJlbW92
ZWQuCisgICAgICAgICogcGxhdGZvcm0vc3BpL21hYy9MYXVuY2hTZXJ2aWNlc1NQSS5oOiBSZW1v
dmVkLgorICAgICAgICBHZXQgcmlkIG9mIEljb25TZXJ2aWNlc1NQSS5oIGFuZCBMYXVuY2hTZXJ2
aWNlc1NQSS5oLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5oOgorICAgICAg
ICBJbmNsdWRlIFJldGFpblB0ciBqdXN0IG9uY2UuCisgICAgICAgIHBhaW50KCkgc2hvdWxkIHRh
a2UgYSBHcmFwaGljc0NvbnRleHQgcmVmZXJlbmNlIChudWxsIGlzIG5vdCBhbiBvcHRpb24pCisg
ICAgICAgIGFuZCBhIEZsb2F0UmVjdCAoYWZ0ZXIgYWxsLCBpdCBqdXN0IHR1cm5zIGFyb3VuZCBh
bmQgY29udmVydHMgdG8gTlNSZWN0KS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2lv
cy9JY29uSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6SWNvbjo6cGFpbnQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL21hYy9JY29uTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6SWNv
bjo6Y3JlYXRlSWNvbkZvckZpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6Okljb246OnBhaW50KToK
KyAgICAgICAgQWRhcHQgdG8gdGhlIHBhaW50KCkgc2lnbmF0dXJlIGNoYW5nZXMsIGZpeCBzb21l
IHN0eWxlLCBldGMuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRy
b2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnBhaW50
T2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW06CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGFpbnRGaWxlVXBsb2FkSWNvbkRlY29yYXRpb25z
KToKKyAgICAgICAgQWRhcHQgdG8gdGhlIHBhaW50KCkgc2lnbmF0dXJlIGNoYW5nZXMuCisKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpw
YWludEF0dGFjaG1lbnRJY29uKToKKyAgICAgICAgVXNlIEljb246OmNyZWF0ZUljb25Gb3JGaWxl
cyBpbnN0ZWFkIG9mIEljb25TZXJ2aWNlcy4KKworMjAxNS0wMy0wMyAgVGltb3RoeSBIb3J0b24g
IDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKICAgICAgICAgPGF0dGFjaG1lbnQ+IHNob3Vs
ZCBzaG93IHRoZSBmaWxlIHNpemUgYXMgZGV0YWlsIHRleHQgYmVsb3cgdGhlIGljb24KICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjI2MQogICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjAwMDk1NzA+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzBlZDE2YmExZjczNTAyZTBlMjQ5M2Fi
YTQxN2E4MTFlMTlkN2IzZi4uY2UwMGUzYzAyYmY3MmUyYTI0Nzk5NDMzYTViZTZiNDUyZmVlNzk2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTEyNyw4ICsxMTI3LDYgQEAKIAkJMkQ2RTQ2ODQxN0Q2NjBGNTAwRUNGOEJCIC8q
IFBERkRvY3VtZW50SW1hZ2VNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyRDZFNDY4MjE3RDY2MEY1MDBFQ0Y4QkIgLyogUERGRG9jdW1lbnRJbWFn
ZU1hYy5tbSAqLzsgfTsKIAkJMkQ3MEJBMTMxODA3NERERjAwMDE5MDhBIC8qIFBsYXRmb3JtQ0FM
YXllck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkQ3MEJBMTIxODA3NERERjAwMDE5MDhBIC8qIFBsYXRmb3JtQ0FMYXllck1hYy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJENzBCQTE1MTgwNzRG
ODYwMDAxOTA4QSAvKiBQbGF0Zm9ybUNBTGF5ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ3MEJBMTQxODA3NEY4NTAwMDE5MDhBIC8qIFBsYXRm
b3JtQ0FMYXllci5jcHAgKi87IH07Ci0JCTJENzRFOTlDMUE5RDNGMzIwMERGQjNENCAvKiBJY29u
U2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJENzRFOTlCMUE5RDNGMzIwMERGQjNENCAvKiBJY29uU2VydmljZXNTUEkuaCAqLzsgfTsK
LQkJMkQ3NEU5OUUxQTlENDAyOTAwREZCM0Q0IC8qIExhdW5jaFNlcnZpY2VzU1BJLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDc0RTk5RDFBOUQ0MDI5
MDBERkIzRDQgLyogTGF1bmNoU2VydmljZXNTUEkuaCAqLzsgfTsKIAkJMkQ3NkJCODIxOTQ1NjMy
NDAwQ0ZEMjlBIC8qIFJ1bkxvb3BPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ3NkJCODAxOTQ1NjMyNDAwQ0ZEMjlBIC8qIFJ1bkxvb3BP
YnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTJENzZCQjg0MTk0NTZGODEwMENGRDI5QSAvKiBSdW5Mb29wT2JzZXJ2ZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ3NkJCODMxOTQ1NkY4
MTAwQ0ZEMjlBIC8qIFJ1bkxvb3BPYnNlcnZlci5jcHAgKi87IH07CiAJCTJEODI4N0Y2MTZFNEEw
MzgwMDg2QkQwMCAvKiBIaXRUZXN0TG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ4Mjg3RjQxNkU0QTAzODAwODZCRDAwIC8qIEhpdFRl
c3RMb2NhdGlvbi5jcHAgKi87IH07CkBAIC04MTg3LDggKzgxODUsNiBAQAogCQkyRDZFNDY4MjE3
RDY2MEY1MDBFQ0Y4QkIgLyogUERGRG9jdW1lbnRJbWFnZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBERkRvY3VtZW50SW1hZ2VNYWMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJENzBCQTEyMTgwNzREREYwMDAxOTA4QSAvKiBQbGF0Zm9y
bUNBTGF5ZXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUGxhdGZvcm1D
QUxheWVyTWFjLmg7IHBhdGggPSBjYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJENzBCQTE0MTgwNzRGODUwMDAxOTA4QSAvKiBQbGF0Zm9y
bUNBTGF5ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUGxhdGZv
cm1DQUxheWVyLmNwcDsgcGF0aCA9IGNhL1BsYXRmb3JtQ0FMYXllci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTJENzRFOTlCMUE5RDNGMzIwMERGQjNENCAvKiBJY29uU2Vydmlj
ZXNTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSWNvblNlcnZpY2VzU1BJ
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJENzRFOTlEMUE5RDQwMjkwMERGQjNE
NCAvKiBMYXVuY2hTZXJ2aWNlc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBMYXVuY2hTZXJ2aWNlc1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDc2
QkI4MDE5NDU2MzI0MDBDRkQyOUEgLyogUnVuTG9vcE9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJ1bkxvb3BPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyRDc2QkI4MzE5NDU2RjgxMDBDRkQyOUEgLyogUnVuTG9vcE9ic2VydmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJ1bkxvb3BPYnNlcnZlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEODI4N0Y0MTZFNEEwMzgwMDg2QkQw
MCAvKiBIaXRUZXN0TG9jYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSGl0VGVzdExvY2F0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE3Njg4LDggKzE3Njg0LDYgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CiAJCQkJMkQ1OUYxQkUxQTAwNDRDNjAwMUYzRDI5IC8qIERhdGFEZXRlY3RvcnNTUEkuaCAqLywK
LQkJCQkyRDc0RTk5QjFBOUQzRjMyMDBERkIzRDQgLyogSWNvblNlcnZpY2VzU1BJLmggKi8sCi0J
CQkJMkQ3NEU5OUQxQTlENDAyOTAwREZCM0Q0IC8qIExhdW5jaFNlcnZpY2VzU1BJLmggKi8sCiAJ
CQkJMkQ0MTNGNjAxQTE4N0EzRjAwNDFBNTIxIC8qIExvb2t1cFNQSS5oICovLAogCQkJCTFDNjQ2
NjI3MUExMkMzRjkwMDk0NjAzQyAvKiBOU0ZvbnRTUEkuaCAqLywKIAkJCQk5MzIxRDU4RjFBMzkw
NkZBMDA4MDUyQkUgLyogTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplclNQSS5oICov
LApAQCAtMjQyOTIsNyArMjQyODYsNiBAQAogCQkJCTJFMzdERkRCMTJEQkFGQjgwMEE2QjIzMyAv
KiBET01VUkwuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEOURFMTgyMTdBQUQ2QTQwMEVBMzg2RCAv
KiBET01VUkxNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTVDNzcwQTYxMDBENDFD
RDAwNUJBMjY3IC8qIERPTVZhbGlkaXR5U3RhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTJENzRF
OTlDMUE5RDNGMzIwMERGQjNENCAvKiBJY29uU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDMUEzN0MwMDk3QzcxNUYwMDE5RjNEOCAvKiBET01WaWV3cy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMzFDMEZGNDkwRTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdEFuaW1hdGlvbkV2ZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUMwRkY0QjBFNENFRkREMDA3RDZGRTUgLyogRE9NV2Vi
S2l0QW5pbWF0aW9uRXZlbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjQ5MSw3ICsy
NjQ4NCw2IEBACiAJCQkJQjIyMjdBODgwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdHRlcm5FbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E4QzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZH
UG9pbnRMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E4RjBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHUG9seUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTJENzRFOTlFMUE5RDQwMjkw
MERGQjNENCAvKiBMYXVuY2hTZXJ2aWNlc1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ1OEQ4
NTUxQTE1RjY1RjAwQTVGNzI2IC8qIERhdGFEZXRlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CUIyMjI3QTkxMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQb2x5Z29uRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjIyMjdBOTQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BvbHlsaW5lRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JY29uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JY29uLmgK
aW5kZXggY2Y5NGVlODU0YmFkODZkNzA4MWZkYjQ3YTEzYTg0NDFkODM4M2Q2Ny4uYWEzOTVjNTkx
NGZkNGQ1Yjk3NGFiYjFmNDVjZTZmYjlmODkyNzgyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ljb24uaApAQCAtMjEsMTcgKzIxLDE2IEBACiAjaWZuZGVmIEljb25faAogI2Rl
ZmluZSBJY29uX2gKIAorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KIAogI2lmIFBMQVRGT1JNKElPUykKICNpbmNsdWRlICJOYXRpdmVJbWFnZVB0ci5oIgog
I2luY2x1ZGUgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3MuaD4KLSNpbmNsdWRlIDx3dGYvUmV0
YWluUHRyLmg+CiAjZWxpZiBQTEFURk9STShNQUMpCi0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5o
PgogT0JKQ19DTEFTUyBOU0ltYWdlOwogI2VsaWYgUExBVEZPUk0oV0lOKQogdHlwZWRlZiBzdHJ1
Y3QgSElDT05fXyogSElDT047CkBAIC00Miw3ICs0MSw3IEBAIHR5cGVkZWYgc3RydWN0IF9HZGtQ
aXhidWYgR2RrUGl4YnVmOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBHcmFwaGljc0Nv
bnRleHQ7Ci1jbGFzcyBJbnRSZWN0OworY2xhc3MgRmxvYXRSZWN0OwogICAgIAogY2xhc3MgSWNv
biA6IHB1YmxpYyBSZWZDb3VudGVkPEljb24+IHsKIHB1YmxpYzoKQEAgLTUwLDcgKzQ5LDcgQEAg
cHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgfkljb24oKTsKIAotICAgIHZvaWQgcGFpbnQo
R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpOworICAgIHZvaWQgcGFpbnQoR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jik7CiAKICNpZiBQTEFURk9STShXSU4pCiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8SWNvbj4gY3JlYXRlKEhJQ09OIGhJY29uKSB7IHJldHVybiBhZG9w
dFJlZihuZXcgSWNvbihoSWNvbikpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9pb3MvSWNvbklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2lvcy9JY29uSU9TLm1tCmluZGV4IDg4YmZjYTA3MzE0ZmJhYWEwOTA3MzYxM2NiYmRi
Mzg0YTk4MWQ5YjUuLmJlMzUwNzYwOTMwY2FhYmNjMWNmZWYzYmEyNGMyMTQyOTA3MTA2OWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9JY29uSU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9JY29uSU9TLm1tCkBA
IC01NSwyMSArNTUsMjAgQEAgUGFzc1JlZlB0cjxJY29uPiBJY29uOjpjcmVhdGVJY29uRm9ySW1h
Z2UoTmF0aXZlSW1hZ2VQdHIgaW1hZ2VSZWYpCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJY29u
KGltYWdlUmVmKSk7CiB9CiAKLXZvaWQgSWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250
ZXh0LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCkKK3ZvaWQgSWNvbjo6cGFpbnQoR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KQogewotICAgIGlmIChj
b250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkpCisgICAgaWYgKGNvbnRleHQucGFpbnRpbmdEaXNh
YmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVy
IHN0YXRlU2F2ZXIoKmNvbnRleHQpOworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3Rh
dGVTYXZlcihjb250ZXh0KTsKIAogICAgIGZsb2F0IHdpZHRoID0gQ0dJbWFnZUdldFdpZHRoKG1f
Y2dJbWFnZS5nZXQoKSk7CiAgICAgZmxvYXQgaGVpZ2h0ID0gQ0dJbWFnZUdldEhlaWdodChtX2Nn
SW1hZ2UuZ2V0KCkpOwogICAgIEZsb2F0U2l6ZSBzaXplKHdpZHRoLCBoZWlnaHQpOwotICAgIEZs
b2F0UmVjdCBzcmNSZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQpOwotICAgIENvbG9yU3BhY2UgY29s
b3JTcGFjZSA9IENvbG9yU3BhY2VEZXZpY2VSR0I7CisgICAgRmxvYXRSZWN0IHNyY1JlY3QoRmxv
YXRQb2ludCgpLCBzaXplKTsKIAotICAgIGNvbnRleHQtPnNldEltYWdlSW50ZXJwb2xhdGlvblF1
YWxpdHkoSW50ZXJwb2xhdGlvbkhpZ2gpOwotICAgIGNvbnRleHQtPmRyYXdOYXRpdmVJbWFnZSht
X2NnSW1hZ2UuZ2V0KCksIHNpemUsIGNvbG9yU3BhY2UsIGRlc3RSZWN0LCBzcmNSZWN0KTsKKyAg
ICBjb250ZXh0LnNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvbkhpZ2gp
OworICAgIGNvbnRleHQuZHJhd05hdGl2ZUltYWdlKG1fY2dJbWFnZS5nZXQoKSwgc2l6ZSwgQ29s
b3JTcGFjZURldmljZVJHQiwgZGVzdFJlY3QsIHNyY1JlY3QpOwogfQogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvSWNvbk1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9JY29uTWFjLm1tCmluZGV4IDFmYzA5NGU0
MjE4MTIyYjEzZWQ1NGI1YjllNjYwODc1YTk3YWZjY2YuLjY4NDFlZTRhZDVjZGFkMWE1ZjI3MzNk
N2UxMzQzYzkwN2EzYjFhYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9JY29uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9JY29uTWFjLm1tCkBAIC00OSw3ICs0OSw3IEBAIEljb246On5JY29uKCkKIFBhc3NS
ZWZQdHI8SWNvbj4gSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBmaWxlbmFtZXMpCiB7CiAgICAgaWYgKGZpbGVuYW1lcy5pc0VtcHR5KCkpCi0gICAgICAgIHJl
dHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGJvb2wgdXNlSWNvbkZyb21G
aXJzdEZpbGU7CiAgICAgdXNlSWNvbkZyb21GaXJzdEZpbGUgPSBmaWxlbmFtZXMuc2l6ZSgpID09
IDE7CkBAIC01NywzMSArNTcsMjkgQEAgUGFzc1JlZlB0cjxJY29uPiBJY29uOjpjcmVhdGVJY29u
Rm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcykKICAgICAgICAgLy8gRG9u
J3QgcGFzcyByZWxhdGl2ZSBmaWxlbmFtZXMgLS0gd2UgZG9uJ3Qgd2FudCBhIHJlc3VsdCB0aGF0
IGRlcGVuZHMgb24gdGhlIGN1cnJlbnQgZGlyZWN0b3J5LgogICAgICAgICAvLyBOZWVkIDBVIGhl
cmUgdG8gZGlzYW1iaWd1YXRlIFN0cmluZzo6b3BlcmF0b3JbXSBmcm9tIG9wZXJhdG9yKE5TU3Ry
aW5nKiwgaW50KVtdCiAgICAgICAgIGlmIChmaWxlbmFtZXNbMF0uaXNFbXB0eSgpIHx8IGZpbGVu
YW1lc1swXVswVV0gIT0gJy8nKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICBOU0ltYWdlKiBpbWFnZSA9IFtbTlNXb3Jrc3BhY2Ug
c2hhcmVkV29ya3NwYWNlXSBpY29uRm9yRmlsZTpmaWxlbmFtZXNbMF1dOworICAgICAgICBOU0lt
YWdlICppbWFnZSA9IFtbTlNXb3Jrc3BhY2Ugc2hhcmVkV29ya3NwYWNlXSBpY29uRm9yRmlsZTpm
aWxlbmFtZXNbMF1dOwogICAgICAgICBpZiAoIWltYWdlKQotICAgICAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEljb24oaW1hZ2UpKTsKICAgICB9Ci0gICAgTlNJbWFnZSogaW1hZ2UgPSBbTlNJbWFnZSBp
bWFnZU5hbWVkOk5TSW1hZ2VOYW1lTXVsdGlwbGVEb2N1bWVudHNdOworICAgIE5TSW1hZ2UgKmlt
YWdlID0gW05TSW1hZ2UgaW1hZ2VOYW1lZDpOU0ltYWdlTmFtZU11bHRpcGxlRG9jdW1lbnRzXTsK
ICAgICBpZiAoIWltYWdlKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEljb24oaW1hZ2UpKTsKIH0KIAotdm9pZCBJ
Y29uOjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3Qp
Cit2b2lkIEljb246OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRS
ZWN0JiByZWN0KQogewotICAgIGlmIChjb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkpCisgICAg
aWYgKGNvbnRleHQucGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBM
b2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQgbG9jYWxDdXJyZW50R0MoY29udGV4dCk7CisgICAg
TG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0IGxvY2FsQ3VycmVudEdDKCZjb250ZXh0KTsKIAot
ICAgIFttX25zSW1hZ2UuZ2V0KCkgZHJhd0luUmVjdDpyZWN0Ci0gICAgICAgIGZyb21SZWN0Ok5T
TWFrZVJlY3QoMCwgMCwgW21fbnNJbWFnZS5nZXQoKSBzaXplXS53aWR0aCwgW21fbnNJbWFnZS5n
ZXQoKSBzaXplXS5oZWlnaHQpCi0gICAgICAgIG9wZXJhdGlvbjpOU0NvbXBvc2l0ZVNvdXJjZU92
ZXIgZnJhY3Rpb246MS4wZl07CisgICAgW21fbnNJbWFnZSBkcmF3SW5SZWN0OnJlY3QgZnJvbVJl
Y3Q6TlNNYWtlUmVjdCgwLCAwLCBbbV9uc0ltYWdlIHNpemVdLndpZHRoLCBbbV9uc0ltYWdlIHNp
emVdLmhlaWdodCkgb3BlcmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3ZlciBmcmFjdGlvbjoxLjBm
XTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL21hYy9J
Y29uU2VydmljZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9tYWMvSWNvblNl
cnZpY2VzU1BJLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjNjU5MjQ0N2I2MzFk
Y2M5ZWYyYzMyYzI2ZTQwNDFmZjQ4YzhkNzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL21hYy9JY29uU2Vy
dmljZXNTUEkuaAorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW1wb3J0ICJMYXVuY2hTZXJ2aWNlc1NQSS5oIgotI2ltcG9ydCAiU29mdExpbmtpbmcuaCIKLSNp
bXBvcnQgPG9iamMvcnVudGltZS5oPgotCi1TT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUksoSWNv
blNlcnZpY2VzKQotCi10eXBlZGVmIFVJbnQzMiBJU1NjYWxlOwotCi1TT0ZUX0xJTksoSWNvblNl
cnZpY2VzLCBfSVNDcmVhdGVDR0ltYWdlRnJvbUJpbmRpbmdXaXRoU2l6ZVNjYWxlQW5kT3B0aW9u
cywgQ0dJbWFnZVJlZiwgKExTQmluZGluZ1JlZiBiaW5kaW5nLCBDR1NpemUgc2l6ZSwgSVNTY2Fs
ZSBzY2FsZSwgQ0ZEaWN0aW9uYXJ5UmVmIG9wdGlvbnMpLCAoYmluZGluZywgc2l6ZSwgc2NhbGUs
IG9wdGlvbnMpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL21hYy9M
YXVuY2hTZXJ2aWNlc1NQSS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL21hYy9MYXVu
Y2hTZXJ2aWNlc1NQSS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NThlOGFlZGZk
YzJmODQyYzRkNzhlNWMwMmQ3YjZlM2JhNjk5NjIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9tYWMvTGF1
bmNoU2VydmljZXNTUEkuaAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLQotI2luY2x1ZGUgPExhdW5jaFNlcnZp
Y2VzL0xhdW5jaFNlcnZpY2VzUHJpdi5oPgotCi0jZWxzZQotCi1XVEZfRVhURVJOX0NfQkVHSU4K
LXR5cGVkZWYgc3RydWN0IF9MU0JpbmRpbmcqIExTQmluZGluZ1JlZjsKLUxTQmluZGluZ1JlZiBf
TFNCaW5kaW5nQ3JlYXRlV2l0aFVSTChDRkFsbG9jYXRvclJlZiwgQ0ZVUkxSZWYpOwotV1RGX0VY
VEVSTl9DX0VORAotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCmluZGV4IGIyYTk5OTAwMTA4MTVhMWZiMzMyMTVk
MWY5NjA2ODcxYzhmZDc2YjUuLmNiYjFhNzM4NWJlZjZlMGJlZjY1ZmVjZDA5OTBkODdjZWM0NGM1
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2Fk
Q29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxv
YWRDb250cm9sLmNwcApAQCAtMTg2LDcgKzE4Niw3IEBAIHZvaWQgUmVuZGVyRmlsZVVwbG9hZENv
bnRyb2w6OnBhaW50T2JqZWN0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2lu
CiAgICAgICAgICAgICB9CiAjZWxzZQogICAgICAgICAgICAgLy8gRHJhdyB0aGUgZmlsZSBpY29u
Ci0gICAgICAgICAgICBpbnB1dEVsZW1lbnQoKS5pY29uKCktPnBhaW50KHBhaW50SW5mby5jb250
ZXh0LCBJbnRSZWN0KHJvdW5kVG9JbnQoaWNvblgpLCByb3VuZFRvSW50KGljb25ZKSwgaWNvbldp
ZHRoLCBpY29uSGVpZ2h0KSk7CisgICAgICAgICAgICBpbnB1dEVsZW1lbnQoKS5pY29uKCktPnBh
aW50KCpwYWludEluZm8uY29udGV4dCwgSW50UmVjdChyb3VuZFRvSW50KGljb25YKSwgcm91bmRU
b0ludChpY29uWSksIGljb25XaWR0aCwgaWNvbkhlaWdodCkpOwogI2VuZGlmCiAgICAgICAgIH0K
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJ
T1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KaW5kZXgg
OGJmODg4ZDQyMDA2NjE1ZTI4MzNmZmNlZTlhOThmM2FhMzFiMjMzNC4uN2M5NGI3MmRmZTk1ZDhj
MzIyYzBmZGQ2NjA2MzA5N2Q0ZTIxMTVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUlPUy5tbQpAQCAtMTA1NCw3ICsxMDU0LDcgQEAgYm9vbCBSZW5kZXJUaGVtZUlP
Uzo6cGFpbnRGaWxlVXBsb2FkSWNvbkRlY29yYXRpb25zKGNvbnN0IFJlbmRlck9iamVjdCYsIGNv
bnN0IFIKIAogICAgIC8vIEZvcmVncm91bmQgcGljdHVyZSBmcmFtZSBhbmQgaWNvbi4KICAgICBw
YWludEluZm8uY29udGV4dC0+ZmlsbFJvdW5kZWRSZWN0KEZsb2F0Um91bmRlZFJlY3QodGh1bWJu
YWlsUGljdHVyZUZyYW1lUmVjdCwgY29ybmVyU2l6ZSwgY29ybmVyU2l6ZSwgY29ybmVyU2l6ZSwg
Y29ybmVyU2l6ZSksIHBpY3R1cmVGcmFtZUNvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAg
ICBpY29uLT5wYWludChwYWludEluZm8uY29udGV4dCwgdGh1bWJuYWlsUmVjdCk7CisgICAgaWNv
bi0+cGFpbnQoKnBhaW50SW5mby5jb250ZXh0LCB0aHVtYm5haWxSZWN0KTsKIAogICAgIHJldHVy
biBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpp
bmRleCA4ZjU5ODgzMjg2YzlhMTE3ZmEzZTY1OTAyMGViYWQ2NmE2ZjMwNDU0Li44MTgwZDE5ZDcy
NjBmNmNhMTBkMjE1OTRmNDc2Mjg0YTdlN2U3YjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC00MiwxMCArNDIsOSBAQAogI2ltcG9ydCAiSFRNTE1l
ZGlhRWxlbWVudC5oIgogI2ltcG9ydCAiSFRNTE5hbWVzLmgiCiAjaW1wb3J0ICJIVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50LmgiCi0jaW1wb3J0ICJJY29uU2VydmljZXNTUEkuaCIKKyNpbXBvcnQgIklj
b24uaCIKICNpbXBvcnQgIkltYWdlLmgiCiAjaW1wb3J0ICJJbWFnZUJ1ZmZlci5oIgotI2ltcG9y
dCAiTGF1bmNoU2VydmljZXNTUEkuaCIKICNpbXBvcnQgIkxvY2FsQ3VycmVudEdyYXBoaWNzQ29u
dGV4dC5oIgogI2ltcG9ydCAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2ltcG9ydCAiTWVkaWFDb250
cm9sRWxlbWVudHMuaCIKQEAgLTIzMjMsMjAgKzIzMjIsMTMgQEAgc3RhdGljIHZvaWQgcGFpbnRB
dHRhY2htZW50SWNvbkJhY2tncm91bmQoY29uc3QgUmVuZGVyQXR0YWNobWVudCYsIEdyYXBoaWNz
Q29udGUKIAogc3RhdGljIHZvaWQgcGFpbnRBdHRhY2htZW50SWNvbihjb25zdCBSZW5kZXJBdHRh
Y2htZW50JiBhdHRhY2htZW50LCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIEF0dGFjaG1lbnRM
YXlvdXQmIGxheW91dCkKIHsKLSAgICBGaWxlKiBmaWxlID0gYXR0YWNobWVudC5hdHRhY2htZW50
RWxlbWVudCgpLmZpbGUoKTsKLSAgICBSZXRhaW5QdHI8TFNCaW5kaW5nUmVmPiBsc0JpbmRpbmcg
PSBhZG9wdENGKF9MU0JpbmRpbmdDcmVhdGVXaXRoVVJMKGtDRkFsbG9jYXRvckRlZmF1bHQsIChD
RlVSTFJlZilbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOmZpbGUgPyBmaWxlLT5wYXRoKCkgOiBTdHJp
bmcoKV0pKTsKLSAgICBpZiAoIWxzQmluZGluZykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8g
RklYTUU6IFRoaXMgc2hvdWxkIHRha2UgdHJhbnNmb3JtcyBhbmQgcGFnZSBzY2FsZSBpbnRvIGFj
Y291bnQsIG5vdCBqdXN0IGRldmljZVNjYWxlRmFjdG9yLgotICAgIEZsb2F0U2l6ZSBpY29uU2l6
ZUluUG9pbnRzKGF0dGFjaG1lbnRJY29uU2l6ZSwgYXR0YWNobWVudEljb25TaXplKTsKLSAgICBp
Y29uU2l6ZUluUG9pbnRzLnNjYWxlKGF0dGFjaG1lbnQuZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZh
Y3RvcigpKTsKLQotICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBpY29uID0gYWRvcHRDRihfSVND
cmVhdGVDR0ltYWdlRnJvbUJpbmRpbmdXaXRoU2l6ZVNjYWxlQW5kT3B0aW9ucyhsc0JpbmRpbmcu
Z2V0KCksIGljb25TaXplSW5Qb2ludHMsIDEsIG5pbCkpOworICAgIFZlY3RvcjxTdHJpbmc+IGZp
bGVuYW1lczsKKyAgICBpZiAoRmlsZSogZmlsZSA9IGF0dGFjaG1lbnQuYXR0YWNobWVudEVsZW1l
bnQoKS5maWxlKCkpCisgICAgICAgIGZpbGVuYW1lcy5hcHBlbmQoZmlsZS0+cGF0aCgpKTsKKyAg
ICBSZWZQdHI8SWNvbj4gaWNvbiA9IEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMp
OwogICAgIGlmICghaWNvbikKICAgICAgICAgcmV0dXJuOwotCi0gICAgY29udGV4dC5kcmF3TmF0
aXZlSW1hZ2UoaWNvbi5nZXQoKSwgaWNvblNpemVJblBvaW50cywgQ29sb3JTcGFjZURldmljZVJH
QiwgbGF5b3V0Lmljb25SZWN0LCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBpY29uU2l6ZUluUG9p
bnRzKSk7CisgICAgaWNvbi0+cGFpbnQoY29udGV4dCwgbGF5b3V0Lmljb25SZWN0KTsKIH0KIAog
c3RhdGljIHZvaWQgYWRkQXR0YWNobWVudFRpdGxlQmFja2dyb3VuZFJpZ2h0Q29ybmVyKFBhdGgm
IHBhdGgsIGNvbnN0IEZsb2F0UmVjdCogZnJvbVJlY3QsIGNvbnN0IEZsb2F0UmVjdCogdG9SZWN0
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247876</attachid>
            <date>2015-03-04 11:50:57 -0800</date>
            <delta_ts>2015-03-04 17:26:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142262-20150304115038.patch</filename>
            <type>text/plain</type>
            <size>21862</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxMDA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmQ1NzM5MjFkZTEwZTI0
MDlmYTY2NTBlNTJhMTY1YWQxNGZkZWQ4Zi4uYmNlNDA0M2EzNjRkOGZiMTNiOTdhNGIwNDQwNTEy
NzdkMzI2MDc1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUwIEBACiAyMDE1LTAzLTA0ICBUaW1v
dGh5IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAorICAgICAgICA8YXR0YWNo
bWVudD4gaWNvbnMgYXJlIGxvdy1yZXNvbHV0aW9uIHdoZW4gdHJhbnNmb3JtZWQgb3IgdW5kZXIg
cGFnZSBzY2FsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQyMjYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2Ugc2hvdWxkIHVzZSBJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMsIGp1c3QgbGlrZSA8aW5w
dXQgdHlwZT0iZmlsZSI+IGRvZXMsCisgICAgICAgIGluc3RlYWQgb2YgZGlyZWN0bHkgdGFsa2lu
ZyB0byBJY29uU2VydmljZXMuIFRoaXMgcmVzdWx0cyBib3RoIGluIGxlc3MgY29kZQorICAgICAg
ICBhbmQgaW4gTlNJbWFnZSdzIG11bHRpcmVzb2x1dGlvbiBtYWdpYyBtYWtpbmcgdGhlIGljb25z
IHNoYXJwIGV2ZW4gdW5kZXIKKyAgICAgICAgdGhlIGluZmx1ZW5jZSBvZiB0cmFuc2Zvcm1zIGFu
ZCBwYWdlIHNjYWxlLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIHBsYXRmb3JtL3NwaS9tYWMvSWNvblNlcnZpY2VzU1BJLmg6IFJlbW92
ZWQuCisgICAgICAgICogcGxhdGZvcm0vc3BpL21hYy9MYXVuY2hTZXJ2aWNlc1NQSS5oOiBSZW1v
dmVkLgorICAgICAgICBHZXQgcmlkIG9mIEljb25TZXJ2aWNlc1NQSS5oIGFuZCBMYXVuY2hTZXJ2
aWNlc1NQSS5oLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5oOgorICAgICAg
ICBJbmNsdWRlIFJldGFpblB0ciBqdXN0IG9uY2UuCisgICAgICAgIHBhaW50KCkgc2hvdWxkIHRh
a2UgYSBHcmFwaGljc0NvbnRleHQgcmVmZXJlbmNlIChudWxsIGlzIG5vdCBhbiBvcHRpb24pCisg
ICAgICAgIGFuZCBhIEZsb2F0UmVjdCAoYWZ0ZXIgYWxsLCBpdCBqdXN0IHR1cm5zIGFyb3VuZCBh
bmQgY29udmVydHMgdG8gTlNSZWN0KS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2lv
cy9JY29uSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6SWNvbjo6cGFpbnQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL21hYy9JY29uTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6SWNv
bjo6Y3JlYXRlSWNvbkZvckZpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6Okljb246OnBhaW50KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvSWNvbkVmbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJY29uOjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0lj
b25HdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvbjo6cGFpbnQpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3dpbi9JY29uV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb246
OnBhaW50KToKKyAgICAgICAgQWRhcHQgdG8gdGhlIHBhaW50KCkgc2lnbmF0dXJlIGNoYW5nZXMs
IGZpeCBzb21lIHN0eWxlLCBldGMuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmlsZVVw
bG9hZENvbnRyb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRy
b2w6OnBhaW50T2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW06
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGFpbnRGaWxlVXBsb2FkSWNvbkRl
Y29yYXRpb25zKToKKyAgICAgICAgQWRhcHQgdG8gdGhlIHBhaW50KCkgc2lnbmF0dXJlIGNoYW5n
ZXMuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChX
ZWJDb3JlOjpwYWludEF0dGFjaG1lbnRJY29uKToKKyAgICAgICAgVXNlIEljb246OmNyZWF0ZUlj
b25Gb3JGaWxlcyBpbnN0ZWFkIG9mIEljb25TZXJ2aWNlcy4KKworMjAxNS0wMy0wNCAgVGltb3Ro
eSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKICAgICAgICAgPGF0dGFjaG1l
bnQ+IHRpdGxlIHRleHQgZGlzYXBwZWFycyB3aGVuIGRyYWdnaW5nCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDIyNjMKICAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzIwMDM1NTE1PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGI4NTllNzhiNTA2ZWJhZjFjYzI1MGZhMDI1MTdmYTk2N2E4
NGRmOTAuLjZlMzVhMzUzNjAwZGQ5ZTYyNTkxNzEwNGViNDViMzRkYWUwOTIyZWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEx
MjYsOCArMTEyNiw2IEBACiAJCTJENkU0Njg0MTdENjYwRjUwMEVDRjhCQiAvKiBQREZEb2N1bWVu
dEltYWdlTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkQ2RTQ2ODIxN0Q2NjBGNTAwRUNGOEJCIC8qIFBERkRvY3VtZW50SW1hZ2VNYWMubW0gKi87
IH07CiAJCTJENzBCQTEzMTgwNzREREYwMDAxOTA4QSAvKiBQbGF0Zm9ybUNBTGF5ZXJNYWMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJENzBCQTEyMTgw
NzREREYwMDAxOTA4QSAvKiBQbGF0Zm9ybUNBTGF5ZXJNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyRDcwQkExNTE4MDc0Rjg2MDAwMTkwOEEg
LyogUGxhdGZvcm1DQUxheWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJENzBCQTE0MTgwNzRGODUwMDAxOTA4QSAvKiBQbGF0Zm9ybUNBTGF5ZXIu
Y3BwICovOyB9OwotCQkyRDc0RTk5QzFBOUQzRjMyMDBERkIzRDQgLyogSWNvblNlcnZpY2VzU1BJ
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDc0RTk5
QjFBOUQzRjMyMDBERkIzRDQgLyogSWNvblNlcnZpY2VzU1BJLmggKi87IH07Ci0JCTJENzRFOTlF
MUE5RDQwMjkwMERGQjNENCAvKiBMYXVuY2hTZXJ2aWNlc1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ3NEU5OUQxQTlENDAyOTAwREZCM0Q0IC8q
IExhdW5jaFNlcnZpY2VzU1BJLmggKi87IH07CiAJCTJENzZCQjgyMTk0NTYzMjQwMENGRDI5QSAv
KiBSdW5Mb29wT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJENzZCQjgwMTk0NTYzMjQwMENGRDI5QSAvKiBSdW5Mb29wT2JzZXJ2ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyRDc2QkI4
NDE5NDU2RjgxMDBDRkQyOUEgLyogUnVuTG9vcE9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJENzZCQjgzMTk0NTZGODEwMENGRDI5QSAv
KiBSdW5Mb29wT2JzZXJ2ZXIuY3BwICovOyB9OwogCQkyRDgyODdGNjE2RTRBMDM4MDA4NkJEMDAg
LyogSGl0VGVzdExvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJEODI4N0Y0MTZFNEEwMzgwMDg2QkQwMCAvKiBIaXRUZXN0TG9jYXRpb24u
Y3BwICovOyB9OwpAQCAtODE5Niw4ICs4MTk0LDYgQEAKIAkJMkQ2RTQ2ODIxN0Q2NjBGNTAwRUNG
OEJCIC8qIFBERkRvY3VtZW50SW1hZ2VNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBQREZEb2N1bWVudEltYWdlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyRDcwQkExMjE4MDc0RERGMDAwMTkwOEEgLyogUGxhdGZvcm1DQUxheWVyTWFj
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFBsYXRmb3JtQ0FMYXllck1hYy5o
OyBwYXRoID0gY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyRDcwQkExNDE4MDc0Rjg1MDAwMTkwOEEgLyogUGxhdGZvcm1DQUxheWVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFBsYXRmb3JtQ0FMYXllci5j
cHA7IHBhdGggPSBjYS9QbGF0Zm9ybUNBTGF5ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQkyRDc0RTk5QjFBOUQzRjMyMDBERkIzRDQgLyogSWNvblNlcnZpY2VzU1BJLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEljb25TZXJ2aWNlc1NQSS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkyRDc0RTk5RDFBOUQ0MDI5MDBERkIzRDQgLyogTGF1bmNo
U2VydmljZXNTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF1bmNoU2Vy
dmljZXNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ3NkJCODAxOTQ1NjMy
NDAwQ0ZEMjlBIC8qIFJ1bkxvb3BPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSdW5Mb29wT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MkQ3NkJCODMxOTQ1NkY4MTAwQ0ZEMjlBIC8qIFJ1bkxvb3BPYnNlcnZlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSdW5Mb29wT2JzZXJ2ZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyRDgyODdGNDE2RTRBMDM4MDA4NkJEMDAgLyogSGl0VGVz
dExvY2F0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpdFRl
c3RMb2NhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzcxMyw4ICsx
NzcwOSw2IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTJENTlG
MUJFMUEwMDQ0QzYwMDFGM0QyOSAvKiBEYXRhRGV0ZWN0b3JzU1BJLmggKi8sCi0JCQkJMkQ3NEU5
OUIxQTlEM0YzMjAwREZCM0Q0IC8qIEljb25TZXJ2aWNlc1NQSS5oICovLAotCQkJCTJENzRFOTlE
MUE5RDQwMjkwMERGQjNENCAvKiBMYXVuY2hTZXJ2aWNlc1NQSS5oICovLAogCQkJCTJENDEzRjYw
MUExODdBM0YwMDQxQTUyMSAvKiBMb29rdXBTUEkuaCAqLywKIAkJCQkxQzY0NjYyNzFBMTJDM0Y5
MDA5NDYwM0MgLyogTlNGb250U1BJLmggKi8sCiAJCQkJOTMyMUQ1OEYxQTM5MDZGQTAwODA1MkJF
IC8qIE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXJTUEkuaCAqLywKQEAgLTI0MzI1
LDcgKzI0MzE5LDYgQEAKIAkJCQkyRTM3REZEQjEyREJBRkI4MDBBNkIyMzMgLyogRE9NVVJMLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDRDlERTE4MjE3QUFENkE0MDBFQTM4NkQgLyogRE9NVVJMTWVk
aWFTb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTE1Qzc3MEE2MTAwRDQxQ0QwMDVCQTI2NyAv
KiBET01WYWxpZGl0eVN0YXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQkyRDc0RTk5QzFBOUQzRjMy
MDBERkIzRDQgLyogSWNvblNlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzFBMzdD
MDA5N0M3MTVGMDAxOUYzRDggLyogRE9NVmlld3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxQzBG
RjQ5MEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJLaXRBbmltYXRpb25FdmVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMzFDMEZGNEIwRTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdEFuaW1hdGlv
bkV2ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLApAQCAtMjY1MjcsNyArMjY1MjAsNiBAQAog
CQkJCUIyMjI3QTg4MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXR0ZXJuRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjIyMjdBOEMwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BvaW50TGlzdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOEYwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BvbHlF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQkyRDc0RTk5RTFBOUQ0MDI5MDBERkIzRDQgLyog
TGF1bmNoU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJENThEODU1MUExNUY2NUYw
MEE1RjcyNiAvKiBEYXRhRGV0ZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5MTBE
MDBCRjIyMDA3MUI3ODIgLyogU1ZHUG9seWdvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUIyMjI3QTk0MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQb2x5bGluZUVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSWNv
bi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5oCmluZGV4IGNmOTRl
ZTg1NGJhZDg2ZDcwODFmZGI0N2ExM2E4NDQxZDgzODNkNjcuLmFhMzk1YzU5MTRmZDRkNWI5NzRh
YmIxZjQ1Y2U2ZmI5Zjg5Mjc4MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ljb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
Y29uLmgKQEAgLTIxLDE3ICsyMSwxNiBAQAogI2lmbmRlZiBJY29uX2gKICNkZWZpbmUgSWNvbl9o
CiAKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgor
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKICNp
ZiBQTEFURk9STShJT1MpCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2VQdHIuaCIKICNpbmNsdWRlIDxD
b3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgog
I2VsaWYgUExBVEZPUk0oTUFDKQotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIE9CSkNfQ0xB
U1MgTlNJbWFnZTsKICNlbGlmIFBMQVRGT1JNKFdJTikKIHR5cGVkZWYgc3RydWN0IEhJQ09OX18q
IEhJQ09OOwpAQCAtNDIsNyArNDEsNyBAQCB0eXBlZGVmIHN0cnVjdCBfR2RrUGl4YnVmIEdka1Bp
eGJ1ZjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwotY2xh
c3MgSW50UmVjdDsKK2NsYXNzIEZsb2F0UmVjdDsKICAgICAKIGNsYXNzIEljb24gOiBwdWJsaWMg
UmVmQ291bnRlZDxJY29uPiB7CiBwdWJsaWM6CkBAIC01MCw3ICs0OSw3IEBAIHB1YmxpYzoKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIH5JY29uKCk7CiAKLSAgICB2b2lkIHBhaW50KEdyYXBoaWNzQ29u
dGV4dCosIGNvbnN0IEludFJlY3QmKTsKKyAgICB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCYs
IGNvbnN0IEZsb2F0UmVjdCYpOwogCiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEljb24+IGNyZWF0ZShISUNPTiBoSWNvbikgeyByZXR1cm4gYWRvcHRSZWYobmV3IElj
b24oaEljb24pKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZWZsL0ljb25FZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZs
L0ljb25FZmwuY3BwCmluZGV4IDQwYWVhNzcwNDlhZmJiM2RiY2Q1NDUyMDk5NDcwZmUxMmE2NDA4
OGQuLjljOTJjMDg1M2MyNjFjNzYwYTdjMDgxZjZjODdlOTkwYjFiODhkYWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9JY29uRWZsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvSWNvbkVmbC5jcHAKQEAgLTU3LDcg
KzU3LDcgQEAgUGFzc1JlZlB0cjxJY29uPiBJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mKQogICAgIHJldHVybiAwOwogfQogCi12b2lkIEljb246OnBhaW50KEdy
YXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKQordm9pZCBJY29uOjpwYWludChHcmFwaGlj
c0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvSWNvbkd0
ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvSWNvbkd0ay5jcHAK
aW5kZXggNmM5MWY4MzYxZTkyZjJhYmYwMzBhMmJjODljZGU5ODYyYmE1MDg5ZC4uNTk0NWUxZjhj
NGI0NzQ0OGYzNDg1ZmM2NGJiNTc2NTdhZjRjMzhmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ljb25HdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9JY29uR3RrLmNwcApAQCAtMTEzLDEzICsxMTMsMTMgQEAg
UGFzc1JlZlB0cjxJY29uPiBJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0
cmluZz4mIGZpbGVuYW1lcykKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBJY29uOjpwYWludChH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCit2b2lkIEljb246
OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiByZWN0KQog
ewotICAgIGlmIChjb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkpCisgICAgaWYgKGNvbnRleHQu
cGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBUT0RPOiBTY2Fs
ZS9jbGlwIHRoZSBpbWFnZSBpZiBuZWNlc3NhcnkuCi0gICAgY2Fpcm9fdCogY3IgPSBjb250ZXh0
LT5wbGF0Zm9ybUNvbnRleHQoKS0+Y3IoKTsKKyAgICBjYWlyb190KiBjciA9IGNvbnRleHQucGxh
dGZvcm1Db250ZXh0KCktPmNyKCk7CiAgICAgY2Fpcm9fc2F2ZShjcik7CiAgICAgZ2RrX2NhaXJv
X3NldF9zb3VyY2VfcGl4YnVmKGNyLCBtX2ljb24sIHJlY3QueCgpLCByZWN0LnkoKSk7CiAgICAg
Y2Fpcm9fcGFpbnQoY3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvaW9zL0ljb25JT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9p
b3MvSWNvbklPUy5tbQppbmRleCA4OGJmY2EwNzMxNGZiYWFhMDkwNzM2MTNjYmJkYjM4NGE5ODFk
OWI1Li5iZTM1MDc2MDkzMGNhYWJjYzFjZmVmM2JhMjRjMjE0MjkwNzEwNjllIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvSWNvbklPUy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvSWNvbklPUy5tbQpAQCAtNTUsMjEg
KzU1LDIwIEBAIFBhc3NSZWZQdHI8SWNvbj4gSWNvbjo6Y3JlYXRlSWNvbkZvckltYWdlKE5hdGl2
ZUltYWdlUHRyIGltYWdlUmVmKQogICAgIHJldHVybiBhZG9wdFJlZihuZXcgSWNvbihpbWFnZVJl
ZikpOwogfQogCi12b2lkIEljb246OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29u
c3QgSW50UmVjdCYgZGVzdFJlY3QpCit2b2lkIEljb246OnBhaW50KEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkKIHsKLSAgICBpZiAoY29udGV4dC0+
cGFpbnRpbmdEaXNhYmxlZCgpKQorICAgIGlmIChjb250ZXh0LnBhaW50aW5nRGlzYWJsZWQoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNh
dmVyKCpjb250ZXh0KTsKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIo
Y29udGV4dCk7CiAKICAgICBmbG9hdCB3aWR0aCA9IENHSW1hZ2VHZXRXaWR0aChtX2NnSW1hZ2Uu
Z2V0KCkpOwogICAgIGZsb2F0IGhlaWdodCA9IENHSW1hZ2VHZXRIZWlnaHQobV9jZ0ltYWdlLmdl
dCgpKTsKICAgICBGbG9hdFNpemUgc2l6ZSh3aWR0aCwgaGVpZ2h0KTsKLSAgICBGbG9hdFJlY3Qg
c3JjUmVjdCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTsKLSAgICBDb2xvclNwYWNlIGNvbG9yU3BhY2Ug
PSBDb2xvclNwYWNlRGV2aWNlUkdCOworICAgIEZsb2F0UmVjdCBzcmNSZWN0KEZsb2F0UG9pbnQo
KSwgc2l6ZSk7CiAKLSAgICBjb250ZXh0LT5zZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KElu
dGVycG9sYXRpb25IaWdoKTsKLSAgICBjb250ZXh0LT5kcmF3TmF0aXZlSW1hZ2UobV9jZ0ltYWdl
LmdldCgpLCBzaXplLCBjb2xvclNwYWNlLCBkZXN0UmVjdCwgc3JjUmVjdCk7CisgICAgY29udGV4
dC5zZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25IaWdoKTsKKyAgICBj
b250ZXh0LmRyYXdOYXRpdmVJbWFnZShtX2NnSW1hZ2UuZ2V0KCksIHNpemUsIENvbG9yU3BhY2VE
ZXZpY2VSR0IsIGRlc3RSZWN0LCBzcmNSZWN0KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvSWNvbk1hYy5tbQppbmRleCAxZmMwOTRlNDIxODEyMmIx
M2VkNTRiNWI5ZTY2MDg3NWE5N2FmY2NmLi42ODQxZWU0YWQ1Y2RhZDFhNWYyNzMzZDdlMTM0M2M5
MDdhM2IxYWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvSWNvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
SWNvbk1hYy5tbQpAQCAtNDksNyArNDksNyBAQCBJY29uOjp+SWNvbigpCiBQYXNzUmVmUHRyPElj
b24+IEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5h
bWVzKQogewogICAgIGlmIChmaWxlbmFtZXMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBib29sIHVzZUljb25Gcm9tRmlyc3RGaWxl
OwogICAgIHVzZUljb25Gcm9tRmlyc3RGaWxlID0gZmlsZW5hbWVzLnNpemUoKSA9PSAxOwpAQCAt
NTcsMzEgKzU3LDI5IEBAIFBhc3NSZWZQdHI8SWNvbj4gSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMpCiAgICAgICAgIC8vIERvbid0IHBhc3Mg
cmVsYXRpdmUgZmlsZW5hbWVzIC0tIHdlIGRvbid0IHdhbnQgYSByZXN1bHQgdGhhdCBkZXBlbmRz
IG9uIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4KICAgICAgICAgLy8gTmVlZCAwVSBoZXJlIHRvIGRp
c2FtYmlndWF0ZSBTdHJpbmc6Om9wZXJhdG9yW10gZnJvbSBvcGVyYXRvcihOU1N0cmluZyosIGlu
dClbXQogICAgICAgICBpZiAoZmlsZW5hbWVzWzBdLmlzRW1wdHkoKSB8fCBmaWxlbmFtZXNbMF1b
MFVdICE9ICcvJykKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKLSAgICAgICAgTlNJbWFnZSogaW1hZ2UgPSBbW05TV29ya3NwYWNlIHNoYXJlZFdv
cmtzcGFjZV0gaWNvbkZvckZpbGU6ZmlsZW5hbWVzWzBdXTsKKyAgICAgICAgTlNJbWFnZSAqaW1h
Z2UgPSBbW05TV29ya3NwYWNlIHNoYXJlZFdvcmtzcGFjZV0gaWNvbkZvckZpbGU6ZmlsZW5hbWVz
WzBdXTsKICAgICAgICAgaWYgKCFpbWFnZSkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJY29u
KGltYWdlKSk7CiAgICAgfQotICAgIE5TSW1hZ2UqIGltYWdlID0gW05TSW1hZ2UgaW1hZ2VOYW1l
ZDpOU0ltYWdlTmFtZU11bHRpcGxlRG9jdW1lbnRzXTsKKyAgICBOU0ltYWdlICppbWFnZSA9IFtO
U0ltYWdlIGltYWdlTmFtZWQ6TlNJbWFnZU5hbWVNdWx0aXBsZURvY3VtZW50c107CiAgICAgaWYg
KCFpbWFnZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJY29uKGltYWdlKSk7CiB9CiAKLXZvaWQgSWNvbjo6cGFp
bnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQordm9pZCBJ
Y29uOjpwYWludChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVj
dCkKIHsKLSAgICBpZiAoY29udGV4dC0+cGFpbnRpbmdEaXNhYmxlZCgpKQorICAgIGlmIChjb250
ZXh0LnBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTG9jYWxDdXJy
ZW50R3JhcGhpY3NDb250ZXh0IGxvY2FsQ3VycmVudEdDKGNvbnRleHQpOworICAgIExvY2FsQ3Vy
cmVudEdyYXBoaWNzQ29udGV4dCBsb2NhbEN1cnJlbnRHQygmY29udGV4dCk7CiAKLSAgICBbbV9u
c0ltYWdlLmdldCgpIGRyYXdJblJlY3Q6cmVjdAotICAgICAgICBmcm9tUmVjdDpOU01ha2VSZWN0
KDAsIDAsIFttX25zSW1hZ2UuZ2V0KCkgc2l6ZV0ud2lkdGgsIFttX25zSW1hZ2UuZ2V0KCkgc2l6
ZV0uaGVpZ2h0KQotICAgICAgICBvcGVyYXRpb246TlNDb21wb3NpdGVTb3VyY2VPdmVyIGZyYWN0
aW9uOjEuMGZdOworICAgIFttX25zSW1hZ2UgZHJhd0luUmVjdDpyZWN0IGZyb21SZWN0Ok5TTWFr
ZVJlY3QoMCwgMCwgW21fbnNJbWFnZSBzaXplXS53aWR0aCwgW21fbnNJbWFnZSBzaXplXS5oZWln
aHQpIG9wZXJhdGlvbjpOU0NvbXBvc2l0ZVNvdXJjZU92ZXIgZnJhY3Rpb246MS4wZl07CiB9CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JY29u
V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JY29uV2luLmNw
cAppbmRleCBmM2IwZDBiNzhhYzg4YjA5MzM0OTBhYjRmZWRmY2JkYmIyODdhOGViLi5kZWQyYmNh
MWQ5ZWViNmEyNDRhNTNmZWRjMTU4YTYyM2U4ZDhhYzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSWNvbldpbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ljb25XaW4uY3BwCkBAIC03MywxMiArNzMsMTIgQEAg
UGFzc1JlZlB0cjxJY29uPiBJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0
cmluZz4mIGZpbGVuYW1lcykKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEljb24oaEljb24pKTsK
IH0KIAotdm9pZCBJY29uOjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IElu
dFJlY3QmIHIpCit2b2lkIEljb246OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29u
c3QgRmxvYXRSZWN0JiByKQogewotICAgIGlmIChjb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkp
CisgICAgaWYgKGNvbnRleHQucGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBMb2NhbFdpbmRvd3NDb250ZXh0IHdpbmRvd0NvbnRleHQoY29udGV4dCwgcik7CisgICAg
TG9jYWxXaW5kb3dzQ29udGV4dCB3aW5kb3dDb250ZXh0KCZjb250ZXh0LCByKTsKICAgICBEcmF3
SWNvbkV4KHdpbmRvd0NvbnRleHQuaGRjKCksIHIueCgpLCByLnkoKSwgbV9oSWNvbiwgci53aWR0
aCgpLCByLmhlaWdodCgpLCAwLCAwLCBESV9OT1JNQUwpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvbWFjL0ljb25TZXJ2aWNlc1NQSS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vc3BpL21hYy9JY29uU2VydmljZXNTUEkuaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNGM2NTkyNDQ3YjYzMWRjYzllZjJjMzJjMjZlNDA0MWZmNDhjOGQ3OS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9zcGkvbWFjL0ljb25TZXJ2aWNlc1NQSS5oCisrKyAvZGV2L251bGwKQEAg
LTEsMzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgIkxhdW5jaFNlcnZpY2VzU1BJLmgi
Ci0jaW1wb3J0ICJTb2Z0TGlua2luZy5oIgotI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+Ci0KLVNP
RlRfTElOS19QUklWQVRFX0ZSQU1FV09SSyhJY29uU2VydmljZXMpCi0KLXR5cGVkZWYgVUludDMy
IElTU2NhbGU7Ci0KLVNPRlRfTElOSyhJY29uU2VydmljZXMsIF9JU0NyZWF0ZUNHSW1hZ2VGcm9t
QmluZGluZ1dpdGhTaXplU2NhbGVBbmRPcHRpb25zLCBDR0ltYWdlUmVmLCAoTFNCaW5kaW5nUmVm
IGJpbmRpbmcsIENHU2l6ZSBzaXplLCBJU1NjYWxlIHNjYWxlLCBDRkRpY3Rpb25hcnlSZWYgb3B0
aW9ucyksIChiaW5kaW5nLCBzaXplLCBzY2FsZSwgb3B0aW9ucykpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvbWFjL0xhdW5jaFNlcnZpY2VzU1BJLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9zcGkvbWFjL0xhdW5jaFNlcnZpY2VzU1BJLmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDQ1OGU4YWVkZmRjMmY4NDJjNGQ3OGU1YzAyZDdiNmUzYmE2OTk2
MjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vc3BpL21hYy9MYXVuY2hTZXJ2aWNlc1NQSS5oCisrKyAvZGV2L251
bGwKQEAgLTEsMzcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxf
U0RLKQotCi0jaW5jbHVkZSA8TGF1bmNoU2VydmljZXMvTGF1bmNoU2VydmljZXNQcml2Lmg+Ci0K
LSNlbHNlCi0KLVdURl9FWFRFUk5fQ19CRUdJTgotdHlwZWRlZiBzdHJ1Y3QgX0xTQmluZGluZyog
TFNCaW5kaW5nUmVmOwotTFNCaW5kaW5nUmVmIF9MU0JpbmRpbmdDcmVhdGVXaXRoVVJMKENGQWxs
b2NhdG9yUmVmLCBDRlVSTFJlZik7Ci1XVEZfRVhURVJOX0NfRU5ECi0KLSNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAK
aW5kZXggYjJhOTk5MDAxMDgxNWExZmIzMzIxNWQxZjk2MDY4NzFjOGZkNzZiNS4uY2JiMWE3Mzg1
YmVmNmUwYmVmNjVmZWNkMDk5MGQ4N2NlYzQ0YzU1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCkBAIC0xODYsNyArMTg2
LDcgQEAgdm9pZCBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6cGFpbnRPYmplY3QoUGFpbnRJbmZv
JiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW4KICAgICAgICAgICAgIH0KICNlbHNlCiAgICAg
ICAgICAgICAvLyBEcmF3IHRoZSBmaWxlIGljb24KLSAgICAgICAgICAgIGlucHV0RWxlbWVudCgp
Lmljb24oKS0+cGFpbnQocGFpbnRJbmZvLmNvbnRleHQsIEludFJlY3Qocm91bmRUb0ludChpY29u
WCksIHJvdW5kVG9JbnQoaWNvblkpLCBpY29uV2lkdGgsIGljb25IZWlnaHQpKTsKKyAgICAgICAg
ICAgIGlucHV0RWxlbWVudCgpLmljb24oKS0+cGFpbnQoKnBhaW50SW5mby5jb250ZXh0LCBJbnRS
ZWN0KHJvdW5kVG9JbnQoaWNvblgpLCByb3VuZFRvSW50KGljb25ZKSwgaWNvbldpZHRoLCBpY29u
SGVpZ2h0KSk7CiAjZW5kaWYKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUlPUy5tbQppbmRleCA4YmY4ODhkNDIwMDY2MTVlMjgzM2ZmY2VlOWE5
OGYzYWEzMWIyMzM0Li43Yzk0YjcyZGZlOTVkOGMzMjJjMGZkZDY2MDYzMDk3ZDRlMjExNWQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCkBAIC0xMDU0LDcg
KzEwNTQsNyBAQCBib29sIFJlbmRlclRoZW1lSU9TOjpwYWludEZpbGVVcGxvYWRJY29uRGVjb3Jh
dGlvbnMoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUgogCiAgICAgLy8gRm9yZWdyb3VuZCBw
aWN0dXJlIGZyYW1lIGFuZCBpY29uLgogICAgIHBhaW50SW5mby5jb250ZXh0LT5maWxsUm91bmRl
ZFJlY3QoRmxvYXRSb3VuZGVkUmVjdCh0aHVtYm5haWxQaWN0dXJlRnJhbWVSZWN0LCBjb3JuZXJT
aXplLCBjb3JuZXJTaXplLCBjb3JuZXJTaXplLCBjb3JuZXJTaXplKSwgcGljdHVyZUZyYW1lQ29s
b3IsIENvbG9yU3BhY2VEZXZpY2VSR0IpOwotICAgIGljb24tPnBhaW50KHBhaW50SW5mby5jb250
ZXh0LCB0aHVtYm5haWxSZWN0KTsKKyAgICBpY29uLT5wYWludCgqcGFpbnRJbmZvLmNvbnRleHQs
IHRodW1ibmFpbFJlY3QpOwogCiAgICAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IGI0ZjA1Y2RmYWQ1ZjM5NDBkZjVmYjE4
ZTI4ZDJjMmQzMjBlODc4YmMuLmFlYWVkOGExNTQxNjAwMzVkNTdhMDUxMmJmNmI3YjkyMTdlZDA4
NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTQy
LDEwICs0Miw5IEBACiAjaW1wb3J0ICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW1wb3J0ICJIVE1M
TmFtZXMuaCIKICNpbXBvcnQgIkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCIKLSNpbXBvcnQgIklj
b25TZXJ2aWNlc1NQSS5oIgorI2ltcG9ydCAiSWNvbi5oIgogI2ltcG9ydCAiSW1hZ2UuaCIKICNp
bXBvcnQgIkltYWdlQnVmZmVyLmgiCi0jaW1wb3J0ICJMYXVuY2hTZXJ2aWNlc1NQSS5oIgogI2lt
cG9ydCAiTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmgiCiAjaW1wb3J0ICJMb2NhbGl6ZWRT
dHJpbmdzLmgiCiAjaW1wb3J0ICJNZWRpYUNvbnRyb2xFbGVtZW50cy5oIgpAQCAtMjI4MCwyMCAr
MjI3OSwxMyBAQCBzdGF0aWMgdm9pZCBwYWludEF0dGFjaG1lbnRJY29uQmFja2dyb3VuZChjb25z
dCBSZW5kZXJBdHRhY2htZW50JiwgR3JhcGhpY3NDb250ZQogCiBzdGF0aWMgdm9pZCBwYWludEF0
dGFjaG1lbnRJY29uKGNvbnN0IFJlbmRlckF0dGFjaG1lbnQmIGF0dGFjaG1lbnQsIEdyYXBoaWNz
Q29udGV4dCYgY29udGV4dCwgQXR0YWNobWVudExheW91dCYgbGF5b3V0KQogewotICAgIEZpbGUq
IGZpbGUgPSBhdHRhY2htZW50LmF0dGFjaG1lbnRFbGVtZW50KCkuZmlsZSgpOwotICAgIFJldGFp
blB0cjxMU0JpbmRpbmdSZWY+IGxzQmluZGluZyA9IGFkb3B0Q0YoX0xTQmluZGluZ0NyZWF0ZVdp
dGhVUkwoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKENGVVJMUmVmKVtOU1VSTCBmaWxlVVJMV2l0aFBh
dGg6ZmlsZSA/IGZpbGUtPnBhdGgoKSA6IFN0cmluZygpXSkpOwotICAgIGlmICghbHNCaW5kaW5n
KQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgdGFrZSB0cmFu
c2Zvcm1zIGFuZCBwYWdlIHNjYWxlIGludG8gYWNjb3VudCwgbm90IGp1c3QgZGV2aWNlU2NhbGVG
YWN0b3IuCi0gICAgRmxvYXRTaXplIGljb25TaXplSW5Qb2ludHMoYXR0YWNobWVudEljb25TaXpl
LCBhdHRhY2htZW50SWNvblNpemUpOwotICAgIGljb25TaXplSW5Qb2ludHMuc2NhbGUoYXR0YWNo
bWVudC5kb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCkpOwotCi0gICAgUmV0YWluUHRyPENH
SW1hZ2VSZWY+IGljb24gPSBhZG9wdENGKF9JU0NyZWF0ZUNHSW1hZ2VGcm9tQmluZGluZ1dpdGhT
aXplU2NhbGVBbmRPcHRpb25zKGxzQmluZGluZy5nZXQoKSwgaWNvblNpemVJblBvaW50cywgMSwg
bmlsKSk7CisgICAgVmVjdG9yPFN0cmluZz4gZmlsZW5hbWVzOworICAgIGlmIChGaWxlKiBmaWxl
ID0gYXR0YWNobWVudC5hdHRhY2htZW50RWxlbWVudCgpLmZpbGUoKSkKKyAgICAgICAgZmlsZW5h
bWVzLmFwcGVuZChmaWxlLT5wYXRoKCkpOworICAgIFJlZlB0cjxJY29uPiBpY29uID0gSWNvbjo6
Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcyk7CiAgICAgaWYgKCFpY29uKQogICAgICAgICBy
ZXR1cm47Ci0KLSAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZShpY29uLmdldCgpLCBpY29uU2l6
ZUluUG9pbnRzLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBsYXlvdXQuaWNvblJlY3QsIEZsb2F0UmVj
dChGbG9hdFBvaW50KCksIGljb25TaXplSW5Qb2ludHMpKTsKKyAgICBpY29uLT5wYWludChjb250
ZXh0LCBsYXlvdXQuaWNvblJlY3QpOwogfQogCiBzdGF0aWMgdm9pZCBhZGRBdHRhY2htZW50TGFi
ZWxCYWNrZ3JvdW5kUmlnaHRDb3JuZXIoUGF0aCYgcGF0aCwgY29uc3QgRmxvYXRSZWN0KiBmcm9t
UmVjdCwgY29uc3QgRmxvYXRSZWN0KiB0b1JlY3QpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247913</attachid>
            <date>2015-03-04 17:26:45 -0800</date>
            <delta_ts>2015-03-04 17:29:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142262-20150304172626.patch</filename>
            <type>text/plain</type>
            <size>21866</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxMDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGE5YWZkN2JhMzEwMjFj
Zjk3OTI5ZGY0YmMyZThhZTU4NTdhN2Y2OC4uOWRiYmQxNjhhNDZhNjU0NWViZmVkMWE4NmYwNzc5
ZTllOGEyZTZkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE1LTAzLTA0ICBUaW1v
dGh5IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICA8YXR0YWNo
bWVudD4gaWNvbnMgYXJlIGxvdy1yZXNvbHV0aW9uIHdoZW4gdHJhbnNmb3JtZWQgb3IgdW5kZXIg
cGFnZSBzY2FsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQyMjYyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMDAzNTQ4MD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBzaG91bGQgdXNlIEljb246
OmNyZWF0ZUljb25Gb3JGaWxlcywganVzdCBsaWtlIDxpbnB1dCB0eXBlPSJmaWxlIj4gZG9lcywK
KyAgICAgICAgaW5zdGVhZCBvZiBkaXJlY3RseSB0YWxraW5nIHRvIEljb25TZXJ2aWNlcy4gVGhp
cyByZXN1bHRzIGJvdGggaW4gbGVzcyBjb2RlCisgICAgICAgIGFuZCBpbiBOU0ltYWdlJ3MgbXVs
dGlyZXNvbHV0aW9uIG1hZ2ljIG1ha2luZyB0aGUgaWNvbnMgc2hhcnAgZXZlbiB1bmRlcgorICAg
ICAgICB0aGUgaW5mbHVlbmNlIG9mIHRyYW5zZm9ybXMgYW5kIHBhZ2Ugc2NhbGUuCisKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZv
cm0vc3BpL21hYy9JY29uU2VydmljZXNTUEkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9zcGkvbWFjL0xhdW5jaFNlcnZpY2VzU1BJLmg6IFJlbW92ZWQuCisgICAgICAgIEdldCByaWQg
b2YgSWNvblNlcnZpY2VzU1BJLmggYW5kIExhdW5jaFNlcnZpY2VzU1BJLmguCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9JY29uLmg6CisgICAgICAgIEluY2x1ZGUgUmV0YWluUHRyIGp1
c3Qgb25jZS4KKyAgICAgICAgcGFpbnQoKSBzaG91bGQgdGFrZSBhIEdyYXBoaWNzQ29udGV4dCBy
ZWZlcmVuY2UgKG51bGwgaXMgbm90IGFuIG9wdGlvbikKKyAgICAgICAgYW5kIGEgRmxvYXRSZWN0
IChhZnRlciBhbGwsIGl0IGp1c3QgdHVybnMgYXJvdW5kIGFuZCBjb252ZXJ0cyB0byBOU1JlY3Qp
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ljb25JT1MubW06CisgICAgICAg
IChXZWJDb3JlOjpJY29uOjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ljb25NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMp
OgorICAgICAgICAoV2ViQ29yZTo6SWNvbjo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2VmbC9JY29uRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb246OnBhaW50KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvSWNvbkd0ay5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJY29uOjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0lj
b25XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvbjo6cGFpbnQpOgorICAgICAgICBBZGFw
dCB0byB0aGUgcGFpbnQoKSBzaWduYXR1cmUgY2hhbmdlcywgZml4IHNvbWUgc3R5bGUsIGV0Yy4K
KworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6cGFpbnRPYmplY3QpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lSU9TOjpwYWludEZpbGVVcGxvYWRJY29uRGVjb3JhdGlvbnMpOgorICAgICAgICBB
ZGFwdCB0byB0aGUgcGFpbnQoKSBzaWduYXR1cmUgY2hhbmdlcy4KKworICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJUaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnBhaW50QXR0YWNobWVu
dEljb24pOgorICAgICAgICBVc2UgSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzIGluc3RlYWQgb2Yg
SWNvblNlcnZpY2VzLgorCiAyMDE1LTAzLTA0ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBs
ZS5jb20+CiAKICAgICAgICAgW1dpbmRvd3NdIEJ1aWxkIGZpeDogTWFrZSBzdXJlIHRvIGluY2x1
ZGUgPENvcmVNZWRpYS9Db3JlTWVkaWEuaD4gYmVmb3JlIHJlZGVmaW5pbmcgQ01TYW1wbGVCdWZm
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCAzYTUwMGU1YzMyYmZjYzg2ZWYyNzZlYTcwM2FmNGVjMThjMmFiNzUxLi45NTAxNDMz
ODRkNmQyZGI1NWJiZGQwZjUwYzBkMGM4NmMyNjNkMTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTI1LDggKzExMjUsNiBA
QAogCQkyRDZFNDY4NDE3RDY2MEY1MDBFQ0Y4QkIgLyogUERGRG9jdW1lbnRJbWFnZU1hYy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJENkU0NjgyMTdE
NjYwRjUwMEVDRjhCQiAvKiBQREZEb2N1bWVudEltYWdlTWFjLm1tICovOyB9OwogCQkyRDcwQkEx
MzE4MDc0RERGMDAwMTkwOEEgLyogUGxhdGZvcm1DQUxheWVyTWFjLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDcwQkExMjE4MDc0RERGMDAwMTkwOEEg
LyogUGxhdGZvcm1DQUxheWVyTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMkQ3MEJBMTUxODA3NEY4NjAwMDE5MDhBIC8qIFBsYXRmb3JtQ0FM
YXllci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RDcwQkExNDE4MDc0Rjg1MDAwMTkwOEEgLyogUGxhdGZvcm1DQUxheWVyLmNwcCAqLzsgfTsKLQkJ
MkQ3NEU5OUMxQTlEM0YzMjAwREZCM0Q0IC8qIEljb25TZXJ2aWNlc1NQSS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ3NEU5OUIxQTlEM0YzMjAwREZC
M0Q0IC8qIEljb25TZXJ2aWNlc1NQSS5oICovOyB9OwotCQkyRDc0RTk5RTFBOUQ0MDI5MDBERkIz
RDQgLyogTGF1bmNoU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJENzRFOTlEMUE5RDQwMjkwMERGQjNENCAvKiBMYXVuY2hTZXJ2aWNl
c1NQSS5oICovOyB9OwogCQkyRDc2QkI4MjE5NDU2MzI0MDBDRkQyOUEgLyogUnVuTG9vcE9ic2Vy
dmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDc2
QkI4MDE5NDU2MzI0MDBDRkQyOUEgLyogUnVuTG9vcE9ic2VydmVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkQ3NkJCODQxOTQ1NkY4MTAwQ0ZE
MjlBIC8qIFJ1bkxvb3BPYnNlcnZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyRDc2QkI4MzE5NDU2RjgxMDBDRkQyOUEgLyogUnVuTG9vcE9ic2Vy
dmVyLmNwcCAqLzsgfTsKIAkJMkQ4Mjg3RjYxNkU0QTAzODAwODZCRDAwIC8qIEhpdFRlc3RMb2Nh
dGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RDgyODdGNDE2RTRBMDM4MDA4NkJEMDAgLyogSGl0VGVzdExvY2F0aW9uLmNwcCAqLzsgfTsKQEAg
LTgxOTksOCArODE5Nyw2IEBACiAJCTJENkU0NjgyMTdENjYwRjUwMEVDRjhCQiAvKiBQREZEb2N1
bWVudEltYWdlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
UERGRG9jdW1lbnRJbWFnZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ3
MEJBMTIxODA3NERERjAwMDE5MDhBIC8qIFBsYXRmb3JtQ0FMYXllck1hYy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBQbGF0Zm9ybUNBTGF5ZXJNYWMuaDsgcGF0aCA9IGNhL21h
Yy9QbGF0Zm9ybUNBTGF5ZXJNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ3
MEJBMTQxODA3NEY4NTAwMDE5MDhBIC8qIFBsYXRmb3JtQ0FMYXllci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQbGF0Zm9ybUNBTGF5ZXIuY3BwOyBwYXRoID0gY2Ev
UGxhdGZvcm1DQUxheWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkQ3NEU5
OUIxQTlEM0YzMjAwREZCM0Q0IC8qIEljb25TZXJ2aWNlc1NQSS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJY29uU2VydmljZXNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMkQ3NEU5OUQxQTlENDAyOTAwREZCM0Q0IC8qIExhdW5jaFNlcnZpY2VzU1BJLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExhdW5jaFNlcnZpY2VzU1BJLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJENzZCQjgwMTk0NTYzMjQwMENGRDI5QSAvKiBS
dW5Mb29wT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUnVuTG9v
cE9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJENzZCQjgzMTk0NTZG
ODEwMENGRDI5QSAvKiBSdW5Mb29wT2JzZXJ2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUnVuTG9vcE9ic2VydmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMkQ4Mjg3RjQxNkU0QTAzODAwODZCRDAwIC8qIEhpdFRlc3RMb2NhdGlvbi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaXRUZXN0TG9jYXRpb24uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc3MjAsOCArMTc3MTYsNiBAQAogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQkyRDU5RjFCRTFBMDA0NEM2MDAx
RjNEMjkgLyogRGF0YURldGVjdG9yc1NQSS5oICovLAotCQkJCTJENzRFOTlCMUE5RDNGMzIwMERG
QjNENCAvKiBJY29uU2VydmljZXNTUEkuaCAqLywKLQkJCQkyRDc0RTk5RDFBOUQ0MDI5MDBERkIz
RDQgLyogTGF1bmNoU2VydmljZXNTUEkuaCAqLywKIAkJCQkyRDQxM0Y2MDFBMTg3QTNGMDA0MUE1
MjEgLyogTG9va3VwU1BJLmggKi8sCiAJCQkJMUM2NDY2MjcxQTEyQzNGOTAwOTQ2MDNDIC8qIE5T
Rm9udFNQSS5oICovLAogCQkJCTkzMjFENThGMUEzOTA2RkEwMDgwNTJCRSAvKiBOU0ltbWVkaWF0
ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyU1BJLmggKi8sCkBAIC0yNDMzNyw3ICsyNDMzMSw2IEBA
CiAJCQkJMkUzN0RGREIxMkRCQUZCODAwQTZCMjMzIC8qIERPTVVSTC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQ0Q5REUxODIxN0FBRDZBNDAwRUEzODZEIC8qIERPTVVSTE1lZGlhU291cmNlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxNUM3NzBBNjEwMEQ0MUNEMDA1QkEyNjcgLyogRE9NVmFsaWRpdHlT
dGF0ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMkQ3NEU5OUMxQTlEM0YzMjAwREZCM0Q0IC8qIElj
b25TZXJ2aWNlc1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxQTM3QzAwOTdDNzE1RjAwMTlG
M0Q4IC8qIERPTVZpZXdzLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUMwRkY0OTBFNENFRkREMDA3
RDZGRTUgLyogRE9NV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMx
QzBGRjRCMEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJLaXRBbmltYXRpb25FdmVudEludGVybmFs
LmggaW4gSGVhZGVycyAqLywKQEAgLTI2NTQwLDcgKzI2NTMzLDYgQEAKIAkJCQlCMjIyN0E4ODBE
MDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0dGVybkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUIyMjI3QThDMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQb2ludExpc3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyMjI3QThGMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQb2x5RWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMkQ3NEU5OUUxQTlENDAyOTAwREZCM0Q0IC8qIExhdW5jaFNlcnZpY2Vz
U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDU4RDg1NTFBMTVGNjVGMDBBNUY3MjYgLyogRGF0
YURldGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOTEwRDAwQkYyMjAwNzFCNzgy
IC8qIFNWR1BvbHlnb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5NDBEMDBC
RjIyMDA3MUI3ODIgLyogU1ZHUG9seWxpbmVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ljb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ljb24uaAppbmRleCBjZjk0ZWU4NTRiYWQ4NmQ3MDgx
ZmRiNDdhMTNhODQ0MWQ4MzgzZDY3Li5hYTM5NWM1OTE0ZmQ0ZDViOTc0YWJiMWY0NWNlNmZiOWY4
OTI3ODI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JY29u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5oCkBAIC0yMSwx
NyArMjEsMTYgQEAKICNpZm5kZWYgSWNvbl9oCiAjZGVmaW5lIEljb25faAogCisjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYv
UmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiAjaWYgUExBVEZPUk0oSU9T
KQogI2luY2x1ZGUgIk5hdGl2ZUltYWdlUHRyLmgiCiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0Nv
cmVHcmFwaGljcy5oPgotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNlbGlmIFBMQVRGT1JN
KE1BQykKLSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiBPQkpDX0NMQVNTIE5TSW1hZ2U7CiAj
ZWxpZiBQTEFURk9STShXSU4pCiB0eXBlZGVmIHN0cnVjdCBISUNPTl9fKiBISUNPTjsKQEAgLTQy
LDcgKzQxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX0dka1BpeGJ1ZiBHZGtQaXhidWY7CiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKLWNsYXNzIEludFJlY3Q7Citj
bGFzcyBGbG9hdFJlY3Q7CiAgICAgCiBjbGFzcyBJY29uIDogcHVibGljIFJlZkNvdW50ZWQ8SWNv
bj4gewogcHVibGljOgpAQCAtNTAsNyArNDksNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VY
UE9SVCB+SWNvbigpOwogCi0gICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJ
bnRSZWN0Jik7CisgICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJl
Y3QmKTsKIAogI2lmIFBMQVRGT1JNKFdJTikKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJY29uPiBj
cmVhdGUoSElDT04gaEljb24pIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBJY29uKGhJY29uKSk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9JY29uRWZs
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9JY29uRWZsLmNwcApp
bmRleCA0MGFlYTc3MDQ5YWZiYjNkYmNkNTQ1MjA5OTQ3MGZlMTJhNjQwODhkLi45YzkyYzA4NTNj
MjYxYzc2MGE3YzA4MWY2Yzg3ZTk5MGIxYjg4ZGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvSWNvbkVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0ljb25FZmwuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIFBhc3NS
ZWZQdHI8SWNvbj4gSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JikKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBJY29uOjpwYWludChHcmFwaGljc0NvbnRleHQq
LCBjb25zdCBJbnRSZWN0JikKK3ZvaWQgSWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiwgY29u
c3QgRmxvYXRSZWN0JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ljb25HdGsuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ljb25HdGsuY3BwCmluZGV4IDZjOTFmODM2
MWU5MmYyYWJmMDMwYTJiYzg5Y2RlOTg2MmJhNTA4OWQuLjU5NDVlMWY4YzRiNDc0NDhmMzQ4NWZj
NjRiYjU3NjU3YWY0YzM4ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2d0ay9JY29uR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ndGsvSWNvbkd0ay5jcHAKQEAgLTExMywxMyArMTEzLDEzIEBAIFBhc3NSZWZQdHI8SWNv
bj4gSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFt
ZXMpCiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgSWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQordm9pZCBJY29uOjpwYWludChHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICBpZiAoY29u
dGV4dC0+cGFpbnRpbmdEaXNhYmxlZCgpKQorICAgIGlmIChjb250ZXh0LnBhaW50aW5nRGlzYWJs
ZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gVE9ETzogU2NhbGUvY2xpcCB0aGUgaW1h
Z2UgaWYgbmVjZXNzYXJ5LgotICAgIGNhaXJvX3QqIGNyID0gY29udGV4dC0+cGxhdGZvcm1Db250
ZXh0KCktPmNyKCk7CisgICAgY2Fpcm9fdCogY3IgPSBjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgp
LT5jcigpOwogICAgIGNhaXJvX3NhdmUoY3IpOwogICAgIGdka19jYWlyb19zZXRfc291cmNlX3Bp
eGJ1ZihjciwgbV9pY29uLCByZWN0LngoKSwgcmVjdC55KCkpOwogICAgIGNhaXJvX3BhaW50KGNy
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9JY29u
SU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ljb25JT1MubW0K
aW5kZXggODhiZmNhMDczMTRmYmFhYTA5MDczNjEzY2JiZGIzODRhOTgxZDliNS4uYmUzNTA3NjA5
MzBjYWFiY2MxY2ZlZjNiYTI0YzIxNDI5MDcxMDY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ljb25JT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ljb25JT1MubW0KQEAgLTU1LDIxICs1NSwyMCBAQCBQYXNz
UmVmUHRyPEljb24+IEljb246OmNyZWF0ZUljb25Gb3JJbWFnZShOYXRpdmVJbWFnZVB0ciBpbWFn
ZVJlZikKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEljb24oaW1hZ2VSZWYpKTsKIH0KIAotdm9p
ZCBJY29uOjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIGRl
c3RSZWN0KQordm9pZCBJY29uOjpwYWludChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IEZsb2F0UmVjdCYgZGVzdFJlY3QpCiB7Ci0gICAgaWYgKGNvbnRleHQtPnBhaW50aW5nRGlzYWJs
ZWQoKSkKKyAgICBpZiAoY29udGV4dC5wYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcigqY29udGV4dCk7
CisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOwogCiAg
ICAgZmxvYXQgd2lkdGggPSBDR0ltYWdlR2V0V2lkdGgobV9jZ0ltYWdlLmdldCgpKTsKICAgICBm
bG9hdCBoZWlnaHQgPSBDR0ltYWdlR2V0SGVpZ2h0KG1fY2dJbWFnZS5nZXQoKSk7CiAgICAgRmxv
YXRTaXplIHNpemUod2lkdGgsIGhlaWdodCk7Ci0gICAgRmxvYXRSZWN0IHNyY1JlY3QoMCwgMCwg
d2lkdGgsIGhlaWdodCk7Ci0gICAgQ29sb3JTcGFjZSBjb2xvclNwYWNlID0gQ29sb3JTcGFjZURl
dmljZVJHQjsKKyAgICBGbG9hdFJlY3Qgc3JjUmVjdChGbG9hdFBvaW50KCksIHNpemUpOwogCi0g
ICAgY29udGV4dC0+c2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uSGln
aCk7Ci0gICAgY29udGV4dC0+ZHJhd05hdGl2ZUltYWdlKG1fY2dJbWFnZS5nZXQoKSwgc2l6ZSwg
Y29sb3JTcGFjZSwgZGVzdFJlY3QsIHNyY1JlY3QpOworICAgIGNvbnRleHQuc2V0SW1hZ2VJbnRl
cnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uSGlnaCk7CisgICAgY29udGV4dC5kcmF3TmF0
aXZlSW1hZ2UobV9jZ0ltYWdlLmdldCgpLCBzaXplLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkZXN0
UmVjdCwgc3JjUmVjdCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9JY29uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0ljb25NYWMubW0KaW5kZXggMWZjMDk0ZTQyMTgxMjJiMTNlZDU0YjViOWU2NjA4
NzVhOTdhZmNjZi4uNjg0MWVlNGFkNWNkYWQxYTVmMjczM2Q3ZTEzNDNjOTA3YTNiMWFiOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0KQEAg
LTQ5LDcgKzQ5LDcgQEAgSWNvbjo6fkljb24oKQogUGFzc1JlZlB0cjxJY29uPiBJY29uOjpjcmVh
dGVJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcykKIHsKICAgICBp
ZiAoZmlsZW5hbWVzLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVy
biBudWxscHRyOwogCiAgICAgYm9vbCB1c2VJY29uRnJvbUZpcnN0RmlsZTsKICAgICB1c2VJY29u
RnJvbUZpcnN0RmlsZSA9IGZpbGVuYW1lcy5zaXplKCkgPT0gMTsKQEAgLTU3LDMxICs1NywyOSBA
QCBQYXNzUmVmUHRyPEljb24+IEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYgZmlsZW5hbWVzKQogICAgICAgICAvLyBEb24ndCBwYXNzIHJlbGF0aXZlIGZpbGVu
YW1lcyAtLSB3ZSBkb24ndCB3YW50IGEgcmVzdWx0IHRoYXQgZGVwZW5kcyBvbiB0aGUgY3VycmVu
dCBkaXJlY3RvcnkuCiAgICAgICAgIC8vIE5lZWQgMFUgaGVyZSB0byBkaXNhbWJpZ3VhdGUgU3Ry
aW5nOjpvcGVyYXRvcltdIGZyb20gb3BlcmF0b3IoTlNTdHJpbmcqLCBpbnQpW10KICAgICAgICAg
aWYgKGZpbGVuYW1lc1swXS5pc0VtcHR5KCkgfHwgZmlsZW5hbWVzWzBdWzBVXSAhPSAnLycpCi0g
ICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAg
ICAgIE5TSW1hZ2UqIGltYWdlID0gW1tOU1dvcmtzcGFjZSBzaGFyZWRXb3Jrc3BhY2VdIGljb25G
b3JGaWxlOmZpbGVuYW1lc1swXV07CisgICAgICAgIE5TSW1hZ2UgKmltYWdlID0gW1tOU1dvcmtz
cGFjZSBzaGFyZWRXb3Jrc3BhY2VdIGljb25Gb3JGaWxlOmZpbGVuYW1lc1swXV07CiAgICAgICAg
IGlmICghaW1hZ2UpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSWNvbihpbWFnZSkpOwogICAg
IH0KLSAgICBOU0ltYWdlKiBpbWFnZSA9IFtOU0ltYWdlIGltYWdlTmFtZWQ6TlNJbWFnZU5hbWVN
dWx0aXBsZURvY3VtZW50c107CisgICAgTlNJbWFnZSAqaW1hZ2UgPSBbTlNJbWFnZSBpbWFnZU5h
bWVkOk5TSW1hZ2VOYW1lTXVsdGlwbGVEb2N1bWVudHNdOwogICAgIGlmICghaW1hZ2UpCi0gICAg
ICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHJldHVybiBhZG9w
dFJlZihuZXcgSWNvbihpbWFnZSkpOwogfQogCi12b2lkIEljb246OnBhaW50KEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3ZvaWQgSWNvbjo6cGFpbnQoR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAgaWYg
KGNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkKKyAgICBpZiAoY29udGV4dC5wYWludGluZ0Rp
c2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIExvY2FsQ3VycmVudEdyYXBoaWNzQ29u
dGV4dCBsb2NhbEN1cnJlbnRHQyhjb250ZXh0KTsKKyAgICBMb2NhbEN1cnJlbnRHcmFwaGljc0Nv
bnRleHQgbG9jYWxDdXJyZW50R0MoJmNvbnRleHQpOwogCi0gICAgW21fbnNJbWFnZS5nZXQoKSBk
cmF3SW5SZWN0OnJlY3QKLSAgICAgICAgZnJvbVJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBbbV9uc0lt
YWdlLmdldCgpIHNpemVdLndpZHRoLCBbbV9uc0ltYWdlLmdldCgpIHNpemVdLmhlaWdodCkKLSAg
ICAgICAgb3BlcmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3ZlciBmcmFjdGlvbjoxLjBmXTsKKyAg
ICBbbV9uc0ltYWdlIGRyYXdJblJlY3Q6cmVjdCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIFtt
X25zSW1hZ2Ugc2l6ZV0ud2lkdGgsIFttX25zSW1hZ2Ugc2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246
TlNDb21wb3NpdGVTb3VyY2VPdmVyIGZyYWN0aW9uOjEuMGZdOwogfQogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSWNvbldpbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSWNvbldpbi5jcHAKaW5kZXggZjNiMGQw
Yjc4YWM4OGIwOTMzNDkwYWI0ZmVkZmNiZGJiMjg3YThlYi4uZWU4OGUyMDViYzEzN2U1NjIwMDQw
YzBjMWZmYmRmOTA4YTRlZmEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0ljb25XaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9JY29uV2luLmNwcApAQCAtNzMsMTIgKzczLDEyIEBAIFBhc3NSZWZQdHI8SWNv
bj4gSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFt
ZXMpCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJY29uKGhJY29uKSk7CiB9CiAKLXZvaWQgSWNv
bjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByKQordm9p
ZCBJY29uOjpwYWludChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYg
cikKIHsKLSAgICBpZiAoY29udGV4dC0+cGFpbnRpbmdEaXNhYmxlZCgpKQorICAgIGlmIChjb250
ZXh0LnBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTG9jYWxXaW5k
b3dzQ29udGV4dCB3aW5kb3dDb250ZXh0KGNvbnRleHQsIHIpOworICAgIExvY2FsV2luZG93c0Nv
bnRleHQgd2luZG93Q29udGV4dCgmY29udGV4dCwgZW5jbG9zaW5nSW50UmVjdChyKSk7CiAgICAg
RHJhd0ljb25FeCh3aW5kb3dDb250ZXh0LmhkYygpLCByLngoKSwgci55KCksIG1faEljb24sIHIu
d2lkdGgoKSwgci5oZWlnaHQoKSwgMCwgMCwgRElfTk9STUFMKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL21hYy9JY29uU2VydmljZXNTUEkuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9tYWMvSWNvblNlcnZpY2VzU1BJLmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDRjNjU5MjQ0N2I2MzFkY2M5ZWYyYzMyYzI2ZTQwNDFmZjQ4Yzhk
NzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vc3BpL21hYy9JY29uU2VydmljZXNTUEkuaAorKysgL2Rldi9udWxs
CkBAIC0xLDM0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJMYXVuY2hTZXJ2aWNlc1NQ
SS5oIgotI2ltcG9ydCAiU29mdExpbmtpbmcuaCIKLSNpbXBvcnQgPG9iamMvcnVudGltZS5oPgot
Ci1TT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUksoSWNvblNlcnZpY2VzKQotCi10eXBlZGVmIFVJ
bnQzMiBJU1NjYWxlOwotCi1TT0ZUX0xJTksoSWNvblNlcnZpY2VzLCBfSVNDcmVhdGVDR0ltYWdl
RnJvbUJpbmRpbmdXaXRoU2l6ZVNjYWxlQW5kT3B0aW9ucywgQ0dJbWFnZVJlZiwgKExTQmluZGlu
Z1JlZiBiaW5kaW5nLCBDR1NpemUgc2l6ZSwgSVNTY2FsZSBzY2FsZSwgQ0ZEaWN0aW9uYXJ5UmVm
IG9wdGlvbnMpLCAoYmluZGluZywgc2l6ZSwgc2NhbGUsIG9wdGlvbnMpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL21hYy9MYXVuY2hTZXJ2aWNlc1NQSS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL21hYy9MYXVuY2hTZXJ2aWNlc1NQSS5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NThlOGFlZGZkYzJmODQyYzRkNzhlNWMwMmQ3YjZlM2Jh
Njk5NjIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9tYWMvTGF1bmNoU2VydmljZXNTUEkuaAorKysgL2Rl
di9udWxsCkBAIC0xLDM3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWYgVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKLQotI2luY2x1ZGUgPExhdW5jaFNlcnZpY2VzL0xhdW5jaFNlcnZpY2VzUHJpdi5o
PgotCi0jZWxzZQotCi1XVEZfRVhURVJOX0NfQkVHSU4KLXR5cGVkZWYgc3RydWN0IF9MU0JpbmRp
bmcqIExTQmluZGluZ1JlZjsKLUxTQmluZGluZ1JlZiBfTFNCaW5kaW5nQ3JlYXRlV2l0aFVSTChD
RkFsbG9jYXRvclJlZiwgQ0ZVUkxSZWYpOwotV1RGX0VYVEVSTl9DX0VORAotCi0jZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJv
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wu
Y3BwCmluZGV4IGIyYTk5OTAwMTA4MTVhMWZiMzMyMTVkMWY5NjA2ODcxYzhmZDc2YjUuLmNiYjFh
NzM4NWJlZjZlMGJlZjY1ZmVjZDA5OTBkODdjZWM0NGM1NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcApAQCAtMTg2LDcg
KzE4Niw3IEBAIHZvaWQgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnBhaW50T2JqZWN0KFBhaW50
SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2luCiAgICAgICAgICAgICB9CiAjZWxzZQog
ICAgICAgICAgICAgLy8gRHJhdyB0aGUgZmlsZSBpY29uCi0gICAgICAgICAgICBpbnB1dEVsZW1l
bnQoKS5pY29uKCktPnBhaW50KHBhaW50SW5mby5jb250ZXh0LCBJbnRSZWN0KHJvdW5kVG9JbnQo
aWNvblgpLCByb3VuZFRvSW50KGljb25ZKSwgaWNvbldpZHRoLCBpY29uSGVpZ2h0KSk7CisgICAg
ICAgICAgICBpbnB1dEVsZW1lbnQoKS5pY29uKCktPnBhaW50KCpwYWludEluZm8uY29udGV4dCwg
SW50UmVjdChyb3VuZFRvSW50KGljb25YKSwgcm91bmRUb0ludChpY29uWSksIGljb25XaWR0aCwg
aWNvbkhlaWdodCkpOwogI2VuZGlmCiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KaW5kZXggOGJmODg4ZDQyMDA2NjE1ZTI4MzNmZmNl
ZTlhOThmM2FhMzFiMjMzNC4uN2M5NGI3MmRmZTk1ZDhjMzIyYzBmZGQ2NjA2MzA5N2Q0ZTIxMTVk
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQpAQCAtMTA1
NCw3ICsxMDU0LDcgQEAgYm9vbCBSZW5kZXJUaGVtZUlPUzo6cGFpbnRGaWxlVXBsb2FkSWNvbkRl
Y29yYXRpb25zKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFIKIAogICAgIC8vIEZvcmVncm91
bmQgcGljdHVyZSBmcmFtZSBhbmQgaWNvbi4KICAgICBwYWludEluZm8uY29udGV4dC0+ZmlsbFJv
dW5kZWRSZWN0KEZsb2F0Um91bmRlZFJlY3QodGh1bWJuYWlsUGljdHVyZUZyYW1lUmVjdCwgY29y
bmVyU2l6ZSwgY29ybmVyU2l6ZSwgY29ybmVyU2l6ZSwgY29ybmVyU2l6ZSksIHBpY3R1cmVGcmFt
ZUNvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAgICBpY29uLT5wYWludChwYWludEluZm8u
Y29udGV4dCwgdGh1bWJuYWlsUmVjdCk7CisgICAgaWNvbi0+cGFpbnQoKnBhaW50SW5mby5jb250
ZXh0LCB0aHVtYm5haWxSZWN0KTsKIAogICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQppbmRleCBiNGYwNWNkZmFkNWYzOTQwZGY1
ZmIxOGUyOGQyYzJkMzIwZTg3OGJjLi5hZWFlZDhhMTU0MTYwMDM1ZDU3YTA1MTJiZjZiN2I5MjE3
ZWQwODUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBA
IC00MiwxMCArNDIsOSBAQAogI2ltcG9ydCAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2ltcG9ydCAi
SFRNTE5hbWVzLmgiCiAjaW1wb3J0ICJIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgiCi0jaW1wb3J0
ICJJY29uU2VydmljZXNTUEkuaCIKKyNpbXBvcnQgIkljb24uaCIKICNpbXBvcnQgIkltYWdlLmgi
CiAjaW1wb3J0ICJJbWFnZUJ1ZmZlci5oIgotI2ltcG9ydCAiTGF1bmNoU2VydmljZXNTUEkuaCIK
ICNpbXBvcnQgIkxvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiTG9jYWxp
emVkU3RyaW5ncy5oIgogI2ltcG9ydCAiTWVkaWFDb250cm9sRWxlbWVudHMuaCIKQEAgLTIyODAs
MjAgKzIyNzksMTMgQEAgc3RhdGljIHZvaWQgcGFpbnRBdHRhY2htZW50SWNvbkJhY2tncm91bmQo
Y29uc3QgUmVuZGVyQXR0YWNobWVudCYsIEdyYXBoaWNzQ29udGUKIAogc3RhdGljIHZvaWQgcGFp
bnRBdHRhY2htZW50SWNvbihjb25zdCBSZW5kZXJBdHRhY2htZW50JiBhdHRhY2htZW50LCBHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIEF0dGFjaG1lbnRMYXlvdXQmIGxheW91dCkKIHsKLSAgICBG
aWxlKiBmaWxlID0gYXR0YWNobWVudC5hdHRhY2htZW50RWxlbWVudCgpLmZpbGUoKTsKLSAgICBS
ZXRhaW5QdHI8TFNCaW5kaW5nUmVmPiBsc0JpbmRpbmcgPSBhZG9wdENGKF9MU0JpbmRpbmdDcmVh
dGVXaXRoVVJMKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDRlVSTFJlZilbTlNVUkwgZmlsZVVSTFdp
dGhQYXRoOmZpbGUgPyBmaWxlLT5wYXRoKCkgOiBTdHJpbmcoKV0pKTsKLSAgICBpZiAoIWxzQmlu
ZGluZykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHRha2Ug
dHJhbnNmb3JtcyBhbmQgcGFnZSBzY2FsZSBpbnRvIGFjY291bnQsIG5vdCBqdXN0IGRldmljZVNj
YWxlRmFjdG9yLgotICAgIEZsb2F0U2l6ZSBpY29uU2l6ZUluUG9pbnRzKGF0dGFjaG1lbnRJY29u
U2l6ZSwgYXR0YWNobWVudEljb25TaXplKTsKLSAgICBpY29uU2l6ZUluUG9pbnRzLnNjYWxlKGF0
dGFjaG1lbnQuZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKLQotICAgIFJldGFpblB0
cjxDR0ltYWdlUmVmPiBpY29uID0gYWRvcHRDRihfSVNDcmVhdGVDR0ltYWdlRnJvbUJpbmRpbmdX
aXRoU2l6ZVNjYWxlQW5kT3B0aW9ucyhsc0JpbmRpbmcuZ2V0KCksIGljb25TaXplSW5Qb2ludHMs
IDEsIG5pbCkpOworICAgIFZlY3RvcjxTdHJpbmc+IGZpbGVuYW1lczsKKyAgICBpZiAoRmlsZSog
ZmlsZSA9IGF0dGFjaG1lbnQuYXR0YWNobWVudEVsZW1lbnQoKS5maWxlKCkpCisgICAgICAgIGZp
bGVuYW1lcy5hcHBlbmQoZmlsZS0+cGF0aCgpKTsKKyAgICBSZWZQdHI8SWNvbj4gaWNvbiA9IElj
b246OmNyZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpOwogICAgIGlmICghaWNvbikKICAgICAg
ICAgcmV0dXJuOwotCi0gICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoaWNvbi5nZXQoKSwgaWNv
blNpemVJblBvaW50cywgQ29sb3JTcGFjZURldmljZVJHQiwgbGF5b3V0Lmljb25SZWN0LCBGbG9h
dFJlY3QoRmxvYXRQb2ludCgpLCBpY29uU2l6ZUluUG9pbnRzKSk7CisgICAgaWNvbi0+cGFpbnQo
Y29udGV4dCwgbGF5b3V0Lmljb25SZWN0KTsKIH0KIAogc3RhdGljIHZvaWQgYWRkQXR0YWNobWVu
dExhYmVsQmFja2dyb3VuZFJpZ2h0Q29ybmVyKFBhdGgmIHBhdGgsIGNvbnN0IEZsb2F0UmVjdCog
ZnJvbVJlY3QsIGNvbnN0IEZsb2F0UmVjdCogdG9SZWN0KQo=
</data>
<flag name="review"
          id="272832"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>