<?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>10766</bug_id>
          
          <creation_ts>2006-09-07 06:53:34 -0700</creation_ts>
          <short_desc>Auto-generate the Objective-C DOM Events bindings</short_desc>
          <delta_ts>2006-09-07 10:02:37 -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>420+</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>
          
          
          <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>54957</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-09-07 06:53:34 -0700</bug_when>
    <thetext>patch on it&apos;s way</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54959</commentid>
    <comment_count>1</comment_count>
      <attachid>10433</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-09-07 07:04:44 -0700</bug_when>
    <thetext>Created attachment 10433
patch

- Auto-generates DOMEvent, DOMKeyboardEvent, DOMMouseEvent, DOMMutationEvent, DOMOverflowEvent, DOMUIEvent, and DOMWheelEvent.

- Splits out DOMEventListener and DOMEventTarget into their own files.

This patch also includes some whitespace changes to CodeGenerator.pm to make it consistent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54960</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-09-07 07:07:14 -0700</bug_when>
    <thetext>Tim,
One thing I forgot to change before I posted the patch was that I tried out a aligning some of the if-statements in CodeGeneratorObjC.pm.  I&apos;m not sure if I like this style, but I was trying it out.  If you don&apos;t like it I can easily get rid of the extra whitespace.  Just a heads up on that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54971</commentid>
    <comment_count>3</comment_count>
      <attachid>10433</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-09-07 08:39:56 -0700</bug_when>
    <thetext>Comment on attachment 10433
patch

Copyright should be 2004, 2005, 2006 rather than 2004-2006.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54977</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-09-07 10:02:37 -0700</bug_when>
    <thetext>Landed in r16262.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10433</attachid>
            <date>2006-09-07 07:04:44 -0700</date>
            <delta_ts>2006-09-07 08:39:56 -0700</delta_ts>
            <desc>patch</desc>
            <filename>autoEvents.diff</filename>
            <type>text/plain</type>
            <size>108022</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNjI1OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMDYtMDktMDcgIFNhbSBXZWluaWcgIDxzYW0ud2VpbmlnQGdtYWls
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQ
YXRjaCBmb3IgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDc2NgorICAgICAgICBBdXRvLWdlbmVyYXRlIHRoZSBPYmplY3RpdmUtQyBET00gRXZlbnRzIGJp
bmRpbmdzCisKKyAgICAgICAgLSBBdXRvLWdlbmVyYXRlcyBET01FdmVudCwgRE9NS2V5Ym9hcmRF
dmVudCwgRE9NTW91c2VFdmVudCwgRE9NTXV0YXRpb25FdmVudCwgCisgICAgICAgICAgRE9NT3Zl
cmZsb3dFdmVudCwgRE9NVUlFdmVudCwgYW5kIERPTVdoZWVsRXZlbnQuCisgICAgICAgICAgCisg
ICAgICAgIC0gU3BsaXRzIG91dCBET01FdmVudExpc3RlbmVyIGFuZCBET01FdmVudFRhcmdldCBp
bnRvIHRoZWlyIG93biBmaWxlcy4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJp
bmRpbmdzL29iamMvRE9NRXZlbnRMaXN0ZW5lci5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5n
cy9vYmpjL0RPTUV2ZW50VGFyZ2V0Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMv
RE9NRXZlbnRzLmg6CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01FdmVudHMubW06CisgICAg
ICAgICgtW0RPTUV2ZW50IFdlYkNvcmU6Ol0pOgorICAgICAgICAoLVtET01FdmVudCBfaW5pdFdp
dGhFdmVudDpXZWJDb3JlOjpdKToKKyAgICAgICAgKCtbRE9NRXZlbnQgX2V2ZW50V2l0aDpXZWJD
b3JlOjpdKToKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUV2ZW50c05vbnN0YW5kYXJkLm1t
OiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NTm9kZS5oOgorICAgICAgICAq
IGJpbmRpbmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNlcy5oOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JPYmpDLnBtOgorICAgICAgICAqIGRvbS9FdmVudC5pZGw6CisgICAgICAgICog
ZG9tL0V2ZW50TGlzdGVuZXIuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXQu
aWRsOiBBZGRlZC4KKyAgICAgICAgKiBkb20vS2V5Ym9hcmRFdmVudC5pZGw6CisgICAgICAgICog
ZG9tL01vdXNlRXZlbnQuaWRsOgorICAgICAgICAqIGRvbS9VSUV2ZW50LmlkbDoKKyAgICAgICAg
KiBkb20vV2hlZWxFdmVudC5pZGw6CisKIDIwMDYtMDktMDcgIFJvYiBCdWlzICA8YnVpc0BrZGUu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llai4KSW5kZXg6IFdlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJ
KHJldmlzaW9uIDE2MjU5KQorKysgV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5n
IGNvcHkpCkBAIC02OCw2ICs2OCw3IEBAIGFsbCA6IFwKICAgICBET01FbGVtZW50LmggXAogICAg
IERPTUVudGl0eS5oIFwKICAgICBET01FbnRpdHlSZWZlcmVuY2UuaCBcCisgICAgRE9NRXZlbnQu
aCBcCiAgICAgRE9NSFRNTEFuY2hvckVsZW1lbnQuaCBcCiAgICAgRE9NSFRNTEFyZWFFbGVtZW50
LmggXAogICAgIERPTUhUTUxCUkVsZW1lbnQuaCBcCkBAIC0xMjEsMTUgKzEyMiwyMSBAQCBhbGwg
OiBcCiAgICAgRE9NSFRNTFRleHRBcmVhRWxlbWVudC5oIFwKICAgICBET01IVE1MVGl0bGVFbGVt
ZW50LmggXAogICAgIERPTUhUTUxVTGlzdEVsZW1lbnQuaCBcCisgICAgRE9NS2V5Ym9hcmRFdmVu
dC5oIFwKICAgICBET01NZWRpYUxpc3QuaCBcCisgICAgRE9NTW91c2VFdmVudC5oIFwKKyAgICBE
T01NdXRhdGlvbkV2ZW50LmggXAogICAgIERPTU5hbWVkTm9kZU1hcC5oIFwKICAgICBET01Ob2Rl
TGlzdC5oIFwKICAgICBET01Ob3RhdGlvbi5oIFwKKyAgICBET01PdmVyZmxvd0V2ZW50LmggXAog
ICAgIERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIFwKICAgICBET01SZWN0LmggXAogICAgIERP
TVN0eWxlU2hlZXQuaCBcCiAgICAgRE9NU3R5bGVTaGVldExpc3QuaCBcCi0gICAgRE9NVGV4dC5o
CisgICAgRE9NVGV4dC5oIFwKKyAgICBET01VSUV2ZW50LmggXAorICAgIERPTVdoZWVsRXZlbnQu
aAogZW5kaWYKIAogYWxsIDogXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDE2MjU5KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQ4MSw2ICs0ODEsMTEgQEAKIAkJ
ODU3NURGODUwQUE2MTMwRTAwRjVEQkI1IC8qIERPTUhUTUxIdG1sRWxlbWVudC5oIGluIENvcHlG
aWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTk5MkVCNDBBQTUwNjk1
MDBBQzA3ODUgLyogRE9NSFRNTEh0bWxFbGVtZW50LmggKi87IH07CiAJCTg1NzVERjg2MEFBNjEz
MEUwMEY1REJCNSAvKiBET01IVE1MTGlua0VsZW1lbnQuaCBpbiBDb3B5RmlsZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU5OTJFQjYwQUE1MDY5NTAwQUMwNzg1IC8qIERP
TUhUTUxMaW5rRWxlbWVudC5oICovOyB9OwogCQk4NTc1REY4NzBBQTYxMzBFMDBGNURCQjUgLyog
RE9NSFRNTFRpdGxlRWxlbWVudC5oIGluIENvcHlGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NTk5MkVCODBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTFRpdGxlRWxl
bWVudC5oICovOyB9OworCQk4NTdFMEIyNTBBQjA0MzQ2MDAzNkU0NDcgLyogRE9NTW91c2VFdmVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU3RTBC
MjMwQUIwNDM0NjAwMzZFNDQ3IC8qIERPTU1vdXNlRXZlbnQuaCAqLzsgfTsKKwkJODU3RTBCMjYw
QUIwNDM0NjAwMzZFNDQ3IC8qIERPTU1vdXNlRXZlbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTdFMEIyNDBBQjA0MzQ2MDAzNkU0NDcgLyogRE9N
TW91c2VFdmVudC5tbSAqLzsgfTsKKwkJODU3RTBCMkMwQUIwNDNGQzAwMzZFNDQ3IC8qIERPTU1v
dXNlRXZlbnRQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NTdFMEIyQjBBQjA0M0ZDMDAzNkU0NDcgLyogRE9NTW91c2VFdmVudFByaXZhdGUu
aCAqLzsgfTsKKwkJODU3RTBCMzEwQUIwNDQ3ODAwMzZFNDQ3IC8qIERPTU1vdXNlRXZlbnQuaCBp
biBDb3B5RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU3RTBCMjMw
QUIwNDM0NjAwMzZFNDQ3IC8qIERPTU1vdXNlRXZlbnQuaCAqLzsgfTsKKwkJODU3RTBCMzIwQUIw
NDQ3ODAwMzZFNDQ3IC8qIERPTU1vdXNlRXZlbnRQcml2YXRlLmggaW4gQ29weUZpbGVzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1N0UwQjJCMEFCMDQzRkMwMDM2RTQ0NyAv
KiBET01Nb3VzZUV2ZW50UHJpdmF0ZS5oICovOyB9OwogCQk4NThDMzgxQzBBQThFMjk2MDBCMTg3
QTQgLyogRE9NQ1NTVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg1OEMzODFBMEFBOEUyOTYwMEIxODdBNCAvKiBET01DU1NWYWx1ZS5oICovOyB9
OwogCQk4NThDMzgxRDBBQThFMjk2MDBCMTg3QTQgLyogRE9NQ1NTVmFsdWUubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NThDMzgxQjBBQThFMjk2MDBC
MTg3QTQgLyogRE9NQ1NTVmFsdWUubW0gKi87IH07CiAJCTg1OEMzODJDMEFBOEU0MDUwMEIxODdB
NCAvKiBET01DU1NQcmltaXRpdmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODU4QzM4MkEwQUE4RTQwNTAwQjE4N0E0IC8qIERPTUNTU1ByaW1p
dGl2ZVZhbHVlLmggKi87IH07CkBAIC01MzEsNiArNTM2LDggQEAKIAkJODVBQ0FBOEUwQTlCNzU5
QzAwNjcxRTkwIC8qIERPTU5vZGVMaXN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODVBQ0FBOEEwQTlCNzU5QzAwNjcxRTkwIC8qIERPTU5vZGVMaXN0
Lm1tICovOyB9OwogCQk4NUFDQUJCMDBBOUNBRjgwMDA2NzFFOTAgLyogRE9NRG9jdW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QUNBQkFFMEE5
Q0FGODAwMDY3MUU5MCAvKiBET01Eb2N1bWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKCk7IH07IH07CiAJCTg1QUNBQkIxMEE5Q0FGODAwMDY3MUU5MCAvKiBET01Eb2N1bWVudC5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QUNBQkFG
MEE5Q0FGODAwMDY3MUU5MCAvKiBET01Eb2N1bWVudC5tbSAqLzsgfTsKKwkJODVBRkE4MjIwQUFG
NTI4QTAwRTg0MzA1IC8qIERPTUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NUFGQTgyMDBBQUY1MjhBMDBFODQzMDUgLyogRE9NRXZlbnQuaCAq
LzsgfTsKKwkJODVBRkE4MjMwQUFGNTI4QTAwRTg0MzA1IC8qIERPTUV2ZW50Lm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVBRkE4MjEwQUFGNTI4QTAw
RTg0MzA1IC8qIERPTUV2ZW50Lm1tICovOyB9OwogCQk4NUJBNENERDBBQTY4NjFCMDA4ODA1MkQg
LyogRE9NSFRNTEJ1dHRvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1QkE0Q0Q1MEFBNjg2MUIwMDg4MDUyRCAvKiBET01IVE1MQnV0dG9u
RWxlbWVudC5oICovOyB9OwogCQk4NUJBNENERTBBQTY4NjFCMDA4ODA1MkQgLyogRE9NSFRNTEJ1
dHRvbkVsZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NUJBNENENjBBQTY4NjFCMDA4ODA1MkQgLyogRE9NSFRNTEJ1dHRvbkVsZW1lbnQubW0g
Ki87IH07CiAJCTg1QkE0Q0RGMEFBNjg2MUIwMDg4MDUyRCAvKiBET01IVE1MRmllbGRTZXRFbGVt
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUJB
NENENzBBQTY4NjFCMDA4ODA1MkQgLyogRE9NSFRNTEZpZWxkU2V0RWxlbWVudC5oICovOyB9OwpA
QCAtNTY0LDYgKzU3MSwyMiBAQAogCQk4NUJBNEQyQzBBQTY4ODlGMDA4ODA1MkQgLyogRE9NSFRN
TE1lbnVFbGVtZW50LmggaW4gQ29weUZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg1QkE0RDA1MEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1MTWVudUVsZW1lbnQuaCAq
LzsgfTsKIAkJODVCQTREMkQwQUE2ODg5RjAwODgwNTJEIC8qIERPTUhUTUxPTGlzdEVsZW1lbnQu
aCBpbiBDb3B5RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVCQTRE
MDcwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxPTGlzdEVsZW1lbnQuaCAqLzsgfTsKIAkJODVC
QTREMkUwQUE2ODg5RjAwODgwNTJEIC8qIERPTUhUTUxVTGlzdEVsZW1lbnQuaCBpbiBDb3B5Rmls
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVCQTREMDkwQUE2ODg2ODAw
ODgwNTJEIC8qIERPTUhUTUxVTGlzdEVsZW1lbnQuaCAqLzsgfTsKKwkJODVDN0YzRTYwQUFGNUQ1
RTAwNDAxNEREIC8qIERPTUV2ZW50LmggaW4gQ29weUZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1QUZBODIwMEFBRjUyOEEwMEU4NDMwNSAvKiBET01FdmVudC5oICov
OyB9OworCQk4NUM3RjQwODBBQUY2RUE5MDA0MDE0REQgLyogRE9NRXZlbnRQcml2YXRlLmggaW4g
Q29weUZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QzdGNDA3MEFB
RjZFQTkwMDQwMTRERCAvKiBET01FdmVudFByaXZhdGUuaCAqLzsgfTsKKwkJODVDN0Y0NDYwQUFG
NzZEQzAwNDAxNEREIC8qIERPTUV2ZW50TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QzdGNDQ0MEFBRjc2REMwMDQwMTRERCAvKiBET01F
dmVudExpc3RlbmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJODVDN0Y0NDcwQUFGNzZEQzAwNDAxNEREIC8qIERPTUV2ZW50VGFyZ2V0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUM3RjQ0NTBBQUY3
NkRDMDA0MDE0REQgLyogRE9NRXZlbnRUYXJnZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4NUM3RjQ5MTBBQUY3OURDMDA0MDE0REQgLyogRE9N
VUlFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODVDN0Y0OEYwQUFGNzlEQzAwNDAxNEREIC8qIERPTVVJRXZlbnQuaCAqLzsgfTsKKwkJODVDN0Y0
OTIwQUFGNzlEQzAwNDAxNEREIC8qIERPTVVJRXZlbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUM3RjQ5MDBBQUY3OURDMDA0MDE0REQgLyogRE9N
VUlFdmVudC5tbSAqLzsgfTsKKwkJODVDN0Y0QzMwQUFGODA4MTAwNDAxNEREIC8qIERPTVVJRXZl
bnRQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NUM3RjRDMjBBQUY4MDgxMDA0MDE0REQgLyogRE9NVUlFdmVudFByaXZhdGUuaCAqLzsgfTsK
KwkJODVDN0Y0RDAwQUFGODNGNjAwNDAxNEREIC8qIERPTVVJRXZlbnQuaCBpbiBDb3B5RmlsZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVDN0Y0OEYwQUFGNzlEQzAwNDAx
NEREIC8qIERPTVVJRXZlbnQuaCAqLzsgfTsKKwkJODVDN0Y0RDEwQUFGODNGNjAwNDAxNEREIC8q
IERPTVVJRXZlbnRQcml2YXRlLmggaW4gQ29weUZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg1QzdGNEMyMEFBRjgwODEwMDQwMTRERCAvKiBET01VSUV2ZW50UHJpdmF0
ZS5oICovOyB9OworCQk4NUM3RjVCRjBBQUZCN0NDMDA0MDE0REQgLyogRE9NTXV0YXRpb25FdmVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVDN0Y1
QkMwQUFGQjdDQzAwNDAxNEREIC8qIERPTU11dGF0aW9uRXZlbnQuaCAqLzsgfTsKKwkJODVDN0Y1
QzAwQUFGQjdDRDAwNDAxNEREIC8qIERPTU11dGF0aW9uRXZlbnQubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUM3RjVCRDBBQUZCN0NDMDA0MDE0REQg
LyogRE9NTXV0YXRpb25FdmVudC5tbSAqLzsgfTsKKwkJODVDN0Y1QzEwQUFGQjdDRDAwNDAxNERE
IC8qIERPTU11dGF0aW9uRXZlbnRQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NUM3RjVCRTBBQUZCN0NDMDA0MDE0REQgLyogRE9NTXV0YXRp
b25FdmVudFByaXZhdGUuaCAqLzsgfTsKKwkJODVDN0Y1RDAwQUFGQjhEOTAwNDAxNEREIC8qIERP
TU92ZXJmbG93RXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg1QzdGNUNFMEFBRkI4RDkwMDQwMTRERCAvKiBET01PdmVyZmxvd0V2ZW50LmggKi87
IH07CisJCTg1QzdGNUQxMEFBRkI4RDkwMDQwMTRERCAvKiBET01PdmVyZmxvd0V2ZW50Lm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVDN0Y1Q0YwQUFG
QjhEOTAwNDAxNEREIC8qIERPTU92ZXJmbG93RXZlbnQubW0gKi87IH07CisJCTg1QzdGNUU3MEFB
RkJBRkIwMDQwMTRERCAvKiBET01XaGVlbEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUM3RjVFNTBBQUZCQUZCMDA0MDE0REQgLyogRE9NV2hl
ZWxFdmVudC5oICovOyB9OworCQk4NUM3RjVFODBBQUZCQUZCMDA0MDE0REQgLyogRE9NV2hlZWxF
dmVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1
QzdGNUU2MEFBRkJBRkIwMDQwMTRERCAvKiBET01XaGVlbEV2ZW50Lm1tICovOyB9OwogCQk4NUNB
OTZCODBBOTYyMUE2MDA2OTBDQ0YgLyogRE9NRW50aXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUNBOTZCNjBBOTYyMUE2MDA2OTBDQ0YgLyogRE9N
RW50aXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKIAkJODVDQTk2
QjkwQTk2MjFBNjAwNjkwQ0NGIC8qIERPTUVudGl0eS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1Q0E5NkI3MEE5NjIxQTYwMDY5MENDRiAvKiBET01F
bnRpdHkubW0gKi87IH07CiAJCTg1Q0E5NkVBMEE5NjI0RTkwMDY5MENDRiAvKiBET01Ob3RhdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVDQTk2
RTgwQTk2MjRFOTAwNjkwQ0NGIC8qIERPTU5vdGF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoKTsgfTsgfTsKQEAgLTU4MCw2ICs2MDMsMTQgQEAKIAkJODVERjJGOEYwQUEzQzg4
MTAwQUQ2NEM1IC8qIERPTUhUTUxDb2xsZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVERjJGOEQwQUEzQzg4MTAwQUQ2NEM1IC8qIERPTUhU
TUxDb2xsZWN0aW9uLm1tICovOyB9OwogCQk4NURGMkY5QjBBQTNDQUU1MDBBRDY0QzUgLyogRE9N
SFRNTE9wdGlvbnNDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NURGMkY5OTBBQTNDQUU1MDBBRDY0QzUgLyogRE9NSFRNTE9wdGlvbnND
b2xsZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKIAkJODVE
RjJGOUMwQUEzQ0FFNTAwQUQ2NEM1IC8qIERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1REYyRjlBMEFBM0NB
RTUwMEFENjRDNSAvKiBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24ubW0gKi87IH07CisJCTg1REYz
NDQwMEFBRkMwRUQwMEU1OUFFMyAvKiBET01LZXlib2FyZEV2ZW50UHJpdmF0ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVERjM0M0YwQUFGQzBFRDAw
RTU5QUUzIC8qIERPTUtleWJvYXJkRXZlbnRQcml2YXRlLmggKi87IH07CisJCTg1REYzNDVEMEFB
RkMyRDQwMEU1OUFFMyAvKiBET01NdXRhdGlvbkV2ZW50LmggaW4gQ29weUZpbGVzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QzdGNUJDMEFBRkI3Q0MwMDQwMTRERCAvKiBE
T01NdXRhdGlvbkV2ZW50LmggKi87IH07CisJCTg1REYzNDVFMEFBRkMyRDQwMEU1OUFFMyAvKiBE
T01NdXRhdGlvbkV2ZW50UHJpdmF0ZS5oIGluIENvcHlGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NUM3RjVCRTBBQUZCN0NDMDA0MDE0REQgLyogRE9NTXV0YXRpb25F
dmVudFByaXZhdGUuaCAqLzsgfTsKKwkJODVERjM0NUYwQUFGQzJENDAwRTU5QUUzIC8qIERPTU92
ZXJmbG93RXZlbnQuaCBpbiBDb3B5RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODVDN0Y1Q0UwQUFGQjhEOTAwNDAxNEREIC8qIERPTU92ZXJmbG93RXZlbnQuaCAqLzsg
fTsKKwkJODVERjM0NjAwQUFGQzJENDAwRTU5QUUzIC8qIERPTVdoZWVsRXZlbnQuaCBpbiBDb3B5
RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVDN0Y1RTUwQUFGQkFG
QjAwNDAxNEREIC8qIERPTVdoZWVsRXZlbnQuaCAqLzsgfTsKKwkJODVERjM0NjEwQUFGQzJENDAw
RTU5QUUzIC8qIERPTVdoZWVsRXZlbnRQcml2YXRlLmggaW4gQ29weUZpbGVzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RkYzMTNCMEFBRkJENzIwMDM3NEYzOCAvKiBET01X
aGVlbEV2ZW50UHJpdmF0ZS5oICovOyB9OworCQk4NURGMzQ2MjBBQUZDMkQ0MDBFNTlBRTMgLyog
RE9NS2V5Ym9hcmRFdmVudC5oIGluIENvcHlGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NUZGMzE1ODBBQUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5o
ICovOyB9OworCQk4NURGMzQ2MzBBQUZDMkQ0MDBFNTlBRTMgLyogRE9NS2V5Ym9hcmRFdmVudFBy
aXZhdGUuaCBpbiBDb3B5RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODVERjM0M0YwQUFGQzBFRDAwRTU5QUUzIC8qIERPTUtleWJvYXJkRXZlbnRQcml2YXRlLmggKi87
IH07CiAJCTg1REY4MTI3MEFBNzc4NzIwMDQ4NkFENyAvKiBET01IVE1MQW5jaG9yRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVERjgxMjEw
QUE3Nzg3MjAwNDg2QUQ3IC8qIERPTUhUTUxBbmNob3JFbGVtZW50LmggKi87IH07CiAJCTg1REY4
MTI4MEFBNzc4NzIwMDQ4NkFENyAvKiBET01IVE1MQW5jaG9yRWxlbWVudC5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1REY4MTIyMEFBNzc4NzIwMDQ4
NkFENyAvKiBET01IVE1MQW5jaG9yRWxlbWVudC5tbSAqLzsgfTsKIAkJODVERjgxMjkwQUE3Nzg3
MjAwNDg2QUQ3IC8qIERPTUhUTUxJbWFnZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1REY4MTIzMEFBNzc4NzIwMDQ4NkFENyAvKiBET01I
VE1MSW1hZ2VFbGVtZW50LmggKi87IH07CkBAIC02NjYsNiArNjk3LDkgQEAKIAkJODVGNzRFMDgw
QUE4REY4QzAwMERDMjg0IC8qIERPTUNTU1N0eWxlRGVjbGFyYXRpb24uaCBpbiBDb3B5RmlsZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUwMzJERDEwQUE4QzlCRTAwN0Qz
QjdEIC8qIERPTUNTU1N0eWxlRGVjbGFyYXRpb24uaCAqLzsgfTsKIAkJODVGNzRFMDkwQUE4REY4
QzAwMERDMjg0IC8qIERPTUNTU1N0eWxlUnVsZS5oIGluIENvcHlGaWxlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkREMzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NT
U3R5bGVSdWxlLmggKi87IH07CiAJCTg1Rjc0RTBBMEFBOERGOEMwMDBEQzI4NCAvKiBET01DU1NV
bmtub3duUnVsZS5oIGluIENvcHlGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NTAzMkRENTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTVW5rbm93blJ1bGUuaCAqLzsg
fTsKKwkJODVGRjMxM0MwQUFGQkQ3MjAwMzc0RjM4IC8qIERPTVdoZWVsRXZlbnRQcml2YXRlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUZGMzEzQjBB
QUZCRDcyMDAzNzRGMzggLyogRE9NV2hlZWxFdmVudFByaXZhdGUuaCAqLzsgfTsKKwkJODVGRjMx
NUEwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RkYzMTU4MEFBRkJGQ0IwMDM3NEYzOCAv
KiBET01LZXlib2FyZEV2ZW50LmggKi87IH07CisJCTg1RkYzMTVCMEFBRkJGQ0IwMDM3NEYzOCAv
KiBET01LZXlib2FyZEV2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODVGRjMxNTkwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQu
bW0gKi87IH07CiAJCTkzMDMyQ0M4MDlBRUMzNDMwMEY4MkExOCAvKiBQYXRoQ0cuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwMzJDQzcwOUFFQzM0
MzAwRjgyQTE4IC8qIFBhdGhDRy5jcHAgKi87IH07CiAJCTkzMDMyQ0NBMDlBRUMzNEIwMEY4MkEx
OCAvKiBQYXRoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzAzMkNDOTA5QUVDMzRCMDBGODJBMTggLyogUGF0aC5oICovOyB9OwogCQk5MzA1QjI0RDA5
OEYxQjZCMDBDMjg4NTUgLyogVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzMDVCMjRDMDk4RjFCNkIwMEMyODg1NSAvKiBUaW1lci5oICovOyB9
OwpAQCAtMTk0NCw3ICsxOTc4LDYgQEAKIAkJREIyM0MyQ0MwQTUwOEQyOTAwMjQ4OUVCIC8qIElu
ZGVudE91dGRlbnRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBEQjIzQzJDQTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1h
bmQuaCAqLzsgfTsKIAkJREQ3NjNCQjIwOTkyQzJDOTAwNzQwQjhFIC8qIGxpYnhtbDIuZHlsaWIg
aW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERDc2M0JC
MTA5OTJDMkM5MDA3NDBCOEUgLyogbGlieG1sMi5keWxpYiAqLzsgfTsKIAkJREQ3Q0RGMjUwQTIz
Q0Y5ODAwMDY5OTI4IC8qIENTU1Vua25vd25SdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFNkNDRTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTVW5r
bm93blJ1bGUuaCAqLzsgfTsKLQkJRTEwNTJDMzIwQTRENzAwMTAwNzJEOTlCIC8qIERPTUV2ZW50
c05vbnN0YW5kYXJkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTEwNTJDMzEwQTRENzAwMTAwNzJEOTlCIC8qIERPTUV2ZW50c05vbnN0YW5kYXJkLm1t
ICovOyB9OwogCQlFMTQ4NDJERTBBNjc0OTM0MDA3RTREMzkgLyogU3RyZWFtaW5nVGV4dERlY29k
ZXJJQ1UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
NDg0MkREMEE2NzQ5MzQwMDdFNEQzOSAvKiBTdHJlYW1pbmdUZXh0RGVjb2RlcklDVS5oICovOyB9
OwogCQlFMTQ4NDJGRjBBNjc0QTMxMDA3RTREMzkgLyogU3RyZWFtaW5nVGV4dERlY29kZXJJQ1Uu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE0ODQy
RkUwQTY3NEEzMTAwN0U0RDM5IC8qIFN0cmVhbWluZ1RleHREZWNvZGVySUNVLmNwcCAqLzsgfTsK
IAkJRTE0ODQzMkYwQTY3NEZDMjAwN0U0RDM5IC8qIFN0cmVhbWluZ1RleHREZWNvZGVyTWFjLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTQ4NDMyRTBB
Njc0RkMyMDA3RTREMzkgLyogU3RyZWFtaW5nVGV4dERlY29kZXJNYWMuaCAqLzsgfTsKQEAgLTE5
NzcsNiArMjAxMCwxOSBAQAogCQkJZHN0UGF0aCA9IFZlcnNpb25zL0EvUHJpdmF0ZUhlYWRlcnM7
CiAJCQlkc3RTdWJmb2xkZXJTcGVjID0gMTsKIAkJCWZpbGVzID0gKAorCQkJCTg1N0UwQjMxMEFC
MDQ0NzgwMDM2RTQ0NyAvKiBET01Nb3VzZUV2ZW50LmggaW4gQ29weUZpbGVzICovLAorCQkJCTg1
N0UwQjMyMEFCMDQ0NzgwMDM2RTQ0NyAvKiBET01Nb3VzZUV2ZW50UHJpdmF0ZS5oIGluIENvcHlG
aWxlcyAqLywKKwkJCQk4NURGMzQ1RDBBQUZDMkQ0MDBFNTlBRTMgLyogRE9NTXV0YXRpb25FdmVu
dC5oIGluIENvcHlGaWxlcyAqLywKKwkJCQk4NURGMzQ1RTBBQUZDMkQ0MDBFNTlBRTMgLyogRE9N
TXV0YXRpb25FdmVudFByaXZhdGUuaCBpbiBDb3B5RmlsZXMgKi8sCisJCQkJODVERjM0NUYwQUFG
QzJENDAwRTU5QUUzIC8qIERPTU92ZXJmbG93RXZlbnQuaCBpbiBDb3B5RmlsZXMgKi8sCisJCQkJ
ODVERjM0NjAwQUFGQzJENDAwRTU5QUUzIC8qIERPTVdoZWVsRXZlbnQuaCBpbiBDb3B5RmlsZXMg
Ki8sCisJCQkJODVERjM0NjEwQUFGQzJENDAwRTU5QUUzIC8qIERPTVdoZWVsRXZlbnRQcml2YXRl
LmggaW4gQ29weUZpbGVzICovLAorCQkJCTg1REYzNDYyMEFBRkMyRDQwMEU1OUFFMyAvKiBET01L
ZXlib2FyZEV2ZW50LmggaW4gQ29weUZpbGVzICovLAorCQkJCTg1REYzNDYzMEFBRkMyRDQwMEU1
OUFFMyAvKiBET01LZXlib2FyZEV2ZW50UHJpdmF0ZS5oIGluIENvcHlGaWxlcyAqLywKKwkJCQk4
NUM3RjREMDBBQUY4M0Y2MDA0MDE0REQgLyogRE9NVUlFdmVudC5oIGluIENvcHlGaWxlcyAqLywK
KwkJCQk4NUM3RjREMTBBQUY4M0Y2MDA0MDE0REQgLyogRE9NVUlFdmVudFByaXZhdGUuaCBpbiBD
b3B5RmlsZXMgKi8sCisJCQkJODVDN0Y0MDgwQUFGNkVBOTAwNDAxNEREIC8qIERPTUV2ZW50UHJp
dmF0ZS5oIGluIENvcHlGaWxlcyAqLywKKwkJCQk4NUM3RjNFNjBBQUY1RDVFMDA0MDE0REQgLyog
RE9NRXZlbnQuaCBpbiBDb3B5RmlsZXMgKi8sCiAJCQkJMUNGQ0VFRjAwQUFDQzcyQjAwMzQ4NzUw
IC8qIERPTUNTU1ByaW1pdGl2ZVZhbHVlUHJpdmF0ZS5oIGluIENvcHlGaWxlcyAqLywKIAkJCQkx
Q0ZDRUVFMjBBQUNDNkM3MDAzNDg3NTAgLyogRE9NTmFtZWROb2RlTWFwUHJpdmF0ZS5oIGluIENv
cHlGaWxlcyAqLywKIAkJCQkxQ0ZDRUVERjBBQUNDNkEzMDAzNDg3NTAgLyogRE9NSFRNTFByZUVs
ZW1lbnRQcml2YXRlLmggaW4gQ29weUZpbGVzICovLApAQCAtMjY0MCw2ICsyNjg2LDkgQEAKIAkJ
ODU2Qzg5RkIwQTkwRjA2ODAwNUM2ODdCIC8qIERPTU5vZGUubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NTm9kZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODU2QzhBRTIwQTkxMjY0OTAwNUM2ODdCIC8qIERPTU9iamVjdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTg1NkM4QUUzMEE5MTI2NDkwMDVDNjg3QiAvKiBET01PYmplY3QubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NT2JqZWN0Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NTdFMEIyMzBBQjA0MzQ2MDAzNkU0NDcgLyogRE9N
TW91c2VFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NTW91c2VF
dmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NTdFMEIyNDBBQjA0MzQ2MDAz
NkU0NDcgLyogRE9NTW91c2VFdmVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBET01Nb3VzZUV2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk4NTdFMEIyQjBBQjA0M0ZDMDAzNkU0NDcgLyogRE9NTW91c2VFdmVudFByaXZhdGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTU1vdXNlRXZlbnRQcml2YXRlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1OEMzODFBMEFBOEUyOTYwMEIxODdBNCAvKiBE
T01DU1NWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQ1NTVmFs
dWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODU4QzM4MUIwQUE4RTI5NjAwQjE4
N0E0IC8qIERPTUNTU1ZhbHVlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IERPTUNTU1ZhbHVlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NThD
MzgyQTBBQThFNDA1MDBCMTg3QTQgLyogRE9NQ1NTUHJpbWl0aXZlVmFsdWUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUNTU1ByaW1pdGl2ZVZhbHVlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjg5LDYgKzI3MzgsMTAgQEAKIAkJODVBQ0FBOEEwQTlC
NzU5QzAwNjcxRTkwIC8qIERPTU5vZGVMaXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IERPTU5vZGVMaXN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4NUFDQUJBRTBBOUNBRjgwMDA2NzFFOTAgLyogRE9NRG9jdW1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTURvY3VtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTg1QUNBQkFGMEE5Q0FGODAwMDY3MUU5MCAvKiBET01Eb2N1bWVudC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01Eb2N1bWVudC5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODVBRkE3NDEwQUFGMjk4NDAwRTg0MzA1IC8q
IEV2ZW50TGlzdGVuZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFdmVudExpc3RlbmVy
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODVBRkE3NDIwQUFGMjk4NDAwRTg0
MzA1IC8qIEV2ZW50VGFyZ2V0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRXZlbnRUYXJn
ZXQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NUFGQTgyMDBBQUY1MjhBMDBF
ODQzMDUgLyogRE9NRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERP
TUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg1QUZBODIxMEFBRjUyOEEw
MEU4NDMwNSAvKiBET01FdmVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBET01FdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVCQTRD
RDUwQUE2ODYxQjAwODgwNTJEIC8qIERPTUhUTUxCdXR0b25FbGVtZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MQnV0dG9uRWxlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4NUJBNENENjBBQTY4NjFCMDA4ODA1MkQgLyogRE9NSFRNTEJ1
dHRvbkVsZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
RE9NSFRNTEJ1dHRvbkVsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1
QkE0Q0Q3MEFBNjg2MUIwMDg4MDUyRCAvKiBET01IVE1MRmllbGRTZXRFbGVtZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MRmllbGRTZXRFbGVtZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNzE5LDYgKzI3NzIsMTkgQEAKIAkJODVDNTZD
QTkwQUE4OUU2NjAwRDk1NzU1IC8qIENTU0ltcG9ydFJ1bGUuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBDU1NJbXBvcnRSdWxlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODVDNTZDQUMwQUE4OUY4RTAwRDk1NzU1IC8qIENTU0NoYXJzZXRSdWxlLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gQ1NTQ2hhcnNldFJ1bGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4NUM1NkNBRDBBQTg5RkUwMDBEOTU3NTUgLyogQ1NTVW5rbm93blJ1bGUuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDU1NVbmtub3duUnVsZS5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTg1QzdGNDA3MEFBRjZFQTkwMDQwMTRERCAvKiBET01FdmVudFByaXZh
dGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUV2ZW50UHJpdmF0ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NUM3RjQ0NDBBQUY3NkRDMDA0MDE0REQg
LyogRE9NRXZlbnRMaXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RE9NRXZlbnRMaXN0ZW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NUM3RjQ0
NTBBQUY3NkRDMDA0MDE0REQgLyogRE9NRXZlbnRUYXJnZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERPTUV2ZW50VGFyZ2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTg1QzdGNDhGMEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2ZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01VSUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTg1QzdGNDkwMEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2ZW50Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTVVJRXZlbnQubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg1QzdGNEMyMEFBRjgwODEwMDQwMTRERCAvKiBE
T01VSUV2ZW50UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9N
VUlFdmVudFByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODVDN0Y1QkMw
QUFGQjdDQzAwNDAxNEREIC8qIERPTU11dGF0aW9uRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERPTU11dGF0aW9uRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJODVDN0Y1QkQwQUFGQjdDQzAwNDAxNEREIC8qIERPTU11dGF0aW9uRXZlbnQubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NTXV0YXRpb25FdmVu
dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODVDN0Y1QkUwQUFGQjdDQzAwNDAx
NEREIC8qIERPTU11dGF0aW9uRXZlbnRQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBET01NdXRhdGlvbkV2ZW50UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4NUM3RjVDRTBBQUZCOEQ5MDA0MDE0REQgLyogRE9NT3ZlcmZsb3dFdmVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NT3ZlcmZsb3dFdmVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NUM3RjVDRjBBQUZCOEQ5MDA0MDE0REQgLyog
RE9NT3ZlcmZsb3dFdmVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBET01PdmVyZmxvd0V2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4
NUM3RjVFNTBBQUZCQUZCMDA0MDE0REQgLyogRE9NV2hlZWxFdmVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NV2hlZWxFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4NUM3RjVFNjBBQUZCQUZCMDA0MDE0REQgLyogRE9NV2hlZWxFdmVudC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01XaGVlbEV2ZW50Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NUNBOTZCNjBBOTYyMUE2MDA2OTBDQ0Yg
LyogRE9NRW50aXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01FbnRp
dHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVDQTk2QjcwQTk2MjFBNjAwNjkw
Q0NGIC8qIERPTUVudGl0eS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBET01FbnRpdHkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1Q0E5NkU4
MEE5NjI0RTkwMDY5MENDRiAvKiBET01Ob3RhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRE9NTm90YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTI3MzcsNiArMjgwMyw3IEBACiAJCTg1REYyRjkyMEFBM0M5QjYwMEFENjRDNSAvKiBIVE1MT3B0
aW9uc0NvbGxlY3Rpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MT3B0aW9uc0Nv
bGxlY3Rpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NURGMkY5OTBBQTND
QUU1MDBBRDY0QzUgLyogRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVERjJGOUEwQUEzQ0FFNTAwQUQ2NEM1IC8qIERPTUhUTUxP
cHRpb25zQ29sbGVjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTg1REYzNDNGMEFBRkMwRUQwMEU1OUFFMyAvKiBET01LZXlib2FyZEV2ZW50UHJpdmF0
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NS2V5Ym9hcmRFdmVudFBy
aXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVERjgxMjEwQUE3Nzg3MjAw
NDg2QUQ3IC8qIERPTUhUTUxBbmNob3JFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBET01IVE1MQW5jaG9yRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4NURGODEyMjBBQTc3ODcyMDA0ODZBRDcgLyogRE9NSFRNTEFuY2hvckVsZW1lbnQu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NSFRNTEFuY2hv
ckVsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1REY4MTIzMEFBNzc4
NzIwMDQ4NkFENyAvKiBET01IVE1MSW1hZ2VFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBET01IVE1MSW1hZ2VFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yNzg5LDYgKzI4NTYsOSBAQAogCQk4NUYzMkFFQjBBQTYzQjg3MDBGRjMxODQg
LyogRE9NSFRNTFRleHRBcmVhRWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBET01IVE1MVGV4dEFyZWFFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4NUY1NkE3ODBBOThDRTM3MDBBREI2MEEgLyogRE9NUHJvY2Vzc2luZ0lu
c3RydWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01Qcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVGNTZBNzkw
QTk4Q0UzNzAwQURCNjBBIC8qIERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24u
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg1RkYzMTNCMEFBRkJENzIwMDM3NEYz
OCAvKiBET01XaGVlbEV2ZW50UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRE9NV2hlZWxFdmVudFByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJODVGRjMxNTgwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUtleWJvYXJkRXZlbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODVGRjMxNTkwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJv
YXJkRXZlbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9N
S2V5Ym9hcmRFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwMzJDQzcw
OUFFQzM0MzAwRjgyQTE4IC8qIFBhdGhDRy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBQYXRoQ0cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzAz
MkNDOTA5QUVDMzRCMDBGODJBMTggLyogUGF0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQYXRoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDVCMjRDMDk4
RjFCNkIwMEMyODg1NSAvKiBUaW1lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUaW1lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDE1Myw3ICs0MjIzLDYg
QEAKIAkJREIyM0MyQzkwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmRlbnRPdXRkZW50Q29t
bWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURCMjNDMkNBMEE1MDhEMjkw
MDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW5kZW50T3V0ZGVudENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJREQ3NjNCQjEwOTkyQzJDOTAwNzQwQjhFIC8qIGxpYnhtbDIuZHlsaWIgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSAiY29tcGlsZWQubWFj
aC1vLmR5bGliIjsgbmFtZSA9IGxpYnhtbDIuZHlsaWI7IHBhdGggPSAvdXNyL2xpYi9saWJ4bWwy
LmR5bGliOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwotCQlFMTA1MkMzMTBBNEQ3MDAx
MDA3MkQ5OUIgLyogRE9NRXZlbnRzTm9uc3RhbmRhcmQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NRXZlbnRzTm9uc3RhbmRhcmQubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUxNDg0MkREMEE2NzQ5MzQwMDdFNEQzOSAvKiBTdHJlYW1pbmdU
ZXh0RGVjb2RlcklDVS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJlYW1p
bmdUZXh0RGVjb2RlcklDVS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTQ4NDJG
RTBBNjc0QTMxMDA3RTREMzkgLyogU3RyZWFtaW5nVGV4dERlY29kZXJJQ1UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RyZWFtaW5nVGV4dERlY29kZXJJQ1UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTQ4NDMyRTBBNjc0RkMyMDA3RTREMzkg
LyogU3RyZWFtaW5nVGV4dERlY29kZXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBs
aW5lRW5kaW5nID0gMDsgbmFtZSA9IFN0cmVhbWluZ1RleHREZWNvZGVyTWFjLmg7IHBhdGggPSBt
YWMvU3RyZWFtaW5nVGV4dERlY29kZXJNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTQ5NTMsMTMgKzUwMjIsNDEgQEAKIAkJCW5hbWUgPSBIVE1MOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKIAkJfTsKKwkJODVBRkE3QUIwQUFGM0JCMDAwRTg0MzA1IC8qIEV2ZW50cyAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJODVDN0Y0MDcw
QUFGNkVBOTAwNDAxNEREIC8qIERPTUV2ZW50UHJpdmF0ZS5oICovLAorCQkJCTg1QUZBODIwMEFB
RjUyOEEwMEU4NDMwNSAvKiBET01FdmVudC5oICovLAorCQkJCTg1QUZBODIxMEFBRjUyOEEwMEU4
NDMwNSAvKiBET01FdmVudC5tbSAqLywKKwkJCQk4NURGMzQzRjBBQUZDMEVEMDBFNTlBRTMgLyog
RE9NS2V5Ym9hcmRFdmVudFByaXZhdGUuaCAqLywKKwkJCQk4NUZGMzE1ODBBQUZCRkNCMDAzNzRG
MzggLyogRE9NS2V5Ym9hcmRFdmVudC5oICovLAorCQkJCTg1RkYzMTU5MEFBRkJGQ0IwMDM3NEYz
OCAvKiBET01LZXlib2FyZEV2ZW50Lm1tICovLAorCQkJCTg1N0UwQjJCMEFCMDQzRkMwMDM2RTQ0
NyAvKiBET01Nb3VzZUV2ZW50UHJpdmF0ZS5oICovLAorCQkJCTg1N0UwQjIzMEFCMDQzNDYwMDM2
RTQ0NyAvKiBET01Nb3VzZUV2ZW50LmggKi8sCisJCQkJODU3RTBCMjQwQUIwNDM0NjAwMzZFNDQ3
IC8qIERPTU1vdXNlRXZlbnQubW0gKi8sCisJCQkJODVDN0Y1QkMwQUFGQjdDQzAwNDAxNEREIC8q
IERPTU11dGF0aW9uRXZlbnQuaCAqLywKKwkJCQk4NUM3RjVCRDBBQUZCN0NDMDA0MDE0REQgLyog
RE9NTXV0YXRpb25FdmVudC5tbSAqLywKKwkJCQk4NUM3RjVCRTBBQUZCN0NDMDA0MDE0REQgLyog
RE9NTXV0YXRpb25FdmVudFByaXZhdGUuaCAqLywKKwkJCQk4NUM3RjVDRTBBQUZCOEQ5MDA0MDE0
REQgLyogRE9NT3ZlcmZsb3dFdmVudC5oICovLAorCQkJCTg1QzdGNUNGMEFBRkI4RDkwMDQwMTRE
RCAvKiBET01PdmVyZmxvd0V2ZW50Lm1tICovLAorCQkJCTg1QzdGNEMyMEFBRjgwODEwMDQwMTRE
RCAvKiBET01VSUV2ZW50UHJpdmF0ZS5oICovLAorCQkJCTg1QzdGNDhGMEFBRjc5REMwMDQwMTRE
RCAvKiBET01VSUV2ZW50LmggKi8sCisJCQkJODVDN0Y0OTAwQUFGNzlEQzAwNDAxNEREIC8qIERP
TVVJRXZlbnQubW0gKi8sCisJCQkJODVGRjMxM0IwQUFGQkQ3MjAwMzc0RjM4IC8qIERPTVdoZWVs
RXZlbnRQcml2YXRlLmggKi8sCisJCQkJODVDN0Y1RTUwQUFGQkFGQjAwNDAxNEREIC8qIERPTVdo
ZWVsRXZlbnQuaCAqLywKKwkJCQk4NUM3RjVFNjBBQUZCQUZCMDA0MDE0REQgLyogRE9NV2hlZWxF
dmVudC5tbSAqLywKKwkJCSk7CisJCQluYW1lID0gRXZlbnRzOworCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKKwkJfTsKIAkJODVCMjMyMjYwQThCRjNBMTAwRkRGNDdCIC8qIERlcml2ZWQgU291
cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJODU5
NjdEOUYwQUE4QkI1OTAwNUZFREVFIC8qIENvcmUgKi8sCi0JCQkJODUwNjU3MDQwQUFCNDc2QzAw
MkQxNUMwIC8qIFN0eWxlU2hlZXRzICovLAogCQkJCTg1OTY3RENBMEFBOEJGMEYwMDVGRURFRSAv
KiBDU1MgKi8sCisJCQkJODVBRkE3QUIwQUFGM0JCMDAwRTg0MzA1IC8qIEV2ZW50cyAqLywKIAkJ
CQk4NUM1NkQwMzBBQThCQUE3MDBEOTU3NTUgLyogSFRNTCAqLywKKwkJCQk4NTA2NTcwNDBBQUI0
NzZDMDAyRDE1QzAgLyogU3R5bGVTaGVldHMgKi8sCiAJCQkpOwogCQkJbmFtZSA9ICJEZXJpdmVk
IFNvdXJjZXMiOwogCQkJcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYkNvcmU7CkBAIC01MDkyLDYg
KzUxODksMTUgQEAKIAkJCW5hbWUgPSBIVE1MOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
IAkJfTsKKwkJODVDN0Y0NDMwQUFGNzY4NjAwNDAxNEREIC8qIEV2ZW50cyAqLyA9IHsKKwkJCWlz
YSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJODVDN0Y0NDQwQUFGNzZEQzAwNDAx
NEREIC8qIERPTUV2ZW50TGlzdGVuZXIuaCAqLywKKwkJCQk4NUM3RjQ0NTBBQUY3NkRDMDA0MDE0
REQgLyogRE9NRXZlbnRUYXJnZXQuaCAqLywKKwkJCSk7CisJCQluYW1lID0gRXZlbnRzOworCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJOTMwMzJDQ0MwOUFFQzM2MjAwRjgyQTE4
IC8qIGNnICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTYx
MDAsNiArNjIwNiw3IEBACiAJCQkJODVCMjMyMjYwQThCRjNBMTAwRkRGNDdCIC8qIERlcml2ZWQg
U291cmNlcyAqLywKIAkJCQk4NTRGMTJBQzBBOEVCQzE4MDAwOTQwQjUgLyogQ29yZSAqLywKIAkJ
CQk4NThDMzk1MTBBQTkwMjRDMDBCMTg3QTQgLyogQ1NTICovLAorCQkJCTg1QzdGNDQzMEFBRjc2
ODYwMDQwMTRERCAvKiBFdmVudHMgKi8sCiAJCQkJODU5OTJGQzIwQUE1REQ0NjAwQUMwNzg1IC8q
IEhUTUwgKi8sCiAJCQkJODU5QjdGQjkwQThEMjg4ODAwQTVGMUVBIC8qIENvZGVHZW5lcmF0b3JP
YmpDLnBtICovLAogCQkJCTFDRDBCNjIwMEFBQkRCNTAwMEQwQTNGRiAvKiBQdWJsaWNET01JbnRl
cmZhY2VzLmggKi8sCkBAIC02MTEwLDcgKzYyMTcsNiBAQAogCQkJCUJDMUEzNzlCMDk3QzcxNUYw
MDE5RjNEOCAvKiBET01DU1MubW0gKi8sCiAJCQkJQkMxQTM3OUMwOTdDNzE1RjAwMTlGM0Q4IC8q
IERPTUV2ZW50cy5oICovLAogCQkJCUJDMUEzNzlEMDk3QzcxNUYwMDE5RjNEOCAvKiBET01FdmVu
dHMubW0gKi8sCi0JCQkJRTEwNTJDMzEwQTRENzAwMTAwNzJEOTlCIC8qIERPTUV2ZW50c05vbnN0
YW5kYXJkLm1tICovLAogCQkJCUJDMUEzNzlGMDk3QzcxNUYwMDE5RjNEOCAvKiBET01FeHRlbnNp
b25zLmggKi8sCiAJCQkJQkMxQTM3QTAwOTdDNzE1RjAwMTlGM0Q4IC8qIERPTUhUTUwuaCAqLywK
IAkJCQlCQzFBMzdBMTA5N0M3MTVGMDAxOUYzRDggLyogRE9NSFRNTC5tbSAqLywKQEAgLTY2Nzgs
OCArNjc4NCwxMCBAQAogCQkJCTg1MDMxQjJDMEE0NEVGQzcwMEY5OTJFMCAvKiBFdmVudC5oICov
LAogCQkJCTE0RTgzNkQyMDlGODUxMjAwMEI4NUFFNCAvKiBFdmVudC5pZGwgKi8sCiAJCQkJOTM1
RkJDNDQwOUJBMDBCOTAwRTIzMEIxIC8qIEV2ZW50TGlzdGVuZXIuaCAqLywKKwkJCQk4NUFGQTc0
MTBBQUYyOTg0MDBFODQzMDUgLyogRXZlbnRMaXN0ZW5lci5pZGwgKi8sCiAJCQkJOTM5ODg1QzEw
OEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuY3BwICovLAogCQkJCTkzOTg4NUMyMDhCN0Uz
RDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi8sCisJCQkJODVBRkE3NDIwQUFGMjk4NDAwRTg0
MzA1IC8qIEV2ZW50VGFyZ2V0LmlkbCAqLywKIAkJCQkxNEVDMjY3RTA5Q0EwN0UwMDBFMUVFRUMg
LyogRXZlbnRUYXJnZXROb2RlLmNwcCAqLywKIAkJCQkxNEVDMjY3RDA5Q0EwN0UwMDBFMUVFRUMg
LyogRXZlbnRUYXJnZXROb2RlLmggKi8sCiAJCQkJOTM1RkJDRjEwOUJBMTQzQjAwRTIzMEIxIC8q
IEV4Y2VwdGlvbkNvZGUuaCAqLywKQEAgLTc2ODAsNiArNzc4OCwyMCBAQAogCQkJCTg1MDY1NzAw
MEFBQjQ3NjMwMDJEMTVDMCAvKiBET01TdHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4
NTA2NTcwMjBBQUI0NzYzMDAyRDE1QzAgLyogRE9NU3R5bGVTaGVldExpc3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzNDcwNkFCMEFBQ0Q4MDkwMDJDMUQ0MyAvKiBUZXh0RGVjb2Rlci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJODVBRkE4MjIwQUFGNTI4QTAwRTg0MzA1IC8qIERPTUV2ZW50LmggaW4g
SGVhZGVycyAqLywKKwkJCQk4NUM3RjQ0NjBBQUY3NkRDMDA0MDE0REQgLyogRE9NRXZlbnRMaXN0
ZW5lci5oIGluIEhlYWRlcnMgKi8sCisJCQkJODVDN0Y0NDcwQUFGNzZEQzAwNDAxNEREIC8qIERP
TUV2ZW50VGFyZ2V0LmggaW4gSGVhZGVycyAqLywKKwkJCQk4NUM3RjQ5MTBBQUY3OURDMDA0MDE0
REQgLyogRE9NVUlFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJODVDN0Y0QzMwQUFGODA4MTAw
NDAxNEREIC8qIERPTVVJRXZlbnRQcml2YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4NUM3RjVC
RjBBQUZCN0NDMDA0MDE0REQgLyogRE9NTXV0YXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJODVDN0Y1QzEwQUFGQjdDRDAwNDAxNEREIC8qIERPTU11dGF0aW9uRXZlbnRQcml2YXRlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk4NUM3RjVEMDBBQUZCOEQ5MDA0MDE0REQgLyogRE9NT3ZlcmZs
b3dFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJODVDN0Y1RTcwQUFGQkFGQjAwNDAxNEREIC8q
IERPTVdoZWVsRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTg1RkYzMTNDMEFBRkJENzIwMDM3
NEYzOCAvKiBET01XaGVlbEV2ZW50UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJODVGRjMx
NUEwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTg1REYzNDQwMEFBRkMwRUQwMEU1OUFFMyAvKiBET01LZXlib2FyZEV2ZW50UHJpdmF0ZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJODU3RTBCMjUwQUIwNDM0NjAwMzZFNDQ3IC8qIERPTU1vdXNl
RXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTg1N0UwQjJDMEFCMDQzRkMwMDM2RTQ0NyAvKiBE
T01Nb3VzZUV2ZW50UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC04NTA2LDcgKzg2MjgsNiBA
QAogCQkJCUJDQ0Q3NEU1MEE0QzhEREYwMDVGREE2RCAvKiBIVE1MVmlld1NvdXJjZURvY3VtZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ0OEEyOUMwMEE0NkQ5Q0IwMDMwNzU5RiAvKiBKU0hU
TUxPcHRpb25zQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0NDhBRDI3QzBBNDgx
MzdBMDAyM0QxNzkgLyogSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJRTEwNTJDMzIwQTRENzAwMTAwNzJEOTlCIC8qIERPTUV2ZW50c05vbnN0YW5k
YXJkLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUExRDEzODEwQTUzMjU1MjAwNjRCRjVGIC8qIERP
TVhQYXRoLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNBMUVBQTAwQTU2MzRDOTAwNjk2MEEwIC8q
IEltYWdlRG9jdW1lbnRNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTBENTczNjBBNUM3N0ZF
MDA3RURENEMgLyogT3ZlcmZsb3dFdmVudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTg2ODIsNiAr
ODgwMywxMyBAQAogCQkJCTg1MDY1NzAxMEFBQjQ3NjMwMDJEMTVDMCAvKiBET01TdHlsZVNoZWV0
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODUwNjU3MDMwQUFCNDc2MzAwMkQxNUMwIC8qIERPTVN0
eWxlU2hlZXRMaXN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFFQkJCRDQwQUFDOUI4NzAwMUZF
OEUyIC8qIENTU0NoYXJzZXRSdWxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTg1QUZBODIzMEFB
RjUyOEEwMEU4NDMwNSAvKiBET01FdmVudC5tbSBpbiBTb3VyY2VzICovLAorCQkJCTg1QzdGNDky
MEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2ZW50Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJODVD
N0Y1QzAwQUFGQjdDRDAwNDAxNEREIC8qIERPTU11dGF0aW9uRXZlbnQubW0gaW4gU291cmNlcyAq
LywKKwkJCQk4NUM3RjVEMTBBQUZCOEQ5MDA0MDE0REQgLyogRE9NT3ZlcmZsb3dFdmVudC5tbSBp
biBTb3VyY2VzICovLAorCQkJCTg1QzdGNUU4MEFBRkJBRkIwMDQwMTRERCAvKiBET01XaGVlbEV2
ZW50Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJODVGRjMxNUIwQUFGQkZDQjAwMzc0RjM4IC8qIERP
TUtleWJvYXJkRXZlbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQk4NTdFMEIyNjBBQjA0MzQ2MDAz
NkU0NDcgLyogRE9NTW91c2VFdmVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTUV2ZW50TGlzdGVuZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NRXZlbnRMaXN0ZW5lci5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTUV2ZW50TGlzdGVuZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwz
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWlu
aWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitAY2xhc3MgRE9NRXZlbnQ7CisKK0Bw
cm90b2NvbCBET01FdmVudExpc3RlbmVyIDxOU09iamVjdD4KKy0gKHZvaWQpaGFuZGxlRXZlbnQ6
KERPTUV2ZW50ICopZXZlbnQ7CitAZW5kCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
RXZlbnRUYXJnZXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRXZl
bnRUYXJnZXQuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01FdmVu
dFRhcmdldC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA0LTIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5j
b20+CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKK0BjbGFzcyBET01FdmVudDsKK0Bwcm90b2NvbCBET01FdmVudExpc3RlbmVy
OworCitAcHJvdG9jb2wgRE9NRXZlbnRUYXJnZXQgPE5TT2JqZWN0LCBOU0NvcHlpbmc+CistICh2
b2lkKWFkZEV2ZW50TGlzdGVuZXI6KE5TU3RyaW5nICopdHlwZSA6KGlkIDxET01FdmVudExpc3Rl
bmVyPilsaXN0ZW5lciA6KEJPT0wpdXNlQ2FwdHVyZTsKKy0gKHZvaWQpcmVtb3ZlRXZlbnRMaXN0
ZW5lcjooTlNTdHJpbmcgKil0eXBlIDooaWQgPERPTUV2ZW50TGlzdGVuZXI+KWxpc3RlbmVyIDoo
Qk9PTCl1c2VDYXB0dXJlOworLSAoQk9PTClkaXNwYXRjaEV2ZW50OihET01FdmVudCAqKWV2ZW50
OworQGVuZApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUV2ZW50cy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01FdmVudHMuaAkocmV2aXNpb24gMTYyNTkp
CisrKyBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRXZlbnRzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI5LDcgKzI5LDE1IEBACiAjaW1wb3J0IDxXZWJDb3JlL0RPTU9iamVjdC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9ET01WaWV3cy5oPgogCi1AY2xhc3MgRE9NRXZlbnQ7CisjaW1wb3J0IDxXZWJDb3Jl
L0RPTUV2ZW50Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0RPTUV2ZW50TGlzdGVuZXIuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvRE9NRXZlbnRUYXJnZXQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRE9NS2V5Ym9h
cmRFdmVudC5oPgorI2ltcG9ydCA8V2ViQ29yZS9ET01Nb3VzZUV2ZW50Lmg+CisjaW1wb3J0IDxX
ZWJDb3JlL0RPTU11dGF0aW9uRXZlbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRE9NT3ZlcmZsb3dF
dmVudC5oPgorI2ltcG9ydCA8V2ViQ29yZS9ET01VSUV2ZW50Lmg+CisjaW1wb3J0IDxXZWJDb3Jl
L0RPTVdoZWVsRXZlbnQuaD4KIAogZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgRE9NRXZlbnRFeGNl
cHRpb247CiAKQEAgLTM3LDg1ICs0NSw2IEBAIGVudW0gRE9NRXZlbnRFeGNlcHRpb25Db2RlIHsK
ICAgICBET01fVU5TUEVDSUZJRURfRVZFTlRfVFlQRV9FUlIgPSAwCiB9OwogCi1AcHJvdG9jb2wg
RE9NRXZlbnRMaXN0ZW5lciA8TlNPYmplY3Q+Ci0tICh2b2lkKWhhbmRsZUV2ZW50OihET01FdmVu
dCAqKWV2ZW50OwotQGVuZAotCi1AcHJvdG9jb2wgRE9NRXZlbnRUYXJnZXQgPE5TT2JqZWN0LCBO
U0NvcHlpbmc+Ci0tICh2b2lkKWFkZEV2ZW50TGlzdGVuZXI6KE5TU3RyaW5nICopdHlwZSA6KGlk
IDxET01FdmVudExpc3RlbmVyPilsaXN0ZW5lciA6KEJPT0wpdXNlQ2FwdHVyZTsKLS0gKHZvaWQp
cmVtb3ZlRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0eXBlIDooaWQgPERPTUV2ZW50TGlzdGVu
ZXI+KWxpc3RlbmVyIDooQk9PTCl1c2VDYXB0dXJlOwotLSAoQk9PTClkaXNwYXRjaEV2ZW50OihE
T01FdmVudCAqKWV2ZW50OwotQGVuZAotCi1AaW50ZXJmYWNlIERPTU5vZGUgKERPTUV2ZW50VGFy
Z2V0KSA8RE9NRXZlbnRUYXJnZXQ+Ci1AZW5kCi0KLWVudW0gewotICAgIERPTV9DQVBUVVJJTkdf
UEhBU0UgPSAxLAotICAgIERPTV9BVF9UQVJHRVQgPSAyLAotICAgIERPTV9CVUJCTElOR19QSEFT
RSA9IDMKLX07Ci0KLUBpbnRlcmZhY2UgRE9NRXZlbnQgOiBET01PYmplY3QKLS0gKE5TU3RyaW5n
ICopdHlwZTsKLS0gKGlkIDxET01FdmVudFRhcmdldD4pdGFyZ2V0OwotLSAoaWQgPERPTUV2ZW50
VGFyZ2V0PiljdXJyZW50VGFyZ2V0OwotLSAodW5zaWduZWQgc2hvcnQpZXZlbnRQaGFzZTsKLS0g
KEJPT0wpYnViYmxlczsKLS0gKEJPT0wpY2FuY2VsYWJsZTsKLS0gKERPTVRpbWVTdGFtcCl0aW1l
U3RhbXA7Ci0tICh2b2lkKXN0b3BQcm9wYWdhdGlvbjsKLS0gKHZvaWQpcHJldmVudERlZmF1bHQ7
Ci0tICh2b2lkKWluaXRFdmVudDooTlNTdHJpbmcgKilldmVudFR5cGVBcmcgOihCT09MKWNhbkJ1
YmJsZUFyZyA6KEJPT0wpY2FuY2VsYWJsZUFyZzsKLUBlbmQKLQotQGludGVyZmFjZSBET01VSUV2
ZW50IDogRE9NRXZlbnQKLS0gKERPTUFic3RyYWN0VmlldyAqKXZpZXc7Ci0tIChpbnQpZGV0YWls
OwotLSAodm9pZClpbml0VUlFdmVudDooTlNTdHJpbmcgKil0eXBlQXJnIDooQk9PTCljYW5CdWJi
bGVBcmcgOihCT09MKWNhbmNlbGFibGVBcmcgOihET01BYnN0cmFjdFZpZXcgKil2aWV3QXJnIDoo
aW50KWRldGFpbEFyZzsKLUBlbmQKLQotQGludGVyZmFjZSBET01Nb3VzZUV2ZW50IDogRE9NVUlF
dmVudAotLSAoaW50KXNjcmVlblg7Ci0tIChpbnQpc2NyZWVuWTsKLS0gKGludCljbGllbnRYOwot
LSAoaW50KWNsaWVudFk7Ci0tIChCT09MKWN0cmxLZXk7Ci0tIChCT09MKXNoaWZ0S2V5OwotLSAo
Qk9PTClhbHRLZXk7Ci0tIChCT09MKW1ldGFLZXk7Ci0tICh1bnNpZ25lZCBzaG9ydClidXR0b247
Ci0tIChpZCA8RE9NRXZlbnRUYXJnZXQ+KXJlbGF0ZWRUYXJnZXQ7Ci0tICh2b2lkKWluaXRNb3Vz
ZUV2ZW50OihOU1N0cmluZyAqKXR5cGVBcmcgOihCT09MKWNhbkJ1YmJsZUFyZyA6KEJPT0wpY2Fu
Y2VsYWJsZUFyZyA6KERPTUFic3RyYWN0VmlldyAqKXZpZXdBcmcgOihpbnQpZGV0YWlsQXJnIDoo
aW50KXNjcmVlblhBcmcgOihpbnQpc2NyZWVuWUFyZyA6KGludCljbGllbnRYIDooaW50KWNsaWVu
dFkgOihCT09MKWN0cmxLZXlBcmcgOihCT09MKWFsdEtleUFyZyA6KEJPT0wpc2hpZnRLZXlBcmcg
OihCT09MKW1ldGFLZXlBcmcgOih1bnNpZ25lZCBzaG9ydClidXR0b25BcmcgOihpZCA8RE9NRXZl
bnRUYXJnZXQ+KXJlbGF0ZWRUYXJnZXRBcmc7Ci1AZW5kCi0KLWVudW0gewotICAgIERPTV9NT0RJ
RklDQVRJT04gPSAxLAotICAgIERPTV9BRERJVElPTiA9IDIsCi0gICAgRE9NX1JFTU9WQUwgPSAz
Ci19OwotCi1AaW50ZXJmYWNlIERPTU11dGF0aW9uRXZlbnQgOiBET01FdmVudAotLSAoRE9NTm9k
ZSAqKXJlbGF0ZWROb2RlOwotLSAoTlNTdHJpbmcgKilwcmV2VmFsdWU7Ci0tIChOU1N0cmluZyAq
KW5ld1ZhbHVlOwotLSAoTlNTdHJpbmcgKilhdHRyTmFtZTsKLS0gKHVuc2lnbmVkIHNob3J0KWF0
dHJDaGFuZ2U7Ci0tICh2b2lkKWluaXRNdXRhdGlvbkV2ZW50OihOU1N0cmluZyAqKXR5cGVBcmcg
OihCT09MKWNhbkJ1YmJsZUFyZyA6KEJPT0wpY2FuY2VsYWJsZUFyZyA6KERPTU5vZGUgKilyZWxh
dGVkTm9kZUFyZyA6KE5TU3RyaW5nICopcHJldlZhbHVlQXJnIDooTlNTdHJpbmcgKiluZXdWYWx1
ZUFyZyA6KE5TU3RyaW5nICopYXR0ck5hbWVBcmcgOih1bnNpZ25lZCBzaG9ydClhdHRyQ2hhbmdl
QXJnOwotQGVuZAotCi1lbnVtIHsKLSAgICBET01fSE9SSVpPTlRBTCA9IDAsCi0gICAgRE9NX1ZF
UlRJQ0FMID0gMSwKLSAgICBET01fQk9USCA9IDIKLX07Ci0KLUBpbnRlcmZhY2UgRE9NT3ZlcmZs
b3dFdmVudCA6IERPTUV2ZW50Ci0tICh1bnNpZ25lZCBzaG9ydClvcmllbnQ7Ci0tIChCT09MKWhv
cml6b250YWxPdmVyZmxvdzsKLS0gKEJPT0wpdmVydGljYWxPdmVyZmxvdzsKLUBlbmQKLQogZW51
bSB7CiAgICAgRE9NX0tFWV9MT0NBVElPTl9TVEFOREFSRCAgICAgID0gMHgwMCwKICAgICBET01f
S0VZX0xPQ0FUSU9OX0xFRlQgICAgICAgICAgPSAweDAxLApAQCAtMTIzLDMwICs1Miw2IEBAIGVu
dW0gewogICAgIERPTV9LRVlfTE9DQVRJT05fTlVNUEFEICAgICAgICA9IDB4MDMKIH07CiAKLUBp
bnRlcmZhY2UgRE9NS2V5Ym9hcmRFdmVudCA6IERPTVVJRXZlbnQKLS0gKE5TU3RyaW5nKilrZXlJ
ZGVudGlmaWVyOwotLSAodW5zaWduZWQpa2V5TG9jYXRpb247Ci0tIChCT09MKWN0cmxLZXk7Ci0t
IChCT09MKXNoaWZ0S2V5OwotLSAoQk9PTClhbHRLZXk7Ci0tIChCT09MKW1ldGFLZXk7Ci0tIChC
T09MKWdldE1vZGlmaWVyU3RhdGU6KE5TU3RyaW5nICopa2V5SWRlbnRpZmllckFyZzsKLUBlbmQK
LQogQGludGVyZmFjZSBET01LZXlib2FyZEV2ZW50IChOb25TdGFuZGFyZEFkZGl0aW9ucykKLS0g
KGludClrZXlDb2RlOwotLSAoaW50KWNoYXJDb2RlOwotQGVuZAotCi1AaW50ZXJmYWNlIERPTVdo
ZWVsRXZlbnQgOiBET01VSUV2ZW50Ci0tIChpbnQpc2NyZWVuWDsKLS0gKGludClzY3JlZW5ZOwot
LSAoaW50KWNsaWVudFg7Ci0tIChpbnQpY2xpZW50WTsKLS0gKEJPT0wpY3RybEtleTsKLS0gKEJP
T0wpc2hpZnRLZXk7Ci0tIChCT09MKWFsdEtleTsKLS0gKEJPT0wpbWV0YUtleTsKLS0gKEJPT0wp
aXNIb3Jpem9udGFsOwotLSAoaW50KXdoZWVsRGVsdGE7CistIChCT09MKWdldE1vZGlmaWVyU3Rh
dGU6KE5TU3RyaW5nICopa2V5SWRlbnRpZmllckFyZzsKIEBlbmQKSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01FdmVudHMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTUV2ZW50cy5tbQkocmV2aXNpb24gMTYyNTkpCisrKyBXZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NRXZlbnRzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAwNCBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqIENvcHlyaWdodCAoQykgMjAwNiBKb25hcyBXaXR0IDxqb25hcy53aXR0QGdtYWlsLmNv
bT4KKyAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWls
LmNvbT4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsNzQgKzM4LDE5IEBA
CiAjaW1wb3J0ICJPdmVyZmxvd0V2ZW50LmgiCiAjaW1wb3J0ICJVSUV2ZW50LmgiCiAKLXVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwotCiBBTExPV19ET01fQ0FTVChFdmVudCkKIAotQGNsYXNzIERP
TVdoZWVsRXZlbnQ7Ci0KLUBpbXBsZW1lbnRhdGlvbiBET01FdmVudAotCi0tIChOU1N0cmluZyAq
KXR5cGUKLXsKLSAgICByZXR1cm4gW3NlbGYgX2V2ZW50XS0+dHlwZSgpOwotfQotCi0tIChpZCA8
RE9NRXZlbnRUYXJnZXQ+KXRhcmdldAotewotICAgIHJldHVybiBbRE9NTm9kZSBfbm9kZVdpdGg6
W3NlbGYgX2V2ZW50XS0+dGFyZ2V0KCldOwotfQotCi0tIChpZCA8RE9NRXZlbnRUYXJnZXQ+KWN1
cnJlbnRUYXJnZXQKLXsKLSAgICByZXR1cm4gW0RPTU5vZGUgX25vZGVXaXRoOltzZWxmIF9ldmVu
dF0tPmN1cnJlbnRUYXJnZXQoKV07Ci19Ci0KLS0gKHVuc2lnbmVkIHNob3J0KWV2ZW50UGhhc2UK
LXsKLSAgICByZXR1cm4gW3NlbGYgX2V2ZW50XS0+ZXZlbnRQaGFzZSgpOwotfQotCi0tIChCT09M
KWJ1YmJsZXMKLXsKLSAgICByZXR1cm4gW3NlbGYgX2V2ZW50XS0+YnViYmxlcygpOwotfQotCi0t
IChCT09MKWNhbmNlbGFibGUKLXsKLSAgICByZXR1cm4gW3NlbGYgX2V2ZW50XS0+Y2FuY2VsYWJs
ZSgpOwotfQotCi0tICg6OkRPTVRpbWVTdGFtcCl0aW1lU3RhbXAKLXsKLSAgICByZXR1cm4gW3Nl
bGYgX2V2ZW50XS0+dGltZVN0YW1wKCk7Ci19Ci0KLS0gKHZvaWQpc3RvcFByb3BhZ2F0aW9uCi17
Ci0gICAgW3NlbGYgX2V2ZW50XS0+c3RvcFByb3BhZ2F0aW9uKCk7Ci19Ci0KLS0gKHZvaWQpcHJl
dmVudERlZmF1bHQKLXsKLSAgICBbc2VsZiBfZXZlbnRdLT5wcmV2ZW50RGVmYXVsdCgpOwotfQot
Ci0tICh2b2lkKWluaXRFdmVudDooTlNTdHJpbmcgKilldmVudFR5cGVBcmcgOihCT09MKWNhbkJ1
YmJsZUFyZyA6KEJPT0wpY2FuY2VsYWJsZUFyZwotewotICAgIFtzZWxmIF9ldmVudF0tPmluaXRF
dmVudChldmVudFR5cGVBcmcsIGNhbkJ1YmJsZUFyZywgY2FuY2VsYWJsZUFyZyk7Ci19Ci0KLUBl
bmQKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBET01FdmVudAogCiBA
aW1wbGVtZW50YXRpb24gRE9NRXZlbnQgKFdlYkNvcmVJbnRlcm5hbCkKIAotLSAoRXZlbnQgKilf
ZXZlbnQKKy0gKFdlYkNvcmU6OkV2ZW50ICopX2V2ZW50CiB7Ci0gICAgcmV0dXJuIERPTV9jYXN0
PEV2ZW50ICo+KF9pbnRlcm5hbCk7CisgICAgcmV0dXJuIERPTV9jYXN0PFdlYkNvcmU6OkV2ZW50
ICo+KF9pbnRlcm5hbCk7CiB9CiAKLS0gKGlkKV9pbml0V2l0aEV2ZW50OihFdmVudCAqKWltcGwK
Ky0gKGlkKV9pbml0V2l0aEV2ZW50OihXZWJDb3JlOjpFdmVudCAqKWltcGwKIHsKICAgICBBU1NF
UlQoaW1wbCk7CiAKQEAgLTExNSw3ICs2MSw3IEBAIEFMTE9XX0RPTV9DQVNUKEV2ZW50KQogICAg
IHJldHVybiBzZWxmOwogfQogCi0rIChET01FdmVudCAqKV9ldmVudFdpdGg6KEV2ZW50ICopaW1w
bAorKyAoRE9NRXZlbnQgKilfZXZlbnRXaXRoOihXZWJDb3JlOjpFdmVudCAqKWltcGwKIHsKICAg
ICBpZiAoIWltcGwpCiAgICAgICAgIHJldHVybiBuaWw7CkBAIC0xNDQsNTkgKzkwLDEzIEBAIEFM
TE9XX0RPTV9DQVNUKEV2ZW50KQogICAgIHJldHVybiBbW1t3cmFwcGVyQ2xhc3MgYWxsb2NdIF9p
bml0V2l0aEV2ZW50OmltcGxdIGF1dG9yZWxlYXNlXTsKIH0KIAotLSAodm9pZClkZWFsbG9jCi17
Ci0gICAgaWYgKF9pbnRlcm5hbCkKLSAgICAgICAgRE9NX2Nhc3Q8RXZlbnQgKj4oX2ludGVybmFs
KS0+ZGVyZWYoKTsKLSAgICBbc3VwZXIgZGVhbGxvY107Ci19Ci0KLS0gKHZvaWQpZmluYWxpemUK
LXsKLSAgICBpZiAoX2ludGVybmFsKQotICAgICAgICBET01fY2FzdDxFdmVudCAqPihfaW50ZXJu
YWwpLT5kZXJlZigpOwotICAgIFtzdXBlciBmaW5hbGl6ZV07Ci19Ci0KLQogQGVuZAogCi1AaW1w
bGVtZW50YXRpb24gRE9NS2V5Ym9hcmRFdmVudAotCi0tIChLZXlib2FyZEV2ZW50ICopX2tleWJv
YXJkRXZlbnQKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8S2V5Ym9hcmRFdmVudCAqPihET01f
Y2FzdDxFdmVudCAqPihfaW50ZXJuYWwpKTsKLX0KLQotLSAoTlNTdHJpbmcqKWtleUlkZW50aWZp
ZXIKLXsKLSAgICByZXR1cm4gKE5TU3RyaW5nICopIFtzZWxmIF9rZXlib2FyZEV2ZW50XS0+a2V5
SWRlbnRpZmllcigpOwotfQotCi0tICh1bnNpZ25lZClrZXlMb2NhdGlvbgotewotICAgIHJldHVy
biBbc2VsZiBfa2V5Ym9hcmRFdmVudF0tPmtleUxvY2F0aW9uKCk7Ci19Ci0KLS0gKEJPT0wpY3Ry
bEtleQotewotICAgIHJldHVybiBbc2VsZiBfa2V5Ym9hcmRFdmVudF0tPmN0cmxLZXkoKTsKLX0K
IAotLSAoQk9PTClzaGlmdEtleQotewotICAgIHJldHVybiBbc2VsZiBfa2V5Ym9hcmRFdmVudF0t
PnNoaWZ0S2V5KCk7Ci19CisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8g
RE9NS2V5Ym9hcmRFdmVudAogCi0tIChCT09MKWFsdEtleQotewotICAgIHJldHVybiBbc2VsZiBf
a2V5Ym9hcmRFdmVudF0tPmFsdEtleSgpOwotfQotCi0tIChCT09MKW1ldGFLZXkKLXsKLSAgICBy
ZXR1cm4gW3NlbGYgX2tleWJvYXJkRXZlbnRdLT5tZXRhS2V5KCk7Ci19CitAaW1wbGVtZW50YXRp
b24gRE9NS2V5Ym9hcmRFdmVudCAoTm9uU3RhbmRhcmRBZGRpdGlvbnMpCiAKIC0gKEJPT0wpZ2V0
TW9kaWZpZXJTdGF0ZTooTlNTdHJpbmcgKilrZXlJZGVudGlmaWVyQXJnCiB7CkBAIC0yMTEsMTY4
ICsxMTEsNCBAQCBBTExPV19ET01fQ0FTVChFdmVudCkKICAgICByZXR1cm4gTk87CiB9CiAKLS0g
KHZvaWQpaW5pdEtleWJvYXJkRXZlbnQ6KE5TU3RyaW5nICopdHlwZUFyZyA6KEJPT0wpY2FuQnVi
YmxlQXJnIDooQk9PTCljYW5jZWxhYmxlQXJnIDooRE9NQWJzdHJhY3RWaWV3ICopdmlld0FyZyA6
KE5TU3RyaW5nICopa2V5SWRlbnRpZmllckFyZyA6KHVuc2lnbmVkKWtleUxvY2F0aW9uQXJnIDoo
Qk9PTCljdHJsS2V5QXJnIDooQk9PTClhbHRLZXlBcmcgOihCT09MKXNoaWZ0S2V5QXJnIDooQk9P
TCltZXRhS2V5QXJnIHsKLSAgICBbc2VsZiBfa2V5Ym9hcmRFdmVudF0tPmluaXRLZXlib2FyZEV2
ZW50KHR5cGVBcmcsIGNhbkJ1YmJsZUFyZywgY2FuY2VsYWJsZUFyZywKLSAgICAgICAgW3ZpZXdB
cmcgX2Fic3RyYWN0Vmlld10sIGtleUlkZW50aWZpZXJBcmcsIGtleUxvY2F0aW9uQXJnLCBjdHJs
S2V5QXJnLCBhbHRLZXlBcmcsIHNoaWZ0S2V5QXJnLCBtZXRhS2V5QXJnLCBmYWxzZSk7Ci19Ci0K
LUBlbmQKLQotQGltcGxlbWVudGF0aW9uIERPTU1vdXNlRXZlbnQKLQotLSAoTW91c2VFdmVudCAq
KV9tb3VzZUV2ZW50Ci17Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PE1vdXNlRXZlbnQgKj4oRE9N
X2Nhc3Q8RXZlbnQgKj4oX2ludGVybmFsKSk7Ci19Ci0KLS0gKGludClzY3JlZW5YCi17Ci0gICAg
cmV0dXJuIFtzZWxmIF9tb3VzZUV2ZW50XS0+c2NyZWVuWCgpOwotfQotCi0tIChpbnQpc2NyZWVu
WQotewotICAgIHJldHVybiBbc2VsZiBfbW91c2VFdmVudF0tPnNjcmVlblkoKTsKLX0KLQotLSAo
aW50KWNsaWVudFgKLXsKLSAgICByZXR1cm4gW3NlbGYgX21vdXNlRXZlbnRdLT5jbGllbnRYKCk7
Ci19Ci0KLS0gKGludCljbGllbnRZCi17Ci0gICAgcmV0dXJuIFtzZWxmIF9tb3VzZUV2ZW50XS0+
Y2xpZW50WSgpOwotfQotCi0tIChCT09MKWN0cmxLZXkKLXsKLSAgICByZXR1cm4gW3NlbGYgX21v
dXNlRXZlbnRdLT5jdHJsS2V5KCk7Ci19Ci0KLS0gKEJPT0wpc2hpZnRLZXkKLXsKLSAgICByZXR1
cm4gW3NlbGYgX21vdXNlRXZlbnRdLT5zaGlmdEtleSgpOwotfQotCi0tIChCT09MKWFsdEtleQot
ewotICAgIHJldHVybiBbc2VsZiBfbW91c2VFdmVudF0tPmFsdEtleSgpOwotfQotCi0tIChCT09M
KW1ldGFLZXkKLXsKLSAgICByZXR1cm4gW3NlbGYgX21vdXNlRXZlbnRdLT5tZXRhS2V5KCk7Ci19
Ci0KLS0gKHVuc2lnbmVkIHNob3J0KWJ1dHRvbgotewotICAgIHJldHVybiBbc2VsZiBfbW91c2VF
dmVudF0tPmJ1dHRvbigpOwotfQotCi0tIChpZCA8RE9NRXZlbnRUYXJnZXQ+KXJlbGF0ZWRUYXJn
ZXQKLXsKLSAgICByZXR1cm4gW0RPTU5vZGUgX25vZGVXaXRoOltzZWxmIF9tb3VzZUV2ZW50XS0+
cmVsYXRlZFRhcmdldCgpXTsKLX0KLQotLSAodm9pZClpbml0TW91c2VFdmVudDooTlNTdHJpbmcg
Kil0eXBlQXJnIDooQk9PTCljYW5CdWJibGVBcmcgOihCT09MKWNhbmNlbGFibGVBcmcgOihET01B
YnN0cmFjdFZpZXcgKil2aWV3QXJnIDooaW50KWRldGFpbEFyZyA6KGludClzY3JlZW5YQXJnIDoo
aW50KXNjcmVlbllBcmcgOihpbnQpY2xpZW50WCA6KGludCljbGllbnRZIDooQk9PTCljdHJsS2V5
QXJnIDooQk9PTClhbHRLZXlBcmcgOihCT09MKXNoaWZ0S2V5QXJnIDooQk9PTCltZXRhS2V5QXJn
IDoodW5zaWduZWQgc2hvcnQpYnV0dG9uQXJnIDooaWQgPERPTUV2ZW50VGFyZ2V0PilyZWxhdGVk
VGFyZ2V0QXJnCi17Ci0gICAgRE9NTm9kZSAqcmVsYXRlZFRhcmdldE9iamMgPSByZWxhdGVkVGFy
Z2V0QXJnOwotICAgIE5vZGUqIHJlbFRhcmdldE5vZGUgPSBbcmVsYXRlZFRhcmdldE9iamMgX25v
ZGVdOwotICAgIEV2ZW50VGFyZ2V0Tm9kZSogcmVsYXRlZFRhcmdldCA9IChyZWxUYXJnZXROb2Rl
ICYmIHJlbFRhcmdldE5vZGUtPmlzRXZlbnRUYXJnZXROb2RlKCkpID8gc3RhdGljX2Nhc3Q8RXZl
bnRUYXJnZXROb2RlKj4ocmVsVGFyZ2V0Tm9kZSkgOiAwOwotICAgIAotICAgIFtzZWxmIF9tb3Vz
ZUV2ZW50XS0+aW5pdE1vdXNlRXZlbnQodHlwZUFyZywgY2FuQnViYmxlQXJnLCBjYW5jZWxhYmxl
QXJnLAotICAgICAgICBbdmlld0FyZyBfYWJzdHJhY3RWaWV3XSwgZGV0YWlsQXJnLCBzY3JlZW5Y
QXJnLCBzY3JlZW5ZQXJnLCBjbGllbnRYLCBjbGllbnRZLAotICAgICAgICBzaGlmdEtleUFyZywg
Y3RybEtleUFyZywgYWx0S2V5QXJnLCBtZXRhS2V5QXJnLCBidXR0b25BcmcsCi0gICAgICAgIHJl
bGF0ZWRUYXJnZXQpOwotfQotCi1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBET01NdXRhdGlvbkV2
ZW50Ci0KLS0gKE11dGF0aW9uRXZlbnQgKilfbXV0YXRpb25FdmVudAotewotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxNdXRhdGlvbkV2ZW50ICo+KERPTV9jYXN0PEV2ZW50ICo+KF9pbnRlcm5hbCkp
OwotfQotCi0tIChET01Ob2RlICopcmVsYXRlZE5vZGUKLXsKLSAgICByZXR1cm4gW0RPTU5vZGUg
X25vZGVXaXRoOltzZWxmIF9tdXRhdGlvbkV2ZW50XS0+cmVsYXRlZE5vZGUoKV07Ci19Ci0KLS0g
KE5TU3RyaW5nICopcHJldlZhbHVlCi17Ci0gICAgcmV0dXJuIFtzZWxmIF9tdXRhdGlvbkV2ZW50
XS0+cHJldlZhbHVlKCk7Ci19Ci0KLS0gKE5TU3RyaW5nICopbmV3VmFsdWUKLXsKLSAgICByZXR1
cm4gW3NlbGYgX211dGF0aW9uRXZlbnRdLT5uZXdWYWx1ZSgpOwotfQotCi0tIChOU1N0cmluZyAq
KWF0dHJOYW1lCi17Ci0gICAgcmV0dXJuIFtzZWxmIF9tdXRhdGlvbkV2ZW50XS0+YXR0ck5hbWUo
KTsKLX0KLQotLSAodW5zaWduZWQgc2hvcnQpYXR0ckNoYW5nZQotewotICAgIHJldHVybiBbc2Vs
ZiBfbXV0YXRpb25FdmVudF0tPmF0dHJDaGFuZ2UoKTsKLX0KLQotLSAodm9pZClpbml0TXV0YXRp
b25FdmVudDooTlNTdHJpbmcgKil0eXBlQXJnIDooQk9PTCljYW5CdWJibGVBcmcgOihCT09MKWNh
bmNlbGFibGVBcmcgOihET01Ob2RlICopcmVsYXRlZE5vZGVBcmcgOihOU1N0cmluZyAqKXByZXZW
YWx1ZUFyZyA6KE5TU3RyaW5nICopbmV3VmFsdWVBcmcgOihOU1N0cmluZyAqKWF0dHJOYW1lQXJn
IDoodW5zaWduZWQgc2hvcnQpYXR0ckNoYW5nZUFyZwotewotICAgIFtzZWxmIF9tdXRhdGlvbkV2
ZW50XS0+aW5pdE11dGF0aW9uRXZlbnQodHlwZUFyZywgY2FuQnViYmxlQXJnLCBjYW5jZWxhYmxl
QXJnLAotICAgICAgICBbcmVsYXRlZE5vZGVBcmcgX25vZGVdLCBwcmV2VmFsdWVBcmcsIG5ld1Zh
bHVlQXJnLCBhdHRyTmFtZUFyZywgYXR0ckNoYW5nZUFyZyk7Ci19Ci0KLUBlbmQKLQotQGltcGxl
bWVudGF0aW9uIERPTVVJRXZlbnQKLQotLSAoVUlFdmVudCAqKV9VSUV2ZW50Ci17Ci0gICAgcmV0
dXJuIHN0YXRpY19jYXN0PFVJRXZlbnQgKj4oRE9NX2Nhc3Q8RXZlbnQgKj4oX2ludGVybmFsKSk7
Ci19Ci0KLS0gKERPTUFic3RyYWN0VmlldyAqKXZpZXcKLXsKLSAgICByZXR1cm4gW0RPTUFic3Ry
YWN0VmlldyBfYWJzdHJhY3RWaWV3V2l0aDpbc2VsZiBfVUlFdmVudF0tPnZpZXcoKV07Ci19Ci0K
LS0gKGludClkZXRhaWwKLXsKLSAgICByZXR1cm4gW3NlbGYgX1VJRXZlbnRdLT5kZXRhaWwoKTsK
LX0KLQotLSAodm9pZClpbml0VUlFdmVudDooTlNTdHJpbmcgKil0eXBlQXJnIDooQk9PTCljYW5C
dWJibGVBcmcgOihCT09MKWNhbmNlbGFibGVBcmcgOihET01BYnN0cmFjdFZpZXcgKil2aWV3QXJn
IDooaW50KWRldGFpbEFyZwotewotICAgIFtzZWxmIF9VSUV2ZW50XS0+aW5pdFVJRXZlbnQodHlw
ZUFyZywgY2FuQnViYmxlQXJnLCBjYW5jZWxhYmxlQXJnLCBbdmlld0FyZyBfYWJzdHJhY3RWaWV3
XSwgZGV0YWlsQXJnKTsKLX0KLQotQGVuZAotCi1AaW1wbGVtZW50YXRpb24gRE9NT3ZlcmZsb3dF
dmVudAotCi0tIChPdmVyZmxvd0V2ZW50ICopX292ZXJmbG93RXZlbnQKLXsKLSAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8T3ZlcmZsb3dFdmVudCAqPihET01fY2FzdDxFdmVudCAqPihfaW50ZXJuYWwp
KTsKLX0KLQotLSAodW5zaWduZWQgc2hvcnQpb3JpZW50Ci17Ci0gICAgcmV0dXJuIFtzZWxmIF9v
dmVyZmxvd0V2ZW50XS0+b3JpZW50KCk7Ci19Ci0KLS0gKEJPT0wpaG9yaXpvbnRhbE92ZXJmbG93
Ci17Ci0gICAgcmV0dXJuIFtzZWxmIF9vdmVyZmxvd0V2ZW50XS0+aG9yaXpvbnRhbE92ZXJmbG93
KCk7Ci19Ci0KLS0gKEJPT0wpdmVydGljYWxPdmVyZmxvdwotewotICAgIHJldHVybiBbc2VsZiBf
b3ZlcmZsb3dFdmVudF0tPnZlcnRpY2FsT3ZlcmZsb3coKTsKLX0KLQogQGVuZApJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTUV2ZW50c05vbnN0YW5kYXJkLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01FdmVudHNOb25zdGFuZGFyZC5tbQkocmV2aXNpb24g
MTYyNTkpCisrKyBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRXZlbnRzTm9uc3RhbmRhcmQubW0J
KHdvcmtpbmcgY29weSkKQEAgLTEsMTE5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDQgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDYgSm9uYXMgV2l0dCA8am9uYXMud2l0dEBnbWFpbC5jb20+Ci0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNp
bXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiRE9NUHJpdmF0ZS5oIgotCi0jaW1wb3J0ICJET01J
bnRlcm5hbC5oIgotI2ltcG9ydCAiS2V5Ym9hcmRFdmVudC5oIgotI2ltcG9ydCAiV2hlZWxFdmVu
dC5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotQUxMT1dfRE9NX0NBU1QoRXZlbnQp
Ci0KLUBpbXBsZW1lbnRhdGlvbiBET01XaGVlbEV2ZW50Ci0KLS0gKFdoZWVsRXZlbnQgKilfd2hl
ZWxFdmVudAotewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxXaGVlbEV2ZW50ICo+KERPTV9jYXN0
PEV2ZW50ICo+KF9pbnRlcm5hbCkpOwotfQotCi0tIChpbnQpc2NyZWVuWAotewotICAgIHJldHVy
biBbc2VsZiBfd2hlZWxFdmVudF0tPnNjcmVlblgoKTsKLX0KLQotLSAoaW50KXNjcmVlblkKLXsK
LSAgICByZXR1cm4gW3NlbGYgX3doZWVsRXZlbnRdLT5zY3JlZW5ZKCk7Ci19Ci0KLS0gKGludClj
bGllbnRYCi17Ci0gICAgcmV0dXJuIFtzZWxmIF93aGVlbEV2ZW50XS0+Y2xpZW50WCgpOwotfQot
Ci0tIChpbnQpY2xpZW50WQotewotICAgIHJldHVybiBbc2VsZiBfd2hlZWxFdmVudF0tPmNsaWVu
dFkoKTsKLX0KLQotLSAoQk9PTCljdHJsS2V5Ci17Ci0gICAgcmV0dXJuIFtzZWxmIF93aGVlbEV2
ZW50XS0+Y3RybEtleSgpOwotfQotCi0tIChCT09MKXNoaWZ0S2V5Ci17Ci0gICAgcmV0dXJuIFtz
ZWxmIF93aGVlbEV2ZW50XS0+c2hpZnRLZXkoKTsKLX0KLQotLSAoQk9PTClhbHRLZXkgewotICAg
IHJldHVybiBbc2VsZiBfd2hlZWxFdmVudF0tPmFsdEtleSgpOwotfQotCi0tIChCT09MKW1ldGFL
ZXkgewotICAgIHJldHVybiBbc2VsZiBfd2hlZWxFdmVudF0tPm1ldGFLZXkoKTsKLX0KLQotLSAo
Qk9PTClpc0hvcml6b250YWwKLXsKLSAgICByZXR1cm4gW3NlbGYgX3doZWVsRXZlbnRdLT5pc0hv
cml6b250YWwoKTsKLX0KLQotLSAoaW50KXdoZWVsRGVsdGEKLXsKLSAgICByZXR1cm4gW3NlbGYg
X3doZWVsRXZlbnRdLT53aGVlbERlbHRhKCk7Ci19Ci0KLS0gKHZvaWQpaW5pdFdoZWVsRXZlbnQ6
KEJPT0wpaG9yaXpvbnRhbCA6KGludCl3aGVlbERlbHRhIDooRE9NQWJzdHJhY3RWaWV3ICopdmll
d0FyZyA6KGludClzY3JlZW5YQXJnIDooaW50KXNjcmVlbllBcmcgOihpbnQpY2xpZW50WCA6KGlu
dCljbGllbnRZIDooQk9PTCljdHJsS2V5QXJnIDooQk9PTClhbHRLZXlBcmcgOihCT09MKXNoaWZ0
S2V5QXJnIDooQk9PTCltZXRhS2V5QXJnCi17Ci0gICAgW3NlbGYgX3doZWVsRXZlbnRdLT5pbml0
V2hlZWxFdmVudChob3Jpem9udGFsLCB3aGVlbERlbHRhLCBbdmlld0FyZyBfYWJzdHJhY3RWaWV3
XSwgCi0gICAgICAgIHNjcmVlblhBcmcsIHNjcmVlbllBcmcsIGNsaWVudFgsIGNsaWVudFksCi0g
ICAgICAgIGN0cmxLZXlBcmcsIGFsdEtleUFyZywgc2hpZnRLZXlBcmcsIG1ldGFLZXlBcmcpOwot
fQotCi1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBET01LZXlib2FyZEV2ZW50IChOb25TdGFuZGFy
ZEFkZGl0aW9ucykKLQotLSAoS2V5Ym9hcmRFdmVudCAqKV9rZXlib2FyZEV2ZW50Ci17Ci0gICAg
cmV0dXJuIHN0YXRpY19jYXN0PEtleWJvYXJkRXZlbnQgKj4oRE9NX2Nhc3Q8RXZlbnQgKj4oX2lu
dGVybmFsKSk7Ci19Ci0KLS0gKGludClrZXlDb2RlCi17Ci0gICAgcmV0dXJuIFtzZWxmIF9rZXli
b2FyZEV2ZW50XS0+a2V5Q29kZSgpOwotfQotCi0tIChpbnQpY2hhckNvZGUKLXsKLSAgICByZXR1
cm4gW3NlbGYgX2tleWJvYXJkRXZlbnRdLT5jaGFyQ29kZSgpOwotfQotCi1AZW5kCkluZGV4OiBX
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01Ob2RlLmgJKHJldmlzaW9uIDE2MjU5KQorKysgV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTU5vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBAQAogICovCiAK
ICNpbXBvcnQgPFdlYkNvcmUvRE9NT2JqZWN0Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0RPTUV2ZW50
VGFyZ2V0Lmg+CiAKIEBjbGFzcyBET01Eb2N1bWVudDsgCiBAY2xhc3MgRE9NTmFtZWROb2RlTWFw
OwpAQCAtODIsMyArODMsNiBAQCBlbnVtIHsKIC0gKE5TUmVjdClib3VuZGluZ0JveDsKIC0gKE5T
QXJyYXkgKilsaW5lQm94UmVjdHM7CiBAZW5kCisKK0BpbnRlcmZhY2UgRE9NTm9kZSAoRE9NRXZl
bnRUYXJnZXQpIDxET01FdmVudFRhcmdldD4KK0BlbmQKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mv
b2JqYy9QdWJsaWNET01JbnRlcmZhY2VzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL1B1YmxpY0RPTUludGVyZmFjZXMuaAkocmV2aXNpb24gMTYyNTkpCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC03
NzQsMyArNzc0LDc5IEBACiBAcHJvcGVydHkocmVhZG9ubHkpIERPTUNTU1ByaW1pdGl2ZVZhbHVl
ICpib3R0b207CiBAcHJvcGVydHkocmVhZG9ubHkpIERPTUNTU1ByaW1pdGl2ZVZhbHVlICpsZWZ0
OwogQGVuZAorCitAaW50ZXJmYWNlIERPTUV2ZW50IDogRE9NT2JqZWN0CitAcHJvcGVydHkocmVh
ZG9ubHkpIE5TU3RyaW5nICp0eXBlOworQHByb3BlcnR5KHJlYWRvbmx5KSBpZCA8RE9NRXZlbnRU
YXJnZXQ+IHRhcmdldDsKK0Bwcm9wZXJ0eShyZWFkb25seSkgaWQgPERPTUV2ZW50VGFyZ2V0PiBj
dXJyZW50VGFyZ2V0OworQHByb3BlcnR5KHJlYWRvbmx5KSB1bnNpZ25lZCBzaG9ydCBldmVudFBo
YXNlOworQHByb3BlcnR5KHJlYWRvbmx5KSBCT09MIGJ1YmJsZXM7CitAcHJvcGVydHkocmVhZG9u
bHkpIEJPT0wgY2FuY2VsYWJsZTsKK0Bwcm9wZXJ0eShyZWFkb25seSkgRE9NVGltZVN0YW1wIHRp
bWVTdGFtcDsKKy0gKHZvaWQpc3RvcFByb3BhZ2F0aW9uOworLSAodm9pZClwcmV2ZW50RGVmYXVs
dDsKKy8vLSAodm9pZClpbml0RXZlbnQ6KE5TU3RyaW5nICopZXZlbnRUeXBlQXJnIGNhbkJ1YmJs
ZUFyZzooQk9PTCljYW5CdWJibGVBcmcgY2FuY2VsYWJsZUFyZzooQk9PTCljYW5jZWxhYmxlQXJn
OworLSAodm9pZClpbml0RXZlbnQ6KE5TU3RyaW5nICopZXZlbnRUeXBlQXJnIDooQk9PTCljYW5C
dWJibGVBcmcgOihCT09MKWNhbmNlbGFibGVBcmc7CitAZW5kCisKK0BpbnRlcmZhY2UgRE9NVUlF
dmVudCA6IERPTUV2ZW50CitAcHJvcGVydHkocmVhZG9ubHkpIERPTUFic3RyYWN0VmlldyAqdmll
dzsKK0Bwcm9wZXJ0eShyZWFkb25seSkgaW50IGRldGFpbDsKKy8vLSAodm9pZClpbml0VUlFdmVu
dDooRE9NQXRvbWljU3RyaW5nICopdHlwZSBjYW5CdWJibGU6KEJPT0wpY2FuQnViYmxlIGNhbmNl
bGFibGU6KEJPT0wpY2FuY2VsYWJsZSB2aWV3OihET01BYnN0cmFjdFZpZXcgKil2aWV3IGRldGFp
bDooaW50KWRldGFpbDsKKy0gKHZvaWQpaW5pdFVJRXZlbnQ6KE5TU3RyaW5nICopdHlwZSA6KEJP
T0wpY2FuQnViYmxlIDooQk9PTCljYW5jZWxhYmxlIDooRE9NQWJzdHJhY3RWaWV3ICopdmlldyA6
KGludClkZXRhaWw7CitAZW5kCisKK0BpbnRlcmZhY2UgRE9NTXV0YXRpb25FdmVudCA6IERPTUV2
ZW50CitAcHJvcGVydHkocmVhZG9ubHkpIERPTU5vZGUgKnJlbGF0ZWROb2RlOworQHByb3BlcnR5
KHJlYWRvbmx5KSBOU1N0cmluZyAqcHJldlZhbHVlOworQHByb3BlcnR5KHJlYWRvbmx5KSBOU1N0
cmluZyAqbmV3VmFsdWU7CitAcHJvcGVydHkocmVhZG9ubHkpIE5TU3RyaW5nICphdHRyTmFtZTsK
K0Bwcm9wZXJ0eShyZWFkb25seSkgdW5zaWduZWQgc2hvcnQgYXR0ckNoYW5nZTsKKy8vLSAodm9p
ZClpbml0TXV0YXRpb25FdmVudDooTlNTdHJpbmcgKil0eXBlIGNhbkJ1YmJsZTooQk9PTCljYW5C
dWJibGUgY2FuY2VsYWJsZTooQk9PTCljYW5jZWxhYmxlIHJlbGF0ZWROb2RlOihET01Ob2RlICop
cmVsYXRlZE5vZGUgcHJldlZhbHVlOihOU1N0cmluZyAqKXByZXZWYWx1ZSBuZXdWYWx1ZTooTlNT
dHJpbmcgKiluZXdWYWx1ZSBhdHRyTmFtZTooTlNTdHJpbmcgKilhdHRyTmFtZSBhdHRyQ2hhbmdl
Oih1bnNpZ25lZCBzaG9ydClhdHRyQ2hhbmdlOworLSAodm9pZClpbml0TXV0YXRpb25FdmVudDoo
TlNTdHJpbmcgKil0eXBlIDooQk9PTCljYW5CdWJibGUgOihCT09MKWNhbmNlbGFibGUgOihET01O
b2RlICopcmVsYXRlZE5vZGUgOihOU1N0cmluZyAqKXByZXZWYWx1ZSA6KE5TU3RyaW5nICopbmV3
VmFsdWUgOihOU1N0cmluZyAqKWF0dHJOYW1lIDoodW5zaWduZWQgc2hvcnQpYXR0ckNoYW5nZTsK
K0BlbmQKKworQGludGVyZmFjZSBET01PdmVyZmxvd0V2ZW50IDogRE9NRXZlbnQKK0Bwcm9wZXJ0
eShyZWFkb25seSkgdW5zaWduZWQgc2hvcnQgb3JpZW50OworQHByb3BlcnR5KHJlYWRvbmx5KSBC
T09MIGhvcml6b250YWxPdmVyZmxvdzsKK0Bwcm9wZXJ0eShyZWFkb25seSkgQk9PTCB2ZXJ0aWNh
bE92ZXJmbG93OworQGVuZAorCitAaW50ZXJmYWNlIERPTVdoZWVsRXZlbnQgOiBET01VSUV2ZW50
CitAcHJvcGVydHkocmVhZG9ubHkpIGludCBzY3JlZW5YOworQHByb3BlcnR5KHJlYWRvbmx5KSBp
bnQgc2NyZWVuWTsKK0Bwcm9wZXJ0eShyZWFkb25seSkgaW50IGNsaWVudFg7CitAcHJvcGVydHko
cmVhZG9ubHkpIGludCBjbGllbnRZOworQHByb3BlcnR5KHJlYWRvbmx5KSBCT09MIGN0cmxLZXk7
CitAcHJvcGVydHkocmVhZG9ubHkpIEJPT0wgc2hpZnRLZXk7CitAcHJvcGVydHkocmVhZG9ubHkp
IEJPT0wgYWx0S2V5OworQHByb3BlcnR5KHJlYWRvbmx5KSBCT09MIG1ldGFLZXk7CitAcHJvcGVy
dHkocmVhZG9ubHkpIEJPT0wgaXNIb3Jpem9udGFsOworQHByb3BlcnR5KHJlYWRvbmx5KSBpbnQg
d2hlZWxEZWx0YTsKK0BlbmQKKworQGludGVyZmFjZSBET01LZXlib2FyZEV2ZW50IDogRE9NVUlF
dmVudAorQHByb3BlcnR5KHJlYWRvbmx5KSBOU1N0cmluZyAqa2V5SWRlbnRpZmllcjsKK0Bwcm9w
ZXJ0eShyZWFkb25seSkgdW5zaWduZWQga2V5TG9jYXRpb247CitAcHJvcGVydHkocmVhZG9ubHkp
IEJPT0wgY3RybEtleTsKK0Bwcm9wZXJ0eShyZWFkb25seSkgQk9PTCBzaGlmdEtleTsKK0Bwcm9w
ZXJ0eShyZWFkb25seSkgQk9PTCBhbHRLZXk7CitAcHJvcGVydHkocmVhZG9ubHkpIEJPT0wgbWV0
YUtleTsKK0Bwcm9wZXJ0eShyZWFkb25seSkgaW50IGtleUNvZGU7CitAcHJvcGVydHkocmVhZG9u
bHkpIGludCBjaGFyQ29kZTsKK0BlbmQKKworQGludGVyZmFjZSBET01Nb3VzZUV2ZW50IDogRE9N
VUlFdmVudAorQHByb3BlcnR5KHJlYWRvbmx5KSBpbnQgc2NyZWVuWDsKK0Bwcm9wZXJ0eShyZWFk
b25seSkgaW50IHNjcmVlblk7CitAcHJvcGVydHkocmVhZG9ubHkpIGludCBjbGllbnRYOworQHBy
b3BlcnR5KHJlYWRvbmx5KSBpbnQgY2xpZW50WTsKK0Bwcm9wZXJ0eShyZWFkb25seSkgQk9PTCBj
dHJsS2V5OworQHByb3BlcnR5KHJlYWRvbmx5KSBCT09MIHNoaWZ0S2V5OworQHByb3BlcnR5KHJl
YWRvbmx5KSBCT09MIGFsdEtleTsKK0Bwcm9wZXJ0eShyZWFkb25seSkgQk9PTCBtZXRhS2V5Owor
QHByb3BlcnR5KHJlYWRvbmx5KSB1bnNpZ25lZCBzaG9ydCBidXR0b247CitAcHJvcGVydHkocmVh
ZG9ubHkpIGlkIDxET01FdmVudFRhcmdldD4gcmVsYXRlZFRhcmdldDsKKy8vLSAodm9pZClpbml0
TW91c2VFdmVudDooTlNTdHJpbmcgKil0eXBlIGNhbkJ1YmJsZTooQk9PTCljYW5CdWJibGUgY2Fu
Y2VsYWJsZTooQk9PTCljYW5jZWxhYmxlIHZpZXc6KERPTUFic3RyYWN0VmlldyAqKXZpZXcgZGV0
YWlsOihpbnQpZGV0YWlsIHNjcmVlblg6KGludClzY3JlZW5YIHNjcmVlblk6KGludClzY3JlZW5Z
IGNsaWVudFg6KGludCljbGllbnRYIGNsaWVudFk6KGludCljbGllbnRZIGN0cmxLZXk6KEJPT0wp
Y3RybEtleSBhbHRLZXk6KEJPT0wpYWx0S2V5IHNoaWZ0S2V5OihCT09MKXNoaWZ0S2V5IG1ldGFL
ZXk6KEJPT0wpbWV0YUtleSBidXR0b246KHVuc2lnbmVkIHNob3J0KWJ1dHRvbiByZWxhdGVkVGFy
Z2V0OihpZCA8RE9NRXZlbnRUYXJnZXQ+KXJlbGF0ZWRUYXJnZXQ7CistICh2b2lkKWluaXRNb3Vz
ZUV2ZW50OihOU1N0cmluZyAqKXR5cGUgOihCT09MKWNhbkJ1YmJsZSA6KEJPT0wpY2FuY2VsYWJs
ZSA6KERPTUFic3RyYWN0VmlldyAqKXZpZXcgOihpbnQpZGV0YWlsIDooaW50KXNjcmVlblggOihp
bnQpc2NyZWVuWSA6KGludCljbGllbnRYIDooaW50KWNsaWVudFkgOihCT09MKWN0cmxLZXkgOihC
T09MKWFsdEtleSA6KEJPT0wpc2hpZnRLZXkgOihCT09MKW1ldGFLZXkgOih1bnNpZ25lZCBzaG9y
dClidXR0b24gOihpZCA8RE9NRXZlbnRUYXJnZXQ+KXJlbGF0ZWRUYXJnZXQ7CitAZW5kCkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQkocmV2aXNpb24gMTYy
NTkpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQkod29ya2lu
ZyBjb3B5KQpAQCAtNDUsMTYgKzQ1LDE2IEBAIG15IEBmb3VuZEZpbGVuYW1lcyA9ICgpOwogIyBE
ZWZhdWx0IGNvbnN0cnVjdG9yCiBzdWIgbmV3CiB7Ci0gIG15ICRvYmplY3QgPSBzaGlmdDsKLSAg
bXkgJHJlZmVyZW5jZSA9IHsgfTsKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJHJl
ZmVyZW5jZSA9IHsgfTsKIAotICAkdXNlRGlyZWN0b3JpZXMgPSBzaGlmdDsKLSAgJHVzZUdlbmVy
YXRvciA9IHNoaWZ0OwotICAkdXNlT3V0cHV0RGlyID0gc2hpZnQ7Ci0gICR1c2VMYXllck9uVG9w
ID0gc2hpZnQ7CisgICAgJHVzZURpcmVjdG9yaWVzID0gc2hpZnQ7CisgICAgJHVzZUdlbmVyYXRv
ciA9IHNoaWZ0OworICAgICR1c2VPdXRwdXREaXIgPSBzaGlmdDsKKyAgICAkdXNlTGF5ZXJPblRv
cCA9IHNoaWZ0OwogCi0gIGJsZXNzKCRyZWZlcmVuY2UsICRvYmplY3QpOwotICByZXR1cm4gJHJl
ZmVyZW5jZTsKKyAgICBibGVzcygkcmVmZXJlbmNlLCAkb2JqZWN0KTsKKyAgICByZXR1cm4gJHJl
ZmVyZW5jZTsKIH0KIAogc3ViIFN0cmlwTW9kdWxlKCQpCkBAIC02NywzNiArNjcsMzUgQEAgc3Vi
IFN0cmlwTW9kdWxlKCQpCiAKIHN1YiBQcm9jZXNzRG9jdW1lbnQKIHsKLSAgbXkgJG9iamVjdCA9
IHNoaWZ0OwotICAkdXNlRG9jdW1lbnQgPSBzaGlmdDsKLSAgbXkgJGRlZmluZXMgPSBzaGlmdDsK
KyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgJHVzZURvY3VtZW50ID0gc2hpZnQ7CisgICAg
bXkgJGRlZmluZXMgPSBzaGlmdDsKICAgCi0gIG15ICRpZmFjZU5hbWUgPSAkdXNlR2VuZXJhdG9y
OwotICAkaWZhY2VOYW1lID0gIkNvZGVHZW5lcmF0b3IkaWZhY2VOYW1lIjsKKyAgICBteSAkaWZh
Y2VOYW1lID0gIkNvZGVHZW5lcmF0b3IiIC4gJHVzZUdlbmVyYXRvcjsKIAotICAjIER5bmFtaWNh
bGx5IGxvYWQgZXh0ZXJuYWwgY29kZSBnZW5lcmF0aW9uIHBlcmwgbW9kdWxlLi4uCi0gIHJlcXVp
cmUgJGlmYWNlTmFtZSAuICIucG0iOwotICAkY29kZUdlbmVyYXRvciA9ICRpZmFjZU5hbWUtPm5l
dygkb2JqZWN0LCAkdXNlT3V0cHV0RGlyLCAkdXNlTGF5ZXJPblRvcCk7Ci0gIHVubGVzcyAoZGVm
aW5lZCgkY29kZUdlbmVyYXRvcikpIHsKLSAgICBteSAkY2xhc3NlcyA9ICR1c2VEb2N1bWVudC0+
Y2xhc3NlczsKLSAgICBmb3JlYWNoKEAkY2xhc3NlcykgewotICAgICAgbXkgJGNsYXNzID0gJF87
Ci0gICAgICBwcmludCAiU2tpcHBpbmcgJHVzZUdlbmVyYXRvciBjb2RlIGdlbmVyYXRpb24gZm9y
IElETCBpbnRlcmZhY2UgXCIiIC4gJGNsYXNzLT5uYW1lIC4gIlwiLlxuIjsKKyAgICAjIER5bmFt
aWNhbGx5IGxvYWQgZXh0ZXJuYWwgY29kZSBnZW5lcmF0aW9uIHBlcmwgbW9kdWxlLi4uCisgICAg
cmVxdWlyZSAkaWZhY2VOYW1lIC4gIi5wbSI7CisgICAgJGNvZGVHZW5lcmF0b3IgPSAkaWZhY2VO
YW1lLT5uZXcoJG9iamVjdCwgJHVzZU91dHB1dERpciwgJHVzZUxheWVyT25Ub3ApOworICAgIHVu
bGVzcyAoZGVmaW5lZCgkY29kZUdlbmVyYXRvcikpIHsKKyAgICAgICAgbXkgJGNsYXNzZXMgPSAk
dXNlRG9jdW1lbnQtPmNsYXNzZXM7CisgICAgICAgIGZvcmVhY2goQCRjbGFzc2VzKSB7CisgICAg
ICAgICAgICBteSAkY2xhc3MgPSAkXzsKKyAgICAgICAgICAgIHByaW50ICJTa2lwcGluZyAkdXNl
R2VuZXJhdG9yIGNvZGUgZ2VuZXJhdGlvbiBmb3IgSURMIGludGVyZmFjZSBcIiIgLiAkY2xhc3Mt
Pm5hbWUgLiAiXCIuXG4iOworICAgICAgICB9CisgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAg
cmV0dXJuOwotICB9CiAKLSAgIyBTdGFydCB0aGUgYWN0dWFsIGNvZGUgZ2VuZXJhdGlvbiEKLSAg
JGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlTW9kdWxlKCR1c2VEb2N1bWVudCwgJGRlZmluZXMpOwor
ICAgICMgU3RhcnQgdGhlIGFjdHVhbCBjb2RlIGdlbmVyYXRpb24hCisgICAgJGNvZGVHZW5lcmF0
b3ItPkdlbmVyYXRlTW9kdWxlKCR1c2VEb2N1bWVudCwgJGRlZmluZXMpOwogCi0gIG15ICRjbGFz
c2VzID0gJHVzZURvY3VtZW50LT5jbGFzc2VzOwotICBmb3JlYWNoKEAkY2xhc3NlcykgewotICAg
IG15ICRjbGFzcyA9ICRfOwotICAgIHByaW50ICJHZW5lcmF0aW5nICR1c2VHZW5lcmF0b3IgYmlu
ZGluZ3MgY29kZSBmb3IgSURMIGludGVyZmFjZSBcIiIgLiAkY2xhc3MtPm5hbWUgLiAiXCIuLi5c
biI7Ci0gICAgJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlSW50ZXJmYWNlKCRjbGFzcywgJGRlZmlu
ZXMpOwotICB9CisgICAgbXkgJGNsYXNzZXMgPSAkdXNlRG9jdW1lbnQtPmNsYXNzZXM7CisgICAg
Zm9yZWFjaChAJGNsYXNzZXMpIHsKKyAgICAgICAgbXkgJGNsYXNzID0gJF87CisgICAgICAgIHBy
aW50ICJHZW5lcmF0aW5nICR1c2VHZW5lcmF0b3IgYmluZGluZ3MgY29kZSBmb3IgSURMIGludGVy
ZmFjZSBcIiIgLiAkY2xhc3MtPm5hbWUgLiAiXCIuLi5cbiI7CisgICAgICAgICRjb2RlR2VuZXJh
dG9yLT5HZW5lcmF0ZUludGVyZmFjZSgkY2xhc3MsICRkZWZpbmVzKTsKKyAgICB9CiAKLSAgJGNv
ZGVHZW5lcmF0b3ItPmZpbmlzaCgpOworICAgICRjb2RlR2VuZXJhdG9yLT5maW5pc2goKTsKIH0K
IAogc3ViIEFkZE1ldGhvZHNDb25zdGFudHNBbmRBdHRyaWJ1dGVzRnJvbVBhcmVudENsYXNzZXMK
QEAgLTExNiwxMyArMTE1LDExIEBAIHN1YiBBZGRNZXRob2RzQ29uc3RhbnRzQW5kQXR0cmlidXRl
c0Zyb20KICAgICBteSAkYXR0cmlidXRlc1JlZiA9ICRkYXRhTm9kZS0+YXR0cmlidXRlczsKIAog
ICAgICMgRXhjZXB0aW9uOiBGb3IgdGhlIERPTSAnTm9kZScgaXMgb3VyIHRvcG1vc3QgYmFzZWNs
YXNzLCBub3QgRXZlbnRUYXJnZXROb2RlLgotICAgIGlmKCgkcGFyZW50c01heCBlcSAxKSBhbmQg
KCRwYXJlbnRzWzBdIGVxICJFdmVudFRhcmdldE5vZGUiKSkgewotICAgICAgICByZXR1cm47Ci0g
ICAgfQorICAgIHJldHVybiBpZiAkcGFyZW50c01heCBlcSAxIGFuZCAkcGFyZW50c1swXSBlcSAi
RXZlbnRUYXJnZXROb2RlIjsKIAogICAgIG15ICRpZ25vcmVQYXJlbnQgPSAxOwotICAgIGZvcmVh
Y2goQHskZGF0YU5vZGUtPnBhcmVudHN9KSB7Ci0gICAgICAgIGlmKCRpZ25vcmVQYXJlbnQgZXEg
MSkgeworICAgIGZvcmVhY2ggKEB7JGRhdGFOb2RlLT5wYXJlbnRzfSkgeworICAgICAgICBpZiAo
JGlnbm9yZVBhcmVudCkgewogICAgICAgICAgICAgIyBJZ25vcmUgZmlyc3QgcGFyZW50IGNsYXNz
LCBhbHJlYWR5IGhhbmRsZWQgYnkgdGhlIGdlbmVyYXRpb24gaXRzZWxmLgogICAgICAgICAgICAg
JGlnbm9yZVBhcmVudCA9IDA7CiAgICAgICAgICAgICBuZXh0OwpAQCAtMTM0LDIwICsxMzEsMTgg
QEAgc3ViIEFkZE1ldGhvZHNDb25zdGFudHNBbmRBdHRyaWJ1dGVzRnJvbQogICAgICAgICAkZW5k
Q29uZGl0aW9uID0gMDsKICAgICAgICAgJGZvdW5kRmlsZW5hbWUgPSAiIjsKIAotICAgICAgICBm
b3JlYWNoKEB7JHVzZURpcmVjdG9yaWVzfSkgewotICAgICAgICAgICAgaWYoJGZvdW5kRmlsZW5h
bWUgZXEgIiIpIHsKLSAgICAgICAgICAgICAgICAkb2JqZWN0LT5TY2FuRGlyZWN0b3J5KCIkaW50
ZXJmYWNlLmlkbCIsICRfLCAkXywgMCk7Ci0gICAgICAgICAgICB9CisgICAgICAgIGZvcmVhY2gg
KEB7JHVzZURpcmVjdG9yaWVzfSkgeworICAgICAgICAgICAgJG9iamVjdC0+U2NhbkRpcmVjdG9y
eSgiJGludGVyZmFjZS5pZGwiLCAkXywgJF8sIDApIGlmICgkZm91bmRGaWxlbmFtZSBlcSAiIik7
CiAgICAgICAgIH0KIAotICAgICAgICBpZigkZm91bmRGaWxlbmFtZSBuZSAiIikgeworICAgICAg
ICBpZiAoJGZvdW5kRmlsZW5hbWUgbmUgIiIpIHsKICAgICAgICAgICAgIHByaW50ICIgIHwgIHw+
ICBQYXJzaW5nIHBhcmVudCBJREwgXCIkZm91bmRGaWxlbmFtZVwiIGZvciBpbnRlcmZhY2UgXCIk
aW50ZXJmYWNlXCJcbiI7CiAKICAgICAgICAgICAgICMgU3RlcCAjMjogUGFyc2UgdGhlIGZvdW5k
IElETCBmaWxlIChpbiBxdWlldCBtb2RlKS4KICAgICAgICAgICAgIG15ICRwYXJzZXIgPSBJRExQ
YXJzZXItPm5ldygxKTsKICAgICAgICAgICAgIG15ICRkb2N1bWVudCA9ICRwYXJzZXItPlBhcnNl
KCRmb3VuZEZpbGVuYW1lLCAiIik7CiAKLSAgICAgICAgICAgIGZvcmVhY2goQHskZG9jdW1lbnQt
PmNsYXNzZXN9KSB7CisgICAgICAgICAgICBmb3JlYWNoIChAeyRkb2N1bWVudC0+Y2xhc3Nlc30p
IHsKICAgICAgICAgICAgICAgICBteSAkY2xhc3MgPSAkXzsKIAogICAgICAgICAgICAgICAgICMg
U3RlcCAjMzogQ29sbGVjdCBjb25zdGFudHMgJiBmdW5jdGlvbnMgJiBhdHRyaWJ1dGVzIG9mIHRo
aXMgcGFyZW50LWNsYXNzLi4uCkBAIC0xNTgsMTUgKzE1MywxNSBAQCBzdWIgQWRkTWV0aG9kc0Nv
bnN0YW50c0FuZEF0dHJpYnV0ZXNGcm9tCiAgICAgICAgICAgICAgICAgcHJpbnQgIiAgfCAgfD4g
IC0+IEluaGVydGluZyAkY29uc3RhbnRzTWF4IGNvbnN0YW50cywgJGZ1bmN0aW9uc01heCBmdW5j
dGlvbnMsICRhdHRyaWJ1dGVzTWF4IGF0dHJpYnV0ZXMuLi5cbiAgfCAgfD5cbiI7CiAKICAgICAg
ICAgICAgICAgICAjIFN0ZXAgIzQ6IENvbmNhdGVuYXRlIGRhdGEuLi4KLSAgICAgICAgICAgICAg
ICBmb3JlYWNoKEB7JGNsYXNzLT5jb25zdGFudHN9KSB7CisgICAgICAgICAgICAgICAgZm9yZWFj
aCAoQHskY2xhc3MtPmNvbnN0YW50c30pIHsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAJGNv
bnN0YW50c1JlZiwgJF8pOwogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIGZv
cmVhY2goQHskY2xhc3MtPmZ1bmN0aW9uc30pIHsKKyAgICAgICAgICAgICAgICBmb3JlYWNoIChA
eyRjbGFzcy0+ZnVuY3Rpb25zfSkgewogICAgICAgICAgICAgICAgICAgICBwdXNoKEAkZnVuY3Rp
b25zUmVmLCAkXyk7CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgZm9yZWFj
aChAeyRjbGFzcy0+YXR0cmlidXRlc30pIHsKKyAgICAgICAgICAgICAgICBmb3JlYWNoIChAeyRj
bGFzcy0+YXR0cmlidXRlc30pIHsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAJGF0dHJpYnV0
ZXNSZWYsICRfKTsKICAgICAgICAgICAgICAgICB9CiAKQEAgLTE4MiwyMzcgKzE3NywyMzAgQEAg
c3ViIEFkZE1ldGhvZHNDb25zdGFudHNBbmRBdHRyaWJ1dGVzRnJvbQogIyBIZWxwZXIgZm9yIGFs
bCBDb2RlR2VuZXJhdG9yKioqLnBtIG1vZHVsZXMKIHN1YiBGaW5kVG9wQmFzZUNsYXNzCiB7Ci0g
ICMgSWYgeW91IGFyZSBwcm9jZXNzaW5nIHRoZSAnQXR0cicgaW50ZXJmYWNlLCBpdCBoYXMgdGhl
IHNpbmdsZQotICAjIHBhcmVudCBpbnRlcmZhY2UgJ05vZGUnLCB3aGljaCBpcyB0aGUgdG9wbW9z
dCBiYXNlIGNsYXNzLiBSZXR1cm4gaXQuCi0gICMKLSAgIyBJdCBnZXRzIHRyaWNraWVyIGZvciBp
ZS4gdGhlICdQbGF0Zm9ybU1vdXNlRXZlbnQnIGludGVyZmFjZSwgd2hvc2UgcGFyZW50IGlzCi0g
ICMgdGhlICdVSUV2ZW50JyBpbnRlcmZhY2UsIHdob3NlIHBhcmVudCBpcyB0aGUgJ0V2ZW50JyBp
bnRlcmZhY2UuIFJldHVybiBpdC4KLSAgbXkgJG9iamVjdCA9IHNoaWZ0OwotICBteSAkaW50ZXJm
YWNlID0gU3RyaXBNb2R1bGUoc2hpZnQpOwotICBteSAkdG9wQmFzZUNsYXNzID0gIiI7CisgICAg
IyBJZiB5b3UgYXJlIHByb2Nlc3NpbmcgdGhlICdBdHRyJyBpbnRlcmZhY2UsIGl0IGhhcyB0aGUg
c2luZ2xlCisgICAgIyBwYXJlbnQgaW50ZXJmYWNlICdOb2RlJywgd2hpY2ggaXMgdGhlIHRvcG1v
c3QgYmFzZSBjbGFzcy4gUmV0dXJuIGl0LgorICAgICMKKyAgICAjIEl0IGdldHMgdHJpY2tpZXIg
Zm9yIGllLiB0aGUgJ1BsYXRmb3JtTW91c2VFdmVudCcgaW50ZXJmYWNlLCB3aG9zZSBwYXJlbnQg
aXMKKyAgICAjIHRoZSAnVUlFdmVudCcgaW50ZXJmYWNlLCB3aG9zZSBwYXJlbnQgaXMgdGhlICdF
dmVudCcgaW50ZXJmYWNlLiBSZXR1cm4gaXQuCisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAg
IG15ICRpbnRlcmZhY2UgPSBTdHJpcE1vZHVsZShzaGlmdCk7CisgICAgbXkgJHRvcEJhc2VDbGFz
cyA9ICIiOwogICAKLSAgIyBMb29wIHVudGlsIHdlIGZvdW5kIHRoZSB0b3AgbW9zdCBiYXNlIGNs
YXNzIGZvciAnaW50ZXJmYWNlJwotICB3aGlsZSgkaW50ZXJmYWNlIG5lICIiKSB7Ci0gICAgIyBT
dGVwICMxOiBGaW5kIHRoZSBJREwgZmlsZSBhc3NvY2lhdGVkIHdpdGggJ2ludGVyZmFjZScKLSAg
ICAkZW5kQ29uZGl0aW9uID0gMDsgJGZvdW5kRmlsZW5hbWUgPSAiIjsKKyAgICAjIExvb3AgdW50
aWwgd2UgZm91bmQgdGhlIHRvcCBtb3N0IGJhc2UgY2xhc3MgZm9yICdpbnRlcmZhY2UnCisgICAg
d2hpbGUoJGludGVyZmFjZSBuZSAiIikgeworICAgICAgICAjIFN0ZXAgIzE6IEZpbmQgdGhlIElE
TCBmaWxlIGFzc29jaWF0ZWQgd2l0aCAnaW50ZXJmYWNlJworICAgICAgICAkZW5kQ29uZGl0aW9u
ID0gMDsgJGZvdW5kRmlsZW5hbWUgPSAiIjsKIAotICAgIGZvcmVhY2goQHskdXNlRGlyZWN0b3Jp
ZXN9KSB7Ci0gICAgICBpZigkZm91bmRGaWxlbmFtZSBlcSAiIikgewotICAgICAgICAkb2JqZWN0
LT5TY2FuRGlyZWN0b3J5KCIkaW50ZXJmYWNlLmlkbCIsICRfLCAkXywgMCk7Ci0gICAgICB9Ci0g
ICAgfQorICAgICAgICBmb3JlYWNoIChAeyR1c2VEaXJlY3Rvcmllc30pIHsKKyAgICAgICAgICAg
ICRvYmplY3QtPlNjYW5EaXJlY3RvcnkoIiRpbnRlcmZhY2UuaWRsIiwgJF8sICRfLCAwKSBpZiAk
Zm91bmRGaWxlbmFtZSBlcSAiIjsKKyAgICAgICAgfQogCi0gICAgaWYoJGZvdW5kRmlsZW5hbWUg
bmUgIiIpIHsKLSAgICAgIHByaW50ICIgIHwgIHw+ICBQYXJzaW5nIHBhcmVudCBJREwgXCIkZm91
bmRGaWxlbmFtZVwiIGZvciBpbnRlcmZhY2UgXCIkaW50ZXJmYWNlXCJcbiI7CisgICAgICAgIGlm
ICgkZm91bmRGaWxlbmFtZSBuZSAiIikgeworICAgICAgICAgICAgcHJpbnQgIiAgfCAgfD4gIFBh
cnNpbmcgcGFyZW50IElETCBcIiRmb3VuZEZpbGVuYW1lXCIgZm9yIGludGVyZmFjZSBcIiRpbnRl
cmZhY2VcIlxuIjsKIAotICAgICAgIyBTdGVwICMyOiBQYXJzZSB0aGUgZm91bmQgSURMIGZpbGUg
KGluIHF1aWV0IG1vZGUpLgotICAgICAgbXkgJHBhcnNlciA9IElETFBhcnNlci0+bmV3KDEpOwot
ICAgICAgbXkgJGRvY3VtZW50ID0gJHBhcnNlci0+UGFyc2UoJGZvdW5kRmlsZW5hbWUpOworICAg
ICAgICAgICAgIyBTdGVwICMyOiBQYXJzZSB0aGUgZm91bmQgSURMIGZpbGUgKGluIHF1aWV0IG1v
ZGUpLgorICAgICAgICAgICAgbXkgJHBhcnNlciA9IElETFBhcnNlci0+bmV3KDEpOworICAgICAg
ICAgICAgbXkgJGRvY3VtZW50ID0gJHBhcnNlci0+UGFyc2UoJGZvdW5kRmlsZW5hbWUpOwogCi0g
ICAgICAjIFN0ZXAgIzM6IENoZWNrIHdoZXRlciB0aGUgcGFyc2VkIElETCBmaWxlIGhhcyBwYXJl
bnRzCi0gICAgICBmb3JlYWNoKEB7JGRvY3VtZW50LT5jbGFzc2VzfSkgewotICAgICAgICBteSAk
Y2xhc3MgPSAkXzsKKyAgICAgICAgICAgICMgU3RlcCAjMzogQ2hlY2sgd2hldGVyIHRoZSBwYXJz
ZWQgSURMIGZpbGUgaGFzIHBhcmVudHMKKyAgICAgICAgICAgIGZvcmVhY2goQHskZG9jdW1lbnQt
PmNsYXNzZXN9KSB7CisgICAgICAgICAgICAgICAgbXkgJGNsYXNzID0gJF87CiAKLSAgICAgICAg
bXkgJHVzZUludGVyZmFjZSA9ICRpbnRlcmZhY2U7CisgICAgICAgICAgICAgICAgbXkgJHVzZUlu
dGVyZmFjZSA9ICRpbnRlcmZhY2U7CiAKLSAgICAgICAgaWYoJGNsYXNzLT5uYW1lIGVxICR1c2VJ
bnRlcmZhY2UpIHsKLSAgICAgICAgICBteSBAcGFyZW50cyA9IEB7JGNsYXNzLT5wYXJlbnRzfTsK
LSAgICAgICAgICBteSAkcGFyZW50c01heCA9IEB7JGNsYXNzLT5wYXJlbnRzfTsKLQotICAgICAg
ICAgICRpbnRlcmZhY2UgPSAiIjsKLQotICAgICAgICAgICMgRXhjZXB0aW9uOiBGb3IgdGhlIERP
TSAnTm9kZScgaXMgb3VyIHRvcG1vc3QgYmFzZWNsYXNzLCBub3QgRXZlbnRUYXJnZXQuCi0gICAg
ICAgICAgaWYoKCRwYXJlbnRzTWF4ID4gMCkgYW5kICgkcGFyZW50c1swXSBuZSAiZXZlbnRzOjpF
dmVudFRhcmdldCIpKSB7Ci0gICAgICAgICAgICAkaW50ZXJmYWNlID0gU3RyaXBNb2R1bGUoJHBh
cmVudHNbMF0pOwotICAgICAgICAgIH0gZWxzaWYoISRjbGFzcy0+bm9EUHRyRmxhZykgeyAjIElu
Y2x1ZGUgJ21vZHVsZScgLi4uCi0gICAgICAgICAgICAkdG9wQmFzZUNsYXNzID0gJGRvY3VtZW50
LT5tb2R1bGUgLiAiOjoiIC4gJGNsYXNzLT5uYW1lOwotICAgICAgICAgIH0KLSAgICAgICAgfSAg
Ci0gICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgIGRpZSgiQ291bGQgTk9UIGZpbmQgc3BlY2lm
aWVkIHBhcmVudCBpbnRlcmZhY2UgXCIkaW50ZXJmYWNlXCIhXG4iKTsKKyAgICAgICAgICAgICAg
ICBpZiAoJGNsYXNzLT5uYW1lIGVxICR1c2VJbnRlcmZhY2UpIHsKKyAgICAgICAgICAgICAgICAg
ICAgbXkgQHBhcmVudHMgPSBAeyRjbGFzcy0+cGFyZW50c307CisgICAgICAgICAgICAgICAgICAg
IG15ICRwYXJlbnRzTWF4ID0gQHskY2xhc3MtPnBhcmVudHN9OworCisgICAgICAgICAgICAgICAg
ICAgICRpbnRlcmZhY2UgPSAiIjsKKworICAgICAgICAgICAgICAgICAgICAjIEV4Y2VwdGlvbjog
Rm9yIHRoZSBET00gJ05vZGUnIGlzIG91ciB0b3Btb3N0IGJhc2VjbGFzcywgbm90IEV2ZW50VGFy
Z2V0LgorICAgICAgICAgICAgICAgICAgICBpZiAoKCRwYXJlbnRzTWF4ID4gMCkgYW5kICgkcGFy
ZW50c1swXSBuZSAiZXZlbnRzOjpFdmVudFRhcmdldCIpKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAkaW50ZXJmYWNlID0gU3RyaXBNb2R1bGUoJHBhcmVudHNbMF0pOworICAgICAgICAgICAg
ICAgICAgICB9IGVsc2lmICghJGNsYXNzLT5ub0RQdHJGbGFnKSB7ICMgSW5jbHVkZSAnbW9kdWxl
JyAuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICR0b3BCYXNlQ2xhc3MgPSAkZG9jdW1lbnQt
Pm1vZHVsZSAuICI6OiIgLiAkY2xhc3MtPm5hbWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICBkaWUoIkNvdWxkIE5PVCBmaW5kIHNwZWNpZmllZCBwYXJlbnQgaW50ZXJmYWNlIFwiJGlu
dGVyZmFjZVwiIVxuIik7CisgICAgICAgIH0KICAgICB9Ci0gIH0KIAotICByZXR1cm4gJHRvcEJh
c2VDbGFzczsKKyAgICByZXR1cm4gJHRvcEJhc2VDbGFzczsKIH0KIAogIyBIZWxwZXIgZm9yIGFs
bCBJRExDb2RlR2VuZXJhdG9yKioqLnBtIG1vZHVsZXMKIHN1YiBDbGFzc0hhc1dyaXRlYWJsZUF0
dHJpYnV0ZXMKIHsKLSAgIyBEZXRlcm1pbmUgd2hldGVyIGEgZ2l2ZW4gaW50ZXJmYWNlIGhhcyBh
bnkgd3JpdGVhYmxlIGF0dHJpYnV0ZXMuLi4KLSAgbXkgJG9iamVjdCA9IHNoaWZ0OwotICBteSAk
aW50ZXJmYWNlID0gU3RyaXBNb2R1bGUoc2hpZnQpOwotICBteSAkaGFzV3JpdGVhYmxlQXR0cmli
dXRlcyA9IDA7Ci0gIAotICAjIFN0ZXAgIzE6IEZpbmQgdGhlIElETCBmaWxlIGFzc29jaWF0ZWQg
d2l0aCAnaW50ZXJmYWNlJwotICAkZW5kQ29uZGl0aW9uID0gMDsgJGZvdW5kRmlsZW5hbWUgPSAi
IjsKKyAgICAjIERldGVybWluZSB3aGV0ZXIgYSBnaXZlbiBpbnRlcmZhY2UgaGFzIGFueSB3cml0
ZWFibGUgYXR0cmlidXRlcy4uLgorICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkaW50
ZXJmYWNlID0gU3RyaXBNb2R1bGUoc2hpZnQpOworICAgIG15ICRoYXNXcml0ZWFibGVBdHRyaWJ1
dGVzID0gMDsKIAotICBmb3JlYWNoKEB7JHVzZURpcmVjdG9yaWVzfSkgewotICAgIGlmKCRmb3Vu
ZEZpbGVuYW1lIGVxICIiKSB7Ci0gICAgICAkb2JqZWN0LT5TY2FuRGlyZWN0b3J5KCIkaW50ZXJm
YWNlLmlkbCIsICRfLCAkXywgMCk7CisgICAgIyBTdGVwICMxOiBGaW5kIHRoZSBJREwgZmlsZSBh
c3NvY2lhdGVkIHdpdGggJ2ludGVyZmFjZScKKyAgICAkZW5kQ29uZGl0aW9uID0gMDsKKyAgICAk
Zm91bmRGaWxlbmFtZSA9ICIiOworCisgICAgZm9yZWFjaCAoQHskdXNlRGlyZWN0b3JpZXN9KSB7
CisgICAgICAgICRvYmplY3QtPlNjYW5EaXJlY3RvcnkoIiRpbnRlcmZhY2UuaWRsIiwgJF8sICRf
LCAwKSBpZiAkZm91bmRGaWxlbmFtZSBlcSAiIjsKICAgICB9Ci0gIH0KIAotICAjIFN0ZXAgIzI6
IFBhcnNlIHRoZSBmb3VuZCBJREwgZmlsZSAoaW4gcXVpZXQgbW9kZSkuCi0gIG15ICRwYXJzZXIg
PSBJRExQYXJzZXItPm5ldygxKTsKLSAgbXkgJGRvY3VtZW50ID0gJHBhcnNlci0+UGFyc2UoJGZv
dW5kRmlsZW5hbWUpOworICAgICMgU3RlcCAjMjogUGFyc2UgdGhlIGZvdW5kIElETCBmaWxlIChp
biBxdWlldCBtb2RlKS4KKyAgICBteSAkcGFyc2VyID0gSURMUGFyc2VyLT5uZXcoMSk7CisgICAg
bXkgJGRvY3VtZW50ID0gJHBhcnNlci0+UGFyc2UoJGZvdW5kRmlsZW5hbWUpOwogCi0gICMgU3Rl
cCAjMzogQ2hlY2sgd2hldGVyIHRoZSBwYXJzZWQgSURMIGZpbGUgaGFzIHBhcmVudHMKLSAgZm9y
ZWFjaChAeyRkb2N1bWVudC0+Y2xhc3Nlc30pIHsKLSAgICBteSAkY2xhc3MgPSAkXzsKKyAgICAj
IFN0ZXAgIzM6IENoZWNrIHdoZXRlciB0aGUgcGFyc2VkIElETCBmaWxlIGhhcyBwYXJlbnRzCisg
ICAgZm9yZWFjaCAoQHskZG9jdW1lbnQtPmNsYXNzZXN9KSB7CisgICAgICAgIG15ICRjbGFzcyA9
ICRfOwogCi0gICAgaWYoJGNsYXNzLT5uYW1lIGVxICRpbnRlcmZhY2UpIHsKLSAgICAgIGZvcmVh
Y2goQHskY2xhc3MtPmF0dHJpYnV0ZXN9KSB7Ci0gICAgICAgIGlmKCRfLT50eXBlICF+IC9ecmVh
ZG9ubHlcIGF0dHJpYnV0ZSQvKSB7Ci0gICAgICAgICAgJGhhc1dyaXRlYWJsZUF0dHJpYnV0ZXMg
PSAxOworICAgICAgICBpZiAoJGNsYXNzLT5uYW1lIGVxICRpbnRlcmZhY2UpIHsKKyAgICAgICAg
ICAgIGZvcmVhY2ggKEB7JGNsYXNzLT5hdHRyaWJ1dGVzfSkgeworICAgICAgICAgICAgICAgICRo
YXNXcml0ZWFibGVBdHRyaWJ1dGVzID0gMSBpZiAoJF8tPnR5cGUgbmUgInJlYWRvbmx5IGF0dHJp
YnV0ZSIpOworICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICB9CiAgICAgfQotICB9CiAK
LSAgcmV0dXJuICRoYXNXcml0ZWFibGVBdHRyaWJ1dGVzOworICAgIHJldHVybiAkaGFzV3JpdGVh
YmxlQXR0cmlidXRlczsKIH0KIAogIyBIZWxwZXIgZm9yIGFsbCBJRExDb2RlR2VuZXJhdG9yKioq
LnBtIG1vZHVsZXMKIHN1YiBBbGxDbGFzc2VzV2hpY2hJbmhlcml0RnJvbQogewotICAjIERldGVy
bWluZSB3aGljaCBpbnRlcmZhY2VzIGluaGVyaXQgZnJvbSB0aGUgcGFzc2VkIG9uZS4uLgotICBt
eSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgIyBEZXRlcm1pbmUgd2hpY2ggaW50ZXJmYWNlcyBpbmhl
cml0IGZyb20gdGhlIHBhc3NlZCBvbmUuLi4KKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CiAKLSAg
bXkgJGludGVyZmFjZSA9IHNoaWZ0OwotICAkaW50ZXJmYWNlID1+IHMvKFthLXpBLVowLTldKjo6
KSovLzsgIyBTdHJpcCBuYW1lc3BhY2UocykuCisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0Owor
ICAgICRpbnRlcmZhY2UgPX4gcy8oW2EtekEtWjAtOV0qOjopKi8vOyAjIFN0cmlwIG5hbWVzcGFj
ZShzKS4KIAotICAjIFN0ZXAgIzE6IExvb3AgdGhyb3VnaCBhbGwgaW5jbHVkZWQgZGlyZWN0b3Jp
ZXMgdG8gc2NhbiBmb3IgYWxsIElETCBmaWxlcy4uLgotICBteSBAYWxsSURMRmlsZXMgPSAoKTsK
LSAgZm9yZWFjaChAeyR1c2VEaXJlY3Rvcmllc30pIHsKLSAgICAkZW5kQ29uZGl0aW9uID0gMDsK
LSAgICBAZm91bmRGaWxlbmFtZXMgPSAoKTsKKyAgICAjIFN0ZXAgIzE6IExvb3AgdGhyb3VnaCBh
bGwgaW5jbHVkZWQgZGlyZWN0b3JpZXMgdG8gc2NhbiBmb3IgYWxsIElETCBmaWxlcy4uLgorICAg
IG15IEBhbGxJRExGaWxlcyA9ICgpOworICAgIGZvcmVhY2ggKEB7JHVzZURpcmVjdG9yaWVzfSkg
eworICAgICAgICAkZW5kQ29uZGl0aW9uID0gMDsKKyAgICAgICAgQGZvdW5kRmlsZW5hbWVzID0g
KCk7CiAKLSAgICAkb2JqZWN0LT5TY2FuRGlyZWN0b3J5KCJhbGxpZGxzIiwgJF8sICRfLCAxKTsK
LSAgICBmb3JlYWNoKEBmb3VuZEZpbGVuYW1lcykgewotICAgICAgcHVzaChAYWxsSURMRmlsZXMs
ICRfKTsKLSAgICB9Ci0gIH0KLQotICAjIFN0ZXAgIzI6IExvb3AgdGhyb3VnaCBhbGwgZm91bmQg
SURMIGZpbGVzLi4uCi0gIG15ICVjbGFzc0RhdGFDYWNoZTsKLSAgZm9yZWFjaChAYWxsSURMRmls
ZXMpIHsKLSAgICAjIFN0ZXAgIzM6IFBhcnNlIHRoZSBmb3VuZCBJREwgZmlsZSAoaW4gcXVpZXQg
bW9kZSkuCi0gICAgbXkgJHBhcnNlciA9IElETFBhcnNlci0+bmV3KDEpOwotICAgIG15ICRkb2N1
bWVudCA9ICRwYXJzZXItPlBhcnNlKCRfKTsKKyAgICAgICAgJG9iamVjdC0+U2NhbkRpcmVjdG9y
eSgiYWxsaWRscyIsICRfLCAkXywgMSk7CisgICAgICAgIGZvcmVhY2ggKEBmb3VuZEZpbGVuYW1l
cykgeworICAgICAgICAgICAgcHVzaChAYWxsSURMRmlsZXMsICRfKTsKKyAgICAgICAgfQorICAg
IH0KIAotICAgICMgU3RlcCAjNDogQ2FjaGUgdGhlIHBhcnNlZCBJREwgZGF0YXN0cnVjdHVyZXMu
Ci0gICAgbXkgJGNhY2hlSGFuZGxlID0gJF87ICRjYWNoZUhhbmRsZSA9fiBzLy4qXC8oLiopXC5p
ZGwvLzsKLSAgICAkY2xhc3NEYXRhQ2FjaGV7JDF9ID0gJGRvY3VtZW50OwotICB9Ci0KLSAgbXkg
JWNsYXNzRGF0YUNhY2hlQ29weSA9ICVjbGFzc0RhdGFDYWNoZTsgIyBQcm90ZWN0IQotCi0gICMg
U3RlcCAjNTogTG9vcCB0aHJvdWdoIGFsbCBjYWNoZWQgSURMIGRvY3VtZW50cy4uLgotICBteSBA
Y2xhc3NMaXN0ID0gKCk7Ci0gIHdoaWxlKG15KCRuYW1lLCAkZG9jdW1lbnQpID0gZWFjaCAlY2xh
c3NEYXRhQ2FjaGUpIHsKLSAgICAkZW5kQ29uZGl0aW9uID0gMDsKKyAgICAjIFN0ZXAgIzI6IExv
b3AgdGhyb3VnaCBhbGwgZm91bmQgSURMIGZpbGVzLi4uCisgICAgbXkgJWNsYXNzRGF0YUNhY2hl
OworICAgIGZvcmVhY2ggKEBhbGxJRExGaWxlcykgeworICAgICAgICAjIFN0ZXAgIzM6IFBhcnNl
IHRoZSBmb3VuZCBJREwgZmlsZSAoaW4gcXVpZXQgbW9kZSkuCisgICAgICAgIG15ICRwYXJzZXIg
PSBJRExQYXJzZXItPm5ldygxKTsKKyAgICAgICAgbXkgJGRvY3VtZW50ID0gJHBhcnNlci0+UGFy
c2UoJF8pOworCisgICAgICAgICMgU3RlcCAjNDogQ2FjaGUgdGhlIHBhcnNlZCBJREwgZGF0YXN0
cnVjdHVyZXMuCisgICAgICAgIG15ICRjYWNoZUhhbmRsZSA9ICRfOyAkY2FjaGVIYW5kbGUgPX4g
cy8uKlwvKC4qKVwuaWRsLy87CisgICAgICAgICRjbGFzc0RhdGFDYWNoZXskMX0gPSAkZG9jdW1l
bnQ7CisgICAgfQorCisgICAgbXkgJWNsYXNzRGF0YUNhY2hlQ29weSA9ICVjbGFzc0RhdGFDYWNo
ZTsgIyBQcm90ZWN0IQorCisgICAgIyBTdGVwICM1OiBMb29wIHRocm91Z2ggYWxsIGNhY2hlZCBJ
REwgZG9jdW1lbnRzLi4uCisgICAgbXkgQGNsYXNzTGlzdCA9ICgpOworICAgIHdoaWxlIChteSgk
bmFtZSwgJGRvY3VtZW50KSA9IGVhY2ggJWNsYXNzRGF0YUNhY2hlKSB7CisgICAgICAgICRlbmRD
b25kaXRpb24gPSAwOwogCi0gICAgIyBTdGVwICM2OiBDaGVjayB3aGV0ZXIgdGhlIHBhcnNlZCBJ
REwgZmlsZSBoYXMgcGFyZW50cy4uLgotICAgICRvYmplY3QtPlJlY3Vyc2l2ZUluaGVyaXRhbmNl
SGVscGVyKCRkb2N1bWVudCwgJGludGVyZmFjZSwgXEBjbGFzc0xpc3QsIFwlY2xhc3NEYXRhQ2Fj
aGVDb3B5KTsKLSAgfQorICAgICAgICAjIFN0ZXAgIzY6IENoZWNrIHdoZXRlciB0aGUgcGFyc2Vk
IElETCBmaWxlIGhhcyBwYXJlbnRzLi4uCisgICAgICAgICRvYmplY3QtPlJlY3Vyc2l2ZUluaGVy
aXRhbmNlSGVscGVyKCRkb2N1bWVudCwgJGludGVyZmFjZSwgXEBjbGFzc0xpc3QsIFwlY2xhc3NE
YXRhQ2FjaGVDb3B5KTsKKyAgICB9CiAKLSAgIyBTdGVwICM3OiBSZXR1cm4gbGlzdCBvZiBhbGwg
Y2xhc3NlcyB3aGljaCBpbmhlcml0IGZyb20gbWUhCi0gIHJldHVybiBcQGNsYXNzTGlzdDsKKyAg
ICAjIFN0ZXAgIzc6IFJldHVybiBsaXN0IG9mIGFsbCBjbGFzc2VzIHdoaWNoIGluaGVyaXQgZnJv
bSBtZSEKKyAgICByZXR1cm4gXEBjbGFzc0xpc3Q7CiB9CiAKICMgSGVscGVyIGZvciBhbGwgSURM
Q29kZUdlbmVyYXRvcioqKi5wbSBtb2R1bGVzCiBzdWIgQWxsQ2xhc3NlcwogewotICAjIERldGVy
bWluZXMgYWxsIGludGVyZmFjZXMgd2l0aGluIGEgcHJvamVjdC4uLgotICBteSAkb2JqZWN0ID0g
c2hpZnQ7Ci0KLSAgIyBTdGVwICMxOiBMb29wIHRocm91Z2ggYWxsIGluY2x1ZGVkIGRpcmVjdG9y
aWVzIHRvIHNjYW4gZm9yIGFsbCBJREwgZmlsZXMuLi4KLSAgbXkgQGFsbElETEZpbGVzID0gKCk7
Ci0gIGZvcmVhY2goQHskdXNlRGlyZWN0b3JpZXN9KSB7Ci0gICAgJGVuZENvbmRpdGlvbiA9IDA7
Ci0gICAgQGZvdW5kRmlsZW5hbWVzID0gKCk7Ci0KLSAgICAkb2JqZWN0LT5TY2FuRGlyZWN0b3J5
KCJhbGxpZGxzIiwgJF8sICRfLCAxKTsKLSAgICBmb3JlYWNoKEBmb3VuZEZpbGVuYW1lcykgewot
ICAgICAgcHVzaChAYWxsSURMRmlsZXMsICRfKTsKLSAgICB9Ci0gIH0KLQotICAjIFN0ZXAgIzI6
IExvb3AgdGhyb3VnaCBhbGwgZm91bmQgSURMIGZpbGVzLi4uCi0gIG15IEBjbGFzc0xpc3QgPSAo
KTsKLSAgZm9yZWFjaChAYWxsSURMRmlsZXMpIHsKLSAgICAjIFN0ZXAgIzM6IFBhcnNlIHRoZSBm
b3VuZCBJREwgZmlsZSAoaW4gcXVpZXQgbW9kZSkuCi0gICAgbXkgJHBhcnNlciA9IElETFBhcnNl
ci0+bmV3KDEpOwotICAgIG15ICRkb2N1bWVudCA9ICRwYXJzZXItPlBhcnNlKCRfKTsKLQotICAg
ICMgU3RlcCAjNDogQ2hlY2sgaWYgY2xhc3MgaXMgYSBiYXNlY2xhc3MuLi4KLSAgICBmb3JlYWNo
KEB7JGRvY3VtZW50LT5jbGFzc2VzfSkgewotICAgICAgbXkgJGNsYXNzID0gJF87CisgICAgIyBE
ZXRlcm1pbmVzIGFsbCBpbnRlcmZhY2VzIHdpdGhpbiBhIHByb2plY3QuLi4KKyAgICBteSAkb2Jq
ZWN0ID0gc2hpZnQ7CiAKLSAgICAgIG15ICRpZGVudGlmaWVyID0gJGNsYXNzLT5uYW1lOwotICAg
ICAgbXkgJG5hbWVzcGFjZSA9ICRtb2R1bGVOYW1lc3BhY2VIYXNoeyRkb2N1bWVudC0+bW9kdWxl
fTsKLSAgICAgICRpZGVudGlmaWVyID0gJG5hbWVzcGFjZSAuICI6OiIgLiAkaWRlbnRpZmllciBp
ZigkbmFtZXNwYWNlIG5lICIiKTsKKyAgICAjIFN0ZXAgIzE6IExvb3AgdGhyb3VnaCBhbGwgaW5j
bHVkZWQgZGlyZWN0b3JpZXMgdG8gc2NhbiBmb3IgYWxsIElETCBmaWxlcy4uLgorICAgIG15IEBh
bGxJRExGaWxlcyA9ICgpOworICAgIGZvcmVhY2ggKEB7JHVzZURpcmVjdG9yaWVzfSkgeworICAg
ICAgICAkZW5kQ29uZGl0aW9uID0gMDsKKyAgICAgICAgQGZvdW5kRmlsZW5hbWVzID0gKCk7CiAK
LSAgICAgIG15IEBhcnJheSA9IGdyZXAgeyAvXiRpZGVudGlmaWVyJC8gfSBAJGNsYXNzTGlzdDsK
KyAgICAgICAgJG9iamVjdC0+U2NhbkRpcmVjdG9yeSgiYWxsaWRscyIsICRfLCAkXywgMSk7Cisg
ICAgICAgIGZvcmVhY2ggKEBmb3VuZEZpbGVuYW1lcykgeworICAgICAgICAgICAgcHVzaChAYWxs
SURMRmlsZXMsICRfKTsKKyAgICAgICAgfQorICAgIH0KIAotICAgICAgbXkgJGFycmF5U2l6ZSA9
IEBhcnJheTsKLSAgICAgIGlmKCRhcnJheVNpemUgZXEgMCkgewotICAgICAgICBwdXNoKEBjbGFz
c0xpc3QsICRpZGVudGlmaWVyKTsKLSAgICAgIH0KKyAgICAjIFN0ZXAgIzI6IExvb3AgdGhyb3Vn
aCBhbGwgZm91bmQgSURMIGZpbGVzLi4uCisgICAgbXkgQGNsYXNzTGlzdCA9ICgpOworICAgIGZv
cmVhY2goQGFsbElETEZpbGVzKSB7CisgICAgICAgICMgU3RlcCAjMzogUGFyc2UgdGhlIGZvdW5k
IElETCBmaWxlIChpbiBxdWlldCBtb2RlKS4KKyAgICAgICAgbXkgJHBhcnNlciA9IElETFBhcnNl
ci0+bmV3KDEpOworICAgICAgICBteSAkZG9jdW1lbnQgPSAkcGFyc2VyLT5QYXJzZSgkXyk7CisK
KyAgICAgICAgIyBTdGVwICM0OiBDaGVjayBpZiBjbGFzcyBpcyBhIGJhc2VjbGFzcy4uLgorICAg
ICAgICBmb3JlYWNoIChAeyRkb2N1bWVudC0+Y2xhc3Nlc30pIHsKKyAgICAgICAgICAgIG15ICRj
bGFzcyA9ICRfOworCisgICAgICAgICAgICBteSAkaWRlbnRpZmllciA9ICRjbGFzcy0+bmFtZTsK
KyAgICAgICAgICAgIG15ICRuYW1lc3BhY2UgPSAkbW9kdWxlTmFtZXNwYWNlSGFzaHskZG9jdW1l
bnQtPm1vZHVsZX07CisgICAgICAgICAgICAkaWRlbnRpZmllciA9ICRuYW1lc3BhY2UgLiAiOjoi
IC4gJGlkZW50aWZpZXIgaWYgJG5hbWVzcGFjZSBuZSAiIjsKKworICAgICAgICAgICAgbXkgQGFy
cmF5ID0gZ3JlcCB7IC9eJGlkZW50aWZpZXIkLyB9IEAkY2xhc3NMaXN0OworCisgICAgICAgICAg
ICBteSAkYXJyYXlTaXplID0gQGFycmF5OworICAgICAgICAgICAgaWYgKCRhcnJheVNpemUgZXEg
MCkgeworICAgICAgICAgICAgICAgIHB1c2goQGNsYXNzTGlzdCwgJGlkZW50aWZpZXIpOworICAg
ICAgICAgICAgfQorICAgICAgICB9CiAgICAgfQotICB9CiAKLSAgIyBTdGVwICM3OiBSZXR1cm4g
bGlzdCBvZiBhbGwgYmFzZSBjbGFzc2VzIQotICByZXR1cm4gXEBjbGFzc0xpc3Q7CisgICAgIyBT
dGVwICM3OiBSZXR1cm4gbGlzdCBvZiBhbGwgYmFzZSBjbGFzc2VzIQorICAgIHJldHVybiBcQGNs
YXNzTGlzdDsKIH0KIAogIyBJbnRlcm5hbCBoZWxwZXIgZm9yICdBbGxDbGFzc2VzV2hpY2hJbmhl
cml0RnJvbScKIHN1YiBSZWN1cnNpdmVJbmhlcml0YW5jZUhlbHBlcgogewotICBteSAkb2JqZWN0
ID0gc2hpZnQ7Ci0KLSAgbXkgJGRvY3VtZW50ID0gc2hpZnQ7Ci0gIG15ICRpbnRlcmZhY2UgPSBz
aGlmdDsKLSAgbXkgJGNsYXNzTGlzdCA9IHNoaWZ0OwotICBteSAkY2xhc3NEYXRhQ2FjaGUgPSBz
aGlmdDsKLQotICBpZigkZW5kQ29uZGl0aW9uIGVxIDEpIHsKLSAgICByZXR1cm4gMTsKLSAgfQor
ICAgIG15ICRvYmplY3QgPSBzaGlmdDsKIAotICBmb3JlYWNoKEB7JGRvY3VtZW50LT5jbGFzc2Vz
fSkgewotICAgIG15ICRjbGFzcyA9ICRfOworICAgIG15ICRkb2N1bWVudCA9IHNoaWZ0OworICAg
IG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKKyAgICBteSAkY2xhc3NMaXN0ID0gc2hpZnQ7CisgICAg
bXkgJGNsYXNzRGF0YUNhY2hlID0gc2hpZnQ7CiAKLSAgICBmb3JlYWNoKEB7JGNsYXNzLT5wYXJl
bnRzfSkgewotICAgICAgbXkgJGNhY2hlSGFuZGxlID0gU3RyaXBNb2R1bGUoJF8pOworICAgIHJl
dHVybiAxIGlmICRlbmRDb25kaXRpb24gZXEgMTsKIAotICAgICAgaWYoJGNhY2hlSGFuZGxlIGVx
ICRpbnRlcmZhY2UpIHsKLSAgICAgICAgbXkgJGlkZW50aWZpZXIgPSAkZG9jdW1lbnQtPm1vZHVs
ZSAuICI6OiIgLiAkY2xhc3MtPm5hbWU7Ci0gICAgICAgIG15IEBhcnJheSA9IGdyZXAgeyAvXiRp
ZGVudGlmaWVyJC8gfSBAJGNsYXNzTGlzdDsgbXkgJGFycmF5U2l6ZSA9IEBhcnJheTsKLSAgICAg
ICAgcHVzaChAJGNsYXNzTGlzdCwgJGlkZW50aWZpZXIpIGlmKCRhcnJheVNpemUgZXEgMCk7Cisg
ICAgZm9yZWFjaCAoQHskZG9jdW1lbnQtPmNsYXNzZXN9KSB7CisgICAgICAgIG15ICRjbGFzcyA9
ICRfOwogCi0gICAgICAgICRlbmRDb25kaXRpb24gPSAxOwotICAgICAgICByZXR1cm4gJGVuZENv
bmRpdGlvbjsKLSAgICAgIH0gZWxzZSB7IAotICAgICAgICBteSAlY2FjaGUgPSAleyRjbGFzc0Rh
dGFDYWNoZX07CisgICAgICAgIGZvcmVhY2ggKEB7JGNsYXNzLT5wYXJlbnRzfSkgeworICAgICAg
ICAgICAgbXkgJGNhY2hlSGFuZGxlID0gU3RyaXBNb2R1bGUoJF8pOwogCi0gICAgICAgIG15ICRj
aGVja0RvY3VtZW50ID0gJGNhY2hleyRjYWNoZUhhbmRsZX07Ci0gICAgICAgICRlbmRDb25kaXRp
b24gPSAkb2JqZWN0LT5SZWN1cnNpdmVJbmhlcml0YW5jZUhlbHBlcigkY2hlY2tEb2N1bWVudCwg
JGludGVyZmFjZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY2xhc3NMaXN0
LCAkY2xhc3NEYXRhQ2FjaGUpOwotICAgICAgICBpZigkZW5kQ29uZGl0aW9uIGVxIDEpIHsKLSAg
ICAgICAgICBteSAkaWRlbnRpZmllciA9ICRkb2N1bWVudC0+bW9kdWxlIC4gIjo6IiAuICRjbGFz
cy0+bmFtZTsKLSAgICAgICAgICBteSBAYXJyYXkgPSBncmVwIHsgL14kaWRlbnRpZmllciQvIH0g
QCRjbGFzc0xpc3Q7IG15ICRhcnJheVNpemUgPSBAYXJyYXk7Ci0gICAgICAgICAgcHVzaChAJGNs
YXNzTGlzdCwgJGlkZW50aWZpZXIpIGlmKCRhcnJheVNpemUgZXEgMCk7CisgICAgICAgICAgICBp
ZiAoJGNhY2hlSGFuZGxlIGVxICRpbnRlcmZhY2UpIHsKKyAgICAgICAgICAgICAgICBteSAkaWRl
bnRpZmllciA9ICRkb2N1bWVudC0+bW9kdWxlIC4gIjo6IiAuICRjbGFzcy0+bmFtZTsKKyAgICAg
ICAgICAgICAgICBteSBAYXJyYXkgPSBncmVwIHsgL14kaWRlbnRpZmllciQvIH0gQCRjbGFzc0xp
c3Q7IG15ICRhcnJheVNpemUgPSBAYXJyYXk7CisgICAgICAgICAgICAgICAgcHVzaChAJGNsYXNz
TGlzdCwgJGlkZW50aWZpZXIpIGlmICRhcnJheVNpemUgZXEgMDsKKworICAgICAgICAgICAgICAg
ICRlbmRDb25kaXRpb24gPSAxOworICAgICAgICAgICAgICAgIHJldHVybiAkZW5kQ29uZGl0aW9u
OworICAgICAgICAgICAgfSBlbHNlIHsgCisgICAgICAgICAgICAgICAgbXkgJWNhY2hlID0gJXsk
Y2xhc3NEYXRhQ2FjaGV9OworCisgICAgICAgICAgICAgICAgbXkgJGNoZWNrRG9jdW1lbnQgPSAk
Y2FjaGV7JGNhY2hlSGFuZGxlfTsKKyAgICAgICAgICAgICAgICAkZW5kQ29uZGl0aW9uID0gJG9i
amVjdC0+UmVjdXJzaXZlSW5oZXJpdGFuY2VIZWxwZXIoJGNoZWNrRG9jdW1lbnQsICRpbnRlcmZh
Y2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICRjbGFzc0xpc3QsICRjbGFzc0RhdGFDYWNoZSk7CisgICAgICAgICAg
ICAgICAgaWYgKCRlbmRDb25kaXRpb24gZXEgMSkgeworICAgICAgICAgICAgICAgICAgICBteSAk
aWRlbnRpZmllciA9ICRkb2N1bWVudC0+bW9kdWxlIC4gIjo6IiAuICRjbGFzcy0+bmFtZTsKKyAg
ICAgICAgICAgICAgICAgICAgbXkgQGFycmF5ID0gZ3JlcCB7IC9eJGlkZW50aWZpZXIkLyB9IEAk
Y2xhc3NMaXN0OyBteSAkYXJyYXlTaXplID0gQGFycmF5OworICAgICAgICAgICAgICAgICAgICBw
dXNoKEAkY2xhc3NMaXN0LCAkaWRlbnRpZmllcikgaWYgJGFycmF5U2l6ZSBlcSAwOwogCi0gICAg
ICAgICAgcmV0dXJuICRlbmRDb25kaXRpb247CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAk
ZW5kQ29uZGl0aW9uOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KICAgICAgICAg
fQotICAgICAgfQogICAgIH0KLSAgfQogCi0gIHJldHVybiAkZW5kQ29uZGl0aW9uOworICAgIHJl
dHVybiAkZW5kQ29uZGl0aW9uOwogfQogCiAjIEhlbHBlciBmb3IgYWxsIENvZGVHZW5lcmF0b3Iq
KioucG0gbW9kdWxlcwpAQCAtNDQ2LDczICs0MzQsNjMgQEAgc3ViIFJlbW92ZUV4Y2x1ZGVkQXR0
cmlidXRlc0FuZEZ1bmN0aW9ucwogIyBIZWxwZXIgZm9yIGFsbCBDb2RlR2VuZXJhdG9yKioqLnBt
IG1vZHVsZXMKIHN1YiBJc1ByaW1pdGl2ZVR5cGUKIHsKLSAgbXkgJG9iamVjdCA9IHNoaWZ0Owot
Ci0gIG15ICR0eXBlID0gc2hpZnQ7Ci0KLSAgaWYoKCR0eXBlID1+IC9eaW50JC8pIG9yICgkdHlw
ZSA9fiAvXnNob3J0JC8pIG9yICgkdHlwZSA9fiAvXmxvbmckLykgb3IKLSAgICAgKCR0eXBlID1+
IC9edW5zaWduZWQgaW50JC8pIG9yICgkdHlwZSA9fiAvXnVuc2lnbmVkIHNob3J0JC8pIG9yICgk
dHlwZSA9fiAvXnVuc2lnbmVkIGxvbmckLykgb3IKLSAgICAgKCR0eXBlID1+IC9eZmxvYXQkLykg
b3IgKCR0eXBlID1+IC9eZG91YmxlJC8pIG9yICgkdHlwZSA9fiAvXmJvb2xlYW4kLykgb3IgKCR0
eXBlID1+IC9edm9pZCQvKSkgewotICAgIHJldHVybiAxOwotICB9CisgICAgbXkgJG9iamVjdCA9
IHNoaWZ0OworICAgIG15ICR0eXBlID0gc2hpZnQ7CiAKLSAgcmV0dXJuIDA7CisgICAgcmV0dXJu
IDEgaWYgJHR5cGUgZXEgImludCIgb3IgJHR5cGUgZXEgInNob3J0IiBvciAkdHlwZSBlcSAibG9u
ZyIgCisgICAgICAgICAgICAgICAgb3IgJHR5cGUgZXEgInVuc2lnbmVkIGludCIgb3IgJHR5cGUg
ZXEgInVuc2lnbmVkIHNob3J0IgorICAgICAgICAgICAgICAgIG9yICR0eXBlIGVxICJ1bnNpZ25l
ZCBsb25nIiBvciAkdHlwZSBlcSAiZmxvYXQiIG9yICR0eXBlIGVxICJkb3VibGUiCisgICAgICAg
ICAgICAgICAgb3IgJHR5cGUgZXEgImJvb2xlYW4iIG9yICR0eXBlIGVxICJ2b2lkIjsKKyAgICBy
ZXR1cm4gMDsKIH0KIAogIyBJbnRlcm5hbCBIZWxwZXIKIHN1YiBTY2FuRGlyZWN0b3J5CiB7Ci0g
IG15ICRvYmplY3QgPSBzaGlmdDsKLQotICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7Ci0gIG15ICRk
aXJlY3RvcnkgPSBzaGlmdDsKLSAgbXkgJHVzZURpcmVjdG9yeSA9IHNoaWZ0OwotICBteSAkcmVw
b3J0QWxsRmlsZXMgPSBzaGlmdDsKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CiAKLSAgaWYoKCRl
bmRDb25kaXRpb24gZXEgMSkgYW5kICgkcmVwb3J0QWxsRmlsZXMgZXEgMCkpIHsKLSAgICByZXR1
cm47Ci0gIH0KKyAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CisgICAgbXkgJGRpcmVjdG9yeSA9
IHNoaWZ0OworICAgIG15ICR1c2VEaXJlY3RvcnkgPSBzaGlmdDsKKyAgICBteSAkcmVwb3J0QWxs
RmlsZXMgPSBzaGlmdDsKIAotICBjaGRpcigkZGlyZWN0b3J5KSBvciBkaWUgIltFUlJPUl0gQ2Fu
J3QgZW50ZXIgZGlyZWN0b3J5ICRkaXJlY3Rvcnk6IFwiJCFcIlxuIjsKLSAgb3BlbmRpcihESVIs
ICIuIikgb3IgZGllICJbRVJST1JdIENhbid0IG9wZW4gZGlyZWN0b3J5ICRkaXJlY3Rvcnk6IFwi
JCFcIlxuIjsKKyAgICByZXR1cm4gaWYgKCRlbmRDb25kaXRpb24gZXEgMSkgYW5kICgkcmVwb3J0
QWxsRmlsZXMgZXEgMCk7CiAKLSAgbXkgQG5hbWVzID0gcmVhZGRpcihESVIpIG9yIGRpZSAiW0VS
Uk9SXSBDYW50J3QgcmVhZCBkaXJlY3RvcnkgJGRpcmVjdG9yeTogXCIkIVwiXG4iOwotICBjbG9z
ZWRpcihESVIpOworICAgIGNoZGlyKCRkaXJlY3RvcnkpIG9yIGRpZSAiW0VSUk9SXSBDYW4ndCBl
bnRlciBkaXJlY3RvcnkgJGRpcmVjdG9yeTogXCIkIVwiXG4iOworICAgIG9wZW5kaXIoRElSLCAi
LiIpIG9yIGRpZSAiW0VSUk9SXSBDYW4ndCBvcGVuIGRpcmVjdG9yeSAkZGlyZWN0b3J5OiBcIiQh
XCJcbiI7CiAKLSAgZm9yZWFjaChAbmFtZXMpIHsKLSAgICBteSAkbmFtZSA9ICRfOworICAgIG15
IEBuYW1lcyA9IHJlYWRkaXIoRElSKSBvciBkaWUgIltFUlJPUl0gQ2FudCd0IHJlYWQgZGlyZWN0
b3J5ICRkaXJlY3Rvcnk6IFwiJCFcIlxuIjsKKyAgICBjbG9zZWRpcihESVIpOwogCi0gICAgIyBT
a2lwIGlmIHdlIGFscmVhZHkgZm91bmQgdGhlIHJpZ2h0IGZpbGUgb3IKLSAgICAjIGlmIHdlIGVu
Y291bnRlciAnZXhvdGljJyBzdHVmZiAoaWUuICcuJywgJy4uJywgJy5zdm4nKQotICAgIGlmKCgk
ZW5kQ29uZGl0aW9uIGVxIDEpIG9yICgkbmFtZSA9fiAvXlwuLykpIHsKLSAgICAgIG5leHQ7Ci0g
ICAgfQorICAgIGZvcmVhY2ggKEBuYW1lcykgeworICAgICAgICBteSAkbmFtZSA9ICRfOwogCi0g
ICAgIyBSZWN1cmlzdmVseSBlbnRlciBkaXJlY3RvcnkuLi4KLSAgICBpZigtZCAkbmFtZSkgewot
ICAgICAgJG9iamVjdC0+U2NhbkRpcmVjdG9yeSgkaW50ZXJmYWNlLCAkbmFtZSwgJHVzZURpcmVj
dG9yeSwgJHJlcG9ydEFsbEZpbGVzKTsKLSAgICAgIG5leHQ7Ci0gICAgfQorICAgICAgICAjIFNr
aXAgaWYgd2UgYWxyZWFkeSBmb3VuZCB0aGUgcmlnaHQgZmlsZSBvcgorICAgICAgICAjIGlmIHdl
IGVuY291bnRlciAnZXhvdGljJyBzdHVmZiAoaWUuICcuJywgJy4uJywgJy5zdm4nKQorICAgICAg
ICBuZXh0IGlmICgkZW5kQ29uZGl0aW9uIGVxIDEpIG9yICgkbmFtZSA9fiAvXlwuLyk7CiAKLSAg
ICAjIENoZWNrIHdoZXRlciB3ZSBmb3VuZCB0aGUgZGVzaXJlZCBmaWxlLi4uCi0gICAgbXkgJGNv
bmRpdGlvbiA9ICgkbmFtZSBlcSAkaW50ZXJmYWNlKTsKLSAgICBpZigoJGludGVyZmFjZSBlcSAi
YWxsaWRscyIpIGFuZAotICAgICAgICgkbmFtZSA9fiAvXC5pZGwkLykpIHsKLSAgICAgICRjb25k
aXRpb24gPSAxOwotICAgIH0KKyAgICAgICAgIyBSZWN1cmlzdmVseSBlbnRlciBkaXJlY3Rvcnku
Li4KKyAgICAgICAgaWYgKC1kICRuYW1lKSB7CisgICAgICAgICAgICAkb2JqZWN0LT5TY2FuRGly
ZWN0b3J5KCRpbnRlcmZhY2UsICRuYW1lLCAkdXNlRGlyZWN0b3J5LCAkcmVwb3J0QWxsRmlsZXMp
OworICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgfQogCi0gICAgaWYoJGNvbmRpdGlvbikgewot
ICAgICAgJGZvdW5kRmlsZW5hbWUgPSAiJGRpcmVjdG9yeS8kbmFtZSI7CisgICAgICAgICMgQ2hl
Y2sgd2hldGVyIHdlIGZvdW5kIHRoZSBkZXNpcmVkIGZpbGUuLi4KKyAgICAgICAgbXkgJGNvbmRp
dGlvbiA9ICgkbmFtZSBlcSAkaW50ZXJmYWNlKTsKKyAgICAgICAgJGNvbmRpdGlvbiA9IDEgaWYg
KCRpbnRlcmZhY2UgZXEgImFsbGlkbHMiKSBhbmQgKCRuYW1lID1+IC9cLmlkbCQvKTsKKworICAg
ICAgICBpZiAoJGNvbmRpdGlvbikgeworICAgICAgICAgICAgJGZvdW5kRmlsZW5hbWUgPSAiJGRp
cmVjdG9yeS8kbmFtZSI7CisKKyAgICAgICAgICAgIGlmICgkcmVwb3J0QWxsRmlsZXMgZXEgMCkg
eworICAgICAgICAgICAgICAgICRlbmRDb25kaXRpb24gPSAxOworICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICAgICBwdXNoKEBmb3VuZEZpbGVuYW1lcywgJGZvdW5kRmlsZW5hbWUp
OworICAgICAgICAgICAgfQorICAgICAgICB9CiAKLSAgICAgIGlmKCRyZXBvcnRBbGxGaWxlcyBl
cSAwKSB7Ci0gICAgICAgICRlbmRDb25kaXRpb24gPSAxOwotICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgcHVzaChAZm91bmRGaWxlbmFtZXMsICRmb3VuZEZpbGVuYW1lKTsKLSAgICAgIH0KKyAgICAg
ICAgY2hkaXIoJHVzZURpcmVjdG9yeSkgb3IgZGllICJbRVJST1JdIENhbid0IGNoYW5nZSBkaXJl
Y3RvcnkgdG8gJHVzZURpcmVjdG9yeTogXCIkIVwiXG4iOwogICAgIH0KLQotICAgIGNoZGlyKCR1
c2VEaXJlY3RvcnkpIG9yIGRpZSAiW0VSUk9SXSBDYW4ndCBjaGFuZ2UgZGlyZWN0b3J5IHRvICR1
c2VEaXJlY3Rvcnk6IFwiJCFcIlxuIjsKLSAgfQogfQogCiAxOwpJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQkocmV2aXNpb24gMTYyNTkpCisr
KyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0JKHdvcmtpbmcg
Y29weSkKQEAgLTMzLDYgKzMzLDcgQEAgbXkgJWhlYWRlckZvcndhcmREZWNsYXJhdGlvbnNGb3JQ
cm90b2NvbAogbXkgJXByaXZhdGVIZWFkZXJGb3J3YXJkRGVjbGFyYXRpb25zRm9yUHJvdG9jb2xz
ID0gKCk7CiBteSAlcHVibGljSW50ZXJmYWNlcyA9ICgpOwogbXkgJG5ld1B1YmxpY0NsYXNzID0g
MDsKK215ICRpc1Byb3RvY29sID0gMDsKIG15ICRidWlsZGluZ0ZvclRpZ2VyT3JFYXJsaWVyID0g
MSBpZiAkRU5WeyJNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQifSBhbmQgJEVOVnsiTUFDT1NYX0RF
UExPWU1FTlRfVEFSR0VUIn0gPD0gMTAuNDsKIG15ICRidWlsZGluZ0Zvckxlb3BhcmRPckxhdGVy
ID0gMSBpZiAkRU5WeyJNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQifSBhbmQgJEVOVnsiTUFDT1NY
X0RFUExPWU1FTlRfVEFSR0VUIn0gPj0gMTAuNTsKIApAQCAtMTYzLDExICsxNjQsMTIgQEAgc3Vi
IEdlbmVyYXRlSW50ZXJmYWNlCiAgICAgbXkgJG5hbWUgPSAkZGF0YU5vZGUtPm5hbWU7CiAgICAg
bXkgJGNsYXNzTmFtZSA9IEdldENsYXNzTmFtZSgkbmFtZSk7CiAgICAgbXkgJHBhcmVudENsYXNz
TmFtZSA9ICJET00iIC4gR2V0UGFyZW50SW1wbENsYXNzTmFtZSgkZGF0YU5vZGUpOworICAgICRp
c1Byb3RvY29sID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntPYmpDUHJvdG9jb2x9
OwogCiAgICAgUmVhZFB1YmxpY0ludGVyZmFjZXMoJGNsYXNzTmFtZSwgJHBhcmVudENsYXNzTmFt
ZSwgJGRlZmluZXMpOwogCiAgICAgIyBTdGFydCBhY3R1YWwgZ2VuZXJhdGlvbi4uCi0gICAgJG9i
amVjdC0+R2VuZXJhdGVJbXBsZW1lbnRhdGlvbigkZGF0YU5vZGUpOworICAgICRvYmplY3QtPkdl
bmVyYXRlSW1wbGVtZW50YXRpb24oJGRhdGFOb2RlKSB1bmxlc3MgJGlzUHJvdG9jb2w7CiAgICAg
JG9iamVjdC0+R2VuZXJhdGVIZWFkZXIoJGRhdGFOb2RlKTsKIAogICAgICMgV3JpdGUgY2hhbmdl
cy4KQEAgLTE5NCwyNiArMTk2LDE3IEBAIHN1YiBHZXRDbGFzc05hbWUKICAgICBteSAkbmFtZSA9
ICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZShzaGlmdCk7CiAKICAgICAjIHNwZWNpYWwgY2Fz
ZXMKLSAgICBpZiAoJG5hbWUgZXEgImJvb2xlYW4iKSB7Ci0gICAgICAgIHJldHVybiAiQk9PTCI7
Ci0gICAgfSBlbHNpZiAoJG5hbWUgZXEgInVuc2lnbmVkIGxvbmciKSB7Ci0gICAgICAgIHJldHVy
biAidW5zaWduZWQiOwotICAgIH0gZWxzaWYgKCRuYW1lIGVxICJsb25nIikgewotICAgICAgICBy
ZXR1cm4gImludCI7Ci0gICAgfSBlbHNpZiAoJG5hbWUgZXEgIkRPTVN0cmluZyIpIHsKLSAgICAg
ICAgcmV0dXJuICJOU1N0cmluZyI7Ci0gICAgfSBlbHNpZiAoJG5hbWUgZXEgIlVSTCIpIHsKLSAg
ICAgICAgcmV0dXJuICJOU1VSTCI7Ci0gICAgfSBlbHNpZiAoJG5hbWUgZXEgIkRPTVdpbmRvdyIp
IHsKLSAgICAgICAgcmV0dXJuICJET01BYnN0cmFjdFZpZXciOwotICAgIH0gZWxzaWYgKCRuYW1l
IGVxICJYUGF0aE5TUmVzb2x2ZXIiKSB7Ci0gICAgICAgIHJldHVybiAiaWQgPERPTVhQYXRoTlNS
ZXNvbHZlcj4iOwotICAgIH0gZWxzaWYgKCRuYW1lIGVxICJ1bnNpZ25lZCBzaG9ydCIgCi0gICAg
ICAgICAgICAgb3IgJG5hbWUgZXEgImZsb2F0IgotICAgICAgICAgICAgIG9yICRuYW1lIGVxICJ2
b2lkIgotICAgICAgICAgICAgIG9yICRuYW1lIGVxICJET01JbXBsZW1lbnRhdGlvbiIpIHsKLSAg
ICAgICAgcmV0dXJuICRuYW1lOwotICAgIH0KKyAgICByZXR1cm4gIk5TU3RyaW5nIiAgICAgICAg
ICAgICAgICAgICBpZiBJc1N0cmluZ1R5cGUoJG5hbWUpOworICAgIHJldHVybiAiQk9PTCIgICAg
ICAgICAgICAgICAgICAgICAgIGlmICRuYW1lIGVxICJib29sZWFuIjsKKyAgICByZXR1cm4gInVu
c2lnbmVkIiAgICAgICAgICAgICAgICAgICBpZiAkbmFtZSBlcSAidW5zaWduZWQgbG9uZyI7Cisg
ICAgcmV0dXJuICJpbnQiICAgICAgICAgICAgICAgICAgICAgICAgaWYgJG5hbWUgZXEgImxvbmci
OworICAgIHJldHVybiAiTlNVUkwiICAgICAgICAgICAgICAgICAgICAgIGlmICRuYW1lIGVxICJV
UkwiOworICAgIHJldHVybiAiRE9NQWJzdHJhY3RWaWV3IiAgICAgICAgICAgIGlmICRuYW1lIGVx
ICJET01XaW5kb3ciOworICAgIHJldHVybiAkbmFtZSAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICRuYW1lIGVxICJ1bnNpZ25lZCBzaG9ydCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3IgJG5hbWUgZXEgImZsb2F0IiAKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3IgJG5hbWUgZXEgInZvaWQiCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yICRuYW1lIGVxICJET01JbXBsZW1lbnRh
dGlvbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgJG5h
bWUgZXEgIkRPTVRpbWVTdGFtcCI7CiAKICAgICAjIERlZmF1bHQsIGFzc3VtZSBPYmplY3RpdmUt
QyB0eXBlIGhhcyB0aGUgc2FtZSB0eXBlIG5hbWUgYXMKICAgICAjIGlkbCB0eXBlIHByZWZpeGVk
IHdpdGggIkRPTSIuCkBAIC0yNTMsNDQgKzI0Niw0OCBAQCBzdWIgR2V0UGFyZW50SW1wbENsYXNz
TmFtZQogICAgIHJldHVybiAkcGFyZW50OwogfQogCi1zdWIgR2V0T2JqQ1R5cGUKK3N1YiBJc1By
b3RvY29sVHlwZQogewotICAgIG15ICRuYW1lID0gR2V0Q2xhc3NOYW1lKHNoaWZ0KTsKKyAgICAk
dHlwZSA9IHNoaWZ0OwogCi0gICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUo
JG5hbWUpCi0gICAgICAgICAgICBvciAkbmFtZSBlcSAiQk9PTCIKLSAgICAgICAgICAgIG9yICRu
YW1lIGVxICJ1bnNpZ25lZCIKLSAgICAgICAgICAgIG9yICRuYW1lIGVxICJpbnQiCi0gICAgICAg
ICAgICBvciAkbmFtZSBlcSAiaWQgPERPTVhQYXRoTlNSZXNvbHZlcj4iKSB7Ci0gICAgICAgIHJl
dHVybiAkbmFtZTsKLSAgICB9CisgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgIlhQYXRoTlNSZXNv
bHZlciIgb3IgJHR5cGUgZXEgIkV2ZW50TGlzdGVuZXIiIG9yICR0eXBlIGVxICJFdmVudFRhcmdl
dCI7CisgICAgcmV0dXJuIDA7Cit9CiAKLSAgICAjIERlZmF1bHQsIHJldHVybiB0eXBlIGFzIGEg
cG9pbnRlci4KLSAgICByZXR1cm4gIiRuYW1lICoiOworc3ViIElzU3RyaW5nVHlwZQoreworICAg
ICR0eXBlID0gc2hpZnQ7CisKKyAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIiBv
ciAkdHlwZSBlcSAiQXRvbWljU3RyaW5nIjsKKyAgICByZXR1cm4gMDsKK30KKworc3ViIEdldE9i
akNUeXBlCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICBteSAkbmFtZSA9IEdldENsYXNz
TmFtZSgkdHlwZSk7CisKKyAgICByZXR1cm4gImlkIDwiIC4gJG5hbWUgLiAiPiIgICAgIGlmIElz
UHJvdG9jb2xUeXBlKCR0eXBlKTsKKyAgICByZXR1cm4gJG5hbWUgICAgICAgICAgICAgICAgICAg
IGlmICRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUoJHR5cGUpIG9yICR0eXBlIGVxICJE
T01UaW1lU3RhbXAiOworICAgIHJldHVybiAkbmFtZSAuICIgKiI7CiB9CiAKIHN1YiBHZXRPYmpD
VHlwZU1ha2VyCiB7CiAgICAgbXkgJHR5cGUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUo
c2hpZnQpOwogCi0gICAgcmV0dXJuICIiIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5
cGUoJHR5cGUpIG9yICR0eXBlIGVxICJET01TdHJpbmciIG9yICR0eXBlIGVxICJVUkwiOworICAg
IHJldHVybiAiIiBpZiAkY29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCR0eXBlKSBvciBJ
c1N0cmluZ1R5cGUoJHR5cGUpIG9yICR0eXBlIGVxICJVUkwiIG9yICR0eXBlIGVxICJET01UaW1l
U3RhbXAiOwogICAgIHJldHVybiAiX1JHQkNvbG9yV2l0aFJHQiIgaWYgJHR5cGUgZXEgIlJHQkNv
bG9yIjsKIAogICAgIG15ICR0eXBlTWFrZXIgPSAiIjsKLSAgICBpZiAoJHR5cGUgPX4gL14oSFRN
THxDU1MpLykgewotICAgICAgICAkdHlwZU1ha2VyID0gJHR5cGU7IAotICAgIH0gZWxzaWYgKCR0
eXBlIGVxICJET01JbXBsZW1lbnRhdGlvbiIpIHsKLSAgICAgICAgJHR5cGVNYWtlciA9ICJET01J
bXBsZW1lbnRhdGlvbiI7Ci0gICAgfSBlbHNpZiAoJHR5cGUgZXEgIkNEQVRBU2VjdGlvbiIpIHsK
LSAgICAgICAgJHR5cGVNYWtlciA9ICJDREFUQVNlY3Rpb24iOworICAgIGlmICgkdHlwZSA9fiAv
XihIVE1MfENTUykvIG9yICR0eXBlIGVxICJET01JbXBsZW1lbnRhdGlvbiIgb3IgJHR5cGUgZXEg
IkNEQVRBU2VjdGlvbiIpIHsKKyAgICAgICAgJHR5cGVNYWtlciA9ICR0eXBlOworICAgIH0gZWxz
aWYgKCR0eXBlID1+IC9eWFBhdGgoLispLykgeworICAgICAgICAkdHlwZU1ha2VyID0gInhwYXRo
IiAuICQxOwogICAgIH0gZWxzaWYgKCR0eXBlIGVxICJET01XaW5kb3ciKSB7CiAgICAgICAgICR0
eXBlTWFrZXIgPSAiYWJzdHJhY3RWaWV3IjsKLSAgICB9IGVsc2lmICgkdHlwZSBlcSAiWFBhdGhS
ZXN1bHQiKSB7Ci0gICAgICAgICR0eXBlTWFrZXIgPSAieHBhdGhSZXN1bHQiOwotICAgIH0gZWxz
aWYgKCR0eXBlIGVxICJYUGF0aE5TUmVzb2x2ZXIiKSB7Ci0gICAgICAgICR0eXBlTWFrZXIgPSAi
eHBhdGhOU1Jlc29sdmVyIjsKLSAgICB9IGVsc2lmICgkdHlwZSBlcSAiWFBhdGhFeHByZXNzaW9u
IikgewotICAgICAgICAkdHlwZU1ha2VyID0gInhwYXRoRXhwcmVzc2lvbiI7CisgICAgfSBlbHNp
ZiAoJHR5cGUgZXEgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICAkdHlwZU1ha2VyID0gIm5vZGUi
OwogICAgIH0gZWxzZSB7CiAgICAgICAgICR0eXBlTWFrZXIgPSBsY2ZpcnN0KCR0eXBlKTsKICAg
ICB9CkBAIC0zMDUsOSArMzAyLDExIEBAIHN1YiBHZXRPYmpDVHlwZUdldHRlcgogICAgIG15ICRh
cmdOYW1lID0gc2hpZnQ7CiAgICAgbXkgJHR5cGUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1
bGUoc2hpZnQpOwogCi0gICAgcmV0dXJuICRhcmdOYW1lIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1By
aW1pdGl2ZVR5cGUoJHR5cGUpIG9yICR0eXBlIGVxICJET01TdHJpbmciIG9yICR0eXBlIGVxICJV
UkwiOworICAgIHJldHVybiAkYXJnTmFtZSBpZiAkY29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVU
eXBlKCR0eXBlKSBvciBJc1N0cmluZ1R5cGUoJHR5cGUpIG9yICR0eXBlIGVxICJVUkwiOworICAg
IHJldHVybiAkYXJnTmFtZSAuICJFdmVudFRhcmdldCIgaWYgJHR5cGUgZXEgIkV2ZW50VGFyZ2V0
IjsKICAgICByZXR1cm4gIltuYXRpdmVSZXNvbHZlciBfeHBhdGhOU1Jlc29sdmVyXSIgaWYgJHR5
cGUgZXEgIlhQYXRoTlNSZXNvbHZlciI7CiAgICAgcmV0dXJuICJbIiAuICRhcmdOYW1lIC4gIiBf
eHBhdGhSZXN1bHRdIiBpZiAkdHlwZSBlcSAiWFBhdGhSZXN1bHQiOworICAgIHJldHVybiAiWyIg
LiAkYXJnTmFtZSAuICIgX2Fic3RyYWN0Vmlld10iIGlmICR0eXBlIGVxICJET01XaW5kb3ciOwog
ICAgIHJldHVybiAiWyIgLiAkYXJnTmFtZSAuICIgXyIgLiAkdHlwZSAuICJdIiBpZiAkdHlwZSA9
fiAvXihIVE1MfENTUykvOwogICAgIHJldHVybiAiWyIgLiAkYXJnTmFtZSAuICIgXyIgLiBsY2Zp
cnN0KCR0eXBlKSAuICJdIjsKIH0KQEAgLTMxNywxMSArMzE2LDEyIEBAIHN1YiBBZGRGb3J3YXJk
RGVjbGFyYXRpb25zRm9yVHlwZQogICAgIG15ICR0eXBlID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlw
TW9kdWxlKHNoaWZ0KTsKICAgICBteSAkcHVibGljID0gc2hpZnQ7CiAKLSAgICByZXR1cm4gaWYg
JGNvZGVHZW5lcmF0b3ItPklzUHJpbWl0aXZlVHlwZSgkdHlwZSkgb3IgJHR5cGUgZXEgIkRPTVN0
cmluZyI7CisgICAgcmV0dXJuIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUoJHR5
cGUpIG9yIElzU3RyaW5nVHlwZSgkdHlwZSkgb3IgJHR5cGUgZXEgIlVSTCIgb3IgJHR5cGUgZXEg
IkRPTVRpbWVTdGFtcCI7CiAKLSAgICBpZiAoJHR5cGUgZXEgIlhQYXRoTlNSZXNvbHZlciIpIHsK
LSAgICAgICAgJGhlYWRlckZvcndhcmREZWNsYXJhdGlvbnNGb3JQcm90b2NvbHN7IkRPTVhQYXRo
TlNSZXNvbHZlciJ9ID0gMSBpZiAkcHVibGljOwotICAgICAgICAkcHJpdmF0ZUhlYWRlckZvcndh
cmREZWNsYXJhdGlvbnNGb3JQcm90b2NvbHN7IkRPTVhQYXRoTlNSZXNvbHZlciJ9ID0gMSBpZiAh
JHB1YmxpYyBhbmQgISRoZWFkZXJGb3J3YXJkRGVjbGFyYXRpb25zRm9yUHJvdG9jb2xzeyJET01Y
UGF0aE5TUmVzb2x2ZXIifTsKKyAgICBpZiAoSXNQcm90b2NvbFR5cGUoJHR5cGUpKSB7CisgICAg
ICAgICR0eXBlID0gIkRPTSIgLiAkdHlwZTsKKyAgICAgICAgJGhlYWRlckZvcndhcmREZWNsYXJh
dGlvbnNGb3JQcm90b2NvbHN7JHR5cGV9ID0gMSBpZiAkcHVibGljOworICAgICAgICAkcHJpdmF0
ZUhlYWRlckZvcndhcmREZWNsYXJhdGlvbnNGb3JQcm90b2NvbHN7JHR5cGV9ID0gMSBpZiAhJHB1
YmxpYyBhbmQgISRoZWFkZXJGb3J3YXJkRGVjbGFyYXRpb25zRm9yUHJvdG9jb2xzeyR0eXBlfTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzQ0LDkgKzM0NCw5IEBAIHN1YiBBZGRJbmNs
dWRlc0ZvclR5cGUKIHsKICAgICBteSAkdHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVs
ZShzaGlmdCk7CiAKLSAgICByZXR1cm4gaWYgJGNvZGVHZW5lcmF0b3ItPklzUHJpbWl0aXZlVHlw
ZSgkdHlwZSkgb3IgJHR5cGUgZXEgIlVSTCI7CisgICAgcmV0dXJuIGlmICRjb2RlR2VuZXJhdG9y
LT5Jc1ByaW1pdGl2ZVR5cGUoJHR5cGUpIG9yICR0eXBlIGVxICJVUkwiIG9yICR0eXBlIGVxICJE
T01UaW1lU3RhbXAiOwogCi0gICAgaWYgKCR0eXBlIGVxICJET01TdHJpbmciKSB7CisgICAgaWYg
KElzU3RyaW5nVHlwZSgkdHlwZSkpIHsKICAgICAgICAgJGltcGxJbmNsdWRlc3siUGxhdGZvcm1T
dHJpbmcuaCJ9ID0gMTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTM2NCwxMyArMzY0LDYg
QEAgc3ViIEFkZEluY2x1ZGVzRm9yVHlwZQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
IyBUZW1wIERPTUV2ZW50cy5oCi0gICAgaWYgKCR0eXBlIGVxICJFdmVudCIpIHsKLSAgICAgICAg
JGltcGxJbmNsdWRlc3siRE9NRXZlbnRzLmgifSA9IDE7Ci0gICAgICAgICRpbXBsSW5jbHVkZXN7
IiR0eXBlLmgifSA9IDE7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICAjIFRlbXAgRE9N
Vmlld3MuaAogICAgIGlmICgkdHlwZSBlcSAiRE9NV2luZG93IikgewogICAgICAgICAkaW1wbElu
Y2x1ZGVzeyJET01WaWV3cy5oIn0gPSAxOwpAQCAtMzkyLDYgKzM4NSwxMSBAQCBzdWIgQWRkSW5j
bHVkZXNGb3JUeXBlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoJHR5cGUgZXEg
IkV2ZW50VGFyZ2V0IikgeworICAgICAgICAkaW1wbEluY2x1ZGVzeyJET00kdHlwZS5oIn0gPSAx
OworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgIyBGSVhNRTogZm9yIHNvbWUgcmVhc29u
IGl0IHdvbid0IGNvbXBpbGUgd2l0aG91dCBib3RoIENTU1N0eWxlRGVjbGFyYXRpb24uaAogICAg
ICMgYW5kIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgKICAgICBpZiAoJHR5cGUgZXEgIkNT
U1N0eWxlRGVjbGFyYXRpb24iKSB7CkBAIC00MjEsMTcgKzQxOSwyNyBAQCBzdWIgR2VuZXJhdGVI
ZWFkZXIKIAogICAgICMgLSBBZGQgZGVmYXVsdCBoZWFkZXIgdGVtcGxhdGUKICAgICBAaGVhZGVy
Q29udGVudEhlYWRlciA9IHNwbGl0KCJcciIsICRoZWFkZXJMaWNlbmNlVGVtcGxhdGUpOworICAg
IHB1c2goQGhlYWRlckNvbnRlbnRIZWFkZXIsICJcbiIpOwogCiAgICAgIyAtIElOQ0xVREVTIC0K
LSAgICBteSAkcGFyZW50SGVhZGVyTmFtZSA9IEdldENsYXNzSGVhZGVyTmFtZSgkcGFyZW50Q2xh
c3NOYW1lKTsKLSAgICBwdXNoKEBoZWFkZXJDb250ZW50SGVhZGVyLCAiXG4jaW1wb3J0IDxXZWJD
b3JlLyRwYXJlbnRIZWFkZXJOYW1lLmg+XG5cbiIpOworICAgIHVubGVzcyAoJGlzUHJvdG9jb2wp
IHsKKyAgICAgICAgbXkgJHBhcmVudEhlYWRlck5hbWUgPSBHZXRDbGFzc0hlYWRlck5hbWUoJHBh
cmVudENsYXNzTmFtZSk7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnRIZWFkZXIsICIjaW1w
b3J0IDxXZWJDb3JlLyRwYXJlbnRIZWFkZXJOYW1lLmg+XG5cbiIpOworICAgIH0KIAogICAgICMg
LSBBZGQgY29uc3RhbnRzLgogICAgIGlmICgkbnVtQ29uc3RhbnRzID4gMCkgewogICAgICAgICBt
eSBAaGVhZGVyQ29uc3RhbnRzID0gKCk7CisKKyAgICAgICAgIyBGSVhNRTogd2UgbmVlZCBhIHdh
eSB0byBpbmNsdWRlIG11bHRpcGxlIGVudW1zLCBmb3Igbm93LCBvbmx5IGluY2x1ZGUgdGhlIGZp
cnN0LgorICAgICAgICBteSAkZ3JlYXRlc3RDb25zdGFudFZhbHVlID0gJGRhdGFOb2RlLT5jb25z
dGFudHMtPlswXS0+dmFsdWU7CiAgICAgICAgIGZvcmVhY2ggbXkgJGNvbnN0YW50IChAeyRkYXRh
Tm9kZS0+Y29uc3RhbnRzfSkgewogICAgICAgICAgICAgbXkgJGNvbnN0YW50TmFtZSA9ICRjb25z
dGFudC0+bmFtZTsKICAgICAgICAgICAgIG15ICRjb25zdGFudFZhbHVlID0gJGNvbnN0YW50LT52
YWx1ZTsKKworICAgICAgICAgICAgbGFzdCBpZiAkY29uc3RhbnRWYWx1ZSA8ICRncmVhdGVzdENv
bnN0YW50VmFsdWU7CisgICAgICAgICAgICAkZ3JlYXRlc3RDb25zdGFudFZhbHVlID0gJGNvbnN0
YW50VmFsdWU7CisKICAgICAgICAgICAgIG15ICRvdXRwdXQgPSAiICAgIERPTV8iIC4gJGNvbnN0
YW50TmFtZSAuICIgPSAiIC4gJGNvbnN0YW50VmFsdWU7CiAgICAgICAgICAgICBwdXNoKEBoZWFk
ZXJDb25zdGFudHMsICRvdXRwdXQpOwogICAgICAgICB9CkBAIC00NDUsOCArNDUzLDEzIEBAIHN1
YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiXG59O1xuXG4i
KTsgICAgICAgIAogICAgIH0KIAotICAgICMgLSBCZWdpbiBAaW50ZXJmYWNlIAotICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICJcQGludGVyZmFjZSAkY2xhc3NOYW1lIDogJHBhcmVudENsYXNzTmFt
ZVxuIik7CisgICAgIyAtIEJlZ2luIEBpbnRlcmZhY2Ugb3IgQHByb3RvY29sCisgICAgaWYgKCRp
c1Byb3RvY29sKSB7CisgICAgICAgIG15ICRwYXJlbnRQcm90b2NvbHMgPSAiTlNPYmplY3QiIC4g
KCRpbnRlcmZhY2VOYW1lIGVxICJFdmVudFRhcmdldCIgPyAiLCBOU0NvcHlpbmciIDogIiIpOwor
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiXEBwcm90b2NvbCAkY2xhc3NOYW1lIDwkcGFy
ZW50UHJvdG9jb2xzPlxuIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIlxAaW50ZXJmYWNlICRjbGFzc05hbWUgOiAkcGFyZW50Q2xhc3NOYW1lXG4iKTsKKyAg
ICB9CiAKICAgICBteSBAaGVhZGVyQXR0cmlidXRlcyA9ICgpOwogICAgIG15IEBwcml2YXRlSGVh
ZGVyQXR0cmlidXRlcyA9ICgpOwpAQCAtNTY0LDcgKzU3Nyw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRl
cgogICAgICAgICB9CiAgICAgfQogCi0gICAgIyAtIEVuZCBAaW50ZXJmYWNlIAorICAgICMgLSBF
bmQgQGludGVyZmFjZSBvciBAcHJvdG9jb2wKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiXEBl
bmRcbiIpOwogCiAgICAgaWYgKEBkZXByZWNhdGVkSGVhZGVyRnVuY3Rpb25zID4gMCkgewpAQCAt
NjU2LDYgKzY2OSw4IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAg
ICAgJGludGVybmFsQmFzZVR5cGUgPSAiV2ViQ29yZTo6Q1NTVmFsdWUiCiAgICAgICAgICAgICB9
IGVsc2lmICgkcGFyZW50SW1wbENsYXNzTmFtZSBlcSAiQ1NTUnVsZSIpIHsKICAgICAgICAgICAg
ICAgICAkaW50ZXJuYWxCYXNlVHlwZSA9ICJXZWJDb3JlOjpDU1NSdWxlIgorICAgICAgICAgICAg
fSBlbHNpZiAoJHBhcmVudEltcGxDbGFzc05hbWUgZXEgIkV2ZW50IiBvciAkcGFyZW50SW1wbENs
YXNzTmFtZSBlcSAiVUlFdmVudCIpIHsKKyAgICAgICAgICAgICAgICAkaW50ZXJuYWxCYXNlVHlw
ZSA9ICJXZWJDb3JlOjpFdmVudCIKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAg
ICAgJGludGVybmFsQmFzZVR5cGUgPSAiV2ViQ29yZTo6Tm9kZSIKICAgICAgICAgICAgIH0KQEAg
LTY5Niw2ICs3MTEsMTAgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgICAgICAg
ICAgbXkgJGF0dHJpYnV0ZVR5cGVTYW5zUHRyID0gJGF0dHJpYnV0ZVR5cGU7CiAgICAgICAgICAg
ICAkYXR0cmlidXRlVHlwZVNhbnNQdHIgPX4gcy8gXCokLy87ICMgUmVtb3ZlIHRyYWlsaW5nICIg
KiIgZnJvbSBwb2ludGVyIHR5cGVzLgorCisgICAgICAgICAgICAjIHNwZWNpYWwgY2FzZSBmb3Ig
RXZlbnRUYXJnZXQgcHJvdG9jb2wKKyAgICAgICAgICAgICRhdHRyaWJ1dGVUeXBlU2Fuc1B0ciA9
ICJET01Ob2RlIiBpZiAkaWRsVHlwZSBlcSAiRXZlbnRUYXJnZXQiOworCiAgICAgICAgICAgICBt
eSAkdHlwZU1ha2VyID0gR2V0T2JqQ1R5cGVNYWtlcigkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5
cGUpOwogCiAgICAgICAgICAgICAjIFNwZWNpYWwgY2FzZXMKQEAgLTc2NCw3ICs3ODMsNyBAQCBz
dWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAkc2V0dGVyU2lnKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntc
biIpOwogCi0gICAgICAgICAgICAgICAgdW5sZXNzICgkY29kZUdlbmVyYXRvci0+SXNQcmltaXRp
dmVUeXBlKCRpZGxUeXBlKSBvciAkaWRsVHlwZSBlcSAiRE9NU3RyaW5nIikgeworICAgICAgICAg
ICAgICAgIHVubGVzcyAoJGNvZGVHZW5lcmF0b3ItPklzUHJpbWl0aXZlVHlwZSgkaWRsVHlwZSkg
b3IgSXNTdHJpbmdUeXBlKCRpZGxUeXBlKSkgewogICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBBU1NFUlQoJGFyZ05hbWUpO1xuXG4iKTsKICAgICAgICAgICAgICAg
ICB9CiAKQEAgLTgxMyw4ICs4MzIsOSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAg
ICAgICAgICAgICAgICAgcHVzaChAcGFyYW1ldGVyTmFtZXMsICRpbXBsR2V0dGVyKTsKICAgICAg
ICAgICAgICAgICAkbmVlZHNDdXN0b217IlhQYXRoTlNSZXNvbHZlciJ9ID0gJHBhcmFtTmFtZSBp
ZiAkaWRsVHlwZSBlcSAiWFBhdGhOU1Jlc29sdmVyIjsKKyAgICAgICAgICAgICAgICAkbmVlZHND
dXN0b217IkV2ZW50VGFyZ2V0In0gPSAkcGFyYW1OYW1lIGlmICRpZGxUeXBlIGVxICJFdmVudFRh
cmdldCI7CiAKLSAgICAgICAgICAgICAgICB1bmxlc3MgKCRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1p
dGl2ZVR5cGUoJGlkbFR5cGUpIG9yICRpZGxUeXBlIGVxICJET01TdHJpbmciKSB7CisgICAgICAg
ICAgICAgICAgdW5sZXNzICgkY29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCRpZGxUeXBl
KSBvciBJc1N0cmluZ1R5cGUoJGlkbFR5cGUpKSB7CiAgICAgICAgICAgICAgICAgICAgIHB1c2go
QG5lZWRzQXNzZXJ0LCAiICAgIEFTU0VSVCgkcGFyYW1OYW1lKTtcbiIpOwogICAgICAgICAgICAg
ICAgIH0KIApAQCAtODM5LDYgKzg1OSwxNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
ICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICBET01OYXRpdmVYUGF0
aE5TUmVzb2x2ZXIgKm5hdGl2ZVJlc29sdmVyID0gKERPTU5hdGl2ZVhQYXRoTlNSZXNvbHZlciAq
KSRwYXJhbU5hbWU7XG5cbiIpOwogICAgICAgICAgICAgfQogCisgICAgICAgICAgICAjIHNwZWNp
YWwgY2FzZSB0aGUgRXZlbnRUYXJnZXQKKyAgICAgICAgICAgIGlmIChkZWZpbmVkICRuZWVkc0N1
c3RvbXsiRXZlbnRUYXJnZXQifSkgeworICAgICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSAk
bmVlZHNDdXN0b217IkV2ZW50VGFyZ2V0In07CisgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rp
b25Db250ZW50LCAiICAgIERPTU5vZGUqICR7cGFyYW1OYW1lfU9iakMgPSAkcGFyYW1OYW1lO1xu
Iik7CisgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAgIFdlYkNvcmU6
Ok5vZGUqICR7cGFyYW1OYW1lfU5vZGUgPSBbJHtwYXJhbU5hbWV9T2JqQyBfbm9kZV07XG4iKTsK
KyAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAgV2ViQ29yZTo6RXZl
bnRUYXJnZXROb2RlKiAke3BhcmFtTmFtZX1FdmVudFRhcmdldCA9ICgke3BhcmFtTmFtZX1Ob2Rl
ICYmICR7cGFyYW1OYW1lfU5vZGUtPmlzRXZlbnRUYXJnZXROb2RlKCkpID8gc3RhdGljX2Nhc3Q8
V2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlKj4oJHtwYXJhbU5hbWV9Tm9kZSkgOiAwO1xuXG4iKTsK
KyAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJET01Ob2RlLmgifSA9IDE7CisgICAgICAg
ICAgICAgICAgJGltcGxJbmNsdWRlc3siTm9kZS5oIn0gPSAxOworICAgICAgICAgICAgICAgICRp
bXBsSW5jbHVkZXN7IkV2ZW50VGFyZ2V0Tm9kZS5oIn0gPSAxOworICAgICAgICAgICAgfQorCiAg
ICAgICAgICAgICBwdXNoKEBwYXJhbWV0ZXJOYW1lcywgImVjIikgaWYgJHJhaXNlc0V4Y2VwdGlv
bnM7CiAKICAgICAgICAgICAgIG15ICRjb250ZW50ID0gIklNUEwtPiIgLiAkZnVuY3Rpb25OYW1l
IC4gIigiIC4gam9pbigiLCAiLCBAcGFyYW1ldGVyTmFtZXMpIC4gIikiOwpAQCAtOTQwLDIzICs5
NzEsMjUgQEAgc3ViIFdyaXRlRGF0YQogICAgIHVubGluaygkaW1wbEZpbGVOYW1lKTsKIAogICAg
ICMgV3JpdGUgaW1wbGVtZW50YXRpb24gZmlsZS4KLSAgICBvcGVuKCRJTVBMLCAiPiRpbXBsRmls
ZU5hbWUiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaW1wbEZpbGVOYW1lIjsKKyAgICB1
bmxlc3MgKCRpc1Byb3RvY29sKSB7CisgICAgICAgIG9wZW4oJElNUEwsICI+JGltcGxGaWxlTmFt
ZSIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRpbXBsRmlsZU5hbWUiOwogCi0gICAgcHJp
bnQgJElNUEwgQGltcGxDb250ZW50SGVhZGVyOworICAgICAgICBwcmludCAkSU1QTCBAaW1wbENv
bnRlbnRIZWFkZXI7CiAKLSAgICBmb3JlYWNoIG15ICRpbXBsSW5jbHVkZSAoc29ydCBrZXlzKCVp
bXBsSW5jbHVkZXMpKSB7Ci0gICAgICAgIHByaW50ICRJTVBMICIjaW1wb3J0IFwiJGltcGxJbmNs
dWRlXCJcbiI7Ci0gICAgfQorICAgICAgICBmb3JlYWNoIG15ICRpbXBsSW5jbHVkZSAoc29ydCBr
ZXlzKCVpbXBsSW5jbHVkZXMpKSB7CisgICAgICAgICAgICBwcmludCAkSU1QTCAiI2ltcG9ydCBc
IiRpbXBsSW5jbHVkZVwiXG4iOworICAgICAgICB9CiAKLSAgICBwcmludCAkSU1QTCAiXG4iIGlm
IGtleXMgJWltcGxJbmNsdWRlcyA+IDA7Ci0gICAgcHJpbnQgJElNUEwgQGltcGxDb250ZW50Owor
ICAgICAgICBwcmludCAkSU1QTCAiXG4iIGlmIGtleXMoJWltcGxJbmNsdWRlcykgPiAwOworICAg
ICAgICBwcmludCAkSU1QTCBAaW1wbENvbnRlbnQ7CiAKLSAgICBjbG9zZSgkSU1QTCk7Ci0gICAg
dW5kZWYoJElNUEwpOworICAgICAgICBjbG9zZSgkSU1QTCk7CisgICAgICAgIHVuZGVmKCRJTVBM
KTsKIAotICAgIEBpbXBsSGVhZGVyQ29udGVudCA9ICIiOwotICAgIEBpbXBsQ29udGVudCA9ICIi
OyAgICAKLSAgICAlaW1wbEluY2x1ZGVzID0gKCk7CisgICAgICAgIEBpbXBsSGVhZGVyQ29udGVu
dCA9ICIiOworICAgICAgICBAaW1wbENvbnRlbnQgPSAiIjsgICAgCisgICAgICAgICVpbXBsSW5j
bHVkZXMgPSAoKTsKKyAgICB9CiAKICAgICAjIFdyaXRlIHB1YmxpYyBoZWFkZXIuCiAgICAgb3Bl
bigkSEVBREVSLCAiPiRoZWFkZXJGaWxlTmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxl
ICRoZWFkZXJGaWxlTmFtZSI7CkluZGV4OiBXZWJDb3JlL2RvbS9FdmVudC5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9kb20vRXZlbnQuaWRsCShyZXZpc2lvbiAxNjI1OSkKKysrIFdlYkNvcmUv
ZG9tL0V2ZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAw
NiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KICAqCiAgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwpAQCAtMjMsOSArMjQsOSBAQCBtb2R1bGUgZXZlbnRzIHsKICAgICBpbnRlcmZhY2UgW0xlZ2Fj
eVBhcmVudD1LSlM6OkRPTUV2ZW50LCBHZW5lcmF0ZUNvbnN0cnVjdG9yXSBFdmVudCB7CiAKICAg
ICAgICAgLy8gRE9NIFBoYXNlVHlwZQotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAg
IENBUFRVUklOR19QSEFTRSAgICAgICAgICAgICAgICA9IDE7Ci0gICAgICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0ICAgICAgQVRfVEFSR0VUICAgICAgICAgICAgICAgICAgICAgID0gMjsKLSAgICAg
ICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBCVUJCTElOR19QSEFTRSAgICAgICAgICAgICAg
ICAgPSAzOworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDQVBUVVJJTkdfUEhBU0UgICAg
ID0gMTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQVRfVEFSR0VUICAgICAgICAgICA9
IDI7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEJVQkJMSU5HX1BIQVNFICAgICAgPSAz
OwogCiAgICAgICAgIC8vIFJldmVyc2UtZW5naW5lZXJlZCBmcm9tIE5ldHNjYXBlCiAgICAgICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IE1PVVNFRE9XTiAgICAgICAgICAgPSAxOwpAQCAtNDQsNSAr
NDUsMjAgQEAgbW9kdWxlIGV2ZW50cyB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEJM
VVIgICAgICAgICAgICAgICAgPSA4MTkyOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBT
RUxFQ1QgICAgICAgICAgICAgID0gMTYzODQ7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IENIQU5HRSAgICAgICAgICAgICAgPSAzMjc2ODsKKworICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgW0V4Y2x1ZGU9SlNdIERPTVN0cmluZyAgICAgICAgdHlwZTsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFtFeGNsdWRlPUpTXSBFdmVudFRhcmdldCAgICAgIHRhcmdldDsKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFtFeGNsdWRlPUpTXSBFdmVudFRhcmdldCAgICAgIGN1cnJlbnRU
YXJnZXQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbRXhjbHVkZT1KU10gdW5zaWduZWQg
c2hvcnQgICBldmVudFBoYXNlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0V4Y2x1ZGU9
SlNdIGJvb2xlYW4gICAgICAgICAgYnViYmxlczsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFtFeGNsdWRlPUpTXSBib29sZWFuICAgICAgICAgIGNhbmNlbGFibGU7CisgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBbRXhjbHVkZT1KU10gRE9NVGltZVN0YW1wICAgICB0aW1lU3RhbXA7Cisg
ICAgICAgIFtFeGNsdWRlPUpTXSB2b2lkICAgICAgICAgICAgICAgc3RvcFByb3BhZ2F0aW9uKCk7
CisgICAgICAgIFtFeGNsdWRlPUpTXSB2b2lkICAgICAgICAgICAgICAgcHJldmVudERlZmF1bHQo
KTsKKyAgICAgICAgW0V4Y2x1ZGU9SlMsIE9sZFN0eWxlT2JqQ10gdm9pZCBpbml0RXZlbnQoaW4g
RE9NU3RyaW5nIGV2ZW50VHlwZUFyZywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gY2FuQnViYmxlQXJnLCAKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBjYW5jZWxh
YmxlQXJnKTsKKwogICAgIH07CisKIH0KSW5kZXg6IFdlYkNvcmUvZG9tL0V2ZW50TGlzdGVuZXIu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0V2ZW50TGlzdGVuZXIuaWRsCShyZXZpc2lv
biAwKQorKysgV2ViQ29yZS9kb20vRXZlbnRMaXN0ZW5lci5pZGwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4KKyAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWls
LmNvbT4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUg
UGxhY2UgLSBTdWl0ZSAzMzAsCisgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyAqLwor
Cittb2R1bGUgZXZlbnRzIHsKKworICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Cisg
ICAgaW50ZXJmYWNlIFtPYmpDUHJvdG9jb2xdIEV2ZW50TGlzdGVuZXIgeworICAgICAgICB2b2lk
ICAgICAgICAgICAgICAgaGFuZGxlRXZlbnQoaW4gRXZlbnQgZXZ0KTsKKyAgICB9OworCit9Cklu
ZGV4OiBXZWJDb3JlL2RvbS9FdmVudFRhcmdldC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9k
b20vRXZlbnRUYXJnZXQuaWRsCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9kb20vRXZlbnRUYXJn
ZXQuaWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVs
IFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAorICogQm9zdG9uLCBN
QSAwMjExMS0xMzA3LCBVU0EuCisgKi8KKworbW9kdWxlIGV2ZW50cyB7CisKKyAgICAvLyBJbnRy
b2R1Y2VkIGluIERPTSBMZXZlbCAyOgorICAgIGludGVyZmFjZSBbT2JqQ1Byb3RvY29sXSBFdmVu
dFRhcmdldCB7CisgICAgICAgIFtPbGRTdHlsZU9iakNdIHZvaWQgICAgICAgICAgICAgICBhZGRF
dmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLCAKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0
ZW5lciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgIFtPbGRTdHlsZU9iakNd
IHZvaWQgICAgICAgICAgICAgICByZW1vdmVFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBl
LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwgCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gdXNl
Q2FwdHVyZSk7CisgICAgICAgIGJvb2xlYW4gICAgICAgICAgICBkaXNwYXRjaEV2ZW50KGluIEV2
ZW50IGV2dCkKKyAgICAgICAgICAgIHJhaXNlcyhFdmVudEV4Y2VwdGlvbik7CisgICAgfTsKKwor
fQpJbmRleDogV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9kb20vS2V5Ym9hcmRFdmVudC5pZGwJKHJldmlzaW9uIDE2MjU5KQorKysgV2ViQ29yZS9k
b20vS2V5Ym9hcmRFdmVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAgKgogICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKQEAgLTI5LDcgKzMwLDcgQEAgbW9kdWxlIGV2ZW50cyB7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgIHNoaWZ0S2V5OwogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgICBhbHRHcmFwaEtleTsKIAotICAgICAgICBbT2xk
U3R5bGVPYmpDXSB2b2lkIGluaXRLZXlib2FyZEV2ZW50KGluIEF0b21pY1N0cmluZyB0eXBlLCAK
KyAgICAgICAgdm9pZCBpbml0S2V5Ym9hcmRFdmVudChpbiBBdG9taWNTdHJpbmcgdHlwZSwgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBjYW5CdWJibGUsIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gY2FuY2VsYWJsZSwgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRE9NV2luZG93IHZpZXcsIApAQCAtNDAsNiAr
NDEsMTEgQEAgbW9kdWxlIGV2ZW50cyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gYm9vbGVhbiBzaGlmdEtleSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBi
b29sZWFuIG1ldGFLZXksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVh
biBhbHRHcmFwaEtleSk7CisKKyAgICAgICAgLy8gV2ViS2l0IEV4dGVuc2lvbnMKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFtFeGNsdWRlPUpTXSBsb25nIGtleUNvZGU7CisgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBbRXhjbHVkZT1KU10gbG9uZyBjaGFyQ29kZTsKKwogICAgIH07CiAK
IH0KSW5kZXg6IFdlYkNvcmUvZG9tL01vdXNlRXZlbnQuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvZG9tL01vdXNlRXZlbnQuaWRsCShyZXZpc2lvbiAxNjI1OSkKKysrIFdlYkNvcmUvZG9tL01v
dXNlRXZlbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwyMCArMzksMjAgQEAgbW9kdWxlIGV2
ZW50cyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlICAgICAgICAgICAgIHRvRWxl
bWVudDsKICAgICAgICAgCiAgICAgICAgIFtPbGRTdHlsZU9iakNdIHZvaWQgaW5pdE1vdXNlRXZl
bnQoaW4gQXRvbWljU3RyaW5nIHR5cGUsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gYm9vbGVhbiBjYW5CdWJibGUsIAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBjYW5jZWxhYmxlLCAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVdpbmRvdyB2aWV3LCAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgZGV0YWlsLCAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgc2NyZWVuWCwg
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBsb25nIHNjcmVl
blksIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBj
bGllbnRYLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGxv
bmcgY2xpZW50WSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBib29sZWFuIGN0cmxLZXksIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gYm9vbGVhbiBhbHRLZXksIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gYm9vbGVhbiBzaGlmdEtleSwgCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFuIG1ldGFLZXksIAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdW5zaWduZWQgc2hvcnQgYnV0dG9uLCAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2ZW50VGFyZ2V0IHJl
bGF0ZWRUYXJnZXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIGJvb2xlYW4gY2FuQnViYmxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBib29sZWFuIGNhbmNlbGFibGUsIAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIERPTVdpbmRvdyB2aWV3LCAKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBsb25nIGRldGFpbCwgCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBzY3JlZW5YLCAKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBsb25nIHNjcmVlblksIAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgY2xpZW50
WCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBj
bGllbnRZLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBi
b29sZWFuIGN0cmxLZXksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIGJvb2xlYW4gYWx0S2V5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBib29sZWFuIHNoaWZ0S2V5LCAKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFuIG1ldGFLZXksIAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwgCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRUYXJnZXQg
cmVsYXRlZFRhcmdldCk7CiAgICAgfTsKIAogfQpJbmRleDogV2ViQ29yZS9kb20vVUlFdmVudC5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vVUlFdmVudC5pZGwJKHJldmlzaW9uIDE2MjU5
KQorKysgV2ViQ29yZS9kb20vVUlFdmVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIwLDEyICsy
MCwxMCBAQAogbW9kdWxlIGV2ZW50cyB7CiAKICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZl
bCAyOgotCiAgICAgaW50ZXJmYWNlIFVJRXZlbnQgOiBFdmVudCB7Ci0KLSAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVdpbmRvdyAgdmlldzsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVdpbmRvdyAgICAgICAgICAgIHZpZXc7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBs
b25nICAgICAgICAgICAgICAgICBkZXRhaWw7Ci0gICAgICAgIAorCiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgICAgICBrZXlDb2RlOwogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICAgICAgY2hhckNvZGU7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgICAgICBsYXllclg7CkBAIC0zNSwxMCArMzMs
MTAgQEAgbW9kdWxlIGV2ZW50cyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAg
ICAgICAgICAgICAgICB3aGljaDsKICAgICAgICAgCiAgICAgICAgIFtPbGRTdHlsZU9iakNdIHZv
aWQgaW5pdFVJRXZlbnQoaW4gQXRvbWljU3RyaW5nIHR5cGUsIAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBjYW5CdWJibGUsIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBjYW5jZWxhYmxlLCAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVdpbmRvdyB2aWV3LCAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgZGV0YWlsKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFuIGNhbkJ1YmJs
ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBj
YW5jZWxhYmxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBE
T01XaW5kb3cgdmlldywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gbG9uZyBkZXRhaWwpOwogICAgIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvZG9tL1doZWVsRXZl
bnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL1doZWVsRXZlbnQuaWRsCShyZXZpc2lv
biAxNjI1OSkKKysrIFdlYkNvcmUvZG9tL1doZWVsRXZlbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwg
SW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21h
aWwuY29tPgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zNiw2ICszNyw5IEBAIG1vZHVsZSBldmVu
dHMgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICB4OwogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgbG9uZyAgICB5OwogCisgICAgICAgIC8vIFdlYktpdCBFeHRlbnNpb25z
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbRXhjbHVkZT1KU10gYm9vbGVhbiBpc0hvcml6
b250YWw7CisKICAgICB9OwogCiB9CkluZGV4OiBXZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MjU5KQorKysgV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDA2LTA5LTA3ICBTYW0gV2Vpbmln
ICA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUGF0Y2ggZm9yIGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NjYKKyAgICAgICAgQXV0by1nZW5lcmF0ZSB0aGUgT2JqZWN0
aXZlLUMgRE9NIEV2ZW50cyBiaW5kaW5ncworCisgICAgICAgICogTWlncmF0ZUhlYWRlcnMubWFr
ZToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAwNi0w
OS0wNiAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQG55cG9wLmNvbT4KIAogICAgICAgICAqIE1p
Z3JhdGVIZWFkZXJzLm1ha2U6IEZpeGVkIGEgZG91YmxlIHNsYXNoIGluIApJbmRleDogV2ViS2l0
L01pZ3JhdGVIZWFkZXJzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L01pZ3JhdGVIZWFkZXJz
Lm1ha2UJKHJldmlzaW9uIDE2MjU5KQorKysgV2ViS2l0L01pZ3JhdGVIZWFkZXJzLm1ha2UJKHdv
cmtpbmcgY29weSkKQEAgLTY4LDYgKzY4LDEwIEBAIGFsbCA6IFwKICAgICAkKFBSSVZBVEVfSEVB
REVSU19ESVIpL0RPTUVsZW1lbnRQcml2YXRlLmggXAogICAgICQoUFVCTElDX0hFQURFUlNfRElS
KS9ET01FbnRpdHkuaCBcCiAgICAgJChQVUJMSUNfSEVBREVSU19ESVIpL0RPTUVudGl0eVJlZmVy
ZW5jZS5oIFwKKyAgICAkKFBVQkxJQ19IRUFERVJTX0RJUikvRE9NRXZlbnQuaCBcCisgICAgJChQ
UklWQVRFX0hFQURFUlNfRElSKS9ET01FdmVudFByaXZhdGUuaCBcCisgICAgJChQVUJMSUNfSEVB
REVSU19ESVIpL0RPTUV2ZW50TGlzdGVuZXIuaCBcCisgICAgJChQVUJMSUNfSEVBREVSU19ESVIp
L0RPTUV2ZW50VGFyZ2V0LmggXAogICAgICQoUFVCTElDX0hFQURFUlNfRElSKS9ET01FdmVudHMu
aCBcCiAgICAgJChQVUJMSUNfSEVBREVSU19ESVIpL0RPTUV4dGVuc2lvbnMuaCBcCiAgICAgJChQ
VUJMSUNfSEVBREVSU19ESVIpL0RPTUhUTUwuaCBcCkBAIC0xNDEsMTQgKzE0NSwyMSBAQCBhbGwg
OiBcCiAgICAgJChQUklWQVRFX0hFQURFUlNfRElSKS9ET01IVE1MVGV4dEFyZWFFbGVtZW50UHJp
dmF0ZS5oIFwKICAgICAkKFBVQkxJQ19IRUFERVJTX0RJUikvRE9NSFRNTFRpdGxlRWxlbWVudC5o
IFwKICAgICAkKFBVQkxJQ19IRUFERVJTX0RJUikvRE9NSFRNTFVMaXN0RWxlbWVudC5oIFwKKyAg
ICAkKFBVQkxJQ19IRUFERVJTX0RJUikvRE9NS2V5Ym9hcmRFdmVudC5oIFwKKyAgICAkKFBSSVZB
VEVfSEVBREVSU19ESVIpL0RPTUtleWJvYXJkRXZlbnRQcml2YXRlLmggXAogICAgICQoUFVCTElD
X0hFQURFUlNfRElSKS9ET01MaXN0LmggXAogICAgICQoUFVCTElDX0hFQURFUlNfRElSKS9ET01N
ZWRpYUxpc3QuaCBcCisgICAgJChQVUJMSUNfSEVBREVSU19ESVIpL0RPTU1vdXNlRXZlbnQuaCBc
CisgICAgJChQUklWQVRFX0hFQURFUlNfRElSKS9ET01Nb3VzZUV2ZW50UHJpdmF0ZS5oIFwKKyAg
ICAkKFBVQkxJQ19IRUFERVJTX0RJUikvRE9NTXV0YXRpb25FdmVudC5oIFwKKyAgICAkKFBSSVZB
VEVfSEVBREVSU19ESVIpL0RPTU11dGF0aW9uRXZlbnRQcml2YXRlLmggXAogICAgICQoUFVCTElD
X0hFQURFUlNfRElSKS9ET01OYW1lZE5vZGVNYXAuaCBcCiAgICAgJChQUklWQVRFX0hFQURFUlNf
RElSKS9ET01OYW1lZE5vZGVNYXBQcml2YXRlLmggXAogICAgICQoUFVCTElDX0hFQURFUlNfRElS
KS9ET01Ob2RlLmggXAogICAgICQoUFVCTElDX0hFQURFUlNfRElSKS9ET01Ob2RlTGlzdC5oIFwK
ICAgICAkKFBVQkxJQ19IRUFERVJTX0RJUikvRE9NTm90YXRpb24uaCBcCiAgICAgJChQVUJMSUNf
SEVBREVSU19ESVIpL0RPTU9iamVjdC5oIFwKKyAgICAkKFBVQkxJQ19IRUFERVJTX0RJUikvRE9N
T3ZlcmZsb3dFdmVudC5oIFwKICAgICAkKFBSSVZBVEVfSEVBREVSU19ESVIpL0RPTVByaXZhdGUu
aCBcCiAgICAgJChQVUJMSUNfSEVBREVSU19ESVIpL0RPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5o
IFwKICAgICAkKFBSSVZBVEVfSEVBREVSU19ESVIpL0RPTVByb2Nlc3NpbmdJbnN0cnVjdGlvblBy
aXZhdGUuaCBcCkBAIC0xNjAsNyArMTcxLDExIEBAIGFsbCA6IFwKICAgICAkKFBVQkxJQ19IRUFE
RVJTX0RJUikvRE9NU3R5bGVzaGVldHMuaCBcCiAgICAgJChQVUJMSUNfSEVBREVSU19ESVIpL0RP
TVRleHQuaCBcCiAgICAgJChQVUJMSUNfSEVBREVSU19ESVIpL0RPTVRyYXZlcnNhbC5oIFwKKyAg
ICAkKFBVQkxJQ19IRUFERVJTX0RJUikvRE9NVUlFdmVudC5oIFwKKyAgICAkKFBSSVZBVEVfSEVB
REVSU19ESVIpL0RPTVVJRXZlbnRQcml2YXRlLmggXAogICAgICQoUFVCTElDX0hFQURFUlNfRElS
KS9ET01WaWV3cy5oIFwKKyAgICAkKFBVQkxJQ19IRUFERVJTX0RJUikvRE9NV2hlZWxFdmVudC5o
IFwKKyAgICAkKFBSSVZBVEVfSEVBREVSU19ESVIpL0RPTVdoZWVsRXZlbnRQcml2YXRlLmggXAog
ICAgICQoUFVCTElDX0hFQURFUlNfRElSKS9ET01YUGF0aC5oIFwKICAgICAkKFBSSVZBVEVfSEVB
REVSU19ESVIpL1dlYkRhc2hib2FyZFJlZ2lvbi5oIFwKICAgICAkKFBVQkxJQ19IRUFERVJTX0RJ
UikvV2ViU2NyaXB0T2JqZWN0LmggXApJbmRleDogV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gMTYyNTkpCisrKyBXZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEyNDgsNyArMTI0OCw2IEBACiAJCTA4
NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLyA9IHsKIAkJCWlzYSA9
IFBCWFByb2plY3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI4MzIwODkwMkIw
RjAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV2Vi
S2l0IiAqLzsKLQkJCWNvbXBhdGliaWxpdHlWZXJzaW9uID0gIlhjb2RlIDIuNCI7CiAJCQloYXNT
Y2FubmVkRm9yRW5jb2RpbmdzID0gMTsKIAkJCWtub3duUmVnaW9ucyA9ICgKIAkJCQlFbmdsaXNo
LApAQCAtMTI2Myw3ICsxMjYyLDYgQEAKIAkJCXByb2R1Y3RSZWZHcm91cCA9IDAzNDc2OERGRkYz
OEE1MDQxMURCOUM4QiAvKiBQcm9kdWN0cyAqLzsKIAkJCXByb2plY3REaXJQYXRoID0gIiI7CiAJ
CQlwcm9qZWN0Um9vdCA9ICIiOwotCQkJc2hvdWxkQ2hlY2tDb21wYXRpYmlsaXR5ID0gMTsKIAkJ
CXRhcmdldHMgPSAoCiAJCQkJOTM5ODEwMEEwODI0QkYwMTAwOERGMDM4IC8qIFdlYktpdCAqLywK
IAkJCSk7Cg==
</data>
<flag name="review"
          id="3346"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>