<?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>120551</bug_id>
          
          <creation_ts>2013-08-30 14:48:03 -0700</creation_ts>
          <short_desc>CodeBlock refactoring broke profile dumping</short_desc>
          <delta_ts>2013-09-01 09:52:36 -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>JavaScriptCore</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="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>mhahnenberg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>923195</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-08-30 14:48:03 -0700</bug_when>
    <thetext>[24] $ export DYLD_LIBRARY_PATH=/Volumes/Data/WebKit-svn-01/OpenSource/WebKitBuild/Debug
[25] $ export DYLD_FRAMEWORK_PATH=/Volumes/Data/WebKit-svn-01/OpenSource/WebKitBuild/Debug
[26] $ /Volumes/Data/WebKit-svn-01/OpenSource/WebKitBuild/Debug/jsc bencher3
V8v7/splay: Conf#1: 0: 0: Time: 2.6188140389806938
[27] $ /Volumes/Data/WebKit-svn-01/OpenSource/WebKitBuild/Debug/jsc bencher3 -p out.profile
ASSERTION FAILED: m_programCodeBlock
/Volumes/Data/WebKit-svn-01/OpenSource/Source/JavaScriptCore/runtime/Executable.h(516) : JSC::ProgramCodeBlock &amp;JSC::ProgramExecutable::generatedBytecode()
1   0x10a881080 WTFCrash
2   0x10a35efc6 JSC::ProgramExecutable::generatedBytecode()
3   0x10a35538d JSC::ProgramCodeBlock::replacement()
4   0x10a3538a3 JSC::CodeBlock::baselineVersion()
5   0x10a7d6ace JSC::Profiler::Database::ensureBytecodesFor(JSC::CodeBlock*)
6   0x10a593929 JSC::ScriptExecutable::installCode(JSC::CodeBlock*)
7   0x10a594a3b JSC::ScriptExecutable::prepareForExecutionImpl(JSC::ExecState*, JSC::JSScope*, JSC::CodeSpecializationKind)
8   0x10a2f67ed JSC::ScriptExecutable::prepareForExecution(JSC::ExecState*, JSC::JSScope*, JSC::CodeSpecializationKind)
9   0x10a5c2021 JSC::Interpreter::execute(JSC::ProgramExecutable*, JSC::ExecState*, JSC::JSObject*)
10  0x10a39bb5f JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&amp;, JSC::JSValue, JSC::JSValue*)
11  0x10a28c457 runWithScripts(GlobalObject*, WTF::Vector&lt;Script, 0ul, WTF::CrashOnOverflow&gt; const&amp;, bool)
12  0x10a28bb4c jscmain(int, char**)
13  0x10a28b9ae main
14  0x7fff8e6075fd start
Segmentation fault: 11

Is there a way we could add some very basic tests to make sure we don&apos;t keep breaking profiling?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923196</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-08-30 14:49:45 -0700</bug_when>
    <thetext>&gt; Is there a way we could add some very basic tests to make sure we don&apos;t keep breaking profiling?

s/profiling/profile dumping/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923199</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-08-30 14:54:20 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; &gt; Is there a way we could add some very basic tests to make sure we don&apos;t keep breaking profiling?
&gt; 
&gt; s/profiling/profile dumping/

Yeah we need a way to add new tests that specify a JS file to run and the command-line arguments to use...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923206</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-08-30 15:07:50 -0700</bug_when>
    <thetext>That&apos;s it.  I&apos;m eradicating this concept of Executable returning CodeBlock&amp;.  It should be CodeBlock*.

I&apos;m so tired of C++ references being used for anything other than function parameters.  It just causes bugs like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923216</commentid>
    <comment_count>4</comment_count>
      <attachid>210169</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-08-30 15:32:27 -0700</bug_when>
    <thetext>Created attachment 210169
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923375</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-08-31 18:59:02 -0700</bug_when>
    <thetext>r=michael</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923376</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-08-31 19:02:05 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/154935</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923496</commentid>
    <comment_count>7</comment_count>
      <attachid>210169</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-09-01 09:52:36 -0700</bug_when>
    <thetext>Comment on attachment 210169
the patch

Clearing r? - msaboff reviewed it on irc.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210169</attachid>
            <date>2013-08-30 15:32:27 -0700</date>
            <delta_ts>2013-09-01 09:52:36 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>21682</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU0OTEzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYwIEBA
CisyMDEzLTA4LTMwICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Q29kZUJsb2NrIHJlZmFjdG9yaW5nIGJyb2tlIHByb2ZpbGUgZHVtcGluZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIwNTUxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBGaXggdGhlIGJ1Zywg
YW5kIGRpZCBhIGJpZyBjbGVhbi11cCBvZiBob3cgRXhlY3V0YWJsZSByZXR1cm5zIENvZGVCbG9j
a3MuIEEgbG90CisgICAgICAgIG9mIHRoZSBwcm9ibGVtcyB3ZSBoYXZlIHdpdGggY29kZSBsaWtl
IENvZGVCbG9jazo6YmFzZWxpbmVWZXJzaW9uKCkgaXMgdGhhdCB3ZQorICAgICAgICB3ZXJlIHRy
eWluZyAqd2F5IHRvbyBoYXJkKiB0byBzaWRlLXN0ZXAgdGhlIGZhY3QgdGhhdCBFeGVjdXRhYmxl
IGNhbid0IHJldHVybiBhCisgICAgICAgIENvZGVCbG9jayouIFByZXZpb3VzbHkgaXQgY291bGQg
b25seSByZXR1cm4gQ29kZUJsb2NrJiwgc28gaWYgaXQgZGlkbid0IGhhdmUgYQorICAgICAgICBD
b2RlQmxvY2sgeWV0LCB5b3Ugd2VyZSBzY3Jld2VkLiBBbmQgaWYgeW91IGRpZG4ndCBrbm93LCBv
ciB3ZXJlbid0IHN1cmUsIGlmIGl0CisgICAgICAgIGRpZCBoYXZlIGEgQ29kZUJsb2NrLCB5b3Ug
d2VyZSByZWFsbHkgZ29pbmcgdG8gaGF2ZSBhIGJhZCB0aW1lLiBBbHNvIGl0IHJlYWxseQorICAg
ICAgICBidWdzIG1lIHRoYXQgdGhlIG1ldGhvZHMgd2VyZSBjYWxsZWQgZ2VuZXJhdGVkQnl0ZWNv
ZGUoKS4gSW4gYWxsIG90aGVyIGNvbnRleHRzCisgICAgICAgIGlmIHlvdSBhc2sgZm9yIGEgQ29k
ZUJsb2NrLCB0aGVuIG1ldGhvZCB0byBjYWxsIGlzIGNvZGVCbG9jaygpLiBTbyBJIG1hZGUgYWxs
CisgICAgICAgIG9mIHRob3NlIGNoYW5nZXMuCisKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxv
Y2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmJhc2VsaW5lVmVyc2lvbik6CisgICAg
ICAgIChKU0M6OlByb2dyYW1Db2RlQmxvY2s6OnJlcGxhY2VtZW50KToKKyAgICAgICAgKEpTQzo6
RXZhbENvZGVCbG9jazo6cmVwbGFjZW1lbnQpOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkNvZGVC
bG9jazo6cmVwbGFjZW1lbnQpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6Omdsb2JhbE9iamVj
dEZvcik6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZU9yaWdpbi5jcHA6CisgICAgICAgIChKU0M6
OklubGluZUNhbGxGcmFtZTo6aGFzaCk6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3Bw
OgorICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6
SW50ZXJwcmV0ZXI6OmV4ZWN1dGUpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6ZXhlY3V0
ZUNhbGwpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdCk6Cisg
ICAgICAgIChKU0M6OkludGVycHJldGVyOjpwcmVwYXJlRm9yUmVwZWF0Q2FsbCk6CisgICAgICAg
ICogaml0L0pJVENvZGUuaDoKKyAgICAgICAgKEpTQzo6SklUQ29kZTo6aXNFeGVjdXRhYmxlU2Ny
aXB0KToKKyAgICAgICAgKEpTQzo6SklUQ29kZTo6aXNMb3dlclRpZXIpOgorICAgICAgICAqIGpp
dC9KSVRTdHVicy5jcHA6CisgICAgICAgIChKU0M6OmxhenlMaW5rRm9yKToKKyAgICAgICAgKEpT
Qzo6REVGSU5FX1NUVUJfRlVOQ1RJT04pOgorICAgICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhz
LmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OnRyYWNlRnVuY3Rpb25Qcm9sb2d1ZSk6CisgICAg
ICAgIChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BBVEhfREVDTCk6CisgICAgICAgIChKU0M6OkxM
SW50OjpzZXRVcENhbGwpOgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwOgor
ICAgICAgICAoSlNDOjppc051bWVyaWNDb21wYXJlRnVuY3Rpb24pOgorICAgICAgICAqIHJ1bnRp
bWUvQ29tbW9uU2xvd1BhdGhzLmg6CisgICAgICAgIChKU0M6OkNvbW1vblNsb3dQYXRoczo6YXJp
dHlDaGVja0Zvcik6CisgICAgICAgICogcnVudGltZS9FeGVjdXRhYmxlLmNwcDoKKyAgICAgICAg
KEpTQzo6U2NyaXB0RXhlY3V0YWJsZTo6aW5zdGFsbENvZGUpOgorICAgICAgICAqIHJ1bnRpbWUv
RXhlY3V0YWJsZS5oOgorICAgICAgICAoSlNDOjpFdmFsRXhlY3V0YWJsZTo6Y29kZUJsb2NrKToK
KyAgICAgICAgKEpTQzo6UHJvZ3JhbUV4ZWN1dGFibGU6OmNvZGVCbG9jayk6CisgICAgICAgIChK
U0M6OkZ1bmN0aW9uRXhlY3V0YWJsZTo6ZWl0aGVyQ29kZUJsb2NrKToKKyAgICAgICAgKEpTQzo6
RnVuY3Rpb25FeGVjdXRhYmxlOjpjb2RlQmxvY2tGb3JDYWxsKToKKyAgICAgICAgKEpTQzo6RnVu
Y3Rpb25FeGVjdXRhYmxlOjpjb2RlQmxvY2tGb3JDb25zdHJ1Y3QpOgorICAgICAgICAoSlNDOjpG
dW5jdGlvbkV4ZWN1dGFibGU6OmNvZGVCbG9ja0Zvcik6CisgICAgICAgICogcnVudGltZS9GdW5j
dGlvbkV4ZWN1dGFibGVEdW1wLmNwcDoKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxl
RHVtcDo6ZHVtcCk6CisKIDIwMTMtMDgtMzAgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBNYWtlIEpTVmFsdWUgYm9vbCBjb252ZXJzaW9uIGxlc3MgZGFuZ2Vyb3Vz
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAko
cmV2aXNpb24gMTU0OTExKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVC
bG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNjMsMjIgKzIzNjMsMTggQEAgdm9pZCBDb2Rl
QmxvY2s6OnN0cm9uZ2x5VmlzaXRXZWFrUmVmZXJlbgogCiBDb2RlQmxvY2sqIENvZGVCbG9jazo6
YmFzZWxpbmVWZXJzaW9uKCkKIHsKLSNpZiBFTkFCTEUoSklUKQotICAgIC8vIFdoZW4gd2UncmUg
aW5pdGlhbGl6aW5nIHRoZSBvcmlnaW5hbCBiYXNlbGluZSBjb2RlIGJsb2NrLCB3ZSB3b24ndCBi
ZSBhYmxlCi0gICAgLy8gdG8gZ2V0IGl0cyByZXBsYWNlbWVudC4gQnV0IHdlJ2xsIGtub3cgdGhh
dCBpdCdzIHRoZSBvcmlnaW5hbCBiYXNlbGluZSBjb2RlCi0gICAgLy8gYmxvY2sgYmVjYXVzZSBp
dCB3b24ndCBoYXZlIEpJVCBjb2RlIHlldCBhbmQgaXQgd29uJ3QgaGF2ZSBhbiBhbHRlcm5hdGl2
ZS4KLSAgICBpZiAoaml0VHlwZSgpID09IEpJVENvZGU6Ok5vbmUgJiYgIWFsdGVybmF0aXZlKCkp
CisgICAgaWYgKEpJVENvZGU6OmlzQmFzZWxpbmVDb2RlKGppdFR5cGUoKSkpCiAgICAgICAgIHJl
dHVybiB0aGlzOwotICAgIAorI2lmIEVOQUJMRShKSVQpCiAgICAgQ29kZUJsb2NrKiByZXN1bHQg
PSByZXBsYWNlbWVudCgpOwotICAgIEFTU0VSVChyZXN1bHQpOwogICAgIHdoaWxlIChyZXN1bHQt
PmFsdGVybmF0aXZlKCkpCiAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC0+YWx0ZXJuYXRpdmUoKTsK
LSAgICBBU1NFUlQocmVzdWx0KTsKLSAgICBBU1NFUlQoSklUQ29kZTo6aXNCYXNlbGluZUNvZGUo
cmVzdWx0LT5qaXRUeXBlKCkpKTsKKyAgICBSRUxFQVNFX0FTU0VSVChyZXN1bHQpOworICAgIFJF
TEVBU0VfQVNTRVJUKEpJVENvZGU6OmlzQmFzZWxpbmVDb2RlKHJlc3VsdC0+aml0VHlwZSgpKSk7
CiAgICAgcmV0dXJuIHJlc3VsdDsKICNlbHNlCi0gICAgcmV0dXJuIHRoaXM7CisgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKICNlbmRpZgogfQogCkBAIC0y
NzEyLDE3ICsyNzA4LDE3IEBAIHZvaWQgQ29kZUJsb2NrOjpyZW9wdGltaXplKCkKIAogQ29kZUJs
b2NrKiBQcm9ncmFtQ29kZUJsb2NrOjpyZXBsYWNlbWVudCgpCiB7Ci0gICAgcmV0dXJuICZzdGF0
aWNfY2FzdDxQcm9ncmFtRXhlY3V0YWJsZSo+KG93bmVyRXhlY3V0YWJsZSgpKS0+Z2VuZXJhdGVk
Qnl0ZWNvZGUoKTsKKyAgICByZXR1cm4ganNDYXN0PFByb2dyYW1FeGVjdXRhYmxlKj4ob3duZXJF
eGVjdXRhYmxlKCkpLT5jb2RlQmxvY2soKTsKIH0KIAogQ29kZUJsb2NrKiBFdmFsQ29kZUJsb2Nr
OjpyZXBsYWNlbWVudCgpCiB7Ci0gICAgcmV0dXJuICZzdGF0aWNfY2FzdDxFdmFsRXhlY3V0YWJs
ZSo+KG93bmVyRXhlY3V0YWJsZSgpKS0+Z2VuZXJhdGVkQnl0ZWNvZGUoKTsKKyAgICByZXR1cm4g
anNDYXN0PEV2YWxFeGVjdXRhYmxlKj4ob3duZXJFeGVjdXRhYmxlKCkpLT5jb2RlQmxvY2soKTsK
IH0KIAogQ29kZUJsb2NrKiBGdW5jdGlvbkNvZGVCbG9jazo6cmVwbGFjZW1lbnQoKQogewotICAg
IHJldHVybiAmc3RhdGljX2Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4ob3duZXJFeGVjdXRhYmxl
KCkpLT5nZW5lcmF0ZWRCeXRlY29kZUZvcihtX2lzQ29uc3RydWN0b3IgPyBDb2RlRm9yQ29uc3Ry
dWN0IDogQ29kZUZvckNhbGwpOworICAgIHJldHVybiBqc0Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxl
Kj4ob3duZXJFeGVjdXRhYmxlKCkpLT5jb2RlQmxvY2tGb3IobV9pc0NvbnN0cnVjdG9yID8gQ29k
ZUZvckNvbnN0cnVjdCA6IENvZGVGb3JDYWxsKTsKIH0KIAogREZHOjpDYXBhYmlsaXR5TGV2ZWwg
UHJvZ3JhbUNvZGVCbG9jazo6Y2FwYWJpbGl0eUxldmVsSW50ZXJuYWwoKQpAQCAtMjc3Myw3ICsy
NzY5LDcgQEAgSlNHbG9iYWxPYmplY3QqIENvZGVCbG9jazo6Z2xvYmFsT2JqZWN0RgogewogICAg
IGlmICghY29kZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWUpCiAgICAgICAgIHJldHVybiBnbG9iYWxP
YmplY3QoKTsKLSAgICByZXR1cm4ganNDYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KGNvZGVPcmln
aW4uaW5saW5lQ2FsbEZyYW1lLT5leGVjdXRhYmxlLmdldCgpKS0+Z2VuZXJhdGVkQnl0ZWNvZGUo
KS5nbG9iYWxPYmplY3QoKTsKKyAgICByZXR1cm4ganNDYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+
KGNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lLT5leGVjdXRhYmxlLmdldCgpKS0+ZWl0aGVyQ29k
ZUJsb2NrKCktPmdsb2JhbE9iamVjdCgpOwogfQogCiB2b2lkIENvZGVCbG9jazo6bm90aWNlSW5j
b21pbmdDYWxsKEV4ZWNTdGF0ZSogY2FsbGVyRnJhbWUpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZU9yaWdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVPcmlnaW4uY3BwCShyZXZpc2lvbiAxNTQ5MTEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZU9yaWdpbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTg5LDggKzg5LDggQEAgSlNGdW5jdGlvbiogSW5saW5lQ2FsbEZyYW1lOjpjYWxsZWVG
b3JDYQogCiBDb2RlQmxvY2tIYXNoIElubGluZUNhbGxGcmFtZTo6aGFzaCgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIGpzQ2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihleGVjdXRhYmxlLmdldCgpKS0+
Z2VuZXJhdGVkQnl0ZWNvZGVGb3IoCi0gICAgICAgIHNwZWNpYWxpemF0aW9uS2luZCgpKS5oYXNo
KCk7CisgICAgcmV0dXJuIGpzQ2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihleGVjdXRhYmxlLmdl
dCgpKS0+Y29kZUJsb2NrRm9yKAorICAgICAgICBzcGVjaWFsaXphdGlvbktpbmQoKSktPmhhc2go
KTsKIH0KIAogQ1N0cmluZyBJbmxpbmVDYWxsRnJhbWU6OmluZmVycmVkTmFtZSgpIGNvbnN0Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHJldmlz
aW9uIDE1NDkxMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEyODYsNyArMTI4Niw3IEBAIGlubGluZSBjaGFyKiBsaW5r
Rm9yKEV4ZWNTdGF0ZSogZXhlY0NhbGwKICAgICAgICAgICAgIHZtLT50aHJvd0V4Y2VwdGlvbihl
eGVjLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoZXhlYykpOwogICAgICAgICAgICAgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHZtLT5nZXRDVElTdHViKHRocm93RXhjZXB0aW9uRnJv
bUNhbGxTbG93UGF0aEdlbmVyYXRvcikuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpOwogICAg
ICAgICB9Ci0gICAgICAgIGNvZGVCbG9jayA9ICZmdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRl
ZEJ5dGVjb2RlRm9yKGtpbmQpOworICAgICAgICBjb2RlQmxvY2sgPSBmdW5jdGlvbkV4ZWN1dGFi
bGUtPmNvZGVCbG9ja0ZvcihraW5kKTsKICAgICAgICAgaWYgKGV4ZWNDYWxsZWUtPmFyZ3VtZW50
Q291bnRJbmNsdWRpbmdUaGlzKCkgPCBzdGF0aWNfY2FzdDxzaXplX3Q+KGNvZGVCbG9jay0+bnVt
UGFyYW1ldGVycygpKSkKICAgICAgICAgICAgIGNvZGVQdHIgPSBmdW5jdGlvbkV4ZWN1dGFibGUt
PmdlbmVyYXRlZEpJVENvZGVXaXRoQXJpdHlDaGVja0ZvcihraW5kKTsKICAgICAgICAgZWxzZQpA
QCAtMTM2MSw3ICsxMzYxLDcgQEAgc3RhdGljIGJvb2wgYXR0ZW1wdFRvT3B0aW1pemVDbG9zdXJl
Q2FsbAogICAgIGlmIChjYWxsZWUtPmV4ZWN1dGFibGUoKS0+aXNIb3N0RnVuY3Rpb24oKSkKICAg
ICAgICAgY29kZUJsb2NrID0gMDsKICAgICBlbHNlIHsKLSAgICAgICAgY29kZUJsb2NrID0gJmpz
Q2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihjYWxsZWUtPmV4ZWN1dGFibGUoKSktPmdlbmVyYXRl
ZEJ5dGVjb2RlRm9yQ2FsbCgpOworICAgICAgICBjb2RlQmxvY2sgPSBqc0Nhc3Q8RnVuY3Rpb25F
eGVjdXRhYmxlKj4oY2FsbGVlLT5leGVjdXRhYmxlKCkpLT5jb2RlQmxvY2tGb3JDYWxsKCk7CiAg
ICAgICAgIGlmIChleGVjQ2FsbGVlLT5hcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcygpIDwgc3Rh
dGljX2Nhc3Q8c2l6ZV90Pihjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSkpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0ludGVycHJldGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCShyZXZpc2lvbiAxNTQ5MTEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC03MzcsNyArNzM3LDcgQEAgZmFpbGVkSlNPTlA6CiAgICAgaWYgKEpTT2JqZWN0KiBl
cnJvciA9IHByb2dyYW0tPnByZXBhcmVGb3JFeGVjdXRpb24oY2FsbEZyYW1lLCBzY29wZSwgQ29k
ZUZvckNhbGwpKQogICAgICAgICByZXR1cm4gY2hlY2tlZFJldHVybihjYWxsRnJhbWUtPnZtKCku
dGhyb3dFeGNlcHRpb24oY2FsbEZyYW1lLCBlcnJvcikpOwogCi0gICAgUHJvZ3JhbUNvZGVCbG9j
ayogY29kZUJsb2NrID0gJnByb2dyYW0tPmdlbmVyYXRlZEJ5dGVjb2RlKCk7CisgICAgUHJvZ3Jh
bUNvZGVCbG9jayogY29kZUJsb2NrID0gcHJvZ3JhbS0+Y29kZUJsb2NrKCk7CiAKICAgICBpZiAo
VU5MSUtFTFkodm0ud2F0Y2hkb2cuZGlkRmlyZShjYWxsRnJhbWUpKSkKICAgICAgICAgcmV0dXJu
IHRocm93VGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbihjYWxsRnJhbWUpOwpAQCAtODA3LDcg
KzgwNyw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDYWxsKENhbGxGcmEKICAgICAg
ICAgaWYgKFVOTElLRUxZKCEhY29tcGlsZUVycm9yKSkgewogICAgICAgICAgICAgcmV0dXJuIGNo
ZWNrZWRSZXR1cm4oY2FsbEZyYW1lLT52bSgpLnRocm93RXhjZXB0aW9uKGNhbGxGcmFtZSwgY29t
cGlsZUVycm9yKSk7CiAgICAgICAgIH0KLSAgICAgICAgbmV3Q29kZUJsb2NrID0gJmNhbGxEYXRh
LmpzLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJhdGVkQnl0ZWNvZGVGb3JDYWxsKCk7CisgICAg
ICAgIG5ld0NvZGVCbG9jayA9IGNhbGxEYXRhLmpzLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Y29kZUJs
b2NrRm9yQ2FsbCgpOwogICAgICAgICBBU1NFUlQoISFuZXdDb2RlQmxvY2spOwogICAgICAgICBu
ZXdDb2RlQmxvY2stPm1fc2hvdWxkQWx3YXlzQmVJbmxpbmVkID0gZmFsc2U7CiAgICAgfSBlbHNl
CkBAIC04ODYsNyArODg2LDcgQEAgSlNPYmplY3QqIEludGVycHJldGVyOjpleGVjdXRlQ29uc3Ry
dWN0KAogICAgICAgICBpZiAoVU5MSUtFTFkoISFjb21waWxlRXJyb3IpKSB7CiAgICAgICAgICAg
ICByZXR1cm4gY2hlY2tlZFJldHVybihjYWxsRnJhbWUtPnZtKCkudGhyb3dFeGNlcHRpb24oY2Fs
bEZyYW1lLCBjb21waWxlRXJyb3IpKTsKICAgICAgICAgfQotICAgICAgICBuZXdDb2RlQmxvY2sg
PSAmY29uc3RydWN0RGF0YS5qcy5mdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEJ5dGVjb2Rl
Rm9yQ29uc3RydWN0KCk7CisgICAgICAgIG5ld0NvZGVCbG9jayA9IGNvbnN0cnVjdERhdGEuanMu
ZnVuY3Rpb25FeGVjdXRhYmxlLT5jb2RlQmxvY2tGb3JDb25zdHJ1Y3QoKTsKICAgICAgICAgQVNT
RVJUKCEhbmV3Q29kZUJsb2NrKTsKICAgICAgICAgbmV3Q29kZUJsb2NrLT5tX3Nob3VsZEFsd2F5
c0JlSW5saW5lZCA9IGZhbHNlOwogICAgIH0gZWxzZQpAQCAtOTYxLDcgKzk2MSw3IEBAIENhbGxG
cmFtZUNsb3N1cmUgSW50ZXJwcmV0ZXI6OnByZXBhcmVGb3IKICAgICAgICAgY2FsbEZyYW1lLT52
bSgpLnRocm93RXhjZXB0aW9uKGNhbGxGcmFtZSwgZXJyb3IpOwogICAgICAgICByZXR1cm4gQ2Fs
bEZyYW1lQ2xvc3VyZSgpOwogICAgIH0KLSAgICBDb2RlQmxvY2sqIG5ld0NvZGVCbG9jayA9ICZm
dW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEJ5dGVjb2RlRm9yQ2FsbCgpOworICAgIENvZGVC
bG9jayogbmV3Q29kZUJsb2NrID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5jb2RlQmxvY2tGb3JDYWxs
KCk7CiAgICAgbmV3Q29kZUJsb2NrLT5tX3Nob3VsZEFsd2F5c0JlSW5saW5lZCA9IGZhbHNlOwog
CiAgICAgc2l6ZV90IGFyZ3NDb3VudCA9IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzOwpAQCAt
MTA3NSw3ICsxMDc1LDcgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShFdmFsRXhlY3V0
YQogICAgIEpTT2JqZWN0KiBjb21waWxlRXJyb3IgPSBldmFsLT5wcmVwYXJlRm9yRXhlY3V0aW9u
KGNhbGxGcmFtZSwgc2NvcGUsIENvZGVGb3JDYWxsKTsKICAgICBpZiAoVU5MSUtFTFkoISFjb21w
aWxlRXJyb3IpKQogICAgICAgICByZXR1cm4gY2hlY2tlZFJldHVybihjYWxsRnJhbWUtPnZtKCku
dGhyb3dFeGNlcHRpb24oY2FsbEZyYW1lLCBjb21waWxlRXJyb3IpKTsKLSAgICBFdmFsQ29kZUJs
b2NrKiBjb2RlQmxvY2sgPSAmZXZhbC0+Z2VuZXJhdGVkQnl0ZWNvZGUoKTsKKyAgICBFdmFsQ29k
ZUJsb2NrKiBjb2RlQmxvY2sgPSBldmFsLT5jb2RlQmxvY2soKTsKIAogICAgIGlmIChudW1WYXJp
YWJsZXMgfHwgbnVtRnVuY3Rpb25zKSB7CiAgICAgICAgIEJhdGNoZWRUcmFuc2l0aW9uT3B0aW1p
emVyIG9wdGltaXplcih2bSwgdmFyaWFibGVPYmplY3QpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRDb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRDb2RlLmgJKHJldmlzaW9uIDE1NDkxMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQ29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04MCw2ICs4MCwxNyBAQCBwdWJsaWM6
CiAgICAgICAgIH0KICAgICB9CiAgICAgCisgICAgc3RhdGljIGJvb2wgaXNFeGVjdXRhYmxlU2Ny
aXB0KEpJVFR5cGUgaml0VHlwZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoaml0VHlwZSkgewor
ICAgICAgICBjYXNlIE5vbmU6CisgICAgICAgIGNhc2UgSG9zdENhbGxUaHVuazoKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICB9CisgICAgfQorICAgIAogICAgIHN0YXRpYyBib29sIGNvdWxkQmVJbnRl
cnByZXRlZChKSVRUeXBlIGppdFR5cGUpCiAgICAgewogICAgICAgICBzd2l0Y2ggKGppdFR5cGUp
IHsKQEAgLTEwNSw4ICsxMTYsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgc3RhdGljIGJvb2wgaXNM
b3dlclRpZXIoSklUVHlwZSBleHBlY3RlZExvd2VyLCBKSVRUeXBlIGV4cGVjdGVkSGlnaGVyKQog
ICAgIHsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQoaXNKSVQoZXhwZWN0ZWRMb3dlcikpOwotICAg
ICAgICBSRUxFQVNFX0FTU0VSVChpc0pJVChleHBlY3RlZEhpZ2hlcikpOworICAgICAgICBSRUxF
QVNFX0FTU0VSVChpc0V4ZWN1dGFibGVTY3JpcHQoZXhwZWN0ZWRMb3dlcikpOworICAgICAgICBS
RUxFQVNFX0FTU0VSVChpc0V4ZWN1dGFibGVTY3JpcHQoZXhwZWN0ZWRIaWdoZXIpKTsKICAgICAg
ICAgcmV0dXJuIGV4cGVjdGVkTG93ZXIgPCBleHBlY3RlZEhpZ2hlcjsKICAgICB9CiAgICAgCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkocmV2aXNpb24gMTU0OTEx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEyNzYsNyArMTI3Niw3IEBAIGlubGluZSB2b2lkKiBsYXp5TGlua0ZvcihDYWxsRnJh
bWUqIGNhbGwKICAgICAgICAgICAgIGNhbGxGcmFtZS0+dm0oKS50aHJvd0V4Y2VwdGlvbihjYWxs
RnJhbWUsIGVycm9yKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9Ci0gICAgICAg
IGNvZGVCbG9jayA9ICZmdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEJ5dGVjb2RlRm9yKGtp
bmQpOworICAgICAgICBjb2RlQmxvY2sgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPmNvZGVCbG9ja0Zv
cihraW5kKTsKICAgICAgICAgaWYgKGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudEluY2x1ZGluZ1Ro
aXMoKSA8IHN0YXRpY19jYXN0PHNpemVfdD4oY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkpCiAg
ICAgICAgICAgICB8fCBjYWxsTGlua0luZm8tPmNhbGxUeXBlID09IENhbGxMaW5rSW5mbzo6Q2Fs
bFZhcmFyZ3MpCiAgICAgICAgICAgICBjb2RlUHRyID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5l
cmF0ZWRKSVRDb2RlV2l0aEFyaXR5Q2hlY2tGb3Ioa2luZCk7CkBAIC0xMzM1LDcgKzEzMzUsNyBA
QCBERUZJTkVfU1RVQl9GVU5DVElPTih2b2lkKiwgdm1fbGF6eUxpbmtDCiAgICAgICAgIEFTU0VS
VChleGVjdXRhYmxlLT5oYXNKSVRDb2RlRm9yQ2FsbCgpKTsKICAgICAgICAgY29kZVB0ciA9IGV4
ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVGb3JDYWxsKCktPmFkZHJlc3NGb3JDYWxsKCk7CiAg
ICAgICAgIGlmICghY2FsbGVlLT5leGVjdXRhYmxlKCktPmlzSG9zdEZ1bmN0aW9uKCkpIHsKLSAg
ICAgICAgICAgIGNhbGxlZUNvZGVCbG9jayA9ICZqc0Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4o
ZXhlY3V0YWJsZSktPmdlbmVyYXRlZEJ5dGVjb2RlRm9yQ2FsbCgpOworICAgICAgICAgICAgY2Fs
bGVlQ29kZUJsb2NrID0ganNDYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KGV4ZWN1dGFibGUpLT5j
b2RlQmxvY2tGb3JDYWxsKCk7CiAgICAgICAgICAgICBpZiAoY2FsbEZyYW1lLT5hcmd1bWVudENv
dW50SW5jbHVkaW5nVGhpcygpIDwgc3RhdGljX2Nhc3Q8c2l6ZV90PihjYWxsZWVDb2RlQmxvY2st
Pm51bVBhcmFtZXRlcnMoKSkpIHsKICAgICAgICAgICAgICAgICBzaG91bGRMaW5rID0gZmFsc2U7
CiAgICAgICAgICAgICAgICAgY29kZVB0ciA9IGV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVX
aXRoQXJpdHlDaGVja0ZvcihDb2RlRm9yQ2FsbCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHJldmlzaW9uIDE1NDkxMSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIxMiw3ICsyMTIsNyBAQCBzdGF0aWMgdm9pZCB0cmFjZUZ1bmN0aW9uUHJvbG9ndWUo
RXhlY1N0CiB7CiAgICAgSlNGdW5jdGlvbiogY2FsbGVlID0ganNDYXN0PEpTRnVuY3Rpb24qPihl
eGVjLT5jYWxsZWUoKSk7CiAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gY2Fs
bGVlLT5qc0V4ZWN1dGFibGUoKTsKLSAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9ICZleGVjdXRh
YmxlLT5nZW5lcmF0ZWRCeXRlY29kZUZvcihraW5kKTsKKyAgICBDb2RlQmxvY2sqIGNvZGVCbG9j
ayA9IGV4ZWN1dGFibGUtPmNvZGVCbG9ja0ZvcihraW5kKTsKICAgICBkYXRhTG9nRigiJXAgLyAl
cDogaW4gJXMgb2YgZnVuY3Rpb24gJXAsIGV4ZWN1dGFibGUgJXA7IG51bVZhcnMgPSAldSwgbnVt
UGFyYW1ldGVycyA9ICV1LCBudW1DYWxsZWVSZWdpc3RlcnMgPSAldSwgY2FsbGVyID0gJXAuXG4i
LAogICAgICAgICAgICAgY29kZUJsb2NrLCBleGVjLCBjb21tZW50LCBjYWxsZWUsIGV4ZWN1dGFi
bGUsCiAgICAgICAgICAgICBjb2RlQmxvY2stPm1fbnVtVmFycywgY29kZUJsb2NrLT5udW1QYXJh
bWV0ZXJzKCksIGNvZGVCbG9jay0+bV9udW1DYWxsZWVSZWdpc3RlcnMsCkBAIC0zNTEsMjIgKzM1
MSwyMiBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChlbnRyeV9vc3IpCiAKIExMSU5UX1NMT1dfUEFU
SF9ERUNMKGVudHJ5X29zcl9mdW5jdGlvbl9mb3JfY2FsbCkKIHsKLSAgICByZXR1cm4gZW50cnlP
U1IoZXhlYywgcGMsICZqc0Nhc3Q8SlNGdW5jdGlvbio+KGV4ZWMtPmNhbGxlZSgpKS0+anNFeGVj
dXRhYmxlKCktPmdlbmVyYXRlZEJ5dGVjb2RlRm9yKENvZGVGb3JDYWxsKSwgImVudHJ5X29zcl9m
dW5jdGlvbl9mb3JfY2FsbCIsIFByb2xvZ3VlKTsKKyAgICByZXR1cm4gZW50cnlPU1IoZXhlYywg
cGMsIGpzQ2FzdDxKU0Z1bmN0aW9uKj4oZXhlYy0+Y2FsbGVlKCkpLT5qc0V4ZWN1dGFibGUoKS0+
Y29kZUJsb2NrRm9yQ2FsbCgpLCAiZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jYWxsIiwgUHJvbG9n
dWUpOwogfQogCiBMTElOVF9TTE9XX1BBVEhfREVDTChlbnRyeV9vc3JfZnVuY3Rpb25fZm9yX2Nv
bnN0cnVjdCkKIHsKLSAgICByZXR1cm4gZW50cnlPU1IoZXhlYywgcGMsICZqc0Nhc3Q8SlNGdW5j
dGlvbio+KGV4ZWMtPmNhbGxlZSgpKS0+anNFeGVjdXRhYmxlKCktPmdlbmVyYXRlZEJ5dGVjb2Rl
Rm9yKENvZGVGb3JDb25zdHJ1Y3QpLCAiZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3Qi
LCBQcm9sb2d1ZSk7CisgICAgcmV0dXJuIGVudHJ5T1NSKGV4ZWMsIHBjLCBqc0Nhc3Q8SlNGdW5j
dGlvbio+KGV4ZWMtPmNhbGxlZSgpKS0+anNFeGVjdXRhYmxlKCktPmNvZGVCbG9ja0ZvckNvbnN0
cnVjdCgpLCAiZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3QiLCBQcm9sb2d1ZSk7CiB9
CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKGVudHJ5X29zcl9mdW5jdGlvbl9mb3JfY2FsbF9hcml0
eUNoZWNrKQogewotICAgIHJldHVybiBlbnRyeU9TUihleGVjLCBwYywgJmpzQ2FzdDxKU0Z1bmN0
aW9uKj4oZXhlYy0+Y2FsbGVlKCkpLT5qc0V4ZWN1dGFibGUoKS0+Z2VuZXJhdGVkQnl0ZWNvZGVG
b3IoQ29kZUZvckNhbGwpLCAiZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jYWxsX2FyaXR5Q2hlY2si
LCBBcml0eUNoZWNrKTsKKyAgICByZXR1cm4gZW50cnlPU1IoZXhlYywgcGMsIGpzQ2FzdDxKU0Z1
bmN0aW9uKj4oZXhlYy0+Y2FsbGVlKCkpLT5qc0V4ZWN1dGFibGUoKS0+Y29kZUJsb2NrRm9yQ2Fs
bCgpLCAiZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jYWxsX2FyaXR5Q2hlY2siLCBBcml0eUNoZWNr
KTsKIH0KIAogTExJTlRfU0xPV19QQVRIX0RFQ0woZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jb25z
dHJ1Y3RfYXJpdHlDaGVjaykKIHsKLSAgICByZXR1cm4gZW50cnlPU1IoZXhlYywgcGMsICZqc0Nh
c3Q8SlNGdW5jdGlvbio+KGV4ZWMtPmNhbGxlZSgpKS0+anNFeGVjdXRhYmxlKCktPmdlbmVyYXRl
ZEJ5dGVjb2RlRm9yKENvZGVGb3JDb25zdHJ1Y3QpLCAiZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9j
b25zdHJ1Y3RfYXJpdHlDaGVjayIsIEFyaXR5Q2hlY2spOworICAgIHJldHVybiBlbnRyeU9TUihl
eGVjLCBwYywganNDYXN0PEpTRnVuY3Rpb24qPihleGVjLT5jYWxsZWUoKSktPmpzRXhlY3V0YWJs
ZSgpLT5jb2RlQmxvY2tGb3JDb25zdHJ1Y3QoKSwgImVudHJ5X29zcl9mdW5jdGlvbl9mb3JfY29u
c3RydWN0X2FyaXR5Q2hlY2siLCBBcml0eUNoZWNrKTsKIH0KIAogTExJTlRfU0xPV19QQVRIX0RF
Q0wobG9vcF9vc3IpCkBAIC0xMDE3LDcgKzEwMTcsNyBAQCBpbmxpbmUgU2xvd1BhdGhSZXR1cm5U
eXBlIHNldFVwQ2FsbChFeGVjCiAgICAgICAgIEpTT2JqZWN0KiBlcnJvciA9IGZ1bmN0aW9uRXhl
Y3V0YWJsZS0+cHJlcGFyZUZvckV4ZWN1dGlvbihleGVjQ2FsbGVlLCBjYWxsZWUtPnNjb3BlKCks
IGtpbmQpOwogICAgICAgICBpZiAoZXJyb3IpCiAgICAgICAgICAgICBMTElOVF9DQUxMX1RIUk9X
KGV4ZWNDYWxsZWUtPmNhbGxlckZyYW1lKCksIHBjLCBlcnJvcik7Ci0gICAgICAgIGNvZGVCbG9j
ayA9ICZmdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEJ5dGVjb2RlRm9yKGtpbmQpOworICAg
ICAgICBjb2RlQmxvY2sgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPmNvZGVCbG9ja0ZvcihraW5kKTsK
ICAgICAgICAgQVNTRVJUKGNvZGVCbG9jayk7CiAgICAgICAgIGlmIChleGVjQ2FsbGVlLT5hcmd1
bWVudENvdW50SW5jbHVkaW5nVGhpcygpIDwgc3RhdGljX2Nhc3Q8c2l6ZV90Pihjb2RlQmxvY2st
Pm51bVBhcmFtZXRlcnMoKSkpCiAgICAgICAgICAgICBjb2RlUHRyID0gZnVuY3Rpb25FeGVjdXRh
YmxlLT5qc0NvZGVXaXRoQXJpdHlDaGVja0VudHJ5Rm9yKGtpbmQpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAkocmV2aXNpb24g
MTU0OTExKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Miw3ICs4Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBp
c051bWVyaWNDb21wYXJlRnVuY3QKICAgICBpZiAoZXJyb3IpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAotICAgIHJldHVybiBleGVjdXRhYmxlLT5nZW5lcmF0ZWRCeXRlY29kZUZvckNhbGwoKS5p
c051bWVyaWNDb21wYXJlRnVuY3Rpb24oKTsKKyAgICByZXR1cm4gZXhlY3V0YWJsZS0+Y29kZUJs
b2NrRm9yQ2FsbCgpLT5pc051bWVyaWNDb21wYXJlRnVuY3Rpb24oKTsKIH0KIAogLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEFycmF5UHJvdG90eXBlIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNs
b3dQYXRocy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bW1vblNsb3dQYXRocy5oCShyZXZpc2lvbiAxNTQ5MTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDks
NyBAQCBBTFdBWVNfSU5MSU5FIGludCBhcml0eUNoZWNrRm9yKEV4ZWNTdGF0CiB7CiAgICAgSlNG
dW5jdGlvbiogY2FsbGVlID0ganNDYXN0PEpTRnVuY3Rpb24qPihleGVjLT5jYWxsZWUoKSk7CiAg
ICAgQVNTRVJUKCFjYWxsZWUtPmlzSG9zdEZ1bmN0aW9uKCkpOwotICAgIENvZGVCbG9jayogbmV3
Q29kZUJsb2NrID0gJmNhbGxlZS0+anNFeGVjdXRhYmxlKCktPmdlbmVyYXRlZEJ5dGVjb2RlRm9y
KGtpbmQpOworICAgIENvZGVCbG9jayogbmV3Q29kZUJsb2NrID0gY2FsbGVlLT5qc0V4ZWN1dGFi
bGUoKS0+Y29kZUJsb2NrRm9yKGtpbmQpOwogICAgIGludCBhcmd1bWVudENvdW50SW5jbHVkaW5n
VGhpcyA9IGV4ZWMtPmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKCk7CiAgICAgCiAgICAgLy8g
VGhpcyBlbnN1cmVzIGVub3VnaCBzcGFjZSBmb3IgdGhlIHdvcnN0IGNhc2Ugc2NlbmFyaW8gb2Yg
emVybyBhcmd1bWVudHMgcGFzc2VkIGJ5IHRoZSBjYWxsZXIuCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAkocmV2aXNpb24gMTU0OTExKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTExNiw2ICsxMTYsNyBAQCB2b2lkIFNjcmlwdEV4ZWN1dGFibGU6OmRlc3Ryb3koSlND
ZWxsKiBjCiB2b2lkIFNjcmlwdEV4ZWN1dGFibGU6Omluc3RhbGxDb2RlKENvZGVCbG9jayogZ2Vu
ZXJpY0NvZGVCbG9jaykKIHsKICAgICBSRUxFQVNFX0FTU0VSVChnZW5lcmljQ29kZUJsb2NrLT5v
d25lckV4ZWN1dGFibGUoKSA9PSB0aGlzKTsKKyAgICBSRUxFQVNFX0FTU0VSVChKSVRDb2RlOjpp
c0V4ZWN1dGFibGVTY3JpcHQoZ2VuZXJpY0NvZGVCbG9jay0+aml0VHlwZSgpKSk7CiAgICAgCiAg
ICAgVk0mIHZtID0gKmdlbmVyaWNDb2RlQmxvY2stPnZtKCk7CiAgICAgCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCShyZXZpc2lvbiAxNTQ5MTEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQ0OSwxMCArNDQ5LDkgQEAgcHVibGljOgogICAgIHZvaWQgamV0dGlzb25PcHRpbWl6
ZWRDb2RlKFZNJik7CiAjZW5kaWYKIAotICAgIEV2YWxDb2RlQmxvY2smIGdlbmVyYXRlZEJ5dGVj
b2RlKCkKKyAgICBFdmFsQ29kZUJsb2NrKiBjb2RlQmxvY2soKQogICAgIHsKLSAgICAgICAgQVNT
RVJUKG1fZXZhbENvZGVCbG9jayk7Ci0gICAgICAgIHJldHVybiAqbV9ldmFsQ29kZUJsb2NrOwor
ICAgICAgICByZXR1cm4gbV9ldmFsQ29kZUJsb2NrLmdldCgpOwogICAgIH0KIAogICAgIHN0YXRp
YyBFdmFsRXhlY3V0YWJsZSogY3JlYXRlKEV4ZWNTdGF0ZSosIGNvbnN0IFNvdXJjZUNvZGUmLCBi
b29sIGlzSW5TdHJpY3RDb250ZXh0KTsKQEAgLTUxMSwxMCArNTEwLDkgQEAgcHVibGljOgogICAg
IHZvaWQgamV0dGlzb25PcHRpbWl6ZWRDb2RlKFZNJik7CiAjZW5kaWYKIAotICAgIFByb2dyYW1D
b2RlQmxvY2smIGdlbmVyYXRlZEJ5dGVjb2RlKCkKKyAgICBQcm9ncmFtQ29kZUJsb2NrKiBjb2Rl
QmxvY2soKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fcHJvZ3JhbUNvZGVCbG9jayk7Ci0gICAg
ICAgIHJldHVybiAqbV9wcm9ncmFtQ29kZUJsb2NrOworICAgICAgICByZXR1cm4gbV9wcm9ncmFt
Q29kZUJsb2NrLmdldCgpOwogICAgIH0KIAogICAgIEpTT2JqZWN0KiBjaGVja1N5bnRheChFeGVj
U3RhdGUqKTsKQEAgLTU3NiwxMiArNTc0LDExIEBAIHB1YmxpYzoKICAgICAvLyBSZXR1cm5zIGVp
dGhlciBjYWxsIG9yIGNvbnN0cnVjdCBieXRlY29kZS4gVGhpcyBjYW4gYmUgYXBwcm9wcmlhdGUK
ICAgICAvLyBmb3IgYW5zd2VyaW5nIHF1ZXN0aW9ucyB0aGF0IHRoYXQgZG9uJ3QgdmFyeSBiZXR3
ZWVuIGNhbGwgYW5kIGNvbnN0cnVjdCAtLQogICAgIC8vIGZvciBleGFtcGxlLCBhcmd1bWVudHNS
ZWdpc3RlcigpLgotICAgIEZ1bmN0aW9uQ29kZUJsb2NrJiBnZW5lcmF0ZWRCeXRlY29kZSgpCisg
ICAgRnVuY3Rpb25Db2RlQmxvY2sqIGVpdGhlckNvZGVCbG9jaygpCiAgICAgewogICAgICAgICBp
ZiAobV9jb2RlQmxvY2tGb3JDYWxsKQotICAgICAgICAgICAgcmV0dXJuICptX2NvZGVCbG9ja0Zv
ckNhbGw7Ci0gICAgICAgIEFTU0VSVChtX2NvZGVCbG9ja0ZvckNvbnN0cnVjdCk7Ci0gICAgICAg
IHJldHVybiAqbV9jb2RlQmxvY2tGb3JDb25zdHJ1Y3Q7CisgICAgICAgICAgICByZXR1cm4gbV9j
b2RlQmxvY2tGb3JDYWxsLmdldCgpOworICAgICAgICByZXR1cm4gbV9jb2RlQmxvY2tGb3JDb25z
dHJ1Y3QuZ2V0KCk7CiAgICAgfQogICAgICAgICAKICNpZiBFTkFCTEUoSklUKQpAQCAtNTkzLDEw
ICs1OTAsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX2NvZGVCbG9ja0ZvckNhbGw7CiAg
ICAgfQogCi0gICAgRnVuY3Rpb25Db2RlQmxvY2smIGdlbmVyYXRlZEJ5dGVjb2RlRm9yQ2FsbCgp
CisgICAgRnVuY3Rpb25Db2RlQmxvY2sqIGNvZGVCbG9ja0ZvckNhbGwoKQogICAgIHsKLSAgICAg
ICAgQVNTRVJUKG1fY29kZUJsb2NrRm9yQ2FsbCk7Ci0gICAgICAgIHJldHVybiAqbV9jb2RlQmxv
Y2tGb3JDYWxsOworICAgICAgICByZXR1cm4gbV9jb2RlQmxvY2tGb3JDYWxsLmdldCgpOwogICAg
IH0KIAogI2lmIEVOQUJMRShKSVQpCkBAIC02MDgsMTAgKzYwNCw5IEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIG1fY29kZUJsb2NrRm9yQ29uc3RydWN0OwogICAgIH0KIAotICAgIEZ1bmN0aW9u
Q29kZUJsb2NrJiBnZW5lcmF0ZWRCeXRlY29kZUZvckNvbnN0cnVjdCgpCisgICAgRnVuY3Rpb25D
b2RlQmxvY2sqIGNvZGVCbG9ja0ZvckNvbnN0cnVjdCgpCiAgICAgewotICAgICAgICBBU1NFUlQo
bV9jb2RlQmxvY2tGb3JDb25zdHJ1Y3QpOwotICAgICAgICByZXR1cm4gKm1fY29kZUJsb2NrRm9y
Q29uc3RydWN0OworICAgICAgICByZXR1cm4gbV9jb2RlQmxvY2tGb3JDb25zdHJ1Y3QuZ2V0KCk7
CiAgICAgfQogICAgICAgICAKICNpZiBFTkFCTEUoSklUKQpAQCAtNjM0LDEyICs2MjksMTIgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gaXNHZW5lcmF0ZWRGb3JDb25zdHJ1Y3QoKTsKICAgICB9
CiAgICAgICAgIAotICAgIEZ1bmN0aW9uQ29kZUJsb2NrJiBnZW5lcmF0ZWRCeXRlY29kZUZvcihD
b2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCisgICAgRnVuY3Rpb25Db2RlQmxvY2sqIGNvZGVC
bG9ja0ZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCiAgICAgewogICAgICAgICBpZiAo
a2luZCA9PSBDb2RlRm9yQ2FsbCkKLSAgICAgICAgICAgIHJldHVybiBnZW5lcmF0ZWRCeXRlY29k
ZUZvckNhbGwoKTsKKyAgICAgICAgICAgIHJldHVybiBjb2RlQmxvY2tGb3JDYWxsKCk7CiAgICAg
ICAgIEFTU0VSVChraW5kID09IENvZGVGb3JDb25zdHJ1Y3QpOwotICAgICAgICByZXR1cm4gZ2Vu
ZXJhdGVkQnl0ZWNvZGVGb3JDb25zdHJ1Y3QoKTsKKyAgICAgICAgcmV0dXJuIGNvZGVCbG9ja0Zv
ckNvbnN0cnVjdCgpOwogICAgIH0KIAogICAgIEZ1bmN0aW9uQ29kZUJsb2NrKiBiYXNlbGluZUNv
ZGVCbG9ja0ZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5kKTsKQEAgLTY3MywxNCArNjY4LDYgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBGdW5jdGlvbkV4ZWN1dGFibGUoVk0mLCBjb25zdCBTb3Vy
Y2VDb2RlJiwgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqLCB1bnNpZ25lZCBmaXJzdExpbmUs
IHVuc2lnbmVkIGxhc3RMaW5lLCB1bnNpZ25lZCBzdGFydENvbHVtbik7CiAKLSAgICBSZWZQdHI8
RnVuY3Rpb25Db2RlQmxvY2s+JiBjb2RlQmxvY2tGb3IoQ29kZVNwZWNpYWxpemF0aW9uS2luZCBr
aW5kKQotICAgIHsKLSAgICAgICAgaWYgKGtpbmQgPT0gQ29kZUZvckNhbGwpCi0gICAgICAgICAg
ICByZXR1cm4gbV9jb2RlQmxvY2tGb3JDYWxsOwotICAgICAgICBBU1NFUlQoa2luZCA9PSBDb2Rl
Rm9yQ29uc3RydWN0KTsKLSAgICAgICAgcmV0dXJuIG1fY29kZUJsb2NrRm9yQ29uc3RydWN0Owot
ICAgIH0KLSAKICAgICBib29sIGlzQ29tcGlsaW5nKCkKICAgICB7CiAjaWYgRU5BQkxFKEpJVCkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uRXhlY3V0YWJsZUR1
bXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0
aW9uRXhlY3V0YWJsZUR1bXAuY3BwCShyZXZpc2lvbiAxNTQ5MTEpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGVEdW1wLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzQsMTIgKzM0LDEyIEBAIHZvaWQgRnVuY3Rpb25FeGVjdXRhYmxlRHVtcDo6ZHVtcChQ
cmludFMKIHsKICAgICBvdXQucHJpbnQobV9leGVjdXRhYmxlLT5pbmZlcnJlZE5hbWUoKS5zdHJp
bmcoKSwgIiMiKTsKICAgICBpZiAobV9leGVjdXRhYmxlLT5pc0dlbmVyYXRlZEZvckNhbGwoKSkK
LSAgICAgICAgb3V0LnByaW50KG1fZXhlY3V0YWJsZS0+Z2VuZXJhdGVkQnl0ZWNvZGVGb3JDYWxs
KCkuaGFzaCgpKTsKKyAgICAgICAgb3V0LnByaW50KG1fZXhlY3V0YWJsZS0+Y29kZUJsb2NrRm9y
Q2FsbCgpLT5oYXNoKCkpOwogICAgIGVsc2UKICAgICAgICAgb3V0LnByaW50KCI8bm9nZW4+Iik7
CiAgICAgb3V0LnByaW50KCIvIik7CiAgICAgaWYgKG1fZXhlY3V0YWJsZS0+aXNHZW5lcmF0ZWRG
b3JDb25zdHJ1Y3QoKSkKLSAgICAgICAgb3V0LnByaW50KG1fZXhlY3V0YWJsZS0+Z2VuZXJhdGVk
Qnl0ZWNvZGVGb3JDb25zdHJ1Y3QoKS5oYXNoKCkpOworICAgICAgICBvdXQucHJpbnQobV9leGVj
dXRhYmxlLT5jb2RlQmxvY2tGb3JDb25zdHJ1Y3QoKS0+aGFzaCgpKTsKICAgICBlbHNlCiAgICAg
ICAgIG91dC5wcmludCgiPG5vZ2VuPiIpOwogICAgIG91dC5wcmludCgiOlsiLCBSYXdQb2ludGVy
KG1fZXhlY3V0YWJsZSksICJdIik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>