<?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>137727</bug_id>
          
          <creation_ts>2014-10-14 18:56:24 -0700</creation_ts>
          <short_desc>Use is&lt;&gt;() / downcast&lt;&gt;() for RenderTextControl / RenderTextControlSingleLine</short_desc>
          <delta_ts>2014-10-15 10:36:48 -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>
          <dependson>137424</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>kling</cc>
    
    <cc>mihnea</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1041757</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-14 18:56:24 -0700</bug_when>
    <thetext>Use is&lt;&gt;() / downcast&lt;&gt;() for RenderTextControl / RenderTextControlSingleLine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041760</commentid>
    <comment_count>1</comment_count>
      <attachid>239838</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-14 19:00:21 -0700</bug_when>
    <thetext>Created attachment 239838
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041862</commentid>
    <comment_count>2</comment_count>
      <attachid>239838</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-10-15 09:18:23 -0700</bug_when>
    <thetext>Comment on attachment 239838
Patch

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

&gt; Source/WebCore/page/EventHandler.cpp:3696
&gt; +        if (auto* renderer = element-&gt;renderer()) {
&gt; +            if (is&lt;RenderTextControlSingleLine&gt;(renderer))

Should either use *renderer here, or eliminate the if that checks renderer for null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041884</commentid>
    <comment_count>3</comment_count>
      <attachid>239875</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-15 10:16:55 -0700</bug_when>
    <thetext>Created attachment 239875
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041891</commentid>
    <comment_count>4</comment_count>
      <attachid>239875</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-15 10:36:43 -0700</bug_when>
    <thetext>Comment on attachment 239875
Patch

Clearing flags on attachment: 239875

Committed r174732: &lt;http://trac.webkit.org/changeset/174732&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041892</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-15 10:36:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239838</attachid>
            <date>2014-10-14 19:00:21 -0700</date>
            <delta_ts>2014-10-15 10:16:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137727-20141014190028.patch</filename>
            <type>text/plain</type>
            <size>17128</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0NzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDc2MDJmZjY0NWQ4MDY4
ZDg0MmNjYzhlNWVhNTNlMmJhYTY4NjI0MC4uMzQ2ZmFmYzAxYWZkNTFjMmY4ZTAzNjZkY2E3ZWY0
Y2I3MzI4MjA4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE0LTEwLTE0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGlzPD4oKSAvIGRvd25j
YXN0PD4oKSBmb3IgUmVuZGVyVGV4dENvbnRyb2wgLyBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxp
bmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzcy
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBp
czw+KCkgLyBkb3duY2FzdDw+KCkgZm9yIFJlbmRlclRleHRDb250cm9sIC8gUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hh
bmdlLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNlbGVj
dGVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpz
ZWxlY3RlZFRleHRSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojp2aXNpYmxlUG9zaXRpb25Gb3JJbmRleCk6CisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjppbmRleEZvclZpc2libGVQb3NpdGlv
bik6CisgICAgICAgICogZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dEl0ZXJhdG9yOjpoYW5kbGVSZXBsYWNlZEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwv
VGV4dEZpZWxkSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0
VHlwZTo6Zm9yd2FyZEV2ZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9UZXh0Q29udHJvbElu
bmVyRWxlbWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvbnRyb2xJbm5lckVsZW1l
bnQ6OmN1c3RvbVN0eWxlRm9yUmVuZGVyZXIpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6Y2Fwc0xvY2tTdGF0ZU1heUhh
dmVDaGFuZ2VkKToKKyAgICAgICAgKiBwYWdlL2lvcy9GcmFtZUlPUy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OmFuY2VzdG9yUmVzcG9uZGluZ1RvU2Nyb2xsV2hlZWxFdmVudHMpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvU2ltcGxlTGlu
ZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVMaW5lTGF5b3V0OjpjYW5Vc2VG
b3IpOgorCiAyMDE0LTEwLTE0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJFR1JFU1NJT04gKHIxNTkyMDgpOiBDcmFzaCB3aGVuIGNsaWNraW5nIHNjcnViYmVy
IGFmdGVyIG5hdmlnYXRpbmcgYXdheS9iYWNrIHRvIHZpZGVvCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cKaW5kZXgg
MzYwMDgxNjM2ZTAzODlhNGY4MjI3M2M1NTBkNDMwYmQ4OWVhNmRlMi4uZjFkNzk4NGY4MTM5ODZi
YTcyNTdjNjBjY2NiZmNiZmVjOTNjNWRmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3Mv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDE0LTEwLTE0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgVXNlIGlzPD4oKSAvIGRvd25jYXN0PD4oKSBmb3IgUmVuZGVyVGV4dENvbnRyb2wgLyBSZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzNzcyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVzZSBpczw+KCkgLyBkb3duY2FzdDw+KCkgZm9yIFJlbmRlclRleHRD
b250cm9sIC8gUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViVmlzaWJsZVBvc2l0aW9uLm1tOgorICAgICAgICAoLVtET01IVE1MSW5wdXRF
bGVtZW50IHN0YXJ0UG9zaXRpb25dKToKKyAgICAgICAgKC1bRE9NSFRNTElucHV0RWxlbWVudCBl
bmRQb3NpdGlvbl0pOgorICAgICAgICAoLVtET01IVE1MVGV4dEFyZWFFbGVtZW50IHN0YXJ0UG9z
aXRpb25dKToKKyAgICAgICAgKC1bRE9NSFRNTFRleHRBcmVhRWxlbWVudCBlbmRQb3NpdGlvbl0p
OgorCiAyMDE0LTEwLTAzICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgog
CiAgICAgICAgIFJFR1JFU1NJT04gKHIxNjU4OTYpOiBVSVdlYlZpZXcgUERGcyBoYXZlIGEgZm9y
Y2VkIGJsYWNrIGJhY2tncm91bmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IGE5OThjYTI3ZDdj
ZTQ5ODhmMGQ2MTQzMmJjY2RmNGUwYjU5M2NiNzcuLjJkNTYwMGJkMGQ5MTI0NmMzZDg2YzU1OGMw
NjAyZTY5MmRkYjVmNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMTQzOCw3ICsxNDM4LDcg
QEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNlbGVjdGVkVGV4dCgpIGNvbnN0
CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsgLy8gbmVlZCB0byByZXR1cm4gc29tZXRoaW5nIGRp
c3RpbmN0IGZyb20gZW1wdHkgc3RyaW5nCiAgICAgCiAgICAgaWYgKGlzTmF0aXZlVGV4dENvbnRy
b2woKSkgewotICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENvbnRyb2wg
PSB0b1JlbmRlclRleHRDb250cm9sKG1fcmVuZGVyZXIpLT50ZXh0Rm9ybUNvbnRyb2xFbGVtZW50
KCk7CisgICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50JiB0ZXh0Q29udHJvbCA9IGRv
d25jYXN0PFJlbmRlclRleHRDb250cm9sPigqbV9yZW5kZXJlcikudGV4dEZvcm1Db250cm9sRWxl
bWVudCgpOwogICAgICAgICByZXR1cm4gdGV4dENvbnRyb2wuc2VsZWN0ZWRUZXh0KCk7CiAgICAg
fQogICAgIApAQCAtMTQ2Nyw3ICsxNDY3LDcgQEAgUGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRUZXh0UmFuZ2UoKSBjb25zdAogICAgIAogICAgIEFjY2Vz
c2liaWxpdHlSb2xlIGFyaWFSb2xlID0gYXJpYVJvbGVBdHRyaWJ1dGUoKTsKICAgICBpZiAoaXNO
YXRpdmVUZXh0Q29udHJvbCgpICYmIGFyaWFSb2xlID09IFVua25vd25Sb2xlKSB7Ci0gICAgICAg
IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50JiB0ZXh0Q29udHJvbCA9IHRvUmVuZGVyVGV4dENv
bnRyb2wobV9yZW5kZXJlciktPnRleHRGb3JtQ29udHJvbEVsZW1lbnQoKTsKKyAgICAgICAgSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQmIHRleHRDb250cm9sID0gZG93bmNhc3Q8UmVuZGVyVGV4
dENvbnRyb2w+KCptX3JlbmRlcmVyKS50ZXh0Rm9ybUNvbnRyb2xFbGVtZW50KCk7CiAgICAgICAg
IHJldHVybiBQbGFpblRleHRSYW5nZSh0ZXh0Q29udHJvbC5zZWxlY3Rpb25TdGFydCgpLCB0ZXh0
Q29udHJvbC5zZWxlY3Rpb25FbmQoKSAtIHRleHRDb250cm9sLnNlbGVjdGlvblN0YXJ0KCkpOwog
ICAgIH0KICAgICAKQEAgLTE0NzcsNyArMTQ3Nyw3IEBAIFBsYWluVGV4dFJhbmdlIEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OnNlbGVjdGVkVGV4dFJhbmdlKCkgY29uc3QKIHZvaWQgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UoY29uc3QgUGxhaW5UZXh0
UmFuZ2UmIHJhbmdlKQogewogICAgIGlmIChpc05hdGl2ZVRleHRDb250cm9sKCkpIHsKLSAgICAg
ICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQmIHRleHRDb250cm9sID0gdG9SZW5kZXJUZXh0
Q29udHJvbChtX3JlbmRlcmVyKS0+dGV4dEZvcm1Db250cm9sRWxlbWVudCgpOworICAgICAgICBI
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENvbnRyb2wgPSBkb3duY2FzdDxSZW5kZXJU
ZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIpLnRleHRGb3JtQ29udHJvbEVsZW1lbnQoKTsKICAgICAg
ICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0aW9uUmFuZ2UocmFuZ2Uuc3RhcnQsIHJhbmdlLnN0YXJ0
ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE4MzEsOSArMTgz
MSw5IEBAIFZpc2libGVQb3NpdGlvbiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp2aXNpYmxl
UG9zaXRpb25Gb3JJbmRleChpbnQgaW5kZXgpIGNvCiAgICAgICAgIHJldHVybiBWaXNpYmxlUG9z
aXRpb24oKTsKIAogICAgIGlmIChpc05hdGl2ZVRleHRDb250cm9sKCkpCi0gICAgICAgIHJldHVy
biB0b1JlbmRlclRleHRDb250cm9sKG1fcmVuZGVyZXIpLT50ZXh0Rm9ybUNvbnRyb2xFbGVtZW50
KCkudmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoaW5kZXgpOworICAgICAgICByZXR1cm4gZG93bmNh
c3Q8UmVuZGVyVGV4dENvbnRyb2w+KCptX3JlbmRlcmVyKS50ZXh0Rm9ybUNvbnRyb2xFbGVtZW50
KCkudmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoaW5kZXgpOwogCi0gICAgaWYgKCFhbGxvd3NUZXh0
UmFuZ2VzKCkgJiYgIW1fcmVuZGVyZXItPmlzVGV4dCgpKQorICAgIGlmICghYWxsb3dzVGV4dFJh
bmdlcygpICYmICFpczxSZW5kZXJUZXh0PigqbV9yZW5kZXJlcikpCiAgICAgICAgIHJldHVybiBW
aXNpYmxlUG9zaXRpb24oKTsKICAgICAKICAgICBOb2RlKiBub2RlID0gbV9yZW5kZXJlci0+bm9k
ZSgpOwpAQCAtMTg0Niw3ICsxODQ2LDcgQEAgVmlzaWJsZVBvc2l0aW9uIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OnZpc2libGVQb3NpdGlvbkZvckluZGV4KGludCBpbmRleCkgY28KIGludCBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjppbmRleEZvclZpc2libGVQb3NpdGlvbihjb25zdCBW
aXNpYmxlUG9zaXRpb24mIHBvcykgY29uc3QKIHsKICAgICBpZiAoaXNOYXRpdmVUZXh0Q29udHJv
bCgpKQotICAgICAgICByZXR1cm4gdG9SZW5kZXJUZXh0Q29udHJvbChtX3JlbmRlcmVyKS0+dGV4
dEZvcm1Db250cm9sRWxlbWVudCgpLmluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKHBvcyk7CisgICAg
ICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIpLnRleHRG
b3JtQ29udHJvbEVsZW1lbnQoKS5pbmRleEZvclZpc2libGVQb3NpdGlvbihwb3MpOwogCiAgICAg
aWYgKCFpc1RleHRDb250cm9sKCkpCiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UZXh0SXRlcmF0b3IuY3BwCmluZGV4IGIzODlmMGY5MGY2ZWZlMTEzNDhhZmYzNDU4NWQz
YjZjMDU4YzVmOTIuLjQ4NzVhOTBhMDExMmFmY2EzZjQ1M2EwOGUxMTZmZjI3YjY5NDUzYzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKQEAgLTcyOCw4ICs3MjgsOCBA
QCBib29sIFRleHRJdGVyYXRvcjo6aGFuZGxlUmVwbGFjZWRFbGVtZW50KCkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KIAotICAgIGlmICgobV9iZWhhdmlvciAmIFRleHRJdGVyYXRvckVu
dGVyc1RleHRDb250cm9scykgJiYgcmVuZGVyZXIuaXNUZXh0Q29udHJvbCgpKSB7Ci0gICAgICAg
IGlmIChUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQqIGlubmVyVGV4dEVsZW1lbnQgPSB0b1Jl
bmRlclRleHRDb250cm9sKHJlbmRlcmVyKS50ZXh0Rm9ybUNvbnRyb2xFbGVtZW50KCkuaW5uZXJU
ZXh0RWxlbWVudCgpKSB7CisgICAgaWYgKChtX2JlaGF2aW9yICYgVGV4dEl0ZXJhdG9yRW50ZXJz
VGV4dENvbnRyb2xzKSAmJiBpczxSZW5kZXJUZXh0Q29udHJvbD4ocmVuZGVyZXIpKSB7CisgICAg
ICAgIGlmIChUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQqIGlubmVyVGV4dEVsZW1lbnQgPSBk
b3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbD4ocmVuZGVyZXIpLnRleHRGb3JtQ29udHJvbEVsZW1l
bnQoKS5pbm5lclRleHRFbGVtZW50KCkpIHsKICAgICAgICAgICAgIG1fbm9kZSA9IGlubmVyVGV4
dEVsZW1lbnQtPmNvbnRhaW5pbmdTaGFkb3dSb290KCk7CiAgICAgICAgICAgICBwdXNoRnVsbHlD
bGlwcGVkU3RhdGUobV9mdWxseUNsaXBwZWRTdGFjaywgKm1fbm9kZSk7CiAgICAgICAgICAgICBt
X29mZnNldCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAK
aW5kZXggMGM4ODkwOGJhOGVjOGViZmI2MWJkZTg1ODc3YzRmNDVmNzZmMzdmMC4uOGE5MjU4ZThh
OWY5MDNjODkyMDIwMjEwOWRhNTZmZDEyYjUyZWNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGV4dEZpZWxkSW5wdXRUeXBlLmNwcApAQCAtMTgwLDE4ICsxODAsMTggQEAgdm9pZCBUZXh0Rmll
bGRJbnB1dFR5cGU6OmZvcndhcmRFdmVudChFdmVudCogZXZlbnQpCiAgICAgICAgIGVsZW1lbnQo
KS5kb2N1bWVudCgpLnVwZGF0ZVN0eWxlSWZOZWVkZWRGb3JOb2RlKGVsZW1lbnQoKSk7CiAKICAg
ICAgICAgaWYgKGVsZW1lbnQoKS5yZW5kZXJlcigpKSB7Ci0gICAgICAgICAgICBSZW5kZXJUZXh0
Q29udHJvbFNpbmdsZUxpbmUqIHJlbmRlclRleHRDb250cm9sID0gdG9SZW5kZXJUZXh0Q29udHJv
bFNpbmdsZUxpbmUoZWxlbWVudCgpLnJlbmRlcmVyKCkpOworICAgICAgICAgICAgUmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lJiByZW5kZXJUZXh0Q29udHJvbCA9IGRvd25jYXN0PFJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZT4oKmVsZW1lbnQoKS5yZW5kZXJlcigpKTsKICAgICAgICAgICAg
IGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5ibHVyRXZlbnQpIHsKICAgICAgICAg
ICAgICAgICBpZiAoUmVuZGVyVGV4dENvbnRyb2xJbm5lckJsb2NrKiBpbm5lclRleHRSZW5kZXJl
ciA9IGlubmVyVGV4dEVsZW1lbnQoKS0+cmVuZGVyZXIoKSkgewogICAgICAgICAgICAgICAgICAg
ICBpZiAoUmVuZGVyTGF5ZXIqIGlubmVyTGF5ZXIgPSBpbm5lclRleHRSZW5kZXJlci0+bGF5ZXIo
KSkgewotICAgICAgICAgICAgICAgICAgICAgICAgSW50U2l6ZSBzY3JvbGxPZmZzZXQoIXJlbmRl
clRleHRDb250cm9sLT5zdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IGlubmVyTGF5
ZXItPnNjcm9sbFdpZHRoKCkgOiAwLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEludFNp
emUgc2Nyb2xsT2Zmc2V0KCFyZW5kZXJUZXh0Q29udHJvbC5zdHlsZSgpLmlzTGVmdFRvUmlnaHRE
aXJlY3Rpb24oKSA/IGlubmVyTGF5ZXItPnNjcm9sbFdpZHRoKCkgOiAwLCAwKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgIGlubmVyTGF5ZXItPnNjcm9sbFRvT2Zmc2V0KHNjcm9sbE9mZnNldCwg
UmVuZGVyTGF5ZXI6OlNjcm9sbE9mZnNldENsYW1wZWQpOwogICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgcmVuZGVyVGV4dENvbnRyb2wt
PmNhcHNMb2NrU3RhdGVNYXlIYXZlQ2hhbmdlZCgpOworICAgICAgICAgICAgICAgIHJlbmRlclRl
eHRDb250cm9sLmNhcHNMb2NrU3RhdGVNYXlIYXZlQ2hhbmdlZCgpOwogICAgICAgICAgICAgfSBl
bHNlIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50KQotICAgICAg
ICAgICAgICAgIHJlbmRlclRleHRDb250cm9sLT5jYXBzTG9ja1N0YXRlTWF5SGF2ZUNoYW5nZWQo
KTsKKyAgICAgICAgICAgICAgICByZW5kZXJUZXh0Q29udHJvbC5jYXBzTG9ja1N0YXRlTWF5SGF2
ZUNoYW5nZWQoKTsKIAogICAgICAgICAgICAgZWxlbWVudCgpLmZvcndhcmRFdmVudChldmVudCk7
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRD
b250cm9sSW5uZXJFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0
Q29udHJvbElubmVyRWxlbWVudHMuY3BwCmluZGV4IDRlMjIxODYwNjYyNWUzODQ0Y2EwZGI2YWRj
OGI5ZWVmMjU4NjZjZTAuLjMyMmFiZWIyYzBjZjAzYjJlYzVhNTk1YjlhMzNhZjNkN2I1NmRiZDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJF
bGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJ
bm5lckVsZW1lbnRzLmNwcApAQCAtNzQsOCArNzQsOCBAQCBQYXNzUmVmUHRyPFRleHRDb250cm9s
SW5uZXJFbGVtZW50PiBUZXh0Q29udHJvbElubmVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBk
bwogCiBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBUZXh0Q29udHJvbElubmVyRWxlbWVudDo6Y3Vz
dG9tU3R5bGVGb3JSZW5kZXJlcihSZW5kZXJTdHlsZSYpCiB7Ci0gICAgUmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lKiBwYXJlbnRSZW5kZXJlciA9IHRvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lKHNoYWRvd0hvc3QoKS0+cmVuZGVyZXIoKSk7Ci0gICAgcmV0dXJuIHBhcmVudFJlbmRlcmVy
LT5jcmVhdGVJbm5lckJsb2NrU3R5bGUoJnBhcmVudFJlbmRlcmVyLT5zdHlsZSgpKTsKKyAgICBS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUmIHBhcmVudFJlbmRlcmVyID0gZG93bmNhc3Q8UmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lPigqc2hhZG93SG9zdCgpLT5yZW5kZXJlcigpKTsKKyAg
ICByZXR1cm4gcGFyZW50UmVuZGVyZXIuY3JlYXRlSW5uZXJCbG9ja1N0eWxlKCZwYXJlbnRSZW5k
ZXJlci5zdHlsZSgpKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggOTk1OGEwM2MyODVkZDA5MjJmNGM2Yzg4
M2ZmYTFkODQzYTc1NTk4YS4uN2Y0YzU5NjVkNjUzZDVmMTBkYWVlZTVjZjNiNTJjMzlkNjVjZjBm
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzY5MCwxMSArMzY5MCwx
MSBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZGVmYXVsdFRhYkV2ZW50SGFuZGxlcihLZXlib2FyZEV2
ZW50KiBldmVudCkKIAogdm9pZCBFdmVudEhhbmRsZXI6OmNhcHNMb2NrU3RhdGVNYXlIYXZlQ2hh
bmdlZCgpCiB7Ci0gICAgRG9jdW1lbnQqIGQgPSBtX2ZyYW1lLmRvY3VtZW50KCk7Ci0gICAgaWYg
KEVsZW1lbnQqIGVsZW1lbnQgPSBkLT5mb2N1c2VkRWxlbWVudCgpKSB7Ci0gICAgICAgIGlmIChS
ZW5kZXJPYmplY3QqIHIgPSBlbGVtZW50LT5yZW5kZXJlcigpKSB7Ci0gICAgICAgICAgICBpZiAo
ci0+aXNUZXh0RmllbGQoKSkKLSAgICAgICAgICAgICAgICB0b1JlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZShyKS0+Y2Fwc0xvY2tTdGF0ZU1heUhhdmVDaGFuZ2VkKCk7CisgICAgRG9jdW1lbnQq
IGRvY3VtZW50ID0gbV9mcmFtZS5kb2N1bWVudCgpOworICAgIGlmIChhdXRvKiBlbGVtZW50ID0g
ZG9jdW1lbnQtPmZvY3VzZWRFbGVtZW50KCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIHJlbmRlcmVy
ID0gZWxlbWVudC0+cmVuZGVyZXIoKSkgeworICAgICAgICAgICAgaWYgKGlzPFJlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZT4ocmVuZGVyZXIpKQorICAgICAgICAgICAgICAgIGRvd25jYXN0PFJl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZT4oKnJlbmRlcmVyKS5jYXBzTG9ja1N0YXRlTWF5SGF2
ZUNoYW5nZWQoKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvaW9zL0ZyYW1lSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRnJhbWVJ
T1MubW0KaW5kZXggNjRiNmJmYzJhYWFlMTc0YzQwYmJhOWNkYjhlODVjYWMxZGYwY2M0My4uOTE3
ZTAyMTE3OGM5ODUxNjE4ODlhM2Q2MTJiMTM5MzhlNGUxODEwOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9pb3MvRnJhbWVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9p
b3MvRnJhbWVJT1MubW0KQEAgLTI5Myw3ICsyOTMsNyBAQCBzdGF0aWMgTm9kZSogYW5jZXN0b3JS
ZXNwb25kaW5nVG9TY3JvbGxXaGVlbEV2ZW50cyhjb25zdCBIaXRUZXN0UmVzdWx0JiBoaXRUZXN0
UgogICAgICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAg
ICAgaWYgKChyZW5kZXJlci0+aXNUZXh0RmllbGQoKSB8fCByZW5kZXJlci0+aXNUZXh0QXJlYSgp
KSAmJiB0b1JlbmRlclRleHRDb250cm9sKHJlbmRlcmVyKS0+Y2FuU2Nyb2xsKCkpIHsKKyAgICAg
ICAgaWYgKChyZW5kZXJlci0+aXNUZXh0RmllbGQoKSB8fCByZW5kZXJlci0+aXNUZXh0QXJlYSgp
KSAmJiBkb3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbD4oKnJlbmRlcmVyKS5jYW5TY3JvbGwoKSkg
ewogICAgICAgICAgICAgc2Nyb2xsaW5nQW5jZXN0b3IgPSBub2RlOwogICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0Q29udHJvbC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRD
b250cm9sLmgKaW5kZXggYjljMmEzNzM4OThmZGM3MWJkODdmZDVmOTAzNGM5ZDQ1YjMwMzE2Yi4u
NTBhZjkxNGI5ZjcyOTM1ZWVmODIyYjA0YjdhNDIyZmNlYzkyOGQ2MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgKQEAgLTg3LDggKzg3LDYgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNGb3JjZWRTdHlsZVJlY2FsY1Byb3BhZ2F0
aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAotUkVOREVSX09CSkVD
VF9UWVBFX0NBU1RTKFJlbmRlclRleHRDb250cm9sLCBpc1RleHRDb250cm9sKCkpCi0KIC8vIFJl
bmRlcmVyIGZvciBvdXIgaW5uZXIgY29udGFpbmVyLCBmb3IgPHNlYXJjaD4gYW5kIG90aGVycy4K
IC8vIFdlIGNhbid0IHVzZSBSZW5kZXJGbGV4aWJsZUJveCBkaXJlY3RseSwgYmVjYXVzZSBmbGV4
Ym94ZXMgaGF2ZSBhIGRpZmZlcmVudAogLy8gYmFzZWxpbmUgZGVmaW5pdGlvbiwgYW5kIHRoZW4g
aW5wdXRzIG9mIGRpZmZlcmVudCB0eXBlcyB3b3VsZG4ndCBsaW5lIHVwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKaW5k
ZXggMDg2OTA5ZDgwMTYxNGM4NmE1OTY0YmMzMDkwZmE2OWVhNTY3ZWRiZi4uOTA2M2M0M2M2OGRk
MzM4M2E4ZGQ3NzEyYmFmNzU3YzRlYjIyMjYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaApAQCAtOTcsOCArOTcs
NiBAQCBpbmxpbmUgSFRNTEVsZW1lbnQqIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6aW5u
ZXJCbG9ja0VsZW1lbnQoKSBjb25zdAogICAgIHJldHVybiBpbnB1dEVsZW1lbnQoKS5pbm5lckJs
b2NrRWxlbWVudCgpOwogfQogCi1SRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lLCBpc1RleHRGaWVsZCgpKQotCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAKIGNsYXNzIFJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jayBmaW5hbCA6IHB1
YmxpYyBSZW5kZXJCbG9ja0Zsb3cgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1NpbXBsZUxpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBs
ZUxpbmVMYXlvdXQuY3BwCmluZGV4IDA3MzRhMTc4ZjQ5ODJhYWQ5NzhiNTMyZTJlZjk4ZGNkODFm
MDc3ODQuLmIyZWJmOTc3NDVlMGJhYWQzMDk5MjFlNmI5ODEwZTMxMmIxOGUyMDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dC5jcHAKQEAgLTExNiw3ICsx
MTYsNyBAQCBib29sIGNhblVzZUZvcihjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIGZsb3cpCiAgICAg
aWYgKGZsb3cucGFyZW50KCktPmlzVGV4dEFyZWEoKSAmJiBmbG93LnBhcmVudCgpLT5lbGVtZW50
KCktPmZhc3RIYXNBdHRyaWJ1dGUoSFRNTE5hbWVzOjp3cmFwQXR0cikpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAvLyBGSVhNRTogUGxhY2Vob2xkZXJzIGRvIHNvbWV0aGluZyBzdHJhbmdl
LgotICAgIGlmIChmbG93LnBhcmVudCgpLT5pc1RleHRDb250cm9sKCkgJiYgdG9SZW5kZXJUZXh0
Q29udHJvbCgqZmxvdy5wYXJlbnQoKSkudGV4dEZvcm1Db250cm9sRWxlbWVudCgpLnBsYWNlaG9s
ZGVyRWxlbWVudCgpKQorICAgIGlmIChpczxSZW5kZXJUZXh0Q29udHJvbD4oKmZsb3cucGFyZW50
KCkpICYmIGRvd25jYXN0PFJlbmRlclRleHRDb250cm9sPigqZmxvdy5wYXJlbnQoKSkudGV4dEZv
cm1Db250cm9sRWxlbWVudCgpLnBsYWNlaG9sZGVyRWxlbWVudCgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlID0gZmxvdy5zdHlsZSgpOwogICAg
IGlmIChzdHlsZS50ZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCgpICE9IFRleHREZWNvcmF0aW9uTm9u
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYlZpc2li
bGVQb3NpdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYlZpc2li
bGVQb3NpdGlvbi5tbQppbmRleCA0NWI3YTFlOGY3Mjg4YjA5NzUxMmY3NTg5MzE3NjI1NTlmNGMy
OTMyLi4zNmNiMDhhYzc2NThkZDRlMzMwODMxMDlmMTE3ZmE5ZmI2NzBjZGNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJWaXNpYmxlUG9zaXRpb24ubW0K
KysrIGIvU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViVmlzaWJsZVBvc2l0aW9u
Lm1tCkBAIC01NzMsMjUgKzU3MywyNCBAQCBAaW1wbGVtZW50YXRpb24gRE9NSFRNTElucHV0RWxl
bWVudCAoVmlzaWJsZVBvc2l0aW9uRXh0ZW5zaW9ucykKIAogLSAoV2ViVmlzaWJsZVBvc2l0aW9u
ICopc3RhcnRQb3NpdGlvbgogewotICAgIE5vZGUgKm5vZGUgPSBjb3JlKHNlbGYpOwotICAgIFJl
bmRlck9iamVjdCAqb2JqZWN0ID0gbm9kZS0+cmVuZGVyZXIoKTsKLSAgICBpZiAoIW9iamVjdCB8
fCAhb2JqZWN0LT5pc1RleHRDb250cm9sKCkpCisgICAgTm9kZSogbm9kZSA9IGNvcmUoc2VsZik7
CisgICAgUmVuZGVyT2JqZWN0KiBvYmplY3QgPSBub2RlLT5yZW5kZXJlcigpOworICAgIGlmICgh
aXM8UmVuZGVyVGV4dENvbnRyb2w+KG9iamVjdCkpCiAgICAgICAgIHJldHVybiBbc3VwZXIgc3Rh
cnRQb3NpdGlvbl07CiAgICAgCi0gICAgUmVuZGVyVGV4dENvbnRyb2wgKnRleHRDb250cm9sID0g
dG9SZW5kZXJUZXh0Q29udHJvbChvYmplY3QpOwotICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxl
UG9zaXRpb24gPSB0ZXh0Q29udHJvbC0+dGV4dEZvcm1Db250cm9sRWxlbWVudCgpLnZpc2libGVQ
b3NpdGlvbkZvckluZGV4KDApOworICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb24g
PSBkb3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbD4oKm9iamVjdCkudGV4dEZvcm1Db250cm9sRWxl
bWVudCgpLnZpc2libGVQb3NpdGlvbkZvckluZGV4KDApOwogICAgIHJldHVybiBbV2ViVmlzaWJs
ZVBvc2l0aW9uIF93cmFwVmlzaWJsZVBvc2l0aW9uOnZpc2libGVQb3NpdGlvbl07CiB9CiAKIC0g
KFdlYlZpc2libGVQb3NpdGlvbiAqKWVuZFBvc2l0aW9uCiB7Ci0gICAgTm9kZSAqbm9kZSA9IGNv
cmUoc2VsZik7Ci0gICAgUmVuZGVyT2JqZWN0ICpvYmplY3QgPSBub2RlLT5yZW5kZXJlcigpOwot
ICAgIGlmICghb2JqZWN0IHx8ICFvYmplY3QtPmlzVGV4dENvbnRyb2woKSkKKyAgICBOb2RlKiBu
b2RlID0gY29yZShzZWxmKTsKKyAgICBSZW5kZXJPYmplY3QqIG9iamVjdCA9IG5vZGUtPnJlbmRl
cmVyKCk7CisgICAgaWYgKCFpczxSZW5kZXJUZXh0Q29udHJvbD4ob2JqZWN0KSkKICAgICAgICAg
cmV0dXJuIFtzdXBlciBlbmRQb3NpdGlvbl07CiAgICAgCi0gICAgUmVuZGVyVGV4dENvbnRyb2wg
KnRleHRDb250cm9sID0gdG9SZW5kZXJUZXh0Q29udHJvbChvYmplY3QpOwotICAgIFZpc2libGVQ
b3NpdGlvbiB2aXNpYmxlUG9zaXRpb24gPSB0ZXh0Q29udHJvbC0+dGV4dEZvcm1Db250cm9sRWxl
bWVudCgpLnZpc2libGVQb3NpdGlvbkZvckluZGV4KHRleHRDb250cm9sLT50ZXh0Rm9ybUNvbnRy
b2xFbGVtZW50KCkudmFsdWUoKS5sZW5ndGgoKSk7CisgICAgUmVuZGVyVGV4dENvbnRyb2wmIHRl
eHRDb250cm9sID0gZG93bmNhc3Q8UmVuZGVyVGV4dENvbnRyb2w+KCpvYmplY3QpOworICAgIFZp
c2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb24gPSB0ZXh0Q29udHJvbC50ZXh0Rm9ybUNvbnRy
b2xFbGVtZW50KCkudmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgodGV4dENvbnRyb2wudGV4dEZvcm1D
b250cm9sRWxlbWVudCgpLnZhbHVlKCkubGVuZ3RoKCkpOwogICAgIHJldHVybiBbV2ViVmlzaWJs
ZVBvc2l0aW9uIF93cmFwVmlzaWJsZVBvc2l0aW9uOnZpc2libGVQb3NpdGlvbl07CiB9CiAKQEAg
LTYwMSwyNSArNjAwLDI0IEBAIEBpbXBsZW1lbnRhdGlvbiBET01IVE1MVGV4dEFyZWFFbGVtZW50
IChWaXNpYmxlUG9zaXRpb25FeHRlbnNpb25zKQogCiAtIChXZWJWaXNpYmxlUG9zaXRpb24gKilz
dGFydFBvc2l0aW9uCiB7Ci0gICAgTm9kZSAqbm9kZSA9IGNvcmUoc2VsZik7Ci0gICAgUmVuZGVy
T2JqZWN0ICpvYmplY3QgPSBub2RlLT5yZW5kZXJlcigpOworICAgIE5vZGUqIG5vZGUgPSBjb3Jl
KHNlbGYpOworICAgIFJlbmRlck9iamVjdCogb2JqZWN0ID0gbm9kZS0+cmVuZGVyZXIoKTsKICAg
ICBpZiAoIW9iamVjdCkgCiAgICAgICAgIHJldHVybiBbc3VwZXIgc3RhcnRQb3NpdGlvbl07CiAg
ICAgCi0gICAgUmVuZGVyVGV4dENvbnRyb2wgKnRleHRDb250cm9sID0gdG9SZW5kZXJUZXh0Q29u
dHJvbChvYmplY3QpOwotICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb24gPSB0ZXh0
Q29udHJvbC0+dGV4dEZvcm1Db250cm9sRWxlbWVudCgpLnZpc2libGVQb3NpdGlvbkZvckluZGV4
KDApOworICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb24gPSBkb3duY2FzdDxSZW5k
ZXJUZXh0Q29udHJvbD4oKm9iamVjdCkudGV4dEZvcm1Db250cm9sRWxlbWVudCgpLnZpc2libGVQ
b3NpdGlvbkZvckluZGV4KDApOwogICAgIHJldHVybiBbV2ViVmlzaWJsZVBvc2l0aW9uIF93cmFw
VmlzaWJsZVBvc2l0aW9uOnZpc2libGVQb3NpdGlvbl07CiB9CiAKIC0gKFdlYlZpc2libGVQb3Np
dGlvbiAqKWVuZFBvc2l0aW9uCiB7Ci0gICAgTm9kZSAqbm9kZSA9IGNvcmUoc2VsZik7Ci0gICAg
UmVuZGVyT2JqZWN0ICpvYmplY3QgPSBub2RlLT5yZW5kZXJlcigpOworICAgIE5vZGUqIG5vZGUg
PSBjb3JlKHNlbGYpOworICAgIFJlbmRlck9iamVjdCogb2JqZWN0ID0gbm9kZS0+cmVuZGVyZXIo
KTsKICAgICBpZiAoIW9iamVjdCkgCiAgICAgICAgIHJldHVybiBbc3VwZXIgZW5kUG9zaXRpb25d
OwogICAgIAotICAgIFJlbmRlclRleHRDb250cm9sICp0ZXh0Q29udHJvbCA9IHRvUmVuZGVyVGV4
dENvbnRyb2wob2JqZWN0KTsKLSAgICBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uID0g
dGV4dENvbnRyb2wtPnRleHRGb3JtQ29udHJvbEVsZW1lbnQoKS52aXNpYmxlUG9zaXRpb25Gb3JJ
bmRleCh0ZXh0Q29udHJvbC0+dGV4dEZvcm1Db250cm9sRWxlbWVudCgpLnZhbHVlKCkubGVuZ3Ro
KCkpOworICAgIFJlbmRlclRleHRDb250cm9sJiB0ZXh0Q29udHJvbCA9IGRvd25jYXN0PFJlbmRl
clRleHRDb250cm9sPigqb2JqZWN0KTsKKyAgICBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0
aW9uID0gdGV4dENvbnRyb2wudGV4dEZvcm1Db250cm9sRWxlbWVudCgpLnZpc2libGVQb3NpdGlv
bkZvckluZGV4KHRleHRDb250cm9sLnRleHRGb3JtQ29udHJvbEVsZW1lbnQoKS52YWx1ZSgpLmxl
bmd0aCgpKTsKICAgICByZXR1cm4gW1dlYlZpc2libGVQb3NpdGlvbiBfd3JhcFZpc2libGVQb3Np
dGlvbjp2aXNpYmxlUG9zaXRpb25dOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239875</attachid>
            <date>2014-10-15 10:16:55 -0700</date>
            <delta_ts>2014-10-15 10:36:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137727-20141015101705.patch</filename>
            <type>text/plain</type>
            <size>17083</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0NzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDVmNDk5MTU3NzJlODc1
MzIyYmEzYmE4OTNiNGM3YWRmYmVhZDg2My4uMjhkYjE0ZTg0ZDEwNTE4NzcxZTE3MmViMDg4NjA4
MjFkZTgwMTE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE0LTEwLTE0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGlzPD4oKSAvIGRvd25j
YXN0PD4oKSBmb3IgUmVuZGVyVGV4dENvbnRyb2wgLyBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxp
bmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzcy
NworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFVzZSBpczw+
KCkgLyBkb3duY2FzdDw+KCkgZm9yIFJlbmRlclRleHRDb250cm9sIC8gUmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdl
LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNlbGVjdGVk
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxl
Y3RlZFRleHRSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0Ojp2aXNpYmxlUG9zaXRpb25Gb3JJbmRleCk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjppbmRleEZvclZpc2libGVQb3NpdGlvbik6
CisgICAgICAgICogZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dEl0ZXJhdG9yOjpoYW5kbGVSZXBsYWNlZEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvVGV4
dEZpZWxkSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlw
ZTo6Zm9yd2FyZEV2ZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVy
RWxlbWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6
OmN1c3RvbVN0eWxlRm9yUmVuZGVyZXIpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6Y2Fwc0xvY2tTdGF0ZU1heUhhdmVD
aGFuZ2VkKToKKyAgICAgICAgKiBwYWdlL2lvcy9GcmFtZUlPUy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OmFuY2VzdG9yUmVzcG9uZGluZ1RvU2Nyb2xsV2hlZWxFdmVudHMpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvU2ltcGxlTGluZUxh
eW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVMaW5lTGF5b3V0OjpjYW5Vc2VGb3Ip
OgorCiAyMDE0LTEwLTE1ICBNaWhuZWEgT3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUuY29tPgogCiAg
ICAgICAgIFVzZSBtb2Rlcm4gbG9vcHMgaW4gc3VidHJlZXMgc2VsZWN0aW9uIGNvZGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvaW9zL0No
YW5nZUxvZwppbmRleCAzNjAwODE2MzZlMDM4OWE0ZjgyMjczYzU1MGQ0MzBiZDg5ZWE2ZGUyLi5i
ZGFlOGIxYjlkNTYzODEyMGNhMDE1MTZmYTNhOTkyMjlkMjlmYmZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTggQEAKKzIwMTQtMTAtMTQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBVc2UgaXM8PigpIC8gZG93bmNhc3Q8PigpIGZvciBSZW5kZXJUZXh0
Q29udHJvbCAvIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3NzI3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgVXNlIGlzPD4oKSAvIGRvd25jYXN0PD4oKSBmb3Ig
UmVuZGVyVGV4dENvbnRyb2wgLyBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJWaXNpYmxlUG9zaXRpb24ubW06CisgICAgICAgICgtW0RP
TUhUTUxJbnB1dEVsZW1lbnQgc3RhcnRQb3NpdGlvbl0pOgorICAgICAgICAoLVtET01IVE1MSW5w
dXRFbGVtZW50IGVuZFBvc2l0aW9uXSk6CisgICAgICAgICgtW0RPTUhUTUxUZXh0QXJlYUVsZW1l
bnQgc3RhcnRQb3NpdGlvbl0pOgorICAgICAgICAoLVtET01IVE1MVGV4dEFyZWFFbGVtZW50IGVu
ZFBvc2l0aW9uXSk6CisKIDIwMTQtMTAtMDMgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE2NTg5Nik6IFVJV2ViVmlldyBQREZz
IGhhdmUgYSBmb3JjZWQgYmxhY2sgYmFja2dyb3VuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXgg
YTk5OGNhMjdkN2NlNDk4OGYwZDYxNDMyYmNjZGY0ZTBiNTkzY2I3Ny4uMmQ1NjAwYmQwZDkxMjQ2
YzNkODZjNTU4YzA2MDJlNjkyZGRiNWY0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0xNDM4
LDcgKzE0MzgsNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRU
ZXh0KCkgY29uc3QKICAgICAgICAgcmV0dXJuIFN0cmluZygpOyAvLyBuZWVkIHRvIHJldHVybiBz
b21ldGhpbmcgZGlzdGluY3QgZnJvbSBlbXB0eSBzdHJpbmcKICAgICAKICAgICBpZiAoaXNOYXRp
dmVUZXh0Q29udHJvbCgpKSB7Ci0gICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50JiB0
ZXh0Q29udHJvbCA9IHRvUmVuZGVyVGV4dENvbnRyb2wobV9yZW5kZXJlciktPnRleHRGb3JtQ29u
dHJvbEVsZW1lbnQoKTsKKyAgICAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQmIHRleHRD
b250cm9sID0gZG93bmNhc3Q8UmVuZGVyVGV4dENvbnRyb2w+KCptX3JlbmRlcmVyKS50ZXh0Rm9y
bUNvbnRyb2xFbGVtZW50KCk7CiAgICAgICAgIHJldHVybiB0ZXh0Q29udHJvbC5zZWxlY3RlZFRl
eHQoKTsKICAgICB9CiAgICAgCkBAIC0xNDY3LDcgKzE0NjcsNyBAQCBQbGFpblRleHRSYW5nZSBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRleHRSYW5nZSgpIGNvbnN0CiAgICAg
CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgYXJpYVJvbGUgPSBhcmlhUm9sZUF0dHJpYnV0ZSgpOwog
ICAgIGlmIChpc05hdGl2ZVRleHRDb250cm9sKCkgJiYgYXJpYVJvbGUgPT0gVW5rbm93blJvbGUp
IHsKLSAgICAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQmIHRleHRDb250cm9sID0gdG9S
ZW5kZXJUZXh0Q29udHJvbChtX3JlbmRlcmVyKS0+dGV4dEZvcm1Db250cm9sRWxlbWVudCgpOwor
ICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENvbnRyb2wgPSBkb3duY2Fz
dDxSZW5kZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIpLnRleHRGb3JtQ29udHJvbEVsZW1lbnQo
KTsKICAgICAgICAgcmV0dXJuIFBsYWluVGV4dFJhbmdlKHRleHRDb250cm9sLnNlbGVjdGlvblN0
YXJ0KCksIHRleHRDb250cm9sLnNlbGVjdGlvbkVuZCgpIC0gdGV4dENvbnRyb2wuc2VsZWN0aW9u
U3RhcnQoKSk7CiAgICAgfQogICAgIApAQCAtMTQ3Nyw3ICsxNDc3LDcgQEAgUGxhaW5UZXh0UmFu
Z2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRUZXh0UmFuZ2UoKSBjb25zdAog
dm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5nZShjb25z
dCBQbGFpblRleHRSYW5nZSYgcmFuZ2UpCiB7CiAgICAgaWYgKGlzTmF0aXZlVGV4dENvbnRyb2wo
KSkgewotICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENvbnRyb2wgPSB0
b1JlbmRlclRleHRDb250cm9sKG1fcmVuZGVyZXIpLT50ZXh0Rm9ybUNvbnRyb2xFbGVtZW50KCk7
CisgICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50JiB0ZXh0Q29udHJvbCA9IGRvd25j
YXN0PFJlbmRlclRleHRDb250cm9sPigqbV9yZW5kZXJlcikudGV4dEZvcm1Db250cm9sRWxlbWVu
dCgpOwogICAgICAgICB0ZXh0Q29udHJvbC5zZXRTZWxlY3Rpb25SYW5nZShyYW5nZS5zdGFydCwg
cmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAt
MTgzMSw5ICsxODMxLDkgQEAgVmlzaWJsZVBvc2l0aW9uIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OnZpc2libGVQb3NpdGlvbkZvckluZGV4KGludCBpbmRleCkgY28KICAgICAgICAgcmV0dXJu
IFZpc2libGVQb3NpdGlvbigpOwogCiAgICAgaWYgKGlzTmF0aXZlVGV4dENvbnRyb2woKSkKLSAg
ICAgICAgcmV0dXJuIHRvUmVuZGVyVGV4dENvbnRyb2wobV9yZW5kZXJlciktPnRleHRGb3JtQ29u
dHJvbEVsZW1lbnQoKS52aXNpYmxlUG9zaXRpb25Gb3JJbmRleChpbmRleCk7CisgICAgICAgIHJl
dHVybiBkb3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIpLnRleHRGb3JtQ29u
dHJvbEVsZW1lbnQoKS52aXNpYmxlUG9zaXRpb25Gb3JJbmRleChpbmRleCk7CiAKLSAgICBpZiAo
IWFsbG93c1RleHRSYW5nZXMoKSAmJiAhbV9yZW5kZXJlci0+aXNUZXh0KCkpCisgICAgaWYgKCFh
bGxvd3NUZXh0UmFuZ2VzKCkgJiYgIWlzPFJlbmRlclRleHQ+KCptX3JlbmRlcmVyKSkKICAgICAg
ICAgcmV0dXJuIFZpc2libGVQb3NpdGlvbigpOwogICAgIAogICAgIE5vZGUqIG5vZGUgPSBtX3Jl
bmRlcmVyLT5ub2RlKCk7CkBAIC0xODQ2LDcgKzE4NDYsNyBAQCBWaXNpYmxlUG9zaXRpb24gQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoaW50IGluZGV4
KSBjbwogaW50IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmluZGV4Rm9yVmlzaWJsZVBvc2l0
aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zKSBjb25zdAogewogICAgIGlmIChpc05hdGl2
ZVRleHRDb250cm9sKCkpCi0gICAgICAgIHJldHVybiB0b1JlbmRlclRleHRDb250cm9sKG1fcmVu
ZGVyZXIpLT50ZXh0Rm9ybUNvbnRyb2xFbGVtZW50KCkuaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24o
cG9zKTsKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PFJlbmRlclRleHRDb250cm9sPigqbV9yZW5k
ZXJlcikudGV4dEZvcm1Db250cm9sRWxlbWVudCgpLmluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKHBv
cyk7CiAKICAgICBpZiAoIWlzVGV4dENvbnRyb2woKSkKICAgICAgICAgcmV0dXJuIDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKaW5kZXggYjM4OWYwZjkwZjZlZmUxMTM0
OGFmZjM0NTg1ZDNiNmMwNThjNWY5Mi4uNDg3NWE5MGEwMTEyYWZjYTNmNDUzYTA4ZTExNmZmMjdi
Njk0NTNjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcApAQCAtNzI4
LDggKzcyOCw4IEBAIGJvb2wgVGV4dEl0ZXJhdG9yOjpoYW5kbGVSZXBsYWNlZEVsZW1lbnQoKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgaWYgKChtX2JlaGF2aW9yICYgVGV4
dEl0ZXJhdG9yRW50ZXJzVGV4dENvbnRyb2xzKSAmJiByZW5kZXJlci5pc1RleHRDb250cm9sKCkp
IHsKLSAgICAgICAgaWYgKFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudCogaW5uZXJUZXh0RWxl
bWVudCA9IHRvUmVuZGVyVGV4dENvbnRyb2wocmVuZGVyZXIpLnRleHRGb3JtQ29udHJvbEVsZW1l
bnQoKS5pbm5lclRleHRFbGVtZW50KCkpIHsKKyAgICBpZiAoKG1fYmVoYXZpb3IgJiBUZXh0SXRl
cmF0b3JFbnRlcnNUZXh0Q29udHJvbHMpICYmIGlzPFJlbmRlclRleHRDb250cm9sPihyZW5kZXJl
cikpIHsKKyAgICAgICAgaWYgKFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudCogaW5uZXJUZXh0
RWxlbWVudCA9IGRvd25jYXN0PFJlbmRlclRleHRDb250cm9sPihyZW5kZXJlcikudGV4dEZvcm1D
b250cm9sRWxlbWVudCgpLmlubmVyVGV4dEVsZW1lbnQoKSkgewogICAgICAgICAgICAgbV9ub2Rl
ID0gaW5uZXJUZXh0RWxlbWVudC0+Y29udGFpbmluZ1NoYWRvd1Jvb3QoKTsKICAgICAgICAgICAg
IHB1c2hGdWxseUNsaXBwZWRTdGF0ZShtX2Z1bGx5Q2xpcHBlZFN0YWNrLCAqbV9ub2RlKTsKICAg
ICAgICAgICAgIG1fb2Zmc2V0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5w
dXRUeXBlLmNwcAppbmRleCAwYzg4OTA4YmE4ZWM4ZWJmYjYxYmRlODU4NzdjNGY0NWY3NmYzN2Yw
Li44YTkyNThlOGE5ZjkwM2M4OTIwMjAyMTA5ZGE1NmZkMTJiNTJlY2JiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBAIC0xODAsMTggKzE4MCwxOCBAQCB2
b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Zm9yd2FyZEV2ZW50KEV2ZW50KiBldmVudCkKICAgICAg
ICAgZWxlbWVudCgpLmRvY3VtZW50KCkudXBkYXRlU3R5bGVJZk5lZWRlZEZvck5vZGUoZWxlbWVu
dCgpKTsKIAogICAgICAgICBpZiAoZWxlbWVudCgpLnJlbmRlcmVyKCkpIHsKLSAgICAgICAgICAg
IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSogcmVuZGVyVGV4dENvbnRyb2wgPSB0b1JlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZShlbGVtZW50KCkucmVuZGVyZXIoKSk7CisgICAgICAgICAg
ICBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUmIHJlbmRlclRleHRDb250cm9sID0gZG93bmNh
c3Q8UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lPigqZWxlbWVudCgpLnJlbmRlcmVyKCkpOwog
ICAgICAgICAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmJsdXJFdmVudCkg
ewogICAgICAgICAgICAgICAgIGlmIChSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2sqIGlubmVy
VGV4dFJlbmRlcmVyID0gaW5uZXJUZXh0RWxlbWVudCgpLT5yZW5kZXJlcigpKSB7CiAgICAgICAg
ICAgICAgICAgICAgIGlmIChSZW5kZXJMYXllciogaW5uZXJMYXllciA9IGlubmVyVGV4dFJlbmRl
cmVyLT5sYXllcigpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBJbnRTaXplIHNjcm9sbE9m
ZnNldCghcmVuZGVyVGV4dENvbnRyb2wtPnN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigp
ID8gaW5uZXJMYXllci0+c2Nyb2xsV2lkdGgoKSA6IDAsIDApOworICAgICAgICAgICAgICAgICAg
ICAgICAgSW50U2l6ZSBzY3JvbGxPZmZzZXQoIXJlbmRlclRleHRDb250cm9sLnN0eWxlKCkuaXNM
ZWZ0VG9SaWdodERpcmVjdGlvbigpID8gaW5uZXJMYXllci0+c2Nyb2xsV2lkdGgoKSA6IDAsIDAp
OwogICAgICAgICAgICAgICAgICAgICAgICAgaW5uZXJMYXllci0+c2Nyb2xsVG9PZmZzZXQoc2Ny
b2xsT2Zmc2V0LCBSZW5kZXJMYXllcjo6U2Nyb2xsT2Zmc2V0Q2xhbXBlZCk7CiAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICByZW5kZXJU
ZXh0Q29udHJvbC0+Y2Fwc0xvY2tTdGF0ZU1heUhhdmVDaGFuZ2VkKCk7CisgICAgICAgICAgICAg
ICAgcmVuZGVyVGV4dENvbnRyb2wuY2Fwc0xvY2tTdGF0ZU1heUhhdmVDaGFuZ2VkKCk7CiAgICAg
ICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmZvY3VzRXZl
bnQpCi0gICAgICAgICAgICAgICAgcmVuZGVyVGV4dENvbnRyb2wtPmNhcHNMb2NrU3RhdGVNYXlI
YXZlQ2hhbmdlZCgpOworICAgICAgICAgICAgICAgIHJlbmRlclRleHRDb250cm9sLmNhcHNMb2Nr
U3RhdGVNYXlIYXZlQ2hhbmdlZCgpOwogCiAgICAgICAgICAgICBlbGVtZW50KCkuZm9yd2FyZEV2
ZW50KGV2ZW50KTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKaW5kZXggNGUyMjE4NjA2NjI1ZTM4
NDRjYTBkYjZhZGM4YjllZWYyNTg2NmNlMC4uMzIyYWJlYjJjMGNmMDNiMmVjNWE1OTViOWEzM2Fm
M2Q3YjU2ZGJkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENv
bnRyb2xJbm5lckVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9U
ZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCkBAIC03NCw4ICs3NCw4IEBAIFBhc3NSZWZQdHI8
VGV4dENvbnRyb2xJbm5lckVsZW1lbnQ+IFRleHRDb250cm9sSW5uZXJFbGVtZW50OjpjcmVhdGUo
RG9jdW1lbnQmIGRvCiAKIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFRleHRDb250cm9sSW5uZXJF
bGVtZW50OjpjdXN0b21TdHlsZUZvclJlbmRlcmVyKFJlbmRlclN0eWxlJikKIHsKLSAgICBSZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUqIHBhcmVudFJlbmRlcmVyID0gdG9SZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUoc2hhZG93SG9zdCgpLT5yZW5kZXJlcigpKTsKLSAgICByZXR1cm4gcGFy
ZW50UmVuZGVyZXItPmNyZWF0ZUlubmVyQmxvY2tTdHlsZSgmcGFyZW50UmVuZGVyZXItPnN0eWxl
KCkpOworICAgIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSYgcGFyZW50UmVuZGVyZXIgPSBk
b3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU+KCpzaGFkb3dIb3N0KCktPnJlbmRl
cmVyKCkpOworICAgIHJldHVybiBwYXJlbnRSZW5kZXJlci5jcmVhdGVJbm5lckJsb2NrU3R5bGUo
JnBhcmVudFJlbmRlcmVyLnN0eWxlKCkpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA5OTU4YTAzYzI4NWRk
MDkyMmY0YzZjODgzZmZhMWQ4NDNhNzU1OThhLi5iODY3YzQ3ZWQyZTI1NTM1OTU1MDdlNjFiYzNk
M2ZhNWQyMjQ0OTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0zNjkw
LDExICszNjkwLDExIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0VGFiRXZlbnRIYW5kbGVy
KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogCiB2b2lkIEV2ZW50SGFuZGxlcjo6Y2Fwc0xvY2tTdGF0
ZU1heUhhdmVDaGFuZ2VkKCkKIHsKLSAgICBEb2N1bWVudCogZCA9IG1fZnJhbWUuZG9jdW1lbnQo
KTsKLSAgICBpZiAoRWxlbWVudCogZWxlbWVudCA9IGQtPmZvY3VzZWRFbGVtZW50KCkpIHsKLSAg
ICAgICAgaWYgKFJlbmRlck9iamVjdCogciA9IGVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKLSAgICAg
ICAgICAgIGlmIChyLT5pc1RleHRGaWVsZCgpKQotICAgICAgICAgICAgICAgIHRvUmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lKHIpLT5jYXBzTG9ja1N0YXRlTWF5SGF2ZUNoYW5nZWQoKTsKKyAg
ICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2ZyYW1lLmRvY3VtZW50KCk7CisgICAgaWYgKGF1dG8q
IGVsZW1lbnQgPSBkb2N1bWVudC0+Zm9jdXNlZEVsZW1lbnQoKSkgeworICAgICAgICBpZiAoYXV0
byogcmVuZGVyZXIgPSBlbGVtZW50LT5yZW5kZXJlcigpKSB7CisgICAgICAgICAgICBpZiAoaXM8
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lPigqcmVuZGVyZXIpKQorICAgICAgICAgICAgICAg
IGRvd25jYXN0PFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZT4oKnJlbmRlcmVyKS5jYXBzTG9j
a1N0YXRlTWF5SGF2ZUNoYW5nZWQoKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0ZyYW1lSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9pb3MvRnJhbWVJT1MubW0KaW5kZXggNjRiNmJmYzJhYWFlMTc0YzQwYmJhOWNkYjhlODVjYWMx
ZGYwY2M0My4uOTE3ZTAyMTE3OGM5ODUxNjE4ODlhM2Q2MTJiMTM5MzhlNGUxODEwOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRnJhbWVJT1MubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9pb3MvRnJhbWVJT1MubW0KQEAgLTI5Myw3ICsyOTMsNyBAQCBzdGF0aWMgTm9k
ZSogYW5jZXN0b3JSZXNwb25kaW5nVG9TY3JvbGxXaGVlbEV2ZW50cyhjb25zdCBIaXRUZXN0UmVz
dWx0JiBoaXRUZXN0UgogICAgICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICAgICAgY29udGlu
dWU7CiAKLSAgICAgICAgaWYgKChyZW5kZXJlci0+aXNUZXh0RmllbGQoKSB8fCByZW5kZXJlci0+
aXNUZXh0QXJlYSgpKSAmJiB0b1JlbmRlclRleHRDb250cm9sKHJlbmRlcmVyKS0+Y2FuU2Nyb2xs
KCkpIHsKKyAgICAgICAgaWYgKChyZW5kZXJlci0+aXNUZXh0RmllbGQoKSB8fCByZW5kZXJlci0+
aXNUZXh0QXJlYSgpKSAmJiBkb3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbD4oKnJlbmRlcmVyKS5j
YW5TY3JvbGwoKSkgewogICAgICAgICAgICAgc2Nyb2xsaW5nQW5jZXN0b3IgPSBub2RlOwogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHRDb250cm9sLmgKaW5kZXggYjljMmEzNzM4OThmZGM3MWJkODdmZDVmOTAzNGM5
ZDQ1YjMwMzE2Yi4uNTBhZjkxNGI5ZjcyOTM1ZWVmODIyYjA0YjdhNDIyZmNlYzkyOGQ2MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgKQEAgLTg3LDgg
Kzg3LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNGb3JjZWRTdHlsZVJl
Y2FsY1Byb3BhZ2F0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAot
UkVOREVSX09CSkVDVF9UWVBFX0NBU1RTKFJlbmRlclRleHRDb250cm9sLCBpc1RleHRDb250cm9s
KCkpCi0KIC8vIFJlbmRlcmVyIGZvciBvdXIgaW5uZXIgY29udGFpbmVyLCBmb3IgPHNlYXJjaD4g
YW5kIG90aGVycy4KIC8vIFdlIGNhbid0IHVzZSBSZW5kZXJGbGV4aWJsZUJveCBkaXJlY3RseSwg
YmVjYXVzZSBmbGV4Ym94ZXMgaGF2ZSBhIGRpZmZlcmVudAogLy8gYmFzZWxpbmUgZGVmaW5pdGlv
biwgYW5kIHRoZW4gaW5wdXRzIG9mIGRpZmZlcmVudCB0eXBlcyB3b3VsZG4ndCBsaW5lIHVwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5n
bGVMaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5n
bGVMaW5lLmgKaW5kZXggMDg2OTA5ZDgwMTYxNGM4NmE1OTY0YmMzMDkwZmE2OWVhNTY3ZWRiZi4u
OTA2M2M0M2M2OGRkMzM4M2E4ZGQ3NzEyYmFmNzU3YzRlYjIyMjYzYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaApA
QCAtOTcsOCArOTcsNiBAQCBpbmxpbmUgSFRNTEVsZW1lbnQqIFJlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZTo6aW5uZXJCbG9ja0VsZW1lbnQoKSBjb25zdAogICAgIHJldHVybiBpbnB1dEVsZW1l
bnQoKS5pbm5lckJsb2NrRWxlbWVudCgpOwogfQogCi1SRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMo
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLCBpc1RleHRGaWVsZCgpKQotCiAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIGNsYXNzIFJlbmRlclRleHRDb250cm9sSW5uZXJCbG9j
ayBmaW5hbCA6IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXQuY3BwCmluZGV4IDA3MzRhMTc4ZjQ5ODJhYWQ5NzhiNTMy
ZTJlZjk4ZGNkODFmMDc3ODQuLmIyZWJmOTc3NDVlMGJhYWQzMDk5MjFlNmI5ODEwZTMxMmIxOGUy
MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dC5jcHAK
QEAgLTExNiw3ICsxMTYsNyBAQCBib29sIGNhblVzZUZvcihjb25zdCBSZW5kZXJCbG9ja0Zsb3cm
IGZsb3cpCiAgICAgaWYgKGZsb3cucGFyZW50KCktPmlzVGV4dEFyZWEoKSAmJiBmbG93LnBhcmVu
dCgpLT5lbGVtZW50KCktPmZhc3RIYXNBdHRyaWJ1dGUoSFRNTE5hbWVzOjp3cmFwQXR0cikpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAvLyBGSVhNRTogUGxhY2Vob2xkZXJzIGRvIHNvbWV0
aGluZyBzdHJhbmdlLgotICAgIGlmIChmbG93LnBhcmVudCgpLT5pc1RleHRDb250cm9sKCkgJiYg
dG9SZW5kZXJUZXh0Q29udHJvbCgqZmxvdy5wYXJlbnQoKSkudGV4dEZvcm1Db250cm9sRWxlbWVu
dCgpLnBsYWNlaG9sZGVyRWxlbWVudCgpKQorICAgIGlmIChpczxSZW5kZXJUZXh0Q29udHJvbD4o
KmZsb3cucGFyZW50KCkpICYmIGRvd25jYXN0PFJlbmRlclRleHRDb250cm9sPigqZmxvdy5wYXJl
bnQoKSkudGV4dEZvcm1Db250cm9sRWxlbWVudCgpLnBsYWNlaG9sZGVyRWxlbWVudCgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlID0gZmxvdy5z
dHlsZSgpOwogICAgIGlmIChzdHlsZS50ZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCgpICE9IFRleHRE
ZWNvcmF0aW9uTm9uZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBw
b3J0L1dlYlZpc2libGVQb3NpdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBw
b3J0L1dlYlZpc2libGVQb3NpdGlvbi5tbQppbmRleCA0NWI3YTFlOGY3Mjg4YjA5NzUxMmY3NTg5
MzE3NjI1NTlmNGMyOTMyLi4zNmNiMDhhYzc2NThkZDRlMzMwODMxMDlmMTE3ZmE5ZmI2NzBjZGNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJWaXNpYmxl
UG9zaXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViVmlz
aWJsZVBvc2l0aW9uLm1tCkBAIC01NzMsMjUgKzU3MywyNCBAQCBAaW1wbGVtZW50YXRpb24gRE9N
SFRNTElucHV0RWxlbWVudCAoVmlzaWJsZVBvc2l0aW9uRXh0ZW5zaW9ucykKIAogLSAoV2ViVmlz
aWJsZVBvc2l0aW9uICopc3RhcnRQb3NpdGlvbgogewotICAgIE5vZGUgKm5vZGUgPSBjb3JlKHNl
bGYpOwotICAgIFJlbmRlck9iamVjdCAqb2JqZWN0ID0gbm9kZS0+cmVuZGVyZXIoKTsKLSAgICBp
ZiAoIW9iamVjdCB8fCAhb2JqZWN0LT5pc1RleHRDb250cm9sKCkpCisgICAgTm9kZSogbm9kZSA9
IGNvcmUoc2VsZik7CisgICAgUmVuZGVyT2JqZWN0KiBvYmplY3QgPSBub2RlLT5yZW5kZXJlcigp
OworICAgIGlmICghaXM8UmVuZGVyVGV4dENvbnRyb2w+KG9iamVjdCkpCiAgICAgICAgIHJldHVy
biBbc3VwZXIgc3RhcnRQb3NpdGlvbl07CiAgICAgCi0gICAgUmVuZGVyVGV4dENvbnRyb2wgKnRl
eHRDb250cm9sID0gdG9SZW5kZXJUZXh0Q29udHJvbChvYmplY3QpOwotICAgIFZpc2libGVQb3Np
dGlvbiB2aXNpYmxlUG9zaXRpb24gPSB0ZXh0Q29udHJvbC0+dGV4dEZvcm1Db250cm9sRWxlbWVu
dCgpLnZpc2libGVQb3NpdGlvbkZvckluZGV4KDApOworICAgIFZpc2libGVQb3NpdGlvbiB2aXNp
YmxlUG9zaXRpb24gPSBkb3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbD4oKm9iamVjdCkudGV4dEZv
cm1Db250cm9sRWxlbWVudCgpLnZpc2libGVQb3NpdGlvbkZvckluZGV4KDApOwogICAgIHJldHVy
biBbV2ViVmlzaWJsZVBvc2l0aW9uIF93cmFwVmlzaWJsZVBvc2l0aW9uOnZpc2libGVQb3NpdGlv
bl07CiB9CiAKIC0gKFdlYlZpc2libGVQb3NpdGlvbiAqKWVuZFBvc2l0aW9uCiB7Ci0gICAgTm9k
ZSAqbm9kZSA9IGNvcmUoc2VsZik7Ci0gICAgUmVuZGVyT2JqZWN0ICpvYmplY3QgPSBub2RlLT5y
ZW5kZXJlcigpOwotICAgIGlmICghb2JqZWN0IHx8ICFvYmplY3QtPmlzVGV4dENvbnRyb2woKSkK
KyAgICBOb2RlKiBub2RlID0gY29yZShzZWxmKTsKKyAgICBSZW5kZXJPYmplY3QqIG9iamVjdCA9
IG5vZGUtPnJlbmRlcmVyKCk7CisgICAgaWYgKCFpczxSZW5kZXJUZXh0Q29udHJvbD4ob2JqZWN0
KSkKICAgICAgICAgcmV0dXJuIFtzdXBlciBlbmRQb3NpdGlvbl07CiAgICAgCi0gICAgUmVuZGVy
VGV4dENvbnRyb2wgKnRleHRDb250cm9sID0gdG9SZW5kZXJUZXh0Q29udHJvbChvYmplY3QpOwot
ICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb24gPSB0ZXh0Q29udHJvbC0+dGV4dEZv
cm1Db250cm9sRWxlbWVudCgpLnZpc2libGVQb3NpdGlvbkZvckluZGV4KHRleHRDb250cm9sLT50
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50KCkudmFsdWUoKS5sZW5ndGgoKSk7CisgICAgUmVuZGVyVGV4
dENvbnRyb2wmIHRleHRDb250cm9sID0gZG93bmNhc3Q8UmVuZGVyVGV4dENvbnRyb2w+KCpvYmpl
Y3QpOworICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb24gPSB0ZXh0Q29udHJvbC50
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50KCkudmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgodGV4dENvbnRy
b2wudGV4dEZvcm1Db250cm9sRWxlbWVudCgpLnZhbHVlKCkubGVuZ3RoKCkpOwogICAgIHJldHVy
biBbV2ViVmlzaWJsZVBvc2l0aW9uIF93cmFwVmlzaWJsZVBvc2l0aW9uOnZpc2libGVQb3NpdGlv
bl07CiB9CiAKQEAgLTYwMSwyNSArNjAwLDI0IEBAIEBpbXBsZW1lbnRhdGlvbiBET01IVE1MVGV4
dEFyZWFFbGVtZW50IChWaXNpYmxlUG9zaXRpb25FeHRlbnNpb25zKQogCiAtIChXZWJWaXNpYmxl
UG9zaXRpb24gKilzdGFydFBvc2l0aW9uCiB7Ci0gICAgTm9kZSAqbm9kZSA9IGNvcmUoc2VsZik7
Ci0gICAgUmVuZGVyT2JqZWN0ICpvYmplY3QgPSBub2RlLT5yZW5kZXJlcigpOworICAgIE5vZGUq
IG5vZGUgPSBjb3JlKHNlbGYpOworICAgIFJlbmRlck9iamVjdCogb2JqZWN0ID0gbm9kZS0+cmVu
ZGVyZXIoKTsKICAgICBpZiAoIW9iamVjdCkgCiAgICAgICAgIHJldHVybiBbc3VwZXIgc3RhcnRQ
b3NpdGlvbl07CiAgICAgCi0gICAgUmVuZGVyVGV4dENvbnRyb2wgKnRleHRDb250cm9sID0gdG9S
ZW5kZXJUZXh0Q29udHJvbChvYmplY3QpOwotICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9z
aXRpb24gPSB0ZXh0Q29udHJvbC0+dGV4dEZvcm1Db250cm9sRWxlbWVudCgpLnZpc2libGVQb3Np
dGlvbkZvckluZGV4KDApOworICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb24gPSBk
b3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbD4oKm9iamVjdCkudGV4dEZvcm1Db250cm9sRWxlbWVu
dCgpLnZpc2libGVQb3NpdGlvbkZvckluZGV4KDApOwogICAgIHJldHVybiBbV2ViVmlzaWJsZVBv
c2l0aW9uIF93cmFwVmlzaWJsZVBvc2l0aW9uOnZpc2libGVQb3NpdGlvbl07CiB9CiAKIC0gKFdl
YlZpc2libGVQb3NpdGlvbiAqKWVuZFBvc2l0aW9uCiB7Ci0gICAgTm9kZSAqbm9kZSA9IGNvcmUo
c2VsZik7Ci0gICAgUmVuZGVyT2JqZWN0ICpvYmplY3QgPSBub2RlLT5yZW5kZXJlcigpOworICAg
IE5vZGUqIG5vZGUgPSBjb3JlKHNlbGYpOworICAgIFJlbmRlck9iamVjdCogb2JqZWN0ID0gbm9k
ZS0+cmVuZGVyZXIoKTsKICAgICBpZiAoIW9iamVjdCkgCiAgICAgICAgIHJldHVybiBbc3VwZXIg
ZW5kUG9zaXRpb25dOwogICAgIAotICAgIFJlbmRlclRleHRDb250cm9sICp0ZXh0Q29udHJvbCA9
IHRvUmVuZGVyVGV4dENvbnRyb2wob2JqZWN0KTsKLSAgICBWaXNpYmxlUG9zaXRpb24gdmlzaWJs
ZVBvc2l0aW9uID0gdGV4dENvbnRyb2wtPnRleHRGb3JtQ29udHJvbEVsZW1lbnQoKS52aXNpYmxl
UG9zaXRpb25Gb3JJbmRleCh0ZXh0Q29udHJvbC0+dGV4dEZvcm1Db250cm9sRWxlbWVudCgpLnZh
bHVlKCkubGVuZ3RoKCkpOworICAgIFJlbmRlclRleHRDb250cm9sJiB0ZXh0Q29udHJvbCA9IGRv
d25jYXN0PFJlbmRlclRleHRDb250cm9sPigqb2JqZWN0KTsKKyAgICBWaXNpYmxlUG9zaXRpb24g
dmlzaWJsZVBvc2l0aW9uID0gdGV4dENvbnRyb2wudGV4dEZvcm1Db250cm9sRWxlbWVudCgpLnZp
c2libGVQb3NpdGlvbkZvckluZGV4KHRleHRDb250cm9sLnRleHRGb3JtQ29udHJvbEVsZW1lbnQo
KS52YWx1ZSgpLmxlbmd0aCgpKTsKICAgICByZXR1cm4gW1dlYlZpc2libGVQb3NpdGlvbiBfd3Jh
cFZpc2libGVQb3NpdGlvbjp2aXNpYmxlUG9zaXRpb25dOwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>