<?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>202410</bug_id>
          
          <creation_ts>2019-10-01 10:18:14 -0700</creation_ts>
          <short_desc>Unify more WebKitLegacy sources</short_desc>
          <delta_ts>2019-10-01 10:37:18 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1575581</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-10-01 10:18:14 -0700</bug_when>
    <thetext>Unify more WebKitLegacy sources</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575582</commentid>
    <comment_count>1</comment_count>
      <attachid>379912</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-10-01 10:19:01 -0700</bug_when>
    <thetext>Created attachment 379912
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575593</commentid>
    <comment_count>2</comment_count>
      <attachid>379912</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-10-01 10:35:36 -0700</bug_when>
    <thetext>Comment on attachment 379912
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=379912&amp;action=review

rs=me

&gt; Source/WebKitLegacy/scripts/generate-unified-sources.sh:18
&gt; -UnifiedSourceMmFileCount=20
&gt; +UnifiedSourceMmFileCount=21

If you hit the limit, you should probably add more than one? (to avoid someone else having to do it soon?) but maybe in WKL that doesn&apos;t apply</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575595</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-10-01 10:36:52 -0700</bug_when>
    <thetext>http://trac.webkit.org/r250565</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575596</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-01 10:37:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/55881495&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379912</attachid>
            <date>2019-10-01 10:19:01 -0700</date>
            <delta_ts>2019-10-01 10:35:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202410-20191001101900.patch</filename>
            <type>text/plain</type>
            <size>38405</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTA1NjIpCisrKyBTb3VyY2UvV2Vi
S2l0TGVnYWN5L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE5
LTEwLTAxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgVW5pZnkgbW9yZSBXZWJLaXRMZWdhY3kgc291cmNlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNDEwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAg
ICAqIFVuaWZpZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIFdlYktpdExl
Z2FjeS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHNjcmlwdHMvZ2VuZXJh
dGUtdW5pZmllZC1zb3VyY2VzLnNoOgorCiAyMDE5LTA5LTMwICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVzdXJyZWN0IE1hYyBDTWFrZSBi
dWlsZApJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9Tb3VyY2VzQ29jb2EudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvU291cmNlc0NvY29hLnR4dAkocmV2aXNpb24gMjUw
NTQ5KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9Tb3VyY2VzQ29jb2EudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC01OCw5ICs1OCw5IEBAIG1hYy9ET00vRE9NRXZlbnRzLm1tCiBtYWMvRE9NL0RPTUZp
bGUubW0KIG1hYy9ET00vRE9NRmlsZUxpc3QubW0KIG1hYy9ET00vRE9NSFRNTC5tbQotbWFjL0RP
TS9ET01IVE1MQW5jaG9yRWxlbWVudC5tbSBAbm8tdW5pZnkKK21hYy9ET00vRE9NSFRNTEFuY2hv
ckVsZW1lbnQubW0KIG1hYy9ET00vRE9NSFRNTEFwcGxldEVsZW1lbnQubW0KLW1hYy9ET00vRE9N
SFRNTEFyZWFFbGVtZW50Lm1tIEBuby11bmlmeQorbWFjL0RPTS9ET01IVE1MQXJlYUVsZW1lbnQu
bW0KIG1hYy9ET00vRE9NSFRNTEJSRWxlbWVudC5tbQogbWFjL0RPTS9ET01IVE1MQmFzZUVsZW1l
bnQubW0KIG1hYy9ET00vRE9NSFRNTEJhc2VGb250RWxlbWVudC5tbQpAQCAtMTE4LDcgKzExOCw3
IEBAIG1hYy9ET00vRE9NSFRNTFRleHRBcmVhRWxlbWVudC5tbQogbWFjL0RPTS9ET01IVE1MVGl0
bGVFbGVtZW50Lm1tCiBtYWMvRE9NL0RPTUhUTUxVTGlzdEVsZW1lbnQubW0KIG1hYy9ET00vRE9N
SFRNTFZpZGVvRWxlbWVudC5tbQotbWFjL0RPTS9ET01JbXBsZW1lbnRhdGlvbi5tbSBAbm8tdW5p
ZnkKK21hYy9ET00vRE9NSW1wbGVtZW50YXRpb24ubW0KIG1hYy9ET00vRE9NSW50ZXJuYWwubW0K
IG1hYy9ET00vRE9NS2V5Ym9hcmRFdmVudC5tbQogbWFjL0RPTS9ET01NZWRpYUVycm9yLm1tCkBA
IC0xNDQsNyArMTQ0LDcgQEAgbWFjL0RPTS9ET01UaW1lUmFuZ2VzLm1tCiBtYWMvRE9NL0RPTVRv
a2VuTGlzdC5tbQogbWFjL0RPTS9ET01UcmVlV2Fsa2VyLm1tCiBtYWMvRE9NL0RPTVVJRXZlbnQu
bW0KLW1hYy9ET00vRE9NVUlLaXRFeHRlbnNpb25zLm1tIEBuby11bmlmeQorbWFjL0RPTS9ET01V
SUtpdEV4dGVuc2lvbnMubW0KIG1hYy9ET00vRE9NVXRpbGl0eS5tbQogbWFjL0RPTS9ET01XaGVl
bEV2ZW50Lm1tCiBtYWMvRE9NL0RPTVhQYXRoLm1tCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5
L1VuaWZpZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXRMZWdhY3kvVW5pZmllZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QJKHJldmlzaW9uIDI1
MDU0OSkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvVW5pZmllZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QJKHdvcmtpbmcgY29weSkKQEAgLTE0LDYgKzE0LDcgQEAgJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYgogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdExlZ2FjeS91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTItbW0ubW0KICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXRMZWdhY3kvdW5pZmllZC1z
b3VyY2VzL1VuaWZpZWRTb3VyY2UyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdExlZ2FjeS91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTIwLW1tLm1t
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0TGVnYWN5L3VuaWZp
ZWQtc291cmNlcy9VbmlmaWVkU291cmNlMjEtbW0ubW0KICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXRMZWdhY3kvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2Uz
LW1tLm1tCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0TGVnYWN5
L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXRMZWdhY3kvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3Vy
Y2U0LW1tLm1tCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvV2Vi
S2l0TGVnYWN5Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1MDU0OSkKKysr
IFNvdXJjZS9XZWJLaXRMZWdhY3kvV2ViS2l0TGVnYWN5Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHdvcmtpbmcgY29weSkKQEAgLTE3Miw3ICsxNzIsNiBAQAogCQk1OThBREE0NjEyMDIyNzUw
MDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTk4QURBNDUxMjAyMjc1MDAwQUJBRTRF
IC8qIFdlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1QzQwQ0QyMTIyRDhGOUMwMDBFOURBRDUgLyog
UG9wdXBNZW51TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0MwMUNCODIxNzM0MzVDOTAwQzVEODA3IC8qIFBvcHVwTWVudU1hYy5tbSAqLzsgfTsK
IAkJNUM0MENEMjIyMkQ4RjlDMzAwRTlEQUQ1IC8qIFNlYXJjaFBvcHVwTWVudU1hYy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMDFDQjg0MTczNDM1
QzkwMEM1RDgwNyAvKiBTZWFyY2hQb3B1cE1lbnVNYWMubW0gKi87IH07Ci0JCTVDNUQwRjc3MjJE
OTYyOUEwMEU4NDFEQiAvKiBET01JbXBsZW1lbnRhdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDQzNTQ1MUQ1N0FCRUUwMEFCODVFQSAvKiBE
T01JbXBsZW1lbnRhdGlvbi5tbSAqLzsgfTsKIAkJNUM3RENDNDkyMkQ5NjMyRDAwQ0ZFQjU5IC8q
IFVuaWZpZWRTb3VyY2U0LW1tLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNUM3RENDNDcyMkQ5NjMxMTAwQ0ZFQjU5IC8qIFVuaWZpZWRTb3VyY2U0LW1t
Lm1tICovOyB9OwogCQk1QzdEQ0M0RjIyRDk2M0JEMDBDRkVCNTkgLyogVW5pZmllZFNvdXJjZTMt
bW0ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzdE
Q0M0RDIyRDk2MzlCMDBDRkVCNTkgLyogVW5pZmllZFNvdXJjZTMtbW0ubW0gKi87IH07CiAJCTVD
N0RDQzUwMjJEOTY0M0EwMENGRUI1OSAvKiBVbmlmaWVkU291cmNlOC1tbS5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDN0U3ODYzMjJEOTVGRTIwMDA2
QTIzMCAvKiBVbmlmaWVkU291cmNlOC1tbS5tbSAqLzsgfTsKQEAgLTE5NSw4ICsxOTQsNiBAQAog
CQk1QzlEOTI1QjIyRDdFOEFEMDA4RTkyNjYgLyogU291cmNlc0NvY29hLnR4dCBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM5RDkyNTkyMkQ3RThBRDAw
OEU5MjY2IC8qIFNvdXJjZXNDb2NvYS50eHQgKi87IH07CiAJCTVDOUVGMkY1MjFGMDYxQkUwMDNC
REM1NiAvKiBQYWdlU3RvcmFnZVNlc3Npb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM5RUYyRjQyMUYwNjFCRTAwM0JEQzU2IC8qIFBh
Z2VTdG9yYWdlU2Vzc2lvblByb3ZpZGVyLmggKi87IH07CiAJCTVDQTQ2RTc4MjFGMTQ1MUQwMENF
ODZCNCAvKiBOZXR3b3JrU3RvcmFnZVNlc3Npb25NYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDQTQ2RTc2MjFGMTQ1MUQwMENFODZCNCAvKiBOZXR3
b3JrU3RvcmFnZVNlc3Npb25NYXAuaCAqLzsgfTsKLQkJNUNBNEIzQkQyMkRDRjI2RTAwNjc2NDE1
IC8qIERPTUhUTUxBcmVhRWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzRDQzNTY4MUQ1N0FCRUUwMEFCODVFQSAvKiBET01IVE1MQXJlYUVs
ZW1lbnQubW0gKi87IH07Ci0JCTVDQTRCM0JFMjJEQ0YyNzYwMDY3NjQxNSAvKiBET01IVE1MQW5j
aG9yRWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzRDQzNTY0MUQ1N0FCRUUwMEFCODVFQSAvKiBET01IVE1MQW5jaG9yRWxlbWVudC5tbSAq
LzsgfTsKIAkJNUNDMTlGQ0MyMkQ3RjI4RDAwQkJDOTUyIC8qIFVuaWZpZWRTb3VyY2UxLW1tLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNDMTlGQjgy
MkQ3RjIzQjAwQkJDOTUyIC8qIFVuaWZpZWRTb3VyY2UxLW1tLm1tICovOyB9OwogCQk1Q0MxOUZD
RDIyRDdGMjhEMDBCQkM5NTIgLyogVW5pZmllZFNvdXJjZTEuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNDMTlGQkIyMkQ3RjIzQjAwQkJDOTUyIC8q
IFVuaWZpZWRTb3VyY2UxLmNwcCAqLzsgfTsKIAkJNUNDMTlGQ0UyMkQ3RjI4RDAwQkJDOTUyIC8q
IFVuaWZpZWRTb3VyY2UyLW1tLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNUNDMTlGQkUyMkQ3RjIzQzAwQkJDOTUyIC8qIFVuaWZpZWRTb3VyY2UyLW1t
Lm1tICovOyB9OwpAQCAtMjA1LDYgKzIwMiw3IEBACiAJCTVDQzE5RkQxMjJEN0YyOEQwMEJCQzk1
MiAvKiBVbmlmaWVkU291cmNlNS1tbS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDVDQzE5RkJDMjJEN0YyM0IwMEJCQzk1MiAvKiBVbmlmaWVkU291cmNl
NS1tbS5tbSAqLzsgfTsKIAkJNUNDMTlGRDIyMkQ3RjI4RDAwQkJDOTUyIC8qIFVuaWZpZWRTb3Vy
Y2U1LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVD
QzE5RkI5MjJEN0YyM0IwMEJCQzk1MiAvKiBVbmlmaWVkU291cmNlNS5jcHAgKi87IH07CiAJCTVD
RTQ0RjRBMjA2RDcwRUEwMDNFRkQwMSAvKiBQaW5nSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0U0NEY0OTIwNkQ3MEU5MDAzRUZEMDEgLyog
UGluZ0hhbmRsZS5oICovOyB9OworCQk1Q0VGQkEyRjIzNDNCRTY2MDA5QzQxRjggLyogVW5pZmll
ZFNvdXJjZTIxLW1tLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNUNFRkJBMkUyMzQzQkU2NjAwOUM0MUY4IC8qIFVuaWZpZWRTb3VyY2UyMS1tbS5tbSAq
LzsgfTsKIAkJNUQ3QkY4MTQwQzJBMUQ5MDAwOENFMDZEIC8qIFdlYkluc3BlY3Rvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQ3QkY4MTIwQzJBMUQ5
MDAwOENFMDZEIC8qIFdlYkluc3BlY3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTVERTgzQTdBMEQwRjdGOTQwMENBRDEyQSAvKiBXZWJKYXZh
U2NyaXB0VGV4dElucHV0UGFuZWwueGliIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1REU4M0E3NDBEMEY3Rjk0MDBDQUQxMkEgLyogV2ViSmF2YVNjcmlw
dFRleHRJbnB1dFBhbmVsLnhpYiAqLzsgfTsKIAkJNjU0ODhEQTEwODRGQkNDQjAwODMxQUQwIC8q
IFdlYk5TRGljdGlvbmFyeUV4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNjU0ODhEOUYwODRGQkNDQjAwODMxQUQwIC8qIFdlYk5TRGljdGlvbmFy
eUV4dHJhcy5oICovOyB9OwpAQCAtOTM1LDggKzkzMyw4IEBACiAJCTVDN0U3ODY3MjJEOTVGRTIw
MDA2QTIzMCAvKiBVbmlmaWVkU291cmNlNy1tbS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9ICJVbmlmaWVkU291cmNlNy1tbS5tbSI7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTVDN0U3ODY4MjJEOTVGRTIwMDA2QTIzMCAvKiBVbmlmaWVkU291cmNlMTIt
bW0ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSAiVW5pZmllZFNv
dXJjZTEyLW1tLm1tIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM3RTc4NjkyMkQ5
NUZFMjAwMDZBMjMwIC8qIFVuaWZpZWRTb3VyY2UxMS1tbS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9ICJVbmlmaWVkU291cmNlMTEtbW0ubW0iOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk1Qzk3RUY2MTIzNDJDNTM0MDA2MDIwRDQgLyogVW5pZmllZFNv
dXJjZTE5LW1tLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gIlVu
aWZpZWRTb3VyY2UxOS1tbS5tbSI7IHBhdGggPSAiVW5pZmllZFNvdXJjZTE5LW1tLm1tIjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUM5N0VGNjIyMzQyQzUzNDAwNjAyMEQ0IC8qIFVu
aWZpZWRTb3VyY2UyMC1tbS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFt
ZSA9ICJVbmlmaWVkU291cmNlMjAtbW0ubW0iOyBwYXRoID0gIlVuaWZpZWRTb3VyY2UyMC1tbS5t
bSI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDOTdFRjYxMjM0MkM1MzQwMDYwMjBE
NCAvKiBVbmlmaWVkU291cmNlMTktbW0ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSAiVW5pZmllZFNvdXJjZTE5LW1tLm1tIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNUM5N0VGNjIyMzQyQzUzNDAwNjAyMEQ0IC8qIFVuaWZpZWRTb3VyY2UyMC1tbS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9ICJVbmlmaWVkU291cmNl
MjAtbW0ubW0iOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzlEOTI1ODIyRDdFOEFE
MDA4RTkyNjYgLyogU291cmNlcy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU291cmNlcy50
eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDOUQ5MjU5MjJEN0U4QUQwMDhFOTI2
NiAvKiBTb3VyY2VzQ29jb2EudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNvdXJjZXNDb2Nv
YS50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDOUVGMkY0MjFGMDYxQkUwMDNC
REM1NiAvKiBQYWdlU3RvcmFnZVNlc3Npb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBQYWdlU3RvcmFnZVNlc3Npb25Qcm92aWRlci5oOyBwYXRoID0gV2ViQ29y
ZVN1cHBvcnQvUGFnZVN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9IFNPVVJD
RV9ST09UOyB9OwpAQCAtOTUwLDYgKzk0OCw3IEBACiAJCTVDQzE5RkJEMjJEN0YyM0IwMEJCQzk1
MiAvKiBVbmlmaWVkU291cmNlMy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVbmlmaWVkU291cmNl
My5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQzE5RkJFMjJEN0YyM0MwMEJC
Qzk1MiAvKiBVbmlmaWVkU291cmNlMi1tbS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9ICJVbmlm
aWVkU291cmNlMi1tbS5tbSI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDRTQ0RjQ5
MjA2RDcwRTkwMDNFRkQwMSAvKiBQaW5nSGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFBpbmdIYW5kbGUuaDsgcGF0aCA9IFdlYkNvcmVTdXBwb3J0L1BpbmdIYW5kbGUu
aDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQk1Q0VGQkEyRTIzNDNCRTY2MDA5QzQx
RjggLyogVW5pZmllZFNvdXJjZTIxLW1tLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gIlVuaWZpZWRTb3VyY2UyMS1tbS5tbSI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTVEN0JGODEyMEMyQTFEOTAwMDhDRTA2RCAvKiBXZWJJbnNwZWN0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkluc3BlY3Rvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1RDdCRjgxMzBDMkExRDkwMDA4Q0UwNkQgLyogV2ViSW5zcGVj
dG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkluc3Bl
Y3Rvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNURFODNBNzUwRDBGN0Y5NDAw
Q0FEMTJBIC8qIGVuICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gZmlsZS54aWI7IG5hbWUgPSBlbjsgcGF0aCA9IGVuLmxwcm9qL1dlYkphdmFTY3JpcHRU
ZXh0SW5wdXRQYW5lbC54aWI7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKQEAgLTE5MjEs
NiArMTkyMCw3IEBACiAJCQkJNUM3RTc4NUUyMkQ5NUZFMTAwMDZBMjMwIC8qIFVuaWZpZWRTb3Vy
Y2UxOC1tbS5tbSAqLywKIAkJCQk1Qzk3RUY2MTIzNDJDNTM0MDA2MDIwRDQgLyogVW5pZmllZFNv
dXJjZTE5LW1tLm1tICovLAogCQkJCTVDOTdFRjYyMjM0MkM1MzQwMDYwMjBENCAvKiBVbmlmaWVk
U291cmNlMjAtbW0ubW0gKi8sCisJCQkJNUNFRkJBMkUyMzQzQkU2NjAwOUM0MUY4IC8qIFVuaWZp
ZWRTb3VyY2UyMS1tbS5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0gInVuaWZpZWQtc291cmNlcyI7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzM5OSw5ICszMzk5LDYgQEAKIAkJCQkx
QTkxMTlGNjFEQjA0NzBBMDA4N0QxRkQgLyogQmFja0ZvcndhcmRMaXN0Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUE2MDUxOTExNzUwMkE1RDAwQkM2MkY1IC8qIEJpbmFyeVByb3BlcnR5TGlzdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCODI5NThENDEzMjcwN0QwMDAwRDBFNzkgLyogQ29ycmVj
dGlvblBhbmVsLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNUNBNEIzQkUyMkRDRjI3NjAwNjc2NDE1
IC8qIERPTUhUTUxBbmNob3JFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNUNBNEIzQkQy
MkRDRjI2RTAwNjc2NDE1IC8qIERPTUhUTUxBcmVhRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAot
CQkJCTVDNUQwRjc3MjJEOTYyOUEwMEU4NDFEQiAvKiBET01JbXBsZW1lbnRhdGlvbi5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTVDOUE0RTUzMjJERTQ2MjcwMDdEQjM1MyAvKiBET01VSUtpdEV4dGVu
c2lvbnMubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTYwNTE5MzE3NTAyQTVEMDBCQzYyRjUgLyog
SGlzdG9yeVByb3BlcnR5TGlzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBOERFRDUxMEVFODhC
OEEwMEYyNTAyMiAvKiBIb3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbS5tbSBpbiBTb3VyY2VzICov
LApAQCAtMzQ0Niw2ICszNDQzLDcgQEAKIAkJCQk1QzdFNzg2QjIyRDk1RkUyMDAwNkEyMzAgLyog
VW5pZmllZFNvdXJjZTE4LW1tLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM5N0VGNjMyMzQyQzUz
NDAwNjAyMEQ0IC8qIFVuaWZpZWRTb3VyY2UxOS1tbS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVD
OTdFRjY0MjM0MkM1MzQwMDYwMjBENCAvKiBVbmlmaWVkU291cmNlMjAtbW0ubW0gaW4gU291cmNl
cyAqLywKKwkJCQk1Q0VGQkEyRjIzNDNCRTY2MDA5QzQxRjggLyogVW5pZmllZFNvdXJjZTIxLW1t
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0VEQTEyREIxNTJDQkU2ODAwRDlFMDhEIC8qIFdlYkFs
dGVybmF0aXZlVGV4dENsaWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzOTgxMTFEMDgyNEJG
MDEwMDhERjAzOCAvKiBXZWJBcmNoaXZlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5ODEwQ0Yw
ODI0QkYwMTAwOERGMDM4IC8qIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwubSBpbiBTb3VyY2VzICov
LApJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMjUwNTU2KQorKysg
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsNzkgQEAKKzIwMTktMTAtMDEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KKworICAgICAgICBVbmlmeSBtb3JlIFdlYktpdExlZ2FjeSBzb3VyY2VzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI0MTAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIERPTS9ET01IVE1M
Lm1tOgorICAgICAgICAoLVtET01IVE1MRWxlbWVudCBzY3JvbGxYT2Zmc2V0XSk6CisgICAgICAg
ICgtW0RPTUhUTUxFbGVtZW50IHNjcm9sbFlPZmZzZXRdKToKKyAgICAgICAgKC1bRE9NSFRNTEVs
ZW1lbnQgc2V0U2Nyb2xsWE9mZnNldDpzY3JvbGxZT2Zmc2V0OmFkanVzdEZvcklPU0NhcmV0Ol0p
OgorICAgICAgICAoLVtET01IVE1MRWxlbWVudCBhYnNvbHV0ZVBvc2l0aW9uOjo6Ol0pOgorICAg
ICAgICAoLVtET01IVE1MSW5wdXRFbGVtZW50IHNldFZhbHVlV2l0aENoYW5nZUV2ZW50Ol0pOgor
ICAgICAgICAoLVtET01IVE1MSW5wdXRFbGVtZW50IHNldFZhbHVlQXNOdW1iZXJXaXRoQ2hhbmdl
RXZlbnQ6XSk6CisgICAgICAgICogRE9NL0RPTUhUTUxUZXh0QXJlYUVsZW1lbnQubW06CisgICAg
ICAgICh1bndyYXApOgorICAgICAgICAoY29yZSk6CisgICAgICAgIChraXQpOgorICAgICAgICAo
LVtET01IVE1MVGV4dEFyZWFFbGVtZW50IGF1dG9mb2N1c10pOgorICAgICAgICAoLVtET01IVE1M
VGV4dEFyZWFFbGVtZW50IHNldEF1dG9mb2N1czpdKToKKyAgICAgICAgKC1bRE9NSFRNTFRleHRB
cmVhRWxlbWVudCBkaXJOYW1lXSk6CisgICAgICAgICgtW0RPTUhUTUxUZXh0QXJlYUVsZW1lbnQg
c2V0RGlyTmFtZTpdKToKKyAgICAgICAgKC1bRE9NSFRNTFRleHRBcmVhRWxlbWVudCBkaXNhYmxl
ZF0pOgorICAgICAgICAoLVtET01IVE1MVGV4dEFyZWFFbGVtZW50IHNldERpc2FibGVkOl0pOgor
ICAgICAgICAoLVtET01IVE1MVGV4dEFyZWFFbGVtZW50IGZvcm1dKToKKyAgICAgICAgKC1bRE9N
SFRNTFRleHRBcmVhRWxlbWVudCBtYXhMZW5ndGhdKToKKyAgICAgICAgKC1bRE9NSFRNTFRleHRB
cmVhRWxlbWVudCBzZXRNYXhMZW5ndGg6XSk6CisgICAgICAgICgtW0RPTUhUTUxUZXh0QXJlYUVs
ZW1lbnQgbmFtZV0pOgorICAgICAgICAoLVtET01IVE1MVGV4dEFyZWFFbGVtZW50IHNldE5hbWU6
XSk6CisgICAgICAgICgtW0RPTUhUTUxUZXh0QXJlYUVsZW1lbnQgcGxhY2Vob2xkZXJdKToKKyAg
ICAgICAgKC1bRE9NSFRNTFRleHRBcmVhRWxlbWVudCBzZXRQbGFjZWhvbGRlcjpdKToKKyAgICAg
ICAgKC1bRE9NSFRNTFRleHRBcmVhRWxlbWVudCByZWFkT25seV0pOgorICAgICAgICAoLVtET01I
VE1MVGV4dEFyZWFFbGVtZW50IHNldFJlYWRPbmx5Ol0pOgorICAgICAgICAoLVtET01IVE1MVGV4
dEFyZWFFbGVtZW50IHJlcXVpcmVkXSk6CisgICAgICAgICgtW0RPTUhUTUxUZXh0QXJlYUVsZW1l
bnQgc2V0UmVxdWlyZWQ6XSk6CisgICAgICAgICgtW0RPTUhUTUxUZXh0QXJlYUVsZW1lbnQgcm93
c10pOgorICAgICAgICAoLVtET01IVE1MVGV4dEFyZWFFbGVtZW50IHNldFJvd3M6XSk6CisgICAg
ICAgICgtW0RPTUhUTUxUZXh0QXJlYUVsZW1lbnQgY29sc10pOgorICAgICAgICAoLVtET01IVE1M
VGV4dEFyZWFFbGVtZW50IHNldENvbHM6XSk6CisgICAgICAgICgtW0RPTUhUTUxUZXh0QXJlYUVs
ZW1lbnQgd3JhcF0pOgorICAgICAgICAoLVtET01IVE1MVGV4dEFyZWFFbGVtZW50IHNldFdyYXA6
XSk6CisgICAgICAgICgtW0RPTUhUTUxUZXh0QXJlYUVsZW1lbnQgdHlwZV0pOgorICAgICAgICAo
LVtET01IVE1MVGV4dEFyZWFFbGVtZW50IGRlZmF1bHRWYWx1ZV0pOgorICAgICAgICAoLVtET01I
VE1MVGV4dEFyZWFFbGVtZW50IHNldERlZmF1bHRWYWx1ZTpdKToKKyAgICAgICAgKC1bRE9NSFRN
TFRleHRBcmVhRWxlbWVudCB2YWx1ZV0pOgorICAgICAgICAoLVtET01IVE1MVGV4dEFyZWFFbGVt
ZW50IHNldFZhbHVlOl0pOgorICAgICAgICAoLVtET01IVE1MVGV4dEFyZWFFbGVtZW50IHRleHRM
ZW5ndGhdKToKKyAgICAgICAgKC1bRE9NSFRNTFRleHRBcmVhRWxlbWVudCB3aWxsVmFsaWRhdGVd
KToKKyAgICAgICAgKC1bRE9NSFRNTFRleHRBcmVhRWxlbWVudCBsYWJlbHNdKToKKyAgICAgICAg
KC1bRE9NSFRNTFRleHRBcmVhRWxlbWVudCBzZWxlY3Rpb25TdGFydF0pOgorICAgICAgICAoLVtE
T01IVE1MVGV4dEFyZWFFbGVtZW50IHNldFNlbGVjdGlvblN0YXJ0Ol0pOgorICAgICAgICAoLVtE
T01IVE1MVGV4dEFyZWFFbGVtZW50IHNlbGVjdGlvbkVuZF0pOgorICAgICAgICAoLVtET01IVE1M
VGV4dEFyZWFFbGVtZW50IHNldFNlbGVjdGlvbkVuZDpdKToKKyAgICAgICAgKC1bRE9NSFRNTFRl
eHRBcmVhRWxlbWVudCBzZWxlY3Rpb25EaXJlY3Rpb25dKToKKyAgICAgICAgKC1bRE9NSFRNTFRl
eHRBcmVhRWxlbWVudCBzZXRTZWxlY3Rpb25EaXJlY3Rpb246XSk6CisgICAgICAgICgtW0RPTUhU
TUxUZXh0QXJlYUVsZW1lbnQgYWNjZXNzS2V5XSk6CisgICAgICAgICgtW0RPTUhUTUxUZXh0QXJl
YUVsZW1lbnQgc2V0QWNjZXNzS2V5Ol0pOgorICAgICAgICAoLVtET01IVE1MVGV4dEFyZWFFbGVt
ZW50IGF1dG9jb21wbGV0ZV0pOgorICAgICAgICAoLVtET01IVE1MVGV4dEFyZWFFbGVtZW50IHNl
dEF1dG9jb21wbGV0ZTpdKToKKyAgICAgICAgKC1bRE9NSFRNTFRleHRBcmVhRWxlbWVudCBzZWxl
Y3RdKToKKyAgICAgICAgKC1bRE9NSFRNTFRleHRBcmVhRWxlbWVudCBzZXRSYW5nZVRleHQ6XSk6
CisgICAgICAgICgtW0RPTUhUTUxUZXh0QXJlYUVsZW1lbnQgc2V0UmFuZ2VUZXh0OnN0YXJ0OmVu
ZDpzZWxlY3Rpb25Nb2RlOl0pOgorICAgICAgICAoLVtET01IVE1MVGV4dEFyZWFFbGVtZW50IHNl
dFNlbGVjdGlvblJhbmdlOmVuZDpdKToKKyAgICAgICAgKiBET00vRE9NVUlLaXRFeHRlbnNpb25z
Lm1tOgorICAgICAgICAoLVtET01SYW5nZSBtb3ZlOmluRGlyZWN0aW9uOl0pOgorICAgICAgICAo
LVtET01SYW5nZSBleHRlbmQ6aW5EaXJlY3Rpb246XSk6CisgICAgICAgICgtW0RPTU5vZGUgYm9y
ZGVyUmFkaWldKToKKyAgICAgICAgKC1bRE9NTm9kZSBpc1NlbGVjdGFibGVCbG9ja10pOgorICAg
ICAgICAoLVtET01Ob2RlIGZpbmRFeHBsb2RlZFRleHROb2RlQXRQb2ludDpdKToKKyAgICAgICAg
KC1bRE9NSFRNTEVsZW1lbnQgc3RydWN0dXJhbENvbXBsZXhpdHlDb250cmlidXRpb25dKToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgorICAgICAgICAoZGF0YVNv
dXJjZSk6CisgICAgICAgICogV2ViVmlldy9XZWJEYXRhU291cmNlLm1tOgorICAgICAgICAoYWRk
VHlwZXNGcm9tQ2xhc3MpOgorCiAyMDE5LTEwLTAxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IGludGVybmFsIGJ1aWxkIGFmdGVyIHIy
NTA1NDkKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01IVE1MLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01IVE1MLm1tCShyZXZpc2lv
biAyNTA1MjIpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSFRNTC5tbQkod29y
a2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNiBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotCiAj
aW1wb3J0ICJET01Eb2N1bWVudEZyYWdtZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTUV4dGVu
c2lvbnMuaCIKICNpbXBvcnQgIkRPTUhUTUxDb2xsZWN0aW9uSW50ZXJuYWwuaCIKQEAgLTYzLDM3
ICs2MiwzNSBAQAogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAotdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7Ci0KIEBpbXBsZW1lbnRhdGlvbiBET01IVE1MRWxlbWVudCAoRE9NSFRNTEVsZW1l
bnRFeHRlbnNpb25zKQogCiAtIChpbnQpc2Nyb2xsWE9mZnNldAogewotICAgIFJlbmRlck9iamVj
dCAqcmVuZGVyZXIgPSBjb3JlKHNlbGYpLT5yZW5kZXJlcigpOworICAgIGF1dG8qIHJlbmRlcmVy
ID0gY29yZShzZWxmKS0+cmVuZGVyZXIoKTsKICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICBy
ZXR1cm4gMDsKIAotICAgIGlmICghaXM8UmVuZGVyQmxvY2tGbG93PigqcmVuZGVyZXIpKQorICAg
IGlmICghaXM8V2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93PigqcmVuZGVyZXIpKQogICAgICAgICBy
ZW5kZXJlciA9IHJlbmRlcmVyLT5jb250YWluaW5nQmxvY2soKTsKIAotICAgIGlmICghaXM8UmVu
ZGVyQm94PigqcmVuZGVyZXIpIHx8ICFyZW5kZXJlci0+aGFzT3ZlcmZsb3dDbGlwKCkpCisgICAg
aWYgKCFpczxXZWJDb3JlOjpSZW5kZXJCb3g+KCpyZW5kZXJlcikgfHwgIXJlbmRlcmVyLT5oYXNP
dmVyZmxvd0NsaXAoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gZG93bmNhc3Q8
UmVuZGVyQm94PigqcmVuZGVyZXIpLmxheWVyKCktPnNjcm9sbE9mZnNldCgpLngoKTsKKyAgICBy
ZXR1cm4gZG93bmNhc3Q8V2ViQ29yZTo6UmVuZGVyQm94PigqcmVuZGVyZXIpLmxheWVyKCktPnNj
cm9sbE9mZnNldCgpLngoKTsKIH0KIAogLSAoaW50KXNjcm9sbFlPZmZzZXQKIHsKLSAgICBSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyID0gY29yZShzZWxmKS0+cmVuZGVyZXIoKTsKKyAgICBhdXRvKiBy
ZW5kZXJlciA9IGNvcmUoc2VsZiktPnJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJlcikKICAg
ICAgICAgcmV0dXJuIDA7CiAKLSAgICBpZiAoIWlzPFJlbmRlckJsb2NrRmxvdz4oKnJlbmRlcmVy
KSkKKyAgICBpZiAoIWlzPFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdz4oKnJlbmRlcmVyKSkKICAg
ICAgICAgcmVuZGVyZXIgPSByZW5kZXJlci0+Y29udGFpbmluZ0Jsb2NrKCk7Ci0gICAgaWYgKCFp
czxSZW5kZXJCb3g+KCpyZW5kZXJlcikgfHwgIXJlbmRlcmVyLT5oYXNPdmVyZmxvd0NsaXAoKSkK
KyAgICBpZiAoIWlzPFdlYkNvcmU6OlJlbmRlckJveD4oKnJlbmRlcmVyKSB8fCAhcmVuZGVyZXIt
Pmhhc092ZXJmbG93Q2xpcCgpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBkb3du
Y2FzdDxSZW5kZXJCb3g+KCpyZW5kZXJlcikubGF5ZXIoKS0+c2Nyb2xsT2Zmc2V0KCkueSgpOwor
ICAgIHJldHVybiBkb3duY2FzdDxXZWJDb3JlOjpSZW5kZXJCb3g+KCpyZW5kZXJlcikubGF5ZXIo
KS0+c2Nyb2xsT2Zmc2V0KCkueSgpOwogfQogCiAtICh2b2lkKXNldFNjcm9sbFhPZmZzZXQ6KGlu
dCl4IHNjcm9sbFlPZmZzZXQ6KGludCl5CkBAIC0xMDMsMzUgKzEwMCwzNSBAQCAtICh2b2lkKXNl
dFNjcm9sbFhPZmZzZXQ6KGludCl4IHNjcm9sbFlPCiAKIC0gKHZvaWQpc2V0U2Nyb2xsWE9mZnNl
dDooaW50KXggc2Nyb2xsWU9mZnNldDooaW50KXkgYWRqdXN0Rm9ySU9TQ2FyZXQ6KEJPT0wpYWRq
dXN0Rm9ySU9TQ2FyZXQKIHsKLSAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gY29yZShzZWxm
KS0+cmVuZGVyZXIoKTsKKyAgICBhdXRvKiByZW5kZXJlciA9IGNvcmUoc2VsZiktPnJlbmRlcmVy
KCk7CiAgICAgaWYgKCFyZW5kZXJlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFpczxS
ZW5kZXJCbG9ja0Zsb3c+KCpyZW5kZXJlcikpCisgICAgaWYgKCFpczxXZWJDb3JlOjpSZW5kZXJC
bG9ja0Zsb3c+KCpyZW5kZXJlcikpCiAgICAgICAgIHJlbmRlcmVyID0gcmVuZGVyZXItPmNvbnRh
aW5pbmdCbG9jaygpOwotICAgIGlmICghcmVuZGVyZXItPmhhc092ZXJmbG93Q2xpcCgpIHx8ICFp
czxSZW5kZXJCb3g+KCpyZW5kZXJlcikpCisgICAgaWYgKCFyZW5kZXJlci0+aGFzT3ZlcmZsb3dD
bGlwKCkgfHwgIWlzPFdlYkNvcmU6OlJlbmRlckJveD4oKnJlbmRlcmVyKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgUmVuZGVyTGF5ZXIqIGxheWVyID0gZG93bmNhc3Q8UmVuZGVyQm94PigqcmVu
ZGVyZXIpLmxheWVyKCk7CisgICAgYXV0byogbGF5ZXIgPSBkb3duY2FzdDxXZWJDb3JlOjpSZW5k
ZXJCb3g+KCpyZW5kZXJlcikubGF5ZXIoKTsKICAgICBpZiAoYWRqdXN0Rm9ySU9TQ2FyZXQpCiAg
ICAgICAgIGxheWVyLT5zZXRBZGp1c3RGb3JJT1NDYXJldFdoZW5TY3JvbGxpbmcodHJ1ZSk7Ci0g
ICAgbGF5ZXItPnNjcm9sbFRvT2Zmc2V0KFNjcm9sbE9mZnNldCh4LCB5KSwgU2Nyb2xsVHlwZTo6
UHJvZ3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZzo6VW5jbGFtcGVkKTsKKyAgICBsYXllci0+c2Ny
b2xsVG9PZmZzZXQoV2ViQ29yZTo6U2Nyb2xsT2Zmc2V0KHgsIHkpLCBXZWJDb3JlOjpTY3JvbGxU
eXBlOjpQcm9ncmFtbWF0aWMsIFdlYkNvcmU6OlNjcm9sbENsYW1waW5nOjpVbmNsYW1wZWQpOwog
ICAgIGlmIChhZGp1c3RGb3JJT1NDYXJldCkKICAgICAgICAgbGF5ZXItPnNldEFkanVzdEZvcklP
U0NhcmV0V2hlblNjcm9sbGluZyhmYWxzZSk7CiB9CiAKIC0gKHZvaWQpYWJzb2x1dGVQb3NpdGlv
bjooaW50ICopeCA6KGludCAqKXkgOihpbnQgKil3IDooaW50ICopaAogewotICAgIFJlbmRlckJv
eCAqcmVuZGVyZXIgPSBjb3JlKHNlbGYpLT5yZW5kZXJCb3goKTsKKyAgICBhdXRvKiByZW5kZXJl
ciA9IGNvcmUoc2VsZiktPnJlbmRlckJveCgpOwogICAgIGlmIChyZW5kZXJlcikgewogICAgICAg
ICBpZiAodykKICAgICAgICAgICAgICp3ID0gcmVuZGVyZXItPndpZHRoKCk7CiAgICAgICAgIGlm
IChoKQogICAgICAgICAgICAgKmggPSByZW5kZXJlci0+d2lkdGgoKTsKICAgICAgICAgaWYgKHgg
JiYgeSkgewotICAgICAgICAgICAgRmxvYXRQb2ludCBmbG9hdFBvaW50KCp4LCAqeSk7CisgICAg
ICAgICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IGZsb2F0UG9pbnQoKngsICp5KTsKICAgICAgICAg
ICAgIHJlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGUoZmxvYXRQb2ludCk7Ci0gICAgICAgICAgICBJ
bnRQb2ludCBwb2ludCA9IHJvdW5kZWRJbnRQb2ludChmbG9hdFBvaW50KTsKKyAgICAgICAgICAg
IFdlYkNvcmU6OkludFBvaW50IHBvaW50ID0gcm91bmRlZEludFBvaW50KGZsb2F0UG9pbnQpOwog
ICAgICAgICAgICAgKnggPSBwb2ludC54KCk7CiAgICAgICAgICAgICAqeSA9IHBvaW50LnkoKTsK
ICAgICAgICAgfQpAQCAtMjY1LDEzICsyNjIsMTMgQEAgLSAoV2ViQXV0b2NhcGl0YWxpemVUeXBl
KV9hdXRvY2FwaXRhbGl6ZQogLSAodm9pZClzZXRWYWx1ZVdpdGhDaGFuZ2VFdmVudDooTlNTdHJp
bmcgKiluZXdWYWx1ZQogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKLSAgICBjb3JlKHNlbGYpLT5zZXRWYWx1ZShuZXdWYWx1ZSwgRGlzcGF0Y2hJbnB1dEFuZENo
YW5nZUV2ZW50KTsKKyAgICBjb3JlKHNlbGYpLT5zZXRWYWx1ZShuZXdWYWx1ZSwgV2ViQ29yZTo6
RGlzcGF0Y2hJbnB1dEFuZENoYW5nZUV2ZW50KTsKIH0KIAogLSAodm9pZClzZXRWYWx1ZUFzTnVt
YmVyV2l0aENoYW5nZUV2ZW50Oihkb3VibGUpbmV3VmFsdWVBc051bWJlcgogewogICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBjb3JlKHNlbGYpLT5zZXRWYWx1
ZUFzTnVtYmVyKG5ld1ZhbHVlQXNOdW1iZXIsIERpc3BhdGNoSW5wdXRBbmRDaGFuZ2VFdmVudCk7
CisgICAgY29yZShzZWxmKS0+c2V0VmFsdWVBc051bWJlcihuZXdWYWx1ZUFzTnVtYmVyLCBXZWJD
b3JlOjpEaXNwYXRjaElucHV0QW5kQ2hhbmdlRXZlbnQpOwogfQogCiBAZW5kCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSFRNTFRleHRBcmVhRWxlbWVudC5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSFRNTFRleHRBcmVhRWxlbWVu
dC5tbQkocmV2aXNpb24gMjUwNTIyKQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RP
TUhUTUxUZXh0QXJlYUVsZW1lbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTM0LDI5NCArMzQsMjky
IEBACiAjaW1wb3J0IDxXZWJDb3JlL05vZGVMaXN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RocmVh
ZENoZWNrLmg+CiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1zdGF0aWMgaW5saW5lIEhU
TUxUZXh0QXJlYUVsZW1lbnQmIHVud3JhcChET01IVE1MVGV4dEFyZWFFbGVtZW50JiB3cmFwcGVy
KQorc3RhdGljIGlubGluZSBXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50JiB1bndyYXAoRE9N
SFRNTFRleHRBcmVhRWxlbWVudCYgd3JhcHBlcikKIHsKICAgICBBU1NFUlQod3JhcHBlci5faW50
ZXJuYWwpOwotICAgIHJldHVybiBkb3duY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50PihyZWludGVy
cHJldF9jYXN0PE5vZGUmPigqd3JhcHBlci5faW50ZXJuYWwpKTsKKyAgICByZXR1cm4gZG93bmNh
c3Q8V2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudD4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3Jl
OjpOb2RlJj4oKndyYXBwZXIuX2ludGVybmFsKSk7CiB9CiAKLUhUTUxUZXh0QXJlYUVsZW1lbnQq
IGNvcmUoRE9NSFRNTFRleHRBcmVhRWxlbWVudCAqd3JhcHBlcikKK1dlYkNvcmU6OkhUTUxUZXh0
QXJlYUVsZW1lbnQqIGNvcmUoRE9NSFRNTFRleHRBcmVhRWxlbWVudCAqd3JhcHBlcikKIHsKICAg
ICByZXR1cm4gd3JhcHBlciA/ICZ1bndyYXAoKndyYXBwZXIpIDogbnVsbHB0cjsKIH0KIAotRE9N
SFRNTFRleHRBcmVhRWxlbWVudCAqa2l0KEhUTUxUZXh0QXJlYUVsZW1lbnQqIHZhbHVlKQorRE9N
SFRNTFRleHRBcmVhRWxlbWVudCAqa2l0KFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQqIHZh
bHVlKQogewogICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7Ci0gICAg
cmV0dXJuIHN0YXRpY19jYXN0PERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqPihraXQoc3RhdGljX2Nh
c3Q8Tm9kZSo+KHZhbHVlKSkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxET01IVE1MVGV4dEFy
ZWFFbGVtZW50Kj4oa2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6Ok5vZGUqPih2YWx1ZSkpKTsKIH0K
IAogQGltcGxlbWVudGF0aW9uIERPTUhUTUxUZXh0QXJlYUVsZW1lbnQKIAogLSAoQk9PTClhdXRv
Zm9jdXMKIHsKLSAgICBKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIHVu
d3JhcCgqc2VsZikuaGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6
OmF1dG9mb2N1c0F0dHIpOworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICByZXR1cm4gdW53cmFwKCpzZWxmKS5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6YXV0b2ZvY3VzQXR0cik7CiB9CiAKIC0gKHZvaWQp
c2V0QXV0b2ZvY3VzOihCT09MKW5ld0F1dG9mb2N1cwogewotICAgIEpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKLSAgICB1bndyYXAoKnNlbGYpLnNldEJvb2xlYW5BdHRyaWJ1dGUoSFRNTE5h
bWVzOjphdXRvZm9jdXNBdHRyLCBuZXdBdXRvZm9jdXMpOworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICB1bndyYXAoKnNlbGYpLnNldEJvb2xlYW5BdHRyaWJ1
dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjphdXRvZm9jdXNBdHRyLCBuZXdBdXRvZm9jdXMpOwogfQog
CiAtIChOU1N0cmluZyAqKWRpck5hbWUKIHsKLSAgICBKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7Ci0gICAgcmV0dXJuIHVud3JhcCgqc2VsZikuZ2V0QXR0cmlidXRlKEhUTUxOYW1lczo6ZGly
bmFtZUF0dHIpOworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICByZXR1cm4gdW53cmFwKCpzZWxmKS5nZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpk
aXJuYW1lQXR0cik7CiB9CiAKIC0gKHZvaWQpc2V0RGlyTmFtZTooTlNTdHJpbmcgKiluZXdEaXJO
YW1lCiB7Ci0gICAgSlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHVud3JhcCgqc2Vs
Zikuc2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OmRpcm5hbWVB
dHRyLCBuZXdEaXJOYW1lKTsKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CisgICAgdW53cmFwKCpzZWxmKS5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9u
KFdlYkNvcmU6OkhUTUxOYW1lczo6ZGlybmFtZUF0dHIsIG5ld0Rpck5hbWUpOwogfQogCiAtIChC
T09MKWRpc2FibGVkCiB7Ci0gICAgSlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJl
dHVybiB1bndyYXAoKnNlbGYpLmhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRN
TE5hbWVzOjpkaXNhYmxlZEF0dHIpOworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICByZXR1cm4gdW53cmFwKCpzZWxmKS5oYXNBdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6ZGlzYWJsZWRBdHRyKTsKIH0KIAogLSAo
dm9pZClzZXREaXNhYmxlZDooQk9PTCluZXdEaXNhYmxlZAogewotICAgIEpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKLSAgICB1bndyYXAoKnNlbGYpLnNldEJvb2xlYW5BdHRyaWJ1dGUoSFRN
TE5hbWVzOjpkaXNhYmxlZEF0dHIsIG5ld0Rpc2FibGVkKTsKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgdW53cmFwKCpzZWxmKS5zZXRCb29sZWFuQXR0cmli
dXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6ZGlzYWJsZWRBdHRyLCBuZXdEaXNhYmxlZCk7CiB9CiAK
IC0gKERPTUhUTUxGb3JtRWxlbWVudCAqKWZvcm0KIHsKLSAgICBKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAg
IHJldHVybiBraXQodW53cmFwKCpzZWxmKS5mb3JtKCkpOwogfQogCiAtIChpbnQpbWF4TGVuZ3Ro
CiB7Ci0gICAgSlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICByZXR1cm4gdW53cmFwKCpzZWxmKS5tYXhMZW5n
dGgoKTsKIH0KIAogLSAodm9pZClzZXRNYXhMZW5ndGg6KGludCluZXdNYXhMZW5ndGgKIHsKLSAg
ICBKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOwogICAgIHJhaXNlT25ET01FcnJvcih1bndyYXAoKnNlbGYpLnNldE1h
eExlbmd0aChuZXdNYXhMZW5ndGgpKTsKIH0KIAogLSAoTlNTdHJpbmcgKiluYW1lCiB7Ci0gICAg
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKICAgICByZXR1cm4gdW53cmFwKCpzZWxmKS5nZXROYW1lQXR0cmlidXRl
KCk7CiB9CiAKIC0gKHZvaWQpc2V0TmFtZTooTlNTdHJpbmcgKiluZXdOYW1lCiB7Ci0gICAgSlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHVud3JhcCgqc2VsZikuc2V0QXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6Om5hbWVBdHRyLCBuZXdOYW1lKTsKKyAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgdW53cmFwKCpzZWxm
KS5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6
bmFtZUF0dHIsIG5ld05hbWUpOwogfQogCiAtIChOU1N0cmluZyAqKXBsYWNlaG9sZGVyCiB7Ci0g
ICAgSlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVybiB1bndyYXAoKnNlbGYp
LmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OnBsYWNlaG9sZGVyQXR0cik7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiB1bndyYXAoKnNlbGYpLmdl
dEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnBsYWNlaG9sZGVyQXR0cik7CiB9CiAKIC0g
KHZvaWQpc2V0UGxhY2Vob2xkZXI6KE5TU3RyaW5nICopbmV3UGxhY2Vob2xkZXIKIHsKLSAgICBK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgdW53cmFwKCpzZWxmKS5zZXRBdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6cGxhY2Vob2xkZXJBdHRyLCBuZXdQ
bGFjZWhvbGRlcik7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwor
ICAgIHVud3JhcCgqc2VsZikuc2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJD
b3JlOjpIVE1MTmFtZXM6OnBsYWNlaG9sZGVyQXR0ciwgbmV3UGxhY2Vob2xkZXIpOwogfQogCiAt
IChCT09MKXJlYWRPbmx5CiB7Ci0gICAgSlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAg
IHJldHVybiB1bndyYXAoKnNlbGYpLmhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24o
SFRNTE5hbWVzOjpyZWFkb25seUF0dHIpOworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gdW53cmFwKCpzZWxmKS5oYXNBdHRyaWJ1dGVXaXRob3V0
U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVhZG9ubHlBdHRyKTsKIH0KIAog
LSAodm9pZClzZXRSZWFkT25seTooQk9PTCluZXdSZWFkT25seQogewotICAgIEpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICB1bndyYXAoKnNlbGYpLnNldEJvb2xlYW5BdHRyaWJ1dGUo
SFRNTE5hbWVzOjpyZWFkb25seUF0dHIsIG5ld1JlYWRPbmx5KTsKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgdW53cmFwKCpzZWxmKS5zZXRCb29sZWFuQXR0
cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVhZG9ubHlBdHRyLCBuZXdSZWFkT25seSk7CiB9
CiAKIC0gKEJPT0wpcmVxdWlyZWQKIHsKLSAgICBKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
Ci0gICAgcmV0dXJuIHVud3JhcCgqc2VsZikuaGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbihIVE1MTmFtZXM6OnJlcXVpcmVkQXR0cik7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiB1bndyYXAoKnNlbGYpLmhhc0F0dHJpYnV0ZVdp
dGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpyZXF1aXJlZEF0dHIpOwog
fQogCiAtICh2b2lkKXNldFJlcXVpcmVkOihCT09MKW5ld1JlcXVpcmVkCiB7Ci0gICAgSlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHVud3JhcCgqc2VsZikuc2V0Qm9vbGVhbkF0dHJp
YnV0ZShIVE1MTmFtZXM6OnJlcXVpcmVkQXR0ciwgbmV3UmVxdWlyZWQpOworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICB1bndyYXAoKnNlbGYpLnNldEJvb2xl
YW5BdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZXF1aXJlZEF0dHIsIG5ld1JlcXVpcmVk
KTsKIH0KIAogLSAoaW50KXJvd3MKIHsKLSAgICBKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIHJldHVybiB1
bndyYXAoKnNlbGYpLnJvd3MoKTsKIH0KIAogLSAodm9pZClzZXRSb3dzOihpbnQpbmV3Um93cwog
ewotICAgIEpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgdW53cmFwKCpzZWxmKS5zZXRSb3dzKG5ld1Jvd3Mp
OwogfQogCiAtIChpbnQpY29scwogewotICAgIEpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgcmV0dXJuIHVu
d3JhcCgqc2VsZikuY29scygpOwogfQogCiAtICh2b2lkKXNldENvbHM6KGludCluZXdDb2xzCiB7
Ci0gICAgSlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICB1bndyYXAoKnNlbGYpLnNldENvbHMobmV3Q29scyk7
CiB9CiAKIC0gKE5TU3RyaW5nICopd3JhcAogewotICAgIEpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKLSAgICByZXR1cm4gdW53cmFwKCpzZWxmKS5nZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjp3
cmFwQXR0cik7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IHJldHVybiB1bndyYXAoKnNlbGYpLmdldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6Ondy
YXBBdHRyKTsKIH0KIAogLSAodm9pZClzZXRXcmFwOihOU1N0cmluZyAqKW5ld1dyYXAKIHsKLSAg
ICBKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgdW53cmFwKCpzZWxmKS5zZXRBdHRy
aWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6d3JhcEF0dHIsIG5ld1dyYXAp
OworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICB1bndyYXAo
KnNlbGYpLnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5h
bWVzOjp3cmFwQXR0ciwgbmV3V3JhcCk7CiB9CiAKIC0gKE5TU3RyaW5nICopdHlwZQogewotICAg
IEpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CiAgICAgcmV0dXJuIHVud3JhcCgqc2VsZikudHlwZSgpOwogfQogCiAt
IChOU1N0cmluZyAqKWRlZmF1bHRWYWx1ZQogewotICAgIEpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgcmV0
dXJuIHVud3JhcCgqc2VsZikuZGVmYXVsdFZhbHVlKCk7CiB9CiAKIC0gKHZvaWQpc2V0RGVmYXVs
dFZhbHVlOihOU1N0cmluZyAqKW5ld0RlZmF1bHRWYWx1ZQogewotICAgIEpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CiAgICAgdW53cmFwKCpzZWxmKS5zZXREZWZhdWx0VmFsdWUobmV3RGVmYXVsdFZhbHVlKTsKIH0K
IAogLSAoTlNTdHJpbmcgKil2YWx1ZQogewotICAgIEpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgcmV0dXJu
IHVud3JhcCgqc2VsZikudmFsdWUoKTsKIH0KIAogLSAodm9pZClzZXRWYWx1ZTooTlNTdHJpbmcg
KiluZXdWYWx1ZQogewotICAgIEpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgdW53cmFwKCpzZWxmKS5zZXRW
YWx1ZShuZXdWYWx1ZSk7CiB9CiAKIC0gKHVuc2lnbmVkKXRleHRMZW5ndGgKIHsKLSAgICBKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOwogICAgIHJldHVybiB1bndyYXAoKnNlbGYpLnRleHRMZW5ndGgoKTsKIH0KIAog
LSAoQk9PTCl3aWxsVmFsaWRhdGUKIHsKLSAgICBKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIHJldHVybiB1
bndyYXAoKnNlbGYpLndpbGxWYWxpZGF0ZSgpOwogfQogCiAtIChET01Ob2RlTGlzdCAqKWxhYmVs
cwogewotICAgIEpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgcmV0dXJuIGtpdCh1bndyYXAoKnNlbGYpLmxh
YmVscygpLmdldCgpKTsKIH0KIAogLSAoaW50KXNlbGVjdGlvblN0YXJ0CiB7Ci0gICAgSlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKICAgICByZXR1cm4gdW53cmFwKCpzZWxmKS5zZWxlY3Rpb25TdGFydCgpOwogfQog
CiAtICh2b2lkKXNldFNlbGVjdGlvblN0YXJ0OihpbnQpbmV3U2VsZWN0aW9uU3RhcnQKIHsKLSAg
ICBKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOwogICAgIHVud3JhcCgqc2VsZikuc2V0U2VsZWN0aW9uU3RhcnQobmV3
U2VsZWN0aW9uU3RhcnQpOwogfQogCiAtIChpbnQpc2VsZWN0aW9uRW5kCiB7Ci0gICAgSlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKICAgICByZXR1cm4gdW53cmFwKCpzZWxmKS5zZWxlY3Rpb25FbmQoKTsKIH0KIAog
LSAodm9pZClzZXRTZWxlY3Rpb25FbmQ6KGludCluZXdTZWxlY3Rpb25FbmQKIHsKLSAgICBKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOwogICAgIHVud3JhcCgqc2VsZikuc2V0U2VsZWN0aW9uRW5kKG5ld1NlbGVjdGlv
bkVuZCk7CiB9CiAKIC0gKE5TU3RyaW5nICopc2VsZWN0aW9uRGlyZWN0aW9uCiB7Ci0gICAgSlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKICAgICByZXR1cm4gdW53cmFwKCpzZWxmKS5zZWxlY3Rpb25EaXJlY3Rpb24o
KTsKIH0KIAogLSAodm9pZClzZXRTZWxlY3Rpb25EaXJlY3Rpb246KE5TU3RyaW5nICopbmV3U2Vs
ZWN0aW9uRGlyZWN0aW9uCiB7Ci0gICAgSlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICB1bndyYXAoKnNlbGYp
LnNldFNlbGVjdGlvbkRpcmVjdGlvbihuZXdTZWxlY3Rpb25EaXJlY3Rpb24pOwogfQogCiAtIChO
U1N0cmluZyAqKWFjY2Vzc0tleQogewotICAgIEpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
LSAgICByZXR1cm4gdW53cmFwKCpzZWxmKS5nZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjphY2Nlc3Nr
ZXlBdHRyKTsKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
cmV0dXJuIHVud3JhcCgqc2VsZikuZ2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6YWNj
ZXNza2V5QXR0cik7CiB9CiAKIC0gKHZvaWQpc2V0QWNjZXNzS2V5OihOU1N0cmluZyAqKW5ld0Fj
Y2Vzc0tleQogewotICAgIEpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICB1bndyYXAo
KnNlbGYpLnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjphY2Nl
c3NrZXlBdHRyLCBuZXdBY2Nlc3NLZXkpOworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKKyAgICB1bndyYXAoKnNlbGYpLnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJv
bml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjphY2Nlc3NrZXlBdHRyLCBuZXdBY2Nlc3NLZXkp
OwogfQogCiAtIChOU1N0cmluZyAqKWF1dG9jb21wbGV0ZQogewotICAgIEpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CiAgICAgcmV0dXJuIHVud3JhcCgqc2VsZikuYXV0b2NvbXBsZXRlKCk7CiB9CiAKIC0gKHZvaWQp
c2V0QXV0b2NvbXBsZXRlOihOU1N0cmluZyAqKW5ld0F1dG9jb21wbGV0ZQogewotICAgIEpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CiAgICAgdW53cmFwKCpzZWxmKS5zZXRBdXRvY29tcGxldGUobmV3QXV0b2NvbXBs
ZXRlKTsKIH0KIAogLSAodm9pZClzZWxlY3QKIHsKLSAgICBKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIHVu
d3JhcCgqc2VsZikuc2VsZWN0KCk7CiB9CiAKIC0gKHZvaWQpc2V0UmFuZ2VUZXh0OihOU1N0cmlu
ZyAqKXJlcGxhY2VtZW50CiB7Ci0gICAgSlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICByYWlzZU9uRE9NRXJy
b3IodW53cmFwKCpzZWxmKS5zZXRSYW5nZVRleHQocmVwbGFjZW1lbnQpKTsKIH0KIAogLSAodm9p
ZClzZXRSYW5nZVRleHQ6KE5TU3RyaW5nICopcmVwbGFjZW1lbnQgc3RhcnQ6KHVuc2lnbmVkKXN0
YXJ0IGVuZDoodW5zaWduZWQpZW5kIHNlbGVjdGlvbk1vZGU6KE5TU3RyaW5nICopc2VsZWN0aW9u
TW9kZQogewotICAgIEpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgcmFpc2VPbkRPTUVycm9yKHVud3JhcCgq
c2VsZikuc2V0UmFuZ2VUZXh0KHJlcGxhY2VtZW50LCBzdGFydCwgZW5kLCBzZWxlY3Rpb25Nb2Rl
KSk7CiB9CiAKIC0gKHZvaWQpc2V0U2VsZWN0aW9uUmFuZ2U6KGludClzdGFydCBlbmQ6KGludCll
bmQKIHsKLSAgICBKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIHVud3JhcCgqc2VsZikuc2V0U2VsZWN0aW9u
UmFuZ2Uoc3RhcnQsIGVuZCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RP
TS9ET01VSUtpdEV4dGVuc2lvbnMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvRE9NL0RPTVVJS2l0RXh0ZW5zaW9ucy5tbQkocmV2aXNpb24gMjUwNTIyKQorKysgU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTVVJS2l0RXh0ZW5zaW9ucy5tbQkod29ya2luZyBj
b3B5KQpAQCAtMjQsNyArMjQsNiBAQAogICoKICAqLwogCi0KICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogCiAjaW1wb3J0ICJET01VSUtpdEV4dGVuc2lvbnMuaCIKQEAgLTY2LDggKzY1LDYgQEAK
ICNpbXBvcnQgPFdlYkNvcmUvVmlzaWJsZVVuaXRzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dBS0Fw
cEtpdFN0dWJzLmg+CiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCiB1c2luZyBXZWJDb3Jl
OjpOb2RlOwogdXNpbmcgV2ViQ29yZTo6UG9zaXRpb247CiB1c2luZyBXZWJDb3JlOjpSYW5nZTsK
QEAgLTgyLDIyICs3OSwyMiBAQCB1c2luZyBXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb247CiAtICh2
b2lkKW1vdmU6KFVJbnQzMilhbW91bnQgaW5EaXJlY3Rpb246KFdlYlRleHRBZGp1c3RtZW50RGly
ZWN0aW9uKWRpcmVjdGlvbgogewogICAgIFJhbmdlICpyYW5nZSA9IGNvcmUoc2VsZik7Ci0gICAg
RnJhbWVTZWxlY3Rpb24gZnJhbWVTZWxlY3Rpb247CisgICAgV2ViQ29yZTo6RnJhbWVTZWxlY3Rp
b24gZnJhbWVTZWxlY3Rpb247CiAgICAgZnJhbWVTZWxlY3Rpb24ubW92ZVRvKHJhbmdlKTsKICAg
ICAKLSAgICBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0
eTsKKyAgICBXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkgPSBXZWJDb3JlOjpD
aGFyYWN0ZXJHcmFudWxhcml0eTsKICAgICAvLyBVbnRpbCBXZWJLaXQgc3VwcG9ydHMgdmVydGlj
YWwgbGF5b3V0LCAiZG93biIgaXMgZXF1aXZhbGVudCB0byAiZm9yd2FyZCBieSBhIGxpbmUiIGFu
ZAogICAgIC8vICJ1cCIgaXMgZXF1aXZhbGVudCB0byAiYmFja3dhcmQgYnkgYSBsaW5lIi4KICAg
ICBpZiAoZGlyZWN0aW9uID09IFdlYlRleHRBZGp1c3RtZW50RG93bikgewogICAgICAgICBkaXJl
Y3Rpb24gPSBXZWJUZXh0QWRqdXN0bWVudEZvcndhcmQ7Ci0gICAgICAgIGdyYW51bGFyaXR5ID0g
TGluZUdyYW51bGFyaXR5OworICAgICAgICBncmFudWxhcml0eSA9IFdlYkNvcmU6OkxpbmVHcmFu
dWxhcml0eTsKICAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PSBXZWJUZXh0QWRqdXN0bWVudFVw
KSB7CiAgICAgICAgIGRpcmVjdGlvbiA9IFdlYlRleHRBZGp1c3RtZW50QmFja3dhcmQ7Ci0gICAg
ICAgIGdyYW51bGFyaXR5ID0gTGluZUdyYW51bGFyaXR5OworICAgICAgICBncmFudWxhcml0eSA9
IFdlYkNvcmU6OkxpbmVHcmFudWxhcml0eTsKICAgICB9CiAgICAgCiAgICAgZm9yIChVSW50MzIg
aSA9IDA7IGkgPCBhbW91bnQ7IGkrKykKLSAgICAgICAgZnJhbWVTZWxlY3Rpb24ubW9kaWZ5KEZy
YW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uTW92ZSwgKFNlbGVjdGlvbkRpcmVjdGlvbilkaXJlY3Rp
b24sIGdyYW51bGFyaXR5KTsKKyAgICAgICAgZnJhbWVTZWxlY3Rpb24ubW9kaWZ5KFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uTW92ZSwgKFdlYkNvcmU6OlNlbGVjdGlvbkRpcmVj
dGlvbilkaXJlY3Rpb24sIGdyYW51bGFyaXR5KTsKICAgICAKICAgICBQb3NpdGlvbiBzdGFydCA9
IGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpLnN0YXJ0KCkucGFyZW50QW5jaG9yZWRFcXVpdmFs
ZW50KCk7CiAgICAgUG9zaXRpb24gZW5kID0gZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCkuZW5k
KCkucGFyZW50QW5jaG9yZWRFcXVpdmFsZW50KCk7CkBAIC0xMTAsMTEgKzEwNywxMSBAQCAtICh2
b2lkKW1vdmU6KFVJbnQzMilhbW91bnQgaW5EaXJlY3Rpb246CiAtICh2b2lkKWV4dGVuZDooVUlu
dDMyKWFtb3VudCBpbkRpcmVjdGlvbjooV2ViVGV4dEFkanVzdG1lbnREaXJlY3Rpb24pZGlyZWN0
aW9uCiB7CiAgICAgUmFuZ2UgKnJhbmdlID0gY29yZShzZWxmKTsKLSAgICBGcmFtZVNlbGVjdGlv
biBmcmFtZVNlbGVjdGlvbjsKKyAgICBXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbiBmcmFtZVNlbGVj
dGlvbjsKICAgICBmcmFtZVNlbGVjdGlvbi5tb3ZlVG8ocmFuZ2UpOwogICAgIAogICAgIGZvciAo
VUludDMyIGkgPSAwOyBpIDwgYW1vdW50OyBpKyspCi0gICAgICAgIGZyYW1lU2VsZWN0aW9uLm1v
ZGlmeShGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbkV4dGVuZCwgKFNlbGVjdGlvbkRpcmVjdGlv
bilkaXJlY3Rpb24sIENoYXJhY3RlckdyYW51bGFyaXR5KTsgICAgCisgICAgICAgIGZyYW1lU2Vs
ZWN0aW9uLm1vZGlmeShXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbkV4dGVuZCwg
KFdlYkNvcmU6OlNlbGVjdGlvbkRpcmVjdGlvbilkaXJlY3Rpb24sIFdlYkNvcmU6OkNoYXJhY3Rl
ckdyYW51bGFyaXR5KTsKICAgICAKICAgICBQb3NpdGlvbiBzdGFydCA9IGZyYW1lU2VsZWN0aW9u
LnNlbGVjdGlvbigpLnN0YXJ0KCkucGFyZW50QW5jaG9yZWRFcXVpdmFsZW50KCk7CiAgICAgUG9z
aXRpb24gZW5kID0gZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCkuZW5kKCkucGFyZW50QW5jaG9y
ZWRFcXVpdmFsZW50KCk7CkBAIC0xODQsMTEgKzE4MSwxMSBAQCAtIChOU0FycmF5ICopYm9yZGVy
UmFkaWkKICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gY29yZShzZWxmKS0+cmVuZGVyZXIo
KTsKICAgICAKICAgICBpZiAoaXM8UmVuZGVyQm94PihyZW5kZXJlcikpIHsKLSAgICAgICAgUm91
bmRlZFJlY3Q6OlJhZGlpIHJhZGlpID0gZG93bmNhc3Q8UmVuZGVyQm94PigqcmVuZGVyZXIpLmJv
cmRlclJhZGlpKCk7Ci0gICAgICAgIHJldHVybiBAW1tOU1ZhbHVlIHZhbHVlV2l0aFNpemU6KEZs
b2F0U2l6ZSlyYWRpaS50b3BMZWZ0KCldLAotICAgICAgICAgICAgICAgICBbTlNWYWx1ZSB2YWx1
ZVdpdGhTaXplOihGbG9hdFNpemUpcmFkaWkudG9wUmlnaHQoKV0sCi0gICAgICAgICAgICAgICAg
IFtOU1ZhbHVlIHZhbHVlV2l0aFNpemU6KEZsb2F0U2l6ZSlyYWRpaS5ib3R0b21MZWZ0KCldLAot
ICAgICAgICAgICAgICAgICBbTlNWYWx1ZSB2YWx1ZVdpdGhTaXplOihGbG9hdFNpemUpcmFkaWku
Ym90dG9tUmlnaHQoKV1dOworICAgICAgICBXZWJDb3JlOjpSb3VuZGVkUmVjdDo6UmFkaWkgcmFk
aWkgPSBkb3duY2FzdDxSZW5kZXJCb3g+KCpyZW5kZXJlcikuYm9yZGVyUmFkaWkoKTsKKyAgICAg
ICAgcmV0dXJuIEBbW05TVmFsdWUgdmFsdWVXaXRoU2l6ZTooV2ViQ29yZTo6RmxvYXRTaXplKXJh
ZGlpLnRvcExlZnQoKV0sCisgICAgICAgICAgICBbTlNWYWx1ZSB2YWx1ZVdpdGhTaXplOihXZWJD
b3JlOjpGbG9hdFNpemUpcmFkaWkudG9wUmlnaHQoKV0sCisgICAgICAgICAgICBbTlNWYWx1ZSB2
YWx1ZVdpdGhTaXplOihXZWJDb3JlOjpGbG9hdFNpemUpcmFkaWkuYm90dG9tTGVmdCgpXSwKKyAg
ICAgICAgICAgIFtOU1ZhbHVlIHZhbHVlV2l0aFNpemU6KFdlYkNvcmU6OkZsb2F0U2l6ZSlyYWRp
aS5ib3R0b21SaWdodCgpXV07CiAgICAgfQogICAgIE5TVmFsdWUgKmVtcHR5VmFsdWUgPSBbTlNW
YWx1ZSB2YWx1ZVdpdGhTaXplOkNHU2l6ZVplcm9dOwogICAgIHJldHVybiBAW2VtcHR5VmFsdWUs
IGVtcHR5VmFsdWUsIGVtcHR5VmFsdWUsIGVtcHR5VmFsdWVdOwpAQCAtMjA2LDcgKzIwMyw3IEBA
IC0gKEJPT0wpY29udGFpbnNPbmx5SW5saW5lT2JqZWN0cwogLSAoQk9PTClpc1NlbGVjdGFibGVC
bG9jawogewogICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBjb3JlKHNlbGYpLT5yZW5kZXJl
cigpOwotICAgIHJldHVybiByZW5kZXJlciAmJiAoaXM8UmVuZGVyQmxvY2tGbG93PigqcmVuZGVy
ZXIpIHx8IChpczxSZW5kZXJCbG9jaz4oKnJlbmRlcmVyKSAmJiBkb3duY2FzdDxSZW5kZXJCbG9j
az4oKnJlbmRlcmVyKS5pbmxpbmVDb250aW51YXRpb24oKSAhPSBuaWwpKTsKKyAgICByZXR1cm4g
cmVuZGVyZXIgJiYgKGlzPFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdz4oKnJlbmRlcmVyKSB8fCAo
aXM8UmVuZGVyQmxvY2s+KCpyZW5kZXJlcikgJiYgZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCpyZW5k
ZXJlcikuaW5saW5lQ29udGludWF0aW9uKCkgIT0gbmlsKSk7CiB9CiAKIC0gKERPTVJhbmdlICop
cmFuZ2VPZkNvbnRhaW5pbmdQYXJhZ3JhcGgKQEAgLTI0MSwxMCArMjM4LDEwIEBAIC0gKENHRmxv
YXQpdGV4dEhlaWdodAogLSAoRE9NTm9kZSAqKWZpbmRFeHBsb2RlZFRleHROb2RlQXRQb2ludDoo
Q0dQb2ludClwb2ludAogewogICAgIGF1dG8qIHJlbmRlcmVyID0gY29yZShzZWxmKS0+cmVuZGVy
ZXIoKTsKLSAgICBpZiAoIWlzPFJlbmRlckJsb2NrRmxvdz4ocmVuZGVyZXIpKQorICAgIGlmICgh
aXM8V2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93PihyZW5kZXJlcikpCiAgICAgICAgIHJldHVybiBu
aWw7CiAKLSAgICBhdXRvKiByZW5kZXJUZXh0ID0gZG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93Pigq
cmVuZGVyZXIpLmZpbmRDbG9zZXN0VGV4dEF0QWJzb2x1dGVQb2ludChwb2ludCk7CisgICAgYXV0
byogcmVuZGVyVGV4dCA9IGRvd25jYXN0PFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdz4oKnJlbmRl
cmVyKS5maW5kQ2xvc2VzdFRleHRBdEFic29sdXRlUG9pbnQocG9pbnQpOwogICAgIGlmIChyZW5k
ZXJUZXh0ICYmIHJlbmRlclRleHQtPnRleHROb2RlKCkpCiAgICAgICAgIHJldHVybiBraXQocmVu
ZGVyVGV4dC0+dGV4dE5vZGUoKSk7CiAKQEAgLTI3MSw3ICsyNjgsNyBAQCAtIChpbnQpc3RydWN0
dXJhbENvbXBsZXhpdHlDb250cmlidXRpb24KICAgICAgICAgICAgIHJlc3VsdCA9IElOVF9NQVg7
CiAgICAgICAgIH0gZWxzZSBpZiAoIXJlbmRlcmVyLT5maXJzdENoaWxkU2xvdygpKSB7CiAgICAg
ICAgICAgICByZXN1bHQgPSAwOwotICAgICAgICB9IGVsc2UgaWYgKGlzPFJlbmRlckJsb2NrRmxv
dz4oKnJlbmRlcmVyKSB8fCAoaXM8UmVuZGVyQmxvY2s+KCpyZW5kZXJlcikgJiYgZG93bmNhc3Q8
UmVuZGVyQmxvY2s+KCpyZW5kZXJlcikuaW5saW5lQ29udGludWF0aW9uKCkpKSB7CisgICAgICAg
IH0gZWxzZSBpZiAoaXM8V2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93PigqcmVuZGVyZXIpIHx8IChp
czxSZW5kZXJCbG9jaz4oKnJlbmRlcmVyKSAmJiBkb3duY2FzdDxSZW5kZXJCbG9jaz4oKnJlbmRl
cmVyKS5pbmxpbmVDb250aW51YXRpb24oKSkpIHsKICAgICAgICAgICAgIEJPT0wgbm9Db3N0ID0g
Tk87CiAgICAgICAgICAgICBpZiAoaXM8UmVuZGVyQm94PigqcmVuZGVyZXIpKSB7CiAgICAgICAg
ICAgICAgICAgUmVuZGVyQm94JiBhc0JveCA9IHJlbmRlcmVyLT5lbmNsb3NpbmdCb3goKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAkocmV2aXNpb24gMjUwNTIyKQorKysgU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMjYwLDMgKzI2MCw2IEBAIHByaXZhdGU6CiAKICAgICBXZWFrT2Jq
Q1B0cjxXZWJGcmFtZVBvbGljeUxpc3RlbmVyPiBtX3BvbGljeUxpc3RlbmVyOwogfTsKKworV2Vi
RGF0YVNvdXJjZSAqZGF0YVNvdXJjZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciopOwordm9pZCBh
ZGRUeXBlc0Zyb21DbGFzcyhOU011dGFibGVEaWN0aW9uYXJ5ICosIENsYXNzLCBOU0FycmF5ICop
OwpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0JKHJldmlzaW9uIDI1MDU0OSkKKysr
IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xOTYsNyArMTk2LDcgQEAgLSAodm9pZClpbnZhbGlk
YXRlOwogCiBAZW5kCiAKLXN0YXRpYyBpbmxpbmUgV2ViRGF0YVNvdXJjZSAqZGF0YVNvdXJjZShX
ZWJDb3JlOjpEb2N1bWVudExvYWRlciogbG9hZGVyKQorV2ViRGF0YVNvdXJjZSAqZGF0YVNvdXJj
ZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciogbG9hZGVyKQogewogICAgIHJldHVybiBsb2FkZXIg
PyBzdGF0aWNfY2FzdDxXZWJEb2N1bWVudExvYWRlck1hYyo+KGxvYWRlciktPmRhdGFTb3VyY2Uo
KSA6IG5pbDsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRGF0
YVNvdXJjZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYkRhdGFTb3VyY2UubW0JKHJldmlzaW9uIDI1MDU0OSkKKysrIFNvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTI3LDcg
KzEyNyw3IEBAIC0gKHZvaWQpX3NldFJlcHJlc2VudGF0aW9uOihpZDxXZWJEb2N1bWUKICAgICB0
b1ByaXZhdGUoX3ByaXZhdGUpLT5yZXByZXNlbnRhdGlvbkZpbmlzaGVkTG9hZGluZyA9IE5POwog
fQogCi1zdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGljdGlv
bmFyeSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbGFzcywgTlNBcnJheSAqc3VwcG9ydFR5cGVzKQor
dm9pZCBhZGRUeXBlc0Zyb21DbGFzcyhOU011dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xh
c3Mgb2JqQ0NsYXNzLCBOU0FycmF5ICpzdXBwb3J0VHlwZXMpCiB7CiAgICAgTlNFbnVtZXJhdG9y
ICplbnVtZXJhdG9yID0gW3N1cHBvcnRUeXBlcyBvYmplY3RFbnVtZXJhdG9yXTsKICAgICBBU1NF
UlQoZW51bWVyYXRvciAhPSBuaWwpOwpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9zY3JpcHRz
L2dlbmVyYXRlLXVuaWZpZWQtc291cmNlcy5zaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
TGVnYWN5L3NjcmlwdHMvZ2VuZXJhdGUtdW5pZmllZC1zb3VyY2VzLnNoCShyZXZpc2lvbiAyNTA1
NDkpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L3NjcmlwdHMvZ2VuZXJhdGUtdW5pZmllZC1zb3Vy
Y2VzLnNoCSh3b3JraW5nIGNvcHkpCkBAIC0xNSw3ICsxNSw3IEBAIGlmIFsgLXogIiR7QlVJTERf
U0NSSVBUU19ESVJ9IiBdOyB0aGVuCiBmaQogCiBVbmlmaWVkU291cmNlQ3BwRmlsZUNvdW50PTUK
LVVuaWZpZWRTb3VyY2VNbUZpbGVDb3VudD0yMAorVW5pZmllZFNvdXJjZU1tRmlsZUNvdW50PTIx
CiAKIGlmIFsgJCMgLWVxIDAgXTsgdGhlbgogICAgIGVjaG8gIlVzaW5nIHVuaWZpZWQgc291cmNl
IGxpc3QgZmlsZXM6IFNvdXJjZXMudHh0LCBTb3VyY2VzQ29jb2EudHh0Igo=
</data>
<flag name="review"
          id="395635"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>