<?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>120099</bug_id>
          
          <creation_ts>2013-08-20 20:19:57 -0700</creation_ts>
          <short_desc>Assertion failure in JSC::SlotVisitor::copyLater when marking JSDataView</short_desc>
          <delta_ts>2013-08-21 13:53:08 -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>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>eflews.bot</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>oliver</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>919320</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-08-20 20:19:57 -0700</bug_when>
    <thetext>Saw this crash on fast/canvas/webgl/array-message-passing.html:

Thread 9 Crashed:: JavaScriptCore::Marking
0   com.apple.JavaScriptCore      	0x000000010658986a WTFCrash + 42 (Assertions.cpp:342)
1   com.apple.JavaScriptCore      	0x00000001061b68f5 JSC::SlotVisitor::copyLater(JSC::JSCell*, JSC::CopyToken, void*, unsigned long) + 85 (SlotVisitorInlines.h:213)
2   com.apple.JavaScriptCore      	0x00000001063cb624 JSC::JSObject::visitButterfly(JSC::SlotVisitor&amp;, JSC::Butterfly*, unsigned long) + 356 (JSObject.cpp:193)
3   com.apple.JavaScriptCore      	0x00000001063bf6e9 JSC::JSObject::visitChildren(JSC::JSCell*, JSC::SlotVisitor&amp;) + 409 (JSObject.cpp:223)
4   com.apple.JavaScriptCore      	0x00000001064fe5a8 JSC::visitChildren(JSC::SlotVisitor&amp;, JSC::JSCell const*) + 264 (SlotVisitor.cpp:96)
5   com.apple.JavaScriptCore      	0x00000001064fe40d JSC::SlotVisitor::drain() + 237 (SlotVisitor.cpp:136)
6   com.apple.JavaScriptCore      	0x00000001064fea18 JSC::SlotVisitor::drainFromShared(JSC::SlotVisitor::SharedDrainMode) + 1128 (SlotVisitor.cpp:226)
7   com.apple.JavaScriptCore      	0x00000001062e568d JSC::GCThread::gcThreadMain() + 189 (GCThread.cpp:109)
8   com.apple.JavaScriptCore      	0x00000001062e576d JSC::GCThread::gcThreadStartFunc(void*) + 29 (GCThread.cpp:136)
9   com.apple.JavaScriptCore      	0x00000001065cf8b0 WTF::threadEntryPoint(void*) + 144 (Threading.cpp:70)
10  com.apple.JavaScriptCore      	0x00000001065d0258 WTF::wtfThreadEntryPoint(void*) + 104 (ThreadingPthreads.cpp:195)
11  libsystem_c.dylib             	0x00007fff96a7b7a2 _pthread_start + 327
12  libsystem_c.dylib             	0x00007fff96a681e1 thread_start + 13

http://build.webkit.org/results/Apple%20MountainLion%20Debug%20WK2%20(Tests)/r154377%20(11827)/fast/canvas/webgl/array-message-passing-crash-log.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919422</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-08-21 08:36:50 -0700</bug_when>
    <thetext>This ASSERT is meant to catch cases where we would have corrupted to the state of CopiedSpace which may or may not have caused a crash later. I&apos;ll see if I can track down the particular object that&apos;s causing this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919424</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-08-21 08:43:42 -0700</bug_when>
    <thetext>It appears that this particular crash is happening on ML Debug WK2 test builder quite frequently:
http://build.webkit.org/results/Apple%20MountainLion%20Debug%20WK2%20(Tests)/r154383%20(11831)/fast/canvas/webgl/array-message-passing-crash-log.txt
http://build.webkit.org/results/Apple%20MountainLion%20Debug%20WK2%20(Tests)/r154383%20(11831)/fast/canvas/webgl/array-message-passing-crash-log.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919429</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-08-21 08:49:13 -0700</bug_when>
    <thetext>I haven&apos;t seen this particular crash on WK1 bots so maybe it&apos;s more or only reproducible on WK2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919434</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-08-21 08:55:09 -0700</bug_when>
    <thetext>This one is crashing on the main thread:
http://build.webkit.org/results/Apple%20MountainLion%20Debug%20WK2%20(Tests)/r154384%20(11832)/security/crypto-random-values-crash-log.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919467</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-08-21 09:29:41 -0700</bug_when>
    <thetext>I can repro very easily with WKTR by running fast/canvas/webgl/array-message-passing.html repeatedly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919478</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-08-21 09:40:15 -0700</bug_when>
    <thetext>Looks like the offending object is a DataView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919479</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-08-21 09:41:18 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Looks like the offending object is a DataView.

A JSDataView, to be more precise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919568</commentid>
    <comment_count>8</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-08-21 12:02:10 -0700</bug_when>
    <thetext>Temporarily marked as a debug crash in http://trac.webkit.org/changeset/154402</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919589</commentid>
    <comment_count>9</comment_count>
      <attachid>209295</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-08-21 13:01:10 -0700</bug_when>
    <thetext>Created attachment 209295
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919592</commentid>
    <comment_count>10</comment_count>
      <attachid>209295</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-08-21 13:06:54 -0700</bug_when>
    <thetext>Comment on attachment 209295
the patch

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

r=me

&gt; Source/JavaScriptCore/runtime/JSArrayBufferView.h:74
&gt; +    // A data view. B is unusewd, V points to a vector allocated using who-

unused

&gt; Source/JavaScriptCore/runtime/JSArrayBufferView.h:75
&gt; +    // knows-what, and M = DataViewMode. The view does not own the vector

vector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919593</commentid>
    <comment_count>11</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-08-21 13:07:33 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Temporarily marked as a debug crash in http://trac.webkit.org/changeset/154402

Please revert this too, in your patch (or after it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919596</commentid>
    <comment_count>12</comment_count>
      <attachid>209295</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-08-21 13:11:55 -0700</bug_when>
    <thetext>Comment on attachment 209295
the patch

Attachment 209295 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/1529149</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919599</commentid>
    <comment_count>13</comment_count>
      <attachid>209295</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-08-21 13:23:22 -0700</bug_when>
    <thetext>Comment on attachment 209295
the patch

Attachment 209295 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/1512963</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919609</commentid>
    <comment_count>14</comment_count>
      <attachid>209295</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-08-21 13:35:07 -0700</bug_when>
    <thetext>Comment on attachment 209295
the patch

Attachment 209295 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/1516849</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919615</commentid>
    <comment_count>15</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-08-21 13:53:08 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/154408</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>209295</attachid>
            <date>2013-08-21 13:01:10 -0700</date>
            <delta_ts>2013-08-21 13:35:07 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>21903</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU0NDA1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBA
CisyMDEzLTA4LTIxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
QXNzZXJ0aW9uIGZhaWx1cmUgaW4gSlNDOjpTbG90VmlzaXRvcjo6Y29weUxhdGVyIHdoZW4gbWFy
a2luZyBKU0RhdGFWaWV3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjAwOTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAg
ICAgICAgCisgICAgICAgIEpTRGF0YVZpZXcgc2hvdWxkIG5vdCBzdG9yZSB0aGUgQXJyYXlCdWZm
ZXIqIGluIHRoZSBidXR0ZXJmbHkgaW5kZXhpbmcgaGVhZGVyLCBzaW5jZQorICAgICAgICBKU0Rh
dGFWaWV3IG1heSBoYXZlIG9yZGluYXJ5IEpTIGluZGV4ZWQgcHJvcGVydGllcy4KKworICAgICAg
ICAqIHJ1bnRpbWUvQ2xhc3NJbmZvLmg6CisgICAgICAgICogcnVudGltZS9KU0FycmF5QnVmZmVy
Vmlldy5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXlCdWZmZXJWaWV3OjpDb25zdHJ1Y3Rpb25D
b250ZXh0OjpDb25zdHJ1Y3Rpb25Db250ZXh0KToKKyAgICAgICAgKEpTQzo6SlNBcnJheUJ1ZmZl
clZpZXc6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlCdWZmZXJW
aWV3Lmg6CisgICAgICAgIChKU0M6Omhhc0FycmF5QnVmZmVyKToKKyAgICAgICAgKiBydW50aW1l
L0pTQXJyYXlCdWZmZXJWaWV3SW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU0FycmF5QnVmZmVy
Vmlldzo6YnVmZmVyKToKKyAgICAgICAgKEpTQzo6SlNBcnJheUJ1ZmZlclZpZXc6Om5ldXRlcik6
CisgICAgICAgIChKU0M6OkpTQXJyYXlCdWZmZXJWaWV3OjpieXRlT2Zmc2V0KToKKyAgICAgICAg
KiBydW50aW1lL0pTQ2VsbC5jcHA6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6c2xvd0Rvd25BbmRX
YXN0ZU1lbW9yeSk6CisgICAgICAgICogcnVudGltZS9KU0NlbGwuaDoKKyAgICAgICAgKiBydW50
aW1lL0pTRGF0YVZpZXcuY3BwOgorICAgICAgICAoSlNDOjpKU0RhdGFWaWV3OjpKU0RhdGFWaWV3
KToKKyAgICAgICAgKEpTQzo6SlNEYXRhVmlldzo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6SlNE
YXRhVmlldzo6c2xvd0Rvd25BbmRXYXN0ZU1lbW9yeSk6CisgICAgICAgICogcnVudGltZS9KU0Rh
dGFWaWV3Lmg6CisgICAgICAgIChKU0M6OkpTRGF0YVZpZXc6OmJ1ZmZlcik6CisgICAgICAgICog
cnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlldy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNH
ZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVzLmg6CisgICAgICAgIChKU0M6Ojo6dmlzaXRDaGls
ZHJlbik6CisgICAgICAgIChKU0M6Ojo6c2xvd0Rvd25BbmRXYXN0ZU1lbW9yeSk6CisKIDIwMTMt
MDgtMjEgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjAxMjcKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NsYXNzSW5mby5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NsYXNzSW5mby5oCShyZXZpc2lvbiAxNTQ0
MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DbGFzc0luZm8uaAkod29ya2lu
ZyBjb3B5KQpAQCAtOTUsNyArOTUsNyBAQCBzdHJ1Y3QgTWV0aG9kVGFibGUgewogICAgIHR5cGVk
ZWYgYm9vbCAoKkRlZmluZU93blByb3BlcnR5RnVuY3Rpb25QdHIpKEpTT2JqZWN0KiwgRXhlY1N0
YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImLCBib29sKTsKICAgICBEZWZp
bmVPd25Qcm9wZXJ0eUZ1bmN0aW9uUHRyIGRlZmluZU93blByb3BlcnR5OwogCi0gICAgdHlwZWRl
ZiB2b2lkICgqU2xvd0Rvd25BbmRXYXN0ZU1lbW9yeSkoSlNBcnJheUJ1ZmZlclZpZXcqKTsKKyAg
ICB0eXBlZGVmIEFycmF5QnVmZmVyKiAoKlNsb3dEb3duQW5kV2FzdGVNZW1vcnkpKEpTQXJyYXlC
dWZmZXJWaWV3Kik7CiAgICAgU2xvd0Rvd25BbmRXYXN0ZU1lbW9yeSBzbG93RG93bkFuZFdhc3Rl
TWVtb3J5OwogICAgIAogICAgIHR5cGVkZWYgUGFzc1JlZlB0cjxBcnJheUJ1ZmZlclZpZXc+ICgq
R2V0VHlwZWRBcnJheUltcGwpKEpTQXJyYXlCdWZmZXJWaWV3Kik7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyVmlldy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXcuY3BwCShyZXZp
c2lvbiAxNTQ0MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVm
ZmVyVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk2LDYgKzk2LDE3IEBAIEpTQXJyYXlCdWZm
ZXJWaWV3OjpDb25zdHJ1Y3Rpb25Db250ZXh0OjoKICAgICBtX2J1dHRlcmZseSA9IEJ1dHRlcmZs
eTo6Y3JlYXRlKHZtLCAwLCAwLCAwLCB0cnVlLCBpbmRleGluZ0hlYWRlciwgMCk7CiB9CiAKK0pT
QXJyYXlCdWZmZXJWaWV3OjpDb25zdHJ1Y3Rpb25Db250ZXh0OjpDb25zdHJ1Y3Rpb25Db250ZXh0
KAorICAgIFN0cnVjdHVyZSogc3RydWN0dXJlLCBQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBhcnJh
eUJ1ZmZlciwKKyAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgsIERhdGFW
aWV3VGFnKQorICAgIDogbV9zdHJ1Y3R1cmUoc3RydWN0dXJlKQorICAgICwgbV92ZWN0b3Ioc3Rh
dGljX2Nhc3Q8dWludDhfdCo+KGFycmF5QnVmZmVyLT5kYXRhKCkpICsgYnl0ZU9mZnNldCkKKyAg
ICAsIG1fbGVuZ3RoKGxlbmd0aCkKKyAgICAsIG1fbW9kZShEYXRhVmlld01vZGUpCisgICAgLCBt
X2J1dHRlcmZseSgwKQoreworfQorCiBKU0FycmF5QnVmZmVyVmlldzo6SlNBcnJheUJ1ZmZlclZp
ZXcoVk0mIHZtLCBDb25zdHJ1Y3Rpb25Db250ZXh0JiBjb250ZXh0KQogICAgIDogQmFzZSh2bSwg
Y29udGV4dC5zdHJ1Y3R1cmUoKSwgY29udGV4dC5idXR0ZXJmbHkoKSkKICAgICAsIG1fdmVjdG9y
KGNvbnRleHQudmVjdG9yKCkpCkBAIC0xMTYsNiArMTI3LDEwIEBAIHZvaWQgSlNBcnJheUJ1ZmZl
clZpZXc6OmZpbmlzaENyZWF0aW9uKFYKICAgICBjYXNlIFdhc3RlZnVsVHlwZWRBcnJheToKICAg
ICAgICAgdm0uaGVhcC5hZGRSZWZlcmVuY2UodGhpcywgYnV0dGVyZmx5KCktPmluZGV4aW5nSGVh
ZGVyKCktPmFycmF5QnVmZmVyKCkpOwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBEYXRhVmll
d01vZGU6CisgICAgICAgIEFTU0VSVCghYnV0dGVyZmx5KCkpOworICAgICAgICB2bS5oZWFwLmFk
ZFJlZmVyZW5jZSh0aGlzLCBqc0Nhc3Q8SlNEYXRhVmlldyo+KHRoaXMpLT5idWZmZXIoKSk7Cisg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1
ZmZlclZpZXcuaAkocmV2aXNpb24gMTU0NDAyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtNzAsOCArNzAsMTkg
QEAgZW51bSBUeXBlZEFycmF5TW9kZSB7CiAgICAgLy8gdmVjdG9yIGFsbG9jYXRlZCB1c2luZyB3
aG8ta25vd3Mtd2hhdCwgYW5kIE0gPSBXYXN0ZWZ1bFR5cGVkQXJyYXkuCiAgICAgLy8gVGhlIHZp
ZXcgZG9lcyBub3Qgb3duIHRoZSB2ZWN0b3IuCiAgICAgV2FzdGVmdWxUeXBlZEFycmF5LAorICAg
IAorICAgIC8vIEEgZGF0YSB2aWV3LiBCIGlzIHVudXNld2QsIFYgcG9pbnRzIHRvIGEgdmVjdG9y
IGFsbG9jYXRlZCB1c2luZyB3aG8tCisgICAgLy8ga25vd3Mtd2hhdCwgYW5kIE0gPSBEYXRhVmll
d01vZGUuIFRoZSB2aWV3IGRvZXMgbm90IG93biB0aGUgdmVjdG9yCisgICAgLy8gVGhlcmUgaXMg
YW4gZXh0cmEgZmllbGQgKGluIEpTRGF0YVZpZXcpIHRoYXQgcG9pbnRzIHRvIHRoZQorICAgIC8v
IEFycmF5QnVmZmVyLgorICAgIERhdGFWaWV3TW9kZQogfTsKIAoraW5saW5lIGJvb2wgaGFzQXJy
YXlCdWZmZXIoVHlwZWRBcnJheU1vZGUgbW9kZSkKK3sKKyAgICByZXR1cm4gbW9kZSA+PSBXYXN0
ZWZ1bFR5cGVkQXJyYXk7Cit9CisKIC8vIFdoZW4gV2ViQ29yZSB1c2VzIGEgSlNBcnJheUJ1ZmZl
clZpZXcsIGl0IGV4cGVjdHMgdG8gYmUgYWJsZSB0byBnZXQgdGhlIG5hdGl2ZQogLy8gQXJyYXlC
dWZmZXIgYW5kIGxpdHRsZSBlbHNlLiBUaGlzIHJlcXVpcmVzIHNsb3dpbmcgZG93biBhbmQgd2Fz
dGluZyBtZW1vcnksCiAvLyBhbmQgdGhlbiBhY2Nlc3NpbmcgdGhpbmdzIHZpYSB0aGUgQnV0dGVy
Zmx5LiBXaGVuIEpTIHVzZXMgYSBKU0FycmF5QnVmZmVyVmlldwpAQCAtMTA0LDYgKzExNSwxMSBA
QCBwcm90ZWN0ZWQ6CiAgICAgICAgICAgICBWTSYsIFN0cnVjdHVyZSosIFBhc3NSZWZQdHI8QXJy
YXlCdWZmZXI+LAogICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVu
Z3RoKTsKICAgICAgICAgCisgICAgICAgIGVudW0gRGF0YVZpZXdUYWcgeyBEYXRhVmlldyB9Owor
ICAgICAgICBDb25zdHJ1Y3Rpb25Db250ZXh0KAorICAgICAgICAgICAgU3RydWN0dXJlKiwgUGFz
c1JlZlB0cjxBcnJheUJ1ZmZlcj4sCisgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1
bnNpZ25lZCBsZW5ndGgsIERhdGFWaWV3VGFnKTsKKyAgICAgICAgCiAgICAgICAgIGJvb2wgb3Bl
cmF0b3IhKCkgY29uc3QgeyByZXR1cm4gIW1fc3RydWN0dXJlOyB9CiAgICAgICAgIAogICAgICAg
ICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RydWN0dXJlOyB9CkBA
IC0xMzEsMTAgKzE0Nyw2IEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMgdm9pZCBnZXRPd25Ob25J
bmRleFByb3BlcnR5TmFtZXMoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJh
eSYsIEVudW1lcmF0aW9uTW9kZSk7CiAgICAgCiBwdWJsaWM6Ci0gICAgLy8gQWxsb2NhdGVzIHRo
ZSBmdWxsLW9uIG5hdGl2ZSBidWZmZXIuIEFsc28gbW92ZXMgdGhlIGRhdGEgaW50byB0aGUgQyBo
ZWFwCi0gICAgLy8gaWYgbmVjZXNzYXJ5LgotICAgIHZvaWQgc2xvd0Rvd25BbmRXYXN0ZU1lbW9y
eUlmTmVjZXNzYXJ5KCk7Ci0gICAgCiAgICAgVHlwZWRBcnJheU1vZGUgbW9kZSgpIGNvbnN0IHsg
cmV0dXJuIG1fbW9kZTsgfQogICAgIEFycmF5QnVmZmVyKiBidWZmZXIoKTsKICAgICBQYXNzUmVm
UHRyPEFycmF5QnVmZmVyVmlldz4gaW1wbCgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXdJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXdJbmxpbmVzLmgJKHJldmlz
aW9uIDE1NDQwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZm
ZXJWaWV3SW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxOSArMjgsMjAgQEAKIAogI2lu
Y2x1ZGUgIkFycmF5QnVmZmVyVmlldy5oIgogI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJWaWV3Lmgi
CisjaW5jbHVkZSAiSlNEYXRhVmlldy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAotaW5saW5lIHZv
aWQgSlNBcnJheUJ1ZmZlclZpZXc6OnNsb3dEb3duQW5kV2FzdGVNZW1vcnlJZk5lY2Vzc2FyeSgp
Ci17Ci0gICAgaWYgKG1fbW9kZSAhPSBXYXN0ZWZ1bFR5cGVkQXJyYXkpCi0gICAgICAgIG1ldGhv
ZFRhYmxlKCktPnNsb3dEb3duQW5kV2FzdGVNZW1vcnkodGhpcyk7Ci19Ci0KIGlubGluZSBBcnJh
eUJ1ZmZlciogSlNBcnJheUJ1ZmZlclZpZXc6OmJ1ZmZlcigpCiB7Ci0gICAgc2xvd0Rvd25BbmRX
YXN0ZU1lbW9yeUlmTmVjZXNzYXJ5KCk7Ci0gICAgcmV0dXJuIGJ1dHRlcmZseSgpLT5pbmRleGlu
Z0hlYWRlcigpLT5hcnJheUJ1ZmZlcigpOworICAgIHN3aXRjaCAobV9tb2RlKSB7CisgICAgY2Fz
ZSBXYXN0ZWZ1bFR5cGVkQXJyYXk6CisgICAgICAgIHJldHVybiBidXR0ZXJmbHkoKS0+aW5kZXhp
bmdIZWFkZXIoKS0+YXJyYXlCdWZmZXIoKTsKKyAgICBjYXNlIERhdGFWaWV3TW9kZToKKyAgICAg
ICAgcmV0dXJuIGpzQ2FzdDxKU0RhdGFWaWV3Kj4odGhpcyktPmJ1ZmZlcigpOworICAgIGRlZmF1
bHQ6CisgICAgICAgIHJldHVybiBtZXRob2RUYWJsZSgpLT5zbG93RG93bkFuZFdhc3RlTWVtb3J5
KHRoaXMpOworICAgIH0KIH0KIAogaW5saW5lIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBK
U0FycmF5QnVmZmVyVmlldzo6aW1wbCgpCkBAIC01MCwxNyArNTEsMTUgQEAgaW5saW5lIFBhc3NS
ZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBKU0FycgogCiBpbmxpbmUgdm9pZCBKU0FycmF5QnVmZmVy
Vmlldzo6bmV1dGVyKCkKIHsKLSAgICBBU1NFUlQobV9tb2RlID09IFdhc3RlZnVsVHlwZWRBcnJh
eSk7CisgICAgQVNTRVJUKGhhc0FycmF5QnVmZmVyKG1fbW9kZSkpOwogICAgIG1fbGVuZ3RoID0g
MDsKICAgICBtX3ZlY3RvciA9IDA7CiB9CiAKIGlubGluZSB1bnNpZ25lZCBKU0FycmF5QnVmZmVy
Vmlldzo6Ynl0ZU9mZnNldCgpCiB7Ci0gICAgaWYgKG1fbW9kZSAhPSBXYXN0ZWZ1bFR5cGVkQXJy
YXkpIHsKLSAgICAgICAgQVNTRVJUKG1fbW9kZSA9PSBGYXN0VHlwZWRBcnJheSB8fCBtX21vZGUg
PT0gT3ZlcnNpemVUeXBlZEFycmF5KTsKKyAgICBpZiAoIWhhc0FycmF5QnVmZmVyKG1fbW9kZSkp
CiAgICAgICAgIHJldHVybiAwOwotICAgIH0KICAgICAKICAgICBwdHJkaWZmX3QgZGVsdGEgPQog
ICAgICAgICBzdGF0aWNfY2FzdDx1aW50OF90Kj4obV92ZWN0b3IpIC0gc3RhdGljX2Nhc3Q8dWlu
dDhfdCo+KGJ1ZmZlcigpLT5kYXRhKCkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNDZWxsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NlbGwuY3BwCShyZXZpc2lvbiAxNTQ0MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NlbGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTgsNyArMjE4LDcgQEAg
Ym9vbCBKU0NlbGw6OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KgogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAotdm9pZCBKU0NlbGw6OnNsb3dEb3duQW5kV2FzdGVNZW1vcnkoSlNBcnJheUJ1ZmZl
clZpZXcqKQorQXJyYXlCdWZmZXIqIEpTQ2VsbDo6c2xvd0Rvd25BbmRXYXN0ZU1lbW9yeShKU0Fy
cmF5QnVmZmVyVmlldyopCiB7CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCShyZXZpc2lvbiAxNTQ0
MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAkod29ya2luZyBj
b3B5KQpAQCAtMTY3LDcgKzE2Nyw3IEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMgYm9vbCBkZWZp
bmVPd25Qcm9wZXJ0eShKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgUHJvcGVy
dHlEZXNjcmlwdG9yJiwgYm9vbCBzaG91bGRUaHJvdyk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2Jq
ZWN0KiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsK
LSAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCB2b2lk
IHNsb3dEb3duQW5kV2FzdGVNZW1vcnkoSlNBcnJheUJ1ZmZlclZpZXcqKTsKKyAgICBKU19FWFBP
UlRfUFJJVkFURSBzdGF0aWMgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCBBcnJheUJ1ZmZlciogc2xv
d0Rvd25BbmRXYXN0ZU1lbW9yeShKU0FycmF5QnVmZmVyVmlldyopOwogICAgIEpTX0VYUE9SVF9Q
UklWQVRFIHN0YXRpYyBQYXNzUmVmUHRyPEFycmF5QnVmZmVyVmlldz4gZ2V0VHlwZWRBcnJheUlt
cGwoSlNBcnJheUJ1ZmZlclZpZXcqKTsKIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXcuY3BwCShyZXZpc2lvbiAxNTQ0MDIpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzYsOCArMzYsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIGNvbnN0IENsYXNzSW5mbyBKU0Rh
dGFWaWV3OjpzX2luZm8gPSB7CiAgICAgIkRhdGFWaWV3IiwgJkJhc2U6OnNfaW5mbywgMCwgMCwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU0RhdGFWaWV3KX07CiAKLUpTRGF0YVZpZXc6OkpTRGF0YVZp
ZXcoVk0mIHZtLCBDb25zdHJ1Y3Rpb25Db250ZXh0JiBjb250ZXh0KQorSlNEYXRhVmlldzo6SlNE
YXRhVmlldyhWTSYgdm0sIENvbnN0cnVjdGlvbkNvbnRleHQmIGNvbnRleHQsIEFycmF5QnVmZmVy
KiBidWZmZXIpCiAgICAgOiBCYXNlKHZtLCBjb250ZXh0KQorICAgICwgbV9idWZmZXIoYnVmZmVy
KQogewogfQogCkBAIC01MiwxMCArNTMsMTEgQEAgSlNEYXRhVmlldyogSlNEYXRhVmlldzo6Y3Jl
YXRlKAogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsK
LSAgICBDb25zdHJ1Y3Rpb25Db250ZXh0IGNvbnRleHQodm0sIHN0cnVjdHVyZSwgYnVmZmVyLCBi
eXRlT2Zmc2V0LCBieXRlTGVuZ3RoKTsKKyAgICBDb25zdHJ1Y3Rpb25Db250ZXh0IGNvbnRleHQo
CisgICAgICAgIHN0cnVjdHVyZSwgYnVmZmVyLCBieXRlT2Zmc2V0LCBieXRlTGVuZ3RoLCBDb25z
dHJ1Y3Rpb25Db250ZXh0OjpEYXRhVmlldyk7CiAgICAgQVNTRVJUKGNvbnRleHQpOwogICAgIEpT
RGF0YVZpZXcqIHJlc3VsdCA9Ci0gICAgICAgIG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEpT
RGF0YVZpZXc+KHZtLmhlYXApKSBKU0RhdGFWaWV3KHZtLCBjb250ZXh0KTsKKyAgICAgICAgbmV3
IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SlNEYXRhVmlldz4odm0uaGVhcCkpIEpTRGF0YVZpZXco
dm0sIGNvbnRleHQsIGJ1ZmZlci5nZXQoKSk7CiAgICAgcmVzdWx0LT5maW5pc2hDcmVhdGlvbih2
bSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTk1LDkgKzk3LDEwIEBAIGJvb2wgSlNEYXRh
Vmlldzo6Z2V0T3duUHJvcGVydHlTbG90KAogICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0
eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAotdm9pZCBK
U0RhdGFWaWV3OjpzbG93RG93bkFuZFdhc3RlTWVtb3J5KEpTQXJyYXlCdWZmZXJWaWV3KikKK0Fy
cmF5QnVmZmVyKiBKU0RhdGFWaWV3OjpzbG93RG93bkFuZFdhc3RlTWVtb3J5KEpTQXJyYXlCdWZm
ZXJWaWV3KikKIHsKICAgICBVTlJFQUNIQUJMRV9GT1JfUExBVEZPUk0oKTsKKyAgICByZXR1cm4g
MDsKIH0KIAogUGFzc1JlZlB0cjxBcnJheUJ1ZmZlclZpZXc+IEpTRGF0YVZpZXc6OmdldFR5cGVk
QXJyYXlJbXBsKEpTQXJyYXlCdWZmZXJWaWV3KiBvYmplY3QpCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRhVmlldy5oCShyZXZpc2lvbiAxNTQ0MDIpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAg
LTM3LDcgKzM3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBlbGVtZW50
U2l6ZSA9IDE7CiAgICAgCiBwcm90ZWN0ZWQ6Ci0gICAgSlNEYXRhVmlldyhWTSYsIENvbnN0cnVj
dGlvbkNvbnRleHQmKTsKKyAgICBKU0RhdGFWaWV3KFZNJiwgQ29uc3RydWN0aW9uQ29udGV4dCYs
IEFycmF5QnVmZmVyKik7CiAgICAgCiBwdWJsaWM6CiAgICAgc3RhdGljIEpTRGF0YVZpZXcqIGNy
ZWF0ZSgKQEAgLTUwLDYgKzUwLDggQEAgcHVibGljOgogICAgIHN0YXRpYyBKU0RhdGFWaWV3KiBj
cmVhdGUoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwgdW5zaWduZWQgbGVuZ3RoKTsKICAgICBib29s
IHNldChFeGVjU3RhdGUqLCBKU09iamVjdCosIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVu
Z3RoKTsKICAgICAKKyAgICBBcnJheUJ1ZmZlciogYnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9i
dWZmZXI7IH0KKyAgICAKICAgICBQYXNzUmVmUHRyPERhdGFWaWV3PiB0eXBlZEltcGwoKTsKICAg
ICAKICAgICBzdGF0aWMgY29uc3QgVHlwZWRBcnJheVR5cGUgVHlwZWRBcnJheVN0b3JhZ2VUeXBl
ID0gVHlwZURhdGFWaWV3OwpAQCAtNTcsMTMgKzU5LDE2IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoK
ICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqLCBFeGVjU3RhdGUq
LCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogCi0gICAgc3RhdGljIHZvaWQgc2xvd0Rv
d25BbmRXYXN0ZU1lbW9yeShKU0FycmF5QnVmZmVyVmlldyopOworICAgIHN0YXRpYyBBcnJheUJ1
ZmZlciogc2xvd0Rvd25BbmRXYXN0ZU1lbW9yeShKU0FycmF5QnVmZmVyVmlldyopOwogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEFycmF5QnVmZmVyVmlldz4gZ2V0VHlwZWRBcnJheUltcGwoSlNBcnJh
eUJ1ZmZlclZpZXcqKTsKICAgICAKIHB1YmxpYzoKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVh
dGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgcHJvdG90eXBlKTsKICAg
ICAKICAgICBERUNMQVJFX0VYUE9SVF9JTkZPOworCitwcml2YXRlOgorICAgIEFycmF5QnVmZmVy
KiBtX2J1ZmZlcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXcuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlldy5o
CShyZXZpc2lvbiAxNTQ0MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dl
bmVyaWNUeXBlZEFycmF5Vmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDQsNyArMjQ0LDcgQEAg
cHJvdGVjdGVkOgogCiAgICAgLy8gQWxsb2NhdGVzIHRoZSBmdWxsLW9uIG5hdGl2ZSBidWZmZXIg
YW5kIG1vdmVzIGRhdGEgaW50byB0aGUgQyBoZWFwIGlmCiAgICAgLy8gbmVjZXNzYXJ5LiBOb3Rl
IHRoYXQgdGhpcyBuZXZlciBhbGxvY2F0ZXMgaW4gdGhlIEdDIGhlYXAuCi0gICAgc3RhdGljIHZv
aWQgc2xvd0Rvd25BbmRXYXN0ZU1lbW9yeShKU0FycmF5QnVmZmVyVmlldyopOworICAgIHN0YXRp
YyBBcnJheUJ1ZmZlciogc2xvd0Rvd25BbmRXYXN0ZU1lbW9yeShKU0FycmF5QnVmZmVyVmlldyop
OwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFycmF5QnVmZmVyVmlldz4gZ2V0VHlwZWRBcnJheUlt
cGwoSlNBcnJheUJ1ZmZlclZpZXcqKTsKIH07CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5s
aW5lcy5oCShyZXZpc2lvbiAxNTQ0MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzc5
LDYgKzM3OSwxMCBAQCB2b2lkIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+Ojp2CiAg
ICAgICAgIAogICAgIGNhc2UgV2FzdGVmdWxUeXBlZEFycmF5OgogICAgICAgICBicmVhazsKKyAg
ICAgICAgCisgICAgY2FzZSBEYXRhVmlld01vZGU6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAKICAgICBCYXNlOjp2aXNp
dENoaWxkcmVuKHRoaXNPYmplY3QsIHZpc2l0b3IpOwpAQCAtNDAzLDcgKzQwNyw3IEBAIHZvaWQg
SlNHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46OmMKIH0KIAogdGVtcGxhdGU8dHlwZW5h
bWUgQWRhcHRvcj4KLXZvaWQgSlNHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46OnNsb3dE
b3duQW5kV2FzdGVNZW1vcnkoSlNBcnJheUJ1ZmZlclZpZXcqIG9iamVjdCkKK0FycmF5QnVmZmVy
KiBKU0dlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6c2xvd0Rvd25BbmRXYXN0ZU1lbW9y
eShKU0FycmF5QnVmZmVyVmlldyogb2JqZWN0KQogewogICAgIEpTR2VuZXJpY1R5cGVkQXJyYXlW
aWV3KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Kj4ob2JqZWN0
KTsKICAgICAKQEAgLTQ1MSw3ICs0NTUsNyBAQCB2b2lkIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3
PEFkYXB0b3I+OjpzCiAgICAgICAgIGJ1ZmZlciA9IEFycmF5QnVmZmVyOjpjcmVhdGVBZG9wdGVk
KHRoaXNPYmplY3QtPm1fdmVjdG9yLCB0aGlzT2JqZWN0LT5ieXRlTGVuZ3RoKCkpOwogICAgICAg
ICBicmVhazsKICAgICAgICAgCi0gICAgY2FzZSBXYXN0ZWZ1bFR5cGVkQXJyYXk6CisgICAgZGVm
YXVsdDoKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQpAQCAtNDYwLDYgKzQ2NCw4IEBAIHZvaWQgSlNHZW5lcmljVHlwZWRBcnJheVZp
ZXc8QWRhcHRvcj46OnMKICAgICB0aGlzT2JqZWN0LT5tX3ZlY3RvciA9IGJ1ZmZlci0+ZGF0YSgp
OwogICAgIHRoaXNPYmplY3QtPm1fbW9kZSA9IFdhc3RlZnVsVHlwZWRBcnJheTsKICAgICBoZWFw
LT5hZGRSZWZlcmVuY2UodGhpc09iamVjdCwgYnVmZmVyLmdldCgpKTsKKyAgICAKKyAgICByZXR1
cm4gYnVmZmVyLmdldCgpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBBZGFwdG9yPgpJbmRleDog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxv
ZwkocmV2aXNpb24gMTU0NDA1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTMtMDgtMjEgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFw
cGxlLmNvbT4KKworICAgICAgICBBc3NlcnRpb24gZmFpbHVyZSBpbiBKU0M6OlNsb3RWaXNpdG9y
Ojpjb3B5TGF0ZXIgd2hlbiBtYXJraW5nIEpTRGF0YVZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMDA5OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9qcy9yZWdyZXNzL0FycmF5QnVmZmVy
LURhdGFWaWV3LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2pzL3JlZ3Jlc3MvQXJyYXlCdWZmZXItRGF0YVZpZXctYWxsb2MtbGFyZ2Ut
bG9uZy1saXZlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL3JlZ3Jlc3MvQXJyYXlC
dWZmZXItRGF0YVZpZXctYWxsb2MtbG9uZy1saXZlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvanMvcmVncmVzcy9BcnJheUJ1ZmZlci1EYXRhVmlldy1hbGxvYy1sb25nLWxp
dmVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvcmVncmVzcy9EYXRhVmlldy1jdXN0
b20tcHJvcGVydGllcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvcmVn
cmVzcy9EYXRhVmlldy1jdXN0b20tcHJvcGVydGllcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL0FycmF5QnVmZmVyLURhdGFWaWV3LWFsbG9jLWxh
cmdlLWxvbmctbGl2ZWQuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvcmVncmVzcy9zY3Jp
cHQtdGVzdHMvQXJyYXlCdWZmZXItRGF0YVZpZXctYWxsb2MtbG9uZy1saXZlZC5qczogQWRkZWQu
CisgICAgICAgICogZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9EYXRhVmlldy1jdXN0b20t
cHJvcGVydGllcy5qczogQWRkZWQuCisKIDIwMTMtMDgtMjEgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTU0Mzk5KTogYnJva2Ug
TWFjIE1MIGRlYnVnIFdLMSB0ZXN0cyA+IDUwIGNyYXNoZXMgKFJlcXVlc3RlZCBieSB0aG9ydG9u
IG9uICN3ZWJraXQpLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL0FycmF5QnVm
ZmVyLURhdGFWaWV3LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9BcnJheUJ1ZmZlci1EYXRhVmlldy1h
bGxvYy1sYXJnZS1sb25nLWxpdmVkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9BcnJheUJ1ZmZlci1EYXRhVmlldy1hbGxvYy1sYXJnZS1s
b25nLWxpdmVkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAorSlNS
ZWdyZXNzL0FycmF5QnVmZmVyLURhdGFWaWV3LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQKKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9BcnJheUJ1ZmZlci1EYXRhVmlldy1hbGxvYy1sYXJn
ZS1sb25nLWxpdmVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdy
ZXNzL0FycmF5QnVmZmVyLURhdGFWaWV3LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9BcnJheUJ1ZmZlci1EYXRh
Vmlldy1hbGxvYy1sYXJnZS1sb25nLWxpdmVkLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNz
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL0FycmF5QnVmZmVy
LURhdGFWaWV3LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL0FycmF5QnVmZmVyLURhdGFWaWV3LWFs
bG9jLWxvbmctbGl2ZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvanMvcmVncmVzcy9BcnJheUJ1ZmZlci1EYXRhVmlldy1hbGxvYy1sb25nLWxpdmVkLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9BcnJh
eUJ1ZmZlci1EYXRhVmlldy1hbGxvYy1sb25nLWxpdmVkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL0FycmF5QnVmZmVyLURhdGFWaWV3LWFsbG9j
LWxvbmctbGl2ZWQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhj
ZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9BcnJheUJ1ZmZlci1E
YXRhVmlldy1hbGxvYy1sb25nLWxpdmVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9qcy9yZWdyZXNzL0FycmF5QnVmZmVyLURhdGFWaWV3LWFsbG9jLWxvbmctbGl2ZWQuaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9BcnJheUJ1ZmZl
ci1EYXRhVmlldy1hbGxvYy1sb25nLWxpdmVkLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNz
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL0FycmF5QnVmZmVy
LURhdGFWaWV3LWFsbG9jLWxvbmctbGl2ZWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL0RhdGFWaWV3LWN1c3RvbS1wcm9wZXJ0aWVzLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3MvRGF0
YVZpZXctY3VzdG9tLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL0RhdGFWaWV3LWN1c3RvbS1wcm9wZXJ0aWVzLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL0RhdGFWaWV3
LWN1c3RvbS1wcm9wZXJ0aWVzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3MvRGF0YVZp
ZXctY3VzdG9tLXByb3BlcnRpZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2pzL3JlZ3Jlc3MvRGF0YVZpZXctY3VzdG9tLXByb3BlcnRpZXMuaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9EYXRhVmlldy1jdXN0b20tcHJvcGVydGll
cy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InNjcmlwdC10ZXN0cy9EYXRhVmlldy1jdXN0b20tcHJvcGVydGllcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRl
c3RzL0FycmF5QnVmZmVyLURhdGFWaWV3LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9BcnJheUJ1
ZmZlci1EYXRhVmlldy1hbGxvYy1sYXJnZS1sb25nLWxpdmVkLmpzCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9BcnJheUJ1ZmZlci1EYXRh
Vmlldy1hbGxvYy1sYXJnZS1sb25nLWxpdmVkLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEx
IEBACit2YXIgYXJyYXkgPSBuZXcgQXJyYXkoMTAwMDApOworCitmb3IgKHZhciBpID0gMDsgaSA8
IDEwMDAwMDsgKytpKQorICAgIGFycmF5W2kgJSBhcnJheS5sZW5ndGhdID0gbmV3IERhdGFWaWV3
KG5ldyBBcnJheUJ1ZmZlcigxMDAwKSk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXkubGVu
Z3RoOyArK2kpIHsKKyAgICBpZiAoYXJyYXlbaV0uYnl0ZUxlbmd0aCAhPSAxMDAwKQorICAgICAg
ICB0aHJvdyAiRXJyb3I6IGJhZCBsZW5ndGg6ICIgKyBhcnJheVtpXS5ieXRlTGVuZ3RoOworICAg
IGlmIChhcnJheVtpXS5idWZmZXIuYnl0ZUxlbmd0aCAhPSAxMDAwKQorICAgICAgICB0aHJvdyAi
RXJyb3I6IGJhZCBidWZmZXIuYnl0ZUxlbmd0aDogIiArIGFycmF5W2ldLmJ1ZmZlci5ieXRlTGVu
Z3RoOworfQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9B
cnJheUJ1ZmZlci1EYXRhVmlldy1hbGxvYy1sb25nLWxpdmVkLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvQXJyYXlCdWZmZXItRGF0YVZp
ZXctYWxsb2MtbG9uZy1saXZlZC5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvQXJyYXlCdWZmZXItRGF0YVZpZXctYWxsb2MtbG9uZy1s
aXZlZC5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMSBAQAordmFyIGFycmF5ID0gbmV3IEFy
cmF5KDEwMDAwKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCA3MDAwMDsgKytpKQorICAgIGFycmF5
W2kgJSBhcnJheS5sZW5ndGhdID0gbmV3IERhdGFWaWV3KG5ldyBBcnJheUJ1ZmZlcigxMCkpOwor
Citmb3IgKHZhciBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgKytpKSB7CisgICAgaWYgKGFycmF5
W2ldLmJ5dGVMZW5ndGggIT0gMTApCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIGxlbmd0aDog
IiArIGFycmF5W2ldLmJ5dGVMZW5ndGg7CisgICAgaWYgKGFycmF5W2ldLmJ1ZmZlci5ieXRlTGVu
Z3RoICE9IDEwKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBidWZmZXIuYnl0ZUxlbmd0aDog
IiArIGFycmF5W2ldLmJ1ZmZlci5ieXRlTGVuZ3RoOworfQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9EYXRhVmlldy1jdXN0b20tcHJvcGVydGllcy5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL0Rh
dGFWaWV3LWN1c3RvbS1wcm9wZXJ0aWVzLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9EYXRhVmlldy1jdXN0b20tcHJvcGVydGllcy5q
cwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNSBAQAordmFyIGFycmF5ID0gbmV3IEFycmF5KDEw
MDAwKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciB0aGlu
Z3kgPSBuZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDEwMDApKTsKKyAgICBzd2l0Y2ggKGkg
JSAzKSB7CisgICAgY2FzZSAwOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIDE6CisgICAgICAg
IHRoaW5neS5mID0gNDI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgMjoKKyAgICAgICAgdGhp
bmd5WzBdID0gNDI7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBhcnJheVtpICUgYXJyYXku
bGVuZ3RoXSA9IHRoaW5neTsKK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7
ICsraSkgeworICAgIGlmIChhcnJheVtpXS5ieXRlTGVuZ3RoICE9IDEwMDApCisgICAgICAgIHRo
cm93ICJFcnJvcjogYmFkIGxlbmd0aDogIiArIGFycmF5W2ldLmJ5dGVMZW5ndGg7CisgICAgaWYg
KGFycmF5W2ldLmJ1ZmZlci5ieXRlTGVuZ3RoICE9IDEwMDApCisgICAgICAgIHRocm93ICJFcnJv
cjogYmFkIGJ1ZmZlci5ieXRlTGVuZ3RoOiAiICsgYXJyYXlbaV0uYnVmZmVyLmJ5dGVMZW5ndGg7
CisgICAgc3dpdGNoIChpICUgMykgeworICAgIGNhc2UgMDoKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSAxOgorICAgICAgICBpZiAoYXJyYXlbaV0uZiAhPSA0MikKKyAgICAgICAgICAgIHRocm93
ICJFcnJvcjogYmFkIGZpZWxkICdmJzogIiArIGFycmF5W2ldLmY7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgMjoKKyAgICAgICAgaWYgKGFycmF5W2ldWzBdICE9IDQyKQorICAgICAgICAgICAg
dGhyb3cgIkVycm9yOiBiYWQgZWxlbWVudCAwOiAiICsgYXJyYXlbaV1bMF07CisgICAgICAgIGJy
ZWFrOworICAgIH0KK30K
</data>
<flag name="review"
          id="231293"
          type_id="1"
          status="+"
          setter="mhahnenberg"
    />
    <flag name="commit-queue"
          id="231294"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
      

    </bug>

</bugzilla>