From keeganwitt@gmail.com Fri Mar 1 00:18:08 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 2496E765AF for ; Fri, 1 Mar 2013 00:18:08 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.698 X-Spam-Level: X-Spam-Status: No, score=-2.698 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FrBGMAs1A7NA for ; Fri, 1 Mar 2013 00:18:07 +0000 (UTC) Received: from mail-ie0-f173.google.com (mail-ie0-f173.google.com [209.85.223.173]) by restaurant.gnome.org (Postfix) with ESMTP id BC5F5763DD for ; Fri, 1 Mar 2013 00:18:06 +0000 (UTC) Received: by mail-ie0-f173.google.com with SMTP id 9so2895942iec.18 for ; Thu, 28 Feb 2013 16:18:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:mime-version:in-reply-to:references:from:date:message-id :subject:to:content-type; bh=X1LrgueqTmIfl0+I21pfX8ZlQzXlbr3pq1M5b5f5hVo=; b=qV2a/YwAG7LGD9Q1dJL64M6M2IME5qdqss7AwEmoKWBECxkZ9x6Xg4WUmsojj4pDIs NXl3wMbeaS/T7NWterySOwfkL3FPDdW38rEHUuelil9LDEY5GON9v3/smYsWvJ3hmYKB xkz0vY0ZVwxEqrIXOwawLwSc6yqCURLjFg179f/mFn3F/I9WHe0XYQAm3ZU3ANMx6m6P /depon3q8V0D7lHqQ1IoVJ78kCbmOLAUojVLnTzK4bc+/AqjU8NyQtUuP1KpPWkPmrQ3 I4IRU5968lXoFnKuFgnPwFS/hJhaKU2b7P3tndjxb7QxTIgzNKRchn1E5RK9gOEIdsWE iWTw== X-Received: by 10.50.169.6 with SMTP id aa6mr11639965igc.1.1362097085416; Thu, 28 Feb 2013 16:18:05 -0800 (PST) MIME-Version: 1.0 Received: by 10.50.42.169 with HTTP; Thu, 28 Feb 2013 16:17:45 -0800 (PST) In-Reply-To: References: From: Keegan Witt Date: Thu, 28 Feb 2013 19:17:45 -0500 Message-ID: Subject: Re: Meld 1.7.1 released To: meld-list Content-Type: multipart/alternative; boundary=e89a8f2343b9ed106504d6d1f065 X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Mar 2013 00:18:08 -0000 --e89a8f2343b9ed106504d6d1f065 Content-Type: text/plain; charset=UTF-8 I've uploaded a new Windows installer and portable zip for this release: http://code.google.com/p/meld-installer/downloads/list?can=2 -Keegan --e89a8f2343b9ed106504d6d1f065 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
I've uploaded a new Windows installer and portabl= e zip for this release: http://code.google.com/p/meld-installer/downloads/l= ist?can=3D2
=C2=A0
-Keegan
--e89a8f2343b9ed106504d6d1f065-- From ezquerra@gmail.com Fri Mar 1 10:01:43 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 0D083769EA for ; Fri, 1 Mar 2013 10:01:43 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id uhaRQMNjnik9 for ; Fri, 1 Mar 2013 10:01:42 +0000 (UTC) Received: from mail-ve0-f171.google.com (mail-ve0-f171.google.com [209.85.128.171]) by restaurant.gnome.org (Postfix) with ESMTP id 13C457699C for ; Fri, 1 Mar 2013 10:01:41 +0000 (UTC) Received: by mail-ve0-f171.google.com with SMTP id b10so2744980vea.30 for ; Fri, 01 Mar 2013 02:01:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=cO44vhuEnZwjlRJSw4vh25PRvhPBWgTjiIoG8GDq6Cc=; b=sSwbKjqyy8Ug7mRsMiRrPygPuwjDUA/jnkRH49nG1dC/iUT7Rufx8O2qlESF/UK9Zz RZhbfMTwT2jqcHVVYjTknEjAczaN5xTi7QIcww7kQ3tyBPkathZMMkVhfaKzmU3H2pbN 1uoC5sECVSUxFwxr2RpwNGIJsfD0g8r1h0x4DNA1wfApO2Dbn5P3cqKKUxTS0cBJ5mcU iyWSnmTQrC56QZwy9rOfQn6073A4xFp1aHgvmzDErg0gqkQtHL8g+e0EljLabNyZ1fsX bdd+C8YnGSzt2Ap2k4hJl+dymCpm7+HxElFTvEzSiQmPU96DpXR1mA/Zv+Bn+O09jRml UkOA== MIME-Version: 1.0 X-Received: by 10.58.196.240 with SMTP id ip16mr320297vec.50.1362132100008; Fri, 01 Mar 2013 02:01:40 -0800 (PST) Sender: ezquerra@gmail.com Received: by 10.58.54.1 with HTTP; Fri, 1 Mar 2013 02:01:39 -0800 (PST) In-Reply-To: References: Date: Fri, 1 Mar 2013 11:01:39 +0100 X-Google-Sender-Auth: nC2X9nwmdJPgFxJn1-7BMX_11kk Message-ID: Subject: Re: Meld 1.7.1 released From: Angel Ezquerra To: Keegan Witt Content-Type: text/plain; charset=ISO-8859-1 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Mar 2013 10:01:43 -0000 Hi Keegan, thanks for the heads up. I just tried it and I still have the issue with the "waiting cursor" (I see a spinning cursor whenever I place the mouse over the Meld window). Do you see it too? Everything seems to work fine, but it is quite annoying and makes meld feel "unstable" (even if it probably is not). Cheers, Angel On Fri, Mar 1, 2013 at 1:17 AM, Keegan Witt wrote: > I've uploaded a new Windows installer and portable zip for this release: > http://code.google.com/p/meld-installer/downloads/list?can=2 > > -Keegan > > _______________________________________________ > meld-list mailing list > meld-list@gnome.org > https://mail.gnome.org/mailman/listinfo/meld-list From dmacks@netspace.org Fri Mar 1 13:49:35 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id D143076B5A for ; Fri, 1 Mar 2013 13:49:35 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -0.921 X-Spam-Level: X-Spam-Status: No, score=-0.921 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, FROM_EXCESS_BASE64=0.979, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=no Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id D9-tZA-+WXOA for ; Fri, 1 Mar 2013 13:49:35 +0000 (UTC) Received: from mail9c40.carrierzone.com (mail9c40.carrierzone.com [209.235.156.149]) by restaurant.gnome.org (Postfix) with ESMTP id 4482876B47 for ; Fri, 1 Mar 2013 13:49:34 +0000 (UTC) Received: from mail9c40.carrierzone.com (localhost [127.0.0.1]) by mail9c40.carrierzone.com (8.13.6/8.13.1) with ESMTP id r21DnWLp024670 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO) for ; Fri, 1 Mar 2013 13:49:32 +0000 Received: (from webmail@localhost) by mail9c40.carrierzone.com (8.13.6/8.12.2/Submit) id r21DnW2C024669 for meld-list@gnome.org; Fri, 1 Mar 2013 08:49:32 -0500 Received: from pool-96-244-146-185.bltmmd.fios.verizon.net (pool-96-244-146-185.bltmmd.fios.verizon.net [96.244.146.185]) by webmail.netspace.org (Webmail 5.0 V.V.I.) with HTTP for ; Fri, 01 Mar 2013 08:49:32 -0500 Message-ID: <20130301084932.t2qidqb7wocgw4kk@webmail.netspace.org> From: "=?utf-8?b?RGFuaWVsIE1hY2tz?=" To: meld-list Subject: Re: File-diff broken Date: Fri, 01 Mar 2013 08:49:32 -0500 X-Priority: 3 References: <20130228101039.qhv1rwm6g4coo4ck@webmail.netspace.org> In-Reply-To: <20130228101039.qhv1rwm6g4coo4ck@webmail.netspace.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format="flowed" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable User-Agent: Webmail 6.0 X-CSC: 0 X-CHA: v=2.0 cv=ZN5gbwHb c=1 sm=1 a=WgqlhV2pB5zgkiz5y38hRw==:17 a=Q5QLeeme7KwA:10 a=T6QNPRnjHn8A:10 a=IkcTkHD0fZMA:10 a=htD9qdewAAAA:8 a=6wiC23XBknUA:10 a=aeW66DN-8_C_IAecSqoA:9 a=QEXdDO2ut3YA:10 a=lQSODCMphPEA:10 a=WkljmVdYkabdwxfqvArNOQ==:117 X-CTCH-RefID: str=0001.0A020203.5130B1ED.0001, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Mar 2013 13:49:35 -0000 On Thu, 28 Feb 2013 10:10:39 -0500, Daniel Macks wrot= e: Using meld-1.7.1 on OS X 10.6 and python27, comparing two files fails > to find differences. The two files are displayed side-by-side, but > with nothing highlighted (but also no "files are the same" banner), > and my terminal reports: > > Traceback (most recent call last): > =C2=A0 File "/sw/lib/meld/meld/task.py", line 134, in iteration > =C2=A0=C2=A0=C2=A0 ret =3D next(task) > =C2=A0 File "/sw/lib/meld/meld/filediff.py", line 1111, in _set_files_int= ernal > =C2=A0=C2=A0=C2=A0 for i in self._load_files(files, self.textbuffer): > =C2=A0 File "/sw/lib/meld/meld/filediff.py", line 1064, in _load_files > =C2=A0=C2=A0=C2=A0 self.set_buffer_writable(t.buf, writable) > =C2=A0 File "/sw/lib/meld/meld/filediff.py", line 1455, in set_buffer_wri= table > =C2=A0=C2=A0=C2=A0 self.readonlytoggle[index].set_visible(not writable) > AttributeError: 'gtk.ToggleButton' object has no attribute 'set_visible' > > It worked fine in 1.6.1. I get the same results using a newly-created > user account (no leftover preferences from an older version). Is this > attribute recently added to gtk? I'm running a fairly old gnome stack > but I don't see any NEWS or other notes about migrating to gtk3 or > other minimum-version requirements. Seems to be cured by upgrading pygtk (broken with 2.16.0, fixed with 2.17.0). Is it possible for the build-system to test for it? Regardless, would be good to note this new requirement in NEWS dan -- Daniel Macks dmacks@netspace.org From dmacks@netspace.org Fri Mar 1 16:02:39 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 22FCC76C44 for ; Fri, 1 Mar 2013 16:02:39 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -0.921 X-Spam-Level: X-Spam-Status: No, score=-0.921 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, FROM_EXCESS_BASE64=0.979, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=no Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5IL2aJLe3n4x for ; Fri, 1 Mar 2013 16:02:38 +0000 (UTC) Received: from mail9c40.carrierzone.com (mail9c40.carrierzone.com [209.235.156.149]) by restaurant.gnome.org (Postfix) with ESMTP id 7517A76C3E for ; Fri, 1 Mar 2013 16:02:37 +0000 (UTC) Received: from mail9c40.carrierzone.com (localhost [127.0.0.1]) by mail9c40.carrierzone.com (8.13.6/8.13.1) with ESMTP id r21G2ZGS023017 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO) for ; Fri, 1 Mar 2013 16:02:36 +0000 Received: (from webmail@localhost) by mail9c40.carrierzone.com (8.13.6/8.12.2/Submit) id r21G2ZP2023014 for meld-list@gnome.org; Fri, 1 Mar 2013 11:02:35 -0500 Received: from pool-96-244-146-185.bltmmd.fios.verizon.net (pool-96-244-146-185.bltmmd.fios.verizon.net [96.244.146.185]) by webmail.netspace.org (Webmail 5.0 V.V.I.) with HTTP for ; Fri, 01 Mar 2013 11:02:35 -0500 Message-ID: <20130301110235.fiwnzv3xpcco0oo4@webmail.netspace.org> From: "=?utf-8?b?RGFuaWVsIE1hY2tz?=" To: meld-list Subject: Re: Meld 1.7.1 released Date: Fri, 01 Mar 2013 11:02:35 -0500 X-Priority: 3 References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format="flowed" Content-Disposition: inline Content-Transfer-Encoding: 7bit User-Agent: Webmail 6.0 X-CSC: 0 X-CHA: v=2.0 cv=ZN5gbwHb c=1 sm=1 a=WgqlhV2pB5zgkiz5y38hRw==:17 a=Q5QLeeme7KwA:10 a=T6QNPRnjHn8A:10 a=IkcTkHD0fZMA:10 a=htD9qdewAAAA:8 a=Mqwogtf4nLQA:10 a=pGLkceISAAAA:8 a=m5NGyA13kH4cb0QdRLcA:9 a=QEXdDO2ut3YA:10 a=MSl-tDqOz04A:10 a=lQSODCMphPEA:10 a=WkljmVdYkabdwxfqvArNOQ==:117 X-CTCH-RefID: str=0001.0A020207.5130D11C.0058, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Mar 2013 16:02:39 -0000 On Thu, 28 Feb 2013 17:54:35 +1000, Kai Willadsen wrote: Meld 1.7.1 has been released. Aside from the usual round of updates, > folder comparisons have had several long-awaited feature additions thanks to > some new contributors. > > Note to packagers: Meld's 'unstable' series have typically been very > reliable, to the point of being pushed as updates into stable > distribution releases. Please do not assume that the current release > is that reliable. Pushed to fink source-distros for OS X 10.5-10.8. dan -- Daniel Macks dmacks@netspace.org From kai.willadsen@gmail.com Fri Mar 1 19:50:37 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 3B125769AD for ; Fri, 1 Mar 2013 19:50:37 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id g3GuVVtVvlSL for ; Fri, 1 Mar 2013 19:50:23 +0000 (UTC) Received: from mail-we0-f172.google.com (mail-we0-f172.google.com [74.125.82.172]) by restaurant.gnome.org (Postfix) with ESMTP id 89377769BC for ; Fri, 1 Mar 2013 19:50:23 +0000 (UTC) Received: by mail-we0-f172.google.com with SMTP id x10so2805578wey.31 for ; Fri, 01 Mar 2013 11:50:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=afNluL9s8PQicF7N03fZulcZE3IsWsCqXKG4rglKZ+g=; b=aAUZcwr3bPNaIBo/j519aDdbRmyMwiu3XbHYCwOyd0T9EvfAEYeNhPJAsO44OSNkjD IsQHe8NB4c+lvV7GgnhfifF4wEBdSamgp+Z8vLC1zEors4WUtT9LlxK02EXTvKRsQMg7 ekt3n75NOBRuclqrgdrJoUIsFASnWiPo3fc4vFNEASoMq5pVfAHSQ0FAQsomkerJpLU2 1dQWchh0Q40wqKSUv5UheI9gCbuSt9hpDEWRF/3sQymK6JVPCXu9pRFSHKjOyJLLlibV JsLtcYcMg+yStP0L7n7MP/J7bveQGQfmE6U0XGPsSJfmZjDWJ0zWz24lWRZ0+4JErGxz JRXg== MIME-Version: 1.0 X-Received: by 10.194.176.165 with SMTP id cj5mr19641990wjc.37.1362167421275; Fri, 01 Mar 2013 11:50:21 -0800 (PST) Received: by 10.216.122.11 with HTTP; Fri, 1 Mar 2013 11:50:21 -0800 (PST) In-Reply-To: <20130301084932.t2qidqb7wocgw4kk@webmail.netspace.org> References: <20130228101039.qhv1rwm6g4coo4ck@webmail.netspace.org> <20130301084932.t2qidqb7wocgw4kk@webmail.netspace.org> Date: Sat, 2 Mar 2013 05:50:21 +1000 Message-ID: Subject: Re: File-diff broken From: Kai Willadsen To: Daniel Macks Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Mar 2013 19:50:37 -0000 On 1 March 2013 23:49, Daniel Macks wrote: > On Thu, 28 Feb 2013 10:10:39 -0500, Daniel Macks > wrote: > Using meld-1.7.1 on OS X 10.6 and python27, comparing two files fails >> >> to find differences. The two files are displayed side-by-side, but with >> nothing highlighted (but also no "files are the same" banner), and my >> terminal reports: >> >> Traceback (most recent call last): >> File "/sw/lib/meld/meld/task.py", line 134, in iteration >> ret = next(task) >> File "/sw/lib/meld/meld/filediff.py", line 1111, in _set_files_internal >> for i in self._load_files(files, self.textbuffer): >> File "/sw/lib/meld/meld/filediff.py", line 1064, in _load_files >> self.set_buffer_writable(t.buf, writable) >> File "/sw/lib/meld/meld/filediff.py", line 1455, in set_buffer_writable >> self.readonlytoggle[index].set_visible(not writable) >> AttributeError: 'gtk.ToggleButton' object has no attribute 'set_visible' >> >> It worked fine in 1.6.1. I get the same results using a newly-created user >> account (no leftover preferences from an older version). Is this attribute >> recently added to gtk? I'm running a fairly old gnome stack but I don't see >> any NEWS or other notes about migrating to gtk3 or other minimum-version >> requirements. > > > Seems to be cured by upgrading pygtk (broken with 2.16.0, fixed with > 2.17.0). Is it possible for the build-system to test for it? Regardless, > would be good to note this new requirement in NEWS This break was unintentional, but at this point 2.16 is really *very* old. I'm only keeping up support for it out of sympathy with people on RHEL6. PyGTK doesn't have any way to only enable symbols in version X, so there's no easy way to check for this; the best way is to have a few people running Meld from git on older systems. I do try to respond when people yell. Anyway, I've fixed this issue in current git. Thanks for letting me know. cheers, Kai From kai.willadsen@gmail.com Fri Mar 1 20:49:28 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id D3D55769BF for ; Fri, 1 Mar 2013 20:49:28 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LARRbF88nuWo for ; Fri, 1 Mar 2013 20:49:28 +0000 (UTC) Received: from mail-wi0-f171.google.com (mail-wi0-f171.google.com [209.85.212.171]) by restaurant.gnome.org (Postfix) with ESMTP id 1BE47769AD for ; Fri, 1 Mar 2013 20:49:27 +0000 (UTC) Received: by mail-wi0-f171.google.com with SMTP id hn17so9592373wib.16 for ; Fri, 01 Mar 2013 12:49:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=aXeSmZhOQ4R9bL/fL5bPI2aNclIIVkqw0KFmW9LYbbI=; b=NxL5En2xPFYdBTQyE1j/X/DAtjNj4mOGfpC1OOkUQqyZtzfZrtMULtZHuZcWXlVhdO scy7+AF5sW3zVk8YzyvuQOVsnqq1N6qEL6uSObi5YmUE+Oa7uKMrso+0+4XU9ffOWszw SLS2RVyMyBI9OD43FauHtPtYSh07tQZSxEoY1YIqUV6uMJW/tLcvdpGAPpd1yINLSJO5 0JDacNBZYV2NlpiXHzKk6nvs3lfUGtgJi+OV6llbptynuEWhGsYWjVNmHh+M4UeFixvk i7s3Ybw6gDYPyhAc6Uetn84siqKZ8dqnV31fdqHktzT7X3Ir+pTxQMBDeWlsfOOA0+kK IYvA== MIME-Version: 1.0 X-Received: by 10.180.74.131 with SMTP id t3mr113670wiv.23.1362170965992; Fri, 01 Mar 2013 12:49:25 -0800 (PST) Received: by 10.216.122.11 with HTTP; Fri, 1 Mar 2013 12:49:25 -0800 (PST) In-Reply-To: References: Date: Sat, 2 Mar 2013 06:49:25 +1000 Message-ID: Subject: Re: "static/fixed" mode on file diff view From: Kai Willadsen To: Pedro Pedruzzi Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Mar 2013 20:49:28 -0000 On 26 February 2013 06:58, Pedro Pedruzzi wrote: > Hello, everyone! > > I'm a happy meld user and I've just joined this list because I have > some improvement ideas I'd like to share, discuss and help implement. > > The current visual highlighting of matching chunks is awesome. But the > scrolling can get a little confusing to use because it lacks > one-to-one alignment between lines in the panes. > > I'd like to experiment adding an option to make the diff view > scrolling fixed between panes. I'd have to add vertical spacing in the > panes to fill the gaps (can be done with "null" lines), so that > identical lines are always aligned (regardless of the scrolling > position) and so are matching chunks. > > What do you guys think of this idea? Plenty of people have requested this before, and I'm pretty sure there's a bug somewhere. It would be nice to have, but it's not all that easy to add. > I'd appreciate some guidance on how this could be hacked in the code base. It will be difficult to know what the best approach is until you're half way through. There are two basic options that come to mind: add extra linebreaks into the buffer, but make sure to account for them whenever handling text; or try to get the textview to do the extra padding for you. Both are probably broken in different ways (e.g., line wrapping). For the first option, Meld has a strong assumption that the textbuffer isn't going to lie to us about line numbers. We assume that line 7 in our comparison will be line 7 in the buffer and vice versa. Fixing this would be a big undertaking, and would have all sorts of edge cases, but if done properly would be very worthwhile. The second option is to get the gtk.TextView to artificially inflate the last line of each misaligned chunk. This *should* be significantly easier, but not trivial to do properly. Basically, you'd create a tag per chunk and per pane, and iterate over chunks, checking to see whether their ending text iters y-locations match. If not, adjust the relevant tag's pixels-below-lines & pixels-below-lines-set properties to make them match. The hard part comes when the buffer changes and the tags need to be cleaned, adjusted, revalidated, etc. As a proof-of-concept, the first part could be done in FileDiff.on_textview_expose() I think, but in the long term I think doing the tag manipulation in there would be too slow. I haven't tried this, but I think it should work. Anyway, it would be cool to have this option, so if you have any questions, feel free to ask. cheers, Kai From keeganwitt@gmail.com Fri Mar 1 21:33:02 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id BB51D769F8 for ; Fri, 1 Mar 2013 21:33:02 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.698 X-Spam-Level: X-Spam-Status: No, score=-2.698 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id naMkkGuo2bd4 for ; Fri, 1 Mar 2013 21:32:52 +0000 (UTC) Received: from mail-ie0-f172.google.com (mail-ie0-f172.google.com [209.85.223.172]) by restaurant.gnome.org (Postfix) with ESMTP id D6084769C7 for ; Fri, 1 Mar 2013 21:32:52 +0000 (UTC) Received: by mail-ie0-f172.google.com with SMTP id c10so4163322ieb.3 for ; Fri, 01 Mar 2013 13:32:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:mime-version:in-reply-to:references:from:date:message-id :subject:to:content-type; bh=hfg//4akdsD0RFafpPUyxj3nZn9NpQcOf7m1/0C9Soc=; b=cufF/1LYOsRWw2/9cCCjkhynCvzuWxDFtUgCgBiZtnbkyQcu3ojBvP2wtqfvKvUtXZ hDxu/s4kFLA6dzLrXLBM9Rq0cuvJjEfn1XanWkcb8cbz0N/8RveIPF15jN4GgUELyju6 4HV+uNll/hJ4XaKd1ipSmi4P4t+55eSDQi7gmg9ObwXwN7OV/F5WoTZZmzHe/RDExzIf 5fkeqbTkUIoh2wj49NZ1eqW+OS0KSzAbEk022EQ+VYgY+VlpEYckg9WqixNONKwiVtFb Q12TNaSVZ2HCucKJ/+EQ5O2RHj/c5b5nebsYhuwcXb29GJ16UIYZW5BlIB9JHPsXWsN8 aMhA== X-Received: by 10.43.9.137 with SMTP id ow9mr7794949icb.32.1362173571321; Fri, 01 Mar 2013 13:32:51 -0800 (PST) MIME-Version: 1.0 Received: by 10.50.42.169 with HTTP; Fri, 1 Mar 2013 13:32:31 -0800 (PST) In-Reply-To: <20130301110235.fiwnzv3xpcco0oo4@webmail.netspace.org> References: <20130301110235.fiwnzv3xpcco0oo4@webmail.netspace.org> From: Keegan Witt Date: Fri, 1 Mar 2013 16:32:31 -0500 Message-ID: Subject: Re: Meld 1.7.1 released To: meld-list Content-Type: multipart/alternative; boundary=bcaec5161fcdd759f904d6e3bfe6 X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Mar 2013 21:33:02 -0000 --bcaec5161fcdd759f904d6e3bfe6 Content-Type: text/plain; charset=UTF-8 Yes, the pythonw waiting cursor problem still seems to be present. Possibly this is because of some bad combination of versions with the new software (I've only tried with Python 2.7.3 and PyGTK 2.24.2), I've not done much messing with trying to track this down yet. -Keegan --bcaec5161fcdd759f904d6e3bfe6 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Yes, the pythonw waiting cursor problem still seems t= o be present.=C2=A0 Possibly this is because of some bad combination of ver= sions with the new software (I've only tried with Python 2.7.3 and PyGT= K 2.24.2), I've not done much messing with trying to track this down ye= t.

-Keegan
--bcaec5161fcdd759f904d6e3bfe6-- From kai.willadsen@gmail.com Sat Mar 2 06:50:55 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id CA32D769BF for ; Sat, 2 Mar 2013 06:50:55 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nV-pWThXBGbI for ; Sat, 2 Mar 2013 06:50:55 +0000 (UTC) Received: from mail-we0-f175.google.com (mail-we0-f175.google.com [74.125.82.175]) by restaurant.gnome.org (Postfix) with ESMTP id 2B0E1769BC for ; Sat, 2 Mar 2013 06:50:54 +0000 (UTC) Received: by mail-we0-f175.google.com with SMTP id x8so3170318wey.34 for ; Fri, 01 Mar 2013 22:50:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=KnQEgPl4YLVDawH1shbScpGjMYx6IpLjpmTTj7P+qSY=; b=O+cTe5Hps16U4PW8CBnw9+TcfDaiSgOlt1+pve8pT6lkhQWS75T7ktxWBCd0hk/PPg HI7urvSlpa9ZtG4+NIfroKkJkQkZeBPaw377IWfG82TlAj22tlPln3C6zN04maF9uSN7 t2c/x+h42VIoJZMbsDhZ7gkhm2o4D4leWDQYLzh8wEJzQeSG7Wt38GO1R1eVB92Wr2hS N7NxyDrASHDKjS1naAlNGcAzOuexz1yKUzmgSGORqYSvimEXrgr7+FbdRyEQJ4JorZTM 3IPyc15qXYKIcHxTHmu5pysTJA/TpLCS8ct2mmtZcDZNDdwu3RmwakOklafYjt2hEokN FrVg== MIME-Version: 1.0 X-Received: by 10.180.84.8 with SMTP id u8mr1832915wiy.1.1362207052854; Fri, 01 Mar 2013 22:50:52 -0800 (PST) Received: by 10.216.122.11 with HTTP; Fri, 1 Mar 2013 22:50:52 -0800 (PST) In-Reply-To: References: Date: Sat, 2 Mar 2013 16:50:52 +1000 Message-ID: Subject: Re: Meld 1.7.1 released From: Kai Willadsen To: Keegan Witt Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Mar 2013 06:50:55 -0000 On 1 March 2013 10:17, Keegan Witt wrote: > I've uploaded a new Windows installer and portable zip for this release: > http://code.google.com/p/meld-installer/downloads/list?can=2 I actually pulled up Windows today to do some testing, and immediately ran into problems that I probably should have known about with multiprocessing where inline highlighting broke immediately. I'm using Python 2.7 and the PyGtk all-in-one installer, but I can't see how this would differ in any other release without serious patching. Are there any patches to Meld or Python in the portable installer that I should be aware of for this? This bug (which I've roughly fixed, pending some testing) is pretty much a show-stopper for normal use on Windows. cheers, Kai From ezquerra@gmail.com Sat Mar 2 09:15:15 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 3ED82769BC for ; Sat, 2 Mar 2013 09:15:15 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sYJns72nYmfm for ; Sat, 2 Mar 2013 09:15:14 +0000 (UTC) Received: from mail-vc0-f178.google.com (mail-vc0-f178.google.com [209.85.220.178]) by restaurant.gnome.org (Postfix) with ESMTP id A539E765C9 for ; Sat, 2 Mar 2013 09:15:14 +0000 (UTC) Received: by mail-vc0-f178.google.com with SMTP id m8so2462361vcd.37 for ; Sat, 02 Mar 2013 01:15:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=Loi2ac2EmLv/UJfJioKnu6DCbmzCHPBZxI1ckDHCtSU=; b=D4LB8OaWlojrVxN1A+hzWX1ogWsqunG9z1mbte1V63mYHylWauz72xiPIyjluKDP1P +lItoqUFCI9ke0i3V9xMxLurCLvIKw1otRUucbXUpg9SHAaOx1vrYlY0bMRXErTJqa8t QnWwPmBQrGIKYDZNiTyW2cbpISc8HK9I6Dv4N2tRHoBFTWQ+7L8T7yAIKV32nnbHsm9n uiKCSj4nHwYFoLdDYnjGAmg7HY8opuovDAy90THgvVqK+3TXRrxnayew0gdvIyznAm5R U92buoYpu1R2Y76N9g6RZ9QQ2gQARIfWQNRF40J3tBPv/pZiKtdAbH6twO1fpZJH1KE+ 6TFA== MIME-Version: 1.0 X-Received: by 10.58.196.240 with SMTP id ip16mr1721181vec.50.1362215712835; Sat, 02 Mar 2013 01:15:12 -0800 (PST) Sender: ezquerra@gmail.com Received: by 10.58.54.1 with HTTP; Sat, 2 Mar 2013 01:15:12 -0800 (PST) In-Reply-To: References: Date: Sat, 2 Mar 2013 10:15:12 +0100 X-Google-Sender-Auth: S9xqoL2jx7Xuz6ZEMtiy89pWCGU Message-ID: Subject: Re: Meld 1.7.1 released From: Angel Ezquerra To: Kai Willadsen Content-Type: text/plain; charset=ISO-8859-1 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Mar 2013 09:15:15 -0000 On Sat, Mar 2, 2013 at 7:50 AM, Kai Willadsen wrote: > On 1 March 2013 10:17, Keegan Witt wrote: >> I've uploaded a new Windows installer and portable zip for this release: >> http://code.google.com/p/meld-installer/downloads/list?can=2 > > I actually pulled up Windows today to do some testing, and immediately > ran into problems that I probably should have known about with > multiprocessing where inline highlighting broke immediately. I'm using > Python 2.7 and the PyGtk all-in-one installer, but I can't see how > this would differ in any other release without serious patching. > > Are there any patches to Meld or Python in the portable installer that > I should be aware of for this? This bug (which I've roughly fixed, > pending some testing) is pretty much a show-stopper for normal use on > Windows. > > cheers, > Kai Kai, did you also run into the "spinning cursor" that I mentioned on another thread? That is still present on the latest 1.7.1.0 installer that Keegan built for Windows. Cheers, Angel From keeganwitt@gmail.com Sat Mar 2 19:12:07 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 356A176994 for ; Sat, 2 Mar 2013 19:12:07 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.698 X-Spam-Level: X-Spam-Status: No, score=-2.698 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id K2F+01KgwzPq for ; Sat, 2 Mar 2013 19:11:57 +0000 (UTC) Received: from mail-ie0-f176.google.com (mail-ie0-f176.google.com [209.85.223.176]) by restaurant.gnome.org (Postfix) with ESMTP id 4E313769D1 for ; Sat, 2 Mar 2013 19:11:56 +0000 (UTC) Received: by mail-ie0-f176.google.com with SMTP id k13so4765150iea.21 for ; Sat, 02 Mar 2013 11:11:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:mime-version:in-reply-to:references:from:date:message-id :subject:to:content-type; bh=MffMrhYEY1DdJ6Y1WumZHdoa0eo7XSWRoO7lV4lMv7U=; b=lpjuHrJlcVvcYumyTAr6wqXW3/9/bgLFwY2Pup8sHU3Ye8nmzr9wRZz24AW0r5fBa9 ZpVbMLa0aOSOX+cXUEgTOjuWMadwkgnoAo5yDPwtyw1vdRnwXQtUENMbu4idTpHGJbJa Vg7RxHubBIB/zdMj23Yc23dDD0lRdxoxFdcknjLXnGvt/BTMQeBqB6AzpzPGNdGyWxwo pn0HGy/Y3Z54ta0n1JXumoo9++bJ9X7uKP7/gMR4LYpKoLpJ/eJBBq/o4UnCMssd0MGW aKpVBEE7h32lEsOEbE94TQSiEwlKliFSfw15n9+QjNSx/ZjZT13x839r5apsT/eOmdyP VIDQ== X-Received: by 10.43.65.195 with SMTP id xn3mr16188705icb.5.1362251514924; Sat, 02 Mar 2013 11:11:54 -0800 (PST) MIME-Version: 1.0 Received: by 10.50.42.169 with HTTP; Sat, 2 Mar 2013 11:11:34 -0800 (PST) In-Reply-To: References: From: Keegan Witt Date: Sat, 2 Mar 2013 14:11:34 -0500 Message-ID: Subject: Re: Meld 1.7.1 released To: meld-list Content-Type: multipart/alternative; boundary=bcaec51d20a4a45b3c04d6f5e56c X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Mar 2013 19:12:07 -0000 --bcaec51d20a4a45b3c04d6f5e56c Content-Type: text/plain; charset=UTF-8 Not that I know of, but Perica hasn't posted the source for Portable Python yet, so I can't be sure. There does seem to be a difference between it and the regular Python installation. The portable version has the busy cursor, as described before, but the regular installation seems to rapdily flash between the busy and normal cursor. -Keegan --bcaec51d20a4a45b3c04d6f5e56c Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Not that I know of, but Perica hasn't posted the = source for Portable Python yet, so I can't be sure.=C2=A0 There does se= em to be a difference between it and the regular Python installation.=C2=A0= The portable version has the busy cursor, as described before, but the reg= ular installation seems to rapdily flash between the busy and normal cursor= .
=C2=A0
-Keegan
--bcaec51d20a4a45b3c04d6f5e56c-- From gcgm-meld-list@m.gmane.org Tue Mar 5 16:55:44 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 8048676971 for ; Tue, 5 Mar 2013 16:55:44 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -1.554 X-Spam-Level: X-Spam-Status: No, score=-1.554 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FREEMAIL_FROM=0.001, NML_ADSP_CUSTOM_MED=0.9, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.556] autolearn=no Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id v2KGgX7ipUd1 for ; Tue, 5 Mar 2013 16:55:34 +0000 (UTC) Received: from plane.gmane.org (plane.gmane.org [80.91.229.3]) by restaurant.gnome.org (Postfix) with ESMTP id 8ADC7765AD for ; Tue, 5 Mar 2013 16:55:34 +0000 (UTC) Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1UCv9a-0001B7-5h for meld-list@gnome.org; Tue, 05 Mar 2013 17:55:50 +0100 Received: from dsl.comtrol.com ([64.122.56.22]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 05 Mar 2013 17:55:50 +0100 Received: from grant.b.edwards by dsl.comtrol.com with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 05 Mar 2013 17:55:50 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: meld-list@gnome.org From: Grant Edwards Subject: Recnt update broke "meld ." Date: Tue, 5 Mar 2013 16:55:09 +0000 (UTC) Lines: 15 Message-ID: X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: dsl.comtrol.com User-Agent: slrn/1.0.1 (Linux) X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2013 16:55:44 -0000 It seems that a recent upgrade broke the "meld ." operation. That command always used to diff only the files under the current directory. Now it diffs the entire SVN repository. For large projects, this causes long delays and display of hundreds of unwanted directories and files when all that was requested what a display of a handful. Is this a known issue? -- Grant Edwards grant.b.edwards Yow! I've got an IDEA!! at Why don't I STARE at you gmail.com so HARD, you forget your SOCIAL SECURITY NUMBER!! From gcgm-meld-list@m.gmane.org Tue Mar 5 18:01:21 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id C0240769A7 for ; Tue, 5 Mar 2013 18:01:21 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -1.554 X-Spam-Level: X-Spam-Status: No, score=-1.554 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FREEMAIL_FROM=0.001, NML_ADSP_CUSTOM_MED=0.9, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.556] autolearn=no Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vY94lgn-wxi5 for ; Tue, 5 Mar 2013 18:01:21 +0000 (UTC) Received: from plane.gmane.org (plane.gmane.org [80.91.229.3]) by restaurant.gnome.org (Postfix) with ESMTP id 6710976971 for ; Tue, 5 Mar 2013 18:01:21 +0000 (UTC) Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1UCwBG-00042J-UF for meld-list@gnome.org; Tue, 05 Mar 2013 19:01:38 +0100 Received: from dsl.comtrol.com ([64.122.56.22]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 05 Mar 2013 19:01:38 +0100 Received: from grant.b.edwards by dsl.comtrol.com with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 05 Mar 2013 19:01:38 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: meld-list@gnome.org From: Grant Edwards Subject: Re: Recnt update broke "meld ." Date: Tue, 5 Mar 2013 18:01:05 +0000 (UTC) Lines: 14 Message-ID: References: X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: dsl.comtrol.com User-Agent: slrn/1.0.1 (Linux) X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2013 18:01:21 -0000 On 2013-03-05, Grant Edwards wrote: > It seems that a recent upgrade broke the "meld ." operation. > > That command always used to diff only the files under the current > directory. Now it diffs the entire SVN repository. I've been thinking about this, and I think this same breakage happened once several years ago and was subsequenty fixed... -- Grant Edwards grant.b.edwards Yow! I just went below the at poverty line! gmail.com From kai.willadsen@gmail.com Tue Mar 5 19:37:56 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id BF49C76965 for ; Tue, 5 Mar 2013 19:37:56 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pVICb6EvLg6s for ; Tue, 5 Mar 2013 19:37:56 +0000 (UTC) Received: from mail-wi0-f182.google.com (mail-wi0-f182.google.com [209.85.212.182]) by restaurant.gnome.org (Postfix) with ESMTP id 2F313768DC for ; Tue, 5 Mar 2013 19:37:55 +0000 (UTC) Received: by mail-wi0-f182.google.com with SMTP id hi18so120579wib.15 for ; Tue, 05 Mar 2013 11:37:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=9OO+LX8DPbpeeoCTSkK9Wyogwpi+trH8G2uIbNju01k=; b=t9ewcHOUrAPbz3Q71o1EN5WMaG+mE/BPMaaMd+18Tlvk2oXisbr6mYXZkUQQFbMZwv JL+EpRVpJN+Ny1rrZvKwmoVsNYzyNsSg0t+lRNn2gL5YVd6NF2YDDNHMRbBIHgvtxj1x rL5cUqs2EmjABuIfe43nwNpOaFvFdPdMAFSUegsJubsxA0Z6mI3ksbrhcohoIcEuBHLc T7TOMFRbOMsQFUyvHX3p7ql6UD2C5PS9AF0PL4lYVZT7egr30hWy/Lcxr6jGzhunty2s M4ovg1fVDcdq/bkwasA/FQZ0YawsYrjFZ14lNq4E6W0F6ps4DyAc6WYI3a9icEV2jTuh TGhQ== MIME-Version: 1.0 X-Received: by 10.180.103.65 with SMTP id fu1mr21328041wib.4.1362512274105; Tue, 05 Mar 2013 11:37:54 -0800 (PST) Received: by 10.216.122.11 with HTTP; Tue, 5 Mar 2013 11:37:53 -0800 (PST) In-Reply-To: References: Date: Wed, 6 Mar 2013 05:37:53 +1000 Message-ID: Subject: Re: Recnt update broke "meld ." From: Kai Willadsen To: Grant Edwards Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2013 19:37:56 -0000 On 6 March 2013 02:55, Grant Edwards wrote: > It seems that a recent upgrade broke the "meld ." operation. > > That command always used to diff only the files under the current > directory. Now it diffs the entire SVN repository. For large > projects, this causes long delays and display of hundreds of unwanted > directories and files when all that was requested what a display of a > handful. > > Is this a known issue? Can you be more specific? What version of Meld are you using, and what version of SVN? cheers, Kai From gcgm-meld-list@m.gmane.org Tue Mar 5 19:50:17 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 0327976965 for ; Tue, 5 Mar 2013 19:50:17 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -1.554 X-Spam-Level: X-Spam-Status: No, score=-1.554 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FREEMAIL_FROM=0.001, NML_ADSP_CUSTOM_MED=0.9, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.556] autolearn=no Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id cK3cFTUJtczZ for ; Tue, 5 Mar 2013 19:50:07 +0000 (UTC) Received: from plane.gmane.org (plane.gmane.org [80.91.229.3]) by restaurant.gnome.org (Postfix) with ESMTP id 10E47768DC for ; Tue, 5 Mar 2013 19:50:06 +0000 (UTC) Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1UCxsW-0002xU-48 for meld-list@gnome.org; Tue, 05 Mar 2013 20:50:24 +0100 Received: from dsl.comtrol.com ([64.122.56.22]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 05 Mar 2013 20:50:24 +0100 Received: from grant.b.edwards by dsl.comtrol.com with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 05 Mar 2013 20:50:24 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: meld-list@gnome.org From: Grant Edwards Subject: Re: Recnt update broke "meld ." Date: Tue, 5 Mar 2013 19:49:48 +0000 (UTC) Lines: 32 Message-ID: References: X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: dsl.comtrol.com User-Agent: slrn/1.0.1 (Linux) X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2013 19:50:17 -0000 On 2013-03-05, Kai Willadsen wrote: > On 6 March 2013 02:55, Grant Edwards wrote: >> It seems that a recent upgrade broke the "meld ." operation. >> >> That command always used to diff only the files under the current >> directory. Now it diffs the entire SVN repository. For large >> projects, this causes long delays and display of hundreds of unwanted >> directories and files when all that was requested what a display of a >> handful. >> >> Is this a known issue? > > Can you be more specific? What version of Meld are you using, and what > version of SVN? Sorry, I should have included that in my original post... Meld 1.6.0 subversion 1.7.7 I'm running on a Gentoo IA32 system. I've been doing some digging, and it looks like the last time meld was updated was in October (6 months ago). Subversion was updated at the end of January (about 5 weeks ago). But, I only noticed this behavior this morning. I use meld daily, so I'm a little baffled as to what has happened... -- Grant Edwards grant.b.edwards Yow! ! Everybody out of at the GENETIC POOL! gmail.com From kai.willadsen@gmail.com Tue Mar 5 20:16:09 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 421CB769A7 for ; Tue, 5 Mar 2013 20:16:09 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jqZSwBPrf+7u for ; Tue, 5 Mar 2013 20:15:57 +0000 (UTC) Received: from mail-wg0-f49.google.com (mail-wg0-f49.google.com [74.125.82.49]) by restaurant.gnome.org (Postfix) with ESMTP id 8DD40768DC for ; Tue, 5 Mar 2013 20:15:57 +0000 (UTC) Received: by mail-wg0-f49.google.com with SMTP id 15so6231622wgd.28 for ; Tue, 05 Mar 2013 12:15:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=Ws7sg80N97IMfVZfaKU20gRziQaFlWCJbXU1t+5ibSk=; b=v92nwZPwiZeRyzaVD3ubJjd5TLzPjpCWh0LloQWLCPDLmT4TOnPMUxftLxA0/QDLel knmePEhZhauZwTld24ltbVKYFO2j/K91+SzXbr9xzwvixZXWPMl3xEzH5b15YgimeKq6 EllrgrmfkJv0jrI2KEQ6RXj1GOH59zzdfismmdiFoGGswUY2QvJWHNTskYS3CyT1a1gS 8XOVxajpPsbE+a3NI+Y4ytEOPMJYQCL81LkYwTli/tlOZOzcMEUpZk2dd9wcEAjz/jAV TmK1auZVjXLNJ3tqdQvZJAHLVf1Lo0fnHNG6FqJ5tLK4TICY22l4+gITRqYrIIKMk0RR aj3g== MIME-Version: 1.0 X-Received: by 10.194.176.165 with SMTP id cj5mr41952267wjc.37.1362514555473; Tue, 05 Mar 2013 12:15:55 -0800 (PST) Received: by 10.216.122.11 with HTTP; Tue, 5 Mar 2013 12:15:55 -0800 (PST) In-Reply-To: References: Date: Wed, 6 Mar 2013 06:15:55 +1000 Message-ID: Subject: Re: Recnt update broke "meld ." From: Kai Willadsen To: Grant Edwards Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2013 20:16:09 -0000 On 6 March 2013 05:49, Grant Edwards wrote: > On 2013-03-05, Kai Willadsen wrote: >> On 6 March 2013 02:55, Grant Edwards wrote: >>> It seems that a recent upgrade broke the "meld ." operation. >>> >>> That command always used to diff only the files under the current >>> directory. Now it diffs the entire SVN repository. For large >>> projects, this causes long delays and display of hundreds of unwanted >>> directories and files when all that was requested what a display of a >>> handful. >>> >>> Is this a known issue? >> >> Can you be more specific? What version of Meld are you using, and what >> version of SVN? > > Sorry, I should have included that in my original post... > > Meld 1.6.0 > subversion 1.7.7 > > I'm running on a Gentoo IA32 system. > > I've been doing some digging, and it looks like the last time meld was > updated was in October (6 months ago). Subversion was updated at the > end of January (about 5 weeks ago). But, I only noticed this behavior > this morning. I use meld daily, so I'm a little baffled as to what > has happened... Right. The changes in subversion 1.7 meant that we couldn't support subdirectory comparison in the same way as for subversion <1.6. Support for that was re-added in either Meld 1.7.0 or 1.7.1, I can't recall which. It may be possible to fix support in the 1.6 series, but I wouldn't count on it being a non-invasive change. Certainly the changes in Meld 1.7.x are far too disruptive to backport to the stable series. cheers, Kai From gcgm-meld-list@m.gmane.org Tue Mar 5 21:04:59 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 89957769F5 for ; Tue, 5 Mar 2013 21:04:59 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -1.554 X-Spam-Level: X-Spam-Status: No, score=-1.554 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FREEMAIL_FROM=0.001, NML_ADSP_CUSTOM_MED=0.9, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.556] autolearn=no Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id l9-HZZIt9RZ5 for ; Tue, 5 Mar 2013 21:04:59 +0000 (UTC) Received: from plane.gmane.org (plane.gmane.org [80.91.229.3]) by restaurant.gnome.org (Postfix) with ESMTP id 0D993769A7 for ; Tue, 5 Mar 2013 21:04:58 +0000 (UTC) Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1UCz2z-0002o2-58 for meld-list@gnome.org; Tue, 05 Mar 2013 22:05:17 +0100 Received: from dsl.comtrol.com ([64.122.56.22]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 05 Mar 2013 22:05:17 +0100 Received: from grant.b.edwards by dsl.comtrol.com with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 05 Mar 2013 22:05:17 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: meld-list@gnome.org From: Grant Edwards Subject: Re: Recnt update broke "meld ." Date: Tue, 5 Mar 2013 21:04:41 +0000 (UTC) Lines: 23 Message-ID: References: X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: dsl.comtrol.com User-Agent: slrn/1.0.1 (Linux) X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2013 21:04:59 -0000 On 2013-03-05, Kai Willadsen wrote: >> Meld 1.6.0 >> subversion 1.7.7 > Right. The changes in subversion 1.7 meant that we couldn't support > subdirectory comparison in the same way as for subversion <1.6. > Support for that was re-added in either Meld 1.7.0 or 1.7.1, I can't > recall which. OK, that's cool. I'll unmask 1.7.0 and try it. Apprently in the weeks since subversion got upgraded, I hadn't been working with repositories large enough to be noticable until today. > It may be possible to fix support in the 1.6 series, but I wouldn't > count on it being a non-invasive change. No worries. If it's going to work in 1.7.whatever that's fine. -- Grant Edwards grant.b.edwards Yow! HUMAN REPLICAS are at inserted into VATS of gmail.com NUTRITIONAL YEAST ... From gcgm-meld-list@m.gmane.org Tue Mar 5 21:09:46 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 29DCB769C2 for ; Tue, 5 Mar 2013 21:09:46 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -1.554 X-Spam-Level: X-Spam-Status: No, score=-1.554 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FREEMAIL_FROM=0.001, NML_ADSP_CUSTOM_MED=0.9, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.556] autolearn=no Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JpjyffPl+-o4 for ; Tue, 5 Mar 2013 21:09:45 +0000 (UTC) Received: from plane.gmane.org (plane.gmane.org [80.91.229.3]) by restaurant.gnome.org (Postfix) with ESMTP id 9D69C769A7 for ; Tue, 5 Mar 2013 21:09:45 +0000 (UTC) Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1UCz7c-00060r-Qe for meld-list@gnome.org; Tue, 05 Mar 2013 22:10:04 +0100 Received: from dsl.comtrol.com ([64.122.56.22]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 05 Mar 2013 22:10:04 +0100 Received: from grant.b.edwards by dsl.comtrol.com with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 05 Mar 2013 22:10:04 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: meld-list@gnome.org From: Grant Edwards Subject: Re: Recnt update broke "meld ." Date: Tue, 5 Mar 2013 21:08:16 +0000 (UTC) Lines: 20 Message-ID: References: X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: dsl.comtrol.com User-Agent: slrn/1.0.1 (Linux) X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Mar 2013 21:09:46 -0000 On 2013-03-05, Grant Edwards wrote: > On 2013-03-05, Kai Willadsen wrote: > >>> Meld 1.6.0 >>> subversion 1.7.7 > >> Right. The changes in subversion 1.7 meant that we couldn't support >> subdirectory comparison in the same way as for subversion <1.6. >> Support for that was re-added in either Meld 1.7.0 or 1.7.1, I can't >> recall which. > > OK, that's cool. I'll unmask 1.7.0 and try it. It looks like "meld ." is working as expected with 1.7.0, so sorry for the fuss... -- Grant Edwards grant.b.edwards Yow! Let's all show human at CONCERN for REVERAND MOON's gmail.com legal difficulties!! From pedro.pedruzzi@gmail.com Wed Mar 6 21:04:48 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 12498769C8 for ; Wed, 6 Mar 2013 21:04:48 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yGNwXl++-eOL for ; Wed, 6 Mar 2013 21:04:43 +0000 (UTC) Received: from mail-wg0-f52.google.com (mail-wg0-f52.google.com [74.125.82.52]) by restaurant.gnome.org (Postfix) with ESMTP id F37C7760AA for ; Wed, 6 Mar 2013 21:04:42 +0000 (UTC) Received: by mail-wg0-f52.google.com with SMTP id 12so8245410wgh.19 for ; Wed, 06 Mar 2013 13:04:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=ZBG4EjGxWHEq7A+CBP9xPYoUtaWDXWTCg+A9gpxC4u4=; b=dknK2L5DCbZKpb22rv+qU6uGnN85fw1W3x2PJ9L5z44nylXMpEo6ICxUzcgKQRigNp Mzo8UKcKgrAiB3oOYrXoTO5UTajIRcyxM4sjYvCwmaEvsu1KHTt+rilvbOdZoJy54lHq 73IHpA7DjdEcVO5cL8RiSM9DW0q2yxBdx+VTKVunD1AldCYXDmiZtzKyN4EolwNIrbbs fwTrdgaLpZgAGCKLzpqayORaHBgilma1nqhZnR5bKYbQ6dZ4sGthg2otfAaXW4Uxrrf4 OfTQKd9GY4+zQacATYzebaF7smuQKu0qYiJlilZT9KlK5CtliN+jjGOueJKWGLtSVMOo em9w== MIME-Version: 1.0 X-Received: by 10.194.63.109 with SMTP id f13mr50232668wjs.11.1362603880803; Wed, 06 Mar 2013 13:04:40 -0800 (PST) Received: by 10.227.39.68 with HTTP; Wed, 6 Mar 2013 13:04:40 -0800 (PST) In-Reply-To: References: Date: Wed, 6 Mar 2013 18:04:40 -0300 Message-ID: Subject: Re: "static/fixed" mode on file diff view From: Pedro Pedruzzi To: Kai Willadsen Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Mar 2013 21:04:48 -0000 On Fri, Mar 1, 2013 at 5:49 PM, Kai Willadsen wrote: > On 26 February 2013 06:58, Pedro Pedruzzi wrote: >> Hello, everyone! >> >> I'm a happy meld user and I've just joined this list because I have >> some improvement ideas I'd like to share, discuss and help implement. >> >> The current visual highlighting of matching chunks is awesome. But the >> scrolling can get a little confusing to use because it lacks >> one-to-one alignment between lines in the panes. >> >> I'd like to experiment adding an option to make the diff view >> scrolling fixed between panes. I'd have to add vertical spacing in the >> panes to fill the gaps (can be done with "null" lines), so that >> identical lines are always aligned (regardless of the scrolling >> position) and so are matching chunks. >> >> What do you guys think of this idea? > > Plenty of people have requested this before, and I'm pretty sure > there's a bug somewhere. It would be nice to have, but it's not all > that easy to add. > >> I'd appreciate some guidance on how this could be hacked in the code base. > > It will be difficult to know what the best approach is until you're > half way through. There are two basic options that come to mind: add > extra linebreaks into the buffer, but make sure to account for them > whenever handling text; or try to get the textview to do the extra > padding for you. Both are probably broken in different ways (e.g., > line wrapping). > > For the first option, Meld has a strong assumption that the textbuffer > isn't going to lie to us about line numbers. We assume that line 7 in > our comparison will be line 7 in the buffer and vice versa. Fixing > this would be a big undertaking, and would have all sorts of edge > cases, but if done properly would be very worthwhile. > > The second option is to get the gtk.TextView to artificially inflate > the last line of each misaligned chunk. This *should* be significantly > easier, but not trivial to do properly. Basically, you'd create a tag > per chunk and per pane, and iterate over chunks, checking to see > whether their ending text iters y-locations match. If not, adjust the > relevant tag's pixels-below-lines & pixels-below-lines-set properties > to make them match. The hard part comes when the buffer changes and > the tags need to be cleaned, adjusted, revalidated, etc. As a > proof-of-concept, the first part could be done in > FileDiff.on_textview_expose() I think, but in the long term I think > doing the tag manipulation in there would be too slow. I haven't tried > this, but I think it should work. > > Anyway, it would be cool to have this option, so if you have any > questions, feel free to ask. Thanks for the pointers. I've came up with this proof-of-concept based on the second option. The tags isn't getting updated on buffer change yet. This is just to demonstrate how would it look and feel. Please, tell me what you think. I have some questions: 1. Where is a good place to do the tag creation? I tried somewhere in the constructor but it seems that the linediffer was not ready to iterate over changes yet. 2. How about 3 way filediffs? I would need to iterate over chunks on the 3 panes. The patch is also available on github if you prefer: https://github.com/pedrox/meld/commit/9bc4113b8b128c9053b7cb3509a6b4437049a47b Regards, Pedro Pedruzzi -- >8 -- Subject: [PATCH] Proof-of-concept: Make filediff panes aligned and with the same height by adding extra padding --- meld/filediff.py | 41 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/meld/filediff.py b/meld/filediff.py index 36220c1..587d016 100644 --- a/meld/filediff.py +++ b/meld/filediff.py @@ -212,9 +212,14 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component): self._cached_match = CachedSequenceMatcher() self.anim_source_id = [None for buf in self.textbuffer] self.animating_chunks = [[] for buf in self.textbuffer] + self._nopad = 0 for buf in self.textbuffer: buf.create_tag("inline") + # self.linediffer.single_changes(0) is still empty at this point. + for change in self.linediffer.single_changes(0): + print(change) + actions = ( ("MakePatch", None, _("Format as patch..."), None, _("Create a patch using differences between files"), self.make_patch), ("PrevConflict", None, _("Previous conflict"), "I", _("Go to the previous conflict"), lambda x: self.on_next_conflict(gtk.gdk.SCROLL_UP)), @@ -1271,6 +1276,28 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component): self.text_filters = [] self.refresh_comparison() + def xxx_init_paddings(self): + if self._nopad: + return + + sumdy = 0 + + for change in self.linediffer.single_changes(0): + self._nopad = 1 + dy = self.textview[0].get_y_for_line_num(change[2] - 1) - self.textview[1].get_y_for_line_num(change[4] - 1) - sumdy + sumdy = sumdy + dy + + if dy >= 0: + panepad = 1 + padline = change[4] - 1 + else: + panepad = 0 + padline = change[2] - 1 + dy = -dy + + tag = self.textbuffer[panepad].create_tag(**{ "pixels-below-lines": dy, "pixels-below-lines-set": True }) + self.textbuffer[panepad].apply_tag(tag, self.textbuffer[panepad].get_iter_at_line(padline), self.textbuffer[panepad].get_iter_at_line(padline + 1)) + def on_textview_expose_event(self, textview, event): if self.num_panes == 1: return @@ -1299,6 +1326,8 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component): context.clip() context.set_line_width(1.0) + self.xxx_init_paddings() + for change in self.linediffer.single_changes(pane, bounds): ypos0 = textview.get_y_for_line_num(change[1]) - visible.y ypos1 = textview.get_y_for_line_num(change[2]) - visible.y @@ -1551,7 +1580,14 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component): if self._sync_vscroll_lock: return - if not self._scroll_lock and (self.keymask & MASK_SHIFT) == 0: + # scrollbar influence 0->1->2 or 0<-1->2 or 0<-1<-2 + scrollbar_influence = ((1, 2), (0, 2), (1, 0)) + + if 1: # FIXME: aligned mode + # all the scrollbars get the same raw adjustment + for i in scrollbar_influence[master][:self.num_panes - 1]: + self.scrolledwindow[i].get_vadjustment().set_value(adjustment.value) + elif not self._scroll_lock and (self.keymask & MASK_SHIFT) == 0: self._sync_vscroll_lock = True syncpoint = 0.5 @@ -1561,9 +1597,6 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component): line_y, height = self.textview[master].get_line_yrange(it) line = it.get_line() + ((master_y-line_y)/height) - # scrollbar influence 0->1->2 or 0<-1->2 or 0<-1<-2 - scrollbar_influence = ((1, 2), (0, 2), (1, 0)) - for i in scrollbar_influence[master][:self.num_panes - 1]: adj = self.scrolledwindow[i].get_vadjustment() mbegin, mend = 0, self.textbuffer[master].get_line_count() -- 1.8.2.rc1 From louis@obsidian.com.au Thu Mar 7 02:19:33 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id BB19E76A20 for ; Thu, 7 Mar 2013 02:19:33 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -4.199 X-Spam-Level: X-Spam-Status: No, score=-4.199 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ITPKVrYYd4Mt for ; Thu, 7 Mar 2013 02:19:32 +0000 (UTC) Received: from na3sys009aog108.obsmtp.com (na3sys009aog108.obsmtp.com [74.125.149.199]) by restaurant.gnome.org (Postfix) with SMTP id 96FCC769CD for ; Thu, 7 Mar 2013 02:19:31 +0000 (UTC) Received: from mail-gg0-f200.google.com ([209.85.161.200]) (using TLSv1) by na3sys009aob108.postini.com ([74.125.148.12]) with SMTP ID DSNKUTf5MlUeJ+oRABe5LV+MNPhlDDILghhj@postini.com; Wed, 06 Mar 2013 18:19:32 PST Received: by mail-gg0-f200.google.com with SMTP id k6so12303905ggd.7 for ; Wed, 06 Mar 2013 18:19:29 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:x-received:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type:x-gm-message-state; bh=U5+ongEJo49F6MbkR4RiQz5/BPipPFt8BuK8YG6JfOk=; b=X5u2phnoWJ2oIJ5Sz2hO+oljLEhT1SAiQ74nvLuOA4g14zOPVSYtBpW6ZwShl8cuiS kLG2aI3810IMCU9D3LmyQondCt1DZi6icz8G7OpHbnEV0RRzgVIvmCYskEpuR/Utz9Un DRQL1XGbdU9QMbo3UzEf9yrkGyi2wanoyd+zACYHrlIPQZI1v54xNV3Fipr75mzetJqw beLgMf20YtojMVa8AEEQDGOZuL8Nn31slHqOSIT4+Pf5dyaM2vkrlyFOOosh83EX6SCC 4XMZ1VLKCxQqa/PySRYYftAHHltfv1xahvjRC32My5CDc3uZeJL02Bu7loF9yRFeRBVn 3YEw== X-Received: by 10.52.93.235 with SMTP id cx11mr10439977vdb.51.1362622769416; Wed, 06 Mar 2013 18:19:29 -0800 (PST) X-Received: by 10.52.93.235 with SMTP id cx11mr10439973vdb.51.1362622769319; Wed, 06 Mar 2013 18:19:29 -0800 (PST) MIME-Version: 1.0 Received: by 10.58.189.164 with HTTP; Wed, 6 Mar 2013 18:19:09 -0800 (PST) In-Reply-To: References: From: Louis des Landes Date: Thu, 7 Mar 2013 13:19:09 +1100 Message-ID: Subject: Re: Automatic 3 way merge for conflicts To: Kai Willadsen Content-Type: multipart/alternative; boundary=20cf307f33aa20e90604d74c56cd X-Gm-Message-State: ALoCoQmOFOe9ChIO1FE7/bKNiOqsXV4hUE/OMhg8Kxo6QajArvWG1BvJhGUPsWzIPLsZAS6visKnji9VdOQBbhNX/J3NOjzYYKl2GfXBhbcdeRmL3Rd3734zhv7WjvqaRQl0zH+YUS/N7KmJ2GB1bmAeKBlSrEiG7w== Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Mar 2013 02:19:33 -0000 --20cf307f33aa20e90604d74c56cd Content-Type: text/plain; charset=ISO-8859-1 Apologies for leaving this for so long... I've updated the bug report yesterday, with updated patches which simply add the ability to do a 3 way diff using existing MERGED output from the VCS. (ie no auto-merge) A re-review would be appreciated. The SVN stuff may have to wait though. I've commented on the review, specifically my approach to getting filenames was broken anyway, and instead I'd have to do a glob for filename.r* and grab the last ones, not particuarly nice. To save time: https://bugzilla.gnome.org/show_bug.cgi?id=690469 > This would mean that even if the VCS isn't configured for (or doesn't > > support) diff3 output, we still have a way of showing the BASE. > > Right, but... we can do this now. It's just about whether we want to > trust the VC's merge, or our merge. I personally would prefer to trust > the VC's, even at the cost of not being able to show BASE. > > I'm willing to be persuaded out of this position, but it might be > difficult. In fact, it would probably be easier to just convince > various VCs to give us diff3s. :) > Do you have a way to convince git/svn to give us diff3s besides editing config? (I coudn't find a way from command line only) it's possible with bzr (bzr remerge --show-base) >> Fair enough. BTW, it would be awesome to see a way to run this new mode > >> from > >> command line so that it can be used with git mergetool etc. > >> Something like: > >> meld LOCAL BASE REMOTE --output=MERGED --output_is_already_merged_switch > >> or > >> meld LOCAL MERGED REMOTE --base=BASE > >> And then: > >> 1) show regular 3-way diff if MERGED contains no conflict markers > >> 2) alter MERGED content and show 3-way diff if MERGED contains diff3 > >> markers (maybe, but not necessarily, offer switching to auto-merge) > >> 3) show regular 3-way diff if MERGED contains non-diff3 conflict > >> markers and offer switching to auto-merge > > > > > > I think doing the above should have the same effect as above - Show > MERGED, > > but have the bar prompt to do a 're-merge' using auto-merge if you want. > > As in the other response, I'll try to write something up as to how I > think these various scenarios should play out. > > > I like the second command line version better. > > As do I... though in reality I'm scared of command-line options. Once > added, they pretty much become ABI, and we (or, more recently, I) get > to live with any mistakes encoded in them ~forever. Any new thoughts on this? Cheers, Louis. --20cf307f33aa20e90604d74c56cd Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Apologies for leaving this for so long...

I've updat= ed the bug report yesterday, with updated patches which simply add the abil= ity to do a 3 way diff using existing MERGED output from the VCS. (ie no au= to-merge)

A re-review would be appreciated.
The SVN stu= ff may have to wait though. I've commented on the review, specifically = my approach to getting filenames was broken anyway, and instead I'd hav= e to do a glob for filename.r* and grab the last ones, not particuarly nice= .

To save time:

> This would mean that even if the VCS isn't configured for (or does= n't
> support) diff3 output, we still have a way of showing the BASE.

Right, but... we can do this now. It's just about whether we want= to
trust the VC's merge, or our merge. I personally would prefer to trust<= br> the VC's, even at the cost of not being able to show BASE.

I'm willing to be persuaded out of this position, but it might be
difficult. In fact, it would probably be easier to just convince
various VCs to give us diff3s. :)
Do you have a way to= convince git/svn to give us diff3s besides editing config? (I coudn't = find a way from command line only)
it's possible with bzr (bz= r remerge --show-base)=A0

>> Fair enough. BTW, it would be awesome to see a way to run thi= s new mode
>> from
>> command line so that it can be used with git mergetool etc.
>> Something like:
>> meld LOCAL BASE REMOTE --output=3DMERGED --output_is_already_merge= d_switch
>> or
>> meld LOCAL MERGED REMOTE --base=3DBASE
>> And then:
>> 1) show regular 3-way diff if MERGED contains no conflict markers<= br> >> 2) alter MERGED content and show 3-way diff if MERGED contains dif= f3
>> markers (maybe, but not necessarily, offer switching to auto-merge= )
>> 3) show regular 3-way diff if MERGED contains non-diff3 conflict >> markers and offer switching to auto-merge
>
>
> I think doing the above should have the same effect as above - Show ME= RGED,
> but have the bar prompt to do a 're-merge' using auto-merge if= you want.

As in the other response, I'll try to write something up as to ho= w I
think these various scenarios should play out.

> I like the second command line version better.

As do I... though in reality I'm scared of command-line options. = Once
added, they pretty much become ABI, and we (or, more recently, I) get
to live with any mistakes encoded in them ~forever.
Any ne= w thoughts on this?=A0
=A0
Cheers,
Louis.
--20cf307f33aa20e90604d74c56cd-- From kai.willadsen@gmail.com Mon Mar 11 21:03:31 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id EBA0D76CA6 for ; Mon, 11 Mar 2013 21:03:31 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4tVhU3nyQ0zH for ; Mon, 11 Mar 2013 21:03:21 +0000 (UTC) Received: from mail-we0-f174.google.com (mail-we0-f174.google.com [74.125.82.174]) by restaurant.gnome.org (Postfix) with ESMTP id B986976CA5 for ; Mon, 11 Mar 2013 21:03:20 +0000 (UTC) Received: by mail-we0-f174.google.com with SMTP id r6so3971147wey.33 for ; Mon, 11 Mar 2013 14:03:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=l6tcGHaCWFWZUBcvkU1gjBh9mUtj07axM9qvfW+9LSs=; b=kDLznutsGHkidcWVqfo/QhMmR8OI44WDjfltkrUPXrhZAr/v18GzA9wItNThcBTkpy ANO/TxRT9wIVW0SOtcy1Dg4zI/4auubDH/FYYNrq8gt9LBMmdHSE9OGYWbxG7Vu7yK+u ASx25D492zEU7MjImQZ49KqJaepK835MDRXeK9I2UOMlCq5tPSQrN5a/m36qBG/3odEf bO+ie63jnV11gkVW25VgD1ErxZqGn2Mw7nnUg7tVoa0c+2S3gWvTOADkDHYnv9DCn41B HC+k44ZQu1uXpgGWdjK+sc5PjAmaeksa47UnCod/PdR2eAyKLLburNB9BO2KMl60NVTI 1zDA== MIME-Version: 1.0 X-Received: by 10.180.74.131 with SMTP id t3mr15415265wiv.23.1363035798633; Mon, 11 Mar 2013 14:03:18 -0700 (PDT) Received: by 10.216.122.11 with HTTP; Mon, 11 Mar 2013 14:03:18 -0700 (PDT) In-Reply-To: References: Date: Tue, 12 Mar 2013 07:03:18 +1000 Message-ID: Subject: Re: Meld 1.7.1 released From: Kai Willadsen To: Keegan Witt Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Mar 2013 21:03:32 -0000 On 3 March 2013 05:11, Keegan Witt wrote: > Not that I know of, but Perica hasn't posted the source for Portable Python > yet, so I can't be sure. There does seem to be a difference between it and > the regular Python installation. The portable version has the busy cursor, > as described before, but the regular installation seems to rapdily flash > between the busy and normal cursor. I've just pushed a couple of Windows fixes, one for translations and one for multiprocessing issues. I'm testing with upstream python and the all-in-one installer for pygtk, so I'd be interested to know what, if any, effect that second one has for your Portable Python packages. cheers, Kai From keeganwitt@gmail.com Mon Mar 11 23:10:18 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id C01D876CCA for ; Mon, 11 Mar 2013 23:10:18 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.698 X-Spam-Level: X-Spam-Status: No, score=-2.698 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id znVuWs+GW7RD for ; Mon, 11 Mar 2013 23:10:18 +0000 (UTC) Received: from mail-ie0-f171.google.com (mail-ie0-f171.google.com [209.85.223.171]) by restaurant.gnome.org (Postfix) with ESMTP id EC9D676CC9 for ; Mon, 11 Mar 2013 23:10:17 +0000 (UTC) Received: by mail-ie0-f171.google.com with SMTP id 10so5598387ied.30 for ; Mon, 11 Mar 2013 16:10:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:mime-version:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=O+Yy7qgsFnT7I/OunlkVFuLbRSHGri0nScLQa1QdTJE=; b=WWfYMrmKo3SQPmbQ4ZwSMHs+uEmR7XcM1nmzJ/VO3yydDX1zVTTdFde/LbSbYnYGIa Z1/xVmRqr4uThe/s6+QAhyzFfhC6wJfrBvlL/2Tw3M+x8y6iPG1/IGQq6D01wxqJ2gSf XH4kYlds7Z3BbXpw86sZU/YP4yLBXXZyNbMxnY3ljBvVZ/nXOQe9y/awjfNUemEzUQqp chvPJtvcvSbhhpd8sIYj6mHdpeEu70L/z0hWWdkyo42EQd4ydpoHchiqqipgkc8y8QJ6 NkcZuI6PcOQEs8RHA7sJ8gUXOvfV1WkFo0ZQCpOTzT4wF3uEzWAR7ZObyHWBqnPlXUe8 6MSg== X-Received: by 10.50.88.233 with SMTP id bj9mr9481020igb.55.1363043416364; Mon, 11 Mar 2013 16:10:16 -0700 (PDT) MIME-Version: 1.0 Received: by 10.50.42.169 with HTTP; Mon, 11 Mar 2013 16:09:56 -0700 (PDT) In-Reply-To: References: From: Keegan Witt Date: Mon, 11 Mar 2013 19:09:56 -0400 Message-ID: Subject: Re: Meld 1.7.1 released To: Kai Willadsen Content-Type: multipart/alternative; boundary=e89a8f23440fa5603f04d7ae4625 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Mar 2013 23:10:18 -0000 --e89a8f23440fa5603f04d7ae4625 Content-Type: text/plain; charset=UTF-8 I've not done a bunch of testing, but just from playing with it a few minutes, this seems like a substantial improvement. It also seems to have resolved the busy cursor issue we had discussed previously. Here's some pre-release files for people to test if they wish. http://dl.dropbox.com/u/4768521/meld-1.7.2.0.exe http://dl.dropbox.com/u/4768521/meld-1.7.2.0.zip -Keegan --e89a8f23440fa5603f04d7ae4625 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
I've not done a bunch of testing, but just from p= laying with it a few minutes, this seems like a substantial improvement.=C2= =A0 It also seems to have resolved the busy cursor issue we had discussed p= reviously.
Here's some pre-release files for people to test if they wis= h.
http://dl.dropbox.com/u/= 4768521/meld-1.7.2.0.zip

-Keegan
--e89a8f23440fa5603f04d7ae4625-- From keeganwitt@gmail.com Tue Mar 12 01:51:49 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 267A6769E3 for ; Tue, 12 Mar 2013 01:51:49 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.698 X-Spam-Level: X-Spam-Status: No, score=-2.698 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id we39DTYkr1hC for ; Tue, 12 Mar 2013 01:51:48 +0000 (UTC) Received: from mail-ie0-f175.google.com (mail-ie0-f175.google.com [209.85.223.175]) by restaurant.gnome.org (Postfix) with ESMTP id 935AE76994 for ; Tue, 12 Mar 2013 01:51:48 +0000 (UTC) Received: by mail-ie0-f175.google.com with SMTP id c12so5594900ieb.6 for ; Mon, 11 Mar 2013 18:51:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:mime-version:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=zyU7ynjnTV4HzPF/Aktgs468xK9cmeQ5x5eGHTJYoWA=; b=UFpopMFeXCdHRpRLHOMpsg+mUBuBnwNp6bl8PbZFhBnbnTPdp9dOgf+BIGVZhqpnoN yHS/xS5PIdK8Vb5A40w1PEuRqYx8jBDjLu+IlUkD7ZCuFbJqPjyIqbe3DDme1xKMCeFT WdwEZWJtsRzZR/lVfrTw03ZsPZXOTTBj719qsWTQk3ic1ATUB4rqylyeWLe/eFSmM4YB AYT5fHqxStlwzLWZXfY5t1qFYphS1yot6CIdC4gIbeJVZf24zdor3MEbd0hvFoGZcAqv q18kH6SiJbbpW26SbTOvp5EXAFN0kne2newwCSxCvrWRC6eOMvLwZ82gDXVkZspjWkca 7SOg== X-Received: by 10.50.213.41 with SMTP id np9mr9618117igc.79.1363053106743; Mon, 11 Mar 2013 18:51:46 -0700 (PDT) MIME-Version: 1.0 Received: by 10.50.42.169 with HTTP; Mon, 11 Mar 2013 18:51:26 -0700 (PDT) In-Reply-To: References: From: Keegan Witt Date: Mon, 11 Mar 2013 21:51:26 -0400 Message-ID: Subject: Re: Meld 1.7.1 released To: Kai Willadsen Content-Type: multipart/alternative; boundary=f46d04462eb63cd42504d7b088c0 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Mar 2013 01:51:49 -0000 --f46d04462eb63cd42504d7b088c0 Content-Type: text/plain; charset=UTF-8 For what it's worth, someone was asking about high CPU usage on my blog, and this patch seemed to resolve his issue as well (he tested the files I linked in my last post). -Keegan --f46d04462eb63cd42504d7b088c0 Content-Type: text/html; charset=UTF-8
For what it's worth, someone was asking about high CPU usage on my blog, and this patch seemed to resolve his issue as well (he tested the files I linked in my last post).

-Keegan
--f46d04462eb63cd42504d7b088c0-- From ezquerra@gmail.com Tue Mar 12 09:28:47 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 33AF076CD8 for ; Tue, 12 Mar 2013 09:28:47 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LFW3f4FGZrXy for ; Tue, 12 Mar 2013 09:28:46 +0000 (UTC) Received: from mail-ve0-f174.google.com (mail-ve0-f174.google.com [209.85.128.174]) by restaurant.gnome.org (Postfix) with ESMTP id B068476CAE for ; Tue, 12 Mar 2013 09:28:46 +0000 (UTC) Received: by mail-ve0-f174.google.com with SMTP id pb11so3344171veb.33 for ; Tue, 12 Mar 2013 02:28:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=/nRZ/q/p+Wr4ZQF0Yyf2MBU21MydkyccgHK1gSY3nZE=; b=P2OENA+fEFI7gDt3chSzvb4vEpcZJA8sLcadzz5CxSitWyodAOacf4P7C+5qF5Jhn2 M2/wxxoqNXlvWKDHB0kZC7UVxjvz9ed9eUv5iNIoaFJCvD5C3kYugXFDhosnbRJ2MgMj KecfQ19dzGeKmzsXTBElhxoj3WUu9kfJ8T5ONC5tW7jITHYLjzPc+G2AjlKKQC4ZVqTa YE1hrMlpms5TVT4st6IBaPkEHLil7BFkKmeIjAAG4lE8nOtv5NTSD2oXMSLxIu2+y1uP d5iajl5woNQKiJgELbaEl7exND4JCuFDlNBIms6mBv8FUUSj/h4tFWdOOulEtvDKGckC d9/Q== MIME-Version: 1.0 X-Received: by 10.52.64.208 with SMTP id q16mr5409313vds.93.1363080524796; Tue, 12 Mar 2013 02:28:44 -0700 (PDT) Sender: ezquerra@gmail.com Received: by 10.58.54.1 with HTTP; Tue, 12 Mar 2013 02:28:44 -0700 (PDT) In-Reply-To: References: Date: Tue, 12 Mar 2013 10:28:44 +0100 X-Google-Sender-Auth: pIEZJk1s-CjkM4bG6iZL6-vHfrs Message-ID: Subject: Re: Meld 1.7.1 released From: Angel Ezquerra To: Keegan Witt Content-Type: text/plain; charset=ISO-8859-1 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Mar 2013 09:28:47 -0000 On Tue, Mar 12, 2013 at 2:51 AM, Keegan Witt wrote: > For what it's worth, someone was asking about high CPU usage on my blog, and > this patch seemed to resolve his issue as well (he tested the files I linked > in my last post). > > -Keegan I can confirm that this version works much better than the previous 1.7.1 version. I no longer see any "waiting cursors" and everything seems fast and appears to work well. Nice! Angel From kai.willadsen@gmail.com Tue Mar 12 21:51:19 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 7BD9976A6D for ; Tue, 12 Mar 2013 21:51:19 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id fc+Jsj6npxbg for ; Tue, 12 Mar 2013 21:51:18 +0000 (UTC) Received: from mail-wi0-f180.google.com (mail-wi0-f180.google.com [209.85.212.180]) by restaurant.gnome.org (Postfix) with ESMTP id 489AA76CCA for ; Tue, 12 Mar 2013 21:51:17 +0000 (UTC) Received: by mail-wi0-f180.google.com with SMTP id hi8so278156wib.7 for ; Tue, 12 Mar 2013 14:51:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=fgxbQQcVNxIU5YYMt767J5s4JA/NnF1lXRPJIPdSwH8=; b=LVO0u4/B3f7cn5AkzJPaAqwu3PTwkO5aP+E9ZfJ+wABmv/pF4fLvjO6b2It3sOF0gf 8qK/DN7JGf0+tPWO7xBbxyA0RfTxQYxqNzsQAGc3aAQGj9CMnzNjmY0DKgzMoOSnt10U iNraBthYn8BRN0oiawerGvxYsbQyVHNstQEpI0TFwLcjKJNapKpPLTcdyhCh41yRFxsk 9fEglntGanjfwVey7lvdPgbQA/1DKLn56RldqNL5EcS4i8/xzGxoe/MvRJejrzB2uIoL F0U0nz5MCe22fKsS/Hyabw5x8yHoMSZ2eru8zVKshvRI49Z3V5WQsuTHSoFDZZifmU5c 65Tw== MIME-Version: 1.0 X-Received: by 10.194.92.231 with SMTP id cp7mr29872587wjb.19.1363125076059; Tue, 12 Mar 2013 14:51:16 -0700 (PDT) Received: by 10.216.122.11 with HTTP; Tue, 12 Mar 2013 14:51:15 -0700 (PDT) In-Reply-To: References: Date: Wed, 13 Mar 2013 07:51:15 +1000 Message-ID: Subject: Re: Automatic 3 way merge for conflicts From: Kai Willadsen To: Louis des Landes Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Mar 2013 21:51:19 -0000 On 7 March 2013 12:19, Louis des Landes wrote: > Apologies for leaving this for so long... That's all good. I would have been hesitant to push this into 1.7.1 anyway. > I've updated the bug report yesterday, with updated patches which simply add > the ability to do a 3 way diff using existing MERGED output from the VCS. > (ie no auto-merge) I've pushed these patches and made a few minor changes, e.g., to still have the non-auto-merge case work properly with an output file. So basically most of this is done! > A re-review would be appreciated. > The SVN stuff may have to wait though. I've commented on the review, > specifically my approach to getting filenames was broken anyway, and instead > I'd have to do a glob for filename.r* and grab the last ones, not > particuarly nice. Yeah, it's awful that we would have to do this... I haven't spent any time looking to see whether there's a nicer way, but grabbing the highest r-numbers is just really, really dodgy. On the other hand, if SVN gives us nothing else, then I guess that's what we do. > To save time: > https://bugzilla.gnome.org/show_bug.cgi?id=690469 > >> > This would mean that even if the VCS isn't configured for (or doesn't >> > support) diff3 output, we still have a way of showing the BASE. >> >> Right, but... we can do this now. It's just about whether we want to >> trust the VC's merge, or our merge. I personally would prefer to trust >> the VC's, even at the cost of not being able to show BASE. >> >> I'm willing to be persuaded out of this position, but it might be >> difficult. In fact, it would probably be easier to just convince >> various VCs to give us diff3s. :) > > Do you have a way to convince git/svn to give us diff3s besides editing > config? (I coudn't find a way from command line only) > it's possible with bzr (bzr remerge --show-base) I believe you should be able to pass git -c merge.conflictstyle=diff3 (or similar) while triggering a re-merge, though I haven't tested. Either way, this doesn't need to be fixed immediately, and we can reconsider what the default should be before the next release. >> >> Fair enough. BTW, it would be awesome to see a way to run this new mode >> >> from >> >> command line so that it can be used with git mergetool etc. >> >> Something like: >> >> meld LOCAL BASE REMOTE --output=MERGED >> >> --output_is_already_merged_switch >> >> or >> >> meld LOCAL MERGED REMOTE --base=BASE >> >> And then: >> >> 1) show regular 3-way diff if MERGED contains no conflict markers >> >> 2) alter MERGED content and show 3-way diff if MERGED contains diff3 >> >> markers (maybe, but not necessarily, offer switching to auto-merge) >> >> 3) show regular 3-way diff if MERGED contains non-diff3 conflict >> >> markers and offer switching to auto-merge >> > >> > >> > I think doing the above should have the same effect as above - Show >> > MERGED, >> > but have the bar prompt to do a 're-merge' using auto-merge if you want. >> >> As in the other response, I'll try to write something up as to how I >> think these various scenarios should play out. >> >> > I like the second command line version better. >> >> As do I... though in reality I'm scared of command-line options. Once >> added, they pretty much become ABI, and we (or, more recently, I) get >> to live with any mistakes encoded in them ~forever. > > Any new thoughts on this? I really haven't had the time to do this, no. Since we lack any handling for diff-3 conflict markers, I don't know that it's a big deal. As far as I can see, we can do exactly what was outlined above without any additional command-line parameters... is that likely to break any external tools or anything? For now, I'd like to look into adding an infobar prompt to suggest 'Auto-merge' or 'Use existing merge' as options when we launch a 3-way diff on a conflict. cheers, Kai From dileepaha@gmail.com Wed Mar 13 10:22:29 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 384F376CCA for ; Wed, 13 Mar 2013 10:22:29 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.698 X-Spam-Level: X-Spam-Status: No, score=-2.698 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Er6DNTugrSx1 for ; Wed, 13 Mar 2013 10:22:28 +0000 (UTC) Received: from mail-ie0-f171.google.com (mail-ie0-f171.google.com [209.85.223.171]) by restaurant.gnome.org (Postfix) with ESMTP id F20BD7631D for ; Wed, 13 Mar 2013 10:22:27 +0000 (UTC) Received: by mail-ie0-f171.google.com with SMTP id 10so1173051ied.2 for ; Wed, 13 Mar 2013 03:22:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:mime-version:from:date:message-id:subject:to :content-type; bh=2RhFWSLktRinf1VF4+nCx5zoPE1oLp37zA7IQC58oKg=; b=QEJqRxXSY3ZYd60dpEvuGLZeaqBU63t++zn9ofaxGJ+mEshiT0BmtZK69uOJCrYipR IlEHVpZ5b5mLiIcemstnYguwg+BbbYSUL/fKqNXxr6c4rkNBICzdD57dd9AjgIKYhIMp /dLMxiGOhoHNJ4od0iKlRnR0GljS4FctOd2I08U1M0lmPlDWXk2vJF02/lvgBLwe74eH jiUOvfqfCHlCAncnPzYUOjsjRrm9GRuHuqzivEJW4OsegKGOk1tLqfT/YV2s2gs8ovXZ rvzxLABCKBTS4eyIQHagfsKmwFBocSKawDEVtf+kE64pOXJ9ba6CQmORl65Ze5CFLui0 WZ3g== X-Received: by 10.42.98.76 with SMTP id r12mr15562165icn.10.1363170146304; Wed, 13 Mar 2013 03:22:26 -0700 (PDT) MIME-Version: 1.0 Received: by 10.50.70.9 with HTTP; Wed, 13 Mar 2013 03:21:46 -0700 (PDT) From: Dilip S Date: Wed, 13 Mar 2013 15:51:46 +0530 Message-ID: Subject: Not able to invoke newly built meld 1.7.0 To: meld-list@gnome.org Content-Type: multipart/alternative; boundary=90e6ba614a9656cc0504d7cbc81a X-Mailman-Approved-At: Thu, 14 Mar 2013 08:02:38 +0000 X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Mar 2013 10:22:29 -0000 --90e6ba614a9656cc0504d7cbc81a Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hello team, I recently installed meld 1.7.0 over RHEL5. I built the following dependencies (and also its associated dependencies): $ pkg-config --version 0.28 $ pkg-config --modversion pygtk-2.0 2.16.0 $ pkg-config --modversion pygobject-2.0 2.20.0 $ pkg-config --modversion python 2.7 export PKG_CONFIG=3D$PREFIX/pkg-config-0.28/bin/pkg-config export PKG_CONFIG_PATH=3D$PREFIX/zlib-1.2.7/lib/pkgconfig:$PREFIX/libffi-3.0.12/li= b/pkgconfig:$PREFIX/expat-2.1.0/lib/pkgconfig:$PREFIX/libelf-0.8.12/lib/pkg= config:$PREFIX/glib-2.22.4/lib/pkgconfig:$PREFIX/Python-2.7.3/lib/pkgconfig= :$PREFIX/pygobject-2.20.0/lib/pkgconfig:$PREFIX/tiff-4.0.0/lib/pkgconfig:$P= REFIX/libpng-1.5.14/lib/pkgconfig:$PREFIX/pixman-0.10.0/lib/pkgconfig:$PREF= IX/fontconfig-2.10.2/lib/pkgconfig:$PREFIX/freetype-2.4.10/lib/pkgconfig:$P= REFIX/cairo-1.6.0/lib/pkgconfig:$PREFIX/pango-1.20.5/lib/pkgconfig:$PREFIX/= atk-1.13.0/lib/pkgconfig:$PREFIX/gtk+-2.16.0/lib/pkgconfig:$PREFIX/pygtk-2.= 16.0/lib/pkgconfig:/usr/lib64/pkgconfig export PYTHON=3D$PREFIX/Python-2.7.3/bin/python2 export PYTHON_INCLUDES=3D$PREFIX/Python-2.7.3/include/python2.7 export PYTHON_PREFIX=3D$PREFIX/Python-2.7.3 export PYTHON_EXEC_PREFIX=3D$PREFIX/Python-2.7.3 export PATH=3D$PREFIX/pkg-config-0.28/bin:$PREFIX/Python-2.7.3/bin:$PATH export LD_LIBRARY_PATH=3D$PREFIX/Python-2.7.3/lib:$LD_LIBRARY_PATH =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D admnxpde@nl-cdc01_inv0190 $ ll /tools/meld/1.7.0 total 140 drwxr-xr-x 6 admnxpde support 4096 Mar 8 12:14 1.7.1 drwxr-xr-x 6 admnxpde support 4096 Mar 7 18:20 Python-2.7.3 drwxr-xr-x 5 admnxpde support 4096 Mar 8 05:39 atk-1.13.0 drwxr-xr-x 2 admnxpde support 4096 Mar 13 10:39 bin drwxr-xr-x 5 admnxpde support 4096 Mar 8 05:17 cairo-1.6.0 drwxr-xr-x 6 admnxpde support 4096 Mar 7 09:56 expat-2.1.0 drwxr-xr-x 8 admnxpde support 4096 Mar 8 04:42 fontconfig-2.10.2 drwxr-xr-x 6 admnxpde support 4096 Mar 8 05:01 freetype-2.4.10 drwxr-xr-x 6 admnxpde support 4096 Mar 7 11:41 gettext-0.16 drwxr-xr-x 6 admnxpde support 4096 Mar 7 13:39 glib-2.22.4 drwxr-xr-x 7 admnxpde support 4096 Mar 8 07:50 gtk+-2.16.0 drwxr-xr-x 6 admnxpde support 4096 Mar 8 06:00 jasper-1.900.1 drwxr-xr-x 6 admnxpde support 4096 Mar 7 21:00 jpeg-9 drwxr-xr-x 3 admnxpde support 4096 Mar 8 08:27 lib drwxr-xr-x 5 admnxpde support 4096 Mar 7 12:16 libelf-0.8.12 drwxr-xr-x 6 admnxpde support 4096 Mar 7 09:12 libffi-3.0.12 drwxr-xr-x 6 admnxpde support 4096 Mar 7 10:56 libiconv-1.14 drwxr-xr-x 6 admnxpde support 4096 Mar 7 21:19 libpng-1.5.14 drwxr-xr-x 7 admnxpde support 4096 Mar 8 05:28 pango-1.20.5 drwxr-xr-x 6 admnxpde support 4096 Mar 6 05:35 pcre-8.32 drwxr-xr-x 4 admnxpde support 4096 Mar 7 21:30 pixman-0.10.0 drwxr-xr-x 4 admnxpde support 4096 Mar 7 10:10 pkg-config-0.28 drwxr-xr-x 6 admnxpde support 4096 Mar 7 19:48 pygobject-2.20.0 drwxr-xr-x 6 admnxpde support 4096 Mar 8 08:08 pygtk-2.16.0 drwxr-xr-x 10 admnxpde support 4096 Mar 8 08:27 share drwxr-xr-x 6 admnxpde support 4096 Mar 7 21:07 tiff-4.0.0 drwxr-xr-x 3 admnxpde support 4096 Mar 8 08:27 var drwxr-xr-x 5 admnxpde support 4096 Mar 6 05:35 zlib-1.2.7 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Now, when I invoke meld, I get this error: $ ./meld Traceback (most recent call last): File "./meld", line 71, in import meld.paths ImportError: No module named meld.paths Note: Even meld 1.7.1 gives the same error. Can anybody help me to get around this problem? Thanks in advance, Dilip S --90e6ba614a9656cc0504d7cbc81a Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hello team,
=C2=A0
I recently installed meld 1.7.0 over RHEL5.
I built the following dependencies (and also its associated=C2=A0depen= dencies):
=C2=A0
$ pkg-config --version
0.28
$ pkg-config --modversion pygtk-2.0
2.16.0
$ pkg-config --modver= sion pygobject-2.0
2.20.0
$ pkg-config --modversion python
2.7
=C2=A0
export PKG_CONFIG=3D$PREFIX/pkg-config-0.28/bin/pkg-config

export PKG_CONFIG_PATH=3D$PREFIX/zlib-1.2.7/lib/pkgconfig:$PREFIX/= libffi-3.0.12/lib/pkgconfig:$PREFIX/expat-2.1.0/lib/pkgconfig:$PREFIX/libel= f-0.8.12/lib/pkgconfig:$PREFIX/glib-2.22.4/lib/pkgconfig:$PREFIX/Python-2.7= .3/lib/pkgconfig:$PREFIX/pygobject-2.20.0/lib/pkgconfig:$PREFIX/tiff-4.0.0/= lib/pkgconfig:$PREFIX/libpng-1.5.14/lib/pkgconfig:$PREFIX/pixman-0.10.0/lib= /pkgconfig:$PREFIX/fontconfig-2.10.2/lib/pkgconfig:$PREFIX/freetype-2.4.10/= lib/pkgconfig:$PREFIX/cairo-1.6.0/lib/pkgconfig:$PREFIX/pango-1.20.5/lib/pk= gconfig:$PREFIX/atk-1.13.0/lib/pkgconfig:$PREFIX/gtk+-2.16.0/lib/pkgconfig:= $PREFIX/pygtk-2.16.0/lib/pkgconfig:/usr/lib64/pkgconfig

export PYTHON=3D$PREFIX/Python-2.7.3/bin/python2
export PYTHON_= INCLUDES=3D$PREFIX/Python-2.7.3/include/python2.7
export PYTHON_PREFIX= =3D$PREFIX/Python-2.7.3
export PYTHON_EXEC_PREFIX=3D$PREFIX/Python-2.7.3=
=C2=A0
export PATH=3D$PREFIX/pkg-config-0.28/bin:$PREFIX/Python-2.7.3/bin:$PA= TH
export LD_LIBRARY_PATH=3D$PREFIX/Python-2.7.3/lib:$LD_LIBRARY_PATH
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D
admnxpde@nl-cdc01_inv0190= $=C2=A0 ll /tools/meld/1.7.0
total 140
drwxr-xr-x=C2=A0 6 admnxpde support 4096 Mar=C2=A0 8 12:1= 4 1.7.1
drwxr-xr-x=C2=A0 6 admnxpde support 4096 Mar=C2=A0 7 18:20 Pytho= n-2.7.3
drwxr-xr-x=C2=A0 5 admnxpde support 4096 Mar=C2=A0 8 05:39 atk-1= .13.0
drwxr-xr-x=C2=A0 2 admnxpde support 4096 Mar 13 10:39 bin
drwxr-xr-x=C2=A0 5 admnxpde support 4096 Mar=C2=A0 8 05:17 cairo-1.6.0
d= rwxr-xr-x=C2=A0 6 admnxpde support 4096 Mar=C2=A0 7 09:56 expat-2.1.0
dr= wxr-xr-x=C2=A0 8 admnxpde support 4096 Mar=C2=A0 8 04:42 fontconfig-2.10.2<= br>drwxr-xr-x=C2=A0 6 admnxpde support 4096 Mar=C2=A0 8 05:01 freetype-2.4.= 10
drwxr-xr-x=C2=A0 6 admnxpde support 4096 Mar=C2=A0 7 11:41 gettext-0.16
= drwxr-xr-x=C2=A0 6 admnxpde support 4096 Mar=C2=A0 7 13:39 glib-2.22.4
d= rwxr-xr-x=C2=A0 7 admnxpde support 4096 Mar=C2=A0 8 07:50 gtk+-2.16.0
dr= wxr-xr-x=C2=A0 6 admnxpde support 4096 Mar=C2=A0 8 06:00 jasper-1.900.1
drwxr-xr-x=C2=A0 6 admnxpde support 4096 Mar=C2=A0 7 21:00 jpeg-9
drwxr-= xr-x=C2=A0 3 admnxpde support 4096 Mar=C2=A0 8 08:27 lib
drwxr-xr-x=C2= =A0 5 admnxpde support 4096 Mar=C2=A0 7 12:16 libelf-0.8.12
drwxr-xr-x= =C2=A0 6 admnxpde support 4096 Mar=C2=A0 7 09:12 libffi-3.0.12
drwxr-xr-x=C2=A0 6 admnxpde support 4096 Mar=C2=A0 7 10:56 libiconv-1.14drwxr-xr-x=C2=A0 6 admnxpde support 4096 Mar=C2=A0 7 21:19 libpng-1.5.14drwxr-xr-x=C2=A0 7 admnxpde support 4096 Mar=C2=A0 8 05:28 pango-1.20.5drwxr-xr-x=C2=A0 6 admnxpde support 4096 Mar=C2=A0 6 05:35 pcre-8.32
drwxr-xr-x=C2=A0 4 admnxpde support 4096 Mar=C2=A0 7 21:30 pixman-0.10.0drwxr-xr-x=C2=A0 4 admnxpde support 4096 Mar=C2=A0 7 10:10 pkg-config-0.28=
drwxr-xr-x=C2=A0 6 admnxpde support 4096 Mar=C2=A0 7 19:48 pygobject-2.= 20.0
drwxr-xr-x=C2=A0 6 admnxpde support 4096 Mar=C2=A0 8 08:08 pygtk-2.= 16.0
drwxr-xr-x 10 admnxpde support 4096 Mar=C2=A0 8 08:27 share
drwxr-xr-x= =C2=A0 6 admnxpde support 4096 Mar=C2=A0 7 21:07 tiff-4.0.0
drwxr-xr-x= =C2=A0 3 admnxpde support 4096 Mar=C2=A0 8 08:27 var
drwxr-xr-x=C2=A0 5 = admnxpde support 4096 Mar=C2=A0 6 05:35 zlib-1.2.7
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D
=C2=A0
Now, when I invoke meld, I get this error:
=C2=A0
$ ./meld
Traceback (most recent call last):
=C2=A0 File "./= meld", line 71, in <module>
=C2=A0=C2=A0=C2=A0 import meld.pa= ths
ImportError: No module named meld.paths
=C2=A0
Note: Even meld 1.7.1 gives the same error.
=C2=A0
Can anybody help me to get around this problem?
=C2=A0
Thanks in advance,
Dilip S
=C2=A0
=C2=A0
=C2=A0
--90e6ba614a9656cc0504d7cbc81a-- From kai.willadsen@gmail.com Thu Mar 14 20:53:40 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id EFA5D76D76 for ; Thu, 14 Mar 2013 20:53:40 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id leaaBpEQpjXA for ; Thu, 14 Mar 2013 20:53:39 +0000 (UTC) Received: from mail-wg0-f47.google.com (mail-wg0-f47.google.com [74.125.82.47]) by restaurant.gnome.org (Postfix) with ESMTP id 65CD476D5F for ; Thu, 14 Mar 2013 20:53:39 +0000 (UTC) Received: by mail-wg0-f47.google.com with SMTP id dr13so2395352wgb.26 for ; Thu, 14 Mar 2013 13:53:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=MZjmDOJ06wlSbjmL1Mpe/CJ4KGUXlEwxh4oa189tDlk=; b=COlvaimm7UnES7xA2qS/i70ZZSwaKEh8tvMCc+AGuO0VmxX+U434/KLlAgx9IiEItH ti2jSBRrxmLSgiLaHYKNzv9suL+zAtPPkOmLif11fxevmUzP2iNWv/ZE2KMBxugqfOJo fhovhDOqijFUZrr7ueurKCWlM/42Ys6HSv+Vqs2hE3j/5vX8DNSM5po/rKC7bY2QDmuI 7qziX6JnY6Yk6UU5Oq0oYUO37yqaa6oAhK+q7ZvV9Gv1J29dcdEWQASXLaHCHDcwwVGX rJjauCdZ8i3tM8FmYVifX+hIRC+Rcp5R/Pa4Usj1a8u4G9ud/0KaoxJEZNGToJp72CE5 thQw== MIME-Version: 1.0 X-Received: by 10.180.87.129 with SMTP id ay1mr6780838wib.1.1363294417310; Thu, 14 Mar 2013 13:53:37 -0700 (PDT) Received: by 10.216.122.11 with HTTP; Thu, 14 Mar 2013 13:53:37 -0700 (PDT) In-Reply-To: References: Date: Fri, 15 Mar 2013 06:53:37 +1000 Message-ID: Subject: Re: Not able to invoke newly built meld 1.7.0 From: Kai Willadsen To: Dilip S Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Mar 2013 20:53:41 -0000 On 13 March 2013 20:21, Dilip S wrote: > Hello team, > > I recently installed meld 1.7.0 over RHEL5. > I built the following dependencies (and also its associated dependencies): > Now, when I invoke meld, I get this error: > > $ ./meld > Traceback (most recent call last): > File "./meld", line 71, in > import meld.paths > ImportError: No module named meld.paths > > Note: Even meld 1.7.1 gives the same error. > > Can anybody help me to get around this problem? How did you install Meld itself? That error means that Meld can't find its own modules. Did you move the main bin/meld script, get rid of the meld.doap file, or install it in any way other than make install? The easiest way to try to get Meld working is to simply download, unarchive, and run bin/meld. If that works, then something has gone wrong in your previous installation. Also, there was a small patch that went in straight after Meld 1.7.1 was released for better pygtk 2.16 compatibility, so you may want to look at patching that. cheers, Kai From kai.willadsen@gmail.com Thu Mar 14 21:15:34 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id F3E8776D81 for ; Thu, 14 Mar 2013 21:15:33 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZaLO84xEQGGN for ; Thu, 14 Mar 2013 21:15:33 +0000 (UTC) Received: from mail-wi0-f177.google.com (mail-wi0-f177.google.com [209.85.212.177]) by restaurant.gnome.org (Postfix) with ESMTP id 3481176DDA for ; Thu, 14 Mar 2013 21:15:30 +0000 (UTC) Received: by mail-wi0-f177.google.com with SMTP id hm14so2249552wib.10 for ; Thu, 14 Mar 2013 14:15:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=rbODACJkC9rB5dTVRPY1AyawPfkbLEa7Pinvg8+i7+0=; b=PpLcPBj7HQMOWtWihEUQ9TugcifOtRMXJsdL0f95zUCl4DyXREkadHqpek5FptpsBU hSUD6SFMRDaNO8gbHDdcJ6P/yoCrSZGGOutOy0q/GASx6EU3OKsgpb1dGzkg3uXaAUgg 31E35MRJ0cvIkMAdy4tdyOFWgtkU/JHXZdM9/PGHrxzyfzuhhzUCppR+3XJ/KqMa+MCJ YwN7EFf8yD5vna8RvAXhVZzSnwtx30mEIZQau0T/n57idscuM7RPbzGErpGvUy8gVBHe Af6nm2qu9RhfRnHY0VwjlLSzKBr2+eOrgm12x5qEpuu1I8enNtaLzGVKQWHC0+3+b7ge 1AfQ== MIME-Version: 1.0 X-Received: by 10.180.100.10 with SMTP id eu10mr36862114wib.4.1363295729057; Thu, 14 Mar 2013 14:15:29 -0700 (PDT) Received: by 10.216.122.11 with HTTP; Thu, 14 Mar 2013 14:15:28 -0700 (PDT) In-Reply-To: References: Date: Fri, 15 Mar 2013 07:15:28 +1000 Message-ID: Subject: Re: "static/fixed" mode on file diff view From: Kai Willadsen To: Pedro Pedruzzi Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Mar 2013 21:15:34 -0000 On 7 March 2013 07:04, Pedro Pedruzzi wrote: > On Fri, Mar 1, 2013 at 5:49 PM, Kai Willadsen wrote: >> On 26 February 2013 06:58, Pedro Pedruzzi wrote: > Thanks for the pointers. > > I've came up with this proof-of-concept based on the second option. > The tags isn't getting updated on buffer change yet. This is just to > demonstrate how would it look and feel. > > Please, tell me what you think. I'm actually surprised how well that works! I think we need to figure out a way of doing what other diff tools do, and indicating the areas that have been inserted to get the alignment right. I'm not sure whether GtkTextView will let us do that easily, but we can see. I've just had an alternative crazy idea. If tags don't give us the flexibility we need, we could always insert a custom GTK widget after each chunk, and give allocation to the widget based on required padding. That should allow us to use whatever presentation we like. ...don't do that though. That's a crazy idea. > I have some questions: > > 1. Where is a good place to do the tag creation? I tried somewhere in > the constructor but it seems that the linediffer was not ready to > iterate over changes yet. I can't see any way of getting away from having a tag per chunk, which means that there's no way to do it in the constructor. You can do this is many places, but FileDiff._diff_files() is the first place where we're guaranteed to have the diffs. Of course, those diffs can change, and if they do then we'll get a callback to FileDiff.on_diffs_changed(), which would probably be the right place to update and revalidate tags. > 2. How about 3 way filediffs? I would need to iterate over chunks on > the 3 panes. Exactly. Things are always complicated by 3-way diffs, but in this case I think it's just a matter of adapting your code to use linediffer.all_changes() instead of single_changes() and taking the max of three offsets rather than of two. cheers, Kai From kai.willadsen@gmail.com Thu Mar 14 21:20:33 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id F313276D75 for ; Thu, 14 Mar 2013 21:20:32 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wFpcRAZbyPVl for ; Thu, 14 Mar 2013 21:20:32 +0000 (UTC) Received: from mail-we0-f182.google.com (mail-we0-f182.google.com [74.125.82.182]) by restaurant.gnome.org (Postfix) with ESMTP id 070FA76D5F for ; Thu, 14 Mar 2013 21:20:31 +0000 (UTC) Received: by mail-we0-f182.google.com with SMTP id t57so2640958wey.27 for ; Thu, 14 Mar 2013 14:20:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=a8x7VxLQ/od0lRz7tKBIRfoDoTKL4QTk5SI+QToCdCY=; b=jISSMUkSKTfZG5CLvd/Bw8bioMMgBD93wwXcNCiVkFarxGu1LZ6kqynFMX4eloGcC8 tv84HZcg61lgiFXjTpNJ2UIdcwdLqjEBbr38QsPhX8roe6tEMnSw72+GABVQtfcv71RJ bIY/gt6cKERgM4/12Uec+0IYlmCnqCmXBo916jqqIXo9w28VrIAX0vvriE7b0eW71Pac UguSmBHmwQTvQqGlcieHfLgQoWDJjvgewK8XalcSOCe3erodWjWVxiOg5SxwltfpcjZl 0lh16mMfPRD3es9IPss29sFzeIEYMUa3X2TxfNJ2RQnkQmgO7BC8TC4etvkJpF1ddK/O 18aQ== MIME-Version: 1.0 X-Received: by 10.194.92.231 with SMTP id cp7mr7071890wjb.19.1363296024157; Thu, 14 Mar 2013 14:20:24 -0700 (PDT) Received: by 10.216.122.11 with HTTP; Thu, 14 Mar 2013 14:20:24 -0700 (PDT) In-Reply-To: <512F8114.6030905@nta-inc.net> References: <512F8114.6030905@nta-inc.net> Date: Fri, 15 Mar 2013 07:20:24 +1000 Message-ID: Subject: Re: Bug in directory view From: Kai Willadsen To: Jeff Webb Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Mar 2013 21:20:33 -0000 On 1 March 2013 02:08, Jeff Webb wrote: > There seems to be a "bug" in meld's directory view. If the > Preferences->Text Filters->"Ignore changes which insert or delete blank > lines" checkbox is enabled, files which differ only by blank lines show up > as being different in the directory view. If you click on one of these > files in the directory view, the file diff shows no differences, as > expected. It seems like the fix could be as simple as something like what > is shown in the patch below. You may want to do something more efficient, > but it seems that something like this is needed here. This fix is very > useful in conjunction with something like the "C++ comment" filter when you > are comparing different revisions of a project and want to find the files > that have non-comment differences. We were trying to do this in a case > where someone changed a revision number comment in every file. This fix > seems to work for our test case. That also won't work for unicode or mac linebreaks, so we'd need to establish a list of linebreaks that would be ignored in FileDiff by the preference (which will then break when GTK or Python changes their definitions, but hey). I'd like to fix the bug, but I don't want to encourage the idea that that should work. I have to admit that it never occurred to me that the blank line ignoring *would* propagate across to folder comparisons. Basically, it's only there cause our filters can't handle new lines. Could I ask you to file a bug please, and I'll take a look at a more general patch? cheers, Kai From sveinse@seldal.com Fri Mar 15 11:58:05 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 7F2CB76DA2 for ; Fri, 15 Mar 2013 11:58:05 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -1.9 X-Spam-Level: X-Spam-Status: No, score=-1.9 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TOUFwwmZNvVf for ; Fri, 15 Mar 2013 11:57:54 +0000 (UTC) X-Greylist: delayed 387 seconds by postgrey-1.34 at restaurant.gnome.org; Fri, 15 Mar 2013 11:57:54 UTC Received: from smtp.domeneshop.no (smtp.domeneshop.no [194.63.252.54]) by restaurant.gnome.org (Postfix) with ESMTP id 9019C76D8D for ; Fri, 15 Mar 2013 11:57:54 +0000 (UTC) Received: from [79.160.140.131] (port=20076 helo=[128.1.101.181]) by smtp.domeneshop.no with esmtpsa (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.72) (envelope-from ) id 1UGTAS-0002yE-8a for meld-list@gnome.org; Fri, 15 Mar 2013 12:51:24 +0100 Message-ID: <51430B3B.8070804@seldal.com> Date: Fri, 15 Mar 2013 12:51:23 +0100 From: Svein Seldal User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130308 Thunderbird/17.0.4 MIME-Version: 1.0 To: meld-list Subject: Use meld to diff a list of files Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Mar 2013 11:58:05 -0000 Hi I'm working on a small python script. I have two dirs and my script generates a list of files that I want to diff. Can I integrate meld into my python script and use it to show the diffs for that (specific) file list? If it works, how can I do that? Best regards, Svein Seldal From jeff.webb@nta-inc.net Fri Mar 15 14:33:01 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 2D7CC76DC0 for ; Fri, 15 Mar 2013 14:33:01 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -1.9 X-Spam-Level: X-Spam-Status: No, score=-1.9 tagged_above=-999 required=2 tests=[BAYES_00=-1.9] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6pAILgyxi6yI for ; Fri, 15 Mar 2013 14:33:00 +0000 (UTC) Received: from c370-1.amrdec.army.mil (c370-1.amrdec.army.mil [199.209.144.46]) by restaurant.gnome.org (Postfix) with ESMTP id 4E81F76DA2 for ; Fri, 15 Mar 2013 14:32:59 +0000 (UTC) X-IronPort-AV: E=Sophos;i="4.84,850,1355119200"; d="scan'208";a="18652230" Received: from unknown (HELO RD-Bridge.ds.amrdec.army.mil) ([10.0.60.29]) by c370-1.amrdec.army.mil with ESMTP; 15 Mar 2013 09:32:57 -0500 Received: from [10.0.144.65] ([10.0.144.65]) by RD-Bridge.ds.amrdec.army.mil with Microsoft SMTPSVC(6.0.3790.4675); Fri, 15 Mar 2013 09:32:57 -0500 Message-ID: <51433119.3040207@nta-inc.net> Date: Fri, 15 Mar 2013 09:32:57 -0500 From: Jeff Webb User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130308 Thunderbird/17.0.4 MIME-Version: 1.0 To: Kai Willadsen Subject: Re: Bug in directory view References: <512F8114.6030905@nta-inc.net> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 15 Mar 2013 14:32:57.0894 (UTC) FILETIME=[FCFC1C60:01CE2189] X-Mailman-Approved-At: Fri, 15 Mar 2013 20:11:34 +0000 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Mar 2013 14:33:01 -0000 On 03/14/2013 04:20 PM, Kai Willadsen wrote: > On 1 March 2013 02:08, Jeff Webb wrote: >> There seems to be a "bug" in meld's directory view. If the >> Preferences->Text Filters->"Ignore changes which insert or delete blank >> lines" checkbox is enabled, files which differ only by blank lines show up >> as being different in the directory view. If you click on one of these >> files in the directory view, the file diff shows no differences, as >> expected. It seems like the fix could be as simple as something like what >> is shown in the patch below. You may want to do something more efficient, >> but it seems that something like this is needed here. This fix is very >> useful in conjunction with something like the "C++ comment" filter when you >> are comparing different revisions of a project and want to find the files >> that have non-comment differences. We were trying to do this in a case >> where someone changed a revision number comment in every file. This fix >> seems to work for our test case. > > That also won't work for unicode or mac linebreaks, so we'd need to > establish a list of linebreaks that would be ignored in FileDiff by > the preference (which will then break when GTK or Python changes their > definitions, but hey). That sounds like a good solution to me. I was also worried that the patch I posted may slow things down for large directory diffs, since it is an extra step to run on each file. Perhaps being able to enable this feature in the dirdiff "Filters" drop-down would be a good idea, if that is an issue. > I'd like to fix the bug, but I don't want to encourage the idea that > that should work. I have to admit that it never occurred to me that > the blank line ignoring *would* propagate across to folder > comparisons. Basically, it's only there cause our filters can't handle > new lines. My use case really has to do with the text filters as well, so I think the bug is legitimate in that context. As you mentioned, if the filters could handle new lines, this feature wouldn't matter very much. In my case, I want to see only non-comment differences between two revisions of a source tree. Someone decided that putting a revision number (and change log) in every file was a good idea, so it looks like every file has changed between the two revisions. With my patch applied, I can see which files have significant changes without having to examine every one individually. When I examined the meld source code, I discovered that the underlying issue was that even though the text filters were applied, the line differences elimination code was not. That's why I described the bug the way I did. I thought it would be more clear to not mention the text filters, since that part seems to be working properly. > Could I ask you to file a bug please, and I'll take a look at a more > general patch? Sure. I just filed Bug 695912: https://bugzilla.gnome.org/show_bug.cgi?id=695912 Thanks for taking the time to examine this issue. Also, thank you for your work on meld. My coworkers and I find the tool very useful. I also love that it's written in python -- that made it easy to dive in and fix the issue. -Jeff From kai.willadsen@gmail.com Fri Mar 15 20:20:55 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 2FCDB76DC0 for ; Fri, 15 Mar 2013 20:20:55 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id n8UEwrRuFdZG for ; Fri, 15 Mar 2013 20:20:45 +0000 (UTC) Received: from mail-wi0-f172.google.com (mail-wi0-f172.google.com [209.85.212.172]) by restaurant.gnome.org (Postfix) with ESMTP id BEBE676DC9 for ; Fri, 15 Mar 2013 20:20:44 +0000 (UTC) Received: by mail-wi0-f172.google.com with SMTP id ez12so913347wid.17 for ; Fri, 15 Mar 2013 13:20:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=tmY+dSjwmpocmsfVZUqcrjti77aRL7L6HJOhEz2McZA=; b=e0vZZER/8HR18avcogp4eG5pjHvzrwgTy6RsN9CAq+NK5YzBmMNRCfXQ3c0Oz74lN3 gW+YRWF7oxC2X8w7sFggVXL8wbGI4IQj62hRC5kVm2IZOVAFrk3ueD631K+1xwH82J+Y 0UMcMFtIkoI/nIA6py05zN2f8HdaIErTJ1kL5KTuXmcjqs/5x1Mwo/OmyZqOoJvmpEDF gZ/HTIdaD8h2ncZpElhFHW347OMpkXT9ZjzWRHZDlZizBEg5gDB8nIL9kNg17RWAaV1W PZOIrcHEnWF3Fvx0tngsrV+MCogYLX+BmCXfsPX8FQOMVi9WQW5x/mJ0lJ+AUD44wN79 K5Yg== MIME-Version: 1.0 X-Received: by 10.194.176.165 with SMTP id cj5mr13324166wjc.37.1363378842537; Fri, 15 Mar 2013 13:20:42 -0700 (PDT) Received: by 10.216.122.11 with HTTP; Fri, 15 Mar 2013 13:20:42 -0700 (PDT) In-Reply-To: <51430B3B.8070804@seldal.com> References: <51430B3B.8070804@seldal.com> Date: Sat, 16 Mar 2013 06:20:42 +1000 Message-ID: Subject: Re: Use meld to diff a list of files From: Kai Willadsen To: Svein Seldal Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Mar 2013 20:20:55 -0000 On 15 March 2013 21:51, Svein Seldal wrote: > Hi > > I'm working on a small python script. I have two dirs and my script > generates a list of files that I want to diff. Can I integrate meld into my > python script and use it to show the diffs for that (specific) file list? If > it works, how can I do that? I think you want the --diff command line argument, which launches a tab for a two or three-way comparison. You can give Meld this argument as many times as you like, and all of the comparisons will be launched in tabs in a single window. cheers, Kai From dmacks@netspace.org Fri Mar 15 20:43:27 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 0B95576DC0 for ; Fri, 15 Mar 2013 20:43:27 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -0.921 X-Spam-Level: X-Spam-Status: No, score=-0.921 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, FROM_EXCESS_BASE64=0.979, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=no Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZaxOgjJd9FoA for ; Fri, 15 Mar 2013 20:43:16 +0000 (UTC) Received: from mail39c40.carrierzone.com (mail39c40.carrierzone.com [209.235.156.179]) by restaurant.gnome.org (Postfix) with ESMTP id 7B7BD76DC9 for ; Fri, 15 Mar 2013 20:43:15 +0000 (UTC) Received: from mail39c40.carrierzone.com (localhost [127.0.0.1]) by mail39c40.carrierzone.com (8.13.6/8.13.1) with ESMTP id r2FKhCge008722 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO) for ; Fri, 15 Mar 2013 20:43:13 +0000 Received: (from webmail@localhost) by mail39c40.carrierzone.com (8.13.6/8.12.2/Submit) id r2FKhC81008721 for meld-list@gnome.org; Fri, 15 Mar 2013 16:43:12 -0400 Received: from pool-96-244-146-185.bltmmd.fios.verizon.net (pool-96-244-146-185.bltmmd.fios.verizon.net [96.244.146.185]) by webmail.netspace.org (Webmail 5.0 V.V.I.) with HTTP for ; Fri, 15 Mar 2013 16:43:12 -0400 Message-ID: <20130315164312.paq4nqv68ckck4cw@webmail.netspace.org> From: "=?utf-8?b?RGFuaWVsIE1hY2tz?=" To: meld-list@gnome.org Subject: Python diagnostic in vc-mode for git Date: Fri, 15 Mar 2013 16:43:12 -0400 X-Priority: 3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable User-Agent: Webmail 6.0 X-CSC: 0 X-CHA: v=2.0 cv=bcTcppzB c=1 sm=1 a=WgqlhV2pB5zgkiz5y38hRw==:17 a=Q5QLeeme7KwA:10 a=TFD_Mn-G-E4A:10 a=T6QNPRnjHn8A:10 a=IkcTkHD0fZMA:10 a=htD9qdewAAAA:8 a=CfS3303VTYEA:10 a=DZNxciZNtYQbzIJPtG8A:9 a=QEXdDO2ut3YA:10 a=lQSODCMphPEA:10 a=WkljmVdYkabdwxfqvArNOQ==:117 X-CTCH-RefID: str=0001.0A020204.514387E1.0044, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Mar 2013 20:43:27 -0000 I have a local clone of a github project. 'meld fink-git' (the local direct= ory name) or 'meld' and then choosing 'version control view' to select it d= isplays "fink-git" with a folder-icon. But if I double-click it, the termin= al reports: Traceback (most recent call last): =C2=A0 File "/sw/lib/meld/meld/vcview.py", line 433, in on_row_activated =C2=A0=C2=A0=C2=A0 self.run_diff( [path] ) =C2=A0 File "/sw/lib/meld/meld/vcview.py", line 468, in run_diff =C2=A0=C2=A0=C2=A0 comp_path =3D self.vc.get_path_for_repo_file(path) =C2=A0 File "/sw/lib/meld/meld/vc/git.py", line 90, in get_path_for_repo_fi= le =C2=A0=C2=A0=C2=A0 raise _vc.InvalidVCPath(self, path, "Path not in reposit= ory") meld.vc._vc.InvalidVCPath: Git: Path /usr/local/fink/fink-git is invalid or= not present Error: Path not in repository and the GUI does not switch to the repo view. I get the same effect for a c= lone of a git.gnome project. Other VCs seem to work (a CVS checkout switche= s to VC view (expandable tree-view, erc.) dan -- Daniel Macks dmacks@netspace.org From kai.willadsen@gmail.com Fri Mar 15 21:02:08 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 466FD76DC9 for ; Fri, 15 Mar 2013 21:02:08 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id oQG3L9go3Od5 for ; Fri, 15 Mar 2013 21:01:58 +0000 (UTC) Received: from mail-we0-f182.google.com (mail-we0-f182.google.com [74.125.82.182]) by restaurant.gnome.org (Postfix) with ESMTP id DA59176DC0 for ; Fri, 15 Mar 2013 21:01:57 +0000 (UTC) Received: by mail-we0-f182.google.com with SMTP id t57so3660644wey.13 for ; Fri, 15 Mar 2013 14:01:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=NFX6JC35flSdJjSJ/PKw7a01a7wrg6yT6CsB7PilnIM=; b=UiqKwAMmzDVtGPYgI3RHpBR5+50MIragY23UU1Q9yxBpxr3RcpIdtWPmh6+QDbtK8B fOoKx4epD0M4CnXCv4xNXrTuO5lQknqX1P+Ev0l7/JN44HHFaMsYcvQ02tGACCozqhuG K3UgCZ3MxBFia5woDkZ4dRhxOv8SDM0HUha1J1I1pzIcTRMNsTANaOyrtgRd0JA+Rh+X 601ZXXhnsNHkBqx+z0DozzXJvym9ciT41hMzwA9F+bn7nx43MtdAJg4FOGKjAhHfcPX6 M4+lGb65oz5bolbswW6jl3dAK6GCHIOhdP2OzB0jWFcF6Ga+9PDdS/E10zZ11IbrTO2A lpDA== MIME-Version: 1.0 X-Received: by 10.180.100.10 with SMTP id eu10mr5532493wib.4.1363381315819; Fri, 15 Mar 2013 14:01:55 -0700 (PDT) Received: by 10.216.122.11 with HTTP; Fri, 15 Mar 2013 14:01:55 -0700 (PDT) In-Reply-To: <20130315164312.paq4nqv68ckck4cw@webmail.netspace.org> References: <20130315164312.paq4nqv68ckck4cw@webmail.netspace.org> Date: Sat, 16 Mar 2013 07:01:55 +1000 Message-ID: Subject: Re: Python diagnostic in vc-mode for git From: Kai Willadsen To: Daniel Macks Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Mar 2013 21:02:08 -0000 On 16 March 2013 06:43, Daniel Macks wrote: > I have a local clone of a github project. 'meld fink-git' (the local directory > name) or 'meld' and then choosing 'version control view' to select it displays > "fink-git" with a folder-icon. But if I double-click it, the terminal reports: > > Traceback (most recent call last): > File "/sw/lib/meld/meld/vcview.py", line 433, in on_row_activated > self.run_diff( [path] ) > File "/sw/lib/meld/meld/vcview.py", line 468, in run_diff > comp_path = self.vc.get_path_for_repo_file(path) > File "/sw/lib/meld/meld/vc/git.py", line 90, in get_path_for_repo_file > raise _vc.InvalidVCPath(self, path, "Path not in repository") > meld.vc._vc.InvalidVCPath: Git: Path /usr/local/fink/fink-git is invalid or not present > Error: Path not in repository Oh that's new... that's a regression in 1.7.1, so thanks for finding it. > and the GUI does not switch to the repo view. I get the same effect for a > clone of a git.gnome project. Other VCs seem to work (a CVS checkout > switches to VC view (expandable tree-view, erc.) Hey, look at that! I had no idea we did that. That's actually switching to a single-pane folder comparison. I'm not certain what the desired behaviour here is, as I don't really understand what the previous behaviour is good for, but I'm open to explanations. Anyway, in the interests of not dumping tracebacks, I've pushed a change to git that restores what I think our previous behaviour was. Please let me know if it's not right. cheers, Kai From kai.willadsen@gmail.com Fri Mar 15 21:03:13 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 8AB1376DC0 for ; Fri, 15 Mar 2013 21:03:13 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id aPU9ujx2yw8i for ; Fri, 15 Mar 2013 21:03:03 +0000 (UTC) Received: from mail-wg0-f45.google.com (mail-wg0-f45.google.com [74.125.82.45]) by restaurant.gnome.org (Postfix) with ESMTP id 19ACF76DC9 for ; Fri, 15 Mar 2013 21:03:02 +0000 (UTC) Received: by mail-wg0-f45.google.com with SMTP id dq12so3379793wgb.0 for ; Fri, 15 Mar 2013 14:03:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=uUmX1y1eCxf34YY55RUOwCKiwEeu9KsGg38YknCQ120=; b=tTZxvWP9SqAF7GNheaM/3vXNhw2kAkstmj9SMXYLWqY4+cIfA0eGPVlNtcg/L12BkN vilgiqii/G7cpwswqA0SLDOMkihGGDwK/suETTLkKJclvAmRk6o52l9JJylXQSIPQBxk GdDS3BJSXTk65hnpwQaribqQfCURgGqBNBtX/4EeDytmD4Mn9tw1ms25k7TQVJ3ekdv+ XMkkYAjRBsXNoTVJ/OSUiepQMWaHSwNkGetgkQfFJET2Cg3E9aOLhXCI4Z3e/89oxCqp JNWr1aD2Df1o1MlDUj4kI3qLa7gNiXOQFRux0nI7bTScTtrRUCStj0Dg/NnsFq5gwFkl ksmQ== MIME-Version: 1.0 X-Received: by 10.194.11.70 with SMTP id o6mr13217767wjb.29.1363381380880; Fri, 15 Mar 2013 14:03:00 -0700 (PDT) Received: by 10.216.122.11 with HTTP; Fri, 15 Mar 2013 14:03:00 -0700 (PDT) In-Reply-To: <51433119.3040207@nta-inc.net> References: <512F8114.6030905@nta-inc.net> <51433119.3040207@nta-inc.net> Date: Sat, 16 Mar 2013 07:03:00 +1000 Message-ID: Subject: Re: Bug in directory view From: Kai Willadsen To: Jeff Webb Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Mar 2013 21:03:13 -0000 On 16 March 2013 00:32, Jeff Webb wrote: > On 03/14/2013 04:20 PM, Kai Willadsen wrote: >> That also won't work for unicode or mac linebreaks, so we'd need to >> establish a list of linebreaks that would be ignored in FileDiff by >> the preference (which will then break when GTK or Python changes their >> definitions, but hey). > > That sounds like a good solution to me. I was also worried that the patch I > posted may slow things down for large directory diffs, since it is an extra > step to run on each file. Perhaps being able to enable this feature in the > dirdiff "Filters" drop-down would be a good idea, if that is an issue. Of the many very-slow things that we do in directory comparisons, that one shouldn't be a real problem. It is, essentially, just applying another filter if the option is set. >> I'd like to fix the bug, but I don't want to encourage the idea that >> that should work. I have to admit that it never occurred to me that >> the blank line ignoring *would* propagate across to folder >> comparisons. Basically, it's only there cause our filters can't handle >> new lines. > > > My use case really has to do with the text filters as well, so I think the > bug is legitimate in that context. As you mentioned, if the filters could > handle new lines, this feature wouldn't matter very much. In my case, I > want to see only non-comment differences between two revisions of a source > tree. Someone decided that putting a revision number (and change log) in > every file was a good idea, so it looks like every file has changed between > the two revisions. With my patch applied, I can see which files have > significant changes without having to examine every one individually. When > I examined the meld source code, I discovered that the underlying issue was > that even though the text filters were applied, the line differences > elimination code was not. That's why I described the bug the way I did. I > thought it would be more clear to not mention the text filters, since that > part seems to be working properly. Sure. The problem from my point of view is that the ignore-blank-lines setting is intended as a visual aid in file comparisons, and here it's being repurposed. I certainly think the use case is reasonable; I just wish that we weren't using the ignore-blank-lines setting for it. I can live with it for now though. >> Could I ask you to file a bug please, and I'll take a look at a more >> general patch? > > > Sure. I just filed Bug 695912: > > https://bugzilla.gnome.org/show_bug.cgi?id=695912 > > Thanks for taking the time to examine this issue. Also, thank you for your > work on meld. My coworkers and I find the tool very useful. I also love > that it's written in python -- that made it easy to dive in and fix the > issue. Thanks! Always nice to hear that people find it useful. cheers, Kai From gilboad@gmail.com Sat Mar 16 04:57:37 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 6065876DDA for ; Sat, 16 Mar 2013 04:57:37 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.698 X-Spam-Level: X-Spam-Status: No, score=-2.698 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id M6gxFztmRTt1 for ; Sat, 16 Mar 2013 04:57:36 +0000 (UTC) Received: from mail-ie0-f170.google.com (mail-ie0-f170.google.com [209.85.223.170]) by restaurant.gnome.org (Postfix) with ESMTP id C5B8A76DC9 for ; Sat, 16 Mar 2013 04:57:36 +0000 (UTC) Received: by mail-ie0-f170.google.com with SMTP id c11so5246105ieb.1 for ; Fri, 15 Mar 2013 21:57:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:date:message-id:subject:from:to :content-type; bh=s4tPl+iPC4v0/7fB8GrVJUNznbmgx3xgXkrn/dX0iDQ=; b=JkUQP7Z8x9a+yTmu2JNKwlTl0cK/C7FmxK76A9/a8KinYB0l9Yz/NLEKKA0fFKNaOp YxbjbiQ5Jq5IcQ+XtR93ynIsBziXFn46RAq4Zd5raCxTtd2pLISS6lY9rEH/7IRrRmLZ PrWTcHbqluaDLJeX0jsOcyYj31DiJzfHvB4ja5VwfiHlvaUmfC83PL7tb2jpOVcUgtSU BOkI8h6x+obRvBkCFUiLV9t9SOmtCuJ7Gv5mzrldDe23GEcgq3YuWllJl3hTMz3TmLfp HhXLQB3WtvsNtInFWhjCijUbGsuo2NJOCnATEf+8QGTTxTmUnV7Y/8oBGHMj3v44Xpay bmnA== MIME-Version: 1.0 X-Received: by 10.50.47.170 with SMTP id e10mr2976113ign.84.1363409854983; Fri, 15 Mar 2013 21:57:34 -0700 (PDT) Received: by 10.64.7.99 with HTTP; Fri, 15 Mar 2013 21:57:34 -0700 (PDT) Date: Sat, 16 Mar 2013 06:57:34 +0200 Message-ID: Subject: Support for DBUS-less mode. From: Gilboa Davara To: "Users/Devel Meld" Content-Type: multipart/alternative; boundary=14dae9340e3b16f69104d80398e0 X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 16 Mar 2013 04:57:37 -0000 --14dae9340e3b16f69104d80398e0 Content-Type: text/plain; charset=ISO-8859-1 Hello, When trying to used meld to compare files as root, I'm getting exceptions due to meld being unable to connect to DBUS (access denied). (meld:29000): GConf-WARNING **: Client failed to connect to the D-BUS daemon: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken. Traceback (most recent call last): File "/usr/bin/meld", line 154, in main() File "/usr/bin/meld", line 136, in main import meld.meldapp File "/usr/share/meld/meld/meldapp.py", line 216, in app = MeldApp() File "/usr/share/meld/meld/meldapp.py", line 113, in __init__ self.prefs = preferences.MeldPreferences() File "/usr/share/meld/meld/preferences.py", line 259, in __init__ super(MeldPreferences, self).__init__("/apps/meld", self.defaults) File "/usr/share/meld/meld/util/prefs.py", line 93, in __init__ self._gconf.add_dir(rootkey, gconf.CLIENT_PRELOAD_NONE) glib.GError: No D-BUS daemon running Any chance of making meld simply disable dbus support when dbus is unavailable? - GIlboa --14dae9340e3b16f69104d80398e0 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Hello,

When trying to used meld to compa= re files as root, I'm getting exceptions due to meld being unable to co= nnect to DBUS (access denied).

(meld:29000): GConf-WARNING **: Clien= t failed to connect to the D-BUS daemon:
Did not receive a reply. Possible causes include: the remote application di= d not send a reply, the message bus security policy blocked the reply, the = reply timeout expired, or the network connection was broken.
Traceback (= most recent call last):
=A0 File "/usr/bin/meld", line 154, in <module>
=A0=A0= =A0 main()
=A0 File "/usr/bin/meld", line 136, in main
=A0= =A0=A0 import meld.meldapp
=A0 File "/usr/share/meld/meld/meldapp.p= y", line 216, in <module>
=A0=A0=A0 app =3D MeldApp()
=A0 File "/usr/share/meld/meld/meldapp.= py", line 113, in __init__
=A0=A0=A0 self.prefs =3D preferences.Mel= dPreferences()
=A0 File "/usr/share/meld/meld/preferences.py",= line 259, in __init__
=A0=A0=A0 super(MeldPreferences, self).__init__("/apps/meld", sel= f.defaults)
=A0 File "/usr/share/meld/meld/util/prefs.py", lin= e 93, in __init__
=A0=A0=A0 self._gconf.add_dir(rootkey, gconf.CLIENT_PR= ELOAD_NONE)
glib.GError: No D-BUS daemon running

Any chance of making meld simpl= y disable dbus support when dbus is unavailable?

- GIlboa
--14dae9340e3b16f69104d80398e0-- From kai.willadsen@gmail.com Sat Mar 16 20:07:58 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 9407D76DFE for ; Sat, 16 Mar 2013 20:07:58 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 93u1u49PQ6oI for ; Sat, 16 Mar 2013 20:07:47 +0000 (UTC) Received: from mail-lb0-f182.google.com (mail-lb0-f182.google.com [209.85.217.182]) by restaurant.gnome.org (Postfix) with ESMTP id AE93B762F0 for ; Sat, 16 Mar 2013 20:07:46 +0000 (UTC) Received: by mail-lb0-f182.google.com with SMTP id gj3so232680lbb.27 for ; Sat, 16 Mar 2013 13:07:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=77SriLPH0QQhdZf3dyiZqR5dt9MM88PSi4LdI5sCC+U=; b=xNDRXqa2JDbKPdHz6pnQznHChbD87wfcve8A286pGvy8XQmIYhArGbPGe6wPPcQ4ue JrhOHhGKo5EsnhbilVzoLm6sPbCMXjs6GKjljN4px9VG2C4JId5u3sVr4tsg6UzQJc4x bZmlddCFiflpOR2EzUrpI2Du4IVz6dwtBzdvrSaI26DW6r75thO5TgiycvRo0+7+czB7 kuDYhjORchLV5wSRNMgrE0QyVRcNm6e6k2E4p60wNq6qFyrPyNubSUatMhi+dhN6dkPR PLnC2ZQo93YeXxdzasjF+SlXTGW6Jc1dP56IAIbGv2gtAN5MJFi17/HVg/p2ON7nxGdt p76A== MIME-Version: 1.0 X-Received: by 10.152.132.170 with SMTP id ov10mr9621151lab.21.1363464464373; Sat, 16 Mar 2013 13:07:44 -0700 (PDT) Received: by 10.114.25.33 with HTTP; Sat, 16 Mar 2013 13:07:44 -0700 (PDT) In-Reply-To: References: Date: Sun, 17 Mar 2013 06:07:44 +1000 Message-ID: Subject: Re: Support for DBUS-less mode. From: Kai Willadsen To: Gilboa Davara Content-Type: text/plain; charset=UTF-8 Cc: Users/Devel Meld X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 16 Mar 2013 20:07:58 -0000 On 16 March 2013 14:57, Gilboa Davara wrote: > Hello, > > When trying to used meld to compare files as root, I'm getting exceptions > due to meld being unable to connect to DBUS (access denied). > > (meld:29000): GConf-WARNING **: Client failed to connect to the D-BUS > daemon: > Did not receive a reply. Possible causes include: the remote application did > not send a reply, the message bus security policy blocked the reply, the > reply timeout expired, or the network connection was broken. > Traceback (most recent call last): > File "/usr/bin/meld", line 154, in > main() > File "/usr/bin/meld", line 136, in main > import meld.meldapp > File "/usr/share/meld/meld/meldapp.py", line 216, in > app = MeldApp() > File "/usr/share/meld/meld/meldapp.py", line 113, in __init__ > self.prefs = preferences.MeldPreferences() > File "/usr/share/meld/meld/preferences.py", line 259, in __init__ > super(MeldPreferences, self).__init__("/apps/meld", self.defaults) > File "/usr/share/meld/meld/util/prefs.py", line 93, in __init__ > self._gconf.add_dir(rootkey, gconf.CLIENT_PRELOAD_NONE) > glib.GError: No D-BUS daemon running > > Any chance of making meld simply disable dbus support when dbus is > unavailable? This is actually gconf, not Meld. Meld *also* has dbus support, but that should fail gracefully if we can't connect. We also have a fallback for gconf support, but right now it only works if you don't have gconf installed; if it's installed but can't connect, then it blows up as above. It probably wouldn't be too hard to make that fallback depend on actual gconf viability rather than presence, but I haven't really looked into it. cheers, Kai From gilboad@gmail.com Sun Mar 17 10:12:09 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 6A10276E13 for ; Sun, 17 Mar 2013 10:12:09 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.698 X-Spam-Level: X-Spam-Status: No, score=-2.698 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jm0Z6uUUhlau for ; Sun, 17 Mar 2013 10:12:08 +0000 (UTC) Received: from mail-ia0-f172.google.com (mail-ia0-f172.google.com [209.85.210.172]) by restaurant.gnome.org (Postfix) with ESMTP id BF43376DFE for ; Sun, 17 Mar 2013 10:12:08 +0000 (UTC) Received: by mail-ia0-f172.google.com with SMTP id l29so4500805iag.3 for ; Sun, 17 Mar 2013 03:12:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=ri4B72Zceny4k4T+WYBGYwN2hgcC1khJPkd7eIgq348=; b=g9hku9niLX0nn03mu/Ke6OpJDWCEk4rMKM/tRPyTNKhJ5CXhH4rt9fWvbcRHgTBgHd oEklGrgb9cmBd8cj/J9Apz3oqjckY8sqwt+wGokg4Oyb0WK4U95+nq0S1FOa/A40XElq iaGSr2hYpoHQu5DdIfY/ulrcxSvYOho/cZb/hUhJUOOGvSZ7tT0xIFEyiD8EN47c+V5h U1oNmRLuLI6wIBeMXJWi69gTy3llEkDqJorQN48FJDRB14ys2g8h2LZ9xKMwxZVTQjZB MW5w7sJrxxffCTs4LdTu86z1ZqxFjwathAmPDoA/cIn0SYJTfFKEpEVsgLqcrSsQVyDb h49w== MIME-Version: 1.0 X-Received: by 10.50.190.164 with SMTP id gr4mr4363248igc.19.1363515126911; Sun, 17 Mar 2013 03:12:06 -0700 (PDT) Received: by 10.64.7.99 with HTTP; Sun, 17 Mar 2013 03:12:06 -0700 (PDT) In-Reply-To: References: Date: Sun, 17 Mar 2013 12:12:06 +0200 Message-ID: Subject: Re: Support for DBUS-less mode. From: Gilboa Davara To: Kai Willadsen Content-Type: multipart/alternative; boundary=f46d04478517c91ac304d81c1a4a Cc: Users/Devel Meld X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Mar 2013 10:12:09 -0000 --f46d04478517c91ac304d81c1a4a Content-Type: text/plain; charset=ISO-8859-1 On Sat, Mar 16, 2013 at 10:07 PM, Kai Willadsen wrote: > On 16 March 2013 14:57, Gilboa Davara wrote: > > Hello, > > > > When trying to used meld to compare files as root, I'm getting exceptions > > due to meld being unable to connect to DBUS (access denied). > > > > (meld:29000): GConf-WARNING **: Client failed to connect to the D-BUS > > daemon: > > Did not receive a reply. Possible causes include: the remote application > did > > not send a reply, the message bus security policy blocked the reply, the > > reply timeout expired, or the network connection was broken. > > Traceback (most recent call last): > > File "/usr/bin/meld", line 154, in > > main() > > File "/usr/bin/meld", line 136, in main > > import meld.meldapp > > File "/usr/share/meld/meld/meldapp.py", line 216, in > > app = MeldApp() > > File "/usr/share/meld/meld/meldapp.py", line 113, in __init__ > > self.prefs = preferences.MeldPreferences() > > File "/usr/share/meld/meld/preferences.py", line 259, in __init__ > > super(MeldPreferences, self).__init__("/apps/meld", self.defaults) > > File "/usr/share/meld/meld/util/prefs.py", line 93, in __init__ > > self._gconf.add_dir(rootkey, gconf.CLIENT_PRELOAD_NONE) > > glib.GError: No D-BUS daemon running > > > > Any chance of making meld simply disable dbus support when dbus is > > unavailable? > > This is actually gconf, not Meld. Meld *also* has dbus support, but > that should fail gracefully if we can't connect. We also have a > fallback for gconf support, but right now it only works if you don't > have gconf installed; if it's installed but can't connect, then it > blows up as above. > > It probably wouldn't be too hard to make that fallback depend on > actual gconf viability rather than presence, but I haven't really > looked into it. > > cheers, > Kai > OK, thanks. You want me to open a BZ? - Gilboa --f46d04478517c91ac304d81c1a4a Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
On S= at, Mar 16, 2013 at 10:07 PM, Kai Willadsen <kai.willadsen@gmail.c= om> wrote:
On 1= 6 March 2013 14:57, Gilboa Dava= ra <gilboad@gmail.com> wrote= :
> Hello,
>
> When trying to used meld to compare files as root, I'm getting exc= eptions
> due to meld being unable to connect to DBUS (access denied).
>
> (meld:29000): GConf-WARNING **: Client failed to connect to the D-BUS<= br> > daemon:
> Did not receive a reply. Possible causes include: the remote applicati= on did
> not send a reply, the message bus security policy blocked the reply, t= he
> reply timeout expired, or the network connection was broken.
> Traceback (most recent call last):
> =A0 File "/usr/bin/meld", line 154, in <module>
> =A0 =A0 main()
> =A0 File "/usr/bin/meld", line 136, in main
> =A0 =A0 import meld.meldapp
> =A0 File "/usr/share/meld/meld/meldapp.py", line 216, in <= ;module>
> =A0 =A0 app =3D MeldApp()
> =A0 File "/usr/share/meld/meld/meldapp.py", line 113, in __i= nit__
> =A0 =A0 self.prefs =3D preferences.MeldPreferences()
> =A0 File "/usr/share/meld/meld/preferences.py", line 259, in= __init__
> =A0 =A0 super(MeldPreferences, self).__init__("/apps/meld", = self.defaults)
> =A0 File "/usr/share/meld/meld/util/prefs.py", line 93, in _= _init__
> =A0 =A0 self._gconf.add_dir(rootkey, gconf.CLIENT_PRELOAD_NONE)
> glib.GError: No D-BUS daemon running
>
> Any chance of making meld simply disable dbus support when dbus is
> unavailable?

This is actually gconf, not Meld. Meld *also* has dbus support,= but
that should fail gracefully if we can't connect. We also have a
fallback for gconf support, but right now it only works if you don't have gconf installed; if it's installed but can't connect, then it<= br> blows up as above.

It probably wouldn't be too hard to make that fallback depend on
actual gconf viability rather than presence, but I haven't really
looked into it.

cheers,
Kai

OK= , thanks.
You want me to open a BZ?

- Gilboa

--f46d04478517c91ac304d81c1a4a-- From sveinse@seldal.com Mon Mar 18 10:18:05 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 422A976E9D for ; Mon, 18 Mar 2013 10:18:05 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -1.9 X-Spam-Level: X-Spam-Status: No, score=-1.9 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AadHyC5oRA9S for ; Mon, 18 Mar 2013 10:18:04 +0000 (UTC) Received: from smtp.domeneshop.no (smtp.domeneshop.no [194.63.252.54]) by restaurant.gnome.org (Postfix) with ESMTP id 6706176DFC for ; Mon, 18 Mar 2013 10:18:03 +0000 (UTC) Received: from [79.160.140.131] (port=1483 helo=[128.1.101.181]) by smtp.domeneshop.no with esmtpsa (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.72) (envelope-from ) id 1UHX8j-00023D-AT; Mon, 18 Mar 2013 11:18:01 +0100 Message-ID: <5146E9D8.2030204@seldal.com> Date: Mon, 18 Mar 2013 11:18:00 +0100 From: Svein Seldal User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130308 Thunderbird/17.0.4 MIME-Version: 1.0 To: Kai Willadsen Subject: Re: Use meld to diff a list of files References: <51430B3B.8070804@seldal.com> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Mar 2013 10:18:05 -0000 On 03/15/2013 09:20 PM, Kai Willadsen wrote: > I think you want the --diff command line argument, which launches a > tab for a two or three-way comparison. You can give Meld this argument > as many times as you like, and all of the comparisons will be launched > in tabs in a single window. I just tried it with --diff, but it generates too many tabs for any reasonable sized list. What I'd like to have is a directory view with the list I provide meld, and let the user pick the files to view diff on. This list is coming from python already, so I can access the meld classes directly if I have to. The reason I do this is because I need a tool for comparing root file systems. Meld is perfect for visualising the differences, but it has some features which spoils my usage. Meld seems to follow symlinks, which pollutes melds output and it might end up comparing the wrong file (e.g. a symlink pointing out of the file system). I know you can disable symlinks alltogether, but that isn't what I need either. And then you have special files (blk, chr, fifo and sockets). I understand that this functionality is outside meld's scope, so I wrote my own directory diff program in Py. It compares two directory trees and it compares the metadata of files, e.g. link content/data instead of following the link, blk/chr dev major/minor compare. For ordinary files it just compares sizes and sha1 hashsums. If not equal I'd like to display the diff in meld. Best regards, Svein Seldal From pedro.pedruzzi@gmail.com Mon Mar 18 17:57:21 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 116C076ADF for ; Mon, 18 Mar 2013 17:57:21 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pXDpjDGqCMqs for ; Mon, 18 Mar 2013 17:57:07 +0000 (UTC) Received: from mail-wg0-f49.google.com (mail-wg0-f49.google.com [74.125.82.49]) by restaurant.gnome.org (Postfix) with ESMTP id 2587976B20 for ; Mon, 18 Mar 2013 17:57:06 +0000 (UTC) Received: by mail-wg0-f49.google.com with SMTP id ds1so4143281wgb.28 for ; Mon, 18 Mar 2013 10:57:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type:content-transfer-encoding; bh=ZNkhY4cqrfpKDIMsJNMeSynGpr47yiF6M//pC+09yHo=; b=nSjer0d39Ar9vnMrCQGujgLWVf2u4+8IHsl5wonNTXUN/Nc6/MaKKxSd4AuwiBNyD4 GJQ3QeaflV9IX5uqGyaSlgnxRItGn2+Yy/bJ6O1BgjC/Xja9fIngYQw6mvJTK4Zh//n5 VB/3FhBC9iJRvh3kojPENN2b2i4JgLpep5tTOh00Y0UMvx8xJQiTJT13YsrNqGbxcp7/ s4rQpV6mGi3deGE9F6RJUpQDwtX49ds2aYXwPqEpAKws8Qc+tv3yDhP1oqTC9+IcEWNe n1gsBp7Y3sze2e7iafysQSjdujZ7Jxb90WSYfGRjBlo34dcobv4+zNVLmOq9c5WjjT+b XFGg== MIME-Version: 1.0 X-Received: by 10.180.84.8 with SMTP id u8mr6120wiy.1.1363629424483; Mon, 18 Mar 2013 10:57:04 -0700 (PDT) Received: by 10.227.112.139 with HTTP; Mon, 18 Mar 2013 10:57:04 -0700 (PDT) In-Reply-To: References: Date: Mon, 18 Mar 2013 14:57:04 -0300 Message-ID: Subject: Re: "static/fixed" mode on file diff view From: Pedro Pedruzzi To: Kai Willadsen Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Mar 2013 17:57:21 -0000 On Thu, Mar 14, 2013 at 6:15 PM, Kai Willadsen wr= ote: > I'm actually surprised how well that works! I think we need to figure > out a way of doing what other diff tools do, and indicating the areas > that have been inserted to get the alignment right. I'm not sure > whether GtkTextView will let us do that easily, but we can see. > > I've just had an alternative crazy idea. If tags don't give us the > flexibility we need, we could always insert a custom GTK widget after > each chunk, and give allocation to the widget based on required > padding. That should allow us to use whatever presentation we like. > > ...don't do that though. That's a crazy idea. I've just managed to indicate the inserted areas with a nice hatch pattern. I think it is actually very close to what I imagined before. Please take a look: https://github.com/pedrox/meld/commit/92974e0754da4e45dd9f111c6bc8cd06cafc9= 157 But there is still a problem that might be solved by your crazy idea. There is a particular case that we cannot fix the alignment with pixel-below-lines. We can't add a space before line 1 with pixel-below-lines. It is the case when there is change in the form DiffChunk(tag=3D'insert', start_a=3D0, end_a=3D0, start_b=3D0, end_b=3DX). We can't use pixel-above-lines as well, because the displayed line numbers would be aligned at the beginning of the padding not where the text line really begins We actually want to add a space _between_ lines, not below nor above. Can we do that with your trick? >> I have some questions: >> >> 1. Where is a good place to do the tag creation? I tried somewhere in >> the constructor but it seems that the linediffer was not ready to >> iterate over changes yet. > > I can't see any way of getting away from having a tag per chunk, which > means that there's no way to do it in the constructor. You can do this > is many places, but FileDiff._diff_files() is the first place where > we're guaranteed to have the diffs. Of course, those diffs can change, > and if they do then we'll get a callback to > FileDiff.on_diffs_changed(), which would probably be the right place > to update and revalidate tags. > >> 2. How about 3 way filediffs? I would need to iterate over chunks on >> the 3 panes. > > Exactly. Things are always complicated by 3-way diffs, but in this > case I think it's just a matter of adapting your code to use > linediffer.all_changes() instead of single_changes() and taking the > max of three offsets rather than of two. Ok, I'll try to do that next. =C4=B1zzn=C9=B9p=C7=9D=D4=80 o=C9=B9p=C7=9D=D4=80 From pintuxgu@hoevendesign.com Mon Mar 18 18:38:46 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 296A676DCB for ; Mon, 18 Mar 2013 18:38:46 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.501 X-Spam-Level: X-Spam-Status: No, score=-2.501 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, FROM_12LTRDOM=0.099, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hpeBDTfol-Zh for ; Mon, 18 Mar 2013 18:38:36 +0000 (UTC) X-Greylist: delayed 1225 seconds by postgrey-1.34 at restaurant.gnome.org; Mon, 18 Mar 2013 18:38:35 UTC Received: from s71.webhostingserver.nl (s71.webhostingserver.nl [195.211.72.7]) by restaurant.gnome.org (Postfix) with ESMTP id EE98B76D70 for ; Mon, 18 Mar 2013 18:38:35 +0000 (UTC) Received: from 82-170-144-131.ip.telfort.nl ([82.170.144.131] helo=dualcore) by s71.webhostingserver.nl with smtp (Exim 4.73) (envelope-from ) id 1UHedR-00015w-H7 for meld-list@gnome.org; Mon, 18 Mar 2013 19:18:13 +0100 Date: Mon, 18 Mar 2013 19:18:13 +0100 From: pintuxgu To: meld-list@gnome.org Subject: New algorithm. Message-Id: <20130318191813.daa56153851617272989eac5@hoevendesign.com> X-Mailer: Sylpheed 3.2.0 (GTK+ 2.24.10; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Tue, 19 Mar 2013 08:02:23 +0000 X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Mar 2013 18:38:46 -0000 I have an idea for resynchronizing matches between files and I'm curious what you think of it. I'm not sure about the quality of this idea, nor of the feasability of implementation. The basic algorithm is this: 1). Take a limited number of random (sub) strings form file A (20, every 5 % for example). 2). Make 20 linked lists of matches with file B. (Samples "unique" enough, short lists). 3). Expand all unique matches (Linked lists with 2 items) maximally. (Is this the "snake" in action?) 4). Mark all the matched text found / and the matched links between the files. 5). Repeat step 1 once (twice, recursive?). But not for the whole file, but for the parts between 2 previous matches. 6). We have now a maximum of 20x20=400 (8000 for 3 passes...) matches between the files. 7). All text not marked yet is now assumed to be only in file A or in file B. 8). Maybe use a different algorithm for further refinement. Some thoughts: - This works beautifully if for example the order of complete functions is changed in a source files. - I think It's relatively fast because of the limited number of scans through the files. - File's which don't mach at all can easily be recognized (If the samples in step 1 are chosen properly). - Make binary tree with snippets text marked "matched", "Only in A", "Only in B" ? - How difficult would it be to implement this? - Lots of room for all kinds of optimisations - Don't read file A, - Smart "guesses" in file B. - Offsets form start or end of line for matches. - Etc. - Maybe a variant of this idea can be integrated in the existing matching algorithms. - I'm curious what you tink of this, maybe I'm just being silly. Greetings, Pintuxgu. From pintuxgu@hoevendesign.com Mon Mar 18 18:38:47 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id DB3D776B35 for ; Mon, 18 Mar 2013 18:38:47 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.501 X-Spam-Level: X-Spam-Status: No, score=-2.501 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, FROM_12LTRDOM=0.099, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AU-4nvV-4dsC for ; Mon, 18 Mar 2013 18:38:37 +0000 (UTC) Received: from s71.webhostingserver.nl (s71.webhostingserver.nl [195.211.72.7]) by restaurant.gnome.org (Postfix) with ESMTP id C95E576BA1 for ; Mon, 18 Mar 2013 18:38:37 +0000 (UTC) Received: from 82-170-144-131.ip.telfort.nl ([82.170.144.131] helo=dualcore) by s71.webhostingserver.nl with smtp (Exim 4.73) (envelope-from ) id 1UHedM-00015D-4k for meld-list@gnome.org; Mon, 18 Mar 2013 19:18:08 +0100 Date: Mon, 18 Mar 2013 19:18:07 +0100 From: pintuxgu To: meld-list@gnome.org Subject: Introducing myself. Message-Id: <20130318191807.1916a73f44b9947f74963e77@hoevendesign.com> X-Mailer: Sylpheed 3.2.0 (GTK+ 2.24.10; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Tue, 19 Mar 2013 08:02:23 +0000 X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Mar 2013 18:38:47 -0000 Hi everybody. i'm new here so I'll first introduce myself. Don't waste your time on this mail if you're not curious for personal stuff. I'll post technical stuff in a separate mails. I'm now just over 40 years old, and have been programming in C as a hobby every now and then since I bought my first PC over 20 years ago, but I never had a formal education in this field. I have been programming with C as a job for 3 years. It was maintenance for an embedded 16-bit microcontroller. During that time I was still using windows and used Araxis quite a lot for comparing source code. Imagine 2 or 3 people working simultaneously on different parts of the same program without any use of a source code management system... At home I've been using Meld occasionaly for embedded stuff for about 2 years and it has improved a lot since. Thanks for al the work. When I first started using Meld It was just about usable, as long as the source code had not changed too much. With the last update I (use 1.6.0 now) this has improved a lot but It still doesn't come near the quality of Araxis which I used during work long ago. Both programs have a common problem with resynchonizing if there are a lot of changes between different versions of the source code and I've been thinking about ways to improve that every now and ten. Just a few hours ago I had a brainfart and after a few scribbles on a piece of paper I started crawling the web. Found the meld-list, source code (A lot of python surpisingly. I was just reading a book about that...) and a reference to a Meyers algorithm in the comment (Can't find the pdf on their site, but haven't searced for more than a few minutes yet). I also found and some references to crawling snakes. But before I put more effort into this I'm curious what you think about my "new algorithm" for resynchoninzing. My Idea also has an overlap with the "New feature" mail from 2013-02-19. Just curious: How many people are actively developing Meld at the time and how much time / effort do they on (on average / max.) put into it? Greetings, Pintuxgu. From pintuxgu@hoevendesign.com Mon Mar 18 18:39:00 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 5032C76ECC for ; Mon, 18 Mar 2013 18:39:00 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.501 X-Spam-Level: X-Spam-Status: No, score=-2.501 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, FROM_12LTRDOM=0.099, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vEFf7csK8y8t for ; Mon, 18 Mar 2013 18:38:59 +0000 (UTC) Received: from s71.webhostingserver.nl (s71.webhostingserver.nl [195.211.72.7]) by restaurant.gnome.org (Postfix) with ESMTP id B374976ADF for ; Mon, 18 Mar 2013 18:38:59 +0000 (UTC) Received: from 82-170-144-131.ip.telfort.nl ([82.170.144.131] helo=dualcore) by s71.webhostingserver.nl with smtp (Exim 4.73) (envelope-from ) id 1UHedb-00016f-O0 for meld-list@gnome.org; Mon, 18 Mar 2013 19:18:23 +0100 Date: Mon, 18 Mar 2013 19:18:23 +0100 From: pintuxgu To: meld-list@gnome.org Subject: Some simple Ideas for improvement. Message-Id: <20130318191823.419e1615359b2fa4d56e1360@hoevendesign.com> X-Mailer: Sylpheed 3.2.0 (GTK+ 2.24.10; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Tue, 19 Mar 2013 08:02:23 +0000 X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Mar 2013 18:39:00 -0000 Hi, While using Meld every now and then I have some ideas which could be implemented relatively easy and would make it a lot more comfortable for me (and others) to use. 1). Eliminate the difference between "File Comparison" and "Directory" Comparason tabs. If you open file's it compares the files, if you open directory's it compares directories. 2). Change "Mine", "Original", "Other" to: "Left" "Right", "Middle". I can't see where "Original" is on my screen unless I look at the file names. 3). I mainly use the "Chose File" dialog for opening a default empty comparison. [CTRL] + n , [ENTER]. And then drag the files with the mouse from a file manager. Opening a default empty comparison window would be a bit easier on my fingers. Maybe I'll put some effort into this myself, but I'm not really comfortable with Git, nor with Python yet. (See my "introduction mail"). Greetings, Pintuxgu. From paul@hoevendesign.com Mon Mar 18 23:38:51 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 734EB769AB for ; Mon, 18 Mar 2013 23:38:51 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.6 X-Spam-Level: X-Spam-Status: No, score=-2.6 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dI7cum2TX0z1 for ; Mon, 18 Mar 2013 23:38:41 +0000 (UTC) X-Greylist: delayed 2094 seconds by postgrey-1.34 at restaurant.gnome.org; Mon, 18 Mar 2013 23:38:40 UTC Received: from s71.webhostingserver.nl (s71.webhostingserver.nl [195.211.72.7]) by restaurant.gnome.org (Postfix) with ESMTP id EC88B769DB for ; Mon, 18 Mar 2013 23:38:40 +0000 (UTC) Received: from 82-170-144-131.ip.telfort.nl ([82.170.144.131] helo=dualcore) by s71.webhostingserver.nl with esmtpa (Exim 4.73) (envelope-from ) id 1UHj5j-00027J-HZ for meld-list@gnome.org; Tue, 19 Mar 2013 00:03:43 +0100 Date: Tue, 19 Mar 2013 00:03:41 +0100 From: paul To: meld-list@gnome.org Subject: Re: "static/fixed" mode on file diff view / Mail Bug? Message-Id: <20130319000341.1c0b079693e4773e9ab10afc@hoevendesign.com> In-Reply-To: References: X-Mailer: Sylpheed 3.2.0 (GTK+ 2.24.10; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Mailman-Approved-At: Tue, 19 Mar 2013 08:02:23 +0000 X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Mar 2013 23:38:51 -0000 Today I subscribed to the Meld mailing list and my 3 messages are still awaiting moderation. Unfortunately, but very understandable in these times. Before my message's are approved however, 2 e-mail adresses were already revealed to me by this mail. Pedruzzi's and Willadsen's. In my humble opinion this should be treated as a bug in (the configuration of?) the mailing list software. On Mon, 18 Mar 2013 14:57:04 -0300 Pedro Pedruzzi wrote: > On Thu, Mar 14, 2013 at 6:15 PM, Kai Willadsen wrote: > > I'm actually surprised how well that works! I think we need to figure > > out a way of doing what other diff tools do, and indicating the areas > > that have been inserted to get the alignment right. I'm not sure > > whether GtkTextView will let us do that easily, but we can see. > > > > I've just had an alternative crazy idea. If tags don't give us the > > flexibility we need, we could always insert a custom GTK widget after > > each chunk, and give allocation to the widget based on required > > padding. That should allow us to use whatever presentation we like. > > > > ...don't do that though. That's a crazy idea. > > I've just managed to indicate the inserted areas with a nice hatch > pattern. I think it is actually very close to what I imagined before. > Please take a look: > > https://github.com/pedrox/meld/commit/92974e0754da4e45dd9f111c6bc8cd06cafc9157 > > But there is still a problem that might be solved by your crazy idea. > There is a particular case that we cannot fix the alignment with > pixel-below-lines. We can't add a space before line 1 with > pixel-below-lines. It is the case when there is change in the form > DiffChunk(tag='insert', start_a=0, end_a=0, start_b=0, end_b=X). > > We can't use pixel-above-lines as well, because the displayed line > numbers would be aligned at the beginning of the padding not where the > text line really begins > > We actually want to add a space _between_ lines, not below nor above. > Can we do that with your trick? > > >> I have some questions: > >> > >> 1. Where is a good place to do the tag creation? I tried somewhere in > >> the constructor but it seems that the linediffer was not ready to > >> iterate over changes yet. > > > > I can't see any way of getting away from having a tag per chunk, which > > means that there's no way to do it in the constructor. You can do this > > is many places, but FileDiff._diff_files() is the first place where > > we're guaranteed to have the diffs. Of course, those diffs can change, > > and if they do then we'll get a callback to > > FileDiff.on_diffs_changed(), which would probably be the right place > > to update and revalidate tags. > > > >> 2. How about 3 way filediffs? I would need to iterate over chunks on > >> the 3 panes. > > > > Exactly. Things are always complicated by 3-way diffs, but in this > > case I think it's just a matter of adapting your code to use > > linediffer.all_changes() instead of single_changes() and taking the > > max of three offsets rather than of two. > > Ok, I'll try to do that next. > > ızznɹpǝԀ oɹpǝԀ > _______________________________________________ > meld-list mailing list > meld-list@gnome.org > https://mail.gnome.org/mailman/listinfo/meld-list From ezquerra@gmail.com Tue Mar 19 13:31:16 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id AA9C976B48 for ; Tue, 19 Mar 2013 13:31:16 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id b9shMb64a8-K for ; Tue, 19 Mar 2013 13:31:16 +0000 (UTC) Received: from mail-vb0-f49.google.com (mail-vb0-f49.google.com [209.85.212.49]) by restaurant.gnome.org (Postfix) with ESMTP id 286ED76A3B for ; Tue, 19 Mar 2013 13:31:15 +0000 (UTC) Received: by mail-vb0-f49.google.com with SMTP id s24so305265vbi.36 for ; Tue, 19 Mar 2013 06:31:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:sender:date:x-google-sender-auth:message-id :subject:from:to:content-type; bh=rhJXyMP9rrDviBM0dAlSDiBy5EernZhjmpbT2BHg9hU=; b=UIPI3HWb8n/SovYvGHsCkJJgtMmb8gMTcZNIUmHriSp4MNoAiW4rYF2QZQd7FS6nbk CuBcYr+SFPmHsKhOH8fH55w6u3rO+kaMIy2SvK59E9T6z6Z2JI6N0dGK5L07RGTYwaTT b2wC7A2itiu0SM21bFBxVAkPWUGFh1ZHF1zfHaWQ8ohe9IBgt+pgDZtWQSF11hqi6ipD sP/TkFSADe+TmzSycd6zvZQlaN0b2HbVIFgIXT34DuGpxCtrxEP7Ys/BQ5e6gzGkBf6W w56Q9C32M8aMOZZz0LAa7RuNEHLBCpTnNvQ4H0tDoM60RJMAeGl/updkmxEFkGCwQ799 tJ3g== MIME-Version: 1.0 X-Received: by 10.58.4.226 with SMTP id n2mr2060648ven.58.1363699874383; Tue, 19 Mar 2013 06:31:14 -0700 (PDT) Sender: ezquerra@gmail.com Received: by 10.58.54.1 with HTTP; Tue, 19 Mar 2013 06:31:14 -0700 (PDT) Date: Tue, 19 Mar 2013 14:31:14 +0100 X-Google-Sender-Auth: _ku0cKpyXilZS9QEi335749qeEE Message-ID: Subject: Passing a single directory or file to meld From: Angel Ezquerra To: meld-list Content-Type: text/plain; charset=ISO-8859-1 X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Mar 2013 13:31:16 -0000 Hi, currently if you pass a single directory to meld it tries to open it in "version control mode". Personally I can see the value of that mode but I do not use it myself. Instead what I often want to do (on Windows) is to use the meld shortcut that Kai's installer creates on the "Send to" context menu to start a diff between two directories or files. For example, if you want to compare two folders that happen to be on the same location (i.e. on the same directory) you can just select the two folders on Windows Explorer, right click, select "Send To / Meld" and voila, meld opens and diffs the two directories. You can do the same with two files which are on the same directory. The problem comes when you try to compare two directories of files that are on different locations on your hard drive. In that case you cannot use the meld "send to" shortcut, because if you use it with the first directory, meld will just try to open it in VCS mode! If you try to do the same with a single file (rather than a directory) it does not work either. In fact the file that you pass to meld seems to be ignored, and meld just opens with the default "startup window" that lets you choose the mode. So I'd like to ask if there is some way around this. If not it would be nice to be able to tell meld not to start in VCS mode, and just take the input file or directory name that you pass to it and put it on the left panel. For the record, this is the way it works with several other diff tools, such as KDiff3, WinMerge and Araxis Merge. Cheers, Angel From kai.willadsen@gmail.com Tue Mar 19 20:54:44 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id D42CB76960 for ; Tue, 19 Mar 2013 20:54:44 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id YhtfhN-GkV+E for ; Tue, 19 Mar 2013 20:54:44 +0000 (UTC) Received: from mail-wi0-f181.google.com (mail-wi0-f181.google.com [209.85.212.181]) by restaurant.gnome.org (Postfix) with ESMTP id 01CB0762EA for ; Tue, 19 Mar 2013 20:54:42 +0000 (UTC) Received: by mail-wi0-f181.google.com with SMTP id hm6so1035147wib.14 for ; Tue, 19 Mar 2013 13:54:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=lc5aIyRNEw1AMIbCvnoo2Wwhp/7yZusAvC3YLfK9Lio=; b=YWUALs6af8WIRKLrVjRN786hvoSXSnh+24ltBUTy3+i3fWTioQ8Rz0tj66LLlpxqTb qpnkX+0IyF0Cw9kqO0eAObuAv8Yj7B68Z9FGFwemXVPMm1YHHqfT5h850tXqVLmAH6C4 UD+jeETg3DmLO8TK1N1IBcUvH0fmXFsddjx6h39X8xq9YafU3hbq0MErxJMYssbKjAty 5Rg/DXWhUcisXeTSvKHF7ivTJGObpLL45T6ZHxpXyFEdlmTftKbi6hCfkpZJVkvrUAiy 0fynY9Xgo4MA0InUu3dvGE6oEvuui8mndICny1n/5jO4y9bUVKNbvy5L6yoZoSbP4BO/ 8KGg== MIME-Version: 1.0 X-Received: by 10.194.176.165 with SMTP id cj5mr324447wjc.37.1363726481107; Tue, 19 Mar 2013 13:54:41 -0700 (PDT) Received: by 10.216.41.68 with HTTP; Tue, 19 Mar 2013 13:54:40 -0700 (PDT) In-Reply-To: <5146E9D8.2030204@seldal.com> References: <51430B3B.8070804@seldal.com> <5146E9D8.2030204@seldal.com> Date: Wed, 20 Mar 2013 06:54:40 +1000 Message-ID: Subject: Re: Use meld to diff a list of files From: Kai Willadsen To: Svein Seldal Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Mar 2013 20:54:44 -0000 On 18 March 2013 20:18, Svein Seldal wrote: > On 03/15/2013 09:20 PM, Kai Willadsen wrote: >> >> I think you want the --diff command line argument, which launches a >> tab for a two or three-way comparison. You can give Meld this argument >> as many times as you like, and all of the comparisons will be launched >> in tabs in a single window. > > > I just tried it with --diff, but it generates too many tabs for any > reasonable sized list. Ah okay... I misunderstood what you were looking for. > What I'd like to have is a directory view with the list I provide meld, and > let the user pick the files to view diff on. This list is coming from python > already, so I can access the meld classes directly if I have to. > > The reason I do this is because I need a tool for comparing root file > systems. Meld is perfect for visualising the differences, but it has some > features which spoils my usage. Meld seems to follow symlinks, which > pollutes melds output and it might end up comparing the wrong file (e.g. a > symlink pointing out of the file system). I know you can disable symlinks > alltogether, but that isn't what I need either. And then you have special > files (blk, chr, fifo and sockets). > > I understand that this functionality is outside meld's scope, so I wrote my > own directory diff program in Py. It compares two directory trees and it > compares the metadata of files, e.g. link content/data instead of following > the link, blk/chr dev major/minor compare. For ordinary files it just > compares sizes and sha1 hashsums. If not equal I'd like to display the diff > in meld. This all sounds good, but I can't think of any sensible way to do this without hacking into the internals of Meld. The stuff you're looking for is in DirDiff, which is sizable and not very well organised. Good luck! It sounds to me like you want to populate the folder comparison tree with your own data and your own columns. Adding new columns is no (as of 1.7.1) a feasible option (see e.g., column creation in DirDiff.__init__ and state setting in DirDiff._update_item_state). The hard part is filling your custom model. Depending on how your existing Python code works, you may want to see whether you can shim the additional information into DirDiff._search_recursively_iter, or you may want to see whether you can replace that stuff entirely by just manually creating your own treestore and setting it on DirDiff. Anyway, those are just my guesses. Hope that helps. cheers, Kai From kai.willadsen@gmail.com Tue Mar 19 21:04:53 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id C6C7C762EA for ; Tue, 19 Mar 2013 21:04:53 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XI65XEkrO4LQ for ; Tue, 19 Mar 2013 21:04:53 +0000 (UTC) Received: from mail-wi0-f176.google.com (mail-wi0-f176.google.com [209.85.212.176]) by restaurant.gnome.org (Postfix) with ESMTP id 06485762E7 for ; Tue, 19 Mar 2013 21:04:52 +0000 (UTC) Received: by mail-wi0-f176.google.com with SMTP id hm14so4507763wib.15 for ; Tue, 19 Mar 2013 14:04:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=AvHV/XzOMmC5ccugxvm7MSYImIWJdTzNl4kCpgpJR7c=; b=dr7jI5oPnuXraPgmTGrIoG+NzXk4ckrKxi8dertl6/L8qSS/wOKNZZQ9YMPgGVCy4t +UJLqzmASAo9MK2XlaXQl3mWfibLKOjVqaWg+0+hDpa7N47qdRo92DV2hZBuPziwuhJY 74S5BFl7aJM8MX6wNBVfujy7UeQT+XlmckSPsej1Wmig3YymFOueoznI8T2lZNU7DA5K aFSGNjyQeuMLhfwcCfCHXT9vBOGcFS7G32vgQArvmA95EDLAKE8P8yC3leEf6UrZp2yJ dijMqQXiAIc/Af4ooJASC4LRwxLohKVCnVgSQTzaFnuhw4UogK4f4e2u7swzFrtHj0jz tRbg== MIME-Version: 1.0 X-Received: by 10.180.97.132 with SMTP id ea4mr6067744wib.23.1363727090727; Tue, 19 Mar 2013 14:04:50 -0700 (PDT) Received: by 10.216.41.68 with HTTP; Tue, 19 Mar 2013 14:04:50 -0700 (PDT) In-Reply-To: <20130318191823.419e1615359b2fa4d56e1360@hoevendesign.com> References: <20130318191823.419e1615359b2fa4d56e1360@hoevendesign.com> Date: Wed, 20 Mar 2013 07:04:50 +1000 Message-ID: Subject: Re: Some simple Ideas for improvement. From: Kai Willadsen To: pintuxgu Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Mar 2013 21:04:53 -0000 On 19 March 2013 04:18, pintuxgu wrote: > Hi, > > While using Meld every now and then I have some ideas which could be implemented relatively easy and would make it a lot more comfortable for me (and others) to use. > > 1). Eliminate the difference between "File Comparison" and "Directory" Comparason tabs. > If you open file's it compares the files, if you open directory's it compares directories. Yeah I'd love to be able to do something like this, but we can't. GTK's file chooser doesn't have a 'file or directory' mode; it's either one or the other. > 2). Change "Mine", "Original", "Other" to: "Left" "Right", "Middle". > I can't see where "Original" is on my screen unless I look at the file names. > > 3). I mainly use the "Chose File" dialog for opening a default empty comparison. > [CTRL] + n , [ENTER]. And then drag the files with the mouse from a file manager. > Opening a default empty comparison window would be a bit easier on my fingers. Have a look at Meld 1.7.1. The new comparison dialog is gone, and opens a new tab that may address some of your suggestions. There's no labels (the old labels directly related to Meld's use as a VC merge tool) and instead correspond directly to placement in the resulting comparison. cheers, Kai From kai.willadsen@gmail.com Tue Mar 19 21:13:42 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 3E7D3762EA for ; Tue, 19 Mar 2013 21:13:42 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qP7Hnuv-rtpI for ; Tue, 19 Mar 2013 21:13:32 +0000 (UTC) Received: from mail-wg0-f41.google.com (mail-wg0-f41.google.com [74.125.82.41]) by restaurant.gnome.org (Postfix) with ESMTP id F331C762E7 for ; Tue, 19 Mar 2013 21:13:31 +0000 (UTC) Received: by mail-wg0-f41.google.com with SMTP id ds1so383367wgb.0 for ; Tue, 19 Mar 2013 14:13:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=DP4HI9Lsdm6B/Xj2mvKGmaKb0crq6mILE9+qjqUb8/w=; b=rVmyuGzKORkil0AyRnmqQ7oQZ4gRxt/IxwEqKfA3dhSUMwH0VFLj0JlxLmqUqpi/VQ tlPXq79gzzf+HvWfZUO1eN18fwlEXJbkamap2H08bKyUxZ4RbO6gT1wJ/NByU0ehEESF u5gquSP9VyalwKNjMX15rSQSeAEtFhPy5CJnyiSVfoHqvBHIuLLPTfsOFZpkV9j1vofu tYYNUg52vl5Kp1lhaVJvbtEUjW5c1LLyd4jXhWHxlmfT7yDHuMuQI+w8lRZ/4KoonniF 0Ne74yHAxTZrwRB1wmqN0DuXxucD8G0jBMeBLttlJOpi3u9+/baW9AfZhcO48On8HUwf 8+8w== MIME-Version: 1.0 X-Received: by 10.180.100.10 with SMTP id eu10mr7922076wib.4.1363727609745; Tue, 19 Mar 2013 14:13:29 -0700 (PDT) Received: by 10.216.41.68 with HTTP; Tue, 19 Mar 2013 14:13:29 -0700 (PDT) In-Reply-To: References: Date: Wed, 20 Mar 2013 07:13:29 +1000 Message-ID: Subject: Re: Passing a single directory or file to meld From: Kai Willadsen To: Angel Ezquerra Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Mar 2013 21:13:42 -0000 On 19 March 2013 23:31, Angel Ezquerra wrote: > Hi, > > currently if you pass a single directory to meld it tries to open it > in "version control mode". Personally I can see the value of that mode > but I do not use it myself. Instead what I often want to do (on > Windows) is to use the meld shortcut that Kai's installer creates on > the "Send to" context menu to start a diff between two directories or > files. > > For example, if you want to compare two folders that happen to be on > the same location (i.e. on the same directory) you can just select the > two folders on Windows Explorer, right click, select "Send To / Meld" > and voila, meld opens and diffs the two directories. You can do the > same with two files which are on the same directory. > > The problem comes when you try to compare two directories of files > that are on different locations on your hard drive. In that case you > cannot use the meld "send to" shortcut, because if you use it with the > first directory, meld will just try to open it in VCS mode! > > If you try to do the same with a single file (rather than a directory) > it does not work either. In fact the file that you pass to meld seems > to be ignored, and meld just opens with the default "startup window" > that lets you choose the mode. > > So I'd like to ask if there is some way around this. If not it would > be nice to be able to tell meld not to start in VCS mode, and just > take the input file or directory name that you pass to it and put it > on the left panel. There's no way around this, and I'd rather not add more command line options if we don't have to. I've seen this dealt with on Gnome + Nautilus by having an extension that allows you to queue up items for comparison. See for example: http://my.opera.com/bachkhois/blog/2011/07/19/compare-files-with-meld-from-within-nautilus I have no idea what the limitations of the Windows 'Send To' command or explorer extensions are. Would it be possible to have some kind of similar queuing implementation there? Either way, the problem is that giving Meld a single directory is inherently ambiguous. You'd have to have "Send To -> Meld as folder comparison" and "Send To -> Meld as VC comparison" entries, which seems like overkill to me. What's the use-case distinction in Windows-land between opening something and Send-To-ing something? cheers, Kai From kai.willadsen@gmail.com Tue Mar 19 21:24:32 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 9F56A76960 for ; Tue, 19 Mar 2013 21:24:32 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kcSGocGrMX6A for ; Tue, 19 Mar 2013 21:24:22 +0000 (UTC) Received: from mail-we0-f170.google.com (mail-we0-f170.google.com [74.125.82.170]) by restaurant.gnome.org (Postfix) with ESMTP id 41B39762E7 for ; Tue, 19 Mar 2013 21:24:21 +0000 (UTC) Received: by mail-we0-f170.google.com with SMTP id z53so849737wey.1 for ; Tue, 19 Mar 2013 14:24:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=+++Ma3jhCffhBSJkr6HbyqFEetfSbPE8cXX/C+/EOfo=; b=ujAe+skQ9fZmqTUz7/Pm8M8OupoetLyVxkoYXqIYuyKhOdyKNIuTDuT1z1YDAcbGKW TXHWi+ZdJVJnNsGSaP5IjcT6lJi391QWkBdBaEmLBgYJg6QSC8Cc4x4eUdgmvT7MomUZ KEZZUbrxM6rEHqozYROYG/5QNl77OyMBOiZ+cO61vihorXOS47eaSQuk3lJEUKMYj6YV eqUnTy+Wdn+RkQatRf3gsVwJxw8+wP72fP23itT5O5Y4MBux4viI3HulfoGAsBrIFD+r CzIijV2B1soDoLqJ8+JFiAGG+90R7vzd/Tn2wRz55MtHIYW5JxUlEtInIs2ibzROC2t5 iPlg== MIME-Version: 1.0 X-Received: by 10.180.84.8 with SMTP id u8mr7947686wiy.1.1363728259973; Tue, 19 Mar 2013 14:24:19 -0700 (PDT) Received: by 10.216.41.68 with HTTP; Tue, 19 Mar 2013 14:24:19 -0700 (PDT) In-Reply-To: References: Date: Wed, 20 Mar 2013 07:24:19 +1000 Message-ID: Subject: Re: "static/fixed" mode on file diff view From: Kai Willadsen To: Pedro Pedruzzi Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Mar 2013 21:24:32 -0000 On 19 March 2013 03:57, Pedro Pedruzzi wrote: > On Thu, Mar 14, 2013 at 6:15 PM, Kai Willadsen wrote: >> I'm actually surprised how well that works! I think we need to figure >> out a way of doing what other diff tools do, and indicating the areas >> that have been inserted to get the alignment right. I'm not sure >> whether GtkTextView will let us do that easily, but we can see. >> >> I've just had an alternative crazy idea. If tags don't give us the >> flexibility we need, we could always insert a custom GTK widget after >> each chunk, and give allocation to the widget based on required >> padding. That should allow us to use whatever presentation we like. >> >> ...don't do that though. That's a crazy idea. > > I've just managed to indicate the inserted areas with a nice hatch > pattern. I think it is actually very close to what I imagined before. > Please take a look: > > https://github.com/pedrox/meld/commit/92974e0754da4e45dd9f111c6bc8cd06cafc9157 That actually looks really good, and as a nice side-effect, avoids the fact that the previous version highlighted the pixel-below-lines space as part of the current line! > But there is still a problem that might be solved by your crazy idea. > There is a particular case that we cannot fix the alignment with > pixel-below-lines. We can't add a space before line 1 with > pixel-below-lines. It is the case when there is change in the form > DiffChunk(tag='insert', start_a=0, end_a=0, start_b=0, end_b=X). > > We can't use pixel-above-lines as well, because the displayed line > numbers would be aligned at the beginning of the padding not where the > text line really begins > > We actually want to add a space _between_ lines, not below nor above. > Can we do that with your trick? I'm honestly not sure. I suspect not, since as far as the Textview is concerned, the line extents include the inserted child widget. However, I personally could certainly live with the line number for the first line being misaligned. It's unfortunately noticeable, but I certainly don't think it's a show-stopper. It should be possible to use a different workaround by replacing the line-number display. This has been something I've wanted to do for ages, but requires an upgrade to our minimum supported version of PyGtkSourceview. Honestly, this is more likely to happen in a Gtk3 port than anywhere else. Anyway, this is starting to look really nice! cheers, Kai From kai.willadsen@gmail.com Tue Mar 19 21:32:52 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id CEA11762EA for ; Tue, 19 Mar 2013 21:32:51 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gNI5XOOuNV86 for ; Tue, 19 Mar 2013 21:32:51 +0000 (UTC) Received: from mail-wg0-f47.google.com (mail-wg0-f47.google.com [74.125.82.47]) by restaurant.gnome.org (Postfix) with ESMTP id E5707762E7 for ; Tue, 19 Mar 2013 21:32:50 +0000 (UTC) Received: by mail-wg0-f47.google.com with SMTP id dr13so792605wgb.14 for ; Tue, 19 Mar 2013 14:32:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=xdYmZcNFemsc10y5EHLVgd0bBzAwZfVE1/1W8b83Q0M=; b=SyiL4pbNfnRXmDpAHnTW2qlwwE/7hbaIQy9VpZldJebx4JBm+HmOX5ypXtFzNvepE7 eYHJRgjKloM0s1WSu0pwa4sbYzHpeQ/g/HQAnSkS9M1lM6Pvt5XmcfzXSBCp+EzAkQXi eqQYWWaKOmhLu80kP1FVVsGrMq76XwPMJjUmF+2oh4CaDCHeNHp7dCsH+hYhnPdA5VbE 5kET6U+4h4qR7FE5EgvoBNl1vx2cCll7IRz34mjwung1Ja4SMEyCBZZT4BwzpVS4MRAr 4NZVa52I3N7BmWekXN55wpSaFA7ZOhxPD+1RDSzwmNQVaVOTv3yfrT4N3kAf9ckX6ywL e0lQ== MIME-Version: 1.0 X-Received: by 10.180.97.132 with SMTP id ea4mr6176152wib.23.1363728768830; Tue, 19 Mar 2013 14:32:48 -0700 (PDT) Received: by 10.216.41.68 with HTTP; Tue, 19 Mar 2013 14:32:48 -0700 (PDT) In-Reply-To: <20130318191807.1916a73f44b9947f74963e77@hoevendesign.com> References: <20130318191807.1916a73f44b9947f74963e77@hoevendesign.com> Date: Wed, 20 Mar 2013 07:32:48 +1000 Message-ID: Subject: Re: Introducing myself. From: Kai Willadsen To: pintuxgu Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Mar 2013 21:32:52 -0000 On 19 March 2013 04:18, pintuxgu wrote: > When I first started using Meld It was just about usable, as long as the > source code had not changed too much. With the last update I (use 1.6.0 > now) this has improved a lot but It still doesn't come near the quality of > Araxis which I used during work long ago. Both programs have a common > problem with resynchonizing if there are a lot of changes between different > versions of the source code and I've been thinking about ways to improve > that every now and ten. I'm not sure what you mean by 'resynchronising'. Do you mean doing the initial diff, or updating the diff when the user makes changes? > Just curious: > How many people are actively developing Meld at the time and how much > time / effort do they on (on average / max.) put into it? There's one maintainer (me) and I'm the only one doing day-to-day bits and pieces, answering mailing list questions, etc. though I do find some time at least for features. I spend a few hours per week... not really sure how many, but more than 2 and usually less than 8. There are several other people who have been around for a while (check the NEWS file) and semi-regularly send in fixes, which is great. There are a few people interested in specific VC backends, which is useful as I only use Git and Mercurial. Piotr Piastucki has been responsible for a lot of our recent diff work, including our whole Myer's diff implementation and some merging work. In the last couple of releases, there have also been several people contributing significant features, which is awesome! cheers, Kai From kai.willadsen@gmail.com Tue Mar 19 21:36:47 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id DAB16762EA for ; Tue, 19 Mar 2013 21:36:47 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id mp7ucAJOEEnD for ; Tue, 19 Mar 2013 21:36:47 +0000 (UTC) Received: from mail-wg0-f49.google.com (mail-wg0-f49.google.com [74.125.82.49]) by restaurant.gnome.org (Postfix) with ESMTP id 1A40A76960 for ; Tue, 19 Mar 2013 21:36:46 +0000 (UTC) Received: by mail-wg0-f49.google.com with SMTP id gg9so408623wgb.16 for ; Tue, 19 Mar 2013 14:36:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=JR9g+R844A60gIP/AWlX7MoVZk9XlSMTvOnCyOal6eA=; b=dqAIvjb8rpm1xSIJ3xR4Uei+dGzl9PJcMEqILUQkKfLW6V2CPEi6QngurdFbTJOV/l 6Onzwdo3BtrUnpw8mQZoiGk3LchptAtXVorXXm99RH5UOBGXMgtQGnIlaYoDdgQDOXkd h/3RzuGcSR9COKEKieLiPmuVSWl4+5eUQ7qcBq1DKv46OfdV4CBf9bc5ehXkbQhrC08n OmgQP2xB7AhoIQ1Uwd158u/yjnTegMCDYLTAG1PqaLljEVJ9PPm+Mr7x9cHCcCldzL2k rAY5+vIwCV77Z/0tYTtMMtk4V/ddrokFp+8jZDbXzhq/182FAr/ouPJgWn7iVPC5PWOB ktNQ== MIME-Version: 1.0 X-Received: by 10.180.97.132 with SMTP id ea4mr6190660wib.23.1363729004969; Tue, 19 Mar 2013 14:36:44 -0700 (PDT) Received: by 10.216.41.68 with HTTP; Tue, 19 Mar 2013 14:36:44 -0700 (PDT) In-Reply-To: References: Date: Wed, 20 Mar 2013 07:36:44 +1000 Message-ID: Subject: Re: Support for DBUS-less mode. From: Kai Willadsen To: Gilboa Davara Content-Type: text/plain; charset=UTF-8 Cc: Users/Devel Meld X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Mar 2013 21:36:47 -0000 On 17 March 2013 20:12, Gilboa Davara wrote: > On Sat, Mar 16, 2013 at 10:07 PM, Kai Willadsen > wrote: >> >> On 16 March 2013 14:57, Gilboa Davara wrote: >> > Hello, >> > >> > When trying to used meld to compare files as root, I'm getting >> > exceptions >> > due to meld being unable to connect to DBUS (access denied). >> > >> > (meld:29000): GConf-WARNING **: Client failed to connect to the D-BUS >> > daemon: >> > Did not receive a reply. Possible causes include: the remote application >> > did >> > not send a reply, the message bus security policy blocked the reply, the >> > reply timeout expired, or the network connection was broken. >> > Traceback (most recent call last): >> > File "/usr/bin/meld", line 154, in >> > main() >> > File "/usr/bin/meld", line 136, in main >> > import meld.meldapp >> > File "/usr/share/meld/meld/meldapp.py", line 216, in >> > app = MeldApp() >> > File "/usr/share/meld/meld/meldapp.py", line 113, in __init__ >> > self.prefs = preferences.MeldPreferences() >> > File "/usr/share/meld/meld/preferences.py", line 259, in __init__ >> > super(MeldPreferences, self).__init__("/apps/meld", self.defaults) >> > File "/usr/share/meld/meld/util/prefs.py", line 93, in __init__ >> > self._gconf.add_dir(rootkey, gconf.CLIENT_PRELOAD_NONE) >> > glib.GError: No D-BUS daemon running >> > >> > Any chance of making meld simply disable dbus support when dbus is >> > unavailable? >> >> This is actually gconf, not Meld. Meld *also* has dbus support, but >> that should fail gracefully if we can't connect. We also have a >> fallback for gconf support, but right now it only works if you don't >> have gconf installed; if it's installed but can't connect, then it >> blows up as above. >> >> It probably wouldn't be too hard to make that fallback depend on >> actual gconf viability rather than presence, but I haven't really >> looked into it. >> >> cheers, >> >> Kai > > > OK, thanks. > You want me to open a BZ? Turns out we already had one: https://bugzilla.gnome.org/show_bug.cgi?id=666136 Reading through that, it looks like we can't sanely handle this since gconf error handling isn't bound in Python. For me this goes on the list of things that will change/get fixes by a Gtk3 port... one day. cheers, Kai From leech.miranda@gmail.com Tue Mar 19 22:39:00 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id D6860769AA for ; Tue, 19 Mar 2013 22:38:59 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FeST7oX3Dt73 for ; Tue, 19 Mar 2013 22:38:58 +0000 (UTC) Received: from mail-ee0-f48.google.com (mail-ee0-f48.google.com [74.125.83.48]) by restaurant.gnome.org (Postfix) with ESMTP id 3A3C8769A1 for ; Tue, 19 Mar 2013 22:38:57 +0000 (UTC) Received: by mail-ee0-f48.google.com with SMTP id t10so504900eei.35 for ; Tue, 19 Mar 2013 15:38:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:message-id:date:from:user-agent:mime-version:to:cc :subject:references:in-reply-to:content-type; bh=mlCw00l+tHtk2ggSI6VUkaYC7ZcRJyzTj/GhO96dvrY=; b=LDQEhrdxXHdaROzUgz9jUg3uBWGmHEGefbPaDAJCpYCBsB5BpIkW1CAefaqTQ0cVcp iFQ4ZFR6VCRJD3vIXTVOrK3huDDX0efbuUA1JxYAGIamyMOM4MFz5sA03eDuT42xQgmI h33KDy6A0Rp2FfYtppKSh7SstChiWqz9+jELgfI5Vsbezaf0RjpywBxE4W0CF9YcWmXN eueCyxrcWHvMoDpq35zM9iJWe7Qzwjl1WeVPHn5TCD/EjnN/7FnLQbqDpBBKusCYarYc nbTaN2qFHzgfOMzJCUdT84S0SlcxwydNmOjjwU5UFgV1fCoj+rFtIJ5rWGZt2piSqQ3B JsPw== X-Received: by 10.14.3.70 with SMTP id 46mr65362663eeg.2.1363732736191; Tue, 19 Mar 2013 15:38:56 -0700 (PDT) Received: from [192.168.0.100] (ip-182-198.ists.pl. [93.180.182.198]) by mx.google.com with ESMTPS id k7sm35753167een.8.2013.03.19.15.38.54 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 19 Mar 2013 15:38:54 -0700 (PDT) Message-ID: <5148E8FE.6060201@gmail.com> Date: Tue, 19 Mar 2013 23:38:54 +0100 From: Piotr Piastucki User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130308 Thunderbird/17.0.4 MIME-Version: 1.0 To: Kai Willadsen Subject: Re: New feature References: <5125DF32.1040309@gmail.com> <512B90AC.1040401@gmail.com> In-Reply-To: Content-Type: multipart/mixed; boundary="------------010909000301050700050003" Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Mar 2013 22:39:00 -0000 This is a multi-part message in MIME format. --------------010909000301050700050003 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 02/25/2013 08:48 PM, Kai Willadsen wrote: > > You're talking about your suggestion of doing an input split followed > by a double compare? In that case, yes, you should always get the sync > point included. > > I was talking about a different option entirely of simply forcing the > algorithm through that point. Since the result should be almost > identical (bar some heuristic speed-ups maybe?), I think doing > whatever is easiest is the best plan. > I am attaching a patch with SyncPointMyersSequenceMatcher class that does the split & merge as described before. There are also some unit tests included (at last). I have no idea what the UI should look like hence I did not even try to implement anything but the 'backend' stuff. Cheers, Piotr --------------010909000301050700050003 Content-Type: text/x-patch; name="0001-Add-SyncPointMyersSequenceMatcher-and-matcher-relate.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename*0="0001-Add-SyncPointMyersSequenceMatcher-and-matcher-relate.pa"; filename*1="tch" >From 9bd7ceac635d50b658c501e143a820a9c5fd6cc2 Mon Sep 17 00:00:00 2001 From: Piotr Piastucki Date: Tue, 19 Mar 2013 23:28:06 +0100 Subject: [PATCH] Add SyncPointMyersSequenceMatcher and matcher-related unit tests --- meld/matchers.py | 40 ++++++++++++++++++++++++++++++ meld/test_matchers.py | 66 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 meld/test_matchers.py diff --git a/meld/matchers.py b/meld/matchers.py index 27b41cc..cf103b7 100644 --- a/meld/matchers.py +++ b/meld/matchers.py @@ -359,3 +359,43 @@ class InlineMyersSequenceMatcher(MyersSequenceMatcher): a = indexed_a b = indexed_b return (a, b) + +class SyncPointMyersSequenceMatcher(MyersSequenceMatcher): + + def __init__(self, isjunk=None, a="", b="", syncpoints=None): + MyersSequenceMatcher.__init__(self, isjunk, a, b) + self.isjunk = isjunk + self.syncpoints = syncpoints + + def initialise(self): + if self.syncpoints is None or len(self.syncpoints) == 0: + for i in MyersSequenceMatcher.initialise(self): + yield i + else: + chunks = [] + ai = 0 + bi = 0 + for aj, bj in self.syncpoints: + chunks.append((ai, bi, self.a[ai:aj], self.b[bi:bj])) + ai = aj + bi = bj + if ai < len(self.a) or bi < len(self.b): + chunks.append((ai, bi, self.a[ai:len(self.a)], self.b[bi:len(self.b)])) + self.matching_blocks = [] + for ai, bi, a, b in chunks: + matcher = MyersSequenceMatcher(self.isjunk, a, b) + for i in matcher.initialise(): + yield i + blocks = matcher.get_matching_blocks() + l = len(self.matching_blocks) - 1 + if l >= 0 and len(blocks) > 1: + aj = self.matching_blocks[l][0] + bj = self.matching_blocks[l][1] + bl = self.matching_blocks[l][2] + if aj + bl == ai and bj + bl == bi and blocks[0][0] == 0 and blocks[0][1] == 0: + block = blocks.pop(0) + self.matching_blocks[l] = (aj, bj, bl + block[2]) + for x, y, l in blocks[:-1]: + self.matching_blocks.append((ai + x, bi + y, l)) + self.matching_blocks.append((len(self.a), len(self.b), 0)) + diff --git a/meld/test_matchers.py b/meld/test_matchers.py new file mode 100644 index 0000000..9cb7069 --- /dev/null +++ b/meld/test_matchers.py @@ -0,0 +1,66 @@ + +import unittest +import matchers + +class MatchersTests(unittest.TestCase): + + def testBasicMatcher(self): + a = list('abcbdefgabcdefg') + b = list('gfabcdefcd') + r = [(0, 2, 3), (4, 5, 3), (10, 8, 2), (15, 10, 0)] + matcher = matchers.MyersSequenceMatcher(None, a, b) + blocks = matcher.get_matching_blocks() + self.assertEqual(len(blocks), len(r)) + for i in range(len(blocks)): + self.assertEqual(blocks[i], r[i]) + + def testPostprocessingCleanup(self): + a = list('abcfabgcd') + b = list('afabcgabgcabcd') + r = [(0, 2, 3), (4, 6, 3), (7, 12, 2), (9, 14, 0)] + matcher = matchers.MyersSequenceMatcher(None, a, b) + blocks = matcher.get_matching_blocks() + self.assertEqual(len(blocks), len(r)) + for i in range(len(blocks)): + self.assertEqual(blocks[i], r[i]) + + def testInlineMatcher(self): + a = 'red, blue, yellow, white' + b = 'black green, hue, white' + r = [(17, 16, 7), (24, 23, 0)] + matcher = matchers.InlineMyersSequenceMatcher(None, a, b) + blocks = matcher.get_matching_blocks() + self.assertEqual(len(blocks), len(r)) + for i in range(len(blocks)): + self.assertEqual(blocks[i], r[i]) + + def testSyncPointMatcher0(self): + a = list('012a3456c789') + b = list('0a3412b5678') + r = [(0, 0, 1), (3, 1, 3), (6, 7, 2), (9, 9, 2), (12, 11, 0)] + matcher = matchers.SyncPointMyersSequenceMatcher(None, a, b) + blocks = matcher.get_matching_blocks() + self.assertEqual(len(blocks), len(r)) + for i in range(len(blocks)): + self.assertEqual(blocks[i], r[i]) + + def testSyncPointMatcher1(self): + a = list('012a3456c789') + b = list('0a3412b5678') + r = [(0, 0, 1), (1, 4, 2), (6, 7, 2), (9, 9, 2), (12, 11, 0)] + matcher = matchers.SyncPointMyersSequenceMatcher(None, a, b, [(3,6)]) + blocks = matcher.get_matching_blocks() + self.assertEqual(len(blocks), len(r)) + for i in range(len(blocks)): + self.assertEqual(blocks[i], r[i]) + + def testSyncPointMatcher2(self): + a = list('012a3456c789') + b = list('02a341b5678') + r = [(0, 0, 1), (2, 1, 4), (9, 9, 2), (12, 11, 0)] + matcher = matchers.SyncPointMyersSequenceMatcher(None, a, b, [(3,2), (8,6)]) + blocks = matcher.get_matching_blocks() + self.assertEqual(len(blocks), len(r)) + self.assertEqual(blocks[0], r[0]) + self.assertEqual(blocks[1], r[1]) + \ No newline at end of file -- 1.7.10.4 --------------010909000301050700050003-- From louis@obsidian.com.au Wed Mar 20 07:11:05 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 3CF5376951 for ; Wed, 20 Mar 2013 07:11:05 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -4.199 X-Spam-Level: X-Spam-Status: No, score=-4.199 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HWc-5YWK2duQ for ; Wed, 20 Mar 2013 07:11:04 +0000 (UTC) Received: from na3sys009aog104.obsmtp.com (na3sys009aog104.obsmtp.com [74.125.149.73]) by restaurant.gnome.org (Postfix) with SMTP id C0270760B6 for ; Wed, 20 Mar 2013 07:11:03 +0000 (UTC) Received: from mail-ea0-f199.google.com ([209.85.215.199]) (using TLSv1) by na3sys009aob104.postini.com ([74.125.148.12]) with SMTP ID DSNKUUlhBgGK0wWiFTB8Rr7M84D3IDw4MnEl@postini.com; Wed, 20 Mar 2013 00:11:03 PDT Received: by mail-ea0-f199.google.com with SMTP id b15so2060322eae.6 for ; Wed, 20 Mar 2013 00:11:00 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:x-received:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type:x-gm-message-state; bh=6+qVoirZ9jEwpYZfENGiWRNtU5S8BQg7gIf1AUNzMxA=; b=pslPu67h89+5bEww8hvCN8HMRv361uGR607OuzRtFkWS7OU1oi5sGAiQN/2fBjsBtN 9Sec6aKdlAq8zwYfFCTHTB/ONMgA4511UsvfE9lFKVuQI7gsSlruzGA8ZQuQrVGI4Xkq qcSVZyofvOk9t82sT2TFDstAwBDi65hsnS9d1mQ07af9KoNGiq17GCOzHC3BckZx15Pz Fq+pRJRXDzNYvxaH4Yk5yRd2uqVx2yzVWf9i0KFIgNrmhIQkH1uZtgoAAVurI3njAfaE hqEoW7zvDg1M2h54uKEIkpNxj2EA9CBXdqd6ZK98f6Ww4LyjK9iklQABa5hGGKqasUqO yIfg== X-Received: by 10.194.109.136 with SMTP id hs8mr8435779wjb.8.1363763460548; Wed, 20 Mar 2013 00:11:00 -0700 (PDT) X-Received: by 10.194.109.136 with SMTP id hs8mr8435762wjb.8.1363763460184; Wed, 20 Mar 2013 00:11:00 -0700 (PDT) MIME-Version: 1.0 Received: by 10.194.135.199 with HTTP; Wed, 20 Mar 2013 00:10:40 -0700 (PDT) In-Reply-To: References: From: Louis des Landes Date: Wed, 20 Mar 2013 18:10:40 +1100 Message-ID: Subject: Re: Automatic 3 way merge for conflicts To: Kai Willadsen Content-Type: multipart/alternative; boundary=089e0102e1729a361b04d855ecd3 X-Gm-Message-State: ALoCoQket3tlGtKkHWyuOktZr1dSOLMSPmz/38wyPpTVWll8vUjmwxhnBQzeXOb1T4hH2jE62XlxGR35o5acKkAcKWR1QwP2YvbWVCalDon+KY1ic8R6UIg6K5HxItsJKvERcf/TZWiiEy1U84HZOFMfganLrKtbIg== Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Mar 2013 07:11:05 -0000 --089e0102e1729a361b04d855ecd3 Content-Type: text/plain; charset=ISO-8859-1 > > I've pushed these patches and made a few minor changes, e.g., to still > have the non-auto-merge case work properly with an output file. So > basically most of this is done! > Awesome, thanks. > A re-review would be appreciated. > > The SVN stuff may have to wait though. I've commented on the review, > > specifically my approach to getting filenames was broken anyway, and > instead > > I'd have to do a glob for filename.r* and grab the last ones, not > > particuarly nice. > > Yeah, it's awful that we would have to do this... I haven't spent any > time looking to see whether there's a nicer way, but grabbing the > highest r-numbers is just really, really dodgy. On the other hand, if > SVN gives us nothing else, then I guess that's what we do. > Looks like, I can't find any other way sadly, will move this to a new bug... I believe you should be able to pass git -c merge.conflictstyle=diff3 > (or similar) while triggering a re-merge, though I haven't tested. > Either way, this doesn't need to be fixed immediately, and we can > reconsider what the default should be before the next release. > The -c argument works, but I can't find any way to do a re-merge without knowing the original merge source. Either need an equivalent of $ git remerge or a way to get the merge source when there is an outstanding merge, which I don't know... >> >> Fair enough. BTW, it would be awesome to see a way to run this new > mode > >> >> from > >> >> command line so that it can be used with git mergetool etc. > >> >> Something like: > >> >> meld LOCAL BASE REMOTE --output=MERGED > >> >> --output_is_already_merged_switch > >> >> or > >> >> meld LOCAL MERGED REMOTE --base=BASE > >> >> And then: > >> >> 1) show regular 3-way diff if MERGED contains no conflict markers > >> >> 2) alter MERGED content and show 3-way diff if MERGED contains diff3 > >> >> markers (maybe, but not necessarily, offer switching to auto-merge) > >> >> 3) show regular 3-way diff if MERGED contains non-diff3 conflict > >> >> markers and offer switching to auto-merge > >> > > >> > > >> > I think doing the above should have the same effect as above - Show > >> > MERGED, > >> > but have the bar prompt to do a 're-merge' using auto-merge if you > want. > >> > >> As in the other response, I'll try to write something up as to how I > >> think these various scenarios should play out. > >> > >> > I like the second command line version better. > >> > >> As do I... though in reality I'm scared of command-line options. Once > >> added, they pretty much become ABI, and we (or, more recently, I) get > >> to live with any mistakes encoded in them ~forever. > > > > Any new thoughts on this? > > I really haven't had the time to do this, no. Since we lack any > handling for diff-3 conflict markers, I don't know that it's a big > deal. As far as I can see, we can do exactly what was outlined above > without any additional command-line parameters... is that likely to > break any external tools or anything? > > For now, I'd like to look into adding an infobar prompt to suggest > 'Auto-merge' or 'Use existing merge' as options when we launch a 3-way > diff on a conflict. > So to summarize: * Show MERGED as is by default (should always exist anyway... all VCS's create a MERGED file which exists in place of the existing file) * Show bar to do remerge (always show this if conflicts?) Can't see any issues with external tools there, except you will need to run 'resolve' manually to mark conflicts as resolved. I've noticed two issues with current HEAD, and have uploaded patches for them to the bug: https://bugzilla.gnome.org/show_bug.cgi?id=690469 https://github.com/Psykar/meld/compare/master...3-way-on-conflict * BASE is being used, not MERGED by default (my fault) * The centre pane is being set to read-only (needed to check if it's the existing file, don't change permissions if so) * I didn't add the git conflict_map in, and include a special case to get MERGED output (seems only way is to get the file itself, can't find a git command for it) Should possibly also do some checks on the temp files - currently all files used in the diff are set as temp files, whereas sometimes they actually already exist (eg bzr creates them). Not sure how to best handle this... Louis. --089e0102e1729a361b04d855ecd3 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
I've pus= hed these patches and made a few minor changes, e.g., to still
have the non-auto-merge case work properly with an output file. So
basically most of this is done!
Awesome, thanks.=A0

> A re-review would be appreciated.
> The SVN stuff may have to wait though. I've commented on the revie= w,
> specifically my approach to getting filenames was broken anyway, and i= nstead
> I'd have to do a glob for filename.r* and grab the last ones, not<= br> > particuarly nice.

Yeah, it's awful that we would have to do this... I haven't s= pent any
time looking to see whether there's a nicer way, but grabbing the
highest r-numbers is just really, really dodgy. On the other hand, if
SVN gives us nothing else, then I guess that's what we do.
Looks like, I can't find any other way sadly, will move this t= o a new bug...

I believe you should be able to pass git -c merge.conflictstyle=3Ddiff3
(or similar) while triggering a re-merge, though I haven't tested.
Either way, this doesn't need to be fixed immediately, and we can
reconsider what the default should be before the next release.
The -c argument works, but I can't find any way to do a re-mer= ge without knowing the original merge source.
Either need an equi= valent of
$ git remerge
or a way to get the merge source when there is= an outstanding merge, which I don't know...=A0


>> >> Fair enough. BTW, it would be awesome to see a way t= o run this new mode
>> >> from
>> >> command line so that it can be used with git mergetool et= c.
>> >> Something like:
>> >> meld LOCAL BASE REMOTE --output=3DMERGED
>> >> --output_is_already_merged_switch
>> >> or
>> >> meld LOCAL MERGED REMOTE --base=3DBASE
>> >> And then:
>> >> 1) show regular 3-way diff if MERGED contains no conflict= markers
>> >> 2) alter MERGED content and show 3-way diff if MERGED con= tains diff3
>> >> markers (maybe, but not necessarily, offer switching to a= uto-merge)
>> >> 3) show regular 3-way diff if MERGED contains non-diff3 c= onflict
>> >> markers and offer switching to auto-merge
>> >
>> >
>> > I think doing the above should have the same effect as above = - Show
>> > MERGED,
>> > but have the bar prompt to do a 're-merge' using auto= -merge if you want.
>>
>> As in the other response, I'll try to write something up as to= how I
>> think these various scenarios should play out.
>>
>> > I like the second command line version better.
>>
>> As do I... though in reality I'm scared of command-line option= s. Once
>> added, they pretty much become ABI, and we (or, more recently, I) = get
>> to live with any mistakes encoded in them ~forever.
>
> Any new thoughts on this?

I really haven't had the time to do this, no. Since we lack any handling for diff-3 conflict markers, I don't know that it's a big<= br> deal. As far as I can see, we can do exactly what was outlined above
without any additional command-line parameters... is that likely to
break any external tools or anything?

For now, I'd like to look into adding an infobar prompt to suggest
'Auto-merge' or 'Use existing merge' as options when we lau= nch a 3-way
diff on a conflict.
So to summarize:
* = Show MERGED as is by default (should always exist anyway... all VCS's c= reate a MERGED file which exists in place of the existing file)
* Show bar to do remerge (always show this if conflicts?)
<= br>
Can't see any issues with external tools there, except yo= u will need to run 'resolve' manually to mark conflicts as resolved= .

I've noticed two issues with current HEAD, and have= uploaded patches for them to the bug:
* The centre pane is being set to read-only (needed to check if it'= ;s the existing file, don't change permissions if so)
* I did= n't add the git conflict_map in, and include a special case to get MERG= ED output (seems only way is to get the file itself, can't find a git c= ommand for it)

Should possibly also do some checks on the temp files -= currently all files used in the diff are set as temp files, whereas someti= mes they actually already exist (eg bzr creates them). Not sure how to best= handle this...

Louis.
--089e0102e1729a361b04d855ecd3-- From ezquerra@gmail.com Wed Mar 20 10:40:54 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id D699C76951 for ; Wed, 20 Mar 2013 10:40:53 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dSRiUPSYtTD2 for ; Wed, 20 Mar 2013 10:40:43 +0000 (UTC) Received: from mail-vc0-f182.google.com (mail-vc0-f182.google.com [209.85.220.182]) by restaurant.gnome.org (Postfix) with ESMTP id CBC61760B6 for ; Wed, 20 Mar 2013 10:40:42 +0000 (UTC) Received: by mail-vc0-f182.google.com with SMTP id ht11so1184164vcb.27 for ; Wed, 20 Mar 2013 03:40:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=+HHDOfr81m31t+KXNiRbLtJpa3trCoSPZwOlB+DgE0g=; b=dsTfO69eMzw5L7UKFAuXDLvpXpejaK7rXTkOp+MlhvcnnKc92mbUfdfFJPqryrFNbT iAd+wc2D6Fr9RMnUQIdJuVUh3b0YDL8i871vvMl8uDH/wkSq4mGvEXeYlYs5pw/Mx/0J Ya2EWsRJH70gb+Q7t1mTCINRfdZ0R+tW/0dAkiUW6MiVKdFjZe+AssGjdvO5sjaKtxit qyLz6m5hpXEOQIs6/Ahlb/R0LE1GBMl6dVTeur8ko6DrGrlvkPmF+JoNztE5sv+Shp/8 htue3VNY05KlCtCfQYQnoBgURjGK+ZTNQr1jeMSFM1vzQ/v8OBkMwWagBqeJPg+gelGE MHsQ== MIME-Version: 1.0 X-Received: by 10.52.64.208 with SMTP id q16mr5911956vds.93.1363776040904; Wed, 20 Mar 2013 03:40:40 -0700 (PDT) Sender: ezquerra@gmail.com Received: by 10.58.54.1 with HTTP; Wed, 20 Mar 2013 03:40:40 -0700 (PDT) In-Reply-To: References: Date: Wed, 20 Mar 2013 11:40:40 +0100 X-Google-Sender-Auth: 7PtZ4jM7Ar_cwwUob0w-MR4ibyQ Message-ID: Subject: Re: Passing a single directory or file to meld From: Angel Ezquerra To: Kai Willadsen Content-Type: text/plain; charset=ISO-8859-1 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Mar 2013 10:40:54 -0000 On Tue, Mar 19, 2013 at 10:13 PM, Kai Willadsen wrote: > On 19 March 2013 23:31, Angel Ezquerra wrote: >> Hi, >> >> currently if you pass a single directory to meld it tries to open it >> in "version control mode". Personally I can see the value of that mode >> but I do not use it myself. Instead what I often want to do (on >> Windows) is to use the meld shortcut that Kai's installer creates on >> the "Send to" context menu to start a diff between two directories or >> files. >> >> For example, if you want to compare two folders that happen to be on >> the same location (i.e. on the same directory) you can just select the >> two folders on Windows Explorer, right click, select "Send To / Meld" >> and voila, meld opens and diffs the two directories. You can do the >> same with two files which are on the same directory. >> >> The problem comes when you try to compare two directories of files >> that are on different locations on your hard drive. In that case you >> cannot use the meld "send to" shortcut, because if you use it with the >> first directory, meld will just try to open it in VCS mode! >> >> If you try to do the same with a single file (rather than a directory) >> it does not work either. In fact the file that you pass to meld seems >> to be ignored, and meld just opens with the default "startup window" >> that lets you choose the mode. >> >> So I'd like to ask if there is some way around this. If not it would >> be nice to be able to tell meld not to start in VCS mode, and just >> take the input file or directory name that you pass to it and put it >> on the left panel. > > There's no way around this, and I'd rather not add more command line > options if we don't have to. I've seen this dealt with on Gnome + > Nautilus by having an extension that allows you to queue up items for > comparison. See for example: > http://my.opera.com/bachkhois/blog/2011/07/19/compare-files-with-meld-from-within-nautilus That is similar to what Araxis Merge does and it works very well. The drawback is that, as you said, it requires to write an explorer extension. > I have no idea what the limitations of the Windows 'Send To' command > or explorer extensions are. Would it be possible to have some kind of > similar queuing implementation there? The nice thing about the "Send to" menu is its simplicity. You simply add a shortcut to your executable in the "SendTo" directory (which is in "%userprofile%\SendTo" in WindowsXP and in "%APPDATA%\Microsoft\Windows\SendTo" in Windows 7) and the shortcut appears in your Windows Explorer context menu. When you right click on a file and select a SendTo entry it will simply execute the program that the shortcut points to and pass the name of the file as its only parameter. If you need more parameters you can set them on the shortcut itself. So with a SendTo shortcut you can only pass one or more files or directories, and they must be on the same directory because you cannot select files or directories from different directories using Windows Explorer. > Either way, the problem is that giving Meld a single directory is > inherently ambiguous. You'd have to have "Send To -> Meld as folder > comparison" and "Send To -> Meld as VC comparison" entries, which > seems like overkill to me. I think this is precisely a very good reason why I think melds needs to let the user tell it what to do. Since the operation is ambiguous, meld should not have to guess. Currently it always "guesses" that the user wants to do a VC comparison, which is not useful if you do not want to use the VC functionality of meld (as in my case). Another use case for being able to open a diff with a single file is when you want to compare a file with some text that you want to write or perhaps when you want to compare a file with what you have on the clipboard. Sometimes you may want to compare two parts of a file using copy/paste, for example. This is something that I often do, and which is easy to do with many diff tools (e.g. araxis, WinMerge) but is not possible (or not easy) with meld. So I think it would be great to have a way to tell meld to open "an empty comparison" or to diff a single file with an "empty file" that you may edit yourself (by typing, using copy paste, etc). It seems that this would require an extra command line option, but in this case it seems that there would be a good reason to do so. > What's the use-case distinction in Windows-land between opening > something and Send-To-ing something? There is no difference as I explained above. You just execute the program that a shortcut points to, passing the file (or directory) name(s) to it. Cheers, Angel From kai.willadsen@gmail.com Wed Mar 20 21:06:21 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id C0A7976B65 for ; Wed, 20 Mar 2013 21:06:21 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id iAhTk8H89QfX for ; Wed, 20 Mar 2013 21:06:21 +0000 (UTC) Received: from mail-wi0-f176.google.com (mail-wi0-f176.google.com [209.85.212.176]) by restaurant.gnome.org (Postfix) with ESMTP id 936C9769A2 for ; Wed, 20 Mar 2013 21:06:20 +0000 (UTC) Received: by mail-wi0-f176.google.com with SMTP id hm14so5844600wib.9 for ; Wed, 20 Mar 2013 14:06:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=anWQkXKwOY5VPi8L812DH3unMzW3SGTP6rosT3NNq+0=; b=e1wLb+acBHdI2a7pnmxdFuEUMPBy0A4JhOa2T0o+D18KtqxhEI1sNQj01PQYB4b5Fp XbNMfZOTj2HJmHaggn9vhsL3JvEJbBzLZ1gDqprkS/6rgD1/i8ROILQQ2lQg1XextNF6 ZJ0C/nTVZyDm4ibGZrza0VibF208/qrKgYmEUfSJwf8M6Z6z0g36PzZkrTwuGRnAA6z5 u+Wz2Qx2XSdz0iD77remhj2XFVRn3Cud/z+ffwZLba/fAwkReC6639PfZzeilTc2WJ+l Y/EVG4z2jsNGSCKc77PcN6K236OcYNPoiePLbg7HQ/FAb5jWs3JFYqrOyLSHm3A5ik/n Tn7A== MIME-Version: 1.0 X-Received: by 10.180.74.131 with SMTP id t3mr960016wiv.23.1363813578335; Wed, 20 Mar 2013 14:06:18 -0700 (PDT) Received: by 10.216.41.68 with HTTP; Wed, 20 Mar 2013 14:06:18 -0700 (PDT) In-Reply-To: References: Date: Thu, 21 Mar 2013 07:06:18 +1000 Message-ID: Subject: Re: Automatic 3 way merge for conflicts From: Kai Willadsen To: Louis des Landes Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Mar 2013 21:06:21 -0000 On 20 March 2013 17:10, Louis des Landes wrote: >> I believe you should be able to pass git -c merge.conflictstyle=diff3 >> (or similar) while triggering a re-merge, though I haven't tested. >> Either way, this doesn't need to be fixed immediately, and we can >> reconsider what the default should be before the next release. > > The -c argument works, but I can't find any way to do a re-merge without > knowing the original merge source. > Either need an equivalent of > $ git remerge > or a way to get the merge source when there is an outstanding merge, which I > don't know... I'll try and look into this if I have time, but realistically what you're doing now should pretty much work. >> For now, I'd like to look into adding an infobar prompt to suggest >> 'Auto-merge' or 'Use existing merge' as options when we launch a 3-way >> diff on a conflict. > > So to summarize: > * Show MERGED as is by default (should always exist anyway... all VCS's > create a MERGED file which exists in place of the existing file) > * Show bar to do remerge (always show this if conflicts?) Yes and yes. I think I'll have to play with having the bar appear to figure out whether it's actually a good idea, or whether we should only show it in certain cases. I think it'll get annoying if we prompt every time someone opens up a three-way merge, so there may need to be insane heuristics involved. I'm also open to making BASE the default with the auto-merge prompt... but I'd like to keep existing behaviour for now (and possibly for this release series). > Can't see any issues with external tools there, except you will need to run > 'resolve' manually to mark conflicts as resolved. Yeah... invoking Meld as a mergetool automatically does that, but I don't know whether we want to support that. I suppose that you *could* record whether a comparison tab was opened from a conflict and then when the users closes it after saving, you could prompt as to whether the conflict could be considered resolved... but that's a whole new story. > I've noticed two issues with current HEAD, and have uploaded patches for > them to the bug: > https://bugzilla.gnome.org/show_bug.cgi?id=690469 > https://github.com/Psykar/meld/compare/master...3-way-on-conflict > * BASE is being used, not MERGED by default (my fault) > * The centre pane is being set to read-only (needed to check if it's the > existing file, don't change permissions if so) Have you double-checked this with actual HEAD? I noticed this happening when I applied your patches from last time, and made some changes in c300c6 to properly update the writable state from a pane's file. You may be seeing a different issue, however. > * I didn't add the git conflict_map in, and include a special case to get > MERGED output (seems only way is to get the file itself, can't find a git > command for it) Yep, that's cool. > Should possibly also do some checks on the temp files - currently all files > used in the diff are set as temp files, whereas sometimes they actually > already exist (eg bzr creates them). Not sure how to best handle this... Oh, that's bad. That means we'll automatically clean them up on exit, which is really not what we should do. The merged result files should never be set as temp anyway. For the others, how about we just make get_path_for_conflict return a tuple of (path, is_temp) and key off that? It's a bit ugly, but it's not that bad. cheers, Kai From louis@obsidian.com.au Thu Mar 21 00:23:05 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 3120876ABB for ; Thu, 21 Mar 2013 00:23:05 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -4.199 X-Spam-Level: X-Spam-Status: No, score=-4.199 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3ce4YbJTSb6J for ; Thu, 21 Mar 2013 00:22:54 +0000 (UTC) Received: from na3sys009aog105.obsmtp.com (na3sys009aog105.obsmtp.com [74.125.149.75]) by restaurant.gnome.org (Postfix) with SMTP id 81ADF769A2 for ; Thu, 21 Mar 2013 00:22:53 +0000 (UTC) Received: from mail-qe0-f71.google.com ([209.85.128.71]) (using TLSv1) by na3sys009aob105.postini.com ([74.125.148.12]) with SMTP ID DSNKUUpS3HnWTnzCPd9TPDPsuBJCkicHzalZ@postini.com; Wed, 20 Mar 2013 17:22:54 PDT Received: by mail-qe0-f71.google.com with SMTP id 9so3783146qea.2 for ; Wed, 20 Mar 2013 17:22:51 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:x-received:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type:x-gm-message-state; bh=5P5cv3t837iVOjrmA3cvkV9FMApXFTlay9hHf3Fymek=; b=DDuHjAEv2mtWGj0TuDur0LlOkJMw7uvcG4AsHfRcURZzqJqmdQ7pvdmp/zFZGzAuPN 27NokzKoeYTV6d586hfAiROERHzDlCMNjNPhuNxN5kdLjF4HbzmunlzFtCPDR7RG4D+2 bm0pgd5hoZaN0z4Owwujdti4Fse6KCmuznahJslneWMfcgu8bpQTQWDHFxTv2q8AVWQE W2HrfCHIX1Z1F6N7Wf49GZbK6C0zdxfEgx2djsIcCcjQc6wkH1X6t73aFC1bRS/14zQ8 TmoSO1Mh6XrtMoG/lapBkQ3h7sSJWIEx0FK8u+0bglfm2f700uZbMygzqWRIz9NAj3mZ YHXA== X-Received: by 10.52.243.196 with SMTP id xa4mr9242113vdc.22.1363825371711; Wed, 20 Mar 2013 17:22:51 -0700 (PDT) X-Received: by 10.52.243.196 with SMTP id xa4mr9242098vdc.22.1363825371417; Wed, 20 Mar 2013 17:22:51 -0700 (PDT) MIME-Version: 1.0 Received: by 10.58.178.200 with HTTP; Wed, 20 Mar 2013 17:22:31 -0700 (PDT) In-Reply-To: References: From: Louis des Landes Date: Thu, 21 Mar 2013 11:22:31 +1100 Message-ID: Subject: Re: Automatic 3 way merge for conflicts To: Kai Willadsen Content-Type: multipart/alternative; boundary=001a11c1c476cca93d04d8645614 X-Gm-Message-State: ALoCoQnbKD4ZdX+lJ5hQG0+cUH2dqmT70hTd4jbVKKDW48Cyt46WwC+D4mOid/yxQ5GmJZX79yqvkucyQvBLVZsFnoVS61tjO+d2DbzR6XikHKpUN+BZKPpYn1vADtqdHbcvZw8p6p15CeeTWl9VEW6KVB9GGF8gzw== Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Mar 2013 00:23:05 -0000 --001a11c1c476cca93d04d8645614 Content-Type: text/plain; charset=ISO-8859-1 >> For now, I'd like to look into adding an infobar prompt to suggest > >> 'Auto-merge' or 'Use existing merge' as options when we launch a 3-way > >> diff on a conflict. > > > > So to summarize: > > * Show MERGED as is by default (should always exist anyway... all VCS's > > create a MERGED file which exists in place of the existing file) > > * Show bar to do remerge (always show this if conflicts?) > > Yes and yes. I think I'll have to play with having the bar appear to > figure out whether it's actually a good idea, or whether we should > only show it in certain cases. I think it'll get annoying if we prompt > every time someone opens up a three-way merge, so there may need to be > insane heuristics involved. > > I'm also open to making BASE the default with the auto-merge prompt... > but I'd like to keep existing behaviour for now (and possibly for this > release series). > > > Can't see any issues with external tools there, except you will need to > run > > 'resolve' manually to mark conflicts as resolved. > > Yeah... invoking Meld as a mergetool automatically does that, but I > don't know whether we want to support that. I suppose that you *could* > record whether a comparison tab was opened from a conflict and then > when the users closes it after saving, you could prompt as to whether > the conflict could be considered resolved... but that's a whole new > story. > > > I've noticed two issues with current HEAD, and have uploaded patches for > > them to the bug: > > https://bugzilla.gnome.org/show_bug.cgi?id=690469 > > https://github.com/Psykar/meld/compare/master...3-way-on-conflict > > * BASE is being used, not MERGED by default (my fault) > > * The centre pane is being set to read-only (needed to check if it's the > > existing file, don't change permissions if so) > > Have you double-checked this with actual HEAD? I noticed this > happening when I applied your patches from last time, and made some > changes in c300c6 to properly update the writable state from a pane's > file. You may be seeing a different issue, however. > It's slightly different I think, when using BASE you don't get the permission change, as the temp buffer isn't the same as the existing MERGED. When we used MERGED though, it changes the permission on MERGED (which is the actual file) so you can't save changes. In other words, changing default to MERGED means we need to not change the centre pane's permissions (but instead fixed this by checking if it's the original file before we set permissions) > > > Should possibly also do some checks on the temp files - currently all > files > > used in the diff are set as temp files, whereas sometimes they actually > > already exist (eg bzr creates them). Not sure how to best handle this... > > Oh, that's bad. That means we'll automatically clean them up on exit, > which is really not what we should do. The merged result files should > never be set as temp anyway. For the others, how about we just make > get_path_for_conflict return a tuple of (path, is_temp) and key off > that? It's a bit ugly, but it's not that bad. > Luckily it *doesn't* clean them automatically as meld recognizes they aren't sitting in the temp directory - you do get some ugly stdout warning though. I considered a tuple but also thought it a little ugly so I'd ask... sounds good though. Cheers, Louis. --001a11c1c476cca93d04d8645614 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable >> For now, I'd like to look into adding an infobar prompt to sug= gest
>> 'Auto-merge' or 'Use existing merge' as options wh= en we launch a 3-way
>> diff on a conflict.
>
> So to summarize:
> * Show MERGED as is by default (should always exist anyway... all VCS&= #39;s
> create a MERGED file which exists in place of the existing file)
> * Show bar to do remerge (always show this if conflicts?)

Yes and yes. I think I'll have to play with having the bar appear= to
figure out whether it's actually a good idea, or whether we should
only show it in certain cases. I think it'll get annoying if we prompt<= br> every time someone opens up a three-way merge, so there may need to be
insane heuristics involved.

I'm also open to making BASE the default with the auto-merge prompt...<= br> but I'd like to keep existing behaviour for now (and possibly for this<= br> release series).

> Can't see any issues with external tools there, except you will ne= ed to run
> 'resolve' manually to mark conflicts as resolved.

Yeah... invoking Meld as a mergetool automatically does that, but I don't know whether we want to support that. I suppose that you *could*<= br> record whether a comparison tab was opened from a conflict and then
when the users closes it after saving, you could prompt as to whether
the conflict could be considered resolved... but that's a whole new
story.

> I've noticed two issues with current HEAD, and have uploaded patch= es for
> them to the bug:
>
https://bugzilla.gnome.org/show_bug.cgi?id=3D690469
> https://github.com/Psykar/meld/compare/master...3= -way-on-conflict
> * BASE is being used, not MERGED by default (my fault)
> * The centre pane is being set to read-only (needed to check if it'= ;s the
> existing file, don't change permissions if so)

Have you double-checked this with actual HEAD? I noticed this
happening when I applied your patches from last time, and made some
changes in c300c6 to properly update the writable state from a pane's file. You may be seeing a different issue, however.
It= 's slightly different I think, when using BASE you don't get the pe= rmission change, as the temp buffer isn't the same as the existing MERG= ED. When we used MERGED though, it changes the permission on MERGED (which = is the actual file) so you can't save changes. In other words, changing= default to MERGED means we need to not change the centre pane's permis= sions (but instead fixed this by checking if it's the original file bef= ore we set permissions)

> Should possibly also do some checks on the temp files - currently all = files
> used in the diff are set as temp files, whereas sometimes they actuall= y
> already exist (eg bzr creates them). Not sure how to best handle this.= ..

Oh, that's bad. That means we'll automatically clean them up = on exit,
which is really not what we should do. The merged result files should
never be set as temp anyway. For the others, how about we just make
get_path_for_conflict return a tuple of (path, is_temp) and key off
that? It's a bit ugly, but it's not that bad.
= Luckily it *doesn't* clean them automatically as meld recognizes they a= ren't sitting in the temp directory - you do get some ugly stdout warni= ng though. I considered a tuple but also thought it a little ugly so I'= d ask... sounds good though.

Cheers,
Louis.
--001a11c1c476cca93d04d8645614-- From gilboad@gmail.com Thu Mar 21 11:55:55 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 0222276B9E for ; Thu, 21 Mar 2013 11:55:55 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PPcSpMXE217q for ; Thu, 21 Mar 2013 11:55:39 +0000 (UTC) Received: from mail-ia0-f176.google.com (mail-ia0-f176.google.com [209.85.210.176]) by restaurant.gnome.org (Postfix) with ESMTP id 975AA769AE for ; Thu, 21 Mar 2013 11:55:39 +0000 (UTC) Received: by mail-ia0-f176.google.com with SMTP id i1so2324767iaa.35 for ; Thu, 21 Mar 2013 04:55:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=thn/Cpsevi6H3pJhRLO6Vw1JQicag4E3BwvwYGUKNnM=; b=ZLhBlHU0nPHRsA4FeeYV6NT3/MzcZrVhmCI48pXcKBsAMV43Ng8IcP/GnuLAIg7WjE mR1dqrb9t8gITw6vEHJk0+Bm4/DP+dtuAWMFtX3r14Cd2hZatk+Ht4VdNGxn5+ItupUm cKabuSSx2miilgNxXQtbl7jKZSIMcEoD+/x++zrmaT0s+MTfEmdlxmKuGlaWhnI/CcE5 9jMsrhPHCuQx4abqcfTAeoN+Mw0TeEfm81yaTqBfUDCiui5UWhG6+S14A/LLVPRTQCce cooTUSKJTjSMYhZzzkSnQ5bH62SK2jjIof1wb1I8GT9V+6aX5HeOaPTed6V7ciz6HdUW Fp0w== MIME-Version: 1.0 X-Received: by 10.50.208.40 with SMTP id mb8mr1807561igc.91.1363866937622; Thu, 21 Mar 2013 04:55:37 -0700 (PDT) Received: by 10.64.7.99 with HTTP; Thu, 21 Mar 2013 04:55:37 -0700 (PDT) In-Reply-To: References: Date: Thu, 21 Mar 2013 13:55:37 +0200 Message-ID: Subject: Re: Support for DBUS-less mode. From: Gilboa Davara To: Kai Willadsen Content-Type: text/plain; charset=ISO-8859-1 Cc: Users/Devel Meld X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Mar 2013 11:55:55 -0000 On Tue, Mar 19, 2013 at 11:36 PM, Kai Willadsen wrote: > On 17 March 2013 20:12, Gilboa Davara wrote: >> On Sat, Mar 16, 2013 at 10:07 PM, Kai Willadsen >> wrote: >>> >>> On 16 March 2013 14:57, Gilboa Davara wrote: >>> > Hello, >>> > >>> > When trying to used meld to compare files as root, I'm getting >>> > exceptions >>> > due to meld being unable to connect to DBUS (access denied). >>> > >>> > (meld:29000): GConf-WARNING **: Client failed to connect to the D-BUS >>> > daemon: >>> > Did not receive a reply. Possible causes include: the remote application >>> > did >>> > not send a reply, the message bus security policy blocked the reply, the >>> > reply timeout expired, or the network connection was broken. >>> > Traceback (most recent call last): >>> > File "/usr/bin/meld", line 154, in >>> > main() >>> > File "/usr/bin/meld", line 136, in main >>> > import meld.meldapp >>> > File "/usr/share/meld/meld/meldapp.py", line 216, in >>> > app = MeldApp() >>> > File "/usr/share/meld/meld/meldapp.py", line 113, in __init__ >>> > self.prefs = preferences.MeldPreferences() >>> > File "/usr/share/meld/meld/preferences.py", line 259, in __init__ >>> > super(MeldPreferences, self).__init__("/apps/meld", self.defaults) >>> > File "/usr/share/meld/meld/util/prefs.py", line 93, in __init__ >>> > self._gconf.add_dir(rootkey, gconf.CLIENT_PRELOAD_NONE) >>> > glib.GError: No D-BUS daemon running >>> > >>> > Any chance of making meld simply disable dbus support when dbus is >>> > unavailable? >>> >>> This is actually gconf, not Meld. Meld *also* has dbus support, but >>> that should fail gracefully if we can't connect. We also have a >>> fallback for gconf support, but right now it only works if you don't >>> have gconf installed; if it's installed but can't connect, then it >>> blows up as above. >>> >>> It probably wouldn't be too hard to make that fallback depend on >>> actual gconf viability rather than presence, but I haven't really >>> looked into it. >>> >>> cheers, >>> >>> Kai >> >> >> OK, thanks. >> You want me to open a BZ? > > Turns out we already had one: > https://bugzilla.gnome.org/show_bug.cgi?id=666136 > > Reading through that, it looks like we can't sanely handle this since > gconf error handling isn't bound in Python. For me this goes on the > list of things that will change/get fixes by a Gtk3 port... one day. > > cheers, > Kai Hi, I see that gconf can be safely disabled by editing the code. Can this be done (in future versions) via a command line switch? - Gilboa From kai.willadsen@gmail.com Thu Mar 21 13:25:10 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 582F476D6A for ; Thu, 21 Mar 2013 13:25:10 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ESkSefSMZ-MN for ; Thu, 21 Mar 2013 13:25:09 +0000 (UTC) Received: from mail-we0-f174.google.com (mail-we0-f174.google.com [74.125.82.174]) by restaurant.gnome.org (Postfix) with ESMTP id 7702E76BF3 for ; Thu, 21 Mar 2013 13:25:08 +0000 (UTC) Received: by mail-we0-f174.google.com with SMTP id r6so2328411wey.19 for ; Thu, 21 Mar 2013 06:25:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=SWaoYE6KZ/N0jEGdNvLyKAJdYNZZ3LO5F8oRVL3HUHs=; b=XqLMq8E0Z3LPlFObIR8yMlpDbx8Ndqs8FarFe2Iz7Ofva0o5NEQSFj6HDl0RuekTKq RtlGfTYWaOmRQy2uMXnKd40oKr7DCuJ2EMxtTngWWm4eh6eTGtF1Dt5Zoa19BFFldIAC skp0r67HrlxQnNeuX3jqahaWY07xBKbcN6sNENfHfaVheSEtvtari5iH0HMRJ5yfPQE+ r3qpRW/Z+VbHsWJgFZdKFqoxjb1KjqWSgN/p9fS9Z/tY0HdrKoGJB/B2RRI5FjmqCeJP uq58Jc2eJte3rRd50w2QYio+wGunQvthX5zpl9dkOS8kHcaWMotIj0U+jwNB9mEkB3aX RURw== MIME-Version: 1.0 X-Received: by 10.194.92.231 with SMTP id cp7mr17199251wjb.19.1363872307044; Thu, 21 Mar 2013 06:25:07 -0700 (PDT) Received: by 10.216.41.68 with HTTP; Thu, 21 Mar 2013 06:25:06 -0700 (PDT) In-Reply-To: References: Date: Thu, 21 Mar 2013 23:25:06 +1000 Message-ID: Subject: Re: Support for DBUS-less mode. From: Kai Willadsen To: Gilboa Davara Content-Type: text/plain; charset=UTF-8 Cc: Users/Devel Meld X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Mar 2013 13:25:10 -0000 On 21 March 2013 21:55, Gilboa Davara wrote: > On Tue, Mar 19, 2013 at 11:36 PM, Kai Willadsen wrote: >> Turns out we already had one: >> https://bugzilla.gnome.org/show_bug.cgi?id=666136 >> >> Reading through that, it looks like we can't sanely handle this since >> gconf error handling isn't bound in Python. For me this goes on the >> list of things that will change/get fixes by a Gtk3 port... one day. >> >> cheers, >> Kai > > Hi, > > I see that gconf can be safely disabled by editing the code. > Can this be done (in future versions) via a command line switch? No, I don't think a command-line switch is appropriate here. There's a few suggestions in the bug, such as adding a key to the .ini file we use as a replacement. I think that might be worth a look, but really the correct solution is to either fix the gconf fallback, or move to dconf/gsettings. cheers, Kai From starojitski@gmail.com Thu Mar 21 14:41:44 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 7DCD676BDB for ; Thu, 21 Mar 2013 14:41:44 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.698 X-Spam-Level: X-Spam-Status: No, score=-2.698 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id uQKxS46-mGfL for ; Thu, 21 Mar 2013 14:41:44 +0000 (UTC) Received: from mail-ie0-f181.google.com (mail-ie0-f181.google.com [209.85.223.181]) by restaurant.gnome.org (Postfix) with ESMTP id CE2D576BD8 for ; Thu, 21 Mar 2013 14:41:43 +0000 (UTC) Received: by mail-ie0-f181.google.com with SMTP id 17so3577959iea.12 for ; Thu, 21 Mar 2013 07:41:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:date:message-id:subject:from:to :content-type; bh=Zn7ZVbiIdSvE26GOd1Eu5djHCnGBvx1h+xbDCGQKxeo=; b=Uf5X3jDrDYFtgF5HAAIFRNKE7cgpjpIHxoJRHbciU6TF7ubjDEMUAMnxOuLFsH0HoS 0DlcryDRwc8XZY5rcolRpUOvgoL5UfSpYZNM/lSFWI2NSoGcJInidLTvoLaXsihqwvq8 umAZdYwbMaunU3ahx7ChcZXxZpFBHxy+1emKGNPEOdiA/l0bEiqoiwwMVb2ecmL1fdhF eBnr03fUEcm3F055Ij+8k+uqRZ4CuA2fx9s/VagzaEqBTQIx10orIy85PEjKryu4y/Kh 6Hz2evHQb75XD8ifxulEmN8WSF9ltnqp5noIbRz0+OTcmHz2EtbYPeM3Rl4oPfVvGGOU wMcQ== MIME-Version: 1.0 X-Received: by 10.42.58.67 with SMTP id g3mr16260643ich.56.1363876902253; Thu, 21 Mar 2013 07:41:42 -0700 (PDT) Received: by 10.64.102.10 with HTTP; Thu, 21 Mar 2013 07:41:42 -0700 (PDT) Date: Thu, 21 Mar 2013 15:41:42 +0100 Message-ID: Subject: Feature request: Visually compare image files From: Konstantin To: meld-list@gnome.org Content-Type: multipart/alternative; boundary=20cf30334c47470b1304d8705612 X-Mailman-Approved-At: Fri, 22 Mar 2013 21:01:38 +0000 X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Mar 2013 14:41:44 -0000 --20cf30334c47470b1304d8705612 Content-Type: text/plain; charset=ISO-8859-1 Right now, when you try to see the difference between two image files, you get a message that this is not possible because the files are binary. Why not just display the files side by side? --20cf30334c47470b1304d8705612 Content-Type: text/html; charset=ISO-8859-1
Right now, when you try to see the difference between two image files, you get a message that this is not possible because the files are binary.
Why not just display the files side by side?
--20cf30334c47470b1304d8705612-- From starojitski@gmail.com Thu Mar 21 15:17:03 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 027A276958 for ; Thu, 21 Mar 2013 15:17:03 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.698 X-Spam-Level: X-Spam-Status: No, score=-2.698 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OzTRhdN2HU9J for ; Thu, 21 Mar 2013 15:17:02 +0000 (UTC) Received: from mail-ia0-f176.google.com (mail-ia0-f176.google.com [209.85.210.176]) by restaurant.gnome.org (Postfix) with ESMTP id 86E797631D for ; Thu, 21 Mar 2013 15:17:02 +0000 (UTC) Received: by mail-ia0-f176.google.com with SMTP id i1so2562909iaa.21 for ; Thu, 21 Mar 2013 08:17:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:date:message-id:subject:from:to :content-type; bh=rpp0LICbv6T7jYaEe4pjnRBPG18PRnSprW6f8Y0d3aU=; b=IDsiA0PwSEZAhLP9A4mDuguY5lDHj9eVApkx8Ri9YZAsmbwEzTjPQpbtqKD44pEOhj mP6VuLlu+6CxJCvC1hjFk2WOPT8KmNzIItri7HxFfBRRqe5xOwVGifqA3O8mesBq6KRB Y0JahBeDybhAzyRZjqAWzF+/kLLQw62al1enGExuUrbuwpfv+s6ASafPZ0IrRtUqSjE7 cgbRcCxGDPz9BoGAOKXo5nNsl8mO97SEuLl8ZUTu7bB/73o3bvmaRicXIFdvHamuQI6n ts6zg3YlV9Tp+UazcZ3n/AXvh9oV49FGjxwiwvw7u+xVypMP7Xh79mcB93dkpFqxd9IF AjUA== MIME-Version: 1.0 X-Received: by 10.50.17.166 with SMTP id p6mr2392645igd.12.1363879020959; Thu, 21 Mar 2013 08:17:00 -0700 (PDT) Received: by 10.64.102.10 with HTTP; Thu, 21 Mar 2013 08:17:00 -0700 (PDT) Date: Thu, 21 Mar 2013 16:17:00 +0100 Message-ID: Subject: Feature Request: Enabling opening files externally at a particular line number From: Konstantin To: meld-list@gnome.org Content-Type: multipart/alternative; boundary=14dae9340cc98fed4004d870d49d X-Mailman-Approved-At: Fri, 22 Mar 2013 21:01:38 +0000 X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Mar 2013 15:17:03 -0000 --14dae9340cc98fed4004d870d49d Content-Type: text/plain; charset=ISO-8859-1 When you see the contents of two (or more) files side by side, you can open one of the files in external editor. It would be great if current line number was provided in the "shell command" as well. I can only guess but right now it probably works something like this "$external_editor $file_path" Making it: "$external_editor $file_path:$current_line_number" would open the file at the right point! At least on Linux and probably on Mac Cheers, Konstantin --14dae9340cc98fed4004d870d49d Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
When you see the contents of two (or more) files side by s= ide, you can open one of the files in external editor. It would be great if= current line number was provided in the "shell command" as well.=

I can only guess but right now it probably works something l= ike this
"$external_editor $file_path"
Making= it:
"$external_editor $file_path:$current_line_number"=
would open the file at the right point! At least on Linux and probably= on Mac

Cheers, =A0
Konstantin
=
--14dae9340cc98fed4004d870d49d-- From starojitski@gmail.com Thu Mar 21 15:43:29 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 7B0FD76958 for ; Thu, 21 Mar 2013 15:43:29 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.698 X-Spam-Level: X-Spam-Status: No, score=-2.698 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id C9aTzPyhJCIb for ; Thu, 21 Mar 2013 15:43:19 +0000 (UTC) Received: from mail-ia0-f172.google.com (mail-ia0-f172.google.com [209.85.210.172]) by restaurant.gnome.org (Postfix) with ESMTP id D6FA8765C7 for ; Thu, 21 Mar 2013 15:43:18 +0000 (UTC) Received: by mail-ia0-f172.google.com with SMTP id l29so2630342iag.31 for ; Thu, 21 Mar 2013 08:43:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:date:message-id:subject:from:to :content-type; bh=9hspoOGAPCitoi4xgxPN49JvJ/IORm3Vcrq8c91iP2Y=; b=yyauuJfF0ZLPmwpk2o/TW1bEtgyd8GTqczOP3ptt81feyjgTqztX0UP02HOWuxrcu4 Vf9XAX0A29F3ULFcVp93laP1Pyo0pm+RyhtSoMYe53vXv3Vu+zeMpg2+9HFyFu7bMOA2 j+Qu0HE6Lm5j5Q6lR6p3oVXzP7RNTkb9a5yS7e+8TTf8TQqFyfNsIgQUoU9cIl0Ckzzu 3KRoShXf7okGyxepcHkNWHJRf/xm46/pw1up7VPlX+XQNd8jy2frPXDARoopLmzxKB8u jZw/Zpp+obnhaTCUbxFP1PZFSJmHuK7Yc5PQo/LpBz6sPA9veuUiDwxvUF938Qcc+EfK N8cg== MIME-Version: 1.0 X-Received: by 10.50.17.166 with SMTP id p6mr2456929igd.12.1363880597273; Thu, 21 Mar 2013 08:43:17 -0700 (PDT) Received: by 10.64.102.10 with HTTP; Thu, 21 Mar 2013 08:43:17 -0700 (PDT) Date: Thu, 21 Mar 2013 16:43:17 +0100 Message-ID: Subject: Go to the next (previous) file From: Konstantin To: meld-list@gnome.org Content-Type: multipart/alternative; boundary=14dae9340cc98493f204d87132d4 X-Mailman-Approved-At: Fri, 22 Mar 2013 21:01:38 +0000 X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Mar 2013 15:43:29 -0000 --14dae9340cc98493f204d87132d4 Content-Type: text/plain; charset=ISO-8859-1 Most of the time when i compare two revisions i start with opening the first file in the tree, view the changes side by side and do whatever needs to be done. After that i close the code view tab and open the next file in the tree... More often than not i repeat this process till the end of the tree What i constantly miss and imagine, is the ability to open the next file (ideally in the same tab) by clicking on an icon in the toolbar (that looks like "go to the next change icon" but with horizontal right arrow) or by using Alt+Right. Cheers, Konstantin --14dae9340cc98493f204d87132d4 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Most of the time when i compare two revisions i start with opening the fi= rst file in the tree, view the changes side by side and do whatever needs t= o be done. After that i close the code view tab and open the next file in t= he tree...

More often than not i repeat this process till = the end of the tree

What i= constantly miss and imagine, is the ability to open the next file (ideally= in the same tab) by clicking on an icon in the toolbar (that looks like &q= uot;go to the next change icon" but with horizontal right arrow) or by= using Alt+Right.=A0

=
Cheers,=A0
=
Konstantin
=
--14dae9340cc98493f204d87132d4-- From aaron@schrab.com Sat Mar 23 01:03:35 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 2093476A00 for ; Sat, 23 Mar 2013 01:03:35 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -1.9 X-Spam-Level: X-Spam-Status: No, score=-1.9 tagged_above=-999 required=2 tests=[BAYES_00=-1.9] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pe84DUowHm0x for ; Sat, 23 Mar 2013 01:03:34 +0000 (UTC) X-Greylist: delayed 409 seconds by postgrey-1.34 at restaurant.gnome.org; Sat, 23 Mar 2013 01:03:34 UTC Received: from pug.qqx.org (pug.qqx.org [50.116.43.67]) by restaurant.gnome.org (Postfix) with ESMTP id AD0D6769E4 for ; Sat, 23 Mar 2013 01:03:34 +0000 (UTC) Received: by pug.qqx.org (Postfix, from userid 1000) id CAE601D3C5; Fri, 22 Mar 2013 20:56:43 -0400 (EDT) Date: Fri, 22 Mar 2013 20:56:43 -0400 From: Aaron Schrab To: meld-list@gnome.org Subject: Re: Feature Request: Enabling opening files externally at a particular line number Message-ID: <20130323005643.GC27178@pug.qqx.org> Mail-Followup-To: meld-list@gnome.org References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21+145 (gd0ebb66) (2011-07-01) X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Mar 2013 01:03:35 -0000 At 16:17 +0100 21 Mar 2013, Konstantin wrote: >"$external_editor $file_path:$current_line_number" >would open the file at the right point! At least on Linux and probably on >Mac That would be a feature of the editor, not the OS. And that method doesn't work for either of the traditionally popular Unix/Linux editors (emacs and vi). In fact I'd consider any editor that did that to be broken since a colon is a perfectly valid part of a file name. However both of those support: "$external_editor +$current_line_number $file_path" From claudio.fischer@freenet.de Fri Mar 22 21:57:59 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 43023769F7 for ; Fri, 22 Mar 2013 21:57:59 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: 0.168 X-Spam-Level: X-Spam-Status: No, score=0.168 tagged_above=-999 required=2 tests=[BAYES_40=-0.001, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, MIME_HTML_ONLY=0.723, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.556] autolearn=no Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7W+ID-qK0k1U for ; Fri, 22 Mar 2013 21:57:58 +0000 (UTC) X-Greylist: delayed 646 seconds by postgrey-1.34 at restaurant.gnome.org; Fri, 22 Mar 2013 21:57:56 UTC Received: from mout1.freenet.de (mout1.freenet.de [195.4.92.91]) by restaurant.gnome.org (Postfix) with ESMTP id C8C2A769A6 for ; Fri, 22 Mar 2013 21:57:56 +0000 (UTC) Received: from [195.4.92.140] (helo=mjail0.freenet.de) by mout1.freenet.de with esmtpa (ID claudio.fischer@freenet.de) (port 25) (Exim 4.80.1 #2) id 1UJ9nm-0003xq-T8 for meld-list@gnome.org; Fri, 22 Mar 2013 22:47:06 +0100 Received: from localhost ([::1]:43879 helo=mjail0.freenet.de) by mjail0.freenet.de with esmtpa (ID claudio.fischer@freenet.de) (Exim 4.80.1 #2) id 1UJ9nm-0000nc-J3 for meld-list@gnome.org; Fri, 22 Mar 2013 22:47:06 +0100 Received: from [195.4.92.13] (port=38867 helo=3.mx.freenet.de) by mjail0.freenet.de with esmtpa (ID claudio.fischer@freenet.de) (Exim 4.80.1 #2) id 1UJ9kR-0001oA-Jk for meld-list@gnome.org; Fri, 22 Mar 2013 22:43:39 +0100 Received: from pd955c703.dip0.t-ipconnect.de ([217.85.199.3]:49411 helo=[127.0.0.1]) by 3.mx.freenet.de with esmtpa (ID claudio.fischer@freenet.de) (port 25) (Exim 4.80.1 #2) id 1UJ9kJ-00087V-EL for meld-list@gnome.org; Fri, 22 Mar 2013 22:43:39 +0100 Message-ID: <514CD085.1070902@freenet.de> Date: Fri, 22 Mar 2013 22:43:33 +0100 From: Claudio Fischer User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130307 Thunderbird/17.0.4 MIME-Version: 1.0 To: meld-list@gnome.org Subject: Re: Feature request: Visually compare image files References: In-Reply-To: Content-Type: multipart/mixed; boundary="------------070408080605070901000309" X-Antivirus: avast! (VPS 130322-0, 22.03.2013), Outbound message X-Antivirus-Status: Clean X-Mailman-Approved-At: Sat, 23 Mar 2013 09:19:24 +0000 X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Mar 2013 21:57:59 -0000 This is a multi-part message in MIME format. --------------070408080605070901000309 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit
Am 21.03.2013 15:41, schrieb Konstantin:
Right now, when you try to see the difference between two image files, you get a message that this is not possible because the files are binary.
Why not just display the files side by side?


_______________________________________________
meld-list mailing list
meld-list@gnome.org
https://mail.gnome.org/mailman/listinfo/meld-list

Hi,
meld 1.71 got a lot of features and functions I wanted to have.
One of my missing features would also to have the possibility to compare binary files e. g. bitmaps, icons ...
See the attached screenshot how the compare tool we use under windows does this.
Would be nice to see this in meld too :-)

Regards,
Claudio
--------------070408080605070901000309 Content-Type: image/jpeg; name="BinaryCompare.jpg" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="BinaryCompare.jpg" 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 jXDHomNcMeiY1wx6JjXDHomNcMeiY1wx6JjXDHomNcMeiY1wx6JjXDHomNcMeiY1wx6N17M6 xmeawAAAAAADRetoZgzOPeFZ89/C+/HV3nq/J6eG97lfyOntOF4TrABBJJJcoVLGOc4zNqiW EtUSwlqiWEtUSwlqiWEtUSwlqiWEtUSwlqiWEtUSwlqiWEtUSwlqiWEtUSwnTrW10OfOc0AA AAAAG1troDkOoAEEkhNFwZ50mJiukxMV0mJiukxMV0mJiukxMV0mJiukxMV0mJiukxMV0mJi ukxMV0mJiukxMV0mJium69DWMzjIAAAAAABovRrQzBmce8Kz57+F9+OrvPV+T08N73K/kdPa cL86NqAFpcdZmXpNzGMK2M845s5vbJlM6XUmUzpdSZTOl1JlM6XUmUzpdSZTOl1JlM6XUmUz pdSZTOl1JlM6XUmUzpdSZTOl1JlM6XUmUz266dGtUjnmaTIAAAAAA31q90BwRtQAuYRFnUvQ YTPH0kya87j1TJrzuPVMmvO49Uya87j1TJrzuPVMmvO49Uya87j1TJrzuPVMmvO49Uya87j1 TJrzuPVMmvO49Uya87j1TJrzuPVMmvO49W69mNYzPNYAAAAAABovW0MwZnHvCs+e/hffjq7z 1fk9PDe9yv5HT2nC8R2AAguQCxUgkwmckmJAAAAAAAAAAAAAAAAAAAAN7rW0c+c5oAAAAAAN rbXQHKdYAILElS5hM4JMCKmBFTAipgRUwIqYEVMCKmBFTAipgRUwIqYEVMCKmBFTAitrehrG ZxkAAAAAAA0Xo1oZgzOPeFZ89/C+/HV3nq/J6eG97lfyOntOF+bGtAC2bhvMy9Z0GEc9bmWs 825rzU0w6zo5IXDrOjkhcOs6OSFw6zo5IXDrOjkhcOs6OSFw6zo5IXDrOjkhcOs6OSFw6zo5 IXDrOjkhcOs6OSFw6zo5IXDrPo8t9WLSOe5zQAAAAAAbro0B8+NaAFzCK12HSc7PH0zOWuLj 1k5a4uPWTlri49ZOWuLj1k5a4uPWTlri49ZOWuLj1k5a4uPWTlri49ZOWuLj1k5a4uPWTlri 49ZOWuLj1k5a4uPWTlri49ZvNduNYzPNYAAAAAABovW0MwZnHvFSuN/C+/HV3nq/J6eG97lf yOntOF5DtAAAAM5KoM5KgAAAAAAAAAAAAAAAAAAAAG91rbnJjM1AAAAAABtba6A5TuAAAAMZ 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 ZLlSSCprZsAAQcx//8QAMBAAAgICAQMEAgEDBAMBAQAAAQIAEQMSIRMiMQQQMjMUNDUjMEEg QEJEBVBgJEP/2gAIAQEAAQUCxYQV6aTpJOkk6STpJOkk6STppOnjhxpBjSdLHOljnTSaJNEn TSdNJ00nTSdNJ00nTSdNJ00nTSdNJ00nTSdNJ00nTSdNJ00nTSaJNEmiTRJok0SaJNEmiTRJ ok0SaJNEmiTRJok0SaJNEmiTRJok0SaJNEmiTRJok0SaJNEmiTRJok0SaJNEmiTRJok0SaJN EmiTRJok0SaJNEmiTRJok0SaJNEmiTRJok0SaJNEmiTRJok0SaJNEmiTRJok0SaJNEmiTRJo k1SaJNEmiTRJok0SaJNEmiTRJok0SaJNEmiTRJok0SaJNEmiTRJok0SaJNEmqTRJqs0SaJNE miTRJok0SaJNEmiTRJ00iY8ddPHOnjhx47KYxOmsCYiAEqklLdJKSOE09RjCLj+p3yLFZWV2 1Vtsan1CqFyhoMx6R2xsmTeJkgzgzrrGZVCsuRU2YJl7Fzq06n9W3ON8r2zFT1xXWWI20DK0 TZh1hXWE6ovrrbeoRS5IfHkZzlc7Zb1Hj/7azAZcszamSlKXrbS2iHudtmtoS1eq/XT69rAR BCuw6cOIXp3DAgAxzpiDEARjAgwczwAlHpLXTsdIbdIQ4wYcdnpqJkx3FXX2GOp0RRxgxcfP QEKdxW2VNY+HG8OKz/8Ab6yjKM1M1M1MozomdIzpGdIzpGdGeq/Xx8YeZzOZ3TundO6czmcz undO6d0p5TymlNKed87p3TundO6d0pp3TundO6d07p3TulNKaU0ppTSmlNKaU0ppTSmlNKaU 0ppTSmlNKaU0ppTSmlNKaU0ppTSmlNKaU0ppTSmlNKaU0ppTSmlNKaU0ppTSmlNKaU0ppTSm lNKaU0ppTSmlNKaU0ppTSmlNKaU0ppTSmlNKaU0ppTSmlNKaU0ppTSmlNKaU0ppTSmlNKaU0 ppTSmlNKaU0ppTSmlNKaU0ppTSmlNKaU0ppTSmlNKaU0pp3TundO6d07p3Tmczmczmcwkgeq /XH61zHnLIM/G02mLPaDPZx5eolxcp6yeoudZJ10iuGFw5TOsAOqsD2LhyvXXS1z7TrpOukD WLgfJ1RnQw5xqMgaXHzBHXODOuNlyBpcy5mV+qu3XWmzhR1lnWtrly5cuXLly5cuXLly5cuX Lly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLl y5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5kP9P1X64/WMVScZ9PcAoH wiPoMRvGmiR1JPS6k6XAxnLMaaLGB6p9PcOGKuqwh4EZm6U6J1bFcVdVgvqdHt6RMRCrR76n S6kfEQqKR7Op3GHvCFicNk4LYJX/AN4/1+q/XH69ATsms1hAE7ZrNZrNZrNZrNZqJqJrNRKW aiaiOVU9RZ1VnUEGpWhQCmazUTWazWazWazWazWazWazWazWazWazWazWazWagzUSlmomsIA nZNQZqJrKE1E1msoTUTWMyqdxNxNxKFUs1ms1EoTWazUQgCdk1ms1Bms1E1ms1ms1ms1ms1m s1ms1ms1ms1ms1ms1ms1ms1ms1ms1ms1ms1ms1ms1ms1ms1ms1ms1ms1ms1ms1ms1ms1ms1m s1ms1ms1ms1ms1ms1ms1ms1ms1msyL/T9V+uPoLU/UEXbUG4T3W8smA2D9tCZOG/1f8AI3fg nyfuT5ZMmsXbqn618nws/wCdCarNVmqzVZqs1WarNVmqzVZqs1WarNVmqzVZqsoRzU7l90+D PTdWK+zS6K5ayD5N4gPF3OYfEPyh+ViHLcx7F8XxsXRqDyzCtoDYXwPnl4KNyDYT4RzTYz7M 4Sb8hwV/+HyfX6r9cfrMu2TKpRRmoYW2Ug9SqOp3T4O2uTbJGcl/YC/bwZdEE7eSfP8A/Zn0 bljhGoVdk6QnxGLz/wAx/sfUYWywLqji4zNrjaxE+H/LqCf8p1QHDYw+NwzN4b41OJzG+Os5 E8QfZlNJsFyzF8SrX02iCl/ywb2T4L4LaszXMaaxPgnwd6gUvEoNPVfMNpix8YP/AIfJ9fqv 1x+sQDCNZskT4lQYwoxfjkx7QAhjjJy+3I9q9muwQJ5J8/8A9sls2MKkSY/jP6jxF1H/ADly 5cuXLly5cuXLly5cuX/obGQR4T4eDx1PJj4hv0kmHHrG8TURaAuzKgbi7K/YQCEw00Qf0/B2 EHip4NY4OFXwVBjIywOKThE+HTFgERR7OoYaLqFLH/4fJ9fqvoH6ynIw/qz+rP6s/qz+rF3h ytt1XnVedV51XnVedV51XnVedV51XnVedV51Xhdm/wBHUedV51XnVedV51XnVedV51XnVedV 51XnVedV51XnWa/yDfVedV51XnVeDMxH5M6rzqvOs1nOVnVeHMwHVedV51XnVedV51XnVedV 51XnVedV51XnVedV51XnVeFi3+jqvOq86rzqvOq86rzqvOq86rzqvOq8xszFnbffJN8k3yTf JN8k3yTfJN8k3yTfJN8k3yTfJN8k3yTfJN8k3yTfJN8k3yTfJN8k3yTfJN8k3yTfJN8k3yTf JN8k3yTqPOq175Jvkm+Sb5J1HM6xm+Sb5J1Hs5WE6jTqPW7zfJN8k3yTfJN8k3yTfJN8k3yT fJN8k3yTfJN8k3yTfJN8k3yTfJN8k3yTfJN8k3yTfJN8k3yTfJN8k3yTfJCXKeq/XH62R2x+ h9Jly5wQyPMSu+L1Hqc2NjP+f++awuN7j9pJUHqvHztqWYP1Mm+a0mdsbYXyZEbqPC7dRWUZ cRe8j7ekOR9utkC4mJf/AHmKf/1/358I1xu2EgHqNGymtiG3bbJ2zKyHGzup3aFjupAyAc+M G7BC7iY2Jb/e/wD8/Vfrj9bP/Hf+OmT5z0/6/rPtM/5/+vZVYcf73FDXVsSxLEsSxLEsSxLE sSxLEsSxLEsSxLEsSxLEsSxLEsSxLEsSxLEsSxLEsSxLEsSxLEsSxLEsSxLEsSxLEOpA1AsS xLEsSxLEsSxLEsSxLEsSxLEsSxLEsSxLEsSxLEsSxLEsSxP/AOXqv1x+vn/jv/HTJ856f9f1 n2mI2r9Q69Q69Q69Q69Q69Q69Q6o2wmE6+lDsceRi3pmOo6p0R9oxYAZDou1O2o3OqMWDtqO odUbYO2o6h1Rtg7ajqHVG2DtqOodUbYO2o6h1Rtg7ajqHVG2DFgBkOi7U7ajqHVG2DtqOodU bYO2o6h1RtgxIHUOqNsHbUdQ6o2wjvpOsL6yQMG/1syrAwb/AEI26w+fa9fUdQ11DXUNdQ11 DXUNdQ0jE+2HjGMhKIxJwcem6vYr7FrpchiFjGOq7mkYksdV6hpGJjHVeoaRiYx1XqGkYmMd V6hpGJjHVeoaRiYx1XqGkYmNdLkMQsYx1XqGkYmMdV6hpGJjHVeoaRiYxpeoQEYmMdV6hpGJ 9nbRTm1HVQMGVv8AWzBQGVv9Ctt/oPmP9fqv1x+vn/jv/HTJ856f9f1n2mICcmja6Nro2uja 6Nro2ujaoCPbGof0oTIuFwV9K6hwMbriQG42LbDiXQOCQVyaYgVVwSNG1QERwSNG1QERwSNG 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 lEJKnwpJRCSp8KSUQkqfCklEJKnwpJRCSp8KSUQkqfCklEJKnwpJRCSp8KSUQkqfCklEJKnw pJRCSp8KSUQkqfCklEJKnwpJTCSV93/vJ59j5j/X6r6B9Gf+Ox/r+l/Y9s3xMRdsnTOvTOvT OvTOujaIGCaf00XUTKLmpoCMCZqYBGBM1MAjAmamARgTNTAIwJmpgEYEzUwCMCZqYBGBM1MA jAmamARgTNTAIwJmpgEYEzUwCMCZqYBGBM1MAmuy9M6ouomSc68686868686868686868686 8686qD01sKfPtW3qOmSOmSOmSOmSArCY1ZRp2IpHtjQlemSEUiY0JXpkhFImTwoYKgIB8KGC oCAfChgqAgHwoYKgIB8KGCoCAfChgqAgHwoYKgIB8KGCoCAfChgqAgHwoYKgIB8KGCoCAfCh gqAgHwoYKgIB8KGC4AQPZAwSmCqCFUEKoIVQQqghVBCqCFUEKoIVQQqghVBCqCFwgj3PmP8A X6r6B9Gf+Ox/r+l/Y9s3xMRtX6h16h16h16h13Ohfs3OqNsI7ajqHVG2GU0d4DcY1N4DcY1N 4DcY1N4DcY1N4DcY1N4DcY1N4DcY1N4DcY1N4DcY1N4DcY1N4DcY1N4DcY1N4DcY1N4DcY1N piNr7P5/vJD59r19R1DXUNdQ11DQdp1P6W5pGJ9svgElVNg+ASVU2D4BJVTYPgElVNg+ASVU 2D4BJVTYPgElVNg+ASVU2D4BJVTYPgElVNg+ASVU2D4BJVTYPgElVNg+ASVU2D4BJVTYPgEl cJsR/wDYJ59j5j/X6r6B9Gf+OU16f0bX6n2zfExATk0bXRtdG10bWnCaMcQxkIgI9nBI0bVA RM1ymgBjXKaAGNcpoAY1ymgBjXKaAGNcpoAY1ymgBjXKaAGNcpoAY1ymgBjXKaAGNcpoAY1y mgBjXKaAGNcozEO2NerbVzrzrzrzrzrzrzrzrzrzrzrzrzrzri8Hz7Vtn0ZhozDRmGjMAHgV +kuM6IDcyeF2CpsAfC7BU2APhdgqbAHwuwVNgD4XYKmwB8LsFTYA+F2CpsAfC7BU2APhdgqb AHwuwVNgD4XYKmwB8LsFTYA+F2CpsAfC7BU2APhdgqbAHwuwXBsBMkXbVdtV21XbVdtV21Xb VdtV21XbVdtV21XbVdtV21w7e58x/r9V9A+jP/Hf9f0X7Xtm+JmNtX6nb1O3qdvU7ep2F6Tq dqtsIzajqdqtsMpqbCgbhNTcUDcJqbigbhNTcUDcJqbigbhNTcUDcJqbigbhNTcUDcJqbigb hNTcUDcJqbigbhNTcUDcJqbigbhNTcUDcJqbisRtfZ/P95IfPtevqRk4GTgZOBk4D8bjpjJw rbe2XgBrVTsDwA1qp2B4Aa1U7A8ANaqdgeAGtVOwPADWqnYHgBrVTsDwA1qp2B4Aa1U7A8AN aqdgeAGtVOwPADWqnYHgBrVTsDwA1qp2B4Aa1U7A8ANa4TsI/wDsE8+x8x/r9V9A+jP/AB3/ AF/Rfte2b4mLfU1atWrVq1au4JROFUYLjB9sl1q1YwZl880vlobi+WhuL5aG4vlobi+WhuL5 aG4vlobi+WhuL5aG4vlobi+WhuL5aG4vlobi+WhuYvEawrE1zrzrzrzrzrzrzrzrzrzrzrzr zrzri8Hz7EXn1ZpqzTVmmrNFu1s4lxtSWWmTwl647o+EvXHdHwl647o+EvXHdHwl647o+EvX HdHwl647o+EvXHdHwl647o+EvXHdHwl647o+EvXHdHwl647o+EvXHdHwl647o+EvX091MkUk qpJVSSqklVJKqSVUkqpJVSSqklVJKqSVUkqpJVSSuEk+58x/r9V9A+jP/Hf9f0X7Xtm+JmNg r9RdOounUXTqLp1F0LqFLAKrBhGYKOouisGGQ1NhQNwkCbLQNwkCbLQNwkCbLQNwkCbLQNwk CbLQNwkCbLQNwkCbLQNwkCbLQNwkCbLQNwkCbLQNwkCbLQNwkCbLQNwkCbLQNwkCbLWM2vs/ n+8kPn2Br1IyKVGRSoyKVGRSoyKV3XTZdVYP7ZTQ2GoNgmhsNQbBNDYag2CaGw1BsE0NhqDY JobDUGwTQ2GoNgmhsNQbBNDYag2CaGw1BsE0NhqDYJobDUGwTQ2GoNgmhsNQbBNDYag2CaGw 1xGxH/2CefY+Y/1+q+gfRn/jv+v6L9r2zfExfs/x/j/H+AaRmJwqTWP2yeP8Y5m8/wCF8v7L 5f2Xy/svl/ZfL+y+X9l8v7L5f2Xy/svl/ZfL+y+X9l8v7L5f2xeIx1VmsX23232323232323 23232323232324uQfPsfv+U+U+U+UU87/wBAbCJ3PMnARu3GbU8BG7cZtTwEbtxm1PARu3Gb U8BG7cZtTwEbtxm1PARu3GbU8BG7cZtTwEbtxm1PARu3GbU8BG7cZtTwEbtxm1PARu3GbU8B G7cZtTwEbtxm1PARu305tZkitsqtsqtsqtsqtsqtsqtsqtsqtsqtsqtsqtsqtsqtsqtsuE7e 58x/r9V9A+jP/Hf9f0X7Xtm+JmIgZNl12XXZddl12XWEgAEEQkAbLqCCMnEsUDY/9Snj2fz/ AHkh8+y/tKysFZWCsrBWVgGVgCGEVgwmSWCAQRLBAIIlggEESwQCCJYIBBEsEAgiWCAQRLBA IIlggEESwQCCJYIBBEsEAgiWCAQRLBAIIlggEESwRiIIj/7BPPsfMf6/VfQPoz/x3/X9F+17 ZviYOHsa2NbGtjW00c42wJQTFz7ZeBY1xczPOKTmZddT06x1eXXU9OsdXl11PTrHV5ddT06x 1eXXU9OsdXl11PTrHV5ddT06x1eXXU9OsdXl11PTrHV5ddT06x1eXXU9OsdXl11PTrHV5ddT 06x1eXXU9OsGusYhVdxrsNNhpsNNhpsNNhpsNNhpsNNhpsNNhpsNNhpiNg+fZvuJDAkMCQwJ DAMhJbG3pVqsZDPMtUjIUxMCpqkZCmJgVNUjIUxMCpqkZCmJgVNUjIUxMCpqkZCmJgVNUjIU xMCpqkZCmJgVNUjIUxMCpqkZCmJgVNUjIUxMCpqkZCmJgVNUjIUxMCpqkZCmJgVNUjIUxMCp qkZCnpmBWZIrB1Vg6qwdVYOqsHVWDqrB1Vg6qwdVYOqsHVWDqrB1Vg6qwdcLB/c+Y/1+q+hf pz/x3/X9F+17ZviZh+3+yWqbzeE3/wCsTxC1Qm/76Q+fZf2v7L/+vT2f/YJ59j5j/X6r6B9G f+O/6/ov2vbN8TBzkoVQqhVCgoKf8CoExce2fn2TiP4rhOI/iuE4OTkERODk5BETg5OQRE4O TkERODk5BETg5OQRE4OTkERODk5BETg5OQRE4OTkERODk5BETg5OQRE4OTkETDwJk4lirFWK sVYqxVirFWKsVYqxVirFWKx8w+fZvuICQgJCAkICRUXYduBlCDGArzKLCAdPHwhFhAOnj4Qi wgHTx8IRYQDp4+EIsIB08fCEWEA6ePhCLCAdPHwhFhAOnj4QiwgHTx8IRYQDp4+EIsIB08fC EWEA6ePhCLCAdPHwhFhAOnj4QiwgHTx8IRYQDp+n4SZICCAQQCCAQQCCAQQCCAQQCCAQQCCA QQCCAQQCCMZB9z5j/X6r6B9Gf+O/6/ov2vbN8TMQDZNF10XXRddF16aa9NAuiagBRMqhjqtA AAixqKAABFjRaAABUNNEoAAFQ00SgAAVDTRKAABUNNEoAAFQ00SgAAVDTRKAABUNNEoAAFQ0 0SgAAVDTRKAABUNNEoAAFQ00SgAAVDTRKAABUNNErEAFmTmUKoVQqhVCqFUKoVQqhVCqFUKo VQrHxD59l/aCKoCKoCKoCKo6aBVxooVEUKqqJkFjRQAqrCLGigBVWEWNFACqsIsaKAFVYRY0 UAKqwixooAVVhFjRQAqrCLGigBVWEWNFACqsIsaKAFVYRY0UAKqwixooAVVhFjRQAqrCLGig BVWEWNFACqsIsaKBiVV9skAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGMAe58x/r9V9A +jP/AB3/AF/Rfte2b4mL9n+P8f4/wBaG+lbXj9s9w7Rbt/H+Ej+OaW7e6O0W7e6O0W7e6O0W 7e6O0W7e6O0W7e6O0W7e6O0W7e6O0W7e6O0W7e6O0W7e6O0W7e6O0W7e6O0xXrH8/wB9IfPs TWf4T4T4T4RRzyPTsWSJ2vMvIX4Y/ieQvwx/E8hfhj+J5C/DH8TyF+GP4nkL8MfxPIX4Y/ie Qvwx/E8hfhj+J5C/DH8TyF+GP4nkL8MfxPIX4Y/ieQvwx/E8hfhj+J5C/DB8Y/8AsE8+x8x/ r9V9A+jP/Hf9f0X7Xtm+JmNQz9NdOmunTXTprp0106S69NdVUKJlUNOmtBQsIsajUCgRY0FB QsZQ06a0FCxlDTprQULGUNOmtBQsZQ06a0FCxlDTprQULGUNOmtBQsZQ06a0FCxlDTprQULG UNOmtBQsZQ06a0FCxlDTprQULGUNOmtBQsZQ06a1iUKsyi5qNNRpqNNRpqNNRpqNNRpqNNRp qNNRpqNNRpqNMQoHz7AX6kY1CjGoUY1CjGoUYwF6KajGoCqF9snICABVCw8gIAFULDyAgAVQ sPICABVCw8gIAFULDyAgAVQsPICABVCw8gIAFULDyAgAVQsPICABVCw8gIAFULDyAgAVQsPI CABVCw8gIAFULDyAgAVQsPICADCoX2yRVCKqhFVQiqoRVUIqqEVVCKqhFVQiqoRVUIqqEVVC KqhFVQi4VCe58x/r9V9A+jP/AB3/AF/Rfte2b4mKT1NmrZq2atmruKO7LiDOceMn2z2IWeKT b2Bs0SNLalJt7ALPFJt7ALPFJt7ALPFJt7ALPFJt7ALPFJt7ALPFJt7ALPFJt7ALPFJt7ALP FJt7ALPFJt7ALPFJt7ALPFJt7ALPMV6x/P8AfSHz7E1n2ZZsyzZlmzLF2suy+nV30Sw0y+Fs onxPhbKJ8T4WyifE+FsonxPhbKJ8T4WyifE+FsonxPhbKJ8T4WyifE+FsonxPhbKJ8T4Wyif E+FsonxPhbKJ8T4WyifE+Fspg+Mf/YJ59j5j/X6r6B9Gf+O/6/ov2vbN8TMa7P0+3p9vT7en 29Ps6Xb0+FXUTMu06fCrUZdppwBUIsacKtRl2nT4VajLtOnwq1GXadPhVqMu06fCrUZdp0+F Woy7Tp8KtRl2nT4VajLtOnwq1GXadPhVqMu06fCrUZdp0+FWoy7Tp8KtRl2nT4xClmUXNezX s17NezXs17NezXs17NezXs17NezXs17MQoHz7Vt6jp8dPjp8dPgJQ6PZ04q6+2TwFoKusPgL QVdYfAWgq6w+AtBV1h8BaCrrD4C0FXWHwFoKusPgLQVdYfAWgq6w+AtBV1h8BaCrrD4C0FXW HwFoKusPgLQVdYfAWgq6w+AtDCuvtkirqqrqqrqqrqqrqqrqqrqqrqqrqqrqqrqqrqqrqqrq qrquEa+58x/r9V9A+jP/AB3/AF/Rfte2b4mISMm7a7tru2u7a7Po2QriGVmCEn2zEibtFNxy QN2im45IG7RTcckDdopuOSBu0U3HJA3aKbjkgbtFNxyQN2im45IG7RTcckDdopuOSBu0U3HJ A3aKbjkgbtFNxyQN2im45IG7RTcckDdpiJKx/P8AfSHz7Xr6jdgN2A3YDdgAXm7DAuYkIWuZ fCklEJKnwpJRCSp8KSUQkqfCklEJKnwpJRCSp8KSUQkqfCklEJKnwpJRCSp8KSUQkqfCklEJ KnwpJRCSp8KSUQkqfCklEJKnwpJRCSp8KSUQkqfCklMJJWP/ALBPPsfMf6/VfQPoz/x3/X9F +17ZviYi7ZOmdemdemdemddG00fplDoi6iZgTNGiio4JGjRRUcEjRooqOCRo0UVHBI0aKKjg kaNFFRwSNGiio4JGjRRUcEjRooqOCRo0UVHBI0aKKjgkaNFFRwSNGiio4JGjRRUcEjRooqOC Ro0xA6zLKOlHSjpR0o6UdKOlHSjpR0o6UdKOlHSjpi8Hz7Vt6jpkjpkjpkjpkgKwnTfpaEoi ke2TwoYKgIB8KGCoCAfChgqAgHwoYKgIB8KGCoCAfChgqAgHwoYKgIB8KGCoCAfChgqAgHwo YKgIB8KGCoCAfChgqAgHwoYKgIB8KGCoCAfChgqAgHwoYLgBAmSKCFUEKoIVQQqghVBCqCFU EKoIVQQqghVBCqCFUEKoIXCCPc+Y/wBfqvoH0Z/47/r+i/a9s3xMRtX6h16h16h16h13OvUO vUOqNsJmbWdThWuM2s6nCtcZtZ1OFa4zazqcK1xm1nU4VrjNrOpwrXGbWdThWuM2s6nCtcZt Z1OFa4zazqcK1xm1nU4VrjNrOpwrXGbWdThWuM2s6nCtcZtZ1OFa4zazqcYjax/P99IfPtev qOoa6hrqGuoa3NdQ11DSMT7ZfAJKqbB8AkqpsHwCSqmwfAJKqbB8AkqpsHwCSqmwfAJKqbB8 AkqpsHwCSqmwfAJKqbB8AkqpsHwCSqmwfAJKqbB8AkqpsHwCSqmwfAJK4TYj/wCwTz7HzH+v 1X0D6M/8d/1/RftShM/gxATk0bXRtdG10bUrk0CNpo2qAj2z2YVeKDb2QVeKDb2QVeKDb2QV eKDb2QVeKDb2QVeKDb2QVeKDb2QVeKDb2QVeKDb2QVeKDb2QVeKDb2QVeKDb2QVeKDb2QVeK Db2QVeKDb2QVeYr1mW53ad2ndp3ad2ndp3ad2ndp3ad2ndp3ad2ndpiuj59q2z6Mw0ZhozDR mFZKVG00ZggNzJ4XYKmwB8LsFTYA+F2CpsAfC7BU2APhdgqbAHwuwVNgD4XYKmwB8LsFTYA+ F2CpsAfC7BU2APhdgqbAHwuwVNgD4XYKmwB8LsFTYA+F2CpsAfC7BcGwEyRdtV21XbVdtV21 XbVdtV21XbVdtV21XbVdtV21XbXDt7nzH+v1X0D6M/8AHf8AX9F+17eohmNtX6nb1O3qdvU7 ep29Ts37FbYTKwWdRaDBozBZ1FoMGjMFnUWgwaMwWdRaDBozBZ1FoMGjMFnUWgwaMwWdRaDB ozBZ1FoMGjMFnUWgwaMwWdRaDBozBZ1FoMGjMFnUWgwaMwWdRaDBozBZ1FoMGjMFnUWgwaMw WdRaxMGWP5/vpD59r19SMnAycDJwMnHU7Rk4DjRW29svADWqnYHgBrVTsDwA1qp2B4Aa1U7A 8ANaqdgeAGtVOwPADWqnYHgBrVTsDwA1qp2B4Aa1U7A8ANaqdgeAGtVOwPADWqnYHgBrVTsD wA1qp2B4Aa1wnYR/9gnn2PmP9fqvoH0Z/wCO/wCv6L9r29RDFvqatWrVq1atX9RUXYY+7p4w fbPcO0W7e6O0W7e6O0W7e6O0W7e6O0W7e6O0W7e6O0W7e6O0W7e6O0W7e6O0W7e6O0W7e6O0 W7e6O0W7e6O0W7e6O0W7e6O0xXUyyzpZ0s6WdLOlnSzpZ0s6WdLOlnSzpZ0s6YvB8+xF59Wa as01ZpqzTvmPYBQxxJZaZPCXrjuj4S9cd0fCXrjuj4S9cd0fCXrjuj4S9cd0fCXrjuj4S9cd 0fCXrjuj4S9cd0fCXrjuj4S9cd0fCXrjuj4S9cd0fCXrjuj4S9fT3UyRSSqklVJKqSVUkqpJ VSSqklVJKqSVUkqpJVSSqklVJK4ST7nzH+v1X0D6M/8AHf8AX9F+17eohmNgr9RdOounUXTq Lp1F06i69RdFYMJlYKd1oEEFgs3WgQQWCzdaBBBYLN1oEEFgs3WgQQWCzdaBBBYLN1oEEFgs 3WgQQWCzdaBBBYLN1oEEFgs3WgQQWCzdaBBBYLN1oEEFgs3WgQQWCzdaBBBYLN1rEQVj+f76 Q+fYGvUjIpUZFKjIpUZFKjIpUZFIGRSFYP7ZTQ2GoNgmhsNQbBNDYag2CaGw1BsE0NhqDYJo bDUGwTQ2GoNgmhsNQbBNDYag2CaGw1BsE0NhqDYJobDUGwTQ2GoNgmhsNQbBNDYag2CaGw1x GxH/ANgnn2PmP9fqvoH0Z/47/r+i/a9vUQxfs/x/j/H+NtV31xj4Y/bPxCYnyycAmJ8snAJi fLJwCYnyycAmJ8snAJifLJwCYnyycAmJ8snAJifLJwCYnyycAmJ8snAJifLJwCYnyycAmJ8s nAJifLJwCZh5Eympt2bdm3Zt2bdm3Zt2bdm3Zt2bdm3Zt2bdm3ZiNg+fY/f8p8p8p8ptFftF sqdzzJwEbtxm1PARu3GbU8BG7cZtTwEbtxm1PARu3GbU8BG7cZtTwEbtxm1PARu3GbU8BG7c ZtTwEbtxm1PARu3GbU8BG7cZtTwEbtxm1PARu3GbU8BG7cZtTwEbt9ObWZIrbKrbKrbKrbKr bKrbKrbKrbKrbKrbKrbKrbKrbKrbKrbLhO3ufMf6/VfQPoz/AMd/1/Rfte3qIZiIGTZddl12 XXZddl12XXZdQQRH8/8Ark8R/P8AfSHz7L+0rKwVlYKysFZWAZWCsrBWVgrBhMksEAgiWCAQ RLBAIIlggEESwQCCJYIBBEsEAgiWK8+1ivPtYrz7WK8+1ivPtYrz7WK8+1ivPtYrHz7P/sE8 +x8x/r9V9A+jP/Hf9f0X7Xt6iGDh7GtjWxrY1LoqKydNSNMXPt6nWHp1jq8uup6dY6vLrqen WOry66np1jq8uup6dY6vLrqenWOry66np1jq8uup6dY6vLrqenWOry66np1jq8uup6dY6vLr qenWOry66np1jq8uup6dY6vLrqenWOry66np1g11mU1NhpsNNhpsNNhpsNNhpsNNhpsNNhps NNhpsNNhpiNg+fZvuJDAkMCQwJDAtjiOji9hjIZ5lqkZCmJgVNUjIUxMCpqkZCmJgVNUjIUx MCpqkZCmJgVNUjIUxMCpqkZCmJgVNUrKUxkFTVKylMZBU1SspTGQVNUrKUxkFTVKylMZBU1S spTGQVNUrKUxkFTVKylMZBU1SspT05BWZIrB1Vg6qwdVYOqsHVWDqrBlVgyqwZVYMqsGVWDK rBlVgyqwZcTBvc+Y/wBfqvoH0Z/47/r+i/a9vUQzD9v9l/P/AK5PEfz/AH0h8+y/tf2X/wDX p7P/ALBPPsfMf6/VfQPoz/x3/jkV/TjFjUzpY5/5IAZzBzkoVQqhVCqQIAy4l+nFx7Z+YRE4 OTkERODk5BETg5OQRE4OTkERODk5BETg5OQRE4OTkERODk5BETg5OQRE4OTkERODk5BETg5O QRE4OTkERODk5BETg5OQRMPAmTiWKsVYqxVirFWKsVYqxVirFWKsVYrHzD59m+4gJCAkICQg JNVWJ2qnGLGArzJzFHYnxPMUdifE8xR2J8TzFHYnxPMUdifE8xR2J8TzFHYnxPMUdifE8xR2 J8TzFHYnxPMUdifE8xR2J8TzFHYnxPMUdifE8xR2J8TzFHZg+MyQEEAggEEAggEEAggEEAgg EEAggEEAggEEAggEEYzfufMf6/VfQPoz/wAd/wCM/X9//J/sGYgGyaLrouui66Lr00KhFUaJ qAFEyqGOiUAACoaaJQAAKhpolAAAqGmiUAACoaaJQAAKhpolAAAqGmiUAACoaaJQAAKhpolA AAqGmiUAACoaaJQAAKhpolAAAqGmiUAACoaaJQAAKhpolAAAqGmiViACzJzKFUKoVQqhVCqF UKoVQqhVCqFUKoVj4h8+y/tBFUBFUBFUBFUdNNVRUgRViqqiZBc0WgoWEXNFoKFhFzRaChYR c0WgoWEXNFoKFhFzRaChYRc0WgoWEXNFoKFhFzRaChYRc0WgoWEXNFoKFhFzRaChYRc0WgoW EXNFoKFhFzRaChYRc0WsShfbJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjFe58x/r9 V9A+jP8Ax3/jP1/f/wAn+wYv2f4/x/j/AB/w1Y4v+GP2z3DtFu3ujtFu3ujtFu3ujtFu3ujt Fu3ujtFu3ujtFu3ujtFu3ujtFu3ujtFu3ujtFu3ujtFu3ujtFu3ujtFu3ujtFu3ujtMV6x/P 99IfPsTWf4T4T4T4QCooJQWqJ2vMkX4J8TF+CfExfgnxMX4J8TF+CfExfgnxMX4J8TF+CfEx fgnxMX4J8TF+CfExfgnxMX4J8TF+CfExfgnxMX4YPjH/ANgnn2PmP9fqvoH0YgGwqqoPdsaO TMahn6a6dNdOmunTXQ4kK9JdemuqqFEyqGnTWgoWMoadNaChYyhp01oKFjKGnTWgoWMoadNa ChYyhp01oKFjKGnTWgoWMoadNaChYyhp01oKFjKGnTWgoWMoadNaChYyhp01oKFjKGnTWgoW MoadNaChYyhp01oKFjKGnTWsShVmUXNRpqNNRpqNNRpqNNRpqNNRpqNNRpqNNRpqNNRpiFA+ fYC/UjGoUY1CjGoUY1C9JNBiWhjUBVC+2TmBQAqhYeYFACqFh5gUAKoWHmBQAqhYeYFACqFh 5gUAKoWHmBQAqhYeYFACqFh5gUAKoWHmBQAqhYeYFACqFh5gUAKoWHmBQAqhYeYFACqFh5gU AKoWHmBQBiUL7ZIqhVVQqqoVVUKqqFVVCqqhVVQqqoVVUKqqFVVCqqhVVQqqoVcShfc+Y/1+ q+gfRg+r/SYpPU2atmrZq2ahsV6hXCD2YyfbPYhZ4pNvYBZ4pNvYBZ4pNvYBZ4pNvYBZ4pNv YBZ4pNvYBZ4pNvYBZ4pNvYBZ4pNvYBZ4pNvYBZ4pNvYBZ4pNvYBZ4pNvYBZ4pNvYBZ4pNvYB Z5ivWP5/vpD59iaz7Ms2ZZsyzZlg3gcqqv2JYaZILKL8TBZRfiYLKL8TBZRfiYLKL8TBZRfi YLKL8TBZRfiYLKL8TBZRfiYLKL8TBZRfiYLKL8TBZRfiYLKL8TBZTD8Y/wDsE8+x8x/r9V9A +jB9X+kzGuz9Pt6fb0+3p9rYdk6fb0+1V1EzLtOnwq1GXadPhVqMu06fCrUZdp0+FWoy7Tp8 KtRl2nT4ValdVekaVCIyFp0jSoRGQtOkaVCIyFp0jSoRGQtOkaVCIyFp0jSoRGQtOkaVCIyF p0jSoRGQtOkaVCIyFp0jWJdVmUXNezXs17NezXs17NDpodNDpodNDpodNDpodNDpiGoPn2rb 1HT46fHT46fHStFxUox8KuvtkgWgo1hgWgo1hgWgo1hgWgo1hgWgo1hgWgo1lXAhAVCsIMCE BUKwgwIQFQrCDAhAVCsIMCEBUKwgwIQFQrCDAhAVCsIMCEBUKwgwIQFQrCDAhAxLr7ZIopVF KopVFKopVWlVCFVCFVCFVCFVCFVCFVCFVCFVCFxLr7nzH+v1X0D6MH1f6TEJGTdtd213bXdt dnKg5GUO+iEn2zEibtFNxyQN2im45IG7RTcckDdopuOSBu0U3HJA3aKbno/1/wDfP5/0p4/t Hz7Xr6jdgN2A3YDdgAzwHIYHcBC1zJASVXlTASVXlTASVXlTASVXlTASVXlTASVXlU/37/6k /unzH+v1X0D6MH1f6TEXbJ0zr0zr0zr0zqcbFEUqun9NF1EzAmaNFFRwSNGiio4JGjRRUcEj RooqOCRo0UVHBI0aKKnpBWD/AH2WUdKOlHSjpR0xfD+0fPtW3qOmSOmSOmSOmSNH1xIUGnYi ke2SAMAoIBgDAKCAYAwCggGAMAoIBgDAKCAYAwCggJ/v8kWwq2FWwq2FWwuGwP7h8x/r9V9A +jB9X+kzD9v/AMWfISjF/a/+NPmP9fqvoH0YPq/0mYj/AFbhaW0tpbS2ltLaW0tpbS2ltLaW 0tpbS2ltLaW0tpbS2ltLaW0tpbS2ltLaW0tpbS2ltLaW0tpbS2ltLaW0tpbS2ltLaW0tpbS2 ltLaW0tpbS2ltLaW0tpbS2ltLaW0tpbTYiXLl/6F/a/+NPmP9fqvoH0YPq/0mYvt1brN42m0 2m02m02m02m02m02m02m02m02m02m02m02m02m02m02m02m0cbFe2bTabTabTabTabTabTab TabTabTabTabTabTabTabTabTabTabRm49sClcXuv7X/AMafIDW/1+p+gfRg+r/SZiHfCLmk 6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c 6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6f8ArUf/ AKLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuX Lly5cuXLly5cuXLly5cv3yfX6n6R9GD6v9JmOZMmh3Ic5afHl6hfIUPWMOakhzViD9vX7Xy6 4zmImQkLEy7zqtHf/wDP/wCxzcYXcrOvc6/HVM69zr8I20OaBrMX7XcrOqayZNCuXbI7lT1+ Dm1xxspQq9zqtfVGhza48jEYYMu2TqsCjbriJbD/AOyzcYXcrOvc6/HVM69zr8I20OaBrOT6 /U/SPowfV/pMxzIjMdD1Om5iY3WFHZum9n05K/4QZFUYTr0WoB1HQaso7IuJlgxusdNfS/8A sc/0OrWMJA6LV032GEgdFqRSIMbaKP6kX7XVr6Rj43aDEQ1ZS/RamwF1UUumQwIwPSM6JCNg LrkB/HnTYN0mmNdVw8Yf/ZZ/odWsYSB0WrpvsMJA6LUikQY20Uf1Mn1+p+kfQARO6d07p3Tu ndACJzOZzOZzOZzOZzOZzOZzOZzOZzOZzOZzOZzOZzOZzOZzOZzOZzOZzOZzOZzOZzOZzOZz OZzOZzOZzOZzOZzOZzOZzOZzOZzOZzOZzOZzOZzOZzOZzOZzOZRnM5nM5nM5nM5nM5nM5lmX Lly5cuXLly5csy5cuXLly5cuXLlzmXLly5cuXLlzmdVYr7HmczmczmczmuqsVtpzOZzOZzOZ zOZzOZzOZzOZzOZzOZzOZkvp+oP9MfRnJ6vW/qjPcTIQ6nZf/k28XrLJO0J5s9O6lwQNxD5v U7kQvztFa5/x35Vu0/LnRYvkxeD1DN+eoxVjU3MD9xbs8ZFbdlNqYe52Yo/U7xl4OUiDITAT 0OQ6fEeMH1H3W/x8lrAv/wCiH4Y/qPtkOuPXWFmOPBd+x8txLuc++XjDsQVJ6eN26ODnD7ZP rz/Wv0HQmsd6YqZV13E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3 E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3 E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E2Uy1lrLWWsta2WWstZazYQkSlmq1SiU sFCUt0soWeZqsoQESxKWBVE179UogEUohUVxWos1OBCRGCtNVmqbarS4xNFlLpQtaUBhEYKu 4m4m4mmPXXHra7bibLSuoHUE3E3EUY1P9OWl7ibiF0m6TdJuk6izqLCyMD0yQMakdMRSqjcT cRmBT1H1jL0p+Xjn5eOfl45+Xjn5eOfl45+Xjn5eOfl45+Xjn5eOfl45+Xjn5eOfl45+Xjn5 eOfl45+Xjn5eOfl45+Xjn5eOfl45+Xjn5eOfl45+Xjn5eOfl45+Xjn5eOfl45+Xjn5eOfl45 +Xjn5eOfl45+Xjn5eOfl45+Xjn5eOfl45+Xjn5eOfl45+Xjn5eOfl45+Xjn5eOfl45+Xjn5e Ofl45+Xjn5eOfl45+Xjn5eOfl45+Xjn5eOfl45+Xjn5eOfl45+Xjn5eOfl45+Xjn5eOfl45+ Xjn5eOfl45+Xjn5eOfl45+Xjn5eOfl45+Xjn5eOfl45+Xjn5eOfl45+Xjn5eOfl45+Xjn5eO fl45+Xjn5eOfl45+Xjn5eOfl45+Xjn5eOfl45+Xjn5eOfl45+Xjn5eOfl45+Xjn5eOfl45+X jn5eOfl45+Xjn5eOfl45+Xjn5eOfl45+Xjn5eOfl45+Xjn5eOfl45+Xjn5eOfl45+Xjn5eOf l45+Xjn5eOfl45+Xjn5eOfl45+Xjn5eOH1WOD1WOflY5+Vjn5eOfl45+Xjn5eOfl44fVY4c2 MwZsYnXxzr4518c6+OdfHF9RjE/Lxz8vHPy8c/Lxz8vHPyscbJ1Z/8QAMREAAgIBAgUEAgEF AAEFAAAAAAECERAhMQMSIDBBMkBQYSJRMxMUYHBxBEJSYoHw/9oACAEDAQE/AfhLLLLLLLLL LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLLLLLLLLLLLLLLLLLLLLLLLLLLLZZZZZZZZZZfY5UciGooXK3RyIcVmEINasfLdLp/eWV0M a1zu6x4K6Po36/H+erKo0OL+kjhqnTRoSqs7igk76bwtMX03myyzzZ4rNl4Y3ebLL/z/APqH 9U/qn9U/qj4gsUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUcpynKcpynKcpynKcpynKcpyn KcpynKcpynKcpynKcpynKcpynKcpynKcpynKcpynKcpynKcpynKcpynKcpynKcpynKcpynKc pynKcpynKcpynKcpynKcpynKcpynKcpynKcpynKcpynKcpynKcpynKcpynKcpynKcpynKcpy nKcpynKcpynKcpynKcpynKcpylFFFFFFFFFFFFFFFCy+jz3/AK633VqeL/0WvebC0PFf7Utf 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 RcXTJRcXTJRcXTJRcXTJRcXTJRcXTJRcXTHFxdPqR5xxTh+rHN3X8DZZfXZZeVh9u83hd5/C 0UR1KKI6lFFFZfdooorqR5xxTh+rFC61uR2P3l+7ewzyPbCHhD2GeR7DPI8IeI4fsF07Gxsb Z/ebok/ysn6hOiT/ACsn6hOiT/KyfqE6JP8AKyfqE6JP8rJ+oTok/wArJ+oTok/ysn6hOiT/ ACsn6hOiT/KyfqE6JP8AKyfqE6JP8rJ+oTok/wArJ+oRtiHk2xDybZ2yxprRjTWjGmtGNNaM aa0Y01oxprRjTWjGmtGNNaMaa0ZTWj7SPOOKcP1Y5u6/eUs11Us0utYfsF3k34OaX7G5PcVr Y5pfsbk9zVHPL9jk3uJ1sc8v2OTe4nWxzy/Y5N7idbHPL9jk3uJ1sc8v2OTe4nWxzy/Y5N7i dbHPL9jk3uJ1sc8v2OTe4nWxzy/Y5N7idbHPL9jk3uLMPOUqynfS7erHe7G29WNt6sbb1Y23 qxtvVjberG29WNt6sbb1Zber7SPOOKcP1ZW3WtyO3RLL2y9svbL2y9svbL2y9svbL2y9svbL 2y9sIeI4fsF07GxsbdUPJtnbMvUT3ES9RPcRL1E9xEvUT3ES9RPcRL1E9xEvUT3ES9RPcRL1 E9xH/rJaqxG2IeTbO2IeTbpfaXaR5xxSD/LK27jKzWazWazWazWazWazWazWaxRQlWH30hKu 9DzlO83Q5tuxyctxOhzbdjk5bidDm27HJy3E6HNt2OTluJ0ObbscnLcToc23Y5OW4nQ5tuxy ctxOhzbdjk5bidDm27HJy3E6HNt2N2ReYeeqHnqZKTk7ZKTk7ZKTk7ZKTk7ZKTk7ZKTk7ZKT k7ZKTk7ZKTk7ZzOTt9pHnHFOH6srbrW4tr6JZZrhmuGa4ZrhmuGa4ZrhmuGa4ZrhmuGa4Zrh muFt0Pvrtroh5zDzl++4fnMPPVDz1PtLtI844pw/VlbdhdDKwysMrDKwysMrDKwysMrDKwys MrDKwysMrC6H346d+HnMPOX76Gl5jpfVHS+p9pdpHnHFOH6srbrQtuiWWXhl4ZeGXhl4ZeGX hl4ZeGXhl4ZeGXhl4XQ++u/DzmHnL+JXQ+8upHnHFOH6srbrQtOhlYZWGVhlYZWGVhlYZWGV hlYZWGVhlYZWGVhdD78e/HzmPnL+JXQ+8upHnHFOH6srbsLa+uReGXhl4ZeGXhl4ZeGXhl4Z eGXhl4ZeGXhliy++u8/j1h+wXUjziasjGnlbdaFoq65ZeXl5eXl5eXl5eXl5eXiOX3495/Hr D9gupHnEhb5W3YX762Xm83m83m83m83m83m83m82LL767z+PWH7BdSPOJC3ytutbi2rrll7Z e2Xtl7Ze2Xtl7Ze2Xtl7Ze2Xtl7Ze2Fl9+Pefx6w/YLqR5xIW+Vt32Xm1m1m1m1m1m1m1m1m 1m1m1m1m1m0LL767z+PWH7BdSPOJC3ytutbi265Y8j2GeR7DPI9hnkewzyPYZ5HsM8j2GeR7 DPI9hnkewzyPYZ5HsM8j2GeR7DFl9+Pefx6w/YLqR5xIW+Vt338YsvvrvP49YfsF1I84kLfK 261uL09b+MXsl2v3/wDfQ/j1h+wXUjziQt8rbuWWX8asX7Bd5/HrD9gupHnEhb5W3Wtxenof x6w/YLp2NjY2x++h/HrD9gupHnEhb5W3cfx6w/YLvP49YfsF1I84kLfK261uL09D+PWH7BdO xsbG2P30P49YfsF1I84kLfK27j+PWH7Bd5/HrD9gupHnEhb5W3WtxbdD+PWH7Bdr99D+PWH7 BdSPOJC3ytux9dD+PWH7Bd5/HrD9gupHnEhb5W3Wharofx6w/YLtLofx6w/YLqR5xIW+Vt1o WnQ/j1h+wXefx6w/YLqR5xIW+Vt3H8esP2C7z+PWH7BdSPOJC3x/b8P9HFioypdx/HrD9gu8 /j1h+wXUjziQt88f+R9lfvL+PWH7Bd5/HrD9gupHnEhb54/8j7C3FtWX8esP2C7f7y/j1h+w XUjziQt88f8Akfcfx6w/YLvP49YfsF1I84kLfPH/AJH3H8esP2C7z+PWH7BdSPOJC3zx/wCR 9x/HrD9gu8/bU9hqsU9hqsU9hqsU9hqsU9hqsU9hqsU9hqsU9hqsU9iqw/YLqR5xIW+eP/I+ z+8y+PWH7Bd5+1V3oSjJSOImnqK70JRkpHETT1Fd6EoyUjiJp6iu9CUZKRxE09RXehKMlI4i aeorvQlGSkcRNPUV3oSjJSOImnqK70JRkpHETT1Fd6EoyUiSaeuH2JRcXTJRcXTJRcXTJRcX TJRcXTJRcXTJRcXTJRcXTHFxdPqR5xIW+eP/ACPuP49YfsF3n8esP2C6keen+pL9jd79n95f x6w/YLp2NjY2z+83RJ/lZP1CdEn+Vk/UJ0Sf5WT9QnRJ/lZP1CdEn+Vk/UJ0Sf5WT9QnRJ/l ZP1CdEn+Vk/UJ0Sf5WT9QnRJ/lZP1CdEn+Vk/UJ0Sf5WT9QnRJ/lZP1CdEn+Vk/UJ0Sf5WT9 QnRJ/lZL1YY01oxprRjTWjGmtGNNaMaa0Y01oxprRjTWjGmtGNNaMaa0Y01oxprRjTWjKp69 SPPsn8esP2C711sc8v2OTe4nWxzy/Y5N7idbHPL9jk3uJ1sc8v2OTe4nWxzy/Y5N7idbHPL9 jk3uJ1sc8v2OTe4nWxzy/Y5N7idbHPL9jk3uJ1sc8v2OTe4nWxzy/Y5N7idbHPL9jk3uJ1sc 8v2OTe4nWxzy/Y5N7idbHPL9jk3uJ1sc8v2cze+GNt6sbb1Y23qxtvVjberG29WNt6sbb1Y2 3qxtvVjberG29WNt6sbb1Y23qy7evUjz7J/HrD9gunY2Njbrl6ie4iXqJ7iJeonuIl6ie4iX qJ7iJeonuIl6ie4iXqJ7iJeonuIl6ie4iXqJ7iJeonuIl6ie4iXqJ7iJeonuIl6iW+H7BdSP Psn8esP2C710ObbscnLcToc23Y5OW4nQ5tuxyctxOhzbdjk5bidDm27HJy3E6HNt2OTluJ0O bbscnLcToc23Y5OW4nQ5tuxyctxOhzbdjk5bidDm27HJy3E6HNt2OTluJ0ObbscnLcToc23Y 5OW4nQ5tuxyctxOhzbdnM5b4ZKTk7ZKTk7ZKTk7ZKTk7ZKTk7ZKTk7ZKTk7ZKTk7ZKTk7ZKT k7ZKTk7ZKTk7ZKTk7ZKTk7ZKTk7Y5OTt9SPPsn8esP2C7XnpdKRLcQ6UiW4h0pEtxDpSJbiH SkS3EOlIluIdKRLcQ6UiW4h0pEtxDpSJbiHSkS3EOlIluIdKRLcQ6UiW4h0pEtxDpSHvh+wX Ujz7J+ylFxdMrNZrNZrNZrNZrNCw/YLvuVu6JSsQ5W7olKxDlbuiUrEOVu6JSsQ5W7olKxDl buiUrEOVu6JO/Ahyt3RJ34EOVu6JO/Ahyt3RJ34EOVu6JO/Ahyt3RJ34EOVu6JO/Ahyt3RJ3 4EOVu6JO/Ahyt3Q3eGSduyTt2SduyTt2Sduxu3ZJ27JO3ZJ27JO3ZJ27JO3ZJ27JO3ZJ27G7 d9SPPsn7Lj/yP376l7j/AKNJSJKmL7GkpElTF9jSUiSpi+xpKRJUxfY0lIkqYvsaSkSVMXv3 1L2CPPeXQ/ZcZpzde/fUvcf9G4tkmnsL7G4tkmnsL7G4tkmnsL7G4tkmnsL7G4tkmnsL7G4t kmnsL37JNN6Emm9CTTehJpvQk03oWm9PYI8/6oR5/wBUI8/6oR5/1Qtzz3PPYXR5/wBILc89 76/wa+2upf4BeVuef8lssssssssssvNllllllllll4ssssssssv4Jbnk8f5GzyWXhOzxZZY8 rEtUh8Nfs5ND+kk9WRjZyLexw0r/AKKP5JG8WSjyJaElToff/eH1IW1i3rtLcWx+/wD95Nn0 rc8l4svFllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll lllllllllllllllllllll5vFl4vFHKUUVRRRRRylCxbHJs5/xo55bibQ5NilrbL1s5/AmPUe axRXXZZZZZfTeL84vsWfWLLLLwtxoooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooooooooooooooooooooo2P/EADYRAAICAQMCBQQD AAEDBAIDAAABAhESECExA0EgIjBRYQQTM0AyUIFgFHBxQmKx8FPBkaHR/9oACAECAQE/Aa/o 6KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKRRRRRRRRRRXoWWbm5ZespNEZXrei3ovwd6 G6GdvBe16dy/Bxzqty9L30XP/PX4YkuNFq4i6dO/DXYas72Vp3b1orwUUNWd9a7apbaUV/zu vHgYH2z7ZgYj0ssssssssssssssssssssyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiyyyy yyyyyyyyx61pQ9OxWvbWvH8+GtFpXoLwV/z569/1F+lzp3/589d/Bv8ApU/6Tf8AZv8A4rkk ZI2enU6slKkLqu0Jp/odjGze/wBlL0pR8vpy4LZLJJMjd+nOkQkuPBkroWijZRKNf8LcE9yU aFOiLs6nRlKWSJRcXTM5URlkr9eMbON2S5/ZTJNRVkZ5ePB0OMmqslGvTgtxq40vTbpGV8kI KI9JzohC93r0uCrludXn/hXbXcenU6X3Hdn/AEvyJVt68cs7HKx/tyh3j411HR91k5uW3pp0 S6lqvUcXF2hOx6fbV34E6M+//C+3oUYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYm JRRiYmJRRRiYlFGJRiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiVpRRRRRRRRRRRR RRRRRRRRRRRRRRRRRRRRRRRRRWlFFFFaUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVr29CP7 704elnfRHwPkvX3N6HomL92Qv6XvotO/h7Ev6tMsssssssssssssssssssssssssssssssss sssssssssssssstFllllllllllllllllllllllllllllj/s7/fZ2/wC1DO363tq+f2Hz+q/g fwP4H8D+B/A/g/8AA/gfwP4HuPff9Dtr7a9v2O36rGMYxj0Yx6dvGzt6z2H7f0T2H/zZnb1n xQ+b/onxQ+f0nqx6sYxjGMfqe39T29R6serGMYxjH43/ANqWdtIdOU/4kuhOKtrTMTvX2PY9 j2Pbxe2vtr7eL219vC+CX8tfbX28L4Jfy19tfbX219vA9h7D2HsPYew9h7D2HsPYew9h7D2/ pfb/AD1Pb/P0GMYxjGMYxjGMfjZ20+ni5XSX+nVhJQbaWn/V9b3M3PzS/qk9tU9td3sindDt cie2qe2u72RTujdc/wB/Zfhsvw2WWX+lfjevQdX5qOrK4fkvT/q+t7mbn5pa+x7Hsex7ae3g 9tfbX219tfbX219tfbX219tI9j20j2PbSHI08q+CfZET20j2PbSHI08q+CfZavYew9h7D2Hs PYew9h7D2MW3Q/Lsx7GLboqnT/rJaLwS0Xg6d5qjOWajudWb/i//AOx6R1ew9h7D2HsPYew9 h7D20e2jJRcHTF6PUIc6f9L0/wD8i/8Av+koqDpO/UTtap2tU7XgsssssTteCyxO1qna1Tta 8Fli2LL8C2LLFsWXqvFfjvW9F69l+Gyyyyyyy/DZZZZZZZfgfgsvwLV+FeGy9bL0eqHovRmi Kd6f9X1vczc/NLX2PY9j2PbT21j2PbSPY9tI9j20hsxve0T7M6ezG97RPsyB7aQ2Y3vaJ9mQ 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 x5IxcuD7crocXHkjFy4PtyuhxceSMXLg+3K6HFx50f6C9arHHeiSp0JWOO9ElToSscd6JKnQ lY470SVOhKxx3okqdCVjjvRJU6ErHHeiSp0JWOO9ElToSscd6JKnQlY470SVOhKxx3okqdCV jjvRJU6ErHHeiSp0JWOO9ElToSscd6JKnQlY470NU60f6C8T4O2n0Xc+p/E9fqfyv1I13Yse LJVSSIV3YseLJVSSIV3YseLJVSSIV3YseLJVSSIV3YseLJVSSIV3YseLJVSSIV3YseLJVSSI V3YseLJVSSIV3YseLJVSSIV3YseLJVSSIV3YseLJVSSIV3YseLJVSSIV3YseLJVSSIV3YseL JVSSIV3YseLJVSSIV3YseLHXbTvuUsqspZVZSyqyllVlLKrKWVWUsqspZVZSyqyllVlLKrKW VWUsqspZVZSyqzvt680nLk6lXsxE0nLk6lXsxE0nLk6lXsxE0nLk6lXsxE0nLk6lXsxE0nLk 6lXsxE0nLk6lXsxE0nLk6lXsxE0nLk6lXsxE0nLk6lXsxE0nLk6lXsxE0nLk6lXsxE0nLk6l XsxE0nLk6lXsxE0nLk6lXsxE0nLknV7PWSSezJJJ7MkknsySSezJJJ7MkknsySSezJJJ7Mkk nsySSezJJJ7MkknsySSezJJJ7MkknsxpJ7PxPg7afRdz6n8T1+p/K/UUXLgwldUNNbMUXLgw ldUNNbMUXLgwldUNNbMUXLgwldUNNbMUXLgwldUNNbMUXLgwldUNNbMUXLgwldUNNbMUXLgw ldUNNbMUXLgwldUNNbMUXLgwldUNNbMUXLgwldUNNbMUXLgwldUNNbMUXLgwldUNNbMUXLgw ldUNNbMUXLgwldUNNbMUXLgwldUU1s9H+gvWq9kYu6GqdMSvZGLuhqnTEr2Ri7oap0xK9kYu 6GqdMSvZGLuhqnTEr2Ri7oap0xK9kYu6GqdMSvZGLuhqnTEr2Ri7oap0xK9kYu6GqdMSvZGL uhqnTEr2Ri7oap0xK9kYu6GqdMSvZGLuhqnTEr2Ri7oap0xK9kYu6Kp09H+gvE+Dtp9F3Pqf xPX6n8r19j2PY9j2PY9tYKxLsT4SOmrEuxPhI6asS7E+EjpqxLsT4SOmrEuxPhI6asS7E+Ej pqxLsT4SOmrEuxPhI6asS7E+EjpqxLsT4SOmrEuxPhI6asS7E+EjpqxLsT4SOmrEuxPhI6as S7E+EjpqxLsS9tKt0Y+ajHzUY+ajHzUY+ajHzUY+ajHzUY+ajHzUY+ajHzUY+ajHzUY+aiqd el8eCrJx8x1FuJWTj5jqLcSsnHzHUW4lZOPmOotxKycfMdRbiVk4+Y6i3ErJx8x1FuJWTj5j qLcSsnHzHUW4lZOPmOotxKycfMdRbiVk4+Y6i3ErJx8x1FuJWTj5jqLcSsnHzHUW4lZOPmJr fWUadEo06JRp0SjTolGnRKNOiUadEo06JRp0SjTolGnRKNOiUadEo06JRp0OOLrxPg7afRdz 6n8T1+p/K/Uf9etH+gvXp3Q01zpTuhprnSndDTXOlO6GmudKd0NNc6U7oaa50p3Q01zpTuhp rnSndDTXOlO6GmudKd0NNc6U7oaa50p3Q01zpTuhprnSndDTXOlO6Ka50f6C8T4O2n0Xc+p/ E9fqfyvX2PY9j2PY9j216eVvEWf+nUvbLk6WVvEWf+nUvbLk6WVvEWf+nUvbLk6WVvEWf+nU vbLk6WVvEWf+nUvbLk6WVvEWf+nUvbLk6WVvEWf+nUvbLk6WVvEWf+nUvbLk6WVvEWf+nUvb Lk6WVvEWf+nUvbLk6WVvEWf+nUvbLk6WVvEWf+nUvbLk6WVvEWf+nUvbLk6WVvEWf+nUvbLk 6WVvEWf+nUvbLk6WVvEWf+k8v/VpVukYvLExeWJi8sTF5YmLyxMXliYvLExeWJi8sTF5YmLy xMXliYvLExeWJi8sSqdP0v8A/fArvYnGSkdWLT3Fd7E4yUjqxae4rvYnGSkdWLT3Fd7E4yUj qxae4rvYnGSkdWLT3Fd7E4yUjqxae4rvYnGSkdWLT3Fd7E4yUjqxae4rvYnGSkdWLT3Fd7E4 yUjqxae4rvYnGSkdWLT3Fd7E4yUjqxae4rvYnGSkdWLT3Fd7E4yUjqxae4rvYnGSkdWLT3Fd 7E4yUjqRae+souLpkouLpkouLpkouLpkouLpkouLpkouLpkouLpkouLpkouLpkouLpkouLpk ouLpkouLpkouLpji4un4nwdtPou59T+J6/U/lfqP+vWj/QXrP+vWj/QXifB20+i7n1P4nr9T +V6+x7Hsex7HPgg6E+5PdJnTdCfcnukzpuhPuT3SZ03Qn3J7pM6boT7k90mdN0J9ye6TOm6E +5PdJnTdCfcnukzpuhPuT3SZ03Qn3J7pM6boT7k90mdN0J9ye6TOm6E+5PdJnTdCfcnukzpu hPuT3SZ03Qn3Jb76clO6Kd0U7op3RTuindFO6Kd0U7op3RTuindFO6Kd0U7o49a63Jt52dT+ QnW5NvOzqfyE63Jt52dT+QnW5NvOzqfyE63Jt52dT+QnW5NvOzqfyE63Jt52dT+QnW5NvOzq fyE63Jt52dT+QnW5NvOzqfyE63Jt52dT+QnW5NvOzqfyE63Jt52dT+QnW5NvOzqfyE63Jt52 dT+QnW5NvOyf8tGNNbMaa2Y01sxprZjTWzGmtmNNbMaa2Y01sxprZjTWzGmtmNNbMaa2Y01s ymnT8T4O2n0Xc+p/E9fqfyv1FJx4M5Xdjbe7FJx4M5Xdjbe7FJx4M5Xdjbe7FJx4M5Xdjbe7 FJx4M5Xdjbe7FJx4M5Xdjbe7FJx4M5Xdjbe7FJx4M5Xdjbe7FJx4M5Xdjbe7FJx4M5Xdjbe7 FJx4M5Xdjbe7FJx4M5Xdjbe7FJx4M5Xdjbe7FJx4M5Xdjbe7FJx4M5Xdjbe7FJx4M5Xdlt7v Tgt3Zbuy3dlu7Ld2W7st3Zbuy3dlu7Ld2W7st3Zbuy3dnPrXXBnJ72OTlyxOuDOT3scnLlid cGcnvY5OXLE64M5PexycuWJ1wZye9jk5csTrgzk97HJy5YnXBnJ72OTlyxOuDOT3scnLlidc GcnvY5OXLE64M5PexycuWJ1wZye9jk5csTrgzk97HJy5YnXBnJ72OTlyxOuDOT3scnLlidcG cnvY5OXLE64M5PexycuXoxtvdjbe7G292Nt7sbb3Y23uxtvdjbe7G292Nt7sbb3Y23uxtvdj be7G292W27fifB206hDnWPGvsex7Hsex7eCNd0LHmiVUmiFd0LHmiVUmiFd0LHmiVUmiFd0L HmiVUmiFd0LHmiVUmiFd0LHmiVUmiFd0LHmiVUmiFd0LHmiVUmiFd0LHmiVUmiFd0LHmiVUm iFd0LHmiVUmiFd0LHmiVUmiFd0LHmiVUmiFd0LHmiVUmiFd0LHmiVUmiFd0LHmh120f6C9a6 JbSJ/wAhOiW0if8AIToltIn/ACE6JbSJ/wAhOiW0if8AIToltIn/ACE6JbSJ/wAhOiW0if8A IToltIn/ACE6JbSJ/wAhOiW0if8AIToltIn/ACE6JbSJ/wAhOiW0if8AIToltIn/ACE6JbSJ /wAtH+gvE+Dtp1CHOsePUUnHg+5K7HJy5IyceD7krscnLkjJx4PuSuxycuSMnHg+5K7HJy5I yceD7krscnLkjJx4PuSuxycuSMnHg+5K7HJy5IyceD7krscnLkjJx4PuSuxycuSMnHg+5K7H Jy5IyceD7krscnLkjJx4PuSuxycuSMnHg+5K7HJy5ISa3RnK7G3LkjJx4PuSuxycuSMnHg+5 K7HJvnS6doyeWRk8sjJ5ZGTyyMnlkZPLIyeWRk8sjJ5ZGTyyMnlkZPLIyeWRk8su5k8si7dv 1roc23ZKTlyJ0ObbslJy5E6HNt2Sk5cidDm27JScuROhzbdkpOXInQ5tuyUnLkToc23ZKTly J0ObbslJy5E6HNt2Sk5cidDm27JScuROhzbdkpOXInQ5tuyUnLkToc23ZKTlyJ0ObbslJy5E 6HNt2Sk5cidDm27HJy51lJydslJydslJydslJydslJydslJydslJydslJydslJydslJydslJ ydslJydslJydslJydslJydscnJ2/E+Dtp1CHOsePQvwRSfIox5JJcogk+RRjySS5RBJ8ijHk klyiCT5FGPJJLlEEnyKMeSSXKIJPkUY8kkuUQSfIox5JJcogk+RRjySS5RBJ8ijHkklyiCT5 FGPJJLlEEnyKMeSSXKIJPkUY8kkuUQSfIox5JJcojxq/CtH6qHovW/8AJKlInzsL5JUpE+dh fJKlInzsL5JUpE+dhfJKlInzsL5JUpE+dhfJKlInzsL5JUpE+dhfJKlInzsL5JUpE+dhfJKl InzsL5JUpE+dhfJKlInztp217a9haP8AQXifB20miKd6x49RSxPufBKVkZYn3PglKyMsT7nw SlZGWJ9z4JSsjLE+58EpWRlifc+CUrIyxPufBKVkZYn3PglKyMsT7nwSlZGWJ9z4JSsjLE+5 8EpWRlifc+CUrIyxPufBKVkeNWVrQtLp2ZeazLzWZeazLzWZeazLzWZeazLzWZeazLzWZeaz LzWPcluMXrudu6JSy7CHO3dEpZdhDnbuiUsuwhzt3RKWXYQ527olLLsIc7d0Sll2EOdu6JSy 7CHO3dEpZdhDnbuiUsuwhzt3RKWXYQ527olLLsIc7d0Sll2EOdu6JSy7eitZSt2SlbslK3ZK VuyUrdkpW7JSt2SlbslK3ZKVuyUrdkpW7JPJ3qvE+Dtp1CHOsePUZet63ret63ret63ret63 4Vq/BYtH6qHovWf9etH+gvE+DtpNEU71jx6jK1rWta1rWta1rWta1rWvQfgoWjGMYxjGMYxj 0l8DF6z/AK9aP9BeJ8HbSbIt3rHjxv3HzXgZet63ret63ret63ret63ovEy9bFo/UWj0XrP+ vWj/AEF4nwdtJkVvrHjxvih834H/AEi8T8K0YxjGMYxjGPR/BL4GL1n/AF60f6C8T4O2nUIc 6x48b2HsP21Zet63ret63ret63ret+FeKPGrLFo/UXgXrP8Ar1o/0F4nwdtOoQ51jx43xRPc fN6vnRarVarVarVarVarVeBeKPGr50joxjGMYxjGMejGS+Bel2PbVnYWnYWnYWnYWnYWnYWn YWnYWnYWnYWnYWnYWnYWnYWnYWnYWj/QXifB20+lhGV5I6/ShHptpax49DjwMvW9b1vW9b1v W9b1vW9aK8DZZYtWWLR+uxes/wCvWj/QXifB206f1H2exP637ixrSmR419j2PY9h8US58D50 Wq1Wq1Wq1Wq1Wq1Qj219tHzohHto9I6MYxjGMYxj0exLbSWwvS7LwM7C07C07C07C07C07C0 7C07C07C07C07C07C07C07C07C07EdH+gvE+Dtp1CHOmYnfqP+kbLL8dWxquRaP01qhi9Z/1 60f6C8T4O2nUIc6UyPGvsex7HsS4JcntrKrNhDo2EOjYQ6NhDo2EOjYQ6NhDo2EOjYQ6NhDr RCPbRntYh0bCEe2kediOV0uaJ5f+rR7D2HsPYew9h7D2HsPYe2ktuR7aYtuiqdP0uy8DOwuN OwuNOwuNOwuNOwuNOwuNOwuNOwuNOwuNOwuNOwuNOwuNOwuNOwuNOwuNOxHjR/oLxPg7adQh zp/0XydSGEsfUf8ARWX6Fl6rR/oL1n/S0ULcooW5RRRWr9WiivG+Dtp1CHOn3Ye59Q0+o2tf Y9j2PYl/Elye2sHQn3J7pM6boT7k90mdN0J9ye6TOm6E+5PdJnTdCfcnukzpuhPuT3SZ03Qn 3J7pM6boT7k90mdN0J9ye6T1Wq1Wq1Wq1XGnJTuindFO6Kd0U7op3RTuindD258a9Lsj2/8A vfVnYXGnYXGnYXGnYXGnYXGnYXGnYXGnYXGnYXGnYXGnYXGnYXAtY6x8b9Rek+Dtp1CHOn/R fJ1IYSx9RSceDOV3Y23uxSceDOV3Y23uxSceDOV3Y23uxSceDOV3Y23uxSceDOV3Y23uxSce DOV3Y23uxSceDOV3Y23uxSceDOV3Y23uxSceDOV3Y23u9K9Gta8a04Ld2W7st3Zbuy3dlu7L d2W7se/PjXp/GvJRRRRRX9DHvqlqnfhr016T4O2nUIc6/U/levsex7HsPiyXPgfOi1Wq1Wq1 Wq1Wq1Wq1Wq1Wq1Wj/QXpe3gj4mdte2vbXtr217a9te2vbXt4Y+KPifpL0nwdtJkedfqfyv1 GVrWta1rWta1rWta1rWta1rWtaUULR7j3HuPce49x7j3HuPce49x7j3HuVfrx7686v8AeW+s e/ij38L3Hv6b3HuPfxvg7adQhzr9T+V+N8WPmvA/61eB+uvXjrHVK2OtpUT52F8kqUifOwvk lSkT52F8kqUifOwvklSkT52F8kqUifOwvklSkT52F8kqUifOwvklSkT52F8kqUifOxHWPij4 n6S9J8HbTqEOdfqfyvxvwsrWta1rWta1rWta1rWta1rWta8TGMYxjGMYxjGP9COsdbp2OXwS ll2EOdu6JSy7CHO3dEpZdhDnbuiUsuwhzt3RKWXYQ527olLLsIc7d0Sll2EOdu6JSy7CHO3d EpZdhDnbuiUsuxHVeJeFjJSt2SlbslK3ZKVuyUrdkpW7JSt2SlbslK3ZJ5OxjH43wdtOoQ51 +p/K/G+LHz4H4L1vW9b1vW9b1vW9b1vW9b1vReB+uvXjrHXbuSSUiaSewq7kklImknsKu5JJ SJpJ7CruSSUiaSewq7kklImknsKu5JJSJpJ7CruSSUiaSewq7kklImknsKu5JJSJpJ7CruSS UiaSewq7kklImknsKu5JJSJpJ7CruSSUiaSewq7kklIkknt4H6y8T4O2nUIc6/U/lfjfsPce r8Fa1rWta1rWta1rWta1rWta14mMYxjGMYxjGMf6EdY6/wDklKLd0Tab2F8kpRbuibTewvkl KLd0Tab2F8kpRbuibTewvklKLd0Tab2F8kpRbuibTewvklKLd0Tab2F8kpRbuibTewvklKLd 0Tab2F8kpRbuibTewvklKLd0Tab2F8kpRbuibTewvklKLd0Tab2F8kpRbuiTTe2rGSab2RJp vZEmm9kSab2RJpvZEmm9kSab2RJpvZEmm9kSab2RJpvZEmm9kSab2Q2m9l4nwdtOoQ51+p/K /G/cfNeNl63ret63ret63ret63ret634Fq/XXruKUqJKnQhxSlRJU6EOKUqJKnQhxSlRJU6E OKUqJKnQhxSlRJU6EOKUqJKnQhxSlRJU6EOKUqJKnQhxSlRJU6EOKUqJKnQhxSlRJU6EOKUq JKnQhxSlRJU6EOKUqJKnQhxSlQ1TrR/oLxPg7adH6ePWvI6n0cOnHJa/U/lfjfFD3d+N/wBY tZfAxjGMYxjGMYxi9b/ySxbJtN7C+SWLZNpvYXySxbJtN7C+SWLZNpvYXySxbJtN7C+SWLZN pvYXySxbJtN7C+SWLZNpvYXySxbJtN7C+SWLZNpvYXySxbJtN7C+SWLZNpvYXySxbJtN7C+S WLZNpvYXySxbJtN7C+SWLZJpvbWWN+Xgljfl4JY35eCWN+Xgljfl4JY35eCWN+Xgljfl4JY3 5eCWN+Xgljfl4JY35eCWN+Xgljfl4JY35eB435fE+Dtp9F3PqfxPX6n8r8b2HzXjZet63ret 63ret63ret63ret62LV+uvWqxx3okqdCVjjvRJU6ErHHeiSp0JWOO9ElToSscd6JKnQlY470 SVOhKxx3okqdCVjjvRJU6ErHHeiSp0JWOO9ElToSscd6JKnQlY470SVOhKxx3okqdCVjjvRJ U6ErHHeiSp0JWOO9DVOtH+gvE+Dtp9F3PqfxPX6n8r8b4ofN+N6LVarVarVarVarVarVarVa x1l8DGMYxjGMYxjGL0u3hmk5cnUq9mImk5cnUq9mImk5cnUq9mImk5cnUq9mImk5cnUq9mIm k5cnUq9mImk5cnUq9mImk5cnUq9mImk5cnUq9mImk5cnUq9mImk5cnUq9mImk5cnUq9mImk5 cnUq9mImk5cnUq9mImk5cnUq9mImk5ck6vZ6yST2ZJJPZkkk9mSST2ZJJPZkkk9mSST2ZJJP Zkkk9mSST2ZJJPZkkk9mSST2ZJJPZkkk9mNJPZ+J8HbT6LufU/iev1P5X67L1vW9b1vW9b1v W9b1vW9b1vWxav1161XsjF3Q1TpiV7Ixd0NU6YleyMXdDVOmJXsjF3Q1TpiV7Ixd0NU6Yley MXdDVOmJXsjF3Q1TpiV7Ixd0NU6YleyMXdDVOmJXsjF3Q1TpiV7Ixd0NU6YleyMXdDVOmJXs jF3Q1TpiV7Ixd0NU6YleyMXdDVOmJXsjF3RVOno/0F4nwdtPou59T+J6/U/levsex7HsPih/ yPbwe2j0Wq1Wq1Wq1Wq1Wq1Wq1Wq1jrLYYxjGMYxjGMYxel7LwVZOPmOotxKycfMdRbiVk4+ Y6i3ErJx8x1FuJWTj5jqLcSsnHzHUW4lZOPmOotxKycfMdRbiVk4+Y6i3ErJx8x1FuJWTj5j qLcSsnHzHUW4lZOPmOotxKycfMdRbiVk4+Y6i3ErJx8xNb6yjTolGnRKNOiUadEo06JRp0Sj TolGnRKNOiUadEo06JRp0SjTolGnRKNOhxxdeJ8HbT6LufU/iev1P5X69WzF3Q1XP9UtX669 endDTXOlO6GmudKd0NNc6U7oaa50p3Q01zpTuhprnSndDTXOlO6GmudKd0NNc6U7oaa50p3Q 01zpTuhprnSndDTXOlO6GmudKd0NNc6U7oprnR/oLxPg7afRdz6n8T1+p/K9fY9j2PYlwS/k e3g9tI87FO670T7I6WVvEWf+nUvbLk6WVvEWf+nUvbLk6WVvEWf+nUvbLk6WVvEWf+nUvbLk 6WVvEWf+nUvbLk6WVvEWf+nUvbLk6WVvEWf+nUvbLk6WVvEWf+nUvbLk6WVvEWf+nUvbLk6W VvEWf+nUvbLk6WVvEWf+nUvbLk6WVvEWf+nUvbLk6WVvEWf+nUvbLk6WVvEWf+k8v/Vri26M XliYvLExeWJi8sTF5YmLyxMXliYvLExeWJi8sTF5YmLyxMXliYvLEqnT9L2/zwK72JxkpHVi 09xXexOMlI6sWnuK72JxkpHVi09xXexOMlI6sWnuK72JxkpHVi09xXexOMlI6sWnuK72Jxkp HVi09xXexOMlI6sWnuK72JxkpHVi09xXexOMlI6sWnuK72JxkpHVi09xXexOMlI6sWnuK72J xkpHVi09xXexOMlI6sWnuK72JxkpHVi09xXexOMlI6kWnvrKLi6ZKLi6ZKLi6ZKLi6ZKLi6Z KLi6ZKLi6ZKLi6ZKLi6ZKLi6ZKLi6ZKLi6ZKLi6ZKLi6ZKLi6Y4uLp+J8HbT6LufU/iev1P5 X6tl/wBav0l6z/r1o/0F4nwdtPou59T+J6/U/levsex7HsS/iS/l4IOj/wB3cn2ZD3L796J9 mQ9y97+Ce6TOm6E+5PdJnTdCfcnukzpuhPuT3SZ03Qn3J7pM6boT7k90mdN0J9ye6TOm6E+5 PdJnTdCfcnukzpuhPuT3SZ03Qn3J7pM6boT7k90mdN0J9ye6TOm6E+5LffTkp3RTuindFO6K d0U7op3RTuindFO6Kd0U7op3RTuindHHpe3gutybednU/kJ1uTbzs6n8hOtybednU/kJ1uTb zs6n8hOtybednU/kJ1uTbzs6n8hOtybednU/kJ1uTbzs6n8hOtybednU/kJ1uTbzs6n8hOty bednU/kJ1uTbzs6n8hOtybednU/kJ1uTbzs6n8hOtybednU/kJ1uTbzsn/LRjTWzGmtmNNbM aa2Y01sxprZjTWzGmtmNNbMaa2Y01sxprZjTWzGmtmNNbMpp0/E+Dtp9F3PqfxPX6n8r9RSc eDKV3Y23yJ1wZO7G2+ROuDOV3Y23uxSceDOV3Y23uxSceDOV3Y23uxSceDOV3Y23uxSceDOV 3Y23uxSceDOV3Y23uxSceDOV3Y23uxSceDOV3Y23uxSceDOV3Y23uxSceDOV3Y23uxSceDOV 3Y23uxSceDOV3Y23uxSceDOV3Y23uxSceDOV3Zbe704Ld2W7st3Zbuy3dlu7Ld2W7st3Zbuy 3dlu7Ld2W7st3Zz611wZye9jk5csTrgzk97HJy5YnXBnJ72OTlyxOuDOT3scnLlidcGcnvY5 OXLE64M5PexycuWJ1wZye9jk5csTrgzk97HJy5YnXBnJ72OTlyxOuDOT3scnLlidcGcnvY5O XLE64M5PexycuWJ1wZye9jk5csTrgzk97HJy5YnXBnJ72OTlyxOuDOT3scnLl6Mbb3Y23uxt vdjbe7G292Nt7sbb3Y23uxtvdjbe7G292Nt7sbb3Y23uxtvdltu34nwdtPou59T+J6/U/lev sex7HsPix/y8Ea7oWPNEqpNEPc/9xPsyHubctdiVUmiFd0LHmiVUmiFd0LHmiVUmiFd0LHmi VUmiFd0LHmiVUmiFd0LHmiVUmiFd0LHmiVUmiFd0LHmiVUmiFd0LHmiVUmiFd0LHmiVUmiFd 0LHmiVUmiFd0LHmiVUmiFd0LHmiVUmiFd0LHmh120f6C9L2/zwXRLaRP+QnRLaRP+QnRLaRP +QnRLaRP+QnRLaRP+QnRLaRP+QnRLaRP+QnRLaRP+QnRLaRP+QnRLaRP+QnRLaRP+QnRLaRP +QnRLaRP+QnRLaRP+QnRLaRP+QnRLaRP+Wj/AEF4nwdtPou59T+J6/U/lfqKTjwfcldjk5ci dGbuxuxOjN3Y5OXJGTjwfcldjk5ckZOPB9yV2OTlyRk48H3JXY5OXJGTjwfcldjk5ckZOPB9 yV2OTlyRk48H3JXY5OXJGTjwfcldjk5ckZOPB9yV2OTlyRk48H3JXY5OXJGTjwfcldjk5ckZ OPB9yV2OTlyRk48H3JXY5OXJGTjwfcldjk3zpdO0ZPLIyeWRk8sjJ5ZGTyyMnlkZPLIyeWRk 8sjJ5ZGTyyMnlkZPLIyeWRk8si7dv1roc23ZKTlyJ0ObbslJy5E6HNt2Sk5cidDm27JScuRO hzbdkpOXInQ5tuyUnLkToc23ZKTlyJ0ObbslJy5E6HNt2Sk5cidDm27JScuROhzbdkpOXInQ 5tuyUnLkToc23ZKTlyJ0ObbslJy5E6HNt2Sk5cidDm27HJy51lJydslJydslJydslJydslJy dslJydslJydslJydslJydslJydslJydslJydslJydslJydslJydscnJ2/E+Dtp9F3PqfxPX6 n8r8b4sls/BFJ8ijHkklyiCT5MY/yJruR+TGPcklyiCT5FGPJJLlEEnyKMeSSXKIJPkUY8kk uUQSfIox5JJcogk+RRjySS5RBJ8ijHkklyiCT5FGPJJLlEEnyKMeSSXKIJPkUY8kkuUQSfIo x5JJcogk+RRjySS5RBJ8ijHkklyiCT5FGPI67aP9Bel7eD/ySpSJ87C+SVKRPnYXySpSJ87C +SVKRPnYXySpSJ87C+SVKRPnYXySpSJ87C+SVKRPnYXySpSJ87C+SVKRPnYXySpSJ87C+SVK RPnYXySpSJ87C+SVKRPnYXySpSJ87C+SVKRLnbR/oLxPg7afRdz6n8T1+p/K/GzvfgUsT7nw SlZGWJmN2J0Z78EpWRlifc+CUrIyxPufBKVkZYn3PglKyMsT7nwSlZGWJ9z4JSsjLE+58EpW Rlifc+CUrIyxPufBKVkZYn3PglKyMsT7nwSlZGWJ9z4JSsjLE+58EpWRlifc+Bu9Lp2ZeazL zWZeazLzWZeazLzWZeazLzWZeazLzWZeazLzWZeazLzWZeay7d+u527olLLsIc7d0Sll2EOd u6JSy7CHO3dEpZdhDnbuiUsuwhzt3RKWXYQ527olLLsIc7d0Sll2EOdu6JSy7CHO3dEpZdhD nbuiUsuwhzt3RKWXYQ527olLLsIc7d0Sll2EOdu6JSy7CHO3dDll21lK3ZKVuyUrdkpW7JSt 2SlbslK3ZKVuyUrdkpW7JSt2SlbslK3ZKVuyUrdjlk78T4O2n0Xc+p/E9fqfyvxvix7OvBFJ 8mC9yUa4IpPkwXuSjXBFJ8mC9yUa4IpPkwXuSjXBFJ8mC9yUa4IpPkwXuSjXBFJ8mC9yUa4I pPkwXuSjXBFJ8mC9yUa4IpPkwXuSjXBFJ8mC9yUa4IpPkwXuSjXBFJ8mC9yUa4IpPkwXuSjX BFJ8mC9yUa4IpPkwXuNJcaP9Bett3JJKRNJPYVdySSkTST2FXckkpE0k9hV3JJKRNJPYVdyS SkTST2FXckkpE0k9hV3JJKRNJPYVdySSkTST2FXckkpE0k9hV3JJKRNJPYVdySSkTST2FXck kpE0k9hV3JJKRNJPYVdySSkTST2FXckkpE0k9hV3JJKRJJPbR/oLxPg7afRdz6n8T1+p/K/G /YfN+CLS5M4+xKV7Ii0uTOPsSleyItLkzj7EpXsiLS5M4+xKV7Ii0uTOPsSleyItLkzj7EpX siLS5M4+xKV7Ii0uTOPsSleyItLkzj7EpXsiLS5M4+xKV7Ii0uTOPsSleyItLkzj7EpXsiLS 5M4+xKV7Ii0uTOPsSleyItLkzj7EpXsiLS5M4+w2nxp33LWV0WsrotZXRayui1ldFrK6LWV0 WsrotZXRayui1ldFrK6LWV0WsrotZXR329b/AMkpRbuibTewvklKLd0Tab2F8kpRbuibTewv klKLd0Tab2F8kpRbuibTewvklKLd0Tab2F8kpRbuibTewvklKLd0Tab2F8kpRbuibTewvklK Ld0Tab2F8kpRbuibTewvklKLd0Tab2F8kpRbuibTewvklKLd0Tab2F8kpRbuibTewvklKLd0 Sab21k03siTTeyJNN7Ik03siTTeyJNN7Ik03siTTeyJNN7Ik03siTTeyJNN7Ik03siTTeyJN N7IbTey8T4O2n0Xc+p/E9fqfyv1FHI+38ko0Rjkfb+SUaIxyPt/JKNEY5H2/klGiMcj7fySj RGOR9v5JRojHI+38ko0Rjkfb+SUaIxyPt/JKNEY5H2/klGiMcj7fySjRGOR9v5JRojHI+38k o0Rjkfb+SUaIxyPt/JKNEY5H2/karR/oL13FKVElToQ4pSokqdCHFKVElToQ4pSokqdCHFKV ElToQ4pSokqdCHFKVElToQ4pSokqdCHFKVElToQ4pSokqdCHFKVElToQ4pSokqdCHFKVElTo Q4pSokqdCHFKVElToQ4pSoap1o/0F4nwdtPou59T+J6f9X1vczc/NL1ItLkUo8EmuEQaXIpR 4JNcIg0uRSjwSa4RBpcilHgk1wiDS5FKPBJrhEGlyKUeCTXCINLkUo8EmuEQaXIpR4JNcIg0 uRSjwSa4RBpcilHgk1wiDS5FKPBJrhEGlyKUeCTXCINLkUo8EmuEQaXIpR4JNcIg0uRSjwSa 4RBpcilHgddtNr3PLl8Hly+Dy5fB5cvg8uXweXL4PLl8Hly+Dy5fB5cvg8uXweXL4PLl8Hly +Dy5fBte3rf+SWLZNpvYXySxbJtN7C+SWLZNpvYXySxbJtN7C+SWLZNpvYXySxbJtN7C+SWL ZNpvYXySxbJtN7C+SWLZNpvYXySxbJtN7C+SWLZNpvYXySxbJtN7C+SWLZNpvYXySxbJtN7C +SWLZNpvYXySxbJNN7ayxvy8Esb8vBLG/LwSxvy8Esb8vBLG/LwSxvy8Esb8vBLG/LwSxvy8 Esb8vBLG/LwSxvy8Esb8vBLG/LwPG/L4nwdtPou59T+J6x49F+2qi5cH25XQ4uPJGLlwfbld Di48kYuXB9uV0OLjyRi5cH25XQ4uPJGLlwfbldDi48kYuXB9uV0OLjyRi5cH25XQ4uPJGLlw fbldDi48kYuXB9uV0OLjyRi5cH25XQ4uPJGLlwfbldDi48kYuXB9uV0OLjyRi5cH25XQ4uPJ GLlwfbldDi48kYuXB9uV0OLjyRi5cH25XQ4uPOj/AEF61WOO9ElToSscd6JKnQlY470SVOhK xx3okqdCVjjvRJU6ErHHeiSp0JWOO9ElToSscd6JKnQlY470SVOhKxx3okqdCVjjvRJU6ErH HeiSp0JWOO9ElToSscd6JKnQlY470SVOhKxx3oap1o/0F4nwdtPou59T+J6x49CXA+b1jXdi x4slVJIhXdix4slVJIhXdix4slVJIhXdix4slVJIhXdix4slVJIhXdix4slVJIhXdix4slVJ IhXdix4slVJIhXdix4slVJIhXdix4slVJIhXdix4slVJIhXdix4slVJIhXdix4slVJIhXdix 4slVJIhXdix4slVJIhXdix4sddtO+5SyqyllVlLKrKWVWUsqspZVZSyqyllVlLKrKWVWUsqs pZVZSyqyllVlLKrO+3p+3gmk5cnUq9mImk5cnUq9mImk5cnUq9mImk5cnUq9mImk5cnUq9mI mk5cnUq9mImk5cnUq9mImk5cnUq9mImk5cnUq9mImk5cnUq9mImk5cnUq9mImk5cnUq9mImk 5cnUq9mImk5cnUq9mImk5cnUq9mImk5ck6vZ6yST2ZJJPZkkk9mSST2ZJJPZkkk9mSST2ZJJ PZkkk9mSST2ZJJPZkkk9mSST2ZJJPZkkk9mNJPZ+J8HbT6LufU/iesePUUXLgwldUNNbMUXL gwldUNNbMUXLgwldUNNbMUXLgwldUNNbMUXLgwldUNNbMUXLgwldUNNbMUXLgwldUNNbMUXL gwldUNNbMUXLgwldUNNbMUXLgwldUNNbMUXLgwldUNNbMUXLgwldUNNbMUXLgwldUNNbMUXL gwldUNNbMUXLgwldUNNbMUXLgwldUU1s9H+gvWq9kYu6GqdMSvZGLuhqnTEr2Ri7oap0xK9k Yu6GqdMSvZGLuhqnTEr2Ri7oap0xK9kYu6GqdMSvZGLuhqnTEr2Ri7oap0xK9kYu6GqdMSvZ GLuhqnTEr2Ri7oap0xK9kYu6GqdMSvZGLuhqnTEr2Ri7oap0xK9kYu6Kp09H+gvE+Dtp9F3P qfxPWPGvsex7Ht4oKxLsT4SOmrEuxPhI6asS7E+EjpqxLsT4SOmrEuxPhI6asS7E+EjpqxLs T4SOmrEuxPhI6asS7E+EjpqxLsT4SOmrEuxPhI6asS7E+EjpqxLsT4SOmrEuxPhI6asS7E+E jpqxLsS9tKt0Y+ajHzUY+ajHzUY+ajHzUY+ajHzUY+ajHzUY+ajHzUY+ajHzUY+aiqdetVk4 +Y6i3ErJx8x1FuJWTj5jqLcSsnHzHUW4lZOPmOotxKycfMdRbiVk4+Y6i3ErJx8x1FuJWTj5 jqLcSsnHzHUW4lZOPmOotxKycfMdRbiVk4+Y6i3ErJx8x1FuJWTj5jqLcSsnHzE1vrKNOiUa dEo06JRp0SjTolGnRKNOiUadEo06JRp0SjTolGnRKNOiUadEo06HHF14nwdtPou59T+J6x49 R/160f6C9endDTXOlO6GmudKd0NNc6U7oaa50p3Q01zpTuhprnSndDTXP7a0f6C8T4O2n0Xc +p/E9Y8a+x7Hsex7ae2vTyt4iz/06l7ZcnSyt4iz/wBOpe2XJ0sreIs/9Ope2XJ0sreIs/8A TqXtlydLK3iLP/TqXtlydLK3iLP/AE6l7ZcnSyt4iz/06l7ZcnSyt4iz/wBOpe2XJ0sreIs/ 9Ope2XJ0sreIs/8ATqXtlydLK3iLP/TqXtlydLK3iLP/AE6l7ZcnSyt4iz/06l7ZcnSyt4iz /wBOpe2XJ0sreIs/9Ope2XJ0sreIs/8ASeX/AKtKt0jF5YmLyxMXliYvLExeWJi8sTF5YmLy xMXliYvLExeWJi8sTF5YmLyxMXliVTp+srvYnGSkdWLT3Fd7E4yUjqxae4rvYnGSkdWLT3Fd 7E4yUjqxae4rvYnGSkdWLT3Fd7E4yUjqxae4rvYnGSkdWLT307C407C407C407C407C407C4 07C407C407EeNZRcXTJRcXTJRcXTJRcXTJRcXTJRcXTJRcHT9FeJ8HbT6LufU/iesePUf9et H+gvWf8AXrR/oLxPg7aKTjwxzk9m9KXg9j2PY9tfbWDoT7k90mdN0J9ye6TOm6E+5PdJnTdC fcnukzpuhPuT3SZ03Qn3J7pM6boT7k90mdN0J9ye6TOm6E+5PdJnTdCfcnukzpuhPuT3SZ03 Qn3J7pM6boT7k90mdN0J9ye6TOm6E+5PdJnTdCfclvvpyU7op3RTuindFO6Kd0U7op3RTuin dFO6Kd0U7op3RTujj0ex2Pb/AO99Wdhcadhcadhcadhcadhcadhcadhcadhcadhcadhcadhc adhcadhcadhcadhcadhcaP8AQXifB2/SUnHgzld2Nt7sUnHgzld2Nt7sUnHgzld2Nt7sUnHg zld2Nt7sUnHgzld2Nt7sUnHgzld2Nt7sUnHgzld2Nt7sUnHgzld2Nt7sUnHgzld2Nt7sUnHg zld2Nt7sUnHgzld2Nt7sUnHgzld2Nt7sUnHgzld2Nt7sUnHgzld2Nt7sUnHgzld2Nt7sUnHg zld2W3u9OC3dlu7Ld2W7st3Zbuy3dlu7Ld2W7st3Zbuy3dlu7Ld2c+n8av8Ar1o/0F4nwdvR 9j2PY9vFGu6FjzRKqTRCu6FjzRKqTRCu6FjzRKqTRCu6FjzRKqTRCu6FjzRKqTRCu6FjzRKq TRCu6FjzRKqTRCu6FjzRKqTRCu6FjzRKqTRCu6FjzRKqTRCu6FjzRKqTRCu6FjzRKqTRCu6F jzRKqTRCu6FjzRKqTRCu6FjzRKqTRCu6FjzQ67aP9Bej28LO2vbXtr217a9te2vbXtr217a9 te2vbXtr2Fo/0F4nwdv0lJx4PuSuxycuSMnHg+5K7HJy5IyceD7krscnLkjJx4PuSuxycuSM nHg+5K7HJy5IyceD7krscnLkjJx4PuSuxycuSMnHg+5K7HJy5IyceD7krscnLkjJx4PuSuxy cuSMnHg+5K7HJy5IyceD7krscnLkjJx4PuSuxycuSMnHg+5K7HJy5IyceD7krscnLkjJx4Pu Suxyb50unaMnlkZPLIyeWRk8sjJ5ZGTyyMnlkZPLIyeWRk8sjJ5ZGTyyMnlkZPLIyeWRdu36 z/r1o/0F4nwdv0opPkUY8kkuUQSfIox5JJcogk+RRjySS5RBJ8ijHkklyiCT5FGPJJLlEEny KMeSSXKIJPkUY8kkuUQSfIox5JJcogk+RRjySS5RBJ8ijHkklyiCT5FGPJJLlEEnyKMeSSXK IJPkUY8kkuUQSfIox5JJcogk+RRjySS5RBJ8ijHkddtH+gvS7eBnbXtr217a9te2vbXtr217 a9te2vbXtr217C0f6C8T4O36Slifc+CUrIyxPufBKVkZYn3PglKyMsT7nwSlZGWJ9z4JSsjL E+58EpWQlR9z4JOyMsex9z4JOyMsex9z4JOyMsex9z4JOyMsex9z4JOyMsex9z4JOyMsex9z 4JOyMsex9z4JOyMsex9z4JOyMsex9z4G70unZl5rMvNZl5rMvNZl5rMvNZfmui/NdF+a6L81 0X5rovzXRfmui/NdF+a6OXfrP9Ota1rWta1rWta1rWhaP9BeJ8Hb9KKT5MF7ko1wRSfJgvcl GuCKT5MF7ko1wRSfJgvclGuCKT5MF7ko1wRSfJgvclGuCPH778S/Yf6S/ffiX6D4O3rPcesW lyZx9iUr2RFpcmcfYlK9kRaXJnH2JSvZEWlyZx9iUr2RFpcmcfYlK9kRaXJnH2JSvZEeP3++ 5ayui1ldFrK6LWV0Wsro/wDH7D/SX778S/QfB2/7UPg7f9qHwdv+1D4O3/ah8Hb9R8nfXt/w HvXpf+P+Cvg7ftP+1+T40+TtXi734PnR+J/3fyfGnydq8D4O3/ah8HYWvb/kPBZZfc7aWXp2 QheC9b8TF5Y2KKnFf+T7flsfS3pMXST4Y+ml3Gl9xm2Nk1T8L4O4heN+w/f02MY/A+DsUVpW lFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFaUVpRWlFGBiYmJiYmJiYmJiUUYmJiYmJiYmJiYlFEXKPBcjKVUZSslN7Ym Ui3lkW+CVt2VrRXgrw1pWlehWla0Vo+BMyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMiyyyyyyyyyyyyyyyyyyyyyyzIe5//xAA9EAACAQMCBAMHAwMDBAIDAQEAARECITES QRBRcZEiMmEDcoGSocHwIEKxQFLhEzNiMFBggrLCI6LR8TT/2gAIAQEABj8CVVSlvnc8lHyn ko+U8lHynko+U8lPyn+3T8p/t0fKf7dPyn+3T2P9un5T/bp+U/26ex/t09j/AG6flPJT8p5K flPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5K flPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5K flPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5K flPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5K flPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5K flPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5K flPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5K flPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5KflPJT8p5K flPJT8p5KflPJT8p5KflPJT8p5KflPJR8p5KflP9uj5T/bo+U8lOXt6n+3R2P9ujsLwU9j/a pc+iP/8AnXZCf+nT8ovBTjkeSj5S3sqX/wCqF/8Ajph48KPJR8pV4Kcch10KIyij3UWS09C1 V4wWzg8zquti6h4hwLSm/sWu8TsKanUmeVq03IqT8zUiiiu+PUtTU1EyTU0kTS5FXqs9oE65 VpktnkOlp4UUj9pq6UlUKrZbFFm52PLU7SYq2HZprZnhafQVbqs9oJdNSUSvU8tR5aomJKl/ aQ7P4FMN9CiVE0yJU81qJ16RTn/zf4v+R6qql0QtNVT6oRS+TE5x/wACkXThNTwall7cH0K/ zco91Gl4JTckMvXUyVU05yiddXr6kXh5R4qqquoruyg81UTMFOfCoGpq0wl14QWqqj+0SvZQ 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 q8OYKnVVZqzZpVTpph1Iu/E0RTXKlLUTq+hUtWqnn/Wsq+H/AGBwLx7YgVac8zwxVLwzN725 Cira40645WMpXwVJYqLQRPxPNack0vVbMDdTyrMe3hcGf2nhqm3Yfi3gXim1/T+ur6Ff5uL3 PsVfm4v/AG/+p7L3vs+Hs/dR3/8Ak+Fd1nmZp7mae5mnuZp7mae5mnuZp7mae5mnuZp7mae5 mnuZp7mae5mnuZp7mae5mnuZp7mae5mnuZp7mae5mnuZp7mae5mnuZp7mae5mnuZp7mae5mn uZp7mae5mnuZp7mae5mnuZp7mae5mnuZp7mae5mnuZp7mae5DdMe8Zp7mae5mnuZp7mae5mn uZp7mae5mnuZp7mae5mnuZp7mae5mnuZp7mae5mnuZp7mae5mnuZp7mae5mnuZp7mae5mnuZ p7mae4yq62PNT3PNT3PNT3PNT3PNT3PNT3PNT3PNT3PNT3PNT3PNT3PNT3PNT3PNT3PNT3PN T3PNT3PNT3PNT3PNT3PNT3PNT3PNT3PNT3PNT3PNT3PNT3PNT3PNT3PNT3PNT3PNT3PNT3PN T3PNT3PNT3PNT3PNT3PNT3PNT3PNT3PNT3PNT3PNT3PNT3PNT3PNT3PNT3PNT3I1U9zzU9zz U9zzU9zzU9zzU9zzU9zzU9zzU9zzU9zzU9zzU9zzU9zzU9zzU9zzU9zzU9zzU9zzU9zzU9zz U9zzU9zzU9zzU9zzU9zzU9zzU9zzU9zzU9zzU9yvoV/m4vc+xV+bi/8Ab/6nsve+z4ez91Hf /wCT4e1hS5PL4piJPL4piJPL4piJPL4piJPL4piJPL4piJPL4piJLqGs8PZt/wBqJ0eLESe1 lQ0mSxVaHLcQjDTWzPCp6sbqpvMQjxJLo5LKWeXxTESOVDRZSzy+KYiS6hrJZSzy+KYiS6hr JZSzy+KYiS6hrJZSzy+KYiS6hrJZSzy+KYiS6hrJZSzy+KYiS6hrJ4VPVjdVN5iEeJJdHJZS zy+KYiS6hrJZSzy+KYiS6hrJZSzy+KYiS6hrJZSzy+KYiS6hllLPL4piJLqGs8F4XVPIU01K XHQc1RDi54Wn0/X4qkup4Wn0/Rq/TU/+I9VN1smPVTdbJj1U3WyY9VN1smPVTdbJj1U3WyY9 VN1smNVKGvXg/eq/kqenGw1Uoa5OT2fuIqq0u2xDpdL5M8KllWtJaeTk8VOn4klU0+JbJjVS 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 Vp5mqVp5mqVp5mqVp5mrUtPMlOVwl2RqlaeZKcol2RqlaeZKcol2RqlaeZKcol2RqlaeZKco l2RqlaeZKcol2RqlaeZKcol2RqlaeZKcol2RqlaeZKcol2RqlaeZKcol2RqlaeZKcoVdb6s1 StPMlOUKut9WapWnmSnK4TKjmSoNdb+JqlaeZKcoVdb6s1StPMlOVwmVHMn+mq90mlpr0Jpa a9CaWmvQmlpr0Jpaa9CaWmvQmmpNehNLTXpxmlpr0Jpaa9OE0tNehNLTXpwmlpr0Jpaa9OE0 tNehNLTXpwmlpr0Jpaa9OE0tNehNLTXpwmlpr0Jpaa9OE0tNehNLTXpwmlpr0Jpaa9OE0tNe hNLTXp+maWmvQmlpr0/TNLTXoTS016f1tfQr/Nxe59ir83KdVGtanaehRo9jo9Znbj7P3fu+ FbeFUpNUrRrmTVK0a5k1StGuZNUrRrmTVK0a5kqqcadVnsam01ru9iprDduCbwnc1StGuZKm sN2E3hO5qlaNcyVNYbsJvCdzVK0a5kqaw3YTeE7mqVo1zJU1huwm8J3NUrRrmSprDdhN4Tua pWjXMlTWG7Cbwnc1StGuZKmsN2E3hO5qlaNcyVNYbsJvCdzVK0a5kqaw3YTeE7mqVo1zJU1h ux7NvCdzVK0a5kqaw3Y9m3hO5qlaNcyVNYbsLbqTaNWdhtYmxQ3hVXNUrRrmSprDdj2beE7m qVo1zJU1huwtupNo1Z2KmsTbg6nhGufDEmufDEmufDEmufDEmufDEmufDEmufDEmufDEmufD EmufDEmufDEmufDEmufDk1z4Yk1z4YklYf6K/dPaOlp02we0dLTptg9o6WnTbB7R0tOm2D2j padNsHtKrVezt6ntXKqxdYKnS06bY4M9o6WnTbBU6WnTbAz2jpadNsFTpadNsDPaOlp02wVO lp02wM9o6WnTbBU6WnTbAz2jpadNsFTpadNsDPaOlp02wVOlp02wM9o6WnTbBU6WnTbAz2jp adNsFTpadNsDPaOlp02wVOlp02wM9o6WnTbBU6WnTbA5Kn4fgStP/qVHtHS06bYKnS06bYHJ U/D8CVp/9So9o6WnTbBU6WnTbA55FVXgxtg1LT/6lUlT8PwHGn/146qXKNVLlGqlyjVS5Rqp co1UuUaqXKNVLlGqlyhVUuUSsCqpcolYFVS5RqWCVj9NfQrF7n2KvzcXvP7FPDB7P3fu+Hte v/SVTy+KqeXxVTy/0YMGDBgVTz+jBgVTzxVTy+KqeXxVCwYMCpWEYMfo0owYFSsIwY/6OP14 444P9FXu/wDTwY/TgwYMGDBgx+nBgwYMGDBj9C/Rgx+h8V+l/pwY44McFxYv119Cv83F7n2K vzcSSnxP7FGqlrrx9n7v3fCtPDqUmmPBriDTHg1xBpjwa4g0x4NcQaY8GuIKlRT+6FBTTpin VEFSWE7cPZp4buaY8GuIKksJ2PZp4buaY8GuIKksJ2PZp4buaY8GuIKksJ2EQ1bVga2mx8SG rasDW02KE8Oq5pjwa4gqSwnYRDVtWBrabFCeHVc0x4NcQVJYTsezTw3c0x4NcQVJYTsezTw3 c0x4NcQVJYTsIhq2rA1tNhLaTT+3UNbTbhHqPlPCNpHynhHqPlPCPUfKeEs1So5mqVHMmbRk mbEzbmTNoyTNuZqlRzNUqOZM2jJM2JmxJJP6a/dPaU0qKbYPaU0qKbYPaU0qKbYPaU0qKbYP aU0qKbYK17OnayXM9pZq+5VTSoptjjU7q39xL/mSo9pTSoptgqppUU2xwqd1b+4l/wAyMqd1 b+4l/wAyMqd1b+4l/wAyVHtKaVFNsFVNKim2B9CpuVb+5kvtMjKndW/uJf8AMjKndW/uJf8A MlR7SmlRTbBVTSoptjhU7q39xL/mRlTurf3Ev+ZGVO6t/cS/5kqPaU0qKbYKqaVFNscKndW/ uJf8yMqd1b+4c/zPGUJppolEolCdLTRKckolCaaaJRKJQmmmiUW/TX0K/wA3F7n2KvzcVNKl 6n9ih1qP/wDOEr2dXY9nP9v3fD2qalGnStPI06Vp5GnStPI06Vp5GnStPI0pKORp0rTyghKF wXs6vEuhp0+HlBCUI/034l0NOnw8oIShH+m/Euhp0+HlBCUIxYiFHIhEO5EKORCP9OrxI06f DyghKEYsRCjkQj/Tq8SNOnw8oIShH+m/Euhp0+HlBCUI/wBN+JdDTp8PKCEoRixEKORCLkQo 5ELhFoLQbEWgtBDIixbhFoI4Q1Jpi3I0xbkRFuREWNMW5ERbkaYtyNMW5GmLciItyIixtBFi DaP01e6QqUlyIVKS5EKlJciFSkuRCpSXIilJL0HFKU5sRSkl6cLkQo5FrDIVKS5EUpJehciF HItYuRCjkWsXIhRyLWGQqUlyIpSS9CHc06VHIhKC5EKORaxciFHItYZCpSXIilJL0LkQo5Fr FyIUci1i5EKORawyFSkuRFKSXoXIhRyLWLkQo5FrcYQkkkiEQiEJUpJEJQQiEJJJIhEIhCSS SIRb9NfQrF7n2KvzcUV6L1XmORRq9trvjVO3Chf6XtXFKxSUvnP/AMnw9oudSNEuNUTJolxq iZNEuNUTJolxqiZNEuNUTJVTS8Vf3fc03Xih+KfqVLk+CI9Rrlwj1GuQktyHUNchJbkOoa5C S3IdQ1y4R6jXLhF8jXLhF8jXLhF8jXLhHqNcuEeo1y4R6jXI8Lac7GrVXta0k1N32ewlzZol xqiZKlyYiPUa5HhbTnY1aq9rWk8WqfX+mrj+0rpTe2WV0pvbLK6U3tlldKb2yyulN7ZZ7T2d LeLSypXT97UVU3j1fCw3L+MF5+JVBXSm9ssqpvHqxxyKnNStvBduOTKo5FTmpW3gu3HJjgbl /GC8/EqgrpTe2WVU3j1Y45FTmpW3gu3HJjgbl/GC8/EcDcv4wXn4lUFdKb2yyqm8erLDcv4w Xn4jgbl/GC8/EcDcv4wXn4lUFdKb2yyqm8erLDcv4wXn4jgbl/GBzPx4IYuLFxYuLF+uvoVi 9z7FX5uJTF6tp5Hs3Kd9qY2fD2fuo7//ACfD2qfM07dTTt1NO3U07dTTt1NO3U07dSFxjjH6 sfUwYMfUwYIj6mOER9TBDI4xxjjEfUwYIj6mCKpzszS5jqQRUadiFwiPqYIqnOzNLmOpHCDT sadiIsaYsaYsaYsadjTsadiIsaYsaGrH+n+2Ig00rwxBoasKlYX6Kk/7RrnzY1z5sa582Nc+ bGufNjp2fNjXPMst9XPCGReOvBpjXPmy31ckM03jrwhmm8deFS5OCLx1P8jT3GufNlvq5God nDNN46n+SpRhwReOp/khkXjqf5GnuNc+bLfVyQReOp/khkXjrwqXJwReOp/kae41z5st9XJB F46n+SpRhwReOv6IWBU0qERTg00qxEWFTQrI0pWISsRFhU0KyIixFKsRFhU0KyISsQlb9NfQ r/Nxe59ir83Kfef2KOPsvd+74e0ScS0pNOq+rTqNOq+rTqNOq+rTqNOq+rTqNOq+rTqKpd04 llq6m24lrA03MOJ4Iid4kfpwid4kfpwid4kfoTTz5SapUW/Z9iaoja0E08+UmqVFv2fYmqI2 tAknEuJNOq+rTqGm5hxJNPPlJqlRb9n2JqiNrQKNyJvMSNO8PhE7xI/ThE7xI/Qmnnyk1Sot +z7E1RG1oEk4lxJp1X1adQ03MOJJp58pNUqLfs+xNURtaBETvEj9CaefKTVKi37PsTVEbWgm nnyk1Sot+z7Ev+I/pqo/tKqdUtRdlVOqWouyqnVLUXZVTqlqLsqp1S1F2Vy9WlTLG9bqfrTE Dpb1RvwlDdux6dIHBVTqlqLsdLeqNyVsVO1v+J6dIG1sVO1v+J6dIPbNZTZVVKhJ/sgvDp92 CxVTqlqLsdLeqNz2zWVUyqqVCT/ZBeHT7sHtmsqplVUqEn+yC8On3YKmspFVUqEn+yC8On3Y LFVOqWoux0t6o3KmspFVUqEn+yC8On3YJWxU7W/4np0g9s1lNlVUqEn+yC8On3YLFVOqWoux 0t6o3KmspFVUqEn+yC8On3YPbNZVTKqpUJP9kDl//rHBDFwf60P/AKNfQrF7n2Kvzcp95/Yo 4+y937vh7VYuRLnMkS5zJEucyRLnMkS5zJpl85I1OZmTM+vHPx479Tc3N+puRLpvsJa6upmS NTXQS11dTMkYIlzmTM+pGp09BL/UfWx5pMkS+vHPx45+PCNTpvsJf6j62PNJEwRqvmTzT6ka 46CX+o+tjzTwz8eEanTfYS/1H1seaSNcdBL/AFH1sZnjF+pFzTLXruaNTxE7mjU8RO5o1PET NzTqeInciX1IlmnU167mjW8RM3NGt4iZuaZbtk06mvXc0a3iJm4lMx+ipf8AEabbndjTbc7s abbndjTbc7sabbndjVTdU5kc1Oqd2ZdT5vhBFzdlS+A023O7Mup82Rc0t1dTdjVzS3V1N2e0 pqmnUx0uuq+5dt9SBptud2ZdT5s9pTU9OqpjpftHfexeqep7SluNVTwOl+0d97F6p6jp1RPI dL9o772L1T1IkadUzuzzanzY6dUTyHS/aO+9i9U9SJNLqfUzJ7Smp6dTHS/aO+9i9U9SJGnV M7s82p82OnVE8h0v2jvvYvVPU9pS3Gqp4HS/aO+9jzauMX+IqZqq9WR4n1IlvqadTfqzTqb9 amadbfq2adbfq2adbfq2adbfq2KnU6vVsjU31NOtv1bNOtv1bNOtv1bNOp1erf6a+hWL3PsV fm5T7z+xRx9l7v3fD2kZbItqmPQi2qY9CLapj0ItqmPQi2qY9CE6dScNwft1NwhzlOOFj1mC 5bLZFtUx6DnKcGq3xcGrTTFr6rfwXSjZpzJqt8XBq00xa+q38F0o2acyarfFwatNMWvqt/Bd KNmnMlssi2qY9BzlOBQpPKp6kNQ0WUnlU9SGoaLKTyqepDUNFlJ5VPUhqGiyk8qnqQ1DRZSe VT1IahospPKp6kNQ0WUnlU9SGoaLKTyqepDUNFlJ5VPUuov/AET/AEVP/iVKqHUipVQ6kVKq HUipVQ6kVKqHUiqmadS3ixXqhxiLDpqiVy4OpKYKqlTS0llVf4MUxzpcntX/AM2VKqHUh01R K5DqSmCqpU0tJZVX+DFMc6XI6kpgqqVNLSWVV/gxTHOlyOpKYKqlTS0llVf4MUxzpcklSqh1 IdNUSuRY2kuWNpLljaS5Y2kuWNpLljaS5Y2kuWNpLljaS5Y2kv8A9Bf9evoVi9z7FX5uU+8/ sUcfZe793w9rDhyjPimZgz4pmYM+KZmDPimZgz4pmYHe73FSnenDL3bzxzfhZw5M+KZmC928 kUtK+6Ek6U+ht8CKWlfdCSdKfQ2+BFLSvuhJOlPobfAs4ZnxTMwXu3kUODzKeg23LZZweZT0 G25bLODzKeg23LZZweZT0G25bLODzKeg23LZZweZT0G25bLODzKeg23LZZweZT0G25bLODzK eg23LZZweZT0HLm/GNV+ZGrxR5oI1eKPNBGrxR5oI1eKPNBGrxRkib8yJvzIm/Mib8yJvzIm /Mib8yJvzIm/Mu5f6Kl/xKtT8T3SKtT8T3SKtT8T3SKtT8T3SKtT8T3SG6mm3yQ6Z+I3U02+ S4OlOJHTNMveC8T6KD2qdprZVqfie6Q3U02+SHSnEjpmmXvBeJ9FA6U4kdM0y94LxPooHSnE jpmmXvBeJ9FBBVqfie6Q3U02+SLESuxdp/AsRK7F2n8CxErsXafwLESuxdp/AsRK7F2n8CxE rsXafwLESuxdp/AsRK7F2n8CxErsXafwLESuw5afw4xVVqfOCKqtT5wRVVqfOCKqtT5wRVVq fOBKqrU+cHicvmeJy+Z4nL5nicvmeJy+Z4nL5nicvmeJy+Z4nL5nicvn+mvoV/m4vc+xV+bl PvP7FHH2Xu/d8Pawpcnl8UxEnl8UxEnl8UxEnl8UxEnl8UxEnl8UxEnl8UxEl1DWeGGzyueR iDDZ5XPIxBhs8rnkYgw2eVzyMQYbPK55GIMNnlc8jEGGzyueRiDDZ5XPIxBhs8rnkYgw2eVz yMQYbPK55GIMNnlc8jEGGzyueRiDDZ5XPIxBhs8rnkYgw2eVzyMNf0T/AEVP/iPVTdbJj1U3 WyY9VN1smPVTdbJj1U3WyZVqputkyrVTdcmNVKGvXjMX5E8Ji/InhMX5E8Ji/InhMX5E8Ji/ InhMX5E8Ji/InhMX5E8Ji/InhMX5E8Ji/InhMX5E8Ji/InhMX5E8Ji/Ingv6WvoV/m4vc+xV +blPvP7FHH2Xu/d8PaRlNE21TJNtUyTbVMk21TJNtUyOVS23LWxZUppylsOctzwWmCYU9Rt5 Z4YJhT1G3lnhgmFPUbeWeGCYU9Rt5Z4YJhT1G3lnhgmFPUbeWeGCYU9Rt5Z4YJhT1G3lnhgm FPUbeWeGCYU9Rt5Z4YJhT1G3lnhgmFPUbeWeGCYU9Rt5Z4YJhT1G3lnhgmFPUbeWeGCYU9R6 ozwtmDbUbajbUbajbUbajbUbajbUbajbUbajbUbajbUXz+ipf8Sp1QqnyKnVCqfIqdUKp8ip 1QqnyKnVCqfIrmE36lSimicKnA6qoTfLhYul3PFHwZYul3PFHwZYul3PFHwZYul3PFHwZYul 3PFHwZYul3PFHwZYul3PFHwZYul3PFHwZYul3PFHwZYul3PFHwZYul3PFHwZYul3PFHwZYul 3PFHwZYul3PFHwZYul3PFHwZYul3Hqj4Pj4on0PFE+h4on0PFE+h4on0PFE+h4on0PFE+h4o n0PFE+h4on0PFE+h4on0PFE+h4on0PFE+n6a+hX+bi9z7FX5uU+8/sUcfZe793w9q83Jh8o3 Jh8o3Jh8o3Jh8o3Jh8o3Jh8oJhziNzl6cL/wTfsWL/wTfsWL/wAE37Fi/wDBN+xYv/BN+xYv /BN+xYv/AATfsWL/AME37Fi/8E37Fi/8E37Fi/8ABN+xYv8AwTfsWL/wTfsWL/wTfsWL/wAE 37Fi/wDBN+xb+if6Km/7RtpqNhtpqNhtpqNhtpqNhtpqNhtpqNmOU6Y2Zhp8nxmGTwmGTwmG TwmGTwmGTwmGTwmGTwmGTwmGTwmGTwmGTwmGTwmGTwmGTwmGTwmGTwX9LX0K/wA3F7n2Kvzc p95/Yo4+y937vh7RpTFSsatN9U6TVpvqnSatN9U6TVpvqnSatN9U6SpumqW5hRKNXib1aoeR tqJcxwUKTVpeVYbaiRQpuatLyrDbUSKFNzVpeVYbaiRQpuatLyrDbUSKFNzVpeVYbaiRQpua tLyrDbUSKFNzVpeVYbaiRQpuatLyrDbUSKFNzVpeVYbaiRQpuatLyrDbUSKFNzVpeVYbaiRQ puatLyrDbUSKFNzVpeVYbaiRQpuatLyrDbUSKFNzVpeVYbaiRQpuatLyrDlRfha9iYvyJi/I mL8iYvyJi/ImL8iYvyJi/ImL8iYvyJi/ImL8iYvyJi/ImL8i6h/orj+0rq0w3FmV1aYbizK6 tMNxZldWmG4syurTDcWZW6qHdRG5W3qlx5oKqmnTOz4cy9LL0tHMvSy9LRzL0svS0cy9LL0t HMvSy9LRzL0svS0cy9LL0tHMvSy9LRzL0svS0cy9LL0tHMvSy9LRzL0svS0cy9LL0tHMvSy9 LRzL0svS0cy9LHNLXHxKHyPEofI8Sh8jxKHyPEofI8Sh8jxKHyPEofI8Sh8jxKHyPEofI8Sh 8jxKHyPEofI8Sh8jxKHy/TX0K/zcXufYq/Nyn3n9ijj7L3fu+HtW+ZqmxqmxqmxqmxqmxqdS S9bGqbErh4mkTqUdSU5PE0idSjqSnJ4mkTqUdSU5PE0idSjqSnJ4mkTqUdSU5PE0idSjqSnJ 4mkTqUdSU5PE0idSjqSnJ4mkTqUdSU5PE0idSjqSnJ4mkTqUdSU5PE0idSjqSnJ4mkTqUdSU 5PE0idSjqSnJ4mkTqUdSU5PE0idSjqSnP9E/0VN40jc2WZsNzZZmw3NlmbDc2WZsNzZZmxqm EudjVK08y38cJZq2JRLNWxKJZq2JRLNWxKJZq2JRLNWxKJZq2JRLNWxKJZq2JRLNWxKJZq2J RLNWxKJZq2JRLNWxKJZq2JRLNWxK4L+lr6Ff5uL3PsVfm5T7z+xRx9l7v3fD2j5VI1w41Tg1 w41Tg1w41Tg1w41Tg1w41TgtS/HVyeCHS/BVyZU+b34LPYdUOJWxU9mLOeQ6ocStip7MWc8h 1Q4lbFT2Ys55DqhxK2KnsxZzyHVDiVsVPZiznkOqHErYqezFnPIdUOJWxU9mLOeQ6ocStip7 MWc8h1Q4lbFT2Ys55DqhxK2KnsxZzyHVDiVsVPZiznkOqHErYqezFnPIdUOJWxU9mLOeQ6oc Stip7MWc8h1Q4lbFT2Ys55DqhxK2G0ovwn0NUPoaofQ1Q+hqh9DVD6GqH0NUPoaofQ1Q+hqh 9DVD6GqH0NUPoaofQ1Q+hP6K4/tK6kntsV1JPbYrqSe2xXUk9tiupJ7bFdVKq8Vl4WV0aY3U TBVVeMXUcd+xv8Vw37G/xXDfsb/FcN+xv8Vw37G/xXDfsb/FcN+xv8Vw37G/xXDfsb/FcN+x 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 xiXxiXxiXxiXxiXxiXxiXxX9LX0K/wA3F7n2KvzcXvP7FPH2fu/d8Pap8zTt1NO3U07dTTt1 NO3U03j3mab9yFwv/JF+5Yv/ACRfuWL/AMkX7li/8kX7li/8kX7li/8AJF+5Yv8AyRfuWL/y RfuWL/yRfuWL/wAkX7li/wDJF+5Yv/JF+5Yv/JF+5YTvHUiH3LL6kVfyRfuWL/yRfuW4Q+Rp 2wadsGnbBp2wadsGnbBp2wadsGnbBp2wadsGnbBpjw4NEWg07YIWF+ipP+0a582Nc+bGufNj XPmxrnzY6bw/+THm/NyW+rnjCnuWnvwhT3LT34Qp7lp78IU9y09+EKe5ae/CFPctPfhCnuWn vwhT3LT34Qp7lp78IU9y09+EKe5ae/CFPctPfhCnuWnvwhT3LT34Qp7lp78IU9xxPfjFOCKc EU4IpwRTginBFOCKcEU4IpwRTginBFOCKcEU4Ipx+mvoV/m4vc+xV+bi95/Yp4+z937vh7RJ xLSk06r6tOo06r6tOo06r6tOo06r6tOo06r6tOoziqJdMil+Z2aQ03MOJ4LTBFp6DVWUeGCL T0Gqso8MEWnoNVZR4YItPQaqyjwwRaeg1VlHhgi09BqrKPDBFp6DVWUeGCLT0Gqso8MEWnoN VZR4YItPQaqyjwwRaeg1VlHhgi09BqrKPDBFp6DVWUUpOJcSadV9WnUNNzDiRQRaRpliLSX/ AKJ/oqj+0qp1S1F2VU6pai7KqdUtRdlVOqWouyqnVLUXZX4pai7Q6renhgdLeqN+FjN+Ze5Y zfmXuWM35l7ljN+Ze5YzfmXuWM35l7ljN+Ze5YzfmXuWM35l7ljN+Ze5YzfmXuWM35l7ljN+ Ze/DN+Ob8c34r+lr6Ff5uL3PsVfm4klPif2KNVLXXj7P3fu+HtVi5EucyRLnMkS5zJEucyRL nMi8dUzMjmup+vIzPrwy0eZzzMyZaPM55mZMtHmc8zMmWjzOeZmTLR5nPMzJlo8znmZky0eZ zzMyZaPM55mZMtHmc8zMmWjzOeZmTLR5nPMzJlo8znmZky0eZzzMyKl2ZEucyZn1MwZZzMwZ ZmeEehpl9TTL6mmX1NMvqaZfU0y+ppl9TTL6mmX1NMvqaZfU0y+ppl9dxUy8ZIl/pqX/ABGm 253Y023O7Gm253Y023O7Gm253Y066r7j1V1VTzMup83w5EamZb6nIjUzLfU5EamZb6nIjUzL fU5EamZb6nIjUzLfU5EamZb6nIjUzLfU5EamZb6nIjUzLfU5EamZb6nIjUzLfU5EamZb68I1 My3wjUzLfCNTHdvjEt9SJb6kS31IlvqRLfUiW+pEt9SJb6kS31IlvqRLfUiW+pEt9SJb6kS3 1Ilvr+mvoV/m4vc+xV+bi95/Yp4+z937vh7SMtkW1THoRbVMehFtUx6EW1THoRbVMeg29M0u HeEYpvhzKHOU44KDF+pfJYxfqXyWMX6l8ljF+pfJYxfqXyWMX6l8ljF+pfJYxfqXyWMX6l8l jF+pfJYxfqXyWMX6l8liNy5bLZFtUx6DnKcFjZuYL5LGL9S6/on+ip/8SpVQ6kVKqHUipVQ6 kVKqHUipVQ6kVzDdKnkNxTHNVSOmqJXLhY9S5Y9S5Y9S5Y9S5Y9S5Y9S5Y9S5Y9S5Y9S5Y9S 5Y9S5Y9S5Y9S5Y9S5Y9S5Y9S/Bf0tfQr/Nxe59ir83Ekp8T+xRqpa68fZ+793w9rDhyjPimZ gz4pmYM+KZmDPimZgz4pmYPMtUy3AlKTXoXu3ngoMqehfJYyp6F8ljKnoXyWMqehfJYyp6F8 ljKnoXyWMqehfJYyp6F8ljKnoXyWMqehfJYyp6F8ljKnoXyWM34WcOTPimZgvdvPDN55F8lj KnoX45vzM35mb8zN+Zm/MzfmZvzM35mb8zN+Zm/MzfmRqvzEtV4yZvz/AE1L/iVan4nukVan 4nukVan4nukVan4nukVan4nukVTUtVVpgabUvdIbqabfJcLESuxdyWIldi7ksRK7F3JYiV2L uSxErsXcliJXYu5LESuxdyWIldi7ksRK7F3JYiV2LuSxErsXcliJXYu5LESuxdyWIldi7ksR K7F3JYiV2HLnjdy+Zdy+Zdy+Zdy+Zdy+Zdy+Zdy+Zdy+Zdy+Zdy+Zdy+Zdy+Zdy+Zdy+Zdy+ Zdy/019Cv83F7n2KvzcTTjxP7FGqpvrx9n7v3fD2sKXJ5fFMRJ5fFMRJ5fFMRJ5fFMRI/D4l tInF3seXxTESXUNZ4Ykw+GJMPhiTD4Ykw+GJMPhiTD4Ykw+GJMPhiTD4Ykw+GJMPhiTD4WUu Ty+KYiS6hrJZSzy+KYiS6hrPDHDEmH/Rv9FT/wCI9VN1smPVTdbJj1U3WyY9VN1smOafEtkz U18B6qbrZMaqUNevGY4zHGY4zHGY4zHGY4zHGY4zHGY4zHGY4zHGY4zHFf0tfQr/ADcXufYq /NxL/k/sUY+D4+z937vh7SMpom2qZJtqmSbapkm2qZHZaqvUVqdVPqTbVMjnLc8FBNp6jbLE 2nqNssTaeo2yxNp6jbLE2nqNssTaeo2yxNp6jbLE2nqNssTaeo2yxNp6jbLE2nqNssTaeo2y 2Uybapkc5bktlE21TI5y3JY2mZG2WJtPUvwsbSbSbSbSbSbSbSbSbSbSbSWjUba4+ApjVBtJ f9FS/wCJU6oVT5FTqhVPkVOqFU+RU6oVT5FVTS1PaR01KlcoZU6oVT5DqqhN8uFjC7l4LGF3 LwWMLuXgsYXcvBYwu5eCxhdy8FjC7l4LGF3LwWMLuXgsYXcvBYwu5eCxhdy8FjC7l4LGF3Lw WMLuXgsYXccxx8UT6HiifQ8UT6HiifQ8UT6HiifQ8UT6HiifQ8UT6HiifQ8UT6HiifQ8UT6H iifQ8UT6HiifT9NfQr/Nxe59ir83F7z+xTx9n7v3fD2rzcmHyjcmHyjcmHyjcmHyjc1aauhq hv0FVDvscvThc/wWLn+Cxc/wWLn+Cxc/wWLn+Cxc/wAFi5/gsXP8Fi5/gsXP8Fi5PCckw+Ub nL0JyTD5RucvQpcSTp9I3MR6cP8AH9G/0VN/2jbTUbDbTUbDbTUbDbTUbD8NSa2NUPoa4aMN Pk+MwTwmCeEwTwmCeEwTwmCeEwTwmCeEwTwmCeEwTwmCeEwTwmCeEwTwmCeC/pa+hX+bi9z7 FX5uL3n9inj7P3fu+HtGlMVKxq031TpNWm+qdJq031TpNWm+qdJU9Dmp4P8AbqnEWKfA5p2G 2olzHBQpJ0sbwWUk6WN4LKSdLG8FlJOljeCyknSxvBZSTpY3gspJ0sbwWUk6WN4LKSdLG8Fl JOljeCyknSxvBZSao+A/UlKYeDVpvqnSNtRLmBNKYeDVpvqnSNtRLmD2bSmHg1ab6p0jbUS5 gUKSdLHaL8cX5GL8jF+Ri/IxfkYvyMX5GL8jF+Ri/IxfkTpvyJ0+KPLJOnxR5ZE9N4x+muP7 SurTDcWZXVphuLMrq0w3FmV1aYbizKq9D6F/Z1Sug1oafqVVNOmdnx8rLqOHlZdRw8rLqOHl ZdRw8rLqOHlZdRw8rLqOHlZdRw8rLqOHlZdRw8rLqOHlZdRw8rLqOHlZdRw8rLqOHlZdRxuo fIuofIuofIuofIuofIuofIuofIuofIuofIuofIuofIuofIuofIuofIuofIuof6a+hX+bi9z7 FX5uU+8/sUcfZ+793w9q3zNU2NU2NU2NU2NU2NWxqmxK4XcEyoLF3BMqCxdwTKgsXcEyoLF3 BMqCxdwTKgsXcEyoLF3BMqCxdwTKgsXcEyoLF3BMqCxNRq2JROxqmxKMwTNjJyRqmxK4TJb+ if6Km8aRubLM2G5sszYbmyzNhubLM2HVNlzRrmw3OMzYt/HGdieE7E8J2J4TsTwnYnhOxPCd ieE7E8J2J4TsTwnYnhOxPCdieE7E8J2J4TsTwX9LX0K/zcXufYq/Nyn3n9inhKoq7Hs/d+74 e0fKpGuHGqcGuHGqcGuHGqcGuHGqcFdUVeJ8il6Km8eVmrxOKpfhyVPm9+CJhxPIbF1JhxPI bF1JhxPIbF1JhxPIbF1JhxPIbF1JhxPIbF1JhxPIbF1JhxPIbF1JhxPIbF1JhxPIbF1JhxPI bE+TNcONU4Knze4nyZrhxqnBU+b3EathvmJ8ma4capwVPm9xE3zyH14zDJhkwyYZMMmGTDJh kwyYZqh9DXpeJjcVUPGDVD6Cqh4x+muP7SupJ7bFdST22K6kntsV1JPbYqriqOg/BU420lTv q6R8Cqq8Yuo479jftw37G/bhv2N+3Dfsb9uG/Y37cN+xv24b9jftw37G/bhv2N+3Dfsb9uG/ Y37cN+xv24b9jftw37G/bhv2N+3Dfsb9uMw11JhrqTDXUmGupMNdSYa6kw11JhrqTDXUmGup MNdSYa6kw11JhrqTDXUmGuv6a+hX+bi9z7FX5uL3n9inhTTowoyUvmm/q+Htm7I1StPM1StP M1StPM1StPM1alp5kzbmatS08yU5X/Y23ZGqVp5kpyuG36W3ZGqVp5kpyi5K/o3+ir3SaWmv Qmlpr0Jpaa9CaWmvQlVJrmSnKJpqTXoTS016cZ2LcJ2LcJ2LcJ2LcJ2LcJ2LcJ2LcJ2LcJ2L cJ2LcJ2LcJ2LcJ2LcJ2LcJ2LcJ2LcF/S19Cv83F7n2KvzcXvP7FPCVRV2PZ+793wrbwqlJql aNcyapWjXMmqVo1zJqlaNcyV1N06ZsylzS1zzBqbTWu72KmsN24LVHxNtMj0+UWqM7m2mR6f KLVGdzbTI9PlFqjO5tpkenyi1Rnc20yPT5RaozubaZHp8otUZ3NtMj0+UWqM7m2mR6fKLVGd zbTI9PlFqjO5tpkenyi1Rnct5ZHykTeFVc1StGuZKmsN2EXiNQ9PlFqjO5tpkenyibwqrmqV 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 e5YzfmXuWM35l7ljN+Ze5YzfmXuWM35l7ntY/uKqdUtRdjpb1Rue1j+9lVOqWoux0t6o3LFV OqWoux0t6o3Pax/eyqnVLUXY6W9Ub/oX/Sf/AEa+hX+bi9z7FX5uL3n9inj7L3fu+HtVi5Eu cyRLnMkS5zJEucyRqfU0upv1I1OZmTM+vHLOZmDLOZmDLOZmDLOZmDLOZmDLOZmDLOZmDLOZ mDLOZmDLOZmDLOZmDLOZmDLOZmDLOZmDLOZGCJc5kzPrxiWRLIlkSyJZEsiWRLIlkSyJZEsi WRLNMvqJS3HP9FS/4jTbc7sabbndjTbc7sabbndj8bl7jpdTqT5jmp1TuzLqfN8Par/mxptu d2ZdT5s9qv8Amxptud2ZdT5sgfic8zLfU5EamZb6nIjUzLfU5EamZb6nIjUzLfU5EamZb6nI jUzLfU5EamZb6nIjUzLfU5EamZb6ntFVaWNOqZ3Z5tT5s9oqv3VMadUzuzzanzZEjTqmd2eb U+bPaKr91TGnVM7sfi1Pm+OnU36sVOp1erIlvqRLfUiW+pEt9SJb6kS31IlvqRLfUiW+pGpv qadbfq2adbfq2adbfq2adTq9W/019Cv83F7n2KvzcXvP7FPH2Xu/d8PaRlsi2qY9CLapj0It qmPQi2qY9Cry6kUumE3zR+3U3CHOU44WNm5gvksYv1L5LGL9S+Sxi/UvksYv1L5LGL9S+Sxi /UvksYv1L5LGL9S+Sxi/UvksYv1L5LGL9S+Sxi/UvksYv1L5LGL9S+S2WyLapj0HOU4/pqn/ AMSpVQ6kVKqHUipVQ6kVKqHUiql6XUjbUV6ocYiw6aolcuHtX/zZUqodSHTVErke1f8AzZUq odSHTVErkWNpLljaS5Y2kuWNpLljaS5Y2kuWNpLljaS5Y2kuWNpLljaS5Y2kuWNpLljaS/6F /R19Cv8ANxe59ir83F7z+xTx9l7v3fD2sOHKM+KZmDPimZgz4pmYM+KZmBxUtTy4IbTfQVKd 6cMvdvPHN55F8ljKnoXyWMqehfJYyp6F8ljKnoXyWMqehfJYyp6F8ljKnoXyWMqehfJYyp6F 8ljKnoXyWMqehfJYyp6F8ljKnoXyWMqehfJZw5M+KZmC9288c35mb8zN+Zm/MzfmZvzM35mb 8zN+Zm/MzfmZvzM35mb8yNV+Ypcvn+ipf8SrU/E90irU/E90irU/E90irU/E90hvUtT3giqp PooHTPxG6mm3yXD2qdprZVqfie6Q3U02+SPap2mtlWp+J7pDdTTb5IsRK7F2n8CxErsXafwL ESuxdp/AsRK7F2n8CxErsXafwLESuxdp/AsRK7F2n8CxErsXafwLESuxdp/AsRK7F2n8CxEr sXafwLESuxdp/AsRK7F2n8CxErsOWn8OMVVanzgSqq1PnB4nL5nicvmeJy+Z4nL5nicvmeJy +Z4nL5nicvmeJy+Z4nL5nicvmeJy+Z4nL5nicvn+mvoV/m4vc+xV+bi95/Yp4+y937vh7WFL k8vimIk8vimIk8vimIk8vimIkfh8S2kTi72PL4piJLqGs8LKWeXxTESXUNZMSYfDEmHwxJh8 MSYfDEmHwxJh8MSYfDEmHwxJh8MSYfDEmHwxJh8MSYfDEmHwxJi/L+jf6Kn/AMR6qbrZMeqm 62THqputkx6qbrZMc0+JbJmtr4FWqm65MaqUNevGYvyJ4TF+RPCYvyJ4TF+RPCYvyJ4TF+RP CYvyJ4TF+RPCYvyJ4TF+RPCYvyJ4TF+RPCYvyJ4TF+RPCYvyJ4TF+RPBf0tfQr/Nxe59ir83 Kfef2KOPsvd+74e0jKaJtqmSbapkm2qZJtqmR2Wqr1FS1TK2mzLKlNOUthzlueFsom2qZHOW 5FBNp6jbLE2nqNssTaeo2yxNp6jbLE2nqNssTaeo2yxNp6jbLE2nqNssTaeo2yxNp6jbLE2n qNssTaeo2yxNp6jbLE2nqNssTaRzz4PTE7SKY1QbSbSbSbSbSbSbSbSbSbSbSbSbSbSX/RUv +JU6oVT5FTqhVPkVOqFU+RU6oVT5FVTS1PaR01Kn4MqUU0ThU4HVVCb5cLF0u54o+DLF0u54 o+DLF0u54o+DLF0u54o+DLF0u54o+DLF0u54o+DLF0u54o+DLF0u54o+DLF0u54o+DLF0u54 o+DLF0u54o+DLF0u54o+DLF0u54o+DLF0u54o+DLF0u54o+DLF0u49UfB8fFE+h4on0PFE+h 4on0PFE+h4on0PFE+h4on0PFE+h4on0PFE+h4on0PFE+h4on0PFE+h4on0/TX0K/zcXufYq/ Nyn3n9ijj7L3fu+HtXm5MPlG5MPlG5MPlG5MPlG5q01dDVDvsTDnEbnL04TkmHyjc5enDcsX P8Fi5/gsXP8ABYuf4LFz/BYuf4LFz/BYuf4LFz/BYuf4LFz/AAWLn+Cxc/wWLn+P6N/oqb/t G2mo2G2mo2G2mo2G2mo2H4ak1sa4aHKdMbMw0+T4zDJ4TDJ4TDJ4TDJ4TDJ4TDJ4TDJ4TDJ4 TDJ4TDJ4TDJ4TDJ4TDJ4TDJ4TDJ4TDJ4L+lr6Ff5uL3PsVfm5T7z+xRx9l7v3fD2jSmKlY1a b6p0mrTfVOk1ab6p0mrTfVOkqehzU8CToqTXKJNXib1aoeRtqJcxwTSmHg1ab6p0jbUS5gRj cbwWUk6WN4LKSdLG8FlJOljeCyknSxvBZSTpY3gspJ0sbwWUk6WN4LKSdLG8FlJOljeCyknS xvBZSTpY3gspJ0sbwWUk6WN4LKSdLHaL8HCl8hPTeMGL8jF+Ri/IxfkYvyMX5GL8jF+Ri/Ix fkYvyMX5GL8jF+X6a4/tK6tMNxZldWmG4syurTDcWZXVphuLMqr0PoOmr2dS7FbeqXHmgqqa dM7PhzL0svS0cy9LL0tHMvSy9LRzL0svS0cy9LL0tHMvSy9LRzL0svS0cy9LL0tHMvSy9LRz L0svS0cy9LL0tHMvSy9LRzL0svS0cy9LL0tHMvSy9LRzL0sc0tcfEofI8Sh8jxKHyPEofI8S h8jxKHyPEofI8Sh8jxKHyPEofI8Sh8jxKHyPEofI8Sh8jxKHyPEofL9NfQr/ADcXufYq/Nyn 3n9ijj7L3fu+HtW+ZqmxqmxqmxqmxqmxqdSSfM1TYlcJZqmxK4TJYu4JlQWLuCZUFi7gmVBY u4JlQWLuCZUFi7gmVBYu4JlQWLuCZUFi7gmVBYu4JlQWLuCZUFi7gmVBYu4JlQWLuCZUFv6J /oqbxpG5sszYbmyzNhubLM2G5sszYdU2XNGuYp9bGqVp5lv44SzVsSiWatiUSzVsSiWatiUS zVsSiWatiUSzVsSiWatiUSzVsSiWatiUSzVsSiWatiUSzVsSiWatiUSzVsSiWatiVwX9LX0K /wA3F7n2Kvzcp95/Yo4+y937vh7R8qka4capwa4capwa4capwa4capwV1RV4nyKKaaapdr0s h0vwVcmVPm9+CfJmuHGqcFT5vcRN88hsXUmHE8hsXUmHE8hsXUmHE8hsXUmHE8hsXUmHE8hs XUmHE8hsXUmHE8hsXUmHE8hsXUmHE8hsXUmHE8hsXUmHE8hsXUmHE8hsXUmHE8hsXUmHE8h9 eDcN9BVQ8YJhkwyYZMMmGTDJhkwyYZMMmGTDJhkw/wBNcf2ldST22K6kntsV1JPbYrqSe2xV XFUdBqlV6vdZXRpjdRMFVV4xdRx37G/xXDfsb/FcN+xv8Vw37G/xXDfsb/FcN+xv8Vw37G/x XDfsb/FcN+xv8Vw37G/xXDfsb/FcN+xv8Vw37G/xXDfsb/FcN+xv8Vw37Dz8VxmGupMNdSYa 6kw11JhrqTDXUmGupMNdSYa6kw11JhrqTDXUmGupMNdSYa6kw11/TX0K/wA3F7n2Kvzcp95/ Yo4+y937vh7ZuyNUrTzNUrTzNUrTzNUrTzNWpaefCXZEpyuEuyNUrTzJTlFyZtzJX/fH+ir3 SaWmvQmlpr0Jpaa9CaWmvQlVJrmSnK4TS016cZTsSuEp2JXCU7ErhKdiVwlOxK4SnYlcJTsS uEp2JXCU7ErhKdiVwlOxK4SnYlcJTsSuEp2JXCU7ErhKdiVwX9LX0K/zcXufYq/Nyn3n9ijj 7L3fu+FbeFUpNUrRrmTVK0a5k1StGuZNUrRrmSupunTNmez8Xs9s3R+3QqsrBU1hu3BN4Tua pWjXMlTWG7CnBP7dQ2sTYWuM7n7dEroPR5fQWuM7n7dEroPR5fQWuM7n7dEroPR5fQWuM7n7 dEroPR5fQWuM7n7dEroPR5fQWuM7n7dEroPR5fQWuM7n7dEroPR5fQWuM7n7dEroPR5fQWuM 7n7dEroPR5fQWuM7n7dEroPR5fQWuM7n7dEroPR5fQWuM7n7dEroPR5fQWuM7n7dEroPR5fQ WuM7n7dEroPRiduDqeEa58MSatsmrbJq2yatsmrbJq2yatsmrbJq2yatsmrbJq2yatsmrbJK w/0V+6e0dLTptg9o6WnTbB7R0tOm2D2jpadNsFdU0ui19h+Kh/8A+lap0OmP2KxU6WnTbHDx YHdRuWaZ4sDuo3LNM8WB3UblmmeLA7qNyzTPFgd1G5ZpniwO6jcs0zxYHdRuWaZ4sDuo3LNM 8WB3UblmmeLA7qNyzTPFgd1G5ZpniwO6jcs0zxYHdRuWaZ4sDuo3LNM8WB3UblmmeLA7qNxw 0+M04JpwTTgmnBNOCacE04JpwTTgmnBNOCacE04JpwTTgmnH6a+hX+bn/p9ir83Kfef2KOPs vd+74e16/wDTwY/7+/0Ve7/0l/298F/S19Cv83F7n2Kvzcp95/Yo4+y937vhWnh1KTTHg1xB pjwa4g0x4NcQaY8GuIK6Y8KdkeypmE+Rp1OparpsqSwnbgs9x05pnca2mwltJp/bqGtpsJbS RhatipbIWc8zTLiVuVLZCznmaZcStypbIWc8zTLiVuVLZCznmaZcStypbIWc8zTLiVuVLZCz nmaZcStypbIWc8zTLiVuVLZCznmaZcStypbIWc8zTLiVuVLZCznmaZcStypbIWc8zTLiVuVL ZCznmaZcStypbIWc8zTLiVuNTN+MzYmbEzYmbEzYmbEzYmbEzYmbEzYmbEzYmbEzb9NfuntK aVFNsHtKaVFNsHtKaVFNsHtKaVFNsFdCUUckJLwqYttcqiuro6iqmlRTbHCCNuEEbcII24QR twgjbhBG3CCNuEEbcII24QRtwgjbhBG3CCNuEEbcII24QRtxRKckpySnJKckpySnJKckpySn JKckpySnJKckpySnJKc/pr6Ff5uL3PsVfm5T7z+xRx9l7v3fD2qalGnStPI06Vp5GnStPI06 Vp5GnTTp5QadFOnlBp0rTyghKFw8STIhRyIRciFHIhFyNKjoQlB4kmRpUdCEoPEkyNKjoQlB 4kmRpUdCEoPEkyNKjoQlB4kmRpUdCEoPEkyNKjoQlB4kmRpUdCEoPEkyNKjoQlB4kmRpUdCE oPEkyNKjoQlB4kmRpUdCEoPEkyNKjoQlB4kmRpUdCEo4xFiIsRFiIsRFiIsRFiIsRFiIsRFi IsRFiIsRFv01e6QqUlyIVKS5EKlJciFSkuRp006eUDVNFKnkiKaUk+SIpSS9OFyFSr+h4Ul0 LkKlX9DwpLoXIVKv6HhSXQuQqVf0PCkuhchUq/oeFJdC5CpV/Q8KS6FyFSr+h4Ul0LkKlX9D wpLoXIVKv6HhSXQuQqVf0PCkuhchUq/oeFJdC5CpV/Q8KS6FyFSr+h4Ul0LkKlX9DwpLoXIV Kv6HhSXQuQqVf0HpSXTgiEoISghKCEoISghKCEoISghKCEoISghKCEoISghKCEo/TX0K/wA3 F7n2Kvzcp95/Yo4+y937vh7Rc6kaJcaomTRLjVEyaJcaomTRLjVEyV0zVZ8yiKmsH+m6m75K lyfBQ4NOp5Vx0tzG5HM0y/NA1yZHMhVNRVA6W5jcUOLmnU8q46W5jcUOLmnU8q46W5jcUOLm nU8q46W5jcUOLmnU8q46W5jcUOLmnU8q46W5jcUOLmnU8q46W5jcUOLmnU8q46W5jcUOLmnU 8q46W5jcUOLmnU8q46W5jcUOLmnU8q46W5jcUOLmnU8q46W5jcUOLmnU8q46W5jcUOLmnU8q 45c3/on+iuP7SulN7ZZXSm9ssrpTe2WV0pvbLKqJqiOZapprcdOpu2eRVTePV8Yl8Yl8Yl8Y l8Yl8Yl8Yl8Yl8Yl8Yl8Yl8Yl8Yl8Yl8Yl8Yl8V/S19Cv83F7n2Kvzcp95/Yo4+y937vh7VP madupp26mnbqaduppvHU0+KPeZpv3IXC/wDJF+5YhkEIhkX7li/8kX7li/8AJF+5Yv8AyRfu WL/yRfuWL/yRfuWL/wAkX7li/wDJF+5Yv/JF+5Yv/JF+5Yv/ACRfuWL/AMkX7li/8kX7li/8 kX7luEPkadsGnbBp2wadsGnbBp2wadsGnbBp2wadsGnbBp2wadsGnbBp2wQsL9FSf9o1z5sa 582Nc+bGufNjV7+o6fFD/wCTHm/NyW+rnjCnuWnvwhT3LT34Qp7lp78IU9y09+EKe5ae/CFP ctPfhCnuWnvwhT3LT34Qp7lp78IU9y09+EKe5ae/CFPctPfhCnuWnvwhT3LT34Qp7lp78IU9 xxPfjFOCKcEU4IpwRTginBFOCKcEU4IpwRTginBFOCKcEU4Ipx+mvoV/m4vc+xV+blPvP7FH H2Xu/d8PaJOJaUmnVfVp1GnVfVp1GnVfVp1GnVfVp1FS1XpeShp5z4ZFL8zs0hpuYcTwWmCL T0Gqso8MGnfmhp3hltyE7pxdDVWUeGCLT0Gqso8MEWnoNVZR4YItPQaqyjwwRaeg1VlHhgi0 9BqrKPDBFp6DVWUeGCLT0Gqso8MEWnoNVZR4YItPQaqyjwwRaeg1VlHhgi09BqrKPDBFp6DV WUeGCLT0HqjP9E/0VR/aVU6pai7KqdUtRdlVOqWouyqnVLUXZVRql82jVMv1Q6renhgdLeqN +FjN+Ze5YzfmXuWM35l7ljN+Ze5YzfmXuWM35l7ljN+Ze5YzfmXuWM35l7ljN+Ze5YzfmXuW M35l7ljN+Ze5YzfmXuWM35l7ljN+Ze/Bf0tfQr/Nxe59ir83Kfef2KOPsvd+74e1WLkS5zJE ucyRLnMkS5zJGp9RL/UqtvYc11P15GZ9eGWjzOeZmTLRlzz4xqfOTMmWjzOeZmTLR5nPMzJl o8znmZky0eZzzMyZaPM55mZMtHmc8zMmWjzOeZmTLR5nPMzJlo8znmZky0eZzzMyZaPM55mZ MtHmc8zMmWjzOeZlvhHoaZfU0y+ppl9TTL6mmX1NMvqaZfU0y+ppl9TTL6mmX1NMvqaZfU0y +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 KYqVjVpvqnSatN9U6TVpvqnSatN9U6RumjxVPHIfgqnqpZT4HNOw21EuY4KFJq0vKsNtRIoU 3NWl5VhtqJFCm5q0vKsNtRIoU3NWl5VhtqJFCm5q0vKsNtRIoU3NWl5VhtqJFCm5q0vKsNtR IoU3NWl5VhtqJFCm5q0vKsNtRIoU3NWl5VhtqJFCm5q0vKsNtRIoU3NWl5VhtqJFCm5q0vKs NtRIoU3NWl5VhtqJFCm5q0vKsNtRIoU3NWl5VhyovwtexMX5ExfkTF+RMX5ExfkTF+RMX5Ex fkTF+RMX5ExfkTF+RMX5ExfkTF+RdQ/0Vx/aV1aYbizK6tMNxZldWmG4syurTDcWZXWqHO1L ZU3RVPwuNaGn6lVTTpnZ8OZell6WjmXpZelo5l6WXpaOZell6WjmXpZelo5l6WXpaOZell6W jmXpZelo5l6WXpaOZell6WjmXpZelo5l6WXpaOZell6WjmXpZelo5l6WXpaOZeljmlrj4lD5 HiUPkeJQ+R4lD5HiUPkeJQ+R4lD5HiUPkeJQ+R4lD5HiUPkeJQ+R4lD5HiUPkeJQ+R4lD5fp r6Ff5uL3PsVfm5T7z+xRx9n7v3fD2rfM1TY1TY1TY1TY1TY1TboapsSuHiaROpR1JTk8TSJ1 KOpKcniaROpR1JTk8TSJ1KOpKcniaROpR1JTk8TSJ1KOpKcniaROpR1JTk8TSJ1KOpKcniaR OpR1JTk8TSJ1KOpKcniaROpR1JTk8TSJ1KOpKcniaROpR1JTk8TSJ1KOpKcniaROpR1JTk8T SJ1KOpKc/wBE/wBFTeNI3NlmbDc2WZsNzZZmw3NlmbDqmyzI3OMyoG5xmbFv44SzVsSiWati USzVsSiWatiUSzVsSiWatiUSzVsSiWatiUSzVsSiWatiUSzVsSiWatiUSzVsSiWatiUSzVsS iWatiVwX9LX0K/zcXufYq/Nyn3n9ijj7P3fu+HtHyqRrhxqnBrhxqnBrhxqnBrhxqnA69Dc1 WsatNVTn+01eJxVL8OSp83vwWew6ocStip7MWc8h1Q4lbFT2Ys55DqhxK2KnsxZzyHVDiVsV PZiznkOqHErYqezFnPIdUOJWxU9mLOeQ6ocStip7MWc8h1Q4lbFT2Ys55DqhxK2KnsxZzyHV DiVsVPZiznkOqHErYqezFnPIdUOJWxU9mLOeQ6ocStip7MWc8h1Q4lbFT2Ys55DqhxK2Knsx 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 eMS31IlvqRLfUiW+pEt9SLsi76kXfUi76kXfUi76kXfUi76kXfUi76kX+P6a+hX+bi9z7C+P 6/aRlsi2qY9CLapj0ItqmPQi2qY9BpRqTidizplOJg/bqbhDnKccFCk8qnqQ1DRZSeVT1Iah ospPKp6kNQ0WUnlU9SGoaLKTyqepDUNFlJ5VPUhqGhf9zqf/ABKlVDqRUqodSKlVDqRUqodS KqbOpfAqpmmVvBXqhxiLDpqiVy4WPUuWPUuWPUuWPUuWPUuWPUuP+vX6n/16+hX+bi9z7C+P 6/aw4coz4pmYM+KZmDPimZgz4pmYIVcNuW4IbXpCiBUp3pwy9288FDg8ynoNty2WcHmU9Btu Wyzg8ynoNty2WcHmU9BtuWyzg8ynoNty2WcHmU9BtuWxT/X2tYib8yJvzIm/Mib8yJvzLuX/ ANapf8SrU/E90irU/E90irU/E90irU/E90irxrW90iG1Hoh0z8Ruppt8lwsRK7F3JYiV2LuS xErsXcliJXYu5LESuxdyWIldi7kf/YLuXzLuXzLuXzLuXzLuXzLuX/16+hX+bi9z7C+P6/a9 f/Dcvvwq93/xCvoV/m4vc+wvj+v2vXhgwu5hdzC7mF3MLuYXcwu5hdzC7mF3MLuYXcwu5hdz C7mF3MLuYXcwu5hdzC7mF3MLuYXcwu5hdzC7mF3MLuYXcwu5hdzC7mF3MLuYXcwu5hdzC7mF 3MLuYXcwu5hdzC7mF3MLuYXcwu5hdzC7mF3MLuYXcwu5hdzC7mF3MLuYXcwu5hdzC7mF3MLu YXcwu5hdzC7mF3/XV7v/AIhX0K/zcXufYXx/X7XqJz4eX/ZHbb7j6/8AYnxSq/RV7v8A4feq xX0K/wA3F7n2F8f1+0frxyZMmTJkyZMmTJkyZMmTJkyZMmTJkyZMmTJkyZMmTJkyZMmTJkyZ MmTJkyZMmTJkyZMmTJkyZMmTJkyZMmf11P0/8Qr6HtPzcXufYXx/XX7xZTCliWlQ8OSIsrNj iI63PFT4eckOnxbKROLtxHDXpi8XZLdOJsxPTu8uDV0s2K1LtPm/gtzX88Hp0/MadC19Squn +2V/3Ktr+1iVKlslLw2l9SXTny3yadK18pJS8NpfUl058t8jlQ1klU2V87DXLhX8BKlS2U1K nw1RvcsphSzStPe4vD4epLpz5b5Km6fFTtPDxU9LjThVJxEml0LV1J/dyKm6fFTtJVUs6Z4O labetzS6Vq2uSUN5dK/7nW1/axKlS2Sl4bS+pLpz5b5NOla+UkpeG0vqS6c+W+RyoaySqbK+ dhrkVdCv83F7n2F8f11+8PTHiWlicUqN07svpvDYvL4VFPqPUqYajODW9OpQeeKv8zwfhpmZ 8xpcdUXiu7tUftqcLJ+1/wD16C96n+eCtS9Khepqp0z/AGzZFVCv4I/7l7T3WKqmJXM0qNNp +Albwrwmvw6ntJpUabT8BK3hXhKnVmpkL+3Q5KntjhX8BVUxK5lCSp8P7tx+XxKGLGlVavUT qVDj1EreFeEqbqip8sCRVqVMveTVFMtyPwU+6qo+JHh5z6lTdUVPlgrpy9PD9sKp1GpKmm9q U7F85KE/7V/3P2nusVVMSuZpUabT8BK3hXhNfh1PaTSo02n4CVvCvCVOrNTIX9uhyVPbBV0P afm4vc+xCa7GV2MrsZXYyuxldjK7G3YyuxldjK7GV2MrsZXYyuxldjK7GV2MrsZXYyuxldjK 7GV2MrsZXYyuxldjK7GV2MrsZXYyuxldjK7GV2MrsZXYyuxldjK7GV2MrsZXYyuxldjK7GV2 MrsZXYyuxldjK7GV2MrsZXYyuxldjK7GV2MrsZXYyuxldjK7GV2MrsZXYyuxldjK7GV2MrsZ XYyuxldjK7GV2MrsZXYyuxldjK7GV2MrsZXY27GV2MrsZXYyuxldjK7GV2MrsZXYyuxldjK7 GV2MrsZXYyuxldjK7GV2MrsZXYyuxldjK7GV2MrsZXYyuxldjK7GV2MrsZXYyuxldjK7GV2M rsZXYyuxldjK7GV2MrsZXYyuxldjK7Hnp7EKpP4GV2MrsZXYyuxldjK7GV2PPT2PDUn8DK7G V2MrsZXYyuxldjK7GV2MrsZXYyuxldjK7GV2MrsZXYyuxldjK7GV2KrrHI9p+bi9z7D83ls0 7I0acZY/D09SrX/dGcWE4j/xVi4fHjgvzFxeqS6IjeBuLIxAqpcmLTB6iRu7lPbjW5dubPLe YFazcEpchWuxJU36k7NIdXIV3gq8WwmI0y4jYcXSp5ipgl0wmpyPVSLw3E92LzTMfA+nBfon xpuLurI6VVVHhefUd6sT5nwfQp6camtkURVU9Vncd700OepV5o5VOeMESL7F+Ncciihu891B 7C7vnsaZ8TwyieXGroz2n5uL3PsNw7qMMnxfUaiq/U0pOG/FMm/ys3+Vm/ys3+Vm/wArN/lZ v8rN/lZv8rN/lZv8rN/lZv8AKzf5Wb/Kzf5Wb/Kzf5Wb/Kzf5Wb/ACs3+Vm/ys3+Vm/ys3+V m/ys3+Vm/wArN/lZv8rN/lZv8rN/lZv8rN/lZv8AKzf5Wb/Kzf5Wb/Kzf5Wb/Kzf5Wb/ACs3 +Vm/ys3+Vm/ys3+Vm/ys3+Vm/wArN/lZv8rN/lZv8rN/lZv8rN/lZv8AKzf5Wb/Kzf5Wb/Kz f5Wb/Kzf5Wb/ACs3+Vm/ys3+Vm/ys3+Vm/ys3+Vm/wArN/lZv8rN/lZv8rN/lZv8rN/lZv2Z v2Z+7szfszfsyL9mb9mb9mb9mfu7M3+Vm/Zm/Zm/Zm/Zm/Zlp7Mm/Zm/Zi5LFmb9mfu+os29 Gb9mb9mPN/Rm/Zk4XxI8X1Lz2Zv2ZFPKMMi8dGJvVPRjiZ91m/Zm/wArLz2ZviMMm/ZmMKMM epZtF2fu+ppUx0ZN56Mi/wArN/lZF/lZv8rN/lZv8rNPjj/2Iir6mq89Gb/KyL/KxK9v+LN/ lZv8rN/lZKVXZ2KrPxZsybzjDN/lZv8AKzf5Wb9mb/Kzfszf5Wb/ACsacw/RlLhzTizJSq7M UJ+Gy8LElML0Zv8AKzf5WVK+H+09p+bmmq69D93Y/d2P3dj93Y/d2P3dj93YxV2MVdjFXYxV 2MVdjFXYxV2MVdjFXYxV2MVdjFXYxV2MVdjFXYxV2MVdjFXYxV2MVdjFXYxV2MVdjFXYxV2M VdjFXYxV2MVdjFXYxV2MVdjFXYxV2MVdjFXYxV2MVdjFXYxV2MVdjFXYxV2MVdjFXYxV2MVd jFXYxV2MVdjFXYxV2MVdjFXYxV2MVdjFXYxV2MVdjFXYxV2MVdjFXYxV2MVdjFXYxV2MVdjF XYxV2MVdjFXYxV2MVdjFXYxV2MVdjFXYxV2MVdjFXYxV2MVdjFXYxV2MVdjFXYxV2MVdjFXY xV2MVdjFXYxV2MVdjFXYxV2MVdjFXYxV2MVdjFXYxV2MVdjFXYxV2MVdjFXYxV2MVdjFXYxV 2MVdjFXYxV2MVdjFXYxV2MVdjFXYxV2MVdjFXYxV2MVdjFXYxV2MVdjFXYxV2MVdjFXYxV2M VdjFXYxV2P3dj93Y/d2P3dj93Y/d2P3dj93Y/d2P3djNfYzX2P39j9/Y/f2P39jNfY/f2P3d j93Y/d2P3dj93Y/d2IXlP//EACsQAAICAQIEBwEBAQEBAQAAAAERACExQVFhcYGhEJGx0eHw 8cEgQDBQYP/aAAgBAQABPyFVaMPQHnPzE/CT8JPyk/HT8VPxE/NT8nAfZQn2U/Bz8HCH2U/H T8dB8On46fjp+On4afhp+Gn4afhp+Gn4afhp+Gn4afhp+Gn4afhp+Gn5afhp+Gn4afhp+Gn4 afhp+Gn4afhp+On4afhp+Gn4afhp+Gn4afhp+Gn4afhp+Gn4afhp+Gn4afhp+Gn46fhp+Gn4 afhp+Gn4afhp+Gn4afhp+Gn4afhp+Gn4afhp+Gn4afhp+Gn4afhp+Gn4afhp+Gn4afhp+Gn4 afhp+Gn4afhp+Gn4afhp+Gn4afhp+Gn4afhp+Gn4afhp+Wn4afhp+Gn4afhp+Gn4afhp+Gn4 afhp+Gn4afhp+Gn4afhp+Gn4afhp+Gn4afhp+Gn4afhp+Wn4afnp+Gn4afhp+Gn4afjp+en5 6fnJ+en5ifiIxfLO6fiZ+JnEvt2MRAEEgBL6D/YNCSHhOGlpn5yPIEAGVDIIso2T85OIFp2i EAqMQ/oaTR8Ast/YKkGZDD4bEA+JhinEsHmCpMwtAa6qULyASQsoUB0JaRJUK11bApB6QZLR iZEKTkwVCyUIKYI6Dm19YQAkAAgFAGcd0EqJGDgcQaws0l7wajUgorMDVJZASCT3UcMAmoer ihxZQEh3jKMAhYPWBumLoz/IUiLAgBhZhECeErLKECpkRgMJCjLOGitmkB7xJsAQgUl5BGkT WBv9uYvAenLwCwJKIPoYAjOoCad5VILYK6hBQMQ8oGVQDnM4iiAkGgBZjFVJfgY4444/A+Dj jg8XHHHH4Hwcf+HAf/nL/rXgv/UAa+hQLyKrK8oReRXRXlLOb+GEiDWgOBgeXkgTUIQbASpD o9IN+FAmDMIWYcBihEhiHfl7Ov0npfRBP2MRkgYKFWOhwB8ZgYJSQbWnIQjOdR5dpUBAa0ea vSEQ0OYd+cC2USFK8hNINFDpHljHpOV42R5fRFI1QxQbwgELSAAAYFQLhneC94X8ocbhQBRH Qx2hK2uBi/twmYSRkDR/syU2B8ooSCSCCNYBEDk80XD4OdAXBtYGdTwCVdEXvGkwACRSXYmo un7LRFgcLgYMLGiKp5TJOcgJHzg19tGsGIAoBAGEHfA0MyoMssHPMTAy+PgYoooovFRRRReC iiiii8VFFF4KKL/8wSZIA7Rafv8A3n7/AN5aNP71n6/3n6/3n7/3gAAMIWUfpo/TR+mj9FA3 bUAr7z0XqIQLYBu0+z5T7PlPs+Uf0P7H9D+x/Q/s+j5R/Y/sf2P7H9j+x/S/sf0v7Pp+UP2+ 6fS90+37oPrv7Pq+6fR90A+l/Yvtf2L639i+t/Yvpf2L639i+t/Z9f3RfW/sX0v7F9r+xfS/ sX1v7F9L+xfS/sX0v7Po+6fZ90+z7p9n3T7Pun2fdPu+6fZ90+z7p9n3T7Pun2fdPs+6fZ90 +z7p9n3T7Pun2fdPu+6fZ90+j7p9H3T6Pun0fdPs+6fZ90+z7p9n3T7Pun3fdPu+6fZ90+z7 p9n3T7Pun2fdPs+6fZ90+z7p9n3T7Pun2fdPs+6fZ90+z7p9n3T7Pun2fdPs+6fZ90+z7p9n 3T7Pun2fdPs+6fZ90+z7p9n3T7Pun2fdPs+6fZ90+z7p9n3T7Pun2fdPs+6fZ90+z7p9n3T7 Pun2fdPs+6fZ90+z7p9n3T7Pun2fdPs+6fZ90+z7p9n3T7Pun2fdPs+6fZ90+z7p9n3T7Pun 2fdPs+6fZ90+z7p9n3T7Pun2fdPs+6fZ90+z7p9n3T7Pun2fdPs+6fZ90+z7p9n3T7Pun2fd Ps+6fZ90+z7p9n3T7Pun0fdPo+6fR90+j7p9H3RfS/sX0v7F9L+xfS/s+j5T6PlPo+U+z5T7 PlPs+U+z5T7PlPs+UIAYFk17z0Xo8JGRBtT1A84IGc1AENAwMGMeCz2gw33GZWgVdnKKQm0I 8JQYDI6B+sUBQKokkJy5NyDQ47QEBNRlkJaDqF4Q6Ao9T72lpkEW6cJj3I5wDrDwoi+bC0ze k1M2Bg08QS5uUt59oDAmQFmscN4CAhgatcc4kId7heFyihQnrx4RisA2Qgv7HmEaEFEw8Rg1 ZefhAQY2S2hY0CEzVwi2ELi3JEHkvRRYRHhKRiEAWd0LmYfQUOsJ6EsBJpDXjD0ARxRLzlbI jzrntEsm8bH2/wD3n/8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD9vN+k9L6PCVQSATwG s59gojwMEhZgTAsvEQCqGglCIBPAaw1MiIcOR1Slx0KbIQgGAFKopuyPIqDdJSAAYWAYoeAF FKzgdYSYUQAswLwZgAXsooSLgpVdhzzgkLMCYFl4jSQEMBKhb9hAAcAooW8NnLxRh52EJWND WA2GKEA4n7zWkD2z33jBA2BGCusMUIgMnWKNMwgFsPowHgE1IQIRys6gSgXvCnBaBD1zFAB9 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 frGfrGfrGfrGfrGfrGfrGfrGfrGfrGApADIyHiEDyPWT9Yz9Yz9Yz9YxED3CAzVWZ/UM/WM0 SppxczuBAYMFHMxGBbkz9Qz9Yz9Yz9Yz9Yz9Yz9Yz9Yz9Yz9Yz9Yz9Yz9Yz9Yz9Yz9Yzv0XP sp9lAVjyp+sZ+sZ+sZ+sZ+sZ+sZ+sZ+sZ+sZ+sZ+sYTKIbQNGpmfomfomfomfomfomfomfom fomfomfomfomfomfomfomfomfomfomfomfomfomfomfomfomfomfomfomfomfomfomfomfom fomfomNJADDIZhCw8KP0TP0TP0TP0TAEwCG7RuKJ/RM/RM0RtmZ6nox78boDIbdAOGAY5mfo mfomfomfomfomfomfomfomfomfomfomfomfomfomfomfomfomfomfomfomfomfomfomfomfo mfomfomfomfomfomfomIaIHjlPS+jwk0YqKkAbp0HLxMoqnIBuHQcPBgQMkNsH68RsQtuH/w RMkDAUJn2FkPx1mEEG7jeUpUTcfCA4FhI1jyIs1CpgAEiH8RxAkBQYTHJPvAB/UGoiagAoH8 IICNQCA4GikbXBpQXj9Ug88YLMQ98NYxQEIYdZlwJArrMpeoGukOdWDoq5ShAKudq/7s9v8A +AMgwMgUJnHJY6EsWBRbiEjZMVymnOyxX535oSliAGIXHlcoCGeigkd0jnrEdxVIY9oZi4qw xA4Ai6EdOynsYRxskAZqIbKQZyQEBBsaPlFWALoQUyIsBtArSX4n/ce/9DPSejwl3vhrv/hf TbTF4VVgOMBK+LK+LK+LK+LK+LK+LK+LK+LK+LK+LK+LK+LK+LK+LK+LK+LK+LK+LK+LK+LK +LK+LK+LK+LK+LK+LK+LK+LK+LK+LK+LK+LK+LK+LK+LK+LK+LK+LK+LK+LK+LK+LK+LK+LK +LK+LK+LDM4WiT6hlfFlfFlfFlfFlfFlfFlfFlfFlfFlfFlfFlfFlfFlfFlfFlfFlfFlfFlf FlfFlfFlfFlfFlfFlfFlfFlfFlfFg0TBHAuEDwVkVPzM/Mz8zPzM/Mz8zPzM/Mz8zPzM/Mz8 zPzM/Mz8zPzM/Mz8zPzM/Mz8zPzM/Mz8zPzM/Mz8zPzM/Mz8zPzM/Mz8zPzM/Mz8zPzM/Mz8 zPzM/Mz8zPzM/Mz8zPzM/Mz8zCIBQeGEACBwz8zPzM/Mz8zPzM/Mz8zPzM/Mz8zPzM/Mz8zP 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 4ELOyEsU4ELOyEsU4ELOyEsU4Q1QkBTjgknmbhDVCQF4AcECZDhDCewr5OXCZFkwCCLAEjvA hZ2QlinCGqEgKAcECZDhDCewr5OXCZFkwAcECZDhDCewr5OXCZFkwAcECZDhDCewr5OXCZFk wPHT12gQs7ISxThDVCQFHRgDxELiOdD+4ncoT+xsgB4iFxHOh/cTuUJ/Y2QA8RC4jnQ/uJ3K E/sbIAeIhcRzof3E7lCf2NkAPEQuI50P7idyhP7GyAHiIXEc6H9xO5Qn9jZADxELiOdD+4nc oT+xsgB4iFxHOh/cTuUJ/Y2QA8RC4jnQ/uJ3KE/sbIAeIhcRzof3A5yhP74hXRt2gV0bdoFd G3aBXRt2gV0bdoc3e6nBQcmKCg5MUFByYoKDkxQUHJigoOTFBQcmKCg5MUFByYoCVNoX+TvP pDEPL0Ttsd7I+vtHqvQ/5GGtAIAa3lii7M+csUXZnzlii7M+csUXZnzlii7M+c2LlR85m+Qj 57QhLEgBfgwDcqlCm7I0Y7yzYhkGKA3CqUKbsjRjvLNiGQYoDcKpQpuyNGO8s2IZBigNwqlC m7I0Y7yzYhkGKA3CqUKbsjRjvLNiGQYoDcKpQpuyNGO8s2IZBigNwqlCm7I0Y7yzYhkGKA3C qUKbsjRjvLNiGQYoDcKpQpuyNGO8s2IZBigNwqlCm7I0Y7yzYhkGKA3CqUKbsjRjvLNiGQYo DcKpQpuyNGO8s2IZBigNwqlCm7I0Y7yzYhkGKA3CqUKbsjRjvLNiGQYoDcKpQpuyNGO8s2IZ BigNwqlCm7I0Y7x9YBRB8PT/AOOBrMWaw3xABMF5DeLgAmC8hvFwATBeQ3i4AJgvIbxcAEwX kN4uUCA3Ye1wCqtFgPWoRC6YMF4EQBAZ2nllDDDII7NwiCIDO08soYYZBHZuEQRAZ2nllDDD II7NwiCIDO08soYYZBHZuEQRAZ2nllDDDII7NwiCIDO08soYYZBHZuEQRAZ2nllDDDII7Nwi CIDO08soYYZBHZuEQRAZ2nllDDDII7NwiCIDO08soYYZBHZuEQRAZ2nllDDDII7NwiCIDO08 soYYZBHZuEQRAZ2nllDDDII7NwiCIDO08soYYZBHZuEQRAZ2nllDDDII7NwiCIDO08soYY5B HZv/AIr0/wDJ3n0no/RAI4Y72R9faPVeh/yMKKsgzWssI+t1tnlLCPrdbZ5Swj63W2eUsI+t 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 5aJPSabjThBLkAAeINYAUYKmICSMmEnqYgJIyYSepiAkjJhJ6mICSMmEnqYgJIyYSepnVkyH q3BwiVFhd4PIe7JIXfwFAL6FQuonjgUjJuRgUF9CoXUTxwKRk3IwKC+hULqJ44FIybkYFBfQ qF1E8cCkZNyMCgvoVC6ieOBSMm5GBQX0KhdRPHApGTcjAoL6FQuonjgUjJuRgUF9CoXUTxwK Rk3IwKC+hULqJ44FIybkYFBfQqF1E8cCkZNyMCgvoVC6ieOBSMm5GBQX0KhdRPHApGTcjAoL 6FQuonjgUjJuRgUF9CoXUTxwKRk3IwKC+hULqJ44FIybkYFBfQqF1E8cChk3I+GiDgkGkHBI NIOCQaQcEg0g4JBpBwSDSDgkGkHBINIOCQaQcEg0g4JBpBwSDSDgkGkHBINIOCQaQMpAMf5O 8+k9H6J22O9n7faPW+h8cPDgjErGMyy7aA8OWXbQHhyy7aA8OWXbQHhyy7aA8OKQElsgjTwI vAEFJRDwzCA8XGuv98CMwCSBYcAzWReBB6yoW4NYQjASQLDgGayLwIPWVC3BrCEYCSBYcAzW ReBB6yoW4NYQjASQLDgGayLwIPWVC3BrCEYCSBYcAzWReBB6yoW4NYQjASQLDgGayLwIPWVC 3BrCEYCSBYcAzWReBB6yoW4NYQjASQLDgGayLwIPWVC3BrCEYCSBYcAzWReBB6yoW4NYQjAS QLDgGayLwIPWVC3BrCEYCSBYcAzWReBB6yoW4NYQjASQLDgGayLwIPWVC3BrCEYCSBYcAzWR eBB6yoW4NYA9D0Yll20B4cIDxca6/wBhAWgYFhwiyQRa3jiDGohgA4Fqw4RZIItbyxVg6eHp /wDr689P/MDWFPyQDzERMQiAGtaRExCIAa1pETEIgBrWkRMQiAGtaRExCIAa1pBoLUG88AoW cSGDazVgmGZ6AWAd8uXgxBkd512DCGSLMzfWMSZHeddgwhkizM31jEmR3nXYMIZIszN9YxJk d512DCGSLMzfWMSZHeddgwhkizM31jEmR3nXYMIZIszN9YxJkd512DCGSLMzfWMSZHeddgwh kizM31jEmR3nXYMIZIszN9YxJkd512DCGSLMzfWMSZHeddgwhkizM31jEmR3nXYMIZIszN9Y xJkd512DCGSLMzfWMRRR3nrAoZIMs7xiKKO89YFDJBlneMRRR3nrAoZNizv/AMV6f+TvPpPS +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 vzghNe5cApquiE6geb84ITXuXAKarohOoHm/OCE17lwCmq6ITqB5vzghNe5cApquiE6geb84 ITXuXAKarohOoHm/OCE17lwCmq6ITqB5vzghNe5cApquiE6geb84ITXuXAKarohOoHm/OCE1 7lwCmq6ITqB5vzghNe5cApquiE6geb84YBrOpfgB7AUM03GnCabjThNNxpwmm404TTcacJpu NOE03GnCabjThNNxpwmm404TTcacJpuNOE03GnCabjThNNxpwglyAAPEGsAKMFTEBJGTCT1M QEkZMJPUxASRkwk9TEBJGTCT1MBGuRd+eYAcah80HCJUWF3g8h7skhd/AUAvoVC6ieOBSMm5 GBQX0KhdRPHApGTcjAoL6FQuonjgUjJuRgUF9CoXUTxwKRk3IwKC+hULqJ44FIybkYFBfQqF 1E8cCkZNyMCgvoVC6ieOBSMm5GBQX0KhdRPHApGTcjAoL6FQuonjgUjJuRgUF9CoXUTxwKRk 3IwKC+hULqJ44FIybkYFBfQqF1E8cCkZNyMCgvoVC6ieOBSMm5GBQX0KhdRPHApGTcjAoL6F QuonjgUjJuRgUF9CoXUTxwKGTcj4aIOCQaQcEg0g4JBpBwSDSDgkGkHBINIOCQaQcEg0g4JB pBwSDSDgkGkHBINIOCQaQcEg0g4JBpAykAx/k7z6T0fonbY72R9faPVeh/yMEYlYxmWXbQHh yy7aA8OWXbQHhyy7aA8OAiZhCoZ15QMxoCJaNhF4AgpKIeGYQHi411/vgRmASQLDgGayLwIP WVC3BrCEYCSBYcyEQHFGhhGwyHvDKAJEk9oRkBksn1yoW4NYQjASQLDgGayLwIPWVC3BrCEY CSBYcAzWReBB6yoW4NYQjASQLDgGayLwIPWVC3BrCEYCSBYcAzWReBB6yoW4NYQjASQLDgGa yLwIPWVC3BrCEYCSBYcAzWReBB6yoW4NYQjASQLDgGayLwIPWVC3BrCEYCSBYcAzWReBB6yo W4NYQjASQLDgGayLwIPWVC3BrCEYCSBYcAzWReBB6yoW4NYQjASQLDgGayLwIPWVC3BrCEYC SBYcAzWReBB6yoW4NYQjASQLDgGayLwIPWVlgyGvh6f/ABwNYU/JAPMRExCIAa1pETEIgBrW kRMQiAGtaRExCIAa1pMigAIE15coiFTljtYChZxIYNrNWCYZnoBYB3y5eDEGR3nXYMIZIszN 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 mhqNupoajbqGAJBYOo8QayvKPkw4EBDFKLftAgIYpRb9oEBDFKLftAgIYpRb9poi8wA3/kA2 BAOPqtPiMBv7B6M0YF0AEsHfx4CAAODBEUraChCAARwYIilbQUIQACODBEUraChCAARwYIil bQUIQACODBEUraChCAARwYIilbQUIQACODBEUraChCAARwYIilbQUIQACODBEUraChCAARwY IilbQUIQACODBEUraChCAARwYIilbQUIQACODBEUraChCAARwYIilbQUIQACODBEUraChCAA RwYIilbQUo8NEYAEbiMACNxGABG4jAAjcRgARuIwAI3EYAEbiMACNxGABG4jAAjcRgARuIwA I3EYAEbiMACNxGABG4giZAhZH+TvPpPR+idtjvZ7z6D/AB2n1PgCKIQwRPR1qejrU9HWp6Ot QhSIGCBCGplygIBGIy5EGAgYAC8AQBOIc2vaYRaQbAQUgnEObXtMItINgIKQTiHNr2mEWkGw EFIJxDm17TCLSDYCCkE4hza9phFpBsBBSCcQ5te0wi0g2AgpBOIc2vaYRaQbAQUgnEObXtMI tINgIKQTiHNr2mEWkGwEFIJxDm17TCLSDYCCkE4hza9phFpBsBBSCcQ5te0wi0g2AgpBOIc2 vaYRaQbAQUgnEObXtMItINgIKQTiHNr2mEWkGwEFIJxDm17TCJaB4A8ABIhgjE0NRJVNDUSV TQ1ElU0NRJVNDUSVTQ1ElU0NRJVNDUSVTQ1ElU0NRJVNDUSVTQ1ElU0NRJVNDUSVTQ1ElUEA QAgNB4g1gAgNg+yOuugIR110BCOuugIR110BCAJixlSj6+zRBQDtBHOCmgXgIAABGxgAQBBy FmdqwQAIARsYAEAQchZnasEACAEbGABAEHIWZ2rBAAgBGxgAQBByFmdqwQAIARsYAEAQchZn asEACAEbGABAEHIWZ2rBAAgBGxgAQBByFmdqwQAIARsYAEAQchZnasEACAEbGABAEHIWZ2rB AAgBGxgAQBByFmdqwQAIARsYAEAQchZnasEACAEbGABAEHIWZ2rBAAgBGxgAQBByFmdqwQAI ARsYAEAQchZnasEACAEbGABAEHIWZ2rBAAgBGxgAQBByFmeRMHhoiAADYRAABsIgAA2EQAAb CIAANhEAAGwiAADYRAABsIgAA2EQAAbCIAANhEAAGwiAADYRAABsIgAA2EESAALA/wAnefSe j9E7bHez3n0H+O0+p8DFkgCEgo6y26liTzLbqWJPMtupYk8y26liTzOLklagOYC4O7AcurMB KX9U4qK44tJCwSWcA/3w1DcClCB2hgBowwxgLTMNQpQgdoYAaMMMYC0zDUKUIHaGAGjDDGAt Mw1ClCB2hgBowwxgLTMNQpQgdoYAaMMMYC0zDUKUIHaGAGjDDGAtMw1ClCB2hgBowwxgLTMN QpQgdoYAaMMMYC0zDUKUIHaGAGjDDGAtMw1ClCB2hgBowwxgLTMNQpQgdoYAaMMMYC0zDUKU IHaGAGjDDGAtMw1ClCB2hgBowwxgLTMNQpQgdoYAaMMMYC0zDUKUIHaGAGjDDGAtMw1ClCB2 hgBowQBTy8PT/wCOBrDEEige1iFgigIWEOsmFgigIWEOsmFgigIWEOsmFgigIWEOsmFILAIY Bt2eUqf1j53ByoRWA1b0NZMFCSAAhhNvU8vAWAGRygMQ3N3MOTzgMJkcoDENzdzDk84DCZHK AxDc3cw5POAwmRygMQ3N3MOTzgMJkcoDENzdzDk84DCZHKAxDc3cw5POAwmRygMQ3N3MOTzg MJkcoDENzdzDk84DCZHKAxDc3cw5POAwmRygMQ3N3MOTzgMJkcoDENzdzDk84DCZHKAxDc3c w5POAwmRygMQ3N3MOTzgMJkcoDENzdzDk84DCZHKAxDc3cw5POAwmRygMQ3N3Oaef/Fen/k7 z6T0fonbYDTESwDGYsJygX+HxOGA+DEYmCpoJ6j88zQT1H55mgnqPzzNBPUfnmFYGEu3zzLS kCbEyXzzNDOrJvnmWMXEvwMgNV0QnUDzfnBCa9y4BTVdEJ1A835wQmvcuAU1XRCdQPN+cEJr 3LgFNV0QnUDzfnBCa9y4BTVdEJ1A835wQmvcuAU1XRCdQPN+cEJr3LgFNV0QnUDzfnBCa9y4 BTVdEJ1A835wQmvcuAU1XRCdQPN+cEJr3LgFNV0QnUDzfnBCa9y4BTVdEJ1A835wQmvcuAU1 XRCdQPN+cEJr3LgFNV0QnUDzfnBCa9y4BTVdEJ1A835wQmvcuAU1XRCdQPN+cEJr3LgFNV0Q nUDzfnDANZ1L8APYChmm404TTcacJpuNOE03GnCabjThNNxpwmm404TTcacJpuNOE03GnCab jThNNxpwmm404TTcacJpuNOEEuQAB4g1gBRgqYgJIyYSepiAkjJhJ6mICSMmEnqYgJIyYSep hMSC1xknrmApAzf6oBoJGsEnqYPIe7JIXfwFAC+hUKAoeKAE3UjARF9CoUBQ8UAJupGAiL6F QoCh4oATdSMBEX0KhQFDxQAm6kYCIvoVCgKHigBN1IwERfQqFAUPFACbqRgIi+hUKAoeKAE3 UjARF9CoUBQ8UAJupGAiL6FQoCh4oATdSMBEX0KhQFDxQAm6kYCIvoVCgKHigBN1IwERfQqF AUPFACbqRgIi+hUKAoeKAE3UjARF9CoUBQ8UAJupGAiL6FQoCh4oATdSMBEX0KhQFDxQQDdS PhogANBpAAaDSAA0GkABoNIADQaQAGg0gANBpAAaDSAA0GkABoNIADQaQAGg0gANBpAAaDSA A0GkqdAP8nefSej9E7bHceo/7CMSsYzLLtoDw5ZdtAeHLLtoDw5ZdtAeHCGlbEA1nk46EUzA 3Qz/AGFICsJg9CEIDxca6/3wIzAJIFhwDNZF4EHrKhbg1hCMBJAsOAZrIvAg9ZULcGsIRgJI FhwDNZF4EHrKhbg1hCMBJAsOAZrIvAg9ZULcGsIRgJIFhwDNZF4EHrKhbg1hCMBJAsOAZrIv Ag9ZULcGsIRgJIFhwDNZF4EHrKhbg1hCMBJAsOAZrIvAg9ZULcGsIRgJIFhwDNZF4EHrKhbg 1hCMBJAsOAZrIvAg9ZULcGsIRgJIFhwDNZF4EHrKhbg1hCMBJAsOAZrIvAg9ZULcGsIRgJIF hwDNZF4EHrKhbg1hCMBJAsOAZrIvAg9ZULcGsIRgJIFhwDNZF4EHrKhbg1hCMBJAsOAZrIvA g9ZWWDIa+Hp/8cDWFPyQDzERMQiAGtaRExCIAa1pETEIgBrWkRMQiAGtaRClQCGNeXKFbpSB eoqEXqdA2wyoZnoBYB3y5eDkBFHeesChkgyzvGIoo7z1gUMkGWd4xFFHeesChkgyzvGIoo7z 1gUMkGWd4xFFHeesChkgyzvGIoo7z1gUMkGWd4xFFHeesChkgyzvGIoo7z1gUMkGWd4xFFHe esChkgyzvGIoo7z1gUMkGWd4xFFHeesChkgyzvGIoo7z1gUMkGWd4xFFHeesChkgyzvGIoo7 z1gUMkGWd4xFFHeesChkgyzvGIoo7z1gUMmxZ3/4r0/8nefSej9E7bHceo/7WISQgjIib+0W 4m/tFuJv7Rbib+0W4Bu7APmpSxnpLZMcqmYiloW/JSoYiWSyfBgCpdKFt2Zo/SWbEckxQCoX ShbdmaP0lmxHJMUAqF0oW3Zmj9JZsRyTFAKhdKFt2Zo/SWbEckxQCoXShbdmaP0lmxHJMUAq F0oW3Zmj9JZsRyTEtGYIe8JN2ZQP0jHMckiDAGouhCTdmUD9IxzHJIgwBqLoQk3ZlA/SMcxy SIMAai6EJN2ZQP0jHMckiDAGouhCTdmUD9IxzHJIgwBqLoQk3ZlA/SMcxySIMAai6EJN2ZQP 0jHMckiDAGouhCTdmUD9IxzHJIgwBqLoQk3ZlA/SMcxySIMAai6EJN2ZQP0hCAkEt+CwxDyG Z0ErXOgla50ErXOgla50ErXAZSTpbpqGC3TUMFumoYLdNQwW6ahgt01DBbpqGC3TUMFumoYL dCtMgA8j4g1gEvg+2AHvzQ+0APfmh9oAe/ND7QA9+aH2hYy5aj0QFAUIABwQECk0KoY8hLxJ jKH28BYABI4iEL1NV2iS6xQGECRxEIXqartEl1igMIEjiIQvU1XaJLrFAYQJHEQhepqu0SXW KAwgSOIhC9TVdokusUBhAkcRCF6mq7RJdYoSAhhxELeoQrtACfOELCCcQIW9QhXaAE+cIWEE 4gQt6hCu0AJ84QsIJxAhb1CFdoAT5whYQTiBC3qEK7QAnzhCwgnECFvUIV2gBPnCFhBOIELe oQrtACfOELCCcQIW9QhXaAE+cIWEE4gQt6hCu0AJ84QsIJxAhb1CFdocQJPBoibmBXE3MCuJ uYFcTcwK4m5gVwiBXqbMAuqygF1WUAuqygF1WUAuqygF1WUAuqygF1WUAuqyhLiaGcv8nefS ej9E7bHceo/7BFVQHjWWMO9cz8pYw71zPyljDvXM/KWMO9cz8oGAuk8yhxk04gjk/wCzIkiT JDmnBoLeEYPgdIRFCyoQBUSARhfSFI6oAFwKIiJVlQgCokAjC+kKR1QALgURESrKhAFRIBGF 9IUjqgAXAoiIlWVCAKiQCML6QpHVAAuBRERKsqEAVEgEYX0hSOqABcCiIiVZUIAqJAIwvpCk dUAC53J9f+/0/wDXr/8AqDWFSDOHmJghKICBeN5ghKICBeN5ghKICBeN5ghKICBeN4iRcCEE Ll5KkJLyf9jCHMAgsfM7xrSUWCCP54OhR8Y616IZAUfCMsHxjrXohkBR8IywfGOteiGQFHwj LB8Y616IZAUfCMsHxjrXohkBR8IywfGOteiGQFHw/wDq1HefSej9E7bHceo/7GoAYEh7zYeV Hyc2HlR8nNh5UfJzYeVHycPREyy4ZrznkW26IVSkMDhCMCmQC8DoCII2HCQOyQSca6wpAtgF AoCIF2HCQOyQSca6wpAtgFAoCIF2HCQOyQSca6wpAtgFAoCIF2HCQOyQSca6wpAtgFAoCIF2 HCQOyQSca6wpAtgFAoCIF2HCQOyQSca6wpAtgFCBgQWaP/eBLBNgdpyTVdd1OSarrupyTVdd 1OSarrupyTVdd1AIAbgd/wD1BrMzTz2xAhZ2QlinAhZ2QlinAhZ2QlinAhZ2QlinCagSMUDk +cJiegJ/pc44JJ5m4Q1QkBeDoMAeIl5R0P6ikDkCjKwB4iXlHQ/qKQOQKMrAHiJeUdD+opA5 AoysAeIl5R0P6ikDkCjKwB4iXlHQ/qKQOQKMrAHiJeUdD+opA5Av/gWiAAOWFAAHLCgADlhQ ABywoAA5YUAkceS/9zvPpPR+idtjuPUf9u0f3/8AGj0vGgJQaz7nL/8AIHefSej9E7bHceo/ 7K5CPtCgR9t7T7b2n23tPtvafbe0+29p9t7T7b2n23tPtvafbe0+29p9t7T7b2n23tPtvafb e0+29p9t7T7b2n23tPtvafbe0+29p9t7T7b2n23tPtvafbe0+29p9t7T7b2n23tPtvafbe0+ 29p9t7T7b2n23tPtvafbe0+29p9t7T7b2n23tPtvafbe0+29p9t7T7b2n23tPtvafbe0+29p 9t7T7b2n23tPtvafbe0+29p9t7T7b2n23tPtvafbe0+29p9t7T7b2n23tCESVD60j7R9o20z 4DWfc5f/AJA7z6T0fonbY7j1H/bsEJCWEUGhnqD1/wDhv/8A/wD/AO2IWA9Uopkz/wDC/wD/ AP8A/wCwXDxJsyBrp4jWfc5f/jwc2nkE7z6Q+36J22O49R/2ynK/fOLlEFF3/ekTf96RN/3p E3/ekTf96RN/3pE3/ekTf96RN/3pE3/ekTf96RN/3pE3/ekTf96RN/3pE3/ekTf96RN/3pE3 /ekTf96RN/3pE3/ekTf96RN/3pE3/ekTf96RN/3pE3/ekTf96RN/3pE3/ekTf96RN/3pE3/e kTf96RN/3pE3/ekTf96RN/3pE3/ekTf96RN/3pE3/ekTf96RN/3pE3/ekTf96RN/3pE3/ekT f96RN/3pE3/ekTf96RN/3pE3/ekTf96RN/3pE3/ekTf96RN/3pE3/ekTf96RN/3pE3/ekTf9 6RN/3pE3/ekTf96RN/3pE3TynlPKeU8oJymI++U6J0TonROidE6J0TonROidE6J0TonROidE 6J0TonROidE6J0TonROidE6J0TonROidE6J0TonROidE6J0TonROidE6J0TonROidE6J0Ton ROidE6J0TonROidE6J0TonROidE6J0TonROiHOk8p3X0novRO2x3HqP+2fO9BCkCWTSEJXZo FsPCjq0wYwTw8ppJc/k0gWh3S2HjpNGg1oS+K4GB1ObYtGGgSnwhSkBCtAFrMEQCE6gFvGIg AkCWC4qBTAewJ7waWsFofBcGySK/MB4FNZLAy6hVHFCASFjQ3XGNNq/lf/SMlhBBARyhgK8U SqEAIzUywcK8pwgD5hdMiXoYCQcOHlcRACM1MsHCvKcIA+YXTIh0iLQAuFRZA57nrHOEe4QT s/6hgK8USqEKEHM3OEKQJZNIQJ6Q3u5CExCwBOV8JwgD5hdMiZjhEcqeeUBYBhqMoas7AvbM rniAU6iTuIQFbeq4GXTCCr6teszHCI5U88pU6BB5eHnLLukJiygAHBb1XCY0iyCNiIcNkCen /wBMyWEEEBHKGArxRKoQAjNTLBwrynCAPmF0yJehgJBw4eVxEAIzUywcK8pwgD5hdMiHSItA C4VFkDnuesc4R7hO7+k9H6J22O49R/2z53oI8CWhxxHmY9W8AdjUcVRpk5G3kJSs8l+aN2GC QdOSjx0EDKKevWOgIhZSXkQvCzxgvaRhbUvaWIALJBYJLQ4RapsxC9aGfeV4IDIgnmbhpXEH JIYlvzcMQhAASf4PAUCRbte9V3hwACyYgrFcHiEYSBBxr/6X320MrQQiVH8gcYjJlq09hHEH Gtmwb8hEENotiAQ1XAQOMRky1aewjiDjWzYN+QlQrhALApQukHyIajfMxEgABeqfvBOz/qGV oIRKj+RaQAAvp6f2Er2LjQdHncFWYA8WneKIA0MI6nEcQca2bBvyEukeieC1EIQLIGZxoAAz gsBKGhFcB4pUZTRZCIAcwGYAA26ln5S6R6J4LURaN0cTXgK2kC7JOneAJYgB4genHaEWViSW 5LgkMIIAQeX/ANP77aGVoIRKj+QOMRky1aewjiDjWzYN+QiCG0WxAIargIHGIyZatPYRxBxr ZsG/ISoVwgFgUoXSD5ENRvmYiQAAvVP3nd/SF2PRO2wBQgfWs+r5T6vlPq+U+r5T6vlPq+UY I3s/Zn2fKfZ8p9nyn2fKfZ8p9nyn2fKfZ8p9nyn2fKfZ8p9nyn2fKfZ8p9nyn2fKfZ8p9nyn 2fKfZ8p9nyn2fKfZ8p9nyn2fKfZ8p9nyn2fKfZ8p9nyn2fKfZ8p9nyn2fKfZ8p9nyn2fKfZ8 p9nyn2fKfZ8p9nyn2fKfZ8p9nyn2fKfZ8p9nyn2fKfZ8p9nyn2fKfZ8p9nyn2fKfZ8p9nyn2 fKfZ8p9nyn2fKfZ8p9nyn2fKfZ8p9nyn2fKfZ8p9nyn2fKfZ8p9nyn2fKfZ8p9nyn2fKfZ8p 9nygASW5yf3Ps+U+z5T7PlPs+U+z5T7PlPs+U+z5T7PlPs+U+z5T7PlCD3vvG+b7xvm+8b5v vG+b7xvm+8b5vvG+b7xvm+8b5vvG+b7xvm+8BMed943zfeN833jfN943zfeN833jfN943zfe N833jfN943zfeN833jfN94wz9PON833jfN943zfeN833jfN943zfeN833jfN943zfeB/o9Z+ l94Fjuf3n2fKfZ8p9nyn2fKfZ8p9nyjBqPveftPeW6Lj959nyn2fKfZ8p9nyn2fKfZ8p9nyn 2fKfZ8p9nyn2fKfZ8p9nyn2fKfZ8p9nyn2fKfZ8p9nyn2fKc3PZzlH9wnbYQwRpQlZsxqDIJ IOfJd4XdhUJTFaiAsEDuBRDlbLX/AOU9cQsyImBIc5rqEoNP4gIROVAQEhkVmPyDNwjnUmYQ ARNXDM8tLLIuiJoMGsGECGO5wjrVVu4YSzTnA80LWuSgI7omcOBYaBXmOWCMmo6GRxmzCKJm ySB8CxMAZg01YEBANSglaPaPuQBf3aGqdoS8PlCoDESccQDNvZGZWXJuYVqXGAEVwfPSLQyA gA4z8TjcHMYskAANk4iRFkvmhpGBph1XL+w5BoRTYmBJABotsqIgvdEkV1EvYoAfOowRuOxK pDJsWQS3IzFO4PqfBqfBwlmJuoYuoBMYF2GmcwYBWBAEwbPHxjtfp4BC5EQiFrIVhl0b4dJa UUg8n8M2AgzD35Q+FgZCIAoepMNlmwYoi+NDjwEMkEQQaI5R5CZvUS2MIZZtFJmRh2Udel+U IlESSLJmvh99tB8n+IBIRkhBGRbmsIpYE8BfnvAChArBxtaIgM+k+v2J9fsT6/Yn1+xPr9if X7E+v2J9fsT6/Yn1+xPr9ifX7E+v2J9fsT6/Yn1+xPr9ifX7E+v2J9fsT6/Yn1+xPr9ifX7E +v2J9fsT6/Yn1+xPr9ifX7E+v2J9fsT6/Yn1+xPr9ifX7E+v2J9fsT6/Yn1+xPr9ifX7E+v2 J9fsT6/Yn1+xPr9ifX7E+v2J9fsT6/Yn1+xPr9ifX7E+v2J9fsT6/Yn1+xPr9ifX7E+v2J9f sT6/Yn1+xPr9ifX7E+v2J9fsT6/Yn1+xPr9ifX7E+v2J9fsT6/Yn1+xPr9ifX7E+v2J9fsT6 /Yn1+xPr9ifX7EICP3cpWleQF7pU4mAdN8lULIkCX3cJe1Nws39hMNUkfvP5Ci/q6S9o+ZIA kFfeIxhm43Eq+RR5KCP1SxdG7Q9JwMn9hBiiA/UoIIFgvtiAYW54kAKU0a3lAi/q6Qs+rtGA Fu/lMEM3eWCtUEnBvoqlxE2Ugww4/CBBCgQ/KAKG8mDyi4cX2EDQIdYgTEBBP4IEACg+2IUB 9HlEhtGCAmUkKzNjymkvmKQAKwAcXlMyIBR3iI0AFlg5zSRENLtAPL3ko8oALFufggY+ztAY Sa8Dn1+xPr9iAZJwdHLaE7Uks05POWkcE5fX7EJj1QvoIFpUF4DPr9ifX7EtwDDL0bRJ67oA LFXJQ/Wfyff7EKz9nKDQ+7lEF/Z0hIWfu5T6fYg+k/keVAj+UItJkYu0vsWsI5DSBo02AQNY gQHxS37O0+v2IIAYgFtZ2X8QYpIcHITg+V7zg+V7zg+V7zg+V7zg+V7zg+V7zg+V7z817z81 7z817z817z817z817z817z817z817z817z817z817z817z817z817z817z817z817z817z81 7z817z817z817z817z817z817z817z817z817z817z817z817z817z817z817z817z817z81 7z817z817z817z817z817z817z817z817z817z817z817z817z817z817z817z817z817z81 7z817z817z817z817z817z817z817z817z817z817z817z817z817z817z817z817z817z81 7z817z817z817z817z817z817z817z817z817z817z817z817z817z817z817z817z817z81 7z817z817z817z817z817z817z817z817z817z817z817z817z817z817z817z817z817z81 7z817z817z817z817z817z817z817z817z817z817z817z817z817z817z817z817z817z81 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 rEKvNCcEpFVkiUiqycEpZIlIqskSkVWSJSKrJwSlkiUiqyRKRVZIlIqskSkWCUiqyRKRVM2h KRVZIlIqskSkVWT/AF2K47/wXTXLyTM/HaPRMz8do9EzPx2j0TM/HaPRMz8do9DXMSJtu0Ez hdNcvJMz8do9EyXTXLyTM/HaPRMigunOf+eoJkumuXkmZ+O0eiZLprl5JmfjtHomS6a5eSZn 47R6JkUF05z/AM9QTJdNcvJMz8do9EyXTXLyTM/HaPRMl01y8kzPx2j0TJdNcvI1zFhEy6a5 eSZn47R6JkumuXkmZnnPArsumuXkmZ+O0eiZLprl5JmfjtHomS6a5eSZn47R6JnBRNSq9BCi alV6FV6CFE1Kr0Kr0Kr0Kr0Kr0Kr0Kr0Kr0F+GqJmm0eSZptHkmabR5Jmm0eSZptHkuzPdPe SZw1RM02jyTJqiZptHkmRRmXmc1HkmTVEzTaPJMmqJmm0eSZNUTNNo8kyKMy8zmo8kyaomab R5Jk1RM02jyTJqiZptHkmTVF2Zvq/JqiZptHkmTVE1Ihs1RM02jyTJqiZptHkmTVEzTaPJM4 5meGZmZ4ZmZmZmZmZmZn+LLjP+FVFUVRVFUVRfgq4quKriq4quKrjfBKROVKxVcVXG+CUicq Viq4quKriq/10pcIVXCFVwhVcIVXCFVwhVFVwTOCUuEKrhEyJS4QquETIlLhCq4RMiUuEKuC UuEKrhEyJS4QquETJcVcVXBKXCFVwiZEpcIVXCJkuKuKrglLhCq4RMiUuEKrhEyJS4QquETI lLhCq4RM/wBdlw74NpXEjw4x/pOTmMLprl0XTjbtBdONu0F0427QXTjbtBdONu0ChzzTncq0 /j6Jl4XTXLounG3aCZZdNcui6cbdoJll01y6Lpxt2gmWXTXLoUOeac7lcy6a5dF0427QTLLp rl0XTjbtBMsiVHOZ/AocyVzKUYsQe3lE5F01y6Lpxt2gmWXTXLounG3aCZZEqOcz+BQ5krmU oxYg9vKJyLprl0XTjbtBMsumuXRdONu0Eyy6a5dF0427QTLLprl0XTjbtBMvBKWVFRUVFRUV FRUVFRUVFRUJz+F01s/BeUtI8l5S0jyXlLSPJeUtI8l5S0jyKrjb2Xno15Jl4XTWz8F5S0jy TLLprZ+C8paR5Jll01s/BeUtI8kyy6a2fgVXG3suy6a2fgvKWkeSZZdNbPwXlLSPJMsiU1zj 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 cNwJqqaiGJCJuG4E1VNRoxL+ku/Flw8DHED0j+1j4HhYZRzUvM8iPReZ5Eei8zyI9F5nkR6G hyxI4WLzPIj0VeCNqFyo03XOnZyJOZYjahDTdc6dnIk5liNqENN1zp2ciTmWI2oQ03XOnZyJ OZYjahDTdc6dnIk5liNqENN1zp2ciTmWI2oQ03XOnZyJOZYjahDTdc6dnIk5liNqENN1zp2c iTmWI2oQ03XOnZyJOZYjahDTdc6dnIk5liNqENN1zp2ciTmWWNc1LzPIj0VZlHNS8zyI9FWJ I02nrTt/wScyxG1CGm6507OR21XEpitxTFbimK3FMVuKYrcUxW4pitxTFbimK3FMVuKYrctw EsxTFbkor+Gxej0gvR6QXo9IL0ekF3Uze895L0ekFcHErINJTcdP9GmO/lf6yE6BpKbjp/o0 x38r/WQnQNJTcdP9GmO/lf6yE6BpKbjp/o0x38r/AFkJ0DSU3HT/AEaY7+V/rIToGkpuOn+j THfyv9ZCdA0lNx0/0aY7+V/rIToGkpuOn+jTHfyv9ZCdA0lNx0/0aY7+V/rIToGkpuOn+jTH fyv9ZCdA0lNx0/0aY7+V/rIToGkpuOn+jTHfyv8AWQnQNJTcdP8ARpjv5X+shOgaSm46f6NM d/K/1kJ0DSU3HT/Rpjv5X+shOgaSm46f6PMd/K/14tVje5qsb3NVje5qsb3NVje5qsb3NVje 5qsb3NVje5qsb3NVje5qsb3NVje5qsb3NVje5V1Rvf8AFlw8GUsY+B4WOuxrsa7GuwlLgoJr MaVidKrIxImmNpKWRiRNMbSUsjEiaY2kpZGJE0xtJSyMSJpjaSlkYkTTG0lLIxImmNpKWRiR NMbSUsjEiaY2kpZGJE0xtJSyMSJpjaSlkIbE5LDXbHXbBFN08IhV2IQ6qIxI6awu/kswgu/E lIqsVWKrFViFz4FXmhODUkhwr4USUDhXwokoHCvhRJQOFfCiSgcK+FElA4V8KJKBwr4USUDh XwokoHCvhRJQOFfCiSgcK+FElA4V8KJKBwr4USUDhXwokoHCvhRJQOFccr+kXfiy4eDKWMfA 8LC6a5eSZn47R6JmfjtHomZ+O0eiZn47R6GuZanISJtu0EzhOKbeRy5cadnIpbnmfsnZt5HL lxp2cilueZ+ydm3kcuXGnZyKW55n7J2beRy5cadnIpbnmfsnZt5HLlxp2cilueZ+ydm3kcuX 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 3PM/ZOzbyOXLjTs5FLc8z9k7NvI5cuNOzkUtzzP2Ts28jly407OR5VsFE1JCbaqJtqom2qib aqJtqom2qibaqJtqom2qibaqJtqom2qibaqJtqozar+GqJmm0eSZptHkmabR5Jmm0eS7Fd/P cvTZr9869iZxLMWeCzFngsxZ4LMWeCzFngsxZ4LMWeCzFngsxZ4LMWeCzFngsxZ4LMWeCzFn gsxZ4LMz/wBJd+LLh4Mn50qiqKoqiqKqlCrX8FXB4qQiRNOw2lVlCZE07DaVWUJkTTsNpVZQ mRNOw2lVlCZE07DaVWUJkTTsNpVZQmRNOw2lVlCZE07DaVWUJkTTsNpVZQmRNOw2lVlCZE07 DaVWUJkTTsNpVZQmRNOw2lVlCZE07DaVWUJkdNUxu/pkpcIVXCFVwhVcIVXCFUVbCrYmcSZM 4JkzgmTOCZM4JkzgmTOCZM4JkzgmTOCZM4JkzgmTOCZM4JkzgmTOCY8/0l34suHgyflV01y6 Lpxt2gunG3aC6cbdoLpxt2gdVCRF6RzlxzVa17psmXhdNcui6cbdoJlnH7G6N7r69CqzPq8l UtbefQqsz6vJVLW3n0KrM+ryVS1t59CqzPq8lUtbefQqsz6vJVLW3n0KrM+ryVS1t59CqzPq 8lUtbefQqsz6vJVLW3n0KrM+ryVS1t59CqzPq8lUtbefQqsz6vJVLW3n0KrM+ryVS1t59Cqz Pq8lUtbefQqsz6vJVLW3n0OmqYJSxhOVInKkTlSJypE5UicqROVInKkTlSJypE5UicqROVIn KkaVP4XTWz8F5S0jyXlLSPJeUtI8l5S0jyXYnDb3flwRks1HaK6ZEy8Sz+RZ4LP5Fngs/kWe Cz+RZ4LP5Fngs/kWeCz+RZ4LP5Fngs/kWeCz+RZ4LP5Fngs/kWeCz+RZ4LP5Fngs/kWeCz+T P/SXfiy4eDJ+dKthVsKthVsKthOar8VW2Fxf/wAuzG7+oVaIVaIVaIVaIVaImfxKti+CrYvg q2L4Kti+CrYvgq2L4Kti+CrYvgq2L4Kti+CrYvgq2L4Kti+CrYvgq2L4Ktiv+ku/Flw8GT8q ya5dfQ6pxt9SOqcbfUjqnG31I6pxt9SRcun0ZXT6NUtvNe3YlN05TDJrl19DqnG31JKbpymG 6ccsXHbmo8428+jOg7c1HnG3n0Z0Hbmo8428+jOg7c1HnG3n0Z0Hbmo8428+jOg7c1HnG3n0 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 DHl+QSCS4Fd8lDQHXwZarX2pUAPdTDQ6vBlqtfalQA91MFmE6GgueUYAC7Bjy/IBDLgV3yXA kC8zJmTMmZMyZkzJmTMmZMyIRFYBI3BMyIRFYSNcH8GiCcx5lgCc/ksATn8lgCc/ksATn8lg Cc/ksK5/PcFACc/leXw1yDVc/Q4NEE5jzLAE5/IGq5+hGiCcx5lgCc/kDVc/QjRBOY8ywBOf yBqufoRognMeZYAnP5A1XP0I0QTmPMsATn8garn6EaIJzHmWAJz+QNVz9CNEE5jzLAE5/IGq 5+hGiCcx5lgCc/kDVc/QjRBOY8ywBOfyBqufoRognMeZYAnP5A1XP0IiDiAG84CEBRBOY8yw BOfyBqufoREHEAN5wEICiCcx5lgCc/kDVc/QmtnhAUbELkvXtpCbmFxJe9IirEAN5wFXgSgz KDMoMygzKDMoMygzKDMoMygzM6AgBzOgIAcA0EMAoj+QXhtBbhglnhtBBQsGI2f/AErB41g8 aweJK/kCsHiSuJWDxrB41g8RQhxKCHEJfGguJQQ4hL/mJXAC4SoC+JK4CXAVwEv/ANxK4gL4 kr/xAAXxJX/iAAv+QFcQl/8AqCVAXCVxAXCVxAXwAqEv/wAQLw2gtwMUhBBJHDdA+Q1QyeFy N4GCtWvZ/IK1a9n8grVr2fyCtWvZ/IK1a9n8hqA9fJ/yGpbL1sxsAndTwrHV4MFatez+RsAn dTKx1eDBWrXs/kbAJ3UysdXgwVq17P5GwCd1MNpaQviOUI5qpg48+f8AsNklyK75Q2FpC+I5 QjmqmDjz5/7DZJciu+UqA6+DBWrXs/kbAJ3Uw2lpC+I5QjmqmDjz5/7DZJciu+UqA6+DBWrX s/kbAJ3UysdXgwVq17P5GwCd1MrHV4MFatez+RsAndTDaWkL4jlCOaqYOPPn/sNklyK75QyC QuBSM68Trn+fYbJLkV3ygMgbsYKgDr7lm84QyAd0Mugdfcs3nAZA3YwVAHX3LN5wGQN2MFQB 198ZqGl4aXhIoFZhFcojRRCRQKxGiiGl4aXhIoFZhFcoFlEJV4SrwlX/AIkyBqPMuADmvEuA DmvEuADmvEuADmvEuADmvEJJ6vkQIDBqAWK5+hwwxFbzgK8BkDUeZcAHNeICxXP0JhiK3nAV +BFbzgK/Ait5wFeAyBqPMuADmvEBYrn6Ex2fOAYAaiqDmEoOuaoDpT7wIrecBX4EVvOArwGQ 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 kz2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z 2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2u e1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1 z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2ue1z2 ue1z2ue1z2ue1z2ue1z2uQUd/wBr6Afw2KSUFIX0Fh98FCBQREyK7mMy2wFNTY2a3fOanEDg Pg6MpBQUhfQWH3wuqgTEEstx4O94ItQehrSbffC7gg4nF279f4+gWvAoNAYWog8hz6YiZK6M 1qaQ9OTxnNSKBCrR+G+MsmZ0FHlJst53M8hBn8FXf0EICwqCmwuh6d+mMy2wFNTY2a3fOA6M WAZoX4PTnecAIHx9ACpIkbw0QfZdu+JTzXSg8AzkjzxpwtkMIdKFvnlOsGRYalAl22AOJ3iO tvMqWwHn4mSDqbVfKv3X6GxddSBWsT8DrHaVnYCVa1gdB6YiJ4IwLhW3zfjOkzlltaih9QF+ gtrskNHhdejvGWJkGXFNIenJ4xlsQu+EU63x6Y6GiBIAAV8efoLmq5UIEWi+OscWYIQAMPB6 x7zd3w0kD1IckOPOJa9CFUVaR1ofXAEM2lFRGy35cNAIKp2UnpO3p6//AO8AAAAAAAAAAAAA AAAAAAABn6O30AML05Mqnig4Y5P5/wAPry5Q+TxpuAYCKwLt/H/48uXLly5cuXqftkIUY+i5 DVA9TKWYOuPIPAQguHaxf6OKiBdkHnYZwh98P+NgKoHsfIG+Cg78b5Y3ETaJ++KvH52z6OQr MAKdLZ/B/wDo5cuXLly5cuXLly5cuXLly5cuXLk1YAjyjgaoHqfSsHVHkH9HKHyeNNx+t/ww gtOEMwWIBQ9VYfy+nJNjCemVG8cwf/hy5KDqj0H9HJSA2n9oH1LLnsA5az7YEHIRm44S5n63 LlySXyZbQ5vB9blytkFT1Rj/AAyHyeNNw8wvf/B9eXJqwBHlH6OSgM4CW+3/AIcuXJPn/wDx KuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cu 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 M/WPxn6x+M/WPxn6x+M/WPxn6x+M/WPxn6x+M/WPxn6x+M/WPxn6x+M/WPxn6x+M/WPxn6x+ M/WPxn6x+M/WPxn6x+M/WPxn6x+M/WPxgijgLHvrImOFu/aZ+sfjP1j8Z+sfjP1j8Z6RxIf1 gJUAqi1n6x+M/WPxnoBvKnmTJdU4uX+MTQoTaenprEUZyEn3mBkwojD/ABn6x+M/WPxn6x+M /WPxn6x+M/WPxn6x+M/WPxn6x+M/WPxn6x+M/WPxn6x+M/WPxn6x+M/WPxn6x+M/WPxn6x+M /WPxn6x+M/WPxn6x+M/WPxn6x+M/WPxn6x+M/WPxn6x+M/WPxn6x+M7Qo6q15w5T+CxRIugy w6dcLiypWmrwG0fFgEx8+njLyO/oFAeRChZ8siNAFJhV9g4zh8Y/yP6P/vqPl8jNGNaz8uea HD3XJbwBxvxprT4xyOuFbl9E4pPXEpIgiwMeLrXNtwDLRmUsb1rvWOsiXa51yjqG8CJyyXze 3nhlWZwOrJe5vHiMW2FOw/lMRMQ05C7dED3GZN4wE0GqDl3MqRLBtywOkems1lkOBGhALesD IEbOzoYZy4goF03MIHAQeQ3hHp9M3ZUt4RPHi4f7pDRG6AP/ANvH4f05++8P/wDAt0R8jicz ETf3DU9cmKKaNe9a04ojg1aez/mChaYZ4cPF+/OAZjEAZR/vGfjIN+dTfsYCEgoBHyO/fKRQ mdUR8mWIM8xNMIIIaAl5dHHw5s60MeHFR8ph+FMTCciHDPTWBE1jzsPFvWXtUiHdhs4wKVEI F8DIWZWxdCcfEc27BA9SbxnjgoP4D+P/AOBg8/gsfs+n/wAaL/X+P0O4fGPkP0xweXP3f58/ d/nz93+fP3f58/d/nz93+fP3f58/d/nz93+fP3f58/d/nz93+fP3f58/d/nz93+fP3f58/d/ nz93+fP3f58/d/nz93+fP3f58/d/nz93+fP3f58/d/nz93+fP3f58/d/nz93+fP3f58/d/nz 93+fP3f58/d/nz93+fP3f58/d/nz93+fP3f58/d/nz93+fP3f58/d/nz93+fP3f58/d/nyPd LBd3pz9X+fP3f58/d/nz93+fP3f58/d/nz93+fP3f58/d/nz93+fP3f58/d/nz93+fP3f58/ d/nz93+fP3f58/d/nz93+fP3f58/d/nz93+fP3f58/d/nz93+fP3f58/d/nz93+fP3f581ZR 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 kTNSWcwHaDXUdvftgRbwmSStO3p359sMToW5izkTNSWcwHaDXUdvftgRbwmSStO3p359sMTo W5izkTNSWcwHaDXUdvftgRbwmSStO3p359sMToW5izkTNSWcwHaDXUdvftgRbwmSStO3p359 sMToW5izkTNSWcwHaDXUdvftgRbwmSStO3p359sMToW5izkTNSWcwHaDXUdvftgRbwmSStO3 p359sMToW5izkTNSWcwHaDXUdvftgRbwmSStO3p359sMToW5izkTNSWcwHaDXUdvftgRbwmS StO3p359sMToW5izkTNSWcwHaDXUdvftgRbwmSStO3p359sMToW5izkTNSWcwHaDXUdvftgR bwmSStO3p359sMToW5izkTNSWcwHaDXUdvftgRbwmSStO3p359sMToW5izkTNSWcwHaDXUdv ftgRbwmSStO3p359sMToW5izkTNSWcwHaDXUdvftgRbwmSStO3p359sMToW5izkTNSWcwHaD XUdvftgRbwmSStO3p359sMToW5izkTNSWcwHaDXUdvftgRbwmSStO3p359sMToW5izkTNSWc wHaDXUdvfthsacdbErvu78/SZ1FTAN59oZaeb4z7Qy083xn2hlp5vjPtDLTzfGfaGWnm+M+0 MtPN8Z9oZaeb4z7Qy083xn2hlp5vjPtDLTzfGfaGWnm+M+0MtPN8Z9oZaeb4z7Qy083xn2hl p5vjDLCESiZ/T9OX66cTCoSQoi5Bxq4hBN0kqTOODr3xCCbpJUmccHXviEE3SSpM44OvfEIJ uklSZxwde+IQTdJKkzjg698mLYKAJBHQz+VzlNSR4BWNXd61gyeBQPaBxo/t39KIoIxTx4xm gj4hWtYYYBAIG2URQjFP6xmgj4hWtYYYBAIG2URQjFP6xmgj4hWtYYYBAIG2URQjFP6xmgj4 hWtYYYBAIG2URQjFP6xmgj4hWtYYYBAIG2URQjFP6xmgj4hWtYYYBAIG2URQjFP6xmgj4hWt YYYBAIG2URQjFP6xmgj4hWtYYYBAIG2URQjFP6xmgj4hWtYYYBAIG2URQjFP6xmgj4hWtYYY BAIG2URQjFP6xmgj4hWtYYYBAIG2URQjFP6xmgj4hWtYYYBAIG2URQjFP6xmgj4hWtYYYBAI G2URQjFP6xmgj4hWtYYYBAIG2URQjFP6xmgj4hWtYYYBAIG2URQjFP6xmgj4hWtYYYAAIH0P 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 D2x9Y2W4bHLcoJgCotLt3igyp2Htj6xstw2OW5QTAFRaXbvFBlTsPbH1jZbhsctygmAKi0u3 eKDKnYe2PrGy3DY5blBMAVFpdu8UGVOw9sfWNluGxy3LCYEVFrsd/T834/8Ag5P1yfX+n6fu PLK+H6An9n0/+Xa38vhw+MJ9UuxCVETY+2eoO3kW3ba9256g7eRbdtr3bnqDt5Ft22vdueoO 3kW3ba9256g7eRbdtr3bgiCO9gVFPy4BkuDsSNuxDd6wgYCuxK7VWr8/TWbALNr2Ji1id7tP lqvXfWMA2VUS+qqvGGdNRZvuJi1id7tPlqvXfWMA2VUS+qqvGGdNRZvuJi1id7tPlqvXfWMA 2VUS+qqvGGdNRZvuJi1id7tPlqvXfWMA2VUS+qqvGGdNRZvuJi1id7tPlqvXfWMA2VUS+qqv GGdNRZvuJi1id7tPlqvXfWMA2VUS+qqvGGdNRZvuJi1id7tPlqvXfWMA2VUS+qqvGGdNRZvu Ji1id7tPlqvXfWMA2VUS+qqvGGdNRZvuJi1id7tPlqvXfWMA2VUS+qqvGGdNRZvuJi1id7tP lqvXfWMA2VUS+qqvGGdNRZvuJi1id7tPlqvXfWMA2VUS+qqvGGdNRZvuJi1id7tPlqvXfWMA 2VUS+qqvGGdNRZvuJi1id7tPlqvXfWMA2VUS+qqvGVb9GzEZ2xa0d7uPl2PXfWMNgq0L6qq8 YKAxBZX3WLWJ3u0+Wq9d9YwDZVRL6qq8YZ01Fm+4mLWJ3u0+Wq9d9YBmyqiWBtVXg+i4tMWU bgHy8ekl5wD5ePSS84B8vHpJecA+Xj0kvOAfLx6SXnAPl49JLzgHy8ekl5wD5ePSS84B8vHp JecA+Xj0kvOAfLx6SXnAPl49JLzmw8fEJLbxhKD7GSXnAPl49JLzmnIBbAz+n6cv105qqMeR TCXV9RJtF49cJdX1Em0Xj1wl1fUSbRePXCXV9RJtF49cJdX1Em0Xj1yzRLWp/qHnAWGi8N6q WbfvlWNUAeOUv0NEBo0XXZsxjBy1U9lafGaoWyf3KzBRgOmi+5sxjBy1U9lafGaoWyf3KzBR gOmi+5sxjBy1U9lafGaoWyf3KzBRgOmi+5sxjBy1U9lafGaoWyf3KzBRgOmi+5sxjBy1U9la fGaoWyf3KzBRgOmi+5sxjBy1U9lafGaoWyf3KzBRgOmi+5sxjBy1U9lafGaoWyf3KzBRgOmi +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 gaY04ZvyY43aC04Aer17cnAKsAHAFfXvvA0xpwzfkxxu0FpwA9Xr25OAVYAOAK+vfeBpjThm /JjjdoLTgB6vXtycAqwAcAV9e+8DTGnDN+THG7QWnAD1evbk4BVgA4Ar6994Gd0CJt/+9Oix G1vc7w+wc9PY9Zh9g56ex6zD7Bz09j1mH2Dnp7HrMPsHPT2PWZDEajKhudf/AJ/0/Tl+unJ3 wEi1UP3yEOBSRtCXCrzkIcCkjaEuFXnIQ4FJG0JcKvOQhwKSNoS4VecQZUJRcAl52veaYStE dqqom7V6wNrdJcJVPR/rI+2FBDgivl77+hZ7DGh11TGa8oQPc5fxmua4V/JwNnQWh9qYzXlC B7nL+M1zXCv5OBs6C0PtTGa8oQPc5fxmua4V/JwNnQWh9qYzXlCB7nL+M1zXCv5OBs6C0PtT Ga8oQPc5fxmua4V/JwNnQWh9qYzXlCB7nL+M1zXCv5Ofi/P/AN/CWO/xkYlbCvjIxK2FfGRi VsK+MjErYV8ZGJWwr4yNYllW3o//AF/p+n7jyz+B/wDgCdXD4/8A8bwL8cRXmUE/nOX66c/g f7//AMc/p+n7jyz+B/8AgCdXD4xJi38mftcooWgb7WfnP+px/wBTj/qcf9Tj/qcf9Tj/AKnH /U4/6nH/AFOP+px/1OP+px/1OP8Aqcf9Tj/qcf8AU4/6nH/U4/6nH/U4/wCpx/1OP+px/wBT j/qcf9Tj/qcf9Tj/AKnH/U4/6nH/AFOP+px/1OP+px/1OP8Aqcf9Tj/qcf8AU4/6nH/U4/6n H/U4/wCpx/1OP+px/wBTj/qcf9Tj/qcf9Tj/AKnH/U4/6nH/AFOP+px/1OP+px/1OP8Aqcf9 Tj/qcf8AU4/6nH/U4/6nE60rEuP0ufpcG6ffFVeHjN+c5frzn8D/AH//AI5/T9P3Hln8D/8A AE6uHxn6j1y+85JoRXy+Hrj30D+8YuvGV6ZXplemV6ZXplemV6ZXplemV6ZXplemV6ZXplem V6ZXplemV6ZXplemV6ZXplemV6ZXplemV6ZXplemV6ZXplemXXYOeKGOKD5uvOV6ZXplemV6 ZXplemV6ZXplemV6ZXplemV6ZXplemV6ZXplemV6ZXplemV6ZXplemV6ZXplemV6ZXplemV6 ZXplemJpNv8Ar6HOP7Bhy04+vL2f5z+B/v8A/wAc/pyNC2EL6Os/ceWW9j/8ATq4fGcCdB6h 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 --------------070408080605070901000309-- From ezquerra@gmail.com Sat Mar 23 09:35:02 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id C7D78769F6 for ; Sat, 23 Mar 2013 09:35:02 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4sLh0CalWZvl for ; Sat, 23 Mar 2013 09:35:02 +0000 (UTC) Received: from mail-vb0-f42.google.com (mail-vb0-f42.google.com [209.85.212.42]) by restaurant.gnome.org (Postfix) with ESMTP id 0498B762D1 for ; Sat, 23 Mar 2013 09:35:01 +0000 (UTC) Received: by mail-vb0-f42.google.com with SMTP id ff1so3068125vbb.1 for ; Sat, 23 Mar 2013 02:34:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type; bh=k9aN0pG6kxX0dgHO8/VN8eRGlDi8OuEcnIXmOJOxnvc=; b=ZbKCqHo7FgFk9Eg4i8Jmc7gPfdNGUpOp164knSsyqGLlSZ55/GW/ORhmfzYQHcfEXg WX7lOemXRMip/IMZHL/z7iMfwlJvuu/UXub41tKkVAaqVj642v8uNmXsYmoZccVd/y5r VvjzI1u0YAWWa7gwIYrkxF2sZ5KVy/00mBqmTbz/8iJdX7Op/CmTXzOKjJWQOQHdqqqu COVWkA/Dj5MiRtznXCS9sYKy1NEDxmqMWIQkFcbJ7dpz1cGKxgyltzM2m2rFxc+VsM87 fDjeB13Ywufs3dF6MwsR6ZpY6Z8JfdImMTJ09fuoGKDnr8pbAJdWcMdC6aI+DoLD7l4r hMiw== MIME-Version: 1.0 X-Received: by 10.52.240.237 with SMTP id wd13mr5318700vdc.18.1364031299756; Sat, 23 Mar 2013 02:34:59 -0700 (PDT) Sender: ezquerra@gmail.com Received: by 10.58.164.40 with HTTP; Sat, 23 Mar 2013 02:34:59 -0700 (PDT) In-Reply-To: <20130323005643.GC27178@pug.qqx.org> References: <20130323005643.GC27178@pug.qqx.org> Date: Sat, 23 Mar 2013 10:34:59 +0100 X-Google-Sender-Auth: QkBQjSYLDFsVvBvY3cCW0bN3hI4 Message-ID: Subject: Re: Feature Request: Enabling opening files externally at a particular line number From: Angel Ezquerra To: meld-list Content-Type: text/plain; charset=ISO-8859-1 X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Mar 2013 09:35:02 -0000 On Sat, Mar 23, 2013 at 1:56 AM, Aaron Schrab wrote: > At 16:17 +0100 21 Mar 2013, Konstantin wrote: >> >> "$external_editor $file_path:$current_line_number" >> would open the file at the right point! At least on Linux and probably on >> Mac > > > That would be a feature of the editor, not the OS. And that method doesn't > work for either of the traditionally popular Unix/Linux editors (emacs and > vi). In fact I'd consider any editor that did that to be broken since a > colon is a perfectly valid part of a file name. > > However both of those support: > > "$external_editor +$current_line_number $file_path" FWIW in TortoiseHg you can define an external editor. When you do so you can define the command line that will be called when the editor is open. In it you can use a few "variables", such as $FILE and $LINENUM. With that you can customize how the editor is open, and _if_ your editor command line contains $LINENUM you TortoiseHg will open the file at the selected line number. For example: C:\Program Files\notepad++\notepad++.exe -n$LINENUM $FILE vim -f +$LINENUM $FILE emacs +$LINENUM $FILE kate --line $LINENUM $FILE and so on. In fact the next version of TortoiseHg will ship with several of these editors preconfigured. TortoiseHg will detect the editors that you have installed and it will show them on a combobox on its settings so that you can just select the one you want (rather than having to configure it on your own, which you can still do). Cheers, Angel From kai.willadsen@gmail.com Sun Mar 24 00:53:54 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id C5193769DA for ; Sun, 24 Mar 2013 00:53:54 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 9YbLIUqEd1AS for ; Sun, 24 Mar 2013 00:53:54 +0000 (UTC) Received: from mail-wi0-f173.google.com (mail-wi0-f173.google.com [209.85.212.173]) by restaurant.gnome.org (Postfix) with ESMTP id 0FC8C7662F for ; Sun, 24 Mar 2013 00:53:53 +0000 (UTC) Received: by mail-wi0-f173.google.com with SMTP id ez12so930183wid.12 for ; Sat, 23 Mar 2013 17:53:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=aJhf82PVv2YYu0RxTIGlszR2WP6y/clLsaD/B0/dLaY=; b=xnivuQR0xp/wIgctKy8tNsrlozcMqqiZ0DF7spftBTiSPl5kuHPPcU512S7duH8Wvs 6oCdzU/iKGtft5e3Ek0+duMzeC+WlyRd5nI8+8WT+nFPDFaX9FbixuuPQYfskhqYaXba PJtRTZkr763mPVyBEZSo78zpi/+iOa3xRvp/lUgRioR/Q7+9NQMVx2fRtiHN4pEv+EJZ fQ1+8qIQgGWMxoqG8f4SrQnECUZMQnbvtAl2hTc24+GEaC5OGhc6txFxgZvCPzhgc9F6 cs7SEwhwhEfVb6mn3ZlVlq2zxCueJ3sgDO12fkiKqOJnSwx01G9p5D6NyTp23xYt/F7+ HqCg== MIME-Version: 1.0 X-Received: by 10.180.12.48 with SMTP id v16mr10242872wib.1.1364086431911; Sat, 23 Mar 2013 17:53:51 -0700 (PDT) Received: by 10.216.41.68 with HTTP; Sat, 23 Mar 2013 17:53:51 -0700 (PDT) In-Reply-To: References: <20130323005643.GC27178@pug.qqx.org> Date: Sun, 24 Mar 2013 10:53:51 +1000 Message-ID: Subject: Re: Feature Request: Enabling opening files externally at a particular line number From: Kai Willadsen To: Angel Ezquerra Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Mar 2013 00:53:54 -0000 On 23 March 2013 19:34, Angel Ezquerra wrote: > On Sat, Mar 23, 2013 at 1:56 AM, Aaron Schrab wrote: >> At 16:17 +0100 21 Mar 2013, Konstantin wrote: >>> >>> "$external_editor $file_path:$current_line_number" >>> would open the file at the right point! At least on Linux and probably on >>> Mac >> >> >> That would be a feature of the editor, not the OS. And that method doesn't >> work for either of the traditionally popular Unix/Linux editors (emacs and >> vi). In fact I'd consider any editor that did that to be broken since a >> colon is a perfectly valid part of a file name. >> >> However both of those support: >> >> "$external_editor +$current_line_number $file_path" > > FWIW in TortoiseHg you can define an external editor. When you do so > you can define the command line that will be called when the editor is > open. In it you can use a few "variables", such as $FILE and $LINENUM. > With that you can customize how the editor is open, and _if_ your > editor command line contains $LINENUM you TortoiseHg will open the > file at the selected line number. If we did anything to support opening at a given line, I think it would be something like this. We'd just make a mini-syntax for passing arguments to the custom editor and document the flags. cheers, Kai From kai.willadsen@gmail.com Sun Mar 24 00:57:17 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id EA944769DA for ; Sun, 24 Mar 2013 00:57:16 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id rsIsY6dH44xn for ; Sun, 24 Mar 2013 00:57:11 +0000 (UTC) Received: from mail-wg0-f42.google.com (mail-wg0-f42.google.com [74.125.82.42]) by restaurant.gnome.org (Postfix) with ESMTP id 8BA497662F for ; Sun, 24 Mar 2013 00:57:11 +0000 (UTC) Received: by mail-wg0-f42.google.com with SMTP id 12so3134219wgh.5 for ; Sat, 23 Mar 2013 17:57:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=VDTfF8R05lgSbIwHy28vegomJ01vqZy09VaksnKhreI=; b=kAbFUYEp7g+5e75q+uLswlYDqTni8XOUhhqs8EEbqgNM2/dWYJdxoTW/HtFnqpT+nS 2kxZ+f6lzPiVTgtFWfQ2QYnwjB+J+qNcaDBUejSUh0ED8ZiUcOclLCIqC+0KfB7L19T2 rTFXh7R7G8jXCZbvylQOFNIfzcw3d8gWrc6ol5uyxtysQ8WjezvsCzqQng8jIQGjFgru EICWYWNbXafaZ5AKZaCMmlQiNqffttKLpUXJba0ZK4ukHliCRe5PGmrReyFM2FA+3GdN RYkcb8s2VOZLs5qnM/JBSY2HEXphg3PtZKTUh+qGjPPHTX+yDY+1MVtVC+4YDYlIaqqC yGHA== MIME-Version: 1.0 X-Received: by 10.180.84.8 with SMTP id u8mr18543807wiy.1.1364086629261; Sat, 23 Mar 2013 17:57:09 -0700 (PDT) Received: by 10.216.41.68 with HTTP; Sat, 23 Mar 2013 17:57:09 -0700 (PDT) In-Reply-To: References: Date: Sun, 24 Mar 2013 10:57:09 +1000 Message-ID: Subject: Re: Go to the next (previous) file From: Kai Willadsen To: Konstantin Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Mar 2013 00:57:17 -0000 On 22 March 2013 01:43, Konstantin wrote: > Most of the time when i compare two revisions i start with opening the first > file in the tree, view the changes side by side and do whatever needs to be > done. After that i close the code view tab and open the next file in the > tree... > > More often than not i repeat this process till the end of the tree > > What i constantly miss and imagine, is the ability to open the next file > (ideally in the same tab) by clicking on an icon in the toolbar (that looks > like "go to the next change icon" but with horizontal right arrow) or by > using Alt+Right. Alt+Right is already taken but other than that this would be fine. Doing this would involve adding additional signals to the MeldWindow container so that FileDiffs could request a change in their parent container. This is a bit of a problem, since in our current model, a file comparison doesn't know where it was launched from and so has no notion of its parent. It's not particularly difficult, but would need some consideration. Feel free to file a bug. I'm not likely to get around to this any time soon, but if someone else wants to pick it up that would be great. cheers, Kai From kai.willadsen@gmail.com Sun Mar 24 01:00:01 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 0BACB769DA for ; Sun, 24 Mar 2013 01:00:01 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ROE70LRYo-C1 for ; Sun, 24 Mar 2013 00:59:51 +0000 (UTC) Received: from mail-wi0-f175.google.com (mail-wi0-f175.google.com [209.85.212.175]) by restaurant.gnome.org (Postfix) with ESMTP id D61ED7662F for ; Sun, 24 Mar 2013 00:59:50 +0000 (UTC) Received: by mail-wi0-f175.google.com with SMTP id c10so3699153wiw.8 for ; Sat, 23 Mar 2013 17:59:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=3kwtcsigtm3/9ZCoYZ37Cn4w/hyQxkws8KppMkIMrtY=; b=c94ga021W6lqrhHap1/bTZthyZL8vSUu7vE8XQ6Ree6iPkCdhxCtek3XclN+bNw211 SwFRBBp3Kq9cZ5j/wU4flcM9hC15QoS3MutjQvbruQIBA5bcNfi5J3Y9b7UKxD3xm3Gr GT32s+Snnfy0QJV3cVyTY03p25UKUmXMF3iOwS+lbc5GUCj9hclItDxck3kSIoRjJhsC peg/Ohlxef3E5MLB0PdL/y1KDaLzSitzlId8/tcqsuZzAlaBOuVIpKqwCNX18p2bllQ6 U0YPVnGnRIVky9fJtdFKxY3dor5k1+kP+7PkaVd99QQb9FZkbm1kCzYAcV9mXeaKtVNm wMRQ== MIME-Version: 1.0 X-Received: by 10.194.11.70 with SMTP id o6mr1638565wjb.29.1364086788604; Sat, 23 Mar 2013 17:59:48 -0700 (PDT) Received: by 10.216.41.68 with HTTP; Sat, 23 Mar 2013 17:59:48 -0700 (PDT) In-Reply-To: References: Date: Sun, 24 Mar 2013 10:59:48 +1000 Message-ID: Subject: Re: Feature request: Visually compare image files From: Kai Willadsen To: Konstantin Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Mar 2013 01:00:01 -0000 On 22 March 2013 00:41, Konstantin wrote: > Right now, when you try to see the difference between two image files, you > get a message that this is not possible because the files are binary. > Why not just display the files side by side? I had a patch that did something like this years ago, but lost it somehow. Adding the side-by-side for images is actually very simple; the only trouble is changing the file comparison launching to be mime-type sensitive if you want to be able to handle arbitrary mime-types. cheers, Kai From kai.willadsen@gmail.com Sun Mar 24 01:02:17 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 55E83769DA for ; Sun, 24 Mar 2013 01:02:17 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5b-ZmO9BOeI5 for ; Sun, 24 Mar 2013 01:02:07 +0000 (UTC) Received: from mail-we0-f179.google.com (mail-we0-f179.google.com [74.125.82.179]) by restaurant.gnome.org (Postfix) with ESMTP id 04D4D7662F for ; Sun, 24 Mar 2013 01:02:06 +0000 (UTC) Received: by mail-we0-f179.google.com with SMTP id u3so4329846wey.10 for ; Sat, 23 Mar 2013 18:02:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=C8zrlHEcy0iBk+Q1PYz46BfnHcVLNQSbeneSoPH1UUo=; b=E0kFJEojRFvZ25EenAsaCpJ9ELqj06MB/BJ1m/TMlo2Zulx3y5U4yJRP36CtV9qNcN Dg4qZNEQZoIUneTNqOuAGD0C0i7R83Al1PIpowHEYCW5+Y1mgDNwbynNHyAYRZwj/ALJ GIY7K431pvaEl3qrORyxuL6QcvGZyDY0JHksFXbbaHNxNhCntcPkngFcqaO8CIPhB397 guJfa6hURnyjyOKsm2IAOYuh2/3AnYv0hfHIGyHC2SRsuUR0SGOYsidCrUaIYEk/5IFO eyGizdp3t2qxRc3Xs3gM5GVTfihwiLyeJYwuReaCkQJKGznfaYle3+HWLY+Va5FBrgzQ f3rg== MIME-Version: 1.0 X-Received: by 10.180.74.131 with SMTP id t3mr18537175wiv.23.1364086924733; Sat, 23 Mar 2013 18:02:04 -0700 (PDT) Received: by 10.216.41.68 with HTTP; Sat, 23 Mar 2013 18:02:04 -0700 (PDT) In-Reply-To: <514CD085.1070902@freenet.de> References: <514CD085.1070902@freenet.de> Date: Sun, 24 Mar 2013 11:02:04 +1000 Message-ID: Subject: Re: Feature request: Visually compare image files From: Kai Willadsen To: Claudio Fischer Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Mar 2013 01:02:17 -0000 On 23 March 2013 07:43, Claudio Fischer wrote: > Hi, > meld 1.71 got a lot of features and functions I wanted to have. > One of my missing features would also to have the possibility to compare > binary files e. g. bitmaps, icons ... > See the attached screenshot how the compare tool we use under windows does > this. > Would be nice to see this in meld too :-) I'd love this, and I'm fairly sure there's an open bug for it. However, doing a decent hex comparison is a reasonable amount of work, and involves solving the same kinds of issues as an image diff. Basically, we're going from a model where your file comparisons are *always* text based to one where your file comparison may have totally different characteristics. cheers, Kai From kai.willadsen@gmail.com Sun Mar 24 01:09:47 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 191D976A29 for ; Sun, 24 Mar 2013 01:09:47 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3+Wi0e7dQSQ4 for ; Sun, 24 Mar 2013 01:09:36 +0000 (UTC) Received: from mail-wg0-f49.google.com (mail-wg0-f49.google.com [74.125.82.49]) by restaurant.gnome.org (Postfix) with ESMTP id 6C0307662F for ; Sun, 24 Mar 2013 01:09:35 +0000 (UTC) Received: by mail-wg0-f49.google.com with SMTP id gg9so3638639wgb.28 for ; Sat, 23 Mar 2013 18:09:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=UfoHBBl9FPGVVwEvUFyrYTkVoW2EVPiI+v9ASVUc4wo=; b=khR359oesf5+xvQH8HQahwTZQ9mUdvXJe+LzOM1N8MwPVYLdLY08TutU6qJ/seTkAb ek+uJgivn9FcVGCUN6BzAd7HCtsbIKpq6XvDn2ISpvNSXmPnzl95UrqM1HHY5LGw3AMz SLJSUa0mZYadOAWxiGP0rnxHKjdpWOJOQxm6FTILWvpMymQnwh/Ush3P4GBgC0ovoT8Y XfgK8EVLffR3LDXBLn4wkxpHxg1IiHUyYE4t/1Pqrz/p0PjR1pTorsyk5nSoNGuKNDaF G8cJ9zHdkreyJQJ1fb1z20LtpMnM0KnRASaVk9WQ3mNSAm8SdLhJvq/ZIhzn3iIRSWtY NOHA== MIME-Version: 1.0 X-Received: by 10.180.74.131 with SMTP id t3mr18553711wiv.23.1364087374112; Sat, 23 Mar 2013 18:09:34 -0700 (PDT) Received: by 10.216.41.68 with HTTP; Sat, 23 Mar 2013 18:09:34 -0700 (PDT) In-Reply-To: <20130318191813.daa56153851617272989eac5@hoevendesign.com> References: <20130318191813.daa56153851617272989eac5@hoevendesign.com> Date: Sun, 24 Mar 2013 11:09:34 +1000 Message-ID: Subject: Re: New algorithm. From: Kai Willadsen To: pintuxgu Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Mar 2013 01:09:47 -0000 On 19 March 2013 04:18, pintuxgu wrote: > I have an idea for resynchronizing matches between files and I'm curious what you think of it. I'm not sure about the quality of this idea, nor of the feasability of implementation. > > The basic algorithm is this: > > 1). Take a limited number of random (sub) strings form file A (20, every 5 % for example). > 2). Make 20 linked lists of matches with file B. (Samples "unique" enough, short lists). > 3). Expand all unique matches (Linked lists with 2 items) maximally. (Is this the "snake" in action?) > 4). Mark all the matched text found / and the matched links between the files. > 5). Repeat step 1 once (twice, recursive?). But not for the whole file, but for the parts between 2 previous matches. > 6). We have now a maximum of 20x20=400 (8000 for 3 passes...) matches between the files. > 7). All text not marked yet is now assumed to be only in file A or in file B. > 8). Maybe use a different algorithm for further refinement. > > Some thoughts: > - This works beautifully if for example the order of complete functions is changed in a source files. > - I think It's relatively fast because of the limited number of scans through the files. > - File's which don't mach at all can easily be recognized (If the samples in step 1 are chosen properly). > - Make binary tree with snippets text marked "matched", "Only in A", "Only in B" ? > - How difficult would it be to implement this? > - Lots of room for all kinds of optimisations > - Don't read file A, > - Smart "guesses" in file B. > - Offsets form start or end of line for matches. > - Etc. > - Maybe a variant of this idea can be integrated in the existing matching algorithms. > - I'm curious what you tink of this, maybe I'm just being silly. It's difficult to tell how such an algorithm would work in practice. However, it does look like you're doing a fair bit of early optimisation that may well not be necessary. The random sampling is going to cause issues because in the vast majority of cases, a diff is between two files that are largely identical; this is why many diff algorithms optimisations are based on unique matching lines and similar constructs. I like that you'd have a fairly natural method of detecting moved chunks, but then that sort of thing can probably be retrofitted onto existing algorithms. Anyway, if you're interested, I'd encourage you to take a look at the various Myer's diff papers - most are freely available - and check out some other resources. The author of the diff-match-patch library has some good material on pre- and post-processing strategies for diffing (see http://neil.fraser.name/writing/diff/). cheers, Kai From kai.willadsen@gmail.com Sun Mar 24 01:22:23 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id E0AD276A29 for ; Sun, 24 Mar 2013 01:22:23 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HXgJhgbTF9rG for ; Sun, 24 Mar 2013 01:22:23 +0000 (UTC) Received: from mail-we0-f174.google.com (mail-we0-f174.google.com [74.125.82.174]) by restaurant.gnome.org (Postfix) with ESMTP id D71AC769DA for ; Sun, 24 Mar 2013 01:22:22 +0000 (UTC) Received: by mail-we0-f174.google.com with SMTP id u7so261668wey.5 for ; Sat, 23 Mar 2013 18:22:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=5PF4+V4ZFBlDg7PJ57r037T5F6+Q5t0I4/PdFz2Gy50=; b=AywHtR1WKQiByv0h2cmG63CyXeifetwdVzpU85ehudimHA8NvZImzJAQRBWhl1hhXK p+LkQFhOfkX0UzNb757ZSRkJMsKe5Ig2VUj9r+CfLWIMsCxYD04/3rzIeWY4owAbDR/e 5/wbfyjqQWAYsIWxe2Zgjws7JESCmag5ri35R77wCEzp4azgOt8dP+J3m3sjpRQcPHWZ Fi/8lWz+IAVPZvK9ede0xe2dwGkLDpJfyhbc+K3SZ7uJfV3uwj/YpEsbXxmhPN6FRz2z wGD5CBtDBAqARQLetVTxjgM5R6ECX5G3LaEU2YT4F/ppHBs1MP07ovgBOKKCIG9Winm+ 53Eg== MIME-Version: 1.0 X-Received: by 10.180.97.132 with SMTP id ea4mr10295534wib.23.1364088140529; Sat, 23 Mar 2013 18:22:20 -0700 (PDT) Received: by 10.216.41.68 with HTTP; Sat, 23 Mar 2013 18:22:20 -0700 (PDT) In-Reply-To: References: Date: Sun, 24 Mar 2013 11:22:20 +1000 Message-ID: Subject: Re: Passing a single directory or file to meld From: Kai Willadsen To: Angel Ezquerra Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Mar 2013 01:22:24 -0000 On 20 March 2013 20:40, Angel Ezquerra wrote: > On Tue, Mar 19, 2013 at 10:13 PM, Kai Willadsen wrote: >> There's no way around this, and I'd rather not add more command line >> options if we don't have to. I've seen this dealt with on Gnome + >> Nautilus by having an extension that allows you to queue up items for >> comparison. See for example: >> http://my.opera.com/bachkhois/blog/2011/07/19/compare-files-with-meld-from-within-nautilus > > That is similar to what Araxis Merge does and it works very well. The > drawback is that, as you said, it requires to write an explorer > extension. Right, but the drawback for doing anything else is that I have to write and maintain the code and ABI forever more. And in the end, the result will still be significantly less useful than an explorer extension. >> I have no idea what the limitations of the Windows 'Send To' command >> or explorer extensions are. Would it be possible to have some kind of >> similar queuing implementation there? > > The nice thing about the "Send to" menu is its simplicity. You simply > add a shortcut to your executable in the "SendTo" directory (which is > in "%userprofile%\SendTo" in WindowsXP and in > "%APPDATA%\Microsoft\Windows\SendTo" in Windows 7) and the shortcut > appears in your Windows Explorer context menu. > > When you right click on a file and select a SendTo entry it will > simply execute the program that the shortcut points to and pass the > name of the file as its only parameter. If you need more parameters > you can set them on the shortcut itself. > > So with a SendTo shortcut you can only pass one or more files or > directories, and they must be on the same directory because you cannot > select files or directories from different directories using Windows > Explorer. So it's identical to having multiple open commands? In that case why not just make an open command that does what you want? >> Either way, the problem is that giving Meld a single directory is >> inherently ambiguous. You'd have to have "Send To -> Meld as folder >> comparison" and "Send To -> Meld as VC comparison" entries, which >> seems like overkill to me. > > I think this is precisely a very good reason why I think melds needs > to let the user tell it what to do. Since the operation is ambiguous, > meld should not have to guess. Currently it always "guesses" that the > user wants to do a VC comparison, which is not useful if you do not > want to use the VC functionality of meld (as in my case). Unfortunately, that's because you're trying to do something that's a very minor use case. Meld's VC functionality is the *most common way* that comparisons are launched with Meld (other than direct invocations, or VC-initiated merges). > Another use case for being able to open a diff with a single file is > when you want to compare a file with some text that you want to write > or perhaps when you want to compare a file with what you have on the > clipboard. Sometimes you may want to compare two parts of a file using > copy/paste, for example. This is something that I often do, and which > is easy to do with many diff tools (e.g. araxis, WinMerge) but is not > possible (or not easy) with meld. I don't see how your proposal would help with that at all. We already support starting blank comparisons for files; for folder comparisons we sort-of do, but the fallback for missing directories means that it doesn't necessarily do what you'd expect. > So I think it would be great to have a way to tell meld to open "an > empty comparison" or to diff a single file with an "empty file" that > you may edit yourself (by typing, using copy paste, etc). You can already do this. You can start a comparison with only one entry by just passing a second empty entry, e.g., meld directory/whatever "" > It seems > that this would require an extra command line option, but in this case > it seems that there would be a good reason to do so. I really don't see what you would expect to happen in this case that is a significant improvement in terms of work flow. Maybe you could give an example of what the user would see? cheers, Kai From kai.willadsen@gmail.com Sun Mar 24 02:42:01 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id BFD16769DA for ; Sun, 24 Mar 2013 02:42:01 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Nyl6H23i0SSK for ; Sun, 24 Mar 2013 02:42:01 +0000 (UTC) Received: from mail-wg0-f53.google.com (mail-wg0-f53.google.com [74.125.82.53]) by restaurant.gnome.org (Postfix) with ESMTP id E15407694C for ; Sun, 24 Mar 2013 02:42:00 +0000 (UTC) Received: by mail-wg0-f53.google.com with SMTP id eg6so4260975wgb.32 for ; Sat, 23 Mar 2013 19:41:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=ytRR/JzVrqA6sPlyzLwLZPCBfPMKjB7PigqR/KnX65U=; b=sxzoiF0wpBhq3GyMlcM7VOwUyixeCFaQIsVwkrY3qDRCi1Gi1DdwsYtKWJipHhsIkk JXyAExbHB20AuLxBuyB7JKwwLuKN1cyWbMuSkAcOLA3NNNI8HASgfNKelIYsI1jF42BH 82VubLZ8HtrRhKfk4lFoNItN23GNzNtT3ZpiJNiNAsWBXrUaLcbJTjdMCDsKT9QJp8kU haWGzAZDX8G2rKu8v+Wt1cX/Ec1oaKllJgers2vYFgoY1TjEz3uAed7YojLvIjY32hhy Y0QTa/nFitcunUgQXdPDS+R3ytmtDDABGmVN4HATwrwnmNgClaxr01ekmkhEKx2z/ugO DJhw== MIME-Version: 1.0 X-Received: by 10.180.74.131 with SMTP id t3mr18784287wiv.23.1364092918617; Sat, 23 Mar 2013 19:41:58 -0700 (PDT) Received: by 10.216.41.68 with HTTP; Sat, 23 Mar 2013 19:41:58 -0700 (PDT) In-Reply-To: <5148E8FE.6060201@gmail.com> References: <5125DF32.1040309@gmail.com> <512B90AC.1040401@gmail.com> <5148E8FE.6060201@gmail.com> Date: Sun, 24 Mar 2013 12:41:58 +1000 Message-ID: Subject: Re: New feature From: Kai Willadsen To: Piotr Piastucki Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Mar 2013 02:42:01 -0000 On 20 March 2013 08:38, Piotr Piastucki wrote: > On 02/25/2013 08:48 PM, Kai Willadsen wrote: >> >> You're talking about your suggestion of doing an input split followed >> by a double compare? In that case, yes, you should always get the sync >> point included. >> >> I was talking about a different option entirely of simply forcing the >> algorithm through that point. Since the result should be almost >> identical (bar some heuristic speed-ups maybe?), I think doing >> whatever is easiest is the best plan. >> > > I am attaching a patch with SyncPointMyersSequenceMatcher class that > does the split & merge as described before. Awesome! I've attached your patch and my follow-ups to bug 362233: https://bugzilla.gnome.org/show_bug.cgi?id=362233 Fundamentally, it works. However, the UI is not in a releasable state. We'd need to add: * Some indication as to the location of split points * A way to clear/reset splits points (they're reset as is, but it's not obvious, and you can't actually manually remove them) * Some way of setting split points separately; just using the last cursor position is really pretty awful As a bonus, it would be nice to allow multiple split points. The backend already supports this, but making the UI non-awful is going to be complicated. It would also be good to allow moving split points, but I really think that's a nice-to-have. > There are also some unit tests included (at last). I have no idea what > the UI should look like hence I did not even try to implement anything > but the 'backend' stuff. Tests?! I don't even know what to say. ...other than: oh yeah, some more of those would be nice... cheers, Kai From kai.willadsen@gmail.com Sun Mar 24 02:53:05 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id A251F769DA for ; Sun, 24 Mar 2013 02:53:05 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PXOt7lMncYTf for ; Sun, 24 Mar 2013 02:53:04 +0000 (UTC) Received: from mail-wi0-f176.google.com (mail-wi0-f176.google.com [209.85.212.176]) by restaurant.gnome.org (Postfix) with ESMTP id A28C97694C for ; Sun, 24 Mar 2013 02:53:03 +0000 (UTC) Received: by mail-wi0-f176.google.com with SMTP id hm14so9071077wib.9 for ; Sat, 23 Mar 2013 19:53:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=JzHk7DT1ZDDYQEqWgU2I9mCERGNeYwL9muGC9oE4Z04=; b=SDlj2Cgdb6MCvxrj875yr41q0iL8Rly3fcd2+Ri6paonPrtR3dd5AWyTJswPpIItbq SuENKUHdKZJDzUb1wG0JYt5hlX/XWla9Ah6cUdry0z4JMl8bC7Nx9DMIndq7wrPjTEL/ p1yzQ1bgIiDdzNTfZn7ON5RN5sd4OWAiKXZJxqz10TAjpNYL6wn/ieg+yQoWZFjovgBb jAbVvD2x/JQlsXm4eN1yVm0m46bf5ezb2rAEKQelRUWGRr/RrLvZptbMMLJ45GADehzU b7V2umgfBbhtX9X7UgszKAWDfDAiBcCRbGqMMjzfigsGhu00QlvkuXNddbOoKLZcgwCi Z6OA== MIME-Version: 1.0 X-Received: by 10.194.92.231 with SMTP id cp7mr10868363wjb.19.1364093581719; Sat, 23 Mar 2013 19:53:01 -0700 (PDT) Received: by 10.216.41.68 with HTTP; Sat, 23 Mar 2013 19:53:01 -0700 (PDT) In-Reply-To: References: Date: Sun, 24 Mar 2013 12:53:01 +1000 Message-ID: Subject: Re: Automatic 3 way merge for conflicts From: Kai Willadsen To: Louis des Landes Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Mar 2013 02:53:05 -0000 On 21 March 2013 10:22, Louis des Landes wrote: >>> For now, I'd like to look into adding an infobar prompt to suggest >> >> >> 'Auto-merge' or 'Use existing merge' as options when we launch a 3-way >> >> diff on a conflict. >> > >> > So to summarize: >> > * Show MERGED as is by default (should always exist anyway... all VCS's >> > create a MERGED file which exists in place of the existing file) >> > * Show bar to do remerge (always show this if conflicts?) >> >> Yes and yes. I think I'll have to play with having the bar appear to >> figure out whether it's actually a good idea, or whether we should >> only show it in certain cases. I think it'll get annoying if we prompt >> every time someone opens up a three-way merge, so there may need to be >> insane heuristics involved. >> >> I'm also open to making BASE the default with the auto-merge prompt... >> but I'd like to keep existing behaviour for now (and possibly for this >> release series). >> >> > Can't see any issues with external tools there, except you will need to >> > run >> > 'resolve' manually to mark conflicts as resolved. >> >> Yeah... invoking Meld as a mergetool automatically does that, but I >> don't know whether we want to support that. I suppose that you *could* >> record whether a comparison tab was opened from a conflict and then >> when the users closes it after saving, you could prompt as to whether >> the conflict could be considered resolved... but that's a whole new >> story. >> >> > I've noticed two issues with current HEAD, and have uploaded patches for >> > them to the bug: >> > https://bugzilla.gnome.org/show_bug.cgi?id=690469 >> > https://github.com/Psykar/meld/compare/master...3-way-on-conflict >> > * BASE is being used, not MERGED by default (my fault) >> > * The centre pane is being set to read-only (needed to check if it's the >> > existing file, don't change permissions if so) >> >> Have you double-checked this with actual HEAD? I noticed this >> happening when I applied your patches from last time, and made some >> changes in c300c6 to properly update the writable state from a pane's >> file. You may be seeing a different issue, however. > > It's slightly different I think, when using BASE you don't get the > permission change, as the temp buffer isn't the same as the existing MERGED. > When we used MERGED though, it changes the permission on MERGED (which is > the actual file) so you can't save changes. In other words, changing default > to MERGED means we need to not change the centre pane's permissions (but > instead fixed this by checking if it's the original file before we set > permissions) Ah, right. I wasn't seeing this problem because I was previously testing the version that presented BASE. That makes sense, thanks. >> > Should possibly also do some checks on the temp files - currently all >> > files >> > used in the diff are set as temp files, whereas sometimes they actually >> > already exist (eg bzr creates them). Not sure how to best handle this... >> >> Oh, that's bad. That means we'll automatically clean them up on exit, >> which is really not what we should do. The merged result files should >> never be set as temp anyway. For the others, how about we just make >> get_path_for_conflict return a tuple of (path, is_temp) and key off >> that? It's a bit ugly, but it's not that bad. > > Luckily it *doesn't* clean them automatically as meld recognizes they aren't > sitting in the temp directory - you do get some ugly stdout warning though. > I considered a tuple but also thought it a little ugly so I'd ask... sounds > good though. You mean some of my paranoia paid off?! Nice! cheers, Kai From starojitski@gmail.com Sun Mar 24 20:26:15 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 6F1E47698B for ; Sun, 24 Mar 2013 20:26:15 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.698 X-Spam-Level: X-Spam-Status: No, score=-2.698 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Qz3JpcS4qm9E for ; Sun, 24 Mar 2013 20:26:04 +0000 (UTC) Received: from mail-ia0-f176.google.com (mail-ia0-f176.google.com [209.85.210.176]) by restaurant.gnome.org (Postfix) with ESMTP id 2C2F676A39 for ; Sun, 24 Mar 2013 20:26:03 +0000 (UTC) Received: by mail-ia0-f176.google.com with SMTP id i1so4947285iaa.21 for ; Sun, 24 Mar 2013 13:26:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:content-type; bh=jYTlhGoRHft8GLVVq3SFZaIVAyTwhnnsX1kO45a1C6k=; b=l+phv97BbnB+kDlO8Hxnw0FhOOVzRi9oB0ddi5FRUpD8Dtxuuny6ngRysN9igGnMvI J2yWYhcwfnUcF3jJpbYA27ZRYUHfDT2+5+0pvnznAF9Fmi8pO/IdLCP02Qqow2IWSuCO 34jCcXs/mMsqn+yrE+jRhvhm/G0T7lob8aE4jMkRFAVb74zVMzY+kbXdS1pnloPbTGNp o1+hxAi5lFoD0QcpwPmyrvSXU9b1n1BsuWS5MTyKtTE+m1APeGbOiSoshyOAFtvto9fr Y3TB2/DbF4TAq01Gm/UwQp6hgCleW3zshl6B0K44JuNzrSdWQ//TsGOA0QSmT22VPYR4 MWSA== MIME-Version: 1.0 X-Received: by 10.50.140.101 with SMTP id rf5mr9482338igb.41.1364156762520; Sun, 24 Mar 2013 13:26:02 -0700 (PDT) Received: by 10.64.102.10 with HTTP; Sun, 24 Mar 2013 13:26:02 -0700 (PDT) In-Reply-To: References: Date: Sun, 24 Mar 2013 21:26:02 +0100 Message-ID: Subject: Re: Feature Request: Enabling opening files externally at a particular line number From: Konstantin To: meld-list@gnome.org Content-Type: multipart/mixed; boundary=e89a8f923bd63fcf7004d8b17ff2 X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Mar 2013 20:26:15 -0000 --e89a8f923bd63fcf7004d8b17ff2 Content-Type: multipart/alternative; boundary=e89a8f923bd63fcf6c04d8b17ff0 --e89a8f923bd63fcf6c04d8b17ff0 Content-Type: text/plain; charset=ISO-8859-1 Hi all, Thanks for your feedback. I decided to quickly learn some python and implement this feature myself in the way you suggested. Attached are three diff (patch) files. Now you can use $file and $line words in the editor command text box. For example: sublime_text $file:$line or C:\PROGRA~1\ConTEXT\context.exe /g0:$line $file if you don't provide $file than everything after the first space is ignored I am sure there is plenty space for improvement therefore i am looking forward to your comments. I have not changed the preferences dialog yet but will do it shortly. Cheers Konstantin --e89a8f923bd63fcf6c04d8b17ff0 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Hi all,

Thanks for your feedback. I dec= ided to quickly learn some python and implement this feature myself in the = way you suggested. Attached are three diff (patch) files.=A0
Now you can use $file and $line words in the editor command text box. For e= xample:

sublime_text $file:$line=A0
or
C:\PROGRA~1\ConTEXT\context.exe /g0:$line $file

if you don't provide $file than everything after the first space i= s ignored

I am sure there is plenty space for improvement therefo= re i am looking forward to your comments.=A0

I hav= e not changed the preferences dialog yet but will do it shortly.=A0

Cheers

Konstantin
--e89a8f923bd63fcf6c04d8b17ff0-- --e89a8f923bd63fcf7004d8b17ff2 Content-Type: application/octet-stream; name="filediff.py.diff" Content-Disposition: attachment; filename="filediff.py.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_heoncjex0 LS0tIEQ6XEluc3RhbGxcbWVsZF8xLjdcbWVsZF9vcmlnaW5hbFxtZWxkXGZpbGVkaWZmLnB5Cisr KyBEOlxJbnN0YWxsXG1lbGRfMS43XG1lbGRcbWVsZFxmaWxlZGlmZi5weQpAQCAtODYxLDcgKzg2 MSw3IEBACiAgICAgICAgIHBhbmUgPSBzZWxmLl9nZXRfZm9jdXNlZF9wYW5lKCkKICAgICAgICAg aWYgcGFuZSA+PSAwOgogICAgICAgICAgICAgaWYgc2VsZi50ZXh0YnVmZmVyW3BhbmVdLmRhdGEu ZmlsZW5hbWU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fb3Blbl9maWxlcyhbc2VsZi50ZXh0YnVm ZmVyW3BhbmVdLmRhdGEuZmlsZW5hbWVdKQorICAgICAgICAgICAgICAgIHNlbGYuX29wZW5fZmls ZXMoW3NlbGYudGV4dGJ1ZmZlcltwYW5lXS5kYXRhLmZpbGVuYW1lXSwgc2VsZi5jdXJzb3IubGlu ZSArIDEpCiAKICAgICBkZWYgZ2V0X3NlbGVjdGVkX3RleHQoc2VsZik6CiAgICAgICAgICIiIlJl dHVybnMgc2VsZWN0ZWQgdGV4dCBvZiBhY3RpdmUgcGFuZSIiIgo= --e89a8f923bd63fcf7004d8b17ff2 Content-Type: application/octet-stream; name="melddoc.py.diff" Content-Disposition: attachment; filename="melddoc.py.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_heoncjg41 LS0tIEQ6XEluc3RhbGxcbWVsZF8xLjdcbWVsZF9vcmlnaW5hbFxtZWxkXG1lbGRkb2MucHkKKysr IEQ6XEluc3RhbGxcbWVsZF8xLjdcbWVsZFxtZWxkXG1lbGRkb2MucHkKQEAgLTE4LDYgKzE4LDcg QEAKIAogCiBpbXBvcnQgb3MKK2ltcG9ydCByZQogaW1wb3J0IHN1YnByb2Nlc3MKIGltcG9ydCBz eXMKIApAQCAtNzYsNyArNzcsNyBAQAogICAgICAgICBpZiBzZWxmLnNjaGVkdWxlci50YXNrc19w ZW5kaW5nKCk6CiAgICAgICAgICAgICBzZWxmLnNjaGVkdWxlci5yZW1vdmVfdGFzayhzZWxmLnNj aGVkdWxlci5nZXRfY3VycmVudF90YXNrKCkpCiAKLSAgICBkZWYgX29wZW5fZmlsZXMoc2VsZiwg c2VsZWN0ZWQpOgorICAgIGRlZiBfb3Blbl9maWxlcyhzZWxmLCBzZWxlY3RlZCwgbGluZT0wKToK ICAgICAgICAgcXVlcnlfYXR0cnMgPSAiLCIuam9pbigoZ2lvLkZJTEVfQVRUUklCVVRFX1NUQU5E QVJEX1RZUEUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpby5GSUxFX0FUVFJJ QlVURV9TVEFOREFSRF9DT05URU5UX1RZUEUpKQogCkBAIC05OCw5ICs5OSwxOSBAQAogICAgICAg ICAgICAgZWxpZiBmaWxlX3R5cGUgPT0gZ2lvLkZJTEVfVFlQRV9SRUdVTEFSOgogICAgICAgICAg ICAgICAgIGNvbnRlbnRfdHlwZSA9IGluZm8uZ2V0X2NvbnRlbnRfdHlwZSgpCiAgICAgICAgICAg ICAgICAgcGF0aCA9IHNvdXJjZS5nZXRfcGF0aCgpCi0gICAgICAgICAgICAgICAgaWYgZ2lvLmNv bnRlbnRfdHlwZV9pc19hKGNvbnRlbnRfdHlwZSwgInRleHQvcGxhaW4iKToKKyAgICAgICAgICAg ICAgICAjIGNvbnRlbnRfdHlwZV9pc19hIGRvZXMgbm90IHNlZW0gdG8gd29yayBvbiB3aW5kb3dz CisgICAgICAgICAgICAgICAgaWYgZ2lvLmNvbnRlbnRfdHlwZV9pc19hKGNvbnRlbnRfdHlwZSwg InRleHQvcGxhaW4iKSBvciBzeXMucGxhdGZvcm0gPT0gIndpbjMyIjoKICAgICAgICAgICAgICAg ICAgICAgZWRpdG9yID0gc2VsZi5wcmVmcy5nZXRfZWRpdG9yX2NvbW1hbmQoW3BhdGhdKQogICAg ICAgICAgICAgICAgICAgICBpZiBlZGl0b3I6CisgICAgICAgICAgICAgICAgICAgICAgICBjb21t YW5kbGluZSA9IHJlLnNlYXJjaCgnKD9QPGVkaXRvcj4uKykoPzpccyspKD9QPHBhcmFtPi4qKScs IGVkaXRvclswXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGNvbW1hbmRsaW5lOgorICAg ICAgICAgICAgICAgICAgICAgICAgIyBmaXJzdCBwYXJ0IGlzIHRoZSBlZGl0b3IgaXRzZWxmCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yWzBdID0gY29tbWFuZGxpbmUuZ3JvdXAo J2VkaXRvcicpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBzZWNvbmQgcGFydCBtYXkg Y29udGFpbiBvcHRpb25hbCBwYXJhbWV0ZXJzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IyBpZiBpdCBjb250YWlucyAkZmlsZSB0aGFuIHByb2Nlc3MgaXQKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiBjb21tYW5kbGluZS5ncm91cCgncGFyYW0nKS5jb3VudCgnJGZpbGUnKSA+ IDA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRvclsxXSA9IGNvbW1hbmRs aW5lLmdyb3VwKCdwYXJhbScpLnJlcGxhY2UoIiRmaWxlIiwgZWRpdG9yWzFdKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBlZGl0b3JbMV0gPSBlZGl0b3JbMV0ucmVwbGFjZSgiJGxp bmUiLCBzdHIobGluZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICBzdWJwcm9jZXNzLlBvcGVu KGVkaXRvcikKICAgICAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAg ICAgIG9zX29wZW4ocGF0aCkK --e89a8f923bd63fcf7004d8b17ff2 Content-Type: application/octet-stream; name="preferences.py.diff" Content-Disposition: attachment; filename="preferences.py.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_heoncjgo2 LS0tIEQ6XEluc3RhbGxcbWVsZF8xLjdcbWVsZF9vcmlnaW5hbFxtZWxkXHByZWZlcmVuY2VzLnB5 CisrKyBEOlxJbnN0YWxsXG1lbGRfMS43XG1lbGRcbWVsZFxwcmVmZXJlbmNlcy5weQpAQCAtMzY4 LDcgKzM2OCw3IEBACiAKICAgICBkZWYgZ2V0X2VkaXRvcl9jb21tYW5kKHNlbGYsIGZpbGVzKToK ICAgICAgICAgaWYgc2VsZi5lZGl0X2NvbW1hbmRfdHlwZSA9PSAiY3VzdG9tIjoKLSAgICAgICAg ICAgIHJldHVybiBzZWxmLmVkaXRfY29tbWFuZF9jdXN0b20uc3BsaXQoKSArIGZpbGVzCisgICAg ICAgICAgICByZXR1cm4gW3NlbGYuZWRpdF9jb21tYW5kX2N1c3RvbV0gKyBmaWxlcwogICAgICAg ICBlbHNlOgogICAgICAgICAgICAgaWYgbm90IGhhc2F0dHIoc2VsZiwgIl9nY29uZiIpOgogICAg ICAgICAgICAgICAgIHJldHVybiBbXQo= --e89a8f923bd63fcf7004d8b17ff2-- From tobias-mail@gmx.net Tue Mar 26 12:08:04 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 0EBB176AB1 for ; Tue, 26 Mar 2013 12:08:04 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -3.156 X-Spam-Level: X-Spam-Status: No, score=-3.156 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.556, SPF_PASS=-0.001] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RBoWyE2VaN6b for ; Tue, 26 Mar 2013 12:08:03 +0000 (UTC) Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) by restaurant.gnome.org (Postfix) with ESMTP id D82DD76304 for ; Tue, 26 Mar 2013 12:08:02 +0000 (UTC) Received: from mailout-de.gmx.net ([10.1.76.29]) by mrigmx.server.lan (mrigmx002) with ESMTP (Nemesis) id 0M5rVP-1UZWXX2T1t-00xrMH for ; Tue, 26 Mar 2013 13:07:58 +0100 Received: (qmail invoked by alias); 26 Mar 2013 12:07:58 -0000 Received: from scc-wkit-clx-216-245.scc.kit.edu (EHLO localhost) [141.3.216.245] by mail.gmx.net (mp029) with SMTP; 26 Mar 2013 13:07:58 +0100 X-Authenticated: #7739253 X-Provags-ID: V01U2FsdGVkX19MxwI7lbpMK8Z+2SLEjuk+T0PqmJQIypMYVqZjUo ZtNP2YP9RJFbaJ Date: Tue, 26 Mar 2013 13:08:28 +0100 From: To: meld-list@gnome.org Subject: Outdated download link and news Message-ID: <20130326130828.55882346@gmx.net> X-Mailer: Claws Mail 3.9.0 (GTK+ 2.24.17; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Y-GMX-Trusted: 0 X-Mailman-Approved-At: Wed, 27 Mar 2013 08:03:04 +0000 X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Mar 2013 12:08:04 -0000 Hey, I just browsed the mailing list archive and found out that version 1.7.1 is already released... I only checked the front page (http://meldmerge.org/) for new releases until now, which still offers 1.6.1 as the latest release. The News page is a bit more up to date (1.7.0). Please consider updating the web site :) Thanks, Tobias From pedro.pedruzzi@gmail.com Thu Mar 28 20:56:11 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 472A47657B for ; Thu, 28 Mar 2013 20:56:11 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.7 X-Spam-Level: X-Spam-Status: No, score=-2.7 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hMskao7uJlGf for ; Thu, 28 Mar 2013 20:56:08 +0000 (UTC) Received: from mail-wg0-f43.google.com (mail-wg0-f43.google.com [74.125.82.43]) by restaurant.gnome.org (Postfix) with ESMTP id 55C8A763DD for ; Thu, 28 Mar 2013 20:56:07 +0000 (UTC) Received: by mail-wg0-f43.google.com with SMTP id f12so1933757wgh.10 for ; Thu, 28 Mar 2013 13:56:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=1FfuTvRbIxnlAcPZiwR06pUOZWlspocJQDmZYDe+G9g=; b=QBtlOu10U9LTD1IrJSVkWnxfZ0TqVjHM9Vx15Q1t4nut431XTCkHNQiyTBXWdzxd5v /sjx1aRqHtW94FETXgNK1aZMedtmf6T3ECw94idPCJbXRNwRCxGgM7XtQYLl+cdDFcUW vA99Raf9VnEEvHS7ITDQTPMCT3P2SGeoDaABK20m7RvqbYddp85v14P3npXEh3ohIynG jIn5WFpYRJOzYCHmfuO2viw3bcnVgnzvtOB457SruSp10DBkw8yrOQZijtcQKgzd44/c LD5wYSWqb8Pp7HWxZ7OxtOFHiJfQrWeuXV0jQ0kRsNyYcbzUaM6OylGIsvJPgQBsuTMl VaLw== MIME-Version: 1.0 X-Received: by 10.194.63.109 with SMTP id f13mr144032wjs.11.1364504165523; Thu, 28 Mar 2013 13:56:05 -0700 (PDT) Received: by 10.227.112.139 with HTTP; Thu, 28 Mar 2013 13:56:05 -0700 (PDT) In-Reply-To: References: Date: Thu, 28 Mar 2013 17:56:05 -0300 Message-ID: Subject: Re: "static/fixed" mode on file diff view From: Pedro Pedruzzi To: Kai Willadsen Content-Type: multipart/mixed; boundary=047d7b86db6014a71804d90262fc Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Mar 2013 20:56:11 -0000 --047d7b86db6014a71804d90262fc Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hello, I have added an initial (broken) support for 3-way in the attached patch and at github [1]. But I need some help to move on: 1. Where to do the tag creation/update logic (still) I've moved the logic to the on_diffs_changed callback because I need the set of chunks that had been changed. But it appears that I can't do this at that point because the textview has not been refreshed yet, neither yranges that are needed for the padding logic. So this is currently broken when some text change affects yranges (adding/removing of newline, line wrap etc). Adding a subsequent space usualy fix things. For my logic to work I would need: * The set of changed chunks (the ones to update the padding). * refreshed textview so yranges are ok. I tried to save the changed_chunks on diffs_changed to later process on on_textview_expose_event. But the first call happens before the yranges gets updated, and there are many calls even without text edition. Any thougths? 2. Complete line ranges for 3-way diffs To support 3-way diffs I have to know the line ranges on all three panes for each chunk so I can create the padding tags. However, diffutils only provides line ranges for the panels that differs. For chunks that are identical between two consecutive panes, I don't have the line range for one of them. I took a look at diffutils but it doesn't seem simple enough for me to adapt. Any suggestions? 3. Other bugs I have noticed many other bugs. Mainly when diffs change in such a way that the line with padding gets lost of track or when diffs split. But I believe this comes next. Thanks. [1]: https://github.com/pedrox/meld/tree/poc-fixed-scroll-3 =C4=B1zzn=C9=B9p=C7=9D=D4=80 o=C9=B9p=C7=9D=D4=80 --047d7b86db6014a71804d90262fc Content-Type: application/octet-stream; name="poc-fixed-scroll-3.patch" Content-Disposition: attachment; filename="poc-fixed-scroll-3.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_heueej860 RnJvbSBiN2IyZWEyMDk3ODhjNjM5ZGQwMWQyZjc0MjZjOTZlM2QxYzAwODU5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQZWRybyBQZWRydXp6aSA8cGVkcm8ucGVkcnV6emlAZ21haWwu Y29tPgpEYXRlOiBXZWQsIDYgTWFyIDIwMTMgMTM6NDY6MDAgLTAzMDAKU3ViamVjdDogW1BBVENI XSBQcm9vZi1vZi1jb25jZXB0OiBNYWtlIGZpbGVkaWZmIHBhbmVzIGFsaWduZWQgYW5kIHdpdGgg dGhlCiBzYW1lIGhlaWdodCBieSBhZGRpbmcgZXh0cmEgcGFkZGluZwoKLS0tCiBtZWxkL2ZpbGVk aWZmLnB5ICAgICAgICAgIHwgMTAwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0KIG1lbGQvbGlua21hcC5weSAgICAgICAgICAgfCAgMzMgKysrKysrKysrKysr Ky0tCiBtZWxkL3V0aWwvc291cmNldmlld2VyLnB5IHwgIDUxICsrKysrKysrKysrKysrKysrKysr KysrCiAzIGZpbGVzIGNoYW5nZWQsIDE3MSBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9tZWxkL2ZpbGVkaWZmLnB5IGIvbWVsZC9maWxlZGlmZi5weQppbmRleCAz NjIyMGMxLi4zMmE2NTZkIDEwMDY0NAotLS0gYS9tZWxkL2ZpbGVkaWZmLnB5CisrKyBiL21lbGQv ZmlsZWRpZmYucHkKQEAgLTExMzYsNiArMTEzNiwzMiBAQCBjbGFzcyBGaWxlRGlmZihtZWxkZG9j Lk1lbGREb2MsIGdub21lZ2xhZGUuQ29tcG9uZW50KToKICAgICAgICAgICAgIG1lcmdlYWJsZSA9 IChGYWxzZSwgRmFsc2UpCiAgICAgICAgIHNlbGYuYWN0aW9uZ3JvdXAuZ2V0X2FjdGlvbigiTWVy Z2VBbGwiKS5zZXRfc2Vuc2l0aXZlKG1lcmdlYWJsZVswXSBvciBtZXJnZWFibGVbMV0pCiAKKyAg ICBkZWYgX19maXhfcGFkZGluZ3Moc2VsZiwgY2h1bmtzKToKKyAgICAgICAgZm9yIGNoYW5nZSBp biBjaHVua3M6CisgICAgICAgICAgICBscmFuZ2UgPSBbTm9uZV0gKiBsZW4oc2VsZi50ZXh0YnVm ZmVyKQorICAgICAgICAgICAgaWYgY2hhbmdlWzBdOgorICAgICAgICAgICAgICAgIGxyYW5nZVsx XSA9IGNoYW5nZVswXVsxOjNdCisgICAgICAgICAgICAgICAgbHJhbmdlWzBdID0gY2hhbmdlWzBd WzM6NV0KKyAgICAgICAgICAgICAgICBpZiBub3QgY2hhbmdlWzFdOgorICAgICAgICAgICAgICAg ICAgICBscmFuZ2VbMl0gPSBscmFuZ2VbMV0gIyBGSVhNRTogVGhpcyBpcyB3cm9uZy4gTWFrZSBk aWZmdXRpbCBwcm92aWRlIHRoZSBsaW5lIHJhbmdlIGZvciBhbGwgcGFuZWxzLgorICAgICAgICAg ICAgaWYgY2hhbmdlWzFdOgorICAgICAgICAgICAgICAgIGxyYW5nZVsxXSA9IGNoYW5nZVsxXVsx OjNdCisgICAgICAgICAgICAgICAgbHJhbmdlWzJdID0gY2hhbmdlWzFdWzM6NV0KKyAgICAgICAg ICAgICAgICBpZiBub3QgY2hhbmdlWzBdOgorICAgICAgICAgICAgICAgICAgICBscmFuZ2VbMF0g PSBscmFuZ2VbMV0gIyBGSVhNRTogU2FtZSBhcyBhYm92ZS4KKworICAgICAgICAgICAgZW5kbWlu ID0gbWluKHJbMV0gZm9yIHIgaW4gbHJhbmdlKQorICAgICAgICAgICAgaWYgZW5kbWluID09IDA6 CisgICAgICAgICAgICAgICAgY29udGludWUgIyBGSVhNRTogY2FuJ3QgYWRkIHBhZGRpbmcgYmVm b3JlIGxpbmUgMCB3aXRoIHBpeGVscy1iZWxvdy1saW5lcworICAgICAgICAgICAgZHkgPSBbc2Vs Zi50ZXh0dmlld1tpXS5nZXRfZHlfZm9yX2xpbmVfcmFuZ2UobHJhbmdlW2ldWzBdLCBscmFuZ2Vb aV1bMV0pIGZvciBpIGluIHJhbmdlKGxlbihzZWxmLnRleHRidWZmZXIpKV0KKyAgICAgICAgICAg IGR5bWF4ID0gbWF4KGR5KQorCisgICAgICAgICAgICBwcmludCgnbHJhbmdlIHt9IC0+IGR5IHt9 Jy5mb3JtYXQobHJhbmdlLCBkeSkpCisgICAgICAgICAgICBmb3IgaSBpbiByYW5nZShsZW4oc2Vs Zi50ZXh0YnVmZmVyKSk6CisgICAgICAgICAgICAgICAgc2VsZi50ZXh0dmlld1tpXS5jbGVhbl9w aXhlbHNfYmVsb3dfZm9yX2xpbmVfcmFuZ2UobHJhbmdlW2ldWzBdLCBscmFuZ2VbaV1bMV0pICMg RklYTUUKKyAgICAgICAgICAgICAgICBwYWRkaW5nID0gZHltYXggLSBkeVtpXQorICAgICAgICAg ICAgICAgIHNlbGYudGV4dHZpZXdbaV0uc2V0X3BpeGVsc19iZWxvd19mb3JfbGluZV9udW0obHJh bmdlW2ldWzFdIC0gMSwgcGFkZGluZykKKwogICAgIGRlZiBvbl9kaWZmc19jaGFuZ2VkKHNlbGYs IGxpbmVkaWZmZXIsIGNodW5rX2NoYW5nZXMpOgogICAgICAgICByZW1vdmVkX2NodW5rcywgYWRk ZWRfY2h1bmtzLCBtb2RpZmllZF9jaHVua3MgPSBjaHVua19jaGFuZ2VzCiAKQEAgLTExNDQsNiAr MTE3MCwyMSBAQCBjbGFzcyBGaWxlRGlmZihtZWxkZG9jLk1lbGREb2MsIGdub21lZ2xhZGUuQ29t cG9uZW50KToKICAgICAgICAgbmVlZF9jbGVhcmluZyA9IHNvcnRlZChsaXN0KHJlbW92ZWRfY2h1 bmtzKSkKICAgICAgICAgbmVlZF9oaWdobGlnaHRpbmcgPSBzb3J0ZWQobGlzdChhZGRlZF9jaHVu a3MpICsgW21vZGlmaWVkX2NodW5rc10pCiAKKyAgICAgICAgZGVmIGFsbF9jaHVua3MoKToKKyAg ICAgICAgICAgIGZvciB4IGluIHJlbW92ZWRfY2h1bmtzOgorICAgICAgICAgICAgICAgIHByaW50 KCJyZW1vdmVkOiB7fSIuZm9ybWF0KHgpKQorICAgICAgICAgICAgICAgIHlpZWxkIHgKKyAgICAg ICAgICAgIGZvciB4IGluIGFkZGVkX2NodW5rczoKKyAgICAgICAgICAgICAgICBwcmludCgiYWRk ZWQ6IHt9Ii5mb3JtYXQoeCkpCisgICAgICAgICAgICAgICAgeWllbGQgeAorICAgICAgICAgICAg aWYgbW9kaWZpZWRfY2h1bmtzOiAjIG9ubHkgb25lPworICAgICAgICAgICAgICAgIHByaW50KCJt b2RpZmllZDoge30iLmZvcm1hdChtb2RpZmllZF9jaHVua3MpKQorICAgICAgICAgICAgICAgIHlp ZWxkIG1vZGlmaWVkX2NodW5rcworCisgICAgICAgICMgRklYTUU6IFdlIGNhbid0IGZpeCB0aGUg cGFkZGluZ3MgYXQgdGhpcyBwb2ludCBiZWNhdXNlIHRoZSB0ZXh0dmlldworICAgICAgICAjIGhh cyBub3QgYmVlbiByZWZyZXNoZWQgeWV0IHNvIHlyYW5nZXMgYXJlIG5vdCByZWFsLgorICAgICAg ICBzZWxmLl9fZml4X3BhZGRpbmdzKGFsbF9jaHVua3MoKSkKKwogICAgICAgICBhbGx0YWdzID0g W2IuZ2V0X3RhZ190YWJsZSgpLmxvb2t1cCgiaW5saW5lIikgZm9yIGIgaW4gc2VsZi50ZXh0YnVm ZmVyXQogCiAgICAgICAgIGZvciBjaHVuayBpbiBuZWVkX2NsZWFyaW5nOgpAQCAtMTI3MSw2ICsx MzEyLDM1IEBAIGNsYXNzIEZpbGVEaWZmKG1lbGRkb2MuTWVsZERvYywgZ25vbWVnbGFkZS5Db21w b25lbnQpOgogICAgICAgICAgICAgc2VsZi50ZXh0X2ZpbHRlcnMgPSBbXQogICAgICAgICAgICAg c2VsZi5yZWZyZXNoX2NvbXBhcmlzb24oKQogCisgICAgZGVmIGRyYXdfcGF0dGVybihzZWxmLCBj b250ZXh0LCB4MCwgeTAsIHdpZHRoLCBoZWlnaHQpOgorICAgICAgICBtID0gLTEuMAorICAgICAg ICBkeSA9IDcuMAorICAgICAgICB4MSA9IHgwICsgd2lkdGgKKyAgICAgICAgeTEgPSB5MCArIGhl aWdodAorICAgICAgICB5ID0geTAgKyBkeSAvIDIKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAg ICAgICAgIHhpID0geDAgKyAoeTEgLSB5KSAvIG0KKyAgICAgICAgICAgIHhmID0geDAgKyAoeTAg LSB5KSAvIG0KKyAgICAgICAgICAgIGlmIHhpID49IHgxOgorICAgICAgICAgICAgICAgIGJyZWFr CisgICAgICAgICAgICBpZiB5IDwgeTE6CisgICAgICAgICAgICAgICAgeGEgPSB4MAorICAgICAg ICAgICAgICAgIHlhID0geQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB4YSA9 IHhpCisgICAgICAgICAgICAgICAgeWEgPSB5MQorICAgICAgICAgICAgaWYgeGYgPCB4MToKKyAg ICAgICAgICAgICAgICB4YiA9IHhmCisgICAgICAgICAgICAgICAgeWIgPSB5MAorICAgICAgICAg ICAgZWxzZToKKyAgICAgICAgICAgICAgICB4YiA9IHgxCisgICAgICAgICAgICAgICAgeWIgPSB5 ICsgbSAqICh4MSAtIHgwKQorICAgICAgICAgICAgY29udGV4dC5tb3ZlX3RvKHhhLCB5YSkKKyAg ICAgICAgICAgIGNvbnRleHQubGluZV90byh4YiwgeWIpCisgICAgICAgICAgICB5ID0geSArIGR5 CisgICAgICAgIGNvbnRleHQuc3Ryb2tlKCkKKworCiAgICAgZGVmIG9uX3RleHR2aWV3X2V4cG9z ZV9ldmVudChzZWxmLCB0ZXh0dmlldywgZXZlbnQpOgogICAgICAgICBpZiBzZWxmLm51bV9wYW5l cyA9PSAxOgogICAgICAgICAgICAgcmV0dXJuCkBAIC0xMjkxLDcgKzEzNjEsNyBAQCBjbGFzcyBG aWxlRGlmZihtZWxkZG9jLk1lbGREb2MsIGdub21lZ2xhZGUuQ29tcG9uZW50KToKICAgICAgICAg eCwgeSA9IHRleHR2aWV3LndpbmRvd190b19idWZmZXJfY29vcmRzKGd0ay5URVhUX1dJTkRPV19X SURHRVQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh cmVhLngsIGFyZWEueSkKICAgICAgICAgYm91bmRzID0gKHRleHR2aWV3LmdldF9saW5lX251bV9m b3JfeSh5KSwKLSAgICAgICAgICAgICAgICAgIHRleHR2aWV3LmdldF9saW5lX251bV9mb3JfeSh5 ICsgYXJlYS5oZWlnaHQgKyAxKSkKKyAgICAgICAgICAgICAgICAgIHRleHR2aWV3LmdldF9saW5l X251bV9mb3JfeSh5ICsgYXJlYS5oZWlnaHQpICsgMSkKIAogICAgICAgICB3aWR0aCwgaGVpZ2h0 ID0gdGV4dHZpZXcuYWxsb2NhdGlvbi53aWR0aCwgdGV4dHZpZXcuYWxsb2NhdGlvbi5oZWlnaHQK ICAgICAgICAgY29udGV4dCA9IGV2ZW50LndpbmRvdy5jYWlyb19jcmVhdGUoKQpAQCAtMTMwMCwx MSArMTM3MCwxMiBAQCBjbGFzcyBGaWxlRGlmZihtZWxkZG9jLk1lbGREb2MsIGdub21lZ2xhZGUu Q29tcG9uZW50KToKICAgICAgICAgY29udGV4dC5zZXRfbGluZV93aWR0aCgxLjApCiAKICAgICAg ICAgZm9yIGNoYW5nZSBpbiBzZWxmLmxpbmVkaWZmZXIuc2luZ2xlX2NoYW5nZXMocGFuZSwgYm91 bmRzKToKLSAgICAgICAgICAgIHlwb3MwID0gdGV4dHZpZXcuZ2V0X3lfZm9yX2xpbmVfbnVtKGNo YW5nZVsxXSkgLSB2aXNpYmxlLnkKLSAgICAgICAgICAgIHlwb3MxID0gdGV4dHZpZXcuZ2V0X3lf Zm9yX2xpbmVfbnVtKGNoYW5nZVsyXSkgLSB2aXNpYmxlLnkKKyAgICAgICAgICAgIHlwb3MwLCB5 cG9zMSwgcGFkZGluZyA9IHRleHR2aWV3LmdldF95X2Zvcl9saW5lX3JhbmdlKGNoYW5nZVsxXSwg Y2hhbmdlWzJdKQorICAgICAgICAgICAgeXBvczAgPSB5cG9zMCAtIHZpc2libGUueQorICAgICAg ICAgICAgeXBvczEgPSB5cG9zMSAtIHZpc2libGUueQogCiAgICAgICAgICAgICBjb250ZXh0LnJl Y3RhbmdsZSgtMC41LCB5cG9zMCAtIDAuNSwgd2lkdGggKyAxLCB5cG9zMSAtIHlwb3MwKQotICAg ICAgICAgICAgaWYgY2hhbmdlWzFdICE9IGNoYW5nZVsyXToKKyAgICAgICAgICAgIGlmIHlwb3Mw ICE9IHlwb3MxOgogICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0X3NvdXJjZV9jb2xvcihzZWxm LmZpbGxfY29sb3JzW2NoYW5nZVswXV0pCiAgICAgICAgICAgICAgICAgY29udGV4dC5maWxsX3By ZXNlcnZlKCkKICAgICAgICAgICAgICAgICBpZiBzZWxmLmxpbmVkaWZmZXIubG9jYXRlX2NodW5r KHBhbmUsIGNoYW5nZVsxXSlbMF0gPT0gc2VsZi5jdXJzb3IuY2h1bms6CkBAIC0xMzE0LDExICsx Mzg1LDE4IEBAIGNsYXNzIEZpbGVEaWZmKG1lbGRkb2MuTWVsZERvYywgZ25vbWVnbGFkZS5Db21w b25lbnQpOgogICAgICAgICAgICAgY29udGV4dC5zZXRfc291cmNlX2NvbG9yKHNlbGYubGluZV9j b2xvcnNbY2hhbmdlWzBdXSkKICAgICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCkKIAorICAgICAg ICAgICAgaWYgcGFkZGluZyA+IDA6CisgICAgICAgICAgICAgICAgY29udGV4dC5yZWN0YW5nbGUo LTAuNSwgeXBvczEgKyAwLjUsIHdpZHRoICsgMSwgcGFkZGluZykKKyAgICAgICAgICAgICAgICBj b250ZXh0LnNldF9zb3VyY2VfcmdiYSgwLjgsIDAuOCwgMC44LCAwLjI1KQorICAgICAgICAgICAg ICAgIGNvbnRleHQuZmlsbCgpCisgICAgICAgICAgICAgICAgc2VsZi5kcmF3X3BhdHRlcm4oY29u dGV4dCwgLTAuNSwgeXBvczEgKyAwLjUsIHdpZHRoICsgMSwgcGFkZGluZykKKwogICAgICAgICBp ZiB0ZXh0dmlldy5pc19mb2N1cygpIGFuZCBzZWxmLmN1cnNvci5saW5lIGlzIG5vdCBOb25lOgog ICAgICAgICAgICAgaXQgPSB0ZXh0YnVmZmVyLmdldF9pdGVyX2F0X2xpbmUoc2VsZi5jdXJzb3Iu bGluZSkKICAgICAgICAgICAgIHlwb3MsIGxpbmVfaGVpZ2h0ID0gdGV4dHZpZXcuZ2V0X2xpbmVf eXJhbmdlKGl0KQogICAgICAgICAgICAgY29udGV4dC5zYXZlKCkKLSAgICAgICAgICAgIGNvbnRl eHQucmVjdGFuZ2xlKDAsIHlwb3MgLSB2aXNpYmxlLnksIHdpZHRoLCBsaW5lX2hlaWdodCkKKyAg ICAgICAgICAgICMgZG8gbm90IGhpZ2hsaWdodCBwYWRkaW5nIChwaXhlbHMtYmVsb3ctbGluZXMp CisgICAgICAgICAgICBjb250ZXh0LnJlY3RhbmdsZSgwLCB5cG9zIC0gdmlzaWJsZS55LCB3aWR0 aCwgbGluZV9oZWlnaHQgLSB0ZXh0dmlldy5nZXRfcGl4ZWxzX2JlbG93X2Zvcl9saW5lX251bShz ZWxmLmN1cnNvci5saW5lKSkKICAgICAgICAgICAgIGNvbnRleHQuY2xpcCgpCiAgICAgICAgICAg ICBjb250ZXh0LnNldF9zb3VyY2VfY29sb3Ioc2VsZi5oaWdobGlnaHRfY29sb3IpCiAgICAgICAg ICAgICBjb250ZXh0LnBhaW50X3dpdGhfYWxwaGEoMC4yNSkKQEAgLTE1NTEsNyArMTYyOSwxNCBA QCBjbGFzcyBGaWxlRGlmZihtZWxkZG9jLk1lbGREb2MsIGdub21lZ2xhZGUuQ29tcG9uZW50KToK ICAgICAgICAgaWYgc2VsZi5fc3luY192c2Nyb2xsX2xvY2s6CiAgICAgICAgICAgICByZXR1cm4K IAotICAgICAgICBpZiBub3Qgc2VsZi5fc2Nyb2xsX2xvY2sgYW5kIChzZWxmLmtleW1hc2sgJiBN QVNLX1NISUZUKSA9PSAwOgorICAgICAgICAjIHNjcm9sbGJhciBpbmZsdWVuY2UgMC0+MS0+MiBv ciAwPC0xLT4yIG9yIDA8LTE8LTIKKyAgICAgICAgc2Nyb2xsYmFyX2luZmx1ZW5jZSA9ICgoMSwg MiksICgwLCAyKSwgKDEsIDApKQorCisgICAgICAgIGlmIDE6ICMgRklYTUU6IGFsaWduZWQgbW9k ZQorICAgICAgICAgICAgIyBhbGwgdGhlIHNjcm9sbGJhcnMgZ2V0IHRoZSBzYW1lIHJhdyBhZGp1 c3RtZW50CisgICAgICAgICAgICBmb3IgaSBpbiBzY3JvbGxiYXJfaW5mbHVlbmNlW21hc3Rlcl1b OnNlbGYubnVtX3BhbmVzIC0gMV06CisgICAgICAgICAgICAgICAgc2VsZi5zY3JvbGxlZHdpbmRv d1tpXS5nZXRfdmFkanVzdG1lbnQoKS5zZXRfdmFsdWUoYWRqdXN0bWVudC52YWx1ZSkKKyAgICAg ICAgZWxpZiBub3Qgc2VsZi5fc2Nyb2xsX2xvY2sgYW5kIChzZWxmLmtleW1hc2sgJiBNQVNLX1NI SUZUKSA9PSAwOgogICAgICAgICAgICAgc2VsZi5fc3luY192c2Nyb2xsX2xvY2sgPSBUcnVlCiAg ICAgICAgICAgICBzeW5jcG9pbnQgPSAwLjUKIApAQCAtMTU2MSw5ICsxNjQ2LDYgQEAgY2xhc3Mg RmlsZURpZmYobWVsZGRvYy5NZWxkRG9jLCBnbm9tZWdsYWRlLkNvbXBvbmVudCk6CiAgICAgICAg ICAgICBsaW5lX3ksIGhlaWdodCA9IHNlbGYudGV4dHZpZXdbbWFzdGVyXS5nZXRfbGluZV95cmFu Z2UoaXQpCiAgICAgICAgICAgICBsaW5lID0gaXQuZ2V0X2xpbmUoKSArICgobWFzdGVyX3ktbGlu ZV95KS9oZWlnaHQpCiAKLSAgICAgICAgICAgICMgc2Nyb2xsYmFyIGluZmx1ZW5jZSAwLT4xLT4y IG9yIDA8LTEtPjIgb3IgMDwtMTwtMgotICAgICAgICAgICAgc2Nyb2xsYmFyX2luZmx1ZW5jZSA9 ICgoMSwgMiksICgwLCAyKSwgKDEsIDApKQotCiAgICAgICAgICAgICBmb3IgaSBpbiBzY3JvbGxi YXJfaW5mbHVlbmNlW21hc3Rlcl1bOnNlbGYubnVtX3BhbmVzIC0gMV06CiAgICAgICAgICAgICAg ICAgYWRqID0gc2VsZi5zY3JvbGxlZHdpbmRvd1tpXS5nZXRfdmFkanVzdG1lbnQoKQogICAgICAg ICAgICAgICAgIG1iZWdpbiwgbWVuZCA9IDAsIHNlbGYudGV4dGJ1ZmZlclttYXN0ZXJdLmdldF9s aW5lX2NvdW50KCkKZGlmZiAtLWdpdCBhL21lbGQvbGlua21hcC5weSBiL21lbGQvbGlua21hcC5w eQppbmRleCBlZDg1YTY0Li4xNDM5MGI0IDEwMDY0NAotLS0gYS9tZWxkL2xpbmttYXAucHkKKysr IGIvbWVsZC9saW5rbWFwLnB5CkBAIC0xNjQsNiArMTY0LDcgQEAgY2xhc3MgTGlua01hcChndGsu RHJhd2luZ0FyZWEpOgogICAgICAgICByZWxfb2Zmc2V0ID0gW3QuYWxsb2NhdGlvbi55IC0gc2Vs Zi5hbGxvY2F0aW9uLnkgZm9yIHQgaW4gc2VsZi52aWV3c10KIAogICAgICAgICBoZWlnaHQgPSBz ZWxmLmFsbG9jYXRpb24uaGVpZ2h0CisgICAgICAgICMgRklYTUUKICAgICAgICAgdmlzaWJsZSA9 IFtzZWxmLnZpZXdzWzBdLmdldF9saW5lX251bV9mb3JfeShwaXhfc3RhcnRbMF0pLAogICAgICAg ICAgICAgICAgICAgIHNlbGYudmlld3NbMF0uZ2V0X2xpbmVfbnVtX2Zvcl95KHBpeF9zdGFydFsw XSArIGhlaWdodCksCiAgICAgICAgICAgICAgICAgICAgc2VsZi52aWV3c1sxXS5nZXRfbGluZV9u dW1fZm9yX3kocGl4X3N0YXJ0WzFdKSwKQEAgLTE3NywxMiArMTc4LDI0IEBAIGNsYXNzIExpbmtN YXAoZ3RrLkRyYXdpbmdBcmVhKToKICAgICAgICAgcV9yYWQgPSBtYXRoLnBpIC8gMgogCiAgICAg ICAgIGxlZnQsIHJpZ2h0ID0gc2VsZi52aWV3X2luZGljZXMKKworICAgICAgICAjIEZJWE1FOiBy ZW1vdmUKICAgICAgICAgdmlld19vZmZzZXRfbGluZSA9IGxhbWJkYSB2LCBsOiBzZWxmLnZpZXdz W3ZdLmdldF95X2Zvcl9saW5lX251bShsKSAtIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwaXhfc3RhcnRbdl0gKyByZWxfb2Zmc2V0W3ZdCisKKyAgICAgICAgZGVm IHZpZXdfb2Zmc2V0X2Zyb21fbGluZV9yYW5nZSh2LCBpLCBmKToKKyAgICAgICAgICAgIHJlbCA9 IHJlbF9vZmZzZXRbdl0gLSBwaXhfc3RhcnRbdl0KKyAgICAgICAgICAgIHlpLCB5ZiwgcGFkZGlu ZyA9IHNlbGYudmlld3Nbdl0uZ2V0X3lfZm9yX2xpbmVfcmFuZ2UoaSwgZikKKyAgICAgICAgICAg IHlpID0geWkgKyByZWwKKyAgICAgICAgICAgIHlmID0geWYgKyByZWwKKyAgICAgICAgICAgIHJl dHVybiB5aSwgeWYKKwogICAgICAgICBmb3IgYyBpbiBzZWxmLmZpbGVkaWZmLmxpbmVkaWZmZXIu cGFpcl9jaGFuZ2VzKGxlZnQsIHJpZ2h0LCB2aXNpYmxlKToKICAgICAgICAgICAgICMgZiBhbmQg dCBhcmUgc2hvcnQgZm9yICJmcm9tIiBhbmQgInRvIgotICAgICAgICAgICAgZjAsIGYxID0gW3Zp ZXdfb2Zmc2V0X2xpbmUoMCwgbCkgZm9yIGwgaW4gY1sxOjNdXQotICAgICAgICAgICAgdDAsIHQx ID0gW3ZpZXdfb2Zmc2V0X2xpbmUoMSwgbCkgZm9yIGwgaW4gY1szOjVdXQorICAgICAgICAgICAg I2YwLCBmMSA9IFt2aWV3X29mZnNldF9saW5lKDAsIGwpIGZvciBsIGluIGNbMTozXV0KKyAgICAg ICAgICAgICN0MCwgdDEgPSBbdmlld19vZmZzZXRfbGluZSgxLCBsKSBmb3IgbCBpbiBjWzM6NV1d CisgICAgICAgICAgICBmMCwgZjEgPSB2aWV3X29mZnNldF9mcm9tX2xpbmVfcmFuZ2UoMCwgY1sx XSwgY1syXSkKKyAgICAgICAgICAgIHQwLCB0MSA9IHZpZXdfb2Zmc2V0X2Zyb21fbGluZV9yYW5n ZSgxLCBjWzNdLCBjWzRdKQogCiAgICAgICAgICAgICBjdWxsZWQgPSBGYWxzZQogICAgICAgICAg ICAgIyBJZiBlaXRoZXIgZW5kcG9pbnQgaXMgY29tcGxldGVseSBvZmYtc2NyZWVuLCB3ZSBjdWxs IGZvciBjbGFyaXR5CkBAIC0yNjUsMTEgKzI3OCwyMyBAQCBjbGFzcyBMaW5rTWFwKGd0ay5EcmF3 aW5nQXJlYSk6CiAgICAgICAgICAgICBib3VuZHMuYXBwZW5kKHYuZ2V0X2xpbmVfbnVtX2Zvcl95 KHZpc2libGUueSkpCiAgICAgICAgICAgICBib3VuZHMuYXBwZW5kKHYuZ2V0X2xpbmVfbnVtX2Zv cl95KHZpc2libGUueSArIHZpc2libGUuaGVpZ2h0KSkKIAorICAgICAgICBkZWYgdmlld19vZmZz ZXRfZnJvbV9saW5lX3JhbmdlKHYsIGksIGYpOgorICAgICAgICAgICAgbzEgPSBzZWxmLnZpZXdz W3ZdLmdldF95X2Zvcl9saW5lX251bShmKSAtIHZpc19vZmZzZXRbdl0gKyByZWxfb2Zmc2V0W3Zd CisgICAgICAgICAgICBpZiBpID09IGYgYW5kIGkgPiAwOgorICAgICAgICAgICAgICAgIG8wID0g bzEgLSBzZWxmLnZpZXdzW3ZdLmdldF9waXhlbHNfYmVsb3dfZm9yX2xpbmVfbnVtKGkgLSAxKQor ICAgICAgICAgICAgICAgIHByaW50KCJsaW5lcyB7fSB0byB7fSwgb2Zmc2V0czoge30sIHt9Ii5m b3JtYXQoaSwgZiwgbzAsIG8xKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg bzAgPSBzZWxmLnZpZXdzW3ZdLmdldF95X2Zvcl9saW5lX251bShpKQorICAgICAgICAgICAgcmV0 dXJuIG8wLCBvMQorCisgICAgICAgICMgVE9ETzogcmVtb3ZlCiAgICAgICAgIHZpZXdfb2Zmc2V0 X2xpbmUgPSBsYW1iZGEgdiwgbDogc2VsZi52aWV3c1t2XS5nZXRfeV9mb3JfbGluZV9udW0obCkg LSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlzX29mZnNldFt2 XSArIHJlbF9vZmZzZXRbdl0KICAgICAgICAgZm9yIGMgaW4gc2VsZi5maWxlZGlmZi5saW5lZGlm ZmVyLnBhaXJfY2hhbmdlcyhzcmMsIGRzdCwgYm91bmRzKToKLSAgICAgICAgICAgIGYwLCBmMSA9 IFt2aWV3X29mZnNldF9saW5lKHNyY19pZHgsIGwpIGZvciBsIGluIGNbMTozXV0KLSAgICAgICAg ICAgIHQwLCB0MSA9IFt2aWV3X29mZnNldF9saW5lKGRzdF9pZHgsIGwpIGZvciBsIGluIGNbMzo1 XV0KKyAgICAgICAgICAgICNmMCwgZjEgPSBbdmlld19vZmZzZXRfbGluZShzcmNfaWR4LCBsKSBm b3IgbCBpbiBjWzE6M11dCisgICAgICAgICAgICAjdDAsIHQxID0gW3ZpZXdfb2Zmc2V0X2xpbmUo ZHN0X2lkeCwgbCkgZm9yIGwgaW4gY1szOjVdXQorICAgICAgICAgICAgZjAsIGYxID0gdmlld19v ZmZzZXRfZnJvbV9saW5lX3JhbmdlKHNyY19pZHgsIGNbMV0sIGNbMl0pCisgICAgICAgICAgICB0 MCwgdDEgPSB2aWV3X29mZnNldF9mcm9tX2xpbmVfcmFuZ2UoZHN0X2lkeCwgY1szXSwgY1s0XSkK IAogICAgICAgICAgICAgZjAgPSB2aWV3X29mZnNldF9saW5lKHNyY19pZHgsIGNbMV0pCiAKZGlm ZiAtLWdpdCBhL21lbGQvdXRpbC9zb3VyY2V2aWV3ZXIucHkgYi9tZWxkL3V0aWwvc291cmNldmll d2VyLnB5CmluZGV4IDkwODEwMTMuLmY4MDZmZGYgMTAwNjQ0Ci0tLSBhL21lbGQvdXRpbC9zb3Vy Y2V2aWV3ZXIucHkKKysrIGIvbWVsZC91dGlsL3NvdXJjZXZpZXdlci5weQpAQCAtMTk2LDUgKzE5 Niw1NiBAQCBjbGFzcyBNZWxkU291cmNlVmlldyhzcmN2aWV3ZXIuR3RrVGV4dFZpZXcpOgogICAg ICAgICAgICAgcmV0dXJuIHkgKyBoIC0gMQogICAgICAgICByZXR1cm4geQogCisgICAgZGVmIGdl dF95X2Zvcl9saW5lX3JhbmdlKHNlbGYsIGxpLCBsZik6CisgICAgICAgIGlmIGxmID4gMDoKKyAg ICAgICAgICAgIHBhZGRpbmcgPSBzZWxmLmdldF9waXhlbHNfYmVsb3dfZm9yX2xpbmVfbnVtKGxm IC0gMSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHBhZGRpbmcgPSAwICMgRklYTUUKKyAg ICAgICAgeWYgPSBzZWxmLmdldF95X2Zvcl9saW5lX251bShsZikgLSBwYWRkaW5nCisgICAgICAg IGlmIGxpID09IGxmOgorICAgICAgICAgICAgeWkgPSB5ZgorICAgICAgICBlbHNlOgorICAgICAg ICAgICAgeWkgPSBzZWxmLmdldF95X2Zvcl9saW5lX251bShsaSkKKyAgICAgICAgcmV0dXJuIHlp LCB5ZiwgcGFkZGluZworCisgICAgZGVmIGdldF9keV9mb3JfbGluZV9yYW5nZShzZWxmLCBsaSwg bGYpOgorICAgICAgICB5aSwgeWYsIHBhZGRpbmcgPSBzZWxmLmdldF95X2Zvcl9saW5lX3Jhbmdl KGxpLCBsZikKKyAgICAgICAgcmV0dXJuIHlmIC0geWkKKwogICAgIGRlZiBnZXRfbGluZV9udW1f Zm9yX3koc2VsZiwgeSk6CiAgICAgICAgIHJldHVybiBzZWxmLmdldF9saW5lX2F0X3koeSlbMF0u Z2V0X2xpbmUoKQorCisgICAgZGVmIF9fZ2V0X3BpeGVsc19iZWxvd190YWdfZm9yX2xpbmVfbnVt KHNlbGYsIGxpbmUpOgorICAgICAgICBpdCA9IHNlbGYuZ2V0X2J1ZmZlcigpLmdldF9pdGVyX2F0 X2xpbmUobGluZSkKKyAgICAgICAgZm9yIHRhZyBpbiBpdC5nZXRfdGFncygpOgorICAgICAgICAg ICAgaWYgdGFnLmdldF9wcm9wZXJ0eSgicGl4ZWxzLWJlbG93LWxpbmVzLXNldCIpOgorICAgICAg ICAgICAgICAgIHJldHVybiB0YWcKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBnZXRf cGl4ZWxzX2JlbG93X2Zvcl9saW5lX251bShzZWxmLCBsaW5lKToKKyAgICAgICAgdGFnID0gc2Vs Zi5fX2dldF9waXhlbHNfYmVsb3dfdGFnX2Zvcl9saW5lX251bShsaW5lKQorICAgICAgICBpZiB0 YWc6CisgICAgICAgICAgICByZXR1cm4gdGFnLmdldF9wcm9wZXJ0eSgicGl4ZWxzLWJlbG93LWxp bmVzIikKKyAgICAgICAgcmV0dXJuIDAKKworICAgIGRlZiBzZXRfcGl4ZWxzX2JlbG93X2Zvcl9s aW5lX251bShzZWxmLCBsaW5lLCBweCk6CisgICAgICAgIGJ1ZiA9IHNlbGYuZ2V0X2J1ZmZlcigp CisgICAgICAgIGl0ID0gYnVmLmdldF9pdGVyX2F0X2xpbmUobGluZSkKKyAgICAgICAgaXQyID0g YnVmLmdldF9pdGVyX2F0X2xpbmUobGluZSArIDEpCisgICAgICAgIHRhZyA9IHNlbGYuX19nZXRf cGl4ZWxzX2JlbG93X3RhZ19mb3JfbGluZV9udW0obGluZSkKKyAgICAgICAgaWYgbm90IHRhZzoK KyAgICAgICAgICAgIHRhZyA9IGJ1Zi5jcmVhdGVfdGFnKCkKKyAgICAgICAgICAgIHRhZy5zZXRf cHJvcGVydHkoInBpeGVscy1iZWxvdy1saW5lcy1zZXQiLCBUcnVlKQorICAgICAgICB0YWcuc2V0 X3Byb3BlcnR5KCJwaXhlbHMtYmVsb3ctbGluZXMiLCBweCkKKyAgICAgICAgaWYgcHggIT0gMDoK KyAgICAgICAgICAgIGJ1Zi5hcHBseV90YWcodGFnLCBpdCwgaXQyKQorICAgICAgICBlbHNlOgor ICAgICAgICAgICAgYnVmLnJlbW92ZV90YWcodGFnLCBpdCwgaXQyKQorCisgICAgZGVmIGNsZWFu X3BpeGVsc19iZWxvd19mb3JfbGluZV9yYW5nZShzZWxmLCBsaSwgbGYpOgorICAgICAgICBidWYg PSBzZWxmLmdldF9idWZmZXIoKQorICAgICAgICBpdCA9IGJ1Zi5nZXRfaXRlcl9hdF9saW5lKGxp KQorICAgICAgICBpdDIgPSBidWYuZ2V0X2l0ZXJfYXRfbGluZShsZiArIDEpCisgICAgICAgIGZv ciB0YWcgaW4gaXQuZ2V0X3RhZ3MoKToKKyAgICAgICAgICAgIGlmIHRhZy5nZXRfcHJvcGVydHko InBpeGVscy1iZWxvdy1saW5lcy1zZXQiKToKKyAgICAgICAgICAgICAgICBidWYucmVtb3ZlX3Rh Zyh0YWcsIGl0LCBpdDIpCi0tIAoxLjguMi5yYzEKCg== --047d7b86db6014a71804d90262fc-- From kai.willadsen@gmail.com Fri Mar 29 01:38:02 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 267F97697F for ; Fri, 29 Mar 2013 01:38:02 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.7 X-Spam-Level: X-Spam-Status: No, score=-2.7 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id cnV2uPrP4j6h for ; Fri, 29 Mar 2013 01:37:51 +0000 (UTC) Received: from mail-wg0-f50.google.com (mail-wg0-f50.google.com [74.125.82.50]) by restaurant.gnome.org (Postfix) with ESMTP id 34D1F769F1 for ; Fri, 29 Mar 2013 01:37:50 +0000 (UTC) Received: by mail-wg0-f50.google.com with SMTP id k13so99489wgh.5 for ; Thu, 28 Mar 2013 18:37:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=swGjDDzKFdApw7S5ozR0IMFe47oJ8fjzt5GHr4L38bs=; b=EAQTu42XCgvgBZA8ehUxO1vWB3cGiGRk5NBR6TgXoNoqYoIAIrKgEPG0LXcjkRbc63 zGdjxTr6cnCWdKysobB5JrjOYDsu+qjUrmpkp/JHJRJ809Q+XZzgfcXNc/43C1+ZrzpU OoCmXt1hDPVbRV+2Nu4SSuJ+xdnrMIYdzjRAzvN0Vzh1KHjvh5g2f96RJ+CrW+3cHhS+ 0Q5SBrEYR/EAsdS4pMDdyXwtUVgQcTOacAoTE7S89nb3vMv2AfsGzzmNZcm/0g7LPUR9 I1S/2hlw/2+Ga6h7ajsbUJ6X44lye4CXegzkA4YK7UA9L4DVfPt6PtY76FROGaZt9mYH c10g== MIME-Version: 1.0 X-Received: by 10.180.90.35 with SMTP id bt3mr19330269wib.4.1364521069096; Thu, 28 Mar 2013 18:37:49 -0700 (PDT) Received: by 10.217.69.73 with HTTP; Thu, 28 Mar 2013 18:37:48 -0700 (PDT) In-Reply-To: <20130326130828.55882346@gmx.net> References: <20130326130828.55882346@gmx.net> Date: Fri, 29 Mar 2013 11:37:48 +1000 Message-ID: Subject: Re: Outdated download link and news From: Kai Willadsen To: tobias-mail@gmx.net Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Mar 2013 01:38:02 -0000 On 26 March 2013 22:08, wrote: > Hey, > > I just browsed the mailing list archive and found out that version 1.7.1 > is already released... I only checked the front page > (http://meldmerge.org/) for new releases until now, which still offers > 1.6.1 as the latest release. The News page is a bit more up to date > (1.7.0). > > Please consider updating the web site :) The reason it was like that is that the front page only had one release, and I'm not really happy promoting the current development release as what people should be grabbing, despite the fact that it's reasonably solid. The news page was just an oversight. Anyway, the front page now has a pair of download links, and 1.7.1 notes are up. cheers, Kai From kai.willadsen@gmail.com Sun Mar 31 23:35:37 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 49B8C76AE9 for ; Sun, 31 Mar 2013 23:35:37 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.69 X-Spam-Level: X-Spam-Status: No, score=-2.69 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, T_FRT_BEFORE=0.01] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Q8dDR17a4eDV for ; Sun, 31 Mar 2013 23:35:26 +0000 (UTC) Received: from mail-we0-f169.google.com (mail-we0-f169.google.com [74.125.82.169]) by restaurant.gnome.org (Postfix) with ESMTP id 7C2A576AA3 for ; Sun, 31 Mar 2013 23:35:25 +0000 (UTC) Received: by mail-we0-f169.google.com with SMTP id x43so1456402wey.14 for ; Sun, 31 Mar 2013 16:35:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=ocGCHwKmRC3ncvtmPtNb+40ETfG86Hq7X4XtE00ihq4=; b=X112Hwx2H0jFrrQyPSffvjN/Ig45Qm+QWTf4E2v5vQ0r8CEasmX5fAiF2IXksrHf41 M+uCu6ihuTJfIdZ3Rnqtb2tvD6V/EdzPCPlsRrf1Bgm5KQUMyl8oIQ1AQAgqQnDARyaW 1QYZSJGM/eQl0JVYGOiUovIPTAhc9owNoXJru2yVy3N5s3PcUIeZBWu+vRoEXJNGo4yA bztJ9fXC+AgkZPnNJNe8nmjB01x9n8cY5J25hMxiMqbil6B6ogRhL/F36t6sx3QmF1ps eLpbvMX/bXqoW9Rk+Kxmy6z96d1c0C0hEUdeIjNc23Ow46cDqUsslztk2ivA5ZSWKMnk MCDA== MIME-Version: 1.0 X-Received: by 10.194.176.165 with SMTP id cj5mr12957123wjc.37.1364772923949; Sun, 31 Mar 2013 16:35:23 -0700 (PDT) Received: by 10.217.69.73 with HTTP; Sun, 31 Mar 2013 16:35:23 -0700 (PDT) In-Reply-To: References: Date: Mon, 1 Apr 2013 09:35:23 +1000 Message-ID: Subject: Re: "static/fixed" mode on file diff view From: Kai Willadsen To: Pedro Pedruzzi Content-Type: multipart/mixed; boundary=089e013d15d854cff004d940f56b Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 31 Mar 2013 23:35:37 -0000 --089e013d15d854cff004d940f56b Content-Type: text/plain; charset=UTF-8 On 29 March 2013 06:56, Pedro Pedruzzi wrote: > Hello, > > I have added an initial (broken) support for 3-way in the attached > patch and at github [1]. But I need some help to move on: > > 1. Where to do the tag creation/update logic (still) > > I've moved the logic to the on_diffs_changed callback because I need > the set of chunks that had been changed. But it appears that I can't > do this at that point because the textview has not been refreshed yet, > neither yranges that are needed for the padding logic. So this is > currently broken when some text change affects yranges > (adding/removing of newline, line wrap etc). Adding a subsequent space > usualy fix things. > > For my logic to work I would need: > > * The set of changed chunks (the ones to update the padding). > * refreshed textview so yranges are ok. This is visual, however, so we can't really tie changed chunks to ones that need updated padding. What happens if the user resizes the window and line wrapping changes the offsets? I don't know whether we can do this sanely. We can *create* the tags in on_diffs_changed, but I think we have no choice but to get the yranges and update padding in the expose event. Do you think that that will fix the problem? > I tried to save the changed_chunks on diffs_changed to later process > on on_textview_expose_event. But the first call happens before the > yranges gets updated, and there are many calls even without text > edition. > > Any thougths? I think this may be intrinsically slow, so I would say to get something working properly, and then worry about doing invalidation and optimisation. I suspect that it will be very difficult to do this both quickly and correctly. > 2. Complete line ranges for 3-way diffs > > To support 3-way diffs I have to know the line ranges on all three > panes for each chunk so I can create the padding tags. However, > diffutils only provides line ranges for the panels that differs. For > chunks that are identical between two consecutive panes, I don't have > the line range for one of them. > > I took a look at diffutils but it doesn't seem simple enough for me to > adapt. Any suggestions? So... this is a bit of a nightmare. This is only possible with a significant change in our chunk handling... or some very dirty hacks. Luckily, we already have such hacks. The problem is that we discard equal chunks when we do a comparison. This leads to pain. The only short-term solution I could think of was to reuse FileDiff._synth_chunk() and adjust offsets from there. I've attached a patch that does just this, and mostly fixes these problems. There are still issues with this. Most obviously, this doesn't work in expose_event because of the single_changes iteration... though I'm sure we could hack around this. The more serious problem is with the way we do this tag handling. If a single line needs two tags (this can easily happen by combining insert and conflict chunks or similar) then we lose our sync. I'm not sure what the best solution to this is... maybe we need to add some handling for accumulative pixels-below-line tags? > 3. Other bugs > > I have noticed many other bugs. Mainly when diffs change in such a way > that the line with padding gets lost of track or when diffs split. But > I believe this comes next. Agreed. Again, I think it's necessary to get things working a piece at a time. One idea that I wanted to mention was with regard to the tag handling. My original thought (though I have no idea how well this would work) was to tie each tag to an individual chunk, not a line. So, for example, when you created a tag, you would number it according to which chunk it was attached to. I'm not sure what the implications of this would be for e.g., the accumulative pixels-below-line problem I mentioned above, but it might make handling splitting of diffs easier... or it might not. I just thought I'd raise the possibility. Also, Meld currently runs (and I test on) Python 2.6. So, for example, when doing debug lines, etc. please use the {0} syntax for formatting instead of the {}. cheers, Kai --089e013d15d854cff004d940f56b Content-Type: application/octet-stream; name="0001-Python-2.6-compat.patch" Content-Disposition: attachment; filename="0001-Python-2.6-compat.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_heys8e6d1 RnJvbSBmY2MxM2MzYTc5Y2VjYWJmNDdlNjc1NjE2M2RmZDdiNzFhYzcyMTc2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBLYWkgV2lsbGFkc2VuIDxrYWkud2lsbGFkc2VuQGdtYWlsLmNv bT4KRGF0ZTogTW9uLCAxIEFwciAyMDEzIDA4OjI3OjQ1ICsxMDAwClN1YmplY3Q6IFtQQVRDSCAx LzJdIFB5dGhvbiAyLjYgY29tcGF0CgotLS0KIG1lbGQvZmlsZWRpZmYucHkgfCAgICA2ICsrKy0t LQogMSBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvbWVsZC9maWxlZGlmZi5weSBiL21lbGQvZmlsZWRpZmYucHkKaW5kZXggOWZjZWE2 ZC4uMjE2MTIxYSAxMDA2NDQKLS0tIGEvbWVsZC9maWxlZGlmZi5weQorKysgYi9tZWxkL2ZpbGVk aWZmLnB5CkBAIC0xMTcyLDEzICsxMTcyLDEzIEBAIGNsYXNzIEZpbGVEaWZmKG1lbGRkb2MuTWVs ZERvYywgZ25vbWVnbGFkZS5Db21wb25lbnQpOgogCiAgICAgICAgIGRlZiBhbGxfY2h1bmtzKCk6 CiAgICAgICAgICAgICBmb3IgeCBpbiByZW1vdmVkX2NodW5rczoKLSAgICAgICAgICAgICAgICBw cmludCgicmVtb3ZlZDoge30iLmZvcm1hdCh4KSkKKyAgICAgICAgICAgICAgICBwcmludCgicmVt b3ZlZDogezB9Ii5mb3JtYXQoeCkpCiAgICAgICAgICAgICAgICAgeWllbGQgeAogICAgICAgICAg ICAgZm9yIHggaW4gYWRkZWRfY2h1bmtzOgotICAgICAgICAgICAgICAgIHByaW50KCJhZGRlZDog e30iLmZvcm1hdCh4KSkKKyAgICAgICAgICAgICAgICBwcmludCgiYWRkZWQ6IHswfSIuZm9ybWF0 KHgpKQogICAgICAgICAgICAgICAgIHlpZWxkIHgKICAgICAgICAgICAgIGlmIG1vZGlmaWVkX2No dW5rczogIyBvbmx5IG9uZT8KLSAgICAgICAgICAgICAgICBwcmludCgibW9kaWZpZWQ6IHt9Ii5m b3JtYXQobW9kaWZpZWRfY2h1bmtzKSkKKyAgICAgICAgICAgICAgICBwcmludCgibW9kaWZpZWQ6 IHswfSIuZm9ybWF0KG1vZGlmaWVkX2NodW5rcykpCiAgICAgICAgICAgICAgICAgeWllbGQgbW9k aWZpZWRfY2h1bmtzCiAKICAgICAgICAgIyBGSVhNRTogV2UgY2FuJ3QgZml4IHRoZSBwYWRkaW5n cyBhdCB0aGlzIHBvaW50IGJlY2F1c2UgdGhlIHRleHR2aWV3Ci0tIAoxLjcuMy40Cgo= --089e013d15d854cff004d940f56b Content-Type: application/octet-stream; name="0002-Partially-fix-three-way-diff-in-cases-of-missing-Sam.patch" Content-Disposition: attachment; filename="0002-Partially-fix-three-way-diff-in-cases-of-missing-Sam.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_heys8e6o2 RnJvbSAwMTM5MmM0OWUyYTA5YmY2YTBlNjJiMDUyZjEzYmNlYWY2MjAzYWQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBLYWkgV2lsbGFkc2VuIDxrYWkud2lsbGFkc2VuQGdtYWlsLmNv bT4KRGF0ZTogTW9uLCAxIEFwciAyMDEzIDA4OjI5OjEwICsxMDAwClN1YmplY3Q6IFtQQVRDSCAy LzJdIFBhcnRpYWxseSBmaXggdGhyZWUtd2F5IGRpZmYgaW4gY2FzZXMgb2YgbWlzc2luZyBTYW1l IGNodW5rcwoKLS0tCiBtZWxkL2ZpbGVkaWZmLnB5IHwgICAyMCArKysrKysrKysrKysrKystLS0t LQogMSBmaWxlcyBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL21lbGQvZmlsZWRpZmYucHkgYi9tZWxkL2ZpbGVkaWZmLnB5CmluZGV4IDIxNjEy MWEuLmJjNmJjNzEgMTAwNjQ0Ci0tLSBhL21lbGQvZmlsZWRpZmYucHkKKysrIGIvbWVsZC9maWxl ZGlmZi5weQpAQCAtMTE0MywyMiArMTE0MywzMiBAQCBjbGFzcyBGaWxlRGlmZihtZWxkZG9jLk1l bGREb2MsIGdub21lZ2xhZGUuQ29tcG9uZW50KToKICAgICAgICAgICAgICAgICBscmFuZ2VbMV0g PSBjaGFuZ2VbMF1bMTozXQogICAgICAgICAgICAgICAgIGxyYW5nZVswXSA9IGNoYW5nZVswXVsz OjVdCiAgICAgICAgICAgICAgICAgaWYgbm90IGNoYW5nZVsxXToKLSAgICAgICAgICAgICAgICAg ICAgbHJhbmdlWzJdID0gbHJhbmdlWzFdICMgRklYTUU6IFRoaXMgaXMgd3JvbmcuIE1ha2UgZGlm ZnV0aWwgcHJvdmlkZSB0aGUgbGluZSByYW5nZSBmb3IgYWxsIHBhbmVscyBhbGwgdGhlIHRpbWUu CisgICAgICAgICAgICAgICAgICAgICMgU3ludGhlc2l6ZSBhIGZha2UgJ1NhbWUnIGNodW5rIGFu ZCBvZmZzZXQgYmFzZWQgb24gY2h1bmsKKyAgICAgICAgICAgICAgICAgICAgIyBwb3NpdGlvbiB3 aXRoaW4gdGhlIG90aGVyIHNpZGUuCisgICAgICAgICAgICAgICAgICAgIGZha2VfY2h1bmsgPSBz ZWxmLl9zeW50aF9jaHVuaygxLCAyLCBscmFuZ2VbMV1bMF0pCisgICAgICAgICAgICAgICAgICAg IGZha2Vfc3RhcnQgPSBmYWtlX2NodW5rWzNdICsgKGxyYW5nZVsxXVswXSAtIGZha2VfY2h1bmtb MV0pCisgICAgICAgICAgICAgICAgICAgIGZha2VfZW5kID0gZmFrZV9jaHVua1szXSArIChscmFu Z2VbMV1bMV0gLSBmYWtlX2NodW5rWzFdKQorICAgICAgICAgICAgICAgICAgICBscmFuZ2VbMl0g PSAoZmFrZV9zdGFydCwgZmFrZV9lbmQpCiAgICAgICAgICAgICBpZiBjaGFuZ2VbMV06CiAgICAg ICAgICAgICAgICAgbHJhbmdlWzFdID0gY2hhbmdlWzFdWzE6M10KICAgICAgICAgICAgICAgICBs cmFuZ2VbMl0gPSBjaGFuZ2VbMV1bMzo1XQogICAgICAgICAgICAgICAgIGlmIG5vdCBjaGFuZ2Vb MF06Ci0gICAgICAgICAgICAgICAgICAgIGxyYW5nZVswXSA9IGxyYW5nZVsxXSAjIEZJWE1FOiBT YW1lIGFzIGFib3ZlLgorICAgICAgICAgICAgICAgICAgICAjIEFzIGFib3ZlCisgICAgICAgICAg ICAgICAgICAgIGZha2VfY2h1bmsgPSBzZWxmLl9zeW50aF9jaHVuaygxLCAwLCBscmFuZ2VbMV1b MF0pCisgICAgICAgICAgICAgICAgICAgIGZha2Vfc3RhcnQgPSBmYWtlX2NodW5rWzNdICsgKGxy YW5nZVsxXVswXSAtIGZha2VfY2h1bmtbMV0pCisgICAgICAgICAgICAgICAgICAgIGZha2VfZW5k ID0gZmFrZV9jaHVua1szXSArIChscmFuZ2VbMV1bMV0gLSBmYWtlX2NodW5rWzFdKQorICAgICAg ICAgICAgICAgICAgICBscmFuZ2VbMF0gPSAoZmFrZV9zdGFydCwgZmFrZV9lbmQpCiAKICAgICAg ICAgICAgIGVuZG1pbiA9IG1pbihyWzFdIGZvciByIGluIGxyYW5nZSkKICAgICAgICAgICAgIGlm IGVuZG1pbiA9PSAwOgogICAgICAgICAgICAgICAgIGNvbnRpbnVlICMgRklYTUU6IGNhbid0IGFk ZCBwYWRkaW5nIGJlZm9yZSBsaW5lIDAgd2l0aCBwaXhlbHMtYmVsb3ctbGluZXMKLSAgICAgICAg ICAgIGR5ID0gW3NlbGYudGV4dHZpZXdbaV0uZ2V0X2R5X2Zvcl9saW5lX3JhbmdlKGxyYW5nZVtp XVswXSwgbHJhbmdlW2ldWzFdKSBmb3IgaSBpbiByYW5nZShsZW4oc2VsZi50ZXh0YnVmZmVyKSld CisgICAgICAgICAgICBkeSA9IFtzZWxmLnRleHR2aWV3W2ldLmdldF9keV9mb3JfbGluZV9yYW5n ZShscmFuZ2VbaV1bMF0sIGxyYW5nZVtpXVsxXSkgZm9yIGkgaW4gcmFuZ2Uoc2VsZi5udW1fcGFu ZXMpXQogICAgICAgICAgICAgZHltYXggPSBtYXgoZHkpCiAKICAgICAgICAgICAgICNwcmludCgn bHJhbmdlIHt9IC0+IGR5IHt9Jy5mb3JtYXQobHJhbmdlLCBkeSkpCi0gICAgICAgICAgICBmb3Ig aSBpbiByYW5nZShsZW4oc2VsZi50ZXh0YnVmZmVyKSk6Ci0gICAgICAgICAgICAgICAgc2VsZi50 ZXh0dmlld1tpXS5jbGVhbl9waXhlbHNfYmVsb3dfZm9yX2xpbmVfcmFuZ2UobHJhbmdlW2ldWzBd LCBscmFuZ2VbaV1bMV0pICMgRklYTUUKKyAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKHNlbGYu bnVtX3BhbmVzKToKKyAgICAgICAgICAgICAgICBzZWxmLnRleHR2aWV3W2ldLmNsZWFuX3BpeGVs c19iZWxvd19mb3JfbGluZV9yYW5nZSgKKyAgICAgICAgICAgICAgICAgICAgbHJhbmdlW2ldWzBd LCBscmFuZ2VbaV1bMV0gLSAxKQogICAgICAgICAgICAgICAgIHBhZGRpbmcgPSBkeW1heCAtIGR5 W2ldCiAgICAgICAgICAgICAgICAgc2VsZi50ZXh0dmlld1tpXS5zZXRfcGl4ZWxzX2JlbG93X2Zv cl9saW5lX251bShscmFuZ2VbaV1bMV0gLSAxLCBwYWRkaW5nKQogCi0tIAoxLjcuMy40Cgo= --089e013d15d854cff004d940f56b-- From kai.willadsen@gmail.com Sun Mar 31 23:38:02 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 6FA8276C4F for ; Sun, 31 Mar 2013 23:38:02 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -2.7 X-Spam-Level: X-Spam-Status: No, score=-2.7 tagged_above=-999 required=2 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yl4x2gto22GD for ; Sun, 31 Mar 2013 23:37:52 +0000 (UTC) Received: from mail-wi0-f176.google.com (mail-wi0-f176.google.com [209.85.212.176]) by restaurant.gnome.org (Postfix) with ESMTP id 0440676AA3 for ; Sun, 31 Mar 2013 23:37:51 +0000 (UTC) Received: by mail-wi0-f176.google.com with SMTP id hm14so1153906wib.15 for ; Sun, 31 Mar 2013 16:37:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=CYGzn5A52olHSOV+GtxUApgXu3lqCkyG+GbfLDt53sk=; b=MwMRLGNvrgic0lc/fCXqeazXT4X3vjpeandvo4R17Pgo5yJlpuZOXNnCJ1Gbgv6Hlu 4GwxY5eWQCU6tfby4JmJvdCNkg4TpEcPJ4w+5e2ulkJpglZkzPuL6yvIk5H+DFFyjkSW cIwPfmD/ROMweeNhw+AM+cTMfzotuc7ejhYxONMP9WHZ0ijlylJCxzIBGOsFEZCfkis/ 9jVxY5ikkMouNUEEw9ezSyeUbYVJaDpbRBBkPL4MRLK7lulSwDeyATdRCEGxwtoeYgvL AM6F7TYgsli0LeEovGiTQOE6nPdhFy2nczNlUxtnD+AaQkxqM/amNATlABz0g7tJiXwE 7bZQ== MIME-Version: 1.0 X-Received: by 10.180.103.65 with SMTP id fu1mr7428784wib.4.1364773069598; Sun, 31 Mar 2013 16:37:49 -0700 (PDT) Received: by 10.217.69.73 with HTTP; Sun, 31 Mar 2013 16:37:49 -0700 (PDT) In-Reply-To: References: Date: Mon, 1 Apr 2013 09:37:49 +1000 Message-ID: Subject: Re: Feature Request: Enabling opening files externally at a particular line number From: Kai Willadsen To: Konstantin Content-Type: text/plain; charset=UTF-8 Cc: meld-list X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 31 Mar 2013 23:38:02 -0000 On 25 March 2013 06:26, Konstantin wrote: > Hi all, > > Thanks for your feedback. I decided to quickly learn some python and > implement this feature myself in the way you suggested. Attached are three > diff (patch) files. > Now you can use $file and $line words in the editor command text box. For > example: > > sublime_text $file:$line > or > C:\PROGRA~1\ConTEXT\context.exe /g0:$line $file > > if you don't provide $file than everything after the first space is ignored > > I am sure there is plenty space for improvement therefore i am looking > forward to your comments. Thanks for having a go! I think it's probably going to be a bit more complicated, but this is a good start. In FileDiff, we can't just use self.cursor; we'll have to get the cursor line from the buffer pane from which the file is being opened. In MeldDoc, we shouldn't do any additional processing on commands retrieved from desktop defaults. I think the easiest way around this is to put the pattern processing into get_editor_command itself. Finally, I'm not sure what to do about the keywords. While part of me wants to use desktop-file-style %-format specifiers, I think that using Python 2.6 format specifications is really the only sane option, particularly since all the sanity parsing is already done for us. What do you think about supporting something like "sublime {file}:{line}" instead? > I have not changed the preferences dialog yet but will do it shortly. I'm not sure that the preferences dialog needs changing; adding details about the tokens and such to the documentation should be fine. cheers, Kai From peter@somborneshetlands.co.uk Sun Mar 31 16:03:36 2013 Return-Path: X-Original-To: meld-list@gnome.org Delivered-To: meld-list@gnome.org Received: from localhost (localhost.localdomain [127.0.0.1]) by restaurant.gnome.org (Postfix) with ESMTP id 4C1BE76AE9 for ; Sun, 31 Mar 2013 16:03:36 +0000 (UTC) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Flag: NO X-Spam-Score: -1.9 X-Spam-Level: X-Spam-Status: No, score=-1.9 tagged_above=-999 required=2 tests=[BAYES_00=-1.9] autolearn=ham Received: from restaurant.gnome.org ([127.0.0.1]) by localhost (restaurant.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id flVl2uz8fXAf for ; Sun, 31 Mar 2013 16:03:35 +0000 (UTC) Received: from smtp.webfaction.com (mail6.webfaction.com [74.55.86.74]) by restaurant.gnome.org (Postfix) with ESMTP id 9DA0276AA3 for ; Sun, 31 Mar 2013 16:03:35 +0000 (UTC) Received: from [192.168.0.7] (cust42-dsl46.idnet.net [212.69.46.42]) by smtp.webfaction.com (Postfix) with ESMTP id A711920AACAB for ; Sun, 31 Mar 2013 16:03:33 +0000 (UTC) Message-ID: <51585E53.8090300@somborneshetlands.co.uk> Date: Sun, 31 Mar 2013 17:03:31 +0100 From: Peter Hardman User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130311 Thunderbird/17.0.4 MIME-Version: 1.0 To: meld-list@gnome.org Subject: FileChooser in 1.7.1 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Mon, 01 Apr 2013 08:35:47 +0000 X-BeenThere: meld-list@gnome.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Discussion about the Meld visual diff and merge tool List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 31 Mar 2013 16:03:36 -0000 I run Arch Linux x86_64 Just updated to 1.7.1 and I see that GTK's filechooser now opens in the (to me) wholly useless and annoying 'Recently Used' pseudo folder rather than the previous behaviour of opening in $HOME or the last directory I opened a file in. Is this a side-effect of having the MRU in the File menu? I can't believe it's deliberate as with the new MRU it's completely pointless having filechooser open in 'Recently Used'. Pete -- Peter Hardman