<?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>120466</bug_id>
          
          <creation_ts>2013-08-29 06:00:45 -0700</creation_ts>
          <short_desc>Remove NodeRenderingContext</short_desc>
          <delta_ts>2013-08-29 07:01:43 -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>DOM</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kling</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>rakuco</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>922425</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-08-29 06:00:45 -0700</bug_when>
    <thetext>We can now remove this confusing class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922426</commentid>
    <comment_count>1</comment_count>
      <attachid>209970</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-08-29 06:10:25 -0700</bug_when>
    <thetext>Created attachment 209970
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922428</commentid>
    <comment_count>2</comment_count>
      <attachid>209970</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-08-29 06:17:04 -0700</bug_when>
    <thetext>Comment on attachment 209970
patch

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

&gt; Source/WebCore/dom/NodeRenderingContext.cpp:-71
&gt; -#if ENABLE(DIALOG_ELEMENT)

I take it nobody is building this? You should slap up a webkit-dev thread about removing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922432</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-08-29 06:39:15 -0700</bug_when>
    <thetext>Mailed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922440</commentid>
    <comment_count>4</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-08-29 07:01:43 -0700</bug_when>
    <thetext>https://trac.webkit.org/r154809</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>209970</attachid>
            <date>2013-08-29 06:10:25 -0700</date>
            <delta_ts>2013-08-29 06:17:04 -0700</delta_ts>
            <desc>patch</desc>
            <filename>kill-noderenderingcontext-2.patch</filename>
            <type>text/plain</type>
            <size>28047</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NDgwNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBACisyMDEzLTA4LTI5ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgTm9kZVJlbmRlcmlu
Z0NvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyMDQ2NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFN3aXRjaCB0aGUgZmV3IHJlbWFpbmluZyBjbGllbnRzIG9mIHRoaXMgY2xhc3MgdG8gY2FsbCB0
aGUgdW5kZXJseWluZyBjb2RlIGRpcmVjdGx5LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgor
ICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlUmVzb2x2ZXI6OlN0YXRlOjppbml0Rm9yU3R5bGVSZXNvbHZlKToKKyAgICAgICAgKiBkb20v
RE9NQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKiBkb20v
Tm9kZS5oOgorICAgICAgICAKKyAgICAgICAgICAgIFJlbW92ZSBOb2RlOjpwYXJlbnROb2RlRm9y
UmVuZGVyaW5nQW5kU3R5bGUoKS4gTWFrZSBjbGllbnRzIGludm9rZSBOb2RlUmVuZGVyaW5nVHJh
dmVyc2FsOjpwYXJlbnQoKSBkaXJlY3RseS4KKworICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5n
Q29udGV4dC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0
Lmg6IFJlbW92ZWQuCisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaDoKKyAgICAgICAgKiBkb20v
VGV4dC5jcHA6CisgICAgICAgICogZG9tL1RleHQuaDoKKyAgICAgICAgKiBkb20vVHJlZVNjb3Bl
LmNwcDoKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmg6CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIFJlbW92ZSB2aXJ0dWFsIFRyZWVTY29wZTo6cmVzZXRTdHlsZUluaGVyaXRhbmNlLiBNYWtl
IGNsaWVudHMgY2FzdCB0byBTaGFkb3dSb290IHdoZW4gbmVlZGVkLgorCisgICAgICAgICogaHRt
bC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFN1bW1hcnlF
bGVtZW50OjpkZXRhaWxzRWxlbWVudCk6CisgICAgICAgICogc3R5bGUvU3R5bGVSZXNvbHZlVHJl
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6Y3JlYXRlVGV4dFJlbmRlcmVySWZOZWVk
ZWQpOgorICAgICAgICAKKyAgICAgICAgICAgIEZvciBjb25zaXN0ZW5jeSBzd2l0Y2ggcmVzZXRT
dHlsZUluaGVyaXRhbmNlIGNoZWNrIHRvIHVzZSBwYXJlbnROb2RlKCkgaW5zdGVhZCBvZiByZW5k
ZXJpbmdQYXJlbnROb2RlLiBUaGlzIG1hdGNoZXMgdGhlIE5vZGVSZW5kZXJpbmdUcmF2ZXJzYWwg
aW1wbGVtZW50YXRpb24uCisgICAgICAgICAgICBUaGlzIGRpZmZlcmVuY2UgaXMgcHJvYmFibHkg
bm90IHRlc3RhYmxlIGluIGN1cnJlbnQgdHJ1bmsuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
OjpyZXNvbHZlVHJlZSk6CisKIDIwMTMtMDgtMjkgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBw
bGUuY29tPgogCiAgICAgICAgIE1vdmUgZWxlbWVudCByZW5kZXJlciBjcmVhdGlvbiBvdXQgb2Yg
Tm9kZVJlbmRlcmluZ0NvbnRleHQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAx
NTQ4MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMTE5OCw3ICsxMTk4LDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9Ob2RlRmls
dGVyLmNwcAogICAgIGRvbS9Ob2RlSXRlcmF0b3IuY3BwCiAgICAgZG9tL05vZGVSYXJlRGF0YS5j
cHAKLSAgICBkb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCiAgICAgZG9tL05vZGVSZW5kZXJp
bmdUcmF2ZXJzYWwuY3BwCiAgICAgZG9tL05vZGVUcmF2ZXJzYWwuY3BwCiAgICAgZG9tL05vdGF0
aW9uLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxNTQ4
MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkp
CkBAIC0yOTY4LDEzICsyOTY4LDExIEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dl
YkNvcmUvZG9tL05vZGVGaWx0ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRl
ci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmNwcCBcCi0JU291cmNlL1dl
YkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL05vZGVM
aXN0LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaCBcCi0JU291cmNlL1dl
YkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlUmVuZGVyaW5nVHJhdmVyc2FsLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVy
aW5nVHJhdmVyc2FsLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJTdHlsZS5o
IFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQkocmV2aXNpb24gMTU0ODA1KQorKysgU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQkod29ya2luZyBjb3B5KQpAQCAtNDQ3LDcgKzQ0Nyw2IEBAIFNPVVJDRVMgKz0g
XAogICAgIGRvbS9Ob2RlRmlsdGVyLmNwcCBcCiAgICAgZG9tL05vZGVJdGVyYXRvci5jcHAgXAog
ICAgIGRvbS9Ob2RlUmFyZURhdGEuY3BwIFwKLSAgICBkb20vTm9kZVJlbmRlcmluZ0NvbnRleHQu
Y3BwIFwKICAgICBkb20vTm9kZVJlbmRlcmluZ1RyYXZlcnNhbC5jcHAgXAogICAgIGRvbS9Ob2Rl
VHJhdmVyc2FsLmNwcCBcCiAgICAgZG9tL05vdGF0aW9uLmNwcCBcCkBAIC0xNjU4LDcgKzE2NTcs
NiBAQCBIRUFERVJTICs9IFwKICAgICBkb20vTm9kZS5oIFwKICAgICBkb20vTm9kZUl0ZXJhdG9y
LmggXAogICAgIGRvbS9Ob2RlUmFyZURhdGEuaCBcCi0gICAgZG9tL05vZGVSZW5kZXJpbmdDb250
ZXh0LmggXAogICAgIGRvbS9Ob2RlUmVuZGVyaW5nVHJhdmVyc2FsLmggXAogICAgIGRvbS9Ob2Rl
VHJhdmVyc2FsLmggXAogICAgIGRvbS9Ob3RhdGlvbi5oIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCShyZXZpc2lvbiAxNTQ4MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgko
d29ya2luZyBjb3B5KQpAQCAtNjY1LDggKzY2NSw2IEBAIF9fWk43V2ViQ29yZTIwRGljdGF0aW9u
QWx0ZXJuYXRpdmVDMUVqankKIF9fWk43V2ViQ29yZTIwRGljdGF0aW9uQWx0ZXJuYXRpdmVDMUV2
CiBfX1pON1dlYkNvcmUyMERpc3BsYXlTbGVlcERpc2FibGVyQzFFUEtjCiBfX1pON1dlYkNvcmUy
MERpc3BsYXlTbGVlcERpc2FibGVyRDFFdgotX19aTjdXZWJDb3JlMjBOb2RlUmVuZGVyaW5nQ29u
dGV4dEMxRVBOU180Tm9kZUUKLV9fWk43V2ViQ29yZTIwTm9kZVJlbmRlcmluZ0NvbnRleHREMUV2
CiBfX1pON1dlYkNvcmUyMFJlbmRlckVtYmVkZGVkT2JqZWN0MjlzZXRQbHVnaW5VbmF2YWlsYWJp
bGl0eVJlYXNvbkVOUzBfMjZQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbkUKIF9fWk43V2ViQ29y
ZTIwUmVuZGVyRW1iZWRkZWRPYmplY3QzN3NldFVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9ySXNI
aWRkZW5FYgogX19aTjdXZWJDb3JlMjBSZW5kZXJFbWJlZGRlZE9iamVjdDQ0c2V0UGx1Z2luVW5h
dmFpbGFiaWxpdHlSZWFzb25XaXRoRGVzY3JpcHRpb25FTlMwXzI2UGx1Z2luVW5hdmFpbGFiaWxp
dHlSZWFzb25FUktOM1dURjZTdHJpbmdFCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE1NDgwNSkKKysrIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAg
LTEyOTgxLDIwICsxMjk4MSw2IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZG9tXE5vZGVSYXJlRGF0YS5jcHAiIC8+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxkb21cTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwIj4KLSAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJv
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGRvbVxOb2RlVHJhdmVyc2FsLmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGRvbVxOb3RhdGlvbi5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTIwMzIzLDcgKzIwMzA5LDYgQEAKICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxOb2RlRmlsdGVyLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxkb21cTm9kZUZpbHRlckNvbmRpdGlvbi5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZG9tXE5vZGVJdGVyYXRvci5oIiAvPgotICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZG9tXE5vZGVSZW5kZXJpbmdDb250ZXh0LmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxkb21cTm9kZVRyYXZlcnNhbC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZG9tXE5vdGF0aW9uLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxk
b21cT3ZlcmZsb3dFdmVudC5oIiAvPgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTU0ODA1KQorKysgU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC0zNDQ5LDggKzM0NDksNiBAQAogCQlBN0Q2QjM0QTBGNjExMDQ1MDBCNzlGRDEgLyogV29y
a2VyU2NyaXB0TG9hZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE3RDZCMzQ4MEY2MTEwNDUwMEI3OUZEMSAvKiBXb3JrZXJTY3JpcHRMb2FkZXIu
Y3BwICovOyB9OwogCQlBN0RCRjhERDEyNzY5MTlDMDA2QjYwMDggLyogVGV4dENoZWNraW5nSGVs
cGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
REJGOERCMTI3NjkxOUMwMDZCNjAwOCAvKiBUZXh0Q2hlY2tpbmdIZWxwZXIuY3BwICovOyB9Owog
CQlBN0RCRjhERTEyNzY5MTlDMDA2QjYwMDggLyogVGV4dENoZWNraW5nSGVscGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0RCRjhEQzEyNzY5MTlD
MDA2QjYwMDggLyogVGV4dENoZWNraW5nSGVscGVyLmggKi87IH07Ci0JCUE3RjVEOTRGMTM4NEYw
MkQwMEEyOUE4NyAvKiBOb2RlUmVuZGVyaW5nQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0Y1RDk0RDEzODRGMDJEMDBBMjlBODcgLyog
Tm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwICovOyB9OwotCQlBN0Y1RDk1MDEzODRGMDJEMDBBMjlB
ODcgLyogTm9kZVJlbmRlcmluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3RjVEOTRFMTM4NEYwMkQwMEEyOUE4NyAvKiBOb2RlUmVuZGVy
aW5nQ29udGV4dC5oICovOyB9OwogCQlBODBBMzhGRTBFNTBDQzgyMDBBMjVFQkMgLyogUGF0dGVy
bkNHLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
MEEzOEZEMEU1MENDODIwMEEyNUVCQyAvKiBQYXR0ZXJuQ0cuY3BwICovOyB9OwogCQlBODBENjcw
ODBFOUU5REVCMDBFNDIwRjAgLyogR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ0cuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEQ2NzA3MEU5
RTlERUIwMEU0MjBGMCAvKiBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVDRy5oICovOyB9
OwogCQlBODBFNkNFNDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTVmFsdWVMaXN0LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0JBMEExOTg5Q0Ew
MDdGQjhDNSAvKiBDU1NWYWx1ZUxpc3QuY3BwICovOyB9OwpAQCAtOTkwNCw4ICs5OTAyLDYgQEAK
IAkJQTdGMUY0QkYxNzE0OEJEQjAwQ0Q0ODUyIC8qIFN0b3JhZ2VRdW90YUNhbGxiYWNrLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5h
bWUgPSBTdG9yYWdlUXVvdGFDYWxsYmFjay5pZGw7IHBhdGggPSBNb2R1bGVzL3F1b3RhL1N0b3Jh
Z2VRdW90YUNhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQlBN0Yx
RjRDMDE3MTQ4QkRCMDBDRDQ4NTIgLyogU3RvcmFnZVVzYWdlQ2FsbGJhY2suaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFN0
b3JhZ2VVc2FnZUNhbGxiYWNrLmlkbDsgcGF0aCA9IE1vZHVsZXMvcXVvdGEvU3RvcmFnZVVzYWdl
Q2FsbGJhY2suaWRsOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCUE3RjFGNEMxMTcx
NDhCREIwMENENDg1MiAvKiBXb3JrZXJOYXZpZ2F0b3JTdG9yYWdlUXVvdGEuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFdv
cmtlck5hdmlnYXRvclN0b3JhZ2VRdW90YS5pZGw7IHBhdGggPSBNb2R1bGVzL3F1b3RhL1dvcmtl
ck5hdmlnYXRvclN0b3JhZ2VRdW90YS5pZGw7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsK
LQkJQTdGNUQ5NEQxMzg0RjAyRDAwQTI5QTg3IC8qIE5vZGVSZW5kZXJpbmdDb250ZXh0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5vZGVSZW5kZXJpbmdDb250ZXh0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTdGNUQ5NEUxMzg0RjAyRDAwQTI5
QTg3IC8qIE5vZGVSZW5kZXJpbmdDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE5vZGVSZW5kZXJpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE3RjczRUQ5MTY5QUQ3QUEwMENCQUE0QiAvKiBET01TaGFkb3dSb290LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVNoYWRvd1Jvb3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTdGNzNFREExNjlBRDdBQTAwQ0JBQTRCIC8qIERPTVNoYWRvd1Jvb3Qu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01TaGFkb3dSb290
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODBBMzhGRDBFNTBDQzgyMDBBMjVF
QkMgLyogUGF0dGVybkNHLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFBhdHRlcm5DRy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDM1MCw4ICsy
MDM0Niw2IEBACiAJCQkJODVBQ0E5RkEwQTlCNjMxMDAwNjcxRTkwIC8qIE5vZGVMaXN0LmlkbCAq
LywKIAkJCQk0RkFCNDg2NjE2NDNBNjdFMDBGNzBDMDcgLyogTm9kZVJhcmVEYXRhLmNwcCAqLywK
IAkJCQk2MzE4OUFFMjBFODNBMzMzMDAwMTJFNDEgLyogTm9kZVJhcmVEYXRhLmggKi8sCi0JCQkJ
QTdGNUQ5NEQxMzg0RjAyRDAwQTI5QTg3IC8qIE5vZGVSZW5kZXJpbmdDb250ZXh0LmNwcCAqLywK
LQkJCQlBN0Y1RDk0RTEzODRGMDJEMDBBMjlBODcgLyogTm9kZVJlbmRlcmluZ0NvbnRleHQuaCAq
LywKIAkJCQlBNzIxMUYyMzE2NzhBNTQyMDA5NTc0NDQgLyogTm9kZVJlbmRlcmluZ1RyYXZlcnNh
bC5jcHAgKi8sCiAJCQkJQTcyMTFGMjQxNjc4QTU0MjAwOTU3NDQ0IC8qIE5vZGVSZW5kZXJpbmdU
cmF2ZXJzYWwuaCAqLywKIAkJCQk2M0Q3QjMyQzBFNzhDRDNGMDBGNzYxN0MgLyogTm9kZVJlbmRl
clN0eWxlLmggKi8sCkBAIC0yMjg0Myw3ICsyMjgzNyw2IEBACiAJCQkJODU0RkU3MzUwQTIyOTdC
RTAwNThEN0FEIC8qIE5vZGVJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxODcyMUIw
OTc3RDNDMDAwNTgyNkQ5IC8qIE5vZGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk2MzE4OUFF
MzBFODNBMzMzMDAwMTJFNDEgLyogTm9kZVJhcmVEYXRhLmggaW4gSGVhZGVycyAqLywKLQkJCQlB
N0Y1RDk1MDEzODRGMDJEMDBBMjlBODcgLyogTm9kZVJlbmRlcmluZ0NvbnRleHQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE3NEYzRUY1MTY3OEIyNEYwMEIwNUE2RSAvKiBOb2RlUmVuZGVyaW5nVHJh
dmVyc2FsLmggaW4gSGVhZGVycyAqLywKIAkJCQk2M0Q3QjMyRDBFNzhDRDNGMDBGNzYxN0MgLyog
Tm9kZVJlbmRlclN0eWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDMxMDVCQjE2NzUwRjE2MDBE
QjJGQjggLyogTm9kZVRyYXZlcnNhbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjAzOCw3ICsyNjAz
MSw2IEBACiAJCQkJODU0RkU3MzIwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXJDb25kaXRp
b24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODU0RkU3MzQwQTIyOTdCRTAwNThEN0FEIC8qIE5v
ZGVJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0RkZDMDIyQjE2NDNCNzEwMDA0RTE2
MzggLyogTm9kZVJhcmVEYXRhLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE3RjVEOTRGMTM4NEYw
MkQwMEEyOUE4NyAvKiBOb2RlUmVuZGVyaW5nQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBNzRGM0VGMzE2NzhCMjRBMDBCMDVBNkUgLyogTm9kZVJlbmRlcmluZ1RyYXZlcnNhbC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlFNDMxMDVCODE2NzUwRjBDMDBEQjJGQjggLyogTm9kZVRyYXZl
cnNhbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEVBN0VCRjBBMTk0NUQwMDBBOEVGNUYgLyog
Tm90YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVz
b2x2ZXIuY3BwCShyZXZpc2lvbiAxNTQ4MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
ZXNvbHZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgzLDcgKzgzLDcgQEAKICNpbmNsdWRlICJN
ZWRpYUxpc3QuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgiCiAjaW5jbHVkZSAi
Tm9kZVJlbmRlclN0eWxlLmgiCi0jaW5jbHVkZSAiTm9kZVJlbmRlcmluZ0NvbnRleHQuaCIKKyNp
bmNsdWRlICJOb2RlUmVuZGVyaW5nVHJhdmVyc2FsLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2lu
Y2x1ZGUgIlBhZ2VSdWxlQ29sbGVjdG9yLmgiCiAjaW5jbHVkZSAiUGFpci5oIgpAQCAtNDI4LDkg
KzQyOCw5IEBAIGlubGluZSB2b2lkIFN0eWxlUmVzb2x2ZXI6OlN0YXRlOjppbml0Rm8KICAgICBt
X3JlZ2lvbkZvclN0eWxpbmcgPSByZWdpb25Gb3JTdHlsaW5nOwogCiAgICAgaWYgKGUpIHsKLSAg
ICAgICAgTm9kZVJlbmRlcmluZ0NvbnRleHQgY29udGV4dChlKTsKLSAgICAgICAgbV9wYXJlbnRO
b2RlID0gY29udGV4dC5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKLSAgICAgICAg
bV9wYXJlbnRTdHlsZSA9IGNvbnRleHQucmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgPyAwIDoKKyAg
ICAgICAgbV9wYXJlbnROb2RlID0gTm9kZVJlbmRlcmluZ1RyYXZlcnNhbDo6cGFyZW50KGUpOwor
ICAgICAgICBib29sIHJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IGhhc1NoYWRvd1Jvb3RQYXJlbnQo
ZSkgJiYgdG9TaGFkb3dSb290KGUtPnBhcmVudE5vZGUoKSktPnJlc2V0U3R5bGVJbmhlcml0YW5j
ZSgpOworICAgICAgICBtX3BhcmVudFN0eWxlID0gcmVzZXRTdHlsZUluaGVyaXRhbmNlID8gMCA6
CiAgICAgICAgICAgICBwYXJlbnRTdHlsZSA/IHBhcmVudFN0eWxlIDoKICAgICAgICAgICAgIG1f
cGFyZW50Tm9kZSA/IG1fcGFyZW50Tm9kZS0+cmVuZGVyU3R5bGUoKSA6IDA7CiAgICAgfSBlbHNl
IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAkocmV2aXNpb24gMTU0ODA1KQor
KysgU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTA2LDcgKzEwNiw2IEBACiAjaW5jbHVkZSAiTm9kZUZpbHRlci5jcHAiCiAjaW5jbHVkZSAiTm9k
ZUZpbHRlckNvbmRpdGlvbi5jcHAiCiAjaW5jbHVkZSAiTm9kZUl0ZXJhdG9yLmNwcCIKLSNpbmNs
dWRlICJOb2RlUmVuZGVyaW5nQ29udGV4dC5jcHAiCiAjaW5jbHVkZSAiTm9kZVJlbmRlcmluZ1Ry
YXZlcnNhbC5jcHAiCiAjaW5jbHVkZSAiTm90YXRpb24uY3BwIgogI2luY2x1ZGUgIk92ZXJmbG93
RXZlbnQuY3BwIgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAkocmV2aXNpb24gMTU0ODA1KQorKysgU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OSw3ICs3OSw2IEBA
CiAjaW5jbHVkZSAiTmFtZU5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiTmFtZWROb2RlTWFwLmgiCiAj
aW5jbHVkZSAiTm9kZVJhcmVEYXRhLmgiCi0jaW5jbHVkZSAiTm9kZVJlbmRlcmluZ0NvbnRleHQu
aCIKICNpbmNsdWRlICJOb2RlVHJhdmVyc2FsLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgpAQCAtOTQyLDExICs5NDEsNiBAQCBOb2RlKiBOb2Rl
Ojpwc2V1ZG9Bd2FyZUxhc3RDaGlsZCgpIGNvbnN0CiAgICAgcmV0dXJuIGxhc3RDaGlsZCgpOwog
fQogCi1Db250YWluZXJOb2RlKiBOb2RlOjpwYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUo
KQotewotICAgIHJldHVybiBOb2RlUmVuZGVyaW5nQ29udGV4dCh0aGlzKS5wYXJlbnROb2RlRm9y
UmVuZGVyaW5nQW5kU3R5bGUoKTsKLX0KLQogUmVuZGVyU3R5bGUqIE5vZGU6OnZpcnR1YWxDb21w
dXRlZFN0eWxlKFBzZXVkb0lkIHBzZXVkb0VsZW1lbnRTcGVjaWZpZXIpCiB7CiAgICAgcmV0dXJu
IHBhcmVudE9yU2hhZG93SG9zdE5vZGUoKSA/IHBhcmVudE9yU2hhZG93SG9zdE5vZGUoKS0+Y29t
cHV0ZWRTdHlsZShwc2V1ZG9FbGVtZW50U3BlY2lmaWVyKSA6IDA7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgJ
KHJldmlzaW9uIDE1NDgwNSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQ2Myw4ICs0NjMsNiBAQCBwdWJsaWM6CiAgICAgLy8gVXNlIHRoZXNlIHR3byBt
ZXRob2RzIHdpdGggY2F1dGlvbi4KICAgICBSZW5kZXJCb3gqIHJlbmRlckJveCgpIGNvbnN0Owog
ICAgIFJlbmRlckJveE1vZGVsT2JqZWN0KiByZW5kZXJCb3hNb2RlbE9iamVjdCgpIGNvbnN0Owot
Ci0gICAgQ29udGFpbmVyTm9kZSogcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCk7CiAg
ICAgCiAgICAgLy8gV3JhcHBlciBmb3Igbm9kZXMgdGhhdCBkb24ndCBoYXZlIGEgcmVuZGVyZXIs
IGJ1dCBzdGlsbCBjYWNoZSB0aGUgc3R5bGUgKGxpa2UgSFRNTE9wdGlvbkVsZW1lbnQpLgogICAg
IFJlbmRlclN0eWxlKiByZW5kZXJTdHlsZSgpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCShyZXZpc2lvbiAxNTQ4MDYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDE2MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtu
b2xsQGtkZS5vcmcpCi0gKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZp
c3RvQGtkZS5vcmcpCi0gKiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVsbGVy
QGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgs
IDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29w
eXJpZ2h0IChDKSAyMDA4LCAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJOb2RlUmVuZGVyaW5nQ29udGV4dC5oIgotCi0jaW5jbHVkZSAiQ29udGFpbmVy
Tm9kZS5oIgotI2luY2x1ZGUgIkNvbnRlbnREaXN0cmlidXRvci5oIgotI2luY2x1ZGUgIkZsb3dU
aHJlYWRDb250cm9sbGVyLmgiCi0jaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCi0jaW5j
bHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1
ZGUgIk5vZGUuaCIKLSNpbmNsdWRlICJQc2V1ZG9FbGVtZW50LmgiCi0jaW5jbHVkZSAiUmVuZGVy
RnVsbFNjcmVlbi5oIgotI2luY2x1ZGUgIlJlbmRlck5hbWVkRmxvd1RocmVhZC5oIgotI2luY2x1
ZGUgIlJlbmRlck9iamVjdC5oIgotI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKLSNpbmNsdWRlICJS
ZW5kZXJWaWV3LmgiCi0jaW5jbHVkZSAiU2hhZG93Um9vdC5oIgotI2luY2x1ZGUgIlN0eWxlSW5o
ZXJpdGVkRGF0YS5oIgotI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKLSNpbmNsdWRlICJUZXh0
LmgiCi0KLSNpZiBFTkFCTEUoU1ZHKQotI2luY2x1ZGUgIlNWR05hbWVzLmgiCi0jZW5kaWYKLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi11c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwotCi1Ob2Rl
UmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQoTm9kZSogbm9kZSkKLSAgICA6
IG1fbm9kZShub2RlKQotewotICAgIG1fcmVuZGVyaW5nUGFyZW50ID0gTm9kZVJlbmRlcmluZ1Ry
YXZlcnNhbDo6cGFyZW50KG5vZGUpOwotfQotCi1Ob2RlUmVuZGVyaW5nQ29udGV4dDo6fk5vZGVS
ZW5kZXJpbmdDb250ZXh0KCkKLXsKLX0KLQotc3RhdGljIGJvb2wgaXNSZW5kZXJlclJlcGFyZW50
ZWQoY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKLXsKLSAgICBpZiAoIXJlbmRlcmVyLT5u
b2RlKCktPmlzRWxlbWVudE5vZGUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChy
ZW5kZXJlci0+c3R5bGUoKSAmJiAhcmVuZGVyZXItPnN0eWxlKCktPmZsb3dUaHJlYWQoKS5pc0Vt
cHR5KCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotI2lmIEVOQUJMRShESUFMT0dfRUxFTUVOVCkK
LSAgICBpZiAodG9FbGVtZW50KHJlbmRlcmVyLT5ub2RlKCkpLT5pc0luVG9wTGF5ZXIoKSkKLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLVJlbmRl
ck9iamVjdCogTm9kZVJlbmRlcmluZ0NvbnRleHQ6Om5leHRSZW5kZXJlcigpIGNvbnN0Ci17Ci0g
ICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBtX25vZGUtPnJlbmRlcmVyKCkpCi0gICAg
ICAgIHJldHVybiByZW5kZXJlci0+bmV4dFNpYmxpbmcoKTsKLQotI2lmIEVOQUJMRShESUFMT0df
RUxFTUVOVCkKLSAgICBFbGVtZW50KiBlbGVtZW50ID0gbV9ub2RlLT5pc0VsZW1lbnROb2RlKCkg
PyB0b0VsZW1lbnQobV9ub2RlKSA6IDA7Ci0gICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC0+aXNJ
blRvcExheWVyKCkpIHsKLSAgICAgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxFbGVtZW50PiA+JiB0
b3BMYXllckVsZW1lbnRzID0gZWxlbWVudC0+ZG9jdW1lbnQoKS0+dG9wTGF5ZXJFbGVtZW50cygp
OwotICAgICAgICBzaXplX3QgcG9zaXRpb24gPSB0b3BMYXllckVsZW1lbnRzLmZpbmQoZWxlbWVu
dCk7Ci0gICAgICAgIEFTU0VSVChwb3NpdGlvbiAhPSBub3RGb3VuZCk7Ci0gICAgICAgIGZvciAo
c2l6ZV90IGkgPSBwb3NpdGlvbiArIDE7IGkgPCB0b3BMYXllckVsZW1lbnRzLnNpemUoKTsgKytp
KSB7Ci0gICAgICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IHRvcExheWVyRWxl
bWVudHNbaV0tPnJlbmRlcmVyKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHJlbmRlcmVyOwot
ICAgICAgICB9Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLSNlbmRpZgotCi0gICAgLy8gQXZv
aWQgYW4gTyhOXjIpIHByb2JsZW0gd2l0aCB0aGlzIGZ1bmN0aW9uIGJ5IG5vdCBjaGVja2luZyBm
b3IKLSAgICAvLyBuZXh0UmVuZGVyZXIoKSB3aGVuIHRoZSBwYXJlbnQgZWxlbWVudCBoYXNuJ3Qg
YXR0YWNoZWQgeWV0LgotICAgIGlmIChtX3JlbmRlcmluZ1BhcmVudCAmJiAhbV9yZW5kZXJpbmdQ
YXJlbnQtPmF0dGFjaGVkKCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgZm9yIChOb2RlKiBz
aWJsaW5nID0gTm9kZVJlbmRlcmluZ1RyYXZlcnNhbDo6bmV4dFNpYmxpbmcobV9ub2RlKTsgc2li
bGluZzsgc2libGluZyA9IE5vZGVSZW5kZXJpbmdUcmF2ZXJzYWw6Om5leHRTaWJsaW5nKHNpYmxp
bmcpKSB7Ci0gICAgICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBzaWJsaW5nLT5yZW5kZXJl
cigpOwotICAgICAgICBpZiAocmVuZGVyZXIgJiYgIWlzUmVuZGVyZXJSZXBhcmVudGVkKHJlbmRl
cmVyKSkKLSAgICAgICAgICAgIHJldHVybiByZW5kZXJlcjsKLSAgICB9Ci0KLSAgICByZXR1cm4g
MDsKLX0KLQotUmVuZGVyT2JqZWN0KiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6cHJldmlvdXNSZW5k
ZXJlcigpIGNvbnN0Ci17Ci0gICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBtX25vZGUt
PnJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVybiByZW5kZXJlci0+cHJldmlvdXNTaWJsaW5nKCk7
Ci0KLSNpZiBFTkFCTEUoRElBTE9HX0VMRU1FTlQpCi0gICAgLy8gRklYTUU6IFRoaXMgZG9lc24n
dCB3b3JrIGNvcnJlY3RseSBmb3IgdGhpbmdzIGluIHRoZSB0b3AgbGF5ZXIgdGhhdCBhcmUKLSAg
ICAvLyBkaXNwbGF5OiBub25lLiBXZSdkIG5lZWQgdG8gZHVwbGljYXRlIHRoZSBsb2dpYyBpbiBu
ZXh0UmVuZGVyZXIsIGJ1dCBzaW5jZQotICAgIC8vIG5vdGhpbmcgbmVlZHMgdGhhdCB5ZXQganVz
dCBhc3NlcnQuCi0gICAgQVNTRVJUKCFtX25vZGUtPmlzRWxlbWVudE5vZGUoKSB8fCAhdG9FbGVt
ZW50KG1fbm9kZSktPmlzSW5Ub3BMYXllcigpKTsKLSNlbmRpZgotCi0gICAgLy8gRklYTUU6IFdl
IHNob3VsZCBoYXZlIHRoZSBzYW1lIE8oTl4yKSBhdm9pZGFuY2UgYXMgbmV4dFJlbmRlcmVyIGRv
ZXMKLSAgICAvLyBob3dldmVyLCB3aGVuIEkgdHJpZWQgYWRkaW5nIGl0LCBzZXZlcmFsIHRlc3Rz
IGZhaWxlZC4KLSAgICBmb3IgKE5vZGUqIHNpYmxpbmcgPSBOb2RlUmVuZGVyaW5nVHJhdmVyc2Fs
OjpwcmV2aW91c1NpYmxpbmcobV9ub2RlKTsgc2libGluZzsgc2libGluZyA9IE5vZGVSZW5kZXJp
bmdUcmF2ZXJzYWw6OnByZXZpb3VzU2libGluZyhzaWJsaW5nKSkgewotICAgICAgICBSZW5kZXJP
YmplY3QqIHJlbmRlcmVyID0gc2libGluZy0+cmVuZGVyZXIoKTsKLSAgICAgICAgaWYgKHJlbmRl
cmVyICYmICFpc1JlbmRlcmVyUmVwYXJlbnRlZChyZW5kZXJlcikpCi0gICAgICAgICAgICByZXR1
cm4gcmVuZGVyZXI7Ci0gICAgfQotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLVJlbmRlck9iamVjdCog
Tm9kZVJlbmRlcmluZ0NvbnRleHQ6OnBhcmVudFJlbmRlcmVyKCkgY29uc3QKLXsKLSAgICBpZiAo
UmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG1fbm9kZS0+cmVuZGVyZXIoKSkKLSAgICAgICAgcmV0
dXJuIHJlbmRlcmVyLT5wYXJlbnQoKTsKLQotI2lmIEVOQUJMRShESUFMT0dfRUxFTUVOVCkKLSAg
ICBpZiAobV9ub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KG1fbm9kZSktPmlzSW5U
b3BMYXllcigpKSB7Ci0gICAgICAgIC8vIFRoZSBwYXJlbnQgcmVuZGVyZXIgb2YgdG9wIGxheWVy
IGVsZW1lbnRzIGlzIHRoZSBSZW5kZXJWaWV3LCBidXQgb25seQotICAgICAgICAvLyBpZiB0aGUg
bm9ybWFsIHBhcmVudCB3b3VsZCBoYXZlIGhhZCBhIHJlbmRlcmVyLgotICAgICAgICAvLyBGSVhN
RTogVGhpcyBiZWhhdmlvciBpc24ndCBxdWl0ZSByaWdodCBhcyB0aGUgc3BlYyBmb3IgdG9wIGxh
eWVyCi0gICAgICAgIC8vIG9ubHkgdGFsa3MgYWJvdXQgZGlzcGxheTogbm9uZSBhbmNlc3RvcnMg
c28gcHV0dGluZyBhIDxkaWFsb2c+IGluc2lkZQotICAgICAgICAvLyBhbiA8b3B0Z3JvdXA+IHNl
ZW1zIGxpa2UgaXQgc2hvdWxkIHN0aWxsIHdvcmsgZXZlbiB0aG91Z2ggdGhpcyBjaGVjawotICAg
ICAgICAvLyB3aWxsIHByZXZlbnQgaXQuCi0gICAgICAgIGlmICghbV9yZW5kZXJpbmdQYXJlbnQg
fHwgIW1fcmVuZGVyaW5nUGFyZW50LT5yZW5kZXJlcigpKQotICAgICAgICAgICAgcmV0dXJuIDA7
Ci0gICAgICAgIHJldHVybiBtX25vZGUtPmRvY3VtZW50KCktPnJlbmRlclZpZXcoKTsKLSAgICB9
Ci0jZW5kaWYKLQotICAgIHJldHVybiBtX3JlbmRlcmluZ1BhcmVudCA/IG1fcmVuZGVyaW5nUGFy
ZW50LT5yZW5kZXJlcigpIDogMDsKLX0KLQotYm9vbCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6cmVz
ZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3QKLXsKLSAgICBDb250YWluZXJOb2RlKiBwYXJlbnQg
PSBtX25vZGUtPnBhcmVudE5vZGUoKTsKLSAgICByZXR1cm4gcGFyZW50ICYmIHBhcmVudC0+aXNT
aGFkb3dSb290KCkgJiYgdG9TaGFkb3dSb290KHBhcmVudCktPnJlc2V0U3R5bGVJbmhlcml0YW5j
ZSgpOwotfQotCi19CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRl
eHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRl
eHQuaAkocmV2aXNpb24gMTU0ODA2KQorKysgU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJp
bmdDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNzAgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQotICogICAgICAgICAgIChD
KSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQotICogICAgICAgICAgIChD
KSAyMDAxIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAy
MDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBUb3JjaCBN
b2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5j
b20vKQotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoK
LSAqLwotCi0jaWZuZGVmIE5vZGVSZW5kZXJpbmdDb250ZXh0X2gKLSNkZWZpbmUgTm9kZVJlbmRl
cmluZ0NvbnRleHRfaAotCi0jaW5jbHVkZSAiTm9kZVJlbmRlcmluZ1RyYXZlcnNhbC5oIgotCi0j
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWNsYXNzIENvbnRhaW5lck5vZGU7Ci1jbGFzcyBOb2RlOwotY2xhc3MgUmVuZGVyT2JqZWN0Owot
Ci1jbGFzcyBOb2RlUmVuZGVyaW5nQ29udGV4dCB7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgTm9k
ZVJlbmRlcmluZ0NvbnRleHQoTm9kZSopOwotICAgIH5Ob2RlUmVuZGVyaW5nQ29udGV4dCgpOwot
Ci0gICAgTm9kZSogbm9kZSgpIGNvbnN0OwotICAgIENvbnRhaW5lck5vZGUqIHBhcmVudE5vZGVG
b3JSZW5kZXJpbmdBbmRTdHlsZSgpIGNvbnN0OwotICAgIGJvb2wgcmVzZXRTdHlsZUluaGVyaXRh
bmNlKCkgY29uc3Q7Ci0gICAgUmVuZGVyT2JqZWN0KiBwYXJlbnRSZW5kZXJlcigpIGNvbnN0Owot
ICAgIFJlbmRlck9iamVjdCogbmV4dFJlbmRlcmVyKCkgY29uc3Q7Ci0gICAgUmVuZGVyT2JqZWN0
KiBwcmV2aW91c1JlbmRlcmVyKCkgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgTm9kZSogbV9ub2Rl
OwotICAgIENvbnRhaW5lck5vZGUqIG1fcmVuZGVyaW5nUGFyZW50OwotfTsKLQotaW5saW5lIE5v
ZGUqIE5vZGVSZW5kZXJpbmdDb250ZXh0Ojpub2RlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9u
b2RlOwotfQotCi1pbmxpbmUgQ29udGFpbmVyTm9kZSogTm9kZVJlbmRlcmluZ0NvbnRleHQ6OnBh
cmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcmVu
ZGVyaW5nUGFyZW50OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZgpJbmRl
eDogU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCShyZXZpc2lvbiAxNTQ4MDUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93Um9vdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBhcHBseUF1dGhvclN0eWxlcygpIGNvbnN0IE9WRVJS
SURFIHsgcmV0dXJuIG1fYXBwbHlBdXRob3JTdHlsZXM7IH0KICAgICB2b2lkIHNldEFwcGx5QXV0
aG9yU3R5bGVzKGJvb2wpOwotICAgIHZpcnR1YWwgYm9vbCByZXNldFN0eWxlSW5oZXJpdGFuY2Uo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZTsgfQorICAg
IGJvb2wgcmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNldFN0eWxl
SW5oZXJpdGFuY2U7IH0KICAgICB2b2lkIHNldFJlc2V0U3R5bGVJbmhlcml0YW5jZShib29sKTsK
IAogICAgIEVsZW1lbnQqIGhvc3RFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9ob3N0RWxlbWVu
dDsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAkocmV2aXNpb24gMTU0ODA1KQorKysgU291cmNlL1dl
YkNvcmUvZG9tL1RleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw2IEBACiAKICNp
bmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9s
ZGVyLmgiCi0jaW5jbHVkZSAiTm9kZVJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJSZW5k
ZXJDb21iaW5lVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJTY29w
ZWRFdmVudFF1ZXVlLmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmgJKHJldmlzaW9uIDE1NDgwNSkKKysrIFNv
dXJjZS9XZWJDb3JlL2RvbS9UZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDYgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBOb2RlUmVuZGVyaW5nQ29udGV4dDsKIGNs
YXNzIFJlbmRlclRleHQ7CiAKIGNsYXNzIFRleHQgOiBwdWJsaWMgQ2hhcmFjdGVyRGF0YSB7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAkocmV2aXNpb24gMTU0ODA1KQorKysgU291cmNl
L1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2MSwxMSArMzYx
LDYgQEAgYm9vbCBUcmVlU2NvcGU6OmFwcGx5QXV0aG9yU3R5bGVzKCkgY29ucwogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIFRyZWVTY29wZTo6cmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIHZvaWQgVHJlZVNjb3BlOjphZG9wdElmTmVl
ZGVkKE5vZGUqIG5vZGUpCiB7CiAgICAgQVNTRVJUKHRoaXMpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvZG9tL1RyZWVTY29wZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9UcmVl
U2NvcGUuaAkocmV2aXNpb24gMTU0ODA1KQorKysgU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29w
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC05NCw3ICs5NCw2IEBAIHB1YmxpYzoKICAgICBFbGVtZW50
KiBmaW5kQW5jaG9yKGNvbnN0IFN0cmluZyYgbmFtZSk7CiAKICAgICB2aXJ0dWFsIGJvb2wgYXBw
bHlBdXRob3JTdHlsZXMoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgcmVzZXRTdHlsZUluaGVy
aXRhbmNlKCkgY29uc3Q7CiAKICAgICAvLyBVc2VkIGJ5IHRoZSBiYXNpYyBET00gbXV0YXRpb24g
bWV0aG9kcyAoZS5nLiwgYXBwZW5kQ2hpbGQoKSkuCiAgICAgdm9pZCBhZG9wdElmTmVlZGVkKE5v
ZGUqKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAJ
KHJldmlzaW9uIDE1NDgwNSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50
LmgiCisjaW5jbHVkZSAiTm9kZVJlbmRlcmluZ1RyYXZlcnNhbC5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCiAjaW5jbHVkZSAiU2hh
ZG93Um9vdC5oIgpAQCAtODYsNyArODcsNyBAQCB2b2lkIEhUTUxTdW1tYXJ5RWxlbWVudDo6ZGlk
QWRkVXNlckFnZW50CiAKIEhUTUxEZXRhaWxzRWxlbWVudCogSFRNTFN1bW1hcnlFbGVtZW50Ojpk
ZXRhaWxzRWxlbWVudCgpIGNvbnN0CiB7Ci0gICAgTm9kZSogbWF5RGV0YWlscyA9IGNvbnN0X2Nh
c3Q8SFRNTFN1bW1hcnlFbGVtZW50Kj4odGhpcyktPnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRT
dHlsZSgpOworICAgIE5vZGUqIG1heURldGFpbHMgPSBOb2RlUmVuZGVyaW5nVHJhdmVyc2FsOjpw
YXJlbnQodGhpcyk7CiAgICAgaWYgKCFtYXlEZXRhaWxzIHx8ICFtYXlEZXRhaWxzLT5oYXNUYWdO
YW1lKGRldGFpbHNUYWcpKQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8SFRNTERldGFpbHNFbGVtZW50Kj4obWF5RGV0YWlscyk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZVJlc29sdmVUcmVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZVJlc29sdmVUcmVlLmNwcAkocmV2aXNpb24gMTU0ODA2KQorKysgU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlVHJlZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMy
LDcgKzMyLDcgQEAKICNpbmNsdWRlICJFbGVtZW50VHJhdmVyc2FsLmgiCiAjaW5jbHVkZSAiRmxv
d1RocmVhZENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKLSNpbmNs
dWRlICJOb2RlUmVuZGVyaW5nQ29udGV4dC5oIgorI2luY2x1ZGUgIk5vZGVSZW5kZXJpbmdUcmF2
ZXJzYWwuaCIKICNpbmNsdWRlICJOb2RlVHJhdmVyc2FsLmgiCiAjaW5jbHVkZSAiUmVuZGVyRnVs
bFNjcmVlbi5oIgogI2luY2x1ZGUgIlJlbmRlck5hbWVkRmxvd1RocmVhZC5oIgpAQCAtMzQ2LDcg
KzM0Niw3IEBAIHN0YXRpYyB2b2lkIGNyZWF0ZVRleHRSZW5kZXJlcklmTmVlZGVkKFQKIAogICAg
IERvY3VtZW50KiBkb2N1bWVudCA9IHRleHROb2RlLmRvY3VtZW50KCk7CiAgICAgUmVmUHRyPFJl
bmRlclN0eWxlPiBzdHlsZTsKLSAgICBib29sIHJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHJlbmRl
cmluZ1BhcmVudE5vZGUtPmlzU2hhZG93Um9vdCgpICYmIHRvU2hhZG93Um9vdChyZW5kZXJpbmdQ
YXJlbnROb2RlKS0+cmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7CisgICAgYm9vbCByZXNldFN0eWxl
SW5oZXJpdGFuY2UgPSB0ZXh0Tm9kZS5wYXJlbnROb2RlKCktPmlzU2hhZG93Um9vdCgpICYmIHRv
U2hhZG93Um9vdCh0ZXh0Tm9kZS5wYXJlbnROb2RlKCkpLT5yZXNldFN0eWxlSW5oZXJpdGFuY2Uo
KTsKICAgICBpZiAocmVzZXRTdHlsZUluaGVyaXRhbmNlKQogICAgICAgICBzdHlsZSA9IGRvY3Vt
ZW50LT5lbnN1cmVTdHlsZVJlc29sdmVyKCkuZGVmYXVsdFN0eWxlRm9yRWxlbWVudCgpOwogICAg
IGVsc2UKQEAgLTY5Miw3ICs2OTIsOCBAQCB2b2lkIHJlc29sdmVUcmVlKEVsZW1lbnQqIGN1cnJl
bnQsIENoYW5nCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYm9vbCBoYXNQYXJl
bnRTdHlsZSA9IGN1cnJlbnQtPnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpICYmIGN1
cnJlbnQtPnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpLT5yZW5kZXJTdHlsZSgpOwor
ICAgIENvbnRhaW5lck5vZGUqIHJlbmRlcmluZ1BhcmVudE5vZGUgPSBOb2RlUmVuZGVyaW5nVHJh
dmVyc2FsOjpwYXJlbnQoY3VycmVudCk7CisgICAgYm9vbCBoYXNQYXJlbnRTdHlsZSA9IHJlbmRl
cmluZ1BhcmVudE5vZGUgJiYgcmVuZGVyaW5nUGFyZW50Tm9kZS0+cmVuZGVyU3R5bGUoKTsKICAg
ICBib29sIGhhc0RpcmVjdEFkamFjZW50UnVsZXMgPSBjdXJyZW50LT5jaGlsZHJlbkFmZmVjdGVk
QnlEaXJlY3RBZGphY2VudFJ1bGVzKCk7CiAgICAgYm9vbCBoYXNJbmRpcmVjdEFkamFjZW50UnVs
ZXMgPSBjdXJyZW50LT5jaGlsZHJlbkFmZmVjdGVkQnlGb3J3YXJkUG9zaXRpb25hbFJ1bGVzKCk7
CiAK
</data>
<flag name="review"
          id="232047"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>