<?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>215015</bug_id>
          
          <creation_ts>2020-07-31 02:18:55 -0700</creation_ts>
          <short_desc>[CG] Avoid creating a sub-image when drawing a small scaled sub-rect from a native image</short_desc>
          <delta_ts>2020-08-06 14:02:18 -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>Images</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1676772</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-07-31 02:18:55 -0700</bug_when>
    <thetext>The reason for creating the sub-image in GraphicsContext::drawNativeImage() is to have a better image interpolation for the scaled sub-rect. For small destRect, the interpolation on the original image is almost the same as the interpolation on the sub-image. So we should avoid creating the sub-image if destRect.area() is less than some minimum value. This will benefit the case of drawing many small rectangles from a large sprite image.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676774</commentid>
    <comment_count>1</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-07-31 02:19:47 -0700</bug_when>
    <thetext>&lt;rdar://problem/63845893&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676777</commentid>
    <comment_count>2</comment_count>
      <attachid>405677</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-07-31 02:28:38 -0700</bug_when>
    <thetext>Created attachment 405677
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676833</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-07-31 08:58:35 -0700</bug_when>
    <thetext>Does the subimage cache come into play here? Does turning it off change behavior?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677255</commentid>
    <comment_count>4</comment_count>
      <attachid>405817</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-08-03 01:10:05 -0700</bug_when>
    <thetext>Created attachment 405817
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677364</commentid>
    <comment_count>5</comment_count>
      <attachid>405853</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-08-03 12:06:35 -0700</bug_when>
    <thetext>Created attachment 405853
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677368</commentid>
    <comment_count>6</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-08-03 12:19:25 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #3)
&gt; Does the subimage cache come into play here? Does turning it off change
&gt; behavior?

No not really. Subimage cache requires creating the sub images also. So the cost of caching these images is added when the sub-image is rendered for the first time.

For example, a page creates a picker element when it is first needed. When the picker element is popped up, its layer is rendered and the children elements are rendered for the first time. At this time the rendering might be slow if many sub-images are created. 

When the user selects an element from the picker or dismisses it, the picker element is hidden. If the user invokes an action which pops the picker up again, no rendering will be needed. All we need is showing the picker&apos;s layer. So caching and non caching the sub-images will not affect the rendering speed after the first time the sub-images are rendered.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678347</commentid>
    <comment_count>7</comment_count>
      <attachid>406099</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-08-06 12:15:50 -0700</bug_when>
    <thetext>Created attachment 406099
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678389</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-06 14:02:18 -0700</bug_when>
    <thetext>Committed r265346: &lt;https://trac.webkit.org/changeset/265346&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 406099.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405677</attachid>
            <date>2020-07-31 02:28:38 -0700</date>
            <delta_ts>2020-08-03 01:10:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215015-20200731022837.patch</filename>
            <type>text/plain</type>
            <size>2542</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTVlYjZkNzc2NTQ1NDMz
YTAyYWEzNTAxNzE0YzY4MGUwMzQyYzBmZS4uYjdjZGMxMzNjODMwODM2MWFjYzk2MTc3OWRkNjAz
NzZhMmU1OTFmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA3LTMxICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NHXSBB
dm9pZCBjcmVhdGluZyBhIHN1Yi1pbWFnZSB3aGVuIGRyYXdpbmcgYSBzbWFsbCBzY2FsZWQgc3Vi
LXJlY3QgZnJvbSBhIG5hdGl2ZSBpbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE1MDE1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82Mzg0NTg5
Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUg
cmVhc29uIGZvciBjcmVhdGluZyB0aGUgc3ViLWltYWdlIGluIEdyYXBoaWNzQ29udGV4dDo6ZHJh
d05hdGl2ZUltYWdlKCkKKyAgICAgICAgaXMgdG8gaGF2ZSBhIGJldHRlciBpbWFnZSBpbnRlcnBv
bGF0aW9uIGZvciB0aGUgc2NhbGVkIHN1Yi1yZWN0LiBGb3Igc21hbGwKKyAgICAgICAgZGVzdFJl
Y3QsIHRoZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSBvcmlnaW5hbCBpbWFnZSBpcyBhbG1vc3QgdGhl
IHNhbWUgYXMKKyAgICAgICAgdGhlIGludGVycG9sYXRpb24gb24gdGhlIHN1Yi1pbWFnZS4gU28g
d2Ugc2hvdWxkIGF2b2lkIGNyZWF0aW5nIHRoZSBzdWItCisgICAgICAgIGltYWdlIGlmIGRlc3RS
ZWN0LmFyZWEoKSBpcyBsZXNzIHRoYW4gc29tZSBtaW5pbXVtIHZhbHVlLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOgorCiAyMDIwLTA3LTI5ICBN
YXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBDb2RlR2VuZXJhdG9ySlMg
c2hvdWxkIHJlbGVhc2UgdGhlIHRocm93U2NvcGUgYmVmb3JlIGRvaW5nIGEgdm9pZCBjYWxsIGF0
IGVuZCBvZiBhIGZ1bmN0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCmluZGV4IGZiZGQwYTNiYzljYjRh
ODBkZDA5ZmE0OTY1NTNhOWJiMDNiY2Q3YjAuLjg2ODkxZTIxNjczNzhkMDJkMzIzYjY4MjNmM2Nj
Yzg4MDY0ZGM5YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKQEAgLTMxNSw3ICszMTUsOCBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IFJldGFpblB0cjxDR0ltYWdl
UmVmPiYgaW1hZ2UsIGNvbnN0CiAgICAgICAgIC8vIGNvbnRhaW5pbmcgb25seSB0aGUgcG9ydGlv
biB3ZSB3YW50IHRvIGRpc3BsYXkuIFdlIG5lZWQgdG8gZG8gdGhpcyBiZWNhdXNlIGhpZ2gtcXVh
bGl0eQogICAgICAgICAvLyBpbnRlcnBvbGF0aW9uIHNtb290aGVzIHNoYXJwIGVkZ2VzLCBjYXVz
aW5nIHBpeGVscyBmcm9tIG91dHNpZGUgdGhlIHNvdXJjZSByZWN0IHRvIGJsZWVkCiAgICAgICAg
IC8vIGludG8gdGhlIGRlc3RpbmF0aW9uIHJlY3QuIFNlZSA8cmRhcjovL3Byb2JsZW0vNjExMjkw
OT4uCi0gICAgICAgIHNob3VsZFVzZVN1YmltYWdlID0gKGludGVycG9sYXRpb25RdWFsaXR5ICE9
IGtDR0ludGVycG9sYXRpb25Ob25lKSAmJiAoc3JjUmVjdC5zaXplKCkgIT0gZGVzdFJlY3Quc2l6
ZSgpIHx8ICFnZXRDVE0oKS5pc0lkZW50aXR5T3JUcmFuc2xhdGlvbk9yRmxpcHBlZCgpKTsKKyAg
ICAgICAgY29uc3QgZmxvYXQgbWluaW11bUludGVycG9sYXRlZFN1YmltYWdlQXJlYSA9IDE2MDA7
CisgICAgICAgIHNob3VsZFVzZVN1YmltYWdlID0gKGludGVycG9sYXRpb25RdWFsaXR5ICE9IGtD
R0ludGVycG9sYXRpb25Ob25lKSAmJiAoZGVzdFJlY3QuYXJlYSgpID4gbWluaW11bUludGVycG9s
YXRlZFN1YmltYWdlQXJlYSAmJiAoc3JjUmVjdC5zaXplKCkgIT0gZGVzdFJlY3Quc2l6ZSgpIHx8
ICFnZXRDVE0oKS5pc0lkZW50aXR5T3JUcmFuc2xhdGlvbk9yRmxpcHBlZCgpKSk7CiAgICAgICAg
IGZsb2F0IHhTY2FsZSA9IHNyY1JlY3Qud2lkdGgoKSAvIGRlc3RSZWN0LndpZHRoKCk7CiAgICAg
ICAgIGZsb2F0IHlTY2FsZSA9IHNyY1JlY3QuaGVpZ2h0KCkgLyBkZXN0UmVjdC5oZWlnaHQoKTsK
ICAgICAgICAgaWYgKHNob3VsZFVzZVN1YmltYWdlKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405817</attachid>
            <date>2020-08-03 01:10:05 -0700</date>
            <delta_ts>2020-08-03 12:06:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215015-20200803011004.patch</filename>
            <type>text/plain</type>
            <size>10732</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTVlYjZkNzc2NTQ1NDMz
YTAyYWEzNTAxNzE0YzY4MGUwMzQyYzBmZS4uYjdjZGMxMzNjODMwODM2MWFjYzk2MTc3OWRkNjAz
NzZhMmU1OTFmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA3LTMxICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NHXSBB
dm9pZCBjcmVhdGluZyBhIHN1Yi1pbWFnZSB3aGVuIGRyYXdpbmcgYSBzbWFsbCBzY2FsZWQgc3Vi
LXJlY3QgZnJvbSBhIG5hdGl2ZSBpbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE1MDE1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82Mzg0NTg5
Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUg
cmVhc29uIGZvciBjcmVhdGluZyB0aGUgc3ViLWltYWdlIGluIEdyYXBoaWNzQ29udGV4dDo6ZHJh
d05hdGl2ZUltYWdlKCkKKyAgICAgICAgaXMgdG8gaGF2ZSBhIGJldHRlciBpbWFnZSBpbnRlcnBv
bGF0aW9uIGZvciB0aGUgc2NhbGVkIHN1Yi1yZWN0LiBGb3Igc21hbGwKKyAgICAgICAgZGVzdFJl
Y3QsIHRoZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSBvcmlnaW5hbCBpbWFnZSBpcyBhbG1vc3QgdGhl
IHNhbWUgYXMKKyAgICAgICAgdGhlIGludGVycG9sYXRpb24gb24gdGhlIHN1Yi1pbWFnZS4gU28g
d2Ugc2hvdWxkIGF2b2lkIGNyZWF0aW5nIHRoZSBzdWItCisgICAgICAgIGltYWdlIGlmIGRlc3RS
ZWN0LmFyZWEoKSBpcyBsZXNzIHRoYW4gc29tZSBtaW5pbXVtIHZhbHVlLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOgorCiAyMDIwLTA3LTI5ICBN
YXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBDb2RlR2VuZXJhdG9ySlMg
c2hvdWxkIHJlbGVhc2UgdGhlIHRocm93U2NvcGUgYmVmb3JlIGRvaW5nIGEgdm9pZCBjYWxsIGF0
IGVuZCBvZiBhIGZ1bmN0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCmluZGV4IGZiZGQwYTNiYzljYjRh
ODBkZDA5ZmE0OTY1NTNhOWJiMDNiY2Q3YjAuLjZhZDhiMGQxNTZlYjk4NDdhNzNhNzQwOGIxZGFk
ZjBjZWZjY2EyMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKQEAgLTI4MCw2ICsyODAsNDAgQEAgdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OnJlc3RvcmVQbGF0Zm9ybVN0YXRlKCkKICAgICBtX2RhdGEtPm1f
dXNlclRvRGV2aWNlVHJhbnNmb3JtS25vd25Ub0JlSWRlbnRpdHkgPSBmYWxzZTsKIH0KIAorc3Rh
dGljIFJldGFpblB0cjxDR0ltYWdlUmVmPiBjcmVhdGVPckdldFN1YkltYWdlKGNvbnN0IFJldGFp
blB0cjxDR0ltYWdlUmVmPiYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlT3JpZW50YXRpb24mIG9yaWVudGF0aW9u
KQoreworICAgIEZsb2F0UmVjdCBzdWJJbWFnZVJlY3QgPSBzcmNSZWN0OworCisgICAgLy8gc3Vi
aW1hZ2VSZWN0IGlzIGluIGxvZ2ljYWwgY29vcmRpbmF0ZXMuIGdldFN1YmltYWdlKCkgZGVhbHMg
d2l0aCBub25lLW9yaWVudGVkCisgICAgLy8gaW1hZ2UuIFdlIG5lZWQgdG8gY29udmVydCBzdWJp
bWFnZVJlY3QgdG8gcGh5c2ljYWwgaW1hZ2UgY29vcmRpbmF0ZXMuCisgICAgaWYgKG9yaWVudGF0
aW9uICE9IEltYWdlT3JpZW50YXRpb246Ok5vbmUpIHsKKyAgICAgICAgaWYgKGF1dG8gdHJhbnNm
b3JtID0gb3JpZW50YXRpb24udHJhbnNmb3JtRnJvbURlZmF1bHQoaW1hZ2VTaXplKS5pbnZlcnNl
KCkpCisgICAgICAgICAgICBzdWJJbWFnZVJlY3QgPSB0cmFuc2Zvcm0tPm1hcFJlY3Qoc3ViSW1h
Z2VSZWN0KTsKKyAgICB9CisgICAgCisjaWYgQ0FDSEVfU1VCSU1BR0VTCisgICAgcmV0dXJuIFN1
YmltYWdlQ2FjaGVXaXRoVGltZXI6OmdldFN1YmltYWdlKGltYWdlLmdldCgpLCBzdWJJbWFnZVJl
Y3QpOworI2Vsc2UKKyAgICByZXR1cm4gYWRvcHRDRihDR0ltYWdlQ3JlYXRlV2l0aEltYWdlSW5S
ZWN0KGltYWdlLmdldCgpLCBzdWJJbWFnZVJlY3QpKTsKKyNlbmRpZgorfQorCitzdGF0aWMgRmxv
YXRTaXplIHRydW5jYXRlZFNpemVGb3JQYXJ0aWFsbHlMb2FkZWRJbWFnZShjb25zdCBSZXRhaW5Q
dHI8Q0dJbWFnZVJlZj4mIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3Qg
SW1hZ2VPcmllbnRhdGlvbiYgb3JpZW50YXRpb24pCit7CisgICAgaWYgKG9yaWVudGF0aW9uID09
IEltYWdlT3JpZW50YXRpb246Ok5vbmUpCisgICAgICAgIHJldHVybiBpbWFnZVNpemU7CisgICAg
CisgICAgYXV0byB0cmFuc2Zvcm0gPSBvcmllbnRhdGlvbi50cmFuc2Zvcm1Gcm9tRGVmYXVsdChp
bWFnZVNpemUpOworICAgIGF1dG8gc2l6ZSA9IHRyYW5zZm9ybS5pbnZlcnNlKCkudmFsdWVPcihB
ZmZpbmVUcmFuc2Zvcm0oKSkubWFwU2l6ZShpbWFnZVNpemUpOworCisgICAgZmxvYXQgaGVpZ2h0
ID0gQ0dJbWFnZUdldEhlaWdodChpbWFnZS5nZXQoKSk7CisgICAgaWYgKGhlaWdodCA8PSBzaXpl
LmhlaWdodCgpKQorICAgICAgICByZXR1cm4gaW1hZ2VTaXplOworCisgICAgc2l6ZS5zZXRIZWln
aHQoaGVpZ2h0KTsKKyAgICByZXR1cm4gdHJhbnNmb3JtLm1hcFNpemUoc2l6ZSk7Cit9CisKIHZv
aWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UoY29uc3QgUmV0YWluUHRyPENHSW1h
Z2VSZWY+JiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKQEAgLTI5
MCw2NyArMzI0LDUwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UoY29u
c3QgUmV0YWluUHRyPENHSW1hZ2VSZWY+JiBpbWFnZSwgY29uc3QKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAorICAgIGF1dG8gY3VycmVudEltYWdlU2l6ZSA9IHRydW5jYXRlZFNpemVGb3JQYXJ0
aWFsbHlMb2FkZWRJbWFnZShpbWFnZSwgaW1hZ2VTaXplLCBvcHRpb25zLm9yaWVudGF0aW9uKCkp
OworICAgIGlmIChjdXJyZW50SW1hZ2VTaXplLmhlaWdodCgpIDw9IHNyY1JlY3QueSgpKQorICAg
ICAgICByZXR1cm47CisKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgTW9ub3RvbmljVGltZSBzdGFy
dFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKICNlbmRpZgotICAgIFJldGFpblB0cjxDR0lt
YWdlUmVmPiBzdWJJbWFnZShpbWFnZSk7Ci0KLSAgICBmbG9hdCBjdXJySGVpZ2h0ID0gb3B0aW9u
cy5vcmllbnRhdGlvbigpLnVzZXNXaWR0aEFzSGVpZ2h0KCkgPyBDR0ltYWdlR2V0V2lkdGgoc3Vi
SW1hZ2UuZ2V0KCkpIDogQ0dJbWFnZUdldEhlaWdodChzdWJJbWFnZS5nZXQoKSk7Ci0gICAgaWYg
KGN1cnJIZWlnaHQgPD0gc3JjUmVjdC55KCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIENHQ29u
dGV4dFJlZiBjb250ZXh0ID0gcGxhdGZvcm1Db250ZXh0KCk7CiAgICAgQ0dBZmZpbmVUcmFuc2Zv
cm0gdHJhbnNmb3JtID0gQ0dDb250ZXh0R2V0Q1RNKGNvbnRleHQpOwogICAgIENHQ29udGV4dFN0
YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0LCBmYWxzZSk7Ci0gICAgCi0gICAgYm9vbCBzaG91
bGRVc2VTdWJpbWFnZSA9IGZhbHNlOwogCi0gICAgLy8gSWYgdGhlIHNvdXJjZSByZWN0IGlzIGEg
c3VicG9ydGlvbiBvZiB0aGUgaW1hZ2UsIHRoZW4gd2UgY29tcHV0ZSBhbiBpbmZsYXRlZCBkZXN0
aW5hdGlvbiByZWN0IHRoYXQgd2lsbCBob2xkIHRoZSBlbnRpcmUgaW1hZ2UKLSAgICAvLyBhbmQg
dGhlbiBzZXQgYSBjbGlwIHRvIHRoZSBwb3J0aW9uIHRoYXQgd2Ugd2FudCB0byBkaXNwbGF5Lgot
ICAgIEZsb2F0UmVjdCBhZGp1c3RlZERlc3RSZWN0ID0gZGVzdFJlY3Q7CisgICAgUmV0YWluUHRy
PENHSW1hZ2VSZWY+IGFjdGl2ZUltYWdlOworICAgIEZsb2F0UmVjdCBhZGp1c3RlZERlc3RSZWN0
OworICAgIEZsb2F0U2l6ZSBzY2FsZSA9IGRlc3RSZWN0LnNpemUoKSAvIHNyY1JlY3Quc2l6ZSgp
OwogCi0gICAgaWYgKHNyY1JlY3Quc2l6ZSgpICE9IGltYWdlU2l6ZSkgeworICAgIGlmIChzcmNS
ZWN0LnNpemUoKSA9PSBpbWFnZVNpemUpIHsKKyAgICAgICAgYWN0aXZlSW1hZ2UgPSBpbWFnZTsK
KyAgICAgICAgaWYgKGltYWdlU2l6ZSA9PSBjdXJyZW50SW1hZ2VTaXplKQorICAgICAgICAgICAg
YWRqdXN0ZWREZXN0UmVjdCA9IGRlc3RSZWN0OworICAgICAgICBlbHNlCisgICAgICAgICAgICBh
ZGp1c3RlZERlc3RSZWN0ID0geyBkZXN0UmVjdC5sb2NhdGlvbigpLCAoZGVzdFJlY3Quc2l6ZSgp
ICogY3VycmVudEltYWdlU2l6ZSkgLyBpbWFnZVNpemUgfTsKKyAgICB9IGVsc2UgewogICAgICAg
ICBDR0ludGVycG9sYXRpb25RdWFsaXR5IGludGVycG9sYXRpb25RdWFsaXR5ID0gQ0dDb250ZXh0
R2V0SW50ZXJwb2xhdGlvblF1YWxpdHkoY29udGV4dCk7Ci0gICAgICAgIC8vIFdoZW4gdGhlIGlt
YWdlIGlzIHNjYWxlZCB1c2luZyBoaWdoLXF1YWxpdHkgaW50ZXJwb2xhdGlvbiwgd2UgY3JlYXRl
IGEgdGVtcG9yYXJ5IENHSW1hZ2UKLSAgICAgICAgLy8gY29udGFpbmluZyBvbmx5IHRoZSBwb3J0
aW9uIHdlIHdhbnQgdG8gZGlzcGxheS4gV2UgbmVlZCB0byBkbyB0aGlzIGJlY2F1c2UgaGlnaC1x
dWFsaXR5Ci0gICAgICAgIC8vIGludGVycG9sYXRpb24gc21vb3RoZXMgc2hhcnAgZWRnZXMsIGNh
dXNpbmcgcGl4ZWxzIGZyb20gb3V0c2lkZSB0aGUgc291cmNlIHJlY3QgdG8gYmxlZWQKLSAgICAg
ICAgLy8gaW50byB0aGUgZGVzdGluYXRpb24gcmVjdC4gU2VlIDxyZGFyOi8vcHJvYmxlbS82MTEy
OTA5Pi4KLSAgICAgICAgc2hvdWxkVXNlU3ViaW1hZ2UgPSAoaW50ZXJwb2xhdGlvblF1YWxpdHkg
IT0ga0NHSW50ZXJwb2xhdGlvbk5vbmUpICYmIChzcmNSZWN0LnNpemUoKSAhPSBkZXN0UmVjdC5z
aXplKCkgfHwgIWdldENUTSgpLmlzSWRlbnRpdHlPclRyYW5zbGF0aW9uT3JGbGlwcGVkKCkpOwot
ICAgICAgICBmbG9hdCB4U2NhbGUgPSBzcmNSZWN0LndpZHRoKCkgLyBkZXN0UmVjdC53aWR0aCgp
OwotICAgICAgICBmbG9hdCB5U2NhbGUgPSBzcmNSZWN0LmhlaWdodCgpIC8gZGVzdFJlY3QuaGVp
Z2h0KCk7Ci0gICAgICAgIGlmIChzaG91bGRVc2VTdWJpbWFnZSkgewotICAgICAgICAgICAgRmxv
YXRSZWN0IHN1YmltYWdlUmVjdCA9IHNyY1JlY3Q7Ci0gICAgICAgICAgICBmbG9hdCBsZWZ0UGFk
ZGluZyA9IHNyY1JlY3QueCgpIC0gZmxvb3JmKHNyY1JlY3QueCgpKTsKLSAgICAgICAgICAgIGZs
b2F0IHRvcFBhZGRpbmcgPSBzcmNSZWN0LnkoKSAtIGZsb29yZihzcmNSZWN0LnkoKSk7Ci0KLSAg
ICAgICAgICAgIHN1YmltYWdlUmVjdC5tb3ZlKC1sZWZ0UGFkZGluZywgLXRvcFBhZGRpbmcpOwot
ICAgICAgICAgICAgYWRqdXN0ZWREZXN0UmVjdC5tb3ZlKC1sZWZ0UGFkZGluZyAvIHhTY2FsZSwg
LXRvcFBhZGRpbmcgLyB5U2NhbGUpOwotCi0gICAgICAgICAgICBzdWJpbWFnZVJlY3Quc2V0V2lk
dGgoY2VpbGYoc3ViaW1hZ2VSZWN0LndpZHRoKCkgKyBsZWZ0UGFkZGluZykpOwotICAgICAgICAg
ICAgYWRqdXN0ZWREZXN0UmVjdC5zZXRXaWR0aChzdWJpbWFnZVJlY3Qud2lkdGgoKSAvIHhTY2Fs
ZSk7Ci0KLSAgICAgICAgICAgIHN1YmltYWdlUmVjdC5zZXRIZWlnaHQoY2VpbGYoc3ViaW1hZ2VS
ZWN0LmhlaWdodCgpICsgdG9wUGFkZGluZykpOwotICAgICAgICAgICAgYWRqdXN0ZWREZXN0UmVj
dC5zZXRIZWlnaHQoc3ViaW1hZ2VSZWN0LmhlaWdodCgpIC8geVNjYWxlKTsKLQotICAgICAgICAg
ICAgLy8gc3ViaW1hZ2VSZWN0IGlzIGluIGxvZ2ljYWwgY29vcmRpbmF0ZXMuIGdldFN1YmltYWdl
KCkgZGVhbHMgd2l0aCBub25lLW9yaWVudGVkCi0gICAgICAgICAgICAvLyBpbWFnZS4gV2UgbmVl
ZCB0byBjb252ZXJ0IHN1YmltYWdlUmVjdCB0byBwaHlzaWNhbCBpbWFnZSBjb29yZGluYXRlcy4K
LSAgICAgICAgICAgIGlmIChvcHRpb25zLm9yaWVudGF0aW9uKCkgIT0gSW1hZ2VPcmllbnRhdGlv
bjo6Tm9uZSkgewotICAgICAgICAgICAgICAgIGlmIChhdXRvIHRyYW5zZm9ybSA9IG9wdGlvbnMu
b3JpZW50YXRpb24oKS50cmFuc2Zvcm1Gcm9tRGVmYXVsdChpbWFnZVNpemUpLmludmVyc2UoKSkK
LSAgICAgICAgICAgICAgICAgICAgc3ViaW1hZ2VSZWN0ID0gdHJhbnNmb3JtLnZhbHVlKCkubWFw
UmVjdChzdWJpbWFnZVJlY3QpOwotICAgICAgICAgICAgfQotCi0jaWYgQ0FDSEVfU1VCSU1BR0VT
Ci0gICAgICAgICAgICBzdWJJbWFnZSA9IFN1YmltYWdlQ2FjaGVXaXRoVGltZXI6OmdldFN1Ymlt
YWdlKHN1YkltYWdlLmdldCgpLCBzdWJpbWFnZVJlY3QpOwotI2Vsc2UKLSAgICAgICAgICAgIHN1
YkltYWdlID0gYWRvcHRDRihDR0ltYWdlQ3JlYXRlV2l0aEltYWdlSW5SZWN0KHN1YkltYWdlLmdl
dCgpLCBzdWJpbWFnZVJlY3QpKTsKLSNlbmRpZgotICAgICAgICAgICAgaWYgKGN1cnJIZWlnaHQg
PCBzcmNSZWN0Lm1heFkoKSkgewotICAgICAgICAgICAgICAgIEFTU0VSVChDR0ltYWdlR2V0SGVp
Z2h0KHN1YkltYWdlLmdldCgpKSA9PSBjdXJySGVpZ2h0IC0gQ0dSZWN0SW50ZWdyYWwoc3JjUmVj
dCkub3JpZ2luLnkpOwotICAgICAgICAgICAgICAgIGFkanVzdGVkRGVzdFJlY3Quc2V0SGVpZ2h0
KENHSW1hZ2VHZXRIZWlnaHQoc3ViSW1hZ2UuZ2V0KCkpIC8geVNjYWxlKTsKLSAgICAgICAgICAg
IH0KKyAgICAgICAgY29uc3QgZmxvYXQgbWluaW11bUFyZWFGb3JJbnRlcnBvbGF0aW9uID0gNDAg
KiA0MDsKKyAgICAgICAgYm9vbCBzaG91bGRVc2VTdWJpbWFnZSA9IChpbnRlcnBvbGF0aW9uUXVh
bGl0eSAhPSBrQ0dJbnRlcnBvbGF0aW9uTm9uZSkgJiYgKHNjYWxlLmlzRW1wdHkoKSB8fCBkZXN0
UmVjdC5hcmVhKCkgPiBtaW5pbXVtQXJlYUZvckludGVycG9sYXRpb24pICYmIChzcmNSZWN0LnNp
emUoKSAhPSBkZXN0UmVjdC5zaXplKCkgfHwgIWdldENUTSgpLmlzSWRlbnRpdHlPclRyYW5zbGF0
aW9uT3JGbGlwcGVkKCkpOworCisgICAgICAgIGlmICghc2hvdWxkVXNlU3ViaW1hZ2UpIHsKKyAg
ICAgICAgICAgIGFjdGl2ZUltYWdlID0gaW1hZ2U7CisgICAgICAgICAgICAvLyBhZGp1c3RlZERl
c3RSZWN0IGlzIGFuIGluZmxhdGVkIGRlc3RpbmF0aW9uIHJlY3QgdGhhdCB3aWxsIGhvbGQgdGhl
IGVudGlyZSBpbWFnZSBhbmQgdGhlbgorICAgICAgICAgICAgLy8gc2V0IGEgY2xpcCB0byB0aGUg
cG9ydGlvbiB0aGF0IHdlIHdhbnQgdG8gZGlzcGxheS4KKyAgICAgICAgICAgIGFkanVzdGVkRGVz
dFJlY3QgPSB7IC1zcmNSZWN0LmxvY2F0aW9uKCksIGN1cnJlbnRJbWFnZVNpemUgfTsKKyAgICAg
ICAgICAgIGFkanVzdGVkRGVzdFJlY3Quc2NhbGUoc2NhbGUpOworICAgICAgICAgICAgYWRqdXN0
ZWREZXN0UmVjdC5tb3ZlQnkoZGVzdFJlY3QubG9jYXRpb24oKSk7CiAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICBhZGp1c3RlZERlc3RSZWN0LnNldExvY2F0aW9uKEZsb2F0UG9pbnQoZGVz
dFJlY3QueCgpIC0gc3JjUmVjdC54KCkgLyB4U2NhbGUsIGRlc3RSZWN0LnkoKSAtIHNyY1JlY3Qu
eSgpIC8geVNjYWxlKSk7Ci0gICAgICAgICAgICBhZGp1c3RlZERlc3RSZWN0LnNldFNpemUoRmxv
YXRTaXplKGltYWdlU2l6ZS53aWR0aCgpIC8geFNjYWxlLCBpbWFnZVNpemUuaGVpZ2h0KCkgLyB5
U2NhbGUpKTsKKyAgICAgICAgICAgIC8vIGFjdGl2ZUltYWdlIGlzIGEgdGVtcG9yYXJ5IENHSW1h
Z2UgY29udGFpbmluZyBvbmx5IHRoZSBwb3J0aW9uIHdlIHdhbnQgdG8gZGlzcGxheS4gV2UgbmVl
ZAorICAgICAgICAgICAgLy8gdG8gZG8gdGhpcyBiZWNhdXNlIGhpZ2gtcXVhbGl0eSBpbnRlcnBv
bGF0aW9uIHNtb290aGVzIHNoYXJwIGVkZ2VzLCBjYXVzaW5nIHBpeGVscyBmcm9tCisgICAgICAg
ICAgICAvLyBvdXRzaWRlIHRoZSBzb3VyY2UgcmVjdCB0byBibGVlZCBpbnRvIHRoZSBkZXN0aW5h
dGlvbiByZWN0LiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzYxMTI5MDk+LgorICAgICAgICAgICAgRmxv
YXRSZWN0IHN1YkltYWdlUmVjdCA9IHsgZmxvb3JlZEludFBvaW50KHNyY1JlY3QubG9jYXRpb24o
KSksIGNlaWxlZEludFBvaW50KHNyY1JlY3QubWF4WE1heFlDb3JuZXIoKSkgfTsKKyAgICAgICAg
ICAgIGFjdGl2ZUltYWdlID0gY3JlYXRlT3JHZXRTdWJJbWFnZShpbWFnZSwgaW1hZ2VTaXplLCBz
dWJJbWFnZVJlY3QsIG9wdGlvbnMub3JpZW50YXRpb24oKSk7CisKKyAgICAgICAgICAgIGF1dG8g
YWN0aXZlU3ViSW1hZ2VTaXplID0gdHJ1bmNhdGVkU2l6ZUZvclBhcnRpYWxseUxvYWRlZEltYWdl
KGFjdGl2ZUltYWdlLCBzdWJJbWFnZVJlY3Quc2l6ZSgpLCBvcHRpb25zLm9yaWVudGF0aW9uKCkp
OworICAgICAgICAgICAgYWRqdXN0ZWREZXN0UmVjdCA9IHsgRmxvYXRQb2ludChzdWJJbWFnZVJl
Y3QubG9jYXRpb24oKSAtIHNyY1JlY3QubG9jYXRpb24oKSksIGFjdGl2ZVN1YkltYWdlU2l6ZSB9
OworICAgICAgICAgICAgYWRqdXN0ZWREZXN0UmVjdC5zY2FsZShzY2FsZSk7CisgICAgICAgICAg
ICBhZGp1c3RlZERlc3RSZWN0Lm1vdmVCeShkZXN0UmVjdC5sb2NhdGlvbigpKTsKICAgICAgICAg
fQogCiAgICAgICAgIGlmICghZGVzdFJlY3QuY29udGFpbnMoYWRqdXN0ZWREZXN0UmVjdCkpIHsK
QEAgLTM1OSwxMCArMzc2LDYgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFn
ZShjb25zdCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4mIGltYWdlLCBjb25zdAogICAgICAgICB9CiAg
ICAgfQogCi0gICAgLy8gSWYgdGhlIGltYWdlIGlzIG9ubHkgcGFydGlhbGx5IGxvYWRlZCwgdGhl
biBzaHJpbmsgdGhlIGRlc3RpbmF0aW9uIHJlY3QgdGhhdCB3ZSdyZSBkcmF3aW5nIGludG8gYWNj
b3JkaW5nbHkuCi0gICAgaWYgKCFzaG91bGRVc2VTdWJpbWFnZSAmJiBjdXJySGVpZ2h0IDwgaW1h
Z2VTaXplLmhlaWdodCgpKQotICAgICAgICBhZGp1c3RlZERlc3RSZWN0LnNldEhlaWdodChhZGp1
c3RlZERlc3RSZWN0LmhlaWdodCgpICogY3VyckhlaWdodCAvIGltYWdlU2l6ZS5oZWlnaHQoKSk7
Ci0KICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGJvb2wgd2FzQW50aWFsaWFzZWQgPSBD
R0NvbnRleHRHZXRTaG91bGRBbnRpYWxpYXMoY29udGV4dCk7CiAgICAgLy8gQW50aS1hbGlhc2lu
ZyBpcyBvbiBieSBkZWZhdWx0IG9uIHRoZSBpUGhvbmUuIE5lZWQgdG8gdHVybiBpdCBvZmYgd2hl
biBkcmF3aW5nIGltYWdlcy4KQEAgLTM4MywxNyArMzk2LDE3IEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0OjpkcmF3TmF0aXZlSW1hZ2UoY29uc3QgUmV0YWluUHRyPENHSW1hZ2VSZWY+JiBpbWFnZSwg
Y29uc3QKICAgICAgICAgaWYgKG9wdGlvbnMub3JpZW50YXRpb24oKS51c2VzV2lkdGhBc0hlaWdo
dCgpKSB7CiAgICAgICAgICAgICAvLyBUaGUgZGVzdGluYXRpb24gcmVjdCB3aWxsIGhhdmUgaXQn
cyB3aWR0aCBhbmQgaGVpZ2h0IGFscmVhZHkgcmV2ZXJzZWQgZm9yIHRoZSBvcmllbnRhdGlvbiBv
ZgogICAgICAgICAgICAgLy8gdGhlIGltYWdlLCBhcyBpdCB3YXMgbmVlZGVkIGZvciBwYWdlIGxh
eW91dCwgc28gd2UgbmVlZCB0byByZXZlcnNlIGl0IGJhY2sgaGVyZS4KLSAgICAgICAgICAgIGFk
anVzdGVkRGVzdFJlY3QgPSBGbG9hdFJlY3QoYWRqdXN0ZWREZXN0UmVjdC54KCksIGFkanVzdGVk
RGVzdFJlY3QueSgpLCBhZGp1c3RlZERlc3RSZWN0LmhlaWdodCgpLCBhZGp1c3RlZERlc3RSZWN0
LndpZHRoKCkpOworICAgICAgICAgICAgYWRqdXN0ZWREZXN0UmVjdC5zZXRTaXplKGFkanVzdGVk
RGVzdFJlY3Quc2l6ZSgpLnRyYW5zcG9zZWRTaXplKCkpOwogICAgICAgICB9CiAgICAgfQotICAg
IAorCiAgICAgLy8gRmxpcCB0aGUgY29vcmRzLgogICAgIENHQ29udGV4dFRyYW5zbGF0ZUNUTShj
b250ZXh0LCAwLCBhZGp1c3RlZERlc3RSZWN0LmhlaWdodCgpKTsKICAgICBDR0NvbnRleHRTY2Fs
ZUNUTShjb250ZXh0LCAxLCAtMSk7CiAKICAgICAvLyBEcmF3IHRoZSBpbWFnZS4KLSAgICBDR0Nv
bnRleHREcmF3SW1hZ2UoY29udGV4dCwgYWRqdXN0ZWREZXN0UmVjdCwgc3ViSW1hZ2UuZ2V0KCkp
OwotICAgIAorICAgIENHQ29udGV4dERyYXdJbWFnZShjb250ZXh0LCBhZGp1c3RlZERlc3RSZWN0
LCBhY3RpdmVJbWFnZS5nZXQoKSk7CisKICAgICBpZiAoIXN0YXRlU2F2ZXIuZGlkU2F2ZSgpKSB7
CiAgICAgICAgIENHQ29udGV4dFNldENUTShjb250ZXh0LCB0cmFuc2Zvcm0pOwogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405853</attachid>
            <date>2020-08-03 12:06:35 -0700</date>
            <delta_ts>2020-08-06 12:15:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215015-20200803120635.patch</filename>
            <type>text/plain</type>
            <size>11028</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTVlYjZkNzc2NTQ1NDMz
YTAyYWEzNTAxNzE0YzY4MGUwMzQyYzBmZS4uZjdmOTY2MjlmNjBkMTU1ZmZkOGRlZTQ1YzYzMWFh
YzYwZmQ0YTUxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTA4LTAzICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NHXSBB
dm9pZCBjcmVhdGluZyBhIHN1Yi1pbWFnZSB3aGVuIGRyYXdpbmcgYSBzbWFsbCBzY2FsZWQgc3Vi
LXJlY3QgZnJvbSBhIG5hdGl2ZSBpbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE1MDE1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82Mzg0NTg5
Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUg
cmVhc29uIGZvciBjcmVhdGluZyB0aGUgc3ViLWltYWdlIGluIEdyYXBoaWNzQ29udGV4dDo6ZHJh
d05hdGl2ZUltYWdlKCkKKyAgICAgICAgaXMgdG8gaGF2ZSBhIGJldHRlciBpbWFnZSBpbnRlcnBv
bGF0aW9uIGZvciB0aGUgc2NhbGVkIHN1Yi1yZWN0LiBGb3Igc21hbGwKKyAgICAgICAgZGVzdFJl
Y3QsIHRoZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSBvcmlnaW5hbCBpbWFnZSBpcyBhbG1vc3QgdGhl
IHNhbWUgYXMKKyAgICAgICAgdGhlIGludGVycG9sYXRpb24gb24gdGhlIHN1Yi1pbWFnZS4gU28g
d2Ugc2hvdWxkIGF2b2lkIGNyZWF0aW5nIHRoZSBzdWItCisgICAgICAgIGltYWdlIGlmIGRlc3RS
ZWN0LmFyZWEoKSBpcyBsZXNzIHRoYW4gc29tZSBtaW5pbXVtIHZhbHVlLiBDcmVhdGluZyBtYW55
CisgICAgICAgIHN1Yi1pbWFnZXMgY2FuIGFmZmVjdCB0aGUgcmVuZGVyaW5nIHBlcmZvcm1hbmNl
LgorCisgICAgICAgIEluIHRoaXMgcGF0Y2gsIGRyYXdOYXRpdmVJbWFnZSgpIGlzIHJlLWZhY3Rv
cmVkIHN1Y2ggdGhhdCBhZGp1c3RlZERlc3RSZWN0CisgICAgICAgIGlzIGNhbGN1bGF0ZWQgaW4g
b25lIHBsYWNlIGZvciBldmVyeSBjYXNlIHdpdGhvdXQgZGl2ZXJnaW5nIHRoZSBjb2RlIHdoaWNo
CisgICAgICAgIGNhbGN1bGF0ZXMgaXQgYW5kIHRoZW4gY29udmVyZ2luZyBpdCBhZ2Fpbi4KKwor
ICAgICAgICBBbHNvIHRoZSBpbWFnZSBvcmllbnRhdGlvbiBjYWxjdWxhdGlvbiBjb2RlIGlzIGNs
ZWFuZWQgdXAuIEZldyBwbGFjZXMgd2VyZQorICAgICAgICBtaXNzaW5nIHRyYW5zcG9zaW5nIHRo
ZSBpbWFnZSBzaXplLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3ND
b250ZXh0Q0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlT3JHZXRDYWNoZWRTdWJJbWFn
ZSk6CisgICAgICAgIChXZWJDb3JlOjp0cnVuY2F0ZWRTaXplRm9yUGFydGlhbGx5TG9hZGVkSW1h
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2Up
OgorCiAyMDIwLTA3LTI5ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAg
ICBDb2RlR2VuZXJhdG9ySlMgc2hvdWxkIHJlbGVhc2UgdGhlIHRocm93U2NvcGUgYmVmb3JlIGRv
aW5nIGEgdm9pZCBjYWxsIGF0IGVuZCBvZiBhIGZ1bmN0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCmlu
ZGV4IGZiZGQwYTNiYzljYjRhODBkZDA5ZmE0OTY1NTNhOWJiMDNiY2Q3YjAuLjJiOTk0Y2NkOWNh
YTcyYzFkMDFhZGRhZjVhM2JhN2JkMTM3NGRiNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKQEAgLTI4
MCw2ICsyODAsMzEgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnJlc3RvcmVQbGF0Zm9ybVN0YXRl
KCkKICAgICBtX2RhdGEtPm1fdXNlclRvRGV2aWNlVHJhbnNmb3JtS25vd25Ub0JlSWRlbnRpdHkg
PSBmYWxzZTsKIH0KIAorc3RhdGljIFJldGFpblB0cjxDR0ltYWdlUmVmPiBjcmVhdGVPckdldENh
Y2hlZFN1YkltYWdlKGNvbnN0IFJldGFpblB0cjxDR0ltYWdlUmVmPiYgaW1hZ2UsIGNvbnN0IEZs
b2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdl
T3JpZW50YXRpb24mIG9yaWVudGF0aW9uKQoreworICAgIEZsb2F0UmVjdCBzdWJJbWFnZVJlY3Qg
PSBzcmNSZWN0OworCisgICAgLy8gc3ViaW1hZ2VSZWN0IGlzIGluIGxvZ2ljYWwgY29vcmRpbmF0
ZXMuIGdldFN1YmltYWdlKCkgZGVhbHMgd2l0aCBub25lLW9yaWVudGVkCisgICAgLy8gaW1hZ2Uu
IFdlIG5lZWQgdG8gY29udmVydCBzdWJpbWFnZVJlY3QgdG8gcGh5c2ljYWwgaW1hZ2UgY29vcmRp
bmF0ZXMuCisgICAgaWYgKG9yaWVudGF0aW9uICE9IEltYWdlT3JpZW50YXRpb246Ok5vbmUpIHsK
KyAgICAgICAgaWYgKGF1dG8gdHJhbnNmb3JtID0gb3JpZW50YXRpb24udHJhbnNmb3JtRnJvbURl
ZmF1bHQoaW1hZ2VTaXplKS5pbnZlcnNlKCkpCisgICAgICAgICAgICBzdWJJbWFnZVJlY3QgPSB0
cmFuc2Zvcm0tPm1hcFJlY3Qoc3ViSW1hZ2VSZWN0KTsKKyAgICB9CisgICAgCisjaWYgQ0FDSEVf
U1VCSU1BR0VTCisgICAgcmV0dXJuIFN1YmltYWdlQ2FjaGVXaXRoVGltZXI6OmdldFN1YmltYWdl
KGltYWdlLmdldCgpLCBzdWJJbWFnZVJlY3QpOworI2Vsc2UKKyAgICByZXR1cm4gYWRvcHRDRihD
R0ltYWdlQ3JlYXRlV2l0aEltYWdlSW5SZWN0KGltYWdlLmdldCgpLCBzdWJJbWFnZVJlY3QpKTsK
KyNlbmRpZgorfQorCitzdGF0aWMgRmxvYXRTaXplIHRydW5jYXRlZFNpemVGb3JQYXJ0aWFsbHlM
b2FkZWRJbWFnZShjb25zdCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4mIGltYWdlLCBjb25zdCBGbG9h
dFNpemUmIGltYWdlU2l6ZSwgY29uc3QgSW1hZ2VPcmllbnRhdGlvbiYgb3JpZW50YXRpb24pCit7
CisgICAgYXV0byBzaXplID0gb3JpZW50YXRpb24udXNlc1dpZHRoQXNIZWlnaHQoKSA/IGltYWdl
U2l6ZS50cmFuc3Bvc2VkU2l6ZSgpIDogaW1hZ2VTaXplOworICAgIHNpemUuc2V0SGVpZ2h0KHN0
ZDo6bWluPGZsb2F0PihzaXplLmhlaWdodCgpLCBDR0ltYWdlR2V0SGVpZ2h0KGltYWdlLmdldCgp
KSkpOworICAgIHJldHVybiBvcmllbnRhdGlvbi51c2VzV2lkdGhBc0hlaWdodCgpID8gc2l6ZS50
cmFuc3Bvc2VkU2l6ZSgpIDogc2l6ZTsKK30KKwogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdO
YXRpdmVJbWFnZShjb25zdCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4mIGltYWdlLCBjb25zdCBGbG9h
dFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAg
ICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQpAQCAtMjkwLDY3ICszMTUsNTAgQEAgdm9pZCBHcmFw
aGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4m
IGltYWdlLCBjb25zdAogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgYXV0byBjdXJyZW50
SW1hZ2VTaXplID0gdHJ1bmNhdGVkU2l6ZUZvclBhcnRpYWxseUxvYWRlZEltYWdlKGltYWdlLCBp
bWFnZVNpemUsIG9wdGlvbnMub3JpZW50YXRpb24oKSk7CisgICAgaWYgKGN1cnJlbnRJbWFnZVNp
emUuaGVpZ2h0KCkgPD0gc3JjUmVjdC55KCkpCisgICAgICAgIHJldHVybjsKKwogI2lmICFMT0df
RElTQUJMRUQKICAgICBNb25vdG9uaWNUaW1lIHN0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5v
dygpOwogI2VuZGlmCi0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IHN1YkltYWdlKGltYWdlKTsK
LQotICAgIGZsb2F0IGN1cnJIZWlnaHQgPSBvcHRpb25zLm9yaWVudGF0aW9uKCkudXNlc1dpZHRo
QXNIZWlnaHQoKSA/IENHSW1hZ2VHZXRXaWR0aChzdWJJbWFnZS5nZXQoKSkgOiBDR0ltYWdlR2V0
SGVpZ2h0KHN1YkltYWdlLmdldCgpKTsKLSAgICBpZiAoY3VyckhlaWdodCA8PSBzcmNSZWN0Lnko
KSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgQ0dDb250ZXh0UmVmIGNvbnRleHQgPSBwbGF0Zm9y
bUNvbnRleHQoKTsKICAgICBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBDR0NvbnRleHRH
ZXRDVE0oY29udGV4dCk7CiAgICAgQ0dDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRl
eHQsIGZhbHNlKTsKLSAgICAKLSAgICBib29sIHNob3VsZFVzZVN1YmltYWdlID0gZmFsc2U7CiAK
LSAgICAvLyBJZiB0aGUgc291cmNlIHJlY3QgaXMgYSBzdWJwb3J0aW9uIG9mIHRoZSBpbWFnZSwg
dGhlbiB3ZSBjb21wdXRlIGFuIGluZmxhdGVkIGRlc3RpbmF0aW9uIHJlY3QgdGhhdCB3aWxsIGhv
bGQgdGhlIGVudGlyZSBpbWFnZQotICAgIC8vIGFuZCB0aGVuIHNldCBhIGNsaXAgdG8gdGhlIHBv
cnRpb24gdGhhdCB3ZSB3YW50IHRvIGRpc3BsYXkuCi0gICAgRmxvYXRSZWN0IGFkanVzdGVkRGVz
dFJlY3QgPSBkZXN0UmVjdDsKKyAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gc3ViSW1hZ2U7Cisg
ICAgRmxvYXRSZWN0IGFkanVzdGVkRGVzdFJlY3Q7CiAKLSAgICBpZiAoc3JjUmVjdC5zaXplKCkg
IT0gaW1hZ2VTaXplKSB7CisgICAgaWYgKGltYWdlU2l6ZSA9PSBzcmNSZWN0LnNpemUoKSkgewor
ICAgICAgICBzdWJJbWFnZSA9IGltYWdlOworICAgICAgICBpZiAoaW1hZ2VTaXplID09IGN1cnJl
bnRJbWFnZVNpemUpCisgICAgICAgICAgICBhZGp1c3RlZERlc3RSZWN0ID0gZGVzdFJlY3Q7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIGFkanVzdGVkRGVzdFJlY3QgPSB7IGRlc3RSZWN0Lmxv
Y2F0aW9uKCksIChkZXN0UmVjdC5zaXplKCkgKiBjdXJyZW50SW1hZ2VTaXplKSAvIGltYWdlU2l6
ZSB9OworICAgIH0gZWxzZSB7CiAgICAgICAgIENHSW50ZXJwb2xhdGlvblF1YWxpdHkgaW50ZXJw
b2xhdGlvblF1YWxpdHkgPSBDR0NvbnRleHRHZXRJbnRlcnBvbGF0aW9uUXVhbGl0eShjb250ZXh0
KTsKLSAgICAgICAgLy8gV2hlbiB0aGUgaW1hZ2UgaXMgc2NhbGVkIHVzaW5nIGhpZ2gtcXVhbGl0
eSBpbnRlcnBvbGF0aW9uLCB3ZSBjcmVhdGUgYSB0ZW1wb3JhcnkgQ0dJbWFnZQotICAgICAgICAv
LyBjb250YWluaW5nIG9ubHkgdGhlIHBvcnRpb24gd2Ugd2FudCB0byBkaXNwbGF5LiBXZSBuZWVk
IHRvIGRvIHRoaXMgYmVjYXVzZSBoaWdoLXF1YWxpdHkKLSAgICAgICAgLy8gaW50ZXJwb2xhdGlv
biBzbW9vdGhlcyBzaGFycCBlZGdlcywgY2F1c2luZyBwaXhlbHMgZnJvbSBvdXRzaWRlIHRoZSBz
b3VyY2UgcmVjdCB0byBibGVlZAotICAgICAgICAvLyBpbnRvIHRoZSBkZXN0aW5hdGlvbiByZWN0
LiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzYxMTI5MDk+LgotICAgICAgICBzaG91bGRVc2VTdWJpbWFn
ZSA9IChpbnRlcnBvbGF0aW9uUXVhbGl0eSAhPSBrQ0dJbnRlcnBvbGF0aW9uTm9uZSkgJiYgKHNy
Y1JlY3Quc2l6ZSgpICE9IGRlc3RSZWN0LnNpemUoKSB8fCAhZ2V0Q1RNKCkuaXNJZGVudGl0eU9y
VHJhbnNsYXRpb25PckZsaXBwZWQoKSk7Ci0gICAgICAgIGZsb2F0IHhTY2FsZSA9IHNyY1JlY3Qu
d2lkdGgoKSAvIGRlc3RSZWN0LndpZHRoKCk7Ci0gICAgICAgIGZsb2F0IHlTY2FsZSA9IHNyY1Jl
Y3QuaGVpZ2h0KCkgLyBkZXN0UmVjdC5oZWlnaHQoKTsKLSAgICAgICAgaWYgKHNob3VsZFVzZVN1
YmltYWdlKSB7Ci0gICAgICAgICAgICBGbG9hdFJlY3Qgc3ViaW1hZ2VSZWN0ID0gc3JjUmVjdDsK
LSAgICAgICAgICAgIGZsb2F0IGxlZnRQYWRkaW5nID0gc3JjUmVjdC54KCkgLSBmbG9vcmYoc3Jj
UmVjdC54KCkpOwotICAgICAgICAgICAgZmxvYXQgdG9wUGFkZGluZyA9IHNyY1JlY3QueSgpIC0g
Zmxvb3JmKHNyY1JlY3QueSgpKTsKLQotICAgICAgICAgICAgc3ViaW1hZ2VSZWN0Lm1vdmUoLWxl
ZnRQYWRkaW5nLCAtdG9wUGFkZGluZyk7Ci0gICAgICAgICAgICBhZGp1c3RlZERlc3RSZWN0Lm1v
dmUoLWxlZnRQYWRkaW5nIC8geFNjYWxlLCAtdG9wUGFkZGluZyAvIHlTY2FsZSk7Ci0KLSAgICAg
ICAgICAgIHN1YmltYWdlUmVjdC5zZXRXaWR0aChjZWlsZihzdWJpbWFnZVJlY3Qud2lkdGgoKSAr
IGxlZnRQYWRkaW5nKSk7Ci0gICAgICAgICAgICBhZGp1c3RlZERlc3RSZWN0LnNldFdpZHRoKHN1
YmltYWdlUmVjdC53aWR0aCgpIC8geFNjYWxlKTsKLQotICAgICAgICAgICAgc3ViaW1hZ2VSZWN0
LnNldEhlaWdodChjZWlsZihzdWJpbWFnZVJlY3QuaGVpZ2h0KCkgKyB0b3BQYWRkaW5nKSk7Ci0g
ICAgICAgICAgICBhZGp1c3RlZERlc3RSZWN0LnNldEhlaWdodChzdWJpbWFnZVJlY3QuaGVpZ2h0
KCkgLyB5U2NhbGUpOwotCi0gICAgICAgICAgICAvLyBzdWJpbWFnZVJlY3QgaXMgaW4gbG9naWNh
bCBjb29yZGluYXRlcy4gZ2V0U3ViaW1hZ2UoKSBkZWFscyB3aXRoIG5vbmUtb3JpZW50ZWQKLSAg
ICAgICAgICAgIC8vIGltYWdlLiBXZSBuZWVkIHRvIGNvbnZlcnQgc3ViaW1hZ2VSZWN0IHRvIHBo
eXNpY2FsIGltYWdlIGNvb3JkaW5hdGVzLgotICAgICAgICAgICAgaWYgKG9wdGlvbnMub3JpZW50
YXRpb24oKSAhPSBJbWFnZU9yaWVudGF0aW9uOjpOb25lKSB7Ci0gICAgICAgICAgICAgICAgaWYg
KGF1dG8gdHJhbnNmb3JtID0gb3B0aW9ucy5vcmllbnRhdGlvbigpLnRyYW5zZm9ybUZyb21EZWZh
dWx0KGltYWdlU2l6ZSkuaW52ZXJzZSgpKQotICAgICAgICAgICAgICAgICAgICBzdWJpbWFnZVJl
Y3QgPSB0cmFuc2Zvcm0udmFsdWUoKS5tYXBSZWN0KHN1YmltYWdlUmVjdCk7Ci0gICAgICAgICAg
ICB9Ci0KLSNpZiBDQUNIRV9TVUJJTUFHRVMKLSAgICAgICAgICAgIHN1YkltYWdlID0gU3ViaW1h
Z2VDYWNoZVdpdGhUaW1lcjo6Z2V0U3ViaW1hZ2Uoc3ViSW1hZ2UuZ2V0KCksIHN1YmltYWdlUmVj
dCk7Ci0jZWxzZQotICAgICAgICAgICAgc3ViSW1hZ2UgPSBhZG9wdENGKENHSW1hZ2VDcmVhdGVX
aXRoSW1hZ2VJblJlY3Qoc3ViSW1hZ2UuZ2V0KCksIHN1YmltYWdlUmVjdCkpOwotI2VuZGlmCi0g
ICAgICAgICAgICBpZiAoY3VyckhlaWdodCA8IHNyY1JlY3QubWF4WSgpKSB7Ci0gICAgICAgICAg
ICAgICAgQVNTRVJUKENHSW1hZ2VHZXRIZWlnaHQoc3ViSW1hZ2UuZ2V0KCkpID09IGN1cnJIZWln
aHQgLSBDR1JlY3RJbnRlZ3JhbChzcmNSZWN0KS5vcmlnaW4ueSk7Ci0gICAgICAgICAgICAgICAg
YWRqdXN0ZWREZXN0UmVjdC5zZXRIZWlnaHQoQ0dJbWFnZUdldEhlaWdodChzdWJJbWFnZS5nZXQo
KSkgLyB5U2NhbGUpOwotICAgICAgICAgICAgfQorICAgICAgICBGbG9hdFNpemUgc2NhbGUgPSBk
ZXN0UmVjdC5zaXplKCkgLyBzcmNSZWN0LnNpemUoKTsKKyAgICAgICAgY29uc3QgZmxvYXQgbWlu
aW11bUFyZWFGb3JJbnRlcnBvbGF0aW9uID0gNDAgKiA0MDsKKyAgICAgICAgYm9vbCBzaG91bGRV
c2VTdWJJbWFnZSA9IChpbnRlcnBvbGF0aW9uUXVhbGl0eSAhPSBrQ0dJbnRlcnBvbGF0aW9uTm9u
ZSkgJiYgKHNjYWxlLmlzRW1wdHkoKSB8fCBkZXN0UmVjdC5hcmVhKCkgPiBtaW5pbXVtQXJlYUZv
ckludGVycG9sYXRpb24pICYmIChzcmNSZWN0LnNpemUoKSAhPSBkZXN0UmVjdC5zaXplKCkgfHwg
IWdldENUTSgpLmlzSWRlbnRpdHlPclRyYW5zbGF0aW9uT3JGbGlwcGVkKCkpOworCisgICAgICAg
IGlmIChzaG91bGRVc2VTdWJJbWFnZSkgeworICAgICAgICAgICAgLy8gc3ViSW1hZ2UgaXMgYSB0
ZW1wb3JhcnkgQ0dJbWFnZSBjb250YWluaW5nIG9ubHkgdGhlIHBvcnRpb24gd2Ugd2FudCB0byBk
aXNwbGF5LiBXZSBuZWVkCisgICAgICAgICAgICAvLyB0byBkbyB0aGlzIGJlY2F1c2UgaGlnaC1x
dWFsaXR5IGludGVycG9sYXRpb24gc21vb3RoZXMgc2hhcnAgZWRnZXMsIGNhdXNpbmcgcGl4ZWxz
IGZyb20KKyAgICAgICAgICAgIC8vIG91dHNpZGUgdGhlIHNvdXJjZSByZWN0IHRvIGJsZWVkIGlu
dG8gdGhlIGRlc3RpbmF0aW9uIHJlY3QuIFNlZSA8cmRhcjovL3Byb2JsZW0vNjExMjkwOT4uCisg
ICAgICAgICAgICBGbG9hdFJlY3Qgc3ViSW1hZ2VSZWN0ID0geyBmbG9vcmVkSW50UG9pbnQoc3Jj
UmVjdC5sb2NhdGlvbigpKSwgY2VpbGVkSW50UG9pbnQoc3JjUmVjdC5tYXhYTWF4WUNvcm5lcigp
KSB9OworICAgICAgICAgICAgc3ViSW1hZ2UgPSBjcmVhdGVPckdldENhY2hlZFN1YkltYWdlKGlt
YWdlLCBpbWFnZVNpemUsIHN1YkltYWdlUmVjdCwgb3B0aW9ucy5vcmllbnRhdGlvbigpKTsKKwor
ICAgICAgICAgICAgYXV0byBjdXJyZW50U3ViSW1hZ2VTaXplID0gdHJ1bmNhdGVkU2l6ZUZvclBh
cnRpYWxseUxvYWRlZEltYWdlKHN1YkltYWdlLCBzdWJJbWFnZVJlY3Quc2l6ZSgpLCBvcHRpb25z
Lm9yaWVudGF0aW9uKCkpOworICAgICAgICAgICAgYWRqdXN0ZWREZXN0UmVjdCA9IHsgRmxvYXRQ
b2ludChzdWJJbWFnZVJlY3QubG9jYXRpb24oKSAtIHNyY1JlY3QubG9jYXRpb24oKSksIGN1cnJl
bnRTdWJJbWFnZVNpemUgfTsKKyAgICAgICAgICAgIGFkanVzdGVkRGVzdFJlY3Quc2NhbGUoc2Nh
bGUpOworICAgICAgICAgICAgYWRqdXN0ZWREZXN0UmVjdC5tb3ZlQnkoZGVzdFJlY3QubG9jYXRp
b24oKSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhZGp1c3RlZERlc3RSZWN0LnNl
dExvY2F0aW9uKEZsb2F0UG9pbnQoZGVzdFJlY3QueCgpIC0gc3JjUmVjdC54KCkgLyB4U2NhbGUs
IGRlc3RSZWN0LnkoKSAtIHNyY1JlY3QueSgpIC8geVNjYWxlKSk7Ci0gICAgICAgICAgICBhZGp1
c3RlZERlc3RSZWN0LnNldFNpemUoRmxvYXRTaXplKGltYWdlU2l6ZS53aWR0aCgpIC8geFNjYWxl
LCBpbWFnZVNpemUuaGVpZ2h0KCkgLyB5U2NhbGUpKTsKKyAgICAgICAgICAgIHN1YkltYWdlID0g
aW1hZ2U7CisgICAgICAgICAgICAvLyBhZGp1c3RlZERlc3RSZWN0IGlzIGFuIGluZmxhdGVkIGRl
c3RpbmF0aW9uIHJlY3QgdGhhdCB3aWxsIGhvbGQgdGhlIGVudGlyZSBpbWFnZSBhbmQgdGhlbgor
ICAgICAgICAgICAgLy8gc2V0IGEgY2xpcCB0byB0aGUgcG9ydGlvbiB0aGF0IHdlIHdhbnQgdG8g
ZGlzcGxheS4KKyAgICAgICAgICAgIGFkanVzdGVkRGVzdFJlY3QgPSB7IC1zcmNSZWN0LmxvY2F0
aW9uKCksIGN1cnJlbnRJbWFnZVNpemUgfTsKKyAgICAgICAgICAgIGFkanVzdGVkRGVzdFJlY3Qu
c2NhbGUoc2NhbGUpOworICAgICAgICAgICAgYWRqdXN0ZWREZXN0UmVjdC5tb3ZlQnkoZGVzdFJl
Y3QubG9jYXRpb24oKSk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoIWRlc3RSZWN0LmNvbnRh
aW5zKGFkanVzdGVkRGVzdFJlY3QpKSB7CkBAIC0zNTksMTAgKzM2Nyw2IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UoY29uc3QgUmV0YWluUHRyPENHSW1hZ2VSZWY+JiBp
bWFnZSwgY29uc3QKICAgICAgICAgfQogICAgIH0KIAotICAgIC8vIElmIHRoZSBpbWFnZSBpcyBv
bmx5IHBhcnRpYWxseSBsb2FkZWQsIHRoZW4gc2hyaW5rIHRoZSBkZXN0aW5hdGlvbiByZWN0IHRo
YXQgd2UncmUgZHJhd2luZyBpbnRvIGFjY29yZGluZ2x5LgotICAgIGlmICghc2hvdWxkVXNlU3Vi
aW1hZ2UgJiYgY3VyckhlaWdodCA8IGltYWdlU2l6ZS5oZWlnaHQoKSkKLSAgICAgICAgYWRqdXN0
ZWREZXN0UmVjdC5zZXRIZWlnaHQoYWRqdXN0ZWREZXN0UmVjdC5oZWlnaHQoKSAqIGN1cnJIZWln
aHQgLyBpbWFnZVNpemUuaGVpZ2h0KCkpOwotCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAg
ICBib29sIHdhc0FudGlhbGlhc2VkID0gQ0dDb250ZXh0R2V0U2hvdWxkQW50aWFsaWFzKGNvbnRl
eHQpOwogICAgIC8vIEFudGktYWxpYXNpbmcgaXMgb24gYnkgZGVmYXVsdCBvbiB0aGUgaVBob25l
LiBOZWVkIHRvIHR1cm4gaXQgb2ZmIHdoZW4gZHJhd2luZyBpbWFnZXMuCkBAIC0zODMsMTcgKzM4
NywxNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IFJldGFp
blB0cjxDR0ltYWdlUmVmPiYgaW1hZ2UsIGNvbnN0CiAgICAgICAgIGlmIChvcHRpb25zLm9yaWVu
dGF0aW9uKCkudXNlc1dpZHRoQXNIZWlnaHQoKSkgewogICAgICAgICAgICAgLy8gVGhlIGRlc3Rp
bmF0aW9uIHJlY3Qgd2lsbCBoYXZlIGl0J3Mgd2lkdGggYW5kIGhlaWdodCBhbHJlYWR5IHJldmVy
c2VkIGZvciB0aGUgb3JpZW50YXRpb24gb2YKICAgICAgICAgICAgIC8vIHRoZSBpbWFnZSwgYXMg
aXQgd2FzIG5lZWRlZCBmb3IgcGFnZSBsYXlvdXQsIHNvIHdlIG5lZWQgdG8gcmV2ZXJzZSBpdCBi
YWNrIGhlcmUuCi0gICAgICAgICAgICBhZGp1c3RlZERlc3RSZWN0ID0gRmxvYXRSZWN0KGFkanVz
dGVkRGVzdFJlY3QueCgpLCBhZGp1c3RlZERlc3RSZWN0LnkoKSwgYWRqdXN0ZWREZXN0UmVjdC5o
ZWlnaHQoKSwgYWRqdXN0ZWREZXN0UmVjdC53aWR0aCgpKTsKKyAgICAgICAgICAgIGFkanVzdGVk
RGVzdFJlY3Quc2V0U2l6ZShhZGp1c3RlZERlc3RSZWN0LnNpemUoKS50cmFuc3Bvc2VkU2l6ZSgp
KTsKICAgICAgICAgfQogICAgIH0KLSAgICAKKwogICAgIC8vIEZsaXAgdGhlIGNvb3Jkcy4KICAg
ICBDR0NvbnRleHRUcmFuc2xhdGVDVE0oY29udGV4dCwgMCwgYWRqdXN0ZWREZXN0UmVjdC5oZWln
aHQoKSk7CiAgICAgQ0dDb250ZXh0U2NhbGVDVE0oY29udGV4dCwgMSwgLTEpOwogCiAgICAgLy8g
RHJhdyB0aGUgaW1hZ2UuCiAgICAgQ0dDb250ZXh0RHJhd0ltYWdlKGNvbnRleHQsIGFkanVzdGVk
RGVzdFJlY3QsIHN1YkltYWdlLmdldCgpKTsKLSAgICAKKwogICAgIGlmICghc3RhdGVTYXZlci5k
aWRTYXZlKCkpIHsKICAgICAgICAgQ0dDb250ZXh0U2V0Q1RNKGNvbnRleHQsIHRyYW5zZm9ybSk7
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406099</attachid>
            <date>2020-08-06 12:15:50 -0700</date>
            <delta_ts>2020-08-06 14:02:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215015-20200806121549.patch</filename>
            <type>text/plain</type>
            <size>2754</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTVlYjZkNzc2NTQ1NDMz
YTAyYWEzNTAxNzE0YzY4MGUwMzQyYzBmZS4uNTZhNmQ5ZjIyNjM5ZjEyY2FlMGQ2NThlZmE5MGEz
OGFkM2U5ZjA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTA4LTA2ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NHXSBB
dm9pZCBjcmVhdGluZyBhIHN1Yi1pbWFnZSB3aGVuIGRyYXdpbmcgYSBzbWFsbCBzY2FsZWQgc3Vi
LXJlY3QgZnJvbSBhIG5hdGl2ZSBpbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE1MDE1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82Mzg0NTg5
Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUg
cmVhc29uIGZvciBjcmVhdGluZyB0aGUgc3ViLWltYWdlIGluIEdyYXBoaWNzQ29udGV4dDo6ZHJh
d05hdGl2ZUltYWdlKCkKKyAgICAgICAgaXMgdG8gaGF2ZSBhIGJldHRlciBpbWFnZSBpbnRlcnBv
bGF0aW9uIGZvciB0aGUgc2NhbGVkIHN1Yi1yZWN0LiBGb3Igc21hbGwKKyAgICAgICAgZGVzdFJl
Y3QsIHRoZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSBvcmlnaW5hbCBpbWFnZSBpcyBhbG1vc3QgdGhl
IHNhbWUgYXMKKyAgICAgICAgdGhlIGludGVycG9sYXRpb24gb24gdGhlIHN1Yi1pbWFnZS4gU28g
d2Ugc2hvdWxkIGF2b2lkIGNyZWF0aW5nIHRoZSBzdWItCisgICAgICAgIGltYWdlIGlmIGRlc3RS
ZWN0LmFyZWEoKSBpcyBsZXNzIHRoYW4gc29tZSBtaW5pbXVtIHZhbHVlLiBDcmVhdGluZyBtYW55
CisgICAgICAgIHN1Yi1pbWFnZXMgY2FuIGFmZmVjdCB0aGUgcmVuZGVyaW5nIHBlcmZvcm1hbmNl
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOgor
CiAyMDIwLTA3LTI5ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBD
b2RlR2VuZXJhdG9ySlMgc2hvdWxkIHJlbGVhc2UgdGhlIHRocm93U2NvcGUgYmVmb3JlIGRvaW5n
IGEgdm9pZCBjYWxsIGF0IGVuZCBvZiBhIGZ1bmN0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCmluZGV4
IGZiZGQwYTNiYzljYjRhODBkZDA5ZmE0OTY1NTNhOWJiMDNiY2Q3YjAuLmIyMGYwNjI3NDc2MGNj
ZDRiZjY3NDBhYWNiODQ0NzUzYzE3YTRkNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKQEAgLTMxNSw5
ICszMTUsMTAgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBS
ZXRhaW5QdHI8Q0dJbWFnZVJlZj4mIGltYWdlLCBjb25zdAogICAgICAgICAvLyBjb250YWluaW5n
IG9ubHkgdGhlIHBvcnRpb24gd2Ugd2FudCB0byBkaXNwbGF5LiBXZSBuZWVkIHRvIGRvIHRoaXMg
YmVjYXVzZSBoaWdoLXF1YWxpdHkKICAgICAgICAgLy8gaW50ZXJwb2xhdGlvbiBzbW9vdGhlcyBz
aGFycCBlZGdlcywgY2F1c2luZyBwaXhlbHMgZnJvbSBvdXRzaWRlIHRoZSBzb3VyY2UgcmVjdCB0
byBibGVlZAogICAgICAgICAvLyBpbnRvIHRoZSBkZXN0aW5hdGlvbiByZWN0LiBTZWUgPHJkYXI6
Ly9wcm9ibGVtLzYxMTI5MDk+LgotICAgICAgICBzaG91bGRVc2VTdWJpbWFnZSA9IChpbnRlcnBv
bGF0aW9uUXVhbGl0eSAhPSBrQ0dJbnRlcnBvbGF0aW9uTm9uZSkgJiYgKHNyY1JlY3Quc2l6ZSgp
ICE9IGRlc3RSZWN0LnNpemUoKSB8fCAhZ2V0Q1RNKCkuaXNJZGVudGl0eU9yVHJhbnNsYXRpb25P
ckZsaXBwZWQoKSk7CisgICAgICAgIGNvbnN0IGZsb2F0IG1pbmltdW1BcmVhRm9ySW50ZXJwb2xh
dGlvbiA9IDQwICogNDA7CiAgICAgICAgIGZsb2F0IHhTY2FsZSA9IHNyY1JlY3Qud2lkdGgoKSAv
IGRlc3RSZWN0LndpZHRoKCk7CiAgICAgICAgIGZsb2F0IHlTY2FsZSA9IHNyY1JlY3QuaGVpZ2h0
KCkgLyBkZXN0UmVjdC5oZWlnaHQoKTsKKyAgICAgICAgc2hvdWxkVXNlU3ViaW1hZ2UgPSAoaW50
ZXJwb2xhdGlvblF1YWxpdHkgIT0ga0NHSW50ZXJwb2xhdGlvbk5vbmUpICYmICh4U2NhbGUgPCAw
IHx8IHlTY2FsZSA8IDAgfHwgZGVzdFJlY3QuYXJlYSgpID49IG1pbmltdW1BcmVhRm9ySW50ZXJw
b2xhdGlvbikgJiYgKHNyY1JlY3Quc2l6ZSgpICE9IGRlc3RSZWN0LnNpemUoKSB8fCAhZ2V0Q1RN
KCkuaXNJZGVudGl0eU9yVHJhbnNsYXRpb25PckZsaXBwZWQoKSk7CiAgICAgICAgIGlmIChzaG91
bGRVc2VTdWJpbWFnZSkgewogICAgICAgICAgICAgRmxvYXRSZWN0IHN1YmltYWdlUmVjdCA9IHNy
Y1JlY3Q7CiAgICAgICAgICAgICBmbG9hdCBsZWZ0UGFkZGluZyA9IHNyY1JlY3QueCgpIC0gZmxv
b3JmKHNyY1JlY3QueCgpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>