<?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>125461</bug_id>
          
          <creation_ts>2013-12-09 11:34:05 -0800</creation_ts>
          <short_desc>[GTK] [Stable] Crash in tbpl.mozilla.org</short_desc>
          <delta_ts>2014-02-18 03:34:43 -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>WebKitGTK</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="Alberto Garcia">berto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cgarcia</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>958016</commentid>
    <comment_count>0</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2013-12-09 11:34:05 -0800</bug_when>
    <thetext>This seems to be in JSC.

It crashes in 2.2.3 but works fine in 2.3.2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958026</commentid>
    <comment_count>1</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2013-12-09 11:45:46 -0800</bug_when>
    <thetext>A couple of backtraces. This is GtkLauncher with webkitgtk 2.2.2:

#0  0x00007f2f2b823354 in ?? ()
#1  0x00007f2f2803f970 in ?? ()
#2  0x0000000000000009 in ?? ()
#3  0x00007f2f00000001 in ?? ()
#4  0x00007f2f201aa710 in ?? ()
#5  0x00007f2f2b81ffa0 in ?? ()
#6  0x00007f2f81f41249 in JSC::Heap::didAllocate (this=0x7f2f28302280, 
    bytes=140733271593200) at ../Source/JavaScriptCore/heap/Heap.cpp:893
#7  0x00007f2f2b7fe8e0 in ?? ()
#8  0x00007f2f70276d08 in ?? ()
#9  0x00007f2f283022d8 in ?? ()
#10 0x0000000000000000 in ?? ()

This is epiphany 3.10 and webkitgtk-2.1.92:

#0  0x00007f00fc024374 in ?? ()
#1  0x00007f014002f970 in ?? ()
#2  0x0000000000000009 in ?? ()
#3  0x00007f0000000001 in ?? ()
#4  0x00007f00f85b0710 in ?? ()
#5  0x00007f00fc020fc1 in ?? ()
#6  0x00007f0151558d2e in JSC::ProgramExecutable::initializeGlobalProperties(JSC::VM&amp;, JSC::ExecState*, JSC::JSScope*) ()
   from /home/berto/devel/gnome/lib64/libjavascriptcoregtk-3.0.so.0
#7  0x00007f015143eb63 in JSC::Interpreter::execute(JSC::ProgramExecutable*, JSC::ExecState*, JSC::JSObject*) ()
   from /home/berto/devel/gnome/lib64/libjavascriptcoregtk-3.0.so.0
#8  0x00007f0151546598 in JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&amp;, JSC::JSValue, JSC::JSValue*) ()
   from /home/berto/devel/gnome/lib64/libjavascriptcoregtk-3.0.so.0
#9  0x00007f014f75c73b in WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&amp;, WebCore::DOMWrapperWorld*) ()
   from /home/berto/devel/gnome/lib64/libwebkit2gtk-3.0.so.25
#10 0x00007f014f75cd12 in WebCore::ScriptController::evaluate(WebCore::ScriptSourceCode const&amp;) ()
   from /home/berto/devel/gnome/lib64/libwebkit2gtk-3.0.so.25
#11 0x00007f014f92420a in WebCore::ScriptElement::executeScript(WebCore::ScriptSourceCode const&amp;) ()
   from /home/berto/devel/gnome/lib64/libwebkit2gtk-3.0.so.25
#12 0x00007f014f9280f8 in WebCore::ScriptElement::prepareScript(WTF::TextPosition const&amp;, WebCore::ScriptElement::LegacyTypeSupport) ()
   from /home/berto/devel/gnome/lib64/libwebkit2gtk-3.0.so.25
#13 0x00007f014fad218f in WebCore::HTMLScriptRunner::runScript(WebCore::Element*, WTF::TextPosition const&amp;) ()
   from /home/berto/devel/gnome/lib64/libwebkit2gtk-3.0.so.25
#14 0x00007f014fad2a5d in WebCore::HTMLScriptRunner::execute(WTF::PassRefPtr&lt;WebCore::Element&gt;, WTF::TextPosition const&amp;) ()
   from /home/berto/devel/gnome/lib64/libwebkit2gtk-3.0.so.25
#15 0x00007f014fabc87e in WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder() () from /home/berto/devel/gnome/lib64/libwebkit2gtk-3.0.so.25
#16 0x00007f014fabc942 in WebCore::HTMLDocumentParser::canTakeNextToken(WebCore::HTMLDocumentParser::SynchronousMode, WebCore::PumpSession&amp;) ()
   from /home/berto/devel/gnome/lib64/libwebkit2gtk-3.0.so.25
#17 0x00007f014fabeec7 in WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode) ()
   from /home/berto/devel/gnome/lib64/libwebkit2gtk-3.0.so.25
#18 0x00007f014fabf1d2 in WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution() ()
   from /home/berto/devel/gnome/lib64/libwebkit2gtk-3.0.so.25
#19 0x00007f014fabf2d8 in WebCore::HTMLDocumentParser::notifyFinished(WebCore::CachedResource*) ()
   from /home/berto/devel/gnome/lib64/libwebkit2gtk-3.0.so.25</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978831</commentid>
    <comment_count>2</comment_count>
      <attachid>223699</attachid>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2014-02-10 04:52:50 -0800</bug_when>
    <thetext>Created attachment 223699
Patch

I bisected this, looks like backporting r155480 (which depends on
r155466) solves the problem.

I tested this patch with WebKitGTK+ 2.2.4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978839</commentid>
    <comment_count>3</comment_count>
      <attachid>223701</attachid>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2014-02-10 05:23:59 -0800</bug_when>
    <thetext>Created attachment 223701
Patch

Somehow the previous patch was compressed, hopefully this one is fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981871</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-02-18 03:34:43 -0800</bug_when>
    <thetext>Merged in stable branch as r164281 and r164282. Thanks</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223699</attachid>
            <date>2014-02-10 04:52:50 -0800</date>
            <delta_ts>2014-02-10 05:23:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>125461.diff</filename>
            <type>text/plain</type>
            <size>4559</size>
            <attacher name="Alberto Garcia">berto</attacher>
            
              <data encoding="base64">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
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223701</attachid>
            <date>2014-02-10 05:23:59 -0800</date>
            <delta_ts>2014-02-10 05:23:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>125461.diff</filename>
            <type>text/plain</type>
            <size>21601</size>
            <attacher name="Alberto Garcia">berto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlw
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3Bw
CmluZGV4IDRmZWY5YTkuLmYzOGRkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcApAQCAtMTYxLDggKzE2MSwxOCBAQCB2b2lkIGR1
bXBTcGVjdWxhdGlvbihQcmludFN0cmVhbSYgb3V0LCBTcGVjdWxhdGVkVHlwZSB2YWx1ZSkKICAg
ICBpZiAoKHZhbHVlICYgU3BlY0RvdWJsZSkgPT0gU3BlY0RvdWJsZSkKICAgICAgICAgbXlPdXQu
cHJpbnQoIkRvdWJsZSIpOwogICAgIGVsc2UgewotICAgICAgICBpZiAodmFsdWUgJiBTcGVjRG91
YmxlUmVhbCkKLSAgICAgICAgICAgIG15T3V0LnByaW50KCJEb3VibGVyZWFsIik7CisgICAgICAg
IGlmICh2YWx1ZSAmIFNwZWNJbnQ0OEFzRG91YmxlKQorICAgICAgICAgICAgbXlPdXQucHJpbnQo
IkludDQ4YXNkb3VibGUiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaXNUb3AgPSBmYWxz
ZTsKKyAgICAgICAgCisgICAgICAgIGlmICh2YWx1ZSAmIFNwZWNJbnQ0OCkKKyAgICAgICAgICAg
IG15T3V0LnByaW50KCJJbnQ0OCIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpc1RvcCA9
IGZhbHNlOworICAgICAgICAKKyAgICAgICAgaWYgKHZhbHVlICYgU3BlY05vbkludEFzRG91Ymxl
KQorICAgICAgICAgICAgbXlPdXQucHJpbnQoIk5vbmludGFzZG91YmxlIik7CiAgICAgICAgIGVs
c2UKICAgICAgICAgICAgIGlzVG9wID0gZmFsc2U7CiAgICAgICAgIApAQCAtMjMzLDYgKzI0Mywx
MCBAQCBzdGF0aWMgY29uc3QgY2hhciogc3BlY3VsYXRpb25Ub0FiYnJldmlhdGVkU3RyaW5nKFNw
ZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24pCiAgICAgICAgIHJldHVybiAiPENlbGw+IjsKICAgICBp
ZiAoaXNJbnQzMlNwZWN1bGF0aW9uKHByZWRpY3Rpb24pKQogICAgICAgICByZXR1cm4gIjxJbnQz
Mj4iOworICAgIGlmIChpc0ludDQ4QXNEb3VibGVTcGVjdWxhdGlvbihwcmVkaWN0aW9uKSkKKyAg
ICAgICAgcmV0dXJuICI8SW50NDhBc0RvdWJsZT4iOworICAgIGlmIChpc0ludDQ4U3BlY3VsYXRp
b24ocHJlZGljdGlvbikpCisgICAgICAgIHJldHVybiAiPEludDQ4PiI7CiAgICAgaWYgKGlzRG91
YmxlU3BlY3VsYXRpb24ocHJlZGljdGlvbikpCiAgICAgICAgIHJldHVybiAiPERvdWJsZT4iOwog
ICAgIGlmIChpc051bWJlclNwZWN1bGF0aW9uKHByZWRpY3Rpb24pKQpAQCAtMzMxLDggKzM0NSwx
NCBAQCBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlvbkZyb21WYWx1ZShKU1ZhbHVlIHZhbHVlKQog
ICAgICAgICByZXR1cm4gU3BlY0ludDMyOwogICAgIGlmICh2YWx1ZS5pc0RvdWJsZSgpKSB7CiAg
ICAgICAgIGRvdWJsZSBudW1iZXIgPSB2YWx1ZS5hc051bWJlcigpOwotICAgICAgICBpZiAobnVt
YmVyID09IG51bWJlcikKKyAgICAgICAgaWYgKG51bWJlciA9PSBudW1iZXIpIHsKKyAgICAgICAg
ICAgIGludDY0X3QgYXNJbnQ2NCA9IHN0YXRpY19jYXN0PGludDY0X3Q+KG51bWJlcik7CisgICAg
ICAgICAgICBpZiAoYXNJbnQ2NCA9PSBudW1iZXIgJiYgKCFhc0ludDY0IHx8IHN0ZDo6c2lnbmJp
dChudW1iZXIpKQorICAgICAgICAgICAgICAgICYmIGFzSW50NjQgPCAoc3RhdGljX2Nhc3Q8aW50
NjRfdD4oMSkgPDwgNDcpCisgICAgICAgICAgICAgICAgJiYgYXNJbnQ2NCA+PSAtKHN0YXRpY19j
YXN0PGludDY0X3Q+KDEpIDw8IDQ3KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gU3BlY0ludDQ4
QXNEb3VibGU7CiAgICAgICAgICAgICByZXR1cm4gU3BlY0RvdWJsZVJlYWw7CisgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuIFNwZWNEb3VibGVOYU47CiAgICAgfQogICAgIGlmICh2YWx1ZS5pc0Nl
bGwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxh
dGVkVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBl
LmgKaW5kZXggM2EwMmU5My4uNGRiM2Q5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKQEAgLTYyLDE3ICs2MiwyMSBAQCBzdGF0aWMgY29u
c3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZyAgICAgICAgICAgID0gMHgwMDAzMDAwMDsgLy8g
SXQncyBkZWZpbml0ZQogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNDZWxsT3RoZXIg
ICAgICAgICA9IDB4MDAwNDAwMDA7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTQ2VsbCBidXQgbm90
IGEgc3ViY2xhc3Mgb2YgSlNPYmplY3QgYW5kIGRlZmluaXRlbHkgbm90IGEgSlNTdHJpbmcuCiBz
dGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0NlbGwgICAgICAgICAgICAgID0gMHgwMDA3
ZmZmZjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNDZWxsLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0
ZWRUeXBlIFNwZWNJbnQzMiAgICAgICAgICAgICA9IDB4MDA4MDAwMDA7IC8vIEl0J3MgZGVmaW5p
dGVseSBhbiBJbnQzMi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlUmVh
bCAgICAgICAgPSAweDAxMDAwMDAwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBub24tTmFOIGRvdWJs
ZS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlTmFOICAgICAgICAgPSAw
eDAyMDAwMDAwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBOYU4uCi1zdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY0RvdWJsZSAgICAgICAgICAgID0gMHgwMzAwMDAwMDsgLy8gSXQncyBlaXRo
ZXIgYSBub24tTmFOIG9yIGEgTmFOIGRvdWJsZS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlw
ZSBTcGVjUmVhbE51bWJlciAgICAgICAgPSAweDAxODAwMDAwOyAvLyBJdCdzIGVpdGhlciBhbiBJ
bnQzMiBvciBhIERvdWJsZVJlYWwuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY051
bWJlciAgICAgICAgICAgID0gMHgwMzgwMDAwMDsgLy8gSXQncyBlaXRoZXIgYW4gSW50MzIgb3Ig
YSBEb3VibGUuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Jvb2xlYW4gICAgICAg
ICAgID0gMHgwNDAwMDAwMDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgQm9vbGVhbi4KLXN0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjT3RoZXIgICAgICAgICAgICAgPSAweDA4MDAwMDAwOyAv
LyBJdCdzIGRlZmluaXRlbHkgbm9uZSBvZiB0aGUgYWJvdmUuCi1zdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY1RvcCAgICAgICAgICAgICAgID0gMHgwZmZmZmZmZjsgLy8gSXQgY2FuIGJl
IGFueSBvZiB0aGUgYWJvdmUuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0VtcHR5
ICAgICAgICAgICAgID0gMHgxMDAwMDAwMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIGVtcHR5IHZh
bHVlIG1hcmtlci4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRW1wdHlPclRvcCAg
ICAgICAgPSAweDFmZmZmZmZmOyAvLyBJdCBjYW4gYmUgYW55IG9mIHRoZSBhYm92ZS4KLXN0YXRp
YyBjb25zdCBTcGVjdWxhdGVkVHlwZSBGaXhlZEluZGV4ZWRTdG9yYWdlTWFzayAgICA9IFNwZWNJ
bnQ4QXJyYXkgfCBTcGVjSW50MTZBcnJheSB8IFNwZWNJbnQzMkFycmF5IHwgU3BlY1VpbnQ4QXJy
YXkgfCBTcGVjVWludDhDbGFtcGVkQXJyYXkgfCBTcGVjVWludDE2QXJyYXkgfCBTcGVjVWludDMy
QXJyYXkgfCBTcGVjRmxvYXQzMkFycmF5IHwgU3BlY0Zsb2F0NjRBcnJheTsKK3N0YXRpYyBjb25z
dCBTcGVjdWxhdGVkVHlwZSBTcGVjSW50NDggICAgICAgICAgICAgPSAweDAxMDAwMDAwOyAvLyBJ
dCdzIGRlZmluaXRlbHkgYW4gSW50NDgsIGl0J3MgaW5zaWRlIGEgZG91YmxlLCBidXQgaXQgZG9l
c24ndCBuZWVkIHRvIGJlLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQ0OEFz
RG91YmxlICAgICA9IDB4MDIwMDAwMDA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQ0OCBhbmQg
aXQncyBpbnNpZGUgYSBkb3VibGUuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0lu
dGVnZXIgICAgICAgICAgID0gMHgwMzgwMDAwMDsgLy8gSXQncyBkZWZpbml0ZWx5IHNvbWUga2lu
ZCBvZiBpbnRlZ2VyLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25JbnRBc0Rv
dWJsZSAgICA9IDB4MDQwMDAwMDA7IC8vIEl0J3MgZGVmaW5pdGVseSBub3QgYW4gSW50NDggYnV0
IGl0J3MgYSByZWFsIG51bWJlciBhbmQgaXQncyBhIGRvdWJsZS4KK3N0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjRG91YmxlUmVhbCAgICAgICAgPSAweDA3MDAwMDAwOyAvLyBJdCdzIGRl
ZmluaXRlbHkgYSBub24tTmFOIGRvdWJsZS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBT
cGVjRG91YmxlTmFOICAgICAgICAgPSAweDA4MDAwMDAwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBO
YU4uCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZSAgICAgICAgICAgID0g
MHgwZjAwMDAwMDsgLy8gSXQncyBlaXRoZXIgYSBub24tTmFOIG9yIGEgTmFOIGRvdWJsZS4KK3N0
YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjUmVhbE51bWJlciAgICAgICAgPSAweDA3ODAw
MDAwOyAvLyBJdCdzIGVpdGhlciBhbiBJbnQzMiBvciBhIERvdWJsZVJlYWwuCitzdGF0aWMgY29u
c3QgU3BlY3VsYXRlZFR5cGUgU3BlY051bWJlciAgICAgICAgICAgID0gMHgwZjgwMDAwMDsgLy8g
SXQncyBlaXRoZXIgYW4gSW50MzIgb3IgYSBEb3VibGUuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRl
ZFR5cGUgU3BlY0Jvb2xlYW4gICAgICAgICAgID0gMHgxMDAwMDAwMDsgLy8gSXQncyBkZWZpbml0
ZWx5IGEgQm9vbGVhbi4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjT3RoZXIgICAg
ICAgICAgICAgPSAweDIwMDAwMDAwOyAvLyBJdCdzIGRlZmluaXRlbHkgbm9uZSBvZiB0aGUgYWJv
dmUuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0hlYXBUb3AgICAgICAgICAgID0g
MHgzZmZmZmZmZjsgLy8gSXQgY2FuIGJlIGFueSBvZiB0aGUgYWJvdmUuCitzdGF0aWMgY29uc3Qg
U3BlY3VsYXRlZFR5cGUgU3BlY0VtcHR5ICAgICAgICAgICAgID0gMHg0MDAwMDAwMDsgLy8gSXQn
cyBkZWZpbml0ZWx5IGFuIGVtcHR5IHZhbHVlIG1hcmtlci4KK3N0YXRpYyBjb25zdCBTcGVjdWxh
dGVkVHlwZSBTcGVjQnl0ZWNvZGVUb3AgICAgICAgPSAweDdmZmZmZmZmOyAvLyBJdCBjYW4gYmUg
YW55IG9mIHRoZSBhYm92ZS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRnVsbFRv
cCAgICAgICAgICAgPSAweDdmZmZmZmZmOyAvLyBJdCBjYW4gYmUgYW55IG9mIHRoZSBhYm92ZSBw
bHVzIGFueXRoaW5nIHRoZSBERkcgY2hvb3Nlcy4KIAogdHlwZWRlZiBib29sICgqU3BlY3VsYXRl
ZFR5cGVDaGVja2VyKShTcGVjdWxhdGVkVHlwZSk7CiAKQEAgLTEwNywxMSArMTExLDYgQEAgaW5s
aW5lIGJvb2wgaXNGaW5hbE9iamVjdE9yT3RoZXJTcGVjdWxhdGlvbihTcGVjdWxhdGVkVHlwZSB2
YWx1ZSkKICAgICByZXR1cm4gISEodmFsdWUgJiAoU3BlY0ZpbmFsT2JqZWN0IHwgU3BlY090aGVy
KSkgJiYgISh2YWx1ZSAmIH4oU3BlY0ZpbmFsT2JqZWN0IHwgU3BlY090aGVyKSk7CiB9CiAKLWlu
bGluZSBib29sIGlzRml4ZWRJbmRleGVkU3RvcmFnZU9iamVjdFNwZWN1bGF0aW9uKFNwZWN1bGF0
ZWRUeXBlIHZhbHVlKQotewotICAgIHJldHVybiAhIXZhbHVlICYmICh2YWx1ZSAmIEZpeGVkSW5k
ZXhlZFN0b3JhZ2VNYXNrKSA9PSB2YWx1ZTsKLX0KLQogaW5saW5lIGJvb2wgaXNTdHJpbmdJZGVu
dFNwZWN1bGF0aW9uKFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQogewogICAgIHJldHVybiB2YWx1ZSA9
PSBTcGVjU3RyaW5nSWRlbnQ7CkBAIC0yNDgsOSArMjQ3LDI0IEBAIGlubGluZSBib29sIGlzSW50
MzJTcGVjdWxhdGlvbkV4cGVjdGluZ0RlZmluZWQoU3BlY3VsYXRlZFR5cGUgdmFsdWUpCiAgICAg
cmV0dXJuIGlzSW50MzJTcGVjdWxhdGlvbih2YWx1ZSAmIH5TcGVjT3RoZXIpOwogfQogCitpbmxp
bmUgYm9vbCBpc0ludDQ4U3BlY3VsYXRpb24oU3BlY3VsYXRlZFR5cGUgdmFsdWUpCit7CisgICAg
cmV0dXJuIHZhbHVlID09IFNwZWNJbnQ0ODsKK30KKworaW5saW5lIGJvb2wgaXNJbnQ0OEFzRG91
YmxlU3BlY3VsYXRpb24oU3BlY3VsYXRlZFR5cGUgdmFsdWUpCit7CisgICAgcmV0dXJuIHZhbHVl
ID09IFNwZWNJbnQ0OEFzRG91YmxlOworfQorCitpbmxpbmUgYm9vbCBpc0ludGVnZXJTcGVjdWxh
dGlvbihTcGVjdWxhdGVkVHlwZSB2YWx1ZSkKK3sKKyAgICByZXR1cm4gISF2YWx1ZSAmJiAodmFs
dWUgJiBTcGVjSW50ZWdlcikgPT0gdmFsdWU7Cit9CisKIGlubGluZSBib29sIGlzRG91YmxlUmVh
bFNwZWN1bGF0aW9uKFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQogewotICAgIHJldHVybiB2YWx1ZSA9
PSBTcGVjRG91YmxlUmVhbDsKKyAgICByZXR1cm4gISF2YWx1ZSAmJiAodmFsdWUgJiBTcGVjRG91
YmxlUmVhbCkgPT0gdmFsdWU7CiB9CiAKIGlubGluZSBib29sIGlzRG91YmxlU3BlY3VsYXRpb24o
U3BlY3VsYXRlZFR5cGUgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggMzUyOTlkNS4uMWMy
YzAyNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdElu
dGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJz
dHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtMTQzLDcgKzE0Myw3IEBAIGJvb2wgQWJzdHJh
Y3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVk
IGNsb2JiZXJMaW1pCiAgICAgICAgIEFTU0VSVChtX2dyYXBoLm1fZm9ybSA9PSBTU0EpOwogICAg
ICAgICBWYXJpYWJsZUFjY2Vzc0RhdGEqIHZhcmlhYmxlID0gbm9kZS0+dmFyaWFibGVBY2Nlc3NE
YXRhKCk7CiAgICAgICAgIEFic3RyYWN0VmFsdWUmIHZhbHVlID0gbV9zdGF0ZS52YXJpYWJsZXMo
KS5vcGVyYW5kKHZhcmlhYmxlLT5sb2NhbCgpKTsKLSAgICAgICAgQVNTRVJUKHZhbHVlLmlzVG9w
KCkpOworICAgICAgICBBU1NFUlQodmFsdWUuaXNIZWFwVG9wKCkpOwogICAgICAgICBGaWx0cmF0
aW9uUmVzdWx0IHJlc3VsdCA9CiAgICAgICAgICAgICB2YWx1ZS5maWx0ZXIodHlwZUZpbHRlckZv
cih1c2VLaW5kRm9yKHZhcmlhYmxlLT5mbHVzaEZvcm1hdCgpKSkpOwogICAgICAgICBBU1NFUlRf
VU5VU0VEKHJlc3VsdCwgcmVzdWx0ID09IEZpbHRyYXRpb25PSyk7CkBAIC03NzIsNyArNzcyLDcg
QEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVm
ZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIEFycmF5OjpHZW5lcmljOgogICAgICAgICAgICAgY2xvYmJlcldvcmxkKG5vZGUtPmNvZGVP
cmlnaW4sIGNsb2JiZXJMaW1pdCk7Ci0gICAgICAgICAgICBmb3JOb2RlKG5vZGUpLm1ha2VUb3Ao
KTsKKyAgICAgICAgICAgIGZvck5vZGUobm9kZSkubWFrZUhlYXBUb3AoKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBjYXNlIEFycmF5OjpTdHJpbmc6CiAgICAgICAgICAgICBpZiAobm9k
ZS0+YXJyYXlNb2RlKCkuaXNPdXRPZkJvdW5kcygpKSB7CkBAIC03ODcsMjQgKzc4NywyNCBAQCBi
b29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0
cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICAgICAgICAgIC8vIHNvIHdlJ3JlIGdvaW5n
IHdpdGggVE9QIGZvciBub3cuIFRoZSBzYW1lIHRoaW5nIGFwcGxpZXMgdG8KICAgICAgICAgICAg
ICAgICAvLyBjbG9iYmVyaW5nIHRoZSB3b3JsZC4KICAgICAgICAgICAgICAgICBjbG9iYmVyV29y
bGQobm9kZS0+Y29kZU9yaWdpbiwgY2xvYmJlckxpbWl0KTsKLSAgICAgICAgICAgICAgICBmb3JO
b2RlKG5vZGUpLm1ha2VUb3AoKTsKKyAgICAgICAgICAgICAgICBmb3JOb2RlKG5vZGUpLm1ha2VI
ZWFwVG9wKCk7CiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBmb3JOb2RlKG5v
ZGUpLnNldChtX2dyYXBoLCBtX2dyYXBoLm1fdm0uc3RyaW5nU3RydWN0dXJlLmdldCgpKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFycmF5OjpBcmd1bWVudHM6Ci0gICAgICAg
ICAgICBmb3JOb2RlKG5vZGUpLm1ha2VUb3AoKTsKKyAgICAgICAgICAgIGZvck5vZGUobm9kZSku
bWFrZUhlYXBUb3AoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFycmF5OjpJ
bnQzMjoKICAgICAgICAgICAgIGlmIChub2RlLT5hcnJheU1vZGUoKS5pc091dE9mQm91bmRzKCkp
IHsKICAgICAgICAgICAgICAgICBjbG9iYmVyV29ybGQobm9kZS0+Y29kZU9yaWdpbiwgY2xvYmJl
ckxpbWl0KTsKLSAgICAgICAgICAgICAgICBmb3JOb2RlKG5vZGUpLm1ha2VUb3AoKTsKKyAgICAg
ICAgICAgICAgICBmb3JOb2RlKG5vZGUpLm1ha2VIZWFwVG9wKCk7CiAgICAgICAgICAgICB9IGVs
c2UKICAgICAgICAgICAgICAgICBmb3JOb2RlKG5vZGUpLnNldFR5cGUoU3BlY0ludDMyKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFycmF5OjpEb3VibGU6CiAgICAgICAgICAg
ICBpZiAobm9kZS0+YXJyYXlNb2RlKCkuaXNPdXRPZkJvdW5kcygpKSB7CiAgICAgICAgICAgICAg
ICAgY2xvYmJlcldvcmxkKG5vZGUtPmNvZGVPcmlnaW4sIGNsb2JiZXJMaW1pdCk7Ci0gICAgICAg
ICAgICAgICAgZm9yTm9kZShub2RlKS5tYWtlVG9wKCk7CisgICAgICAgICAgICAgICAgZm9yTm9k
ZShub2RlKS5tYWtlSGVhcFRvcCgpOwogICAgICAgICAgICAgfSBlbHNlIGlmIChub2RlLT5hcnJh
eU1vZGUoKS5pc1NhbmVDaGFpbigpKQogICAgICAgICAgICAgICAgIGZvck5vZGUobm9kZSkuc2V0
VHlwZShTcGVjRG91YmxlKTsKICAgICAgICAgICAgIGVsc2UKQEAgLTgxNSw3ICs4MTUsNyBAQCBi
b29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0
cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICBjYXNlIEFycmF5OjpTbG93UHV0QXJyYXlT
dG9yYWdlOgogICAgICAgICAgICAgaWYgKG5vZGUtPmFycmF5TW9kZSgpLmlzT3V0T2ZCb3VuZHMo
KSkKICAgICAgICAgICAgICAgICBjbG9iYmVyV29ybGQobm9kZS0+Y29kZU9yaWdpbiwgY2xvYmJl
ckxpbWl0KTsKLSAgICAgICAgICAgIGZvck5vZGUobm9kZSkubWFrZVRvcCgpOworICAgICAgICAg
ICAgZm9yTm9kZShub2RlKS5tYWtlSGVhcFRvcCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgQXJyYXk6OkludDhBcnJheToKICAgICAgICAgICAgIGZvck5vZGUobm9kZSkuc2V0
VHlwZShTcGVjSW50MzIpOwpAQCAtODk2LDExICs4OTYsMTEgQEAgYm9vbCBBYnN0cmFjdEludGVy
cHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJl
ckxpbWkKICAgICBjYXNlIEFycmF5UG9wOgogICAgICAgICBub2RlLT5zZXRDYW5FeGl0KHRydWUp
OwogICAgICAgICBjbG9iYmVyV29ybGQobm9kZS0+Y29kZU9yaWdpbiwgY2xvYmJlckxpbWl0KTsK
LSAgICAgICAgZm9yTm9kZShub2RlKS5tYWtlVG9wKCk7CisgICAgICAgIGZvck5vZGUobm9kZSku
bWFrZUhlYXBUb3AoKTsKICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICBjYXNlIFJl
Z0V4cEV4ZWM6Ci0gICAgICAgIGZvck5vZGUobm9kZSkubWFrZVRvcCgpOworICAgICAgICBmb3JO
b2RlKG5vZGUpLm1ha2VIZWFwVG9wKCk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBSZWdF
eHBUZXN0OgpAQCAtOTgzLDcgKzk4Myw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0
cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAg
ICAgIAogICAgICAgICBTcGVjdWxhdGVkVHlwZSB0eXBlID0gc291cmNlLm1fdHlwZTsKICAgICAg
ICAgaWYgKHR5cGUgJiB+KFNwZWNOdW1iZXIgfCBTcGVjU3RyaW5nIHwgU3BlY0Jvb2xlYW4pKQot
ICAgICAgICAgICAgdHlwZSA9IChTcGVjVG9wICYgflNwZWNDZWxsKSB8IFNwZWNTdHJpbmc7Cisg
ICAgICAgICAgICB0eXBlID0gKFNwZWNIZWFwVG9wICYgflNwZWNDZWxsKSB8IFNwZWNTdHJpbmc7
CiAKICAgICAgICAgZGVzdGluYXRpb24uc2V0VHlwZSh0eXBlKTsKICAgICAgICAgaWYgKGRlc3Rp
bmF0aW9uLmlzQ2xlYXIoKSkKQEAgLTExMzgsNyArMTEzOCw3IEBAIGJvb2wgQWJzdHJhY3RJbnRl
cnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2Ji
ZXJMaW1pCiAgICAgICAgIGNsb2JiZXJXb3JsZChub2RlLT5jb2RlT3JpZ2luLCBjbG9iYmVyTGlt
aXQpOwogICAgICAgICAvLyBXZSBjdXJyZW50bHkgbWFrZSBubyBndWFyYW50ZWUgYWJvdXQgd2hh
dCB0aGlzIHJldHVybnMgYmVjYXVzZSBpdCBkb2VzIG5vdAogICAgICAgICAvLyBzcGVjdWxhdGUg
dGhhdCB0aGUgbGVuZ3RoIHByb3BlcnR5IGlzIGFjdHVhbGx5IGEgbGVuZ3RoLgotICAgICAgICBm
b3JOb2RlKG5vZGUpLm1ha2VUb3AoKTsKKyAgICAgICAgZm9yTm9kZShub2RlKS5tYWtlSGVhcFRv
cCgpOwogICAgICAgICBicmVhazsKICAgICAgICAgCiAgICAgY2FzZSBHZXRNeUFyZ3VtZW50QnlW
YWw6CkBAIC0xMTQ2LDcgKzExNDYsNyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJh
Y3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAg
ICAvLyBXZSBrbm93IHRoYXQgdGhpcyBleGVjdXRhYmxlIGRvZXMgbm90IGVzY2FwZSBpdHMgYXJn
dW1lbnRzLCBzbyB3ZSBjYW4gb3B0aW1pemUKICAgICAgICAgLy8gdGhlIGFyZ3VtZW50cyBhIGJp
dC4gTm90ZSB0aGF0IHRoaXMgZW5kcyB1cCBiZWluZyBmdXJ0aGVyIG9wdGltaXplZCBieSB0aGUK
ICAgICAgICAgLy8gQXJndW1lbnRzU2ltcGxpZmljYXRpb25QaGFzZS4KLSAgICAgICAgZm9yTm9k
ZShub2RlKS5tYWtlVG9wKCk7CisgICAgICAgIGZvck5vZGUobm9kZSkubWFrZUhlYXBUb3AoKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIAogICAgIGNhc2UgR2V0TXlBcmd1bWVudEJ5VmFsU2Fm
ZToKQEAgLTExNTUsNyArMTE1NSw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFj
dFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAg
IC8vIGEgZ2V0dGVyLiBXZSBkb24ndCBzcGVjdWxhdGUgYWdhaW5zdCB0aGlzLgogICAgICAgICBj
bG9iYmVyV29ybGQobm9kZS0+Y29kZU9yaWdpbiwgY2xvYmJlckxpbWl0KTsKICAgICAgICAgLy8g
QW5kIHRoZSByZXN1bHQgaXMgdW5rbm93bi4KLSAgICAgICAgZm9yTm9kZShub2RlKS5tYWtlVG9w
KCk7CisgICAgICAgIGZvck5vZGUobm9kZSkubWFrZUhlYXBUb3AoKTsKICAgICAgICAgYnJlYWs7
CiAgICAgICAgIAogICAgIGNhc2UgTmV3RnVuY3Rpb246IHsKQEAgLTEyMDYsNyArMTIwNiw3IEBA
IGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZl
Y3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBHZXRD
bG9zdXJlVmFyOgotICAgICAgICBmb3JOb2RlKG5vZGUpLm1ha2VUb3AoKTsKKyAgICAgICAgZm9y
Tm9kZShub2RlKS5tYWtlSGVhcFRvcCgpOwogICAgICAgICBicmVhazsKICAgICAgICAgICAgIAog
ICAgIGNhc2UgUHV0Q2xvc3VyZVZhcjoKQEAgLTEyMzQsNyArMTIzNCw3IEBAIGJvb2wgQWJzdHJh
Y3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVk
IGNsb2JiZXJMaW1pCiAgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0dXMuc3BlY2lmaWNWYWx1
ZSgpKQogICAgICAgICAgICAgICAgICAgICAgICAgZm9yTm9kZShub2RlKS5zZXQobV9ncmFwaCwg
c3RhdHVzLnNwZWNpZmljVmFsdWUoKSk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGZvck5vZGUobm9kZSkubWFrZVRvcCgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgZm9yTm9kZShub2RlKS5tYWtlSGVhcFRvcCgpOwogICAgICAgICAgICAgICAg
ICAgICBmaWx0ZXIobm9kZS0+Y2hpbGQxKCksIHN0YXR1cy5zdHJ1Y3R1cmVTZXQoKSk7CiAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29u
c3RhbnRzKHRydWUpOwpAQCAtMTI0Myw3ICsxMjQzLDcgQEAgYm9vbCBBYnN0cmFjdEludGVycHJl
dGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxp
bWkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBjbG9iYmVyV29ybGQobm9kZS0+
Y29kZU9yaWdpbiwgY2xvYmJlckxpbWl0KTsKLSAgICAgICAgZm9yTm9kZShub2RlKS5tYWtlVG9w
KCk7CisgICAgICAgIGZvck5vZGUobm9kZSkubWFrZUhlYXBUb3AoKTsKICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAKICAgICBjYXNlIEdldEFycmF5TGVuZ3RoOgpAQCAtMTQwMSw3ICsxNDAx
LDcgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0
ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICB9CiAgICAgICAgIAogICAgIGNhc2Ug
R2V0QnlPZmZzZXQ6IHsKLSAgICAgICAgZm9yTm9kZShub2RlKS5tYWtlVG9wKCk7CisgICAgICAg
IGZvck5vZGUobm9kZSkubWFrZUhlYXBUb3AoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAg
ICAgICAgICAgCkBAIC0xNDU2LDcgKzE0NTYsNyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8
QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQog
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIAogICAgIGNhc2UgR2V0R2xvYmFsVmFyOgotICAg
ICAgICBmb3JOb2RlKG5vZGUpLm1ha2VUb3AoKTsKKyAgICAgICAgZm9yTm9kZShub2RlKS5tYWtl
SGVhcFRvcCgpOwogICAgICAgICBicmVhazsKICAgICAgICAgCiAgICAgY2FzZSBHbG9iYWxWYXJX
YXRjaHBvaW50OgpAQCAtMTUwMCw3ICsxNTAwLDcgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVy
PEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkK
ICAgICBjYXNlIENvbnN0cnVjdDoKICAgICAgICAgbm9kZS0+c2V0Q2FuRXhpdCh0cnVlKTsKICAg
ICAgICAgY2xvYmJlcldvcmxkKG5vZGUtPmNvZGVPcmlnaW4sIGNsb2JiZXJMaW1pdCk7Ci0gICAg
ICAgIGZvck5vZGUobm9kZSkubWFrZVRvcCgpOworICAgICAgICBmb3JOb2RlKG5vZGUpLm1ha2VI
ZWFwVG9wKCk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBGb3JjZU9TUkV4aXQ6CkBAIC0x
NTcyLDE4ICsxNTcyLDE4IEBAIHZvaWQgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRl
VHlwZT46OmNsb2JiZXJDYXB0dXJlZFZhcnMoY29uc3QgQ29kZU9yaWdpCiAgICAgICAgIGZvciAo
c2l6ZV90IGkgPSBjYXB0dXJlZFZhcnMuc2l6ZSgpOyBpLS07KSB7CiAgICAgICAgICAgICBpZiAo
IWNhcHR1cmVkVmFycy5xdWlja0dldChpKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgICAgIG1fc3RhdGUudmFyaWFibGVzKCkubG9jYWwoaSkubWFrZVRvcCgpOworICAgICAg
ICAgICAgbV9zdGF0ZS52YXJpYWJsZXMoKS5sb2NhbChpKS5tYWtlSGVhcFRvcCgpOwogICAgICAg
ICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IG1fY29kZUJsb2NrLT5t
X251bVZhcnM7IGktLTspIHsKICAgICAgICAgICAgIGlmIChtX2NvZGVCbG9jay0+aXNDYXB0dXJl
ZChpKSkKLSAgICAgICAgICAgICAgICBtX3N0YXRlLnZhcmlhYmxlcygpLmxvY2FsKGkpLm1ha2VU
b3AoKTsKKyAgICAgICAgICAgICAgICBtX3N0YXRlLnZhcmlhYmxlcygpLmxvY2FsKGkpLm1ha2VI
ZWFwVG9wKCk7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBmb3IgKHNpemVfdCBpID0gbV9zdGF0
ZS52YXJpYWJsZXMoKS5udW1iZXJPZkFyZ3VtZW50cygpOyBpLS07KSB7CiAgICAgICAgIGlmICht
X2NvZGVCbG9jay0+aXNDYXB0dXJlZChhcmd1bWVudFRvT3BlcmFuZChpKSkpCi0gICAgICAgICAg
ICBtX3N0YXRlLnZhcmlhYmxlcygpLmFyZ3VtZW50KGkpLm1ha2VUb3AoKTsKKyAgICAgICAgICAg
IG1fc3RhdGUudmFyaWFibGVzKCkuYXJndW1lbnQoaSkubWFrZUhlYXBUb3AoKTsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RWYWx1
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0VmFsdWUuY3BwCmlu
ZGV4IGNkNjBhMGYuLjlmNjM0YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQWJzdHJhY3RWYWx1ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdBYnN0cmFjdFZhbHVlLmNwcApAQCAtMTI1LDEyICsxMjUsOSBAQCBGaWx0cmF0aW9uUmVzdWx0
IEFic3RyYWN0VmFsdWU6OmZpbHRlckFycmF5TW9kZXMoQXJyYXlNb2RlcyBhcnJheU1vZGVzKQog
CiBGaWx0cmF0aW9uUmVzdWx0IEFic3RyYWN0VmFsdWU6OmZpbHRlcihTcGVjdWxhdGVkVHlwZSB0
eXBlKQogewotICAgIGlmIChpc0NsZWFyKCkpCisgICAgaWYgKChtX3R5cGUgJiB0eXBlKSA9PSBt
X3R5cGUpCiAgICAgICAgIHJldHVybiBGaWx0cmF0aW9uT0s7CiAgICAgCi0gICAgaWYgKHR5cGUg
PT0gU3BlY1RvcCkKLSAgICAgICAgcmV0dXJuIGlzQ2xlYXIoKSA/IENvbnRyYWRpY3Rpb24gOiBG
aWx0cmF0aW9uT0s7Ci0gICAgCiAgICAgbV90eXBlICY9IHR5cGU7CiAgICAgCiAgICAgLy8gSXQn
cyBwb3NzaWJsZSB0aGF0IHByaW9yIHRvIHRoaXMgZmlsdGVyKCkgY2FsbCB3ZSBoYWQsIHNheSwg
KEZpbmFsLCBUT1ApLCBhbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQWJzdHJhY3RWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dFZhbHVlLmgKaW5kZXggYjA5NDIzZS4uZWMyZDJmYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdFZhbHVlLmgKQEAgLTYyLDE0ICs2MiwxNCBAQCBzdHJ1Y3QgQWJz
dHJhY3RWYWx1ZSB7CiAgICAgYm9vbCBpc0NsZWFyKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09
IFNwZWNOb25lOyB9CiAgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVybiBpc0NsZWFy
KCk7IH0KICAgICAKLSAgICB2b2lkIG1ha2VUb3AoKQorICAgIHZvaWQgbWFrZUhlYXBUb3AoKQog
ICAgIHsKLSAgICAgICAgbV90eXBlIHw9IFNwZWNUb3A7IC8vIFRoZSBzdGF0ZSBtYXkgaGF2ZSBp
bmNsdWRlZCBTcGVjRW1wdHksIGluIHdoaWNoIGNhc2Ugd2Ugd2FudCB0aGlzIHRvIGJlY29tZSBT
cGVjRW1wdHlPclRvcC4KLSAgICAgICAgbV9hcnJheU1vZGVzID0gQUxMX0FSUkFZX01PREVTOwot
ICAgICAgICBtX2N1cnJlbnRLbm93blN0cnVjdHVyZS5tYWtlVG9wKCk7Ci0gICAgICAgIG1fZnV0
dXJlUG9zc2libGVTdHJ1Y3R1cmUubWFrZVRvcCgpOwotICAgICAgICBtX3ZhbHVlID0gSlNWYWx1
ZSgpOwotICAgICAgICBjaGVja0NvbnNpc3RlbmN5KCk7CisgICAgICAgIG1ha2VUb3AoU3BlY0hl
YXBUb3ApOworICAgIH0KKyAgICAKKyAgICB2b2lkIG1ha2VCeXRlY29kZVRvcCgpCisgICAgewor
ICAgICAgICBtYWtlVG9wKFNwZWNCeXRlY29kZVRvcCk7CiAgICAgfQogICAgIAogICAgIHZvaWQg
Y2xvYmJlclN0cnVjdHVyZXMoKQpAQCAtODksOSArODksOSBAQCBzdHJ1Y3QgQWJzdHJhY3RWYWx1
ZSB7CiAgICAgICAgIG1fdmFsdWUgPSBKU1ZhbHVlKCk7CiAgICAgfQogICAgIAotICAgIGJvb2wg
aXNUb3AoKSBjb25zdAorICAgIGJvb2wgaXNIZWFwVG9wKCkgY29uc3QKICAgICB7Ci0gICAgICAg
IHJldHVybiBtX3R5cGUgPT0gU3BlY1RvcCAmJiBtX2N1cnJlbnRLbm93blN0cnVjdHVyZS5pc1Rv
cCgpICYmIG1fZnV0dXJlUG9zc2libGVTdHJ1Y3R1cmUuaXNUb3AoKTsKKyAgICAgICAgcmV0dXJu
IChtX3R5cGUgfCBTcGVjSGVhcFRvcCkgPT0gbV90eXBlICYmIG1fY3VycmVudEtub3duU3RydWN0
dXJlLmlzVG9wKCkgJiYgbV9mdXR1cmVQb3NzaWJsZVN0cnVjdHVyZS5pc1RvcCgpOwogICAgIH0K
ICAgICAKICAgICBib29sIHZhbHVlSXNUb3AoKSBjb25zdApAQCAtMTA0LDEwICsxMDQsMTAgQEAg
c3RydWN0IEFic3RyYWN0VmFsdWUgewogICAgICAgICByZXR1cm4gbV92YWx1ZTsKICAgICB9CiAg
ICAgCi0gICAgc3RhdGljIEFic3RyYWN0VmFsdWUgdG9wKCkKKyAgICBzdGF0aWMgQWJzdHJhY3RW
YWx1ZSBoZWFwVG9wKCkKICAgICB7CiAgICAgICAgIEFic3RyYWN0VmFsdWUgcmVzdWx0OwotICAg
ICAgICByZXN1bHQubWFrZVRvcCgpOworICAgICAgICByZXN1bHQubWFrZUhlYXBUb3AoKTsKICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCkBAIC0xOTUsNyArMTk1LDcgQEAgc3Ry
dWN0IEFic3RyYWN0VmFsdWUgewogICAgIAogICAgIGJvb2wgdmFsaWRhdGVUeXBlKEpTVmFsdWUg
dmFsdWUpIGNvbnN0CiAgICAgewotICAgICAgICBpZiAoaXNUb3AoKSkKKyAgICAgICAgaWYgKGlz
SGVhcFRvcCgpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIAogICAgICAgICBp
ZiAobWVyZ2VTcGVjdWxhdGlvbnMobV90eXBlLCBzcGVjdWxhdGlvbkZyb21WYWx1ZSh2YWx1ZSkp
ICE9IG1fdHlwZSkKQEAgLTIxMSw3ICsyMTEsNyBAQCBzdHJ1Y3QgQWJzdHJhY3RWYWx1ZSB7CiAg
ICAgCiAgICAgYm9vbCB2YWxpZGF0ZShKU1ZhbHVlIHZhbHVlKSBjb25zdAogICAgIHsKLSAgICAg
ICAgaWYgKGlzVG9wKCkpCisgICAgICAgIGlmIChpc0hlYXBUb3AoKSkKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICAKICAgICAgICAgaWYgKCEhbV92YWx1ZSAmJiBtX3ZhbHVlICE9
IHZhbHVlKQpAQCAtMzYzLDYgKzM2MywxNiBAQCBwcml2YXRlOgogICAgICAgICBtX2FycmF5TW9k
ZXMgPSBBTExfQVJSQVlfTU9ERVM7CiAgICAgfQogICAgIAorICAgIHZvaWQgbWFrZVRvcChTcGVj
dWxhdGVkVHlwZSB0b3ApCisgICAgeworICAgICAgICBtX3R5cGUgfD0gdG9wOworICAgICAgICBt
X2FycmF5TW9kZXMgPSBBTExfQVJSQVlfTU9ERVM7CisgICAgICAgIG1fY3VycmVudEtub3duU3Ry
dWN0dXJlLm1ha2VUb3AoKTsKKyAgICAgICAgbV9mdXR1cmVQb3NzaWJsZVN0cnVjdHVyZS5tYWtl
VG9wKCk7CisgICAgICAgIG1fdmFsdWUgPSBKU1ZhbHVlKCk7CisgICAgICAgIGNoZWNrQ29uc2lz
dGVuY3koKTsKKyAgICB9CisgICAgCiAgICAgdm9pZCBzZXRGdXR1cmVQb3NzaWJsZVN0cnVjdHVy
ZShHcmFwaCYsIFN0cnVjdHVyZSogc3RydWN0dXJlKTsKIAogICAgIHZvaWQgZmlsdGVyVmFsdWVC
eVR5cGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW5QbGFj
ZUFic3RyYWN0U3RhdGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJblBsYWNl
QWJzdHJhY3RTdGF0ZS5jcHAKaW5kZXggZjRjNGE5Zi4uNGVkYWUzMyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5jcHAKQEAg
LTEwOCwxNCArMTA4LDE0IEBAIHZvaWQgSW5QbGFjZUFic3RyYWN0U3RhdGU6OmluaXRpYWxpemUo
KQogICAgIHJvb3QtPmNmYUZvdW5kQ29uc3RhbnRzID0gZmFsc2U7CiAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCByb290LT52YWx1ZXNBdEhlYWQubnVtYmVyT2ZBcmd1bWVudHMoKTsgKytpKSB7
CiAgICAgICAgIGlmIChtX2dyYXBoLm1fZm9ybSA9PSBTU0EpIHsKLSAgICAgICAgICAgIHJvb3Qt
PnZhbHVlc0F0SGVhZC5hcmd1bWVudChpKS5tYWtlVG9wKCk7CisgICAgICAgICAgICByb290LT52
YWx1ZXNBdEhlYWQuYXJndW1lbnQoaSkubWFrZUhlYXBUb3AoKTsKICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBOb2RlKiBub2RlID0gcm9vdC0+dmFy
aWFibGVzQXRIZWFkLmFyZ3VtZW50KGkpOwogICAgICAgICBBU1NFUlQobm9kZS0+b3AoKSA9PSBT
ZXRBcmd1bWVudCk7CiAgICAgICAgIGlmICghbm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCktPnNo
b3VsZFVuYm94SWZQb3NzaWJsZSgpKSB7Ci0gICAgICAgICAgICByb290LT52YWx1ZXNBdEhlYWQu
YXJndW1lbnQoaSkubWFrZVRvcCgpOworICAgICAgICAgICAgcm9vdC0+dmFsdWVzQXRIZWFkLmFy
Z3VtZW50KGkpLm1ha2VIZWFwVG9wKCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
fQogICAgICAgICAKQEAgLTEyOCwxNCArMTI4LDE0IEBAIHZvaWQgSW5QbGFjZUFic3RyYWN0U3Rh
dGU6OmluaXRpYWxpemUoKQogICAgICAgICBlbHNlIGlmIChpc0NlbGxTcGVjdWxhdGlvbihwcmVk
aWN0aW9uKSkKICAgICAgICAgICAgIHJvb3QtPnZhbHVlc0F0SGVhZC5hcmd1bWVudChpKS5zZXRU
eXBlKFNwZWNDZWxsKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgcm9vdC0+dmFsdWVzQXRI
ZWFkLmFyZ3VtZW50KGkpLm1ha2VUb3AoKTsKKyAgICAgICAgICAgIHJvb3QtPnZhbHVlc0F0SGVh
ZC5hcmd1bWVudChpKS5tYWtlSGVhcFRvcCgpOwogICAgICAgICAKICAgICAgICAgcm9vdC0+dmFs
dWVzQXRUYWlsLmFyZ3VtZW50KGkpLmNsZWFyKCk7CiAgICAgfQogICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgcm9vdC0+dmFsdWVzQXRIZWFkLm51bWJlck9mTG9jYWxzKCk7ICsraSkgewogICAg
ICAgICBOb2RlKiBub2RlID0gcm9vdC0+dmFyaWFibGVzQXRIZWFkLmxvY2FsKGkpOwogICAgICAg
ICBpZiAobm9kZSAmJiBub2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEoKS0+aXNDYXB0dXJlZCgpKQot
ICAgICAgICAgICAgcm9vdC0+dmFsdWVzQXRIZWFkLmxvY2FsKGkpLm1ha2VUb3AoKTsKKyAgICAg
ICAgICAgIHJvb3QtPnZhbHVlc0F0SGVhZC5sb2NhbChpKS5tYWtlSGVhcFRvcCgpOwogICAgICAg
ICBlbHNlCiAgICAgICAgICAgICByb290LT52YWx1ZXNBdEhlYWQubG9jYWwoaSkuY2xlYXIoKTsK
ICAgICAgICAgcm9vdC0+dmFsdWVzQXRUYWlsLmxvY2FsKGkpLmNsZWFyKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmgKaW5kZXggMDdjNThjZC4uZDFlODI0MCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaApAQCAtNDQ1LDEy
ICs0NDUsMTIgQEAgcHVibGljOgogICAgICAgICBmb3IgKHNpemVfdCBhcmd1bWVudCA9IDA7IGFy
Z3VtZW50IDwgYmFzaWNCbG9jay52YXJpYWJsZXNBdEhlYWQubnVtYmVyT2ZBcmd1bWVudHMoKTsg
Kythcmd1bWVudCkgewogICAgICAgICAgICAgTm9kZSogbm9kZSA9IGJhc2ljQmxvY2sudmFyaWFi
bGVzQXRIZWFkLmFyZ3VtZW50KGFyZ3VtZW50KTsKICAgICAgICAgICAgIGlmICghbm9kZSB8fCAh
bm9kZS0+c2hvdWxkR2VuZXJhdGUoKSkKLSAgICAgICAgICAgICAgICBlbnRyeS0+bV9leHBlY3Rl
ZFZhbHVlcy5hcmd1bWVudChhcmd1bWVudCkubWFrZVRvcCgpOworICAgICAgICAgICAgICAgIGVu
dHJ5LT5tX2V4cGVjdGVkVmFsdWVzLmFyZ3VtZW50KGFyZ3VtZW50KS5tYWtlSGVhcFRvcCgpOwog
ICAgICAgICB9CiAgICAgICAgIGZvciAoc2l6ZV90IGxvY2FsID0gMDsgbG9jYWwgPCBiYXNpY0Js
b2NrLnZhcmlhYmxlc0F0SGVhZC5udW1iZXJPZkxvY2FscygpOyArK2xvY2FsKSB7CiAgICAgICAg
ICAgICBOb2RlKiBub2RlID0gYmFzaWNCbG9jay52YXJpYWJsZXNBdEhlYWQubG9jYWwobG9jYWwp
OwogICAgICAgICAgICAgaWYgKCFub2RlIHx8ICFub2RlLT5zaG91bGRHZW5lcmF0ZSgpKQotICAg
ICAgICAgICAgICAgIGVudHJ5LT5tX2V4cGVjdGVkVmFsdWVzLmxvY2FsKGxvY2FsKS5tYWtlVG9w
KCk7CisgICAgICAgICAgICAgICAgZW50cnktPm1fZXhwZWN0ZWRWYWx1ZXMubG9jYWwobG9jYWwp
Lm1ha2VIZWFwVG9wKCk7CiAgICAgICAgICAgICBlbHNlIGlmIChub2RlLT52YXJpYWJsZUFjY2Vz
c0RhdGEoKS0+c2hvdWxkVXNlRG91YmxlRm9ybWF0KCkpCiAgICAgICAgICAgICAgICAgZW50cnkt
Pm1fbG9jYWxzRm9yY2VkRG91YmxlLnNldChsb2NhbCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKaW5kZXggODgxZWQ2ZC4uYmEwN2IzZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKQEAgLTYyLDcgKzYyLDcgQEAgQUxXQVlTX0lO
TElORSBTcGVjdWxhdGVkVHlwZSB0eXBlRmlsdGVyRm9yKFVzZUtpbmQgdXNlS2luZCkKIHsKICAg
ICBzd2l0Y2ggKHVzZUtpbmQpIHsKICAgICBjYXNlIFVudHlwZWRVc2U6Ci0gICAgICAgIHJldHVy
biBTcGVjRW1wdHlPclRvcDsgLy8gVE9QIGlzbid0IGdvb2QgZW5vdWdoOyB1bnR5cGVkIHVzZXMg
bWF5IHVzZSB0aGUgbm9ybWFsbHkgdW5zZWVuIGVtcHR5IHZhbHVlLCBpbiB0aGUgY2FzZSBvZiBs
YXp5IHJlZ2lzdGVycy4KKyAgICAgICAgcmV0dXJuIFNwZWNGdWxsVG9wOwogICAgIGNhc2UgSW50
MzJVc2U6CiAgICAgY2FzZSBLbm93bkludDMyVXNlOgogICAgICAgICByZXR1cm4gU3BlY0ludDMy
OwpAQCAtOTcsNyArOTcsNyBAQCBBTFdBWVNfSU5MSU5FIFNwZWN1bGF0ZWRUeXBlIHR5cGVGaWx0
ZXJGb3IoVXNlS2luZCB1c2VLaW5kKQogICAgICAgICByZXR1cm4gU3BlY090aGVyOwogICAgIGRl
ZmF1bHQ6CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJl
dHVybiBTcGVjVG9wOworICAgICAgICByZXR1cm4gU3BlY0Z1bGxUb3A7CiAgICAgfQogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>