<?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>110140</bug_id>
          
          <creation_ts>2013-02-18 10:07:29 -0800</creation_ts>
          <short_desc>Add list view for new calendar picker</short_desc>
          <delta_ts>2013-02-25 03:33:03 -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>Forms</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>
          <dependson>110137</dependson>
          <blocked>109439</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Keishi Hattori">keishi</reporter>
          <assigned_to name="Keishi Hattori">keishi</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>835594</commentid>
    <comment_count>0</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2013-02-18 10:07:29 -0800</bug_when>
    <thetext>Adding list view for new calendar picker</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835604</commentid>
    <comment_count>1</comment_count>
      <attachid>188916</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2013-02-18 10:29:26 -0800</bug_when>
    <thetext>Created attachment 188916
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838360</commentid>
    <comment_count>2</comment_count>
      <attachid>188916</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-21 05:58:51 -0800</bug_when>
    <thetext>Comment on attachment 188916
Patch

Attachment 188916 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16690061

New failing tests:
platform/chromium/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-rtl.html
platform/chromium/fast/forms/suggestion-picker/date-suggestion-picker-step-attribute.html
platform/chromium/fast/forms/page-popup/page-popup-adjust-rect.html
platform/chromium/fast/forms/calendar-picker/month-picker-key-operations.html
inspector/audits/audits-panel-functional.html
platform/chromium/fast/forms/calendar-picker/calendar-picker-datetimelocal.html
platform/chromium/fast/forms/calendar-picker/calendar-picker-with-step.html
platform/chromium/fast/forms/suggestion-picker/date-suggestion-picker-appearance.html
fast/loader/text-document-wrapping.html
fast/text/international/hindi-spacing.html
platform/chromium/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-key-operations.html
platform/chromium/fast/forms/suggestion-picker/date-suggestion-picker-appearance-with-scroll-bar.html
platform/chromium/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-with-scroll-bar.html
platform/chromium/fast/forms/calendar-picker/date-picker-events.html
platform/chromium/fast/forms/calendar-picker/calendar-picker-pre-100-year.html
platform/chromium/fast/forms/calendar-picker/week-picker-mouse-operations.html
platform/chromium/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance.html
platform/chromium/fast/forms/calendar-picker/month-picker-with-step.html
platform/chromium/fast/forms/suggestion-picker/date-suggestion-picker-key-operations.html
platform/chromium/fast/forms/suggestion-picker/date-suggestion-picker-min-max-attribute.html
platform/chromium/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-locale-hebrew.html
platform/chromium/fast/forms/suggestion-picker/date-suggestion-picker-appearance-rtl.html
platform/chromium/fast/forms/calendar-picker/calendar-picker-key-operations.html
platform/chromium/fast/forms/suggestion-picker/date-suggestion-picker-reset-value-after-reload.html
platform/chromium/fast/forms/calendar-picker/calendar-picker-type-change-onchange.html
platform/chromium/fast/forms/calendar-picker/month-picker-mouse-operations.html
platform/chromium/fast/forms/calendar-picker/datetimelocal-picker-events.html
platform/chromium/fast/forms/calendar-picker/calendar-picker-f4-key.html
platform/chromium/fast/forms/calendar-picker/week-picker-key-operations.html
fast/loader/javascript-url-in-object.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838380</commentid>
    <comment_count>3</comment_count>
      <attachid>188916</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-02-21 06:32:09 -0800</bug_when>
    <thetext>Comment on attachment 188916
Patch

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

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:1097
&gt; +    this.row = null;
&gt; +    this._width = 0;
&gt; +    this._position = 0;

Data members should have JsDoc comments in the constructor.

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:1105
&gt; + * @return {!Array}

Array of what?

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:1116
&gt; +    if (this._recycleBin().length &lt; limit)
&gt; +        this._recycleBin().push(this);

this._recycleBin() should be stored to a local variable.  Calling it twice makes unnecessary constraint.

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:1128
&gt; + * @return {!number}

should mention it&apos;s in pixel unit.

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:1135
&gt; + * @param {!number} width

ditto.

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:1145
&gt; + * @return {!number}

ditto.

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:1152
&gt; + * @param {!number} y

ditto.

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:1187
&gt; +    this._width = 0;
&gt; +    this._cells = {};
&gt; +    
&gt; +    this.selectedRow = ListView.NoSelection;
&gt; +
&gt; +    this.scrollView = new ScrollView();

Data members should have JsDoc comments in the constructor.

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:1196
&gt; +    this._needsUpdateCells = false;

ditto.

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:1201
&gt; +ListView.NoSelection = -1;

Should this be public?

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:1218
&gt; +        AnimationManager.shared.on(&quot;animationFrameWillFinish&quot;, this.onAnimationFrameWillFinish);
&gt; +    else
&gt; +        AnimationManager.shared.removeListener(&quot;animationFrameWillFinish&quot;, this.onAnimationFrameWillFinish);

Use AnimationManager.EventTypeAnimationFrameWillFinish

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:1357
&gt; + * @return {!number}

mention it&apos;s in pixel unit.

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:1364
&gt; + * @param {!number} height

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840739</commentid>
    <comment_count>4</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2013-02-24 23:46:50 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:1201
&gt; &gt; +ListView.NoSelection = -1;
&gt; 
&gt; Should this be public?
It could be private, but I think it should be public in case we want to check if a selection exists.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840744</commentid>
    <comment_count>5</comment_count>
      <attachid>190004</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2013-02-24 23:58:17 -0800</bug_when>
    <thetext>Created attachment 190004
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840755</commentid>
    <comment_count>6</comment_count>
      <attachid>190004</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-02-25 00:22:20 -0800</bug_when>
    <thetext>Comment on attachment 190004
Patch

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840831</commentid>
    <comment_count>7</comment_count>
      <attachid>190004</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-25 02:44:12 -0800</bug_when>
    <thetext>Comment on attachment 190004
Patch

Rejecting attachment 190004 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=gce-cq-02&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 190004, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:

fatal: read error: Connection reset by peer
Died at Tools/Scripts/update-webkit line 151.

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;, &apos;--chromium&apos;, &apos;--force-update&apos;]&quot; exit_code: 2

Updating OpenSource
fatal: read error: Connection reset by peer
Died at Tools/Scripts/update-webkit line 151.

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;, &apos;--chromium&apos;, &apos;--force-update&apos;]&quot; exit_code: 2
Updating OpenSource
fatal: read error: Connection reset by peer
Died at Tools/Scripts/update-webkit line 151.

Full output: http://queues.webkit.org/results/16746147</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840842</commentid>
    <comment_count>8</comment_count>
      <attachid>190004</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-25 03:32:59 -0800</bug_when>
    <thetext>Comment on attachment 190004
Patch

Clearing flags on attachment: 190004

Committed r143901: &lt;http://trac.webkit.org/changeset/143901&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840843</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-25 03:33:03 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188916</attachid>
            <date>2013-02-18 10:29:26 -0800</date>
            <delta_ts>2013-02-24 23:58:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>listview.diff</filename>
            <type>text/plain</type>
            <size>11687</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3MTYwOTE1Li42MGIxNTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkg
QEAKKzIwMTMtMDItMTkgIEtlaXNoaSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgQWRkIGxpc3QgdmlldyBmb3IgbmV3IGNhbGVuZGFyIHBpY2tlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMTQwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBDb2RlIGlz
IG5vdCB5ZXQgdXNlZC4KKworICAgICAgICAqIFJlc291cmNlcy9wYWdlcG9wdXBzL2NhbGVuZGFy
UGlja2VyLmpzOgorICAgICAgICAoTGlzdENlbGwpOiBPbmUgcm93IGluc2lkZSB0aGUgbGlzdCB2
aWV3LiBXZSByZXVzZQorICAgICAgICBsaXN0IGNlbGxzIHRvIGF2b2lkIGFuaW1hdGlvbiBoaWNj
dXBzIGNhdXNlZCBieSBtZW1vcnkgYWxsb2NhdGlvbi4KKyAgICAgICAgKExpc3RDZWxsLnByb3Rv
dHlwZS5fcmVjeWNsZUJpbik6IFJldHVybnMgYXJyYXkgdG8KKyAgICAgICAgc3RvcmUgdGhyb3du
IGF3YXkgbGlzdCBjZWxscyBzbyB3ZSBjYW4gcmV1c2UgdGhlbS4KKyAgICAgICAgKExpc3RDZWxs
LnByb3RvdHlwZS50aHJvd0F3YXkpOiBIaWRlcyB0aGUgY2VsbCBhbmQgcHV0cyBpdCBpbiB0aGUg
cmVjeWNsZSBiaW4uCisgICAgICAgIChMaXN0Q2VsbC5wcm90b3R5cGUuc2hvdyk6CisgICAgICAg
IChMaXN0Q2VsbC5wcm90b3R5cGUuaGlkZSk6IEhpZGUgaXQgd2hlbiB3ZSBkb24ndCBuZWVkIHRo
ZSBjZWxsIGFueSBtb3JlLgorICAgICAgICAoTGlzdENlbGwucHJvdG90eXBlLndpZHRoKToKKyAg
ICAgICAgKExpc3RDZWxsLnByb3RvdHlwZS5zZXRXaWR0aCk6CisgICAgICAgIChMaXN0Q2VsbC5w
cm90b3R5cGUucG9zaXRpb24pOgorICAgICAgICAoTGlzdENlbGwucHJvdG90eXBlLnNldFBvc2l0
aW9uKTogU2V0cyB0aGUgQ1NTIHRyYW5zZm9ybS4KKyAgICAgICAgKExpc3RDZWxsLnByb3RvdHlw
ZS5zZXRTZWxlY3RlZCk6IEFkZHMgc2VsZWN0ZWQgQ1NTIGNsYXNzLgorICAgICAgICAoTGlzdFZp
ZXcpOiBTaG93cyBhIHNjcm9sbGluZyBsaXN0LgorICAgICAgICAoTGlzdFZpZXcucHJvdG90eXBl
Lm9uQW5pbWF0aW9uRnJhbWVXaWxsRmluaXNoKTogQ2FsbHMgdXBkYXRlQ2VsbHMgaWYgdGhlIGNl
bGxzIG5lZWQgdG8gYmUgdXBkYXRlZC4KKyAgICAgICAgKExpc3RWaWV3LnByb3RvdHlwZS5zZXRO
ZWVkc1VwZGF0ZUNlbGxzKTogTWFyayB0aGUgY2VsbHMgYXMgbmVlZCB0byBiZSB1cGRhdGVkLgor
ICAgICAgICAoTGlzdFZpZXcucHJvdG90eXBlLmNlbGxBdFJvdyk6IFJldHVybnMgdGhlIGNlbGwg
YXQgYSBnaXZlbiByb3cuIElmIHRoZSBjZWxsIGlzIG5vdCB2aXNpYmxlIGFuZCBkb2Vzbid0IGV4
aXN0LCByZXR1cm5zIHVuZGVmaW5lZC4KKyAgICAgICAgKExpc3RWaWV3LnByb3RvdHlwZS5yb3dB
dFNjcm9sbE9mZnNldCk6IFRoZSByb3cgdGhhdCBpcyBkaXNwbGF5ZWQgYXQgdGhlIGdpdmVuIHNj
cm9sbCBvZmZzZXQuCisgICAgICAgIChMaXN0Vmlldy5wcm90b3R5cGUuc2Nyb2xsT2Zmc2V0Rm9y
Um93KTogVGhlIHNjcm9sbCBvZmZzZXQgZm9yIHRoZSB0b3Agb2YgYSBnaXZlbiByb3cuCisgICAg
ICAgIChMaXN0Vmlldy5wcm90b3R5cGUuYWRkQ2VsbElmTmVjZXNzYXJ5KTogQWRkcyB0aGUgY2Vs
bCBmb3IgYSBnaXZlbiByb3cuCisgICAgICAgIChMaXN0Vmlldy5wcm90b3R5cGUucHJlcGFyZU5l
d0NlbGwpOiBQcmVwYXJlcyBhIG5ldyBvciByZWN5Y2xlZCBjZWxsIGZvciBhIGdpdmVuIHJvdy4K
KyAgICAgICAgKExpc3RWaWV3LnByb3RvdHlwZS50aHJvd0F3YXlDZWxsKTogVGhyb3dzIGEgd2F5
IGEgY2VsbC4KKyAgICAgICAgKExpc3RWaWV3LnByb3RvdHlwZS5maXJzdFZpc2libGVSb3cpOiBU
aGUgZmlyc3QgdmlzaWJsZSByb3cgYXQgdGhlIHRvcCBvZiB0aGUgdmlldy4KKyAgICAgICAgKExp
c3RWaWV3LnByb3RvdHlwZS5sYXN0VmlzaWJsZVJvdyk6IFRoZSBsYXN0IHZpc2libGUgcm93IGF0
IHRoZSBib3R0b20gb2YgdGhlIHZpZXcuCisgICAgICAgIChMaXN0Vmlldy5wcm90b3R5cGUuc2Ny
b2xsVmlld0RpZENoYW5nZUNvbnRlbnRPZmZzZXQpOgorICAgICAgICAoTGlzdFZpZXcucHJvdG90
eXBlLnNjcm9sbFZpZXdEaWRDaGFuZ2VIZWlnaHQpOgorICAgICAgICAoTGlzdFZpZXcucHJvdG90
eXBlLnNjcm9sbFZpZXdEaWRDaGFuZ2VQYXJ0aXRpb24pOgorICAgICAgICAoTGlzdFZpZXcucHJv
dG90eXBlLnVwZGF0ZUNlbGxzKTogVXBkYXRlcyBhbGwgdGhlIGNlbGxzIHRoYXQgYXJlIHZpc2li
bGUuCisgICAgICAgIChMaXN0Vmlldy5wcm90b3R5cGUud2lkdGgpOgorICAgICAgICAoTGlzdFZp
ZXcucHJvdG90eXBlLnNldFdpZHRoKToKKyAgICAgICAgKExpc3RWaWV3LnByb3RvdHlwZS5oZWln
aHQpOgorICAgICAgICAoTGlzdFZpZXcucHJvdG90eXBlLnNldEhlaWdodCk6CisgICAgICAgIChM
aXN0Vmlldy5wcm90b3R5cGUub25DbGljayk6IENsaWNraW5nIG9uIGEgcm93IHNlbGVjdHMgaXQu
CisgICAgICAgIChMaXN0Vmlldy5wcm90b3R5cGUuc2VsZWN0KToKKyAgICAgICAgKExpc3RWaWV3
LnByb3RvdHlwZS5kZXNlbGVjdCk6CisgICAgICAgIChMaXN0Vmlldy5wcm90b3R5cGUuc2Nyb2xs
VG9Sb3cpOiBTY3JvbGxzIHRvIGEgZ2l2ZW4gcm93LgorCiAyMDEzLTAyLTE4ICBLZWlzaGkgSGF0
dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBzY3JvbGwgdmlldyBmb3Ig
bmV3IGNhbGVuZGFyIHBpY2tlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2Vz
L3BhZ2Vwb3B1cHMvY2FsZW5kYXJQaWNrZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMv
cGFnZXBvcHVwcy9jYWxlbmRhclBpY2tlci5qcwppbmRleCAzYzRhZjg1Li41Mjc4NjQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9jYWxlbmRhclBpY2tl
ci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9jYWxlbmRhclBp
Y2tlci5qcwpAQCAtMTA4Nyw2ICsxMDg3LDMzMiBAQCBTY3JvbGxWaWV3LnByb3RvdHlwZS5jb250
ZW50UG9zaXRpb25Gb3JDb250ZW50T2Zmc2V0ID0gZnVuY3Rpb24ob2Zmc2V0KSB7CiAKIC8qKgog
ICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyBWaWV3CisgKi8KK2Z1bmN0aW9uIExpc3RDZWxs
KCkgeworICAgIFZpZXcuY2FsbCh0aGlzLCBjcmVhdGVFbGVtZW50KCJkaXYiLCAibGlzdC1jZWxs
IikpOworCisgICAgdGhpcy5yb3cgPSBudWxsOworICAgIHRoaXMuX3dpZHRoID0gMDsKKyAgICB0
aGlzLl9wb3NpdGlvbiA9IDA7Cit9CisKK0xpc3RDZWxsLnByb3RvdHlwZSA9IE9iamVjdC5jcmVh
dGUoVmlldy5wcm90b3R5cGUpOworCitMaXN0Q2VsbC5EZWZhdWx0UmVjeWNsZUJpbkxpbWl0ID0g
NjQ7CisKKy8qKgorICogQHJldHVybiB7IUFycmF5fQorICovCitMaXN0Q2VsbC5wcm90b3R5cGUu
X3JlY3ljbGVCaW4gPSBmdW5jdGlvbigpIHsKKyAgICBjb25zb2xlLmFzc2VydChmYWxzZSwgIk5P
VCBSRUFDSEVEOiBMaXN0Q2VsbC5wcm90b3R5cGUuX3JlY3ljbGVCaW4gbmVlZHMgdG8gYmUgb3Zl
cnJpZGRlbi4iKTsKKyAgICByZXR1cm4gW107Cit9OworCitMaXN0Q2VsbC5wcm90b3R5cGUudGhy
b3dBd2F5ID0gZnVuY3Rpb24oKSB7CisgICAgdGhpcy5oaWRlKCk7CisgICAgdmFyIGxpbWl0ID0g
dHlwZW9mIHRoaXMuY29uc3RydWN0b3IuUmVjeWNsZUJpbkxpbWl0ID09PSAidW5kZWZpbmVkIiA/
IExpc3RDZWxsLkRlZmF1bHRSZWN5Y2xlQmluTGltaXQgOiB0aGlzLmNvbnN0cnVjdG9yLlJlY3lj
bGVCaW5MaW1pdDsKKyAgICBpZiAodGhpcy5fcmVjeWNsZUJpbigpLmxlbmd0aCA8IGxpbWl0KQor
ICAgICAgICB0aGlzLl9yZWN5Y2xlQmluKCkucHVzaCh0aGlzKTsKK307CisKK0xpc3RDZWxsLnBy
b3RvdHlwZS5zaG93ID0gZnVuY3Rpb24oKSB7CisgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5y
ZW1vdmUoImhpZGRlbiIpOworfTsKKworTGlzdENlbGwucHJvdG90eXBlLmhpZGUgPSBmdW5jdGlv
bigpIHsKKyAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7Cit9OworCisv
KioKKyAqIEByZXR1cm4geyFudW1iZXJ9CisgKi8KK0xpc3RDZWxsLnByb3RvdHlwZS53aWR0aCA9
IGZ1bmN0aW9uKCl7CisgICAgcmV0dXJuIHRoaXMuX3dpZHRoOworfTsKKworLyoqCisgKiBAcGFy
YW0geyFudW1iZXJ9IHdpZHRoCisgKi8KK0xpc3RDZWxsLnByb3RvdHlwZS5zZXRXaWR0aCA9IGZ1
bmN0aW9uKHdpZHRoKXsKKyAgICBpZiAodGhpcy5fd2lkdGggPT09IHdpZHRoKQorICAgICAgICBy
ZXR1cm47CisgICAgdGhpcy5fd2lkdGggPSB3aWR0aDsKKyAgICB0aGlzLmVsZW1lbnQuc3R5bGUu
d2lkdGggPSB0aGlzLl93aWR0aCArICJweCI7Cit9OworCisvKioKKyAqIEByZXR1cm4geyFudW1i
ZXJ9CisgKi8KK0xpc3RDZWxsLnByb3RvdHlwZS5wb3NpdGlvbiA9IGZ1bmN0aW9uKCl7CisgICAg
cmV0dXJuIHRoaXMuX3Bvc2l0aW9uOworfTsKKworLyoqCisgKiBAcGFyYW0geyFudW1iZXJ9IHkK
KyAqLworTGlzdENlbGwucHJvdG90eXBlLnNldFBvc2l0aW9uID0gZnVuY3Rpb24oeSkgeworICAg
IGlmICh0aGlzLl9wb3NpdGlvbiA9PT0geSkKKyAgICAgICAgcmV0dXJuOworICAgIHRoaXMuX3Bv
c2l0aW9uID0geTsKKyAgICB0aGlzLmVsZW1lbnQuc3R5bGUud2Via2l0VHJhbnNmb3JtID0gInRy
YW5zbGF0ZSgwLCAiICsgdGhpcy5fcG9zaXRpb24gKyAicHgpIjsKK307CisKKy8qKgorICogQHBh
cmFtIHshYm9vbGVhbn0gc2VsZWN0ZWQKKyAqLworTGlzdENlbGwucHJvdG90eXBlLnNldFNlbGVj
dGVkID0gZnVuY3Rpb24oc2VsZWN0ZWQpIHsKKyAgICBpZiAodGhpcy5fc2VsZWN0ZWQgPT09IHNl
bGVjdGVkKQorICAgICAgICByZXR1cm47CisgICAgdGhpcy5fc2VsZWN0ZWQgPSBzZWxlY3RlZDsK
KyAgICBpZiAodGhpcy5fc2VsZWN0ZWQpCisgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3Qu
YWRkKCJzZWxlY3RlZCIpOworICAgIGVsc2UKKyAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlz
dC5yZW1vdmUoInNlbGVjdGVkIik7Cit9OworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4
dGVuZHMgVmlldworICovCitmdW5jdGlvbiBMaXN0VmlldygpIHsKKyAgICBWaWV3LmNhbGwodGhp
cywgY3JlYXRlRWxlbWVudCgiZGl2IiwgImxpc3QtdmlldyIpKTsKKyAgICB0aGlzLmVsZW1lbnQu
dGFiSW5kZXggPSAwOworICAgIAorICAgIHRoaXMuX3dpZHRoID0gMDsKKyAgICB0aGlzLl9jZWxs
cyA9IHt9OworICAgIAorICAgIHRoaXMuc2VsZWN0ZWRSb3cgPSBMaXN0Vmlldy5Ob1NlbGVjdGlv
bjsKKworICAgIHRoaXMuc2Nyb2xsVmlldyA9IG5ldyBTY3JvbGxWaWV3KCk7CisgICAgdGhpcy5z
Y3JvbGxWaWV3LmRlbGVnYXRlID0gdGhpczsKKyAgICB0aGlzLnNjcm9sbFZpZXcubWluaW11bUNv
bnRlbnRPZmZzZXQgPSAwOworICAgIHRoaXMuc2Nyb2xsVmlldy5zZXRXaWR0aCgwKTsKKyAgICB0
aGlzLnNjcm9sbFZpZXcuc2V0SGVpZ2h0KDApOworICAgIHRoaXMuc2Nyb2xsVmlldy5hdHRhY2hU
byh0aGlzKTsKKworICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRo
aXMub25DbGljaywgZmFsc2UpOworCisgICAgdGhpcy5fbmVlZHNVcGRhdGVDZWxscyA9IGZhbHNl
OworfQorCitMaXN0Vmlldy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKFZpZXcucHJvdG90eXBl
KTsKKworTGlzdFZpZXcuTm9TZWxlY3Rpb24gPSAtMTsKKworTGlzdFZpZXcucHJvdG90eXBlLm9u
QW5pbWF0aW9uRnJhbWVXaWxsRmluaXNoID0gZnVuY3Rpb24oKSB7CisgICAgaWYgKHRoaXMuX25l
ZWRzVXBkYXRlQ2VsbHMpCisgICAgICAgIHRoaXMudXBkYXRlQ2VsbHMoKTsKK307CisKKy8qKgor
ICogQHBhcmFtIHshYm9vbGVhbn0gbmVlZHNVcGRhdGVDZWxscworICovCitMaXN0Vmlldy5wcm90
b3R5cGUuc2V0TmVlZHNVcGRhdGVDZWxscyA9IGZ1bmN0aW9uKG5lZWRzVXBkYXRlQ2VsbHMpIHsK
KyAgICBpZiAodGhpcy5fbmVlZHNVcGRhdGVDZWxscyA9PT0gbmVlZHNVcGRhdGVDZWxscykKKyAg
ICAgICAgcmV0dXJuOworICAgIHRoaXMuX25lZWRzVXBkYXRlQ2VsbHMgPSBuZWVkc1VwZGF0ZUNl
bGxzOworICAgIGlmICh0aGlzLl9uZWVkc1VwZGF0ZUNlbGxzKQorICAgICAgICBBbmltYXRpb25N
YW5hZ2VyLnNoYXJlZC5vbigiYW5pbWF0aW9uRnJhbWVXaWxsRmluaXNoIiwgdGhpcy5vbkFuaW1h
dGlvbkZyYW1lV2lsbEZpbmlzaCk7CisgICAgZWxzZQorICAgICAgICBBbmltYXRpb25NYW5hZ2Vy
LnNoYXJlZC5yZW1vdmVMaXN0ZW5lcigiYW5pbWF0aW9uRnJhbWVXaWxsRmluaXNoIiwgdGhpcy5v
bkFuaW1hdGlvbkZyYW1lV2lsbEZpbmlzaCk7Cit9OworCisvKioKKyAqIEBwYXJhbSB7IW51bWJl
cn0gcm93CisgKiBAcmV0dXJuIHs/TGlzdENlbGx9CisgKi8KK0xpc3RWaWV3LnByb3RvdHlwZS5j
ZWxsQXRSb3cgPSBmdW5jdGlvbihyb3cpIHsKKyAgICByZXR1cm4gdGhpcy5fY2VsbHNbcm93XTsK
K307CisKKy8qKgorICogQHBhcmFtIHshbnVtYmVyfSBvZmZzZXQKKyAqIEByZXR1cm4geyFudW1i
ZXJ9CisgKi8KK0xpc3RWaWV3LnByb3RvdHlwZS5yb3dBdFNjcm9sbE9mZnNldCA9IGZ1bmN0aW9u
KG9mZnNldCkgeworICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAiTk9UIFJFQUNIRUQ6IExpc3RW
aWV3LnByb3RvdHlwZS5yb3dBdFNjcm9sbE9mZnNldCBuZWVkcyB0byBiZSBvdmVycmlkZGVuLiIp
OworICAgIHJldHVybiAwOworfTsKKworLyoqCisgKiBAcGFyYW0geyFudW1iZXJ9IHJvdworICog
QHJldHVybiB7IW51bWJlcn0KKyAqLworTGlzdFZpZXcucHJvdG90eXBlLnNjcm9sbE9mZnNldEZv
clJvdyA9IGZ1bmN0aW9uKHJvdykgeworICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAiTk9UIFJF
QUNIRUQ6IExpc3RWaWV3LnByb3RvdHlwZS5zY3JvbGxPZmZzZXRGb3JSb3cgbmVlZHMgdG8gYmUg
b3ZlcnJpZGRlbi4iKTsKKyAgICByZXR1cm4gMDsKK307CisKKy8qKgorICogQHBhcmFtIHshbnVt
YmVyfSByb3cKKyAqIEByZXR1cm4geyFMaXN0Q2VsbH0KKyAqLworTGlzdFZpZXcucHJvdG90eXBl
LmFkZENlbGxJZk5lY2Vzc2FyeSA9IGZ1bmN0aW9uKHJvdykgeworICAgIHZhciBjZWxsID0gdGhp
cy5fY2VsbHNbcm93XTsKKyAgICBpZiAoY2VsbCkKKyAgICAgICAgcmV0dXJuIGNlbGw7CisgICAg
Y2VsbCA9IHRoaXMucHJlcGFyZU5ld0NlbGwocm93KTsKKyAgICBjZWxsLmF0dGFjaFRvKHRoaXMu
c2Nyb2xsVmlldy5jb250ZW50RWxlbWVudCk7CisgICAgY2VsbC5zZXRXaWR0aCh0aGlzLl93aWR0
aCk7CisgICAgY2VsbC5zZXRQb3NpdGlvbih0aGlzLnNjcm9sbFZpZXcuY29udGVudFBvc2l0aW9u
Rm9yQ29udGVudE9mZnNldCh0aGlzLnNjcm9sbE9mZnNldEZvclJvdyhyb3cpKSk7CisgICAgdGhp
cy5fY2VsbHNbcm93XSA9IGNlbGw7CisgICAgcmV0dXJuIGNlbGw7Cit9OworCisvKioKKyAqIEBw
YXJhbSB7IW51bWJlcn0gcm93CisgKiBAcmV0dXJuIHshTGlzdENlbGx9CisgKi8KK0xpc3RWaWV3
LnByb3RvdHlwZS5wcmVwYXJlTmV3Q2VsbCA9IGZ1bmN0aW9uKHJvdykgeworICAgIGNvbnNvbGUu
YXNzZXJ0KGZhbHNlLCAiTk9UIFJFQUNIRUQ6IExpc3RWaWV3LnByb3RvdHlwZS5wcmVwYXJlTmV3
Q2VsbCBzaG91bGQgYmUgb3ZlcnJpZGRlbi4iKTsKKyAgICByZXR1cm4gbmV3IExpc3RDZWxsKCk7
Cit9OworCisvKioKKyAqIEBwYXJhbSB7IUxpc3RDZWxsfSBjZWxsCisgKi8KK0xpc3RWaWV3LnBy
b3RvdHlwZS50aHJvd0F3YXlDZWxsID0gZnVuY3Rpb24oY2VsbCkgeworICAgIGRlbGV0ZSB0aGlz
Ll9jZWxsc1tjZWxsLnJvd107CisgICAgY2VsbC50aHJvd0F3YXkoKTsKK307CisKKy8qKgorICog
QHJldHVybiB7IW51bWJlcn0KKyAqLworTGlzdFZpZXcucHJvdG90eXBlLmZpcnN0VmlzaWJsZVJv
dyA9IGZ1bmN0aW9uKCkgeworICAgIHJldHVybiB0aGlzLnJvd0F0U2Nyb2xsT2Zmc2V0KHRoaXMu
c2Nyb2xsVmlldy5jb250ZW50T2Zmc2V0KCkpOworfTsKKworLyoqCisgKiBAcmV0dXJuIHshbnVt
YmVyfQorICovCitMaXN0Vmlldy5wcm90b3R5cGUubGFzdFZpc2libGVSb3cgPSBmdW5jdGlvbigp
IHsKKyAgICByZXR1cm4gdGhpcy5yb3dBdFNjcm9sbE9mZnNldCh0aGlzLnNjcm9sbFZpZXcuY29u
dGVudE9mZnNldCgpICsgdGhpcy5zY3JvbGxWaWV3LmhlaWdodCgpIC0gMSk7Cit9OworCisvKioK
KyAqIEBwYXJhbSB7IVNjcm9sbFZpZXd9IHNjcm9sbFZpZXcKKyAqLworTGlzdFZpZXcucHJvdG90
eXBlLnNjcm9sbFZpZXdEaWRDaGFuZ2VDb250ZW50T2Zmc2V0ID0gZnVuY3Rpb24oc2Nyb2xsVmll
dykgeworICAgIHRoaXMuc2V0TmVlZHNVcGRhdGVDZWxscyh0cnVlKTsKK307CisKKy8qKgorICog
QHBhcmFtIHshU2Nyb2xsVmlld30gc2Nyb2xsVmlldworICovCitMaXN0Vmlldy5wcm90b3R5cGUu
c2Nyb2xsVmlld0RpZENoYW5nZUhlaWdodCA9IGZ1bmN0aW9uKHNjcm9sbFZpZXcpIHsKKyAgICB0
aGlzLnNldE5lZWRzVXBkYXRlQ2VsbHModHJ1ZSk7Cit9OworCisvKioKKyAqIEBwYXJhbSB7IVNj
cm9sbFZpZXd9IHNjcm9sbFZpZXcKKyAqLworTGlzdFZpZXcucHJvdG90eXBlLnNjcm9sbFZpZXdE
aWRDaGFuZ2VQYXJ0aXRpb24gPSBmdW5jdGlvbihzY3JvbGxWaWV3KSB7CisgICAgdGhpcy5zZXRO
ZWVkc1VwZGF0ZUNlbGxzKHRydWUpOworfTsKKworTGlzdFZpZXcucHJvdG90eXBlLnVwZGF0ZUNl
bGxzID0gZnVuY3Rpb24oKSB7CisgICAgdmFyIGZpcnN0VmlzaWJsZVJvdyA9IHRoaXMuZmlyc3RW
aXNpYmxlUm93KCk7CisgICAgdmFyIGxhc3RWaXNpYmxlUm93ID0gdGhpcy5sYXN0VmlzaWJsZVJv
dygpOworICAgIGNvbnNvbGUuYXNzZXJ0KGZpcnN0VmlzaWJsZVJvdyA8PSBsYXN0VmlzaWJsZVJv
dyk7CisgICAgZm9yICh2YXIgYyBpbiB0aGlzLl9jZWxscykgeworICAgICAgICB2YXIgY2VsbCA9
IHRoaXMuX2NlbGxzW2NdOworICAgICAgICBpZiAoY2VsbC5yb3cgPCBmaXJzdFZpc2libGVSb3cg
fHwgY2VsbC5yb3cgPiBsYXN0VmlzaWJsZVJvdykKKyAgICAgICAgICAgIHRoaXMudGhyb3dBd2F5
Q2VsbChjZWxsKTsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IGZpcnN0VmlzaWJsZVJvdzsgaSA8
PSBsYXN0VmlzaWJsZVJvdzsgKytpKSB7CisgICAgICAgIHZhciBjZWxsID0gdGhpcy5fY2VsbHNb
aV07CisgICAgICAgIGlmIChjZWxsKQorICAgICAgICAgICAgY2VsbC5zZXRQb3NpdGlvbih0aGlz
LnNjcm9sbFZpZXcuY29udGVudFBvc2l0aW9uRm9yQ29udGVudE9mZnNldCh0aGlzLnNjcm9sbE9m
ZnNldEZvclJvdyhjZWxsLnJvdykpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5h
ZGRDZWxsSWZOZWNlc3NhcnkoaSk7CisgICAgfQorICAgIHRoaXMuc2V0TmVlZHNVcGRhdGVDZWxs
cyhmYWxzZSk7Cit9OworCisvKioKKyAqIEByZXR1cm4geyFudW1iZXJ9CisgKi8KK0xpc3RWaWV3
LnByb3RvdHlwZS53aWR0aCA9IGZ1bmN0aW9uKCkgeworICAgIHJldHVybiB0aGlzLl93aWR0aDsK
K307CisKKy8qKgorICogQHBhcmFtIHshbnVtYmVyfSB3aWR0aAorICovCitMaXN0Vmlldy5wcm90
b3R5cGUuc2V0V2lkdGggPSBmdW5jdGlvbih3aWR0aCkgeworICAgIGlmICh0aGlzLl93aWR0aCA9
PT0gd2lkdGgpCisgICAgICAgIHJldHVybjsKKyAgICB0aGlzLl93aWR0aCA9IHdpZHRoOworICAg
IHRoaXMuc2Nyb2xsVmlldy5zZXRXaWR0aCh0aGlzLl93aWR0aCk7CisgICAgZm9yICh2YXIgYyBp
biB0aGlzLl9jZWxscykgeworICAgICAgICB0aGlzLl9jZWxsc1tjXS5zZXRXaWR0aCh0aGlzLl93
aWR0aCk7CisgICAgfQorICAgIHRoaXMuZWxlbWVudC5zdHlsZS53aWR0aCA9IHRoaXMuX3dpZHRo
ICsgInB4IjsKKyAgICB0aGlzLnNldE5lZWRzVXBkYXRlQ2VsbHModHJ1ZSk7Cit9OworCisvKioK
KyAqIEByZXR1cm4geyFudW1iZXJ9CisgKi8KK0xpc3RWaWV3LnByb3RvdHlwZS5oZWlnaHQgPSBm
dW5jdGlvbigpIHsKKyAgICByZXR1cm4gdGhpcy5zY3JvbGxWaWV3LmhlaWdodCgpOworfTsKKwor
LyoqCisgKiBAcGFyYW0geyFudW1iZXJ9IGhlaWdodAorICovCitMaXN0Vmlldy5wcm90b3R5cGUu
c2V0SGVpZ2h0ID0gZnVuY3Rpb24oaGVpZ2h0KSB7CisgICAgdGhpcy5zY3JvbGxWaWV3LnNldEhl
aWdodChoZWlnaHQpOworfTsKKworLyoqCisgKiBAcGFyYW0gez9FdmVudH0gZXZlbnQKKyAqLwor
TGlzdFZpZXcucHJvdG90eXBlLm9uQ2xpY2sgPSBmdW5jdGlvbihldmVudCkgeworICAgIHZhciBj
bGlja2VkQ2VsbEVsZW1lbnQgPSBlbmNsb3NpbmdOb2RlT3JTZWxmV2l0aENsYXNzKGV2ZW50LnRh
cmdldCwgImxpc3QtY2VsbCIpOworICAgIGlmICghY2xpY2tlZENlbGxFbGVtZW50KQorICAgICAg
ICByZXR1cm47CisgICAgdmFyIGNsaWNrZWRDZWxsID0gY2xpY2tlZENlbGxFbGVtZW50LiR2aWV3
OworICAgIGlmIChjbGlja2VkQ2VsbC5yb3cgIT09IHRoaXMuc2VsZWN0ZWRSb3cpCisgICAgICAg
IHRoaXMuc2VsZWN0KGNsaWNrZWRDZWxsLnJvdyk7Cit9OworCisvKioKKyAqIEBwYXJhbSB7IW51
bWJlcn0gcm93CisgKi8KK0xpc3RWaWV3LnByb3RvdHlwZS5zZWxlY3QgPSBmdW5jdGlvbihyb3cp
IHsKKyAgICBpZiAodGhpcy5zZWxlY3RlZFJvdyA9PT0gcm93KQorICAgICAgICByZXR1cm47Cisg
ICAgdGhpcy5kZXNlbGVjdCgpOworICAgIGlmIChyb3cgPT09IExpc3RWaWV3Lk5vU2VsZWN0aW9u
KQorICAgICAgICByZXR1cm47CisgICAgdGhpcy5zZWxlY3RlZFJvdyA9IHJvdzsKKyAgICB2YXIg
c2VsZWN0ZWRDZWxsID0gdGhpcy5fY2VsbHNbdGhpcy5zZWxlY3RlZFJvd107CisgICAgaWYgKHNl
bGVjdGVkQ2VsbCkKKyAgICAgICAgc2VsZWN0ZWRDZWxsLnNldFNlbGVjdGVkKHRydWUpOworfTsK
KworTGlzdFZpZXcucHJvdG90eXBlLmRlc2VsZWN0ID0gZnVuY3Rpb24oKSB7CisgICAgaWYgKHRo
aXMuc2VsZWN0ZWRSb3cgPT09IExpc3RWaWV3Lk5vU2VsZWN0aW9uKQorICAgICAgICByZXR1cm47
CisgICAgdmFyIHNlbGVjdGVkQ2VsbCA9IHRoaXMuX2NlbGxzW3RoaXMuc2VsZWN0ZWRSb3ddOwor
ICAgIGlmIChzZWxlY3RlZENlbGwpCisgICAgICAgIHNlbGVjdGVkQ2VsbC5zZXRTZWxlY3RlZChm
YWxzZSk7CisgICAgdGhpcy5zZWxlY3RlZFJvdyA9IExpc3RWaWV3Lk5vU2VsZWN0aW9uOworfTsK
KworLyoqCisgKiBAcGFyYW0geyFudW1iZXJ9IHJvdworICogQHBhcmFtIHshYm9vbGVhbn0gYW5p
bWF0ZQorICovCitMaXN0Vmlldy5wcm90b3R5cGUuc2Nyb2xsVG9Sb3cgPSBmdW5jdGlvbihyb3cs
IGFuaW1hdGUpIHsKKyAgICB0aGlzLnNjcm9sbFZpZXcuc2Nyb2xsVG8odGhpcy5zY3JvbGxPZmZz
ZXRGb3JSb3cocm93KSwgYW5pbWF0ZSk7Cit9OworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgogICog
QHBhcmFtIHshRWxlbWVudH0gZWxlbWVudAogICogQHBhcmFtIHshT2JqZWN0fSBjb25maWcKICAq
Lwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190004</attachid>
            <date>2013-02-24 23:58:17 -0800</date>
            <delta_ts>2013-02-25 03:32:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110140-20130225165433.patch</filename>
            <type>text/plain</type>
            <size>12867</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzODg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjUwMzYwMWUzNmM4ZmU3
ZDQzZThkZDRjYTVlODA3NzVkMGIxYTMzZC4uOTkzYWFkMzFjZmUzMTQ3YjM3YWI5ZjUxZGEzNGRm
OWVmMjQ5NWI2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEzLTAyLTI0ICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBsaXN0IHZpZXcg
Zm9yIG5ldyBjYWxlbmRhciBwaWNrZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTExMDE0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZGluZyBsaXN0IHZpZXcgY2xhc3MgdG8gYmUgdXNlZCBpbiB0aGUg
bmV3IGNhbGVuZGFyIHBpY2tlciAoQnVnIDEwOTQzOSkuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LiBDb2RlIGlzIG5vdCB5ZXQgdXNlZC4KKworICAgICAgICAqIFJlc291cmNlcy9wYWdlcG9wdXBz
L2NhbGVuZGFyUGlja2VyLmpzOgorICAgICAgICAoTGlzdENlbGwpOiBPbmUgcm93IGluc2lkZSB0
aGUgbGlzdCB2aWV3LiBXZSByZXVzZQorICAgICAgICBsaXN0IGNlbGxzIHRvIGF2b2lkIGFuaW1h
dGlvbiBoaWNjdXBzIGNhdXNlZCBieSBtZW1vcnkgYWxsb2NhdGlvbi4KKyAgICAgICAgKExpc3RD
ZWxsLnByb3RvdHlwZS5fcmVjeWNsZUJpbik6IFJldHVybnMgYXJyYXkgdG8KKyAgICAgICAgc3Rv
cmUgdGhyb3duIGF3YXkgbGlzdCBjZWxscyBzbyB3ZSBjYW4gcmV1c2UgdGhlbS4KKyAgICAgICAg
KExpc3RDZWxsLnByb3RvdHlwZS50aHJvd0F3YXkpOiBIaWRlcyB0aGUgY2VsbCBhbmQgcHV0cyBp
dCBpbiB0aGUgcmVjeWNsZSBiaW4uCisgICAgICAgIChMaXN0Q2VsbC5wcm90b3R5cGUuc2hvdyk6
CisgICAgICAgIChMaXN0Q2VsbC5wcm90b3R5cGUuaGlkZSk6IEhpZGUgdGhlIGNlbGwgd2hlbiB3
ZSBkb24ndCBuZWVkIHRoZSBjZWxsIGFueSBtb3JlLgorICAgICAgICAoTGlzdENlbGwucHJvdG90
eXBlLndpZHRoKToKKyAgICAgICAgKExpc3RDZWxsLnByb3RvdHlwZS5zZXRXaWR0aCk6CisgICAg
ICAgIChMaXN0Q2VsbC5wcm90b3R5cGUucG9zaXRpb24pOgorICAgICAgICAoTGlzdENlbGwucHJv
dG90eXBlLnNldFBvc2l0aW9uKTogU2V0cyB0aGUgQ1NTIHRyYW5zZm9ybSB0byBwb3NpdGlvbiB0
aGUgY2VsbC4KKyAgICAgICAgKExpc3RDZWxsLnByb3RvdHlwZS5zZXRTZWxlY3RlZCk6IEFkZHMg
c2VsZWN0ZWQgQ1NTIGNsYXNzLgorICAgICAgICAoTGlzdFZpZXcpOiBTaG93cyBhIHNjcm9sbGlu
ZyBsaXN0LgorICAgICAgICAoTGlzdFZpZXcucHJvdG90eXBlLm9uQW5pbWF0aW9uRnJhbWVXaWxs
RmluaXNoKTogQ2FsbHMgdXBkYXRlQ2VsbHMgaWYgdGhlIGNlbGxzIG5lZWQgdG8gYmUgdXBkYXRl
ZC4KKyAgICAgICAgKExpc3RWaWV3LnByb3RvdHlwZS5zZXROZWVkc1VwZGF0ZUNlbGxzKTogTWFy
ayB0aGUgY2VsbHMgYXMgbmVlZCB0byBiZSB1cGRhdGVkLgorICAgICAgICAoTGlzdFZpZXcucHJv
dG90eXBlLmNlbGxBdFJvdyk6IFJldHVybnMgdGhlIGNlbGwgYXQgYSBnaXZlbiByb3cuIElmIHRo
ZSBjZWxsIGlzIG5vdCB2aXNpYmxlIGFuZCBkb2Vzbid0IGV4aXN0LCByZXR1cm5zIHVuZGVmaW5l
ZC4KKyAgICAgICAgKExpc3RWaWV3LnByb3RvdHlwZS5yb3dBdFNjcm9sbE9mZnNldCk6IFRoZSBy
b3cgdGhhdCBpcyBkaXNwbGF5ZWQgYXQgdGhlIGdpdmVuIHNjcm9sbCBvZmZzZXQuCisgICAgICAg
IChMaXN0Vmlldy5wcm90b3R5cGUuc2Nyb2xsT2Zmc2V0Rm9yUm93KTogVGhlIHNjcm9sbCBvZmZz
ZXQgZm9yIHRoZSB0b3Agb2YgYSBnaXZlbiByb3cuCisgICAgICAgIChMaXN0Vmlldy5wcm90b3R5
cGUuYWRkQ2VsbElmTmVjZXNzYXJ5KTogQWRkcyB0aGUgY2VsbCBmb3IgYSBnaXZlbiByb3cuCisg
ICAgICAgIChMaXN0Vmlldy5wcm90b3R5cGUucHJlcGFyZU5ld0NlbGwpOiBQcmVwYXJlcyBhIG5l
dyBvciByZWN5Y2xlZCBjZWxsIGZvciBhIGdpdmVuIHJvdy4KKyAgICAgICAgKExpc3RWaWV3LnBy
b3RvdHlwZS50aHJvd0F3YXlDZWxsKTogVGhyb3dzIGEgd2F5IGEgY2VsbC4KKyAgICAgICAgKExp
c3RWaWV3LnByb3RvdHlwZS5maXJzdFZpc2libGVSb3cpOiBUaGUgZmlyc3QgdmlzaWJsZSByb3cg
YXQgdGhlIHRvcCBvZiB0aGUgdmlldy4KKyAgICAgICAgKExpc3RWaWV3LnByb3RvdHlwZS5sYXN0
VmlzaWJsZVJvdyk6IFRoZSBsYXN0IHZpc2libGUgcm93IGF0IHRoZSBib3R0b20gb2YgdGhlIHZp
ZXcuCisgICAgICAgIChMaXN0Vmlldy5wcm90b3R5cGUuc2Nyb2xsVmlld0RpZENoYW5nZUNvbnRl
bnRPZmZzZXQpOgorICAgICAgICAoTGlzdFZpZXcucHJvdG90eXBlLnNjcm9sbFZpZXdEaWRDaGFu
Z2VIZWlnaHQpOgorICAgICAgICAoTGlzdFZpZXcucHJvdG90eXBlLnNjcm9sbFZpZXdEaWRDaGFu
Z2VQYXJ0aXRpb24pOgorICAgICAgICAoTGlzdFZpZXcucHJvdG90eXBlLnVwZGF0ZUNlbGxzKTog
VXBkYXRlcyBhbGwgdGhlIGNlbGxzIHRoYXQgYXJlIHZpc2libGUuCisgICAgICAgIChMaXN0Vmll
dy5wcm90b3R5cGUud2lkdGgpOgorICAgICAgICAoTGlzdFZpZXcucHJvdG90eXBlLnNldFdpZHRo
KToKKyAgICAgICAgKExpc3RWaWV3LnByb3RvdHlwZS5oZWlnaHQpOgorICAgICAgICAoTGlzdFZp
ZXcucHJvdG90eXBlLnNldEhlaWdodCk6CisgICAgICAgIChMaXN0Vmlldy5wcm90b3R5cGUub25D
bGljayk6IENsaWNraW5nIG9uIGEgcm93IHNlbGVjdHMgaXQuCisgICAgICAgIChMaXN0Vmlldy5w
cm90b3R5cGUuc2VsZWN0KToKKyAgICAgICAgKExpc3RWaWV3LnByb3RvdHlwZS5kZXNlbGVjdCk6
CisgICAgICAgIChMaXN0Vmlldy5wcm90b3R5cGUuc2Nyb2xsVG9Sb3cpOiBTY3JvbGxzIHRvIGEg
Z2l2ZW4gcm93LgorCiAyMDEzLTAyLTI0ICBIYWppbWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xl
LmNvbT4KIAogICAgICAgICBSb2xsb3V0IHIxNDM1NTYsIGl0IHJlZ3Jlc3NlZCBodG1sNS1mdWxs
LXJlbmRlciBwZXJmLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vw
b3B1cHMvY2FsZW5kYXJQaWNrZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvcGFnZXBv
cHVwcy9jYWxlbmRhclBpY2tlci5qcwppbmRleCBkOGM2Y2QwODcwNTYzMDU0MmM4NzcwMDJlNTlk
OGVmZTE2ZWFmNGVkLi5kZDExYzRmYWRlNzk1ZGFiNDVkNzlkNzg4OWU5MmEwMzk4NTg1NjA1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9jYWxlbmRhclBp
Y2tlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9jYWxlbmRh
clBpY2tlci5qcwpAQCAtMTM2NSw2ICsxMzY1LDM2MyBAQCBTY3JvbGxWaWV3LnByb3RvdHlwZS5j
b250ZW50UG9zaXRpb25Gb3JDb250ZW50T2Zmc2V0ID0gZnVuY3Rpb24ob2Zmc2V0KSB7CiAKIC8q
KgogICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyBWaWV3CisgKi8KK2Z1bmN0aW9uIExpc3RD
ZWxsKCkgeworICAgIFZpZXcuY2FsbCh0aGlzLCBjcmVhdGVFbGVtZW50KCJkaXYiLCBMaXN0Q2Vs
bC5DbGFzc05hbWVMaXN0Q2VsbCkpOworICAgIAorICAgIC8qKgorICAgICAqIEB0eXBlIHshbnVt
YmVyfQorICAgICAqLworICAgIHRoaXMucm93ID0gTmFOOworICAgIC8qKgorICAgICAqIEB0eXBl
IHshbnVtYmVyfQorICAgICAqLworICAgIHRoaXMuX3dpZHRoID0gMDsKKyAgICAvKioKKyAgICAg
KiBAdHlwZSB7IW51bWJlcn0KKyAgICAgKi8KKyAgICB0aGlzLl9wb3NpdGlvbiA9IDA7Cit9CisK
K0xpc3RDZWxsLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoVmlldy5wcm90b3R5cGUpOworCitM
aXN0Q2VsbC5EZWZhdWx0UmVjeWNsZUJpbkxpbWl0ID0gNjQ7CitMaXN0Q2VsbC5DbGFzc05hbWVM
aXN0Q2VsbCA9ICJsaXN0LWNlbGwiOworTGlzdENlbGwuQ2xhc3NOYW1lSGlkZGVuID0gImhpZGRl
biI7CisKKy8qKgorICogQHJldHVybiB7IUFycmF5fSBBbiBhcnJheSB0byBrZWVwIHRocm93biBh
d2F5IGNlbGxzLgorICovCitMaXN0Q2VsbC5wcm90b3R5cGUuX3JlY3ljbGVCaW4gPSBmdW5jdGlv
bigpIHsKKyAgICBjb25zb2xlLmFzc2VydChmYWxzZSwgIk5PVCBSRUFDSEVEOiBMaXN0Q2VsbC5w
cm90b3R5cGUuX3JlY3ljbGVCaW4gbmVlZHMgdG8gYmUgb3ZlcnJpZGRlbi4iKTsKKyAgICByZXR1
cm4gW107Cit9OworCitMaXN0Q2VsbC5wcm90b3R5cGUudGhyb3dBd2F5ID0gZnVuY3Rpb24oKSB7
CisgICAgdGhpcy5oaWRlKCk7CisgICAgdmFyIGxpbWl0ID0gdHlwZW9mIHRoaXMuY29uc3RydWN0
b3IuUmVjeWNsZUJpbkxpbWl0ID09PSAidW5kZWZpbmVkIiA/IExpc3RDZWxsLkRlZmF1bHRSZWN5
Y2xlQmluTGltaXQgOiB0aGlzLmNvbnN0cnVjdG9yLlJlY3ljbGVCaW5MaW1pdDsKKyAgICB2YXIg
cmVjeWNsZUJpbiA9IHRoaXMuX3JlY3ljbGVCaW4oKTsKKyAgICBpZiAocmVjeWNsZUJpbi5sZW5n
dGggPCBsaW1pdCkKKyAgICAgICAgcmVjeWNsZUJpbi5wdXNoKHRoaXMpOworfTsKKworTGlzdENl
bGwucHJvdG90eXBlLnNob3cgPSBmdW5jdGlvbigpIHsKKyAgICB0aGlzLmVsZW1lbnQuY2xhc3NM
aXN0LnJlbW92ZShMaXN0Q2VsbC5DbGFzc05hbWVIaWRkZW4pOworfTsKKworTGlzdENlbGwucHJv
dG90eXBlLmhpZGUgPSBmdW5jdGlvbigpIHsKKyAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFk
ZChMaXN0Q2VsbC5DbGFzc05hbWVIaWRkZW4pOworfTsKKworLyoqCisgKiBAcmV0dXJuIHshbnVt
YmVyfSBXaWR0aCBpbiBwaXhlbHMuCisgKi8KK0xpc3RDZWxsLnByb3RvdHlwZS53aWR0aCA9IGZ1
bmN0aW9uKCl7CisgICAgcmV0dXJuIHRoaXMuX3dpZHRoOworfTsKKworLyoqCisgKiBAcGFyYW0g
eyFudW1iZXJ9IHdpZHRoIFdpZHRoIGluIHBpeGVscy4KKyAqLworTGlzdENlbGwucHJvdG90eXBl
LnNldFdpZHRoID0gZnVuY3Rpb24od2lkdGgpeworICAgIGlmICh0aGlzLl93aWR0aCA9PT0gd2lk
dGgpCisgICAgICAgIHJldHVybjsKKyAgICB0aGlzLl93aWR0aCA9IHdpZHRoOworICAgIHRoaXMu
ZWxlbWVudC5zdHlsZS53aWR0aCA9IHRoaXMuX3dpZHRoICsgInB4IjsKK307CisKKy8qKgorICog
QHJldHVybiB7IW51bWJlcn0gUG9zaXRpb24gaW4gcGl4ZWxzLgorICovCitMaXN0Q2VsbC5wcm90
b3R5cGUucG9zaXRpb24gPSBmdW5jdGlvbigpeworICAgIHJldHVybiB0aGlzLl9wb3NpdGlvbjsK
K307CisKKy8qKgorICogQHBhcmFtIHshbnVtYmVyfSB5IFBvc2l0aW9uIGluIHBpeGVscy4KKyAq
LworTGlzdENlbGwucHJvdG90eXBlLnNldFBvc2l0aW9uID0gZnVuY3Rpb24oeSkgeworICAgIGlm
ICh0aGlzLl9wb3NpdGlvbiA9PT0geSkKKyAgICAgICAgcmV0dXJuOworICAgIHRoaXMuX3Bvc2l0
aW9uID0geTsKKyAgICB0aGlzLmVsZW1lbnQuc3R5bGUud2Via2l0VHJhbnNmb3JtID0gInRyYW5z
bGF0ZSgwLCAiICsgdGhpcy5fcG9zaXRpb24gKyAicHgpIjsKK307CisKKy8qKgorICogQHBhcmFt
IHshYm9vbGVhbn0gc2VsZWN0ZWQKKyAqLworTGlzdENlbGwucHJvdG90eXBlLnNldFNlbGVjdGVk
ID0gZnVuY3Rpb24oc2VsZWN0ZWQpIHsKKyAgICBpZiAodGhpcy5fc2VsZWN0ZWQgPT09IHNlbGVj
dGVkKQorICAgICAgICByZXR1cm47CisgICAgdGhpcy5fc2VsZWN0ZWQgPSBzZWxlY3RlZDsKKyAg
ICBpZiAodGhpcy5fc2VsZWN0ZWQpCisgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRk
KCJzZWxlY3RlZCIpOworICAgIGVsc2UKKyAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5y
ZW1vdmUoInNlbGVjdGVkIik7Cit9OworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVu
ZHMgVmlldworICovCitmdW5jdGlvbiBMaXN0VmlldygpIHsKKyAgICBWaWV3LmNhbGwodGhpcywg
Y3JlYXRlRWxlbWVudCgiZGl2IiwgTGlzdFZpZXcuQ2xhc3NOYW1lTGlzdFZpZXcpKTsKKyAgICB0
aGlzLmVsZW1lbnQudGFiSW5kZXggPSAwOworCisgICAgLyoqCisgICAgICogQHR5cGUgeyFudW1i
ZXJ9CisgICAgICogQHByaXZhdGUKKyAgICAgKi8KKyAgICB0aGlzLl93aWR0aCA9IDA7CisgICAg
LyoqCisgICAgICogQHR5cGUgeyFPYmplY3R9CisgICAgICogQHByaXZhdGUKKyAgICAgKi8KKyAg
ICB0aGlzLl9jZWxscyA9IHt9OworCisgICAgLyoqCisgICAgICogQHR5cGUgeyFudW1iZXJ9Cisg
ICAgICovCisgICAgdGhpcy5zZWxlY3RlZFJvdyA9IExpc3RWaWV3Lk5vU2VsZWN0aW9uOworCisg
ICAgLyoqCisgICAgICogQHR5cGUgeyFTY3JvbGxWaWV3fQorICAgICAqLworICAgIHRoaXMuc2Ny
b2xsVmlldyA9IG5ldyBTY3JvbGxWaWV3KCk7CisgICAgdGhpcy5zY3JvbGxWaWV3LmRlbGVnYXRl
ID0gdGhpczsKKyAgICB0aGlzLnNjcm9sbFZpZXcubWluaW11bUNvbnRlbnRPZmZzZXQgPSAwOwor
ICAgIHRoaXMuc2Nyb2xsVmlldy5zZXRXaWR0aCgwKTsKKyAgICB0aGlzLnNjcm9sbFZpZXcuc2V0
SGVpZ2h0KDApOworICAgIHRoaXMuc2Nyb2xsVmlldy5hdHRhY2hUbyh0aGlzKTsKKworICAgIHRo
aXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMub25DbGljaywgZmFsc2Up
OworCisgICAgLyoqCisgICAgICogQHR5cGUgeyFib29sZWFufQorICAgICAqIEBwcml2YXRlCisg
ICAgICovCisgICAgdGhpcy5fbmVlZHNVcGRhdGVDZWxscyA9IGZhbHNlOworfQorCitMaXN0Vmll
dy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKFZpZXcucHJvdG90eXBlKTsKKworTGlzdFZpZXcu
Tm9TZWxlY3Rpb24gPSAtMTsKK0xpc3RWaWV3LkNsYXNzTmFtZUxpc3RWaWV3ID0gImxpc3Qtdmll
dyI7CisKK0xpc3RWaWV3LnByb3RvdHlwZS5vbkFuaW1hdGlvbkZyYW1lV2lsbEZpbmlzaCA9IGZ1
bmN0aW9uKCkgeworICAgIGlmICh0aGlzLl9uZWVkc1VwZGF0ZUNlbGxzKQorICAgICAgICB0aGlz
LnVwZGF0ZUNlbGxzKCk7Cit9OworCisvKioKKyAqIEBwYXJhbSB7IWJvb2xlYW59IG5lZWRzVXBk
YXRlQ2VsbHMKKyAqLworTGlzdFZpZXcucHJvdG90eXBlLnNldE5lZWRzVXBkYXRlQ2VsbHMgPSBm
dW5jdGlvbihuZWVkc1VwZGF0ZUNlbGxzKSB7CisgICAgaWYgKHRoaXMuX25lZWRzVXBkYXRlQ2Vs
bHMgPT09IG5lZWRzVXBkYXRlQ2VsbHMpCisgICAgICAgIHJldHVybjsKKyAgICB0aGlzLl9uZWVk
c1VwZGF0ZUNlbGxzID0gbmVlZHNVcGRhdGVDZWxsczsKKyAgICBpZiAodGhpcy5fbmVlZHNVcGRh
dGVDZWxscykKKyAgICAgICAgQW5pbWF0aW9uTWFuYWdlci5zaGFyZWQub24oQW5pbWF0aW9uTWFu
YWdlci5FdmVudFR5cGVBbmltYXRpb25GcmFtZVdpbGxGaW5pc2gsIHRoaXMub25BbmltYXRpb25G
cmFtZVdpbGxGaW5pc2gpOworICAgIGVsc2UKKyAgICAgICAgQW5pbWF0aW9uTWFuYWdlci5zaGFy
ZWQucmVtb3ZlTGlzdGVuZXIoQW5pbWF0aW9uTWFuYWdlci5FdmVudFR5cGVBbmltYXRpb25GcmFt
ZVdpbGxGaW5pc2gsIHRoaXMub25BbmltYXRpb25GcmFtZVdpbGxGaW5pc2gpOworfTsKKworLyoq
CisgKiBAcGFyYW0geyFudW1iZXJ9IHJvdworICogQHJldHVybiB7P0xpc3RDZWxsfQorICovCitM
aXN0Vmlldy5wcm90b3R5cGUuY2VsbEF0Um93ID0gZnVuY3Rpb24ocm93KSB7CisgICAgcmV0dXJu
IHRoaXMuX2NlbGxzW3Jvd107Cit9OworCisvKioKKyAqIEBwYXJhbSB7IW51bWJlcn0gb2Zmc2V0
IFNjcm9sbCBvZmZzZXQgaW4gcGl4ZWxzLgorICogQHJldHVybiB7IW51bWJlcn0KKyAqLworTGlz
dFZpZXcucHJvdG90eXBlLnJvd0F0U2Nyb2xsT2Zmc2V0ID0gZnVuY3Rpb24ob2Zmc2V0KSB7Cisg
ICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJOT1QgUkVBQ0hFRDogTGlzdFZpZXcucHJvdG90eXBl
LnJvd0F0U2Nyb2xsT2Zmc2V0IG5lZWRzIHRvIGJlIG92ZXJyaWRkZW4uIik7CisgICAgcmV0dXJu
IDA7Cit9OworCisvKioKKyAqIEBwYXJhbSB7IW51bWJlcn0gcm93CisgKiBAcmV0dXJuIHshbnVt
YmVyfSBTY3JvbGwgb2Zmc2V0IGluIHBpeGVscy4KKyAqLworTGlzdFZpZXcucHJvdG90eXBlLnNj
cm9sbE9mZnNldEZvclJvdyA9IGZ1bmN0aW9uKHJvdykgeworICAgIGNvbnNvbGUuYXNzZXJ0KGZh
bHNlLCAiTk9UIFJFQUNIRUQ6IExpc3RWaWV3LnByb3RvdHlwZS5zY3JvbGxPZmZzZXRGb3JSb3cg
bmVlZHMgdG8gYmUgb3ZlcnJpZGRlbi4iKTsKKyAgICByZXR1cm4gMDsKK307CisKKy8qKgorICog
QHBhcmFtIHshbnVtYmVyfSByb3cKKyAqIEByZXR1cm4geyFMaXN0Q2VsbH0KKyAqLworTGlzdFZp
ZXcucHJvdG90eXBlLmFkZENlbGxJZk5lY2Vzc2FyeSA9IGZ1bmN0aW9uKHJvdykgeworICAgIHZh
ciBjZWxsID0gdGhpcy5fY2VsbHNbcm93XTsKKyAgICBpZiAoY2VsbCkKKyAgICAgICAgcmV0dXJu
IGNlbGw7CisgICAgY2VsbCA9IHRoaXMucHJlcGFyZU5ld0NlbGwocm93KTsKKyAgICBjZWxsLmF0
dGFjaFRvKHRoaXMuc2Nyb2xsVmlldy5jb250ZW50RWxlbWVudCk7CisgICAgY2VsbC5zZXRXaWR0
aCh0aGlzLl93aWR0aCk7CisgICAgY2VsbC5zZXRQb3NpdGlvbih0aGlzLnNjcm9sbFZpZXcuY29u
dGVudFBvc2l0aW9uRm9yQ29udGVudE9mZnNldCh0aGlzLnNjcm9sbE9mZnNldEZvclJvdyhyb3cp
KSk7CisgICAgdGhpcy5fY2VsbHNbcm93XSA9IGNlbGw7CisgICAgcmV0dXJuIGNlbGw7Cit9Owor
CisvKioKKyAqIEBwYXJhbSB7IW51bWJlcn0gcm93CisgKiBAcmV0dXJuIHshTGlzdENlbGx9Cisg
Ki8KK0xpc3RWaWV3LnByb3RvdHlwZS5wcmVwYXJlTmV3Q2VsbCA9IGZ1bmN0aW9uKHJvdykgewor
ICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAiTk9UIFJFQUNIRUQ6IExpc3RWaWV3LnByb3RvdHlw
ZS5wcmVwYXJlTmV3Q2VsbCBzaG91bGQgYmUgb3ZlcnJpZGRlbi4iKTsKKyAgICByZXR1cm4gbmV3
IExpc3RDZWxsKCk7Cit9OworCisvKioKKyAqIEBwYXJhbSB7IUxpc3RDZWxsfSBjZWxsCisgKi8K
K0xpc3RWaWV3LnByb3RvdHlwZS50aHJvd0F3YXlDZWxsID0gZnVuY3Rpb24oY2VsbCkgeworICAg
IGRlbGV0ZSB0aGlzLl9jZWxsc1tjZWxsLnJvd107CisgICAgY2VsbC50aHJvd0F3YXkoKTsKK307
CisKKy8qKgorICogQHJldHVybiB7IW51bWJlcn0KKyAqLworTGlzdFZpZXcucHJvdG90eXBlLmZp
cnN0VmlzaWJsZVJvdyA9IGZ1bmN0aW9uKCkgeworICAgIHJldHVybiB0aGlzLnJvd0F0U2Nyb2xs
T2Zmc2V0KHRoaXMuc2Nyb2xsVmlldy5jb250ZW50T2Zmc2V0KCkpOworfTsKKworLyoqCisgKiBA
cmV0dXJuIHshbnVtYmVyfQorICovCitMaXN0Vmlldy5wcm90b3R5cGUubGFzdFZpc2libGVSb3cg
PSBmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gdGhpcy5yb3dBdFNjcm9sbE9mZnNldCh0aGlzLnNj
cm9sbFZpZXcuY29udGVudE9mZnNldCgpICsgdGhpcy5zY3JvbGxWaWV3LmhlaWdodCgpIC0gMSk7
Cit9OworCisvKioKKyAqIEBwYXJhbSB7IVNjcm9sbFZpZXd9IHNjcm9sbFZpZXcKKyAqLworTGlz
dFZpZXcucHJvdG90eXBlLnNjcm9sbFZpZXdEaWRDaGFuZ2VDb250ZW50T2Zmc2V0ID0gZnVuY3Rp
b24oc2Nyb2xsVmlldykgeworICAgIHRoaXMuc2V0TmVlZHNVcGRhdGVDZWxscyh0cnVlKTsKK307
CisKKy8qKgorICogQHBhcmFtIHshU2Nyb2xsVmlld30gc2Nyb2xsVmlldworICovCitMaXN0Vmll
dy5wcm90b3R5cGUuc2Nyb2xsVmlld0RpZENoYW5nZUhlaWdodCA9IGZ1bmN0aW9uKHNjcm9sbFZp
ZXcpIHsKKyAgICB0aGlzLnNldE5lZWRzVXBkYXRlQ2VsbHModHJ1ZSk7Cit9OworCisvKioKKyAq
IEBwYXJhbSB7IVNjcm9sbFZpZXd9IHNjcm9sbFZpZXcKKyAqLworTGlzdFZpZXcucHJvdG90eXBl
LnNjcm9sbFZpZXdEaWRDaGFuZ2VQYXJ0aXRpb24gPSBmdW5jdGlvbihzY3JvbGxWaWV3KSB7Cisg
ICAgdGhpcy5zZXROZWVkc1VwZGF0ZUNlbGxzKHRydWUpOworfTsKKworTGlzdFZpZXcucHJvdG90
eXBlLnVwZGF0ZUNlbGxzID0gZnVuY3Rpb24oKSB7CisgICAgdmFyIGZpcnN0VmlzaWJsZVJvdyA9
IHRoaXMuZmlyc3RWaXNpYmxlUm93KCk7CisgICAgdmFyIGxhc3RWaXNpYmxlUm93ID0gdGhpcy5s
YXN0VmlzaWJsZVJvdygpOworICAgIGNvbnNvbGUuYXNzZXJ0KGZpcnN0VmlzaWJsZVJvdyA8PSBs
YXN0VmlzaWJsZVJvdyk7CisgICAgZm9yICh2YXIgYyBpbiB0aGlzLl9jZWxscykgeworICAgICAg
ICB2YXIgY2VsbCA9IHRoaXMuX2NlbGxzW2NdOworICAgICAgICBpZiAoY2VsbC5yb3cgPCBmaXJz
dFZpc2libGVSb3cgfHwgY2VsbC5yb3cgPiBsYXN0VmlzaWJsZVJvdykKKyAgICAgICAgICAgIHRo
aXMudGhyb3dBd2F5Q2VsbChjZWxsKTsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IGZpcnN0Vmlz
aWJsZVJvdzsgaSA8PSBsYXN0VmlzaWJsZVJvdzsgKytpKSB7CisgICAgICAgIHZhciBjZWxsID0g
dGhpcy5fY2VsbHNbaV07CisgICAgICAgIGlmIChjZWxsKQorICAgICAgICAgICAgY2VsbC5zZXRQ
b3NpdGlvbih0aGlzLnNjcm9sbFZpZXcuY29udGVudFBvc2l0aW9uRm9yQ29udGVudE9mZnNldCh0
aGlzLnNjcm9sbE9mZnNldEZvclJvdyhjZWxsLnJvdykpKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgdGhpcy5hZGRDZWxsSWZOZWNlc3NhcnkoaSk7CisgICAgfQorICAgIHRoaXMuc2V0TmVl
ZHNVcGRhdGVDZWxscyhmYWxzZSk7Cit9OworCisvKioKKyAqIEByZXR1cm4geyFudW1iZXJ9IFdp
ZHRoIGluIHBpeGVscy4KKyAqLworTGlzdFZpZXcucHJvdG90eXBlLndpZHRoID0gZnVuY3Rpb24o
KSB7CisgICAgcmV0dXJuIHRoaXMuX3dpZHRoOworfTsKKworLyoqCisgKiBAcGFyYW0geyFudW1i
ZXJ9IHdpZHRoIFdpZHRoIGluIHBpeGVscy4KKyAqLworTGlzdFZpZXcucHJvdG90eXBlLnNldFdp
ZHRoID0gZnVuY3Rpb24od2lkdGgpIHsKKyAgICBpZiAodGhpcy5fd2lkdGggPT09IHdpZHRoKQor
ICAgICAgICByZXR1cm47CisgICAgdGhpcy5fd2lkdGggPSB3aWR0aDsKKyAgICB0aGlzLnNjcm9s
bFZpZXcuc2V0V2lkdGgodGhpcy5fd2lkdGgpOworICAgIGZvciAodmFyIGMgaW4gdGhpcy5fY2Vs
bHMpIHsKKyAgICAgICAgdGhpcy5fY2VsbHNbY10uc2V0V2lkdGgodGhpcy5fd2lkdGgpOworICAg
IH0KKyAgICB0aGlzLmVsZW1lbnQuc3R5bGUud2lkdGggPSB0aGlzLl93aWR0aCArICJweCI7Cisg
ICAgdGhpcy5zZXROZWVkc1VwZGF0ZUNlbGxzKHRydWUpOworfTsKKworLyoqCisgKiBAcmV0dXJu
IHshbnVtYmVyfSBIZWlnaHQgaW4gcGl4ZWxzLgorICovCitMaXN0Vmlldy5wcm90b3R5cGUuaGVp
Z2h0ID0gZnVuY3Rpb24oKSB7CisgICAgcmV0dXJuIHRoaXMuc2Nyb2xsVmlldy5oZWlnaHQoKTsK
K307CisKKy8qKgorICogQHBhcmFtIHshbnVtYmVyfSBoZWlnaHQgSGVpZ2h0IGluIHBpeGVscy4K
KyAqLworTGlzdFZpZXcucHJvdG90eXBlLnNldEhlaWdodCA9IGZ1bmN0aW9uKGhlaWdodCkgewor
ICAgIHRoaXMuc2Nyb2xsVmlldy5zZXRIZWlnaHQoaGVpZ2h0KTsKK307CisKKy8qKgorICogQHBh
cmFtIHs/RXZlbnR9IGV2ZW50CisgKi8KK0xpc3RWaWV3LnByb3RvdHlwZS5vbkNsaWNrID0gZnVu
Y3Rpb24oZXZlbnQpIHsKKyAgICB2YXIgY2xpY2tlZENlbGxFbGVtZW50ID0gZW5jbG9zaW5nTm9k
ZU9yU2VsZldpdGhDbGFzcyhldmVudC50YXJnZXQsIExpc3RDZWxsLkNsYXNzTmFtZUxpc3RDZWxs
KTsKKyAgICBpZiAoIWNsaWNrZWRDZWxsRWxlbWVudCkKKyAgICAgICAgcmV0dXJuOworICAgIHZh
ciBjbGlja2VkQ2VsbCA9IGNsaWNrZWRDZWxsRWxlbWVudC4kdmlldzsKKyAgICBpZiAoY2xpY2tl
ZENlbGwucm93ICE9PSB0aGlzLnNlbGVjdGVkUm93KQorICAgICAgICB0aGlzLnNlbGVjdChjbGlj
a2VkQ2VsbC5yb3cpOworfTsKKworLyoqCisgKiBAcGFyYW0geyFudW1iZXJ9IHJvdworICovCitM
aXN0Vmlldy5wcm90b3R5cGUuc2VsZWN0ID0gZnVuY3Rpb24ocm93KSB7CisgICAgaWYgKHRoaXMu
c2VsZWN0ZWRSb3cgPT09IHJvdykKKyAgICAgICAgcmV0dXJuOworICAgIHRoaXMuZGVzZWxlY3Qo
KTsKKyAgICBpZiAocm93ID09PSBMaXN0Vmlldy5Ob1NlbGVjdGlvbikKKyAgICAgICAgcmV0dXJu
OworICAgIHRoaXMuc2VsZWN0ZWRSb3cgPSByb3c7CisgICAgdmFyIHNlbGVjdGVkQ2VsbCA9IHRo
aXMuX2NlbGxzW3RoaXMuc2VsZWN0ZWRSb3ddOworICAgIGlmIChzZWxlY3RlZENlbGwpCisgICAg
ICAgIHNlbGVjdGVkQ2VsbC5zZXRTZWxlY3RlZCh0cnVlKTsKK307CisKK0xpc3RWaWV3LnByb3Rv
dHlwZS5kZXNlbGVjdCA9IGZ1bmN0aW9uKCkgeworICAgIGlmICh0aGlzLnNlbGVjdGVkUm93ID09
PSBMaXN0Vmlldy5Ob1NlbGVjdGlvbikKKyAgICAgICAgcmV0dXJuOworICAgIHZhciBzZWxlY3Rl
ZENlbGwgPSB0aGlzLl9jZWxsc1t0aGlzLnNlbGVjdGVkUm93XTsKKyAgICBpZiAoc2VsZWN0ZWRD
ZWxsKQorICAgICAgICBzZWxlY3RlZENlbGwuc2V0U2VsZWN0ZWQoZmFsc2UpOworICAgIHRoaXMu
c2VsZWN0ZWRSb3cgPSBMaXN0Vmlldy5Ob1NlbGVjdGlvbjsKK307CisKKy8qKgorICogQHBhcmFt
IHshbnVtYmVyfSByb3cKKyAqIEBwYXJhbSB7IWJvb2xlYW59IGFuaW1hdGUKKyAqLworTGlzdFZp
ZXcucHJvdG90eXBlLnNjcm9sbFRvUm93ID0gZnVuY3Rpb24ocm93LCBhbmltYXRlKSB7CisgICAg
dGhpcy5zY3JvbGxWaWV3LnNjcm9sbFRvKHRoaXMuc2Nyb2xsT2Zmc2V0Rm9yUm93KHJvdyksIGFu
aW1hdGUpOworfTsKKworLyoqCisgKiBAY29uc3RydWN0b3IKICAqIEBwYXJhbSB7IUVsZW1lbnR9
IGVsZW1lbnQKICAqIEBwYXJhbSB7IU9iamVjdH0gY29uZmlnCiAgKi8K
</data>

          </attachment>
      

    </bug>

</bugzilla>