<?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>13791</bug_id>
          
          <creation_ts>2007-05-20 18:19:18 -0700</creation_ts>
          <short_desc>Autogenerate the JS bindings for the HTMLIFrameElement and HTMLFrameElement</short_desc>
          <delta_ts>2007-05-21 15:52:47 -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>WebCore Misc.</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>9539</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-05-20 18:19:18 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9540</commentid>
    <comment_count>1</comment_count>
      <attachid>14638</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-05-20 18:22:40 -0700</bug_when>
    <thetext>Created attachment 14638
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9541</commentid>
    <comment_count>2</comment_count>
      <attachid>14638</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2007-05-20 18:34:13 -0700</bug_when>
    <thetext>Comment on attachment 14638
patch

Is it possible to merge JSHTMLFrameElementCustom.cpp and JSHTMLIFrameElementCustom.cpp into one file that uses HTMLFrameOwnerElement? It seems a shame to have this duplicated code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9463</commentid>
    <comment_count>3</comment_count>
      <attachid>14643</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-05-21 09:52:11 -0700</bug_when>
    <thetext>Created attachment 14643
updated patch

Instead of using [Custom] to implement the security check I have added a [CheckSecurity] attribute and updated the bindings scripts to handle it.  This should resolves the code duplication issue and makes the patch a little cleaner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9464</commentid>
    <comment_count>4</comment_count>
      <attachid>14643</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2007-05-21 10:31:41 -0700</bug_when>
    <thetext>Comment on attachment 14643
updated patch

+ // alias for DOM JS DOM bindings

I don&apos;t think you need two of them are needed.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9473</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-05-21 15:52:47 -0700</bug_when>
    <thetext>Landed in r21624.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14638</attachid>
            <date>2007-05-20 18:22:40 -0700</date>
            <delta_ts>2007-05-21 09:52:11 -0700</delta_ts>
            <desc>patch</desc>
            <filename>autoJSFrames.diff</filename>
            <type>text/plain</type>
            <size>40650</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMTYxMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMDctMDUtMjAgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCBm
b3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3OTEKKyAgICAgICAg
QXV0b2dlbmVyYXRlIHRoZSBKUyBiaW5kaW5ncyBmb3IgdGhlIEhUTUxJRnJhbWVFbGVtZW50IGFu
ZCBIVE1MRnJhbWVFbGVtZW50LgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNIVE1MQW5jaG9yRWxlbWVudEN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0hUTUxGcmFtZUVsZW1lbnRDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkpTSFRNTEZyYW1lRWxlbWVudDo6Y29udGVudERvY3VtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkpTSFRNTEZyYW1lRWxlbWVudDo6Y29udGVudFdpbmRvdyk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNIVE1MSUZyYW1lRWxlbWVudEN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SlNIVE1MSUZyYW1lRWxlbWVudDo6Y29udGVudERvY3VtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkpTSFRNTElGcmFtZUVsZW1lbnQ6OmNvbnRlbnRXaW5kb3cpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL2tqc19odG1sLmNwcDoKKyAgICAgICAgKEtKUzo6KToKKyAgICAgICAgKEtKUzo6
SlNIVE1MRWxlbWVudDo6Y2xhc3NJbmZvKToKKyAgICAgICAgKEtKUzo6SlNIVE1MRWxlbWVudDo6
YWNjZXNzb3JzKToKKyAgICAgICAgKEtKUzo6SFRNTEVsZW1lbnRGdW5jdGlvbjo6Y2FsbEFzRnVu
Y3Rpb24pOgorICAgICAgICAqIGJpbmRpbmdzL2pzL2tqc19odG1sLmg6CisgICAgICAgIChLSlM6
OkpTSFRNTEVsZW1lbnQ6Oik6CisgICAgICAgICogaHRtbC9IVE1MRnJhbWVFbGVtZW50LmlkbDoK
KyAgICAgICAgKiBodG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxGcmFtZUVsZW1lbnRCYXNlOjpsb2NhdGlvbik6CisgICAgICAgICogaHRtbC9IVE1M
RnJhbWVFbGVtZW50QmFzZS5oOgorICAgICAgICAqIGh0bWwvSFRNTElGcmFtZUVsZW1lbnQuaWRs
OgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDogVW5jb21tZW50IG5ld2x5IGF2YWlsYWJs
ZSBjb25zdHVjdG9ycyAKKwogMjAwNy0wNS0yMCAgQnJhZHkgRWlkc29uIDxiZWlkc29uQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHZW9vc2UgR2FyZW4KSW5kZXg6IFdlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UJKHJldmlzaW9uIDIxNjEzKQorKysgV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3
b3JraW5nIGNvcHkpCkBAIC0zMzEsMzggKzMzMSw0MCBAQCBhbGwgOiBcCiAgICAgSlNIVE1MQlJF
bGVtZW50LmggXAogICAgIEpTSFRNTEJ1dHRvbkVsZW1lbnQuaCBcCiAgICAgSlNIVE1MQ2FudmFz
RWxlbWVudC5oIFwKKyAgICBKU0hUTUxETGlzdEVsZW1lbnQuaCBcCiAgICAgSlNIVE1MRGlyZWN0
b3J5RWxlbWVudC5oIFwKICAgICBKU0hUTUxEaXZFbGVtZW50LmggXAotICAgIEpTSFRNTERMaXN0
RWxlbWVudC5oIFwKICAgICBKU0hUTUxEb2N1bWVudC5oIFwKICAgICBKU0hUTUxFbGVtZW50Lmgg
XAogICAgIEpTSFRNTEZpZWxkU2V0RWxlbWVudC5oIFwKICAgICBKU0hUTUxGb250RWxlbWVudC5o
IFwKICAgICBKU0hUTUxGb3JtRWxlbWVudC5oIFwKKyAgICBKU0hUTUxGcmFtZUVsZW1lbnQuaCBc
CisgICAgSlNIVE1MSFJFbGVtZW50LmggXAogICAgIEpTSFRNTEhlYWRFbGVtZW50LmggXAogICAg
IEpTSFRNTEhlYWRpbmdFbGVtZW50LmggXAotICAgIEpTSFRNTEhSRWxlbWVudC5oIFwKLSAgICBK
U0hUTUxJbWFnZUVsZW1lbnQuaCBcCi0gICAgSlNIVE1MSXNJbmRleEVsZW1lbnQuaCBcCiAgICAg
SlNIVE1MSHRtbEVsZW1lbnQuaCBcCisgICAgSlNIVE1MSUZyYW1lRWxlbWVudC5oIFwKKyAgICBK
U0hUTUxJbWFnZUVsZW1lbnQuaCBcCiAgICAgSlNIVE1MSW5wdXRFbGVtZW50LmggXAogICAgIEpT
SFRNTElucHV0RWxlbWVudEJhc2VUYWJsZS5jcHAgXAorICAgIEpTSFRNTElzSW5kZXhFbGVtZW50
LmggXAorICAgIEpTSFRNTExJRWxlbWVudC5oIFwKICAgICBKU0hUTUxMYWJlbEVsZW1lbnQuaCBc
CiAgICAgSlNIVE1MTGVnZW5kRWxlbWVudC5oIFwKLSAgICBKU0hUTUxMSUVsZW1lbnQuaCBcCiAg
ICAgSlNIVE1MTGlua0VsZW1lbnQuaCBcCi0gICAgSlNIVE1MTWVudUVsZW1lbnQuaCBcCi0gICAg
SlNIVE1MT3B0aW9uRWxlbWVudC5oIFwKLSAgICBKU0hUTUxPcHRpb25zQ29sbGVjdGlvbi5oIFwK
LSAgICBKU0hUTUxPcHRHcm91cEVsZW1lbnQuaCBcCi0gICAgSlNIVE1MUXVvdGVFbGVtZW50Lmgg
XAogICAgIEpTSFRNTE1hcEVsZW1lbnQuaCBcCisgICAgSlNIVE1MTWVudUVsZW1lbnQuaCBcCiAg
ICAgSlNIVE1MTWV0YUVsZW1lbnQuaCBcCiAgICAgSlNIVE1MTW9kRWxlbWVudC5oIFwKICAgICBK
U0hUTUxPTGlzdEVsZW1lbnQuaCBcCisgICAgSlNIVE1MT3B0R3JvdXBFbGVtZW50LmggXAorICAg
IEpTSFRNTE9wdGlvbkVsZW1lbnQuaCBcCisgICAgSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCBc
CiAgICAgSlNIVE1MUGFyYWdyYXBoRWxlbWVudC5oIFwKICAgICBKU0hUTUxQYXJhbUVsZW1lbnQu
aCBcCiAgICAgSlNIVE1MUHJlRWxlbWVudC5oIFwKKyAgICBKU0hUTUxRdW90ZUVsZW1lbnQuaCBc
CiAgICAgSlNIVE1MU2NyaXB0RWxlbWVudC5oIFwKICAgICBKU0hUTUxTZWxlY3RFbGVtZW50Lmgg
XAogICAgIEpTSFRNTFN0eWxlRWxlbWVudC5oIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMTYxMykKKysrIFdlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yNzYwLDYgKzI3
NjAsMTIgQEAKIAkJQkMxQTM3QkYwOTdDNzE1RjAwMTlGM0Q4IC8qIERPTVV0aWxpdHkubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzFBMzdBOTA5N0M3
MTVGMDAxOUYzRDggLyogRE9NVXRpbGl0eS5tbSAqLzsgfTsKIAkJQkMxQTM3QzAwOTdDNzE1RjAw
MTlGM0Q4IC8qIERPTVZpZXdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzFBMzdBQTA5N0M3MTVGMDAxOUYzRDggLyogRE9NVmlld3MuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzNGQ0FBOTBBQzNE
QjU4MDBCQTU0QUQgLyogUGxhdGZvcm1TY3JvbGxCYXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDM0ZDQUE4MEFDM0RCNTgwMEJBNTRBRCAvKiBQbGF0
Zm9ybVNjcm9sbEJhci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CisJ
CUJDNDkxOEM2MEJGRUEwNTAwMDlENjMxNiAvKiBKU0hUTUxGcmFtZUVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0OTE4QzAwQkZFQTA1
MDAwOUQ2MzE2IC8qIEpTSFRNTEZyYW1lRWxlbWVudC5jcHAgKi87IH07CisJCUJDNDkxOEM3MEJG
RUEwNTAwMDlENjMxNiAvKiBKU0hUTUxGcmFtZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNDkxOEMxMEJGRUEwNTAwMDlENjMxNiAvKiBK
U0hUTUxGcmFtZUVsZW1lbnQuaCAqLzsgfTsKKwkJQkM0OTE4QzgwQkZFQTA1MDAwOUQ2MzE2IC8q
IEpTSFRNTElGcmFtZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkM0OTE4QzIwQkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTElGcmFtZUVs
ZW1lbnQuY3BwICovOyB9OworCQlCQzQ5MThDOTBCRkVBMDUwMDA5RDYzMTYgLyogSlNIVE1MSUZy
YW1lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkM0OTE4QzMwQkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTElGcmFtZUVsZW1lbnQuaCAqLzsg
fTsKKwkJQkM0OTE4Q0UwQkZFQTA2NjAwOUQ2MzE2IC8qIEpTSFRNTEZyYW1lRWxlbWVudEN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQ5
MThDQzBCRkVBMDY2MDA5RDYzMTYgLyogSlNIVE1MRnJhbWVFbGVtZW50Q3VzdG9tLmNwcCAqLzsg
fTsKKwkJQkM0OTE4Q0YwQkZFQTA2NjAwOUQ2MzE2IC8qIEpTSFRNTElGcmFtZUVsZW1lbnRDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0
OTE4Q0QwQkZFQTA2NjAwOUQ2MzE2IC8qIEpTSFRNTElGcmFtZUVsZW1lbnRDdXN0b20uY3BwICov
OyB9OwogCQlCQzU4OEFGMDBCRkE2Q0Y5MDBFRTY3OUUgLyogSFRNTFBhcnNlckVycm9yQ29kZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTg4QUVG
MEJGQTZDRjkwMEVFNjc5RSAvKiBIVE1MUGFyc2VyRXJyb3JDb2Rlcy5oICovOyB9OwogCQlCQzU4
OEI0QjBCRkE3MjNDMDBFRTY3OUUgLyogSFRNTFBhcnNlckVycm9yQ29kZXMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1ODhCNEEwQkZBNzIzQzAw
RUU2NzlFIC8qIEhUTUxQYXJzZXJFcnJvckNvZGVzLmNwcCAqLzsgfTsKIAkJQkM2RDZERDIwOUFG
OTA2NjAwRjU5NzU5IC8qIEZvbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkM2RDZERDAwOUFGOTA2NjAwRjU5NzU5IC8qIEZvbnQuY3BwICovOyB9
OwpAQCAtNTk4Miw2ICs1OTg4LDEyIEBACiAJCUJDMUEzN0FBMDk3QzcxNUYwMDE5RjNEOCAvKiBE
T01WaWV3cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NVmlld3MuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMzQjM2NDcwNUM5RDVFMjAwRTQyOTAyIC8q
IEF0b21pY1N0cmluZ0xpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQXRvbWljU3RyaW5nTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQkMzRkNBQTgwQUMzREI1ODAwQkE1
NEFEIC8qIFBsYXRmb3JtU2Nyb2xsQmFyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQbGF0Zm9ybVNjcm9sbEJhci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlC
QzQ5MThDMDBCRkVBMDUwMDA5RDYzMTYgLyogSlNIVE1MRnJhbWVFbGVtZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxGcmFtZUVsZW1lbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzQ5MThDMTBCRkVBMDUwMDA5RDYzMTYgLyog
SlNIVE1MRnJhbWVFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U0hUTUxGcmFtZUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0OTE4
QzIwQkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTElGcmFtZUVsZW1lbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTElGcmFtZUVsZW1lbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzQ5MThDMzBCRkVBMDUwMDA5RDYzMTYgLyogSlNI
VE1MSUZyYW1lRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNI
VE1MSUZyYW1lRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzQ5MThD
QzBCRkVBMDY2MDA5RDYzMTYgLyogSlNIVE1MRnJhbWVFbGVtZW50Q3VzdG9tLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxGcmFtZUVsZW1lbnRDdXN0b20u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzQ5MThDRDBCRkVBMDY2MDA5RDYz
MTYgLyogSlNIVE1MSUZyYW1lRWxlbWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MSUZyYW1lRWxlbWVudEN1c3RvbS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNTg4QUVGMEJGQTZDRjkwMEVFNjc5RSAvKiBIVE1MUGFy
c2VyRXJyb3JDb2Rlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFBh
cnNlckVycm9yQ29kZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1ODhCNEEw
QkZBNzIzQzAwRUU2NzlFIC8qIEhUTUxQYXJzZXJFcnJvckNvZGVzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MUGFyc2VyRXJyb3JDb2Rlcy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNUVDMTc2MEE1MDdFM0UwMDYwMDdGNSAvKiB2aWV3
LXNvdXJjZS5jc3MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9ICJ2aWV3LXNvdXJjZS5jc3MiOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjMzMCw2ICs2MzQyLDEwIEBACiAJCTE0REZC
MzNGMEE3REY3NjMwMDE4Rjc2OSAvKiBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUJDNDkxOEMwMEJGRUEwNTAwMDlENjMxNiAv
KiBKU0hUTUxGcmFtZUVsZW1lbnQuY3BwICovLAorCQkJCUJDNDkxOEMxMEJGRUEwNTAwMDlENjMx
NiAvKiBKU0hUTUxGcmFtZUVsZW1lbnQuaCAqLywKKwkJCQlCQzQ5MThDMjBCRkVBMDUwMDA5RDYz
MTYgLyogSlNIVE1MSUZyYW1lRWxlbWVudC5jcHAgKi8sCisJCQkJQkM0OTE4QzMwQkZFQTA1MDAw
OUQ2MzE2IC8qIEpTSFRNTElGcmFtZUVsZW1lbnQuaCAqLywKIAkJCQk2NURGMzFEODA5RDFDMTIy
MDAwQkUzMjUgLyogSlNBdHRyLmNwcCAqLywKIAkJCQk2NURGMzFEOTA5RDFDMTIzMDAwQkUzMjUg
LyogSlNBdHRyLmggKi8sCiAJCQkJNjVERjMyMzMwOUQxREU2NTAwMEJFMzI1IC8qIEpTQ2FudmFz
R3JhZGllbnQuY3BwICovLApAQCAtOTAxOSw2ICs5MDM1LDggQEAKIAkJCQkxNERGQjMzRjBBN0RG
NzYzMDAxOEY3NjkgLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTkzRjhCMzA2MEEzMDBGRUEw
MEY2MUFCOCAvKiBDb2RlR2VuZXJhdG9ySlMucG0gKi8sCiAJCQkJMUE5RUY0NTYwQTFCOTU3RDAw
MzMyQjYzIC8qIEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcCAqLywKKwkJCQlC
QzQ5MThDQzBCRkVBMDY2MDA5RDYzMTYgLyogSlNIVE1MRnJhbWVFbGVtZW50Q3VzdG9tLmNwcCAq
LywKKwkJCQlCQzQ5MThDRDBCRkVBMDY2MDA5RDYzMTYgLyogSlNIVE1MSUZyYW1lRWxlbWVudEN1
c3RvbS5jcHAgKi8sCiAJCQkJRTEwQjkzQzIwQjczQzI5MTAwM0VEODkwIC8qIEpTQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyLmNwcCAqLywKIAkJCQlFMTBCOTM3QjBCNzNDMDBBMDAzRUQ4OTAgLyogSlND
dXN0b21YUGF0aE5TUmVzb2x2ZXIuaCAqLywKIAkJCQk5MjkyNjQ3NjBCNjFGQzcyMDBCNDFEMzQg
LyogSlNEb2N1bWVudEN1c3RvbS5jcHAgKi8sCkBAIC0xMTMyMyw2ICsxMTM0MSw4IEBACiAJCQkJ
QkMwNkVEQTAwQkZENjYwNjAwODU2RTlEIC8qIEpTSFRNTFRhYmxlUm93RWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkMwNkVERTQwQkZENkQwRDAwODU2RTlEIC8qIEpTSFRNTFRhYmxlQ2Vs
bEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDZFRTA1MEJGRDcxQUEwMDg1NkU5RCAv
KiBKU0hUTUxUYWJsZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNDkxOEM3MEJGRUEw
NTAwMDlENjMxNiAvKiBKU0hUTUxGcmFtZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUJD
NDkxOEM5MEJGRUEwNTAwMDlENjMxNiAvKiBKU0hUTUxJRnJhbWVFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKQEAgLTEyNzA1LDYgKzEyNzI1LDEwIEBACiAJCQkJQkMwNkVEOUYwQkZENjYwNjAwODU2
RTlEIC8qIEpTSFRNTFRhYmxlUm93RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzA2
RURFMzBCRkQ2RDBEMDA4NTZFOUQgLyogSlNIVE1MVGFibGVDZWxsRWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQzA2RUUwNDBCRkQ3MUFBMDA4NTZFOUQgLyogSlNIVE1MVGFibGVFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDNDkxOEM2MEJGRUEwNTAwMDlENjMxNiAvKiBK
U0hUTUxGcmFtZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkM0OTE4QzgwQkZFQTA1
MDAwOUQ2MzE2IC8qIEpTSFRNTElGcmFtZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
QkM0OTE4Q0UwQkZFQTA2NjAwOUQ2MzE2IC8qIEpTSFRNTEZyYW1lRWxlbWVudEN1c3RvbS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlCQzQ5MThDRjBCRkVBMDY2MDA5RDYzMTYgLyogSlNIVE1MSUZy
YW1lRWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFdlYkNvcmUvYmluZGlu
Z3MvanMvSlNIVE1MQW5jaG9yRWxlbWVudEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0hUTUxBbmNob3JFbGVtZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gMjE2
MTMpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEFuY2hvckVsZW1lbnRDdXN0b20uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
NyBBcHBsZSwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4KICAqCiAgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxFbGVtZW50V3JhcHBl
ckZhY3RvcnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRWxl
bWVudFdyYXBwZXJGYWN0b3J5LmNwcAkocmV2aXNpb24gMjE2MTMpCisrKyBXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM1LDEwICszNSwxMiBAQAogI2luY2x1ZGUgIkhUTUxGaWVsZFNldEVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MRm9udEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MRnJhbWVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEhSRWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxIZWFkaW5nRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxIdG1sRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJRnJhbWVF
bGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJ
bnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSXNJbmRleEVsZW1lbnQuaCIKQEAgLTg4LDEw
ICs5MCwxMiBAQAogI2luY2x1ZGUgIkpTSFRNTEZpZWxkU2V0RWxlbWVudC5oIgogI2luY2x1ZGUg
IkpTSFRNTEZvbnRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNIVE1MRm9ybUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJKU0hUTUxGcmFtZUVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0hUTUxIUkVsZW1lbnQu
aCIKICNpbmNsdWRlICJKU0hUTUxIZWFkRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTSFRNTEhlYWRp
bmdFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNIVE1MSHRtbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJK
U0hUTUxJRnJhbWVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNIVE1MSW1hZ2VFbGVtZW50LmgiCiAj
aW5jbHVkZSAiSlNIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNIVE1MSXNJbmRleEVs
ZW1lbnQuaCIKQEAgLTE0NSwyMCArMTQ5LDIyIEBAIHR5cGVkZWYgRE9NTm9kZSogKCpDcmVhdGVI
VE1MRWxlbWVudFdyYXAKICAgICBtYWNybyhib2R5LCBCb2R5KSBcCiAgICAgbWFjcm8oYnIsIEJS
KSBcCiAgICAgbWFjcm8oYnV0dG9uLCBCdXR0b24pIFwKLSAgICBtYWNybyhjYXB0aW9uLCBUYWJs
ZUNhcHRpb24pIFwKICAgICBtYWNybyhjYW52YXMsIENhbnZhcykgXAorICAgIG1hY3JvKGNhcHRp
b24sIFRhYmxlQ2FwdGlvbikgXAogICAgIG1hY3JvKGNvbCwgVGFibGVDb2wpIFwKICAgICBtYWNy
byhkZWwsIE1vZCkgXAogICAgIG1hY3JvKGRpciwgRGlyZWN0b3J5KSBcCiAgICAgbWFjcm8oZGl2
LCBEaXYpIFwKICAgICBtYWNybyhkbCwgRExpc3QpIFwKICAgICBtYWNybyhmaWVsZHNldCwgRmll
bGRTZXQpIFwKLSAgICBtYWNybyhmb3JtLCBGb3JtKSBcCiAgICAgbWFjcm8oZm9udCwgRm9udCkg
XAorICAgIG1hY3JvKGZvcm0sIEZvcm0pIFwKKyAgICBtYWNybyhmcmFtZSwgRnJhbWUpIFwKICAg
ICBtYWNybyhoMSwgSGVhZGluZykgXAogICAgIG1hY3JvKGhlYWQsIEhlYWQpIFwKICAgICBtYWNy
byhociwgSFIpIFwKICAgICBtYWNybyhodG1sLCBIdG1sKSBcCisgICAgbWFjcm8oaWZyYW1lLCBJ
RnJhbWUpIFwKICAgICBtYWNybyhpbWcsIEltYWdlKSBcCiAgICAgbWFjcm8oaW5wdXQsIElucHV0
KSBcCiAgICAgbWFjcm8oaXNpbmRleCwgSXNJbmRleCkgXApJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0hUTUxGcmFtZUVsZW1lbnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3MvanMvSlNIVE1MRnJhbWVFbGVtZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gMCkKKysr
IFdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRnJhbWVFbGVtZW50Q3VzdG9tLmNwcAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJ
bmMuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBs
YWNlIC0gU3VpdGUgMzMwLAorICogQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTSFRNTEZyYW1lRWxlbWVudC5oIgorCisj
aW5jbHVkZSAiSFRNTEZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5j
bHVkZSAia2pzX2RvbS5oIgorI2luY2x1ZGUgImtqc19odG1sLmgiCisjaW5jbHVkZSAia2pzX3dp
bmRvdy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBLSlM7CisK
K0tKUzo6SlNWYWx1ZSogSlNIVE1MRnJhbWVFbGVtZW50Ojpjb250ZW50RG9jdW1lbnQoS0pTOjpF
eGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgSFRNTEZyYW1lRWxlbWVudCogaW1wID0gc3Rh
dGljX2Nhc3Q8SFRNTEZyYW1lRWxlbWVudCo+KGltcGwoKSk7CisgICAgcmV0dXJuIGNoZWNrTm9k
ZVNlY3VyaXR5KGV4ZWMsIGltcC0+Y29udGVudERvY3VtZW50KCkpID8gdG9KUyhleGVjLCBpbXAt
PmNvbnRlbnREb2N1bWVudCgpKSA6IGpzVW5kZWZpbmVkKCk7Cit9CisKK0tKUzo6SlNWYWx1ZSog
SlNIVE1MRnJhbWVFbGVtZW50Ojpjb250ZW50V2luZG93KEtKUzo6RXhlY1N0YXRlKiBleGVjKSBj
b25zdAoreworICAgIEhUTUxGcmFtZUVsZW1lbnQqIGltcCA9IHN0YXRpY19jYXN0PEhUTUxGcmFt
ZUVsZW1lbnQqPihpbXBsKCkpOworICAgIHJldHVybiBjaGVja05vZGVTZWN1cml0eShleGVjLCBp
bXAtPmNvbnRlbnREb2N1bWVudCgpKSA/IFdpbmRvdzo6cmV0cmlldmUoaW1wLT5jb250ZW50RnJh
bWUoKSkgOiBqc1VuZGVmaW5lZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTElGcmFtZUVsZW1lbnRDdXN0b20uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MSUZyYW1lRWxlbWVudEN1c3RvbS5j
cHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTElGcmFtZUVsZW1l
bnRDdXN0b20uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA3IEFwcGxlIEluYy4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisgKiBCb3N0b24sIE1BIDAyMTEx
LTEzMDcsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNIVE1M
SUZyYW1lRWxlbWVudC5oIgorCisjaW5jbHVkZSAiSFRNTElGcmFtZUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgImtqc19kb20uaCIKKyNpbmNsdWRlICJranNfaHRt
bC5oIgorI2luY2x1ZGUgImtqc193aW5kb3cuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1
c2luZyBuYW1lc3BhY2UgS0pTOworCitLSlM6OkpTVmFsdWUqIEpTSFRNTElGcmFtZUVsZW1lbnQ6
OmNvbnRlbnREb2N1bWVudChLSlM6OkV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICBIVE1M
SUZyYW1lRWxlbWVudCogaW1wID0gc3RhdGljX2Nhc3Q8SFRNTElGcmFtZUVsZW1lbnQqPihpbXBs
KCkpOworICAgIHJldHVybiBjaGVja05vZGVTZWN1cml0eShleGVjLCBpbXAtPmNvbnRlbnREb2N1
bWVudCgpKSA/IHRvSlMoZXhlYywgaW1wLT5jb250ZW50RG9jdW1lbnQoKSkgOiBqc1VuZGVmaW5l
ZCgpOworfQorCitLSlM6OkpTVmFsdWUqIEpTSFRNTElGcmFtZUVsZW1lbnQ6OmNvbnRlbnRXaW5k
b3coS0pTOjpFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgSFRNTElGcmFtZUVsZW1lbnQq
IGltcCA9IHN0YXRpY19jYXN0PEhUTUxJRnJhbWVFbGVtZW50Kj4oaW1wbCgpKTsKKyAgICByZXR1
cm4gY2hlY2tOb2RlU2VjdXJpdHkoZXhlYywgaW1wLT5jb250ZW50RG9jdW1lbnQoKSkgPyBXaW5k
b3c6OnJldHJpZXZlKGltcC0+Y29udGVudEZyYW1lKCkpIDoganNVbmRlZmluZWQoKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfaHRt
bC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfaHRtbC5jcHAJKHJl
dmlzaW9uIDIxNjEzKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfaHRtbC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQxMCwxMSArNDEwLDEwIEBAIHZvaWQgSlNIVE1MRG9jdW1lbnQ6OnB1dFZh
bHVlUHJvcGVydHkoRXgKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCitjb25zdCBDbGFzc0luZm8g
SlNIVE1MRWxlbWVudDo6aW5mbyA9IHsgIkhUTUxFbGVtZW50IiwgJkpTRWxlbWVudDo6aW5mbywg
JkhUTUxFbGVtZW50VGFibGUsIDAgfTsKKwogY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6
OmVtYmVkX2luZm8gPSB7ICJIVE1MRW1iZWRFbGVtZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8s
ICZIVE1MRW1iZWRFbGVtZW50VGFibGUsIDAgfTsKIGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVt
ZW50OjpmcmFtZVNldF9pbmZvID0geyAiSFRNTEZyYW1lU2V0RWxlbWVudCIsICZKU0hUTUxFbGVt
ZW50OjppbmZvLCAmSFRNTEZyYW1lU2V0RWxlbWVudFRhYmxlLCAwIH07Ci1jb25zdCBDbGFzc0lu
Zm8gSlNIVE1MRWxlbWVudDo6ZnJhbWVfaW5mbyA9IHsgIkhUTUxGcmFtZUVsZW1lbnQiLCAmSlNI
VE1MRWxlbWVudDo6aW5mbywgJkhUTUxGcmFtZUVsZW1lbnRUYWJsZSwgMCB9OwotY29uc3QgQ2xh
c3NJbmZvIEpTSFRNTEVsZW1lbnQ6OmlGcmFtZV9pbmZvID0geyAiSFRNTElGcmFtZUVsZW1lbnQi
LCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxJRnJhbWVFbGVtZW50VGFibGUsIDAgfTsKLWNv
bnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjppbmZvID0geyAiSFRNTEVsZW1lbnQiLCAmSlNF
bGVtZW50OjppbmZvLCAmSFRNTEVsZW1lbnRUYWJsZSwgMCB9OwogY29uc3QgQ2xhc3NJbmZvIEpT
SFRNTEVsZW1lbnQ6Om1hcnF1ZWVfaW5mbyA9IHsgIkhUTUxNYXJxdWVlRWxlbWVudCIsICZKU0hU
TUxFbGVtZW50OjppbmZvLCAmSFRNTE1hcnF1ZWVFbGVtZW50VGFibGUsIDAgfTsKIGNvbnN0IENs
YXNzSW5mbyBKU0hUTUxFbGVtZW50OjpvYmplY3RfaW5mbyA9IHsgIkhUTUxPYmplY3RFbGVtZW50
IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MT2JqZWN0RWxlbWVudFRhYmxlLCAwIH07CiAK
QEAgLTQyMyw5ICs0MjIsNyBAQCBjb25zdCBDbGFzc0luZm8qIEpTSFRNTEVsZW1lbnQ6OmNsYXNz
SW5mCiAgICAgc3RhdGljIEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIGNvbnN0IENsYXNzSW5m
byo+IGNsYXNzSW5mb01hcDsKICAgICBpZiAoY2xhc3NJbmZvTWFwLmlzRW1wdHkoKSkgewogICAg
ICAgICBjbGFzc0luZm9NYXAuc2V0KGVtYmVkVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmVtYmVk
X2luZm8pOwotICAgICAgICBjbGFzc0luZm9NYXAuc2V0KGZyYW1lVGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgJmZyYW1lX2luZm8pOwogICAgICAgICBjbGFzc0luZm9NYXAuc2V0KGZyYW1lc2V0VGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgJmZyYW1lU2V0X2luZm8pOwotICAgICAgICBjbGFzc0luZm9N
YXAuc2V0KGlmcmFtZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZpRnJhbWVfaW5mbyk7CiAgICAg
ICAgIGNsYXNzSW5mb01hcC5zZXQobWFycXVlZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZtYXJx
dWVlX2luZm8pOwogICAgICAgICBjbGFzc0luZm9NYXAuc2V0KG9iamVjdFRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksICZvYmplY3RfaW5mbyk7CiAgICAgfQpAQCAtNDQwLDggKzQzNyw2IEBAIGNvbnN0
IENsYXNzSW5mbyogSlNIVE1MRWxlbWVudDo6Y2xhc3NJbmYKIGNvbnN0IEpTSFRNTEVsZW1lbnQ6
OkFjY2Vzc29ycyBKU0hUTUxFbGVtZW50OjpvYmplY3RfYWNjZXNzb3JzID0geyAmSlNIVE1MRWxl
bWVudDo6b2JqZWN0R2V0dGVyLCAmSlNIVE1MRWxlbWVudDo6b2JqZWN0U2V0dGVyIH07CiBjb25z
dCBKU0hUTUxFbGVtZW50OjpBY2Nlc3NvcnMgSlNIVE1MRWxlbWVudDo6ZW1iZWRfYWNjZXNzb3Jz
ID0geyAmSlNIVE1MRWxlbWVudDo6ZW1iZWRHZXR0ZXIsICZKU0hUTUxFbGVtZW50OjplbWJlZFNl
dHRlciB9OwogY29uc3QgSlNIVE1MRWxlbWVudDo6QWNjZXNzb3JzIEpTSFRNTEVsZW1lbnQ6OmZy
YW1lU2V0X2FjY2Vzc29ycyA9IHsgJkpTSFRNTEVsZW1lbnQ6OmZyYW1lU2V0R2V0dGVyLCAmSlNI
VE1MRWxlbWVudDo6ZnJhbWVTZXRTZXR0ZXIgfTsKLWNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFjY2Vz
c29ycyBKU0hUTUxFbGVtZW50OjpmcmFtZV9hY2Nlc3NvcnMgPSB7ICZKU0hUTUxFbGVtZW50Ojpm
cmFtZUdldHRlciwgJkpTSFRNTEVsZW1lbnQ6OmZyYW1lU2V0dGVyIH07Ci1jb25zdCBKU0hUTUxF
bGVtZW50OjpBY2Nlc3NvcnMgSlNIVE1MRWxlbWVudDo6aUZyYW1lX2FjY2Vzc29ycyA9IHsgJkpT
SFRNTEVsZW1lbnQ6OmlGcmFtZUdldHRlciwgJkpTSFRNTEVsZW1lbnQ6OmlGcmFtZVNldHRlciB9
OwogY29uc3QgSlNIVE1MRWxlbWVudDo6QWNjZXNzb3JzIEpTSFRNTEVsZW1lbnQ6Om1hcnF1ZWVf
YWNjZXNzb3JzID0geyAmSlNIVE1MRWxlbWVudDo6bWFycXVlZUdldHRlciwgJkpTSFRNTEVsZW1l
bnQ6Om1hcnF1ZWVTZXR0ZXIgfTsKIAogY29uc3QgSlNIVE1MRWxlbWVudDo6QWNjZXNzb3JzKiBK
U0hUTUxFbGVtZW50OjphY2Nlc3NvcnMoKSBjb25zdApAQCAtNDQ5LDkgKzQ0NCw3IEBAIGNvbnN0
IEpTSFRNTEVsZW1lbnQ6OkFjY2Vzc29ycyogSlNIVE1MRWwKICAgICBzdGF0aWMgSGFzaE1hcDxB
dG9taWNTdHJpbmdJbXBsKiwgY29uc3QgQWNjZXNzb3JzKj4gYWNjZXNzb3JNYXA7CiAgICAgaWYg
KGFjY2Vzc29yTWFwLmlzRW1wdHkoKSkgewogICAgICAgICBhY2Nlc3Nvck1hcC5hZGQoZW1iZWRU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmZW1iZWRfYWNjZXNzb3JzKTsKLSAgICAgICAgYWNjZXNz
b3JNYXAuYWRkKGZyYW1lVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmZyYW1lX2FjY2Vzc29ycyk7
CiAgICAgICAgIGFjY2Vzc29yTWFwLmFkZChmcmFtZXNldFRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
ICZmcmFtZVNldF9hY2Nlc3NvcnMpOwotICAgICAgICBhY2Nlc3Nvck1hcC5hZGQoaWZyYW1lVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgJmlGcmFtZV9hY2Nlc3NvcnMpOwogICAgICAgICBhY2Nlc3Nv
ck1hcC5hZGQobWFycXVlZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZtYXJxdWVlX2FjY2Vzc29y
cyk7CiAgICAgICAgIGFjY2Vzc29yTWFwLmFkZChvYmplY3RUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCAmb2JqZWN0X2FjY2Vzc29ycyk7CiAgICAgfQpAQCAtNTE2LDM2ICs1MDksNiBAQCBjb25zdCBK
U0hUTUxFbGVtZW50OjpBY2Nlc3NvcnMqIEpTSFRNTEVsCiBjb2xzICAgICAgICAgIEtKUzo6SlNI
VE1MRWxlbWVudDo6RnJhbWVTZXRDb2xzICAgICAgICAgICAgICAgICAgRG9udERlbGV0ZQogcm93
cyAgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OkZyYW1lU2V0Um93cyAgICAgICAgICAgICAg
ICAgIERvbnREZWxldGUKIEBlbmQKLUBiZWdpbiBIVE1MRnJhbWVFbGVtZW50VGFibGUgOQotICBj
b250ZW50RG9jdW1lbnQgS0pTOjpKU0hUTUxFbGVtZW50OjpGcmFtZUNvbnRlbnREb2N1bWVudCAg
ICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICBjb250ZW50V2luZG93ICAgS0pTOjpKU0hUTUxF
bGVtZW50OjpGcmFtZUNvbnRlbnRXaW5kb3cgICAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQot
ICBmcmFtZUJvcmRlciAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpGcmFtZUZyYW1lQm9yZGVyICAg
ICAgICAgICAgRG9udERlbGV0ZQotICBsb25nRGVzYyAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50
OjpGcmFtZUxvbmdEZXNjICAgICAgICAgICAgICAgRG9udERlbGV0ZQotICBtYXJnaW5IZWlnaHQg
ICAgS0pTOjpKU0hUTUxFbGVtZW50OjpGcmFtZU1hcmdpbkhlaWdodCAgICAgICAgICAgRG9udERl
bGV0ZQotICBtYXJnaW5XaWR0aCAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpGcmFtZU1hcmdpbldp
ZHRoICAgICAgICAgICAgRG9udERlbGV0ZQotICBuYW1lICAgICAgICAgICAgS0pTOjpKU0hUTUxF
bGVtZW50OjpGcmFtZU5hbWUgICAgICAgICAgICAgICAgICAgRG9udERlbGV0ZQotICBub1Jlc2l6
ZSAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpGcmFtZU5vUmVzaXplICAgICAgICAgICAgICAg
RG9udERlbGV0ZQotICB3aWR0aCAgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpGcmFtZVdp
ZHRoICAgICAgICAgICAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICBoZWlnaHQgICAgICAg
ICAgS0pTOjpKU0hUTUxFbGVtZW50OjpGcmFtZUhlaWdodCAgICAgICAgICAgICAgICAgRG9udERl
bGV0ZXxSZWFkT25seQotICBzY3JvbGxpbmcgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpGcmFt
ZVNjcm9sbGluZyAgICAgICAgICAgICAgRG9udERlbGV0ZQotICBzcmMgICAgICAgICAgICAgS0pT
OjpKU0hUTUxFbGVtZW50OjpGcmFtZVNyYyAgICAgICAgICAgICAgICAgICAgRG9udERlbGV0ZQot
ICBsb2NhdGlvbiAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpGcmFtZUxvY2F0aW9uICAgICAg
ICAgICAgICAgRG9udERlbGV0ZQotQGVuZAotQGJlZ2luIEhUTUxJRnJhbWVFbGVtZW50VGFibGUg
MTIKLSAgYWxpZ24gICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SUZyYW1lQWxpZ24gICAg
ICAgICAgICAgICAgIERvbnREZWxldGUKLSAgY29udGVudERvY3VtZW50IEtKUzo6SlNIVE1MRWxl
bWVudDo6SUZyYW1lQ29udGVudERvY3VtZW50ICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAg
Y29udGVudFdpbmRvdyAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SUZyYW1lQ29udGVudFdpbmRvdyAg
ICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgZnJhbWVCb3JkZXIgICAgIEtKUzo6SlNIVE1M
RWxlbWVudDo6SUZyYW1lRnJhbWVCb3JkZXIgICAgICAgICAgIERvbnREZWxldGUKLSAgaGVpZ2h0
ICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SUZyYW1lSGVpZ2h0ICAgICAgICAgICAgICAg
IERvbnREZWxldGUKLSAgbG9uZ0Rlc2MgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SUZyYW1l
TG9uZ0Rlc2MgICAgICAgICAgICAgIERvbnREZWxldGUKLSAgbWFyZ2luSGVpZ2h0ICAgIEtKUzo6
SlNIVE1MRWxlbWVudDo6SUZyYW1lTWFyZ2luSGVpZ2h0ICAgICAgICAgIERvbnREZWxldGUKLSAg
bWFyZ2luV2lkdGggICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SUZyYW1lTWFyZ2luV2lkdGggICAg
ICAgICAgIERvbnREZWxldGUKLSAgbmFtZSAgICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6
SUZyYW1lTmFtZSAgICAgICAgICAgICAgICAgIERvbnREZWxldGUKLSAgc2Nyb2xsaW5nICAgICAg
IEtKUzo6SlNIVE1MRWxlbWVudDo6SUZyYW1lU2Nyb2xsaW5nICAgICAgICAgICAgIERvbnREZWxl
dGUKLSAgc3JjICAgICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SUZyYW1lU3JjICAgICAg
ICAgICAgICAgICAgIERvbnREZWxldGUKLSAgd2lkdGggICAgICAgICAgIEtKUzo6SlNIVE1MRWxl
bWVudDo6SUZyYW1lV2lkdGggICAgICAgICAgICAgICAgIERvbnREZWxldGUKLUBlbmQKLQogQGJl
Z2luIEhUTUxNYXJxdWVlRWxlbWVudFRhYmxlIDIKICAgc3RhcnQgICAgICAgICAgIEtKUzo6SlNI
VE1MRWxlbWVudDo6TWFycXVlZVN0YXJ0ICAgICAgICAgICAgICAgIERvbnREZWxldGV8RnVuY3Rp
b24gMAogICBzdG9wICAgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpNYXJxdWVlU3RvcCAg
ICAgICAgICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCkBAIC03MTQsNTQgKzY3Nyw2IEBA
IEpTVmFsdWUgKkpTSFRNTEVsZW1lbnQ6OmZyYW1lU2V0R2V0dGVyKEUKICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKIH0KIAotSlNWYWx1ZSAqSlNIVE1MRWxlbWVudDo6ZnJhbWVHZXR0ZXIoRXhl
Y1N0YXRlKiBleGVjLCBpbnQgdG9rZW4pIGNvbnN0Ci17Ci0gICAgSFRNTEZyYW1lRWxlbWVudCYg
ZnJhbWVFbGVtZW50ID0gKnN0YXRpY19jYXN0PEhUTUxGcmFtZUVsZW1lbnQqPihpbXBsKCkpOwot
ICAgIHN3aXRjaCAodG9rZW4pIHsKLSAgICAgICAgY2FzZSBGcmFtZUNvbnRlbnREb2N1bWVudDog
cmV0dXJuIGNoZWNrTm9kZVNlY3VyaXR5KGV4ZWMsZnJhbWVFbGVtZW50LmNvbnRlbnREb2N1bWVu
dCgpKSA/IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9KUyhl
eGVjLCBmcmFtZUVsZW1lbnQuY29udGVudERvY3VtZW50KCkpIDoganNVbmRlZmluZWQoKTsKLSAg
ICAgICAgY2FzZSBGcmFtZUNvbnRlbnRXaW5kb3c6ICAgcmV0dXJuIGNoZWNrTm9kZVNlY3VyaXR5
KGV4ZWMsZnJhbWVFbGVtZW50LmNvbnRlbnREb2N1bWVudCgpKQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID8gV2luZG93OjpyZXRyaWV2ZShmcmFtZUVsZW1lbnQuY29u
dGVudEZyYW1lKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBq
c1VuZGVmaW5lZCgpOwotICAgICAgICBjYXNlIEZyYW1lRnJhbWVCb3JkZXI6ICAgICByZXR1cm4g
anNTdHJpbmcoZnJhbWVFbGVtZW50LmZyYW1lQm9yZGVyKCkpOwotICAgICAgICBjYXNlIEZyYW1l
TG9uZ0Rlc2M6ICAgICAgICByZXR1cm4ganNTdHJpbmcoZnJhbWVFbGVtZW50LmxvbmdEZXNjKCkp
OwotICAgICAgICBjYXNlIEZyYW1lTWFyZ2luSGVpZ2h0OiAgICByZXR1cm4ganNTdHJpbmcoZnJh
bWVFbGVtZW50Lm1hcmdpbkhlaWdodCgpKTsKLSAgICAgICAgY2FzZSBGcmFtZU1hcmdpbldpZHRo
OiAgICAgcmV0dXJuIGpzU3RyaW5nKGZyYW1lRWxlbWVudC5tYXJnaW5XaWR0aCgpKTsKLSAgICAg
ICAgY2FzZSBGcmFtZU5hbWU6ICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGZyYW1lRWxlbWVu
dC5uYW1lKCkpOwotICAgICAgICBjYXNlIEZyYW1lTm9SZXNpemU6ICAgICAgICByZXR1cm4ganNC
b29sZWFuKGZyYW1lRWxlbWVudC5ub1Jlc2l6ZSgpKTsKLSAgICAgICAgY2FzZSBGcmFtZVdpZHRo
OiAgICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGZyYW1lRWxlbWVudC53aWR0aCgpKTsKLSAgICAg
ICAgY2FzZSBGcmFtZUhlaWdodDogICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGZyYW1lRWxlbWVu
dC5oZWlnaHQoKSk7Ci0gICAgICAgIGNhc2UgRnJhbWVTY3JvbGxpbmc6ICAgICAgIHJldHVybiBq
c1N0cmluZyhmcmFtZUVsZW1lbnQuc2Nyb2xsaW5nKCkpOwotICAgICAgICBjYXNlIEZyYW1lU3Jj
OgotICAgICAgICBjYXNlIEZyYW1lTG9jYXRpb246ICAgICAgICByZXR1cm4ganNTdHJpbmcoZnJh
bWVFbGVtZW50LnNyYygpKTsKLSAgICB9Ci0gICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci19Ci0K
LUpTVmFsdWUgKkpTSFRNTEVsZW1lbnQ6OmlGcmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGlu
dCB0b2tlbikgY29uc3QKLXsKLSAgICBIVE1MSUZyYW1lRWxlbWVudCYgaUZyYW1lID0gKnN0YXRp
Y19jYXN0PEhUTUxJRnJhbWVFbGVtZW50Kj4oaW1wbCgpKTsKLSAgICBzd2l0Y2ggKHRva2VuKSB7
Ci0gICAgICAgIGNhc2UgSUZyYW1lQWxpZ246ICAgICAgICAgICAgICAgIHJldHVybiBqc1N0cmlu
ZyhpRnJhbWUuYWxpZ24oKSk7Ci0gICAgICAgICAgLy8gIyMjIHNlY3VyaXR5IGNoZWNrID8KLSAg
ICAgICAgY2FzZSBJRnJhbWVDb250ZW50RG9jdW1lbnQ6IHJldHVybiBjaGVja05vZGVTZWN1cml0
eShleGVjLGlGcmFtZS5jb250ZW50RG9jdW1lbnQoKSkgPyAKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdG9KUyhleGVjLCBpRnJhbWUuY29udGVudERvY3VtZW50KCkpIDog
anNVbmRlZmluZWQoKTsKLSAgICAgICAgY2FzZSBJRnJhbWVDb250ZW50V2luZG93OiAgIHJldHVy
biBjaGVja05vZGVTZWN1cml0eShleGVjLGlGcmFtZS5jb250ZW50RG9jdW1lbnQoKSkgCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBXaW5kb3c6OnJldHJpZXZlKGlG
cmFtZS5jb250ZW50RnJhbWUoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA6IGpzVW5kZWZpbmVkKCk7Ci0gICAgICAgIGNhc2UgSUZyYW1lRnJhbWVCb3JkZXI6ICAg
ICByZXR1cm4ganNTdHJpbmcoaUZyYW1lLmZyYW1lQm9yZGVyKCkpOwotICAgICAgICBjYXNlIElG
cmFtZUhlaWdodDogICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGlGcmFtZS5oZWlnaHQoKSk7Ci0g
ICAgICAgIGNhc2UgSUZyYW1lTG9uZ0Rlc2M6ICAgICAgICByZXR1cm4ganNTdHJpbmcoaUZyYW1l
LmxvbmdEZXNjKCkpOwotICAgICAgICBjYXNlIElGcmFtZU1hcmdpbkhlaWdodDogICAgcmV0dXJu
IGpzU3RyaW5nKGlGcmFtZS5tYXJnaW5IZWlnaHQoKSk7Ci0gICAgICAgIGNhc2UgSUZyYW1lTWFy
Z2luV2lkdGg6ICAgICByZXR1cm4ganNTdHJpbmcoaUZyYW1lLm1hcmdpbldpZHRoKCkpOwotICAg
ICAgICBjYXNlIElGcmFtZU5hbWU6ICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGlGcmFtZS5u
YW1lKCkpOwotICAgICAgICBjYXNlIElGcmFtZVNjcm9sbGluZzogICAgICAgcmV0dXJuIGpzU3Ry
aW5nKGlGcmFtZS5zY3JvbGxpbmcoKSk7Ci0gICAgICAgIGNhc2UgSUZyYW1lU3JjOiAgICAgICAg
ICAgICByZXR1cm4ganNTdHJpbmcoaUZyYW1lLnNyYygpKTsKLSAgICAgICAgY2FzZSBJRnJhbWVX
aWR0aDogICAgICAgICAgIHJldHVybiBqc1N0cmluZyhpRnJhbWUud2lkdGgoKSk7Ci0gICAgfQot
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotfQotCiBKU1ZhbHVlICpKU0hUTUxFbGVtZW50Ojpt
YXJxdWVlR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgaW50IHRva2VuKSBjb25zdAogewogICAgIC8v
IEZJWE1FOiBGaW5kIG91dCB3aGF0IFdpbklFIGV4cG9zZXMgYXMgcHJvcGVydGllcyBhbmQgaW1w
bGVtZW50IHRoaXMuCkBAIC04ODYsMTUgKzgwMSwxNSBAQCBKU1ZhbHVlICpIVE1MRWxlbWVudEZ1
bmN0aW9uOjpjYWxsQXNGdW5jCiAgICAgICAgIH0KICAgICB9CiAjaWYgRU5BQkxFKFNWRykKLSAg
ZWxzZSBpZiAoZWxlbWVudC5oYXNMb2NhbE5hbWUob2JqZWN0VGFnKSkgewotICAgICAgSFRNTE9i
amVjdEVsZW1lbnQmIG9iamVjdCA9IHN0YXRpY19jYXN0PEhUTUxPYmplY3RFbGVtZW50Jj4oZWxl
bWVudCk7Ci0gICAgICBpZiAoaWQgPT0gSlNIVE1MRWxlbWVudDo6T2JqZWN0R2V0U1ZHRG9jdW1l
bnQpCi0gICAgICAgICAgcmV0dXJuIGNoZWNrTm9kZVNlY3VyaXR5KGV4ZWMsIG9iamVjdC5nZXRT
VkdEb2N1bWVudChleGNlcHRpb24pKSA/IHRvSlMoZXhlYywgb2JqZWN0LmdldFNWR0RvY3VtZW50
KGV4Y2VwdGlvbikpIDoganNVbmRlZmluZWQoKTsKLSAgfSBlbHNlIGlmIChlbGVtZW50Lmhhc0xv
Y2FsTmFtZShlbWJlZFRhZykpIHsKLSAgICAgIEhUTUxFbWJlZEVsZW1lbnQmIGVtYmVkID0gc3Rh
dGljX2Nhc3Q8SFRNTEVtYmVkRWxlbWVudCY+KGVsZW1lbnQpOwotICAgICAgaWYgKGlkID09IEpT
SFRNTEVsZW1lbnQ6OkVtYmVkR2V0U1ZHRG9jdW1lbnQpCi0gICAgICAgICAgcmV0dXJuIGNoZWNr
Tm9kZVNlY3VyaXR5KGV4ZWMsIGVtYmVkLmdldFNWR0RvY3VtZW50KGV4Y2VwdGlvbikpID8gdG9K
UyhleGVjLCBlbWJlZC5nZXRTVkdEb2N1bWVudChleGNlcHRpb24pKSA6IGpzVW5kZWZpbmVkKCk7
Ci0gIH0KKyAgICBlbHNlIGlmIChlbGVtZW50Lmhhc0xvY2FsTmFtZShvYmplY3RUYWcpKSB7Cisg
ICAgICAgIEhUTUxPYmplY3RFbGVtZW50JiBvYmplY3QgPSBzdGF0aWNfY2FzdDxIVE1MT2JqZWN0
RWxlbWVudCY+KGVsZW1lbnQpOworICAgICAgICBpZiAoaWQgPT0gSlNIVE1MRWxlbWVudDo6T2Jq
ZWN0R2V0U1ZHRG9jdW1lbnQpCisgICAgICAgICAgICByZXR1cm4gY2hlY2tOb2RlU2VjdXJpdHko
ZXhlYywgb2JqZWN0LmdldFNWR0RvY3VtZW50KGV4Y2VwdGlvbikpID8gdG9KUyhleGVjLCBvYmpl
Y3QuZ2V0U1ZHRG9jdW1lbnQoZXhjZXB0aW9uKSkgOiBqc1VuZGVmaW5lZCgpOworICAgIH0gZWxz
ZSBpZiAoZWxlbWVudC5oYXNMb2NhbE5hbWUoZW1iZWRUYWcpKSB7CisgICAgICAgIEhUTUxFbWJl
ZEVsZW1lbnQmIGVtYmVkID0gc3RhdGljX2Nhc3Q8SFRNTEVtYmVkRWxlbWVudCY+KGVsZW1lbnQp
OworICAgICAgICBpZiAoaWQgPT0gSlNIVE1MRWxlbWVudDo6RW1iZWRHZXRTVkdEb2N1bWVudCkK
KyAgICAgICAgICAgIHJldHVybiBjaGVja05vZGVTZWN1cml0eShleGVjLCBlbWJlZC5nZXRTVkdE
b2N1bWVudChleGNlcHRpb24pKSA/IHRvSlMoZXhlYywgZW1iZWQuZ2V0U1ZHRG9jdW1lbnQoZXhj
ZXB0aW9uKSkgOiBqc1VuZGVmaW5lZCgpOworICAgIH0KICNlbmRpZgogCiAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7CkBAIC05NzUsNDEgKzg5MCw2IEBAIHZvaWQgSlNIVE1MRWxlbWVudDo6ZnJh
bWVTZXRTZXR0ZXIoRXhlY1MKICAgICB9CiB9CiAKLXZvaWQgSlNIVE1MRWxlbWVudDo6ZnJhbWVT
ZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9rZW4sIEpTVmFsdWUqIHZhbHVlKQotewotICAg
IEhUTUxGcmFtZUVsZW1lbnQmIGZyYW1lRWxlbWVudCA9ICpzdGF0aWNfY2FzdDxIVE1MRnJhbWVF
bGVtZW50Kj4oaW1wbCgpKTsKLSAgICBzd2l0Y2ggKHRva2VuKSB7Ci0gICAgICAgIC8vIHJlYWQt
b25seTogRnJhbWVDb250ZW50RG9jdW1lbnQ6Ci0gICAgICAgIGNhc2UgRnJhbWVGcmFtZUJvcmRl
cjogICAgIHsgZnJhbWVFbGVtZW50LnNldEZyYW1lQm9yZGVyKHZhbHVlVG9TdHJpbmdXaXRoTnVs
bENoZWNrKGV4ZWMsIHZhbHVlKSk7IHJldHVybjsgfQotICAgICAgICBjYXNlIEZyYW1lTG9uZ0Rl
c2M6ICAgICAgICB7IGZyYW1lRWxlbWVudC5zZXRMb25nRGVzYyh2YWx1ZVRvU3RyaW5nV2l0aE51
bGxDaGVjayhleGVjLCB2YWx1ZSkpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBGcmFtZU1hcmdp
bkhlaWdodDogICAgeyBmcmFtZUVsZW1lbnQuc2V0TWFyZ2luSGVpZ2h0KHZhbHVlVG9TdHJpbmdX
aXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7IHJldHVybjsgfQotICAgICAgICBjYXNlIEZyYW1l
TWFyZ2luV2lkdGg6ICAgICB7IGZyYW1lRWxlbWVudC5zZXRNYXJnaW5XaWR0aCh2YWx1ZVRvU3Ry
aW5nV2l0aE51bGxDaGVjayhleGVjLCB2YWx1ZSkpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBG
cmFtZU5hbWU6ICAgICAgICAgICAgeyBmcmFtZUVsZW1lbnQuc2V0TmFtZSh2YWx1ZVRvU3RyaW5n
V2l0aE51bGxDaGVjayhleGVjLCB2YWx1ZSkpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBGcmFt
ZU5vUmVzaXplOiAgICAgICAgeyBmcmFtZUVsZW1lbnQuc2V0Tm9SZXNpemUodmFsdWUtPnRvQm9v
bGVhbihleGVjKSk7IHJldHVybjsgfQotICAgICAgICBjYXNlIEZyYW1lU2Nyb2xsaW5nOiAgICAg
ICB7IGZyYW1lRWxlbWVudC5zZXRTY3JvbGxpbmcodmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2so
ZXhlYywgdmFsdWUpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgRnJhbWVTcmM6ICAgICAgICAg
ICAgIHsgZnJhbWVFbGVtZW50LnNldFNyYyh2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhleGVj
LCB2YWx1ZSkpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBGcmFtZUxvY2F0aW9uOiAgICAgICAg
eyBmcmFtZUVsZW1lbnQuc2V0TG9jYXRpb24odmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhl
YywgdmFsdWUpKTsgcmV0dXJuOyB9Ci0gICAgfQotfQotCi12b2lkIEpTSFRNTEVsZW1lbnQ6OmlG
cmFtZVNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbiwgSlNWYWx1ZSogdmFsdWUpCi17
Ci0gICAgSFRNTElGcmFtZUVsZW1lbnQmIGlGcmFtZSA9ICpzdGF0aWNfY2FzdDxIVE1MSUZyYW1l
RWxlbWVudCo+KGltcGwoKSk7Ci0gICAgc3dpdGNoICh0b2tlbikgewotICAgICAgICBjYXNlIElG
cmFtZUFsaWduOiAgICAgICAgICAgeyBpRnJhbWUuc2V0QWxpZ24odmFsdWVUb1N0cmluZ1dpdGhO
dWxsQ2hlY2soZXhlYywgdmFsdWUpKTsgcmV0dXJuOyB9Ci0gICAgICAgIC8vIHJlYWQtb25seTog
SUZyYW1lQ29udGVudERvY3VtZW50Ci0gICAgICAgIGNhc2UgSUZyYW1lRnJhbWVCb3JkZXI6ICAg
ICB7IGlGcmFtZS5zZXRGcmFtZUJvcmRlcih2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhleGVj
LCB2YWx1ZSkpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBJRnJhbWVIZWlnaHQ6ICAgICAgICAg
IHsgaUZyYW1lLnNldEhlaWdodCh2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCB2YWx1
ZSkpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBJRnJhbWVMb25nRGVzYzogICAgICAgIHsgaUZy
YW1lLnNldExvbmdEZXNjKHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7
IHJldHVybjsgfQotICAgICAgICBjYXNlIElGcmFtZU1hcmdpbkhlaWdodDogICAgeyBpRnJhbWUu
c2V0TWFyZ2luSGVpZ2h0KHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7
IHJldHVybjsgfQotICAgICAgICBjYXNlIElGcmFtZU1hcmdpbldpZHRoOiAgICAgeyBpRnJhbWUu
c2V0TWFyZ2luV2lkdGgodmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUpKTsg
cmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgSUZyYW1lTmFtZTogICAgICAgICAgICB7IGlGcmFtZS5z
ZXROYW1lKHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7IHJldHVybjsg
fQotICAgICAgICBjYXNlIElGcmFtZVNjcm9sbGluZzogICAgICAgeyBpRnJhbWUuc2V0U2Nyb2xs
aW5nKHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7IHJldHVybjsgfQot
ICAgICAgICBjYXNlIElGcmFtZVNyYzogICAgICAgICAgICAgeyBpRnJhbWUuc2V0U3JjKHZhbHVl
VG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7IHJldHVybjsgfQotICAgICAgICBj
YXNlIElGcmFtZVdpZHRoOiAgICAgICAgICAgeyBpRnJhbWUuc2V0V2lkdGgodmFsdWVUb1N0cmlu
Z1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUpKTsgcmV0dXJuOyB9Ci0gICAgfQotfQotCiB2b2lk
IEpTSFRNTEVsZW1lbnQ6Om1hcnF1ZWVTZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9rZW4s
IEpTVmFsdWUqIHZhbHVlKQogewogICAgIC8vIEZJWE1FOiBGaW5kIG91dCB3aGF0IFdpbklFIHN1
cHBvcnRzIGFuZCBpbXBsZW1lbnQgaXQuCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19o
dG1sLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfaHRtbC5oCShyZXZp
c2lvbiAyMTYxMykKKysrIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2h0bWwuaAkod29ya2luZyBj
b3B5KQpAQCAtNzYsMTggKzc2LDE0IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIHZpcnR1YWwgY29u
c3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8oKSBjb25zdDsKICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJ
bmZvIGluZm87CiAKLSAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvCi0gICAgICBvYmplY3RfaW5m
bywgZW1iZWRfaW5mbywKLSAgICAgIGZyYW1lU2V0X2luZm8sIGZyYW1lX2luZm8sIGlGcmFtZV9p
bmZvLCBtYXJxdWVlX2luZm87CisgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBvYmplY3RfaW5m
bywgZW1iZWRfaW5mbywgZnJhbWVTZXRfaW5mbywgbWFycXVlZV9pbmZvOwogCiAgICAgLy8gRklY
TUU6IE1pZ2h0IG1ha2Ugc2Vuc2UgdG8gY29tYmluZSB0aGlzIHdpdGggQ2xhc3NJbmZvIHNvbWUg
ZGF5LgogICAgIHR5cGVkZWYgSlNWYWx1ZSogKEpTSFRNTEVsZW1lbnQ6OipHZXR0ZXJGdW5jdGlv
bikoRXhlY1N0YXRlKiwgaW50IHRva2VuKSBjb25zdDsKICAgICB0eXBlZGVmIHZvaWQgKEpTSFRN
TEVsZW1lbnQ6OipTZXR0ZXJGdW5jdGlvbikoRXhlY1N0YXRlKiwgaW50IHRva2VuLCBKU1ZhbHVl
Kik7CiAgICAgc3RydWN0IEFjY2Vzc29ycyB7IEdldHRlckZ1bmN0aW9uIG1fZ2V0dGVyOyBTZXR0
ZXJGdW5jdGlvbiBtX3NldHRlcjsgfTsKICAgICBjb25zdCBBY2Nlc3NvcnMqIGFjY2Vzc29ycygp
IGNvbnN0OwotICAgIHN0YXRpYyBjb25zdCBBY2Nlc3NvcnMKLSAgICAgIG9iamVjdF9hY2Nlc3Nv
cnMsIGVtYmVkX2FjY2Vzc29ycywKLSAgICAgIGZyYW1lU2V0X2FjY2Vzc29ycywgZnJhbWVfYWNj
ZXNzb3JzLCBpRnJhbWVfYWNjZXNzb3JzLCBtYXJxdWVlX2FjY2Vzc29yczsKKyAgICBzdGF0aWMg
Y29uc3QgQWNjZXNzb3JzIG9iamVjdF9hY2Nlc3NvcnMsIGVtYmVkX2FjY2Vzc29ycywgZnJhbWVT
ZXRfYWNjZXNzb3JzLCBtYXJxdWVlX2FjY2Vzc29yczsKIAogICAgIEpTVmFsdWUqIG9iamVjdEdl
dHRlcihFeGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbikgY29uc3Q7CiAgICAgdm9pZCAgb2JqZWN0
U2V0dGVyKEV4ZWNTdGF0ZSosIGludCB0b2tlbiwgSlNWYWx1ZSopOwpAQCAtOTUsMTAgKzkxLDYg
QEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgdm9pZCAgZW1iZWRTZXR0ZXIoRXhlY1N0YXRlKiwgaW50
IHRva2VuLCBKU1ZhbHVlKik7CiAgICAgSlNWYWx1ZSogZnJhbWVTZXRHZXR0ZXIoRXhlY1N0YXRl
KiBleGVjLCBpbnQgdG9rZW4pIGNvbnN0OwogICAgIHZvaWQgIGZyYW1lU2V0U2V0dGVyKEV4ZWNT
dGF0ZSosIGludCB0b2tlbiwgSlNWYWx1ZSopOwotICAgIEpTVmFsdWUqIGZyYW1lR2V0dGVyKEV4
ZWNTdGF0ZSogZXhlYywgaW50IHRva2VuKSBjb25zdDsKLSAgICB2b2lkICBmcmFtZVNldHRlcihF
eGVjU3RhdGUqLCBpbnQgdG9rZW4sIEpTVmFsdWUqKTsKLSAgICBKU1ZhbHVlKiBpRnJhbWVHZXR0
ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9rZW4pIGNvbnN0OwotICAgIHZvaWQgIGlGcmFtZVNl
dHRlcihFeGVjU3RhdGUqLCBpbnQgdG9rZW4sIEpTVmFsdWUqKTsKICAgICBKU1ZhbHVlKiBtYXJx
dWVlR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgaW50IHRva2VuKSBjb25zdDsKICAgICB2b2lkICBt
YXJxdWVlU2V0dGVyKEV4ZWNTdGF0ZSosIGludCB0b2tlbiwgSlNWYWx1ZSopOwogCkBAIC0xMDgs
MTEgKzEwMCw3IEBAIG5hbWVzcGFjZSBLSlMgewogICAgICAgICAgICBPYmplY3REZWNsYXJlLCBP
YmplY3RGb3JtLCBPYmplY3RDb2RlQmFzZSwgT2JqZWN0Q29kZVR5cGUsIE9iamVjdERhdGEsCiAg
ICAgICAgICAgIE9iamVjdE5hbWUsIE9iamVjdFN0YW5kYnksIE9iamVjdFRhYkluZGV4LCBPYmpl
Y3RVc2VNYXAsIE9iamVjdFdpZHRoLCBPYmplY3RDb250ZW50RG9jdW1lbnQsIE9iamVjdEdldFNW
R0RvY3VtZW50LAogICAgICAgICAgICBFbWJlZEFsaWduLCBFbWJlZEhlaWdodCwgRW1iZWROYW1l
LCBFbWJlZFNyYywgRW1iZWRUeXBlLCBFbWJlZFdpZHRoLCBFbWJlZEdldFNWR0RvY3VtZW50LAot
ICAgICAgICAgICBGcmFtZVNldENvbHMsIEZyYW1lU2V0Um93cywgRnJhbWVTcmMsIEZyYW1lTG9j
YXRpb24sIEZyYW1lRnJhbWVCb3JkZXIsIEZyYW1lU2Nyb2xsaW5nLAotICAgICAgICAgICBGcmFt
ZU1hcmdpbldpZHRoLCBGcmFtZUxvbmdEZXNjLCBGcmFtZU1hcmdpbkhlaWdodCwgRnJhbWVOYW1l
LCBGcmFtZUNvbnRlbnREb2N1bWVudCwgRnJhbWVDb250ZW50V2luZG93LCAKLSAgICAgICAgICAg
RnJhbWVOb1Jlc2l6ZSwgRnJhbWVXaWR0aCwgRnJhbWVIZWlnaHQsIElGcmFtZUxvbmdEZXNjLCBJ
RnJhbWVBbGlnbiwKLSAgICAgICAgICAgSUZyYW1lRnJhbWVCb3JkZXIsIElGcmFtZVNyYywgSUZy
YW1lTmFtZSwgSUZyYW1lSGVpZ2h0LAotICAgICAgICAgICBJRnJhbWVNYXJnaW5IZWlnaHQsIElG
cmFtZU1hcmdpbldpZHRoLCBJRnJhbWVTY3JvbGxpbmcsIElGcmFtZVdpZHRoLCBJRnJhbWVDb250
ZW50RG9jdW1lbnQsIElGcmFtZUNvbnRlbnRXaW5kb3csCisgICAgICAgICAgIEZyYW1lU2V0Q29s
cywgRnJhbWVTZXRSb3dzLCAKICAgICAgICAgICAgTWFycXVlZVN0YXJ0LCBNYXJxdWVlU3RvcCwK
ICAgICAgICAgICAgR2V0Q29udGV4dCwKICAgICAgICAgICAgRWxlbWVudElubmVySFRNTCwgRWxl
bWVudElkLCBFbGVtZW50RGlyLCBFbGVtZW50TGFuZywKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1M
RnJhbWVFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxl
bWVudC5pZGwJKHJldmlzaW9uIDIxNjEzKQorKysgV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1l
bnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3
IEFwcGxlIEluYy4KICAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2Vp
bmlnQGdtYWlsLmNvbT4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yMCw3ICsyMCw3IEBACiAKIG1vZHVsZSBo
dG1sIHsKIAotICAgIGludGVyZmFjZSBIVE1MRnJhbWVFbGVtZW50IDogSFRNTEVsZW1lbnQgewor
ICAgIGludGVyZmFjZSBbTGVnYWN5UGFyZW50PUtKUzo6SlNIVE1MRWxlbWVudCwgR2VuZXJhdGVD
b25zdHJ1Y3Rvcl0gSFRNTEZyYW1lRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKIAogICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAg
ICAgZnJhbWVCb3JkZXI7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICBsb25nRGVzYzsKQEAgLTMwLDggKzMwLDIxIEBA
IG1vZHVsZSBodG1sIHsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gICAgICAg
ICBub1Jlc2l6ZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZ10gRE9NU3RyaW5nICAgICAgIHNjcm9sbGluZzsKICAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgIHNyYzsKKwog
ICAgICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgotICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRG9jdW1lbnQgICAgICAgIGNvbnRlbnREb2N1bWVudDsKKyAKKyAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFtDdXN0b21dIERvY3VtZW50ICAgICAgICBjb250ZW50RG9jdW1lbnQ7
CisKKyAgICAgICAgLy8gZXh0ZW5zaW9ucworCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NS
SVBUKQorICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0N1c3RvbV0gY3VzdG9tICAgICAgICAg
IGNvbnRlbnRXaW5kb3c7CisKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgIGxvY2F0aW9uOworI2VuZGlmCisKKyAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgICAgICAgICAgICB3aWR0aDsKKyAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGxvbmcgICAgICAgICAgICBoZWlnaHQ7CiAKICAgICB9OwogCkluZGV4
OiBXZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAJKHJldmlzaW9uIDIxNjEzKQorKysg
V2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTkzLDYgKzE5MywxMSBAQCB2b2lkIEhUTUxGcmFtZUVsZW1lbnRCYXNlOjp3aWxsUmVtb3ZlKCkK
ICAgICBIVE1MRWxlbWVudDo6d2lsbFJlbW92ZSgpOwogfQogCitTdHJpbmcgSFRNTEZyYW1lRWxl
bWVudEJhc2U6OmxvY2F0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3JjKCk7Cit9CisKIHZv
aWQgSFRNTEZyYW1lRWxlbWVudEJhc2U6OnNldExvY2F0aW9uKGNvbnN0IFN0cmluZyYgc3RyKQog
ewogICAgIGlmIChtX1VSTCA9PSBzdHIpCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxl
bWVudEJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJh
c2UuaAkocmV2aXNpb24gMjE2MTMpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJh
c2UuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIHZvaWQgYXR0YWNoKCk7CiAKKyAgICBTdHJpbmcgbG9jYXRpb24oKSBjb25zdDsKICAgICB2
b2lkIHNldExvY2F0aW9uKGNvbnN0IFN0cmluZyYpOwogCiAgICAgdmlydHVhbCBib29sIGlzRm9j
dXNhYmxlKCkgY29uc3Q7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5pZGwJKHJldmlz
aW9uIDIxNjEzKQorKysgV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUg
Q29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+
CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgpAQCAtMjAsNyArMjAsNyBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBp
bnRlcmZhY2UgSFRNTElGcmFtZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CisgICAgaW50ZXJmYWNl
IFtMZWdhY3lQYXJlbnQ9S0pTOjpKU0hUTUxFbGVtZW50LCBHZW5lcmF0ZUNvbnN0cnVjdG9yXSBI
VE1MSUZyYW1lRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKIAogICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgYWxpZ247CiAg
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0
cmluZyAgICAgICBmcmFtZUJvcmRlcjsKQEAgLTMyLDggKzMyLDE2IEBAIG1vZHVsZSBodG1sIHsK
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9N
U3RyaW5nICAgICAgIHNjcm9sbGluZzsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252
ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgIHNyYzsKICAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgIHdp
ZHRoOworCiAgICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBEb2N1bWVudCAgICAgICAgY29udGVudERvY3VtZW50OworCisgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ3VzdG9tXSBEb2N1bWVudCAgICAgICAgY29udGVudERv
Y3VtZW50OworCisgICAgICAgIC8vIGV4dGVuc2lvbnMKKworI2lmIGRlZmluZWQoTEFOR1VBR0Vf
SkFWQVNDUklQVCkKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDdXN0b21dIGN1c3RvbSAg
ICAgICAgICBjb250ZW50V2luZG93OworI2VuZGlmCiAKICAgICB9OwogCkluZGV4OiBXZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmlkbAkocmV2aXNpb24gMjE2MTMpCisrKyBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAkod29y
a2luZyBjb3B5KQpAQCAtOTUsMTMgKzk1LDEzIEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBh
dHRyaWJ1dGUgSFRNTEZpZWxkU2V0RWxlbWVudENvbnN0cnVjdG9yIEhUTUxGaWVsZFNldEVsZW1l
bnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MRm9udEVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MRm9u
dEVsZW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnRDb25zdHJ1Y3RvciBI
VE1MRm9ybUVsZW1lbnQ7Ci0vLyAgICAgICAgYXR0cmlidXRlIEhUTUxGcmFtZUVsZW1lbnRDb25z
dHJ1Y3RvciBIVE1MRnJhbWVFbGVtZW50OworICAgICAgICBhdHRyaWJ1dGUgSFRNTEZyYW1lRWxl
bWVudENvbnN0cnVjdG9yIEhUTUxGcmFtZUVsZW1lbnQ7CiAvLyAgICAgICAgYXR0cmlidXRlIEhU
TUxGcmFtZVNldEVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MRnJhbWVTZXRFbGVtZW50OwogICAgICAg
ICBhdHRyaWJ1dGUgSFRNTEhlYWRFbGVtZW50Q29uc3RydWN0b3IgSFRNTEhlYWRFbGVtZW50Owog
ICAgICAgICBhdHRyaWJ1dGUgSFRNTEhlYWRpbmdFbGVtZW50Q29uc3RydWN0b3IgSFRNTEhlYWRp
bmdFbGVtZW50OwogICAgICAgICBhdHRyaWJ1dGUgSFRNTEhSRWxlbWVudENvbnN0cnVjdG9yIEhU
TUxIUkVsZW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MSHRtbEVsZW1lbnRDb25zdHJ1Y3Rv
ciBIVE1MSHRtbEVsZW1lbnQ7Ci0vLyAgICAgICAgYXR0cmlidXRlIEhUTUxJRnJhbWVFbGVtZW50
Q29uc3RydWN0b3IgSFRNTElGcmFtZUVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBIVE1MSUZy
YW1lRWxlbWVudENvbnN0cnVjdG9yIEhUTUxJRnJhbWVFbGVtZW50OwogICAgICAgICBhdHRyaWJ1
dGUgSFRNTEltYWdlRWxlbWVudENvbnN0cnVjdG9yIEhUTUxJbWFnZUVsZW1lbnQ7CiAgICAgICAg
IGF0dHJpYnV0ZSBIVE1MSW5wdXRFbGVtZW50Q29uc3RydWN0b3IgSFRNTElucHV0RWxlbWVudDsK
ICAgICAgICAgYXR0cmlidXRlIEhUTUxJc0luZGV4RWxlbWVudENvbnN0cnVjdG9yIEhUTUxJc0lu
ZGV4RWxlbWVudDsKQEAgLTEzNCw2ICsxMzQsNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAg
YXR0cmlidXRlIEhUTUxUaXRsZUVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MVGl0bGVFbGVtZW50Owog
ICAgICAgICBhdHRyaWJ1dGUgSFRNTFVMaXN0RWxlbWVudENvbnN0cnVjdG9yIEhUTUxVTGlzdEVs
ZW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MQ2FudmFzRWxlbWVudENvbnN0cnVjdG9yIEhU
TUxDYW52YXNFbGVtZW50OworLy8gICAgICAgIGF0dHJpYnV0ZSBIVE1MTWFycXVlZUVsZW1lbnRD
b25zdHJ1Y3RvciBIVE1MTWFycXVlZUVsZW1lbnQ7CiAKICAgICAgICAgYXR0cmlidXRlIEhUTUxE
b2N1bWVudENvbnN0cnVjdG9yIEhUTUxEb2N1bWVudDsKICAgICAgICAgYXR0cmlidXRlIE11dGF0
aW9uRXZlbnRDb25zdHJ1Y3RvciBNdXRhdGlvbkV2ZW50OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjE2
MTMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NCBAQAorMjAwNy0wNS0yMCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gdXBkYXRlIHJlc3VsdHMg
Zm9yIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzkxCisgICAgICAg
ICAgdG8gYWNjb3VudCBmb3IgbmV3IEpTSFRNTEVsZW1lbnRzIHRoYXQgYXJlIGJlaW5nIGF1dG9n
ZW5lcmF0ZWQgYW5kCisgICAgICAgICAgY2FuIG5vdyBwcm9kdWNlIGNvbnN0cnVjdG9ycy4KKwor
ICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9lbGVtZW50LWNvbnN0cnVjdG9ycy1vbi13aW5kb3ct
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGll
cy1leHBlY3RlZC50eHQ6CisKIDIwMDctMDUtMTkgIE1pdHogUGV0dGVsICA8bWl0ekB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmUgSHlhdHQuCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvZWxlbWVudC1jb25zdHJ1Y3RvcnMtb24td2luZG93LWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZWxlbWVudC1j
b25zdHJ1Y3RvcnMtb24td2luZG93LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE2MTMpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZWxlbWVudC1jb25zdHJ1Y3RvcnMtb24td2luZG93
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQCBIVE1MRm9udEVs
ZW1lbnQ6IFtvYmplY3QgSFRNTEZvbnRFbGVtZW50CiAKIEhUTUxGb3JtRWxlbWVudDogW29iamVj
dCBIVE1MRm9ybUVsZW1lbnRDb25zdHJ1Y3Rvcl0KIAotSFRNTEZyYW1lRWxlbWVudDogdW5kZWZp
bmVkCitIVE1MRnJhbWVFbGVtZW50OiBbb2JqZWN0IEhUTUxGcmFtZUVsZW1lbnRDb25zdHJ1Y3Rv
cl0KIAogSFRNTEZyYW1lU2V0RWxlbWVudDogdW5kZWZpbmVkCiAKQEAgLTQyLDcgKzQyLDcgQEAg
SFRNTEhSRWxlbWVudDogW29iamVjdCBIVE1MSFJFbGVtZW50Q29ucwogCiBIVE1MSHRtbEVsZW1l
bnQ6IFtvYmplY3QgSFRNTEh0bWxFbGVtZW50Q29uc3RydWN0b3JdCiAKLUhUTUxJRnJhbWVFbGVt
ZW50OiB1bmRlZmluZWQKK0hUTUxJRnJhbWVFbGVtZW50OiBbb2JqZWN0IEhUTUxJRnJhbWVFbGVt
ZW50Q29uc3RydWN0b3JdCiAKIEhUTUxJbWFnZUVsZW1lbnQ6IFtvYmplY3QgSFRNTEltYWdlRWxl
bWVudENvbnN0cnVjdG9yXQogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIx
NjEzKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNTI4LDYgKzUyOCw4IEBAIHdpbmRvdy5IVE1M
Rm9udEVsZW1lbnQgW29iamVjdCBIVE1MRm9udEUKIHdpbmRvdy5IVE1MRm9udEVsZW1lbnQucHJv
dG90eXBlIFtwcmludGVkIGFib3ZlIGFzIHdpbmRvdy5FbGVtZW50LnByb3RvdHlwZV0KIHdpbmRv
dy5IVE1MRm9ybUVsZW1lbnQgW29iamVjdCBIVE1MRm9ybUVsZW1lbnRDb25zdHJ1Y3Rvcl0KIHdp
bmRvdy5IVE1MRm9ybUVsZW1lbnQucHJvdG90eXBlIFtwcmludGVkIGFib3ZlIGFzIHdpbmRvdy5F
bGVtZW50LnByb3RvdHlwZV0KK3dpbmRvdy5IVE1MRnJhbWVFbGVtZW50IFtvYmplY3QgSFRNTEZy
YW1lRWxlbWVudENvbnN0cnVjdG9yXQord2luZG93LkhUTUxGcmFtZUVsZW1lbnQucHJvdG90eXBl
IFtwcmludGVkIGFib3ZlIGFzIHdpbmRvdy5FbGVtZW50LnByb3RvdHlwZV0KIHdpbmRvdy5IVE1M
SFJFbGVtZW50IFtvYmplY3QgSFRNTEhSRWxlbWVudENvbnN0cnVjdG9yXQogd2luZG93LkhUTUxI
UkVsZW1lbnQucHJvdG90eXBlIFtwcmludGVkIGFib3ZlIGFzIHdpbmRvdy5FbGVtZW50LnByb3Rv
dHlwZV0KIHdpbmRvdy5IVE1MSGVhZEVsZW1lbnQgW29iamVjdCBIVE1MSGVhZEVsZW1lbnRDb25z
dHJ1Y3Rvcl0KQEAgLTUzNiw2ICs1MzgsOCBAQCB3aW5kb3cuSFRNTEhlYWRpbmdFbGVtZW50IFtv
YmplY3QgSFRNTEhlCiB3aW5kb3cuSFRNTEhlYWRpbmdFbGVtZW50LnByb3RvdHlwZSBbcHJpbnRl
ZCBhYm92ZSBhcyB3aW5kb3cuRWxlbWVudC5wcm90b3R5cGVdCiB3aW5kb3cuSFRNTEh0bWxFbGVt
ZW50IFtvYmplY3QgSFRNTEh0bWxFbGVtZW50Q29uc3RydWN0b3JdCiB3aW5kb3cuSFRNTEh0bWxF
bGVtZW50LnByb3RvdHlwZSBbcHJpbnRlZCBhYm92ZSBhcyB3aW5kb3cuRWxlbWVudC5wcm90b3R5
cGVdCit3aW5kb3cuSFRNTElGcmFtZUVsZW1lbnQgW29iamVjdCBIVE1MSUZyYW1lRWxlbWVudENv
bnN0cnVjdG9yXQord2luZG93LkhUTUxJRnJhbWVFbGVtZW50LnByb3RvdHlwZSBbcHJpbnRlZCBh
Ym92ZSBhcyB3aW5kb3cuRWxlbWVudC5wcm90b3R5cGVdCiB3aW5kb3cuSFRNTEltYWdlRWxlbWVu
dCBbb2JqZWN0IEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3Rvcl0KIHdpbmRvdy5IVE1MSW1hZ2VF
bGVtZW50LnByb3RvdHlwZSBbcHJpbnRlZCBhYm92ZSBhcyB3aW5kb3cuRWxlbWVudC5wcm90b3R5
cGVdCiB3aW5kb3cuSFRNTElucHV0RWxlbWVudCBbb2JqZWN0IEhUTUxJbnB1dEVsZW1lbnRDb25z
dHJ1Y3Rvcl0K
</data>
<flag name="review"
          id="6007"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14643</attachid>
            <date>2007-05-21 09:52:11 -0700</date>
            <delta_ts>2007-05-21 10:31:41 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>autoJSFrames3.diff</filename>
            <type>text/plain</type>
            <size>36855</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMTYyMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMDctMDUtMjEgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCBm
b3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3OTEKKyAgICAgICAg
QXV0b2dlbmVyYXRlIHRoZSBKUyBiaW5kaW5ncyBmb3IgdGhlIEhUTUxJRnJhbWVFbGVtZW50IGFu
ZCBIVE1MRnJhbWVFbGVtZW50LgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNIVE1MQW5jaG9yRWxlbWVudEN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9ranNfaHRtbC5jcHA6CisgICAgICAgIChLSlM6Oik6CisgICAgICAgIChLSlM6OkpTSFRN
TEVsZW1lbnQ6OmNsYXNzSW5mbyk6CisgICAgICAgIChLSlM6OkpTSFRNTEVsZW1lbnQ6OmFjY2Vz
c29ycyk6CisgICAgICAgIChLSlM6OkhUTUxFbGVtZW50RnVuY3Rpb246OmNhbGxBc0Z1bmN0aW9u
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9ranNfaHRtbC5oOgorICAgICAgICAoS0pTOjpKU0hU
TUxFbGVtZW50OjopOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtOgorICAgICAgICAqIGh0bWwvSFRNTEZyYW1lRWxlbWVudC5pZGw6CisgICAgICAgICogaHRt
bC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRnJhbWVF
bGVtZW50QmFzZTo6bG9jYXRpb24pOgorICAgICAgICAqIGh0bWwvSFRNTEZyYW1lRWxlbWVudEJh
c2UuaDoKKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZU93bmVyRWxlbWVudC5oOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50Ojpjb250ZW50V2luZG93KToKKyAgICAgICAg
KiBodG1sL0hUTUxJRnJhbWVFbGVtZW50LmlkbDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5p
ZGw6CisKIDIwMDctMDUtMjEgIExhcnMgS25vbGwgPGxhcnNAdHJvbGx0ZWNoLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBaYWNrLgpJbmRleDogV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMjE2
MjIpCisrKyBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTMz
MSwzOCArMzMxLDQwIEBAIGFsbCA6IFwKICAgICBKU0hUTUxCUkVsZW1lbnQuaCBcCiAgICAgSlNI
VE1MQnV0dG9uRWxlbWVudC5oIFwKICAgICBKU0hUTUxDYW52YXNFbGVtZW50LmggXAorICAgIEpT
SFRNTERMaXN0RWxlbWVudC5oIFwKICAgICBKU0hUTUxEaXJlY3RvcnlFbGVtZW50LmggXAogICAg
IEpTSFRNTERpdkVsZW1lbnQuaCBcCi0gICAgSlNIVE1MRExpc3RFbGVtZW50LmggXAogICAgIEpT
SFRNTERvY3VtZW50LmggXAogICAgIEpTSFRNTEVsZW1lbnQuaCBcCiAgICAgSlNIVE1MRmllbGRT
ZXRFbGVtZW50LmggXAogICAgIEpTSFRNTEZvbnRFbGVtZW50LmggXAogICAgIEpTSFRNTEZvcm1F
bGVtZW50LmggXAorICAgIEpTSFRNTEZyYW1lRWxlbWVudC5oIFwKKyAgICBKU0hUTUxIUkVsZW1l
bnQuaCBcCiAgICAgSlNIVE1MSGVhZEVsZW1lbnQuaCBcCiAgICAgSlNIVE1MSGVhZGluZ0VsZW1l
bnQuaCBcCi0gICAgSlNIVE1MSFJFbGVtZW50LmggXAotICAgIEpTSFRNTEltYWdlRWxlbWVudC5o
IFwKLSAgICBKU0hUTUxJc0luZGV4RWxlbWVudC5oIFwKICAgICBKU0hUTUxIdG1sRWxlbWVudC5o
IFwKKyAgICBKU0hUTUxJRnJhbWVFbGVtZW50LmggXAorICAgIEpTSFRNTEltYWdlRWxlbWVudC5o
IFwKICAgICBKU0hUTUxJbnB1dEVsZW1lbnQuaCBcCiAgICAgSlNIVE1MSW5wdXRFbGVtZW50QmFz
ZVRhYmxlLmNwcCBcCisgICAgSlNIVE1MSXNJbmRleEVsZW1lbnQuaCBcCisgICAgSlNIVE1MTElF
bGVtZW50LmggXAogICAgIEpTSFRNTExhYmVsRWxlbWVudC5oIFwKICAgICBKU0hUTUxMZWdlbmRF
bGVtZW50LmggXAotICAgIEpTSFRNTExJRWxlbWVudC5oIFwKICAgICBKU0hUTUxMaW5rRWxlbWVu
dC5oIFwKLSAgICBKU0hUTUxNZW51RWxlbWVudC5oIFwKLSAgICBKU0hUTUxPcHRpb25FbGVtZW50
LmggXAotICAgIEpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmggXAotICAgIEpTSFRNTE9wdEdyb3Vw
RWxlbWVudC5oIFwKLSAgICBKU0hUTUxRdW90ZUVsZW1lbnQuaCBcCiAgICAgSlNIVE1MTWFwRWxl
bWVudC5oIFwKKyAgICBKU0hUTUxNZW51RWxlbWVudC5oIFwKICAgICBKU0hUTUxNZXRhRWxlbWVu
dC5oIFwKICAgICBKU0hUTUxNb2RFbGVtZW50LmggXAogICAgIEpTSFRNTE9MaXN0RWxlbWVudC5o
IFwKKyAgICBKU0hUTUxPcHRHcm91cEVsZW1lbnQuaCBcCisgICAgSlNIVE1MT3B0aW9uRWxlbWVu
dC5oIFwKKyAgICBKU0hUTUxPcHRpb25zQ29sbGVjdGlvbi5oIFwKICAgICBKU0hUTUxQYXJhZ3Jh
cGhFbGVtZW50LmggXAogICAgIEpTSFRNTFBhcmFtRWxlbWVudC5oIFwKICAgICBKU0hUTUxQcmVF
bGVtZW50LmggXAorICAgIEpTSFRNTFF1b3RlRWxlbWVudC5oIFwKICAgICBKU0hUTUxTY3JpcHRF
bGVtZW50LmggXAogICAgIEpTSFRNTFNlbGVjdEVsZW1lbnQuaCBcCiAgICAgSlNIVE1MU3R5bGVF
bGVtZW50LmggXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHJldmlzaW9uIDIxNjIyKQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTI3NjAsNiArMjc2MCwxMCBAQAogCQlCQzFBMzdC
RjA5N0M3MTVGMDAxOUYzRDggLyogRE9NVXRpbGl0eS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMUEzN0E5MDk3QzcxNUYwMDE5RjNEOCAvKiBET01V
dGlsaXR5Lm1tICovOyB9OwogCQlCQzFBMzdDMDA5N0M3MTVGMDAxOUYzRDggLyogRE9NVmlld3Mu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMUEzN0FB
MDk3QzcxNUYwMDE5RjNEOCAvKiBET01WaWV3cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDM0ZDQUE5MEFDM0RCNTgwMEJBNTRBRCAvKiBQbGF0
Zm9ybVNjcm9sbEJhci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkMzRkNBQTgwQUMzREI1ODAwQkE1NEFEIC8qIFBsYXRmb3JtU2Nyb2xsQmFyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKKwkJQkM0OTE4QzYwQkZFQTA1MDAw
OUQ2MzE2IC8qIEpTSFRNTEZyYW1lRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQ5MThDMDBCRkVBMDUwMDA5RDYzMTYgLyogSlNIVE1M
RnJhbWVFbGVtZW50LmNwcCAqLzsgfTsKKwkJQkM0OTE4QzcwQkZFQTA1MDAwOUQ2MzE2IC8qIEpT
SFRNTEZyYW1lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkM0OTE4QzEwQkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTEZyYW1lRWxlbWVudC5o
ICovOyB9OworCQlCQzQ5MThDODBCRkVBMDUwMDA5RDYzMTYgLyogSlNIVE1MSUZyYW1lRWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQ5
MThDMjBCRkVBMDUwMDA5RDYzMTYgLyogSlNIVE1MSUZyYW1lRWxlbWVudC5jcHAgKi87IH07CisJ
CUJDNDkxOEM5MEJGRUEwNTAwMDlENjMxNiAvKiBKU0hUTUxJRnJhbWVFbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQ5MThDMzBCRkVBMDUw
MDA5RDYzMTYgLyogSlNIVE1MSUZyYW1lRWxlbWVudC5oICovOyB9OwogCQlCQzU4OEFGMDBCRkE2
Q0Y5MDBFRTY3OUUgLyogSFRNTFBhcnNlckVycm9yQ29kZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTg4QUVGMEJGQTZDRjkwMEVFNjc5RSAvKiBI
VE1MUGFyc2VyRXJyb3JDb2Rlcy5oICovOyB9OwogCQlCQzU4OEI0QjBCRkE3MjNDMDBFRTY3OUUg
LyogSFRNTFBhcnNlckVycm9yQ29kZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkM1ODhCNEEwQkZBNzIzQzAwRUU2NzlFIC8qIEhUTUxQYXJzZXJF
cnJvckNvZGVzLmNwcCAqLzsgfTsKIAkJQkM2RDZERDIwOUFGOTA2NjAwRjU5NzU5IC8qIEZvbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM2RDZE
RDAwOUFGOTA2NjAwRjU5NzU5IC8qIEZvbnQuY3BwICovOyB9OwpAQCAtNTk4Miw2ICs1OTg2LDEw
IEBACiAJCUJDMUEzN0FBMDk3QzcxNUYwMDE5RjNEOCAvKiBET01WaWV3cy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NVmlld3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkMzQjM2NDcwNUM5RDVFMjAwRTQyOTAyIC8qIEF0b21pY1N0cmluZ0xpc3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lk
dGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXRvbWlj
U3RyaW5nTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNU
YWJzID0gMDsgfTsKIAkJQkMzRkNBQTgwQUMzREI1ODAwQkE1NEFEIC8qIFBsYXRmb3JtU2Nyb2xs
QmFyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybVNjcm9sbEJh
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzQ5MThDMDBCRkVBMDUwMDA5RDYz
MTYgLyogSlNIVE1MRnJhbWVFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0hUTUxGcmFtZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlCQzQ5MThDMTBCRkVBMDUwMDA5RDYzMTYgLyogSlNIVE1MRnJhbWVFbGVtZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxGcmFtZUVsZW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0OTE4QzIwQkZFQTA1MDAwOUQ2MzE2IC8q
IEpTSFRNTElGcmFtZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTSFRNTElGcmFtZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlCQzQ5MThDMzBCRkVBMDUwMDA5RDYzMTYgLyogSlNIVE1MSUZyYW1lRWxlbWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MSUZyYW1lRWxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzU4OEFFRjBCRkE2Q0Y5MDBFRTY3OUUgLyog
SFRNTFBhcnNlckVycm9yQ29kZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEhUTUxQYXJzZXJFcnJvckNvZGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJD
NTg4QjRBMEJGQTcyM0MwMEVFNjc5RSAvKiBIVE1MUGFyc2VyRXJyb3JDb2Rlcy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFBhcnNlckVycm9yQ29kZXMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzVFQzE3NjBBNTA3RTNFMDA2MDA3RjUg
Lyogdmlldy1zb3VyY2UuY3NzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSAidmlldy1zb3VyY2Uu
Y3NzIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTYzMzAsNiArNjMzOCwxMCBAQAog
CQkxNERGQjMzRjBBN0RGNzYzMDAxOEY3NjkgLyogRGVyaXZlZCBTb3VyY2VzICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlCQzQ5MThDMDBCRkVBMDUwMDA5
RDYzMTYgLyogSlNIVE1MRnJhbWVFbGVtZW50LmNwcCAqLywKKwkJCQlCQzQ5MThDMTBCRkVBMDUw
MDA5RDYzMTYgLyogSlNIVE1MRnJhbWVFbGVtZW50LmggKi8sCisJCQkJQkM0OTE4QzIwQkZFQTA1
MDAwOUQ2MzE2IC8qIEpTSFRNTElGcmFtZUVsZW1lbnQuY3BwICovLAorCQkJCUJDNDkxOEMzMEJG
RUEwNTAwMDlENjMxNiAvKiBKU0hUTUxJRnJhbWVFbGVtZW50LmggKi8sCiAJCQkJNjVERjMxRDgw
OUQxQzEyMjAwMEJFMzI1IC8qIEpTQXR0ci5jcHAgKi8sCiAJCQkJNjVERjMxRDkwOUQxQzEyMzAw
MEJFMzI1IC8qIEpTQXR0ci5oICovLAogCQkJCTY1REYzMjMzMDlEMURFNjUwMDBCRTMyNSAvKiBK
U0NhbnZhc0dyYWRpZW50LmNwcCAqLywKQEAgLTExMzIzLDYgKzExMzM1LDggQEAKIAkJCQlCQzA2
RURBMDBCRkQ2NjA2MDA4NTZFOUQgLyogSlNIVE1MVGFibGVSb3dFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzA2RURFNDBCRkQ2RDBEMDA4NTZFOUQgLyogSlNIVE1MVGFibGVDZWxsRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwNkVFMDUwQkZENzFBQTAwODU2RTlEIC8qIEpT
SFRNTFRhYmxlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM0OTE4QzcwQkZFQTA1MDAw
OUQ2MzE2IC8qIEpTSFRNTEZyYW1lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM0OTE4
QzkwQkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTElGcmFtZUVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpAQCAtMTI3MDUsNiArMTI3MTksOCBAQAogCQkJCUJDMDZFRDlGMEJGRDY2MDYwMDg1NkU5RCAv
KiBKU0hUTUxUYWJsZVJvd0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMwNkVERTMw
QkZENkQwRDAwODU2RTlEIC8qIEpTSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkMwNkVFMDQwQkZENzFBQTAwODU2RTlEIC8qIEpTSFRNTFRhYmxlRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzQ5MThDNjBCRkVBMDUwMDA5RDYzMTYgLyogSlNIVE1M
RnJhbWVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDNDkxOEM4MEJGRUEwNTAwMDlE
NjMxNiAvKiBKU0hUTUxJRnJhbWVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0hUTUxBbmNob3JFbGVtZW50Q3VzdG9tLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEFuY2hvckVsZW1lbnRDdXN0b20uY3BwCShy
ZXZpc2lvbiAyMTYyMikKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQW5jaG9yRWxlbWVu
dEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDA3IEFwcGxlLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5j
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEVs
ZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCShyZXZpc2lvbiAyMTYyMikKKysrIFdl
YkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzUsMTAgKzM1LDEyIEBACiAjaW5jbHVkZSAiSFRNTEZpZWxkU2V0RWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxGb250RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxGcmFtZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSFJF
bGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEhlYWRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEhl
YWRpbmdFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEh0bWxFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTElGcmFtZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJc0luZGV4RWxlbWVudC5o
IgpAQCAtODgsMTAgKzkwLDEyIEBACiAjaW5jbHVkZSAiSlNIVE1MRmllbGRTZXRFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSlNIVE1MRm9udEVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0hUTUxGb3JtRWxl
bWVudC5oIgorI2luY2x1ZGUgIkpTSFRNTEZyYW1lRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTSFRN
TEhSRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTSFRNTEhlYWRFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SlNIVE1MSGVhZGluZ0VsZW1lbnQuaCIKICNpbmNsdWRlICJKU0hUTUxIdG1sRWxlbWVudC5oIgor
I2luY2x1ZGUgIkpTSFRNTElGcmFtZUVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0hUTUxJbWFnZUVs
ZW1lbnQuaCIKICNpbmNsdWRlICJKU0hUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0hU
TUxJc0luZGV4RWxlbWVudC5oIgpAQCAtMTQ1LDIwICsxNDksMjIgQEAgdHlwZWRlZiBET01Ob2Rl
KiAoKkNyZWF0ZUhUTUxFbGVtZW50V3JhcAogICAgIG1hY3JvKGJvZHksIEJvZHkpIFwKICAgICBt
YWNybyhiciwgQlIpIFwKICAgICBtYWNybyhidXR0b24sIEJ1dHRvbikgXAotICAgIG1hY3JvKGNh
cHRpb24sIFRhYmxlQ2FwdGlvbikgXAogICAgIG1hY3JvKGNhbnZhcywgQ2FudmFzKSBcCisgICAg
bWFjcm8oY2FwdGlvbiwgVGFibGVDYXB0aW9uKSBcCiAgICAgbWFjcm8oY29sLCBUYWJsZUNvbCkg
XAogICAgIG1hY3JvKGRlbCwgTW9kKSBcCiAgICAgbWFjcm8oZGlyLCBEaXJlY3RvcnkpIFwKICAg
ICBtYWNybyhkaXYsIERpdikgXAogICAgIG1hY3JvKGRsLCBETGlzdCkgXAogICAgIG1hY3JvKGZp
ZWxkc2V0LCBGaWVsZFNldCkgXAotICAgIG1hY3JvKGZvcm0sIEZvcm0pIFwKICAgICBtYWNybyhm
b250LCBGb250KSBcCisgICAgbWFjcm8oZm9ybSwgRm9ybSkgXAorICAgIG1hY3JvKGZyYW1lLCBG
cmFtZSkgXAogICAgIG1hY3JvKGgxLCBIZWFkaW5nKSBcCiAgICAgbWFjcm8oaGVhZCwgSGVhZCkg
XAogICAgIG1hY3JvKGhyLCBIUikgXAogICAgIG1hY3JvKGh0bWwsIEh0bWwpIFwKKyAgICBtYWNy
byhpZnJhbWUsIElGcmFtZSkgXAogICAgIG1hY3JvKGltZywgSW1hZ2UpIFwKICAgICBtYWNybyhp
bnB1dCwgSW5wdXQpIFwKICAgICBtYWNybyhpc2luZGV4LCBJc0luZGV4KSBcCkluZGV4OiBXZWJD
b3JlL2JpbmRpbmdzL2pzL2tqc19odG1sLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRp
bmdzL2pzL2tqc19odG1sLmNwcAkocmV2aXNpb24gMjE2MjIpCisrKyBXZWJDb3JlL2JpbmRpbmdz
L2pzL2tqc19odG1sLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEwLDExICs0MTAsMTAgQEAgdm9p
ZCBKU0hUTUxEb2N1bWVudDo6cHV0VmFsdWVQcm9wZXJ0eShFeAogCiAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAKK2NvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjppbmZvID0geyAiSFRNTEVsZW1l
bnQiLCAmSlNFbGVtZW50OjppbmZvLCAmSFRNTEVsZW1lbnRUYWJsZSwgMCB9OworCiBjb25zdCBD
bGFzc0luZm8gSlNIVE1MRWxlbWVudDo6ZW1iZWRfaW5mbyA9IHsgIkhUTUxFbWJlZEVsZW1lbnQi
LCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxFbWJlZEVsZW1lbnRUYWJsZSwgMCB9OwogY29u
c3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6OmZyYW1lU2V0X2luZm8gPSB7ICJIVE1MRnJhbWVT
ZXRFbGVtZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MRnJhbWVTZXRFbGVtZW50VGFi
bGUsIDAgfTsKLWNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjpmcmFtZV9pbmZvID0geyAi
SFRNTEZyYW1lRWxlbWVudCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTEZyYW1lRWxlbWVu
dFRhYmxlLCAwIH07Ci1jb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6aUZyYW1lX2luZm8g
PSB7ICJIVE1MSUZyYW1lRWxlbWVudCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTElGcmFt
ZUVsZW1lbnRUYWJsZSwgMCB9OwotY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6OmluZm8g
PSB7ICJIVE1MRWxlbWVudCIsICZKU0VsZW1lbnQ6OmluZm8sICZIVE1MRWxlbWVudFRhYmxlLCAw
IH07CiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6bWFycXVlZV9pbmZvID0geyAiSFRN
TE1hcnF1ZWVFbGVtZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MTWFycXVlZUVsZW1l
bnRUYWJsZSwgMCB9OwogY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6Om9iamVjdF9pbmZv
ID0geyAiSFRNTE9iamVjdEVsZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxPYmpl
Y3RFbGVtZW50VGFibGUsIDAgfTsKIApAQCAtNDIzLDkgKzQyMiw3IEBAIGNvbnN0IENsYXNzSW5m
byogSlNIVE1MRWxlbWVudDo6Y2xhc3NJbmYKICAgICBzdGF0aWMgSGFzaE1hcDxBdG9taWNTdHJp
bmdJbXBsKiwgY29uc3QgQ2xhc3NJbmZvKj4gY2xhc3NJbmZvTWFwOwogICAgIGlmIChjbGFzc0lu
Zm9NYXAuaXNFbXB0eSgpKSB7CiAgICAgICAgIGNsYXNzSW5mb01hcC5zZXQoZW1iZWRUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCAmZW1iZWRfaW5mbyk7Ci0gICAgICAgIGNsYXNzSW5mb01hcC5zZXQo
ZnJhbWVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmZnJhbWVfaW5mbyk7CiAgICAgICAgIGNsYXNz
SW5mb01hcC5zZXQoZnJhbWVzZXRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmZnJhbWVTZXRfaW5m
byk7Ci0gICAgICAgIGNsYXNzSW5mb01hcC5zZXQoaWZyYW1lVGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgJmlGcmFtZV9pbmZvKTsKICAgICAgICAgY2xhc3NJbmZvTWFwLnNldChtYXJxdWVlVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgJm1hcnF1ZWVfaW5mbyk7CiAgICAgICAgIGNsYXNzSW5mb01hcC5z
ZXQob2JqZWN0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJm9iamVjdF9pbmZvKTsKICAgICB9CkBA
IC00NDAsOCArNDM3LDYgQEAgY29uc3QgQ2xhc3NJbmZvKiBKU0hUTUxFbGVtZW50OjpjbGFzc0lu
ZgogY29uc3QgSlNIVE1MRWxlbWVudDo6QWNjZXNzb3JzIEpTSFRNTEVsZW1lbnQ6Om9iamVjdF9h
Y2Nlc3NvcnMgPSB7ICZKU0hUTUxFbGVtZW50OjpvYmplY3RHZXR0ZXIsICZKU0hUTUxFbGVtZW50
OjpvYmplY3RTZXR0ZXIgfTsKIGNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFjY2Vzc29ycyBKU0hUTUxF
bGVtZW50OjplbWJlZF9hY2Nlc3NvcnMgPSB7ICZKU0hUTUxFbGVtZW50OjplbWJlZEdldHRlciwg
JkpTSFRNTEVsZW1lbnQ6OmVtYmVkU2V0dGVyIH07CiBjb25zdCBKU0hUTUxFbGVtZW50OjpBY2Nl
c3NvcnMgSlNIVE1MRWxlbWVudDo6ZnJhbWVTZXRfYWNjZXNzb3JzID0geyAmSlNIVE1MRWxlbWVu
dDo6ZnJhbWVTZXRHZXR0ZXIsICZKU0hUTUxFbGVtZW50OjpmcmFtZVNldFNldHRlciB9OwotY29u
c3QgSlNIVE1MRWxlbWVudDo6QWNjZXNzb3JzIEpTSFRNTEVsZW1lbnQ6OmZyYW1lX2FjY2Vzc29y
cyA9IHsgJkpTSFRNTEVsZW1lbnQ6OmZyYW1lR2V0dGVyLCAmSlNIVE1MRWxlbWVudDo6ZnJhbWVT
ZXR0ZXIgfTsKLWNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFjY2Vzc29ycyBKU0hUTUxFbGVtZW50Ojpp
RnJhbWVfYWNjZXNzb3JzID0geyAmSlNIVE1MRWxlbWVudDo6aUZyYW1lR2V0dGVyLCAmSlNIVE1M
RWxlbWVudDo6aUZyYW1lU2V0dGVyIH07CiBjb25zdCBKU0hUTUxFbGVtZW50OjpBY2Nlc3NvcnMg
SlNIVE1MRWxlbWVudDo6bWFycXVlZV9hY2Nlc3NvcnMgPSB7ICZKU0hUTUxFbGVtZW50OjptYXJx
dWVlR2V0dGVyLCAmSlNIVE1MRWxlbWVudDo6bWFycXVlZVNldHRlciB9OwogCiBjb25zdCBKU0hU
TUxFbGVtZW50OjpBY2Nlc3NvcnMqIEpTSFRNTEVsZW1lbnQ6OmFjY2Vzc29ycygpIGNvbnN0CkBA
IC00NDksOSArNDQ0LDcgQEAgY29uc3QgSlNIVE1MRWxlbWVudDo6QWNjZXNzb3JzKiBKU0hUTUxF
bAogICAgIHN0YXRpYyBIYXNoTWFwPEF0b21pY1N0cmluZ0ltcGwqLCBjb25zdCBBY2Nlc3NvcnMq
PiBhY2Nlc3Nvck1hcDsKICAgICBpZiAoYWNjZXNzb3JNYXAuaXNFbXB0eSgpKSB7CiAgICAgICAg
IGFjY2Vzc29yTWFwLmFkZChlbWJlZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZlbWJlZF9hY2Nl
c3NvcnMpOwotICAgICAgICBhY2Nlc3Nvck1hcC5hZGQoZnJhbWVUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCAmZnJhbWVfYWNjZXNzb3JzKTsKICAgICAgICAgYWNjZXNzb3JNYXAuYWRkKGZyYW1lc2V0
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmZyYW1lU2V0X2FjY2Vzc29ycyk7Ci0gICAgICAgIGFj
Y2Vzc29yTWFwLmFkZChpZnJhbWVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmaUZyYW1lX2FjY2Vz
c29ycyk7CiAgICAgICAgIGFjY2Vzc29yTWFwLmFkZChtYXJxdWVlVGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgJm1hcnF1ZWVfYWNjZXNzb3JzKTsKICAgICAgICAgYWNjZXNzb3JNYXAuYWRkKG9iamVj
dFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZvYmplY3RfYWNjZXNzb3JzKTsKICAgICB9CkBAIC01
MTYsMzYgKzUwOSw2IEBAIGNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFjY2Vzc29ycyogSlNIVE1MRWwK
IGNvbHMgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpGcmFtZVNldENvbHMgICAgICAgICAg
ICAgICAgICBEb250RGVsZXRlCiByb3dzICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6RnJh
bWVTZXRSb3dzICAgICAgICAgICAgICAgICAgRG9udERlbGV0ZQogQGVuZAotQGJlZ2luIEhUTUxG
cmFtZUVsZW1lbnRUYWJsZSA5Ci0gIGNvbnRlbnREb2N1bWVudCBLSlM6OkpTSFRNTEVsZW1lbnQ6
OkZyYW1lQ29udGVudERvY3VtZW50ICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gIGNvbnRl
bnRXaW5kb3cgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OkZyYW1lQ29udGVudFdpbmRvdyAgICAgICAg
ICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gIGZyYW1lQm9yZGVyICAgICBLSlM6OkpTSFRNTEVsZW1l
bnQ6OkZyYW1lRnJhbWVCb3JkZXIgICAgICAgICAgICBEb250RGVsZXRlCi0gIGxvbmdEZXNjICAg
ICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OkZyYW1lTG9uZ0Rlc2MgICAgICAgICAgICAgICBEb250
RGVsZXRlCi0gIG1hcmdpbkhlaWdodCAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OkZyYW1lTWFyZ2lu
SGVpZ2h0ICAgICAgICAgICBEb250RGVsZXRlCi0gIG1hcmdpbldpZHRoICAgICBLSlM6OkpTSFRN
TEVsZW1lbnQ6OkZyYW1lTWFyZ2luV2lkdGggICAgICAgICAgICBEb250RGVsZXRlCi0gIG5hbWUg
ICAgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OkZyYW1lTmFtZSAgICAgICAgICAgICAgICAg
ICBEb250RGVsZXRlCi0gIG5vUmVzaXplICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OkZyYW1l
Tm9SZXNpemUgICAgICAgICAgICAgICBEb250RGVsZXRlCi0gIHdpZHRoICAgICAgICAgICBLSlM6
OkpTSFRNTEVsZW1lbnQ6OkZyYW1lV2lkdGggICAgICAgICAgICAgICAgICBEb250RGVsZXRlfFJl
YWRPbmx5Ci0gIGhlaWdodCAgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OkZyYW1lSGVpZ2h0
ICAgICAgICAgICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gIHNjcm9sbGluZyAgICAgICBL
SlM6OkpTSFRNTEVsZW1lbnQ6OkZyYW1lU2Nyb2xsaW5nICAgICAgICAgICAgICBEb250RGVsZXRl
Ci0gIHNyYyAgICAgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OkZyYW1lU3JjICAgICAgICAg
ICAgICAgICAgICBEb250RGVsZXRlCi0gIGxvY2F0aW9uICAgICAgICBLSlM6OkpTSFRNTEVsZW1l
bnQ6OkZyYW1lTG9jYXRpb24gICAgICAgICAgICAgICBEb250RGVsZXRlCi1AZW5kCi1AYmVnaW4g
SFRNTElGcmFtZUVsZW1lbnRUYWJsZSAxMgotICBhbGlnbiAgICAgICAgICAgS0pTOjpKU0hUTUxF
bGVtZW50OjpJRnJhbWVBbGlnbiAgICAgICAgICAgICAgICAgRG9udERlbGV0ZQotICBjb250ZW50
RG9jdW1lbnQgS0pTOjpKU0hUTUxFbGVtZW50OjpJRnJhbWVDb250ZW50RG9jdW1lbnQgICAgICAg
RG9udERlbGV0ZXxSZWFkT25seQotICBjb250ZW50V2luZG93ICAgS0pTOjpKU0hUTUxFbGVtZW50
OjpJRnJhbWVDb250ZW50V2luZG93ICAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICBmcmFt
ZUJvcmRlciAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJRnJhbWVGcmFtZUJvcmRlciAgICAgICAg
ICAgRG9udERlbGV0ZQotICBoZWlnaHQgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJRnJh
bWVIZWlnaHQgICAgICAgICAgICAgICAgRG9udERlbGV0ZQotICBsb25nRGVzYyAgICAgICAgS0pT
OjpKU0hUTUxFbGVtZW50OjpJRnJhbWVMb25nRGVzYyAgICAgICAgICAgICAgRG9udERlbGV0ZQot
ICBtYXJnaW5IZWlnaHQgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJRnJhbWVNYXJnaW5IZWlnaHQg
ICAgICAgICAgRG9udERlbGV0ZQotICBtYXJnaW5XaWR0aCAgICAgS0pTOjpKU0hUTUxFbGVtZW50
OjpJRnJhbWVNYXJnaW5XaWR0aCAgICAgICAgICAgRG9udERlbGV0ZQotICBuYW1lICAgICAgICAg
ICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJRnJhbWVOYW1lICAgICAgICAgICAgICAgICAgRG9udERl
bGV0ZQotICBzY3JvbGxpbmcgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJRnJhbWVTY3JvbGxp
bmcgICAgICAgICAgICAgRG9udERlbGV0ZQotICBzcmMgICAgICAgICAgICAgS0pTOjpKU0hUTUxF
bGVtZW50OjpJRnJhbWVTcmMgICAgICAgICAgICAgICAgICAgRG9udERlbGV0ZQotICB3aWR0aCAg
ICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJRnJhbWVXaWR0aCAgICAgICAgICAgICAgICAg
RG9udERlbGV0ZQotQGVuZAotCiBAYmVnaW4gSFRNTE1hcnF1ZWVFbGVtZW50VGFibGUgMgogICBz
dGFydCAgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpNYXJxdWVlU3RhcnQgICAgICAgICAg
ICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCiAgIHN0b3AgICAgICAgICAgICBLSlM6OkpTSFRN
TEVsZW1lbnQ6Ok1hcnF1ZWVTdG9wICAgICAgICAgICAgICAgICBEb250RGVsZXRlfEZ1bmN0aW9u
IDAKQEAgLTcxNCw1NCArNjc3LDYgQEAgSlNWYWx1ZSAqSlNIVE1MRWxlbWVudDo6ZnJhbWVTZXRH
ZXR0ZXIoRQogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCi1KU1ZhbHVlICpKU0hUTUxF
bGVtZW50OjpmcmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbikgY29uc3QKLXsK
LSAgICBIVE1MRnJhbWVFbGVtZW50JiBmcmFtZUVsZW1lbnQgPSAqc3RhdGljX2Nhc3Q8SFRNTEZy
YW1lRWxlbWVudCo+KGltcGwoKSk7Ci0gICAgc3dpdGNoICh0b2tlbikgewotICAgICAgICBjYXNl
IEZyYW1lQ29udGVudERvY3VtZW50OiByZXR1cm4gY2hlY2tOb2RlU2VjdXJpdHkoZXhlYyxmcmFt
ZUVsZW1lbnQuY29udGVudERvY3VtZW50KCkpID8gCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0b0pTKGV4ZWMsIGZyYW1lRWxlbWVudC5jb250ZW50RG9jdW1lbnQo
KSkgOiBqc1VuZGVmaW5lZCgpOwotICAgICAgICBjYXNlIEZyYW1lQ29udGVudFdpbmRvdzogICBy
ZXR1cm4gY2hlY2tOb2RlU2VjdXJpdHkoZXhlYyxmcmFtZUVsZW1lbnQuY29udGVudERvY3VtZW50
KCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBXaW5kb3c6OnJl
dHJpZXZlKGZyYW1lRWxlbWVudC5jb250ZW50RnJhbWUoKSkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA6IGpzVW5kZWZpbmVkKCk7Ci0gICAgICAgIGNhc2UgRnJhbWVG
cmFtZUJvcmRlcjogICAgIHJldHVybiBqc1N0cmluZyhmcmFtZUVsZW1lbnQuZnJhbWVCb3JkZXIo
KSk7Ci0gICAgICAgIGNhc2UgRnJhbWVMb25nRGVzYzogICAgICAgIHJldHVybiBqc1N0cmluZyhm
cmFtZUVsZW1lbnQubG9uZ0Rlc2MoKSk7Ci0gICAgICAgIGNhc2UgRnJhbWVNYXJnaW5IZWlnaHQ6
ICAgIHJldHVybiBqc1N0cmluZyhmcmFtZUVsZW1lbnQubWFyZ2luSGVpZ2h0KCkpOwotICAgICAg
ICBjYXNlIEZyYW1lTWFyZ2luV2lkdGg6ICAgICByZXR1cm4ganNTdHJpbmcoZnJhbWVFbGVtZW50
Lm1hcmdpbldpZHRoKCkpOwotICAgICAgICBjYXNlIEZyYW1lTmFtZTogICAgICAgICAgICByZXR1
cm4ganNTdHJpbmcoZnJhbWVFbGVtZW50Lm5hbWUoKSk7Ci0gICAgICAgIGNhc2UgRnJhbWVOb1Jl
c2l6ZTogICAgICAgIHJldHVybiBqc0Jvb2xlYW4oZnJhbWVFbGVtZW50Lm5vUmVzaXplKCkpOwot
ICAgICAgICBjYXNlIEZyYW1lV2lkdGg6ICAgICAgICAgICByZXR1cm4ganNOdW1iZXIoZnJhbWVF
bGVtZW50LndpZHRoKCkpOwotICAgICAgICBjYXNlIEZyYW1lSGVpZ2h0OiAgICAgICAgICByZXR1
cm4ganNOdW1iZXIoZnJhbWVFbGVtZW50LmhlaWdodCgpKTsKLSAgICAgICAgY2FzZSBGcmFtZVNj
cm9sbGluZzogICAgICAgcmV0dXJuIGpzU3RyaW5nKGZyYW1lRWxlbWVudC5zY3JvbGxpbmcoKSk7
Ci0gICAgICAgIGNhc2UgRnJhbWVTcmM6Ci0gICAgICAgIGNhc2UgRnJhbWVMb2NhdGlvbjogICAg
ICAgIHJldHVybiBqc1N0cmluZyhmcmFtZUVsZW1lbnQuc3JjKCkpOwotICAgIH0KLSAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKLX0KLQotSlNWYWx1ZSAqSlNIVE1MRWxlbWVudDo6aUZyYW1lR2V0
dGVyKEV4ZWNTdGF0ZSogZXhlYywgaW50IHRva2VuKSBjb25zdAotewotICAgIEhUTUxJRnJhbWVF
bGVtZW50JiBpRnJhbWUgPSAqc3RhdGljX2Nhc3Q8SFRNTElGcmFtZUVsZW1lbnQqPihpbXBsKCkp
OwotICAgIHN3aXRjaCAodG9rZW4pIHsKLSAgICAgICAgY2FzZSBJRnJhbWVBbGlnbjogICAgICAg
ICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGlGcmFtZS5hbGlnbigpKTsKLSAgICAgICAgICAvLyAj
IyMgc2VjdXJpdHkgY2hlY2sgPwotICAgICAgICBjYXNlIElGcmFtZUNvbnRlbnREb2N1bWVudDog
cmV0dXJuIGNoZWNrTm9kZVNlY3VyaXR5KGV4ZWMsaUZyYW1lLmNvbnRlbnREb2N1bWVudCgpKSA/
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b0pTKGV4ZWMsIGlGcmFt
ZS5jb250ZW50RG9jdW1lbnQoKSkgOiBqc1VuZGVmaW5lZCgpOwotICAgICAgICBjYXNlIElGcmFt
ZUNvbnRlbnRXaW5kb3c6ICAgcmV0dXJuIGNoZWNrTm9kZVNlY3VyaXR5KGV4ZWMsaUZyYW1lLmNv
bnRlbnREb2N1bWVudCgpKSAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA/IFdpbmRvdzo6cmV0cmlldmUoaUZyYW1lLmNvbnRlbnRGcmFtZSgpKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoganNVbmRlZmluZWQoKTsKLSAgICAgICAgY2Fz
ZSBJRnJhbWVGcmFtZUJvcmRlcjogICAgIHJldHVybiBqc1N0cmluZyhpRnJhbWUuZnJhbWVCb3Jk
ZXIoKSk7Ci0gICAgICAgIGNhc2UgSUZyYW1lSGVpZ2h0OiAgICAgICAgICByZXR1cm4ganNTdHJp
bmcoaUZyYW1lLmhlaWdodCgpKTsKLSAgICAgICAgY2FzZSBJRnJhbWVMb25nRGVzYzogICAgICAg
IHJldHVybiBqc1N0cmluZyhpRnJhbWUubG9uZ0Rlc2MoKSk7Ci0gICAgICAgIGNhc2UgSUZyYW1l
TWFyZ2luSGVpZ2h0OiAgICByZXR1cm4ganNTdHJpbmcoaUZyYW1lLm1hcmdpbkhlaWdodCgpKTsK
LSAgICAgICAgY2FzZSBJRnJhbWVNYXJnaW5XaWR0aDogICAgIHJldHVybiBqc1N0cmluZyhpRnJh
bWUubWFyZ2luV2lkdGgoKSk7Ci0gICAgICAgIGNhc2UgSUZyYW1lTmFtZTogICAgICAgICAgICBy
ZXR1cm4ganNTdHJpbmcoaUZyYW1lLm5hbWUoKSk7Ci0gICAgICAgIGNhc2UgSUZyYW1lU2Nyb2xs
aW5nOiAgICAgICByZXR1cm4ganNTdHJpbmcoaUZyYW1lLnNjcm9sbGluZygpKTsKLSAgICAgICAg
Y2FzZSBJRnJhbWVTcmM6ICAgICAgICAgICAgIHJldHVybiBqc1N0cmluZyhpRnJhbWUuc3JjKCkp
OwotICAgICAgICBjYXNlIElGcmFtZVdpZHRoOiAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGlG
cmFtZS53aWR0aCgpKTsKLSAgICB9Ci0gICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci19Ci0KIEpT
VmFsdWUgKkpTSFRNTEVsZW1lbnQ6Om1hcnF1ZWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQg
dG9rZW4pIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IEZpbmQgb3V0IHdoYXQgV2luSUUgZXhwb3Nl
cyBhcyBwcm9wZXJ0aWVzIGFuZCBpbXBsZW1lbnQgdGhpcy4KQEAgLTg4NiwxNSArODAxLDE1IEBA
IEpTVmFsdWUgKkhUTUxFbGVtZW50RnVuY3Rpb246OmNhbGxBc0Z1bmMKICAgICAgICAgfQogICAg
IH0KICNpZiBFTkFCTEUoU1ZHKQotICBlbHNlIGlmIChlbGVtZW50Lmhhc0xvY2FsTmFtZShvYmpl
Y3RUYWcpKSB7Ci0gICAgICBIVE1MT2JqZWN0RWxlbWVudCYgb2JqZWN0ID0gc3RhdGljX2Nhc3Q8
SFRNTE9iamVjdEVsZW1lbnQmPihlbGVtZW50KTsKLSAgICAgIGlmIChpZCA9PSBKU0hUTUxFbGVt
ZW50OjpPYmplY3RHZXRTVkdEb2N1bWVudCkKLSAgICAgICAgICByZXR1cm4gY2hlY2tOb2RlU2Vj
dXJpdHkoZXhlYywgb2JqZWN0LmdldFNWR0RvY3VtZW50KGV4Y2VwdGlvbikpID8gdG9KUyhleGVj
LCBvYmplY3QuZ2V0U1ZHRG9jdW1lbnQoZXhjZXB0aW9uKSkgOiBqc1VuZGVmaW5lZCgpOwotICB9
IGVsc2UgaWYgKGVsZW1lbnQuaGFzTG9jYWxOYW1lKGVtYmVkVGFnKSkgewotICAgICAgSFRNTEVt
YmVkRWxlbWVudCYgZW1iZWQgPSBzdGF0aWNfY2FzdDxIVE1MRW1iZWRFbGVtZW50Jj4oZWxlbWVu
dCk7Ci0gICAgICBpZiAoaWQgPT0gSlNIVE1MRWxlbWVudDo6RW1iZWRHZXRTVkdEb2N1bWVudCkK
LSAgICAgICAgICByZXR1cm4gY2hlY2tOb2RlU2VjdXJpdHkoZXhlYywgZW1iZWQuZ2V0U1ZHRG9j
dW1lbnQoZXhjZXB0aW9uKSkgPyB0b0pTKGV4ZWMsIGVtYmVkLmdldFNWR0RvY3VtZW50KGV4Y2Vw
dGlvbikpIDoganNVbmRlZmluZWQoKTsKLSAgfQorICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzTG9j
YWxOYW1lKG9iamVjdFRhZykpIHsKKyAgICAgICAgSFRNTE9iamVjdEVsZW1lbnQmIG9iamVjdCA9
IHN0YXRpY19jYXN0PEhUTUxPYmplY3RFbGVtZW50Jj4oZWxlbWVudCk7CisgICAgICAgIGlmIChp
ZCA9PSBKU0hUTUxFbGVtZW50OjpPYmplY3RHZXRTVkdEb2N1bWVudCkKKyAgICAgICAgICAgIHJl
dHVybiBjaGVja05vZGVTZWN1cml0eShleGVjLCBvYmplY3QuZ2V0U1ZHRG9jdW1lbnQoZXhjZXB0
aW9uKSkgPyB0b0pTKGV4ZWMsIG9iamVjdC5nZXRTVkdEb2N1bWVudChleGNlcHRpb24pKSA6IGpz
VW5kZWZpbmVkKCk7CisgICAgfSBlbHNlIGlmIChlbGVtZW50Lmhhc0xvY2FsTmFtZShlbWJlZFRh
ZykpIHsKKyAgICAgICAgSFRNTEVtYmVkRWxlbWVudCYgZW1iZWQgPSBzdGF0aWNfY2FzdDxIVE1M
RW1iZWRFbGVtZW50Jj4oZWxlbWVudCk7CisgICAgICAgIGlmIChpZCA9PSBKU0hUTUxFbGVtZW50
OjpFbWJlZEdldFNWR0RvY3VtZW50KQorICAgICAgICAgICAgcmV0dXJuIGNoZWNrTm9kZVNlY3Vy
aXR5KGV4ZWMsIGVtYmVkLmdldFNWR0RvY3VtZW50KGV4Y2VwdGlvbikpID8gdG9KUyhleGVjLCBl
bWJlZC5nZXRTVkdEb2N1bWVudChleGNlcHRpb24pKSA6IGpzVW5kZWZpbmVkKCk7CisgICAgfQog
I2VuZGlmCiAKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKQEAgLTk3NSw0MSArODkwLDYgQEAg
dm9pZCBKU0hUTUxFbGVtZW50OjpmcmFtZVNldFNldHRlcihFeGVjUwogICAgIH0KIH0KIAotdm9p
ZCBKU0hUTUxFbGVtZW50OjpmcmFtZVNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbiwg
SlNWYWx1ZSogdmFsdWUpCi17Ci0gICAgSFRNTEZyYW1lRWxlbWVudCYgZnJhbWVFbGVtZW50ID0g
KnN0YXRpY19jYXN0PEhUTUxGcmFtZUVsZW1lbnQqPihpbXBsKCkpOwotICAgIHN3aXRjaCAodG9r
ZW4pIHsKLSAgICAgICAgLy8gcmVhZC1vbmx5OiBGcmFtZUNvbnRlbnREb2N1bWVudDoKLSAgICAg
ICAgY2FzZSBGcmFtZUZyYW1lQm9yZGVyOiAgICAgeyBmcmFtZUVsZW1lbnQuc2V0RnJhbWVCb3Jk
ZXIodmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUpKTsgcmV0dXJuOyB9Ci0g
ICAgICAgIGNhc2UgRnJhbWVMb25nRGVzYzogICAgICAgIHsgZnJhbWVFbGVtZW50LnNldExvbmdE
ZXNjKHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7IHJldHVybjsgfQot
ICAgICAgICBjYXNlIEZyYW1lTWFyZ2luSGVpZ2h0OiAgICB7IGZyYW1lRWxlbWVudC5zZXRNYXJn
aW5IZWlnaHQodmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUpKTsgcmV0dXJu
OyB9Ci0gICAgICAgIGNhc2UgRnJhbWVNYXJnaW5XaWR0aDogICAgIHsgZnJhbWVFbGVtZW50LnNl
dE1hcmdpbldpZHRoKHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7IHJl
dHVybjsgfQotICAgICAgICBjYXNlIEZyYW1lTmFtZTogICAgICAgICAgICB7IGZyYW1lRWxlbWVu
dC5zZXROYW1lKHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7IHJldHVy
bjsgfQotICAgICAgICBjYXNlIEZyYW1lTm9SZXNpemU6ICAgICAgICB7IGZyYW1lRWxlbWVudC5z
ZXROb1Jlc2l6ZSh2YWx1ZS0+dG9Cb29sZWFuKGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNh
c2UgRnJhbWVTY3JvbGxpbmc6ICAgICAgIHsgZnJhbWVFbGVtZW50LnNldFNjcm9sbGluZyh2YWx1
ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCB2YWx1ZSkpOyByZXR1cm47IH0KLSAgICAgICAg
Y2FzZSBGcmFtZVNyYzogICAgICAgICAgICAgeyBmcmFtZUVsZW1lbnQuc2V0U3JjKHZhbHVlVG9T
dHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7IHJldHVybjsgfQotICAgICAgICBjYXNl
IEZyYW1lTG9jYXRpb246ICAgICAgICB7IGZyYW1lRWxlbWVudC5zZXRMb2NhdGlvbih2YWx1ZVRv
U3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCB2YWx1ZSkpOyByZXR1cm47IH0KLSAgICB9Ci19Ci0K
LXZvaWQgSlNIVE1MRWxlbWVudDo6aUZyYW1lU2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgaW50IHRv
a2VuLCBKU1ZhbHVlKiB2YWx1ZSkKLXsKLSAgICBIVE1MSUZyYW1lRWxlbWVudCYgaUZyYW1lID0g
KnN0YXRpY19jYXN0PEhUTUxJRnJhbWVFbGVtZW50Kj4oaW1wbCgpKTsKLSAgICBzd2l0Y2ggKHRv
a2VuKSB7Ci0gICAgICAgIGNhc2UgSUZyYW1lQWxpZ246ICAgICAgICAgICB7IGlGcmFtZS5zZXRB
bGlnbih2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCB2YWx1ZSkpOyByZXR1cm47IH0K
LSAgICAgICAgLy8gcmVhZC1vbmx5OiBJRnJhbWVDb250ZW50RG9jdW1lbnQKLSAgICAgICAgY2Fz
ZSBJRnJhbWVGcmFtZUJvcmRlcjogICAgIHsgaUZyYW1lLnNldEZyYW1lQm9yZGVyKHZhbHVlVG9T
dHJpbmdXaXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7IHJldHVybjsgfQotICAgICAgICBjYXNl
IElGcmFtZUhlaWdodDogICAgICAgICAgeyBpRnJhbWUuc2V0SGVpZ2h0KHZhbHVlVG9TdHJpbmdX
aXRoTnVsbENoZWNrKGV4ZWMsIHZhbHVlKSk7IHJldHVybjsgfQotICAgICAgICBjYXNlIElGcmFt
ZUxvbmdEZXNjOiAgICAgICAgeyBpRnJhbWUuc2V0TG9uZ0Rlc2ModmFsdWVUb1N0cmluZ1dpdGhO
dWxsQ2hlY2soZXhlYywgdmFsdWUpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgSUZyYW1lTWFy
Z2luSGVpZ2h0OiAgICB7IGlGcmFtZS5zZXRNYXJnaW5IZWlnaHQodmFsdWVUb1N0cmluZ1dpdGhO
dWxsQ2hlY2soZXhlYywgdmFsdWUpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgSUZyYW1lTWFy
Z2luV2lkdGg6ICAgICB7IGlGcmFtZS5zZXRNYXJnaW5XaWR0aCh2YWx1ZVRvU3RyaW5nV2l0aE51
bGxDaGVjayhleGVjLCB2YWx1ZSkpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBJRnJhbWVOYW1l
OiAgICAgICAgICAgIHsgaUZyYW1lLnNldE5hbWUodmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2so
ZXhlYywgdmFsdWUpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgSUZyYW1lU2Nyb2xsaW5nOiAg
ICAgICB7IGlGcmFtZS5zZXRTY3JvbGxpbmcodmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhl
YywgdmFsdWUpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgSUZyYW1lU3JjOiAgICAgICAgICAg
ICB7IGlGcmFtZS5zZXRTcmModmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUp
KTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgSUZyYW1lV2lkdGg6ICAgICAgICAgICB7IGlGcmFt
ZS5zZXRXaWR0aCh2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCB2YWx1ZSkpOyByZXR1
cm47IH0KLSAgICB9Ci19Ci0KIHZvaWQgSlNIVE1MRWxlbWVudDo6bWFycXVlZVNldHRlcihFeGVj
U3RhdGUqIGV4ZWMsIGludCB0b2tlbiwgSlNWYWx1ZSogdmFsdWUpCiB7CiAgICAgLy8gRklYTUU6
IEZpbmQgb3V0IHdoYXQgV2luSUUgc3VwcG9ydHMgYW5kIGltcGxlbWVudCBpdC4KSW5kZXg6IFdl
YkNvcmUvYmluZGluZ3MvanMva2pzX2h0bWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRp
bmdzL2pzL2tqc19odG1sLmgJKHJldmlzaW9uIDIxNjIyKQorKysgV2ViQ29yZS9iaW5kaW5ncy9q
cy9ranNfaHRtbC5oCSh3b3JraW5nIGNvcHkpCkBAIC03NiwxOCArNzYsMTQgQEAgbmFtZXNwYWNl
IEtKUyB7CiAgICAgdmlydHVhbCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0Owog
ICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gaW5mbzsKIAotICAgIHN0YXRpYyBjb25zdCBDbGFz
c0luZm8KLSAgICAgIG9iamVjdF9pbmZvLCBlbWJlZF9pbmZvLAotICAgICAgZnJhbWVTZXRfaW5m
bywgZnJhbWVfaW5mbywgaUZyYW1lX2luZm8sIG1hcnF1ZWVfaW5mbzsKKyAgICBzdGF0aWMgY29u
c3QgQ2xhc3NJbmZvIG9iamVjdF9pbmZvLCBlbWJlZF9pbmZvLCBmcmFtZVNldF9pbmZvLCBtYXJx
dWVlX2luZm87CiAKICAgICAvLyBGSVhNRTogTWlnaHQgbWFrZSBzZW5zZSB0byBjb21iaW5lIHRo
aXMgd2l0aCBDbGFzc0luZm8gc29tZSBkYXkuCiAgICAgdHlwZWRlZiBKU1ZhbHVlKiAoSlNIVE1M
RWxlbWVudDo6KkdldHRlckZ1bmN0aW9uKShFeGVjU3RhdGUqLCBpbnQgdG9rZW4pIGNvbnN0Owog
ICAgIHR5cGVkZWYgdm9pZCAoSlNIVE1MRWxlbWVudDo6KlNldHRlckZ1bmN0aW9uKShFeGVjU3Rh
dGUqLCBpbnQgdG9rZW4sIEpTVmFsdWUqKTsKICAgICBzdHJ1Y3QgQWNjZXNzb3JzIHsgR2V0dGVy
RnVuY3Rpb24gbV9nZXR0ZXI7IFNldHRlckZ1bmN0aW9uIG1fc2V0dGVyOyB9OwogICAgIGNvbnN0
IEFjY2Vzc29ycyogYWNjZXNzb3JzKCkgY29uc3Q7Ci0gICAgc3RhdGljIGNvbnN0IEFjY2Vzc29y
cwotICAgICAgb2JqZWN0X2FjY2Vzc29ycywgZW1iZWRfYWNjZXNzb3JzLAotICAgICAgZnJhbWVT
ZXRfYWNjZXNzb3JzLCBmcmFtZV9hY2Nlc3NvcnMsIGlGcmFtZV9hY2Nlc3NvcnMsIG1hcnF1ZWVf
YWNjZXNzb3JzOworICAgIHN0YXRpYyBjb25zdCBBY2Nlc3NvcnMgb2JqZWN0X2FjY2Vzc29ycywg
ZW1iZWRfYWNjZXNzb3JzLCBmcmFtZVNldF9hY2Nlc3NvcnMsIG1hcnF1ZWVfYWNjZXNzb3JzOwog
CiAgICAgSlNWYWx1ZSogb2JqZWN0R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgaW50IHRva2VuKSBj
b25zdDsKICAgICB2b2lkICBvYmplY3RTZXR0ZXIoRXhlY1N0YXRlKiwgaW50IHRva2VuLCBKU1Zh
bHVlKik7CkBAIC05NSwxMCArOTEsNiBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICB2b2lkICBlbWJl
ZFNldHRlcihFeGVjU3RhdGUqLCBpbnQgdG9rZW4sIEpTVmFsdWUqKTsKICAgICBKU1ZhbHVlKiBm
cmFtZVNldEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbikgY29uc3Q7CiAgICAgdm9p
ZCAgZnJhbWVTZXRTZXR0ZXIoRXhlY1N0YXRlKiwgaW50IHRva2VuLCBKU1ZhbHVlKik7Ci0gICAg
SlNWYWx1ZSogZnJhbWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9rZW4pIGNvbnN0Owot
ICAgIHZvaWQgIGZyYW1lU2V0dGVyKEV4ZWNTdGF0ZSosIGludCB0b2tlbiwgSlNWYWx1ZSopOwot
ICAgIEpTVmFsdWUqIGlGcmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbikgY29u
c3Q7Ci0gICAgdm9pZCAgaUZyYW1lU2V0dGVyKEV4ZWNTdGF0ZSosIGludCB0b2tlbiwgSlNWYWx1
ZSopOwogICAgIEpTVmFsdWUqIG1hcnF1ZWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9r
ZW4pIGNvbnN0OwogICAgIHZvaWQgIG1hcnF1ZWVTZXR0ZXIoRXhlY1N0YXRlKiwgaW50IHRva2Vu
LCBKU1ZhbHVlKik7CiAKQEAgLTEwOCwxMSArMTAwLDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAg
ICAgICAgIE9iamVjdERlY2xhcmUsIE9iamVjdEZvcm0sIE9iamVjdENvZGVCYXNlLCBPYmplY3RD
b2RlVHlwZSwgT2JqZWN0RGF0YSwKICAgICAgICAgICAgT2JqZWN0TmFtZSwgT2JqZWN0U3RhbmRi
eSwgT2JqZWN0VGFiSW5kZXgsIE9iamVjdFVzZU1hcCwgT2JqZWN0V2lkdGgsIE9iamVjdENvbnRl
bnREb2N1bWVudCwgT2JqZWN0R2V0U1ZHRG9jdW1lbnQsCiAgICAgICAgICAgIEVtYmVkQWxpZ24s
IEVtYmVkSGVpZ2h0LCBFbWJlZE5hbWUsIEVtYmVkU3JjLCBFbWJlZFR5cGUsIEVtYmVkV2lkdGgs
IEVtYmVkR2V0U1ZHRG9jdW1lbnQsCi0gICAgICAgICAgIEZyYW1lU2V0Q29scywgRnJhbWVTZXRS
b3dzLCBGcmFtZVNyYywgRnJhbWVMb2NhdGlvbiwgRnJhbWVGcmFtZUJvcmRlciwgRnJhbWVTY3Jv
bGxpbmcsCi0gICAgICAgICAgIEZyYW1lTWFyZ2luV2lkdGgsIEZyYW1lTG9uZ0Rlc2MsIEZyYW1l
TWFyZ2luSGVpZ2h0LCBGcmFtZU5hbWUsIEZyYW1lQ29udGVudERvY3VtZW50LCBGcmFtZUNvbnRl
bnRXaW5kb3csIAotICAgICAgICAgICBGcmFtZU5vUmVzaXplLCBGcmFtZVdpZHRoLCBGcmFtZUhl
aWdodCwgSUZyYW1lTG9uZ0Rlc2MsIElGcmFtZUFsaWduLAotICAgICAgICAgICBJRnJhbWVGcmFt
ZUJvcmRlciwgSUZyYW1lU3JjLCBJRnJhbWVOYW1lLCBJRnJhbWVIZWlnaHQsCi0gICAgICAgICAg
IElGcmFtZU1hcmdpbkhlaWdodCwgSUZyYW1lTWFyZ2luV2lkdGgsIElGcmFtZVNjcm9sbGluZywg
SUZyYW1lV2lkdGgsIElGcmFtZUNvbnRlbnREb2N1bWVudCwgSUZyYW1lQ29udGVudFdpbmRvdywK
KyAgICAgICAgICAgRnJhbWVTZXRDb2xzLCBGcmFtZVNldFJvd3MsIAogICAgICAgICAgICBNYXJx
dWVlU3RhcnQsIE1hcnF1ZWVTdG9wLAogICAgICAgICAgICBHZXRDb250ZXh0LAogICAgICAgICAg
ICBFbGVtZW50SW5uZXJIVE1MLCBFbGVtZW50SWQsIEVsZW1lbnREaXIsIEVsZW1lbnRMYW5nLApJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZp
c2lvbiAyMTYyMikKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0JKHdvcmtpbmcgY29weSkKQEAgLTgzMiw2ICs4MzIsMTAgQEAgc3ViIEdlbmVyYXRlSW1wbGVt
ZW50YXRpb24KICAgICAgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDdXN0b20ifSkgewogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIGNhc2UgIiAuIFdLX3VjZmlyc3QoJG5hbWUpIC4gIkF0dHJOdW06XG4iKTsKICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuICRuYW1lKGV4
ZWMpO1xuIik7CisgICAgICAgICAgICB9IGVsc2lmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVja1NlY3VyaXR5In0pIHsKKyAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBjYXNlICIgLiBXS191Y2ZpcnN0KCRuYW1lKSAuICJBdHRy
TnVtOlxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJl
dHVybiBjaGVja05vZGVTZWN1cml0eShleGVjLCBpbXAtPmNvbnRlbnREb2N1bWVudCgpKSA/ICIg
LiBOYXRpdmVUb0pTVmFsdWUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLCAgJGltcGxDbGFzc05hbWVG
b3JWYWx1ZUNvbnZlcnNpb24sICJpbXAtPiRuYW1lKCkiKSAuICIgOiBqc1VuZGVmaW5lZCgpO1xu
Iik7CisgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siRG9jdW1lbnQuaCJ9ID0gMTsKICAg
ICAgICAgICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSA9fiAvQ29uc3Ry
dWN0b3IkLykgewogICAgICAgICAgICAgICAgIG15ICRjb25zdHJ1Y3RvclR5cGUgPSAkY29kZUdl
bmVyYXRvci0+U3RyaXBNb2R1bGUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlKTsKICAgICAg
ICAgICAgICAgICAkY29uc3RydWN0b3JUeXBlID1+IHMvQ29uc3RydWN0b3IkLy87CkBAIC0xMzgx
LDYgKzEzODUsMTEgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZQogICAgICAgICByZXR1cm4gInRvSlMo
ZXhlYywgV1RGOjpnZXRQdHIoJHZhbHVlKSwgaW1wKSI7CiAgICAgfQogCisgICAgaWYgKCR0eXBl
IGVxICJXaW5kb3ciKSB7CisgICAgICAgICRpbXBsSW5jbHVkZXN7Imtqc193aW5kb3cuaCJ9ID0g
MTsKKyAgICAgICAgcmV0dXJuICJXaW5kb3c6OnJldHJpZXZlKFdURjo6Z2V0UHRyKCR2YWx1ZSkp
IjsKKyAgICB9CisKICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCR0
eXBlKSkgewogICAgICAgICAkdmFsdWUgPX4gcy9cKFwpLy87CiAgICAgICAgICR2YWx1ZSAuPSAi
QW5pbWF0ZWQoKSI7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuaWRsCShyZXZpc2lvbiAy
MTYyMikKKysrIFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0
ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAgKgog
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgpAQCAtMjAsNyArMjAsNyBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZh
Y2UgSFRNTEZyYW1lRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICBpbnRlcmZhY2UgW0xlZ2Fj
eVBhcmVudD1LSlM6OkpTSFRNTEVsZW1lbnQsIEdlbmVyYXRlQ29uc3RydWN0b3JdIEhUTUxGcmFt
ZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgIGZyYW1lQm9yZGVyOwogICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJp
bmcgICAgICAgbG9uZ0Rlc2M7CkBAIC0zMCw4ICszMCwyMSBAQCBtb2R1bGUgaHRtbCB7CiAgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgbm9SZXNpemU7CiAgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAg
ICAgICBzY3JvbGxpbmc7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICBzcmM7CisKICAgICAgICAgLy8gSW50cm9kdWNl
ZCBpbiBET00gTGV2ZWwgMjoKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERvY3VtZW50ICAg
ICAgICBjb250ZW50RG9jdW1lbnQ7CisgCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ2hl
Y2tTZWN1cml0eV0gRG9jdW1lbnQgICAgICAgIGNvbnRlbnREb2N1bWVudDsKKworICAgICAgICAv
LyBleHRlbnNpb25zCisKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ2hlY2tTZWN1cml0eV0gV2luZG93ICAgICAgICAgIGNvbnRl
bnRXaW5kb3c7CisKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZ10gRE9NU3RyaW5nICAgICAgIGxvY2F0aW9uOworI2VuZGlmCisKKyAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGxvbmcgICAgICAgICAgICB3aWR0aDsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGxvbmcgICAgICAgICAgICBoZWlnaHQ7CiAKICAgICB9OwogCkluZGV4OiBXZWJD
b3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAJKHJldmlzaW9uIDIxNjIyKQorKysgV2ViQ29y
ZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTkzLDYg
KzE5MywxMSBAQCB2b2lkIEhUTUxGcmFtZUVsZW1lbnRCYXNlOjp3aWxsUmVtb3ZlKCkKICAgICBI
VE1MRWxlbWVudDo6d2lsbFJlbW92ZSgpOwogfQogCitTdHJpbmcgSFRNTEZyYW1lRWxlbWVudEJh
c2U6OmxvY2F0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3JjKCk7Cit9CisKIHZvaWQgSFRN
TEZyYW1lRWxlbWVudEJhc2U6OnNldExvY2F0aW9uKGNvbnN0IFN0cmluZyYgc3RyKQogewogICAg
IGlmIChtX1VSTCA9PSBzdHIpCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJh
c2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuaAko
cmV2aXNpb24gMjE2MjIpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuaAko
d29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZv
aWQgYXR0YWNoKCk7CiAKKyAgICBTdHJpbmcgbG9jYXRpb24oKSBjb25zdDsKICAgICB2b2lkIHNl
dExvY2F0aW9uKGNvbnN0IFN0cmluZyYpOwogCiAgICAgdmlydHVhbCBib29sIGlzRm9jdXNhYmxl
KCkgY29uc3Q7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEZyYW1lT3duZXJFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxGcmFtZU93bmVyRWxlbWVudC5oCShyZXZpc2lv
biAyMTYyMikKKysrIFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVPd25lckVsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SFRNTEZyYW1l
T3duZXJFbGVtZW50KCk7CiAKICAgICBGcmFtZSogY29udGVudEZyYW1lKCkgY29uc3QgeyByZXR1
cm4gbV9jb250ZW50RnJhbWU7IH0KKyAgICBGcmFtZSogY29udGVudFdpbmRvdygpIGNvbnN0IHsg
cmV0dXJuIGNvbnRlbnRGcmFtZSgpOyB9IC8vIGFsaWFzIGZvciBET00gSlMgRE9NIGJpbmRpbmdz
CiAgICAgRG9jdW1lbnQqIGNvbnRlbnREb2N1bWVudCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBi
b29sIGlzRnJhbWVPd25lckVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CkluZGV4OiBX
ZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aHRtbC9IVE1MSUZyYW1lRWxlbWVudC5pZGwJKHJldmlzaW9uIDIxNjIyKQorKysgV2ViQ29yZS9o
dG1sL0hUTUxJRnJhbWVFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHly
aWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2Ft
dWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMjAsNyAr
MjAsNyBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgSFRNTElGcmFtZUVsZW1l
bnQgOiBIVE1MRWxlbWVudCB7CisgICAgaW50ZXJmYWNlIFtMZWdhY3lQYXJlbnQ9S0pTOjpKU0hU
TUxFbGVtZW50LCBHZW5lcmF0ZUNvbnN0cnVjdG9yXSBIVE1MSUZyYW1lRWxlbWVudCA6IEhUTUxF
bGVtZW50IHsKIAogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxs
U3RyaW5nXSBET01TdHJpbmcgICAgICAgYWxpZ247CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICBmcmFtZUJvcmRlcjsK
QEAgLTMyLDggKzMyLDE2IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgIHNjcm9sbGluZzsK
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9N
U3RyaW5nICAgICAgIHNyYzsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgIHdpZHRoOworCiAgICAgICAgIC8vIEludHJv
ZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEb2N1bWVu
dCAgICAgICAgY29udGVudERvY3VtZW50OworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBb
Q2hlY2tTZWN1cml0eV0gRG9jdW1lbnQgICAgICAgIGNvbnRlbnREb2N1bWVudDsKKworICAgICAg
ICAvLyBleHRlbnNpb25zCisKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ2hlY2tTZWN1cml0eV0gV2luZG93ICAgICAgICAgIGNv
bnRlbnRXaW5kb3c7CisjZW5kaWYKIAogICAgIH07CiAKSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCShyZXZp
c2lvbiAyMTYyMikKKysrIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC05NSwxMyArOTUsMTMgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIGF0dHJpYnV0ZSBI
VE1MRmllbGRTZXRFbGVtZW50Q29uc3RydWN0b3IgSFRNTEZpZWxkU2V0RWxlbWVudDsKICAgICAg
ICAgYXR0cmlidXRlIEhUTUxGb250RWxlbWVudENvbnN0cnVjdG9yIEhUTUxGb250RWxlbWVudDsK
ICAgICAgICAgYXR0cmlidXRlIEhUTUxGb3JtRWxlbWVudENvbnN0cnVjdG9yIEhUTUxGb3JtRWxl
bWVudDsKLS8vICAgICAgICBhdHRyaWJ1dGUgSFRNTEZyYW1lRWxlbWVudENvbnN0cnVjdG9yIEhU
TUxGcmFtZUVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBIVE1MRnJhbWVFbGVtZW50Q29uc3Ry
dWN0b3IgSFRNTEZyYW1lRWxlbWVudDsKIC8vICAgICAgICBhdHRyaWJ1dGUgSFRNTEZyYW1lU2V0
RWxlbWVudENvbnN0cnVjdG9yIEhUTUxGcmFtZVNldEVsZW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0
ZSBIVE1MSGVhZEVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MSGVhZEVsZW1lbnQ7CiAgICAgICAgIGF0
dHJpYnV0ZSBIVE1MSGVhZGluZ0VsZW1lbnRDb25zdHJ1Y3RvciBIVE1MSGVhZGluZ0VsZW1lbnQ7
CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MSFJFbGVtZW50Q29uc3RydWN0b3IgSFRNTEhSRWxlbWVu
dDsKICAgICAgICAgYXR0cmlidXRlIEhUTUxIdG1sRWxlbWVudENvbnN0cnVjdG9yIEhUTUxIdG1s
RWxlbWVudDsKLS8vICAgICAgICBhdHRyaWJ1dGUgSFRNTElGcmFtZUVsZW1lbnRDb25zdHJ1Y3Rv
ciBIVE1MSUZyYW1lRWxlbWVudDsKKyAgICAgICAgYXR0cmlidXRlIEhUTUxJRnJhbWVFbGVtZW50
Q29uc3RydWN0b3IgSFRNTElGcmFtZUVsZW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MSW1h
Z2VFbGVtZW50Q29uc3RydWN0b3IgSFRNTEltYWdlRWxlbWVudDsKICAgICAgICAgYXR0cmlidXRl
IEhUTUxJbnB1dEVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MSW5wdXRFbGVtZW50OwogICAgICAgICBh
dHRyaWJ1dGUgSFRNTElzSW5kZXhFbGVtZW50Q29uc3RydWN0b3IgSFRNTElzSW5kZXhFbGVtZW50
OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gMjE2MjIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAwNy0wNS0yMSAgU2FtIFdlaW5pZyAgPHNh
bUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIC0gdXBkYXRlIHJlc3VsdHMgZm9yIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzNzkxCisgICAgICAgICAgdG8gYWNjb3VudCBmb3IgbmV3IEpTSFRNTEVsZW1l
bnRzIHRoYXQgYXJlIGJlaW5nIGF1dG9nZW5lcmF0ZWQgYW5kCisgICAgICAgICAgY2FuIG5vdyBw
cm9kdWNlIGNvbnN0cnVjdG9ycy4KKworICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9lbGVtZW50
LWNvbnN0cnVjdG9ycy1vbi13aW5kb3ctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQ6CisKIDIwMDctMDUtMTkgIE1p
dHogUGV0dGVsICA8bWl0ekB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmUg
SHlhdHQuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZWxlbWVudC1jb25zdHJ1
Y3RvcnMtb24td2luZG93LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvZWxlbWVudC1jb25zdHJ1Y3RvcnMtb24td2luZG93LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMjE2MjIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvZWxlbWVu
dC1jb25zdHJ1Y3RvcnMtb24td2luZG93LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MzAsNyArMzAsNyBAQCBIVE1MRm9udEVsZW1lbnQ6IFtvYmplY3QgSFRNTEZvbnRFbGVtZW50CiAK
IEhUTUxGb3JtRWxlbWVudDogW29iamVjdCBIVE1MRm9ybUVsZW1lbnRDb25zdHJ1Y3Rvcl0KIAot
SFRNTEZyYW1lRWxlbWVudDogdW5kZWZpbmVkCitIVE1MRnJhbWVFbGVtZW50OiBbb2JqZWN0IEhU
TUxGcmFtZUVsZW1lbnRDb25zdHJ1Y3Rvcl0KIAogSFRNTEZyYW1lU2V0RWxlbWVudDogdW5kZWZp
bmVkCiAKQEAgLTQyLDcgKzQyLDcgQEAgSFRNTEhSRWxlbWVudDogW29iamVjdCBIVE1MSFJFbGVt
ZW50Q29ucwogCiBIVE1MSHRtbEVsZW1lbnQ6IFtvYmplY3QgSFRNTEh0bWxFbGVtZW50Q29uc3Ry
dWN0b3JdCiAKLUhUTUxJRnJhbWVFbGVtZW50OiB1bmRlZmluZWQKK0hUTUxJRnJhbWVFbGVtZW50
OiBbb2JqZWN0IEhUTUxJRnJhbWVFbGVtZW50Q29uc3RydWN0b3JdCiAKIEhUTUxJbWFnZUVsZW1l
bnQ6IFtvYmplY3QgSFRNTEltYWdlRWxlbWVudENvbnN0cnVjdG9yXQogCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDIxNjIyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNTI4
LDYgKzUyOCw4IEBAIHdpbmRvdy5IVE1MRm9udEVsZW1lbnQgW29iamVjdCBIVE1MRm9udEUKIHdp
bmRvdy5IVE1MRm9udEVsZW1lbnQucHJvdG90eXBlIFtwcmludGVkIGFib3ZlIGFzIHdpbmRvdy5F
bGVtZW50LnByb3RvdHlwZV0KIHdpbmRvdy5IVE1MRm9ybUVsZW1lbnQgW29iamVjdCBIVE1MRm9y
bUVsZW1lbnRDb25zdHJ1Y3Rvcl0KIHdpbmRvdy5IVE1MRm9ybUVsZW1lbnQucHJvdG90eXBlIFtw
cmludGVkIGFib3ZlIGFzIHdpbmRvdy5FbGVtZW50LnByb3RvdHlwZV0KK3dpbmRvdy5IVE1MRnJh
bWVFbGVtZW50IFtvYmplY3QgSFRNTEZyYW1lRWxlbWVudENvbnN0cnVjdG9yXQord2luZG93LkhU
TUxGcmFtZUVsZW1lbnQucHJvdG90eXBlIFtwcmludGVkIGFib3ZlIGFzIHdpbmRvdy5FbGVtZW50
LnByb3RvdHlwZV0KIHdpbmRvdy5IVE1MSFJFbGVtZW50IFtvYmplY3QgSFRNTEhSRWxlbWVudENv
bnN0cnVjdG9yXQogd2luZG93LkhUTUxIUkVsZW1lbnQucHJvdG90eXBlIFtwcmludGVkIGFib3Zl
IGFzIHdpbmRvdy5FbGVtZW50LnByb3RvdHlwZV0KIHdpbmRvdy5IVE1MSGVhZEVsZW1lbnQgW29i
amVjdCBIVE1MSGVhZEVsZW1lbnRDb25zdHJ1Y3Rvcl0KQEAgLTUzNiw2ICs1MzgsOCBAQCB3aW5k
b3cuSFRNTEhlYWRpbmdFbGVtZW50IFtvYmplY3QgSFRNTEhlCiB3aW5kb3cuSFRNTEhlYWRpbmdF
bGVtZW50LnByb3RvdHlwZSBbcHJpbnRlZCBhYm92ZSBhcyB3aW5kb3cuRWxlbWVudC5wcm90b3R5
cGVdCiB3aW5kb3cuSFRNTEh0bWxFbGVtZW50IFtvYmplY3QgSFRNTEh0bWxFbGVtZW50Q29uc3Ry
dWN0b3JdCiB3aW5kb3cuSFRNTEh0bWxFbGVtZW50LnByb3RvdHlwZSBbcHJpbnRlZCBhYm92ZSBh
cyB3aW5kb3cuRWxlbWVudC5wcm90b3R5cGVdCit3aW5kb3cuSFRNTElGcmFtZUVsZW1lbnQgW29i
amVjdCBIVE1MSUZyYW1lRWxlbWVudENvbnN0cnVjdG9yXQord2luZG93LkhUTUxJRnJhbWVFbGVt
ZW50LnByb3RvdHlwZSBbcHJpbnRlZCBhYm92ZSBhcyB3aW5kb3cuRWxlbWVudC5wcm90b3R5cGVd
CiB3aW5kb3cuSFRNTEltYWdlRWxlbWVudCBbb2JqZWN0IEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1
Y3Rvcl0KIHdpbmRvdy5IVE1MSW1hZ2VFbGVtZW50LnByb3RvdHlwZSBbcHJpbnRlZCBhYm92ZSBh
cyB3aW5kb3cuRWxlbWVudC5wcm90b3R5cGVdCiB3aW5kb3cuSFRNTElucHV0RWxlbWVudCBbb2Jq
ZWN0IEhUTUxJbnB1dEVsZW1lbnRDb25zdHJ1Y3Rvcl0K
</data>
<flag name="review"
          id="6012"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>