<?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>135326</bug_id>
          
          <creation_ts>2014-07-26 20:59:54 -0700</creation_ts>
          <short_desc>Cleanup RenderSelectionInfoBase/RenderSelectionInfo/RenderBlockSelectionInfo.</short_desc>
          <delta_ts>2014-07-29 07:51:57 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bunhere</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1025046</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2014-07-26 20:59:54 -0700</bug_when>
    <thetext>instead of pointer to the renderer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025049</commentid>
    <comment_count>1</comment_count>
      <attachid>235581</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-07-26 22:28:41 -0700</bug_when>
    <thetext>Created attachment 235581
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025104</commentid>
    <comment_count>2</comment_count>
      <attachid>235581</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-07-27 23:10:55 -0700</bug_when>
    <thetext>Comment on attachment 235581
Patch

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

Good refactoring.

&gt; Source/WebCore/ChangeLog:3
&gt; +        RenderSelectionInfoBase/RenderSelectionInfo/RenderBlockSelectionInfo should take renderer reference.

Bug title is a little more specific than the slightly broader refactoring this patch does.

&gt; Source/WebCore/rendering/RenderSelectionInfo.h:37
&gt; +    explicit RenderSelectionInfoBase(RenderObject&amp; renderer)

Too bad we can’t make the type tighter than RenderObject, but I don’t think we can.

&gt; Source/WebCore/rendering/RenderSelectionInfo.h:51
&gt; +    void repaintRectangle(const LayoutRect&amp; repaintRect)
&gt; +    {
&gt; +        m_renderer.repaintUsingContainer(m_repaintContainer, enclosingIntRect(repaintRect));
&gt; +    }

I’m not sure this should be in the class definition. I think classes are easier to read if we move multiple-line function definitions out of the class definitions. I’ve been doing that when working on various header files.

&gt; Source/WebCore/rendering/RenderSelectionInfo.h:84
&gt; -    Vector&lt;LayoutRect&gt; m_rects;
&gt; +    Vector&lt;LayoutRect&gt; m_rects; // relative to repaint container
&gt;      LayoutRect m_rect; // relative to repaint container

Really unclear how these data members relate. Same is true of the two public functions that expose them; not clear why we have both.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025374</commentid>
    <comment_count>3</comment_count>
      <attachid>235661</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-07-28 21:00:32 -0700</bug_when>
    <thetext>Created attachment 235661
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025375</commentid>
    <comment_count>4</comment_count>
      <attachid>235661</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-07-28 21:00:51 -0700</bug_when>
    <thetext>Comment on attachment 235661
Patch

EWS testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025462</commentid>
    <comment_count>5</comment_count>
      <attachid>235686</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-07-29 07:02:17 -0700</bug_when>
    <thetext>Created attachment 235686
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025463</commentid>
    <comment_count>6</comment_count>
      <attachid>235686</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-07-29 07:02:39 -0700</bug_when>
    <thetext>Comment on attachment 235686
Patch

EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025474</commentid>
    <comment_count>7</comment_count>
      <attachid>235686</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-29 07:51:51 -0700</bug_when>
    <thetext>Comment on attachment 235686
Patch

Clearing flags on attachment: 235686

Committed r171744: &lt;http://trac.webkit.org/changeset/171744&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025475</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-29 07:51:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235581</attachid>
            <date>2014-07-26 22:28:41 -0700</date>
            <delta_ts>2014-07-28 21:00:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135326-20140726222827.patch</filename>
            <type>text/plain</type>
            <size>10075</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcxNjUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2E5ODgxNDI0MTU1Y2Yz
NWYzNzRjMzNlZTY1OTdkNTY5YTc2ZjljMy4uOWM0NjZmNzQ2OTEyZjE3ODA5ZWJjMzEyZmFhYTc1
NzAxMjIwZDZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE0LTA3LTI2ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuZGVyU2VsZWN0aW9uSW5m
b0Jhc2UvUmVuZGVyU2VsZWN0aW9uSW5mby9SZW5kZXJCbG9ja1NlbGVjdGlvbkluZm8gc2hvdWxk
IHRha2UgcmVuZGVyZXIgcmVmZXJlbmNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTM1MzI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclNlbGVjdGlvbkluZm8uaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNl
bGVjdGlvbkluZm9CYXNlOjpSZW5kZXJTZWxlY3Rpb25JbmZvQmFzZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTZWxlY3Rpb25JbmZvQmFzZTo6cmVwYWludFJlY3RhbmdsZSk6IEludHJvZHVj
ZSBhIHJlcGFpbnQgZnVuY3Rpb24gaW4gdGhlIGJhc2UgY2xhc3MuIAorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyU2VsZWN0aW9uSW5mbzo6UmVuZGVyU2VsZWN0aW9uSW5mbyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTZWxlY3Rpb25JbmZvOjpyZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJsb2NrU2VsZWN0aW9uSW5mbzo6UmVuZGVyQmxvY2tTZWxlY3Rpb25JbmZvKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrU2VsZWN0aW9uSW5mbzo6cmVwYWludCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTZWxlY3Rpb25JbmZvQmFzZTo6b2JqZWN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrU2VsZWN0aW9uSW5mbzo6YmxvY2spOiBEZWxl
dGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclZpZXc6OnN1YnRyZWVTZWxlY3Rpb25Cb3VuZHMpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVmlldzo6cmVwYWludFN1YnRyZWVTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVmlldzo6c2V0U3VidHJlZVNlbGVjdGlvbik6CisKIDIwMTQtMDctMjYgIEJyaWFu
IEouIEJ1cmcgIDxidXJnQGNzLndhc2hpbmd0b24uZWR1PgogCiAgICAgICAgIFdlYiBSZXBsYXk6
IGxvZyBhbmQgZW5mb3JjZSBzZXNzaW9uL3NlZ21lbnQgc3RhdGUgbWFjaGluZSB0cmFuc2l0aW9u
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlbGVjdGlvbklu
Zm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWxlY3Rpb25JbmZvLmgKaW5k
ZXggNDZlODg2ZjA2OGQ5MjRhN2NkZmU2NjBjM2EyZjIxMGI1YzhlY2ZjZS4uM2Q5M2U1ZTY5ODli
OWE4NTY2MTRmNmI0YzUzM2JhYjYzMTc0MzRhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNlbGVjdGlvbkluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU2VsZWN0aW9uSW5mby5oCkBAIC0zNCw1NSArMzQsNTMgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgUmVuZGVyU2VsZWN0aW9uSW5mb0Jhc2UgewogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKFJlbmRlclNlbGVjdGlvbkluZm9CYXNlKTsgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6Ci0gICAgUmVuZGVyU2VsZWN0aW9uSW5mb0Jhc2UoKQotICAgICAgICA6
IG1fb2JqZWN0KDApCi0gICAgICAgICwgbV9yZXBhaW50Q29udGFpbmVyKDApCi0gICAgICAgICwg
bV9zdGF0ZShSZW5kZXJPYmplY3Q6OlNlbGVjdGlvbk5vbmUpCi0gICAgewotICAgIH0KLQotICAg
IGV4cGxpY2l0IFJlbmRlclNlbGVjdGlvbkluZm9CYXNlKFJlbmRlck9iamVjdCogbykKLSAgICAg
ICAgOiBtX29iamVjdChvKQotICAgICAgICAsIG1fcmVwYWludENvbnRhaW5lcihvLT5jb250YWlu
ZXJGb3JSZXBhaW50KCkpCi0gICAgICAgICwgbV9zdGF0ZShvLT5zZWxlY3Rpb25TdGF0ZSgpKQor
ICAgIGV4cGxpY2l0IFJlbmRlclNlbGVjdGlvbkluZm9CYXNlKFJlbmRlck9iamVjdCYgcmVuZGVy
ZXIpCisgICAgICAgIDogbV9yZW5kZXJlcihyZW5kZXJlcikKKyAgICAgICAgLCBtX3JlcGFpbnRD
b250YWluZXIocmVuZGVyZXIuY29udGFpbmVyRm9yUmVwYWludCgpKQorICAgICAgICAsIG1fc3Rh
dGUocmVuZGVyZXIuc2VsZWN0aW9uU3RhdGUoKSkKICAgICB7CiAgICAgfQogICAgIAotICAgIFJl
bmRlck9iamVjdCogb2JqZWN0KCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3Q7IH0KICAgICBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKCkgY29uc3QgeyByZXR1cm4gbV9y
ZXBhaW50Q29udGFpbmVyOyB9CiAgICAgUmVuZGVyT2JqZWN0OjpTZWxlY3Rpb25TdGF0ZSBzdGF0
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KIAogcHJvdGVjdGVkOgotICAgIFJlbmRlck9i
amVjdCogbV9vYmplY3Q7CisgICAgdm9pZCByZXBhaW50UmVjdGFuZ2xlKGNvbnN0IExheW91dFJl
Y3QmIHJlcGFpbnRSZWN0KQorICAgIHsKKyAgICAgICAgbV9yZW5kZXJlci5yZXBhaW50VXNpbmdD
b250YWluZXIobV9yZXBhaW50Q29udGFpbmVyLCBlbmNsb3NpbmdJbnRSZWN0KHJlcGFpbnRSZWN0
KSk7CisgICAgfQorCisgICAgUmVuZGVyT2JqZWN0JiBtX3JlbmRlcmVyOwogICAgIFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIG1fcmVwYWludENvbnRhaW5lcjsKKworcHJpdmF0ZToKICAgICBSZW5k
ZXJPYmplY3Q6OlNlbGVjdGlvblN0YXRlIG1fc3RhdGU7CiB9OwogCiAvLyBUaGlzIHN0cnVjdCBp
cyB1c2VkIHdoZW4gdGhlIHNlbGVjdGlvbiBjaGFuZ2VzIHRvIGNhY2hlIHRoZSBvbGQgYW5kIG5l
dyBzdGF0ZSBvZiB0aGUgc2VsZWN0aW9uIGZvciBlYWNoIFJlbmRlck9iamVjdC4KIGNsYXNzIFJl
bmRlclNlbGVjdGlvbkluZm8gOiBwdWJsaWMgUmVuZGVyU2VsZWN0aW9uSW5mb0Jhc2UgewogcHVi
bGljOgotICAgIFJlbmRlclNlbGVjdGlvbkluZm8oUmVuZGVyT2JqZWN0KiBvLCBib29sIGNsaXBU
b1Zpc2libGVDb250ZW50KQotICAgICAgICA6IFJlbmRlclNlbGVjdGlvbkluZm9CYXNlKG8pCisg
ICAgUmVuZGVyU2VsZWN0aW9uSW5mbyhSZW5kZXJPYmplY3QmIHJlbmRlcmVyLCBib29sIGNsaXBU
b1Zpc2libGVDb250ZW50KQorICAgICAgICA6IFJlbmRlclNlbGVjdGlvbkluZm9CYXNlKHJlbmRl
cmVyKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG8pOwotICAgICAgICBpZiAoby0+Y2FuVXBkYXRl
U2VsZWN0aW9uT25Sb290TGluZUJveGVzKCkpIHsKLSAgICAgICAgICAgIGlmIChvLT5pc1RleHQo
KSkKLSAgICAgICAgICAgICAgICBtX3JlY3QgPSB0b1JlbmRlclRleHQoKm8pLmNvbGxlY3RTZWxl
Y3Rpb25SZWN0c0ZvckxpbmVCb3hlcyhtX3JlcGFpbnRDb250YWluZXIsIGNsaXBUb1Zpc2libGVD
b250ZW50LCBtX3JlY3RzKTsKKyAgICAgICAgaWYgKHJlbmRlcmVyLmNhblVwZGF0ZVNlbGVjdGlv
bk9uUm9vdExpbmVCb3hlcygpKSB7CisgICAgICAgICAgICBpZiAocmVuZGVyZXIuaXNUZXh0KCkp
CisgICAgICAgICAgICAgICAgbV9yZWN0ID0gdG9SZW5kZXJUZXh0KHJlbmRlcmVyKS5jb2xsZWN0
U2VsZWN0aW9uUmVjdHNGb3JMaW5lQm94ZXMobV9yZXBhaW50Q29udGFpbmVyLCBjbGlwVG9WaXNp
YmxlQ29udGVudCwgbV9yZWN0cyk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
bV9yZWN0ID0gby0+c2VsZWN0aW9uUmVjdEZvclJlcGFpbnQobV9yZXBhaW50Q29udGFpbmVyLCBj
bGlwVG9WaXNpYmxlQ29udGVudCk7CisgICAgICAgICAgICAgICAgbV9yZWN0ID0gcmVuZGVyZXIu
c2VsZWN0aW9uUmVjdEZvclJlcGFpbnQobV9yZXBhaW50Q29udGFpbmVyLCBjbGlwVG9WaXNpYmxl
Q29udGVudCk7CiAgICAgICAgIH0KICAgICB9CiAgICAgCiAgICAgdm9pZCByZXBhaW50KCkKICAg
ICB7Ci0gICAgICAgIG1fb2JqZWN0LT5yZXBhaW50VXNpbmdDb250YWluZXIobV9yZXBhaW50Q29u
dGFpbmVyLCBlbmNsb3NpbmdJbnRSZWN0KG1fcmVjdCkpOworICAgICAgICByZXBhaW50UmVjdGFu
Z2xlKG1fcmVjdCk7CiAgICAgfQogCiAgICAgY29uc3QgVmVjdG9yPExheW91dFJlY3Q+JiByZWN0
cygpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdHM7IH0KICAgICBMYXlvdXRSZWN0IHJlY3QoKSBjb25z
dCB7IHJldHVybiBtX3JlY3Q7IH0KIAogcHJpdmF0ZToKLSAgICBWZWN0b3I8TGF5b3V0UmVjdD4g
bV9yZWN0czsKKyAgICBWZWN0b3I8TGF5b3V0UmVjdD4gbV9yZWN0czsgLy8gcmVsYXRpdmUgdG8g
cmVwYWludCBjb250YWluZXIKICAgICBMYXlvdXRSZWN0IG1fcmVjdDsgLy8gcmVsYXRpdmUgdG8g
cmVwYWludCBjb250YWluZXIKIH07CiAKQEAgLTkwLDE4ICs4OCwxNyBAQCBwcml2YXRlOgogLy8g
VGhpcyBzdHJ1Y3QgaXMgdXNlZCB3aGVuIHRoZSBzZWxlY3Rpb24gY2hhbmdlcyB0byBjYWNoZSB0
aGUgb2xkIGFuZCBuZXcgc3RhdGUgb2YgdGhlIHNlbGVjdGlvbiBmb3IgZWFjaCBSZW5kZXJCbG9j
ay4KIGNsYXNzIFJlbmRlckJsb2NrU2VsZWN0aW9uSW5mbyA6IHB1YmxpYyBSZW5kZXJTZWxlY3Rp
b25JbmZvQmFzZSB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgUmVuZGVyQmxvY2tTZWxlY3Rpb25J
bmZvKFJlbmRlckJsb2NrKiBiKQotICAgICAgICA6IFJlbmRlclNlbGVjdGlvbkluZm9CYXNlKGIp
Ci0gICAgICAgICwgbV9yZWN0cyhiLT5jYW5VcGRhdGVTZWxlY3Rpb25PblJvb3RMaW5lQm94ZXMo
KSA/IGJsb2NrKCktPnNlbGVjdGlvbkdhcFJlY3RzRm9yUmVwYWludChtX3JlcGFpbnRDb250YWlu
ZXIpIDogR2FwUmVjdHMoKSkKKyAgICBleHBsaWNpdCBSZW5kZXJCbG9ja1NlbGVjdGlvbkluZm8o
UmVuZGVyQmxvY2smIHJlbmRlcmVyKQorICAgICAgICA6IFJlbmRlclNlbGVjdGlvbkluZm9CYXNl
KHJlbmRlcmVyKQorICAgICAgICAsIG1fcmVjdHMocmVuZGVyZXIuY2FuVXBkYXRlU2VsZWN0aW9u
T25Sb290TGluZUJveGVzKCkgPyByZW5kZXJlci5zZWxlY3Rpb25HYXBSZWN0c0ZvclJlcGFpbnQo
bV9yZXBhaW50Q29udGFpbmVyKSA6IEdhcFJlY3RzKCkpCiAgICAgeyAKICAgICB9CiAKICAgICB2
b2lkIHJlcGFpbnQoKQogICAgIHsKLSAgICAgICAgbV9vYmplY3QtPnJlcGFpbnRVc2luZ0NvbnRh
aW5lcihtX3JlcGFpbnRDb250YWluZXIsIGVuY2xvc2luZ0ludFJlY3QobV9yZWN0cykpOworICAg
ICAgICByZXBhaW50UmVjdGFuZ2xlKG1fcmVjdHMpOwogICAgIH0KICAgICAKLSAgICBSZW5kZXJC
bG9jayogYmxvY2soKSBjb25zdCB7IHJldHVybiB0b1JlbmRlckJsb2NrKG1fb2JqZWN0KTsgfQog
ICAgIEdhcFJlY3RzIHJlY3RzKCkgY29uc3QgeyByZXR1cm4gbV9yZWN0czsgfQogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDdiOTk4YjY3YWFi
MDdhNzhiZmRkZDdmN2I4YzY5Nzk2ZTFjMmE0MDIuLjBjNTY3OTViZjk2MzhlODJkMTUxYWQzZGVm
Mjc2ODQ0MzM1ZjRkMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAK
QEAgLTc1MywxMyArNzUzLDEzIEBAIExheW91dFJlY3QgUmVuZGVyVmlldzo6c3VidHJlZVNlbGVj
dGlvbkJvdW5kcyhjb25zdCBTZWxlY3Rpb25TdWJ0cmVlUm9vdCYgcm9vdCwKICAgICB3aGlsZSAo
b3MgJiYgb3MgIT0gc3RvcCkgewogICAgICAgICBpZiAoKG9zLT5jYW5CZVNlbGVjdGlvbkxlYWYo
KSB8fCBvcyA9PSByb290LnNlbGVjdGlvblN0YXJ0KCkgfHwgb3MgPT0gcm9vdC5zZWxlY3Rpb25F
bmQoKSkgJiYgb3MtPnNlbGVjdGlvblN0YXRlKCkgIT0gU2VsZWN0aW9uTm9uZSkgewogICAgICAg
ICAgICAgLy8gQmxvY2tzIGFyZSByZXNwb25zaWJsZSBmb3IgcGFpbnRpbmcgbGluZSBnYXBzIGFu
ZCBtYXJnaW4gZ2Fwcy4gVGhleSBtdXN0IGJlIGV4YW1pbmVkIGFzIHdlbGwuCi0gICAgICAgICAg
ICBzZWxlY3RlZE9iamVjdHMuc2V0KG9zLCBzdGQ6Om1ha2VfdW5pcXVlPFJlbmRlclNlbGVjdGlv
bkluZm8+KG9zLCBjbGlwVG9WaXNpYmxlQ29udGVudCkpOworICAgICAgICAgICAgc2VsZWN0ZWRP
YmplY3RzLnNldChvcywgc3RkOjptYWtlX3VuaXF1ZTxSZW5kZXJTZWxlY3Rpb25JbmZvPigqb3Ms
IGNsaXBUb1Zpc2libGVDb250ZW50KSk7CiAgICAgICAgICAgICBSZW5kZXJCbG9jayogY2IgPSBv
cy0+Y29udGFpbmluZ0Jsb2NrKCk7CiAgICAgICAgICAgICB3aGlsZSAoY2IgJiYgIWNiLT5pc1Jl
bmRlclZpZXcoKSkgewogICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTZWxl
Y3Rpb25JbmZvPiYgYmxvY2tJbmZvID0gc2VsZWN0ZWRPYmplY3RzLmFkZChjYiwgbnVsbHB0ciku
aXRlcmF0b3ItPnZhbHVlOwogICAgICAgICAgICAgICAgIGlmIChibG9ja0luZm8pCiAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGJsb2NrSW5mbyA9IHN0ZDo6bWFr
ZV91bmlxdWU8UmVuZGVyU2VsZWN0aW9uSW5mbz4oY2IsIGNsaXBUb1Zpc2libGVDb250ZW50KTsK
KyAgICAgICAgICAgICAgICBibG9ja0luZm8gPSBzdGQ6Om1ha2VfdW5pcXVlPFJlbmRlclNlbGVj
dGlvbkluZm8+KCpjYiwgY2xpcFRvVmlzaWJsZUNvbnRlbnQpOwogICAgICAgICAgICAgICAgIGNi
ID0gY2ItPmNvbnRhaW5pbmdCbG9jaygpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC04
MDUsMTMgKzgwNSwxMyBAQCB2b2lkIFJlbmRlclZpZXc6OnJlcGFpbnRTdWJ0cmVlU2VsZWN0aW9u
KGNvbnN0IFNlbGVjdGlvblN1YnRyZWVSb290JiByb290KSBjb25zdAogICAgICAgICBpZiAoby0+
c2VsZWN0aW9uU3RhdGUoKSA9PSBTZWxlY3Rpb25Ob25lKQogICAgICAgICAgICAgY29udGludWU7
CiAKLSAgICAgICAgUmVuZGVyU2VsZWN0aW9uSW5mbyhvLCB0cnVlKS5yZXBhaW50KCk7CisgICAg
ICAgIFJlbmRlclNlbGVjdGlvbkluZm8oKm8sIHRydWUpLnJlcGFpbnQoKTsKIAogICAgICAgICAv
LyBCbG9ja3MgYXJlIHJlc3BvbnNpYmxlIGZvciBwYWludGluZyBsaW5lIGdhcHMgYW5kIG1hcmdp
biBnYXBzLiBUaGV5IG11c3QgYmUgZXhhbWluZWQgYXMgd2VsbC4KICAgICAgICAgZm9yIChSZW5k
ZXJCbG9jayogYmxvY2sgPSBvLT5jb250YWluaW5nQmxvY2soKTsgYmxvY2sgJiYgIWJsb2NrLT5p
c1JlbmRlclZpZXcoKTsgYmxvY2sgPSBibG9jay0+Y29udGFpbmluZ0Jsb2NrKCkpIHsKICAgICAg
ICAgICAgIGlmICghcHJvY2Vzc2VkQmxvY2tzLmFkZChibG9jaykuaXNOZXdFbnRyeSkKICAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIFJlbmRlclNlbGVjdGlvbkluZm8oYmxvY2ss
IHRydWUpLnJlcGFpbnQoKTsKKyAgICAgICAgICAgIFJlbmRlclNlbGVjdGlvbkluZm8oKmJsb2Nr
LCB0cnVlKS5yZXBhaW50KCk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC05MzYsMTQgKzkzNiwx
NCBAQCB2b2lkIFJlbmRlclZpZXc6OnNldFN1YnRyZWVTZWxlY3Rpb24oU2VsZWN0aW9uU3VidHJl
ZVJvb3QmIHJvb3QsIFJlbmRlck9iamVjdCogcwogICAgICAgICBpZiAoKG9zLT5jYW5CZVNlbGVj
dGlvbkxlYWYoKSB8fCBvcyA9PSByb290LnNlbGVjdGlvblN0YXJ0KCkgfHwgb3MgPT0gcm9vdC5z
ZWxlY3Rpb25FbmQoKSkKICAgICAgICAgICAgICYmIG9zLT5zZWxlY3Rpb25TdGF0ZSgpICE9IFNl
bGVjdGlvbk5vbmUpIHsKICAgICAgICAgICAgIC8vIEJsb2NrcyBhcmUgcmVzcG9uc2libGUgZm9y
IHBhaW50aW5nIGxpbmUgZ2FwcyBhbmQgbWFyZ2luIGdhcHMuICBUaGV5IG11c3QgYmUgZXhhbWlu
ZWQgYXMgd2VsbC4KLSAgICAgICAgICAgIG9sZFNlbGVjdGVkT2JqZWN0cy5zZXQob3MsIHN0ZDo6
bWFrZV91bmlxdWU8UmVuZGVyU2VsZWN0aW9uSW5mbz4ob3MsIHRydWUpKTsKKyAgICAgICAgICAg
IG9sZFNlbGVjdGVkT2JqZWN0cy5zZXQob3MsIHN0ZDo6bWFrZV91bmlxdWU8UmVuZGVyU2VsZWN0
aW9uSW5mbz4oKm9zLCB0cnVlKSk7CiAgICAgICAgICAgICBpZiAoYmxvY2tSZXBhaW50TW9kZSA9
PSBSZXBhaW50TmV3WE9ST2xkKSB7CiAgICAgICAgICAgICAgICAgUmVuZGVyQmxvY2sqIGNiID0g
b3MtPmNvbnRhaW5pbmdCbG9jaygpOwogICAgICAgICAgICAgICAgIHdoaWxlIChjYiAmJiAhY2It
PmlzUmVuZGVyVmlldygpKSB7CiAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxS
ZW5kZXJCbG9ja1NlbGVjdGlvbkluZm8+JiBibG9ja0luZm8gPSBvbGRTZWxlY3RlZEJsb2Nrcy5h
ZGQoY2IsIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgaWYg
KGJsb2NrSW5mbykKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
ICAgICAgICBibG9ja0luZm8gPSBzdGQ6Om1ha2VfdW5pcXVlPFJlbmRlckJsb2NrU2VsZWN0aW9u
SW5mbz4oY2IpOworICAgICAgICAgICAgICAgICAgICBibG9ja0luZm8gPSBzdGQ6Om1ha2VfdW5p
cXVlPFJlbmRlckJsb2NrU2VsZWN0aW9uSW5mbz4oKmNiKTsKICAgICAgICAgICAgICAgICAgICAg
Y2IgPSBjYi0+Y29udGFpbmluZ0Jsb2NrKCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfQpAQCAtOTkyLDcgKzk5Miw3IEBAIHZvaWQgUmVuZGVyVmlldzo6c2V0U3VidHJlZVNlbGVj
dGlvbihTZWxlY3Rpb25TdWJ0cmVlUm9vdCYgcm9vdCwgUmVuZGVyT2JqZWN0KiBzCiAgICAgc2Vs
ZWN0aW9uSXRlcmF0b3IgPSBTZWxlY3Rpb25JdGVyYXRvcihvKTsKICAgICB3aGlsZSAobyAmJiBv
ICE9IHN0b3ApIHsKICAgICAgICAgaWYgKChvLT5jYW5CZVNlbGVjdGlvbkxlYWYoKSB8fCBvID09
IHN0YXJ0IHx8IG8gPT0gZW5kKSAmJiBvLT5zZWxlY3Rpb25TdGF0ZSgpICE9IFNlbGVjdGlvbk5v
bmUpIHsKLSAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTZWxlY3Rpb25JbmZvPiBz
ZWxlY3Rpb25JbmZvID0gc3RkOjptYWtlX3VuaXF1ZTxSZW5kZXJTZWxlY3Rpb25JbmZvPihvLCB0
cnVlKTsKKyAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTZWxlY3Rpb25JbmZvPiBz
ZWxlY3Rpb25JbmZvID0gc3RkOjptYWtlX3VuaXF1ZTxSZW5kZXJTZWxlY3Rpb25JbmZvPigqbywg
dHJ1ZSk7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICAgICAgICAgIGZvciAo
YXV0byYgcmVjdCA6IHNlbGVjdGlvbkluZm8tPnJlY3RzKCkpCkBAIC0xMDA2LDcgKzEwMDYsNyBA
QCB2b2lkIFJlbmRlclZpZXc6OnNldFN1YnRyZWVTZWxlY3Rpb24oU2VsZWN0aW9uU3VidHJlZVJv
b3QmIHJvb3QsIFJlbmRlck9iamVjdCogcwogICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjxSZW5kZXJCbG9ja1NlbGVjdGlvbkluZm8+JiBibG9ja0luZm8gPSBuZXdTZWxlY3RlZEJsb2Nr
cy5hZGQoY2IsIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKICAgICAgICAgICAgICAgICBpZiAo
YmxvY2tJbmZvKQogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBi
bG9ja0luZm8gPSBzdGQ6Om1ha2VfdW5pcXVlPFJlbmRlckJsb2NrU2VsZWN0aW9uSW5mbz4oY2Ip
OworICAgICAgICAgICAgICAgIGJsb2NrSW5mbyA9IHN0ZDo6bWFrZV91bmlxdWU8UmVuZGVyQmxv
Y2tTZWxlY3Rpb25JbmZvPigqY2IpOwogICAgICAgICAgICAgICAgIGNiID0gY2ItPmNvbnRhaW5p
bmdCbG9jaygpOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235661</attachid>
            <date>2014-07-28 21:00:32 -0700</date>
            <delta_ts>2014-07-29 07:02:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135326-20140728210018.patch</filename>
            <type>text/plain</type>
            <size>17410</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcxNzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWY2ZWRkZGMwODU2MzUx
MTAxZjMzYWM4MDI2NWUzYTVhMDE2NTM0Mi4uNTVjOWQ1ZDQxNDU1OTVhMjBhYjJiZTljMTY3ZGZh
YmNkYjJiZDlmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQzIEBACiAyMDE0LTA3LTI4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKKyAgICAgICAgQ2xlYW51cCBSZW5kZXJTZWxl
Y3Rpb25JbmZvQmFzZS9SZW5kZXJTZWxlY3Rpb25JbmZvL1JlbmRlckJsb2NrU2VsZWN0aW9uSW5m
by4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTMy
NgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIDEuIE1vdmUg
aW1wbGVtZW50YXRpb24gdG8gUmVuZGVyU2VsZWN0SW5mby5jcHAKKyAgICAgICAgMi4gUmVuZGVy
U2VsZWN0aW9uSW5mb0Jhc2UvUmVuZGVyU2VsZWN0aW9uSW5mby9SZW5kZXJCbG9ja1NlbGVjdGlv
bkluZm8gdGFrZSBSZW5kZXIqIHJlZmVyZW5jZS4KKyAgICAgICAgMy4gUmVtb3ZlIHVudXNlZCBm
dW5jdGlvbnMuCisgICAgICAgIDQuIEFkZCBSZW5kZXJTZWxlY3Rpb25JbmZvQmFzZTo6cmVwYWlu
dFJlY3RhbmdsZSgpCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJTZWxlY3Rpb25JbmZvLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTZWxlY3Rpb25JbmZvQmFzZTo6UmVuZGVyU2VsZWN0aW9uSW5mb0Jhc2UpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU2VsZWN0aW9uSW5mb0Jhc2U6OnJlcGFpbnRSZWN0YW5nbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU2VsZWN0aW9uSW5mbzo6UmVuZGVyU2VsZWN0aW9uSW5mbyk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTZWxlY3Rpb25JbmZvOjpyZXBhaW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrU2VsZWN0aW9uSW5mbzo6UmVuZGVyQmxvY2tTZWxlY3Rp
b25JbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrU2VsZWN0aW9uSW5mbzo6cmVw
YWludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNlbGVjdGlvbkluZm8uaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclNlbGVjdGlvbkluZm86OmNvbGxlY3RlZFNlbGVjdGlvblJlY3Rz
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNlbGVjdGlvbkluZm9CYXNlOjpSZW5kZXJTZWxl
Y3Rpb25JbmZvQmFzZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTZWxlY3Rp
b25JbmZvQmFzZTo6b2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNl
bGVjdGlvbkluZm86OlJlbmRlclNlbGVjdGlvbkluZm8pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU2VsZWN0aW9uSW5mbzo6cmVwYWludCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTZWxlY3Rpb25JbmZvOjpyZWN0cyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCbG9ja1NlbGVjdGlvbkluZm86OlJlbmRlckJsb2NrU2VsZWN0aW9uSW5m
byk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja1NlbGVjdGlvbkluZm86
OnJlcGFpbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tTZWxlY3Rp
b25JbmZvOjpibG9jayk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6c3VidHJlZVNlbGVjdGlvbkJvdW5k
cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpyZXBhaW50U3VidHJlZVNlbGVjdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpjbGVhclN1YnRyZWVTZWxlY3Rpb24p
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6YXBwbHlTdWJ0cmVlU2VsZWN0aW9uKToK
KworMjAxNC0wNy0yOCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCiAgICAgICAg
IFJFR1JFU1NJT04ocjE2NDEzMyk6IFNlbGVjdGlvbiBkaXNhcHBlYXJzIGFmdGVyIHNjcm9sbGlu
ZyBvbiBueXRpbWVzLmNvbQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTM1MzYxCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA3ZWRiZjQ0ZGE5YzY2YjNjZWI3M2JlZmM0MzljZmE1MWM4
YjNiMTNjLi44MDM5ZmZkOGMzZDgyYWVmNjEzNzkyODA3ZjZjNWJlNzQ2OTQzYWEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0y
MDY1LDYgKzIwNjUsNyBAQAogCQk1ODk1NTZFRDE4RDRBNDQwMDA3NjRCMDMgLyogQm9yZGVyRWRn
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTg5NTU2
RUMxOEQ0QTQ0MDAwNzY0QjAzIC8qIEJvcmRlckVkZ2UuaCAqLzsgfTsKIAkJNThBRUUyRjQxOEQ0
QkNDRjAwMjJFN0ZFIC8qIEJvcmRlckVkZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNThBRUUyRjMxOEQ0QkNDRjAwMjJFN0ZFIC8qIEJvcmRlckVk
Z2UuY3BwICovOyB9OwogCQk1OENEMzVDQjE4RUI0QzM5MDBCOUYzQUMgLyogRmxvYXRTaXplSGFz
aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNThDRDM1
Q0ExOEVCNEMzOTAwQjlGM0FDIC8qIEZsb2F0U2l6ZUhhc2guaCAqLzsgfTsKKwkJNThERUVEODYx
OTg3M0ZGMDAwODg4RkYzIC8qIFJlbmRlclNlbGVjdGlvbkluZm8uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNThERUVEODUxOTg3M0ZGMDAwODg4RkYz
IC8qIFJlbmRlclNlbGVjdGlvbkluZm8uY3BwICovOyB9OwogCQk1OTA1QURCRjEzMDJGM0NFMDBG
MTE2REYgLyogWE1MVHJlZVZpZXdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1OTA1QURCRDEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdl
ci5jcHAgKi87IH07CiAJCTU5MDVBREMwMTMwMkYzQ0UwMEYxMTZERiAvKiBYTUxUcmVlVmlld2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTA1QURC
RTEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5oICovOyB9OwogCQk1OTBFMUI0OTEx
RTRFRjRCMDA2OUY3ODQgLyogRGV2aWNlT3JpZW50YXRpb25EYXRhLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTBFMUI0ODExRTRFRjRCMDA2OUY3ODQg
LyogRGV2aWNlT3JpZW50YXRpb25EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTkxODIsNiArOTE4Myw3IEBACiAJCTU4OTU1NkVDMThENEE0
NDAwMDc2NEIwMyAvKiBCb3JkZXJFZGdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEJvcmRlckVkZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNThBRUUyRjMx
OEQ0QkNDRjAwMjJFN0ZFIC8qIEJvcmRlckVkZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQm9yZGVyRWRnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU4Q0QzNUNBMThFQjRDMzkwMEI5RjNBQyAvKiBGbG9hdFNpemVIYXNoLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZsb2F0U2l6ZUhhc2guaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNThERUVEODUxOTg3M0ZGMDAwODg4RkYzIC8qIFJlbmRlclNlbGVjdGlv
bkluZm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU2Vs
ZWN0aW9uSW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5MDVBREJEMTMw
MkYzQ0UwMEYxMTZERiAvKiBYTUxUcmVlVmlld2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFhNTFRyZWVWaWV3ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1OTA1QURCRTEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxUcmVlVmlld2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU5MEUxQjQ4MTFFNEVGNEIwMDY5Rjc4NCAvKiBEZXZpY2VPcmll
bnRhdGlvbkRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlT3Jp
ZW50YXRpb25EYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjQyOSw2ICsy
MjQzMSw3IEBACiAJCQkJQkMzQkU5OTgwRTlDMUU1RDAwODM1NTg4IC8qIFJlbmRlclNjcm9sbGJh
clRoZW1lLmggKi8sCiAJCQkJNDU4RkU0MDcxNTg5REYwQjAwNTYwOUU2IC8qIFJlbmRlclNlYXJj
aEZpZWxkLmNwcCAqLywKIAkJCQk0NThGRTQwODE1ODlERjBCMDA1NjA5RTYgLyogUmVuZGVyU2Vh
cmNoRmllbGQuaCAqLywKKwkJCQk1OERFRUQ4NTE5ODczRkYwMDA4ODhGRjMgLyogUmVuZGVyU2Vs
ZWN0aW9uSW5mby5jcHAgKi8sCiAJCQkJMEYxMUE1NEUwRjM5MjMzMTAwQzM3ODg0IC8qIFJlbmRl
clNlbGVjdGlvbkluZm8uaCAqLywKIAkJCQlBQjI0N0E2QTBBRkQ2MzgzMDAzRkE1RkQgLyogUmVu
ZGVyU2xpZGVyLmNwcCAqLywKIAkJCQlBQjI0N0E2QjBBRkQ2MzgzMDAzRkE1RkQgLyogUmVuZGVy
U2xpZGVyLmggKi8sCkBAIC0yNzU1MSw2ICsyNzU1NCw3IEBACiAJCQkJODVERjgxMkEwQUE3Nzg3
MjAwNDg2QUQ3IC8qIERPTUhUTUxJbWFnZUVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4
NUYzMkFFRDBBQTYzQjg3MDBGRjMxODQgLyogRE9NSFRNTElucHV0RWxlbWVudC5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCUE2MTQ4QTY4MTJFNDFEOTQwMDQ0QTc4NCAvKiBET01IVE1MS2V5Z2VuRWxl
bWVudC5tbSBpbiBTb3VyY2VzICovLAorCQkJCTU4REVFRDg2MTk4NzNGRjAwMDg4OEZGMyAvKiBS
ZW5kZXJTZWxlY3Rpb25JbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1QkE0Q0UyMEFBNjg2
MUIwMDg4MDUyRCAvKiBET01IVE1MTGFiZWxFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
ODVCQTRDRTQwQUE2ODYxQjAwODgwNTJEIC8qIERPTUhUTUxMZWdlbmRFbGVtZW50Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJODVCQTREMTIwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxMSUVsZW1l
bnQubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTZWxlY3Rpb25JbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTZWxlY3Rpb25JbmZvLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYjExOTRhMzQ2N2VmZWM5MmNhNGQ0NWNk
Y2ZhOWRiNTEwYjVlMDQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclNlbGVjdGlvbkluZm8uY3BwCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVuZGVyU2VsZWN0aW9uSW5mby5oIgor
CisjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlbmRl
clNlbGVjdGlvbkluZm9CYXNlOjpSZW5kZXJTZWxlY3Rpb25JbmZvQmFzZShSZW5kZXJPYmplY3Qm
IHJlbmRlcmVyKQorICAgIDogbV9yZW5kZXJlcihyZW5kZXJlcikKKyAgICAsIG1fcmVwYWludENv
bnRhaW5lcihyZW5kZXJlci5jb250YWluZXJGb3JSZXBhaW50KCkpCisgICAgLCBtX3N0YXRlKHJl
bmRlcmVyLnNlbGVjdGlvblN0YXRlKCkpCit7Cit9CisKK3ZvaWQgUmVuZGVyU2VsZWN0aW9uSW5m
b0Jhc2U6OnJlcGFpbnRSZWN0YW5nbGUoY29uc3QgTGF5b3V0UmVjdCYgcmVwYWludFJlY3QpCit7
CisgICAgbV9yZW5kZXJlci5yZXBhaW50VXNpbmdDb250YWluZXIobV9yZXBhaW50Q29udGFpbmVy
LCBlbmNsb3NpbmdJbnRSZWN0KHJlcGFpbnRSZWN0KSk7Cit9CisKK1JlbmRlclNlbGVjdGlvbklu
Zm86OlJlbmRlclNlbGVjdGlvbkluZm8oUmVuZGVyT2JqZWN0JiByZW5kZXJlciwgYm9vbCBjbGlw
VG9WaXNpYmxlQ29udGVudCkKKyAgICA6IFJlbmRlclNlbGVjdGlvbkluZm9CYXNlKHJlbmRlcmVy
KQoreworICAgIGlmIChyZW5kZXJlci5jYW5VcGRhdGVTZWxlY3Rpb25PblJvb3RMaW5lQm94ZXMo
KSkgeworICAgICAgICBpZiAocmVuZGVyZXIuaXNUZXh0KCkpCisgICAgICAgICAgICBtX3JlY3Qg
PSB0b1JlbmRlclRleHQocmVuZGVyZXIpLmNvbGxlY3RTZWxlY3Rpb25SZWN0c0ZvckxpbmVCb3hl
cyhtX3JlcGFpbnRDb250YWluZXIsIGNsaXBUb1Zpc2libGVDb250ZW50LCBtX2NvbGxlY3RlZFNl
bGVjdGlvblJlY3RzKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9yZWN0ID0gcmVuZGVy
ZXIuc2VsZWN0aW9uUmVjdEZvclJlcGFpbnQobV9yZXBhaW50Q29udGFpbmVyLCBjbGlwVG9WaXNp
YmxlQ29udGVudCk7CisgICAgfQorfQorCit2b2lkIFJlbmRlclNlbGVjdGlvbkluZm86OnJlcGFp
bnQoKQoreworICAgIHJlcGFpbnRSZWN0YW5nbGUobV9yZWN0KTsKK30KKworUmVuZGVyQmxvY2tT
ZWxlY3Rpb25JbmZvOjpSZW5kZXJCbG9ja1NlbGVjdGlvbkluZm8oUmVuZGVyQmxvY2smIHJlbmRl
cmVyKQorICAgIDogUmVuZGVyU2VsZWN0aW9uSW5mb0Jhc2UocmVuZGVyZXIpCisgICAgLCBtX3Jl
Y3RzKHJlbmRlcmVyLmNhblVwZGF0ZVNlbGVjdGlvbk9uUm9vdExpbmVCb3hlcygpID8gcmVuZGVy
ZXIuc2VsZWN0aW9uR2FwUmVjdHNGb3JSZXBhaW50KG1fcmVwYWludENvbnRhaW5lcikgOiBHYXBS
ZWN0cygpKQoreworfQorCit2b2lkIFJlbmRlckJsb2NrU2VsZWN0aW9uSW5mbzo6cmVwYWludCgp
Cit7CisgICAgcmVwYWludFJlY3RhbmdsZShtX3JlY3RzKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlbGVj
dGlvbkluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWxlY3Rpb25JbmZv
LmgKaW5kZXggOTNhZTdkOWM1MDhhZDFhOTI3YWU1ZDRlMjNhMjM4ZDJjYmY4Yzg4Yy4uNjg4OTFj
Zjk0NDA1ZmY4ZjNhMzU3NTcyNDU5Y2I5YTgwMWExNDIzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlbGVjdGlvbkluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2VsZWN0aW9uSW5mby5oCkBAIC0yNiw2NCArMjYsMzkgQEAKICNk
ZWZpbmUgUmVuZGVyU2VsZWN0aW9uSW5mb19oCiAKICNpbmNsdWRlICJHYXBSZWN0cy5oIgotI2lu
Y2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgotI2luY2x1ZGUgIlJl
bmRlclRleHQuaCIKKyNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBSZW5kZXJTZWxlY3Rpb25JbmZvQmFzZSB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoUmVuZGVyU2VsZWN0aW9uSW5mb0Jhc2UpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKLSAgICBSZW5kZXJTZWxlY3Rpb25JbmZvQmFzZSgpCi0gICAgICAgIDogbV9v
YmplY3QoMCkKLSAgICAgICAgLCBtX3JlcGFpbnRDb250YWluZXIoMCkKLSAgICAgICAgLCBtX3N0
YXRlKFJlbmRlck9iamVjdDo6U2VsZWN0aW9uTm9uZSkKLSAgICB7Ci0gICAgfQotCi0gICAgZXhw
bGljaXQgUmVuZGVyU2VsZWN0aW9uSW5mb0Jhc2UoUmVuZGVyT2JqZWN0KiBvKQotICAgICAgICA6
IG1fb2JqZWN0KG8pCi0gICAgICAgICwgbV9yZXBhaW50Q29udGFpbmVyKG8tPmNvbnRhaW5lckZv
clJlcGFpbnQoKSkKLSAgICAgICAgLCBtX3N0YXRlKG8tPnNlbGVjdGlvblN0YXRlKCkpCi0gICAg
ewotICAgIH0KLSAgICAKLSAgICBSZW5kZXJPYmplY3QqIG9iamVjdCgpIGNvbnN0IHsgcmV0dXJu
IG1fb2JqZWN0OyB9CisgICAgZXhwbGljaXQgUmVuZGVyU2VsZWN0aW9uSW5mb0Jhc2UoUmVuZGVy
T2JqZWN0JiByZW5kZXJlcik7CiAgICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVwYWludENvbnRhaW5lcjsgfQogICAgIFJlbmRl
ck9iamVjdDo6U2VsZWN0aW9uU3RhdGUgc3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlOyB9
CiAKIHByb3RlY3RlZDoKLSAgICBSZW5kZXJPYmplY3QqIG1fb2JqZWN0OworICAgIHZvaWQgcmVw
YWludFJlY3RhbmdsZShjb25zdCBMYXlvdXRSZWN0JiByZXBhaW50UmVjdCk7CisKKyAgICBSZW5k
ZXJPYmplY3QmIG1fcmVuZGVyZXI7CiAgICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogbV9yZXBh
aW50Q29udGFpbmVyOworCitwcml2YXRlOgogICAgIFJlbmRlck9iamVjdDo6U2VsZWN0aW9uU3Rh
dGUgbV9zdGF0ZTsKIH07CiAKIC8vIFRoaXMgc3RydWN0IGlzIHVzZWQgd2hlbiB0aGUgc2VsZWN0
aW9uIGNoYW5nZXMgdG8gY2FjaGUgdGhlIG9sZCBhbmQgbmV3IHN0YXRlIG9mIHRoZSBzZWxlY3Rp
b24gZm9yIGVhY2ggUmVuZGVyT2JqZWN0LgogY2xhc3MgUmVuZGVyU2VsZWN0aW9uSW5mbyA6IHB1
YmxpYyBSZW5kZXJTZWxlY3Rpb25JbmZvQmFzZSB7CiBwdWJsaWM6Ci0gICAgUmVuZGVyU2VsZWN0
aW9uSW5mbyhSZW5kZXJPYmplY3QqIG8sIGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQpCi0gICAg
ICAgIDogUmVuZGVyU2VsZWN0aW9uSW5mb0Jhc2UobykKLSAgICB7Ci0gICAgICAgIEFTU0VSVChv
KTsKLSAgICAgICAgaWYgKG8tPmNhblVwZGF0ZVNlbGVjdGlvbk9uUm9vdExpbmVCb3hlcygpKSB7
Ci0gICAgICAgICAgICBpZiAoby0+aXNUZXh0KCkpCi0gICAgICAgICAgICAgICAgbV9yZWN0ID0g
dG9SZW5kZXJUZXh0KCpvKS5jb2xsZWN0U2VsZWN0aW9uUmVjdHNGb3JMaW5lQm94ZXMobV9yZXBh
aW50Q29udGFpbmVyLCBjbGlwVG9WaXNpYmxlQ29udGVudCwgbV9yZWN0cyk7Ci0gICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgbV9yZWN0ID0gby0+c2VsZWN0aW9uUmVjdEZvclJlcGFp
bnQobV9yZXBhaW50Q29udGFpbmVyLCBjbGlwVG9WaXNpYmxlQ29udGVudCk7Ci0gICAgICAgIH0K
LSAgICB9Ci0gICAgCi0gICAgdm9pZCByZXBhaW50KCkKLSAgICB7Ci0gICAgICAgIG1fb2JqZWN0
LT5yZXBhaW50VXNpbmdDb250YWluZXIobV9yZXBhaW50Q29udGFpbmVyLCBlbmNsb3NpbmdJbnRS
ZWN0KG1fcmVjdCkpOwotICAgIH0KLQotICAgIGNvbnN0IFZlY3RvcjxMYXlvdXRSZWN0PiYgcmVj
dHMoKSBjb25zdCB7IHJldHVybiBtX3JlY3RzOyB9CisgICAgUmVuZGVyU2VsZWN0aW9uSW5mbyhS
ZW5kZXJPYmplY3QmIHJlbmRlcmVyLCBib29sIGNsaXBUb1Zpc2libGVDb250ZW50KTsKKworICAg
IHZvaWQgcmVwYWludCgpOworICAgIGNvbnN0IFZlY3RvcjxMYXlvdXRSZWN0PiYgY29sbGVjdGVk
U2VsZWN0aW9uUmVjdHMoKSBjb25zdCB7IHJldHVybiBtX2NvbGxlY3RlZFNlbGVjdGlvblJlY3Rz
OyB9CiAgICAgTGF5b3V0UmVjdCByZWN0KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0OyB9CiAKIHBy
aXZhdGU6Ci0gICAgVmVjdG9yPExheW91dFJlY3Q+IG1fcmVjdHM7CisgICAgVmVjdG9yPExheW91
dFJlY3Q+IG1fY29sbGVjdGVkU2VsZWN0aW9uUmVjdHM7IC8vIHJlbGF0aXZlIHRvIHJlcGFpbnQg
Y29udGFpbmVyCiAgICAgTGF5b3V0UmVjdCBtX3JlY3Q7IC8vIHJlbGF0aXZlIHRvIHJlcGFpbnQg
Y29udGFpbmVyCiB9OwogCkBAIC05MSwxOCArNjYsOSBAQCBwcml2YXRlOgogLy8gVGhpcyBzdHJ1
Y3QgaXMgdXNlZCB3aGVuIHRoZSBzZWxlY3Rpb24gY2hhbmdlcyB0byBjYWNoZSB0aGUgb2xkIGFu
ZCBuZXcgc3RhdGUgb2YgdGhlIHNlbGVjdGlvbiBmb3IgZWFjaCBSZW5kZXJCbG9jay4KIGNsYXNz
IFJlbmRlckJsb2NrU2VsZWN0aW9uSW5mbyA6IHB1YmxpYyBSZW5kZXJTZWxlY3Rpb25JbmZvQmFz
ZSB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgUmVuZGVyQmxvY2tTZWxlY3Rpb25JbmZvKFJlbmRl
ckJsb2NrKiBiKQotICAgICAgICA6IFJlbmRlclNlbGVjdGlvbkluZm9CYXNlKGIpCi0gICAgICAg
ICwgbV9yZWN0cyhiLT5jYW5VcGRhdGVTZWxlY3Rpb25PblJvb3RMaW5lQm94ZXMoKSA/IGJsb2Nr
KCktPnNlbGVjdGlvbkdhcFJlY3RzRm9yUmVwYWludChtX3JlcGFpbnRDb250YWluZXIpIDogR2Fw
UmVjdHMoKSkKLSAgICB7IAotICAgIH0KLQotICAgIHZvaWQgcmVwYWludCgpCi0gICAgewotICAg
ICAgICBtX29iamVjdC0+cmVwYWludFVzaW5nQ29udGFpbmVyKG1fcmVwYWludENvbnRhaW5lciwg
ZW5jbG9zaW5nSW50UmVjdChtX3JlY3RzKSk7Ci0gICAgfQotICAgIAotICAgIFJlbmRlckJsb2Nr
KiBibG9jaygpIGNvbnN0IHsgcmV0dXJuIHRvUmVuZGVyQmxvY2sobV9vYmplY3QpOyB9CisgICAg
ZXhwbGljaXQgUmVuZGVyQmxvY2tTZWxlY3Rpb25JbmZvKFJlbmRlckJsb2NrJiByZW5kZXJlcik7
CisKKyAgICB2b2lkIHJlcGFpbnQoKTsKICAgICBHYXBSZWN0cyByZWN0cygpIGNvbnN0IHsgcmV0
dXJuIG1fcmVjdHM7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJW
aWV3LmNwcAppbmRleCAyM2E0ZmY4YjA0ZmQ3MTk5MDM3OTRiM2RjY2M1MDc5ZWIxYWRlNGRmLi41
MDRhNTMyYWNkZmQxZWM1MWEwZTc0NzM0NjFjZDYxNDQ5NDc5YTE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCkBAIC03NTMsMTMgKzc1MywxMyBAQCBMYXlvdXRSZWN0
IFJlbmRlclZpZXc6OnN1YnRyZWVTZWxlY3Rpb25Cb3VuZHMoY29uc3QgU2VsZWN0aW9uU3VidHJl
ZVJvb3QmIHJvb3QsCiAgICAgd2hpbGUgKG9zICYmIG9zICE9IHN0b3ApIHsKICAgICAgICAgaWYg
KChvcy0+Y2FuQmVTZWxlY3Rpb25MZWFmKCkgfHwgb3MgPT0gcm9vdC5zZWxlY3Rpb25TdGFydCgp
IHx8IG9zID09IHJvb3Quc2VsZWN0aW9uRW5kKCkpICYmIG9zLT5zZWxlY3Rpb25TdGF0ZSgpICE9
IFNlbGVjdGlvbk5vbmUpIHsKICAgICAgICAgICAgIC8vIEJsb2NrcyBhcmUgcmVzcG9uc2libGUg
Zm9yIHBhaW50aW5nIGxpbmUgZ2FwcyBhbmQgbWFyZ2luIGdhcHMuIFRoZXkgbXVzdCBiZSBleGFt
aW5lZCBhcyB3ZWxsLgotICAgICAgICAgICAgc2VsZWN0ZWRPYmplY3RzLnNldChvcywgc3RkOjpt
YWtlX3VuaXF1ZTxSZW5kZXJTZWxlY3Rpb25JbmZvPihvcywgY2xpcFRvVmlzaWJsZUNvbnRlbnQp
KTsKKyAgICAgICAgICAgIHNlbGVjdGVkT2JqZWN0cy5zZXQob3MsIHN0ZDo6bWFrZV91bmlxdWU8
UmVuZGVyU2VsZWN0aW9uSW5mbz4oKm9zLCBjbGlwVG9WaXNpYmxlQ29udGVudCkpOwogICAgICAg
ICAgICAgUmVuZGVyQmxvY2sqIGNiID0gb3MtPmNvbnRhaW5pbmdCbG9jaygpOwogICAgICAgICAg
ICAgd2hpbGUgKGNiICYmICFjYi0+aXNSZW5kZXJWaWV3KCkpIHsKICAgICAgICAgICAgICAgICBz
dGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU2VsZWN0aW9uSW5mbz4mIGJsb2NrSW5mbyA9IHNlbGVjdGVk
T2JqZWN0cy5hZGQoY2IsIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKICAgICAgICAgICAgICAg
ICBpZiAoYmxvY2tJbmZvKQogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICBibG9ja0luZm8gPSBzdGQ6Om1ha2VfdW5pcXVlPFJlbmRlclNlbGVjdGlvbkluZm8+KGNi
LCBjbGlwVG9WaXNpYmxlQ29udGVudCk7CisgICAgICAgICAgICAgICAgYmxvY2tJbmZvID0gc3Rk
OjptYWtlX3VuaXF1ZTxSZW5kZXJTZWxlY3Rpb25JbmZvPigqY2IsIGNsaXBUb1Zpc2libGVDb250
ZW50KTsKICAgICAgICAgICAgICAgICBjYiA9IGNiLT5jb250YWluaW5nQmxvY2soKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQpAQCAtODA1LDEzICs4MDUsMTMgQEAgdm9pZCBSZW5kZXJWaWV3
OjpyZXBhaW50U3VidHJlZVNlbGVjdGlvbihjb25zdCBTZWxlY3Rpb25TdWJ0cmVlUm9vdCYgcm9v
dCkgY29uc3QKICAgICAgICAgaWYgKG8tPnNlbGVjdGlvblN0YXRlKCkgPT0gU2VsZWN0aW9uTm9u
ZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIFJlbmRlclNlbGVjdGlvbkluZm8o
bywgdHJ1ZSkucmVwYWludCgpOworICAgICAgICBSZW5kZXJTZWxlY3Rpb25JbmZvKCpvLCB0cnVl
KS5yZXBhaW50KCk7CiAKICAgICAgICAgLy8gQmxvY2tzIGFyZSByZXNwb25zaWJsZSBmb3IgcGFp
bnRpbmcgbGluZSBnYXBzIGFuZCBtYXJnaW4gZ2Fwcy4gVGhleSBtdXN0IGJlIGV4YW1pbmVkIGFz
IHdlbGwuCiAgICAgICAgIGZvciAoUmVuZGVyQmxvY2sqIGJsb2NrID0gby0+Y29udGFpbmluZ0Js
b2NrKCk7IGJsb2NrICYmICFibG9jay0+aXNSZW5kZXJWaWV3KCk7IGJsb2NrID0gYmxvY2stPmNv
bnRhaW5pbmdCbG9jaygpKSB7CiAgICAgICAgICAgICBpZiAoIXByb2Nlc3NlZEJsb2Nrcy5hZGQo
YmxvY2spLmlzTmV3RW50cnkpCiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBS
ZW5kZXJTZWxlY3Rpb25JbmZvKGJsb2NrLCB0cnVlKS5yZXBhaW50KCk7CisgICAgICAgICAgICBS
ZW5kZXJTZWxlY3Rpb25JbmZvKCpibG9jaywgdHJ1ZSkucmVwYWludCgpOwogICAgICAgICB9CiAg
ICAgfQogfQpAQCAtOTU0LDE0ICs5NTQsMTQgQEAgdm9pZCBSZW5kZXJWaWV3OjpjbGVhclN1YnRy
ZWVTZWxlY3Rpb24oY29uc3QgU2VsZWN0aW9uU3VidHJlZVJvb3QmIHJvb3QsIFNlbGVjdGkKICAg
ICAgICAgaWYgKChvcy0+Y2FuQmVTZWxlY3Rpb25MZWFmKCkgfHwgb3MgPT0gcm9vdC5zZWxlY3Rp
b25TdGFydCgpIHx8IG9zID09IHJvb3Quc2VsZWN0aW9uRW5kKCkpCiAgICAgICAgICAgICAmJiBv
cy0+c2VsZWN0aW9uU3RhdGUoKSAhPSBTZWxlY3Rpb25Ob25lKSB7CiAgICAgICAgICAgICAvLyBC
bG9ja3MgYXJlIHJlc3BvbnNpYmxlIGZvciBwYWludGluZyBsaW5lIGdhcHMgYW5kIG1hcmdpbiBn
YXBzLiAgVGhleSBtdXN0IGJlIGV4YW1pbmVkIGFzIHdlbGwuCi0gICAgICAgICAgICBvbGRTZWxl
Y3Rpb25EYXRhLnNlbGVjdGVkT2JqZWN0cy5zZXQob3MsIHN0ZDo6bWFrZV91bmlxdWU8UmVuZGVy
U2VsZWN0aW9uSW5mbz4ob3MsIHRydWUpKTsKKyAgICAgICAgICAgIG9sZFNlbGVjdGlvbkRhdGEu
c2VsZWN0ZWRPYmplY3RzLnNldChvcywgc3RkOjptYWtlX3VuaXF1ZTxSZW5kZXJTZWxlY3Rpb25J
bmZvPigqb3MsIHRydWUpKTsKICAgICAgICAgICAgIGlmIChibG9ja1JlcGFpbnRNb2RlID09IFJl
cGFpbnROZXdYT1JPbGQpIHsKICAgICAgICAgICAgICAgICBSZW5kZXJCbG9jayogY2IgPSBvcy0+
Y29udGFpbmluZ0Jsb2NrKCk7CiAgICAgICAgICAgICAgICAgd2hpbGUgKGNiICYmICFjYi0+aXNS
ZW5kZXJWaWV3KCkpIHsKICAgICAgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRl
ckJsb2NrU2VsZWN0aW9uSW5mbz4mIGJsb2NrSW5mbyA9IG9sZFNlbGVjdGlvbkRhdGEuc2VsZWN0
ZWRCbG9ja3MuYWRkKGNiLCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CiAgICAgICAgICAgICAg
ICAgICAgIGlmIChibG9ja0luZm8pCiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgICAgICAgICAgYmxvY2tJbmZvID0gc3RkOjptYWtlX3VuaXF1ZTxSZW5kZXJCbG9j
a1NlbGVjdGlvbkluZm8+KGNiKTsKKyAgICAgICAgICAgICAgICAgICAgYmxvY2tJbmZvID0gc3Rk
OjptYWtlX3VuaXF1ZTxSZW5kZXJCbG9ja1NlbGVjdGlvbkluZm8+KCpjYik7CiAgICAgICAgICAg
ICAgICAgICAgIGNiID0gY2ItPmNvbnRhaW5pbmdCbG9jaygpOwogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIH0KQEAgLTEwMDgsMTAgKzEwMDgsMTAgQEAgdm9pZCBSZW5kZXJWaWV3Ojph
cHBseVN1YnRyZWVTZWxlY3Rpb24oU2VsZWN0aW9uU3VidHJlZVJvb3QmIHJvb3QsIFJlbmRlck9i
amVjdCoKICAgICBzZWxlY3Rpb25JdGVyYXRvciA9IFNlbGVjdGlvbkl0ZXJhdG9yKG8pOwogICAg
IHdoaWxlIChvICYmIG8gIT0gc3RvcCkgewogICAgICAgICBpZiAoKG8tPmNhbkJlU2VsZWN0aW9u
TGVhZigpIHx8IG8gPT0gc3RhcnQgfHwgbyA9PSBlbmQpICYmIG8tPnNlbGVjdGlvblN0YXRlKCkg
IT0gU2VsZWN0aW9uTm9uZSkgewotICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclNl
bGVjdGlvbkluZm8+IHNlbGVjdGlvbkluZm8gPSBzdGQ6Om1ha2VfdW5pcXVlPFJlbmRlclNlbGVj
dGlvbkluZm8+KG8sIHRydWUpOworICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclNl
bGVjdGlvbkluZm8+IHNlbGVjdGlvbkluZm8gPSBzdGQ6Om1ha2VfdW5pcXVlPFJlbmRlclNlbGVj
dGlvbkluZm8+KCpvLCB0cnVlKTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotICAg
ICAgICAgICAgZm9yIChhdXRvJiByZWN0IDogc2VsZWN0aW9uSW5mby0+cmVjdHMoKSkKKyAgICAg
ICAgICAgIGZvciAoYXV0byYgcmVjdCA6IHNlbGVjdGlvbkluZm8tPmNvbGxlY3RlZFNlbGVjdGlv
blJlY3RzKCkpCiAgICAgICAgICAgICAgICAgbV9zZWxlY3Rpb25SZWN0R2F0aGVyZXIuYWRkUmVj
dChyZWN0KTsKICNlbmRpZgogCkBAIC0xMDIyLDcgKzEwMjIsNyBAQCB2b2lkIFJlbmRlclZpZXc6
OmFwcGx5U3VidHJlZVNlbGVjdGlvbihTZWxlY3Rpb25TdWJ0cmVlUm9vdCYgcm9vdCwgUmVuZGVy
T2JqZWN0KgogICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJCbG9ja1NlbGVj
dGlvbkluZm8+JiBibG9ja0luZm8gPSBuZXdTZWxlY3RlZEJsb2Nrcy5hZGQoY2IsIG51bGxwdHIp
Lml0ZXJhdG9yLT52YWx1ZTsKICAgICAgICAgICAgICAgICBpZiAoYmxvY2tJbmZvKQogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBibG9ja0luZm8gPSBzdGQ6Om1h
a2VfdW5pcXVlPFJlbmRlckJsb2NrU2VsZWN0aW9uSW5mbz4oY2IpOworICAgICAgICAgICAgICAg
IGJsb2NrSW5mbyA9IHN0ZDo6bWFrZV91bmlxdWU8UmVuZGVyQmxvY2tTZWxlY3Rpb25JbmZvPigq
Y2IpOwogICAgICAgICAgICAgICAgIGNiID0gY2ItPmNvbnRhaW5pbmdCbG9jaygpOwogCiAjaWYg
RU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235686</attachid>
            <date>2014-07-29 07:02:17 -0700</date>
            <delta_ts>2014-07-29 07:51:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135326-20140729070203.patch</filename>
            <type>text/plain</type>
            <size>21526</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcxNzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWY2ZWRkZGMwODU2MzUx
MTAxZjMzYWM4MDI2NWUzYTVhMDE2NTM0Mi4uNTVjOWQ1ZDQxNDU1OTVhMjBhYjJiZTljMTY3ZGZh
YmNkYjJiZDlmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQzIEBACiAyMDE0LTA3LTI4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKKyAgICAgICAgQ2xlYW51cCBSZW5kZXJTZWxl
Y3Rpb25JbmZvQmFzZS9SZW5kZXJTZWxlY3Rpb25JbmZvL1JlbmRlckJsb2NrU2VsZWN0aW9uSW5m
by4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTMy
NgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIDEuIE1vdmUg
aW1wbGVtZW50YXRpb24gdG8gUmVuZGVyU2VsZWN0SW5mby5jcHAKKyAgICAgICAgMi4gUmVuZGVy
U2VsZWN0aW9uSW5mb0Jhc2UvUmVuZGVyU2VsZWN0aW9uSW5mby9SZW5kZXJCbG9ja1NlbGVjdGlv
bkluZm8gdGFrZSBSZW5kZXIqIHJlZmVyZW5jZS4KKyAgICAgICAgMy4gUmVtb3ZlIHVudXNlZCBm
dW5jdGlvbnMuCisgICAgICAgIDQuIEFkZCBSZW5kZXJTZWxlY3Rpb25JbmZvQmFzZTo6cmVwYWlu
dFJlY3RhbmdsZSgpCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJTZWxlY3Rpb25JbmZvLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTZWxlY3Rpb25JbmZvQmFzZTo6UmVuZGVyU2VsZWN0aW9uSW5mb0Jhc2UpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU2VsZWN0aW9uSW5mb0Jhc2U6OnJlcGFpbnRSZWN0YW5nbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU2VsZWN0aW9uSW5mbzo6UmVuZGVyU2VsZWN0aW9uSW5mbyk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTZWxlY3Rpb25JbmZvOjpyZXBhaW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrU2VsZWN0aW9uSW5mbzo6UmVuZGVyQmxvY2tTZWxlY3Rp
b25JbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrU2VsZWN0aW9uSW5mbzo6cmVw
YWludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNlbGVjdGlvbkluZm8uaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclNlbGVjdGlvbkluZm86OmNvbGxlY3RlZFNlbGVjdGlvblJlY3Rz
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNlbGVjdGlvbkluZm9CYXNlOjpSZW5kZXJTZWxl
Y3Rpb25JbmZvQmFzZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTZWxlY3Rp
b25JbmZvQmFzZTo6b2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNl
bGVjdGlvbkluZm86OlJlbmRlclNlbGVjdGlvbkluZm8pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU2VsZWN0aW9uSW5mbzo6cmVwYWludCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTZWxlY3Rpb25JbmZvOjpyZWN0cyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCbG9ja1NlbGVjdGlvbkluZm86OlJlbmRlckJsb2NrU2VsZWN0aW9uSW5m
byk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja1NlbGVjdGlvbkluZm86
OnJlcGFpbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tTZWxlY3Rp
b25JbmZvOjpibG9jayk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6c3VidHJlZVNlbGVjdGlvbkJvdW5k
cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpyZXBhaW50U3VidHJlZVNlbGVjdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpjbGVhclN1YnRyZWVTZWxlY3Rpb24p
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6YXBwbHlTdWJ0cmVlU2VsZWN0aW9uKToK
KworMjAxNC0wNy0yOCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCiAgICAgICAg
IFJFR1JFU1NJT04ocjE2NDEzMyk6IFNlbGVjdGlvbiBkaXNhcHBlYXJzIGFmdGVyIHNjcm9sbGlu
ZyBvbiBueXRpbWVzLmNvbQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTM1MzYxCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMmI4YzU2OGYwYjIzZGRj
ZGZiNjA2NmMyNTRkNzIyMWEwNGFiZmQzNy4uYWY3ZWE4NGYzMGIwMDhiNzg5Y2FlYzM3OGI1NzJi
NDUwMDY4MGVhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIzNTIsNiArMjM1Miw3IEBAIHNl
dChXZWJDb3JlX1NPVVJDRVMKICAgICByZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyUGFydC5jcHAK
ICAgICByZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyVGhlbWUuY3BwCiAgICAgcmVuZGVyaW5nL1Jl
bmRlclNlYXJjaEZpZWxkLmNwcAorICAgIHJlbmRlcmluZy9SZW5kZXJTZWxlY3Rpb25JbmZvLmNw
cAogICAgIHJlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCiAgICAgcmVuZGVyaW5nL1JlbmRlclNu
YXBzaG90dGVkUGx1Z0luLmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDk3YzIx
NGVmMWMzMWM1MGYwZWEzMjJhYTUxYmE0MTgwMWEzZjkwNmQuLjg4MGEwNTA2ZTMzMjc3OWIxMGFm
YTk2MjA3ODM0MTA2NjNmMGZjMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMTA4NjIsNiArMTA4NjIsMjAgQEAKICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBp
bGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUmVuZGVyU2VsZWN0aW9u
SW5mby5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVy
aW5nXFJlbmRlclNsaWRlci5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IGMyY2ZjODc4MjlkMTA5NDdhMTU2NDRhZjM1Njhl
NTcxZWY5M2FlMDMuLjBiODM2MWU5MGExYjk5OGM3OTFkNGVmZjY3ZTlkM2E2MDM4Y2IxNDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qLmZpbHRlcnMKQEAgLTI1OTgsNiArMjU5OCw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxyZW5kZXJpbmdcUmVuZGVyU2VhcmNoRmllbGQuY3BwIj4KICAgICAgIDxGaWx0ZXI+cmVu
ZGVyaW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxyZW5kZXJpbmdcUmVuZGVyU2VsZWN0aW9uSW5mby5jcHAiPgorICAgICAgPEZpbHRlcj5y
ZW5kZXJpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHJlbmRlcmluZ1xSZW5kZXJTbGlkZXIuY3BwIj4KICAgICAgIDxGaWx0ZXI+cmVuZGVy
aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2VkYmY0NGRhOWM2NmIzY2ViNzNi
ZWZjNDM5Y2ZhNTFjOGIzYjEzYy4uODAzOWZmZDhjM2Q4MmFlZjYxMzc5MjgwN2Y2YzViZTc0Njk0
M2FhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMjA2NSw2ICsyMDY1LDcgQEAKIAkJNTg5NTU2RUQxOEQ0QTQ0MDAwNzY0QjAz
IC8qIEJvcmRlckVkZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU4OTU1NkVDMThENEE0NDAwMDc2NEIwMyAvKiBCb3JkZXJFZGdlLmggKi87IH07CiAJ
CTU4QUVFMkY0MThENEJDQ0YwMDIyRTdGRSAvKiBCb3JkZXJFZGdlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU4QUVFMkYzMThENEJDQ0YwMDIyRTdG
RSAvKiBCb3JkZXJFZGdlLmNwcCAqLzsgfTsKIAkJNThDRDM1Q0IxOEVCNEMzOTAwQjlGM0FDIC8q
IEZsb2F0U2l6ZUhhc2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU4Q0QzNUNBMThFQjRDMzkwMEI5RjNBQyAvKiBGbG9hdFNpemVIYXNoLmggKi87IH07
CisJCTU4REVFRDg2MTk4NzNGRjAwMDg4OEZGMyAvKiBSZW5kZXJTZWxlY3Rpb25JbmZvLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU4REVFRDg1MTk4
NzNGRjAwMDg4OEZGMyAvKiBSZW5kZXJTZWxlY3Rpb25JbmZvLmNwcCAqLzsgfTsKIAkJNTkwNUFE
QkYxMzAyRjNDRTAwRjExNkRGIC8qIFhNTFRyZWVWaWV3ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTkwNUFEQkQxMzAyRjNDRTAwRjExNkRGIC8q
IFhNTFRyZWVWaWV3ZXIuY3BwICovOyB9OwogCQk1OTA1QURDMDEzMDJGM0NFMDBGMTE2REYgLyog
WE1MVHJlZVZpZXdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTkwNUFEQkUxMzAyRjNDRTAwRjExNkRGIC8qIFhNTFRyZWVWaWV3ZXIuaCAqLzsgfTsK
IAkJNTkwRTFCNDkxMUU0RUY0QjAwNjlGNzg0IC8qIERldmljZU9yaWVudGF0aW9uRGF0YS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTkwRTFCNDgxMUU0
RUY0QjAwNjlGNzg0IC8qIERldmljZU9yaWVudGF0aW9uRGF0YS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05MTgyLDYgKzkxODMsNyBAQAogCQk1
ODk1NTZFQzE4RDRBNDQwMDA3NjRCMDMgLyogQm9yZGVyRWRnZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBCb3JkZXJFZGdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU4QUVFMkYzMThENEJDQ0YwMDIyRTdGRSAvKiBCb3JkZXJFZGdlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJvcmRlckVkZ2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1OENEMzVDQTE4RUI0QzM5MDBCOUYzQUMgLyogRmxvYXRTaXplSGFz
aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbG9hdFNpemVIYXNoLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU4REVFRDg1MTk4NzNGRjAwMDg4OEZGMyAvKiBS
ZW5kZXJTZWxlY3Rpb25JbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJlbmRlclNlbGVjdGlvbkluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1OTA1QURCRDEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYTUxUcmVlVmlld2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTkwNUFEQkUxMzAyRjNDRTAwRjExNkRGIC8qIFhNTFRyZWVW
aWV3ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWE1MVHJlZVZpZXdlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTBFMUI0ODExRTRFRjRCMDA2OUY3ODQg
LyogRGV2aWNlT3JpZW50YXRpb25EYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERldmljZU9yaWVudGF0aW9uRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMjI0MjksNiArMjI0MzEsNyBAQAogCQkJCUJDM0JFOTk4MEU5QzFFNUQwMDgzNTU4OCAvKiBS
ZW5kZXJTY3JvbGxiYXJUaGVtZS5oICovLAogCQkJCTQ1OEZFNDA3MTU4OURGMEIwMDU2MDlFNiAv
KiBSZW5kZXJTZWFyY2hGaWVsZC5jcHAgKi8sCiAJCQkJNDU4RkU0MDgxNTg5REYwQjAwNTYwOUU2
IC8qIFJlbmRlclNlYXJjaEZpZWxkLmggKi8sCisJCQkJNThERUVEODUxOTg3M0ZGMDAwODg4RkYz
IC8qIFJlbmRlclNlbGVjdGlvbkluZm8uY3BwICovLAogCQkJCTBGMTFBNTRFMEYzOTIzMzEwMEMz
Nzg4NCAvKiBSZW5kZXJTZWxlY3Rpb25JbmZvLmggKi8sCiAJCQkJQUIyNDdBNkEwQUZENjM4MzAw
M0ZBNUZEIC8qIFJlbmRlclNsaWRlci5jcHAgKi8sCiAJCQkJQUIyNDdBNkIwQUZENjM4MzAwM0ZB
NUZEIC8qIFJlbmRlclNsaWRlci5oICovLApAQCAtMjc1NTEsNiArMjc1NTQsNyBAQAogCQkJCTg1
REY4MTJBMEFBNzc4NzIwMDQ4NkFENyAvKiBET01IVE1MSW1hZ2VFbGVtZW50Lm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODVGMzJBRUQwQUE2M0I4NzAwRkYzMTg0IC8qIERPTUhUTUxJbnB1dEVsZW1l
bnQubW0gaW4gU291cmNlcyAqLywKIAkJCQlBNjE0OEE2ODEyRTQxRDk0MDA0NEE3ODQgLyogRE9N
SFRNTEtleWdlbkVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQk1OERFRUQ4NjE5ODczRkYw
MDA4ODhGRjMgLyogUmVuZGVyU2VsZWN0aW9uSW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4
NUJBNENFMjBBQTY4NjFCMDA4ODA1MkQgLyogRE9NSFRNTExhYmVsRWxlbWVudC5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTg1QkE0Q0U0MEFBNjg2MUIwMDg4MDUyRCAvKiBET01IVE1MTGVnZW5kRWxl
bWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1QkE0RDEyMEFBNjg4NjgwMDg4MDUyRCAvKiBE
T01IVE1MTElFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU2VsZWN0aW9uSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU2VsZWN0aW9uSW5mby5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2IxMTk0YTM0Njdl
ZmVjOTJjYTRkNDVjZGNmYTlkYjUxMGI1ZTA0OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWxlY3Rpb25JbmZvLmNwcApAQCAtMCwwICsxLDcyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbmRlclNlbGVj
dGlvbkluZm8uaCIKKworI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitSZW5kZXJTZWxlY3Rpb25JbmZvQmFzZTo6UmVuZGVyU2VsZWN0aW9uSW5mb0Jhc2Uo
UmVuZGVyT2JqZWN0JiByZW5kZXJlcikKKyAgICA6IG1fcmVuZGVyZXIocmVuZGVyZXIpCisgICAg
LCBtX3JlcGFpbnRDb250YWluZXIocmVuZGVyZXIuY29udGFpbmVyRm9yUmVwYWludCgpKQorICAg
ICwgbV9zdGF0ZShyZW5kZXJlci5zZWxlY3Rpb25TdGF0ZSgpKQoreworfQorCit2b2lkIFJlbmRl
clNlbGVjdGlvbkluZm9CYXNlOjpyZXBhaW50UmVjdGFuZ2xlKGNvbnN0IExheW91dFJlY3QmIHJl
cGFpbnRSZWN0KQoreworICAgIG1fcmVuZGVyZXIucmVwYWludFVzaW5nQ29udGFpbmVyKG1fcmVw
YWludENvbnRhaW5lciwgZW5jbG9zaW5nSW50UmVjdChyZXBhaW50UmVjdCkpOworfQorCitSZW5k
ZXJTZWxlY3Rpb25JbmZvOjpSZW5kZXJTZWxlY3Rpb25JbmZvKFJlbmRlck9iamVjdCYgcmVuZGVy
ZXIsIGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQpCisgICAgOiBSZW5kZXJTZWxlY3Rpb25JbmZv
QmFzZShyZW5kZXJlcikKK3sKKyAgICBpZiAocmVuZGVyZXIuY2FuVXBkYXRlU2VsZWN0aW9uT25S
b290TGluZUJveGVzKCkpIHsKKyAgICAgICAgaWYgKHJlbmRlcmVyLmlzVGV4dCgpKQorICAgICAg
ICAgICAgbV9yZWN0ID0gdG9SZW5kZXJUZXh0KHJlbmRlcmVyKS5jb2xsZWN0U2VsZWN0aW9uUmVj
dHNGb3JMaW5lQm94ZXMobV9yZXBhaW50Q29udGFpbmVyLCBjbGlwVG9WaXNpYmxlQ29udGVudCwg
bV9jb2xsZWN0ZWRTZWxlY3Rpb25SZWN0cyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1f
cmVjdCA9IHJlbmRlcmVyLnNlbGVjdGlvblJlY3RGb3JSZXBhaW50KG1fcmVwYWludENvbnRhaW5l
ciwgY2xpcFRvVmlzaWJsZUNvbnRlbnQpOworICAgIH0KK30KKwordm9pZCBSZW5kZXJTZWxlY3Rp
b25JbmZvOjpyZXBhaW50KCkKK3sKKyAgICByZXBhaW50UmVjdGFuZ2xlKG1fcmVjdCk7Cit9CisK
K1JlbmRlckJsb2NrU2VsZWN0aW9uSW5mbzo6UmVuZGVyQmxvY2tTZWxlY3Rpb25JbmZvKFJlbmRl
ckJsb2NrJiByZW5kZXJlcikKKyAgICA6IFJlbmRlclNlbGVjdGlvbkluZm9CYXNlKHJlbmRlcmVy
KQorICAgICwgbV9yZWN0cyhyZW5kZXJlci5jYW5VcGRhdGVTZWxlY3Rpb25PblJvb3RMaW5lQm94
ZXMoKSA/IHJlbmRlcmVyLnNlbGVjdGlvbkdhcFJlY3RzRm9yUmVwYWludChtX3JlcGFpbnRDb250
YWluZXIpIDogR2FwUmVjdHMoKSkKK3sKK30KKwordm9pZCBSZW5kZXJCbG9ja1NlbGVjdGlvbklu
Zm86OnJlcGFpbnQoKQoreworICAgIHJlcGFpbnRSZWN0YW5nbGUobV9yZWN0cyk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTZWxlY3Rpb25JbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U2VsZWN0aW9uSW5mby5oCmluZGV4IDkzYWU3ZDljNTA4YWQxYTkyN2FlNWQ0ZTIzYTIzOGQyY2Jm
OGM4OGMuLjY4ODkxY2Y5NDQwNWZmOGYzYTM1NzU3MjQ1OWNiOWE4MDFhMTQyM2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWxlY3Rpb25JbmZvLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlbGVjdGlvbkluZm8uaApAQCAtMjYsNjQg
KzI2LDM5IEBACiAjZGVmaW5lIFJlbmRlclNlbGVjdGlvbkluZm9faAogCiAjaW5jbHVkZSAiR2Fw
UmVjdHMuaCIKLSNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIK
LSNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVuZGVyU2VsZWN0aW9uSW5mb0Jhc2UgewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFJlbmRlclNlbGVjdGlvbkluZm9CYXNlKTsgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgUmVuZGVyU2VsZWN0aW9uSW5mb0Jhc2UoKQot
ICAgICAgICA6IG1fb2JqZWN0KDApCi0gICAgICAgICwgbV9yZXBhaW50Q29udGFpbmVyKDApCi0g
ICAgICAgICwgbV9zdGF0ZShSZW5kZXJPYmplY3Q6OlNlbGVjdGlvbk5vbmUpCi0gICAgewotICAg
IH0KLQotICAgIGV4cGxpY2l0IFJlbmRlclNlbGVjdGlvbkluZm9CYXNlKFJlbmRlck9iamVjdCog
bykKLSAgICAgICAgOiBtX29iamVjdChvKQotICAgICAgICAsIG1fcmVwYWludENvbnRhaW5lcihv
LT5jb250YWluZXJGb3JSZXBhaW50KCkpCi0gICAgICAgICwgbV9zdGF0ZShvLT5zZWxlY3Rpb25T
dGF0ZSgpKQotICAgIHsKLSAgICB9Ci0gICAgCi0gICAgUmVuZGVyT2JqZWN0KiBvYmplY3QoKSBj
b25zdCB7IHJldHVybiBtX29iamVjdDsgfQorICAgIGV4cGxpY2l0IFJlbmRlclNlbGVjdGlvbklu
Zm9CYXNlKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpOwogICAgIFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIoKSBjb25zdCB7IHJldHVybiBtX3JlcGFpbnRDb250YWluZXI7
IH0KICAgICBSZW5kZXJPYmplY3Q6OlNlbGVjdGlvblN0YXRlIHN0YXRlKCkgY29uc3QgeyByZXR1
cm4gbV9zdGF0ZTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgUmVuZGVyT2JqZWN0KiBtX29iamVjdDsK
KyAgICB2b2lkIHJlcGFpbnRSZWN0YW5nbGUoY29uc3QgTGF5b3V0UmVjdCYgcmVwYWludFJlY3Qp
OworCisgICAgUmVuZGVyT2JqZWN0JiBtX3JlbmRlcmVyOwogICAgIFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIG1fcmVwYWludENvbnRhaW5lcjsKKworcHJpdmF0ZToKICAgICBSZW5kZXJPYmplY3Q6
OlNlbGVjdGlvblN0YXRlIG1fc3RhdGU7CiB9OwogCiAvLyBUaGlzIHN0cnVjdCBpcyB1c2VkIHdo
ZW4gdGhlIHNlbGVjdGlvbiBjaGFuZ2VzIHRvIGNhY2hlIHRoZSBvbGQgYW5kIG5ldyBzdGF0ZSBv
ZiB0aGUgc2VsZWN0aW9uIGZvciBlYWNoIFJlbmRlck9iamVjdC4KIGNsYXNzIFJlbmRlclNlbGVj
dGlvbkluZm8gOiBwdWJsaWMgUmVuZGVyU2VsZWN0aW9uSW5mb0Jhc2UgewogcHVibGljOgotICAg
IFJlbmRlclNlbGVjdGlvbkluZm8oUmVuZGVyT2JqZWN0KiBvLCBib29sIGNsaXBUb1Zpc2libGVD
b250ZW50KQotICAgICAgICA6IFJlbmRlclNlbGVjdGlvbkluZm9CYXNlKG8pCi0gICAgewotICAg
ICAgICBBU1NFUlQobyk7Ci0gICAgICAgIGlmIChvLT5jYW5VcGRhdGVTZWxlY3Rpb25PblJvb3RM
aW5lQm94ZXMoKSkgewotICAgICAgICAgICAgaWYgKG8tPmlzVGV4dCgpKQotICAgICAgICAgICAg
ICAgIG1fcmVjdCA9IHRvUmVuZGVyVGV4dCgqbykuY29sbGVjdFNlbGVjdGlvblJlY3RzRm9yTGlu
ZUJveGVzKG1fcmVwYWludENvbnRhaW5lciwgY2xpcFRvVmlzaWJsZUNvbnRlbnQsIG1fcmVjdHMp
OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG1fcmVjdCA9IG8tPnNlbGVjdGlv
blJlY3RGb3JSZXBhaW50KG1fcmVwYWludENvbnRhaW5lciwgY2xpcFRvVmlzaWJsZUNvbnRlbnQp
OwotICAgICAgICB9Ci0gICAgfQotICAgIAotICAgIHZvaWQgcmVwYWludCgpCi0gICAgewotICAg
ICAgICBtX29iamVjdC0+cmVwYWludFVzaW5nQ29udGFpbmVyKG1fcmVwYWludENvbnRhaW5lciwg
ZW5jbG9zaW5nSW50UmVjdChtX3JlY3QpKTsKLSAgICB9Ci0KLSAgICBjb25zdCBWZWN0b3I8TGF5
b3V0UmVjdD4mIHJlY3RzKCkgY29uc3QgeyByZXR1cm4gbV9yZWN0czsgfQorICAgIFJlbmRlclNl
bGVjdGlvbkluZm8oUmVuZGVyT2JqZWN0JiByZW5kZXJlciwgYm9vbCBjbGlwVG9WaXNpYmxlQ29u
dGVudCk7CisKKyAgICB2b2lkIHJlcGFpbnQoKTsKKyAgICBjb25zdCBWZWN0b3I8TGF5b3V0UmVj
dD4mIGNvbGxlY3RlZFNlbGVjdGlvblJlY3RzKCkgY29uc3QgeyByZXR1cm4gbV9jb2xsZWN0ZWRT
ZWxlY3Rpb25SZWN0czsgfQogICAgIExheW91dFJlY3QgcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1f
cmVjdDsgfQogCiBwcml2YXRlOgotICAgIFZlY3RvcjxMYXlvdXRSZWN0PiBtX3JlY3RzOworICAg
IFZlY3RvcjxMYXlvdXRSZWN0PiBtX2NvbGxlY3RlZFNlbGVjdGlvblJlY3RzOyAvLyByZWxhdGl2
ZSB0byByZXBhaW50IGNvbnRhaW5lcgogICAgIExheW91dFJlY3QgbV9yZWN0OyAvLyByZWxhdGl2
ZSB0byByZXBhaW50IGNvbnRhaW5lcgogfTsKIApAQCAtOTEsMTggKzY2LDkgQEAgcHJpdmF0ZToK
IC8vIFRoaXMgc3RydWN0IGlzIHVzZWQgd2hlbiB0aGUgc2VsZWN0aW9uIGNoYW5nZXMgdG8gY2Fj
aGUgdGhlIG9sZCBhbmQgbmV3IHN0YXRlIG9mIHRoZSBzZWxlY3Rpb24gZm9yIGVhY2ggUmVuZGVy
QmxvY2suCiBjbGFzcyBSZW5kZXJCbG9ja1NlbGVjdGlvbkluZm8gOiBwdWJsaWMgUmVuZGVyU2Vs
ZWN0aW9uSW5mb0Jhc2UgewogcHVibGljOgotICAgIGV4cGxpY2l0IFJlbmRlckJsb2NrU2VsZWN0
aW9uSW5mbyhSZW5kZXJCbG9jayogYikKLSAgICAgICAgOiBSZW5kZXJTZWxlY3Rpb25JbmZvQmFz
ZShiKQotICAgICAgICAsIG1fcmVjdHMoYi0+Y2FuVXBkYXRlU2VsZWN0aW9uT25Sb290TGluZUJv
eGVzKCkgPyBibG9jaygpLT5zZWxlY3Rpb25HYXBSZWN0c0ZvclJlcGFpbnQobV9yZXBhaW50Q29u
dGFpbmVyKSA6IEdhcFJlY3RzKCkpCi0gICAgeyAKLSAgICB9Ci0KLSAgICB2b2lkIHJlcGFpbnQo
KQotICAgIHsKLSAgICAgICAgbV9vYmplY3QtPnJlcGFpbnRVc2luZ0NvbnRhaW5lcihtX3JlcGFp
bnRDb250YWluZXIsIGVuY2xvc2luZ0ludFJlY3QobV9yZWN0cykpOwotICAgIH0KLSAgICAKLSAg
ICBSZW5kZXJCbG9jayogYmxvY2soKSBjb25zdCB7IHJldHVybiB0b1JlbmRlckJsb2NrKG1fb2Jq
ZWN0KTsgfQorICAgIGV4cGxpY2l0IFJlbmRlckJsb2NrU2VsZWN0aW9uSW5mbyhSZW5kZXJCbG9j
ayYgcmVuZGVyZXIpOworCisgICAgdm9pZCByZXBhaW50KCk7CiAgICAgR2FwUmVjdHMgcmVjdHMo
KSBjb25zdCB7IHJldHVybiBtX3JlY3RzOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggMjNhNGZmOGIwNGZkNzE5OTAzNzk0YjNkY2NjNTA3
OWViMWFkZTRkZi4uNTA0YTUzMmFjZGZkMWVjNTFhMGU3NDczNDYxY2Q2MTQ0OTQ3OWExNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApAQCAtNzUzLDEzICs3NTMsMTMg
QEAgTGF5b3V0UmVjdCBSZW5kZXJWaWV3OjpzdWJ0cmVlU2VsZWN0aW9uQm91bmRzKGNvbnN0IFNl
bGVjdGlvblN1YnRyZWVSb290JiByb290LAogICAgIHdoaWxlIChvcyAmJiBvcyAhPSBzdG9wKSB7
CiAgICAgICAgIGlmICgob3MtPmNhbkJlU2VsZWN0aW9uTGVhZigpIHx8IG9zID09IHJvb3Quc2Vs
ZWN0aW9uU3RhcnQoKSB8fCBvcyA9PSByb290LnNlbGVjdGlvbkVuZCgpKSAmJiBvcy0+c2VsZWN0
aW9uU3RhdGUoKSAhPSBTZWxlY3Rpb25Ob25lKSB7CiAgICAgICAgICAgICAvLyBCbG9ja3MgYXJl
IHJlc3BvbnNpYmxlIGZvciBwYWludGluZyBsaW5lIGdhcHMgYW5kIG1hcmdpbiBnYXBzLiBUaGV5
IG11c3QgYmUgZXhhbWluZWQgYXMgd2VsbC4KLSAgICAgICAgICAgIHNlbGVjdGVkT2JqZWN0cy5z
ZXQob3MsIHN0ZDo6bWFrZV91bmlxdWU8UmVuZGVyU2VsZWN0aW9uSW5mbz4ob3MsIGNsaXBUb1Zp
c2libGVDb250ZW50KSk7CisgICAgICAgICAgICBzZWxlY3RlZE9iamVjdHMuc2V0KG9zLCBzdGQ6
Om1ha2VfdW5pcXVlPFJlbmRlclNlbGVjdGlvbkluZm8+KCpvcywgY2xpcFRvVmlzaWJsZUNvbnRl
bnQpKTsKICAgICAgICAgICAgIFJlbmRlckJsb2NrKiBjYiA9IG9zLT5jb250YWluaW5nQmxvY2so
KTsKICAgICAgICAgICAgIHdoaWxlIChjYiAmJiAhY2ItPmlzUmVuZGVyVmlldygpKSB7CiAgICAg
ICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclNlbGVjdGlvbkluZm8+JiBibG9ja0lu
Zm8gPSBzZWxlY3RlZE9iamVjdHMuYWRkKGNiLCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CiAg
ICAgICAgICAgICAgICAgaWYgKGJsb2NrSW5mbykKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICAgICAgYmxvY2tJbmZvID0gc3RkOjptYWtlX3VuaXF1ZTxSZW5kZXJTZWxl
Y3Rpb25JbmZvPihjYiwgY2xpcFRvVmlzaWJsZUNvbnRlbnQpOworICAgICAgICAgICAgICAgIGJs
b2NrSW5mbyA9IHN0ZDo6bWFrZV91bmlxdWU8UmVuZGVyU2VsZWN0aW9uSW5mbz4oKmNiLCBjbGlw
VG9WaXNpYmxlQ29udGVudCk7CiAgICAgICAgICAgICAgICAgY2IgPSBjYi0+Y29udGFpbmluZ0Js
b2NrKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTgwNSwxMyArODA1LDEzIEBAIHZv
aWQgUmVuZGVyVmlldzo6cmVwYWludFN1YnRyZWVTZWxlY3Rpb24oY29uc3QgU2VsZWN0aW9uU3Vi
dHJlZVJvb3QmIHJvb3QpIGNvbnN0CiAgICAgICAgIGlmIChvLT5zZWxlY3Rpb25TdGF0ZSgpID09
IFNlbGVjdGlvbk5vbmUpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBSZW5kZXJT
ZWxlY3Rpb25JbmZvKG8sIHRydWUpLnJlcGFpbnQoKTsKKyAgICAgICAgUmVuZGVyU2VsZWN0aW9u
SW5mbygqbywgdHJ1ZSkucmVwYWludCgpOwogCiAgICAgICAgIC8vIEJsb2NrcyBhcmUgcmVzcG9u
c2libGUgZm9yIHBhaW50aW5nIGxpbmUgZ2FwcyBhbmQgbWFyZ2luIGdhcHMuIFRoZXkgbXVzdCBi
ZSBleGFtaW5lZCBhcyB3ZWxsLgogICAgICAgICBmb3IgKFJlbmRlckJsb2NrKiBibG9jayA9IG8t
PmNvbnRhaW5pbmdCbG9jaygpOyBibG9jayAmJiAhYmxvY2stPmlzUmVuZGVyVmlldygpOyBibG9j
ayA9IGJsb2NrLT5jb250YWluaW5nQmxvY2soKSkgewogICAgICAgICAgICAgaWYgKCFwcm9jZXNz
ZWRCbG9ja3MuYWRkKGJsb2NrKS5pc05ld0VudHJ5KQogICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgUmVuZGVyU2VsZWN0aW9uSW5mbyhibG9jaywgdHJ1ZSkucmVwYWludCgpOwor
ICAgICAgICAgICAgUmVuZGVyU2VsZWN0aW9uSW5mbygqYmxvY2ssIHRydWUpLnJlcGFpbnQoKTsK
ICAgICAgICAgfQogICAgIH0KIH0KQEAgLTk1NCwxNCArOTU0LDE0IEBAIHZvaWQgUmVuZGVyVmll
dzo6Y2xlYXJTdWJ0cmVlU2VsZWN0aW9uKGNvbnN0IFNlbGVjdGlvblN1YnRyZWVSb290JiByb290
LCBTZWxlY3RpCiAgICAgICAgIGlmICgob3MtPmNhbkJlU2VsZWN0aW9uTGVhZigpIHx8IG9zID09
IHJvb3Quc2VsZWN0aW9uU3RhcnQoKSB8fCBvcyA9PSByb290LnNlbGVjdGlvbkVuZCgpKQogICAg
ICAgICAgICAgJiYgb3MtPnNlbGVjdGlvblN0YXRlKCkgIT0gU2VsZWN0aW9uTm9uZSkgewogICAg
ICAgICAgICAgLy8gQmxvY2tzIGFyZSByZXNwb25zaWJsZSBmb3IgcGFpbnRpbmcgbGluZSBnYXBz
IGFuZCBtYXJnaW4gZ2Fwcy4gIFRoZXkgbXVzdCBiZSBleGFtaW5lZCBhcyB3ZWxsLgotICAgICAg
ICAgICAgb2xkU2VsZWN0aW9uRGF0YS5zZWxlY3RlZE9iamVjdHMuc2V0KG9zLCBzdGQ6Om1ha2Vf
dW5pcXVlPFJlbmRlclNlbGVjdGlvbkluZm8+KG9zLCB0cnVlKSk7CisgICAgICAgICAgICBvbGRT
ZWxlY3Rpb25EYXRhLnNlbGVjdGVkT2JqZWN0cy5zZXQob3MsIHN0ZDo6bWFrZV91bmlxdWU8UmVu
ZGVyU2VsZWN0aW9uSW5mbz4oKm9zLCB0cnVlKSk7CiAgICAgICAgICAgICBpZiAoYmxvY2tSZXBh
aW50TW9kZSA9PSBSZXBhaW50TmV3WE9ST2xkKSB7CiAgICAgICAgICAgICAgICAgUmVuZGVyQmxv
Y2sqIGNiID0gb3MtPmNvbnRhaW5pbmdCbG9jaygpOwogICAgICAgICAgICAgICAgIHdoaWxlIChj
YiAmJiAhY2ItPmlzUmVuZGVyVmlldygpKSB7CiAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dW5p
cXVlX3B0cjxSZW5kZXJCbG9ja1NlbGVjdGlvbkluZm8+JiBibG9ja0luZm8gPSBvbGRTZWxlY3Rp
b25EYXRhLnNlbGVjdGVkQmxvY2tzLmFkZChjYiwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOwog
ICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2tJbmZvKQogICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGJsb2NrSW5mbyA9IHN0ZDo6bWFrZV91bmlx
dWU8UmVuZGVyQmxvY2tTZWxlY3Rpb25JbmZvPihjYik7CisgICAgICAgICAgICAgICAgICAgIGJs
b2NrSW5mbyA9IHN0ZDo6bWFrZV91bmlxdWU8UmVuZGVyQmxvY2tTZWxlY3Rpb25JbmZvPigqY2Ip
OwogICAgICAgICAgICAgICAgICAgICBjYiA9IGNiLT5jb250YWluaW5nQmxvY2soKTsKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC0xMDA4LDEwICsxMDA4LDEwIEBAIHZvaWQg
UmVuZGVyVmlldzo6YXBwbHlTdWJ0cmVlU2VsZWN0aW9uKFNlbGVjdGlvblN1YnRyZWVSb290JiBy
b290LCBSZW5kZXJPYmplY3QqCiAgICAgc2VsZWN0aW9uSXRlcmF0b3IgPSBTZWxlY3Rpb25JdGVy
YXRvcihvKTsKICAgICB3aGlsZSAobyAmJiBvICE9IHN0b3ApIHsKICAgICAgICAgaWYgKChvLT5j
YW5CZVNlbGVjdGlvbkxlYWYoKSB8fCBvID09IHN0YXJ0IHx8IG8gPT0gZW5kKSAmJiBvLT5zZWxl
Y3Rpb25TdGF0ZSgpICE9IFNlbGVjdGlvbk5vbmUpIHsKLSAgICAgICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxSZW5kZXJTZWxlY3Rpb25JbmZvPiBzZWxlY3Rpb25JbmZvID0gc3RkOjptYWtlX3VuaXF1
ZTxSZW5kZXJTZWxlY3Rpb25JbmZvPihvLCB0cnVlKTsKKyAgICAgICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxSZW5kZXJTZWxlY3Rpb25JbmZvPiBzZWxlY3Rpb25JbmZvID0gc3RkOjptYWtlX3VuaXF1
ZTxSZW5kZXJTZWxlY3Rpb25JbmZvPigqbywgdHJ1ZSk7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9D
T05UUk9MUykKLSAgICAgICAgICAgIGZvciAoYXV0byYgcmVjdCA6IHNlbGVjdGlvbkluZm8tPnJl
Y3RzKCkpCisgICAgICAgICAgICBmb3IgKGF1dG8mIHJlY3QgOiBzZWxlY3Rpb25JbmZvLT5jb2xs
ZWN0ZWRTZWxlY3Rpb25SZWN0cygpKQogICAgICAgICAgICAgICAgIG1fc2VsZWN0aW9uUmVjdEdh
dGhlcmVyLmFkZFJlY3QocmVjdCk7CiAjZW5kaWYKIApAQCAtMTAyMiw3ICsxMDIyLDcgQEAgdm9p
ZCBSZW5kZXJWaWV3OjphcHBseVN1YnRyZWVTZWxlY3Rpb24oU2VsZWN0aW9uU3VidHJlZVJvb3Qm
IHJvb3QsIFJlbmRlck9iamVjdCoKICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVu
ZGVyQmxvY2tTZWxlY3Rpb25JbmZvPiYgYmxvY2tJbmZvID0gbmV3U2VsZWN0ZWRCbG9ja3MuYWRk
KGNiLCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CiAgICAgICAgICAgICAgICAgaWYgKGJsb2Nr
SW5mbykKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgYmxvY2tJ
bmZvID0gc3RkOjptYWtlX3VuaXF1ZTxSZW5kZXJCbG9ja1NlbGVjdGlvbkluZm8+KGNiKTsKKyAg
ICAgICAgICAgICAgICBibG9ja0luZm8gPSBzdGQ6Om1ha2VfdW5pcXVlPFJlbmRlckJsb2NrU2Vs
ZWN0aW9uSW5mbz4oKmNiKTsKICAgICAgICAgICAgICAgICBjYiA9IGNiLT5jb250YWluaW5nQmxv
Y2soKTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcmluZ0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJpbmdBbGxJbk9uZS5jcHAKaW5kZXggNjE3NTg5YjdlOGEyODc4OGEy
ZjRiYzUxNzBmM2YyYjE1YjcyMjg0ZS4uZTg3OWQwZDNhMGI0MWIyNjU0ODM4MjZkOWY1YTkyMWQ5
MWQyY2NmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcmluZ0Fs
bEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyaW5nQWxsSW5P
bmUuY3BwCkBAIC05Niw2ICs5Niw3IEBACiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xsYmFyUGFydC5j
cHAiCiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xsYmFyVGhlbWUuY3BwIgogI2luY2x1ZGUgIlJlbmRl
clNlYXJjaEZpZWxkLmNwcCIKKyNpbmNsdWRlICJSZW5kZXJTZWxlY3Rpb25JbmZvLmNwcCIKICNp
bmNsdWRlICJSZW5kZXJTbGlkZXIuY3BwIgogI2luY2x1ZGUgIlJlbmRlclNuYXBzaG90dGVkUGx1
Z0luLmNwcCIKICNpbmNsdWRlICJSZW5kZXJUYWJsZS5jcHAiCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>