<?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>126424</bug_id>
          
          <creation_ts>2014-01-03 00:52:32 -0800</creation_ts>
          <short_desc>[EFL][WK2] Use timestamp when event occurs for touch events.</short_desc>
          <delta_ts>2014-01-15 20:25:08 -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>WebKit EFL</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="Eunmi Lee">enmi.lee</reporter>
          <assigned_to name="Eunmi Lee">enmi.lee</assigned_to>
          <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>964052</commentid>
    <comment_count>0</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2014-01-03 00:52:32 -0800</bug_when>
    <thetext>We use current time for touch event&apos;s timestamp instead of timestamp when event occurs.
Timestamp of touch event is used to implement flick gesture, so it should be real value for accurate gesture.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964056</commentid>
    <comment_count>1</comment_count>
      <attachid>220291</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2014-01-03 00:59:36 -0800</bug_when>
    <thetext>Created attachment 220291
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964057</commentid>
    <comment_count>2</comment_count>
      <attachid>220291</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-01-03 01:10:00 -0800</bug_when>
    <thetext>Comment on attachment 220291
Patch

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

&gt; Source/WebKit2/UIProcess/API/efl/EwkView.cpp:1337
&gt; +void EwkView::handleTouchMouseDown(void* /* data */, Evas* /* canvas */, Evas_Object* ewkView, void* eventInfo)

How about handleTouchOrMouseDown ?

&gt; Source/WebKit2/UIProcess/API/efl/EwkView.cpp:1339
&gt; +    toEwkView(ewkView)-&gt;feedTouchEvents(EWK_TOUCH_START, static_cast&lt;Evas_Event_Mouse_Down*&gt;(eventInfo)-&gt;timestamp / 1000.0);

Should we divide timestamp here?

&gt; Source/WebKit2/UIProcess/API/efl/GestureRecognizer.cpp:355
&gt; +void GestureRecognizer::noGesture(WKEventType type, WKArrayRef touchPoints, double timestamp)

Can we give more correct information? seconds or milliseconds?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964059</commentid>
    <comment_count>3</comment_count>
      <attachid>220291</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2014-01-03 01:26:21 -0800</bug_when>
    <thetext>Comment on attachment 220291
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/efl/EwkView.cpp:1337
&gt;&gt; +void EwkView::handleTouchMouseDown(void* /* data */, Evas* /* canvas */, Evas_Object* ewkView, void* eventInfo)
&gt; 
&gt; How about handleTouchOrMouseDown ?

Handlers are for touch, so it is better to rename to handleMouseDownForTouch.

I will change the name.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/EwkView.cpp:1339
&gt;&gt; +    toEwkView(ewkView)-&gt;feedTouchEvents(EWK_TOUCH_START, static_cast&lt;Evas_Event_Mouse_Down*&gt;(eventInfo)-&gt;timestamp / 1000.0);
&gt; 
&gt; Should we divide timestamp here?

Timestamp in the webkit is usually double type and it&apos;s unit is second.
So, I think it is better to divide evas event&apos;s timestamp (millisecond) with 1000.0 as early as possible.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/GestureRecognizer.cpp:355
&gt;&gt; +void GestureRecognizer::noGesture(WKEventType type, WKArrayRef touchPoints, double timestamp)
&gt; 
&gt; Can we give more correct information? seconds or milliseconds?

Unit of most timestamp in the webkit is second, so I think we can use timestamp here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964060</commentid>
    <comment_count>4</comment_count>
      <attachid>220292</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2014-01-03 01:35:15 -0800</bug_when>
    <thetext>Created attachment 220292
Patch

Rename touch handlers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964069</commentid>
    <comment_count>5</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-01-03 03:32:33 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 220291 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=220291&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit2/UIProcess/API/efl/EwkView.cpp:1337
&gt; &gt;&gt; +void EwkView::handleTouchMouseDown(void* /* data */, Evas* /* canvas */, Evas_Object* ewkView, void* eventInfo)
&gt; &gt; 
&gt; &gt; How about handleTouchOrMouseDown ?
&gt; 
&gt; Handlers are for touch, so it is better to rename to handleMouseDownForTouch.
&gt; 
&gt; I will change the name.
&gt; 
OK.

&gt; &gt;&gt; Source/WebKit2/UIProcess/API/efl/EwkView.cpp:1339
&gt; &gt;&gt; +    toEwkView(ewkView)-&gt;feedTouchEvents(EWK_TOUCH_START, static_cast&lt;Evas_Event_Mouse_Down*&gt;(eventInfo)-&gt;timestamp / 1000.0);
&gt; &gt; 
&gt; &gt; Should we divide timestamp here?
&gt; 
&gt; Timestamp in the webkit is usually double type and it&apos;s unit is second.
&gt; So, I think it is better to divide evas event&apos;s timestamp (millisecond) with 1000.0 as early as possible.
&gt; 
OK.

I preferred lazy calculation because we can have only one division operator but it&apos;s minor issue.

I don&apos;t have objection.

&gt; &gt;&gt; Source/WebKit2/UIProcess/API/efl/GestureRecognizer.cpp:355
&gt; &gt;&gt; +void GestureRecognizer::noGesture(WKEventType type, WKArrayRef touchPoints, double timestamp)
&gt; &gt; 
&gt; &gt; Can we give more correct information? seconds or milliseconds?
&gt; 
&gt; Unit of most timestamp in the webkit is second, so I think we can use timestamp here.

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967627</commentid>
    <comment_count>6</comment_count>
      <attachid>220292</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-01-13 19:59:50 -0800</bug_when>
    <thetext>Comment on attachment 220292
Patch

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

&gt; Source/WebKit2/UIProcess/API/efl/EwkView.cpp:1352
&gt; +void EwkView::handleMultiDownForTouch(void* /* data */, Evas* /* canvas */, Evas_Object* ewkView, void* eventInfo)

It looks code is a little messed up

/* data */ -&gt; /*data*/ ,or how about using UNUSED_PARAM() ?

&gt; Source/WebKit2/UIProcess/API/efl/GestureRecognizer.cpp:412
&gt; +void GestureRecognizer::doubleTapGesture(WKEventType type, WKArrayRef touchPoints, double timestamp)

Don&apos;t you need to use UNUSED_PARAM for timestamp ?

&gt; Source/WebKit2/UIProcess/API/efl/GestureRecognizer.cpp:469
&gt; +void GestureRecognizer::pinchGesture(WKEventType type, WKArrayRef touchPoints, double timestamp)

ditto.

&gt; Source/WebKit2/UIProcess/API/efl/GestureRecognizer.h:59
&gt; +    void noGesture(WKEventType, WKArrayRef, double timestamp);

Can&apos;t we use set|get functions instead of passing a timestamp variable ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967678</commentid>
    <comment_count>7</comment_count>
      <attachid>220292</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2014-01-13 23:05:48 -0800</bug_when>
    <thetext>Comment on attachment 220292
Patch

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

Thanks for review :)

&gt;&gt; Source/WebKit2/UIProcess/API/efl/EwkView.cpp:1352
&gt;&gt; +void EwkView::handleMultiDownForTouch(void* /* data */, Evas* /* canvas */, Evas_Object* ewkView, void* eventInfo)
&gt; 
&gt; It looks code is a little messed up
&gt; 
&gt; /* data */ -&gt; /*data*/ ,or how about using UNUSED_PARAM() ?

I think it is better to remove the commented parameter name because it is not used.
I will modify that.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/GestureRecognizer.h:59
&gt;&gt; +    void noGesture(WKEventType, WKArrayRef, double timestamp);
&gt; 
&gt; Can&apos;t we use set|get functions instead of passing a timestamp variable ?

If we use WKTouchEventRef as a parameter, we don&apos;t have to pass a timestamp.
I will modify that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968555</commentid>
    <comment_count>8</comment_count>
      <attachid>221322</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2014-01-15 18:21:27 -0800</bug_when>
    <thetext>Created attachment 221322
Patch

Fix for Gyuyoung&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968570</commentid>
    <comment_count>9</comment_count>
      <attachid>221322</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-01-15 20:02:14 -0800</bug_when>
    <thetext>Comment on attachment 221322
Patch

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

Looks better than before. r=me together with Ryuan informal review.

&gt; Source/WebKit2/UIProcess/API/efl/EwkView.cpp:781
&gt; +        evas_object_event_callback_add(m_evasObject, EVAS_CALLBACK_MOUSE_DOWN, handleMouseDownForTouch, sd);

This function name change isn&apos;t mentioned in ChangeLog. It would be nicer if you mention this change as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968576</commentid>
    <comment_count>10</comment_count>
      <attachid>221325</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2014-01-15 20:21:43 -0800</bug_when>
    <thetext>Created attachment 221325
Patch

Update changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968578</commentid>
    <comment_count>11</comment_count>
      <attachid>221325</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2014-01-15 20:24:58 -0800</bug_when>
    <thetext>Comment on attachment 221325
Patch

Clearing flags on attachment: 221325

Committed r162111: &lt;http://trac.webkit.org/changeset/162111&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968579</commentid>
    <comment_count>12</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2014-01-15 20:25:08 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220291</attachid>
            <date>2014-01-03 00:59:36 -0800</date>
            <delta_ts>2014-01-03 01:35:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126424-20140103175935.patch</filename>
            <type>text/plain</type>
            <size>14619</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxMjQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNThjMjVhNzI0YjJkYTM5
MDA0YTA5OWZhOGJkZDM2ZjNkY2E4NTdlNi4uN2QyNDk4MWI0NjEyYzU5MDQ3NGUwYWU5YzkyNGRl
NmMxOWYyNDNlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE0LTAxLTAzICBFdW5t
aSBMZWUgIDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFVz
ZSB0aW1lc3RhbXAgd2hlbiBldmVudCBvY2N1cnMgZm9yIHRvdWNoIGV2ZW50cy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjQyNAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnQgdGltZSBpcyB1
c2VkIGZvciB0b3VjaCBldmVudCdzIHRpbWVzdGFtcCBpbnN0ZWFkIG9mIHRpbWVzdGFtcAorICAg
ICAgICB3aGVuIGV2ZW50IG9jY3Vycy4gVGltZXN0YW1wIG9mIHRvdWNoIGV2ZW50IGlzIHVzZWQg
dG8gaW1wbGVtZW50IGZsaWNrCisgICAgICAgIGdlc3R1cmUsIHNvIGl0IHNob3VsZCBiZSByZWFs
IHZhbHVlIGZvciBhY2N1cmF0ZSBnZXN0dXJlIHByb2Nlc3NpbmcuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcDoKKyAgICAgICAgKEV3a1ZpZXc6OnNldFRvdWNoRXZl
bnRzRW5hYmxlZCk6CisgICAgICAgIChFd2tWaWV3OjpmZWVkVG91Y2hFdmVudHMpOgorICAgICAg
ICAoRXdrVmlldzo6aGFuZGxlVG91Y2hNb3VzZURvd24pOgorICAgICAgICAoRXdrVmlldzo6aGFu
ZGxlVG91Y2hNb3VzZVVwKToKKyAgICAgICAgKEV3a1ZpZXc6OmhhbmRsZVRvdWNoTW91c2VNb3Zl
KToKKyAgICAgICAgKEV3a1ZpZXc6OmhhbmRsZVRvdWNoTXVsdGlEb3duKToKKyAgICAgICAgKEV3
a1ZpZXc6OmhhbmRsZVRvdWNoTXVsdGlVcCk6CisgICAgICAgIChFd2tWaWV3OjpoYW5kbGVUb3Vj
aE11bHRpTW92ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0dlc3R1cmVSZWNvZ25pemVyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6R2VzdHVyZUhhbmRsZXI6OmhhbmRsZVBhbik6CisgICAgICAgIChXZWJLaXQ6Okdl
c3R1cmVSZWNvZ25pemVyOjpwcm9jZXNzVG91Y2hFdmVudCk6CisgICAgICAgIChXZWJLaXQ6Okdl
c3R1cmVSZWNvZ25pemVyOjpub0dlc3R1cmUpOgorICAgICAgICAoV2ViS2l0OjpHZXN0dXJlUmVj
b2duaXplcjo6c2luZ2xlVGFwR2VzdHVyZSk6CisgICAgICAgIChXZWJLaXQ6Okdlc3R1cmVSZWNv
Z25pemVyOjpkb3VibGVUYXBHZXN0dXJlKToKKyAgICAgICAgKFdlYktpdDo6R2VzdHVyZVJlY29n
bml6ZXI6OnBhbkdlc3R1cmUpOgorICAgICAgICAoV2ViS2l0OjpHZXN0dXJlUmVjb2duaXplcjo6
cGluY2hHZXN0dXJlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9HZXN0dXJlUmVjb2du
aXplci5oOgorCiAyMDE0LTAxLTAyICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgV2luZG93SXNWaXNpYmxlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCmluZGV4IDU3YWUzYTcyMTlmM2Y1NzZm
NzE0NjgxZDhkN2UyYTUyNGE0ZDU2ODcuLjBmYTk4ZWI4ZmYyZDRjZWFjOWM1NjA4ZWYxZDUwZDRj
YWU5YmE2NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3
a1ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcu
Y3BwCkBAIC03NzcsMTkgKzc3NywxOSBAQCB2b2lkIEV3a1ZpZXc6OnNldFRvdWNoRXZlbnRzRW5h
YmxlZChib29sIGVuYWJsZWQpCiAgICAgICAgIC8vIHN1cHBvcnRzIHRoZSB0b3VjaCBldmVudHMu
CiAgICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTc3ODUgZm9yIGRldGFpbHMuCiAgICAgICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkID0gc21h
cnREYXRhKCk7Ci0gICAgICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChtX2V2YXNP
YmplY3QsIEVWQVNfQ0FMTEJBQ0tfTU9VU0VfRE9XTiwgaGFuZGxlVG91Y2hEb3duLCBzZCk7Ci0g
ICAgICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChtX2V2YXNPYmplY3QsIEVWQVNf
Q0FMTEJBQ0tfTU9VU0VfVVAsIGhhbmRsZVRvdWNoVXAsIHNkKTsKLSAgICAgICAgZXZhc19vYmpl
Y3RfZXZlbnRfY2FsbGJhY2tfYWRkKG1fZXZhc09iamVjdCwgRVZBU19DQUxMQkFDS19NT1VTRV9N
T1ZFLCBoYW5kbGVUb3VjaE1vdmUsIHNkKTsKLSAgICAgICAgZXZhc19vYmplY3RfZXZlbnRfY2Fs
bGJhY2tfYWRkKG1fZXZhc09iamVjdCwgRVZBU19DQUxMQkFDS19NVUxUSV9ET1dOLCBoYW5kbGVU
b3VjaERvd24sIHNkKTsKLSAgICAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfYWRkKG1f
ZXZhc09iamVjdCwgRVZBU19DQUxMQkFDS19NVUxUSV9VUCwgaGFuZGxlVG91Y2hVcCwgc2QpOwot
ICAgICAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19hZGQobV9ldmFzT2JqZWN0LCBFVkFT
X0NBTExCQUNLX01VTFRJX01PVkUsIGhhbmRsZVRvdWNoTW92ZSwgc2QpOworICAgICAgICBldmFz
X29iamVjdF9ldmVudF9jYWxsYmFja19hZGQobV9ldmFzT2JqZWN0LCBFVkFTX0NBTExCQUNLX01P
VVNFX0RPV04sIGhhbmRsZVRvdWNoTW91c2VEb3duLCBzZCk7CisgICAgICAgIGV2YXNfb2JqZWN0
X2V2ZW50X2NhbGxiYWNrX2FkZChtX2V2YXNPYmplY3QsIEVWQVNfQ0FMTEJBQ0tfTU9VU0VfVVAs
IGhhbmRsZVRvdWNoTW91c2VVcCwgc2QpOworICAgICAgICBldmFzX29iamVjdF9ldmVudF9jYWxs
YmFja19hZGQobV9ldmFzT2JqZWN0LCBFVkFTX0NBTExCQUNLX01PVVNFX01PVkUsIGhhbmRsZVRv
dWNoTW91c2VNb3ZlLCBzZCk7CisgICAgICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2Fk
ZChtX2V2YXNPYmplY3QsIEVWQVNfQ0FMTEJBQ0tfTVVMVElfRE9XTiwgaGFuZGxlVG91Y2hNdWx0
aURvd24sIHNkKTsKKyAgICAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfYWRkKG1fZXZh
c09iamVjdCwgRVZBU19DQUxMQkFDS19NVUxUSV9VUCwgaGFuZGxlVG91Y2hNdWx0aVVwLCBzZCk7
CisgICAgICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChtX2V2YXNPYmplY3QsIEVW
QVNfQ0FMTEJBQ0tfTVVMVElfTU9WRSwgaGFuZGxlVG91Y2hNdWx0aU1vdmUsIHNkKTsKICAgICB9
IGVsc2UgewotICAgICAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19kZWwobV9ldmFzT2Jq
ZWN0LCBFVkFTX0NBTExCQUNLX01PVVNFX0RPV04sIGhhbmRsZVRvdWNoRG93bik7Ci0gICAgICAg
IGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2RlbChtX2V2YXNPYmplY3QsIEVWQVNfQ0FMTEJB
Q0tfTU9VU0VfVVAsIGhhbmRsZVRvdWNoVXApOwotICAgICAgICBldmFzX29iamVjdF9ldmVudF9j
YWxsYmFja19kZWwobV9ldmFzT2JqZWN0LCBFVkFTX0NBTExCQUNLX01PVVNFX01PVkUsIGhhbmRs
ZVRvdWNoTW92ZSk7Ci0gICAgICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2RlbChtX2V2
YXNPYmplY3QsIEVWQVNfQ0FMTEJBQ0tfTVVMVElfRE9XTiwgaGFuZGxlVG91Y2hEb3duKTsKLSAg
ICAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfZGVsKG1fZXZhc09iamVjdCwgRVZBU19D
QUxMQkFDS19NVUxUSV9VUCwgaGFuZGxlVG91Y2hVcCk7Ci0gICAgICAgIGV2YXNfb2JqZWN0X2V2
ZW50X2NhbGxiYWNrX2RlbChtX2V2YXNPYmplY3QsIEVWQVNfQ0FMTEJBQ0tfTVVMVElfTU9WRSwg
aGFuZGxlVG91Y2hNb3ZlKTsKKyAgICAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfZGVs
KG1fZXZhc09iamVjdCwgRVZBU19DQUxMQkFDS19NT1VTRV9ET1dOLCBoYW5kbGVUb3VjaE1vdXNl
RG93bik7CisgICAgICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2RlbChtX2V2YXNPYmpl
Y3QsIEVWQVNfQ0FMTEJBQ0tfTU9VU0VfVVAsIGhhbmRsZVRvdWNoTW91c2VVcCk7CisgICAgICAg
IGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2RlbChtX2V2YXNPYmplY3QsIEVWQVNfQ0FMTEJB
Q0tfTU9VU0VfTU9WRSwgaGFuZGxlVG91Y2hNb3VzZU1vdmUpOworICAgICAgICBldmFzX29iamVj
dF9ldmVudF9jYWxsYmFja19kZWwobV9ldmFzT2JqZWN0LCBFVkFTX0NBTExCQUNLX01VTFRJX0RP
V04sIGhhbmRsZVRvdWNoTXVsdGlEb3duKTsKKyAgICAgICAgZXZhc19vYmplY3RfZXZlbnRfY2Fs
bGJhY2tfZGVsKG1fZXZhc09iamVjdCwgRVZBU19DQUxMQkFDS19NVUxUSV9VUCwgaGFuZGxlVG91
Y2hNdWx0aVVwKTsKKyAgICAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfZGVsKG1fZXZh
c09iamVjdCwgRVZBU19DQUxMQkFDS19NVUxUSV9NT1ZFLCBoYW5kbGVUb3VjaE11bHRpTW92ZSk7
CiAgICAgfQogfQogCkBAIC0xMzEyLDcgKzEzMTIsNyBAQCBFaW5hX0Jvb2wgRXdrVmlldzo6aGFu
ZGxlRXdrVmlld0tleVVwKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgY29uc3QgRXZh
cwogfQogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLXZvaWQgRXdrVmlldzo6ZmVlZFRvdWNo
RXZlbnRzKEV3a19Ub3VjaF9FdmVudF9UeXBlIHR5cGUpCit2b2lkIEV3a1ZpZXc6OmZlZWRUb3Vj
aEV2ZW50cyhFd2tfVG91Y2hfRXZlbnRfVHlwZSB0eXBlLCBkb3VibGUgdGltZXN0YW1wKQogewog
ICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkID0gc21hcnREYXRhKCk7CiAKQEAgLTEzMzEsMjIg
KzEzMzEsMzcgQEAgdm9pZCBFd2tWaWV3OjpmZWVkVG91Y2hFdmVudHMoRXdrX1RvdWNoX0V2ZW50
X1R5cGUgdHlwZSkKICAgICB9CiAgICAgV0tSZXRhaW5QdHI8V0tBcnJheVJlZj4gd2tUb3VjaFBv
aW50cyhBZG9wdFdLLCBXS0FycmF5Q3JlYXRlQWRvcHRpbmdWYWx1ZXModG91Y2hQb2ludHMuZ2V0
KCksIGxlbmd0aCkpOwogCi0gICAgV0tWaWV3U2VuZFRvdWNoRXZlbnQod2tWaWV3KCksIGFkb3B0
V0soV0tUb3VjaEV2ZW50Q3JlYXRlKHN0YXRpY19jYXN0PFdLRXZlbnRUeXBlPih0eXBlKSwgd2tU
b3VjaFBvaW50cy5nZXQoKSwgdG9XS0V2ZW50TW9kaWZpZXJzKGV2YXNfa2V5X21vZGlmaWVyX2dl
dChzZC0+YmFzZS5ldmFzKSksIGVjb3JlX3RpbWVfZ2V0KCkpKS5nZXQoKSk7CisgICAgV0tWaWV3
U2VuZFRvdWNoRXZlbnQod2tWaWV3KCksIGFkb3B0V0soV0tUb3VjaEV2ZW50Q3JlYXRlKHN0YXRp
Y19jYXN0PFdLRXZlbnRUeXBlPih0eXBlKSwgd2tUb3VjaFBvaW50cy5nZXQoKSwgdG9XS0V2ZW50
TW9kaWZpZXJzKGV2YXNfa2V5X21vZGlmaWVyX2dldChzZC0+YmFzZS5ldmFzKSksIHRpbWVzdGFt
cCkpLmdldCgpKTsKIH0KIAotdm9pZCBFd2tWaWV3OjpoYW5kbGVUb3VjaERvd24odm9pZCogLyog
ZGF0YSAqLywgRXZhcyogLyogY2FudmFzICovLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCog
LyogZXZlbnRJbmZvICovKQordm9pZCBFd2tWaWV3OjpoYW5kbGVUb3VjaE1vdXNlRG93bih2b2lk
KiAvKiBkYXRhICovLCBFdmFzKiAvKiBjYW52YXMgKi8sIEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2
b2lkKiBldmVudEluZm8pCiB7Ci0gICAgdG9Fd2tWaWV3KGV3a1ZpZXcpLT5mZWVkVG91Y2hFdmVu
dHMoRVdLX1RPVUNIX1NUQVJUKTsKKyAgICB0b0V3a1ZpZXcoZXdrVmlldyktPmZlZWRUb3VjaEV2
ZW50cyhFV0tfVE9VQ0hfU1RBUlQsIHN0YXRpY19jYXN0PEV2YXNfRXZlbnRfTW91c2VfRG93bio+
KGV2ZW50SW5mbyktPnRpbWVzdGFtcCAvIDEwMDAuMCk7CiB9CiAKLXZvaWQgRXdrVmlldzo6aGFu
ZGxlVG91Y2hVcCh2b2lkKiAvKiBkYXRhICovLCBFdmFzKiAvKiBjYW52YXMgKi8sIEV2YXNfT2Jq
ZWN0KiBld2tWaWV3LCB2b2lkKiAvKiBldmVudEluZm8gKi8pCit2b2lkIEV3a1ZpZXc6OmhhbmRs
ZVRvdWNoTW91c2VVcCh2b2lkKiAvKiBkYXRhICovLCBFdmFzKiAvKiBjYW52YXMgKi8sIEV2YXNf
T2JqZWN0KiBld2tWaWV3LCB2b2lkKiBldmVudEluZm8pCiB7Ci0gICAgdG9Fd2tWaWV3KGV3a1Zp
ZXcpLT5mZWVkVG91Y2hFdmVudHMoRVdLX1RPVUNIX0VORCk7CisgICAgdG9Fd2tWaWV3KGV3a1Zp
ZXcpLT5mZWVkVG91Y2hFdmVudHMoRVdLX1RPVUNIX0VORCwgc3RhdGljX2Nhc3Q8RXZhc19FdmVu
dF9Nb3VzZV9VcCo+KGV2ZW50SW5mbyktPnRpbWVzdGFtcCAvIDEwMDAuMCk7CiB9CiAKLXZvaWQg
RXdrVmlldzo6aGFuZGxlVG91Y2hNb3ZlKHZvaWQqIC8qIGRhdGEgKi8sIEV2YXMqIC8qIGNhbnZh
cyAqLywgRXZhc19PYmplY3QqIGV3a1ZpZXcsIHZvaWQqIC8qIGV2ZW50SW5mbyAqLykKK3ZvaWQg
RXdrVmlldzo6aGFuZGxlVG91Y2hNb3VzZU1vdmUodm9pZCogLyogZGF0YSAqLywgRXZhcyogLyog
Y2FudmFzICovLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJbmZvKQogewotICAg
IHRvRXdrVmlldyhld2tWaWV3KS0+ZmVlZFRvdWNoRXZlbnRzKEVXS19UT1VDSF9NT1ZFKTsKKyAg
ICB0b0V3a1ZpZXcoZXdrVmlldyktPmZlZWRUb3VjaEV2ZW50cyhFV0tfVE9VQ0hfTU9WRSwgc3Rh
dGljX2Nhc3Q8RXZhc19FdmVudF9Nb3VzZV9Nb3ZlKj4oZXZlbnRJbmZvKS0+dGltZXN0YW1wIC8g
MTAwMC4wKTsKK30KKwordm9pZCBFd2tWaWV3OjpoYW5kbGVUb3VjaE11bHRpRG93bih2b2lkKiAv
KiBkYXRhICovLCBFdmFzKiAvKiBjYW52YXMgKi8sIEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lk
KiBldmVudEluZm8pCit7CisgICAgdG9Fd2tWaWV3KGV3a1ZpZXcpLT5mZWVkVG91Y2hFdmVudHMo
RVdLX1RPVUNIX1NUQVJULCBzdGF0aWNfY2FzdDxFdmFzX0V2ZW50X011bHRpX0Rvd24qPihldmVu
dEluZm8pLT50aW1lc3RhbXAgLyAxMDAwLjApOworfQorCit2b2lkIEV3a1ZpZXc6OmhhbmRsZVRv
dWNoTXVsdGlVcCh2b2lkKiAvKiBkYXRhICovLCBFdmFzKiAvKiBjYW52YXMgKi8sIEV2YXNfT2Jq
ZWN0KiBld2tWaWV3LCB2b2lkKiBldmVudEluZm8pCit7CisgICAgdG9Fd2tWaWV3KGV3a1ZpZXcp
LT5mZWVkVG91Y2hFdmVudHMoRVdLX1RPVUNIX0VORCwgc3RhdGljX2Nhc3Q8RXZhc19FdmVudF9N
dWx0aV9VcCo+KGV2ZW50SW5mbyktPnRpbWVzdGFtcCAvIDEwMDAuMCk7Cit9CisKK3ZvaWQgRXdr
Vmlldzo6aGFuZGxlVG91Y2hNdWx0aU1vdmUodm9pZCogLyogZGF0YSAqLywgRXZhcyogLyogY2Fu
dmFzICovLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJbmZvKQoreworICAgIHRv
RXdrVmlldyhld2tWaWV3KS0+ZmVlZFRvdWNoRXZlbnRzKEVXS19UT1VDSF9NT1ZFLCBzdGF0aWNf
Y2FzdDxFdmFzX0V2ZW50X011bHRpX01vdmUqPihldmVudEluZm8pLT50aW1lc3RhbXAgLyAxMDAw
LjApOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL0V3a1ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1Zp
ZXcuaAppbmRleCA4NTM5NzliNzU5M2EyYTMyMTc4NWMwMGNjZGY3MWNkNzJiNmQ4ZDYwLi4zZmYz
NzMzNzg0MTQ2YTgxZjkxNDcwYTVjNzMyYjRlOGZkNjYxMzIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCkBAIC0yMzksMTAgKzIzOSwxMyBAQCBwcml2YXRl
OgogICAgIHN0YXRpYyBFaW5hX0Jvb2wgaGFuZGxlRXdrVmlld0tleVVwKEV3a19WaWV3X1NtYXJ0
X0RhdGEqIHNtYXJ0RGF0YSwgY29uc3QgRXZhc19FdmVudF9LZXlfVXAqIHVwRXZlbnQpOwogCiAj
aWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLSAgICB2b2lkIGZlZWRUb3VjaEV2ZW50cyhFd2tfVG91
Y2hfRXZlbnRfVHlwZSB0eXBlKTsKLSAgICBzdGF0aWMgdm9pZCBoYW5kbGVUb3VjaERvd24odm9p
ZCogZGF0YSwgRXZhcyosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZvKTsKLSAgICBzdGF0
aWMgdm9pZCBoYW5kbGVUb3VjaFVwKHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09iamVjdCosIHZv
aWQqIGV2ZW50SW5mbyk7Ci0gICAgc3RhdGljIHZvaWQgaGFuZGxlVG91Y2hNb3ZlKHZvaWQqIGRh
dGEsIEV2YXMqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbyk7CisgICAgdm9pZCBmZWVk
VG91Y2hFdmVudHMoRXdrX1RvdWNoX0V2ZW50X1R5cGUgdHlwZSwgZG91YmxlIHRpbWVzdGFtcCk7
CisgICAgc3RhdGljIHZvaWQgaGFuZGxlVG91Y2hNb3VzZURvd24odm9pZCogZGF0YSwgRXZhcyos
IEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZvKTsKKyAgICBzdGF0aWMgdm9pZCBoYW5kbGVU
b3VjaE1vdXNlVXAodm9pZCogZGF0YSwgRXZhcyosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJ
bmZvKTsKKyAgICBzdGF0aWMgdm9pZCBoYW5kbGVUb3VjaE1vdXNlTW92ZSh2b2lkKiBkYXRhLCBF
dmFzKiwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8pOworICAgIHN0YXRpYyB2b2lkIGhh
bmRsZVRvdWNoTXVsdGlEb3duKHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09iamVjdCosIHZvaWQq
IGV2ZW50SW5mbyk7CisgICAgc3RhdGljIHZvaWQgaGFuZGxlVG91Y2hNdWx0aVVwKHZvaWQqIGRh
dGEsIEV2YXMqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbyk7CisgICAgc3RhdGljIHZv
aWQgaGFuZGxlVG91Y2hNdWx0aU1vdmUodm9pZCogZGF0YSwgRXZhcyosIEV2YXNfT2JqZWN0Kiwg
dm9pZCogZXZlbnRJbmZvKTsKICNlbmRpZgogICAgIHN0YXRpYyB2b2lkIGhhbmRsZUZhdmljb25D
aGFuZ2VkKGNvbnN0IGNoYXIqIHBhZ2VVUkwsIHZvaWQqIGV2ZW50SW5mbyk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0dlc3R1cmVSZWNvZ25pemVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0dlc3R1cmVSZWNvZ25pemVyLmNw
cAppbmRleCAzNWEyYjkyOTdjNWNkMjhiY2E0YzBhNWM4MDM4YjU0NTQ4OGMwYThkLi45ZDU3Y2Ix
Mjc1MGY2N2Y2MjdhYTNjOWU5ZGMzNTgxMDQ4OWIwOTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9HZXN0dXJlUmVjb2duaXplci5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvR2VzdHVyZVJlY29nbml6ZXIuY3BwCkBAIC01MSw3
ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGhhbmRsZURvdWJsZVRhcChjb25zdCBJbnRQb2lu
dCYpOwogICAgIHZvaWQgaGFuZGxlVGFwQW5kSG9sZChjb25zdCBJbnRQb2ludCYpOwogICAgIHZv
aWQgaGFuZGxlUGFuU3RhcnRlZChjb25zdCBJbnRQb2ludCYpOwotICAgIHZvaWQgaGFuZGxlUGFu
KGNvbnN0IEludFBvaW50Jik7CisgICAgdm9pZCBoYW5kbGVQYW4oY29uc3QgSW50UG9pbnQmLCBk
b3VibGUgdGltZXN0YW1wKTsKICAgICB2b2lkIGhhbmRsZVBhbkZpbmlzaGVkKCk7CiAgICAgdm9p
ZCBoYW5kbGVGbGljayhjb25zdCBJbnRTaXplJik7CiAgICAgdm9pZCBoYW5kbGVQaW5jaFN0YXJ0
ZWQoY29uc3QgVmVjdG9yPEludFBvaW50PiYpOwpAQCAtMTkzLDEzICsxOTMsMTMgQEAgdm9pZCBH
ZXN0dXJlSGFuZGxlcjo6aGFuZGxlUGFuU3RhcnRlZChjb25zdCBJbnRQb2ludCYgcG9pbnQpCiAg
ICAgbV9sYXN0UG9pbnQgPSBtX2N1cnJlbnRQb2ludCA9IHBvaW50OwogfQogCi12b2lkIEdlc3R1
cmVIYW5kbGVyOjpoYW5kbGVQYW4oY29uc3QgSW50UG9pbnQmIHBvaW50KQordm9pZCBHZXN0dXJl
SGFuZGxlcjo6aGFuZGxlUGFuKGNvbnN0IEludFBvaW50JiBwb2ludCwgZG91YmxlIHRpbWVzdGFt
cCkKIHsKICAgICBtX2N1cnJlbnRQb2ludCA9IHBvaW50OwogICAgIG1faXNDdXJyZW50UG9pbnRV
cGRhdGVkID0gdHJ1ZTsKIAogICAgIC8vIFNhdmUgY3VycmVudCBwb2ludCB0byB1c2UgdG8gY2Fs
Y3VsYXRlIG9mZnNldCBvZiBmbGljay4KLSAgICBIaXN0b3J5SXRlbSBpdGVtID0geyBtX2N1cnJl
bnRQb2ludCwgZWNvcmVfdGltZV9nZXQoKSB9OworICAgIEhpc3RvcnlJdGVtIGl0ZW0gPSB7IG1f
Y3VycmVudFBvaW50LCB0aW1lc3RhbXAgfTsKICAgICBpZiAobV9oaXN0b3J5LnNpemUoKSA8IG1f
aGlzdG9yeS5jYXBhY2l0eSgpKQogICAgICAgICBtX2hpc3RvcnkudW5jaGVja2VkQXBwZW5kKGl0
ZW0pOwogICAgIGVsc2UgewpAQCAtMjk1LDcgKzI5NSw3IEBAIHZvaWQgR2VzdHVyZVJlY29nbml6
ZXI6OnByb2Nlc3NUb3VjaEV2ZW50KFdLVG91Y2hFdmVudFJlZiBldmVudFJlZikKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgICh0aGlzLT4qbV9yZWNvZ25pemVyRnVuY3Rpb24pKHR5cGUs
IFdLVG91Y2hFdmVudEdldFRvdWNoUG9pbnRzKGV2ZW50UmVmKSk7CisgICAgKHRoaXMtPiptX3Jl
Y29nbml6ZXJGdW5jdGlvbikodHlwZSwgV0tUb3VjaEV2ZW50R2V0VG91Y2hQb2ludHMoZXZlbnRS
ZWYpLCBXS1RvdWNoRXZlbnRHZXRUaW1lc3RhbXAoZXZlbnRSZWYpKTsKIH0KIAogRWluYV9Cb29s
IEdlc3R1cmVSZWNvZ25pemVyOjpkb3VibGVUYXBUaW1lckNhbGxiYWNrKHZvaWQqIGRhdGEpCkBA
IC0zNTIsNyArMzUyLDcgQEAgc3RhdGljIGlubGluZSBWZWN0b3I8SW50UG9pbnQ+IGNyZWF0ZVZl
Y3RvcldpdGhXS0FycmF5KFdLQXJyYXlSZWYgYXJyYXksIHNpemVfdAogICAgIHJldHVybiBwb2lu
dHM7CiB9CiAKLXZvaWQgR2VzdHVyZVJlY29nbml6ZXI6Om5vR2VzdHVyZShXS0V2ZW50VHlwZSB0
eXBlLCBXS0FycmF5UmVmIHRvdWNoUG9pbnRzKQordm9pZCBHZXN0dXJlUmVjb2duaXplcjo6bm9H
ZXN0dXJlKFdLRXZlbnRUeXBlIHR5cGUsIFdLQXJyYXlSZWYgdG91Y2hQb2ludHMsIGRvdWJsZSB0
aW1lc3RhbXApCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBrV0tFdmVudFR5cGVU
b3VjaFN0YXJ0OgpAQCAtMzczLDcgKzM3Myw3IEBAIHZvaWQgR2VzdHVyZVJlY29nbml6ZXI6Om5v
R2VzdHVyZShXS0V2ZW50VHlwZSB0eXBlLCBXS0FycmF5UmVmIHRvdWNoUG9pbnRzKQogICAgIH0K
IH0KIAotdm9pZCBHZXN0dXJlUmVjb2duaXplcjo6c2luZ2xlVGFwR2VzdHVyZShXS0V2ZW50VHlw
ZSB0eXBlLCBXS0FycmF5UmVmIHRvdWNoUG9pbnRzKQordm9pZCBHZXN0dXJlUmVjb2duaXplcjo6
c2luZ2xlVGFwR2VzdHVyZShXS0V2ZW50VHlwZSB0eXBlLCBXS0FycmF5UmVmIHRvdWNoUG9pbnRz
LCBkb3VibGUgdGltZXN0YW1wKQogewogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2Uga1dL
RXZlbnRUeXBlVG91Y2hTdGFydDoKQEAgLTQwOSw3ICs0MDksNyBAQCB2b2lkIEdlc3R1cmVSZWNv
Z25pemVyOjpzaW5nbGVUYXBHZXN0dXJlKFdLRXZlbnRUeXBlIHR5cGUsIFdLQXJyYXlSZWYgdG91
Y2hQb2ludAogICAgIH0KIH0KIAotdm9pZCBHZXN0dXJlUmVjb2duaXplcjo6ZG91YmxlVGFwR2Vz
dHVyZShXS0V2ZW50VHlwZSB0eXBlLCBXS0FycmF5UmVmIHRvdWNoUG9pbnRzKQordm9pZCBHZXN0
dXJlUmVjb2duaXplcjo6ZG91YmxlVGFwR2VzdHVyZShXS0V2ZW50VHlwZSB0eXBlLCBXS0FycmF5
UmVmIHRvdWNoUG9pbnRzLCBkb3VibGUgdGltZXN0YW1wKQogewogICAgIHN3aXRjaCAodHlwZSkg
ewogICAgIGNhc2Uga1dLRXZlbnRUeXBlVG91Y2hTdGFydDogewpAQCAtNDQ2LDcgKzQ0Niw3IEBA
IHZvaWQgR2VzdHVyZVJlY29nbml6ZXI6OmRvdWJsZVRhcEdlc3R1cmUoV0tFdmVudFR5cGUgdHlw
ZSwgV0tBcnJheVJlZiB0b3VjaFBvaW50CiAgICAgfQogfQogCi12b2lkIEdlc3R1cmVSZWNvZ25p
emVyOjpwYW5HZXN0dXJlKFdLRXZlbnRUeXBlIHR5cGUsIFdLQXJyYXlSZWYgdG91Y2hQb2ludHMp
Cit2b2lkIEdlc3R1cmVSZWNvZ25pemVyOjpwYW5HZXN0dXJlKFdLRXZlbnRUeXBlIHR5cGUsIFdL
QXJyYXlSZWYgdG91Y2hQb2ludHMsIGRvdWJsZSB0aW1lc3RhbXApCiB7CiAgICAgc3dpdGNoICh0
eXBlKSB7CiAgICAgY2FzZSBrV0tFdmVudFR5cGVUb3VjaFN0YXJ0OgpAQCAtNDU0LDcgKzQ1NCw3
IEBAIHZvaWQgR2VzdHVyZVJlY29nbml6ZXI6OnBhbkdlc3R1cmUoV0tFdmVudFR5cGUgdHlwZSwg
V0tBcnJheVJlZiB0b3VjaFBvaW50cykKICAgICAgICAgbV9nZXN0dXJlSGFuZGxlci0+aGFuZGxl
UGluY2hTdGFydGVkKGNyZWF0ZVZlY3RvcldpdGhXS0FycmF5KHRvdWNoUG9pbnRzLCAyKSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2Uga1dLRXZlbnRUeXBlVG91Y2hNb3ZlOgotICAgICAgICBt
X2dlc3R1cmVIYW5kbGVyLT5oYW5kbGVQYW4odG9JbnRQb2ludChnZXRQb2ludEF0SW5kZXgodG91
Y2hQb2ludHMsIDApKSk7CisgICAgICAgIG1fZ2VzdHVyZUhhbmRsZXItPmhhbmRsZVBhbih0b0lu
dFBvaW50KGdldFBvaW50QXRJbmRleCh0b3VjaFBvaW50cywgMCkpLCB0aW1lc3RhbXApOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIGtXS0V2ZW50VHlwZVRvdWNoRW5kOgogICAgICAgICBtX2dl
c3R1cmVIYW5kbGVyLT5oYW5kbGVQYW5GaW5pc2hlZCgpOwpAQCAtNDY2LDcgKzQ2Niw3IEBAIHZv
aWQgR2VzdHVyZVJlY29nbml6ZXI6OnBhbkdlc3R1cmUoV0tFdmVudFR5cGUgdHlwZSwgV0tBcnJh
eVJlZiB0b3VjaFBvaW50cykKICAgICB9CiB9CiAKLXZvaWQgR2VzdHVyZVJlY29nbml6ZXI6OnBp
bmNoR2VzdHVyZShXS0V2ZW50VHlwZSB0eXBlLCBXS0FycmF5UmVmIHRvdWNoUG9pbnRzKQordm9p
ZCBHZXN0dXJlUmVjb2duaXplcjo6cGluY2hHZXN0dXJlKFdLRXZlbnRUeXBlIHR5cGUsIFdLQXJy
YXlSZWYgdG91Y2hQb2ludHMsIGRvdWJsZSB0aW1lc3RhbXApCiB7CiAgICAgc2l6ZV90IG51bWJl
ck9mVG91Y2hQb2ludHMgPSBXS0FycmF5R2V0U2l6ZSh0b3VjaFBvaW50cyk7CiAgICAgQVNTRVJU
KG51bWJlck9mVG91Y2hQb2ludHMgPj0gMik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9HZXN0dXJlUmVjb2duaXplci5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvR2VzdHVyZVJlY29nbml6ZXIuaAppbmRleCBjMWY5ZDcwYjM4MGIzMjc2
MjM5MmQ3NmUxOTAzY2JlNjQ1MjQ1NGQwLi5lNTU1MTI1ZDJhMDNiMjQ4NWI1M2M3MjhhMDI5Mzc5
YzI0M2Y4OTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9H
ZXN0dXJlUmVjb2duaXplci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L0dlc3R1cmVSZWNvZ25pemVyLmgKQEAgLTU2LDExICs1NiwxMSBAQCBwcml2YXRlOgogICAgIGJv
b2wgZXhjZWVkc0RvdWJsZVRhcFRocmVzaG9sZChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZmly
c3QsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBsYXN0KSBjb25zdDsKIAogICAgIC8vIFN0YXRl
IGZ1bmN0aW9ucy4KLSAgICB2b2lkIG5vR2VzdHVyZShXS0V2ZW50VHlwZSwgV0tBcnJheVJlZik7
Ci0gICAgdm9pZCBzaW5nbGVUYXBHZXN0dXJlKFdLRXZlbnRUeXBlLCBXS0FycmF5UmVmKTsKLSAg
ICB2b2lkIGRvdWJsZVRhcEdlc3R1cmUoV0tFdmVudFR5cGUsIFdLQXJyYXlSZWYpOwotICAgIHZv
aWQgcGFuR2VzdHVyZShXS0V2ZW50VHlwZSwgV0tBcnJheVJlZik7Ci0gICAgdm9pZCBwaW5jaEdl
c3R1cmUoV0tFdmVudFR5cGUsIFdLQXJyYXlSZWYpOworICAgIHZvaWQgbm9HZXN0dXJlKFdLRXZl
bnRUeXBlLCBXS0FycmF5UmVmLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICB2b2lkIHNpbmdsZVRh
cEdlc3R1cmUoV0tFdmVudFR5cGUsIFdLQXJyYXlSZWYsIGRvdWJsZSB0aW1lc3RhbXApOworICAg
IHZvaWQgZG91YmxlVGFwR2VzdHVyZShXS0V2ZW50VHlwZSwgV0tBcnJheVJlZiwgZG91YmxlIHRp
bWVzdGFtcCk7CisgICAgdm9pZCBwYW5HZXN0dXJlKFdLRXZlbnRUeXBlLCBXS0FycmF5UmVmLCBk
b3VibGUgdGltZXN0YW1wKTsKKyAgICB2b2lkIHBpbmNoR2VzdHVyZShXS0V2ZW50VHlwZSwgV0tB
cnJheVJlZiwgZG91YmxlIHRpbWVzdGFtcCk7CiAKICAgICB2b2lkIHN0b3BUYXBUaW1lcnMoKTsK
IApAQCAtNjksNyArNjksNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCBpbnQgc19zcXVh
cmVkRG91YmxlVGFwVGhyZXNob2xkOwogICAgIHN0YXRpYyBjb25zdCBpbnQgc19zcXVhcmVkUGFu
VGhyZXNob2xkOwogCi0gICAgdHlwZWRlZiB2b2lkIChHZXN0dXJlUmVjb2duaXplcjo6KlJlY29n
bml6ZXJGdW5jdGlvbikoV0tFdmVudFR5cGUsIFdLQXJyYXlSZWYpOworICAgIHR5cGVkZWYgdm9p
ZCAoR2VzdHVyZVJlY29nbml6ZXI6OipSZWNvZ25pemVyRnVuY3Rpb24pKFdLRXZlbnRUeXBlLCBX
S0FycmF5UmVmLCBkb3VibGUgdGltZXN0YW1wKTsKICAgICBSZWNvZ25pemVyRnVuY3Rpb24gbV9y
ZWNvZ25pemVyRnVuY3Rpb247CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpHZXN0dXJl
SGFuZGxlcj4gbV9nZXN0dXJlSGFuZGxlcjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220292</attachid>
            <date>2014-01-03 01:35:15 -0800</date>
            <delta_ts>2014-01-15 18:21:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126424-20140103183514.patch</filename>
            <type>text/plain</type>
            <size>14709</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxMjQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNThjMjVhNzI0YjJkYTM5
MDA0YTA5OWZhOGJkZDM2ZjNkY2E4NTdlNi4uMDI3Y2RhM2JmNWZlOTNhODY1ZjRhMTliODIyYzNi
ZDM1OWZlZWEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE0LTAxLTAzICBFdW5t
aSBMZWUgIDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFVz
ZSB0aW1lc3RhbXAgd2hlbiBldmVudCBvY2N1cnMgZm9yIHRvdWNoIGV2ZW50cy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjQyNAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnQgdGltZSBpcyB1
c2VkIGZvciB0b3VjaCBldmVudCdzIHRpbWVzdGFtcCBpbnN0ZWFkIG9mIHRpbWVzdGFtcAorICAg
ICAgICB3aGVuIGV2ZW50IG9jY3Vycy4gVGltZXN0YW1wIG9mIHRvdWNoIGV2ZW50IGlzIHVzZWQg
dG8gaW1wbGVtZW50IGZsaWNrCisgICAgICAgIGdlc3R1cmUsIHNvIGl0IHNob3VsZCBiZSByZWFs
IHZhbHVlIGZvciBhY2N1cmF0ZSBnZXN0dXJlIHByb2Nlc3NpbmcuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcDoKKyAgICAgICAgKEV3a1ZpZXc6OnNldFRvdWNoRXZl
bnRzRW5hYmxlZCk6CisgICAgICAgIChFd2tWaWV3OjpmZWVkVG91Y2hFdmVudHMpOgorICAgICAg
ICAoRXdrVmlldzo6aGFuZGxlTW91c2VEb3duRm9yVG91Y2gpOgorICAgICAgICAoRXdrVmlldzo6
aGFuZGxlTW91c2VVcEZvclRvdWNoKToKKyAgICAgICAgKEV3a1ZpZXc6OmhhbmRsZU1vdXNlTW92
ZUZvclRvdWNoKToKKyAgICAgICAgKEV3a1ZpZXc6OmhhbmRsZU11bHRpRG93bkZvclRvdWNoKToK
KyAgICAgICAgKEV3a1ZpZXc6OmhhbmRsZU11bHRpVXBGb3JUb3VjaCk6CisgICAgICAgIChFd2tW
aWV3OjpoYW5kbGVNdWx0aU1vdmVGb3JUb3VjaCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9l
ZmwvRXdrVmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0dlc3R1cmVSZWNvZ25p
emVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R2VzdHVyZUhhbmRsZXI6OmhhbmRsZVBhbik6Cisg
ICAgICAgIChXZWJLaXQ6Okdlc3R1cmVSZWNvZ25pemVyOjpwcm9jZXNzVG91Y2hFdmVudCk6Cisg
ICAgICAgIChXZWJLaXQ6Okdlc3R1cmVSZWNvZ25pemVyOjpub0dlc3R1cmUpOgorICAgICAgICAo
V2ViS2l0OjpHZXN0dXJlUmVjb2duaXplcjo6c2luZ2xlVGFwR2VzdHVyZSk6CisgICAgICAgIChX
ZWJLaXQ6Okdlc3R1cmVSZWNvZ25pemVyOjpkb3VibGVUYXBHZXN0dXJlKToKKyAgICAgICAgKFdl
YktpdDo6R2VzdHVyZVJlY29nbml6ZXI6OnBhbkdlc3R1cmUpOgorICAgICAgICAoV2ViS2l0OjpH
ZXN0dXJlUmVjb2duaXplcjo6cGluY2hHZXN0dXJlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2VmbC9HZXN0dXJlUmVjb2duaXplci5oOgorCiAyMDE0LTAxLTAyICBHYXZpbiBCYXJyYWNsb3Vn
aCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgV2luZG93SXNWaXNp
YmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCmluZGV4
IDU3YWUzYTcyMTlmM2Y1NzZmNzE0NjgxZDhkN2UyYTUyNGE0ZDU2ODcuLjM1M2Q0MmFkN2VjYjAz
NjA0MmI3NjhlZDU0ZmQ1NjNmMTE3M2QyOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL0V3a1ZpZXcuY3BwCkBAIC03NzcsMTkgKzc3NywxOSBAQCB2b2lkIEV3a1ZpZXc6
OnNldFRvdWNoRXZlbnRzRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgICAgIC8vIHN1cHBvcnRz
IHRoZSB0b3VjaCBldmVudHMuCiAgICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTc3ODUgZm9yIGRldGFpbHMuCiAgICAgICAgIEV3a19WaWV3X1Nt
YXJ0X0RhdGEqIHNkID0gc21hcnREYXRhKCk7Ci0gICAgICAgIGV2YXNfb2JqZWN0X2V2ZW50X2Nh
bGxiYWNrX2FkZChtX2V2YXNPYmplY3QsIEVWQVNfQ0FMTEJBQ0tfTU9VU0VfRE9XTiwgaGFuZGxl
VG91Y2hEb3duLCBzZCk7Ci0gICAgICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZCht
X2V2YXNPYmplY3QsIEVWQVNfQ0FMTEJBQ0tfTU9VU0VfVVAsIGhhbmRsZVRvdWNoVXAsIHNkKTsK
LSAgICAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfYWRkKG1fZXZhc09iamVjdCwgRVZB
U19DQUxMQkFDS19NT1VTRV9NT1ZFLCBoYW5kbGVUb3VjaE1vdmUsIHNkKTsKLSAgICAgICAgZXZh
c19vYmplY3RfZXZlbnRfY2FsbGJhY2tfYWRkKG1fZXZhc09iamVjdCwgRVZBU19DQUxMQkFDS19N
VUxUSV9ET1dOLCBoYW5kbGVUb3VjaERvd24sIHNkKTsKLSAgICAgICAgZXZhc19vYmplY3RfZXZl
bnRfY2FsbGJhY2tfYWRkKG1fZXZhc09iamVjdCwgRVZBU19DQUxMQkFDS19NVUxUSV9VUCwgaGFu
ZGxlVG91Y2hVcCwgc2QpOwotICAgICAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19hZGQo
bV9ldmFzT2JqZWN0LCBFVkFTX0NBTExCQUNLX01VTFRJX01PVkUsIGhhbmRsZVRvdWNoTW92ZSwg
c2QpOworICAgICAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19hZGQobV9ldmFzT2JqZWN0
LCBFVkFTX0NBTExCQUNLX01PVVNFX0RPV04sIGhhbmRsZU1vdXNlRG93bkZvclRvdWNoLCBzZCk7
CisgICAgICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChtX2V2YXNPYmplY3QsIEVW
QVNfQ0FMTEJBQ0tfTU9VU0VfVVAsIGhhbmRsZU1vdXNlVXBGb3JUb3VjaCwgc2QpOworICAgICAg
ICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19hZGQobV9ldmFzT2JqZWN0LCBFVkFTX0NBTExC
QUNLX01PVVNFX01PVkUsIGhhbmRsZU1vdXNlTW92ZUZvclRvdWNoLCBzZCk7CisgICAgICAgIGV2
YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChtX2V2YXNPYmplY3QsIEVWQVNfQ0FMTEJBQ0tf
TVVMVElfRE9XTiwgaGFuZGxlTXVsdGlEb3duRm9yVG91Y2gsIHNkKTsKKyAgICAgICAgZXZhc19v
YmplY3RfZXZlbnRfY2FsbGJhY2tfYWRkKG1fZXZhc09iamVjdCwgRVZBU19DQUxMQkFDS19NVUxU
SV9VUCwgaGFuZGxlTXVsdGlVcEZvclRvdWNoLCBzZCk7CisgICAgICAgIGV2YXNfb2JqZWN0X2V2
ZW50X2NhbGxiYWNrX2FkZChtX2V2YXNPYmplY3QsIEVWQVNfQ0FMTEJBQ0tfTVVMVElfTU9WRSwg
aGFuZGxlTXVsdGlNb3ZlRm9yVG91Y2gsIHNkKTsKICAgICB9IGVsc2UgewotICAgICAgICBldmFz
X29iamVjdF9ldmVudF9jYWxsYmFja19kZWwobV9ldmFzT2JqZWN0LCBFVkFTX0NBTExCQUNLX01P
VVNFX0RPV04sIGhhbmRsZVRvdWNoRG93bik7Ci0gICAgICAgIGV2YXNfb2JqZWN0X2V2ZW50X2Nh
bGxiYWNrX2RlbChtX2V2YXNPYmplY3QsIEVWQVNfQ0FMTEJBQ0tfTU9VU0VfVVAsIGhhbmRsZVRv
dWNoVXApOwotICAgICAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19kZWwobV9ldmFzT2Jq
ZWN0LCBFVkFTX0NBTExCQUNLX01PVVNFX01PVkUsIGhhbmRsZVRvdWNoTW92ZSk7Ci0gICAgICAg
IGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2RlbChtX2V2YXNPYmplY3QsIEVWQVNfQ0FMTEJB
Q0tfTVVMVElfRE9XTiwgaGFuZGxlVG91Y2hEb3duKTsKLSAgICAgICAgZXZhc19vYmplY3RfZXZl
bnRfY2FsbGJhY2tfZGVsKG1fZXZhc09iamVjdCwgRVZBU19DQUxMQkFDS19NVUxUSV9VUCwgaGFu
ZGxlVG91Y2hVcCk7Ci0gICAgICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2RlbChtX2V2
YXNPYmplY3QsIEVWQVNfQ0FMTEJBQ0tfTVVMVElfTU9WRSwgaGFuZGxlVG91Y2hNb3ZlKTsKKyAg
ICAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfZGVsKG1fZXZhc09iamVjdCwgRVZBU19D
QUxMQkFDS19NT1VTRV9ET1dOLCBoYW5kbGVNb3VzZURvd25Gb3JUb3VjaCk7CisgICAgICAgIGV2
YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2RlbChtX2V2YXNPYmplY3QsIEVWQVNfQ0FMTEJBQ0tf
TU9VU0VfVVAsIGhhbmRsZU1vdXNlVXBGb3JUb3VjaCk7CisgICAgICAgIGV2YXNfb2JqZWN0X2V2
ZW50X2NhbGxiYWNrX2RlbChtX2V2YXNPYmplY3QsIEVWQVNfQ0FMTEJBQ0tfTU9VU0VfTU9WRSwg
aGFuZGxlTW91c2VNb3ZlRm9yVG91Y2gpOworICAgICAgICBldmFzX29iamVjdF9ldmVudF9jYWxs
YmFja19kZWwobV9ldmFzT2JqZWN0LCBFVkFTX0NBTExCQUNLX01VTFRJX0RPV04sIGhhbmRsZU11
bHRpRG93bkZvclRvdWNoKTsKKyAgICAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfZGVs
KG1fZXZhc09iamVjdCwgRVZBU19DQUxMQkFDS19NVUxUSV9VUCwgaGFuZGxlTXVsdGlVcEZvclRv
dWNoKTsKKyAgICAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfZGVsKG1fZXZhc09iamVj
dCwgRVZBU19DQUxMQkFDS19NVUxUSV9NT1ZFLCBoYW5kbGVNdWx0aU1vdmVGb3JUb3VjaCk7CiAg
ICAgfQogfQogCkBAIC0xMzEyLDcgKzEzMTIsNyBAQCBFaW5hX0Jvb2wgRXdrVmlldzo6aGFuZGxl
RXdrVmlld0tleVVwKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgY29uc3QgRXZhcwog
fQogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLXZvaWQgRXdrVmlldzo6ZmVlZFRvdWNoRXZl
bnRzKEV3a19Ub3VjaF9FdmVudF9UeXBlIHR5cGUpCit2b2lkIEV3a1ZpZXc6OmZlZWRUb3VjaEV2
ZW50cyhFd2tfVG91Y2hfRXZlbnRfVHlwZSB0eXBlLCBkb3VibGUgdGltZXN0YW1wKQogewogICAg
IEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkID0gc21hcnREYXRhKCk7CiAKQEAgLTEzMzEsMjIgKzEz
MzEsMzcgQEAgdm9pZCBFd2tWaWV3OjpmZWVkVG91Y2hFdmVudHMoRXdrX1RvdWNoX0V2ZW50X1R5
cGUgdHlwZSkKICAgICB9CiAgICAgV0tSZXRhaW5QdHI8V0tBcnJheVJlZj4gd2tUb3VjaFBvaW50
cyhBZG9wdFdLLCBXS0FycmF5Q3JlYXRlQWRvcHRpbmdWYWx1ZXModG91Y2hQb2ludHMuZ2V0KCks
IGxlbmd0aCkpOwogCi0gICAgV0tWaWV3U2VuZFRvdWNoRXZlbnQod2tWaWV3KCksIGFkb3B0V0so
V0tUb3VjaEV2ZW50Q3JlYXRlKHN0YXRpY19jYXN0PFdLRXZlbnRUeXBlPih0eXBlKSwgd2tUb3Vj
aFBvaW50cy5nZXQoKSwgdG9XS0V2ZW50TW9kaWZpZXJzKGV2YXNfa2V5X21vZGlmaWVyX2dldChz
ZC0+YmFzZS5ldmFzKSksIGVjb3JlX3RpbWVfZ2V0KCkpKS5nZXQoKSk7CisgICAgV0tWaWV3U2Vu
ZFRvdWNoRXZlbnQod2tWaWV3KCksIGFkb3B0V0soV0tUb3VjaEV2ZW50Q3JlYXRlKHN0YXRpY19j
YXN0PFdLRXZlbnRUeXBlPih0eXBlKSwgd2tUb3VjaFBvaW50cy5nZXQoKSwgdG9XS0V2ZW50TW9k
aWZpZXJzKGV2YXNfa2V5X21vZGlmaWVyX2dldChzZC0+YmFzZS5ldmFzKSksIHRpbWVzdGFtcCkp
LmdldCgpKTsKIH0KIAotdm9pZCBFd2tWaWV3OjpoYW5kbGVUb3VjaERvd24odm9pZCogLyogZGF0
YSAqLywgRXZhcyogLyogY2FudmFzICovLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCogLyog
ZXZlbnRJbmZvICovKQordm9pZCBFd2tWaWV3OjpoYW5kbGVNb3VzZURvd25Gb3JUb3VjaCh2b2lk
KiAvKiBkYXRhICovLCBFdmFzKiAvKiBjYW52YXMgKi8sIEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2
b2lkKiBldmVudEluZm8pCiB7Ci0gICAgdG9Fd2tWaWV3KGV3a1ZpZXcpLT5mZWVkVG91Y2hFdmVu
dHMoRVdLX1RPVUNIX1NUQVJUKTsKKyAgICB0b0V3a1ZpZXcoZXdrVmlldyktPmZlZWRUb3VjaEV2
ZW50cyhFV0tfVE9VQ0hfU1RBUlQsIHN0YXRpY19jYXN0PEV2YXNfRXZlbnRfTW91c2VfRG93bio+
KGV2ZW50SW5mbyktPnRpbWVzdGFtcCAvIDEwMDAuMCk7CiB9CiAKLXZvaWQgRXdrVmlldzo6aGFu
ZGxlVG91Y2hVcCh2b2lkKiAvKiBkYXRhICovLCBFdmFzKiAvKiBjYW52YXMgKi8sIEV2YXNfT2Jq
ZWN0KiBld2tWaWV3LCB2b2lkKiAvKiBldmVudEluZm8gKi8pCit2b2lkIEV3a1ZpZXc6OmhhbmRs
ZU1vdXNlVXBGb3JUb3VjaCh2b2lkKiAvKiBkYXRhICovLCBFdmFzKiAvKiBjYW52YXMgKi8sIEV2
YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lkKiBldmVudEluZm8pCiB7Ci0gICAgdG9Fd2tWaWV3KGV3
a1ZpZXcpLT5mZWVkVG91Y2hFdmVudHMoRVdLX1RPVUNIX0VORCk7CisgICAgdG9Fd2tWaWV3KGV3
a1ZpZXcpLT5mZWVkVG91Y2hFdmVudHMoRVdLX1RPVUNIX0VORCwgc3RhdGljX2Nhc3Q8RXZhc19F
dmVudF9Nb3VzZV9VcCo+KGV2ZW50SW5mbyktPnRpbWVzdGFtcCAvIDEwMDAuMCk7CiB9CiAKLXZv
aWQgRXdrVmlldzo6aGFuZGxlVG91Y2hNb3ZlKHZvaWQqIC8qIGRhdGEgKi8sIEV2YXMqIC8qIGNh
bnZhcyAqLywgRXZhc19PYmplY3QqIGV3a1ZpZXcsIHZvaWQqIC8qIGV2ZW50SW5mbyAqLykKK3Zv
aWQgRXdrVmlldzo6aGFuZGxlTW91c2VNb3ZlRm9yVG91Y2godm9pZCogLyogZGF0YSAqLywgRXZh
cyogLyogY2FudmFzICovLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJbmZvKQog
ewotICAgIHRvRXdrVmlldyhld2tWaWV3KS0+ZmVlZFRvdWNoRXZlbnRzKEVXS19UT1VDSF9NT1ZF
KTsKKyAgICB0b0V3a1ZpZXcoZXdrVmlldyktPmZlZWRUb3VjaEV2ZW50cyhFV0tfVE9VQ0hfTU9W
RSwgc3RhdGljX2Nhc3Q8RXZhc19FdmVudF9Nb3VzZV9Nb3ZlKj4oZXZlbnRJbmZvKS0+dGltZXN0
YW1wIC8gMTAwMC4wKTsKK30KKwordm9pZCBFd2tWaWV3OjpoYW5kbGVNdWx0aURvd25Gb3JUb3Vj
aCh2b2lkKiAvKiBkYXRhICovLCBFdmFzKiAvKiBjYW52YXMgKi8sIEV2YXNfT2JqZWN0KiBld2tW
aWV3LCB2b2lkKiBldmVudEluZm8pCit7CisgICAgdG9Fd2tWaWV3KGV3a1ZpZXcpLT5mZWVkVG91
Y2hFdmVudHMoRVdLX1RPVUNIX1NUQVJULCBzdGF0aWNfY2FzdDxFdmFzX0V2ZW50X011bHRpX0Rv
d24qPihldmVudEluZm8pLT50aW1lc3RhbXAgLyAxMDAwLjApOworfQorCit2b2lkIEV3a1ZpZXc6
OmhhbmRsZU11bHRpVXBGb3JUb3VjaCh2b2lkKiAvKiBkYXRhICovLCBFdmFzKiAvKiBjYW52YXMg
Ki8sIEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lkKiBldmVudEluZm8pCit7CisgICAgdG9Fd2tW
aWV3KGV3a1ZpZXcpLT5mZWVkVG91Y2hFdmVudHMoRVdLX1RPVUNIX0VORCwgc3RhdGljX2Nhc3Q8
RXZhc19FdmVudF9NdWx0aV9VcCo+KGV2ZW50SW5mbyktPnRpbWVzdGFtcCAvIDEwMDAuMCk7Cit9
CisKK3ZvaWQgRXdrVmlldzo6aGFuZGxlTXVsdGlNb3ZlRm9yVG91Y2godm9pZCogLyogZGF0YSAq
LywgRXZhcyogLyogY2FudmFzICovLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJ
bmZvKQoreworICAgIHRvRXdrVmlldyhld2tWaWV3KS0+ZmVlZFRvdWNoRXZlbnRzKEVXS19UT1VD
SF9NT1ZFLCBzdGF0aWNfY2FzdDxFdmFzX0V2ZW50X011bHRpX01vdmUqPihldmVudEluZm8pLT50
aW1lc3RhbXAgLyAxMDAwLjApOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL0V3a1ZpZXcuaAppbmRleCA4NTM5NzliNzU5M2EyYTMyMTc4NWMwMGNjZGY3MWNk
NzJiNmQ4ZDYwLi5jNmIyMjA5NzVhYjA5ZDI4NzRlMGJhM2I4YWZmOWY5YmE2ODk4Mjk4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCkBAIC0yMzksMTAgKzIz
OSwxMyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBFaW5hX0Jvb2wgaGFuZGxlRXdrVmlld0tleVVw
KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgY29uc3QgRXZhc19FdmVudF9LZXlfVXAq
IHVwRXZlbnQpOwogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLSAgICB2b2lkIGZlZWRUb3Vj
aEV2ZW50cyhFd2tfVG91Y2hfRXZlbnRfVHlwZSB0eXBlKTsKLSAgICBzdGF0aWMgdm9pZCBoYW5k
bGVUb3VjaERvd24odm9pZCogZGF0YSwgRXZhcyosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJ
bmZvKTsKLSAgICBzdGF0aWMgdm9pZCBoYW5kbGVUb3VjaFVwKHZvaWQqIGRhdGEsIEV2YXMqLCBF
dmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbyk7Ci0gICAgc3RhdGljIHZvaWQgaGFuZGxlVG91
Y2hNb3ZlKHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbyk7
CisgICAgdm9pZCBmZWVkVG91Y2hFdmVudHMoRXdrX1RvdWNoX0V2ZW50X1R5cGUgdHlwZSwgZG91
YmxlIHRpbWVzdGFtcCk7CisgICAgc3RhdGljIHZvaWQgaGFuZGxlTW91c2VEb3duRm9yVG91Y2go
dm9pZCogZGF0YSwgRXZhcyosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZvKTsKKyAgICBz
dGF0aWMgdm9pZCBoYW5kbGVNb3VzZVVwRm9yVG91Y2godm9pZCogZGF0YSwgRXZhcyosIEV2YXNf
T2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZvKTsKKyAgICBzdGF0aWMgdm9pZCBoYW5kbGVNb3VzZU1v
dmVGb3JUb3VjaCh2b2lkKiBkYXRhLCBFdmFzKiwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudElu
Zm8pOworICAgIHN0YXRpYyB2b2lkIGhhbmRsZU11bHRpRG93bkZvclRvdWNoKHZvaWQqIGRhdGEs
IEV2YXMqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbyk7CisgICAgc3RhdGljIHZvaWQg
aGFuZGxlTXVsdGlVcEZvclRvdWNoKHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09iamVjdCosIHZv
aWQqIGV2ZW50SW5mbyk7CisgICAgc3RhdGljIHZvaWQgaGFuZGxlTXVsdGlNb3ZlRm9yVG91Y2go
dm9pZCogZGF0YSwgRXZhcyosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZvKTsKICNlbmRp
ZgogICAgIHN0YXRpYyB2b2lkIGhhbmRsZUZhdmljb25DaGFuZ2VkKGNvbnN0IGNoYXIqIHBhZ2VV
UkwsIHZvaWQqIGV2ZW50SW5mbyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL0dlc3R1cmVSZWNvZ25pemVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL0dlc3R1cmVSZWNvZ25pemVyLmNwcAppbmRleCAzNWEyYjkyOTdjNWNkMjhi
Y2E0YzBhNWM4MDM4YjU0NTQ4OGMwYThkLi45ZDU3Y2IxMjc1MGY2N2Y2MjdhYTNjOWU5ZGMzNTgx
MDQ4OWIwOTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9H
ZXN0dXJlUmVjb2duaXplci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvR2VzdHVyZVJlY29nbml6ZXIuY3BwCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGhhbmRsZURvdWJsZVRhcChjb25zdCBJbnRQb2ludCYpOwogICAgIHZvaWQgaGFuZGxlVGFw
QW5kSG9sZChjb25zdCBJbnRQb2ludCYpOwogICAgIHZvaWQgaGFuZGxlUGFuU3RhcnRlZChjb25z
dCBJbnRQb2ludCYpOwotICAgIHZvaWQgaGFuZGxlUGFuKGNvbnN0IEludFBvaW50Jik7CisgICAg
dm9pZCBoYW5kbGVQYW4oY29uc3QgSW50UG9pbnQmLCBkb3VibGUgdGltZXN0YW1wKTsKICAgICB2
b2lkIGhhbmRsZVBhbkZpbmlzaGVkKCk7CiAgICAgdm9pZCBoYW5kbGVGbGljayhjb25zdCBJbnRT
aXplJik7CiAgICAgdm9pZCBoYW5kbGVQaW5jaFN0YXJ0ZWQoY29uc3QgVmVjdG9yPEludFBvaW50
PiYpOwpAQCAtMTkzLDEzICsxOTMsMTMgQEAgdm9pZCBHZXN0dXJlSGFuZGxlcjo6aGFuZGxlUGFu
U3RhcnRlZChjb25zdCBJbnRQb2ludCYgcG9pbnQpCiAgICAgbV9sYXN0UG9pbnQgPSBtX2N1cnJl
bnRQb2ludCA9IHBvaW50OwogfQogCi12b2lkIEdlc3R1cmVIYW5kbGVyOjpoYW5kbGVQYW4oY29u
c3QgSW50UG9pbnQmIHBvaW50KQordm9pZCBHZXN0dXJlSGFuZGxlcjo6aGFuZGxlUGFuKGNvbnN0
IEludFBvaW50JiBwb2ludCwgZG91YmxlIHRpbWVzdGFtcCkKIHsKICAgICBtX2N1cnJlbnRQb2lu
dCA9IHBvaW50OwogICAgIG1faXNDdXJyZW50UG9pbnRVcGRhdGVkID0gdHJ1ZTsKIAogICAgIC8v
IFNhdmUgY3VycmVudCBwb2ludCB0byB1c2UgdG8gY2FsY3VsYXRlIG9mZnNldCBvZiBmbGljay4K
LSAgICBIaXN0b3J5SXRlbSBpdGVtID0geyBtX2N1cnJlbnRQb2ludCwgZWNvcmVfdGltZV9nZXQo
KSB9OworICAgIEhpc3RvcnlJdGVtIGl0ZW0gPSB7IG1fY3VycmVudFBvaW50LCB0aW1lc3RhbXAg
fTsKICAgICBpZiAobV9oaXN0b3J5LnNpemUoKSA8IG1faGlzdG9yeS5jYXBhY2l0eSgpKQogICAg
ICAgICBtX2hpc3RvcnkudW5jaGVja2VkQXBwZW5kKGl0ZW0pOwogICAgIGVsc2UgewpAQCAtMjk1
LDcgKzI5NSw3IEBAIHZvaWQgR2VzdHVyZVJlY29nbml6ZXI6OnByb2Nlc3NUb3VjaEV2ZW50KFdL
VG91Y2hFdmVudFJlZiBldmVudFJlZikKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgICh0
aGlzLT4qbV9yZWNvZ25pemVyRnVuY3Rpb24pKHR5cGUsIFdLVG91Y2hFdmVudEdldFRvdWNoUG9p
bnRzKGV2ZW50UmVmKSk7CisgICAgKHRoaXMtPiptX3JlY29nbml6ZXJGdW5jdGlvbikodHlwZSwg
V0tUb3VjaEV2ZW50R2V0VG91Y2hQb2ludHMoZXZlbnRSZWYpLCBXS1RvdWNoRXZlbnRHZXRUaW1l
c3RhbXAoZXZlbnRSZWYpKTsKIH0KIAogRWluYV9Cb29sIEdlc3R1cmVSZWNvZ25pemVyOjpkb3Vi
bGVUYXBUaW1lckNhbGxiYWNrKHZvaWQqIGRhdGEpCkBAIC0zNTIsNyArMzUyLDcgQEAgc3RhdGlj
IGlubGluZSBWZWN0b3I8SW50UG9pbnQ+IGNyZWF0ZVZlY3RvcldpdGhXS0FycmF5KFdLQXJyYXlS
ZWYgYXJyYXksIHNpemVfdAogICAgIHJldHVybiBwb2ludHM7CiB9CiAKLXZvaWQgR2VzdHVyZVJl
Y29nbml6ZXI6Om5vR2VzdHVyZShXS0V2ZW50VHlwZSB0eXBlLCBXS0FycmF5UmVmIHRvdWNoUG9p
bnRzKQordm9pZCBHZXN0dXJlUmVjb2duaXplcjo6bm9HZXN0dXJlKFdLRXZlbnRUeXBlIHR5cGUs
IFdLQXJyYXlSZWYgdG91Y2hQb2ludHMsIGRvdWJsZSB0aW1lc3RhbXApCiB7CiAgICAgc3dpdGNo
ICh0eXBlKSB7CiAgICAgY2FzZSBrV0tFdmVudFR5cGVUb3VjaFN0YXJ0OgpAQCAtMzczLDcgKzM3
Myw3IEBAIHZvaWQgR2VzdHVyZVJlY29nbml6ZXI6Om5vR2VzdHVyZShXS0V2ZW50VHlwZSB0eXBl
LCBXS0FycmF5UmVmIHRvdWNoUG9pbnRzKQogICAgIH0KIH0KIAotdm9pZCBHZXN0dXJlUmVjb2du
aXplcjo6c2luZ2xlVGFwR2VzdHVyZShXS0V2ZW50VHlwZSB0eXBlLCBXS0FycmF5UmVmIHRvdWNo
UG9pbnRzKQordm9pZCBHZXN0dXJlUmVjb2duaXplcjo6c2luZ2xlVGFwR2VzdHVyZShXS0V2ZW50
VHlwZSB0eXBlLCBXS0FycmF5UmVmIHRvdWNoUG9pbnRzLCBkb3VibGUgdGltZXN0YW1wKQogewog
ICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2Uga1dLRXZlbnRUeXBlVG91Y2hTdGFydDoKQEAg
LTQwOSw3ICs0MDksNyBAQCB2b2lkIEdlc3R1cmVSZWNvZ25pemVyOjpzaW5nbGVUYXBHZXN0dXJl
KFdLRXZlbnRUeXBlIHR5cGUsIFdLQXJyYXlSZWYgdG91Y2hQb2ludAogICAgIH0KIH0KIAotdm9p
ZCBHZXN0dXJlUmVjb2duaXplcjo6ZG91YmxlVGFwR2VzdHVyZShXS0V2ZW50VHlwZSB0eXBlLCBX
S0FycmF5UmVmIHRvdWNoUG9pbnRzKQordm9pZCBHZXN0dXJlUmVjb2duaXplcjo6ZG91YmxlVGFw
R2VzdHVyZShXS0V2ZW50VHlwZSB0eXBlLCBXS0FycmF5UmVmIHRvdWNoUG9pbnRzLCBkb3VibGUg
dGltZXN0YW1wKQogewogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2Uga1dLRXZlbnRUeXBl
VG91Y2hTdGFydDogewpAQCAtNDQ2LDcgKzQ0Niw3IEBAIHZvaWQgR2VzdHVyZVJlY29nbml6ZXI6
OmRvdWJsZVRhcEdlc3R1cmUoV0tFdmVudFR5cGUgdHlwZSwgV0tBcnJheVJlZiB0b3VjaFBvaW50
CiAgICAgfQogfQogCi12b2lkIEdlc3R1cmVSZWNvZ25pemVyOjpwYW5HZXN0dXJlKFdLRXZlbnRU
eXBlIHR5cGUsIFdLQXJyYXlSZWYgdG91Y2hQb2ludHMpCit2b2lkIEdlc3R1cmVSZWNvZ25pemVy
OjpwYW5HZXN0dXJlKFdLRXZlbnRUeXBlIHR5cGUsIFdLQXJyYXlSZWYgdG91Y2hQb2ludHMsIGRv
dWJsZSB0aW1lc3RhbXApCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBrV0tFdmVu
dFR5cGVUb3VjaFN0YXJ0OgpAQCAtNDU0LDcgKzQ1NCw3IEBAIHZvaWQgR2VzdHVyZVJlY29nbml6
ZXI6OnBhbkdlc3R1cmUoV0tFdmVudFR5cGUgdHlwZSwgV0tBcnJheVJlZiB0b3VjaFBvaW50cykK
ICAgICAgICAgbV9nZXN0dXJlSGFuZGxlci0+aGFuZGxlUGluY2hTdGFydGVkKGNyZWF0ZVZlY3Rv
cldpdGhXS0FycmF5KHRvdWNoUG9pbnRzLCAyKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
a1dLRXZlbnRUeXBlVG91Y2hNb3ZlOgotICAgICAgICBtX2dlc3R1cmVIYW5kbGVyLT5oYW5kbGVQ
YW4odG9JbnRQb2ludChnZXRQb2ludEF0SW5kZXgodG91Y2hQb2ludHMsIDApKSk7CisgICAgICAg
IG1fZ2VzdHVyZUhhbmRsZXItPmhhbmRsZVBhbih0b0ludFBvaW50KGdldFBvaW50QXRJbmRleCh0
b3VjaFBvaW50cywgMCkpLCB0aW1lc3RhbXApOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtX
S0V2ZW50VHlwZVRvdWNoRW5kOgogICAgICAgICBtX2dlc3R1cmVIYW5kbGVyLT5oYW5kbGVQYW5G
aW5pc2hlZCgpOwpAQCAtNDY2LDcgKzQ2Niw3IEBAIHZvaWQgR2VzdHVyZVJlY29nbml6ZXI6OnBh
bkdlc3R1cmUoV0tFdmVudFR5cGUgdHlwZSwgV0tBcnJheVJlZiB0b3VjaFBvaW50cykKICAgICB9
CiB9CiAKLXZvaWQgR2VzdHVyZVJlY29nbml6ZXI6OnBpbmNoR2VzdHVyZShXS0V2ZW50VHlwZSB0
eXBlLCBXS0FycmF5UmVmIHRvdWNoUG9pbnRzKQordm9pZCBHZXN0dXJlUmVjb2duaXplcjo6cGlu
Y2hHZXN0dXJlKFdLRXZlbnRUeXBlIHR5cGUsIFdLQXJyYXlSZWYgdG91Y2hQb2ludHMsIGRvdWJs
ZSB0aW1lc3RhbXApCiB7CiAgICAgc2l6ZV90IG51bWJlck9mVG91Y2hQb2ludHMgPSBXS0FycmF5
R2V0U2l6ZSh0b3VjaFBvaW50cyk7CiAgICAgQVNTRVJUKG51bWJlck9mVG91Y2hQb2ludHMgPj0g
Mik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9HZXN0dXJl
UmVjb2duaXplci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvR2VzdHVyZVJl
Y29nbml6ZXIuaAppbmRleCBjMWY5ZDcwYjM4MGIzMjc2MjM5MmQ3NmUxOTAzY2JlNjQ1MjQ1NGQw
Li5lNTU1MTI1ZDJhMDNiMjQ4NWI1M2M3MjhhMDI5Mzc5YzI0M2Y4OTE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9HZXN0dXJlUmVjb2duaXplci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0dlc3R1cmVSZWNvZ25pemVyLmgKQEAg
LTU2LDExICs1NiwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgZXhjZWVkc0RvdWJsZVRhcFRocmVz
aG9sZChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZmlyc3QsIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBsYXN0KSBjb25zdDsKIAogICAgIC8vIFN0YXRlIGZ1bmN0aW9ucy4KLSAgICB2b2lkIG5v
R2VzdHVyZShXS0V2ZW50VHlwZSwgV0tBcnJheVJlZik7Ci0gICAgdm9pZCBzaW5nbGVUYXBHZXN0
dXJlKFdLRXZlbnRUeXBlLCBXS0FycmF5UmVmKTsKLSAgICB2b2lkIGRvdWJsZVRhcEdlc3R1cmUo
V0tFdmVudFR5cGUsIFdLQXJyYXlSZWYpOwotICAgIHZvaWQgcGFuR2VzdHVyZShXS0V2ZW50VHlw
ZSwgV0tBcnJheVJlZik7Ci0gICAgdm9pZCBwaW5jaEdlc3R1cmUoV0tFdmVudFR5cGUsIFdLQXJy
YXlSZWYpOworICAgIHZvaWQgbm9HZXN0dXJlKFdLRXZlbnRUeXBlLCBXS0FycmF5UmVmLCBkb3Vi
bGUgdGltZXN0YW1wKTsKKyAgICB2b2lkIHNpbmdsZVRhcEdlc3R1cmUoV0tFdmVudFR5cGUsIFdL
QXJyYXlSZWYsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIHZvaWQgZG91YmxlVGFwR2VzdHVyZShX
S0V2ZW50VHlwZSwgV0tBcnJheVJlZiwgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgdm9pZCBwYW5H
ZXN0dXJlKFdLRXZlbnRUeXBlLCBXS0FycmF5UmVmLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICB2
b2lkIHBpbmNoR2VzdHVyZShXS0V2ZW50VHlwZSwgV0tBcnJheVJlZiwgZG91YmxlIHRpbWVzdGFt
cCk7CiAKICAgICB2b2lkIHN0b3BUYXBUaW1lcnMoKTsKIApAQCAtNjksNyArNjksNyBAQCBwcml2
YXRlOgogICAgIHN0YXRpYyBjb25zdCBpbnQgc19zcXVhcmVkRG91YmxlVGFwVGhyZXNob2xkOwog
ICAgIHN0YXRpYyBjb25zdCBpbnQgc19zcXVhcmVkUGFuVGhyZXNob2xkOwogCi0gICAgdHlwZWRl
ZiB2b2lkIChHZXN0dXJlUmVjb2duaXplcjo6KlJlY29nbml6ZXJGdW5jdGlvbikoV0tFdmVudFR5
cGUsIFdLQXJyYXlSZWYpOworICAgIHR5cGVkZWYgdm9pZCAoR2VzdHVyZVJlY29nbml6ZXI6OipS
ZWNvZ25pemVyRnVuY3Rpb24pKFdLRXZlbnRUeXBlLCBXS0FycmF5UmVmLCBkb3VibGUgdGltZXN0
YW1wKTsKICAgICBSZWNvZ25pemVyRnVuY3Rpb24gbV9yZWNvZ25pemVyRnVuY3Rpb247CiAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpHZXN0dXJlSGFuZGxlcj4gbV9nZXN0dXJlSGFuZGxl
cjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221322</attachid>
            <date>2014-01-15 18:21:27 -0800</date>
            <delta_ts>2014-01-15 20:21:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126424-20140116112126.patch</filename>
            <type>text/plain</type>
            <size>15554</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyMTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDc4OGFlNmIzY2M3ZGY4
NzI5NzRhYWI0MzNjYjk2NTUyNzZiZWZmYy4uODJjOGMzNjg2MjFlODNmODQ2OTZmMWZlZjgwZDgw
MzUwNzAyNTMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE0LTAxLTE1ICBFdW5t
aSBMZWUgIDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFVz
ZSB0aW1lc3RhbXAgd2hlbiBldmVudCBvY2N1cnMgZm9yIHRvdWNoIGV2ZW50cy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjQyNAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnQgdGltZSBpcyB1
c2VkIGZvciB0b3VjaCBldmVudCdzIHRpbWVzdGFtcCBpbnN0ZWFkIG9mIHRpbWVzdGFtcAorICAg
ICAgICB3aGVuIGV2ZW50IG9jY3Vycy4gVGltZXN0YW1wIG9mIHRvdWNoIGV2ZW50IGlzIHVzZWQg
dG8gaW1wbGVtZW50IGZsaWNrCisgICAgICAgIGdlc3R1cmUsIHNvIGl0IHNob3VsZCBiZSByZWFs
IHZhbHVlIGZvciBhY2N1cmF0ZSBnZXN0dXJlIHByb2Nlc3NpbmcuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcDoKKyAgICAgICAgKEV3a1ZpZXc6OnNldFRvdWNoRXZl
bnRzRW5hYmxlZCk6CisgICAgICAgIChFd2tWaWV3OjpmZWVkVG91Y2hFdmVudHMpOgorICAgICAg
ICAoRXdrVmlldzo6aGFuZGxlTW91c2VEb3duRm9yVG91Y2gpOgorICAgICAgICAoRXdrVmlldzo6
aGFuZGxlTW91c2VVcEZvclRvdWNoKToKKyAgICAgICAgKEV3a1ZpZXc6OmhhbmRsZU1vdXNlTW92
ZUZvclRvdWNoKToKKyAgICAgICAgKEV3a1ZpZXc6OmhhbmRsZU11bHRpRG93bkZvclRvdWNoKToK
KyAgICAgICAgKEV3a1ZpZXc6OmhhbmRsZU11bHRpVXBGb3JUb3VjaCk6CisgICAgICAgIChFd2tW
aWV3OjpoYW5kbGVNdWx0aU1vdmVGb3JUb3VjaCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9l
ZmwvRXdrVmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0dlc3R1cmVSZWNvZ25p
emVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R2VzdHVyZUhhbmRsZXI6OmhhbmRsZVBhbik6Cisg
ICAgICAgIChXZWJLaXQ6Okdlc3R1cmVSZWNvZ25pemVyOjpwcm9jZXNzVG91Y2hFdmVudCk6Cisg
ICAgICAgIChXZWJLaXQ6Okdlc3R1cmVSZWNvZ25pemVyOjpub0dlc3R1cmUpOgorICAgICAgICAo
V2ViS2l0OjpHZXN0dXJlUmVjb2duaXplcjo6c2luZ2xlVGFwR2VzdHVyZSk6CisgICAgICAgIChX
ZWJLaXQ6Okdlc3R1cmVSZWNvZ25pemVyOjpkb3VibGVUYXBHZXN0dXJlKToKKyAgICAgICAgKFdl
YktpdDo6R2VzdHVyZVJlY29nbml6ZXI6OnBhbkdlc3R1cmUpOgorICAgICAgICAoV2ViS2l0OjpH
ZXN0dXJlUmVjb2duaXplcjo6cGluY2hHZXN0dXJlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2VmbC9HZXN0dXJlUmVjb2duaXplci5oOgorCiAyMDE0LTAxLTE1ICBBbmR5IEVzdGVzICA8YWVz
dGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBQcm9wZXJseSBleGNsdWRlIHRoZSBzaGlt
IGR5bGlicyB0aGlzIHRpbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL0V3a1ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdr
Vmlldy5jcHAKaW5kZXggMzJlYzQ2MGYyNzQwNWJkNjYxYmVjMWU2MTE5OThlNzMwZGE0ZjY4Ny4u
YWEwZGRiODZkYmIxYjRjMmNiMmQ2ZTBjMTljMGEwYmFkYjdlNzk4YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKQEAgLTc3OCwxOSArNzc4LDE5IEBA
IHZvaWQgRXdrVmlldzo6c2V0VG91Y2hFdmVudHNFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICAg
ICAgLy8gc3VwcG9ydHMgdGhlIHRvdWNoIGV2ZW50cy4KICAgICAgICAgLy8gU2VlIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Nzc4NSBmb3IgZGV0YWlscy4KICAgICAg
ICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc2QgPSBzbWFydERhdGEoKTsKLSAgICAgICAgZXZhc19v
YmplY3RfZXZlbnRfY2FsbGJhY2tfYWRkKG1fZXZhc09iamVjdCwgRVZBU19DQUxMQkFDS19NT1VT
RV9ET1dOLCBoYW5kbGVUb3VjaERvd24sIHNkKTsKLSAgICAgICAgZXZhc19vYmplY3RfZXZlbnRf
Y2FsbGJhY2tfYWRkKG1fZXZhc09iamVjdCwgRVZBU19DQUxMQkFDS19NT1VTRV9VUCwgaGFuZGxl
VG91Y2hVcCwgc2QpOwotICAgICAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19hZGQobV9l
dmFzT2JqZWN0LCBFVkFTX0NBTExCQUNLX01PVVNFX01PVkUsIGhhbmRsZVRvdWNoTW92ZSwgc2Qp
OwotICAgICAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19hZGQobV9ldmFzT2JqZWN0LCBF
VkFTX0NBTExCQUNLX01VTFRJX0RPV04sIGhhbmRsZVRvdWNoRG93biwgc2QpOwotICAgICAgICBl
dmFzX29iamVjdF9ldmVudF9jYWxsYmFja19hZGQobV9ldmFzT2JqZWN0LCBFVkFTX0NBTExCQUNL
X01VTFRJX1VQLCBoYW5kbGVUb3VjaFVwLCBzZCk7Ci0gICAgICAgIGV2YXNfb2JqZWN0X2V2ZW50
X2NhbGxiYWNrX2FkZChtX2V2YXNPYmplY3QsIEVWQVNfQ0FMTEJBQ0tfTVVMVElfTU9WRSwgaGFu
ZGxlVG91Y2hNb3ZlLCBzZCk7CisgICAgICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2Fk
ZChtX2V2YXNPYmplY3QsIEVWQVNfQ0FMTEJBQ0tfTU9VU0VfRE9XTiwgaGFuZGxlTW91c2VEb3du
Rm9yVG91Y2gsIHNkKTsKKyAgICAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfYWRkKG1f
ZXZhc09iamVjdCwgRVZBU19DQUxMQkFDS19NT1VTRV9VUCwgaGFuZGxlTW91c2VVcEZvclRvdWNo
LCBzZCk7CisgICAgICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChtX2V2YXNPYmpl
Y3QsIEVWQVNfQ0FMTEJBQ0tfTU9VU0VfTU9WRSwgaGFuZGxlTW91c2VNb3ZlRm9yVG91Y2gsIHNk
KTsKKyAgICAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfYWRkKG1fZXZhc09iamVjdCwg
RVZBU19DQUxMQkFDS19NVUxUSV9ET1dOLCBoYW5kbGVNdWx0aURvd25Gb3JUb3VjaCwgc2QpOwor
ICAgICAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19hZGQobV9ldmFzT2JqZWN0LCBFVkFT
X0NBTExCQUNLX01VTFRJX1VQLCBoYW5kbGVNdWx0aVVwRm9yVG91Y2gsIHNkKTsKKyAgICAgICAg
ZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfYWRkKG1fZXZhc09iamVjdCwgRVZBU19DQUxMQkFD
S19NVUxUSV9NT1ZFLCBoYW5kbGVNdWx0aU1vdmVGb3JUb3VjaCwgc2QpOwogICAgIH0gZWxzZSB7
Ci0gICAgICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2RlbChtX2V2YXNPYmplY3QsIEVW
QVNfQ0FMTEJBQ0tfTU9VU0VfRE9XTiwgaGFuZGxlVG91Y2hEb3duKTsKLSAgICAgICAgZXZhc19v
YmplY3RfZXZlbnRfY2FsbGJhY2tfZGVsKG1fZXZhc09iamVjdCwgRVZBU19DQUxMQkFDS19NT1VT
RV9VUCwgaGFuZGxlVG91Y2hVcCk7Ci0gICAgICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNr
X2RlbChtX2V2YXNPYmplY3QsIEVWQVNfQ0FMTEJBQ0tfTU9VU0VfTU9WRSwgaGFuZGxlVG91Y2hN
b3ZlKTsKLSAgICAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfZGVsKG1fZXZhc09iamVj
dCwgRVZBU19DQUxMQkFDS19NVUxUSV9ET1dOLCBoYW5kbGVUb3VjaERvd24pOwotICAgICAgICBl
dmFzX29iamVjdF9ldmVudF9jYWxsYmFja19kZWwobV9ldmFzT2JqZWN0LCBFVkFTX0NBTExCQUNL
X01VTFRJX1VQLCBoYW5kbGVUb3VjaFVwKTsKLSAgICAgICAgZXZhc19vYmplY3RfZXZlbnRfY2Fs
bGJhY2tfZGVsKG1fZXZhc09iamVjdCwgRVZBU19DQUxMQkFDS19NVUxUSV9NT1ZFLCBoYW5kbGVU
b3VjaE1vdmUpOworICAgICAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19kZWwobV9ldmFz
T2JqZWN0LCBFVkFTX0NBTExCQUNLX01PVVNFX0RPV04sIGhhbmRsZU1vdXNlRG93bkZvclRvdWNo
KTsKKyAgICAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfZGVsKG1fZXZhc09iamVjdCwg
RVZBU19DQUxMQkFDS19NT1VTRV9VUCwgaGFuZGxlTW91c2VVcEZvclRvdWNoKTsKKyAgICAgICAg
ZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfZGVsKG1fZXZhc09iamVjdCwgRVZBU19DQUxMQkFD
S19NT1VTRV9NT1ZFLCBoYW5kbGVNb3VzZU1vdmVGb3JUb3VjaCk7CisgICAgICAgIGV2YXNfb2Jq
ZWN0X2V2ZW50X2NhbGxiYWNrX2RlbChtX2V2YXNPYmplY3QsIEVWQVNfQ0FMTEJBQ0tfTVVMVElf
RE9XTiwgaGFuZGxlTXVsdGlEb3duRm9yVG91Y2gpOworICAgICAgICBldmFzX29iamVjdF9ldmVu
dF9jYWxsYmFja19kZWwobV9ldmFzT2JqZWN0LCBFVkFTX0NBTExCQUNLX01VTFRJX1VQLCBoYW5k
bGVNdWx0aVVwRm9yVG91Y2gpOworICAgICAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19k
ZWwobV9ldmFzT2JqZWN0LCBFVkFTX0NBTExCQUNLX01VTFRJX01PVkUsIGhhbmRsZU11bHRpTW92
ZUZvclRvdWNoKTsKICAgICB9CiB9CiAKQEAgLTEzMTMsNyArMTMxMyw3IEBAIEVpbmFfQm9vbCBF
d2tWaWV3OjpoYW5kbGVFd2tWaWV3S2V5VXAoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRh
LCBjb25zdCBFdmFzCiB9CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotdm9pZCBFd2tWaWV3
OjpmZWVkVG91Y2hFdmVudHMoRXdrX1RvdWNoX0V2ZW50X1R5cGUgdHlwZSkKK3ZvaWQgRXdrVmll
dzo6ZmVlZFRvdWNoRXZlbnRzKEV3a19Ub3VjaF9FdmVudF9UeXBlIHR5cGUsIGRvdWJsZSB0aW1l
c3RhbXApCiB7CiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc2QgPSBzbWFydERhdGEoKTsKIApA
QCAtMTMzMiwyMiArMTMzMiwzNyBAQCB2b2lkIEV3a1ZpZXc6OmZlZWRUb3VjaEV2ZW50cyhFd2tf
VG91Y2hfRXZlbnRfVHlwZSB0eXBlKQogICAgIH0KICAgICBXS1JldGFpblB0cjxXS0FycmF5UmVm
PiB3a1RvdWNoUG9pbnRzKEFkb3B0V0ssIFdLQXJyYXlDcmVhdGVBZG9wdGluZ1ZhbHVlcyh0b3Vj
aFBvaW50cy5nZXQoKSwgbGVuZ3RoKSk7CiAKLSAgICBXS1ZpZXdTZW5kVG91Y2hFdmVudCh3a1Zp
ZXcoKSwgYWRvcHRXSyhXS1RvdWNoRXZlbnRDcmVhdGUoc3RhdGljX2Nhc3Q8V0tFdmVudFR5cGU+
KHR5cGUpLCB3a1RvdWNoUG9pbnRzLmdldCgpLCB0b1dLRXZlbnRNb2RpZmllcnMoZXZhc19rZXlf
bW9kaWZpZXJfZ2V0KHNkLT5iYXNlLmV2YXMpKSwgZWNvcmVfdGltZV9nZXQoKSkpLmdldCgpKTsK
KyAgICBXS1ZpZXdTZW5kVG91Y2hFdmVudCh3a1ZpZXcoKSwgYWRvcHRXSyhXS1RvdWNoRXZlbnRD
cmVhdGUoc3RhdGljX2Nhc3Q8V0tFdmVudFR5cGU+KHR5cGUpLCB3a1RvdWNoUG9pbnRzLmdldCgp
LCB0b1dLRXZlbnRNb2RpZmllcnMoZXZhc19rZXlfbW9kaWZpZXJfZ2V0KHNkLT5iYXNlLmV2YXMp
KSwgdGltZXN0YW1wKSkuZ2V0KCkpOwogfQogCi12b2lkIEV3a1ZpZXc6OmhhbmRsZVRvdWNoRG93
bih2b2lkKiAvKiBkYXRhICovLCBFdmFzKiAvKiBjYW52YXMgKi8sIEV2YXNfT2JqZWN0KiBld2tW
aWV3LCB2b2lkKiAvKiBldmVudEluZm8gKi8pCit2b2lkIEV3a1ZpZXc6OmhhbmRsZU1vdXNlRG93
bkZvclRvdWNoKHZvaWQqLCBFdmFzKiwgRXZhc19PYmplY3QqIGV3a1ZpZXcsIHZvaWQqIGV2ZW50
SW5mbykKIHsKLSAgICB0b0V3a1ZpZXcoZXdrVmlldyktPmZlZWRUb3VjaEV2ZW50cyhFV0tfVE9V
Q0hfU1RBUlQpOworICAgIHRvRXdrVmlldyhld2tWaWV3KS0+ZmVlZFRvdWNoRXZlbnRzKEVXS19U
T1VDSF9TVEFSVCwgc3RhdGljX2Nhc3Q8RXZhc19FdmVudF9Nb3VzZV9Eb3duKj4oZXZlbnRJbmZv
KS0+dGltZXN0YW1wIC8gMTAwMC4wKTsKIH0KIAotdm9pZCBFd2tWaWV3OjpoYW5kbGVUb3VjaFVw
KHZvaWQqIC8qIGRhdGEgKi8sIEV2YXMqIC8qIGNhbnZhcyAqLywgRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIHZvaWQqIC8qIGV2ZW50SW5mbyAqLykKK3ZvaWQgRXdrVmlldzo6aGFuZGxlTW91c2VVcEZv
clRvdWNoKHZvaWQqLCBFdmFzKiwgRXZhc19PYmplY3QqIGV3a1ZpZXcsIHZvaWQqIGV2ZW50SW5m
bykKIHsKLSAgICB0b0V3a1ZpZXcoZXdrVmlldyktPmZlZWRUb3VjaEV2ZW50cyhFV0tfVE9VQ0hf
RU5EKTsKKyAgICB0b0V3a1ZpZXcoZXdrVmlldyktPmZlZWRUb3VjaEV2ZW50cyhFV0tfVE9VQ0hf
RU5ELCBzdGF0aWNfY2FzdDxFdmFzX0V2ZW50X01vdXNlX1VwKj4oZXZlbnRJbmZvKS0+dGltZXN0
YW1wIC8gMTAwMC4wKTsKIH0KIAotdm9pZCBFd2tWaWV3OjpoYW5kbGVUb3VjaE1vdmUodm9pZCog
LyogZGF0YSAqLywgRXZhcyogLyogY2FudmFzICovLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9p
ZCogLyogZXZlbnRJbmZvICovKQordm9pZCBFd2tWaWV3OjpoYW5kbGVNb3VzZU1vdmVGb3JUb3Vj
aCh2b2lkKiwgRXZhcyosIEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lkKiBldmVudEluZm8pCiB7
Ci0gICAgdG9Fd2tWaWV3KGV3a1ZpZXcpLT5mZWVkVG91Y2hFdmVudHMoRVdLX1RPVUNIX01PVkUp
OworICAgIHRvRXdrVmlldyhld2tWaWV3KS0+ZmVlZFRvdWNoRXZlbnRzKEVXS19UT1VDSF9NT1ZF
LCBzdGF0aWNfY2FzdDxFdmFzX0V2ZW50X01vdXNlX01vdmUqPihldmVudEluZm8pLT50aW1lc3Rh
bXAgLyAxMDAwLjApOworfQorCit2b2lkIEV3a1ZpZXc6OmhhbmRsZU11bHRpRG93bkZvclRvdWNo
KHZvaWQqLCBFdmFzKiwgRXZhc19PYmplY3QqIGV3a1ZpZXcsIHZvaWQqIGV2ZW50SW5mbykKK3sK
KyAgICB0b0V3a1ZpZXcoZXdrVmlldyktPmZlZWRUb3VjaEV2ZW50cyhFV0tfVE9VQ0hfU1RBUlQs
IHN0YXRpY19jYXN0PEV2YXNfRXZlbnRfTXVsdGlfRG93bio+KGV2ZW50SW5mbyktPnRpbWVzdGFt
cCAvIDEwMDAuMCk7Cit9CisKK3ZvaWQgRXdrVmlldzo6aGFuZGxlTXVsdGlVcEZvclRvdWNoKHZv
aWQqLCBFdmFzKiwgRXZhc19PYmplY3QqIGV3a1ZpZXcsIHZvaWQqIGV2ZW50SW5mbykKK3sKKyAg
ICB0b0V3a1ZpZXcoZXdrVmlldyktPmZlZWRUb3VjaEV2ZW50cyhFV0tfVE9VQ0hfRU5ELCBzdGF0
aWNfY2FzdDxFdmFzX0V2ZW50X011bHRpX1VwKj4oZXZlbnRJbmZvKS0+dGltZXN0YW1wIC8gMTAw
MC4wKTsKK30KKwordm9pZCBFd2tWaWV3OjpoYW5kbGVNdWx0aU1vdmVGb3JUb3VjaCh2b2lkKiwg
RXZhcyosIEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lkKiBldmVudEluZm8pCit7CisgICAgdG9F
d2tWaWV3KGV3a1ZpZXcpLT5mZWVkVG91Y2hFdmVudHMoRVdLX1RPVUNIX01PVkUsIHN0YXRpY19j
YXN0PEV2YXNfRXZlbnRfTXVsdGlfTW92ZSo+KGV2ZW50SW5mbyktPnRpbWVzdGFtcCAvIDEwMDAu
MCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvRXdrVmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmll
dy5oCmluZGV4IDg1Mzk3OWI3NTkzYTJhMzIxNzg1YzAwY2NkZjcxY2Q3MmI2ZDhkNjAuLmM2YjIy
MDk3NWFiMDlkMjg3NGUwYmEzYjhhZmY5ZjliYTY4OTgyOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKQEAgLTIzOSwxMCArMjM5LDEzIEBAIHByaXZhdGU6
CiAgICAgc3RhdGljIEVpbmFfQm9vbCBoYW5kbGVFd2tWaWV3S2V5VXAoRXdrX1ZpZXdfU21hcnRf
RGF0YSogc21hcnREYXRhLCBjb25zdCBFdmFzX0V2ZW50X0tleV9VcCogdXBFdmVudCk7CiAKICNp
ZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgIHZvaWQgZmVlZFRvdWNoRXZlbnRzKEV3a19Ub3Vj
aF9FdmVudF9UeXBlIHR5cGUpOwotICAgIHN0YXRpYyB2b2lkIGhhbmRsZVRvdWNoRG93bih2b2lk
KiBkYXRhLCBFdmFzKiwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8pOwotICAgIHN0YXRp
YyB2b2lkIGhhbmRsZVRvdWNoVXAodm9pZCogZGF0YSwgRXZhcyosIEV2YXNfT2JqZWN0Kiwgdm9p
ZCogZXZlbnRJbmZvKTsKLSAgICBzdGF0aWMgdm9pZCBoYW5kbGVUb3VjaE1vdmUodm9pZCogZGF0
YSwgRXZhcyosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZvKTsKKyAgICB2b2lkIGZlZWRU
b3VjaEV2ZW50cyhFd2tfVG91Y2hfRXZlbnRfVHlwZSB0eXBlLCBkb3VibGUgdGltZXN0YW1wKTsK
KyAgICBzdGF0aWMgdm9pZCBoYW5kbGVNb3VzZURvd25Gb3JUb3VjaCh2b2lkKiBkYXRhLCBFdmFz
KiwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8pOworICAgIHN0YXRpYyB2b2lkIGhhbmRs
ZU1vdXNlVXBGb3JUb3VjaCh2b2lkKiBkYXRhLCBFdmFzKiwgRXZhc19PYmplY3QqLCB2b2lkKiBl
dmVudEluZm8pOworICAgIHN0YXRpYyB2b2lkIGhhbmRsZU1vdXNlTW92ZUZvclRvdWNoKHZvaWQq
IGRhdGEsIEV2YXMqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbyk7CisgICAgc3RhdGlj
IHZvaWQgaGFuZGxlTXVsdGlEb3duRm9yVG91Y2godm9pZCogZGF0YSwgRXZhcyosIEV2YXNfT2Jq
ZWN0Kiwgdm9pZCogZXZlbnRJbmZvKTsKKyAgICBzdGF0aWMgdm9pZCBoYW5kbGVNdWx0aVVwRm9y
VG91Y2godm9pZCogZGF0YSwgRXZhcyosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZvKTsK
KyAgICBzdGF0aWMgdm9pZCBoYW5kbGVNdWx0aU1vdmVGb3JUb3VjaCh2b2lkKiBkYXRhLCBFdmFz
KiwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8pOwogI2VuZGlmCiAgICAgc3RhdGljIHZv
aWQgaGFuZGxlRmF2aWNvbkNoYW5nZWQoY29uc3QgY2hhciogcGFnZVVSTCwgdm9pZCogZXZlbnRJ
bmZvKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvR2Vz
dHVyZVJlY29nbml6ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvR2Vz
dHVyZVJlY29nbml6ZXIuY3BwCmluZGV4IDM1YTJiOTI5N2M1Y2QyOGJjYTRjMGE1YzgwMzhiNTQ1
NDg4YzBhOGQuLmY0YTkxYjQzMzUwM2JmNThkMjVjN2E4Y2MwYzlmYzViNjVmYmM5ZTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0dlc3R1cmVSZWNvZ25pemVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9HZXN0dXJlUmVjb2du
aXplci5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIHZvaWQgaGFuZGxlRG91Ymxl
VGFwKGNvbnN0IEludFBvaW50Jik7CiAgICAgdm9pZCBoYW5kbGVUYXBBbmRIb2xkKGNvbnN0IElu
dFBvaW50Jik7CiAgICAgdm9pZCBoYW5kbGVQYW5TdGFydGVkKGNvbnN0IEludFBvaW50Jik7Ci0g
ICAgdm9pZCBoYW5kbGVQYW4oY29uc3QgSW50UG9pbnQmKTsKKyAgICB2b2lkIGhhbmRsZVBhbihj
b25zdCBJbnRQb2ludCYsIGRvdWJsZSB0aW1lc3RhbXApOwogICAgIHZvaWQgaGFuZGxlUGFuRmlu
aXNoZWQoKTsKICAgICB2b2lkIGhhbmRsZUZsaWNrKGNvbnN0IEludFNpemUmKTsKICAgICB2b2lk
IGhhbmRsZVBpbmNoU3RhcnRlZChjb25zdCBWZWN0b3I8SW50UG9pbnQ+Jik7CkBAIC0xOTMsMTMg
KzE5MywxMyBAQCB2b2lkIEdlc3R1cmVIYW5kbGVyOjpoYW5kbGVQYW5TdGFydGVkKGNvbnN0IElu
dFBvaW50JiBwb2ludCkKICAgICBtX2xhc3RQb2ludCA9IG1fY3VycmVudFBvaW50ID0gcG9pbnQ7
CiB9CiAKLXZvaWQgR2VzdHVyZUhhbmRsZXI6OmhhbmRsZVBhbihjb25zdCBJbnRQb2ludCYgcG9p
bnQpCit2b2lkIEdlc3R1cmVIYW5kbGVyOjpoYW5kbGVQYW4oY29uc3QgSW50UG9pbnQmIHBvaW50
LCBkb3VibGUgdGltZXN0YW1wKQogewogICAgIG1fY3VycmVudFBvaW50ID0gcG9pbnQ7CiAgICAg
bV9pc0N1cnJlbnRQb2ludFVwZGF0ZWQgPSB0cnVlOwogCiAgICAgLy8gU2F2ZSBjdXJyZW50IHBv
aW50IHRvIHVzZSB0byBjYWxjdWxhdGUgb2Zmc2V0IG9mIGZsaWNrLgotICAgIEhpc3RvcnlJdGVt
IGl0ZW0gPSB7IG1fY3VycmVudFBvaW50LCBlY29yZV90aW1lX2dldCgpIH07CisgICAgSGlzdG9y
eUl0ZW0gaXRlbSA9IHsgbV9jdXJyZW50UG9pbnQsIHRpbWVzdGFtcCB9OwogICAgIGlmIChtX2hp
c3Rvcnkuc2l6ZSgpIDwgbV9oaXN0b3J5LmNhcGFjaXR5KCkpCiAgICAgICAgIG1faGlzdG9yeS51
bmNoZWNrZWRBcHBlbmQoaXRlbSk7CiAgICAgZWxzZSB7CkBAIC0yOTUsNyArMjk1LDcgQEAgdm9p
ZCBHZXN0dXJlUmVjb2duaXplcjo6cHJvY2Vzc1RvdWNoRXZlbnQoV0tUb3VjaEV2ZW50UmVmIGV2
ZW50UmVmKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgKHRoaXMtPiptX3JlY29nbml6
ZXJGdW5jdGlvbikodHlwZSwgV0tUb3VjaEV2ZW50R2V0VG91Y2hQb2ludHMoZXZlbnRSZWYpKTsK
KyAgICAodGhpcy0+Km1fcmVjb2duaXplckZ1bmN0aW9uKShldmVudFJlZik7CiB9CiAKIEVpbmFf
Qm9vbCBHZXN0dXJlUmVjb2duaXplcjo6ZG91YmxlVGFwVGltZXJDYWxsYmFjayh2b2lkKiBkYXRh
KQpAQCAtMzUyLDE0ICszNTIsMTQgQEAgc3RhdGljIGlubGluZSBWZWN0b3I8SW50UG9pbnQ+IGNy
ZWF0ZVZlY3RvcldpdGhXS0FycmF5KFdLQXJyYXlSZWYgYXJyYXksIHNpemVfdAogICAgIHJldHVy
biBwb2ludHM7CiB9CiAKLXZvaWQgR2VzdHVyZVJlY29nbml6ZXI6Om5vR2VzdHVyZShXS0V2ZW50
VHlwZSB0eXBlLCBXS0FycmF5UmVmIHRvdWNoUG9pbnRzKQordm9pZCBHZXN0dXJlUmVjb2duaXpl
cjo6bm9HZXN0dXJlKFdLVG91Y2hFdmVudFJlZiBldmVudFJlZikKIHsKLSAgICBzd2l0Y2ggKHR5
cGUpIHsKKyAgICBzd2l0Y2ggKFdLVG91Y2hFdmVudEdldFR5cGUoZXZlbnRSZWYpKSB7CiAgICAg
Y2FzZSBrV0tFdmVudFR5cGVUb3VjaFN0YXJ0OgogICAgICAgICBtX2dlc3R1cmVIYW5kbGVyLT5y
ZXNldCgpOwogCiAgICAgICAgIG1fcmVjb2duaXplckZ1bmN0aW9uID0gJkdlc3R1cmVSZWNvZ25p
emVyOjpzaW5nbGVUYXBHZXN0dXJlOwotICAgICAgICBtX2ZpcnN0UHJlc3NlZFBvaW50ID0gdG9J
bnRQb2ludChnZXRQb2ludEF0SW5kZXgodG91Y2hQb2ludHMsIDApKTsKKyAgICAgICAgbV9maXJz
dFByZXNzZWRQb2ludCA9IHRvSW50UG9pbnQoZ2V0UG9pbnRBdEluZGV4KFdLVG91Y2hFdmVudEdl
dFRvdWNoUG9pbnRzKGV2ZW50UmVmKSwgMCkpOwogICAgICAgICBBU1NFUlQoIW1fdGFwQW5kSG9s
ZFRpbWVyKTsKICAgICAgICAgbV90YXBBbmRIb2xkVGltZXIgPSBlY29yZV90aW1lcl9hZGQoc190
YXBBbmRIb2xkVGltZW91dEluU2Vjb25kcywgdGFwQW5kSG9sZFRpbWVyQ2FsbGJhY2ssIHRoaXMp
OwogICAgICAgICBtX2RvdWJsZVRhcFRpbWVyID0gZWNvcmVfdGltZXJfYWRkKHNfZG91YmxlVGFw
VGltZW91dEluU2Vjb25kcywgZG91YmxlVGFwVGltZXJDYWxsYmFjaywgdGhpcyk7CkBAIC0zNzMs
OSArMzczLDExIEBAIHZvaWQgR2VzdHVyZVJlY29nbml6ZXI6Om5vR2VzdHVyZShXS0V2ZW50VHlw
ZSB0eXBlLCBXS0FycmF5UmVmIHRvdWNoUG9pbnRzKQogICAgIH0KIH0KIAotdm9pZCBHZXN0dXJl
UmVjb2duaXplcjo6c2luZ2xlVGFwR2VzdHVyZShXS0V2ZW50VHlwZSB0eXBlLCBXS0FycmF5UmVm
IHRvdWNoUG9pbnRzKQordm9pZCBHZXN0dXJlUmVjb2duaXplcjo6c2luZ2xlVGFwR2VzdHVyZShX
S1RvdWNoRXZlbnRSZWYgZXZlbnRSZWYpCiB7Ci0gICAgc3dpdGNoICh0eXBlKSB7CisgICAgV0tB
cnJheVJlZiB0b3VjaFBvaW50cyA9IFdLVG91Y2hFdmVudEdldFRvdWNoUG9pbnRzKGV2ZW50UmVm
KTsKKworICAgIHN3aXRjaCAoV0tUb3VjaEV2ZW50R2V0VHlwZShldmVudFJlZikpIHsKICAgICBj
YXNlIGtXS0V2ZW50VHlwZVRvdWNoU3RhcnQ6CiAgICAgICAgIHN0b3BUYXBUaW1lcnMoKTsKICAg
ICAgICAgbV9yZWNvZ25pemVyRnVuY3Rpb24gPSAmR2VzdHVyZVJlY29nbml6ZXI6OnBpbmNoR2Vz
dHVyZTsKQEAgLTQwOSw5ICs0MTEsMTEgQEAgdm9pZCBHZXN0dXJlUmVjb2duaXplcjo6c2luZ2xl
VGFwR2VzdHVyZShXS0V2ZW50VHlwZSB0eXBlLCBXS0FycmF5UmVmIHRvdWNoUG9pbnQKICAgICB9
CiB9CiAKLXZvaWQgR2VzdHVyZVJlY29nbml6ZXI6OmRvdWJsZVRhcEdlc3R1cmUoV0tFdmVudFR5
cGUgdHlwZSwgV0tBcnJheVJlZiB0b3VjaFBvaW50cykKK3ZvaWQgR2VzdHVyZVJlY29nbml6ZXI6
OmRvdWJsZVRhcEdlc3R1cmUoV0tUb3VjaEV2ZW50UmVmIGV2ZW50UmVmKQogewotICAgIHN3aXRj
aCAodHlwZSkgeworICAgIFdLQXJyYXlSZWYgdG91Y2hQb2ludHMgPSBXS1RvdWNoRXZlbnRHZXRU
b3VjaFBvaW50cyhldmVudFJlZik7CisKKyAgICBzd2l0Y2ggKFdLVG91Y2hFdmVudEdldFR5cGUo
ZXZlbnRSZWYpKSB7CiAgICAgY2FzZSBrV0tFdmVudFR5cGVUb3VjaFN0YXJ0OiB7CiAgICAgICAg
IGlmIChtX2RvdWJsZVRhcFRpbWVyKSB7CiAgICAgICAgICAgICBlY29yZV90aW1lcl9kZWwobV9k
b3VibGVUYXBUaW1lcik7CkBAIC00NDYsMTUgKzQ1MCwxNyBAQCB2b2lkIEdlc3R1cmVSZWNvZ25p
emVyOjpkb3VibGVUYXBHZXN0dXJlKFdLRXZlbnRUeXBlIHR5cGUsIFdLQXJyYXlSZWYgdG91Y2hQ
b2ludAogICAgIH0KIH0KIAotdm9pZCBHZXN0dXJlUmVjb2duaXplcjo6cGFuR2VzdHVyZShXS0V2
ZW50VHlwZSB0eXBlLCBXS0FycmF5UmVmIHRvdWNoUG9pbnRzKQordm9pZCBHZXN0dXJlUmVjb2du
aXplcjo6cGFuR2VzdHVyZShXS1RvdWNoRXZlbnRSZWYgZXZlbnRSZWYpCiB7Ci0gICAgc3dpdGNo
ICh0eXBlKSB7CisgICAgV0tBcnJheVJlZiB0b3VjaFBvaW50cyA9IFdLVG91Y2hFdmVudEdldFRv
dWNoUG9pbnRzKGV2ZW50UmVmKTsKKworICAgIHN3aXRjaCAoV0tUb3VjaEV2ZW50R2V0VHlwZShl
dmVudFJlZikpIHsKICAgICBjYXNlIGtXS0V2ZW50VHlwZVRvdWNoU3RhcnQ6CiAgICAgICAgIG1f
cmVjb2duaXplckZ1bmN0aW9uID0gJkdlc3R1cmVSZWNvZ25pemVyOjpwaW5jaEdlc3R1cmU7CiAg
ICAgICAgIG1fZ2VzdHVyZUhhbmRsZXItPmhhbmRsZVBpbmNoU3RhcnRlZChjcmVhdGVWZWN0b3JX
aXRoV0tBcnJheSh0b3VjaFBvaW50cywgMikpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtX
S0V2ZW50VHlwZVRvdWNoTW92ZToKLSAgICAgICAgbV9nZXN0dXJlSGFuZGxlci0+aGFuZGxlUGFu
KHRvSW50UG9pbnQoZ2V0UG9pbnRBdEluZGV4KHRvdWNoUG9pbnRzLCAwKSkpOworICAgICAgICBt
X2dlc3R1cmVIYW5kbGVyLT5oYW5kbGVQYW4odG9JbnRQb2ludChnZXRQb2ludEF0SW5kZXgodG91
Y2hQb2ludHMsIDApKSwgV0tUb3VjaEV2ZW50R2V0VGltZXN0YW1wKGV2ZW50UmVmKSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2Uga1dLRXZlbnRUeXBlVG91Y2hFbmQ6CiAgICAgICAgIG1fZ2Vz
dHVyZUhhbmRsZXItPmhhbmRsZVBhbkZpbmlzaGVkKCk7CkBAIC00NjYsMTIgKzQ3MiwxMyBAQCB2
b2lkIEdlc3R1cmVSZWNvZ25pemVyOjpwYW5HZXN0dXJlKFdLRXZlbnRUeXBlIHR5cGUsIFdLQXJy
YXlSZWYgdG91Y2hQb2ludHMpCiAgICAgfQogfQogCi12b2lkIEdlc3R1cmVSZWNvZ25pemVyOjpw
aW5jaEdlc3R1cmUoV0tFdmVudFR5cGUgdHlwZSwgV0tBcnJheVJlZiB0b3VjaFBvaW50cykKK3Zv
aWQgR2VzdHVyZVJlY29nbml6ZXI6OnBpbmNoR2VzdHVyZShXS1RvdWNoRXZlbnRSZWYgZXZlbnRS
ZWYpCiB7CisgICAgV0tBcnJheVJlZiB0b3VjaFBvaW50cyA9IFdLVG91Y2hFdmVudEdldFRvdWNo
UG9pbnRzKGV2ZW50UmVmKTsKICAgICBzaXplX3QgbnVtYmVyT2ZUb3VjaFBvaW50cyA9IFdLQXJy
YXlHZXRTaXplKHRvdWNoUG9pbnRzKTsKICAgICBBU1NFUlQobnVtYmVyT2ZUb3VjaFBvaW50cyA+
PSAyKTsKIAotICAgIHN3aXRjaCAodHlwZSkgeworICAgIHN3aXRjaCAoV0tUb3VjaEV2ZW50R2V0
VHlwZShldmVudFJlZikpIHsKICAgICBjYXNlIGtXS0V2ZW50VHlwZVRvdWNoTW92ZTogewogICAg
ICAgICBtX2dlc3R1cmVIYW5kbGVyLT5oYW5kbGVQaW5jaChjcmVhdGVWZWN0b3JXaXRoV0tBcnJh
eSh0b3VjaFBvaW50cywgMikpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0dlc3R1cmVSZWNvZ25pemVyLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9HZXN0dXJlUmVjb2duaXplci5oCmluZGV4IGMxZjlkNzBi
MzgwYjMyNzYyMzkyZDc2ZTE5MDNjYmU2NDUyNDU0ZDAuLmZlNzdiNmQ0ODcwNDAwYzA4ZmVlZjNm
ZTM0NmYzMGVmNGU3YTFiMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL0dlc3R1cmVSZWNvZ25pemVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvR2VzdHVyZVJlY29nbml6ZXIuaApAQCAtNTYsMTEgKzU2LDExIEBAIHByaXZhdGU6
CiAgICAgYm9vbCBleGNlZWRzRG91YmxlVGFwVGhyZXNob2xkKGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBmaXJzdCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGxhc3QpIGNvbnN0OwogCiAgICAg
Ly8gU3RhdGUgZnVuY3Rpb25zLgotICAgIHZvaWQgbm9HZXN0dXJlKFdLRXZlbnRUeXBlLCBXS0Fy
cmF5UmVmKTsKLSAgICB2b2lkIHNpbmdsZVRhcEdlc3R1cmUoV0tFdmVudFR5cGUsIFdLQXJyYXlS
ZWYpOwotICAgIHZvaWQgZG91YmxlVGFwR2VzdHVyZShXS0V2ZW50VHlwZSwgV0tBcnJheVJlZik7
Ci0gICAgdm9pZCBwYW5HZXN0dXJlKFdLRXZlbnRUeXBlLCBXS0FycmF5UmVmKTsKLSAgICB2b2lk
IHBpbmNoR2VzdHVyZShXS0V2ZW50VHlwZSwgV0tBcnJheVJlZik7CisgICAgdm9pZCBub0dlc3R1
cmUoV0tUb3VjaEV2ZW50UmVmKTsKKyAgICB2b2lkIHNpbmdsZVRhcEdlc3R1cmUoV0tUb3VjaEV2
ZW50UmVmKTsKKyAgICB2b2lkIGRvdWJsZVRhcEdlc3R1cmUoV0tUb3VjaEV2ZW50UmVmKTsKKyAg
ICB2b2lkIHBhbkdlc3R1cmUoV0tUb3VjaEV2ZW50UmVmKTsKKyAgICB2b2lkIHBpbmNoR2VzdHVy
ZShXS1RvdWNoRXZlbnRSZWYpOwogCiAgICAgdm9pZCBzdG9wVGFwVGltZXJzKCk7CiAKQEAgLTY5
LDcgKzY5LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgaW50IHNfc3F1YXJlZERvdWJs
ZVRhcFRocmVzaG9sZDsKICAgICBzdGF0aWMgY29uc3QgaW50IHNfc3F1YXJlZFBhblRocmVzaG9s
ZDsKIAotICAgIHR5cGVkZWYgdm9pZCAoR2VzdHVyZVJlY29nbml6ZXI6OipSZWNvZ25pemVyRnVu
Y3Rpb24pKFdLRXZlbnRUeXBlLCBXS0FycmF5UmVmKTsKKyAgICB0eXBlZGVmIHZvaWQgKEdlc3R1
cmVSZWNvZ25pemVyOjoqUmVjb2duaXplckZ1bmN0aW9uKShXS1RvdWNoRXZlbnRSZWYpOwogICAg
IFJlY29nbml6ZXJGdW5jdGlvbiBtX3JlY29nbml6ZXJGdW5jdGlvbjsKIAogICAgIHN0ZDo6dW5p
cXVlX3B0cjxXZWJLaXQ6Okdlc3R1cmVIYW5kbGVyPiBtX2dlc3R1cmVIYW5kbGVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221325</attachid>
            <date>2014-01-15 20:21:43 -0800</date>
            <delta_ts>2014-01-15 20:24:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126424-20140116132141.patch</filename>
            <type>text/plain</type>
            <size>15669</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyMTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDc4OGFlNmIzY2M3ZGY4
NzI5NzRhYWI0MzNjYjk2NTUyNzZiZWZmYy4uMDNiOWY3MTNkNDEwNTQ4MTY4MzNhNDg1YWEzNjNh
M2Q4OGM1OTc2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE0LTAxLTE1ICBFdW5t
aSBMZWUgIDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFVz
ZSB0aW1lc3RhbXAgd2hlbiBldmVudCBvY2N1cnMgZm9yIHRvdWNoIGV2ZW50cy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjQyNAorCisgICAgICAg
IFJldmlld2VkIGJ5IEd5dXlvdW5nIEtpbS4KKworICAgICAgICBDdXJyZW50IHRpbWUgaXMgdXNl
ZCBmb3IgdG91Y2ggZXZlbnQncyB0aW1lc3RhbXAgaW5zdGVhZCBvZiB0aW1lc3RhbXAKKyAgICAg
ICAgd2hlbiBldmVudCBvY2N1cnMuIFRpbWVzdGFtcCBvZiB0b3VjaCBldmVudCBpcyB1c2VkIHRv
IGltcGxlbWVudCBmbGljaworICAgICAgICBnZXN0dXJlLCBzbyBpdCBzaG91bGQgYmUgcmVhbCB2
YWx1ZSBmb3IgYWNjdXJhdGUgZ2VzdHVyZSBwcm9jZXNzaW5nLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvRXdrVmlldy5jcHA6CisgICAgICAgIEZ1bmN0aW9uIG5hbWVzIGZvciBoYW5k
bGluZyB0b3VjaCBldmVudHMgYXJlIGNoYW5nZWQgdG8gZGlzdGluZ3Vpc2gKKyAgICAgICAgbW91
c2UgZXZlbnRzIGFuZCBtdWx0aSBldmVudHMuCisgICAgICAgIChFd2tWaWV3OjpzZXRUb3VjaEV2
ZW50c0VuYWJsZWQpOgorICAgICAgICAoRXdrVmlldzo6ZmVlZFRvdWNoRXZlbnRzKToKKyAgICAg
ICAgKEV3a1ZpZXc6OmhhbmRsZU1vdXNlRG93bkZvclRvdWNoKToKKyAgICAgICAgKEV3a1ZpZXc6
OmhhbmRsZU1vdXNlVXBGb3JUb3VjaCk6CisgICAgICAgIChFd2tWaWV3OjpoYW5kbGVNb3VzZU1v
dmVGb3JUb3VjaCk6CisgICAgICAgIChFd2tWaWV3OjpoYW5kbGVNdWx0aURvd25Gb3JUb3VjaCk6
CisgICAgICAgIChFd2tWaWV3OjpoYW5kbGVNdWx0aVVwRm9yVG91Y2gpOgorICAgICAgICAoRXdr
Vmlldzo6aGFuZGxlTXVsdGlNb3ZlRm9yVG91Y2gpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL0V3a1ZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9HZXN0dXJlUmVjb2du
aXplci5jcHA6CisgICAgICAgIChXZWJLaXQ6Okdlc3R1cmVIYW5kbGVyOjpoYW5kbGVQYW4pOgor
ICAgICAgICAoV2ViS2l0OjpHZXN0dXJlUmVjb2duaXplcjo6cHJvY2Vzc1RvdWNoRXZlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpHZXN0dXJlUmVjb2duaXplcjo6bm9HZXN0dXJlKToKKyAgICAgICAg
KFdlYktpdDo6R2VzdHVyZVJlY29nbml6ZXI6OnNpbmdsZVRhcEdlc3R1cmUpOgorICAgICAgICAo
V2ViS2l0OjpHZXN0dXJlUmVjb2duaXplcjo6ZG91YmxlVGFwR2VzdHVyZSk6CisgICAgICAgIChX
ZWJLaXQ6Okdlc3R1cmVSZWNvZ25pemVyOjpwYW5HZXN0dXJlKToKKyAgICAgICAgKFdlYktpdDo6
R2VzdHVyZVJlY29nbml6ZXI6OnBpbmNoR2VzdHVyZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9lZmwvR2VzdHVyZVJlY29nbml6ZXIuaDoKKwogMjAxNC0wMS0xNSAgQW5keSBFc3RlcyAgPGFl
c3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gUHJvcGVybHkgZXhjbHVkZSB0aGUgc2hp
bSBkeWxpYnMgdGhpcyB0aW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9Fd2tWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3
a1ZpZXcuY3BwCmluZGV4IDMyZWM0NjBmMjc0MDViZDY2MWJlYzFlNjExOTk4ZTczMGRhNGY2ODcu
LmFhMGRkYjg2ZGJiMWI0YzJjYjJkNmUwYzE5YzBhMGJhZGI3ZTc5OGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCkBAIC03NzgsMTkgKzc3OCwxOSBA
QCB2b2lkIEV3a1ZpZXc6OnNldFRvdWNoRXZlbnRzRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAg
ICAgIC8vIHN1cHBvcnRzIHRoZSB0b3VjaCBldmVudHMuCiAgICAgICAgIC8vIFNlZSBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc3ODUgZm9yIGRldGFpbHMuCiAgICAg
ICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkID0gc21hcnREYXRhKCk7Ci0gICAgICAgIGV2YXNf
b2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChtX2V2YXNPYmplY3QsIEVWQVNfQ0FMTEJBQ0tfTU9V
U0VfRE9XTiwgaGFuZGxlVG91Y2hEb3duLCBzZCk7Ci0gICAgICAgIGV2YXNfb2JqZWN0X2V2ZW50
X2NhbGxiYWNrX2FkZChtX2V2YXNPYmplY3QsIEVWQVNfQ0FMTEJBQ0tfTU9VU0VfVVAsIGhhbmRs
ZVRvdWNoVXAsIHNkKTsKLSAgICAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfYWRkKG1f
ZXZhc09iamVjdCwgRVZBU19DQUxMQkFDS19NT1VTRV9NT1ZFLCBoYW5kbGVUb3VjaE1vdmUsIHNk
KTsKLSAgICAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfYWRkKG1fZXZhc09iamVjdCwg
RVZBU19DQUxMQkFDS19NVUxUSV9ET1dOLCBoYW5kbGVUb3VjaERvd24sIHNkKTsKLSAgICAgICAg
ZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfYWRkKG1fZXZhc09iamVjdCwgRVZBU19DQUxMQkFD
S19NVUxUSV9VUCwgaGFuZGxlVG91Y2hVcCwgc2QpOwotICAgICAgICBldmFzX29iamVjdF9ldmVu
dF9jYWxsYmFja19hZGQobV9ldmFzT2JqZWN0LCBFVkFTX0NBTExCQUNLX01VTFRJX01PVkUsIGhh
bmRsZVRvdWNoTW92ZSwgc2QpOworICAgICAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19h
ZGQobV9ldmFzT2JqZWN0LCBFVkFTX0NBTExCQUNLX01PVVNFX0RPV04sIGhhbmRsZU1vdXNlRG93
bkZvclRvdWNoLCBzZCk7CisgICAgICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZCht
X2V2YXNPYmplY3QsIEVWQVNfQ0FMTEJBQ0tfTU9VU0VfVVAsIGhhbmRsZU1vdXNlVXBGb3JUb3Vj
aCwgc2QpOworICAgICAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19hZGQobV9ldmFzT2Jq
ZWN0LCBFVkFTX0NBTExCQUNLX01PVVNFX01PVkUsIGhhbmRsZU1vdXNlTW92ZUZvclRvdWNoLCBz
ZCk7CisgICAgICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChtX2V2YXNPYmplY3Qs
IEVWQVNfQ0FMTEJBQ0tfTVVMVElfRE9XTiwgaGFuZGxlTXVsdGlEb3duRm9yVG91Y2gsIHNkKTsK
KyAgICAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfYWRkKG1fZXZhc09iamVjdCwgRVZB
U19DQUxMQkFDS19NVUxUSV9VUCwgaGFuZGxlTXVsdGlVcEZvclRvdWNoLCBzZCk7CisgICAgICAg
IGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChtX2V2YXNPYmplY3QsIEVWQVNfQ0FMTEJB
Q0tfTVVMVElfTU9WRSwgaGFuZGxlTXVsdGlNb3ZlRm9yVG91Y2gsIHNkKTsKICAgICB9IGVsc2Ug
ewotICAgICAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19kZWwobV9ldmFzT2JqZWN0LCBF
VkFTX0NBTExCQUNLX01PVVNFX0RPV04sIGhhbmRsZVRvdWNoRG93bik7Ci0gICAgICAgIGV2YXNf
b2JqZWN0X2V2ZW50X2NhbGxiYWNrX2RlbChtX2V2YXNPYmplY3QsIEVWQVNfQ0FMTEJBQ0tfTU9V
U0VfVVAsIGhhbmRsZVRvdWNoVXApOwotICAgICAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFj
a19kZWwobV9ldmFzT2JqZWN0LCBFVkFTX0NBTExCQUNLX01PVVNFX01PVkUsIGhhbmRsZVRvdWNo
TW92ZSk7Ci0gICAgICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2RlbChtX2V2YXNPYmpl
Y3QsIEVWQVNfQ0FMTEJBQ0tfTVVMVElfRE9XTiwgaGFuZGxlVG91Y2hEb3duKTsKLSAgICAgICAg
ZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfZGVsKG1fZXZhc09iamVjdCwgRVZBU19DQUxMQkFD
S19NVUxUSV9VUCwgaGFuZGxlVG91Y2hVcCk7Ci0gICAgICAgIGV2YXNfb2JqZWN0X2V2ZW50X2Nh
bGxiYWNrX2RlbChtX2V2YXNPYmplY3QsIEVWQVNfQ0FMTEJBQ0tfTVVMVElfTU9WRSwgaGFuZGxl
VG91Y2hNb3ZlKTsKKyAgICAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfZGVsKG1fZXZh
c09iamVjdCwgRVZBU19DQUxMQkFDS19NT1VTRV9ET1dOLCBoYW5kbGVNb3VzZURvd25Gb3JUb3Vj
aCk7CisgICAgICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2RlbChtX2V2YXNPYmplY3Qs
IEVWQVNfQ0FMTEJBQ0tfTU9VU0VfVVAsIGhhbmRsZU1vdXNlVXBGb3JUb3VjaCk7CisgICAgICAg
IGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2RlbChtX2V2YXNPYmplY3QsIEVWQVNfQ0FMTEJB
Q0tfTU9VU0VfTU9WRSwgaGFuZGxlTW91c2VNb3ZlRm9yVG91Y2gpOworICAgICAgICBldmFzX29i
amVjdF9ldmVudF9jYWxsYmFja19kZWwobV9ldmFzT2JqZWN0LCBFVkFTX0NBTExCQUNLX01VTFRJ
X0RPV04sIGhhbmRsZU11bHRpRG93bkZvclRvdWNoKTsKKyAgICAgICAgZXZhc19vYmplY3RfZXZl
bnRfY2FsbGJhY2tfZGVsKG1fZXZhc09iamVjdCwgRVZBU19DQUxMQkFDS19NVUxUSV9VUCwgaGFu
ZGxlTXVsdGlVcEZvclRvdWNoKTsKKyAgICAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tf
ZGVsKG1fZXZhc09iamVjdCwgRVZBU19DQUxMQkFDS19NVUxUSV9NT1ZFLCBoYW5kbGVNdWx0aU1v
dmVGb3JUb3VjaCk7CiAgICAgfQogfQogCkBAIC0xMzEzLDcgKzEzMTMsNyBAQCBFaW5hX0Jvb2wg
RXdrVmlldzo6aGFuZGxlRXdrVmlld0tleVVwKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0
YSwgY29uc3QgRXZhcwogfQogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLXZvaWQgRXdrVmll
dzo6ZmVlZFRvdWNoRXZlbnRzKEV3a19Ub3VjaF9FdmVudF9UeXBlIHR5cGUpCit2b2lkIEV3a1Zp
ZXc6OmZlZWRUb3VjaEV2ZW50cyhFd2tfVG91Y2hfRXZlbnRfVHlwZSB0eXBlLCBkb3VibGUgdGlt
ZXN0YW1wKQogewogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkID0gc21hcnREYXRhKCk7CiAK
QEAgLTEzMzIsMjIgKzEzMzIsMzcgQEAgdm9pZCBFd2tWaWV3OjpmZWVkVG91Y2hFdmVudHMoRXdr
X1RvdWNoX0V2ZW50X1R5cGUgdHlwZSkKICAgICB9CiAgICAgV0tSZXRhaW5QdHI8V0tBcnJheVJl
Zj4gd2tUb3VjaFBvaW50cyhBZG9wdFdLLCBXS0FycmF5Q3JlYXRlQWRvcHRpbmdWYWx1ZXModG91
Y2hQb2ludHMuZ2V0KCksIGxlbmd0aCkpOwogCi0gICAgV0tWaWV3U2VuZFRvdWNoRXZlbnQod2tW
aWV3KCksIGFkb3B0V0soV0tUb3VjaEV2ZW50Q3JlYXRlKHN0YXRpY19jYXN0PFdLRXZlbnRUeXBl
Pih0eXBlKSwgd2tUb3VjaFBvaW50cy5nZXQoKSwgdG9XS0V2ZW50TW9kaWZpZXJzKGV2YXNfa2V5
X21vZGlmaWVyX2dldChzZC0+YmFzZS5ldmFzKSksIGVjb3JlX3RpbWVfZ2V0KCkpKS5nZXQoKSk7
CisgICAgV0tWaWV3U2VuZFRvdWNoRXZlbnQod2tWaWV3KCksIGFkb3B0V0soV0tUb3VjaEV2ZW50
Q3JlYXRlKHN0YXRpY19jYXN0PFdLRXZlbnRUeXBlPih0eXBlKSwgd2tUb3VjaFBvaW50cy5nZXQo
KSwgdG9XS0V2ZW50TW9kaWZpZXJzKGV2YXNfa2V5X21vZGlmaWVyX2dldChzZC0+YmFzZS5ldmFz
KSksIHRpbWVzdGFtcCkpLmdldCgpKTsKIH0KIAotdm9pZCBFd2tWaWV3OjpoYW5kbGVUb3VjaERv
d24odm9pZCogLyogZGF0YSAqLywgRXZhcyogLyogY2FudmFzICovLCBFdmFzX09iamVjdCogZXdr
Vmlldywgdm9pZCogLyogZXZlbnRJbmZvICovKQordm9pZCBFd2tWaWV3OjpoYW5kbGVNb3VzZURv
d25Gb3JUb3VjaCh2b2lkKiwgRXZhcyosIEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lkKiBldmVu
dEluZm8pCiB7Ci0gICAgdG9Fd2tWaWV3KGV3a1ZpZXcpLT5mZWVkVG91Y2hFdmVudHMoRVdLX1RP
VUNIX1NUQVJUKTsKKyAgICB0b0V3a1ZpZXcoZXdrVmlldyktPmZlZWRUb3VjaEV2ZW50cyhFV0tf
VE9VQ0hfU1RBUlQsIHN0YXRpY19jYXN0PEV2YXNfRXZlbnRfTW91c2VfRG93bio+KGV2ZW50SW5m
byktPnRpbWVzdGFtcCAvIDEwMDAuMCk7CiB9CiAKLXZvaWQgRXdrVmlldzo6aGFuZGxlVG91Y2hV
cCh2b2lkKiAvKiBkYXRhICovLCBFdmFzKiAvKiBjYW52YXMgKi8sIEV2YXNfT2JqZWN0KiBld2tW
aWV3LCB2b2lkKiAvKiBldmVudEluZm8gKi8pCit2b2lkIEV3a1ZpZXc6OmhhbmRsZU1vdXNlVXBG
b3JUb3VjaCh2b2lkKiwgRXZhcyosIEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lkKiBldmVudElu
Zm8pCiB7Ci0gICAgdG9Fd2tWaWV3KGV3a1ZpZXcpLT5mZWVkVG91Y2hFdmVudHMoRVdLX1RPVUNI
X0VORCk7CisgICAgdG9Fd2tWaWV3KGV3a1ZpZXcpLT5mZWVkVG91Y2hFdmVudHMoRVdLX1RPVUNI
X0VORCwgc3RhdGljX2Nhc3Q8RXZhc19FdmVudF9Nb3VzZV9VcCo+KGV2ZW50SW5mbyktPnRpbWVz
dGFtcCAvIDEwMDAuMCk7CiB9CiAKLXZvaWQgRXdrVmlldzo6aGFuZGxlVG91Y2hNb3ZlKHZvaWQq
IC8qIGRhdGEgKi8sIEV2YXMqIC8qIGNhbnZhcyAqLywgRXZhc19PYmplY3QqIGV3a1ZpZXcsIHZv
aWQqIC8qIGV2ZW50SW5mbyAqLykKK3ZvaWQgRXdrVmlldzo6aGFuZGxlTW91c2VNb3ZlRm9yVG91
Y2godm9pZCosIEV2YXMqLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJbmZvKQog
ewotICAgIHRvRXdrVmlldyhld2tWaWV3KS0+ZmVlZFRvdWNoRXZlbnRzKEVXS19UT1VDSF9NT1ZF
KTsKKyAgICB0b0V3a1ZpZXcoZXdrVmlldyktPmZlZWRUb3VjaEV2ZW50cyhFV0tfVE9VQ0hfTU9W
RSwgc3RhdGljX2Nhc3Q8RXZhc19FdmVudF9Nb3VzZV9Nb3ZlKj4oZXZlbnRJbmZvKS0+dGltZXN0
YW1wIC8gMTAwMC4wKTsKK30KKwordm9pZCBFd2tWaWV3OjpoYW5kbGVNdWx0aURvd25Gb3JUb3Vj
aCh2b2lkKiwgRXZhcyosIEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lkKiBldmVudEluZm8pCit7
CisgICAgdG9Fd2tWaWV3KGV3a1ZpZXcpLT5mZWVkVG91Y2hFdmVudHMoRVdLX1RPVUNIX1NUQVJU
LCBzdGF0aWNfY2FzdDxFdmFzX0V2ZW50X011bHRpX0Rvd24qPihldmVudEluZm8pLT50aW1lc3Rh
bXAgLyAxMDAwLjApOworfQorCit2b2lkIEV3a1ZpZXc6OmhhbmRsZU11bHRpVXBGb3JUb3VjaCh2
b2lkKiwgRXZhcyosIEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lkKiBldmVudEluZm8pCit7Cisg
ICAgdG9Fd2tWaWV3KGV3a1ZpZXcpLT5mZWVkVG91Y2hFdmVudHMoRVdLX1RPVUNIX0VORCwgc3Rh
dGljX2Nhc3Q8RXZhc19FdmVudF9NdWx0aV9VcCo+KGV2ZW50SW5mbyktPnRpbWVzdGFtcCAvIDEw
MDAuMCk7Cit9CisKK3ZvaWQgRXdrVmlldzo6aGFuZGxlTXVsdGlNb3ZlRm9yVG91Y2godm9pZCos
IEV2YXMqLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCogZXZlbnRJbmZvKQoreworICAgIHRv
RXdrVmlldyhld2tWaWV3KS0+ZmVlZFRvdWNoRXZlbnRzKEVXS19UT1VDSF9NT1ZFLCBzdGF0aWNf
Y2FzdDxFdmFzX0V2ZW50X011bHRpX01vdmUqPihldmVudEluZm8pLT50aW1lc3RhbXAgLyAxMDAw
LjApOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL0V3a1ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1Zp
ZXcuaAppbmRleCA4NTM5NzliNzU5M2EyYTMyMTc4NWMwMGNjZGY3MWNkNzJiNmQ4ZDYwLi5jNmIy
MjA5NzVhYjA5ZDI4NzRlMGJhM2I4YWZmOWY5YmE2ODk4Mjk4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCkBAIC0yMzksMTAgKzIzOSwxMyBAQCBwcml2YXRl
OgogICAgIHN0YXRpYyBFaW5hX0Jvb2wgaGFuZGxlRXdrVmlld0tleVVwKEV3a19WaWV3X1NtYXJ0
X0RhdGEqIHNtYXJ0RGF0YSwgY29uc3QgRXZhc19FdmVudF9LZXlfVXAqIHVwRXZlbnQpOwogCiAj
aWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLSAgICB2b2lkIGZlZWRUb3VjaEV2ZW50cyhFd2tfVG91
Y2hfRXZlbnRfVHlwZSB0eXBlKTsKLSAgICBzdGF0aWMgdm9pZCBoYW5kbGVUb3VjaERvd24odm9p
ZCogZGF0YSwgRXZhcyosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZvKTsKLSAgICBzdGF0
aWMgdm9pZCBoYW5kbGVUb3VjaFVwKHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09iamVjdCosIHZv
aWQqIGV2ZW50SW5mbyk7Ci0gICAgc3RhdGljIHZvaWQgaGFuZGxlVG91Y2hNb3ZlKHZvaWQqIGRh
dGEsIEV2YXMqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbyk7CisgICAgdm9pZCBmZWVk
VG91Y2hFdmVudHMoRXdrX1RvdWNoX0V2ZW50X1R5cGUgdHlwZSwgZG91YmxlIHRpbWVzdGFtcCk7
CisgICAgc3RhdGljIHZvaWQgaGFuZGxlTW91c2VEb3duRm9yVG91Y2godm9pZCogZGF0YSwgRXZh
cyosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZvKTsKKyAgICBzdGF0aWMgdm9pZCBoYW5k
bGVNb3VzZVVwRm9yVG91Y2godm9pZCogZGF0YSwgRXZhcyosIEV2YXNfT2JqZWN0Kiwgdm9pZCog
ZXZlbnRJbmZvKTsKKyAgICBzdGF0aWMgdm9pZCBoYW5kbGVNb3VzZU1vdmVGb3JUb3VjaCh2b2lk
KiBkYXRhLCBFdmFzKiwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8pOworICAgIHN0YXRp
YyB2b2lkIGhhbmRsZU11bHRpRG93bkZvclRvdWNoKHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09i
amVjdCosIHZvaWQqIGV2ZW50SW5mbyk7CisgICAgc3RhdGljIHZvaWQgaGFuZGxlTXVsdGlVcEZv
clRvdWNoKHZvaWQqIGRhdGEsIEV2YXMqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbyk7
CisgICAgc3RhdGljIHZvaWQgaGFuZGxlTXVsdGlNb3ZlRm9yVG91Y2godm9pZCogZGF0YSwgRXZh
cyosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZvKTsKICNlbmRpZgogICAgIHN0YXRpYyB2
b2lkIGhhbmRsZUZhdmljb25DaGFuZ2VkKGNvbnN0IGNoYXIqIHBhZ2VVUkwsIHZvaWQqIGV2ZW50
SW5mbyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0dl
c3R1cmVSZWNvZ25pemVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0dl
c3R1cmVSZWNvZ25pemVyLmNwcAppbmRleCAzNWEyYjkyOTdjNWNkMjhiY2E0YzBhNWM4MDM4YjU0
NTQ4OGMwYThkLi5mNGE5MWI0MzM1MDNiZjU4ZDI1YzdhOGNjMGM5ZmM1YjY1ZmJjOWU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9HZXN0dXJlUmVjb2duaXpl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvR2VzdHVyZVJlY29n
bml6ZXIuY3BwCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGhhbmRsZURvdWJs
ZVRhcChjb25zdCBJbnRQb2ludCYpOwogICAgIHZvaWQgaGFuZGxlVGFwQW5kSG9sZChjb25zdCBJ
bnRQb2ludCYpOwogICAgIHZvaWQgaGFuZGxlUGFuU3RhcnRlZChjb25zdCBJbnRQb2ludCYpOwot
ICAgIHZvaWQgaGFuZGxlUGFuKGNvbnN0IEludFBvaW50Jik7CisgICAgdm9pZCBoYW5kbGVQYW4o
Y29uc3QgSW50UG9pbnQmLCBkb3VibGUgdGltZXN0YW1wKTsKICAgICB2b2lkIGhhbmRsZVBhbkZp
bmlzaGVkKCk7CiAgICAgdm9pZCBoYW5kbGVGbGljayhjb25zdCBJbnRTaXplJik7CiAgICAgdm9p
ZCBoYW5kbGVQaW5jaFN0YXJ0ZWQoY29uc3QgVmVjdG9yPEludFBvaW50PiYpOwpAQCAtMTkzLDEz
ICsxOTMsMTMgQEAgdm9pZCBHZXN0dXJlSGFuZGxlcjo6aGFuZGxlUGFuU3RhcnRlZChjb25zdCBJ
bnRQb2ludCYgcG9pbnQpCiAgICAgbV9sYXN0UG9pbnQgPSBtX2N1cnJlbnRQb2ludCA9IHBvaW50
OwogfQogCi12b2lkIEdlc3R1cmVIYW5kbGVyOjpoYW5kbGVQYW4oY29uc3QgSW50UG9pbnQmIHBv
aW50KQordm9pZCBHZXN0dXJlSGFuZGxlcjo6aGFuZGxlUGFuKGNvbnN0IEludFBvaW50JiBwb2lu
dCwgZG91YmxlIHRpbWVzdGFtcCkKIHsKICAgICBtX2N1cnJlbnRQb2ludCA9IHBvaW50OwogICAg
IG1faXNDdXJyZW50UG9pbnRVcGRhdGVkID0gdHJ1ZTsKIAogICAgIC8vIFNhdmUgY3VycmVudCBw
b2ludCB0byB1c2UgdG8gY2FsY3VsYXRlIG9mZnNldCBvZiBmbGljay4KLSAgICBIaXN0b3J5SXRl
bSBpdGVtID0geyBtX2N1cnJlbnRQb2ludCwgZWNvcmVfdGltZV9nZXQoKSB9OworICAgIEhpc3Rv
cnlJdGVtIGl0ZW0gPSB7IG1fY3VycmVudFBvaW50LCB0aW1lc3RhbXAgfTsKICAgICBpZiAobV9o
aXN0b3J5LnNpemUoKSA8IG1faGlzdG9yeS5jYXBhY2l0eSgpKQogICAgICAgICBtX2hpc3Rvcnku
dW5jaGVja2VkQXBwZW5kKGl0ZW0pOwogICAgIGVsc2UgewpAQCAtMjk1LDcgKzI5NSw3IEBAIHZv
aWQgR2VzdHVyZVJlY29nbml6ZXI6OnByb2Nlc3NUb3VjaEV2ZW50KFdLVG91Y2hFdmVudFJlZiBl
dmVudFJlZikKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgICh0aGlzLT4qbV9yZWNvZ25p
emVyRnVuY3Rpb24pKHR5cGUsIFdLVG91Y2hFdmVudEdldFRvdWNoUG9pbnRzKGV2ZW50UmVmKSk7
CisgICAgKHRoaXMtPiptX3JlY29nbml6ZXJGdW5jdGlvbikoZXZlbnRSZWYpOwogfQogCiBFaW5h
X0Jvb2wgR2VzdHVyZVJlY29nbml6ZXI6OmRvdWJsZVRhcFRpbWVyQ2FsbGJhY2sodm9pZCogZGF0
YSkKQEAgLTM1MiwxNCArMzUyLDE0IEBAIHN0YXRpYyBpbmxpbmUgVmVjdG9yPEludFBvaW50PiBj
cmVhdGVWZWN0b3JXaXRoV0tBcnJheShXS0FycmF5UmVmIGFycmF5LCBzaXplX3QKICAgICByZXR1
cm4gcG9pbnRzOwogfQogCi12b2lkIEdlc3R1cmVSZWNvZ25pemVyOjpub0dlc3R1cmUoV0tFdmVu
dFR5cGUgdHlwZSwgV0tBcnJheVJlZiB0b3VjaFBvaW50cykKK3ZvaWQgR2VzdHVyZVJlY29nbml6
ZXI6Om5vR2VzdHVyZShXS1RvdWNoRXZlbnRSZWYgZXZlbnRSZWYpCiB7Ci0gICAgc3dpdGNoICh0
eXBlKSB7CisgICAgc3dpdGNoIChXS1RvdWNoRXZlbnRHZXRUeXBlKGV2ZW50UmVmKSkgewogICAg
IGNhc2Uga1dLRXZlbnRUeXBlVG91Y2hTdGFydDoKICAgICAgICAgbV9nZXN0dXJlSGFuZGxlci0+
cmVzZXQoKTsKIAogICAgICAgICBtX3JlY29nbml6ZXJGdW5jdGlvbiA9ICZHZXN0dXJlUmVjb2du
aXplcjo6c2luZ2xlVGFwR2VzdHVyZTsKLSAgICAgICAgbV9maXJzdFByZXNzZWRQb2ludCA9IHRv
SW50UG9pbnQoZ2V0UG9pbnRBdEluZGV4KHRvdWNoUG9pbnRzLCAwKSk7CisgICAgICAgIG1fZmly
c3RQcmVzc2VkUG9pbnQgPSB0b0ludFBvaW50KGdldFBvaW50QXRJbmRleChXS1RvdWNoRXZlbnRH
ZXRUb3VjaFBvaW50cyhldmVudFJlZiksIDApKTsKICAgICAgICAgQVNTRVJUKCFtX3RhcEFuZEhv
bGRUaW1lcik7CiAgICAgICAgIG1fdGFwQW5kSG9sZFRpbWVyID0gZWNvcmVfdGltZXJfYWRkKHNf
dGFwQW5kSG9sZFRpbWVvdXRJblNlY29uZHMsIHRhcEFuZEhvbGRUaW1lckNhbGxiYWNrLCB0aGlz
KTsKICAgICAgICAgbV9kb3VibGVUYXBUaW1lciA9IGVjb3JlX3RpbWVyX2FkZChzX2RvdWJsZVRh
cFRpbWVvdXRJblNlY29uZHMsIGRvdWJsZVRhcFRpbWVyQ2FsbGJhY2ssIHRoaXMpOwpAQCAtMzcz
LDkgKzM3MywxMSBAQCB2b2lkIEdlc3R1cmVSZWNvZ25pemVyOjpub0dlc3R1cmUoV0tFdmVudFR5
cGUgdHlwZSwgV0tBcnJheVJlZiB0b3VjaFBvaW50cykKICAgICB9CiB9CiAKLXZvaWQgR2VzdHVy
ZVJlY29nbml6ZXI6OnNpbmdsZVRhcEdlc3R1cmUoV0tFdmVudFR5cGUgdHlwZSwgV0tBcnJheVJl
ZiB0b3VjaFBvaW50cykKK3ZvaWQgR2VzdHVyZVJlY29nbml6ZXI6OnNpbmdsZVRhcEdlc3R1cmUo
V0tUb3VjaEV2ZW50UmVmIGV2ZW50UmVmKQogewotICAgIHN3aXRjaCAodHlwZSkgeworICAgIFdL
QXJyYXlSZWYgdG91Y2hQb2ludHMgPSBXS1RvdWNoRXZlbnRHZXRUb3VjaFBvaW50cyhldmVudFJl
Zik7CisKKyAgICBzd2l0Y2ggKFdLVG91Y2hFdmVudEdldFR5cGUoZXZlbnRSZWYpKSB7CiAgICAg
Y2FzZSBrV0tFdmVudFR5cGVUb3VjaFN0YXJ0OgogICAgICAgICBzdG9wVGFwVGltZXJzKCk7CiAg
ICAgICAgIG1fcmVjb2duaXplckZ1bmN0aW9uID0gJkdlc3R1cmVSZWNvZ25pemVyOjpwaW5jaEdl
c3R1cmU7CkBAIC00MDksOSArNDExLDExIEBAIHZvaWQgR2VzdHVyZVJlY29nbml6ZXI6OnNpbmds
ZVRhcEdlc3R1cmUoV0tFdmVudFR5cGUgdHlwZSwgV0tBcnJheVJlZiB0b3VjaFBvaW50CiAgICAg
fQogfQogCi12b2lkIEdlc3R1cmVSZWNvZ25pemVyOjpkb3VibGVUYXBHZXN0dXJlKFdLRXZlbnRU
eXBlIHR5cGUsIFdLQXJyYXlSZWYgdG91Y2hQb2ludHMpCit2b2lkIEdlc3R1cmVSZWNvZ25pemVy
Ojpkb3VibGVUYXBHZXN0dXJlKFdLVG91Y2hFdmVudFJlZiBldmVudFJlZikKIHsKLSAgICBzd2l0
Y2ggKHR5cGUpIHsKKyAgICBXS0FycmF5UmVmIHRvdWNoUG9pbnRzID0gV0tUb3VjaEV2ZW50R2V0
VG91Y2hQb2ludHMoZXZlbnRSZWYpOworCisgICAgc3dpdGNoIChXS1RvdWNoRXZlbnRHZXRUeXBl
KGV2ZW50UmVmKSkgewogICAgIGNhc2Uga1dLRXZlbnRUeXBlVG91Y2hTdGFydDogewogICAgICAg
ICBpZiAobV9kb3VibGVUYXBUaW1lcikgewogICAgICAgICAgICAgZWNvcmVfdGltZXJfZGVsKG1f
ZG91YmxlVGFwVGltZXIpOwpAQCAtNDQ2LDE1ICs0NTAsMTcgQEAgdm9pZCBHZXN0dXJlUmVjb2du
aXplcjo6ZG91YmxlVGFwR2VzdHVyZShXS0V2ZW50VHlwZSB0eXBlLCBXS0FycmF5UmVmIHRvdWNo
UG9pbnQKICAgICB9CiB9CiAKLXZvaWQgR2VzdHVyZVJlY29nbml6ZXI6OnBhbkdlc3R1cmUoV0tF
dmVudFR5cGUgdHlwZSwgV0tBcnJheVJlZiB0b3VjaFBvaW50cykKK3ZvaWQgR2VzdHVyZVJlY29n
bml6ZXI6OnBhbkdlc3R1cmUoV0tUb3VjaEV2ZW50UmVmIGV2ZW50UmVmKQogewotICAgIHN3aXRj
aCAodHlwZSkgeworICAgIFdLQXJyYXlSZWYgdG91Y2hQb2ludHMgPSBXS1RvdWNoRXZlbnRHZXRU
b3VjaFBvaW50cyhldmVudFJlZik7CisKKyAgICBzd2l0Y2ggKFdLVG91Y2hFdmVudEdldFR5cGUo
ZXZlbnRSZWYpKSB7CiAgICAgY2FzZSBrV0tFdmVudFR5cGVUb3VjaFN0YXJ0OgogICAgICAgICBt
X3JlY29nbml6ZXJGdW5jdGlvbiA9ICZHZXN0dXJlUmVjb2duaXplcjo6cGluY2hHZXN0dXJlOwog
ICAgICAgICBtX2dlc3R1cmVIYW5kbGVyLT5oYW5kbGVQaW5jaFN0YXJ0ZWQoY3JlYXRlVmVjdG9y
V2l0aFdLQXJyYXkodG91Y2hQb2ludHMsIDIpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBr
V0tFdmVudFR5cGVUb3VjaE1vdmU6Ci0gICAgICAgIG1fZ2VzdHVyZUhhbmRsZXItPmhhbmRsZVBh
bih0b0ludFBvaW50KGdldFBvaW50QXRJbmRleCh0b3VjaFBvaW50cywgMCkpKTsKKyAgICAgICAg
bV9nZXN0dXJlSGFuZGxlci0+aGFuZGxlUGFuKHRvSW50UG9pbnQoZ2V0UG9pbnRBdEluZGV4KHRv
dWNoUG9pbnRzLCAwKSksIFdLVG91Y2hFdmVudEdldFRpbWVzdGFtcChldmVudFJlZikpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIGtXS0V2ZW50VHlwZVRvdWNoRW5kOgogICAgICAgICBtX2dl
c3R1cmVIYW5kbGVyLT5oYW5kbGVQYW5GaW5pc2hlZCgpOwpAQCAtNDY2LDEyICs0NzIsMTMgQEAg
dm9pZCBHZXN0dXJlUmVjb2duaXplcjo6cGFuR2VzdHVyZShXS0V2ZW50VHlwZSB0eXBlLCBXS0Fy
cmF5UmVmIHRvdWNoUG9pbnRzKQogICAgIH0KIH0KIAotdm9pZCBHZXN0dXJlUmVjb2duaXplcjo6
cGluY2hHZXN0dXJlKFdLRXZlbnRUeXBlIHR5cGUsIFdLQXJyYXlSZWYgdG91Y2hQb2ludHMpCit2
b2lkIEdlc3R1cmVSZWNvZ25pemVyOjpwaW5jaEdlc3R1cmUoV0tUb3VjaEV2ZW50UmVmIGV2ZW50
UmVmKQogeworICAgIFdLQXJyYXlSZWYgdG91Y2hQb2ludHMgPSBXS1RvdWNoRXZlbnRHZXRUb3Vj
aFBvaW50cyhldmVudFJlZik7CiAgICAgc2l6ZV90IG51bWJlck9mVG91Y2hQb2ludHMgPSBXS0Fy
cmF5R2V0U2l6ZSh0b3VjaFBvaW50cyk7CiAgICAgQVNTRVJUKG51bWJlck9mVG91Y2hQb2ludHMg
Pj0gMik7CiAKLSAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBzd2l0Y2ggKFdLVG91Y2hFdmVudEdl
dFR5cGUoZXZlbnRSZWYpKSB7CiAgICAgY2FzZSBrV0tFdmVudFR5cGVUb3VjaE1vdmU6IHsKICAg
ICAgICAgbV9nZXN0dXJlSGFuZGxlci0+aGFuZGxlUGluY2goY3JlYXRlVmVjdG9yV2l0aFdLQXJy
YXkodG91Y2hQb2ludHMsIDIpKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9HZXN0dXJlUmVjb2duaXplci5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvR2VzdHVyZVJlY29nbml6ZXIuaAppbmRleCBjMWY5ZDcw
YjM4MGIzMjc2MjM5MmQ3NmUxOTAzY2JlNjQ1MjQ1NGQwLi5mZTc3YjZkNDg3MDQwMGMwOGZlZWYz
ZmUzNDZmMzBlZjRlN2ExYjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9HZXN0dXJlUmVjb2duaXplci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL0dlc3R1cmVSZWNvZ25pemVyLmgKQEAgLTU2LDExICs1NiwxMSBAQCBwcml2YXRl
OgogICAgIGJvb2wgZXhjZWVkc0RvdWJsZVRhcFRocmVzaG9sZChjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgZmlyc3QsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBsYXN0KSBjb25zdDsKIAogICAg
IC8vIFN0YXRlIGZ1bmN0aW9ucy4KLSAgICB2b2lkIG5vR2VzdHVyZShXS0V2ZW50VHlwZSwgV0tB
cnJheVJlZik7Ci0gICAgdm9pZCBzaW5nbGVUYXBHZXN0dXJlKFdLRXZlbnRUeXBlLCBXS0FycmF5
UmVmKTsKLSAgICB2b2lkIGRvdWJsZVRhcEdlc3R1cmUoV0tFdmVudFR5cGUsIFdLQXJyYXlSZWYp
OwotICAgIHZvaWQgcGFuR2VzdHVyZShXS0V2ZW50VHlwZSwgV0tBcnJheVJlZik7Ci0gICAgdm9p
ZCBwaW5jaEdlc3R1cmUoV0tFdmVudFR5cGUsIFdLQXJyYXlSZWYpOworICAgIHZvaWQgbm9HZXN0
dXJlKFdLVG91Y2hFdmVudFJlZik7CisgICAgdm9pZCBzaW5nbGVUYXBHZXN0dXJlKFdLVG91Y2hF
dmVudFJlZik7CisgICAgdm9pZCBkb3VibGVUYXBHZXN0dXJlKFdLVG91Y2hFdmVudFJlZik7Cisg
ICAgdm9pZCBwYW5HZXN0dXJlKFdLVG91Y2hFdmVudFJlZik7CisgICAgdm9pZCBwaW5jaEdlc3R1
cmUoV0tUb3VjaEV2ZW50UmVmKTsKIAogICAgIHZvaWQgc3RvcFRhcFRpbWVycygpOwogCkBAIC02
OSw3ICs2OSw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IGludCBzX3NxdWFyZWREb3Vi
bGVUYXBUaHJlc2hvbGQ7CiAgICAgc3RhdGljIGNvbnN0IGludCBzX3NxdWFyZWRQYW5UaHJlc2hv
bGQ7CiAKLSAgICB0eXBlZGVmIHZvaWQgKEdlc3R1cmVSZWNvZ25pemVyOjoqUmVjb2duaXplckZ1
bmN0aW9uKShXS0V2ZW50VHlwZSwgV0tBcnJheVJlZik7CisgICAgdHlwZWRlZiB2b2lkIChHZXN0
dXJlUmVjb2duaXplcjo6KlJlY29nbml6ZXJGdW5jdGlvbikoV0tUb3VjaEV2ZW50UmVmKTsKICAg
ICBSZWNvZ25pemVyRnVuY3Rpb24gbV9yZWNvZ25pemVyRnVuY3Rpb247CiAKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8V2ViS2l0OjpHZXN0dXJlSGFuZGxlcj4gbV9nZXN0dXJlSGFuZGxlcjsK
</data>

          </attachment>
      

    </bug>

</bugzilla>