<?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>111932</bug_id>
          
          <creation_ts>2013-03-09 17:34:45 -0800</creation_ts>
          <short_desc>Add a heuristic to determine the “primary” snapshotted plugin</short_desc>
          <delta_ts>2015-05-21 03:57:05 -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>Plug-ins</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>145252</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>jonlee</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>851845</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-03-09 17:34:45 -0800</bug_when>
    <thetext>So it could be styled differently, etc. via a UA stylesheet.

&lt;rdar://problem/13270208&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851846</commentid>
    <comment_count>1</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-03-09 17:39:09 -0800</bug_when>
    <thetext>Putting it in WK2 because that’ll keep it out of the way for most people... while a heuristic like this doesn’t really belong in WebKit at all - it’s going to require a good bit of effort to make it possible to put it in the client. We plan to eventually expose enough knowledge to do that, but not yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851853</commentid>
    <comment_count>2</comment_count>
      <attachid>192362</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-03-09 18:09:51 -0800</bug_when>
    <thetext>Created attachment 192362
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851854</commentid>
    <comment_count>3</comment_count>
      <attachid>192363</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-03-09 18:12:35 -0800</bug_when>
    <thetext>Created attachment 192363
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851856</commentid>
    <comment_count>4</comment_count>
      <attachid>192363</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-03-09 18:18:34 -0800</bug_when>
    <thetext>Comment on attachment 192363
patch

Attachment 192363 did not pass qt-wk2-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/17009871</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851857</commentid>
    <comment_count>5</comment_count>
      <attachid>192363</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-03-09 18:19:12 -0800</bug_when>
    <thetext>Comment on attachment 192363
patch

Attachment 192363 did not pass efl-ews (efl):
Output: http://webkit-commit-queue.appspot.com/results/17122184</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851858</commentid>
    <comment_count>6</comment_count>
      <attachid>192364</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-03-09 18:21:54 -0800</bug_when>
    <thetext>Created attachment 192364
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851863</commentid>
    <comment_count>7</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-03-09 19:13:40 -0800</bug_when>
    <thetext>Can we use a different #define that PLATFORM(MAC) for this, at the very least to be more descriptive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851864</commentid>
    <comment_count>8</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-03-09 19:14:52 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Can we use a different #define that PLATFORM(MAC) for this, at the very least to be more descriptive.

Yeah, I was considering that. Currently trying to consolidate all of the #ifs in one file so that that becomes less touch-Platform.h and more add-something-to-the-top-of-WebPage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851866</commentid>
    <comment_count>9</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-03-09 19:25:36 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; Can we use a different #define that PLATFORM(MAC) for this, at the very least to be more descriptive.
&gt; 
&gt; Yeah, I was considering that. Currently trying to consolidate all of the #ifs in one file so that that becomes less touch-Platform.h and more add-something-to-the-top-of-WebPage.

I’m having a hard time telling if that’s a legitimate thing to do. People seem to be using WTF_USE_ for that, which I think is wrong, it should be WTF_ENABLE_, and it’s not done very often. I’ll move it to Platform.h/wherever if someone complains.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851868</commentid>
    <comment_count>10</comment_count>
      <attachid>192367</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-03-09 19:37:07 -0800</bug_when>
    <thetext>Created attachment 192367
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851967</commentid>
    <comment_count>11</comment_count>
      <attachid>192367</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-03-10 13:36:32 -0700</bug_when>
    <thetext>Comment on attachment 192367
patch

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

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:3953
&gt; +            LayoutUnit contentArea = renderBox-&gt;contentWidth() * renderBox-&gt;contentHeight();
&gt; +
&gt; +            if (renderBox-&gt;contentWidth() &lt; primarySnapshottedPlugInMinimumWidth || renderBox-&gt;contentHeight() &lt; primarySnapshottedPlugInMinimumHeight)
&gt; +                continue;

You can swap these two statements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851970</commentid>
    <comment_count>12</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-03-10 13:52:56 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/145332</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192362</attachid>
            <date>2013-03-09 18:09:51 -0800</date>
            <delta_ts>2013-03-09 18:12:35 -0800</delta_ts>
            <desc>patch</desc>
            <filename>ps-onepluin-opensource.diff</filename>
            <type>text/plain</type>
            <size>13453</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KaW5kZXggOGRkNjdjMC4uYTExNDBjMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KQEAgLTc2LDYgKzc2LDcgQEAgX19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50NmNyZWF0ZUVS
S04zV1RGMTJBdG9taWNTdHJpbmdFTlMxXzEwUGFzc1JlZlB0cklOU185RE9NV2kKIF9fWk43V2Vi
Q29yZTEwTW91c2VFdmVudDZjcmVhdGVFUktOM1dURjEyQXRvbWljU3RyaW5nRWJiTlMxXzEwUGFz
c1JlZlB0cklOU185RE9NV2luZG93RUVFaWlpaWliYmJidE5TNV9JTlNfMTFFdmVudFRhcmdldEVF
RU5TNV9JTlNfOUNsaXBib2FyZEVFRWIKIF9fWk43V2ViQ29yZTEwTW91c2VFdmVudEMxRVJLTjNX
VEYxMkF0b21pY1N0cmluZ0ViYk5TMV8xMFBhc3NSZWZQdHJJTlNfOURPTVdpbmRvd0VFRWlpaWlp
YmJiYnROUzVfSU5TXzExRXZlbnRUYXJnZXRFRUVOUzVfSU5TXzlDbGlwYm9hcmRFRUViCiBfX1pO
N1dlYkNvcmUxMFJlbmRlclZpZXcxMGNvbXBvc2l0b3JFdgorX19aTjdXZWJDb3JlMTBSZW5kZXJW
aWV3N2hpdFRlc3RFUktOU18xNEhpdFRlc3RSZXF1ZXN0RVJOU18xM0hpdFRlc3RSZXN1bHRFCiBf
X1pON1dlYkNvcmUxMFNjcm9sbFZpZXcxN3NldFVzZUZpeGVkTGF5b3V0RWIKIF9fWk43V2ViQ29y
ZTEwU2Nyb2xsVmlldzE4c2V0Rml4ZWRMYXlvdXRTaXplRVJLTlNfN0ludFNpemVFCiBfX1pON1dl
YkNvcmUxMFNjcm9sbFZpZXcyMHNldENhbkhhdmVTY3JvbGxiYXJzRWIKQEAgLTI0OCw2ICsyNDks
NyBAQCBfX1pON1dlYkNvcmUxM0NvbnRhaW5lck5vZGUxMXJlbW92ZUNoaWxkRVBOU180Tm9kZUVS
aQogX19aTjdXZWJDb3JlMTNIVFRQSGVhZGVyTWFwQzFFdgogX19aTjdXZWJDb3JlMTNIVFRQSGVh
ZGVyTWFwRDFFdgogX19aTjdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0QzFFUktTMF8KK19fWk43V2Vi
Q29yZTEzSGl0VGVzdFJlc3VsdEMxRVJLTlNfMTFMYXlvdXRQb2ludEUKIF9fWk43V2ViQ29yZTEz
SGl0VGVzdFJlc3VsdEQxRXYKIF9fWk43V2ViQ29yZTEzSWRlbnRpZmllclJlcDNnZXRFUEtjCiBf
X1pON1dlYkNvcmUxM0lkZW50aWZpZXJSZXAzZ2V0RWkKQEAgLTY3Myw2ICs2NzUsNyBAQCBfX1pO
N1dlYkNvcmUyMmV4dGVybmFsUmVwcmVzZW50YXRpb25FUE5TXzVGcmFtZUVqCiBfX1pON1dlYkNv
cmUyMmV4dGVybmFsUmVwcmVzZW50YXRpb25FUE5TXzdFbGVtZW50RWoKIF9fWk43V2ViQ29yZTIy
c3lzdGVtTWFya2V0aW5nVmVyc2lvbkV2CiBfX1pON1dlYkNvcmUyMnVzZXJQcmVmZXJyZWRMYW5n
dWFnZXNFdgorX19aTjdXZWJDb3JlMjJIVE1MUGx1Z0luSW1hZ2VFbGVtZW50MjlzZXRJc1ByaW1h
cnlTbmFwc2hvdHRlZFBsdWdJbkViCiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9y
YWdlMTRzZXRNYXhpbXVtU2l6ZUV4CiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9y
YWdlMTZkZWxldGVBbGxFbnRyaWVzRXYKIF9fWk43V2ViQ29yZTIzQXBwbGljYXRpb25DYWNoZVN0
b3JhZ2UxNnN0b3JlQ29weU9mQ2FjaGVFUktOM1dURjZTdHJpbmdFUE5TXzIwQXBwbGljYXRpb25D
YWNoZUhvc3RFCkBAIC0xMjU0LDYgKzEyNTcsNyBAQCBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVz
dWx0MTBpc0xpdmVMaW5rRXYKIF9fWk5LN1dlYkNvcmUxM0hpdFRlc3RSZXN1bHQxMGlzU2VsZWN0
ZWRFdgogX19aTks3V2ViQ29yZTEzSGl0VGVzdFJlc3VsdDExdGFyZ2V0RnJhbWVFdgogX19aTks3
V2ViQ29yZTEzSGl0VGVzdFJlc3VsdDExdGV4dENvbnRlbnRFdgorX19aTks3V2ViQ29yZTEzSGl0
VGVzdFJlc3VsdDEyaW5uZXJFbGVtZW50RXYKIF9fWk5LN1dlYkNvcmUxM0hpdFRlc3RSZXN1bHQx
NGFic29sdXRlUERGVVJMRXYKIF9fWk5LN1dlYkNvcmUxM0hpdFRlc3RSZXN1bHQxNGlubmVyTm9k
ZUZyYW1lRXYKIF9fWk5LN1dlYkNvcmUxM0hpdFRlc3RSZXN1bHQxNWFic29sdXRlTGlua1VSTEV2
CkBAIC0xNDMxLDYgKzE0MzUsNyBAQCBfX1pOSzdXZWJDb3JlNE5vZGUzMW51bWJlck9mU2NvcGVk
SFRNTFN0eWxlQ2hpbGRyZW5FdgogX19aTks3V2ViQ29yZTROb2RlOW5vZGVJbmRleEV2CiBfX1pO
SzdXZWJDb3JlNFBhZ2UxMHBsdWdpbkRhdGFFdgogX19aTks3V2ViQ29yZTRQYWdlMTRyZW5kZXJU
cmVlU2l6ZUV2CitfX1pOSzdXZWJDb3JlNFBhZ2UxNmhhc1NlZW5BbnlQbHVnaW5FdgogX19aTks3
V2ViQ29yZTRQYWdlMTViYWNrRm9yd2FyZExpc3RFdgogX19aTks3V2ViQ29yZTRQYWdlMTd2aWV3
cG9ydEFyZ3VtZW50c0V2CiBfX1pOSzdXZWJDb3JlNFBhZ2UzNGluTG93UXVhbGl0eUltYWdlSW50
ZXJwb2xhdGlvbk1vZGVFdgpAQCAtMTU0Nyw2ICsxNTUyLDggQEAgX19aTks3V2ViQ29yZTlGcmFt
ZVZpZXczMXNldFdhbnRzTGF5ZXJGb3JUb3BPdmVySGFuZ0FyZWFFYgogX19aTks3V2ViQ29yZTlG
cmFtZVZpZXczNHNldFdhbnRzTGF5ZXJGb3JCb3R0b21PdmVySGFuZ0FyZWFFYgogI2VuZGlmCiBf
X1pOSzdXZWJDb3JlOVBhZ2VDYWNoZTEwZnJhbWVDb3VudEV2CitfX1pOSzdXZWJDb3JlOVJlbmRl
ckJveDEyY2xpZW50SGVpZ2h0RXYKK19fWk5LN1dlYkNvcmU5UmVuZGVyQm94MTFjbGllbnRXaWR0
aEV2CiBfX1pUVk43V2ViQ29yZTEyQ2hyb21lQ2xpZW50RQogX19aVFZON1dlYkNvcmUxNExvYWRl
clN0cmF0ZWd5RQogX19aVFZON1dlYkNvcmUxNVN0b3JhZ2VTdHJhdGVneUUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCmluZGV4IDA3MThkZjAuLjVk
NjM1NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50
LmNwcApAQCAtNzEsNiArNzEsNyBAQCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpIVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvYwogICAgICwgbV9u
ZWVkc1dpZGdldFVwZGF0ZSghY3JlYXRlZEJ5UGFyc2VyKQogICAgICwgbV9zaG91bGRQcmVmZXJQ
bHVnSW5zRm9ySW1hZ2VzKHByZWZlclBsdWdJbnNGb3JJbWFnZXNPcHRpb24gPT0gU2hvdWxkUHJl
ZmVyUGx1Z0luc0ZvckltYWdlcykKICAgICAsIG1fbmVlZHNEb2N1bWVudEFjdGl2YXRpb25DYWxs
YmFja3MoZmFsc2UpCisgICAgLCBtX2lzUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luKGZhbHNlKQog
ICAgICwgbV9zaW11bGF0ZWRNb3VzZUNsaWNrVGltZXIodGhpcywgJkhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQ6OnNpbXVsYXRlZE1vdXNlQ2xpY2tUaW1lckZpcmVkLCBzaW11bGF0ZWRNb3VzZUNsaWNr
VGltZXJEZWxheSkKICAgICAsIG1fc3dhcFJlbmRlcmVyVGltZXIodGhpcywgJkhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQ6OnN3YXBSZW5kZXJlclRpbWVyRmlyZWQpCiB7CkBAIC0yOTUsMTIgKzI5Niwx
MyBAQCB2b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQ
dHI8SW1hZ2U+IGltYWdlKQogICAgICAgICByZW5kZXJlcigpLT5yZXBhaW50KCk7CiB9CiAKLXN0
YXRpYyBBdG9taWNTdHJpbmcgY2xhc3NOYW1lRm9yU2hhZG93Um9vdChjb25zdCBOb2RlKiBub2Rl
KQorc3RhdGljIEF0b21pY1N0cmluZyBjbGFzc05hbWVGb3JTaGFkb3dSb290KGNvbnN0IE5vZGUq
IG5vZGUsIGJvb2wgaXNQcmltYXJ5KQogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCBwbHVnSW5UaW55U2l6ZUNsYXNzTmFtZSwgKCJ0aW55IiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCBwbHVnSW5TbWFsbFNpemVDbGFzc05hbWUsICgic21hbGwiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIHBsdWdJbk1lZGl1bVNpemVDbGFzc05hbWUsICgibWVkaXVt
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBwbHVnSW5MYXJnZVNpemVDbGFzc05hbWUsICgi
bGFyZ2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHBsdWdJbkxhcmdlU2l6ZVByaW1hcnlD
bGFzc05hbWUsICgibGFyZ2UgcHJpbWFyeSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKIAogICAgIFJlbmRlckJveCogcmVuZGVyQm94ID0gc3RhdGljX2Nhc3Q8UmVuZGVy
Qm94Kj4obm9kZS0+cmVuZGVyZXIoKSk7CiAgICAgTGF5b3V0VW5pdCB3aWR0aCA9IHJlbmRlckJv
eC0+Y29udGVudFdpZHRoKCk7CkBAIC0zMTUsNyArMzE3LDE0IEBAIHN0YXRpYyBBdG9taWNTdHJp
bmcgY2xhc3NOYW1lRm9yU2hhZG93Um9vdChjb25zdCBOb2RlKiBub2RlKQogICAgIGlmICh3aWR0
aCA8IHNpemluZ01lZGl1bVdpZHRoVGhyZXNob2xkIHx8IGhlaWdodCA8IHNpemluZ01lZGl1bUhl
aWdodFRocmVzaG9sZCkKICAgICAgICAgcmV0dXJuIHBsdWdJbk1lZGl1bVNpemVDbGFzc05hbWU7
CiAKLSAgICByZXR1cm4gcGx1Z0luTGFyZ2VTaXplQ2xhc3NOYW1lOworICAgIHJldHVybiBpc1By
aW1hcnkgPyBwbHVnSW5MYXJnZVNpemVQcmltYXJ5Q2xhc3NOYW1lIDogcGx1Z0luTGFyZ2VTaXpl
Q2xhc3NOYW1lOworfQorICAgIAordm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpzZXRJc1By
aW1hcnlTbmFwc2hvdHRlZFBsdWdJbihib29sIGlzUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luKQor
eworICAgIG1faXNQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW4gPSBpc1ByaW1hcnlTbmFwc2hvdHRl
ZFBsdWdJbjsKKyAgICAKKyAgICB1cGRhdGVTbmFwc2hvdEluZm8oKTsKIH0KIAogdm9pZCBIVE1M
UGx1Z0luSW1hZ2VFbGVtZW50Ojp1cGRhdGVTbmFwc2hvdEluZm8oKQpAQCAtMzI1LDcgKzMzNCw3
IEBAIHZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6dXBkYXRlU25hcHNob3RJbmZvKCkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgRWxlbWVudCogc2hhZG93Q29udGFpbmVyID0gc3RhdGljX2Nh
c3Q8RWxlbWVudCo+KHJvb3QtPmZpcnN0Q2hpbGQoKSk7Ci0gICAgc2hhZG93Q29udGFpbmVyLT5z
ZXRBdHRyaWJ1dGUoY2xhc3NBdHRyLCBjbGFzc05hbWVGb3JTaGFkb3dSb290KHRoaXMpKTsKKyAg
ICBzaGFkb3dDb250YWluZXItPnNldEF0dHJpYnV0ZShjbGFzc0F0dHIsIGNsYXNzTmFtZUZvclNo
YWRvd1Jvb3QodGhpcywgbV9pc1ByaW1hcnlTbmFwc2hvdHRlZFBsdWdJbikpOwogfQogCiB2b2lk
IEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93
Um9vdCogcm9vdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbklt
YWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50
LmgKaW5kZXggYjUwZDUzYS4uMDdmZWU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UGx1Z0luSW1hZ2VFbGVtZW50LmgKQEAgLTcxLDYgKzcxLDggQEAgcHVibGljOgogICAgIC8vIFBs
dWctaW4gVVJMIG1pZ2h0IG5vdCBiZSB0aGUgc2FtZSBhcyB1cmwoKSB3aXRoIG92ZXJyaWRpbmcg
cGFyYW1ldGVycy4KICAgICB2b2lkIHN1YmZyYW1lTG9hZGVyV2lsbENyZWF0ZVBsdWdJbihjb25z
dCBLVVJMJiBwbHVnSW5VUkwpOwogICAgIHZvaWQgc3ViZnJhbWVMb2FkZXJEaWRDcmVhdGVQbHVn
SW4oY29uc3QgV2lkZ2V0Kik7CisgICAgCisgICAgdm9pZCBzZXRJc1ByaW1hcnlTbmFwc2hvdHRl
ZFBsdWdJbihib29sKTsKIAogcHJvdGVjdGVkOgogICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqLCBib29sIGNyZWF0ZWRCeVBh
cnNlciwgUHJlZmVyUGx1Z0luc0ZvckltYWdlc09wdGlvbik7CkBAIC0xMTcsNiArMTE5LDcgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fbmVlZHNXaWRnZXRVcGRhdGU7CiAgICAgYm9vbCBtX3Nob3Vs
ZFByZWZlclBsdWdJbnNGb3JJbWFnZXM7CiAgICAgYm9vbCBtX25lZWRzRG9jdW1lbnRBY3RpdmF0
aW9uQ2FsbGJhY2tzOworICAgIGJvb2wgbV9pc1ByaW1hcnlTbmFwc2hvdHRlZFBsdWdJbjsKICAg
ICBSZWZQdHI8UmVuZGVyU3R5bGU+IG1fY3VzdG9tU3R5bGVGb3JQYWdlQ2FjaGU7CiAgICAgUmVm
UHRyPE1vdXNlRXZlbnQ+IG1fcGVuZGluZ0NsaWNrRXZlbnRGcm9tU25hcHNob3Q7CiAgICAgRGVm
ZXJyYWJsZU9uZVNob3RUaW1lcjxIVE1MUGx1Z0luSW1hZ2VFbGVtZW50PiBtX3NpbXVsYXRlZE1v
dXNlQ2xpY2tUaW1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggYTgz
ZGUxZC4uYzRjNmE0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTQ1
MCw2ICs0NTAsOSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENvbW1p
dExvYWQoKQogICAgICAgICBpZiAocGFnZSAmJiBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSAhPSAx
KQogICAgICAgICAgICAgd2ViUGFnZS0+c2NhbGVQYWdlKDEsIEludFBvaW50KCkpOwogICAgIH0K
KyAgICAKKyAgICBpZiAobV9mcmFtZS0+aXNNYWluRnJhbWUoKSkKKyAgICAgICAgd2ViUGFnZS0+
cmVzZXRQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW4oKTsKIH0KIAogdm9pZCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0IFJlc291cmNlRXJy
b3ImIGVycm9yKQpAQCAtNTI0LDYgKzUyNywxMCBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERpZEZpbmlzaExvYWQoKQogICAgIC8vIElmIHdlIGhhdmUgYSBsb2FkIGxpc3Rl
bmVyLCBub3RpZnkgaXQuCiAgICAgaWYgKFdlYkZyYW1lOjpMb2FkTGlzdGVuZXIqIGxvYWRMaXN0
ZW5lciA9IG1fZnJhbWUtPmxvYWRMaXN0ZW5lcigpKQogICAgICAgICBsb2FkTGlzdGVuZXItPmRp
ZEZpbmlzaExvYWQobV9mcmFtZSk7CisKKyNpZiBQTEFURk9STShNQUMpCisgICAgd2ViUGFnZS0+
ZGV0ZXJtaW5lUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luKCk7CisjZW5kaWYKIH0KIAogdm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRMYXlvdXQoTGF5b3V0TWlsZXN0b25lcyBt
aWxlc3RvbmVzKQpAQCAtMTE1MSw2ICsxMTU4LDE0IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmRpZEZpbmlzaExvYWQoKQogICAgIC8vIElmIHdlIGhhdmUgYSBsb2FkIGxpc3RlbmVyLCBu
b3RpZnkgaXQuCiAgICAgaWYgKFdlYkZyYW1lOjpMb2FkTGlzdGVuZXIqIGxvYWRMaXN0ZW5lciA9
IG1fZnJhbWUtPmxvYWRMaXN0ZW5lcigpKQogICAgICAgICBsb2FkTGlzdGVuZXItPmRpZEZpbmlz
aExvYWQobV9mcmFtZSk7CisgICAgCisgICAgV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBh
Z2UoKTsKKyAgICBpZiAoIXdlYlBhZ2UpCisgICAgICAgIHJldHVybjsKKworI2lmIFBMQVRGT1JN
KE1BQykKKyAgICB3ZWJQYWdlLT5kZXRlcm1pbmVQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW4oKTsK
KyNlbmRpZgogfQogCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpwcmVwYXJlRm9yRGF0YVNv
dXJjZVJlcGxhY2VtZW50KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAppbmRleCA0M2QyZjRmLi41ZWIxMDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xMDEsNiArMTAxLDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0hUTUxGb3JtRWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTElu
cHV0RWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTFBsdWdJbkVsZW1lbnQuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0hpc3RvcnlJdGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CkBAIC0yMzcsNiArMjM4LDcgQEAg
V2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgLCBtX21haW5GcmFtZUlzU2Nyb2xsYWJsZSh0cnVl
KQogI2lmIFBMQVRGT1JNKE1BQykKICAgICAsIG1fcGRmUGx1Z2luRW5hYmxlZChmYWxzZSkKKyAg
ICAsIG1fZGlkRmluZFByaW1hcnlTbmFwc2hvdHRlZFBsdWdpbihmYWxzZSkKICAgICAsIG1faGFz
Q2FjaGVkV2luZG93RnJhbWUoZmFsc2UpCiAgICAgLCBtX3dpbmRvd0lzVmlzaWJsZShmYWxzZSkK
ICAgICAsIG1fbGF5ZXJIb3N0aW5nTW9kZShwYXJhbWV0ZXJzLmxheWVySG9zdGluZ01vZGUpCkBA
IC0yODk5LDYgKzI5MDEsMTAgQEAgdm9pZCBXZWJQYWdlOjphZGRQbHVnaW5WaWV3KFBsdWdpblZp
ZXcqIHBsdWdpblZpZXcpCiAgICAgQVNTRVJUKCFtX3BsdWdpblZpZXdzLmNvbnRhaW5zKHBsdWdp
blZpZXcpKTsKIAogICAgIG1fcGx1Z2luVmlld3MuYWRkKHBsdWdpblZpZXcpOworICAgIAorI2lm
IFBMQVRGT1JNKE1BQykKKyAgICBkZXRlcm1pbmVQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW4oKTsK
KyNlbmRpZgogfQogCiB2b2lkIFdlYlBhZ2U6OnJlbW92ZVBsdWdpblZpZXcoUGx1Z2luVmlldyog
cGx1Z2luVmlldykKQEAgLTM4NjMsNSArMzg2OSw4OSBAQCB2b2lkIFdlYlBhZ2U6OmRpZENhbmNl
bENoZWNraW5nVGV4dCh1aW50NjRfdCByZXF1ZXN0SUQpCiAgICAgcmVxdWVzdC0+ZGlkQ2FuY2Vs
KCk7CiAgICAgbV9wZW5kaW5nVGV4dENoZWNraW5nUmVxdWVzdE1hcC5yZW1vdmUocmVxdWVzdElE
KTsKIH0KKyAgICAKKyNpZiBQTEFURk9STShNQUMpCitzdGF0aWMgaW50IHByaW1hcnlTbmFwc2hv
dHRlZFBsdWdJblNlYXJjaExpbWl0ID0gMzAwMDsKK3N0YXRpYyBpbnQgcHJpbWFyeVNuYXBzaG90
dGVkUGx1Z0luU2VhcmNoR2FwID0gMjAwOworc3RhdGljIGZsb2F0IHByaW1hcnlTbmFwc2hvdHRl
ZFBsdWdJblNlYXJjaEJ1Y2tldFNpemUgPSAxLjE7CitzdGF0aWMgaW50IHByaW1hcnlTbmFwc2hv
dHRlZFBsdWdJbk1pbmltdW1XaWR0aCA9IDQ1MDsKK3N0YXRpYyBpbnQgcHJpbWFyeVNuYXBzaG90
dGVkUGx1Z0luTWluaW11bUhlaWdodCA9IDMwMDsKKwordm9pZCBXZWJQYWdlOjpkZXRlcm1pbmVQ
cmltYXJ5U25hcHNob3R0ZWRQbHVnSW4oKQoreworICAgIGlmICghY29yZVBhZ2UoKS0+aGFzU2Vl
bkFueVBsdWdpbigpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9kaWRGaW5kUHJpbWFy
eVNuYXBzaG90dGVkUGx1Z2luKQorICAgICAgICByZXR1cm47CisKKyAgICBSZW5kZXJWaWV3KiBy
ZW5kZXJWaWV3ID0gY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKS0+cmVuZGVyVmlldygp
OworCisgICAgSW50UmVjdCBzZWFyY2hSZWN0ID0gSW50UmVjdChJbnRQb2ludCgpLCBjb3JlUGFn
ZSgpLT5tYWluRnJhbWUoKS0+dmlldygpLT5jb250ZW50c1NpemUoKSk7CisgICAgc2VhcmNoUmVj
dC5pbnRlcnNlY3QoSW50UmVjdChJbnRQb2ludCgpLCBJbnRTaXplKHByaW1hcnlTbmFwc2hvdHRl
ZFBsdWdJblNlYXJjaExpbWl0LCBwcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5TZWFyY2hMaW1pdCkp
KTsKKworICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVlc3QoSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5
IHwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8IEhpdFRlc3RSZXF1ZXN0OjpBbGxvd0NoaWxkRnJh
bWVDb250ZW50IHwgSGl0VGVzdFJlcXVlc3Q6Oklnbm9yZUNsaXBwaW5nKTsKKworICAgIEhhc2hT
ZXQ8UmVuZGVyT2JqZWN0Kj4gc2VlblJlbmRlcmVyczsKKyAgICBIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50KiBjYW5kaWRhdGVQbHVnSW47CisgICAgdW5zaWduZWQgY2FuZGlkYXRlUGx1Z0luQXJlYSA9
IDA7CisKKyAgICBmb3IgKGludCB4ID0gc2VhcmNoUmVjdC54KCk7IHggPD0gc2VhcmNoUmVjdC53
aWR0aCgpOyB4ICs9IHByaW1hcnlTbmFwc2hvdHRlZFBsdWdJblNlYXJjaEdhcCkgeworICAgICAg
ICBmb3IgKGludCB5ID0gc2VhcmNoUmVjdC55KCk7IHkgPD0gc2VhcmNoUmVjdC5oZWlnaHQoKTsg
eSArPSBwcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5TZWFyY2hHYXApIHsKKyAgICAgICAgICAgIEhp
dFRlc3RSZXN1bHQgaGl0VGVzdFJlc3VsdCA9IEhpdFRlc3RSZXN1bHQoTGF5b3V0UG9pbnQoeCwg
eSkpOworICAgICAgICAgICAgcmVuZGVyVmlldy0+aGl0VGVzdChyZXF1ZXN0LCBoaXRUZXN0UmVz
dWx0KTsKKworICAgICAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IGhpdFRlc3RSZXN1bHQuaW5u
ZXJFbGVtZW50KCk7CisKKyAgICAgICAgICAgIGlmICghZWxlbWVudCkKKyAgICAgICAgICAgICAg
ICBjb250aW51ZTsKKworICAgICAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGVsZW1l
bnQtPnJlbmRlcmVyKCk7CisgICAgICAgICAgICBpZiAoIXJlbmRlcmVyIHx8ICFyZW5kZXJlci0+
aXNCb3goKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgUmVuZGVy
Qm94KiByZW5kZXJCb3ggPSB0b1JlbmRlckJveChyZW5kZXJlcik7CisKKyAgICAgICAgICAgIGlm
IChzZWVuUmVuZGVyZXJzLmNvbnRhaW5zKHJlbmRlcmVyKSkKKyAgICAgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgICAgIHNlZW5SZW5kZXJlcnMuYWRkKHJlbmRlcmVyKTsKKworICAgICAg
ICAgICAgaWYgKCFlbGVtZW50LT5pc1BsdWdpbkVsZW1lbnQoKSkKKyAgICAgICAgICAgICAgICBj
b250aW51ZTsKKworICAgICAgICAgICAgSFRNTFBsdWdJbkVsZW1lbnQqIHBsdWdJbkVsZW1lbnQg
PSB0b0hUTUxQbHVnSW5FbGVtZW50KGVsZW1lbnQpOworICAgICAgICAgICAgaWYgKCFwbHVnSW5F
bGVtZW50LT5pc1BsdWdJbkltYWdlRWxlbWVudCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVl
OworCisgICAgICAgICAgICBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KiBwbHVnSW5JbWFnZUVsZW1l
bnQgPSB0b0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQocGx1Z0luRWxlbWVudCk7CisKKyAgICAgICAg
ICAgIGlmIChwbHVnSW5FbGVtZW50LT5kaXNwbGF5U3RhdGUoKSA9PSBIVE1MUGx1Z0luRWxlbWVu
dDo6UGxheWluZykKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgTGF5
b3V0VW5pdCBjb250ZW50QXJlYSA9IHJlbmRlckJveC0+Y29udGVudFdpZHRoKCkgKiByZW5kZXJC
b3gtPmNvbnRlbnRIZWlnaHQoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHJlbmRl
ckJveC0+Y29udGVudFdpZHRoKCkgPCBwcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5NaW5pbXVtV2lk
dGggfHwgcmVuZGVyQm94LT5jb250ZW50SGVpZ2h0KCkgPCBwcmltYXJ5U25hcHNob3R0ZWRQbHVn
SW5NaW5pbXVtSGVpZ2h0KQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAg
ICBpZiAoY29udGVudEFyZWEgPiBjYW5kaWRhdGVQbHVnSW5BcmVhICogcHJpbWFyeVNuYXBzaG90
dGVkUGx1Z0luU2VhcmNoQnVja2V0U2l6ZSkgeworICAgICAgICAgICAgICAgIGNhbmRpZGF0ZVBs
dWdJbiA9IHBsdWdJbkltYWdlRWxlbWVudDsKKyAgICAgICAgICAgICAgICBjYW5kaWRhdGVQbHVn
SW5BcmVhID0gY29udGVudEFyZWE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cisg
ICAgCisgICAgaWYgKCFjYW5kaWRhdGVQbHVnSW4pCisgICAgICAgIHJldHVybjsKKyAgICAKKyAg
ICBtX2RpZEZpbmRQcmltYXJ5U25hcHNob3R0ZWRQbHVnaW4gPSB0cnVlOworICAgIAorICAgIGNh
bmRpZGF0ZVBsdWdJbi0+c2V0SXNQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW4odHJ1ZSk7Cit9CisK
K3ZvaWQgV2ViUGFnZTo6cmVzZXRQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW4oKQoreworICAgIG1f
ZGlkRmluZFByaW1hcnlTbmFwc2hvdHRlZFBsdWdpbiA9IGZhbHNlOworfQorI2VuZGlmCiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKaW5kZXggMjkzMjRiZS4uNjQ5NWMwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC02MzAsNiArNjMwLDExIEBAIHB1YmxpYzoKICAg
ICB2b2lkIGRpZEZpbmlzaENoZWNraW5nVGV4dCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFZl
Y3RvcjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+Jik7CiAgICAgdm9pZCBkaWRDYW5jZWxD
aGVja2luZ1RleHQodWludDY0X3QgcmVxdWVzdElEKTsKIAorI2lmIFBMQVRGT1JNKE1BQykKKyAg
ICB2b2lkIGRldGVybWluZVByaW1hcnlTbmFwc2hvdHRlZFBsdWdJbigpOworICAgIHZvaWQgcmVz
ZXRQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW4oKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFdl
YlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJik7
CiAKQEAgLTg0Niw2ICs4NTEsOCBAQCBwcml2YXRlOgogCiAjaWYgUExBVEZPUk0oTUFDKQogICAg
IGJvb2wgbV9wZGZQbHVnaW5FbmFibGVkOworICAgIAorICAgIGJvb2wgbV9kaWRGaW5kUHJpbWFy
eVNuYXBzaG90dGVkUGx1Z2luOwogCiAgICAgYm9vbCBtX2hhc0NhY2hlZFdpbmRvd0ZyYW1lOwog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192363</attachid>
            <date>2013-03-09 18:12:35 -0800</date>
            <delta_ts>2013-03-09 18:21:54 -0800</delta_ts>
            <desc>patch</desc>
            <filename>ps-onepluin-opensource.diff</filename>
            <type>text/plain</type>
            <size>13457</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KaW5kZXggOGRkNjdjMC4uYTExNDBjMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KQEAgLTc2LDYgKzc2LDcgQEAgX19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50NmNyZWF0ZUVS
S04zV1RGMTJBdG9taWNTdHJpbmdFTlMxXzEwUGFzc1JlZlB0cklOU185RE9NV2kKIF9fWk43V2Vi
Q29yZTEwTW91c2VFdmVudDZjcmVhdGVFUktOM1dURjEyQXRvbWljU3RyaW5nRWJiTlMxXzEwUGFz
c1JlZlB0cklOU185RE9NV2luZG93RUVFaWlpaWliYmJidE5TNV9JTlNfMTFFdmVudFRhcmdldEVF
RU5TNV9JTlNfOUNsaXBib2FyZEVFRWIKIF9fWk43V2ViQ29yZTEwTW91c2VFdmVudEMxRVJLTjNX
VEYxMkF0b21pY1N0cmluZ0ViYk5TMV8xMFBhc3NSZWZQdHJJTlNfOURPTVdpbmRvd0VFRWlpaWlp
YmJiYnROUzVfSU5TXzExRXZlbnRUYXJnZXRFRUVOUzVfSU5TXzlDbGlwYm9hcmRFRUViCiBfX1pO
N1dlYkNvcmUxMFJlbmRlclZpZXcxMGNvbXBvc2l0b3JFdgorX19aTjdXZWJDb3JlMTBSZW5kZXJW
aWV3N2hpdFRlc3RFUktOU18xNEhpdFRlc3RSZXF1ZXN0RVJOU18xM0hpdFRlc3RSZXN1bHRFCiBf
X1pON1dlYkNvcmUxMFNjcm9sbFZpZXcxN3NldFVzZUZpeGVkTGF5b3V0RWIKIF9fWk43V2ViQ29y
ZTEwU2Nyb2xsVmlldzE4c2V0Rml4ZWRMYXlvdXRTaXplRVJLTlNfN0ludFNpemVFCiBfX1pON1dl
YkNvcmUxMFNjcm9sbFZpZXcyMHNldENhbkhhdmVTY3JvbGxiYXJzRWIKQEAgLTI0OCw2ICsyNDks
NyBAQCBfX1pON1dlYkNvcmUxM0NvbnRhaW5lck5vZGUxMXJlbW92ZUNoaWxkRVBOU180Tm9kZUVS
aQogX19aTjdXZWJDb3JlMTNIVFRQSGVhZGVyTWFwQzFFdgogX19aTjdXZWJDb3JlMTNIVFRQSGVh
ZGVyTWFwRDFFdgogX19aTjdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0QzFFUktTMF8KK19fWk43V2Vi
Q29yZTEzSGl0VGVzdFJlc3VsdEMxRVJLTlNfMTFMYXlvdXRQb2ludEUKIF9fWk43V2ViQ29yZTEz
SGl0VGVzdFJlc3VsdEQxRXYKIF9fWk43V2ViQ29yZTEzSWRlbnRpZmllclJlcDNnZXRFUEtjCiBf
X1pON1dlYkNvcmUxM0lkZW50aWZpZXJSZXAzZ2V0RWkKQEAgLTY3Myw2ICs2NzUsNyBAQCBfX1pO
N1dlYkNvcmUyMmV4dGVybmFsUmVwcmVzZW50YXRpb25FUE5TXzVGcmFtZUVqCiBfX1pON1dlYkNv
cmUyMmV4dGVybmFsUmVwcmVzZW50YXRpb25FUE5TXzdFbGVtZW50RWoKIF9fWk43V2ViQ29yZTIy
c3lzdGVtTWFya2V0aW5nVmVyc2lvbkV2CiBfX1pON1dlYkNvcmUyMnVzZXJQcmVmZXJyZWRMYW5n
dWFnZXNFdgorX19aTjdXZWJDb3JlMjJIVE1MUGx1Z0luSW1hZ2VFbGVtZW50MjlzZXRJc1ByaW1h
cnlTbmFwc2hvdHRlZFBsdWdJbkViCiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9y
YWdlMTRzZXRNYXhpbXVtU2l6ZUV4CiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9y
YWdlMTZkZWxldGVBbGxFbnRyaWVzRXYKIF9fWk43V2ViQ29yZTIzQXBwbGljYXRpb25DYWNoZVN0
b3JhZ2UxNnN0b3JlQ29weU9mQ2FjaGVFUktOM1dURjZTdHJpbmdFUE5TXzIwQXBwbGljYXRpb25D
YWNoZUhvc3RFCkBAIC0xMjU0LDYgKzEyNTcsNyBAQCBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVz
dWx0MTBpc0xpdmVMaW5rRXYKIF9fWk5LN1dlYkNvcmUxM0hpdFRlc3RSZXN1bHQxMGlzU2VsZWN0
ZWRFdgogX19aTks3V2ViQ29yZTEzSGl0VGVzdFJlc3VsdDExdGFyZ2V0RnJhbWVFdgogX19aTks3
V2ViQ29yZTEzSGl0VGVzdFJlc3VsdDExdGV4dENvbnRlbnRFdgorX19aTks3V2ViQ29yZTEzSGl0
VGVzdFJlc3VsdDEyaW5uZXJFbGVtZW50RXYKIF9fWk5LN1dlYkNvcmUxM0hpdFRlc3RSZXN1bHQx
NGFic29sdXRlUERGVVJMRXYKIF9fWk5LN1dlYkNvcmUxM0hpdFRlc3RSZXN1bHQxNGlubmVyTm9k
ZUZyYW1lRXYKIF9fWk5LN1dlYkNvcmUxM0hpdFRlc3RSZXN1bHQxNWFic29sdXRlTGlua1VSTEV2
CkBAIC0xNDMxLDYgKzE0MzUsNyBAQCBfX1pOSzdXZWJDb3JlNE5vZGUzMW51bWJlck9mU2NvcGVk
SFRNTFN0eWxlQ2hpbGRyZW5FdgogX19aTks3V2ViQ29yZTROb2RlOW5vZGVJbmRleEV2CiBfX1pO
SzdXZWJDb3JlNFBhZ2UxMHBsdWdpbkRhdGFFdgogX19aTks3V2ViQ29yZTRQYWdlMTRyZW5kZXJU
cmVlU2l6ZUV2CitfX1pOSzdXZWJDb3JlNFBhZ2UxNmhhc1NlZW5BbnlQbHVnaW5FdgogX19aTks3
V2ViQ29yZTRQYWdlMTViYWNrRm9yd2FyZExpc3RFdgogX19aTks3V2ViQ29yZTRQYWdlMTd2aWV3
cG9ydEFyZ3VtZW50c0V2CiBfX1pOSzdXZWJDb3JlNFBhZ2UzNGluTG93UXVhbGl0eUltYWdlSW50
ZXJwb2xhdGlvbk1vZGVFdgpAQCAtMTU0Nyw2ICsxNTUyLDggQEAgX19aTks3V2ViQ29yZTlGcmFt
ZVZpZXczMXNldFdhbnRzTGF5ZXJGb3JUb3BPdmVySGFuZ0FyZWFFYgogX19aTks3V2ViQ29yZTlG
cmFtZVZpZXczNHNldFdhbnRzTGF5ZXJGb3JCb3R0b21PdmVySGFuZ0FyZWFFYgogI2VuZGlmCiBf
X1pOSzdXZWJDb3JlOVBhZ2VDYWNoZTEwZnJhbWVDb3VudEV2CitfX1pOSzdXZWJDb3JlOVJlbmRl
ckJveDEyY2xpZW50SGVpZ2h0RXYKK19fWk5LN1dlYkNvcmU5UmVuZGVyQm94MTFjbGllbnRXaWR0
aEV2CiBfX1pUVk43V2ViQ29yZTEyQ2hyb21lQ2xpZW50RQogX19aVFZON1dlYkNvcmUxNExvYWRl
clN0cmF0ZWd5RQogX19aVFZON1dlYkNvcmUxNVN0b3JhZ2VTdHJhdGVneUUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCmluZGV4IDA3MThkZjAuLjVk
NjM1NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50
LmNwcApAQCAtNzEsNiArNzEsNyBAQCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpIVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvYwogICAgICwgbV9u
ZWVkc1dpZGdldFVwZGF0ZSghY3JlYXRlZEJ5UGFyc2VyKQogICAgICwgbV9zaG91bGRQcmVmZXJQ
bHVnSW5zRm9ySW1hZ2VzKHByZWZlclBsdWdJbnNGb3JJbWFnZXNPcHRpb24gPT0gU2hvdWxkUHJl
ZmVyUGx1Z0luc0ZvckltYWdlcykKICAgICAsIG1fbmVlZHNEb2N1bWVudEFjdGl2YXRpb25DYWxs
YmFja3MoZmFsc2UpCisgICAgLCBtX2lzUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luKGZhbHNlKQog
ICAgICwgbV9zaW11bGF0ZWRNb3VzZUNsaWNrVGltZXIodGhpcywgJkhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQ6OnNpbXVsYXRlZE1vdXNlQ2xpY2tUaW1lckZpcmVkLCBzaW11bGF0ZWRNb3VzZUNsaWNr
VGltZXJEZWxheSkKICAgICAsIG1fc3dhcFJlbmRlcmVyVGltZXIodGhpcywgJkhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQ6OnN3YXBSZW5kZXJlclRpbWVyRmlyZWQpCiB7CkBAIC0yOTUsMTIgKzI5Niwx
MyBAQCB2b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQ
dHI8SW1hZ2U+IGltYWdlKQogICAgICAgICByZW5kZXJlcigpLT5yZXBhaW50KCk7CiB9CiAKLXN0
YXRpYyBBdG9taWNTdHJpbmcgY2xhc3NOYW1lRm9yU2hhZG93Um9vdChjb25zdCBOb2RlKiBub2Rl
KQorc3RhdGljIEF0b21pY1N0cmluZyBjbGFzc05hbWVGb3JTaGFkb3dSb290KGNvbnN0IE5vZGUq
IG5vZGUsIGJvb2wgaXNQcmltYXJ5KQogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCBwbHVnSW5UaW55U2l6ZUNsYXNzTmFtZSwgKCJ0aW55IiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCBwbHVnSW5TbWFsbFNpemVDbGFzc05hbWUsICgic21hbGwiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIHBsdWdJbk1lZGl1bVNpemVDbGFzc05hbWUsICgibWVkaXVt
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBwbHVnSW5MYXJnZVNpemVDbGFzc05hbWUsICgi
bGFyZ2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHBsdWdJbkxhcmdlU2l6ZVByaW1hcnlD
bGFzc05hbWUsICgibGFyZ2UgcHJpbWFyeSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKIAogICAgIFJlbmRlckJveCogcmVuZGVyQm94ID0gc3RhdGljX2Nhc3Q8UmVuZGVy
Qm94Kj4obm9kZS0+cmVuZGVyZXIoKSk7CiAgICAgTGF5b3V0VW5pdCB3aWR0aCA9IHJlbmRlckJv
eC0+Y29udGVudFdpZHRoKCk7CkBAIC0zMTUsNyArMzE3LDE0IEBAIHN0YXRpYyBBdG9taWNTdHJp
bmcgY2xhc3NOYW1lRm9yU2hhZG93Um9vdChjb25zdCBOb2RlKiBub2RlKQogICAgIGlmICh3aWR0
aCA8IHNpemluZ01lZGl1bVdpZHRoVGhyZXNob2xkIHx8IGhlaWdodCA8IHNpemluZ01lZGl1bUhl
aWdodFRocmVzaG9sZCkKICAgICAgICAgcmV0dXJuIHBsdWdJbk1lZGl1bVNpemVDbGFzc05hbWU7
CiAKLSAgICByZXR1cm4gcGx1Z0luTGFyZ2VTaXplQ2xhc3NOYW1lOworICAgIHJldHVybiBpc1By
aW1hcnkgPyBwbHVnSW5MYXJnZVNpemVQcmltYXJ5Q2xhc3NOYW1lIDogcGx1Z0luTGFyZ2VTaXpl
Q2xhc3NOYW1lOworfQorICAgIAordm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpzZXRJc1By
aW1hcnlTbmFwc2hvdHRlZFBsdWdJbihib29sIGlzUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luKQor
eworICAgIG1faXNQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW4gPSBpc1ByaW1hcnlTbmFwc2hvdHRl
ZFBsdWdJbjsKKyAgICAKKyAgICB1cGRhdGVTbmFwc2hvdEluZm8oKTsKIH0KIAogdm9pZCBIVE1M
UGx1Z0luSW1hZ2VFbGVtZW50Ojp1cGRhdGVTbmFwc2hvdEluZm8oKQpAQCAtMzI1LDcgKzMzNCw3
IEBAIHZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6dXBkYXRlU25hcHNob3RJbmZvKCkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgRWxlbWVudCogc2hhZG93Q29udGFpbmVyID0gc3RhdGljX2Nh
c3Q8RWxlbWVudCo+KHJvb3QtPmZpcnN0Q2hpbGQoKSk7Ci0gICAgc2hhZG93Q29udGFpbmVyLT5z
ZXRBdHRyaWJ1dGUoY2xhc3NBdHRyLCBjbGFzc05hbWVGb3JTaGFkb3dSb290KHRoaXMpKTsKKyAg
ICBzaGFkb3dDb250YWluZXItPnNldEF0dHJpYnV0ZShjbGFzc0F0dHIsIGNsYXNzTmFtZUZvclNo
YWRvd1Jvb3QodGhpcywgbV9pc1ByaW1hcnlTbmFwc2hvdHRlZFBsdWdJbikpOwogfQogCiB2b2lk
IEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93
Um9vdCogcm9vdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbklt
YWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50
LmgKaW5kZXggYjUwZDUzYS4uMDdmZWU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UGx1Z0luSW1hZ2VFbGVtZW50LmgKQEAgLTcxLDYgKzcxLDggQEAgcHVibGljOgogICAgIC8vIFBs
dWctaW4gVVJMIG1pZ2h0IG5vdCBiZSB0aGUgc2FtZSBhcyB1cmwoKSB3aXRoIG92ZXJyaWRpbmcg
cGFyYW1ldGVycy4KICAgICB2b2lkIHN1YmZyYW1lTG9hZGVyV2lsbENyZWF0ZVBsdWdJbihjb25z
dCBLVVJMJiBwbHVnSW5VUkwpOwogICAgIHZvaWQgc3ViZnJhbWVMb2FkZXJEaWRDcmVhdGVQbHVn
SW4oY29uc3QgV2lkZ2V0Kik7CisgICAgCisgICAgdm9pZCBzZXRJc1ByaW1hcnlTbmFwc2hvdHRl
ZFBsdWdJbihib29sKTsKIAogcHJvdGVjdGVkOgogICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqLCBib29sIGNyZWF0ZWRCeVBh
cnNlciwgUHJlZmVyUGx1Z0luc0ZvckltYWdlc09wdGlvbik7CkBAIC0xMTcsNiArMTE5LDcgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fbmVlZHNXaWRnZXRVcGRhdGU7CiAgICAgYm9vbCBtX3Nob3Vs
ZFByZWZlclBsdWdJbnNGb3JJbWFnZXM7CiAgICAgYm9vbCBtX25lZWRzRG9jdW1lbnRBY3RpdmF0
aW9uQ2FsbGJhY2tzOworICAgIGJvb2wgbV9pc1ByaW1hcnlTbmFwc2hvdHRlZFBsdWdJbjsKICAg
ICBSZWZQdHI8UmVuZGVyU3R5bGU+IG1fY3VzdG9tU3R5bGVGb3JQYWdlQ2FjaGU7CiAgICAgUmVm
UHRyPE1vdXNlRXZlbnQ+IG1fcGVuZGluZ0NsaWNrRXZlbnRGcm9tU25hcHNob3Q7CiAgICAgRGVm
ZXJyYWJsZU9uZVNob3RUaW1lcjxIVE1MUGx1Z0luSW1hZ2VFbGVtZW50PiBtX3NpbXVsYXRlZE1v
dXNlQ2xpY2tUaW1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggYTgz
ZGUxZC4uYzRjNmE0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTQ1
MCw2ICs0NTAsOSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENvbW1p
dExvYWQoKQogICAgICAgICBpZiAocGFnZSAmJiBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSAhPSAx
KQogICAgICAgICAgICAgd2ViUGFnZS0+c2NhbGVQYWdlKDEsIEludFBvaW50KCkpOwogICAgIH0K
KyAgICAKKyAgICBpZiAobV9mcmFtZS0+aXNNYWluRnJhbWUoKSkKKyAgICAgICAgd2ViUGFnZS0+
cmVzZXRQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW4oKTsKIH0KIAogdm9pZCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0IFJlc291cmNlRXJy
b3ImIGVycm9yKQpAQCAtNTI0LDYgKzUyNywxMCBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERpZEZpbmlzaExvYWQoKQogICAgIC8vIElmIHdlIGhhdmUgYSBsb2FkIGxpc3Rl
bmVyLCBub3RpZnkgaXQuCiAgICAgaWYgKFdlYkZyYW1lOjpMb2FkTGlzdGVuZXIqIGxvYWRMaXN0
ZW5lciA9IG1fZnJhbWUtPmxvYWRMaXN0ZW5lcigpKQogICAgICAgICBsb2FkTGlzdGVuZXItPmRp
ZEZpbmlzaExvYWQobV9mcmFtZSk7CisKKyNpZiBQTEFURk9STShNQUMpCisgICAgd2ViUGFnZS0+
ZGV0ZXJtaW5lUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luKCk7CisjZW5kaWYKIH0KIAogdm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRMYXlvdXQoTGF5b3V0TWlsZXN0b25lcyBt
aWxlc3RvbmVzKQpAQCAtMTE1MSw2ICsxMTU4LDE0IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmRpZEZpbmlzaExvYWQoKQogICAgIC8vIElmIHdlIGhhdmUgYSBsb2FkIGxpc3RlbmVyLCBu
b3RpZnkgaXQuCiAgICAgaWYgKFdlYkZyYW1lOjpMb2FkTGlzdGVuZXIqIGxvYWRMaXN0ZW5lciA9
IG1fZnJhbWUtPmxvYWRMaXN0ZW5lcigpKQogICAgICAgICBsb2FkTGlzdGVuZXItPmRpZEZpbmlz
aExvYWQobV9mcmFtZSk7CisgICAgCisgICAgV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBh
Z2UoKTsKKyAgICBpZiAoIXdlYlBhZ2UpCisgICAgICAgIHJldHVybjsKKworI2lmIFBMQVRGT1JN
KE1BQykKKyAgICB3ZWJQYWdlLT5kZXRlcm1pbmVQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW4oKTsK
KyNlbmRpZgogfQogCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpwcmVwYXJlRm9yRGF0YVNv
dXJjZVJlcGxhY2VtZW50KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAppbmRleCA0M2QyZjRmLi5jNmYwZjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xMDEsNiArMTAxLDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0hUTUxGb3JtRWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTElu
cHV0RWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTFBsdWdJbkVsZW1lbnQuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0hpc3RvcnlJdGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CkBAIC0yMzcsNiArMjM4LDcgQEAg
V2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgLCBtX21haW5GcmFtZUlzU2Nyb2xsYWJsZSh0cnVl
KQogI2lmIFBMQVRGT1JNKE1BQykKICAgICAsIG1fcGRmUGx1Z2luRW5hYmxlZChmYWxzZSkKKyAg
ICAsIG1fZGlkRmluZFByaW1hcnlTbmFwc2hvdHRlZFBsdWdpbihmYWxzZSkKICAgICAsIG1faGFz
Q2FjaGVkV2luZG93RnJhbWUoZmFsc2UpCiAgICAgLCBtX3dpbmRvd0lzVmlzaWJsZShmYWxzZSkK
ICAgICAsIG1fbGF5ZXJIb3N0aW5nTW9kZShwYXJhbWV0ZXJzLmxheWVySG9zdGluZ01vZGUpCkBA
IC0yODk5LDYgKzI5MDEsMTAgQEAgdm9pZCBXZWJQYWdlOjphZGRQbHVnaW5WaWV3KFBsdWdpblZp
ZXcqIHBsdWdpblZpZXcpCiAgICAgQVNTRVJUKCFtX3BsdWdpblZpZXdzLmNvbnRhaW5zKHBsdWdp
blZpZXcpKTsKIAogICAgIG1fcGx1Z2luVmlld3MuYWRkKHBsdWdpblZpZXcpOworICAgIAorI2lm
IFBMQVRGT1JNKE1BQykKKyAgICBkZXRlcm1pbmVQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW4oKTsK
KyNlbmRpZgogfQogCiB2b2lkIFdlYlBhZ2U6OnJlbW92ZVBsdWdpblZpZXcoUGx1Z2luVmlldyog
cGx1Z2luVmlldykKQEAgLTM4NjMsNSArMzg2OSw4OSBAQCB2b2lkIFdlYlBhZ2U6OmRpZENhbmNl
bENoZWNraW5nVGV4dCh1aW50NjRfdCByZXF1ZXN0SUQpCiAgICAgcmVxdWVzdC0+ZGlkQ2FuY2Vs
KCk7CiAgICAgbV9wZW5kaW5nVGV4dENoZWNraW5nUmVxdWVzdE1hcC5yZW1vdmUocmVxdWVzdElE
KTsKIH0KKyAgICAKKyNpZiBQTEFURk9STShNQUMpCitzdGF0aWMgaW50IHByaW1hcnlTbmFwc2hv
dHRlZFBsdWdJblNlYXJjaExpbWl0ID0gMzAwMDsKK3N0YXRpYyBpbnQgcHJpbWFyeVNuYXBzaG90
dGVkUGx1Z0luU2VhcmNoR2FwID0gMjAwOworc3RhdGljIGZsb2F0IHByaW1hcnlTbmFwc2hvdHRl
ZFBsdWdJblNlYXJjaEJ1Y2tldFNpemUgPSAxLjE7CitzdGF0aWMgaW50IHByaW1hcnlTbmFwc2hv
dHRlZFBsdWdJbk1pbmltdW1XaWR0aCA9IDQ1MDsKK3N0YXRpYyBpbnQgcHJpbWFyeVNuYXBzaG90
dGVkUGx1Z0luTWluaW11bUhlaWdodCA9IDMwMDsKKwordm9pZCBXZWJQYWdlOjpkZXRlcm1pbmVQ
cmltYXJ5U25hcHNob3R0ZWRQbHVnSW4oKQoreworICAgIGlmICghY29yZVBhZ2UoKS0+aGFzU2Vl
bkFueVBsdWdpbigpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9kaWRGaW5kUHJpbWFy
eVNuYXBzaG90dGVkUGx1Z2luKQorICAgICAgICByZXR1cm47CisKKyAgICBSZW5kZXJWaWV3KiBy
ZW5kZXJWaWV3ID0gY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKS0+cmVuZGVyVmlldygp
OworCisgICAgSW50UmVjdCBzZWFyY2hSZWN0ID0gSW50UmVjdChJbnRQb2ludCgpLCBjb3JlUGFn
ZSgpLT5tYWluRnJhbWUoKS0+dmlldygpLT5jb250ZW50c1NpemUoKSk7CisgICAgc2VhcmNoUmVj
dC5pbnRlcnNlY3QoSW50UmVjdChJbnRQb2ludCgpLCBJbnRTaXplKHByaW1hcnlTbmFwc2hvdHRl
ZFBsdWdJblNlYXJjaExpbWl0LCBwcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5TZWFyY2hMaW1pdCkp
KTsKKworICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVlc3QoSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5
IHwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8IEhpdFRlc3RSZXF1ZXN0OjpBbGxvd0NoaWxkRnJh
bWVDb250ZW50IHwgSGl0VGVzdFJlcXVlc3Q6Oklnbm9yZUNsaXBwaW5nKTsKKworICAgIEhhc2hT
ZXQ8UmVuZGVyT2JqZWN0Kj4gc2VlblJlbmRlcmVyczsKKyAgICBIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50KiBjYW5kaWRhdGVQbHVnSW4gPSAwOworICAgIHVuc2lnbmVkIGNhbmRpZGF0ZVBsdWdJbkFy
ZWEgPSAwOworCisgICAgZm9yIChpbnQgeCA9IHNlYXJjaFJlY3QueCgpOyB4IDw9IHNlYXJjaFJl
Y3Qud2lkdGgoKTsgeCArPSBwcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5TZWFyY2hHYXApIHsKKyAg
ICAgICAgZm9yIChpbnQgeSA9IHNlYXJjaFJlY3QueSgpOyB5IDw9IHNlYXJjaFJlY3QuaGVpZ2h0
KCk7IHkgKz0gcHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luU2VhcmNoR2FwKSB7CisgICAgICAgICAg
ICBIaXRUZXN0UmVzdWx0IGhpdFRlc3RSZXN1bHQgPSBIaXRUZXN0UmVzdWx0KExheW91dFBvaW50
KHgsIHkpKTsKKyAgICAgICAgICAgIHJlbmRlclZpZXctPmhpdFRlc3QocmVxdWVzdCwgaGl0VGVz
dFJlc3VsdCk7CisKKyAgICAgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBoaXRUZXN0UmVzdWx0
LmlubmVyRWxlbWVudCgpOworCisgICAgICAgICAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgICAg
ICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBl
bGVtZW50LT5yZW5kZXJlcigpOworICAgICAgICAgICAgaWYgKCFyZW5kZXJlciB8fCAhcmVuZGVy
ZXItPmlzQm94KCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIFJl
bmRlckJveCogcmVuZGVyQm94ID0gdG9SZW5kZXJCb3gocmVuZGVyZXIpOworCisgICAgICAgICAg
ICBpZiAoc2VlblJlbmRlcmVycy5jb250YWlucyhyZW5kZXJlcikpCisgICAgICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgICAgICBzZWVuUmVuZGVyZXJzLmFkZChyZW5kZXJlcik7CisKKyAg
ICAgICAgICAgIGlmICghZWxlbWVudC0+aXNQbHVnaW5FbGVtZW50KCkpCisgICAgICAgICAgICAg
ICAgY29udGludWU7CisKKyAgICAgICAgICAgIEhUTUxQbHVnSW5FbGVtZW50KiBwbHVnSW5FbGVt
ZW50ID0gdG9IVE1MUGx1Z0luRWxlbWVudChlbGVtZW50KTsKKyAgICAgICAgICAgIGlmICghcGx1
Z0luRWxlbWVudC0+aXNQbHVnSW5JbWFnZUVsZW1lbnQoKSkKKyAgICAgICAgICAgICAgICBjb250
aW51ZTsKKworICAgICAgICAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudCogcGx1Z0luSW1hZ2VF
bGVtZW50ID0gdG9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50KHBsdWdJbkVsZW1lbnQpOworCisgICAg
ICAgICAgICBpZiAocGx1Z0luRWxlbWVudC0+ZGlzcGxheVN0YXRlKCkgPT0gSFRNTFBsdWdJbkVs
ZW1lbnQ6OlBsYXlpbmcpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAg
IExheW91dFVuaXQgY29udGVudEFyZWEgPSByZW5kZXJCb3gtPmNvbnRlbnRXaWR0aCgpICogcmVu
ZGVyQm94LT5jb250ZW50SGVpZ2h0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChy
ZW5kZXJCb3gtPmNvbnRlbnRXaWR0aCgpIDwgcHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luTWluaW11
bVdpZHRoIHx8IHJlbmRlckJveC0+Y29udGVudEhlaWdodCgpIDwgcHJpbWFyeVNuYXBzaG90dGVk
UGx1Z0luTWluaW11bUhlaWdodCkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAg
ICAgICAgaWYgKGNvbnRlbnRBcmVhID4gY2FuZGlkYXRlUGx1Z0luQXJlYSAqIHByaW1hcnlTbmFw
c2hvdHRlZFBsdWdJblNlYXJjaEJ1Y2tldFNpemUpIHsKKyAgICAgICAgICAgICAgICBjYW5kaWRh
dGVQbHVnSW4gPSBwbHVnSW5JbWFnZUVsZW1lbnQ7CisgICAgICAgICAgICAgICAgY2FuZGlkYXRl
UGx1Z0luQXJlYSA9IGNvbnRlbnRBcmVhOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
fQorICAgIAorICAgIGlmICghY2FuZGlkYXRlUGx1Z0luKQorICAgICAgICByZXR1cm47CisgICAg
CisgICAgbV9kaWRGaW5kUHJpbWFyeVNuYXBzaG90dGVkUGx1Z2luID0gdHJ1ZTsKKyAgICAKKyAg
ICBjYW5kaWRhdGVQbHVnSW4tPnNldElzUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luKHRydWUpOwor
fQorCit2b2lkIFdlYlBhZ2U6OnJlc2V0UHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luKCkKK3sKKyAg
ICBtX2RpZEZpbmRQcmltYXJ5U25hcHNob3R0ZWRQbHVnaW4gPSBmYWxzZTsKK30KKyNlbmRpZgog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCmluZGV4IDI5MzI0YmUuLjY0OTVjMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNjMwLDYgKzYzMCwxMSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBkaWRGaW5pc2hDaGVja2luZ1RleHQodWludDY0X3QgcmVxdWVzdElELCBjb25z
dCBWZWN0b3I8V2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0PiYpOwogICAgIHZvaWQgZGlkQ2Fu
Y2VsQ2hlY2tpbmdUZXh0KHVpbnQ2NF90IHJlcXVlc3RJRCk7CiAKKyNpZiBQTEFURk9STShNQUMp
CisgICAgdm9pZCBkZXRlcm1pbmVQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW4oKTsKKyAgICB2b2lk
IHJlc2V0UHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAg
ICBXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cyYpOwogCkBAIC04NDYsNiArODUxLDggQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKE1BQykK
ICAgICBib29sIG1fcGRmUGx1Z2luRW5hYmxlZDsKKyAgICAKKyAgICBib29sIG1fZGlkRmluZFBy
aW1hcnlTbmFwc2hvdHRlZFBsdWdpbjsKIAogICAgIGJvb2wgbV9oYXNDYWNoZWRXaW5kb3dGcmFt
ZTsKIAo=
</data>
<flag name="commit-queue"
          id="213581"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192364</attachid>
            <date>2013-03-09 18:21:54 -0800</date>
            <delta_ts>2013-03-09 19:37:07 -0800</delta_ts>
            <desc>patch</desc>
            <filename>ps-onepluin-opensource.diff</filename>
            <type>text/plain</type>
            <size>13184</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KaW5kZXggOGRkNjdjMC4uYTExNDBjMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KQEAgLTc2LDYgKzc2LDcgQEAgX19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50NmNyZWF0ZUVS
S04zV1RGMTJBdG9taWNTdHJpbmdFTlMxXzEwUGFzc1JlZlB0cklOU185RE9NV2kKIF9fWk43V2Vi
Q29yZTEwTW91c2VFdmVudDZjcmVhdGVFUktOM1dURjEyQXRvbWljU3RyaW5nRWJiTlMxXzEwUGFz
c1JlZlB0cklOU185RE9NV2luZG93RUVFaWlpaWliYmJidE5TNV9JTlNfMTFFdmVudFRhcmdldEVF
RU5TNV9JTlNfOUNsaXBib2FyZEVFRWIKIF9fWk43V2ViQ29yZTEwTW91c2VFdmVudEMxRVJLTjNX
VEYxMkF0b21pY1N0cmluZ0ViYk5TMV8xMFBhc3NSZWZQdHJJTlNfOURPTVdpbmRvd0VFRWlpaWlp
YmJiYnROUzVfSU5TXzExRXZlbnRUYXJnZXRFRUVOUzVfSU5TXzlDbGlwYm9hcmRFRUViCiBfX1pO
N1dlYkNvcmUxMFJlbmRlclZpZXcxMGNvbXBvc2l0b3JFdgorX19aTjdXZWJDb3JlMTBSZW5kZXJW
aWV3N2hpdFRlc3RFUktOU18xNEhpdFRlc3RSZXF1ZXN0RVJOU18xM0hpdFRlc3RSZXN1bHRFCiBf
X1pON1dlYkNvcmUxMFNjcm9sbFZpZXcxN3NldFVzZUZpeGVkTGF5b3V0RWIKIF9fWk43V2ViQ29y
ZTEwU2Nyb2xsVmlldzE4c2V0Rml4ZWRMYXlvdXRTaXplRVJLTlNfN0ludFNpemVFCiBfX1pON1dl
YkNvcmUxMFNjcm9sbFZpZXcyMHNldENhbkhhdmVTY3JvbGxiYXJzRWIKQEAgLTI0OCw2ICsyNDks
NyBAQCBfX1pON1dlYkNvcmUxM0NvbnRhaW5lck5vZGUxMXJlbW92ZUNoaWxkRVBOU180Tm9kZUVS
aQogX19aTjdXZWJDb3JlMTNIVFRQSGVhZGVyTWFwQzFFdgogX19aTjdXZWJDb3JlMTNIVFRQSGVh
ZGVyTWFwRDFFdgogX19aTjdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0QzFFUktTMF8KK19fWk43V2Vi
Q29yZTEzSGl0VGVzdFJlc3VsdEMxRVJLTlNfMTFMYXlvdXRQb2ludEUKIF9fWk43V2ViQ29yZTEz
SGl0VGVzdFJlc3VsdEQxRXYKIF9fWk43V2ViQ29yZTEzSWRlbnRpZmllclJlcDNnZXRFUEtjCiBf
X1pON1dlYkNvcmUxM0lkZW50aWZpZXJSZXAzZ2V0RWkKQEAgLTY3Myw2ICs2NzUsNyBAQCBfX1pO
N1dlYkNvcmUyMmV4dGVybmFsUmVwcmVzZW50YXRpb25FUE5TXzVGcmFtZUVqCiBfX1pON1dlYkNv
cmUyMmV4dGVybmFsUmVwcmVzZW50YXRpb25FUE5TXzdFbGVtZW50RWoKIF9fWk43V2ViQ29yZTIy
c3lzdGVtTWFya2V0aW5nVmVyc2lvbkV2CiBfX1pON1dlYkNvcmUyMnVzZXJQcmVmZXJyZWRMYW5n
dWFnZXNFdgorX19aTjdXZWJDb3JlMjJIVE1MUGx1Z0luSW1hZ2VFbGVtZW50MjlzZXRJc1ByaW1h
cnlTbmFwc2hvdHRlZFBsdWdJbkViCiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9y
YWdlMTRzZXRNYXhpbXVtU2l6ZUV4CiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9y
YWdlMTZkZWxldGVBbGxFbnRyaWVzRXYKIF9fWk43V2ViQ29yZTIzQXBwbGljYXRpb25DYWNoZVN0
b3JhZ2UxNnN0b3JlQ29weU9mQ2FjaGVFUktOM1dURjZTdHJpbmdFUE5TXzIwQXBwbGljYXRpb25D
YWNoZUhvc3RFCkBAIC0xMjU0LDYgKzEyNTcsNyBAQCBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVz
dWx0MTBpc0xpdmVMaW5rRXYKIF9fWk5LN1dlYkNvcmUxM0hpdFRlc3RSZXN1bHQxMGlzU2VsZWN0
ZWRFdgogX19aTks3V2ViQ29yZTEzSGl0VGVzdFJlc3VsdDExdGFyZ2V0RnJhbWVFdgogX19aTks3
V2ViQ29yZTEzSGl0VGVzdFJlc3VsdDExdGV4dENvbnRlbnRFdgorX19aTks3V2ViQ29yZTEzSGl0
VGVzdFJlc3VsdDEyaW5uZXJFbGVtZW50RXYKIF9fWk5LN1dlYkNvcmUxM0hpdFRlc3RSZXN1bHQx
NGFic29sdXRlUERGVVJMRXYKIF9fWk5LN1dlYkNvcmUxM0hpdFRlc3RSZXN1bHQxNGlubmVyTm9k
ZUZyYW1lRXYKIF9fWk5LN1dlYkNvcmUxM0hpdFRlc3RSZXN1bHQxNWFic29sdXRlTGlua1VSTEV2
CkBAIC0xNDMxLDYgKzE0MzUsNyBAQCBfX1pOSzdXZWJDb3JlNE5vZGUzMW51bWJlck9mU2NvcGVk
SFRNTFN0eWxlQ2hpbGRyZW5FdgogX19aTks3V2ViQ29yZTROb2RlOW5vZGVJbmRleEV2CiBfX1pO
SzdXZWJDb3JlNFBhZ2UxMHBsdWdpbkRhdGFFdgogX19aTks3V2ViQ29yZTRQYWdlMTRyZW5kZXJU
cmVlU2l6ZUV2CitfX1pOSzdXZWJDb3JlNFBhZ2UxNmhhc1NlZW5BbnlQbHVnaW5FdgogX19aTks3
V2ViQ29yZTRQYWdlMTViYWNrRm9yd2FyZExpc3RFdgogX19aTks3V2ViQ29yZTRQYWdlMTd2aWV3
cG9ydEFyZ3VtZW50c0V2CiBfX1pOSzdXZWJDb3JlNFBhZ2UzNGluTG93UXVhbGl0eUltYWdlSW50
ZXJwb2xhdGlvbk1vZGVFdgpAQCAtMTU0Nyw2ICsxNTUyLDggQEAgX19aTks3V2ViQ29yZTlGcmFt
ZVZpZXczMXNldFdhbnRzTGF5ZXJGb3JUb3BPdmVySGFuZ0FyZWFFYgogX19aTks3V2ViQ29yZTlG
cmFtZVZpZXczNHNldFdhbnRzTGF5ZXJGb3JCb3R0b21PdmVySGFuZ0FyZWFFYgogI2VuZGlmCiBf
X1pOSzdXZWJDb3JlOVBhZ2VDYWNoZTEwZnJhbWVDb3VudEV2CitfX1pOSzdXZWJDb3JlOVJlbmRl
ckJveDEyY2xpZW50SGVpZ2h0RXYKK19fWk5LN1dlYkNvcmU5UmVuZGVyQm94MTFjbGllbnRXaWR0
aEV2CiBfX1pUVk43V2ViQ29yZTEyQ2hyb21lQ2xpZW50RQogX19aVFZON1dlYkNvcmUxNExvYWRl
clN0cmF0ZWd5RQogX19aVFZON1dlYkNvcmUxNVN0b3JhZ2VTdHJhdGVneUUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCmluZGV4IDA3MThkZjAuLjVk
NjM1NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50
LmNwcApAQCAtNzEsNiArNzEsNyBAQCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpIVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvYwogICAgICwgbV9u
ZWVkc1dpZGdldFVwZGF0ZSghY3JlYXRlZEJ5UGFyc2VyKQogICAgICwgbV9zaG91bGRQcmVmZXJQ
bHVnSW5zRm9ySW1hZ2VzKHByZWZlclBsdWdJbnNGb3JJbWFnZXNPcHRpb24gPT0gU2hvdWxkUHJl
ZmVyUGx1Z0luc0ZvckltYWdlcykKICAgICAsIG1fbmVlZHNEb2N1bWVudEFjdGl2YXRpb25DYWxs
YmFja3MoZmFsc2UpCisgICAgLCBtX2lzUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luKGZhbHNlKQog
ICAgICwgbV9zaW11bGF0ZWRNb3VzZUNsaWNrVGltZXIodGhpcywgJkhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQ6OnNpbXVsYXRlZE1vdXNlQ2xpY2tUaW1lckZpcmVkLCBzaW11bGF0ZWRNb3VzZUNsaWNr
VGltZXJEZWxheSkKICAgICAsIG1fc3dhcFJlbmRlcmVyVGltZXIodGhpcywgJkhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQ6OnN3YXBSZW5kZXJlclRpbWVyRmlyZWQpCiB7CkBAIC0yOTUsMTIgKzI5Niwx
MyBAQCB2b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQ
dHI8SW1hZ2U+IGltYWdlKQogICAgICAgICByZW5kZXJlcigpLT5yZXBhaW50KCk7CiB9CiAKLXN0
YXRpYyBBdG9taWNTdHJpbmcgY2xhc3NOYW1lRm9yU2hhZG93Um9vdChjb25zdCBOb2RlKiBub2Rl
KQorc3RhdGljIEF0b21pY1N0cmluZyBjbGFzc05hbWVGb3JTaGFkb3dSb290KGNvbnN0IE5vZGUq
IG5vZGUsIGJvb2wgaXNQcmltYXJ5KQogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCBwbHVnSW5UaW55U2l6ZUNsYXNzTmFtZSwgKCJ0aW55IiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCBwbHVnSW5TbWFsbFNpemVDbGFzc05hbWUsICgic21hbGwiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIHBsdWdJbk1lZGl1bVNpemVDbGFzc05hbWUsICgibWVkaXVt
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBwbHVnSW5MYXJnZVNpemVDbGFzc05hbWUsICgi
bGFyZ2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHBsdWdJbkxhcmdlU2l6ZVByaW1hcnlD
bGFzc05hbWUsICgibGFyZ2UgcHJpbWFyeSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKIAogICAgIFJlbmRlckJveCogcmVuZGVyQm94ID0gc3RhdGljX2Nhc3Q8UmVuZGVy
Qm94Kj4obm9kZS0+cmVuZGVyZXIoKSk7CiAgICAgTGF5b3V0VW5pdCB3aWR0aCA9IHJlbmRlckJv
eC0+Y29udGVudFdpZHRoKCk7CkBAIC0zMTUsNyArMzE3LDE0IEBAIHN0YXRpYyBBdG9taWNTdHJp
bmcgY2xhc3NOYW1lRm9yU2hhZG93Um9vdChjb25zdCBOb2RlKiBub2RlKQogICAgIGlmICh3aWR0
aCA8IHNpemluZ01lZGl1bVdpZHRoVGhyZXNob2xkIHx8IGhlaWdodCA8IHNpemluZ01lZGl1bUhl
aWdodFRocmVzaG9sZCkKICAgICAgICAgcmV0dXJuIHBsdWdJbk1lZGl1bVNpemVDbGFzc05hbWU7
CiAKLSAgICByZXR1cm4gcGx1Z0luTGFyZ2VTaXplQ2xhc3NOYW1lOworICAgIHJldHVybiBpc1By
aW1hcnkgPyBwbHVnSW5MYXJnZVNpemVQcmltYXJ5Q2xhc3NOYW1lIDogcGx1Z0luTGFyZ2VTaXpl
Q2xhc3NOYW1lOworfQorICAgIAordm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpzZXRJc1By
aW1hcnlTbmFwc2hvdHRlZFBsdWdJbihib29sIGlzUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luKQor
eworICAgIG1faXNQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW4gPSBpc1ByaW1hcnlTbmFwc2hvdHRl
ZFBsdWdJbjsKKyAgICAKKyAgICB1cGRhdGVTbmFwc2hvdEluZm8oKTsKIH0KIAogdm9pZCBIVE1M
UGx1Z0luSW1hZ2VFbGVtZW50Ojp1cGRhdGVTbmFwc2hvdEluZm8oKQpAQCAtMzI1LDcgKzMzNCw3
IEBAIHZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6dXBkYXRlU25hcHNob3RJbmZvKCkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgRWxlbWVudCogc2hhZG93Q29udGFpbmVyID0gc3RhdGljX2Nh
c3Q8RWxlbWVudCo+KHJvb3QtPmZpcnN0Q2hpbGQoKSk7Ci0gICAgc2hhZG93Q29udGFpbmVyLT5z
ZXRBdHRyaWJ1dGUoY2xhc3NBdHRyLCBjbGFzc05hbWVGb3JTaGFkb3dSb290KHRoaXMpKTsKKyAg
ICBzaGFkb3dDb250YWluZXItPnNldEF0dHJpYnV0ZShjbGFzc0F0dHIsIGNsYXNzTmFtZUZvclNo
YWRvd1Jvb3QodGhpcywgbV9pc1ByaW1hcnlTbmFwc2hvdHRlZFBsdWdJbikpOwogfQogCiB2b2lk
IEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93
Um9vdCogcm9vdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbklt
YWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50
LmgKaW5kZXggYjUwZDUzYS4uMDdmZWU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UGx1Z0luSW1hZ2VFbGVtZW50LmgKQEAgLTcxLDYgKzcxLDggQEAgcHVibGljOgogICAgIC8vIFBs
dWctaW4gVVJMIG1pZ2h0IG5vdCBiZSB0aGUgc2FtZSBhcyB1cmwoKSB3aXRoIG92ZXJyaWRpbmcg
cGFyYW1ldGVycy4KICAgICB2b2lkIHN1YmZyYW1lTG9hZGVyV2lsbENyZWF0ZVBsdWdJbihjb25z
dCBLVVJMJiBwbHVnSW5VUkwpOwogICAgIHZvaWQgc3ViZnJhbWVMb2FkZXJEaWRDcmVhdGVQbHVn
SW4oY29uc3QgV2lkZ2V0Kik7CisgICAgCisgICAgdm9pZCBzZXRJc1ByaW1hcnlTbmFwc2hvdHRl
ZFBsdWdJbihib29sKTsKIAogcHJvdGVjdGVkOgogICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqLCBib29sIGNyZWF0ZWRCeVBh
cnNlciwgUHJlZmVyUGx1Z0luc0ZvckltYWdlc09wdGlvbik7CkBAIC0xMTcsNiArMTE5LDcgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fbmVlZHNXaWRnZXRVcGRhdGU7CiAgICAgYm9vbCBtX3Nob3Vs
ZFByZWZlclBsdWdJbnNGb3JJbWFnZXM7CiAgICAgYm9vbCBtX25lZWRzRG9jdW1lbnRBY3RpdmF0
aW9uQ2FsbGJhY2tzOworICAgIGJvb2wgbV9pc1ByaW1hcnlTbmFwc2hvdHRlZFBsdWdJbjsKICAg
ICBSZWZQdHI8UmVuZGVyU3R5bGU+IG1fY3VzdG9tU3R5bGVGb3JQYWdlQ2FjaGU7CiAgICAgUmVm
UHRyPE1vdXNlRXZlbnQ+IG1fcGVuZGluZ0NsaWNrRXZlbnRGcm9tU25hcHNob3Q7CiAgICAgRGVm
ZXJyYWJsZU9uZVNob3RUaW1lcjxIVE1MUGx1Z0luSW1hZ2VFbGVtZW50PiBtX3NpbXVsYXRlZE1v
dXNlQ2xpY2tUaW1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggYTgz
ZGUxZC4uNGFmZDQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTQ1
MCw2ICs0NTAsMTEgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDb21t
aXRMb2FkKCkKICAgICAgICAgaWYgKHBhZ2UgJiYgcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkgIT0g
MSkKICAgICAgICAgICAgIHdlYlBhZ2UtPnNjYWxlUGFnZSgxLCBJbnRQb2ludCgpKTsKICAgICB9
CisgICAgCisjaWYgUExBVEZPUk0oTUFDKQorICAgIGlmIChtX2ZyYW1lLT5pc01haW5GcmFtZSgp
KQorICAgICAgICB3ZWJQYWdlLT5yZXNldFByaW1hcnlTbmFwc2hvdHRlZFBsdWdJbigpOworI2Vu
ZGlmCiB9CiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zp
c2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKQEAgLTUyNCw2ICs1MjksMTAg
QEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCkKICAg
ICAvLyBJZiB3ZSBoYXZlIGEgbG9hZCBsaXN0ZW5lciwgbm90aWZ5IGl0LgogICAgIGlmIChXZWJG
cmFtZTo6TG9hZExpc3RlbmVyKiBsb2FkTGlzdGVuZXIgPSBtX2ZyYW1lLT5sb2FkTGlzdGVuZXIo
KSkKICAgICAgICAgbG9hZExpc3RlbmVyLT5kaWRGaW5pc2hMb2FkKG1fZnJhbWUpOworCisjaWYg
UExBVEZPUk0oTUFDKQorICAgIHdlYlBhZ2UtPmRldGVybWluZVByaW1hcnlTbmFwc2hvdHRlZFBs
dWdJbigpOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGlkTGF5b3V0KExheW91dE1pbGVzdG9uZXMgbWlsZXN0b25lcykKQEAgLTExNTEsNiArMTE2MCwx
NCBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRGaW5pc2hMb2FkKCkKICAgICAvLyBJ
ZiB3ZSBoYXZlIGEgbG9hZCBsaXN0ZW5lciwgbm90aWZ5IGl0LgogICAgIGlmIChXZWJGcmFtZTo6
TG9hZExpc3RlbmVyKiBsb2FkTGlzdGVuZXIgPSBtX2ZyYW1lLT5sb2FkTGlzdGVuZXIoKSkKICAg
ICAgICAgbG9hZExpc3RlbmVyLT5kaWRGaW5pc2hMb2FkKG1fZnJhbWUpOworICAgIAorICAgIFdl
YlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCF3ZWJQYWdlKQorICAg
ICAgICByZXR1cm47CisKKyNpZiBQTEFURk9STShNQUMpCisgICAgd2ViUGFnZS0+ZGV0ZXJtaW5l
UHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luKCk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6cHJlcGFyZUZvckRhdGFTb3VyY2VSZXBsYWNlbWVudCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNDNkMmY0Zi4uYjgx
ZjM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cApAQCAtMTAxLDYgKzEwMSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MRm9ybUVsZW1lbnQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxJbnB1dEVsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0hUTUxQbHVnSW5FbGVtZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9IVE1MUGx1Z0luSW1h
Z2VFbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTUlNRVR5cGVSZWdp
c3RyeS5oPgpAQCAtMjM3LDYgKzIzOCw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFn
ZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgICwg
bV9tYWluRnJhbWVJc1Njcm9sbGFibGUodHJ1ZSkKICNpZiBQTEFURk9STShNQUMpCiAgICAgLCBt
X3BkZlBsdWdpbkVuYWJsZWQoZmFsc2UpCisgICAgLCBtX2RpZEZpbmRQcmltYXJ5U25hcHNob3R0
ZWRQbHVnaW4oZmFsc2UpCiAgICAgLCBtX2hhc0NhY2hlZFdpbmRvd0ZyYW1lKGZhbHNlKQogICAg
ICwgbV93aW5kb3dJc1Zpc2libGUoZmFsc2UpCiAgICAgLCBtX2xheWVySG9zdGluZ01vZGUocGFy
YW1ldGVycy5sYXllckhvc3RpbmdNb2RlKQpAQCAtMzg2Myw1ICszODY1LDg4IEBAIHZvaWQgV2Vi
UGFnZTo6ZGlkQ2FuY2VsQ2hlY2tpbmdUZXh0KHVpbnQ2NF90IHJlcXVlc3RJRCkKICAgICByZXF1
ZXN0LT5kaWRDYW5jZWwoKTsKICAgICBtX3BlbmRpbmdUZXh0Q2hlY2tpbmdSZXF1ZXN0TWFwLnJl
bW92ZShyZXF1ZXN0SUQpOwogfQorICAgIAorI2lmIFBMQVRGT1JNKE1BQykKK3N0YXRpYyBpbnQg
cHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luU2VhcmNoTGltaXQgPSAzMDAwOworc3RhdGljIGludCBw
cmltYXJ5U25hcHNob3R0ZWRQbHVnSW5TZWFyY2hHYXAgPSAyMDA7CitzdGF0aWMgZmxvYXQgcHJp
bWFyeVNuYXBzaG90dGVkUGx1Z0luU2VhcmNoQnVja2V0U2l6ZSA9IDEuMTsKK3N0YXRpYyBpbnQg
cHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luTWluaW11bVdpZHRoID0gNDUwOworc3RhdGljIGludCBw
cmltYXJ5U25hcHNob3R0ZWRQbHVnSW5NaW5pbXVtSGVpZ2h0ID0gMzAwOworCit2b2lkIFdlYlBh
Z2U6OmRldGVybWluZVByaW1hcnlTbmFwc2hvdHRlZFBsdWdJbigpCit7CisgICAgaWYgKCFjb3Jl
UGFnZSgpLT5oYXNTZWVuQW55UGx1Z2luKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICht
X2RpZEZpbmRQcmltYXJ5U25hcHNob3R0ZWRQbHVnaW4pCisgICAgICAgIHJldHVybjsKKworICAg
IFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSBjb3JlUGFnZSgpLT5tYWluRnJhbWUoKS0+dmlldygp
LT5yZW5kZXJWaWV3KCk7CisKKyAgICBJbnRSZWN0IHNlYXJjaFJlY3QgPSBJbnRSZWN0KEludFBv
aW50KCksIGNvcmVQYWdlKCktPm1haW5GcmFtZSgpLT52aWV3KCktPmNvbnRlbnRzU2l6ZSgpKTsK
KyAgICBzZWFyY2hSZWN0LmludGVyc2VjdChJbnRSZWN0KEludFBvaW50KCksIEludFNpemUocHJp
bWFyeVNuYXBzaG90dGVkUGx1Z0luU2VhcmNoTGltaXQsIHByaW1hcnlTbmFwc2hvdHRlZFBsdWdJ
blNlYXJjaExpbWl0KSkpOworCisgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVx
dWVzdDo6UmVhZE9ubHkgfCBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6
OkFsbG93Q2hpbGRGcmFtZUNvbnRlbnQgfCBIaXRUZXN0UmVxdWVzdDo6SWdub3JlQ2xpcHBpbmcp
OworCisgICAgSGFzaFNldDxSZW5kZXJPYmplY3QqPiBzZWVuUmVuZGVyZXJzOworICAgIEhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQqIGNhbmRpZGF0ZVBsdWdJbiA9IDA7CisgICAgdW5zaWduZWQgY2Fu
ZGlkYXRlUGx1Z0luQXJlYSA9IDA7CisKKyAgICBmb3IgKGludCB4ID0gc2VhcmNoUmVjdC54KCk7
IHggPD0gc2VhcmNoUmVjdC53aWR0aCgpOyB4ICs9IHByaW1hcnlTbmFwc2hvdHRlZFBsdWdJblNl
YXJjaEdhcCkgeworICAgICAgICBmb3IgKGludCB5ID0gc2VhcmNoUmVjdC55KCk7IHkgPD0gc2Vh
cmNoUmVjdC5oZWlnaHQoKTsgeSArPSBwcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5TZWFyY2hHYXAp
IHsKKyAgICAgICAgICAgIEhpdFRlc3RSZXN1bHQgaGl0VGVzdFJlc3VsdCA9IEhpdFRlc3RSZXN1
bHQoTGF5b3V0UG9pbnQoeCwgeSkpOworICAgICAgICAgICAgcmVuZGVyVmlldy0+aGl0VGVzdChy
ZXF1ZXN0LCBoaXRUZXN0UmVzdWx0KTsKKworICAgICAgICAgICAgRWxlbWVudCogZWxlbWVudCA9
IGhpdFRlc3RSZXN1bHQuaW5uZXJFbGVtZW50KCk7CisgICAgICAgICAgICBpZiAoIWVsZW1lbnQp
CisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIFJlbmRlck9iamVjdCog
cmVuZGVyZXIgPSBlbGVtZW50LT5yZW5kZXJlcigpOworICAgICAgICAgICAgaWYgKCFyZW5kZXJl
ciB8fCAhcmVuZGVyZXItPmlzQm94KCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAg
ICAgICAgICAgIFJlbmRlckJveCogcmVuZGVyQm94ID0gdG9SZW5kZXJCb3gocmVuZGVyZXIpOwor
CisgICAgICAgICAgICBpZiAoc2VlblJlbmRlcmVycy5jb250YWlucyhyZW5kZXJlcikpCisgICAg
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBzZWVuUmVuZGVyZXJzLmFkZChyZW5k
ZXJlcik7CisKKyAgICAgICAgICAgIGlmICghZWxlbWVudC0+aXNQbHVnaW5FbGVtZW50KCkpCisg
ICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIEhUTUxQbHVnSW5FbGVtZW50
KiBwbHVnSW5FbGVtZW50ID0gdG9IVE1MUGx1Z0luRWxlbWVudChlbGVtZW50KTsKKyAgICAgICAg
ICAgIGlmICghcGx1Z0luRWxlbWVudC0+aXNQbHVnSW5JbWFnZUVsZW1lbnQoKSkKKyAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudCog
cGx1Z0luSW1hZ2VFbGVtZW50ID0gdG9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50KHBsdWdJbkVsZW1l
bnQpOworCisgICAgICAgICAgICBpZiAocGx1Z0luRWxlbWVudC0+ZGlzcGxheVN0YXRlKCkgPT0g
SFRNTFBsdWdJbkVsZW1lbnQ6OlBsYXlpbmcpCisgICAgICAgICAgICAgICAgY29udGludWU7CisK
KyAgICAgICAgICAgIExheW91dFVuaXQgY29udGVudEFyZWEgPSByZW5kZXJCb3gtPmNvbnRlbnRX
aWR0aCgpICogcmVuZGVyQm94LT5jb250ZW50SGVpZ2h0KCk7CisgICAgICAgICAgICAKKyAgICAg
ICAgICAgIGlmIChyZW5kZXJCb3gtPmNvbnRlbnRXaWR0aCgpIDwgcHJpbWFyeVNuYXBzaG90dGVk
UGx1Z0luTWluaW11bVdpZHRoIHx8IHJlbmRlckJveC0+Y29udGVudEhlaWdodCgpIDwgcHJpbWFy
eVNuYXBzaG90dGVkUGx1Z0luTWluaW11bUhlaWdodCkKKyAgICAgICAgICAgICAgICBjb250aW51
ZTsKKworICAgICAgICAgICAgaWYgKGNvbnRlbnRBcmVhID4gY2FuZGlkYXRlUGx1Z0luQXJlYSAq
IHByaW1hcnlTbmFwc2hvdHRlZFBsdWdJblNlYXJjaEJ1Y2tldFNpemUpIHsKKyAgICAgICAgICAg
ICAgICBjYW5kaWRhdGVQbHVnSW4gPSBwbHVnSW5JbWFnZUVsZW1lbnQ7CisgICAgICAgICAgICAg
ICAgY2FuZGlkYXRlUGx1Z0luQXJlYSA9IGNvbnRlbnRBcmVhOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgfQorICAgIAorICAgIGlmICghY2FuZGlkYXRlUGx1Z0luKQorICAgICAgICBy
ZXR1cm47CisgICAgCisgICAgbV9kaWRGaW5kUHJpbWFyeVNuYXBzaG90dGVkUGx1Z2luID0gdHJ1
ZTsKKyAgICAKKyAgICBjYW5kaWRhdGVQbHVnSW4tPnNldElzUHJpbWFyeVNuYXBzaG90dGVkUGx1
Z0luKHRydWUpOworfQorCit2b2lkIFdlYlBhZ2U6OnJlc2V0UHJpbWFyeVNuYXBzaG90dGVkUGx1
Z0luKCkKK3sKKyAgICBtX2RpZEZpbmRQcmltYXJ5U25hcHNob3R0ZWRQbHVnaW4gPSBmYWxzZTsK
K30KKyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDI5MzI0YmUuLjY0OTVjMDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNjMwLDYgKzYzMCwx
MSBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRGaW5pc2hDaGVja2luZ1RleHQodWludDY0X3QgcmVx
dWVzdElELCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0PiYpOwogICAg
IHZvaWQgZGlkQ2FuY2VsQ2hlY2tpbmdUZXh0KHVpbnQ2NF90IHJlcXVlc3RJRCk7CiAKKyNpZiBQ
TEFURk9STShNQUMpCisgICAgdm9pZCBkZXRlcm1pbmVQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW4o
KTsKKyAgICB2b2lkIHJlc2V0UHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luKCk7CisjZW5kaWYKKwog
cHJpdmF0ZToKICAgICBXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycyYpOwogCkBAIC04NDYsNiArODUxLDggQEAgcHJpdmF0ZToKIAogI2lmIFBM
QVRGT1JNKE1BQykKICAgICBib29sIG1fcGRmUGx1Z2luRW5hYmxlZDsKKyAgICAKKyAgICBib29s
IG1fZGlkRmluZFByaW1hcnlTbmFwc2hvdHRlZFBsdWdpbjsKIAogICAgIGJvb2wgbV9oYXNDYWNo
ZWRXaW5kb3dGcmFtZTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192367</attachid>
            <date>2013-03-09 19:37:07 -0800</date>
            <delta_ts>2013-03-10 13:36:31 -0700</delta_ts>
            <desc>patch</desc>
            <filename>ps-onepluin-opensource.diff</filename>
            <type>text/plain</type>
            <size>17891</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiZjZlZDQ1Li4xZTQ3ZWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTMtMDMtMDkgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIGEgaGV1cmlzdGljIHRvIGRldGVybWluZSB0aGUg4oCccHJpbWFyeeKAnSBz
bmFwc2hvdHRlZCBwbHVnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMTkzMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTMyNzAyMDg+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4
cC5pbjogRXhwb3J0IGEgZmV3IHRoaW5ncy4KKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6
SFRNTFBsdWdJbkltYWdlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpjbGFzc05hbWVGb3JT
aGFkb3dSb290KTogSWYgd2UndmUgYmVlbiBpbmZvcm1lZCB0aGF0IHdlIGFyZSB0aGUgcHJpbWFy
eSBzbmFwc2hvdHRlZCBwbHVnaW4sIGFkZCB0aGUgJ3ByaW1hcnknIGNsYXNzLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6c2V0SXNQcmltYXJ5U25hcHNob3R0ZWRQ
bHVnSW4pOiBBZGRlZAorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6
dXBkYXRlU25hcHNob3RJbmZvKTogSGFuZCBjbGFzc05hbWVGb3JTaGFkb3dSb290IG91ciBwcmlt
YXJ5LW5lc3MuCisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50Lmg6CisgICAg
ICAgIChIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KTogQWRkIHN0b3JhZ2UgZm9yIG1faXNQcmltYXJ5
U25hcHNob3R0ZWRQbHVnSW4uCisKIDIwMTMtMDMtMDkgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2Fy
bHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxlIHBsYXRmb3JtIGNvZGUgdG8gaW1wbGVt
ZW50IHRleHQgdHJhY2sgbWVudQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA4ZGQ2N2MwLi5hMTE0
MGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNzYsNiArNzYsNyBAQCBfX1pON1dlYkNvcmUx
ME1vdXNlRXZlbnQ2Y3JlYXRlRVJLTjNXVEYxMkF0b21pY1N0cmluZ0VOUzFfMTBQYXNzUmVmUHRy
SU5TXzlET01XaQogX19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50NmNyZWF0ZUVSS04zV1RGMTJBdG9t
aWNTdHJpbmdFYmJOUzFfMTBQYXNzUmVmUHRySU5TXzlET01XaW5kb3dFRUVpaWlpaWJiYmJ0TlM1
X0lOU18xMUV2ZW50VGFyZ2V0RUVFTlM1X0lOU185Q2xpcGJvYXJkRUVFYgogX19aTjdXZWJDb3Jl
MTBNb3VzZUV2ZW50QzFFUktOM1dURjEyQXRvbWljU3RyaW5nRWJiTlMxXzEwUGFzc1JlZlB0cklO
U185RE9NV2luZG93RUVFaWlpaWliYmJidE5TNV9JTlNfMTFFdmVudFRhcmdldEVFRU5TNV9JTlNf
OUNsaXBib2FyZEVFRWIKIF9fWk43V2ViQ29yZTEwUmVuZGVyVmlldzEwY29tcG9zaXRvckV2Citf
X1pON1dlYkNvcmUxMFJlbmRlclZpZXc3aGl0VGVzdEVSS05TXzE0SGl0VGVzdFJlcXVlc3RFUk5T
XzEzSGl0VGVzdFJlc3VsdEUKIF9fWk43V2ViQ29yZTEwU2Nyb2xsVmlldzE3c2V0VXNlRml4ZWRM
YXlvdXRFYgogX19aTjdXZWJDb3JlMTBTY3JvbGxWaWV3MThzZXRGaXhlZExheW91dFNpemVFUktO
U183SW50U2l6ZUUKIF9fWk43V2ViQ29yZTEwU2Nyb2xsVmlldzIwc2V0Q2FuSGF2ZVNjcm9sbGJh
cnNFYgpAQCAtMjQ4LDYgKzI0OSw3IEBAIF9fWk43V2ViQ29yZTEzQ29udGFpbmVyTm9kZTExcmVt
b3ZlQ2hpbGRFUE5TXzROb2RlRVJpCiBfX1pON1dlYkNvcmUxM0hUVFBIZWFkZXJNYXBDMUV2CiBf
X1pON1dlYkNvcmUxM0hUVFBIZWFkZXJNYXBEMUV2CiBfX1pON1dlYkNvcmUxM0hpdFRlc3RSZXN1
bHRDMUVSS1MwXworX19aTjdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0QzFFUktOU18xMUxheW91dFBv
aW50RQogX19aTjdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0RDFFdgogX19aTjdXZWJDb3JlMTNJZGVu
dGlmaWVyUmVwM2dldEVQS2MKIF9fWk43V2ViQ29yZTEzSWRlbnRpZmllclJlcDNnZXRFaQpAQCAt
NjczLDYgKzY3NSw3IEBAIF9fWk43V2ViQ29yZTIyZXh0ZXJuYWxSZXByZXNlbnRhdGlvbkVQTlNf
NUZyYW1lRWoKIF9fWk43V2ViQ29yZTIyZXh0ZXJuYWxSZXByZXNlbnRhdGlvbkVQTlNfN0VsZW1l
bnRFagogX19aTjdXZWJDb3JlMjJzeXN0ZW1NYXJrZXRpbmdWZXJzaW9uRXYKIF9fWk43V2ViQ29y
ZTIydXNlclByZWZlcnJlZExhbmd1YWdlc0V2CitfX1pON1dlYkNvcmUyMkhUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQyOXNldElzUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luRWIKIF9fWk43V2ViQ29yZTIz
QXBwbGljYXRpb25DYWNoZVN0b3JhZ2UxNHNldE1heGltdW1TaXplRXgKIF9fWk43V2ViQ29yZTIz
QXBwbGljYXRpb25DYWNoZVN0b3JhZ2UxNmRlbGV0ZUFsbEVudHJpZXNFdgogX19aTjdXZWJDb3Jl
MjNBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTE2c3RvcmVDb3B5T2ZDYWNoZUVSS04zV1RGNlN0cmlu
Z0VQTlNfMjBBcHBsaWNhdGlvbkNhY2hlSG9zdEUKQEAgLTEyNTQsNiArMTI1Nyw3IEBAIF9fWk5L
N1dlYkNvcmUxM0hpdFRlc3RSZXN1bHQxMGlzTGl2ZUxpbmtFdgogX19aTks3V2ViQ29yZTEzSGl0
VGVzdFJlc3VsdDEwaXNTZWxlY3RlZEV2CiBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0MTF0
YXJnZXRGcmFtZUV2CiBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0MTF0ZXh0Q29udGVudEV2
CitfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0MTJpbm5lckVsZW1lbnRFdgogX19aTks3V2Vi
Q29yZTEzSGl0VGVzdFJlc3VsdDE0YWJzb2x1dGVQREZVUkxFdgogX19aTks3V2ViQ29yZTEzSGl0
VGVzdFJlc3VsdDE0aW5uZXJOb2RlRnJhbWVFdgogX19aTks3V2ViQ29yZTEzSGl0VGVzdFJlc3Vs
dDE1YWJzb2x1dGVMaW5rVVJMRXYKQEAgLTE0MzEsNiArMTQzNSw3IEBAIF9fWk5LN1dlYkNvcmU0
Tm9kZTMxbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbkV2CiBfX1pOSzdXZWJDb3JlNE5v
ZGU5bm9kZUluZGV4RXYKIF9fWk5LN1dlYkNvcmU0UGFnZTEwcGx1Z2luRGF0YUV2CiBfX1pOSzdX
ZWJDb3JlNFBhZ2UxNHJlbmRlclRyZWVTaXplRXYKK19fWk5LN1dlYkNvcmU0UGFnZTE2aGFzU2Vl
bkFueVBsdWdpbkV2CiBfX1pOSzdXZWJDb3JlNFBhZ2UxNWJhY2tGb3J3YXJkTGlzdEV2CiBfX1pO
SzdXZWJDb3JlNFBhZ2UxN3ZpZXdwb3J0QXJndW1lbnRzRXYKIF9fWk5LN1dlYkNvcmU0UGFnZTM0
aW5Mb3dRdWFsaXR5SW1hZ2VJbnRlcnBvbGF0aW9uTW9kZUV2CkBAIC0xNTQ3LDYgKzE1NTIsOCBA
QCBfX1pOSzdXZWJDb3JlOUZyYW1lVmlldzMxc2V0V2FudHNMYXllckZvclRvcE92ZXJIYW5nQXJl
YUViCiBfX1pOSzdXZWJDb3JlOUZyYW1lVmlldzM0c2V0V2FudHNMYXllckZvckJvdHRvbU92ZXJI
YW5nQXJlYUViCiAjZW5kaWYKIF9fWk5LN1dlYkNvcmU5UGFnZUNhY2hlMTBmcmFtZUNvdW50RXYK
K19fWk5LN1dlYkNvcmU5UmVuZGVyQm94MTJjbGllbnRIZWlnaHRFdgorX19aTks3V2ViQ29yZTlS
ZW5kZXJCb3gxMWNsaWVudFdpZHRoRXYKIF9fWlRWTjdXZWJDb3JlMTJDaHJvbWVDbGllbnRFCiBf
X1pUVk43V2ViQ29yZTE0TG9hZGVyU3RyYXRlZ3lFCiBfX1pUVk43V2ViQ29yZTE1U3RvcmFnZVN0
cmF0ZWd5RQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5j
cHAKaW5kZXggMDcxOGRmMC4uNWQ2MzU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC03MSw2ICs3MSw3IEBAIEhUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQ6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jCiAgICAgLCBtX25lZWRzV2lkZ2V0VXBkYXRlKCFjcmVhdGVkQnlQYXJzZXIpCiAg
ICAgLCBtX3Nob3VsZFByZWZlclBsdWdJbnNGb3JJbWFnZXMocHJlZmVyUGx1Z0luc0ZvckltYWdl
c09wdGlvbiA9PSBTaG91bGRQcmVmZXJQbHVnSW5zRm9ySW1hZ2VzKQogICAgICwgbV9uZWVkc0Rv
Y3VtZW50QWN0aXZhdGlvbkNhbGxiYWNrcyhmYWxzZSkKKyAgICAsIG1faXNQcmltYXJ5U25hcHNo
b3R0ZWRQbHVnSW4oZmFsc2UpCiAgICAgLCBtX3NpbXVsYXRlZE1vdXNlQ2xpY2tUaW1lcih0aGlz
LCAmSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6c2ltdWxhdGVkTW91c2VDbGlja1RpbWVyRmlyZWQs
IHNpbXVsYXRlZE1vdXNlQ2xpY2tUaW1lckRlbGF5KQogICAgICwgbV9zd2FwUmVuZGVyZXJUaW1l
cih0aGlzLCAmSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6c3dhcFJlbmRlcmVyVGltZXJGaXJlZCkK
IHsKQEAgLTI5NSwxMiArMjk2LDEzIEBAIHZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6dXBk
YXRlU25hcHNob3QoUGFzc1JlZlB0cjxJbWFnZT4gaW1hZ2UpCiAgICAgICAgIHJlbmRlcmVyKCkt
PnJlcGFpbnQoKTsKIH0KIAotc3RhdGljIEF0b21pY1N0cmluZyBjbGFzc05hbWVGb3JTaGFkb3dS
b290KGNvbnN0IE5vZGUqIG5vZGUpCitzdGF0aWMgQXRvbWljU3RyaW5nIGNsYXNzTmFtZUZvclNo
YWRvd1Jvb3QoY29uc3QgTm9kZSogbm9kZSwgYm9vbCBpc1ByaW1hcnkpCiB7CiAgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHBsdWdJblRpbnlTaXplQ2xhc3NOYW1l
LCAoInRpbnkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHBsdWdJblNtYWxsU2l6ZUNsYXNz
TmFtZSwgKCJzbWFsbCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgcGx1Z0luTWVkaXVtU2l6
ZUNsYXNzTmFtZSwgKCJtZWRpdW0iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHBsdWdJbkxh
cmdlU2l6ZUNsYXNzTmFtZSwgKCJsYXJnZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgcGx1
Z0luTGFyZ2VTaXplUHJpbWFyeUNsYXNzTmFtZSwgKCJsYXJnZSBwcmltYXJ5IiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogCiAgICAgUmVuZGVyQm94KiByZW5kZXJCb3gg
PSBzdGF0aWNfY2FzdDxSZW5kZXJCb3gqPihub2RlLT5yZW5kZXJlcigpKTsKICAgICBMYXlvdXRV
bml0IHdpZHRoID0gcmVuZGVyQm94LT5jb250ZW50V2lkdGgoKTsKQEAgLTMxNSw3ICszMTcsMTQg
QEAgc3RhdGljIEF0b21pY1N0cmluZyBjbGFzc05hbWVGb3JTaGFkb3dSb290KGNvbnN0IE5vZGUq
IG5vZGUpCiAgICAgaWYgKHdpZHRoIDwgc2l6aW5nTWVkaXVtV2lkdGhUaHJlc2hvbGQgfHwgaGVp
Z2h0IDwgc2l6aW5nTWVkaXVtSGVpZ2h0VGhyZXNob2xkKQogICAgICAgICByZXR1cm4gcGx1Z0lu
TWVkaXVtU2l6ZUNsYXNzTmFtZTsKIAotICAgIHJldHVybiBwbHVnSW5MYXJnZVNpemVDbGFzc05h
bWU7CisgICAgcmV0dXJuIGlzUHJpbWFyeSA/IHBsdWdJbkxhcmdlU2l6ZVByaW1hcnlDbGFzc05h
bWUgOiBwbHVnSW5MYXJnZVNpemVDbGFzc05hbWU7Cit9CisgICAgCit2b2lkIEhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQ6OnNldElzUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luKGJvb2wgaXNQcmltYXJ5
U25hcHNob3R0ZWRQbHVnSW4pCit7CisgICAgbV9pc1ByaW1hcnlTbmFwc2hvdHRlZFBsdWdJbiA9
IGlzUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luOworICAgIAorICAgIHVwZGF0ZVNuYXBzaG90SW5m
bygpOwogfQogCiB2b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnVwZGF0ZVNuYXBzaG90SW5m
bygpCkBAIC0zMjUsNyArMzM0LDcgQEAgdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp1cGRh
dGVTbmFwc2hvdEluZm8oKQogICAgICAgICByZXR1cm47CiAKICAgICBFbGVtZW50KiBzaGFkb3dD
b250YWluZXIgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4ocm9vdC0+Zmlyc3RDaGlsZCgpKTsKLSAg
ICBzaGFkb3dDb250YWluZXItPnNldEF0dHJpYnV0ZShjbGFzc0F0dHIsIGNsYXNzTmFtZUZvclNo
YWRvd1Jvb3QodGhpcykpOworICAgIHNoYWRvd0NvbnRhaW5lci0+c2V0QXR0cmlidXRlKGNsYXNz
QXR0ciwgY2xhc3NOYW1lRm9yU2hhZG93Um9vdCh0aGlzLCBtX2lzUHJpbWFyeVNuYXBzaG90dGVk
UGx1Z0luKSk7CiB9CiAKIHZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6ZGlkQWRkVXNlckFn
ZW50U2hhZG93Um9vdChTaGFkb3dSb290KiByb290KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQbHVnSW5JbWFnZUVsZW1lbnQuaAppbmRleCBiNTBkNTNhLi4wN2ZlZTVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaApAQCAtNzEsNiArNzEsOCBA
QCBwdWJsaWM6CiAgICAgLy8gUGx1Zy1pbiBVUkwgbWlnaHQgbm90IGJlIHRoZSBzYW1lIGFzIHVy
bCgpIHdpdGggb3ZlcnJpZGluZyBwYXJhbWV0ZXJzLgogICAgIHZvaWQgc3ViZnJhbWVMb2FkZXJX
aWxsQ3JlYXRlUGx1Z0luKGNvbnN0IEtVUkwmIHBsdWdJblVSTCk7CiAgICAgdm9pZCBzdWJmcmFt
ZUxvYWRlckRpZENyZWF0ZVBsdWdJbihjb25zdCBXaWRnZXQqKTsKKyAgICAKKyAgICB2b2lkIHNl
dElzUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luKGJvb2wpOwogCiBwcm90ZWN0ZWQ6CiAgICAgSFRN
TFBsdWdJbkltYWdlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCosIGJvb2wgY3JlYXRlZEJ5UGFyc2VyLCBQcmVmZXJQbHVnSW5zRm9ySW1hZ2VzT3B0aW9uKTsK
QEAgLTExNyw2ICsxMTksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9uZWVkc1dpZGdldFVwZGF0
ZTsKICAgICBib29sIG1fc2hvdWxkUHJlZmVyUGx1Z0luc0ZvckltYWdlczsKICAgICBib29sIG1f
bmVlZHNEb2N1bWVudEFjdGl2YXRpb25DYWxsYmFja3M7CisgICAgYm9vbCBtX2lzUHJpbWFyeVNu
YXBzaG90dGVkUGx1Z0luOwogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV9jdXN0b21TdHlsZUZv
clBhZ2VDYWNoZTsKICAgICBSZWZQdHI8TW91c2VFdmVudD4gbV9wZW5kaW5nQ2xpY2tFdmVudEZy
b21TbmFwc2hvdDsKICAgICBEZWZlcnJhYmxlT25lU2hvdFRpbWVyPEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQ+IG1fc2ltdWxhdGVkTW91c2VDbGlja1RpbWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDk3MmFjMzYu
LjliMzhkMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMy0wMy0wOSAgVGltIEhv
cnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBoZXVyaXN0
aWMgdG8gZGV0ZXJtaW5lIHRoZSDigJxwcmltYXJ54oCdIHNuYXBzaG90dGVkIHBsdWdpbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExOTMyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xMzI3MDIwOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKToKKyAgICAgICAgRm9yd2FyZCBkaWRDb21taXRMb2Fk
IHRvIFdlYlBhZ2UuIE1vdmUgZXhpc3RpbmcgY29kZSB0aGF0IG1hbmlwdWxhdGVkIFdlYlBhZ2UK
KyAgICAgICAgaXRzZWxmIGR1cmluZyBkaWRDb21taXRMb2FkIGludG8gV2ViUGFnZSwgd2hlcmUg
aXQgYmVsb25ncy4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoRGlkRmluaXNoTG9hZCk6IEZvcndhcmQgZGlkRmluaXNoTG9hZCB0byBXZWJQYWdlLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6V2ViUGFnZSk6IEluaXRpYWxpemUgbV9kaWRGaW5kUHJpbWFyeVNuYXBzaG90dGVk
UGx1Z2luIHRvIGZhbHNlLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRDb21taXRMb2Fk
KTogTW92ZSBjb2RlIGZyb20gV2ViUGFnZUZyYW1lTG9hZGVyQ2xpZW50LgorICAgICAgICBSZXNl
dCB0aGUgZmxhZyB0aGF0IHNheXMgd2UndmUgYWxyZWFkeSBmb3VuZCBhIHNuYXBzaG90dGVkIHBs
dWdpbi4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkRmluaXNoTG9hZCk6CisgICAgICAg
IENhbGwgZGV0ZXJtaW5lUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luIHdoZW4gYW55IGZyYW1lIGZp
bmlzaGVzIGxvYWRpbmcuIFdlIGNhbGwgdGhpcyBmb3Igc3ViZnJhbWVzLAorICAgICAgICBub3Qg
anVzdCB0aGUgbWFpbiBmcmFtZSwgaW4gY2FzZSB0aGUgbWFpbiBmcmFtZSBsb2FkcyB3aXRoIG5v
ICJwcmltYXJ5IiBwbHVnaW5zLCBidXQgYSBzdWJmcmFtZSBsYXRlciBsb2FkcyB3aXRoIG9uZS4K
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGV0ZXJtaW5lUHJpbWFyeVNuYXBzaG90dGVkUGx1
Z0luKToKKyAgICAgICAgQXR0ZW1wdCB0byBmaW5kIHRoZSBwcmltYXJ5IHNuYXBzaG90dGVkIHBs
dWdpbiBvbiB0aGUgcGFnZSwgYnkgaGl0LXRlc3RpbmcgYSBncmlkIG9mIHBvaW50cyBzcGFjZWQg
MjAwcHggYXBhcnQuCisgICAgICAgIEEgcGx1Z2luIGlzIGNvbnNpZGVyZWQgaWYgaXQgaXMgc25h
cHNob3R0ZWQgYW5kID4gNDUweDMwMC4gV2Ugc2NhbiB2ZXJ0aWNhbGx5IGFuZCBsZWZ0LXRvLXJp
Z2h0LCBvbmx5IGRpc2NhcmRpbmcKKyAgICAgICAgYSBwcmV2aW91cyBjYW5kaWRhdGUgaWYgYW5v
dGhlciBjYW5kaWRhdGUgaXMgYXQgbGVhc3QgMTEwJSB0aGUgc2l6ZSBvZiB0aGUgcHJldmlvdXMg
Y2FuZGlkYXRlLgorICAgICAgICBUaGlzIHRlbmRzIHRvIHNlbGVjdCBwbHVnaW5zIG5lYXIgdGhl
IHRvcCBsZWZ0IG9mIHRoZSBwYWdlLCB1bmxlc3MgdGhlcmUgaXMgYSBzaWduaWZpY2FudGx5IGxh
cmdlciBwbHVnaW4gZWxzZXdoZXJlLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXNldFBy
aW1hcnlTbmFwc2hvdHRlZFBsdWdJbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaDoKKyAgICAgICAgKFdlYlBhZ2UpOgorCiAyMDEzLTAzLTA5ICBNYW51ZWwgUmVnbyBD
YXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dLMl0gRml4IGNv
bXBpbGF0aW9uIHdhcm5pbmcgbWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMgaW4gd2Via2l0LTIu
MCBzdGFibGUgYnJhbmNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGE4
M2RlMWQuLjM4ZjMxZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC00
NDQsMTIgKzQ0NCw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ29t
bWl0TG9hZCgpCiAKICAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRp
ZENvbW1pdExvYWRGb3JGcmFtZShtX2ZyYW1lLT5mcmFtZUlEKCksIHJlc3BvbnNlLm1pbWVUeXBl
KCksIG1fZnJhbWVIYXNDdXN0b21SZXByZXNlbnRhdGlvbiwgbV9mcmFtZS0+Y29yZUZyYW1lKCkt
PmxvYWRlcigpLT5sb2FkVHlwZSgpLCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyhyZXNwb25zZSks
IEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRhLmdldCgpKSkpOwogCi0g
ICAgLy8gT25seSByZXN0b3JlIHRoZSBzY2FsZSBmYWN0b3IgZm9yIHN0YW5kYXJkIGZyYW1lIGxv
YWRzIChvZiB0aGUgbWFpbiBmcmFtZSkuCi0gICAgaWYgKG1fZnJhbWUtPmlzTWFpbkZyYW1lKCkg
JiYgbV9mcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLT5sb2FkVHlwZSgpID09IEZyYW1lTG9h
ZFR5cGVTdGFuZGFyZCkgewotICAgICAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+Y29yZUZyYW1l
KCktPnBhZ2UoKTsKLSAgICAgICAgaWYgKHBhZ2UgJiYgcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkg
IT0gMSkKLSAgICAgICAgICAgIHdlYlBhZ2UtPnNjYWxlUGFnZSgxLCBJbnRQb2ludCgpKTsKLSAg
ICB9CisgICAgd2ViUGFnZS0+ZGlkQ29tbWl0TG9hZChtX2ZyYW1lKTsKIH0KIAogdm9pZCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0IFJl
c291cmNlRXJyb3ImIGVycm9yKQpAQCAtNTI0LDYgKzUxOSw4IEBAIHZvaWQgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmluaXNoTG9hZCgpCiAgICAgLy8gSWYgd2UgaGF2ZSBhIGxv
YWQgbGlzdGVuZXIsIG5vdGlmeSBpdC4KICAgICBpZiAoV2ViRnJhbWU6OkxvYWRMaXN0ZW5lciog
bG9hZExpc3RlbmVyID0gbV9mcmFtZS0+bG9hZExpc3RlbmVyKCkpCiAgICAgICAgIGxvYWRMaXN0
ZW5lci0+ZGlkRmluaXNoTG9hZChtX2ZyYW1lKTsKKworICAgIHdlYlBhZ2UtPmRpZEZpbmlzaExv
YWQobV9mcmFtZSk7CiB9CiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlk
TGF5b3V0KExheW91dE1pbGVzdG9uZXMgbWlsZXN0b25lcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA0M2QyZjRmLi5hZWU0OGM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xMDEs
NiArMTAxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxGb3JtRWxlbWVudC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvSFRNTElucHV0RWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTFBs
dWdJbkVsZW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0hpc3RvcnlJdGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9L
ZXlib2FyZEV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CkBA
IC0yMzUsNiArMjM2LDkgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgLCBtX2FydGlmaWNp
YWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZChmYWxzZSkKICAgICAsIG1fc2Nyb2xs
aW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1fbWFpbkZyYW1lSXNT
Y3JvbGxhYmxlKHRydWUpCisjaWYgRU5BQkxFKFBSSU1BUllfU05BUFNIT1RURURfUExVR0lOX0hF
VVJJU1RJQykKKyAgICAsIG1fZGlkRmluZFByaW1hcnlTbmFwc2hvdHRlZFBsdWdpbihmYWxzZSkK
KyNlbmRpZgogI2lmIFBMQVRGT1JNKE1BQykKICAgICAsIG1fcGRmUGx1Z2luRW5hYmxlZChmYWxz
ZSkKICAgICAsIG1faGFzQ2FjaGVkV2luZG93RnJhbWUoZmFsc2UpCkBAIC0zODY0LDQgKzM4Njgs
MTA5IEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ2FuY2VsQ2hlY2tpbmdUZXh0KHVpbnQ2NF90IHJlcXVl
c3RJRCkKICAgICBtX3BlbmRpbmdUZXh0Q2hlY2tpbmdSZXF1ZXN0TWFwLnJlbW92ZShyZXF1ZXN0
SUQpOwogfQogCit2b2lkIFdlYlBhZ2U6OmRpZENvbW1pdExvYWQoV2ViRnJhbWUqIGZyYW1lKQor
eworICAgIC8vIE9ubHkgcmVzdG9yZSB0aGUgc2NhbGUgZmFjdG9yIGZvciBzdGFuZGFyZCBmcmFt
ZSBsb2FkcyAob2YgdGhlIG1haW4gZnJhbWUpLgorICAgIGlmIChmcmFtZS0+aXNNYWluRnJhbWUo
KSAmJiBmcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLT5sb2FkVHlwZSgpID09IEZyYW1lTG9h
ZFR5cGVTdGFuZGFyZCkgeworICAgICAgICBQYWdlKiBwYWdlID0gZnJhbWUtPmNvcmVGcmFtZSgp
LT5wYWdlKCk7CisgICAgICAgIGlmIChwYWdlICYmIHBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpICE9
IDEpCisgICAgICAgICAgICBzY2FsZVBhZ2UoMSwgSW50UG9pbnQoKSk7CisgICAgfQorCisjaWYg
RU5BQkxFKFBSSU1BUllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQykKKyAgICBpZiAoZnJh
bWUtPmlzTWFpbkZyYW1lKCkpCisgICAgICAgIHJlc2V0UHJpbWFyeVNuYXBzaG90dGVkUGx1Z0lu
KCk7CisjZW5kaWYKK30KKwordm9pZCBXZWJQYWdlOjpkaWRGaW5pc2hMb2FkKFdlYkZyYW1lKiBm
cmFtZSkKK3sKKyNpZiBFTkFCTEUoUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElD
KQorICAgIGRldGVybWluZVByaW1hcnlTbmFwc2hvdHRlZFBsdWdJbigpOworI2VuZGlmCit9CisK
KyNpZiBFTkFCTEUoUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElDKQorc3RhdGlj
IGludCBwcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5TZWFyY2hMaW1pdCA9IDMwMDA7CitzdGF0aWMg
aW50IHByaW1hcnlTbmFwc2hvdHRlZFBsdWdJblNlYXJjaEdhcCA9IDIwMDsKK3N0YXRpYyBmbG9h
dCBwcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5TZWFyY2hCdWNrZXRTaXplID0gMS4xOworc3RhdGlj
IGludCBwcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5NaW5pbXVtV2lkdGggPSA0NTA7CitzdGF0aWMg
aW50IHByaW1hcnlTbmFwc2hvdHRlZFBsdWdJbk1pbmltdW1IZWlnaHQgPSAzMDA7CisKK3ZvaWQg
V2ViUGFnZTo6ZGV0ZXJtaW5lUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luKCkKK3sKKyAgICBpZiAo
IWNvcmVQYWdlKCktPmhhc1NlZW5BbnlQbHVnaW4oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKG1fZGlkRmluZFByaW1hcnlTbmFwc2hvdHRlZFBsdWdpbikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IGNvcmVQYWdlKCktPm1haW5GcmFtZSgpLT52
aWV3KCktPnJlbmRlclZpZXcoKTsKKworICAgIEludFJlY3Qgc2VhcmNoUmVjdCA9IEludFJlY3Qo
SW50UG9pbnQoKSwgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKS0+Y29udGVudHNTaXpl
KCkpOworICAgIHNlYXJjaFJlY3QuaW50ZXJzZWN0KEludFJlY3QoSW50UG9pbnQoKSwgSW50U2l6
ZShwcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5TZWFyY2hMaW1pdCwgcHJpbWFyeVNuYXBzaG90dGVk
UGx1Z0luU2VhcmNoTGltaXQpKSk7CisKKyAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRl
c3RSZXF1ZXN0OjpSZWFkT25seSB8IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUgfCBIaXRUZXN0UmVx
dWVzdDo6QWxsb3dDaGlsZEZyYW1lQ29udGVudCB8IEhpdFRlc3RSZXF1ZXN0OjpJZ25vcmVDbGlw
cGluZyk7CisKKyAgICBIYXNoU2V0PFJlbmRlck9iamVjdCo+IHNlZW5SZW5kZXJlcnM7CisgICAg
SFRNTFBsdWdJbkltYWdlRWxlbWVudCogY2FuZGlkYXRlUGx1Z0luID0gMDsKKyAgICB1bnNpZ25l
ZCBjYW5kaWRhdGVQbHVnSW5BcmVhID0gMDsKKworICAgIGZvciAoaW50IHggPSBzZWFyY2hSZWN0
LngoKTsgeCA8PSBzZWFyY2hSZWN0LndpZHRoKCk7IHggKz0gcHJpbWFyeVNuYXBzaG90dGVkUGx1
Z0luU2VhcmNoR2FwKSB7CisgICAgICAgIGZvciAoaW50IHkgPSBzZWFyY2hSZWN0LnkoKTsgeSA8
PSBzZWFyY2hSZWN0LmhlaWdodCgpOyB5ICs9IHByaW1hcnlTbmFwc2hvdHRlZFBsdWdJblNlYXJj
aEdhcCkgeworICAgICAgICAgICAgSGl0VGVzdFJlc3VsdCBoaXRUZXN0UmVzdWx0ID0gSGl0VGVz
dFJlc3VsdChMYXlvdXRQb2ludCh4LCB5KSk7CisgICAgICAgICAgICByZW5kZXJWaWV3LT5oaXRU
ZXN0KHJlcXVlc3QsIGhpdFRlc3RSZXN1bHQpOworCisgICAgICAgICAgICBFbGVtZW50KiBlbGVt
ZW50ID0gaGl0VGVzdFJlc3VsdC5pbm5lckVsZW1lbnQoKTsKKyAgICAgICAgICAgIGlmICghZWxl
bWVudCkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciA9IGVsZW1lbnQtPnJlbmRlcmVyKCk7CisgICAgICAgICAgICBpZiAoIXJl
bmRlcmVyIHx8ICFyZW5kZXJlci0+aXNCb3goKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsK
KworICAgICAgICAgICAgUmVuZGVyQm94KiByZW5kZXJCb3ggPSB0b1JlbmRlckJveChyZW5kZXJl
cik7CisKKyAgICAgICAgICAgIGlmIChzZWVuUmVuZGVyZXJzLmNvbnRhaW5zKHJlbmRlcmVyKSkK
KyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIHNlZW5SZW5kZXJlcnMuYWRk
KHJlbmRlcmVyKTsKKworICAgICAgICAgICAgaWYgKCFlbGVtZW50LT5pc1BsdWdpbkVsZW1lbnQo
KSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgSFRNTFBsdWdJbkVs
ZW1lbnQqIHBsdWdJbkVsZW1lbnQgPSB0b0hUTUxQbHVnSW5FbGVtZW50KGVsZW1lbnQpOworICAg
ICAgICAgICAgaWYgKCFwbHVnSW5FbGVtZW50LT5pc1BsdWdJbkltYWdlRWxlbWVudCgpKQorICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50KiBwbHVnSW5JbWFnZUVsZW1lbnQgPSB0b0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQocGx1Z0lu
RWxlbWVudCk7CisKKyAgICAgICAgICAgIGlmIChwbHVnSW5FbGVtZW50LT5kaXNwbGF5U3RhdGUo
KSA9PSBIVE1MUGx1Z0luRWxlbWVudDo6UGxheWluZykKKyAgICAgICAgICAgICAgICBjb250aW51
ZTsKKworICAgICAgICAgICAgTGF5b3V0VW5pdCBjb250ZW50QXJlYSA9IHJlbmRlckJveC0+Y29u
dGVudFdpZHRoKCkgKiByZW5kZXJCb3gtPmNvbnRlbnRIZWlnaHQoKTsKKworICAgICAgICAgICAg
aWYgKHJlbmRlckJveC0+Y29udGVudFdpZHRoKCkgPCBwcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5N
aW5pbXVtV2lkdGggfHwgcmVuZGVyQm94LT5jb250ZW50SGVpZ2h0KCkgPCBwcmltYXJ5U25hcHNo
b3R0ZWRQbHVnSW5NaW5pbXVtSGVpZ2h0KQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisg
ICAgICAgICAgICBpZiAoY29udGVudEFyZWEgPiBjYW5kaWRhdGVQbHVnSW5BcmVhICogcHJpbWFy
eVNuYXBzaG90dGVkUGx1Z0luU2VhcmNoQnVja2V0U2l6ZSkgeworICAgICAgICAgICAgICAgIGNh
bmRpZGF0ZVBsdWdJbiA9IHBsdWdJbkltYWdlRWxlbWVudDsKKyAgICAgICAgICAgICAgICBjYW5k
aWRhdGVQbHVnSW5BcmVhID0gY29udGVudEFyZWE7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBpZiAoIWNhbmRpZGF0ZVBsdWdJbikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9kaWRGaW5kUHJpbWFyeVNuYXBzaG90dGVkUGx1Z2luID0gdHJ1ZTsKKworICAgIGNhbmRp
ZGF0ZVBsdWdJbi0+c2V0SXNQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW4odHJ1ZSk7Cit9CisKK3Zv
aWQgV2ViUGFnZTo6cmVzZXRQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW4oKQoreworICAgIG1fZGlk
RmluZFByaW1hcnlTbmFwc2hvdHRlZFBsdWdpbiA9IGZhbHNlOworfQorI2VuZGlmIC8vIEVOQUJM
RShQUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNUSUMpCisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5k
ZXggMjkzMjRiZS4uYzcxMDE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCkBAIC05OCw2ICs5OCw4IEBACiBPQkpDX0NMQVNTIE5TRGljdGlvbmFyeTsK
IE9CSkNfQ0xBU1MgTlNPYmplY3Q7CiBPQkpDX0NMQVNTIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VP
YmplY3Q7CisKKyNkZWZpbmUgV1RGX0VOQUJMRV9QUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9I
RVVSSVNUSUMgMQogI2VuZGlmCiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKQEAgLTIxNyw2ICsyMTks
OCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpZFN0YXJ0UGFnZVRyYW5zaXRpb24oKTsKICAgICB2
b2lkIGRpZENvbXBsZXRlUGFnZVRyYW5zaXRpb24oKTsKKyAgICB2b2lkIGRpZENvbW1pdExvYWQo
V2ViRnJhbWUqKTsKKyAgICB2b2lkIGRpZEZpbmlzaExvYWQoV2ViRnJhbWUqKTsKICAgICB2b2lk
IHNob3coKTsKICAgICBTdHJpbmcgdXNlckFnZW50KCkgY29uc3QgeyByZXR1cm4gbV91c2VyQWdl
bnQ7IH0KICAgICBXZWJDb3JlOjpJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3Q7CkBA
IC02MzAsNiArNjM0LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZEZpbmlzaENoZWNraW5nVGV4
dCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdS
ZXN1bHQ+Jik7CiAgICAgdm9pZCBkaWRDYW5jZWxDaGVja2luZ1RleHQodWludDY0X3QgcmVxdWVz
dElEKTsKIAorI2lmIEVOQUJMRShQUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNUSUMp
CisgICAgdm9pZCBkZXRlcm1pbmVQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW4oKTsKKyAgICB2b2lk
IHJlc2V0UHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAg
ICBXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cyYpOwogCkBAIC04NDMsNiArODUyLDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Njcm9sbGlu
Z1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQ7CiAKICAgICBib29sIG1fbWFpbkZyYW1lSXNTY3Jv
bGxhYmxlOworCisjaWYgRU5BQkxFKFBSSU1BUllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJ
QykKKyAgICBib29sIG1fZGlkRmluZFByaW1hcnlTbmFwc2hvdHRlZFBsdWdpbjsKKyNlbmRpZgog
CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGJvb2wgbV9wZGZQbHVnaW5FbmFibGVkOwo=
</data>
<flag name="review"
          id="213584"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>