<?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>10640</bug_id>
          
          <creation_ts>2006-08-30 09:48:45 -0700</creation_ts>
          <short_desc>Auto-generate 10 more Objective-C DOM HTML bindings</short_desc>
          <delta_ts>2006-08-31 19:08:24 -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>54236</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-08-30 09:48:45 -0700</bug_when>
    <thetext>Splits out 10 more bindings.  Actually only 9 of them are being auto-generated, (DOMHTMLBaseElement, DOMHTMLBodyElement, DOMHTMLHeadElement, DOMHTMLHtmlElement, DOMHTMLIsIndexElement, DOMHTMLLinkElement, DOMHTMLMetaElement, DOMHTMLStyleElement, DOMHTMLTitleElement) and DOMHTMLDocument has been split out into it&apos;s own file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54237</commentid>
    <comment_count>1</comment_count>
      <attachid>10317</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-08-30 09:59:20 -0700</bug_when>
    <thetext>Created attachment 10317
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54241</commentid>
    <comment_count>2</comment_count>
      <attachid>10317</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2006-08-30 10:45:15 -0700</bug_when>
    <thetext>Comment on attachment 10317
patch

This looks good. 

One thing:

+                push(@implContent, &quot;    $exceptionInit\n&quot;);
+                push(@implContent, &quot;    return $getterContent;\n&quot;);
+                push(@implContent, &quot;    $exceptionRaiseOnError\n&quot;);

That will never raise on error, since the return happens first. Should $exceptionRaiseOnError be appended before return?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54242</commentid>
    <comment_count>3</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2006-08-30 10:46:37 -0700</bug_when>
    <thetext>Oh that wont work either. You will need a temp var to tell.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54245</commentid>
    <comment_count>4</comment_count>
      <attachid>10318</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-08-30 11:10:45 -0700</bug_when>
    <thetext>Created attachment 10318
patch 2

Addresses Tim&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54248</commentid>
    <comment_count>5</comment_count>
      <attachid>10318</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2006-08-30 11:27:38 -0700</bug_when>
    <thetext>Comment on attachment 10318
patch 2

Looks good. You will need to merge with my recent change, adding headers to the &quot;Copy Generated Headers&quot; phase and marking them &quot;project&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54530</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-08-31 19:08:24 -0700</bug_when>
    <thetext>Landed in r16125.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10317</attachid>
            <date>2006-08-30 09:59:20 -0700</date>
            <delta_ts>2006-08-30 11:10:45 -0700</delta_ts>
            <desc>patch</desc>
            <filename>autoHTML3.diff</filename>
            <type>text/plain</type>
            <size>58500</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNjExMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTEgQEAKKzIwMDYtMDgtMzAgIFNhbSBXZWluaWcgIDxzYW0ud2VpbmlnQGdtYWls
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAt
IHBhdGNoIGZvciBodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lk
PTEwNjQwCisgICAgICAgICAgQXV0by1nZW5lcmF0ZSAxMCBtb3JlIE9iamVjdGl2ZS1DIERPTSBI
VE1MIGJpbmRpbmdzCisKKyAgICAgICAgICBBdXRvLWdlbmVyYXRlcyBET01IVE1MQmFzZUVsZW1l
bnQsIERPTUhUTUxCb2R5RWxlbWVudCwgRE9NSFRNTEhlYWRFbGVtZW50LAorICAgICAgICAgIERP
TUhUTUxIdG1sRWxlbWVudCwgRE9NSFRNTElzSW5kZXhFbGVtZW50LCBET01IVE1MTGlua0VsZW1l
bnQsCisgICAgICAgICAgRE9NSFRNTE1ldGFFbGVtZW50LCBET01IVE1MU3R5bGVFbGVtZW50IGFu
ZCBET01IVE1MVGl0bGVFbGVtZW50LgorCisgICAgICAgICAgU3BsaXRzIERPTUhUTUxEb2N1bWVu
dCBpbnRvIGl0J3Mgb3duIGZpbGVzLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
YmluZGluZ3Mvb2JqYy9ET00ubW06CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01FeHRlbnNp
b25zLmg6CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MLmg6CisgICAgICAgICogYmlu
ZGluZ3Mvb2JqYy9ET01IVE1MLm1tOgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTERv
Y3VtZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTERvY3VtZW50
Lm1tOiBBZGRlZC4KKyAgICAgICAgKC1bRE9NSFRNTERvY3VtZW50IFdlYkNvcmU6Ol0pOgorICAg
ICAgICAoLVtET01IVE1MRG9jdW1lbnQgdGl0bGVdKToKKyAgICAgICAgKC1bRE9NSFRNTERvY3Vt
ZW50IHNldFRpdGxlOl0pOgorICAgICAgICAoLVtET01IVE1MRG9jdW1lbnQgcmVmZXJyZXJdKToK
KyAgICAgICAgKC1bRE9NSFRNTERvY3VtZW50IGRvbWFpbl0pOgorICAgICAgICAoLVtET01IVE1M
RG9jdW1lbnQgVVJMXSk6CisgICAgICAgICgtW0RPTUhUTUxEb2N1bWVudCBib2R5XSk6CisgICAg
ICAgICgtW0RPTUhUTUxEb2N1bWVudCBzZXRCb2R5Ol0pOgorICAgICAgICAoLVtET01IVE1MRG9j
dW1lbnQgaW1hZ2VzXSk6CisgICAgICAgICgtW0RPTUhUTUxEb2N1bWVudCBhcHBsZXRzXSk6Cisg
ICAgICAgICgtW0RPTUhUTUxEb2N1bWVudCBsaW5rc10pOgorICAgICAgICAoLVtET01IVE1MRG9j
dW1lbnQgZm9ybXNdKToKKyAgICAgICAgKC1bRE9NSFRNTERvY3VtZW50IGFuY2hvcnNdKToKKyAg
ICAgICAgKC1bRE9NSFRNTERvY3VtZW50IGNvb2tpZV0pOgorICAgICAgICAoLVtET01IVE1MRG9j
dW1lbnQgc2V0Q29va2llOl0pOgorICAgICAgICAoLVtET01IVE1MRG9jdW1lbnQgb3Blbl0pOgor
ICAgICAgICAoLVtET01IVE1MRG9jdW1lbnQgY2xvc2VdKToKKyAgICAgICAgKC1bRE9NSFRNTERv
Y3VtZW50IHdyaXRlOl0pOgorICAgICAgICAoLVtET01IVE1MRG9jdW1lbnQgd3JpdGVsbjpdKToK
KyAgICAgICAgKC1bRE9NSFRNTERvY3VtZW50IGdldEVsZW1lbnRCeUlkOl0pOgorICAgICAgICAo
LVtET01IVE1MRG9jdW1lbnQgZ2V0RWxlbWVudHNCeU5hbWU6XSk6CisgICAgICAgICgtW0RPTUhU
TUxEb2N1bWVudCBjcmVhdGVEb2N1bWVudEZyYWdtZW50V2l0aE1hcmt1cFN0cmluZzpiYXNlVVJM
Ol0pOgorICAgICAgICAoLVtET01IVE1MRG9jdW1lbnQgY3JlYXRlRG9jdW1lbnRGcmFnbWVudFdp
dGhUZXh0Ol0pOgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTEludGVybmFsLmg6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbToKKyAgICAgICAg
KiBodG1sL0hUTUxEb2N1bWVudC5pZGw6CisKIDIwMDYtMDgtMjkgIEJyYWR5IEVpZHNvbiAgPGJl
aWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtldmluIERlY2tlciAoU2Fy
Z2UpCkluZGV4OiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAxNjEwMCkKKysrIFdlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtNjIsMTAgKzYyLDE5IEBAIGFsbCA6
IFwKICAgICBET01Ob3RhdGlvbi5oIFwKICAgICBET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBc
CiAgICAgRE9NVGV4dC5oIFwKKyAgICBET01IVE1MQmFzZUVsZW1lbnQuaCBcCisgICAgRE9NSFRN
TEJvZHlFbGVtZW50LmggXAogICAgIERPTUhUTUxDb2xsZWN0aW9uLmggXAogICAgIERPTUhUTUxF
bGVtZW50LmggXAogICAgIERPTUhUTUxGb3JtRWxlbWVudC5oIFwKKyAgICBET01IVE1MSGVhZEVs
ZW1lbnQuaCBcCisgICAgRE9NSFRNTEh0bWxFbGVtZW50LmggXAorICAgIERPTUhUTUxJc0luZGV4
RWxlbWVudC5oIFwKKyAgICBET01IVE1MTGlua0VsZW1lbnQuaCBcCisgICAgRE9NSFRNTE1ldGFF
bGVtZW50LmggXAogICAgIERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oIFwKKyAgICBET01IVE1M
U3R5bGVFbGVtZW50LmggXAorICAgIERPTUhUTUxUaXRsZUVsZW1lbnQuaCBcCiAgICAgSFRNTEVu
dGl0eU5hbWVzLmMgXAogICAgIEpTQXR0ci5oIFwKICAgICBKU0NTU1ByaW1pdGl2ZVZhbHVlLmgg
XApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlz
aW9uIDE2MTAwKQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTM4NSw2ICszODUsMjYgQEAKIAkJODU2Qzg5RkQwQTkwRjA2ODAw
NUM2ODdCIC8qIERPTU5vZGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NTZDODlGQjBBOTBGMDY4MDA1QzY4N0IgLyogRE9NTm9kZS5tbSAqLzsgfTsK
IAkJODU2QzhBRTQwQTkxMjY0OTAwNUM2ODdCIC8qIERPTU9iamVjdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU2QzhBRTIwQTkxMjY0OTAwNUM2ODdC
IC8qIERPTU9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTg1NkM4QUU1MEE5MTI2NDkwMDVDNjg3QiAvKiBET01PYmplY3QubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTZDOEFFMzBBOTEyNjQ5
MDA1QzY4N0IgLyogRE9NT2JqZWN0Lm1tICovOyB9OworCQk4NTk5MkVCQTBBQTUwNjk1MDBBQzA3
ODUgLyogRE9NSFRNTEhlYWRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NTk5MkVCMjBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTEhlYWRF
bGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJODU5OTJFQkIwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxIZWFkRWxlbWVudC5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1OTkyRUIzMEFBNTA2
OTUwMEFDMDc4NSAvKiBET01IVE1MSGVhZEVsZW1lbnQubW0gKi87IH07CisJCTg1OTkyRUJDMEFB
NTA2OTUwMEFDMDc4NSAvKiBET01IVE1MSHRtbEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1OTkyRUI0MEFBNTA2OTUwMEFDMDc4NSAvKiBE
T01IVE1MSHRtbEVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk4NTk5MkVCRDBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTEh0bWxFbGVt
ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU5
OTJFQjUwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxIdG1sRWxlbWVudC5tbSAqLzsgfTsKKwkJ
ODU5OTJFQkUwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxMaW5rRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU5OTJFQjYwQUE1MDY5NTAw
QUMwNzg1IC8qIERPTUhUTUxMaW5rRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTg1OTkyRUJGMEFBNTA2OTUwMEFDMDc4NSAvKiBET01I
VE1MTGlua0VsZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NTk5MkVCNzBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTExpbmtFbGVtZW50Lm1t
ICovOyB9OworCQk4NTk5MkVDMDBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTFRpdGxlRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU5OTJF
QjgwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxUaXRsZUVsZW1lbnQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4NTk5MkVDMTBBQTUwNjk1MDBB
QzA3ODUgLyogRE9NSFRNTFRpdGxlRWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1OTkyRUI5MEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1M
VGl0bGVFbGVtZW50Lm1tICovOyB9OworCQk4NTk5MkZDMDBBQTVERDQwMDBBQzA3ODUgLyogRE9N
SFRNTERvY3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NTk5MkZCRTBBQTVERDQwMDBBQzA3ODUgLyogRE9NSFRNTERvY3VtZW50LmggKi87IH07
CisJCTg1OTkyRkMxMEFBNURENDAwMEFDMDc4NSAvKiBET01IVE1MRG9jdW1lbnQubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTk5MkZCRjBBQTVERDQw
MDBBQzA3ODUgLyogRE9NSFRNTERvY3VtZW50Lm1tICovOyB9OworCQk4NTlBOUM0NzBBQTVFM0JE
MDBCNjk0QjIgLyogRE9NSFRNTEJhc2VFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTlBOUMzRDBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRN
TEJhc2VFbGVtZW50LmggKi87IH07CisJCTg1OUE5QzQ4MEFBNUUzQkQwMEI2OTRCMiAvKiBET01I
VE1MQmFzZUVsZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NTlBOUMzRTBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTEJhc2VFbGVtZW50Lm1t
ICovOyB9OworCQk4NTlBOUM0OTBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTEJvZHlFbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTlBOUMz
RjBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTEJvZHlFbGVtZW50LmggKi87IH07CisJCTg1OUE5
QzRBMEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MQm9keUVsZW1lbnQubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTlBOUM0MDBBQTVFM0JEMDBCNjk0
QjIgLyogRE9NSFRNTEJvZHlFbGVtZW50Lm1tICovOyB9OworCQk4NTlBOUM0QjBBQTVFM0JEMDBC
Njk0QjIgLyogRE9NSFRNTElzSW5kZXhFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTlBOUM0MTBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRN
TElzSW5kZXhFbGVtZW50LmggKi87IH07CisJCTg1OUE5QzRDMEFBNUUzQkQwMEI2OTRCMiAvKiBE
T01IVE1MSXNJbmRleEVsZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NTlBOUM0MjBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTElzSW5kZXhF
bGVtZW50Lm1tICovOyB9OworCQk4NTlBOUM0RDBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTE1l
dGFFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NTlBOUM0MzBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTE1ldGFFbGVtZW50LmggKi87IH07
CisJCTg1OUE5QzRFMEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MTWV0YUVsZW1lbnQubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTlBOUM0NDBBQTVF
M0JEMDBCNjk0QjIgLyogRE9NSFRNTE1ldGFFbGVtZW50Lm1tICovOyB9OworCQk4NTlBOUM0RjBB
QTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTFN0eWxlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU5QTlDNDUwQUE1RTNCRDAwQjY5NEIyIC8q
IERPTUhUTUxTdHlsZUVsZW1lbnQuaCAqLzsgfTsKKwkJODU5QTlDNTAwQUE1RTNCRDAwQjY5NEIy
IC8qIERPTUhUTUxTdHlsZUVsZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NTlBOUM0NjBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTFN0eWxl
RWxlbWVudC5tbSAqLzsgfTsKIAkJODVBQ0E5ODYwQTlCNTIwMzAwNjcxRTkwIC8qIERPTUNoYXJh
Y3RlckRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg1QUNBOTg0MEE5QjUyMDMwMDY3MUU5MCAvKiBET01DaGFyYWN0ZXJEYXRhLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODVBQ0E5ODcwQTlCNTIw
MzAwNjcxRTkwIC8qIERPTUNoYXJhY3RlckRhdGEubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUFDQTk4NTBBOUI1MjAzMDA2NzFFOTAgLyogRE9NQ2hh
cmFjdGVyRGF0YS5tbSAqLzsgfTsKIAkJODVBQ0E5OUMwQTlCNTc1OTAwNjcxRTkwIC8qIERPTVRl
eHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QUNB
OTlBMEE5QjU3NTkwMDY3MUU5MCAvKiBET01UZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTIxNTIsNiArMjE3MiwyNiBAQAogCQk4NTZDODlG
QjBBOTBGMDY4MDA1QzY4N0IgLyogRE9NTm9kZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBET01Ob2RlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4NTZDOEFFMjBBOTEyNjQ5MDA1QzY4N0IgLyogRE9NT2JqZWN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBET01PYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODU2QzhBRTMwQTkxMjY0OTAwNUM2ODdCIC8qIERPTU9iamVjdC5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01PYmplY3QubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTg1OTkyRUIyMEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MSGVh
ZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhUTUxIZWFk
RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NTk5MkVCMzBBQTUwNjk1
MDBBQzA3ODUgLyogRE9NSFRNTEhlYWRFbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IERPTUhUTUxIZWFkRWxlbWVudC5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJODU5OTJFQjQwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxIdG1sRWxl
bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTEh0bWxFbGVt
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg1OTkyRUI1MEFBNTA2OTUwMEFD
MDc4NSAvKiBET01IVE1MSHRtbEVsZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gRE9NSFRNTEh0bWxFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4NTk5MkVCNjBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTExpbmtFbGVtZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MTGlua0VsZW1lbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODU5OTJFQjcwQUE1MDY5NTAwQUMwNzg1
IC8qIERPTUhUTUxMaW5rRWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBET01IVE1MTGlua0VsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTg1OTkyRUI4MEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MVGl0bGVFbGVtZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MVGl0bGVFbGVtZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg1OTkyRUI5MEFBNTA2OTUwMEFDMDc4NSAv
KiBET01IVE1MVGl0bGVFbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IERPTUhUTUxUaXRsZUVsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTg1OTkyRkJFMEFBNURENDAwMEFDMDc4NSAvKiBET01IVE1MRG9jdW1lbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhUTUxEb2N1bWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk4NTk5MkZCRjBBQTVERDQwMDBBQzA3ODUgLyogRE9NSFRN
TERvY3VtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERP
TUhUTUxEb2N1bWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODU5QTlDM0Qw
QUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxCYXNlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTEJhc2VFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTg1OUE5QzNFMEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MQmFzZUVsZW1l
bnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NSFRNTEJh
c2VFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NTlBOUMzRjBBQTVF
M0JEMDBCNjk0QjIgLyogRE9NSFRNTEJvZHlFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBET01IVE1MQm9keUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJODU5QTlDNDAwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxCb2R5RWxlbWVudC5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01IVE1MQm9keUVs
ZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg1OUE5QzQxMEFBNUUzQkQw
MEI2OTRCMiAvKiBET01IVE1MSXNJbmRleEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERPTUhUTUxJc0luZGV4RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4NTlBOUM0MjBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTElzSW5kZXhFbGVt
ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUhUTUxJ
c0luZGV4RWxlbWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODU5QTlDNDMw
QUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxNZXRhRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTE1ldGFFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTg1OUE5QzQ0MEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MTWV0YUVsZW1l
bnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NSFRNTE1l
dGFFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NTlBOUM0NTBBQTVF
M0JEMDBCNjk0QjIgLyogRE9NSFRNTFN0eWxlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRE9NSFRNTFN0eWxlRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4NTlBOUM0NjBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTFN0eWxlRWxlbWVu
dC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01IVE1MU3R5
bGVFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTlCN0ZCOTBBOEQy
ODg4MDBBNUYxRUEgLyogQ29kZUdlbmVyYXRvck9iakMucG0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3Jp
cHQucGVybDsgbmFtZSA9IENvZGVHZW5lcmF0b3JPYmpDLnBtOyBwYXRoID0gYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbTsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9Owog
CQk4NUFDQTk4NDBBOUI1MjAzMDA2NzFFOTAgLyogRE9NQ2hhcmFjdGVyRGF0YS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQ2hhcmFjdGVyRGF0YS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4NUFDQTk4NTBBOUI1MjAzMDA2NzFFOTAgLyogRE9NQ2hhcmFj
dGVyRGF0YS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01D
aGFyYWN0ZXJEYXRhLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDEzMiw2ICs0
MTcyLDE1IEBACiAJCQluYW1lID0gQ29yZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJ
CX07CisJCTg1OTkyRkMyMEFBNURENDYwMEFDMDc4NSAvKiBIVE1MICovID0geworCQkJaXNhID0g
UEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk4NTk5MkZCRTBBQTVERDQwMDBBQzA3ODUg
LyogRE9NSFRNTERvY3VtZW50LmggKi8sCisJCQkJODU5OTJGQkYwQUE1REQ0MDAwQUMwNzg1IC8q
IERPTUhUTUxEb2N1bWVudC5tbSAqLywKKwkJCSk7CisJCQluYW1lID0gSFRNTDsKKwkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTg1QjIzMjI2MEE4QkYzQTEwMEZERjQ3QiAvKiBE
ZXJpdmVkIFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KApAQCAtNDE3Myw4ICs0MjIyLDI2IEBACiAJCQkJODVERjJFRUMwQUEzODdDQjAwQUQ2NEM1IC8q
IERPTUhUTUxFbGVtZW50Lm1tICovLAogCQkJCTg1REYyQzEwMEFBMzQxRjYwMEFENjRDNSAvKiBE
T01IVE1MRm9ybUVsZW1lbnQuaCAqLywKIAkJCQk4NURGMkMxMTBBQTM0MUY2MDBBRDY0QzUgLyog
RE9NSFRNTEZvcm1FbGVtZW50Lm1tICovLAorCQkJCTg1OTkyRUIyMEFBNTA2OTUwMEFDMDc4NSAv
KiBET01IVE1MSGVhZEVsZW1lbnQuaCAqLywKKwkJCQk4NTk5MkVCMzBBQTUwNjk1MDBBQzA3ODUg
LyogRE9NSFRNTEhlYWRFbGVtZW50Lm1tICovLAorCQkJCTg1OTkyRUI0MEFBNTA2OTUwMEFDMDc4
NSAvKiBET01IVE1MSHRtbEVsZW1lbnQuaCAqLywKKwkJCQk4NTk5MkVCNTBBQTUwNjk1MDBBQzA3
ODUgLyogRE9NSFRNTEh0bWxFbGVtZW50Lm1tICovLAorCQkJCTg1OTkyRUI2MEFBNTA2OTUwMEFD
MDc4NSAvKiBET01IVE1MTGlua0VsZW1lbnQuaCAqLywKKwkJCQk4NTk5MkVCNzBBQTUwNjk1MDBB
QzA3ODUgLyogRE9NSFRNTExpbmtFbGVtZW50Lm1tICovLAogCQkJCTg1REYyRjk5MEFBM0NBRTUw
MEFENjRDNSAvKiBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCAqLywKIAkJCQk4NURGMkY5QTBB
QTNDQUU1MDBBRDY0QzUgLyogRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLm1tICovLAorCQkJCTg1
OTkyRUI4MEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MVGl0bGVFbGVtZW50LmggKi8sCisJCQkJ
ODU5OTJFQjkwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxUaXRsZUVsZW1lbnQubW0gKi8sCisJ
CQkJODU5QTlDM0QwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxCYXNlRWxlbWVudC5oICovLAor
CQkJCTg1OUE5QzNFMEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MQmFzZUVsZW1lbnQubW0gKi8s
CisJCQkJODU5QTlDM0YwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxCb2R5RWxlbWVudC5oICov
LAorCQkJCTg1OUE5QzQwMEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MQm9keUVsZW1lbnQubW0g
Ki8sCisJCQkJODU5QTlDNDEwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxJc0luZGV4RWxlbWVu
dC5oICovLAorCQkJCTg1OUE5QzQyMEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MSXNJbmRleEVs
ZW1lbnQubW0gKi8sCisJCQkJODU5QTlDNDMwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxNZXRh
RWxlbWVudC5oICovLAorCQkJCTg1OUE5QzQ0MEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MTWV0
YUVsZW1lbnQubW0gKi8sCisJCQkJODU5QTlDNDUwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxT
dHlsZUVsZW1lbnQuaCAqLywKKwkJCQk4NTlBOUM0NjBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRN
TFN0eWxlRWxlbWVudC5tbSAqLywKIAkJCSk7CiAJCQluYW1lID0gIkRlcml2ZWQgU291cmNlcyI7
CiAJCQlwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViQ29yZTsKQEAgLTUxODksNiArNTI1Niw3IEBA
CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk4NUIyMzIyNjBBOEJGM0ExMDBGREY0N0IgLyogRGVyaXZl
ZCBTb3VyY2VzICovLAogCQkJCTg1NEYxMkFDMEE4RUJDMTgwMDA5NDBCNSAvKiBDb3JlICovLAor
CQkJCTg1OTkyRkMyMEFBNURENDYwMEFDMDc4NSAvKiBIVE1MICovLAogCQkJCTg1OUI3RkI5MEE4
RDI4ODgwMEE1RjFFQSAvKiBDb2RlR2VuZXJhdG9yT2JqQy5wbSAqLywKIAkJCQlCQzFBMzc5NzA5
N0M3MTVGMDAxOUYzRDggLyogRE9NLmggKi8sCiAJCQkJQkMxQTM3OTgwOTdDNzE1RjAwMTlGM0Q4
IC8qIERPTS5tbSAqLywKQEAgLTY2NTcsNiArNjcyNSwxNiBAQAogCQkJCTg1REYyRUVEMEFBMzg3
Q0IwMEFENjRDNSAvKiBET01IVE1MRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVERjJG
OEUwQUEzQzg4MTAwQUQ2NEM1IC8qIERPTUhUTUxDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4NURGMkY5QjBBQTNDQUU1MDBBRDY0QzUgLyogRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9u
LmggaW4gSGVhZGVycyAqLywKKwkJCQk4NTk5MkVCQTBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRN
TEhlYWRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk4NTk5MkVCQzBBQTUwNjk1MDBBQzA3
ODUgLyogRE9NSFRNTEh0bWxFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk4NTk5MkVCRTBB
QTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTExpbmtFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJ
CQk4NTk5MkVDMDBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTFRpdGxlRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJODU5OTJGQzAwQUE1REQ0MDAwQUMwNzg1IC8qIERPTUhUTUxEb2N1bWVu
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJODU5QTlDNDcwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhU
TUxCYXNlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJODU5QTlDNDkwQUE1RTNCRDAwQjY5
NEIyIC8qIERPTUhUTUxCb2R5RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJODU5QTlDNEIw
QUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxJc0luZGV4RWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJODU5QTlDNEQwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxNZXRhRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJODU5QTlDNEYwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxTdHls
ZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNzU2NSw2ICs3NjQzLDE2IEBACiAJCQkJODVE
RjJGOUMwQUEzQ0FFNTAwQUQ2NEM1IC8qIERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTFBRTQyRjZBMEFBNEI4Q0IwMEM4NjEyRCAvKiBTdHJpbmdDRi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxQUU0MkY2QjBBQTRCOENCMDBDODYxMkQgLyogU3RyaW5nSW1w
bENGLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTg1OTkyRUJCMEFBNTA2OTUwMEFDMDc4NSAvKiBE
T01IVE1MSGVhZEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQk4NTk5MkVCRDBBQTUwNjk1
MDBBQzA3ODUgLyogRE9NSFRNTEh0bWxFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJODU5
OTJFQkYwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxMaW5rRWxlbWVudC5tbSBpbiBTb3VyY2Vz
ICovLAorCQkJCTg1OTkyRUMxMEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MVGl0bGVFbGVtZW50
Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJODU5OTJGQzEwQUE1REQ0MDAwQUMwNzg1IC8qIERPTUhU
TUxEb2N1bWVudC5tbSBpbiBTb3VyY2VzICovLAorCQkJCTg1OUE5QzQ4MEFBNUUzQkQwMEI2OTRC
MiAvKiBET01IVE1MQmFzZUVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQk4NTlBOUM0QTBB
QTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTEJvZHlFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCisJ
CQkJODU5QTlDNEMwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxJc0luZGV4RWxlbWVudC5tbSBp
biBTb3VyY2VzICovLAorCQkJCTg1OUE5QzRFMEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MTWV0
YUVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQk4NTlBOUM1MDBBQTVFM0JEMDBCNjk0QjIg
LyogRE9NSFRNTFN0eWxlRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL29iamMv
RE9NLm1tCShyZXZpc2lvbiAxNjEwMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET00ubW0J
KHdvcmtpbmcgY29weSkKQEAgLTg0LDExICs4NCwyMyBAQAogI2ltcG9ydCAiRE9NUHJvY2Vzc2lu
Z0luc3RydWN0aW9uLmgiCiAjaW1wb3J0ICJET01UZXh0LmgiCiAKKy8vIEZyb20gb2xkIERPTUhU
TUwuaAorI2ltcG9ydCAiRE9NSFRNTERvY3VtZW50LmgiCisKIC8vIEdlbmVyYXRlZCBPYmplY3Rp
dmUtQyBCaW5kaW5ncworI2ltcG9ydCAiRE9NSFRNTEJhc2VFbGVtZW50LmgiCisjaW1wb3J0ICJE
T01IVE1MQm9keUVsZW1lbnQuaCIKICNpbXBvcnQgIkRPTUhUTUxDb2xsZWN0aW9uLmgiCiAjaW1w
b3J0ICJET01IVE1MRWxlbWVudC5oIgogI2ltcG9ydCAiRE9NSFRNTEZvcm1FbGVtZW50LmgiCisj
aW1wb3J0ICJET01IVE1MSGVhZEVsZW1lbnQuaCIKKyNpbXBvcnQgIkRPTUhUTUxIdG1sRWxlbWVu
dC5oIgorI2ltcG9ydCAiRE9NSFRNTElzSW5kZXhFbGVtZW50LmgiCisjaW1wb3J0ICJET01IVE1M
TGlua0VsZW1lbnQuaCIKKyNpbXBvcnQgIkRPTUhUTUxNZXRhRWxlbWVudC5oIgogI2ltcG9ydCAi
RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgiCisjaW1wb3J0ICJET01IVE1MU3R5bGVFbGVtZW50
LmgiCisjaW1wb3J0ICJET01IVE1MVGl0bGVFbGVtZW50LmgiCiAKICNpbXBvcnQgPG9iamMvb2Jq
Yy1jbGFzcy5oPgogCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRXh0ZW5zaW9ucy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01FeHRlbnNpb25zLmgJKHJl
dmlzaW9uIDE2MTAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUV4dGVuc2lvbnMuaAko
d29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsOCBAQAogI2ltcG9ydCA8V2ViQ29yZS9ET01SYW5n
ZS5oPgogCiAjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxFbGVtZW50Lmg+CisjaW1wb3J0IDxXZWJD
b3JlL0RPTUhUTUxEb2N1bWVudC5oPgorI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MTGlua0VsZW1l
bnQuaD4KIAogQGNsYXNzIE5TQ29sb3I7CiBAY2xhc3MgTlNJbWFnZTsKQEAgLTQ4LDExICs1MCw2
IEBACiAtIChOU0ltYWdlICopaW1hZ2U7CiBAZW5kCiAKLUBpbnRlcmZhY2UgRE9NSFRNTERvY3Vt
ZW50IChET01IVE1MRG9jdW1lbnRFeHRlbnNpb25zKQotLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAq
KWNyZWF0ZURvY3VtZW50RnJhZ21lbnRXaXRoTWFya3VwU3RyaW5nOihOU1N0cmluZyAqKW1hcmt1
cFN0cmluZyBiYXNlVVJMOihOU1VSTCAqKWJhc2VVUkw7Ci0tIChET01Eb2N1bWVudEZyYWdtZW50
ICopY3JlYXRlRG9jdW1lbnRGcmFnbWVudFdpdGhUZXh0OihOU1N0cmluZyAqKXRleHQ7Ci1AZW5k
Ci0KIEBpbnRlcmZhY2UgRE9NSFRNTElucHV0RWxlbWVudCAoRE9NSFRNTElucHV0RWxlbWVudEV4
dGVuc2lvbnMpCiAtIChOU1N0cmluZyAqKWFsdERpc3BsYXlTdHJpbmc7CiAtIChOU1VSTCAqKWFi
c29sdXRlSW1hZ2VVUkw7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MLmgJKHJldmlzaW9uIDE2
MTAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVs
IFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI1LDEyMSArMjYsMjQgQEAKIAogI2ltcG9ydCA8V2ViQ29yZS9ET01Db3JlLmg+
CiAKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEJhc2VFbGVtZW50Lmg+CisjaW1wb3J0IDxXZWJD
b3JlL0RPTUhUTUxCb2R5RWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MQ29sbGVj
dGlvbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MRG9jdW1lbnQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvRE9NSFRNTEVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEZvcm1FbGVt
ZW50Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxIZWFkRWxlbWVudC5oPgorI2ltcG9ydCA8
V2ViQ29yZS9ET01IVE1MSHRtbEVsZW1lbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTElz
SW5kZXhFbGVtZW50Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxMaW5rRWxlbWVudC5oPgor
I2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MTWV0YUVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUv
RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmg+CisjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxTdHls
ZUVsZW1lbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTFRpdGxlRWxlbWVudC5oPgogCiBA
Y2xhc3MgRE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQ7CiBAY2xhc3MgRE9NSFRNTFRhYmxlU2Vj
dGlvbkVsZW1lbnQ7CiAKLUBpbnRlcmZhY2UgRE9NSFRNTERvY3VtZW50IDogRE9NRG9jdW1lbnQK
LS0gKE5TU3RyaW5nICopdGl0bGU7Ci0tICh2b2lkKXNldFRpdGxlOihOU1N0cmluZyAqKXRpdGxl
OwotLSAoTlNTdHJpbmcgKilyZWZlcnJlcjsKLS0gKE5TU3RyaW5nICopZG9tYWluOwotLSAoTlNT
dHJpbmcgKilVUkw7Ci0tIChET01IVE1MRWxlbWVudCAqKWJvZHk7Ci0tICh2b2lkKXNldEJvZHk6
KERPTUhUTUxFbGVtZW50ICopYm9keTsKLS0gKERPTUhUTUxDb2xsZWN0aW9uICopaW1hZ2VzOwot
LSAoRE9NSFRNTENvbGxlY3Rpb24gKilhcHBsZXRzOwotLSAoRE9NSFRNTENvbGxlY3Rpb24gKils
aW5rczsKLS0gKERPTUhUTUxDb2xsZWN0aW9uICopZm9ybXM7Ci0tIChET01IVE1MQ29sbGVjdGlv
biAqKWFuY2hvcnM7Ci0tIChOU1N0cmluZyAqKWNvb2tpZTsKLS0gKHZvaWQpc2V0Q29va2llOihO
U1N0cmluZyAqKWNvb2tpZTsKLS0gKHZvaWQpb3BlbjsKLS0gKHZvaWQpY2xvc2U7Ci0tICh2b2lk
KXdyaXRlOihOU1N0cmluZyAqKXRleHQ7Ci0tICh2b2lkKXdyaXRlbG46KE5TU3RyaW5nICopdGV4
dDsKLS0gKERPTUVsZW1lbnQgKilnZXRFbGVtZW50QnlJZDooTlNTdHJpbmcgKillbGVtZW50SWQ7
Ci0tIChET01Ob2RlTGlzdCAqKWdldEVsZW1lbnRzQnlOYW1lOihOU1N0cmluZyAqKWVsZW1lbnRO
YW1lOwotQGVuZAotCi1AaW50ZXJmYWNlIERPTUhUTUxIdG1sRWxlbWVudCA6IERPTUhUTUxFbGVt
ZW50Ci0tIChOU1N0cmluZyAqKXZlcnNpb247Ci0tICh2b2lkKXNldFZlcnNpb246KE5TU3RyaW5n
ICopdmVyc2lvbjsKLUBlbmQKLQotQGludGVyZmFjZSBET01IVE1MSGVhZEVsZW1lbnQgOiBET01I
VE1MRWxlbWVudAotLSAoTlNTdHJpbmcgKilwcm9maWxlOwotLSAodm9pZClzZXRQcm9maWxlOihO
U1N0cmluZyAqKXByb2ZpbGU7Ci1AZW5kCi0KLUBpbnRlcmZhY2UgRE9NSFRNTExpbmtFbGVtZW50
IDogRE9NSFRNTEVsZW1lbnQKLS0gKEJPT0wpZGlzYWJsZWQ7Ci0tICh2b2lkKXNldERpc2FibGVk
OihCT09MKWRpc2FibGVkOwotLSAoTlNTdHJpbmcgKiljaGFyc2V0OwotLSAodm9pZClzZXRDaGFy
c2V0OihOU1N0cmluZyAqKWNoYXJzZXQ7Ci0tIChOU1N0cmluZyAqKWhyZWY7Ci0tICh2b2lkKXNl
dEhyZWY6KE5TU3RyaW5nICopaHJlZjsKLS0gKE5TU3RyaW5nICopaHJlZmxhbmc7Ci0tICh2b2lk
KXNldEhyZWZsYW5nOihOU1N0cmluZyAqKWhyZWZsYW5nOwotLSAoTlNTdHJpbmcgKiltZWRpYTsK
LS0gKHZvaWQpc2V0TWVkaWE6KE5TU3RyaW5nICopbWVkaWE7Ci0tIChOU1N0cmluZyAqKXJlbDsK
LS0gKHZvaWQpc2V0UmVsOihOU1N0cmluZyAqKXJlbDsKLS0gKE5TU3RyaW5nICopcmV2OwotLSAo
dm9pZClzZXRSZXY6KE5TU3RyaW5nICopcmV2OwotLSAoTlNTdHJpbmcgKil0YXJnZXQ7Ci0tICh2
b2lkKXNldFRhcmdldDooTlNTdHJpbmcgKil0YXJnZXQ7Ci0tIChOU1N0cmluZyAqKXR5cGU7Ci0t
ICh2b2lkKXNldFR5cGU6KE5TU3RyaW5nICopdHlwZTsKLUBlbmQKLQotQGludGVyZmFjZSBET01I
VE1MVGl0bGVFbGVtZW50IDogRE9NSFRNTEVsZW1lbnQKLS0gKE5TU3RyaW5nICopdGV4dDsKLS0g
KHZvaWQpc2V0VGV4dDooTlNTdHJpbmcgKil0ZXh0OwotQGVuZAotCi1AaW50ZXJmYWNlIERPTUhU
TUxNZXRhRWxlbWVudCA6IERPTUhUTUxFbGVtZW50Ci0tIChOU1N0cmluZyAqKWNvbnRlbnQ7Ci0t
ICh2b2lkKXNldENvbnRlbnQ6KE5TU3RyaW5nICopY29udGVudDsKLS0gKE5TU3RyaW5nICopaHR0
cEVxdWl2OwotLSAodm9pZClzZXRIdHRwRXF1aXY6KE5TU3RyaW5nICopaHR0cEVxdWl2OwotLSAo
TlNTdHJpbmcgKiluYW1lOwotLSAodm9pZClzZXROYW1lOihOU1N0cmluZyAqKW5hbWU7Ci0tIChO
U1N0cmluZyAqKXNjaGVtZTsKLS0gKHZvaWQpc2V0U2NoZW1lOihOU1N0cmluZyAqKXNjaGVtZTsK
LUBlbmQKLQotQGludGVyZmFjZSBET01IVE1MQmFzZUVsZW1lbnQgOiBET01IVE1MRWxlbWVudAot
LSAoTlNTdHJpbmcgKilocmVmOwotLSAodm9pZClzZXRIcmVmOihOU1N0cmluZyAqKWhyZWY7Ci0t
IChOU1N0cmluZyAqKXRhcmdldDsKLS0gKHZvaWQpc2V0VGFyZ2V0OihOU1N0cmluZyAqKXRhcmdl
dDsKLUBlbmQKLQotQGludGVyZmFjZSBET01IVE1MSXNJbmRleEVsZW1lbnQgOiBET01IVE1MRWxl
bWVudAotLSAoRE9NSFRNTEZvcm1FbGVtZW50ICopZm9ybTsKLS0gKE5TU3RyaW5nICopcHJvbXB0
OwotLSAodm9pZClzZXRQcm9tcHQ6KE5TU3RyaW5nICopcHJvbXB0OwotQGVuZAotCi1AaW50ZXJm
YWNlIERPTUhUTUxTdHlsZUVsZW1lbnQgOiBET01IVE1MRWxlbWVudAotLSAoQk9PTClkaXNhYmxl
ZDsKLS0gKHZvaWQpc2V0RGlzYWJsZWQ6KEJPT0wpZGlzYWJsZWQ7Ci0tIChOU1N0cmluZyAqKW1l
ZGlhOwotLSAodm9pZClzZXRNZWRpYTooTlNTdHJpbmcgKiltZWRpYTsKLS0gKE5TU3RyaW5nICop
dHlwZTsKLS0gKHZvaWQpc2V0VHlwZTooTlNTdHJpbmcgKil0eXBlOwotQGVuZAotCi1AaW50ZXJm
YWNlIERPTUhUTUxCb2R5RWxlbWVudCA6IERPTUhUTUxFbGVtZW50Ci0tIChOU1N0cmluZyAqKWFM
aW5rOwotLSAodm9pZClzZXRBTGluazooTlNTdHJpbmcgKilhTGluazsKLS0gKE5TU3RyaW5nICop
YmFja2dyb3VuZDsKLS0gKHZvaWQpc2V0QmFja2dyb3VuZDooTlNTdHJpbmcgKiliYWNrZ3JvdW5k
OwotLSAoTlNTdHJpbmcgKiliZ0NvbG9yOwotLSAodm9pZClzZXRCZ0NvbG9yOihOU1N0cmluZyAq
KWJnQ29sb3I7Ci0tIChOU1N0cmluZyAqKWxpbms7Ci0tICh2b2lkKXNldExpbms6KE5TU3RyaW5n
ICopbGluazsKLS0gKE5TU3RyaW5nICopdGV4dDsKLS0gKHZvaWQpc2V0VGV4dDooTlNTdHJpbmcg
Kil0ZXh0OwotLSAoTlNTdHJpbmcgKil2TGluazsKLS0gKHZvaWQpc2V0Vkxpbms6KE5TU3RyaW5n
ICopdkxpbms7Ci1AZW5kCi0KIEBpbnRlcmZhY2UgRE9NSFRNTFNlbGVjdEVsZW1lbnQgOiBET01I
VE1MRWxlbWVudAogLSAoTlNTdHJpbmcgKil0eXBlOwogLSAoaW50KXNlbGVjdGVkSW5kZXg7Cklu
ZGV4OiBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTC5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTC5tbQkocmV2aXNpb24gMTYxMDApCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL29iamMvRE9NSFRNTC5tbQkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndl
aW5pZ0BnbWFpbC5jb20+CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE4NCwx
MzUgKzE4NSw2IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAvLy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gRE9NSFRNTERvY3VtZW50CiAKLUBpbXBsZW1lbnRhdGlv
biBET01IVE1MRG9jdW1lbnQKLQotLSAoSFRNTERvY3VtZW50ICopX0hUTUxEb2N1bWVudAotewot
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MRG9jdW1lbnQqPihET01fY2FzdDxOb2RlKj4oX2lu
dGVybmFsKSk7Ci19Ci0KLS0gKE5TU3RyaW5nICopdGl0bGUKLXsKLSAgICByZXR1cm4gW3NlbGYg
X0hUTUxEb2N1bWVudF0tPnRpdGxlKCk7Ci19Ci0KLS0gKHZvaWQpc2V0VGl0bGU6KE5TU3RyaW5n
ICopdGl0bGUKLXsKLSAgICBbc2VsZiBfSFRNTERvY3VtZW50XS0+c2V0VGl0bGUodGl0bGUpOwot
fQotCi0tIChOU1N0cmluZyAqKXJlZmVycmVyCi17Ci0gICAgIHJldHVybiBbc2VsZiBfSFRNTERv
Y3VtZW50XS0+cmVmZXJyZXIoKTsKLX0KLQotLSAoTlNTdHJpbmcgKilkb21haW4KLXsKLSAgICAg
cmV0dXJuIFtzZWxmIF9IVE1MRG9jdW1lbnRdLT5kb21haW4oKTsKLX0KLQotLSAoTlNTdHJpbmcg
KilVUkwKLXsKLSAgICByZXR1cm4gW3NlbGYgX0hUTUxEb2N1bWVudF0tPlVSTCgpLmdldE5TU3Ry
aW5nKCk7Ci19Ci0KLS0gKERPTUhUTUxFbGVtZW50ICopYm9keQotewotICAgIHJldHVybiBbRE9N
SFRNTEVsZW1lbnQgX2VsZW1lbnRXaXRoOltzZWxmIF9IVE1MRG9jdW1lbnRdLT5ib2R5KCldOwot
fQotCi0tIChET01IVE1MQ29sbGVjdGlvbiAqKWltYWdlcwotewotICAgIEhUTUxDb2xsZWN0aW9u
ICpjb2xsZWN0aW9uID0gbmV3IEhUTUxDb2xsZWN0aW9uKFtzZWxmIF9IVE1MRG9jdW1lbnRdLCBI
VE1MQ29sbGVjdGlvbjo6RG9jSW1hZ2VzKTsKLSAgICByZXR1cm4gW0RPTUhUTUxDb2xsZWN0aW9u
IF9jb2xsZWN0aW9uV2l0aDpjb2xsZWN0aW9uXTsKLX0KLQotLSAoRE9NSFRNTENvbGxlY3Rpb24g
KilhcHBsZXRzCi17Ci0gICAgSFRNTENvbGxlY3Rpb24gKmNvbGxlY3Rpb24gPSBuZXcgSFRNTENv
bGxlY3Rpb24oW3NlbGYgX0hUTUxEb2N1bWVudF0sIEhUTUxDb2xsZWN0aW9uOjpEb2NBcHBsZXRz
KTsKLSAgICByZXR1cm4gW0RPTUhUTUxDb2xsZWN0aW9uIF9jb2xsZWN0aW9uV2l0aDpjb2xsZWN0
aW9uXTsKLX0KLQotLSAoRE9NSFRNTENvbGxlY3Rpb24gKilsaW5rcwotewotICAgIEhUTUxDb2xs
ZWN0aW9uICpjb2xsZWN0aW9uID0gbmV3IEhUTUxDb2xsZWN0aW9uKFtzZWxmIF9IVE1MRG9jdW1l
bnRdLCBIVE1MQ29sbGVjdGlvbjo6RG9jTGlua3MpOwotICAgIHJldHVybiBbRE9NSFRNTENvbGxl
Y3Rpb24gX2NvbGxlY3Rpb25XaXRoOmNvbGxlY3Rpb25dOwotfQotCi0tIChET01IVE1MQ29sbGVj
dGlvbiAqKWZvcm1zCi17Ci0gICAgSFRNTENvbGxlY3Rpb24gKmNvbGxlY3Rpb24gPSBuZXcgSFRN
TENvbGxlY3Rpb24oW3NlbGYgX0hUTUxEb2N1bWVudF0sIEhUTUxDb2xsZWN0aW9uOjpEb2NGb3Jt
cyk7Ci0gICAgcmV0dXJuIFtET01IVE1MQ29sbGVjdGlvbiBfY29sbGVjdGlvbldpdGg6Y29sbGVj
dGlvbl07Ci19Ci0KLS0gKERPTUhUTUxDb2xsZWN0aW9uICopYW5jaG9ycwotewotICAgIEhUTUxD
b2xsZWN0aW9uICpjb2xsZWN0aW9uID0gbmV3IEhUTUxDb2xsZWN0aW9uKFtzZWxmIF9IVE1MRG9j
dW1lbnRdLCBIVE1MQ29sbGVjdGlvbjo6RG9jQW5jaG9ycyk7Ci0gICAgcmV0dXJuIFtET01IVE1M
Q29sbGVjdGlvbiBfY29sbGVjdGlvbldpdGg6Y29sbGVjdGlvbl07Ci19Ci0KLS0gKHZvaWQpc2V0
Qm9keTooRE9NSFRNTEVsZW1lbnQgKilib2R5Ci17Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7
Ci0gICAgW3NlbGYgX0hUTUxEb2N1bWVudF0tPnNldEJvZHkoW2JvZHkgX0hUTUxFbGVtZW50XSwg
ZWMpOwotICAgIHJhaXNlT25ET01FcnJvcihlYyk7Ci19Ci0KLS0gKE5TU3RyaW5nICopY29va2ll
Ci17Ci0gICAgcmV0dXJuIFtzZWxmIF9IVE1MRG9jdW1lbnRdLT5jb29raWUoKTsKLX0KLQotLSAo
dm9pZClzZXRDb29raWU6KE5TU3RyaW5nICopY29va2llCi17Ci0gICAgW3NlbGYgX0hUTUxEb2N1
bWVudF0tPnNldENvb2tpZShjb29raWUpOwotfQotCi0tICh2b2lkKW9wZW4KLXsKLSAgICBbc2Vs
ZiBfSFRNTERvY3VtZW50XS0+b3BlbigpOwotfQotCi0tICh2b2lkKWNsb3NlCi17Ci0gICAgW3Nl
bGYgX0hUTUxEb2N1bWVudF0tPmNsb3NlKCk7Ci19Ci0KLS0gKHZvaWQpd3JpdGU6KE5TU3RyaW5n
ICopdGV4dAotewotICAgIFtzZWxmIF9IVE1MRG9jdW1lbnRdLT53cml0ZSh0ZXh0KTsKLX0KLQot
LSAodm9pZCl3cml0ZWxuOihOU1N0cmluZyAqKXRleHQKLXsKLSAgICBbc2VsZiBfSFRNTERvY3Vt
ZW50XS0+d3JpdGVsbih0ZXh0KTsKLX0KLQotLSAoRE9NRWxlbWVudCAqKWdldEVsZW1lbnRCeUlk
OihOU1N0cmluZyAqKWVsZW1lbnRJZAotewotICAgIHJldHVybiBbRE9NRWxlbWVudCBfZWxlbWVu
dFdpdGg6W3NlbGYgX0hUTUxEb2N1bWVudF0tPmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCldOwot
fQotCi0tIChET01Ob2RlTGlzdCAqKWdldEVsZW1lbnRzQnlOYW1lOihOU1N0cmluZyAqKWVsZW1l
bnROYW1lCi17Ci0gICAgTmFtZU5vZGVMaXN0ICpub2RlTGlzdCA9IG5ldyBOYW1lTm9kZUxpc3Qo
W3NlbGYgX0hUTUxEb2N1bWVudF0sIGVsZW1lbnROYW1lKTsKLSAgICByZXR1cm4gW0RPTU5vZGVM
aXN0IF9ub2RlTGlzdFdpdGg6bm9kZUxpc3RdOwotfQotCi0tIChET01Eb2N1bWVudEZyYWdtZW50
ICopY3JlYXRlRG9jdW1lbnRGcmFnbWVudFdpdGhNYXJrdXBTdHJpbmc6KE5TU3RyaW5nICopbWFy
a3VwU3RyaW5nIGJhc2VVUkw6KE5TVVJMICopYmFzZVVSTAotewotICAgIFJlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50RnJvbU1hcmt1cChbc2VsZiBfZG9j
dW1lbnRdLCBtYXJrdXBTdHJpbmcsIFtiYXNlVVJMIGFic29sdXRlU3RyaW5nXSk7Ci0gICAgcmV0
dXJuIFtET01Eb2N1bWVudEZyYWdtZW50IF9kb2N1bWVudEZyYWdtZW50V2l0aDpmcmFnbWVudC5n
ZXQoKV07Ci19Ci0KLS0gKERPTURvY3VtZW50RnJhZ21lbnQgKiljcmVhdGVEb2N1bWVudEZyYWdt
ZW50V2l0aFRleHQ6KE5TU3RyaW5nICopdGV4dAotewotICAgIC8vIEZJWE1FOiBTaW5jZSB0aGlz
IGlzIG5vdCBhIGNvbnRleHR1YWwgZnJhZ21lbnQsIGl0IHdvbid0IGhhbmRsZSB3aGl0ZXNwYWNl
IHByb3Blcmx5LgotICAgIHJldHVybiBbRE9NRG9jdW1lbnRGcmFnbWVudCBfZG9jdW1lbnRGcmFn
bWVudFdpdGg6Y3JlYXRlRnJhZ21lbnRGcm9tVGV4dChbc2VsZiBfZG9jdW1lbnRdLT5jcmVhdGVS
YW5nZSgpLmdldCgpLCB0ZXh0KS5nZXQoKV07Ci19Ci0KLUBlbmQKLQogQGltcGxlbWVudGF0aW9u
IERPTUhUTUxEb2N1bWVudCAoV2ViUHJpdmF0ZSkKIAogLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAq
KV9jcmVhdGVEb2N1bWVudEZyYWdtZW50V2l0aE1hcmt1cFN0cmluZzooTlNTdHJpbmcgKiltYXJr
dXBTdHJpbmcgYmFzZVVSTFN0cmluZzooTlNTdHJpbmcgKiliYXNlVVJMU3RyaW5nCkBAIC0zMzcs
MzUxICsyMDksMTcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogQGVuZAogCi1AaW1w
bGVtZW50YXRpb24gRE9NSFRNTEh0bWxFbGVtZW50CiAKLS0gKEhUTUxIdG1sRWxlbWVudCAqKV9I
VE1MSHRtbEVsZW1lbnQKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTEh0bWxFbGVtZW50
Kj4oRE9NX2Nhc3Q8Tm9kZSo+KF9pbnRlcm5hbCkpOwotfQotCi0tIChOU1N0cmluZyAqKXZlcnNp
b24KLXsKLSAgICByZXR1cm4gW3NlbGYgX0hUTUxIdG1sRWxlbWVudF0tPnZlcnNpb24oKTsKLX0K
LQotLSAodm9pZClzZXRWZXJzaW9uOihOU1N0cmluZyAqKXZlcnNpb24KLXsKLSAgICBbc2VsZiBf
SFRNTEh0bWxFbGVtZW50XS0+c2V0VmVyc2lvbih2ZXJzaW9uKTsKLX0KLQotQGVuZAotCi1AaW1w
bGVtZW50YXRpb24gRE9NSFRNTEhlYWRFbGVtZW50Ci0KLS0gKEhUTUxIZWFkRWxlbWVudCAqKV9o
ZWFkRWxlbWVudAotewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MSGVhZEVsZW1lbnQqPihE
T01fY2FzdDxOb2RlKj4oX2ludGVybmFsKSk7Ci19Ci0KLS0gKE5TU3RyaW5nICopcHJvZmlsZQot
ewotICAgIHJldHVybiBbc2VsZiBfaGVhZEVsZW1lbnRdLT5wcm9maWxlKCk7Ci19Ci0KLS0gKHZv
aWQpc2V0UHJvZmlsZTooTlNTdHJpbmcgKilwcm9maWxlCi17Ci0gICAgW3NlbGYgX2hlYWRFbGVt
ZW50XS0+c2V0UHJvZmlsZShwcm9maWxlKTsKLX0KLQotQGVuZAotCi1AaW1wbGVtZW50YXRpb24g
RE9NSFRNTExpbmtFbGVtZW50Ci0KLS0gKEhUTUxMaW5rRWxlbWVudCAqKV9saW5rRWxlbWVudAot
ewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MTGlua0VsZW1lbnQqPihET01fY2FzdDxOb2Rl
Kj4oX2ludGVybmFsKSk7Ci19Ci0KLS0gKEJPT0wpZGlzYWJsZWQKLXsKLSAgICByZXR1cm4gW3Nl
bGYgX2xpbmtFbGVtZW50XS0+ZGlzYWJsZWQoKTsKLX0KLQotLSAodm9pZClzZXREaXNhYmxlZDoo
Qk9PTClkaXNhYmxlZAotewotICAgIFtzZWxmIF9saW5rRWxlbWVudF0tPnNldERpc2FibGVkKGRp
c2FibGVkKTsKLX0KLQotLSAoTlNTdHJpbmcgKiljaGFyc2V0Ci17Ci0gICAgcmV0dXJuIFtzZWxm
IF9saW5rRWxlbWVudF0tPmNoYXJzZXQoKTsKLX0KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisvLyBET01IVE1MTGlua0VsZW1lbnQKIAotLSAodm9pZClzZXRDaGFyc2V0OihO
U1N0cmluZyAqKWNoYXJzZXQKLXsKLSAgICBbc2VsZiBfbGlua0VsZW1lbnRdLT5zZXRDaGFyc2V0
KGNoYXJzZXQpOwotfQorQGltcGxlbWVudGF0aW9uIERPTUhUTUxMaW5rRWxlbWVudCAoRE9NSFRN
TExpbmtFbGVtZW50RXh0ZW5zaW9ucykKIAogLSAoTlNVUkwgKilhYnNvbHV0ZUxpbmtVUkwKIHsK
ICAgICByZXR1cm4gW3NlbGYgX2dldFVSTEF0dHJpYnV0ZTpAImhyZWYiXTsKIH0KIAotLSAoTlNT
dHJpbmcgKilocmVmCi17Ci0gICAgcmV0dXJuIFtzZWxmIF9saW5rRWxlbWVudF0tPmhyZWYoKTsK
LX0KLQotLSAodm9pZClzZXRIcmVmOihOU1N0cmluZyAqKWhyZWYKLXsKLSAgICBbc2VsZiBfbGlu
a0VsZW1lbnRdLT5ocmVmKCk7Ci19Ci0KLS0gKE5TU3RyaW5nICopaHJlZmxhbmcKLXsKLSAgICBy
ZXR1cm4gW3NlbGYgX2xpbmtFbGVtZW50XS0+aHJlZmxhbmcoKTsKLX0KLQotLSAodm9pZClzZXRI
cmVmbGFuZzooTlNTdHJpbmcgKilocmVmbGFuZwotewotICAgIFtzZWxmIF9saW5rRWxlbWVudF0t
PnNldEhyZWZsYW5nKGhyZWZsYW5nKTsKLX0KLQotLSAoTlNTdHJpbmcgKiltZWRpYQotewotICAg
IHJldHVybiBbc2VsZiBfbGlua0VsZW1lbnRdLT5nZXRBdHRyaWJ1dGUobWVkaWFBdHRyKTsKLX0K
LQotLSAodm9pZClzZXRNZWRpYTooTlNTdHJpbmcgKiltZWRpYQotewotICAgIFtzZWxmIF9saW5r
RWxlbWVudF0tPnNldEF0dHJpYnV0ZShtZWRpYUF0dHIsIG1lZGlhKTsKLX0KLQotLSAoTlNTdHJp
bmcgKilyZWwKLXsKLSAgICByZXR1cm4gW3NlbGYgX2xpbmtFbGVtZW50XS0+Z2V0QXR0cmlidXRl
KHJlbEF0dHIpOwotfQotCi0tICh2b2lkKXNldFJlbDooTlNTdHJpbmcgKilyZWwKLXsKLSAgICBb
c2VsZiBfbGlua0VsZW1lbnRdLT5zZXRBdHRyaWJ1dGUocmVsQXR0ciwgcmVsKTsKLX0KLQotLSAo
TlNTdHJpbmcgKilyZXYKLXsKLSAgICByZXR1cm4gW3NlbGYgX2xpbmtFbGVtZW50XS0+Z2V0QXR0
cmlidXRlKHJldkF0dHIpOwotfQotCi0tICh2b2lkKXNldFJldjooTlNTdHJpbmcgKilyZXYKLXsK
LSAgICBbc2VsZiBfbGlua0VsZW1lbnRdLT5zZXRBdHRyaWJ1dGUocmV2QXR0ciwgcmV2KTsKLX0K
LQotLSAoTlNTdHJpbmcgKil0YXJnZXQKLXsKLSAgICByZXR1cm4gW3NlbGYgX2xpbmtFbGVtZW50
XS0+Z2V0QXR0cmlidXRlKHRhcmdldEF0dHIpOwotfQotCi0tICh2b2lkKXNldFRhcmdldDooTlNT
dHJpbmcgKil0YXJnZXQKLXsKLSAgICBbc2VsZiBfbGlua0VsZW1lbnRdLT5zZXRBdHRyaWJ1dGUo
dGFyZ2V0QXR0ciwgdGFyZ2V0KTsKLX0KLQotLSAoTlNTdHJpbmcgKil0eXBlCi17Ci0gICAgcmV0
dXJuIFtzZWxmIF9saW5rRWxlbWVudF0tPmdldEF0dHJpYnV0ZSh0eXBlQXR0cik7Ci19Ci0KLS0g
KHZvaWQpc2V0VHlwZTooTlNTdHJpbmcgKil0eXBlCi17Ci0gICAgW3NlbGYgX2xpbmtFbGVtZW50
XS0+c2V0QXR0cmlidXRlKHR5cGVBdHRyLCB0eXBlKTsKLX0KLQotQGVuZAotCi1AaW1wbGVtZW50
YXRpb24gRE9NSFRNTFRpdGxlRWxlbWVudAotCi0tIChIVE1MVGl0bGVFbGVtZW50ICopX3RpdGxl
RWxlbWVudAotewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MVGl0bGVFbGVtZW50Kj4oRE9N
X2Nhc3Q8Tm9kZSo+KF9pbnRlcm5hbCkpOwotfQotCi0tIChOU1N0cmluZyAqKXRleHQKLXsKLSAg
ICByZXR1cm4gW3NlbGYgX3RpdGxlRWxlbWVudF0tPmdldEF0dHJpYnV0ZSh0ZXh0QXR0cik7Ci19
Ci0KLS0gKHZvaWQpc2V0VGV4dDooTlNTdHJpbmcgKil0ZXh0Ci17Ci0gICAgW3NlbGYgX3RpdGxl
RWxlbWVudF0tPnNldEF0dHJpYnV0ZSh0ZXh0QXR0ciwgdGV4dCk7Ci19Ci0KLUBlbmQKLQotQGlt
cGxlbWVudGF0aW9uIERPTUhUTUxNZXRhRWxlbWVudAotCi0tIChIVE1MTWV0YUVsZW1lbnQgKilf
bWV0YUVsZW1lbnQKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTE1ldGFFbGVtZW50Kj4o
RE9NX2Nhc3Q8Tm9kZSo+KF9pbnRlcm5hbCkpOwotfQotCi0tIChOU1N0cmluZyAqKWNvbnRlbnQK
LXsKLSAgICByZXR1cm4gW3NlbGYgX21ldGFFbGVtZW50XS0+Z2V0QXR0cmlidXRlKGNvbnRlbnRB
dHRyKTsKLX0KLQotLSAodm9pZClzZXRDb250ZW50OihOU1N0cmluZyAqKWNvbnRlbnQKLXsKLSAg
ICBbc2VsZiBfbWV0YUVsZW1lbnRdLT5zZXRBdHRyaWJ1dGUoY29udGVudEF0dHIsIGNvbnRlbnQp
OwotfQotCi0tIChOU1N0cmluZyAqKWh0dHBFcXVpdgotewotICAgIHJldHVybiBbc2VsZiBfbWV0
YUVsZW1lbnRdLT5nZXRBdHRyaWJ1dGUoaHR0cF9lcXVpdkF0dHIpOwotfQotCi0tICh2b2lkKXNl
dEh0dHBFcXVpdjooTlNTdHJpbmcgKilodHRwRXF1aXYKLXsKLSAgICBbc2VsZiBfbWV0YUVsZW1l
bnRdLT5zZXRBdHRyaWJ1dGUoaHR0cF9lcXVpdkF0dHIsIGh0dHBFcXVpdik7Ci19Ci0KLS0gKE5T
U3RyaW5nICopbmFtZQotewotICAgIHJldHVybiBbc2VsZiBfbWV0YUVsZW1lbnRdLT5nZXRBdHRy
aWJ1dGUobmFtZUF0dHIpOwotfQotCi0tICh2b2lkKXNldE5hbWU6KE5TU3RyaW5nICopbmFtZQot
ewotICAgIFtzZWxmIF9tZXRhRWxlbWVudF0tPnNldEF0dHJpYnV0ZShuYW1lQXR0ciwgbmFtZSk7
Ci19Ci0KLS0gKE5TU3RyaW5nICopc2NoZW1lCi17Ci0gICAgcmV0dXJuIFtzZWxmIF9tZXRhRWxl
bWVudF0tPmdldEF0dHJpYnV0ZShzY2hlbWVBdHRyKTsKLX0KLQotLSAodm9pZClzZXRTY2hlbWU6
KE5TU3RyaW5nICopc2NoZW1lCi17Ci0gICAgW3NlbGYgX21ldGFFbGVtZW50XS0+c2V0QXR0cmli
dXRlKHNjaGVtZUF0dHIsIHNjaGVtZSk7Ci19Ci0KLUBlbmQKLQotQGltcGxlbWVudGF0aW9uIERP
TUhUTUxCYXNlRWxlbWVudAotCi0tIChIVE1MQmFzZUVsZW1lbnQgKilfYmFzZUVsZW1lbnQKLXsK
LSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTEJhc2VFbGVtZW50Kj4oRE9NX2Nhc3Q8Tm9kZSo+
KF9pbnRlcm5hbCkpOwotfQotCi0tIChOU1N0cmluZyAqKWhyZWYKLXsKLSAgICByZXR1cm4gW3Nl
bGYgX2Jhc2VFbGVtZW50XS0+aHJlZigpOwotfQotCi0tICh2b2lkKXNldEhyZWY6KE5TU3RyaW5n
ICopaHJlZgotewotICAgIFtzZWxmIF9iYXNlRWxlbWVudF0tPnNldEF0dHJpYnV0ZShocmVmQXR0
ciwgaHJlZik7Ci19Ci0KLS0gKE5TU3RyaW5nICopdGFyZ2V0Ci17Ci0gICAgcmV0dXJuIFtzZWxm
IF9iYXNlRWxlbWVudF0tPmdldEF0dHJpYnV0ZSh0YXJnZXRBdHRyKTsKLX0KLQotLSAodm9pZClz
ZXRUYXJnZXQ6KE5TU3RyaW5nICopdGFyZ2V0Ci17Ci0gICAgW3NlbGYgX2Jhc2VFbGVtZW50XS0+
c2V0QXR0cmlidXRlKHNjaGVtZUF0dHIsIHRhcmdldCk7Ci19Ci0KLUBlbmQKLQotQGltcGxlbWVu
dGF0aW9uIERPTUhUTUxTdHlsZUVsZW1lbnQKLQotLSAoSFRNTFN0eWxlRWxlbWVudCAqKV9zdHls
ZUVsZW1lbnQKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTFN0eWxlRWxlbWVudCo+KERP
TV9jYXN0PE5vZGUqPihfaW50ZXJuYWwpKTsKLX0KLQotLSAoQk9PTClkaXNhYmxlZAotewotICAg
IHJldHVybiAhW3NlbGYgX3N0eWxlRWxlbWVudF0tPmdldEF0dHJpYnV0ZShkaXNhYmxlZEF0dHIp
LmlzTnVsbCgpOwotfQotCi0tICh2b2lkKXNldERpc2FibGVkOihCT09MKWRpc2FibGVkCi17Ci0g
ICAgW3NlbGYgX3N0eWxlRWxlbWVudF0tPnNldEF0dHJpYnV0ZShkaXNhYmxlZEF0dHIsIGRpc2Fi
bGVkID8gIiIgOiAwKTsKLX0KLQotLSAoTlNTdHJpbmcgKiltZWRpYQotewotICAgIHJldHVybiBb
c2VsZiBfc3R5bGVFbGVtZW50XS0+Z2V0QXR0cmlidXRlKG1lZGlhQXR0cik7Ci19Ci0KLS0gKHZv
aWQpc2V0TWVkaWE6KE5TU3RyaW5nICopbWVkaWEKLXsKLSAgICBbc2VsZiBfc3R5bGVFbGVtZW50
XS0+c2V0QXR0cmlidXRlKG1lZGlhQXR0ciwgbWVkaWEpOwotfQotCi0tIChOU1N0cmluZyAqKXR5
cGUKLXsKLSAgICByZXR1cm4gW3NlbGYgX3N0eWxlRWxlbWVudF0tPmdldEF0dHJpYnV0ZSh0eXBl
QXR0cik7Ci19Ci0KLS0gKHZvaWQpc2V0VHlwZTooTlNTdHJpbmcgKil0eXBlCi17Ci0gICAgW3Nl
bGYgX3N0eWxlRWxlbWVudF0tPnNldEF0dHJpYnV0ZSh0eXBlQXR0ciwgdHlwZSk7Ci19Ci0KLUBl
bmQKLQotQGltcGxlbWVudGF0aW9uIERPTUhUTUxCb2R5RWxlbWVudAotCi0tIChIVE1MQm9keUVs
ZW1lbnQgKilfYm9keUVsZW1lbnQKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTEJvZHlF
bGVtZW50Kj4oRE9NX2Nhc3Q8Tm9kZSo+KF9pbnRlcm5hbCkpOwotfQotCi0tIChOU1N0cmluZyAq
KWFMaW5rCi17Ci0gICAgcmV0dXJuIFtzZWxmIF9ib2R5RWxlbWVudF0tPmdldEF0dHJpYnV0ZShh
bGlua0F0dHIpOwotfQotCi0tICh2b2lkKXNldEFMaW5rOihOU1N0cmluZyAqKWFMaW5rCi17Ci0g
ICAgW3NlbGYgX2JvZHlFbGVtZW50XS0+c2V0QXR0cmlidXRlKGFsaW5rQXR0ciwgYUxpbmspOwot
fQotCi0tIChOU1N0cmluZyAqKWJhY2tncm91bmQKLXsKLSAgICByZXR1cm4gW3NlbGYgX2JvZHlF
bGVtZW50XS0+Z2V0QXR0cmlidXRlKGJhY2tncm91bmRBdHRyKTsKLX0KLQotLSAodm9pZClzZXRC
YWNrZ3JvdW5kOihOU1N0cmluZyAqKWJhY2tncm91bmQKLXsKLSAgICBbc2VsZiBfYm9keUVsZW1l
bnRdLT5zZXRBdHRyaWJ1dGUoYmFja2dyb3VuZEF0dHIsIGJhY2tncm91bmQpOwotfQotCi0tIChO
U1N0cmluZyAqKWJnQ29sb3IKLXsKLSAgICByZXR1cm4gW3NlbGYgX2JvZHlFbGVtZW50XS0+Z2V0
QXR0cmlidXRlKGJnY29sb3JBdHRyKTsKLX0KLQotLSAodm9pZClzZXRCZ0NvbG9yOihOU1N0cmlu
ZyAqKWJnQ29sb3IKLXsKLSAgICBbc2VsZiBfYm9keUVsZW1lbnRdLT5zZXRBdHRyaWJ1dGUoYmdj
b2xvckF0dHIsIGJnQ29sb3IpOwotfQotCi0tIChOU1N0cmluZyAqKWxpbmsKLXsKLSAgICByZXR1
cm4gW3NlbGYgX2JvZHlFbGVtZW50XS0+Z2V0QXR0cmlidXRlKGxpbmtBdHRyKTsKLX0KLQotLSAo
dm9pZClzZXRMaW5rOihOU1N0cmluZyAqKWxpbmsKLXsKLSAgICBbc2VsZiBfYm9keUVsZW1lbnRd
LT5zZXRBdHRyaWJ1dGUobGlua0F0dHIsIGxpbmspOwotfQotCi0tIChOU1N0cmluZyAqKXRleHQK
LXsKLSAgICByZXR1cm4gW3NlbGYgX2JvZHlFbGVtZW50XS0+Z2V0QXR0cmlidXRlKHRleHRBdHRy
KTsKLX0KLQotLSAodm9pZClzZXRUZXh0OihOU1N0cmluZyAqKXRleHQKLXsKLSAgICBbc2VsZiBf
Ym9keUVsZW1lbnRdLT5zZXRBdHRyaWJ1dGUodGV4dEF0dHIsIHRleHQpOwotfQotCi0tIChOU1N0
cmluZyAqKXZMaW5rCi17Ci0gICAgcmV0dXJuIFtzZWxmIF9ib2R5RWxlbWVudF0tPmdldEF0dHJp
YnV0ZSh2bGlua0F0dHIpOwotfQotCi0tICh2b2lkKXNldFZMaW5rOihOU1N0cmluZyAqKXZMaW5r
Ci17Ci0gICAgW3NlbGYgX2JvZHlFbGVtZW50XS0+c2V0QXR0cmlidXRlKHZsaW5rQXR0ciwgdkxp
bmspOwotfQotCiBAZW5kCiAKIApAQCAtNjk5LDMxICsyMzcsNyBAQCB1c2luZyBuYW1lc3BhY2Ug
SFRNTE5hbWVzOwogCiAKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBE
T01IVE1MSXNJbmRleEVsZW1lbnQKLQotQGltcGxlbWVudGF0aW9uIERPTUhUTUxJc0luZGV4RWxl
bWVudAotCi0tIChIVE1MSXNJbmRleEVsZW1lbnQgKilfaXNJbmRleEVsZW1lbnQKLXsKLSAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTElzSW5kZXhFbGVtZW50Kj4oRE9NX2Nhc3Q8Tm9kZSo+KF9p
bnRlcm5hbCkpOwotfQotCi0tIChET01IVE1MRm9ybUVsZW1lbnQgKilmb3JtCi17Ci0gICAgcmV0
dXJuIFtET01IVE1MRm9ybUVsZW1lbnQgX2Zvcm1FbGVtZW50V2l0aDpbc2VsZiBfaXNJbmRleEVs
ZW1lbnRdLT5mb3JtKCldOwotfQotCi0tIChOU1N0cmluZyAqKXByb21wdAotewotICAgIHJldHVy
biBbc2VsZiBfaXNJbmRleEVsZW1lbnRdLT5wcm9tcHQoKTsKLX0KLQotLSAodm9pZClzZXRQcm9t
cHQ6KE5TU3RyaW5nICopcHJvbXB0Ci17Ci0gICAgW3NlbGYgX2lzSW5kZXhFbGVtZW50XS0+c2V0
UHJvbXB0KHByb21wdCk7Ci19Ci0KLUBlbmQKKy8vIERPTUhUTUxTZWxlY3RFbGVtZW50CiAKIEBp
bXBsZW1lbnRhdGlvbiBET01IVE1MU2VsZWN0RWxlbWVudAogCkluZGV4OiBXZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NSFRNTERvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUhUTUxEb2N1bWVudC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUhUTUxEb2N1bWVudC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA0IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWlu
aWdAZ21haWwuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTURvY3VtZW50Lmg+CisK
K0BjbGFzcyBET01FbGVtZW50OworQGNsYXNzIERPTUhUTUxDb2xsZWN0aW9uOworQGNsYXNzIERP
TUhUTUxFbGVtZW50OworQGNsYXNzIERPTU5vZGVMaXN0OworQGNsYXNzIERPTURvY3VtZW50RnJh
Z21lbnQ7CisKK0BpbnRlcmZhY2UgRE9NSFRNTERvY3VtZW50IDogRE9NRG9jdW1lbnQKKy0gKE5T
U3RyaW5nICopdGl0bGU7CistICh2b2lkKXNldFRpdGxlOihOU1N0cmluZyAqKXRpdGxlOworLSAo
TlNTdHJpbmcgKilyZWZlcnJlcjsKKy0gKE5TU3RyaW5nICopZG9tYWluOworLSAoTlNTdHJpbmcg
KilVUkw7CistIChET01IVE1MRWxlbWVudCAqKWJvZHk7CistICh2b2lkKXNldEJvZHk6KERPTUhU
TUxFbGVtZW50ICopYm9keTsKKy0gKERPTUhUTUxDb2xsZWN0aW9uICopaW1hZ2VzOworLSAoRE9N
SFRNTENvbGxlY3Rpb24gKilhcHBsZXRzOworLSAoRE9NSFRNTENvbGxlY3Rpb24gKilsaW5rczsK
Ky0gKERPTUhUTUxDb2xsZWN0aW9uICopZm9ybXM7CistIChET01IVE1MQ29sbGVjdGlvbiAqKWFu
Y2hvcnM7CistIChOU1N0cmluZyAqKWNvb2tpZTsKKy0gKHZvaWQpc2V0Q29va2llOihOU1N0cmlu
ZyAqKWNvb2tpZTsKKy0gKHZvaWQpb3BlbjsKKy0gKHZvaWQpY2xvc2U7CistICh2b2lkKXdyaXRl
OihOU1N0cmluZyAqKXRleHQ7CistICh2b2lkKXdyaXRlbG46KE5TU3RyaW5nICopdGV4dDsKKy0g
KERPTUVsZW1lbnQgKilnZXRFbGVtZW50QnlJZDooTlNTdHJpbmcgKillbGVtZW50SWQ7CistIChE
T01Ob2RlTGlzdCAqKWdldEVsZW1lbnRzQnlOYW1lOihOU1N0cmluZyAqKWVsZW1lbnROYW1lOwor
QGVuZAorCitAaW50ZXJmYWNlIERPTUhUTUxEb2N1bWVudCAoRE9NSFRNTERvY3VtZW50RXh0ZW5z
aW9ucykKKy0gKERPTURvY3VtZW50RnJhZ21lbnQgKiljcmVhdGVEb2N1bWVudEZyYWdtZW50V2l0
aE1hcmt1cFN0cmluZzooTlNTdHJpbmcgKiltYXJrdXBTdHJpbmcgYmFzZVVSTDooTlNVUkwgKili
YXNlVVJMOworLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAqKWNyZWF0ZURvY3VtZW50RnJhZ21lbnRX
aXRoVGV4dDooTlNTdHJpbmcgKil0ZXh0OworQGVuZApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTUhUTUxEb2N1bWVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NSFRNTERvY3VtZW50Lm1tCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTUhUTUxEb2N1bWVudC5tbQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNjggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDQgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5p
Z0BnbWFpbC5jb20+CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NSFRN
TERvY3VtZW50LmgiCisKKyNpbXBvcnQgIkRPTUludGVybmFsLmgiCisjaW1wb3J0ICJIVE1MRG9j
dW1lbnQuaCIgLy8gaW1wbGVtZW50YXRpb24gY2xhc3MKKyNpbXBvcnQgIkRPTUhUTUxJbnRlcm5h
bC5oIgorCisjaW1wb3J0ICJET01Eb2N1bWVudEZyYWdtZW50LmgiCisjaW1wb3J0ICJET01IVE1M
Q29sbGVjdGlvbi5oIgorI2ltcG9ydCAiRE9NSFRNTEVsZW1lbnQuaCIKKyNpbXBvcnQgIkRPTU5v
ZGVMaXN0LmgiCisjaW1wb3J0ICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW1wb3J0ICJIVE1MQ29s
bGVjdGlvbi5oIgorI2ltcG9ydCAiTmFtZU5vZGVMaXN0LmgiCisjaW1wb3J0ICJSYW5nZS5oIgor
I2ltcG9ydCAibWFya3VwLmgiCisKK0BpbXBsZW1lbnRhdGlvbiBET01IVE1MRG9jdW1lbnQKKwor
LSAoV2ViQ29yZTo6SFRNTERvY3VtZW50ICopX0hUTUxEb2N1bWVudAoreworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxXZWJDb3JlOjpIVE1MRG9jdW1lbnQgKj4oRE9NX2Nhc3Q8V2ViQ29yZTo6Tm9k
ZSAqPihfaW50ZXJuYWwpKTsKK30KKworLSAoTlNTdHJpbmcgKil0aXRsZQoreworICAgIHJldHVy
biBbc2VsZiBfSFRNTERvY3VtZW50XS0+dGl0bGUoKTsKK30KKworLSAodm9pZClzZXRUaXRsZToo
TlNTdHJpbmcgKil0aXRsZQoreworICAgIFtzZWxmIF9IVE1MRG9jdW1lbnRdLT5zZXRUaXRsZSh0
aXRsZSk7Cit9CisKKy0gKE5TU3RyaW5nICopcmVmZXJyZXIKK3sKKyAgICAgcmV0dXJuIFtzZWxm
IF9IVE1MRG9jdW1lbnRdLT5yZWZlcnJlcigpOworfQorCistIChOU1N0cmluZyAqKWRvbWFpbgor
eworICAgICByZXR1cm4gW3NlbGYgX0hUTUxEb2N1bWVudF0tPmRvbWFpbigpOworfQorCistIChO
U1N0cmluZyAqKVVSTAoreworICAgIHJldHVybiBbc2VsZiBfSFRNTERvY3VtZW50XS0+VVJMKCku
Z2V0TlNTdHJpbmcoKTsKK30KKworLSAoRE9NSFRNTEVsZW1lbnQgKilib2R5Cit7CisgICAgcmV0
dXJuIFtET01IVE1MRWxlbWVudCBfZWxlbWVudFdpdGg6W3NlbGYgX0hUTUxEb2N1bWVudF0tPmJv
ZHkoKV07Cit9CisKKy0gKHZvaWQpc2V0Qm9keTooRE9NSFRNTEVsZW1lbnQgKilib2R5Cit7Cisg
ICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgW3NlbGYgX0hUTUxEb2N1bWVu
dF0tPnNldEJvZHkoW2JvZHkgX0hUTUxFbGVtZW50XSwgZWMpOworICAgIHJhaXNlT25ET01FcnJv
cihlYyk7Cit9CisKKy0gKERPTUhUTUxDb2xsZWN0aW9uICopaW1hZ2VzCit7CisgICAgcmV0dXJu
IFtET01IVE1MQ29sbGVjdGlvbiBfY29sbGVjdGlvbldpdGg6W3NlbGYgX0hUTUxEb2N1bWVudF0t
PmltYWdlcygpLmdldCgpXTsKK30KKworLSAoRE9NSFRNTENvbGxlY3Rpb24gKilhcHBsZXRzCit7
CisgICAgcmV0dXJuIFtET01IVE1MQ29sbGVjdGlvbiBfY29sbGVjdGlvbldpdGg6W3NlbGYgX0hU
TUxEb2N1bWVudF0tPmFwcGxldHMoKS5nZXQoKV07Cit9CisKKy0gKERPTUhUTUxDb2xsZWN0aW9u
ICopbGlua3MKK3sKKyAgICByZXR1cm4gW0RPTUhUTUxDb2xsZWN0aW9uIF9jb2xsZWN0aW9uV2l0
aDpbc2VsZiBfSFRNTERvY3VtZW50XS0+bGlua3MoKS5nZXQoKV07Cit9CisKKy0gKERPTUhUTUxD
b2xsZWN0aW9uICopZm9ybXMKK3sKKyAgICByZXR1cm4gW0RPTUhUTUxDb2xsZWN0aW9uIF9jb2xs
ZWN0aW9uV2l0aDpbc2VsZiBfSFRNTERvY3VtZW50XS0+Zm9ybXMoKS5nZXQoKV07Cit9CisKKy0g
KERPTUhUTUxDb2xsZWN0aW9uICopYW5jaG9ycworeworICAgIHJldHVybiBbRE9NSFRNTENvbGxl
Y3Rpb24gX2NvbGxlY3Rpb25XaXRoOltzZWxmIF9IVE1MRG9jdW1lbnRdLT5hbmNob3JzKCkuZ2V0
KCldOworfQorCistIChOU1N0cmluZyAqKWNvb2tpZQoreworICAgIHJldHVybiBbc2VsZiBfSFRN
TERvY3VtZW50XS0+Y29va2llKCk7Cit9CisKKy0gKHZvaWQpc2V0Q29va2llOihOU1N0cmluZyAq
KWNvb2tpZQoreworICAgIFtzZWxmIF9IVE1MRG9jdW1lbnRdLT5zZXRDb29raWUoY29va2llKTsK
K30KKworLSAodm9pZClvcGVuCit7CisgICAgW3NlbGYgX0hUTUxEb2N1bWVudF0tPm9wZW4oKTsK
K30KKworLSAodm9pZCljbG9zZQoreworICAgIFtzZWxmIF9IVE1MRG9jdW1lbnRdLT5jbG9zZSgp
OworfQorCistICh2b2lkKXdyaXRlOihOU1N0cmluZyAqKXRleHQKK3sKKyAgICBbc2VsZiBfSFRN
TERvY3VtZW50XS0+d3JpdGUodGV4dCk7Cit9CisKKy0gKHZvaWQpd3JpdGVsbjooTlNTdHJpbmcg
Kil0ZXh0Cit7CisgICAgW3NlbGYgX0hUTUxEb2N1bWVudF0tPndyaXRlbG4odGV4dCk7Cit9CisK
Ky0gKERPTUVsZW1lbnQgKilnZXRFbGVtZW50QnlJZDooTlNTdHJpbmcgKillbGVtZW50SWQKK3sK
KyAgICByZXR1cm4gW0RPTUVsZW1lbnQgX2VsZW1lbnRXaXRoOltzZWxmIF9IVE1MRG9jdW1lbnRd
LT5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpXTsKK30KKworLSAoRE9NTm9kZUxpc3QgKilnZXRF
bGVtZW50c0J5TmFtZTooTlNTdHJpbmcgKillbGVtZW50TmFtZQoreworICAgIHJldHVybiBbRE9N
Tm9kZUxpc3QgX25vZGVMaXN0V2l0aDpbc2VsZiBfSFRNTERvY3VtZW50XS0+Z2V0RWxlbWVudHNC
eU5hbWUoZWxlbWVudE5hbWUpLmdldCgpXTsKK30KKworQGVuZAorCitAaW1wbGVtZW50YXRpb24g
RE9NSFRNTERvY3VtZW50IChET01IVE1MRG9jdW1lbnRFeHRlbnNpb25zKQorCistIChET01Eb2N1
bWVudEZyYWdtZW50ICopY3JlYXRlRG9jdW1lbnRGcmFnbWVudFdpdGhNYXJrdXBTdHJpbmc6KE5T
U3RyaW5nICopbWFya3VwU3RyaW5nIGJhc2VVUkw6KE5TVVJMICopYmFzZVVSTAoreworICAgIHJl
dHVybiBbRE9NRG9jdW1lbnRGcmFnbWVudCBfZG9jdW1lbnRGcmFnbWVudFdpdGg6Y3JlYXRlRnJh
Z21lbnRGcm9tTWFya3VwKFtzZWxmIF9kb2N1bWVudF0sIG1hcmt1cFN0cmluZywgW2Jhc2VVUkwg
YWJzb2x1dGVTdHJpbmddKS5nZXQoKV07Cit9CisKKy0gKERPTURvY3VtZW50RnJhZ21lbnQgKilj
cmVhdGVEb2N1bWVudEZyYWdtZW50V2l0aFRleHQ6KE5TU3RyaW5nICopdGV4dAoreworICAgIC8v
IEZJWE1FOiBTaW5jZSB0aGlzIGlzIG5vdCBhIGNvbnRleHR1YWwgZnJhZ21lbnQsIGl0IHdvbid0
IGhhbmRsZSB3aGl0ZXNwYWNlIHByb3Blcmx5LgorICAgIHJldHVybiBbRE9NRG9jdW1lbnRGcmFn
bWVudCBfZG9jdW1lbnRGcmFnbWVudFdpdGg6Y3JlYXRlRnJhZ21lbnRGcm9tVGV4dChbc2VsZiBf
ZG9jdW1lbnRdLT5jcmVhdGVSYW5nZSgpLmdldCgpLCB0ZXh0KS5nZXQoKV07Cit9CisKK0BlbmQK
SW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MSW50ZXJuYWwuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEludGVybmFsLmgJKHJldmlzaW9uIDE2
MTAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxJbnRlcm5hbC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNCBBcHBsZSBD
b21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
NiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjcsNyBAQAogI2ltcG9ydCAiRE9NSFRNTC5oIgogCiAj
aW1wb3J0ICJET01IVE1MQ29sbGVjdGlvbi5oIgorI2ltcG9ydCAiRE9NSFRNTERvY3VtZW50Lmgi
CiAjaW1wb3J0ICJET01IVE1MRWxlbWVudC5oIgogI2ltcG9ydCAiRE9NSFRNTEZvcm1FbGVtZW50
LmgiCiAjaW1wb3J0ICJET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCIKSW5kZXg6IFdlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0JKHJldmlzaW9uIDE2MTAw
KQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCSh3b3Jr
aW5nIGNvcHkpCkBAIC02MjMsNDggKzYyMyw0MCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlv
bgogCiAgICAgIyBTVEFSVCBpbXBsZW1lbnRhdGlvbgogICAgIHB1c2goQGltcGxDb250ZW50LCAi
XG5cQGltcGxlbWVudGF0aW9uICRjbGFzc05hbWVcblxuIik7Ci0gICAgCi0gICAgIyBBREQgSU5U
RVJOQUwgQ0FTVElORyBNRVRIT0QKLSAgICBteSAkaW50ZXJuYWxDYXN0aW5nTmFtZSA9ICJfIiAu
IGxjZmlyc3QoJGludGVyZmFjZU5hbWUpOwotICAgIG15ICRpbXBsZW1lbnRhdGlvbiA9ICJbc2Vs
ZiAkaW50ZXJuYWxDYXN0aW5nTmFtZV0iOwotICAgIAorCisgICAgIyBBREQgSU5URVJOQUwgQ0FT
VElORyBNQUNSTworICAgIG15ICRpbXBsZW1lbnRhdGlvbiA9ICJJTVBMXyIgLiB1YygkaW50ZXJm
YWNlTmFtZSk7CisKICAgICBpZiAoJGhhc0Z1bmN0aW9uc09yQXR0cmlidXRlcykgewogICAgICAg
ICBpZiAoJHBhcmVudEltcGxDbGFzc05hbWUgZXEgIk9iamVjdCIpIHsKICAgICAgICAgICAgICMg
T25seSBnZW5lcmF0ZSAnZGVhbGxvYycgYW5kICdmaW5hbGl6ZScgbWV0aG9kcyBmb3IgZGlyZWN0
IHN1YmNsYXNzZXMgb2YgRE9NT2JqZWN0LgorCisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiNkZWZpbmUgJGltcGxlbWVudGF0aW9uIERPTV9jYXN0PCRpbXBsQ2xhc3NOYW1lICo+KF9p
bnRlcm5hbClcblxuIik7CisKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiLSAodm9p
ZClkZWFsbG9jXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoX2ludGVybmFsKVxuIik7Ci0g
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgRE9NX2Nhc3Q8JGltcGxDbGFz
c05hbWUgKj4oX2ludGVybmFsKS0+ZGVyZWYoKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgICAgICRpbXBsZW1lbnRhdGlvbi0+ZGVyZWYoKTtcbiIpOwogICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgW3N1cGVyIGRlYWxsb2NdO1xuIik7CiAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAKICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiLSAodm9pZClmaW5hbGl6ZVxuIik7CiAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
aWYgKF9pbnRlcm5hbClcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
ICAgIERPTV9jYXN0PCRpbXBsQ2xhc3NOYW1lICo+KF9pbnRlcm5hbCktPmRlcmVmKCk7XG4iKTsK
KyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICAkaW1wbGVtZW50YXRpb24t
PmRlcmVmKCk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFtzdXBl
ciBmaW5hbGl6ZV07XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4i
KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICItICgkaW1w
bENsYXNzTmFtZSAqKSRpbnRlcm5hbENhc3RpbmdOYW1lXG4iKTsKLSAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAie1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICByZXR1cm4gRE9NX2Nhc3Q8JGltcGxDbGFzc05hbWUgKj4oX2ludGVybmFsKTtcbiIpOwotICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgbXkgJGludGVybmFsQmFzZVR5cGU7Ci0gICAgICAgICAgICBpZiAoJGludGVy
ZmFjZU5hbWUgZXEgIkNTU1ByaW1pdGl2ZVZhbHVlIikgewotICAgICAgICAgICAgICAgICMgRklY
TUU6IHRoaXMgc2hvdWxkIGJlIGEgcmVnZXggbWF0Y2hpbmcgQ1NTLi4uVmFsdWUuCisgICAgICAg
ICAgICBpZiAoJGludGVyZmFjZU5hbWUgPX4gL15DU1MuK1ZhbHVlJC8pIHsKICAgICAgICAgICAg
ICAgICAkaW50ZXJuYWxCYXNlVHlwZSA9ICJXZWJDb3JlOjpDU1NWYWx1ZSIKLSAgICAgICAgICAg
IH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJDU1NJbXBvcnRSdWxlIiBvciAkaW50ZXJmYWNl
TmFtZSBlcSAiQ1NTRm9udEZhY2VSdWxlIikgewotICAgICAgICAgICAgICAgICMgRklYTUU6IHRo
aXMgc2hvdWxkIGJlIGEgcmVnZXggbWF0Y2hpbmcgQ1NTLi4uUnVsZS4KKyAgICAgICAgICAgIH0g
ZWxzaWYgKCRpbnRlcmZhY2VOYW1lID1+IC9eQ1NTLitSdWxlJC8pIHsKICAgICAgICAgICAgICAg
ICAkaW50ZXJuYWxCYXNlVHlwZSA9ICJXZWJDb3JlOjpDU1NSdWxlIgogICAgICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgICAgICAkaW50ZXJuYWxCYXNlVHlwZSA9ICJXZWJDb3JlOjpOb2Rl
IgogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIi0gKCRp
bXBsQ2xhc3NOYW1lICopJGludGVybmFsQ2FzdGluZ05hbWVcbiIpOwotICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJ7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIHJldHVybiBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSAqPihET01fY2FzdDwkaW50ZXJu
YWxCYXNlVHlwZSAqPihfaW50ZXJuYWwpKTtcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJ9XG5cbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjZGVmaW5l
ICRpbXBsZW1lbnRhdGlvbiBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSAqPihET01fY2FzdDwk
aW50ZXJuYWxCYXNlVHlwZSAqPihfaW50ZXJuYWwpKVxuXG4iKTsKICAgICAgICAgfQogICAgIH0K
IApAQCAtNzMyLDM3ICs3MjQsNDEgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAg
ICAgICAgIAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICRnZXR0ZXJTaWcpOwogICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICRleGNlcHRpb25Jbml0XG4iKSBpZiAkaGFzR2V0dGVyRXhjZXB0aW9u
OwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuICRnZXR0ZXJDb250
ZW50O1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkZXhjZXB0aW9u
UmFpc2VPbkVycm9yXG4iKSBpZiAkaGFzR2V0dGVyRXhjZXB0aW9uOworICAgICAgICAgICAgaWYg
KCRoYXNHZXR0ZXJFeGNlcHRpb24pIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAkZXhjZXB0aW9uSW5pdFxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgcmV0dXJuICRnZXR0ZXJDb250ZW50O1xuIik7CisgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgJGV4Y2VwdGlvblJhaXNlT25FcnJvclxuIik7CisgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IHJldHVybiAkZ2V0dGVyQ29udGVudDtcbiIpOworICAgICAgICAgICAgfQogICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogCiAgICAgICAgICAgICAjIC0gU0VUVEVSCiAg
ICAgICAgICAgICBpZiAoISRhdHRyaWJ1dGVJc1JlYWRvbmx5KSB7CiAgICAgICAgICAgICAgICAg
IyBFeGNlcHRpb24gaGFuZGxpbmcKICAgICAgICAgICAgICAgICBteSAkaGFzU2V0dGVyRXhjZXB0
aW9uID0gQHskYXR0cmlidXRlLT5zZXR0ZXJFeGNlcHRpb25zfTsKLSAgICAgICAgICAgICAgICAK
KwogICAgICAgICAgICAgICAgICRhdHRyaWJ1dGVOYW1lID0gInNldCIgLiB1Y2ZpcnN0KCRhdHRy
aWJ1dGVOYW1lKTsKICAgICAgICAgICAgICAgICBteSAkc2V0dGVyTmFtZSA9ICJzZXQiIC4gdWNm
aXJzdCgkaW50ZXJmYWNlTmFtZSk7CiAgICAgICAgICAgICAgICAgbXkgJGFyZ05hbWUgPSAibmV3
IiAuIHVjZmlyc3QoJGludGVyZmFjZU5hbWUpOwogCiAgICAgICAgICAgICAgICAgbXkgJHNldHRl
clNpZyA9ICItICh2b2lkKSRzZXR0ZXJOYW1lOigkYXR0cmlidXRlVHlwZSkkYXJnTmFtZVxuIjsK
LSAgICAgICAgICAgICAgICAKKwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAk
c2V0dGVyU2lnKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwot
ICAgICAgICAgICAgICAgIAorCiAgICAgICAgICAgICAgICAgaWYgKCRoYXNTZXR0ZXJFeGNlcHRp
b24pIHsKICAgICAgICAgICAgICAgICAgICAgIyBGSVhNRTogYXNzZXJ0cyBleHNpc3QgaW4gdGhl
IGV4c2lzdGluZyBiaW5kaW5ncywgYnV0IEkgYW0gdW5zdXJlIHdoeSB0aGV5IGFyZSAKICAgICAg
ICAgICAgICAgICAgICAgIyB0aGVyZSBpbiB0aGUgZmlyc3QgcGxhY2U7CiAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEFTU0VSVCgkYXJnTmFtZSk7XG5cbiIpOwot
ICAgICAgICAgICAgICAgIAorCiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgICRleGNlcHRpb25Jbml0XG4iKTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgJGltcGxlbWVudGF0aW9uLT4kYXR0cmlidXRlTmFtZSgkYXJnTmFtZSwg
ZWMpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRl
eGNlcHRpb25SYWlzZU9uRXJyb3JcbiIpOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRpbXBsZW1lbnRhdGlvbi0+
JGF0dHJpYnV0ZU5hbWUoJGFyZ05hbWUpO1xuIik7CiAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIAorCiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIp
OwogICAgICAgICAgICAgfQogICAgICAgICB9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTERvY3Vt
ZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmlkbAkocmV2
aXNpb24gMTYxMDApCisrKyBXZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmlkbAkod29ya2luZyBj
b3B5KQpAQCAtNDgsNyArNDgsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIFtFeGNsdWRlPUpT
XSB2b2lkICAgICAgICAgICAgICAgY2xvc2UoKTsKICAgICAgICAgW0V4Y2x1ZGU9SlNdIHZvaWQg
ICAgICAgICAgICAgICB3cml0ZShpbiBET01TdHJpbmcgdGV4dCk7CiAgICAgICAgIFtFeGNsdWRl
PUpTXSB2b2lkICAgICAgICAgICAgICAgd3JpdGVsbihpbiBET01TdHJpbmcgdGV4dCk7Ci0gICAg
ICAgIFtFeGNsdWRlPUpTXSBOb2RlTGlzdCAgICAgICAgICAgZ2V0RWxlbWVudHNCeU5hbWUoaW4g
RE9NU3RyaW5nIGVsZW1lbnROYW1lKTsKKyAgICAgICAgW1VzZXNQYXNzUmVmUHRyLCBFeGNsdWRl
PUpTXSBOb2RlTGlzdCAgICAgICAgICAgZ2V0RWxlbWVudHNCeU5hbWUoaW4gRE9NU3RyaW5nIGVs
ZW1lbnROYW1lKTsKIAogICAgICAgICAvLyBub24tc3RhbmRhcmQKIApJbmRleDogV2ViS2l0L0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjExMikK
KysrIFdlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAw
Ni0wOC0zMCAgU2FtIFdlaW5pZyAgPHNhbS53ZWluaWdAZ21haWwuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gcGF0Y2ggZm9yIGh0dHA6Ly9i
dWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2NDAKKyAgICAgICAgICBB
dXRvLWdlbmVyYXRlIDEwIG1vcmUgT2JqZWN0aXZlLUMgRE9NIEhUTUwgYmluZGluZ3MKKworICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDA2LTA4LTMwICBL
YXJsIEFkYW0gIDxrYXJsYWRhbUB5YWhvby1pbmMuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEVyaWMgYW5kIFRpbSBILgpJbmRleDogV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkocmV2aXNpb24gMTYxMDApCisrKyBXZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEyNDYsMTAgKzEyNDYsMjAgQEAKIAkJCQk5M0FG
NTJBNTA4MjU0RDg3MDA1RDAxNTYgLyogRE9NRXZlbnRzLmggKi8sCiAJCQkJOTNBRjUyQTMwODI1
NEQ4MTAwNUQwMTU2IC8qIERPTUV4dGVuc2lvbnMuaCAqLywKIAkJCQk5M0FGNTJBMTA4MjU0RDdE
MDA1RDAxNTYgLyogRE9NSFRNTC5oICovLAorCQkJCTg1OUE5Q0I5MEFBNUU1OUYwMEI2OTRCMiAv
KiBET01IVE1MQmFzZUVsZW1lbnQuaCAqLywKKwkJCQk4NTlBOUNDMDBBQTVFNUNFMDBCNjk0QjIg
LyogRE9NSFRNTEJvZHlFbGVtZW50LmggKi8sCiAJCQkJODUwRTY3REEwQTk1MUI0MDAwRUZCNzNB
IC8qIERPTUhUTUxDb2xsZWN0aW9uLmggKi8sCisJCQkJODUwRTYyQjUwQTk0MTJDNjAwRUZCNzNB
IC8qIERPTUhUTUxEb2N1bWVudC5oICovLAogCQkJCTg1NkUwNjVGMEE5Mzk4NTkwMEEyNDczOSAv
KiBET01IVE1MRWxlbWVudC5oICovLAogCQkJCTg1REYyRUE5MEFBMzgyNDcwMEFENjRDNSAvKiBE
T01IVE1MRm9ybUVsZW1lbnQuaCAqLywKKwkJCQk4NUNBOTY1NDBBOTU2M0ZCMDA2OTBDQ0YgLyog
RE9NSFRNTEhlYWRFbGVtZW50LmggKi8sCisJCQkJODVDQTk2NUQwQTk1NjQ0RDAwNjkwQ0NGIC8q
IERPTUhUTUxIdG1sRWxlbWVudC5oICovLAorCQkJCTg1OUE5Q0M0MEFBNUU2MDAwMEI2OTRCMiAv
KiBET01IVE1MSXNJbmRleEVsZW1lbnQuaCAqLywKKwkJCQk4NTBFNjMzMzBBOTQxNDc4MDBFRkI3
M0EgLyogRE9NSFRNTExpbmtFbGVtZW50LmggKi8sCisJCQkJODU5QTlDQTkwQUE1RTU0NjAwQjY5
NEIyIC8qIERPTUhUTUxNZXRhRWxlbWVudC5oICovLAogCQkJCTg1MEU2N0UwMEE5NTFCN0MwMEVG
QjczQSAvKiBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCAqLywKKwkJCQk4NTlBOUNDODBBQTVF
NjJEMDBCNjk0QjIgLyogRE9NSFRNTFN0eWxlRWxlbWVudC5oICovLAorCQkJCTg1Q0E5Njk5MEE5
NTY2QzEwMDY5MENDRiAvKiBET01IVE1MVGl0bGVFbGVtZW50LmggKi8sCiAJCQkJOTNBRjUyOUYw
ODI1NEQ3QTAwNUQwMTU2IC8qIERPTVByaXZhdGUuaCAqLywKIAkJCQk5M0FGNTI5RDA4MjU0RDc2
MDA1RDAxNTYgLyogRE9NUmFuZ2UuaCAqLywKIAkJCQk5M0FGNTI5QjA4MjU0RDYyMDA1RDAxNTYg
LyogRE9NU3R5bGVzaGVldHMuaCAqLywKQEAgLTEzMzcsNiArMTM0NywzOCBAQAogCQkJc2hlbGxQ
YXRoID0gL2Jpbi9zaDsKIAkJCXNoZWxsU2NyaXB0ID0gIm1rZGlyIC1wIFwiJFRBUkdFVF9CVUlM
RF9ESVIvJFBVQkxJQ19IRUFERVJTX0ZPTERFUl9QQVRIXCJcbnNlZCAtZSBzL1dlYkNvcmUvV2Vi
S2l0LyBcIiRXRUJDT1JFX1BSSVZBVEVfSEVBREVSU19ESVIvRE9NWFBhdGguaFwiID4gXCIkVEFS
R0VUX0JVSUxEX0RJUi8kUFVCTElDX0hFQURFUlNfRk9MREVSX1BBVEgvRE9NWFBhdGguaFwiIjsK
IAkJfTsKKwkJODUwRTYyQjUwQTk0MTJDNjAwRUZCNzNBIC8qIERPTUhUTUxEb2N1bWVudC5oICov
ID0geworCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25N
YXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJKTsKKwkJCWlucHV0UGF0aHMgPSAo
CisJCQkJIiQoV0VCQ09SRV9QUklWQVRFX0hFQURFUlNfRElSKS9ET01IVE1MRG9jdW1lbnQuaCIs
CisJCQkpOworCQkJbmFtZSA9IERPTUhUTUxEb2N1bWVudC5oOworCQkJb3V0cHV0UGF0aHMgPSAo
CisJCQkJIiQoVEFSR0VUX0JVSUxEX0RJUikvJChQVUJMSUNfSEVBREVSU19GT0xERVJfUEFUSCkv
RE9NSFRNTERvY3VtZW50LmgiLAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKKwkJCXNoZWxsU2NyaXB0ID0g
Im1rZGlyIC1wIFwiJFRBUkdFVF9CVUlMRF9ESVIvJFBVQkxJQ19IRUFERVJTX0ZPTERFUl9QQVRI
XCJcbnNlZCAtZSBzL1dlYkNvcmUvV2ViS2l0LyBcIiRXRUJDT1JFX1BSSVZBVEVfSEVBREVSU19E
SVIvRE9NSFRNTERvY3VtZW50LmhcIiA+IFwiJFRBUkdFVF9CVUlMRF9ESVIvJFBVQkxJQ19IRUFE
RVJTX0ZPTERFUl9QQVRIL0RPTUhUTUxEb2N1bWVudC5oXCIiOworCQl9OworCQk4NTBFNjMzMzBB
OTQxNDc4MDBFRkI3M0EgLyogRE9NSFRNTExpbmtFbGVtZW50LmggKi8gPSB7CisJCQlpc2EgPSBQ
QlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3
OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJaW5wdXRQYXRocyA9ICgKKwkJCQkiJChXRUJDT1JF
X1BSSVZBVEVfSEVBREVSU19ESVIpL0RPTUhUTUxMaW5rRWxlbWVudC5oIiwKKwkJCSk7CisJCQlu
YW1lID0gRE9NSFRNTExpbmtFbGVtZW50Lmg7CisJCQlvdXRwdXRQYXRocyA9ICgKKwkJCQkiJChU
QVJHRVRfQlVJTERfRElSKS8kKFBVQkxJQ19IRUFERVJTX0ZPTERFUl9QQVRIKS9ET01IVE1MTGlu
a0VsZW1lbnQuaCIsCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CisJCQlzaGVsbFBhdGggPSAvYmluL3NoOworCQkJc2hlbGxTY3JpcHQgPSAibWtkaXIg
LXAgXCIkVEFSR0VUX0JVSUxEX0RJUi8kUFVCTElDX0hFQURFUlNfRk9MREVSX1BBVEhcIlxuc2Vk
IC1lIHMvV2ViQ29yZS9XZWJLaXQvIFwiJFdFQkNPUkVfUFJJVkFURV9IRUFERVJTX0RJUi9ET01I
VE1MTGlua0VsZW1lbnQuaFwiID4gXCIkVEFSR0VUX0JVSUxEX0RJUi8kUFVCTElDX0hFQURFUlNf
Rk9MREVSX1BBVEgvRE9NSFRNTExpbmtFbGVtZW50LmhcIiI7CisJCX07CiAJCTg1MEU2N0RBMEE5
NTFCNDAwMEVGQjczQSAvKiBET01IVE1MQ29sbGVjdGlvbi5oICovID0gewogCQkJaXNhID0gUEJY
U2hlbGxTY3JpcHRCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsK
QEAgLTE2MDksNiArMTY1MSw4NiBAQAogCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKIAkJCXNoZWxs
U2NyaXB0ID0gIm1rZGlyIC1wIFwiJFRBUkdFVF9CVUlMRF9ESVIvJFBVQkxJQ19IRUFERVJTX0ZP
TERFUl9QQVRIXCJcbnNlZCAtZSBzL1dlYkNvcmUvV2ViS2l0LyBcIiRXRUJDT1JFX1BSSVZBVEVf
SEVBREVSU19ESVIvRE9NSFRNTEVsZW1lbnQuaFwiID4gXCIkVEFSR0VUX0JVSUxEX0RJUi8kUFVC
TElDX0hFQURFUlNfRk9MREVSX1BBVEgvRE9NSFRNTEVsZW1lbnQuaFwiIjsKIAkJfTsKKwkJODU5
QTlDQTkwQUE1RTU0NjAwQjY5NEIyIC8qIERPTUhUTUxNZXRhRWxlbWVudC5oICovID0geworCQkJ
aXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0
NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJKTsKKwkJCWlucHV0UGF0aHMgPSAoCisJCQkJIiQo
V0VCQ09SRV9QUklWQVRFX0hFQURFUlNfRElSKS9ET01IVE1MTWV0YUVsZW1lbnQuaCIsCisJCQkp
OworCQkJbmFtZSA9IERPTUhUTUxNZXRhRWxlbWVudC5oOworCQkJb3V0cHV0UGF0aHMgPSAoCisJ
CQkJIiQoVEFSR0VUX0JVSUxEX0RJUikvJChQVUJMSUNfSEVBREVSU19GT0xERVJfUEFUSCkvRE9N
SFRNTE1ldGFFbGVtZW50LmgiLAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKKwkJCXNoZWxsU2NyaXB0ID0g
Im1rZGlyIC1wIFwiJFRBUkdFVF9CVUlMRF9ESVIvJFBVQkxJQ19IRUFERVJTX0ZPTERFUl9QQVRI
XCJcbnNlZCAtZSBzL1dlYkNvcmUvV2ViS2l0LyBcIiRXRUJDT1JFX1BSSVZBVEVfSEVBREVSU19E
SVIvRE9NSFRNTE1ldGFFbGVtZW50LmhcIiA+IFwiJFRBUkdFVF9CVUlMRF9ESVIvJFBVQkxJQ19I
RUFERVJTX0ZPTERFUl9QQVRIL0RPTUhUTUxNZXRhRWxlbWVudC5oXCIiOworCQl9OworCQk4NTlB
OUNCOTBBQTVFNTlGMDBCNjk0QjIgLyogRE9NSFRNTEJhc2VFbGVtZW50LmggKi8gPSB7CisJCQlp
c2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3
NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJaW5wdXRQYXRocyA9ICgKKwkJCQkiJChX
RUJDT1JFX1BSSVZBVEVfSEVBREVSU19ESVIpL0RPTUhUTUxCYXNlRWxlbWVudC5oIiwKKwkJCSk7
CisJCQluYW1lID0gRE9NSFRNTEJhc2VFbGVtZW50Lmg7CisJCQlvdXRwdXRQYXRocyA9ICgKKwkJ
CQkiJChUQVJHRVRfQlVJTERfRElSKS8kKFBVQkxJQ19IRUFERVJTX0ZPTERFUl9QQVRIKS9ET01I
VE1MQmFzZUVsZW1lbnQuaCIsCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CisJCQlzaGVsbFBhdGggPSAvYmluL3NoOworCQkJc2hlbGxTY3JpcHQgPSAi
bWtkaXIgLXAgXCIkVEFSR0VUX0JVSUxEX0RJUi8kUFVCTElDX0hFQURFUlNfRk9MREVSX1BBVEhc
Ilxuc2VkIC1lIHMvV2ViQ29yZS9XZWJLaXQvIFwiJFdFQkNPUkVfUFJJVkFURV9IRUFERVJTX0RJ
Ui9ET01IVE1MQmFzZUVsZW1lbnQuaFwiID4gXCIkVEFSR0VUX0JVSUxEX0RJUi8kUFVCTElDX0hF
QURFUlNfRk9MREVSX1BBVEgvRE9NSFRNTEJhc2VFbGVtZW50LmhcIiI7CisJCX07CisJCTg1OUE5
Q0MwMEFBNUU1Q0UwMEI2OTRCMiAvKiBET01IVE1MQm9keUVsZW1lbnQuaCAqLyA9IHsKKwkJCWlz
YSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0
ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJCQlpbnB1dFBhdGhzID0gKAorCQkJCSIkKFdF
QkNPUkVfUFJJVkFURV9IRUFERVJTX0RJUikvRE9NSFRNTEJvZHlFbGVtZW50LmgiLAorCQkJKTsK
KwkJCW5hbWUgPSBET01IVE1MQm9keUVsZW1lbnQuaDsKKwkJCW91dHB1dFBhdGhzID0gKAorCQkJ
CSIkKFRBUkdFVF9CVUlMRF9ESVIpLyQoUFVCTElDX0hFQURFUlNfRk9MREVSX1BBVEgpL0RPTUhU
TUxCb2R5RWxlbWVudC5oIiwKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKKwkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlwdCA9ICJt
a2RpciAtcCBcIiRUQVJHRVRfQlVJTERfRElSLyRQVUJMSUNfSEVBREVSU19GT0xERVJfUEFUSFwi
XG5zZWQgLWUgcy9XZWJDb3JlL1dlYktpdC8gXCIkV0VCQ09SRV9QUklWQVRFX0hFQURFUlNfRElS
L0RPTUhUTUxCb2R5RWxlbWVudC5oXCIgPiBcIiRUQVJHRVRfQlVJTERfRElSLyRQVUJMSUNfSEVB
REVSU19GT0xERVJfUEFUSC9ET01IVE1MQm9keUVsZW1lbnQuaFwiIjsKKwkJfTsKKwkJODU5QTlD
QzQwQUE1RTYwMDAwQjY5NEIyIC8qIERPTUhUTUxJc0luZGV4RWxlbWVudC5oICovID0geworCQkJ
aXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0
NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJKTsKKwkJCWlucHV0UGF0aHMgPSAoCisJCQkJIiQo
V0VCQ09SRV9QUklWQVRFX0hFQURFUlNfRElSKS9ET01IVE1MSXNJbmRleEVsZW1lbnQuaCIsCisJ
CQkpOworCQkJbmFtZSA9IERPTUhUTUxJc0luZGV4RWxlbWVudC5oOworCQkJb3V0cHV0UGF0aHMg
PSAoCisJCQkJIiQoVEFSR0VUX0JVSUxEX0RJUikvJChQVUJMSUNfSEVBREVSU19GT0xERVJfUEFU
SCkvRE9NSFRNTElzSW5kZXhFbGVtZW50LmgiLAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKKwkJCXNoZWxs
U2NyaXB0ID0gIm1rZGlyIC1wIFwiJFRBUkdFVF9CVUlMRF9ESVIvJFBVQkxJQ19IRUFERVJTX0ZP
TERFUl9QQVRIXCJcbnNlZCAtZSBzL1dlYkNvcmUvV2ViS2l0LyBcIiRXRUJDT1JFX1BSSVZBVEVf
SEVBREVSU19ESVIvRE9NSFRNTElzSW5kZXhFbGVtZW50LmhcIiA+IFwiJFRBUkdFVF9CVUlMRF9E
SVIvJFBVQkxJQ19IRUFERVJTX0ZPTERFUl9QQVRIL0RPTUhUTUxJc0luZGV4RWxlbWVudC5oXCIi
OworCQl9OworCQk4NTlBOUNDODBBQTVFNjJEMDBCNjk0QjIgLyogRE9NSFRNTFN0eWxlRWxlbWVu
dC5oICovID0geworCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOworCQkJYnVpbGRB
Y3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJKTsKKwkJCWlucHV0UGF0
aHMgPSAoCisJCQkJIiQoV0VCQ09SRV9QUklWQVRFX0hFQURFUlNfRElSKS9ET01IVE1MU3R5bGVF
bGVtZW50LmgiLAorCQkJKTsKKwkJCW5hbWUgPSBET01IVE1MU3R5bGVFbGVtZW50Lmg7CisJCQlv
dXRwdXRQYXRocyA9ICgKKwkJCQkiJChUQVJHRVRfQlVJTERfRElSKS8kKFBVQkxJQ19IRUFERVJT
X0ZPTERFUl9QQVRIKS9ET01IVE1MU3R5bGVFbGVtZW50LmgiLAorCQkJKTsKKwkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsK
KwkJCXNoZWxsU2NyaXB0ID0gIm1rZGlyIC1wIFwiJFRBUkdFVF9CVUlMRF9ESVIvJFBVQkxJQ19I
RUFERVJTX0ZPTERFUl9QQVRIXCJcbnNlZCAtZSBzL1dlYkNvcmUvV2ViS2l0LyBcIiRXRUJDT1JF
X1BSSVZBVEVfSEVBREVSU19ESVIvRE9NQ29yZS5oXCIgPiBcIiRUQVJHRVRfQlVJTERfRElSLyRQ
VUJMSUNfSEVBREVSU19GT0xERVJfUEFUSC9ET01Db3JlLmhcIiI7CisJCX07CiAJCTg1QTVDNUUx
MEE5MDMyQjMwMEY5MUYyQyAvKiBET01FbGVtZW50LmggKi8gPSB7CiAJCQlpc2EgPSBQQlhTaGVs
bFNjcmlwdEJ1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAt
MTY3Myw2ICsxNzk1LDU0IEBACiAJCQlzaGVsbFBhdGggPSAvYmluL3NoOwogCQkJc2hlbGxTY3Jp
cHQgPSAibWtkaXIgLXAgXCIkVEFSR0VUX0JVSUxEX0RJUi8kUFVCTElDX0hFQURFUlNfRk9MREVS
X1BBVEhcIlxuc2VkIC1lIHMvV2ViQ29yZS9XZWJLaXQvIFwiJFdFQkNPUkVfUFJJVkFURV9IRUFE
RVJTX0RJUi9ET01Eb2N1bWVudEZyYWdtZW50LmhcIiA+IFwiJFRBUkdFVF9CVUlMRF9ESVIvJFBV
QkxJQ19IRUFERVJTX0ZPTERFUl9QQVRIL0RPTURvY3VtZW50RnJhZ21lbnQuaFwiIjsKIAkJfTsK
KwkJODVDQTk2NTQwQTk1NjNGQjAwNjkwQ0NGIC8qIERPTUhUTUxIZWFkRWxlbWVudC5oICovID0g
eworCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNr
ID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJKTsKKwkJCWlucHV0UGF0aHMgPSAoCisJ
CQkJIiQoV0VCQ09SRV9QUklWQVRFX0hFQURFUlNfRElSKS9ET01IVE1MSGVhZEVsZW1lbnQuaCIs
CisJCQkpOworCQkJbmFtZSA9IERPTUhUTUxIZWFkRWxlbWVudC5oOworCQkJb3V0cHV0UGF0aHMg
PSAoCisJCQkJIiQoVEFSR0VUX0JVSUxEX0RJUikvJChQVUJMSUNfSEVBREVSU19GT0xERVJfUEFU
SCkvRE9NSFRNTEhlYWRFbGVtZW50LmgiLAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKKwkJCXNoZWxsU2Ny
aXB0ID0gIm1rZGlyIC1wIFwiJFRBUkdFVF9CVUlMRF9ESVIvJFBVQkxJQ19IRUFERVJTX0ZPTERF
Ul9QQVRIXCJcbnNlZCAtZSBzL1dlYkNvcmUvV2ViS2l0LyBcIiRXRUJDT1JFX1BSSVZBVEVfSEVB
REVSU19ESVIvRE9NSFRNTEhlYWRFbGVtZW50LmhcIiA+IFwiJFRBUkdFVF9CVUlMRF9ESVIvJFBV
QkxJQ19IRUFERVJTX0ZPTERFUl9QQVRIL0RPTUhUTUxIZWFkRWxlbWVudC5oXCIiOworCQl9Owor
CQk4NUNBOTY1RDBBOTU2NDREMDA2OTBDQ0YgLyogRE9NSFRNTEh0bWxFbGVtZW50LmggKi8gPSB7
CisJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sg
PSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJaW5wdXRQYXRocyA9ICgKKwkJ
CQkiJChXRUJDT1JFX1BSSVZBVEVfSEVBREVSU19ESVIpL0RPTUhUTUxIdG1sRWxlbWVudC5oIiwK
KwkJCSk7CisJCQluYW1lID0gRE9NSFRNTEh0bWxFbGVtZW50Lmg7CisJCQlvdXRwdXRQYXRocyA9
ICgKKwkJCQkiJChUQVJHRVRfQlVJTERfRElSKS8kKFBVQkxJQ19IRUFERVJTX0ZPTERFUl9QQVRI
KS9ET01IVE1MSHRtbEVsZW1lbnQuaCIsCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CisJCQlzaGVsbFBhdGggPSAvYmluL3NoOworCQkJc2hlbGxTY3Jp
cHQgPSAibWtkaXIgLXAgXCIkVEFSR0VUX0JVSUxEX0RJUi8kUFVCTElDX0hFQURFUlNfRk9MREVS
X1BBVEhcIlxuc2VkIC1lIHMvV2ViQ29yZS9XZWJLaXQvIFwiJFdFQkNPUkVfUFJJVkFURV9IRUFE
RVJTX0RJUi9ET01IVE1MSHRtbEVsZW1lbnQuaFwiID4gXCIkVEFSR0VUX0JVSUxEX0RJUi8kUFVC
TElDX0hFQURFUlNfRk9MREVSX1BBVEgvRE9NSFRNTEh0bWxFbGVtZW50LmhcIiI7CisJCX07CisJ
CTg1Q0E5Njk5MEE5NTY2QzEwMDY5MENDRiAvKiBET01IVE1MVGl0bGVFbGVtZW50LmggKi8gPSB7
CisJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sg
PSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJaW5wdXRQYXRocyA9ICgKKwkJ
CQkiJChXRUJDT1JFX1BSSVZBVEVfSEVBREVSU19ESVIpL0RPTUhUTUxUaXRsZUVsZW1lbnQuaCIs
CisJCQkpOworCQkJbmFtZSA9IERPTUhUTUxUaXRsZUVsZW1lbnQuaDsKKwkJCW91dHB1dFBhdGhz
ID0gKAorCQkJCSIkKFRBUkdFVF9CVUlMRF9ESVIpLyQoUFVCTElDX0hFQURFUlNfRk9MREVSX1BB
VEgpL0RPTUhUTUxUaXRsZUVsZW1lbnQuaCIsCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCQlzaGVsbFBhdGggPSAvYmluL3NoOworCQkJc2hlbGxT
Y3JpcHQgPSAibWtkaXIgLXAgXCIkVEFSR0VUX0JVSUxEX0RJUi8kUFVCTElDX0hFQURFUlNfRk9M
REVSX1BBVEhcIlxuc2VkIC1lIHMvV2ViQ29yZS9XZWJLaXQvIFwiJFdFQkNPUkVfUFJJVkFURV9I
RUFERVJTX0RJUi9ET01IVE1MVGl0bGVFbGVtZW50LmhcIiA+IFwiJFRBUkdFVF9CVUlMRF9ESVIv
JFBVQkxJQ19IRUFERVJTX0ZPTERFUl9QQVRIL0RPTUhUTUxUaXRsZUVsZW1lbnQuaFwiIjsKKwkJ
fTsKIAkJODVERjJFQTkwQUEzODI0NzAwQUQ2NEM1IC8qIERPTUhUTUxGb3JtRWxlbWVudC5oICov
ID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25N
YXNrID0gMjE0NzQ4MzY0NzsK
</data>
<flag name="review"
          id="3264"
          type_id="1"
          status="-"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10318</attachid>
            <date>2006-08-30 11:10:45 -0700</date>
            <delta_ts>2006-08-30 11:27:38 -0700</delta_ts>
            <desc>patch 2</desc>
            <filename>autoHTML5.diff</filename>
            <type>text/plain</type>
            <size>59345</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNjExMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTEgQEAKKzIwMDYtMDgtMzAgIFNhbSBXZWluaWcgIDxzYW0ud2VpbmlnQGdtYWls
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAt
IHBhdGNoIGZvciBodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lk
PTEwNjQwCisgICAgICAgICAgQXV0by1nZW5lcmF0ZSAxMCBtb3JlIE9iamVjdGl2ZS1DIERPTSBI
VE1MIGJpbmRpbmdzCisKKyAgICAgICAgICBBdXRvLWdlbmVyYXRlcyBET01IVE1MQmFzZUVsZW1l
bnQsIERPTUhUTUxCb2R5RWxlbWVudCwgRE9NSFRNTEhlYWRFbGVtZW50LAorICAgICAgICAgIERP
TUhUTUxIdG1sRWxlbWVudCwgRE9NSFRNTElzSW5kZXhFbGVtZW50LCBET01IVE1MTGlua0VsZW1l
bnQsCisgICAgICAgICAgRE9NSFRNTE1ldGFFbGVtZW50LCBET01IVE1MU3R5bGVFbGVtZW50IGFu
ZCBET01IVE1MVGl0bGVFbGVtZW50LgorCisgICAgICAgICAgU3BsaXRzIERPTUhUTUxEb2N1bWVu
dCBpbnRvIGl0J3Mgb3duIGZpbGVzLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
YmluZGluZ3Mvb2JqYy9ET00ubW06CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01FeHRlbnNp
b25zLmg6CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MLmg6CisgICAgICAgICogYmlu
ZGluZ3Mvb2JqYy9ET01IVE1MLm1tOgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTERv
Y3VtZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTERvY3VtZW50
Lm1tOiBBZGRlZC4KKyAgICAgICAgKC1bRE9NSFRNTERvY3VtZW50IFdlYkNvcmU6Ol0pOgorICAg
ICAgICAoLVtET01IVE1MRG9jdW1lbnQgdGl0bGVdKToKKyAgICAgICAgKC1bRE9NSFRNTERvY3Vt
ZW50IHNldFRpdGxlOl0pOgorICAgICAgICAoLVtET01IVE1MRG9jdW1lbnQgcmVmZXJyZXJdKToK
KyAgICAgICAgKC1bRE9NSFRNTERvY3VtZW50IGRvbWFpbl0pOgorICAgICAgICAoLVtET01IVE1M
RG9jdW1lbnQgVVJMXSk6CisgICAgICAgICgtW0RPTUhUTUxEb2N1bWVudCBib2R5XSk6CisgICAg
ICAgICgtW0RPTUhUTUxEb2N1bWVudCBzZXRCb2R5Ol0pOgorICAgICAgICAoLVtET01IVE1MRG9j
dW1lbnQgaW1hZ2VzXSk6CisgICAgICAgICgtW0RPTUhUTUxEb2N1bWVudCBhcHBsZXRzXSk6Cisg
ICAgICAgICgtW0RPTUhUTUxEb2N1bWVudCBsaW5rc10pOgorICAgICAgICAoLVtET01IVE1MRG9j
dW1lbnQgZm9ybXNdKToKKyAgICAgICAgKC1bRE9NSFRNTERvY3VtZW50IGFuY2hvcnNdKToKKyAg
ICAgICAgKC1bRE9NSFRNTERvY3VtZW50IGNvb2tpZV0pOgorICAgICAgICAoLVtET01IVE1MRG9j
dW1lbnQgc2V0Q29va2llOl0pOgorICAgICAgICAoLVtET01IVE1MRG9jdW1lbnQgb3Blbl0pOgor
ICAgICAgICAoLVtET01IVE1MRG9jdW1lbnQgY2xvc2VdKToKKyAgICAgICAgKC1bRE9NSFRNTERv
Y3VtZW50IHdyaXRlOl0pOgorICAgICAgICAoLVtET01IVE1MRG9jdW1lbnQgd3JpdGVsbjpdKToK
KyAgICAgICAgKC1bRE9NSFRNTERvY3VtZW50IGdldEVsZW1lbnRCeUlkOl0pOgorICAgICAgICAo
LVtET01IVE1MRG9jdW1lbnQgZ2V0RWxlbWVudHNCeU5hbWU6XSk6CisgICAgICAgICgtW0RPTUhU
TUxEb2N1bWVudCBjcmVhdGVEb2N1bWVudEZyYWdtZW50V2l0aE1hcmt1cFN0cmluZzpiYXNlVVJM
Ol0pOgorICAgICAgICAoLVtET01IVE1MRG9jdW1lbnQgY3JlYXRlRG9jdW1lbnRGcmFnbWVudFdp
dGhUZXh0Ol0pOgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTEludGVybmFsLmg6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbToKKyAgICAgICAg
KiBodG1sL0hUTUxEb2N1bWVudC5pZGw6CisKIDIwMDYtMDgtMjkgIEJyYWR5IEVpZHNvbiAgPGJl
aWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtldmluIERlY2tlciAoU2Fy
Z2UpCkluZGV4OiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAxNjExMikKKysrIFdlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtNjIsMTAgKzYyLDE5IEBAIGFsbCA6
IFwKICAgICBET01Ob3RhdGlvbi5oIFwKICAgICBET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBc
CiAgICAgRE9NVGV4dC5oIFwKKyAgICBET01IVE1MQmFzZUVsZW1lbnQuaCBcCisgICAgRE9NSFRN
TEJvZHlFbGVtZW50LmggXAogICAgIERPTUhUTUxDb2xsZWN0aW9uLmggXAogICAgIERPTUhUTUxF
bGVtZW50LmggXAogICAgIERPTUhUTUxGb3JtRWxlbWVudC5oIFwKKyAgICBET01IVE1MSGVhZEVs
ZW1lbnQuaCBcCisgICAgRE9NSFRNTEh0bWxFbGVtZW50LmggXAorICAgIERPTUhUTUxJc0luZGV4
RWxlbWVudC5oIFwKKyAgICBET01IVE1MTGlua0VsZW1lbnQuaCBcCisgICAgRE9NSFRNTE1ldGFF
bGVtZW50LmggXAogICAgIERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oIFwKKyAgICBET01IVE1M
U3R5bGVFbGVtZW50LmggXAorICAgIERPTUhUTUxUaXRsZUVsZW1lbnQuaCBcCiAgICAgSFRNTEVu
dGl0eU5hbWVzLmMgXAogICAgIEpTQXR0ci5oIFwKICAgICBKU0NTU1ByaW1pdGl2ZVZhbHVlLmgg
XApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlz
aW9uIDE2MTEyKQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTM4NSw2ICszODUsMjYgQEAKIAkJODU2Qzg5RkQwQTkwRjA2ODAw
NUM2ODdCIC8qIERPTU5vZGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NTZDODlGQjBBOTBGMDY4MDA1QzY4N0IgLyogRE9NTm9kZS5tbSAqLzsgfTsK
IAkJODU2QzhBRTQwQTkxMjY0OTAwNUM2ODdCIC8qIERPTU9iamVjdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU2QzhBRTIwQTkxMjY0OTAwNUM2ODdC
IC8qIERPTU9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTg1NkM4QUU1MEE5MTI2NDkwMDVDNjg3QiAvKiBET01PYmplY3QubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTZDOEFFMzBBOTEyNjQ5
MDA1QzY4N0IgLyogRE9NT2JqZWN0Lm1tICovOyB9OworCQk4NTk5MkVCQTBBQTUwNjk1MDBBQzA3
ODUgLyogRE9NSFRNTEhlYWRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NTk5MkVCMjBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTEhlYWRF
bGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJODU5OTJFQkIwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxIZWFkRWxlbWVudC5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1OTkyRUIzMEFBNTA2
OTUwMEFDMDc4NSAvKiBET01IVE1MSGVhZEVsZW1lbnQubW0gKi87IH07CisJCTg1OTkyRUJDMEFB
NTA2OTUwMEFDMDc4NSAvKiBET01IVE1MSHRtbEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1OTkyRUI0MEFBNTA2OTUwMEFDMDc4NSAvKiBE
T01IVE1MSHRtbEVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk4NTk5MkVCRDBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTEh0bWxFbGVt
ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU5
OTJFQjUwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxIdG1sRWxlbWVudC5tbSAqLzsgfTsKKwkJ
ODU5OTJFQkUwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxMaW5rRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU5OTJFQjYwQUE1MDY5NTAw
QUMwNzg1IC8qIERPTUhUTUxMaW5rRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTg1OTkyRUJGMEFBNTA2OTUwMEFDMDc4NSAvKiBET01I
VE1MTGlua0VsZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NTk5MkVCNzBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTExpbmtFbGVtZW50Lm1t
ICovOyB9OworCQk4NTk5MkVDMDBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTFRpdGxlRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU5OTJF
QjgwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxUaXRsZUVsZW1lbnQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4NTk5MkVDMTBBQTUwNjk1MDBB
QzA3ODUgLyogRE9NSFRNTFRpdGxlRWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1OTkyRUI5MEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1M
VGl0bGVFbGVtZW50Lm1tICovOyB9OworCQk4NTk5MkZDMDBBQTVERDQwMDBBQzA3ODUgLyogRE9N
SFRNTERvY3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NTk5MkZCRTBBQTVERDQwMDBBQzA3ODUgLyogRE9NSFRNTERvY3VtZW50LmggKi87IH07
CisJCTg1OTkyRkMxMEFBNURENDAwMEFDMDc4NSAvKiBET01IVE1MRG9jdW1lbnQubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTk5MkZCRjBBQTVERDQw
MDBBQzA3ODUgLyogRE9NSFRNTERvY3VtZW50Lm1tICovOyB9OworCQk4NTlBOUM0NzBBQTVFM0JE
MDBCNjk0QjIgLyogRE9NSFRNTEJhc2VFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTlBOUMzRDBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRN
TEJhc2VFbGVtZW50LmggKi87IH07CisJCTg1OUE5QzQ4MEFBNUUzQkQwMEI2OTRCMiAvKiBET01I
VE1MQmFzZUVsZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NTlBOUMzRTBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTEJhc2VFbGVtZW50Lm1t
ICovOyB9OworCQk4NTlBOUM0OTBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTEJvZHlFbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTlBOUMz
RjBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTEJvZHlFbGVtZW50LmggKi87IH07CisJCTg1OUE5
QzRBMEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MQm9keUVsZW1lbnQubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTlBOUM0MDBBQTVFM0JEMDBCNjk0
QjIgLyogRE9NSFRNTEJvZHlFbGVtZW50Lm1tICovOyB9OworCQk4NTlBOUM0QjBBQTVFM0JEMDBC
Njk0QjIgLyogRE9NSFRNTElzSW5kZXhFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTlBOUM0MTBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRN
TElzSW5kZXhFbGVtZW50LmggKi87IH07CisJCTg1OUE5QzRDMEFBNUUzQkQwMEI2OTRCMiAvKiBE
T01IVE1MSXNJbmRleEVsZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NTlBOUM0MjBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTElzSW5kZXhF
bGVtZW50Lm1tICovOyB9OworCQk4NTlBOUM0RDBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTE1l
dGFFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NTlBOUM0MzBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTE1ldGFFbGVtZW50LmggKi87IH07
CisJCTg1OUE5QzRFMEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MTWV0YUVsZW1lbnQubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTlBOUM0NDBBQTVF
M0JEMDBCNjk0QjIgLyogRE9NSFRNTE1ldGFFbGVtZW50Lm1tICovOyB9OworCQk4NTlBOUM0RjBB
QTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTFN0eWxlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU5QTlDNDUwQUE1RTNCRDAwQjY5NEIyIC8q
IERPTUhUTUxTdHlsZUVsZW1lbnQuaCAqLzsgfTsKKwkJODU5QTlDNTAwQUE1RTNCRDAwQjY5NEIy
IC8qIERPTUhUTUxTdHlsZUVsZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NTlBOUM0NjBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTFN0eWxl
RWxlbWVudC5tbSAqLzsgfTsKIAkJODVBQ0E5ODYwQTlCNTIwMzAwNjcxRTkwIC8qIERPTUNoYXJh
Y3RlckRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg1QUNBOTg0MEE5QjUyMDMwMDY3MUU5MCAvKiBET01DaGFyYWN0ZXJEYXRhLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODVBQ0E5ODcwQTlCNTIw
MzAwNjcxRTkwIC8qIERPTUNoYXJhY3RlckRhdGEubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUFDQTk4NTBBOUI1MjAzMDA2NzFFOTAgLyogRE9NQ2hh
cmFjdGVyRGF0YS5tbSAqLzsgfTsKIAkJODVBQ0E5OUMwQTlCNTc1OTAwNjcxRTkwIC8qIERPTVRl
eHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QUNB
OTlBMEE5QjU3NTkwMDY3MUU5MCAvKiBET01UZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTIxOTYsNiArMjIxNiwyNiBAQAogCQk4NTZDODlG
QjBBOTBGMDY4MDA1QzY4N0IgLyogRE9NTm9kZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBET01Ob2RlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4NTZDOEFFMjBBOTEyNjQ5MDA1QzY4N0IgLyogRE9NT2JqZWN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBET01PYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODU2QzhBRTMwQTkxMjY0OTAwNUM2ODdCIC8qIERPTU9iamVjdC5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01PYmplY3QubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTg1OTkyRUIyMEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MSGVh
ZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhUTUxIZWFk
RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NTk5MkVCMzBBQTUwNjk1
MDBBQzA3ODUgLyogRE9NSFRNTEhlYWRFbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IERPTUhUTUxIZWFkRWxlbWVudC5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJODU5OTJFQjQwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxIdG1sRWxl
bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTEh0bWxFbGVt
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg1OTkyRUI1MEFBNTA2OTUwMEFD
MDc4NSAvKiBET01IVE1MSHRtbEVsZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gRE9NSFRNTEh0bWxFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4NTk5MkVCNjBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTExpbmtFbGVtZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MTGlua0VsZW1lbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODU5OTJFQjcwQUE1MDY5NTAwQUMwNzg1
IC8qIERPTUhUTUxMaW5rRWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBET01IVE1MTGlua0VsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTg1OTkyRUI4MEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MVGl0bGVFbGVtZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MVGl0bGVFbGVtZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg1OTkyRUI5MEFBNTA2OTUwMEFDMDc4NSAv
KiBET01IVE1MVGl0bGVFbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IERPTUhUTUxUaXRsZUVsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTg1OTkyRkJFMEFBNURENDAwMEFDMDc4NSAvKiBET01IVE1MRG9jdW1lbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhUTUxEb2N1bWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk4NTk5MkZCRjBBQTVERDQwMDBBQzA3ODUgLyogRE9NSFRN
TERvY3VtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERP
TUhUTUxEb2N1bWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODU5QTlDM0Qw
QUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxCYXNlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTEJhc2VFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTg1OUE5QzNFMEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MQmFzZUVsZW1l
bnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NSFRNTEJh
c2VFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NTlBOUMzRjBBQTVF
M0JEMDBCNjk0QjIgLyogRE9NSFRNTEJvZHlFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBET01IVE1MQm9keUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJODU5QTlDNDAwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxCb2R5RWxlbWVudC5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01IVE1MQm9keUVs
ZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg1OUE5QzQxMEFBNUUzQkQw
MEI2OTRCMiAvKiBET01IVE1MSXNJbmRleEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERPTUhUTUxJc0luZGV4RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4NTlBOUM0MjBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTElzSW5kZXhFbGVt
ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUhUTUxJ
c0luZGV4RWxlbWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODU5QTlDNDMw
QUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxNZXRhRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTE1ldGFFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTg1OUE5QzQ0MEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MTWV0YUVsZW1l
bnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NSFRNTE1l
dGFFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NTlBOUM0NTBBQTVF
M0JEMDBCNjk0QjIgLyogRE9NSFRNTFN0eWxlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRE9NSFRNTFN0eWxlRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4NTlBOUM0NjBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTFN0eWxlRWxlbWVu
dC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01IVE1MU3R5
bGVFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTlCN0ZCOTBBOEQy
ODg4MDBBNUYxRUEgLyogQ29kZUdlbmVyYXRvck9iakMucG0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3Jp
cHQucGVybDsgbmFtZSA9IENvZGVHZW5lcmF0b3JPYmpDLnBtOyBwYXRoID0gYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbTsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9Owog
CQk4NUFDQTk4NDBBOUI1MjAzMDA2NzFFOTAgLyogRE9NQ2hhcmFjdGVyRGF0YS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQ2hhcmFjdGVyRGF0YS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4NUFDQTk4NTBBOUI1MjAzMDA2NzFFOTAgLyogRE9NQ2hhcmFj
dGVyRGF0YS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01D
aGFyYWN0ZXJEYXRhLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDI2NCw2ICs0
MzA0LDE1IEBACiAJCQluYW1lID0gQ29yZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJ
CX07CisJCTg1OTkyRkMyMEFBNURENDYwMEFDMDc4NSAvKiBIVE1MICovID0geworCQkJaXNhID0g
UEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk4NTk5MkZCRTBBQTVERDQwMDBBQzA3ODUg
LyogRE9NSFRNTERvY3VtZW50LmggKi8sCisJCQkJODU5OTJGQkYwQUE1REQ0MDAwQUMwNzg1IC8q
IERPTUhUTUxEb2N1bWVudC5tbSAqLywKKwkJCSk7CisJCQluYW1lID0gSFRNTDsKKwkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTg1QjIzMjI2MEE4QkYzQTEwMEZERjQ3QiAvKiBE
ZXJpdmVkIFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KApAQCAtNDMwNSw4ICs0MzU0LDI2IEBACiAJCQkJODVERjJFRUMwQUEzODdDQjAwQUQ2NEM1IC8q
IERPTUhUTUxFbGVtZW50Lm1tICovLAogCQkJCTg1REYyQzEwMEFBMzQxRjYwMEFENjRDNSAvKiBE
T01IVE1MRm9ybUVsZW1lbnQuaCAqLywKIAkJCQk4NURGMkMxMTBBQTM0MUY2MDBBRDY0QzUgLyog
RE9NSFRNTEZvcm1FbGVtZW50Lm1tICovLAorCQkJCTg1OTkyRUIyMEFBNTA2OTUwMEFDMDc4NSAv
KiBET01IVE1MSGVhZEVsZW1lbnQuaCAqLywKKwkJCQk4NTk5MkVCMzBBQTUwNjk1MDBBQzA3ODUg
LyogRE9NSFRNTEhlYWRFbGVtZW50Lm1tICovLAorCQkJCTg1OTkyRUI0MEFBNTA2OTUwMEFDMDc4
NSAvKiBET01IVE1MSHRtbEVsZW1lbnQuaCAqLywKKwkJCQk4NTk5MkVCNTBBQTUwNjk1MDBBQzA3
ODUgLyogRE9NSFRNTEh0bWxFbGVtZW50Lm1tICovLAorCQkJCTg1OTkyRUI2MEFBNTA2OTUwMEFD
MDc4NSAvKiBET01IVE1MTGlua0VsZW1lbnQuaCAqLywKKwkJCQk4NTk5MkVCNzBBQTUwNjk1MDBB
QzA3ODUgLyogRE9NSFRNTExpbmtFbGVtZW50Lm1tICovLAogCQkJCTg1REYyRjk5MEFBM0NBRTUw
MEFENjRDNSAvKiBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCAqLywKIAkJCQk4NURGMkY5QTBB
QTNDQUU1MDBBRDY0QzUgLyogRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLm1tICovLAorCQkJCTg1
OTkyRUI4MEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MVGl0bGVFbGVtZW50LmggKi8sCisJCQkJ
ODU5OTJFQjkwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxUaXRsZUVsZW1lbnQubW0gKi8sCisJ
CQkJODU5QTlDM0QwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxCYXNlRWxlbWVudC5oICovLAor
CQkJCTg1OUE5QzNFMEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MQmFzZUVsZW1lbnQubW0gKi8s
CisJCQkJODU5QTlDM0YwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxCb2R5RWxlbWVudC5oICov
LAorCQkJCTg1OUE5QzQwMEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MQm9keUVsZW1lbnQubW0g
Ki8sCisJCQkJODU5QTlDNDEwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxJc0luZGV4RWxlbWVu
dC5oICovLAorCQkJCTg1OUE5QzQyMEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MSXNJbmRleEVs
ZW1lbnQubW0gKi8sCisJCQkJODU5QTlDNDMwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxNZXRh
RWxlbWVudC5oICovLAorCQkJCTg1OUE5QzQ0MEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MTWV0
YUVsZW1lbnQubW0gKi8sCisJCQkJODU5QTlDNDUwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxT
dHlsZUVsZW1lbnQuaCAqLywKKwkJCQk4NTlBOUM0NjBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRN
TFN0eWxlRWxlbWVudC5tbSAqLywKIAkJCSk7CiAJCQluYW1lID0gIkRlcml2ZWQgU291cmNlcyI7
CiAJCQlwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViQ29yZTsKQEAgLTUzMjEsNiArNTM4OCw3IEBA
CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk4NUIyMzIyNjBBOEJGM0ExMDBGREY0N0IgLyogRGVyaXZl
ZCBTb3VyY2VzICovLAogCQkJCTg1NEYxMkFDMEE4RUJDMTgwMDA5NDBCNSAvKiBDb3JlICovLAor
CQkJCTg1OTkyRkMyMEFBNURENDYwMEFDMDc4NSAvKiBIVE1MICovLAogCQkJCTg1OUI3RkI5MEE4
RDI4ODgwMEE1RjFFQSAvKiBDb2RlR2VuZXJhdG9yT2JqQy5wbSAqLywKIAkJCQlCQzFBMzc5NzA5
N0M3MTVGMDAxOUYzRDggLyogRE9NLmggKi8sCiAJCQkJQkMxQTM3OTgwOTdDNzE1RjAwMTlGM0Q4
IC8qIERPTS5tbSAqLywKQEAgLTY4MTEsNiArNjg3OSwxNiBAQAogCQkJCTg1REYyRUVEMEFBMzg3
Q0IwMEFENjRDNSAvKiBET01IVE1MRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVERjJG
OEUwQUEzQzg4MTAwQUQ2NEM1IC8qIERPTUhUTUxDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4NURGMkY5QjBBQTNDQUU1MDBBRDY0QzUgLyogRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9u
LmggaW4gSGVhZGVycyAqLywKKwkJCQk4NTk5MkVCQTBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRN
TEhlYWRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk4NTk5MkVCQzBBQTUwNjk1MDBBQzA3
ODUgLyogRE9NSFRNTEh0bWxFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk4NTk5MkVCRTBB
QTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTExpbmtFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJ
CQk4NTk5MkVDMDBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTFRpdGxlRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJODU5OTJGQzAwQUE1REQ0MDAwQUMwNzg1IC8qIERPTUhUTUxEb2N1bWVu
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJODU5QTlDNDcwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhU
TUxCYXNlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJODU5QTlDNDkwQUE1RTNCRDAwQjY5
NEIyIC8qIERPTUhUTUxCb2R5RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJODU5QTlDNEIw
QUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxJc0luZGV4RWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJODU5QTlDNEQwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxNZXRhRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJODU5QTlDNEYwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxTdHls
ZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNzc0MSw2ICs3ODE5LDE2IEBACiAJCQkJODVE
RjJGOUMwQUEzQ0FFNTAwQUQ2NEM1IC8qIERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTFBRTQyRjZBMEFBNEI4Q0IwMEM4NjEyRCAvKiBTdHJpbmdDRi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxQUU0MkY2QjBBQTRCOENCMDBDODYxMkQgLyogU3RyaW5nSW1w
bENGLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTg1OTkyRUJCMEFBNTA2OTUwMEFDMDc4NSAvKiBE
T01IVE1MSGVhZEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQk4NTk5MkVCRDBBQTUwNjk1
MDBBQzA3ODUgLyogRE9NSFRNTEh0bWxFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJODU5
OTJFQkYwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxMaW5rRWxlbWVudC5tbSBpbiBTb3VyY2Vz
ICovLAorCQkJCTg1OTkyRUMxMEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MVGl0bGVFbGVtZW50
Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJODU5OTJGQzEwQUE1REQ0MDAwQUMwNzg1IC8qIERPTUhU
TUxEb2N1bWVudC5tbSBpbiBTb3VyY2VzICovLAorCQkJCTg1OUE5QzQ4MEFBNUUzQkQwMEI2OTRC
MiAvKiBET01IVE1MQmFzZUVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQk4NTlBOUM0QTBB
QTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTEJvZHlFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCisJ
CQkJODU5QTlDNEMwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxJc0luZGV4RWxlbWVudC5tbSBp
biBTb3VyY2VzICovLAorCQkJCTg1OUE5QzRFMEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MTWV0
YUVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQk4NTlBOUM1MDBBQTVFM0JEMDBCNjk0QjIg
LyogRE9NSFRNTFN0eWxlRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL29iamMv
RE9NLm1tCShyZXZpc2lvbiAxNjExMikKKysrIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET00ubW0J
KHdvcmtpbmcgY29weSkKQEAgLTg0LDExICs4NCwyMyBAQAogI2ltcG9ydCAiRE9NUHJvY2Vzc2lu
Z0luc3RydWN0aW9uLmgiCiAjaW1wb3J0ICJET01UZXh0LmgiCiAKKy8vIEZyb20gb2xkIERPTUhU
TUwuaAorI2ltcG9ydCAiRE9NSFRNTERvY3VtZW50LmgiCisKIC8vIEdlbmVyYXRlZCBPYmplY3Rp
dmUtQyBCaW5kaW5ncworI2ltcG9ydCAiRE9NSFRNTEJhc2VFbGVtZW50LmgiCisjaW1wb3J0ICJE
T01IVE1MQm9keUVsZW1lbnQuaCIKICNpbXBvcnQgIkRPTUhUTUxDb2xsZWN0aW9uLmgiCiAjaW1w
b3J0ICJET01IVE1MRWxlbWVudC5oIgogI2ltcG9ydCAiRE9NSFRNTEZvcm1FbGVtZW50LmgiCisj
aW1wb3J0ICJET01IVE1MSGVhZEVsZW1lbnQuaCIKKyNpbXBvcnQgIkRPTUhUTUxIdG1sRWxlbWVu
dC5oIgorI2ltcG9ydCAiRE9NSFRNTElzSW5kZXhFbGVtZW50LmgiCisjaW1wb3J0ICJET01IVE1M
TGlua0VsZW1lbnQuaCIKKyNpbXBvcnQgIkRPTUhUTUxNZXRhRWxlbWVudC5oIgogI2ltcG9ydCAi
RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgiCisjaW1wb3J0ICJET01IVE1MU3R5bGVFbGVtZW50
LmgiCisjaW1wb3J0ICJET01IVE1MVGl0bGVFbGVtZW50LmgiCiAKICNpbXBvcnQgPG9iamMvb2Jq
Yy1jbGFzcy5oPgogCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRXh0ZW5zaW9ucy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01FeHRlbnNpb25zLmgJKHJl
dmlzaW9uIDE2MTEyKQorKysgV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUV4dGVuc2lvbnMuaAko
d29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsOCBAQAogI2ltcG9ydCA8V2ViQ29yZS9ET01SYW5n
ZS5oPgogCiAjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxFbGVtZW50Lmg+CisjaW1wb3J0IDxXZWJD
b3JlL0RPTUhUTUxEb2N1bWVudC5oPgorI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MTGlua0VsZW1l
bnQuaD4KIAogQGNsYXNzIE5TQ29sb3I7CiBAY2xhc3MgTlNJbWFnZTsKQEAgLTQ4LDExICs1MCw2
IEBACiAtIChOU0ltYWdlICopaW1hZ2U7CiBAZW5kCiAKLUBpbnRlcmZhY2UgRE9NSFRNTERvY3Vt
ZW50IChET01IVE1MRG9jdW1lbnRFeHRlbnNpb25zKQotLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAq
KWNyZWF0ZURvY3VtZW50RnJhZ21lbnRXaXRoTWFya3VwU3RyaW5nOihOU1N0cmluZyAqKW1hcmt1
cFN0cmluZyBiYXNlVVJMOihOU1VSTCAqKWJhc2VVUkw7Ci0tIChET01Eb2N1bWVudEZyYWdtZW50
ICopY3JlYXRlRG9jdW1lbnRGcmFnbWVudFdpdGhUZXh0OihOU1N0cmluZyAqKXRleHQ7Ci1AZW5k
Ci0KIEBpbnRlcmZhY2UgRE9NSFRNTElucHV0RWxlbWVudCAoRE9NSFRNTElucHV0RWxlbWVudEV4
dGVuc2lvbnMpCiAtIChOU1N0cmluZyAqKWFsdERpc3BsYXlTdHJpbmc7CiAtIChOU1VSTCAqKWFi
c29sdXRlSW1hZ2VVUkw7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MLmgJKHJldmlzaW9uIDE2
MTEyKQorKysgV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVs
IFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI1LDEyMSArMjYsMjQgQEAKIAogI2ltcG9ydCA8V2ViQ29yZS9ET01Db3JlLmg+
CiAKKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEJhc2VFbGVtZW50Lmg+CisjaW1wb3J0IDxXZWJD
b3JlL0RPTUhUTUxCb2R5RWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MQ29sbGVj
dGlvbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MRG9jdW1lbnQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvRE9NSFRNTEVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEZvcm1FbGVt
ZW50Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxIZWFkRWxlbWVudC5oPgorI2ltcG9ydCA8
V2ViQ29yZS9ET01IVE1MSHRtbEVsZW1lbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTElz
SW5kZXhFbGVtZW50Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxMaW5rRWxlbWVudC5oPgor
I2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MTWV0YUVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUv
RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmg+CisjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxTdHls
ZUVsZW1lbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTFRpdGxlRWxlbWVudC5oPgogCiBA
Y2xhc3MgRE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQ7CiBAY2xhc3MgRE9NSFRNTFRhYmxlU2Vj
dGlvbkVsZW1lbnQ7CiAKLUBpbnRlcmZhY2UgRE9NSFRNTERvY3VtZW50IDogRE9NRG9jdW1lbnQK
LS0gKE5TU3RyaW5nICopdGl0bGU7Ci0tICh2b2lkKXNldFRpdGxlOihOU1N0cmluZyAqKXRpdGxl
OwotLSAoTlNTdHJpbmcgKilyZWZlcnJlcjsKLS0gKE5TU3RyaW5nICopZG9tYWluOwotLSAoTlNT
dHJpbmcgKilVUkw7Ci0tIChET01IVE1MRWxlbWVudCAqKWJvZHk7Ci0tICh2b2lkKXNldEJvZHk6
KERPTUhUTUxFbGVtZW50ICopYm9keTsKLS0gKERPTUhUTUxDb2xsZWN0aW9uICopaW1hZ2VzOwot
LSAoRE9NSFRNTENvbGxlY3Rpb24gKilhcHBsZXRzOwotLSAoRE9NSFRNTENvbGxlY3Rpb24gKils
aW5rczsKLS0gKERPTUhUTUxDb2xsZWN0aW9uICopZm9ybXM7Ci0tIChET01IVE1MQ29sbGVjdGlv
biAqKWFuY2hvcnM7Ci0tIChOU1N0cmluZyAqKWNvb2tpZTsKLS0gKHZvaWQpc2V0Q29va2llOihO
U1N0cmluZyAqKWNvb2tpZTsKLS0gKHZvaWQpb3BlbjsKLS0gKHZvaWQpY2xvc2U7Ci0tICh2b2lk
KXdyaXRlOihOU1N0cmluZyAqKXRleHQ7Ci0tICh2b2lkKXdyaXRlbG46KE5TU3RyaW5nICopdGV4
dDsKLS0gKERPTUVsZW1lbnQgKilnZXRFbGVtZW50QnlJZDooTlNTdHJpbmcgKillbGVtZW50SWQ7
Ci0tIChET01Ob2RlTGlzdCAqKWdldEVsZW1lbnRzQnlOYW1lOihOU1N0cmluZyAqKWVsZW1lbnRO
YW1lOwotQGVuZAotCi1AaW50ZXJmYWNlIERPTUhUTUxIdG1sRWxlbWVudCA6IERPTUhUTUxFbGVt
ZW50Ci0tIChOU1N0cmluZyAqKXZlcnNpb247Ci0tICh2b2lkKXNldFZlcnNpb246KE5TU3RyaW5n
ICopdmVyc2lvbjsKLUBlbmQKLQotQGludGVyZmFjZSBET01IVE1MSGVhZEVsZW1lbnQgOiBET01I
VE1MRWxlbWVudAotLSAoTlNTdHJpbmcgKilwcm9maWxlOwotLSAodm9pZClzZXRQcm9maWxlOihO
U1N0cmluZyAqKXByb2ZpbGU7Ci1AZW5kCi0KLUBpbnRlcmZhY2UgRE9NSFRNTExpbmtFbGVtZW50
IDogRE9NSFRNTEVsZW1lbnQKLS0gKEJPT0wpZGlzYWJsZWQ7Ci0tICh2b2lkKXNldERpc2FibGVk
OihCT09MKWRpc2FibGVkOwotLSAoTlNTdHJpbmcgKiljaGFyc2V0OwotLSAodm9pZClzZXRDaGFy
c2V0OihOU1N0cmluZyAqKWNoYXJzZXQ7Ci0tIChOU1N0cmluZyAqKWhyZWY7Ci0tICh2b2lkKXNl
dEhyZWY6KE5TU3RyaW5nICopaHJlZjsKLS0gKE5TU3RyaW5nICopaHJlZmxhbmc7Ci0tICh2b2lk
KXNldEhyZWZsYW5nOihOU1N0cmluZyAqKWhyZWZsYW5nOwotLSAoTlNTdHJpbmcgKiltZWRpYTsK
LS0gKHZvaWQpc2V0TWVkaWE6KE5TU3RyaW5nICopbWVkaWE7Ci0tIChOU1N0cmluZyAqKXJlbDsK
LS0gKHZvaWQpc2V0UmVsOihOU1N0cmluZyAqKXJlbDsKLS0gKE5TU3RyaW5nICopcmV2OwotLSAo
dm9pZClzZXRSZXY6KE5TU3RyaW5nICopcmV2OwotLSAoTlNTdHJpbmcgKil0YXJnZXQ7Ci0tICh2
b2lkKXNldFRhcmdldDooTlNTdHJpbmcgKil0YXJnZXQ7Ci0tIChOU1N0cmluZyAqKXR5cGU7Ci0t
ICh2b2lkKXNldFR5cGU6KE5TU3RyaW5nICopdHlwZTsKLUBlbmQKLQotQGludGVyZmFjZSBET01I
VE1MVGl0bGVFbGVtZW50IDogRE9NSFRNTEVsZW1lbnQKLS0gKE5TU3RyaW5nICopdGV4dDsKLS0g
KHZvaWQpc2V0VGV4dDooTlNTdHJpbmcgKil0ZXh0OwotQGVuZAotCi1AaW50ZXJmYWNlIERPTUhU
TUxNZXRhRWxlbWVudCA6IERPTUhUTUxFbGVtZW50Ci0tIChOU1N0cmluZyAqKWNvbnRlbnQ7Ci0t
ICh2b2lkKXNldENvbnRlbnQ6KE5TU3RyaW5nICopY29udGVudDsKLS0gKE5TU3RyaW5nICopaHR0
cEVxdWl2OwotLSAodm9pZClzZXRIdHRwRXF1aXY6KE5TU3RyaW5nICopaHR0cEVxdWl2OwotLSAo
TlNTdHJpbmcgKiluYW1lOwotLSAodm9pZClzZXROYW1lOihOU1N0cmluZyAqKW5hbWU7Ci0tIChO
U1N0cmluZyAqKXNjaGVtZTsKLS0gKHZvaWQpc2V0U2NoZW1lOihOU1N0cmluZyAqKXNjaGVtZTsK
LUBlbmQKLQotQGludGVyZmFjZSBET01IVE1MQmFzZUVsZW1lbnQgOiBET01IVE1MRWxlbWVudAot
LSAoTlNTdHJpbmcgKilocmVmOwotLSAodm9pZClzZXRIcmVmOihOU1N0cmluZyAqKWhyZWY7Ci0t
IChOU1N0cmluZyAqKXRhcmdldDsKLS0gKHZvaWQpc2V0VGFyZ2V0OihOU1N0cmluZyAqKXRhcmdl
dDsKLUBlbmQKLQotQGludGVyZmFjZSBET01IVE1MSXNJbmRleEVsZW1lbnQgOiBET01IVE1MRWxl
bWVudAotLSAoRE9NSFRNTEZvcm1FbGVtZW50ICopZm9ybTsKLS0gKE5TU3RyaW5nICopcHJvbXB0
OwotLSAodm9pZClzZXRQcm9tcHQ6KE5TU3RyaW5nICopcHJvbXB0OwotQGVuZAotCi1AaW50ZXJm
YWNlIERPTUhUTUxTdHlsZUVsZW1lbnQgOiBET01IVE1MRWxlbWVudAotLSAoQk9PTClkaXNhYmxl
ZDsKLS0gKHZvaWQpc2V0RGlzYWJsZWQ6KEJPT0wpZGlzYWJsZWQ7Ci0tIChOU1N0cmluZyAqKW1l
ZGlhOwotLSAodm9pZClzZXRNZWRpYTooTlNTdHJpbmcgKiltZWRpYTsKLS0gKE5TU3RyaW5nICop
dHlwZTsKLS0gKHZvaWQpc2V0VHlwZTooTlNTdHJpbmcgKil0eXBlOwotQGVuZAotCi1AaW50ZXJm
YWNlIERPTUhUTUxCb2R5RWxlbWVudCA6IERPTUhUTUxFbGVtZW50Ci0tIChOU1N0cmluZyAqKWFM
aW5rOwotLSAodm9pZClzZXRBTGluazooTlNTdHJpbmcgKilhTGluazsKLS0gKE5TU3RyaW5nICop
YmFja2dyb3VuZDsKLS0gKHZvaWQpc2V0QmFja2dyb3VuZDooTlNTdHJpbmcgKiliYWNrZ3JvdW5k
OwotLSAoTlNTdHJpbmcgKiliZ0NvbG9yOwotLSAodm9pZClzZXRCZ0NvbG9yOihOU1N0cmluZyAq
KWJnQ29sb3I7Ci0tIChOU1N0cmluZyAqKWxpbms7Ci0tICh2b2lkKXNldExpbms6KE5TU3RyaW5n
ICopbGluazsKLS0gKE5TU3RyaW5nICopdGV4dDsKLS0gKHZvaWQpc2V0VGV4dDooTlNTdHJpbmcg
Kil0ZXh0OwotLSAoTlNTdHJpbmcgKil2TGluazsKLS0gKHZvaWQpc2V0Vkxpbms6KE5TU3RyaW5n
ICopdkxpbms7Ci1AZW5kCi0KIEBpbnRlcmZhY2UgRE9NSFRNTFNlbGVjdEVsZW1lbnQgOiBET01I
VE1MRWxlbWVudAogLSAoTlNTdHJpbmcgKil0eXBlOwogLSAoaW50KXNlbGVjdGVkSW5kZXg7Cklu
ZGV4OiBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTC5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTC5tbQkocmV2aXNpb24gMTYxMTIpCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL29iamMvRE9NSFRNTC5tbQkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndl
aW5pZ0BnbWFpbC5jb20+CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE4NCwx
MzUgKzE4NSw2IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAvLy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gRE9NSFRNTERvY3VtZW50CiAKLUBpbXBsZW1lbnRhdGlv
biBET01IVE1MRG9jdW1lbnQKLQotLSAoSFRNTERvY3VtZW50ICopX0hUTUxEb2N1bWVudAotewot
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MRG9jdW1lbnQqPihET01fY2FzdDxOb2RlKj4oX2lu
dGVybmFsKSk7Ci19Ci0KLS0gKE5TU3RyaW5nICopdGl0bGUKLXsKLSAgICByZXR1cm4gW3NlbGYg
X0hUTUxEb2N1bWVudF0tPnRpdGxlKCk7Ci19Ci0KLS0gKHZvaWQpc2V0VGl0bGU6KE5TU3RyaW5n
ICopdGl0bGUKLXsKLSAgICBbc2VsZiBfSFRNTERvY3VtZW50XS0+c2V0VGl0bGUodGl0bGUpOwot
fQotCi0tIChOU1N0cmluZyAqKXJlZmVycmVyCi17Ci0gICAgIHJldHVybiBbc2VsZiBfSFRNTERv
Y3VtZW50XS0+cmVmZXJyZXIoKTsKLX0KLQotLSAoTlNTdHJpbmcgKilkb21haW4KLXsKLSAgICAg
cmV0dXJuIFtzZWxmIF9IVE1MRG9jdW1lbnRdLT5kb21haW4oKTsKLX0KLQotLSAoTlNTdHJpbmcg
KilVUkwKLXsKLSAgICByZXR1cm4gW3NlbGYgX0hUTUxEb2N1bWVudF0tPlVSTCgpLmdldE5TU3Ry
aW5nKCk7Ci19Ci0KLS0gKERPTUhUTUxFbGVtZW50ICopYm9keQotewotICAgIHJldHVybiBbRE9N
SFRNTEVsZW1lbnQgX2VsZW1lbnRXaXRoOltzZWxmIF9IVE1MRG9jdW1lbnRdLT5ib2R5KCldOwot
fQotCi0tIChET01IVE1MQ29sbGVjdGlvbiAqKWltYWdlcwotewotICAgIEhUTUxDb2xsZWN0aW9u
ICpjb2xsZWN0aW9uID0gbmV3IEhUTUxDb2xsZWN0aW9uKFtzZWxmIF9IVE1MRG9jdW1lbnRdLCBI
VE1MQ29sbGVjdGlvbjo6RG9jSW1hZ2VzKTsKLSAgICByZXR1cm4gW0RPTUhUTUxDb2xsZWN0aW9u
IF9jb2xsZWN0aW9uV2l0aDpjb2xsZWN0aW9uXTsKLX0KLQotLSAoRE9NSFRNTENvbGxlY3Rpb24g
KilhcHBsZXRzCi17Ci0gICAgSFRNTENvbGxlY3Rpb24gKmNvbGxlY3Rpb24gPSBuZXcgSFRNTENv
bGxlY3Rpb24oW3NlbGYgX0hUTUxEb2N1bWVudF0sIEhUTUxDb2xsZWN0aW9uOjpEb2NBcHBsZXRz
KTsKLSAgICByZXR1cm4gW0RPTUhUTUxDb2xsZWN0aW9uIF9jb2xsZWN0aW9uV2l0aDpjb2xsZWN0
aW9uXTsKLX0KLQotLSAoRE9NSFRNTENvbGxlY3Rpb24gKilsaW5rcwotewotICAgIEhUTUxDb2xs
ZWN0aW9uICpjb2xsZWN0aW9uID0gbmV3IEhUTUxDb2xsZWN0aW9uKFtzZWxmIF9IVE1MRG9jdW1l
bnRdLCBIVE1MQ29sbGVjdGlvbjo6RG9jTGlua3MpOwotICAgIHJldHVybiBbRE9NSFRNTENvbGxl
Y3Rpb24gX2NvbGxlY3Rpb25XaXRoOmNvbGxlY3Rpb25dOwotfQotCi0tIChET01IVE1MQ29sbGVj
dGlvbiAqKWZvcm1zCi17Ci0gICAgSFRNTENvbGxlY3Rpb24gKmNvbGxlY3Rpb24gPSBuZXcgSFRN
TENvbGxlY3Rpb24oW3NlbGYgX0hUTUxEb2N1bWVudF0sIEhUTUxDb2xsZWN0aW9uOjpEb2NGb3Jt
cyk7Ci0gICAgcmV0dXJuIFtET01IVE1MQ29sbGVjdGlvbiBfY29sbGVjdGlvbldpdGg6Y29sbGVj
dGlvbl07Ci19Ci0KLS0gKERPTUhUTUxDb2xsZWN0aW9uICopYW5jaG9ycwotewotICAgIEhUTUxD
b2xsZWN0aW9uICpjb2xsZWN0aW9uID0gbmV3IEhUTUxDb2xsZWN0aW9uKFtzZWxmIF9IVE1MRG9j
dW1lbnRdLCBIVE1MQ29sbGVjdGlvbjo6RG9jQW5jaG9ycyk7Ci0gICAgcmV0dXJuIFtET01IVE1M
Q29sbGVjdGlvbiBfY29sbGVjdGlvbldpdGg6Y29sbGVjdGlvbl07Ci19Ci0KLS0gKHZvaWQpc2V0
Qm9keTooRE9NSFRNTEVsZW1lbnQgKilib2R5Ci17Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7
Ci0gICAgW3NlbGYgX0hUTUxEb2N1bWVudF0tPnNldEJvZHkoW2JvZHkgX0hUTUxFbGVtZW50XSwg
ZWMpOwotICAgIHJhaXNlT25ET01FcnJvcihlYyk7Ci19Ci0KLS0gKE5TU3RyaW5nICopY29va2ll
Ci17Ci0gICAgcmV0dXJuIFtzZWxmIF9IVE1MRG9jdW1lbnRdLT5jb29raWUoKTsKLX0KLQotLSAo
dm9pZClzZXRDb29raWU6KE5TU3RyaW5nICopY29va2llCi17Ci0gICAgW3NlbGYgX0hUTUxEb2N1
bWVudF0tPnNldENvb2tpZShjb29raWUpOwotfQotCi0tICh2b2lkKW9wZW4KLXsKLSAgICBbc2Vs
ZiBfSFRNTERvY3VtZW50XS0+b3BlbigpOwotfQotCi0tICh2b2lkKWNsb3NlCi17Ci0gICAgW3Nl
bGYgX0hUTUxEb2N1bWVudF0tPmNsb3NlKCk7Ci19Ci0KLS0gKHZvaWQpd3JpdGU6KE5TU3RyaW5n
ICopdGV4dAotewotICAgIFtzZWxmIF9IVE1MRG9jdW1lbnRdLT53cml0ZSh0ZXh0KTsKLX0KLQot
LSAodm9pZCl3cml0ZWxuOihOU1N0cmluZyAqKXRleHQKLXsKLSAgICBbc2VsZiBfSFRNTERvY3Vt
ZW50XS0+d3JpdGVsbih0ZXh0KTsKLX0KLQotLSAoRE9NRWxlbWVudCAqKWdldEVsZW1lbnRCeUlk
OihOU1N0cmluZyAqKWVsZW1lbnRJZAotewotICAgIHJldHVybiBbRE9NRWxlbWVudCBfZWxlbWVu
dFdpdGg6W3NlbGYgX0hUTUxEb2N1bWVudF0tPmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCldOwot
fQotCi0tIChET01Ob2RlTGlzdCAqKWdldEVsZW1lbnRzQnlOYW1lOihOU1N0cmluZyAqKWVsZW1l
bnROYW1lCi17Ci0gICAgTmFtZU5vZGVMaXN0ICpub2RlTGlzdCA9IG5ldyBOYW1lTm9kZUxpc3Qo
W3NlbGYgX0hUTUxEb2N1bWVudF0sIGVsZW1lbnROYW1lKTsKLSAgICByZXR1cm4gW0RPTU5vZGVM
aXN0IF9ub2RlTGlzdFdpdGg6bm9kZUxpc3RdOwotfQotCi0tIChET01Eb2N1bWVudEZyYWdtZW50
ICopY3JlYXRlRG9jdW1lbnRGcmFnbWVudFdpdGhNYXJrdXBTdHJpbmc6KE5TU3RyaW5nICopbWFy
a3VwU3RyaW5nIGJhc2VVUkw6KE5TVVJMICopYmFzZVVSTAotewotICAgIFJlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50RnJvbU1hcmt1cChbc2VsZiBfZG9j
dW1lbnRdLCBtYXJrdXBTdHJpbmcsIFtiYXNlVVJMIGFic29sdXRlU3RyaW5nXSk7Ci0gICAgcmV0
dXJuIFtET01Eb2N1bWVudEZyYWdtZW50IF9kb2N1bWVudEZyYWdtZW50V2l0aDpmcmFnbWVudC5n
ZXQoKV07Ci19Ci0KLS0gKERPTURvY3VtZW50RnJhZ21lbnQgKiljcmVhdGVEb2N1bWVudEZyYWdt
ZW50V2l0aFRleHQ6KE5TU3RyaW5nICopdGV4dAotewotICAgIC8vIEZJWE1FOiBTaW5jZSB0aGlz
IGlzIG5vdCBhIGNvbnRleHR1YWwgZnJhZ21lbnQsIGl0IHdvbid0IGhhbmRsZSB3aGl0ZXNwYWNl
IHByb3Blcmx5LgotICAgIHJldHVybiBbRE9NRG9jdW1lbnRGcmFnbWVudCBfZG9jdW1lbnRGcmFn
bWVudFdpdGg6Y3JlYXRlRnJhZ21lbnRGcm9tVGV4dChbc2VsZiBfZG9jdW1lbnRdLT5jcmVhdGVS
YW5nZSgpLmdldCgpLCB0ZXh0KS5nZXQoKV07Ci19Ci0KLUBlbmQKLQogQGltcGxlbWVudGF0aW9u
IERPTUhUTUxEb2N1bWVudCAoV2ViUHJpdmF0ZSkKIAogLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAq
KV9jcmVhdGVEb2N1bWVudEZyYWdtZW50V2l0aE1hcmt1cFN0cmluZzooTlNTdHJpbmcgKiltYXJr
dXBTdHJpbmcgYmFzZVVSTFN0cmluZzooTlNTdHJpbmcgKiliYXNlVVJMU3RyaW5nCkBAIC0zMzcs
MzUxICsyMDksMTcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogQGVuZAogCi1AaW1w
bGVtZW50YXRpb24gRE9NSFRNTEh0bWxFbGVtZW50CiAKLS0gKEhUTUxIdG1sRWxlbWVudCAqKV9I
VE1MSHRtbEVsZW1lbnQKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTEh0bWxFbGVtZW50
Kj4oRE9NX2Nhc3Q8Tm9kZSo+KF9pbnRlcm5hbCkpOwotfQotCi0tIChOU1N0cmluZyAqKXZlcnNp
b24KLXsKLSAgICByZXR1cm4gW3NlbGYgX0hUTUxIdG1sRWxlbWVudF0tPnZlcnNpb24oKTsKLX0K
LQotLSAodm9pZClzZXRWZXJzaW9uOihOU1N0cmluZyAqKXZlcnNpb24KLXsKLSAgICBbc2VsZiBf
SFRNTEh0bWxFbGVtZW50XS0+c2V0VmVyc2lvbih2ZXJzaW9uKTsKLX0KLQotQGVuZAotCi1AaW1w
bGVtZW50YXRpb24gRE9NSFRNTEhlYWRFbGVtZW50Ci0KLS0gKEhUTUxIZWFkRWxlbWVudCAqKV9o
ZWFkRWxlbWVudAotewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MSGVhZEVsZW1lbnQqPihE
T01fY2FzdDxOb2RlKj4oX2ludGVybmFsKSk7Ci19Ci0KLS0gKE5TU3RyaW5nICopcHJvZmlsZQot
ewotICAgIHJldHVybiBbc2VsZiBfaGVhZEVsZW1lbnRdLT5wcm9maWxlKCk7Ci19Ci0KLS0gKHZv
aWQpc2V0UHJvZmlsZTooTlNTdHJpbmcgKilwcm9maWxlCi17Ci0gICAgW3NlbGYgX2hlYWRFbGVt
ZW50XS0+c2V0UHJvZmlsZShwcm9maWxlKTsKLX0KLQotQGVuZAotCi1AaW1wbGVtZW50YXRpb24g
RE9NSFRNTExpbmtFbGVtZW50Ci0KLS0gKEhUTUxMaW5rRWxlbWVudCAqKV9saW5rRWxlbWVudAot
ewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MTGlua0VsZW1lbnQqPihET01fY2FzdDxOb2Rl
Kj4oX2ludGVybmFsKSk7Ci19Ci0KLS0gKEJPT0wpZGlzYWJsZWQKLXsKLSAgICByZXR1cm4gW3Nl
bGYgX2xpbmtFbGVtZW50XS0+ZGlzYWJsZWQoKTsKLX0KLQotLSAodm9pZClzZXREaXNhYmxlZDoo
Qk9PTClkaXNhYmxlZAotewotICAgIFtzZWxmIF9saW5rRWxlbWVudF0tPnNldERpc2FibGVkKGRp
c2FibGVkKTsKLX0KLQotLSAoTlNTdHJpbmcgKiljaGFyc2V0Ci17Ci0gICAgcmV0dXJuIFtzZWxm
IF9saW5rRWxlbWVudF0tPmNoYXJzZXQoKTsKLX0KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisvLyBET01IVE1MTGlua0VsZW1lbnQKIAotLSAodm9pZClzZXRDaGFyc2V0OihO
U1N0cmluZyAqKWNoYXJzZXQKLXsKLSAgICBbc2VsZiBfbGlua0VsZW1lbnRdLT5zZXRDaGFyc2V0
KGNoYXJzZXQpOwotfQorQGltcGxlbWVudGF0aW9uIERPTUhUTUxMaW5rRWxlbWVudCAoRE9NSFRN
TExpbmtFbGVtZW50RXh0ZW5zaW9ucykKIAogLSAoTlNVUkwgKilhYnNvbHV0ZUxpbmtVUkwKIHsK
ICAgICByZXR1cm4gW3NlbGYgX2dldFVSTEF0dHJpYnV0ZTpAImhyZWYiXTsKIH0KIAotLSAoTlNT
dHJpbmcgKilocmVmCi17Ci0gICAgcmV0dXJuIFtzZWxmIF9saW5rRWxlbWVudF0tPmhyZWYoKTsK
LX0KLQotLSAodm9pZClzZXRIcmVmOihOU1N0cmluZyAqKWhyZWYKLXsKLSAgICBbc2VsZiBfbGlu
a0VsZW1lbnRdLT5ocmVmKCk7Ci19Ci0KLS0gKE5TU3RyaW5nICopaHJlZmxhbmcKLXsKLSAgICBy
ZXR1cm4gW3NlbGYgX2xpbmtFbGVtZW50XS0+aHJlZmxhbmcoKTsKLX0KLQotLSAodm9pZClzZXRI
cmVmbGFuZzooTlNTdHJpbmcgKilocmVmbGFuZwotewotICAgIFtzZWxmIF9saW5rRWxlbWVudF0t
PnNldEhyZWZsYW5nKGhyZWZsYW5nKTsKLX0KLQotLSAoTlNTdHJpbmcgKiltZWRpYQotewotICAg
IHJldHVybiBbc2VsZiBfbGlua0VsZW1lbnRdLT5nZXRBdHRyaWJ1dGUobWVkaWFBdHRyKTsKLX0K
LQotLSAodm9pZClzZXRNZWRpYTooTlNTdHJpbmcgKiltZWRpYQotewotICAgIFtzZWxmIF9saW5r
RWxlbWVudF0tPnNldEF0dHJpYnV0ZShtZWRpYUF0dHIsIG1lZGlhKTsKLX0KLQotLSAoTlNTdHJp
bmcgKilyZWwKLXsKLSAgICByZXR1cm4gW3NlbGYgX2xpbmtFbGVtZW50XS0+Z2V0QXR0cmlidXRl
KHJlbEF0dHIpOwotfQotCi0tICh2b2lkKXNldFJlbDooTlNTdHJpbmcgKilyZWwKLXsKLSAgICBb
c2VsZiBfbGlua0VsZW1lbnRdLT5zZXRBdHRyaWJ1dGUocmVsQXR0ciwgcmVsKTsKLX0KLQotLSAo
TlNTdHJpbmcgKilyZXYKLXsKLSAgICByZXR1cm4gW3NlbGYgX2xpbmtFbGVtZW50XS0+Z2V0QXR0
cmlidXRlKHJldkF0dHIpOwotfQotCi0tICh2b2lkKXNldFJldjooTlNTdHJpbmcgKilyZXYKLXsK
LSAgICBbc2VsZiBfbGlua0VsZW1lbnRdLT5zZXRBdHRyaWJ1dGUocmV2QXR0ciwgcmV2KTsKLX0K
LQotLSAoTlNTdHJpbmcgKil0YXJnZXQKLXsKLSAgICByZXR1cm4gW3NlbGYgX2xpbmtFbGVtZW50
XS0+Z2V0QXR0cmlidXRlKHRhcmdldEF0dHIpOwotfQotCi0tICh2b2lkKXNldFRhcmdldDooTlNT
dHJpbmcgKil0YXJnZXQKLXsKLSAgICBbc2VsZiBfbGlua0VsZW1lbnRdLT5zZXRBdHRyaWJ1dGUo
dGFyZ2V0QXR0ciwgdGFyZ2V0KTsKLX0KLQotLSAoTlNTdHJpbmcgKil0eXBlCi17Ci0gICAgcmV0
dXJuIFtzZWxmIF9saW5rRWxlbWVudF0tPmdldEF0dHJpYnV0ZSh0eXBlQXR0cik7Ci19Ci0KLS0g
KHZvaWQpc2V0VHlwZTooTlNTdHJpbmcgKil0eXBlCi17Ci0gICAgW3NlbGYgX2xpbmtFbGVtZW50
XS0+c2V0QXR0cmlidXRlKHR5cGVBdHRyLCB0eXBlKTsKLX0KLQotQGVuZAotCi1AaW1wbGVtZW50
YXRpb24gRE9NSFRNTFRpdGxlRWxlbWVudAotCi0tIChIVE1MVGl0bGVFbGVtZW50ICopX3RpdGxl
RWxlbWVudAotewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MVGl0bGVFbGVtZW50Kj4oRE9N
X2Nhc3Q8Tm9kZSo+KF9pbnRlcm5hbCkpOwotfQotCi0tIChOU1N0cmluZyAqKXRleHQKLXsKLSAg
ICByZXR1cm4gW3NlbGYgX3RpdGxlRWxlbWVudF0tPmdldEF0dHJpYnV0ZSh0ZXh0QXR0cik7Ci19
Ci0KLS0gKHZvaWQpc2V0VGV4dDooTlNTdHJpbmcgKil0ZXh0Ci17Ci0gICAgW3NlbGYgX3RpdGxl
RWxlbWVudF0tPnNldEF0dHJpYnV0ZSh0ZXh0QXR0ciwgdGV4dCk7Ci19Ci0KLUBlbmQKLQotQGlt
cGxlbWVudGF0aW9uIERPTUhUTUxNZXRhRWxlbWVudAotCi0tIChIVE1MTWV0YUVsZW1lbnQgKilf
bWV0YUVsZW1lbnQKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTE1ldGFFbGVtZW50Kj4o
RE9NX2Nhc3Q8Tm9kZSo+KF9pbnRlcm5hbCkpOwotfQotCi0tIChOU1N0cmluZyAqKWNvbnRlbnQK
LXsKLSAgICByZXR1cm4gW3NlbGYgX21ldGFFbGVtZW50XS0+Z2V0QXR0cmlidXRlKGNvbnRlbnRB
dHRyKTsKLX0KLQotLSAodm9pZClzZXRDb250ZW50OihOU1N0cmluZyAqKWNvbnRlbnQKLXsKLSAg
ICBbc2VsZiBfbWV0YUVsZW1lbnRdLT5zZXRBdHRyaWJ1dGUoY29udGVudEF0dHIsIGNvbnRlbnQp
OwotfQotCi0tIChOU1N0cmluZyAqKWh0dHBFcXVpdgotewotICAgIHJldHVybiBbc2VsZiBfbWV0
YUVsZW1lbnRdLT5nZXRBdHRyaWJ1dGUoaHR0cF9lcXVpdkF0dHIpOwotfQotCi0tICh2b2lkKXNl
dEh0dHBFcXVpdjooTlNTdHJpbmcgKilodHRwRXF1aXYKLXsKLSAgICBbc2VsZiBfbWV0YUVsZW1l
bnRdLT5zZXRBdHRyaWJ1dGUoaHR0cF9lcXVpdkF0dHIsIGh0dHBFcXVpdik7Ci19Ci0KLS0gKE5T
U3RyaW5nICopbmFtZQotewotICAgIHJldHVybiBbc2VsZiBfbWV0YUVsZW1lbnRdLT5nZXRBdHRy
aWJ1dGUobmFtZUF0dHIpOwotfQotCi0tICh2b2lkKXNldE5hbWU6KE5TU3RyaW5nICopbmFtZQot
ewotICAgIFtzZWxmIF9tZXRhRWxlbWVudF0tPnNldEF0dHJpYnV0ZShuYW1lQXR0ciwgbmFtZSk7
Ci19Ci0KLS0gKE5TU3RyaW5nICopc2NoZW1lCi17Ci0gICAgcmV0dXJuIFtzZWxmIF9tZXRhRWxl
bWVudF0tPmdldEF0dHJpYnV0ZShzY2hlbWVBdHRyKTsKLX0KLQotLSAodm9pZClzZXRTY2hlbWU6
KE5TU3RyaW5nICopc2NoZW1lCi17Ci0gICAgW3NlbGYgX21ldGFFbGVtZW50XS0+c2V0QXR0cmli
dXRlKHNjaGVtZUF0dHIsIHNjaGVtZSk7Ci19Ci0KLUBlbmQKLQotQGltcGxlbWVudGF0aW9uIERP
TUhUTUxCYXNlRWxlbWVudAotCi0tIChIVE1MQmFzZUVsZW1lbnQgKilfYmFzZUVsZW1lbnQKLXsK
LSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTEJhc2VFbGVtZW50Kj4oRE9NX2Nhc3Q8Tm9kZSo+
KF9pbnRlcm5hbCkpOwotfQotCi0tIChOU1N0cmluZyAqKWhyZWYKLXsKLSAgICByZXR1cm4gW3Nl
bGYgX2Jhc2VFbGVtZW50XS0+aHJlZigpOwotfQotCi0tICh2b2lkKXNldEhyZWY6KE5TU3RyaW5n
ICopaHJlZgotewotICAgIFtzZWxmIF9iYXNlRWxlbWVudF0tPnNldEF0dHJpYnV0ZShocmVmQXR0
ciwgaHJlZik7Ci19Ci0KLS0gKE5TU3RyaW5nICopdGFyZ2V0Ci17Ci0gICAgcmV0dXJuIFtzZWxm
IF9iYXNlRWxlbWVudF0tPmdldEF0dHJpYnV0ZSh0YXJnZXRBdHRyKTsKLX0KLQotLSAodm9pZClz
ZXRUYXJnZXQ6KE5TU3RyaW5nICopdGFyZ2V0Ci17Ci0gICAgW3NlbGYgX2Jhc2VFbGVtZW50XS0+
c2V0QXR0cmlidXRlKHNjaGVtZUF0dHIsIHRhcmdldCk7Ci19Ci0KLUBlbmQKLQotQGltcGxlbWVu
dGF0aW9uIERPTUhUTUxTdHlsZUVsZW1lbnQKLQotLSAoSFRNTFN0eWxlRWxlbWVudCAqKV9zdHls
ZUVsZW1lbnQKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTFN0eWxlRWxlbWVudCo+KERP
TV9jYXN0PE5vZGUqPihfaW50ZXJuYWwpKTsKLX0KLQotLSAoQk9PTClkaXNhYmxlZAotewotICAg
IHJldHVybiAhW3NlbGYgX3N0eWxlRWxlbWVudF0tPmdldEF0dHJpYnV0ZShkaXNhYmxlZEF0dHIp
LmlzTnVsbCgpOwotfQotCi0tICh2b2lkKXNldERpc2FibGVkOihCT09MKWRpc2FibGVkCi17Ci0g
ICAgW3NlbGYgX3N0eWxlRWxlbWVudF0tPnNldEF0dHJpYnV0ZShkaXNhYmxlZEF0dHIsIGRpc2Fi
bGVkID8gIiIgOiAwKTsKLX0KLQotLSAoTlNTdHJpbmcgKiltZWRpYQotewotICAgIHJldHVybiBb
c2VsZiBfc3R5bGVFbGVtZW50XS0+Z2V0QXR0cmlidXRlKG1lZGlhQXR0cik7Ci19Ci0KLS0gKHZv
aWQpc2V0TWVkaWE6KE5TU3RyaW5nICopbWVkaWEKLXsKLSAgICBbc2VsZiBfc3R5bGVFbGVtZW50
XS0+c2V0QXR0cmlidXRlKG1lZGlhQXR0ciwgbWVkaWEpOwotfQotCi0tIChOU1N0cmluZyAqKXR5
cGUKLXsKLSAgICByZXR1cm4gW3NlbGYgX3N0eWxlRWxlbWVudF0tPmdldEF0dHJpYnV0ZSh0eXBl
QXR0cik7Ci19Ci0KLS0gKHZvaWQpc2V0VHlwZTooTlNTdHJpbmcgKil0eXBlCi17Ci0gICAgW3Nl
bGYgX3N0eWxlRWxlbWVudF0tPnNldEF0dHJpYnV0ZSh0eXBlQXR0ciwgdHlwZSk7Ci19Ci0KLUBl
bmQKLQotQGltcGxlbWVudGF0aW9uIERPTUhUTUxCb2R5RWxlbWVudAotCi0tIChIVE1MQm9keUVs
ZW1lbnQgKilfYm9keUVsZW1lbnQKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTEJvZHlF
bGVtZW50Kj4oRE9NX2Nhc3Q8Tm9kZSo+KF9pbnRlcm5hbCkpOwotfQotCi0tIChOU1N0cmluZyAq
KWFMaW5rCi17Ci0gICAgcmV0dXJuIFtzZWxmIF9ib2R5RWxlbWVudF0tPmdldEF0dHJpYnV0ZShh
bGlua0F0dHIpOwotfQotCi0tICh2b2lkKXNldEFMaW5rOihOU1N0cmluZyAqKWFMaW5rCi17Ci0g
ICAgW3NlbGYgX2JvZHlFbGVtZW50XS0+c2V0QXR0cmlidXRlKGFsaW5rQXR0ciwgYUxpbmspOwot
fQotCi0tIChOU1N0cmluZyAqKWJhY2tncm91bmQKLXsKLSAgICByZXR1cm4gW3NlbGYgX2JvZHlF
bGVtZW50XS0+Z2V0QXR0cmlidXRlKGJhY2tncm91bmRBdHRyKTsKLX0KLQotLSAodm9pZClzZXRC
YWNrZ3JvdW5kOihOU1N0cmluZyAqKWJhY2tncm91bmQKLXsKLSAgICBbc2VsZiBfYm9keUVsZW1l
bnRdLT5zZXRBdHRyaWJ1dGUoYmFja2dyb3VuZEF0dHIsIGJhY2tncm91bmQpOwotfQotCi0tIChO
U1N0cmluZyAqKWJnQ29sb3IKLXsKLSAgICByZXR1cm4gW3NlbGYgX2JvZHlFbGVtZW50XS0+Z2V0
QXR0cmlidXRlKGJnY29sb3JBdHRyKTsKLX0KLQotLSAodm9pZClzZXRCZ0NvbG9yOihOU1N0cmlu
ZyAqKWJnQ29sb3IKLXsKLSAgICBbc2VsZiBfYm9keUVsZW1lbnRdLT5zZXRBdHRyaWJ1dGUoYmdj
b2xvckF0dHIsIGJnQ29sb3IpOwotfQotCi0tIChOU1N0cmluZyAqKWxpbmsKLXsKLSAgICByZXR1
cm4gW3NlbGYgX2JvZHlFbGVtZW50XS0+Z2V0QXR0cmlidXRlKGxpbmtBdHRyKTsKLX0KLQotLSAo
dm9pZClzZXRMaW5rOihOU1N0cmluZyAqKWxpbmsKLXsKLSAgICBbc2VsZiBfYm9keUVsZW1lbnRd
LT5zZXRBdHRyaWJ1dGUobGlua0F0dHIsIGxpbmspOwotfQotCi0tIChOU1N0cmluZyAqKXRleHQK
LXsKLSAgICByZXR1cm4gW3NlbGYgX2JvZHlFbGVtZW50XS0+Z2V0QXR0cmlidXRlKHRleHRBdHRy
KTsKLX0KLQotLSAodm9pZClzZXRUZXh0OihOU1N0cmluZyAqKXRleHQKLXsKLSAgICBbc2VsZiBf
Ym9keUVsZW1lbnRdLT5zZXRBdHRyaWJ1dGUodGV4dEF0dHIsIHRleHQpOwotfQotCi0tIChOU1N0
cmluZyAqKXZMaW5rCi17Ci0gICAgcmV0dXJuIFtzZWxmIF9ib2R5RWxlbWVudF0tPmdldEF0dHJp
YnV0ZSh2bGlua0F0dHIpOwotfQotCi0tICh2b2lkKXNldFZMaW5rOihOU1N0cmluZyAqKXZMaW5r
Ci17Ci0gICAgW3NlbGYgX2JvZHlFbGVtZW50XS0+c2V0QXR0cmlidXRlKHZsaW5rQXR0ciwgdkxp
bmspOwotfQotCiBAZW5kCiAKIApAQCAtNjk5LDMxICsyMzcsNyBAQCB1c2luZyBuYW1lc3BhY2Ug
SFRNTE5hbWVzOwogCiAKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBE
T01IVE1MSXNJbmRleEVsZW1lbnQKLQotQGltcGxlbWVudGF0aW9uIERPTUhUTUxJc0luZGV4RWxl
bWVudAotCi0tIChIVE1MSXNJbmRleEVsZW1lbnQgKilfaXNJbmRleEVsZW1lbnQKLXsKLSAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTElzSW5kZXhFbGVtZW50Kj4oRE9NX2Nhc3Q8Tm9kZSo+KF9p
bnRlcm5hbCkpOwotfQotCi0tIChET01IVE1MRm9ybUVsZW1lbnQgKilmb3JtCi17Ci0gICAgcmV0
dXJuIFtET01IVE1MRm9ybUVsZW1lbnQgX2Zvcm1FbGVtZW50V2l0aDpbc2VsZiBfaXNJbmRleEVs
ZW1lbnRdLT5mb3JtKCldOwotfQotCi0tIChOU1N0cmluZyAqKXByb21wdAotewotICAgIHJldHVy
biBbc2VsZiBfaXNJbmRleEVsZW1lbnRdLT5wcm9tcHQoKTsKLX0KLQotLSAodm9pZClzZXRQcm9t
cHQ6KE5TU3RyaW5nICopcHJvbXB0Ci17Ci0gICAgW3NlbGYgX2lzSW5kZXhFbGVtZW50XS0+c2V0
UHJvbXB0KHByb21wdCk7Ci19Ci0KLUBlbmQKKy8vIERPTUhUTUxTZWxlY3RFbGVtZW50CiAKIEBp
bXBsZW1lbnRhdGlvbiBET01IVE1MU2VsZWN0RWxlbWVudAogCkluZGV4OiBXZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NSFRNTERvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUhUTUxEb2N1bWVudC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUhUTUxEb2N1bWVudC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA0IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWlu
aWdAZ21haWwuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTURvY3VtZW50Lmg+CisK
K0BjbGFzcyBET01FbGVtZW50OworQGNsYXNzIERPTUhUTUxDb2xsZWN0aW9uOworQGNsYXNzIERP
TUhUTUxFbGVtZW50OworQGNsYXNzIERPTU5vZGVMaXN0OworQGNsYXNzIERPTURvY3VtZW50RnJh
Z21lbnQ7CisKK0BpbnRlcmZhY2UgRE9NSFRNTERvY3VtZW50IDogRE9NRG9jdW1lbnQKKy0gKE5T
U3RyaW5nICopdGl0bGU7CistICh2b2lkKXNldFRpdGxlOihOU1N0cmluZyAqKXRpdGxlOworLSAo
TlNTdHJpbmcgKilyZWZlcnJlcjsKKy0gKE5TU3RyaW5nICopZG9tYWluOworLSAoTlNTdHJpbmcg
KilVUkw7CistIChET01IVE1MRWxlbWVudCAqKWJvZHk7CistICh2b2lkKXNldEJvZHk6KERPTUhU
TUxFbGVtZW50ICopYm9keTsKKy0gKERPTUhUTUxDb2xsZWN0aW9uICopaW1hZ2VzOworLSAoRE9N
SFRNTENvbGxlY3Rpb24gKilhcHBsZXRzOworLSAoRE9NSFRNTENvbGxlY3Rpb24gKilsaW5rczsK
Ky0gKERPTUhUTUxDb2xsZWN0aW9uICopZm9ybXM7CistIChET01IVE1MQ29sbGVjdGlvbiAqKWFu
Y2hvcnM7CistIChOU1N0cmluZyAqKWNvb2tpZTsKKy0gKHZvaWQpc2V0Q29va2llOihOU1N0cmlu
ZyAqKWNvb2tpZTsKKy0gKHZvaWQpb3BlbjsKKy0gKHZvaWQpY2xvc2U7CistICh2b2lkKXdyaXRl
OihOU1N0cmluZyAqKXRleHQ7CistICh2b2lkKXdyaXRlbG46KE5TU3RyaW5nICopdGV4dDsKKy0g
KERPTUVsZW1lbnQgKilnZXRFbGVtZW50QnlJZDooTlNTdHJpbmcgKillbGVtZW50SWQ7CistIChE
T01Ob2RlTGlzdCAqKWdldEVsZW1lbnRzQnlOYW1lOihOU1N0cmluZyAqKWVsZW1lbnROYW1lOwor
QGVuZAorCitAaW50ZXJmYWNlIERPTUhUTUxEb2N1bWVudCAoRE9NSFRNTERvY3VtZW50RXh0ZW5z
aW9ucykKKy0gKERPTURvY3VtZW50RnJhZ21lbnQgKiljcmVhdGVEb2N1bWVudEZyYWdtZW50V2l0
aE1hcmt1cFN0cmluZzooTlNTdHJpbmcgKiltYXJrdXBTdHJpbmcgYmFzZVVSTDooTlNVUkwgKili
YXNlVVJMOworLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAqKWNyZWF0ZURvY3VtZW50RnJhZ21lbnRX
aXRoVGV4dDooTlNTdHJpbmcgKil0ZXh0OworQGVuZApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTUhUTUxEb2N1bWVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NSFRNTERvY3VtZW50Lm1tCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTUhUTUxEb2N1bWVudC5tbQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNjggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDQgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5p
Z0BnbWFpbC5jb20+CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NSFRN
TERvY3VtZW50LmgiCisKKyNpbXBvcnQgIkRPTUludGVybmFsLmgiCisjaW1wb3J0ICJIVE1MRG9j
dW1lbnQuaCIgLy8gaW1wbGVtZW50YXRpb24gY2xhc3MKKyNpbXBvcnQgIkRPTUhUTUxJbnRlcm5h
bC5oIgorCisjaW1wb3J0ICJET01Eb2N1bWVudEZyYWdtZW50LmgiCisjaW1wb3J0ICJET01IVE1M
Q29sbGVjdGlvbi5oIgorI2ltcG9ydCAiRE9NSFRNTEVsZW1lbnQuaCIKKyNpbXBvcnQgIkRPTU5v
ZGVMaXN0LmgiCisjaW1wb3J0ICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW1wb3J0ICJIVE1MQ29s
bGVjdGlvbi5oIgorI2ltcG9ydCAiTmFtZU5vZGVMaXN0LmgiCisjaW1wb3J0ICJSYW5nZS5oIgor
I2ltcG9ydCAibWFya3VwLmgiCisKK0BpbXBsZW1lbnRhdGlvbiBET01IVE1MRG9jdW1lbnQKKwor
LSAoV2ViQ29yZTo6SFRNTERvY3VtZW50ICopX0hUTUxEb2N1bWVudAoreworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxXZWJDb3JlOjpIVE1MRG9jdW1lbnQgKj4oRE9NX2Nhc3Q8V2ViQ29yZTo6Tm9k
ZSAqPihfaW50ZXJuYWwpKTsKK30KKworLSAoTlNTdHJpbmcgKil0aXRsZQoreworICAgIHJldHVy
biBbc2VsZiBfSFRNTERvY3VtZW50XS0+dGl0bGUoKTsKK30KKworLSAodm9pZClzZXRUaXRsZToo
TlNTdHJpbmcgKil0aXRsZQoreworICAgIFtzZWxmIF9IVE1MRG9jdW1lbnRdLT5zZXRUaXRsZSh0
aXRsZSk7Cit9CisKKy0gKE5TU3RyaW5nICopcmVmZXJyZXIKK3sKKyAgICAgcmV0dXJuIFtzZWxm
IF9IVE1MRG9jdW1lbnRdLT5yZWZlcnJlcigpOworfQorCistIChOU1N0cmluZyAqKWRvbWFpbgor
eworICAgICByZXR1cm4gW3NlbGYgX0hUTUxEb2N1bWVudF0tPmRvbWFpbigpOworfQorCistIChO
U1N0cmluZyAqKVVSTAoreworICAgIHJldHVybiBbc2VsZiBfSFRNTERvY3VtZW50XS0+VVJMKCku
Z2V0TlNTdHJpbmcoKTsKK30KKworLSAoRE9NSFRNTEVsZW1lbnQgKilib2R5Cit7CisgICAgcmV0
dXJuIFtET01IVE1MRWxlbWVudCBfZWxlbWVudFdpdGg6W3NlbGYgX0hUTUxEb2N1bWVudF0tPmJv
ZHkoKV07Cit9CisKKy0gKHZvaWQpc2V0Qm9keTooRE9NSFRNTEVsZW1lbnQgKilib2R5Cit7Cisg
ICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgW3NlbGYgX0hUTUxEb2N1bWVu
dF0tPnNldEJvZHkoW2JvZHkgX0hUTUxFbGVtZW50XSwgZWMpOworICAgIHJhaXNlT25ET01FcnJv
cihlYyk7Cit9CisKKy0gKERPTUhUTUxDb2xsZWN0aW9uICopaW1hZ2VzCit7CisgICAgcmV0dXJu
IFtET01IVE1MQ29sbGVjdGlvbiBfY29sbGVjdGlvbldpdGg6W3NlbGYgX0hUTUxEb2N1bWVudF0t
PmltYWdlcygpLmdldCgpXTsKK30KKworLSAoRE9NSFRNTENvbGxlY3Rpb24gKilhcHBsZXRzCit7
CisgICAgcmV0dXJuIFtET01IVE1MQ29sbGVjdGlvbiBfY29sbGVjdGlvbldpdGg6W3NlbGYgX0hU
TUxEb2N1bWVudF0tPmFwcGxldHMoKS5nZXQoKV07Cit9CisKKy0gKERPTUhUTUxDb2xsZWN0aW9u
ICopbGlua3MKK3sKKyAgICByZXR1cm4gW0RPTUhUTUxDb2xsZWN0aW9uIF9jb2xsZWN0aW9uV2l0
aDpbc2VsZiBfSFRNTERvY3VtZW50XS0+bGlua3MoKS5nZXQoKV07Cit9CisKKy0gKERPTUhUTUxD
b2xsZWN0aW9uICopZm9ybXMKK3sKKyAgICByZXR1cm4gW0RPTUhUTUxDb2xsZWN0aW9uIF9jb2xs
ZWN0aW9uV2l0aDpbc2VsZiBfSFRNTERvY3VtZW50XS0+Zm9ybXMoKS5nZXQoKV07Cit9CisKKy0g
KERPTUhUTUxDb2xsZWN0aW9uICopYW5jaG9ycworeworICAgIHJldHVybiBbRE9NSFRNTENvbGxl
Y3Rpb24gX2NvbGxlY3Rpb25XaXRoOltzZWxmIF9IVE1MRG9jdW1lbnRdLT5hbmNob3JzKCkuZ2V0
KCldOworfQorCistIChOU1N0cmluZyAqKWNvb2tpZQoreworICAgIHJldHVybiBbc2VsZiBfSFRN
TERvY3VtZW50XS0+Y29va2llKCk7Cit9CisKKy0gKHZvaWQpc2V0Q29va2llOihOU1N0cmluZyAq
KWNvb2tpZQoreworICAgIFtzZWxmIF9IVE1MRG9jdW1lbnRdLT5zZXRDb29raWUoY29va2llKTsK
K30KKworLSAodm9pZClvcGVuCit7CisgICAgW3NlbGYgX0hUTUxEb2N1bWVudF0tPm9wZW4oKTsK
K30KKworLSAodm9pZCljbG9zZQoreworICAgIFtzZWxmIF9IVE1MRG9jdW1lbnRdLT5jbG9zZSgp
OworfQorCistICh2b2lkKXdyaXRlOihOU1N0cmluZyAqKXRleHQKK3sKKyAgICBbc2VsZiBfSFRN
TERvY3VtZW50XS0+d3JpdGUodGV4dCk7Cit9CisKKy0gKHZvaWQpd3JpdGVsbjooTlNTdHJpbmcg
Kil0ZXh0Cit7CisgICAgW3NlbGYgX0hUTUxEb2N1bWVudF0tPndyaXRlbG4odGV4dCk7Cit9CisK
Ky0gKERPTUVsZW1lbnQgKilnZXRFbGVtZW50QnlJZDooTlNTdHJpbmcgKillbGVtZW50SWQKK3sK
KyAgICByZXR1cm4gW0RPTUVsZW1lbnQgX2VsZW1lbnRXaXRoOltzZWxmIF9IVE1MRG9jdW1lbnRd
LT5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpXTsKK30KKworLSAoRE9NTm9kZUxpc3QgKilnZXRF
bGVtZW50c0J5TmFtZTooTlNTdHJpbmcgKillbGVtZW50TmFtZQoreworICAgIHJldHVybiBbRE9N
Tm9kZUxpc3QgX25vZGVMaXN0V2l0aDpbc2VsZiBfSFRNTERvY3VtZW50XS0+Z2V0RWxlbWVudHNC
eU5hbWUoZWxlbWVudE5hbWUpLmdldCgpXTsKK30KKworQGVuZAorCitAaW1wbGVtZW50YXRpb24g
RE9NSFRNTERvY3VtZW50IChET01IVE1MRG9jdW1lbnRFeHRlbnNpb25zKQorCistIChET01Eb2N1
bWVudEZyYWdtZW50ICopY3JlYXRlRG9jdW1lbnRGcmFnbWVudFdpdGhNYXJrdXBTdHJpbmc6KE5T
U3RyaW5nICopbWFya3VwU3RyaW5nIGJhc2VVUkw6KE5TVVJMICopYmFzZVVSTAoreworICAgIHJl
dHVybiBbRE9NRG9jdW1lbnRGcmFnbWVudCBfZG9jdW1lbnRGcmFnbWVudFdpdGg6Y3JlYXRlRnJh
Z21lbnRGcm9tTWFya3VwKFtzZWxmIF9kb2N1bWVudF0sIG1hcmt1cFN0cmluZywgW2Jhc2VVUkwg
YWJzb2x1dGVTdHJpbmddKS5nZXQoKV07Cit9CisKKy0gKERPTURvY3VtZW50RnJhZ21lbnQgKilj
cmVhdGVEb2N1bWVudEZyYWdtZW50V2l0aFRleHQ6KE5TU3RyaW5nICopdGV4dAoreworICAgIC8v
IEZJWE1FOiBTaW5jZSB0aGlzIGlzIG5vdCBhIGNvbnRleHR1YWwgZnJhZ21lbnQsIGl0IHdvbid0
IGhhbmRsZSB3aGl0ZXNwYWNlIHByb3Blcmx5LgorICAgIHJldHVybiBbRE9NRG9jdW1lbnRGcmFn
bWVudCBfZG9jdW1lbnRGcmFnbWVudFdpdGg6Y3JlYXRlRnJhZ21lbnRGcm9tVGV4dChbc2VsZiBf
ZG9jdW1lbnRdLT5jcmVhdGVSYW5nZSgpLmdldCgpLCB0ZXh0KS5nZXQoKV07Cit9CisKK0BlbmQK
SW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MSW50ZXJuYWwuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEludGVybmFsLmgJKHJldmlzaW9uIDE2
MTEyKQorKysgV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxJbnRlcm5hbC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNCBBcHBsZSBD
b21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
NiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjcsNyBAQAogI2ltcG9ydCAiRE9NSFRNTC5oIgogCiAj
aW1wb3J0ICJET01IVE1MQ29sbGVjdGlvbi5oIgorI2ltcG9ydCAiRE9NSFRNTERvY3VtZW50Lmgi
CiAjaW1wb3J0ICJET01IVE1MRWxlbWVudC5oIgogI2ltcG9ydCAiRE9NSFRNTEZvcm1FbGVtZW50
LmgiCiAjaW1wb3J0ICJET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCIKSW5kZXg6IFdlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0JKHJldmlzaW9uIDE2MTEy
KQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MjQsNyArNDI0LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgQGhl
YWRlckNvbnRlbnRIZWFkZXIgPSBzcGxpdCgiXHIiLCAkaGVhZGVyTGljZW5jZVRlbXBsYXRlKTsK
IAogICAgICMgLSBJTkNMVURFUyAtCi0gICAgcHVzaChAaGVhZGVyQ29udGVudEhlYWRlciwgIlxu
I2ltcG9ydCBcIiRwYXJlbnRDbGFzc05hbWUuaFwiIC8vIHBhcmVudCBjbGFzc1xuXG4iKTsKKyAg
ICBwdXNoKEBoZWFkZXJDb250ZW50SGVhZGVyLCAiXG4jaW1wb3J0IDxXZWJjb3JlLyRwYXJlbnRD
bGFzc05hbWUuaD4gLy8gcGFyZW50IGNsYXNzXG5cbiIpOwogCiAgICAgIyAtIEFkZCBjb25zdGFu
dHMuCiAgICAgaWYgKCRudW1Db25zdGFudHMgPiAwKSB7CkBAIC02MjMsNDggKzYyMyw0MCBAQCBz
dWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgIyBTVEFSVCBpbXBsZW1lbnRhdGlvbgog
ICAgIHB1c2goQGltcGxDb250ZW50LCAiXG5cQGltcGxlbWVudGF0aW9uICRjbGFzc05hbWVcblxu
Iik7Ci0gICAgCi0gICAgIyBBREQgSU5URVJOQUwgQ0FTVElORyBNRVRIT0QKLSAgICBteSAkaW50
ZXJuYWxDYXN0aW5nTmFtZSA9ICJfIiAuIGxjZmlyc3QoJGludGVyZmFjZU5hbWUpOwotICAgIG15
ICRpbXBsZW1lbnRhdGlvbiA9ICJbc2VsZiAkaW50ZXJuYWxDYXN0aW5nTmFtZV0iOwotICAgIAor
CisgICAgIyBBREQgSU5URVJOQUwgQ0FTVElORyBNQUNSTworICAgIG15ICRpbXBsZW1lbnRhdGlv
biA9ICJJTVBMXyIgLiB1YygkaW50ZXJmYWNlTmFtZSk7CisKICAgICBpZiAoJGhhc0Z1bmN0aW9u
c09yQXR0cmlidXRlcykgewogICAgICAgICBpZiAoJHBhcmVudEltcGxDbGFzc05hbWUgZXEgIk9i
amVjdCIpIHsKICAgICAgICAgICAgICMgT25seSBnZW5lcmF0ZSAnZGVhbGxvYycgYW5kICdmaW5h
bGl6ZScgbWV0aG9kcyBmb3IgZGlyZWN0IHN1YmNsYXNzZXMgb2YgRE9NT2JqZWN0LgorCisgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNkZWZpbmUgJGltcGxlbWVudGF0aW9uIERPTV9j
YXN0PCRpbXBsQ2xhc3NOYW1lICo+KF9pbnRlcm5hbClcblxuIik7CisKICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiLSAodm9pZClkZWFsbG9jXG4iKTsKICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBpZiAoX2ludGVybmFsKVxuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICAgICAgRE9NX2Nhc3Q8JGltcGxDbGFzc05hbWUgKj4oX2ludGVybmFsKS0+ZGVyZWYoKTtcbiIp
OworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgICRpbXBsZW1lbnRhdGlv
bi0+ZGVyZWYoKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgW3N1
cGVyIGRlYWxsb2NdO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxu
Iik7CiAKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiLSAodm9pZClmaW5hbGl6ZVxu
Iik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKF9pbnRlcm5hbClcbiIpOwotICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIERPTV9jYXN0PCRpbXBsQ2xhc3NOYW1lICo+KF9p
bnRlcm5hbCktPmRlcmVmKCk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgICAgICAkaW1wbGVtZW50YXRpb24tPmRlcmVmKCk7XG4iKTsKICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIFtzdXBlciBmaW5hbGl6ZV07XG4iKTsKICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICItICgkaW1wbENsYXNzTmFtZSAqKSRpbnRlcm5hbENhc3RpbmdOYW1l
XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7Ci0gICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gRE9NX2Nhc3Q8JGltcGxDbGFzc05hbWUg
Kj4oX2ludGVybmFsKTtcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5c
biIpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgbXkgJGludGVybmFsQmFzZVR5cGU7
Ci0gICAgICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkNTU1ByaW1pdGl2ZVZhbHVlIikg
ewotICAgICAgICAgICAgICAgICMgRklYTUU6IHRoaXMgc2hvdWxkIGJlIGEgcmVnZXggbWF0Y2hp
bmcgQ1NTLi4uVmFsdWUuCisgICAgICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgPX4gL15DU1Mu
K1ZhbHVlJC8pIHsKICAgICAgICAgICAgICAgICAkaW50ZXJuYWxCYXNlVHlwZSA9ICJXZWJDb3Jl
OjpDU1NWYWx1ZSIKLSAgICAgICAgICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJDU1NJ
bXBvcnRSdWxlIiBvciAkaW50ZXJmYWNlTmFtZSBlcSAiQ1NTRm9udEZhY2VSdWxlIikgewotICAg
ICAgICAgICAgICAgICMgRklYTUU6IHRoaXMgc2hvdWxkIGJlIGEgcmVnZXggbWF0Y2hpbmcgQ1NT
Li4uUnVsZS4KKyAgICAgICAgICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lID1+IC9eQ1NTLitS
dWxlJC8pIHsKICAgICAgICAgICAgICAgICAkaW50ZXJuYWxCYXNlVHlwZSA9ICJXZWJDb3JlOjpD
U1NSdWxlIgogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAkaW50ZXJuYWxC
YXNlVHlwZSA9ICJXZWJDb3JlOjpOb2RlIgogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIi0gKCRpbXBsQ2xhc3NOYW1lICopJGludGVybmFsQ2FzdGluZ05h
bWVcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKLSAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBzdGF0aWNfY2FzdDwkaW1wbENsYXNz
TmFtZSAqPihET01fY2FzdDwkaW50ZXJuYWxCYXNlVHlwZSAqPihfaW50ZXJuYWwpKTtcbiIpOwot
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOworICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIjZGVmaW5lICRpbXBsZW1lbnRhdGlvbiBzdGF0aWNfY2FzdDwkaW1w
bENsYXNzTmFtZSAqPihET01fY2FzdDwkaW50ZXJuYWxCYXNlVHlwZSAqPihfaW50ZXJuYWwpKVxu
XG4iKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtNzMyLDM3ICs3MjQsNTAgQEAgc3ViIEdlbmVy
YXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIAogICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICRnZXR0ZXJTaWcpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4i
KTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRleGNlcHRpb25Jbml0XG4i
KSBpZiAkaGFzR2V0dGVyRXhjZXB0aW9uOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgcmV0dXJuICRnZXR0ZXJDb250ZW50O1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAkZXhjZXB0aW9uUmFpc2VPbkVycm9yXG4iKSBpZiAkaGFzR2V0dGVyRXhj
ZXB0aW9uOworICAgICAgICAgICAgaWYgKCRoYXNHZXR0ZXJFeGNlcHRpb24pIHsKKyAgICAgICAg
ICAgICAgICAjIERpZmZlcmVudGlhdGVkIGJldHdlZW4gd2hlbiB0aGUgcmV0dXJuIHR5cGUgaXMg
YSBwb2ludGVyIGFuZAorICAgICAgICAgICAgICAgICMgbm90IGZvciB3aGl0ZSBzcGFjZSBpc3N1
ZSAoaWUuIEZvbyAqcmVzdWx0IHZzLiBpbnQgcmVzdWx0KS4KKyAgICAgICAgICAgICAgICBpZiAo
JGF0dHJpYnV0ZVR5cGUgPX4gL1wqJC8pIHsKKyAgICAgICAgICAgICAgICAgICAgJGdldHRlckNv
bnRlbnQgPSAkYXR0cmlidXRlVHlwZSAuICJyZXN1bHQgPSAiIC4gJGdldHRlckNvbnRlbnQ7Cisg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgJGdldHRlckNvbnRl
bnQgPSAkYXR0cmlidXRlVHlwZSAuICIgcmVzdWx0ID0gIiAuICRnZXR0ZXJDb250ZW50OworICAg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
ICRleGNlcHRpb25Jbml0XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICAkZ2V0dGVyQ29udGVudDtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgICRleGNlcHRpb25SYWlzZU9uRXJyb3JcbiIpOworICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiByZXN1bHQ7XG4iKTsKKyAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuICRn
ZXR0ZXJDb250ZW50O1xuIik7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIn1cblxuIik7CiAKICAgICAgICAgICAgICMgLSBTRVRURVIKICAgICAgICAgICAg
IGlmICghJGF0dHJpYnV0ZUlzUmVhZG9ubHkpIHsKICAgICAgICAgICAgICAgICAjIEV4Y2VwdGlv
biBoYW5kbGluZwogICAgICAgICAgICAgICAgIG15ICRoYXNTZXR0ZXJFeGNlcHRpb24gPSBAeyRh
dHRyaWJ1dGUtPnNldHRlckV4Y2VwdGlvbnN9OwotICAgICAgICAgICAgICAgIAorCiAgICAgICAg
ICAgICAgICAgJGF0dHJpYnV0ZU5hbWUgPSAic2V0IiAuIHVjZmlyc3QoJGF0dHJpYnV0ZU5hbWUp
OwogICAgICAgICAgICAgICAgIG15ICRzZXR0ZXJOYW1lID0gInNldCIgLiB1Y2ZpcnN0KCRpbnRl
cmZhY2VOYW1lKTsKICAgICAgICAgICAgICAgICBteSAkYXJnTmFtZSA9ICJuZXciIC4gdWNmaXJz
dCgkaW50ZXJmYWNlTmFtZSk7CiAKICAgICAgICAgICAgICAgICBteSAkc2V0dGVyU2lnID0gIi0g
KHZvaWQpJHNldHRlck5hbWU6KCRhdHRyaWJ1dGVUeXBlKSRhcmdOYW1lXG4iOwotICAgICAgICAg
ICAgICAgIAorCiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICRzZXR0ZXJTaWcp
OwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7Ci0gICAgICAgICAg
ICAgICAgCisKICAgICAgICAgICAgICAgICBpZiAoJGhhc1NldHRlckV4Y2VwdGlvbikgewogICAg
ICAgICAgICAgICAgICAgICAjIEZJWE1FOiBhc3NlcnRzIGV4c2lzdCBpbiB0aGUgZXhzaXN0aW5n
IGJpbmRpbmdzLCBidXQgSSBhbSB1bnN1cmUgd2h5IHRoZXkgYXJlIAogICAgICAgICAgICAgICAg
ICAgICAjIHRoZXJlIGluIHRoZSBmaXJzdCBwbGFjZTsKICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgQVNTRVJUKCRhcmdOYW1lKTtcblxuIik7Ci0gICAgICAgICAg
ICAgICAgCisKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGV4
Y2VwdGlvbkluaXRcbiIpOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICAkaW1wbGVtZW50YXRpb24tPiRhdHRyaWJ1dGVOYW1lKCRhcmdOYW1lLCBlYyk7XG4iKTsK
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGV4Y2VwdGlvblJh
aXNlT25FcnJvclxuIik7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGltcGxlbWVudGF0aW9uLT4kYXR0cmlidXRl
TmFtZSgkYXJnTmFtZSk7XG4iKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
CisKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaWRsCShyZXZpc2lvbiAxNjEx
MikKKysrIFdlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00
OCw3ICs0OCw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgW0V4Y2x1ZGU9SlNdIHZvaWQgICAg
ICAgICAgICAgICBjbG9zZSgpOwogICAgICAgICBbRXhjbHVkZT1KU10gdm9pZCAgICAgICAgICAg
ICAgIHdyaXRlKGluIERPTVN0cmluZyB0ZXh0KTsKICAgICAgICAgW0V4Y2x1ZGU9SlNdIHZvaWQg
ICAgICAgICAgICAgICB3cml0ZWxuKGluIERPTVN0cmluZyB0ZXh0KTsKLSAgICAgICAgW0V4Y2x1
ZGU9SlNdIE5vZGVMaXN0ICAgICAgICAgICBnZXRFbGVtZW50c0J5TmFtZShpbiBET01TdHJpbmcg
ZWxlbWVudE5hbWUpOworICAgICAgICBbVXNlc1Bhc3NSZWZQdHIsIEV4Y2x1ZGU9SlNdIE5vZGVM
aXN0ICAgICAgICAgICBnZXRFbGVtZW50c0J5TmFtZShpbiBET01TdHJpbmcgZWxlbWVudE5hbWUp
OwogCiAgICAgICAgIC8vIG5vbi1zdGFuZGFyZAogCkluZGV4OiBXZWJLaXQvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MTEyKQorKysgV2ViS2l0
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDA2LTA4LTMwICBT
YW0gV2VpbmlnICA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBwYXRjaCBmb3IgaHR0cDovL2J1Z3ppbGxhLm9w
ZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY0MAorICAgICAgICAgIEF1dG8tZ2VuZXJh
dGUgMTAgbW9yZSBPYmplY3RpdmUtQyBET00gSFRNTCBiaW5kaW5ncworCisgICAgICAgICogV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMDYtMDgtMzAgIEthcmwgQWRhbSAg
PGthcmxhZGFtQHlhaG9vLWluYy5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBhbmQg
VGltIEguCkluZGV4OiBXZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZp
c2lvbiAxNjExMikKKysrIFdlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
d29ya2luZyBjb3B5KQpAQCAtMTI0NiwxMCArMTI0NiwyMCBAQAogCQkJCTkzQUY1MkE1MDgyNTRE
ODcwMDVEMDE1NiAvKiBET01FdmVudHMuaCAqLywKIAkJCQk5M0FGNTJBMzA4MjU0RDgxMDA1RDAx
NTYgLyogRE9NRXh0ZW5zaW9ucy5oICovLAogCQkJCTkzQUY1MkExMDgyNTREN0QwMDVEMDE1NiAv
KiBET01IVE1MLmggKi8sCisJCQkJODU5QTlDQjkwQUE1RTU5RjAwQjY5NEIyIC8qIERPTUhUTUxC
YXNlRWxlbWVudC5oICovLAorCQkJCTg1OUE5Q0MwMEFBNUU1Q0UwMEI2OTRCMiAvKiBET01IVE1M
Qm9keUVsZW1lbnQuaCAqLywKIAkJCQk4NTBFNjdEQTBBOTUxQjQwMDBFRkI3M0EgLyogRE9NSFRN
TENvbGxlY3Rpb24uaCAqLywKKwkJCQk4NTBFNjJCNTBBOTQxMkM2MDBFRkI3M0EgLyogRE9NSFRN
TERvY3VtZW50LmggKi8sCiAJCQkJODU2RTA2NUYwQTkzOTg1OTAwQTI0NzM5IC8qIERPTUhUTUxF
bGVtZW50LmggKi8sCiAJCQkJODVERjJFQTkwQUEzODI0NzAwQUQ2NEM1IC8qIERPTUhUTUxGb3Jt
RWxlbWVudC5oICovLAorCQkJCTg1Q0E5NjU0MEE5NTYzRkIwMDY5MENDRiAvKiBET01IVE1MSGVh
ZEVsZW1lbnQuaCAqLywKKwkJCQk4NUNBOTY1RDBBOTU2NDREMDA2OTBDQ0YgLyogRE9NSFRNTEh0
bWxFbGVtZW50LmggKi8sCisJCQkJODU5QTlDQzQwQUE1RTYwMDAwQjY5NEIyIC8qIERPTUhUTUxJ
c0luZGV4RWxlbWVudC5oICovLAorCQkJCTg1MEU2MzMzMEE5NDE0NzgwMEVGQjczQSAvKiBET01I
VE1MTGlua0VsZW1lbnQuaCAqLywKKwkJCQk4NTlBOUNBOTBBQTVFNTQ2MDBCNjk0QjIgLyogRE9N
SFRNTE1ldGFFbGVtZW50LmggKi8sCiAJCQkJODUwRTY3RTAwQTk1MUI3QzAwRUZCNzNBIC8qIERP
TUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oICovLAorCQkJCTg1OUE5Q0M4MEFBNUU2MkQwMEI2OTRC
MiAvKiBET01IVE1MU3R5bGVFbGVtZW50LmggKi8sCisJCQkJODVDQTk2OTkwQTk1NjZDMTAwNjkw
Q0NGIC8qIERPTUhUTUxUaXRsZUVsZW1lbnQuaCAqLywKIAkJCQk5M0FGNTI5RjA4MjU0RDdBMDA1
RDAxNTYgLyogRE9NUHJpdmF0ZS5oICovLAogCQkJCTkzQUY1MjlEMDgyNTRENzYwMDVEMDE1NiAv
KiBET01SYW5nZS5oICovLAogCQkJCTkzQUY1MjlCMDgyNTRENjIwMDVEMDE1NiAvKiBET01TdHls
ZXNoZWV0cy5oICovLApAQCAtMTMzNyw2ICsxMzQ3LDM4IEBACiAJCQlzaGVsbFBhdGggPSAvYmlu
L3NoOwogCQkJc2hlbGxTY3JpcHQgPSAibWtkaXIgLXAgXCIkVEFSR0VUX0JVSUxEX0RJUi8kUFVC
TElDX0hFQURFUlNfRk9MREVSX1BBVEhcIlxuc2VkIC1lIHMvV2ViQ29yZS9XZWJLaXQvIFwiJFdF
QkNPUkVfUFJJVkFURV9IRUFERVJTX0RJUi9ET01YUGF0aC5oXCIgPiBcIiRUQVJHRVRfQlVJTERf
RElSLyRQVUJMSUNfSEVBREVSU19GT0xERVJfUEFUSC9ET01YUGF0aC5oXCIiOwogCQl9OworCQk4
NTBFNjJCNTBBOTQxMkM2MDBFRkI3M0EgLyogRE9NSFRNTERvY3VtZW50LmggKi8gPSB7CisJCQlp
c2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3
NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJaW5wdXRQYXRocyA9ICgKKwkJCQkiJChX
RUJDT1JFX1BSSVZBVEVfSEVBREVSU19ESVIpL0RPTUhUTUxEb2N1bWVudC5oIiwKKwkJCSk7CisJ
CQluYW1lID0gRE9NSFRNTERvY3VtZW50Lmg7CisJCQlvdXRwdXRQYXRocyA9ICgKKwkJCQkiJChU
QVJHRVRfQlVJTERfRElSKS8kKFBVQkxJQ19IRUFERVJTX0ZPTERFUl9QQVRIKS9ET01IVE1MRG9j
dW1lbnQuaCIsCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CisJCQlzaGVsbFBhdGggPSAvYmluL3NoOworCQkJc2hlbGxTY3JpcHQgPSAibWtkaXIgLXAg
XCIkVEFSR0VUX0JVSUxEX0RJUi8kUFVCTElDX0hFQURFUlNfRk9MREVSX1BBVEhcIlxuc2VkIC1l
IHMvV2ViQ29yZS9XZWJLaXQvIFwiJFdFQkNPUkVfUFJJVkFURV9IRUFERVJTX0RJUi9ET01IVE1M
RG9jdW1lbnQuaFwiID4gXCIkVEFSR0VUX0JVSUxEX0RJUi8kUFVCTElDX0hFQURFUlNfRk9MREVS
X1BBVEgvRE9NSFRNTERvY3VtZW50LmhcIiI7CisJCX07CisJCTg1MEU2MzMzMEE5NDE0NzgwMEVG
QjczQSAvKiBET01IVE1MTGlua0VsZW1lbnQuaCAqLyA9IHsKKwkJCWlzYSA9IFBCWFNoZWxsU2Ny
aXB0QnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxl
cyA9ICgKKwkJCSk7CisJCQlpbnB1dFBhdGhzID0gKAorCQkJCSIkKFdFQkNPUkVfUFJJVkFURV9I
RUFERVJTX0RJUikvRE9NSFRNTExpbmtFbGVtZW50LmgiLAorCQkJKTsKKwkJCW5hbWUgPSBET01I
VE1MTGlua0VsZW1lbnQuaDsKKwkJCW91dHB1dFBhdGhzID0gKAorCQkJCSIkKFRBUkdFVF9CVUlM
RF9ESVIpLyQoUFVCTElDX0hFQURFUlNfRk9MREVSX1BBVEgpL0RPTUhUTUxMaW5rRWxlbWVudC5o
IiwKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJ
CXNoZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlwdCA9ICJta2RpciAtcCBcIiRUQVJH
RVRfQlVJTERfRElSLyRQVUJMSUNfSEVBREVSU19GT0xERVJfUEFUSFwiXG5zZWQgLWUgcy9XZWJD
b3JlL1dlYktpdC8gXCIkV0VCQ09SRV9QUklWQVRFX0hFQURFUlNfRElSL0RPTUhUTUxMaW5rRWxl
bWVudC5oXCIgPiBcIiRUQVJHRVRfQlVJTERfRElSLyRQVUJMSUNfSEVBREVSU19GT0xERVJfUEFU
SC9ET01IVE1MTGlua0VsZW1lbnQuaFwiIjsKKwkJfTsKIAkJODUwRTY3REEwQTk1MUI0MDAwRUZC
NzNBIC8qIERPTUhUTUxDb2xsZWN0aW9uLmggKi8gPSB7CiAJCQlpc2EgPSBQQlhTaGVsbFNjcmlw
dEJ1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAtMTYwOSw2
ICsxNjUxLDg2IEBACiAJCQlzaGVsbFBhdGggPSAvYmluL3NoOwogCQkJc2hlbGxTY3JpcHQgPSAi
bWtkaXIgLXAgXCIkVEFSR0VUX0JVSUxEX0RJUi8kUFVCTElDX0hFQURFUlNfRk9MREVSX1BBVEhc
Ilxuc2VkIC1lIHMvV2ViQ29yZS9XZWJLaXQvIFwiJFdFQkNPUkVfUFJJVkFURV9IRUFERVJTX0RJ
Ui9ET01IVE1MRWxlbWVudC5oXCIgPiBcIiRUQVJHRVRfQlVJTERfRElSLyRQVUJMSUNfSEVBREVS
U19GT0xERVJfUEFUSC9ET01IVE1MRWxlbWVudC5oXCIiOwogCQl9OworCQk4NTlBOUNBOTBBQTVF
NTQ2MDBCNjk0QjIgLyogRE9NSFRNTE1ldGFFbGVtZW50LmggKi8gPSB7CisJCQlpc2EgPSBQQlhT
aGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3Owor
CQkJZmlsZXMgPSAoCisJCQkpOworCQkJaW5wdXRQYXRocyA9ICgKKwkJCQkiJChXRUJDT1JFX1BS
SVZBVEVfSEVBREVSU19ESVIpL0RPTUhUTUxNZXRhRWxlbWVudC5oIiwKKwkJCSk7CisJCQluYW1l
ID0gRE9NSFRNTE1ldGFFbGVtZW50Lmg7CisJCQlvdXRwdXRQYXRocyA9ICgKKwkJCQkiJChUQVJH
RVRfQlVJTERfRElSKS8kKFBVQkxJQ19IRUFERVJTX0ZPTERFUl9QQVRIKS9ET01IVE1MTWV0YUVs
ZW1lbnQuaCIsCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CisJCQlzaGVsbFBhdGggPSAvYmluL3NoOworCQkJc2hlbGxTY3JpcHQgPSAibWtkaXIgLXAg
XCIkVEFSR0VUX0JVSUxEX0RJUi8kUFVCTElDX0hFQURFUlNfRk9MREVSX1BBVEhcIlxuc2VkIC1l
IHMvV2ViQ29yZS9XZWJLaXQvIFwiJFdFQkNPUkVfUFJJVkFURV9IRUFERVJTX0RJUi9ET01IVE1M
TWV0YUVsZW1lbnQuaFwiID4gXCIkVEFSR0VUX0JVSUxEX0RJUi8kUFVCTElDX0hFQURFUlNfRk9M
REVSX1BBVEgvRE9NSFRNTE1ldGFFbGVtZW50LmhcIiI7CisJCX07CisJCTg1OUE5Q0I5MEFBNUU1
OUYwMEI2OTRCMiAvKiBET01IVE1MQmFzZUVsZW1lbnQuaCAqLyA9IHsKKwkJCWlzYSA9IFBCWFNo
ZWxsU2NyaXB0QnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJ
CQlmaWxlcyA9ICgKKwkJCSk7CisJCQlpbnB1dFBhdGhzID0gKAorCQkJCSIkKFdFQkNPUkVfUFJJ
VkFURV9IRUFERVJTX0RJUikvRE9NSFRNTEJhc2VFbGVtZW50LmgiLAorCQkJKTsKKwkJCW5hbWUg
PSBET01IVE1MQmFzZUVsZW1lbnQuaDsKKwkJCW91dHB1dFBhdGhzID0gKAorCQkJCSIkKFRBUkdF
VF9CVUlMRF9ESVIpLyQoUFVCTElDX0hFQURFUlNfRk9MREVSX1BBVEgpL0RPTUhUTUxCYXNlRWxl
bWVudC5oIiwKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKKwkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlwdCA9ICJta2RpciAtcCBc
IiRUQVJHRVRfQlVJTERfRElSLyRQVUJMSUNfSEVBREVSU19GT0xERVJfUEFUSFwiXG5zZWQgLWUg
cy9XZWJDb3JlL1dlYktpdC8gXCIkV0VCQ09SRV9QUklWQVRFX0hFQURFUlNfRElSL0RPTUhUTUxC
YXNlRWxlbWVudC5oXCIgPiBcIiRUQVJHRVRfQlVJTERfRElSLyRQVUJMSUNfSEVBREVSU19GT0xE
RVJfUEFUSC9ET01IVE1MQmFzZUVsZW1lbnQuaFwiIjsKKwkJfTsKKwkJODU5QTlDQzAwQUE1RTVD
RTAwQjY5NEIyIC8qIERPTUhUTUxCb2R5RWxlbWVudC5oICovID0geworCQkJaXNhID0gUEJYU2hl
bGxTY3JpcHRCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJ
CWZpbGVzID0gKAorCQkJKTsKKwkJCWlucHV0UGF0aHMgPSAoCisJCQkJIiQoV0VCQ09SRV9QUklW
QVRFX0hFQURFUlNfRElSKS9ET01IVE1MQm9keUVsZW1lbnQuaCIsCisJCQkpOworCQkJbmFtZSA9
IERPTUhUTUxCb2R5RWxlbWVudC5oOworCQkJb3V0cHV0UGF0aHMgPSAoCisJCQkJIiQoVEFSR0VU
X0JVSUxEX0RJUikvJChQVUJMSUNfSEVBREVSU19GT0xERVJfUEFUSCkvRE9NSFRNTEJvZHlFbGVt
ZW50LmgiLAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OworCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKKwkJCXNoZWxsU2NyaXB0ID0gIm1rZGlyIC1wIFwi
JFRBUkdFVF9CVUlMRF9ESVIvJFBVQkxJQ19IRUFERVJTX0ZPTERFUl9QQVRIXCJcbnNlZCAtZSBz
L1dlYkNvcmUvV2ViS2l0LyBcIiRXRUJDT1JFX1BSSVZBVEVfSEVBREVSU19ESVIvRE9NSFRNTEJv
ZHlFbGVtZW50LmhcIiA+IFwiJFRBUkdFVF9CVUlMRF9ESVIvJFBVQkxJQ19IRUFERVJTX0ZPTERF
Ul9QQVRIL0RPTUhUTUxCb2R5RWxlbWVudC5oXCIiOworCQl9OworCQk4NTlBOUNDNDBBQTVFNjAw
MDBCNjk0QjIgLyogRE9NSFRNTElzSW5kZXhFbGVtZW50LmggKi8gPSB7CisJCQlpc2EgPSBQQlhT
aGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3Owor
CQkJZmlsZXMgPSAoCisJCQkpOworCQkJaW5wdXRQYXRocyA9ICgKKwkJCQkiJChXRUJDT1JFX1BS
SVZBVEVfSEVBREVSU19ESVIpL0RPTUhUTUxJc0luZGV4RWxlbWVudC5oIiwKKwkJCSk7CisJCQlu
YW1lID0gRE9NSFRNTElzSW5kZXhFbGVtZW50Lmg7CisJCQlvdXRwdXRQYXRocyA9ICgKKwkJCQki
JChUQVJHRVRfQlVJTERfRElSKS8kKFBVQkxJQ19IRUFERVJTX0ZPTERFUl9QQVRIKS9ET01IVE1M
SXNJbmRleEVsZW1lbnQuaCIsCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CisJCQlzaGVsbFBhdGggPSAvYmluL3NoOworCQkJc2hlbGxTY3JpcHQgPSAi
bWtkaXIgLXAgXCIkVEFSR0VUX0JVSUxEX0RJUi8kUFVCTElDX0hFQURFUlNfRk9MREVSX1BBVEhc
Ilxuc2VkIC1lIHMvV2ViQ29yZS9XZWJLaXQvIFwiJFdFQkNPUkVfUFJJVkFURV9IRUFERVJTX0RJ
Ui9ET01IVE1MSXNJbmRleEVsZW1lbnQuaFwiID4gXCIkVEFSR0VUX0JVSUxEX0RJUi8kUFVCTElD
X0hFQURFUlNfRk9MREVSX1BBVEgvRE9NSFRNTElzSW5kZXhFbGVtZW50LmhcIiI7CisJCX07CisJ
CTg1OUE5Q0M4MEFBNUU2MkQwMEI2OTRCMiAvKiBET01IVE1MU3R5bGVFbGVtZW50LmggKi8gPSB7
CisJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sg
PSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJaW5wdXRQYXRocyA9ICgKKwkJ
CQkiJChXRUJDT1JFX1BSSVZBVEVfSEVBREVSU19ESVIpL0RPTUhUTUxTdHlsZUVsZW1lbnQuaCIs
CisJCQkpOworCQkJbmFtZSA9IERPTUhUTUxTdHlsZUVsZW1lbnQuaDsKKwkJCW91dHB1dFBhdGhz
ID0gKAorCQkJCSIkKFRBUkdFVF9CVUlMRF9ESVIpLyQoUFVCTElDX0hFQURFUlNfRk9MREVSX1BB
VEgpL0RPTUhUTUxTdHlsZUVsZW1lbnQuaCIsCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCQlzaGVsbFBhdGggPSAvYmluL3NoOworCQkJc2hlbGxT
Y3JpcHQgPSAibWtkaXIgLXAgXCIkVEFSR0VUX0JVSUxEX0RJUi8kUFVCTElDX0hFQURFUlNfRk9M
REVSX1BBVEhcIlxuc2VkIC1lIHMvV2ViQ29yZS9XZWJLaXQvIFwiJFdFQkNPUkVfUFJJVkFURV9I
RUFERVJTX0RJUi9ET01Db3JlLmhcIiA+IFwiJFRBUkdFVF9CVUlMRF9ESVIvJFBVQkxJQ19IRUFE
RVJTX0ZPTERFUl9QQVRIL0RPTUNvcmUuaFwiIjsKKwkJfTsKIAkJODVBNUM1RTEwQTkwMzJCMzAw
RjkxRjJDIC8qIERPTUVsZW1lbnQuaCAqLyA9IHsKIAkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVp
bGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CkBAIC0xNjczLDYgKzE3
OTUsNTQgQEAKIAkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CiAJCQlzaGVsbFNjcmlwdCA9ICJta2Rp
ciAtcCBcIiRUQVJHRVRfQlVJTERfRElSLyRQVUJMSUNfSEVBREVSU19GT0xERVJfUEFUSFwiXG5z
ZWQgLWUgcy9XZWJDb3JlL1dlYktpdC8gXCIkV0VCQ09SRV9QUklWQVRFX0hFQURFUlNfRElSL0RP
TURvY3VtZW50RnJhZ21lbnQuaFwiID4gXCIkVEFSR0VUX0JVSUxEX0RJUi8kUFVCTElDX0hFQURF
UlNfRk9MREVSX1BBVEgvRE9NRG9jdW1lbnRGcmFnbWVudC5oXCIiOwogCQl9OworCQk4NUNBOTY1
NDBBOTU2M0ZCMDA2OTBDQ0YgLyogRE9NSFRNTEhlYWRFbGVtZW50LmggKi8gPSB7CisJCQlpc2Eg
PSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgz
NjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJaW5wdXRQYXRocyA9ICgKKwkJCQkiJChXRUJD
T1JFX1BSSVZBVEVfSEVBREVSU19ESVIpL0RPTUhUTUxIZWFkRWxlbWVudC5oIiwKKwkJCSk7CisJ
CQluYW1lID0gRE9NSFRNTEhlYWRFbGVtZW50Lmg7CisJCQlvdXRwdXRQYXRocyA9ICgKKwkJCQki
JChUQVJHRVRfQlVJTERfRElSKS8kKFBVQkxJQ19IRUFERVJTX0ZPTERFUl9QQVRIKS9ET01IVE1M
SGVhZEVsZW1lbnQuaCIsCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CisJCQlzaGVsbFBhdGggPSAvYmluL3NoOworCQkJc2hlbGxTY3JpcHQgPSAibWtk
aXIgLXAgXCIkVEFSR0VUX0JVSUxEX0RJUi8kUFVCTElDX0hFQURFUlNfRk9MREVSX1BBVEhcIlxu
c2VkIC1lIHMvV2ViQ29yZS9XZWJLaXQvIFwiJFdFQkNPUkVfUFJJVkFURV9IRUFERVJTX0RJUi9E
T01IVE1MSGVhZEVsZW1lbnQuaFwiID4gXCIkVEFSR0VUX0JVSUxEX0RJUi8kUFVCTElDX0hFQURF
UlNfRk9MREVSX1BBVEgvRE9NSFRNTEhlYWRFbGVtZW50LmhcIiI7CisJCX07CisJCTg1Q0E5NjVE
MEE5NTY0NEQwMDY5MENDRiAvKiBET01IVE1MSHRtbEVsZW1lbnQuaCAqLyA9IHsKKwkJCWlzYSA9
IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2
NDc7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJCQlpbnB1dFBhdGhzID0gKAorCQkJCSIkKFdFQkNP
UkVfUFJJVkFURV9IRUFERVJTX0RJUikvRE9NSFRNTEh0bWxFbGVtZW50LmgiLAorCQkJKTsKKwkJ
CW5hbWUgPSBET01IVE1MSHRtbEVsZW1lbnQuaDsKKwkJCW91dHB1dFBhdGhzID0gKAorCQkJCSIk
KFRBUkdFVF9CVUlMRF9ESVIpLyQoUFVCTElDX0hFQURFUlNfRk9MREVSX1BBVEgpL0RPTUhUTUxI
dG1sRWxlbWVudC5oIiwKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKKwkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlwdCA9ICJta2Rp
ciAtcCBcIiRUQVJHRVRfQlVJTERfRElSLyRQVUJMSUNfSEVBREVSU19GT0xERVJfUEFUSFwiXG5z
ZWQgLWUgcy9XZWJDb3JlL1dlYktpdC8gXCIkV0VCQ09SRV9QUklWQVRFX0hFQURFUlNfRElSL0RP
TUhUTUxIdG1sRWxlbWVudC5oXCIgPiBcIiRUQVJHRVRfQlVJTERfRElSLyRQVUJMSUNfSEVBREVS
U19GT0xERVJfUEFUSC9ET01IVE1MSHRtbEVsZW1lbnQuaFwiIjsKKwkJfTsKKwkJODVDQTk2OTkw
QTk1NjZDMTAwNjkwQ0NGIC8qIERPTUhUTUxUaXRsZUVsZW1lbnQuaCAqLyA9IHsKKwkJCWlzYSA9
IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2
NDc7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJCQlpbnB1dFBhdGhzID0gKAorCQkJCSIkKFdFQkNP
UkVfUFJJVkFURV9IRUFERVJTX0RJUikvRE9NSFRNTFRpdGxlRWxlbWVudC5oIiwKKwkJCSk7CisJ
CQluYW1lID0gRE9NSFRNTFRpdGxlRWxlbWVudC5oOworCQkJb3V0cHV0UGF0aHMgPSAoCisJCQkJ
IiQoVEFSR0VUX0JVSUxEX0RJUikvJChQVUJMSUNfSEVBREVSU19GT0xERVJfUEFUSCkvRE9NSFRN
TFRpdGxlRWxlbWVudC5oIiwKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKKwkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlwdCA9ICJt
a2RpciAtcCBcIiRUQVJHRVRfQlVJTERfRElSLyRQVUJMSUNfSEVBREVSU19GT0xERVJfUEFUSFwi
XG5zZWQgLWUgcy9XZWJDb3JlL1dlYktpdC8gXCIkV0VCQ09SRV9QUklWQVRFX0hFQURFUlNfRElS
L0RPTUhUTUxUaXRsZUVsZW1lbnQuaFwiID4gXCIkVEFSR0VUX0JVSUxEX0RJUi8kUFVCTElDX0hF
QURFUlNfRk9MREVSX1BBVEgvRE9NSFRNTFRpdGxlRWxlbWVudC5oXCIiOworCQl9OwogCQk4NURG
MkVBOTBBQTM4MjQ3MDBBRDY0QzUgLyogRE9NSFRNTEZvcm1FbGVtZW50LmggKi8gPSB7CiAJCQlp
c2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3
NDgzNjQ3Owo=
</data>
<flag name="review"
          id="3265"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>