<?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>172520</bug_id>
          
          <creation_ts>2017-05-23 12:42:42 -0700</creation_ts>
          <short_desc>checkGPUStatus needs to exercise instancing calls</short_desc>
          <delta_ts>2017-05-23 13:50:32 -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>New Bugs</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>noam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1311992</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-05-23 12:42:42 -0700</bug_when>
    <thetext>checkGPUStatus needs to exercise instancing calls</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311998</commentid>
    <comment_count>1</comment_count>
      <attachid>311040</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-05-23 12:49:54 -0700</bug_when>
    <thetext>Created attachment 311040
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1312002</commentid>
    <comment_count>2</comment_count>
      <attachid>311040</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-05-23 12:56:44 -0700</bug_when>
    <thetext>Comment on attachment 311040
Patch

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

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.h:361
&gt; +    WEBCORE_EXPORT void setFailNextGPUStatusCheck();

Maybe add &quot;ForTesting&quot; to the name here and elsewhere, to make it a bit less mysterious.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1312010</commentid>
    <comment_count>3</comment_count>
      <attachid>311040</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-05-23 13:24:11 -0700</bug_when>
    <thetext>Comment on attachment 311040
Patch

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

Looks good! I mostly commented just to test my local WebKit build. :-) r=me.

&gt; Source/WebCore/platform/graphics/GraphicsContext3D.h:1441
&gt; +    unsigned m_statusCheckCount { 0 };

It seems like this could overflow if you status check counted enough times. But maybe you reset later?

&gt; Source/WebCore/platform/graphics/mac/GraphicsContext3DMac.mm:65
&gt; +static const unsigned statusCheckThreshold = 5;

I never know when we should be using constexpr. Here? No?

&gt; Source/WebCore/platform/graphics/mac/GraphicsContext3DMac.mm:652
&gt; +    m_statusCheckCount = (m_statusCheckCount + 1) % statusCheckThreshold;

So this resets every statusCheckThreshold counts. Since that&apos;s currently set to 5, unsigned might be bigger than we need, but seems fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1312028</commentid>
    <comment_count>4</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-05-23 13:50:32 -0700</bug_when>
    <thetext>Committed r217298: &lt;http://trac.webkit.org/changeset/217298&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311040</attachid>
            <date>2017-05-23 12:49:54 -0700</date>
            <delta_ts>2017-05-23 13:24:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172520-20170523194953.patch</filename>
            <type>text/plain</type>
            <size>21309</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWI0YmQ2YTQ1OGNkNjRm
YTljNWYxOWUzZTJhZTYwNTgyY2YzMmE4Ny4uNDZmNjA5OTA0NDgyNGExYTdiMzk1MmZmMGY0Mjgx
ZWZlOGUyMjlhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE3LTA1LTIzICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBjaGVja0dQVVN0YXR1cyBuZWVk
cyB0byBleGVyY2lzZSBpbnN0YW5jaW5nIGNhbGxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI1MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIz
MTE4Mzk1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoZSBjaGVja0dQVVN0YXR1cyBtZXRob2QgKGZvcm1lcmx5IGNoZWNrR1BVU3RhdHVzSWZOZWNl
c3NhcnkpIHdhcworICAgICAgICBub3QgYmVpbmcgY2FsbGVkIGFmdGVyIHRoZSBkcmF3QXJyYXlz
L0VsZW1lbnRzIGluc3RhbmNpbmcgY2FsbHMuCisKKyAgICAgICAgSSBhbHNvIGFkZGVkIGEgdGVz
dCBjYXNlIHRvIGV4ZXJjaXNlIHRoZSByZWNvdmVyeSBsb2dpYy4KKworICAgICAgICBUZXN0OiBm
YXN0L2NhbnZhcy93ZWJnbC9sb3NlLWNvbnRleHQtb24tc3RhdHVzLWZhaWx1cmUuaHRtbAorCisg
ICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpzZXRGYWlsTmV4dEdQVVN0
YXR1c0NoZWNrKTogRm9yY2UKKyAgICAgICAgdGhlIG5leHQgY2hlY2tHUFVTdGF0dXMgb24gdGhl
IEdDM0QgdG8gZmFpbC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0Qu
aDogUmVuYW1lIGEgZnVuY3Rpb24sIGFuZCBtYWtlCisgICAgICAgIHRoZSBudW1iZXIgb2YgY2Fs
bHMgd2Ugd2FpdCBiZWZvcmUgY2hlY2tpbmcgcGVyIGluc3RhbmNlLCByYXRoZXIgdGhhbgorICAg
ICAgICBzdGF0aWMgKHdoaWNoIG1pZ2h0IGhhdmUgbWVhbnQgd2UncmUgb25seSBldmVyIGNoZWNr
aW5nIGFmdGVyIG9uZSBjYW52YXMgb24KKyAgICAgICAgYSBwYWdlIHdpdGggbXVsdGlwbGUgY29u
dGV4dHMpLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnNldEZhaWxOZXh0
R1BVU3RhdHVzQ2hlY2spOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBo
aWNzQ29udGV4dDNEQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
M0Q6OmNoZWNrR1BVU3RhdHVzKTogUmVuYW1lZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDNEOjpjaGVja0dQVVN0YXR1c0lmTmVjZXNzYXJ5KTogRGVsZXRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NDb250ZXh0M0RNYWMubW06CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Y2hlY2tHUFVTdGF0dXMpOiBJbXByb3ZlIHRo
ZSBsb2dpYy4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpjaGVja0dQVVN0
YXR1c0lmTmVjZXNzYXJ5KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDNEOjpkcmF3QXJyYXlzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjpkcmF3RWxlbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6
OmRyYXdBcnJheXNJbnN0YW5jZWQpOiBBZGQgYSBjYWxsIHRvIGNoZWNrR1BVU3RhdHVzLgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmRyYXdFbGVtZW50c0luc3RhbmNlZCk6
IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRl
eHQzRE9wZW5HTEVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpj
aGVja0dQVVN0YXR1cyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Y2hl
Y2tHUFVTdGF0dXNJZk5lY2Vzc2FyeSk6IERlbGV0ZWQuCisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuY3BwOiBJbXBsZW1lbnQgdGhlIGludGVybmFsIGNhbGwgdG8gY2F1c2UgdGhlIG5leHQK
KyAgICAgICAgY2hlY2sgdG8gZmFpbC4KKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZmFp
bE5leHRHUFVTdGF0dXNDaGVjayk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTctMDUtMTUgIFRpbW90aHkgSG9y
dG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIE51bGwgZGVyZWYgdW5k
ZXIgV2ViQ29udGVudFJlYWRlcjo6cmVhZFVSTCB3aGVuIGludGVyYWN0aW5nIHdpdGggYSBmaWxl
IFVSTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLmNwcAppbmRleCBhYmVjNjczMWRiYzUxNzA0ZDY2NGNiMDczZmJhYTkz
NzIwZWE5ODFkLi5hMmIwM2FmMmFhYTNkZmIxZjdiZDk0YzEyNWY5YjAyMmVmNjU3N2Y1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmNwcApAQCAtNTkxMiw2ICs1OTEyLDE0IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6YWN0aXZpdHlTdGF0ZURpZENoYW5nZShBY3Rpdml0eVN0YXRlOjpGbGFncyBv
bGRBCiAgICAgICAgIG1fY29udGV4dC0+c2V0Q29udGV4dFZpc2liaWxpdHkobmV3QWN0aXZpdHlT
dGF0ZSAmIEFjdGl2aXR5U3RhdGU6OklzVmlzaWJsZSk7CiB9CiAKK3ZvaWQgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6c2V0RmFpbE5leHRHUFVTdGF0dXNDaGVjaygpCit7CisgICAgaWYgKCFt
X2NvbnRleHQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY29udGV4dC0+c2V0RmFpbE5leHRH
UFVTdGF0dXNDaGVjaygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKaW5kZXggNGM4NzAyMjQyM2M2ODJkOTE4MmE2ZDU1
ZTg0N2I1YTE0ZThjOTBlZS4uMTNjMjdkZjE2YjAzNGY5MDc4OWQwMWIyNGY4YWZhOTQxMWQ5ZGM4
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuaApAQCAtMzU4LDYgKzM1OCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRy
YXdFbGVtZW50c0luc3RhbmNlZChHQzNEZW51bSBtb2RlLCBHQzNEc2l6ZWkgY291bnQsIEdDM0Rl
bnVtIHR5cGUsIGxvbmcgbG9uZyBvZmZzZXQsIEdDM0RzaXplaSBwcmltY291bnQpOwogICAgIHZv
aWQgdmVydGV4QXR0cmliRGl2aXNvcihHQzNEdWludCBpbmRleCwgR0MzRHVpbnQgZGl2aXNvcik7
CiAKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZhaWxOZXh0R1BVU3RhdHVzQ2hlY2soKTsK
KwogcHJvdGVjdGVkOgogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoSFRNTENhbnZhc0Vs
ZW1lbnQmLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzKTsKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlKEhUTUxDYW52YXNFbGVtZW50JiwgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiYmLCBXZWJH
TENvbnRleHRBdHRyaWJ1dGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IGIyYjc5NTI1NDVjNDQ2NTk1Y2RjYzhi
OGUyMTY2Yjc4ODIyMTM4MDguLmQ3YzY4NGUwMzk2NjMzNzk2NTk5ZTAzZTVmZjgwNzZkZDk2MzUy
MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dDNELmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0M0QuaApAQCAtMTI2Niw5ICsxMjY2LDEwIEBAIHB1YmxpYzoKICAgICAgICAgdW5z
aWduZWQgbV9pbWFnZVNvdXJjZVVucGFja0FsaWdubWVudDsKICAgICB9OwogCisgICAgdm9pZCBz
ZXRGYWlsTmV4dEdQVVN0YXR1c0NoZWNrKCkgeyBtX2ZhaWxOZXh0U3RhdHVzQ2hlY2sgPSB0cnVl
OyB9CisKIHByaXZhdGU6CiAgICAgR3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RB
dHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgUmVuZGVyU3R5bGUgPSBSZW5kZXJPZmZzY3JlZW4pOwot
ICAgIHN0YXRpYyBpbnQgR1BVQ2hlY2tDb3VudGVyOwogCiAgICAgLy8gSGVscGVyIGZvciBwYWNr
SW1hZ2VEYXRhL2V4dHJhY3RJbWFnZURhdGEvZXh0cmFjdFRleHR1cmVEYXRhIHdoaWNoIGltcGxl
bWVudCBwYWNraW5nIG9mIHBpeGVsCiAgICAgLy8gZGF0YSBpbnRvIHRoZSBzcGVjaWZpZWQgT3Bl
bkdMIGRlc3RpbmF0aW9uIGZvcm1hdCBhbmQgdHlwZS4KQEAgLTEyODQsOCArMTI4NSw4IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCB2YWxpZGF0ZURlcHRoU3RlbmNpbChjb25zdCBjaGFyKiBwYWNrZWRE
ZXB0aFN0ZW5jaWxFeHRlbnNpb24pOwogICAgIHZvaWQgdmFsaWRhdGVBdHRyaWJ1dGVzKCk7CiAg
ICAgCi0gICAgLy8gQ2FsbCB0byBtYWtlIGR1cmluZyBkcmF3IGNhbGxzIHRvIGNoZWNrIG9uIHRo
ZSBHUFUncyBzdGF0dXMuCi0gICAgdm9pZCBjaGVja0dQVVN0YXR1c0lmTmVjZXNzYXJ5KCk7Cisg
ICAgLy8gRGlkIHRoZSBtb3N0IHJlY2VudCBkcmF3aW5nIG9wZXJhdGlvbiBsZWF2ZSB0aGUgR1BV
IGluIGFuIGFjY2VwdGFibGUgc3RhdGU/CisgICAgdm9pZCBjaGVja0dQVVN0YXR1cygpOwogCiAg
ICAgLy8gUmVhZCByZW5kZXJpbmcgcmVzdWx0cyBpbnRvIGEgcGl4ZWwgYXJyYXkgd2l0aCB0aGUg
c2FtZSBmb3JtYXQgYXMgdGhlCiAgICAgLy8gYmFja2J1ZmZlci4KQEAgLTE0MzcsNiArMTQzOCw5
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzRm9yV2ViR0wyIHsgZmFsc2UgfTsKICAgICBib29s
IG1fdXNpbmdDb3JlUHJvZmlsZSB7IGZhbHNlIH07CiAKKyAgICB1bnNpZ25lZCBtX3N0YXR1c0No
ZWNrQ291bnQgeyAwIH07CisgICAgYm9vbCBtX2ZhaWxOZXh0U3RhdHVzQ2hlY2sgeyBmYWxzZSB9
OworCiAjaWYgVVNFKENBSVJPKQogICAgIFBsYXRmb3JtM0RPYmplY3QgbV92YW8geyAwIH07CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAKaW5kZXggNDY3MDAxNTViNWFl
NjQ0YmJhNGE0ZDM0Y2UyZDkwNTgzNGFkYjI1NS4uY2U0OGE2OGYwOTcwZWVmM2U1ZDkyYzVkYTVl
ZmQ3NmNiMWNhNjIxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAKQEAgLTM3
Nyw3ICszNzcsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjptYWtlQ29udGV4dEN1cnJlbnQo
KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y2hlY2tH
UFVTdGF0dXNJZk5lY2Vzc2FyeSgpCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpjaGVja0dQVVN0
YXR1cygpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9HcmFwaGljc0NvbnRleHQzRE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9HcmFwaGljc0NvbnRleHQzRE1hYy5tbQppbmRleCA4MTQ5Mjk1YzBiNzc5
MDc1OWNlNzZhNGYyMGIzNjVkOTgwM2IwY2E0Li5mNjM0ZjQ3ZTQwYmZmYmFmZWYxMWUwMzU1MDNl
MTJjMzVmMDEyZjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvR3JhcGhpY3NDb250ZXh0M0RNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dDNETWFjLm1tCkBAIC02Miw2ICs2Miw4IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIGNvbnN0IHVuc2lnbmVkIHN0YXR1c0No
ZWNrVGhyZXNob2xkID0gNTsKKwogI2lmIFBMQVRGT1JNKE1BQykKIAogZW51bSB7CkBAIC0zMDQs
MTAgKzMwNiw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0RNYW5hZ2VyOjpyZWN5Y2xlQ29udGV4
dElmTmVjZXNzYXJ5KCkKICAgICB9CiB9CiAKLWNvbnN0IGludCBHUFVTdGF0dXNDaGVja1RocmVz
aG9sZCA9IDU7Ci1pbnQgR3JhcGhpY3NDb250ZXh0M0Q6OkdQVUNoZWNrQ291bnRlciA9IDA7Ci0K
LS8vIEZJWE1FOiBUaGlzIGNsYXNzIGlzIGN1cnJlbnRseSBlbXB0eSBvbiBNYWMsIGJ1dCB3aWxs
IGdldCBwb3B1bGF0ZWQgYXMgCisvLyBGSVhNRTogVGhpcyBjbGFzcyBpcyBjdXJyZW50bHkgZW1w
dHkgb24gTWFjLCBidXQgd2lsbCBnZXQgcG9wdWxhdGVkIGFzCiAvLyB0aGUgcmVzdHJ1Y3R1cmlu
ZyBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY5MDMgaXMgZG9u
ZQogY2xhc3MgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlIHsKIHB1YmxpYzoKQEAgLTYzNiwxNCAr
NjM1LDIyIEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6Om1ha2VDb250ZXh0Q3VycmVudCgpCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNoZWNrR1BVU3Rh
dHVzSWZOZWNlc3NhcnkoKQordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y2hlY2tHUFVTdGF0dXMo
KQogewotICAgIGJvb2wgbmVlZHNDaGVjayA9ICFHUFVDaGVja0NvdW50ZXI7Ci0gICAgR1BVQ2hl
Y2tDb3VudGVyID0gKEdQVUNoZWNrQ291bnRlciArIDEpICUgR1BVU3RhdHVzQ2hlY2tUaHJlc2hv
bGQ7CisgICAgaWYgKG1fZmFpbE5leHRTdGF0dXNDaGVjaykgeworICAgICAgICBMT0coV2ViR0ws
ICJQcmV0ZW5kaW5nIHRoZSBHUFUgaGFzIHJlc2V0ICglcCkuIExvc2UgdGhlIGNvbnRleHQuIiwg
dGhpcyk7CisgICAgICAgIG1fZmFpbE5leHRTdGF0dXNDaGVjayA9IGZhbHNlOworICAgICAgICBm
b3JjZUNvbnRleHRMb3N0KCk7CisgICAgICAgIENHTFNldEN1cnJlbnRDb250ZXh0KDApOworICAg
ICAgICByZXR1cm47CisgICAgfQogCi0gICAgaWYgKCFuZWVkc0NoZWNrKQorICAgIC8vIE9ubHkg
ZG8gdGhlIGNoZWNrIGV2ZXJ5IHN0YXR1c0NoZWNrVGhyZXNob2xkIGNhbGxzLgorICAgIGlmICht
X3N0YXR1c0NoZWNrQ291bnQpCiAgICAgICAgIHJldHVybjsKIAorICAgIG1fc3RhdHVzQ2hlY2tD
b3VudCA9IChtX3N0YXR1c0NoZWNrQ291bnQgKyAxKSAlIHN0YXR1c0NoZWNrVGhyZXNob2xkOwor
CiAgICAgR0xpbnQgcmVzdGFydFN0YXR1cyA9IDA7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIENH
TEdldFBhcmFtZXRlcihwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCksIGtDR0xDUEdQVVJlc3Rh
cnRTdGF0dXMsICZyZXN0YXJ0U3RhdHVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
M0RPcGVuR0xDb21tb24uY3BwCmluZGV4IGFhZGUxNzVkNmE2MTYzZGYzNDAxMmZlNTkxMmNjMGZl
NDUyNzM3ZTkuLjE5MmMyYjM4ZTcxYjZjZTcxMzE0YzNhZDU5N2MwOWIyZTE0NDRjMTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHQzRE9wZW5HTENvbW1vbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcApAQCAtNTk1LDYg
KzU5NSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNsZWFyKEdDM0RiaXRmaWVsZCBtYXNr
KQogewogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIDo6Z2xDbGVhcihtYXNrKTsKKyAg
ICBjaGVja0dQVVN0YXR1cygpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpjbGVhclN0
ZW5jaWwoR0MzRGludCBzKQpAQCAtNzM4LDE0ICs3MzksMTQgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQzRDo6ZHJhd0FycmF5cyhHQzNEZW51bSBtb2RlLCBHQzNEaW50IGZpcnN0LCBHQzNEc2l6ZWkg
Y291bnQKIHsKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6OmdsRHJhd0FycmF5cyht
b2RlLCBmaXJzdCwgY291bnQpOwotICAgIGNoZWNrR1BVU3RhdHVzSWZOZWNlc3NhcnkoKTsKKyAg
ICBjaGVja0dQVVN0YXR1cygpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpkcmF3RWxl
bWVudHMoR0MzRGVudW0gbW9kZSwgR0MzRHNpemVpIGNvdW50LCBHQzNEZW51bSB0eXBlLCBHQzNE
aW50cHRyIG9mZnNldCkKIHsKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6OmdsRHJh
d0VsZW1lbnRzKG1vZGUsIGNvdW50LCB0eXBlLCByZWludGVycHJldF9jYXN0PEdMdm9pZCo+KHN0
YXRpY19jYXN0PGludHB0cl90PihvZmZzZXQpKSk7Ci0gICAgY2hlY2tHUFVTdGF0dXNJZk5lY2Vz
c2FyeSgpOworICAgIGNoZWNrR1BVU3RhdHVzKCk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OmVuYWJsZShHQzNEZW51bSBjYXApCkBAIC0xOTEyLDExICsxOTEzLDEzIEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0M0Q6OnRleEltYWdlMkREaXJlY3QoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50
IGxldmVsLCBHQzNEZW51CiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpkcmF3QXJyYXlzSW5zdGFu
Y2VkKEdDM0RlbnVtIG1vZGUsIEdDM0RpbnQgZmlyc3QsIEdDM0RzaXplaSBjb3VudCwgR0MzRHNp
emVpIHByaW1jb3VudCkKIHsKICAgICBnZXRFeHRlbnNpb25zKCkuZHJhd0FycmF5c0luc3RhbmNl
ZChtb2RlLCBmaXJzdCwgY291bnQsIHByaW1jb3VudCk7CisgICAgY2hlY2tHUFVTdGF0dXMoKTsK
IH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6ZHJhd0VsZW1lbnRzSW5zdGFuY2VkKEdDM0Rl
bnVtIG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwgR0MzRGludHB0ciBvZmZz
ZXQsIEdDM0RzaXplaSBwcmltY291bnQpCiB7CiAgICAgZ2V0RXh0ZW5zaW9ucygpLmRyYXdFbGVt
ZW50c0luc3RhbmNlZChtb2RlLCBjb3VudCwgdHlwZSwgb2Zmc2V0LCBwcmltY291bnQpOworICAg
IGNoZWNrR1BVU3RhdHVzKCk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnZlcnRleEF0
dHJpYkRpdmlzb3IoR0MzRHVpbnQgaW5kZXgsIEdDM0R1aW50IGRpdmlzb3IpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
M0RPcGVuR0xFUy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0M0RPcGVuR0xFUy5jcHAKaW5kZXggNmI2MDhjNjZkNTFmOTJlNzE2MDEz
YmJhNWQ5YjBkZDhmYjhhM2FjOS4uNDgzMTRmZGU3MDJhMjMxZjg1NjIyNjFmZTZlMzM3MDAzZmIx
MjJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0dyYXBoaWNzQ29udGV4dDNET3BlbkdMRVMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTEVTLmNwcApAQCAtMzgw
LDcgKzM4MCw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6Om1ha2VDb250ZXh0Q3VycmVudCgp
CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bWFrZUNvbnRleHRDdXJyZW50KCk7CiB9CiAKLXZvaWQg
R3JhcGhpY3NDb250ZXh0M0Q6OmNoZWNrR1BVU3RhdHVzSWZOZWNlc3NhcnkoKQordm9pZCBHcmFw
aGljc0NvbnRleHQzRDo6Y2hlY2tHUFVTdGF0dXMoKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKaW5kZXggZWE1MmI0NzM2N2FlNWI2ZDkzZGJhMzVmOGMyZDY5MDcyMTY5
ZWZhYi4uYWE2NjhkMmFjYmQ1Y2ViYmIwZWFiMWQwNmIwYTMzNjc1YjViNmQ0MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMzk2NSw2ICszOTY1LDExIEBAIHZvaWQgSW50
ZXJuYWxzOjpzaW11bGF0ZVdlYkdMQ29udGV4dENoYW5nZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0
JiBjb250ZXh0KQogewogICAgIGNvbnRleHQuc2ltdWxhdGVDb250ZXh0Q2hhbmdlZCgpOwogfQor
Cit2b2lkIEludGVybmFsczo6ZmFpbE5leHRHUFVTdGF0dXNDaGVjayhXZWJHTFJlbmRlcmluZ0Nv
bnRleHQmIGNvbnRleHQpCit7CisgICAgY29udGV4dC5zZXRGYWlsTmV4dEdQVVN0YXR1c0NoZWNr
KCk7Cit9CiAjZW5kaWYKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBkNGI1
M2FhNDZlZWZkNDVmZDI4NzNkNTY3Mjk0ZWVlMDRjOTExYTE2Li41Yzc0ODMyMDNkOGM1ZmQ5MjIx
ZDI0YjZkMjlhMjczY2VmYWIzZDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAg
LTU2Miw2ICs1NjIsNyBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoV0VCR0wpCiAgICAgdm9pZCBz
aW11bGF0ZVdlYkdMQ29udGV4dENoYW5nZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0Jik7CisgICAg
dm9pZCBmYWlsTmV4dEdQVVN0YXR1c0NoZWNrKFdlYkdMUmVuZGVyaW5nQ29udGV4dCYpOwogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaWRsCmluZGV4IGZlY2NlODQwNzRiZWJkNTZlYmU2MDg0NTQ2ZmJmZTVhMmJlNmY2YmMuLmY1
MTMxYWY3YzgyZTcyMGY1ZmE1ODk4OTA4YWNjOTIyZmI0Zjk0ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwKQEAgLTUyNyw2ICs1MjcsNyBAQCBlbnVtIEV2ZW50VGhyb3R0bGlu
Z0JlaGF2aW9yIHsKICAgICB2b2lkIHNldFNwZWN1bGF0aXZlVGlsaW5nRGVsYXlEaXNhYmxlZEZv
clRlc3RpbmcoYm9vbGVhbiBkaXNhYmxlZCk7CiAKICAgICBbQ29uZGl0aW9uYWw9V0VCR0xdIHZv
aWQgc2ltdWxhdGVXZWJHTENvbnRleHRDaGFuZ2VkKFdlYkdMUmVuZGVyaW5nQ29udGV4dCBjb250
ZXh0KTsKKyAgICBbQ29uZGl0aW9uYWw9V0VCR0xdIHZvaWQgZmFpbE5leHRHUFVTdGF0dXNDaGVj
ayhXZWJHTFJlbmRlcmluZ0NvbnRleHQgY29udGV4dCk7CiAKICAgICBbQ29uZGl0aW9uYWw9TUVE
SUFfU1RSRUFNXSB2b2lkIG9ic2VydmVNZWRpYVN0cmVhbVRyYWNrKE1lZGlhU3RyZWFtVHJhY2sg
dHJhY2spOwogICAgIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU1dIFByb21pc2U8SW1hZ2VEYXRh
PiBncmFiTmV4dE1lZGlhU3RyZWFtVHJhY2tGcmFtZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNhYWU5YjJhMDJjZTQ5
YjVkNmNhOTEzNTkxODM5YTY0NDg1NmI0NGMuLjVlMGFlNjNiNWM4ZjJlY2FmNzg5NTJkOThkM2E4
NDdlNzhiNTJjODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0wNS0yMyAgRGVhbiBKYWNr
c29uICA8ZGlub0BhcHBsZS5jb20+CisKKyAgICAgICAgY2hlY2tHUFVTdGF0dXMgbmVlZHMgdG8g
ZXhlcmNpc2UgaW5zdGFuY2luZyBjYWxscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTcyNTIwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMzExODM5
NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZh
c3QvY2FudmFzL3dlYmdsL2xvc2UtY29udGV4dC1vbi1zdGF0dXMtZmFpbHVyZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2xvc2UtY29udGV4dC1vbi1z
dGF0dXMtZmFpbHVyZS5odG1sOiBBZGRlZC4KKwogMjAxNy0wNS0xNSAgWmFsYW4gQnVqdGFzICA8
emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsZSBsaW5lIGxheW91dDogTGVhZGluZyB3
aGl0ZXNwYWNlIGZvbGxvd2VkIGJ5IGEgPGJyPiBwcm9kdWNlcyBhbiBleHRyYSBsaW5lYnJlYWsu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9sb3NlLWNvbnRleHQt
b24tc3RhdHVzLWZhaWx1cmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
d2ViZ2wvbG9zZS1jb250ZXh0LW9uLXN0YXR1cy1mYWlsdXJlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40MjY3YjAyZWZkMzUzOWJiNzM4NzY0NjU3YmRlOTNjMTY5MTUwYjEyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvbG9zZS1jb250ZXh0LW9uLXN0
YXR1cy1mYWlsdXJlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDc1IEBACitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgNjc6IFdlYkdMOiBDT05URVhUX0xPU1RfV0VCR0w6IGxvc2VDb250ZXh0OiBjb250
ZXh0IGxvc3QKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA5ODogV2ViR0w6IENPTlRFWFRfTE9TVF9X
RUJHTDogbG9zZUNvbnRleHQ6IGNvbnRleHQgbG9zdAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEy
NDogV2ViR0w6IENPTlRFWFRfTE9TVF9XRUJHTDogbG9zZUNvbnRleHQ6IGNvbnRleHQgbG9zdAor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDE1NjogV2ViR0w6IENPTlRFWFRfTE9TVF9XRUJHTDogbG9z
ZUNvbnRleHQ6IGNvbnRleHQgbG9zdAorQ2hlY2tzIHRoYXQgYSBHUFUgc3RhdHVzIGNoZWNrIGZh
aWx1cmUgd2lsbCBsb3NlIHRoZSBjb250ZXh0LgorTk9URTogVGhpcyBvbmx5IHBhc3NlcyBpbiB0
aGUgdGVzdCBoYXJuZXNzIGJlY2F1c2UgaXQgcmVxdWlyZXMgSW50ZXJuYWxzLgorCisKK1Rlc3Qg
ZHJhd0FycmF5cy4KKworRG8gZml2ZSAnc2FmZScgZHJhd0FycmF5cy4KK1BBU1MgZ2wuaXNDb250
ZXh0TG9zdCgpIGlzIGZhbHNlCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IKK1BB
U1MgZ2wuaXNDb250ZXh0TG9zdCgpIGlzIGZhbHNlCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wu
Tk9fRVJST1IKK1BBU1MgZ2wuaXNDb250ZXh0TG9zdCgpIGlzIGZhbHNlCitQQVNTIGdsLmdldEVy
cm9yKCkgaXMgZ2wuTk9fRVJST1IKK1BBU1MgZ2wuaXNDb250ZXh0TG9zdCgpIGlzIGZhbHNlCitQ
QVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IKK1BBU1MgZ2wuaXNDb250ZXh0TG9zdCgp
IGlzIGZhbHNlCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IKK05vdyBmb3JjZSBm
YWlsdXJlIGFmdGVyIHRoZSBuZXh0IGRyYXdBcnJheXMuCitQQVNTIGdsLmlzQ29udGV4dExvc3Qo
KSBpcyB0cnVlCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuQ09OVEVYVF9MT1NUX1dFQkdMCisK
K1Rlc3QgZHJhd0VsZW1lbnRzLgorCitEbyB0d28gJ3NhZmUnIGRyYXdFbGVtZW50cy4KK1BBU1Mg
Z2wuaXNDb250ZXh0TG9zdCgpIGlzIGZhbHNlCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9f
RVJST1IKK1BBU1MgZ2wuaXNDb250ZXh0TG9zdCgpIGlzIGZhbHNlCitQQVNTIGdsLmdldEVycm9y
KCkgaXMgZ2wuTk9fRVJST1IKK05vdyBmb3JjZSBmYWlsdXJlIGFmdGVyIHRoZSBuZXh0IGRyYXdF
bGVtZW50cy4KK1BBU1MgZ2wuaXNDb250ZXh0TG9zdCgpIGlzIHRydWUKK1BBU1MgZ2wuZ2V0RXJy
b3IoKSBpcyBnbC5DT05URVhUX0xPU1RfV0VCR0wKKworVGVzdCBkcmF3QXJyYXlzSW5zdGFuY2Vk
LgorCitEbyBmb3VyICdzYWZlJyBkcmF3QXJyYXlzSW5zdGFuY2VkQU5HTEUuCitQQVNTIGdsLmlz
Q29udGV4dExvc3QoKSBpcyBmYWxzZQorUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9S
CitQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyBmYWxzZQorUEFTUyBnbC5nZXRFcnJvcigpIGlz
IGdsLk5PX0VSUk9SCitQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyBmYWxzZQorUEFTUyBnbC5n
ZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyBmYWxz
ZQorUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitOb3cgZm9yY2UgZmFpbHVyZSBh
ZnRlciB0aGUgbmV4dCBkcmF3QXJyYXlzSW5zdGFuY2VkQU5HTEUuCitQQVNTIGdsLmlzQ29udGV4
dExvc3QoKSBpcyB0cnVlCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuQ09OVEVYVF9MT1NUX1dF
QkdMCisKK1Rlc3QgZHJhd0VsZW1lbnRzSW5zdGFuY2VkLgorCitEbyBzZXZlbiAnc2FmZScgZHJh
d0VsZW1lbnRzSW5zdGFuY2VkQU5HTEUuCitQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyBmYWxz
ZQorUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitQQVNTIGdsLmlzQ29udGV4dExv
c3QoKSBpcyBmYWxzZQorUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitQQVNTIGds
LmlzQ29udGV4dExvc3QoKSBpcyBmYWxzZQorUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VS
Uk9SCitQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyBmYWxzZQorUEFTUyBnbC5nZXRFcnJvcigp
IGlzIGdsLk5PX0VSUk9SCitQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyBmYWxzZQorUEFTUyBn
bC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitQQVNTIGdsLmlzQ29udGV4dExvc3QoKSBpcyBm
YWxzZQorUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitQQVNTIGdsLmlzQ29udGV4
dExvc3QoKSBpcyBmYWxzZQorUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitOb3cg
Zm9yY2UgZmFpbHVyZSBhZnRlciB0aGUgbmV4dCBkcmF3RWxlbWVudHNJbnN0YW5jZWRBTkdMRS4K
K1BBU1MgZ2wuaXNDb250ZXh0TG9zdCgpIGlzIHRydWUKK1BBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBn
bC5DT05URVhUX0xPU1RfV0VCR0wKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJn
bC9sb3NlLWNvbnRleHQtb24tc3RhdHVzLWZhaWx1cmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3dlYmdsL2xvc2UtY29udGV4dC1vbi1zdGF0dXMtZmFpbHVyZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmNlODQ0ZDMwZGJjM2ZhZmYwMDNhYTI0ZWQyOGViMDZkZTA2NDliMGYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9sb3NlLWNvbnRleHQtb24tc3Rh
dHVzLWZhaWx1cmUuaHRtbApAQCAtMCwwICsxLDE2NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aGVh
ZD4KKzxzdHlsZT4KK2NhbnZhcyB7CisgICAgd2lkdGg6IDIwMHB4OworICAgIGhlaWdodDogMjAw
cHg7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj4gPC9z
Y3JpcHQ+Cis8c2NyaXB0PgorCit2YXIgc2ltcGxlQ29sb3JWZXJ0ZXhTaGFkZXIgPSBbCisgICdh
dHRyaWJ1dGUgdmVjNCB2UG9zaXRpb247JywKKyAgJ3ZvaWQgbWFpbigpIHsnLAorICAnICAgIGds
X1Bvc2l0aW9uID0gdlBvc2l0aW9uOycsCisgICd9J10uam9pbignXG4nKTsKKwordmFyIHNpbXBs
ZUNvbG9yRnJhZ21lbnRTaGFkZXIgPSBbCisgICdwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsnLAor
ICAndW5pZm9ybSB2ZWM0IHVfY29sb3I7JywKKyAgJ3ZvaWQgbWFpbigpIHsnLAorICAnICAgIGds
X0ZyYWdEYXRhWzBdID0gdV9jb2xvcjsnLAorICAnfSddLmpvaW4oJ1xuJyk7CisKK3ZhciB3dHUg
PSBXZWJHTFRlc3RVdGlsczsKK3ZhciBnbDsKKworaWYgKHdpbmRvdy5pbml0Tm9uS2hyb25vc0Zy
YW1ld29yaykKKyAgICB3aW5kb3cuaW5pdE5vbktocm9ub3NGcmFtZXdvcmsoZmFsc2UpOworCitk
ZWJ1ZygiQ2hlY2tzIHRoYXQgYSBHUFUgc3RhdHVzIGNoZWNrIGZhaWx1cmUgd2lsbCBsb3NlIHRo
ZSBjb250ZXh0LiIpOworZGVidWcoIk5PVEU6IFRoaXMgb25seSBwYXNzZXMgaW4gdGhlIHRlc3Qg
aGFybmVzcyBiZWNhdXNlIGl0IHJlcXVpcmVzIEludGVybmFscy4iKTsKK2RlYnVnKCIiKTsKKwor
ZnVuY3Rpb24gbWFrZUNhbnZhcygpIHsKKyAgICBsZXQgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiY2FudmFzIik7CisgICAgY2FudmFzLndpZHRoID0gMjAwOworICAgIGNhbnZhcy5o
ZWlnaHQgPSAyMDA7CisgICAgcmV0dXJuIGNhbnZhczsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgp
IHsKKworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiVGVzdCBkcmF3QXJyYXlzLiIpOworICAg
IGRlYnVnKCIiKTsKKworICAgIGxldCBjYW52YXMgPSBtYWtlQ2FudmFzKCk7CisKKyAgICBnbCA9
IHd0dS5jcmVhdGUzRENvbnRleHQoY2FudmFzKTsKKyAgICB3dHUuc2V0dXBDb2xvclF1YWQoZ2wp
OworCisgICAgZ2wudmlld3BvcnQoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsK
KworICAgIGRlYnVnKCJEbyBmaXZlICdzYWZlJyBkcmF3QXJyYXlzLiIpCisgICAgZm9yIChsZXQg
aSA9IDA7IGkgPCA1OyBpKyspIHsKKyAgICAgICAgZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMs
IDAsIDYpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJnbC5pc0NvbnRleHRMb3N0KCkiKTsKKyAg
ICAgICAgc2hvdWxkQmUoImdsLmdldEVycm9yKCkiLCAiZ2wuTk9fRVJST1IiKTsKKyAgICB9CisK
KyAgICBkZWJ1ZygiTm93IGZvcmNlIGZhaWx1cmUgYWZ0ZXIgdGhlIG5leHQgZHJhd0FycmF5cy4i
KQorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLmZh
aWxOZXh0R1BVU3RhdHVzQ2hlY2soZ2wpOworICAgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVT
LCAwLCA2KTsKKyAgICBzaG91bGRCZVRydWUoImdsLmlzQ29udGV4dExvc3QoKSIpOworICAgIHNo
b3VsZEJlKCJnbC5nZXRFcnJvcigpIiwgImdsLkNPTlRFWFRfTE9TVF9XRUJHTCIpOworCisgICAg
ZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0IGRyYXdFbGVtZW50cy4iKTsKKyAgICBkZWJ1Zygi
Iik7CisKKyAgICBjYW52YXMgPSBtYWtlQ2FudmFzKCk7CisKKyAgICBnbCA9IHd0dS5jcmVhdGUz
RENvbnRleHQoY2FudmFzKTsKKyAgICB3dHUuc2V0dXBJbmRleGVkUXVhZChnbCk7CisKKyAgICB2
YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFByb2dyYW0oCisgICAgICAgIGdsLAorICAgICAgICBbc2lt
cGxlQ29sb3JWZXJ0ZXhTaGFkZXIsIHNpbXBsZUNvbG9yRnJhZ21lbnRTaGFkZXJdLAorICAgICAg
ICBbJ3ZQb3NpdGlvbiddLAorICAgICAgICBbXSk7CisKKyAgICBnbC52aWV3cG9ydCgwLCAwLCBj
YW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOworCisgICAgZGVidWcoIkRvIHR3byAnc2FmZScg
ZHJhd0VsZW1lbnRzLiIpCisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAyOyBpKyspIHsKKyAgICAg
ICAgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFUywgNiwgZ2wuVU5TSUdORURfU0hPUlQsIDAp
OworICAgICAgICBzaG91bGRCZUZhbHNlKCJnbC5pc0NvbnRleHRMb3N0KCkiKTsKKyAgICAgICAg
c2hvdWxkQmUoImdsLmdldEVycm9yKCkiLCAiZ2wuTk9fRVJST1IiKTsKKyAgICB9CisKKyAgICBk
ZWJ1ZygiTm93IGZvcmNlIGZhaWx1cmUgYWZ0ZXIgdGhlIG5leHQgZHJhd0VsZW1lbnRzLiIpCisg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuZmFpbE5l
eHRHUFVTdGF0dXNDaGVjayhnbCk7CisgICAgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFUywg
NiwgZ2wuVU5TSUdORURfU0hPUlQsIDApOworICAgIHNob3VsZEJlVHJ1ZSgiZ2wuaXNDb250ZXh0
TG9zdCgpIik7CisgICAgc2hvdWxkQmUoImdsLmdldEVycm9yKCkiLCAiZ2wuQ09OVEVYVF9MT1NU
X1dFQkdMIik7CisKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIlRlc3QgZHJhd0FycmF5c0lu
c3RhbmNlZC4iKTsKKyAgICBkZWJ1ZygiIik7CisKKyAgICBjYW52YXMgPSBtYWtlQ2FudmFzKCk7
CisKKyAgICBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQoY2FudmFzKTsKKyAgICBleHQgPSB3dHUu
Z2V0RXh0ZW5zaW9uV2l0aEtub3duUHJlZml4ZXMoZ2wsICJBTkdMRV9pbnN0YW5jZWRfYXJyYXlz
Iik7CisgICAgd3R1LnNldHVwQ29sb3JRdWFkKGdsKTsKKworICAgIGdsLnZpZXdwb3J0KDAsIDAs
IGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7CisKKyAgICBkZWJ1ZygiRG8gZm91ciAnc2Fm
ZScgZHJhd0FycmF5c0luc3RhbmNlZEFOR0xFLiIpCisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA0
OyBpKyspIHsKKyAgICAgICAgZXh0LmRyYXdBcnJheXNJbnN0YW5jZWRBTkdMRShnbC5UUklBTkdM
RVMsIDAsIDYsIDEwKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgiZ2wuaXNDb250ZXh0TG9zdCgp
Iik7CisgICAgICAgIHNob3VsZEJlKCJnbC5nZXRFcnJvcigpIiwgImdsLk5PX0VSUk9SIik7Cisg
ICAgfQorCisgICAgZGVidWcoIk5vdyBmb3JjZSBmYWlsdXJlIGFmdGVyIHRoZSBuZXh0IGRyYXdB
cnJheXNJbnN0YW5jZWRBTkdMRS4iKQorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAg
ICB3aW5kb3cuaW50ZXJuYWxzLmZhaWxOZXh0R1BVU3RhdHVzQ2hlY2soZ2wpOworICAgIGV4dC5k
cmF3QXJyYXlzSW5zdGFuY2VkQU5HTEUoZ2wuVFJJQU5HTEVTLCAwLCA2LCAxMCk7CisgICAgc2hv
dWxkQmVUcnVlKCJnbC5pc0NvbnRleHRMb3N0KCkiKTsKKyAgICBzaG91bGRCZSgiZ2wuZ2V0RXJy
b3IoKSIsICJnbC5DT05URVhUX0xPU1RfV0VCR0wiKTsKKworICAgIGRlYnVnKCIiKTsKKyAgICBk
ZWJ1ZygiVGVzdCBkcmF3RWxlbWVudHNJbnN0YW5jZWQuIik7CisgICAgZGVidWcoIiIpOworCisg
ICAgY2FudmFzID0gbWFrZUNhbnZhcygpOworCisgICAgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0
KGNhbnZhcyk7CisgICAgZXh0ID0gd3R1LmdldEV4dGVuc2lvbldpdGhLbm93blByZWZpeGVzKGds
LCAiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpOworICAgIHd0dS5zZXR1cEluZGV4ZWRRdWFkKGds
KTsKKworICAgIHZhciBwcm9ncmFtID0gd3R1LnNldHVwUHJvZ3JhbSgKKyAgICAgICAgZ2wsCisg
ICAgICAgIFtzaW1wbGVDb2xvclZlcnRleFNoYWRlciwgc2ltcGxlQ29sb3JGcmFnbWVudFNoYWRl
cl0sCisgICAgICAgIFsndlBvc2l0aW9uJ10sCisgICAgICAgIFtdKTsKKworICAgIGdsLnZpZXdw
b3J0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7CisKKyAgICBkZWJ1ZygiRG8g
c2V2ZW4gJ3NhZmUnIGRyYXdFbGVtZW50c0luc3RhbmNlZEFOR0xFLiIpCisgICAgZm9yIChsZXQg
aSA9IDA7IGkgPCA3OyBpKyspIHsKKyAgICAgICAgZXh0LmRyYXdFbGVtZW50c0luc3RhbmNlZEFO
R0xFKGdsLlRSSUFOR0xFUywgNiwgZ2wuVU5TSUdORURfU0hPUlQsIDAsIDgpOworICAgICAgICBz
aG91bGRCZUZhbHNlKCJnbC5pc0NvbnRleHRMb3N0KCkiKTsKKyAgICAgICAgc2hvdWxkQmUoImds
LmdldEVycm9yKCkiLCAiZ2wuTk9fRVJST1IiKTsKKyAgICB9CisKKyAgICBkZWJ1ZygiTm93IGZv
cmNlIGZhaWx1cmUgYWZ0ZXIgdGhlIG5leHQgZHJhd0VsZW1lbnRzSW5zdGFuY2VkQU5HTEUuIikK
KyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93LmludGVybmFscy5mYWls
TmV4dEdQVVN0YXR1c0NoZWNrKGdsKTsKKyAgICBleHQuZHJhd0VsZW1lbnRzSW5zdGFuY2VkQU5H
TEUoZ2wuVFJJQU5HTEVTLCA2LCBnbC5VTlNJR05FRF9TSE9SVCwgMCwgOCk7CisgICAgc2hvdWxk
QmVUcnVlKCJnbC5pc0NvbnRleHRMb3N0KCkiKTsKKyAgICBzaG91bGRCZSgiZ2wuZ2V0RXJyb3Io
KSIsICJnbC5DT05URVhUX0xPU1RfV0VCR0wiKTsKKworICAgIGZpbmlzaFRlc3QoKTsKK30KKwor
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBydW5UZXN0LCBmYWxzZSk7Cis8L3Njcmlw
dD4KKzxib2R5PgorPC9ib2R5PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>
<flag name="review"
          id="332066"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
          </attachment>
      

    </bug>

</bugzilla>