<?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>102886</bug_id>
          
          <creation_ts>2012-11-20 23:39:06 -0800</creation_ts>
          <short_desc>HTMLCollection should use the same storage as DynamicNodeList</short_desc>
          <delta_ts>2012-11-22 01:15:10 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>
          
          <blocked>78909</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>koivisto</cc>
    
    <cc>mifenton</cc>
    
    <cc>ojan</cc>
    
    <cc>philn</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>772508</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-11-20 23:39:06 -0800</bug_when>
    <thetext>HTMLCollection should use the same storage as DynamicNodeList</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772513</commentid>
    <comment_count>1</comment_count>
      <attachid>175348</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-11-20 23:42:41 -0800</bug_when>
    <thetext>Created attachment 175348
cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772519</commentid>
    <comment_count>2</comment_count>
      <attachid>175348</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-20 23:50:31 -0800</bug_when>
    <thetext>Comment on attachment 175348
cleanup

Attachment 175348 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14901855</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773198</commentid>
    <comment_count>3</comment_count>
      <attachid>175502</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-11-21 12:59:22 -0800</bug_when>
    <thetext>Created attachment 175502
Fixed GTK+ &amp; FEL builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773201</commentid>
    <comment_count>4</comment_count>
      <attachid>175502</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-11-21 13:05:48 -0800</bug_when>
    <thetext>Comment on attachment 175502
Fixed GTK+ &amp; FEL builds

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

r=me

&gt; Source/WebCore/dom/NodeRareData.h:82
&gt; +        NodeListAtomicNameCacheMap::AddResult result = m_atomicNameCaches.add(
&gt; +        namedNodeListKey(DynamicNodeList::PastLastNodeListType + collectionType - FirstNodeCollectionType, starAtom), 0);

This spills awkwardly to the next line. You should just construct the key on a separate line.

&gt; Source/WebCore/dom/NodeRareData.h:94
&gt; +        return static_cast&lt;T*&gt;(m_atomicNameCaches.get(namedNodeListKey(DynamicNodeList::PastLastNodeListType + type - FirstNodeCollectionType, starAtom)));

This is pretty long too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773215</commentid>
    <comment_count>5</comment_count>
      <attachid>175502</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-21 13:22:49 -0800</bug_when>
    <thetext>Comment on attachment 175502
Fixed GTK+ &amp; FEL builds

Attachment 175502 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14950119</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773235</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-11-21 13:38:57 -0800</bug_when>
    <thetext>Committed r135429: &lt;http://trac.webkit.org/changeset/135429&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773261</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-11-21 14:03:53 -0800</bug_when>
    <thetext>One more build fix for EFL &amp; GTK+ landed in http://trac.webkit.org/changeset/135431.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773669</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-11-22 00:14:24 -0800</bug_when>
    <thetext>Curious what (if any) memory/perf effects this is expected to have.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773712</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-11-22 01:15:10 -0800</bug_when>
    <thetext>It shouldn&apos;t have any.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175348</attachid>
            <date>2012-11-20 23:42:41 -0800</date>
            <delta_ts>2012-11-21 12:59:19 -0800</delta_ts>
            <desc>cleanup</desc>
            <filename>bug-102886-20121120234029.patch</filename>
            <type>text/plain</type>
            <size>18722</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNTM1NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBACisyMDEyLTExLTIwICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEhUTUxDb2xsZWN0aW9uIHNob3Vs
ZCB1c2UgdGhlIHNhbWUgc3RvcmFnZSBhcyBEeW5hbWljTm9kZUxpc3QKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjg4NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBFbGVt
ZW50UmFyZURhdGE6Om1fY29sbGVjdGlvbi4gSFRNTENvbGxlY3Rpb25zIGFyZSBub3cgaGVsZCBi
eQorICAgICAgICBOb2RlTGlzdE5vZGVEYXRhIGluIE5vZGVSYXJlRGF0YSBsaWtlIER5bmFtaWNO
b2RlTGlzdHMuIFRoaXMgc2ltcGxpZmllcyBzZXZlcmFsCisgICAgICAgIEVsZW1lbnQgYW5kIE5v
ZGUgZnVuY3Rpb25zIHdoZXJlIHdlIHVzZWQgdG8gY2FsbCBpbnRvIGJvdGggRWxlbWVudFJhcmVE
YXRhIGFuZAorICAgICAgICBOb2RlUmFyZURhdGEgdG8gaW52YWxpZGF0ZSBjYWNoZXMuCisKKyAg
ICAgICAgVGhpcyBpcyBhIHJlZmFjdG9yaW5nIGFuZCB0aGVyZSBzaG91bGQgYmUgbm8gYmVoYXZp
b3JhbCBjaGFuZ2UuCisKKyAgICAgICAgKiBkb20vRHluYW1pY05vZGVMaXN0Lmg6CisgICAgICAg
ICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJhcmVEYXRhOjpl
bnN1cmVDYWNoZWRIVE1MQ29sbGVjdGlvbik6CisgICAgICAgICogZG9tL0VsZW1lbnRSYXJlRGF0
YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UmFyZURhdGE6OnJlcG9ydE1lbW9yeVVz
YWdlKToKKyAgICAgICAgKiBkb20vRWxlbWVudFJhcmVEYXRhLmg6CisgICAgICAgIChFbGVtZW50
UmFyZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJhcmVEYXRhOjpjYWNoZWRIVE1M
Q29sbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UmFyZURhdGE6OnJlbW92ZUNh
Y2hlZEhUTUxDb2xsZWN0aW9uKToKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpOb2RlOjppbnZhbGlkYXRlTm9kZUxpc3RDYWNoZXNJbkFuY2VzdG9ycyk6CisgICAg
ICAgICogZG9tL05vZGVSYXJlRGF0YS5oOgorICAgICAgICAoTm9kZUxpc3RzTm9kZURhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6Tm9kZUxpc3RzTm9kZURhdGE6OmFkZENhY2hlV2l0aEF0b21pY05h
bWUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUxpc3RzTm9kZURhdGE6OmNhY2hlV2l0aEF0b21p
Y05hbWUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUxpc3RzTm9kZURhdGE6OnJlbW92ZUNhY2hl
V2l0aEF0b21pY05hbWUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUxpc3RzTm9kZURhdGE6OmFk
b3B0VHJlZVNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVMaXN0c05vZGVEYXRhOjpuYW1l
ZE5vZGVMaXN0S2V5KToKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlQWRvcHRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUcmVlU2NvcGVBZG9wdGVyOjptb3ZlVHJlZVRvTmV3U2NvcGUpOgorICAg
ICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb246OmNyZWF0ZSk6CisgICAgICAgICogaHRt
bC9IVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5oOgorICAgICAgICAoSFRNTEZvcm1Db250cm9s
c0NvbGxlY3Rpb24pOgorICAgICAgICAqIGh0bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxPcHRpb25zQ29sbGVjdGlvbjo6Y3JlYXRlKToKKyAgICAg
ICAgKiBodG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5oOgorICAgICAgICAoSFRNTE9wdGlvbnND
b2xsZWN0aW9uKToKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uOjpjcmVhdGUpOgorICAg
ICAgICAqIGh0bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaDoKKyAgICAgICAgKEhUTUxUYWJs
ZVJvd3NDb2xsZWN0aW9uKToKKwogMjAxMi0xMS0yMCAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4XSBSZW1vdmUgdjgvY3VzdG9tL1Y4WE1MSHR0cFJl
cXVlc3RDb25zdHJ1Y3Rvci5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9EeW5hbWljTm9k
ZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0
LmgJKHJldmlzaW9uIDEzNTMyNykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9EeW5hbWljTm9kZUxp
c3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTk5LDYgKzE5OSw3IEBAIHB1YmxpYzoKICAgICAgICAg
TGFiZWxzTm9kZUxpc3RUeXBlLAogICAgICAgICBNaWNyb0RhdGFJdGVtTGlzdFR5cGUsCiAgICAg
ICAgIFByb3BlcnR5Tm9kZUxpc3RUeXBlLAorICAgICAgICBQYXN0TGFzdE5vZGVMaXN0VHlwZSwK
ICAgICB9OwogICAgIER5bmFtaWNOb2RlTGlzdChQYXNzUmVmUHRyPE5vZGU+IG93bmVyTm9kZSwg
Tm9kZUxpc3RUeXBlIHR5cGUsIE5vZGVMaXN0Um9vdFR5cGUgcm9vdFR5cGUsIE5vZGVMaXN0SW52
YWxpZGF0aW9uVHlwZSBpbnZhbGlkYXRpb25UeXBlKQogICAgICAgICA6IER5bmFtaWNOb2RlTGlz
dENhY2hlQmFzZShvd25lck5vZGUuZ2V0KCksIHJvb3RUeXBlLCBpbnZhbGlkYXRpb25UeXBlLCB0
eXBlID09IENoaWxkTm9kZUxpc3RUeXBlLCBOb2RlTGlzdENvbGxlY3Rpb25UeXBlLCBEb2VzTm90
T3ZlcnJpZGVJdGVtQWZ0ZXIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCShyZXZpc2lvbiAx
MzUzMjUpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI0MTksMzMgKzI0MTksMjUgQEAgUGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gRWxlbWVu
dDo6ZW5zdQogCiBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBFbGVtZW50UmFyZURhdGE6OmVu
c3VyZUNhY2hlZEhUTUxDb2xsZWN0aW9uKEVsZW1lbnQqIGVsZW1lbnQsIENvbGxlY3Rpb25UeXBl
IHR5cGUpCiB7Ci0gICAgaWYgKCFtX2NhY2hlZENvbGxlY3Rpb25zKSB7Ci0gICAgICAgIG1fY2Fj
aGVkQ29sbGVjdGlvbnMgPSBhZG9wdFB0cihuZXcgQ2FjaGVkSFRNTENvbGxlY3Rpb25BcnJheSk7
Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBOdW1Ob2RlQ29sbGVjdGlvblR5cGVz
OyBpKyspCi0gICAgICAgICAgICAoKm1fY2FjaGVkQ29sbGVjdGlvbnMpW2ldID0gMDsKLSAgICB9
Ci0KLSAgICBpZiAoSFRNTENvbGxlY3Rpb24qIGNvbGxlY3Rpb24gPSAoKm1fY2FjaGVkQ29sbGVj
dGlvbnMpW3R5cGUgLSBGaXJzdE5vZGVDb2xsZWN0aW9uVHlwZV0pCisgICAgaWYgKEhUTUxDb2xs
ZWN0aW9uKiBjb2xsZWN0aW9uID0gY2FjaGVkSFRNTENvbGxlY3Rpb24odHlwZSkpCiAgICAgICAg
IHJldHVybiBjb2xsZWN0aW9uOwogCiAgICAgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBjb2xsZWN0
aW9uOwogICAgIGlmICh0eXBlID09IFRhYmxlUm93cykgewogICAgICAgICBBU1NFUlQoZWxlbWVu
dC0+aGFzVGFnTmFtZSh0YWJsZVRhZykpOwotICAgICAgICBjb2xsZWN0aW9uID0gSFRNTFRhYmxl
Um93c0NvbGxlY3Rpb246OmNyZWF0ZShlbGVtZW50KTsKKyAgICAgICAgcmV0dXJuIGVuc3VyZU5v
ZGVMaXN0cygpLT5hZGRDYWNoZVdpdGhBdG9taWNOYW1lPEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9u
PihlbGVtZW50LCB0eXBlKTsKICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gU2VsZWN0T3B0aW9ucykg
ewogICAgICAgICBBU1NFUlQoZWxlbWVudC0+aGFzVGFnTmFtZShzZWxlY3RUYWcpKTsKLSAgICAg
ICAgY29sbGVjdGlvbiA9IEhUTUxPcHRpb25zQ29sbGVjdGlvbjo6Y3JlYXRlKGVsZW1lbnQpOwor
ICAgICAgICByZXR1cm4gZW5zdXJlTm9kZUxpc3RzKCktPmFkZENhY2hlV2l0aEF0b21pY05hbWU8
SFRNTE9wdGlvbnNDb2xsZWN0aW9uPihlbGVtZW50LCB0eXBlKTsKICAgICB9IGVsc2UgaWYgKHR5
cGUgPT0gRm9ybUNvbnRyb2xzKSB7CiAgICAgICAgIEFTU0VSVChlbGVtZW50LT5oYXNUYWdOYW1l
KGZvcm1UYWcpIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoZmllbGRzZXRUYWcpKTsKLSAgICAgICAg
Y29sbGVjdGlvbiA9IEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uOjpjcmVhdGUoZWxlbWVudCk7
CisgICAgICAgIHJldHVybiBlbnN1cmVOb2RlTGlzdHMoKS0+YWRkQ2FjaGVXaXRoQXRvbWljTmFt
ZTxIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbj4oZWxlbWVudCwgdHlwZSk7CiAjaWYgRU5BQkxF
KE1JQ1JPREFUQSkKLSAgICB9IGVsc2UgaWYgKHR5cGUgPT0gSXRlbVByb3BlcnRpZXMpIHsKLSAg
ICAgICAgY29sbGVjdGlvbiA9IEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6Y3JlYXRlKGVsZW1l
bnQpOworICAgIH0gZWxzZSBpZiAobm9kZUxpc3RzKCktPnR5cGUgPT0gSXRlbVByb3BlcnRpZXMp
IHsKKyAgICAgICAgcmV0dXJuIGVuc3VyZU5vZGVMaXN0cygpLT5hZGRDYWNoZVdpdGhBdG9taWNO
YW1lPEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbj4oZWxlbWVudCwgdHlwZSk7CiAjZW5kaWYKLSAg
ICB9IGVsc2UKLSAgICAgICAgY29sbGVjdGlvbiA9IEhUTUxDb2xsZWN0aW9uOjpjcmVhdGUoZWxl
bWVudCwgdHlwZSk7Ci0gICAgKCptX2NhY2hlZENvbGxlY3Rpb25zKVt0eXBlIC0gRmlyc3ROb2Rl
Q29sbGVjdGlvblR5cGVdID0gY29sbGVjdGlvbi5nZXQoKTsKLSAgICByZXR1cm4gY29sbGVjdGlv
bi5yZWxlYXNlKCk7CisgICAgfQorICAgIHJldHVybiBlbnN1cmVOb2RlTGlzdHMoKS0+YWRkQ2Fj
aGVXaXRoQXRvbWljTmFtZTxIVE1MQ29sbGVjdGlvbj4oZWxlbWVudCwgdHlwZSk7CiB9CiAKIEhU
TUxDb2xsZWN0aW9uKiBFbGVtZW50OjpjYWNoZWRIVE1MQ29sbGVjdGlvbihDb2xsZWN0aW9uVHlw
ZSB0eXBlKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5jcHAJKHJldmlz
aW9uIDEzNTMyNSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw2IEBAIHZvaWQgRWxlbWVudFJhcmVEYXRhOjpyZXBv
cnRNZW1vcnlVc2FnZSgKIHsKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJ
bmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSk7CiAgICAgTm9kZVJhcmVEYXRhOjpy
ZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKLSAgICBpbmZvLmFkZE1lbWJlciht
X2NhY2hlZENvbGxlY3Rpb25zKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2NvbXB1dGVkU3R5bGUp
OwogCiAgICAgaW5mby5hZGRNZW1iZXIobV9kYXRhc2V0RE9NU3RyaW5nTWFwKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgJKHJldmlzaW9uIDEzNTMyNSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNTgsNjAg
KzU4LDIwIEBAIHB1YmxpYzoKICAgICB1c2luZyBOb2RlUmFyZURhdGE6OnNldElzSW5Ub3BMYXll
cjsKICNlbmRpZgogCi0gICAgYm9vbCBoYXNDYWNoZWRIVE1MQ29sbGVjdGlvbnMoKSBjb25zdAot
ICAgIHsKLSAgICAgICAgcmV0dXJuIG1fY2FjaGVkQ29sbGVjdGlvbnM7Ci0gICAgfQotCiAgICAg
UGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gZW5zdXJlQ2FjaGVkSFRNTENvbGxlY3Rpb24oRWxl
bWVudCosIENvbGxlY3Rpb25UeXBlKTsKICAgICBIVE1MQ29sbGVjdGlvbiogY2FjaGVkSFRNTENv
bGxlY3Rpb24oQ29sbGVjdGlvblR5cGUgdHlwZSkKICAgICB7Ci0gICAgICAgIGlmICghbV9jYWNo
ZWRDb2xsZWN0aW9ucykKLSAgICAgICAgICAgIHJldHVybiAwOwotCi0gICAgICAgIHJldHVybiAo
Km1fY2FjaGVkQ29sbGVjdGlvbnMpW3R5cGUgLSBGaXJzdE5vZGVDb2xsZWN0aW9uVHlwZV07Cisg
ICAgICAgIHJldHVybiBub2RlTGlzdHMoKSA/IG5vZGVMaXN0cygpLT5jYWNoZVdpdGhBdG9taWNO
YW1lPEhUTUxDb2xsZWN0aW9uPih0eXBlKSA6IDA7CiAgICAgfQogCiAgICAgdm9pZCByZW1vdmVD
YWNoZWRIVE1MQ29sbGVjdGlvbihIVE1MQ29sbGVjdGlvbiogY29sbGVjdGlvbiwgQ29sbGVjdGlv
blR5cGUgdHlwZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX2NhY2hlZENvbGxlY3Rpb25zKTsK
LSAgICAgICAgQVNTRVJUX1VOVVNFRChjb2xsZWN0aW9uLCAoKm1fY2FjaGVkQ29sbGVjdGlvbnMp
W3R5cGUgLSBGaXJzdE5vZGVDb2xsZWN0aW9uVHlwZV0gPT0gY29sbGVjdGlvbik7Ci0gICAgICAg
ICgqbV9jYWNoZWRDb2xsZWN0aW9ucylbdHlwZSAtIEZpcnN0Tm9kZUNvbGxlY3Rpb25UeXBlXSA9
IDA7Ci0gICAgfQotCi0gICAgdm9pZCBjbGVhckhUTUxDb2xsZWN0aW9uQ2FjaGVzKGNvbnN0IFF1
YWxpZmllZE5hbWUqIGF0dHJOYW1lKQotICAgIHsKLSAgICAgICAgaWYgKCFtX2NhY2hlZENvbGxl
Y3Rpb25zKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCAoKm1fY2FjaGVkQ29sbGVjdGlvbnMpLnNpemUoKTsgaSsrKSB7Ci0gICAgICAgICAg
ICBpZiAoSFRNTENvbGxlY3Rpb24qIGNvbGxlY3Rpb24gPSAoKm1fY2FjaGVkQ29sbGVjdGlvbnMp
W2ldKQotICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24tPmludmFsaWRhdGVDYWNoZShhdHRyTmFt
ZSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICB2b2lkIGFkb3B0VHJlZVNjb3BlKERvY3VtZW50
KiBvbGREb2N1bWVudCwgRG9jdW1lbnQqIG5ld0RvY3VtZW50KQotICAgIHsKLSAgICAgICAgaWYg
KCFtX2NhY2hlZENvbGxlY3Rpb25zKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCAoKm1fY2FjaGVkQ29sbGVjdGlvbnMpLnNpemUoKTsgaSsr
KSB7Ci0gICAgICAgICAgICBIVE1MQ29sbGVjdGlvbiogY29sbGVjdGlvbiA9ICgqbV9jYWNoZWRD
b2xsZWN0aW9ucylbaV07Ci0gICAgICAgICAgICBpZiAoIWNvbGxlY3Rpb24pCi0gICAgICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBjb2xsZWN0aW9uLT5pbnZhbGlkYXRlQ2FjaGUo
KTsKLSAgICAgICAgICAgIGlmIChvbGREb2N1bWVudCAhPSBuZXdEb2N1bWVudCkgewotICAgICAg
ICAgICAgICAgIG9sZERvY3VtZW50LT51bnJlZ2lzdGVyTm9kZUxpc3RDYWNoZShjb2xsZWN0aW9u
KTsKLSAgICAgICAgICAgICAgICBuZXdEb2N1bWVudC0+cmVnaXN0ZXJOb2RlTGlzdENhY2hlKGNv
bGxlY3Rpb24pOwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgICAgIEFTU0VSVChub2Rl
TGlzdHMoKSk7CisgICAgICAgIG5vZGVMaXN0cygpLT5yZW1vdmVDYWNoZVdpdGhBdG9taWNOYW1l
KGNvbGxlY3Rpb24sIHR5cGUpOwogICAgIH0KIAogICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CiAKLSAgICB0eXBlZGVm
IEZpeGVkQXJyYXk8SFRNTENvbGxlY3Rpb24qLCBOdW1Ob2RlQ29sbGVjdGlvblR5cGVzPiBDYWNo
ZWRIVE1MQ29sbGVjdGlvbkFycmF5OwotICAgIE93blB0cjxDYWNoZWRIVE1MQ29sbGVjdGlvbkFy
cmF5PiBtX2NhY2hlZENvbGxlY3Rpb25zOwotCiAgICAgTGF5b3V0U2l6ZSBtX21pbmltdW1TaXpl
Rm9yUmVzaXppbmc7CiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBtX2NvbXB1dGVkU3R5bGU7CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAJKHJldmlzaW9uIDEzNTMyNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAyMiw4ICsxMDIyLDYgQEAgdm9pZCBO
b2RlOjppbnZhbGlkYXRlTm9kZUxpc3RDYWNoZXNJbkFuYwogICAgICAgICBOb2RlUmFyZURhdGEq
IGRhdGEgPSBub2RlLT5yYXJlRGF0YSgpOwogICAgICAgICBpZiAoZGF0YS0+bm9kZUxpc3RzKCkp
CiAgICAgICAgICAgICBkYXRhLT5ub2RlTGlzdHMoKS0+aW52YWxpZGF0ZUNhY2hlcyhhdHRyTmFt
ZSk7Ci0gICAgICAgIGlmIChub2RlLT5pc0VsZW1lbnROb2RlKCkpCi0gICAgICAgICAgICBzdGF0
aWNfY2FzdDxFbGVtZW50UmFyZURhdGEqPihkYXRhKS0+Y2xlYXJIVE1MQ29sbGVjdGlvbkNhY2hl
cyhhdHRyTmFtZSk7CiAgICAgfQogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJh
cmVEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5o
CShyZXZpc2lvbiAxMzUzMjUpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogICAgICAgICBzdGF0aWMg
Y29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IERlZmF1bHRIYXNoPFN0
cmluZ1R5cGU+OjpIYXNoOjpzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZDsKICAgICB9Owog
Ci0gICAgdHlwZWRlZiBIYXNoTWFwPHN0ZDo6cGFpcjx1bnNpZ25lZCBjaGFyLCBBdG9taWNTdHJp
bmc+LCBEeW5hbWljU3VidHJlZU5vZGVMaXN0KiwgTm9kZUxpc3RDYWNoZU1hcEVudHJ5SGFzaDxB
dG9taWNTdHJpbmc+ID4gTm9kZUxpc3RBdG9taWNOYW1lQ2FjaGVNYXA7CisgICAgdHlwZWRlZiBI
YXNoTWFwPHN0ZDo6cGFpcjx1bnNpZ25lZCBjaGFyLCBBdG9taWNTdHJpbmc+LCBEeW5hbWljTm9k
ZUxpc3RDYWNoZUJhc2UqLCBOb2RlTGlzdENhY2hlTWFwRW50cnlIYXNoPEF0b21pY1N0cmluZz4g
PiBOb2RlTGlzdEF0b21pY05hbWVDYWNoZU1hcDsKICAgICB0eXBlZGVmIEhhc2hNYXA8c3RkOjpw
YWlyPHVuc2lnbmVkIGNoYXIsIFN0cmluZz4sIER5bmFtaWNTdWJ0cmVlTm9kZUxpc3QqLCBOb2Rl
TGlzdENhY2hlTWFwRW50cnlIYXNoPFN0cmluZz4gPiBOb2RlTGlzdE5hbWVDYWNoZU1hcDsKICAg
ICB0eXBlZGVmIEhhc2hNYXA8UXVhbGlmaWVkTmFtZSwgVGFnTm9kZUxpc3QqPiBUYWdOb2RlTGlz
dENhY2hlTlM7CiAKQEAgLTc2LDYgKzc2LDI1IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgorICAgIFBhc3NSZWZQdHI8VD4gYWRkQ2FjaGVXaXRoQXRvbWljTmFt
ZShFbGVtZW50KiBub2RlLCBDb2xsZWN0aW9uVHlwZSBjb2xsZWN0aW9uVHlwZSkKKyAgICB7Cisg
ICAgICAgIE5vZGVMaXN0QXRvbWljTmFtZUNhY2hlTWFwOjpBZGRSZXN1bHQgcmVzdWx0ID0gbV9h
dG9taWNOYW1lQ2FjaGVzLmFkZCgKKyAgICAgICAgbmFtZWROb2RlTGlzdEtleShEeW5hbWljTm9k
ZUxpc3Q6OlBhc3RMYXN0Tm9kZUxpc3RUeXBlICsgY29sbGVjdGlvblR5cGUgLSBGaXJzdE5vZGVD
b2xsZWN0aW9uVHlwZSwgc3RhckF0b20pLCAwKTsKKyAgICAgICAgaWYgKCFyZXN1bHQuaXNOZXdF
bnRyeSkKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxUKj4ocmVzdWx0Lml0ZXJhdG9y
LT52YWx1ZSk7CisKKyAgICAgICAgUmVmUHRyPFQ+IGxpc3QgPSBUOjpjcmVhdGUobm9kZSwgY29s
bGVjdGlvblR5cGUpOworICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gbGlzdC5nZXQo
KTsKKyAgICAgICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOworICAgIH0KKworICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+CisgICAgVCogY2FjaGVXaXRoQXRvbWljTmFtZShDb2xsZWN0aW9uVHlwZSB0
eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFQqPihtX2F0b21pY05hbWVD
YWNoZXMuZ2V0KG5hbWVkTm9kZUxpc3RLZXkoRHluYW1pY05vZGVMaXN0OjpQYXN0TGFzdE5vZGVM
aXN0VHlwZSArIHR5cGUgLSBGaXJzdE5vZGVDb2xsZWN0aW9uVHlwZSwgc3RhckF0b20pKSk7Cisg
ICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICBQYXNzUmVmUHRyPFQ+IGFkZENh
Y2hlV2l0aE5hbWUoTm9kZSogbm9kZSwgRHluYW1pY05vZGVMaXN0OjpOb2RlTGlzdFR5cGUgbGlz
dFR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICB7CiAgICAgICAgIE5vZGVMaXN0TmFtZUNh
Y2hlTWFwOjpBZGRSZXN1bHQgcmVzdWx0ID0gbV9uYW1lQ2FjaGVzLmFkZChuYW1lZE5vZGVMaXN0
S2V5KGxpc3RUeXBlLCBuYW1lKSwgMCk7CkBAIC05OSwxMiArMTE4LDE5IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOwogICAgIH0KIAotICAgIHZvaWQgcmVtb3ZlQ2Fj
aGVXaXRoQXRvbWljTmFtZShEeW5hbWljU3VidHJlZU5vZGVMaXN0KiBsaXN0LCBEeW5hbWljTm9k
ZUxpc3Q6Ok5vZGVMaXN0VHlwZSBsaXN0VHlwZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQor
ICAgIHZvaWQgcmVtb3ZlQ2FjaGVXaXRoQXRvbWljTmFtZShEeW5hbWljTm9kZUxpc3RDYWNoZUJh
c2UqIGxpc3QsIER5bmFtaWNOb2RlTGlzdDo6Tm9kZUxpc3RUeXBlIGxpc3RUeXBlLCBjb25zdCBB
dG9taWNTdHJpbmcmIG5hbWUpCiAgICAgewogICAgICAgICBBU1NFUlRfVU5VU0VEKGxpc3QsIGxp
c3QgPT0gbV9hdG9taWNOYW1lQ2FjaGVzLmdldChuYW1lZE5vZGVMaXN0S2V5KGxpc3RUeXBlLCBu
YW1lKSkpOwogICAgICAgICBtX2F0b21pY05hbWVDYWNoZXMucmVtb3ZlKG5hbWVkTm9kZUxpc3RL
ZXkobGlzdFR5cGUsIG5hbWUpKTsKICAgICB9CiAKKyAgICB2b2lkIHJlbW92ZUNhY2hlV2l0aEF0
b21pY05hbWUoRHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlKiBsaXN0LCBDb2xsZWN0aW9uVHlwZSBj
b2xsZWN0aW9uVHlwZSkKKyAgICB7CisgICAgICAgIHVuc2lnbmVkIGNoYXIgdHlwZSA9IER5bmFt
aWNOb2RlTGlzdDo6UGFzdExhc3ROb2RlTGlzdFR5cGUgKyBjb2xsZWN0aW9uVHlwZSAtIEZpcnN0
Tm9kZUNvbGxlY3Rpb25UeXBlOworICAgICAgICBBU1NFUlRfVU5VU0VEKGxpc3QsIGxpc3QgPT0g
bV9hdG9taWNOYW1lQ2FjaGVzLmdldChuYW1lZE5vZGVMaXN0S2V5KHR5cGUsIHN0YXJBdG9tKSkp
OworICAgICAgICBtX2F0b21pY05hbWVDYWNoZXMucmVtb3ZlKG5hbWVkTm9kZUxpc3RLZXkodHlw
ZSwgc3RhckF0b20pKTsKKyAgICB9CisKICAgICB2b2lkIHJlbW92ZUNhY2hlV2l0aE5hbWUoRHlu
YW1pY1N1YnRyZWVOb2RlTGlzdCogbGlzdCwgRHluYW1pY05vZGVMaXN0OjpOb2RlTGlzdFR5cGUg
bGlzdFR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVT
RUQobGlzdCwgbGlzdCA9PSBtX25hbWVDYWNoZXMuZ2V0KG5hbWVkTm9kZUxpc3RLZXkobGlzdFR5
cGUsIG5hbWUpKSk7CkBAIC0xMzYsMjEgKzE2MiwyMSBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChv
bGREb2N1bWVudCAhPSBuZXdEb2N1bWVudCkgewogICAgICAgICAgICAgTm9kZUxpc3RBdG9taWNO
YW1lQ2FjaGVNYXA6OmNvbnN0X2l0ZXJhdG9yIGF0b21pY05hbWVDYWNoZUVuZCA9IG1fYXRvbWlj
TmFtZUNhY2hlcy5lbmQoKTsKICAgICAgICAgICAgIGZvciAoTm9kZUxpc3RBdG9taWNOYW1lQ2Fj
aGVNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9hdG9taWNOYW1lQ2FjaGVzLmJlZ2luKCk7IGl0
ICE9IGF0b21pY05hbWVDYWNoZUVuZDsgKytpdCkgewotICAgICAgICAgICAgICAgIER5bmFtaWNT
dWJ0cmVlTm9kZUxpc3QqIGxpc3QgPSBpdC0+dmFsdWU7CisgICAgICAgICAgICAgICAgRHluYW1p
Y05vZGVMaXN0Q2FjaGVCYXNlKiBsaXN0ID0gaXQtPnZhbHVlOwogICAgICAgICAgICAgICAgIG9s
ZERvY3VtZW50LT51bnJlZ2lzdGVyTm9kZUxpc3RDYWNoZShsaXN0KTsKICAgICAgICAgICAgICAg
ICBuZXdEb2N1bWVudC0+cmVnaXN0ZXJOb2RlTGlzdENhY2hlKGxpc3QpOwogICAgICAgICAgICAg
fQogCiAgICAgICAgICAgICBOb2RlTGlzdE5hbWVDYWNoZU1hcDo6Y29uc3RfaXRlcmF0b3IgbmFt
ZUNhY2hlRW5kID0gbV9uYW1lQ2FjaGVzLmVuZCgpOwogICAgICAgICAgICAgZm9yIChOb2RlTGlz
dE5hbWVDYWNoZU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX25hbWVDYWNoZXMuYmVnaW4oKTsg
aXQgIT0gbmFtZUNhY2hlRW5kOyArK2l0KSB7Ci0gICAgICAgICAgICAgICAgRHluYW1pY1N1YnRy
ZWVOb2RlTGlzdCogbGlzdCA9IGl0LT52YWx1ZTsKKyAgICAgICAgICAgICAgICBEeW5hbWljTm9k
ZUxpc3RDYWNoZUJhc2UqIGxpc3QgPSBpdC0+dmFsdWU7CiAgICAgICAgICAgICAgICAgb2xkRG9j
dW1lbnQtPnVucmVnaXN0ZXJOb2RlTGlzdENhY2hlKGxpc3QpOwogICAgICAgICAgICAgICAgIG5l
d0RvY3VtZW50LT5yZWdpc3Rlck5vZGVMaXN0Q2FjaGUobGlzdCk7CiAgICAgICAgICAgICB9CiAK
ICAgICAgICAgICAgIFRhZ05vZGVMaXN0Q2FjaGVOUzo6Y29uc3RfaXRlcmF0b3IgdGFnRW5kID0g
bV90YWdOb2RlTGlzdENhY2hlTlMuZW5kKCk7CiAgICAgICAgICAgICBmb3IgKFRhZ05vZGVMaXN0
Q2FjaGVOUzo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3RhZ05vZGVMaXN0Q2FjaGVOUy5iZWdpbigp
OyBpdCAhPSB0YWdFbmQ7ICsraXQpIHsKLSAgICAgICAgICAgICAgICBEeW5hbWljU3VidHJlZU5v
ZGVMaXN0KiBsaXN0ID0gaXQtPnZhbHVlOworICAgICAgICAgICAgICAgIER5bmFtaWNOb2RlTGlz
dENhY2hlQmFzZSogbGlzdCA9IGl0LT52YWx1ZTsKICAgICAgICAgICAgICAgICBBU1NFUlQoIWxp
c3QtPmlzUm9vdGVkQXREb2N1bWVudCgpKTsKICAgICAgICAgICAgICAgICBvbGREb2N1bWVudC0+
dW5yZWdpc3Rlck5vZGVMaXN0Q2FjaGUobGlzdCk7CiAgICAgICAgICAgICAgICAgbmV3RG9jdW1l
bnQtPnJlZ2lzdGVyTm9kZUxpc3RDYWNoZShsaXN0KTsKQEAgLTE2MywxMiArMTg5LDEyIEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgTm9kZUxpc3RzTm9kZURhdGEoKSB7IH0KIAotICAgIHN0ZDo6
cGFpcjx1bnNpZ25lZCBjaGFyLCBBdG9taWNTdHJpbmc+IG5hbWVkTm9kZUxpc3RLZXkoRHluYW1p
Y05vZGVMaXN0OjpOb2RlTGlzdFR5cGUgbGlzdFR5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSkKKyAgICBzdGQ6OnBhaXI8dW5zaWduZWQgY2hhciwgQXRvbWljU3RyaW5nPiBuYW1lZE5vZGVM
aXN0S2V5KHVuc2lnbmVkIGNoYXIgbGlzdFR5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkK
ICAgICB7CiAgICAgICAgIHJldHVybiBzdGQ6OnBhaXI8dW5zaWduZWQgY2hhciwgQXRvbWljU3Ry
aW5nPihsaXN0VHlwZSwgbmFtZSk7CiAgICAgfQogCi0gICAgc3RkOjpwYWlyPHVuc2lnbmVkIGNo
YXIsIFN0cmluZz4gbmFtZWROb2RlTGlzdEtleShEeW5hbWljTm9kZUxpc3Q6Ok5vZGVMaXN0VHlw
ZSBsaXN0VHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lKQorICAgIHN0ZDo6cGFpcjx1bnNpZ25lZCBj
aGFyLCBTdHJpbmc+IG5hbWVkTm9kZUxpc3RLZXkodW5zaWduZWQgY2hhciBsaXN0VHlwZSwgY29u
c3QgU3RyaW5nJiBuYW1lKQogICAgIHsKICAgICAgICAgcmV0dXJuIHN0ZDo6cGFpcjx1bnNpZ25l
ZCBjaGFyLCBTdHJpbmc+KGxpc3RUeXBlLCBuYW1lKTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vVHJlZVNjb3BlQWRvcHRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwCShyZXZpc2lvbiAxMzUzMjUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9kb20vVHJlZVNjb3BlQWRvcHRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyLDgg
KzUyLDYgQEAgdm9pZCBUcmVlU2NvcGVBZG9wdGVyOjptb3ZlVHJlZVRvTmV3U2NvcAogICAgICAg
ICBpZiAoTm9kZVJhcmVEYXRhKiByYXJlRGF0YSA9IG5vZGUtPnNldFRyZWVTY29wZShuZXdEb2N1
bWVudCA9PSBtX25ld1Njb3BlID8gMCA6IG1fbmV3U2NvcGUpKSB7CiAgICAgICAgICAgICBpZiAo
cmFyZURhdGEtPm5vZGVMaXN0cygpKQogICAgICAgICAgICAgICAgIHJhcmVEYXRhLT5ub2RlTGlz
dHMoKS0+YWRvcHRUcmVlU2NvcGUob2xkRG9jdW1lbnQsIG5ld0RvY3VtZW50KTsKLSAgICAgICAg
ICAgIGlmIChub2RlLT5pc0VsZW1lbnROb2RlKCkpCi0gICAgICAgICAgICAgICAgc3RhdGljX2Nh
c3Q8RWxlbWVudFJhcmVEYXRhKj4ocmFyZURhdGEpLT5hZG9wdFRyZWVTY29wZShvbGREb2N1bWVu
dCwgbmV3RG9jdW1lbnQpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHdpbGxNb3ZlVG9OZXdE
b2N1bWVudCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sc0NvbGxl
Y3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250
cm9sc0NvbGxlY3Rpb24uY3BwCShyZXZpc2lvbiAxMzUzMjUpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIs
NyArNDIsNyBAQCBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbjo6SFRNTEZvcm1Db250CiAgICAg
QVNTRVJUKGJhc2UtPmhhc1RhZ05hbWUoZm9ybVRhZykgfHwgYmFzZS0+aGFzVGFnTmFtZShmaWVs
ZHNldFRhZykpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uPiBI
VE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbjo6Y3JlYXRlKEVsZW1lbnQqIGJhc2UpCitQYXNzUmVm
UHRyPEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uPiBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlv
bjo6Y3JlYXRlKEVsZW1lbnQqIGJhc2UsIENvbGxlY3Rpb25UeXBlKQogewogICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24oYmFzZSkpOwogfQpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uaAko
cmV2aXNpb24gMTM1MzI1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xz
Q29sbGVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIFF1YWxp
ZmllZE5hbWU7CiAKIGNsYXNzIEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uIDogcHVibGljIEhU
TUxDb2xsZWN0aW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MRm9ybUNv
bnRyb2xzQ29sbGVjdGlvbj4gY3JlYXRlKEVsZW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbj4gY3JlYXRlKEVsZW1lbnQqLCBDb2xsZWN0aW9u
VHlwZSk7CiAKICAgICB2aXJ0dWFsIH5IVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbigpOwogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uY3BwCShy
ZXZpc2lvbiAxMzUzMjUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25zQ29sbGVj
dGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAgSFRNTE9wdGlvbnNDb2xs
ZWN0aW9uOjpIVE1MT3B0aW9uc0NvbGxlYwogICAgIEFTU0VSVChzZWxlY3QtPmhhc1RhZ05hbWUo
SFRNTE5hbWVzOjpzZWxlY3RUYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxIVE1MT3B0aW9uc0NvbGxl
Y3Rpb24+IEhUTUxPcHRpb25zQ29sbGVjdGlvbjo6Y3JlYXRlKEVsZW1lbnQqIHNlbGVjdCkKK1Bh
c3NSZWZQdHI8SFRNTE9wdGlvbnNDb2xsZWN0aW9uPiBIVE1MT3B0aW9uc0NvbGxlY3Rpb246OmNy
ZWF0ZShFbGVtZW50KiBzZWxlY3QsIENvbGxlY3Rpb25UeXBlKQogewogICAgIHJldHVybiBhZG9w
dFJlZihuZXcgSFRNTE9wdGlvbnNDb2xsZWN0aW9uKHNlbGVjdCkpOwogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5oCShyZXZpc2lvbiAxMzUzMjUp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKIGNs
YXNzIEhUTUxPcHRpb25zQ29sbGVjdGlvbiA6IHB1YmxpYyBIVE1MQ29sbGVjdGlvbiB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTE9wdGlvbnNDb2xsZWN0aW9uPiBjcmVhdGUo
RWxlbWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxPcHRpb25zQ29sbGVjdGlvbj4g
Y3JlYXRlKEVsZW1lbnQqLCBDb2xsZWN0aW9uVHlwZSk7CiAKICAgICB2b2lkIGFkZChQYXNzUmVm
UHRyPEhUTUxPcHRpb25FbGVtZW50PiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgYWRkKFBh
c3NSZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+LCBpbnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24u
Y3BwCShyZXZpc2lvbiAxMzUzMjUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJv
d3NDb2xsZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU3LDcgKzE1Nyw3IEBAIEhUTUxU
YWJsZVJvd3NDb2xsZWN0aW9uOjpIVE1MVGFibGVSb3dzQ28KICAgICBBU1NFUlQodGFibGUtPmhh
c1RhZ05hbWUodGFibGVUYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxIVE1MVGFibGVSb3dzQ29sbGVj
dGlvbj4gSFRNTFRhYmxlUm93c0NvbGxlY3Rpb246OmNyZWF0ZShFbGVtZW50KiB0YWJsZSkKK1Bh
c3NSZWZQdHI8SFRNTFRhYmxlUm93c0NvbGxlY3Rpb24+IEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9u
OjpjcmVhdGUoRWxlbWVudCogdGFibGUsIENvbGxlY3Rpb25UeXBlKQogewogICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24odGFibGUpKTsKIH0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmgJKHJldmlzaW9u
IDEzNTMyNSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24u
aAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBIVE1MVGFibGVSb3dFbGVt
ZW50OwogCiBjbGFzcyBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbiA6IHB1YmxpYyBIVE1MQ29sbGVj
dGlvbiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFRhYmxlUm93c0NvbGxl
Y3Rpb24+IGNyZWF0ZShFbGVtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFRhYmxl
Um93c0NvbGxlY3Rpb24+IGNyZWF0ZShFbGVtZW50KiwgQ29sbGVjdGlvblR5cGUpOwogCiAgICAg
c3RhdGljIEhUTUxUYWJsZVJvd0VsZW1lbnQqIHJvd0FmdGVyKEhUTUxUYWJsZUVsZW1lbnQqLCBI
VE1MVGFibGVSb3dFbGVtZW50Kik7CiAgICAgc3RhdGljIEhUTUxUYWJsZVJvd0VsZW1lbnQqIGxh
c3RSb3coSFRNTFRhYmxlRWxlbWVudCopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175502</attachid>
            <date>2012-11-21 12:59:22 -0800</date>
            <delta_ts>2012-11-21 13:22:49 -0800</delta_ts>
            <desc>Fixed GTK+ &amp; FEL builds</desc>
            <filename>bug-102886-20121121125711.patch</filename>
            <type>text/plain</type>
            <size>19439</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNTQyNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBACisyMDEyLTExLTIwICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEhUTUxDb2xsZWN0aW9uIHNob3Vs
ZCB1c2UgdGhlIHNhbWUgc3RvcmFnZSBhcyBEeW5hbWljTm9kZUxpc3QKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjg4NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBFbGVt
ZW50UmFyZURhdGE6Om1fY29sbGVjdGlvbi4gSFRNTENvbGxlY3Rpb25zIGFyZSBub3cgaGVsZCBi
eQorICAgICAgICBOb2RlTGlzdE5vZGVEYXRhIGluIE5vZGVSYXJlRGF0YSBsaWtlIER5bmFtaWNO
b2RlTGlzdHMuIFRoaXMgc2ltcGxpZmllcyBzZXZlcmFsCisgICAgICAgIEVsZW1lbnQgYW5kIE5v
ZGUgZnVuY3Rpb25zIHdoZXJlIHdlIHVzZWQgdG8gY2FsbCBpbnRvIGJvdGggRWxlbWVudFJhcmVE
YXRhIGFuZAorICAgICAgICBOb2RlUmFyZURhdGEgdG8gaW52YWxpZGF0ZSBjYWNoZXMuCisKKyAg
ICAgICAgVGhpcyBpcyBhIHJlZmFjdG9yaW5nIGFuZCB0aGVyZSBzaG91bGQgYmUgbm8gYmVoYXZp
b3JhbCBjaGFuZ2UuCisKKyAgICAgICAgKiBkb20vRHluYW1pY05vZGVMaXN0Lmg6CisgICAgICAg
ICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJhcmVEYXRhOjpl
bnN1cmVDYWNoZWRIVE1MQ29sbGVjdGlvbik6CisgICAgICAgICogZG9tL0VsZW1lbnRSYXJlRGF0
YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UmFyZURhdGE6OnJlcG9ydE1lbW9yeVVz
YWdlKToKKyAgICAgICAgKiBkb20vRWxlbWVudFJhcmVEYXRhLmg6CisgICAgICAgIChFbGVtZW50
UmFyZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJhcmVEYXRhOjpjYWNoZWRIVE1M
Q29sbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UmFyZURhdGE6OnJlbW92ZUNh
Y2hlZEhUTUxDb2xsZWN0aW9uKToKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpOb2RlOjppbnZhbGlkYXRlTm9kZUxpc3RDYWNoZXNJbkFuY2VzdG9ycyk6CisgICAg
ICAgICogZG9tL05vZGVSYXJlRGF0YS5oOgorICAgICAgICAoTm9kZUxpc3RzTm9kZURhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6Tm9kZUxpc3RzTm9kZURhdGE6OmFkZENhY2hlV2l0aEF0b21pY05h
bWUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUxpc3RzTm9kZURhdGE6OmNhY2hlV2l0aEF0b21p
Y05hbWUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUxpc3RzTm9kZURhdGE6OnJlbW92ZUNhY2hl
V2l0aEF0b21pY05hbWUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUxpc3RzTm9kZURhdGE6OmFk
b3B0VHJlZVNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVMaXN0c05vZGVEYXRhOjpuYW1l
ZE5vZGVMaXN0S2V5KToKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlQWRvcHRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUcmVlU2NvcGVBZG9wdGVyOjptb3ZlVHJlZVRvTmV3U2NvcGUpOgorICAg
ICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb246OmNyZWF0ZSk6CisgICAgICAgICogaHRt
bC9IVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5oOgorICAgICAgICAoSFRNTEZvcm1Db250cm9s
c0NvbGxlY3Rpb24pOgorICAgICAgICAqIGh0bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxPcHRpb25zQ29sbGVjdGlvbjo6Y3JlYXRlKToKKyAgICAg
ICAgKiBodG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5oOgorICAgICAgICAoSFRNTE9wdGlvbnND
b2xsZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0
aW9uLmg6CisgICAgICAgIChIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246OmNyZWF0ZSk6CisgICAg
ICAgICogaHRtbC9IVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MVGFibGVSb3dzQ29sbGVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxU
YWJsZVJvd3NDb2xsZWN0aW9uLmg6CisgICAgICAgIChIVE1MVGFibGVSb3dzQ29sbGVjdGlvbik6
CisKIDIwMTItMTEtMjEgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJlbW92ZSAkb3V0cHV0RGlyIGFuZCAkb3V0cHV0SGVhZGVyc0RpciBmcm9tIGdsb2Jh
bCB2YXJpYWJsZXMgb2YgY29kZSBnZW5lcmF0b3JzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
RHluYW1pY05vZGVMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0R5bmFt
aWNOb2RlTGlzdC5oCShyZXZpc2lvbiAxMzU0MjcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRHlu
YW1pY05vZGVMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE5OSw2ICsxOTksNyBAQCBwdWJsaWM6
CiAgICAgICAgIExhYmVsc05vZGVMaXN0VHlwZSwKICAgICAgICAgTWljcm9EYXRhSXRlbUxpc3RU
eXBlLAogICAgICAgICBQcm9wZXJ0eU5vZGVMaXN0VHlwZSwKKyAgICAgICAgUGFzdExhc3ROb2Rl
TGlzdFR5cGUsCiAgICAgfTsKICAgICBEeW5hbWljTm9kZUxpc3QoUGFzc1JlZlB0cjxOb2RlPiBv
d25lck5vZGUsIE5vZGVMaXN0VHlwZSB0eXBlLCBOb2RlTGlzdFJvb3RUeXBlIHJvb3RUeXBlLCBO
b2RlTGlzdEludmFsaWRhdGlvblR5cGUgaW52YWxpZGF0aW9uVHlwZSkKICAgICAgICAgOiBEeW5h
bWljTm9kZUxpc3RDYWNoZUJhc2Uob3duZXJOb2RlLmdldCgpLCByb290VHlwZSwgaW52YWxpZGF0
aW9uVHlwZSwgdHlwZSA9PSBDaGlsZE5vZGVMaXN0VHlwZSwgTm9kZUxpc3RDb2xsZWN0aW9uVHlw
ZSwgRG9lc05vdE92ZXJyaWRlSXRlbUFmdGVyKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAko
cmV2aXNpb24gMTM1NDI3KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNDE5LDMzICsyNDE5LDI1IEBAIFBhc3NSZWZQdHI8SFRNTENvbGxlY3Rp
b24+IEVsZW1lbnQ6OmVuc3UKIAogUGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gRWxlbWVudFJh
cmVEYXRhOjplbnN1cmVDYWNoZWRIVE1MQ29sbGVjdGlvbihFbGVtZW50KiBlbGVtZW50LCBDb2xs
ZWN0aW9uVHlwZSB0eXBlKQogewotICAgIGlmICghbV9jYWNoZWRDb2xsZWN0aW9ucykgewotICAg
ICAgICBtX2NhY2hlZENvbGxlY3Rpb25zID0gYWRvcHRQdHIobmV3IENhY2hlZEhUTUxDb2xsZWN0
aW9uQXJyYXkpOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgTnVtTm9kZUNvbGxl
Y3Rpb25UeXBlczsgaSsrKQotICAgICAgICAgICAgKCptX2NhY2hlZENvbGxlY3Rpb25zKVtpXSA9
IDA7Ci0gICAgfQotCi0gICAgaWYgKEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uID0gKCptX2Nh
Y2hlZENvbGxlY3Rpb25zKVt0eXBlIC0gRmlyc3ROb2RlQ29sbGVjdGlvblR5cGVdKQorICAgIGlm
IChIVE1MQ29sbGVjdGlvbiogY29sbGVjdGlvbiA9IGNhY2hlZEhUTUxDb2xsZWN0aW9uKHR5cGUp
KQogICAgICAgICByZXR1cm4gY29sbGVjdGlvbjsKIAogICAgIFJlZlB0cjxIVE1MQ29sbGVjdGlv
bj4gY29sbGVjdGlvbjsKICAgICBpZiAodHlwZSA9PSBUYWJsZVJvd3MpIHsKICAgICAgICAgQVNT
RVJUKGVsZW1lbnQtPmhhc1RhZ05hbWUodGFibGVUYWcpKTsKLSAgICAgICAgY29sbGVjdGlvbiA9
IEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uOjpjcmVhdGUoZWxlbWVudCk7CisgICAgICAgIHJldHVy
biBlbnN1cmVOb2RlTGlzdHMoKS0+YWRkQ2FjaGVXaXRoQXRvbWljTmFtZTxIVE1MVGFibGVSb3dz
Q29sbGVjdGlvbj4oZWxlbWVudCwgdHlwZSk7CiAgICAgfSBlbHNlIGlmICh0eXBlID09IFNlbGVj
dE9wdGlvbnMpIHsKICAgICAgICAgQVNTRVJUKGVsZW1lbnQtPmhhc1RhZ05hbWUoc2VsZWN0VGFn
KSk7Ci0gICAgICAgIGNvbGxlY3Rpb24gPSBIVE1MT3B0aW9uc0NvbGxlY3Rpb246OmNyZWF0ZShl
bGVtZW50KTsKKyAgICAgICAgcmV0dXJuIGVuc3VyZU5vZGVMaXN0cygpLT5hZGRDYWNoZVdpdGhB
dG9taWNOYW1lPEhUTUxPcHRpb25zQ29sbGVjdGlvbj4oZWxlbWVudCwgdHlwZSk7CiAgICAgfSBl
bHNlIGlmICh0eXBlID09IEZvcm1Db250cm9scykgewogICAgICAgICBBU1NFUlQoZWxlbWVudC0+
aGFzVGFnTmFtZShmb3JtVGFnKSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKGZpZWxkc2V0VGFnKSk7
Ci0gICAgICAgIGNvbGxlY3Rpb24gPSBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbjo6Y3JlYXRl
KGVsZW1lbnQpOworICAgICAgICByZXR1cm4gZW5zdXJlTm9kZUxpc3RzKCktPmFkZENhY2hlV2l0
aEF0b21pY05hbWU8SFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24+KGVsZW1lbnQsIHR5cGUpOwog
I2lmIEVOQUJMRShNSUNST0RBVEEpCi0gICAgfSBlbHNlIGlmICh0eXBlID09IEl0ZW1Qcm9wZXJ0
aWVzKSB7Ci0gICAgICAgIGNvbGxlY3Rpb24gPSBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246OmNy
ZWF0ZShlbGVtZW50KTsKKyAgICB9IGVsc2UgaWYgKG5vZGVMaXN0cygpLT50eXBlID09IEl0ZW1Q
cm9wZXJ0aWVzKSB7CisgICAgICAgIHJldHVybiBlbnN1cmVOb2RlTGlzdHMoKS0+YWRkQ2FjaGVX
aXRoQXRvbWljTmFtZTxIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24+KGVsZW1lbnQsIHR5cGUpOwog
I2VuZGlmCi0gICAgfSBlbHNlCi0gICAgICAgIGNvbGxlY3Rpb24gPSBIVE1MQ29sbGVjdGlvbjo6
Y3JlYXRlKGVsZW1lbnQsIHR5cGUpOwotICAgICgqbV9jYWNoZWRDb2xsZWN0aW9ucylbdHlwZSAt
IEZpcnN0Tm9kZUNvbGxlY3Rpb25UeXBlXSA9IGNvbGxlY3Rpb24uZ2V0KCk7Ci0gICAgcmV0dXJu
IGNvbGxlY3Rpb24ucmVsZWFzZSgpOworICAgIH0KKyAgICByZXR1cm4gZW5zdXJlTm9kZUxpc3Rz
KCktPmFkZENhY2hlV2l0aEF0b21pY05hbWU8SFRNTENvbGxlY3Rpb24+KGVsZW1lbnQsIHR5cGUp
OwogfQogCiBIVE1MQ29sbGVjdGlvbiogRWxlbWVudDo6Y2FjaGVkSFRNTENvbGxlY3Rpb24oQ29s
bGVjdGlvblR5cGUgdHlwZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURh
dGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEu
Y3BwCShyZXZpc2lvbiAxMzU0MjcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVE
YXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNiBAQCB2b2lkIEVsZW1lbnRSYXJl
RGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UoCiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVt
b3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOwogICAgIE5vZGVS
YXJlRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7Ci0gICAgaW5mby5h
ZGRNZW1iZXIobV9jYWNoZWRDb2xsZWN0aW9ucyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9jb21w
dXRlZFN0eWxlKTsKIAogICAgIGluZm8uYWRkTWVtYmVyKG1fZGF0YXNldERPTVN0cmluZ01hcCk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCShyZXZpc2lvbiAxMzU0Mjcp
CisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgJKHdvcmtpbmcgY29weSkK
QEAgLTU4LDYwICs1OCwyMCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTm9kZVJhcmVEYXRhOjpzZXRJ
c0luVG9wTGF5ZXI7CiAjZW5kaWYKIAotICAgIGJvb2wgaGFzQ2FjaGVkSFRNTENvbGxlY3Rpb25z
KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2NhY2hlZENvbGxlY3Rpb25zOwotICAg
IH0KLQogICAgIFBhc3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IGVuc3VyZUNhY2hlZEhUTUxDb2xs
ZWN0aW9uKEVsZW1lbnQqLCBDb2xsZWN0aW9uVHlwZSk7CiAgICAgSFRNTENvbGxlY3Rpb24qIGNh
Y2hlZEhUTUxDb2xsZWN0aW9uKENvbGxlY3Rpb25UeXBlIHR5cGUpCiAgICAgewotICAgICAgICBp
ZiAoIW1fY2FjaGVkQ29sbGVjdGlvbnMpCi0gICAgICAgICAgICByZXR1cm4gMDsKLQotICAgICAg
ICByZXR1cm4gKCptX2NhY2hlZENvbGxlY3Rpb25zKVt0eXBlIC0gRmlyc3ROb2RlQ29sbGVjdGlv
blR5cGVdOworICAgICAgICByZXR1cm4gbm9kZUxpc3RzKCkgPyBub2RlTGlzdHMoKS0+Y2FjaGVX
aXRoQXRvbWljTmFtZTxIVE1MQ29sbGVjdGlvbj4odHlwZSkgOiAwOwogICAgIH0KIAogICAgIHZv
aWQgcmVtb3ZlQ2FjaGVkSFRNTENvbGxlY3Rpb24oSFRNTENvbGxlY3Rpb24qIGNvbGxlY3Rpb24s
IENvbGxlY3Rpb25UeXBlIHR5cGUpCiAgICAgewotICAgICAgICBBU1NFUlQobV9jYWNoZWRDb2xs
ZWN0aW9ucyk7Ci0gICAgICAgIEFTU0VSVF9VTlVTRUQoY29sbGVjdGlvbiwgKCptX2NhY2hlZENv
bGxlY3Rpb25zKVt0eXBlIC0gRmlyc3ROb2RlQ29sbGVjdGlvblR5cGVdID09IGNvbGxlY3Rpb24p
OwotICAgICAgICAoKm1fY2FjaGVkQ29sbGVjdGlvbnMpW3R5cGUgLSBGaXJzdE5vZGVDb2xsZWN0
aW9uVHlwZV0gPSAwOwotICAgIH0KLQotICAgIHZvaWQgY2xlYXJIVE1MQ29sbGVjdGlvbkNhY2hl
cyhjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyTmFtZSkKLSAgICB7Ci0gICAgICAgIGlmICghbV9j
YWNoZWRDb2xsZWN0aW9ucykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgKCptX2NhY2hlZENvbGxlY3Rpb25zKS5zaXplKCk7IGkrKykgewot
ICAgICAgICAgICAgaWYgKEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uID0gKCptX2NhY2hlZENv
bGxlY3Rpb25zKVtpXSkKLSAgICAgICAgICAgICAgICBjb2xsZWN0aW9uLT5pbnZhbGlkYXRlQ2Fj
aGUoYXR0ck5hbWUpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgdm9pZCBhZG9wdFRyZWVTY29w
ZShEb2N1bWVudCogb2xkRG9jdW1lbnQsIERvY3VtZW50KiBuZXdEb2N1bWVudCkKLSAgICB7Ci0g
ICAgICAgIGlmICghbV9jYWNoZWRDb2xsZWN0aW9ucykKLSAgICAgICAgICAgIHJldHVybjsKLQot
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgKCptX2NhY2hlZENvbGxlY3Rpb25zKS5z
aXplKCk7IGkrKykgewotICAgICAgICAgICAgSFRNTENvbGxlY3Rpb24qIGNvbGxlY3Rpb24gPSAo
Km1fY2FjaGVkQ29sbGVjdGlvbnMpW2ldOwotICAgICAgICAgICAgaWYgKCFjb2xsZWN0aW9uKQot
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgY29sbGVjdGlvbi0+aW52YWxp
ZGF0ZUNhY2hlKCk7Ci0gICAgICAgICAgICBpZiAob2xkRG9jdW1lbnQgIT0gbmV3RG9jdW1lbnQp
IHsKLSAgICAgICAgICAgICAgICBvbGREb2N1bWVudC0+dW5yZWdpc3Rlck5vZGVMaXN0Q2FjaGUo
Y29sbGVjdGlvbik7Ci0gICAgICAgICAgICAgICAgbmV3RG9jdW1lbnQtPnJlZ2lzdGVyTm9kZUxp
c3RDYWNoZShjb2xsZWN0aW9uKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgICAgICBB
U1NFUlQobm9kZUxpc3RzKCkpOworICAgICAgICBub2RlTGlzdHMoKS0+cmVtb3ZlQ2FjaGVXaXRo
QXRvbWljTmFtZShjb2xsZWN0aW9uLCB0eXBlKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIHZvaWQg
cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOwogCi0g
ICAgdHlwZWRlZiBGaXhlZEFycmF5PEhUTUxDb2xsZWN0aW9uKiwgTnVtTm9kZUNvbGxlY3Rpb25U
eXBlcz4gQ2FjaGVkSFRNTENvbGxlY3Rpb25BcnJheTsKLSAgICBPd25QdHI8Q2FjaGVkSFRNTENv
bGxlY3Rpb25BcnJheT4gbV9jYWNoZWRDb2xsZWN0aW9uczsKLQogICAgIExheW91dFNpemUgbV9t
aW5pbXVtU2l6ZUZvclJlc2l6aW5nOwogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV9jb21wdXRl
ZFN0eWxlOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCShyZXZpc2lvbiAxMzU0MjcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMjIsOCArMTAyMiw2
IEBAIHZvaWQgTm9kZTo6aW52YWxpZGF0ZU5vZGVMaXN0Q2FjaGVzSW5BbmMKICAgICAgICAgTm9k
ZVJhcmVEYXRhKiBkYXRhID0gbm9kZS0+cmFyZURhdGEoKTsKICAgICAgICAgaWYgKGRhdGEtPm5v
ZGVMaXN0cygpKQogICAgICAgICAgICAgZGF0YS0+bm9kZUxpc3RzKCktPmludmFsaWRhdGVDYWNo
ZXMoYXR0ck5hbWUpOwotICAgICAgICBpZiAobm9kZS0+aXNFbGVtZW50Tm9kZSgpKQotICAgICAg
ICAgICAgc3RhdGljX2Nhc3Q8RWxlbWVudFJhcmVEYXRhKj4oZGF0YSktPmNsZWFySFRNTENvbGxl
Y3Rpb25DYWNoZXMoYXR0ck5hbWUpOwogICAgIH0KIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL05vZGVSYXJlRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
UmFyZURhdGEuaAkocmV2aXNpb24gMTM1NDI3KQorKysgU291cmNlL1dlYkNvcmUvZG9tL05vZGVS
YXJlRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICAg
ICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBEZWZh
dWx0SGFzaDxTdHJpbmdUeXBlPjo6SGFzaDo6c2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQ7
CiAgICAgfTsKIAotICAgIHR5cGVkZWYgSGFzaE1hcDxzdGQ6OnBhaXI8dW5zaWduZWQgY2hhciwg
QXRvbWljU3RyaW5nPiwgRHluYW1pY1N1YnRyZWVOb2RlTGlzdCosIE5vZGVMaXN0Q2FjaGVNYXBF
bnRyeUhhc2g8QXRvbWljU3RyaW5nPiA+IE5vZGVMaXN0QXRvbWljTmFtZUNhY2hlTWFwOworICAg
IHR5cGVkZWYgSGFzaE1hcDxzdGQ6OnBhaXI8dW5zaWduZWQgY2hhciwgQXRvbWljU3RyaW5nPiwg
RHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlKiwgTm9kZUxpc3RDYWNoZU1hcEVudHJ5SGFzaDxBdG9t
aWNTdHJpbmc+ID4gTm9kZUxpc3RBdG9taWNOYW1lQ2FjaGVNYXA7CiAgICAgdHlwZWRlZiBIYXNo
TWFwPHN0ZDo6cGFpcjx1bnNpZ25lZCBjaGFyLCBTdHJpbmc+LCBEeW5hbWljU3VidHJlZU5vZGVM
aXN0KiwgTm9kZUxpc3RDYWNoZU1hcEVudHJ5SGFzaDxTdHJpbmc+ID4gTm9kZUxpc3ROYW1lQ2Fj
aGVNYXA7CiAgICAgdHlwZWRlZiBIYXNoTWFwPFF1YWxpZmllZE5hbWUsIFRhZ05vZGVMaXN0Kj4g
VGFnTm9kZUxpc3RDYWNoZU5TOwogCkBAIC03Niw2ICs3NiwyNSBAQCBwdWJsaWM6CiAgICAgfQog
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBQYXNzUmVmUHRyPFQ+IGFkZENhY2hlV2l0
aEF0b21pY05hbWUoRWxlbWVudCogbm9kZSwgQ29sbGVjdGlvblR5cGUgY29sbGVjdGlvblR5cGUp
CisgICAgeworICAgICAgICBOb2RlTGlzdEF0b21pY05hbWVDYWNoZU1hcDo6QWRkUmVzdWx0IHJl
c3VsdCA9IG1fYXRvbWljTmFtZUNhY2hlcy5hZGQoCisgICAgICAgIG5hbWVkTm9kZUxpc3RLZXko
RHluYW1pY05vZGVMaXN0OjpQYXN0TGFzdE5vZGVMaXN0VHlwZSArIGNvbGxlY3Rpb25UeXBlIC0g
Rmlyc3ROb2RlQ29sbGVjdGlvblR5cGUsIHN0YXJBdG9tKSwgMCk7CisgICAgICAgIGlmICghcmVz
dWx0LmlzTmV3RW50cnkpCisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KHJlc3Vs
dC5pdGVyYXRvci0+dmFsdWUpOworCisgICAgICAgIFJlZlB0cjxUPiBsaXN0ID0gVDo6Y3JlYXRl
KG5vZGUsIGNvbGxlY3Rpb25UeXBlKTsKKyAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9
IGxpc3QuZ2V0KCk7CisgICAgICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKKyAgICB9CisKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIFQqIGNhY2hlV2l0aEF0b21pY05hbWUoQ29sbGVj
dGlvblR5cGUgdHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxUKj4obV9h
dG9taWNOYW1lQ2FjaGVzLmdldChuYW1lZE5vZGVMaXN0S2V5KER5bmFtaWNOb2RlTGlzdDo6UGFz
dExhc3ROb2RlTGlzdFR5cGUgKyB0eXBlIC0gRmlyc3ROb2RlQ29sbGVjdGlvblR5cGUsIHN0YXJB
dG9tKSkpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgUGFzc1JlZlB0
cjxUPiBhZGRDYWNoZVdpdGhOYW1lKE5vZGUqIG5vZGUsIER5bmFtaWNOb2RlTGlzdDo6Tm9kZUxp
c3RUeXBlIGxpc3RUeXBlLCBjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgewogICAgICAgICBOb2Rl
TGlzdE5hbWVDYWNoZU1hcDo6QWRkUmVzdWx0IHJlc3VsdCA9IG1fbmFtZUNhY2hlcy5hZGQobmFt
ZWROb2RlTGlzdEtleShsaXN0VHlwZSwgbmFtZSksIDApOwpAQCAtOTksMTIgKzExOCwxOSBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKICAgICB9CiAKLSAgICB2b2lk
IHJlbW92ZUNhY2hlV2l0aEF0b21pY05hbWUoRHluYW1pY1N1YnRyZWVOb2RlTGlzdCogbGlzdCwg
RHluYW1pY05vZGVMaXN0OjpOb2RlTGlzdFR5cGUgbGlzdFR5cGUsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgbmFtZSkKKyAgICB2b2lkIHJlbW92ZUNhY2hlV2l0aEF0b21pY05hbWUoRHluYW1pY05vZGVM
aXN0Q2FjaGVCYXNlKiBsaXN0LCBEeW5hbWljTm9kZUxpc3Q6Ok5vZGVMaXN0VHlwZSBsaXN0VHlw
ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQogICAgIHsKICAgICAgICAgQVNTRVJUX1VOVVNF
RChsaXN0LCBsaXN0ID09IG1fYXRvbWljTmFtZUNhY2hlcy5nZXQobmFtZWROb2RlTGlzdEtleShs
aXN0VHlwZSwgbmFtZSkpKTsKICAgICAgICAgbV9hdG9taWNOYW1lQ2FjaGVzLnJlbW92ZShuYW1l
ZE5vZGVMaXN0S2V5KGxpc3RUeXBlLCBuYW1lKSk7CiAgICAgfQogCisgICAgdm9pZCByZW1vdmVD
YWNoZVdpdGhBdG9taWNOYW1lKER5bmFtaWNOb2RlTGlzdENhY2hlQmFzZSogbGlzdCwgQ29sbGVj
dGlvblR5cGUgY29sbGVjdGlvblR5cGUpCisgICAgeworICAgICAgICB1bnNpZ25lZCBjaGFyIHR5
cGUgPSBEeW5hbWljTm9kZUxpc3Q6OlBhc3RMYXN0Tm9kZUxpc3RUeXBlICsgY29sbGVjdGlvblR5
cGUgLSBGaXJzdE5vZGVDb2xsZWN0aW9uVHlwZTsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChsaXN0
LCBsaXN0ID09IG1fYXRvbWljTmFtZUNhY2hlcy5nZXQobmFtZWROb2RlTGlzdEtleSh0eXBlLCBz
dGFyQXRvbSkpKTsKKyAgICAgICAgbV9hdG9taWNOYW1lQ2FjaGVzLnJlbW92ZShuYW1lZE5vZGVM
aXN0S2V5KHR5cGUsIHN0YXJBdG9tKSk7CisgICAgfQorCiAgICAgdm9pZCByZW1vdmVDYWNoZVdp
dGhOYW1lKER5bmFtaWNTdWJ0cmVlTm9kZUxpc3QqIGxpc3QsIER5bmFtaWNOb2RlTGlzdDo6Tm9k
ZUxpc3RUeXBlIGxpc3RUeXBlLCBjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgewogICAgICAgICBB
U1NFUlRfVU5VU0VEKGxpc3QsIGxpc3QgPT0gbV9uYW1lQ2FjaGVzLmdldChuYW1lZE5vZGVMaXN0
S2V5KGxpc3RUeXBlLCBuYW1lKSkpOwpAQCAtMTM2LDIxICsxNjIsMjEgQEAgcHVibGljOgogICAg
ICAgICBpZiAob2xkRG9jdW1lbnQgIT0gbmV3RG9jdW1lbnQpIHsKICAgICAgICAgICAgIE5vZGVM
aXN0QXRvbWljTmFtZUNhY2hlTWFwOjpjb25zdF9pdGVyYXRvciBhdG9taWNOYW1lQ2FjaGVFbmQg
PSBtX2F0b21pY05hbWVDYWNoZXMuZW5kKCk7CiAgICAgICAgICAgICBmb3IgKE5vZGVMaXN0QXRv
bWljTmFtZUNhY2hlTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG1fYXRvbWljTmFtZUNhY2hlcy5i
ZWdpbigpOyBpdCAhPSBhdG9taWNOYW1lQ2FjaGVFbmQ7ICsraXQpIHsKLSAgICAgICAgICAgICAg
ICBEeW5hbWljU3VidHJlZU5vZGVMaXN0KiBsaXN0ID0gaXQtPnZhbHVlOworICAgICAgICAgICAg
ICAgIER5bmFtaWNOb2RlTGlzdENhY2hlQmFzZSogbGlzdCA9IGl0LT52YWx1ZTsKICAgICAgICAg
ICAgICAgICBvbGREb2N1bWVudC0+dW5yZWdpc3Rlck5vZGVMaXN0Q2FjaGUobGlzdCk7CiAgICAg
ICAgICAgICAgICAgbmV3RG9jdW1lbnQtPnJlZ2lzdGVyTm9kZUxpc3RDYWNoZShsaXN0KTsKICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgTm9kZUxpc3ROYW1lQ2FjaGVNYXA6OmNvbnN0X2l0
ZXJhdG9yIG5hbWVDYWNoZUVuZCA9IG1fbmFtZUNhY2hlcy5lbmQoKTsKICAgICAgICAgICAgIGZv
ciAoTm9kZUxpc3ROYW1lQ2FjaGVNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9uYW1lQ2FjaGVz
LmJlZ2luKCk7IGl0ICE9IG5hbWVDYWNoZUVuZDsgKytpdCkgewotICAgICAgICAgICAgICAgIER5
bmFtaWNTdWJ0cmVlTm9kZUxpc3QqIGxpc3QgPSBpdC0+dmFsdWU7CisgICAgICAgICAgICAgICAg
RHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlKiBsaXN0ID0gaXQtPnZhbHVlOwogICAgICAgICAgICAg
ICAgIG9sZERvY3VtZW50LT51bnJlZ2lzdGVyTm9kZUxpc3RDYWNoZShsaXN0KTsKICAgICAgICAg
ICAgICAgICBuZXdEb2N1bWVudC0+cmVnaXN0ZXJOb2RlTGlzdENhY2hlKGxpc3QpOwogICAgICAg
ICAgICAgfQogCiAgICAgICAgICAgICBUYWdOb2RlTGlzdENhY2hlTlM6OmNvbnN0X2l0ZXJhdG9y
IHRhZ0VuZCA9IG1fdGFnTm9kZUxpc3RDYWNoZU5TLmVuZCgpOwogICAgICAgICAgICAgZm9yIChU
YWdOb2RlTGlzdENhY2hlTlM6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV90YWdOb2RlTGlzdENhY2hl
TlMuYmVnaW4oKTsgaXQgIT0gdGFnRW5kOyArK2l0KSB7Ci0gICAgICAgICAgICAgICAgRHluYW1p
Y1N1YnRyZWVOb2RlTGlzdCogbGlzdCA9IGl0LT52YWx1ZTsKKyAgICAgICAgICAgICAgICBEeW5h
bWljTm9kZUxpc3RDYWNoZUJhc2UqIGxpc3QgPSBpdC0+dmFsdWU7CiAgICAgICAgICAgICAgICAg
QVNTRVJUKCFsaXN0LT5pc1Jvb3RlZEF0RG9jdW1lbnQoKSk7CiAgICAgICAgICAgICAgICAgb2xk
RG9jdW1lbnQtPnVucmVnaXN0ZXJOb2RlTGlzdENhY2hlKGxpc3QpOwogICAgICAgICAgICAgICAg
IG5ld0RvY3VtZW50LT5yZWdpc3Rlck5vZGVMaXN0Q2FjaGUobGlzdCk7CkBAIC0xNjMsMTIgKzE4
OSwxMiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIE5vZGVMaXN0c05vZGVEYXRhKCkgeyB9CiAK
LSAgICBzdGQ6OnBhaXI8dW5zaWduZWQgY2hhciwgQXRvbWljU3RyaW5nPiBuYW1lZE5vZGVMaXN0
S2V5KER5bmFtaWNOb2RlTGlzdDo6Tm9kZUxpc3RUeXBlIGxpc3RUeXBlLCBjb25zdCBBdG9taWNT
dHJpbmcmIG5hbWUpCisgICAgc3RkOjpwYWlyPHVuc2lnbmVkIGNoYXIsIEF0b21pY1N0cmluZz4g
bmFtZWROb2RlTGlzdEtleSh1bnNpZ25lZCBjaGFyIGxpc3RUeXBlLCBjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUpCiAgICAgewogICAgICAgICByZXR1cm4gc3RkOjpwYWlyPHVuc2lnbmVkIGNoYXIs
IEF0b21pY1N0cmluZz4obGlzdFR5cGUsIG5hbWUpOwogICAgIH0KIAotICAgIHN0ZDo6cGFpcjx1
bnNpZ25lZCBjaGFyLCBTdHJpbmc+IG5hbWVkTm9kZUxpc3RLZXkoRHluYW1pY05vZGVMaXN0OjpO
b2RlTGlzdFR5cGUgbGlzdFR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSkKKyAgICBzdGQ6OnBhaXI8
dW5zaWduZWQgY2hhciwgU3RyaW5nPiBuYW1lZE5vZGVMaXN0S2V5KHVuc2lnbmVkIGNoYXIgbGlz
dFR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICB7CiAgICAgICAgIHJldHVybiBzdGQ6OnBh
aXI8dW5zaWduZWQgY2hhciwgU3RyaW5nPihsaXN0VHlwZSwgbmFtZSk7CiAgICAgfQpJbmRleDog
U291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcAkocmV2aXNpb24gMTM1NDI3KQor
KysgU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01Miw4ICs1Miw2IEBAIHZvaWQgVHJlZVNjb3BlQWRvcHRlcjo6bW92ZVRyZWVUb05ld1Nj
b3AKICAgICAgICAgaWYgKE5vZGVSYXJlRGF0YSogcmFyZURhdGEgPSBub2RlLT5zZXRUcmVlU2Nv
cGUobmV3RG9jdW1lbnQgPT0gbV9uZXdTY29wZSA/IDAgOiBtX25ld1Njb3BlKSkgewogICAgICAg
ICAgICAgaWYgKHJhcmVEYXRhLT5ub2RlTGlzdHMoKSkKICAgICAgICAgICAgICAgICByYXJlRGF0
YS0+bm9kZUxpc3RzKCktPmFkb3B0VHJlZVNjb3BlKG9sZERvY3VtZW50LCBuZXdEb2N1bWVudCk7
Ci0gICAgICAgICAgICBpZiAobm9kZS0+aXNFbGVtZW50Tm9kZSgpKQotICAgICAgICAgICAgICAg
IHN0YXRpY19jYXN0PEVsZW1lbnRSYXJlRGF0YSo+KHJhcmVEYXRhKS0+YWRvcHRUcmVlU2NvcGUo
b2xkRG9jdW1lbnQsIG5ld0RvY3VtZW50KTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICh3aWxs
TW92ZVRvTmV3RG9jdW1lbnQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29u
dHJvbHNDb2xsZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmNwcAkocmV2aXNpb24gMTM1NDI3KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQyLDcgKzQyLDcgQEAgSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb246OkhUTUxGb3Jt
Q29udAogICAgIEFTU0VSVChiYXNlLT5oYXNUYWdOYW1lKGZvcm1UYWcpIHx8IGJhc2UtPmhhc1Rh
Z05hbWUoZmllbGRzZXRUYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxIVE1MRm9ybUNvbnRyb2xzQ29s
bGVjdGlvbj4gSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb246OmNyZWF0ZShFbGVtZW50KiBiYXNl
KQorUGFzc1JlZlB0cjxIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbj4gSFRNTEZvcm1Db250cm9s
c0NvbGxlY3Rpb246OmNyZWF0ZShFbGVtZW50KiBiYXNlLCBDb2xsZWN0aW9uVHlwZSkKIHsKICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uKGJhc2UpKTsK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbHNDb2xs
ZWN0aW9uLmgJKHJldmlzaW9uIDEzNTQyNykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZv
cm1Db250cm9sc0NvbGxlY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCBj
bGFzcyBRdWFsaWZpZWROYW1lOwogCiBjbGFzcyBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbiA6
IHB1YmxpYyBIVE1MQ29sbGVjdGlvbiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
SFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24+IGNyZWF0ZShFbGVtZW50Kik7CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8SFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24+IGNyZWF0ZShFbGVtZW50Kiwg
Q29sbGVjdGlvblR5cGUpOwogCiAgICAgdmlydHVhbCB+SFRNTEZvcm1Db250cm9sc0NvbGxlY3Rp
b24oKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbnNDb2xsZWN0
aW9uLmNwcAkocmV2aXNpb24gMTM1NDI3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0
aW9uc0NvbGxlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIEhUTUxP
cHRpb25zQ29sbGVjdGlvbjo6SFRNTE9wdGlvbnNDb2xsZWMKICAgICBBU1NFUlQoc2VsZWN0LT5o
YXNUYWdOYW1lKEhUTUxOYW1lczo6c2VsZWN0VGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTE9w
dGlvbnNDb2xsZWN0aW9uPiBIVE1MT3B0aW9uc0NvbGxlY3Rpb246OmNyZWF0ZShFbGVtZW50KiBz
ZWxlY3QpCitQYXNzUmVmUHRyPEhUTUxPcHRpb25zQ29sbGVjdGlvbj4gSFRNTE9wdGlvbnNDb2xs
ZWN0aW9uOjpjcmVhdGUoRWxlbWVudCogc2VsZWN0LCBDb2xsZWN0aW9uVHlwZSkKIHsKICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxPcHRpb25zQ29sbGVjdGlvbihzZWxlY3QpKTsKIH0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaAkocmV2aXNp
b24gMTM1NDI3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24u
aAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCB0eXBlZGVmIGludCBFeGNlcHRpb25D
b2RlOwogCiBjbGFzcyBIVE1MT3B0aW9uc0NvbGxlY3Rpb24gOiBwdWJsaWMgSFRNTENvbGxlY3Rp
b24gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxPcHRpb25zQ29sbGVjdGlv
bj4gY3JlYXRlKEVsZW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MT3B0aW9uc0Nv
bGxlY3Rpb24+IGNyZWF0ZShFbGVtZW50KiwgQ29sbGVjdGlvblR5cGUpOwogCiAgICAgdm9pZCBh
ZGQoUGFzc1JlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2
b2lkIGFkZChQYXNzUmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiwgaW50IGluZGV4LCBFeGNlcHRp
b25Db2RlJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVj
dGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXND
b2xsZWN0aW9uLmgJKHJldmlzaW9uIDEzNTQyNykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFByb3BlcnRpZXNDb2xsZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAg
Y2xhc3MgUHJvcGVydHlOb2RlTGlzdDsKIAogY2xhc3MgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9u
IDogcHVibGljIEhUTUxDb2xsZWN0aW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24+IGNyZWF0ZShOb2RlKik7CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uPiBjcmVhdGUoTm9kZSosIENvbGxlY3Rp
b25UeXBlKTsKICAgICB2aXJ0dWFsIH5IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24oKTsKIAogICAg
IHZvaWQgdXBkYXRlUmVmRWxlbWVudHMoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uY3BwCShyZXZpc2lvbiAxMzU0MjcpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTU3LDcgKzE1Nyw3IEBAIEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uOjpIVE1M
VGFibGVSb3dzQ28KICAgICBBU1NFUlQodGFibGUtPmhhc1RhZ05hbWUodGFibGVUYWcpKTsKIH0K
IAotUGFzc1JlZlB0cjxIVE1MVGFibGVSb3dzQ29sbGVjdGlvbj4gSFRNTFRhYmxlUm93c0NvbGxl
Y3Rpb246OmNyZWF0ZShFbGVtZW50KiB0YWJsZSkKK1Bhc3NSZWZQdHI8SFRNTFRhYmxlUm93c0Nv
bGxlY3Rpb24+IEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uOjpjcmVhdGUoRWxlbWVudCogdGFibGUs
IENvbGxlY3Rpb25UeXBlKQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTFRhYmxlUm93
c0NvbGxlY3Rpb24odGFibGUpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlUm93c0NvbGxlY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWJsZVJvd3NDb2xsZWN0aW9uLmgJKHJldmlzaW9uIDEzNTQyNykKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzgs
NyArMzgsNyBAQCBjbGFzcyBIVE1MVGFibGVSb3dFbGVtZW50OwogCiBjbGFzcyBIVE1MVGFibGVS
b3dzQ29sbGVjdGlvbiA6IHB1YmxpYyBIVE1MQ29sbGVjdGlvbiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8SFRNTFRhYmxlUm93c0NvbGxlY3Rpb24+IGNyZWF0ZShFbGVtZW50Kik7
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFRhYmxlUm93c0NvbGxlY3Rpb24+IGNyZWF0ZShF
bGVtZW50KiwgQ29sbGVjdGlvblR5cGUpOwogCiAgICAgc3RhdGljIEhUTUxUYWJsZVJvd0VsZW1l
bnQqIHJvd0FmdGVyKEhUTUxUYWJsZUVsZW1lbnQqLCBIVE1MVGFibGVSb3dFbGVtZW50Kik7CiAg
ICAgc3RhdGljIEhUTUxUYWJsZVJvd0VsZW1lbnQqIGxhc3RSb3coSFRNTFRhYmxlRWxlbWVudCop
Owo=
</data>
<flag name="review"
          id="190964"
          type_id="1"
          status="+"
          setter="koivisto"
    />
    <flag name="commit-queue"
          id="190974"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>