<?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>14044</bug_id>
          
          <creation_ts>2007-06-08 22:45:01 -0700</creation_ts>
          <short_desc>Autogenerate the JS bindings for HTMLCollection</short_desc>
          <delta_ts>2007-06-08 23:11:32 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>13779</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>8070</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-06-08 22:45:01 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8073</commentid>
    <comment_count>1</comment_count>
      <attachid>14909</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-06-08 23:05:12 -0700</bug_when>
    <thetext>Created attachment 14909
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8074</commentid>
    <comment_count>2</comment_count>
      <attachid>14909</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2007-06-08 23:07:31 -0700</bug_when>
    <thetext>Comment on attachment 14909
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8075</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-06-08 23:11:32 -0700</bug_when>
    <thetext>Landed in r22080.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14909</attachid>
            <date>2007-06-08 23:05:12 -0700</date>
            <delta_ts>2007-06-08 23:07:31 -0700</delta_ts>
            <desc>patch</desc>
            <filename>autoHTMLCollection.diff</filename>
            <type>text/plain</type>
            <size>49745</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMjA3OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDkgQEAKKzIwMDctMDYtMDggIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCBm
b3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwNDQKKyAgICAgICAg
QXV0b2dlbmVyYXRlIHRoZSBKUyBiaW5kaW5ncyBmb3IgSFRNTENvbGxlY3Rpb24KKworICAgICAg
ICAtIGFsc28gbW92ZXMgSlNIVE1MQWxsQ29sbGVjdGlvbiBpbnRvIGl0J3Mgb3duIGZpbGUuCisK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFdlYkNvcmUucHJvOgor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SlNIVE1MQWxsQ29sbGVjdGlvbjo6SlNIVE1MQWxsQ29sbGVjdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpKU0hUTUxBbGxDb2xsZWN0aW9uOjp0b0Jvb2xlYW4pOgorICAgICAgICAoV2ViQ29y
ZTo6SlNIVE1MQWxsQ29sbGVjdGlvbjo6bWFzcXVlcmFkZUFzVW5kZWZpbmVkKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpnZXROYW1lZEl0ZW1zKToKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTENvbGxl
Y3Rpb246OmNhbGxBc0Z1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTENvbGxlY3Rp
b246OmltcGxlbWVudHNDYWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTENvbGxlY3Rpb246
OmNhbkdldEl0ZW1zRm9yTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxDb2xsZWN0aW9u
OjpuYW1lR2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTENvbGxlY3Rpb246Oml0ZW0p
OgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MQ29sbGVjdGlvbjo6bmFtZWRJdGVtKToKKyAgICAg
ICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSFRNTERvY3VtZW50
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTERvY3VtZW50OjpuYW1lR2V0dGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTERvY3VtZW50OjphbGwpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL2tq
c19odG1sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQ29uc3RydWN0b3JJbXA6OkltYWdl
Q29uc3RydWN0b3JJbXApOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VDb25zdHJ1Y3RvckltcDo6
Y29uc3RydWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9ranNfaHRtbC5oOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VDb25zdHJ1Y3RvckltcDo6aW1wbGVtZW50c0NvbnN0cnVjdCk6CisgICAg
ICAgICogYmluZGluZ3MvanMva2pzX3dpbmRvdy5jcHA6CisgICAgICAgIChLSlM6OldpbmRvdzo6
bmFtZWRJdGVtR2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVV0aWxpdHkubW06
CisgICAgICAgIChLSlM6OmNyZWF0ZURPTVdyYXBwZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIGh0bWwvSFRNTENvbGxlY3Rpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbGxlY3Rpb246OnRhZ3MpOgorICAgICAgICAq
IGh0bWwvSFRNTENvbGxlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9u
Ojpjb2xsZWN0aW9uVHlwZSk6CisgICAgICAgICogaHRtbC9IVE1MQ29sbGVjdGlvbi5pZGw6Cisg
ICAgICAgICogaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaWRsOgorCiAyMDA3LTA2LTA4ICBK
dXN0aW4gR2FyY2lhICA8anVzdGluLmdhcmNpYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgSm9obi4KSW5kZXg6IFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDIyMDc5KQorKysgV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0zNDEsNiArMzQxLDcg
QEAgYWxsIDogXAogICAgIEpTSFRNTEJSRWxlbWVudC5oIFwKICAgICBKU0hUTUxCdXR0b25FbGVt
ZW50LmggXAogICAgIEpTSFRNTENhbnZhc0VsZW1lbnQuaCBcCisgICAgSlNIVE1MQ29sbGVjdGlv
bi5oIFwKICAgICBKU0hUTUxETGlzdEVsZW1lbnQuaCBcCiAgICAgSlNIVE1MRGlyZWN0b3J5RWxl
bWVudC5oIFwKICAgICBKU0hUTUxEaXZFbGVtZW50LmggXApAQCAtNTUwLDcgKzU1MSw2IEBAIGFs
bCA6IFwKICAgICBYUGF0aEdyYW1tYXIuY3BwIFwKICAgICBranNfY3NzLmx1dC5oIFwKICAgICBr
anNfZXZlbnRzLmx1dC5oIFwKLSAgICBranNfaHRtbC5sdXQuaCBcCiAgICAga2pzX25hdmlnYXRv
ci5sdXQuaCBcCiAgICAga2pzX3dpbmRvdy5sdXQuaCBcCiAgICAga3N2Z2Nzc3Byb3BlcnRpZXMu
aCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2Vi
Q29yZS5wcm8JKHJldmlzaW9uIDIyMDc5KQorKysgV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2lu
ZyBjb3B5KQpAQCAtMTQyLDcgKzE0Miw2IEBAIExVVF9GSUxFUyArPSBcCiAgICAgYmluZGluZ3Mv
anMvSlNYU0xUUHJvY2Vzc29yLmNwcCBcCiAgICAgYmluZGluZ3MvanMva2pzX2Nzcy5jcHAgXAog
ICAgIGJpbmRpbmdzL2pzL2tqc19ldmVudHMuY3BwIFwKLSAgICBiaW5kaW5ncy9qcy9ranNfaHRt
bC5jcHAgXAogICAgIGJpbmRpbmdzL2pzL2tqc19uYXZpZ2F0b3IuY3BwIFwKICAgICBiaW5kaW5n
cy9qcy9ranNfd2luZG93LmNwcAogCkBAIC0yMTEsNiArMjEwLDcgQEAgSURMX0JJTkRJTkdTICs9
IFwKICAgICBodG1sL0hUTUxCUkVsZW1lbnQuaWRsIFwKICAgICBodG1sL0hUTUxCdXR0b25FbGVt
ZW50LmlkbCBcCiAgICAgaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGwgXAorICAgIGh0bWwvSFRN
TENvbGxlY3Rpb24uaWRsIFwKICAgICBodG1sL0hUTUxEaXJlY3RvcnlFbGVtZW50LmlkbCBcCiAg
ICAgaHRtbC9IVE1MRGl2RWxlbWVudC5pZGwgXAogICAgIGh0bWwvSFRNTERMaXN0RWxlbWVudC5p
ZGwgXApAQCAtMjc2LDYgKzI3Niw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGJpbmRpbmdzL2pzL0pT
RE9NV2luZG93Q3VzdG9tLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNFdmVudFRhcmdldE5vZGUu
Y3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU0hUTUxBcHBsZXRFbGVtZW50Q3VzdG9tLmNwcCBcCisg
ICAgYmluZGluZ3MvanMvSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAgXAogICAgIGJpbmRpbmdz
L2pzL0pTSFRNTERvY3VtZW50Q3VzdG9tLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNIVE1MRWxl
bWVudEN1c3RvbS5jcHAgXAogICAgIGJpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRXcmFwcGVyRmFj
dG9yeS5jcHAgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHJldmlzaW9uIDIyMDc5KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTM3Miw3ICszNzIsNiBAQAogCQk2NTY1ODFGMDA5
RDE1MDhEMDAwRTYxRDcgLyogSlNYU0xUUHJvY2Vzc29yLmx1dC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2NTgxRDkwOUQxNTA4RDAwMEU2MUQ3IC8q
IEpTWFNMVFByb2Nlc3Nvci5sdXQuaCAqLzsgfTsKIAkJNjU2NTgxRjEwOUQxNTA4RDAwMEU2MUQ3
IC8qIGtqc19jc3MubHV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA2NTY1ODFEQTA5RDE1MDhEMDAwRTYxRDcgLyoga2pzX2Nzcy5sdXQuaCAqLzsgfTsK
IAkJNjU2NTgxRjMwOUQxNTA4RDAwMEU2MUQ3IC8qIGtqc19ldmVudHMubHV0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTY1ODFEQzA5RDE1MDhEMDAw
RTYxRDcgLyoga2pzX2V2ZW50cy5sdXQuaCAqLzsgfTsKLQkJNjU2NTgxRjQwOUQxNTA4RDAwMEU2
MUQ3IC8qIGtqc19odG1sLmx1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNjU2NTgxREQwOUQxNTA4RDAwMEU2MUQ3IC8qIGtqc19odG1sLmx1dC5oICov
OyB9OwogCQk2NTY1ODFGNTA5RDE1MDhEMDAwRTYxRDcgLyoga2pzX25hdmlnYXRvci5sdXQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NjU4MURFMDlE
MTUwOEQwMDBFNjFENyAvKiBranNfbmF2aWdhdG9yLmx1dC5oICovOyB9OwogCQk2NTY1ODFGODA5
RDE1MDhEMDAwRTYxRDcgLyoga2pzX3dpbmRvdy5sdXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NjU4MUUxMDlEMTUwOEQwMDBFNjFENyAvKiBranNf
d2luZG93Lmx1dC5oICovOyB9OwogCQk2NTY1ODFGQjA5RDE1MDhEMDAwRTYxRDcgLyoga3N2Z2Nz
c3Byb3BlcnRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDY1NjU4MUU0MDlEMTUwOEQwMDBFNjFENyAvKiBrc3ZnY3NzcHJvcGVydGllcy5oICovOyB9
OwpAQCAtMjgwNyw2ICsyODA2LDcgQEAKIAkJQkM2REIzNjkwQTFBN0NCNzAwRTVDRDE0IC8qIEds
eXBoUGFnZVRyZWVOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzZEQjM2ODBBMUE3Q0I3MDBFNUNEMTQgLyogR2x5cGhQYWdlVHJlZU5vZGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzZEQjQ3
NDBBMUE5MEZCMDBFNUNEMTQgLyogR2x5cGhQYWdlVHJlZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM2REI0NzMwQTFBOTBGQjAwRTVDRDE0
IC8qIEdseXBoUGFnZVRyZWVOb2RlLmNwcCAqLzsgfTsKIAkJQkM2REI0RDQwQTFBRkVFRjAwRTVD
RDE0IC8qIEdseXBoUGFnZVRyZWVOb2RlTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNkRCNEQzMEExQUZFRUYwMEU1Q0QxNCAvKiBHbHlwaFBh
Z2VUcmVlTm9kZU1hYy5jcHAgKi87IH07CisJCUJDNkRDN0ExMEMxQTRCRkEwMDRFMjAxNyAvKiBK
U0hUTUxBbGxDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzZEQzdBMDBDMUE0QkZBMDA0RTIwMTcgLyogSlNIVE1MQWxsQ29sbGVjdGlv
bi5oICovOyB9OwogCQlCQzZFMkIxQTBDMDRCOTM2MDA0NDRFRjggLyogRE9NSFRNTERvY3VtZW50
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkM2RTJCMTkwQzA0QjkzNjAwNDQ0RUY4IC8qIERPTUhUTUxEb2N1bWVudFByaXZhdGUuaCAqLzsg
fTsKIAkJQkM2RTJCMjkwQzA0Qjk1NDAwNDQ0RUY4IC8qIERPTUhUTUxEb2N1bWVudFByaXZhdGUu
aCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDNkUyQjE5MEMwNEI5MzYwMDQ0NEVGOCAvKiBET01IVE1MRG9jdW1lbnRQcml2YXRl
LmggKi87IH07CiAJCUJDN0Y0NEE4MEI5RTMyNEUwMEE5RDA4MSAvKiBJbWFnZU9ic2VydmVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzdGNDRBNzBC
OUUzMjRFMDBBOUQwODEgLyogSW1hZ2VPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yODU0LDYgKzI4NTQsOSBAQAogCQlCQ0M1QkUw
MDBDMEU5MzExMDAxMUMyREIgLyogSlNDU1NTdHlsZVNoZWV0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzVCREZFMEMwRTkzMTEwMDExQzJEQiAv
KiBKU0NTU1N0eWxlU2hlZXQuY3BwICovOyB9OwogCQlCQ0M1QkUwMTBDMEU5MzExMDAxMUMyREIg
LyogSlNDU1NTdHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQ0M1QkRGRjBDMEU5MzExMDAxMUMyREIgLyogSlNDU1NTdHlsZVNoZWV0Lmgg
Ki87IH07CiAJCUJDQzcxQTEzMEEwRkY5NEQwMDE0RUU2RSAvKiBHbHlwaEJ1ZmZlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDNzFBMTIwQTBGRjk0
RDAwMTRFRTZFIC8qIEdseXBoQnVmZmVyLmggKi87IH07CisJCUJDQ0JBRDNCMEMxOEJGRjgwMENF
ODkwRiAvKiBKU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQ0JBRDNBMEMxOEJGRjgwMENFODkwRiAvKiBKU0hU
TUxDb2xsZWN0aW9uQ3VzdG9tLmNwcCAqLzsgfTsKKwkJQkNDQkFENDAwQzE4QzE0MjAwQ0U4OTBG
IC8qIEpTSFRNTENvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkNDQkFEM0UwQzE4QzE0MjAwQ0U4OTBGIC8qIEpTSFRNTENvbGxlY3Rp
b24uY3BwICovOyB9OworCQlCQ0NCQUQ0MTBDMThDMTQyMDBDRTg5MEYgLyogSlNIVE1MQ29sbGVj
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkND
QkFEM0YwQzE4QzE0MjAwQ0U4OTBGIC8qIEpTSFRNTENvbGxlY3Rpb24uaCAqLzsgfTsKIAkJQkND
RDc0REMwQTRDOEQzNTAwNUZEQTZEIC8qIEhUTUxWaWV3U291cmNlRG9jdW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQ0Q3NERCMEE0QzhEMzUw
MDVGREE2RCAvKiBIVE1MVmlld1NvdXJjZURvY3VtZW50LmggKi87IH07CiAJCUJDQ0Q3NEU1MEE0
QzhEREYwMDVGREE2RCAvKiBIVE1MVmlld1NvdXJjZURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQ0Q3NEU0MEE0QzhEREYwMDVGREE2
RCAvKiBIVE1MVmlld1NvdXJjZURvY3VtZW50LmNwcCAqLzsgfTsKIAkJQkNDRkJBRTgwQjUxNTJF
RDAwMDFGMUQ3IC8qIFRva2VuaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkNDRkJBRTcwQjUxNTJFRDAwMDFGMUQ3IC8qIFRva2VuaXplci5oICov
OyB9OwpAQCAtMzU5NSw3ICszNTk4LDYgQEAKIAkJNjU2NTgxRDkwOUQxNTA4RDAwMEU2MUQ3IC8q
IEpTWFNMVFByb2Nlc3Nvci5sdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTWFNMVFByb2Nlc3Nvci5sdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU2
NTgxREEwOUQxNTA4RDAwMEU2MUQ3IC8qIGtqc19jc3MubHV0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBranNfY3NzLmx1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk2NTY1ODFEQzA5RDE1MDhEMDAwRTYxRDcgLyoga2pzX2V2ZW50cy5sdXQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGtqc19ldmVudHMubHV0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTY1NjU4MUREMDlEMTUwOEQwMDBFNjFENyAvKiBranNfaHRtbC5s
dXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGtqc19odG1sLmx1dC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTY1ODFERTA5RDE1MDhEMDAwRTYxRDcgLyog
a2pzX25hdmlnYXRvci5sdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGtq
c19uYXZpZ2F0b3IubHV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NjU4MUUx
MDlEMTUwOEQwMDBFNjFENyAvKiBranNfd2luZG93Lmx1dC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0ga2pzX3dpbmRvdy5sdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNjU2NTgxRTIwOUQxNTA4RDAwMEU2MUQ3IC8qIGtzdmdjc3Nwcm9wZXJ0aWVzLmMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBrc3ZnY3NzcHJvcGVydGllcy5jOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjA5NSw2ICs2MDk3LDcgQEAKIAkJQkM2REIzNjgw
QTFBN0NCNzAwRTVDRDE0IC8qIEdseXBoUGFnZVRyZWVOb2RlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBHbHlwaFBhZ2VUcmVlTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQzZEQjQ3MzBBMUE5MEZCMDBFNUNEMTQgLyogR2x5cGhQYWdlVHJlZU5vZGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdseXBoUGFnZVRyZWVO
b2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM2REI0RDMwQTFBRkVFRjAw
RTVDRDE0IC8qIEdseXBoUGFnZVRyZWVOb2RlTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBHbHlwaFBhZ2VUcmVlTm9kZU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUJDNkRDN0EwMEMxQTRCRkEwMDRFMjAxNyAvKiBKU0hUTUxBbGxDb2xs
ZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxBbGxDb2xs
ZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNkUyQjE5MEMwNEI5MzYw
MDQ0NEVGOCAvKiBET01IVE1MRG9jdW1lbnRQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBET01IVE1MRG9jdW1lbnRQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDN0IyQUY4MDQ1MDgyNDEwMEE4MDAwRiAvKiBTY3JvbGxCYXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsQmFy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9
OwogCQlCQzdCMkFGOTA0NTA4MjQxMDBBODAwMEYgLyogUGxhdGZvcm1TY3JvbGxCYXJNYWMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdp
ZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBQbGF0Zm9ybVNjcm9sbEJhck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC02MTQ0LDYgKzYxNDcsOSBAQAogCQlCQ0M1QkRG
RjBDMEU5MzExMDAxMUMyREIgLyogSlNDU1NTdHlsZVNoZWV0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU0NTU1N0eWxlU2hlZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkNDNzFBMTIwQTBGRjk0RDAwMTRFRTZFIC8qIEdseXBoQnVmZmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHbHlwaEJ1ZmZlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQ0M4Q0ZDQTA5ODZDRDI0MDAxNDBCRjIgLyogQ29sb3JEYXRhLmdw
ZXJmICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDb2xvckRhdGEuZ3BlcmY7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUJDQ0JBRDNBMEMxOEJGRjgwMENFODkwRiAvKiBKU0hUTUxDb2xs
ZWN0aW9uQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
SFRNTENvbGxlY3Rpb25DdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlC
Q0NCQUQzRTBDMThDMTQyMDBDRTg5MEYgLyogSlNIVE1MQ29sbGVjdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MQ29sbGVjdGlvbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDQ0JBRDNGMEMxOEMxNDIwMENFODkwRiAvKiBKU0hU
TUxDb2xsZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxD
b2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQ0Q3NERCMEE0QzhE
MzUwMDVGREE2RCAvKiBIVE1MVmlld1NvdXJjZURvY3VtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBIVE1MVmlld1NvdXJjZURvY3VtZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUJDQ0Q3NEU0MEE0QzhEREYwMDVGREE2RCAvKiBIVE1MVmlld1NvdXJj
ZURvY3VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1M
Vmlld1NvdXJjZURvY3VtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkND
RkJBRTcwQjUxNTJFRDAwMDFGMUQ3IC8qIFRva2VuaXplci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVG9rZW5pemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC02NDYwLDYgKzY0NjYsOCBAQAogCQkxNERGQjMzRjBBN0RGNzYzMDAxOEY3NjkgLyogRGVyaXZl
ZCBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJ
CQlCQ0NCQUQzRTBDMThDMTQyMDBDRTg5MEYgLyogSlNIVE1MQ29sbGVjdGlvbi5jcHAgKi8sCisJ
CQkJQkNDQkFEM0YwQzE4QzE0MjAwQ0U4OTBGIC8qIEpTSFRNTENvbGxlY3Rpb24uaCAqLywKIAkJ
CQk2NURGMzFEODA5RDFDMTIyMDAwQkUzMjUgLyogSlNBdHRyLmNwcCAqLywKIAkJCQk2NURGMzFE
OTA5RDFDMTIzMDAwQkUzMjUgLyogSlNBdHRyLmggKi8sCiAJCQkJNjVERjMyMzMwOUQxREU2NTAw
MEJFMzI1IC8qIEpTQ2FudmFzR3JhZGllbnQuY3BwICovLApAQCAtNzAyOSw3ICs3MDM3LDYgQEAK
IAkJCQlCQ0Q5QzJDNTBDMTdCNkVDMDA1QzkwQTIgLyogSlNFdmVudFRhcmdldE5vZGUubHV0Lmgg
Ki8sCiAJCQkJNjU2NTgxREEwOUQxNTA4RDAwMEU2MUQ3IC8qIGtqc19jc3MubHV0LmggKi8sCiAJ
CQkJNjU2NTgxREMwOUQxNTA4RDAwMEU2MUQ3IC8qIGtqc19ldmVudHMubHV0LmggKi8sCi0JCQkJ
NjU2NTgxREQwOUQxNTA4RDAwMEU2MUQ3IC8qIGtqc19odG1sLmx1dC5oICovLAogCQkJCTY1NjU4
MURFMDlEMTUwOEQwMDBFNjFENyAvKiBranNfbmF2aWdhdG9yLmx1dC5oICovLAogCQkJCTY1NjU4
MUUxMDlEMTUwOEQwMDBFNjFENyAvKiBranNfd2luZG93Lmx1dC5oICovLAogCQkJCTY1NjU4MUUy
MDlEMTUwOEQwMDBFNjFENyAvKiBrc3ZnY3NzcHJvcGVydGllcy5jICovLApAQCAtNzMwOCw2ICs3
MzE1LDcgQEAKIAkJODU0RjEyQUMwQThFQkMxODAwMDk0MEI1IC8qIENvcmUgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTg1OEMzOTUxMEFBOTAyNEMwMEIx
ODdBNCAvKiBDU1MgKi8sCiAJCQkJODU2QzhBRTIwQTkxMjY0OTAwNUM2ODdCIC8qIERPTU9iamVj
dC5oICovLAogCQkJCTg1NkM4QUUzMEE5MTI2NDkwMDVDNjg3QiAvKiBET01PYmplY3QubW0gKi8s
CiAJCQkJOTNDODQxRkUwOUNFODU4MzAwREZGNUU1IC8qIERPTUltcGxlbWVudGF0aW9uRnJvbnQu
Y3BwICovLApAQCAtOTE5Niw2ICs5MjA0LDcgQEAKIAkJCQlCQ0Q5QzI2OTBDMTdBQTgxMDA1Qzkw
QTIgLyogSlNET01FeGNlcHRpb25Db25zdHJ1Y3Rvci5oICovLAogCQkJCUJDRDlDMjZBMEMxN0FB
ODEwMDVDOTBBMiAvKiBKU0V2ZW50VGFyZ2V0Tm9kZS5jcHAgKi8sCiAJCQkJQkNEOUMyNkIwQzE3
QUE4MTAwNUM5MEEyIC8qIEpTRXZlbnRUYXJnZXROb2RlLmggKi8sCisJCQkJQkM2REM3QTAwQzFB
NEJGQTAwNEUyMDE3IC8qIEpTSFRNTEFsbENvbGxlY3Rpb24uaCAqLywKIAkJCQk5MzhFNjVGNjA5
RjA5ODVEMDA4QTQ4RUMgLyogSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCAqLywKIAkJ
CQk5MzhFNjVGMDA5RjA5ODQwMDA4QTQ4RUMgLyogSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5
LmggKi8sCiAJCQkJQTgwRTdFNjQwQTFBODJFQzAwN0ZCOEM1IC8qIEpTSFRNTElucHV0RWxlbWVu
dEJhc2UuY3BwICovLApAQCAtOTIzOCw3ICs5MjQ3LDYgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJ
CTg1QjIzMjI2MEE4QkYzQTEwMEZERjQ3QiAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJODU0
RjEyQUMwQThFQkMxODAwMDk0MEI1IC8qIENvcmUgKi8sCi0JCQkJODU4QzM5NTEwQUE5MDI0QzAw
QjE4N0E0IC8qIENTUyAqLywKIAkJCQk4NTQ5NDkyRDBBQzg1QTBBMDA4QUIwMzUgLyogU1ZHICov
LAogCQkJCTg1NDA3NTQyMEFENkM3M0UwMDYyMEM1NyAvKiBET01FeGNlcHRpb25zICovLAogCQkJ
CTg1OUI3RkI5MEE4RDI4ODgwMEE1RjFFQSAvKiBDb2RlR2VuZXJhdG9yT2JqQy5wbSAqLywKQEAg
LTkyODUsNiArOTI5Myw3IEBACiAJCQkJOTI5MjY0NzYwQjYxRkM3MjAwQjQxRDM0IC8qIEpTRG9j
dW1lbnRDdXN0b20uY3BwICovLAogCQkJCUJDRDlDMjVFMEMxN0FBNjcwMDVDOTBBMiAvKiBKU0RP
TVdpbmRvd0N1c3RvbS5jcHAgKi8sCiAJCQkJQkM0RURFRjMwQzA4RjNGQjAwN0VERDQ5IC8qIEpT
SFRNTEFwcGxldEVsZW1lbnRDdXN0b20uY3BwICovLAorCQkJCUJDQ0JBRDNBMEMxOEJGRjgwMENF
ODkwRiAvKiBKU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcCAqLywKIAkJCQlCQzUxNTgwQTBDMDNE
NDA0MDA4QkIwRUUgLyogSlNIVE1MRG9jdW1lbnRDdXN0b20uY3BwICovLAogCQkJCUJDNTgyM0Y0
MEMwQTk4REYwMDUzRjFCNSAvKiBKU0hUTUxFbGVtZW50Q3VzdG9tLmNwcCAqLywKIAkJCQlCQzZE
NDRCRDBDMDdFRkI2MDA3MkQyQzkgLyogSlNIVE1MRW1iZWRFbGVtZW50Q3VzdG9tLmNwcCAqLywK
QEAgLTEwMzkxLDcgKzEwNDAwLDYgQEAKIAkJCQk2NTY1ODFGMDA5RDE1MDhEMDAwRTYxRDcgLyog
SlNYU0xUUHJvY2Vzc29yLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2NTgxRjEwOUQxNTA4
RDAwMEU2MUQ3IC8qIGtqc19jc3MubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTY1ODFGMzA5
RDE1MDhEMDAwRTYxRDcgLyoga2pzX2V2ZW50cy5sdXQuaCBpbiBIZWFkZXJzICovLAotCQkJCTY1
NjU4MUY0MDlEMTUwOEQwMDBFNjFENyAvKiBranNfaHRtbC5sdXQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTY1NjU4MUY1MDlEMTUwOEQwMDBFNjFENyAvKiBranNfbmF2aWdhdG9yLmx1dC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNjU2NTgxRjgwOUQxNTA4RDAwMEU2MUQ3IC8qIGtqc193aW5kb3cubHV0
LmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTY1ODFGQjA5RDE1MDhEMDAwRTYxRDcgLyoga3N2Z2Nz
c3Byb3BlcnRpZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMTE1NDIsNiArMTE1NTAsOCBAQAogCQkJ
CUJDRDlDMkMzMEMxN0I2OUUwMDVDOTBBMiAvKiBKU05vZGVMaXN0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQ0Q5QzJDNjBDMTdCNkVDMDA1QzkwQTIgLyogSlNET01FeGNlcHRpb25Db25zdHJ1Y3Rv
ci5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRDlDMkM3MEMxN0I2RUMwMDVDOTBBMiAvKiBK
U0V2ZW50VGFyZ2V0Tm9kZS5sdXQuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDQ0JBRDQxMEMxOEMx
NDIwMENFODkwRiAvKiBKU0hUTUxDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzZE
QzdBMTBDMUE0QkZBMDA0RTIwMTcgLyogSlNIVE1MQWxsQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CkBAIC0xMjk2Myw2ICsxMjk3Myw4IEBACiAJCQkJQkNEOUMyNzIwQzE3QUE4MTAwNUM5MEEy
IC8qIEpTTmFtZWROb2Rlc0NvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNEOUMy
QzAwQzE3QjY5RTAwNUM5MEEyIC8qIEpTTmFtZWROb2RlTWFwLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUJDRDlDMkMyMEMxN0I2OUUwMDVDOTBBMiAvKiBKU05vZGVMaXN0LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUJDQ0JBRDNCMEMxOEJGRjgwMENFODkwRiAvKiBKU0hUTUxDb2xsZWN0aW9uQ3Vz
dG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDQ0JBRDQwMEMxOEMxNDIwMENFODkwRiAvKiBK
U0hUTUxDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9uLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTSFRNTEFsbENvbGxlY3Rpb24uaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0OCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBKU0hUTUxBbGxDb2xsZWN0aW9uX2gKKyNkZWZpbmUgSlNIVE1M
QWxsQ29sbGVjdGlvbl9oCisKKyNpbmNsdWRlICJKU0hUTUxDb2xsZWN0aW9uLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworICAgIGNsYXNzIEhUTUxDb2xsZWN0aW9uOworCisgICAgY2xhc3Mg
SlNIVE1MQWxsQ29sbGVjdGlvbiA6IHB1YmxpYyBKU0hUTUxDb2xsZWN0aW9uIHsKKyAgICBwdWJs
aWM6CisgICAgICAgIEpTSFRNTEFsbENvbGxlY3Rpb24oS0pTOjpFeGVjU3RhdGUqIGV4ZWMsIEhU
TUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uKQorICAgICAgICAgICAgOiBKU0hUTUxDb2xsZWN0aW9u
KGV4ZWMsIGNvbGxlY3Rpb24pCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1
YWwgYm9vbCB0b0Jvb2xlYW4oS0pTOjpFeGVjU3RhdGUqKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQorICAgICAgICB2aXJ0dWFsIGJvb2wgbWFzcXVlcmFkZUFzVW5kZWZpbmVkKCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQorICAgIH07CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEpTSFRNTEFsbENvbGxlY3Rpb25faApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hU
TUxDb2xsZWN0aW9uQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSFRNTENvbGxlY3Rpb25DdXN0b20uY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRl
bXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKKyAqIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU0hUTUxDb2xsZWN0aW9uLmgi
CisKKyNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKKyNpbmNsdWRlICJIVE1MQ29sbGVjdGlvbi5o
IgorI2luY2x1ZGUgIkhUTUxPcHRpb25zQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUgIkpTSFRNTEFs
bENvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJKU0hUTUxPcHRpb25zQ29sbGVjdGlvbi5oIgorI2lu
Y2x1ZGUgIkpTTmFtZWROb2Rlc0NvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJKU05vZGUuaCIKKyNp
bmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAia2pzX2JpbmRpbmcuaCIKKyNpbmNsdWRlICJranNf
aHRtbC5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitzdGF0aWMgS0pTOjpKU1ZhbHVlKiBnZXROYW1lZEl0ZW1zKEtKUzo6RXhlY1N0YXRlKiBleGVj
LCBIVE1MQ29sbGVjdGlvbiogaW1wbCwgY29uc3QgS0pTOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUpCit7CisgICAgVmVjdG9yPFJlZlB0cjxOb2RlPiA+IG5hbWVkSXRlbXM7CisgICAgaW1wbC0+
bmFtZWRJdGVtcyhwcm9wZXJ0eU5hbWUsIG5hbWVkSXRlbXMpOworCisgICAgaWYgKG5hbWVkSXRl
bXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gS0pTOjpqc1VuZGVmaW5lZCgpOworCisgICAg
aWYgKG5hbWVkSXRlbXMuc2l6ZSgpID09IDEpCisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIG5h
bWVkSXRlbXNbMF0uZ2V0KCkpOworCisgICAgcmV0dXJuIG5ldyBKU05hbWVkTm9kZXNDb2xsZWN0
aW9uKGV4ZWMsIG5hbWVkSXRlbXMpOworfQorCisvLyBIVE1MQ29sbGVjdGlvbnMgYXJlIHN0cmFu
Z2Ugb2JqZWN0cywgdGhleSBzdXBwb3J0IGJvdGggZ2V0IGFuZCBjYWxsLAorLy8gc28gdGhhdCBk
b2N1bWVudC5mb3Jtcy5pdGVtKDApIGFuZCBkb2N1bWVudC5mb3JtcygwKSBib3RoIHdvcmsuCitL
SlM6OkpTVmFsdWUqIEpTSFRNTENvbGxlY3Rpb246OmNhbGxBc0Z1bmN0aW9uKEtKUzo6RXhlY1N0
YXRlKiBleGVjLCBLSlM6OkpTT2JqZWN0KiwgY29uc3QgS0pTOjpMaXN0JiBhcmdzKQoreworICAg
IGlmIChhcmdzLnNpemUoKSA8IDEpCisgICAgICAgIHJldHVybiBLSlM6OmpzVW5kZWZpbmVkKCk7
CisKKyAgICAvLyBEbyBub3QgdXNlIHRoaXNPYmogaGVyZS4gSXQgY2FuIGJlIHRoZSBKU0hUTUxE
b2N1bWVudCwgaW4gdGhlIGRvY3VtZW50LmZvcm1zKGkpIGNhc2UuCisgICAgSFRNTENvbGxlY3Rp
b24qIGNvbGxlY3Rpb24gPSBpbXBsKCk7CisKKyAgICAvLyBBbHNvLCBkbyB3ZSBuZWVkIHRoZSBU
eXBlRXJyb3IgdGVzdCBoZXJlID8KKworICAgIGlmIChhcmdzLnNpemUoKSA9PSAxKSB7CisgICAg
ICAgIC8vIFN1cHBvcnQgZm9yIGRvY3VtZW50LmFsbCg8aW5kZXg+KSBldGMuCisgICAgICAgIGJv
b2wgb2s7CisgICAgICAgIEtKUzo6VVN0cmluZyBzdHJpbmcgPSBhcmdzWzBdLT50b1N0cmluZyhl
eGVjKTsKKyAgICAgICAgdW5zaWduZWQgaW5kZXggPSBzdHJpbmcudG9VSW50MzIoJm9rLCBmYWxz
ZSk7CisgICAgICAgIGlmIChvaykKKyAgICAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGNvbGxl
Y3Rpb24tPml0ZW0oaW5kZXgpKTsKKworICAgICAgICAvLyBTdXBwb3J0IGZvciBkb2N1bWVudC5p
bWFnZXMoJzxuYW1lPicpIGV0Yy4KKyAgICAgICAgcmV0dXJuIGdldE5hbWVkSXRlbXMoZXhlYywg
Y29sbGVjdGlvbiwgS0pTOjpJZGVudGlmaWVyKHN0cmluZykpOworICAgIH0KKworICAgIC8vIFRo
ZSBzZWNvbmQgYXJnLCBpZiBzZXQsIGlzIHRoZSBpbmRleCBvZiB0aGUgaXRlbSB3ZSB3YW50Cisg
ICAgYm9vbCBvazsKKyAgICBLSlM6OlVTdHJpbmcgc3RyaW5nID0gYXJnc1swXS0+dG9TdHJpbmco
ZXhlYyk7CisgICAgdW5zaWduZWQgaW5kZXggPSBhcmdzWzFdLT50b1N0cmluZyhleGVjKS50b1VJ
bnQzMigmb2ssIGZhbHNlKTsKKyAgICBpZiAob2spIHsKKyAgICAgICAgU3RyaW5nIHBzdHIgPSBz
dHJpbmc7CisgICAgICAgIE5vZGUqIG5vZGUgPSBjb2xsZWN0aW9uLT5uYW1lZEl0ZW0ocHN0cik7
CisgICAgICAgIHdoaWxlIChub2RlKSB7CisgICAgICAgICAgICBpZiAoIWluZGV4KQorICAgICAg
ICAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIG5vZGUpOworICAgICAgICAgICAgbm9kZSA9IGNv
bGxlY3Rpb24tPm5leHROYW1lZEl0ZW0ocHN0cik7CisgICAgICAgICAgICAtLWluZGV4OworICAg
ICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIEtKUzo6anNVbmRlZmluZWQoKTsKK30KKworYm9v
bCBKU0hUTUxDb2xsZWN0aW9uOjppbXBsZW1lbnRzQ2FsbCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHRydWU7Cit9CisKK2Jvb2wgSlNIVE1MQ29sbGVjdGlvbjo6Y2FuR2V0SXRlbXNGb3JOYW1lKEtK
Uzo6RXhlY1N0YXRlKiBleGVjLCBIVE1MQ29sbGVjdGlvbiogdGhpc09iaiwgY29uc3QgS0pTOjpJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCit7CisgICAgcmV0dXJuICFnZXROYW1lZEl0ZW1zKGV4
ZWMsIHRoaXNPYmosIHByb3BlcnR5TmFtZSktPmlzVW5kZWZpbmVkKCk7Cit9CisKK0tKUzo6SlNW
YWx1ZSogSlNIVE1MQ29sbGVjdGlvbjo6bmFtZUdldHRlcihLSlM6OkV4ZWNTdGF0ZSogZXhlYywg
S0pTOjpKU09iamVjdCogb3JpZ2luYWxPYmplY3QsIGNvbnN0IEtKUzo6SWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBjb25zdCBLSlM6OlByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBKU0hUTUxD
b2xsZWN0aW9uKiB0aGlzT2JqID0gc3RhdGljX2Nhc3Q8SlNIVE1MQ29sbGVjdGlvbio+KHNsb3Qu
c2xvdEJhc2UoKSk7CisgICAgcmV0dXJuIGdldE5hbWVkSXRlbXMoZXhlYywgdGhpc09iai0+aW1w
bCgpLCBwcm9wZXJ0eU5hbWUpOworfQorCitLSlM6OkpTVmFsdWUqIEpTSFRNTENvbGxlY3Rpb246
Oml0ZW0oS0pTOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEtKUzo6TGlzdCYgYXJncykKK3sKKyAg
ICBib29sIG9rOworICAgIHVpbnQzMl90IGluZGV4ID0gYXJnc1swXS0+dG9TdHJpbmcoZXhlYyku
dG9VSW50MzIoJm9rLCBmYWxzZSk7CisgICAgaWYgKG9rKQorICAgICAgICByZXR1cm4gdG9KUyhl
eGVjLCBpbXBsKCktPml0ZW0oaW5kZXgpKTsKKyAgICByZXR1cm4gZ2V0TmFtZWRJdGVtcyhleGVj
LCBpbXBsKCksIEtKUzo6SWRlbnRpZmllcihhcmdzWzBdLT50b1N0cmluZyhleGVjKSkpOworfQor
CitLSlM6OkpTVmFsdWUqIEpTSFRNTENvbGxlY3Rpb246Om5hbWVkSXRlbShLSlM6OkV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgS0pTOjpMaXN0JiBhcmdzKQoreworICAgIHJldHVybiBnZXROYW1lZEl0
ZW1zKGV4ZWMsIGltcGwoKSwgS0pTOjpJZGVudGlmaWVyKGFyZ3NbMF0tPnRvU3RyaW5nKGV4ZWMp
KSk7Cit9CisKK0tKUzo6SlNWYWx1ZSogdG9KUyhLSlM6OkV4ZWNTdGF0ZSogZXhlYywgSFRNTENv
bGxlY3Rpb24qIGNvbGxlY3Rpb24pCit7CisgICAgaWYgKCFjb2xsZWN0aW9uKQorICAgICAgICBy
ZXR1cm4gS0pTOjpqc051bGwoKTsKKworICAgIEtKUzo6U2NyaXB0SW50ZXJwcmV0ZXIqIGludGVy
cCA9IHN0YXRpY19jYXN0PEtKUzo6U2NyaXB0SW50ZXJwcmV0ZXIqPihleGVjLT5keW5hbWljSW50
ZXJwcmV0ZXIoKSk7CisgICAgS0pTOjpET01PYmplY3QqIHJldCA9IGludGVycC0+Z2V0RE9NT2Jq
ZWN0KGNvbGxlY3Rpb24pOworCisgICAgaWYgKHJldCkKKyAgICAgICAgcmV0dXJuIHJldDsKKwor
ICAgIHN3aXRjaCAoY29sbGVjdGlvbi0+Y29sbGVjdGlvblR5cGUoKSkgeworICAgICAgICBjYXNl
IEhUTUxDb2xsZWN0aW9uOjpTZWxlY3RPcHRpb25zOgorICAgICAgICAgICAgcmV0ID0gbmV3IEpT
SFRNTE9wdGlvbnNDb2xsZWN0aW9uKGV4ZWMsIHN0YXRpY19jYXN0PEhUTUxPcHRpb25zQ29sbGVj
dGlvbio+KGNvbGxlY3Rpb24pKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEhU
TUxDb2xsZWN0aW9uOjpEb2NBbGw6CisgICAgICAgICAgICByZXQgPSBuZXcgSlNIVE1MQWxsQ29s
bGVjdGlvbihleGVjLCBzdGF0aWNfY2FzdDxIVE1MQ29sbGVjdGlvbio+KGNvbGxlY3Rpb24pKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0ID0g
bmV3IEpTSFRNTENvbGxlY3Rpb24oZXhlYywgc3RhdGljX2Nhc3Q8SFRNTENvbGxlY3Rpb24qPihj
b2xsZWN0aW9uKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBpbnRlcnAtPnB1
dERPTU9iamVjdChjb2xsZWN0aW9uLCByZXQpOworICAgIHJldHVybiByZXQ7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRG9jdW1l
bnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRG9j
dW1lbnRDdXN0b20uY3BwCShyZXZpc2lvbiAyMjA3OSkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMv
SlNIVE1MRG9jdW1lbnRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSUZyYW1lRWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkpTSFRNTENvbGxlY3Rpb24uaCIK
ICNpbmNsdWRlICJranNfaHRtbC5oIgogI2luY2x1ZGUgImtqc193aW5kb3cuaCIKIApAQCAtNjks
NyArNzAsNyBAQCBKU1ZhbHVlKiBKU0hUTUxEb2N1bWVudDo6bmFtZUdldHRlcihFeGVjCiAgICAg
ICAgIHJldHVybiB0b0pTKGV4ZWMsIG5vZGUpOwogICAgIH0gCiAKLSAgICByZXR1cm4gZ2V0SFRN
TENvbGxlY3Rpb24oZXhlYywgY29sbGVjdGlvbi5nZXQoKSk7CisgICAgcmV0dXJuIHRvSlMoZXhl
YywgY29sbGVjdGlvbi5nZXQoKSk7CiB9CiAKIC8vIEN1c3RvbSBhdHRyaWJ1dGVzCkBAIC04MCw3
ICs4MSw3IEBAIEpTVmFsdWUqIEpTSFRNTERvY3VtZW50OjphbGwoRXhlY1N0YXRlKiAKICAgICBp
ZiAoSlNWYWx1ZSogdiA9IGdldERpcmVjdCgiYWxsIikpCiAgICAgICAgIHJldHVybiB2OwogCi0g
ICAgcmV0dXJuIGdldEFsbEhUTUxDb2xsZWN0aW9uKGV4ZWMsIHN0YXRpY19jYXN0PEhUTUxEb2N1
bWVudCo+KGltcGwoKSktPmFsbCgpLmdldCgpKTsKKyAgICByZXR1cm4gdG9KUyhleGVjLCBzdGF0
aWNfY2FzdDxIVE1MRG9jdW1lbnQqPihpbXBsKCkpLT5hbGwoKS5nZXQoKSk7CiB9CiAKIHZvaWQg
SlNIVE1MRG9jdW1lbnQ6OnNldEFsbChFeGVjU3RhdGUqLCBKU1ZhbHVlKiB2YWx1ZSkKSW5kZXg6
IFdlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0LmNwcAkocmV2aXNpb24gMjIwNzkp
CisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3QuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RF
IGxpYnJhcmllcwotICogIENvcHlyaWdodCAoQykgMjAwNCBBcHBsZSBDb21wdXRlciwgSW5jLgor
ICogIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgPGFw
QG55cG9wLmNvbT4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIkZy
YW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJIVE1MRG9jdW1lbnQu
aCIKKyNpbmNsdWRlICJKU0RvY3VtZW50LmgiCiAjaW5jbHVkZSAia2pzX2V2ZW50cy5oIgogI2lu
Y2x1ZGUgImtqc193aW5kb3cuaCIKICNpbmNsdWRlICJ4bWxodHRwcmVxdWVzdC5oIgpJbmRleDog
V2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfaHRtbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9i
aW5kaW5ncy9qcy9ranNfaHRtbC5jcHAJKHJldmlzaW9uIDIyMDc5KQorKysgV2ViQ29yZS9iaW5k
aW5ncy9qcy9ranNfaHRtbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDI0OCArMjIsNTcgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJranNfaHRtbC5oIgogCi0jaW5jbHVkZSAi
RG9jTG9hZGVyLmgiCi0jaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKLSNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNs
dWRlICJKU0hUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTEltYWdlRWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUg
IkhUTUxPcHRpb25FbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgi
Ci0jaW5jbHVkZSAiSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCIKLSNpbmNsdWRlICJKU05hbWVk
Tm9kZXNDb2xsZWN0aW9uLmgiCi0jaW5jbHVkZSAiSlNOb2RlTGlzdC5oIgotI2luY2x1ZGUgIk5h
bWVOb2RlTGlzdC5oIgotI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCi0jaW5jbHVkZSAiVGV4dC5o
IgotI2luY2x1ZGUgImtqc19jc3MuaCIKLSNpbmNsdWRlICJranNfZXZlbnRzLmgiCiAjaW5jbHVk
ZSAia2pzX3Byb3h5LmgiCi0jaW5jbHVkZSAia2pzX3dpbmRvdy5oIgotI2luY2x1ZGUgPG1hdGgu
aD4KIAotI2lmIEVOQUJMRShTVkcpCi0jaW5jbHVkZSAiU1ZHRG9jdW1lbnQuaCIKLSNlbmRpZgot
Ci0jaW5jbHVkZSAia2pzX2h0bWwubHV0LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwot
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKLXVzaW5nIG5hbWVzcGFjZSBFdmVudE5hbWVzOwot
Ci1uYW1lc3BhY2UgS0pTIHsKLQotLyoKLUBiZWdpbiBKU0hUTUxDb2xsZWN0aW9uUHJvdG90eXBl
VGFibGUgMwotICBpdGVtICAgICAgICAgIEpTSFRNTENvbGxlY3Rpb246Okl0ZW0gICAgICAgICAg
ICBEb250RGVsZXRlfEZ1bmN0aW9uIDEKLSAgbmFtZWRJdGVtICAgICBKU0hUTUxDb2xsZWN0aW9u
OjpOYW1lZEl0ZW0gICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAxCi0gIHRhZ3MgICAgICAgICAg
SlNIVE1MQ29sbGVjdGlvbjo6VGFncyAgICAgICAgICAgIERvbnREZWxldGV8RnVuY3Rpb24gMQot
QGVuZAotKi8KLUtKU19JTVBMRU1FTlRfUFJPVE9UWVBFX0ZVTkNUSU9OKEpTSFRNTENvbGxlY3Rp
b25Qcm90b3R5cGVGdW5jdGlvbikKLUtKU19JTVBMRU1FTlRfUFJPVE9UWVBFKCJIVE1MQ29sbGVj
dGlvbiIsSlNIVE1MQ29sbGVjdGlvblByb3RvdHlwZSxKU0hUTUxDb2xsZWN0aW9uUHJvdG90eXBl
RnVuY3Rpb24pCituYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNvbnN0IENsYXNzSW5mbyBKU0hUTUxD
b2xsZWN0aW9uOjppbmZvID0geyAiSFRNTENvbGxlY3Rpb24iLCAwLCAwLCAwIH07Cit1c2luZyBu
YW1lc3BhY2UgS0pTOwogCi1KU0hUTUxDb2xsZWN0aW9uOjpKU0hUTUxDb2xsZWN0aW9uKEV4ZWNT
dGF0ZSogZXhlYywgSFRNTENvbGxlY3Rpb24qIGMpCi0gIDogbV9pbXBsKGMpIAotewotICBzZXRQ
cm90b3R5cGUoSlNIVE1MQ29sbGVjdGlvblByb3RvdHlwZTo6c2VsZihleGVjKSk7Ci19Ci0KLUpT
SFRNTENvbGxlY3Rpb246On5KU0hUTUxDb2xsZWN0aW9uKCkKLXsKLSAgU2NyaXB0SW50ZXJwcmV0
ZXI6OmZvcmdldERPTU9iamVjdChtX2ltcGwuZ2V0KCkpOwotfQotCi1KU1ZhbHVlICpKU0hUTUxD
b2xsZWN0aW9uOjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogb3JpZ2lu
YWxPYmplY3QsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlT
bG90JiBzbG90KQotewotICAgIEpTSFRNTENvbGxlY3Rpb24gKnRoaXNPYmogPSBzdGF0aWNfY2Fz
dDxKU0hUTUxDb2xsZWN0aW9uKj4oc2xvdC5zbG90QmFzZSgpKTsKLSAgICByZXR1cm4ganNOdW1i
ZXIodGhpc09iai0+bV9pbXBsLT5sZW5ndGgoKSk7Ci19Ci0KLUpTVmFsdWUgKkpTSFRNTENvbGxl
Y3Rpb246OmluZGV4R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIG9yaWdpbmFsT2Jq
ZWN0LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYg
c2xvdCkKLXsKLSAgICBKU0hUTUxDb2xsZWN0aW9uICp0aGlzT2JqID0gc3RhdGljX2Nhc3Q8SlNI
VE1MQ29sbGVjdGlvbio+KHNsb3Quc2xvdEJhc2UoKSk7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywg
dGhpc09iai0+bV9pbXBsLT5pdGVtKHNsb3QuaW5kZXgoKSkpOwotfQotCi1KU1ZhbHVlICpKU0hU
TUxDb2xsZWN0aW9uOjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIG9yaWdp
bmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5
U2xvdCYgc2xvdCkKLXsKLSAgICBKU0hUTUxDb2xsZWN0aW9uICp0aGlzT2JqID0gc3RhdGljX2Nh
c3Q8SlNIVE1MQ29sbGVjdGlvbio+KHNsb3Quc2xvdEJhc2UoKSk7Ci0gICAgcmV0dXJuIHRoaXNP
YmotPmdldE5hbWVkSXRlbXMoZXhlYywgcHJvcGVydHlOYW1lKTsKLX0KLQotYm9vbCBKU0hUTUxD
b2xsZWN0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgaWYgKHByb3Bl
cnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKSB7Ci0gICAgICBzbG90LnNl
dEN1c3RvbSh0aGlzLCBsZW5ndGhHZXR0ZXIpOwotICAgICAgcmV0dXJuIHRydWU7Ci0gIH0gZWxz
ZSB7Ci0gICAgLy8gTG9vayBpbiB0aGUgcHJvdG90eXBlIChmb3IgZnVuY3Rpb25zKSBiZWZvcmUg
YXNzdW1pbmcgaXQncyBhbiBpdGVtJ3MgbmFtZQotICAgIEpTVmFsdWUgKnByb3RvID0gcHJvdG90
eXBlKCk7Ci0gICAgaWYgKHByb3RvLT5pc09iamVjdCgpICYmIHN0YXRpY19jYXN0PEpTT2JqZWN0
Kj4ocHJvdG8pLT5oYXNQcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUpKQotICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgLy8gbmFtZSBvciBpbmRleCA/Ci0gICAgYm9vbCBvazsKLSAgICB1bnNp
Z25lZCBpbnQgdSA9IHByb3BlcnR5TmFtZS50b1VJbnQzMigmb2ssIGZhbHNlKTsKLSAgICBpZiAo
b2spIHsKLSAgICAgIHNsb3Quc2V0Q3VzdG9tSW5kZXgodGhpcywgdSwgaW5kZXhHZXR0ZXIpOwot
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgaWYgKCFnZXROYW1lZEl0ZW1zKGV4ZWMs
IHByb3BlcnR5TmFtZSktPmlzVW5kZWZpbmVkKCkpIHsKLSAgICAgIHNsb3Quc2V0Q3VzdG9tKHRo
aXMsIG5hbWVHZXR0ZXIpOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICB9Ci0KLSAgcmV0
dXJuIERPTU9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xv
dCk7Ci19Ci0KLS8vIEhUTUxDb2xsZWN0aW9ucyBhcmUgc3RyYW5nZSBvYmplY3RzLCB0aGV5IHN1
cHBvcnQgYm90aCBnZXQgYW5kIGNhbGwsCi0vLyBzbyB0aGF0IGRvY3VtZW50LmZvcm1zLml0ZW0o
MCkgYW5kIGRvY3VtZW50LmZvcm1zKDApIGJvdGggd29yay4KLUpTVmFsdWUgKkpTSFRNTENvbGxl
Y3Rpb246OmNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqICwgY29uc3Qg
TGlzdCAmYXJncykKLXsKLSAgLy8gRG8gbm90IHVzZSB0aGlzT2JqIGhlcmUuIEl0IGNhbiBiZSB0
aGUgSlNIVE1MRG9jdW1lbnQsIGluIHRoZSBkb2N1bWVudC5mb3JtcyhpKSBjYXNlLgotICBIVE1M
Q29sbGVjdGlvbiAmY29sbGVjdGlvbiA9ICptX2ltcGw7Ci0KLSAgLy8gQWxzbywgZG8gd2UgbmVl
ZCB0aGUgVHlwZUVycm9yIHRlc3QgaGVyZSA/Ci0KLSAgaWYgKGFyZ3Muc2l6ZSgpID09IDEpIHsK
LSAgICAvLyBzdXBwb3J0IGZvciBkb2N1bWVudC5hbGwoPGluZGV4PikgZXRjLgotICAgIGJvb2wg
b2s7Ci0gICAgVVN0cmluZyBzID0gYXJnc1swXS0+dG9TdHJpbmcoZXhlYyk7Ci0gICAgdW5zaWdu
ZWQgaW50IHUgPSBzLnRvVUludDMyKCZvaywgZmFsc2UpOwotICAgIGlmIChvaykKLSAgICAgIHJl
dHVybiB0b0pTKGV4ZWMsIGNvbGxlY3Rpb24uaXRlbSh1KSk7Ci0gICAgLy8gc3VwcG9ydCBmb3Ig
ZG9jdW1lbnQuaW1hZ2VzKCc8bmFtZT4nKSBldGMuCi0gICAgcmV0dXJuIGdldE5hbWVkSXRlbXMo
ZXhlYywgSWRlbnRpZmllcihzKSk7Ci0gIH0KLSAgZWxzZSBpZiAoYXJncy5zaXplKCkgPj0gMSkg
Ly8gdGhlIHNlY29uZCBhcmcsIGlmIHNldCwgaXMgdGhlIGluZGV4IG9mIHRoZSBpdGVtIHdlIHdh
bnQKLSAgewotICAgIGJvb2wgb2s7Ci0gICAgVVN0cmluZyBzID0gYXJnc1swXS0+dG9TdHJpbmco
ZXhlYyk7Ci0gICAgdW5zaWduZWQgaW50IHUgPSBhcmdzWzFdLT50b1N0cmluZyhleGVjKS50b1VJ
bnQzMigmb2ssIGZhbHNlKTsKLSAgICBpZiAob2spCi0gICAgewotICAgICAgV2ViQ29yZTo6U3Ry
aW5nIHBzdHIgPSBzOwotICAgICAgV2ViQ29yZTo6Tm9kZSAqbm9kZSA9IGNvbGxlY3Rpb24ubmFt
ZWRJdGVtKHBzdHIpOwotICAgICAgd2hpbGUgKG5vZGUpIHsKLSAgICAgICAgaWYgKCF1KQotICAg
ICAgICAgIHJldHVybiB0b0pTKGV4ZWMsbm9kZSk7Ci0gICAgICAgIG5vZGUgPSBjb2xsZWN0aW9u
Lm5leHROYW1lZEl0ZW0ocHN0cik7Ci0gICAgICAgIC0tdTsKLSAgICAgIH0KLSAgICB9Ci0gIH0K
LSAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci19Ci0KLUpTVmFsdWUgKkpTSFRNTENvbGxlY3Rpb246
OmdldE5hbWVkSXRlbXMoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyICZwcm9wZXJ0
eU5hbWUpIGNvbnN0Ci17Ci0gICAgVmVjdG9yPFJlZlB0cjxOb2RlPiA+IG5hbWVkSXRlbXM7Ci0g
ICAgCi0gICAgbV9pbXBsLT5uYW1lZEl0ZW1zKHByb3BlcnR5TmFtZSwgbmFtZWRJdGVtcyk7Ci0K
LSAgICBpZiAobmFtZWRJdGVtcy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOwotCi0gICAgaWYgKG5hbWVkSXRlbXMuc2l6ZSgpID09IDEpCi0gICAgICAgIHJldHVybiB0
b0pTKGV4ZWMsIG5hbWVkSXRlbXNbMF0uZ2V0KCkpOwotCi0gICAgcmV0dXJuIG5ldyBKU05hbWVk
Tm9kZXNDb2xsZWN0aW9uKGV4ZWMsIG5hbWVkSXRlbXMpOwotfQotCi1KU1ZhbHVlKiBKU0hUTUxD
b2xsZWN0aW9uUHJvdG90eXBlRnVuY3Rpb246OmNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqIHRoaXNPYmosIGNvbnN0IExpc3QgJmFyZ3MpCi17Ci0gIGlmICghdGhpc09i
ai0+aW5oZXJpdHMoJkpTSFRNTENvbGxlY3Rpb246OmluZm8pKQotICAgIHJldHVybiB0aHJvd0Vy
cm9yKGV4ZWMsIFR5cGVFcnJvcik7Ci0gIEhUTUxDb2xsZWN0aW9uICZjb2xsID0gKnN0YXRpY19j
YXN0PEpTSFRNTENvbGxlY3Rpb24qPih0aGlzT2JqKS0+aW1wbCgpOwotCi0gIHN3aXRjaCAoaWQp
IHsKLSAgY2FzZSBKU0hUTUxDb2xsZWN0aW9uOjpUYWdzOgotICAgIHJldHVybiB0b0pTKGV4ZWMs
IGNvbGwuYmFzZSgpLT5nZXRFbGVtZW50c0J5VGFnTmFtZShhcmdzWzBdLT50b1N0cmluZyhleGVj
KSkuZ2V0KCkpOwotICBjYXNlIEpTSFRNTENvbGxlY3Rpb246Okl0ZW06Ci0gICAgewotICAgICAg
ICBib29sIG9rOwotICAgICAgICB1aW50MzJfdCBpbmRleCA9IGFyZ3NbMF0tPnRvU3RyaW5nKGV4
ZWMpLnRvVUludDMyKCZvaywgZmFsc2UpOwotICAgICAgICBpZiAob2spCi0gICAgICAgICAgICBy
ZXR1cm4gdG9KUyhleGVjLCBjb2xsLml0ZW0oaW5kZXgpKTsKLSAgICB9Ci0gICAgLy8gRmFsbCB0
aHJvdWdoCi0gIGNhc2UgSlNIVE1MQ29sbGVjdGlvbjo6TmFtZWRJdGVtOgotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxKU0hUTUxDb2xsZWN0aW9uKj4odGhpc09iaiktPmdldE5hbWVkSXRlbXMoZXhl
YywgSWRlbnRpZmllcihhcmdzWzBdLT50b1N0cmluZyhleGVjKSkpOwotICBkZWZhdWx0OgotICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwotICB9Ci19Ci0KLS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8g
SW1hZ2UgT2JqZWN0IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi1JbWFnZUNvbnN0cnVjdG9y
SW1wOjpJbWFnZUNvbnN0cnVjdG9ySW1wKEV4ZWNTdGF0ZSogZXhlYywgRG9jdW1lbnQqIGQpCi0g
ICAgOiBtX2RvYyhkKQorSW1hZ2VDb25zdHJ1Y3RvckltcDo6SW1hZ2VDb25zdHJ1Y3RvckltcChF
eGVjU3RhdGUqIGV4ZWMsIERvY3VtZW50KiBkb2MpCisgICAgOiBtX2RvYyhkb2MpCiB7CiAgICAg
c2V0UHJvdG90eXBlKGV4ZWMtPmxleGljYWxJbnRlcnByZXRlcigpLT5idWlsdGluT2JqZWN0UHJv
dG90eXBlKCkpOwogfQogCi1ib29sIEltYWdlQ29uc3RydWN0b3JJbXA6OmltcGxlbWVudHNDb25z
dHJ1Y3QoKSBjb25zdAorSlNPYmplY3QqIEltYWdlQ29uc3RydWN0b3JJbXA6OmNvbnN0cnVjdChF
eGVjU3RhdGUqICBleGVjLCBjb25zdCBMaXN0JiBsaXN0KQogewotICByZXR1cm4gdHJ1ZTsKLX0K
KyAgICBib29sIHdpZHRoU2V0ID0gZmFsc2U7CisgICAgYm9vbCBoZWlnaHRTZXQgPSBmYWxzZTsK
KyAgICBpbnQgd2lkdGggPSAwOworICAgIGludCBoZWlnaHQgPSAwOwogCi1KU09iamVjdCogSW1h
Z2VDb25zdHJ1Y3RvckltcDo6Y29uc3RydWN0KEV4ZWNTdGF0ZSogIGV4ZWMsIGNvbnN0IExpc3Qg
JiBsaXN0KQotewotICAgIGJvb2wgd2lkdGhTZXQgPSBmYWxzZSwgaGVpZ2h0U2V0ID0gZmFsc2U7
Ci0gICAgaW50IHdpZHRoID0gMCwgaGVpZ2h0ID0gMDsKICAgICBpZiAobGlzdC5zaXplKCkgPiAw
KSB7CiAgICAgICAgIHdpZHRoU2V0ID0gdHJ1ZTsKLSAgICAgICAgSlNWYWx1ZSAqdyA9IGxpc3Qu
YXQoMCk7CisgICAgICAgIEpTVmFsdWUqIHcgPSBsaXN0LmF0KDApOwogICAgICAgICB3aWR0aCA9
IHctPnRvSW50MzIoZXhlYyk7CiAgICAgfQorCiAgICAgaWYgKGxpc3Quc2l6ZSgpID4gMSkgewog
ICAgICAgICBoZWlnaHRTZXQgPSB0cnVlOwotICAgICAgICBKU1ZhbHVlICpoID0gbGlzdC5hdCgx
KTsKKyAgICAgICAgSlNWYWx1ZSogaCA9IGxpc3QuYXQoMSk7CiAgICAgICAgIGhlaWdodCA9IGgt
PnRvSW50MzIoZXhlYyk7CiAgICAgfQotICAgICAgICAKKwogICAgIEhUTUxJbWFnZUVsZW1lbnQq
IGltYWdlID0gbmV3IEhUTUxJbWFnZUVsZW1lbnQobV9kb2MuZ2V0KCkpOwogICAgIEpTT2JqZWN0
KiByZXN1bHQgPSBzdGF0aWNfY2FzdDxKU09iamVjdCo+KHRvSlMoZXhlYywgaW1hZ2UpKTsKLSAg
ICAKKwogICAgIGlmICh3aWR0aFNldCkKICAgICAgICAgaW1hZ2UtPnNldFdpZHRoKHdpZHRoKTsK
ICAgICBpZiAoaGVpZ2h0U2V0KQogICAgICAgICBpbWFnZS0+c2V0SGVpZ2h0KGhlaWdodCk7Ci0g
ICAgCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotICAgICAgICAgICAgICAgICAg
ICAgCi1KU1ZhbHVlKiBnZXRBbGxIVE1MQ29sbGVjdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEhUTUxD
b2xsZWN0aW9uKiBjKQotewotICAgIHJldHVybiBjYWNoZURPTU9iamVjdDxIVE1MQ29sbGVjdGlv
biwgSFRNTEFsbENvbGxlY3Rpb24+KGV4ZWMsIGMpOwotfQotCi1KU1ZhbHVlKiBnZXRIVE1MQ29s
bGVjdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEhUTUxDb2xsZWN0aW9uKiBjKQotewotICAgIHJldHVy
biBjYWNoZURPTU9iamVjdDxIVE1MQ29sbGVjdGlvbiwgSlNIVE1MQ29sbGVjdGlvbj4oZXhlYywg
Yyk7Ci19CiAKLUpTVmFsdWUqIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBIVE1MT3B0aW9uc0NvbGxl
Y3Rpb24qIGMpCi17Ci0gICAgcmV0dXJuIGNhY2hlRE9NT2JqZWN0PEhUTUxPcHRpb25zQ29sbGVj
dGlvbiwgSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb24+KGV4ZWMsIGMpOworICAgIHJldHVybiByZXN1
bHQ7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogLy8gUnVudGltZSBvYmplY3Qgc3VwcG9y
dCBjb2RlIGZvciBKU0hUTUxBcHBsZXRFbGVtZW50LCBKU0hUTUxFbWJlZEVsZW1lbnQgYW5kIEpT
SFRNTE9iamVjdEVsZW1lbnQuCiAKLQogSlNWYWx1ZSogcnVudGltZU9iamVjdEdldHRlcihFeGVj
U3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBvcmlnaW5hbE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgSlNIVE1MRWxl
bWVudCogdGhpc09iaiA9IHN0YXRpY19jYXN0PEpTSFRNTEVsZW1lbnQqPihzbG90LnNsb3RCYXNl
KCkpOwpAQCAtMzI5LDQgKzEzOCw0IEBAIEpTVmFsdWUqIHJ1bnRpbWVPYmplY3RDYWxsQXNGdW5j
dGlvbihFeGUKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KIAotfSAvLyBuYW1lc3BhY2Ug
S0pTCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL2tq
c19odG1sLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfaHRtbC5oCShy
ZXZpc2lvbiAyMjA3OSkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2h0bWwuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjIsNzUgKzIyLDM3IEBACiAjaWZuZGVmIGtqc19odG1sX2gKICNkZWZpbmUg
a2pzX2h0bWxfaAogCi0jaW5jbHVkZSAiSlNEb2N1bWVudC5oIgotI2luY2x1ZGUgIkpTRWxlbWVu
dC5oIgotI2luY2x1ZGUgIkpTSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJranNfZG9tLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIGNsYXNzIERvY3VtZW50OwogICAgIGNsYXNzIEhU
TUxDb2xsZWN0aW9uOwotICAgIGNsYXNzIEhUTUxEb2N1bWVudDsKICAgICBjbGFzcyBIVE1MRWxl
bWVudDsKLSAgICBjbGFzcyBIVE1MT3B0aW9uc0NvbGxlY3Rpb247Ci19CisgICAgY2xhc3MgSlNI
VE1MRWxlbWVudDsKKworICAgIGNsYXNzIEltYWdlQ29uc3RydWN0b3JJbXAgOiBwdWJsaWMgS0pT
OjpET01PYmplY3QgeworICAgIHB1YmxpYzoKKyAgICAgICAgSW1hZ2VDb25zdHJ1Y3RvckltcChL
SlM6OkV4ZWNTdGF0ZSosIERvY3VtZW50Kik7CisKKyAgICAgICAgdmlydHVhbCBib29sIGltcGxl
bWVudHNDb25zdHJ1Y3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIHZpcnR1YWwg
S0pTOjpKU09iamVjdCogY29uc3RydWN0KEtKUzo6RXhlY1N0YXRlKiwgY29uc3QgS0pTOjpMaXN0
Jik7CiAKLW5hbWVzcGFjZSBLSlMgeworICAgIHByaXZhdGU6CisgICAgICAgIFJlZlB0cjxEb2N1
bWVudD4gbV9kb2M7CisgICAgfTsKIAotICBjbGFzcyBKU0Fic3RyYWN0RXZlbnRMaXN0ZW5lcjsK
IAotICBLSlNfREVGSU5FX1BST1RPVFlQRShKU0hUTUxDb2xsZWN0aW9uUHJvdG90eXBlKQorICAg
IC8vIFJ1bnRpbWUgb2JqZWN0IHN1cHBvcnQgY29kZSBmb3IgSlNIVE1MQXBwbGV0RWxlbWVudCwg
SlNIVE1MRW1iZWRFbGVtZW50IGFuZCBKU0hUTUxPYmplY3RFbGVtZW50LgorICAgIC8vIEZJWE1F
OiBNb3ZlIHRoZXNlIHRvIGEgbW9yZSBhcHByb3ByaWF0ZSBwbGFjZS4KIAotICBjbGFzcyBKU0hU
TUxDb2xsZWN0aW9uIDogcHVibGljIERPTU9iamVjdCB7Ci0gIHB1YmxpYzoKLSAgICBKU0hUTUxD
b2xsZWN0aW9uKEV4ZWNTdGF0ZSosIFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uKik7Ci0gICAgfkpT
SFRNTENvbGxlY3Rpb24oKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICB2aXJ0dWFs
IEpTVmFsdWUqIGNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiB0aGlzT2JqLCBj
b25zdCBMaXN0JmFyZ3MpOwotICAgIHZpcnR1YWwgYm9vbCBpbXBsZW1lbnRzQ2FsbCgpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgdG9Cb29sZWFuKEV4ZWNTdGF0ZSop
IGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICBlbnVtIHsgSXRlbSwgTmFtZWRJdGVtLCBUYWdz
IH07Ci0gICAgSlNWYWx1ZSogZ2V0TmFtZWRJdGVtcyhFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUpIGNvbnN0OwotICAgIHZpcnR1YWwgY29uc3QgQ2xhc3NJbmZvKiBj
bGFzc0luZm8oKSBjb25zdCB7IHJldHVybiAmaW5mbzsgfQotICAgIHN0YXRpYyBjb25zdCBDbGFz
c0luZm8gaW5mbzsKLSAgICBXZWJDb3JlOjpIVE1MQ29sbGVjdGlvbiogaW1wbCgpIGNvbnN0IHsg
cmV0dXJuIG1faW1wbC5nZXQoKTsgfQotICBwcm90ZWN0ZWQ6Ci0gICAgUmVmUHRyPFdlYkNvcmU6
OkhUTUxDb2xsZWN0aW9uPiBtX2ltcGw7Ci0gIHByaXZhdGU6Ci0gICAgc3RhdGljIEpTVmFsdWUq
IGxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBKU09iamVjdCosIGNvbnN0IElkZW50aWZpZXImLCBj
b25zdCBQcm9wZXJ0eVNsb3QmKTsKLSAgICBzdGF0aWMgSlNWYWx1ZSogaW5kZXhHZXR0ZXIoRXhl
Y1N0YXRlKiwgSlNPYmplY3QqLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJvcGVydHlTbG90
Jik7Ci0gICAgc3RhdGljIEpTVmFsdWUqIG5hbWVHZXR0ZXIoRXhlY1N0YXRlKiwgSlNPYmplY3Qq
LCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJvcGVydHlTbG90Jik7Ci0gIH07Ci0KLSAgY2xh
c3MgSFRNTEFsbENvbGxlY3Rpb24gOiBwdWJsaWMgSlNIVE1MQ29sbGVjdGlvbiB7Ci0gIHB1Ymxp
YzoKLSAgICBIVE1MQWxsQ29sbGVjdGlvbihFeGVjU3RhdGUqIGV4ZWMsIFdlYkNvcmU6OkhUTUxD
b2xsZWN0aW9uKiBjKSA6Ci0gICAgICBKU0hUTUxDb2xsZWN0aW9uKGV4ZWMsIGMpIHsgfQotICAg
IHZpcnR1YWwgYm9vbCB0b0Jvb2xlYW4oRXhlY1N0YXRlKikgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgbWFzcXVlcmFkZUFzVW5kZWZpbmVkKCkgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQotICB9OwotICAKLSAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBJbWFnZSBPYmpl
Y3QgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLSAgY2xhc3MgSW1hZ2VDb25zdHJ1Y3Rvcklt
cCA6IHB1YmxpYyBET01PYmplY3QgewotICBwdWJsaWM6Ci0gICAgSW1hZ2VDb25zdHJ1Y3Rvcklt
cChFeGVjU3RhdGUqLCBXZWJDb3JlOjpEb2N1bWVudCopOwotICAgIHZpcnR1YWwgYm9vbCBpbXBs
ZW1lbnRzQ29uc3RydWN0KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBKU09iamVjdCogY29uc3RydWN0
KEV4ZWNTdGF0ZSosIGNvbnN0IExpc3QmIGFyZ3MpOwotICBwcml2YXRlOgotICAgIFJlZlB0cjxX
ZWJDb3JlOjpEb2N1bWVudD4gbV9kb2M7Ci0gIH07Ci0KLSAgSlNWYWx1ZSogdG9KUyhFeGVjU3Rh
dGUqLCBXZWJDb3JlOjpIVE1MT3B0aW9uc0NvbGxlY3Rpb24qKTsKLSAgSlNWYWx1ZSogZ2V0SFRN
TENvbGxlY3Rpb24oRXhlY1N0YXRlKiwgV2ViQ29yZTo6SFRNTENvbGxlY3Rpb24qKTsKLSAgSlNW
YWx1ZSogZ2V0QWxsSFRNTENvbGxlY3Rpb24oRXhlY1N0YXRlKiwgV2ViQ29yZTo6SFRNTENvbGxl
Y3Rpb24qKTsKLQotICBKU1ZhbHVlKiBydW50aW1lT2JqZWN0R2V0dGVyKEV4ZWNTdGF0ZSosIEpT
T2JqZWN0KiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYpOwotICBKU1Zh
bHVlKiBydW50aW1lT2JqZWN0UHJvcGVydHlHZXR0ZXIoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBj
b25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJvcGVydHlTbG90Jik7Ci0gIGJvb2wgcnVudGltZU9i
amVjdEN1c3RvbUdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90JiwgV2ViQ29yZTo6SlNIVE1MRWxlbWVudCosIFdlYkNvcmU6OkhUTUxF
bGVtZW50Kik7Ci0gIGJvb2wgcnVudGltZU9iamVjdEN1c3RvbVB1dChFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgSlNWYWx1ZSosIGludCBhdHRyLCBXZWJDb3JlOjpIVE1MRWxlbWVudCop
OwotICBib29sIHJ1bnRpbWVPYmplY3RJbXBsZW1lbnRzQ2FsbChXZWJDb3JlOjpIVE1MRWxlbWVu
dCopOwotICBKU1ZhbHVlKiBydW50aW1lT2JqZWN0Q2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlKiwg
SlNPYmplY3QqLCBjb25zdCBMaXN0JiwgV2ViQ29yZTo6SFRNTEVsZW1lbnQqKTsKKyAgICBLSlM6
OkpTVmFsdWUqIHJ1bnRpbWVPYmplY3RHZXR0ZXIoS0pTOjpFeGVjU3RhdGUqLCBLSlM6OkpTT2Jq
ZWN0KiwgY29uc3QgS0pTOjpJZGVudGlmaWVyJiwgY29uc3QgS0pTOjpQcm9wZXJ0eVNsb3QmKTsK
KyAgICBLSlM6OkpTVmFsdWUqIHJ1bnRpbWVPYmplY3RQcm9wZXJ0eUdldHRlcihLSlM6OkV4ZWNT
dGF0ZSosIEtKUzo6SlNPYmplY3QqLCBjb25zdCBLSlM6OklkZW50aWZpZXImLCBjb25zdCBLSlM6
OlByb3BlcnR5U2xvdCYpOworICAgIGJvb2wgcnVudGltZU9iamVjdEN1c3RvbUdldE93blByb3Bl
cnR5U2xvdChLSlM6OkV4ZWNTdGF0ZSosIGNvbnN0IEtKUzo6SWRlbnRpZmllciYsIEtKUzo6UHJv
cGVydHlTbG90JiwgSlNIVE1MRWxlbWVudCosIEhUTUxFbGVtZW50Kik7CisgICAgYm9vbCBydW50
aW1lT2JqZWN0Q3VzdG9tUHV0KEtKUzo6RXhlY1N0YXRlKiwgY29uc3QgS0pTOjpJZGVudGlmaWVy
JiwgS0pTOjpKU1ZhbHVlKiwgaW50IGF0dHIsIEhUTUxFbGVtZW50Kik7CisgICAgYm9vbCBydW50
aW1lT2JqZWN0SW1wbGVtZW50c0NhbGwoSFRNTEVsZW1lbnQqKTsKKyAgICBLSlM6OkpTVmFsdWUq
IHJ1bnRpbWVPYmplY3RDYWxsQXNGdW5jdGlvbihLSlM6OkV4ZWNTdGF0ZSosIEtKUzo6SlNPYmpl
Y3QqLCBjb25zdCBLSlM6Okxpc3QmLCBIVE1MRWxlbWVudCopOwogCi19IC8vIG5hbWVzcGFjZSBL
SlMKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIGtqc19odG1sX2gKSW5kZXg6
IFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3dpbmRvdy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy9qcy9ranNfd2luZG93LmNwcAkocmV2aXNpb24gMjIwNzkpCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL2pzL2tqc193aW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw4ICsyNCw4
IEBACiAjaW5jbHVkZSAia2pzX3dpbmRvdy5oIgogCiAjaW5jbHVkZSAiQmFzZTY0LmgiCi0jaW5j
bHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIkNocm9tZS5o
IgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRl
ICJFdmVudExpc3RlbmVyLmgiCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiSlNET01FeGNl
cHRpb25Db25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93LmgiCiAjaW5jbHVkZSAi
SlNFdmVudC5oIgorI2luY2x1ZGUgIkpTSFRNTENvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJKU0hU
TUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJKU011dGF0aW9uRXZlbnQu
aCIKICNpbmNsdWRlICJKU05vZGUuaCIKQEAgLTkzOSw4ICs5NDAsNyBAQCBKU1ZhbHVlICpXaW5k
b3c6Om5hbWVkSXRlbUdldHRlcihFeGVjU3RhCiAgIFJlZlB0cjxXZWJDb3JlOjpIVE1MQ29sbGVj
dGlvbj4gY29sbGVjdGlvbiA9IGRvYy0+d2luZG93TmFtZWRJdGVtcyhuYW1lKTsKICAgaWYgKGNv
bGxlY3Rpb24tPmxlbmd0aCgpID09IDEpCiAgICAgcmV0dXJuIHRvSlMoZXhlYywgY29sbGVjdGlv
bi0+Zmlyc3RJdGVtKCkpOwotICBlbHNlIAotICAgIHJldHVybiBnZXRIVE1MQ29sbGVjdGlvbihl
eGVjLCBjb2xsZWN0aW9uLmdldCgpKTsKKyAgcmV0dXJuIHRvSlMoZXhlYywgY29sbGVjdGlvbi5n
ZXQoKSk7CiB9CiAKIGJvb2wgV2luZG93OjpnZXRPdmVycmlkZVByb3BlcnR5U2xvdChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBz
bG90KQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVV0aWxpdHkubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVV0aWxpdHkubW0JKHJldmlzaW9uIDIyMDc5
KQorKysgV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVV0aWxpdHkubW0JKHdvcmtpbmcgY29weSkK
QEAgLTM1LDYgKzM1LDcgQEAKICNpbXBvcnQgIkpTQ291bnRlci5oIgogI2ltcG9ydCAiSlNET01J
bXBsZW1lbnRhdGlvbi5oIgogI2ltcG9ydCAiSlNFdmVudC5oIgorI2ltcG9ydCAiSlNIVE1MQ29s
bGVjdGlvbi5oIgogI2ltcG9ydCAiSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCIKICNpbXBvcnQg
IkpTTWVkaWFMaXN0LmgiCiAjaW1wb3J0ICJKU05hbWVkTm9kZU1hcC5oIgpAQCAtODYsNiArODcs
MTAgQEAgc3RhdGljIGlubGluZSBpZCBjcmVhdGVET01XcmFwcGVyKEtKUzo6SgogICAgIFdSQVAo
WFBhdGhFeHByZXNzaW9uKQogICAgIFdSQVAoWFBhdGhSZXN1bHQpCiAKKyAgICAvLyBUaGlzIG11
c3QgYmUgYWZ0ZXIgdGhlIEhUTUxPcHRpb25zQ29sbGVjdGlvbiBjaGVjaywgYmVjYXVzZSBpdCdz
IGEgc3ViY2xhc3MgaW4gdGhlIEphdmFTY3JpcHQKKyAgICAvLyBiaW5kaW5nLCBidXQgbm90IGEg
c3ViY2xhc3MgaW4gdGhlIE9iakMgYmluZGluZy4KKyAgICBXUkFQKEhUTUxDb2xsZWN0aW9uKQor
CiAgICAgI3VuZGVmIFdSQVAKIAogICAgICNkZWZpbmUgV1JBUChjbGFzc05hbWUpIFwKQEAgLTEw
OCwxMSArMTEzLDYgQEAgc3RhdGljIGlubGluZSBpZCBjcmVhdGVET01XcmFwcGVyKEtKUzo6Sgog
ICAgIGlmIChvYmplY3QtPmluaGVyaXRzKCZXZWJDb3JlOjpKU1RyZWVXYWxrZXI6OmluZm8pKQog
ICAgICAgICByZXR1cm4gW0RPTVRyZWVXYWxrZXIgX3dyYXBUcmVlV2Fsa2VyOnN0YXRpY19jYXN0
PFdlYkNvcmU6OkpTVHJlZVdhbGtlcio+KG9iamVjdCktPmltcGwoKSBmaWx0ZXI6bmlsXTsKIAot
ICAgIC8vIFRoaXMgbXVzdCBiZSBhZnRlciB0aGUgSFRNTE9wdGlvbnNDb2xsZWN0aW9uIGNoZWNr
LCBiZWNhdXNlIGl0J3MgYSBzdWJjbGFzcyBpbiB0aGUgSmF2YVNjcmlwdAotICAgIC8vIGJpbmRp
bmcsIGJ1dCBub3QgYSBzdWJjbGFzcyBpbiB0aGUgT2JqQyBiaW5kaW5nLgotICAgIGlmIChvYmpl
Y3QtPmluaGVyaXRzKCZKU0hUTUxDb2xsZWN0aW9uOjppbmZvKSkKLSAgICAgICAgcmV0dXJuIFtE
T01IVE1MQ29sbGVjdGlvbiBfd3JhcEhUTUxDb2xsZWN0aW9uOnN0YXRpY19jYXN0PEpTSFRNTENv
bGxlY3Rpb24qPihvYmplY3QpLT5pbXBsKCldOwotCiAgICAgcmV0dXJuIG5pbDsKIH0KIApJbmRl
eDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lv
biAyMjA3OSkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0J
KHdvcmtpbmcgY29weSkKQEAgLTIxLDcgKzIxLDYgQEAKICMgYWludCB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwogIyB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAs
CiAjIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotIwogCiBwYWNrYWdlIENvZGVHZW5lcmF0
b3JKUzsKIApAQCAtMTU5LDcgKzE1OCw3IEBAIHN1YiBVc2VzTWFudWFsVG9KU0ltcGxlbWVudGF0
aW9uCiB7CiAgICAgbXkgJHR5cGUgPSBzaGlmdDsKIAotICAgIHJldHVybiAxIGlmICR0eXBlIGVx
ICJOb2RlIiBvciAkdHlwZSBlcSAiRG9jdW1lbnQiIG9yICR0eXBlIGVxICJTVkdQYXRoU2VnIiBv
ciAkdHlwZSBlcSAiU3R5bGVTaGVldCIgb3IgJHR5cGUgZXEgIkNTU1J1bGUiIG9yICR0eXBlIGVx
ICJDU1NWYWx1ZSI7CisgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgIk5vZGUiIG9yICR0eXBlIGVx
ICJEb2N1bWVudCIgb3IgJHR5cGUgZXEgIkhUTUxDb2xsZWN0aW9uIiBvciAkdHlwZSBlcSAiU1ZH
UGF0aFNlZyIgb3IgJHR5cGUgZXEgIlN0eWxlU2hlZXQiIG9yICR0eXBlIGVxICJDU1NSdWxlIiBv
ciAkdHlwZSBlcSAiQ1NTVmFsdWUiOwogICAgIHJldHVybiAwOwogfQogCkBAIC03OTMsMTAgKzc5
MiwxMCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgImJvb2wgJHtjbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdClc
biIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogCi0gICAgICAgIGlmICgk
aW50ZXJmYWNlTmFtZSBlcSAiTmFtZWROb2RlTWFwIikgeworICAgICAgICBpZiAoJGludGVyZmFj
ZU5hbWUgZXEgIk5hbWVkTm9kZU1hcCIgb3IgJGludGVyZmFjZU5hbWUgZXEgIkhUTUxDb2xsZWN0
aW9uIikgewogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNWYWx1ZSogcHJv
dG8gPSBwcm90b3R5cGUoKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgaWYgKHByb3RvLT5pc09iamVjdCgpICYmIHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4ocHJvdG8p
LT5oYXNQcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUpKVxuIik7Ci0gICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIGZhbHNlO1xuIik7CisgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIGZhbHNlO1xuXG4iKTsKICAgICAgICAg
fQogCiAgICAgICAgIG15ICRoYXNOYW1lR2V0dGVyR2VuZXJhdGlvbiA9IHN1YiB7CkBAIC04MjIs
OSArODIxLDkgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgICAgICBpZiAoJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhHZXR0ZXIifSkgewogICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgYm9vbCBvaztcbiIpOwotICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgdW5zaWduZWQgdSA9IHByb3BlcnR5TmFtZS50b1VJbnQz
Migmb2spO1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAob2sg
JiYgdSA8IHN0YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1lKj4oaW1wbCgpKS0+bGVuZ3RoKCkpIHtc
biIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHNsb3Quc2V0Q3Vz
dG9tSW5kZXgodGhpcywgdSwgaW5kZXhHZXR0ZXIpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICB1bnNpZ25lZCBpbmRleCA9IHByb3BlcnR5TmFtZS50b1VJbnQzMigm
b2ssIGZhbHNlKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYg
KG9rICYmIGluZGV4IDwgc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPihpbXBsKCkpLT5sZW5n
dGgoKSkge1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgc2xv
dC5zZXRDdXN0b21JbmRleCh0aGlzLCBpbmRleCwgaW5kZXhHZXR0ZXIpO1xuIik7CiAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG4iKTsKICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIH1cbiIpOwogICAgICAgICB9CkBAIC05NDEs
NyArOTQwLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhTZXR0ZXIifSkgewogICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIGJvb2wgb2s7XG4iKTsKLSAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICB1bnNpZ25lZCBpbmRleCA9IHByb3BlcnR5TmFtZS50b1VJ
bnQzMigmb2spO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
dW5zaWduZWQgaW5kZXggPSBwcm9wZXJ0eU5hbWUudG9VSW50MzIoJm9rLCBmYWxzZSk7XG4iKTsK
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAob2spIHtcbiIpOwog
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBpbmRleFNldHRlcihl
eGVjLCBpbmRleCwgdmFsdWUsIGF0dHIpO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgICAgIHJldHVybjtcbiIpOwpAQCAtMTE0OCw2ICsxMTQ3LDEwIEBAIHN1
YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICByZXR1cm4gdG9KUyhleGVjLCBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KHRoaXNP
YmotPmltcGwoKSktPml0ZW0oc2xvdC5pbmRleCgpKSk7XG4iKTsKICAgICAgICAgfQogICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIn1cbiIpOworICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUg
ZXEgIkhUTUxDb2xsZWN0aW9uIikgeworICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siSlNOb2Rl
LmgifSA9IDE7CisgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJOb2RlLmgifSA9IDE7CisgICAg
ICAgIH0KICAgICB9CiAKICAgICBpZiAoKCEkaGFzUGFyZW50IG9yICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkdlbmVyYXRlVG9KUyJ9KSBhbmQgIVVzZXNNYW51YWxUb0pTSW1wbGVt
ZW50YXRpb24oJGltcGxDbGFzc05hbWUpKSB7CkBAIC0xNDA0LDEyICsxNDA3LDYgQEAgc3ViIE5h
dGl2ZVRvSlNWYWx1ZQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKCR0eXBlIGVxICJIVE1M
Q29sbGVjdGlvbiIpIHsKLSAgICAgICAgJGltcGxJbmNsdWRlc3sia2pzX2h0bWwuaCJ9ID0gMTsK
LSAgICAgICAgJGltcGxJbmNsdWRlc3siSFRNTENvbGxlY3Rpb24uaCJ9ID0gMTsKLSAgICAgICAg
cmV0dXJuICJnZXRIVE1MQ29sbGVjdGlvbihleGVjLCBXVEY6OmdldFB0cigkdmFsdWUpKSI7Ci0g
ICAgfQotCiAgICAgaWYgKCR0eXBlIGVxICJTdHlsZVNoZWV0TGlzdCIpIHsKICAgICAgICAgJGlt
cGxJbmNsdWRlc3siU3R5bGVTaGVldExpc3QuaCJ9ID0gMTsKICAgICAgICAgJGltcGxJbmNsdWRl
c3sia2pzX2Nzcy5oIn0gPSAxOwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uY3BwCShyZXZpc2lv
biAyMjA3OSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxPYmplY3RFbGVtZW50LmgiCisjaW5jbHVkZSAi
Tm9kZUxpc3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MTYsNCArNDE3LDkgQEAg
Tm9kZSAqSFRNTENvbGxlY3Rpb246Om5leHROYW1lZEl0ZW0oY29ucwogICAgIHJldHVybiAwOwog
fQogCitQYXNzUmVmUHRyPE5vZGVMaXN0PiBIVE1MQ29sbGVjdGlvbjo6dGFncyhjb25zdCBTdHJp
bmcmIG5hbWUpCit7CisgICAgcmV0dXJuIGJhc2UoKS0+Z2V0RWxlbWVudHNCeVRhZ05hbWUobmFt
ZSk7CiB9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1M
Q29sbGVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5o
CShyZXZpc2lvbiAyMjA3OSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNSwxMCArMzUsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
QXRvbWljU3RyaW5nOwogY2xhc3MgQXRvbWljU3RyaW5nSW1wbDsKIGNsYXNzIE5vZGU7CitjbGFz
cyBOb2RlTGlzdDsKIGNsYXNzIFN0cmluZzsKIAotY2xhc3MgSFRNTENvbGxlY3Rpb24gOiBwdWJs
aWMgU2hhcmVkPEhUTUxDb2xsZWN0aW9uPgoteworY2xhc3MgSFRNTENvbGxlY3Rpb24gOiBwdWJs
aWMgU2hhcmVkPEhUTUxDb2xsZWN0aW9uPiB7CiBwdWJsaWM6CiAgICAgZW51bSBUeXBlIHsKICAg
ICAgICAgLy8gZnJvbSBKU0hUTUxEb2N1bWVudApAQCAtODMsNiArODMsOSBAQCBwdWJsaWM6CiAg
ICAgLy8gSW4gY2FzZSBvZiBtdWx0aXBsZSBpdGVtcyBuYW1lZCB0aGUgc2FtZSB3YXkKICAgICB2
aXJ0dWFsIE5vZGUgKm5leHROYW1lZEl0ZW0oY29uc3QgU3RyaW5nICZuYW1lKSBjb25zdDsKIAor
ICAgIC8vIEV4dGVuc2lvbgorICAgIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IHRhZ3MoY29uc3QgU3Ry
aW5nJik7CisKICAgICB2b2lkIG5hbWVkSXRlbXMoY29uc3QgQXRvbWljU3RyaW5nICZuYW1lLCBW
ZWN0b3I8UmVmUHRyPE5vZGU+ID4mKSBjb25zdDsKIAogICAgIE5vZGUgKmJhc2UoKSB7IHJldHVy
biBtX2Jhc2UuZ2V0KCk7IH0KQEAgLTEwMCw3ICsxMDMsOSBAQCBwdWJsaWM6CiAgICAgICAgIEhh
c2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIFZlY3RvcjxOb2RlKj4qPiBuYW1lQ2FjaGU7CiAgICAg
ICAgIGJvb2wgaGFzbGVuZ3RoOwogICAgICAgICBib29sIGhhc05hbWVDYWNoZTsKLSAgICAgfTsK
KyAgICB9OworCisgICAgVHlwZSBjb2xsZWN0aW9uVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGU7
IH0KIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVOYW1lQ2FjaGUoKSBjb25z
dDsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmlkbAkocmV2aXNpb24gMjIwNzkpCisrKyBXZWJD
b3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29w
eXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
IENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4K
ICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCkBAIC0yMCwxMCArMjAsMTMgQEAKIAogbW9kdWxlIGh0bWwgewogCi0gICAg
aW50ZXJmYWNlIEhUTUxDb2xsZWN0aW9uIHsKKyAgICBpbnRlcmZhY2UgW0dlbmVyYXRlQ29uc3Ry
dWN0b3IsIEhhc0luZGV4R2V0dGVyLCBIYXNOYW1lR2V0dGVyLCBDdXN0b21DYWxsLCBDdXN0b21U
b0pTXSBIVE1MQ29sbGVjdGlvbiB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25l
ZCBsb25nIGxlbmd0aDsKLSAgICAgICAgTm9kZSBpdGVtKGluIHVuc2lnbmVkIGxvbmcgaW5kZXgp
OwotICAgICAgICBOb2RlIG5hbWVkSXRlbShpbiBET01TdHJpbmcgbmFtZSk7CisgICAgICAgIFtD
dXN0b21dIE5vZGUgaXRlbShpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICAgICAgW0N1c3Rv
bV0gTm9kZSBuYW1lZEl0ZW0oaW4gRE9NU3RyaW5nIG5hbWUpOworCisgICAgICAgIC8vIEV4dGVu
c2lvbnMKKyAgICAgICAgTm9kZUxpc3QgdGFncyhpbiBET01TdHJpbmcgbmFtZSk7CiAgICAgfTsK
IAogfQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5pZGwJKHJldmlzaW9u
IDIyMDc5KQorKysgV2ViQ29yZS9odG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxl
IENvbXB1dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcg
PHNhbS53ZWluaWdAZ21haWwuY29tPgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTIyLDcgKzIyLDcgQEAgbW9k
dWxlIGh0bWwgewogCiAgICAgLy8gRklYTUU6IFRoZSBXM0Mgc3BlYyBzYXlzIHRoYXQgSFRNTE9w
dGlvbnNDb2xsZWN0aW9uIHNob3VsZCBub3QgaGF2ZSBhIHBhcmVudCBjbGFzcy4KIAotICAgIGlu
dGVyZmFjZSBbTGVnYWN5UGFyZW50PUtKUzo6SlNIVE1MQ29sbGVjdGlvbiwgR2VuZXJhdGVOYXRp
dmVDb252ZXJ0ZXIsIEhhc0N1c3RvbUluZGV4U2V0dGVyXSBIVE1MT3B0aW9uc0NvbGxlY3Rpb24g
OiBIVE1MQ29sbGVjdGlvbiB7CisgICAgaW50ZXJmYWNlIFtHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRl
ciwgSGFzQ3VzdG9tSW5kZXhTZXR0ZXJdIEhUTUxPcHRpb25zQ29sbGVjdGlvbiA6IEhUTUxDb2xs
ZWN0aW9uIHsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGxvbmcgc2VsZWN0ZWRJbmRleDsK
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDdXN0b21dIHVuc2lnbmVkIGxvbmcgbGVuZ3Ro
CiAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzIChET01FeGNlcHRpb24pOwpA
QCAtMzUsNCArMzUsNSBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIE5vZGUgbmFtZWRJdGVtKGlu
IERPTVN0cmluZyBuYW1lKTsKICNlbmRpZgogICAgIH07CisKIH0KSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDIyMDc5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMDctMDYtMDggIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGVzdCBm
b3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwNDQKKyAgICAgICAg
QXV0b2dlbmVyYXRlIHRoZSBKUyBiaW5kaW5ncyBmb3IgSFRNTENvbGxlY3Rpb24uCisKKyAgICAg
ICAgKiB0YWJsZXMvbW96aWxsYS9idWdzL2J1ZzUzNjkwLTEtZXhwZWN0ZWQudHh0OiBOb3cgdGhy
b3dzIFVuZGVmaW5lZCBFcnJvciBpbnN0ZWFkIG9mIE51bGwgRXJyb3IKKwogMjAwNy0wNi0wOCAg
ZGV0aGJha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBCcmFk
eS4KSW5kZXg6IExheW91dFRlc3RzL3RhYmxlcy9tb3ppbGxhL2J1Z3MvYnVnNTM2OTAtMS1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdGFibGVzL21vemlsbGEvYnVncy9i
dWc1MzY5MC0xLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjIwNzkpCisrKyBMYXlvdXRUZXN0cy90
YWJsZXMvbW96aWxsYS9idWdzL2J1ZzUzNjkwLTEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xLDQgKzEsNCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ6IFR5cGVFcnJvcjogTnVs
bCB2YWx1ZQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ6IFR5cGVFcnJvcjogVW5kZWZpbmVkIHZh
bHVlCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyVmlldyBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAo=
</data>
<flag name="review"
          id="6162"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>