<?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>51461</bug_id>
          
          <creation_ts>2010-12-22 05:14:21 -0800</creation_ts>
          <short_desc>Cleanup SVG code according to the webkit style rules 2</short_desc>
          <delta_ts>2010-12-22 12:16:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Dirk Schulze">krit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>325450</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-12-22 05:14:21 -0800</bug_when>
    <thetext>2nd patch after bug 51411.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>325461</commentid>
    <comment_count>1</comment_count>
      <attachid>77208</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-12-22 05:38:55 -0800</bug_when>
    <thetext>Created attachment 77208
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>325534</commentid>
    <comment_count>2</comment_count>
      <attachid>77208</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-12-22 10:00:53 -0800</bug_when>
    <thetext>Comment on attachment 77208
Patch

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>325624</commentid>
    <comment_count>3</comment_count>
      <attachid>77208</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-12-22 12:16:16 -0800</bug_when>
    <thetext>Comment on attachment 77208
Patch

Clearing flags on attachment: 77208

Committed r74493: &lt;http://trac.webkit.org/changeset/74493&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>325625</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-12-22 12:16:25 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77208</attachid>
            <date>2010-12-22 05:38:55 -0800</date>
            <delta_ts>2010-12-22 12:16:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51461-20101222143852.patch</filename>
            <type>text/plain</type>
            <size>56763</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3NDQ3MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsODYgQEAKKzIwMTAtMTItMjIgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Jla2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDbGVh
bnVwIFNWRyBjb2RlIGFjY29yZGluZyB0byB0aGUgd2Via2l0IHN0eWxlIHJ1bGVzIDIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxNDYxCisKKyAgICAg
ICAgU2Vjb25kIHBhdGNoIHRvIGZpeCBpbmRlbnRpb24gYW5kIG90aGVyIHN0eWxlIGlzc3VlcyBh
Y2NvcmRpbmcgdG8gdGhlIFdlYktpdCBzdHlsZSBydWxlcyBpbiB0aGUgU1ZHIGNvZGUuCisKKyAg
ICAgICAgTm8gY2hhbmdlcyBvZiBmdW5jdGlvbmFsaXR5LCBzbyBubyBuZXcgdGVzdHMuIAorCisg
ICAgICAgICogc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ6OnN0cmluZ1RvQ2hhbm5lbCk6Cisg
ICAgICAgICogc3ZnL1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9T
VkdGRUZ1bmNBRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRUZ1bmNCRWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdGRUZ1bmNHRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRUZ1
bmNSRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRU1lcmdlRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdGRU1lcmdlRWxlbWVudDo6YnVpbGQpOgorICAgICAgICAqIHN2Zy9T
VkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcDoKKyAgICAgICAgKiBzdmcvU1ZHRkVQb2ludExpZ2h0
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6OmZpbmRM
aWdodHMpOgorICAgICAgICAqIHN2Zy9TVkdGRVNwb3RMaWdodEVsZW1lbnQuaDoKKyAgICAgICAg
KiBzdmcvU1ZHRml0VG9WaWV3Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpdFRvVmll
d0JveDo6cGFyc2VWaWV3Qm94KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpdFRvVmlld0JveDo6
aXNLbm93bkF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjc3NQcm9wZXJ0eUlkRm9yU1ZHQXR0cmlidXRlTmFtZSk6Cisg
ICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
Rm9udEZhY2VFbGVtZW50Ojphc3NvY2lhdGVkRm9udEVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9T
VkdGb250RmFjZU5hbWVFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlU3JjRWxl
bWVudC5jcHA6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5oOgorICAgICAg
ICAqIHN2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRm9yZWln
bk9iamVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHR2x5cGhFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnBhcnNlQXJhYmljRm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpwYXJz
ZU9yaWVudGF0aW9uKToKKyAgICAgICAgKiBzdmcvU1ZHR2x5cGhFbGVtZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpTVkdHbHlwaElkZW50aWZpZXI6OlNWR0dseXBoSWRlbnRpZmllcik6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdHbHlwaElkZW50aWZpZXI6OmluaGVyaXRlZFZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0dseXBoSWRlbnRpZmllcjo6b3BlcmF0b3I9PSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdHbHlwaEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQpOgorICAgICAgICAqIHN2
Zy9TVkdHbHlwaE1hcC5oOgorICAgICAgICAoV2ViQ29yZTo6R2x5cGhNYXBOb2RlOjpHbHlwaE1h
cE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6R2x5cGhNYXBOb2RlOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHR2x5cGhNYXA6OlNWR0dseXBoTWFwKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0dseXBoTWFwOjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHR2x5cGhNYXA6OmNvbXBh
cmVHbHlwaFByaW9yaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0dseXBoTWFwOjpnZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHR2x5cGhNYXA6OmNsZWFyKToKKyAgICAgICAgKiBzdmcvU1ZH
R3JhZGllbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKiBzdmcvU1ZHSEtlcm5FbGVtZW50LmNwcDoK
KyAgICAgICAgKiBzdmcvU1ZHSEtlcm5FbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdI
S2VybkVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQpOgorICAgICAgICAqIHN2Zy9TVkdJbWFnZUVs
ZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAqIHN2
Zy9TVkdJbWFnZUxvYWRlci5oOgorICAgICAgICAqIHN2Zy9TVkdMYW5nU3BhY2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTGFuZ1NwYWNlOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdMYW5nU3BhY2U6OmlzS25vd25BdHRyaWJ1dGUpOgorICAgICAgICAq
IHN2Zy9TVkdMYW5nU3BhY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xhbmdTcGFjZTo6eG1s
bGFuZyk6CisgICAgICAgICogc3ZnL1NWR01ldGFkYXRhRWxlbWVudC5oOgorICAgICAgICAqIHN2
Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdNaXNzaW5n
R2x5cGhFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKToKKyAgICAgICAgKiBzdmcvU1ZHUGFpbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGFpbnQ6OmNzc1RleHQpOgorICAgICAgICAqIHN2
Zy9TVkdQYWludC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGFpbnQ6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQYWludDo6cGFpbnRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1BhaW50Ojppc1NWR1BhaW50KToKKyAgICAgICAgKiBzdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNw
cDoKKyAgICAgICAgKiBzdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmg6CisgICAgICAgIChXZWJDb3Jl
Ojppc1doaXRlc3BhY2UpOgorICAgICAgICAoV2ViQ29yZTo6c2tpcE9wdGlvbmFsU3BhY2VzKToK
KyAgICAgICAgKFdlYkNvcmU6OnNraXBPcHRpb25hbFNwYWNlc09yRGVsaW1pdGVyKToKKyAgICAg
ICAgKiBzdmcvU1ZHUGF0aEVsZW1lbnQuY3BwOgorICAgICAgICAqIHN2Zy9TVkdQYXRoUGFyc2Vy
RmFjdG9yeS5oOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTGlzdC5oOgorCiAyMDEwLTEyLTIx
ICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRURpc3Bs
YWNlbWVudE1hcEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZFRGlz
cGxhY2VtZW50TWFwRWxlbWVudC5jcHAJKHJldmlzaW9uIDc0NDcxKQorKysgV2ViQ29yZS9zdmcv
U1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsMTEg
KzUwLDExIEBAIENoYW5uZWxTZWxlY3RvclR5cGUgU1ZHRkVEaXNwbGFjZW1lbnRNYXAKIHsKICAg
ICBpZiAoa2V5ID09ICJSIikKICAgICAgICAgcmV0dXJuIENIQU5ORUxfUjsKLSAgICBlbHNlIGlm
IChrZXkgPT0gIkciKQorICAgIGlmIChrZXkgPT0gIkciKQogICAgICAgICByZXR1cm4gQ0hBTk5F
TF9HOwotICAgIGVsc2UgaWYgKGtleSA9PSAiQiIpCisgICAgaWYgKGtleSA9PSAiQiIpCiAgICAg
ICAgIHJldHVybiBDSEFOTkVMX0I7Ci0gICAgZWxzZSBpZiAoa2V5ID09ICJBIikKKyAgICBpZiAo
a2V5ID09ICJBIikKICAgICAgICAgcmV0dXJuIENIQU5ORUxfQTsKIAogICAgIHJldHVybiBDSEFO
TkVMX1VOS05PV047CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuaAko
cmV2aXNpb24gNzQ0NzEpCisrKyBXZWJDb3JlL3N2Zy9TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTUgKzI1LDE1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotICAgIGNsYXNzIFNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudCA6IHB1YmxpYyBTVkdGRUxp
Z2h0RWxlbWVudCB7Ci0gICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdG
RURpc3RhbnRMaWdodEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQqKTsKK2NsYXNzIFNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudCA6IHB1YmxpYyBTVkdGRUxpZ2h0
RWxlbWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVEaXN0YW50TGln
aHRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKLSAg
ICBwcml2YXRlOgotICAgICAgICBTVkdGRURpc3RhbnRMaWdodEVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7Citwcml2YXRlOgorICAgIFNWR0ZFRGlzdGFudExpZ2h0RWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAotICAgICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8TGlnaHRTb3VyY2U+IGxpZ2h0U291cmNlKCkgY29uc3Q7Ci0gICAgfTsKKyAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8TGlnaHRTb3VyY2U+IGxpZ2h0U291cmNlKCkgY29uc3Q7Cit9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZFRnVu
Y0FFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQUVsZW1lbnQu
aAkocmV2aXNpb24gNzQ0NzEpCisrKyBXZWJDb3JlL3N2Zy9TVkdGRUZ1bmNBRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiwxMyArMjYsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci0gICAgY2xhc3MgU1ZHRkVGdW5jQUVsZW1lbnQgOiBwdWJsaWMgU1ZHQ29tcG9uZW50VHJhbnNm
ZXJGdW5jdGlvbkVsZW1lbnQgewotICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U1ZHRkVGdW5jQUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQqKTsKK2NsYXNzIFNWR0ZFRnVuY0FFbGVtZW50IDogcHVibGljIFNWR0NvbXBvbmVudFRyYW5z
ZmVyRnVuY3Rpb25FbGVtZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdG
RUZ1bmNBRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwog
Ci0gICAgcHJpdmF0ZToKLSAgICAgICAgU1ZHRkVGdW5jQUVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Kik7Ci0gICAgfTsKK3ByaXZhdGU6CisgICAgU1ZHRkVGdW5jQUVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7Cit9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZFRnVuY0JFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQkVsZW1lbnQuaAkocmV2aXNpb24gNzQ0NzEp
CisrKyBXZWJDb3JlL3N2Zy9TVkdGRUZ1bmNCRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
NiwxMyArMjYsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgU1ZHRkVG
dW5jQkVsZW1lbnQgOiBwdWJsaWMgU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQg
ewotICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVGdW5jQkVsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKK2NsYXNzIFNWR0ZF
RnVuY0JFbGVtZW50IDogcHVibGljIFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRUZ1bmNCRWxlbWVudD4gY3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCi0gICAgcHJpdmF0ZToKLSAg
ICAgICAgU1ZHRkVGdW5jQkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7
Ci0gICAgfTsKK3ByaXZhdGU6CisgICAgU1ZHRkVGdW5jQkVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Kik7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6
IFdlYkNvcmUvc3ZnL1NWR0ZFRnVuY0dFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9z
dmcvU1ZHRkVGdW5jR0VsZW1lbnQuaAkocmV2aXNpb24gNzQ0NzEpCisrKyBXZWJDb3JlL3N2Zy9T
VkdGRUZ1bmNHRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMyArMjYsMTMgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgU1ZHRkVGdW5jR0VsZW1lbnQgOiBwdWJs
aWMgU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQgewotICAgIHB1YmxpYzoKLSAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVGdW5jR0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKK2NsYXNzIFNWR0ZFRnVuY0dFbGVtZW50IDogcHVi
bGljIFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50IHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTVkdGRUZ1bmNHRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCopOwogCi0gICAgcHJpdmF0ZToKLSAgICAgICAgU1ZHRkVGdW5jR0Vs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7Ci0gICAgfTsKK3ByaXZhdGU6
CisgICAgU1ZHRkVGdW5jR0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7
Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZF
RnVuY1JFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRkVGdW5jUkVsZW1l
bnQuaAkocmV2aXNpb24gNzQ0NzEpCisrKyBXZWJDb3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMyArMjYsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi0gICAgY2xhc3MgU1ZHRkVGdW5jUkVsZW1lbnQgOiBwdWJsaWMgU1ZHQ29tcG9uZW50VHJh
bnNmZXJGdW5jdGlvbkVsZW1lbnQgewotICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8U1ZHRkVGdW5jUkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQqKTsKK2NsYXNzIFNWR0ZFRnVuY1JFbGVtZW50IDogcHVibGljIFNWR0NvbXBvbmVudFRy
YW5zZmVyRnVuY3Rpb25FbGVtZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
VkdGRUZ1bmNSRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCop
OwogCi0gICAgcHJpdmF0ZToKLSAgICAgICAgU1ZHRkVGdW5jUkVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7Ci0gICAgfTsKK3ByaXZhdGU6CisgICAgU1ZHRkVGdW5jUkVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7Cit9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGRU1lcmdlRWxlbWVudC5jcHAJKHJldmlzaW9u
IDc0NDcxKQorKysgV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00Miw5ICs0Miw5IEBAIFBhc3NSZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRU1lcmdl
RWxlbWUKIHsKICAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBlZmZlY3QgPSBGRU1lcmdlOjpjcmVh
dGUoZmlsdGVyKTsKICAgICBGaWx0ZXJFZmZlY3RWZWN0b3ImIG1lcmdlSW5wdXRzID0gZWZmZWN0
LT5pbnB1dEVmZmVjdHMoKTsKLSAgICBmb3IgKE5vZGUqIG4gPSBmaXJzdENoaWxkKCk7IG4gIT0g
MDsgbiA9IG4tPm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgaWYgKG4tPmhhc1RhZ05hbWUoU1ZH
TmFtZXM6OmZlTWVyZ2VOb2RlVGFnKSkgewotICAgICAgICAgICAgRmlsdGVyRWZmZWN0KiBtZXJn
ZUVmZmVjdCA9IGZpbHRlckJ1aWxkZXItPmdldEVmZmVjdEJ5SWQoc3RhdGljX2Nhc3Q8U1ZHRkVN
ZXJnZU5vZGVFbGVtZW50Kj4obiktPmluMSgpKTsKKyAgICBmb3IgKE5vZGUqIG5vZGUgPSBmaXJz
dENoaWxkKCk7IG5vZGU7IG5vZGUgPSBub2RlLT5uZXh0U2libGluZygpKSB7CisgICAgICAgIGlm
IChub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmZU1lcmdlTm9kZVRhZykpIHsKKyAgICAgICAg
ICAgIEZpbHRlckVmZmVjdCogbWVyZ2VFZmZlY3QgPSBmaWx0ZXJCdWlsZGVyLT5nZXRFZmZlY3RC
eUlkKHN0YXRpY19jYXN0PFNWR0ZFTWVyZ2VOb2RlRWxlbWVudCo+KG5vZGUpLT5pbjEoKSk7CiAg
ICAgICAgICAgICBpZiAoIW1lcmdlRWZmZWN0KQogICAgICAgICAgICAgICAgIHJldHVybiAwOwog
ICAgICAgICAgICAgbWVyZ2VJbnB1dHMuYXBwZW5kKG1lcmdlRWZmZWN0KTsKSW5kZXg6IFdlYkNv
cmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
c3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwCShyZXZpc2lvbiA3NDQ3MSkKKysrIFdlYkNv
cmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzMs
NiArMTMzLDYgQEAgUGFzc1JlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFTW9ycGhvbG9neQogICAg
IHJldHVybiBlZmZlY3QucmVsZWFzZSgpOwogfQogCi19IC8vbmFtZXNwYWNlIFdlYkNvcmUKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkcpCkluZGV4OiBXZWJD
b3JlL3N2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9z
dmcvU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oCShyZXZpc2lvbiA3NDQ3MSkKKysrIFdlYkNvcmUv
c3ZnL1NWR0ZFUG9pbnRMaWdodEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTUgKzI1
LDE1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIFNWR0ZFUG9pbnRMaWdo
dEVsZW1lbnQgOiBwdWJsaWMgU1ZHRkVMaWdodEVsZW1lbnQgewotICAgIHB1YmxpYzoKLSAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVQb2ludExpZ2h0RWxlbWVudD4gY3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworY2xhc3MgU1ZHRkVQb2ludExpZ2h0RWxlbWVu
dCA6IHB1YmxpYyBTVkdGRUxpZ2h0RWxlbWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8U1ZHRkVQb2ludExpZ2h0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCopOwogCi0gICAgcHJpdmF0ZToKLSAgICAgICAgU1ZHRkVQb2ludExpZ2h0RWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKK3ByaXZhdGU6CisgICAgU1ZH
RkVQb2ludExpZ2h0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAot
ICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8TGlnaHRTb3VyY2U+IGxpZ2h0U291cmNlKCkgY29u
c3Q7Ci0gICAgfTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8TGlnaHRTb3VyY2U+IGxpZ2h0U291
cmNlKCkgY29uc3Q7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFdlYkNv
cmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCShyZXZpc2lvbiA3NDQ3
MSkKKysrIFdlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMTcsMTEgKzExNywxMSBAQCB2b2lkIFNWR0ZFU3BlY3VsYXJMaWdodGlu
Z0VsZW1lbnQ6OnN5bmNoCiAKIFBhc3NSZWZQdHI8TGlnaHRTb3VyY2U+IFNWR0ZFU3BlY3VsYXJM
aWdodGluZ0VsZW1lbnQ6OmZpbmRMaWdodHMoKSBjb25zdAogewotICAgIGZvciAoTm9kZSogbiA9
IGZpcnN0Q2hpbGQoKTsgbjsgbiA9IG4tPm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgaWYgKG4t
Pmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZlRGlzdGFudExpZ2h0VGFnKSB8fAotICAgICAgICAgICAg
bi0+aGFzVGFnTmFtZShTVkdOYW1lczo6ZmVQb2ludExpZ2h0VGFnKSB8fAotICAgICAgICAgICAg
bi0+aGFzVGFnTmFtZShTVkdOYW1lczo6ZmVTcG90TGlnaHRUYWcpKSB7Ci0gICAgICAgICAgICBT
VkdGRUxpZ2h0RWxlbWVudCogbGlnaHROb2RlID0gc3RhdGljX2Nhc3Q8U1ZHRkVMaWdodEVsZW1l
bnQqPihuKTsgCisgICAgZm9yIChOb2RlKiBub2RlID0gZmlyc3RDaGlsZCgpOyBub2RlOyBub2Rl
ID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShT
VkdOYW1lczo6ZmVEaXN0YW50TGlnaHRUYWcpCisgICAgICAgICAgICB8fCBub2RlLT5oYXNUYWdO
YW1lKFNWR05hbWVzOjpmZVBvaW50TGlnaHRUYWcpCisgICAgICAgICAgICB8fCBub2RlLT5oYXNU
YWdOYW1lKFNWR05hbWVzOjpmZVNwb3RMaWdodFRhZykpIHsKKyAgICAgICAgICAgIFNWR0ZFTGln
aHRFbGVtZW50KiBsaWdodE5vZGUgPSBzdGF0aWNfY2FzdDxTVkdGRUxpZ2h0RWxlbWVudCo+KG5v
ZGUpOyAKICAgICAgICAgICAgIHJldHVybiBsaWdodE5vZGUtPmxpZ2h0U291cmNlKCk7CiAgICAg
ICAgIH0KICAgICB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRVNwb3RMaWdodEVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGRVNwb3RMaWdodEVsZW1lbnQuaAkocmV2aXNp
b24gNzQ0NzEpCisrKyBXZWJDb3JlL3N2Zy9TVkdGRVNwb3RMaWdodEVsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjUsMTUgKzI1LDE1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAg
IGNsYXNzIFNWR0ZFU3BvdExpZ2h0RWxlbWVudCA6IHB1YmxpYyBTVkdGRUxpZ2h0RWxlbWVudCB7
Ci0gICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRVNwb3RMaWdodEVs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKK2NsYXNzIFNW
R0ZFU3BvdExpZ2h0RWxlbWVudCA6IHB1YmxpYyBTVkdGRUxpZ2h0RWxlbWVudCB7CitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVTcG90TGlnaHRFbGVtZW50PiBjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKLSAgICBwcml2YXRlOgotICAgICAgICBT
VkdGRVNwb3RMaWdodEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7Citw
cml2YXRlOgorICAgIFNWR0ZFU3BvdExpZ2h0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQqKTsKIAotICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8TGlnaHRTb3VyY2U+IGxp
Z2h0U291cmNlKCkgY29uc3Q7Ci0gICAgfTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8TGlnaHRT
b3VyY2U+IGxpZ2h0U291cmNlKCkgY29uc3Q7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmNwcAkocmV2aXNpb24gNzQ0NzEpCisrKyBXZWJD
b3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Miw4ICs1Miw3
IEBAIGJvb2wgU1ZHRml0VG9WaWV3Qm94OjpwYXJzZVZpZXdCb3goRG9jdW0KICAgICBmbG9hdCB5
ID0gMC4wZjsKICAgICBmbG9hdCB3aWR0aCA9IDAuMGY7CiAgICAgZmxvYXQgaGVpZ2h0ID0gMC4w
ZjsKLSAgICBib29sIHZhbGlkID0gKHBhcnNlTnVtYmVyKGMsIGVuZCwgeCkgJiYgcGFyc2VOdW1i
ZXIoYywgZW5kLCB5KSAmJgotICAgICAgICAgIHBhcnNlTnVtYmVyKGMsIGVuZCwgd2lkdGgpICYm
IHBhcnNlTnVtYmVyKGMsIGVuZCwgaGVpZ2h0LCBmYWxzZSkpOworICAgIGJvb2wgdmFsaWQgPSBw
YXJzZU51bWJlcihjLCBlbmQsIHgpICYmIHBhcnNlTnVtYmVyKGMsIGVuZCwgeSkgJiYgcGFyc2VO
dW1iZXIoYywgZW5kLCB3aWR0aCkgJiYgcGFyc2VOdW1iZXIoYywgZW5kLCBoZWlnaHQsIGZhbHNl
KTsKICAgICBpZiAoIXZhbGlkYXRlKSB7CiAgICAgICAgIHZpZXdCb3ggPSBGbG9hdFJlY3QoeCwg
eSwgd2lkdGgsIGhlaWdodCk7CiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMTA4LDggKzEwNyw3
IEBAIGJvb2wgU1ZHRml0VG9WaWV3Qm94OjpwYXJzZU1hcHBlZEF0dHJpYnUKIAogYm9vbCBTVkdG
aXRUb1ZpZXdCb3g6OmlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5h
bWUpCiB7Ci0gICAgcmV0dXJuIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6dmlld0JveEF0dHIgfHwK
LSAgICAgICAgICAgIGF0dHJOYW1lID09IFNWR05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0
cik7CisgICAgcmV0dXJuIGF0dHJOYW1lID09IFNWR05hbWVzOjp2aWV3Qm94QXR0ciB8fCBhdHRy
TmFtZSA9PSBTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHI7CiB9CiAKIH0KSW5kZXg6
IFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmNwcAkocmV2aXNpb24gNzQ0NzEpCisrKyBXZWJDb3Jl
L3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MSwzOSArNzEs
MzkgQEAgc3RhdGljIGludCBjc3NQcm9wZXJ0eUlkRm9yU1ZHQXR0cmlidXRlTgogICAgICAgICBw
cm9wZXJ0eU5hbWVUb0lkTWFwID0gbmV3IEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIGludD47
CiAgICAgICAgIC8vIFRoaXMgaXMgYSBsaXN0IG9mIGFsbCBAZm9udC1mYWNlIENTUyBwcm9wZXJ0
aWVzIHdoaWNoIGFyZSBleHBvc2VkIGFzIFNWRyBYTUwgYXR0cmlidXRlcwogICAgICAgICAvLyBU
aG9zZSBjb21tZW50ZWQgb3V0IGFyZSBub3QgeWV0IHN1cHBvcnRlZCBieSBXZWJDb3JlJ3Mgc3R5
bGUgc3lzdGVtCi0gICAgICAgIC8vbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5h
bWVUb0lkTWFwLCBhY2NlbnRfaGVpZ2h0QXR0cik7Ci0gICAgICAgIC8vbWFwQXR0cmlidXRlVG9D
U1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBhbHBoYWJldGljQXR0cik7Ci0gICAgICAg
IC8vbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBhc2NlbnRB
dHRyKTsKLSAgICAgICAgLy9tYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRv
SWRNYXAsIGJib3hBdHRyKTsKLSAgICAgICAgLy9tYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHBy
b3BlcnR5TmFtZVRvSWRNYXAsIGNhcF9oZWlnaHRBdHRyKTsKLSAgICAgICAgLy9tYXBBdHRyaWJ1
dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGRlc2NlbnRBdHRyKTsKKyAgICAg
ICAgLy8gbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBhY2Nl
bnRfaGVpZ2h0QXR0cik7CisgICAgICAgIC8vIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJv
cGVydHlOYW1lVG9JZE1hcCwgYWxwaGFiZXRpY0F0dHIpOworICAgICAgICAvLyBtYXBBdHRyaWJ1
dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGFzY2VudEF0dHIpOworICAgICAg
ICAvLyBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGJib3hB
dHRyKTsKKyAgICAgICAgLy8gbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVU
b0lkTWFwLCBjYXBfaGVpZ2h0QXR0cik7CisgICAgICAgIC8vIG1hcEF0dHJpYnV0ZVRvQ1NTUHJv
cGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgZGVzY2VudEF0dHIpOwogICAgICAgICBtYXBBdHRy
aWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZvbnRfZmFtaWx5QXR0cik7
CiAgICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwg
Zm9udF9zaXplQXR0cik7CiAgICAgICAgIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVy
dHlOYW1lVG9JZE1hcCwgZm9udF9zdHJldGNoQXR0cik7CiAgICAgICAgIG1hcEF0dHJpYnV0ZVRv
Q1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgZm9udF9zdHlsZUF0dHIpOwogICAgICAg
ICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIGZvbnRfdmFy
aWFudEF0dHIpOwogICAgICAgICBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFt
ZVRvSWRNYXAsIGZvbnRfd2VpZ2h0QXR0cik7Ci0gICAgICAgIC8vbWFwQXR0cmlidXRlVG9DU1NQ
cm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBoYW5naW5nQXR0cik7Ci0gICAgICAgIC8vbWFw
QXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBpZGVvZ3JhcGhpY0F0
dHIpOwotICAgICAgICAvL21hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9J
ZE1hcCwgbWF0aGVtYXRpY2FsQXR0cik7Ci0gICAgICAgIC8vbWFwQXR0cmlidXRlVG9DU1NQcm9w
ZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBvdmVybGluZV9wb3NpdGlvbkF0dHIpOwotICAgICAg
ICAvL21hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgb3Zlcmxp
bmVfdGhpY2tuZXNzQXR0cik7Ci0gICAgICAgIC8vbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShw
cm9wZXJ0eU5hbWVUb0lkTWFwLCBwYW5vc2VfMUF0dHIpOwotICAgICAgICAvL21hcEF0dHJpYnV0
ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgc2xvcGVBdHRyKTsKLSAgICAgICAg
Ly9tYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIHN0ZW1oQXR0
cik7Ci0gICAgICAgIC8vbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lk
TWFwLCBzdGVtdkF0dHIpOwotICAgICAgICAvL21hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJv
cGVydHlOYW1lVG9JZE1hcCwgc3RyaWtldGhyb3VnaF9wb3NpdGlvbkF0dHIpOwotICAgICAgICAv
L21hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgc3RyaWtldGhy
b3VnaF90aGlja25lc3NBdHRyKTsKLSAgICAgICAgLy9tYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5
KHByb3BlcnR5TmFtZVRvSWRNYXAsIHVuZGVybGluZV9wb3NpdGlvbkF0dHIpOwotICAgICAgICAv
L21hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgdW5kZXJsaW5l
X3RoaWNrbmVzc0F0dHIpOwotICAgICAgICAvL21hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJv
cGVydHlOYW1lVG9JZE1hcCwgdW5pY29kZV9yYW5nZUF0dHIpOwotICAgICAgICAvL21hcEF0dHJp
YnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgdW5pdHNfcGVyX2VtQXR0cik7
Ci0gICAgICAgIC8vbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFw
LCB2X2FscGhhYmV0aWNBdHRyKTsKLSAgICAgICAgLy9tYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5
KHByb3BlcnR5TmFtZVRvSWRNYXAsIHZfaGFuZ2luZ0F0dHIpOwotICAgICAgICAvL21hcEF0dHJp
YnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgdl9pZGVvZ3JhcGhpY0F0dHIp
OwotICAgICAgICAvL21hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1h
cCwgdl9tYXRoZW1hdGljYWxBdHRyKTsKLSAgICAgICAgLy9tYXBBdHRyaWJ1dGVUb0NTU1Byb3Bl
cnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIHdpZHRoc0F0dHIpOwotICAgICAgICAvL21hcEF0dHJp
YnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgeF9oZWlnaHRBdHRyKTsKKyAg
ICAgICAgLy8gbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBo
YW5naW5nQXR0cik7CisgICAgICAgIC8vIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVy
dHlOYW1lVG9JZE1hcCwgaWRlb2dyYXBoaWNBdHRyKTsKKyAgICAgICAgLy8gbWFwQXR0cmlidXRl
VG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBtYXRoZW1hdGljYWxBdHRyKTsKKyAg
ICAgICAgLy8gbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBv
dmVybGluZV9wb3NpdGlvbkF0dHIpOworICAgICAgICAvLyBtYXBBdHRyaWJ1dGVUb0NTU1Byb3Bl
cnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIG92ZXJsaW5lX3RoaWNrbmVzc0F0dHIpOworICAgICAg
ICAvLyBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIHBhbm9z
ZV8xQXR0cik7CisgICAgICAgIC8vIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlO
YW1lVG9JZE1hcCwgc2xvcGVBdHRyKTsKKyAgICAgICAgLy8gbWFwQXR0cmlidXRlVG9DU1NQcm9w
ZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCBzdGVtaEF0dHIpOworICAgICAgICAvLyBtYXBBdHRy
aWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIHN0ZW12QXR0cik7CisgICAg
ICAgIC8vIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgc3Ry
aWtldGhyb3VnaF9wb3NpdGlvbkF0dHIpOworICAgICAgICAvLyBtYXBBdHRyaWJ1dGVUb0NTU1By
b3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAsIHN0cmlrZXRocm91Z2hfdGhpY2tuZXNzQXR0cik7
CisgICAgICAgIC8vIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1h
cCwgdW5kZXJsaW5lX3Bvc2l0aW9uQXR0cik7CisgICAgICAgIC8vIG1hcEF0dHJpYnV0ZVRvQ1NT
UHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgdW5kZXJsaW5lX3RoaWNrbmVzc0F0dHIpOwor
ICAgICAgICAvLyBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KHByb3BlcnR5TmFtZVRvSWRNYXAs
IHVuaWNvZGVfcmFuZ2VBdHRyKTsKKyAgICAgICAgLy8gbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0
eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCB1bml0c19wZXJfZW1BdHRyKTsKKyAgICAgICAgLy8gbWFw
QXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCB2X2FscGhhYmV0aWNB
dHRyKTsKKyAgICAgICAgLy8gbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0eU5hbWVU
b0lkTWFwLCB2X2hhbmdpbmdBdHRyKTsKKyAgICAgICAgLy8gbWFwQXR0cmlidXRlVG9DU1NQcm9w
ZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCB2X2lkZW9ncmFwaGljQXR0cik7CisgICAgICAgIC8v
IG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkocHJvcGVydHlOYW1lVG9JZE1hcCwgdl9tYXRoZW1h
dGljYWxBdHRyKTsKKyAgICAgICAgLy8gbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShwcm9wZXJ0
eU5hbWVUb0lkTWFwLCB3aWR0aHNBdHRyKTsKKyAgICAgICAgLy8gbWFwQXR0cmlidXRlVG9DU1NQ
cm9wZXJ0eShwcm9wZXJ0eU5hbWVUb0lkTWFwLCB4X2hlaWdodEF0dHIpOwogICAgIH0KICAgICAK
ICAgICByZXR1cm4gcHJvcGVydHlOYW1lVG9JZE1hcC0+Z2V0KGF0dHJOYW1lLmxvY2FsTmFtZSgp
LmltcGwoKSk7CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaAkocmV2aXNpb24gNzQ0NzEp
CisrKyBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MjcsNDQgKzI3LDQ0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIENTU0Zv
bnRGYWNlUnVsZTsKLSAgICBjbGFzcyBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjsKLSAgICBj
bGFzcyBTVkdGb250RWxlbWVudDsKLQotICAgIGNsYXNzIFNWR0ZvbnRGYWNlRWxlbWVudCA6IHB1
YmxpYyBTVkdFbGVtZW50IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFNWR0ZvbnRGYWNlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCopOwotCi0gICAgICAgIHVuc2lnbmVkIHVuaXRzUGVyRW0oKSBjb25zdDsKLSAgICAgICAgaW50
IHhIZWlnaHQoKSBjb25zdDsKLSAgICAgICAgZmxvYXQgaG9yaXpvbnRhbE9yaWdpblgoKSBjb25z
dDsKLSAgICAgICAgZmxvYXQgaG9yaXpvbnRhbE9yaWdpblkoKSBjb25zdDsKLSAgICAgICAgZmxv
YXQgaG9yaXpvbnRhbEFkdmFuY2VYKCkgY29uc3Q7Ci0gICAgICAgIGZsb2F0IHZlcnRpY2FsT3Jp
Z2luWCgpIGNvbnN0OwotICAgICAgICBmbG9hdCB2ZXJ0aWNhbE9yaWdpblkoKSBjb25zdDsKLSAg
ICAgICAgZmxvYXQgdmVydGljYWxBZHZhbmNlWSgpIGNvbnN0OwotICAgICAgICBpbnQgYXNjZW50
KCkgY29uc3Q7Ci0gICAgICAgIGludCBkZXNjZW50KCkgY29uc3Q7Ci0gICAgICAgIFN0cmluZyBm
b250RmFtaWx5KCkgY29uc3Q7Ci0KLSAgICAgICAgU1ZHRm9udEVsZW1lbnQqIGFzc29jaWF0ZWRG
b250RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udEVsZW1lbnQ7IH0KLSAgICAgICAgdm9p
ZCByZWJ1aWxkRm9udEZhY2UoKTsKLSAgICAgICAgdm9pZCByZW1vdmVGcm9tTWFwcGVkRWxlbWVu
dFNoZWV0KCk7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBTVkdGb250RmFjZUVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIHBh
cnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwotCi0gICAgICAgIHZpcnR1YWwgdm9pZCBj
aGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIgPSBmYWxzZSwgTm9kZSogYmVmb3Jl
Q2hhbmdlID0gMCwgTm9kZSogYWZ0ZXJDaGFuZ2UgPSAwLCBpbnQgY2hpbGRDb3VudERlbHRhID0g
MCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9Eb2N1bWVudCgpOwotICAgICAg
ICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb21Eb2N1bWVudCgpOworY2xhc3MgQ1NTRm9udEZhY2VS
dWxlOworY2xhc3MgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb247CitjbGFzcyBTVkdGb250RWxl
bWVudDsKKworY2xhc3MgU1ZHRm9udEZhY2VFbGVtZW50IDogcHVibGljIFNWR0VsZW1lbnQgewor
cHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZvbnRGYWNlRWxlbWVudD4gY3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCisgICAgdW5zaWduZWQgdW5pdHNQ
ZXJFbSgpIGNvbnN0OworICAgIGludCB4SGVpZ2h0KCkgY29uc3Q7CisgICAgZmxvYXQgaG9yaXpv
bnRhbE9yaWdpblgoKSBjb25zdDsKKyAgICBmbG9hdCBob3Jpem9udGFsT3JpZ2luWSgpIGNvbnN0
OworICAgIGZsb2F0IGhvcml6b250YWxBZHZhbmNlWCgpIGNvbnN0OworICAgIGZsb2F0IHZlcnRp
Y2FsT3JpZ2luWCgpIGNvbnN0OworICAgIGZsb2F0IHZlcnRpY2FsT3JpZ2luWSgpIGNvbnN0Owor
ICAgIGZsb2F0IHZlcnRpY2FsQWR2YW5jZVkoKSBjb25zdDsKKyAgICBpbnQgYXNjZW50KCkgY29u
c3Q7CisgICAgaW50IGRlc2NlbnQoKSBjb25zdDsKKyAgICBTdHJpbmcgZm9udEZhbWlseSgpIGNv
bnN0OworCisgICAgU1ZHRm9udEVsZW1lbnQqIGFzc29jaWF0ZWRGb250RWxlbWVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fZm9udEVsZW1lbnQ7IH0KKyAgICB2b2lkIHJlYnVpbGRGb250RmFjZSgpOwor
ICAgIHZvaWQgcmVtb3ZlRnJvbU1hcHBlZEVsZW1lbnRTaGVldCgpOworCitwcml2YXRlOgorICAg
IFNWR0ZvbnRGYWNlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwor
ICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKKworICAg
IHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIgPSBmYWxz
ZSwgTm9kZSogYmVmb3JlQ2hhbmdlID0gMCwgTm9kZSogYWZ0ZXJDaGFuZ2UgPSAwLCBpbnQgY2hp
bGRDb3VudERlbHRhID0gMCk7CisgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50
KCk7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKIAotICAgICAgICBS
ZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiBtX2ZvbnRGYWNlUnVsZTsKLSAgICAgICAgUmVmUHRyPENT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uPiBtX3N0eWxlRGVjbGFyYXRpb247CisgICAgUmVmUHRy
PENTU0ZvbnRGYWNlUnVsZT4gbV9mb250RmFjZVJ1bGU7CisgICAgUmVmUHRyPENTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uPiBtX3N0eWxlRGVjbGFyYXRpb247CiAKLSAgICAgICAgU1ZHRm9udEVs
ZW1lbnQqIG1fZm9udEVsZW1lbnQ7Ci0gICAgfTsKKyAgICBTVkdGb250RWxlbWVudCogbV9mb250
RWxlbWVudDsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApJbmRleDogV2ViQ29yZS9z
dmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NW
R0ZvbnRGYWNlTmFtZUVsZW1lbnQuaAkocmV2aXNpb24gNzQ0NzEpCisrKyBXZWJDb3JlL3N2Zy9T
VkdGb250RmFjZU5hbWVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDE3ICsyNSwxNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBDU1NGb250RmFjZVNyY1ZhbHVl
OworY2xhc3MgQ1NTRm9udEZhY2VTcmNWYWx1ZTsKIAotICAgIGNsYXNzIFNWR0ZvbnRGYWNlTmFt
ZUVsZW1lbnQgOiBwdWJsaWMgU1ZHRWxlbWVudCB7Ci0gICAgcHVibGljOgotICAgICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTVkdGb250RmFjZU5hbWVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7Ci0gICAgICAgIAotICAgICAgICBQYXNzUmVmUHRyPENTU0Zv
bnRGYWNlU3JjVmFsdWU+IHNyY1ZhbHVlKCkgY29uc3Q7Ci0KLSAgICBwcml2YXRlOgotICAgICAg
ICBTVkdGb250RmFjZU5hbWVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCop
OwotICAgIH07CitjbGFzcyBTVkdGb250RmFjZU5hbWVFbGVtZW50IDogcHVibGljIFNWR0VsZW1l
bnQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZvbnRGYWNlTmFtZUVsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICAKKyAgICBQ
YXNzUmVmUHRyPENTU0ZvbnRGYWNlU3JjVmFsdWU+IHNyY1ZhbHVlKCkgY29uc3Q7CisKK3ByaXZh
dGU6CisgICAgU1ZHRm9udEZhY2VOYW1lRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQqKTsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApJbmRleDogV2ViQ29yZS9z
dmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9T
VkdGb250RmFjZVNyY0VsZW1lbnQuY3BwCShyZXZpc2lvbiA3NDQ3MSkKKysrIFdlYkNvcmUvc3Zn
L1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDggKzIyLDgg
QEAKICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQogI2luY2x1ZGUgIlNWR0ZvbnRGYWNlU3JjRWxlbWVu
dC5oIgogCi0jaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCiAjaW5jbHVkZSAiQ1NTRm9udEZhY2VT
cmNWYWx1ZS5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlTGlzdC5oIgogI2luY2x1ZGUgIlNWR0ZvbnRG
YWNlRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaCIKICNpbmNs
dWRlICJTVkdGb250RmFjZVVyaUVsZW1lbnQuaCIKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZvbnRG
YWNlU3JjRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3Jj
RWxlbWVudC5oCShyZXZpc2lvbiA3NDQ3MSkKKysrIFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3Jj
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxOSArMjUsMTkgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi0gICAgY2xhc3MgQ1NTVmFsdWVMaXN0OworY2xhc3MgQ1NTVmFsdWVMaXN0
OwogCi0gICAgY2xhc3MgU1ZHRm9udEZhY2VTcmNFbGVtZW50IDogcHVibGljIFNWR0VsZW1lbnQg
ewotICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRm9udEZhY2VTcmNF
bGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7Ci0KLSAgICAg
ICAgUGFzc1JlZlB0cjxDU1NWYWx1ZUxpc3Q+IHNyY1ZhbHVlKCkgY29uc3Q7Ci0gICAgICAgIAot
ICAgIHByaXZhdGU6Ci0gICAgICAgIFNWR0ZvbnRGYWNlU3JjRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQqKTsKLSAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgdm9pZCBjaGls
ZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIgPSBmYWxzZSwgTm9kZSogYmVmb3JlQ2hh
bmdlID0gMCwgTm9kZSogYWZ0ZXJDaGFuZ2UgPSAwLCBpbnQgY2hpbGRDb3VudERlbHRhID0gMCk7
Ci0gICAgfTsKK2NsYXNzIFNWR0ZvbnRGYWNlU3JjRWxlbWVudCA6IHB1YmxpYyBTVkdFbGVtZW50
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGb250RmFjZVNyY0VsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKworICAgIFBhc3NSZWZQ
dHI8Q1NTVmFsdWVMaXN0PiBzcmNWYWx1ZSgpIGNvbnN0OworICAgIAorcHJpdmF0ZToKKyAgICBT
VkdGb250RmFjZVNyY0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7Cisg
ICAgCisgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChib29sIGNoYW5nZWRCeVBhcnNl
ciA9IGZhbHNlLCBOb2RlKiBiZWZvcmVDaGFuZ2UgPSAwLCBOb2RlKiBhZnRlckNoYW5nZSA9IDAs
IGludCBjaGlsZENvdW50RGVsdGEgPSAwKTsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IApJbmRleDogV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmgJKHJldmlzaW9uIDc0NDcxKQor
KysgV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTI3LDI4ICsyNywyOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBDU1NG
b250RmFjZVNyY1ZhbHVlOwotICAgIGNsYXNzIENhY2hlZEZvbnQ7CitjbGFzcyBDU1NGb250RmFj
ZVNyY1ZhbHVlOworY2xhc3MgQ2FjaGVkRm9udDsKIAotICAgIGNsYXNzIFNWR0ZvbnRGYWNlVXJp
RWxlbWVudCA6IHB1YmxpYyBTVkdFbGVtZW50LCBwdWJsaWMgQ2FjaGVkUmVzb3VyY2VDbGllbnQg
ewotICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRm9udEZhY2VVcmlF
bGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CitjbGFzcyBT
VkdGb250RmFjZVVyaUVsZW1lbnQgOiBwdWJsaWMgU1ZHRWxlbWVudCwgcHVibGljIENhY2hlZFJl
c291cmNlQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGb250RmFj
ZVVyaUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAot
ICAgICAgICB2aXJ0dWFsIH5TVkdGb250RmFjZVVyaUVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIH5T
VkdGb250RmFjZVVyaUVsZW1lbnQoKTsKIAotICAgICAgICBQYXNzUmVmUHRyPENTU0ZvbnRGYWNl
U3JjVmFsdWU+IHNyY1ZhbHVlKCkgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxDU1NGb250RmFjZVNy
Y1ZhbHVlPiBzcmNWYWx1ZSgpIGNvbnN0OwogCi0gICAgcHJpdmF0ZToKLSAgICAgICAgU1ZHRm9u
dEZhY2VVcmlFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwotICAgICAg
ICAKLSAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSop
OwotICAgICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFy
c2VyID0gZmFsc2UsIE5vZGUqIGJlZm9yZUNoYW5nZSA9IDAsIE5vZGUqIGFmdGVyQ2hhbmdlID0g
MCwgaW50IGNoaWxkQ291bnREZWx0YSA9IDApOwotICAgICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0
ZWRJbnRvRG9jdW1lbnQoKTsKK3ByaXZhdGU6CisgICAgU1ZHRm9udEZhY2VVcmlFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIAorICAgIHZpcnR1YWwgdm9pZCBw
YXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2hpbGRy
ZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyID0gZmFsc2UsIE5vZGUqIGJlZm9yZUNoYW5n
ZSA9IDAsIE5vZGUqIGFmdGVyQ2hhbmdlID0gMCwgaW50IGNoaWxkQ291bnREZWx0YSA9IDApOwor
ICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9Eb2N1bWVudCgpOwogCi0gICAgICAgIHZvaWQg
bG9hZEZvbnQoKTsKKyAgICB2b2lkIGxvYWRGb250KCk7CiAKLSAgICAgICAgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkRm9udD4gbV9jYWNoZWRGb250OwotICAgIH07CisgICAgQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkRm9udD4gbV9jYWNoZWRGb250OworfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgJKHJl
dmlzaW9uIDc0NDcxKQorKysgV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMjMsMTEgKzIzLDExIEBACiAjaWYgRU5BQkxFKFNWRykgJiYgRU5B
QkxFKFNWR19GT1JFSUdOX09CSkVDVCkKICNpbmNsdWRlICJTVkdBbmltYXRlZEJvb2xlYW4uaCIK
ICNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0aC5oIgotI2luY2x1ZGUgIlNWR1Rlc3RzLmgiCisj
aW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oIgogI2luY2x1ZGUgIlNWR0xh
bmdTcGFjZS5oIgotI2luY2x1ZGUgIlNWR1VSSVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIlNWR1N0
eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZC5oIgorI2luY2x1ZGUgIlNWR1Rlc3RzLmgiCisjaW5jbHVkZSAiU1ZHVVJJUmVm
ZXJlbmNlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZH
R2x5cGhFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1l
bnQuY3BwCShyZXZpc2lvbiA3NDQ3MSkKKysrIFdlYkNvcmUvc3ZnL1NWR0dseXBoRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTgwLDExICs4MCwxMSBAQCBzdGF0aWMgaW5saW5lIFNWR0ds
eXBoSWRlbnRpZmllcjo6QXJhYmljCiB7CiAgICAgaWYgKHZhbHVlID09ICJtZWRpYWwiKQogICAg
ICAgICByZXR1cm4gU1ZHR2x5cGhJZGVudGlmaWVyOjpNZWRpYWw7Ci0gICAgZWxzZSBpZiAodmFs
dWUgPT0gInRlcm1pbmFsIikKKyAgICBpZiAodmFsdWUgPT0gInRlcm1pbmFsIikKICAgICAgICAg
cmV0dXJuIFNWR0dseXBoSWRlbnRpZmllcjo6VGVybWluYWw7Ci0gICAgZWxzZSBpZiAodmFsdWUg
PT0gImlzb2xhdGVkIikKKyAgICBpZiAodmFsdWUgPT0gImlzb2xhdGVkIikKICAgICAgICAgcmV0
dXJuIFNWR0dseXBoSWRlbnRpZmllcjo6SXNvbGF0ZWQ7Ci0gICAgZWxzZSBpZiAodmFsdWUgPT0g
ImluaXRpYWwiKQorICAgIGlmICh2YWx1ZSA9PSAiaW5pdGlhbCIpCiAgICAgICAgIHJldHVybiBT
VkdHbHlwaElkZW50aWZpZXI6OkluaXRpYWw7CiAKICAgICByZXR1cm4gU1ZHR2x5cGhJZGVudGlm
aWVyOjpOb25lOwpAQCAtOTQsNyArOTQsNyBAQCBzdGF0aWMgaW5saW5lIFNWR0dseXBoSWRlbnRp
Zmllcjo6T3JpZW50CiB7CiAgICAgaWYgKHZhbHVlID09ICJoIikKICAgICAgICAgcmV0dXJuIFNW
R0dseXBoSWRlbnRpZmllcjo6SG9yaXpvbnRhbDsKLSAgICBlbHNlIGlmICh2YWx1ZSA9PSAidiIp
CisgICAgaWYgKHZhbHVlID09ICJ2IikKICAgICAgICAgcmV0dXJuIFNWR0dseXBoSWRlbnRpZmll
cjo6VmVydGljYWw7CiAKICAgICByZXR1cm4gU1ZHR2x5cGhJZGVudGlmaWVyOjpCb3RoOwpJbmRl
eDogV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9z
dmcvU1ZHR2x5cGhFbGVtZW50LmgJKHJldmlzaW9uIDc0NDcxKQorKysgV2ViQ29yZS9zdmcvU1ZH
R2x5cGhFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDEwOCArMjMsMTA4IEBACiAjZGVm
aW5lIFNWR0dseXBoRWxlbWVudF9oCiAKICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQorI2luY2x1ZGUg
IlBhdGguaCIKICNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50LmgiCi0jaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KIAogI2luY2x1ZGUgPGxpbWl0cz4KLSNpbmNsdWRlICJQYXRoLmgiCisjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgU1ZH
Rm9udERhdGE7Ci0KLSAgICAvLyBEZXNjcmliZSBhIFNWRyA8Z2x5cGg+IGVsZW1lbnQKLSAgICBz
dHJ1Y3QgU1ZHR2x5cGhJZGVudGlmaWVyIHsKLSAgICAgICAgZW51bSBPcmllbnRhdGlvbiB7Ci0g
ICAgICAgICAgICBWZXJ0aWNhbCwKLSAgICAgICAgICAgIEhvcml6b250YWwsCi0gICAgICAgICAg
ICBCb3RoCi0gICAgICAgIH07Ci0KLSAgICAgICAgLy8gU1ZHIEZvbnQgZGVwZW5kcyBvbiBleGFj
dGx5IHRoaXMgb3JkZXIuCi0gICAgICAgIGVudW0gQXJhYmljRm9ybSB7Ci0gICAgICAgICAgICBO
b25lID0gMCwKLSAgICAgICAgICAgIElzb2xhdGVkLAotICAgICAgICAgICAgVGVybWluYWwsCi0g
ICAgICAgICAgICBJbml0aWFsLAotICAgICAgICAgICAgTWVkaWFsCi0gICAgICAgIH07Ci0KLSAg
ICAgICAgU1ZHR2x5cGhJZGVudGlmaWVyKCkKLSAgICAgICAgICAgIDogaXNWYWxpZChmYWxzZSkK
LSAgICAgICAgICAgICwgb3JpZW50YXRpb24oQm90aCkKLSAgICAgICAgICAgICwgYXJhYmljRm9y
bShOb25lKQotICAgICAgICAgICAgLCBwcmlvcml0eSgwKQotICAgICAgICAgICAgLCBuYW1lTGVu
Z3RoKDApCi0gICAgICAgICAgICAsIGhvcml6b250YWxBZHZhbmNlWCgwLjBmKQotICAgICAgICAg
ICAgLCB2ZXJ0aWNhbE9yaWdpblgoMC4wZikKLSAgICAgICAgICAgICwgdmVydGljYWxPcmlnaW5Z
KDAuMGYpCi0gICAgICAgICAgICAsIHZlcnRpY2FsQWR2YW5jZVkoMC4wZikKLSAgICAgICAgewot
ICAgICAgICB9Ci0KLSAgICAgICAgLy8gVXNlZCB0byBtYXJrIG91ciBmbG9hdCBwcm9wZXJ0aWVz
IGFzICJ0byBiZSBpbmhlcml0ZWQgZnJvbSBTVkdGb250RGF0YSIKLSAgICAgICAgc3RhdGljIGZs
b2F0IGluaGVyaXRlZFZhbHVlKCkKLSAgICAgICAgewotICAgICAgICAgICAgc3RhdGljIGZsb2F0
IHNfaW5oZXJpdGVkVmFsdWUgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6aW5maW5pdHko
KTsKLSAgICAgICAgICAgIHJldHVybiBzX2luaGVyaXRlZFZhbHVlOwotICAgICAgICB9Ci0KLSAg
ICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNWR0dseXBoSWRlbnRpZmllciYgb3RoZXIpIGNv
bnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBpc1ZhbGlkID09IG90aGVyLmlzVmFs
aWQKLSAgICAgICAgICAgICAgICAmJiBvcmllbnRhdGlvbiA9PSBvdGhlci5vcmllbnRhdGlvbgot
ICAgICAgICAgICAgICAgICYmIGFyYWJpY0Zvcm0gPT0gb3RoZXIuYXJhYmljRm9ybQotICAgICAg
ICAgICAgICAgICYmIGdseXBoTmFtZSA9PSBvdGhlci5nbHlwaE5hbWUKLSAgICAgICAgICAgICAg
ICAmJiBob3Jpem9udGFsQWR2YW5jZVggPT0gb3RoZXIuaG9yaXpvbnRhbEFkdmFuY2VYCi0gICAg
ICAgICAgICAgICAgJiYgdmVydGljYWxPcmlnaW5YID09IG90aGVyLnZlcnRpY2FsT3JpZ2luWAot
ICAgICAgICAgICAgICAgICYmIHZlcnRpY2FsT3JpZ2luWSA9PSBvdGhlci52ZXJ0aWNhbE9yaWdp
blkKLSAgICAgICAgICAgICAgICAmJiB2ZXJ0aWNhbEFkdmFuY2VZID09IG90aGVyLnZlcnRpY2Fs
QWR2YW5jZVkKLSAgICAgICAgICAgICAgICAmJiBsYW5ndWFnZXMgPT0gb3RoZXIubGFuZ3VhZ2Vz
OwotICAgICAgICB9Ci0KLSAgICAgICAgYm9vbCBpc1ZhbGlkIDogMTsKLQotICAgICAgICB1bnNp
Z25lZCBvcmllbnRhdGlvbiA6IDI7IC8vIE9yaWVudGF0aW9uCi0gICAgICAgIHVuc2lnbmVkIGFy
YWJpY0Zvcm0gOiAzOyAgLy8gQXJhYmljRm9ybQotICAgICAgICBpbnQgcHJpb3JpdHk7Ci0gICAg
ICAgIHNpemVfdCBuYW1lTGVuZ3RoOwotICAgICAgICBTdHJpbmcgZ2x5cGhOYW1lOwotCi0gICAg
ICAgIGZsb2F0IGhvcml6b250YWxBZHZhbmNlWDsKLSAgICAgICAgZmxvYXQgdmVydGljYWxPcmln
aW5YOwotICAgICAgICBmbG9hdCB2ZXJ0aWNhbE9yaWdpblk7Ci0gICAgICAgIGZsb2F0IHZlcnRp
Y2FsQWR2YW5jZVk7CitjbGFzcyBTVkdGb250RGF0YTsKIAotICAgICAgICBQYXRoIHBhdGhEYXRh
OwotICAgICAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXM7CisvLyBEZXNjcmliZSBhIFNWRyA8
Z2x5cGg+IGVsZW1lbnQKK3N0cnVjdCBTVkdHbHlwaElkZW50aWZpZXIgeworICAgIGVudW0gT3Jp
ZW50YXRpb24geworICAgICAgICBWZXJ0aWNhbCwKKyAgICAgICAgSG9yaXpvbnRhbCwKKyAgICAg
ICAgQm90aAogICAgIH07CiAKLSAgICBjbGFzcyBTVkdHbHlwaEVsZW1lbnQgOiBwdWJsaWMgU1ZH
U3R5bGVkRWxlbWVudCB7Ci0gICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
VkdHbHlwaEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsK
LQotICAgICAgICBTVkdHbHlwaElkZW50aWZpZXIgYnVpbGRHbHlwaElkZW50aWZpZXIoKSBjb25z
dDsKLQotICAgICAgICAvLyBIZWxwZXIgZnVuY3Rpb24gdXNlZCBieSBTVkdGb250Ci0gICAgICAg
IHN0YXRpYyB2b2lkIGluaGVyaXRVbnNwZWNpZmllZEF0dHJpYnV0ZXMoU1ZHR2x5cGhJZGVudGlm
aWVyJiwgY29uc3QgU1ZHRm9udERhdGEqKTsKLSAgICAgICAgc3RhdGljIFN0cmluZyBxdWVyeVNW
R0ZvbnRMYW5ndWFnZShjb25zdCBTVkdFbGVtZW50Kik7Ci0KLSAgICAgICAgLy8gSGVscGVyIGZ1
bmN0aW9uIHNoYXJlZCBiZXR3ZWVuIFNWR0dseXBoRWxlbWVudCAmIFNWR01pc3NpbmdHbHlwaEVs
ZW1lbnQKLSAgICAgICAgc3RhdGljIFNWR0dseXBoSWRlbnRpZmllciBidWlsZEdlbmVyaWNHbHlw
aElkZW50aWZpZXIoY29uc3QgU1ZHRWxlbWVudCopOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAg
U1ZHR2x5cGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIC8v
IFNWRyBGb250IGRlcGVuZHMgb24gZXhhY3RseSB0aGlzIG9yZGVyLgorICAgIGVudW0gQXJhYmlj
Rm9ybSB7CisgICAgICAgIE5vbmUgPSAwLAorICAgICAgICBJc29sYXRlZCwKKyAgICAgICAgVGVy
bWluYWwsCisgICAgICAgIEluaXRpYWwsCisgICAgICAgIE1lZGlhbAorICAgIH07CiAKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOworICAgIFNW
R0dseXBoSWRlbnRpZmllcigpCisgICAgICAgIDogaXNWYWxpZChmYWxzZSkKKyAgICAgICAgLCBv
cmllbnRhdGlvbihCb3RoKQorICAgICAgICAsIGFyYWJpY0Zvcm0oTm9uZSkKKyAgICAgICAgLCBw
cmlvcml0eSgwKQorICAgICAgICAsIG5hbWVMZW5ndGgoMCkKKyAgICAgICAgLCBob3Jpem9udGFs
QWR2YW5jZVgoMC4wZikKKyAgICAgICAgLCB2ZXJ0aWNhbE9yaWdpblgoMC4wZikKKyAgICAgICAg
LCB2ZXJ0aWNhbE9yaWdpblkoMC4wZikKKyAgICAgICAgLCB2ZXJ0aWNhbEFkdmFuY2VZKDAuMGYp
CisgICAgeworICAgIH0KKworICAgIC8vIFVzZWQgdG8gbWFyayBvdXIgZmxvYXQgcHJvcGVydGll
cyBhcyAidG8gYmUgaW5oZXJpdGVkIGZyb20gU1ZHRm9udERhdGEiCisgICAgc3RhdGljIGZsb2F0
IGluaGVyaXRlZFZhbHVlKCkKKyAgICB7CisgICAgICAgIHN0YXRpYyBmbG9hdCBzX2luaGVyaXRl
ZFZhbHVlID0gc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmluZmluaXR5KCk7CisgICAgICAg
IHJldHVybiBzX2luaGVyaXRlZFZhbHVlOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBTVkdHbHlwaElkZW50aWZpZXImIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0
dXJuIGlzVmFsaWQgPT0gb3RoZXIuaXNWYWxpZAorICAgICAgICAgICAgJiYgb3JpZW50YXRpb24g
PT0gb3RoZXIub3JpZW50YXRpb24KKyAgICAgICAgICAgICYmIGFyYWJpY0Zvcm0gPT0gb3RoZXIu
YXJhYmljRm9ybQorICAgICAgICAgICAgJiYgZ2x5cGhOYW1lID09IG90aGVyLmdseXBoTmFtZQor
ICAgICAgICAgICAgJiYgaG9yaXpvbnRhbEFkdmFuY2VYID09IG90aGVyLmhvcml6b250YWxBZHZh
bmNlWAorICAgICAgICAgICAgJiYgdmVydGljYWxPcmlnaW5YID09IG90aGVyLnZlcnRpY2FsT3Jp
Z2luWAorICAgICAgICAgICAgJiYgdmVydGljYWxPcmlnaW5ZID09IG90aGVyLnZlcnRpY2FsT3Jp
Z2luWQorICAgICAgICAgICAgJiYgdmVydGljYWxBZHZhbmNlWSA9PSBvdGhlci52ZXJ0aWNhbEFk
dmFuY2VZCisgICAgICAgICAgICAmJiBsYW5ndWFnZXMgPT0gb3RoZXIubGFuZ3VhZ2VzOworICAg
IH0KKworICAgIGJvb2wgaXNWYWxpZCA6IDE7CisKKyAgICB1bnNpZ25lZCBvcmllbnRhdGlvbiA6
IDI7IC8vIE9yaWVudGF0aW9uCisgICAgdW5zaWduZWQgYXJhYmljRm9ybSA6IDM7IC8vIEFyYWJp
Y0Zvcm0KKyAgICBpbnQgcHJpb3JpdHk7CisgICAgc2l6ZV90IG5hbWVMZW5ndGg7CisgICAgU3Ry
aW5nIGdseXBoTmFtZTsKKworICAgIGZsb2F0IGhvcml6b250YWxBZHZhbmNlWDsKKyAgICBmbG9h
dCB2ZXJ0aWNhbE9yaWdpblg7CisgICAgZmxvYXQgdmVydGljYWxPcmlnaW5ZOworICAgIGZsb2F0
IHZlcnRpY2FsQWR2YW5jZVk7CisKKyAgICBQYXRoIHBhdGhEYXRhOworICAgIFZlY3RvcjxTdHJp
bmc+IGxhbmd1YWdlczsKK307CisKK2NsYXNzIFNWR0dseXBoRWxlbWVudCA6IHB1YmxpYyBTVkdT
dHlsZWRFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdHbHlwaEVs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKworICAgIFNW
R0dseXBoSWRlbnRpZmllciBidWlsZEdseXBoSWRlbnRpZmllcigpIGNvbnN0OworCisgICAgLy8g
SGVscGVyIGZ1bmN0aW9uIHVzZWQgYnkgU1ZHRm9udAorICAgIHN0YXRpYyB2b2lkIGluaGVyaXRV
bnNwZWNpZmllZEF0dHJpYnV0ZXMoU1ZHR2x5cGhJZGVudGlmaWVyJiwgY29uc3QgU1ZHRm9udERh
dGEqKTsKKyAgICBzdGF0aWMgU3RyaW5nIHF1ZXJ5U1ZHRm9udExhbmd1YWdlKGNvbnN0IFNWR0Vs
ZW1lbnQqKTsKKworICAgIC8vIEhlbHBlciBmdW5jdGlvbiBzaGFyZWQgYmV0d2VlbiBTVkdHbHlw
aEVsZW1lbnQgJiBTVkdNaXNzaW5nR2x5cGhFbGVtZW50CisgICAgc3RhdGljIFNWR0dseXBoSWRl
bnRpZmllciBidWlsZEdlbmVyaWNHbHlwaElkZW50aWZpZXIoY29uc3QgU1ZHRWxlbWVudCopOwor
Citwcml2YXRlOgorICAgIFNWR0dseXBoRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQqKTsKKworICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1
dGUqKTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKLSAg
ICAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb21E
b2N1bWVudCgpOwogCi0gICAgICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKFJlbmRl
clN0eWxlKikgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05l
ZWRlZChSZW5kZXJTdHlsZSopIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICAgICAgdm9pZCBpbnZh
bGlkYXRlR2x5cGhDYWNoZSgpOwotICAgIH07CisgICAgdm9pZCBpbnZhbGlkYXRlR2x5cGhDYWNo
ZSgpOworfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCkluZGV4OiBXZWJDb3JlL3N2Zy9T
VkdHbHlwaE1hcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0dseXBoTWFwLmgJKHJl
dmlzaW9uIDc0NDcxKQorKysgV2ViQ29yZS9zdmcvU1ZHR2x5cGhNYXAuaAkod29ya2luZyBjb3B5
KQpAQCAtMjMsODcgKzIzLDg2IEBACiAjaWYgRU5BQkxFKFNWR19GT05UUykKICNpbmNsdWRlICJT
VkdHbHlwaEVsZW1lbnQuaCIKIAotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBzdHJ1Y3Qg
R2x5cGhNYXBOb2RlOwotCi0gICAgdHlwZWRlZiBIYXNoTWFwPFVDaGFyLCBSZWZQdHI8R2x5cGhN
YXBOb2RlPiA+IEdseXBoTWFwTGF5ZXI7CitzdHJ1Y3QgR2x5cGhNYXBOb2RlOwogCi0gICAgc3Ry
dWN0IEdseXBoTWFwTm9kZSA6IHB1YmxpYyBSZWZDb3VudGVkPEdseXBoTWFwTm9kZT4gewotICAg
IHByaXZhdGU6Ci0gICAgICAgIEdseXBoTWFwTm9kZSgpIHsgfQotICAgIHB1YmxpYzoKLSAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8R2x5cGhNYXBOb2RlPiBjcmVhdGUoKSB7IHJldHVybiBhZG9w
dFJlZihuZXcgR2x5cGhNYXBOb2RlKTsgfQotCi0gICAgICAgIFZlY3RvcjxTVkdHbHlwaElkZW50
aWZpZXI+IGdseXBoczsKLQotICAgICAgICBHbHlwaE1hcExheWVyIGNoaWxkcmVuOwotICAgIH07
Ci0KLSAgICBjbGFzcyBTVkdHbHlwaE1hcCB7Ci0KLSAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0ds
eXBoTWFwKCkgOiBtX2N1cnJlbnRQcmlvcml0eSgwKSB7IH0KLQotICAgICAgICB2b2lkIGFkZChj
b25zdCBTdHJpbmcmIHN0cmluZywgY29uc3QgU1ZHR2x5cGhJZGVudGlmaWVyJiBnbHlwaCkgCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHNpemVfdCBsZW4gPSBzdHJpbmcubGVuZ3RoKCk7Ci0gICAg
ICAgICAgICBHbHlwaE1hcExheWVyKiBjdXJyZW50TGF5ZXIgPSAmbV9yb290TGF5ZXI7Ci0KLSAg
ICAgICAgICAgIFJlZlB0cjxHbHlwaE1hcE5vZGU+IG5vZGU7Ci0gICAgICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgVUNoYXIgY3VyQ2hh
ciA9IHN0cmluZ1tpXTsKLSAgICAgICAgICAgICAgICBub2RlID0gY3VycmVudExheWVyLT5nZXQo
Y3VyQ2hhcik7Ci0gICAgICAgICAgICAgICAgaWYgKCFub2RlKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIG5vZGUgPSBHbHlwaE1hcE5vZGU6OmNyZWF0ZSgpOwotICAgICAgICAgICAgICAgICAgICBj
dXJyZW50TGF5ZXItPnNldChjdXJDaGFyLCBub2RlKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgY3VycmVudExheWVyID0gJm5vZGUtPmNoaWxkcmVuOwotICAgICAgICAgICAg
fQordHlwZWRlZiBIYXNoTWFwPFVDaGFyLCBSZWZQdHI8R2x5cGhNYXBOb2RlPiA+IEdseXBoTWFw
TGF5ZXI7CiAKLSAgICAgICAgICAgIGlmIChub2RlKSB7Ci0gICAgICAgICAgICAgICAgbm9kZS0+
Z2x5cGhzLmFwcGVuZChnbHlwaCk7Ci0gICAgICAgICAgICAgICAgbm9kZS0+Z2x5cGhzLmxhc3Qo
KS5wcmlvcml0eSA9IG1fY3VycmVudFByaW9yaXR5Kys7Ci0gICAgICAgICAgICAgICAgbm9kZS0+
Z2x5cGhzLmxhc3QoKS5uYW1lTGVuZ3RoID0gbGVuOwotICAgICAgICAgICAgICAgIG5vZGUtPmds
eXBocy5sYXN0KCkuaXNWYWxpZCA9IHRydWU7CitzdHJ1Y3QgR2x5cGhNYXBOb2RlIDogcHVibGlj
IFJlZkNvdW50ZWQ8R2x5cGhNYXBOb2RlPiB7Citwcml2YXRlOgorICAgIEdseXBoTWFwTm9kZSgp
IHsgfQorcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdseXBoTWFwTm9kZT4gY3JlYXRl
KCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEdseXBoTWFwTm9kZSk7IH0KKworICAgIFZlY3RvcjxT
VkdHbHlwaElkZW50aWZpZXI+IGdseXBoczsKKworICAgIEdseXBoTWFwTGF5ZXIgY2hpbGRyZW47
Cit9OworCitjbGFzcyBTVkdHbHlwaE1hcCB7CisKK3B1YmxpYzoKKyAgICBTVkdHbHlwaE1hcCgp
IDogbV9jdXJyZW50UHJpb3JpdHkoMCkgeyB9CisKKyAgICB2b2lkIGFkZChjb25zdCBTdHJpbmcm
IHN0cmluZywgY29uc3QgU1ZHR2x5cGhJZGVudGlmaWVyJiBnbHlwaCkgCisgICAgeworICAgICAg
ICBzaXplX3QgbGVuID0gc3RyaW5nLmxlbmd0aCgpOworICAgICAgICBHbHlwaE1hcExheWVyKiBj
dXJyZW50TGF5ZXIgPSAmbV9yb290TGF5ZXI7CisKKyAgICAgICAgUmVmUHRyPEdseXBoTWFwTm9k
ZT4gbm9kZTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW47ICsraSkgeworICAg
ICAgICAgICAgVUNoYXIgY3VyQ2hhciA9IHN0cmluZ1tpXTsKKyAgICAgICAgICAgIG5vZGUgPSBj
dXJyZW50TGF5ZXItPmdldChjdXJDaGFyKTsKKyAgICAgICAgICAgIGlmICghbm9kZSkgeworICAg
ICAgICAgICAgICAgIG5vZGUgPSBHbHlwaE1hcE5vZGU6OmNyZWF0ZSgpOworICAgICAgICAgICAg
ICAgIGN1cnJlbnRMYXllci0+c2V0KGN1ckNoYXIsIG5vZGUpOwogICAgICAgICAgICAgfQorICAg
ICAgICAgICAgY3VycmVudExheWVyID0gJm5vZGUtPmNoaWxkcmVuOwogICAgICAgICB9CiAKLSAg
ICAgICAgc3RhdGljIGlubGluZSBib29sIGNvbXBhcmVHbHlwaFByaW9yaXR5KGNvbnN0IFNWR0ds
eXBoSWRlbnRpZmllciYgZmlyc3QsIGNvbnN0IFNWR0dseXBoSWRlbnRpZmllciYgc2Vjb25kKQot
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gZmlyc3QucHJpb3JpdHkgPCBzZWNvbmQucHJp
b3JpdHk7Ci0gICAgICAgIH0KLQotICAgICAgICB2b2lkIGdldChjb25zdCBTdHJpbmcmIHN0cmlu
ZywgVmVjdG9yPFNWR0dseXBoSWRlbnRpZmllcj4mIGdseXBocykKLSAgICAgICAgewotICAgICAg
ICAgICAgR2x5cGhNYXBMYXllciogY3VycmVudExheWVyID0gJm1fcm9vdExheWVyOwotCi0gICAg
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0cmluZy5sZW5ndGgoKTsgaSsrKSB7Ci0g
ICAgICAgICAgICAgICAgVUNoYXIgY3VyQ2hhciA9IHN0cmluZ1tpXTsKLSAgICAgICAgICAgICAg
ICBSZWZQdHI8R2x5cGhNYXBOb2RlPiBub2RlID0gY3VycmVudExheWVyLT5nZXQoY3VyQ2hhcik7
Ci0gICAgICAgICAgICAgICAgaWYgKCFub2RlKQotICAgICAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgICAgICBnbHlwaHMuYXBwZW5kKG5vZGUtPmdseXBocyk7Ci0gICAgICAgICAg
ICAgICAgY3VycmVudExheWVyID0gJm5vZGUtPmNoaWxkcmVuOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgc3RkOjpzb3J0KGdseXBocy5iZWdpbigpLCBnbHlwaHMuZW5kKCksIGNvbXBhcmVH
bHlwaFByaW9yaXR5KTsKKyAgICAgICAgaWYgKG5vZGUpIHsKKyAgICAgICAgICAgIG5vZGUtPmds
eXBocy5hcHBlbmQoZ2x5cGgpOworICAgICAgICAgICAgbm9kZS0+Z2x5cGhzLmxhc3QoKS5wcmlv
cml0eSA9IG1fY3VycmVudFByaW9yaXR5Kys7CisgICAgICAgICAgICBub2RlLT5nbHlwaHMubGFz
dCgpLm5hbWVMZW5ndGggPSBsZW47CisgICAgICAgICAgICBub2RlLT5nbHlwaHMubGFzdCgpLmlz
VmFsaWQgPSB0cnVlOwogICAgICAgICB9CisgICAgfQogCi0gICAgICAgIHZvaWQgY2xlYXIoKSAK
LSAgICAgICAgeyAKLSAgICAgICAgICAgIG1fcm9vdExheWVyLmNsZWFyKCk7IAotICAgICAgICAg
ICAgbV9jdXJyZW50UHJpb3JpdHkgPSAwOworICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBjb21wYXJl
R2x5cGhQcmlvcml0eShjb25zdCBTVkdHbHlwaElkZW50aWZpZXImIGZpcnN0LCBjb25zdCBTVkdH
bHlwaElkZW50aWZpZXImIHNlY29uZCkKKyAgICB7CisgICAgICAgIHJldHVybiBmaXJzdC5wcmlv
cml0eSA8IHNlY29uZC5wcmlvcml0eTsKKyAgICB9CisKKyAgICB2b2lkIGdldChjb25zdCBTdHJp
bmcmIHN0cmluZywgVmVjdG9yPFNWR0dseXBoSWRlbnRpZmllcj4mIGdseXBocykKKyAgICB7Cisg
ICAgICAgIEdseXBoTWFwTGF5ZXIqIGN1cnJlbnRMYXllciA9ICZtX3Jvb3RMYXllcjsKKworICAg
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0cmluZy5sZW5ndGgoKTsgKytpKSB7CisgICAg
ICAgICAgICBVQ2hhciBjdXJDaGFyID0gc3RyaW5nW2ldOworICAgICAgICAgICAgUmVmUHRyPEds
eXBoTWFwTm9kZT4gbm9kZSA9IGN1cnJlbnRMYXllci0+Z2V0KGN1ckNoYXIpOworICAgICAgICAg
ICAgaWYgKCFub2RlKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZ2x5cGhz
LmFwcGVuZChub2RlLT5nbHlwaHMpOworICAgICAgICAgICAgY3VycmVudExheWVyID0gJm5vZGUt
PmNoaWxkcmVuOwogICAgICAgICB9CisgICAgICAgIHN0ZDo6c29ydChnbHlwaHMuYmVnaW4oKSwg
Z2x5cGhzLmVuZCgpLCBjb21wYXJlR2x5cGhQcmlvcml0eSk7CisgICAgfQogCi0gICAgcHJpdmF0
ZToKLSAgICAgICAgR2x5cGhNYXBMYXllciBtX3Jvb3RMYXllcjsKLSAgICAgICAgaW50IG1fY3Vy
cmVudFByaW9yaXR5OwotICAgIH07CisgICAgdm9pZCBjbGVhcigpIAorICAgIHsgCisgICAgICAg
IG1fcm9vdExheWVyLmNsZWFyKCk7IAorICAgICAgICBtX2N1cnJlbnRQcmlvcml0eSA9IDA7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIEdseXBoTWFwTGF5ZXIgbV9yb290TGF5ZXI7CisgICAgaW50
IG1fY3VycmVudFByaW9yaXR5OworfTsKIAogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05U
UykKIAogCi0jZW5kaWYgLy9TVkdHbHlwaE1hcF9oCisjZW5kaWYgLy8gU1ZHR2x5cGhNYXBfaApJ
bmRleDogV2ViQ29yZS9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuY3BwCShyZXZpc2lvbiA3NDQ3MSkKKysrIFdl
YkNvcmUvc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDgg
KzI2LDggQEAKIAogI2luY2x1ZGUgIkF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2Vs
ZWN0b3IuaCIKLSNpbmNsdWRlICJSZW5kZXJTVkdQYXRoLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZH
SGlkZGVuQ29udGFpbmVyLmgiCisjaW5jbHVkZSAiUmVuZGVyU1ZHUGF0aC5oIgogI2luY2x1ZGUg
IlJlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnQuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdS
ZXNvdXJjZVJhZGlhbEdyYWRpZW50LmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKSW5kZXg6IFdl
YkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcv
U1ZHSEtlcm5FbGVtZW50LmNwcAkocmV2aXNpb24gNzQ0NzEpCisrKyBXZWJDb3JlL3N2Zy9TVkdI
S2VybkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw5ICsyNCw5IEBACiAjaWYgRU5B
QkxFKFNWR19GT05UUykKICNpbmNsdWRlICJTVkdIS2VybkVsZW1lbnQuaCIKIAorI2luY2x1ZGUg
IlNWR0ZvbnREYXRhLmgiCiAjaW5jbHVkZSAiU1ZHRm9udEVsZW1lbnQuaCIKICNpbmNsdWRlICJT
VkdGb250RmFjZUVsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdGb250RGF0YS5oIgogI2luY2x1ZGUg
IlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU2ltcGxlRm9udERhdGEuaCIKICNpbmNsdWRlICJYTUxO
YW1lcy5oIgpJbmRleDogV2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVtZW50LmgJKHJldmlzaW9uIDc0NDcxKQorKysgV2Vi
Q29yZS9zdmcvU1ZHSEtlcm5FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDIwICsyNywy
MCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBTVkdIS2VybkVsZW1lbnQg
OiBwdWJsaWMgU1ZHRWxlbWVudCB7Ci0gICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTVkdIS2VybkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQqKTsKK2NsYXNzIFNWR0hLZXJuRWxlbWVudCA6IHB1YmxpYyBTVkdFbGVtZW50IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdIS2VybkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAotICAgICAgICB2b2lkIGJ1aWxkSG9yaXpvbnRh
bEtlcm5pbmdQYWlyKEtlcm5pbmdQYWlyVmVjdG9yJik7CisgICAgdm9pZCBidWlsZEhvcml6b250
YWxLZXJuaW5nUGFpcihLZXJuaW5nUGFpclZlY3RvciYpOwogCi0gICAgcHJpdmF0ZToKLSAgICAg
ICAgU1ZHSEtlcm5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworcHJp
dmF0ZToKKyAgICBTVkdIS2VybkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Kik7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7Ci0gICAg
ICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbURvY3VtZW50KCk7CisgICAgdmlydHVhbCB2b2lk
IGluc2VydGVkSW50b0RvY3VtZW50KCk7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tRG9j
dW1lbnQoKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJT
dHlsZSopIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgfTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVy
ZXJJc05lZWRlZChSZW5kZXJTdHlsZSopIHsgcmV0dXJuIGZhbHNlOyB9Cit9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oCShyZXZpc2lvbiA3NDQ3
MSkKKysrIFdlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw4ICsyNiw4IEBACiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGguaCIKICNpbmNsdWRlICJT
VkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkLmgiCi0jaW5jbHVkZSAiU1ZHTGFuZ1NwYWNlLmgiCiAjaW5jbHVkZSAi
U1ZHSW1hZ2VMb2FkZXIuaCIKKyNpbmNsdWRlICJTVkdMYW5nU3BhY2UuaCIKICNpbmNsdWRlICJT
VkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1Rlc3RzLmgiCiAj
aW5jbHVkZSAiU1ZHVVJJUmVmZXJlbmNlLmgiCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdJbWFnZUxv
YWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHSW1hZ2VMb2FkZXIuY3BwCShy
ZXZpc2lvbiA3NDQ3MSkKKysrIFdlYkNvcmUvc3ZnL1NWR0ltYWdlTG9hZGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjYsOCArMjYsOCBAQAogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAi
RXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKLSNpbmNsdWRlICJT
VkdJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgorI2luY2x1ZGUgIlNW
R0ltYWdlRWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFdlYkNvcmUv
c3ZnL1NWR0ltYWdlTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHSW1hZ2VM
b2FkZXIuaAkocmV2aXNpb24gNzQ0NzEpCisrKyBXZWJDb3JlL3N2Zy9TVkdJbWFnZUxvYWRlci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxNiArMjUsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi0gICAgY2xhc3MgU1ZHSW1hZ2VFbGVtZW50OworY2xhc3MgU1ZHSW1hZ2VFbGVtZW50Owog
Ci0gICAgY2xhc3MgU1ZHSW1hZ2VMb2FkZXIgOiBwdWJsaWMgSW1hZ2VMb2FkZXIgewotICAgIHB1
YmxpYzoKLSAgICAgICAgU1ZHSW1hZ2VMb2FkZXIoU1ZHSW1hZ2VFbGVtZW50Kik7Ci0KLSAgICBw
cml2YXRlOgotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hMb2FkRXZlbnQoKTsKLSAgICAg
ICAgdmlydHVhbCBTdHJpbmcgc291cmNlVVJJKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0Owot
ICAgIH07CitjbGFzcyBTVkdJbWFnZUxvYWRlciA6IHB1YmxpYyBJbWFnZUxvYWRlciB7CitwdWJs
aWM6CisgICAgU1ZHSW1hZ2VMb2FkZXIoU1ZHSW1hZ2VFbGVtZW50Kik7CisKK3ByaXZhdGU6Cisg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoTG9hZEV2ZW50KCk7CisgICAgdmlydHVhbCBTdHJpbmcg
c291cmNlVVJJKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0OworfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdMYW5nU3BhY2UuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0xhbmdTcGFjZS5jcHAJKHJldmlzaW9uIDc0NDcxKQorKysg
V2ViQ29yZS9zdmcvU1ZHTGFuZ1NwYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsNyArNTUs
OCBAQCBib29sIFNWR0xhbmdTcGFjZTo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoCiAgICAgaWYgKGF0
dHItPm5hbWUoKS5tYXRjaGVzKFhNTE5hbWVzOjpsYW5nQXR0cikpIHsKICAgICAgICAgc2V0WG1s
bGFuZyhhdHRyLT52YWx1ZSgpKTsKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSBlbHNlIGlm
IChhdHRyLT5uYW1lKCkubWF0Y2hlcyhYTUxOYW1lczo6c3BhY2VBdHRyKSkgeworICAgIH0KKyAg
ICBpZiAoYXR0ci0+bmFtZSgpLm1hdGNoZXMoWE1MTmFtZXM6OnNwYWNlQXR0cikpIHsKICAgICAg
ICAgc2V0WG1sc3BhY2UoYXR0ci0+dmFsdWUoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KQEAgLTY1LDggKzY2LDcgQEAgYm9vbCBTVkdMYW5nU3BhY2U6OnBhcnNlTWFwcGVkQXR0cmli
dXRlKAogCiBib29sIFNWR0xhbmdTcGFjZTo6aXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICByZXR1cm4gKGF0dHJOYW1lLm1hdGNoZXMoWE1MTmFt
ZXM6OmxhbmdBdHRyKSB8fAotICAgICAgICAgICAgYXR0ck5hbWUubWF0Y2hlcyhYTUxOYW1lczo6
c3BhY2VBdHRyKSk7CisgICAgcmV0dXJuIGF0dHJOYW1lLm1hdGNoZXMoWE1MTmFtZXM6OmxhbmdB
dHRyKSB8fCBhdHRyTmFtZS5tYXRjaGVzKFhNTE5hbWVzOjpzcGFjZUF0dHIpOwogfQogCiB9Cklu
ZGV4OiBXZWJDb3JlL3N2Zy9TVkdMYW5nU3BhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2
Zy9TVkdMYW5nU3BhY2UuaAkocmV2aXNpb24gNzQ0NzEpCisrKyBXZWJDb3JlL3N2Zy9TVkdMYW5n
U3BhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsMjQgKzI2LDI0IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotICAgIGNsYXNzIEF0dHJpYnV0ZTsKLSAgICBjbGFzcyBRdWFsaWZpZWROYW1l
OworY2xhc3MgQXR0cmlidXRlOworY2xhc3MgUXVhbGlmaWVkTmFtZTsKIAotICAgIGNsYXNzIFNW
R0xhbmdTcGFjZSB7Ci0gICAgcHVibGljOgotICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHht
bGxhbmcoKSBjb25zdCB7IHJldHVybiBtX2xhbmc7IH0KLSAgICAgICAgdm9pZCBzZXRYbWxsYW5n
KGNvbnN0IEF0b21pY1N0cmluZyYgeG1sTGFuZyk7Ci0KLSAgICAgICAgY29uc3QgQXRvbWljU3Ry
aW5nJiB4bWxzcGFjZSgpIGNvbnN0OwotICAgICAgICB2b2lkIHNldFhtbHNwYWNlKGNvbnN0IEF0
b21pY1N0cmluZyYgeG1sU3BhY2UpOwotCi0gICAgICAgIGJvb2wgcGFyc2VNYXBwZWRBdHRyaWJ1
dGUoQXR0cmlidXRlKik7Ci0gICAgICAgIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJik7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBBdG9taWNTdHJpbmcgbV9sYW5n
OwotICAgICAgICBBdG9taWNTdHJpbmcgbV9zcGFjZTsKLSAgICB9OworY2xhc3MgU1ZHTGFuZ1Nw
YWNlIHsKK3B1YmxpYzoKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIHhtbGxhbmcoKSBjb25zdCB7
IHJldHVybiBtX2xhbmc7IH0KKyAgICB2b2lkIHNldFhtbGxhbmcoY29uc3QgQXRvbWljU3RyaW5n
JiB4bWxMYW5nKTsKKworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgeG1sc3BhY2UoKSBjb25zdDsK
KyAgICB2b2lkIHNldFhtbHNwYWNlKGNvbnN0IEF0b21pY1N0cmluZyYgeG1sU3BhY2UpOworCisg
ICAgYm9vbCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKKyAgICBib29sIGlzS25v
d25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOworCitwcml2YXRlOgorICAgIEF0b21p
Y1N0cmluZyBtX2xhbmc7CisgICAgQXRvbWljU3RyaW5nIG1fc3BhY2U7Cit9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR01ldGFkYXRhRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR01ldGFkYXRhRWxlbWVudC5oCShyZXZpc2lv
biA3NDQ3MSkKKysrIFdlYkNvcmUvc3ZnL1NWR01ldGFkYXRhRWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNiwxMyArMjYsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xh
c3MgU1ZHTWV0YWRhdGFFbGVtZW50IDogcHVibGljIFNWR0VsZW1lbnQgewotICAgIHB1YmxpYzoK
LSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHTWV0YWRhdGFFbGVtZW50PiBjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBT
VkdNZXRhZGF0YUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7Ci0gICAg
fTsKK2NsYXNzIFNWR01ldGFkYXRhRWxlbWVudCA6IHB1YmxpYyBTVkdFbGVtZW50IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdNZXRhZGF0YUVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKworcHJpdmF0ZToKKyAgICBTVkdNZXRhZGF0
YUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7Cit9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmgJ
KHJldmlzaW9uIDc0NDcxKQorKysgV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxNSArMjUsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi0gICAgY2xhc3MgU1ZHTWlzc2luZ0dseXBoRWxlbWVudCA6IHB1YmxpYyBTVkdTdHlsZWRF
bGVtZW50IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR01pc3Np
bmdHbHlwaEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsK
K2NsYXNzIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQgOiBwdWJsaWMgU1ZHU3R5bGVkRWxlbWVudCB7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHTWlzc2luZ0dseXBoRWxlbWVudD4g
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCi0gICAgcHJpdmF0ZToK
LSAgICAgICAgU1ZHTWlzc2luZ0dseXBoRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQqKTsKK3ByaXZhdGU6CisgICAgU1ZHTWlzc2luZ0dseXBoRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJ
c05lZWRlZChSZW5kZXJTdHlsZSopIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgfTsKKyAgICB2aXJ0
dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSopIHsgcmV0dXJuIGZhbHNlOyB9
Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1Bh
aW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQYWludC5jcHAJKHJldmlzaW9u
IDc0NDcxKQorKysgV2ViQ29yZS9zdmcvU1ZHUGFpbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Myw2ICsyMyw3IEBACiAKICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIlNWR1BhaW50LmgiCisK
ICNpbmNsdWRlICJTVkdVUklSZWZlcmVuY2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
OTksOSArMTAwLDkgQEAgU3RyaW5nIFNWR1BhaW50Ojpjc3NUZXh0KCkgY29uc3QKIHsKICAgICBp
ZiAobV9wYWludFR5cGUgPT0gU1ZHX1BBSU5UVFlQRV9OT05FKQogICAgICAgICByZXR1cm4gIm5v
bmUiOwotICAgIGVsc2UgaWYgKG1fcGFpbnRUeXBlID09IFNWR19QQUlOVFRZUEVfQ1VSUkVOVENP
TE9SKQorICAgIGlmIChtX3BhaW50VHlwZSA9PSBTVkdfUEFJTlRUWVBFX0NVUlJFTlRDT0xPUikK
ICAgICAgICAgcmV0dXJuICJjdXJyZW50Q29sb3IiOwotICAgIGVsc2UgaWYgKG1fcGFpbnRUeXBl
ID09IFNWR19QQUlOVFRZUEVfVVJJKQorICAgIGlmIChtX3BhaW50VHlwZSA9PSBTVkdfUEFJTlRU
WVBFX1VSSSkKICAgICAgICAgcmV0dXJuICJ1cmwoIiArIG1fdXJpICsgIikiOwogCiAgICAgcmV0
dXJuIFNWR0NvbG9yOjpjc3NUZXh0KCk7CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQYWludC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1BhaW50LmgJKHJldmlzaW9uIDc0NDcxKQorKysg
V2ViQ29yZS9zdmcvU1ZHUGFpbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjIsNzYgKzIyLDc1IEBA
CiAjaWZuZGVmIFNWR1BhaW50X2gKICNkZWZpbmUgU1ZHUGFpbnRfaAogI2lmIEVOQUJMRShTVkcp
Ci0KLSNpbmNsdWRlICJTVkdDb2xvci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisj
aW5jbHVkZSAiU1ZHQ29sb3IuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3Mg
U1ZHUGFpbnQgOiBwdWJsaWMgU1ZHQ29sb3IgewotICAgIHB1YmxpYzoKLSAgICAgICAgZW51bSBT
VkdQYWludFR5cGUgewotICAgICAgICAgICAgU1ZHX1BBSU5UVFlQRV9VTktOT1dOICAgICAgICAg
ICAgICAgPSAwLAotICAgICAgICAgICAgU1ZHX1BBSU5UVFlQRV9SR0JDT0xPUiAgICAgICAgICAg
ICAgPSAxLAotICAgICAgICAgICAgU1ZHX1BBSU5UVFlQRV9SR0JDT0xPUl9JQ0NDT0xPUiAgICAg
PSAyLAotICAgICAgICAgICAgU1ZHX1BBSU5UVFlQRV9OT05FICAgICAgICAgICAgICAgICAgPSAx
MDEsCi0gICAgICAgICAgICBTVkdfUEFJTlRUWVBFX0NVUlJFTlRDT0xPUiAgICAgICAgICA9IDEw
MiwKLSAgICAgICAgICAgIFNWR19QQUlOVFRZUEVfVVJJX05PTkUgICAgICAgICAgICAgID0gMTAz
LAotICAgICAgICAgICAgU1ZHX1BBSU5UVFlQRV9VUklfQ1VSUkVOVENPTE9SICAgICAgPSAxMDQs
Ci0gICAgICAgICAgICBTVkdfUEFJTlRUWVBFX1VSSV9SR0JDT0xPUiAgICAgICAgICA9IDEwNSwK
LSAgICAgICAgICAgIFNWR19QQUlOVFRZUEVfVVJJX1JHQkNPTE9SX0lDQ0NPTE9SID0gMTA2LAot
ICAgICAgICAgICAgU1ZHX1BBSU5UVFlQRV9VUkkgICAgICAgICAgICAgICAgICAgPSAxMDcKLSAg
ICAgICAgfTsKLQotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdQYWludD4gY3JlYXRlKCkK
LSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdQYWludCk7Ci0g
ICAgICAgIH0KLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHUGFpbnQ+IGNyZWF0ZShTVkdQ
YWludFR5cGUgdHlwZSkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBTVkdQYWludCh0eXBlKSk7Ci0gICAgICAgIH0KLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U1ZHUGFpbnQ+IGNyZWF0ZShjb25zdCBDb2xvciYgY29sb3IpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHUGFpbnQoY29sb3IpKTsKLSAgICAgICAgfQotICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdQYWludD4gY3JlYXRlKFNWR1BhaW50VHlwZSB0eXBl
LCBjb25zdCBTdHJpbmcmIHVyaSkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBTVkdQYWludCh0eXBlLCB1cmksIFN0cmluZygpLCBTdHJpbmcoKSkpOwotICAgICAg
ICB9Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1BhaW50PiBjcmVhdGUoY29uc3QgU3Ry
aW5nJiB1cmksIGNvbnN0IENvbG9yJiBjb2xvcikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTVkdQYWludCh1cmksIGNvbG9yKSk7Ci0gICAgICAgIH0KLQotICAg
ICAgICAvLyAnU1ZHUGFpbnQnIGZ1bmN0aW9ucwotICAgICAgICBTVkdQYWludFR5cGUgcGFpbnRU
eXBlKCkgY29uc3QgeyByZXR1cm4gbV9wYWludFR5cGU7IH0KLSAgICAgICAgU3RyaW5nIHVyaSgp
IGNvbnN0OwotCi0gICAgICAgIHZvaWQgc2V0VXJpKGNvbnN0IFN0cmluZyYpOwotICAgICAgICB2
b2lkIHNldFBhaW50KFNWR1BhaW50VHlwZSwgY29uc3QgU3RyaW5nJiB1cmksIGNvbnN0IFN0cmlu
ZyYgcmdiUGFpbnQsIGNvbnN0IFN0cmluZyYgaWNjUGFpbnQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAg
ICAgICAgCi0gICAgICAgIHN0YXRpYyBTVkdQYWludCogZGVmYXVsdEZpbGwoKTsKLSAgICAgICAg
c3RhdGljIFNWR1BhaW50KiBkZWZhdWx0U3Ryb2tlKCk7Ci0KLSAgICAgICAgYm9vbCBtYXRjaGVz
VGFyZ2V0VVJJKGNvbnN0IFN0cmluZyYgcmVmZXJlbmNlSWQpOwotCi0gICAgcHJpdmF0ZToKLSAg
ICAgICAgU1ZHUGFpbnQoKTsKLSAgICAgICAgU1ZHUGFpbnQoY29uc3QgU3RyaW5nJiB1cmkpOwot
ICAgICAgICBTVkdQYWludChTVkdQYWludFR5cGUpOwotICAgICAgICBTVkdQYWludChTVkdQYWlu
dFR5cGUsIGNvbnN0IFN0cmluZyYgdXJpLCBjb25zdCBTdHJpbmcmIHJnYlBhaW50LCBjb25zdCBT
dHJpbmcmIGljY1BhaW50KTsKLSAgICAgICAgU1ZHUGFpbnQoY29uc3QgQ29sb3ImIGMpOwotICAg
ICAgICBTVkdQYWludChjb25zdCBTdHJpbmcmIHVyaSwgY29uc3QgQ29sb3ImIGMpOwotCi0gICAg
ICAgIHZpcnR1YWwgYm9vbCBpc1NWR1BhaW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotCi0g
ICAgICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdDsKLQotICAgICAgICBTVkdQYWlu
dFR5cGUgbV9wYWludFR5cGU7Ci0gICAgICAgIFN0cmluZyBtX3VyaTsKK2NsYXNzIFNWR1BhaW50
IDogcHVibGljIFNWR0NvbG9yIHsKK3B1YmxpYzoKKyAgICBlbnVtIFNWR1BhaW50VHlwZSB7Cisg
ICAgICAgIFNWR19QQUlOVFRZUEVfVU5LTk9XTiA9IDAsCisgICAgICAgIFNWR19QQUlOVFRZUEVf
UkdCQ09MT1IgPSAxLAorICAgICAgICBTVkdfUEFJTlRUWVBFX1JHQkNPTE9SX0lDQ0NPTE9SID0g
MiwKKyAgICAgICAgU1ZHX1BBSU5UVFlQRV9OT05FID0gMTAxLAorICAgICAgICBTVkdfUEFJTlRU
WVBFX0NVUlJFTlRDT0xPUiA9IDEwMiwKKyAgICAgICAgU1ZHX1BBSU5UVFlQRV9VUklfTk9ORSA9
IDEwMywKKyAgICAgICAgU1ZHX1BBSU5UVFlQRV9VUklfQ1VSUkVOVENPTE9SID0gMTA0LAorICAg
ICAgICBTVkdfUEFJTlRUWVBFX1VSSV9SR0JDT0xPUiA9IDEwNSwKKyAgICAgICAgU1ZHX1BBSU5U
VFlQRV9VUklfUkdCQ09MT1JfSUNDQ09MT1IgPSAxMDYsCisgICAgICAgIFNWR19QQUlOVFRZUEVf
VVJJID0gMTA3CiAgICAgfTsKIAorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1BhaW50PiBjcmVh
dGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdQYWludCk7CisgICAg
fQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1BhaW50PiBjcmVhdGUoU1ZHUGFpbnRUeXBlIHR5
cGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1BhaW50KHR5cGUpKTsK
KyAgICB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHUGFpbnQ+IGNyZWF0ZShjb25zdCBDb2xv
ciYgY29sb3IpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1BhaW50KGNv
bG9yKSk7CisgICAgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1BhaW50PiBjcmVhdGUoU1ZH
UGFpbnRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdXJpKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBTVkdQYWludCh0eXBlLCB1cmksIFN0cmluZygpLCBTdHJpbmcoKSkpOwor
ICAgIH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdQYWludD4gY3JlYXRlKGNvbnN0IFN0cmlu
ZyYgdXJpLCBjb25zdCBDb2xvciYgY29sb3IpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFNWR1BhaW50KHVyaSwgY29sb3IpKTsKKyAgICB9CisKKyAgICAvLyAnU1ZHUGFpbnQn
IGZ1bmN0aW9ucworICAgIFNWR1BhaW50VHlwZSBwYWludFR5cGUoKSBjb25zdCB7IHJldHVybiBt
X3BhaW50VHlwZTsgfQorICAgIFN0cmluZyB1cmkoKSBjb25zdDsKKworICAgIHZvaWQgc2V0VXJp
KGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgc2V0UGFpbnQoU1ZHUGFpbnRUeXBlLCBjb25zdCBT
dHJpbmcmIHVyaSwgY29uc3QgU3RyaW5nJiByZ2JQYWludCwgY29uc3QgU3RyaW5nJiBpY2NQYWlu
dCwgRXhjZXB0aW9uQ29kZSYpOworICAgIAorICAgIHN0YXRpYyBTVkdQYWludCogZGVmYXVsdEZp
bGwoKTsKKyAgICBzdGF0aWMgU1ZHUGFpbnQqIGRlZmF1bHRTdHJva2UoKTsKKworICAgIGJvb2wg
bWF0Y2hlc1RhcmdldFVSSShjb25zdCBTdHJpbmcmIHJlZmVyZW5jZUlkKTsKKworcHJpdmF0ZToK
KyAgICBTVkdQYWludCgpOworICAgIFNWR1BhaW50KGNvbnN0IFN0cmluZyYgdXJpKTsKKyAgICBT
VkdQYWludChTVkdQYWludFR5cGUpOworICAgIFNWR1BhaW50KFNWR1BhaW50VHlwZSwgY29uc3Qg
U3RyaW5nJiB1cmksIGNvbnN0IFN0cmluZyYgcmdiUGFpbnQsIGNvbnN0IFN0cmluZyYgaWNjUGFp
bnQpOworICAgIFNWR1BhaW50KGNvbnN0IENvbG9yJiBjKTsKKyAgICBTVkdQYWludChjb25zdCBT
dHJpbmcmIHVyaSwgY29uc3QgQ29sb3ImIGMpOworCisgICAgdmlydHVhbCBib29sIGlzU1ZHUGFp
bnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKKyAgICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0
KCkgY29uc3Q7CisKKyAgICBTVkdQYWludFR5cGUgbV9wYWludFR5cGU7CisgICAgU3RyaW5nIG1f
dXJpOworfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNW
RykKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcAkocmV2aXNpb24gNzQ0NzEpCisr
KyBXZWJDb3JlL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Nyw4ICsyNyw5IEBACiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZsb2F0UG9p
bnQuaCIKLSNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSAiU1ZHUG9pbnRMaXN0LmgiCisKKyNp
bmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpJbmRleDogV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmgJKHJldmlzaW9uIDc0NDcx
KQorKysgV2ViQ29yZS9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMwLDQzICszMCw0MyBAQCB0eXBlZGVmIFZlY3RvcjxVbmljb2RlUmFuZ2U+IFVuaWNvZGVSYW5n
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIFNWR1BvaW50TGlzdDsKK2NsYXNz
IFNWR1BvaW50TGlzdDsKIAotICAgIGJvb2wgcGFyc2VOdW1iZXIoY29uc3QgVUNoYXIqJiBwdHIs
IGNvbnN0IFVDaGFyKiBlbmQsIGZsb2F0JiBudW1iZXIsIGJvb2wgc2tpcCA9IHRydWUpOwotICAg
IGJvb2wgcGFyc2VOdW1iZXJPcHRpb25hbE51bWJlcihjb25zdCBTdHJpbmcmIHMsIGZsb2F0JiBo
LCBmbG9hdCYgdik7Ci0gICAgYm9vbCBwYXJzZUFyY0ZsYWcoY29uc3QgVUNoYXIqJiBwdHIsIGNv
bnN0IFVDaGFyKiBlbmQsIGJvb2wmIGZsYWcpOwotCi0gICAgLy8gU1ZHIGFsbG93cyBzZXZlcmFs
IGRpZmZlcmVudCB3aGl0ZXNwYWNlIGNoYXJhY3RlcnM6Ci0gICAgLy8gaHR0cDovL3d3dy53My5v
cmcvVFIvU1ZHL3BhdGhzLmh0bWwjUGF0aERhdGFCTkYKLSAgICBpbmxpbmUgYm9vbCBpc1doaXRl
c3BhY2UoY29uc3QgVUNoYXImIGMpCi0gICAgewotICAgICAgICByZXR1cm4gKGMgPT0gJyAnIHx8
IGMgPT0gJ1x0JyB8fCBjID09ICdcbicgfHwgYyA9PSAnXHInKTsKLSAgICB9Ci0KLSAgICBpbmxp
bmUgYm9vbCBza2lwT3B0aW9uYWxTcGFjZXMoY29uc3QgVUNoYXIqJiBwdHIsIGNvbnN0IFVDaGFy
KiBlbmQpCi0gICAgewotICAgICAgICB3aGlsZSAocHRyIDwgZW5kICYmIGlzV2hpdGVzcGFjZSgq
cHRyKSkKK2Jvb2wgcGFyc2VOdW1iZXIoY29uc3QgVUNoYXIqJiBwdHIsIGNvbnN0IFVDaGFyKiBl
bmQsIGZsb2F0JiBudW1iZXIsIGJvb2wgc2tpcCA9IHRydWUpOworYm9vbCBwYXJzZU51bWJlck9w
dGlvbmFsTnVtYmVyKGNvbnN0IFN0cmluZyYgcywgZmxvYXQmIGgsIGZsb2F0JiB2KTsKK2Jvb2wg
cGFyc2VBcmNGbGFnKGNvbnN0IFVDaGFyKiYgcHRyLCBjb25zdCBVQ2hhciogZW5kLCBib29sJiBm
bGFnKTsKKworLy8gU1ZHIGFsbG93cyBzZXZlcmFsIGRpZmZlcmVudCB3aGl0ZXNwYWNlIGNoYXJh
Y3RlcnM6CisvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcvcGF0aHMuaHRtbCNQYXRoRGF0YUJO
RgoraW5saW5lIGJvb2wgaXNXaGl0ZXNwYWNlKGNvbnN0IFVDaGFyJiBjKQoreworICAgIHJldHVy
biBjID09ICcgJyB8fCBjID09ICdcdCcgfHwgYyA9PSAnXG4nIHx8IGMgPT0gJ1xyJzsKK30KKwor
aW5saW5lIGJvb2wgc2tpcE9wdGlvbmFsU3BhY2VzKGNvbnN0IFVDaGFyKiYgcHRyLCBjb25zdCBV
Q2hhciogZW5kKQoreworICAgIHdoaWxlIChwdHIgPCBlbmQgJiYgaXNXaGl0ZXNwYWNlKCpwdHIp
KQorICAgICAgICBwdHIrKzsKKyAgICByZXR1cm4gcHRyIDwgZW5kOworfQorCitpbmxpbmUgYm9v
bCBza2lwT3B0aW9uYWxTcGFjZXNPckRlbGltaXRlcihjb25zdCBVQ2hhciomIHB0ciwgY29uc3Qg
VUNoYXIqIGVuZCwgVUNoYXIgZGVsaW1pdGVyID0gJywnKQoreworICAgIGlmIChwdHIgPCBlbmQg
JiYgIWlzV2hpdGVzcGFjZSgqcHRyKSAmJiAqcHRyICE9IGRlbGltaXRlcikKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIGlmIChza2lwT3B0aW9uYWxTcGFjZXMocHRyLCBlbmQpKSB7CisgICAg
ICAgIGlmIChwdHIgPCBlbmQgJiYgKnB0ciA9PSBkZWxpbWl0ZXIpIHsKICAgICAgICAgICAgIHB0
cisrOwotICAgICAgICByZXR1cm4gcHRyIDwgZW5kOwotICAgIH0KLQotICAgIGlubGluZSBib29s
IHNraXBPcHRpb25hbFNwYWNlc09yRGVsaW1pdGVyKGNvbnN0IFVDaGFyKiYgcHRyLCBjb25zdCBV
Q2hhciogZW5kLCBVQ2hhciBkZWxpbWl0ZXIgPSAnLCcpCi0gICAgewotICAgICAgICBpZiAocHRy
IDwgZW5kICYmICFpc1doaXRlc3BhY2UoKnB0cikgJiYgKnB0ciAhPSBkZWxpbWl0ZXIpCi0gICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmIChza2lwT3B0aW9uYWxTcGFjZXMocHRy
LCBlbmQpKSB7Ci0gICAgICAgICAgICBpZiAocHRyIDwgZW5kICYmICpwdHIgPT0gZGVsaW1pdGVy
KSB7Ci0gICAgICAgICAgICAgICAgcHRyKys7Ci0gICAgICAgICAgICAgICAgc2tpcE9wdGlvbmFs
U3BhY2VzKHB0ciwgZW5kKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNraXBPcHRpb25h
bFNwYWNlcyhwdHIsIGVuZCk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHB0ciA8IGVuZDsK
ICAgICB9CisgICAgcmV0dXJuIHB0ciA8IGVuZDsKK30KIAotICAgIGJvb2wgcG9pbnRzTGlzdEZy
b21TVkdEYXRhKFNWR1BvaW50TGlzdCYgcG9pbnRzTGlzdCwgY29uc3QgU3RyaW5nJiBwb2ludHMp
OwotICAgIFZlY3RvcjxTdHJpbmc+IHBhcnNlRGVsaW1pdGVkU3RyaW5nKGNvbnN0IFN0cmluZyYg
aW5wdXQsIGNvbnN0IGNoYXIgc2VwZXJhdG9yKTsKLSAgICBib29sIHBhcnNlS2VybmluZ1VuaWNv
ZGVTdHJpbmcoY29uc3QgU3RyaW5nJiBpbnB1dCwgVW5pY29kZVJhbmdlcyYsIEhhc2hTZXQ8U3Ry
aW5nPiYgc3RyaW5nTGlzdCk7Ci0gICAgYm9vbCBwYXJzZUdseXBoTmFtZShjb25zdCBTdHJpbmcm
IGlucHV0LCBIYXNoU2V0PFN0cmluZz4mIHZhbHVlcyk7Citib29sIHBvaW50c0xpc3RGcm9tU1ZH
RGF0YShTVkdQb2ludExpc3QmIHBvaW50c0xpc3QsIGNvbnN0IFN0cmluZyYgcG9pbnRzKTsKK1Zl
Y3RvcjxTdHJpbmc+IHBhcnNlRGVsaW1pdGVkU3RyaW5nKGNvbnN0IFN0cmluZyYgaW5wdXQsIGNv
bnN0IGNoYXIgc2VwZXJhdG9yKTsKK2Jvb2wgcGFyc2VLZXJuaW5nVW5pY29kZVN0cmluZyhjb25z
dCBTdHJpbmcmIGlucHV0LCBVbmljb2RlUmFuZ2VzJiwgSGFzaFNldDxTdHJpbmc+JiBzdHJpbmdM
aXN0KTsKK2Jvb2wgcGFyc2VHbHlwaE5hbWUoY29uc3QgU3RyaW5nJiBpbnB1dCwgSGFzaFNldDxT
dHJpbmc+JiB2YWx1ZXMpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFdlYkNv
cmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQ
YXRoRWxlbWVudC5jcHAJKHJldmlzaW9uIDc0NDcxKQorKysgV2ViQ29yZS9zdmcvU1ZHUGF0aEVs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw4ICszOCw4IEBACiAjaW5jbHVkZSAiU1ZH
UGF0aFNlZ0xpbmV0b0hvcml6b250YWwuaCIKICNpbmNsdWRlICJTVkdQYXRoU2VnTGluZXRvVmVy
dGljYWwuaCIKICNpbmNsdWRlICJTVkdQYXRoU2VnTGlzdC5oIgotI2luY2x1ZGUgIlNWR1BhdGhT
ZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmgiCiAjaW5jbHVkZSAiU1ZHUGF0aFNlZ0xpc3RCdWlsZGVy
LmgiCisjaW5jbHVkZSAiU1ZHUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCIKICNpbmNsdWRl
ICJTVkdQYXRoU2VnTW92ZXRvLmgiCiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudC5oIgogCkluZGV4
OiBXZWJDb3JlL3N2Zy9TVkdQYXRoUGFyc2VyRmFjdG9yeS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvc3ZnL1NWR1BhdGhQYXJzZXJGYWN0b3J5LmgJKHJldmlzaW9uIDc0NDcxKQorKysgV2ViQ29y
ZS9zdmcvU1ZHUGF0aFBhcnNlckZhY3RvcnkuaAkod29ya2luZyBjb3B5KQpAQCAtMjMsOSArMjMs
MTAgQEAKICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIlBhdGguaCIKICNpbmNsdWRlICJQbGF0
Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIlNWR1BhdGhCeXRlU3RyZWFtLmgiCiAjaW5jbHVkZSAi
U1ZHUGF0aENvbnN1bWVyLmgiCiAjaW5jbHVkZSAiU1ZHUGF0aFNlZ0xpc3QuaCIKLSNpbmNsdWRl
ICJTVkdQYXRoQnl0ZVN0cmVhbS5oIgorCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmgJKHJldmlzaW9uIDc0NDcxKQor
KysgV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjEsMTIg
KzIxLDEyIEBACiAjZGVmaW5lIFNWR1BhdGhTZWdMaXN0X2gKIAogI2lmIEVOQUJMRShTVkcpCi0j
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgot
CiAjaW5jbHVkZSAiU1ZHUGF0aFNlZy5oIgogI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgi
CiAKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHRWxlbWVudDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>