From unknown Sun Jun 22 17:11:10 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#25682 <25682@debbugs.gnu.org> To: bug#25682 <25682@debbugs.gnu.org> Subject: Status: 25.1; font-lock: fontifying too slow in some modes on very long lines Reply-To: bug#25682 <25682@debbugs.gnu.org> Date: Mon, 23 Jun 2025 00:11:10 +0000 retitle 25682 25.1; font-lock: fontifying too slow in some modes on very lo= ng lines reassign 25682 emacs submitter 25682 Ryan B severity 25682 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Fri Feb 10 16:44:59 2017 Received: (at submit) by debbugs.gnu.org; 10 Feb 2017 21:45:00 +0000 Received: from localhost ([127.0.0.1]:35090 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ccIzy-0006ex-DQ for submit@debbugs.gnu.org; Fri, 10 Feb 2017 16:44:59 -0500 Received: from eggs.gnu.org ([208.118.235.92]:52852) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ccIqA-0006Qw-6x for submit@debbugs.gnu.org; Fri, 10 Feb 2017 16:34:51 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ccIq0-00007Y-4n for submit@debbugs.gnu.org; Fri, 10 Feb 2017 16:34:44 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,HTML_MESSAGE autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:43571) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ccIpz-00007S-WB for submit@debbugs.gnu.org; Fri, 10 Feb 2017 16:34:40 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43747) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ccIpu-00035t-I2 for bug-gnu-emacs@gnu.org; Fri, 10 Feb 2017 16:34:39 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ccIpp-0008Uz-Lj for bug-gnu-emacs@gnu.org; Fri, 10 Feb 2017 16:34:34 -0500 Received: from smtp3.cs.stanford.edu ([171.64.64.27]:48271) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ccIpp-0008UC-4Y for bug-gnu-emacs@gnu.org; Fri, 10 Feb 2017 16:34:29 -0500 Received: from mail-vk0-f52.google.com ([209.85.213.52]:33803) by smtp3.cs.Stanford.EDU with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.88) (envelope-from ) id 1ccIpk-0001QB-BA for bug-gnu-emacs@gnu.org; Fri, 10 Feb 2017 13:34:27 -0800 Received: by mail-vk0-f52.google.com with SMTP id r136so34818686vke.1 for ; Fri, 10 Feb 2017 13:34:24 -0800 (PST) X-Gm-Message-State: AMke39kWp9eCE745EN6pVU58M9egu+wQPf4RSVe4LhC9ID6HlrPAaVbEaGRh6DhdNQgmdFiLddEifx/UNQxG6w== X-Received: by 10.31.155.75 with SMTP id d72mr5163897vke.55.1486762463277; Fri, 10 Feb 2017 13:34:23 -0800 (PST) MIME-Version: 1.0 Received: by 10.176.65.134 with HTTP; Fri, 10 Feb 2017 13:33:52 -0800 (PST) From: Ryan B Date: Fri, 10 Feb 2017 13:33:52 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: 25.1; font-lock: fontifying too slow in some modes on very long lines To: bug-gnu-emacs@gnu.org Content-Type: multipart/alternative; boundary=001a1141ddd27d3f5e054833dc12 X-Scan-Signature: caa97369d9b0a96268ab7ebed178327c X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.3 (----) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Fri, 10 Feb 2017 16:44:57 -0500 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.3 (----) --001a1141ddd27d3f5e054833dc12 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable i occasionally have very long lines in some buffers, e.g. 10k-20k characters. font-lock-mode often hangs for a long time (5-10s) when fontifying these lines. this has evidently been a known issue with font-lock-mode for a long time, and inspired a number of optimizations and workarounds: jit-lock/lazy-lock (formerly fast-lock), font-lock-maximum-decoration, https://www.emacswiki.org/emacs/SoLong , etc. they all work by deferring, downgrading, or disabling fontification in certain buffers. that's nice, but i'd ideally like to keep font-lock-mode on in buffers where very long lines appear, and still prevent the hangs. i'm considering adding an opt-in max line length to font-lock-mode, after which it would stop fontifying or evaluating regexps. i'd love to hear feedback on whether this makes sense! here are steps that reproduce this, with gnu emacs 25.1.1 on mac os x: 1. put the single long line under the =3D=3D=3D below (18572 chars long) in= to a file 2. run emacs -Q 3. type C-x C-f RET to open the file 4. type M-x compilation-mode RET this consistently hangs emacs for 9-10s for me on modern hardware, a 2014 retina macbook pro. =3D=3D=3D [2017-02-10T07:35:45Z django.db.backends] DEBUG: (0.057) SELECT "xxx_xxxxxx_xxxxxxxx"."xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxxxx_xxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xxxx", "xxx_xxxxxx_xxxxxxxx"."xxx_xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xx_xxx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xxx_xxxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xx", MAX("xxx_xxxxxx_xxxxxxxxxxxxxxxxxx"."xx") AS "xxxxxxxx_xx", COUNT(DISTINCT "xxx_xxxxxx_xxxxxxxx_xxxxxxx"."xxxxxx_xx") AS "xxx_xxxxxxx", MAX("xxxxxxx_xxxxxx"."xxxx_xx") AS "xxxxxx_xxxx_xx", STRING_AGG("xxxxxxx_xxxxxx"."xxx_xxxxxxx", ' ') AS "xxx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxx_xx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxx_xxxx_xxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xx_xxxxxx_xx= xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xxx_xxxxxxxx= xx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxx_xxx_xxxxxxxx_xxxxx_xx_xxxxxx= ", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxxxx_xxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxx_xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxx_x3_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxx_xx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx_xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx2", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", T11."xx", T11."xxxxxxxx", T11."xxxx_xxxxx", T11."xx_xxxxxxxxx", T11."xxxxx", T11."xxxxxxxxxxx_xxxxxxx_xxxxx", T11."xxxxxxx_xx", T11."xxxxx_xxxx", T11."xxxx_xxxx", T11."xxxxxxxx", T11."xxxxxx", T11."xxxxx_xxxxxx", T11."xxxxxxx_xxxxxxx_xx", T11."xxxxxxx_xxxxxxxx_xxxxxxx_xx", T11."xxxxxxx_xx_xxxxx", T11."xxx_xxx_xxx_xxxxxxxx", T11."xx_xxxxx", T11."xxxxx_xxxxx_xxxxx_xxxxxxx", T11."xx_xxxxxx", T11."xx_xxxxx", T11."xxxxxxx_xx", T11."xxxxxxx_xx", T11."xxxxxxx_xx", T11."xxxx_xxxxx_xxxxxxx", T11."xxxxxxxxxxx_xxxxxx_xxxxxx", T12."xx", T12."xxxxxxx_xx", T12."xxxxxxx_xx", T12."xxx", T12."xxxxx_xxxx", T12."xxxx_xxxx", T12."xxxxx", T12."xxxxx_xxxxxx", T12."xxx_xxxxxx", T12."xxxxxxx_xxxx", T12."xxxxxxxxxxx_xxxx", T12."xxxx", T12."xxxxx", T12."xxxxxxx_xxxx1", T12."xxxxxxx", T12."xxxxxxx_xxxxxxx_xxxxxxx_xxx", T12."xxxx_xx", T12."xxxxxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxxxxx_xx_xxxxx= xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxx_xx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx_xxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx_xxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxxxxxxx_xxxxxxxx"."xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxx_xxxxx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx_xxxxx", "xxxxxxxx_xxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", "xxxxxxxx_xxxxxxxx"."xx_xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxx_xxx_xxxx" FROM "xxx_xxxxxx_xxxxxxxx" LEFT OUTER JOIN "xxx_xxxxxx_xxxxxxxxxxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxxxx_xxxx_xx" =3D "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN "xxx_xxxxxx_xxxxxxxxxxxxxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xx" =3D "xxx_xxxxxx_xxxxxxxxxxxxxxxxxx"."xxx_xxxxx_xx" ) LEFT OUTER JOIN "xxx_xxxxxx_xxxxxxxx_xxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xx" =3D "xxx_xxxxxx_xxxxxxxx_xxxxxxx"."xxxxxxxx_xx" ) LEFT OUTER JOIN "xxxxxxx_xxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx_xxxxxxx"."xxxxxx_xx" =3D "xxxxxxx_xxxxxx"."xx" ) LEFT OUTER JOIN "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx" =3D "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx" ON ( "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxxx_xxxxxxx_xx" =3D "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx" ON ( "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxxx_xx" =3D "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN "xxxxxxxxxx_xxxxxxxxxxxxxxxxx" ON ( "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxxx_xx" =3D "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN "xxxxx_xxxxxxxxx" T11 ON ( "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx_xx" =3D T11."xx" ) LEF= T OUTER JOIN "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx" T12 ON ( T11."xx" =3D T12."xxxx_xx" ) LEFT OUTER JOIN "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx" ON ( T12."xx" =3D "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxx_xx" ) LEFT OUTER JOIN "xxxxxxxx_xxxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx" =3D "xxxxxxxx_xxxxxxxx"."xx" ) WHERE (N= OT ("xxx_xxxxxx_xxxxxxxx"."xxxxx" =3D 'xxxxxxxxx') AND NOT ("xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx" < '2015-04-20T00:00:00-07:00'::xxxxxxxxxxx) AND NOT ("xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx" IN ('xx', 'xx') AND "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx" IS NOT NULL)) GROUP BY "xxx_xxxxxx_xxxxxxxx"."xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxxxx_xxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xxxx", "xxx_xxxxxx_xxxxxxxx"."xxx_xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xx_xxx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xxx_xxxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxx_xx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxx_xxxx_xxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xx_xxxxxx_xx= xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xxx_xxxxxxxx= xx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxx_xxx_xxxxxxxx_xxxxx_xx_xxxxxx= ", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxxxx_xxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxx_xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxx_x3_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxx_xx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx_xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx2", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", T11."xx", T11."xxxxxxxx", T11."xxxx_xxxxx", T11."xx_xxxxxxxxx", T11."xxxxx", T11."xxxxxxxxxxx_xxxxxxx_xxxxx", T11."xxxxxxx_xx", T11."xxxxx_xxxx", T11."xxxx_xxxx", T11."xxxxxxxx", T11."xxxxxx", T11."xxxxx_xxxxxx", T11."xxxxxxx_xxxxxxx_xx", T11."xxxxxxx_xxxxxxxx_xxxxxxx_xx", T11."xxxxxxx_xx_xxxxx", T11."xxx_xxx_xxx_xxxxxxxx", T11."xx_xxxxx", T11."xxxxx_xxxxx_xxxxx_xxxxxxx", T11."xx_xxxxxx", T11."xx_xxxxx", T11."xxxxxxx_xx", T11."xxxxxxx_xx", T11."xxxxxxx_xx", T11."xxxx_xxxxx_xxxxxxx", T11."xxxxxxxxxxx_xxxxxx_xxxxxx", T12."xx", T12."xxxxxxx_xx", T12."xxxxxxx_xx", T12."xxx", T12."xxxxx_xxxx", T12."xxxx_xxxx", T12."xxxxx", T12."xxxxx_xxxxxx", T12."xxx_xxxxxx", T12."xxxxxxx_xxxx", T12."xxxxxxxxxxx_xxxx", T12."xxxx", T12."xxxxx", T12."xxxxxxx_xxxx1", T12."xxxxxxx", T12."xxxxxxx_xxxxxxx_xxxxxxx_xxx", T12."xxxx_xx", T12."xxxxxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxxxxx_xx_xxxxx= xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxx_xx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx_xxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx_xxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxxxxxxx_xxxxxxxx"."xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxx_xxxxx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx_xxxxx", "xxxxxxxx_xxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", "xxxxxxxx_xxxxxxxx"."xx_xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxx_xxx_xxxx"; xxxx=3D('xxxxxxxxx', datetime.datetime(2015, 4, 20, 0, 0, tzinfo=3D), 'ff', 'qa') =3D=3D=3D In GNU Emacs 25.1.1 (x86_64-apple-darwin15.6.0, NS appkit-1404.47 Version 10.11.6 (Build 15G1004)) of 2016-09-17 built on hell.PK5001Z Windowing system distributor 'Apple', version 10.3.1404 Configured using: 'configure --disable-dependency-tracking --disable-silent-rules --enable-locallisppath=3D/usr/local/share/emacs/site-lisp --infodir=3D/usr/local/Cellar/emacs/25.1/share/info/emacs --prefix=3D/usr/local/Cellar/emacs/25.1 --without-x --with-xml2 --without-dbus --without-gnutls --with-rsvg --with-ns --disable-ns-self-contained' Configured features: JPEG RSVG NOTIFY ACL LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: JavaScript Minor modes in effect: helm-mode: t diff-auto-refine-mode: t rainbow-identifiers-mode: t rainbow-delimiters-mode: t async-bytecomp-package-mode: t global-auto-revert-mode: t desktop-save-mode: t savehist-mode: t show-paren-mode: t delete-selection-mode: t recentf-mode: t global-subword-mode: t subword-mode: t shell-dirtrack-mode: t global-eldoc-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t Recent messages: Saving file /Users/ryan/.emacs.d/recentf... Wrote /Users/ryan/.emacs.d/recentf Desktop saved in ~/.emacs.d/ Saving file /Users/ryan/.emacs.d/recentf... Wrote /Users/ryan/.emacs.d/recentf Reverting buffer =E2=80=98recentf=E2=80=99. next-line: End of buffer [2 times] Mark set [5 times] Saving file /tmp/*scratch*... Wrote /tmp/*scratch* Load-path shadows: /Users/ryan/.emacs.d/elpa/seq-2.19/seq hides /usr/local/Cellar/emacs/25.1/share/emacs/25.1/lisp/emacs-lisp/seq Features: (shadow sort mail-extr emacsbug sendmail ibuf-ext man vc-annotate log-view pcmpl-unix vc-bzr vc-src vc-sccs vc-cvs vc-rcs dabbrev image-file dirtrack emacs-lock manoj-dark-theme ibuffer eieio-opt find-func cus-edit rst fillcode cc-bytecomp make-mode filecache tramp-cache conf-mode helm-command vc-svn helm-elisp helm-eval edebug sql view json-mode json-reformat json-snatcher misearch multi-isearch ido ess-toolbar ess-mouse mouseme ess-menu ess-swv ess-noweb ess-noweb-font-lock-mode ess-bugs-l essd-els ess-sas-d ess-sas-l ess-sas-a ess-sta-d ess-sta-l make-regexp ess-sp6-d ess-dde ess-sp3-d ess-julia julia-mode ess-r-d ess-r-syntax ess-r-completion ess-roxy essddr hideshow ess-help ess-r-package ess-s-l ess-site ess ess-inf ess-tracebug ess-mode ess-noweb-mode ess-utils ess-generics cl ess-custom ess-compat nxml-uchnm rng-xsd xsd-regexp rng-cmpct rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap nxml-util nxml-glyph nxml-enc xmltok php-mode derived speedbar sb-image ezimage dframe flymake cc-langs smerge-mode vc-dir ewoc vc vc-dispatcher winner yaml-mode jka-compr helm-mode vc-git diff-mode rainbow-identifiers color rainbow-delimiters helm-misc helm-files image-dired dired-x dired-aux helm-buffers helm-elscreen helm-tags helm-bookmark helm-adaptive helm-info bookmark pp helm-locate helm-grep helm-regexp helm-external helm-net browse-url xml helm-utils helm-help helm-types helm-config helm-easymenu async-bytecomp async helm edmacro kmacro helm-source helm-multi-match helm-lib midnight autorevert filenotify desktop frameset savehist paren redo+ delsel warnings grep cus-start cus-load git-link dash-at-point recentf tree-widget wid-edit cap-words superword subword jade-mode js imenu cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs python tramp-sh tramp tramp-compat tramp-loaddefs trampver shell pcomplete sh-script executable sgml-mode go-mode url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap find-file ffap etags xref project compile comint ansi-color css-mode smie markdown-mode thingatpt noutline outline log-edit easy-mmode message dired format-spec rfc822 mml mml-sec epg mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev mail-utils gmm-utils mailheader ring pcvs-util add-log finder-inf gh-common gh-profile url-parse auth-source gnus-util mm-util help-fns mail-prsvr password-cache url-vars rx s marshal cl-seq eieio-compat ht json map dash eieio eieio-core cl-macs info package epg-config seq byte-opt gv bytecomp byte-compile cl-extra help-mode easymenu cconv cl-loaddefs cl-lib subr-x pcase advice server time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel ns-win ucs-normalize term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese charscript case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote kqueue cocoa ns multi-tty make-network-process emacs) Memory information: ((conses 16 5126063 736652) (symbols 48 53998 0) (miscs 40 3720 24660) (strings 32 157538 77287) (string-bytes 1 5024002) (vectors 16 90573) (vector-slots 8 2240527 189813) (floats 8 946 1835) (intervals 56 1059644 6492) (buffers 976 638)) --=20 https://snarfed.org/ --001a1141ddd27d3f5e054833dc12 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
i occasionally have very long lines in some buffers, e.g. = 10k-20k characters. font-lock-mode often hangs for a long time (5-10s) when= fontifying these lines.

this has evidently been a known issue with = font-lock-mode for a long time, and inspired a number of optimizations and = workarounds: jit-lock/lazy-lock (formerly fast-lock), font-lock-maximum-dec= oration, https://www.ema= cswiki.org/emacs/SoLong , etc. they all work by deferring, downgrading,= or disabling fontification in certain buffers.

that's nice, but= i'd ideally like to keep font-lock-mode on in buffers where very long = lines appear, and still prevent the hangs. i'm considering adding an op= t-in max line length to font-lock-mode, after which it would stop fontifyin= g or evaluating regexps. i'd love to hear feedback on whether this make= s sense!

here are steps that reproduce this, with gnu emacs 25.1.1 o= n mac os x:

1. put the single long line under the =3D=3D=3D below (1= 8572 chars long) into a file
2. run emacs -Q
3. type C-x C-f <file= name> RET to open the file
4. type M-x compilation-mode RET

th= is consistently hangs emacs for 9-10s for me on modern hardware, a 2014 ret= ina macbook pro.

=3D=3D=3D

[2017-02-10T07:35:45Z django.db.ba= ckends] DEBUG: (0.057) SELECT "xxx_xxxxxx_xxxxxxxx"."xx"= ;, "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx= _xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx".&qu= ot;xxxxxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_= xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xx= x_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx", "xxx_xxxxxx_xxxxxx= xx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxx= xxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx"= , "xxx_xxxxxx_xxxxxxxx"."xxxx_xx", "xxx_xxxxxx_xxx= xxxxx"."xxxxxxxxx_xxxxx_xx", "xxx_xxxxxx_xxxxxxxx"= ."xxxxxxxxxxx_xxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxx= x_xxxx", "xxx_xxxxxx_xxxxxxxx"."xxx_xxxxx_xxxxx", = "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxx", "xxx_xx= xxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxxx", "xxx_xxxxxx_xxxxxx= xx"."xxxxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_= xx_xxx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xxx_xxxxxxx",= "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_x= xxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx".&quo= t;xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx_xx",= "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xx", MAX("xxx_xx= xxxx_xxxxxxxxxxxxxxxxxx"."xx") AS "xxxxxxxx_xx", C= OUNT(DISTINCT "xxx_xxxxxx_xxxxxxxx_xxxxxxx"."xxxxxx_xx"= ) AS "xxx_xxxxxxx", MAX("xxxxxxx_xxxxxx"."xxxx_xx&= quot;) AS "xxxxxx_xxxx_xx", STRING_AGG("xxxxxxx_xxxxxx"= ."xxx_xxxxxxx", ' ') AS "xxx_xxxxxxxx", "x= xxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxx= xxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx= xx_xxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_x= xxxxxxxxxxxxx"."xxxxxxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxx= xx_xxxxxxxxxxxxxx"."xxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xx= xxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxx= x_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxxx_xxxxxxx_xx", "xxx= xxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx_xx", "xxxxx= xxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", "x= xxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxxxx", "x= xxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxx", &quo= t;xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx_xxxxxxx", = "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxx_xx_xxxx&= quot;, "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxx_xxx= x_xxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx= xxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxx= x"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxx= xx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xx_xxxxxx_xxxxxxx_xx= xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxx= x_xxxxxxx_xxxx_xxx_xxxxxxxxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxx= xxxxxxxxxx"."xx_xxxxx_xxx_xxxxxxxx_xxxxx_xx_xxxxxx", "x= xxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxx", "xx= xxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxxxx_xxxxxxxxxx&= quot;, "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxx= xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xx= xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx_xxxx= xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxx_= xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx"= ;, "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxx",= "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx"= ;, "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx&= quot;, "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xx&quo= t;, "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx", "= ;xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", "x= xxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xx", "xxxxxxxx= _xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_x= xxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxx_x3_xxxx", "x= xxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxx= xxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxx= xxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxx= x_xxxxxxxxxxxxxxx"."xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxx= xxxxxxx"."xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxx= xxxx"."xxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx= "."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx".&= quot;xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx".&q= uot;xxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."= ;xxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."= xxxxxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx".&qu= ot;xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx&= quot;, "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx1&= quot;, "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx",= "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxx= xxx_xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_x= x", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxxx= _xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xx", &qu= ot;xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxx= xxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxx= x_xxxxxxxxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxxxx_xxxxxxxxx= xxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxx= xxxxxxxx"."xxxxxxxx_xx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxx= xxxxxx"."xxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx&qu= ot;."xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_= xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", = "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxx= xxxxxx_xxxxxxxxxxxxxxxxx"."xxxx_xxxx", "xxxxxxxxxx_xxxx= xxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxx= xxxxx"."xxx_xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"= ;."xxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."= xxxxxxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxx= xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx"= ;, "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx", "xxxxxxxx= xx_xxxxxxxxxxxxxxxxx"."xxxxxx", "xxxxxxxxxx_xxxxxxxxxxx= xxxxxx"."xxxxxxx_xxxx1", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx&= quot;."xxxxxxx_xxxx2", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx".&= quot;xxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx= xxxx_xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx= xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxx_= xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", T11= ."xx", T11."xxxxxxxx", T11."xxxx_xxxxx", T11.= "xx_xxxxxxxxx", T11."xxxxx", T11."xxxxxxxxxxx_xxxx= xxx_xxxxx", T11."xxxxxxx_xx", T11."xxxxx_xxxx", T1= 1."xxxx_xxxx", T11."xxxxxxxx", T11."xxxxxx", = T11."xxxxx_xxxxxx", T11."xxxxxxx_xxxxxxx_xx", T11."= ;xxxxxxx_xxxxxxxx_xxxxxxx_xx", T11."xxxxxxx_xx_xxxxx", T11.&= quot;xxx_xxx_xxx_xxxxxxxx", T11."xx_xxxxx", T11."xxxxx_= xxxxx_xxxxx_xxxxxxx", T11."xx_xxxxxx", T11."xx_xxxxx&qu= ot;, T11."xxxxxxx_xx", T11."xxxxxxx_xx", T11."xxxx= xxx_xx", T11."xxxx_xxxxx_xxxxxxx", T11."xxxxxxxxxxx_xxx= xxx_xxxxxx", T12."xx", T12."xxxxxxx_xx", T12."= ;xxxxxxx_xx", T12."xxx", T12."xxxxx_xxxx", T12.&qu= ot;xxxx_xxxx", T12."xxxxx", T12."xxxxx_xxxxxx", T1= 2."xxx_xxxxxx", T12."xxxxxxx_xxxx", T12."xxxxxxxxx= xx_xxxx", T12."xxxx", T12."xxxxx", T12."xxxxx= xx_xxxx1", T12."xxxxxxx", T12."xxxxxxx_xxxxxxx_xxxxxxx_= xxx", T12."xxxx_xx", T12."xxxxxxxxxxxx_xx", "= xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx", "xxxxxxxx_x= xxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxx= xxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxx= xxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxx_xx", "xxxxxxx= x_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxxxxx_xx_xxx= xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx= _xxxxxxx_xxxxx_xx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx&qu= ot;."xxxxxxx_xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx= "."xxxxxxx_xxxx_xxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxx= xxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_= xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", "xxxxxxxx_xxxxxxxx= xx_xxxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx= _xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxx_xxxx", "xxxxxxxx_xxx= xxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxxxxxxx_xxxx", "xxxx= xxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", "= xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xx= x", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx_xxxxxxxx= _xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxx= x_xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx".&quo= t;xxxxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx&q= uot;, "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "= xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_x= xxxxxxxxxxxxxx"."xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx&quo= t;."xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx= xxxxx_xxxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxx= xx_xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", = "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxxxxxxx", "x= xx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_x= xxxxxxxxxxxxxx"."xx_xxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxx= xx"."xxxxxxx", "xxxxxxxx_xxxxxxxx"."xx",= "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxx= xxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxx= xxx_xxxxxx", "xxxxxxxx_xxxxxxxx"."xxxx_xx", "= xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx&quo= t;."xxxxxxxx_xxxx_xxxxx", "xxxxxxxx_xxxxxxxx"."xxx= xxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx_= xxxxx", "xxxxxxxx_xxxxxxxx"."xxxx_xx", "xxxxx= xxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", "xxxxxxxx_xxxxxxxx&= quot;."xx_xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxx_xxx_x= xxx" FROM "xxx_xxxxxx_xxxxxxxx" LEFT OUTER JOIN "xxx_xx= xxxx_xxxxxxxxxxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xxxxx= xxxxxx_xxxx_xx" =3D "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx&qu= ot; ) LEFT OUTER JOIN "xxx_xxxxxx_xxxxxxxxxxxxxxxxxx" ON ( "= xxx_xxxxxx_xxxxxxxx"."xx" =3D "xxx_xxxxxx_xxxxxxxxxxxxx= xxxxx"."xxx_xxxxx_xx" ) LEFT OUTER JOIN "xxx_xxxxxx_xxx= xxxxx_xxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xx" =3D= "xxx_xxxxxx_xxxxxxxx_xxxxxxx"."xxxxxxxx_xx" ) LEFT OUT= ER JOIN "xxxxxxx_xxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx_xxxxxxx&q= uot;."xxxxxx_xx" =3D "xxxxxxx_xxxxxx"."xx" ) = LEFT OUTER JOIN "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx" ON ( "x= xx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx" =3D "xxxxxxxx_= xxxxxxxxxx_xxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN "xxxx= xxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx" ON ( "xxxxxxxx_xxxxxxxxxx_xxxxxx= xxxxxxxx"."xxxxxxxx_xxxxxxxxx_xxxxxxx_xx" =3D "xxxxxxxx= _xxxxxxxxxx_xxxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN "xx= xxxxxxxx_xxxxxxxxxxxxxxxxxxxxx" ON ( "xxxxxxxx_xxxxxxxxxx_xxxxxxx= xxxxxxxx"."xxxxxxxxxxxx_xx" =3D "xxxxxxxxxx_xxxxxxxxxxx= xxxxxxxxxx"."xx" ) LEFT OUTER JOIN "xxxxxxxxxx_xxxxxxxx= xxxxxxxxx" ON ( "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxx= xxxxxx_xx" =3D "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xx"= ) LEFT OUTER JOIN "xxxxx_xxxxxxxxx" T11 ON ( "xxxxxxxx_xxxx= xxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx_xx" =3D T11."xx"= ) LEFT OUTER JOIN "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx" T12 ON (= T11."xx" =3D T12."xxxx_xx" ) LEFT OUTER JOIN "xxx= xxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx" ON ( T12."xx" =3D "x= xxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxx_xx" )= LEFT OUTER JOIN "xxxxxxxx_xxxxxxxx" ON ( "xxx_xxxxxx_xxxxxx= xx"."xxxxxxxx_xx" =3D "xxxxxxxx_xxxxxxxx"."xx= " ) WHERE (NOT ("xxx_xxxxxx_xxxxxxxx"."xxxxx" =3D = 'xxxxxxxxx') AND NOT ("xxx_xxxxxx_xxxxxxxx"."xxxxxxx= _xx" < '2015-04-20T00:00:00-07:00'::xxxxxxxxxxx) AND NOT (&= quot;xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx" IN ('xx',= 'xx') AND "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx&quo= t; IS NOT NULL)) GROUP BY "xxx_xxxxxx_xxxxxxxx"."xx", &= quot;xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxx= xxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."x= xxxxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx&q= uot;, "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xx= xxxx_xxxxxxxx"."xxxxxxxx_xx_xx", "xxx_xxxxxx_xxxxxxxx&q= uot;."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx= xx_xxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx", &q= uot;xxx_xxxxxx_xxxxxxxx"."xxxx_xx", "xxx_xxxxxx_xxxxxxx= x"."xxxxxxxxx_xxxxx_xx", "xxx_xxxxxx_xxxxxxxx".&qu= ot;xxxxxxxxxxx_xxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xx= xx", "xxx_xxxxxx_xxxxxxxx"."xxx_xxxxx_xxxxx", &quo= t;xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxx", "xxx_xxxxxx= _xxxxxxxx"."xxxxx_xxxxx_xxxxxx", "xxx_xxxxxx_xxxxxxxx&q= uot;."xxxxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xx_x= xx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xxx_xxxxxxx", &qu= ot;xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxx= xxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xx= xxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx_xx", &qu= ot;xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxx= xxxxx_xxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxx= xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxx= xxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx= "."xxxxxxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxx= xxxx"."xxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx&= quot;."xxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxx= xxx"."xxxxxxxx_xxxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxx= xxx_xxxxxxxxxxxxxx"."xxxxxx_xx_xx", "xxxxxxxx_xxxxxxxxx= x_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxx= xxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxxxx", "xxxxxxxx_xxxxx= xxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxx", "xxxxxxxx_xx= xxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx_xxxxxxx", "xxxxxxx= x_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxx_xx_xxxx", "= xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxx_xxxx_xxxxxxxxxx&= quot;, "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx= xxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."= ;xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxx= xxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xx_xxxxxx_xxxxxxx_xxxxxx", &= quot;xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxx= x_xxx_xxxxxxxxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx&qu= ot;."xx_xxxxx_xxx_xxxxxxxx_xxxxx_xx_xxxxxx", "xxxxxxxx_xxxxx= xxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxx", "xxxxxxxx_xxxxxx= xxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxxxx_xxxxxxxxxx", "= xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxx", &qu= ot;xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxx", &= quot;xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx_xxxxxx", &qu= ot;xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxx_xxxxx", = "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx", "xxxx= xxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxx", "xxxxxx= xx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", "xxxx= xxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", "= xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxx= xxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxx= xxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxx= xxxxx_xxxxxxxxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxxxx_x= xxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxx= xxxxxxxxxxx"."xxxxxxxx_xxxxxx_x3_xxxx", "xxxxxxxx_xxxxx= xxxxx_xxxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxx= xxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxx= xxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxx= xxxx"."xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"= ."xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx".&q= uot;xxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."= xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xx= xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxx= x", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx= ", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxx_x= xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx"= , "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", "= xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", "= xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxxxxx= xx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx"= , "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xx", &quo= t;xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxxx_xx", &q= uot;xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xx", "xxxxxxxxxx= _xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxx= xxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxx= xxxxxxxxxx"."xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx&= quot;."xxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"= ;."xxxxxxxx_xx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx".= "xxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xx&= quot;, "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", &qu= ot;xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxx= xxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxxxx_xxxxxx= xxxxxxxxxxx"."xxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx= "."xxxxx_xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx".&= quot;xxx_xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx= xx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_x= xxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xx&qu= ot;, "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", "xxxx= xxxxxx_xxxxxxxxxxxxxxxxx"."xxx", "xxxxxxxxxx_xxxxxxxxxx= xxxxxxx"."xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx".= "xxxxxxx_xxxx1", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."x= xxxxxx_xxxx2", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_= xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxx&qu= ot;, "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", = "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxx_xxxx", &= quot;xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", T11."xx&quo= t;, T11."xxxxxxxx", T11."xxxx_xxxxx", T11."xx_xxxx= xxxxx", T11."xxxxx", T11."xxxxxxxxxxx_xxxxxxx_xxxxx&quo= t;, T11."xxxxxxx_xx", T11."xxxxx_xxxx", T11."xxxx_= xxxx", T11."xxxxxxxx", T11."xxxxxx", T11."xxx= xx_xxxxxx", T11."xxxxxxx_xxxxxxx_xx", T11."xxxxxxx_xxxx= xxxx_xxxxxxx_xx", T11."xxxxxxx_xx_xxxxx", T11."xxx_xxx_= xxx_xxxxxxxx", T11."xx_xxxxx", T11."xxxxx_xxxxx_xxxxx_x= xxxxxx", T11."xx_xxxxxx", T11."xx_xxxxx", T11.&quo= t;xxxxxxx_xx", T11."xxxxxxx_xx", T11."xxxxxxx_xx",= T11."xxxx_xxxxx_xxxxxxx", T11."xxxxxxxxxxx_xxxxxx_xxxxxx&qu= ot;, T12."xx", T12."xxxxxxx_xx", T12."xxxxxxx_xx&q= uot;, T12."xxx", T12."xxxxx_xxxx", T12."xxxx_xxxx&= quot;, T12."xxxxx", T12."xxxxx_xxxxxx", T12."xxx_x= xxxxx", T12."xxxxxxx_xxxx", T12."xxxxxxxxxxx_xxxx"= , T12."xxxx", T12."xxxxx", T12."xxxxxxx_xxxx1"= ;, T12."xxxxxxx", T12."xxxxxxx_xxxxxxx_xxxxxxx_xxx", T1= 2."xxxx_xx", T12."xxxxxxxxxxxx_xx", "xxxxxxxx_xxxx= xxxxxx_xxxxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxx= xxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxx= xxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxx= xxxxxxxxx"."xxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_= xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", = "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxx= x_xx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxx= xxxx_xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."= xxxxxxx_xxxx_xxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx&qu= ot;."xxxxxx_xxxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxx= xxx"."xxxxxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxx= xxxxxx"."xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxx= xxxx"."xxxxxxxx_xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxx= xxxxxxxxxxx"."xxxx_xxxxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxx= xx_xxxxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", "xxxxxxxx_xxxx= xxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", &quo= t;xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxxx&quo= t;, "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxx_xxxxx= x", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxxxxx= _xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx", "x= xx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xx= xxxxxxxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxx= x"."xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxx= x_xxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx= x", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxx_xxxx"= , "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxx_xxx= xxx_xxxxxxxxxxxxxxx"."xxx_xxxxxxxxxxx", "xxx_xxxxxx_xxx= xxxxxxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxx= x"."xx_xxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx".&quo= t;xxxxxxx", "xxxxxxxx_xxxxxxxx"."xx", "xxxxxx= xx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx".&qu= ot;xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxx&qu= ot;, "xxxxxxxx_xxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxx= xxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxx= xxxx_xxxx_xxxxx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxxx= _xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx_xxxxx", = "xxxxxxxx_xxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxx&= quot;."xxxxxxxxx_xxxxx_xx", "xxxxxxxx_xxxxxxxx"."x= x_xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxx_xxx_xxxx"; xx= xx=3D('xxxxxxxxx', datetime.datetime(2015, 4, 20, 0, 0, tzinfo=3D&l= t;DstTzInfo 'America/Los_Angeles' PDT-1 day, 17:00:00 DST>), = 9;ff', 'qa')


=3D=3D=3D



In GNU Emacs 2= 5.1.1 (x86_64-apple-darwin15.6.0, NS appkit-1404.47 Version 10.11.6 (Build = 15G1004))
=C2=A0of 2016-09-17 built on hell.PK5001Z
Windowing system = distributor 'Apple', version 10.3.1404
Configured using:
=C2= =A0'configure --disable-dependency-tracking --disable-silent-rules
= =C2=A0--enable-locallisppath=3D/usr/local/share/emacs/site-lisp
=C2=A0--= infodir=3D/usr/local/Cellar/emacs/25.1/share/info/emacs
=C2=A0--prefix= =3D/usr/local/Cellar/emacs/25.1 --without-x --with-xml2
=C2=A0--without-= dbus --without-gnutls --with-rsvg --with-ns
=C2=A0--disable-ns-self-cont= ained'

Configured features:
JPEG RSVG NOTIFY ACL LIBXML2 ZLIB= TOOLKIT_SCROLL_BARS NS

Important settings:
=C2=A0 value of $LANG= : en_US.UTF-8
=C2=A0 locale-coding-system: utf-8-unix

Major mode:= JavaScript

Minor modes in effect:
=C2=A0 helm-mode: t
=C2=A0 = diff-auto-refine-mode: t
=C2=A0 rainbow-identifiers-mode: t
=C2=A0 ra= inbow-delimiters-mode: t
=C2=A0 async-bytecomp-package-mode: t
=C2=A0= global-auto-revert-mode: t
=C2=A0 desktop-save-mode: t
=C2=A0 savehi= st-mode: t
=C2=A0 show-paren-mode: t
=C2=A0 delete-selection-mode: t<= br>=C2=A0 recentf-mode: t
=C2=A0 global-subword-mode: t
=C2=A0 subwor= d-mode: t
=C2=A0 shell-dirtrack-mode: t
=C2=A0 global-eldoc-mode: t=C2=A0 mouse-wheel-mode: t
=C2=A0 file-name-shadow-mode: t
=C2=A0 g= lobal-font-lock-mode: t
=C2=A0 font-lock-mode: t
=C2=A0 auto-composit= ion-mode: t
=C2=A0 auto-encryption-mode: t
=C2=A0 auto-compression-mo= de: t
=C2=A0 column-number-mode: t
=C2=A0 line-number-mode: t
=C2= =A0 transient-mark-mode: t

Recent messages:
Saving file /Users/ry= an/.emacs.d/recentf...
Wrote /Users/ryan/.emacs.d/recentf
Desktop sav= ed in ~/.emacs.d/
Saving file /Users/ryan/.emacs.d/recentf...
Wrote /= Users/ryan/.emacs.d/recentf
Reverting buffer =E2=80=98recentf=E2=80=99.<= br>next-line: End of buffer [2 times]
Mark set [5 times]
Saving file = /tmp/*scratch*...
Wrote /tmp/*scratch*

Load-path shadows:
/Use= rs/ryan/.emacs.d/elpa/seq-2.19/seq hides /usr/local/Cellar/emacs/25.1/share= /emacs/25.1/lisp/emacs-lisp/seq

Features:
(shadow sort mail-extr = emacsbug sendmail ibuf-ext man vc-annotate
log-view pcmpl-unix vc-bzr vc= -src vc-sccs vc-cvs vc-rcs dabbrev
image-file dirtrack emacs-lock manoj-= dark-theme ibuffer eieio-opt
find-func cus-edit rst fillcode cc-bytecomp= make-mode filecache
tramp-cache conf-mode helm-command vc-svn helm-elis= p helm-eval edebug
sql view json-mode json-reformat json-snatcher misear= ch multi-isearch
ido ess-toolbar ess-mouse mouseme ess-menu ess-swv ess-= noweb
ess-noweb-font-lock-mode ess-bugs-l essd-els ess-sas-d ess-sas-less-sas-a ess-sta-d ess-sta-l make-regexp ess-sp6-d ess-dde ess-sp3-d
= ess-julia julia-mode ess-r-d ess-r-syntax ess-r-completion ess-roxy
essd= dr hideshow ess-help ess-r-package ess-s-l ess-site ess ess-inf
ess-trac= ebug ess-mode ess-noweb-mode ess-utils ess-generics cl
ess-custom ess-co= mpat nxml-uchnm rng-xsd xsd-regexp rng-cmpct rng-nxml
rng-valid rng-loc = rng-uri rng-parse nxml-parse rng-match rng-dt rng-util
rng-pttrn nxml-ns= nxml-mode nxml-outln nxml-rap nxml-util nxml-glyph
nxml-enc xmltok php-= mode derived speedbar sb-image ezimage dframe
flymake cc-langs smerge-mo= de vc-dir ewoc vc vc-dispatcher winner
yaml-mode jka-compr helm-mode vc-= git diff-mode rainbow-identifiers color
rainbow-delimiters helm-misc hel= m-files image-dired dired-x dired-aux
helm-buffers helm-elscreen helm-ta= gs helm-bookmark helm-adaptive
helm-info bookmark pp helm-locate helm-gr= ep helm-regexp helm-external
helm-net browse-url xml helm-utils helm-hel= p helm-types helm-config
helm-easymenu async-bytecomp async helm edmacro= kmacro helm-source
helm-multi-match helm-lib midnight autorevert fileno= tify desktop
frameset savehist paren redo+ delsel warnings grep cus-star= t cus-load
git-link dash-at-point recentf tree-widget wid-edit cap-words= superword
subword jade-mode js imenu cc-mode cc-fonts cc-guess cc-menus= cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs python tramp-sh tr= amp
tramp-compat tramp-loaddefs trampver shell pcomplete sh-script
ex= ecutable sgml-mode go-mode url url-proxy url-privacy url-expand
url-meth= ods url-history url-cookie url-domsuf url-util mailcap find-file
ffap et= ags xref project compile comint ansi-color css-mode smie
markdown-mode t= hingatpt noutline outline log-edit easy-mmode message
dired format-spec = rfc822 mml mml-sec epg mm-decode mm-bodies mm-encode
mail-parse rfc2231 = rfc2047 rfc2045 ietf-drums mailabbrev mail-utils
gmm-utils mailheader ri= ng pcvs-util add-log finder-inf gh-common
gh-profile url-parse auth-sour= ce gnus-util mm-util help-fns mail-prsvr
password-cache url-vars rx s ma= rshal cl-seq eieio-compat ht json map
dash eieio eieio-core cl-macs info= package epg-config seq byte-opt gv
bytecomp byte-compile cl-extra help-= mode easymenu cconv cl-loaddefs
cl-lib subr-x pcase advice server time-d= ate mule-util tooltip eldoc
electric uniquify ediff-hook vc-hooks lisp-f= loat-type mwheel ns-win
ucs-normalize term/common-win tool-bar dnd fonts= et image regexp-opt
fringe tabulated-list newcomment elisp-mode lisp-mod= e prog-mode register
page menu-bar rfn-eshadow timer select scroll-bar m= ouse jit-lock
font-lock syntax facemenu font-core frame cl-generic cham = georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korea= n
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european<= br>ethiopic indian cyrillic chinese charscript case-table epa-hook
jka-c= mpr-hook help simple abbrev minibuffer cl-preloaded nadvice
loaddefs but= ton faces cus-face macroexp files text-properties overlay
sha1 md5 base6= 4 format env code-pages mule custom widget
hashtable-print-readable back= quote kqueue cocoa ns multi-tty
make-network-process emacs)

Memor= y information:
((conses 16 5126063 736652)
=C2=A0(symbols 48 53998 0)=
=C2=A0(miscs 40 3720 24660)
=C2=A0(strings 32 157538 77287)
=C2= =A0(string-bytes 1 5024002)
=C2=A0(vectors 16 90573)
=C2=A0(vector-sl= ots 8 2240527 189813)
=C2=A0(floats 8 946 1835)
=C2=A0(intervals 56 1= 059644 6492)
=C2=A0(buffers 976 638))


--
https://snarfed.org/
--001a1141ddd27d3f5e054833dc12-- From debbugs-submit-bounces@debbugs.gnu.org Sat Feb 11 08:57:07 2017 Received: (at submit) by debbugs.gnu.org; 11 Feb 2017 13:57:07 +0000 Received: from localhost ([127.0.0.1]:35393 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ccYAk-0000wM-4L for submit@debbugs.gnu.org; Sat, 11 Feb 2017 08:57:07 -0500 Received: from eggs.gnu.org ([208.118.235.92]:56931) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ccYAh-0000vq-7O for submit@debbugs.gnu.org; Sat, 11 Feb 2017 08:57:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ccYAW-0007I1-7N for submit@debbugs.gnu.org; Sat, 11 Feb 2017 08:56:57 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: * X-Spam-Status: No, score=1.3 required=5.0 tests=BAYES_50,HTML_MESSAGE, RCVD_IN_SORBS_SPAM autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:35238) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ccYAW-0007Hx-3A for submit@debbugs.gnu.org; Sat, 11 Feb 2017 08:56:52 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47898) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ccYAQ-0006UG-JS for bug-gnu-emacs@gnu.org; Sat, 11 Feb 2017 08:56:51 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ccYAL-0007HI-IP for bug-gnu-emacs@gnu.org; Sat, 11 Feb 2017 08:56:46 -0500 Received: from mout.kundenserver.de ([212.227.126.187]:60518) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ccYAK-0007Go-TL for bug-gnu-emacs@gnu.org; Sat, 11 Feb 2017 08:56:41 -0500 Received: from [192.168.178.35] ([77.12.41.101]) by mrelayeu.kundenserver.de (mreue005 [212.227.15.167]) with ESMTPSA (Nemesis) id 0MFfu5-1cfb6W0Mej-00EcEG for ; Sat, 11 Feb 2017 14:56:38 +0100 Subject: Re: bug#25682: 25.1; font-lock: fontifying too slow in some modes on very long lines To: bug-gnu-emacs@gnu.org References: From: =?UTF-8?Q?Andreas_R=c3=b6hler?= Message-ID: <88c394d0-1614-f25a-9054-a6bc7c4c777d@easy-emacs.de> Date: Sat, 11 Feb 2017 15:07:36 +0100 User-Agent: Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Icedove/45.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/alternative; boundary="------------8088F609970B9AF097731D5C" X-Provags-ID: V03:K0:GCr2XrEc785aDXqYMkzgYNT1l6B5J3bQWS18Ufv8tFmswytz4qp /SoL6HEKIyDa3WOnh7Mqt6C6sWsEQRXwlxlKsFvwFshGgZ0s2i8DGKX0BiiuO3mDRvsveZf GtAs10doaTTjjz7VyPoV09UlnajiKHqNBrVEZ96yV1gQaWNDazS4mgNVHmuU9iqGf5n8May uQ4z8KxatUQPeJE6F9EYg== X-UI-Out-Filterresults: notjunk:1;V01:K0:Ko38yPdmSYw=:Xyz8fLHzaXzOR5Tx9S+UTs vyBaOSI7LnXG25bEHoZC1T+78dq7+/ApMS+4lYeyxvMPLnH9Y7tuiClcQJp77/VLc3i6ezccr Qo1zTBEmuLqTm6POkOm+k8/pGEcw+U7+r6fOVcQneITR5s96SpLX+r8S+EBDuKv7lzvoE7JlW Anx7/7JrmGWK43JAM75+dp5+VRLp8pEENRWJNqXF3hqC5Zo5KiLe8SUTChINrbb2LuDbRKwzt n/1sCosLhVNjHSqt5Y7r6vx5lgid9BTEEXWxzSHqS/y8XnxyhWypEEWDUqo2p2CouegSwa+/b k5nrddN0Qj3TkjqBKIJ2IVCk7LutCyFobPaxGLFwMJsGZ3w1zZ1emqB8GPkpcjAzN9iaW600w b0cVrJlGHJWFjSYk63KK/+tPgBNVeIpy3P4g1YsUwDFSQ3L6aIzzTJ56zabLGp0Ef9iHW1a6P 3kYbLBIbTa8eFuDPDldvZ5yr3Jivh/SSGf7wMWgkCezAw198scUfT2A9LyYT+VcixS2e2an/u e/5+jQe2fBeVsJ2KkKMbcRzZ3yHO6xqjc0Tw29a9cu1u1+4uBLWxte4663GFmtzqfXIHvMBSz JGy57/t4sS0TfXGZMA7QhIBS2r8GDsn3MDGGj/iHp8YXgSEIRoZTR5SomRhnFy7a3La3z8kQg ysTI3ErGhHcn/jsP+Su9F6Ux7RPcSzRddvK4tkKnmHaFGoNAjb4LiWOYOL5hjWiO84pLobuXB SwQvWOvG8iiJSUD8 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.5 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.5 (----) This is a multi-part message in MIME format. --------------8088F609970B9AF097731D5C Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit On 10.02.2017 22:33, Ryan B wrote: > i occasionally have very long lines in some buffers, e.g. 10k-20k > characters. font-lock-mode often hangs for a long time (5-10s) when > fontifying these lines. > > this has evidently been a known issue with font-lock-mode for a long > time, and inspired a number of optimizations and workarounds: > jit-lock/lazy-lock (formerly fast-lock), font-lock-maximum-decoration, > https://www.emacswiki.org/emacs/SoLong , etc. they all work by > deferring, downgrading, or disabling fontification in certain buffers. > > that's nice, but i'd ideally like to keep font-lock-mode on in buffers > where very long lines appear, and still prevent the hangs. i'm > considering adding an opt-in max line length to font-lock-mode, after > which it would stop fontifying or evaluating regexps. i'd love to hear > feedback on whether this makes sense! > > here are steps that reproduce this, with gnu emacs 25.1.1 on mac os x: > > 1. put the single long line under the === below (18572 chars long) > into a file > 2. run emacs -Q > 3. type C-x C-f RET to open the file > 4. type M-x compilation-mode RET > > this consistently hangs emacs for 9-10s for me on modern hardware, a > 2014 retina macbook pro. > > === > > [2017-02-10T07:35:45Z django.db.backends] DEBUG: (0.057) SELECT > "xxx_xxxxxx_xxxxxxxx"."xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxxxx_xxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxx_xxxx", > "xxx_xxxxxx_xxxxxxxx"."xxx_xxxxx_xxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxx_xx_xxx", > "xxx_xxxxxx_xxxxxxxx"."xxxx_xxx_xxxxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xx", > MAX("xxx_xxxxxx_xxxxxxxxxxxxxxxxxx"."xx") AS "xxxxxxxx_xx", > COUNT(DISTINCT "xxx_xxxxxx_xxxxxxxx_xxxxxxx"."xxxxxx_xx") AS > "xxx_xxxxxxx", MAX("xxxxxxx_xxxxxx"."xxxx_xx") AS "xxxxxx_xxxx_xx", > STRING_AGG("xxxxxxx_xxxxxx"."xxx_xxxxxxx", ' ') AS "xxx_xxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxxx_xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx_xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxx_xx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxx_xxxx_xxxxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xx_xxxxxx_xxxxxxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xxx_xxxxxxxxxx_xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxx_xxx_xxxxxxxx_xxxxx_xx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxxxx_xxxxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxx_xxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxx_x3_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxx_xx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxx_xxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx_xxxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx2", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxx_xxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", T11."xx", T11."xxxxxxxx", > T11."xxxx_xxxxx", T11."xx_xxxxxxxxx", T11."xxxxx", > T11."xxxxxxxxxxx_xxxxxxx_xxxxx", T11."xxxxxxx_xx", T11."xxxxx_xxxx", > T11."xxxx_xxxx", T11."xxxxxxxx", T11."xxxxxx", T11."xxxxx_xxxxxx", > T11."xxxxxxx_xxxxxxx_xx", T11."xxxxxxx_xxxxxxxx_xxxxxxx_xx", > T11."xxxxxxx_xx_xxxxx", T11."xxx_xxx_xxx_xxxxxxxx", T11."xx_xxxxx", > T11."xxxxx_xxxxx_xxxxx_xxxxxxx", T11."xx_xxxxxx", T11."xx_xxxxx", > T11."xxxxxxx_xx", T11."xxxxxxx_xx", T11."xxxxxxx_xx", > T11."xxxx_xxxxx_xxxxxxx", T11."xxxxxxxxxxx_xxxxxx_xxxxxx", T12."xx", > T12."xxxxxxx_xx", T12."xxxxxxx_xx", T12."xxx", T12."xxxxx_xxxx", > T12."xxxx_xxxx", T12."xxxxx", T12."xxxxx_xxxxxx", T12."xxx_xxxxxx", > T12."xxxxxxx_xxxx", T12."xxxxxxxxxxx_xxxx", T12."xxxx", T12."xxxxx", > T12."xxxxxxx_xxxx1", T12."xxxxxxx", T12."xxxxxxx_xxxxxxx_xxxxxxx_xxx", > T12."xxxx_xx", T12."xxxxxxxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxx_xx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx_xxxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxxxxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxx_xxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxxxxxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx_xxxxxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxxxxxxx_xxxxxxxx"."xx", > "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxx"."xxxx_xx", > "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxx_xxxxx", > "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxxx_xx", > "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx_xxxxx", > "xxxxxxxx_xxxxxxxx"."xxxx_xx", > "xxxxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", > "xxxxxxxx_xxxxxxxx"."xx_xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxx_xxx_xxxx" > FROM "xxx_xxxxxx_xxxxxxxx" LEFT OUTER JOIN > "xxx_xxxxxx_xxxxxxxxxxxxxxx" ON ( > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxxxx_xxxx_xx" = > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN > "xxx_xxxxxx_xxxxxxxxxxxxxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xx" = > "xxx_xxxxxx_xxxxxxxxxxxxxxxxxx"."xxx_xxxxx_xx" ) LEFT OUTER JOIN > "xxx_xxxxxx_xxxxxxxx_xxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xx" = > "xxx_xxxxxx_xxxxxxxx_xxxxxxx"."xxxxxxxx_xx" ) LEFT OUTER JOIN > "xxxxxxx_xxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx_xxxxxxx"."xxxxxx_xx" = > "xxxxxxx_xxxxxx"."xx" ) LEFT OUTER JOIN > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx" ON ( > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx" = > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx" ON ( > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxxx_xxxxxxx_xx" = > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx" ON ( > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxxx_xx" = > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx" ON ( > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxxx_xx" = > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN > "xxxxx_xxxxxxxxx" T11 ON ( > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx_xx" = T11."xx" ) LEFT > OUTER JOIN "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx" T12 ON ( T11."xx" = > T12."xxxx_xx" ) LEFT OUTER JOIN "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx" > ON ( T12."xx" = > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxx_xx" ) LEFT > OUTER JOIN "xxxxxxxx_xxxxxxxx" ON ( > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx" = "xxxxxxxx_xxxxxxxx"."xx" ) WHERE > (NOT ("xxx_xxxxxx_xxxxxxxx"."xxxxx" = 'xxxxxxxxx') AND NOT > ("xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx" < > '2015-04-20T00:00:00-07:00'::xxxxxxxxxxx) AND NOT > ("xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx" IN ('xx', 'xx') AND > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx" IS NOT NULL)) GROUP BY > "xxx_xxxxxx_xxxxxxxx"."xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxxxx_xxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxx_xxxx", > "xxx_xxxxxx_xxxxxxxx"."xxx_xxxxx_xxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxx_xx_xxx", > "xxx_xxxxxx_xxxxxxxx"."xxxx_xxx_xxxxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxxx_xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx_xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxx_xx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxx_xxxx_xxxxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xx_xxxxxx_xxxxxxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xxx_xxxxxxxxxx_xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxx_xxx_xxxxxxxx_xxxxx_xx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxxxx_xxxxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxx_xxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxx_x3_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxx_xx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxx_xxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx_xxxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx2", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxx_xxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", T11."xx", T11."xxxxxxxx", > T11."xxxx_xxxxx", T11."xx_xxxxxxxxx", T11."xxxxx", > T11."xxxxxxxxxxx_xxxxxxx_xxxxx", T11."xxxxxxx_xx", T11."xxxxx_xxxx", > T11."xxxx_xxxx", T11."xxxxxxxx", T11."xxxxxx", T11."xxxxx_xxxxxx", > T11."xxxxxxx_xxxxxxx_xx", T11."xxxxxxx_xxxxxxxx_xxxxxxx_xx", > T11."xxxxxxx_xx_xxxxx", T11."xxx_xxx_xxx_xxxxxxxx", T11."xx_xxxxx", > T11."xxxxx_xxxxx_xxxxx_xxxxxxx", T11."xx_xxxxxx", T11."xx_xxxxx", > T11."xxxxxxx_xx", T11."xxxxxxx_xx", T11."xxxxxxx_xx", > T11."xxxx_xxxxx_xxxxxxx", T11."xxxxxxxxxxx_xxxxxx_xxxxxx", T12."xx", > T12."xxxxxxx_xx", T12."xxxxxxx_xx", T12."xxx", T12."xxxxx_xxxx", > T12."xxxx_xxxx", T12."xxxxx", T12."xxxxx_xxxxxx", T12."xxx_xxxxxx", > T12."xxxxxxx_xxxx", T12."xxxxxxxxxxx_xxxx", T12."xxxx", T12."xxxxx", > T12."xxxxxxx_xxxx1", T12."xxxxxxx", T12."xxxxxxx_xxxxxxx_xxxxxxx_xxx", > T12."xxxx_xx", T12."xxxxxxxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxx_xx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx_xxxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxxxxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxx_xxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxxxxxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx_xxxxxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxxxxxxx_xxxxxxxx"."xx", > "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxx"."xxxx_xx", > "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxx_xxxxx", > "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxxx_xx", > "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx_xxxxx", > "xxxxxxxx_xxxxxxxx"."xxxx_xx", > "xxxxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", > "xxxxxxxx_xxxxxxxx"."xx_xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxx_xxx_xxxx"; > xxxx=('xxxxxxxxx', datetime.datetime(2015, 4, 20, 0, 0, > tzinfo=), > 'ff', 'qa') > > > === > > > > In GNU Emacs 25.1.1 (x86_64-apple-darwin15.6.0, NS appkit-1404.47 > Version 10.11.6 (Build 15G1004)) > of 2016-09-17 built on hell.PK5001Z > Windowing system distributor 'Apple', version 10.3.1404 > Configured using: > 'configure --disable-dependency-tracking --disable-silent-rules > --enable-locallisppath=/usr/local/share/emacs/site-lisp > --infodir=/usr/local/Cellar/emacs/25.1/share/info/emacs > --prefix=/usr/local/Cellar/emacs/25.1 --without-x --with-xml2 > --without-dbus --without-gnutls --with-rsvg --with-ns > --disable-ns-self-contained' > > Configured features: > JPEG RSVG NOTIFY ACL LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS > > Important settings: > value of $LANG: en_US.UTF-8 > locale-coding-system: utf-8-unix > > Major mode: JavaScript > > Minor modes in effect: > helm-mode: t > diff-auto-refine-mode: t > rainbow-identifiers-mode: t > rainbow-delimiters-mode: t > async-bytecomp-package-mode: t > global-auto-revert-mode: t > desktop-save-mode: t > savehist-mode: t > show-paren-mode: t > delete-selection-mode: t > recentf-mode: t > global-subword-mode: t > subword-mode: t > shell-dirtrack-mode: t > global-eldoc-mode: t > mouse-wheel-mode: t > file-name-shadow-mode: t > global-font-lock-mode: t > font-lock-mode: t > auto-composition-mode: t > auto-encryption-mode: t > auto-compression-mode: t > column-number-mode: t > line-number-mode: t > transient-mark-mode: t > > Recent messages: > Saving file /Users/ryan/.emacs.d/recentf... > Wrote /Users/ryan/.emacs.d/recentf > Desktop saved in ~/.emacs.d/ > Saving file /Users/ryan/.emacs.d/recentf... > Wrote /Users/ryan/.emacs.d/recentf > Reverting buffer ‘recentf’. > next-line: End of buffer [2 times] > Mark set [5 times] > Saving file /tmp/*scratch*... > Wrote /tmp/*scratch* > > Load-path shadows: > /Users/ryan/.emacs.d/elpa/seq-2.19/seq hides > /usr/local/Cellar/emacs/25.1/share/emacs/25.1/lisp/emacs-lisp/seq > > Features: > (shadow sort mail-extr emacsbug sendmail ibuf-ext man vc-annotate > log-view pcmpl-unix vc-bzr vc-src vc-sccs vc-cvs vc-rcs dabbrev > image-file dirtrack emacs-lock manoj-dark-theme ibuffer eieio-opt > find-func cus-edit rst fillcode cc-bytecomp make-mode filecache > tramp-cache conf-mode helm-command vc-svn helm-elisp helm-eval edebug > sql view json-mode json-reformat json-snatcher misearch multi-isearch > ido ess-toolbar ess-mouse mouseme ess-menu ess-swv ess-noweb > ess-noweb-font-lock-mode ess-bugs-l essd-els ess-sas-d ess-sas-l > ess-sas-a ess-sta-d ess-sta-l make-regexp ess-sp6-d ess-dde ess-sp3-d > ess-julia julia-mode ess-r-d ess-r-syntax ess-r-completion ess-roxy > essddr hideshow ess-help ess-r-package ess-s-l ess-site ess ess-inf > ess-tracebug ess-mode ess-noweb-mode ess-utils ess-generics cl > ess-custom ess-compat nxml-uchnm rng-xsd xsd-regexp rng-cmpct rng-nxml > rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util > rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap nxml-util nxml-glyph > nxml-enc xmltok php-mode derived speedbar sb-image ezimage dframe > flymake cc-langs smerge-mode vc-dir ewoc vc vc-dispatcher winner > yaml-mode jka-compr helm-mode vc-git diff-mode rainbow-identifiers color > rainbow-delimiters helm-misc helm-files image-dired dired-x dired-aux > helm-buffers helm-elscreen helm-tags helm-bookmark helm-adaptive > helm-info bookmark pp helm-locate helm-grep helm-regexp helm-external > helm-net browse-url xml helm-utils helm-help helm-types helm-config > helm-easymenu async-bytecomp async helm edmacro kmacro helm-source > helm-multi-match helm-lib midnight autorevert filenotify desktop > frameset savehist paren redo+ delsel warnings grep cus-start cus-load > git-link dash-at-point recentf tree-widget wid-edit cap-words superword > subword jade-mode js imenu cc-mode cc-fonts cc-guess cc-menus cc-cmds > cc-styles cc-align cc-engine cc-vars cc-defs python tramp-sh tramp > tramp-compat tramp-loaddefs trampver shell pcomplete sh-script > executable sgml-mode go-mode url url-proxy url-privacy url-expand > url-methods url-history url-cookie url-domsuf url-util mailcap find-file > ffap etags xref project compile comint ansi-color css-mode smie > markdown-mode thingatpt noutline outline log-edit easy-mmode message > dired format-spec rfc822 mml mml-sec epg mm-decode mm-bodies mm-encode > mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev mail-utils > gmm-utils mailheader ring pcvs-util add-log finder-inf gh-common > gh-profile url-parse auth-source gnus-util mm-util help-fns mail-prsvr > password-cache url-vars rx s marshal cl-seq eieio-compat ht json map > dash eieio eieio-core cl-macs info package epg-config seq byte-opt gv > bytecomp byte-compile cl-extra help-mode easymenu cconv cl-loaddefs > cl-lib subr-x pcase advice server time-date mule-util tooltip eldoc > electric uniquify ediff-hook vc-hooks lisp-float-type mwheel ns-win > ucs-normalize term/common-win tool-bar dnd fontset image regexp-opt > fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register > page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock > font-lock syntax facemenu font-core frame cl-generic cham georgian > utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean > japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european > ethiopic indian cyrillic chinese charscript case-table epa-hook > jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice > loaddefs button faces cus-face macroexp files text-properties overlay > sha1 md5 base64 format env code-pages mule custom widget > hashtable-print-readable backquote kqueue cocoa ns multi-tty > make-network-process emacs) > > Memory information: > ((conses 16 5126063 736652) > (symbols 48 53998 0) > (miscs 40 3720 24660) > (strings 32 157538 77287) > (string-bytes 1 5024002) > (vectors 16 90573) > (vector-slots 8 2240527 189813) > (floats 8 946 1835) > (intervals 56 1059644 6492) > (buffers 976 638)) > > > -- > https://snarfed.org/ At my machine, which is not fastest, it took 55 sec until cursor returned. GNU Emacs 25.1.91.1 (i686-pc-linux-gnu, GTK+ Version 3.14.5) of 2017-01-02 Linux sprache 3.16.0-4-686-pae #1 SMP Debian 3.16.39-1 (2016-12-30) i686 GNU/Linux --------------8088F609970B9AF097731D5C Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 8bit



On 10.02.2017 22:33, Ryan B wrote:
i occasionally have very long lines in some buffers, e.g. 10k-20k characters. font-lock-mode often hangs for a long time (5-10s) when fontifying these lines.

this has evidently been a known issue with font-lock-mode for a long time, and inspired a number of optimizations and workarounds: jit-lock/lazy-lock (formerly fast-lock), font-lock-maximum-decoration, https://www.emacswiki.org/emacs/SoLong , etc. they all work by deferring, downgrading, or disabling fontification in certain buffers.

that's nice, but i'd ideally like to keep font-lock-mode on in buffers where very long lines appear, and still prevent the hangs. i'm considering adding an opt-in max line length to font-lock-mode, after which it would stop fontifying or evaluating regexps. i'd love to hear feedback on whether this makes sense!

here are steps that reproduce this, with gnu emacs 25.1.1 on mac os x:

1. put the single long line under the === below (18572 chars long) into a file
2. run emacs -Q
3. type C-x C-f <filename> RET to open the file
4. type M-x compilation-mode RET

this consistently hangs emacs for 9-10s for me on modern hardware, a 2014 retina macbook pro.

===

[2017-02-10T07:35:45Z django.db.backends] DEBUG: (0.057) SELECT "xxx_xxxxxx_xxxxxxxx"."xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxxxx_xxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xxxx", "xxx_xxxxxx_xxxxxxxx"."xxx_xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xx_xxx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xxx_xxxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xx", MAX("xxx_xxxxxx_xxxxxxxxxxxxxxxxxx"."xx") AS "xxxxxxxx_xx", COUNT(DISTINCT "xxx_xxxxxx_xxxxxxxx_xxxxxxx"."xxxxxx_xx") AS "xxx_xxxxxxx", MAX("xxxxxxx_xxxxxx"."xxxx_xx") AS "xxxxxx_xxxx_xx", STRING_AGG("xxxxxxx_xxxxxx"."xxx_xxxxxxx", ' ') AS "xxx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxx_xx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxx_xxxx_xxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xx_xxxxxx_xxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xxx_xxxxxxxxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxx_xxx_xxxxxxxx_xxxxx_xx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxxxx_xxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxx_xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxx_x3_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxx_xx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx_xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx2", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", T11."xx", T11."xxxxxxxx", T11."xxxx_xxxxx", T11."xx_xxxxxxxxx", T11."xxxxx", T11."xxxxxxxxxxx_xxxxxxx_xxxxx", T11."xxxxxxx_xx", T11."xxxxx_xxxx", T11."xxxx_xxxx", T11."xxxxxxxx", T11."xxxxxx", T11."xxxxx_xxxxxx", T11."xxxxxxx_xxxxxxx_xx", T11."xxxxxxx_xxxxxxxx_xxxxxxx_xx", T11."xxxxxxx_xx_xxxxx", T11."xxx_xxx_xxx_xxxxxxxx", T11."xx_xxxxx", T11."xxxxx_xxxxx_xxxxx_xxxxxxx", T11."xx_xxxxxx", T11."xx_xxxxx", T11."xxxxxxx_xx", T11."xxxxxxx_xx", T11."xxxxxxx_xx", T11."xxxx_xxxxx_xxxxxxx", T11."xxxxxxxxxxx_xxxxxx_xxxxxx", T12."xx", T12."xxxxxxx_xx", T12."xxxxxxx_xx", T12."xxx", T12."xxxxx_xxxx", T12."xxxx_xxxx", T12."xxxxx", T12."xxxxx_xxxxxx", T12."xxx_xxxxxx", T12."xxxxxxx_xxxx", T12."xxxxxxxxxxx_xxxx", T12."xxxx", T12."xxxxx", T12."xxxxxxx_xxxx1", T12."xxxxxxx", T12."xxxxxxx_xxxxxxx_xxxxxxx_xxx", T12."xxxx_xx", T12."xxxxxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxx_xx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx_xxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx_xxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxxxxxxx_xxxxxxxx"."xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxx_xxxxx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx_xxxxx", "xxxxxxxx_xxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", "xxxxxxxx_xxxxxxxx"."xx_xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxx_xxx_xxxx" FROM "xxx_xxxxxx_xxxxxxxx" LEFT OUTER JOIN "xxx_xxxxxx_xxxxxxxxxxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxxxx_xxxx_xx" = "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN "xxx_xxxxxx_xxxxxxxxxxxxxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xx" = "xxx_xxxxxx_xxxxxxxxxxxxxxxxxx"."xxx_xxxxx_xx" ) LEFT OUTER JOIN "xxx_xxxxxx_xxxxxxxx_xxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xx" = "xxx_xxxxxx_xxxxxxxx_xxxxxxx"."xxxxxxxx_xx" ) LEFT OUTER JOIN "xxxxxxx_xxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx_xxxxxxx"."xxxxxx_xx" = "xxxxxxx_xxxxxx"."xx" ) LEFT OUTER JOIN "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx" = "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx" ON ( "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxxx_xxxxxxx_xx" = "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx" ON ( "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxxx_xx" = "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN "xxxxxxxxxx_xxxxxxxxxxxxxxxxx" ON ( "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxxx_xx" = "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN "xxxxx_xxxxxxxxx" T11 ON ( "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx_xx" = T11."xx" ) LEFT OUTER JOIN "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx" T12 ON ( T11."xx" = T12."xxxx_xx" ) LEFT OUTER JOIN "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx" ON ( T12."xx" = "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxx_xx" ) LEFT OUTER JOIN "xxxxxxxx_xxxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx" = "xxxxxxxx_xxxxxxxx"."xx" ) WHERE (NOT ("xxx_xxxxxx_xxxxxxxx"."xxxxx" = 'xxxxxxxxx') AND NOT ("xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx" < '2015-04-20T00:00:00-07:00'::xxxxxxxxxxx) AND NOT ("xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx" IN ('xx', 'xx') AND "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx" IS NOT NULL)) GROUP BY "xxx_xxxxxx_xxxxxxxx"."xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxxxx_xxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xxxx", "xxx_xxxxxx_xxxxxxxx"."xxx_xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xx_xxx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xxx_xxxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxx_xx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxx_xxxx_xxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xx_xxxxxx_xxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xxx_xxxxxxxxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxx_xxx_xxxxxxxx_xxxxx_xx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxxxx_xxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxx_xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxx_x3_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxx_xx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx_xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx2", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", T11."xx", T11."xxxxxxxx", T11."xxxx_xxxxx", T11."xx_xxxxxxxxx", T11."xxxxx", T11."xxxxxxxxxxx_xxxxxxx_xxxxx", T11."xxxxxxx_xx", T11."xxxxx_xxxx", T11."xxxx_xxxx", T11."xxxxxxxx", T11."xxxxxx", T11."xxxxx_xxxxxx", T11."xxxxxxx_xxxxxxx_xx", T11."xxxxxxx_xxxxxxxx_xxxxxxx_xx", T11."xxxxxxx_xx_xxxxx", T11."xxx_xxx_xxx_xxxxxxxx", T11."xx_xxxxx", T11."xxxxx_xxxxx_xxxxx_xxxxxxx", T11."xx_xxxxxx", T11."xx_xxxxx", T11."xxxxxxx_xx", T11."xxxxxxx_xx", T11."xxxxxxx_xx", T11."xxxx_xxxxx_xxxxxxx", T11."xxxxxxxxxxx_xxxxxx_xxxxxx", T12."xx", T12."xxxxxxx_xx", T12."xxxxxxx_xx", T12."xxx", T12."xxxxx_xxxx", T12."xxxx_xxxx", T12."xxxxx", T12."xxxxx_xxxxxx", T12."xxx_xxxxxx", T12."xxxxxxx_xxxx", T12."xxxxxxxxxxx_xxxx", T12."xxxx", T12."xxxxx", T12."xxxxxxx_xxxx1", T12."xxxxxxx", T12."xxxxxxx_xxxxxxx_xxxxxxx_xxx", T12."xxxx_xx", T12."xxxxxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxx_xx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx_xxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx_xxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxxxxxxx_xxxxxxxx"."xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxx_xxxxx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx_xxxxx", "xxxxxxxx_xxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", "xxxxxxxx_xxxxxxxx"."xx_xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxx_xxx_xxxx"; xxxx=('xxxxxxxxx', datetime.datetime(2015, 4, 20, 0, 0, tzinfo=<DstTzInfo 'America/Los_Angeles' PDT-1 day, 17:00:00 DST>), 'ff', 'qa')


===



In GNU Emacs 25.1.1 (x86_64-apple-darwin15.6.0, NS appkit-1404.47 Version 10.11.6 (Build 15G1004))
 of 2016-09-17 built on hell.PK5001Z
Windowing system distributor 'Apple', version 10.3.1404
Configured using:
 'configure --disable-dependency-tracking --disable-silent-rules
 --enable-locallisppath=/usr/local/share/emacs/site-lisp
 --infodir=/usr/local/Cellar/emacs/25.1/share/info/emacs
 --prefix=/usr/local/Cellar/emacs/25.1 --without-x --with-xml2
 --without-dbus --without-gnutls --with-rsvg --with-ns
 --disable-ns-self-contained'

Configured features:
JPEG RSVG NOTIFY ACL LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: JavaScript

Minor modes in effect:
  helm-mode: t
  diff-auto-refine-mode: t
  rainbow-identifiers-mode: t
  rainbow-delimiters-mode: t
  async-bytecomp-package-mode: t
  global-auto-revert-mode: t
  desktop-save-mode: t
  savehist-mode: t
  show-paren-mode: t
  delete-selection-mode: t
  recentf-mode: t
  global-subword-mode: t
  subword-mode: t
  shell-dirtrack-mode: t
  global-eldoc-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent messages:
Saving file /Users/ryan/.emacs.d/recentf...
Wrote /Users/ryan/.emacs.d/recentf
Desktop saved in ~/.emacs.d/
Saving file /Users/ryan/.emacs.d/recentf...
Wrote /Users/ryan/.emacs.d/recentf
Reverting buffer ‘recentf’.
next-line: End of buffer [2 times]
Mark set [5 times]
Saving file /tmp/*scratch*...
Wrote /tmp/*scratch*

Load-path shadows:
/Users/ryan/.emacs.d/elpa/seq-2.19/seq hides /usr/local/Cellar/emacs/25.1/share/emacs/25.1/lisp/emacs-lisp/seq

Features:
(shadow sort mail-extr emacsbug sendmail ibuf-ext man vc-annotate
log-view pcmpl-unix vc-bzr vc-src vc-sccs vc-cvs vc-rcs dabbrev
image-file dirtrack emacs-lock manoj-dark-theme ibuffer eieio-opt
find-func cus-edit rst fillcode cc-bytecomp make-mode filecache
tramp-cache conf-mode helm-command vc-svn helm-elisp helm-eval edebug
sql view json-mode json-reformat json-snatcher misearch multi-isearch
ido ess-toolbar ess-mouse mouseme ess-menu ess-swv ess-noweb
ess-noweb-font-lock-mode ess-bugs-l essd-els ess-sas-d ess-sas-l
ess-sas-a ess-sta-d ess-sta-l make-regexp ess-sp6-d ess-dde ess-sp3-d
ess-julia julia-mode ess-r-d ess-r-syntax ess-r-completion ess-roxy
essddr hideshow ess-help ess-r-package ess-s-l ess-site ess ess-inf
ess-tracebug ess-mode ess-noweb-mode ess-utils ess-generics cl
ess-custom ess-compat nxml-uchnm rng-xsd xsd-regexp rng-cmpct rng-nxml
rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util
rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap nxml-util nxml-glyph
nxml-enc xmltok php-mode derived speedbar sb-image ezimage dframe
flymake cc-langs smerge-mode vc-dir ewoc vc vc-dispatcher winner
yaml-mode jka-compr helm-mode vc-git diff-mode rainbow-identifiers color
rainbow-delimiters helm-misc helm-files image-dired dired-x dired-aux
helm-buffers helm-elscreen helm-tags helm-bookmark helm-adaptive
helm-info bookmark pp helm-locate helm-grep helm-regexp helm-external
helm-net browse-url xml helm-utils helm-help helm-types helm-config
helm-easymenu async-bytecomp async helm edmacro kmacro helm-source
helm-multi-match helm-lib midnight autorevert filenotify desktop
frameset savehist paren redo+ delsel warnings grep cus-start cus-load
git-link dash-at-point recentf tree-widget wid-edit cap-words superword
subword jade-mode js imenu cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs python tramp-sh tramp
tramp-compat tramp-loaddefs trampver shell pcomplete sh-script
executable sgml-mode go-mode url url-proxy url-privacy url-expand
url-methods url-history url-cookie url-domsuf url-util mailcap find-file
ffap etags xref project compile comint ansi-color css-mode smie
markdown-mode thingatpt noutline outline log-edit easy-mmode message
dired format-spec rfc822 mml mml-sec epg mm-decode mm-bodies mm-encode
mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev mail-utils
gmm-utils mailheader ring pcvs-util add-log finder-inf gh-common
gh-profile url-parse auth-source gnus-util mm-util help-fns mail-prsvr
password-cache url-vars rx s marshal cl-seq eieio-compat ht json map
dash eieio eieio-core cl-macs info package epg-config seq byte-opt gv
bytecomp byte-compile cl-extra help-mode easymenu cconv cl-loaddefs
cl-lib subr-x pcase advice server time-date mule-util tooltip eldoc
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel ns-win
ucs-normalize term/common-win tool-bar dnd fontset image regexp-opt
fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register
page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock
font-lock syntax facemenu font-core frame cl-generic cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese charscript case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice
loaddefs button faces cus-face macroexp files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote kqueue cocoa ns multi-tty
make-network-process emacs)

Memory information:
((conses 16 5126063 736652)
 (symbols 48 53998 0)
 (miscs 40 3720 24660)
 (strings 32 157538 77287)
 (string-bytes 1 5024002)
 (vectors 16 90573)
 (vector-slots 8 2240527 189813)
 (floats 8 946 1835)
 (intervals 56 1059644 6492)
 (buffers 976 638))


--

At my machine, which is not fastest, it took 55 sec until cursor returned.
GNU Emacs 25.1.91.1 (i686-pc-linux-gnu, GTK+ Version 3.14.5) of 2017-01-02

Linux sprache 3.16.0-4-686-pae #1 SMP Debian 3.16.39-1 (2016-12-30) i686 GNU/Linux
--------------8088F609970B9AF097731D5C-- From debbugs-submit-bounces@debbugs.gnu.org Thu Oct 31 13:08:02 2019 Received: (at 25682) by debbugs.gnu.org; 31 Oct 2019 17:08:02 +0000 Received: from localhost ([127.0.0.1]:54192 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iQDvV-0003OC-9F for submit@debbugs.gnu.org; Thu, 31 Oct 2019 13:08:02 -0400 Received: from quimby.gnus.org ([80.91.231.51]:48546) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iQDvS-0003Ny-IT for 25682@debbugs.gnu.org; Thu, 31 Oct 2019 13:07:59 -0400 Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=marnie) by quimby.gnus.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iQDvO-0002oY-73; Thu, 31 Oct 2019 18:07:56 +0100 From: Lars Ingebrigtsen To: Ryan B Subject: Re: 25.1; font-lock: fontifying too slow in some modes on very long lines References: Date: Thu, 31 Oct 2019 18:07:53 +0100 In-Reply-To: (Ryan B.'s message of "Fri, 10 Feb 2017 13:33:52 -0800") Message-ID: <87wock6dxy.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Ryan B writes: > here are steps that reproduce this, with gnu emacs 25.1.1 on mac os x: > > 1. put the single long line under the === below (18572 chars long) into a file > 2. run emacs -Q > 3. type C-x C-f List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Ryan B writes: > here are steps that reproduce this, with gnu emacs 25.1.1 on mac os x: > > 1. put the single long line under the === below (18572 chars long) into a file > 2. run emacs -Q > 3. type C-x C-f RET to open the file > 4. type M-x compilation-mode RET > > this consistently hangs emacs for 9-10s for me on modern hardware, a 2014 > retina macbook pro. The example was corrupted in transit (line-folded), so I've included a fixed-up version as an attachment here. Running M-x compilation-mode takes about five seconds for me, but this laptop is pretty fast. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no --=-=-= Content-Type: text/plain Content-Disposition: attachment; filename=long.txt Content-Transfer-Encoding: quoted-printable [2017-02-10T07:35:45Z django.db.backends] DEBUG: (0.057) SELECT "xxx_xxxxxx= _xxxxxxxx"."xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx".= "xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"= ."xxxxxxxx_xx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxx= x"."xxxxxxxx_xx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxx= xxx"."xxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx", "xxx_xxxxxx_xx= xxxxxx"."xxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", "xxx_xxxxxx_= xxxxxxxx"."xxxxxxxxxxx_xxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xxxx", "xxx_xx= xxxx_xxxxxxxx"."xxx_xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxx"= , "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxx= xx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xx_xxx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xxx_= xxxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxx= xx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx_= xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xx", MAX ("xxx_xxxxxx_xxxxxxxxxxxxxxx= xxx"."xx") AS "xxxxxxxx_xx", COUNT(DISTINCT "xxx_xxxxxx_xxxxxxxx_xxxxxxx"."= xxxxxx_xx") AS "xxx_xxxxxxx", MAX ("xxxxxxx_xxxxxx"."xxxx_xx") AS "xxxxxx_x= xxx_xx", STRING_AGG ("xxxxxxx_xxxxxx"."xxx_xxxxxxx", ' ') AS "xxx_xxxxxxxx"= , "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxx= xxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", "xx= xxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxx= x_xxxxxxxxxxxxxx"."xxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx= x_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxxx_xxx= xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx_xx", "xxxxxxxx_xx= xxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxx= xxxxxxx"."xxxx_xxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxx= x_xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx_xxxxxxx", "xxxxx= xxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxx_xx_xxxx", "xxxxxxxx_xxxxxxxxx= x_xxxxxxxxxxxxxx"."xxxxxxx_xxx_xxxx_xxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxx= xxxxxxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxx= xxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxx= x"."xx_xxxxxxxx_xxxxxxx_xxxx_xx_xxxxxx_xxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxx= x_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xxx_xxxxxxxxxx_xxxxxxx", "xxxxx= xxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxx_xxx_xxxxxxxx_xxxxx_xx_xxxxxx", "xx= xxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxx= xxxxxxxxxxx"."xxx_xxxxx_xxxxxxxx_xxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxx= xxxxxx"."xxxxxxxx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxx= x_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxx_x= xxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxx_xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxx= xxxxxxx"."xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxx", "xxxx= xxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xx= xxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."x= xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxx= xxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."= xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xx= xxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxx_x3_xxxx", "xxxxxxxx_xxxxxxxxxx_xx= xxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "x= xxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxx= xxxxxxxxxxx"."xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxx", "xx= xxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxx= xxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxxxx", "= xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxx= xxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxx= xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx", "xxxxxxxx_xxxxxx= xxxx_xxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx= xx_xxxx1", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxxxxxxx_xxxxx= xxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", "xxxxxxxx_xxxxxxxxxx_= xxxxxxxxxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxx= xxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xx", "xxxxxxxxxx_xxxxxxxxxxxx= xxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "= xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxx= x"."xxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxx_xx_xx", "xx= xxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxx= x"."xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxx= xxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxx= xxxxx_xxxxxxxxxxxxxxxxx"."xxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx= _xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx_xxxxxx", "xxxxxxxxxx_xxxxxxxx= xxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx= ", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxx= xxxxxx"."xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx", "xxxxxxxxxx_xxxxxxxx= xxxxxxxxx"."xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", "xxxxx= xxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx2", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."x= xxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxx", "xxxxxxxxxx_x= xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxx= x_xxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", T11."xx", T11."xxxx= xxxx", T11."xxxx_xxxxx", T11."xx_xxxxxxxxx", T11."xxxxx", T11."xxxxxxxxxxx_= xxxxxxx_xxxxx", T11."xxxxxxx_xx", T11."xxxxx_xxxx", T11."xxxx_xxxx", T11."x= xxxxxxx", T11."xxxxxx", T11."xxxxx_xxxxxx", T11."xxxxxxx_xxxxxxx_xx", T11."= xxxxxxx_xxxxxxxx_xxxxxxx_xx", T11."xxxxxxx_xx_xxxxx", T11."xxx_xxx_xxx_xxxx= xxxx", T11."xx_xxxxx", T11."xxxxx_xxxxx_xxxxx_xxxxxxx", T11."xx_xxxxxx", T1= 1."xx_xxxxx", T11."xxxxxxx_xx", T11."xxxxxxx_xx", T11."xxxxxxx_xx", T11."xx= xx_xxxxx_xxxxxxx", T11."xxxxxxxxxxx_xxxxxx_xxxxxx", T12."xx", T12."xxxxxxx_= xx", T12."xxxxxxx_xx", T12."xxx", T12."xxxxx_xxxx", T12."xxxx_xxxx", T12."x= xxxx", T12."xxxxx_xxxxxx", T12."xxx_xxxxxx", T12."xxxxxxx_xxxx", T12."xxxxx= xxxxxx_xxxx", T12."xxxx", T12."xxxxx", T12."xxxxxxx_xxxx1", T12."xxxxxxx", = T12."xxxxxxx_xxxxxxx_xxxxxxx_xxx", T12."xxxx_xx", T12."xxxxxxxxxxxx_xx", "x= xxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxx= xxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", "= xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxx= xxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxx= x_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxx_xx_xxxx", "xxxxxxxx_x= xxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxx= xxxxxxxxx"."xxxxxxx_xxxx_xxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"= ."xxxxxx_xxxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx= xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxx_xxxxxx= xxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxx= xxxxxxxx"."xxxx_xxxxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."x= xxx_xxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_x= xxxxxx_xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxxx",= "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxx_xxxxxx", "xxxxxxxx_xxxx= xxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."= xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx= "."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxx", "xxx_xxxxxx_xxxxxxxxxx= xxxxx"."xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxx", "xxx= _xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."x= xxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxxxxxxx", "xxx_xxxxxx_xxxxxx= xxxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx_xxxxxxx", "xxx_x= xxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxxxxxxx_xxxxxxxx"."xx", "xxxxxxxx_xxxxx= xxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."x= xxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxx= x_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxx_xxxxx", "xxxxxxxx_xxxxxxxx"."xxxx= xxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx_xxxxx", "xxxxxxxx_xxx= xxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", "xxxxxxxx_xxxxx= xxx"."xx_xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxx_xxx_xxxx" FROM "xxx_xxxxxx_xxxx= xxxx" LEFT OUTER JOIN "xxx_xxxxxx_xxxxxxxxxxxxxxx" ON ( "xxx_xxxxxx_xxxxxxx= x"."xxxxxxxxxxx_xxxx_xx" =3D "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx" ) LEFT OUTER= JOIN "xxx_xxxxxx_xxxxxxxxxxxxxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xx" =3D "= xxx_xxxxxx_xxxxxxxxxxxxxxxxxx"."xxx_xxxxx_xx" ) LEFT OUTER JOIN "xxx_xxxxxx= _xxxxxxxx_xxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xx" =3D "xxx_xxxxxx_xxxxxxxx= _xxxxxxx"."xxxxxxxx_xx" ) LEFT OUTER JOIN "xxxxxxx_xxxxxx" ON ( "xxx_xxxxxx= _xxxxxxxx_xxxxxxx"."xxxxxx_xx" =3D "xxxxxxx_xxxxxx"."xx" ) LEFT OUTER JOIN = "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_= xxxxx_xx" =3D "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN "= xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx" ON ( "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxx= xx"."xxxxxxxx_xxxxxxxxx_xxxxxxx_xx" =3D "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx= x"."xx" ) LEFT OUTER JOIN "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx" ON ( "xxxxxxxx= _xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxxx_xx" =3D "xxxxxxxxxx_xxxxxxxxxxxx= xxxxxxxxx"."xx" ) LEFT OUTER JOIN "xxxxxxxxxx_xxxxxxxxxxxxxxxxx" ON ( "xxxx= xxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxxx_xx" =3D "xxxxxxxxxx_xxxxxxxxxxxxxx= xxx"."xx" ) LEFT OUTER JOIN "xxxxx_xxxxxxxxx" T11 ON ( "xxxxxxxx_xxxxxxxxxx= _xxxxxxxxxxxxxx"."xxxxxx_xx_xx" =3D T11."xx" ) LEFT OUTER JOIN "xxxxxxxx_xx= xxxxxxxx_xxxxxxxxxxxxxxx" T12 ON ( T11."xx" =3D T12."xxxx_xx" ) LEFT OUTER = JOIN "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx" ON ( T12."xx" =3D "xxxxxxxx_xxx= xxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxx_xx" ) LEFT OUTER JOIN "xxxxxxxx= _xxxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx" =3D "xxxxxxxx_xxxxxxxx"= ."xx" ) WHERE (NOT ("xxx_xxxxxx_xxxxxxxx"."xxxxx" =3D 'xxxxxxxxx') AND NOT = ("xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx" < '2015-04-20T00:00:00-07:00'::xxxxxxxx= xxx) AND NOT ("xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx" IN ('xx', 'xx') AND "x= xx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx" IS NOT NULL)) GROUP BY "xxx_xxxxxx_xxx= xxxxx"."xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxx= xxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xx= xxxxxx_xx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."= xxxxxxxx_xx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"= ."xxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx", "xxx_xxxxxx_xxxxxx= xx"."xxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", "xxx_xxxxxx_xxxx= xxxx"."xxxxxxxxxxx_xxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xxxx", "xxx_xxxxxx= _xxxxxxxx"."xxx_xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxx", "x= xx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx",= "xxx_xxxxxx_xxxxxxxx"."xxxxx_xx_xxx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xxx_xxxx= xxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_x= x", "xxx_xxxxxx_xxxxxxxx"."xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx_xx",= "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"= ."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxx= xxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx= xxxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx", "xxxxxx= xx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xx= xxxxxxxxxxxx"."xxxxxxxx_xxxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxx= xxxxxxx"."xxxxxx_xx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxx= xxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxxxx", "xxxxxxxx_x= xxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxx= xxxxxxx"."xxxxxxx_xx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx= x_xxxxx_xx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxx_xxxx_xx= xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxx= xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx= ", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xx_xxxxxx= _xxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx= _xxxx_xxx_xxxxxxxxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxx= xx_xxx_xxxxxxxx_xxxxx_xx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx= xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxxxx_xxxxx= xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxx", "xxxxxxxx= _xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxx= xxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxx= _xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx", "xxxxxxxx_xxxxxxxxxx_= xxxxxxxxxxxxxx"."xxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_= xxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", "x= xxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxx= xxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", "= xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxx= xxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxx= xxx_x3_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxx= xxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."x= xxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx", "xxxxxxxx_xxxxxxxx= xx_xxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xx= xx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxx= xx_xxxxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."= xxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxx= x_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxx= xxxxxxxxxxx"."xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", "xxxxxx= xx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", "xxxxxxxx_xxxxxxxxxx_xxxxxx= xxxxxxxxx"."xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxx= x_xxxxxxx_xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xx", "xxxxxxxx_= xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxx= xxxxx"."xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_x= xxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxx= xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxx= xxxxxxxxxxxxxx"."xxxxxxxx_xx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxx= xxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx= "."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xx= xxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxx_xxxx", = "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxx= x"."xxx_xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxxxx= _xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx= xxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxxxx_xxxxxxxxx= xxxxxxxx"."xxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxx", "xxxxxxxxxx_xxxxx= xxxxxxxxxxxx"."xxxxxxx_xxxx1", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx= 2", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxx= xxxxx"."xxxxxxx_xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", "= xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxx= xxxxxxx"."xxxxx", T11."xx", T11."xxxxxxxx", T11."xxxx_xxxxx", T11."xx_xxxxx= xxxx", T11."xxxxx", T11."xxxxxxxxxxx_xxxxxxx_xxxxx", T11."xxxxxxx_xx", T11.= "xxxxx_xxxx", T11."xxxx_xxxx", T11."xxxxxxxx", T11."xxxxxx", T11."xxxxx_xxx= xxx", T11."xxxxxxx_xxxxxxx_xx", T11."xxxxxxx_xxxxxxxx_xxxxxxx_xx", T11."xxx= xxxx_xx_xxxxx", T11."xxx_xxx_xxx_xxxxxxxx", T11."xx_xxxxx", T11."xxxxx_xxxx= x_xxxxx_xxxxxxx", T11."xx_xxxxxx", T11."xx_xxxxx", T11."xxxxxxx_xx", T11."x= xxxxxx_xx", T11."xxxxxxx_xx", T11."xxxx_xxxxx_xxxxxxx", T11."xxxxxxxxxxx_xx= xxxx_xxxxxx", T12."xx", T12."xxxxxxx_xx", T12."xxxxxxx_xx", T12."xxx", T12.= "xxxxx_xxxx", T12."xxxx_xxxx", T12."xxxxx", T12."xxxxx_xxxxxx", T12."xxx_xx= xxxx", T12."xxxxxxx_xxxx", T12."xxxxxxxxxxx_xxxx", T12."xxxx", T12."xxxxx",= T12."xxxxxxx_xxxx1", T12."xxxxxxx", T12."xxxxxxx_xxxxxxx_xxxxxxx_xxx", T12= ."xxxx_xx", T12."xxxxxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."= xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxx= xxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx".= "xxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx= xxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxx= x_xxxxxxx_xxxxx_xx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_x= xxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx_xxxxxxxxx", "= xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", "xxxxxxxx_xxxxx= xxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxx= xxxxx"."xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxx= _xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxxxxxxx_xxxx", "xxx= xxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx= _xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", "xxxxxxxx_xxxxxxxxxx_xxxx= xxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx= "."xxxx_xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxxxxx_= xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxx= xxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxx= xxxxx"."xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxxx", "xxx_xxxxxx_xxxx= xxxxxxxxxxx"."xxxxxxx_xxxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxx_x= xxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx".= "xxx_xxxxxxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_= xxxxxxxxxxxxxxx"."xx_xxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxx= xxxxx_xxxxxxxx"."xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"= ."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxx"."= xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_x= xxx_xxxxx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxx".= "xxxxxxxx_xxxxx_xxxxx", "xxxxxxxx_xxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxx".= "xxxxxxxxx_xxxxx_xx", "xxxxxxxx_xxxxxxxx"."xx_xxxx_xx", "xxxxxxxx_xxxxxxxx"= ."xxx_xxx_xxxx"; xxxx=3D('xxxxxxxxx', datetime.datetime(2015, 4, 20, 0, 0, = tzinfo=3D), 'ff', = 'qa')=20 --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Thu Oct 31 13:26:32 2019 Received: (at 25682) by debbugs.gnu.org; 31 Oct 2019 17:26:32 +0000 Received: from localhost ([127.0.0.1]:54220 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iQEDQ-0005sK-7L for submit@debbugs.gnu.org; Thu, 31 Oct 2019 13:26:32 -0400 Received: from eggs.gnu.org ([209.51.188.92]:38718) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iQEDO-0005s7-92 for 25682@debbugs.gnu.org; Thu, 31 Oct 2019 13:26:30 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:57660) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1iQEDI-0005pM-7Q; Thu, 31 Oct 2019 13:26:24 -0400 Received: from [176.228.60.248] (port=1048 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1iQEDH-0007qF-If; Thu, 31 Oct 2019 13:26:24 -0400 Date: Thu, 31 Oct 2019 19:26:23 +0200 Message-Id: <831rusomgw.fsf@gnu.org> From: Eli Zaretskii To: Lars Ingebrigtsen In-reply-to: <87wock6dxy.fsf@gnus.org> (message from Lars Ingebrigtsen on Thu, 31 Oct 2019 18:07:53 +0100) Subject: Re: bug#25682: 25.1; font-lock: fontifying too slow in some modes on very long lines References: <87wock6dxy.fsf@gnus.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 25682 Cc: 25682@debbugs.gnu.org, public@ryanb.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Lars Ingebrigtsen > Date: Thu, 31 Oct 2019 18:07:53 +0100 > Cc: 25682@debbugs.gnu.org > > > 1. put the single long line under the === below (18572 chars long) into a file > > 2. run emacs -Q > > 3. type C-x C-f RET to open the file > > 4. type M-x compilation-mode RET > > > > this consistently hangs emacs for 9-10s for me on modern hardware, a 2014 > > retina macbook pro. > > The example was corrupted in transit (line-folded), so I've included a > fixed-up version as an attachment here. The profile is below. > Running M-x compilation-mode takes about five seconds for me, but this > laptop is pretty fast. Yours is an optimized build, right? - ... 3375 98% - compilation--ensure-parse 3362 98% - save-excursion 3362 98% - if 3362 98% - progn 3362 98% - let 3362 98% - let* 3362 98% - unwind-protect 3362 98% - progn 3362 98% - compilation--parse-region 3362 98% - if 3362 98% - compilation-parse-errors 3362 98% - let 3362 98% - while 3362 98% - let 3362 98% - let 3362 98% while 3362 98% Automatic GC 13 0% - command-execute 50 1% - call-interactively 50 1% - funcall-interactively 48 1% - execute-extended-command 48 1% - execute-extended-command--shorter 45 1% - completion-try-completion 45 1% - completion--nth-completion 45 1% - completion--some 45 1% - # 45 1% - completion-pcm-try-completion 28 0% - completion-pcm--find-all-completions 26 0% completion-pcm--all-completions 26 0% - completion-pcm--merge-try 2 0% completion-pcm--merge-completions 1 0% completion-basic-try-completion 17 0% - command-execute 1 0% - call-interactively 1 0% - funcall-interactively 1 0% - compilation-mode 1 0% - run-mode-hooks 1 0% - hack-local-variables 1 0% - hack-dir-local-variables 1 0% - dir-locals-find-file 1 0% - locate-dominating-file 1 0% dir-locals--all-files 1 0% - sit-for 1 0% redisplay 1 0% - byte-code 2 0% - read-extended-command 2 0% - completing-read 2 0% - completing-read-default 2 0% read-from-minibuffer 2 0% From debbugs-submit-bounces@debbugs.gnu.org Thu Oct 31 13:32:29 2019 Received: (at 25682) by debbugs.gnu.org; 31 Oct 2019 17:32:29 +0000 Received: from localhost ([127.0.0.1]:54232 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iQEJB-0007vl-C6 for submit@debbugs.gnu.org; Thu, 31 Oct 2019 13:32:29 -0400 Received: from quimby.gnus.org ([80.91.231.51]:48844) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iQEJ9-0007tw-3A for 25682@debbugs.gnu.org; Thu, 31 Oct 2019 13:32:27 -0400 Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=marnie) by quimby.gnus.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iQEJ4-00037W-Um; Thu, 31 Oct 2019 18:32:25 +0100 From: Lars Ingebrigtsen To: Eli Zaretskii Subject: Re: bug#25682: 25.1; font-lock: fontifying too slow in some modes on very long lines References: <87wock6dxy.fsf@gnus.org> <831rusomgw.fsf@gnu.org> Date: Thu, 31 Oct 2019 18:32:22 +0100 In-Reply-To: <831rusomgw.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 31 Oct 2019 19:26:23 +0200") Message-ID: <87imo46ct5.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Eli Zaretskii writes: >> Running M-x compilation-mode takes about five seconds for me, but this >> laptop is pretty fast. > > Yours is an optimized build, right? Yup. Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 25682 Cc: 25682@debbugs.gnu.org, public@ryanb.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: >> Running M-x compilation-mode takes about five seconds for me, but this >> laptop is pretty fast. > > Yours is an optimized build, right? Yup. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Sat Jul 23 05:03:32 2022 Received: (at 25682) by debbugs.gnu.org; 23 Jul 2022 09:03:32 +0000 Received: from localhost ([127.0.0.1]:43472 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oFB2n-0004XX-4x for submit@debbugs.gnu.org; Sat, 23 Jul 2022 05:03:32 -0400 Received: from quimby.gnus.org ([95.216.78.240]:49296) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oFB2l-0004XC-76 for 25682@debbugs.gnu.org; Sat, 23 Jul 2022 05:03:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:Date:References: In-Reply-To:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=2h2b9Nf7C/ANm+MGv4CrMnulIl+bIdIRqLksqKxU+e8=; b=UySPPWrzzeXtaoQMa6dw+kEQ3y 2eCHjX91lzieS9oPZNWlq6Lze5y0Ws1cGt9Q4VxsSBjtWpRrhjaYYCpy9pJ1Vm6pK4IEMTmpFXdKm m6f3tshYZ5URFloPoiaFccZX59pmjU55u3LMQziZt5JhcU22C98CpDPGoYn4G59krkJM=; Received: from [84.212.220.105] (helo=joga) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oFB2c-0000hA-Hl; Sat, 23 Jul 2022 11:03:20 +0200 From: Lars Ingebrigtsen To: Ryan B Subject: Re: bug#25682: 25.1; font-lock: fontifying too slow in some modes on very long lines In-Reply-To: (Ryan B.'s message of "Fri, 10 Feb 2017 13:33:52 -0800") References: X-Now-Playing: Mia Doi Todd's _Music Life_: "Little Bird (feat. Fabiano do Nascimento & Miguel Atwood-Ferguson)" Date: Sat, 23 Jul 2022 11:03:17 +0200 Message-ID: <87h738td4a.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Ryan B writes: > i occasionally have very long lines in some buffers, e.g. 10k-20k characters. > font-lock-mode often hangs for a long time (5-10s) when fontifying these lines. These issues have been fixed in Emacs 29 -- long lines no longer slows down Emacs (to these degrees), so I'm closing this bug report. (And I'm not able to reproduce the problem in the test case here w [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 25682 Cc: 25682@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Ryan B writes: > i occasionally have very long lines in some buffers, e.g. 10k-20k characters. > font-lock-mode often hangs for a long time (5-10s) when fontifying these lines. These issues have been fixed in Emacs 29 -- long lines no longer slows down Emacs (to these degrees), so I'm closing this bug report. (And I'm not able to reproduce the problem in the test case here with the current Emacs.) There may be issues remaining with long lines, and if so, please open new bug reports for those issues (and cases for reproduction would be appreciated). From debbugs-submit-bounces@debbugs.gnu.org Sat Jul 23 05:03:33 2022 Received: (at control) by debbugs.gnu.org; 23 Jul 2022 09:03:33 +0000 Received: from localhost ([127.0.0.1]:43475 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oFB2r-0004Xp-JR for submit@debbugs.gnu.org; Sat, 23 Jul 2022 05:03:33 -0400 Received: from quimby.gnus.org ([95.216.78.240]:49310) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oFB2q-0004XO-Kt for control@debbugs.gnu.org; Sat, 23 Jul 2022 05:03:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Subject:From:To:Message-Id:Date:Sender:Reply-To:Cc: MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=0i44xuDmIjXpY8BQJPjGN84cRmWi3TRIH+itjUjXU8k=; b=Y6O6Pe0sZuweSOHKiDcmYOBKfw 0OjrvEzSuAvs2ffhYhhkcbWl6vAIskvXckj7pXtYuwh3SugyFnGCEzEVyZCRqvpcRGgSxWjd5R+WA 2m8mfCEyKB8veqm/Xi/mNOAGT8BT9wdFsVDT3+NCV27ZG1sGSXpXAXW9KK51ncTE9HZc=; Received: from [84.212.220.105] (helo=joga) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oFB2j-0000hI-00 for control@debbugs.gnu.org; Sat, 23 Jul 2022 11:03:27 +0200 Date: Sat, 23 Jul 2022 11:03:23 +0200 Message-Id: <87fsistd44.fsf@gnus.org> To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #25682 X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: close 25682 29.1 quit Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) close 25682 29.1 quit From unknown Sun Jun 22 17:11:10 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 20 Aug 2022 11:24:10 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator