<?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>99849</bug_id>
          
          <creation_ts>2012-10-19 10:08:50 -0700</creation_ts>
          <short_desc>Web Inspector: paint rectangles are incorrectly shown in case subframes are present</short_desc>
          <delta_ts>2012-10-23 10:06:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Andrey Kosyakov">caseq</reporter>
          <assigned_to name="Andrey Kosyakov">caseq</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>peter+ews</cc>
    
    <cc>pfeldman</cc>
    
    <cc>philn</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>746401</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-10-19 10:08:50 -0700</bug_when>
    <thetext>Visualization of paint rectangles works incorrectly for pages where subframes are present: we only store the context and rectangle from last willPaint and draw it in didPaint. For nested frames, paint calls are nested, so we will only paint innermost frame and reset the last paint context, so that didPaint()s of outer frames will bail out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746406</commentid>
    <comment_count>1</comment_count>
      <attachid>169642</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-10-19 10:14:43 -0700</bug_when>
    <thetext>Created attachment 169642
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746433</commentid>
    <comment_count>2</comment_count>
      <attachid>169642</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-10-19 10:41:41 -0700</bug_when>
    <thetext>Comment on attachment 169642
Patch

Attachment 169642 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/14462520</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746438</commentid>
    <comment_count>3</comment_count>
      <attachid>169647</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-10-19 10:43:58 -0700</bug_when>
    <thetext>Created attachment 169647
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746444</commentid>
    <comment_count>4</comment_count>
      <attachid>169647</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-19 10:52:54 -0700</bug_when>
    <thetext>Comment on attachment 169647
Patch

Attachment 169647 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14466488</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746454</commentid>
    <comment_count>5</comment_count>
      <attachid>169647</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-19 11:08:41 -0700</bug_when>
    <thetext>Comment on attachment 169647
Patch

Attachment 169647 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14461519</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746455</commentid>
    <comment_count>6</comment_count>
      <attachid>169647</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-19 11:08:52 -0700</bug_when>
    <thetext>Comment on attachment 169647
Patch

Attachment 169647 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14460539</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746466</commentid>
    <comment_count>7</comment_count>
      <attachid>169647</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-19 11:16:09 -0700</bug_when>
    <thetext>Comment on attachment 169647
Patch

Attachment 169647 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14455616</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746473</commentid>
    <comment_count>8</comment_count>
      <attachid>169647</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-10-19 11:20:40 -0700</bug_when>
    <thetext>Comment on attachment 169647
Patch

Attachment 169647 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/14462532</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746508</commentid>
    <comment_count>9</comment_count>
      <attachid>169647</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-10-19 11:55:33 -0700</bug_when>
    <thetext>Comment on attachment 169647
Patch

Attachment 169647 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14456614</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746691</commentid>
    <comment_count>10</comment_count>
      <attachid>169647</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-19 15:17:36 -0700</bug_when>
    <thetext>Comment on attachment 169647
Patch

Attachment 169647 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14458612</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747296</commentid>
    <comment_count>11</comment_count>
      <attachid>169847</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-10-22 01:25:26 -0700</bug_when>
    <thetext>Created attachment 169847
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747502</commentid>
    <comment_count>12</comment_count>
      <attachid>169847</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-10-22 06:58:51 -0700</bug_when>
    <thetext>Comment on attachment 169847
Patch

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

&gt; Source/WebCore/inspector/InspectorInstrumentation.h:145
&gt; +    static void didPaint(Frame*);

Could you instead pass context and rect into the didPaint as well and move the paint rectangle there?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747685</commentid>
    <comment_count>13</comment_count>
      <attachid>169939</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-10-22 10:45:20 -0700</bug_when>
    <thetext>Created attachment 169939
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748758</commentid>
    <comment_count>14</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-10-23 10:06:24 -0700</bug_when>
    <thetext>Committed r132239: &lt;http://trac.webkit.org/changeset/132239&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169642</attachid>
            <date>2012-10-19 10:14:43 -0700</date>
            <delta_ts>2012-10-19 10:43:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99849-20121019211326.patch</filename>
            <type>text/plain</type>
            <size>14592</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxODcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY1NzBmNThhN2VmODcz
ZTBiNWRiNjQ2MzliZmQ0OTMwMzAzYTI5Mi4uODc4YTBjZDg5YzcxNTczMDgxZjFiNjgwN2Y3YTQ1
NDI1NWZhNDIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTEwLTE5ICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogcGFpbnQgcmVjdGFuZ2xlcyBhcmUgaW5jb3JyZWN0bHkgc2hvd24gaW4gY2FzZSBzdWJmcmFt
ZXMgYXJlIHByZXNlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk5ODQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTWFpbnRhaW4gYSBwZXItZnJhbWUgY29udGV4dCBmb3IgbGFzdCBwYWludCByZWN0YW5n
ZSBhbmQgZ3JhcGhpY3MgY29udGV4dC4KKyAgICAgICAgTm90ZSB3ZSB1c2UgYSBwZXItZnJhbWUg
bWFwIGluc3RlYWQgb2YgYSBzdGFjayBhcyBhIHByb3Zpc2lvbiBmb3IgYWRkaW5nIGZ1cnRoZXIg
dmlzdWFsaXphdGlvbnMsCisgICAgICAgIGUuZy4gZm9yIGxheW91dCBpbnZhbGlkYXRpb24uCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojp3aWxsUGFpbnRJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkUGFpbnRJbXBsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmg6CisgICAgICAgIChJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUGFpbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRQYWludCk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JQYWdlQWdlbnQ6Okluc3BlY3RvclBhZ2VBZ2VudCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmZyYW1lRGV0YWNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yUGFnZUFnZW50Ojp3aWxsUGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yUGFnZUFnZW50OjpkaWRQYWludCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdl
QWdlbnQ6OkZyYW1lUGFpbnRDb250ZXh0OjpGcmFtZVBhaW50Q29udGV4dCk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50Lmg6CisgICAg
ICAgIChGcmFtZVBhaW50Q29udGV4dCk6CisgICAgICAgIChJbnNwZWN0b3JQYWdlQWdlbnQpOgor
ICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmll
dzo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50Q29udGVu
dHMpOgorCiAyMDEyLTEwLTE5ICBFdWdlbmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYnVnQGdtYWls
LmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBTYXZpbmcgSEFSLCBzbmFwc2hvdHMgYW5k
IHRpbWVsaW5lIGRhdGEgZG8gbm90IHdvcmsgaW4gcmVtb3RlIGRlYnVnZ2luZyBtb2RlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
Y3BwCmluZGV4IDgxZGRlZDNlMDVmMGE3NWMxOGVkYWQwMWE4Y2FlMzE4YTk2ZGI0ZWUuLjZiZDcx
MGRlMDY3YTk2YzI2ZjBiN2ZhNTRiMDhmMmEwMGI5MjY0MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC00OTQs
MjUgKzQ5NCwyNCBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRGlzcGF0Y2hY
SFJMb2FkRXZlbnRJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydQogICAgICAgICB0aW1lbGluZUFn
ZW50LT5kaWREaXNwYXRjaFhIUkxvYWRFdmVudCgpOwogfQogCi1JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUGFpbnRJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEdyYXBoaWNzQ29udGV4dCogY29u
dGV4dCwgY29uc3QgTGF5b3V0UmVjdCYgcmVjdCwgRnJhbWUqIGZyYW1lKQordm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OndpbGxQYWludEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5z
dHJ1bWVudGluZ0FnZW50cywgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdXRS
ZWN0JiByZWN0LCBGcmFtZSogZnJhbWUpCiB7CiAgICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCog
cGFnZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCi0g
ICAgICAgIHBhZ2VBZ2VudC0+d2lsbFBhaW50KGNvbnRleHQsIHJlY3QpOworICAgICAgICBwYWdl
QWdlbnQtPndpbGxQYWludChjb250ZXh0LCByZWN0LCBmcmFtZSk7CiAKICAgICBpbnQgdGltZWxp
bmVBZ2VudElkID0gMDsKICAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVB
Z2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkgewog
ICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsUGFpbnQocmVjdCwgZnJhbWUpOwogICAgICAgICB0
aW1lbGluZUFnZW50SWQgPSB0aW1lbGluZUFnZW50LT5pZCgpOwogICAgIH0KLSAgICByZXR1cm4g
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKGluc3RydW1lbnRpbmdBZ2VudHMsIHRpbWVs
aW5lQWdlbnRJZCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRQYWlu
dEltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJiBjb29raWUpCit2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUGFpbnRJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEZyYW1lKiBmcmFtZSkKIHsKLSAgICBpZiAoSW5zcGVj
dG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IHJldHJpZXZlVGltZWxpbmVBZ2VudChj
b29raWUpKQorICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0g
aW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQogICAgICAgICB0
aW1lbGluZUFnZW50LT5kaWRQYWludCgpOwotICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIHBh
Z2VBZ2VudCA9IGNvb2tpZS5maXJzdCA/IGNvb2tpZS5maXJzdC0+aW5zcGVjdG9yUGFnZUFnZW50
KCkgOiAwKQotICAgICAgICBwYWdlQWdlbnQtPmRpZFBhaW50KCk7CisgICAgaWYgKEluc3BlY3Rv
clBhZ2VBZ2VudCogcGFnZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUGFn
ZUFnZW50KCkpCisgICAgICAgIHBhZ2VBZ2VudC0+ZGlkUGFpbnQoZnJhbWUpOwogfQogCiB2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbENvbXBvc2l0ZUltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCA0NTg4ODY1YzZiOTdkZjEx
MTYzNTc5Y2Q2NWY5NjMzMjgyNWU4ZTdlLi4wOWE0ODRhOWQwNWY4MTJmNGRlMDcyYmFjNzllMWI4
ZTM1ODc3MWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oCkBAIC0xNDEsOCArMTQxLDggQEAgcHVibGljOgogICAgIHN0YXRp
YyB2b2lkIGRpZFNjcm9sbChQYWdlKik7CiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbkNvb2tpZSB3aWxsRGlzcGF0Y2hYSFJMb2FkRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFhNTEh0dHBSZXF1ZXN0Kik7CiAgICAgc3RhdGljIHZvaWQgZGlkRGlzcGF0Y2hYSFJMb2Fk
RXZlbnQoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7Ci0gICAgc3RhdGlj
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsUGFpbnQoRnJhbWUqLCBHcmFwaGlj
c0NvbnRleHQqLCBjb25zdCBMYXlvdXRSZWN0Jik7Ci0gICAgc3RhdGljIHZvaWQgZGlkUGFpbnQo
Y29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7CisgICAgc3RhdGljIHZvaWQg
d2lsbFBhaW50KEZyYW1lKiwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0UmVjdCYpOwor
ICAgIHN0YXRpYyB2b2lkIGRpZFBhaW50KEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQgd2lsbENv
bXBvc2l0ZShQYWdlKik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ29tcG9zaXRlKFBhZ2UqKTsKICAg
ICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxSZWNhbGN1bGF0ZVN0
eWxlKERvY3VtZW50Kik7CkBAIC0zMzEsOCArMzMxLDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMg
dm9pZCBkaWRTY3JvbGxJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqKTsKICAgICBzdGF0aWMgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxEaXNwYXRjaFhIUkxvYWRFdmVudEltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyosIFhNTEh0dHBSZXF1ZXN0KiwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCopOwogICAgIHN0YXRpYyB2b2lkIGRpZERpc3BhdGNoWEhSTG9hZEV2ZW50SW1wbChjb25z
dCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKLSAgICBzdGF0aWMgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxQYWludEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyos
IEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3QmLCBGcmFtZSopOwotICAgIHN0YXRp
YyB2b2lkIGRpZFBhaW50SW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUm
KTsKKyAgICBzdGF0aWMgdm9pZCB3aWxsUGFpbnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBH
cmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXlvdXRSZWN0JiwgRnJhbWUqKTsKKyAgICBzdGF0aWMg
dm9pZCBkaWRQYWludEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEZyYW1lKik7CiAgICAgc3Rh
dGljIHZvaWQgd2lsbENvbXBvc2l0ZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyopOwogICAgIHN0
YXRpYyB2b2lkIGRpZENvbXBvc2l0ZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyopOwogICAgIHN0
YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbFJlY2FsY3VsYXRlU3R5bGVJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBGcmFtZSopOwpAQCAtODk5LDIyICs4OTksMjEgQEAg
aW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaFhIUkxvYWRF
dmVudChjb25zdCBJbnNwZWN0b3JJbnMKICNlbmRpZgogfQogCi1pbmxpbmUgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFBhaW50KEZy
YW1lKiBmcmFtZSwgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0JiBy
ZWN0KQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUGFpbnQoRnJh
bWUqIGZyYW1lLCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheW91dFJlY3QmIHJl
Y3QpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9O
VEVORFMoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKCkpOworICAgIEZBU1RfUkVUVVJO
X0lGX05PX0ZST05URU5EUyh2b2lkKCkpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKGZyYW1lKSkK
ICAgICAgICAgcmV0dXJuIHdpbGxQYWludEltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgY29udGV4
dCwgcmVjdCwgZnJhbWUpOwogI2VuZGlmCi0gICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbkNvb2tpZSgpOwogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZFBhaW50KGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYgY29va2llKQor
aW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRQYWludChGcmFtZSogZnJh
bWUpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9O
VEVORFModm9pZCgpKTsKLSAgICBpZiAoY29va2llLmZpcnN0KQotICAgICAgICBkaWRQYWludElt
cGwoY29va2llKTsKKyAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFtZSkpCisgICAgICAgIHJldHVy
biBkaWRQYWludEltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgZnJhbWUpOwogI2VuZGlmCiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5k
ZXggNzg4Njg1YjFlN2IyZWRjYWFlY2I2NzFkYTQzYmJiMjg0ZTYwZTNkYy4uYzRiN2VkMWQ0ODVi
YzZiYTcwNzlhMzAxODU0MTY2ZmQ5NTkxNWY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTMyOCw3ICszMjgsNiBAQCBJbnNwZWN0
b3JQYWdlQWdlbnQ6Okluc3BlY3RvclBhZ2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLAogICAgICwgbV9mcm9udGVuZCgwKQogICAgICwgbV9vdmVybGF5KG92
ZXJsYXkpCiAgICAgLCBtX2xhc3RTY3JpcHRJZGVudGlmaWVyKDApCi0gICAgLCBtX2xhc3RQYWlu
dENvbnRleHQoMCkKICAgICAsIG1fZGlkTG9hZEV2ZW50RmlyZShmYWxzZSkKICAgICAsIG1fZ2Vv
bG9jYXRpb25PdmVycmlkZGVuKGZhbHNlKQogewpAQCAtNzk4LDYgKzc5Nyw3IEBAIHZvaWQgSW5z
cGVjdG9yUGFnZUFnZW50OjpmcmFtZURldGFjaGVkKEZyYW1lKiBmcmFtZSkKICAgICAgICAgbV9p
ZGVudGlmaWVyVG9GcmFtZS5yZW1vdmUoaXRlcmF0b3ItPnZhbHVlKTsKICAgICAgICAgbV9mcmFt
ZVRvSWRlbnRpZmllci5yZW1vdmUoaXRlcmF0b3IpOwogICAgIH0KKyAgICBtX2ZyYW1lVG9QYWlu
dENvbnRleHQucmVtb3ZlKGZyYW1lKTsKIH0KIAogRnJhbWUqIEluc3BlY3RvclBhZ2VBZ2VudDo6
bWFpbkZyYW1lKCkKQEAgLTg3NiwxOSArODc2LDMzIEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50
OjphcHBseVNjcmVlbkhlaWdodE92ZXJyaWRlKGxvbmcqIGhlaWdodCkKICAgICAgICAgKmhlaWdo
dCA9IGhlaWdodE92ZXJyaWRlOwogfQogCi12b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6d2lsbFBh
aW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYgcmVjdCkKK3Zv
aWQgSW5zcGVjdG9yUGFnZUFnZW50Ojp3aWxsUGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0
LCBjb25zdCBMYXlvdXRSZWN0JiByZWN0LCBGcmFtZSogZnJhbWUpCiB7Ci0gICAgaWYgKG1fc3Rh
dGUtPmdldEJvb2xlYW4oUGFnZUFnZW50U3RhdGU6OnNob3dQYWludFJlY3RzKSkgewotICAgICAg
ICBtX2xhc3RQYWludENvbnRleHQgPSBjb250ZXh0OwotICAgICAgICBtX2xhc3RQYWludFJlY3Qg
PSByZWN0OwotICAgICAgICBtX2xhc3RQYWludFJlY3QuaW5mbGF0ZSgtMSk7Ci0gICAgfQorICAg
IGlmICghbV9zdGF0ZS0+Z2V0Qm9vbGVhbihQYWdlQWdlbnRTdGF0ZTo6c2hvd1BhaW50UmVjdHMp
KQorICAgICAgICByZXR1cm47CisgICAgSGFzaE1hcDxGcmFtZSosIEZyYW1lUGFpbnRDb250ZXh0
Pjo6aXRlcmF0b3IgaXQgPSBtX2ZyYW1lVG9QYWludENvbnRleHQuZmluZChmcmFtZSk7CisgICAg
aWYgKGl0ID09IG1fZnJhbWVUb1BhaW50Q29udGV4dC5lbmQoKSkKKyAgICAgICAgaXQgPSBtX2Zy
YW1lVG9QYWludENvbnRleHQuYWRkKGZyYW1lLCBGcmFtZVBhaW50Q29udGV4dCgpKS5pdGVyYXRv
cjsKKyAgICBGcmFtZVBhaW50Q29udGV4dCYgcGFpbnRDb250ZXh0ID0gaXQtPnZhbHVlOworICAg
IHBhaW50Q29udGV4dC5tX2NvbnRleHQgPSBjb250ZXh0OworICAgIHBhaW50Q29udGV4dC5tX2xh
c3RQYWludFJlY3QgPSByZWN0OworICAgIHBhaW50Q29udGV4dC5tX2xhc3RQYWludFJlY3QuaW5m
bGF0ZSgtMSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpkaWRQYWludCgpCit2b2lk
IEluc3BlY3RvclBhZ2VBZ2VudDo6ZGlkUGFpbnQoRnJhbWUqIGZyYW1lKQogewotICAgIGlmICgh
bV9sYXN0UGFpbnRDb250ZXh0IHx8ICFtX3N0YXRlLT5nZXRCb29sZWFuKFBhZ2VBZ2VudFN0YXRl
OjpzaG93UGFpbnRSZWN0cykpCisgICAgaWYgKCFtX3N0YXRlLT5nZXRCb29sZWFuKFBhZ2VBZ2Vu
dFN0YXRlOjpzaG93UGFpbnRSZWN0cykpCisgICAgICAgIHJldHVybjsKKyAgICBIYXNoTWFwPEZy
YW1lKiwgRnJhbWVQYWludENvbnRleHQ+OjppdGVyYXRvciBpdCA9IG1fZnJhbWVUb1BhaW50Q29u
dGV4dC5maW5kKGZyYW1lKTsKKyAgICBpZiAoaXQgPT0gbV9mcmFtZVRvUGFpbnRDb250ZXh0LmVu
ZCgpKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIEZyYW1lUGFpbnRDb250ZXh0JiBwYWludENvbnRleHQgPSBpdC0+dmFsdWU7Cisg
ICAgaWYgKCFwYWludENvbnRleHQubV9jb250ZXh0KSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgc3RhdGljIGludCBjb2xvclNl
bGVjdG9yID0gMDsKICAgICBjb25zdCBDb2xvciBjb2xvcnNbXSA9IHsKQEAgLTg5Nyw5ICs5MTEs
OCBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZGlkUGFpbnQoKQogICAgICAgICBDb2xvcigw
LCAwLCAweEZGLCAweDNGKSwKICAgICB9OwogCi0gICAgbV9vdmVybGF5LT5kcmF3T3V0bGluZSht
X2xhc3RQYWludENvbnRleHQsIG1fbGFzdFBhaW50UmVjdCwgY29sb3JzW2NvbG9yU2VsZWN0b3Ir
KyAlIFdURl9BUlJBWV9MRU5HVEgoY29sb3JzKV0pOwotCi0gICAgbV9sYXN0UGFpbnRDb250ZXh0
ID0gMDsKKyAgICBtX292ZXJsYXktPmRyYXdPdXRsaW5lKHBhaW50Q29udGV4dC5tX2NvbnRleHQs
IHBhaW50Q29udGV4dC5tX2xhc3RQYWludFJlY3QsIGNvbG9yc1tjb2xvclNlbGVjdG9yKysgJSBX
VEZfQVJSQVlfTEVOR1RIKGNvbG9ycyldKTsKKyAgICBwYWludENvbnRleHQubV9jb250ZXh0ID0g
MDsKIH0KIAogdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpZExheW91dCgpCkBAIC0xMTI5LDYg
KzExNDIsMTEgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OnNldENvbXBvc2l0aW5nQm9yZGVy
c1Zpc2libGUoRXJyb3JTdHJpbmcqLCBib29sIHZpc2libGUKICAgICBzZXR0aW5ncy0+c2V0U2hv
d1JlcGFpbnRDb3VudGVyKHZpc2libGUpOwogfQogCitJbnNwZWN0b3JQYWdlQWdlbnQ6OkZyYW1l
UGFpbnRDb250ZXh0OjpGcmFtZVBhaW50Q29udGV4dCgpCisgICAgOiBtX2NvbnRleHQoMCkKK3sK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RP
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaAppbmRl
eCBlNTRiYjcyNTdjZjE5ZmQ5NWIwNjBkMGI5YzljMTA5N2ZiNTQzNzg1Li5kMjNhMjkxOGNhMWI4
N2MxNDE1ZDFhMTFkNmE1YmQ2ZTMwMTIwYzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC0xMzYsOCArMTM2LDggQEAgcHVibGljOgogICAg
IHZvaWQgbG9hZGVyRGV0YWNoZWRGcm9tRnJhbWUoRG9jdW1lbnRMb2FkZXIqKTsKICAgICB2b2lk
IGFwcGx5U2NyZWVuV2lkdGhPdmVycmlkZShsb25nKik7CiAgICAgdm9pZCBhcHBseVNjcmVlbkhl
aWdodE92ZXJyaWRlKGxvbmcqKTsKLSAgICB2b2lkIHdpbGxQYWludChHcmFwaGljc0NvbnRleHQq
LCBjb25zdCBMYXlvdXRSZWN0Jik7Ci0gICAgdm9pZCBkaWRQYWludCgpOworICAgIHZvaWQgd2ls
bFBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3QmLCBGcmFtZSopOworICAg
IHZvaWQgZGlkUGFpbnQoRnJhbWUqKTsKICAgICB2b2lkIGRpZExheW91dCgpOwogICAgIHZvaWQg
ZGlkU2Nyb2xsKCk7CiAKQEAgLTE1Niw2ICsxNTYsMTMgQEAgcHVibGljOgogICAgIHN0YXRpYyBE
b2N1bWVudExvYWRlciogYXNzZXJ0RG9jdW1lbnRMb2FkZXIoRXJyb3JTdHJpbmcqLCBGcmFtZSop
OwogCiBwcml2YXRlOgorICAgIHN0cnVjdCBGcmFtZVBhaW50Q29udGV4dCB7CisgICAgICAgIEdy
YXBoaWNzQ29udGV4dCogbV9jb250ZXh0OworICAgICAgICBMYXlvdXRSZWN0IG1fbGFzdFBhaW50
UmVjdDsKKworICAgICAgICBGcmFtZVBhaW50Q29udGV4dCgpOworICAgIH07CisKICAgICBJbnNw
ZWN0b3JQYWdlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIFBhZ2UqLCBJbnNwZWN0b3JBZ2Vu
dCosIEluc3BlY3RvclN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgSW5zcGVjdG9yQ2xp
ZW50KiwgSW5zcGVjdG9yT3ZlcmxheSopOwogICAgIHZvaWQgdXBkYXRlVmlld01ldHJpY3MoaW50
LCBpbnQsIGRvdWJsZSwgYm9vbCk7CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKQEAgLTE3OSw4
ICsxODYsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8RnJhbWUqLCBTdHJpbmc+IG1fZnJhbWVU
b0lkZW50aWZpZXI7CiAgICAgSGFzaE1hcDxTdHJpbmcsIEZyYW1lKj4gbV9pZGVudGlmaWVyVG9G
cmFtZTsKICAgICBIYXNoTWFwPERvY3VtZW50TG9hZGVyKiwgU3RyaW5nPiBtX2xvYWRlclRvSWRl
bnRpZmllcjsKLSAgICBHcmFwaGljc0NvbnRleHQqIG1fbGFzdFBhaW50Q29udGV4dDsKLSAgICBM
YXlvdXRSZWN0IG1fbGFzdFBhaW50UmVjdDsKKyAgICBIYXNoTWFwPEZyYW1lKiwgRnJhbWVQYWlu
dENvbnRleHQ+IG1fZnJhbWVUb1BhaW50Q29udGV4dDsKICAgICBib29sIG1fZGlkTG9hZEV2ZW50
RmlyZTsKICAgICBib29sIG1fZ2VvbG9jYXRpb25PdmVycmlkZGVuOwogICAgIFJlZlB0cjxHZW9s
b2NhdGlvblBvc2l0aW9uPiBtX2dlb2xvY2F0aW9uUG9zaXRpb247CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAKaW5kZXggMWJlMGM1NGMyNWFhOGE5OWI3OTE4OTQ1MTY0ZGNmZjMwZTdjZDcxNS4u
NTlkNGU2MTYzN2UwYzhiYTMzN2RhNGQ1OTE2Y2NhZjFlODE1M2MzOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcApAQCAtMzE2Nyw3ICszMTY3LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnBhaW50
Q29udGVudHMoR3JhcGhpY3NDb250ZXh0KiBwLCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgIGlm
ICghZnJhbWUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uQ29va2llIGNvb2tpZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFBhaW50KG1f
ZnJhbWUuZ2V0KCksIHAsIHJlY3QpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2ls
bFBhaW50KG1fZnJhbWUuZ2V0KCksIHAsIHJlY3QpOwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50
ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKIApAQCAtMzI1OCw3ICszMjU4LDcgQEAgdm9pZCBGcmFt
ZVZpZXc6OnBhaW50Q29udGVudHMoR3JhcGhpY3NDb250ZXh0KiBwLCBjb25zdCBJbnRSZWN0JiBy
ZWN0KQogICAgIGlmIChpc1RvcExldmVsUGFpbnRlcikKICAgICAgICAgc0N1cnJlbnRQYWludFRp
bWVTdGFtcCA9IDA7CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFBhaW50KGNv
b2tpZSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRQYWludChtX2ZyYW1lLmdl
dCgpKTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6OnNldFBhaW50QmVoYXZpb3IoUGFpbnRCZWhhdmlv
ciBiZWhhdmlvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAKaW5kZXggMzgwZjZkMzkyYjNmNWY1NmJmMzZiNGY1MGFkYWZmYWY0ZjhmZjI2OC4u
ZDIyZWQzMzVlZGMzY2NkYWE3NGIyZDQzYWVhNzVlOGYwNTQ2NTdmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTE0OTEsNyArMTQ5
MSw4IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoCiAjZW5kaWYKIAogICAgIGlmIChncmFwaGlj
c0xheWVyID09IG1fZ3JhcGhpY3NMYXllci5nZXQoKSB8fCBncmFwaGljc0xheWVyID09IG1fZm9y
ZWdyb3VuZExheWVyLmdldCgpIHx8IGdyYXBoaWNzTGF5ZXIgPT0gbV9tYXNrTGF5ZXIuZ2V0KCkg
fHwgZ3JhcGhpY3NMYXllciA9PSBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXIuZ2V0KCkpIHsKLSAg
ICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZSA9IEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6d2lsbFBhaW50KG1fb3duaW5nTGF5ZXItPnJlbmRlcmVyKCktPmZyYW1l
KCksICZjb250ZXh0LCBjbGlwKTsKKyAgICAgICAgRnJhbWUqIGZyYW1lID0gbV9vd25pbmdMYXll
ci0+cmVuZGVyZXIoKS0+ZnJhbWUoKTsKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojp3aWxsUGFpbnQoZnJhbWUsICZjb250ZXh0LCBjbGlwKTsKIAogICAgICAgICAvLyBUaGUgZGly
dHlSZWN0IGlzIGluIHRoZSBjb29yZHMgb2YgdGhlIHBhaW50aW5nIHJvb3QuCiAgICAgICAgIElu
dFJlY3QgZGlydHlSZWN0ID0gY2xpcDsKQEAgLTE1MDIsOSArMTUwMyw5IEBAIHZvaWQgUmVuZGVy
TGF5ZXJCYWNraW5nOjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNz
TGF5ZXIsIEdyYXBoCiAgICAgICAgIHBhaW50SW50b0xheWVyKG1fb3duaW5nTGF5ZXIsICZjb250
ZXh0LCBkaXJ0eVJlY3QsIFBhaW50QmVoYXZpb3JOb3JtYWwsIHBhaW50aW5nUGhhc2UsIHJlbmRl
cmVyKCkpOwogCiAgICAgICAgIGlmIChtX3VzaW5nVGlsZWRDYWNoZUxheWVyKQotICAgICAgICAg
ICAgbV9vd25pbmdMYXllci0+cmVuZGVyZXIoKS0+ZnJhbWUoKS0+dmlldygpLT5zZXRMYXN0UGFp
bnRUaW1lKGN1cnJlbnRUaW1lKCkpOworICAgICAgICAgICAgZnJhbWUtPnZpZXcoKS0+c2V0TGFz
dFBhaW50VGltZShjdXJyZW50VGltZSgpKTsKIAotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZFBhaW50KGNvb2tpZSk7CisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkUGFpbnQoZnJhbWUpOwogICAgIH0gZWxzZSBpZiAoZ3JhcGhpY3NMYXllciA9PSBsYXll
ckZvckhvcml6b250YWxTY3JvbGxiYXIoKSkgewogICAgICAgICBwYWludFNjcm9sbGJhcihtX293
bmluZ0xheWVyLT5ob3Jpem9udGFsU2Nyb2xsYmFyKCksIGNvbnRleHQsIGNsaXApOwogICAgIH0g
ZWxzZSBpZiAoZ3JhcGhpY3NMYXllciA9PSBsYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169647</attachid>
            <date>2012-10-19 10:43:58 -0700</date>
            <delta_ts>2012-10-22 01:25:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99849-20121019214241.patch</filename>
            <type>text/plain</type>
            <size>14592</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxODcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY1NzBmNThhN2VmODcz
ZTBiNWRiNjQ2MzliZmQ0OTMwMzAzYTI5Mi4uODc4YTBjZDg5YzcxNTczMDgxZjFiNjgwN2Y3YTQ1
NDI1NWZhNDIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTEwLTE5ICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogcGFpbnQgcmVjdGFuZ2xlcyBhcmUgaW5jb3JyZWN0bHkgc2hvd24gaW4gY2FzZSBzdWJmcmFt
ZXMgYXJlIHByZXNlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk5ODQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTWFpbnRhaW4gYSBwZXItZnJhbWUgY29udGV4dCBmb3IgbGFzdCBwYWludCByZWN0YW5n
ZSBhbmQgZ3JhcGhpY3MgY29udGV4dC4KKyAgICAgICAgTm90ZSB3ZSB1c2UgYSBwZXItZnJhbWUg
bWFwIGluc3RlYWQgb2YgYSBzdGFjayBhcyBhIHByb3Zpc2lvbiBmb3IgYWRkaW5nIGZ1cnRoZXIg
dmlzdWFsaXphdGlvbnMsCisgICAgICAgIGUuZy4gZm9yIGxheW91dCBpbnZhbGlkYXRpb24uCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojp3aWxsUGFpbnRJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkUGFpbnRJbXBsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmg6CisgICAgICAgIChJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUGFpbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRQYWludCk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JQYWdlQWdlbnQ6Okluc3BlY3RvclBhZ2VBZ2VudCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmZyYW1lRGV0YWNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yUGFnZUFnZW50Ojp3aWxsUGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yUGFnZUFnZW50OjpkaWRQYWludCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdl
QWdlbnQ6OkZyYW1lUGFpbnRDb250ZXh0OjpGcmFtZVBhaW50Q29udGV4dCk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50Lmg6CisgICAg
ICAgIChGcmFtZVBhaW50Q29udGV4dCk6CisgICAgICAgIChJbnNwZWN0b3JQYWdlQWdlbnQpOgor
ICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmll
dzo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50Q29udGVu
dHMpOgorCiAyMDEyLTEwLTE5ICBFdWdlbmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYnVnQGdtYWls
LmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBTYXZpbmcgSEFSLCBzbmFwc2hvdHMgYW5k
IHRpbWVsaW5lIGRhdGEgZG8gbm90IHdvcmsgaW4gcmVtb3RlIGRlYnVnZ2luZyBtb2RlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
Y3BwCmluZGV4IDgxZGRlZDNlMDVmMGE3NWMxOGVkYWQwMWE4Y2FlMzE4YTk2ZGI0ZWUuLjI2ZWFl
NjAzNjczOTE2ODQ2YmQ4MDIyOWEwM2VmMWY2NDFmYzJhNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC00OTQs
MjUgKzQ5NCwyMyBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRGlzcGF0Y2hY
SFJMb2FkRXZlbnRJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydQogICAgICAgICB0aW1lbGluZUFn
ZW50LT5kaWREaXNwYXRjaFhIUkxvYWRFdmVudCgpOwogfQogCi1JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUGFpbnRJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEdyYXBoaWNzQ29udGV4dCogY29u
dGV4dCwgY29uc3QgTGF5b3V0UmVjdCYgcmVjdCwgRnJhbWUqIGZyYW1lKQordm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OndpbGxQYWludEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5z
dHJ1bWVudGluZ0FnZW50cywgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdXRS
ZWN0JiByZWN0LCBGcmFtZSogZnJhbWUpCiB7CiAgICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCog
cGFnZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCi0g
ICAgICAgIHBhZ2VBZ2VudC0+d2lsbFBhaW50KGNvbnRleHQsIHJlY3QpOworICAgICAgICBwYWdl
QWdlbnQtPndpbGxQYWludChjb250ZXh0LCByZWN0LCBmcmFtZSk7CiAKLSAgICBpbnQgdGltZWxp
bmVBZ2VudElkID0gMDsKICAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVB
Z2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkgewog
ICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsUGFpbnQocmVjdCwgZnJhbWUpOwogICAgICAgICB0
aW1lbGluZUFnZW50SWQgPSB0aW1lbGluZUFnZW50LT5pZCgpOwogICAgIH0KLSAgICByZXR1cm4g
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKGluc3RydW1lbnRpbmdBZ2VudHMsIHRpbWVs
aW5lQWdlbnRJZCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRQYWlu
dEltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJiBjb29raWUpCit2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUGFpbnRJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEZyYW1lKiBmcmFtZSkKIHsKLSAgICBpZiAoSW5zcGVj
dG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IHJldHJpZXZlVGltZWxpbmVBZ2VudChj
b29raWUpKQorICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0g
aW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQogICAgICAgICB0
aW1lbGluZUFnZW50LT5kaWRQYWludCgpOwotICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIHBh
Z2VBZ2VudCA9IGNvb2tpZS5maXJzdCA/IGNvb2tpZS5maXJzdC0+aW5zcGVjdG9yUGFnZUFnZW50
KCkgOiAwKQotICAgICAgICBwYWdlQWdlbnQtPmRpZFBhaW50KCk7CisgICAgaWYgKEluc3BlY3Rv
clBhZ2VBZ2VudCogcGFnZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUGFn
ZUFnZW50KCkpCisgICAgICAgIHBhZ2VBZ2VudC0+ZGlkUGFpbnQoZnJhbWUpOwogfQogCiB2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbENvbXBvc2l0ZUltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCA0NTg4ODY1YzZiOTdkZjEx
MTYzNTc5Y2Q2NWY5NjMzMjgyNWU4ZTdlLi4wOWE0ODRhOWQwNWY4MTJmNGRlMDcyYmFjNzllMWI4
ZTM1ODc3MWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oCkBAIC0xNDEsOCArMTQxLDggQEAgcHVibGljOgogICAgIHN0YXRp
YyB2b2lkIGRpZFNjcm9sbChQYWdlKik7CiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbkNvb2tpZSB3aWxsRGlzcGF0Y2hYSFJMb2FkRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFhNTEh0dHBSZXF1ZXN0Kik7CiAgICAgc3RhdGljIHZvaWQgZGlkRGlzcGF0Y2hYSFJMb2Fk
RXZlbnQoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7Ci0gICAgc3RhdGlj
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsUGFpbnQoRnJhbWUqLCBHcmFwaGlj
c0NvbnRleHQqLCBjb25zdCBMYXlvdXRSZWN0Jik7Ci0gICAgc3RhdGljIHZvaWQgZGlkUGFpbnQo
Y29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7CisgICAgc3RhdGljIHZvaWQg
d2lsbFBhaW50KEZyYW1lKiwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0UmVjdCYpOwor
ICAgIHN0YXRpYyB2b2lkIGRpZFBhaW50KEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQgd2lsbENv
bXBvc2l0ZShQYWdlKik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ29tcG9zaXRlKFBhZ2UqKTsKICAg
ICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxSZWNhbGN1bGF0ZVN0
eWxlKERvY3VtZW50Kik7CkBAIC0zMzEsOCArMzMxLDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMg
dm9pZCBkaWRTY3JvbGxJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqKTsKICAgICBzdGF0aWMgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxEaXNwYXRjaFhIUkxvYWRFdmVudEltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyosIFhNTEh0dHBSZXF1ZXN0KiwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCopOwogICAgIHN0YXRpYyB2b2lkIGRpZERpc3BhdGNoWEhSTG9hZEV2ZW50SW1wbChjb25z
dCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKLSAgICBzdGF0aWMgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxQYWludEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyos
IEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3QmLCBGcmFtZSopOwotICAgIHN0YXRp
YyB2b2lkIGRpZFBhaW50SW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUm
KTsKKyAgICBzdGF0aWMgdm9pZCB3aWxsUGFpbnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBH
cmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXlvdXRSZWN0JiwgRnJhbWUqKTsKKyAgICBzdGF0aWMg
dm9pZCBkaWRQYWludEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEZyYW1lKik7CiAgICAgc3Rh
dGljIHZvaWQgd2lsbENvbXBvc2l0ZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyopOwogICAgIHN0
YXRpYyB2b2lkIGRpZENvbXBvc2l0ZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyopOwogICAgIHN0
YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbFJlY2FsY3VsYXRlU3R5bGVJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBGcmFtZSopOwpAQCAtODk5LDIyICs4OTksMjEgQEAg
aW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaFhIUkxvYWRF
dmVudChjb25zdCBJbnNwZWN0b3JJbnMKICNlbmRpZgogfQogCi1pbmxpbmUgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFBhaW50KEZy
YW1lKiBmcmFtZSwgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0JiBy
ZWN0KQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUGFpbnQoRnJh
bWUqIGZyYW1lLCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheW91dFJlY3QmIHJl
Y3QpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9O
VEVORFMoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKCkpOworICAgIEZBU1RfUkVUVVJO
X0lGX05PX0ZST05URU5EUyh2b2lkKCkpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKGZyYW1lKSkK
ICAgICAgICAgcmV0dXJuIHdpbGxQYWludEltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgY29udGV4
dCwgcmVjdCwgZnJhbWUpOwogI2VuZGlmCi0gICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbkNvb2tpZSgpOwogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZFBhaW50KGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYgY29va2llKQor
aW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRQYWludChGcmFtZSogZnJh
bWUpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9O
VEVORFModm9pZCgpKTsKLSAgICBpZiAoY29va2llLmZpcnN0KQotICAgICAgICBkaWRQYWludElt
cGwoY29va2llKTsKKyAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFtZSkpCisgICAgICAgIHJldHVy
biBkaWRQYWludEltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgZnJhbWUpOwogI2VuZGlmCiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5k
ZXggNzg4Njg1YjFlN2IyZWRjYWFlY2I2NzFkYTQzYmJiMjg0ZTYwZTNkYy4uYzRiN2VkMWQ0ODVi
YzZiYTcwNzlhMzAxODU0MTY2ZmQ5NTkxNWY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTMyOCw3ICszMjgsNiBAQCBJbnNwZWN0
b3JQYWdlQWdlbnQ6Okluc3BlY3RvclBhZ2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLAogICAgICwgbV9mcm9udGVuZCgwKQogICAgICwgbV9vdmVybGF5KG92
ZXJsYXkpCiAgICAgLCBtX2xhc3RTY3JpcHRJZGVudGlmaWVyKDApCi0gICAgLCBtX2xhc3RQYWlu
dENvbnRleHQoMCkKICAgICAsIG1fZGlkTG9hZEV2ZW50RmlyZShmYWxzZSkKICAgICAsIG1fZ2Vv
bG9jYXRpb25PdmVycmlkZGVuKGZhbHNlKQogewpAQCAtNzk4LDYgKzc5Nyw3IEBAIHZvaWQgSW5z
cGVjdG9yUGFnZUFnZW50OjpmcmFtZURldGFjaGVkKEZyYW1lKiBmcmFtZSkKICAgICAgICAgbV9p
ZGVudGlmaWVyVG9GcmFtZS5yZW1vdmUoaXRlcmF0b3ItPnZhbHVlKTsKICAgICAgICAgbV9mcmFt
ZVRvSWRlbnRpZmllci5yZW1vdmUoaXRlcmF0b3IpOwogICAgIH0KKyAgICBtX2ZyYW1lVG9QYWlu
dENvbnRleHQucmVtb3ZlKGZyYW1lKTsKIH0KIAogRnJhbWUqIEluc3BlY3RvclBhZ2VBZ2VudDo6
bWFpbkZyYW1lKCkKQEAgLTg3NiwxOSArODc2LDMzIEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50
OjphcHBseVNjcmVlbkhlaWdodE92ZXJyaWRlKGxvbmcqIGhlaWdodCkKICAgICAgICAgKmhlaWdo
dCA9IGhlaWdodE92ZXJyaWRlOwogfQogCi12b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6d2lsbFBh
aW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYgcmVjdCkKK3Zv
aWQgSW5zcGVjdG9yUGFnZUFnZW50Ojp3aWxsUGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0
LCBjb25zdCBMYXlvdXRSZWN0JiByZWN0LCBGcmFtZSogZnJhbWUpCiB7Ci0gICAgaWYgKG1fc3Rh
dGUtPmdldEJvb2xlYW4oUGFnZUFnZW50U3RhdGU6OnNob3dQYWludFJlY3RzKSkgewotICAgICAg
ICBtX2xhc3RQYWludENvbnRleHQgPSBjb250ZXh0OwotICAgICAgICBtX2xhc3RQYWludFJlY3Qg
PSByZWN0OwotICAgICAgICBtX2xhc3RQYWludFJlY3QuaW5mbGF0ZSgtMSk7Ci0gICAgfQorICAg
IGlmICghbV9zdGF0ZS0+Z2V0Qm9vbGVhbihQYWdlQWdlbnRTdGF0ZTo6c2hvd1BhaW50UmVjdHMp
KQorICAgICAgICByZXR1cm47CisgICAgSGFzaE1hcDxGcmFtZSosIEZyYW1lUGFpbnRDb250ZXh0
Pjo6aXRlcmF0b3IgaXQgPSBtX2ZyYW1lVG9QYWludENvbnRleHQuZmluZChmcmFtZSk7CisgICAg
aWYgKGl0ID09IG1fZnJhbWVUb1BhaW50Q29udGV4dC5lbmQoKSkKKyAgICAgICAgaXQgPSBtX2Zy
YW1lVG9QYWludENvbnRleHQuYWRkKGZyYW1lLCBGcmFtZVBhaW50Q29udGV4dCgpKS5pdGVyYXRv
cjsKKyAgICBGcmFtZVBhaW50Q29udGV4dCYgcGFpbnRDb250ZXh0ID0gaXQtPnZhbHVlOworICAg
IHBhaW50Q29udGV4dC5tX2NvbnRleHQgPSBjb250ZXh0OworICAgIHBhaW50Q29udGV4dC5tX2xh
c3RQYWludFJlY3QgPSByZWN0OworICAgIHBhaW50Q29udGV4dC5tX2xhc3RQYWludFJlY3QuaW5m
bGF0ZSgtMSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpkaWRQYWludCgpCit2b2lk
IEluc3BlY3RvclBhZ2VBZ2VudDo6ZGlkUGFpbnQoRnJhbWUqIGZyYW1lKQogewotICAgIGlmICgh
bV9sYXN0UGFpbnRDb250ZXh0IHx8ICFtX3N0YXRlLT5nZXRCb29sZWFuKFBhZ2VBZ2VudFN0YXRl
OjpzaG93UGFpbnRSZWN0cykpCisgICAgaWYgKCFtX3N0YXRlLT5nZXRCb29sZWFuKFBhZ2VBZ2Vu
dFN0YXRlOjpzaG93UGFpbnRSZWN0cykpCisgICAgICAgIHJldHVybjsKKyAgICBIYXNoTWFwPEZy
YW1lKiwgRnJhbWVQYWludENvbnRleHQ+OjppdGVyYXRvciBpdCA9IG1fZnJhbWVUb1BhaW50Q29u
dGV4dC5maW5kKGZyYW1lKTsKKyAgICBpZiAoaXQgPT0gbV9mcmFtZVRvUGFpbnRDb250ZXh0LmVu
ZCgpKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIEZyYW1lUGFpbnRDb250ZXh0JiBwYWludENvbnRleHQgPSBpdC0+dmFsdWU7Cisg
ICAgaWYgKCFwYWludENvbnRleHQubV9jb250ZXh0KSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgc3RhdGljIGludCBjb2xvclNl
bGVjdG9yID0gMDsKICAgICBjb25zdCBDb2xvciBjb2xvcnNbXSA9IHsKQEAgLTg5Nyw5ICs5MTEs
OCBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZGlkUGFpbnQoKQogICAgICAgICBDb2xvcigw
LCAwLCAweEZGLCAweDNGKSwKICAgICB9OwogCi0gICAgbV9vdmVybGF5LT5kcmF3T3V0bGluZSht
X2xhc3RQYWludENvbnRleHQsIG1fbGFzdFBhaW50UmVjdCwgY29sb3JzW2NvbG9yU2VsZWN0b3Ir
KyAlIFdURl9BUlJBWV9MRU5HVEgoY29sb3JzKV0pOwotCi0gICAgbV9sYXN0UGFpbnRDb250ZXh0
ID0gMDsKKyAgICBtX292ZXJsYXktPmRyYXdPdXRsaW5lKHBhaW50Q29udGV4dC5tX2NvbnRleHQs
IHBhaW50Q29udGV4dC5tX2xhc3RQYWludFJlY3QsIGNvbG9yc1tjb2xvclNlbGVjdG9yKysgJSBX
VEZfQVJSQVlfTEVOR1RIKGNvbG9ycyldKTsKKyAgICBwYWludENvbnRleHQubV9jb250ZXh0ID0g
MDsKIH0KIAogdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpZExheW91dCgpCkBAIC0xMTI5LDYg
KzExNDIsMTEgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OnNldENvbXBvc2l0aW5nQm9yZGVy
c1Zpc2libGUoRXJyb3JTdHJpbmcqLCBib29sIHZpc2libGUKICAgICBzZXR0aW5ncy0+c2V0U2hv
d1JlcGFpbnRDb3VudGVyKHZpc2libGUpOwogfQogCitJbnNwZWN0b3JQYWdlQWdlbnQ6OkZyYW1l
UGFpbnRDb250ZXh0OjpGcmFtZVBhaW50Q29udGV4dCgpCisgICAgOiBtX2NvbnRleHQoMCkKK3sK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RP
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaAppbmRl
eCBlNTRiYjcyNTdjZjE5ZmQ5NWIwNjBkMGI5YzljMTA5N2ZiNTQzNzg1Li5kMjNhMjkxOGNhMWI4
N2MxNDE1ZDFhMTFkNmE1YmQ2ZTMwMTIwYzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC0xMzYsOCArMTM2LDggQEAgcHVibGljOgogICAg
IHZvaWQgbG9hZGVyRGV0YWNoZWRGcm9tRnJhbWUoRG9jdW1lbnRMb2FkZXIqKTsKICAgICB2b2lk
IGFwcGx5U2NyZWVuV2lkdGhPdmVycmlkZShsb25nKik7CiAgICAgdm9pZCBhcHBseVNjcmVlbkhl
aWdodE92ZXJyaWRlKGxvbmcqKTsKLSAgICB2b2lkIHdpbGxQYWludChHcmFwaGljc0NvbnRleHQq
LCBjb25zdCBMYXlvdXRSZWN0Jik7Ci0gICAgdm9pZCBkaWRQYWludCgpOworICAgIHZvaWQgd2ls
bFBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3QmLCBGcmFtZSopOworICAg
IHZvaWQgZGlkUGFpbnQoRnJhbWUqKTsKICAgICB2b2lkIGRpZExheW91dCgpOwogICAgIHZvaWQg
ZGlkU2Nyb2xsKCk7CiAKQEAgLTE1Niw2ICsxNTYsMTMgQEAgcHVibGljOgogICAgIHN0YXRpYyBE
b2N1bWVudExvYWRlciogYXNzZXJ0RG9jdW1lbnRMb2FkZXIoRXJyb3JTdHJpbmcqLCBGcmFtZSop
OwogCiBwcml2YXRlOgorICAgIHN0cnVjdCBGcmFtZVBhaW50Q29udGV4dCB7CisgICAgICAgIEdy
YXBoaWNzQ29udGV4dCogbV9jb250ZXh0OworICAgICAgICBMYXlvdXRSZWN0IG1fbGFzdFBhaW50
UmVjdDsKKworICAgICAgICBGcmFtZVBhaW50Q29udGV4dCgpOworICAgIH07CisKICAgICBJbnNw
ZWN0b3JQYWdlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIFBhZ2UqLCBJbnNwZWN0b3JBZ2Vu
dCosIEluc3BlY3RvclN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgSW5zcGVjdG9yQ2xp
ZW50KiwgSW5zcGVjdG9yT3ZlcmxheSopOwogICAgIHZvaWQgdXBkYXRlVmlld01ldHJpY3MoaW50
LCBpbnQsIGRvdWJsZSwgYm9vbCk7CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKQEAgLTE3OSw4
ICsxODYsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8RnJhbWUqLCBTdHJpbmc+IG1fZnJhbWVU
b0lkZW50aWZpZXI7CiAgICAgSGFzaE1hcDxTdHJpbmcsIEZyYW1lKj4gbV9pZGVudGlmaWVyVG9G
cmFtZTsKICAgICBIYXNoTWFwPERvY3VtZW50TG9hZGVyKiwgU3RyaW5nPiBtX2xvYWRlclRvSWRl
bnRpZmllcjsKLSAgICBHcmFwaGljc0NvbnRleHQqIG1fbGFzdFBhaW50Q29udGV4dDsKLSAgICBM
YXlvdXRSZWN0IG1fbGFzdFBhaW50UmVjdDsKKyAgICBIYXNoTWFwPEZyYW1lKiwgRnJhbWVQYWlu
dENvbnRleHQ+IG1fZnJhbWVUb1BhaW50Q29udGV4dDsKICAgICBib29sIG1fZGlkTG9hZEV2ZW50
RmlyZTsKICAgICBib29sIG1fZ2VvbG9jYXRpb25PdmVycmlkZGVuOwogICAgIFJlZlB0cjxHZW9s
b2NhdGlvblBvc2l0aW9uPiBtX2dlb2xvY2F0aW9uUG9zaXRpb247CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAKaW5kZXggMWJlMGM1NGMyNWFhOGE5OWI3OTE4OTQ1MTY0ZGNmZjMwZTdjZDcxNS4u
NTlkNGU2MTYzN2UwYzhiYTMzN2RhNGQ1OTE2Y2NhZjFlODE1M2MzOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcApAQCAtMzE2Nyw3ICszMTY3LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnBhaW50
Q29udGVudHMoR3JhcGhpY3NDb250ZXh0KiBwLCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgIGlm
ICghZnJhbWUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uQ29va2llIGNvb2tpZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFBhaW50KG1f
ZnJhbWUuZ2V0KCksIHAsIHJlY3QpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2ls
bFBhaW50KG1fZnJhbWUuZ2V0KCksIHAsIHJlY3QpOwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50
ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKIApAQCAtMzI1OCw3ICszMjU4LDcgQEAgdm9pZCBGcmFt
ZVZpZXc6OnBhaW50Q29udGVudHMoR3JhcGhpY3NDb250ZXh0KiBwLCBjb25zdCBJbnRSZWN0JiBy
ZWN0KQogICAgIGlmIChpc1RvcExldmVsUGFpbnRlcikKICAgICAgICAgc0N1cnJlbnRQYWludFRp
bWVTdGFtcCA9IDA7CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFBhaW50KGNv
b2tpZSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRQYWludChtX2ZyYW1lLmdl
dCgpKTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6OnNldFBhaW50QmVoYXZpb3IoUGFpbnRCZWhhdmlv
ciBiZWhhdmlvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAKaW5kZXggMzgwZjZkMzkyYjNmNWY1NmJmMzZiNGY1MGFkYWZmYWY0ZjhmZjI2OC4u
ZDIyZWQzMzVlZGMzY2NkYWE3NGIyZDQzYWVhNzVlOGYwNTQ2NTdmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTE0OTEsNyArMTQ5
MSw4IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoCiAjZW5kaWYKIAogICAgIGlmIChncmFwaGlj
c0xheWVyID09IG1fZ3JhcGhpY3NMYXllci5nZXQoKSB8fCBncmFwaGljc0xheWVyID09IG1fZm9y
ZWdyb3VuZExheWVyLmdldCgpIHx8IGdyYXBoaWNzTGF5ZXIgPT0gbV9tYXNrTGF5ZXIuZ2V0KCkg
fHwgZ3JhcGhpY3NMYXllciA9PSBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXIuZ2V0KCkpIHsKLSAg
ICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZSA9IEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6d2lsbFBhaW50KG1fb3duaW5nTGF5ZXItPnJlbmRlcmVyKCktPmZyYW1l
KCksICZjb250ZXh0LCBjbGlwKTsKKyAgICAgICAgRnJhbWUqIGZyYW1lID0gbV9vd25pbmdMYXll
ci0+cmVuZGVyZXIoKS0+ZnJhbWUoKTsKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojp3aWxsUGFpbnQoZnJhbWUsICZjb250ZXh0LCBjbGlwKTsKIAogICAgICAgICAvLyBUaGUgZGly
dHlSZWN0IGlzIGluIHRoZSBjb29yZHMgb2YgdGhlIHBhaW50aW5nIHJvb3QuCiAgICAgICAgIElu
dFJlY3QgZGlydHlSZWN0ID0gY2xpcDsKQEAgLTE1MDIsOSArMTUwMyw5IEBAIHZvaWQgUmVuZGVy
TGF5ZXJCYWNraW5nOjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNz
TGF5ZXIsIEdyYXBoCiAgICAgICAgIHBhaW50SW50b0xheWVyKG1fb3duaW5nTGF5ZXIsICZjb250
ZXh0LCBkaXJ0eVJlY3QsIFBhaW50QmVoYXZpb3JOb3JtYWwsIHBhaW50aW5nUGhhc2UsIHJlbmRl
cmVyKCkpOwogCiAgICAgICAgIGlmIChtX3VzaW5nVGlsZWRDYWNoZUxheWVyKQotICAgICAgICAg
ICAgbV9vd25pbmdMYXllci0+cmVuZGVyZXIoKS0+ZnJhbWUoKS0+dmlldygpLT5zZXRMYXN0UGFp
bnRUaW1lKGN1cnJlbnRUaW1lKCkpOworICAgICAgICAgICAgZnJhbWUtPnZpZXcoKS0+c2V0TGFz
dFBhaW50VGltZShjdXJyZW50VGltZSgpKTsKIAotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZFBhaW50KGNvb2tpZSk7CisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkUGFpbnQoZnJhbWUpOwogICAgIH0gZWxzZSBpZiAoZ3JhcGhpY3NMYXllciA9PSBsYXll
ckZvckhvcml6b250YWxTY3JvbGxiYXIoKSkgewogICAgICAgICBwYWludFNjcm9sbGJhcihtX293
bmluZ0xheWVyLT5ob3Jpem9udGFsU2Nyb2xsYmFyKCksIGNvbnRleHQsIGNsaXApOwogICAgIH0g
ZWxzZSBpZiAoZ3JhcGhpY3NMYXllciA9PSBsYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169847</attachid>
            <date>2012-10-22 01:25:26 -0700</date>
            <delta_ts>2012-10-22 10:45:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99849-20121022122404.patch</filename>
            <type>text/plain</type>
            <size>14673</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMDM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWU0OTg0NWRhMzM3OWY1
MTgwZGI0OWJlZmE2NjhjYzBiNDdhOGRiYi4uY2FhZjBiOGRkMzc0M2Q1YTg2MjdmZDI5ZWEzNDY3
ODhmY2RiZjljYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTEwLTE5ICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogcGFpbnQgcmVjdGFuZ2xlcyBhcmUgaW5jb3JyZWN0bHkgc2hvd24gaW4gY2FzZSBzdWJmcmFt
ZXMgYXJlIHByZXNlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk5ODQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTWFpbnRhaW4gYSBwZXItZnJhbWUgY29udGV4dCBmb3IgbGFzdCBwYWludCByZWN0YW5n
ZSBhbmQgZ3JhcGhpY3MgY29udGV4dC4KKyAgICAgICAgTm90ZSB3ZSB1c2UgYSBwZXItZnJhbWUg
bWFwIGluc3RlYWQgb2YgYSBzdGFjayBhcyBhIHByb3Zpc2lvbiBmb3IgYWRkaW5nIGZ1cnRoZXIg
dmlzdWFsaXphdGlvbnMsCisgICAgICAgIGUuZy4gZm9yIGxheW91dCBpbnZhbGlkYXRpb24uCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojp3aWxsUGFpbnRJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkUGFpbnRJbXBsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmg6CisgICAgICAgIChJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUGFpbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRQYWludCk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JQYWdlQWdlbnQ6Okluc3BlY3RvclBhZ2VBZ2VudCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmZyYW1lRGV0YWNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yUGFnZUFnZW50Ojp3aWxsUGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yUGFnZUFnZW50OjpkaWRQYWludCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdl
QWdlbnQ6OkZyYW1lUGFpbnRDb250ZXh0OjpGcmFtZVBhaW50Q29udGV4dCk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50Lmg6CisgICAg
ICAgIChGcmFtZVBhaW50Q29udGV4dCk6CisgICAgICAgIChJbnNwZWN0b3JQYWdlQWdlbnQpOgor
ICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmll
dzo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50Q29udGVu
dHMpOgorCiAyMDEyLTEwLTIxICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgog
CiAgICAgICAgIFtWOF0gVjhFbmFibGVQZXJDb250ZXh0IHNob3VsZG4ndCByZXF1aXJlIGRvY3Vt
ZW50KCkgYWNjZXNzb3IgdG8gdGhlIG5hdGl2ZSBvYmplY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDgxZGRl
ZDNlMDVmMGE3NWMxOGVkYWQwMWE4Y2FlMzE4YTk2ZGI0ZWUuLjAzNmIxN2ExZWVmZWQwNTUwMDU3
NmRhMzZkOWFmMzk4NjY3ZjhmMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC00OTQsMjUgKzQ5NCwyMSBAQCB2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRGlzcGF0Y2hYSFJMb2FkRXZlbnRJbXBs
KGNvbnN0IEluc3BlY3Rvckluc3RydQogICAgICAgICB0aW1lbGluZUFnZW50LT5kaWREaXNwYXRj
aFhIUkxvYWRFdmVudCgpOwogfQogCi1JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUGFpbnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbmdBZ2VudHMsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5
b3V0UmVjdCYgcmVjdCwgRnJhbWUqIGZyYW1lKQordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OndpbGxQYWludEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50
cywgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0JiByZWN0LCBGcmFt
ZSogZnJhbWUpCiB7CiAgICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50ID0gaW5z
dHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCi0gICAgICAgIHBhZ2VBZ2Vu
dC0+d2lsbFBhaW50KGNvbnRleHQsIHJlY3QpOworICAgICAgICBwYWdlQWdlbnQtPndpbGxQYWlu
dChjb250ZXh0LCByZWN0LCBmcmFtZSk7CiAKLSAgICBpbnQgdGltZWxpbmVBZ2VudElkID0gMDsK
LSAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1l
bnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkgeworICAgIGlmIChJbnNwZWN0
b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5z
cGVjdG9yVGltZWxpbmVBZ2VudCgpKQogICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsUGFpbnQo
cmVjdCwgZnJhbWUpOwotICAgICAgICB0aW1lbGluZUFnZW50SWQgPSB0aW1lbGluZUFnZW50LT5p
ZCgpOwotICAgIH0KLSAgICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKGlu
c3RydW1lbnRpbmdBZ2VudHMsIHRpbWVsaW5lQWdlbnRJZCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRQYWludEltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uQ29va2llJiBjb29raWUpCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUGFp
bnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEZyYW1lKiBm
cmFtZSkKIHsKLSAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9
IHJldHJpZXZlVGltZWxpbmVBZ2VudChjb29raWUpKQorICAgIGlmIChJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudCgpKQogICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRQYWludCgpOwotICAgIGlm
IChJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCA9IGNvb2tpZS5maXJzdCA/IGNvb2tpZS5m
aXJzdC0+aW5zcGVjdG9yUGFnZUFnZW50KCkgOiAwKQotICAgICAgICBwYWdlQWdlbnQtPmRpZFBh
aW50KCk7CisgICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50ID0gaW5zdHJ1bWVu
dGluZ0FnZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCisgICAgICAgIHBhZ2VBZ2VudC0+ZGlk
UGFpbnQoZnJhbWUpOwogfQogCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbENv
bXBvc2l0ZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aAppbmRleCA0NTg4ODY1YzZiOTdkZjExMTYzNTc5Y2Q2NWY5NjMzMjgyNWU4ZTdlLi4wOWE0ODRh
OWQwNWY4MTJmNGRlMDcyYmFjNzllMWI4ZTM1ODc3MWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC0xNDEsOCArMTQx
LDggQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRpZFNjcm9sbChQYWdlKik7CiAgICAgc3Rh
dGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsRGlzcGF0Y2hYSFJMb2FkRXZl
bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFhNTEh0dHBSZXF1ZXN0Kik7CiAgICAgc3RhdGlj
IHZvaWQgZGlkRGlzcGF0Y2hYSFJMb2FkRXZlbnQoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uQ29va2llJik7Ci0gICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3
aWxsUGFpbnQoRnJhbWUqLCBHcmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXlvdXRSZWN0Jik7Ci0g
ICAgc3RhdGljIHZvaWQgZGlkUGFpbnQoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29v
a2llJik7CisgICAgc3RhdGljIHZvaWQgd2lsbFBhaW50KEZyYW1lKiwgR3JhcGhpY3NDb250ZXh0
KiwgY29uc3QgTGF5b3V0UmVjdCYpOworICAgIHN0YXRpYyB2b2lkIGRpZFBhaW50KEZyYW1lKik7
CiAgICAgc3RhdGljIHZvaWQgd2lsbENvbXBvc2l0ZShQYWdlKik7CiAgICAgc3RhdGljIHZvaWQg
ZGlkQ29tcG9zaXRlKFBhZ2UqKTsKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Q29va2llIHdpbGxSZWNhbGN1bGF0ZVN0eWxlKERvY3VtZW50Kik7CkBAIC0zMzEsOCArMzMxLDgg
QEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBkaWRTY3JvbGxJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMqKTsKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxE
aXNwYXRjaFhIUkxvYWRFdmVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIFhNTEh0dHBSZXF1
ZXN0KiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogICAgIHN0YXRpYyB2b2lkIGRpZERpc3Bh
dGNoWEhSTG9hZEV2ZW50SW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUm
KTsKLSAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxQYWludElt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJl
Y3QmLCBGcmFtZSopOwotICAgIHN0YXRpYyB2b2lkIGRpZFBhaW50SW1wbChjb25zdCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKKyAgICBzdGF0aWMgdm9pZCB3aWxsUGFpbnRJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMqLCBHcmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXlvdXRSZWN0
JiwgRnJhbWUqKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRQYWludEltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyosIEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQgd2lsbENvbXBvc2l0ZUltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyopOwogICAgIHN0YXRpYyB2b2lkIGRpZENvbXBvc2l0ZUltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyopOwogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29r
aWUgd2lsbFJlY2FsY3VsYXRlU3R5bGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBGcmFtZSop
OwpAQCAtODk5LDIyICs4OTksMjEgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWREaXNwYXRjaFhIUkxvYWRFdmVudChjb25zdCBJbnNwZWN0b3JJbnMKICNlbmRpZgog
fQogCi1pbmxpbmUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6d2lsbFBhaW50KEZyYW1lKiBmcmFtZSwgR3JhcGhpY3NDb250ZXh0KiBjb250
ZXh0LCBjb25zdCBMYXlvdXRSZWN0JiByZWN0KQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjp3aWxsUGFpbnQoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IExheW91dFJlY3QmIHJlY3QpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAg
ICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFMoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29v
a2llKCkpOworICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOwogICAgIGlm
IChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGlu
Z0FnZW50c0ZvckZyYW1lKGZyYW1lKSkKICAgICAgICAgcmV0dXJuIHdpbGxQYWludEltcGwoaW5z
dHJ1bWVudGluZ0FnZW50cywgY29udGV4dCwgcmVjdCwgZnJhbWUpOwogI2VuZGlmCi0gICAgcmV0
dXJuIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSgpOwogfQogCi1pbmxpbmUgdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFBhaW50KGNvbnN0IEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbkNvb2tpZSYgY29va2llKQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRQYWludChGcmFtZSogZnJhbWUpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAg
ICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKLSAgICBpZiAoY29va2llLmZp
cnN0KQotICAgICAgICBkaWRQYWludEltcGwoY29va2llKTsKKyAgICBpZiAoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFt
ZShmcmFtZSkpCisgICAgICAgIHJldHVybiBkaWRQYWludEltcGwoaW5zdHJ1bWVudGluZ0FnZW50
cywgZnJhbWUpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggNzg4Njg1YjFlN2IyZWRjYWFlY2I2NzFkYTQzYmJi
Mjg0ZTYwZTNkYy4uYzRiN2VkMWQ0ODViYzZiYTcwNzlhMzAxODU0MTY2ZmQ5NTkxNWY3NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAg
LTMyOCw3ICszMjgsNiBAQCBJbnNwZWN0b3JQYWdlQWdlbnQ6Okluc3BlY3RvclBhZ2VBZ2VudChJ
bnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLAogICAgICwgbV9mcm9udGVu
ZCgwKQogICAgICwgbV9vdmVybGF5KG92ZXJsYXkpCiAgICAgLCBtX2xhc3RTY3JpcHRJZGVudGlm
aWVyKDApCi0gICAgLCBtX2xhc3RQYWludENvbnRleHQoMCkKICAgICAsIG1fZGlkTG9hZEV2ZW50
RmlyZShmYWxzZSkKICAgICAsIG1fZ2VvbG9jYXRpb25PdmVycmlkZGVuKGZhbHNlKQogewpAQCAt
Nzk4LDYgKzc5Nyw3IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpmcmFtZURldGFjaGVkKEZy
YW1lKiBmcmFtZSkKICAgICAgICAgbV9pZGVudGlmaWVyVG9GcmFtZS5yZW1vdmUoaXRlcmF0b3It
PnZhbHVlKTsKICAgICAgICAgbV9mcmFtZVRvSWRlbnRpZmllci5yZW1vdmUoaXRlcmF0b3IpOwog
ICAgIH0KKyAgICBtX2ZyYW1lVG9QYWludENvbnRleHQucmVtb3ZlKGZyYW1lKTsKIH0KIAogRnJh
bWUqIEluc3BlY3RvclBhZ2VBZ2VudDo6bWFpbkZyYW1lKCkKQEAgLTg3NiwxOSArODc2LDMzIEBA
IHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjphcHBseVNjcmVlbkhlaWdodE92ZXJyaWRlKGxvbmcq
IGhlaWdodCkKICAgICAgICAgKmhlaWdodCA9IGhlaWdodE92ZXJyaWRlOwogfQogCi12b2lkIElu
c3BlY3RvclBhZ2VBZ2VudDo6d2lsbFBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29u
c3QgTGF5b3V0UmVjdCYgcmVjdCkKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50Ojp3aWxsUGFpbnQo
R3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0JiByZWN0LCBGcmFtZSog
ZnJhbWUpCiB7Ci0gICAgaWYgKG1fc3RhdGUtPmdldEJvb2xlYW4oUGFnZUFnZW50U3RhdGU6OnNo
b3dQYWludFJlY3RzKSkgewotICAgICAgICBtX2xhc3RQYWludENvbnRleHQgPSBjb250ZXh0Owot
ICAgICAgICBtX2xhc3RQYWludFJlY3QgPSByZWN0OwotICAgICAgICBtX2xhc3RQYWludFJlY3Qu
aW5mbGF0ZSgtMSk7Ci0gICAgfQorICAgIGlmICghbV9zdGF0ZS0+Z2V0Qm9vbGVhbihQYWdlQWdl
bnRTdGF0ZTo6c2hvd1BhaW50UmVjdHMpKQorICAgICAgICByZXR1cm47CisgICAgSGFzaE1hcDxG
cmFtZSosIEZyYW1lUGFpbnRDb250ZXh0Pjo6aXRlcmF0b3IgaXQgPSBtX2ZyYW1lVG9QYWludENv
bnRleHQuZmluZChmcmFtZSk7CisgICAgaWYgKGl0ID09IG1fZnJhbWVUb1BhaW50Q29udGV4dC5l
bmQoKSkKKyAgICAgICAgaXQgPSBtX2ZyYW1lVG9QYWludENvbnRleHQuYWRkKGZyYW1lLCBGcmFt
ZVBhaW50Q29udGV4dCgpKS5pdGVyYXRvcjsKKyAgICBGcmFtZVBhaW50Q29udGV4dCYgcGFpbnRD
b250ZXh0ID0gaXQtPnZhbHVlOworICAgIHBhaW50Q29udGV4dC5tX2NvbnRleHQgPSBjb250ZXh0
OworICAgIHBhaW50Q29udGV4dC5tX2xhc3RQYWludFJlY3QgPSByZWN0OworICAgIHBhaW50Q29u
dGV4dC5tX2xhc3RQYWludFJlY3QuaW5mbGF0ZSgtMSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUGFn
ZUFnZW50OjpkaWRQYWludCgpCit2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZGlkUGFpbnQoRnJh
bWUqIGZyYW1lKQogewotICAgIGlmICghbV9sYXN0UGFpbnRDb250ZXh0IHx8ICFtX3N0YXRlLT5n
ZXRCb29sZWFuKFBhZ2VBZ2VudFN0YXRlOjpzaG93UGFpbnRSZWN0cykpCisgICAgaWYgKCFtX3N0
YXRlLT5nZXRCb29sZWFuKFBhZ2VBZ2VudFN0YXRlOjpzaG93UGFpbnRSZWN0cykpCisgICAgICAg
IHJldHVybjsKKyAgICBIYXNoTWFwPEZyYW1lKiwgRnJhbWVQYWludENvbnRleHQ+OjppdGVyYXRv
ciBpdCA9IG1fZnJhbWVUb1BhaW50Q29udGV4dC5maW5kKGZyYW1lKTsKKyAgICBpZiAoaXQgPT0g
bV9mcmFtZVRvUGFpbnRDb250ZXh0LmVuZCgpKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIEZyYW1lUGFpbnRDb250ZXh0JiBwYWlu
dENvbnRleHQgPSBpdC0+dmFsdWU7CisgICAgaWYgKCFwYWludENvbnRleHQubV9jb250ZXh0KSB7
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CisgICAgfQog
CiAgICAgc3RhdGljIGludCBjb2xvclNlbGVjdG9yID0gMDsKICAgICBjb25zdCBDb2xvciBjb2xv
cnNbXSA9IHsKQEAgLTg5Nyw5ICs5MTEsOCBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZGlk
UGFpbnQoKQogICAgICAgICBDb2xvcigwLCAwLCAweEZGLCAweDNGKSwKICAgICB9OwogCi0gICAg
bV9vdmVybGF5LT5kcmF3T3V0bGluZShtX2xhc3RQYWludENvbnRleHQsIG1fbGFzdFBhaW50UmVj
dCwgY29sb3JzW2NvbG9yU2VsZWN0b3IrKyAlIFdURl9BUlJBWV9MRU5HVEgoY29sb3JzKV0pOwot
Ci0gICAgbV9sYXN0UGFpbnRDb250ZXh0ID0gMDsKKyAgICBtX292ZXJsYXktPmRyYXdPdXRsaW5l
KHBhaW50Q29udGV4dC5tX2NvbnRleHQsIHBhaW50Q29udGV4dC5tX2xhc3RQYWludFJlY3QsIGNv
bG9yc1tjb2xvclNlbGVjdG9yKysgJSBXVEZfQVJSQVlfTEVOR1RIKGNvbG9ycyldKTsKKyAgICBw
YWludENvbnRleHQubV9jb250ZXh0ID0gMDsKIH0KIAogdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6
OmRpZExheW91dCgpCkBAIC0xMTI5LDYgKzExNDIsMTEgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdl
bnQ6OnNldENvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGUoRXJyb3JTdHJpbmcqLCBib29sIHZpc2li
bGUKICAgICBzZXR0aW5ncy0+c2V0U2hvd1JlcGFpbnRDb3VudGVyKHZpc2libGUpOwogfQogCitJ
bnNwZWN0b3JQYWdlQWdlbnQ6OkZyYW1lUGFpbnRDb250ZXh0OjpGcmFtZVBhaW50Q29udGV4dCgp
CisgICAgOiBtX2NvbnRleHQoMCkKK3sKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JQYWdlQWdlbnQuaAppbmRleCBlNTRiYjcyNTdjZjE5ZmQ5NWIwNjBkMGI5YzljMTA5
N2ZiNTQzNzg1Li5kMjNhMjkxOGNhMWI4N2MxNDE1ZDFhMTFkNmE1YmQ2ZTMwMTIwYzk1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC0xMzYs
OCArMTM2LDggQEAgcHVibGljOgogICAgIHZvaWQgbG9hZGVyRGV0YWNoZWRGcm9tRnJhbWUoRG9j
dW1lbnRMb2FkZXIqKTsKICAgICB2b2lkIGFwcGx5U2NyZWVuV2lkdGhPdmVycmlkZShsb25nKik7
CiAgICAgdm9pZCBhcHBseVNjcmVlbkhlaWdodE92ZXJyaWRlKGxvbmcqKTsKLSAgICB2b2lkIHdp
bGxQYWludChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXlvdXRSZWN0Jik7Ci0gICAgdm9pZCBk
aWRQYWludCgpOworICAgIHZvaWQgd2lsbFBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExh
eW91dFJlY3QmLCBGcmFtZSopOworICAgIHZvaWQgZGlkUGFpbnQoRnJhbWUqKTsKICAgICB2b2lk
IGRpZExheW91dCgpOwogICAgIHZvaWQgZGlkU2Nyb2xsKCk7CiAKQEAgLTE1Niw2ICsxNTYsMTMg
QEAgcHVibGljOgogICAgIHN0YXRpYyBEb2N1bWVudExvYWRlciogYXNzZXJ0RG9jdW1lbnRMb2Fk
ZXIoRXJyb3JTdHJpbmcqLCBGcmFtZSopOwogCiBwcml2YXRlOgorICAgIHN0cnVjdCBGcmFtZVBh
aW50Q29udGV4dCB7CisgICAgICAgIEdyYXBoaWNzQ29udGV4dCogbV9jb250ZXh0OworICAgICAg
ICBMYXlvdXRSZWN0IG1fbGFzdFBhaW50UmVjdDsKKworICAgICAgICBGcmFtZVBhaW50Q29udGV4
dCgpOworICAgIH07CisKICAgICBJbnNwZWN0b3JQYWdlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50
cyosIFBhZ2UqLCBJbnNwZWN0b3JBZ2VudCosIEluc3BlY3RvclN0YXRlKiwgSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyKiwgSW5zcGVjdG9yQ2xpZW50KiwgSW5zcGVjdG9yT3ZlcmxheSopOwogICAgIHZv
aWQgdXBkYXRlVmlld01ldHJpY3MoaW50LCBpbnQsIGRvdWJsZSwgYm9vbCk7CiAjaWYgRU5BQkxF
KFRPVUNIX0VWRU5UUykKQEAgLTE3OSw4ICsxODYsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8
RnJhbWUqLCBTdHJpbmc+IG1fZnJhbWVUb0lkZW50aWZpZXI7CiAgICAgSGFzaE1hcDxTdHJpbmcs
IEZyYW1lKj4gbV9pZGVudGlmaWVyVG9GcmFtZTsKICAgICBIYXNoTWFwPERvY3VtZW50TG9hZGVy
KiwgU3RyaW5nPiBtX2xvYWRlclRvSWRlbnRpZmllcjsKLSAgICBHcmFwaGljc0NvbnRleHQqIG1f
bGFzdFBhaW50Q29udGV4dDsKLSAgICBMYXlvdXRSZWN0IG1fbGFzdFBhaW50UmVjdDsKKyAgICBI
YXNoTWFwPEZyYW1lKiwgRnJhbWVQYWludENvbnRleHQ+IG1fZnJhbWVUb1BhaW50Q29udGV4dDsK
ICAgICBib29sIG1fZGlkTG9hZEV2ZW50RmlyZTsKICAgICBib29sIG1fZ2VvbG9jYXRpb25PdmVy
cmlkZGVuOwogICAgIFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBtX2dlb2xvY2F0aW9uUG9z
aXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggMmQzMTJhMzFhMmQ2MTA4Zjc0
ZTZhZmYzMzgzNGFkYTcwODIxOWI1YS4uMDY5NGY3ZjIxMmViYzcwOTFiYmMzZjY2NjhmYjc4MzA2
ZjNkOTJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMzE3Myw3ICszMTczLDcg
QEAgdm9pZCBGcmFtZVZpZXc6OnBhaW50Q29udGVudHMoR3JhcGhpY3NDb250ZXh0KiBwLCBjb25z
dCBJbnRSZWN0JiByZWN0KQogICAgIGlmICghZnJhbWUoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZSA9IEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6d2lsbFBhaW50KG1fZnJhbWUuZ2V0KCksIHAsIHJlY3QpOworICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFBhaW50KG1fZnJhbWUuZ2V0KCksIHAsIHJlY3QpOwog
CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKIApAQCAtMzI2
NCw3ICszMjY0LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnBhaW50Q29udGVudHMoR3JhcGhpY3NDb250
ZXh0KiBwLCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgIGlmIChpc1RvcExldmVsUGFpbnRlcikK
ICAgICAgICAgc0N1cnJlbnRQYWludFRpbWVTdGFtcCA9IDA7CiAKLSAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZFBhaW50KGNvb2tpZSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRQYWludChtX2ZyYW1lLmdldCgpKTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6OnNldFBh
aW50QmVoYXZpb3IoUGFpbnRCZWhhdmlvciBiZWhhdmlvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggOGMxNDdlMTQxN2JmNzFmMTgx
NjhhMDJmYWY5NDUzZTk3NjkyNDYxZi4uNDU3OWZmMzg4MDZkNDJjNWZkMTQwOTRkZTg3MDU0YmFl
NmQ2YjY3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAKQEAgLTE0OTQsNyArMTQ5NCw4IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpw
YWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoCiAj
ZW5kaWYKIAogICAgIGlmIChncmFwaGljc0xheWVyID09IG1fZ3JhcGhpY3NMYXllci5nZXQoKSB8
fCBncmFwaGljc0xheWVyID09IG1fZm9yZWdyb3VuZExheWVyLmdldCgpIHx8IGdyYXBoaWNzTGF5
ZXIgPT0gbV9tYXNrTGF5ZXIuZ2V0KCkgfHwgZ3JhcGhpY3NMYXllciA9PSBtX3Njcm9sbGluZ0Nv
bnRlbnRzTGF5ZXIuZ2V0KCkpIHsKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29v
a2llIGNvb2tpZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFBhaW50KG1fb3duaW5n
TGF5ZXItPnJlbmRlcmVyKCktPmZyYW1lKCksICZjb250ZXh0LCBjbGlwKTsKKyAgICAgICAgRnJh
bWUqIGZyYW1lID0gbV9vd25pbmdMYXllci0+cmVuZGVyZXIoKS0+ZnJhbWUoKTsKKyAgICAgICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUGFpbnQoZnJhbWUsICZjb250ZXh0LCBjbGlw
KTsKIAogICAgICAgICAvLyBUaGUgZGlydHlSZWN0IGlzIGluIHRoZSBjb29yZHMgb2YgdGhlIHBh
aW50aW5nIHJvb3QuCiAgICAgICAgIEludFJlY3QgZGlydHlSZWN0ID0gY2xpcDsKQEAgLTE1MDUs
OSArMTUwNiw5IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludENvbnRlbnRzKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoCiAgICAgICAgIHBhaW50SW50b0xh
eWVyKG1fb3duaW5nTGF5ZXIsICZjb250ZXh0LCBkaXJ0eVJlY3QsIFBhaW50QmVoYXZpb3JOb3Jt
YWwsIHBhaW50aW5nUGhhc2UsIHJlbmRlcmVyKCkpOwogCiAgICAgICAgIGlmIChtX3VzaW5nVGls
ZWRDYWNoZUxheWVyKQotICAgICAgICAgICAgbV9vd25pbmdMYXllci0+cmVuZGVyZXIoKS0+ZnJh
bWUoKS0+dmlldygpLT5zZXRMYXN0UGFpbnRUaW1lKGN1cnJlbnRUaW1lKCkpOworICAgICAgICAg
ICAgZnJhbWUtPnZpZXcoKS0+c2V0TGFzdFBhaW50VGltZShjdXJyZW50VGltZSgpKTsKIAotICAg
ICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFBhaW50KGNvb2tpZSk7CisgICAgICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUGFpbnQoZnJhbWUpOwogICAgIH0gZWxzZSBp
ZiAoZ3JhcGhpY3NMYXllciA9PSBsYXllckZvckhvcml6b250YWxTY3JvbGxiYXIoKSkgewogICAg
ICAgICBwYWludFNjcm9sbGJhcihtX293bmluZ0xheWVyLT5ob3Jpem9udGFsU2Nyb2xsYmFyKCks
IGNvbnRleHQsIGNsaXApOwogICAgIH0gZWxzZSBpZiAoZ3JhcGhpY3NMYXllciA9PSBsYXllckZv
clZlcnRpY2FsU2Nyb2xsYmFyKCkpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169939</attachid>
            <date>2012-10-22 10:45:20 -0700</date>
            <delta_ts>2012-10-23 08:43:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99849-20121022214357.patch</filename>
            <type>text/plain</type>
            <size>15641</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTg1ZjZmZDdhZDRmNGQ0
MTM4Y2I0NmUzOWVmZjQ2MjEwZjAxM2VlZi4uZDRiNTlmMThiNzI5NGRiNjU0NTM3MzJjNmEyM2U5
NDI3YWNkNGRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTEwLTIyICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogcGFpbnQgcmVjdGFuZ2xlcyBhcmUgaW5jb3JyZWN0bHkgc2hvd24gaW4gY2FzZSBzdWJmcmFt
ZXMgYXJlIHByZXNlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk5ODQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTW92ZSBHcmFwaGljc0NvbnRleHQgYW5kIHBhaW50IHJlY3RhbmdsZSBmcm9tIHdpbGxQ
YWludCgpIHRvIGRpZFBhaW50KCksIHNvIHdlIGRvbid0IGhhdmUKKyAgICAgICAgdG8gc3RvcmUg
dGhlbSBhcyBhIHN0YXRlIG9mIEluc3BlY3RvclBhZ2VBZ2VudAorCisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFBhaW50SW1wbCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFBhaW50SW1w
bCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAg
ICAgICAoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUGFpbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50
OjpkaWRQYWludCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxQYWludCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRQYWludCk6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgKEluc3BlY3RvclRpbWVs
aW5lQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3Bw
OgorICAgICAgICAqIGluc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaDoKKyAgICAgICAg
KFRpbWVsaW5lUmVjb3JkRmFjdG9yeSk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyQmFja2luZzo6cGFpbnRDb250ZW50cyk6CisKIDIwMTItMTAtMjIgIEphbiBLZXJvbW5l
cyAgPGphbnhAbGludXguY29tPgogCiAgICAgICAgIE1vdmVkIGNtZGV2dG9vbHMuanMgdG8gZm9s
ZGVyIGNtLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmNwcAppbmRleCA4MWRkZWQzZTA1ZjBhNzVjMThlZGFkMDFhOGNhZTMxOGE5
NmRiNGVlLi41NjE0ZDg2MmVkODBhNDJmMTMwOTU1YTcwYWIwZWYwNTEyZDQ2NGFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcApAQCAtNDk0LDI1ICs0OTQsMjIgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZERpc3BhdGNoWEhSTG9hZEV2ZW50SW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnUKICAgICAg
ICAgdGltZWxpbmVBZ2VudC0+ZGlkRGlzcGF0Y2hYSFJMb2FkRXZlbnQoKTsKIH0KIAotSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFBh
aW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBHcmFwaGlj
c0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheW91dFJlY3QmIHJlY3QsIEZyYW1lKiBmcmFtZSkK
K0luc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OndpbGxQYWludEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywg
RnJhbWUqIGZyYW1lKQogewotICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCA9
IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpKQotICAgICAgICBwYWdl
QWdlbnQtPndpbGxQYWludChjb250ZXh0LCByZWN0KTsKLQogICAgIGludCB0aW1lbGluZUFnZW50
SWQgPSAwOwogICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0g
aW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKSB7Ci0gICAgICAg
IHRpbWVsaW5lQWdlbnQtPndpbGxQYWludChyZWN0LCBmcmFtZSk7CisgICAgICAgIHRpbWVsaW5l
QWdlbnQtPndpbGxQYWludChmcmFtZSk7CiAgICAgICAgIHRpbWVsaW5lQWdlbnRJZCA9IHRpbWVs
aW5lQWdlbnQtPmlkKCk7CiAgICAgfQogICAgIHJldHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25Db29raWUoaW5zdHJ1bWVudGluZ0FnZW50cywgdGltZWxpbmVBZ2VudElkKTsKIH0KIAotdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFBhaW50SW1wbChjb25zdCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25Db29raWUmIGNvb2tpZSkKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRQYWludEltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJiBj
b29raWUsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYgcmVjdCkK
IHsKICAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IHJldHJp
ZXZlVGltZWxpbmVBZ2VudChjb29raWUpKQotICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRQYWlu
dCgpOworICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRQYWludChyZWN0KTsKICAgICBpZiAoSW5z
cGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQgPSBjb29raWUuZmlyc3QgPyBjb29raWUuZmlyc3Qt
Pmluc3BlY3RvclBhZ2VBZ2VudCgpIDogMCkKLSAgICAgICAgcGFnZUFnZW50LT5kaWRQYWludCgp
OworICAgICAgICBwYWdlQWdlbnQtPmRpZFBhaW50KGNvbnRleHQsIHJlY3QpOwogfQogCiB2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbENvbXBvc2l0ZUltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCA0NTg4ODY1YzZiOTdkZjEx
MTYzNTc5Y2Q2NWY5NjMzMjgyNWU4ZTdlLi45MzY2MTE5MTgzZjJhODdhZWE0Y2NkODQ5OTAxOTJk
Nzg3MjNlNTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oCkBAIC0xNDEsOCArMTQxLDggQEAgcHVibGljOgogICAgIHN0YXRp
YyB2b2lkIGRpZFNjcm9sbChQYWdlKik7CiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbkNvb2tpZSB3aWxsRGlzcGF0Y2hYSFJMb2FkRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFhNTEh0dHBSZXF1ZXN0Kik7CiAgICAgc3RhdGljIHZvaWQgZGlkRGlzcGF0Y2hYSFJMb2Fk
RXZlbnQoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7Ci0gICAgc3RhdGlj
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsUGFpbnQoRnJhbWUqLCBHcmFwaGlj
c0NvbnRleHQqLCBjb25zdCBMYXlvdXRSZWN0Jik7Ci0gICAgc3RhdGljIHZvaWQgZGlkUGFpbnQo
Y29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7CisgICAgc3RhdGljIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsUGFpbnQoRnJhbWUqKTsKKyAgICBzdGF0aWMg
dm9pZCBkaWRQYWludChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmLCBHcmFw
aGljc0NvbnRleHQqLCBjb25zdCBMYXlvdXRSZWN0Jik7CiAgICAgc3RhdGljIHZvaWQgd2lsbENv
bXBvc2l0ZShQYWdlKik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ29tcG9zaXRlKFBhZ2UqKTsKICAg
ICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxSZWNhbGN1bGF0ZVN0
eWxlKERvY3VtZW50Kik7CkBAIC0zMzEsOCArMzMxLDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMg
dm9pZCBkaWRTY3JvbGxJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqKTsKICAgICBzdGF0aWMgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxEaXNwYXRjaFhIUkxvYWRFdmVudEltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyosIFhNTEh0dHBSZXF1ZXN0KiwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCopOwogICAgIHN0YXRpYyB2b2lkIGRpZERpc3BhdGNoWEhSTG9hZEV2ZW50SW1wbChjb25z
dCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKLSAgICBzdGF0aWMgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxQYWludEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyos
IEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3QmLCBGcmFtZSopOwotICAgIHN0YXRp
YyB2b2lkIGRpZFBhaW50SW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUm
KTsKKyAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxQYWludElt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEZyYW1lKik7CisgICAgc3RhdGljIHZvaWQgZGlkUGFp
bnRJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYsIEdyYXBoaWNzQ29u
dGV4dCosIGNvbnN0IExheW91dFJlY3QmKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsQ29tcG9zaXRl
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ29tcG9zaXRl
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKik7CiAgICAgc3RhdGljIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbkNvb2tpZSB3aWxsUmVjYWxjdWxhdGVTdHlsZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyosIEZyYW1lKik7CkBAIC04OTksMjIgKzg5OSwyMiBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZERpc3BhdGNoWEhSTG9hZEV2ZW50KGNvbnN0IEluc3BlY3Rvcklu
cwogI2VuZGlmCiB9CiAKLWlubGluZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUGFpbnQoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0Nv
bnRleHQqIGNvbnRleHQsIGNvbnN0IExheW91dFJlY3QmIHJlY3QpCitpbmxpbmUgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFBhaW50
KEZyYW1lKiBmcmFtZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIEZBU1RfUkVUVVJO
X0lGX05PX0ZST05URU5EUyhJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoKSk7CiAgICAg
aWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50
aW5nQWdlbnRzRm9yRnJhbWUoZnJhbWUpKQotICAgICAgICByZXR1cm4gd2lsbFBhaW50SW1wbChp
bnN0cnVtZW50aW5nQWdlbnRzLCBjb250ZXh0LCByZWN0LCBmcmFtZSk7CisgICAgICAgIHJldHVy
biB3aWxsUGFpbnRJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIGZyYW1lKTsKICNlbmRpZgogICAg
IHJldHVybiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoKTsKIH0KIAotaW5saW5lIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRQYWludChjb25zdCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25Db29raWUmIGNvb2tpZSkKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkUGFpbnQoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJiBj
b29raWUsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYgcmVjdCkK
IHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5E
Uyh2b2lkKCkpOwogICAgIGlmIChjb29raWUuZmlyc3QpCi0gICAgICAgIGRpZFBhaW50SW1wbChj
b29raWUpOworICAgICAgICBkaWRQYWludEltcGwoY29va2llLCBjb250ZXh0LCByZWN0KTsKICNl
bmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdl
bnQuY3BwCmluZGV4IDc4ODY4NWIxZTdiMmVkY2FhZWNiNjcxZGE0M2JiYjI4NGU2MGUzZGMuLjMy
OWY4OWM5ODNlMjIzMjk5YTY2YzdjMGYyZmVmYTc5ZTQxZTk5ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC0zMjgsNyArMzI4LDYg
QEAgSW5zcGVjdG9yUGFnZUFnZW50OjpJbnNwZWN0b3JQYWdlQWdlbnQoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywKICAgICAsIG1fZnJvbnRlbmQoMCkKICAgICAsIG1f
b3ZlcmxheShvdmVybGF5KQogICAgICwgbV9sYXN0U2NyaXB0SWRlbnRpZmllcigwKQotICAgICwg
bV9sYXN0UGFpbnRDb250ZXh0KDApCiAgICAgLCBtX2RpZExvYWRFdmVudEZpcmUoZmFsc2UpCiAg
ICAgLCBtX2dlb2xvY2F0aW9uT3ZlcnJpZGRlbihmYWxzZSkKIHsKQEAgLTg3NiwxOCArODc1LDkg
QEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmFwcGx5U2NyZWVuSGVpZ2h0T3ZlcnJpZGUobG9u
ZyogaGVpZ2h0KQogICAgICAgICAqaGVpZ2h0ID0gaGVpZ2h0T3ZlcnJpZGU7CiB9CiAKLXZvaWQg
SW5zcGVjdG9yUGFnZUFnZW50Ojp3aWxsUGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBj
b25zdCBMYXlvdXRSZWN0JiByZWN0KQordm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpZFBhaW50
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYgcmVjdCkKIHsKLSAg
ICBpZiAobV9zdGF0ZS0+Z2V0Qm9vbGVhbihQYWdlQWdlbnRTdGF0ZTo6c2hvd1BhaW50UmVjdHMp
KSB7Ci0gICAgICAgIG1fbGFzdFBhaW50Q29udGV4dCA9IGNvbnRleHQ7Ci0gICAgICAgIG1fbGFz
dFBhaW50UmVjdCA9IHJlY3Q7Ci0gICAgICAgIG1fbGFzdFBhaW50UmVjdC5pbmZsYXRlKC0xKTsK
LSAgICB9Ci19Ci0KLXZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpkaWRQYWludCgpCi17Ci0gICAg
aWYgKCFtX2xhc3RQYWludENvbnRleHQgfHwgIW1fc3RhdGUtPmdldEJvb2xlYW4oUGFnZUFnZW50
U3RhdGU6OnNob3dQYWludFJlY3RzKSkKKyAgICBpZiAoIW1fc3RhdGUtPmdldEJvb2xlYW4oUGFn
ZUFnZW50U3RhdGU6OnNob3dQYWludFJlY3RzKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgc3Rh
dGljIGludCBjb2xvclNlbGVjdG9yID0gMDsKQEAgLTg5Nyw5ICs4ODcsOSBAQCB2b2lkIEluc3Bl
Y3RvclBhZ2VBZ2VudDo6ZGlkUGFpbnQoKQogICAgICAgICBDb2xvcigwLCAwLCAweEZGLCAweDNG
KSwKICAgICB9OwogCi0gICAgbV9vdmVybGF5LT5kcmF3T3V0bGluZShtX2xhc3RQYWludENvbnRl
eHQsIG1fbGFzdFBhaW50UmVjdCwgY29sb3JzW2NvbG9yU2VsZWN0b3IrKyAlIFdURl9BUlJBWV9M
RU5HVEgoY29sb3JzKV0pOwotCi0gICAgbV9sYXN0UGFpbnRDb250ZXh0ID0gMDsKKyAgICBMYXlv
dXRSZWN0IGluZmxhdGVkUmVjdChyZWN0KTsKKyAgICBpbmZsYXRlZFJlY3QuaW5mbGF0ZSgtMSk7
CisgICAgbV9vdmVybGF5LT5kcmF3T3V0bGluZShjb250ZXh0LCBpbmZsYXRlZFJlY3QsIGNvbG9y
c1tjb2xvclNlbGVjdG9yKysgJSBXVEZfQVJSQVlfTEVOR1RIKGNvbG9ycyldKTsKIH0KIAogdm9p
ZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpZExheW91dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKaW5kZXggZTU0YmI3MjU3Y2YxOWZkOTViMDYwZDBi
OWM5YzEwOTdmYjU0Mzc4NS4uMjc2OGJiMTdmYmUyODZjZjY1NTQ5Yzc2OTAzMWI1ZWJkZmUyOTJh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2Vu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaApA
QCAtMTM2LDggKzEzNiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGxvYWRlckRldGFjaGVkRnJvbUZy
YW1lKERvY3VtZW50TG9hZGVyKik7CiAgICAgdm9pZCBhcHBseVNjcmVlbldpZHRoT3ZlcnJpZGUo
bG9uZyopOwogICAgIHZvaWQgYXBwbHlTY3JlZW5IZWlnaHRPdmVycmlkZShsb25nKik7Ci0gICAg
dm9pZCB3aWxsUGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0UmVjdCYpOwotICAg
IHZvaWQgZGlkUGFpbnQoKTsKKyAgICB2b2lkIGRpZFBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IExheW91dFJlY3QmKTsKICAgICB2b2lkIGRpZExheW91dCgpOwogICAgIHZvaWQgZGlkU2Ny
b2xsKCk7CiAKQEAgLTE3OSw4ICsxNzgsNiBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8RnJhbWUq
LCBTdHJpbmc+IG1fZnJhbWVUb0lkZW50aWZpZXI7CiAgICAgSGFzaE1hcDxTdHJpbmcsIEZyYW1l
Kj4gbV9pZGVudGlmaWVyVG9GcmFtZTsKICAgICBIYXNoTWFwPERvY3VtZW50TG9hZGVyKiwgU3Ry
aW5nPiBtX2xvYWRlclRvSWRlbnRpZmllcjsKLSAgICBHcmFwaGljc0NvbnRleHQqIG1fbGFzdFBh
aW50Q29udGV4dDsKLSAgICBMYXlvdXRSZWN0IG1fbGFzdFBhaW50UmVjdDsKICAgICBib29sIG1f
ZGlkTG9hZEV2ZW50RmlyZTsKICAgICBib29sIG1fZ2VvbG9jYXRpb25PdmVycmlkZGVuOwogICAg
IFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBtX2dlb2xvY2F0aW9uUG9zaXRpb247CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAK
aW5kZXggMWEyMjgxNTI5N2UxOTE0NmEwMTRlNGFjNWY5NWVjMDkxMzFjZDA4YS4uNWJjZjY3OTIz
ZjQ2ZjdmZjliMDMxZjQyMzcxNWY1MDMwNzJlZWUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApAQCAtMjY4LDEzICsyNjgs
MTYgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRSZWNhbGN1bGF0ZVN0eWxlKCkK
ICAgICBkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlOjpSZWNhbGN1
bGF0ZVN0eWxlcyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFBhaW50
KGNvbnN0IExheW91dFJlY3QmIHJlY3QsIEZyYW1lKiBmcmFtZSkKK3ZvaWQgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6d2lsbFBhaW50KEZyYW1lKiBmcmFtZSkKIHsKLSAgICBwdXNoQ3VycmVudFJl
Y29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVBhaW50RGF0YShyZWN0KSwgVGltZWxp
bmVSZWNvcmRUeXBlOjpQYWludCwgdHJ1ZSwgZnJhbWUsIHRydWUpOworICAgIHB1c2hDdXJyZW50
UmVjb3JkKEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6UGFp
bnQsIHRydWUsIGZyYW1lLCB0cnVlKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpkaWRQYWludCgpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFBhaW50KGNvbnN0
IExheW91dFJlY3QmIHJlY3QpCiB7CisgICAgVGltZWxpbmVSZWNvcmRFbnRyeSBlbnRyeSA9IG1f
cmVjb3JkU3RhY2subGFzdCgpOworICAgIEFTU0VSVChlbnRyeS50eXBlID09IFRpbWVsaW5lUmVj
b3JkVHlwZTo6UGFpbnQpOworICAgIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6YWRkUmVjdERhdGEo
ZW50cnkuZGF0YS5nZXQoKSwgcmVjdCk7CiAgICAgZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKFRp
bWVsaW5lUmVjb3JkVHlwZTo6UGFpbnQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAppbmRleCA4ZjA0OGNmY2IyN2MwMDdjOTg1
NDMzMTQ3OGNjOWYwN2JlMDU0YjdkLi5hZDgyYWE4YTZkNDg2MGQ5YjI2MzQ4YTg4MDdhOWJmYTlm
NTY4YjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1l
bGluZUFnZW50LmgKQEAgLTEwNSw4ICsxMDUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB3aWxsUmVj
YWxjdWxhdGVTdHlsZShGcmFtZSopOwogICAgIHZvaWQgZGlkUmVjYWxjdWxhdGVTdHlsZSgpOwog
Ci0gICAgdm9pZCB3aWxsUGFpbnQoY29uc3QgTGF5b3V0UmVjdCYsIEZyYW1lKik7Ci0gICAgdm9p
ZCBkaWRQYWludCgpOworICAgIHZvaWQgd2lsbFBhaW50KEZyYW1lKik7CisgICAgdm9pZCBkaWRQ
YWludChjb25zdCBMYXlvdXRSZWN0Jik7CiAKICAgICB2b2lkIHdpbGxDb21wb3NpdGUoKTsKICAg
ICB2b2lkIGRpZENvbXBvc2l0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAppbmRleCAxYWY1ODBhNTc1ZTQxY2M2OGJiMTBlOGRk
OGNhODhmODFjZWFkYTY1Li43NzZiNTlmNmYwMDMxMjI4OWExNjg0NTJmMzc2MDZmNzliNWE5YTQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0
b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0
b3J5LmNwcApAQCAtMTcwLDEzICsxNzAsNiBAQCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZWNlaXZlUmVzb3VyY2VEYXRhKGNvbgogICAg
IHJldHVybiBkYXRhLnJlbGVhc2UoKTsKIH0KICAgICAKLVBhc3NSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVBhaW50RGF0YShjb25zdCBMYXlvdXRS
ZWN0JiByZWN0KQotewotICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0
b3JPYmplY3Q6OmNyZWF0ZSgpOwotICAgIGFkZFJlY3REYXRhKGRhdGEuZ2V0KCksIHJlY3QpOwot
ICAgIHJldHVybiBkYXRhLnJlbGVhc2UoKTsKLX0KLQogUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRGVjb2RlSW1hZ2VEYXRhKGNvbnN0IFN0
cmluZyYgaW1hZ2VUeXBlKQogewogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJ
bnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oCmluZGV4IGYyNDQzNmFiYzZkODY1OTJkZWE4MzU2M2Jk
MmQ1ZGRmZmQ5YzIzZmQuLmM1ZGNlYzJiNzlmZjNlMjExOGRjZDE4MGM3OGNlM2MzNDQ3NmM2ZmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3Rv
cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5
LmgKQEAgLTc1LDggKzc1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlUmVzb3VyY2VGaW5pc2hEYXRhKGNv
bnN0IFN0cmluZyYgcmVxdWVzdElkLCBib29sIGRpZEZhaWwsIGRvdWJsZSBmaW5pc2hUaW1lKTsK
IAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZVBhaW50
RGF0YShjb25zdCBMYXlvdXRSZWN0Jik7Ci0KICAgICAgICAgc3RhdGljIHZvaWQgYWRkUmVjdERh
dGEoSW5zcGVjdG9yT2JqZWN0KiwgY29uc3QgTGF5b3V0UmVjdCYpOwogCiAgICAgICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlRGVjb2RlSW1hZ2VEYXRhKGNvbnN0
IFN0cmluZyYgaW1hZ2VUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAyZDMx
MmEzMWEyZDYxMDhmNzRlNmFmZjMzODM0YWRhNzA4MjE5YjVhLi43MzkwMjhkZWE5ZjQ5MTZlOWU5
Y2JiMWViM2JkOTM2Y2IzNzYxMzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0z
MTczLDcgKzMxNzMsNyBAQCB2b2lkIEZyYW1lVmlldzo6cGFpbnRDb250ZW50cyhHcmFwaGljc0Nv
bnRleHQqIHAsIGNvbnN0IEludFJlY3QmIHJlY3QpCiAgICAgaWYgKCFmcmFtZSgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgY29va2llID0g
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUGFpbnQobV9mcmFtZS5nZXQoKSwgcCwgcmVj
dCk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZSA9IEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6d2lsbFBhaW50KG1fZnJhbWUuZ2V0KCkpOwogCiAgICAgRG9jdW1l
bnQqIGRvY3VtZW50ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKIApAQCAtMzI2NCw3ICszMjY0LDcg
QEAgdm9pZCBGcmFtZVZpZXc6OnBhaW50Q29udGVudHMoR3JhcGhpY3NDb250ZXh0KiBwLCBjb25z
dCBJbnRSZWN0JiByZWN0KQogICAgIGlmIChpc1RvcExldmVsUGFpbnRlcikKICAgICAgICAgc0N1
cnJlbnRQYWludFRpbWVTdGFtcCA9IDA7CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZFBhaW50KGNvb2tpZSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRQYWlu
dChjb29raWUsIHAsIHJlY3QpOwogfQogCiB2b2lkIEZyYW1lVmlldzo6c2V0UGFpbnRCZWhhdmlv
cihQYWludEJlaGF2aW9yIGJlaGF2aW9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCA4YzE0N2UxNDE3YmY3MWYxODE2OGEwMmZhZjk0
NTNlOTc2OTI0NjFmLi4yMTBlMmQwZTBlY2MzMjk1ZDE5OTk3MzNjODE0ZjI1MGYzYjJiZGQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApA
QCAtMTQ5NCw3ICsxNDk0LDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50Q29udGVu
dHMoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcGgKICNlbmRpZgogCiAg
ICAgaWYgKGdyYXBoaWNzTGF5ZXIgPT0gbV9ncmFwaGljc0xheWVyLmdldCgpIHx8IGdyYXBoaWNz
TGF5ZXIgPT0gbV9mb3JlZ3JvdW5kTGF5ZXIuZ2V0KCkgfHwgZ3JhcGhpY3NMYXllciA9PSBtX21h
c2tMYXllci5nZXQoKSB8fCBncmFwaGljc0xheWVyID09IG1fc2Nyb2xsaW5nQ29udGVudHNMYXll
ci5nZXQoKSkgewotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgY29va2ll
ID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUGFpbnQobV9vd25pbmdMYXllci0+cmVu
ZGVyZXIoKS0+ZnJhbWUoKSwgJmNvbnRleHQsIGNsaXApOworICAgICAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25Db29raWUgY29va2llID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxs
UGFpbnQobV9vd25pbmdMYXllci0+cmVuZGVyZXIoKS0+ZnJhbWUoKSk7CiAKICAgICAgICAgLy8g
VGhlIGRpcnR5UmVjdCBpcyBpbiB0aGUgY29vcmRzIG9mIHRoZSBwYWludGluZyByb290LgogICAg
ICAgICBJbnRSZWN0IGRpcnR5UmVjdCA9IGNsaXA7CkBAIC0xNTA3LDcgKzE1MDcsNyBAQCB2b2lk
IFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBn
cmFwaGljc0xheWVyLCBHcmFwaAogICAgICAgICBpZiAobV91c2luZ1RpbGVkQ2FjaGVMYXllcikK
ICAgICAgICAgICAgIG1fb3duaW5nTGF5ZXItPnJlbmRlcmVyKCktPmZyYW1lKCktPnZpZXcoKS0+
c2V0TGFzdFBhaW50VGltZShjdXJyZW50VGltZSgpKTsKIAotICAgICAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZFBhaW50KGNvb2tpZSk7CisgICAgICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkUGFpbnQoY29va2llLCAmY29udGV4dCwgY2xpcCk7CiAgICAgfSBlbHNlIGlm
IChncmFwaGljc0xheWVyID09IGxheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcigpKSB7CiAgICAg
ICAgIHBhaW50U2Nyb2xsYmFyKG1fb3duaW5nTGF5ZXItPmhvcml6b250YWxTY3JvbGxiYXIoKSwg
Y29udGV4dCwgY2xpcCk7CiAgICAgfSBlbHNlIGlmIChncmFwaGljc0xheWVyID09IGxheWVyRm9y
VmVydGljYWxTY3JvbGxiYXIoKSkgewo=
</data>
<flag name="review"
          id="183390"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>