<?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>26601</bug_id>
          
          <creation_ts>2009-06-22 01:43:06 -0700</creation_ts>
          <short_desc>Remove disabled code for appcache dynamic entries</short_desc>
          <delta_ts>2009-06-22 11:23:25 -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>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>127328</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-06-22 01:43:06 -0700</bug_when>
    <thetext>We still have some unfinished code for application cache dynamic entries in trunk. It is based on DOMStringList code that we don&apos;t use anywhere else (even though it is used elsewhere in DOM 3 Core and in HTML5), which should probably be removed for now, as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127330</commentid>
    <comment_count>1</comment_count>
      <attachid>31639</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-06-22 01:47:39 -0700</bug_when>
    <thetext>Created attachment 31639
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127358</commentid>
    <comment_count>2</comment_count>
      <attachid>31639</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-06-22 08:38:02 -0700</bug_when>
    <thetext>Comment on attachment 31639
proposed patch

Diff seems to be confused about ApplicationCacheGroup.cpp. I see diffs there in code that hasn&apos;t changed at all.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127395</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-06-22 11:23:25 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Diff seems to be confused about ApplicationCacheGroup.cpp. I see diffs there in
&gt; code that hasn&apos;t changed at all.

Turns out Xcode corrected line endings there. Appcache files were missing svn:eol-style properties, which I now added.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31639</attachid>
            <date>2009-06-22 01:47:39 -0700</date>
            <delta_ts>2009-06-22 08:38:02 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>RemoveDynamicEntries.txt</filename>
            <type>text/plain</type>
            <size>53547</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NDkzMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDYgQEAKKzIwMDktMDYtMjIgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJr
aXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjYwMQorICAgICAgICBS
ZW1vdmUgZGlzYWJsZWQgY29kZSBmb3IgYXBwY2FjaGUgZHluYW1pYyBlbnRyaWVzCisKKyAgICAg
ICAgVGhpcyBhbHNvIHJlbW92ZXMgY29kZSBmb3IgRE9NIDMgQ29yZSBET01TdHJpbmdMaXN0LCB3
aGljaCB3ZSBkb24ndCB1c2UgZm9yIGFueXRoaW5nIGVsc2UgeWV0LgorCisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMuY3BwOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAg
ICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYkNvcmVTb3VyY2VzLmJrbDoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0RPTVN0cmluZ0xpc3RDdXN0b20uY3BwOiBSZW1vdmVkLgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbUJpbmRpbmcuaDoKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9jdXN0b20vVjhET01TdHJpbmdMaXN0Q3VzdG9tLmNwcDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBkb20vRE9NU3RyaW5nTGlzdC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogZG9tL0RPTVN0
cmluZ0xpc3QuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBkb20vRE9NU3RyaW5nTGlzdC5pZGw6IFJl
bW92ZWQuCisgICAgICAgICogZG9tL1N0YXRpY1N0cmluZ0xpc3QuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIGRvbS9TdGF0aWNTdHJpbmdMaXN0Lmg6IFJlbW92ZWQuCisgICAgICAgICogbG9hZGVy
L0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpz
aG91bGRMb2FkUmVzb3VyY2VGcm9tQXBwbGljYXRpb25DYWNoZSk6CisgICAgICAgICogbG9hZGVy
L2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGlj
YXRpb25DYWNoZTo6YWRkUmVzb3VyY2UpOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBs
aWNhdGlvbkNhY2hlLmg6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2Fj
aGVHcm91cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRp
ZEZpbmlzaExvYWRpbmdNYW5pZmVzdCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNh
Y2hlR3JvdXA6OmNoZWNrSWZMb2FkSXNDb21wbGV0ZSk6CisgICAgICAgICogbG9hZGVyL2FwcGNh
Y2hlL0FwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBs
aWNhdGlvbkNhY2hlUmVzb3VyY2U6OmR1bXBUeXBlKToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZVJlc291cmNlLmg6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNh
dGlvbkNhY2hlUmVzb3VyY2U6Oik6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVT
dG9yYWdlOjpzdG9yZVVwZGF0ZWRUeXBlKToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvRE9N
QXBwbGljYXRpb25DYWNoZS5jcHA6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxp
Y2F0aW9uQ2FjaGUuaDoKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25D
YWNoZS5pZGw6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorCiAyMDA5LTA2LTIxICBE
YXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0g
V2VpbmlnLgpJbmRleDogV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAJKHJldmlzaW9uIDQ0OTI4KQorKysgV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDYgQEAKICNpbmNs
dWRlICJKU0RPTUltcGxlbWVudGF0aW9uLmNwcCIKICNpbmNsdWRlICJKU0RPTVBhcnNlci5jcHAi
CiAjaW5jbHVkZSAiSlNET01TZWxlY3Rpb24uY3BwIgotI2luY2x1ZGUgIkpTRE9NU3RyaW5nTGlz
dC5jcHAiCiAjaW5jbHVkZSAiSlNET01XaW5kb3cuY3BwIgogI2luY2x1ZGUgIkpTRWxlbWVudC5j
cHAiCiAjaW5jbHVkZSAiSlNFbnRpdHkuY3BwIgpJbmRleDogV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNp
b24gNDQ5MjgpCisrKyBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkK
QEAgLTgwLDcgKzgwLDYgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgRE9NSW1wbGVtZW50YXRpb24g
XAogICAgIERPTVBhcnNlciBcCiAgICAgRE9NU2VsZWN0aW9uIFwKLSAgICBET01TdHJpbmdMaXN0
IFwKICAgICBET01XaW5kb3cgXAogICAgIERhdGFiYXNlIFwKICAgICBEb2N1bWVudCBcCkluZGV4
OiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZp
bGUuYW0JKHJldmlzaW9uIDQ0OTI4KQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2lu
ZyBjb3B5KQpAQCAtMTE4LDcgKzExOCw2IEBAIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9k
b20vQ29tbWVudC5pZGwgXAogCVdlYkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uaWRsIFwKIAlX
ZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5pZGwgXAotCVdlYkNvcmUvZG9tL0RPTVN0cmlu
Z0xpc3QuaWRsIFwKIAlXZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwgXAogCVdlYkNvcmUvZG9tL0Rv
Y3VtZW50RnJhZ21lbnQuaWRsIFwKIAlXZWJDb3JlL2RvbS9Eb2N1bWVudFR5cGUuaWRsIFwKQEAg
LTMxNCw3ICszMTMsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmpl
Y3QuY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmggXAotCVdl
YkNvcmUvYmluZGluZ3MvanMvSlNET01TdHJpbmdMaXN0Q3VzdG9tLmNwcCBcCiAJV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93QmFzZS5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9t
LmNwcCBcCkBAIC02MzMsOCArNjMxLDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3Jl
L2RvbS9ET01Db3JlRXhjZXB0aW9uLmggXAogCVdlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9u
LmNwcCBcCiAJV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaCBcCi0JV2ViQ29yZS9kb20v
RE9NU3RyaW5nTGlzdC5jcHAgXAotCVdlYkNvcmUvZG9tL0RPTVN0cmluZ0xpc3QuaCBcCiAJV2Vi
Q29yZS9kb20vRG9jUHRyLmggXAogCVdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBcCiAJV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaCBcCkBAIC03NDAsOCArNzM2LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlXZWJDb3JlL2RvbS9TZWxlY3Rvck5vZGVMaXN0LmggXAogCVdlYkNvcmUvZG9tL1N0YXRp
Y05vZGVMaXN0LmNwcCBcCiAJV2ViQ29yZS9kb20vU3RhdGljTm9kZUxpc3QuaCBcCi0JV2ViQ29y
ZS9kb20vU3RhdGljU3RyaW5nTGlzdC5jcHAgXAotCVdlYkNvcmUvZG9tL1N0YXRpY1N0cmluZ0xp
c3QuaCBcCiAJV2ViQ29yZS9kb20vU3R5bGVFbGVtZW50LmNwcCBcCiAJV2ViQ29yZS9kb20vU3R5
bGVFbGVtZW50LmggXAogCVdlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwIFwKSW5kZXg6IFdl
YkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2
aXNpb24gNDQ5MjgpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0y
OTUsNyArMjk1LDYgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBkb20vRG9jdW1lbnRUeXBlLmlk
bCBcCiAgICAgZG9tL0RPTUNvcmVFeGNlcHRpb24uaWRsIFwKICAgICBkb20vRE9NSW1wbGVtZW50
YXRpb24uaWRsIFwKLSAgICBkb20vRE9NU3RyaW5nTGlzdC5pZGwgXAogICAgIGRvbS9FbGVtZW50
LmlkbCBcCiAgICAgZG9tL0VudGl0eS5pZGwgXAogICAgIGRvbS9FbnRpdHlSZWZlcmVuY2UuaWRs
IFwKQEAgLTQ2MSw3ICs0NjAsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBiaW5kaW5ncy9qcy9KU0Rv
Y3VtZW50Q3VzdG9tLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNEb2N1bWVudEZyYWdtZW50Q3Vz
dG9tLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwIFwKLSAgICBi
aW5kaW5ncy9qcy9KU0RPTVN0cmluZ0xpc3RDdXN0b20uY3BwIFwKICAgICBiaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0Jhc2UuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5j
cHAgXAogICAgIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwIFwKQEAgLTYyMyw3ICs2
MjEsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20vRG9jdW1lbnRGcmFnbWVudC5jcHAgXAogICAg
IGRvbS9Eb2N1bWVudFR5cGUuY3BwIFwKICAgICBkb20vRE9NSW1wbGVtZW50YXRpb24uY3BwIFwK
LSAgICBkb20vRE9NU3RyaW5nTGlzdC5jcHAgXAogICAgIGRvbS9EeW5hbWljTm9kZUxpc3QuY3Bw
IFwKICAgICBkb20vRWRpdGluZ1RleHQuY3BwIFwKICAgICBkb20vRWxlbWVudC5jcHAgXApAQCAt
NjY2LDcgKzY2Myw2IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9TZWxlY3RFbGVtZW50LmNwcCBc
CiAgICAgZG9tL1NlbGVjdG9yTm9kZUxpc3QuY3BwIFwKICAgICBkb20vU3RhdGljTm9kZUxpc3Qu
Y3BwIFwKLSAgICBkb20vU3RhdGljU3RyaW5nTGlzdC5jcHAgXAogICAgIGRvbS9TdHlsZWRFbGVt
ZW50LmNwcCBcCiAgICAgZG9tL1N0eWxlRWxlbWVudC5jcHAgXAogICAgIGRvbS9UYWdOb2RlTGlz
dC5jcHAgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlU291cmNlcy5ia2wKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9XZWJDb3JlU291cmNlcy5ia2wJKHJldmlzaW9uIDQ0OTI4KQorKysgV2ViQ29yZS9X
ZWJDb3JlU291cmNlcy5ia2wJKHdvcmtpbmcgY29weSkKQEAgLTczLDcgKzczLDYgQEAgVGhpcyBm
aWxlIGNvbnRhaW5zIHRoZSBsaXN0IG9mIGZpbGVzIG5lZQogICAgICAgICBiaW5kaW5ncy9qcy9K
U0RhdGFiYXNlQ3VzdG9tLmNwcAogICAgICAgICBiaW5kaW5ncy9qcy9KU0RPTUFwcGxpY2F0aW9u
Q2FjaGVDdXN0b20uY3BwCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNw
cAotICAgICAgICBiaW5kaW5ncy9qcy9KU0RPTVN0cmluZ0xpc3RDdXN0b20uY3BwCiAgICAgICAg
IGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKICAgICAgICAgYmluZGluZ3MvanMvSlNE
T01XaW5kb3dDdXN0b20uY3BwCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwu
Y3BwCkBAIC0yNzIsNyArMjcxLDYgQEAgVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBsaXN0IG9mIGZp
bGVzIG5lZQogICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NSW1wbGVtZW50YXRp
b24uY3BwCiAgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01QYXJzZXIuY3BwCiAg
ICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01TZWxlY3Rpb24uY3BwCi0gICAgICAg
IERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01TdHJpbmdMaXN0LmNwcAogICAgICAgICBEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTRE9NV2luZG93LmNwcAogICAgICAgICBEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTRWxlbWVudC5jcHAKICAgICAgICAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0VudGl0eS5jcHAKQEAgLTQzNSw3ICs0MzMsNiBAQCBUaGlzIGZpbGUgY29udGFpbnMgdGhlIGxp
c3Qgb2YgZmlsZXMgbmVlCiAgICAgICAgIGRvbS9Db21tZW50LmNwcAogICAgICAgICBkb20vQ29u
dGFpbmVyTm9kZS5jcHAKICAgICAgICAgZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAotICAgICAg
ICBkb20vRE9NU3RyaW5nTGlzdC5jcHAKICAgICAgICAgZG9tL0RvY3VtZW50LmNwcAogICAgICAg
ICBkb20vRG9jdW1lbnRGcmFnbWVudC5jcHAKICAgICAgICAgZG9tL0RvY3VtZW50VHlwZS5jcHAK
QEAgLTQ4MSw3ICs0NzgsNiBAQCBUaGlzIGZpbGUgY29udGFpbnMgdGhlIGxpc3Qgb2YgZmlsZXMg
bmVlCiAgICAgICAgIGRvbS9TZWxlY3RFbGVtZW50LmNwcCAKICAgICAgICAgZG9tL1NlbGVjdG9y
Tm9kZUxpc3QuY3BwCiAgICAgICAgIGRvbS9TdGF0aWNOb2RlTGlzdC5jcHAKLSAgICAgICAgZG9t
L1N0YXRpY1N0cmluZ0xpc3QuY3BwCiAgICAgICAgIGRvbS9TdHlsZUVsZW1lbnQuY3BwCiAgICAg
ICAgIGRvbS9TdHlsZWRFbGVtZW50LmNwcAogICAgICAgICBkb20vVGFnTm9kZUxpc3QuY3BwCklu
ZGV4OiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDQ0OTI4KQor
KysgV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpA
QCAtMjI0Miw1NCArMjI0Miw2IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJ
CQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVy
aXZlZFNvdXJjZXNcSlNET01TdHJpbmdMaXN0LmNwcCINCi0JCQkJPg0KLQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24NCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KLQkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiDQotCQkJCQk+DQotCQkJCQk8VG9vbA0KLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiDQotCQkJCQkvPg0KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24NCi0JCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQotCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCi0JCQkJCT4NCi0JCQkJCTxUb29sDQotCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCINCi0JCQkJCS8+DQotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCTxG
aWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQotCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCT4NCi0JCQkJCTxUb29sDQotCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCS8+DQotCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+DQotCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2lu
MzIiDQotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCT4NCi0JCQkJCTxUb29s
DQotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCS8+DQotCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+DQotCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iUmVsZWFz
ZV9DYWlyb3xXaW4zMiINCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJPg0K
LQkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJLz4NCi0J
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVs
YXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTRE9NU3RyaW5nTGlzdC5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxl
DQogCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xKU0RPTVdpbmRvdy5jcHAiDQogCQkJCT4NCiAJCQkJPEZpbGVDb25m
aWd1cmF0aW9uDQpAQCAtMjMxMTUsMTQgKzIzMDY3LDYgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0K
IAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXERPTVN0cmluZ0xpc3QuY3BwIg0K
LQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9t
XERPTVN0cmluZ0xpc3QuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGRvbVxEeW5hbWljTm9kZUxpc3QuY3BwIg0KIAkJCQk+DQogCQkJPC9G
aWxlPg0KQEAgLTIzMjYzLDE5ICsyMzIwNywxOSBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJ
PEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cTWVzc2FnZVBvcnRDaGFubmVsLmNwcCIK
LQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXE1l
c3NhZ2VQb3J0Q2hhbm5lbC5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVs
YXRpdmVQYXRoPSIuLlxkb21cZGVmYXVsdFxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAi
Ci0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxk
ZWZhdWx0XFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmgiCisJCQkJUmVsYXRpdmVQYXRoPSIu
Llxkb21cTWVzc2FnZVBvcnRDaGFubmVsLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8
RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxNZXNzYWdlUG9ydENoYW5uZWwuaCINCisJ
CQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxk
ZWZhdWx0XFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmNwcCINCisJCQkJPg0KKwkJCTwvRmls
ZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxkZWZhdWx0XFBsYXRmb3Jt
TWVzc2FnZVBvcnRDaGFubmVsLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCkBA
IC0yMzQ5OSwxNCArMjM0NDMsNiBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0J
CQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU3RhdGljU3RyaW5nTGlzdC5jcHAiDQotCQkJCT4NCi0J
CQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU3RhdGljU3Ry
aW5nTGlzdC5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQogCQkJCVJlbGF0aXZl
UGF0aD0iLi5cZG9tXFN0eWxlZEVsZW1lbnQuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KQEAg
LTI3ODM0LDEwICsyNzc3MCw2IEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0K
LQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0RPTVN0cmluZ0xpc3RDdXN0b20u
Y3BwIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGJpbmRpbmdzXGpzXEpTRE9NV2luZG93QmFzZS5jcHAiDQogCQkJCQk+DQogCQkJCTwv
RmlsZT4NCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
cmV2aXNpb24gNDQ5MjgpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDMwNCwxMCArNDMwNCw2IEBACiAJCUUxMEI5QjZEMEI3
NDc1OTkwMDNFRDg5MCAvKiBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEwQjlCNkIwQjc0NzU5OTAwM0VEODkw
IC8qIE5hdGl2ZVhQYXRoTlNSZXNvbHZlci5jcHAgKi87IH07CiAJCUUxMEI5Q0NDMEI3NDdBNDQw
MDNFRDg5MCAvKiBET01DdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMEI5Q0NBMEI3NDdBNDQwMDNFRDg5MCAvKiBE
T01DdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCAqLzsgfTsKIAkJRTEwQjlDQ0QwQjc0N0E0NDAwM0VE
ODkwIC8qIERPTUN1c3RvbVhQYXRoTlNSZXNvbHZlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMEI5Q0NCMEI3NDdBNDQwMDNFRDg5MCAvKiBET01D
dXN0b21YUGF0aE5TUmVzb2x2ZXIubW0gKi87IH07Ci0JCUUxMEJCMzc4MEYxNEI2MjIwMDU2MEUx
MyAvKiBET01TdHJpbmdMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMTBCQjM3NzBGMTRCNjIyMDA1NjBFMTMgLyogRE9NU3RyaW5nTGlzdC5oICov
OyB9OwotCQlFMTBCQjM3QjBGMTRCNjQxMDA1NjBFMTMgLyogRE9NU3RyaW5nTGlzdC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTBCQjM3QTBGMTRC
NjQxMDA1NjBFMTMgLyogRE9NU3RyaW5nTGlzdC5jcHAgKi87IH07Ci0JCUUxMEJCMzg2MEYxNEI5
NTAwMDU2MEUxMyAvKiBKU0RPTVN0cmluZ0xpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMEJCMzg0MEYxNEI5NTAwMDU2MEUxMyAvKiBKU0RPTVN0
cmluZ0xpc3QuaCAqLzsgfTsKLQkJRTEwQkIzODcwRjE0Qjk1MDAwNTYwRTEzIC8qIEpTRE9NU3Ry
aW5nTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMTBCQjM4NTBGMTRCOTUwMDA1NjBFMTMgLyogSlNET01TdHJpbmdMaXN0LmNwcCAqLzsgfTsK
IAkJRTExQzlEOUIwRUIzNjgxMjAwRTQwOURCIC8qIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMUM5RDlBMEVC
MzY4MTIwMEU0MDlEQiAvKiBTY3JpcHRFeGVjdXRpb25Db250ZXh0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTExQzlEQjAwRUIzNjk5NTAwRTQw
OURCIC8qIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTExQzlEQUYwRUIzNjk5NTAwRTQwOURCIC8qIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQuY3BwICovOyB9OwogCQlFMTI3MTlDNzBFRUVDMTY4MDBGNjEyMTMg
LyogTmF2aWdhdG9yQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTEyNzE5QzYwRUVFQzE2ODAwRjYxMjEzIC8qIE5hdmlnYXRvckJhc2UuaCAqLzsg
fTsKQEAgLTQzMjAsOSArNDMxNiw2IEBACiAJCUUxMkVEQkVBMEIzMDhFMEIwMDI3MDRCNiAvKiBF
dmVudFRhcmdldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMTJFREJFOTBCMzA4RTBCMDAyNzA0QjYgLyogRXZlbnRUYXJnZXQuY3BwICovOyB9Owog
CQlFMTdBNEExQjBEOTc5OTFEMDBGQzEwQzYgLyogRE9NU1ZHQWx0R2x5cGhFbGVtZW50LmggaW4g
Q29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2NUFBNkJBQzBEOTc0QTAwMDAwNTQxQUUgLyogRE9NU1ZHQWx0R2x5cGhFbGVtZW50LmggKi87
IH07CiAJCUUxN0E0QTFDMEQ5Nzk5MUQwMEZDMTBDNiAvKiBET01TVkdBbHRHbHlwaEVsZW1lbnRJ
bnRlcm5hbC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNjVBQTZCQUUwRDk3NEEwMDAwMDU0MUFFIC8qIERPTVNWR0FsdEdseXBo
RWxlbWVudEludGVybmFsLmggKi87IH07Ci0JCUUxODFCMjU3MEYxNEMxQTYwMEZCNzg0NyAvKiBK
U0RPTVN0cmluZ0xpc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTE4MUIyNTYwRjE0QzFBNjAwRkI3ODQ3IC8qIEpTRE9NU3RyaW5nTGlz
dEN1c3RvbS5jcHAgKi87IH07Ci0JCUUxODFCMzUxMEYxNTAwOEEwMEZCNzg0NyAvKiBTdGF0aWNT
dHJpbmdMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMTgxQjM1MDBGMTUwMDhBMDBGQjc4NDcgLyogU3RhdGljU3RyaW5nTGlzdC5oICovOyB9Owot
CQlFMTgxQjM1NjBGMTUwMEQ3MDBGQjc4NDcgLyogU3RhdGljU3RyaW5nTGlzdC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTgxQjM1NTBGMTUwMEQ3
MDBGQjc4NDcgLyogU3RhdGljU3RyaW5nTGlzdC5jcHAgKi87IH07CiAJCUUxODI1NjhGMEVGMkIw
MkQwMDkzMzI0MiAvKiBKU1dvcmtlckNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE4MjU2OEQwRUYyQjAyRDAwOTMzMjQyIC8qIEpTV29y
a2VyQ29udGV4dC5jcHAgKi87IH07CiAJCUUxODI1NjkwMEVGMkIwMkQwMDkzMzI0MiAvKiBKU1dv
cmtlckNvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxODI1NjhFMEVGMkIwMkQwMDkzMzI0MiAvKiBKU1dvcmtlckNvbnRleHQuaCAqLzsgfTsK
IAkJRTE4MjU4QUMwRUYzQ0Q3MDAwOTMzMjQyIC8qIEpTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTgyNThBQjBF
RjNDRDcwMDA5MzMyNDIgLyogSlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcCAqLzsgfTsKQEAgLTkx
MTcsMTEgKzkxMTAsNiBAQAogCQlFMTBCOUI2QjBCNzQ3NTk5MDAzRUQ4OTAgLyogTmF0aXZlWFBh
dGhOU1Jlc29sdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5h
dGl2ZVhQYXRoTlNSZXNvbHZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUx
MEI5Q0NBMEI3NDdBNDQwMDNFRDg5MCAvKiBET01DdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMEI5Q0NCMEI3NDdBNDQwMDNFRDg5MCAv
KiBET01DdXN0b21YUGF0aE5TUmVzb2x2ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBET01DdXN0b21YUGF0aE5TUmVzb2x2ZXIubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUUxMEJCMzczMEYxNEI1ODUwMDU2MEUxMyAvKiBET01TdHJpbmdMaXN0
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBET01TdHJpbmdMaXN0LmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTEwQkIzNzcwRjE0QjYyMjAwNTYwRTEzIC8qIERPTVN0cmlu
Z0xpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NU3RyaW5nTGlzdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMTBCQjM3QTBGMTRCNjQxMDA1NjBFMTMg
LyogRE9NU3RyaW5nTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBET01TdHJpbmdMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTEwQkIz
ODQwRjE0Qjk1MDAwNTYwRTEzIC8qIEpTRE9NU3RyaW5nTGlzdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU0RPTVN0cmluZ0xpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJRTEwQkIzODUwRjE0Qjk1MDAwNTYwRTEzIC8qIEpTRE9NU3RyaW5nTGlzdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVN0cmluZ0xpc3QuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTFDOUQ5QTBFQjM2ODEyMDBFNDA5REIg
LyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUxMUM5REFGMEVCMzY5OTUwMEU0MDlEQiAvKiBTY3JpcHRFeGVjdXRpb25Db250ZXh0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTI3MTlDNjBFRUVDMTY4
MDBGNjEyMTMgLyogTmF2aWdhdG9yQmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOYXZpZ2F0b3JCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MTMz
LDkgKzkxMjEsNiBAQAogCQlFMTI3MUE1NzBFRUVDREU0MDBGNjEyMTMgLyogSlNXb3JrZXJOYXZp
Z2F0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXb3JrZXJO
YXZpZ2F0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTJFREI3QTBCMzA4
QTc4MDAyNzA0QjYgLyogRXZlbnRUYXJnZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRXZlbnRUYXJnZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEyRURC
RTkwQjMwOEUwQjAwMjcwNEI2IC8qIEV2ZW50VGFyZ2V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEV2ZW50VGFyZ2V0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJRTE4MUIyNTYwRjE0QzFBNjAwRkI3ODQ3IC8qIEpTRE9NU3RyaW5nTGlzdEN1c3Rv
bS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVN0cmluZ0xp
c3RDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMTgxQjM1MDBGMTUw
MDhBMDBGQjc4NDcgLyogU3RhdGljU3RyaW5nTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTdGF0aWNTdHJpbmdMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUUxODFCMzU1MEYxNTAwRDcwMEZCNzg0NyAvKiBTdGF0aWNTdHJpbmdMaXN0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0YXRpY1N0cmluZ0xpc3QuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTgyNTY4RDBFRjJCMDJEMDA5MzMyNDIgLyog
SlNXb3JrZXJDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTV29ya2VyQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxODI1
NjhFMEVGMkIwMkQwMDkzMzI0MiAvKiBKU1dvcmtlckNvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNXb3JrZXJDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUxODI1OEFCMEVGM0NENzAwMDkzMzI0MiAvKiBKU1dvcmtlckNvbnRleHRDdXN0
b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXb3JrZXJDb250
ZXh0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyNDA1LDggKzEy
MzkwLDYgQEAKIAkJCQlCQzYwRDdCRjBEMjlBNDYzMDBCOTkxOEYgLyogSlNET01Db3JlRXhjZXB0
aW9uLmggKi8sCiAJCQkJNjVERjMxRTMwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTRE9NSW1wbGVtZW50
YXRpb24uY3BwICovLAogCQkJCTY1REYzMUU0MDlEMUNDNjAwMDBCRTMyNSAvKiBKU0RPTUltcGxl
bWVudGF0aW9uLmggKi8sCi0JCQkJRTEwQkIzODUwRjE0Qjk1MDAwNTYwRTEzIC8qIEpTRE9NU3Ry
aW5nTGlzdC5jcHAgKi8sCi0JCQkJRTEwQkIzODQwRjE0Qjk1MDAwNTYwRTEzIC8qIEpTRE9NU3Ry
aW5nTGlzdC5oICovLAogCQkJCTY1OUREQzgwMDlFMTk4QkEwMDFCRjNDNiAvKiBKU0RvY3VtZW50
LmNwcCAqLywKIAkJCQk2NTlEREM4MTA5RTE5OEJBMDAxQkYzQzYgLyogSlNEb2N1bWVudC5oICov
LAogCQkJCTFBNDk0RURDMEExMjNGNEMwMEZEQUZDMSAvKiBKU0RvY3VtZW50RnJhZ21lbnQuY3Bw
ICovLApAQCAtMTM0NzgsNyArMTM0NjEsNiBAQAogCQkJCTFBMzQxN0M4MENFQ0ZGMjUwMDQ5Q0JE
RSAvKiBKU0N1c3RvbVZvaWRDYWxsYmFjay5jcHAgKi8sCiAJCQkJMUEzNDE3QzcwQ0VDRkYyNTAw
NDlDQkRFIC8qIEpTQ3VzdG9tVm9pZENhbGxiYWNrLmggKi8sCiAJCQkJMUFDMjI2MTYwREI2OUY3
NDAwODlCNjY5IC8qIEpTRE9NQXBwbGljYXRpb25DYWNoZUN1c3RvbS5jcHAgKi8sCi0JCQkJRTE4
MUIyNTYwRjE0QzFBNjAwRkI3ODQ3IC8qIEpTRE9NU3RyaW5nTGlzdEN1c3RvbS5jcHAgKi8sCiAJ
CQkJQkNEOUMyNUUwQzE3QUE2NzAwNUM5MEEyIC8qIEpTRE9NV2luZG93Q3VzdG9tLmNwcCAqLywK
IAkJCQk2NTJGQkJCQjBERTI3Q0I2MDAwMUQzODYgLyogSlNET01XaW5kb3dDdXN0b20uaCAqLywK
IAkJCQkxQUU4MzA0MjBDQUIwRUQxMDAyMjM3QUUgLyogSlNEYXRhYmFzZUN1c3RvbS5jcHAgKi8s
CkBAIC0xNDQxMCw5ICsxNDM5Miw2IEBACiAJCQkJQTgxODVGMzYwOTc2NTc2NTAwNTgyNkQ5IC8q
IERPTUltcGxlbWVudGF0aW9uLmNwcCAqLywKIAkJCQlBODE4NUYzMzA5NzY1NzY1MDA1ODI2RDkg
LyogRE9NSW1wbGVtZW50YXRpb24uaCAqLywKIAkJCQk5M0VFQzFFOTA5QzI4Nzc3MDBDNTE1RDEg
LyogRE9NSW1wbGVtZW50YXRpb24uaWRsICovLAotCQkJCUUxMEJCMzdBMEYxNEI2NDEwMDU2MEUx
MyAvKiBET01TdHJpbmdMaXN0LmNwcCAqLywKLQkJCQlFMTBCQjM3NzBGMTRCNjIyMDA1NjBFMTMg
LyogRE9NU3RyaW5nTGlzdC5oICovLAotCQkJCUUxMEJCMzczMEYxNEI1ODUwMDU2MEUxMyAvKiBE
T01TdHJpbmdMaXN0LmlkbCAqLywKIAkJCQk5M0VFQzFFNzA5QzI4Nzc3MDBDNTE1RDEgLyogRG9j
UHRyLmggKi8sCiAJCQkJQTgxODVGMzQwOTc2NTc2NTAwNTgyNkQ5IC8qIERvY3VtZW50LmNwcCAq
LywKIAkJCQlBODE4NUYzODA5NzY1NzY1MDA1ODI2RDkgLyogRG9jdW1lbnQuaCAqLywKQEAgLTE0
NTQzLDggKzE0NTIyLDYgQEAKIAkJCQlCQzdGQTY3RjBEMUYxNjc5MDBEQjIyQTkgLyogU2VsZWN0
b3JOb2RlTGlzdC5oICovLAogCQkJCUJDN0ZBNjJDMEQxRjBFRkYwMERCMjJBOSAvKiBTdGF0aWNO
b2RlTGlzdC5jcHAgKi8sCiAJCQkJQkM3RkE2MkIwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05v
ZGVMaXN0LmggKi8sCi0JCQkJRTE4MUIzNTUwRjE1MDBENzAwRkI3ODQ3IC8qIFN0YXRpY1N0cmlu
Z0xpc3QuY3BwICovLAotCQkJCUUxODFCMzUwMEYxNTAwOEEwMEZCNzg0NyAvKiBTdGF0aWNTdHJp
bmdMaXN0LmggKi8sCiAJCQkJQUE0QzNBNzQwQjJCMTY3OTAwMjMzNEEyIC8qIFN0eWxlRWxlbWVu
dC5jcHAgKi8sCiAJCQkJQUE0QzNBNzUwQjJCMTY3OTAwMjMzNEEyIC8qIFN0eWxlRWxlbWVudC5o
ICovLAogCQkJCUE4QzRBN0VDMDlENTYzMjcwMDAzQUM4RCAvKiBTdHlsZWRFbGVtZW50LmNwcCAq
LywKQEAgLTE1NDQ4LDggKzE1NDI1LDYgQEAKIAkJCQk4NTlENjJGMDBBRDg4OTI3MDAwMTI5OTUg
LyogRE9NU1ZHWm9vbUV2ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RTU0NEM0
MENBOUQxQzIwMDk3RDA5QiAvKiBET01TVkdab29tRXZlbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM1QTg2ODUwQzMzNjc2MDAwRUVBNjQ5IC8qIERPTVNlbGVjdGlvbi5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJRTEwQkIzNzgwRjE0QjYyMjAwNTYwRTEzIC8qIERPTVN0cmluZ0xpc3Qu
aCBpbiBIZWFkZXJzICovLAotCQkJCUUxMEJCMzc4MEYxNEI2MjIwMDU2MEUxMyAvKiBET01TdHJp
bmdMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTA2NTcwMDBBQUI0NzYzMDAyRDE1QzAgLyog
RE9NU3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVCNDk4RkYwQURCMzQ4MTAwOTI1
Q0JCIC8qIERPTVN0eWxlU2hlZXRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwNjU3
MDIwQUFCNDc2MzAwMkQxNUMwIC8qIERPTVN0eWxlU2hlZXRMaXN0LmggaW4gSGVhZGVycyAqLywK
QEAgLTE1Nzg0LDggKzE1NzU5LDYgQEAKIAkJCQk2NURGMzFGODA5RDFDQzYwMDAwQkUzMjUgLyog
SlNET01JbXBsZW1lbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDRTUzRTAwQThEMTg4
MTAwMjI5NDdEIC8qIEpTRE9NUGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVBODZCNjBD
MzM2N0U4MDBFRUE2NDkgLyogSlNET01TZWxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCUUx
MEJCMzg2MEYxNEI5NTAwMDU2MEUxMyAvKiBKU0RPTVN0cmluZ0xpc3QuaCBpbiBIZWFkZXJzICov
LAotCQkJCUUxMEJCMzg2MEYxNEI5NTAwMDU2MEUxMyAvKiBKU0RPTVN0cmluZ0xpc3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDNjkzMjc0MEQ3RTI5MzkwMEFFNDREMSAvKiBKU0RPTVdpbmRvd0Jh
c2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1MkZCQkJDMERFMjdDQjYwMDAxRDM4NiAvKiBKU0RP
TVdpbmRvd0N1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCRkI1M0QwRENEMjlDRjAwMTlC
M0U1IC8qIEpTRE9NV2luZG93U2hlbGwuaCBpbiBIZWFkZXJzICovLApAQCAtMTY1NzMsOCArMTY1
NDYsNiBAQAogCQkJCTkzMzA5RTE2MDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdFRleHROb2RlQ29u
dGFpbmluZ0VsZW1lbnRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzUyMDcxOTA5QkQz
QkE1MDBGMjAzOEQgLyogU3RhdGljQ29uc3RydWN0b3JzLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzdGQTYyRDBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuaCBpbiBIZWFkZXJzICov
LAotCQkJCUUxODFCMzUxMEYxNTAwOEEwMEZCNzg0NyAvKiBTdGF0aWNTdHJpbmdMaXN0LmggaW4g
SGVhZGVycyAqLywKLQkJCQlFMTgxQjM1MTBGMTUwMDhBMDBGQjc4NDcgLyogU3RhdGljU3RyaW5n
TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFCRTM3RTAwREFFRTAwRTAwMTA4NUZDIC8qIFN0
b3JhZ2VBcmVhLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUUwQkFCQjBEQTU1NDcxMDBBOUU0MTcg
LyogU3RvcmFnZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUUwQkIzODBEQTVBQ0I2MDBB
OUU0MTcgLyogU3RvcmFnZU1hcC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNzQ5Miw3ICsxNzQ2Myw2
IEBACiAJCQkJODU5RDYyQzMwQUQ4ODhFRjAwMDEyOTk1IC8qIERPTVNWR1ZpZXdFbGVtZW50Lm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJODU5RDYyQzYwQUQ4ODhFRjAwMDEyOTk1IC8qIERPTVNWR1pv
b21FdmVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNUE4Njg0MEMzMzY3NjAwMEVFQTY0OSAv
KiBET01TZWxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRTEwQkIzN0IwRjE0QjY0MTAw
NTYwRTEzIC8qIERPTVN0cmluZ0xpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODUwNjU3MDEw
QUFCNDc2MzAwMkQxNUMwIC8qIERPTVN0eWxlU2hlZXQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4
NTA2NTcwMzBBQUI0NzYzMDAyRDE1QzAgLyogRE9NU3R5bGVTaGVldExpc3QubW0gaW4gU291cmNl
cyAqLywKIAkJCQk4NUFDQTk5RDBBOUI1NzU5MDA2NzFFOTAgLyogRE9NVGV4dC5tbSBpbiBTb3Vy
Y2VzICovLApAQCAtMTc4MDYsOCArMTc3NzYsNiBAQAogCQkJCTY1REYzMUY3MDlEMUNDNjAwMDBC
RTMyNSAvKiBKU0RPTUltcGxlbWVudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQ0U1
M0RGMEE4RDE4ODEwMDIyOTQ3RCAvKiBKU0RPTVBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQzVBODZCNTBDMzM2N0U4MDBFRUE2NDkgLyogSlNET01TZWxlY3Rpb24uY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJRTEwQkIzODcwRjE0Qjk1MDAwNTYwRTEzIC8qIEpTRE9NU3RyaW5nTGlzdC5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQlFMTgxQjI1NzBGMTRDMUE2MDBGQjc4NDcgLyogSlNET01T
dHJpbmdMaXN0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MDNCQTBDMDlFQjE4Qzcw
MDc5N0M3RiAvKiBKU0RPTVdpbmRvdy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzY5MzI3MzBE
N0UyOTM5MDBBRTQ0RDEgLyogSlNET01XaW5kb3dCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJDRDlDMjYyMEMxN0FBNjcwMDVDOTBBMiAvKiBKU0RPTVdpbmRvd0N1c3RvbS5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTE4NjA5LDcgKzE4NTc3LDYgQEAKIAkJCQk5MzMwOUUxMzA5OUU2NDkyMDA1
NkU1ODEgLyogU3BsaXRUZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMz
MDlFMTUwOTlFNjQ5MjAwNTZFNTgxIC8qIFNwbGl0VGV4dE5vZGVDb250YWluaW5nRWxlbWVudENv
bW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM3RkE2MkUwRDFGMEVGRjAwREIyMkE5IC8q
IFN0YXRpY05vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUUxODFCMzU2MEYxNTAwRDcw
MEZCNzg0NyAvKiBTdGF0aWNTdHJpbmdMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRTNG
OUM3MERBMDU5REMwMDI1MDkxMSAvKiBTdG9yYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUx
QkUzN0RGMERBRUUwMEUwMDEwODVGQyAvKiBTdG9yYWdlQXJlYS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1MUUwQkFCQzBEQTU1NDcxMDBBOUU0MTcgLyogU3RvcmFnZUV2ZW50LmNwcCBpbiBTb3Vy
Y2VzICovLApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVN0cmluZ0xpc3RDdXN0b20u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNET01TdHJpbmdMaXN0Q3Vz
dG9tLmNwcAkocmV2aXNpb24gNDQ5MjgpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NU3Ry
aW5nTGlzdEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiSlNET01TdHJpbmdMaXN0LmgiCi0KLSNpbmNsdWRlICJET01TdHJpbmdM
aXN0LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
SlNWYWx1ZSBKU0RPTVN0cmluZ0xpc3Q6OmdldEJ5SW5kZXgoRXhlY1N0YXRlKiBleGVjLCB1bnNp
Z25lZCBpbmRleCkKLXsKLSAgICByZXR1cm4ganNTdHJpbmcoZXhlYywgaW1wbCgpLT5pdGVtKGlu
ZGV4KSk7Ci19Ci0KLUpTVmFsdWUgSlNET01TdHJpbmdMaXN0OjppdGVtKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgQXJnTGlzdCYgYXJncykKLXsKLSAgICB1bnNpZ25lZCBpbmRleCA9IGFyZ3MuYXQo
MCkudG9VSW50MzIoZXhlYyk7Ci0gICAgaWYgKGluZGV4ID49IGltcGwoKS0+bGVuZ3RoKCkpCi0g
ICAgICAgIHJldHVybiBqc051bGwoKTsKLQotICAgIHJldHVybiBqc1N0cmluZyhleGVjLCBpbXBs
KCktPml0ZW0oaW5kZXgpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21CaW5kaW5nLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21CaW5kaW5nLmgJKHJldmlzaW9uIDQ0
OTI4KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21CaW5kaW5nLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQwNCw5ICs0MDQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAg
ICAgICAgREVDTEFSRV9DQUxMQkFDSyhIVE1MRm9ybUVsZW1lbnRTdWJtaXQpOwogCi0gICAgICAg
IERFQ0xBUkVfSU5ERVhFRF9QUk9QRVJUWV9HRVRURVIoRE9NU3RyaW5nTGlzdCk7Ci0gICAgICAg
IERFQ0xBUkVfQ0FMTEJBQ0soRE9NU3RyaW5nTGlzdEl0ZW0pOwotCiAgICAgICAgIERFQ0xBUkVf
TkFNRURfUFJPUEVSVFlfR0VUVEVSKERPTVdpbmRvdyk7CiAgICAgICAgIERFQ0xBUkVfSU5ERVhF
RF9QUk9QRVJUWV9HRVRURVIoRE9NV2luZG93KTsKICAgICAgICAgREVDTEFSRV9OQU1FRF9BQ0NF
U1NfQ0hFQ0soRE9NV2luZG93KTsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
RE9NU3RyaW5nTGlzdEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhET01TdHJpbmdMaXN0Q3VzdG9tLmNwcAkocmV2aXNpb24gNDQ5MjgpCisrKyBX
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmluZ0xpc3RDdXN0b20uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDYyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAw
OSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0g
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0g
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJET01TdHJpbmdMaXN0LmgiCi0KLSNpbmNsdWRlICJWOEJpbmRpbmcuaCIKLSNpbmNsdWRl
ICJWOEN1c3RvbUJpbmRpbmcuaCIKLSNpbmNsdWRlICJWOFByb3h5LmgiCi0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotSU5ERVhFRF9QUk9QRVJUWV9HRVRURVIoRE9NU3RyaW5nTGlzdCkKLXsKLSAg
ICBJTkNfU1RBVFMoIkRPTS5ET01TdHJpbmdMaXN0LkluZGV4ZWRQcm9wZXJ0eUdldHRlciIpOwot
ICAgIERPTVN0cmluZ0xpc3QqIGltcCA9IFY4UHJveHk6OkRPTVdyYXBwZXJUb05hdGl2ZTxET01T
dHJpbmdMaXN0PihpbmZvLkhvbGRlcigpKTsKLSAgICByZXR1cm4gdjhTdHJpbmcoaW1wLT5pdGVt
KGluZGV4KSk7Ci19Ci0KLUNBTExCQUNLX0ZVTkNfREVDTChET01TdHJpbmdMaXN0SXRlbSkKLXsK
LSAgICBJTkNfU1RBVFMoIkRPTS5ET01TdHJpbmdMaXN0SXRlbSgpIik7Ci0gICAgaWYgKCFhcmdz
Lkxlbmd0aCgpKQotICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKLQotICAgIHVpbnQzMl90IGlu
ZGV4ID0gYXJnc1swXS0+VWludDMyVmFsdWUoKTsKLQotICAgIERPTVN0cmluZ0xpc3QqIGltcCA9
IFY4UHJveHk6OkRPTVdyYXBwZXJUb05hdGl2ZTxET01TdHJpbmdMaXN0PihhcmdzLkhvbGRlcigp
KTsKLSAgICBpZiAoaW5kZXggPj0gaW1wLT5sZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIHY4OjpO
dWxsKCk7Ci0KLSAgICByZXR1cm4gdjhTdHJpbmcoaW1wLT5pdGVtKGluZGV4KSk7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvZG9tL0RPTVN0cmluZ0xpc3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RPTVN0cmluZ0xpc3QuY3BwCShyZXZpc2lvbiA0
NDkyOCkKKysrIFdlYkNvcmUvZG9tL0RPTVN0cmluZ0xpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDM1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
Ci0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKLSAqCi0gKi8KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJET01TdHJpbmdMaXN0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotRE9NU3RyaW5nTGlz
dDo6fkRPTVN0cmluZ0xpc3QoKQotewotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBXZWJDb3JlL2RvbS9ET01TdHJpbmdMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20v
RE9NU3RyaW5nTGlzdC5oCShyZXZpc2lvbiA0NDkyOCkKKysrIFdlYkNvcmUvZG9tL0RPTVN0cmlu
Z0xpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMSw0NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKgotICovCi0KLSNp
Zm5kZWYgRE9NU3RyaW5nTGlzdF9oCi0jZGVmaW5lIERPTVN0cmluZ0xpc3RfaAotCi0jaW5jbHVk
ZSAiUGxhdGZvcm1TdHJpbmcuaCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLSAgICBjbGFzcyBET01TdHJpbmdMaXN0IDogcHVibGljIFJlZkNv
dW50ZWQ8RE9NU3RyaW5nTGlzdD4gewotICAgIHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCB+RE9N
U3RyaW5nTGlzdCgpOwotCi0gICAgICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Qg
PSAwOwotICAgICAgICB2aXJ0dWFsIFN0cmluZyBpdGVtKHVuc2lnbmVkKSBjb25zdCA9IDA7Ci0g
ICAgICAgIHZpcnR1YWwgYm9vbCBjb250YWlucyhjb25zdCBTdHJpbmcmKSBjb25zdCA9IDA7Ci0g
ICAgfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRE9NU3RyaW5nTGlz
dF9oCkluZGV4OiBXZWJDb3JlL2RvbS9ET01TdHJpbmdMaXN0LmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2RvbS9ET01TdHJpbmdMaXN0LmlkbAkocmV2aXNpb24gNDQ5MjgpCisrKyBXZWJDb3Jl
L2RvbS9ET01TdHJpbmdMaXN0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw0MSArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
Ci0gKgotICovCi0KLW1vZHVsZSBjb3JlIHsKLQotICAgIGludGVyZmFjZSBbCi0gICAgICAgIEdl
bmVyYXRlQ29uc3RydWN0b3IsCi0gICAgICAgIEhhc0N1c3RvbUluZGV4R2V0dGVyCi0gICAgXSBE
T01TdHJpbmdMaXN0IHsKLQotICAgICAgICAvLyBVbmxpa2UgdGhlIGluZGV4IGdldHRlciwgaXRl
bSgpIG5ldmVyIHJhaXNlcyBleGNlcHRpb25zLCBhbmQgcmV0dXJucyBudWxsIGZvciBvdXQgb2Yg
Ym91bmRzIGluZGljZXMuCi0gICAgICAgIFtDdXN0b21dIERPTVN0cmluZyBpdGVtKGluIHVuc2ln
bmVkIGxvbmcgaW5kZXgpOwotCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIGxlbmd0aDsKLSAgICAgICAgYm9vbGVhbiBjb250YWlucyhpbiBET01TdHJpbmcgc3RyKTsK
LSAgICB9OwotCi19CkluZGV4OiBXZWJDb3JlL2RvbS9TdGF0aWNTdHJpbmdMaXN0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9TdGF0aWNTdHJpbmdMaXN0LmNwcAkocmV2aXNpb24gNDQ5
MjgpCisrKyBXZWJDb3JlL2RvbS9TdGF0aWNTdHJpbmdMaXN0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMSw2NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCi0gKgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJTdGF0aWNTdHJpbmdMaXN0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotU3RhdGlj
U3RyaW5nTGlzdDo6U3RhdGljU3RyaW5nTGlzdChjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3RyaW5n
cykKLSAgICA6IG1fc3RyaW5ncyhzdHJpbmdzKQotewotfQotCi1TdGF0aWNTdHJpbmdMaXN0OjpT
dGF0aWNTdHJpbmdMaXN0KCkKLXsKLX0KLQotU3RhdGljU3RyaW5nTGlzdDo6flN0YXRpY1N0cmlu
Z0xpc3QoKQotewotfQotCi11bnNpZ25lZCBTdGF0aWNTdHJpbmdMaXN0OjpsZW5ndGgoKSBjb25z
dAotewotICAgIHJldHVybiBtX3N0cmluZ3Muc2l6ZSgpOwotfQotCi1TdHJpbmcgU3RhdGljU3Ry
aW5nTGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKLXsKLSAgICBpZiAoaW5kZXggPj0g
bV9zdHJpbmdzLnNpemUoKSkKLSAgICAgICAgcmV0dXJuICIiOwotICAgIHJldHVybiBtX3N0cmlu
Z3NbaW5kZXhdOwotfQotCi1ib29sIFN0YXRpY1N0cmluZ0xpc3Q6OmNvbnRhaW5zKGNvbnN0IFN0
cmluZyYgc3RyKSBjb25zdAotewotICAgIHNpemVfdCBjb3VudCA9IG1fc3RyaW5ncy5zaXplKCk7
Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7Ci0gICAgICAgIGlmICht
X3N0cmluZ3NbaV0gPT0gc3RyKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAg
IHJldHVybiBmYWxzZTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29y
ZS9kb20vU3RhdGljU3RyaW5nTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL1N0YXRp
Y1N0cmluZ0xpc3QuaAkocmV2aXNpb24gNDQ5MjgpCisrKyBXZWJDb3JlL2RvbS9TdGF0aWNTdHJp
bmdMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNjEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICoKLSAqLwotCi0j
aWZuZGVmIFN0YXRpY1N0cmluZ0xpc3RfaAotI2RlZmluZSBTdGF0aWNTdHJpbmdMaXN0X2gKLQot
I2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0gICAg
Y2xhc3MgU3RhdGljU3RyaW5nTGlzdCA6IHB1YmxpYyBET01TdHJpbmdMaXN0IHsKLSAgICBwdWJs
aWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0YXRpY1N0cmluZ0xpc3Q+IGNyZWF0ZShj
b25zdCBWZWN0b3I8U3RyaW5nPiYgc3RyaW5ncykKLSAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTdGF0aWNTdHJpbmdMaXN0KHN0cmluZ3MpKTsKLSAgICAgICAgfQot
ICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdGF0aWNTdHJpbmdMaXN0PiBhZG9wdChWZWN0b3I8
U3RyaW5nPiYgc3RyaW5ncykKLSAgICAgICAgewotICAgICAgICAgICAgU3RhdGljU3RyaW5nTGlz
dCogbmV3TGlzdCA9IG5ldyBTdGF0aWNTdHJpbmdMaXN0OwotICAgICAgICAgICAgbmV3TGlzdC0+
bV9zdHJpbmdzLnN3YXAoc3RyaW5ncyk7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
TGlzdCk7Ci0gICAgICAgIH0KLSAgICAgICAgdmlydHVhbCB+U3RhdGljU3RyaW5nTGlzdCgpOwot
Ci0gICAgICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1
YWwgU3RyaW5nIGl0ZW0odW5zaWduZWQpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIGJvb2wgY29u
dGFpbnMoY29uc3QgU3RyaW5nJikgY29uc3Q7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBTdGF0
aWNTdHJpbmdMaXN0KGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7Ci0gICAgICAgIFN0YXRpY1N0cmlu
Z0xpc3QoKTsKLQotICAgICAgICBWZWN0b3I8U3RyaW5nPiBtX3N0cmluZ3M7Ci0gICAgfTsKLQot
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gU3RhdGljU3RyaW5nTGlzdApJbmRl
eDogV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAkocmV2aXNpb24gNDQ5MjgpCisrKyBXZWJDb3Jl
L2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4Myw3ICs4ODMs
NyBAQCBib29sIERvY3VtZW50TG9hZGVyOjpzaG91bGRMb2FkUmVzb3VyY2VGCiAgICAgaWYgKCFB
cHBsaWNhdGlvbkNhY2hlOjpyZXF1ZXN0SXNIVFRQT3JIVFRQU0dldChyZXF1ZXN0KSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgLy8gSWYgdGhlIHJlc291cmNlJ3MgVVJMIGlzIGFuIG1h
c3RlciBlbnRyeSwgdGhlIG1hbmlmZXN0LCBhbiBleHBsaWNpdCBlbnRyeSwgYSBmYWxsYmFjayBl
bnRyeSwgb3IgYSBkeW5hbWljIGVudHJ5CisgICAgLy8gSWYgdGhlIHJlc291cmNlJ3MgVVJMIGlz
IGFuIG1hc3RlciBlbnRyeSwgdGhlIG1hbmlmZXN0LCBhbiBleHBsaWNpdCBlbnRyeSwgb3IgYSBm
YWxsYmFjayBlbnRyeQogICAgIC8vIGluIHRoZSBhcHBsaWNhdGlvbiBjYWNoZSwgdGhlbiBnZXQg
dGhlIHJlc291cmNlIGZyb20gdGhlIGNhY2hlIChpbnN0ZWFkIG9mIGZldGNoaW5nIGl0KS4KICAg
ICByZXNvdXJjZSA9IGNhY2hlLT5yZXNvdXJjZUZvclVSTChyZXF1ZXN0LnVybCgpKTsKIApJbmRl
eDogV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5jcHAJKHJldmlz
aW9uIDQ0OTI4KQorKysgV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTgxLDcgKzgxLDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hl
OjphZGRSZXNvdXJjZShQYXNzUgogICAgIAogICAgIGlmIChtX3N0b3JhZ2VJRCkgewogICAgICAg
ICBBU1NFUlQoIXJlc291cmNlLT5zdG9yYWdlSUQoKSk7Ci0gICAgICAgIEFTU0VSVChyZXNvdXJj
ZS0+dHlwZSgpICYgKEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6RHluYW1pYyB8IEFwcGxpY2F0
aW9uQ2FjaGVSZXNvdXJjZTo6TWFzdGVyKSk7CisgICAgICAgIEFTU0VSVChyZXNvdXJjZS0+dHlw
ZSgpICYgQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpNYXN0ZXIpOwogICAgICAgICAKICAgICAg
ICAgLy8gQWRkIHRoZSByZXNvdXJjZSB0byB0aGUgc3RvcmFnZS4KICAgICAgICAgY2FjaGVTdG9y
YWdlKCkuc3RvcmUocmVzb3VyY2UuZ2V0KCksIHRoaXMpOwpAQCAtMTI5LDMyICsxMjksNiBAQCBB
cHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UqIEFwcGxpY2F0aW9uQ2FjCiAgICAgcmV0dXJuIHJlc291
cmNlRm9yVVJMKHJlcXVlc3QudXJsKCkpOwogfQogCi11bnNpZ25lZCBBcHBsaWNhdGlvbkNhY2hl
OjpudW1EeW5hbWljRW50cmllcygpIGNvbnN0Ci17Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudAot
ICAgIHJldHVybiAwOwotfQotICAgIAotU3RyaW5nIEFwcGxpY2F0aW9uQ2FjaGU6OmR5bmFtaWNF
bnRyeSh1bnNpZ25lZCkgY29uc3QKLXsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50Ci0gICAgcmV0
dXJuIFN0cmluZygpOwotfQotICAgIAotYm9vbCBBcHBsaWNhdGlvbkNhY2hlOjphZGREeW5hbWlj
RW50cnkoY29uc3QgU3RyaW5nJiB1cmwpCi17Ci0gICAgaWYgKCFlcXVhbElnbm9yaW5nQ2FzZSht
X2dyb3VwLT5tYW5pZmVzdFVSTCgpLnByb3RvY29sKCksIEtVUkwodXJsKS5wcm90b2NvbCgpKSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgLy8gRklYTUU6IEltcGxlbWVudCAoYmUgc3Vy
ZSB0byByZXNwZWN0IHByaXZhdGUgYnJvd3Npbmcgc3RhdGUpLgotICAgIHJldHVybiB0cnVlOwot
fQotICAgIAotdm9pZCBBcHBsaWNhdGlvbkNhY2hlOjpyZW1vdmVEeW5hbWljRW50cnkoY29uc3Qg
U3RyaW5nJikKLXsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IChiZSBzdXJlIHRvIHJlc3BlY3Qg
cHJpdmF0ZSBicm93c2luZyBzdGF0ZSkuCi19Ci0KIHZvaWQgQXBwbGljYXRpb25DYWNoZTo6c2V0
T25saW5lV2hpdGVsaXN0KGNvbnN0IFZlY3RvcjxLVVJMPiYgb25saW5lV2hpdGVsaXN0KQogewog
ICAgIEFTU0VSVChtX29ubGluZVdoaXRlbGlzdC5pc0VtcHR5KCkpOwpJbmRleDogV2ViQ29yZS9s
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGUuaAkocmV2aXNpb24gNDQ5MjgpCisrKyBX
ZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTY1LDEyICs2NSw2IEBAIHB1YmxpYzoKICAgICBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2Uq
IHJlc291cmNlRm9yUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKICAgICBBcHBsaWNh
dGlvbkNhY2hlUmVzb3VyY2UqIHJlc291cmNlRm9yVVJMKGNvbnN0IFN0cmluZyYgdXJsKTsKIAot
ICAgIHVuc2lnbmVkIG51bUR5bmFtaWNFbnRyaWVzKCkgY29uc3Q7Ci0gICAgU3RyaW5nIGR5bmFt
aWNFbnRyeSh1bnNpZ25lZCBpbmRleCkgY29uc3Q7Ci0gICAgCi0gICAgYm9vbCBhZGREeW5hbWlj
RW50cnkoY29uc3QgU3RyaW5nJiB1cmwpOwotICAgIHZvaWQgcmVtb3ZlRHluYW1pY0VudHJ5KGNv
bnN0IFN0cmluZyYgdXJsKTsKLSAgICAKICAgICB2b2lkIHNldE9ubGluZVdoaXRlbGlzdChjb25z
dCBWZWN0b3I8S1VSTD4mIG9ubGluZVdoaXRlbGlzdCk7CiAgICAgY29uc3QgVmVjdG9yPEtVUkw+
JiBvbmxpbmVXaGl0ZWxpc3QoKSBjb25zdCB7IHJldHVybiBtX29ubGluZVdoaXRlbGlzdDsgfQog
ICAgIGJvb2wgaXNVUkxJbk9ubGluZVdoaXRlbGlzdChjb25zdCBLVVJMJik7IC8vIFRoZXJlIGlz
IGFuIGVudHJ5IGluIG9ubGluZSB3aGl0ZWxpc3QgdGhhdCBoYXMgdGhlIHNhbWUgb3JpZ2luIGFz
IHRoZSByZXNvdXJjZSdzIFVSTCBhbmQgdGhhdCBpcyBhIHByZWZpeCBtYXRjaCBmb3IgdGhlIHJl
c291cmNlJ3MgVVJMLgpAQCAtMTAzLDkgKzk3LDYgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8S1VS
TD4gbV9vbmxpbmVXaGl0ZWxpc3Q7CiAgICAgRmFsbGJhY2tVUkxWZWN0b3IgbV9mYWxsYmFja1VS
THM7CiAKLSAgICAvLyBXaGlsZSBhbiB1cGRhdGUgaXMgaW4gcHJvZ3Jlc3MsIGNoYW5nZXMgaW4g
ZHluYW1pYyBlbnRyaWVzIGFyZSBxdWV1ZWQgZm9yIGxhdGVyIGV4ZWN1dGlvbi4KLSAgICBWZWN0
b3I8c3RkOjpwYWlyPEtVUkwsIGJvb2w+ID4gbV9wZW5kaW5nRHluYW1pY0VudHJ5QWN0aW9uczsK
LQogICAgIHVuc2lnbmVkIG1fc3RvcmFnZUlEOwogfTsKIApJbmRleDogV2ViQ29yZS9sb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCShyZXZpc2lvbiA0NDky
OCkKKysrIFdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTYzMSw3ICs2MzEsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVH
cm91cDo6ZGlkRmluaXNoTG9hCiAgICAgICAgIEFwcGxpY2F0aW9uQ2FjaGU6OlJlc291cmNlTWFw
Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX25ld2VzdENhY2hlLT5lbmQoKTsKICAgICAgICAgZm9y
IChBcHBsaWNhdGlvbkNhY2hlOjpSZXNvdXJjZU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX25l
d2VzdENhY2hlLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgICAgIHVuc2ln
bmVkIHR5cGUgPSBpdC0+c2Vjb25kLT50eXBlKCk7Ci0gICAgICAgICAgICBpZiAodHlwZSAmIChB
cHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6Ok1hc3RlciB8IEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJj
ZTo6RHluYW1pYykpCisgICAgICAgICAgICBpZiAodHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNv
dXJjZTo6TWFzdGVyKQogICAgICAgICAgICAgICAgIGFkZEVudHJ5KGl0LT5maXJzdCwgdHlwZSk7
CiAgICAgICAgIH0KICAgICB9CkBAIC03MzMsMzcgKzczMywzNyBAQCB2b2lkIEFwcGxpY2F0aW9u
Q2FjaGVHcm91cDo6Y2hlY2tJZkxvYWRJCiAgICAgICAgIFJlZlB0cjxBcHBsaWNhdGlvbkNhY2hl
PiBvbGROZXdlc3RDYWNoZSA9IChtX25ld2VzdENhY2hlID09IG1fY2FjaGVCZWluZ1VwZGF0ZWQp
ID8gMCA6IG1fbmV3ZXN0Q2FjaGU7CiAKICAgICAgICAgc2V0TmV3ZXN0Q2FjaGUobV9jYWNoZUJl
aW5nVXBkYXRlZC5yZWxlYXNlKCkpOwotICAgICAgICBpZiAoY2FjaGVTdG9yYWdlKCkuc3RvcmVO
ZXdlc3RDYWNoZSh0aGlzKSkgew0KLSAgICAgICAgICAgIC8vIE5ldyBjYWNoZSBzdG9yZWQsIG5v
dyByZW1vdmUgdGhlIG9sZCBjYWNoZS4NCi0gICAgICAgICAgICBpZiAob2xkTmV3ZXN0Q2FjaGUp
DQotICAgICAgICAgICAgICAgIGNhY2hlU3RvcmFnZSgpLnJlbW92ZShvbGROZXdlc3RDYWNoZS5n
ZXQoKSk7DQotICAgICAgICAgICAgLy8gRmlyZSB0aGUgc3VjY2VzcyBldmVudHMuDQotICAgICAg
ICAgICAgcG9zdExpc3RlbmVyVGFzayhpc1VwZ3JhZGVBdHRlbXB0ID8gJkRPTUFwcGxpY2F0aW9u
Q2FjaGU6OmNhbGxVcGRhdGVSZWFkeUxpc3RlbmVyIDogJkRPTUFwcGxpY2F0aW9uQ2FjaGU6OmNh
bGxDYWNoZWRMaXN0ZW5lciwgbV9hc3NvY2lhdGVkRG9jdW1lbnRMb2FkZXJzKTsNCi0gICAgICAg
IH0gZWxzZSB7DQotICAgICAgICAgICAgLy8gUnVuIHRoZSAiY2FjaGUgZmFpbHVyZSBzdGVwcyIN
Ci0gICAgICAgICAgICAvLyBGaXJlIHRoZSBlcnJvciBldmVudHMgdG8gYWxsIHBlbmRpbmcgbWFz
dGVyIGVudHJpZXMsIGFzIHdlbGwgYW55IG90aGVyIGNhY2hlIGhvc3RzDQotICAgICAgICAgICAg
Ly8gY3VycmVudGx5IGFzc29jaWF0ZWQgd2l0aCBhIGNhY2hlIGluIHRoaXMgZ3JvdXAuDQotICAg
ICAgICAgICAgcG9zdExpc3RlbmVyVGFzaygmRE9NQXBwbGljYXRpb25DYWNoZTo6Y2FsbEVycm9y
TGlzdGVuZXIsIG1fYXNzb2NpYXRlZERvY3VtZW50TG9hZGVycyk7DQotICAgICAgICAgICAgLy8g
RGlzYXNzb2NpYXRlIHRoZSBwZW5kaW5nIG1hc3RlciBlbnRyaWVzIGZyb20gdGhlIGZhaWxlZCBu
ZXcgY2FjaGUuIE5vdGUgdGhhdA0KLSAgICAgICAgICAgIC8vIGFsbCBvdGhlciBsb2FkZXJzIGlu
IHRoZSBtX2Fzc29jaWF0ZWREb2N1bWVudExvYWRlcnMgYXJlIHN0aWxsIGFzc29jaWF0ZWQgd2l0
aA0KLSAgICAgICAgICAgIC8vIHNvbWUgb3RoZXIgY2FjaGUgaW4gdGhpcyBncm91cC4gVGhleSBh
cmUgbm90IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmFpbGVkIG5ldyBjYWNoZS4NCi0NCisgICAgICAg
IGlmIChjYWNoZVN0b3JhZ2UoKS5zdG9yZU5ld2VzdENhY2hlKHRoaXMpKSB7CisgICAgICAgICAg
ICAvLyBOZXcgY2FjaGUgc3RvcmVkLCBub3cgcmVtb3ZlIHRoZSBvbGQgY2FjaGUuCisgICAgICAg
ICAgICBpZiAob2xkTmV3ZXN0Q2FjaGUpCisgICAgICAgICAgICAgICAgY2FjaGVTdG9yYWdlKCku
cmVtb3ZlKG9sZE5ld2VzdENhY2hlLmdldCgpKTsKKyAgICAgICAgICAgIC8vIEZpcmUgdGhlIHN1
Y2Nlc3MgZXZlbnRzLgorICAgICAgICAgICAgcG9zdExpc3RlbmVyVGFzayhpc1VwZ3JhZGVBdHRl
bXB0ID8gJkRPTUFwcGxpY2F0aW9uQ2FjaGU6OmNhbGxVcGRhdGVSZWFkeUxpc3RlbmVyIDogJkRP
TUFwcGxpY2F0aW9uQ2FjaGU6OmNhbGxDYWNoZWRMaXN0ZW5lciwgbV9hc3NvY2lhdGVkRG9jdW1l
bnRMb2FkZXJzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFJ1biB0aGUgImNh
Y2hlIGZhaWx1cmUgc3RlcHMiCisgICAgICAgICAgICAvLyBGaXJlIHRoZSBlcnJvciBldmVudHMg
dG8gYWxsIHBlbmRpbmcgbWFzdGVyIGVudHJpZXMsIGFzIHdlbGwgYW55IG90aGVyIGNhY2hlIGhv
c3RzCisgICAgICAgICAgICAvLyBjdXJyZW50bHkgYXNzb2NpYXRlZCB3aXRoIGEgY2FjaGUgaW4g
dGhpcyBncm91cC4KKyAgICAgICAgICAgIHBvc3RMaXN0ZW5lclRhc2soJkRPTUFwcGxpY2F0aW9u
Q2FjaGU6OmNhbGxFcnJvckxpc3RlbmVyLCBtX2Fzc29jaWF0ZWREb2N1bWVudExvYWRlcnMpOwor
ICAgICAgICAgICAgLy8gRGlzYXNzb2NpYXRlIHRoZSBwZW5kaW5nIG1hc3RlciBlbnRyaWVzIGZy
b20gdGhlIGZhaWxlZCBuZXcgY2FjaGUuIE5vdGUgdGhhdAorICAgICAgICAgICAgLy8gYWxsIG90
aGVyIGxvYWRlcnMgaW4gdGhlIG1fYXNzb2NpYXRlZERvY3VtZW50TG9hZGVycyBhcmUgc3RpbGwg
YXNzb2NpYXRlZCB3aXRoCisgICAgICAgICAgICAvLyBzb21lIG90aGVyIGNhY2hlIGluIHRoaXMg
Z3JvdXAuIFRoZXkgYXJlIG5vdCBhc3NvY2lhdGVkIHdpdGggdGhlIGZhaWxlZCBuZXcgY2FjaGUu
CisKICAgICAgICAgICAgIC8vIE5lZWQgdG8gY29weSBsb2FkZXJzLCBiZWNhdXNlIHRoZSBjYWNo
ZSBncm91cCBtYXkgYmUgZGVzdHJveWVkIGF0IHRoZSBlbmQgb2YgaXRlcmF0aW9uLgogICAgICAg
ICAgICAgVmVjdG9yPERvY3VtZW50TG9hZGVyKj4gbG9hZGVyczsKICAgICAgICAgICAgIGNvcHlU
b1ZlY3RvcihtX3BlbmRpbmdNYXN0ZXJSZXNvdXJjZUxvYWRlcnMsIGxvYWRlcnMpOwogICAgICAg
ICAgICAgc2l6ZV90IGNvdW50ID0gbG9hZGVycy5zaXplKCk7Ci0gICAgICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSAhPSBjb3VudDsgKytpKQ0KLSAgICAgICAgICAgICAgICBkaXNhc3NvY2lh
dGVEb2N1bWVudExvYWRlcihsb2FkZXJzW2ldKTsgLy8gVGhpcyBjYW4gZGVsZXRlIHRoaXMgZ3Jv
dXAuDQotDQotICAgICAgICAgICAgLy8gUmVpbnN0YXRlIHRoZSBvbGROZXdlc3RDYWNoZSwgaWYg
dGhlcmUgd2FzIG9uZS4NCi0gICAgICAgICAgICBpZiAob2xkTmV3ZXN0Q2FjaGUpIHsNCi0gICAg
ICAgICAgICAgICAgLy8gVGhpcyB3aWxsIGRpc2NhcmQgdGhlIGZhaWxlZCBuZXcgY2FjaGUuDQot
ICAgICAgICAgICAgICAgIHNldE5ld2VzdENhY2hlKG9sZE5ld2VzdENhY2hlLnJlbGVhc2UoKSk7
DQotICAgICAgICAgICAgfSBlbHNlIHsNCi0gICAgICAgICAgICAgICAgLy8gV2UgbXVzdCBoYXZl
IGJlZW4gZGVsZXRlZCBieSB0aGUgbGFzdCBjYWxsIHRvIGRpc2Fzc29jaWF0ZURvY3VtZW50TG9h
ZGVyKCkuDQotICAgICAgICAgICAgICAgIHJldHVybjsNCi0gICAgICAgICAgICB9DQotICAgICAg
ICB9DQorICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgIT0gY291bnQ7ICsraSkKKyAg
ICAgICAgICAgICAgICBkaXNhc3NvY2lhdGVEb2N1bWVudExvYWRlcihsb2FkZXJzW2ldKTsgLy8g
VGhpcyBjYW4gZGVsZXRlIHRoaXMgZ3JvdXAuCisKKyAgICAgICAgICAgIC8vIFJlaW5zdGF0ZSB0
aGUgb2xkTmV3ZXN0Q2FjaGUsIGlmIHRoZXJlIHdhcyBvbmUuCisgICAgICAgICAgICBpZiAob2xk
TmV3ZXN0Q2FjaGUpIHsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIHdpbGwgZGlzY2FyZCB0aGUg
ZmFpbGVkIG5ldyBjYWNoZS4KKyAgICAgICAgICAgICAgICBzZXROZXdlc3RDYWNoZShvbGROZXdl
c3RDYWNoZS5yZWxlYXNlKCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICAvLyBXZSBtdXN0IGhhdmUgYmVlbiBkZWxldGVkIGJ5IHRoZSBsYXN0IGNhbGwgdG8gZGlzYXNz
b2NpYXRlRG9jdW1lbnRMb2FkZXIoKS4KKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIH0KSW5kZXg6IFdl
YkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVJlc291cmNl
LmNwcAkocmV2aXNpb24gNDQ5MjgpCisrKyBXZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlUmVzb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw4ICs1Nyw2IEBAIHZv
aWQgQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpkdW1wVHlwZSgKICAgICAgICAgcHJpbnRmKCJm
b3JlaWduICIpOwogICAgIGlmICh0eXBlICYgRmFsbGJhY2spCiAgICAgICAgIHByaW50ZigiZmFs
bGJhY2sgIik7Ci0gICAgaWYgKHR5cGUgJiBEeW5hbWljKQotICAgICAgICBwcmludGYoImR5bmFt
aWMgIik7CiAgICAgCiAgICAgcHJpbnRmKCJcbiIpOwogfQpJbmRleDogV2ViQ29yZS9sb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVJlc291cmNlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVJlc291cmNlLmgJKHJldmlzaW9uIDQ0
OTI4KQorKysgV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVJlc291cmNl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDggKzM5LDcgQEAgcHVibGljOgogICAgICAgICBNYW5p
ZmVzdCA9IDEgPDwgMSwKICAgICAgICAgRXhwbGljaXQgPSAxIDw8IDIsCiAgICAgICAgIEZvcmVp
Z24gPSAxIDw8IDMsCi0gICAgICAgIEZhbGxiYWNrID0gMSA8PCA0LAotICAgICAgICBEeW5hbWlj
ID0gMSA8PCA1CisgICAgICAgIEZhbGxiYWNrID0gMSA8PCA0CiAgICAgfTsKICAgICAgICAgCiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8QXBwbGljYXRpb25DYWNoZVJlc291cmNlPiBjcmVhdGUoY29u
c3QgS1VSTCYgdXJsLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgdW5zaWduZWQg
dHlwZSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlKCkpCkluZGV4OiBXZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3Rv
cmFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZVN0b3JhZ2UuY3BwCShyZXZpc2lvbiA0NDkyOCkKKysrIFdlYkNvcmUvbG9hZGVyL2Fw
cGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjE1
LDkgKzYxNSw2IEBAIGJvb2wgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnN0b3JlVXBkYXQKICAg
ICBBU1NFUlRfVU5VU0VEKGNhY2hlLCBjYWNoZS0+c3RvcmFnZUlEKCkpOwogICAgIEFTU0VSVChy
ZXNvdXJjZS0+c3RvcmFnZUlEKCkpOwogCi0gICAgLy8gRklYTUU6IElmIHRoZSByZXNvdXJjZSBn
YWluZWQgYSBEeW5hbWljIGJpdCwgaXQgc2hvdWxkIGJlIHJlLWluc2VydGVkIGF0IHRoZSBlbmQg
Zm9yIGNvcnJlY3Qgb3JkZXIuCi0gICAgQVNTRVJUKCEocmVzb3VyY2UtPnR5cGUoKSAmIEFwcGxp
Y2F0aW9uQ2FjaGVSZXNvdXJjZTo6RHluYW1pYykpOwotICAgIAogICAgIC8vIEZpcnN0LCBpbnNl
cnQgdGhlIGRhdGEKICAgICBTUUxpdGVTdGF0ZW1lbnQgZW50cnlTdGF0ZW1lbnQobV9kYXRhYmFz
ZSwgIlVQREFURSBDYWNoZUVudHJpZXMgU0VUIHR5cGU9PyBXSEVSRSByZXNvdXJjZT0/Iik7CiAg
ICAgaWYgKGVudHJ5U3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxSZXN1bHRPaykKSW5kZXg6IFdl
YkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwCShyZXZp
c2lvbiA0NDkyOCkKKysrIFdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2Fj
aGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw2IEBACiAjaW5jbHVkZSAiRXZlbnRO
YW1lcy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKLSNp
bmNsdWRlICJTdGF0aWNTdHJpbmdMaXN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
MTI3LDY1ICsxMjYsNiBAQCB2b2lkIERPTUFwcGxpY2F0aW9uQ2FjaGU6OnN3YXBDYWNoZShFeGNl
CiAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CiB9CiAKLVBhc3NSZWZQdHI8RE9NU3Ry
aW5nTGlzdD4gRE9NQXBwbGljYXRpb25DYWNoZTo6aXRlbXMoKQotewotICAgIFZlY3RvcjxTdHJp
bmc+IHJlc3VsdDsKLSAgICBpZiAoQXBwbGljYXRpb25DYWNoZSogY2FjaGUgPSBhc3NvY2lhdGVk
Q2FjaGUoKSkgewotICAgICAgICB1bnNpZ25lZCBudW1FbnRyaWVzID0gY2FjaGUtPm51bUR5bmFt
aWNFbnRyaWVzKCk7Ci0gICAgICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG51bUVu
dHJpZXMpOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtRW50cmllczsgKytp
KQotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjYWNoZS0+ZHluYW1pY0VudHJ5KGkpKTsKLSAg
ICB9Ci0gICAgcmV0dXJuIFN0YXRpY1N0cmluZ0xpc3Q6OmFkb3B0KHJlc3VsdCk7Ci19Ci0KLWJv
b2wgRE9NQXBwbGljYXRpb25DYWNoZTo6aGFzSXRlbShjb25zdCBLVVJMJiB1cmwsIEV4Y2VwdGlv
bkNvZGUmIGVjKQotewotICAgIEFwcGxpY2F0aW9uQ2FjaGUqIGNhY2hlID0gYXNzb2NpYXRlZENh
Y2hlKCk7Ci0gICAgaWYgKCFjYWNoZSkgewotICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJS
OwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgaWYgKCF1cmwuaXNWYWxpZCgp
KSB7Ci0gICAgICAgIGVjID0gU1lOVEFYX0VSUjsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IH0KLQotICAgIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZSogcmVzb3VyY2UgPSBjYWNoZS0+cmVz
b3VyY2VGb3JVUkwodXJsLnN0cmluZygpKTsKLSAgICByZXR1cm4gcmVzb3VyY2UgJiYgKHJlc291
cmNlLT50eXBlKCkgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OkR5bmFtaWMpOwotfQotICAg
IAotdm9pZCBET01BcHBsaWNhdGlvbkNhY2hlOjphZGQoY29uc3QgS1VSTCYgdXJsLCBFeGNlcHRp
b25Db2RlJiBlYykKLXsKLSAgICBBcHBsaWNhdGlvbkNhY2hlKiBjYWNoZSA9IGFzc29jaWF0ZWRD
YWNoZSgpOwotICAgIGlmICghY2FjaGUpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VS
UjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAKLSAgICBpZiAoIXVybC5pc1ZhbGlkKCkpIHsK
LSAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgICAg
ICAKLSAgICBpZiAoIWNhY2hlLT5hZGREeW5hbWljRW50cnkodXJsKSkgewotICAgICAgICAvLyBU
aGlzIHNob3VsZCB1c2UgdGhlIChjdXJyZW50bHkgbm90IHNwZWNpZmllZCkgc2VjdXJpdHkgZXhj
ZXB0aW9ucyBpbiBIVE1MNSA0LjMuNAotICAgICAgICBlYyA9IFNFQ1VSSVRZX0VSUjsKLSAgICB9
Ci19Ci0KLXZvaWQgRE9NQXBwbGljYXRpb25DYWNoZTo6cmVtb3ZlKGNvbnN0IEtVUkwmIHVybCwg
RXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgQXBwbGljYXRpb25DYWNoZSogY2FjaGUgPSBhc3Nv
Y2lhdGVkQ2FjaGUoKTsKLSAgICBpZiAoIWNhY2hlKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9T
VEFURV9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgCi0gICAgY2FjaGUtPnJlbW92
ZUR5bmFtaWNFbnRyeSh1cmwpOwotfQotCiBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBET01BcHBs
aWNhdGlvbkNhY2hlOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKIHsKICAgICByZXR1
cm4gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RP
TUFwcGxpY2F0aW9uQ2FjaGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9hcHBjYWNo
ZS9ET01BcHBsaWNhdGlvbkNhY2hlLmgJKHJldmlzaW9uIDQ0OTI4KQorKysgV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3
ICs0MCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXBwbGljYXRpb25DYWNoZTsK
IGNsYXNzIEF0b21pY1N0cmluZ0ltcGw7Ci1jbGFzcyBET01TdHJpbmdMaXN0OwogY2xhc3MgRnJh
bWU7CiBjbGFzcyBLVVJMOwogY2xhc3MgU3RyaW5nOwpAQCAtNjQsMTEgKzYzLDYgQEAgcHVibGlj
OgogICAgIHZvaWQgdXBkYXRlKEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHN3YXBDYWNoZShF
eGNlcHRpb25Db2RlJik7CiAgICAgCi0gICAgUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBpdGVt
cygpOwotICAgIGJvb2wgaGFzSXRlbShjb25zdCBLVVJMJiwgRXhjZXB0aW9uQ29kZSYpOwotICAg
IHZvaWQgYWRkKGNvbnN0IEtVUkwmLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCByZW1vdmUo
Y29uc3QgS1VSTCYsIEV4Y2VwdGlvbkNvZGUmKTsKLQogICAgIHZpcnR1YWwgdm9pZCBhZGRFdmVu
dExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQYXNzUmVmUHRyPEV2ZW50
TGlzdGVuZXI+LCBib29sIHVzZUNhcHR1cmUpOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVFdmVu
dExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyKiwg
Ym9vbCB1c2VDYXB0dXJlKTsKICAgICB2aXJ0dWFsIGJvb2wgZGlzcGF0Y2hFdmVudChQYXNzUmVm
UHRyPEV2ZW50PiwgRXhjZXB0aW9uQ29kZSYpOwpJbmRleDogV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIv
YXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwJKHJldmlzaW9uIDQ0OTI4KQorKysgV2Vi
Q29yZS9sb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTQzLDE3ICs0Myw2IEBAIG1vZHVsZSBvZmZsaW5lIHsKICAgICAgICAgdm9pZCBzd2Fw
Q2FjaGUoKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSNpZiBkZWZpbmVk
KEVOQUJMRV9BUFBMSUNBVElPTl9DQUNIRV9EWU5BTUlDX0VOVFJJRVMpICYmIEVOQUJMRV9BUFBM
SUNBVElPTl9DQUNIRV9EWU5BTUlDX0VOVFJJRVMKLSAgICAgICAgLy8gZHluYW1pYyBlbnRyaWVz
Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmdMaXN0IGl0ZW1zOwotICAgICAg
ICBbQ3VzdG9tXSBib29sZWFuIGhhc0l0ZW0oaW4gRE9NU3RyaW5nIHVybCkKLSAgICAgICAgICAg
IHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBbQ3VzdG9tXSB2b2lkIGFkZChpbiBET01T
dHJpbmcgdXJpKQotICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtD
dXN0b21dIHZvaWQgcmVtb3ZlKGluIERPTVN0cmluZyB1cmkpCi0gICAgICAgICAgICByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKLSNlbmRpZgotCiAgICAgICAgIC8vIGV2ZW50cwogICAgICAgICBhdHRy
aWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmNoZWNraW5nOwogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRM
aXN0ZW5lciBvbmVycm9yOwpJbmRleDogV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHJldmlzaW9uIDQ0OTI4KQorKysg
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMwOCw3ICszMDgs
NyBAQCBtb2R1bGUgd2luZG93IHsKIAogICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoZSBj
b21tZW50ZWQtb3V0IGdsb2JhbCBjb25zdHJ1Y3RvcnMgZm9yIGludGVyZmFjZXMgbGlzdGVkIGlu
IERPTSBMZXZlbCAzIENvcmUgc3BlY2lmaWNhdGlvbi4KICAgICAgICAgYXR0cmlidXRlIERPTUNv
cmVFeGNlcHRpb25Db25zdHJ1Y3RvciBET01FeGNlcHRpb247Ci0gICAgICAgIGF0dHJpYnV0ZSBE
T01TdHJpbmdMaXN0Q29uc3RydWN0b3IgRE9NU3RyaW5nTGlzdDsKKy8vICAgICAgICBhdHRyaWJ1
dGUgRE9NU3RyaW5nTGlzdENvbnN0cnVjdG9yIERPTVN0cmluZ0xpc3Q7CiAvLyAgICAgICAgYXR0
cmlidXRlIE5hbWVMaXN0Q29uc3RydWN0b3IgTmFtZUxpc3Q7CiAvLyAgICAgICAgYXR0cmlidXRl
IERPTUltcGxlbWVudGF0aW9uTGlzdENvbnN0cnVjdG9yIERPTUltcGxlbWVudGF0aW9uTGlzdDsK
IC8vICAgICAgICBhdHRyaWJ1dGUgRE9NSW1wbGVtZW50YXRpb25Tb3VyY2VDb25zdHJ1Y3RvciBE
T01JbXBsZW1lbnRhdGlvblNvdXJjZTsK
</data>
<flag name="review"
          id="16253"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>