From 093b642d55b72e299627a5c886a4328c9dc11ae8 Mon Sep 17 00:00:00 2001 From: "Christopher J. Brody" Date: Thu, 23 Aug 2018 14:18:51 -0400 Subject: [PATCH 01/43] Followup test fix for iOS Web SQL Followup fix for the following commit: 62767f6 - spec rename isWKWebView to hasMobileWKWebView --- spec/www/spec/browser-check-startup.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/www/spec/browser-check-startup.js b/spec/www/spec/browser-check-startup.js index e21d19b..d0f7ff4 100644 --- a/spec/www/spec/browser-check-startup.js +++ b/spec/www/spec/browser-check-startup.js @@ -14,7 +14,7 @@ var isAppleMobileOS = /iPhone/.test(navigator.userAgent) || var hasMobileWKWebView = isAppleMobileOS && !!window.webkit && !!window.webkit.messageHandlers; window.hasBrowser = true; -window.hasWebKitWebSQL = isAndroid || (isAppleMobileOS && !isWKWebView) || (isWebKitBrowser && !isEdgeBrowser); +window.hasWebKitWebSQL = isAndroid || (isAppleMobileOS && !hasMobileWKWebView) || (isWebKitBrowser && !isEdgeBrowser); describe('Check startup for navigator.userAgent: ' + navigator.userAgent, function() { it('receives deviceready event', function(done) { From 21eb6662abbc406508805d8dee53a113381bc598 Mon Sep 17 00:00:00 2001 From: "Christopher J. Brody" Date: Tue, 25 Sep 2018 10:36:01 -0400 Subject: [PATCH 02/43] Update evcore-native-driver.jar from cordova-sqlite-evcore-free-dependencies 0.8.4 ref: litehelpers/Cordova-sqlite-evcore-extbuild-free#40 --- CHANGES.md | 4 +++ package.json | 2 +- plugin.xml | 2 +- spec/www/spec/db-sql-operations-test.js | 18 +++++------ spec/www/spec/db-tx-error-handling-test.js | 34 ++++++++++----------- spec/www/spec/db-tx-error-mapping-test.js | 30 +++++++++--------- spec/www/spec/db-tx-value-bindings-test.js | 12 ++++---- spec/www/spec/sql-batch-test.js | 2 +- src/deps/android/evcore-native-driver.jar | Bin 3068313 -> 3141895 bytes 9 files changed, 54 insertions(+), 50 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index cb4e252..5936fb4 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,5 +1,9 @@ # Changes +# cordova-sqlite-evcore-extbuild-free 0.9.8-pre1 + +- evcore-native-driver.jar from cordova-sqlite-evcore-free-dependencies 0.8.4, with quick fix for error messages on Android + # cordova-sqlite-evcore-extbuild-free 0.9.7 - fix for multi-byte UTF-8 characters on Android ref: diff --git a/package.json b/package.json index e87250e..91320fe 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cordova-sqlite-evcore-extbuild-free", - "version": "0.9.7", + "version": "0.9.8-pre1", "description": "Cordova/PhoneGap sqlite storage - free enterprise version with Android performance/memory improvements and extra features for PhoneGap Build", "cordova": { "id": "cordova-sqlite-evcore-extbuild-free", diff --git a/plugin.xml b/plugin.xml index c472e9d..e99a42a 100644 --- a/plugin.xml +++ b/plugin.xml @@ -2,7 +2,7 @@ + version="0.9.8-pre1"> Cordova sqlite storage - free enterprise version with Android performance/memory improvements and extra features for PhoneGap Build diff --git a/spec/www/spec/db-sql-operations-test.js b/spec/www/spec/db-sql-operations-test.js index 5c94265..4271922 100755 --- a/spec/www/spec/db-sql-operations-test.js +++ b/spec/www/spec/db-sql-operations-test.js @@ -1137,7 +1137,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/Error preparing an SQLite statement/) else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/syntax error or other error.*code 1/); + expect(error.message).toMatch(/syntax error or other error.*code. 1/); else expect(error.message).toMatch(/near \"true\": syntax error/); @@ -1171,7 +1171,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/Error preparing an SQLite statement/); else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/syntax error or other error.*code 1/); + expect(error.message).toMatch(/syntax error or other error.*code. 1/); else expect(error.message).toMatch(/near \"false\": syntax error/); @@ -1205,7 +1205,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/Error preparing an SQLite statement/); else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/syntax error or other error.*code 1/); + expect(error.message).toMatch(/syntax error or other error.*code. 1/); else expect(error.message).toMatch(/near \"Infinity\": syntax error/); @@ -1239,7 +1239,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/Error preparing an SQLite statement/); else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/syntax error or other error.*code 1/); + expect(error.message).toMatch(/syntax error or other error.*code. 1/); else expect(error.message).toMatch(/near \"-\": syntax error/); @@ -1273,7 +1273,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/Error preparing an SQLite statement/); else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/syntax error or other error.*code 1/); + expect(error.message).toMatch(/syntax error or other error.*code. 1/); else expect(error.message).toMatch(/near \"NaN\": syntax error/); @@ -1307,7 +1307,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/Error preparing an SQLite statement/); else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/syntax error or other error.*code 1/); + expect(error.message).toMatch(/syntax error or other error.*code. 1/); else expect(error.message).toMatch(/near \"SLCT\": syntax error/); @@ -1341,7 +1341,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/Error preparing an SQLite statement/); else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/syntax error or other error.*code 1/); + expect(error.message).toMatch(/syntax error or other error.*code. 1/); else expect(error.message).toMatch(/near \"SLCT\": syntax error/); @@ -1594,7 +1594,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/Error preparing an SQLite statement/); else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/syntax error or other error.*code 1/); + expect(error.message).toMatch(/syntax error or other error.*code. 1/); else expect(error.message).toMatch(/near \"SELCT\": syntax error/); @@ -1624,7 +1624,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/Error preparing an SQLite statement/); else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/syntax error or other error.*code 1/); + expect(error.message).toMatch(/syntax error or other error.*code. 1/); else expect(error.message).toMatch(/no such function: uper/); diff --git a/spec/www/spec/db-tx-error-handling-test.js b/spec/www/spec/db-tx-error-handling-test.js index 1423916..3eaf797 100644 --- a/spec/www/spec/db-tx-error-handling-test.js +++ b/spec/www/spec/db-tx-error-handling-test.js @@ -1734,7 +1734,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/a statement with no error handler failed: SQLite3 step error result code: 21/); else if (!isWebSql && isAndroid && !isImpl2) - expect(error.message).toMatch(/a statement with no error handler failed: other error.*code 21/); + expect(error.message).toMatch(/a statement with no error handler failed: other error.*code. 21/); else if (isAndroid && isImpl2) expect(error.message).toMatch(/a statement with no error handler failed: query not found/); else if (!isWebSql) @@ -1800,7 +1800,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/a statement with no error handler failed: SQLite3 step error result code: 21/); else if (!isWebSql && isAndroid && !isImpl2) - expect(error.message).toMatch(/a statement with no error handler failed: other error.*code 21/); + expect(error.message).toMatch(/a statement with no error handler failed: other error.*code. 21/); else if (isAndroid && isImpl2) expect(error.message).toMatch(/a statement with no error handler failed: query not found/); else if (!isWebSql) @@ -1866,7 +1866,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/a statement with no error handler failed: SQLite3 step error result code: 21/); else if (!isWebSql && isAndroid && !isImpl2) - expect(error.message).toMatch(/a statement with no error handler failed: other error.*code 21/); + expect(error.message).toMatch(/a statement with no error handler failed: other error.*code. 21/); else if (isAndroid && isImpl2) expect(error.message).toMatch(/a statement with no error handler failed: query not found/); else if (!isWebSql) @@ -1933,7 +1933,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/a statement with no error handler failed: SQLite3 step error result code: 21/); else if (!isWebSql && isAndroid && !isImpl2) - expect(error.message).toMatch(/a statement with no error handler failed: other error.*code 21/); + expect(error.message).toMatch(/a statement with no error handler failed: other error.*code. 21/); else if (isAndroid && isImpl2) expect(error.message).toMatch(/a statement with no error handler failed: query not found/); else if (!isWebSql) @@ -2000,7 +2000,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/a statement with no error handler failed: Error preparing an SQLite statement/); else if (!isWebSql && isAndroid && !isImpl2) - expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code 1/); + expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code. 1/); else if (!isWebSql) expect(error.message).toMatch(/a statement with no error handler failed:.*near \"\[object Object\]\": syntax error/); else @@ -2068,7 +2068,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/a statement with no error handler failed: Error preparing an SQLite statement/); else if (!isWebSql && isAndroid && !isImpl2) - expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code 1/); + expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code. 1/); else if (!isWebSql) expect(error.message).toMatch(/a statement with no error handler failed:.*near \"\[object Object\]\": syntax error/); else @@ -2136,7 +2136,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/a statement with no error handler failed: Error preparing an SQLite statement/); else if (!isWebSql && isAndroid && !isImpl2) - expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code 1/); + expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code. 1/); else if (!isWebSql) expect(error.message).toMatch(/a statement with no error handler failed:.*near \"first\": syntax error/); else @@ -2200,7 +2200,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/a statement with no error handler failed: Error preparing an SQLite statement/); else if (!isWebSql && isAndroid && !isImpl2) - expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code 1/); + expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code. 1/); else if (!isWebSql) expect(error.message).toMatch(/a statement with no error handler failed:.*near \"101\": syntax error/); else @@ -2265,7 +2265,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/a statement with no error handler failed: Error preparing an SQLite statement/); else if (!isWebSql && isAndroid && !isImpl2) - expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code 1/); + expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code. 1/); else if (!isWebSql) expect(error.message).toMatch(/a statement with no error handler failed:.*near \"0\": syntax error/); else @@ -2456,7 +2456,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/a statement with no error handler failed: Error preparing an SQLite statement/); else if (!isWebSql && isAndroid && !isImpl2) - expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code 1/); + expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code. 1/); else if (!isWebSql) expect(error.message).toMatch(/a statement with no error handler failed:.*near \"true\": syntax error/); else @@ -2520,7 +2520,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/a statement with no error handler failed: Error preparing an SQLite statement/); else if (!isWebSql && isAndroid && !isImpl2) - expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code 1/); + expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code. 1/); else if (!isWebSql) expect(error.message).toMatch(/a statement with no error handler failed:.*near \"false\": syntax error/); else @@ -2584,7 +2584,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/a statement with no error handler failed: Error preparing an SQLite statement/); else if (!isWebSql && isAndroid && !isImpl2) - expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code 1/); + expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code. 1/); else if (!isWebSql) expect(error.message).toMatch(/a statement with no error handler failed:.*near \"Infinity\": syntax error/); else @@ -2647,7 +2647,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/a statement with no error handler failed: Error preparing an SQLite statement/); else if (!isWebSql && isAndroid && !isImpl2) - expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code 1/); + expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code. 1/); else if (!isWebSql) expect(error.message).toMatch(/a statement with no error handler failed:.*near \"-\": syntax error/); else @@ -2710,7 +2710,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/a statement with no error handler failed: Error preparing an SQLite statement/); else if (!isWebSql && isAndroid && !isImpl2) - expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code 1/); + expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code. 1/); else if (!isWebSql) expect(error.message).toMatch(/a statement with no error handler failed:.*near \"NaN\": syntax error/); else @@ -2773,7 +2773,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/a statement with no error handler failed: Error preparing an SQLite statement/); else if (!isWebSql && isAndroid && !isImpl2) - expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code 1/); + expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code. 1/); else if (!isWebSql) expect(error.message).toMatch(/a statement with no error handler failed:.*near \"NaN\": syntax error/); else @@ -3579,7 +3579,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/a statement with no error handler failed: Error preparing an SQLite statement/); else if (!isWebSql && isAndroid && !isImpl2) - expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code 1/); + expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code. 1/); else if (!isWebSql) expect(error.message).toMatch(/a statement with no error handler failed.*near \"SLCT\": syntax error/); else @@ -3635,7 +3635,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/a statement with no error handler failed: Error preparing an SQLite statement/); else if (!isWebSql && isAndroid && !isImpl2) - expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code 1/); + expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code. 1/); else if (!isWebSql) expect(error.message).toMatch(/a statement with no error handler failed.*near \"SLCT\": syntax error/); else diff --git a/spec/www/spec/db-tx-error-mapping-test.js b/spec/www/spec/db-tx-error-mapping-test.js index 04f8b80..a25c408 100755 --- a/spec/www/spec/db-tx-error-mapping-test.js +++ b/spec/www/spec/db-tx-error-mapping-test.js @@ -121,7 +121,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/Error preparing an SQLite statement/); else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/syntax error or other error.*code 1/); + expect(error.message).toMatch(/syntax error or other error.*code. 1/); else if (isAndroid && isImpl2) expect(error.message).toMatch(/near \"SLCT\": syntax error.*code 1.*while compiling: SLCT 1/); else @@ -201,7 +201,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/Error preparing an SQLite statement/); else if (isAndroid && !isImpl2) //* XXX TBD PROPER INFO MESSAGE NOT ON Android/... - expect(error.message).toMatch(/syntax error or other error.*code 1/); + expect(error.message).toMatch(/syntax error or other error.*code. 1/); else if (isAndroid && isImpl2) expect(error.message).toMatch(/near \"VALUES\": syntax error.*code 1.*while compiling: INSERT INTO test_table/); else @@ -294,7 +294,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/SQLite3 step error result code: 1/); else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/constraint fail.*code 19/); + expect(error.message).toMatch(/constraint fail.*code.* 19/); else if (isAndroid && isImpl2) expect(error.message).toMatch(/constraint failure/); else @@ -372,7 +372,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/Error preparing an SQLite statement/); else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/syntax error or other error.*code 1/); + expect(error.message).toMatch(/syntax error or other error.*code. 1/); else if (isAndroid && isImpl2) expect(error.message).toMatch(/no such function: uper.*code 1/); else @@ -403,7 +403,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/error callback did not return false.*Error preparing an SQLite statement/); else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/error callback did not return false: syntax error or other error.*code 1/); + expect(error.message).toMatch(/error callback did not return false: syntax error or other error.*code. 1/); else expect(error.message).toMatch(/error callback did not return false.*no such function: uper/); @@ -452,7 +452,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/Error preparing an SQLite statement/); else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/syntax error or other error.*code 1/); + expect(error.message).toMatch(/syntax error or other error.*code. 1/); else if (isAndroid && isImpl2) expect(error.message).toMatch(/no such table: BogusTable.*code 1/); else @@ -482,7 +482,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/error callback did not return false.*Error preparing an SQLite statement/); else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/error callback did not return false: syntax error or other error.*code 1/); + expect(error.message).toMatch(/error callback did not return false: syntax error or other error.*code. 1/); else expect(error.message).toMatch(/error callback did not return false.*no such table: BogusTable/); @@ -532,7 +532,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/Error preparing an SQLite statement/); else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/syntax error or other error.*code 1/); + expect(error.message).toMatch(/syntax error or other error.*code. 1/); else if (isAndroid && isImpl2) expect(error.message).toMatch(/table test_table has 2 columns but 1 values were supplied.*code 1.*while compiling: INSERT INTO test_table/); else @@ -563,7 +563,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/error callback did not return false.*Error preparing an SQLite statement/); else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/error callback did not return false: syntax error or other error.*code 1/); + expect(error.message).toMatch(/error callback did not return false: syntax error or other error.*code. 1/); else expect(error.message).toMatch(/error callback did not return false.*table test_table has 2 columns but 1 values were supplied/); @@ -613,7 +613,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/Error preparing an SQLite statement/); else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/syntax error or other error.*code 1/); + expect(error.message).toMatch(/syntax error or other error.*code. 1/); else if (isAndroid && isImpl2) expect(error.message).toMatch(/table test_table has no column named wrong_column.*code 1.*while compiling: INSERT INTO test_table/); else @@ -644,7 +644,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/error callback did not return false.*Error preparing an SQLite statement/); else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/error callback did not return false: syntax error or other error.*code 1/); + expect(error.message).toMatch(/error callback did not return false: syntax error or other error.*code. 1/); else expect(error.message).toMatch(/error callback did not return false.*table test_table has no column named wrong_column/); @@ -698,7 +698,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/SQLite3 step error result code: 1/); else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/syntax error or other error.*code 1/); + expect(error.message).toMatch(/syntax error or other error.*code. 1/); else if (isAndroid && isImpl2) expect(error.message).toMatch(/no such module: bogus.*code 1/); else @@ -728,7 +728,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/error callback did not return false.*SQLite3 step error result code: 1/); else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/error callback did not return false: syntax error or other error.*code 1/); + expect(error.message).toMatch(/error callback did not return false: syntax error or other error.*code. 1/); else expect(error.message).toMatch(/error callback did not return false.*no such module: bogus/); @@ -769,7 +769,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/a statement with no error handler failed: Error preparing an SQLite statement/); else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code 1/); + expect(error.message).toMatch(/a statement with no error handler failed: syntax error or other error.*code. 1/); else if (isAndroid && isImpl2) expect(error.message).toMatch(/a statement with no error handler failed: near \"SLCT\": syntax error.*code 1.*while compiling: SLCT 1/); else @@ -821,7 +821,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/a statement with no error handler failed: SQLite3 step error result code: 1/); else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/a statement with no error handler failed: constraint fail.*code 19/); + expect(error.message).toMatch(/a statement with no error handler failed: constraint fail.*code.* 19/); else if (isAndroid && isImpl2) expect(error.message).toMatch(/a statement with no error handler failed:.*constraint failure/); else diff --git a/spec/www/spec/db-tx-value-bindings-test.js b/spec/www/spec/db-tx-value-bindings-test.js index 34c801e..fc433e6 100755 --- a/spec/www/spec/db-tx-value-bindings-test.js +++ b/spec/www/spec/db-tx-value-bindings-test.js @@ -895,7 +895,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/Unsupported column type in column 0/); else - expect(error.message).toMatch(/unknown error.*code 0.*Unable to convert BLOB to string/); + expect(error.message).toMatch(/unknown error.*code.* 0.*Unable to convert BLOB to string/); // XXX TBD } else { // NOT EXPECTED: expect(false).toBe(true); @@ -973,7 +973,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/Unsupported column type in column 0/); else - expect(error.message).toMatch(/unknown error.*code 0.*Unable to convert BLOB to string/); + expect(error.message).toMatch(/unknown error.*code. 0.*Unable to convert BLOB to string/); } else { // NOT EXPECTED: expect(false).toBe(true); @@ -1084,7 +1084,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/Error 25 when binding argument to SQL query/); else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/other error.*code 25/); + expect(error.message).toMatch(/other error.*code. 25/); else expect(error.message).toMatch(/index.*out of range/); @@ -1140,7 +1140,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/Error 25 when binding argument to SQL query/); else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/other error.*code 25/); + expect(error.message).toMatch(/other error.*code. 25/); else expect(error.message).toMatch(/index.*out of range/); @@ -1196,7 +1196,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/Error 25 when binding argument to SQL query/); else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/other error.*code 25/); + expect(error.message).toMatch(/other error.*code. 25/); else expect(error.message).toMatch(/index.*out of range/); @@ -1252,7 +1252,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/Error 25 when binding argument to SQL query/); else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/other error.*code 25/); + expect(error.message).toMatch(/other error.*code. 25/); else expect(error.message).toMatch(/index.*out of range/); diff --git a/spec/www/spec/sql-batch-test.js b/spec/www/spec/sql-batch-test.js index 6c9fac4..c49a3aa 100644 --- a/spec/www/spec/sql-batch-test.js +++ b/spec/www/spec/sql-batch-test.js @@ -418,7 +418,7 @@ var mytests = function() { else if (isWindows) expect(error.message).toMatch(/a statement with no error handler failed: Error preparing an SQLite statement/); else if (isAndroid && !isImpl2) - expect(error.message).toMatch(/syntax error or other error.*code 1/); + expect(error.message).toMatch(/syntax error or other error.*code. 1/); else expect(error.message).toMatch(/a statement with no error handler failed.*near \"CRETE\": syntax error/); diff --git a/src/deps/android/evcore-native-driver.jar b/src/deps/android/evcore-native-driver.jar index 37caf38c200d140b72704ca2c7657e759e9b31de..33e792547cb97b14ef58fc57e10d53b2b2227474 100644 GIT binary patch literal 3141895 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 z z6KCw1p-5n5&S|mqWsK1{^TSAv3aR;FWDHlX^zO@6#GL}pPAIJt54WSVb9C3A4)v4o zsqgHrU)Wv$!&c~FPPG1XsDDhUZvhN*j93?Cpfe367u0u^0~9VjDlK&4n%0*u6W@dn zv}9r*ExA&oB_p2Dk_X^3X{45%9HS-M9@Y{+{5Bc2AWkxAqJa;jkxrG5ne8vMOnv6E&M`KDo z$X*zib8E0CeFQorSDfsgf&2AhFdupWeI^e_`4Bbj6=gO)(3;6`#oTG^>x*lvQ{U))_&}=VyT0icFHE;>6c(86Eo-t z6BUbmQOlh-QgMn8r993PeGb;#-C8W51jgKi02Lj+s7{Px_2HddJ=7if2FW^jbNCy; zt>G0M39kU2Q$t%;jDl+8i>a6n{8-K^%}cK+8Zd_oM)e7%q3!ZR`?AX@w=Xl^dr>}; znCtpSXd%H_7VRbS)rz(mf(>Ud@YFZJQ&f~c2O0Cf>f|U|C0a*lOJ~oZ=FO(!Y`0BF z6dLALI&3WWR;l}C*`B0jFUw8~#<(~uZI#o3XR$ODr|p>`L}f;F#^>Cb6Eq!VhEAN> ziWvOQ=g2!)k_W2I6k^227WAW>K$RVzBMbsI{7rxm+p1*<1K$mzRLE26KT;p{!}uJe zYmB(RrRXZsVb;I)$r#mcdZ1YX(9Ze4O7LmKf;7e2s6}JMWbj(3IO}t)X&H!oHH#U< z$2z(sLp}boC>&-GM?%W)>Z5!Ym08g~PisXvW*HcjVo$fK6e%_ZMk@iRj~oTk_48=G z9HrhBrQRd0mG{WM5v?nG!5PvG=Xrn=Zi_xofamYqP6EsvfEo9B6uUK09(gUPwM%-U zJ`>M}K4_{)x7x+0))ZFQ#u%(_ar~OoA>z3LG9<+l^)RS--->efz9NrR;@&o5wYjMH znL8#zITA^uCe|iJz-Il^o+w?wR!>JNbifRHeNWHq8+?ZfCt9d7K2CW|8cDYa2C-G) zy}ju50(an@RukU9dIq6k{tAcvmh+95d4_O>Wp$^PgXMwH4$9MDE>eJ~6Zgp(IJ z%=seL$BeBdw~b^Rj(g59;J~ykiYJrP12ydq)b{~uPB&DKyikZftq1sgH~f`%;OFG% z@4)}AH3~lmX6qndp@5Mz3SC4ztw^4273J(dP-=h-ddQ64*N48IHH@L=ZEPpIs`xnv zTg~9lXqihm4^|FfJC};ztwO%IyoywmT64tM)}b-4RW%Fi1yE;+Md8npfIjG z7|pVa<~N9$3At#orDb`MBbR_BJE`Rpmgy}QICJr>7`_~GdE+QE>a~X$#+V*yE{9e! zTca)9?<;5j)ytMiZAIEs9QCxtL97K9C}5TeZASgdnAT}Z37#>Kiw5xo_?aUWzC}+n zS7dG~4&IOUIZA}?`K1EeG;_PcEhl8PVyoiXGw9S=piyV3-`9%QIw!MAHbHPG@tE|! zi451Tb>c_zWHuS_C{plHiAP(IrzWroO6wcirefPh^eA!EuC1J^l#O!O?v|;FuNjpy zXZMw}m&Z_0r^3P;0RoqPjJiLp?ML<_PK;gLqxxZp7ZU z?|=KQ2Jw7rrxZAVe7}tWPBkS0?$ar#FK5rmdYBIrgB?;;2XeFSjY1gXHtDf0ysfaP zfr`3)*e4n^4~)Y4QPFAbdvWzcPl-p7n(4_w+?_~xeUS1!HW1iP9v%E99-sk5soP@} z8N|3YgmM;at&fLCSC|z2IRvo(7$oRB|ByeX$+d1=`x2+DjIL7I#YrpU-btuR5fVK` zWd+_w*<=FiX0&nmWZ5)?j$YwtRqh7+LQbpE_zM}Go#!H1de$1in0=;q6RQV#u#eoD z2=hxd&Ae#0{{!Q1A21_T$Ygo(?~^<oojd@@TYQPqpa%VNfKAXu}L0m0b$<@H`s={ z5+QS|#w&39x7N81%PBQU)#c@_S9>5KPrd?>#*F=dArypA$OelIZBe}XuU2->i3zI< z@8I%{Ohmnc3sNe{gSC=3AS7IMh(^~ryRuMui+4$~bez6g&RF-F2q(_(>anb;_qFG+wz0PKuB~&SAJ?!G&-cam! zz+?$atm=?{XiMDqF?jr#SO116BzY#5(VT{x$JZPS#g}2sS{we4F?qgb@nv{}@E+fr zA~hsc+r3XW8%#+XZAHhWzjh%McfB@jFqt+IOM_swwMn$qFYD`+7#ia5*IWw=Xd zTmG3wBEF|+sF&rnLjmux#lmtYNEll=_LiT;B12N;6KJS=Cg8&9cM-M$^zi6Hp$d+ z6jE}a^qD;uLoX}qXYN$J6Ro1?JkJ%6xsjhXD>Tg&54)q10OJu{#B(bioOc)H+Q}dR z$d0+WUJ@~KC<&&>rbp@M^&kiS(voe;7LwkZBaEW?&lL>fA||Q|lhh)Xjq5|6xT*`% z18oVORI>{A4|%d#pDpq4@hnmN8P5tEEqKn@9bMDT6<52X{8#-3Mo2;{1Xry|3=yk* z$bnns6oP%GwzuKwtgNRSaR;yMC_E)^AXz0~Nqw+N9rYH?h;o#TS@r2{+X5o4+uvL28pU@N`sVJTX7n*YqoJlY_efe?!NzrYT$8^A<;HemAD(B3 z{c*XrD!RsHabsKv^T6XUM+&^>WD~DQ&k<3otputSLjUVzj^Qlpkp8;^zlo(odZz=| zc?;QT=`WoXq*aOf36#DEW1uTWws)>XIuGKx19{RUo@*Z?I8 z)1oDEy4NhRlu-;SWeTCpC%zAaA>zh2 z&dGY$2^nK8n`FF=gNQG!98vK^wp}b)nY4+6?_XBh9!{wO9Q)t5q3tSCQs+lGfpTaT z@bhetwIs9Ol|i6MX8A6&H@(~tW1}kk1$i!w3pbFGF{%psup8Hl#&B8kdBU%dbBMCu zR(xkAjS@4iq}>FWlhZm=h_3J4U7;zwvqGa4|Js7S?f=KuyTCV9Wqrf@q)D14X>-!F zG%W>BdSOy1Oj^Lf(UG*IXIfAwh%;5ZviHxsMSOPfmjlS%jS z8GBNsI{`Zc`QHwty*!P-4=wa8law`zd)FL%vKQrkJjI=BHhzyXrhhx2dN~MVzpHm5 zqpH1qa;D#D1>J1BrLl)TJ8_c>`eN!c4}2US4KlWg2k|Z(qnt9I3WyT0)faC7=2a}} zLAhk`U6eOG*b7qoaR*oeF*_EJ;qhq-iXnOT!nGHk(g|l`NaF#Fd$*ldYF_QXruC|+4{97kxrwuUd{6QuWsXZa8s)<*RXt_XO1CH$2(~CunX$0>LJEDqjbd%O%)9wh zimg4eJ$C+ZRayb!zlm% z80}DI{bQ(NP<}6x(gGa4Dn{wRn|6iL-zrhQ9}cumC(yjX(t?$G=T_rozec6@wj2Cwvzl>g=uo=ln8 zNTjuO*e?u+{m_g%O4~Z{t0vt1Vt#Gty;3J#s(=JUb|-12rn( z`^AXai(_n1-bF290MNa)1F>d6UOE`V%|?HsH_2;i(g|e(Te+|@#t$dnAl$|pN7ZXe zMBoaA!heo*j2+=vSVfVVeAOk4F>_bA z0I+;zn3;Bq2eCv_Bl49ml(yd*u)d7Df9)VE z{82=A{8rGYaGVcktb=&wXIt;Z=(?@=RBGV75(my4()X(kh#gQna&WI|@Nx%UL*!=Y zPchV$^oI^AeQ=&~t+|TEIvHg5THAVs6sa$Y6n+{rp6jPUKTpMM@p^V&%)XfP#!dFe`~PXdv?t215m zFf9M6{M;~(!KnQ0Xi5wA=wB}4`;W>CI%3>RBtt#+7s()WW2{Yi|2Pn6t|?q16bFEs&vRWnb+_Z?we=}CP6 zSN;tkr(-mkQ;#D7urBa;v0@($$&U^payRWkO6}QZ5j$6N9TxA&RVe+R-&P1(w1M40 z%Q(b&;?^E&{n2LE?u!;tiG?L))?W~`z}cS(EmE68$#3eEeLT%?eTDRgepnxC&-ZocSEI5mp*C)A36buuH}uu1771oo zUGYHZ(uJ4!Zm`AhUTvTf@Jou6KVO?%`I&2n= zHZmC68Htbbh^!m0pTkym-g-!#ds|jSgFyh~4bDb70D0mM`ExrZw%XWQ<@r z_y!9khV;HHV@Ev^u)V4GMN9bp6U?%*gVK^l^ar8%w8SP zC@P;B-hTlot(S1;cmwbn(t>U3q4o(Vi$136 z&P}c)IL`c8eZ>}+Sp=+Z>;g1n5n1W#;0!JC_K z#FP!Hc-+gtN;yL){Q^9@7b*DU%YXkerWGb!INhsZ8j77#S{>V>a}bOruCEfJ^2LZ- zC|YG(>RM*Ffc_Vs1By<%&_!ppCyR_=5pyJ!(i^)EK^wiSlo!RL=MSNzNEYLSP60>U zUKsmdj?WlFK>jG&%%k!aoTW6Pm2w#)rYAH}6X}fC1(QX$^3)D@58X9>lZy$PuB|FS zss2JV5N5b)kOyog&O&PyiSUOg!_{mUkzak&BI>*rsd0?rL~^@BWA<_~XdrQXto|pX z+y$IbNp6|QhtuM0>OM~m-rq%?VWzJ&Ef#lKJMS8+n6Aeg+<`Mk>HeI)!KZ;C$MpT(C@j@9(J8LMkvCDX4n z2$g0p%I9O335Wg9z@5qaP|MD&ME%+gEjUOy4?Yc=gftW{IS<@1KBgP8qiC(8tzI6+ zXYh$jmzwDW;?#~i9pjE<5q)q>fgbum#wJ%HoNq+t53DANlQ99m;Ib z`MRbt&3PK=m1;GK4i zAnF>D52D5eDX!@&QT5OoJ$y1|&@2b~Rjd2zRgQ>-sQQgsGtFdsXvI%YP*S8y~)Msi^jGg{bvs(yz~IrS{(0zc1*j> za3^S65w{fI@wLcgQn|ggpCJpbgdZn;3v1R&PcqCE!jgWsnn)jkbjVWrGk5TV3(4X_ z7$tLP%pWl^U=hpU*iVr{%j)sX%RnN1F25b={xYURM&wCv{vumTnm^Q#4}Ya4Kg!pV zx*RRJBVJ1ul0@cs}QOEor(% zOAf|q$wx_Aaw%O)OiephH&&jbDJ&oidWW0ID-A7>jE3P{^omr64gIX)>}vF)JJ`>t z7+a&0DV`oUOLq~JNV{;?6=_~wP7TBWa!SPnddV^;Pxb�o~o8>||;Lq<>onNHZ2K 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 *6mvqCs}3dQR+NTL2uKWkrGrwU8Rn+-7p$S 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%0DE(^yd&M^(e&Tw^`7-Ahz#-e`J? z;#cLVq)g5}DN9cGdZi1I;_|Ffy!V6={QP0$mx(Hpx0fZ$*SMB%76^GNZ$n(%khfeA z@q&7F`1}RHwWl_0T)*kzjhoi5_yrO2mRk_sp^{xd1^kcmiY9L$ zJiZ3sUwiM0^^dGjzTLm#5%`4iPsQtBv!d$p6&v7NQIXPs(gxgGU-ig}4Zje`ggq?D z+mNTg)GrUSWI#9C#}4D)ar8C6MS<)L-zdq~()~I6>m+F~;1@)M@mu8#B_k-Qow8pW zX3T|fP9Qv2+M|^;@R3H!g(5Z^jgQD0d)nC)lX83&R8UvW)qj7AMj6}Jf({^@5* zum;ObLyvDNj0<@RmFX^kNnPn$zhR?Lwf+%dj|-Bly7zzf_k7@_S@M`@j;APnb@?GGT{_>l6V02w~Ga+ zR!YB@zP@&#?8}hh2eX<1M(g=jt0I%3pHpy8;pWQQK-R*&-~Was|NWcmx}2w5H8gc7 zPRkBTa^o@IS&u1{biroeqa0zN$M;-g>bFqzC0YV)zkF?h<9GJH5MR!YqUMB=n4n(C z){_ry!M-Man$daHw$Rz-W0kyWI6KUgxVJ$%JrUu3YENQ_Z$aPg#n)~J7{hxtiv9pb z?fqVIU1Q^!)$-NeZT5woCnBmH%?|}=JQHg?zOg#ooS}izY*lR_OJgW9O=r;QwLY$ZP zsJuE);t%G5drA7;`L|$x1U$k+^bW3>u(om?9%YOv@}XKq9(#c$Xm|CWM;N%ia%9+I znkh&Ln&4#hUcuPec)H+R&1QFG+Q$Yy9;c^qE9p0-#qY#VRh(vvpDfLOCZ|!Fe+?r% z;0gO^TnF+$@Qbwn$NF_^9}(7WdUV-}^}@Q9cyc!3>DZv0pG|8Y-soDlHhw%@8>-eo z!O`(FG1G}SF^#g8gwOtWyJ$aHfK|xR z>u{p)?a_UX!<+wK{a(2aru(`re+{i3itjKX?$M{%@&iZ6REX>tN%F%&&lRQs5lRC9t5`9*~dr8cwUMO=0tn1b*W$+ESW&OpV*2|a)%+JkN48PY< zU2`_>Hg#7-&G7Z#NzYtk>9RJ=ysSS|61SuVynIPoA+wZBo*yvy{D&2}Q}zxyLtt`_ z%cMa$U9Zxv;c7{%GdP&-PUJZ1#VGov6>d1jQ zOi+VqnC5SkimzJeOVY}7rf@lYzINUSpUHqh*CvIiDbmCQebR+B=_Ieu^^Dzpp~k&L&NGz*40?Nz zr2@Upk2!Ao`k5K{#+l%{FhGy9Yr=Oxz5nWm)=WB)El3F6{tAoUZ30q_r=}BG=wwY&Q@r3x}WS*TD@hP{aEP6*qWq0`W8!C-a;A%nBs@m ztr4Dz(=v!-fV_#{13C!rO~p+x^keE&q>uqV8w zNj(yMF01cod(wp~nM^q8!m-Rg7wQ^My1$b9{2C=57h<-{jt69mvf@Vv`wruGov16| zPpe`Mjto)6X>=umf2?C)Tu;cD*8aw2JWs9 z&?B<%_e%Ny2%Lzpq6NnC(@>lq&jxzu=X!3BI?9i2cD*F6J)<_OW2puvY6FIH3H?;$ z9c1$5;7ih5XV6=4et_gHrgOyX98FkFRbh=xJnW1yo0*ag4~SV~HfK+{7$8$(LA>9b z^^sWOhi^@)8R&2Pk060}Fv3Z?-+oCDs_$oK6qO@SP*jn9V6#Ibt6QIN#O?p^{9xSa zdC+ewKq=FiH~m~A&WFY2F8j|AyAPw$Ft%e)Nq5>lx0+eKaAL1eb-CUnkZ?1;VSg0fhG4{y>18iD~su5ZiQV3I~sLvx+fg- z84mIlUXpcU9gViku$VjbkF)(=T~yTjgsoYI}T*a4y*&d-#Ofe znR0IBGxoo>8=()cQRs=P4*FoZ`zgmXxkyk&Ur>cMk8wP0PwL9O+irWxfp_XRXWBm1 zYJ$QXRo^w$la5c9m>ljmo;duKys<-TF754Lm*-q@V6+t`Q5kXW#0+dLzmHMhA*(A7 z+Vk5VGbKh>ayaUj?dLm9bDngR$jJiRr&Xzp+&h{V|Zo0Uo*a9Q7Scm0f z?u{&22!A&Co9JfA0r*=Ff0ml-Fw5WSreDebRK>Fvs};)HikZB~B%oX-kb5xFFL1{w zF(vui?=pCVW}6vsd~ZC0-myXSv;k@#idf*hLT~wg}X7R}CE#{-lD*R(SiIoj{{J;rQs^Xp}+uKfa#Zr`4tZKGl3e{<#M! z4ok1WOY#wpe&Ggc>@AF;K1s>SqThFj@^#u;VoroVV=bA?hIWjnFzuK9AFu+u)ZQ@=0Cho|_K-tpdPG_4MOngPBynY_9N z)|1?oQulEJ71sVG42D3^)01*Upp!fke9UZ35LaNr!33WGD=^7Z=pzL`2{gA6As_a2 zE=lm6klpSa*v%&*=28N?0QVN|EK{4%40OunNgk7znQGZ%aiE20fkzXX)GV|tK?-sj z>3iaGUfm=gnVcA!+J>_6EPQx}x=daxi zwDS8sdbqyVGajyg?$MW9N72f~Bee4F9@75cWtM#UCQD{K&63x(gzT1Ba+CIY%!b{- z)7#2Z=?;JdDg_dZ@e~K&5iw5U=T{SAJimq7fX{-{-y@26;+bnkIML1U{K{3#1#M+7 zuHs=OP|wkPmzpMenLQ^DPdG{h9%lGNL<@UTP1t64k4;lfOICUA+U#dMW5WNN-uiN9A;rP{t47EJnDKE zNb9{);C%KfZA&F>qCwc3BN2QI#mL`Tib8)nN1jcHS@cMoq``$M-%td8ch!UZs?B`ZO&CQyyMaM$?dP%0np%UPK&I zpiTmnhefC8jHbvq_?nyY=oAzz_?U_gHlSX55nB`xQN{#Nv4P=?cSf3|ElGjq(4u_T zI!Q~N>wG`o`}^xxI4Aq;=h|!Uz4qFBuf5g=E8o`a0NxYm@F&*{^~z8yad(nY<}Rvt zbrO9>GvqyKz4a?U?&Dj+AIQ|quv=a|71dAQ-f7UO*auyjQTw}E^#Y`NQ$!7UD9NTf zu+zB#sB8zlT*)X;ab5K2 zMTL7lw3Hx2-71%(s5f_M^fNn>^}CsJdl6s&OPmWKz~==phROLp-~@TZQkyoS(MGzA zy-i&+Mr~+m>avUi?2e-Ku9E-q-&UH>xL2xe9Mt@^<@M9gLH$&0$AKTef3#W&b+^mUR z^!D{#irZ^D$t)Vt&>V1^yA=A6Uni>buvhKw!W&?Jj9LO}@zu^`y{F5fKO@iQ!+sc6 znly;_Gd3OU;9rQXr!+0$gLTmrT?nfm*3Iu;BCeM@-*1Q>ZMuWR|0c?Rm+suQ75}KE z=L$!-%N)7q5=Z`HkX{KFJEk7(i&@#$Xzh0K6>Q;yyCPcE zi17($NUy3V&#LvV$ROh;v+lD>kqAR@g`cSw$Fqk^)ZW_)Qd`CsC{Tk+c>h&AXOVL+ zItK5b%HhA%w2sXzJrSVUdOQ`(+#1)xfOo5P$!d2h)7EORzN2N?%#;M$8J`IdG zuVj~g*oB~ zbA$FLd1fp9Ox>?d5c>gful9ZKEMJB<^jD?Re6d{TC&C}B51-9k_6O?{|47dtV8wG- zn&PrMpS7m=b}oN}3CkNpRAEhx=|R8m`mSZ@!rA|Nbk22*+u-~LR+Z0MbA9$@WgfdT zbJ+%~s%_UY$3VQ>um8`Simrb*D5nBBCsLoVW3m8M)%CVFVIpxsn zb|=Pu)~fY40Gz6}?*^5nyiV$W-d0gvbXf;!nF2VnT)fdY@J`iN0h;-|)!=J)+($@( zrp1!yA$8GbyUIK(>~A^R?L=&M%uL^Hw@8^5)XS?DVtwRffDCA~Ld`3K^$pcD4QKW2 z1r}Bte09+Y9VBO!N1clt*9O#Wr#*)AiLBG9fA43rKwzD+O0;XaF;+IAiFRJe$yMV(8>PxYU{TRFN1 zqyozq`}CpbNyg3+2g*^pdaFHxyvwmQ`b2NNCnN4&(`!0VD$Ai8L{l{h|47aGe2cRh zxNa}aRg0yvRWcG@(5GZ-k>nPc`YktoCT$>i{<9bLNQ^t;9o9^8U%WtbXS4Me3Y@Tx zt9WGP;}s7rb(SxA)VapF1UCb=G;(A!JTW^~OFgG0H{kuf&}pbaU9>5LHYL24QQ>b7 zdJo=^2~z=9zYYjWO|33OG>%l&6yQqG{#Vn-C9d#{nr#xX3=O-Ic%S*f)&t0& zcVB?FwzaU})N7@ON~&#w%_y}R61-cH=E~Aj8XpbcNl|9IIOsASD~b3HF<9rX=9v(r z)N^IQ9N2w*3<(5Nn7DFJR*1|1~Bq^zPs1W4i&4ucZw}l=P{GzPZ@@w23@|WmS=B_!-tM8Rztf#jV{6@+H9b-j&j)KWv%NbADB8 z4_e9;ifC4*jl+FL>pMQp7WMXYk?L=hQe((~QqEH>B?etAgoE-FP#&*8RC4|Dn0HSA zHjlHnLQ108dJW~rj3iUF{q2xa0USqD0b9TtrsE3o{XIClSC}*~clFD;sfC^k{B0ab zyq)_A&3G9o#sfYA?VcJ$smc39mpron{RiwD)4gM7nBufxO%TU69e<~vY{QxS9?4`m zyDw)(X_%6=wtFPOjUyfEU>ff2AM5KSvaR$0^cW&~pcha)Q{-D(_bMgQkPNLtOjmqK z;#PT&f@~}MNu06sVljGrnh2*MLQ}~RKgt=apl-Z~T-uoc6-e&q5-Gc}pPf;`k%O;u z!KMASBoX3hN$i9)P2MZj%Kn%9Z$+qzh>Y>|Z-q4cdTYWtRpa`S^cFk7 z>k8Nj@2-os2iD8F;`6<l^v z_)kujM-1>WLj$B`bATgt?Ss#-m8`IIxNPU>IY!6FPOy;zQ#XfF*A1L_UfSHy3%#Sa zo#a6O$sH%U<^J<;aeLfXybG8cW|fVBcN}!L3D&(20Q^e!+vW#=>eG5M{$9!Oz_FG` zGm;qr4i)9vkQY3GR$7SBgBBAvOkaTOBq%|THYY5wD%g617gG$>VQ)LhUBo&rEQUHX z?&8Sl3;nd-<`EqlPq|~m^nMzD;lI4HErVy9&P%1Oz)^_TY{t9JN~HC-HhiCuhPIvv za2dGs!Pj~NoTV8@+%WE~hUw}-_LcY+RZ|m`y{4VCJO$-_P6;XdiT)}1%!6%$8fe%AGEAlsN}dk(1Vi$P){?x(!xCBA0z$Zw?=8zkFs==ZIrtWy@-9xKvHy|<`3 zMk&=YrKGnYoqXSV$v2(}VM^!p{P-wR!dh#h*JU#Jk#_b|PNhr%wGwF(M4+cY7ys+p zf|4|EjCPIuU(qhkyT{seDpQQzx}`}PKdDD;_YGFXSsWoBm-L(^^}9nFj)XSQjYKoL z4(&(OBW2%XwE(?1FXgx-+x5$Tc=t1?DXISqX5biy(?5d0n*{42c(85IMh-$;e(fvi zMOX)=_`j0et@Kusy)cyvoqTk@agmfO?6PXS`&*W$@3Jl9gY*_P-R7uye%#&q3;PyK)=oqu+*?uxQT z!0K+GFK>vLvbB4c3(_i+dL$#lp~%`2ZMqn;Z;*6n}k0e{i`KXEd*Nz3sV{Wtt{A(d!MbhIw$c;dG#bm<<>q_7MTVCpTUW#~L z_lhyxa0yP6*1Oo0;4L?$_!Q%ee*K2&-Q`xDs2Hb1caJlR2R9FH*0b2U$y(%n1L}#G z-We(9KEA{h(}EwToZPD`7=A|91=9_%OiQySd1YQP{I_csPt0}kTB@f)&;pKApbb*Q zosmi|u|O41W$Ug{q*?#&tFeCPLyM8MrqO8SDsxbc zl}9cy6$>62er2z2oZ<}aRrU=3NsSwz#+>McvUvjStRE@qN%@o^CenTPy7TSE@K7?F zn+VVS@cbH{*uO2Z>sb6dKnm#ohz8nqW=&&64eh#t01kC(xlerDg)LiL6XTCb_|t3H zFUG8^5S|Av1TbpZ3$3Sw)Wg;_0@Y+ad=X<1L@>Z3isO72g4bRg}+a@vpNw7-J17<2O9Vm*6bjoh=l zSFJ(}#72d+3**nPiRGSyx${tq;-fv4kUI~#lklSuszMwE;H~C}mzBmZpd7b1yf7%D+wEJ8)`t@UCf7o4pG0Z}%TcCf)v~auJ z>n-7JF1e?6mluE9y>g(Z{>K1JH_K^%?;7Z-5R$GFo88!iCRh8!EfjHjYQiyYgJrAKdBJNnD?~&fHM;qb^j)F6cx<-ioy=8yz z2B3u4Q=E3~fbXAs&7Mlx_u(=V;tOaW$8$Syp4u6yB5Ko6S?4rwp0n_|=bl>?8)-E% zW?A=&xu14d6~!?7xbI%EJip3^F;@9w;m)F?07oqR2A-;V5l^uh#aYw>wuVKt6MN#eI;2d9pnB-QthYhYjY~%%_#}92?KmA^Tz; zrVh_t4%^)%86 z(L2el@Zi5<`8@-khsbZ@ezl~YG?I7YUmp;hV_UnwbO{@<-QJ8-?N4J^?kO(^Dm^!b zMFPEA##~Q@>`NT~A;wZSLF(y1k$)fmZp7RGzfZ?=Ylyd5dFIjX%6M*7{jDJT5r;F* zMLdsOgzn`Aq)!T&KD`(sreAvzOXY|q{T2w*%lLFb$U@)Sa>{Ag2D%q9oy>bY8frhF zg|&-O;tf?(TK7`Z{BIwSV=jsj|B(2G|< zFVzD^rhDxT`SQ3Q8ZtMR#^mbdR9@iLsNCWeCS^RoKFPSRks+s$;_nZwG#PxcI&+3f zlPVtbdnr~j-HMvjW89@;KuXCzJr?VC5bK*b53^B1jniLVkh#9_Q91n?_TdFtmllqH z30Lx_J!^mlG{8(*VHaG&_oT(S;#Z`iVks%Fbgps2;?((g?02y<<^ldykI4QND=Mn0 z$it6S%D*cgtCD}6Pn6@y9ErUlU8R#$tXNZtc~rm~;>m6~yu6ace=y%CDq{YR<1ge( zoJ-2rpxe154hzJK#4a(OG(kP2DKoM3q}e^0WI!zbZ|(iBfYYGxYEG0MAr z_ejJOv-M_8O_6BfuWviGmt-l%norUE@%~s!;MHc6Y_~+jJu&`NSrR-v^zVE1g^H7f zz5M0Bt2Mp?56Su{vR2kq#)*Jck!Gz6Q;yzh4Ng;_hNHjw6k#p6nXk_OEl%4&=gn=|qzCg0;i15@&ko#I=QKtjCLa7+Gwecwze03qbuo zgw@T5SQnjx6pTApink4>qD_a z1lD{vgYPh!L&lca6Z{EI@V)zRcSgpmokR2`(nJfF11ZLHSyX(rGeM8LA}YV$X$|w- zG-;{@Pg^%QD2%gX4uxY>Gg+%?rh;ZM5oVS*9mMlBJX3S6&nS-lCKks|+3vTv-d_oH z=4d++TnA(BR@r^yenAbJTS{^_uxeY`&e-h&W#fqeKmXf+0yXqzMWU;J;Mp1v-q`15 zE19kVE15f@=lfJlSw}?W4gvDs*iOguEhJA_cTO_OmLUXh8Tc;^EH#btl`+)mJW1LX zJ@kW;l`#W*CHn7@Y>78gNHq>`fKOR$aaxk65#Zx{e5jXQ@t!P~uO~SlHh<8JdD#Le z2TgQjyt3{Dlw$A!q?zLzwnP^NsBFmvtu7->J3JV_FhFw0|0^4vu+rWVO>4(JmIawK zM24Fo#VhSf_L2urp|?bLwI2!4*Oie4qRwj}Sf z3#8@QZ@B*ZrEAcd=ODwL#rFzp;)*Ebpu39aO)C{{DsV2ni45FLM9FbsP5I)=3bZ&r zUKZSY{p;8s0MAIS;5-~K%)b=nuQoVy%Qr{QUTj#7r{9MI%3+(Mr!U$ahXaZ8bC+(3 z?rj&?W>`)4+eM76{MWGrb_%s>8Xu61NhHT7rMr#?47N*Aztje;@VP`Rn_(rrU%roX zJfIvJP^Y!19MEg?PDmQpTWZ!)Cgr&4Bs@uRs%PU@8Oi;n$INKvwrJuHct00i8?LDs z$u1D_L`4Ub9{sLgbFr9fErj;pwm1lQMn71Jv6ySwwd1H^&Ad5!<|67;P9=rjHfgAF zX8H`M(+3wd*=@4jH0~AIKHaEdb}72*M-F%OOdR$x;G`Rx+t7B6hX_d`SIGO&0xeli zO+C;XZ_Gy|tlF;@26T`Oy8ph8eNq~e!HC^_Z$qo*(Ee=!LyBz8w#XVGoL4d+{!+e{ z(%sE4I}VfYS>6t%2}A?Esg+W*rKG5>O)?4hF3{ODMfW(;rd{?Phwz)lHp%GLMane% za$TfUMGMv5Zvz~)%KDbR1|Iu9@6iA`0I|q%sjP{Fr}in?FPgD_pK0_x zR6e(X_Ho1;$TqSJz`NzHbW%9RkNqQyy=mRwG6Cl8%~1(fi=6*GYf9UO=2&?o_t&MG zpPUZ&@40V|I=Xa`DOzTs6M#BpjenceWEaCkwsHJ5=7TS_+s6-7@oW(1-1$x`_u!FrER~B7wz2APp>ni!? z>?zrPGWH&_T)Fu~Kw*Pg8hrt7d8$|O4oa=$`S?GdY1W8{F)zye%RLb9r9|)rcH$OfS5f5HV*70?cF(H zPJ8Zq^%g%oDL~sEJ?le zmZl%}l4bKnZy<3(O!7*@MlzbcE&8Xv`$bwXw8gT_wJcfW3UVRESRd!qI8FvgHjG&C zC!vpt0@7+YF4T&!XP0GELHkVgYaC6Irq$YQFHR5AB+l!Jj_fNE`Amwp__7PdkDw+) zyf{PW`C2QJM092Pw2pO^kjCPHw5LX-2hpyyhKUzkmBf_dKPwpow>7cttYj4Kkpuy4 ziK8Sm&USBH-~~<1Az7zB*W^0r4H&pXX!rgn=gz1@=&{nFY_xn&PgNMx@08?Q;V?sw zPVFR_yh-abJ6QLcdp_-cgmYU_!yev8`X<0FQxCf4usPb>i8}@)mkLWnqkvQw zZ+0{>cs=5 z>V+o$Y?evoy~)ITRiYiZ><55anph>Afs?1;$eN3U^g|NbX0D(ixNOYi<0t zf7Xt;Il8Dr58NkpTWlnfsb2tT{@S5rx%*JVIPRoxj(*ocw<%HcZiv$#2`KbOq@iwZ z>ydyeEfb;YSin#}!sh7ij&=vFUYMVFHY?xgy(wSQ5{Xt{O%U-;I7!0udeo7y|AHOx z_CP-MMWW8D`A#ByKxU4>KlT!^#hv;Qe0_;@VV zfT$qmW%}}`G9*IjV7vB$lm2ET&~=nZ$rWoV7i0~l(iKkBFiplK`Wu`DY>!N%ivcHj z9Y~|!w{mUBEn-?eGKGpu9Bcxt&LYv9d;gWp#^$IyL|S@IaOA}kH)J*tE|T|#6Zc?X z=6%@2E=Qexj%8-gPG{+|yBBkD>x&JQe58yn$dajZa)PXvn3y`epDou`oAcYfo1;&K z&{i@Pgf)M=Fj#hjXZM$GV)xH{o@G{7+n%t|{QFsI3+j2?%G}dkOmxg;3mKh4f*PfO zcCo_CftR?$^EHeUq@K6QHb@uCd= zA+&{zwpX`Am;8w5ybjs+D$E=qcxJ!F@(~84|ZjRQ4%nTvvvTu%7 zhHe$VMmZGdb9_WYHFmQ@<5}$}wr4rH&=ERU;_uuCqg`XaN19CN6f3;Xwh%#Mw^yfn z!Vq_Jv?qw;_;S$hpi}I2?kviyOqC8XK@^xKQxSgsTB;{^G~#T8C_3sc9FYtSMZJ)XqQKDYw+@gO(O|;5T4k%APFm_ z*oolC@LxZ?Vbe*r&f$F1aTxHsIr@6=a6qv^Cr)Pe>hX?LPrD3zeGv1k3zG5OzQYpl z`l$?EO%uuqyC6no(C9%sd%xuBkGuB<&CQtK5s7ce67_}S{U!*}XCcIPPrrLd z(0D)<(Q~gy^a>NKM3mx$NOy5F}>&d z8cnS?K#O?y#|}k^Y84?)^D#SK;tIb|<7KH5eV}z*?kTi5cdR5P<5K@mGA>Bl@$B|c zNyK-I2|*QAvH|&)$6Tf<^6z{7vMrBk>honiuxKfV-+@xf@6KN3{EZEzkDg`a;wZVy z!c%XTeqK^-GsPuqUjC<2u}!hmZ=uxBWyu<)ELqe2GiCoow&pP+cC#1^&-HGa{WUuW zt**Ux=^-$?~ zX~Usv+cle6$`nYbhO|~2ZH-prxrI0r!FNsd?}8lBSX$L8z~+x+{*1LY%|esycYBp6 zS$~JBp5$-!ss&5%2wj>5vsQNOPE=l)@>3<=veTN^vdX9rJ*-F!JQu*@cE5~jLa%le(5|>NL0Uu@eo4+F}Orm=ABtw zaM*<8X(Lzhp+p6Kzsb1ZmK5~iGRrT$IxI0{pwHS8R(-;bm0Z94#hz7;)y}s=FhcCK zp4z#stFX<8#=gp-*tR=FXd`?j+na$?GCPaYi^`E_!gKwKLGnjeFWfzXBaWFI**%;i z?K3#C0-oXU5O~(i;>c~YIdU9+e=~cq49ak(3Mq6j@0yA50`}gu&_}B$GtONm4wLAt z*20`qRi*O>B+K;P{GUooOvb*yyX2B@KJ2u6BOOJEyp9q=1B9 zaMA5w1vq1}?KuK`Mj$44Ny0TQQvVgqGt~5Jzc#diaPHx9txTt;mfkn0RzD{LvKMM~ z-@lNRoANWVa#*{2pmyo;+KoE%zpEL_fZSKI=TsK(mpFH+{P#Pdu$T3&~>8q9gm#pFNwcOy=xK>rx> z|KIzP-`&BH_uzS_Zm^8X_2{3jzvYNYs2KiN5-NlFg>@_kc!3PYo05HxIZSL*w7RQ? zDPi_+j_^rpUw&ym$lFQ6oBOCxEGmTiB*A5YG{5W`JA((#ajgwj z2ki|9@Vt;*+4|%H2;1GIV)yMsUT#zLSeGhdq!ByKR9&fGbyPAWlaQ9uqN4$I!|KKP zu#(>teWEMuD27$G#kncE2HX}W3Fr0gcc@@=tHmoajClYfFSJ~^A;ZJN7?%($&8%|kbzn@rc+&xIl`-cPV@NSA0 zcF|jI887+1k}kuSrBi^`x}%fCrO9KxcT+UI6FI7;gVi!e^#JO}8`lHtf$GdnQ2}D- z+M5o>c4E;E-dBoJX0Y+8IP?=KGQldF@$)dxt ze*LzXc49fMS>xs-yaw;HOznM*Js?d@+7$guhhLfm5FYQaur-+{q*T|Y=)BG$g1Qdx zc`1a?Wos(eZ_(EO4%Um~fmhINCqXSNM2&vb(zG>tQ!iz6J>wfTMVmUsB{b9I*cyH1 zs<2dCuGxp&aI$|sT1JGJDG)OU;=R%-E~T01yEXdzt3riXY4^yxyyJC#Y>BPWBeDk4 zGc6^I16l{vGxu~L$vGvnq9SgqTOPTj^QCr+3eTg}^((_vaU!75D0i5lem`EdG((DP zGpuh9!}^DW%de+;`t{uiOh0IEm)oCPHCXO#9jlD5sX5t>LR%p9mbO4z3Z2LzMAhmz z4&TOX;Ae-BJX%z1O=xSAR+V+6b}leZT z?0Zj&ZGllnE!`At520M{Du4g2H00c!vYvVSNSG;qRLOIu#)~_HL%g_mH`aF!)}R?8 zz)WIy(uwA$JAO>W80#`t!?(^4@r2je$pAlzPP9b`|1r3hva%rMMtNO8eKph4V6~&r zjup>I#8t*L5f17)yN{T5`>+fW(iri)rayl^WvF~NcZe7dP4)#;*>u9R2vHmYmp8x- z#N|?OcX6`q!IDjW0{C!{pSLi*DLOl}>m!b+4syixNdLa0qCkJRsn32C$x70BKZ@Lx zl-kmCPzkW~jx0OSe@6A52lZLge6644;>~grPLgDw$uC)Z{F|cdf&$E- zu3*fPkx<@ru>TH9!*XM@0F?95pna{exnbF+Xl2k2^pthR_9aro8$awH%bS3PeqO4M z7R&ns~vdG{b9#9(6={5mj!zr8=Bv->V15~sI;)RfDWg3#L6%6_BuXh zGhq!zCnfH5ag`Sv}YgOcz+Bp0J1`i_iH0XIp zIw2EnYmjgXV0wykzpTeL5vVr8vv|h-NCos@3riU^&W8+)^92DH!&W&b6}q8i9>1SW zV2Q7^_GwexoF!O$@AI6%D9ppApst?F^g>Js`=ANJUcMK2T(c$kLKe=osX;?y;*OYB z77Nq57X~#%-UXBIO6lDQO@^$8erb|NmUT@AzujzGG$7SSAO8{cwynu%AjAM6UqZ+tIb;KbbVCRaFt&xBVd&ZxZINL94WQKfw&;IL`yJ;3 ziP`O*dx8p*=1puoA(1BPp2f8Fxv++_FPd)NFj`FbG1>n+NyUeMEzShXTR8+_)hF@Qf}Ym)J%r^W`n7nBHrPxoflNmC%mw3Fd1qS ze5UHy-4lbG3QE!NmWgeZ^_I?JO4}B|uWs`w2v_*1a6+2Yq!tq(Mmof>_GUA*L!=B5 ztu~}rZnu)|y)MHm>UwP*AJVIywQA0-CKjd!8h8iZObEZ}axv6ah#CrkO0{e1agY63 z>#-J&sp>aHSGDV2QNBzHwO(RU_=os3TmN7+orCNu)~;Ksgj8F;V(S)vsEJ`C%F^eMafzEppziI$)E0r^`P+>gPC*WL$vM2#K9`iSSnBQ{ zW2xO2b*09ioC7Dv$N9$S(u>&IFJDmSZiPO1_kVI^%KL-whb)UfOnH!_`UEJ>=;|~Y8g+jUHu$ND9Hk4O8#q!h^nuljT zd8-dg#GT@8cJdLsk_uL4Uu|NC1G)tpqZ=>cU8A9p%ifDB;6&A;BV(CtRbE4fhS# zktQ0SvQa2`JR`ze9xn6=H_!2+=TL+yPX`nfQx&_l zR28aGZUahE8@G!yUz*Z_mYuO3IWNgO!={L{SxUafXDw8aaK{^U^-BqK77AE)~ZYH@4rCfndwm=JRivG1-1wDec zk@1(jy3)@eb+wHjBxR%===2J3DAyG$d$!i28Ww zy<}}+c$Jle)x;VkzflT@B+`0AZ`FFhaXM>)F||OFk^~Q0i{BL8-9B9WTDmM)n^!w; zYSx|8JE zm_n2-N9L+?0EcCO{~UqwaSiUdRS(7W=T;FD;O^7+uU_xh55QHY$oGwjfZR6~=8G|$ z0zOLsuPMU-r~RS8M2OEIW+wn5e zKa>|tVpe$7-HOr3a}UcRIrVIaL|^_mGE%uKGE%1vKdn+vz#fy=tGv?KqUzOMQT1{? zjV&ZEBcw{KEdDU`?HKBvQt;h5$nWo(2&I~|m>z)}^zS+L3`2Vj+fY}QaVWERM$OX6 z7Gj^Yk??J>j>s2j{$*Jo9;y9SmJ}$HO!fsbkCrWYo2PnkuDu7oh`iR0_;WqxwMGxl z#Ja1PH;@<8DIes&xjgwJF_rsnaqPaJ0FLB(blQ)T7pZK+ zWX^$Ra$A%lC;R`~kCbuSQC~OAQbugc#uhrx=1;U?T~#5aMq_i8$Q+CDR?%Lm4C(aG zlxWTgm2-l#v@-x+Q`a%i;eb)AjOaK)Zj+BC;eb$C1hpvxdUapNVQFg9>IeDAY-O_C zZ>f-P#~CPDM0#>PdgX_F2b7jg@+`KziiV{cn=f^P^~jmbEc4*&EgZcB~}}piJxNpSh5?i=P6nozjeLv^Qj5 zzA^fI7ZL1Bh|sXuJ4k-8mYoPt`do>o<*f+SrZe1q$o8X+oaZ!LJtFQ`))3LSY}c|? zo{iAgk}|&vB$;=lk@5Rm(iqkl>tJR&5qQCZm@ExES@L;9R#}>{+2lZbZa4P$ppMHO zo|jS^mSrwCrERdP&tYFuOUCB%4Fzl`b?4>z9pCdIo4$ z(srQB=Owdp1HOk<+s;dcTh`j-b8p908`_|#lR^YWgMhVq4ydz{@oo~Hxei878EVQp z6W}ZwcdJ8NOTt-{!keQ8cvGr_H&6BO)=&a(v}OZ*H!*I3dDW$^I}uQ7>33f&KPDAg zG?gRV$0QTs>cwVFJ#~EM(bSV{tAhxefxo5MWIGv$5;TC>+|Ab3?u2z?Etaru-3Z|J zE(eX^NuFml%W6D_mhZGC_-JJo!8OXdoP;{K&k^N7nc z;$?`zEwl`Od4a_^O@mx-7Va6m+Kc^lS4q&XuQvluM($31n`F8iK#BVd_2(qJnCkgR zwqSA4^$x?f8oncO`-qnlUU_TO(vX7tAf(hU3Gv#bmotE_0R|N^HchCRC)JYPQp;Wd z8nJ-QWUX3SWC>dBmf*=DC$(g3k5Bh94JAU`4;3mH8JpTtoL*~9Jcm}dW{@@Pm^2jl zoNoDixTHqA^-ZR+Q&C$_97$VQsV z!#>lJaos*Hldj_8P#nd%&^AoYiDnwNr_>t5KPHXvrb=`S3A+dl|HwhRupVE6I2?5_ z>Jf^hx&-&RfU0ijD=z_mJM@)d?jiNAl8Tebbuh2-X>Z}0wWBX@^ zj~0h*Tg2{Sst{*b0=);I;}sH}by{l+mMpaezZ%}DML8DaAi%$H*tX;yyFvzTh>d2Y zY@}I=2sL!iQ-utP=K^WgDwfMi;yH9c4pzwF!lzS8hEd{kyq)pR7EsHaT)Nf!l)@`R!>dQRCw#oY0B(8~0 zKs~ZpXO)O9^vADZ+lJSZg2b)RuVADl)+WfVr22$fqYZ7iB0n$-u#xsdY@9rO`O!T| zTWS8}wque8xY{h1>?b+%r5vMXZK_8jTc}ltI3xDPD)+cQk zj<)ACK--^RMhc$3?EiCYjiDAs%}5_KLyaDop&V$N&w~B;SinG+3c(8>SCU96C1a0C zlLVbt>%jAi^^$h0Qan@%envS|pjlc6qy!3hOfnlaElY(H7gX9B1irwe=+X_{P8l7oc@VTx1aA4GZgY^mF>;Sy4Fys-# zBV;V@6p=!BPa&SBgFqQNP6mcgdnRZg>w}3((=>(82({CsH645}lt^*+xhiC!`yo}+ z|L2@O3h{DIzX>VgISpP@u5u=@2CKTw>?|j%%Yl0iSUl!(BAT7~3`c5V`{3FT64U2k zV54XBTi-4 zzM3TNtQ43o>w46FP031{QL1kNy&kpp?yMxa8kO{4Cb{?|mfKeSnvF!%wf8 zp~ff+4sZ+8tQ8@uLcSxBoem67K^slSQmr8sJscQLQ(+yGTQN-JBl8GAp2EKkm{TD) z%574=4Q-W6!cR-vp}y*^I2(}6%nJ3tke#oM9`DKmT=K7TKUp)6DqDi(9+al$s-oH&s&eJjXvB(TD-4uWXfxU>%y}|rS&jsV<}*L`4*2WOwzFL*$kyvcNO|`u;1Lo60*)HZp`8^4xf_C;PINHZ&CiW?k+h8qVOj{D7 z^zD-40YWWaS;v3sTh=?j)mFpE%$K~ki+fUO!3l|X-H-RzG^7wY1UbJcF?)bS%e{r1 z2HGCxvgZVYt4+3DeY(R+#`V!+MV~H(WCM;z>8AnK6jyztLIyqBUO~Hn?_0T(`PC%< zs`q{C$E@vCp*Y3qg7vuooa=5>~$2SCEF?V>-`Q`1vUSxmT2fyK^yGZ zc|+#d%@P^UYNOjaQ#~>zc_Dmoy+ATIMZcC$!Y{*GeSKzabV3&`9CdDuLx8w@I;m-# zfAdvhCSwi${LwUv=J@xnw;rFD)mG&g_3v~N>ixTN)&y~%?WDq~3rc|-(-4_Nv%&(W zmF>>&iWGAjfO{WVfYvL(m6dFnVa=aM&Ff9=KD@O>g#WyNCx5lkrJaLruIcMpEx=qG zwcxpZ?kHIja#QqaDJBUCV@#HT#8V;FSu@1Dud{~5^amdfa9a)s`1x;?qby{<^}2p( z$l9p66Khx4*)Mn5FPpp(#yY3kz@D{cx1pw-(*ZJa&$WS_(?JTd2l8fejSk_o(FUK?CB)>MKGLX!4i3)ZnU{Be(H*MUM7GZ*Q9xZyI zq}ykAHp7fb2vE7E47=#i*ac^CdS>}wWZQtBUQi21F5nC?4C=V618|q45n+XqNpfHX zew~ycnvyPmP01{l+}5>dIK)!=%;PnuhTDcq=E^(|od|Kv&sf9$StZG5x3Zd&Z=h|? zORtYK4B}@J21XF+P}IH_(yIJYDtXpwJlDol&}Ivzp-F4lafvt9MziGov?bm*;Tx#4 z*v26A=17Jzq$SDu^xGnKznBmiY5<&Na~lsW+6g1!LwSY9o$$7`iCuw^rp5QBXH*a0 zXB>!4BdMA^;4glCp@?zYs?cWZwRgTN%Sh^8|8P|{^c;!aT9rzR9;oK>CEu z!UnXECKhK@<&kVEQRmmGbmHUH+*rxi05K5O^HS+8d}C5~X*oQLaffT(HMA4L?=V-d zH6{7ZLCqdZ$MYiH4|FmyUG)KtHJCh3!Muv!K}8H-RUOkd^CwqK+sqr}NqB1E*#=MS zUna%(A{zU8ioQwDOV{L*B`CS$9xQppHC)B62benKkPZk515DK-zXNbG_g7g&n7HWV z-fh-IpDvY}@2MsQJwCIoB!g#kGQzn3nhc?s)a{zPbRhQAm+Rl{kAKBCDYYUa7JH{0 z+f=Rb}6k4x9y(tJc{xT z6aO-g-adLXge|}78~xpR$&kl4!uyt_ZbSJKHmuLPeeKOKZe)KR{CU|wSv)VDo{aT7 zJs0X|ebS}@pZ9VxR?}pxXDqe5kFO`y%T0!}6{b|L(=^+6UK%RnWhmg~8eptgtTc`F zR+;XE5U-s63rPQkoPHwYd08$c45fS_4Cm5z$wbH#kpw3 z@=4neNdKbjvjKcwl+#b|D}#9J<@DhfDh=9BJ8HRs!t!)M3@dKR8` zc<^6`{2PY%4@6C4ehG9a&7*1Y7-@u7SKz*bE9GzJCC4Nz*-@O-?VW%n==yNQ^y_!e zOAF+Xc@T0;4*8)MLzY2EsT@)YA+xO*5|%?Agb<4yG8ICm$|3(Phm=8xSq?E5KWUo| z_4Q7~uP=%qe>v|j<#RJo&p!{wCo) za=cLpo$PNbIwt$?lKqq3{c;xH_~lNo>{l=QDc}7I`2A()leRB+UHkq6aDTA#KjrWZ za`=@!?}Oj_J3o;9o|64Sd)@=T_jWdd-*?}?zN_*l{dd3XM*nTtwfJXx??)o7uFSvL zJ72^$;9F{{SLDy}9jY!4^Ryy=h<66~Kbk+rTLQmJ@<(}#2jVTxzg>=}q0anUe9F-` zL&%!^B43T%md9P?`MKT#@OvyDwc-3OeGIrC$qp*a0>$!LtplzaY;C11NrOrLnsl>@Euk?+6-+pZ@DwSeI3 z$Nv@Iox7YrgMV%c?`HpKt&Zs}*?49L;9$qBSK~N%@#=FIuvRmBt375`R1Gz{xz?)n zRoi5cfYgbWQ$Cy8(+b_FE{&`gf@2(J3K)F-?@jT@I{H*8W zxj%Rnd(i#wZUEm6v!09l-Xr_o{qFC<_xH1YANQSp)pp_UJ2>LW;mEu2RG|_N_^YaL z5_DbF5VEwQg1~?HCFEBtoMcToA(e{>dBPdf$+5VyLe|Goj(Z1doR#IM$D@*vyJFvu z$MlF)kXz&7PDuM_a6eKNi@OEfRaF%$Dj;S}++F$D!?F&LmGSSY$5zUEKQ1cqUcYlq zITZd?zZ>#62<}H$%1%f4y2X((oE#pcK90Tr(HL-}dLmq1Uemqw12*d~Q`EY+i%iT=Q@V7QV%UEsBYcswhr~7 zzEogI_O6 zbP|3KmCtu@=Qwr_k15t?G^CU8vUm)8b-O2)LsdM7MmdLtgK}8q;iksol*@54tBHX3 z7W;Fh@tpBSV3}0y5vqR;bU|U#ow7qolO?kUOPnVCJS4dTkce?e#>XLPkRcg12$BT@ zkfg`s49*k!I?%`RTT_90QZvlK`xUbFqE=|FRnt-aV9ZDk;yC3v1|L#drw7+7*Q4KE zkLBb#i19c%-Kyy*eQ+Ulu&l`jwvNpS9#ff_JG!eYb_->!7xfOgqi=TM{djk@plj$1 zA{-AWo;xqiZdz;G2Aq7Gq_OweXu)wwLo_WfusRRwQN;7|Gt&jj1UA{B4Yg8~lSz`$ z?s5bryG1J8IAcBW*X!4#@c1OY6?IebclNDg zW(T^Od!g5Bxp9+xf^>?ENqKZY^(` z;#=i#N9|n-hlR~$Ga0w(T2$!ewr;Sd`HE)HEWtsu7eBt%wz&L;eWkkSoNIa!b1->h zseXt){3F@ta&T@*wz$Z>g;rVkERtOp-P$*H!1izUPO?QM#;gNZJYG>wYDdQH0M|ux zuZ@7w!?{yR=R%#`(O-7`E4%S^(WGl8Xj5C~u%F!xaYxfSNlR-jN7l~gh$fFC{dYCw zd)&e!&Z+roj5C5bsvZDsS!H?V9Q6-Md6ti4ldMmA!c};0@kY*=6Q||m zoIYR}f3)wd2+z$4?&Z`4BV=i9e%SC~!-o&&NnMhNdHvnn9I+&|`w$imVA))<>m0&+ z{sOI|w-_eBY5kLIRfe`azuX$8-1AGYOqz#sBRgAkPOCJ<&V`O~!&f)9aCslaeP>;E z-Hs4hr9146E%cUi0Wz74Rr@i7#6u?9=`CcOQucFY&nmY{lkLwtP-n$)#}Ee@tMI#= z)cg$e=%iAbowBytreB=+8tP1IQNJ%2{qN+#p%}C~!pF4-xTC8=$6w-z?VdSh!n|VZ>=I!H6G|4$xOd*Ys1NC; z+|>^)S-E13Y!Dm%QeoT`%>Tc~U%GNh6%0E${{Jmr)tYiS)4N}a>AW@o#>}Bq4-o{r z8fF%|Kr(Bil|K@bVDItTGu_c+Au=%QapB+hA&$p~2Jij-v8jgrtu#@#!M*SQaQ5!; zO;y?A_&z7ElSkXM4Q;3uPWqa(l$s(q_)bH*E$B#blqvX_punUIDmXe*xN|iH^g?-^ z0%ej?daKv*7DQ>l@ltW7)p7iR+PMiRgAKg|b)ab|B*<`1AGY7MPTGPq^Zoqp@At=P zPxjf*wbx#cz1Lpr5Sd2Yj60+Li2F;4coYG~t*mD(Y?xS-^~7>Tfj*KfZA>Yy&_fF5 zbCSaX4Y%-2sd|TM=W`15nqRK5{M0jTUr|`ZskT%^OyX5h{%2Pv*D@+O?)rE2567VQRTPHjE_fLxR`mTs+KUzsE zVj~jg#S>3WGqFAyoaAM#KMg^zjHK|`TeWr=bn2zJe-Z9}J{>=Usc#^2xRR7W++|Ml!^Fo96Z0L; zgiKu_6p*kFOuoUB&p@G;FnS{A(rD2 zF7>!%C8{Q-cxr$Y&kL%(r=>GS+noHsS*hj&ZM=egv_c!NRQsfvmBUW-pHt&}@byy> z@(h`7?pTU(fhWs-J%0X@2RlRnNQSh^p^867+h^hg<$H`1ubx%OBz$i}>fB z{Z;i+4Bfn80ZSyvcgLm)SyF?xLibGgYiZfYSWTzHASd-jmRf%pJnsfP%*UvQ|0Oku z&JpyHwh4Z9OCLqJP50xuxsYG|yTi&j&#B^OZ69R{!fTA}07F2$zgRYHxx>yo&&Lo{e> zJSn#Os35lVGCa1|vU-;^lRq6H#{K@!BWbytvb<$XH^aBACi#Yci0zuNRusf_y`M)+ zxeKy>5hbKI6uCe*vgDnAW65*>HXdi7WsMaiel`}Cu&!~L{<>e0jnv|vL^oC!WwAy2 z08=z6kag5HPmVg73!JDx5RXLc;hgIIemn`pn_Ev-ZDQs*iYZ+v(oY2e& z=%XIC!CkZo(}MQnn!+G@ENKuIey5~~w*bz>KdnuHzmKltfY$zU-C3y; z^jI!u4M@q2y|~N$%sLyaL3QjtX&tWH_tkMT$AzI4P{SLB(f%#QCM5|!c0gCt zde_PJ&@%$Rt9ECbgbzq1to@?iQxeBi0?adH4`S&Jics4Mq@8bjW>NGSX!pRFX29r- zc#h9)LN1gebD^x@r2SUhpOxY46#piLHT=_Ie!qxXoSZP`#v8ZAk$O0LHJ@y;920YPB_vt}W>X9l1QqUt+v|&qzn+sQLdi;2Ml~h0w z;@)Aj>0g9#pLc0umn84R7u~RN&t&%^;P^)8T**Sr?$z0cvXwK}Ig;s_9)#4Aa60_` z{nzOY`IK)0Z3n19tu(uxcXzsZ|5@qC+zV;D zaBgt4AAvTo-)7mw0B-OyzGQcVB&A(WVUF25HJL%gEt~~LPQy6g$2E5a8^n>Ju87fy zeme(-jExKIsf~D7#+L8By69lKRoT%h&+oR{2C0wmep6#c zYa!%m_->Myu}u<6=x(VO!%xR5*H7}6Qd8rPDG@SSRWaoV{TluM-1~LREl3X%70lY> zwUhSSwC)zC)<@!^?Eh|{;DKO$|H^gxTzo9at$2JDS)QuRm= zcxub@x=U9mXQfJ7Bc6Yf!oLLplUwG}N+|vArG0Tm!BV^-2pV>5`=|%f=R&`J-RqZc z?maAHuM@C07?AtPB{%oTBk_24!@S%4Jm?jO8@}NlNK4$Td~|&ej2PBU3yu_RCy6yF zMEHj#-uS4*^Qq4J;mwhacHbKvMtUWLP+SO5y!YzU2UGUqjV$9=XC)znrzwfqzjUO1 z^8N%BA)Jlg1k|8QTIv}V&yFPUAbB_X_eXCCMF0Ld&Gbp3lq*Y@@Kl|%UCg`mz_m{+ zh_&lx!IC<`7kizMSL$?<_c-mS1 zK({iwL6Isk(@1m@C*U;x-ivHIp!xzpWp_BD}iRR+xTL8P@~n(bLeO+ou^$ z+sk#`1ZYH>#N5dMhTk#`MnERx2&mC|tb?;a3q0N>;w+@7^eNN}N?<)^0+ffvl93x% z+Opabpj2!Q-tpWnF72Q3bKvimlbPGaC;BnvdHFBxUq=sLfc0WwER&l~W@6fd{imd1 zemr+Ye^T6|P0Sa5t?I`$^cN2g7>}zx*%y?CjZ9%IWY|RtlABV5+At5e`JK3QAZai5 zXlcp|LBeMpFku`{DZ4FQ=!q0BoU*SgGG${|BzvP3Wb)WZo8#f`p2(C}RZ+EG<&3Po{Yh5?xYF%TyuRizED2N{nxJAPLq&c3V#*otA=*MDj|) zNev`FowtDwR`SSfOR0b>=Twy8fkr&SHlQb5g%(zg5B(*i?j9Da2NJW#1V}+rxTG~# zKq$&~%>~2a$76GQ@6`n$btmnufWA%{*xaYoCpW!dPi@A#xXf*@IQ|$iG$ryC9>m#N zcv0r!VSKN=xQ-?wAd!^S0b+T%k0Z5xdWM@*Nx2Stj3LO=VI^cGHRr6d7n%nf#A#AjBo(;yZt;V`WN+sRn;+$r zvTQ89zn>(mzqIKBrq-5wuB`VY`?M>rQ~s+#ocZnIdr>t_yw&w9XtEce*iy1@2DPss z_31t~#toD-;wTmcfjf{Cf!om~t!jaFCAnL&-t3BG?$>&0wHfsM%vMG)((L_hc&|ga zGnnQjxl??ZjYLTGGD3Cf{r45mT~o z9<&J_gdFU%^M_~@WP1J;mek+Dl7E{8&s{7Ty^|#z4?5^FP$KUpWXTK9KRf>Z4Cp^E z{+b27z3eG2w&LiG`r*t8{V?nX9bq3xe+;eJ{26l-G9?qn-=_bIZns_B6~XqgC0Cz{x_(ZExEP5BR+H!wrmXOIC|^d@VwWw~m@)gq123>dc;UK@BHm-1RBZ1mh)O6N>Ciz%ET%LP-?OJF}>)9^t%R-$5zPcg|u{DB7Los ziQO`A%RKf#B7H61g5-FhRe1wN^9m`ZUQf#!D45H7*Eki8f4>j9UA)+PriLYD4?JA{ z(Ab9M-)(>L{6pmrmi?%le|SEBWBQ%Ahw)F!jc;x!h(uOZLO_89Wuxz93yR zYW+AnqvG%WaDA5cjo>U@x3%-hwsy{>jr4st#=G7@Z^6$$1buJ5W|tu_7RS!v776|ye8T{K0i+I?dY zF4e)a((^a3adMBLytT(Ov$#0;ASGeuHe1c?!*^Q;gR8SsuG#F{#iB?;JE#Qh;EkwO zJtXFQhy74RKLzZ4#i50oY)LaPnu2tv5nB%Tw))Y_@zJ;@Wj*Z+rGzon*qiDzHI_*^ z0y85WXd>riZ0R7;Yz$XXW2448H4%^K2h(r8z5MK_kd>iebhAXW1n1N!E};biYN@x#l6Pu?{@tb_OW z;a#_DZa4|v--Y+2U30?N(udGeZa`rz1kRCi&0ea=v4pjd=XJ=V-BlVkzi8+J_# zJ0z>@(GL9*tG(K|mbtTf(tgnLN7e&Zu4?1MXC>=Ij~DmO_G7dE*0n{=VE|&O!8Lvlf6m1h&8)|sUd|aK|Gn74CAcHnzUc-y|a3alf?f0JJbjI zK>B(*%-H6~SiK^Q{zvh)&+$XWg;IbNNv5YRbVxg`?GdO-sxCIGXn*F&~@2)(hL`@li6=Vj~LtH?1i+d{A36;#}>3y)yOc) z5R#gbVJ#&$W(XVHm9kn z(%A*G#5-YpS`ys=6yi7`S1iUfVVijI(mGlyOP?h6wWlIG&8HVC0awhz{J!JbZQ_bc zN-rtEhyuF539CMlxFz$ideT0LsO?zOB;O~J(gJ*6wim~{o+*1~PQ$x(@SdAxuao-t zIw@kSlX`8M#yTm=kLG+5(M~e>K8fhl=AkVvlkVFt*7SD68=f$JA`Q27UinXtw#j~l zNhLW(r+EgX>pLUt^3I5Id94R?ejD5knn02r@eNN+<_2U*UiT?T5;hoB#w8ofTiT^6 z_-nj`GitbGg}=H>h@0w5#=Yn#QWGks4@*k@HgTjMesfYV71ol}k2$aQXLxOX`JPIk zl8%Vq3~*t|jrS>(;YnVjKXC$hR{F@C0o=ws!EGjwNvN=f`%Sw|UbLQi>+RRhCvZM7 zKRprcqdgJBuKgFVz0Uq4?jlO^%iL$BBbv;H8s|3g4`aI?hT6Z0=$>LCIbFnii{+L!?srg;f zV{LQkLfM%*Ci3}uQGA%t*Se`X_47Kv>e5`Q{~5ftoFzMYws>E)fyY?Jq8M>vFM z3#GCjHT;hEk%30^D=E$fA2K%ok3Da?eVS6_66V6)RJ(T@ z`v2!McBcw5{_8Q0l1u^4$w$`qi0{VKsjgDzMT2(l$ z2_a{l1$l_)P;Ghf38ZbG1HNPA65I!sCM9H8*E5X8>f9y%&w!FPN^^qwgC^Krs_$k~9D$^_g#zya6Y|v6RlE(-4yATfkn0zHo-dp?L|R2|8(_rgt1E zSB}jgu|E!(V8y8~>Y8xAVD&zHR(gLau`={uVP+5Hy@-)MY+MIMxIw$65|mAGzM&St z_n}NLDgHz{gC4g?rl6MRWX(`wP8huRDkR!N?;l&odY&rJKdc~q%9Y0`$-~%cGvp}0 zzn|dMKLd{X`0r3~x#ku4!UTZ~j$K;X^yI<$(m&0gUb5qh}?9 z(zL4v`d{1z^1wwEeGA}Db|qkCCL0`{E4S8OUr&gA+r+wy%uJLK`-4EA@}WMErO!&A zA+1qmwwjvOI?+?qsv%r!E2G$hv(h`cnQvh}i)^KU)~>Fhvrh9sl| z;POqWe+^V%EEc4Z#TOG&Y;FLtj94=Fllra*W0^ZfFMlIejVNhm@tOcB{&g_3330AB zikkd3@l^jOP&=l46ID`>3GzsRBCN@C17~LBHKdEa0u<+oXyPP9qbJ3w!ViMB!>L}9 zk9)5q`igRW1+Ed)e@ud@5hLg|h^vMU({)hq`97MBr-3t&N<~w>NDF5=nORTJ-#L0^ z-Y&09l;ffXyhW|m?j=@~(eAyv^37x~asa~LjMvLFztrsl= z#99?dP(0<#+VWT^AtQbC4as}{8{pC|l82+jdEVBS0W<(1+7izt2-By7-SVk3lLHuI z-zKi>2i!1{;!qMx#LwRTLTc<<$vKpCjUhllU{b*(v5gz0W8YrkQynFQJ+dr)+q>Cxe)xv1vwEe%|{^Y#LTU)N_HhC>>X0}sOW@Fza zpxiR;(lWD6!c*Tc1&b>HpCl81zg+${C=ausWlFeUdh^|W?0X@!{0iUz38yzBerEUK ze46_JhQRr7maMYO`Sp3yQS&R7p#M?bFIckV7f+EFo_TKBQ_ubkO~;n<&px+w*>f1< zi+n#_wlk}KX8E)K&pwBleo_6*&-hi( zEn8k)^Y>+@XR_q|nJnpo=Ph`229^}_HKJ0#+%oVQJ((xkwLL?M5g}{M>cAoLt??8=dj1U>M*R{ zmX^u-D8~R_;5L>k>x)m|S|s_TK(!BVr2kw>toghE=pafPeU&6|r>Y!*FVZ%JieICU0zFw3l&-bds`2VY3ObhpF@{=pn-`l~_Oh|!; zde6HPxHl1$X3S<0olJ*{S@QYM66f@6&4)m-n>wA@!_Je37Ee>2$(d&E_`x(~kPo}2 zO$j_YZDzoz=04AsSYmBQpJ1e@FNkOPXQh>$Ids?w8uE3~udleQu%h)C!>lOSt7M3!r)X)nyykHeOBey1f6*Dup zCTE%$Ak)4L=2%{n7$e#q)V7W9BCT&z(VHi{8Xa}9g4IoqqR&$!W$HnX>{Zie{1$hu z-&8R}rUkYL+H7nS^Lpizvr`@%CB_+RD#lJVrvh(KY;(+#0Ptc99M{cE(~y}>HTZ?}>AUzpFy7*%%l2_uk!HV8FjBqZvTrQb6Gcz#< z%FQ8=g0_m;m#g5L`7+XnBSGfx{1>6mwMi6XBW@FqL>T!-(D=OU6z%Wh{@C~K63Dik z`Esi2Vda+^h`D8dj*}9n-DR{E zirbI-_gmKf|{JrEx-(McO304Uy9``VCS|Y-l zz?Twfdo!*8IK6QCw*=={d3oKKHh<7l2@=Uxk-yv}83goBR#jd>F^X`fn{h8H9||ah zU6q`dw{E9vAfRwaYvbc)qZvTf7h3k-OovXq9A<)TrlEuT6zUugC zHz`V|Mj8z+4$t;44l8y}qVSC@r)cq**j*Gn+PIP7+zeeH8Kx~RAAlCo&JHwAzRrbz zNs*}|=wj-ROI+oTXaF#yly;6qk4oz}4mA;;5frVX;@VMSeH(DEFw7JL3f+^Qib3{JM0Q-HYqWH=^*4in~X$!$zvu zF)G%N%#Wq%djJYdu{yL6G+U*9RD5NGxoaT!1f2!C=mGau@lrpqS1JW70iM168STK2 zKm)6Q`c{vijFF2GO@)8%Yj7)Q#tJVffYA^bo4|UH!)m~{?h7Do7Atm74JEvK%kmFU zy2OdupCqHexFfEuE`-iLy3d_N(fb4Za^X!GCFu>KO^-o1d;v>h9d83ZJ@XVxPAs_| z2Z96bQ5RzF>UAS5u8x}9r&p8dSA%G`oOXi`Sznt@n3{i9+MqE|p@77Gv)+1hF|6cc{R-X+ z^zjup^_RMpg#)2kOWt-V!vEu+McMG1wAb~rD-pK??}_kp6hW&Stx;_2F;$gFwKG;F zq%&3~nEN%!XNnEMo=D0ZlsGtVa>pJzZOLBO)O_r5S{T1r>C5g}{>knlcb!A(!LKB| zhn|K!>s^?O^L9m4Zz`Spq5$&(b|)83yyy6n&@M)wzW460WQ~hQ`>@yOF`6oT3Un$Z zbd0_RdM_c`*_l?uY4sq9Ssfh8BRbqeik~?m{CKc74qw%;#cj;-L%PCLdiiAel*wTw-m+KYDa=PiwWhVa0JL98 zRV43Y&om+yj$914D~gpJjgpewV*NCrE69>mB+05i%~w8I~*;{<>t7mA=S3P$gs3U~5O zlAF0R^G&kzQPdR&@gDzzKw^g&caROZtELa)jj=exWD2cuh7CzPNqv*CeG30GTZw=k zN;Z%5NKOyQ$@C>WQZLIv4WFghex;Lh=7fQMM-h`X>kyN-iTr4Snv>W_?OEy9N~c!2#oGVCYU8U-hvCt zWB5Ee$?I~Z`?QVq4o$bFalvCng%i7AVPa7^lNt>Tx6)T#Pf(K=J%Te<4a^`RPfVN; z;Hh`m#oT6WO02-cluX+ZNcLva#2Ii71%01q3NnQr$=)aYD-ZK@70?V@RK+V{O)Oc0Bj8;+uf6)CNOl_|=dVz60Yf9&OKlaOk0M8%5?xZw ztz@iR=z&rl=#^!XawQWtGZ{`X_!>xQDNRhln_+B)i)Nw+FCC`r3a9vtyFZZUpG1{f z1H~1O_Ib*vR;~Au{D4GSUX5xwq)vv=>c?|#*A%M8ZrY~CK0uF^v&ze_fCQp6X6`3D z68kzu11!ywV{I@6I{-G5_Ftdj^wvxt#_>(eF-Mc@GxoLI=khajnU(7x7BU?mN;lJ< zNHXff+{*AIFF;6zYcC^;TK2tH55C3AoINWFFe0ucDxR_ME@fOGlN$enT7G8qeH6Lb z_|?xcd|SnD`qKBNG?kZ^cCUK8$XWvZJxv+@nB*bp4c0JXgQsu497hk|*Y@EIVY^fF zajp?c3Czp#Cy$-zBfOXQAuONl)8r&9K%6ZB%6ap{r>V}H+}P=^@#9XfA;iosee8)s zF34DpNgIr1Q%nM5gIS{Ap25|CJ2_Y*X!{iXaA1qLjuKdep3G*wbwu7vD1D0)>>wWy zk5NFLpbM(JiG7;H?ZO_(+{QNl?wgO$x*L6bSyW!66K2`x7yQjjk| zy87=2j35cr4>Ebv!$>cd(p8vm&HccrK9HR9NXfYX@fKEZypQaf zNkbP%-j^4ig#O&N==xs3X7p)B>*+fAq~eSR+mw9_0|ouU!vhaD1`6FuYbBjWG3wYf zTIf3GMjMJzv1c@|niO9Mc7|QmAekE3l}u5p^EkYzcXVDk;6aLMZP^qC4M9L2pGW=JvB>fSV9)9&wLW4^c0Ci+G`p(RKIS%{3@zIn z_R!;DtSbO|4A%A>)V4sjU%+};QbCI-)~wt;AU-?7Sh_D@x!D$2@kAwHiKQ7D~z|Vl5NEX#D_;Jj>@~wat@5_inWf{Sw3>;f;vhWJjnq%s3-Bqw0nAa?N)I^ zZ%g}Z9(4}QGK5~9uube7Vkn+JJ$4XJgz^NHY-j($lOVhDD3203HlF?lO)25y$3vG_ z_~?)u_jrr}w(bQAeIdZ7 zwy{%TZAgmQyCU3&sqO^;({5?DvHmDZS8I+gmW)#uN7!ZEl9Jza({oW3!*pvKbAj^C z04-e)bhZlU@}PLnAh9kA>Vcl-GOs$6JvlZD%t%vjt+N~Cjpwq<<3wT0%AhYq8FDi{ z8`3sbx_cs;yAqz6KMW;2ClUTLkj%}lq_|P5Xw>b6anADf+7&N5wuYX$V0E8&`wpC*68sizr;? zd>=rY8XxDn`vUtDmRwxOlBP$luf_VdWcpuo8)@Q>iLqYc_N`bWbD+cD^Zsw2@czF= zTz(nvhF%P@0vpHZQ^fEHXno3^3in|L+cC#|+-!(52D6R1`){&_PYO>5-UnGuwc~Tp zSL8Sz+?Uc_M!XeA3OUdYNG#}iAL{%lB*z~M9+0C+1Lv1*1=T>?`OfsPb}xQS3HV`c z@SUJd_^_spjw8VL#?~KI*S{7fdGE<5cq(5dt#dp4pSTY>RKaY2PPM*zr-O7GC^H** zd@P8irUrU5)s3pCu&UO`Mq3CodyDw?WreR|j-|TRQQ3VoZb&)O@fKmc+J^PziU98> zfS>9!$~Y(69k|195pBb(l<Y zNLLOf(w#xxjj>1>Hz~aLs<m#u4Iesx1d~X5cFW%$;P~P>AHFO3b6v=BQ-vbd0Uu z5kL7a7qE3`dp@++vPEpVB**9FjBdpxBYG4V!`@oNfPDfX+O@pvVX zw|k_!Jj8-gYpf$%#2J^@QG9=3#15DNGJeFcPem(XC20m)9U0xas7k4e5>-;%szW_s zP#ls}&fhwulRXg~gVC$9J9;99+=u!UDpk-9eH*!CzoIw4bN+b5n7c*%=904UgcRdF z=CbHlt50Tb5zkyYF5N{iXYVB(frkQyku!i>C(c&_zTff4b^9{|okTtK^TSqm=TVv4 z1d-;r56eC$tT`bzUd52yWcM{cbE~;@y<;FWIeZRQWD!OFW2sKOogNLl1t|w@=&SL6 zLY_d0b_4vBTdEF6~`BE}h;#m(2yhERdvE!XFURhp#4E`&X>Q?QpQlJ~^+?We@ zvHwffr~{JlN( z=@XQTlj|VU=h09wL6PMM)?5ZvQm9q7FwT?XA>9ntt83OP~TRDd^02{U*PaWsW zaCs+)Yi8sk_HFRu{lFyw7PYD{lp_Jkti%*oc1m$Dbi_^av+KJgn+Hz=lwQV_7|E+3 zuYI+Z^wK53>vCQdmU|^~pOl0XD7!80z|y8&Ly% zxR#Wtg;W7$r<;3B`;aEg7+vR_ZxLU)ND5T(V&$JAWcj1#;O}ju z;3wzI0D~I%@=(J5N|z$r^gqx7x@tu8Fxn{R35d7FZT4?(sx|Gag8JFf9_e9Wz0zVr=B* zD1CpVM(86(j!W6A+EWDYSs+C;X4RHe(sVj!%$s+&*3nn?q+`O9wqneScB-!>sv{(a z$>p4>LPDo!eTl?>>>3 z#|KB&IdLxjaa1W@k2ys!daKHeLJ`odtQ(-C@M4*D<-Z=QW!nFu7Q{-U@Y2=W58A>B z?GEw-Jd?cZ%kxhpV66FHz&JI~6Hywmwyub>)&m-s@t_9!XV?oGRe?aW;5|)91x!IL zsU@oCxPaaZ>pzOJDk%WT>tWQO#@|6ZY(r@p*K0u(aP|oAt|-@69O?K--h0isVed6_ zf>vDVBYe8>DXh^y%xB5M2X4G4ypiV3T|qG>3a(M69(2e049kF6GpwRXe$s3WlO{Qe zK`zE{Bn3RQ{B{)oeiU5_{040aNd8W7$6%YpwP3`v{~E0Rc52ppabpS-ETDKZ1L!QC zeeXuh!e~oc+$na|I2qqR+Is`n?;{;q(8t#MuhWw4Z7RV)&q}?DdU|_x<8{xx>yl;d zLHD}R#ksUmj%aOLL}j!_-alpqtzhUe?Bij!Y~S@rwzhn8l8>v`H)ufm|HC48?X%eO<4VTEyxO#UL89@Q%smL<3{llvc(+nqgD{!hbJXA<<0#_RG3mrO&0rzDn9I^O>U}0N+Vv)( zm*{E6Ijp>ne;Z}AJm}F|#Nmk2i@Q_W-7h=z4Wm~V9n^VAKG(R2A{6xvcZb#A>w{)* ziQJ3A|4+Tp{nK7Nlf^@gTg3Mw1?1O+wdv)mj-$JbAeMBisP-9Rh z#V=j`@xhnE*CDC(ejk=x^Z#FXX&bpL{XU~pD`;DF`$=rMq;FDsH#jDpNZ|cDL-}TX z14ijf(5UP9!Fkhw-pq*-wIWRNPg8vZ*Q{$&K-rA3vb%?PCyvRGM)K}=>>4X;qI$rs z<7Q30+P9=kE!%tn2I8oh>!aoxN#P>AIj#63;Ok3QKYCl+%=#oZ<64zdxOv2ukQaB=S}XL+=iWs9VbAGX6u9KTU=1OH=cVoM(il9 zYK10{@K^a6Yf8|Cz7C&7ue!Pbw{IDYrhf1M<(idY$c?_$3b@_cy}xrz34TmT$-;mu z`%0z)G|w`Cw*uh(=f8tD#-}i6!Ix~HhM)^uRym#L=-uJ$Zan8P)h@~I%hXdV(1Jwy zkFor+@`>mRB=!=4bOXcltE#ffvJK9`Fxnv|)&6f58a+%vxVBC^QSO+g%eg18` z?DZ34JG~dw)<1o|N#37)>FUzALE1#WfL^7G1FeVkaV`V=#~1{ff4axDS^V=Q(oqBJ zl5^h3o7wtPbCo;SI5j&4VKpCxC%Jx-n-QkC10a>i{F&Hl7^@+eG2!)JFMIvRc$@>` zN0QoUmA_w)3ZRp}>trtX4rtVKq0ji5kQdtbeW>MDhcE-kJ{N% z-W{}rtrPW3`ls~_dLVtiX}mYPlw-a5k)&%Wlv%K6qgwR@`Qrpc&PFD~1LtJJ{yGNMfK1JQG9Gi50Q zPw!5`Utai%#-YW{a>>srw@2mFPX04pT()IOH^nxz-VJ@p%%(maKtUJ42qJ4iDk=^s zeG873-t=pDFX+}ZehShio=SX8)xKbyWu5{Ji4^64gfxS0GTWniqTccU4h30T3a_Wo z3R!ytP1E>rFM+Yl!1h?Co5QnopftV{97d>VX~doO!j7wJ4=$ukSkYWsgE9kRSArXV zKvU&e{U^8)=4fF};;RnleCqdO@5BH~u|0+$@^02^%-Fia4V{D6V%zL!@wZAS9WM-I9~9bF_BI{{5`%j?OEudPspfN{KGo zNdnSivd@M2a;!XcJ@zILNo#nZf)tj4&RFA|N0s!xiW;Z6LrJTsBzBGBDT&7enh~`F zE}TYwUTC0vh!iLU^j%WB;&%UBS_C-vwS@6d-f(;yQZz9oZ@AJR59BbS9u@>W^0DCO zSo*dW_bZMoAtj7MNnddxmsjq={p1;t?;DBrwk%OKgIs(Y%s`&jz0L9Op?w@ zHD9*0N{aK^q<9`j3JTrr{;mk;{B7LC;P|WP9K6{rjEEaXHn#UfI2&3wLzAaKQX%n7qKV(7u+zv@7=?aT;J&E3%=3O z>w9V*w1Uu>CZdrP3%uLyKPz2T7vDgkr%%*49JRU`i&vWIf_b`~nfKJpxn_@j=s6=jW;Dc&EZK<> zxJayiSnsQ)$Et}{4Kgs~y^G{(zUFrM=@+<5*6;;z>pc=ETkTwPN!hkVl6fkZ z6{&tI$|xHo-k7|5b$iQ@E}aaiZOS2?au3w{PJHxU^6g+P;-y%dX#0*){1QIgAh(M0 z?GM9t*$a(N%4r!Di$+lkS{Vq9!EetP{H9;P9XFT|mFSJq_h!A#4 z){-b|c)b0MA>G5td(}fKY8cWje;3BVoH0`!$mt(M)a-@xy4^02B}^^2hh=&TdS$nQ zyfD(2I2o>x@4y%YbH@X8%%g!;6*rQkT}t8S;RKFo8n|7f;^7g5HSSm8?Vv*Ho6_IY2ert$L#VLk*{F#M@=g;c*+NsCspQ3uOJKV)XW%y8M8#jI!{43{ zV`Iu5ZsluHrGbl^Ip$90Hpi6Rjx!-H5s%(rdJE(OUk}v5tz>4u;vlg<)$%a*SNilm zlFNoOrP>3!uvrb5T03sBhnfW5x(rJ8&iCbLdO=7#NqgX%ds35nNJ*ZI>ecEY z9U%p{qj&F_|BTm?lx70DKTwm{>qB2e2-?pW{s27ewISUsc1ZcqlBizws6#cR%fUYX zI?A#~I^;33DZ7F5YJc#snCaY*k;qcSGx`{g)d$G6hd?GT=JN6Cp zP$~v8g2{zNP=#Tih^9?Qee+F+D4MATY@)wKZvOK z4pa8ENBQOb1nXG2z6yLSk7xwq)(IGc zyg(Af!{6!QJqdozl}-aUL`k9Z$_6Z8NqP&YSWkttRzJ`_jA&P`bAJ(9S7+ z*IhxaHy~xp=Q+0pNFL~-b5gB%A{7`O(r0;$URiP)}r z_xNM(I$=_0 zhPGN-P?1E136C8Oz3GG$lPCjJT}j_@q@JjzJV>YJK_5u4ymOI%pL?#q2iD^k5#`K9 zSxbTLYQhYk6&_DJZho@tPZ4Dr$zf>kl2nPgGi#0lG=qU4mt}pD4RaXFuXLMZ@HFA~ zxiAKirb2Op>^2@#yiS~Qxd{5Yf98#G3RQGo#aXHNgJhJT=MF=uHBO9I*Z|VSJ8rbL zS^{{Ys(&WX6=8A#kI{C|$URN0Zb(rq)P${W#a<#u+59Pbzcp(1tKYQJU?ihX5`Q%+ z!&|m=#QptPJ6oKM5$CjzN`+8Mryt|ct^*(l;Td&_0S=W|KfA5a3$forUL$Fjn_5RyPteRh9Tj5%A3TVtn5tf-01}@I1qaQHG zpRV>R<0h8uP{uh{88<3M#aW}4>cV!$Qn(8JdGIdus{Q@Q3rV2i^seC!qo1xPM%DB- z|2O{s@nh`9&0=qFMz|Lw^DiP?Zk?EXxz|k!F0HN;`O8bK+CVR0`ISp(um9Je)$Liq z`^P+eLhTH1zoO4*U48n(jWNh-K`$6qT-OT>pcmBmnS!&@MTOypHDRMk6Y#mz54yo@ zg|#H14LI3HBJK*ABA*;ZYWUOI!s^8DPe&7$%t)s{mu=32!B)4?kKQOh3q;&__m;%s zo+6q|Q>*7z>sG|wMkmNFh1Y`T!*Wb_lm$Hx(*1NHXbFo!`hL#cEh%kf_C`rZ7TZ(j zI#HjT=WvkMw7jOXx-7FOdaFut!HRnGyARq)CMVtqdF zbaiXB(cfELCpPvI9{2^ZK51P^tiS4EcdO#r1a!>TRq-mFLZ-p8B@Yj}YeVUV); z{YYz6%Md|>Hm$9A>Nz4lJ;Fn-%6`sEZ@MdBrRu$NXyHnJEMx;g~NX>fA+k z^pc6N8aR#h{3A5?SoWTjqs*ZqbcG-h2= zyjX8TE6QML^+R-(`%yX<_!(MXyfUDqCjYx`QgSJ1ttQ3x>hZGK9hV?ABQRdR&HWH9 zg_2BRDYd(~j?(J!I+n_HT!Y*fK{l%s-?)gUD*yJjQoe15Da{uVPj8*T(~`i-YHgfX zf7CADjjM)nrUfGEnNQjm0rqKw&gvGxnK0mt=i)~Z^~R4R-qY`13H|F0AWW`9RvR48 zx$+_@fV|5Ko}71{6jYr5Frrbj&8K8JN(uUou!QiBT=omn!%C>X54s|yN=#j@fXSLxfy6e2HpU_Jz*7#cg%>e${&a*Ewz0r z#kxMVGIvf|K;b@=g*!b8*Rm+1a08SdmBL4fmsmO@%4MAqwXZY6rTzu*VD*$2;)F4W z0DfsJ?5hEOnE^LtWZqsT8IQWhZu8$Mh1(P5)yuG~GTa_jGi#zMCZ+o?P-g%z_K<92 zn3lD<3|q{R%uoXIF2nfEgmk0c=iTVg&CTlgME1Nz_%%*uV((=9oVZTh7$qGKl(6K* z>DTR{JoIK+-^idIKjYru)|bBOxVgt_VWLi^PJFHZ*x@CF#I0;+gt4T;Dp?uj{2EJ9 zc#9luaxKG(S7s%LYsZQP4NgO+NHd4Nv_I+XM*OFrSY(xR+cR|kE z7Gy0p6ASC|Ka6AHZt&GyCq5X}SO|aR!u5ST6`fO2N88;s&U)mkZj?C{JA+bo8@E!m z4`b(|#}nmI(8O9mu63aodX)RhCUdPL;=RLMld6?NOV1q4r$*ah$YW}QJX#IpC>hpx zA1>DfS{zvcWvh0ddjE*HaPSA=%JTa_)>}w#+?$+r6P^PVQS7Hasv=53y*mxK?!(k{ zL$24OI@Nf-JI3;9cQJWe{OxX~H<^N@pH`N|%>L1o1vk}+4@74@8LLKlP2sbx1ioFN z`<@N9eu6W-)<^QrTp%6I#Vk2A?MC@$J$=5yE5~V8@7KJUh}Dc%GF4Pnuc_BqL@{?* zy;n^O{7B;}qa@EHQ@iJ*ORc(KNGc{RhcO~%SvICV)?Z6Y!YG|$|AF5YD|eIF4iD~w zZuh9X8UgQ7ZuDadxN6XY2O)c;KHz6B0t{7eE~4o$&H zw0tInp782L-QafdH>2nc8)K7BAH<3GRkB~)3dut5k?YgNmAVa%FGFbU zZ)mBzpl(7Abg6HtRVCYM)QQ~}(JMa5$Mhq8An^;SK{7ojP$k>-Z5hJI&7a7Aw&ngs zI~k-!FZQL+ReIMrxyFB#yFQFCd5>Jc_U^g>@H5Kvrm!W>V8mDQ($$|HOh69kUCc53 z6PV|)xZM1k-s-c;?N_ek)D0{uSgMb+%*o6O z7+FQ1wLLw&UF;k=hCGnZoy*=JT`DF2Wi1lw|2tE zby5JM1nn;+o32N>!1JX4zQ8o8!;I`>yH4bQFMJ%tH}u>9vl@xGgAq>lr2ihkX$Qc_ za2-y1HQh-6B5{HVR+`iJox45CurEXjYYf%)X&E>0DrLthDVqUq6F4QAnHGm4cq&rH z)H)PBHmZnyH(+a5|83(cpluC=|2RS`61vBYahqrNd~38wc=PO$7hWi>N8vRN&(NX@sRZ(cP=FvSjTKSaQ$*q3cTko2t@<&$(He zq@hhqY15LHn{KA1V9GY?=uDcX#}-kF0)x0r$~Gw=RzP3z>DWSn;xdy~U~bCt3ZwpQ zL1|^iXVrN{M}2_SmjEIXI|hf5CMl4z-Ah~P|9v+t;(IeT-5G_fOA5Ulds{;7GZupVJ%;AC_n5(-FUdW4zk71uPlHquC~k zzUwM>PX|KV%--qFug=BrR_BRxpr5@)&FbwWQ@fkUhED2Xvkq$4p5%z7zDc z%RW_LcBr0~GAz5j7a{H)sB=zsCX)OHPLb#AYfaX^C~LMmL}AU-8ws;rvsRfa&M(i>)Ab}v`zN(nT zjT9$JU5ve_r6Iml_BH*YnAnSHxxGs)xxT2cs#2LI8$!s7l6@oxa+8gA!|8HXIC77M zMC_81;qD9Wi;`?QofL$J~XDxDr2v)YbnT8DDhjPF?m4RhWTmwDb?E|p15!+nNi*GR19Sn4jKEYfX00585@QEFR|F4p5yhMQb|k>kg(ZN#E5iRk^?N8GuLyrP~$_5oE5m*7IFSX+!sWv@gLvWE)834q4k*v6raxwpI$Oob)_+1r6TezZ-d(OCU4PO-g$5Zdid)dz%=nlpk zu#eqPd)pvM{411GWTHiidXVr1yPZYj!nK*RLp8iD)KCtPKyBfFtie9_Ucl$j1@yve zm7%G(HxKtq+~||d%F=di5kJ0Q+8v#<7p~Y2w3uf4CJ1<&JVPL^nia(Ih!?FJZ*S-h zPD&_fFnSCPDV{jDM!pk6HSrA!^PB*lh+s>*FW}ws4J^GWTA%SioDgrht;e)`4(I?@ z(9J_P(sqrurbSQ3nu3<@;N*I}wL4f)PtD_-><5iah8@S!;&-GpH5K6*MqK0P{s{pq z!}-J+{?)nvTh6q5UWc(MZP&51l%~B!?{+E7YM>}fV^4mcwu=TxW?Un67PMrvnxUVF z^`f{#8tum?Z*@!4WS{+}?P=SZ&-4T>_aWT(Nc#i%LZZ7{S`bLxdcSXrxJbUqf4Ad~vov~x_-w6>*#J_OoIfd@C0oQ}kngZ$B_#5z$exnj;=s`F#mxgK&AkNBmHxxwAh+VMWN@bLJPZ;%<_?`7Ew5VN z1HJnUG#e8+B^5ZSCC+~eq(9jsmZaqqB(3#TyV@7^`*(HZj#g|q4xnjn4O*)uY;Or` z)wpv^vbdaCED2@^X>8GweC7!GO!G|4M5i9nV(hzqU$-=?eP37`J3AC!^EgXjm$Y`E z#xqSwkEs@h8wc+Hn2phSQ-L`j&c9`KuX zIvpCv3F$2Fw%^+`P5@05FvS{}V=C?^D$q8^VH6CY8hs@4m%-6-TWg&wU`&cUMy<}p zsZHo(sW`z&ZRa@m(G6k;!@+d@Uq zOJCv3gT6jB zmK7kkQ-K`x$Un3tp`xWFA)f(CSuXjMBl1zIK*CxoU|F7o^-4qPLg>kF`>-x$I98wB z1ho;$#*XxWj`V;*4^Ads8|?w6->t=3K$_Pp6Ft0R9MU?dhbI-Ohou6;*qzPxF{kn5 zV=2jlcX2>3Fuu*a`!;A-F$D=3TmxdOag~l^bYu<{kV!-L`xXgYKxd1mTwzJ z{xD>NHcjCY00^i9ojKQ=&D5Ro= ztfuO8P-949PDeW16V_9h5o!`haOIS#6_V88do!GWpoCyq;KEui(|XlRwkzeD4*`u@kMMVJEEm`6ou>+ zMK@{K6qdeY&hpr~bCy$w9qrK&kA8U^@T<&K8v1(d?9kV#WMV&Bq=8tP=$XcRptYR{ zYGxok8J}i#z&gx@bx;5;gxTj3S3z&bdXx=Gp6;N^&>f7K9w%tG61QnLaMUSy0`?)S zeANmZ0Y-tYTKvM5m;>WIb2@+{H_b_lZ%Xm321%GhFNd+$zlZwGR)iWemM4)ZfQuKt zhuWb1GvA-h;>g~tTldCJVGIpRil5}d>eJCX)T;E4U5Y@n3uK63wu=;82M%>bWW%RM zB5w5hac53LqkCE87CSUGdkS<#ZCka&!*ZfBaSrZbS%Ld47*w*A9n1g4j?WgcC8*e* z)=#;wf?R1C%nM5DC|%TqfT~sj&K9PH-R1bk7NQ)=Xx*^F-Jtt!5m$v2ye3@Ay*5bb zn0`a78Z85K2@XTpS5?$c=&wT+n%N<%7VE1DEwN3-ng*OW4k;uyfJwY|K+n)}j zM;5}N^+acwD5}F0t@9NvT{MdeDRlOXr}_z}^us#>@5ss1SYt*=DPw~h&r1u`Zl(Jr zpF&W#<;pbUn*ltxec{Ub0}4UecAK1bY$UDvKu?fnMI};ws7Eq3qyJf~af#(NUpNJ{ z33ERDz7a$@Zi}ew<5)R6o`Uk}m0+~oKscJFfbSuY>$iv`1m&iKJRHD41~477K`stMH0?aqfe#dh8ZMs=%VgvK_v_}A;0`gRbXn}RX_D<*4n2Nz29 zaz>84m%`oR<7*T9ZRzOVgHIy3-@{|>18G??&?w5%M(M)OkuKZ^eAk~eJLDfv z3i^Hf@#Y`U29SXCcvAyQO@vY$OGR6MSzh=IsR@+&I!UG`P>SA^7|3oYA@hATXaR;) zgp3-{CiRBJsi%W#{;0%TY2i`$O?U3K$DEFGZfl5GioHjJ>T-;RbyP9{msrw!6uqtR z_5hBK>$i|+KvDwS=tbyIY@O)k84vLEa<3BJ#hP)xKL$E%mc7$)tsG!<53IwmIB^(K zc+R8iJPQ2dsHC)=mNdNCx!0-ioR&=d(F)Li`4=ll=27^CXHS~IYfeQgmPXAWc39!b zbH1`egA&gYq9?5N;-ZVB>p5uGI__3joKcp{ z6m97;4qzE&LoC35SR$5k-&a8;V1QyLo_l;HS=zsnZ@+C3`Ciaq)?jR@2jN#*FV7S* zUThJQdcT66@k|Lli|f6<{E-kP<1p@DM|$&Dz?(q_?d4eFK~t$5GkogE&KBjF3iO3E zNfp3c_^V#LaPh04K1=qGL3pNy_d1DZ_2R%qe13kBz|6<~i&^fwK)P-uaU^Hu$|XEL zFkU$Pb|n3X{{m}(dO{b8Wtmq|{YTj|mo_i`6#A;h*uXmdlabrwNH#I=9n|M2!*$9u zi8>!2*l?K^s=^NCF{2~=_qA`x5dm})r?T*Ij7AJPS@w}2`WvN%C6Drx2ECIe#rW(- zj7&WI3;5hUuUfuW0a7`QdwnFH!1z-d2ehayG7%nHRg$dcK`o~UZ@_3}D==Ew+<}dk z4;iO3d-(5bpiS=B+q(R|<9II#^Ts8TK|QY+j3bAG#1N%D=ohY~qt3;JN8QX`(LH45+JCYS0$&s2Pwgk6t$evA;pvt;m0#CWf%Is ztQQTiZheUyc`=du2@jrG+QdjU^e8`ig7mISi>J{J)z(UH)pF%Nm5aQJ@H8kohY;VN z@F}*%pjU?)P3setsy2)~sczNov$2+Ym9qUODVXi!w#78j?1d#QT^xE($Y*}^?NjVk zd1#)^e^Mfa2%A=>oQn6zYb7Py|2|5{C5*FV$QC5CBSsD6qpBv5EDbN(WBtH&r`Rw` zO`#&)%COv0DEDzEmXqyB`i+{}lCyqIOAF(6sax?ZUDc-DN8QoBk%B*Yxq#BC2f1A# z&`KMtzxQ3&(gMmft_2Q_Q`1GVHUC25s28iwldgp@cMl|t`W#gBHcj?X~W0{q?T4?420q^MhhXzR5E z?&tPvgh|JV(aydcD+|ERCmS*P)7oBm4dFFWR>gTm4O%mVCQ@c zuXe}$Q@fdZ@w>iHq5o41Kgx>G-@cP6vqPUNfzB;R499UStXDfikFQM(f59y)I$>mh zYu5-1J@`yg_#%&MNF*+J?yg&O2 zUxnwlTf`&7pm}&_v`qzw!M%6uwi#Qmiisn!qfU_QrZ~Zy)9*=c7F-ihQ@;Dp1RZm;SbXsvJ8Ot={O> z#Hz_|dNr;p+dVtNkyBl@jP{q43^(mxK+@oO2QkBQ7RhwaXfasF!*^io@YE0!Jb981 zPa~NCPYcO{o)p4oihKj>HchwmCpV4!^1Z3MV7{J0sJ;=VJoe@j$-&to$+a`K&e(5b z8gnMYIA7lOtK!o?5K9qyT!~#2xE*~M=-LmqauXXq%;*lzXe-#!E%AG1nn3={SNRvt zZwBr_??WQS$4RivW%a!ts*7V^DVGkkY z0N)1xVdaAP@WB~wtpa2Fe{)+{QL^KbwixpGhL?ptDcbOeTC2i02;ehLTG zkqH>-wh&JMNrb9r1uTxzRvdNN4@aRcj7F$QTgW)8tpqI^iEf&FqLbCrBkgZDu>8g{ zHair4W+9sjZF~{#3C^J7n2wp)ltxS|1YGzi+>*8yAlLh)wQn<^g1;Y()? zeu7trLg5sg&3u--tzLXL#IyXZAXA1g8f0xvzI<~1d$H;IE8=a#wJ>`VVW$6bJv#rt zhg6e1({fZcNX^<=+NLmPfsEuEKzs8JfNk|RB-3VJ6s9z*=_5$f6pwn*oa(8StVC(f z--$i>ZC{Ezx>k#?*Mrud?8cTiUoRDAw57T;&1C|~!c&eJZVN!;guzj-&rLP?!1HE? zPU9U4UF-J_V-$FbiST5t=G+X0J3W(*pW6;B!dk{~@#^ zvB+HD?mi_`1+Z>YXg%9^2JJ|I{)a~E`(v#|C~ecpaD8fEG*zfAl_iM+s3~bp72+3h(!l58>IW8Y^+JIW7H_Tt z{w>0=m@SRITU2WjU_6OXQ{q%1)k7h~d2#s6>ZwNFYId|= zB`+*=Uhp~2%-D@{VVq)x*8VGq&tpM6ZzkDG&?8KCz1SRFGD*!q%9=dG2ihd)`VLak zLfnoP3M(*f$5k;71h$=>Z+ z$nu0DXelj-Ucu|d4|>r@$iA>r1#;7*!_aC8%yxS(+UK0FK_82unq=Vtmb%L=k(y5d z>nx6U`{UwghXPNLa6;8o&+HIy&^RYFP22%9w>Z7Yh<_h4HNmXRfNwK$n{*Yar_e)U zS`%<1MNu&qE=`=cD>Y2jXbV>oKJzqn#7%^}OSyiYn}F7R+b3>6@5i{4Q#})R&~Rzm ze3lv}+ zXY>Wm$GcSCt29lQVEaI$N%0j-C5qR5|RO&IcHd z{B721UkGE3Ih_YJ(~HFLEAZ*V{5I8@$tG%Jy7cmh3x;V*tCQ8LKGspzbLu_wY7ni(kPgqCux2|S}?Ju#fwM8MeI2NF%ICOFxopMb} zCSCT;4qaIL6w72swCHK>)?MVQzWiOl_k?`*pj18~xA7q_K!}xwW4R{#{XO%fJ8oa$ zT2%>nTyaAz0x8H<*&{uAsDRZ-_OgwQU~|HY!Hie|-G#HJ2Qj_MS69 zr}Dak`Y#Abn+a}(H(!`*jdK?U5(JAUzlpef022=a6vQ>Q0>sG>&`T^!ym6i}&IFIf znc|^U2}1I2Bjlx43fj<5PN){yLnp^xlW%mZMm(8dCm%(9lYGv+?vqiFSuKpANPU}kWjM?$e>T*C` zCz8+pw60y6w0x+`0)3vibIfj?O9_yKR`Q$0ofj;CqgHqa{fGYLLt5j7RN)QzCML;J z$?NoNz%Mz7Ke#jGm#Pz~Wn6<_dTxE3-!IwZv)_z=dG@OV4nnePP1FjSrJ^~kRVTS| zU;TbIwjqt-3fPtwvXYS3^pNQR6Pq_Rpkp&}SXicu!Ao?Bc^IN3_!z`UO~K zDhhcM>C{77l7GdQCmhn!X|_+;x4~5m*nkkw#T2&6wCmLo5h-oNOKO?eg-4L zaepSwwc&UQJ8_KE41F~aGp!mYtj67N^+POE;5{UAU_{bY`X+lUKvzo!MrUA2Jm<4| z>VaFlC!eG$4@Bj?-@a+}K%JTNPEDHC-2k+o<{!GWwsx8uprhsi)+2q~ehTEqH(>3l zCDuRLLo&6lIZ~#LPFZhPp3ZXJS0eh*QmA?P;rA`Oa8K%nIOm5^Y2m|Kke%AHT^Z&X z7{?{+iunAE(RT-B*=Wj+g-~X*_|Eyir{JDyCVX!{k0~F^Phmu#9hKj>$%ihb)ndv6 ztizjhhIf^;<+*utU;7p&uBHXx$K|Z59_@L>~hb-m;-r z#N*eygGK|suN;~PvSa=ZSV=bn{)V1QUmfZRvXUBxe%VNNsvK+8C|l8COSw?IsPI&}b#oY5DB73>?fd(?-&=R?>Ur~JmIy#x@F1n$4@om zuEQ1awvoQ7Wsk74WqLg!51*?*H&2gx@RcK8?YGDH4b!cxl^_hO z*?)Dkv+|LBgw0~h+W$bXBFOaE(sW5}IvdPj3i z^~jc-zrlT8E`V_|Zu4jCB)Ol-qmA>S)o^SNMh;S@&kL$BmZAZn`+u&lXUYJ`ZDD2r z$wFlTdiqglu4K>yWQH(?sj{C}s{5(>v^)ltcj|6+xD4|u?+lnwz8foRKLCq)yjhsq z1mE8)HBInLbE752M0cZPEr-$2v6bl^a?C_M7szS?`v0h0Q_@^%*6k-GWuQB#o6NPX z?^S4GTJr?-ji7et3$?vw19{aVOauMlhByEenui`%h2%c0+$^pPq2&6)mH3vaf*WnW zEH7Nqwq#+CWLt$o0d@RQZQ2IZ)+G&#+IMdkNPm(hN3fOXP8Wd2vsrw!&(?_$8*>hy z3(xgPTWbo0+kw9oE~XA0n~w65EbCnuwS|>WD5DlVX#YAV?e?bM8D}yQR_l+a6oQ16 zk1~m>WbT*Rl2Gx|5-33nqh+WAr4n2-T)#KMdM?3ndjmBWxJ%h>4c*Z8uvq$D=`L`I<_%E)sy(#a2b>hAX;Fo;E z@4v2XkbNQK_-+%72WPaA9Gh%AJY(AxksB=7JxZ&8+#B93-W7s1oyW7=cW`EmVYy%c zQ%ghmOoP@)pkVh@pl!||w*PoArgYXVXAkA<{*fK_&Ek|G={hFSTVj_f`!!??vzU{y zoghf(^DWiZ4wp&UZ=hGiuLr4>1SsF^8~`nXCd`)% z6IQ$CggAw5q!G~-=ptyez_{F)!0h3r<*GgqOXJ^9nBScTzHR; z1ez-|U8Rl$2THct!DdJ`)!0+_%C`+Q#mPR@#VkMH{V00qQ$j0oPV~tc8xV|F#196t zTzg$_EH^j`jeDF%hjS60-2NXMf>@l{y52=Fug{3|=J`u)yPmCQp#5kCw#PM&6#>o_ z$?%EPZ+i{ztbpEVppRvYZTv#$-?P0~Bld5B+`?^m zR&SUc>RnyTP(R7Q+ZS@Zmq+Uzq2%hDJ}%K4w^1%_aFofTE|+Vy$!X}lD25-6AxD1V zcVT&{;?=0%1-yYA^}Nt68PS(heY0!3MA};b)_7MQ)Y%)vdH)ZX_t%~1SqbghaZWLE z*uUMtTeg)xjesZ37(HW5zd@(%HxSP41Rhcf@=u(~&Pqz&?aF5g&t_5Ci?@PbNB!pJ z&2_}@h0KUPP%J<9Cx$4w!^a6`7f|K$Db>2Fc_BhgUbE{@j27zHMC5TQSffXJfKJ+g zPI{9M$(oyDWbHWNLy%4q9LpHgpx^>%(N3}|oY!3+!f)tNR!=a2M$hKwz$iX~QQXss z({T%?S}M!<*@XvFW*f8n=c;eVi$7^>H@R4{pT% z^9$(3H?aDt4rL%FM<4A+=14!dIAN2ReNhQd{$fmN(og(^k9tAaBwo32_9`U{uFzX- zDwNE6^W5`(A*3N_c zieXEh&$)u+EI7CvxNHV~(neDv%FI4(@mTAnqNC`AO6k^b#Dk*w`f2U&x0s)m*+gu2(j} zxUgp&NO~2OiOrkDofp;Yi;fdP1tmFCm>fNRUU!h2r`!hGwj4ooleqo@Mp%o=rE;7} zXdU1_$HLSjaSe0U{CdsWinTZ4|0{t1Z>0k582Oe^%p~mHd^bi}ccjuxtBYo>erBCx zb%h*(xe=c)izz>l$ge;6RvI$q?8|gn**XV}TpvI?^SN~`8S&=$YY|S{fc~G9mb8ZW zYp1AsdrSkl^k5y{)E{SvjZqM1<;&u#L9LsIzsm>H+yNIgzbx(=jBz*1--JPqIpJFp zds%E8%w!6T#)Gj-^Pz@1^ovI#33Xceuc59xsL0CMiIHcUWj}0&I+A$;@Yd4U9n8&4 z-^$DWQN}@j#PhUWrFM{TlTc zw=JS1v2NMdRQ5PGnWXUVw^Ofk;)>bAmthk_*GSx351=q8o- zG~CllBVUZfqoCece*2jo>99Lvt2SIlJ_Zd2umU9E$?iO_8NMf8$Ph^8M0ftabRo%; z587!#Dz3!s=&8A~u<=`|`nK^6g{{xRn*DKLG`1z-Gj^uHh)`d|Gl*n2dXt{u{^gmp zT^O?>W9LWbP%iEc#w|DbCkuFXlrUd!RaquMO%qH`W z?49;d9LI%p+yfz9Tvo9oq){qD8bw+$M)A{h&A#&N>Q^0EO^L4Ttu){0Cs}_5y~RAB zxJm|;S8|H~2){@{OBX+&yvjlvS zZD!9L+vvF-$B*?W^YAaR{PN28Z^i;;d9Rkk7+JMr<#Wq}weQM%KL=`)Fgk*cnCTrx zH@v$e)t$b};xYk--RY*`BEmQPqE*Kpl&l7fnq&tauhh;mjc=UbHnU#WCehvZB}Pnz z7M`e8GaEw;UwEO0nS{#9JKBnwZMn*YG3u_1Utd=;qL%jNgs+5*hHx-qtO- zYRvA;Gj|H@cJ4IgN%lQwGCXNJNM4pV$y4a4w?BQlcKj$7>tq9+`OO&V0%2wKe4F4p_7%Tr#CI{$b@o=KyFKn zCtBJEr41bv)<+${C$3D_wL1^MOz=+zRN*hH3OyMO_v}yd*bEv+5u=tGmIR}_yX|iG z&-Zl)?;>}#JW%-(Bkueb3XqZ^wBM^@^E&f|hncM;9tN3a#vrEHYSHf$$@1UWDH!HVp z5}ymcHgkNdX`h8X>*x-qFY6ADUqK=VZbWZ!o4m;|D^)?w&J*&?mG)sQT+|7n;)tqN zDU`w74TO!53-tdpe<-mn66Db;ood9_9(jBoQxNe0_;(wNUAaq)0;Jb&=%TTh{%zJ}P=@j_f1ZHRAu zh_&Ba%XERx{-yCTpoz_nEY;R5M=i^CDK-^LJ>tVOS|It8g(uN_evX-Ot|=YfAk8|K z_O|_lE)`2=dMn!RVNNpX?_P_GR8tFgitrYvB9NDE0S=cb#RA?MPxnYG+o2aWz3dAo zz7_i6Uceq=&G$xo$@wtfd9)Y34}W*~P>-5*IrNqp``Qt3bQ(z{8_@5NfZxF@FV{+t4{b(&=T~O}tQy;Kkt~VtD{G;oJAfJKvyEur&sYc;l)|s^js25QC@q5rtI!a4k5+gq-0_YVDa3(b2pZdbv zC<+(n!#Llmq2!^W`6cDE%O04^FI&52Dj^S+%ql5*sAS|9{GL5)mc6L>K7Q`(n`vdM zmMpF2D^{*vTCrpu|76wL$|ovT-b|N&S3bLR3EBORANP&^DC>1YF=OzVf;$`Q9PzTp znM}}0GGRXXA*3pS4csK9A2qF)#J>&Ut%4ru?)LagpH~wL(iUS^jU4;C5%Aik9kX2v z(y`GDl*qPGWETX{W`0o09MgBPNqWn^p>Rp@<@){ZEo&I;s(JT9Xo3w%Q z`an6*6erUJs+c-3`VPA4SXwklhKMEbz+32m&7welmAX~mAozV zsmca(@bLw-4potH){Ua^B3gkLc|jl1@~jNrPPv%Gn^}=$hzA)IG=ohr*YKo8PGwk2 zidew8%(+oKdx7TQYUEU56rj(7$#b36vD=zEnyW1bovs?PQ4C#Bvy&aou2T4|>`$WW z32LWr^?oa5tE(O60RDw^_^t)b*I6|_pl<@n(EL#_nT`=+Kp&NQkACNLeJe@h);Y8d z)T|8GkUdqT->6nW=~Jp|M=V+*xKp+p_oGye+6d~z>2CDOXmV$?D6MLDENCVwH|~Hb z-Ma0d3+Ki(7$qH#TKvQ76WGzWSLDa`?CoEvh?!V?>f2sLWbZuXJl(u`|2e56J+L@m z?;F!GDe(OJny`*jT2nBRxbDGfl7Ghcv+pXPj!QL*^6vtAnvgi5@Us*eK3-9lFsFD? zW>#PoZ)$x-T0l@v$sieRF#_I3XuF|iDME%Pc31j#>MUg6oJsI3&ZL1vPgN%5=BbmI zkDXbUZ;s7wI^dAzWFdnGR@2g`t^zI zZmGKcS%(IAnJy8zuLQ zR*mqi<34O}AiXsmILd$+97^8}vkrM}ks8QZ^}lky53P~hUFTNv8E@g($C*{=ff+sP zmSD~p;gWdyM$}h&k5uh0JF^DX9CK#uQw!fpmh9-x1NI-sWNa{_AJdB~B%K|y#%dajt)=Xe`0DU@58iU3VWKq( z8jm3yOS+*1+GcDN>&~Zmitujlv;?8f{tv%mH{uy$S?sPt_DKL|jhgY^a4C$o@jO1? zIFGiZo*MLh^0N5!ka9~Yds*Bu1bB6MLXx2X?}0}>qoi+rSzJ1_QLH+zVwh*kP=c&4 z*4LozWg+y=F`VL2IWn4{4}7!_m;5CA-vY$^9|4@f`SM*^J=)c1bC_P3Cu!2Nn5KzD zdSowLPxyG(9UXHerQYeZz}mTn(UK<7gO*%|X)l$Wh1zf*r@-GM>DvjwJvXj#Wmeui~q+I!>>(6$Dk51(RBuf#XS%0)2?lLjM6nf|PKG_3q zWX3RZ)mCT+YyR>y&KAxZ=RsSI6hYHulWjN>1Wn_5`wqWC01nYda>oa7_Wsr<^I;3X zoLiRB4C!vAJiFdLGsAjfcVXPMm|WDYqBY}Mq;E$$f^=Ue(+}hRn2GT+1<@yE!oMWF zaeqa=66m@CsCu$DCXgVE4Xn#oAZByr#bW}|za(rUG4l5b*1x8Z@NuUtp}aVy2`LT9 z*E6}bGX2&91^I=$!JO46MFlS_;+bc6E$b- zq*(^noM+}#$T8Lc2T{^^NqlqwF|08hCrj@eMb`zwqvUQZ&AdhC$QqH#Hj0mjbs!HM zZN{6|)ns!#Ay2Pby>#)DzgdOC0{=wC+QqKQRm+~_S1*0)>7{Gd-o@uECdB(4CCPuM z2E4l^2;h$ zuUX4itp3f@Pb^)vmS6iMpR)#KqS3ZdUNn}{aFH4%Ml*{_jLyn&m1Jd!G=m%q5{^V3 zkd%xQsybBRPgTTB8)&P`$+eIO##y3k)`haap(Nm^P#+y@ ztE7cfTY=)x+FO&s0nc@}-&CO(-k`T&Nto{UM2u*T4FRt0tr+8$ud|u~^yFAbTt)k*Zq4$Gd;$!W$%is#R|z*^N?| z!~(D0F7fv#k%%H`W9kS=| zxuCg{X3SgY#oCEERiYCUFwP#m?kjifWi$}AYD_!kL9d{BqBlwANHd3ef=P+BjxoD% zS9#B%ZU!AxRd9p4gr1-w_n6Vp_*79sLwq1=K|}S}rY2x$Er+rNL%MKu|9r1JN^F0e z7s`F7M=Oqp{wu6fzcHv&E($BiuS5EZ`+Q?O>OopW26YBvdCgxO_;pC*-0l5YAQ~YV zXD}{cXz|ODu#;M-`~UUdLpb-?eX+u2@ymgpkv7JUw2>m+^Z95y(1sFs=~8{rVl7a? zL6UH)pAaRC1m~^3=$Jn?044N5?Y*DD%0L}dBj1@A6TsgZ^pX7?^wX*G{Vt>;>q82v zDF!;i$GEkgBQBEn!WI327{Sn?7St;+9?sb9Jpi3#GV@|YE{$)kY3$b3)uZ+RNoWs{ znbfEbB(?G|TjD@cQ?7CBc5C&6C0VDF_D3UL9eVr!Ml8cTfsUt5W4A?XGApC@+3)$xHN!LQ4C0oCu zBX>7dEU{F7^B%6n#f`RVCXK2w9jv%XIJ_~OiylwAAr$8*?m(7KZSxqtYVif?SJPCR>2#ZCavSZ+kCRC=0s=>mC1 z-bMSDsFCZR3RZQz;jD1+PTaZ8hZKG9i6Al9QwhJwSw9!85N`E7f^F1+uAWhv#E^p( zj&LyOvm45B!(wEphE-K^9`(x94z7i^4vYV|K_`#%pO7?%{#Xh8D^VYwrBZ}9DxS_z zPA!&{1%C~aar7SjRF_Hg>BDN$?9}{(v)Q7Y?Ij%Xtc#>;5sX(2pRq1Fb*!^!5%M(3 zKt|VV(nx<2_aa6Up-Ek}RYg^_I<>Q?TH9G$O*^XY)kXfT^Vanm!!pW{3q~Pd(NN$z z+abr)&3#Giy-_D#x`=lgUlR4hmCOQA{rPo_JD@8zcn=3jGE$a|E?er6=sss4k4a*} z5X?w_`Nau(i=RU^E4_(VoO`>>5uXJfd@`u!d_m3h z<+cSjL-A9-h^x5+q365dd&;bp>m1z3ZFSmZW>N2fXtSj0@|~*_-@b5CN~$5ePa^Iy z{Yu>_$y83=nZK=YRV`naKcQR!GUqw6mp!lRCd`%J*OlG|FvYaHUYG~XgB&Yf4eSU>HDtoVTWBZ z6GNc7W2PxkiJn@cdn4)r+8-NUlvplhT2qTb_BLQN!VkQfQtlR*AN7e?C(gW}hdKM^ zI3?V1ddppW1$$=1u0rPqDXP4v_?Tp>c~#2ffez)P#HH|h(2qr)$w$oE2G4SmH_b~x z7C>G}Exg~eToc|zlva|dER1#0DGKL(E`4FKQ*VVFFrF*^xIk?s&5QLzJ}z&iatg@; zZjhj#vZ<0zJ!qHwgr8rgyM>O%-t2YcylOkf#o}*QHfkEm0M^v6HnG!^#yYkm%|-Ji zua9A0FjCfBMjO7CK)!46NE!pzz`Jsp3Urp-N_j^eG=LgXCzgZM+PG$RpkNTSv!`(d`Id`PXXi{uAl>G5d=S7*z*@=n}O`irC$tevgvNS@Ej z0j>D$Inc4ptxst@Jwe5k4}&C&^Q3mXDDj4NmK@OTkG482YJX^FboXc<*mZ0%W`|aI z%7)PifQMQlz_V40(Z+M$fl23%9iwE{v0HJamSvZ|dJ|VrhM|^1KN+M0cved_@~ZAD zljHlmF+iIdJH}QM^H>>r6D9iV`q1$tvqKT7QK%v}lv%|S5qcYe7n;>!ox(4fcw$k6 zixqY$%b*6nqcos}+Hrr>lgU5xQd}nv^##0?EQ61hmX{-4LVk%de`0CnO|I}d$khGf z8^cITUdmYAPdM%v?q;b1-?EwxZ-*8>?;~B)pnl^0sZG)C zrKDh#AJ6nUD_ahJQn~9O;a4%@z7?a%2u2q|5B~c`6r;JkF~>G%_cci&~&uA>hHBeZI{C4Tc{xFct670r{S1v zlKcI+B-wlZMo~9REGNC4E|5tbhk{%QZQ?34PX9U5HSh%`#SfMg%`M^Q7TIT&@YR;e zRaH-~Edcd&#nM#;{F=2DtKrwuRZ9x^swdY}uC07>RURR?y$C!OKA$vFGSp28a1hzo zbew;tYiv5nTu^Q409i_J=rn@t662*)^ivm=Tm~vwT7j^ysiax=RoJ8{RucY*kW9r> zg#YWcNY#fy9e?4R7cfH!vWdd51xAZ=_gt9pUfI)&9)3NF(E<4OzhuMsHi|oBTg7W$ z3(GdwiPs=!jQrS{7%GXCdn<)E@3bX4(kmKl-@0>?m%6=1ff2FdYN4rHcS{Y+}o0fZ3 ztOVr^(D#>4(sYp=w6Sad3&yr-{|l|eI4`K(R^3ZT&7YrS>)RFi`cvQbauF^r)ns?c z)>&@!nu0qN+5lk4^7w!^sGKtTCY8~w7e!GT3-8uff=1{1s8X}Ve#u#Ev@5;GQ#5Rk zxL#5Ql)R?an*!9D$F^(!Lb?vQKEmG|u48nTn_ZR;v+IZpqfrsQ+35r>vNuF{quJ?H z_Ui$Q3c@#MKmN_DFFjG)&bfK>oYHY4lqhXDC zcE}d{iu4?Z9`9d~UPydJdj4$}v@j*CcdxHjx<9Ng3ZVtdW8PSx)?@lzn)pi*ZCne< zmHi{=G**SXsYTryw-4hx4qgBG%${Hz#q(Q2XI~*zMX<8_Ll(8kYh$YIb>f1MVmHaz zejZAO2|aX`RLx}ndEt=mmGdAMirYgdJF^g-uAK3@J?vNQeoXe-PbSBCCo~r_J7RiR zwe2y6w()ghM(A<2kEwPk1F6l}Qbt(KlpfrZtFJx+JtzG7k^_EO11v2ZIf;v&&~w6z z;%!oV>8~W-^dp{+f!U)sF&(6tuDd>?0P?>fIcxZT&sp<4kst8iFOE`@1fQpWbt^v@ z2RZ=2crM+t?DB*JL!Q!y-s?WOK`rs$@N%TfWzS$QmQ~=cmSN9};zntd9$R46p9#@w zdo}N}hiE21OOawrtUbmHy!<9bZx)wzVWbg&W;3k~oGV-POvTE|B|q8uTD^Al(xpq5 zR;_he@<#W-(7%-%c=uY6b4TGK-tElbET-esjMR9Glxo1f9g&g@(H+I-_8=5blQx&e z-@-o(BcAN)M0*hNd5d`RhMLg=&iDBJ&pT8Bmz?(bjp5}EkzOW- zX+_X$8umRkJ5)i{4eC=|OYt5ODY%{zFiaaCK)8qmqjxFrwDORo+Jf;9zn4_YvT4#*~7ErDI_v55ZhEZ^8Ly{ zj8G>Y3Toi_K~M|N_ky^i73(E@{vP6vjtqE4P!H1Bm|d!XULXOzd(1ArgR)X+eL+|+ z-{_bCxydABR~{=JfzvJGS2xDrGV^E&9G&~9j-icozgH*LfF7TDgp$M00iSrBl9ykh zIX?j7MT zfz;aaZhv09>bPf*5h(qzSUj8(Xs*^|9+wR6Gu2%92nTs`xj}UVt)yG*hMwP* z!3r;3=ZMyfafx~MW9{0=-JN9eRj&e1m$!3nMSnI?y3zLo-r7*e(QY+cY2X;tui;7f zh$>ES6=U7JBgQ=}cHZa?YAK#p^+{wC?6i@9Vc-C0|5X|Zs%v4W(6)bUEzjV3}OET9J z>r_A7L%={ndbL^Bw@t3xSovvX;)?YvN>&V$wR7}*VW*}HN_Qg{ONL+SGJB_q6n3gC zWNcw4PZRwci$}G4i*wJ86iL`zOT*@O_J`ZjqG5B-p);SJgS524X}S}TVt|y|ffN%! zI0N+*1wK}ixNU{AUs|ug_?2uX$Vc^2ogQsmYv0n;Q)_CwwjQGZ=nTgCfqeQMhVAGP zl|&B8Fd8#wu%vobL%+1QFKH`ZZxoI7)H3kx*`Pj?ME*-o+RD{ak8Znq8!b>gA23?b z;Lx!|U;m{^Z>59md|&aD;-Z*qgH-|IL!e<}bKe_?4@8MzMg; zOCI~hUC85{Vipxi#eAxg|B=-ZIoPktKP#C4~*b~b! z+tRWnzg-|$v*#n@d=b9+3a+`&(n0<)c~%dU2K}xzbr+Gm5= z@pgE=H7y>Mp!&)NDY3T(q?L^@m;P{NW2cVPcIv6FNbfh72r!$V&+38q1-aMzrK49c ze|@-d?ttgYct6a0?1?4It$DeF`yzYU&4ko#q=S6$)q?!NhiWzG$?^d?^*8sojBz21 zmCjNbeMaHBgqlrsH!dXBy8~7wI#UtUXbpsDD!`*3~8=V z4kHfCsci0|1)xb)RxFsee8EpYf->$ctEeak&i0esi_4cS!{kSnKDPL3IasG(SwHw& zko$~g0oTdM8prs$2kFDw~ zZa*#aW|C>RkywVvrbp>`J9@XVtZ_)~)cR|DE8r)A*OmHa)^fY}**?(u7L95d zRmqJdkyjzJBMMnLN&}34NehC-ZGL=YQ2|8jow( z@3d2a<{y>Q3EBl7l~ahheOzNXv}=ABdJ9e^I^b+J+#$-wuQ&m}fl`+~7P(1vGH9Yg z)&pi$Xs+rHp}AaPkLE`*TIkV4Xb*SM-pOfpwH~{HjNa8+*rU3X%Wxiib-p>QGZvmt zHd?~ONQBxhgYjt4v|w0?anLG|DK3w$k$OS^KOq*}b0C>^dAyl~KGe|hn;iv@OMzrY zbM}Q3jYrWEG#j*IH~InBJpTE)cUl48mJ#9xyhD8t?SF{ieQ)sI@lcpYx*?TLqvCm- z+q6dNIIm`}DO%)@eWGGNn5#&8Ya~DJVgvmC(AXAyzoswd1;}=Fr1lgc@Ya8tD(AY* zxTOzc9ITOiAzjq2A=wYe*@{P{zxC0H>U=3+huUgFjgQhvjq@=5MQH6${hVV=s7)^9 zcNkZ(j+x?dp)l6&v7liOMvSAjPn6gnB;xI}EnEY#tWAM+YUqH6j@j@27``1JAfRbJ z2fDvz*9P=NzDK_sW$RhWzBh^7+>a|t_DGXgzXRAX0co)_kTlfLw&70gzOWIyJ8UmN#iVd^G|p~^OX}dQ2H}ob*NZ5 z1+_-12odYYK~*W*Dq7(8rB1Z90&Obf1vzyl;h1U@_RqT>+=q?(KQI72d%#xyFdHG$ zbP`%`WVxTf9Bz<_@JiIi*=4IRQ_drI9>2R}g>#LxOR;(Stv|=JM%oW@&94KRXemKC z>-#HcfAfIf#!8{54s>RC@D0MTG*q!z6LqUJ(F#8C6JlN0F`Vq1uL|5Ppof^I#h=JJ z@(Ik(*V#6C7*RF6>-jjSF(d5MRxy_s*Gqru-`K?&UuXOdruEELGVH4V>%tWpPjWMfT6tcqE+@Gut^7jt!c6MQp_I~I z%1FKc;79u!SCagTRYQ8o#r5T8KNng{bseuLRx7Q-h|npmW3W|1IY?w^H~x@SnIF_QC? zlgmZhk)fMv7IIO_)y##t`3UdJz_^S}i8pzxxH|Jbb?%aOlARDu)fqx-^`~SLSug!p zpDwi4$TPr4`zfHe>!qE2&p1ATcjS9>H8=53j*j;G#Q3Q#9m(1us&nsY*X)9}MRn?= zi+AQGU385$gr3ozRLXm(5BhiGU&4pe_J zc9GhXO0B=dd?Wu7K9sjV{6Q?=S*acN_#>t3%88 z2}-0znx(`v91&PAP3Y4wgVnb3prLP;djGt@QoI$Dy_^xk=HBW>ba2WX0}14v0*fByxP`32xsga0e( z0^t0wVct36TK{KC=qk`Kp2XEug|l1WIdWq!a(ANGRN%@&vdhR~+&v*`GCkLkNS=iY z^!N@ndrsl-eDC!f{;Ljzxkmcxg1|IQP48(1y#KH!W~YItm$Fw0Ph!qv%T2h7Mk9UPMtPV}V%BABlvB)H=n&l~-(VicP)eq8aM-T29+y&6AktTIe_GRN5X+}r4 zN9VS&r+^QAEq4rE;hYY+{qV-wVRO^$ujP}fA=j`Ee-y^?)cSBNH9o9Y z7o9?kK3&vB3~(i9Fdp3;k_2}*d2zBC{?8}LzNehn_atXl?0o+t0QDpM z7Njkp-8E19!E2`Zhl3`~gZ{N5_S^c#8p(GdcFsuf>vxeHCBE)B$m^cPyqVmVXQlVM zwbm5>t`_|c#O%@w^Q}V^j|Cf~oBGyEdwXNr-Ui9hrx&%^55kqLc+}FyD4!8?-44C- zMa!1}Bc!OG2pI{kx)X8$Z3V5m*7=qPI*rOnVsA290|Wedx>hp-Sk2fsw_@CZz=upJ zQMc3uvY!QYS1Vw>Ee?O8->@qNeRU?j!8YjXu>}uzV~k&IHkLFbd?2bxQk}sFDJ1`t zpX8rpCcmz}Mhb^18wdTNyMQBO2khA=w|<8aMy5b&U)US>d`5*4e)X6e+P{`H+<)<|L($+w~h4k5pp-nxtZ(Q&?=h{cRr(*t+8av9>lm*E(tINC+V zoMb6}-A;?5+vF&;1u^K408b*++!jW7K-S78Sto%y;(vjC`<(#a?CAn6JiARM-i6%)f}67+zxjVzIT3y#6ewpAU03s? z&xfmP49gy0RK9$H;s>H2o^koyMUV@NQ&jSsf4aY^7~TG1B_;m{F7GNz_BK;eyPuLx zZw<(OjSE5Vn48+_e~$>De<)OPrrfxwMoJHha8C^ji)*CeVfSJj#YVWB!y?>GVPQ#) zWC*+At_jB^M{VSu)&V-6!iG;KxiO1a^`Os5zNY~+u^R6aJIJhWtElO=RtTMFJKFT#$+)Xkj&(}r{ zv<}w6%pe}0#0WLH!`f+%IZGv`PQX-ptNOv>=G=09bBAaB-B{!M=kdGe9pQF-50w2p zMx8Q~>-9Pl^Ro12p`1<<%BY{@6o}|!OqW#d@#0y%B8-vRZ#xWfy~Sf`wk!5Y8kW;y zS9rQ0YuFdSeM>tjm+UW7s8?2(E>uHE)I)WQ^Kj90`ii4F@J%^&6G1FPj9Yr%#(ts` z8qt2+%iQIj=4@!C%MCEx@~CG#EQ+zd`S8LeLmM;{KNl5{e5z7>hDkw?(6;f-YkIy6Y z)l0r9d*%_8dt-aRq&4g9!8Q!Bw_dddunw~N(nj8Re_#a&W$hZ) z6t-{NDyzu`=G$ioZJ?7E({Ym*7@}5M*F}u`!-o~AReNTC*rhz>2lOjTit|qS_ccLE zDZ^7lw_J|Vqw)UJpwsUP5%L@BEoY{)$(QzKPM7Vsw3+d2DCt$19qwF=!)tDChPpWT z+I-()l8fG*?_2P3z$}(BEVYE8Of|5JL?ZnM;cHU3m=+WwWF%Q6!f+9#&eO8p+%LV? zhjG#E1m96s*Rj&P9xiIBl_&XXy9^s^Wwm*r#A_Dn)lD19H?ewFTlq<4Q74!6LNmti zPQ1}4-_V57zxpI&Z*`}RdOHn(zZyTC_-p5Dj*IPhu7eYg;EBGU@xipV=|(nO+4;?7 zF+6Sy837ai7UXX8F42hoAU9;8{c(G85%af!Ms+E0lFgEx)AlzLVH|LM^y4@haP4B; zeS9HXapdn|O=Kw{PLp*zC-<*3$2A(#?IQ38CzV-s(w$=>f z=w0YXALvG>;yqF+>B1EvOkrr5_)e52DJNCZ{*O4inR-UFj3}oCBg#~6TCVt{E1+fg z-4exzqEFQFtn!?sQrUnEXP{U9)i=D?V@xSBIM+G{R z(F`cbb|lCxI1=QABSDQBTT;))-h+{=o_3PWB(qj3>yLT$9M!5&BO6khbwEL^MMfpo zIjyu;+B>Q62~ZNNb-e<+;*~mp=d`wgOvq0HxhVwSnroH)b3?KCR0_=uctZj(K}j&s?|6edMBmr-);ExCWt z-nF8?YBv4>r1h_5r~flaE?;2~nG#cwXxI;&tN5^a&nQoyzB}GWbM~(FZb| z{g}*q%f8js3CeuB4dfV8z2X6*rm6f7Ot-DN@`K9lD;=FQ`!$FCVo{B%fq(HxRZ1@f z`pD~y%E_xAs)@jDX$qHYMe9`!2RH`ISt;9#Q%l{T#uo-y4EJ>`Q1?mRps7w z>Grq2?w}Dhui~biD?WF}xq&|Zr}*#sBxZRsxKCm!gZm_wGPqA-DTDhYmNK|cVkv|B zB$hI`Phu&9`y`e!xKA(zG2*$dMB|;H+b6RGU*ev2Sy!6yx{d9+JE5T|Jb9yj$5}bG z4R=uz*bI^WumknEK-e1Cp(y$NhBcZR11Nb=o zbW5}_={Elqk+cq8zf0UzQI@)L0i%;_b2kI`S_e?B>oOTvyT2tGu~`i zN%CowYIZIk9@xH;-|?Db)+tp3xAREV+vPCJEfi;Y1IfKhN_rD*Odm<#xtzGI`yui+ zzhkXqd#k3NL`HREKm4X=Lo~K7h2y2EM_$}7o$GDe=arM2o>|@od2tM}EG$)gd#z(W zQ=dfX_=-%SuIM@Uib9s!(pX;FY*|>?tXqjTx|`o1f(qVh>p9S@g~y3tD9OAkztYyM zruWWkHpY0Vt~K&rwe-jZt#JO_oIR8{Ub`wU8Bt=XRwR~FLA5%Ot#znQ9|rCzBqfVF z3k})%!;B9(DW)6&NwqS#Yu^z$#SXln^a#w1^7JFX71W_(O7ltR5KUZO-97#W+|d*wB=7PeN3eNH?i+pLRaMMtVkiben0YP{l3eLLcf6v-*x%>1*MF zo^3LQ?lEzpPq|GUmFf*};WwXhJ3A_qYv4*fLkkW@`6PWi303o)$Fj%_9R1E7A_(&h zqTObUQm$0C*h=LLw_Uctm0{Dmbc1Z826iy3rTt;jI^_?PoOpHM?2d^Qt~dlGkWh{K ze%XH0<1Hl5)Ji}aqzj2B5acp(^??lQmwwkPxN|)^#U^n;qO4&kNw!5PHH4~_{I@lu zl-4hu??!JU_}1OLRh~o)Auq~vw-qiR0!U{hCYga`*oLRBB$Ok?y`UAp3oYF#n*~Ft zhP!X^tBRb6@nw(7souoU2hc}Pljq?woH2x+CGSR6Np#Us*@yx;}4&gD)!^1{sMNRh-E=JMm%2>f4<5;^(US`19hv0ti;j?U{C80>)t8_?CF=f z`f^!GXQ8^dcyIgD=dS57xaL>jTF+wEMAUPOOI^pmSn0$yz-sAoSi_!g7Crn=Y=|~W z`Q5nYQ!V|Y>;7hbJFj?7uLiAAn=L@M-*G@WS(olA1npnr!S&qr(!4&5yn^}# z{+iQQwot`V8Ye@ZkHbbW-9;>wPR@hzZl=OJj-@tMOYejmK_{)2Hid^~r~iwsQfwAf zOWv-uS18H)EhQhkOo?KZCCqzl$+G23%gUE57al1qU$kKU?Lzjlv7njX`HSpjiap>K z`1by(CDZRO{$D-@ExzLAYq}KrK3(A=Sq;#pO$>M0V!luLU78p87odOaXl*n`S@lzG zSrO3ef;8U7W+*3HZ^c!a{3QX+4)redc!8<8kRI%gX*QaGdMirw=;dHWzgLm&`=x5o zwqolr#gKbiplLC+V9si(v#V)wwM4>r|GW#!wg)2R)OttzS=sC(*{Yo=%c4{VGM$Cy z76f>k?!_z8=a)IA+okN^`Vig|-MSqE5JbvznPU|0hP7OUz-O2~oiyYE|1O`kTtDE89@29*z3s7{4Z})8oqi zE}#VH4dy=JDP@;Wft0R&T~MM!I-uU?TC_U^w4Suhz@CZ7GS5`?xgh!d*bglpliHfi zRNGG$t53()xBliwC?e(JJjBlz&VL8cVDz#9hz_n0gw zyz!;3$=ed5ZX>a%UgWo+yyP8O?Wj0ytXJ0=eBOb+5%fM{o#F?cdl1iX#yn_heDM2q zLxWwxm@Cp}y`QoN*}EN8r0URijT9>p z+Yj_dp1yz$MZHK6xY8aJ^GFbC;qEHB@e%8b6u_R~R9T$X|J2dU7c^Qcv= z18w+A(6-9$Zo95X<-b%;#$E~}hy|Wm0PFF-*a^B*iWYbT?jOszvRwi_O(W?tu~zuo zLFYF%9Ftv5>mB;jC2YE^OG>CKiLW?eOtjc6Q^qfQg0LvvT~sZ75F*xO-y%Os3W+a} z5H-I{%yre$>CnT?$va6F){()+!)TuCp%ZMk?sfdwj(+E`EbcbWRxQ05I*dDC`onUH z5BKbo8xmfmA(B3wRUO$2qh1GBA$u0?2$6aaL}$FX`#~e?VE)9Os$~s}?T@2I3$nQx zOO4H4zZh#TiG120qXPEGf@h37K}R*ChiF{$ud0bzD$vN?^4Bs+Tj6~ATU?pe>OcaG z6umozB}Bb?7-h>R&|5C(eSarotvW=^Nj?&KhU{T**J*s_7mvwK5u_IKeKEWpY77|an>wB}zY3QR zt~GF(cMRFC6^Cqph$S|l|KQtu&O)A~db>QjNvNvWH)N~uIAapU)|EBO4Gwzl(`c{`~u&i<}vt-Q4BQ(OrZt3@zsuXkba^aqe2;?HpBPD z8`++A^aK#CHZ=%)P*Wootm&-mYCJ1X^4Y>MX#h|DR)@*RSI%=IFSS#4_8UB#NQJBu$qF#WF=@1I`U zOCyO5B;>Eqr>%FW&XSCmx;}W_^vz3MZAOyuT$g4eF1GGs{o-qwU@DFw_2B9(YWAJPzN4F-m67v9KasIBz%<0*Q8XdCdYer(?h^02mC zhSFzK_?}P7fzID!Y^;J(5=lm4s77_T88oN+XsAX5+TZO!w-{)Ew*xlbv)2JB3srEz zuh|%f4Sqj_c$y||?&8umcY%frCBXA!c)ooI7}mU++ho=K0$r1=o4r?yFCngLnP_SwbtveWS8T}d{487}kHVjL;7?ORGqB{|Uxan9>(hWck=o+^ORBeq z)b9XX@B!|D=KVUJ1C42#bil{AMOS2MNNok}QPDp2^(Zx@wwjsV_nV&Dh!;v}do%qT zoNwPM_Y>d5C?DYUm9J$J`u6hVZ$)W=MB1yDe@iR_v-+j38xgxrc}T$$b)nDHdW}o| zW!qn6zRl*x)rGC{aJR4<=2z$=6>El(%EOVu{yq@?@D8mwkb=Dq{eS!Tuwyj(-mU8* zci`&9xNy=|v5os<@lN)Bds4lFnHn_E```AR zzK*kaJ7V%0+6Zn{)-tQ5tsT=M_ZPrOM0II}FlYP~$qnf1w4_~MPqNJoXJvbnT^E}v z_7M-t*#zgKT~o@8Ax%mK^v~MMHagEU8{{{G5)b7;dnww$1`_IxJK?vPj8$W_do!Nd z&ANgSSYprmD>1G!GcXvQ845gf;!h!3>uAGMOxcMIm^T{t$9*eMptX+iXY}jS9sSoFS6STg88AhlUy^ukmp?3pcF+8WuJYqTfrOZL7(cXlfG zl-+0LEX6Cx9648^K02U2gK5tUkZCbOyM-MFTm=kkLJU07E9^?yjrnFkI#u@jKkrGX zPu<5HG}}~vZ*fw?D|o`2SXe2v`T*oj-iqaOA(AqS;V8YWlyR>TeG^NV3299|bYjH_ zYCRiBs`pAg;aSWAt=|yuTc9+4erKu3@0`f4?Q`Y&RWQn&;?49}P{>r*PsDf&G$w;2 z1dR2&Z}3p7^Kcp>fN_KIzf;o0|edws*_{ln*%ZFdm48+4v`4mk?QASa zp5~1MyDG+dmaf{7vIil}^}zVYYhV4tGj9QBjcZTk`_9UyM#b}17Owy6dnqV(m!&a% zYL>{1^?3}>Y>j8=$&^I8;!w>1DFtmOp=XAihWWSDUT#k=T2uLPC2AwAQ)Ssu{5Qns zEOq_0-pdN`JDaZ7+}%vFu|{>g#_z9iP#@W1jMw#--T`=5z137sCl2I$&hhtl3Zu5Y zS=E5D?!(;!-(|lZ>!F#DLULeq4)QziXTLe8%-c*XJ63Y-)sm;bb>^H``mE~_kjL-b zOv(9elw900c#m;Ct7B`}2aMZ%I>=?#Ks!>4oEVb?eftO6;pDS3a-fw5IeXKI*Gm{@Ap<21!z?x$TJV3+KQi=Q ztW@+zklKox*FESppb_PczXa?TjVVPUu18}p)>M92NqhCAsFTZhtW&Q_b51VeZPe+N zB3&m3Ys`R4$18DRYOPZ-dq57ne-IXnL8?JB}v8Tt=&53((f}Df3wBiB!&Zzsz^dl=;PfErrgpyJ z`ApW8zR;yIq_BY#PKR4fY+f<%BvBpt2fR1gPsPs};+m{azM(B3r;4Ut)!#o4lFz1f zj+(EM`DyUqIi~{dS=-^BK7Wm@64M`tC+8fzXKjCcjjU~RR*^9&elDsr0i+Y5G`9`U%*~-4u$RT$W>|>m15xPx(tT8E+c4g zc4b$ou1l9z*QG~EHw`6YETOJT18Lfyr16lZ{z)1KX{zheuKBl9GZV9x`&h6FX+}q= znqAY0rxu$|qphh!;gEOsH%Dl zh?& z>g}F4J%4nhx3_!3o}G@Avp0yC3NoqTMQG#IlX53OLWLC7)fCkkZd{GyRJ%dM^`;pN z&&_e$u*Qer+20p~uql9^pwX&9TVftGTavHNmc~xfy6{;__HMjt7jJPd_DYo@_hQcS zH)xkvS{lNXb#Ot*vbVPQ2b6c zd$HM8PND*}GOzSxCmDm@jK{dukn-0cPj;7aexaP&gfc6OpI5nhhP(#G;zrlka%E#W zgF5Rfojp#Ho7!5#hB2CJX~(gR(Z-9NxX`R-$k>?fEM|w-SYR0?N5KY6t1m ze>WFD;j^s2zyEHy2Jqr{O~Y6Nwu`M^fW|Ye^L``b^E|}3?f0-6#nV?u|7)T9 z)qH3pEoJw_&f9tTx_;?Q|Fq7H9NI{Er3vTnW6FvtdZZ_Z(W{>!7g98Jsxt=_J^nwv z)Kb`4Vrr*=->Oh}qP}g;P{*01msj30@AV{tzq)LTWtAHZtNBQ}NhAv{5E@#k4S-Sq*5ebW0bx9W zs2d6aerh9@SwM@ijRtx|yD2anq*87N9YH5xuN2D`8tGzSD?0|ceZGU-*wo`RD+szu7Qy$XKFR{kE|3lYvm*=pcF4obbuFpQg_VU7 zo)%Wn3Hu!#$GLi4RL2)qmS{C6rlVzZ1Bsd~LnSBLZaSkOT9(KO|h{A`QX z$Aj$shHPu3k!LQWk9L(0z5A+ox? zB#ACunZG<1Qc9H5DDB;9v7p4o_za8+H@p}3TJ{uw(SA0lx<{3NOZ%SU{D4Lo?a7yS z$OR{CYgRx=tv)cZ@z$$ns}ZxqebYt7XBzZm!DWuoU1+s?*JadMxUt#C6QaD1 zW(V19Ia~SWCg^R99e^G(@zniF=$}-x{@@OI1l&uTNyBuY;WxDwRxV7haTi8(G_|#` z0?%cgJ+7)Rtki4y6BdwCNaT&nda>FgcxKBMGy1W@_=BsZ0~b`#D@()bdXlAj;aHG5 zS4#`S>K6<@Yw56B`epci=!5bl%N8tMPROza%SmU=wf;aHECbnXz~@Yk?>C)CDpmxr z$2EK77-vL`l^=jC_v!<70xYJ4_Nj(C)9Wct$s}9wYLJ#J7u-g#j3`dLq)~?xA z1@DITBDRr(h-Zjz{MM4Gh;6H!DHvTfljPs(xgO(cI#gTdTh#TqL-_A7Zk$Lhn6^Id zXXo%$KRanJ)6BJ!_p(LA_c8C+@Rc3Duq%3Q-A&3Dk6pfowXbwtUn}2mC|0k1)c=CD z3%lNgaap+Ru_eEGZ0^DZ^Ojq46_?)SOBXBvi9mM0L+3CHo?Nix=N!L~pX6CoHh00I zWy0bomMs_NE)ZrG&zcE*S_fr2st4(OO=_0!N&y*lz}JxASt}jt(Y?trJl#zqpY?Pc zbSqTy&pmW6rsD3whdu6Q1GH~km#Lmu40XqXy5!YTUKd75%oJ5yb-VD)*t#o1vvL*- z@PiYrfVIC4W3J(tE8FlQCNpLjKjNxG}0 zFVAEAl{D`)9DWVvbe@ZU1F^2sIW00D{VVI$(KHR_&hl9q(2mAfBv{=Z{sr}xH)N|X z*+V0F@(wwd=zvpIw5b*BRfEQI*?Bg|(;c!^YzK@&KJ`A(gR58toNBc+3ud8u3()jh z;8c5_gYpE=^*kzT5cJtsN4fGmY3*1|$-8jPSxpDY5^6RM=+dS^vc%N(h*ljKTVhor zbMCp!6uWO6k*@BTbb+=9J>7ngE=DNQ#Y1uF;%qm1FCrPE;r*RGC|jIrv4U(dH%@VY z-hg~@?y7u&G$&WtZC%!*1Da#?JfzSZ|K$N`W3@Et{55F<#{WG3qV8v<4H!dcV-B?K zg(+I1j8mxU3*9zoiy`1q@a`#S1-FZ2AQe5; zO+>!l-8>W{fK}4W70y@`Q#_@H{`8Z3c)+jkLK>ioX!F7WRTM*-7j!QDAQ%l-v1osY zv^oH`IV&kSQFRT*^#J22*TAgM`pf{|tpJ}#@qSApMcrz~K}~Om_l#riB1gBfw%G1doQLuqIF8 zQyVnu6E^0xtdo|a9gnCk|3$OMV{f*yF)-iO%VXU`#8^3i_Z(91zXr)%^oT#(f;uA= ztZVSp@-i7c*I$d?z5D&a{{PXNU92wj_Pb8HGhWvMsOMqJ7&ndFCwo>^G*j!S0P>=x z=hH+Y3{~PNaT!Ph@9j<&6J0cC^r}i{xhJojj3yqKjVfj4*zmix(jDDnpS*sya98~< zJPG45`(g5L+JCY8U)!(yH|>9VQ2R;b`+h;ettqmG;nOqH$NhLtw*cP#PoEX|4~cx! zUv^y|-SBVwXiprThXIx<$o)b8;2!!m^wS=CSN?zZ&>s1J>!F!XQ}T4xHJ{UX7C+rG zobgbX-1*%;gy}msiCmB^RjBu4nbc}(PrK)7=eRl4wqp*-?+MUJ)XKFRT8NM(#w_AS zG~1zs+K^dHE}xfhvan!^dXIU`KZ^T)U?1l>g+P>;xms}N#vj2 zC02W6R`u7iDaEbG_p7B{Av|%h2huL9f|Zp{`y6vblVp#)T>WD@`hdUVn+(W#)|(Ia zjOy9&?WAfu)1ddgOcIH9$Ik1tUEBaAw9SKS-zsOXlTH|c-iIgH<`8Rl;D9`wP}?rJ zd*5#QvF9;zacOngD6~s!=vOm*OY$3|l;9U_7ay%2A*%_UI8uqRAO{wW8e{#^|1i}2 ztLl@o4s`v=oPwpH8v0nLfqPP14zPXceHy;#1Pw|XhwasFVr{$li|S9Oel1Vf2iL0z z8S(Y}KcUNvLpQmfvgT<2UH0#%SJ$IGA=EGoU?2jX0-(2ZAqQucGi>V7_K3ckgldSR z(h;$9j*1a7CA0uqAdoyca69Dd_F{>apK0%TZ>+s(gWCIszY6kv?Iqi=#n@U^sEETB zpDr>xUGC%J^CfPkRz~n}C&G2aTkFbQac%q#c_-dzXPjlW2zX%@a@!&YyuVYt#*Bmc zc;xLlxx7Ckmqgz4rm%dGn=mcH84ypQXUt`}nll+dL2k(v{Bv?g`L~NNN0)HgykUx` z)zshr{`aZBPv!L?9uSfiJU6HK;e4$Hca!Xvq>0&~-2<#GVU z2cJKQ@lr*1$pHR&0Q!Z2hh5ijZ(aZ~kH$x_O@3HxjN0gtxAnQMlQygIBoSQB>JiB@ zO}FLp0q?`MNo{W%tghn~4w6&AxDj+5K&GbS=!C_UuSIRD_O}hAe>^@m-x$zq5R!=j zgdFmZp_cr-?*jQ^aeiv+f_zJ$KzW~i^}Q|crsI<pzt*aNJ||0bW96>(%30>b5GdJMQ!3EswF%lo-EQW8 z4_CKIgd7;yanP`OW~)LkMM5)jq}cw!mqBVaWN@KEHJ(e@KvqlX!CB282WhE|S(G!L z1O9~jrPfv|*q#v2T{~+?H`g-a16bOQ$)>hL;`GXwqc)5a6Aa7KbYkhl7@H;oD9{7!wJ4`c7JcbxjiwUK z02SH+9eI01^H`WgvvYq8q_PKCG2?y6vw!8+MLC|^tVj3>=+DkXhOwws4S+4!3T3C+ z>PLQtG3JfX2ad`@&*xe`@Up`Y@Or3?6AO#g@WeMbfOr0}qp4XB6bUenj+8BeCXYXE z3{}$-4=n&#Ef{MpP<-+fw32u=AD*~L10K#z#RDFd8|^4(T|IGlHV)h0{Px^;{lxlCfNa-T=%8Ak?W0@0?4T!h7I7HVuuG}oHK+kO&aRL_wZRiBZ=>50 z5x6yMa>bT&gXJ+EcUpu*W_1J3SB|v~@i(?8u``g8W%o-D^$At}7QyqfXJBSGMosEu zkY2PFt(f?-jj1wLN#cb`kSoSv`z1T%u{Ov2V8>)E!GqE7FluVyD1>}jU-aB;+r!uP zftZhNg>l-z%#qY2m7i#nPMnr?ja!ixOww3~D*KN74T6xK`yiQKvchQ+(c{G|(5GDN z+WFNXo?Tn99Yti+{o8;yu1w`rdWoDNdU;IFwB7n^OtcwB0wG;E_IzatOHNp^h-PWW461 zP)e2MS{pxa`Dv^79U!e=-9?GYPRaYa!TzQbKrSEW%H05xY~&_tpHn!B%herMSx5NQ z)^UL`C4$2Lj3Rn^d`99FkB#`WvOBgWcFnIeiOf6@dv~FG;Hz@@>QCJ|(ge~8cc$a1 z$<}}Pf0}E-0r#p%i^W5;V_u7Oo_n9XH!eRXy!?zbtXEjYfn05FaeG!t>^y2tJZMlK zK^s2`s))NR`^f>_V?rS%ZY?E~@0&JNm{+z0y%u{OTQpyAOqu2oo-AAR#DZmm_JoYp zpu0_F>)8XcIq88QH$**RnFm+Q%hQ&HII2GGQv4sx>8@z8c`&X=2E$l8tE5@yzYG#e zMqn(*kKyU3XUcxpRLxX%N7)wTB=&UlgVQ!$*5!{15tXKHN|b20@ej#-I)kUJX-|eI zJq8@hcsw!6QN)PMZj_b$-qS&10xBaq(jkuuAwX&UsIoti!5L;EZ6lFp@2IGXDE8mJ zd!mFSMpYW#H!7+nRQXMO^FfEYDT!Qs);sNoIi*66F4CrbAfTzI+tG3UIBwL^M1mOFmR+^30PSZN= z`e~gGT=nntKRL45jjIL1ZQ==;_pXwbbe6W@&cS%#$H)7GX16<6TqVuz+=cpY&LdB* zk`9D~Rk7Jx(TQvFZa2@1^vm9(c5V@>j2 z;YlJujxE=Dh0rFjSOkbQ(tG_i@u&ajuU2%s`}}wc`tFO*tN-Ux_Y;2k1W}2Fp52a2 zKPgB3NgutDtdcf$YS^EfZ7kigN^0uVMALbYC%EbC2e$z8dQm6tH)XIssj>e6e6>nS z?7UgD!~dzFOmUrujBWQfmAi^h1|pv6&<8*XKraXch*0rFikNT@u6K@OPdh)BQ+=x> zt_vZ$28lKf3CXdsSi9DFy3gH0NZjXFBlOsp!E37)t0aFgyA1u*G}%=V>EK{L7B!$# zA5d+K?}_lf0j`;*aLsYfUww0)=gHS{y^0@ndZ?5=$Vi5|iEACOpX-x8Xi~XNEEn?79MzR2_N9SYINH#T{Snd_~M?W3^cu1$pYOn6psh){^ zI&pN-ErIcswmVRN$~t~qUWR{C-Y_Nl5vk0#jtmTj!Qv+wPT7Wtnk;djP+W8}QRwI1Foz4*Q% zssovUlKuGm>`q@Lr3NWGvhNR3YC=ogccUCyGjMH@H@xa7XP`MGV~$8NxZOZ=GPg?M z9)x;F7iU}}Y5I*ISL?)>e@|lJL?w1aGWNkNC2AMn5L*WtkeF9V4|ELdCU>1HaSg`5 z0l7LBe?S#^HOrp2)V=n|Mn!VQ6A6|ZoW>Ltk6SgqWg)|w?M~bPONcJDsxj^%h zIbSSV2zr(?_wmqU3qZf!T29H6aG4*Wq;ml!m*D@izoq0fTpb=tOz`ebxYB<+aQ2&L z#zvqA9cpDwIJU+}GnLgwWu0-2RNZG)JQ*Ra_@;%lDtm6(%dEM=k_8LqD;so=&7c4C z`*YXm$}pB!sm-%T{@YvQ!4uX)}Ngo7#SM|8zaXn5mNRJ~S z3VNJ)+$zSuGH61zxL$EnawH|`#z2Z}y5*f_QlG)Nog}2Ecp7&{Ke0aUr(2s*`_aJn zbiL!I*2$IYK?^byR|RO25uVbD3J>b6)x~!m=j#D(y;;sBhxc)D?T+LKK>bhkqhB7i zC6CR9U!V62@pYa)>C^r-OsHx*$nQ{xHfV6Y{&rcltmjG=pI zEaiEG0#axL+Kxb)hKT$Q?6+Z{&uDV_ZBw`J~yDv@eH~00qF1ab}k2WOqwEF2p_6eYprU(y~R_B(Fi;hIw+@K`bWPN^a$>_ zCti=u$X+j{si{31bP@Y^l(;{CBRztCr;`8K3P@VjX+`26`*C zAkSGNRrJQrXYTgK_CnW4-}UfN-sfFHGum#a5^c^l@tYgmiafVkGD2Ts>i7P+>ACP- zURWO$)TiWB=xZxr-|SwYxj~*lJo~gccZd!0Fyd)GB@4t$l$JqW8}az9G5tOAR*!1z z7?3cih1-HU=NicxKaEi4$KMFgP6eLYE@EBaM~KqNpU$BLlNUyNOV>1@QB~5`Fxqni zXRxk!>sqxr*xE;W?h;SQR_|P$Wxk5#;Tl0K;j(gKLwDIyiz$s(TbCy4UmVV_)AB@Z)FXnq_RX~`r-&kO?tr2 z4bW<=H?L>GxzcpB?IbyQKNpu1B&jMXz3W<^mdV&J>Ex~-O5U2AUI?vS)m0BI%(4y* zoI=m?yGb3fV7xb+(>cmYPV5{%v3}~uHa>R_G&1i%ub8@wia&-bDN*T{^=^dgt8RR+ z&GCBh`~=NuI%l0rNv#cN`7M*I(&rU_=tdvP4!7fT?$H@?W}7KAMKwy!6u2ied6NQ=i#%J5Ht1=s6ltV|y7NU^ zrOi$9YjST4_(2b>S%`UtV9dkZ8;%3525LGveV7=37o{qUi5PpYkH4=?SBtd#kXtL# z3?gzFg`T<258Sk%(2X<3A5;w?LY>2^L^8W(m&dc$Ttk^|bZi_leB|Og-fumP3%QU( zLqhA+Uw5b?>ZD;AV+()v*gG)dB$8E~S*00GA|H9RqeuGFzwuO>BX-c>OcPVYg_R_8 zi)%>ycU~owx*2dp*eU|;(zqbaTB){@i(EBQuvI-*L>LD0jevw>?tljm5$GT;%E!qB=clDf(!d z4k)x2?F(bpg=kfXWjy5PcB6gC^zQ!@@%LSR+@;{&7}$|JCZ{ywuG}%%>_sp29B^gT z7Rc=r9>w-x-tpaNcZk~bHt*N+%tPw9?V)t{T?0|&P$v9a_aowW<(hpqm;vvG(1roew0QeRijP#y^Gt0f zqaW~RK8n49dqlW1w8o?J3`omG{xp~$TcxSpMIyH=3pC2tWT8rfF-0eHyXSdE2~Rn- z;uj!`W=;m2tXnhcDJRUVh)HRs>mcY5ZTff%^&rn)XI-hkYF#;~jeT8l>q_s@Yu1%M zJ|=S(;MgV(vaF=7L>REGg!vyLt)qSe^3%hV1jkVF16&$-&cX|nfj`axNg~7U8HkM+ z*SX3urwI47P~*ZXX?RF@6!kCN{jbfflFXq6?vH}1`#%b5?$4f={lryoI`I<^=x@_@)IvFGqQpnbLo^p=W-6% zS(fEmN}u#h&^d1bp*&JT{=+w|5q# zx(U`}ji$7EZRX%DoP;gTc1rlt@sPnr{rM7 z)g-cyKGm|12=oQ*UYgDMY@S@elWOTNeRLu}L6d(eK(}ifX3C}{>Nakz*@tH??(lDw znYq^S3;*KDPdTTHhs&Gfspi56rH$~PWTWq>9b~o3e4Xc^zx!n&qj2Bf@hp!+)$%Ee?SmLTja3_{A;u%J-TbEz>U9=>J^m zf1EC`d3H;8T@gIGhU7?plF{##rZWb_8Bdi^QqY1uaYsBEJahQ2AQBsmDb zrW31XM{28@r8k!{3;Vy!y$wJV)ffML@6Id&qAr4fNV+H)73!i`l%|V!|2NAwD+IJj2Y%s*H@`Fhnzk?@lveTf2w^wJld~1^{=M8%YWZJbC2<(F51tc z;4dF*fBZ_;{^QmED!N|O^E&78W9);!rg9d;F(&@PSTOpbbcV6*0h~P}aklWTdlu&A z&R;~kZT^BgXXds2x18^qdFQP$`UUgn=jG149cTC4og@C!&iyaGum9kS z@6o5GCnlxq$4u3`{(pdv4{mIo*Ojwe9Pg%LUz^qT-?Pu2%cK3iV;5WI(!XK7mK+)eqOqP-bHW%&siM*4I@xJ=G0m z1@)MZbYn1{qi#Bjt*0J!V^p^c8#j#AYnTaj%dl<0`SUoB??P5%{>#YlM&ED<#sl_%_TY`4l zU=QkEV$JCFniV!2*QX^xXO*3^bVm?$H08wuGN8Aw-)mOQByQI*HjR}pMqTUGGP%zr zM|Z@n21NR+H|WZ2*{sZ#Qw|%AMfRf0K~i=9t5#QFL!D}i z%Ml-}4E5b$aILAKZeH6~kZ@KV*r0OM>SM~no@CYu(qO7d9fwVg8-=ipZiu=9{e z4eGApX-Pddw6-2co7WjDz+jOYR2EA|- z{K<9je_+7?(&I^`D5GE~&f}>~l;EX~9w7w|>Nj+s%0s?^$d_Ubv!Epq<3%7JS7MW< ztVY?fToYOlBy2X2kEt(kid%lY#W55LBO3IzRJCpy z@LRfsvcjp4qu)!KK+7BOpqNq`zD=gKJHsJ!OpS={fzSyvUOdJZ`DeB0DHey zj1?jexm_MiXAPopb430^ z|H5VXHy-29u|JxRYXXbxNB^Mv!YA=2`WqjSN19=M4a-Izxfa_HgWk zOT{_HT8qsG`FBCygCHA7wi?7d!}LpRG*=*|Y*lK^)L(-mp@G^2`L&fH!QM!u3oBn& zQ_3Z4$?%JQv4ugJ*nN`3OzIeXIu-SX|0%yn8t+UAb`A1nR8E=2;ag&{ z`57OzZb~h(R-oLX4Hlb!+QU}z>(3a|eOaarLFzBFl{LO>1!DVQs{?Y`u&zd8Q>ZUq z))hKFly^y@{RG7@bc>9Cc{JE2+IvAIY%(Crw&{o#N3~ z9cwTa>Q>tK{vqPWpW+j7<%fK9hN7CwU}G85m!S+wOXWz0Z0o*Qq%*9n(dsGvx|+@K z0ZU7>V_x-NulnQ38cs29ut>;9o6L%8P?i*;)+fUuv!(VFR`e!f>J7x}yQ?WZ%7v^Z zg_YK%p=@eH(uFTx$p~=#w3BpTqYgTLuJs7g9>=(Ff@D;8@*#~`n^Esv*FpK{XiQ>3 z4)Ouo0qdF|M=~?fSmD1+tvfsZFwsz2BjX~2zSJf2b;){lFR~Z9WID)n7=tf@ zOozT^LSJjMnXxBAC5+kB7JjZap(9s}TWX&r-y3zMHBV8!veRg7;J*NQ8<98GTMn8t zWcWAOu(U=8e-1->U(~-IKJEh2{O9A!<0tYt?7bD~>k;F!wZI-=f-NW~tfZtyW3kwJ zu-&zP{5ZiLP`=XcTei~vfU*)}j>XY~ZLOty|KxKxifetdSHd3_TQb@>NA>?Shrh)V zCZZ_e6~q1q+lE7cWWpZwl@;v*aZdMYEGd>a1g@6E?Y>L0H$ z>I+nxX22%$t1sE1v#4_)&Ck@%L6FNd{{Hq@3C7Xm=)}k2qvKc~9`A|+gTwJ2YQ7my zU~CAY@q=vAaFdnk*VV|n5{$FRQ@5nXwJ%Zomd3??)X!;ufb~Xz0r5@og;?55HnVj# z!5AOp`gKPy#0G|TRqfC{4m(V$9qw$XY68e6mo3X-OPd`d4XbNptWE0^ z(1wT!qhU!6H&I{RRl5rDH{H6@o@HEV@0Lxn?X@KTC)eUwrN& zPina#$o?ww^ksTG%}G_U)}MSqW?YLH&2+q?&ZScw$N+&bagjO}PInBVHHhJ<8fJM4ef%EBE3aB?k5XU9d6s^uU8kq@39VC> z*{7nd{E-*MB=tus@0Z_botI|s<0`Kk${T`ull?mMGpzx84(ti^Y-vr5exr5~>}b=| z8=tI+Qhk(ZLw&-d;a6Jw&>Ds6wjOmO`)SQcX|9HD7bg0`2;}2izRdnK)yD|?Q7278 zg`>BtURTmMgcziDw0E0kOQ*V8R@iljDa>az{(PCWAH_Uk zrK>?LOReV{sAoVq5VFMr|06!5jZ13`n15+~8H4tU z!#RWB{aJ<$KaVWUiNyxo@Ley z@`vj_#VY#kxAo1`9>U&WtkDX86EPA<{YUi?t>G*Z#U7PSdb?3>_jY!ChwDWB`m=Gb z(XapMD`A_1`WwwLUE29%JMPgKK<$pUbVQ-P(b-GUr^TGPBazlq$cNUowEqARCythu z*5mbK#XK|?;})&?+s4>;Tw`o7j<;|qIM%5BBg64J>O%P}(6t_m*Nd^8myfmUDg&*o ze047w`!i|J(on>LJrMe*>6w&&usvSCRJ)U&kI=ZL-{+ub5$h>0=tSjX{xr58>ylkW z&nv=pm8ifb)B%fP+IUH8z}*2uIMFri*0PuY2iB}l8T<)#EJ zM?R#}6S_=KYulc*9`UF96lYww*O9C<9aZNl9roF}r8VJdd#U3Y_U9|@A-L{AzR>SQ z`z)>L<+{H}eg5^Ny6%+P*5rnLjw*xcXb)8<%WA{ia?`>NA%t#A#tqVm#u5Y@zzSU5~Y^I(Obc z@wWbBZRKMqvg#lkO#a2Xf!5m^bu8HDNQ*Tc ztwK6eF4_06m10%S9%ug;vUvEdD520QpSAHt)kd<5^vuxdL+c*be6IFw+7Gz$*O8x* z|9g~w_DVaAUppyZ@+bVp(I*0>VED-ui+q_Hizv_0K;`Jweqt*?8m`V?7K)MMv=>p= zTZk{j(-XegmdEF!?R2pFHrH6Lb@}ZHq+LbNMsQw&^A$KJA3oCBx*`|nV`+{pe7`nM zXR^n$$7|!+pr2cNl+-foy4uLDC3Upsi0o=osdruL&t6x#SgumT>+3XuI3jVx;z+kRI9|iC2ghePY&d?acjaM49ylU##NtT6F$u>^9Cza=!0|Ya4LDxI zu?NRzIBYn6v#NRUf-)z69LEM6ua!B4%mNvX4LDx2s4`|nUHf5NL0bf%-n3U8N^xdg zSCfn}$(_!1Ug#wLn-1p7QU9i+Uulm&N5|JtrH;)sH~P8GX{_Lev35U0d5w(tll6!p ztm&EI2^?5U8pQsDbbO&hF)BsTvlUa#fB>=1ENi#EY+K(3sLz4Ky7J`7f39({o>Rx< zU|Nr*iRUl0-=ls(>%TJEhZt#HNptTM$5&tg)|#~T^PxFZU8`Aa-BCvMNm?(6Yr5Y9 zGSc}H@`E&{>&hLix{R{_?UC0PGb9wj18H|T!|-F(x@V*!|7WYcoHkp(;GzGRxC zlT6E5fN5n-f8Uz~=)A*@t+Hjh;wopGCBi0q_7>x4r^sUFf zJ}KtOKWVP;3wH2qOVA$pq6B%OPlk6x{@rl?3)TawA5AOml%Apd9(q}|doAT*61I~L z*-!FkAm5I>EJ*K1_UWy*)=}`OUSs!VI!8u-vF?!c8Y`vamo5pS{X`k`uY&$-u4g$^ zC)(pNeVQF>JO6rJPy0u(x2+!Yk>+*is_UY5pH97nr_$&Nhkl_H~J#I4{S_km@7^1 z*U~lCWG5)kF6@gM#tW^!%w%u7cjVXR6U1*pdS1|4j+m`1c0^tmVI43nLKnc|0t49a zK*U{FddDPXM_P-+_t=WB-e==e)OP}bJfy(EuPAgxAht^OuCmfI%*X97ST&J8_7cYn zRvKF#&v+4YXZGVby=?^wim(+Y)iEk z+jf7GZB-4{%;lN(E&tD6!#>+&lXQ{Rt;S4iKw4h8 z9A2;o_YabN%!+m}X4zaw!OY*B#vUcs*x=`_h1Tb68+(-V+_rZ-q#p-;t$5Fa{OzPm@5$Qhs(Ll6YzF8C z4llIPdmz${mCK=H`bWO>UWj5}Gn3oJyPUJ{xis`X)kjx=J^FAO{{uBMCHoS68TQW` zp%dibX-PuIP^iumXiM9GX#rMhPkN4AkX>Rc%w8Q>Lu)?xjclM;q;lyVy<4JpOr%5e z6s4yzmfu#Q?(dL~`i@DuZ8hlz(t9K7cWrqo!3AgEEm59yJu0+7J@*uA)74l@v`W@U zE8@#W?<}uJ`SgC0r&}BYhAy@BA6aOlei50z)TW=l)W&9$54+nXHW{`|;myWPb}6NZ zp5tD&(NJcag?*1Edx}*`+iz{V=04c3e2Bvex%Eq{CVQN|dzvLOfSDrCra9-{RuA`L zxQBGO=VN`+){WNj=@#3-8B1+Gvn;m4Sc~oXQH8c8krrFb-ZI;FXbWmz^_`O1wy`u=sFuoO(BfoO>9b};T zUYv>dij3tt=>4a}CQZ_?G`_EgC30U6Yb<9bbzRh!pBlRdN>qDYdE06!_7AMK9fR#M zTX$4l%ayCoL2dMGj-J&~eF8AYwo)4)ZV&z<#&486meV+D9aMAR7h30wcMrZa4nwv_ z$grKU3}}<>5;ANlEro5ech4hx^PIE==-2-A9(>?xI}vluv{9q1j=h&3x@k`q8^DjaA*>Zoryo1Ix8+gpXcP-wWni z9rSJx_iQ{{JhN5r=@;0$#O^f>yo`mO+T?Yv+9ekVz5SFDr#x0IFH<{=M%Q>L|R$$qP^$!zs2 zdD+TMW;-i+8GE);t5)}dwJXZ}2Q;Aj9ud9(tHdr%I z4xLX_%geHI!$+9kp0=xNJH!Ap!gpyl%-{X38dhS}8U|P;jNN~~%gca$>AZp7J7$YD z_*JTZu)a;5&x2Co4`Y#r+DO-LJ`e1NYh8hc;!-xwv`Vh$urh2Lr26Rwm!GBxKT+)H zEWtIaQ0_=j1{R(htz%U(uILJk}KP>%X8P%UqomFqsXqRd+6vWL#~hIIOS z3;O$rgjmTkDKNm4K=0Yr{i*9-U{6beF32*;5K)kzbH#W5wdLbj`TCk3^~Kg*TTZvO zzb-xJTDR?=*8%5T`<`=s!pMb-X$6Xq&0S`3+BN3QX+b zkIGQ#v*|S*%PUgPnQvQq?y|e1zdELM=hOE3?RDJwrM zmS;b>({Y!NySVi16L)Q&>!w{go_8$Qv;Mht>{ev@=-=D1qffk#2Y0^8b(2rWJl*NE zx8HL=^uF(T6C3Wv4tFu&xs5!JQ=aWKd9>4=&be*GT{>c{;J)6b^*rXDzb~J!j^32z z{rKp)?Ytj1I*vK+#ve6*-m#55^#zSL{epYnr@R?gFKorFhnle=qQZ{{O! z=BD<3Zm;8cP0-N~9^=7_v8#Qa8n^B1c|GCH_}{+1-q`HU|K5yao^9(W@9a9HvoYY! z`01`*?&d*vd3KDAjz0H(&FB5t=uQ9i#y{@n&CZVh-q_~Nob_MY)N^dRTgQ8zmpzXg z9p&Dy*}RW)Z{+S`$(@cjHgt^Vjy`lZPr0jm$9z1uo#(#qxet17Q*YMK-uwT;`i1vn zkvqS+^SSqHMQ?oK{dm>cHuc6Q-t0mCOMCs7b9dvXH*MrizxyvS=6TK5v5nltSZDWB zp4Y?P&jp_M6z+WME(YAqHD2t;x#zWgXZy7``)hBWPq{10UERm4&yP%JpC7ri`+8Nc z;H+N9J!0FK0X-AtSGL7d9X;uJGj@3M49J@~qqF_Q^Ze>L{=8Y=cz!nNec$VBA9lCD z^=5B2L5+&e*{rlg?yw09?Hcxl!M{nY_v-?ZW>qpP~U3d9=GakFM=l@1O z?5qv{j_B+@=3F^DPg&kShx5F?_I@4Laevm?XN}(P z6+F*3-s~5>S@U`mGo4-kdXx6T`e|qP`kvd%n`eieeLi$y>+uWk7o8cOy?IXH&AjW) zJmSr~+1Y2A?$#gf`nWgGXgmAt%H1;tckjeHTbB20=Uk6@dS7?X{oR}WUuU0PdGkER zn{nIw=cXNf;8`Yy0i00XMN?_hK}v^ zU)IV0r{;*xK0o_EHBWWcHt*NB-q`PX?)GLq=FRgJZ`L;6KM(Hg9__-`VBYM*J^S#& z<^^wj{@>RFp8en1SammFcXqz(?B44C_W6J5`xiETc8pbTo_BhFZ{T@tPMK<%v)2SYxj({v*VgK z@6kNZRo?jG!uG4)JVQPAnfJMWYw3CY{CE6tSB#zetlj(fChlzZ{2tlen(xBi(RhBw zxt4n>~X!W6p)mwH^KG%^d8_zVW~86FR%L6Z+N;HhWWFZ}#M!UAz3B zT3fqYpLw&U_kRBFIF5NUe|2^Z z&OQg}tRFgSzc) z?cLcum^bsNH+Fin5Ao>d^Za`k|7G9U*)@tcbDP(7`Iq-v?rif$zq4`J*|FOjpL_pz zE1vgS-kf{i-@TdFz1iz}|2IvYT_1SbL$Y@HobT^Ayor+wTc>)Sk2^a*{g-FY|7Csb z&3@^>>?=BJvp4bM&Dz4<+Pbszj`wr4=lXW`JxpiY&htLUa}2xdkDYBtZ~EPTd9LTp znCaQukrS|sW<-ZY#U#TvUA-$18;wR?%%*tx-vKE z-0f4{*^sK{UFh~XbZ7gEySdogx#r)V?|466c|VqVKR$OH6E5t${TjfVwPMFU>v_G@ z(dN#+kLv96ba(b#*!zZ#ZR#$r&aFG^gw2}Q=$xtNzMVWzzU#D7{a&lW=ATy34^3g< zVO(d=7jp9gA+H2|i=H-F!Ai*c-Xr9L!GpLy;JQ8tR^U1%Psro)g?@RyxL=6+8+?m`*FTBwr=;&8x)qQLqj)Ja$^C2lK#FxX|D9xbR2a<3c}i zwa}lvTIf5U5&BWjo>rWc4rIGf?)uY;49XUy2cs<_pBRgfm%8L^!)YY|G=Ms=WP>QT z*d^cmypS*7cv=YtlQ*4K!obSSr5>NGbSEMJB-14rFN56Mk8A*14M(`+@2&U{h ztt5ko!4%Nv{nJVsmGi#H=YjWyKR$I`%ezHBgLjMTqTM3@zuM#~D*e9;9*eC8A_X&TNxUP4*?(fUe&jQuAN;w;tuy^?vA|K;nkx%Ynkx$uSp&#{?&?l07@mE4_{z~K@@U_UN@7F?}>AIft zwb1vi7V^Yup}(_Qwv=c7>oDlk7op8m` z36W2Eosb9o;u_C>5%SuTu5t0CC^zg6kjXLSOfn$fxu#p||xfAunqb z@&k=RUfn3<5l+|m;uPf=oT9#qn??RRTSWeKEke)PBIKJ}UE^G<(9h=$sysm3Am#~> zo4Sj94)zfFoYDzB zBFPPb;yOOirQcIr6DgnCo`Ut_ab;;*U7IM=Rk&o^MVds$>gq;Vogg>LF zigu~IQM8NxCgFeI8KPZw%mA!FQ@?b@u+Zfpd6(5yQe{^ zr1;BgP^zfhg|7a;P~>M`DD<~36#5bO3jOK#3jM|Ry2c}yJor8#&jJrq{qh@>YU-DY z&|9Dg`C3KD&87zB2(@29gJLDWf=9{zB@Id~r7vty>d3yL2Bn_bEV2_}Pw!4xq2MU0CedkNzrmB^^4$fGKSyqM(RUT_C!{RI7k+VxZP5Aw_Z z&_BRkRfu=G4;}=MR3ombUB5wGgZgg~zvPD>5Wir+kBDDtFVG6+gGZ@8U@etzL;Ql* zf%Q}$@D$l?NBmNLM-ji2&oRXBZuI}3g#9@`33+C%xX!B;`lZK({L|w?-wDd#6(%seUg+yALO=WYGfD&H`;yRK@RE>keo4sZY(AqnDege_0m|KWMv=j&GL!=z z1p~n7*Ul(9aM$Z+lwi>L#u+6HEZ%WOi2x6Pdhnq)&nQvg8Za7s3ycAO01aUBTW6Fw z;@fAGc(5EC369)}I0R>diC`s|3}(NBcmof=BkEoEu8`|@iTb4Ma_R39a<*IOSAc0` zCzwg)e1P}_Hza2HP!3X z8RZDL6SRU6ePRKI4# zRXN7l7Q_`;1p0ypTM<`aHK+rp^F}2Y4AwL%VPGB@0ai(kiXNOTH!4x2r)^ZC!E!JL zjPBB?7(nLNDE3Q!LZ0U*4Mr9;84>W>hU?O-5OeTA}H7Y42@7}1S zf$_Z>l}wU@SzvNVqcR;df!Uxrv{9K2I>9+)XIP_>18xFy!3r>s%J1E%4!H9m1iW!U=(5S2hkAN0XAJvGMM*M)A!8&j& zSa~u00k(iUDE+`jWhb~8+y#!jq){oSc8G3ND!|f98`b`0zSJeZRLBp52dP~yZ&WJ5 zF_#NJkGovRO|I*r%Z2_{m;85^e*c(8r3%~u9tIl+H7eC$=HN!<2)K5zNbfsD$g_ut zYx5AHU+a=r7=-?**ha-l^&8r#9HsK+3H|AJ2>IqaggiQ@QK_YJavPO8s`mqpNTJ=DLohiF5ZcF1o!R~_8#3Sng-l!949gkISYVMpx{p?}IC^rK^ie(i9fZyM30n87(Co0PTWU(iB!jBZjkfwzI1 zss7+r%EyR&DGm~vlpWx%#3p4Y=%3W2>;h*biE_io3Au5cuxH0OA>Tbt!cK^tWCo@(H=VNhzmz0xQVA2~EmD@(WlA=BG9(Rb+o!lX4h*3#_Jgp46lq0av6q zDORuwJWA;^nv_~92dpFiXErJI6jzzTzWPid511zGd~ur4KQc|o>!u66qML;L)J;Mj zH$&*>&k*vXGlV?(W|4mmc#7m;1E|k#Qk>xDAlr*}o!O+wpm7%R2aCV}kloUx=)g)a z7<7VRVD9`TB?2s8D9Sb5E96`674psZH7R=V)P3T@0~q&M zlM)B+1mnS@;7D+Gi6}3-M95z(5%MFT5iEJUNl7HV)lEt=SOunlx+j{HH1IH(Np_Sr zDOupAr_sOZ+Km26de5N0f{WLnUy|RSMZW~?U@o|1E&3(67tE*nuS35i`#}@6$8+eH zVElUYC#oM<3}#x;pTOh|=uadE&ET%*(VxJEPtc#puV11+fz{ulKT&?)2|rH%PRPr@ z6Y^8wR#1Ng{vdz-fc^n42X}(ge?^S@8~z+IPfUA7OVv;8W7jy$1{j)vcDN|O>qG>P`z6a z*A$;YPKE75`vp4{85|YjRD8iTU;ua=)PWC$I>mSpD&(g^g}f|G$ScBxJf*jg*Mh-d zRUfAk1_nnsl?YHD=~VP!`9P-<1unnTsYHWsfia+bnNu-K^++O2;vSb zTY~X{+82lvSk@UeR%I7J>BiQ$8#3Q&9G=Ont#3S7Y|c?IzZo&xj0fUSr}Dj!@-*V_?y z;Bv5t^uXod;#U!Olpk0E#*`uMz^pP+UT&F?m$>AoUKjPxd_!D^y@~jw_5#;}#cv}% z>3S#P6RZO_Q~lpTe1g-!GO8!I13Uum1oPiTe1f%LIr;HD#3#5FJV@8O5T9WD`-o3) z*KWio<@*8Rlk5YJP(8~LpB1#9MtqW9g|N4>LR{B*LziwPeiqlPpKAq>D5AB z=DI!%GFLX;i~x^-da(3+#5p+l2bX<62>D&E z>&-t1ecg{j9{r=RGv`MkpJQ`f+eH3hb|GJ27y4$q$iMa&`VrW(R^%I8E97}6g!~{F zL-lSF`RSX4JhRDVmrFjqN#vj3B=S#liuf66r*t4Qp=)cu0^qtM3+=v#T zAKxP6MoqISukvqJ%RL2>Jw3ZND+aOyj3YT14<-gQDIKqFWOCW4jSnw4a-uY0qS zLiGpJ$bUVWl}t(pW>I^9)4?oVvyu%~fV0W2z-DC*wI7&6{_feV4a^6- z2RDoNw82822U2|^dI|l^UP3-QMCg}*i^1y9X2k?rdp9dZbU(aVSx)WPr&%ecc)6%q zDFL^FrPMBcn-w#~r@mQP3z{OE6$`i<+yu_+->hr~mw;QrU0@mb7q|m_U_i67lgbBo zk=;?vN;xrX|j`*T-GKHN)l2>L4dE8XQ9asjA1aqb#?!ekcVI&f;tmYH6LAOTgC;5;ETa0}g}4KY!D8^pUBYg8zL00m7xGH5gqVwX z1j`p79zpXxh)1w45Ag`bEJQql&x4!6qxT{nsoeXJFSs4tLFIru!Rma(BUpbw;*sj} z0OAqcya@3Kj$Dj*B)@@Glzy?WZ-+}>>5>nA5OE4lc~IQXdr-(%x#ZO@`7xI~`XM1N zQ4rVQ+9ilzuw{wRizpQG#f3u7iV)XS9(WYYUW)i7`7*>W`SW4KFQ{9A_@#P)4Pfr0 zh+nD?$Ua1V#UlTrVj-WsO2|t<8Qk<3;u@?gL0p4|#}U`y5il6syc%&$`8|HZ-^(E$LCedCM=t*##DnT{{qW;GB05ci`H05qDtbdx$%#A7}EvJdGwJ>n5OcnI-G~ynz9qA%4Ie z;NcJH@4pZyGXu-y*K)K3Gfb0M=1F ze22IKkAkPbyq^$P;A+rG{;Ng&9K`wql))XfuKwYYZ~9q`&pUn=`dKH0eANk|Usi|v zVC6}X?%+wGzq?*sSJaDgeg6>Un*R{_)c+y!nf<58C-+a0&sH!1Jn|Rf7OVq&VPE+`-HFxhzlnTy{wDGXJ|*(WJSFtAP6>InOP>9w z$iK1y@k`fd5WkdPBjOj_4YETRM?o1Zc8c;#oI+mf6!Pe1$PdwTQ^fTldjE^KK1B0{ zYaD46atmu!<-r^W7$CQ*_q&7Ydnl0fX3Ih^PZoN)e&};xIT!&(`HOUM{z7i@7jo7W zJ~%}41a!dg0N4ih?1oqXv%xqpvj^rtaBDDP6`bA+ZA0lp5DQ=&m0D z6I>3C91LGmeZdm4*C5ibH3<3gSRo%d6gGkSVHk_3TyQNIF&ws$pRRx}$lvkk>tJ;} z{f!pVTm@b7>(#K0>N5hikR03vHh|?|(MZg}bpIM!li@yC2^vPB4qyd%7+gFWd4osC zqK}fl6ES9yU%{hb-8lG&;^SJJlfRNNCV z)~(27xV=@`f@{m|qMS0~s~S_v9C2Mrd|6{Eo=ex8P4#ny+;<-F71M0+)djDcitZ3{ z;+E0zCVh^pf8+=~i|g8OC+(eNQ`(*4dXww=Ah@;L>!#&*QTe{6oCPjFfZIlEOotbW zdgR?Fm-+fg9u8(oNczz;D+LQbDy zgNF_sY+#IQBw6dz#n;cjYe2W|J#>LRgMxd7gogDF?-OxR-+ubY{sW>e9(YOgrI%eE zGidM-L+sFDal@~;GXAQoM~u8?)M(?(S+~r-^|ssR%$;{f&YgG7&%JxWJ$Vc7y)Xa% z2X35x(~O(5-QQod_`!!1Q^AtLqNU3oUjE36M~hdkdaUH})lZZ@`P9?qXVyHscHML9 zEgPQSxaox#U)ucgD_gd1+x}|VYp=ht>hSM}NFUmX7OtFNoS`S!ab-~aHV)n<1btvU8n?a#+g)cx}7$@<@Z|Krr3f1PeP z)7a!}ZfSi6u9%BM&$N6NyfG2}8H4M~M&HOTzL~Xo3wP+lI(#@YF(YH9w(EeiAD6&i z{b@_Wpu2fE7O48-H;>J6NfKBZ8?WXum)(P0?}6O)IkaX39aUWz zt3|n|(AcKek9Ak54RNIHW9%nM-18MFX8Us;Ll&}@vD+D!`mzU@?8DgIO!i}J5|fec zJ|=f(>=rf6d`hQT=+BTUABT=->BtYaF^a5P(G~l$B>Z+~*CMy>Y_6LBUF0ctF=H?+ zSI4?Bp2=8O#xf9Wj4klzJyc@`&6~e)!Cf}HbRMf>64;*;OCDGBBUV7POmtP(eGicD@!9#`^46(68hYlMS7dL$P6<1t& zWqkZqS5c{vh=RT>f`xbJ(4Iei+CE*n&_5kMU3&Ox<&ZGnz@EK=L%W9Sq_ZDwP(b%? zK3abM58U8~*YCuQ!!>)0U1(%A%zk^vKYu)N7v0v5&CMQqAwBMZKU#dqnVm3?HbXpwv| z+Q_oxFZ*=$(O{hM^YQcR;*U#>Ov*}1Ov)IWkd~A%HaThR^+{95 zB#leOt!pRZ_u8baw3LML6EiZC5)u;=G84umWF(~|jm1ey(zwjzBxEoyDLtJoQ!NOq!6EnvMZ`^2G6zCMTs&yuPol9331d>zGp8h^Ois#}GCnhk2wbkuuH z!r1H6Q*VH8QzxQ*CSE%wVeI6|6Q+z$x?%jp@tNZjQc|X3l*iW>J)t|s`d}8ydgFT$ z#+)d2DI3fTY&g4ujbNiNAC1M3KM`?11-;>BmW^p(E@r2Nm`Y4+Ia|fdY(0A(-xt_R z_-^Q4ezkjg5SR-pUBD@O__G@Q-;V|AK$b zzvDl02S3JZ`Eg#)PjM#(Za+Z1&=J5bWw85?0G$6qel8)JS#o@wl4P%T5#E-Sws5w9Qx4s zSpnDG^I*z^(RpG;(e}{@bW?x3oHK++vR*2Ovdg6*bkdhy%?8rgkCoq8w2=CVO`zX? zak~Egu5?|KQ_-k%X0bci4ea`1tk1>cGuVJc*Ca+`v`(G%upZ()>Bq0_b9NLTFmPa3 zx-Usx)eo0wM%4H+9X|MB>VaXF4Lti{J@vFqpc{XG&R&7COxHT~T>bdym>hmSWp)X> zLV8cSUaE0@Nj8VwtErLNe}~J%<%ie?_AHBIYgrYOc|6ZSOdRH2HDfgQ{_FP@9N%kt zNIj(0Qq6z*p7C%G5pwn$jsBI)YFV(fl{c^koF!@IbA^4zS1>IN|2{g2zWy42&3)2+ z(u2}d+{|m4ci#m(lONK&i|=QAD*O8@a&F+0*<_X{jbmYanY5E1kk(57mg8MAed+93 zjgV|m(=0r1%IEounlB~sZPE1Lk4Y`)n{zcirJm9#X|86JB(rZd85)M`So|{Sh$d8X zC0i*^!uKV7C&`uaJMujFXV-U<%(U}V8A<7CyR6YpQqK%p`W0tKWco&^XMdqCKSjRQs{^bDVvlJ*@p&`=$09?RVO0?Gfz{+HbYr zYk$<*wKmY9t=L}_JsBq?4D=~ycIiF{A1o>E`8Fxtt@EGwzcMs zzneFfZ4B?XZ9Bf(wqL?E=5w~>`(J)#|E~Q=SM^!dXF*kFoP~skkw)g^DK}(Iokm;o zbJEQFbDir(;!jOM?euPSpGK9Xr`|H=AU5_v*qWQeKA(Aa&4^oT-KR0{GGm{A(+qkb zU=BjM&>6|8RF%6uq}gK5x$~~7&+f}N?|3r^zoBOH`;=yc`!uNYyHx$Xdr=bE7MeA6 z;|T0HzVlEY^ZtDme?Y&YsOz$zxBhoe=)!ydw{hEc^AQiW>CF4LRE30wgof+FgRmV6 zJ^ZDaYzuOqX0RExx$`db_2vm7p+P@qm@}^bb;71?+wC6e0|%JRX6$_KfPI$Srl3tB z=8WR+P*l4#BNm?<3L{>A<-YuMB>tfMgYt}qGeKEXvuB2x&9|;-mkc?clMGE{HV-z3 z|Fn1S>L-HCdFEuZ`F@n2y267eazf2}!}pr^?tR4kXwV%mzVz+47k#^Jd*nYXJU7i= zrPcC`!rNdtah5mIqd_=f;9>Y-@ik{n?K7^AIhP(}nNx2KNzcBl__DXMrUnHUg)Ads=!jdx zLq?fLMTLwAQy*j{Ye$$vu2nb3W^>?(w^Sh%M~v%h){nr+w(Y~C)6F=U1{1>G+qPZJ z+k7jTOJ_+VX6B9f%A9h4RB9T@Mih-$wr#tb&9?1P$ITF=Aa)+xJGeYNt`T$SO@{6ZNe9_Jws;u30 z*3^9!1HSlz%r(zG@V_k&)SK`4`p)`8Umr3b*|z<)ceZU$FqfI%+_wGe@nuCvVP~27 zBlCyPsy$((`GHdd*RMDK_M3W%AM^V8^c!NnTwLy6BDih)AyuQNxcnYJd%)++>&+o& z#p;bc>gczfNXK*L-RgK?-o5@2N{MW)G5><>>O$^Vzis>a*P#MDM?bI6e0B7z^Im=M zo3~$o^^Wx+)vvw!&8x3|Q@y^r`fb}ck2qeR@%lpry-mvVpN4NZcC6bo&-gt3@h6ps zo_=A=mZ!J8@WPfi z_`2}0OYayP9F#kEOvsp!kccs%At4ushKA;agoKAa5E>dD(lxvP;_z^Y`u7hF4-E+m z4S4`kphqZ99|+|SIRF3kVQd6G%yo>ws&Rz+4-?nzKO`K{eyMt{LYv;N(ps!8H7rCs z4eRMQnE0*aVR9w^jQ=iG@(FyNoXY=V*YR97gul&?%LcxY&y`2Z$*iw5l!@>4yf0Sp z{iL_09PDIfvRN#PeJy=0-6+kFGVr}w-B*ckKD&o6;Q4Gi4{??E7JrGq#dq>lzKIub zAcy86A5&Ha~hKGodGGx$GK+=8gJe{wmn*KF2hCG(Um*Jj=F9ui*&f zi+C^}!~3)TY%ssD_IX5lL|Ta&4MP66veA5-lu7PenAT3XL2`bJ49 zZb}n2dM-`$qNVau`9ro;-o`$bf5IM5qt&of!4ohd)Lvk@s;@8Ns{JNWRJk^GtCKO@(J|N{Y`u3Ha z>}5pVOrC(f@GZQbbcM7-vy6YtcJsYFk5_6AxQTH0Wn{7s`A4$E-jS(1w{sjA8^MhtNpTyGH8fdPOx^g|w!2M78CtL^3QBo*0 zi}8uD79&x(a>0bJ>%>>9>h;*4sk7_ywVkW2~tm1r>TLY7Y}03 zuxt1=d?c@CSMyNxxz{xFct81XO%c<3Va=O}rY82KBqYAfmj$y%STk4_k`1ce4CUO& zqgWJcv!<^cfj&c4-U9Cm-Aev8&c2kKn){^;%=kN56Ra#^Z?Ws3hw%*MERn|GpmP4U zhOQ3r?^qGMn=0SL>AK#PXC1pAR)$Gw7&Sg-3#B*sF3o4KVFB_QhrAqYBA+I|qguI( zzsqB}P8xdFyLa;ysP#Bl)=mC}`QRYEE@z{oO|MC6gf&jdPkS-Dn3eFh`%~LlnIezE zSP|9zTyXwLXrGmuBa7i}Kq(d;r_t*OAw^FIGU3TNSLA3S~~?!L?dw3WOM>%%U>_ZZ6f zls(KG(r@xfXk5icqQx&|m$J+7t>l-p%kg^yzZoh0m><;{neJ%&;~mxr_AY`5HvuVEH`qkJX1k{w}>^EejAK44+^_T=Sk4~xLJ zSxV-+HL-FwH^`rAhRCn-8{}wtJntnZu}_!}8^D9*zC7#yY41D0qpH%s-&>MNC;=3t zh;l(=5)C1tiS$5%;L=Q@f{JmHxk*MQGs6@}TvxHJ=-O~aac!)kSg?0R#kHY}ifhBR zYumLf`Ugd6N#^^#=bSrplMI62xBEQb_dU+!m-C+9-t(UKlzYcK(Cn9SqM54|YI$0L zmS^5?o?y}R!z?%Z&>PzK^aDL@yhrcT2ee5WrH#-=YNNHC z#_#Ae^K}ign9Td_YrgM!DontJc9CNs_ zlrEv~^bG9^;|aQgmeT~9NRwzXol934PtiKM+*nNA=xMsh=%#&Q{FQE@%e8B01wEu+ z1xfQ4x<wpW+je7#S%dGej3vMTb6`ea^kt3tsOZz<5$0QCc*cBlzFCq{0`oj` zw7J9_ufFrm1md$ByRz+lvrvRi7|)6Sk{T(#1twDi1jY6`)7uX7&2_-H2>&9!&zTXk z-VB>Tq?}c*Bdz>>v<=?`zHJY;KHT;gJ=XSE+n?!)#FK4L?s{?$zCS%p z_tAZ=&(Je%&nBKttY~?z?KxVpV@1n~#I0@5x4x8ksqLl23p?Iud1KGZ34G~qv|-PN z)(v~!YI}=bp;y}8X?us>-u3nlVAsubbK76q-c7vQ_HOIDEt}gm(|hz@>w9hQx4aLD z{#xr(El;)GpTHNo#9v!C(#E#e>GihPTV8KjvHMkewQa@D5BGey>%-O$_pI2xV%JA) zA0%ED4`Tw4K68shP?tAy#+X8wI=yu<~w{ggO+k~wJruhCN@sGB9 z_k5E0q)o)w!?Ew(^ZB07TfS)ff<8-pMsL!l)=h~|>C@H~+y9yPCp}0HwyxW=uJvE^ zuQqNG**hp3aA(_HZ7cSC_2V~*Z`!`0e<$#5{g%FM`?~e(w*P6}+PbyvyPe;d2Lk?J z(2mqbLeVIZ$ILYIyJT278N~;hWBO)j12c>fNQh6KeK6xHK^>XYk!JQ0HwkqpMIM?9 zx81M(rA7qwxhDnfO2ZPNb>O$@=LB z>r;$}q4$#MF?*Q(AbIm3c?-?q<`{Dvercmb0Oy8C}!ej z%+BYT7eJm|i5d6?a~0;vJIv0xT|jRoywK@a({Hu=D1p*Hn5@A(@jZ)XXjf> zdHQ_)V*L{RGQC9`pnsn5B^nY-5)ULU!s_EZ`W{-=ncBtLWm>hqOn*pUr@x@TsBhMP z)c5F`G0-^D7;emh*0V+LXDq-vav1cUi;Rnn3gcE|wXxK=)41Dsz&MT`F&=~7{-W`+ zvB79EMjF=}HyO_w>kX8yx?*T^z+%pJxa zBj4O?3^R+(PmE8E31+T2)I17$tddl_CQ(iK!GB=rj#7udk zd6W6F`JnlXx!!!%eBS)n{1m#?cjouz4s#Fmnmo( zb+5v46IUYp_U+%FO;6u!VP^L|SeX6$_7LX5$~~v=LH#p52W5B3?w0B4o^2f1txrbZ zf&DWy-4ItMb)#$l0bR4ZWOVD2-L*@%9=g$^U;pfZS=m|H*#kR#j_-YX=D^yT0Rs+z z*{f#EfCFLX)C2~c3bTLB>;ZjF=bJWT2OI*^syS#tzn*=&YB}Be^&HgI@OD2qtEOUr z$ILMBR|!lSJY-@w{lxBFx*gl4`|J#3cJ`sasTh6CsAGEcO7v;z)7mG|r|qD&gAxa{ zitipE(L2$*?ZCu=t$h=H+xqV5m+04q^<-QBmi}!ACk_@ZR7yDm9-+xtIpy@-OgSF( zSn+U8%RENYdLE}~MNL`^@5X`1rVY1d$Nbgfpbt%TbRpl`%l>1J(=whHOpu8r5$!2M2`Yhm6C^FEjl zXk+zmtk&z`6|r6YT5yR2eyI!9^rq24A`OlUfZc@`Ia8k zhUnS>WA$m;I7sXXdO(|~muaP-r|M^DW%@v^Tt8HsrfXfwvF;CJ94|)a{@yr1TW0jc zXdj?mZuHZa8#%phHFC250>3v5Q`=-*s=aAkuDxSirM+uhsckm2ep`)Y+BV}7Z9CTX zKN?H59SFP2SgGxX*$N3y=8&E}%^d4=QyX%Lsf}K5W@^uwTFxd@n^%%?&=IS8PC4S` zo>R2f06J8==K4b~&~7^PbZyn4+UZ$?uF2{*=$g!Ym}7wHpyv;|Hmd>jGGHZe2k`iy zYxE}vovp7MbhY-(AfL8j&{^h2(3|1@!JsDnE12I5TC8swv{KtSD6H=u6wzDYf5hM# z?a0BWYDWz|O&dPAn|Au(te)o&ChgI~y9}VhgNB`6NLo$dJgv5{PV*I>tkoB4nT>^2 zTCng$EmSyH3l~;s5rl~YXBW=amlkTie-~=z_pndCT`O98yVh^W8ZBq|8f{|p8qNIO znwi?!YqTzZSVP)nYmU>dgxf0E?^-im8=T1Lc)52!KEF^N?bE*)@O%Y5BcRc+EgE^& zf@L=8WNe1H1!w_IMc00Wj?L;yIn%q6=jyJcJ=~SfT?g~+?xgMPPI}KA(gp&Xdr(%^ z0hHO$hxEe_B5nLZbadH4q;Kp?8Ptys>er9-rhe3?us@l1^e1gSF!x~UG4EjV+;A}I z+YhE38i;s6*+4pY{Xpuv@=(fNJBZB9z&wkx0~Q%qTa>Zdq8{r(`_P3=gX!Qa4};7+ zoQ$syrvr8#PM)${GMD8dk6bd$BS_nN1bKEILHfWvG79rhuRPM10ULm?;AZ9{Og?4o z%tx34gegE73P@iM^KID8BjJA}W$iqYjDbhN|0u)<)`K>|0$U4_ej(xxh2K!p=K;%x zB7Y#O2tIS=43nY|LkKNq?9h&N!L$z{zB+J%x7ZnWtBi7OSQnd@8lNhPo~FQMdIz#IwO$HuYLxN4ix{Lz?O- zE>x=)E@GqU&RB)el&Dt8RR9tKMbh zYQ6iw+mOy}x=FX|2XDMx*PGVpIjir`wQhIndhwmQ8NO3DKDtxawgBtz(v1yw>H0^& z&bxHYyc^-~);()szJ0ge_0s!vjZQc8mPR0CXf5X$TGJLoTfN2Tx#2rQ-?`n;x9%_o z&`!g%bfG>h|12<(t`)3t$$Q zo-YbbgC?5?eKHy56!U=fQ(%^vIX9G2*0 z^p2p_}rnKj-@%6qhj)k8%3I{3DM#a^1{cO+Y1Ga5%n~+$LI6JX4abDu0#FdE~ z5;rIAN<5lapLikhQes2m)x@U6XNfNp-z2srb|iKtb|r{1JYzglJ++=?o~u27^?c>o z>FJg=F{>%-rmW3b-(}@z&&j?c`|<3zvk&hQ=(4uU-@6RxI=ky7UGM1nc-ObPW_4fM zJ)E;N=gOQ_Ib(WE?=i2((jIs8*wCX(&m(&t*Yk{?m-M`==Z2n}d+zKxrq}ddO}$q3 zGW(70*VJ!Wzs>y)>F@7Gb>-Gqx9;4Uwe8St^R_i?yL8**+dkOVvaRU* zyS{(*`<>r+`Qfx5ZusGwA9A)&-+uD;rtOz*zkmDV+t+X3u)WKV8-G0Rr!#&!a>q?O z$XjdsgQ0kHv$xh~+wy_hV2GcljW20FGZgpwL-G2Bp)=}(UfUmv#G|nWuN`W3^jdF? zPh4_r@GlGm8iV18d=8f%#BGQzY34Zb=Ku6!oc$fR|LgmD%1%c9-&f1`U9wcdX?G^} ztAPIxf8s%ZllV6@7z)~w@`Yk`{(!RBO|=1v#v=Y;y%maBHGxo#6$^!|8hxP#cUE(8tsBZK~I>WozJ1pQ0)(@K#kIku@WjBT*&E=6uC_>Y`sE7{* zw(9Mebwbs&p<}Gt25%(F54u|3NPWD~4#un@3+?7=S;--mKWGKLG5=!Q^7*4-Z>+Y# zj)>qxqKg8x)xMf)4lRQ?k@h)Czj5fQD*sStOjq;2Zre2v8dMZI7Mb_bDIw-w1)VD zF`FMkwvsMl>w3t7eT1||xWf)9q+mP{D5N2wg`kJ1NX3Q1bx0`2)sgXPLq2<~mFu$_ z?P%0n54uxMje;#Ymx!P6qaxx~rrJO#YD2=-A{9bA*Dmpa_q{QylmBCpc(B$Rv#G8& z7z^9(9SKH7S@=={P5D1C*@nFCoTqrUv^GEF37>Y)X3w{0w zMH=}(VuY3ixeRvP@1w>>ZurjdTRnUbEHVaYw>^&MZ9QapEu^M@kVWtu;92TYRDoa6(+{9qm&E^ zUW~-UF@GpXrE_OkwP-8w`x1Yw0jYpPP*0zQW)6EJAh@13b3CbsZmr*x&qo?T3`j4S z%BmCNg>nM{{2N?UGOC^`y^HN|2%c0LkAou)R}wF_lp$H@ooXMqLjL~m_8-bg1-^9PU;op?gn$K8Ew zC>FxMXuO7I1pTq8p-3nmLqpSizm4+E!X!P#p22Cw(Xg{aF`5&swP{8j{@8~9VEKyB z5~{TAg)^(9Q7(*Ql~ILwQ$xYJfWJ1zNlXjHgFce~IRIjVk>F9@Q1&JA!IW*6qR+6_9)kf3nNX4mPK@IjAq(2Ge*b48i?9l)J0Tg*G9NiWV~Q)#A#yD z4cwY2Y79L<SQUVU}{4LM*Pf}G%K{& zrm3NDGgXTJh$zeoI~otfxGScH0)a|<5taIUGa4J=;SH45fmQvnW}3>4JJ*gh#=)n| zT2uTnZX_6JuF3{~U2LXZ7n4*4A2V_?R2i=U`=bA5ArF5z&`f3i#eVQr1%^Dj0~J6Q zLxR9)3onQk=+RRHwl^ZnB9o)35Wg{dN-ScdD2oE+ zm`rIdW@ft*(@&$9W`?}JQb>sAs6R?&kx;lwa2QiFL@Nq6r8NmgMT<92U8sf>GX|0q z<4M#Wp`hc;@;0e%pXp~oR$5S zC_AU*Mi-3jIJZR|sgG%|^7xslnIp#v5pW03QTv&eid8FS7%P^V zVfHH;e7REX;_)=-54Lwq77lW###_4(iK7zkSbogtwXFYjDACUZOiss9!MjlKqO4{H z>(S^?4j~Du8zI|x!VvGXu$V;(QHGGvMhYziviL0uR$lI+ydrd-c#i|x(h{#xu%^sM zU>;Pwh-mZ%o2`Jo*bYQl;ZQ3FGiZX|-a4JNEB?ikcFs0C% z@L%Xx9) z6%`?7c~i^|`nd7xED-F^DM39!Y?-Lf4nu|V`Rh>5s57zHTqn77sA-NNxwsRR%QG$F zt>>l_Q~afQBkC1!O15DXc(EGhJ*r9Qd?Gy%Aa+eG# zYR6uRZDP$~dqSR274u4GmkDkgKQYhgE;V)JS?pIE@(O$41Of%DY9%I zLKGzxeShk{m-?kIPx}O2W%>E~BbofX#eRE9USXaZjd=wax%nLn``RckIZTzw7?L-s9&th1OA2Zw*vtYvbvVlb*fD&?bUpXsxI1$>8cju zQ9M{PvNMQ^}qZqdkS>bj63Mb46JQqD>#QN>j67^`MUoV19B4hUT&VAp$Vo2z;C zS1sQtMp*bRM4e@nMsHI!bC0SBuWn_Ja;rBo;qn!v@Wp74G*^d$(2Ezv{ai6o8eaWk zsVgTp2q#kW2iQRIa1>75Yc_&G35LM-fmZ@pcVnUu6J4@Xqa4?+R^lw$0CCs8jiU|F zu@_c569-lg)eSbvFKf5q6DcNNfrh2 zvYLlNifx6H+loFBnaD~|Ee4X%*?72OT*kyW^woj=7JCD6H0wf&)nHIU$6w-$HBbYu zJn91VsFuAb7y=VV<%l3K9J}!*Aex=9dS{g}%<~pTwb(GIiDQ)uN1n`uM$0oD=5@kY zipzyBDAkgUyct7s>Sv{$`F9~`9@}7!de`7Y4?2V08De5ON0T}`19D#g`haWuAQ-fz zHX{>>kk{vnfTMVCh{7cl9!}vA6dp<8Q9R1U=7D4a6hm+Ysvm=XskDI+)%A9)TGTAR zpxu5%Y)OdsLcstw6gZX`5For4!VKyMkHmuugP|osxyNBiQ39b?bR@TPOy~d<#4-ZH zxN68)3rrL9Hp#82lwRcQ=|y>(ty4<1m0Jbg_XhlRe%=if=?lI@a8S^dc#mm`E#_u9 zH56L%>hRR-tGQ;}@LXmOO8EV;0VfcxZ zcpk#|hvZ?cFW__mIj{dB`MNPu?^AP>NHM^blH5U2aqPrXEUCKY9?xoWWqFmF@pGej zg`!U<JBqTYHemFm4Q+ch9Cs`3jU z3PaGRgYm{1^cIIqjvnOJF>nyA9|~Y$Kj)+wWhB)Su{=qQzNB6+65x}KvG8cJMvodb zVw8+hl$%;Mijk-)qP8}zC^$)s(^RSspMi~~T43?EO{1ffx6d>=jk!{H1$8`Ak>rw9 zWWn5PsTT=aXFwn#|7J1R8nA{%$5?Y_^C%Oqu2aL&S#60BH6aK(gyAl92NGrH;T#3y zh?JdZBA2*W^2jo-o193qT5GZ!J8NM3CL=SDarL=E?T`(@5h3o~#WOBwK(!&oJv zOk6?C1M<~@k`G0>lSNCh0w)_)>bq!I4#Ri+MM849#fu!wCZSXlrAbJ2nd(Fm@BXt& zXU?SL8yQKy%29fyx?PljtDRf}s}@JqlTM=czK|_tqL?qO6wf%#?qZwrCT>tx6)fI+ zVrj}b2Eh8Zl@Dh1H^v*)`Y+d4Kvq@xyehJ0pD>Gfxj+^K#mvsU$-@MiZd|J8cCrJ} z7J|VR`y(;TKn|BXd{x79Ayh_Y_Xay6isKEiTGPx6^yEzC<1|D_ZgD4sEjOi=tnxY= zjMcf(YV@?7tZ9_DOB(z&eiqSa67@PqvHLGrRcs?!ZjHBAZHhBvqQ9KCLniq-HB43P zc1tQLoh6&)tJPs4WHJ6&2xVfC^gS>QL%+5Cww)U zp)x@R)$!UhH>$XY8--@i;rEJCJ#WQ}B^;zZI-mG`pR-DZeSt`ACc1-QwxrKn*Eku=~exKc8Z;rRb zqJHxGqw_%f=TR-inUHScL+v-tWP1qpKrTfr%pj3w?il4IXa2)@ys(#FPEpG9gsN#{ zNSv07|0Sa_Y9vu32*<&(!$VrdTAIYA2-lLCSWOfA)l8_D(UN*CE;%oW{TTt`j2k6F ziVO1`bxpp^*Mbx&Ahp|~!dlMGmyj{!Izm7Gk|zC{EU0`@|#MmXTtCTFs|zk_yM84U)nlGR=e-l(!eu0x_c4Rjw`@cv+O1 zZS5u8nywM%<+EiJU#%a+hMrnM@Gj>BOBF04&Tp#aYMZw)3oTwmV9H8P6XQBBLSzyw zhB?%1xh*)sN^v8OvwJ_s+SbZBE(ugc8p>C*{V;=KjtI|%JF;sHMz#oJ6`7nFB1 z1tkcSw@wgPz;ndvP8P6qV>sy|lGyw9NJ`mBt&(^~5hv*`6%n&s5Z&F(w->l%a%+cm z-#F5TULJAX=n@yyPd2;p(P=jF+7plLSFl!cJc-$xKLdGMXh2y8hoKz zab^RStn)WfvOO*7FrlcZNG&FKm62Q`Nnf>-5EZ)^V(&t^OPSSvk4S_$=9pukHis6X z{>U`BOXj$=&o0`r%0kX=67P*g79(U`EIO*w zrb|4C@S*yk7=+3*d9DzpLaV9>6A~M>xss8{@3YkHYxklNlg^pel$mp;h?0AZ+B>YS zuqdilosj3OvvQ*aq<%AGpW!+zl-mW9`J!JZrAxYA0iiYL3;h3!uTn(`_4OjZG{=`+g8%4ZjHU`ZA@LtOHqbAgwC6e_=t zl>v*79$cp+e4RKF4_bK&5}P{ldK;&GjH6_g}_?t=L4v!k8|o9 zt`CM>SB{)CR0~G!dTvCyB*45ge!`>miXBjtAuJAhmWE;6?`v^5QS!!msSwB zMEg@ZOP${FluyaVP#Q&{RS)T^JlnH0<;mmFq253sPps+0L{%g1q4G@J;V!Oyp{Qq}mCr3Tabih45btK$!g>aiO%C%5Cy48z)H;m$=hP?La2zH3L?`LSr=L* z>8DPoyr~(-`6lz^Z8CYcv0CH=X0g3cgR1SI&v9{)yb|7@CP~R_WZ>2_{u}wJpFC5F z%A{o0(wC)qVaH;KJ8zz?^qp5^fOG{DYKs&3@WfT0!68A+VnbK%@_sY4%;G9BY za!>8R@Zo(dI#O+`#rY)EY1AWAN3B?h=SK6Jit?})7w38HmnXU43kZrPs&;Lbq+hLz zWtvJx&|Fr3=R00*6-X><(*@|HK&0Ovklesq1O?;vmJT<*l2a-T?#3kT9!ZW{Cn@E4 zbaoNrjtfxeDp-DsYYX;LFlWBW-)nmo%1J6+<*?37DW&ZuoBX|{C1)^|nEW|Yj+nZz zTwSgDi#Pt!f5PaXa)ZBI>u_1}opc_($-Te` z-;D~26JDmobtp-y+v7}D`$r6?+5B9QsJ6OE73F7R`N?Vd^h?3sLhxfW{H%f01JnaE zX`{8f+K}9RE%P_>gA07|N<6|N(vpwY1l>8RN2K|2H2GLRmeA_(!PyHDHWA4!&ZV;> z&e=N{O3k{`-Y$aZ?z|4Gnv*&#U+jLnuh630h5Te0Uo#L-Vs}i!xn?8Y zVGy)LU#OjpDl~7My<}fO+TGSk6DBvxn_Dn2MC1Gftq=eeRUCqkfueHfdQmmE!VqU~ z5z|dO-7~qf#G#Vf=UA+k#tv_mmrmrap2iT26wEgf0( zpD&E7b(5*NceB&885+zv@8q{Qw3`ds#~7E+NA`GHFV)=RsDek#EZ!O_jnt=;xw1fR ziJNTxacP1({n$RZYNB)z6kB$PAp2$<@#{>)ziMwJ;%#=3)#?;mxQJJJ)W)Pmo+e8= zRC9*yxQq9oNK&3X3o>Fi@&o^hmWRy3!WV4?As(p_lso|wq&#DG6-qj|^RvB9cH#l? z)QQk>m3&1w61Pdb;+xnG4v96mx0uC^FPXkdw1fJv&~7didPpG`u+SR|H9{3Dlucd8 z$C4a^lP%;zII4wEu^ipvlw98eDiV*Uq>eDW&&Pv`+QRjp5!C}|I zu)40_X={-WHu?0uFzDRSDokEK5jN*$1n;94@~sVaE#Rjt=FXT|UNNDTm8qelii(Ry z6c-ndDJFIQu6kl&PrWvD0T9_nVosX3v>>d_|@D4Nq^4`fbxQ76uxF zq3|O4+OMYOGgH5ldeks7GmH!kUmagIJKBlg#e-299a7lgMN&hc#=AY7xAlxxZ|muB z+THHGJtfDu-rGa%dMASh!3@BL^~P({a0@N z`uX+q>*v?cub*E(zkYuG{QCL-`LpV5Y4!9 zFzY;|dA>$7F3{+Z3pF|y;IwvKnLe$Imy;BUZY z;9tNN;3r@YkO0g}vdIH<2l@hs0=YmTFanqe91F|>P6E6@9S{b73oHdL0xkpo2wVr; z4BQ3W13Un%16}}L1Kt8Y2EG8c0RIDg5Bv!11oi-JK-M3!sSjWQM*v3w!+}Y_aljnl zBwzvH1N=Y)SOP2sE(9(Ct^`&Bw*Yqm4*<^q&jW7&?*bnI{{prFKLTxl=hAG-0r~-h zfIOfG7zIoK%79tGJm56I4@80A0lx>X1XcpK0}lhw0vmz%fRBN%f$xDmfPPsvbps9r z4h0HKE@mooP^fwm~!I7{Y!6%*%j317FWIXwdNn9R)NVZ|wJ2`Sfa} z-&_6;)>hEk3hCYgT8BF=CF-^!n~a_%Vj%VhZK^PbgU+~G(#4=NbxD`4P;tqkDn;{e zYWYEXdRih>6X-1ULtD#K7-U7)fTn&#JwV?Ix=XJCqB0L8)6Ak592zD15OlZRGMz6# zckgwi_?fStK<9Xeh@bcJT%*EIMpdto>GS6><<1dCDVifpa>Ape^Fa4h&AAYCFK;(t zTMYUDZ=VdN&lT=HGP!{+1ASnL41Xi&-peI@7wA4$O8RM)J~zZB(0!Hr$DsSE@LNFl zSAFyo=z|AKI^hb_<=Si-sM^2xwNCr=q(RrF%5aq9j!KSqXp3l$L!%G;*GeAX@;8A# zRQ1d6RTwlIT?cxQ>fbe>EfwZ5(1R5}JP&$^R}(+6_&VsrRKL6r`f&B*Yu|y+RdIh( z`EmqfCFGZ???IsRv?9^YxhrKExNOXOqhLP$B;4;E4;esd5$C z0XPk)T_wxHeb;(Rw)mYq9q~$eJiwf)+S+?#w$KR{DD%tJkh!a6n;v_c%x9)DD_}AU zoN}8C>r?iCvd3h2fPS8!?G2H_TI~3?*Aq?^OPwf@Z>8dvwMSZr`t|>tEE)9&-`{W zH$h0c-#_=+n}qx1CBG@<23{cDC;#D`D&Zc!?&?zBtF4gk)bp|o;r{-d&r5ZrGf%lM zUAJ*Er}x5XhfJB3l}R@Ow*k9=1mMZeq^{YSs*dv09rjm%kAdsDWYUMgKY;SCnY0La z9{3a}=$1*3BcB&lUhlyC4rl>-+?P$KqYv_7&I0BG4Zy{~^}xfxoA=3hORj`&1Rnkj z_U%CC{n9;OnG;~1bid?<2?u177q}R>tT)OB%<7X#_W>URqXuMB{lO?F@cyB&56YzF zMW{FMKJYQH4d^p0lYRsaF3zM<;P;Bp&sF^U^#d|L=d7qxoDSHRpVfKJ|Gt53P*TTFL=A)0wG7r`~!hA;Ahh|9ol1HTd+)QcT z3IA8Rd#E+XLxX#GNPi4ENG}il^8gQh4P?Q7NN>mMANU&h^l%S-3+w`J zJHkVs1KsmIRC1JuMgb!VJ+!}{CgimWc>XcjZZiTNY6O-8cF;pl03U}ulpXfaA;5%~ zhmMaU3~>Bn4=n&rI1eT;>wLHY3xL~ze_r6BAAlVf$nwlDLAt{|bSKaX^cj&V=f%f( z1eTBW(3|5VjPV{C2Ka$bCm`M=58VU&Zu0)uZ|&pIF@b?kWYZYn1RxAt3fu-f4YUEr zJPExRxCc1oscc#eYz79bgMPbC^4!vOlHb zXS3-J;A?Mi>eSy^<3D?FEHvCBUH zcW5hR*HrqKy5dhbTiSJ({Ti45r?CH7*%zIYMIQqXs_=`JW|4L-bamKY=-P!|hiP@| zBId*|L2vnM`}wllM(EQ(m)FqFzyzQQI0IM=Tn_vRxE**1SP#4o{2lln$bKE;1IPy+ zhWx%3SOu&FZoL`nD&U@*Wq-1+vav;$b1oRSFU<8pp^8#3g@&0#2QZHhAv%!cx?p!A z5h^sLzPc5a?n-i9!#rMm2nn7(+mc$${S)L|dYUE8J|xW<9%(ix_c+WPn21jN^Q9ZU zhMZ9OvHl<4gL;un^HAl!2j$?nTVbxAj$RPSNw{7!ToW5!<<|u#_~CA-VXubYv=QS+eenu`SfoklznVdIHQDz!SjGhluQlr0jR68$h~m{}<9- zjC42u7t%fdKhzHROlD3BUxc;UMUtoD7p3I*Z(a0xF8X2@eYuOi+C|^wqF1}?m!+t~4D#C(V@KxyiCT zv00{hO0w>yNxvVJUyZBoj^6|COFw_I?kT@FKahSQS9>~sjUP(C#cATbul&wV6K~f? z((n8p(((og$T`rVyOGsQ2*E5AomX<8lgdpeEZg(}|0H0^Sm^7}YV{a#akU!|$TF<(f( z@6z}!P=0hzXTNilU)DX&8Yh+CpOxQ1_oU&Me@VYX?@80Q$}cZXnjQVzZN2TQ40`kH z3@X}-pZA*#8on35>)|-S4_gUg%zNKCyWu-3YTUI_l-zFYp zn>q8uSuU>v&W86coYNg-M)jcp|6V}JaM(-7;-A;{*7!*)2ANUIFM??r>K#LwT|A{( zTDIQB=%pWE_SX7neT{zF0R2#Xh<1clrcqI}AsUOsyfsu548`msuPkSg-^Y*2Nw@l7 zyhyw{XQw7F55u?Q74c%uy@!Z@$Ta$Bl>?X8G_HsQ#U2nUdhc+p@{X~nD} z5L^^V@=vc6MMB~YT}Ax%JoWTQ5xa=kkq{N}i)51?%|UOYzZO}BVlo&N)kLFIvH; zA7e~DSo&)!94lhn<%SB!`(_N@H*-FYgyzGt3>A*|(-_;k$hc0vjOmox>*D<|MuU+G zrz@O5a*vE@-Y;Ver1s_G53jS^R5;#8V@y{5x+@&Fb+&Tj{Xz!s7rM*Gqwy>ij_bqw zj11m)J>%NO35C2)9I=k%_T z;lk&^qO7R5+)6pDCKdE$!BY&O(|Sjn3h|ROuBfJBPD7)I;p+k{oZ& z=ZhA(C)}}o9!=yKPI|Ov)3^@lIi~wY&^Uzat91_dzW`862M8#gU-itj1^|o#3II?` z0|W{H00;m8Rh1M?0000000000000002mk;8Y-wUIcsMpMP)h>@6aWYa2mn=;6iomC z0000000000001Wd003-hVlQ|&HZN>xVsmk9V=ZNNV{dY0EpB0SX?A5TWO8YCWpXZa zZ|uDfcofz7_dSy=VS$BNFhbC%Q5OvwHPKWPi5eh~h(Ut#ua!25B)CXOVzLXt1_<5V znsKt47FyBLpS04JwzNj&2T>?)fRcdxG*GHhsYXTJbyFKCh481@_rC9Q&+hCdXxsOC zpX+^|>w#|k;IskqqN&F(Ii9h}w>MYRydi#xS4+|%n?&hid>r7|p>fi&W8#+r z2jDM3iku@;j{J5>;-|+Ied;LN<{c;LzswsX`swkrAzm8fPl7nT^Z>*g^S3Ecq94Ya z`RC?xPOdDgsajGdje_l(jN2a`EZu+gPiE#F*_qkd|MBryHpnK_pd{trKUbP=8a8Uu ztm~#+KgKtvq~+(?pHJ!Ojy=X$S7YFJSB#z!qaT7_b3vT+AZd&A6tL*tIO#{M_hS5v zIB7EL5YT#GoYcVjK{(+i(3h}YFGr`p5p*}iTRFZfCjLXzg>h0P$B&DPj=vJL58`V% z{-K!oMHoLbPTI}!FU7>Sg0>dLNgW(NEIvBk3ffm3CzW#i{W0gHAttsU&m!E1)yZT`Jwh`VTSb?TgU| zV)R?6^WvzV;qjk<&Ycz~)o}UGf$p3dC*8n$6g0vX&{wj)&J>;AO)>hm7=34qo*bj| zV{~DRejr9Kh|y&+dTETViP4Y8=(REWsTjQ>MsJSMTVwRgG5XaQ?TgXvG5W0-{dSB# z7Nb9j(O<;qzs2bO7(HT0w7xnrO|x+wV;bGNYWjwvq4)ANm7vYOwcXE<#7HMgWhD&Ye4%BOVU_A|2ov* zPd0G;uRwQBkDUM2q0#o-4LYSjmdZH($WR=QWa%L5&p_wiCrjUFeJ1Ak5T+0DZjK*g zj*cG>x};E+@;Uy-nD|>kw>%(A<2im-O#D31DKNt5_EM+oMdNx2k35tegJgC zBw5;{w?EKDIWkRjP=6QoT@n35(7CXGvflnM{%%={)5lBDCHKfuH^+D4{<*SrhV`eQ zJM(1e6zj97r$w{^cFmnEOMR@b1#O)g(b=fs_?@h0;{H=)nn$627<9_tWN8KK<)Az7 zj`)ja&<#0pQW3X@--2%bqbz-En9#dG_r57huXB0c0^NOBmi}zw_5?Z|`uiA8uMf|6 zd7RYDdb9=X0h6k$IQ=xxEfD_$jxPY6^06HDXC+gcDUJ8DL?d8RI$nUmzp??lKy)RP! zmr=tcb_VCC4RrHqndY_RuTYL3huUr5`5<9S?r86Vm@7@1G3X zIx$kdJ3%*qeoOa9pnc$PKj-t6pl+0;RUE$zbnbu4(gcog0PXl#x9?bKBj}>5<7h5P z^GDFt*|Id1bvvf_qAcZd`QHWI0*&(mx3?a=5c)V`?|#tf(4Y13D+va+md;3jyAgCJ zXnnk!1{>XApXsb01f34f?KtaV(7oW?C$X*s-OwnmLuq_L4e|PTwgI(AlI~}{6?E=a zN%|w}U7)M0VLa3QE$;7vd7AETasNjpDUJ0>%#S;whd@KBHpGtyT>|mxdig*%&xwpz zcY#hnCrcTuXP_P*C;g4<pIZ6uSntk)rjZw%hIbH|8vxv zBL4Yh&?#FZ{cRr}5A~PD`d!cspzmS*C7%B$GF=CvmZ2eZ{#KUqSSNx`c~O!+V}Ecx z=xXRJQ*?g}x>u9J=f4;9rjp3@*0(`7yCdasfcA}yj2GVnUGlsvon-wy#*dSwV!b`$ z`IBU69qR)a58BK6L(oMq`04pM1v>YNh#mosF6CNTs$x9>bT{Z~*14dYuZ^_#g{a~9 z`&d`u{-Ez=?FOBGWyGEvKv!QG@z*bc?!7WHU)T@YdR3%6?_qvYBDxoJgF%}w!SOAk zQ$Sb4@xNewJLuf2Bjd?^sIQTw64r}AZ@MOupH-k!dLw!rcFcR?B$sYq)NuXwJ$<|b zovzAK9qZ3Q`@kPKxc!|6T?GC6TYCFXgz`dv{#5tBpsQ2kq@S?P!h0#dlcXp0_5r#R z`sXio|BLa^K0eg_FX(2-kM1v;K>OxK<}({`f9QYu{O?zIK5&k@KWqhE1e2GSFA@5W zpi7|hOwh*{(CG&KSG<8TH!>c}mx8}iBjeL((AJkF=?T_XgYI1?hy6ze=uHr>`|By7 ztHGZov7V0_{HroVXea0Dsh;P@KLg!u@Q>R-`wa7^gP6ZBBklQpJilSS z@Hb2^J5JijI({tV7xXUHmxAuhg7fMA3bZvV;;-+*{gsG4iZC872IjIZ16^&+thXQ;=@(qX+kpmWDW=G*&0H-j$J`v>S2IQ|;eCqOqWl*9hpf&4nLXem#_m zdao>MKlJhBr=W9B%2GDh#}3dXCnD{o z1GJ+@-1D_cCqi$5PV0^6qcQPPaq*(M(&EKSDoZPtJYFsp-aBQgRI%jYMK{-0A!{G2 zSaehQ@XnPCSN7({NOk{fkL}U10x+UGBxhE6OYX)x)WIh@4cGuPDxV zY*Dxv%c}o_M5?OGDRY81HA@^A zy{xKCL`OQ)BhJ#AG6->o4|VchrHdAo*Vami%KitFp2u9w0Myn&X1^CQ3oJ&Yn3!r7H7MGQ-l;9+#6=W!|8@ium z(wxYbe zTB@bSxmcoh4Si2kv98$58Z|ml;U~hO=o;B|2*((XAqU6)joe!}MtCfCSR$0YkTG%Y zXRtr|mB$vvhEkmx!=OWQKaUL#k8ltUUG28w(nlTvn?NflhAs=1bwpyEjw(n7T5Ii+ zs>*Qi!_Xm})tJzdT6=6L)l^Jab?GDJi>jQJ10t|p!U4ii#)w)6R!KN4+!-TbODfB- z3qLGTUlIwLUjqT1@p0TFn-qo&MR9UW8Y1mA+kEQ^V#F0CnD z1|7PlmzKA_6$E*4n{jERF@2{F-uQ8g6~$+&%BSgb9Ci;D_+yu7ALSaYyY zV*((HA71GYZ8Z`U?k(HeS~&=uvSHB?M!e#T&9ImCQy`K^%v7+auQR#iejEH5iByJ&==9w5rOtg<-D zyn0xaA&r3pkB{y^92nEAIdsXu9l1$I2S&9tL)gHRM>RG>*dTkNKaL5DZgAj@m%*@V zuc}&V469yJ0gZu72t(mTVw|;6HeXgva%NJKT4XzwRqwNMEi=h^x8q7c&LI{n`#sKW|Rh1Phqr;%{LC1ngN=#;7M9h+hVcH+%QX@eyE-ri6;GZj&81siySbdu( ztrBRlL{i_F=oxnWU zF&x%rUwF>j^MN7%bQBhwTY;4;Y zLk+vQoLVH!EsBdDuC2xXUE{!eh%gV+A7(hp7TtIwi?Ryb7%EHBH27_iBgv z7LCu>@R{reDe~tE*zZLkKC7B(2v1|;8Y_Ixp2KUNM*$z@I9!kX4Gtg8%mrQsze^2i z;d8#{cpIPLPK5X#;9n)N)_X0-{SDKDALbvQ&Bp^57}7ZhzbheZIG+oj7vZB(e6EE{ z-fqF?M~1c8@52wDG2wb|1;WPy6F7c~VZUF)?RL2Yqm9x!{>cxc-s%ZTOsb-!0$@pod^9-8f^FSwsEcg515l79@kQgGaS=q z*l!YtX8~`M#dG;BJx`1#=XChv#qC=z*}dt|W=XEpr( zB8g|9_~&X_thd2utV4KTGqWFl^Wpaz?|UPJzX1FxYkbaq1Miz>C=;$%IcO*suHX6z zZwKIa9dF~hu_j48Z@rtt4!{rBUn!B z^I9e@?<;~|1N?A}#&+qe|KPe2T>FHtk=zKsD-3bZzz^4%{5(4}q=3MW=@4t9E2*20ihwHyafInHs;lpIH#tGL2;aYB7 z4>}gYZUKH~NNW%C681$d)+^z+9DWvAthK@y*Pex67yM30;{CS$yzh0e&m!K|UvK!G z;T)UbcQfqsPvE7%77oWXcbj>88vJhO?VBhsar9RX|BbuoPh!S}!{nHwP z)n7R#mtXxiP8z%{|M&0zfB#D1tryGwhvvBWNB2`0j`M3A&r;yGXyg!Tk5)tcMpIOk^f8lbI<@8#9%e#!P2sGP9UD%v@$3vw&I1EMm@KE?_QX zmN3hhc4h^$n(1KHG3%KPOgFQU*~DySu4iswZe(s^Zf0&_Ze_MGw=r9pyO=)aK4u5= z5VMncl-b2R#_VPuXZo2v%wFaxW*_sky>(Pv&AT-iJa~cz4!QI{6p{Mh{bHDF5bJtz7*36nePSrV8b>w;Wes-PHtGWtS1-b@Qrlpw{ zK+WtETR0FbXSfI`0<)X(vLyifz=r?ZE{y-dvS=`+8Jm-U6Py!;6SfnZ6RHzkO>k56 z!tiq6HOn0fA0QNv4$c8H?y{J1U2#v19~<7XDzZEQ@Bx$BIuJRwsqR`TEWKw72KGZCWr>8|)-^wHq0`0)>R7XSW;duglE4)xBgm$lgO&u?fWTp} z$u27@5EWnwwt})MzA2+AyeSE4{lKvSsgWydENcs30I&kyk`t;4T^Ql-J2uuckn!8R z{QnW|UGiNeGyJO$H6V|)1M^#EFJJ)x|N2p2_-0tnD4$scXbE;Uqht$(I@kotD3fFs zIzTj(poqJaW~enu2ga_y3o0NOiZB8=7>Y8%)PE27 zQSc2I9UKjo2akdoz-3^(T~0GPC;TZWUanBAR-ibgctk7=w00&oHZH5m(?&TK^gp&*q1sUb~~2gavRz%W_(fRaF6urb(f*D*iyzoaGa zt}z4fuMKP}08TSnwrHqa8A9CzgoYK+6pWG|s5$P;1_J!w<4A3nF+a8`cA<;E_t=Eg z)RiTcr3ET|t$-!|(YwED_t(FFW%aN8Kx6T5@aG#Zj{(BL zpYx;t29Ozx6VL+;3l-1*Zz3aC1X@~=v{C=Z$}zAB9`ip|{wp5;>B+y?|1aeKQyBkh zu{@d6lkvZL_#YDdX_xqa19Jqpfod)giZ)c~4ve93&H@b>ApZ5GZ}*OIKJyen6U=W0 zQxnz{XKBt0_$$!iP;x+t0i{JBR2crxo&_3Rj$NP4P@r1dLvO@rpvFuBmVl}$n-kq% zK9U-fn%}bIDK3;leZSD%NX&NC zb~*E*>^U~M-G6`tJRwZ|l~mR}W_;EXpvylF`Ky%wIAnPM$}y-RFJKjDjH|>wVL}xc z%2GTQ{Qu{k4%*NC+sphX`*W6ZLXQ%F!~dy7!m&t@n6(cHaVeq#&!%aK4hV_({Y*Rv z$NqA`SBB4Gm2{Vg7WN-}DX!VJ<-aLxGZk=H)s>J+(J&(kLH5|*2c>7fW_UYppbgO{v2y4Y!B)a6JM*6{D%a^N}jQ8m* z$eY4G#5D};?;1vobSp9z4BZcM4U>bOkdRIC32p)-es1^|QPIzp@apNHW%OGSyHL-s zYG3)pUf&*vdm|plc;hXSUw+?Dks_Oazkq!5{z2csd>j9p{h*HKV(>HSH1;L;G{vR* zgkJpI$RxQ*F}=&D0g)DQGtm}tJkggwz7uxwU!a>MbnD4l`BZ@jiAaNcA>o1Tr`qP2 zSdD9h&I*`?eMqDUe-q`6c1ZH@CJKLWfjNfU{HLGrD$*-D5BedQ2h+3=E9M~?56K}J z5c4LM{^z6QD$Gr68rn^4D;l((23ijX&5@^tuoiXS|Dc@~n#6#%gX;)SgT0AeM!bpj z#yBK>uleS-|TtcS*FR!>Lipx(qfe|@3I z41nJ0@0EfcC10Ue0DhL$j!!TtLa_XmXDhWoUM97_))F_N?<2Ku{}eZo$p_sq$+I)v zK4oW;iU(xwiv$R9hrmPrL8oQ#Q-Aip9n()11TaZW7d7RJ`a>e({ zd(j@6O*Z~mjHw`mCzLWyByqwiq>Q!?op(}7iR;%rK`4xr+R}!1)%is<_$4}Y@#1@o zFt4R|Nta##Z!kNh=>RN3Y3@ZdHXq{>rc^GAB_AUM^ZGWY|9kr_BCU`me^Oigup*&4 z!4jzGIrn1v7G2eM^1eUB2RkW~-K?)Y_;027l6K*9E{pZ88uSbuN83B42Wexq6OzA8 zLqgjUplxcP)2Ux3^e2ID?VxSwBUTi5sG{j~PuieuG}yh!k|3Fdpu$&EdZ7ceV!!G1 z+&Pt(oZI+S;hWgz;A;tJ5lG7Z_oL*BoG06i&>`ZacHyg%dcvvF=ZEsxOTY3`>#$@_oZ2#)dH`f2jo6g=YZw6iU7Fz#n zC1z2EaP4=MdQP&G@l^F(_Njp63z-WX6dXxC;KKoHp zSKgBjT8}l!04<7?vd@8nCEJ_?ZN+<_3oTNS`U{q}^cl2*A^tQAiujV`OXmL@$o7$5 z?kW2h+tz->B($1xcFYCqs&gznbG$<(m&QD(0RAC+%agaWP)eFf!8naPTsJ>3>M! z?jT>muc(N}WY!g%TJ>|4JNniY5mP1=YSk%QLUk#X@8?Ym5Ak+Wt!L8kxVL}si`lBL z;Shv6+`#u1`dH+{ySRraawS=~hFs=CKlKrZ+2($iv09gtT3k*XVsY367HPF392+4o zy}$jDPL$2>FDL~WlUGdRiZd zYVRj{LM@G@fe<=FZ8@n;VLctwtSB>1()~qht}41fKaTse*R9uUH-SbrKX1!65igM zZKkyd5BsOVTplnUKhc=vqP(hf_aJx5pHs!ijx{VlKj=Uup5aK6i{Lo+=UR_&0`l?q zGE*$d^3$W3NAN!OW$@vpY7Yd9h?=3z^5OvcGPiG-JxD#aPSfn#?wXV7Xgt?#O~`$ng8P zQN*jhPWnd#Cja}1C>+U&M#xFV)L5VfQ3BPdjB09qHwRKJ57Dg|H}n0QdBI?73i0WX z`hJ{KVsfR+@b%Y5U&X?`=PQ<)MkV0S77+PV=GJ*|csXl>3hlJo9%cO$#4Ufg3--pK z5q&EW#!6jiB)5R&=W1)~vt^p#bnN)KyeBLbsq^DVW+zW*^`8QpyCTPKNpbH6iB)SX zccub_dWL4mRl`k)NMIDckVgKKpLL^9vDf05E-w6Df}^;s&HSLI)t8t?wsxM znfmCVV??=<@#zcWzO2$H`B$HClxAV3{cA{LR!nbKb7Dj586W=5ndhx&Rk$#Yf z!@-tQc|SSMZv2OZPc5#uO8qv>J6+lAwHWq&g-_ZhX?=e@m}3b90Vba8Td;a6-c0$jxOLEdBsU@(2YsF&wYo@<_r`oXk3u;W`NdC@B>$Q;{vv=}sEAQ{%AM&<#1YsX8 zn9U?1Ek(FgixZsC=B}H})WvZstKzRpDf_OKC|8L(r!DUCWV!ER4 zIYZNp0cO2*f7!@92z{t7F-im|)~RS?YsZ|cao9UP;NC^Sr;-nZ+P-UK>w5Q69G2Yk zCpCnHc2Dafs@vlQrZ4>s`1}tfOsY?9S@h#)2O5PtR9npxRZ`&PMB#puV`xKakGA|q z8Tv-q%|;n?CwildVWVtxqb&J+cJ^G&+TB{)9Xhaj5qI_Qt^EnAy-P>~MsPz+a6@yq zwxkDLPv{lQKAo&rLY;0yp7y7!t@!y4y+?YS)Hn4_NaY*Ki7P1cgS2jiCl#as*4rI6 zn1{5*h24(glQij7xH6_cN9_y?A`QNi$)^NdRU|PoGs}E`eBUKU!O{A*$}V68Mpv(p z_zf)k+7Q;iQ>ZmW%E%NhRZA(fQBOQsl2{ky;PJE+kpNjM&Eq3nzt{)94cfWmMPms_S+nFi zyP$huSg1#%n?N0`GtFaO*Oeuca5Of0%Q6Xwz!iS^n- z=4;Ds*{e`*yNkZ*TC>FyXaC}y_xq;|LM-Do?9Atu+Y{1DzYw1n(f024S8}D>6C!AZ zjiLUWLhD|vmno0^R4vMN9#Yznp1QLBeBPF1!E>x1T8&^tXpt!KiYx{Ro-rZgv4xvU zjrvVNPsX;-ADS&c_a|CkN4l*rh|}BLx5UdhT&v`J$Wc)0y4lFXr9%Xbu7JJ>pd8M`FN|7okOlq>NJ=xR>6KVeQatt^2ON?>36o166~es_mZq_-ljt~ zj6(Z}jqiZ?J?wZ8sSzRTFDi2HCXoaj`>#?n4m~qe6-}RZCq%3anh}h#-%mN!QSe{1 z55Amhq8he0pNdurate);f;VZM`rrG&CM#UAI8C$DZ@rc8W#m%m-RG?EWCeV@y$fQ; zAJZqfGr8lj3+5kJT~oVbmxL%`TGucv>=9Frzu#M{8Rx;SeZX_6M^Gln-_cf;5e8ZM zmva$P8EE# zzvSWdgD>};JTgD-5_QX1l&EDj5@!$Fn)SsS2t*e(TXt~-|9#+o>y*sNcDx2Qy@}-wY z*SOt&HMGK3{VkyuI)sdIXKv~edn8cQ4yfk3=)E6{qVS~CbO|VI`3+1MoIIS^tiGSF2k=)1W6a;)X(^6Q_xW6{a;zQ%=kxOEmCcQj%WVJ>up|}856KWM<9enS-PY8H zV;;Q1oL__NxpnW5RLJ*Sni2aSthJ>xhiv%z>X;7Z;UlBpdVlhUJ7om-=&;Ex6%@7g z@RHn_25E`TQ+xG9U)r|z8FUr=zQtp(5w@9VldBBv#){om241rxqt)_tfBS; z%V>$fI43qN8(bZ;%>>ZNA-CpS;2QVe^2TLct5zXW(0EfcGCxW%4<4&G7QCZsuk&oL zXWZPl2#`9lK5DTt>hN^;29>NPQycF!arC6f>p6K#zPLcN{3eL&KTC}THLTMxCq*G7 zggl8soZ~|ib#;|}Zae1t5M{?41#Yx!7or`SuD`EDV-piurc!incGnV+*D0PExC60W zGS&;=me%%>vR+1CoEl%E`^}f9cN|7X`u!yCnx*_oX0i9v(4$XqbsDq2bP~`#n@P#p zj+}SpR$vib>C`k#xRTVf`-}x+-V~rx${=Nea@X{A(TIkegJC5BFZX}6FSdIeIaa0D z>{(?sl9;D>)6HADw~4>DJP0M{eZ*BI;wYL>+aMl(neu}u4Zf_unA&2lIQnY)1P&{; z)~`hExCh`FG}_*SMG_3)Qm)c7JS~am1I@xv4ZVLx8VpkV=yAChg=9PF*ivHTGbPd$ zDYEOsr1WC1aJB~eDpv`{d)fN!=dv!^TI0ct<178V2}khkrChBM!<_#J>uZYd)vkd) zEsv0L7v6Xb=c;2t_tS60rs>>1n1RlMCCY6oQ*IEL)p+4l?ap^yN4GwBb%@+^^W^N| zIR+m(gnp$70OBm#VDoj(QrhOtfViC}ZJcZg0Ya#O(+jirNtEibMbz7sd82pg5E>j5 zJyHQ7*Bg!XUxICe9e02z*0&G8&X5Ef=*A0owB{I2(1!PEAW@>P7{bN?Ny z?LedM$sAZbL7FB-kF2-ygCaQAUK)<^Z491UdGsAs)_0l~^^qxo?0!y{*u}l;N$9-& z{D>`&b{1*Ik#4K7SFgdpdK6;UYIFp#b5k~vX=r`-`G4xG#5QGgQf(uo6Ohj>7!G6K zgIVA*{Xdj;T~&AMmAxg*vgdc=S&Art0t@Tt5-Dq_Vc_PR48cMy&X75mIJaL#ABS*G9*P zSl*(&?UDa|WoFokU?NOM#O$ETMSN<^zU5q3mW^&Ef^HsK_94>|{`f}pjJO_Ooa1L- zyT%hsGWAdBxN!1u|H$7q9yj316GTD=q^M+yC3 zu_N4A^wSbZ6(ZVQEb5Jjbp1LLGs3Ege=HoFExm&k)_gx~hd=2(E^6x+Jogv`UmCu3Q-6v+C&{O&?_8#Mp}Qo9WZ+xu4R28Z2uasv#{ z?XKs%%iR^V5yP*V?rti+d*JuQ8BF25sQDcG|d)RuT`_Di4wA4q|DzSno%F6^igOj0QvR2fKl1== z=wEel?@p^&_&hMy4-9NTHUZ>}qCS`s{ceLaQL|>6ZNST1T(iC#It#Hw6zgYt!Us~o ziN43%GapJZ)}#$o8^ww7Y6JSwGn-90t@0tz{uFU21F3f_D7VoZ#mh{&BB<*}HiKz~ z(8jxR<+{lg-$FL*3_+y~b}|J&4d~dQmr67dr#C%*}YtwJT5sLZt%|^wCM*AyA zCnO#PvXp~+P1c4qo(YYDtiA+RZzlAvfGrb7ug1%1vh44|)~|RRWrP-5ggVu7ALdJO zVpnn-3eNzA;zck19F(cxw2cc)1qDcgf@{F#v?!nn#!mO*80pBKrQ{`IfH$pqFf`&R znPr+mP!E?0Ap|W}1}otg2b2wrE{%yz+m*l1)%I+W6^4 zcV(G|6*EPcJ3N^*ujm7(#ij$hN`p||uNOedBoDGxewx9AtHDMiH)Mimapq^2IOXs_ z-t02Wde;VhGs@lg{q9+JeMV_Ib;h?KdXeoE#?~{{r_zI1$C(gOgZ?|LqAOpP;3aPs zr%Icmq8{dVp|Tz)c)EsDUY(B8#tu`wk=cnXbe@G@#!|kwd^c1M!YI>GI0DtG^YnEQLn22n(dtLT87sE2d#XQ*8jCOWkMsVjBB~qFgxHe{R80}osqg7^~bj)#0eLzj< zD9^1-d7=xaphn4)w0FwX9*$p*8~N2cc>8Z1l^=Go5h`_m#*Qc$9o2IiCRbo;lhx zV@=eR(W2NRbgcukE9%DzuJ}qCG_qY&E?{as?t_G(>4X4J5@J(PaO7t10(3Ja$n~tg zr9Si1@EO@5^2I;l$BPY32kkGe@>z3dbleJP-4r+YrER2hWY}LW);OP23r;D?yiO$y zyD4jj4Braqslcr& zzM=apJA7rkD^#TGj^FDeCb0EkQhdil40gbX;1HJPoE5IU^! zr;>y-zM|Zd&{Y@Zrmnrqyi8TRTcbLJP+@Ob&#ejXahS8VY!1nxIE<;+Y_7eQvD+Ls zoh$iDrBv$h$6a89M=|%=ALmMO;G+7r(6oeg>B%~oj*kz=9p))vC3;A799|^`E(PKB zR>44a0RRnhOqQC#R6Kdb%_yoJ&NT-81>;b~OLxTwZc3+=UI;6_eAD;+WA<}0TD?Z8 zDydlP?|O0laYnUA@>W00TJya%!yMZxdmaDazVh#2wWd*Ukx|R8c|d# zNZ%$cfA$HHw*&KBX=rV9Tg>D}w4;qPBl*vI<3=`5%A|%F3RClv3nxy%sPn=ML3h>X z7I~WEH%IC%V+!B+CV=anpzp>v^sT%ClP&>G%q`29qt`QQue)3wN=xJ3&iAMfX-Bq0 zb>`g9s6`rC7a2ivrB66#gS4mCA+np_nFrAnJX(Wy7})T z_wCarF%2Dpk2Ca9)d%(NCdllwW<-IC&3o#iZ=ID}cajkEys$kD>MmZ@u*PhTxljC5 zQw2H(A@cF)+-~{RE1$U(FjpXj@W9%!P(Pbjf{p!LY4_;s?A&&hrDDS;AL~s5oub5* z2G8zZ*N3Q9zfDj)o}m898RQ37`$LfARtvk?4Y9HSTwR?o;XJJCIEc@!JO|820Y7tF zz@{Gnxxb`+I0-k`*^|GyYY(ZiLaN}3=WEMfX4732(ac}SmF^Hq0hHS)63+p+ul1pe58Ag*XD5bm zxrO{u8)8zOqwQoGuSg8msX!qaxXD5d!cmEvid#_=Xr?VZb3UCOC<1RjYjR$Ytni5* z`5sooTM4V(SvJnQF6U%iX_Y3N2GWh_vLoO!X|6|;+z47ftG*mw!W0(n3JEv7>Q0~h zGQ*vu!uP5_IsX15^Qe;DvUuU9TvbTHCk33oPqxN5<-_V-Smi0=>+Cn1pIZA=y1G#P znB~$jl*T%O`)khIzX9f>Va1ooA0dzn02O;>H_qKIdE&V6#XFWI4}6T8qIBoo#7~fy zr-SMH!~BS|`wdjMbXyw5TjuNrgGzg`cUd@Ld?AxX&H9<=Wx( z$Ge_phg$1zm%Q2@&pn>LJCx@S2m7SwzvB0rP{&1QbT4DSh3PKF(gw>;74-XW6^LXr zaF3=NrS1CeEd|Ou1+z@JMam}8C9aqOSSp%Wv-$?cFxfEHbsmcd!_F0u57>f<{Nrle zn^%IPl`fnoe-(1)A+Jg0v}oC`4v|}^E(XrJ7jju>mJ5*2ZA|1MRr!?31a!?17IdIT z6ll3v3-=hWeZLc)y%4zVIv{J@G*5H*Hk;=l#&3K1xRvD7iF0~ZW6D>7lkt=(-4jRmy!U&65BFt_MN+!DLAr#U z5LK4UGi;4boN;WUOcWh0IQ}6rJ;7k80$1+ zj1@k*rxlKZbzXN2^j2=p##MCxk^m39RTM9FpL&SN(VPygA>Onr@j1j3!&5S?5!D!- zGVHAl|A%n>y0`12jDzKs*=YTK^x6j$g^Z69Ri)U4znUzfhviR*- z)snBFM!$p498L}q7gPk<+)$crki_FCO8NA}qZUc_!xE=-HI=WtM?sK`K=Q7Cc#ZYx zPC>V_-Y+fMR>is7$`o#kIwy8WJg9)t#YD~(3HQ?P&A&xvVvn`ula0)dLFEY{T7V!&+kNwL9RDvR*$ zsYWpvBk?r(-h&}DR>^$H6e6LJ1(eL68NGBN*Oo;+eR4R|eZd1N2mNzC?psHKC9Y(v z_o?rCpEOp@+0%^LP_MWbI-Xq|mt_4I1*G{?Tvwqh(;{5~ZucmMPnxc4sqgmyZ%QMw zFl{of*0R4HKLYn}-dvV#eRh<5X0_$K7c1G;vWzFDP*iN6-X=bToa$+!^!H$F+;~1d zCY%TSoMZcq2S5K}ULTAPUwTnq-8o@%>4$}^9YF_wX)|}uaO`IpEF7aj?x4cOkx-#c zUg@VejRMm$MeIxWATfx+dNhe z1>&|-m3xk!UxM~FKy69btn@XBOgTg47KHWLmb#5vfWMl07_v+km)$ix5PYQqegGEj znN#b1bT9bw8%6+0ZH)v}&>guq^!f7o07)NM5Tt&sW~?FP&((iJPtx4?ZO4wtH*lz~ z28ryL#_rjEsjdm{jNS9fwleRdy^2p~T z)xCce-v80Ku=+jf_wGgYx4fzlgPud`UTBPg7IK1^8u}>t!;b$;;0VZ$`m74%7*0vF zW-HpUP4>d7TjlXO5ciVuTkk`!d7+W`i7abbIa@2U`y1=1*}if;|4cldlfr)UpXhu? z=RkUA0?_8eHwnHbwMiKv$hcnj)t^Lgld{lgj#6Ys7w;NQq;kRy$3g9?78-mAhm1kj zI@fK>zK#P8%ddQajrr^ZvG=&+pdTjh3-S%M^c)-J(aMNWY`Z1ir>5uSHgj$~ru->C z+Z4QJ3aSfZmZ#4ACiK2orEm>phGAME+cVfxl=?tM`3%(*mzG*J;@e)Z48B#62(5bI zNH8tdp+vS!Q0iyZx^H*LGasi#ML1CFaHbO$w`!vp9v|P9yOk-bZRg7PCBqKi)+pMg z2j$u8D0YsN^-n)9*OAvI*3`uRdY7EyxM0vyole`hHYcT8|CD$le__&ja^zrsU_ha? z;JZCkmhx>;o2I=gTs5uTji`NB^gXiG+BNJRDs#GY7x6sK-41tN6W;5^+WDrz>n?2F zwSBoQpGVF;H#$RM+7Zttpu(nu2x|T@8RGwh`5O~lg<1QCs3f>Xiqj@ z(f{`0t3xmFuKy`Obe{reBgwjI&FkHRX65W%C5sSLc+84z7isCxK4;IMUiC?;{T>rS z$tQJ)ZvR7n$xK`-4brsdrjpAPnaeygy$_&Cj2xlH?~*m>pz57_5F~72f}RAJ~Dd_lZ=Yw$=xx46=Y1yM`a>1#87;2u7miS|ZMHQ%Mt}GxJ_lFB zVY~B=<7472ToLD=cIPowLZy`p=StbuqvPdJ*?dQZ;$}&WUZ)2!4wBT2?>}NNDzN6R z63$S7IOFEmB06AHtg6>Jb0Y|9nZbsb4FdQ27whQl5L1VqGG`b8m=5Ej_LE1jn41-< zt;f2SN*XtG-akP@iR97~IoPR(j%7j=(*{1Pm(1>v!{3zz+LpH7ReA(9zlpiZroqS+ zL*^+2nu(c@)o8QB&8R|l$M=79l^NHIT0X}`?6t&ItZNAdQR2+r>O5{H-=oQTm5U3b zMKy)Ps`;D1u<-6K!uJ|vfGFc=KPHduM9?KI6Z_Nq^ZV=gi}=IBJXaUg;+darAAPS+ zvI`sOd`A%_Dr@q!#JT|2=|C!k4&Bo%sG@OeA_T(0x!U&}66Jeott1ud#~@lW0d&v zw60p+S(=fHjrOF2=e15}EW5xhw!UXw*{-LJIJq7(T_d6XKv}dBx{kA$hY;E z8px(b+K7!|*H>GuU%O}3Q7?Z6XjjsZXF0RGWN>Hr;%?UW@>WlBr&~Jx48A>@Nxqx$ z+f|COEeUrUKK&)HW{}<2aFBvC8Eourv!JI!>sKp&GL6y98*5+3x@^I($-SWttugRG z`~aho^UTEn&hD~}$JIvE`&c1iqVDmp{k7zKGNz$RAx!8BZ--1^pAkQQ*nYR#c9*py zS~IZ*Ivr~oihtYYJXo3rO7|P#j&uCngFjDBsbr?(iJmlpg7&coDG46 zDr6SrfmARt;|uW+_q$pKJKH#x1%sw)it&2kZF3BPDViyv{9p#eQcF1Ne1JoEs#@rX z@QOL(&m^e#6Z8e41)Wb8)k9K(E{bliJKj5VaLPQgYfY)76d%im~U?09L-c-+j~-cn=6I zd$_LHkC#Z^Zk$Qtn4}@y+U&+j08Cd=y)AQ!G}Qq%R%4{n9`8OUw`<@>farKmolJEP z0jH0p2$!KH3u2@*FRv72#*8z1gL^lLigN=#<$?F%yw3qey-l~^PKl0T!uioX)w{^E zr;YVp7lF^IX$wci@3gNiOQjX3@Np)}9y^|7TM@g&O*1I;qBGj|NctVoI%cXoNL-qwkPS*4D~gQPsxsVW|gPwFN)R=vckT^eMjbfuDbf`ngE)4vW>pjDg0 z(`shp6~fns^Yq|Wb2Q#`M_M?#L@mj+Dxn{}|J3|~zwyeinoNx836l!AoeGsx_VcgE zF!C|BZdF+$atl0o8^oi(bEX~kMa2B&%9mI9$5W?5OmE*}DN9$j1*^`vbEgbJpW>Nj z+hX8RVYS@-r|#9!O^**480gbgg!%@GGWrK>8pg3E z4hIPJOcM2B%K6{Q55>xVS?p_>1}Er5yHPs4n^wz(uRue!!YlHh`qk*-Z%8nm`>dkh zdFifj*Jwqk zq|hsq{XVowSf>KG@2tzBF44PE*YjQsLb{N)%(jf!)PpDvvL}wW!161uG^joj8vU5R zy|c1betr?6pa^lM$oN7r>sR+alk0=yXG#Y?1>os3)rzm;tbP;d0kWBcq~Cpy&q(Ow z%HN6|9Zim209s_8AuexRdxkU9sDOxWcL~`~{e1c!!k4D5>wgxheQ#W1fd9B!aeqta zY3Lb5`lB>NYmmE5Tx}Woeo-59HK!J*OHk8@?3p)lv+Im64Aid%2?gzw;^KYnG2Hf; zK-_Bflv{Oyypi?P|LQfC0THHNS;goXltj1P>F zKM6KRFT!1be8dVQJ*}9*hI>yx$UW+TbE61!UOqe9tD?RpxWL#k(_68Bs94e4kA$(?!rF*i}yY)xRH?&E7Blk|CsMrq9pwPmR6b$Ez4!!&85y^)!m zA#sxiWqo-a+-t338RryPPE%cW_j{k&)-;w(vnoP8VnXe0^u~T|>w=(QqxmHb`r_ZQ z{8NziDQmNzM=&3TL5}`?9_GeIK?vD-2W0A7STcBAE{Yz~Qm`?mO+3~4``&2Q#`~t4 z$A;rB&fOX15E-ewApOJ-1N$A)nf?<2LtHeR5S;nE{cxjcvo~U@k88^&Nz6;Fy6;rU z3OaNo?7~&VGnqs>-_~_PoMZ#$t~$VDSx7}~O^N?H6FY6d!xSRXEc5Bfzexbeg8N&> zqcEPj{52LWquh=CDn);s&*rEiU9F4`dccY;beh>>W(x{mtBm#}Guy#t@fC`8D>#a` zg6zPvwK^pemezZGdkJu@M7iRvmqG>UX*$N#3ZF;=x1(lupS8^RsRjq~S%jy2!)96J zki+8wCeA~}Gflnc2){RM^09qbE;>Qy4FVhXANVfmkcw|xXx||yE=p`Z!Jdhbn#_s# zgL(3UO?~39v$@RxHJ#f)K^zENM5q0eXb4e6_epLJiB?EZ$@SB^%}WB;X6=XzS7XQt zq}Mm?@`i2acz5u#+pS`uY@n}G+`8q$Zzso*+#O^r8irs){0L=tvZe-#QfS!!> zXQ?mFf3Vi9eAoeG9!ejSX*OFBubDB>dGygx@9D>wS>MK%3WcF|XwqS2wJ=ZwtII|l zi|cy)+8>TUs@S9OJ^b{La{as~DEV;rJ)e*L6h?BC2Q6>xv(hwP+Rbl3CadaWTL(I#nNy&pG9y&7%J~C7_D*fR zE0H7GAhPZSl@(QWYTp^--)bH>sX~|~XMao}?da1}q)8Su8p`*=vGzN&SsNI|5J9k9 z^3a7by%(uqikkSX1^S6x39WUaxJ$JqR~xTd4i7{Bt4S)7X#g=XN~S?0p`lR*=KBQ$zh zd=xlRkbzuiU((iC{M#?8mFz6uCRC1oArtlK95kwQH;|J6LK}LZvgvFRo!-M@d~HMj z^5>j6(oAIE2^=dU{t8rOm{o&7M3?6}C6&^>&TNuR!clAdIS`Snhl{@|g)0wnDq*96 zety70LDo{WVNougdsFky>Mao!DnSTBshYL5b=mFg>SBYIcDoJvR}j3-P7ZEqS!SE9 zx$YTm4OK*bxB*cQMp90M|e8CFqvR8DS4;nuVMzmy3-k%K41AowRPr~ zf4O97tE9U85lArugU)Z~LYAF>Q8OTCC=0~;)}nK`9)wGF{H7pWeu>4OL#VZAFAgIm zdnQepPbaBst4c>8(z)%uXCKWk;?DT2CG|9!7(0MBx#+;%>4*BWj$Ue+Eln4ct)|Z` z8A`ZT1+vjo?kG#ft^!vzmt3|4#$$K9V7CLytMr&t{fCg5mk${y_k*-W2QTw)$NaG! z%RVLJE#z|XhQNPFDfZc#8;U1PIc%^DO*DRtGX9h&%?bgV?=C%XBkhe!eJMxM5yc&= zU3>l7bVJB_bDBo0TCjG^I;C8N{DELVJUYBw?v?AKSjo>ycch>`zK_=>KPL)dMRHKy zM!E@GXu}v@U{pTBzxT~gi1n|9*;>o$LA(qqj-^L@iXM1Kh7*#o9%YAbNc7gO7)Cu) zDewLIqwu{e+aUJ)n;v`AR~luHPLzJ0^>3P;Mpp8W+=#$dd>MI>u5g4;ha|B8*I>&b z#TE3o{l@B(l`X>&AGuGuh5BvJWa{SuVwuw>Vy)n^8>4Uobb?))ul*%kp@rBY zn(H7uYVm2*NtcoqaxCn$cmpkN2JY+PFY%OXUvfQ~rA%G4#>nClr$~fygM>O=S{RCB zAAHDHkg{~{-z;~Ikv+9jE!4JUQ|hir=Ad?{)%ly2ZKcPk66 z?3C7+gL|#Ia@g#%r+K;={lNBnkJ0q|#CxTJ*ZDAYriA3a=p{3@hOkegnEq76m@zWo z_aUfbV94>(ueYUYZdZr2j8S439f$!*O!jM0_ojm0s!ymUxXpU4E^XRajJc9-xDJvd zHvJ8mzZcK|KR$-4Xb*@RnQKsq?kXuSUQ7Zp6Az2<4;#8l%JwGBWgX@#Ga^-L=@yz* zmcSmsf&HVazP2L=%sEHW&p{7KmC@%%tz~lZj+PEl!47G0%qUgM_kC)WKUJTtANB!* z11tl3mG2y93URu6duR!Z;mBR)9F5Puu&*<6Fe03Nv`fP5g3F8Otb46ba)fgsjSJxk z_`F;w8e}_QNwFbWAyQVfp^C@LQOXgMX+$od&&L>05JWXIvvHqVA*MAJ#q>-s(vFEjoK3!?Xs=I~IS68gfnV)*N(%LCm#kN8&%Nu}5xTcW5HPK325f z>+cWxNaEo3Jer+?&%=#-H@GR!zlDR8gw&8Wq+hhiTir1vZqU+G)B$klDxS8#Wj379 z5&WVkCf!_2{=L6}m87F5ye;wTn^fwzgFqqyKt(^>4tgkZm+Mclq4DdX&rKH_D#&xu zj^`I@q{`#+d7!Cl4-6kPd|8ckRUvzo?Qb~)q{K}`1;y}Pk;t&tX`COPZNDmR{2u^O zK(4=GJ>O@{93_^yleYxTph%zL8hK0(KLXU6;UGrWQ;}c$6 zG>WuAmul&^4HAv1^RB)+QW+0-1TWVrs8K0VsR?SwDQ#{keG8^s<5RyKM>vkIic&^i z*_=LPQN#F%z3+&@RCwj>L=`3<)GB;CvUsy*(J+-6q+cHkmK3(DUvt@l)AZSnUBGqB zT{E~q42F;4y7bZ_y|h5?)@C?KNuBM`=j8!ZvmAP%KFhoD&Jk^ke7?}h z5qp4%^2|O2kM`*+5H9Q`xEA%-RomPL)&5(n>yH5_ofK^Py zRo-yQ+?t`q5RPuiqpuYn?p^LJE!^kt3g%EJQCJ+3_KkesGCS?B^6EOmgwpExR^;Di zXrN;dAlxT01>6;G_#`*R8yv>UTuW;QDg)$;d&=^?!E6BK$OCp;tXf~=iO+4+H?RjV zaj-48&~MATMc?qKSaqlNX73Uo&Ur!Tog`(-KYc}CS0e4zv#6i=a>qQZP+h#bQiO~+ zfcFo&D)>~^>(f1^sV@ z)v0(Z9?0t>CQfwytKAl5V-xjW>F6qBX$DVj_=Y`ENJ#CwN2#UtYe(0upspPFTG*pL zSU{ZPd~|;^W4=wVT&UeLMO(PA>*fMU48Dk(^b_JlJxB-NxEOA?^Z`)Wm>bJ{35WyT z`S9QDHtQ?lb|+h_9A#Q}hml9nakd2taP4jjOm6#^E842AgfFk$`W)wV@NjA_XS2Vs zXOD}~M%%B?cIz%bt@nlI9;z{VH3t)<`J`9UGR^Ri!0z^UYKNK*hVITA)OVt$U{?$N z#edk3}0S0IOEp6;|L6(~%+21jpf+&V#=JK#`7#7G!AUIpsk_S|{Bj6T zK#bz$9(hwM?NyCes(Ea*80b;v;qy?jVhG`X5tSVMy>ctW5CVNg9>F|-G*cCb6b@ib zvgrT0Sc@wBlZhi77Q#%>j}bU>@52)CGYZd5|4tL=JJW!krR`*(|Jx9tKV;F3feoX!?oI8I43LuAd zrb%E-p~f-xV0Nf+tX*z>Ob}zi)3ko=UA*?p2+ov2uLT$4l_WuQ3WB)uV!gURI}$z| zEJ~$u#Gt$6eN&x?GwGhTX>kyNxOS{ zN(&GByW~gra_F3^HwFg?+DlW|s8pE;k-~pKFXe)A@`mrQe+-5ZyLfB*f4aw~Kg3_E zb%2?#ppQ`Z)OqXsg2peiCD^HVC_81R2jZ4PK{*MaB=O`lU|s}}HGYqPnGayftzS18 zi6dqKH2Vj3TM8GxJ;{Zum(qK)_2r&;RinP%;=-Gm3zy|pGS~esKGXYW@Zye>#C;dh zy;UXBTcqtJ_^-P*$$u*#W{X5`>t5W6ajd~lB7c+n#e1HDSd zU)@Pzgizs|yg>9=`h!S|(d3)z@7E3z8ci8@On$Q6C&}dpaI$fP{T#ZaSG0FJ1}D>Xa8%^RuQ~5?uZ@s-z9r^{Qk&p?7p!9?}!BwhC4Xrh)Ru6gkqm-?zVxzwN*cO+N)OZB|k zw|U~XH0r9g+B&cHn!LICODuEs_5KxyUNl+xr@i{kCDI9fYI3EgRL5&8X^ur$ZKnG! ztyek@XV9^z!o{-}0CE-2Vb>+6c4$1QTx)Y+0~!Q2WZ_L}+1jqm=h@g{aGb+&hR&LK z@#;J=-79cnQaqogOdr;cQ!nLfbD4ceA~4BOJFg~Q?M^`#Mt?>M#Y@7iz?%MXro)~2 z`?fsBqLx9JG4}9*)XYKc!F(P1%b8W6g-NPvDpNy=y;&WV4BZm*T`Z+6`tEv`}Lfp*CuAs-k`#2)oSua1Je($2ec)h%isCP8Pxsf1LhuX|9*(w0Zzqqw#`f`%+j+*yX5J`Mh$Qaeq=Zw5_G}E~l#E!tO5WDJYZ99- zP>C~d^q&YN*r_A&{^&zd5$*^M}?`?Vw_UvxV%3jI>vhOx*Spc9rj^((>~}h zKdAPN2;PR%&TT-`_+!r}xWcv_oSN|{2*q%3Vhp?RaQ8vT&vUN~t-I1jlXS@8u>dGE z4YYZS=m&0h2HbW%kf#NFTEMFX^1A}UOFY0{;v)8+7yRM%w2_~Kb50i*1$>Pzx5n3F zA$8#}=Tz6ZY$Cyc$Mo%1PT`!Nw|)3Ny550}-cyk)kwS|>PS*nk7>!fVJ<_{Ejg^x8 zjllV#W;Zozid!>5Z&*`crZN|k3eKY0i6tIW;!s8doO0{m2F1KUujD-y1!{W+g1&Qj zu|_PDKs}4hL>QvyPDu)_yV}M>lf%t4O7t$b=AoyGDN>|j8tN%B9d|988ZWFi-e^jA z{vcSGN0XbxiIFKdK|R=ZjDW=Aqn`KRcsKMQ4K%Euq!%BgZI(xTm-NjdyS!;N-BTM8 zE`2{;k>tIyRL=}Ex#McpBzZYtt>n`bZIHHa@xykjbY}R=JoOPHXi3GAFl{gv-kCLTv8lbYY~&KXHecSaPt!4bc;6j)REooZIS?PD&Nkdf4I=qcq*WsHw_W_E9KKz=;?drM zr|x7Vg!2`1PCPmMrckCme$p_S$AXox&XcdcC&{ht1L*cWco07{u3tDhXm@$FI@Dg4 zk++mwh(RkY`&u7`P(xp{T zfg14!vd>?Q0z-sd+R+r=tbZ{TnS*zo0}?y0K361u=jv1>_WA{5)*5|UCxHr*a!zVo<1T8Os4L5d-`ZT`Ya}tm?O>~qO*J16W_yu zV{$8>L`~>oqKboFeuS+o9{)w?i}|ph2Q%Uo1#Ds)kY14T<85V5ZSeCIo>dub0S|;X z_Q1Wl1xxgGMf7d0qa&KvHa8!C z-EDIxwB37ATg606G{a()WiRiET0 z50XlRw5tc$r0e90;gxJqCz^m;jb4(u=KEZ|ADCtUQXKpTv~D=Y%2lW&RiwB%8K*Bq zI46H&Z^s82eDEl5<`}Vq*wg`$EX1SrcEl%Q%<@l>MI=wcUY$Dm82Uv)CG8mXJ8fK_ z_BttDG>Uxf0Nn6Rrx)m-!eW78A$252a6##-!On-(Gk>1(i&f&pt3y|z+ZG<~?e%wC zlDOQup3tX^4G)#oHTZmr;Xy3&d@uo|>!u->>j6(sfRUjxued62(_E75VwAq56!&W_yNMP_v z0Yq^~WFladiGWoT+UhTA3rtMVH_|dmOIyf#bCz*c9Zl?(;SVZ=iKJBD&L)z-vdXN` z?{!d`r$b||t|N8XvUDc;p8{A&9H%jsB%ETz;dG8iI*>7z(`Y92WT$pe1g*0%tHebA z>|{MK~4B?g=%!aQ5etTb~i)vRXta2R^EA16|gu+~Iv|uF<-2 zeDiE~cE|hKgr9#Hw^tA3XON)TMf;-;6cNdlKU!%aaxN)v2)|H#sr3v>^?6>>Nc(mz z0nk4T?+cD)#f`S3!U)=m+|j(3YC(tK#re&ZW?Hm7nT=cOZj(ndMcj-r8n4c?C(@-5 zu_{1VJBe(|q}upn2@@Ug$UHvBDs2&N;o5O+?=mUAD$jV}k0MP6vO~~FmJ4522XILa zL+Cf&o^KZtw;ouC+$3A6J3bREor3cXb7VmX;Uh?^m5br(9R5~TGBTP(5T=p>+W5=~ zq^4^gK{|v1vsR##;r}OxI6>Q_Tcg8BUq`k z8UY_;(-19n?-C+UBIqff597*(IdHF@nXm=w*t^0W2m|Q@YBMT?e*s=f!@#s0sioxb zh72?C!8CljgyBJ8q=8b`P%vdSly_iDL%wO4QOg?p3{TCF#BzLrCXCwG=z zY)`>Qd3$Ak%lpTOa;p2JdaW|QUTwUH)2#p>gInnfp*3EcvVpx~;#1?xr^Fv=O**Sa z9}wmq9iV5hPSLq%lZGW7)8Z#zrF-BFAh6Dz)Z0f>S)vyBlyU6;u%!h?y+T z@qMmsiSPQha^G}5kz&7_`My#RWY01O>~1hNV$icCMmn6Ht9u>vWj>Ls!)Y840%p!> z)xtK3=HnC1-6S>kPlP2Vx46J&pxg9b8ZUP_nUHdEs) zMIL`I(=3PD<HEfRX z?YHI`tS3ni>!h|jF~=NWB!KdW`?kS&UG*~OJTO*YqW$%lBxyVuRh4WWt(~KGcxXIY zRi#!tht+hN$5hNC&(s|MF7#_p)B*1jFw^ly$?u4jjxc6Mgb^Qs>E=GsOP9*sr7+X& z?f4Lw;%KYQ!?hb$*S6YmZS@zn1;$eYou4hz`Su-c^>?-f?$XN~U8Rd{SLeR~9O(>< zkrIKPOudu^CI`H-nmAzP+315)XB6uF8_{w3r%m*mD8hh#BXdAO4(cjRHX<;c=~wt7 z*r!mKO|8Jtim{8!RoMCN5k>c+rd zB~~2|Ksyw~ymyWrURQgK(I1LuFX5R*3>?f=9iRfrnjsXR(HmLr2*)Gqhyo017k~mZ z`VdR3)p=NP=5w1@DJtC-Hi|_UoYI(b_j_vVN;)4!$$;cQfL0f zMqRe?J2hx{;cxb{zmh`;pCn>3Q74KHEJJ+#5pDl^9V6CCq| z`JLqgSl*$A_d&yl)m`ah?V2s_OYvfru(q?M-BjA|LJ8bk=pV!Q%JBZoN%`w1f6cXR zta7#zxBdY3o_@O==9Am2YDTsJ}rW_DJ% zrPv)DcuH`LS1ggY)r~ddYPEjjIljWCy2c6$R8flX`VV^r=&0@z~hVx?Ef2 zk!rf8JJ-eH^346(mRH4g$2t;sRa)Xzp3X9lq#e-bmKc}ZL=sU2XOEzv>$#*ab(W5` zweC~$)Lp2xX>ZEx3^=9O*mz|@5Xr`D^wSn<^w^XXZ*STO1o4keW42J-jU%_DDeZ@Z zRr)5<*)JuXefki6ec?qZ`uc^WtLL(=?lx=VF%_6L5nJ9^JDI4}L!Xh)YvNyWZG}Cg zGt(*@$Dr0YLhEu!b})?<(WDEFYO&Dkow#yh3#s;9lLc!>5kw2<~P6Tz1N2{v-W_9E_1RP>Fn*{ zoY#jE+S_WPLlSA7o${l5Bjwq4u6Wn2T$s{87r~i%kp{_sJa~OdC`hV3{JjCw9{%Nf zMK}p;;mMc;D<7COwvG?&ph1xtaBB3>(De#-Q>*sL`?-?HWN1~9%0U8pcQ28a$%i6k zG*HAkm_r2%W^c%HPFU=o+$|lr% z?m&u$G<`VY^M_5~glY&K%k5V$&e-_iIN)(|G>%@_Z)d{>}XN&a#FdnxuSuPzdT2Z&}vw^8oa*E*4m;JC55-40^S z{DlQ=LN;ACE*M7yG%GTPDU%t_V8yhuiCkENSc(G3kgs@#Q*CreL7!e(6uVxp1l#<9 z1zFNhjF&bOcI_pm6^=#p*$%C;NUN^Y8mD!Y3Zr}J$R+x$e0d*f=p%@(&dSr~P7(Nx z-C+EFrd_y#wIsMe-NrI-fm?_RTuEHu=2R|#rbcz1`Hsa4yu=IgLTiW@pDAYTYJH0v$osvn6-WX z654J-IL|lUJ*>Qui08ZMom@_|+_Gljx>E<11hXL((Q2aP3d>aK5g{pF3iQkqZg0L? zoPWF34oBhPA?GWF#2+)&X16W)(hRl3?cdw64KqxHy6ftLsepUxUL1;fTC`+e_$Tm zJ2>^08kZDjSNT+qBdB2LR=d?scX6Yqsav0cd@x*M^$&MCg!;OJ-C#p0Zm@I3n!pv- z1nX)3u(Ih7dy(*mMdo3*&eex&+$dGUQDY=_5(ESN80Sg1dZ% z&*@%UGW@BQolS=+ms;MT*{L`A<^O;&Zor7wOXBdR z!L5fDi9nir)AtwK+ZvNH5Unn4xV-r2phpkzvevS9igvPnnU2@?@M6wBn0c~=*ImM6YrG4IFED3X0nTPnRscH$|2Z?UzNLi5e5)NtOdi5F>> zcWS-*^#AwK1b-a+S+alYY3#dVJPWP)zi^+#U%fq@zBN1b3W$47eJ*mE66>k(iJ$rA z&m!@2s`x3O|7nBBgA&{$V18d3%ZrwP-mUbc?pY0_MEHd(#Yw?u_%(Zw%tVLC|A|R=tuL|06JV$NM5JPsWQrRD&w^QVydyDdRA-mBS2*i`wAdHS zRM+L%lq{{^_{QIf)y?%1>-)0hOFx}Jf6MDAosKIq?gxoKFM@%`i}=l z`#QVB{k9~>kz2oKvkhBM{oGdRUsAYCqRVFK|Dj8{^{RnXSz_WqiY(C;SU7df=YF9F z++us{LVuS~o_zp2@ESCu@K`1%~W9on7EQqh>$I`gr4hs)0rPW!}Oy4%8* zx&OSHG9fV-v$LQlc6*|k^?}L+za}jDucvehZ$^HmuYYP<=qw>18u~O<_IU_~9MuvtekTBOt|m+vJVGyq8~ zlT=Zy($N+0bia~WD?GF?5J*|-94LM6KvNug6tuqWAj}KhD^Qz;A)Ia$O!S z@O+yZnluE_h)Jr&h<O@cx(|q7dmNeDIqP}A z+Z7OLg@uDtSAf-Nv7Cq&RNP`oM`B6ch4B~&pYaQGS7v7g_6fM#@~@iBFz zHv4Ri7g4WcerqSr#9ZY$uX4TGE!AuMD|Q9DHz<>O_@|^?s8=lw?~6Qgqeuo?Gq1YN zaF|ubYL^l>n|?1TeSxK7MoYvW&#I>eD)owzNr8gT%HMI|bsF7Tr=F!ZAaDQ3L{fi5 zhY<60*ON{?2jv=OH5B%wrHkJxZ=YZ2tnb}R+%-#WDkS!rBON!c{|~zeS!j^Am%8h_ z$_t&6twP>&Q0*-6A8p!C&(s}2FXG0QMo8y+mngjMwTGRfHev1#$-x*hitYs&~AMl06u)U{43c5t5 z(BsB$PS~xSHwk=C9sd`8OXI)QiSZ~`pI$hcx?aOwm$_pysuX8)$3`&O?dkd4(^vQS zZ}K`TIgX5la1jo}dUux_^SI}T)NPJ+dh7l0x4>KdnQjYHm6b{=QDIb(jv_YRhhoL!3=%1J9)fPzjY|S zKC}O`@ztJ&ue|QR{`f5Tn%e)(=g@yfTK}k2XxwwI{r`F2KQ;alXX!tsxI=iKxz@9s z>iZMrZLQ8tBZ)74gw3C@cMADW-d;(IB9(&B(VEa-1ju}Jmii3I{Ga=n<`r^2`PXRQ z8ntsoQHI_0V<&vT3J)7&R#-`2|5X~A*tM%dWLZhe{Yp5PN&mA6Xf6qXZjB8@Sx}!4 z!4yBq-qB9;t>?xFrR&o8pX2dSHa8wtI0>~ckhixJ5e`lu&h)EZ_{9gWtJf=>m&QL9 zZK4-IXUWQdG;2}lXd()p4ZO`fICb!W_VX({zw zuzHW*0>?qA!i7FB6%@U~iEicAI`}Wmbr;X|$l+U%qW~6EQ>V)_bvk#tP8a(hQ@IOM zM8@R)9 zvwv%%^)2%N0u8E{+3JkU#Aub>vG?GbC4#_ufUr4!b;^ zf4%r>E*Gqs>E=XUoI|#=jKDDxzCrP2Qnhh`&4k0Lv(=ZGsvWiHeLeDSMAy-N^W60 zrmzdq67tN0kwv+7OkfAF(0@eUG95;ZlM{D&nQs2hUz4}C(L8O_7IB&7JmV-~23-_r z9h~GRypM}#hEIX)mboLd;4tWoEzs6@1mws0cQ8%J@$X=oFjC$gLO!q9`8bwEU__qS z_S#7^E!Tx^;_ySynNiTEGA)VTkIUf;LA&}%uIcF*)26_!7}dyoeqE}aFi&RQ)g|fJX^e)4gz^3O&zw2QlYo^R z{ym=C_1W%>*+W?gzfw8VoKlS|BS))oX(#3F8O&CAQj8ab)9&Ijk8+g&pYii!0zQcbbcUG$v!P+N_>HD7(s=L_*SPwvYA)q z5}(d^LzR+!BSE{ZBD-*3v0~zmT-9+VeQJpO+kW=_Zm%{j7umzkwBLuwzgB-v-I>_j zGN;_c>EX$K(g;RtIVfCE$LRf=2bH2|ldy@RbnIzIQK$9ouXvc~6UHp#S zrVXIgt)4{E;+b8~~^& zhUk-N^8c?+gNGgc&F?=)cwE_k8az__S5NOh1O5NK?;QJot?#V;PddZ+A3fLpzj}KA zL)UZ9FLSxRKq@k`TsikoEODfq7V8ym4JXJsnXr~<-Iod_A>br(EVpg}DXtjll*5P) zH+6&nbc6@w?cGGAmDze`M!}Gg))es}iYc~laO{N43O~4Z815Vy)PQA)q zT;(D9a@;73vFmAnQFu<&>LlaM(Fd<0A|IFc>E>Y+HNek=b;q_FcF-XZOkY?o9ca&XrmE zqw1VK&M0l-)A*j#@M#GB=Px?DN(EAu(kGomk@Co=sSIVPe4K{=y9EA^PEhNS#twpv zKH8$!g#B3-_Lq4>jk9dQNukEsw%~-$(pi$a!^)Q$O5{ro;l$6JKuSJOoU~e>eSW9- ztYx7u;$)sh;uPyk?D}^v1X^LKPR|i<8hJ1MN1VP=)yOr9s^+7vUt}}8%Fp4F%t?EF zwN;TS(&Sr8B7r0J6&U%|7oVh+8OfJ8V5weqzHw`b*!D>eQ5>yU9-<}JN^qV%-?)sM zd3W)F%FHn~%kZpr+qb6wXWF2nzDzXQtM)m9b0L4$cg>jUuxVc_=!j3$zBYw^F0^OM z+a&EBB!kgg)j$0w0cOTx?I`AMd|FJuK2gmg23p0U&WhV5wX0EU;`rEndY@RcNH3>5 zG&_WW84mFgy5rPl6!0zn5Z`iXGphO4{K)J^5zDLgErG}j*?(;neU@YDICq52`28Q4 zfN&Xcap)(9k7tVj-AD^^7s6v-f0(lvws3FJ5M2EsH^(OHyHKb)vawC9k5AjhSBI!k zz54wSs2RJ)(vT%P#IyTo&Da1>-8Mw#_>`_Pk-C3xwiP_DWoTfUCt!ISX@hsY~p-lv(;#7)gLvSHKr#mOLb-AIC+b~5_Cl*ah@mM6Y1 z`f*0rr96UVt*65-hd-ui^mI6an|nH(!KZsVq{xP^(;JaJFMpHEMMM$1!VXt>Q^A{o zOz!wT?zp-}Osg-JVdJE__3D~To3gsFhcp7c{6$Y>4`jG-yVkGRISR`wl9$kCTvSIJ zu*Udpk!e_ssLQ_(aSv{o^ztlssHD&q(bw?J{)oQv`>0o;y=#6lOrM1J8@(GKN|)*H zY}!ntY(%m3Ilcy29dBpEY@|l_kq$5!X%M39pM{pEvk)=Q)BQ}$@7GH6Zf;i{=t`I`A@E=l6Ao$Hp%F2x5 zCm%CBW7nDmQ?T3Xj1ANIZn9ts&No}oPiMFxBh&?x|zH0;i z+U;E%z;xId4^c_;ajG`wVSD6}KhQ>~nOD6m!zdS1=-hx4e~I2a$lQqrU9ao3W&81_%7^1mTNHS?uf=RR=|3jmIAZvJ)xNPLf3R$xR}*7kF|v z%GK`cw0}`M8mW=|dsiYFun`MJ3w1|yhUfsWjXd%LvlHs#1?nPtNm_ZAtu4)b)T+1; z+GLELZVG3Jg9q!C!+sFmfG^xGZ|1Upg7MVTWJIccE~ezxn-|L4+dFA@kgDKNP`}%~ zv2>zOYQu)9sML_M(sV{d{Fu6~)TW%L*Oky_GKyx?SJy4&8%uEGa@^PhqHa@0>yLw! z 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

}^f1s1WH7O^?Ch#OgI0r_~&9>>YW3ZU_KP?tZd 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±E9Z2Ha&%F2iGG%EOm1_s6jPaldq;cOJut% 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�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±UB`#T$JBSzCvs*!2tuLRS#JqX zr)fZG<_J)7wF3-%89AjdXd?Nx9F=9+)y)CQcaN^WxO{WZ743F`>g{wBbG=EYEm@g( zvuh!>Wp^jn)MFErr}Y?pElH53_8E9sEmXk#p0;Ck2T=LxqAX=aJT z^rbiKk3B2sQ@bb2<+G@T8%bkEI#K4!?E@ww#ePY8=OZeg>j85R1BVK6)*rnfb>)PU z2zX!2=@EGmg%}EceKd6KPlvl+i=-jE2Y!*N?KjoAnQMJ&! z`AlvTiy=)LeeK%0T5Unc67bD1Vb~NLnT2P-xf(gL>7Fr&GO*@06*U1uh8GwOnYZ6< zI>k}C80SM6L~LfPe%liYgqZM>V)gA_V){s{y;P>v0x*h`A>Pkai{A_KBQob`2Mb)$ z;&(5pY>w#AhVaSg(5`Srbf_^h1Bo^@>YmmrJycT+OY?XsU}^e#-%(0^N`@0rlOTf3 zEmaY8$JuSadk@S$Aid22p<-0Y$j`_nI)`c%M1UPrWA;+9J|mboR_u7H?L?LX`%sM$ zY!@*|9NGcyL+^Wl-e+3A#2kY8g{T7|k&fDzTC|GK&NY^^JF=xEVGGRTppxBw6T6U7Q2ORktxSh zOrz2vPB{)p|H-99Fjus|q8s@J?=LY4t+5W9B{GfcQAqnqv+*;2QsZxk^T)Gz`R}Dl z5T27<4Jucy9ZN2@#)eAN-Oh2Hv z5B$-`xuQjvAw_huGG8$EH_6D_6r$?1`YTftele75IEou00XFQ_TO!w@Hz-IHxe`}} z1&KInAYYUSpG0Azg7X7mtJfFncWC=yj6%S)y8Zh&)IYK0?JhLq-~4*<0A8KQM*cN3C4U}`Tj~4z0mYnwX&;G)5n&WxoMe<&44*%;w4$0AI!)^u7&I0W5u>SdetTk6eH^p?^4qr(Gk=bg zosel)&kBo2U&MCuKrIoYO5I=2a0|5pJROEfeTf(DzY+ASVYV9Ii94255=#LbWTozH z((98ukkqFQrM}TS#Dw}Etp$>&O`mV$62EOiCe&mZqsmmxABWhZ%81Hw__Aa$s ze8p{{>{3-~09NgAN|o?LE0 zRpemiKQJGBg2YQ-NL}*Qi4pn#RmOh*(=D{$*E+Z&bo?y~Q0S+ZsPSJ3%@58VyYBb$ zc$P9ec(;%BuZWt&=-!Zm&gn|K6$inN95Xw z`Uj|)U?WM5PSkgju`knPGkC2HS=FwksqPb;mJQ5P;j4h{7OI;~3pFDZS}ftn^S@d< zV$8^IZZ4{>bcb#gF0I>)Gzqp$Aa%T>>y%i(8tYXI z5OzdqWxl}m^Ne)+$;GMm>F<~1W8A|RjL5Xt%-GOrf@Zi&1V67#-%v8LKnUbxBt_{S zhG;sTLe7^qfMiVCP4r{x0I7Q2fnmsIn?&y_VSW1ae@W3szx!AstFeWNf3I_E1F5Tw zUvcP@onzr5a5X&61(E45*FSU0JdlPVHFj8vQ{W$_Dsnva*;F>id_T`0kW>S70h**Z z(I&+ArT>(_Be@#U$1X!ra%cxVhsD|;H90f2NToS;*ZHH=85g~FPCA>*)SiWpOv#t& zeHh2Nh?f}VSJ;_gH4k42(}cF>7;7xeWmfHF5HKI-pf2PhIUwAr8E>A*MJFhkN;y7P z>IZ*1kz@HQaEyD^2~jvOY>YkL6H)pD!@kr%I?m)cv9CsrzXZb2HE5B!*|i=9|NUpN zBB@8;IKf#cMfF9evHfozp3iK=ev=j}XKIRt=#d|XRjv_s5uRym<9v9h8e8!(8vxw7 z_%4SqHCGyJ0AQ$nspIcw1^fgx9|od}Qxi}-m70X0sHILZaX*E@YF&V%fnm1ZukH=b zB=#Tc1#YsA(FIM!DL{HbJ7&oNLmAs{{D8Id-F+3p}j$wto;NM zr|TmvrlcfZ*fCpQ1X$E;^F&oK?hPN->n74FvB{(THDV6U3=zWk!9X= zsrQeZ$c?O@S%A;+(>6OC`gb88COTiSwrh*s(FUYm+9KEMJ|`WqdZf)?>B;U@EX5Q` zw4*qV!im1^cUe&; zbx6e94Ou=Z-cCl*$#^>%eJ3OA&Ki9uoGwP#T}@Hgowg1x7Oi*lZ{bPNS`=-WeVkvJ z&Yyw`32NgGlvuRk%%;@4FAa$v9#0*i%Vg}SlU&5obe?TB#uB>hTQDj+JTPM~l~ zRr+f~KKdj)1arUdU2GR%`nIS@T46-Ct{{wJ<&yd<$u%|rvgk`4S--m^e6hX=~t2eDjIq_XM`{q z60aim+}%f8Q_ufQRPvl>(;cyXXTy=?CTr&bPfw=G#H3hE_bvk>89c;y z(qVIGPIqxdE?Z%}sncBiq(>A#30VP6YsjM$^YZANf?_m>xtJ5nqf9mF6}r^$!*{j@YynyGR7z z#Y7EYE%ez=pGBqWD%7yWodQ{qD`8j|vHpfX4e^FoS(v&3;321kgTq0;yHlAf7|A~k zY}VNN)fWBSNJVyTvyDVJ-&Ct~I0^(};dBg@6Ukv=1Y_r(htOFi8tvR{rCX2VbT~H~ zFo*V4r}#x%lEeHW&I7%daoXu{pbCL@s`q_GfVD%*sTBBEAf>swhE*Klm-DPTUjnux z=)YDXwts1u5!==HleRou`^^no8kX* z_FGO71=M8`Ym!^wsrsVe7#vNOx_AfAj~=w^ya5_QwOvh6NqLI(U>n0n*|h4NN*m5sZ_mbegGVmfaL0I1L!)TFNaBX0&xsFRLuzRB^P@WkPL-M-1F zAN%}fl<~@p)z{Yqwe>Xu^`wcBF|dw+K3T;(e;Mj@q#k25*Q&p=i51$!n>UFb+h{rv z#^8ioe4u%=?D1yNV;6e7N%j~u7kC42`#@}9c$|RO_b-!J$gq1^6e^sp`uuDyYvY;P zHdY*#Ds9C!h0WV5&Qj+6V!U^3{=Kz4SCiy>MT6q_*qJkGk2nB}nhfOxwx>G(0KKjE zw)Ub9owqphMxZuID^Mdwkpm}LnABoy^#YE!XHVRuk9 z^Jc4f2e7xgYDW`}RZPfsDdKIrY+AU0VDRqXI|jAa@E*LSrZwft6q1YcMv;r>XEC|R z%;#7I0dn{3 zC4~pVnY!!`#({8~GwX`3zuFSMKDoM7uHm)GBh#iXcu1?tj(f%^uCLi2?GFeSPsnxq-vv%J`Ddn*Fob;>ldtYxJUKQrcHK%yC)z3ccrFPjKM!A= zd=illBkT1wTo<0{gP?k-^8{Oe_6_%R&z-D2ueS*kc8y#bI*b{6e_#k`3yLJkpRib^ z#fw#m#iB)$1KmQrp>YG^kv4zp| zbmvn8!Ik{l;0p0)x%ks2{)q5};BDfMsP7yUj<{fl_`{yb0Un_EqEmd)ZG3T0+`PKi zyfSM9-Sai`>H+iW5%cPs=G70)tM8dtkC|8hW?nsQUOi=A^_W-Bn^*hHtC!5HU&t$M znm$({dAk(Jv_YHHX|%5>13~Abe|Ub1)?(Mz+Yr68X$6+)I!m5Vud))Qw*Sr~n`zq# zW`y=U1S$!ZZ~m7dSVE3W&m1=VY@I`pCR)&@yQ;d-W!tuG+qU_YZQHhO+qP}nw&reT z{)vfMX5?AtNj|R=AJ@1mRXN=cIE4~-HML}{6rukS^+&XjCrhlkN6+re2+j*PPzo3W zyh)MMqCTd$N&wFUNOHLlMZ@iRn1Pz&srW9zRU;5SGv&>H`ID>t#dGmkW{Ab0=M=SE zF)6*#SSyZnH*K#$Rj{8{*CXZo%%o_SQqQfz`_xHecdV3WNy{BgeD5L%OTqZ0Nn$E0 zE5&A~#Fm#zPxY&?)^o$HvlqxK@4?b-4Jcs7Qk-Nf7h`bugyHpf!E1ASB;U0_2KReH;Rra-B<5o2&VTp&DI<-&}EOR*UdDfq=kXTE_ zLVIqXwz4W4>DLoJ7ska~he@~||2tC(8wM#F&i*dH=3-J%;+S{_-=v$8eo$U7OVS4ah1^glIZls;EAR}@xb-(~*`*SOO#yNuI+%Mv{dr+l~DBcMbMDnvYH`wTi3 zM;EF_IJb5xZ&ldf+8IEZ0guhK7+8 zqiiyX6r^#P=ef@_#Cd>Xsdc#I1J&#qrrIpvD)6DxG^+&VdDV}pz+*f*d1W!9my}6E zPo89H9L!n(#k=~Q!<(X>?_f&1=#xEUxaJ*jRyy=UFa7>9;$9=JVb#5fNV}h)*?hex zBA0Ae2Xa&Ucm!>R3y=!?mX%vQ;}zL9y3KPeyiwp}g)3;2dkc68(Pi@;R2_ zozZr_U2Thg zXO*qhG(OIy<(jF*~aLl^^_4xm^+AhLAQWE=qZuIQ z%JN(d)FJo}li!EA{Y`Bnpq3AXI#!!Og2->C|;vLxO5w|4S%4$ z)vVcFK$Tn(DU^|;joHdmy9>|FRL&W?SJX52T!;w#&RDUMo-~R{It^Hi>L7zvHSv8k zQpKDwGUP=FwSC|3eg!jn5*HC78)WxKh%a&mzxc9l67r}~In-t}_SbO&bvR09r`dEn zK^1qtWu4dKnnKe&HN~2v*kIk1v5plP+Z?LM3zSWZ(}?>T&NKu7zo>`e9Lv{x|D7o& zS~g5v>^p?9El8x1R2~Wg4!h8>Pm)u01t%Moja9jAkLPR3icFvzuWjg&AN#sB=_2qP zbO(GvQlZ=DHtrwKz%}jc@7$z}vny@9c=8i1;8*2jtsPvOIkZ1TLx5{-mf#?Ag|SLE zT<60DDa1%TL|$ryi=iF1LPq*IZkEnQBguT_q}g$m9xxUtHJkZ1$V%}JQ_9%?)>szR zJMRems@i^anyJljO@)=r{4%Zxb{t5=gC_)J>-3#ni^(c05Q65fqmj2Xwj^{7Y8Br7Q zh35%fLv_Nh-FI#lMLn*F@T-~Wq=^;Izw3-(9it(xK!;)?Uk@ zs3^?-sdrQbf_~Gcc8cD8p;nb@MmzQzI^6aN-b4DSt}VZfl(tRp_fNjnS8RYlz7lPpe`S?{F*R>Y8p1s(ha_0Ll+784=%0qLbwE zGg}sv|DWG;it2w}R_32MmIqNdeQ@lINkIMrM4-_7hBq`#@bQs_o2;&& zsF6{J{89~s`s$b7^k9w|4G8fM*9^D+MLy@LJG9*0S0HU~d=Z%GMkFvl$0wH%oQ4N< z9nmC2a}$6Z0`9Y=g339KyXY)j$n*CE)Dsfnf-!yZ{I~Hk=C^u*FFGI1$Q%s+1uN`R ze`FKs;hppG2xot5x5EjR*d=W&@jzX8Npqph?knRJWcxu(z7FS)w~n$dX$)9$x1-$| z2KH2VCdUZNjdEa5FzTIqiz&F$HO0&>)%Uu~!3hCEXP3X1JG`9%sw%W-x9(eLwDTVG zUZ!7%)4>mZyYtqyWR!=skV#-d;3rx}bYb$} z5&qSpX+01NET&(Hm-osBc_UHWYL=&s|FM)Wv-}3)=073DZara%Fj78O59VMO;El3X zhY1NGEL4!C-e6$`gtwY-+?bfbn=fv_Yo-FLu!fHs_9qcTiI}|PkN0EgCQ}n9M?+x+ z7NO9OkK)2MN8FlbATo2rm2x|?%Es(3s(Sa^I=){NqTZ?Rh2GsFf4c%!d5fS!BWN>0&o?~Mnv3b9|fBTgU+C)g5Lv6K54krJgyh_l-*|wMyeIa zN!51B5hGG~fP3!LqO8z!QEd3UQQ`-YJ}-Ay;i(*(7Dhlc{5Uwr3{NV8Z|2Xc#9!)d?)q-#{9D4B|%$o%kSz_sh>=Gy6h#ZvvTF*v4+fsF()eErq}fXfXG(XFzN4=sz@F4#Neam1hd|(nM`5)U!T9XU0wt3>4o4ybyZQ^ zOgd)wG21*BUD&&3ZX-!gpiYeXybQxTXpmp2TE%Nr{`eBk*r34fP=WjoN})0wt$?<- zw&*A_YnDe}TADhZw&{ypQGcGfTNc$J(Nwkae|dL9tbY<;RI|#%w%cel^^hzck8Wsw zV(Z^BHC)Pz2J!Rnn$^S!wF1##9maO;0i&GwH}y(F``#M0hA?u{aGG_q_X09s^8**! z$u82K&Asc}$`J=0vDiE@x~s%S&7*IS>$E#Xf zXJunItBy)$?4^>vt2qbpz)&-zH*Y{d>)0Es*?)w_E==vh#hDs7A}qsoxLMR#JxjO3 z5*a*%T?$BUwNchJnte&x;O4N77^8{DfL`&(3bSF;*4r)NSQq>&IU6hk|EL~Q zPB!V4nIQ+G)$CHXKRNedFC%t(uMOiHak{4~IUeXiWGk1@BD&|Vxsl~{Brify5Vk9; zh$y;Rh1D&N7!*VA!M$Tz0YN=Q^qW-WdTjPQmWaIr+2n>*T-(8{rq1Bf{)N|5j_w9* zRAx{VlD?Y(*-~EzmSelPKmRwp(NBrAS)V$Eu8(36dT+X*Wo&XqBa3b}oXd0W09~cdQt>l8w zc|hyJCP(v3fzNqzm5hY>xrpgVXrvJ}h)VTA5=65;XDS|sHvyx|kT(?UN&E}2D-0f3 z7awB0H(nv1-%=Kx_E2+3?Ft}r2NipOj5$KV9;aeYP_rYh-4oaCkN?k6f35CCz^=G- zB(9K1Bq9@o%);@%4LpYbRE+*F`~NuSaUUoC=e-QOORH!>2(O+*9wCVpJFf`TI`K>j zsxnwt08R4-OK&t3`%P0U!e)ZTBEQ1f$N?|HCb&`|jW^SMvI}SRsr8IT5bC*NYhQdx z_RX}6rEkf`gSKq3+~DvN^NLnAO!@Amm0s6501q}+gT;4!E4Ae>gatE` z9@Y&`%Ijzd_Qw30WlA%PXQ{y-F{txjI-_os4f|(LTWPK&fZHd>&7GL$@5ZZBerAW^ zZHzVD_Rd9H(2ORX{@v9D?uDG^AP{dGSKPGF=rb)i-f|&(1<(0#)9vt3xmHNLKgSXm zbM?1{<3f{==&xr*GttGXY`e#zi#R2=h#D1!AUBO49>dc+TS$vi%1-+CHso|%Y9A2f3<8qpc1Ek2XSP= zyqsWTN`SZ-yK8lzseMkk-li!$fD9p6*?ku2-s=D=!7W5h0g4##>#cya8f{b1hiAoA z$@f+;UrAyGSzV4qm*t#a^EniZNIAY+r>;&ez0sij3T38O#Zia`wIrRE$UcLutLb66 zqm=2hkKE)d!u3RL6CAq|&c2kS6-D-Kjo%0J0{d`s@-2O8KL?nekDr4b+R1xNYoF*M zNO26Kqw|T8JD7Cx4R+!G-kEC>!eh-^pWOUKNuZ6He=qzm;+8g|>CKwef|KfccAiiz zzK94N?>rG0S4m0_)L|h9S`W(DfW*klbTNnJ;gy(ePzcG!z)kQoO}fe+{gq>n^yzpH zTpn1!W*j;xon;$70ip%-03Ta1)av{w#occTWZ$TY}ux#ux73cfps`iV%@f0!zAdHlGg;qH03c6`bW-k$EB+OxD+gQ~rW!;3;f)UKZGzBf{0==+uooj*)Z(EC!{mP5=*al6poYJuPf9^_4A z=S+B)g}~=ikE3Et3g=inIJY6=Pvn9O?6)dbs<0!V4k|P(l;I+9wq*Ni4s{dUi&k9= z+$))5KSB4OMc1ZlJMA9(^Rde})%19tN~YBB31X?iEwtR~DPjC{W)GsJ@mmSoi30Q@ z{r36clU!)R#3XYQwZ@lE)H{;S0&en@$J#y_i7#;zYM z-yzdxK>nF~J-7k6+#t0@$6zfkOgec~7~DX?>!v}<{$;dzjRdz*bvlOOE3Y75rDu)+ zT@y%GLUi_x2g^(1eTkU#6qle>hKcg(@-JbBh+b>NSj{60HY#itx#w39|FRauU*qVL zn-xh}g+`)y1-(N9|V^K>vlmK9TLy9`^mIIMBla_!-pI=Nnu2Rs#Xm!G@29q`b|wGv0nQC(1g=>ZW1k2z~(l2K&tY|oQ8mX zpz$NNqW;NJ3mo%oxoPNIR)!*Bykn4*U1uMAFZi<5TcivWcmVM27CoTqkG%|-?P35G zgEiZ_>T*#E-vq-~z3i*x0un8MxF~;Sh`O#h7&TFR63`NG_57{aCVWNiP;krl4_qDx z8=Q7Y*?piOerfa?)&jelUNoN`W$329g6o&^PMp;xXjc#x#G-u8c@{(UtMTG4^%gtU zv*h*Vusw34WKn=&BK~L05?XUU_Yh6B-GQB36>FNNpdL8=$hD2cv!$wrQm=e9>bQr( zFVe>u0sXqDSSeR^hI0@Q9eK@7GwLcCi1O{u-c-m>v`x3je9UW4B{7<;@;uU4PIHRz z5`Wd|{M_!lf+_TY^_il~4fCh<)uUtD(v&2hc94aFwpP;FWUppq)JB6Y2*0&u4IyS}3FUOWKaoI0-sueYAr$Nsd|xJuve`(GP((m4;r!i?rPpMYdMb@Y*xLDQm^dAE zLw^Wi!-)T8DjiNobX3PCy>0yy#)LPl@Zo2Oo`~k^^(sV5?7Q+IUBpFWzIwNcjMs8r zZI7h456)VvPoWT<+|}*H19r+~a#g3??%CX+XOeKr@T8s5y!!%Qr7<}6{-kU-`8~ns zwFrFN$M%eRZ-L%_>v=xM<07@YD73R#wb=zwuo^Xhw=62g8lIML7yH-XB|P6je_0(5 zJ-PgYmy${g-(IbNJwKVS-VeE!V|`M;E+RE4Bq;pTB-5>&TzlP6AckRSihwY3h+$bc zqkW>(i+;d0|AJ5M&Q`Vgfdr3wG1cpYiG{BzdusV=>iT9bL3Gc&9!}13&e^%$B@{BP zbe;A7(Eax2JBtUDFmS5Pu1HlPNtA9onPdbTaG>?@HoM5RlO=@j`DyqXwrV@L;wY+m ze-kRosa8P?)hd}8TuQn`J#|#THcdv>;!!^Bt|5-v_G4# zKtD8$qI8ShtlI@QE@hpqOk02SpO>~*(+OY$opMg*ENh>D1xJg1J1-5&3PWqKG!|c- z3mQyxdxtu!jwBdA;Q1L=3iZjLgsZBq^u&m)$)qV-kgp-Zx$hZ8i`N0O((m#Yo{npv#n*}nUZPq%(*G~+qGcsnZ5CS6`jk%h5OF7%_Ojs&E+bG zf9#@c{s6sWcp7Xm0?Rv3F9FsJr2E0_u18zIx~9+#?M+@G29~xYEc{Y%z?s-U zs=SW3=mHDoz8LWDTwWx=FHZg`=CJbpAcWnrUGa4OQf-)a?2`yceo%4X1_ws#HNMbF9@cV zTUKp;>th=@iEgR;jMcA`rIap@EJ#5!+UWb3-NcxQHcf4*wKO? z%3<4yxW8?2H!pSpTbW{705-qRoP=@J0EgkS6B>IbQ$~F|oEfEh1L5B=*Wbbc@E4Ld z;JB`*didm2A5GFa7Xnx;nXE`sVoE#EoSEH)@%vjBp1ql#rK%AE91}f7VRAszqzOUx zT{-J~?aBWc_!j?E@ zZX&hQ^nzuK%KDe|cSZ?OJ?!WNZouB;k8hRK59&IDqkBg90%+I*Xxaj(ejcJoqPcJG zArQBm45fXqo1YXI5L#`BNOjDea<$y68q-3N(xdZ2)3*V9qCtjXb@TvyH7RcvX_GKh zSrCgTmX_sUDns|qA&mQSH+Xw{M$(~Aj%r!S!*aY1bm+|#7@b`Z8MIsG`qRa;uB^*!!|^*>O_QH0dFhsY-!aj%`U z?V9&j;N^zh5IzuoSCD6CppI4A>M%k776jdG=~rT#Hb*{Y^h~-Q(3yTSgYuF&h=pW( z{Ynco;r3riw>PKWS%BG#W&$Ht={oI3EIx{tvppm#KS&;rpD=U+C8{XaE9`1W9kFRA z4(I;%x}GDoC&ubpH_L+~NMBOo@e^WH5k%+A5T!?a6>>xWLEao~ws!?AZR4a`4%Taj zGf0_xUYADcqVEDmn}vo4uU$H~ zTQaw;T^+TA5LwrV>tW6n@plDjH@8|c#Z@vKB5mO>Gt*yr7UHcFZeG7~eRIgvQwtq; zE~mPfdf%hzKKw~O_61sy9d*9C+_`!)OOS+Uuo*Z}5Zc*8V2+o`3$>u`?|?wyo1U5s z52zLEs)uBWZ3p!4MJJ>#pWCw@maIOap43O#>mVoem%U>*$CXRz7L=uxR|?XgTHuj8 zE^aA;4i#ArRBb4XM~ypQp})BNaUS~-;E9vgJxQaY2yIkv@CoylVv``zCN|k0mPGjO zqQ!0;)T0k4rHb8p(qp`C#HH$gFi5VFkUO`9fo?dnb_lyv5WAD<2%-oUpid$j%H(r~ zkP;&4jn$N%5E=FADWS4l$xnbvz=KJ<;oOoow}s7*ly2!8N(rB=y8%3F05!pFA5fA~ zJ%&eaQjxi4N_|E0qqWNiD$xdR#o&R@n)<1~NXNZ%e=J=l<_b5hK^AA$*nb%S_ytRwQqKGA$^99}=R=qLHmZV6@BGK$s; zNdr}9lDME+GMoBJQ~Uy;%yDAm(Xw{D4E^W+i*`ID`a=u)z9O0^gbfVU7YW>wK~kla zGj?~+nnFegv3#e2lS&nB)hfipzH+D+Dfa0hr=*fRCUa#6$hvQ4*Y0VR8^VLrL1%O# zp{KC4j*(&1(;r5#z6jDms170263KWB1CsU5 z$G!rAY1y{-$gFD%0YF}kLD@ro>S4>azfsvT+kqG0GsHH!SKS%v*8*Vh%bB&9DeuxI z=XIL(Z+ar6yN4uGul#caCL3&TLuu&)>L`H?sl{ttX#BS-+SY`XOuD}Q`=XbDw{+fWH$@sAUUO;JXUp2C)tax|r>F%Zmh5;pT3#}i=zehX?WALm3#c8kUCkQbS&HK!o^fORz~SSUr(u;JsJ~yyO!hz zrT-Ov;$Nnktb!!i=)$u1Wkts@E71(mHs3yJ@s#Ln&4>6)rH>5UPG#qNpc1rP218o$ zD@ykkCr)=?>45A#*PZN84)43@tZf^ke=yDWv|q`R)pm`zFqQL?{4bS`JoDMqEjo?9 z9A~zp`={oTd>!258k&tkz9_g$@s=*i9*?kuh~1xsD3v0<@P)noVO zC9I1+Fp=ItAwJ6NuI?nGZYrBmrL>lh&5rnZL3G>6X8NJr?c7kNs0?McdLW_?Qs-l^mv+U9^_oc9X zDMR64w^s()_y3yq=da-P#&A!uKRh@+Xs887v&I{LW%M9TeLmWkTJ%ZWv<6uZCL-vUk7;T)uJi zsT^Fk!+NQ~gcT4Tn{xy~IboQQ$9(2T&WI8<_@QGL(sF9j1*ajJM;ncB#>_<{!iGe@ z7NB)~AY|wALO8ejL2kB&yo@quQhbM_;+d3cw-ffT2x<8M@pNFn&^aN<>5mAlwk>qs z11-#dDpt}J;<0~OrM7XuQG59H8j@ z(MF}cqGIn8&ZyUZZHNmY?V`ok`CIT(XoEx(QEn$8-~LP3*~|ARGb{q>jMuOl{QF+1 zuH*Tg5oeu;rML5%|UuLSTI=~&hx_YET1OvN zF-XoaDC7>_v7v>LEJ1Z5xFzxhI<3{BeG<^rF8V;|SbC5L;X(FJ)(780-kWB6!vA_M- zX8_cq@@2~QYUrJ0Q(bRB1XM`^_-_7VB*3$fUMAaPr=&3@1+yp7wZZe_+$N*qp%nf@ z&6l3)3xg1n`>3YR9JkdvAL;}Y%7l2`?LTIus;%nGH?`08cnM(G5iY3|?RwUv8g z>uO^$^<2tLFHKXy_7E)?k2MAt{xxK_!piRA5FEh^*#lk0iOY3eOv5->ofB0qbNc)h ztzb=C6hOC1*|VzRWi=9uQ)M=kOQ-z0+RgC>ji@V(gzve^wK9k>g8J$Y`&j%;gtLv6<(IE<@|zqdhNuh zjOw2~&qT0O;1MKun4CNn^*r2%3fIZKi6rBjPGvsO^n;sb*v!#-fPqTlZc;%Sa%CWs zgYh&OoI?=;-JurM@XI2d_stBP^Z|PGGwkK!B@g|MxiOubG%V7P4N62h%2|Z2hzdtZ zzdnoQ%q$6V;>T$9-<8T>A%q*|7U1ZgWdhank^5pM22@vS%R%#2ycrJmW>9Y0y`bLU zaf*_ti8M0h5tu>j6~4pfur-S(xI`&-sA#X4CU{nX2m=(|xeA{(iqBvWjPAoXf5dtB z_Hl@nPsRJd-)JHXuBiTpHFPI16B}_@6JD!vb^{p{-LN` zcy;Jg9+UB@AIbzZ+6LQ{4K(Sv16L(^xANxJM*)fzKYKs^UJ`B{3#S=TEZcHRm+H!< zy*4kBA6j=LZFsJ(V<8bm)XYLWO!x8NC3}-{BA>SNUSY9S{E-RiytTq?yi61ckK!Fi zjOsbw)_8am+x@yO{>#{}wXVCsr%EBGEbm972JTEt@ET1uiH;%hB+%EI{&!g~R}cg{x1k3&u>Dn% zt0$`g`WaC*%TiY3D|Q#|E`H{eh^HGZK?sdo1Z}W{4^-S4H8=C%FJwnOQH*QzR`92_ zKnQNMz@t!WjlaKWE@~YURAuR}37tc`hoc=b2u-z6JJdJPF2xKJXyG}MXuZCLQ;Ec8 z29UdFzJ}K6sJDCfoyDUCfhRJnh$&;a zT>+PfeDfDlR_*awdT)--D!OJ3z^Qxp*LZ@XE&C>lSFyykzHgLYzRbkceAq!~rF+Bw z-0W8oz;eIM>D+<$hJmKR?_j-NalgLFiL1ZSX@8nvL(j8}Ke2hgq{KO2F}|(?drxO2 zS>3vSdiMiFyY{%f?*Dn+*SGCqYu_>auoEx)Li~~mEqK2L@^ND&?0kcCHl%I#0% z?N9s${O&(*m&Y-`d5B{k&=#7nict8dVV+ug!*N@ckr5|nz=js3uyu(IoG5dAy!AS1 z%wT3k8*R?+(D}6P6+Nw0{#TEJ&PazdEXnc~RR0dNXI({9Cv>mA*UNCeQF1ME&=YKM zuznc$p2isqb9?7s%+mdl8H^doL{wq@SgUvY57OFu1wZUe;?Uw~ zM=I1A3?kgq`s$Uz-})5XbSn`Pvj;fGo>la4REnRIt_pQ-Sj_%rV(1oesV3;)7NfU! zWI8WT(hJl&Kr;4JU9!A;TvEA$fia;Tet9+&2dW8&4D(P4cbtx^s0jVejusvrS57%?_4u=#N~8i<$9Ybrz{Wgl}B7@AT7o8hHd3e z0l)A6mQqhn7F3dPMSVR03(7_tcI&d6->Iy*prE+9K4IAlo+z#2MZaDiw?*jsOR!qK z`4-FgV1<%Kj6X@8O7S>k?pqx;+2}$$OaC1M5v&>>yeQ(k`{jo^bDsJ(z>$<}W>!=j zx~2i&JYD7Z0t=Auw-=CT*NlL}5Xb83yQTfAB$-3U7HqRp30to;XgzRD&TDQpjAHO= zY}i4)6=79!V@j6Q2vU0o9T;uW3O!X+zoS-xw2Oy=`TQYIP5nY!bo3#}L=ggD8;B8| z=?m3YP`e;jw!doxvo-j|QgjWrp!U^)DIQBEdkg5g^)%H^d^`m{Z0$_=L~;{^)Lhih zC7%5!dJUG$Uga?JVx}Tniri@%27DJx%*}RF8rekg^!g?^4?wD^b9@OU(`vw$g=jmyT5m+;TFsq7Vd%?U&-& zV|Tnq34J&#I6S+!aR%8b;!e-N&C0dCQhN#fU%kVe@p16q8yeS;7vE|Avrx5NnbOag z=>dsg+cOl_Hext9!aFtzaeBOpn>@c8LvuJ8pXRKF`PJv8g>ukU&FW#Y=G4t4L~fYB zp5LY0sPC4*J6JQfG`$<7XoSayhEcwprbMup@Y3!E{RkLHjN0aR9If907tVzkRaW&Q ziwm;Qf>e`N_-q%;4c6JYY0;%^Y*)|+0Sdpnn#`9fCV^Nc-u<2pI_Vo)7OWG!@vt@n z(F#Z13}63Ygh#pR?)fy#cJDRNSwg_(DixoMkE$# z<1_3}&In>%?GAsNmOEFZu0!pDxlW%T7;Y14HC7d%N;|qV+h$8m1;1 zHUn1SaQe}z?P6ENWQRia>XWQESHGL86WtAq(In4k6m^ zM(+daH&nN<H(V6BE6^uDU@7alYbozRc>On1=q_zVk5tUa)~9%&NJTcaP3Q z8F@u*K3u_a#a!=+lcO&E+!ygs*(7pn;|E?zdc?f?h>(`Q02<)7l~7*<)vBy#40v8wdW zP4$0xmtss}5gHEi>%`nfq>xQov@(+Ge4EEc(FV*VuBaWg)|~*EqqnPuT=CBgy#}?B z#fRgo?%GK^iFJW5gRtbTuvB+FYaei|B+3EO(iC_{rXE*wIBA&z+p_h)&jBOCe9aQq zwTQ*$5+z4@a{)8Lc^2Zrm{(n)^}12YbPdh#Q6{4AGmPxNJf+bOjM7*61H~2VLD;*k zYikU`wuf1Y@JbOp)2F>C{oWSHaUHii`;d6dw45CYw)d^5!vl$4F-SyhFt%YLZ>#}- zBK_PSA{4Up7ayovgx{8VbB^C3t3lCc)pAJhr_4xr;m$`nhq41qai5zNx&nbe_6LRn zr_9A~7~*}J$zP*C(*70lhG2qs8>!i&#|0Rpy6oCwY$xTqkvJ`m6%*66Z)EVG^0{>T!j4os}aM7mgh z)(iLIDfF7HnZLiX9ed%?5+^+T#+cKZMH=FJ8S&6yq6=Tl8k&m~wI_%6X|?||C^Vmj zS8;0hB!%;z&D$ta7p_L}+&8Y&wALvh$o@iD1WoWD0BfPWtn}YxoEq zn*~+~Dbz!gid5>FXCj7`Qut3VF)TNOn^sg1c!p0paxR1F))=>!d{MSz-ZDGAdR|xn zyJR3bdM0|BlmY}Xo9teopp~WK6~zvzxBXwiM16rEQX|}e0RgQSvdm}>KCbxMPYg1E zR8J0Fkalx&E$>0}IhIftLt$04}0xAT8;4mWF40U3*QRALt{n{0jawak(hb>gC23y zO&VvK6uSD@tlbwLOih2}I4)3$@{1g>1jNfRz+#dFQwX>#qN(fHh}0z6u`rS7`11T2 zf&@k8k$MCZjn!kVJMW>Y=>|uS6lKE0O5m|H9?hG72s=vlqB=2=a`t874HZp0M`{>i zIshw}_p1V$Oo~w}(7`pu>XG6f7Ep-6-@6YdiDe;UN#xQX1_licmtotSq) zemh!raMoGHTl+HpP=)XN0MBpM=1%FlDb8(zmm(JPt^74t(_NGC@0wOd(r*>D?bVvw zq#MroqjFm8a-Vr3rl?wt-zQr0S??>d0|;%p+^`3$j_^-ZK|*KcaL0zp@G%{VXbks$ zoq?Bw{Ekq}&_)3m$|55bx*r9RVk$*UIV=2I*r+>Eumf|nqc!QiBSS>eJGi0I_{Ks= ztfuH`*b-^frWXlef-B^-gEfv^QW6<~v!#-Kzwj0+921tpCCu{Ik3+nQLkB9<1@0EZg#LbPF1a4XEnRM zt!zFo)~6IrA~OZADy3s7?PN8h38v_!&z;dm{;wQ0Hgxp>NFx>als4Amw1|D{GiRsFi&oD|d;_<}Y74 z%cLA-3DU6G!&Dl!l;QUp0vJSw&Uoi2q=M4*NLp#AiqS{_Tyi`~7jm`&FDKWsI)~R% z=hUKN>583^LcW4}fO!jG=1|x}JTzev;b*tcLO-;?H=>LR!9c`{q}RTc)KB^_hs zkLB`*-apSDOG8Vlu{#43ogdXhw6enWOfN4j>nj}Y3QF~*g7&4dw50p8k<0Lqk|amV z=tam<3Bi%UH-Kd;|v#TI0v5^De{2IhST~DZD)9CW}5}pJdhl{ zU~(5T_82K@xJ|tPbPWt-j?A_3RMzN%pq8g~_D1TPSD@-WBn%O)3e*NFT?|f1eGeg5fwFFD zwFkWS!;D+47mc=If#3qG4uJ)ZFobW0now|&LgV=E@j`_K<3jSvC2_JPGfN18ZmmQQ zWg#8i5ulb3mB?W+3FF+at7fFtU{vptUpLSCZr(24_SBxrNMMH7 z5`whlD-49@H4@5-11%5R7FlgeWDe<3%9+SmL+D@x&x9Qk6tVVi4eJE0=Y40zHyH$+ z{44KIk-(d1-^b}grCji zL@3KaGtE~4np$Tlp|Z;@A89rv@=7w%dI;eHkrZN8WPM?_i}v0Q$vBPK;lBUt4SY}< z-W{`P(nr^32uYdeev=auY4fL;E}Jse)e58bk<%1~P^8GSH41H<0S}#NoMAu(Y;=^- zGDJtzs?>LH^Izk@b;Y{)GK*+VBje}4SuI*lTaF)J9^2|=uj-F-@=rudda8JE7tm3s*I)E55!CQ&W6h{I3QvlpDjQF}GlOn6w0Y`AuaSgiX z!!}fUaRm6~?l~lszM+ECS!7*uD(VLz2UZG8P8$3`aBhD50wCfgH}xQeU?@j35$vnN zHR&x470dJY&J9-5g@M~>V;X(D& zfl~P92Q{FU?yae$uB7v;_wRg;HAhO=}^Rrl(W%_GY7M@lcb3ZP~~L?Y!5xSZUPn z;*%QTs>b_moNF-?5j|`ay&2e-5zG%{^jYLdH?6lpprBNK2rAaqkdtM(6bK55FP8O; zP20Nr`A;|yiA42kh&|rssgDqw!3sNMhm^l0Rnn)8nh9W8&nSB^lpzh0tVzgOhZyXB z5c49G+Gw`6fYG@Dv&=ygSb{o}Z z^4fOQ&NpT9v}{-@<0)mwY5x^fYJ*5ELi6Pk%Kw_ElxfhpH((7TTKHc8M?kp0G|wQl z-uVTk#laE60(Y;*^owb5jMzJm?tMaep6*@p2pgn<=5v2wt|N~l)L9=psq9_oszgRUW8(BYKBpy-5UYLevv^uAQaDuD zO1gtvqZ82@O-qY^F97RH2>#E<%mUiRnDLSoDlv;IkH?93b1TuM6!6TIuM?P)2*DO! zg#Ps%({LoRCY`(!Y?MbEnlpb_*D7Xi+owCO~&kg4_u6$K)E4b zj-pZBO^v=P^Sv50s<(m+NlUeF67Z5Id#tEuH5RFT%JxBwY=ZQ`F$(lk7z1@@p?8U= zWrgZsA~J#+H-j;6wLb~d^rVUW+74F#q?vS9{gbd0o)kObNikJV8V&3XoW<0QnmkcB zbg7V2C)0eje=j>a)rNu+-aG?LO2kZi2h^n^fPB zRC|b>^BU8JXcrg7(3MqXc z;8Utyp}tO^Nv?`^I8)1W#wTD_ZU=RBq(}@v5n{;RWp8g8s}QflVr2@+(EDjEyvS2G zdtY}-F$BY-I#GS41VQuQY`)Atv?8mBJdxZqK2DuLU@C-3p@}KQ36z`1*97%=gA>0X z;D2l^s2`Z;9fb(OSf`e;&QDBvEh5o!&U-i%E%nq`?lcQmMZ2lo=5B9Qf4Bq=|CDDr z4f8Co>8d)vM3I!ni+PwL)!5ILUQCUL4+Gs*{j_I@7CG8&uL~m*)KP^dInoI<6Mv0W z+VKQx!-^t`HJ3LdfDX@#iS^HBs|SrzKh?+H&`wn90Xk7xl}ci7>oOUm_qz?ufoZL7 zX=e}m^EVc$QQ{x)XA3K7Rj*S`c&2+Ok26W|v))khzC0wG8#E@L%O@hedY3JE74D3O zGPTDoY^SK6^^nN9y8=JUR?i~DJ=VZ}iPG&JGY+q}p0707<7vXx@(ckg@~BAB0Sw4H z!!z0{F><+ZsHe4($0?#BPGP}{u1ck2PS4f}N~Ies&4Exc_N1mME1aZ-tmD`cC#!U% z#>4kiIF(hp$vg$+jNG_Jo{^gP^|B#CdTLQ2v~uBZw8hFRV#zK?)71*H{RXYdMn9&l zSHQpN_-WV+X3+l?)yeVHHLY3~3c%$2;l0KEPE}5qSF7gFGc@=`qE>6EymV9={GwbM z{30p(!y&Cmq#ZTJeKoylfyA?Mt$|67TT-`b37dp{3)iG(X;k({3D(Ryz1>pOjR*JG z<2y}V?ai{L~aO)YgIqC_jYfa2sex8>g#{@5jtGI(zR1;TOAtu*9 zL&^0g>2SBqio<`J9VHck#-?>G8MMK~^1C=QI*#`R_^la4N3YKW8yoYd;)fNhtED{J zZKkA>?08;5E%+6>+N~~jXo2i3&c;zAHn|<5XEc=&l4=OpfrLO{t>3xyNR0d zGU1eSv2u6nGHp}P^>++Yv(FW-{aLh6GE^ScoK_l)6vt& z`8f8eZwg0Tq2`FAhUnO7sxPL~qLwOWx*2Lr9O(aoLS*L%n;)>`DEf+#ivBU3q8BAl za$$EjfSvhGxQD1v!wPFQ^=!xUgbEupjF3OPItx8jZqsnOIG+D*pyQ)9mN-Ic$)oBE&kv7x zcz@q~KaHY{(GK*?Qj<4NU`MC{?0}*hw|+0|>eySx+sHqgPSLOI)n^N}Yu&ELFqiA*)O_f#TE=xp03&ZnW?T z9Pd{-YN5@H`0Wv=#u=nP=t9BT!wWwIR`8*Q!vZJ#DAIHXPptfSPao!j6(RsTS0E@v zxMJaZS+GC#6Z=y$*>QzpXIg1j&KOaaKBpc%SSZ?f4@fA+eInqMH9cJJ&C0lcSjc*q}C_!`oMW5Xa|Gny6Ajk zxQP4wwG`Q#DMfY}rF1(%!jSAqt~F+AEeT*jQDR5U=UQXB^U<)Q3g#kV_C>r|^umly zUr)zc$()3C;7oD^5G)Mj^+raA%gZ^VLucwLyhdrI6UAY9CD@%tMnv6c!3)lgdOG`t z)N%(aw{@528x1CMAiyy{&{}TBs#QjObf~)=Svt!#MhYhlH|UYnJxZ&CTaj=tDRv4& zRIkF5c*gB2coOB@#t(;oj0XUUQp}Dt)fmE8cKH??qx-3pWXrhj$VCG$UzU#G(B+O8 zH1eCA*bcfBB%XgtsTjM4iVzftU=XFUxR4(lu9Mn*Hf6D`)kp#$pWe4(wVel0>)}Y5*M}eG%6qV3Yzyv(t-0b0-PV+^ z8BLzCqgrXWzxnNWOw*7324_#!-;-dm#5iL zY1d|=D7H|gLwUTi+=E0ycMa(#_`Xr|Cr@hg`|tle-k`jUrT>(%7#s!#xel2@M#d3o6*;Z-ms3*gIoxC%+ITN8Z$n_+`tJfeQPxy@Ae zIO`1Owbfh`8F)g9y@Bd>V6zlY(GIgG(GD)|O_ECIcgt7GEeyuG!3q;mi`qY6RT^wC z5jWEtTW?^DC439(SL#syqiu2<8QESm3R;%o0>$_07MO7~lt!#SbK-NHCH>rgf&qcl zB&ESlB{bI>6K5|HHwoNQ8H+Wmr8vqwc3K+IzpBy5^F!%il6+`*z?M>G`in&ZEYWRN(8}@+Wskrkx|wZuQU z&!PtzvgAc@)7a^Xx3`P4nq%b(6Z1Vn0l0JVEL9XN(5HEx2}8 z`WX*;;f_aNBR=>5Ue}M%N~;t*WTD$f`;DSTdGxLqU}ZEUep|t-TL!FGpat+_3)kDZ zZlv1OEOtcN*QRIsva{n-^lvR0@+LHdxGTve@I~lMn&G9oltls+2|97I$Pu+B&fZLf zO{K*h3~3qhG=|=zCy8+Tt-fQ31q^iu@_m>=NsJrle)a_uw?4=>Mxc~{!2y(OJ|#fe z{@npywIaaFss;EWYj7)L;~gzuk9L<3?*z8T!}nuv)qpdM27k4;tNE2yRxYWy@BXEsw~1lUSykj6AIxlh~{T3Vbe4DYKw_IP?W;=W8wW6&A-&@ci|zY z9^T(643?GRFO}U^9&lH&2i$07(qYkCf%K0yun5-cYKjw18EbHJTo|tdOdyK-?S#3= z;FamPv!2@nHp;LegWyONoft7Y5X)%Bd(piw-vy^I+yOW3IRA zoyhT(!wsl6Qfz3Xj8^76wNAkTnM%hsfT;n(IYuT|5pT)e0nI@Mi-day*6DlC4ZTdy^<((uZp9hdr{;J9 z&Mx9$`6_#4sm0k{#mg7SE`N7`eE(QA1XdbG8~APtCjN5n0{x_=1UdJ%n8k9xgzsVt z`Yv2_)_&sZ%p5&o=E%4w5D{nV_CFz7`vkR?N@iMla>mu#dp=HOe4G|6(lGumK}x&S zdI|bTjGGFST!xBvbo$AyVpRwm_>^D6mKK8jQ>_?$w6yi-+btu{w*gO5QhpJ4!~jW3y<-CC80enm1?0ts(IXapU1sy7IlbG`h+n3=rD-PH{Nl&R6-; zDAN1TxxJd>N2gYK_>7iOTB@jLZq&ExzG2L*m|79Dnnu;Cj;vO7P|`zmhe^|_2#}%z z!ezyvQR~FPn}7)1F>h=n;+Wr7@J=tXa03Seb|nJLS%#-`vDrR^PX-HB$U*#%!z<=U%f| zD#>DbAhnVmOa2mh*ab6}6pP}+L?N&wGK8zq4crKN+N&8sc#G7NBa9sfJHF|MSwlyV znj&yF4hWt)Y$74QLx4Bi+w4sZa`Vq$l z7ni5wJ*)?{r+h11o}`+3lG0eMIqKcOal_ZMH~*8xm}PGa za-x`u+HC4UC`WuY0#H!<9`Z&$WAaDc$NG3nUDT5kqKPd;(?Y6nUw zwv{71@u*$TjA+JFCV>yRxaw6x&)Bo)YiXaSjul5cu&QWH_zc-7XDHA)NQ2>?LbmNn z%?MAH!R>V+W`YA47I>sx<9X2>yP@Ul>Joc#hj#yo-jnh;U$oPXr?=+6;J@<3q$2K6 z+<_m2x3K~Cem5`WK$0;=MZvjPw!B28S!kuHF&9S3f{DKmU*y!tQVfffM5@P_*?NnR zG+4XXB+~`taksFQ?)ba%WS(QeFlo~sVsg};G8MmzlN{g^cRf06D-dn6OE_G|!DfD# z#K{z8mqVN>=i6zMKTI%=hXrl28NMOblCPLs#A`LWl?l*Pn7WI9Hzarr%4BMJxjTHN zj&0Z{{*uc!*^iGJs}w3NZq+~2Sj7TFz>sqUf?-lOA=iT+?3$qFXkR>xk^*n1Sr9p@ zXlf??d6mnu*3bxT?3vFs5sZ^s-)+?gb z+S0Z(&{}O~P1bJmN~_hPu8?KA2rGa!N zowUhg2p4ihL_K9cm8Lhk6I1vVI6d$~suMALW13ShaZW2*py6hv${O#`4(MdaAu2A0 zjFQR{H+x6D)fnwG5fHG(tt_?053@dXgHiII&Z*J>XSSB|kyRQn)<`Fa(PCpa>K{u6 zi58v&+3^-%tzeu?FV$6TU_)S@ArT0S-)P3!lB`jNa?yQh1CyR}hCfBiBu)J5JpL@i zaW|I6Psm7UR7-MGw(vM}cNMR+w#2P&F{7iB9VuHH4yJf4ZFZHm+{7LdBftpEfPr8t zMxv`2#r)YcE$j?GLQ9zu2x7sg=f9zyLwSvE^zc+rTCB4DNe)0;k4I=tUO)fG3nR?s zg=&+Ly^=E{K7%lE@q|Mv=#nQenirpe8_hH;{=}8MRlM8K|1RHTL${BZ*adbdTPmR@ zEl!S^TnQMIWfpa#5fAd;#M7#%?NWtJ9)-Z|d~z=ClXDVIB48ChxttNbmyalUSkK|h46&Zn-y;mHD&+ z;B{o+K9F~=@Jxjl*~|}lEAyqD0V7uJuFS`wNP3Mzhw0=b%os>Yos4vI899NEUx^@T zaw197=rcCKkfSMhI%~XGn=!W{Zf+gsFlZ3`4L1IyQr7&SnaZJz#^G>HW^J6wSsVVu zbp9maEWpf}fECw06-DBY4sdnb%GXA#umwk1@6)qxiL5pFl81MNC*{!K?bJ5c!puY1 z5k7p@|4)W5;L(Q9`oA1L*Ci=1a)yre{bNrJTuH?BZgUMa_Z6r-u*|w zj2dN-M|7Qc`;XUW)%hhx_!1ti(YmqP3|cK@#uIZj$T zPrJXg=h{ZG8M2nsXyS$}rz=NWo@I$e;t^myVm>4o+K&tQwwl@Z)5$7hRhAFKpLdxb zS@FNB7f1|XD-4?H1LNNHbv^tXU6%EUyRJH)P6a3|MvvB4MwJUS-1*uw#I(2Q2*>_R ziD1dgup|nS*7Jg-XOy4va-y7iet0y1GcV;L>Tk#9Vd$`#$hPb`WLvcP=!!G^WP~TW z#$Y0St-i=BI;`~ACX9KmPW)sY$2NUSpzDjWG#5q67T&{$p@-8{`@`bcNddpriSHif zeMB$I%J^Y@>OLTyg(?)p7OmzY4zpj4-KW4Er-T5r+LX! zn1!cie=Z6c+V!(chW?9t;R&Nv_5DYK;mfP~QatJ(GmEw{F=>u|vN7J0b#eZBCam2m zs&ZuhiuFrTwnV&Jn_J>I!MWXTR8EZ9L#a4G(fF67{SmfXoR zz0Z<6`3h0}DIe3#M3pDsdGa4($=;jJ(}FZdUlt{vs6eS!>Haca>0Vdb2_*ghuC$Xy ziXA_v)nu||%Q_)|Ho5N{`S7?itL-xkLnI$d(w|R~^dnL&x;jplB+}PpLJ)Hmo2Y6v zKl52-=CdU{(s0wCw3x#OpXve>KD;hlJ_>!?Q{kb>F-hG;SC72tTX>N-sonFLg!U>8 zuM)quoKKIy^V-;{EMjn7e7r$v^pFo@k%gIE>`dYq$c1=E*r7ZlWQKiQX4t1>>&YOm@bD2t!$)q!!>3xi z8=Z-)3!Uh`5DVn1=0~F)7elOpP8n@Afz~=RYp{0blSi?xkP_#t8CLg1&)D;nNgMCj z7D!Iu$VXlgaCT%1IS|Vi8>2634#e#l2O=>AQ(Zc{6#I*TQ#1UB0g;OuFjKjL%CR&d zj#JuKWvhm%5+EXXV&)J{*jP%6@>!^ymj@*A9T>2H7AA)B&!?}3dAJ!9Q{{!6VL(NH zk~!0SQXC2Y?H94O`g9^vsJ2F`$4q3MDI4b3xDt(JgXvTu2`soV6@Dc*BwZ}=?7(O3 zQai}q#kN*+G2-^TSk)^2%`_EXagt)e&}3=2FbmNu?oECC3a#2}5V>}G%=vT<{v17Z zZzz=(WxbW8Cut@!S+$6}7M=U)gA|>!Pz0WVC?U`eVb8kBbjpd6TQLvRD$gGgB=1zr zE`4sH)g?s_8sSL0~8; zw;8D#u&!P-1}LB%BWgw8&gT-rzcx%uK`WmK?{wZs?(?H72gre74H9i>;_9oks>VD& zVye!rv17G?*Y4tGO;x;?oyio*rLxL`)_yvtwHNV;KK#+H4zBekK_8(%zwhOQD zy3tz4O)2Fz3%3}laVV}E>%q_`5B91D@dRasztEm6Q!qbp=zQtaB6~3LA5PvPK2=p{ z+QTwynWtYyd!sXhQL4<+PO7SSzmdI2tuXy=#Dz$2T-*V6F6N91(n2jh=A9p2ODu)(73Naju45_u;beB; zXVmlyqDb(7w;wqQ4=M+CQZD8FluNl&%ca~ooTE_uhP~hXMDmfb27?b73Xe%U)?*wv zGM2Z$PPbq&9m|^7cV%|T&@8r9PQ_8E8%u+e2O|lBz4(M`eU!TN)18?vDGL^qxtiB6 zXm(k*u8lm9?N}X85^eq6&}*$B=-5t?BpQGw_IQtMEmqA8uT^$DL|t1#U3*CD+C!pi zOR#H|=aDUre%HJ+xgX}Cg5GczzvMp~^|?Zzp9n*EN** z#{7zz>m0>GqC_JUPRq?fYWcrS=OT;Wc99h;VSw;mh8ng;8zXGUHZBgHkm-p} zm=X9n9Q277a`%d?TWSr##8UATet&+`M(eQjLh%&r*RC)IN*Dw*!MAyt-X?yZr?_4mLRd>mFgaiYc0_S5iXIRsb z^#^lXkf#-6G)N|+J~5I~-#bl;p~b8*WhRNPR6}fBok46AD=Qpxj!5b+@#__CwZdpT z!dAGG^gaXOn432o!hyCd>Xqw12f-wL&WSdW-vAn&HV$j_XGVRa<(Z>2*gH+0F4{_E z>|2*kWP1`XTY z;88YPlx=&949VdBaeSI)9+**(}aQ!hK z*Yi4W_tx*TE~03-LTpM{&#!}0TnFnpDyVyxpnAiWWYnUfQ;UkWrj_Apafwiir<-@D z3NwrX$FqzAcN31;%Ip8w^?AN6B_or2ZNf0SB-_{23=Oh4TLcsJQ?$sVi@2F_H_6{d zZf3n`_l&fZzKoNZ2elXE3fVtho&kiHb0;CcAr{oIKZC`_=zWHaKD%pi&TlptzMR92 zVrVz(9!Y#OmutOq>X~F&A9Be~BLI)g`D7T5kXUIQR2m zsT95jS1sO!{A!3Kg}W<_w)lzgui*-08wWOU|Aw+( zB!P0ckkr26`eLlAT!d9RAL~&4kul^clPXVxP$4K1t9J!M@e>46zL%VFNSo{yR8j6Kmqj_8na+c_lVGsx35!dL6EwFHX_CVqYH z961&+uXDAK^yv7wSMfDR`#qr-J%*4}(Sy=2#A-{C^r;lq_2rR4V_`?{F$-cKT&;fZ z6ubgWArr5V6I2(YvEKX&KW(~ddHXpYb$A{fdh2$_G2<3#S!~kIj(loJt!jUay0_Pb zqE7W8+DtA+*dKv?*b&BK8Ps16LZhtdrZP;!S)NZLW2Is$SRC7ekOc8sT@Bq@Za7hW}R)6GcTYL8W3C?^wh7TH%LH_eigtMs(ervn{tHsy(Dw zH-r$kyblbsb%$0z)dwp!+HWClnP%5|Df%_gJ)xIg!PHpk!C#}_psRCeX6U6Np+usG zdZk}>8I2wIt25EJ4IBTQya#{7kes(rtr`kZ?RrGGmVp}Q)yP}Q3*IcKbyXLiz^v6A z`I%q*mQrWF5xy+w3{QY_?3B6Ca)~vpPCYDX#1Rovk{ zDg6`&v0kb@YV1N@x^-t9d02G>ov2lo@tB)AzQ)Yz%q(Bw;|py<1BlgGS-?UQ6G9lB z9|1*yNg;N-9p|PsFoh$Bts;__-dLEvuQ2h(U(WF~9rTCSva(i`HC_ZA?f7P1cJpCs zF>EwgVz@z9h7{ie46^9nU=i5HQ>wVEq#{y_Ub64^ePSRNzT2KoQ+V!t^WQ!xSM`*z+*GftK8GMlJ z=0wAVA#Y$3>_ObOn=td{f}kAsN%7YytpbO|8?Z?`*3o^Q!TWe`w@W*}jkozbc>7HZ zVr=xVS357z0%4u(Jy;(_>@De+J&w-L%m>pF*ipYHF2kvB!`J6Fevm52EU0L|jjtg6 zf?%D|L*v+KxWi0#?s)3pOhfh-XV`li-;aJU7HybN-rjQC?4fk@&U=Qm7Jrz0# zU3pb&Pqe!TcJD8bIyzJ4m#9BScw;&-)=vF7hy8~iMTczct>{~Zm$1zn1;sTx9qk^+ z-h(|elf8XB={-dBK~vviZ*2Ty^y9IFw97lNp1RWgpR{!cu$3?!O?maMX5(?VWHmcN z6U*$??6`EWk0jQqtu{4)U_1x9Ym%)&N&WQT~lxSsKW zYE}6D^PZOCEdv^Foc5olq%il5b(T}^RPBOV9#+6?A4)7eDaG^Pr|}c)nC!u=3C2S6 zJ%j-7QY##F`u$fkDYT$^lC<<#w8K#s{tG6c5|x9x{h?Qf((Da%2sI`4nm!lxDoWyq z@pfRQ=ILOML!5owm3)G~a8t|^v_5L@Bciqfn8}o(!jMK^$U_e+mfCN(wch$Eu}9u# zR?FU1?tRTDZ;o{|Z3=-E62xR`_@d2sW2_^5 zr{*F9HKEp}ISUI$F|Ap^wzTgsB@ht}RS<=4T7KptDwj2A6i|lu2Y(?ABfZjrzAt0g z+*NfW4JEbob_<^2qX@WE8r-oH_?WipDN^g}@cY)f8$ikVP{{>+aPr-Ckk46BtfMP% z1B}V4fN#j&#a_7Bnc+&+N+a?T0-Y4zv}kF+Hvije6!Kt;|n zIum_M&NT*$=+b4`F5O}A=7lG9Rh1a=uuQkZ>L_5EG*ZfON|IhV>>VG*#bEC$ztPm& zWx|e2F{~XH;Wag}ZPF`&8{k&Wm)I9@p}Le$La>l1$VN=U8Qx|w4f|;tc%Eot)n}Oo z*I8f=CUpfoISmf@#Hz5tssLjqP%YMIJ@GJE9JV2yYZ#+U3b}d@g7;CO3Scom~y*1)V)S+Pj_ZdtLT@5%=?y+&2{r zcH*`o{wJfzJ^c;8r$szXWTr+08su{E>>!dr_)@%mPcB?9!@j<&d7cNKe}lQcX$SUNZ_d~cQL!Gx63KTv3i%Z?-qOSA$TKk zyW1hP`?ypvDjUe6Qy8L)h`7$`Vn?GNBVUHK3p#2H7xunx4r8XHITYPe2u<%jlqWrg z5p>z*$8z=3+YE6WPg-6^CbV?3W8#c?CgErC@*0>(GMiq-`hEcgNW2<@U@|IG9lcd zN)UENUm@~i%azi;ih0ow@<1Jg=fU>1z)E`y$t|A$1Rj#Q2L?!rb>j!ow%4d(NbqY; zZ*+ns7+jY8C6;68gn2TAr}n6A--{v6)S0W#U@k>Yi9 zyXDxVTj)`Ccu8m0>an1-Je#g$m{Sj9(B(JgJ7K(y=DMnGv(b6WipA(!va(a^o@(Bl zlC@(Kzy0jL($(8Z9bx_Qb>x@cS2az2{!VRm*j?zQw>H2O zy#6^C4NF~QGPe<=}>WGz)zTU1kebyDBlrlY0HG zZ-OMi<|O`d8g6MOc@EQr)nN3j8Q&Ng!$AC@sJ~`b!j#scgmZ&|jtow5ARV@)!&br< ze$Sxep+VQHJPrmUG1Pl5ovI*=tv*_mi%}dPjG{I1;mE$ufL1ihiZo6H0*m!4P;NIX6UhsL5_mCBphu4T9Sf;!5++R|_rw9Tj;@O?p;`df6ghJd`hJs)GtVdH~%F4wu^ps7S)JCwS!zfn9f0v z_sukmm$AX#O1D$mi~VjURla^0?+JSwdQ&I|bJ>xWv{w~~wolHJ%9D&`cN3n%Ih2i!Jdo{yZ04LCBL54AGB|?2Q_|_`e zHAy_dDGTYg|B<stLT-_tf&_@Lb1LN&SCOUpU`Kq91|Ha@?q$3_S`jAJF2aJ?0jvxF|j8D6lH=;aQPA z?y^=%vFBh)z0H_`{6BC?6;Nv2#vV-HtZ*l5j2xW9vyypCoR38?Q8+k|&60s}T4wcD zc(jGuQkEq}*ud4+<0AA3^Y*xz=j4nmfrY>4_=#+wQZNlU62Bf8NK;gVP;8!PGC~xI zF{&rm6ghxLHWC0`QKQQ~n7y%mc+N&%Ik zc-jUkQLKbADw_z)^oZm?MI}u9188{NgN$U7vdo4op5eT&{RdX(c2*BU5mAecz?4P+6H z>_R}P%%)57QhZt|h)TX@Z3My_ExP=*%nLbfip%a3%sE}f& zdo4oW`9#e{w3?!@P)*5q?WEjk!AtvYEet8;(-@VsDR+dl=-LLSR@MM-+3Rx~l^vy2 zP_>q*c_@ZRvO|h_$MCBnO*a^%owMLw@!^p7_PNp%opAN)ZWc#>Du*pPY zI6>J<-*=mLr?uMP6m>nsxnE#?5z~?4bHJZfLTcZvaB2;ZNO&eIV{EgZBm8|ON#yT9A33RicbRtklZ&10kw9;5G^$|U(JqUXWPmN zN&AeMV4vk2NxPji?%$hfri-{|@OS(nPIfMsxa^N#Xo=C%zQ%FAhs@y?b@Mo~UC7ud zK1}tIWs5Sl*Jn1$cPdp_P06O*f!W)h*|(c#=NF*%w1pSN4~O;}OrclIhLGg%>g_V) zpMql{mZwyKQPkv88qLabyK45q;d`joGyx9iWhPZNjg$7(o5n4Mr^}DvHjvs4(T*d6 zo}nx`$xOOBD-){|;j<)`d?+j)oxpKfbZ|VwRR9V6MlESzBbHEX&>?+Fz}kCmCfCDd zY}IpS=6}w@!JN;5TzoF0u~`r2(wu3~VK}KMPj%wVnE_+~LFRLpumD+Sn{O)Ea5k;t z3)NCr_dX(u<~Vk<(`<;mu^1e4cxOs+EXRd)xY<#8x`t1lB=E_2mSZ~zqb#+-nRDz4_(lqr5`2@{)3-sKIOm_a z?N0C5?%lo4xmMKK2DIhR1_gFe#5r|N6XP6zw9q2W?|Ghc-Xv|o>%G6vwvRN)`|rHx zJm>lUe4hoZ6SP(LL4K0=vX1Kzjq4vlVB>`-nnBZ+6`r;`ldT;wc#q)6lfQ1`lU3)8aF zcNPC;5&1KTgSvKsh_YZivyy;`zkwAzb%ak_q}@~O-p{IbM{YD~rYFg(3MavJci?q+ z6)OF8RKmYJ-kzP-+D)5T*B0X9aDyB6Q}h-t8}Q_VrhjF&&gg`tgP6^sGHhQ;O7&tL zmttu#;-f`gVt9yc`XRE{MS6+otwI5MNLW7)$u`dq!K*$bUsd!Wj^CFx+RVi*ie$|~ zuQ}l{pKtDJmyI%a9e)OMmtTyIYBBs4l#$LJL%KkUf{L}V?;lI4c&sxAc!Rpr*dEG0 zl}ofS(yl8XW!JTt+Cgx%qp$CfzKP7gcHDcoweiPeWw}%4%BI^%q8TAL)FurZEUVor(Yd5xiqFzoi zNq^DVx3o;OY!^BDKBpKMyiv>Mgq@1$_Ey0WejMFQ?!BzzR=tB$2hA>umnMOuVv}v& z+5M;xg?f~ktn;WwZ9GL*wi~qnqFhYK?y8~OhD1t$dFE@{BWbPL-U;~x!Xzypk@EK;u~ znmZQoj``TQH)1jHiMXY-#dc8uT|lD0JAp|Yc#mK?Y?LkA=hdN%tt4okEWU>nufT=C zJXp7>5nCBt^<@LrUI@={u*GOG1ab(0?{-v%BB4_Bv4Md(*YDnQw^ggR2g_#|;KrqJ zW5ojZvm2Dze)r+P1=v=t5R{1!?Hy;cL6QfIYek|A(`MikIw2AnG0%mRMUvQF~-7%Oj?lu)T!E zAA4gOC~ke>q=FvchS;1xQd9+O;NB|iuaZ(Z-p!#W7vhu2s|xBSWnG2-ff-uSM7@4g z^NAw~FXm_Izq$_aW3lfYKar&N^mGC|be7y+L>~>YKmOqawY$O95}+`JNf@*rn~!`) zIQ8s&Z-%Nkvf#ZGoyw68Mm>Yw_;lF*jYj??k;>wcdLyv!bHY`T-blV>o${~*o_#1N zPu#A`;%>xUR?u33P^@WiipP6RZ4>&uZ4x1(O(I0JNrVV$Z2(VbBZP>yNn_AWED|N+ zr}067IO*ykdSY98B6Xe-%@JWWeXZUR<^5o@*tWrqw+YqQ!|S%eYi<)Rk~-{4wGFu3 zHu;*{$Zjd1v|{malIetY5}PRoAWHuE3E|u4A%-2hrRkZfB&7Zs*9b$i*ZZLHj5IHi z7kS5AhgFAlPT$DZ!`NeMaT18%=Sn6f2!2_edX6%UI-xxibT9dpnaoOO?1~lZ+c~n7!%SQo!y4yiFr~h@3y76ALf4Go=Mz9Mf(2& zuT%bY7QO|IxHFY3vn2D`RI78}H{slvsdO%C+R=@cxCIbMB)ogmxOx$8uvp`dJ8%;8ml}&liafhtCPG zuLl_X^zZ>?1_4O=aAMv0EQBHZDs_j=eW(SS$9wo2DL)-?B%yR714;O3`+|t2_HXW+ zL09@Z78%}{DP|wS9KML1-EUeSacL#SHgF_E1M}vdtsH(XLe%am<9LlD9-#5jG zU1z?|LV5Jz!N8>ho*Zkysnrx=#S!cFQ2UyXNYhI(d{7w;#B!_=lXdh+B0OG$a^rRe6yJ;Fan}J93xx>l!6;4m+ z?+Va`k`JW4VRCt8>o*gYwx~I-++v88S14Z%o~h6mFJMVEq1Nt!^~h<926q{QgRmat zH>|n{eu%aN2Pd%m_k5O2vd*X$Qhitm`+D;2;F$%=l;D}`l!*y!jcw^QO{RNuW})P=}d#Pa&3+1>tkH;;dt#d&~l?Bi7VQ;>@F4(O=8X zu%b_n*RAL(I6t0^zU)lA=i@{@>U-1El1~qxfN0U%qF_|xcLzTmA-6!Dvhb`yuve~u ze|kMbMj0OUYNaH$R~1$9RYh8ZHKp0s$DVm##AvIn*x3Asd^b#8?M1<%HK@)h7YBzP z2^2+YZ3%SVShfm9poR!a`l90#kc?_=+GKUUal@C|rv-;fm2ttLt0S)UDc@LQHn@I*Vu5nr0X09tvDf9LxWLAy@Cf%hCHY&fA^R-3Nib~aGrh&}BVA|MXFpTM@kf~JAo~IJfmJCrZ8Xr9O&LBxdxkIJr z52p?5xcw=>Hcu)V0>V?PC&jkSuG=;6tp)=lnuG%zYu7l0v`2VN8FQ$M&3z{$%7L>N z?$ODjb%M~HP;vVBMuTerwDWy)V3$xb*027mr)A~7mrS~_Hz`Q;*nP1R$@m@O0x$U=|DAjgC%_E!-1`$G=mcKg5(JWQH_@ zG0v;||E-aVq%6KI(OTL*Lw#Qzw6X`DNztkY`)6C(&%x?^9M`q0I&Z5oYq3ZU3E+7k3`+4*VhUg6(rHO-!wJ4o$j?19Gc0spp?himV^D@eL~bEAHq zPgupxS8LTKc$bJ}Ve}m!UGv1ig^_Y|L@@*Ddd+!@wwjbpBkO$zsx8KV71McOv(3cn zYMw7#LIa!560bE7DX(}G;f=U8aWlN&DM;l-Z+I%9!R}Kp@N}E zkWe3TVKJj`XJs#_1Iu@%NxRpgQJZRaL$TJ3)vv8sTH(Nw#21OmY(LQMt!uM90u+D= zr_^=^U536#%-s8kMXx;W^*&;x!4jk^lKX672#QETZ9{!*&s%9Rq@Rdx81twKAWjuJ zne12{D!%*DH1-LOHKp_i0S(pH=Fs?z5&t4fc# zPp&VDSUR=mL`CUp^I0oO^U%+6N)(jhB^SY1+;cZPhSj84M;bs!yc7Y{X{;cAF^+FQ z|B-&OU7V8h-6ZF?GxfnKDBHK`84C#DzFiX6;XNthB0Kqfy>0^&s~Tc6UOtgJ+~V}6 zLXJ((q6hkp@W3-hW&A*urBEQ6tpJ5{{6GbM-QHH`T+TXsxCjY=2J9!vv9c}^%#or3O=ZGpucJ=R^|5cfrDuFe=isYC3OY3- zwp-PxF{`Y#l6)b~4U}ozY*3ou*E(XZrZK4!q>XP{h&uo0H{LxPvd9&<+2k9+BhaLB z^~C=ZEyIdBjZ2vp@wR6Z3BkX}!^eG(SDaLmh>nWZqv;iG$u<2~Drr~6uCEjgJw;@jF zk^KB{noq(!A*zONBrH2V)+na28P&~uuyCeK#6~hyf5cKGjESY`JEG!WV-$KcVZO7F zTV#gRQ9Ysw?Fdh#%7*2Ine9n8x97-yo{O=cC%o56VAz9e0!4(vRd3VsRCiX(1?6i{ zJb((h_M$a#*Oh^6tpdABTDmo*4V|u@c2j8^DhkJ9(=P&h112hTK)Dd?jalUj*b_a$ zA^0~M9I6o3EGqkssN#%c^DX(SvYJQD`;`@j{_=`IUgGu)`-6|RKe)6%*31yLM@Y9l zh88GufarHl z)f5aQdf5O=_NqeAPcd0*_Bzw-xw*rErf`q{ zWl&6BAjRak(5a8-zC~UQK37|64IcpIWR(eq6DeO7{Q#7cYf(9|TpOvo7WL|D^J?Jn zH28>%AP#|6r^PXqNPNXZNJhIU7KNpyK7!K5!oqM*>vWPda8B?m6#-jCwR*}J@gz4K zOVEYV$>{+5_f%F3i>yorTgE3V_)+B_Rf&mIZA!f|zeia*>F&(1MdHlaz+Yh zTYC)%L_w~-7-`1A2umC_EcP6dTp$OR3vP ziIV4rWo4n~#VgolwPnQA2A>3{uF)f__e*xz-jV+!=Ww#siySc>U=6leo(1LcS&>N5 z$bHYE0@(zA&4L)xan@e%v!q0pB%D%tOu_s}UUqvd{HHW`6hI}@h%YZpgO$MUL$ng~ zzAuNtub}LcQWm;E_`#N=KBf0Z&?OyZ3h7J9LjP(=14-FN0ZHlWr@-XR4ctX*hnNyy zVx6~T#BA@HLVnQaej?Xz3281zarHpic|a&Tw0aNdtM|a@)sxrAT~`Y0XVHPBmM1a& zQgm?8Q>N+=;||mSV){*obS+?o&;ni>p#`M!By|lSBs75A4a)M=yp$M6%RCrH4M*;` z3G?RuhbZY;(lX*j`Xa!M;{D^!D*Owy4)0pns4tx;JpCwp3^!;(N=C z@-?5MgLs7wfLMgtQQ zcckg@^ZlW^KJrqAFLVz2LUn!QjL=6Yo{*`JP!NIi5pPN#Vd1w#^|ei_MNWaXh!5rO z1xd`|l_L1#1k+E!a0ZT3knfOL-!;$1@}^NnDGNxcsdzEOYq@_v!zG%*DhS4|41UxI+%Ij=PdnhwMnD z)S}Bc+b31U8fxYXzmUpkSGS|exXh+yp~^S`_Y|&6{7J#IS438Vu66L?^6eW<;5Z z%Hm9P!diqAR)2>$<%&u+a`qa@yC5<#6*4#PI`9)f}M z7zH9FsQk}G%|(fJkis{_btEE{25@7>v4hh8XgFlC5GR0wFqMZM#x)horU@>*GsU=o69rW!1}k z)#gSR)?3*`opc}gt~0TXte~J_KZsp zA--yy!5|f93y|1cbth7&efw?cCG8_xNu$tX z$Qm6BkG=_H_`5g96l#?)wJc{$p_WIwJ>Tuj@Tp_&b6`3hr{a#-bH6{4)Dxmd6mB5_ zzk2{4n1FvMY<7x@l-3sU{jQ{_5?)*q-bK}W%1ko9mzh|XZJlt=%YMM=ZI!1SC4J3aXu0QHWzwHl&6WFDvl97RcIh|qMmi* zOg={mj%wNULfRd3d& z!g;pL^KORoKy2lzy|yK4(zxNzR28w(0vA@&h2?aiKE5&6&k)y7OF= z5yxL8*U}-yTPv~q6iFukJ7gimIeQeQOB{hl(P0eyA!|p9NV$L) z(W)9<2e6u(0vwz;^SwE&h|y zYZ_%UilRxmth@B&l>Oq9SWbV}fX@BLvo^>i;46&Glp#wxY1*xlQ*nQ*}Dm=dxk zODbHWkcph1DWFSS`YX)gnAtEy9E2i~N1n7#>_>ecohr7-qxPsutR*Ikx4IjBsID zbpan@k;iF}R_aTkV$hHyiU2n6G$D>#L2StjpQI*fD89m&sn*OkW=K78QQU>F zpDCeoV$x`#f&%6Ad%)kP{0%eqb$R+ao+!(CM8O2Ej6Ja#svR}rxr6!mdt4(o?IGv!gV_p z)Z|AjyC}T{Zb#SiA>Mc5Y5tnpQ={(iEeX7t+DCAk_`ZE4R_TZM_I)yyfxrXJZ)Q%# zsk2VSi8IpTHj~wAj_uh@+rsQRkg>xtt50pV7+Svt!(X8ZIG2X@}o(VbgkbzXa<&oe=!Zh;&;dZ()LXAP^g4$TwHtGxQLWgq!)@-ow z3IW>Kq+cDZ#5ibSUA1%7AtUcclOix%_C6>uo~_|R zkx1@ZV85h){rTF0BGfuyzZ(1bf+7qUhd;*EosP47ql05#Z>(u4iCFS9?5TLYgDlp^(*OTFWzbcyq%;JSrk7lc=$=DQX&I?!<*03BzG z#QJ=|8viODy1qzYuody^i(I?nKQ_qsSmTM@YUH z`9@cd_25$eszTmd``Ns=aonOKvocYQtB-x~BJluc;$F;GY9TQ7h*&0#8=-_a7+sZ>^_*EhuGeJqF+i{8n(A|CzHu`@~P z*y$4lYpEbbKdfN=)=M;*24xxf9WpzGC{A?QBQ^wl8ecd zxYF3n7t%B;Z*CFMkHXe##+LmD1sNz*_Wy)mnvw~h@4AiMG6JSi{8Z(+MU>1bl zbOFSbfI-A5b6*Pr9i(?9=*aHfEg#9I3#cFP4$*j_2Tql36aH0jWWjDs*fzuN+7&6` zk>`FpHejY*TLurH1`77|w*^~A0?zl!1`6tk1`2~C8Yr}$y@A4F^t)E28Ym35Je;sp zu+HP|W76jeEY`iizCI85Ann8j4k;!rqixJq4?j7=ytIRP`51ML6|2LQ$4v0?r{W{< zg~udccubJg<@{u-du(q?Z{8}F7Y81DwQDfRk4oC2L`$=Bspb+xz)U~I9QlE4zj`CO z1Qzy#B@lf#D|=}jzZun}<-v7xaUax??#iy)sojSaNv?qb&xKj!LB0ak+-FcGz{$6} zYaMt^0Q;|b1}YGl!J$|(gi{vp<@-s2dEt7Y5OFY#IYMY*X_60ZqNcJM3+vc@k|y(Z zQPVNeNhmD}w)VUOzJ8LG(inWs8pYOEDcAzu`I-BLYDC+F*@$znDyl969}`NQDoEhk@M^b=XLHu-c!DY;hmWB2^UQ ztlFwZ1j@hJl=Ar%XwA#3Ts`sQ$d}PaQLDNQN*82mvRhMb3EZj9%**$D$1M5QKL4FzqI7k5ZO~tKM$U!k?Sjh7wn?~UP{H4wIC~)gX$-De0h}lPFRobJHgddfm zi$`TunwBc8M1_0JZwFJ|;LrLF^?%kQWJRQ-7Ase41TR7P@gnk;*%fXoY(yb37Q%?- zHe7@STEQiGri44q&#|VrI&W)^lEZf4wJ|JoP|SC^yV?fY ztoTxk{;BXbVbdaAR^u+K;es0A&ntqq{vc_qSCSe0v{U}1o*HJMHO3S*s^akL@~|is zaK33kEb@>Oy#{_bydS^{zRPH{h|{$HGzZXnS}U5*vJwkBZ&B2>EW{zcfPb!3T;;umMjV@EnA@ z)lfcq3JLc;CZwguLEqk%-wNp4>++kGzV(Z5_+Jge>2}Zr(V-r(`7GESNy0{CQd>mK zB_Z*|-h1PWUg?{-5JyMj3f+N)$LD3}0|V80IV?043zqtdfhr>RBsU}ktHcSsP}nJj z+SRE*;d6QBY=fSKfd$^hn1woR3}_dM#j|?j&sRr*b{S(=J(I3WM!aJ(B^3`D;$(iK zjX~oLt_6){Rz{)p8k^?g2ZwjG-8KbZlRx(e>Mm*&%#DM1uU^k|gY-^;cGgJzcGdD! zPUS#VUQS@X*fI4*vlqjT3CtO}iLaswedus%LW7I*O!AhStJU6OcVEl%S~e^R6`n6J z>2R+oYIU5!GJ!J)(g=5$Jar45m+F>^bsB%@JdsS?(w!xjIvzWaiOVqEXc&dd5P$oF zRCw!oJ-qdrA=8P5<`YQTA3T}zp@}3pFEu|liF(t9*t?r`I9Cc$@$syyszg1NwR)Pi z*i_>>z`E^AE5k>cO}y?WCinK1f8g>-%%M40+VyKg3Ljfp&xdF;Ui0Xu$@r02GAY`? zw!Mcf>gqJA9bKrm>J(*xvRx-772J6Y#^V#%LqATnK7KEO{vh3fX3lh=p=~Zs`p@^1 zN%uC{oqF4d?$qNsU5o>ZSI3Acra_1?W#Nl~5I1OF5P(>o=oBSE6iv`uR#U)m#|L`L z>JdQ17g1Z%mNsf6k7Ip2ecsqx#@Bz4_L89uG9m(np;gPU?o<Ae zZOC)E$tk*!^Kz%?KAzcnoPMNv*Vhm(RvdIuqfol7iAiu4e@&dnheUkFIq(XiBiLAI zr4eguP0GE&R?s;ETB`%;_(j|{dSmpT83Y#T|KF&-J91P_nf(404`>89rB&o0d{cj5 zEyiyPfCJt9GfWo=?}Fhe_4z1^R0ya#Ke$#)2;|D2LY<`}?X2QDvwCBJQiA5P>pRhw~2yU`NQF z_UFr<_B#FK@ZS)Nx#T$0Y zfHgNg`u4bp&7;03!a!4l_k!TKxUY(WHh%2}a~#DM>(bJqZ2#RCCqrsRJ9vJWBd8R1 zinhn1z&H2_Obt#HYig=NyqRmVLA;uRGs+^dsS#tO`{DC=72=M6OIvJ-zGI457Gm!+ zeoXXXbDCfp5Z4#p#X(Q|EvJCHEmBe7?&ZhP`L5*iW3f3;ir=*goBR8;I`iG%r`4Iu zy1q~S!uKXhf#T1@1X@_u3Gfm_bW2C`ASvcB5U}42xJDE>vWs=XH{15_zxvg$PQDZU za2&6<()`+}4Ns+!ALCUB;DP;P99p%>|FV(VZBrvNzK4adF`TxE*BPeo!27KJ z8_?J8=n!3`4qACXKKxQ@2*VGi?HiCDd3-;6Dmrt2!rdpjtMv0XR==-_#_CS>9RxJA z`?H^`!7eKsdt)LA(-EC0QVLP7hgq5-nYXltsr1# zjNV>nhAk-|-(cl@kq6!r@r`oqex{XYVdEA|49EE86<5(AFQ%NbPNoiG`b{x!A;@bx z3!!En9CWepqe4cP5MdX@?mr(x{1{VY;eWppgkJSHGYfwmv*M~Lk(eyc_eLl@X zYhX7WEVr=xzeNGvo^3AJl`n?Jw>YN>^;CTt~z}VEsKS>G)NtqyP7Fs<|sJyXXsi2=w!@Nk7 z%b_i@0#8jlM6{)*fnKX}(aG&J04ofD9`=E>dNZG&$m097{Mi^3ZE_Z&1qgJWyW77l zIn)25!R%+=!{ndw%`M=E!n<1YsFa**-ZpHyW^Xq~mhHyAUFuNwnh6NjU`CtsVMp!!NCXN_O*d;!oF$LYV2H;?y&A!2bb|ah0wX3k(PPr&~tDzubXEFipMmU z!OK|aA+gWkoLYX0g?>n1vE5uF3*#~W3kG9+i`awSe8iXuY2vE;yQ zm$3N-3~OT|FS2kCg0>nCzB}s;KgV=k`(=S#bQ=YIIr(N(e4jRu`?W5cf)`etIJSo2 zJObynX$wt!Uwbah9t&f4My=W|>vUOnwS$LJGv`7^<51`0P<*WIr{b7`Ou*IC!Q4ht(0{du!SS7 zXst!3i12~urS-BxnK71jaWr=ho=M8GIS+Z^Z07I*suny8vEv19ae-aCR_|6|5gF6i z*99RS(n+c6VDa5wmiegiCX|9D@3f=?H16JnUF#xk8w~dGqQBAo>9iwqmSVksv9hi& zhejhTGHG=6Rf!>135BUjINF63&{riAxvGS+R3&t&Dxo4(k>-T3tKPO8u;ad*1PO%0 zQha=|739t~Oxl{YlUJD%ytSVehYB_a>3s$l&E)Kr9|SVjsMNwL~3pCl<@Rbf)! zHs)5DSXYJ9&#P$T$sGw4dOY@v;~;)}!3ac>17mMI?#Tww((XYG94r-ImX*k_%QqMH zqAv^f;#}L}1O)7TbseAQ>uJ zDeg9qH6|Crn1++E4~i7Gq!d1=ctpD1-tj;y%lKR3ZWrO*UY?V|$zXrRkHK1Q`>7GN z7@Atczn(}Yu9jUpUc~!dgGZTq9#Tu_(M&4)sURJKOpSfO$*og}Jn5^L8{QYG#$LBWns^D)HQ4#<{U9ah{WpADtR#MH=L5Y%rEN zx{SCZ_G}myVT~m`&{|LxsT!6H0aoWbpCpqMK#5bg7vNhmd!kUVi2o9LY^m002_Ipb z5CB?RX~XWlLfvxK%D)cz*MooKSB%JyzX~xO`%?bRujB}37GH@sPbKvo6E;}W=)^u; z4i-WP7hYu#F3xlKale@&%>`i6kDeLg)v%7Sx7X1O6>9>&7=uN2iMb*^TGAhB&hR5| zwrNvg=8A;+VUMi~B?T1MY76m!+gt5&{zUqE?2;4W1e(LY;RAW438zKgou+e}RIjPy zG2uvoE%8@8p$gGK>fr4+?Z&UIHrFowJlBx~V_i!u>Y#_9R_uuYA@VcOBcca`gO)Y# zu+Cl23w3tq-G3tX`5@`)2U@3TYv5K$A@1keNJr1FaPM#V7#r^-X1WfDIRDezsfgs@ z`=p>BB5o}bhwZt?a^;reuY1(KV!opc2Fg0tV$5YuM)&4gDf_X=p@}jbUDz=q^%}T( zv-aSD*(^LQ$(E&9+EJ#CEKl4K9OgOfyj0G0qx8e|XmMBmP(tdU1?O2MSu_Jo-IMr2%| zlK3ek(jXoo_7wb){DeFfEW~1qA!{@*LvE)wTYzNH!2=2^*t2G-|2kM#jb-B?rq%{7 z0Q1Ma*1|SXxYE8M`d3r-O}6ln0E=Up6;SGqKuh?D(p-&oMd|eQ#1;61o%AxhZlV+u z2v|XE9q?>wZ(K-B*JFcOfM=G=XWF$IA3?k0b20o07NGH1;6LL{*vzP=n0S<3c{1)3 zFXGFGmtvt04U&m_kllD-@_*uWHnB|y^xvCpWHGfkn~!&ia9ibVnpYM>-K{^>YJ@NYjY2!3<~tSgcZzF?kiSL8Trl) z!9;~VPx0>>Go?fOI9-Mi!q%xYut^}jng&IjgCNp8@6~%t? zOB@sZ<}qswhvj0OTjq(Ufr|YSJ@}HL@PJYjJ`gCZ@W2^jOlLnUr@{j-@&+l?rC#Gfy@2jfxs2y zNJh&8U+4X;IB^yH(*Xo*vL30CqYIHD%Lq=>k}lEU)K zl*#2T(%o(4a|2W1U5$zJ{m%!9KoV2@z~2%RFrpXTLsIDA+u4Gt)y|6I-tqGqOUm92 z|9BR0mztn^GYfwU@y#o2NJ2LYsPhtSE~w~B%~BjJ#ZOl z)6v1gkD-QqpKBK^7TSgy>aEfC>A})5paG_a0p zECH$Guj5>}Ust9e{|oPGtzW2Bd$9!Q^}yeW4Z=z8YG7EE$d|6x7F%gqw;myL-=QtG z#GZi9?OANu4;%qVqsTg|NCbW!d*MW={;mre{ zJP+7|y`aL@VujmilQ?B!I6pj-OyrP+Bp7@R17)P1KKANqVJ_$3#y+a{6jPbn(+Gin znJuk0kG|u9IGEYJaSNQX4NX;P1fAY;A{oCL4Ion6#+?{h2C5DgGW9(}stQzBdI}9G z&U?58l%7w|Dvwe|$ENv1LJXf(F5w0!g9%l>D_f4Hg;RkLP8f9>A)r3|zYC~R7G5^RP>*kF4hCR^2*wS`t*gPB+c{uQh4^$XI-+mC+3V6T-gXnVv=T(@uPF5~tT|EP@cmmg@Xyk(F zCk5Yk1a3oJ*bj2+!sI{FSK*Sm9s0k_QYa z2R@YsUPWJZzZeZ%TMGL(6g8$@A9T`G;Wi4kxQzzUMAc57eCc1;>jA%eB6%TfhObEX zbtH9IXDTmzoupsv;q9kkHL=O2GFMw^?loNtMj4nfvtV1|hVYi!r(!z-dsd__%g8!S z7qposR=9^+-sv?>Bu05Z3$L6^9`Z)kUF85~ps&)Yna_(=+D`h&T66CGxLBgaLFnfb zDV$Yh4mM+ER?%d7@sf5A)kgi+inURAokSCOPIR>TH*0!TTs^KMakIFtHdy*#U@j^M zB={(P^WVVn@e2|L5J-7tU=k%9dWzKMQg~#}Fnacs8(3F`+5gMsSg2AS$iXh=%6Tbj z^o~23)b9W$)b;4GQ}l$1`C6Sk?f0vJcm95Yh!hCL_I=z?S<^?37l}GvJBjvEk^51K z<6r20l;Zg3%Pfm*{wV$xcljyayLyZkt^0JJxRd?2y(>-{4MS*?_EclpH&KIa1&eReQ z8%ZPahwOJMs1vWur)t~@(NbA3^f0%DW+dz6oHR#K7-2pB%#Z{G)3t0 z#VPyZB*=c$<&&Vx!+vcMu>!c`qp&wh4QIJw(~kem4X;SuaErL18*X?d-cZ;-{Ofc( z>&V-=M&8a-q2KOaF4wDv?tHVf^j=&Ywk^B5~JH|Sn$fMag1os9TW-8t6 zAj;EfPxuI3_PV|j;Ul9K0>LF%7}E$Sd!DK#*5Q*^TeNjne%v(>oc|!58L;yGp!&Lw zsOw6xm+`|pV5Eh?uRIu-rL8GaTT5kg!iS@Ln0b#g?`y_A{1`vPcPFy=Fn_K5f!|!G zWVv>gmptoLviR=udCyc~B7ris4QnmEiHZ6kT?4M9>j)o;I|$a=iRPDMtctaQcJp0t zgNoHh{n{1syq1h9D=#vhwXFOdL&~|78P}k@uD$zHvNDcks0br9i~mp9>B|M|G)$qD zH(Rv^8L8OKYfZwh#rt9u$iG?fyQm(c(es^S0F)nf6sP{3_!abuP0XzL|%;u8BdPD-U6( zy)Mj|_ZkZ$CKnKsmwc+Eq4J}ffyTCnkF?fYk2)P~T$yQUEF zPy*Mi-B@Nb>r`$(S?xyyzl%rC5L$IHa?G^*{)5S>c&rRs*5^ou*o^kJfWKRUZ5j~z z?h&9lI38JoNMT@b=L#fy%(m*7k|PXYP%7Ie1&0uCY$^7WP#AeFv7v+|vJ@{|YSSib zbIZt({Pj4IF{2Mj$s4G^{Fztb_auVk4{S4u-CUEHTt)Hhbr#l1s2FP0R{jW@UdpWU zHGw%Jx5#y_9P~ebOcdQ#K||$Bq>&nyKB_m!rz&C@N@Rp z^pzCNslh!K|7Y#7AL-EUGMeFxz5CUSNFCZdWfh+rt^3zz$~kfR`AP?Gw#4(3=}xMO zh40X^$70wcwxT#fCd}*Uy)_N@7AkPCD}Yt4#y)xFk0^zNGFKe9YQ)O0&}n3aM+oVx zB97VcT9pmgQ!6oxU@8l}a?V9MPSd>Xh*%`PgLO_04iyEk;;lq&b{dphML2X+`1h); zvxR?e8fl0kM7j(CQ`%)gY|+1bn#9(W%lQc~cUPoFg`Qb`C-%0%-1deCSQyn7*FgMM zR1#8A<1gVwGHM)mj-@H4zV$iuwCj6am%~CW`f5TvspKuL?k0=x1$2aK5iW_8PUBuL# z=ZvYBF8ks!_0N=Z#MGrNjC^0%!v`tJTE=XDcPL3ZgPS;P-%v7{xG^OfuN*5HpQ0EO zt=WHmrq`dmoBA~AwEn5#3?YnMcVX=T64HEo^j#Alj+8GW$yett(C6iN?8pC|6kq^VG-}ElR}G8J6x*q?NjdbYp~dd2)aXmRQ%y=;hmiK zf$p93%5YmLx($@+!b8b6J(EZ#rI!*91U?{-7@Y2|wx@M~kKTvdr2LhqdQ<*NJRFPl z5~nR}zuoC*dnfds@LWC**O2FuOqLCg#ji_HfiEUmjMh>kX9qu;Z#*~GJ9x*ZNr8V< zI~M=w^AL|DD3XLo`aJw2m%u*?4=5A)8p~)5q=MMy#k5Zq9Rukc`&7YwTDOY!=^b*P zR?B@_?WCN6YMZW7Vm|RPsb>6iA9ljzPuSU?BM|!W*tZpd4f}sTQpCWCMwQP}% zg&&0P@n0r%_VjP@ObDgLX2V$^l%6?5Yd%R(s$`#`>cOO_jh`glEOz?chfEzgMJgI> zrEtd!e@!N->37Dilsm8p84}v_BGQM+sA3*<2aj~_Oiwv?zI|dq2RHQ4%_vxDF@G+%Rf!V`vglVa<`G=X0E%9956valR_r+3oFPy;>K{LEZCB- zECv|50>-xSucwj*Lo|_n@}T-xqu|Ci%~L>cSLdt^AHa~8a?!c0X7_$kxr)kY0+mPo zu+L8(hFS~&NF9+fIReXq3-e9dZRYkVp#x|&a5#ydWSz&6Z?`|^YN#Jh2KW9YIN)#` zYMaM8J6zO;3GXb5ZlT(q#ZP-H{1f}fe~_0}lmazd zf;HnN@m}9f2{uEs^)`t{s2KhzP}IYn?{+w8QV$50@e|v6i)9Sh%c9(i|C&EV}>iM zBqLUkNqiH}MR@o83JDK%ZAo;%2@)pCMjV~v`**|tGROD3%ZY}HQ)H8uBAcmcnix8V zVS-y)x#yok5v9^Pp^&YzYz$3Qrfn1C^W=8d)4w}Cw9}ll)AY>WpLwKxvV#8o1`$r_ zIS6OVbzhut8t?dmg!5m$BlCXQZq#1U@Gp1T)^R@~}R=tbKg> zqgY<4xLpI~4`OY%AQ&02#6%~_ZOQw;M3bK$q#UabK$2&U1mD3fxJ z=ELv$jA+%Sfmh6dn?*$%Hur1h0?*2-mKs_SAl4eGHMx>HGMj6F>e&!(8_Pu}(S83o zOix4afGxKVF%jWsYniL%wM6+=hk`B~Q=jNE)?gFk6CA{xyPxmQ?TsgfiO-nh?;`6< zJq*h>bFmi83}d#$UxkB_&Qa@AOlx!7#=fuY$wR!S5O%txE}T7jJ`QHxjVPDgOwQK1 z+9Er=tTj9UrxWU=}%VtVmrlWP}d5YYP~t^gquiAvhTXGDo}ZXK0q+j65- zY9D4TSj&oA_9Z5bcplycv1IdoP76*y=?orJC(RU1F2DyU-_a1t0j3>2F6OgLd*=8B zSox&XcovG14!c|jYib?LunzkY(?^acbz^>lUII;S8&0wqS&@K(PK^x1{0QFMT8|$h zE3ve3R|bXxOrx1Fd#38+;k~gg(diMDXKU{M++KbZVg0be5gukKo8Pi4k*|*jZkG%6 zlkHwR<@if)z90%)J}h9qpx8p7-g|J6t0Fa}@P5RU zQ}c!8&{n=ztA9`2nI`SIGjw+|^*@^mH_sMhF66J}w>S&nKTAG5Jl{+GS!|VRZw=Ua z@TqJHaJ-?GUr@Cz-2W(Wi55D^sVyr;fXqkX)``3{5o#H`F0=j|>x4{tIqbbV^9;n1 zzh+j4viM>3un2suzQ~o_Muiq{(etYL>+GrinfpI>?*iaUjG~a6l z+A2^7*Q>4AF8mDxC120Qq}8y+G61LmbDuP1sFHgxUIJu zw5mdEUE*sq(NmRL?WqY_JKg(OM|qNLZq%qI zkqbL}UhZ|B=YPu%x+*POuVo?BOSAwOv8@(9 zsJ?TpAB`?7Im_*1UHf2wZ_mJ;;ND3lrxky=$i0(=$wbb=?8h9;eiFJ6rX9O>#U{X8 zXg8SAWrtI(84<@K2lGcqoc8{Usnc2oMOh>FAs%hGUtt5=3;fSJ4E}C2!n>W)CIQ#K zMH5)hhB4mu*oQl?M}XpHU9W-sAzYh-?^n1F1wK)uC2i)kW5Wgnzdg3+W!(>1022SQ z?P;01Iig&I{8)YOGwlY8t0(B*9GE;%kz)>6wCl{h9-GMY=O2A-N8}zuWI*i|lW{5&Gd9Dg`4y9xx&_PaCgE-!?rE!->^g$U8_LE4*6ppp&@8oC z-c0?SEoF@s7AeU_NFLHC;HT_bo0P|^Z7e)Kn=GS3ccq<$hp6QSd?WmMqyZLwF12I} zEwZFdxgnF@i@p%O_Yl3ict8A|oVa8Zy-%05zSCu`?|Z3QU%nk|*0&Nlu(jXHAbfN! zHq^!rZs&iYP3E!te=TIA zle9i~PiumW8ozwciQ+xu@SfV_#D~H84+a)+G*z3N&d?F%8m-bU+DfM0A6TrrWurZC z9*k}u>+)6C_{$avuIp5o$NhTCn+cSHro#dyuJ<-*lv zr8$Ei@uJU2HL+mHWuREYCda7EDLGh`8Mv6L_X)%(cH&;ba>f48ms0w+BZ1yj(5=C8 zIYxTAIkq=_l1%D0Xba7lM-K9jb#A#<OnyEiO9tB>y*b-au3~;i=R-p2!16AY90duJ5Hx+^TiTT=Mj6E+j zwRxTSv8rdNa5g`5Kshf2hERFsZx%eWU_;h36~Up(R!hQyom+oXp_mN)Jjz~5Kj{HhaW?sj>B>&NTjxT9J;a5qS`Yy#D0GJ3?|_L! z4W}3;g_u+&{;30+1X7{;-y+tz&?*(Ca&4ViS3p{C(y-;gLL}LOhz-?1P!kT7s8L5+ zM{zIxBrr#tKKpAHZIx+uz?%D305-s?k2b!aJc+IBhK*{I)0Wn^)M#-{V0So4`725V zLiWM6tqay#si+xvZ*b~j? z^h7Lwq;*s_BGh!TW=3~#D#A;dk>vdU8=6d5TLtC}?hR|~wL4BwM01aU@T}oCTm7Ae zTF?Y} z#=P;bG=kGcKS*`ZGhSz1JJeI2z*N?G^FQ<{AQFd3Pt3&|!()O*{K`W8pm=S>K62<3 z+_IyqrtmNN&D&bUbx9b;=FJtrkK8_#!E>?f(5x>fmVbnixGk+%Cj~TgpHJnIBVo%wUf#47`W_Yk!|-vWTpkC}+A5Cd*@o*#RzCa_~W#lji&vvCGP;;MAy`(#!|MH`-u)a7_g_Kd~-mVm=-2(b6 z)NPW!FKg_9nomWq8AO7r!DjU~Kd-?qaTa_A+&BUZjdh7UcaNrbLxF?7`i46VcP8&l zB5Xo$ZOl6j(E+izV~B;YxQ+Lz>oC9eaw6~obfRGkkW{c?oG~NVFah4SR={=%+`)PQ z2?bv=0}SGTQvwmD5#TH=)JLoYZ$cnrzrhh4J&7$woG15F!0GB)d$kS7iygE2Fh>O} zu@+}-?kRWy7AiA}1WkfhzTH4|e4$lF!Jg!+M-=BB*i6ocjU?_g;>*{@d{ariE`oQb z7|ANrtYIy8He5n==8Cf^_ZX!m3I@6*O15$d3;zcWbCxmlr7-9u5Ge&Sou}vb=EeS2 z^=UHx08+_=5)tje5r}A6GXL!^9TDxObTV#wZsh~uhh_ZG7oTBedU|FPd3bf|6h0X5 z$BdUALS0O^XIU>0$f)8W{(Y+S)^mtnkegs+0>Y<*pf$WWL^YO;k}o%rKVuip7j^RT z@l*W7=8^w{NiW1WcZ1O&;Gsy?qKnE7Vxk5Zn!3Z>O?W@MU&cS9t|xpow8!T~%I}GO zV4@@>uiH7BGXLF<*)2|wyM=0IYNkio529soGVlEoUe?Qg@T%jF!M_=q7k&)=oq6F` zb%$k9;FtW=tfT5FiFU|O&BH+4v3WkAw}qgMjIQ#Ok)H>yk|qe7u(9VLkc`qltWAv&mz8WC))+WOkq zrBhNngr2`mW<9|32Xp(h^=20CKTXK2^lryT-o@BZ-w>k|MRAMxQ*f^P5!wXn-H*^F z2nf1^P4EcO+a;$nF=VM~epHDK3qLRFhk%Jw5{ZTQ;gTgMlH0}$_72)y88W}{zu^k* z9EntR^kg!L9>ne;aspZPUH9FQyADw!35sw?-*vB@Yu7c5*>x=R^&uSx)voV8n|MAp zOBk^a<5$ADu?_AM$;5;a^qqmH_O^k{)f(LmTG|OJ_Wc>ktAJ+q!_M==YgM3iP{2Ap z)`+b~!xkdtS|do_gFbSDmI%|kG~zv2KxWVD54Izo z3#JOz4%4(5}ii;M11W`3G=JVFnRUSkll#lE_jb?*{TgfA2t2s4nsu5K^n zZ?UKL+M_X(dmjmj>4(8S+_Cy^2@C5!#*ZS-Ae;|69FMAp4XZB}kbyfS|2n2_&jU{M z)Lz63lsAa-*H^!Q+K8QXU{;1)J!*1@J<+ob@klNi#Bx;^_6luMlV4*`M7uFEc1a)nP=}gk z#5*5J&kKLio8U9}lV8};|zxi;2Cm-~gN|Q{PvBv&mD&;6xc^{>HR2WA!7}3@_wAJM8f(!c5&Q)eoUFSl|IH_}%#i>iM0B>aRg2xL%=uD}{T9<6ylUow?9 zI9xpgl~@1lGHuhYaWPS>tj>?!hCUr$;VyZ~DL zBmDiiZ;S*g2d|&Vqu#;PJA8qwrwr4zI%-k-nY|g~U-7Nk(n8ZGD|3A6x*`MHG?;}j zZ&y14UnZhlRf<}hwh*&ou^C*6UX2PXxL6PKZ1adhGn+nNiFK|cvikU7X7%wKdi8Pc zTe)?VZI&^DaI)2kYtrpoJG?|4ymrmUiESqjq5X35H8ksH4I(o1tdj)x3!icaw;}NE z%lL5S-7DS11$+r?D;j+f3hO|Dx(?H^UKq{pHnT1twwef-Ts;XBCA`7aZPk-lcV%(J z6a>EhD4C|+_gsFGoXr?pj(CkmKd(k7s+EPBgj=;ZvWl`B)pd<9gKtU~Oy;f`=(ZTf z^mD3Qj`XS3m3~6Hgx9%JW{^k~At*oMvmz?Baq&|7QY4TSNe&U+HIlawC+tT3M&5)OlaIar&-}yFLQy&xR?*2B2lD8~xNH z&dfT#hE51%%!1iy)nHK5B(v_FtoxAPy??zWQsHvc>y9#sI4|5iKn7q&4ot1ke}xJkbKl;uOToc zoJ23CEs1%U2Uz%(K@v*K31Jo0+&~^br7QKZs>@G|&KKDD(NAFpbZ4*S-$yxneWWk{ z2*rRA2oabo$B9~H(Uw@yub^$PpEk7h13A zcvA!uWic8kA%s6cH;ah#WH^1ZwgBz?Qrz39)Nd7gALdIlVCk(g6P;Lyae4?X)MUV# z3|Nu@bIch7LY@Zv`y&e+R_L%D59~Rfl+m)mfJ49d_{fW2J45I2LDnT&njm0w_yDKU z{mN|8mu&`R0Tu`HQ_;7xfGtWdU2Q~knZmzF9JR4UMdYo^kOZatc>IGb!TJ0;d~VmV zi0OAU{Uh%6ro7i?y4UcW6Qa2(5XEvoN`6%c8KM=k7rf5f;SP~dC?w1tZ#otykJ}@5 zkJj-7^>Nwq#4}<(z4^6BpGEl?+W^Mc3<_1~349aQy^nSGBWIfuS?hAYwjQjkzQniX z{UVhv_s*7^B9$}UJJ-*wPAnP8&NoNa&V)15Hcd z1c+F$N|ERaR@PuAjjfv2kOZhuv{H2VW9l-mbBb^xKP;u?B+%1C5PxjW&E31ZxjVm~ zySs~bUaIJ%1=sRpL%+KsiUlL!L_`r{8c2>sExi+_0yWgflA73Go zhC$6-ug!Bv+iUT)Oa#h6da1Rsjd8p|!sb22B+SK%i;7r(%iU;gIp}qb(3qAgJ)>v| zDstfYmi(U4mUzimyWbNf5&e@(wdTog_4M>>ogO0G)7LpXy@jttCP|%hK}Jf$G5=&o zq@ZWC74IuOj`@)t(6q&Ezp@CF1FG%I^6>>OOI%Njphb#JXIR})wp4tS{k-m5jlBW) ztbf_`quxM;xLH1#KPq*UPXZS7m*ohl-sMAe&Z>C*F66!nY4piZY*D&>x#x9!e15Sv zFLFv-Yu5_65Jrugv3&zelE5j-KtaSSUWZG+2%~6SJ)f?ilI2bC*6}eeD zP*lPXgRx%FC38d1(%~|*bhxs!bm$N1Svp*1qh&dbvd(h+S>Mp(wRl-qyP*Y`J&HMn z3cB8+SUKcP9*$nOY6~lRZEbkd=k1Lg7u=9P9)NptC4&3Iy#eA6r7g&l0|58glrB!V zLC{tv+@pr!YoAtm5JLMWf_zkYha|RJ@X3a7-#$Tnt3f@|I2*1Y3EolZ0l^6| zkJ8rFpOeh=C&3St^SNqp#cSrltl+<*lrw_VU%~M)g&~|KcOm=<-EqeiYW*+H#20c6 z0B^T+Eh2Htlp*K(3LYP|*4li~W|61qCSUN;g~y@A3#)dTrRk2d6;rNfd$7CTf0e^3 zyYyh;*4rwFw7I3ab1hugsnt4#hVAeUN}Ep(vF?ZsqgN)CUDijS~s(%x6!56FnuT;mS*jd6jV~g zo#*sBD<^>-btmAs5RY11uNPX9U?uU))BH@?!9Ho(A^Lp1Pulf{l`h^3OE{)1)FG?&FnTUI-Mu3>Sghv>fc$Io+o#v(IU?qFfaZ5VeeHj0ev=q2RB8*|>b|yj z)1Rc%ZF`Z)>}e}3VhbUp)~kJq|3V+VC|xE+f#$UbN@Iv_C435oTrZ?2-(wch`ya!n zaF=h>8%6B0x?i{cjG<@M-MX=uE1Z^CGE%JJUup0U4F=_3^kk7mTjNATG zG>=wmJ9XsL!Rds$h<7b1?4ga1B3B6gzJ4lkGQ_!@nofAdb4u;O6P}*JAv|+r6be{6 z!V4nLFuj7KNIuv$xONvy$_e^CzQ7t*rMTm(@y3UU+w?y)&T}-0d?U=#AX>AKdJtKc zYHO5ksNQPW$4F?KO0;>XZ&lg$4%A;#^jZCO$2?~{%{&>^HC<9?h?b#YCgwT=b_I-~ zMCx2ccNfis-@uFmFrp#)i6jhZ6W4!3lzqI7#k7zsOux+zS1)okJJv6!8E1+|R*E__=36K7b%R3)EB{l^ZsAd7H`w!Xq!|M(d;cU+f_Bt)L$^}p#S zj7d!Pi-N%|R^IW6eAXuZ=W!9sBW;4=lQXQuyLe{|CvNDvc_rDZR# z&;1qZpjQ7927{FNQ$%|p#+aD4l*aSInfUs2AZ2Z`NtNlQ!qJ?9G|~e_mFwIA^+Nt=9;dx>Uf|7u0LK&Y0?C zp@B-gc_B^p+u8D~Uc|9XFXC95Tf`ABrS8hv|E%eqwQAzuRnsxIYNGioon6HXsR%B> zuP~`e-YPVFZqqRo&SC5r%3_HKoqPdOYqAo@b)V-bqyCf^l?@gsy)Y7#o8u>3YL^zh zhD4=GuVVr96URl?J-j4sIVNf~m#9S;jXIxb#R?)&bw$#a-{pgx)fFXwoj*JSkALON zVRxG_fA4d@8wsY6JWJsK*m!PjqZq0phXSchI`F7&4EiS^5OWkc-3e{7m1!w+Tlpme*q)VaPa>|I;Fa)#1d z(DvtnwAB)K{nBE|fnwPuT$|@(l+(2p70E~V)n_u^oJS-D+;J{g@#>r=e5LLNgT=Wt zAaDgLbYD(3(?N(wWLXIhHZfxoA-_KAguut!BbSPC=-!-2{h_aV_XSLjirFD+MMYR$ zTh3S}Sf^eq(=7yOX$plG3l?p$R=Nxx>MsEqL?hCG7Txr-Qv)| zRFiIXieF=&4v8R1UGD3x6>6Z`QWHI(#fVE=j0#6%VSS1e=s&Bk8!WI6PktSqYKE1x zMa-!7M2SA2hj>6a*+FO^_aLr*1&V0UQF}(0iVgVtr+*0kr0Ca%L~xV|gUJO(vFhZ5 zW}xw&oC>)!5X(9u9_ozpVToqN*@Wf3W398j**!)bW}K$Ks?|;@2EAy<((zZ^G+tD! z==WXZlfObzz)VYImbSvZ(@Gsp8)_TEXQV`%qOGuLt8LRxc}{5+)86#FSvVv`A7Qei zRjIFP4L0pE?W@p3I;RamBAE87=l6&Prsrk1qwuu|c<2e?>LnA_UjW9Fu3YPh*J~gK zaLJ^W#w>b7>vCD6+j$waQuwOc*Fn>WOp!X5(>p6%%}%%{hVMczx@%dUY%p057d3tFYQ2RZt4p(D1pQ5RqFc8`H%D&!P!uFX z?Z{eowra5IG7)Wr7DTA`n1V4)wo`{8B%M0QR>AvS@!%w=ZP+m-N5$43C?ba2ibj^v zng2{{Dbp5~tNW%y&o}_D*usNS3|i6Y3mnrQv=_c2MW1HecTHKWOMMGxSgz7;t?(K9 zs|+B;skcwid+j=B?C|RGao2S)JT7+O{%X1(QU|xI9Y7c99ElWaSHLpM5 z*dQ;ZZ3{W$BHx}f(f^mHY?wESWZG=TYzP!_uPP zr+A*~TPcV2b!s-l580F+sM%aJg18U*E0^>Tqa&^P zVPDkb_HpbQaVOOFv?&hlMu&C{Lh%}&E`1K_wVlO0)l$=@q= zK3FVuUOxqbUw|%H0`$|xOkCU^)~+vu;aQuAk_)grHM*B`1&Pk6H>8#9Bfhe5v3Z!#5qAj6)aowa04n;0T ztoEsR<@dG5|FTi5XijS?)m-1BFK8(I(oi~8t+hD9FQwDr>ZUSzR+vEOOWG=%`das& zZ5_+58r%LP_pL?j+5-^Som%Bf>a+YhA%Up-XJTC2^l_=1*#;Y?N8YvwZ_xjTKCRaH zW}Y1Fqa(55SF}01K|wPfVY{?C0sy;mdW_+wPR(x??yQ@+(%~|<+wl2>zvpRnP%rr` zbYq85ANrv5)Idph(&qh){VylKruM4)guiFE+TDFxl!zX1s{54RTUN~2!P>4@gzLN7 zqwFqH_ef72n|kOIZy&poO+KKWUhx6fPjx777liYlt!0f@&+m{gjCp_vG_-E;$ncE} z#g6Ln-v2&^kWH|PIYs9aoe?l7o?1R6c@{aU>2oh>>Z6E8<=3t~N!CLa?&; z@+0@2^C^2&s;d}7gwVu>*Bnpu#Q%?X+gKL$H`bY=!Tb} z6^p3dhhu`5FJ?@FefB^QzVK*SYPH`v`}%uD#qM zPh>=U)9eLY`nMWDG)jb5EOYw`uXpJ}euLWNMzgcRYEv;T0(8M0`RRf)=+S2x;Wm_j zTDI~MBA?)@!s@GBdp>;1?`~|h%I(^C?K+$Cu2qWOhD?(Y;mc^AoJq#X(MK&`n*5$U zSJWk7zbESnN%?Nx2pNSQN!)O*$T@ox=G~NYf*R=r_2`h0h!>h?DChi0(ULqJkItO% zDMz#53<*y?ag1&)V_&~eDQ^L%I9ZK7Tjhu^u+qI{;#?hNk4j`(aC{GNJBFy#se{wt zh_RZkm!CQ^?TAXG0M71>Pg~XfQViZ~PjA5VqF;ib5wI}`ciNVc+@kD7<1TfP`$~Y0 ze7SKl!`clFIM2o&hn@gF*IV*M){Bt$bt%>cFHl%^`vY_A@~G$Z+9$5UZoN699sOu8 zqvw-@`7HCGSDXG=zi*VCh8DR(^SO*yj5BsV9(Uq2PlOJ0koM;pD=zXRWs?ZA`jl~K zqk9?Non;X}Zcy;zs*3r>%}l}-t>mTHQF($l{{Q zW4g)T=9w6;LC1KZVHj`U=h-QP`!RMSa1!yajA89MhBe!5&J(yWE;8;ol;?F^Si=!$ zCN6ZzlXU>b8P_u$io^&GLRPT1oCPzwMqoxMI{owESaCev5eQA%0Czv)QPNXk=u%%* zhn@!$kRzYLJ~k*l_4|_Uk8K(A)vM~M6@N;yqQ{JzJBb>0BjV<6g{tjY)W_R1;jeGg z3Ok>?5-qb}Sih%BrP!s`EGqqFE6zfY&{42lQs8BvErP{@y?2wN2;r(nx`(FfwmY`h z9ntNPrM?0&AHOe`(u16?*O;gjZ}>2*JctY~3lE}s z`t8*3Cm&Wmvnq$v*1qp51BKz2ituv}t%-M+wCEtsj_1`mDD4dB&f1`9B$7!xSIm0i z)KJ`CV3l?rL=By=_sF`*Ucm?ge3}>17x01WX8Tfg@j6d62ZkKu-)6__rs6wIuelio z{_1BOG~JSqr6#HeFQI!m{>$)NfvXj0o6BdFQH+5$JN2#jDjLl}Y3G4330V_`dtOku z=S_;Q8lS3;-|z7rY4*hLpGrfV;!Ax=cgu5Rdkr2)O`NfhBOtbK9{)2v+NVeK5mr~Z z^pOJ}=5J;;*2=!q>@syEZu8KWN$h(OB1uJ$5wp3~!NfO@F>dkE<<@uE71%{5>gl|& zG*@-r+I#9Xtd^&~FPCuvVH-d?4_(;BW91M^juW@e`O1X^ z|12k?MY!)GM4SfF$0(v!7#`>~&5&)Yg={OuSQVU6*>ojmiYla`ETJHD7NJ1TBb_=1 zuiacZVCDHEbgYiVx5qK#?nqUfrAWx63{w4HR?CQBWR|+6=+$YimQivR_D9fy#8wM2 zKdUN8e)9IP1W}s90d-q+)vP0NaiNeSxIHFXkS9XAJTWP(ttuvDF*B?!D&x?~McB<% z#dUOEXTlpkz6AJ-PX7@E=l0sZgNe57wa|e?eama@>H%#b(B6%N_HN9ZaS+=KAuaBA zj{0tf5@bN{&QG#H&x9lTH&cfe&)(#f#GmUL)$??X>cn9h)k}0m>GWLb;~!C!GAH!v z2x;S&rlNGLNP0?`{G&73iqh}X{Y3LnU-}F4%N#M(FIPUuxSJPdJzYrkvVfpRTU(;t zUtHZ{i(IK)MR=={#xhgtTv4j6w|Nfd@GD_&Ws_V`=iSx(X{x}}MYL#5VNb2g%3Blv z`oJx>-n{z@*1v-D=Rp0b??UGq+J(7J4Uq_cSG^b(x7Jo(vd-Zhk`@l}LrOYN+Kg~K z{)Rfrsq(Dxf}wv;m|5%rPBt|p#gE{I-Z3>DcWl=hJ8YWI3FbWRbIEy{h1N!j{fCuZ z0+B({?VVpD#SlfI_Of+u=XIr6x>|t_j%g9jWgfRxur~@F({QybAjQJyYjH`3BafcA z!ZBNlH3|)FnO49_ndEj5h2q49Z*bOqmwG(0>KmNS$Q3;d6}$Y+XqWsAkqK!iwQ6HYo7<#A45VO`1ET^rne9BM@Dx4j^2n@Sw`>xv??ar9-chc#*}< z@$4X--H9<{HwbuX2459#f8WabO9*OlU%e`ntr$<-XHx~EvJDD31eDx~q0#4U_~hg0 zIcn6}sgdP6SVl;hX@-IqI+0wSse9YWKSHloxrl z76uULQ~a8vU5foD#L`-K|I0QhwylV@qsReahxa~$xWJ*+YxAITc1zo@b0X;D zY||>;B}EtJv+5gS+MR5>0QJ0$ugU~s@*GtU=~d`=>&~(LyJ)@N)T_`RQ(vDB|NrCD z>)qvr-Lj+!Z`IP|BOGDFnP8T=E8>-pu){8r3nA03GlFavrL9*#EPo}rNpLi!)Srkw zEmV3PsUn8=^)98?rd_SS^ftX9#hQe9GsLxk=L@i_B)nRxZ5BFdJ%Vbpp_qm?8h<@e zH;+3@SIt=lrRV`GGephw&Wo0u3<=0gLU)ln0U-yhFruFUmaNcz+M?T?pZR&3bvlY@ zswQ6l43rW+LmCw4cX_GS;8tIq4g)k6t)%b`&SCFLU5MWcIgTn)h${E}-5Vkv;I7zS z$-f7zv))}Iz+FZD3;INK>13HQ3B4{Y zA6ZbN;Ao{H@k=I&pjQm!lbVpjZ<=eL5;xt%IE3lUDcX z2d|euUwxYo-hlcd%Tpq?#N1vz%9dWeM{lA*|7_%@#O@b+-{S0TsA!Iu?U~+QDPEcn zT!tVz_@(vbF&Zqm^vWa8r^zYU+7>*%sX>_(+t8hCM9+KkYy)+$0v?c(5v zydgqM4}#9^^p$#%$5nJYNme1|)waNejE;0}#v1EXCUj4hRkyYDJv8E*X(=)=pElz~q z>;-5xB@QQdnkvu)5FmaFrAXXiwf2I3!KOf#tde55q|x7Fk*}s3%V(oR1re7k8lQKv zQ}Z{HPoRN{Ao|_9)%%tdFGJ@gJA$4r?`60f`AhQLGptpCY`T2*vge)8KuLd(d?A8D zgc7Q7JY4{>6fVY5t!jS*Sz8mk}ys(lYTS%{q8?q{qt&qihhBJR{A<96=($J^1p zQdG{NApp6z z!qO0L`{A*^v~JCgw^bbHFWZK3159ycj}fGekaA8JmU!f5_L-<;w&q1{mXq{ERwuXW zm#J@U_4Mo5tH;1zNI`MR#9qgkn;M+nNQ=8m=KA8PrCIYw7y-w0IW@tgLRRAb5C1c& zh7=ycD^heSffqFuqJ}C8cNxtSzg7qbqGtAuFRN9kB}7Kpkr(@G^h$@0m37~YyM|?} z=l-24dm({HRg2*1bq&3LA z+H13x)-LobLwU`Y^AlD)ah?8z&03bat=Hxr1rUAo>6eGtsV{M)|0KI6(p&5HDMMDd z#(Y&$euJaJuWL8BIwrKctjYa(tj=Rss7H4ht!&j>(dIg=T`U6h$CVde=9n{g>KudY zdAgE6HrUy%M0T=-L-8<ggopH*+x_{Lv7|1DNIWs3W5L zwa$2h72~{w#)oVd2efNl9pl?w1*w_(YvKiJGV$k=cqipIYE&M;&BJt43ve?_i05AE zKtnvNvecB3oBiXHTvVo*_V|T$v^Q}DI|S^QbDn5_D>8!{Z?;*kV+LbvShEJb$+JCw zHIhMOo>vDG7wS(3yb*ikyUIFyUh|yHn>_k?fTS6z(wucmIgBXlv{>v*ogyOC!tG*BBTZoFW^bBOP%iuGw}b&3OgY z-sGl2n&Bdcwh742TU#M*!3Dv*%2oZeMU8P=Yp<;>z_h(h1YNIlsm*OfKHK!b{5F9% zstZ{+#Ll%cXRLpx!2=(EXlmsDA3W$b`6SYP^1G zk<__tYEg)WBWtwk$ukAQh^<%aek6EYT%AQJQC6_8w>pNl18}w{vpjF0HmWUfBw$uGh;b z3Y&aoTHbanVY%`%9+*)3P>|{r{&EoTD5X5qU0w{F1vZO^KKP)Q6j?%Z)0da*e7l{fL>8EV!Kj~3ucnFLw2$RGxQd`<03482M#2$7^*LkN2%onWCs zdTcjPi85%D=DzOPiwX^~qtavDv;o>iMtXG>Q2lG`OX9BhG@QQUsO8jBL$pwRhLPYr zAi;K5TbNKCIF9Bv8(rCT<}~HlTIyM#ao~(Ut@{LX z+Po|!&LM=ry^s%u z>n)5i#4}gq*4B>w^ul#8<46bxVN;VOYc!EgWzCUg&x6xws#^)nZ}h33MRG)|@RxBP zbp)%wgaFW})sz_U%T2_%aXiOlXWR2xBA$!FtY>-}2k%b+_}5|JUoyolYx&LRW@W=- zSJ5BzJ%rKaEut{T_nXuC+%ahYAf~K*6BIXRiFdz++!)WvOUzFdd^SRo7i2e#1RX;H z^YWVID=AFx74cOQ){!?Q8*js-%r1bQnb|C2ImKM}8*yhbDIS}P^*>=n;S*h~%ak^+ zjhQvo-77WDg*f0qOkv`GCoYO+Zv6jk4Yos#4f?2j5`j^oV%+Zgb ze)9(Vf~)#7x6PO|0AvnhZG_YV{_f8CMGa0N6S%Y-ewBBE2)G*^U!R|WeLwXF1TcWh z>J5sK2Tw$Z%t~|+o1&8W%#ZWJMIB%z{Jj>u6UltXoTq3LtM5#tdhV%PO%-fy6yR%= z<@CXAlXXfh$G5LJv<|V}{7=iH89EX=vdQ1YCJ1@pqM8h!th$Ne#x3aX3%F;X z(J5nNTdK5G1MJwzJ}j3GA$%pkfXtN7MJ+?^a{eea-iX8dfY8ApIekFBYw>lvo&?#OD^iJ$YzNi;_;s*dljxl^=G?aBbPeco+UKQAo_ zXANAKH0CI8X=tmt|9dfJ)PA75IO3KShgJq(J`E>GV@yy<+oYrx;=HllR*1x|o%ulcd1Ddz`rS<0~CPS|dWnQ(! zwv>ILJs%u?%9f$Z+^1r6%5Kz&IG1m@6G7EZ_VhBHb4s#0x&m+s%3n;L6rL-bU%b>! zgz{7t)bI>lt1H}QtSX4`{pv7L;Z2H+lYPJ(ouW#{+Tg3x6EF;0~VCo;X$Rstp(L0a8oxA z@r_o~*|^_+LrZCMEv9ldkaAZ$N`6*`TW(dACRJ~+Q?H}4C~_kqOA?z_fC>=730ozF;(+YB2U~ zFJLQm&P&N{)k7^Dl+~K?s()7Mxhxh--<--tn~AB-qa49Jo1~jASvR?zT}T zvBP#S&_Srt_YahqUm;iYXu(Z^;VfSget% zzaK!*6d|b_*~o-noeqA%vGr&fr-43Ccw2c#L#ya(5$rD6-Ybv_9k0&`1)N$1kBe!` zI4dKY7{cI0lMOjO^Llfs8H55=<+R?cT(D-Q2G`>S<`~&t4@1^qJE*y@nDWgPb}8XzHCHH5k+eK{hPPXKk)tLFNwd_A`Y+ZWei#~ji8 z=V{prz*YO=wvbVY;JsJyB zYjOP-t<+ng&2=JjLvE&KBXNe<)ksN)xh}z$@$cFI@nlk+T6tiRW&w-NlY8mK4y|qFv#{6X`7LJ5Wa~x{8@%45jZK7*364pR@C!-uF@sXG6NUY6aqxT<}Q0 zZY9{R3|V4WBfwwOx>dT8T-h9xRj8ND@xkwUIoyVaKWgNWHMe#sY>2lS`+dm$FU8I& z@NlZ0A-`P|Khs>+G?_KAl?;3+suAZ=hLg0=sM;vaU@0nmyrjyu4or-XafVHsCLRsE$A-X=9 z3NH}-zRQO>`Nr+x0i7k#rJ|WBD#S624avjG%0_-3p`4Qnmz)t)Es>E($(85?Q;}sn z??7LRGKHk)J|6?~c>&Ro=*P}*+JMItxu%rQb`wrKlCOm@GGo!BqaXt#^2Bcb*XFY4 zUJc?SvK^$`EE{|j*)?Q3vmxw*EU3&5OLhr8{59i{Ld?ImXxc3t0sXb^*tzYHlJ1nF zDU0A`FePaW7Ewx5bxzyja{%cWmr4qp=>?KP$g6MXV3P2crTV(&H2mE!XWKBR74qVj zyUic#qo~+NceRVp4%H0ebn^(pF|A4>UxXmrRrz7R1>EEBnAzp7&#t)hlL zm{PDydK4FE+}*wK7Yer*BJ+Bj!$b-RkpZcN4YEjt&m#3)Q1w`R#Vi9(POofII6n|~ zF~o)Gh7OqMH*U{QQ){MmY?Xl*7QA%m=NdeS`}VGQd=J~cgD`V zATMiBJ{*&1HD`4VIbT@M1MMHk5)tvIKeH;d*`s60N*&w_@WMQ$U@d&cW=t*ih`DI( z+2=`J24A_kTo3ZuvcDYWmq?CPBhw-d?jE3?-H$V8`Q}};@*-cF{Q-DP%HAqt(*2`t z9f@R{uhO@?e~#|^R6BpxGawNYl>lUJan}=60fmG~FfLjpQ*Fvt@6npa*R7r9C$d#< zuL_7%)Pyu8w!g8@?Wi=>500+N5fPb01iG4txxZlja3V6-(L6og+jms-zJ-dR=ZWbh zmd~<2tl>6z!+oHrhjE7CdeDSIPj$Z`jgHFx{79-u9ry$`{Db0P-tbxz{6V=8miee^ z*r(~RN(9<`L?aSxPO{_&iY;)Z?eN}xcN{lX3|RKYomOr7SqF%bkUl#a1!e z;LdW`pMG77Pow1lwl=|ypDPnjn@{JFUR_;*2dJD@HLc=lD?ni~J+T3oXX5I^cv#p@WL)9KS_X>-aNJ(rxTh^KtwrN+ArEs$QzT{J_DY z^VZOAj$)W3|A~T76hmT&9ddDlQSMjuTKiAJumj@zCh|qr?0Xi$v?%}4>5$iuCXQ?k zvRSFHmUhHHQq3UE@x}p?2|9nkH-DFl8Ie(OcBN!@qX*i&PvHW?1>{ z5)3aJ`E=WMv5Iak@Uq7RJahrZ;!d#=zA$_=4ydR+c2^>vJ8O?FAt{3rG4mK_P7jF9 zVuonZvBIRz%R1oUxjY$WPliJC&TF4jGdZV2I!+wUqA+N_x&@cC9zCtmo!R>~hqk5V z-JYX4KbFos^zRTfseKMmipm96GIC5}+Kva7FaUHI!snAAnc?*B_`rei{aYs7@^WFR zex9+9{uQ<2*_n(yvb+QOy^iU+g*Xhcz!wyV9_!T|TR7rO?+DM74+bsK-mj9`YnXDS z^dr}8{qr~FsG^7#9w`d^oWTQGHAlS#VoH5KU_F==0&#y>lOaSu9{)!=nrv*6Ht1iKG>@_S+f9g1NoP^C~Mi_~i;9D_n4Ml0!T(umh zRIXJVx2p0;ThrOpw&s&44%MgcgeY>zS6;c!&pWXF3gCc(r_H@<3yPWi-X}?2%Z4vX z`joqn&N}_dnDBtchAfMqlSP8SE0$~+d8ysbJsG8a7>POnUiaVGd$@>SqgsU%P&b!; z0w27coKWQLUIn2y#YJt?lz#l{=syaRuF)7$V)$Y?$HuIv7LP3=E_Ys#!)Oav%A21jyt8#Jc;ezO_l9GFj&-qb4JD9 zNksvGF^8%WX&4=Ztku!iLn3n6AYGfNfo<4&ey#)z#phvZzsn zVRi``XY^a2qEoPWo06Ds1yOay=y5ujBcT&F!?4KS$I1B{XyyyIbx(f{)=bVIlRM?W zTKZR9y3RpaKHT%mc2WmTDkoS+nMMXS9FN?!S^4@}zz02xUO_?)MRvi$AMw;5$sHn^ zy#|hz#J3ubk-JF4YLc>{zq2|#_bW7i|IdEMnMypB%!z~>SW+n_^7It(J1UdaVC0Dk z-~;p5%W%&V{ijW^ZEYd)J+K{OVCAYRB54PUoStA77?L!J1Bh!Fv3%*EpXCyqKf72a z^SV)}L2haRK4Ux)*%szzCz+m>GTLS8#=2b#y0LzBq0dC zf2=j9q1m#B;Zl&!5mYU$=j1s9$Gj3+IwFYk2%Gly}+AhyXkmR|^ z`Wu(+W7$VwLqV$Y%@yaQ(^bF3tX*)|LTyexb_=6PP?- zO4fhl3Ah(~9lgnZ&S3$u^*`BFv-rvGA3B)I`nAR_TMD$9_=O7m8t8$u3a9Os@cQ2l zYQ#Lh;QgE>pZUB)Z~@rPfIRA(bl5*Tnl9G@t5)pZF!X>oJkh}ik*HqnKonOF%cYW@ zCuuga#1;Jd>|)nE15Y)RQ$b=n)|@aj9VlK9FXpH3^Ae;aT*|6Q^NmA#oGVmpUI!^U1|(D8|gR$4W^ z$G+wxJR-5D4@5g13YV#!HanKPHmr4hR=Yf>x<2wfo{K!5n>?PAJesGwKGHp&vpk-w zJeEy#yUlg48ESP|YkjNr%2782=OVn53Zd7ZIejeqRxX{skLc)R71g+w@^m!x1fm8% zyz&a$Cx}vBZK-JP+g4$kgw)wMuw#s|r=5929#27R3TqP5Oxs*b*s!3&?+`|16@kZ* zO#`nroEuZWL(<*w9$UZkdIX=^T{&1zZ&zAuL?^%R@@?AHy>3M4+cZ#_yK7_=Q79O^ zcZ{Ze^v9G$rcxdg!|P|C_toA1&Vzt8k5!kEpts-Gs>OE_-F(-jED!nS+P5=(B5+mM%Aj z$MWi8#oZj_^hLR{aqSF8g#O#M6XKfOLV`l~9&HQGuka#ydq~}wb?K93f+mrQ-&HFW z!7OY39Sk%BX|l_A%bPB%Q@m)p4(Inac3l2gG!x3m{01xWKB%76Cj<7)GmRHP8yK70 zYt2p^r6%W8b7NxbRp7(tjkv@Q5pkrB&ecAF6Ko#(9;#FG34F6)Q|!3Y@+iTcAyajX8VZ)fF{kNq!|+A8TlTD- zO`VS%W~%eD@~e zIy$Np+Xz;d;JweB6JYaHP}yOQL&rqeuFT$=Frd46_@{bo;fLR#$2%MCh-t2}xrcgY z6D068V(gFI7~$-aH>>5FI$0aYRYqjE*%?$m3PO9_i2o_x;@%N6M_D=QyYB>yMyXEH zvp=@i!0FuaTZyBEnZ9Wk?`#DvaNnatdS}6L!&`#2XY028%AhF3 z@f`$d6W1v40-%x7Q1aW00q{LaD9i2?J^7tm^A>vuSagPmhwwVKf`T}v^rXnd+|qNZ z6yJ?jxRVZ6tIFA?6&j@@b00a?eYi{!O=-%Yraf676T$V?Ap18uc9@v_lXu%wPF>A z9-C`mc*1Jz+CzE!mH*mrF`S3%%ug>X4A36iG_*ni@{|(-zC9|GC&c4oH0i9?PK$cU z^{s3)&vV5?PO?y*Ra%ae@T`@Lr)^Ta$8KOcq{%RndG@Ef8fa)yDx9Vgp0R+bO#25` z73%K*fs<1332>(3f?}{atbqu`LimqwtqoN}X#=wJw<>nz%(K>hz)^u5=a^QbzG;dG zn>PDi|M;l7>ncf)r@VTIs}<;g-at%Ik=QCq*baIg`RMEVp+E!?qDsnY(Blo$75MW; z_tjh6S2PQom)&OGp7=*t==d0MAaS`_r~$z+xod`ZIO^Y<-%}~k2huEgjQl=gkHn6~ zJF@NtAwC)eSBn!lS!m^c?ul)1kP7vYbrguZgzllzKjLQuQg@n&0mygS97bvBclMD| z7~uI6kd@Ik_=hK|BVmeHmuBpgV`P62ytb7lcXYsT6A!3sflz0h(mt*7YeA@@&UUF=VSx`A%%=Y z;rm`;RR}-&2GN^}vJ5w- zj%1MYtk`U40s^8fMOBY>I;*yX>6jRji^LN3zPw~g#e>qYgpVs(9@Bp;bbvjb@ABua zpqxn5lXEOK^MLhd=$~?XhKCQe3zJ+(6V(gRCmnKsS6c-H#V0YcsI(5AK)A)$+nfFE zEenM))~q33{J<3?9DWAzg<+tx$EH)_&s+58F9i&c1qR9n1L1^)aK=J7VqlI=v%$GmS4Rlc(dvZgk=k%%#mFN_Irrq66Mu0n_QSV<&Y3@BmZBM&gT$4G{0bbV_2 z$2D2r;Y`YJnNVpTO`I*(u$tXtFG~9ctyYX1v+~}cPKmabVH6T$s2NLG(=p&|J##x7 zwW+6EOpV-An;zcWVYVUoQ^@ELjIFd^S+9@f^pIK_am9Ff#2!b5HJgM_%saw`NwdBi zdI)5yNs4i?svSMn6EaSKcW&OqD?aN#gz$PgDy7K(#?7o>oZ!57X)D3C zZCKptVl0}4J>KHXqMmxOnbb5s@Hx8T{>{*riT}MXplpd=7`%?t?y2cfst-=j7=h@=YSfGJ&Eo?p_3DcN|30`tF1F0p zcwcy={n&C;#Y4t%>n1sasW{8ux%BAJsq8A5;Sk$NNL|hDVyljY#ZBmwJks)&EN8*( z8+CC6;3GqRW(coyRUEk~x44*laNaw&*qh%uF4ySGEAjg;)b#YM^wT||oG-MPo+t6c z|EIg3Mk#h*Z@zUk**159iD0-VLikMa0{-dYCfKE&i~){ow8j}6B6IqG=L9l1JD8BsXSh{%0rNXgI_6{yVS z6nw+^5cvhPRCaTtkb`^H-67;U)z2PD$-8FmKGf2;bfzFmMcSerb8~ajtI$C~x{HFPfB4-JMlO2XZG$ z31acfd@on{{ye97zdkLLUbvSyLDu(u@al02Z-%%~fe17d{}|_9qebgHabBC6 z?NN!*JzX&%uLgQKe)LV!hAM+V6QGRLBz*P8Xg9D$kols&WpC}XS;Di$9i(!7zIJ!4 zrdWZ24p2}d6n`*E^YpX+dtkUlYYQ=AkvPt7!-!cbLw49SZk)xM9<@l8=&XK zkujreru2Vq)j3K2&qEZE4vu9B{p{5(@qO#qC{c@8T6XgEvXwZNkvbNDht91&X($&9 zn5D07a2QfKUjS*Q#v3t^CB-*i`xIP7YczYA3*&yRSfH)67>3YH4IdcooYBf&5T9}Q z1iXLvt+~Z$s`k4Y(4<^vlnquUWWqO4xNzEgQk0~qTcJLZuXkCnNQvI|b(km8n*rb4 z!n+#Dd?41^ZJQ+MI_0_<-tDjGEmQubJX+f1N3zG!AY0GD+bkau+uGD9m9Lv>C=G-# zbv7}npIpa}E_=N0N1yPK@QsfNxGna#UfAk`ZCf~B$@rJ zCB%pqhYWr5@eslsF<-0)swdq^pnBM7J7|u8ee5zKan7a_yAx)&Ya1SuL@f4$aTcH5 z&thCAL4q!L<%Tb<@iI&pRtHx{GucarI^P=6*F9S7h;#h02`JI?A=TA0F)98&r}m?l z!E-*H)J~bm*E#i%ufr1+BzbcWa>0mo3|eKY_|#C}>U&2$f@ReW`+&uX{kQFu2OWtG z3kWyPK-6v}1Y;W(U$5CWO?rKnyHVZLMm=RktnN6ezW=^Z zM)X^;dmZyRu?EdD{m#>7V)PvcXZGv$ZaJ%Py!w#1zl=H zA_X0~$Eq`S24Qrv!-Kk-3k^>CS%J&+5s*hsn~G$sc}aC;DT=YIQi&0jVOFS{j}>Yy z@W-;eD=fgZbd^Vm+?+s+YNLQ;7Y4XBqPytz)==~%*jny=KVTc1BUYoG(Y}>p*yjUfaZOUbT@r^diV%^Bx zc{L32;}93xw}$WO*fWYP8P%>1|I>qH}@#O#4}trqNe$|JPno!Rjz>RYQKvWkm# z{6SLgs*$`;u;=ybCMgvRaJ)wI&f&sIJJF>=@P^Lh`w3OW<+jSg$hZI;5%!#3PinHIDfowK_9T>3|#l}vqKoeGJ zi0DS$(f79nuo0v0D#D^?)_3uQ930lf^EKM`s!P{~d=+Xrp;<>wlEL8!V>7vLw~9{G zks6zdrBk~nA;>MSEJuIo39C*-Zz%+C{y*7giDCP3o-Rd6$)FxRrV62RQ$CwM zYC5Q`)q((D5<6x?m?0DDlJw<=Axd5T;FcEo9AQ$=C~~eju*J?FoS4J#P2ZUuWsrDr zS?tQ;eZM`Wei<@auL8Pk8u4G$-($HMOfqq!(hG>uYE(kq$2$cq%tH!iF0m>4g~U%P#|#$gf6MI^ihhg^r^3rs|#?g0(LBRuLqP{ zE5#?ewAZ$^oiM6*RWQFp^b=JP5z|h$8mWkas|YKqA>Q0klOZW)Ix!znP_Xl8#;I{bCWdQPzmzV!N-y8yIr%6EIa&|T0d}%?w~u5j z4;|KXM`SKCTWQEqic2lXbct!&9Bg{8DEMCpkH(W*T-|mNwl91jvk#_c{c?k8Lmv7r zI^7oWb(7a?c##SYU{{hmng?my>Ob#{=Cr#-r!a|r76IU?#Aa?6|LjGNT2Iv2aB9#} zq2AqNoqF5(zTrLnIPk3MS<`VDH)q=T>CK6={$$%9)c!JAIylA9@1J{N8dnk1RS)pu z=|_<2GB$G&9~SqPX;Au)pV1?OXO#Y23t1o7o2#-`Ia?kctd;<1@eDn_bt0&{30vd8 zJxW$P>Vf9dN~aKnXNgYiJZ>(vWA)QdTD6ukehv=fvJ3|S(grknOT}v&!q23FVjK>P zZM3Py$5tPhVRX)wnIb$q3a>(_ScNg7ZZ4O5<_8>_;Lyc(w+*+H+p9ZgJ%f#@EpN2h zq58T5iy~?)AGp0D;3dk@_cWKQqK9glhYd%C3Bv=VmWjDBm@T>$x-D|EBsJkdcXFd*wsP0O|2?00=)7EUPnL&!H<{QZW3J3{l4s1 zp8eKxe%7`28km)wTjA%iFU1@b4GIXjTIPt&Ax{ZN8P$@tOTaR`xQj!hu}{UzIW6#S z-DV=)Kn(F$5Ve+s2ubCo$f-Xj2yMkgwkc1O9uYYhLFBFs7%FEoK_HBT900EZ9_8s& zPws{eoBSC}A!_p2$z6L-1mA7`zE#$T!Uf0UCE9+G*5E?N&chRo+l}&cx~;(81l>QK zeuN5*A;&D1Mnv-c;-jq+A%~eL+v>*kFmAq!N-oOc^P}?t0A_mSZ}yS!`z5!?4T*9X zKt4oE{ii7SMCp~a>fT9_@U8?m^;NL1AGF3Yeqk(t$${pBR9?~1AW@2wO=`?bIC?gP zF6jlVar$PP{jcz-IVXC8tUqVP#dOj0B%)S5$IJZ(E{Shh6qkBOMYHUt;YK9-*j0=# zOtk*{)R`FKcVrnkCXeik7iwDZD}0RcZ*#<+WZrIqT5>3rvHtgU-r!csTj9%>=`xg3 zKannL7X3dwNsWHcF1^e?ze~i1;37f`e7Qv}%Q;JIOmE}tiK}5P&69*1zc^K^tY=tU zE+4Gve_*vl6wy7@KW>4nzPRR|We1^Nd`Ob>MjH;a%bqbRN>aw*pJGm`p~7I{!(h=x z+jsoe?*8AJ*Mocoqy5V%NUN60-puKf_*w?2RWUTwtI{=BFemb$C(_>I=~k@%14+61 z%$k>{rDIO)??&Z)H0f}ZssmHmpA)9qSv>^ zEt+?-oy<{a^V9F1d$f)}`9aa8S;=al)jfAZUn+PBc;lE83a3!c$hR>DOb84ss@Mc_ z9^~th^ohyr$DWCoXinNEk!Rrz!+dI;-#$sl5G{(~X!DfKTI9v!kKojluxc{g+{EPzN1Q0QkuywazRILVXx zO1fNRF!zI>)gmow=E*tIAFPNwlR-D>s!I*F=+%Q47Y%GRZpTB@Uxc(wW8(gZc}Hfl z7Vbgz&iH?R`b!Q81@}Z^2|Jf)oru7$Rg{PfIX&-$)ShYb_J>HhhvTQe9x)=)bmX0} zzUGLY?m%MUF;=m8zm;dy_{1pycuA_RvYW$vTOE>SFfm6a3}qRA2&!2&0GH7*e6Vr) z&xaO0m?v|NdIhD-_mEmk^@=uE5zM(F>nL6Nq@)#D_{rZmpq@^MBDoyX{{iJma(-9= z$#IhY9q&gMvCRrIaYeD6mKMe`WdOEvB2E8o4?Y_9KbWD0)XGa)CR=(~nQi(L5 zbEkg?k0e~u{VLzjx)1d|tg!2AYru}jFlS$PAj>RoC$wW%3hLAwt#ZP|%I2GY$I7;N z=UU6u4mr6D%+EimQy!mX_~S(F^`VZea4#Z_Mj#fk!{BKB%QUs3$-pW=?81yS#+w8f zAewrVBVLlxtMmAJuO!FI5ts{9V}PTUXwJbIhLPx5ZHXx1mX+pYcU9MsStb>Ya;*J8 z5OT;&=vD4BL3?>bOZzOfOZIC%E?!=hoXD9wr&Rd&E&_e1$<##MOB7s? zy1PzS6>=s4J?QR)Xi2#3ANNR=7RyIeZCScM6BFCavIU?U*KDl~(eNyBJKy;Ulhv>{ zS{sv-M(+b6I|P|s0Vg<|7Sls-EdARh9Uq<-#bgplS~QubWnTEtK})t}w;|g)c2XHJ z<+(+KIcoR zjSl84-NY0Uk(e^Z2j(ZJwwo3I(5i9!&>%5lJThDgG)52Hdw!d9sWIRNvQ^4Kr1$zf zP#sQ7{@9vFo<0mnueN)ZazAVPr%xWqxgCyyX8&-!bB>AY_7@KjuGVrQkn7$JeZ`~ksm9V!a{o#^PJfECCJ ziUWlpFq5e(+$%=lRQr38%ps6nVNT7M(nC~lRXPDGC39e$(#8S;bMw9*X!;|;MQ+qqwJSf6-67jgZawi|mQ7xEK)D$Y0 zuTv_x9+;UUd(q**(5Sj(XMf^REkm_x?$5g;Ut%@auTSDRi%A6+(j4-^IEbXw(W`N- z;q3BJOWTOD!%rC&TH9|NNqGR>o4IH0MYHmfzaPK`&;hq+2WggC(L4ab?$sJKxe$51 z9nZ{;3NYXRfWg^&LmIsTxGwxCr@{ zdkXcqR_2&^XOA(?SY;%}n_Q{9Zr~Sx85m<*+gC)#0xkRBZ;Ej+)%Yxp^F|(!1?JH6 z`HJt%&V&%*3wmjdaEzsLykl~_d-ze2=VF+&E9o4|W5wx$@pI}3 z8ui!x`GCS`|M+>^82wO0x%LcJ<2){=%6@o~B#)=uVU8&cr!(WaTV%b6RWF=&6P-_A zpc5JW30^y(oTwer3WXu)ep9;iVqEChWV|Da^0qCy!;q(R%N~;$rJjt+vh|TlWW*0E zIil#mJ)zl}y{_XLW!UIVLr71%u|GZ(ase;iC8jvLWE}z<1eMl$U~&zaqN8{qPeAaJ zYG10K?=9A5OnC^WIc|{udlG*z4VCIT(6#EY$lcVCjB-_<8PXrRfTN?rZufqH{=a&3-ng z$scLiEaroR-xMq>Xg{uGa{)x|r6RdNDUv#o@)BkgT^*v*+`dYKp~+;RNQBXvT>Bs=gkSAAQ%sAGM#1I9(T{O2cndQ>U+ zv;8^>H@yus*8Q*WJK_6fnnEJ(#8uSe{?txx+r+q?8OG#sNWHhuhPUvVNg4(AH=rdW z2WcIb54R{=x}W2QHJDqJIaqJsOic1+omlT-3UalIx1o^S#FBQmU3lcp3d%@7nz5i~gV@`Gs17pwz^RHFzNfa0iw zbsNz?x%rz<#P@wNJg$_*Aq3zNm8BYY`EwDHTmU5~;?&VoHx0Tbl@S^i>Jv>^J3btn zZKLLq3&SfbA>W6D?~t3017)%{k8ykbf*K6rT~Jn^7Ey;E3A(_0q~kNi@0&8`0g=dy zmJEnXSmX}_gGZ(c&F0AkUbMYRj_P3%_l1U{aV9Cxr-k0^qnIpYKM44@Bk!QHjpn5u zq7r8fZ%BAMc?q|!SgvY4llaF_nnFdX$Xe41>&q8)OXeByq9gDpD+akwG^Y$n&d-6g>K2&wuPT=NqgFw5nSKEfI(Uezuu|<``dUA=^ zA6Q>9q#3sF0X0kO6meNAd&@`&mV$z)LSX{V+f;HZ)a39|8_yo#t-?!&c_c#j6}6G9 zC6$L(5~x9yEP?kH>^StB zDzym;P?7esb(PmmFaMHh1ec;JgFJ99tWmcRbU;^b6@5qKF;-o(*}2bf(b%y01wi9u za(Ezi!q9cZfeSp6p*ZN>KOiq()-FF3p*6yV$52~Vwr(!OEF>gGui0xk%3&bKALnR2 zuYc$#9-Cxz<`xYAX-nFg6!iSWsW^8=rKaSbtvDS^I`X)l6jT3E^J4(Cs3K}kA>7x+ zr;^+a&nWT@LZ6YXcJrIN9o}Ej$_CiEZ0rDgo8#S3W)sRa~Gfj3>A7e>YA`6_ci5 z2UR1a*(4^IYh6jxVSzO1Yr%W(Nw(Z;+dK#EDg`+1gZxZZ3*{=`J(mmu&~%$Gg`CoA zJ${&c^oOPoRLYeo%D)MzIpZ;2bx{T}*X5ACb;ie)4;&5&g>2pEY{8RSQC-RSZ!odm zkA+Hnrr~PkIdJMY5q>AL08O(eSBq&p{9UixtKrww!{|GUUu>AmHlhUP<1~4(#YqEP z&9`hH@&T{x)!s6iu^>n3^&;pBA~8Jvub`v5OuG2z@f@~_^@-4J2)!uFsvfnBb@BJ-EU)f) zGS^Nrq=#{fmzW!uYE#~t70Izwl;3^+rv7!zATV|@C-W|mT!p%zRnV0Zw-!4DH*|Kw zZyhVU>RqBO!a1t6JcJ)3@AYdJqM8ocgzfNZ_cu_I(%vY6@UdT<9u-I`)Uz{^lcZ`b zq(jOaTYHwa9}0vkuaa`fV=oiJt5(@umK=-mp^K?G1OtWq{(jKjCT51?sJgELk10jc zdQ0m9dS4mkOQhX9(Z#P2Z-IQvG$FcH(#eQ9w~$wP?;a>X=yTbi7rIhDL7%{gCEDefE^Y|`@NcqV-}Gz9;d zbLfHUnuyITR!k}&`*coZt4q|~L|&7qy*hB2zc5dBUOK}2c0rFx+W&Ctu0YYqBzkj- z-}YqdIVUHzUGcIpWI>+xDOcwH)nkmlgXtPsb#DAjj7?j|#Sq-&EK%AgY+;D~&Cvex zz!)G`A9W;W!j6%Q59K(0MDWbt#^=lAp@(qD+XOdD^uxb#k#h{*kXS3|d5d9943IUL z;V&%$02UYKgk_cU@6!3lS`qapi%Ur#dr{=|Nk*IxcdNPTNAghC#T%Z=P3sPNRlnFM zt>0EVH#NRozR;0ObxP&ehmG)*Dv^znkX;j@ue8>X?`||f*>Q@8HsN!nf+znCmU5O? z?~3E0E9)&zyjxODkfhYIF0k}s}rOf?Ytm^S#?2fhlqgW1I*r= z{{|UP??|AoU80kw8V^_7t6!1X$9{sAF_3@3x*9XiVD!P-_7z2ebz2lZu~20VsMvb9 zqDRgi@xZg>>E!r5;xh6B@HfF`0o%}Xgb3>CuP&;>G6_b0Oexp})48DlHEF&&h}wd` zuAGwnk*#g%n^EigdqUK#XTm>@Z$igF-oeM5D5+~0S&jLD88G9A*fO~}*5;9oEg_p9 z;P0(H9*5>wzer02A5MG%CfFJ<+@h~ajInT*11Yz(mWkDTBk*c zUr0X0lz&)2=5MJmVJ)mC>(bOR63_~MrzWkTDQ8J+|Jmi)BlRBDr%UkxPKD50(;yxX ztV%)&{9Y5pC9y?9Q#|JBXe^PO)I$`>**pgn7suuQ+Uz$tUEEm7w zHuoXJH)iVV>;bxIX*YQFxkdyen8!)3Wl?#K_-`d68L<}NB zr`ZlT8w5;3LtvB!1GguEzqjew?9Xf)Nh0#K6Rl@p zM~-Pp;dFLo;q<*e8V@T-L8PU>;&(Tkz^HE$(OOix{787FY~s(cF$$;@D#|l*0+i%L z{fTe0oCn({=s;(hoA7m}uduFY)d`wd)fGuac~%tQ$;j30@XafD$0~K$G)*LpE8?t& zgd^x~vUai&JGDKE6x5KY)T zr_qbeBK&BDu1HT1SGVq=O6r1v8Yga~;3xtp#h)v7pjI0gK3vtzaH)U$UA^_a;wMOn;CkX_HFt40^{PU= z8j842gK(W78 zfIuRLOY{naoi;;@kl?;C8h_OSV!1bK#HL@~bki@?CwV31bEn?)3(M*Q{O1quV>;jc zc3#qsk@GI~HSx*Kyy9t|N2_;Ji!ryf70!1c6*#HX#>dx7J*>@hYxXCzP)f|^hx%U! zzKTY-H<;$e``x|v?@%Rk*>}X;e22}=cf{O$hkLUJc(W&}U#8a3d^9a#(x3}yL@uqy zT^@L?adQem%?&;(yoE}rZSYDF+Bx%>oC$guFY##OdP}A`7|(86WeMemn^1Cdz7w0E z$rb4cIkoClOnj8R)Lk+OU}iouU{F&5A-U2U=;&q-i`7*dM}Rh)td|0#RI$D${>nx^ ziAbxhWc+e0_pHJ!Q{B&r=TxH0ojF#B=d`TmI$)k!+hS)HjIdlXo0jtqe5=LtXs(Ll zw`|PlW36n!w*L$gX22>%fh^HlJ~6@s)^SEQgZo;_sU34D zK^g*9cy^f_{LgQg@VS1K`=wLwpLOcF%uc;c@1A0|?KKP79Tj+_ES%>e{qS#GV_51i{>{Z@}o;a~{L@2^@jn42#Y4^Bm z;?o-W6!SZkI|ECA;WszEJsBtT#+;0q!K;8R>iohjN{wL0TSVa2Betn0-u_L!eVrHT z^gPldrRew21!$oo;Ep8*kc9>i!_~qv*UUBUr z+%#$HBY65ePmpk#W!@=3+u%0ogCHg?I}68eaB7-PKeL8c3|}YcXT(O<7wY#j(2L*T z3tU$de`8&rF|57za?oF8=s_l)u+&0WNzrd`NhOwhnQqY0OY?C_TmNi<-_T*D*Ws@< zt1u&7w2h?it}N;-=y%dO*`+=12K8W2eVb`o%jevX$4kA-y0Vx!ucL0K^J8wcL_n3| zc{kVYwQn!tOUGztyPbSd@^)raZf8rkokz;qnbG|lXD8>Go{#r0G6RzxmUFHXvCoJj4Z9r})V1Lt%aOtUc(G-Zc_k*s zg?lI7u+d9$4a?lif-{DPK4S7Ru@0VSy$$72^+nOs#+M3t;(qa7I>I6w4WYgIOlYrd zjQ^mYoyi{$w=$TS`U*VWBJpg=8P=mHy&iQOM`x1{*EViq5@Zu^&4m6zjhmc0un!kf zKApN;OtFlw3-O_D)rAz>Ivc#^lrvo@@SW3Y7kBnRZDps9jKMzEB&Nj1kwT_P5rjM$ z^Q|gRuq%1fU#v#5kOSuYYp1o7J(>-Gan5&nt4^=ERcAGIuccd*ID}PNbsV@uf-J73 zFCYs!ZzPfc_yTAmKTQ)Kn`naYytbt2;>aOF7(;t zC{KWh(aI@%sT)``=75T{btk+$!-9UL79RAQNM5OJ03aV0^h-Qqvhk%zF>jg1o0ZRF zU%E>N3}JyuWcqvPYr-*f_A%3hjXP#c*!kuO1K+~_nJq;C7B|BFfkI}QD@GWJ&Yo1N zwQg$UkQ9MZtZ@h&f6NXM4Y9LDe(?`8jbHhew2ae(8enEEGo z4|ccQKT&;#_fJ01a>G=qy(`ek`zPb=c92r8)>HrF&3gaj&7yzuBJ@wLI4-r<@$1k( zxr9DRTkcJfmxbCQ17DmB&Ns(W7x7qXv(+NIWA0{xtzDU7d*uJPPMI6nV$(}o9RO8bWP*uK^s-0BYByVz z)alR$qSC6(u5R1uMEOAG;IIs{kLr~=D!b7z%qV%Kju&+YDwSXkrJGsxSve&Q?F{=P zwy_cqA2)nKFZEO1IE@4I*J4xpj!V&<{ge>sOa+~Z|HD3u)`*@Ffe1a4vfVlo5TTz< z%)`r!R$@}*ak$SbmeCIQ5`ZuhfY9^z0}yU(NP`awtMFg$BbrUr8{KuHAijSPesCFw zADm#^ByaG{n7+J|O>7VTHRXfi1j+|}Nq5TC{oa%fT13D^4O%(mr;qKFYvg}n3b4@y z4LI}a&+vfuphx9MfWC}wTC2=BbkK=8yM^P58+l*QMZAW)fXL&<_mb{yTgzhyKAgsb zK+EB8+n8l`iwV1J@Lt_+%O~C4sWiAP1pNw~e(QE{@f+Q-pkJU;&=?THFFcf-BmluXB$?*glGJxV&qJOoOajK0wkw>t?-3#J^9WDw(!<}qbN z+QTeJv`(HcqAnckOrFAaXHEQ?MbyHMa6XcwasNVK0~IrNCQ3C|B2l5NCLZ~>0S=~^ zF28nDAn-z1jET?mw-{O?dA_MnkdDQ`s5H71NDSmCN){OLvRor;b8=cb6UM?2=}hec z<^N?wg|cCY3PsFbYv$47SVW+YvpX$~Cn8D@Z(T9of-%<*1PzjdQfG{Bp)7U&28BrG=zeq_J_ptN-aH~^O{M-Tn4fB{^| z!2sl9wcgB+D(uO8!H=#oc+t`Lb+Z7lAb8PY_QP!UL$cDuhZbe>p$ecpTzR!64Hj_r zP#%=M%-})rS1^^9${#)T@mp5wJczA6BDDq5&Wah(#XmqWa)l9ur!35(Gc7t&!N63e zJwBl8h_ZwwugF)|dfEH?NDDPB_@x~G1)#ghtBH-cv~jvVJWp>aD@C8j2{#R)0!cY$ z$>BXKX3e!Yo9iP6Mip#g4ls{wAaGHrA&jlu9HEw8F)<4mo(5n}DZgMS5SB|`6;1uGOidA=8hNhT;36VFzupe0 zoGWRUIK?ix;L5&~o&v~dEeG&8ao3exYLiU}IY+hEZk{rLiIFF(l}>dZpYKY0&H>C6 zySdsKKOPVp2peHeiD$!2rcG2A|IJd`LCLvk!)%5vbGFk8IDWyjcAie92g$~*jf>w~ z#F(+J0uUJGTlb0`Xeu(P6n`@iZ%wFlL48X?*8|Qx1&=+vhG#jyko~;GsE=4`)JH7S zYgA&~#k`8W^j0d4Sm05&ri&x|8L!`c^D)Xer#4eaZGnVJUJ;~uRP zf%PTRn?+efEy^Mm*lqlxM=YFgA5{+`OMIp1uUr$q=%+dws8a-chlM6a=tQUoZ?$>e z5#vEd{1%X-UM7$3(8ChQAc2;i6OZ*$2SJa}`(B#C@n@JWdl}M7v|OIBNuDwX_m3sV z$0}1yv7P^t@PRF;RZBnxMT8F85V|n4&w0uK?6}Ub#+ult_*drkq`1Pu&9Js%{hMnU zec)A?>Gjs0oS{9<^T?JD=o?orDv2RK&s1xQjlf<_`OW|p(#YpZI~THPb}WzXZ$P_y z_wvAkywC+|xwpIAS|)mc@UGN(QuJH6I^E89&wfg7z1~h?jB;=1d-m3{+_5d?R;?_T z5>#OfCdX4wZySc6yQI0}zhB6qK9>acz4#uaoX_Oj(y3Jilwbb-vmK+|R~|qRBX%vMW<-D{JDXQs^vh-#v;;(EW$Hm@ zhZytel6Ed2d!&@xBLv>Dvvh_E;LTdzuW5PoEotj7Ah{O0;YDX_T9|qPcWYA*659M; zDY6L;ferZNXGMKWyk$Ml!ZnOoIq;ddB zDlzS=yVxAdPo4rhPZdC4D~mr^e@wU~TpSzSX}}?4Z^rDiD8LCa8WQ9z;SA6|aTGa$ zooLaT5w4}^RtYCIFT#876*xD3e5ui(RdW!#n@VKBh97Uap@*X%6SGR5L!T>a`PY~` zjNlBl+f(;z0v$AE7)e_n!tKmiMhMKe&M?@#e1K1i0XA~X`S4zQ%N4lw(l3bjmzvU-91tV^n)rd6_5PIZ z#5GoKbkU7o=O;m+{oBob#sYGB(%ern850Q4{&uK{G=@rtR_aCHT|Uqo*!#mkMdw|b z5zL#L4RRZz(aCC_aG`fq^Tc;#or1d;nrfg^UIVQ~o9|#7{_Ey@HeECPemsw2o5-Ws z<{0K$yFibDCmni5g?N3+sW|Xe9X;EVAs#V4drTz}ISHX6HdM9`=l|9alOjx%!5=G> zZhPP)v4iL`BomgxS6EDOb40BjOsN@7lr*ci;vsyn`KJabC?qL&$&k9#Fr==5v!8ks2Kr&JjY^KKb#Fy&L(x_A)s z?i0VUrGqx|mFBzQH-TN{ONVbdVVnKTs#i_}tCoKPGMhOcgGnfD%_*pYa-&q=Ax-Bs z&3iejvxR@umprCC8R`XE6~&O|eybT_WEm z(pk?H>8w-KE|JU{I7pVj5=psd5N>g3WqAVe2A#v>FO?lnCD)qyh5C+YVH>>(Uj6I1 zLY$|24oGx`YLnAdUK`{y$GPV4yZa=?K4>(2#)+J{<_ipC?BSozql`B6>d5C=Z4(6| zxjnwFicreDdVword&oI{lo}_z&KT2gSGsEI$hiCY|4=XygklfXLJ`Z1Hv?aOND<#& zdovI7H}f$6jefPZ*)g;q4`r_l{nV}TR_FeZjr7_gsDDcTs3D9HB8QSQ>{6s}fX5AO zAs1;Rr4$hFqJX$LLUU(2LUR)jhHvM=@a^`ARz166I~(10F*=@Elw4pWAoLrOlg;Ww zwIn*=RKm-_(~?|k1a4pE5@rSN9KWj;JDSTGuNI)nyh1J&)@AbnRzgLvhhy$dpd5a6 zFrMr=X}XY3jCM4QHK`$4lslnSh)$Y08qL1yY$K6VOAZ59iPGh!oDlYTjziiapQ6yT zV{bV*z#y;$Aw~u)A~|Lcp95~5OVP`mV%My4YSmQNUoPtUp`J$$;Wp(WVVx?Yv4*X| zg5um?K-ugfWpfl0YigIW!DCThI`JBB+R=hBidUeqqfN%vS1de_kT*$AAy7;VfygxU(1hL~6Nye;B;q$^mx!$W)e58}4pcM~;pYMRL4V`K)l9k9 zuF>i$W8U8z`=7CorVUc{<#0l{W7{6omIjDNO0=sj(Mk4DXudqYdgr+hc+G5=c;a2wz?kmos0by5e+KRSF{X*->r!S+V=>3%4qE&jSY?A9iJ{fJUUCr-V zEOutVh^iDRa%VOVNA>TH4)a0?9+|B)* z+Bl}!lr@~MHQC|OkeSNg4igr|sS`&NsoPUUQx?}H(eggF{n>6h=9`#nu`Is6CjOt5 z$4r)yLtEvD_7dMkE_CEE3w3J^xyYU|wFLWHd5{nwkjcyfwG(7O;|PY0*AO*4LEKBu zmVt%bRy$$jK)MK8&K_?o>q)5t*p3{am`O@yJ>!!zLb<)=ly^|djD{BkcTCWY3wwDc z&sES)fMvjC7QYRXTx2g*^3L&;ek4V{W`h+iQjq#7U~}QeCwVw4af{I(Ep5{B#Dol! z_AoD^AN!9K(I=*&Yuj!e%`(DavI+Vl5wjV9LQ>>gHa(MK4^-VB5+3r_VK&ikZAMH+ zJ!)7*FA0t6hGN4i!bHL{a!>uzG8)-3D$uG&u#C!$xNnV9EoHP=U{Sl7UE~?k{9U(- zeAgLbGVvc%XoE0|Tpk;%ZMLdQn_bk-7{gRcV1CKy6T!$`T+qU8B==xfd7c zx*T1YxG&=z>h1P8KSkY}`0qZ_p8VQmt(y8;T{*Uo8BibsC>7Wn*d+;6Hfg){NbP~i zoFYviGbt(h(|$^AYENe3c?aH*l;~u$RW8~EfcRbuh-8D%c%wVLJ^o~nN>s`#i2)%j zzznlhy=>#Ip%|DRSF4)LV_>v17UN6Mr3ERIQd?XZI4DKlwctlWm4-@Rh^EzLOz9|w zf0Jn&ff|n#MJ^PYp;PV@HS_Unh3cD9yGLr@au%2E|+^5|eWqZ_o5nyfoeu!02D!G@EB{p00U0O=k2ads?} zrB#+`)I!Fmc9LB|mTG`;GBys0&aW&(y2xWEfD?^(X$!A&+#4D#wJ*-eIY_3)p*P21(`slTgHnK$2@QmyV|8gjS2mGR70!82P0&ukSu zvsLiSR^pkh03MlE*io2DUY|~|7PS6Mg-?9^$S6$XAj|9?L>juH9Uven^2r2pcJYF)B`B7fk57$M)mj|eEaDd{3VWqJfUf5FXB>kL zEo8?d6E*SBgtSXRo9BSbT8cDH;E;RaMs|MaoOD4KLJ)Vwcf3WGD>dJ^OSfWfCELH8 z+y1hfSucr~EtxHS*aXy>?0=M>K%f>2AHdnd2QX3HtNQ@@)ILcm9?NZjm(+K38{kmU z@sxT}J(^sgc4wORWy!P6k^MlAq%0h3PFsZ=L4AjCeX;vrzY=$Xh0lX3Y*3*o>_NJJ z`-$S76cx&xByJ!&!Wbs~QvcEuud;s;V{ro*h7&LKhMVWm>@B+L^+k15<(!~6BOfVR zISC|HPRz50jrp#5x<4M-IK^t^EOP%Y_G^G^kA&=ezK-(QVi#=x;VI5+kysI$f-$ay ztGKqFJQ42u=rCguV?`?&d;Hx=1h2*93%6-G7tF^?6}6B;wli21?TA%V+hZxxjXLJH zUa(m*`-!@#M9H~C=}$3Q#gfa7($3DS2U8YH=r$P9lriOOfJ@h9i%kpa|-I1@6=<3oJlWjsPr6tjB>w&f6kk}gF&pk9v$tkbpk ziUMuDSK10?A-2k@5?zu1J}lw^RPICZ|KVyb;?{{bXj*y500>1)HKt)T`itu0OOhw4 zYmLU68Y376JTN1MAYcbp>l$ZWLDMa)i6e|Sj%1}#OShB+E{`A-)W=&&(+!o` zV3U^*3o{hd#P2kn#3mCbV!oq?IKgkHeq>Nb998Ecn)1c@?@P0v0UXpZg@7KKsb&lhr!UC$)DdjsASF_hnLK zG0110i}plMtjL-wEgtGkB#^P4^Jl=j#5Q4V)7OSqvJgV8ybUB+p^%rQoApn-xAz#8CUZwO~r6{oQMagr*Hd4v63v(((Kd@0F>1Cs&$m`g+ z@31>8<8Bp6Y2$l9JwRO2RUdbK{j{j#@+2y9h~V7;^uCOur&{qSDf$>km3NaDNQ$=d zud}pDZ|`q>jPOSH2B+Cg{+8R2bo-m26jes2%``rBXN}RP4n%Nu78tUI^OB~q}XGilk$9+{Y<)9_o?OiG*gk+(9q)M3~6LbfZ&_D0GBvdcv@&C}H~VOs@Y%X7JOd z8v5_+z>ujZiFPpkx5LnXJt74R)o0Emc8O2uzxpxudnj9Ix0Ik-=_B|i8a2;@DCgc; zAAwww1F;NiylXV+`epvKOb9n{eYhqk=M^o83qB!+ylpg*=dC{VO&)(9!*m-ey65Y2 z71AxIXw~_=C#y@X77KUIY3>+CZg;4jC_KZ@L(0fjKw}Q~^(dVBYT=+Hyv~uR=W75Q zSqi??!}(Hyw6k&sL@2FiM)hV}+j4SV@4TTXdgwUL{@=mHLan-#qjZ>)8Kj+TEXm7< z%H!SQ8b=LOpJnl>#kwj*Z&uE9lR!6Bux`05g~WP~g}YpTb&@v+!dcSJxdJK(gOkcQ zpK4HrZS(L+(GZ$_&uR&CBKH=isCGIdUR6t?sQ{2ojf|*@cWL9K_L6d`{i*M9)kkVS z$WE$(?o+3dd|q)A4VaPhc=pUn5r^_7XJh}=vL9sNzTqbsy%Q{LzWJV>E`DG*n{N7zxaw>63We2lle#ONOo&Rd=KPdOm8c z>*9CMrZmn1u1a~dG31ux($uNG5xOVZL6y~>bY-;%DjXbYiq#@t7;`HW5h8VR5IS)D zkFO&tL?I!5=j4S7nuE#b#%dMtN*^XxtyMrKzHSR}q@2XBMv5S{St>Z41ZM>Ha!PW8 zzc%)Bd8k+f^p1xJ@X-LRCk1g%N|CyLa)x-!P!Q5q_?ONA0|6vWjssCcF&u)0NXKxH zR>{ok(qo)aC=D*gpI<(~zZspxUp#q&5S`oEfy81lP~C*(E}bK@xI6h0b7cJ1Ot`AV z^F8LGYY~-!*eA#3f6WqvXB1vzXKlT+PdKQ}bC_6&UyXcP0Ob#Xx~f6t8wnW^`+&a% zgbtqzn$8KI%c~|~L-qZ&hQOhmQsIE1Oi0L^O1m~ieVb%QWLg@E?ivy!ebKk%%NgIk zq@Z5>pakN;CyV=2eN}}hV z)V^+_lFF7IoXWmLI^=0gccuEW6>UVlxl-iLPg5zX;qGqySnX#jE2huUQaX{KgCebX zuLP7ROxx2IddVuP2Y2R@sCg?^^j$nP_RLd{avO{Dt83=4F*P=@f4v*lgqsE^Y=Qdi zuhMLe!!#n{^ZD;k{r0|=QZ@m7REB?YLqW{GhY|v|Y@(^FrW)=|`qXU_Q&)`|?(*ZU zr8IZHZEQ^%kSufQ7ir6_oQ|n`SD@0nAy=*Rl8CDG3FRxlTxiX%tF^?yE2UREr zGC|KiK^ig9vB;G*QjRK(l%pEH^*Y{9S69f3hE`Tc(T_hQ)B<>#`fO6<_@CLvO|gHB zY@`c@XCuu{u#@}=eRnr}sDC;VPo?6!-I;0T=E`4lMevaPUf}V)tY=i;vW+sTeOd*I zeStK~n3fbdX{Bu5d~KmeTTk!`=R$OZ+}bTpK)FfZ>gaga-cshD;&$;N2iql5gAzc(`n)<_sV17sh^ z;F!Vp6jThq4ovr1A<>1jvtp*&sl1n^^s_Nn`KN>?K!@tJ`skaC-CopE<-bUq7F$#l ztDo_N1ALUy%bi>)VR{or8N1F(Zmyl!v$L3fTWKXFrj-V~Kv?BruCKZ%c!``|Zkc;C zEc1)g`fb=WbOGezBk6m2p;6(W<&fETwq)%al9;V>9@p6D|acbA| z4ntL&KBdQObSvHV62x9^g+a{aRY9^u*|^H0NugW;Xi#AQ8c319tI0(a0rl zx^`rGAS|CWe3jR1LWCRr@FV16hfddhIp(>osf)jHIrr)CQ{N%2-IWH7M_^?ZFmK|^ zeoa2s)jyZ%o<~yx7{Ur=W6ECmh@HAV=KLX3yE+YFf?2*1hVn@cIGj?*VpQ zF5otPGx(d9Z!mUEo{z!(E!B+Yb_O6MPHeaokQ-Ybs$EEf~ z#&vHqeoZyd>Ru+~I@JLfq)d;+N^DsQzI~&&wPFGU4}z41Z&7IMken6%tpmFnA6)RF zY9U7kMC272=36l{-*$&+?sp55U^mlUnJT-RP5*9A)#qc*L!AEo&@adW`1)midU7)j z1SA(aN3$aJC^ShcspYQrSW$a-*^{5J@jrRW(9>N~J8B6Ra}t&}eQNOJTRc&E6)D=q zrt;~pz_6c=F#SdF^1n1Zq^%y6lz+Dl$HPEKJD-V>@Hs{a^R6$Ge9sihR(nPaW|tbl z>;|V=;ZQar%LVUZO7Shz*)xT+7w7AV=Xr_E%zz31)`}%u4#slVX}ygh6Om5!fYG{3!UM>Hb#^49MYb}Ov`T= ztF7`pWmSs5ZCPhej(W=GsB{DA_SCI<<;)O#4dr8>dN>WOaZ=5(086@X|MEE%Go*%Vcv$QtDU!t+wYrg-@r`(i1Iqtea}3cdiSBD7Ge2fKE} zoKYHuU8QNQwb`|5RFJuusa&{!B^ezW<-`=wZjJXeok|r_ogAm}Xcy+F!rN+hY1Q7@ z_VH5m=k$wDW6FNHPqVkNRlW^FBnWXh@OB8G=UE2O_dv8)zBYO&G^Zp;@{B;Ecg*3Z z6&NnR9%fs4N`j2*yq$EJ?VS^^Pd&sghZE3I3KuxlD|f*fkhXjV@l@{@Z+e3T@bCF7p`Kf^sz?jtCJ-Nd6ZEv&kU!%^Z$< zGg-&I;VpBAV&8;*QJA8rwc~H)jG>wquwEAacjR6^9vX~4D~xX6qHn4=EFS4`_k zC9frPDSBQd_ug}KsYxQW>*&g!`gnEsNh%|rz?2DxB{YUIaT<|{)AI$RC0}l}g$Dxo zD4WG-Gkv*ywAJa+TI1e}G6012ZWNBh*HGH`fU&-(l#j{D5?)uq)VHZTTIu3(kgd5^ zp%kri1(m%S1w7iKQ}BnrMLT{9Eg8h`tzPAWS=xNNRv2z_TI8wETJp>Rp zXHy;ifK}S@8)d*IJ<^5j1x-;akbE zxL-#yEBt{q{99Yg8y)Y#L~}Ex($@02qcieJ%dNRBzYk@FfA6HNz^?0k(ZvoXTB^rL z?bYty7kwcqyx+?2B>XGy4YpLfE0w)2rOzroG&Yqkh#bm4O#9=~NCy9KNbRGQj)O{H z&RVZt?8>$%0AxP?^NCa|`zZm2ueurUax(oVI}PijbPOteS!=J?B1#R42wzXVi^NLh zaMNIFrLC?ep6l$`5eHkDpo$)~h>e+e*Mfp6N8%m*iZ^gY7Q5n? zV~pE9p&xu#KluHO+x-Z)!^1Td`Gwtk5SwB<0hYlq512^*nW9)u*kI)^vfVh#Y zrE}iGIiuJ)GmVR{q5~i52c~6Qd;#JwmgJPej^sol?4)xSGIx@rc4guHB3Y0784Hx= zFy3O~Za*8hChF|EQtd2UyKE`x{1^6nc(A_?(_-@%*e80RaSup&5;&R9Cx!AM| z9d)UK`0vi6{algU6X^&|!NF>Nupar_Kj%j^44d(E^IJb{?=kQ9OnTkWoMRcnfEujo z3nMb1tS@3f(}pmhtoV1ukmzQy3L61ml{*6s1x>+Nh3?A%Pu|0La)IE$FciPtF^!cV*H&87cPr!0>-b(m6AUi=Dw zP~REqqnSRT&+fV595fn13W60pvB9S?RTu$`ak^O;-LLaSIUwyUaj0F*@7owjHxJ<7 z(3tSLTx)2QR^m!de!{As8X89(ZQ`Dve$F9qNzX3);_JsfVb!mD_a}566J^rQ#g5)C zn|vdkw}@HRb11id;{(bDXO4#j!KqfwL8;`o9AI1k zX@RMD-R>T@bop53evu1OmxX$s=-Aj__bO zD(??oZF!xs_S3K-UXsd=H1}ic zNTo-b2VhsQUpVMw^kGE39^k!E+~T(;{B{TXXQ+H!rtb%7gRviUM2jG?*(Gd$1Q8T* zj{tr`peWk7!c=rW8K&}#FDCSfPgv=^P%dA^o*#am;ydI@wfhS$UB}e3C#>obeV6QJ z*QtBeBhe1EGp3a6V1^3S)D@!{Pam+)D4}?b=FEp#@+LzG36`2Gx~25o&fdY z#qDECxj3Zp&YUHML3h&X!eTa{hp z25ZXQ8$M;>9-veh%Y`8PQ09Cl8tjSx{OKM*1yLIt(QHtPe2zi?^9={#MpBK2gXsLd z3*#HZ^S_b6SElx`VFKsE7pt9Or+yo}H>auHF3lYq;=fcLPoX*-!;D#sVUksK-w4B` z6xuHyszw)~B-tZhtvdBqke8*;AcoHr)Fo1MUal!@R>kh^OrM1G8h5J1-CeR6gD6z` zCK4WV^c2#al)Hv-ikbYMq z=k^fx&;o=n%-vr95j-=2gXZIZ%;;u&gGKxgN4N)UEr@9~n?6aY3yKo|!G6?-{^~Rgon9;Q1MB~j!)J>bZm6=zx2bFkw+0s$9-3WJ z&P$qOO7oD#R9t*9NeCyht!57ML(2#pCb}0XsXqkf+K~6leE0wRZ`&PQXvHfP9!lQ9 zeaDLotj#S0Jo9C53Ed{9(At#%1IGP#Gaa4f?S`=odZkpDfL3qUU{Cp4gHC1*o`(r; zz5P0*IBF^)6=>=gUU!L2hUVaFx!q3s@O&3DLfD~&?2oi_{$%AnC*$%HrJd_1H-B^t z`rV%WIsMDk1(RFKfB_+WtIU5nztT&P3f~H5OFM#&?qCjKgUfjFiG};4sn9QzziTI`_}LQ8$>45ik3fi{KXb-^cP`2`dVsoWn1AP#~;}*ms?sAp;0Y~@P216+o}XV zB->hkkIb2tm19~Lxbd?uGzwmstnhn-bYKB&aZk)X6Yt*5#DJYN2u3uQ^&U;BU8NYT z(HEU#tMmQ-V+&$VXON9^^`4OIRJ}DQZ|&iYe=Cb|N%$&n<>~I^J}Mv$rr1wsy!!dk zRI=0%n&aqFU2vY2rroPYiQ8t-FP_Qf??;7P5?_O@o^zO-BhtJsu%uX)fGS(;(n{R1 zRbbi$Xbt(YRyD&;DXm`l?D&7KWm;~%Yj4>M;n$qOV;dFjXh+i=!ob>tUy|d6zk#Ys zT;B;lO;o>WR<+F%G3K zOWLxLJ(y}x_F&Wgl6G0QU@xN2@fG|tsiqeR+*-F5_Hj3+U$v54z(jNXWzfR)JG~$9 z*XWuNWFPOTJ6!e|2h5_H%F~uY@OfkETBUar|ppjLaJeCrpa;vK- zbC-^mxS4jI%g9$AqaH-J3<`JYtQ41quHfGoOP!8SX0}Qd7-`muZ$hWzIkj%}X#9Jl zdr~o_=%>OuDe}ip=5RSg#MmK4zj=&FnP-t}S;F|JhcFm}&eqC>R8L&~0a(|e`XWz%coJ_P_2S?yK^ZH*<&`e!>?={|*f+6(CN^JDdc;tt03dra3K zVbX4q(tSip**5NDT+(AD>n!?sZz_d-ns}s_madX-Fe%#AL*I+J0rs0A;?|wRr(C5g zr05QIcH$*|i94{1w$=IkGY9dZLDBY6vsL1HiG_pI$;;SAw~eIb7LTMl7LTxXq{!*h z+yk55HXj)ZpeK;%`v= zEf#-CqX4KR8^VR*Yv)K&c-6bJZ)cMAkbG8nHv0wbuDflwBa=8Z4spHcq0om^ULc!os5~ESJ)8_+#br(N*vm_@N>vGw}i%qUufam?rjutl#7%uDbj4C zIufPNF2znlS*gx9YDpYQhdqJjsmu9L*+44|c-blgUbaSe+{Cz;TqeL}7wO=##K>0# z_DQjWRvt4jKxS_rMee!821Z8ez6(D4j6F<6dv|`TO5jMwGtTH{aiXc&! zF-dY*Yoo{3dsOz3EsDegWeMQbbb8Irzr*) z=#wJ9&obPqUHG_8zh`}cwDr-fk#1;I-8K3hBY|8b)V+R(37=TpF&C` zqiF=vMaDG#d)Bd3LLE&vsbo86?N?8wv_)XwmD5|=th`dAthWDl~(+08aq=z0x z2d@UdMS7@(eM(%0J_k*!EZXEyZf~j4*<-gzD*KZq9X<@NhtH%MxgXdR&3E}7E|)QY z-kZ)a0Cj)^5@Y&uURL{2&Qiw5v%w`jG z%{T--fRRqlf#r;X`0b^K?qP}_RS)CEzlGZ`5&g?RB#Ec!F0I2*HRg>n1MaA==q-8N zD=qO<-!VN_SNCNP1M;!2bo zxaw=-&+>y6fPgy41m4ZzS>F!T4doN_81G}OVz;=p8Nr1El3vFL>_QV#wQ+b`!~_f& z&P}@N<8A+Ka1!)#7Muh(q|BhjPO596rxSQFzOmt=-n9ZxDK*N)D6xEKRj+5ns$RcN zu`4b0$#Ln4;2E_4HQFd!k2To1v@ArCb3W#x)SFRMeBbb*V&a!q(;L>upZvLaKlx62 zH+gBs<+IORlRP5)&$QvVrqtKDe^j3+3w1_&xi%n0j-!5N9>pD%y;;%=4z+LkK7>dK z-XX9UePkD;V~Ujc0BJ$P_%VO1DE8mxFn43b)Np8WoW))f)&38RGIwFz;F8f`cXuDW zh#^PZQ~o(o9yZ1qvP_zcER#N5@!^kop2-GnTR!a0LsG=uM+l3l_9v|zpoRDLe5wF8 z=pp6TK5&uG*juCIjj^amPcL17w1?;@a?#xJ3=`CK@#juc@NI9oa|%cjTb=S)Fa;JHvwgH0kmFxN;9oS$m#Tt8ybb8=_ z45ZTo6YsH`#FW*15}rAwPXd^A@?ox(-oVa}&;QHO5fTT7=Nkl(8gAtO-JU~e5**6k zDX&!B{`hU|PHHz#1L+$D1$E6=)js9j;1~sJp1d%oyqDJFox-t;D0ciAb}5RO)FV`O z$ZV6?dRt+yGGLdKXW6)@pv9T^7SGcre_6ca&qq__VxsnYo$JSn_2Z*aXBHlUKmKhIS;ffS#Kd*JeS<0X_q$Kh-?zTo!N33b;50VFU2U2F zNjp~$vg8IE&PO<+_vmcJJA3ntoAG812C4YFC z{r?-K)2?)#3O&m{cd`@qRkIKKmP<|S;Hu8Qun*n5Osa}d9NZy)a*nV%4fltWV;lHX zNi9fTQrKJA5p!CnW2`V>E|hk3SobQgSxOd!K8v6AzCopOu6j_nxYT~NC;n1)kA4id zli$UjQTAh}`Sy(B!qpjGKkD+(*Td^aUmm*s1xh~}lb(-qsog#!(jnW6FAp742D9aW zGU$?`mjO#}eKw#mH$tbP(d@1r1u-diO;tN94X_ecZg}sq6^>u?OhdhPKblYoZ+j=7t=_e`L zAyfus07Vh*(2d1c(}Xe&fW5?pp_SprK*}O}*vGrO?EyTk{28I_36JS-THeMUmMER zj~8~d*aH>NQP|y2Ga8p(=#*YKpmufsb+q!n^~9UX`#IJw<$bC1eLEAr>b}nSXysk& ziPx2PbFBN6ccq+zp?hhLtrcweG=1$raA4E-^Fczkby-4=;%lWyl)JoKO218(lzwaI zB{tM4#aD;AlhfFYbm#-6BnEwaiM!2Tmckqz6qzLS`iZMk{2|tmLn>bGVyYC$3jW5ED*+Ba{&O}5^&bG#WIi7L6n9|Zq4vASP{TAG?0Dh-C_3N<1 zV^yQAYBzz0IsNfU;}ByS%HSyZN@dV4->3`%OOz4o1w72oD0QsCR2@j$ihutdk_ul* zoW*T%mtfk4*w{cP$gmn+i9c}$?P{KN?|pZDji>m)K>=ss1rKs1Hb3_C<0Kb@kC7lk zs&Y!AJl2 zHjQ(Pb`85enhNbpeqAd+#eP|)b~eAakzG8e%AYSiB$`wC&u0vPYR{kn7ik=EB(K~` zoHX2MwOV4bl_@%#*kUJV;wf0{nC!BK8yOi$(EvF>#=qO)8JNYJsd|O~-@_;QN;b)f z5`G9F0dK;E^6IW^^{~?2k1RIiddHNbjBO;Qj(CgtY2k-;N(?e(ZNz>Xq%Pdr-2Jp>NOYo0UIzY0 zX)v0S-;Aa-PH6C*y5un>NCB0$+{fv{v0*A>1se%T`hbDx}0xE}`^KjOb_#MZ3x z=Oxe87TLq=9N@6_&}e0y%OWq0ZTh)5tiD=Tvv>tGy?D|893`c5guJa)bYJD?9_Sn_Ph5w7lT62=sVlLF@CQO;j3Z zuvwlN=-Y6C`iA&v7LBU=i`i%LO9patXsozC-YpFJ9SU^wUKf=u9zvuJcK|s@+pXWgsd#VMR-mr81;#_EA;xUv0 zj#s)m^Kq1_Flod)kO94v>R}9e+-skqFA=tLh0^Vsv(7DTks&oosEGF=Czwj^-VzF! zu;tU%xzZU{pPf#n{@$pG6afns>mj?<0fB-w<^5wR^<)AJf+uEyT-Tm0lCvfbanmCp zr|dp1;zADjZf%p8`KiNa9$S~szWQoC*Qwc8vs%p#)pJD-GpwX%S3Y0Aok#$2>UW{Z z93(RRz(TpP;W;81du0BE}es>CtJRW3d9W- zeFsw33*pkAODac>w%Da~ISFeA$4dgX*!8YZUvkuQ9ltul1GEjRC>2qwSW5BTS3i_~ zyl>6qoFi(*Qm8ymwLd=T{No&$Cui*vk)9+p8dv;o`)S^skxKC?Z@1mt_lXw*4Yyy7 z{N`(KV8X}>Dezk7hfG8lIBA2gTSdK}oKjgojZ1yy)eqSir5^+D#dO zK94#ty4d&#&8;afR*|Ka=fS)uyPio5e|>x*V3dyVZSU4r10$zUtE4(Mts%dH&0igo zex1NP1p1F}r6sQBayt`OUB%Yzf3yasGRP~;;Au^BhPPqREV?u9%>IYOIRf?;Clf9= z0ZYe!dh7(bYzASl0$abpz>E$Wn9;J6W2wCXU&Q&t>rYAlS01!xw7NVfJRNZxSTHY= znLBzmr!9kys_*Ay|Ju3 zZD>�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%0A-i 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 z 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

$>s4%dC)yn%zXs;< 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

-#W8%jmE+3@jxR$2UwQz(0N->c1D;d>o}2(2=_@k$+Yh)>6a`QE0gm(p zc>4)p4ck2mZANlD*$H^^h@nSqGR$S@Rg!-Ryj$>Z;LA`^a9(?YI05#(6IA$e?e&N+ zE$PY4$r;H-*VYd0$J!hRd@17i0{G)6|3BahtaHLUfG@`YUj&x>++(3N%Cr<;7V?;l zIiS~O9}k+EDtOMrK@1<-D@gGVu>YtloP|9*0{Ad**D$B97ve)&2p@3YtsEcPMTQU4 z%ggi2$}f%&Gs>saHqr3G3iz-it8081p~8pvV}mZ7GtQ6JqT~258Td%aD8_rHbr18N ze{Kx8`t}XDDX&;YyxM$LdkycL(0i`Ql0VvA*Jgmp?Et^>{CQXh*=H6qvzq~qSAm{) z4(1Q?iywU-n8(Y}!u%g4h0HeOUnY6a0dM*FSkTnWZO7}@F}a~Rs_ocF?*^PX9ghE4 zUM_eXX(UB?fB$Qje*b{#ecMBV=kYX^-{&InXWyS@a?8d?BIOpj^77@DBhKh@i~LZe z+_K)wx{)z8E-#d+Z;MXkXxa}dlH%I&nrF2sp*2}O4v{83lM~M zabt8}0LrxZ?o<3->g#<{@EG7-7tAT|42%7$fjK!~PVdK)6gNCC=JCd;yP>@S^|u5q z`^~NT4WDByGWLZw+PqjHqCYGARu8|`$1+_IpQ8;Hf4iE;FrSPK%k8JQZEC10URU%) z-V^E=qm1(3xYOJ={8Xe5tq;J=2o0%la6g*X;7C_|X|}_}eJUvoJFVRJe7b}0S@E&m zmV_1zepqfSlpq5i3BSige9x^ZD7tRH>+@?&wXb9U)p4$bS=rf@8d z5*O!~FN9*^`Z+uM)fYb*xwie#$AJW9x1l+X2NCaYHN^jTJoCrmIcR%J`N+#1K+|*} zpNzObDz@rK@n${X$3ICi=2Sy|+MqG{wyl%AjsGN=mng-tbW|nC$I10eHI=Q2>bQ7g zC@%iyeJm~>ee;&AJ?S(q;1kq~Qsk+rBn9(p7A92{H5*6@#lu4boXUM>dIzP6`DuVQ z`|n6)XY?c5BEBZYXwNn+kF;mY{2Vu7?9265TSD zUN}^=rK$X*i{1b|e;YeHpraw0hV<-M0_wOdr^nGv2^OCw$$AX*!Mp!P>W+cFc68HN zOWO#^e+XpHBOtf>G{l;J#)tI>{oKXE}*}+!P4qEUDVV@^@94xD62ffIBZ% zt3#Ccp5(s4b%Gmxjicc_QAV>&B3|S7R-f9InOSM^nXdspgElbCjk8g-t(V)M_yg_swggy07Ja1ShKPAY^ zj+4yyPkq~Gl=x^P&0jx$PQcY*Os!pAmY1KRLtnInHmwb4)53Squ2nkSAH^@9(#e+f zTnAfLEw^O}l~LjrF0%G}PI8&=B=Jo3v9{6HRis*1u`hC6>6fvtwwcl54K9COYafli zu4r=|sG94{laX^hI{VUdt=WC{Kbq^-8J9oT^S?5mcHObad47D6dEy*LAN|kvQz-2` zN6Nd0DYg?}-}+x9zwLYnzq`uze8)`z57ry+ zc=x+{5~)L-m)1zXpT~|pTVQXFXEk;d`FC3E#q;Su|0|Py&%}}l+4sKLxEGn$(cP^=kRfed@r6i56bw9hQJ=Ql7Pz=mi(fQ?ao0GA)n zbTJ=5gOzwOX9VU3QgW@0BHG&Qfp~v9U0!40{`uC(yRH9&FuIx571-TILOy!+8Jx-w zbUK4ou;=P~FE02WbLt{}dK$(ueIWT=2S_+J!}{aE5umkg!awI={S4k$pbK`}B0UgZ$mDaK9yQvRuu}JH%%; z#F2>j%xN)Q>u8=6Tt^Gx7t_(6nRWU0h#k*Ii8JqjLyJ8DR|;Wgh;g3kGejIhANB0l zNK_y7M37_Edpmd+yQ5T3@gr4EGqCsT{}%oIdRxFlb1|v<$O!d;XKs?U&__PNQPX!M z9LK|9$P6%aC&19k5DcZU8lWKKIdaNj&967JUt7mvR_eOz_df(V|sHJrxGjD*kE;Q4Og zk9TZmd$Aq(V>9r_v2i@M;`8WhGxjE(?r&_E2{K2|s-llM%o{)J0_Gp-46_gIWH77L zF;QfhwgD{f_M{XxPfv5?Ja3BQaYvs=u4^iv|DG?pn7^^}{HtcN`zJ835ZyI=9-ZzQ z=5(gJ!*@o~T|4~0n)@^dBD?_I-2?j^ilVjO%S+RE-tUo$gOcF}2wUH>4dd>>?jf9LM>^yfO?o#wJj=)S^WHk%vu2WS?YqQDKwhi=g7Jz`y_n34 zvgV|(BIVwBoTlWqMADSSad`!t_PT1QaLMI z0z0b_M_3KTvGADzF#OwnBpm0Vg5eux1w3eHJ=c@H7k@ZtLjM5Ps;ZAA9<kSf7S8JS> z#glH2l6w(j=*%sGEe~M*^oIZoKd4}w*DGv&2;`QDV#NH9J{oX+D^fZaG5^zD&HqI7 z`Ok&QF&@3nFC-nOURs?CPg zt2%O2*?;2M32;(=A7=5KMnnuyGPm&#*roMKs(0txz1T$In;@^I;?Sq zxvepd#=&!Lnd^icT0=@C6$j(5$Q~F3Up&d4+o8X0 zm)T#psPnrb`+*Mqy?vSe`F6AYtkSdGXmhMT_u7`-JyDAwnw z>fV8Ve;9cO;Ha(%aP$shNla$7?{3#dx1ny0BhI{|tacr(b@#Dy7dMsFbg4kQSXync zEH~ez!}w`x7hA&Ycj?U5_|boMr@Em3<=OAn!dwv-6F4q{yzH4B*Y&!Dqs-Qqvx|5( zU8EiLaU5Z`rAglr&t7P|E{;r4U|2ss=t7>DNk~Oo{OWY{=WQ2AUS=#gj`to$KY@6s zYlpcP*DU?0(m0&-8X*|V^;M)8eOu^Ej{6CQSh47iVLrw66h`P|mh?=h0FV=mgsHjZUUV>R3pX^%ANMWS4wWZOt}v9 z|JEKL2f_Z7d`0sZ`(@~-5%%Z_uA@cRz0`W*V#4&q3&e9Ip25SM1JU7O($Nc^QkZZ3 zhg{D67YY0LRP9cmyx^%g!D6h@59Esuo{TJ{zzVzYzTS{l-CyI$Y8ZduK&_ij<;CLm^ymiBdu#bSP3-Aqddkzw8MY`xdx-9Oe!o7Uwuxc+46VFK4 z!!-aeTjGSUFI@%SmpP>Uk$iD3iMkW(29mJbpPD!_Y`@-p#ZHJ-$3a@3auI6 zu!DWan(+w#4tU?ajn#}-(*_&h`kF3iLoWQkryp@PU&YQf8g2M2qTX{#1Z`NuX+v{S zG}^%WJ4tDSiN>g3=+5N+x6X399nuRkU;m~+W8Qwf8RX@JplwPbiw9{f?_B}US3pM_wlN!M!?8%({!Bc( z+i^0ki+e1(pa=bvD9d49l*!#0{&tL`L%o*auu<%z^IhW9-S`f7vEKk+f1 z=eDq2{C_|H9MsM}-TYHH#6GX$pR3?=H|(k5CzU;v?`bpa>F$pO_ZpQg2#Z9&~yS^8GwpRQwyKdC;wt+wWkXo<;E8y&+6CDB6DIH{=(`mYlSpgALQ@s z&SbW9n60t+Fgw4+{QnL7^Ls!0{1Ja20X*ze$!@-JXs&Q0ahLQ0em0!hD6;;L<+Pt; z`*g>5(f8@prpSGw`9Eg-d;2u__UQZcEZrxN)iX)O+HM!3-*p!v@46r2c8_RvVQBrI zM3z^)V-D)+dl+ujVl1wf`6AT6{|39~`ihBP_fyyIZJQM2=rA?CsV|m|uL9PHkX-&}K9S<6JhwDNe zyCI1rqwQ}m#^1fOJYD;w*egAeB&Wp^x23;i(F^GbcpocK1G@VtILE(&OcJk4I0L#u zzbEG}%M{XRe5ke=<>@pUABz43s+XaE1mNg_g8|o;JBhmzbEw0-u%-*%70lBRFV6MM zC|Ki-q?h$GbFCJ}8(m5)cXx=#1v>7X17|+D+?MYK`3L8s!}>usl6(eaG6CjdDQ5my z?HwfN4A1G%C^8$d;-l|qBR0M!xY6&ss2b~hv0Rh)&cJ$&lbhZLSp;+W{a9wEvI))U z_rD~MYG16XL>teWu+Mss0p9}LfHRao1D^RD=x$fH&D#a~nC}+g4PU`r-Uc0R3Fv4q zfF745CXIa<&iz)9S=ZxTDpRqK^}8b?<6rboNAXEkP(NEJr`V3S0&T=T|D*{Z7P4}>pi`LcxJ^RT}+qTza({Ah%c9p8`5FZ z<<&4Y*5WkV(f6m5FIB4$*N!=8F#inAJ(Dc?51Lk|V}2K;8y$1ewBa3d&sEOG2kniR zi$>O@HoetO>ekrK+tjs`+dm?8Qg`AHKQqdQ{|e7CKwd`QQ_gvtV}G2J2w12gO(s&;H1xd3u`g(H0Q@;%?q|905ak~2SFmR{o_F_$wUS-@o)zq4 zfu^bm`#1~y7xxqG32m^?XGci>HN(#5p!|w=t@b`4(7RS^%|h{3)m^I_-ePyHe#3J9 zWd9k)+P9K;sLyMvWOuA2ITY3${hWn4fP9)YsCuzIL~7`C|gBBPG)MH9o8v-(=L*3NK=f zFQdE;be;zEZ^3#_!dlymQogRVG`|tf*`i7LY|xWab|Eje=tv9R6&S1|&ecHou|5pu zUTH5Y&4)F%B$k%v*9!XDM4o#k1?}n63cSlNOj(A$382N)HiPrUdkaYWOd8^!sra6O z|27KI@4w+ZceipMgh)I_Zb!#BIrLL2v8IZj8sjy-g|nS>o9ekrKKnM5Q#FP1>gUT@ zUI&~T&gr%UMvEuD*G0Tf1Z)`OC(98wZ2wi*XvO*|_iI;y?3-=00j0W)UXE z@=f)cu=ZNG&YVF`x|PMjfvyp*y~6XrQ+}rFfPe7p)PaDj>W!d>%Bi5o%)Xygwq7&3 zQM*?1X0FXGA2XibdtH)M$Z8ONCo})u6EMbdz{OK5RX#Zto%P%r@N5q--RpN;SEe}_ z`S(}gvjN^WuTa?pKV-3PjqrZqeTrS(C_fCkXtX>?4&5d4AQ63g8wuwueBc1TmjpP| zF>WSP9XF!^I1v~;i~~5pxRulx;%p$i_JqLhto0;e|4pg(VzE1^@~Q*;4ort!ProaR zzBbIqc&QvuAQyzzb`4*fSwlP%2+Q*Xa7O3bpd+><{;VN}J!|y^ZB`PFJ?f{qcG7MMp@&DpvM(tw%z(WqT8NN zpA35BAhSI;FNhp7h+X^E9l3&SarVvj#qeqULh_Hv72JbB9z?%eVf(yY{Q$NwFYfP3OMECF ztp(XgqIb?Sq@Mhsi-%50VHu$lu81pnMIJgY>5`?h5bCWM*4JIF=#jhrS!+ zo8UX z)ZGo|I5!yd;CuFXk~~7AEl;f`&hkL8SiyzF8B9;Upk@9ae5U2kivP*%d#C@<)t;H; z)6WGxHW-`6QFDFQ|B3o8gGv6Emc^}}3o;mf>;l8{iLXS*a~wN2Lph67YNy6n#3Xta z_W#;h{2BJRb^g3%%Dy~aUgATzn7)hWpo=B$JlJy=&_9f=wjg{rxr(%b&5v5R42OCn z#@1t3!k-{{Z{@ji z@VzgyByY0*%k&}Jk}{4=7*hLH7He}vBspJ0|2Y0ppx4J?9hegf=QLR)#|g}d@LV~V z>*oaKjE8Y0_*+*x73MxAUm}F&#FAj%po8ap2{h~N3qjjaO*h#OxVN%Ht{i3mb7B8i z_9Lp;#&79;=jEc~rH1*DagD(^QqeG9IctO51J1f(uKKLgWNgNuo{t$c)>P4hVhYq90c7R^uKrFS^oWHoL-i6h~F)N_nTiKIVEU&ND^%QW7!=U z&l}P2$k2H0r7TwXSUel6>6pTs(&g*945)oQIv=L@l2(T0K-5LhtOa>g$y@a$$HSw5ht~+*#~g=w z-eyRyJqqyq6wmQCp|rwRMOcovtpKMxqvm)^2<3R&2JpNyN{+WcaLY0m=wsVS-4ysA z+h9zF7TUC(=4ZLaz|T@Ezwid&GxtGt=P;koKhKXShejh9KPDw+d0zmN#jC);0JRrD&2$4!+t zYfQc)9#XgFV?yn5F&tlaVQfFhi6wU8$2cmC-_JmPrMa`I8R!w_t|~=d)`#VbPc^Mh zM|%+HAvVP>3cP9==D9%r)|N>^wo%0{x)0z^WgA_BdAc#@1=>bi2LjL6q){8`IoQ{R z>NMY7KfxJvBRMR$My8DT^)Jw)_Kjt@w(H}d>n_j@%^OBwa;xtqrn_*+AITbi8s6O0A0GBu8PasZZ_KVd$nLd@T>gMCN6 zvl(;`*a!djpmSjReK8<|qKzJ7vv^#W0q|Oh>!Qz9ab2nKe>mndjoMA2&9SayKGUMc zbty5Qq5k`X`=jgNYpefj(B%*dFecxlL2 z+dJ$#`USPIAV1%7`T0ktiX>$#`d+!sf9vaNn}3FUKku7tmHcaF6Zb*%4HC&e8g#?L zt;D~H>p|Ba4)c_U`1e1+XVw2l+?$6-Ro;E$_nFBulLZLb6EF#A%?v0S63C#Ili-pB zml9)Lp8{H+&Jd77YfC^SfVNps89}4q^RQUk%;0X)GExPktwCxF#ii6f70|XxK!vK1 zVafS@KKFf2auS2}`MvLTy?^9Na-VbV^?QH!1$5!SBAczirk{}cVctB`uJYLk>32!G zYWEG^F-Q3ZUq>B4LcPp;Gn8*I@7tAlr`YrlZngO`EI*`t{*+H}y7c)|KEdhI=Z`+Y ztr-7N)923)8)-P}`m?}B2LA8&`AZ)XHU|3qr4N9O`awQ_17Sn;XSctLIOXg0?p;Ik z;e+++7yjn}S?J%;+5a25)9f(uO$OFTAH}z0m5g85d=?r1`$qduPW8jhH$PK#Yg}{t z>(&%#R&F?TS1cKkGP?MckTSYx7d0E&MG0Y^@h;!`%*5HB_4l3lx%xZp^ZvG6^Y0BN zyk21Xn`}6x=F#f!ZM&UuC=R7B;C!rkZ2w+wv3)KZUQ%<>ekJtjs?seYjG>cxXXAN4L{Sf9@Xs*cQ}|7JhBXW5 zD{u?$#}demu&tJQ-mQ&h4+ze(3gg{7yue_p=$iYt?0F z3oPk@yff#+`1Lt6HBlRLr|zLnp#yVp-=nWih!H7oz9J%d`ObF=3$oUwx`oGS#(Hpk z&;uDCRs08|g)l1h2c%K>K9pBq?aD7*=Z+P=>=cX(T86t=((#J)U0$#maJ38Xv2WLT zrRy?dMIGxz&cr>R9yMwj{!}J;vP2i;Y35zTx^GFXuU>Z!_IG4i)K#~rC-Y*J9^ zw{F~Mz4S2fcNzM=L!*qK^1s~sh*;w?^XXUM8Dm{8VLpl+<?ym zs99U3N7w&Ji{uOwZH&j_o!g50z2q}buyeYI5?`0!QSLc6S>@v<&8JPd9CLA{JDN%3 zoh5p7|07C=R2i@INX~dMgL~uCxOYPOx=`1{z2P2pV}H7_=Y<6c>pV&I)t@9o>J=3Jj|Pxb(x5yULzt|H;9P)QBju=z~2wxXP1aj&vWu$ zM*HJMdh{ljXj>1t&Slm!;oYX3pR-y7d9PQy>#NJAeW&L}Jl_b~RtWha?`Fq>GKZ*P zyw;fUkV}*L$+pr0=4Xd%TV{fCZ=U z=4qL=!m0Y+&Rodo+l{`78@T_xGmQNjhrScdzCE7YbrTDOXEOSQ3=}0i&&F7!C(G~~ zyg2Slri6zJac(YWJ@s3`TY#e&7n_K?JvauGuxF0}eMV!9*{qjraiEdpGTcp^hXs2Z zHKi}L$7hbjc=TD9_1A!hq%NL(6m#5z$0lC(f*)_FlJa(2!zA^dv6kq6pUUbmF_2upEC@P9V=qq?PvKca7{#UGt9`6KdD3;O6$W_Za7v!5~%?3u1~ z(^fo)W4In2zp=MP%cQS`2$%hvc#sOrck*7`G4zv_E~2Hec+ZRnaZMF6*P4qlA@g06 zXoGSk0&WJyg*5$NiVK-HSM=+am;{92FTu8^C%6)|QgSGSvQ!+%yUmU*wuZc(?iHbyR6WuXqjDvZ zSN`Q4y)Dat`&>WNAKB+{HUB71`L7c%e}HGq14MtX+v9X!MeU(dzq4o3%(>cvR`5+O zZTbJ2Zz|Bf%r|)oaVLY?BCZ!ari@2_9sC;Sof!ZPA0dhx=qGaF%Ic~k4^}t-;lb)8 z{JsYNUyI+@J@ZiYMfe@OU}g0q!yc}tFEU|hF=M82p6+?iENr^wnT6w$H!NKF)-wx} z@&7~k`SihO7OukoFJArJ!k1P)xA0x8{X?hbEgL09YL$@PZ_AoERk&+^4?HtfB-9>^ z6*XmfV&pW8H8o9JumXLOwoXmb78FR|KFGU}{ik5unH$7{?T-4j$DLYuIpqDzC12q5 za$T>VHcCplPLWibB>PUT-4Mgy!)kT;|M1#n4mB40F2ni`Vy*=k{}uGjJ~o{+O3s&k zjHun<Qkl;HRvOz_#E`s!rjJIL?b zoS9puzbfNIx44r<3U$VXFE&WuP2$a|XPgTl?-vz5t@846PMizj%RNu`<=iQJ9_^eW z_dNO?>U9!lJS^(gFBFlF9HbA~MJpj!eGlXLt=!fX>Mr_+%o&gxE<4cMB5ObfMBA*V z`h9gr-XZH!ME$0pZf>lIE`3Ubmc)tZqVq-Mhr^Yh?mEj)H&e6u>E`y~^#9szwA^a5 zXJ7wmKVE$Ve;>F++2d{m{-7Q7_~irbpoLhMD_I1;?J#BASM{h~IY_pB)y&y~b!`au zwrBSknLBLpu_re5%gIkTR4h~>_^rdvq_BtnU%2nvE2J#&Lcwjy?_<3)Zwq~iJ2$C3 zxhowOuFDF)eau=zc6h>ZGmp6DSm5~P(0)4yaV}El@fgiy*Ncrgt_7n!Wc)v4|2wBCI{6QL8ykzW zV*H9(lkG~#yI+c9*HX_K$8Pa5Unh>8^10m}d-_eIh3lejS=xt1eDH0YYXG#{zg3Sg z{@dbZC_mL=y>9BR$)_@gKBd0eb3xL&Ia@{K0*o{Dj0ll$Doar{Q|&g{gKx_CGVd(r z0lB}-*C?oWOA9Apy_vk1;HNnz`GElQt8$F(E;9_wOGF4epW!|*e{JWo)5V0HuK24$pHCz2)AtG-$eV38sl^P-)-jDto*GWsdzy1QJ$~me)8VjtjTp)^P#Os z%7C}y4t;23R)SZox)?uz;e;$v;&zEWp4k(Fe-;XltOif{1@PTF6O}E<%JZ{cBOcEQ z=LFRKi}dAEVy%#z@H4Y}TZl6x9Cv&}@<4TQj1dK&2pBjAa6QW*qNE+OE;-Z2eG%9b zaf!k;1>m9l57pN>a94xq%m2{!I$2`^a{5Wi>G+{v;jY)Yc6WG}9N!ftuC@FM3H!TV zQ_nrxpyxJQ(gufUKi^z0X*+3&JFvK?QR=?j;jXdqAsusY#Rw@2Gj|p7SgWS+7|vVL zQ{LTo{mhpETm*V?NWzZ@&&Ic1z)7UD#KAll>eM|ajiK?dsqeo3Z@n$s!Sm8jzw?h* zgh;^4+)kaQ8B>XA_kyQ&@!kM|<}F^tL?aoY|96D%wXo z826Xwt#a#;x$ZY}nx0L__0I4%R~9JPuj(|4lW^C7bB@;H{>=-_Elt8*pgkP4H+mt~ z^hey)??XN@uxBG6pNJe~tNMeCiExGYrYl?b!oY&k@0<4U8J4XZa|J&?BMjcP3-r9u z4V-Gmkhmc?VII+h5+Un|@}5Qy8JSA}+gtNhuBHHB)=ytq+&kJIIzgW+&J*(95T0qT zBFsYukow$To;S2U_p!D!?cYAFcme9b+<9mB;iWJAhySDQx9_0Qo&?!K`OgEs=-bA8 z=DgqIU6L1hV?%F?C3o>&uZkL(oO@>`=4u%7&io(|FjS!KO>3`FvP@I=?hjuWnRZ&} z+ofdew>ynYR|@m9B!#g?)^|JV!TA&h{H3H9gso-2!aa)5EouNSbhS{n?zN_^yJC=U zPz8O1&Jo2GKUHz(4Vh<3PLTiDrbk=yZ2X5UU!0|rog4>zV2cy`!7S_za2VsS$$Msk z_cS(%&}7JoJ>L+K&&?RI7L)fp^186`p8fi)-VUQ>$Hz)`&j#Q4MD8G&-^Mpaw;1ia z&zO9psSgfpQ2Jo{QQP^+J2v$5lhztkt+I@;*rsaD`n7r=b!FW*>e0>gD_`JV=hpN( z#s^hJm+q^bJtnwvS$eQ3FsC$77g~gOUZ~xb5j=7|8Ma`KdH-tXFt|oN+#_K~pGpj=h2XrduLTyv_tgA1&{ix@>_b7Iu%>KmQGu~md@9eyuy4f z$8l%2;a!(YtfGCURoQ1=u-Ru;+3hpw_`iLO2)2HsKfj8Lc@=E-na$^%Jzop^<=Fb? zMq6vYjb_#0oGpCk2}7Rqo`T!Ps{DWJds`lc%&-J|a_a~iUNHB>k3G4h#b_r^A>Z-RuTM)`xa$V+6ca?T z{QF{E?lspr6?;ipoqCxD!)SNA2@m+WhR?*YPG`f~&WR#Am-y;6g|8YsgYcD&2LIi( zo&Vs7!cEkJZ5pO*t)02RHe<8Atk0bNqWx8JX?h0j>Xyf*0C;RqSDgwEeoa>#Tbl&DbuYq%D(TMf*>zGX(r} z0DiIo5BU>@hM!FQe**B+`4#YU_$%Ot{WAYnCtxSuVa>VO=r@c+9|Dh~F^v3WIZ)tDFp3;oJUd<}i1P_ABu2ew=f5 zt_{{~=j(gkXus!-%7rzU*333_WEJS|0ArwV&Ygv#eO|AT$+*4Di-wNd1HQH81IP}? z&s07@jIGR=0DgwH0B43b#M}Vop5{g?HVSlP=Evd~;g>N|O+rk{`y#J2Ps==92;Sc{ zfqYJ0k!ym8eD``iLO$-FikIE<6#Do{j7TX+J2zU5cNHH}->$~B?yu{NDQ`#%^zYCzvb=6Wj8w_Uei zHCgrfalClR;xDfe_5b3$E4P~bCFWhK38}+V{6=2UNAaY`IdZ>p(f6MnqL^owH(DI? zLuPAyO!rj+hR8oQB{+ju&(^oB*RpDL%HYbEv$kr62u=s=a9rkzYQ%YGJ)lLL<{bha z@g1D1@aq`JAphN@N&mfk!1&F$d%kRSZ>*Z?Z<=?z1^8&Ksi!;7v}-?#dsO+B9&P-S z(WaX=Wawca4)`;Couc0`jxl-7y6aXi82>a`wz5%dX`PUGg|np z^#aH*xQFTJ=TY86zz^?Xex%=?I}b9;$CC&8z7uxGqrXtZw1Z*nB;e?D(*}0G$%C%5 z{4EFZpnl-v)^kO%pShRoPnUQt8VTIjao!+0XTzavcRg*i9b8c!qK<3#f8hMkX5qEG zz{FDW$n?i>I|uq>bm2YTd%IoX2-;+fRzTSnG|lvVM0;&upkKykrhVa<>6dXZSHber z+r*k#)E(h}2jG%2XjdN25wf5cdszv3769MOKIdU>4-OZ_9QPsMQr;)(I%oqro4#X# zc@Jjto`4o)kG9HI1;)LvB^5@y$&!;{mLN|jyFFjvGicQ_{ z6DEKD%zxVX^XxwUJOl7T_`Cviwo=oARmYUf=uMFNk{75iX`%cNIH9dt+49rnxABCv z$;zKl+Vg>X>S?QHTSVEbyC+-r>P%_Vswh$Z3d(Ms5N>P|YlebN;=G|?^GNC-*tErG zaE=F4Imdoo;NN~baE=veU!G&9IY;^)xXk&vF+chsY)%oyhn!c2_`IyZEqxJg!<<(M zQ|9&!EpvO18^wf+m4F52Aee`pQ zw07(u+eYBqiDuhgd^-_sX|}dU&9*GvH~m|pZRx$*0x?6>RBDOM-MG7t0yl8ZjVFyZ z){ibEZK5yvICY=%WWCddwSa+0Wx=kT1kIfg{?I6Kvlh%a`k@G^Yt=q9YVPR-Ut-A= zdt80F-S$7(+cE;}ev_9TW5#RwhvcP!&-a5*o2>Ln{%?r(cMd7K)O1Gu&ckp2PLqzD z3w(z60`nC<^MkgH!I}uK6$Odwx`BsRo>O0);Fh`zUq!aEF;`?O{ZyB^#s;j>{ebXE z|6GmrS9R(+U+eoN`?6;uTsM+;9-RDleXi^u(^!k8vE|$2qjWEra=pz{GLF^^t zB|gEJ#AAQJn9o<T;Mvim_JoCwL#S2jPeK zv7j?ANch?Oq_UGM{cmnKI+M1#^l%pVv(jG3hDtB7N`7;s0N*&n|NW%0=kcAaGe$f6 zB@gq_M9F8r@DyP*DPsVS{SVq0wvo?PKCB;L9MbVGruKi+nFzSVc^2en_I=Bk?~m}k z>LWA!PyFD$2;`RNAJE@M>ac2xOgnvg`0n5Jw$O*NGf~=&UMR>PE&GYV`ah(f5WcZw zN15R{Qcof$N+;zkj~_5p#d^%{e{%66V|ixbnL%nnYMm@F~1Y*xIEjd%!%0 zv>or1LBROg##IC<*i8 z-#1{r8yVAvePB#8b6b!%=Kj5leQh76N7D_X-P&vJ=^nI44jP&A%uJn8XkEX~=%s_C z(TUA-hSgVJNnQRn6A#4>!b2wS;0N!(_J-oqZM02TyaV}&CAaprTteG2Z4pA%83fN6 zC?H2H|%p9{WM(pkkzSbRjxZ;Y04z>UN^;7ijuPcP;<%H(l= z1|G-b7D3H?)|6adolZQJEP|&^IimFy5y=<%Z_96!mCatt)MmRUMFfut^LzA7{gNjg zyq?(>27jV#$qBXFM~fQPO=SGwObv7gIJ66A!nO|~^L79(SToDDEFtK*Ga)$h0kMEE z&ib7Nd)#vGrL2ejugALh9s8m026I|cZkBiA@q|8qop0jZyYa63lCRD=AG&YJ>YPBJ zrwj7JN07}b0ZTC{$}f>J1Z9lPqQ2VwPPtFd))#jtilW&mO*sM0)MtV2Gd_^HX+5JS z2CK{*_2pXQT0RFeR4j9lnt3iF=YguSRx` zk{3^y^5RBA%8O-gQM1t&r~JpYN?xoq_lY_>+<~vKAEbu&z1Q1v68rQ@UoDz+X`g=* z`>+`I$C4Kg-=XvpmfdP8V6DrUQ}o@G%EkUn++V;;Wo%PU_f?Q1uYwE(S!vER@B`Cy z8N+dKnr`OPkukI3qc8O5QJe)n--_{=)DGOuwp0Q6OpCr7H8S6a?Df9Gw&ymP>yl%@ zKiKQvX0ww7+V`#Xd*> zt!zR3>uX|t1>ohXK)|$hB-AcDWGMfSQg#34V7!f|m0qpW!~v3b+uHwkq4_uQmi#}W z{y%=>tD(=Y(?VyKI6`Muh+yF;G1B#*V@BR=Z9(S5=9=QnLJGTF{|?BBhM z_UqC1gCx-wNYEo`cxN`?UD~)~RqW64zSy6%@LwSF`4j3Re24yLjQwH#X2x_dK5eKm zmPdvj`#(D{HrBn`_2sdxxFh@6Tfbs#K7Sd{e`v;%boRxPq=xNd9(kuXQ^k~|+G0vl z`(jG`4iQ}qxZ_$nwRFy_&Tg|v{gTasexe(z zb*X2x&zJTaYdmeV>fio6U*x@eV)&?@<2Pz(1Dq{!hR*C1!7rSem;Nk=azxv=vG2dk zQU0hmy09Kw{^P@!3o`pWY9Q%^` zB_GbYgM2t^|4r3H8j3#rtvi zE*|&W6*}W|1bN@?cF?~e&U@S$>+NyIco~~>%IUYUhh9?gM;g}lt3Q?d zHq);L_l$Y$T;OFq;A6TI^NQwTos8ov2JiVKc$&?zX1<#XL<#G3Gy*?|$jhNmxyCg` z!34B#K%XbTcYwYZa}VpOC&0TE)_cFXD5!8&1?GPh)^R1)a|PCQdFb@~X(6mL7<|0f zjK9qZzx|3>a{_y}-PtpF9psv&PO%^@W_?bkQ?#ALdT;TFHs<3wognoXDo;}w12 zD{3kiwB@fl!Zsh~=ds?qY0SX)QZeQh-22C~ZS6LHlAZ!9M<(U7QQ>dg)Z21_C94ct z-!e0ABgeYNT;HGbtnYK=_Zc@a7xks37>oG!-^3UGpV#O;2|UR2)ScTe^KXg^D%_ui z`&WP2ClRq`!-b-x6)+TLJT%Vt1o+0okWHvls|nP~T3A2MT%QB}`vv+>SoN?BllLaB z@&i|O4j0Am@^9i7)9xNXyZd}md?FP%0e^pfpT3&*Lc$O2$b=o2SClZ9(mllgm_uXt zl6_6@mHTob8#N6h-bpv}qvVFKdcC)0JLuQVV@0vw)SY?Ed=s-w9U=9D35B%NxMjWx z*F7S#?0ivk_lLbLQ?$OEO$*9XhK5n)Bb*-opSP7gJ^MV-mOoYm4-FqJeS@F75jbV4 zC@O{QQ`ju(IA?cueYGn+tvM~(^#9QMnhj~9RPfdw?OP=-;Bd#e*^nT^Om5WStHR;oY=c2PRuY8#IYqS#NN5RMh#)})IL4b8LvlL zkHk-I;QZ?HMmFFM&&Hf1z!_1~zr?~Bj5#6B$jTTRXFPtuXy?7N?i}yhSK(jMtyU}V z(LaqE-o=l>b3PO&R!x}naP=`WcSbGnOHzD)?u<`=_wqvK&p7&v^*I-5BdSK?etj!_ zWb=q&w9SdOYTTvjz`~x{z%|T6!Q2?z&0H_6m!kuQn1_OS3>b&P92m?)!FRw9%RCe^ zA55GmNy*WpL42d3uY;N>{+INVPYM@6rh2_{w#;Es?QkSk-#0vWwwXU8Ws?YwcmzKV zJ@PFxe+IuBF-DK*343xzbd1QosQRMjlrid^qo7$M(LeKdT+H}ktV0uO-cyA*RxU

B+lM7rLK1!e9v}=;(Ip6O1{U8e@+cQ`ssX4 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

W3&A#Sc*w^F!pu{1C=b{19K& zziI^b=!5V>Sh*jfNcBVDT(?N|Llmig2;c%3b$$qwde+cK_JmRAhj3#L&^U7%rq6)C z;DwkkqHti#@n~Hs=|IPBzRs`hXYgA1^k6R+t9Ccp(CMg$bFFGW(^gy$gAbq~BSFeCea)ynHx{&E0sF-sTqg$oN*txX)?2@Hvq^ZRwxMBAPD@GWf_e;d{c~fxijZDV3|mnPzP7sD7sB=o!xY;b%g; z0zH$g`k2XcKvJsI3g!y>@YbU!Z>2M{eNY4tU0bBh8E|b zStMuwLVC~{YNJ)>|5ivAZpcw0--||r$T2uhYyLR##DI#c8ar1svbwFb4-c#HTJy#V z9P|Ki&{3O!zE!T(tQchWz9gITSL)m?9;?O23z?bb*Pkbgn7u##BnYZV0(pzAwJSl9IN((F7O*Tr|G+@xucPAyzF-Jn-l8ClQa*QYt+4Wf1PD~ zWH1g)CLRYF1{nuAc8v4~>|M5Pc&!NY2;c6rvW~`Sz5R1;=+^QmA!DAV-&^E(?gG|) zS?8DUO<<~p>3SyFmD7!^tCF!Jz)Uh8P4FI~{%u~p{>n}{E8It8@~@Wn23BWuZ~s-9 zfAi`MS9b2q=yn?fpRF0g{rLf75@OtrFN3e7nD%LxoZ0Qp$!a$y;_Ngdygx(KG}t^* z-dnjo>g%KZ1z(1S(bZ04&n_lCi{^R@(a1{m*{kSTTDLNq%lRJ>?FLsdZ!+>5Q@`5# zQ_u6h+t3o?wlmh|G`08QJU{gJHVdmAFt=m??+oj`=5|xZVel0x>%MBKJ%7qBIh0&6 z_C{k0%W!0;xu)c$xyZ&Y(_(EAXA8fO>7q0jcpv1&nan3Qp7dj@i%51P;0>(=UY3_-Z!Wnny0p7L7bhdL{d*gt=tbI7Y6X#d_u&Wf2gzBbz?ZQA{rbo3qMBm z=R-cUxgTflRzXXXf!#s6Tl7U1ijwTNPnW%YvW?eT17Cs9ufLwITV$`1WH4%(_s?Px z$oKs2SOe^)0%B){69) zgLf(s!=h9#o=G5mYTxyY`}6)qefz=ZvV^s0cvgSl~xk7tVU_2Qc?em#;U?^I5 zmiXp=YF{RvC-_969M+K&3}{#nG27c1TMQbHqi!&$VB_$J0#8I6{KrxtFD*Xu$&7WiKq*$AlF zrJX(4NPqSxw$uU_pnvWtH4W+7mPAcv7da;WY6$*ZhsIZXC&c+`>qL8ppY}7!XIFnC z=}@$%$-d3f#(Fu86Lw@N$*QAiEOPNEW1FCkjprHg@fk)PUp*^q#QKiJPUU%ZrRw=g zcl>;1jY-7$Xm-g&HRegPM?U@KkPrTnD&P{S^z}nSR=d-4Y}xtgtbSQ@v9obsBzg{= zfyRXXVdXToza3{1c`EL*mDAV;qC1RJ*m>Cl#j4-(D12!&e~7`+))72MTgw!~`PZ^P zt*As>%XHmZA_fP0ELUCA(;UYwJ+MEms6<;^V8?Eyc{s}P;PM@u&*|1$FGKZf4c^WB zYYICxy-jOhU(ZUP@5o~Dstp&Yu%op&#B9f^U&eD? z_4Sv~H|Pq`5zt4-_;a#pwGWcml^_#koVKW63Xt-hgvI{kS3w*JN_+mAEt88wfouBE9w0X{R zZrX1ldSAfo{kO*bbo;I+{Xt@7IrOcAw`w)z;`y^*JTv6OGatf_gt-1h_B_sU&9v5t zGd-l9=OWJ?Ie^u_`8lucP<64W?O@8K=Z;i}T-z6wkog(KWl!9c-%s+ojTxQL1t7QK z55nKuNOqXW7Ctl+`MG9}uYtTD#5&t0CTX!*8S228-pu zddj=|%oQ9T>S+d_kvPNLstj`f!)4oD1O|lwGb0HtcbEEh; zxZZ|%zNaK_-@U?zftW=2*sxAdT7RCO*_7(dI-2U$&eR6TUWbeTz9Vq?PhX=%?xgv` zcoxWFK7c#o&rn?cWLA#4_gjdkz%Hp`?0MKS_TMCXJIQY8B>M&S3~U!a*)-e89@+kM zng9Eeuo0k-PJC44VR!CaFatGR=({DTMP6iKO-tc}nxuGa(jsT8RO#H;tVEt7yNhI5 z3EoX?74MeQ^RsB*^d+&9Jn3iovp`3yuk)`#EgF*74^W>;)@M{K5OrE6tdMThaz;>B zmH250_9kkrYH}?WAEC=f0WZ<=L+KM~3|lpDTQ2z)>e# zmhXAQhF1T^mv1i<{swK|W9&w0TuJ35=E0i4my2tr#G(w^b7fUUN~GEVU$?2vbS&C+ zHeYgS_SQmK@;*y?0p=wv=Q)y(lB}mSh96?LiPd#ddpC`3seOR{%^2TOoAnLSZ)r`k zE0|Y747!89BjuP)z%fbsW_jy4CB$=pfp?cg?-M;>97fV3>DkcFaK?2nuQhnN|5wxf z+h;S^_J^3iCxLhm>{@F3<(=8#PC0Lxe@;$!_xkK*XVch*9+`EWxfwPM*|NFtQx&xJ zGZt(GPU8)Vi|h?Ea+vCgZu8m3jcDgHdT;Ykl;@-7)BBY*imTT!)>%RHiTgM+Ju-99 zXTv$Zx;|UzI@YLjbyoNRb&W8e`2V!b0%*fHWG#m;y0scOT}2svr=q2#D>ZE}NF1v; zII+oplG>9I^Fi}+Xxeq$c6CcFoX=D(Fm>31atOW+=!tqfbI8mF;JuUzIXxh=7aEN% zUqGfwQA_lVNx7njm`}Tk2;JJ(s@ukjUlh6^avjWkbW4wdQ zzu`ZA{nh@HH_!2h>u38U%D zE0c$U?junv&gvoi`p*;Ng!A%8xP_tEK?zt? z+_xS82IFK;=duA7e!0eCX@?Hv1}`Ihphi7&5k5Kd0I-O)x>~KgR%CwQ_}2%0H_>?D zht=wj0IM_>bEvPQb-z|eD?d=}j`}Lk2%pOowO&@fS}$w%8IiY)F=71AMx)kiuDCF+ z7i##qN%kU!%t$;HaUMTdmF7jwTb#SvpFyl$ZuyQ?^##$;Ryl)4;oT z5M9z37m*zN+9bB&`wk_NoyWRfNn}SpOk|H*TUu+wBs&&PWZn*_>2K59{-rrWfuIaUGj6po!qJUfPQ2_MrM`dwWF?2Pfd?J8DgtIX&+;>~8g zi}#fjdjCfF4T$F##ozxn&hsWHkvpinOSES{GUN?xPGohZ1{H6V#qmae_tK#6 zlCL-x)Q$Ur{69aI9ya<|I!SJrB&*pphLyI;HY;7;a6Es8}?&9)i#0%Q;i4Rpy(`9Kx=HrBGlajRA&2ysA1dpEsI4*v_Uofg(q~HG z2QcTE+VOWyG4mj=ZR@2iq2^-NggoD7vY%#??osp4O|{@j$%$l-s2J*NfnPp2>*(4o zEWJ_1DsQe}M^_ufy}Ji1-f3RJj;^(neJ7`I{B+c6>LL1SQRV%vdn!V`L}ydgwt-XM z7-@cozJK)D;wc=<|5Mo#*lJQ9o0`Dhey-w5?^aLavPQa>{119oO130Z|J$kWZPKE0 zj4LpkA(uUpEs3!%iGIfkdP1H{b+Nd&AQ}xC={*x`$$n?kgkO3$Rxvtx-?(@CDj>ye1sxCZ2da4h5> z5}kISW~z*Hquel$?P`+BmeDv{$u1(jJ=`+K>@^k`+w*D65!o21fPOuTc$I~1xLHudL1uN8e;kXXcW8L~O$wtZ9d=VSJF?{CL#2`5vjP(yF+QznAFmou2Ew zF;j`$NOPi{Z=tTjnOTV85%HZ55-+GonjJh61>TiZc|1txM(Y_2_kOdIO*(u)=#<)!v zD;~R)Rbry`rMH0&NLYUJSBPO=exh+4Wh$4!dA z(>jNFfmQKC^&Ons;2m81klsQ6P_OhbVo2od63mmaxFs|&ot4azk`FDF+VU|k?KJ*| zu_883Uiq!Cn<=i-e`oXS(?sob9#;ZP7HtInCr*fY@so>P9vRQbzXPtoisN)^Z5C2uN-#1D1S42xQ2zE%oD!1{ju1=qQK)n ziSihEd+RRMO%nzTRD-{ot#55>3=i#=J8S2 zcmDYMGm~SEgxuF8Fa)a3OgJRuRFO}>BZt-+V!hf1aQE9JBieXuGax2tZFAr;LYpnP z4cOgoW|UU9$;#Mn0jb*nwky@Pwsp6lyY7S_f`DXzFyH6%{r(J@AlUBj_xt{Szd!QG ze6IKTI^VBr3Ep`b*QGpDU@f8?>B~L77EDx|o8^R{gd55O-q*z@dtJ0%9n{8tF zF1`c0x;p-yxEe*&6KU(q2HakqAckifIvD*f*so^QBM0#<*KN`lJS$j_wIUrj$Xsli zTFcn;rN%mP|M?xy+xXr=;00?J#ro?u^0BZ!6Kf-EJ}(y*1~+59&nCyNi-P^Q=2-}N zCu=y-SA5oZ^rAJKG$SVFgCRo)jYNlP6TriJX8N;QAFeVPG4|9OhbkxfmzhQN9bXl` zM?Q%TeJM>ui03iCar%tcCW}xZ=6JVVL|XBTbrWoO#@Y$2%gyI(@8~UJBXOdR_C@fp zm``~xV0H!ir%(AyU!Uj?VqNP=T^palirnWZr`gM*hGx z{=r1F{{+w144TXuU3KT8{ggq1z@r}UB&p+p?>Y)>ec}1C*2b|@j|smEe7APC?sI{U z*WS&u9Fb9bx2WEAG}?5MIcm}0Df;G+FJvjcu*4=du09vdTBrUkgqGd+v^ zJ-yU|--MOJ4O}O*+g?*Wl32xh>($QRDBG`dShUl>12myJoFFQ@$a`mtNMdiazaP9U zt4L%rKaYlMw$o{v>1CWKb5Rg4?=c&B08+JfGkzbO4O*D3)1F%Sb>hgnxE;#A8VZyCy1tcO_a0!<7neOw6B9cufv>N30#BxQqY(X?I~_wUMB5m z%v&4z{*8f?l?tZ{Gjz!tnfurR+4t+-mhmj${jwyL6QDL#uMw}ABP^dvtpv3^FI#!Z~8uS(&v@77`!DGC+El! z5w}((`OHuS{TaXfPb(8+G$Ai|{Av+d)+qwDOSSQ)ED^c-64H9_&{49ElX(f*Z*dUd5$ul}FPQR@MZ1Jf}! z;708}y}I^iRh1_fib%^RdgR;S?PE(pQ_{qc^;YP;*n>m%>7^Z)c{U#hytF>0SB(O9 z3(?k3ssaD^)P%y$XDt?) zZpavR@D^`Iex>z0k4Zm0;v?)PATn~60 z_%G2u2jf|3}isn=v-R%>8Tb+a5LQQTz&H`;(R; z$Hs9}&YCmpSDU&uOYnTYc}?@vKZ5&Oq!snPYZAi+3a` z{5XJxu({h&2fFP79=w|fSkF^Abyp;+*c|%H(vOSdqwg{Ev(tx(c9erliRbyU4mtCy z_gKV6e)C(C=C=lz13F#Ct60lH^K!aEQIlzg_M^WWaL@)@vM<`y zl%-<*Mo$eiG8g8UIoD%ZVe^x3-+Q_4>zJX3)+CBs*F*kxCW{64UM_slJ)5Xcum85% zXZrV$Hca!a+WsdkU)J*3hCSX9x5w+TUoX<{1LL}>_?Me_{RYO?iSKEb8-rfE9{XJe z8pL}I{~B#NI$wky@i4Y0-{VBPGtn;XdmJnE0m@u0U(rMSp3jTvzw1#xVe8UF)7M$= zXqq1Rt8Xd4;yfvXT7t`Q{dF0yIn!G+O|@y!9HncLMLTVVZOnfUy|p`wwkBtgI>1{= zkh$u?_e@t-5Vn|8{~-0GD<)%e|GQVkp6b3JBYuU?c-mAu=!!cg80)59|`y&Ik z8;1ToY_9=quQp)2)12@9^RQj`nXvt^HVNA|&5MU^hlK65Sew?}lu@j~(GoEcA} zi(^~Bw+3Gm`<<7GV|7WaJDcZ?V(*z>d5ewL>E7k|f16E|kyq|8rFoZ^$ryW23-s;4 z4CWKg_EI+DoLaptRc$ub&l2rfTCam+W_(2l-hJ5HQN{MjkJv8l5f2O2M@jQ;1wOu| zF*j3wpXFF{m2<+}&ie6ub_)97kyo_9K|AOMpC__jw`f0^H{iG%?Z?K;eSCzzz9w}} zNWMt_Ps$zqejM!(rWbuP+Rt@6@=8sB`tM=VI;+Y{*D?z*aGM?)ITbCN2N`Pw`$;{* zy8asy|5}77A1PM#xmb&ldvpT-U$CF+KLQx%UhM>r&`qiqC+oEz#5-U8(L}$=EMxv7 z%P>Y&pL3eDjj8&a)1+-o*5}kjBy}hB7|43tz9Q{lFVQ|`v52xCCyF;&H}Mm+Y1qhK zinoys;rhawjDw8D{vXt2q#cnp8TlIIXkmqq!eZLPk+-r82x3HWKq>D`pl z>aFqsj+8u- zo`Ej3D!iaymAiPa!#k}eTr=LllsA0y?QWR zl(8-8Prp`FyR5Fh>?dkM^pz*vy({8!-%Pu74hQWeCHuaeH#K+7ud$x4B$dN~`D=Rq zm+&3O9&E5d*Grmu9@m{DWS#cx2C`KdZ(p7b`ufG zYo21=XDb#y*PZH&%XO!y?!)@D?oc#1FfEP-$NAxK?^eAY9d0pXk+F5rrjH#(yt_K1O&#F>g0*p&Es`XGd#$Q&AJ(1^PMRJ{nS48_;Oh#-1 zZAC^d1ja*_fd_nnV}7+O)LJn$XMucforF93VGmjq9J{{_9i09(H>&)s_10L;sBAA| zCNHcR#rNo6R%^BN)d6O+pU^_3#3A59Ahj#>yhaN#rfybO%QI3ks&PrWvyPH0^<~zn|gNVt*Y28tI#&!yH zm2sc5jq`b4XC)}#b;9|eS(Hm#+GWI}+)@|qp`fKH&|Tj!iL&|x@yy%=ag=np{+RHO z6?Qdl+kcJ!sp%r~me%{KJ^~H?NGohStfknPm%SF>zKHwG8=G>>S;e;GZ;if*!hh4b zX!#(<%D$NghUf2D7+X`a$|Xh`dEEl?Dg9ZKl9L%1vA?ISrHb#qg>O6arU*{xIQC&2(qM|Y2{3wp%+Ry zG4)ime|!qx%lEv5d)eprJ^TE=*M3Xc0b_DG_niC9ad7Wrdrn%%egChFsrz1teLoYo z@A6!5c5NVLAB^q)$OZfVTGD6l|9@{&`Oe-wzyC#Y|F>VsTG7)>rJRBN@4^0G1zNQU zdtZBj-LE@Y`9IM1xA_vbzizqzMZsgW%J$cDaoeBV`kC-pry++t2^zQUL${y0_2=>TW{zIM}4~<-}a$j z@75~n2!8ND|IIvy$KSlxRaJ9Z@2z@6OKG?n-`<38UrZEbtXgv<+FGc$Z?&ah6wKld>O$<}DZJ;ybB7l5-8f&PBzXBZCCo}Xbi(j4IDeL5~w;8$$uSrXu zPrS6g@|zbYWKEgdl45j3oz4GX{zU&sVprp!k!y1h`pOBc`Oq}z5EtkxgHm6~!I%_} z2wY5GQ9R-$(use(f1;l@wG(CseLW~wR4|tvXhtd9;(2clWG?!`4PKBhGzao0^T7{Z zME=Y<9UZ1z5SDU!wv<0>o;=sDe90W8X5%dFXP_^WHvXJo&q;;*^ldyze^TK3H3cHl zHlOu~?i}|_7oim3dkgf;GRUe`Ul!HO5$|$~kO#QmU95Z#x8_Xa}X9tn)Xv%TSZYXziB-e z9rj`Dq%Dz320WtaDyzzQ{iz&UakWaex^U0P>r2*YpqNb@63*H&3tj ziu{WD9KAaDx%|p;>;q{v{gzLfr8F<6* z3QWqUr~vR9qK}k$D!di|UL%EZ_v7F-WQyTjfyB8z^B~J+scRQ_cO`gt){U~hS%fuv zeLW|NAETuek?&9z2|QRhTOMIjgxoy0JdYT^CO?T*ev=8u6;$pZ?jE6a$dGUCdKb&7D<K*t_=Jng@IN^>P$XY(!&`ifUoo!gZxI>jkvN4 z_oyd2wW6`D{}F9UHt76!4I6p7@&69ePSE*1pr54chak(JH0K8wgN9O`3xiJEinZ-q zEy^d+LVEf-=qT+gSJQ7p4~-;?a{0{2AxZjKoUG_C?SyXV?|~#S%rlG8%&x}c(&t6m ztx98l`5zvS_V3A*I=Lr%?dlDjgImk)Q?jVVv#?l%)}K&3iG1e4B)}G)lh@D(&Qf6O zvw`PO{$2zcnxiFGOs0QV{?2yOJ0Kpu)b-m7FO{k>Qgap@rBbWPK@x)Yv${T z$;OA6AA&yb1>_Mn@JirO?qs|lYZ6SXxixU&mM;W8x&4;Fc=P82r@wl0;OzZ31)`59 z_+vin^=H+dj2Qp7osQ=1nlsTq-u%e>)t)R{BHk0K0)y}^LT{D5MK~`I57ELWl zUFUtUgY)zd9~XYR)u!?tk^a6Nh2AK#gIlNR zkzzw``#0QUs6f2G{&@4xWgH3RoLbWzmBT!nITPi4WdAQ<9<*=M&b^(!&(h~TEBI5i zHE8N$Z8m?d$PGpfpLfRmw+L5-wELMvXltfA)14;7MviABs?O4~i}!4LJ?=NhUIRSE zxbxW8+otT`zu@=jul@vM)G$^P#*B4elMt9Nt2jK$os^-D+r$uUzkh?i@>t6zHg>Gt zIBiyx!O#2aX9u5*GUrZLC?9;gKokU>W;J$`!D~AldZe8BHhC^*o@^^(*!mr_C)-+$ zwk+nZP&L}h6M4bKac%M4j#-cwO?iJ&TVMS%ZLP>vK16KqOL%w147M#K%z%dU^Y<4` zG7s|km<4|K&JxY9nZF|YcoFYu$v2MYh#dJ{J+4QLedPDt#~02;n;yIz_QF?|>)d+zeXg0S!vTJbtG8$n!XdJxRc8->DABehbzmh$g;c$;s<8K|gt0 zekiMGThJTw&2dsj2tcXU3Nq1dFYyt1>g1pKx(ANJL{j=j@5^C|C3Gb{l{Niej z?|AREb6gLn%-xr}F4_+nri^3c+F2Kg%&5sawhuJvx7epoBJy32q*rU4r4P>%?gN1J zi^a-ZY#mQx4Ow^V6S0x| zbI(#AVQi{d=67;RUxZos`=Be@4;i)mQ_mrz&BEV*;Q3CpchT4$$iV2sP8$gOj3!Ng zAPm`f)Ld9vsdYOTKTvZn%GjCn{teRC4S$;+Q~B#_C!#|=NnMSH=<~i`+}cpQ&(Vo7 zlV_|0j3_;bx~7Ha%+)u1EPX9Jld*qO$MwO-(L7m~yv8K$+pc`QdPL+`I-e2Mm{%#s z&Hae~|JiZAB1m5pAKBCS@JucKZs4s`7iAut(CFza|uFYb%I0pP}3gWrc(-QU2m{?xPxTyLJ6|crxm%P7E zEU)lJ`zz~fChzq{zgj7EJLb3sAF`f`mfbX$`B|O8RJ*-zTg{iZ@6b}bTQP>zHQtWT zuh4z08A#hc&uFlgGM1ccNS=RmxZt8o626;@=a0A@wZ;C zhuoUQ#YbXZt!|O$2ENo=@TmR1=uEiLT~bVtLnXTW#uC5cFjN1eNTR@^H2_9=XGGHv?!iCZ+_9cbU< zq~JNf50)ZW(nqA6F8Z?RMO1oZqxp=_a|ZvlCT!ZSQ87LTQP4N z=56vfy?OO-x^o%3Wa4>)Cwzs7Sg+9o1s1?rmWbq}fG6hYp?RzHz>j%`3;uqvP(=FZ z(*QntC_~lkX}!<7*$o~#7X4mheY^1A1lf52d&qI$R8up)Ud!)Y4>-GNU315PW^a2g z`8fxD3+R72crIH0dlTVY$)5C=IE1#_?z3&C{8_(1^Orzgxfg5vBw%L;W4-_z>j67A z%YIV5#af(P3OSy#gsMZRcp=*HPNWm@12t`(UZMWScPmC)1Dg{oJqtNhHMRn;@m#@Fzl_LC(h>hBp|>OD)A z)Qm3?`MtBuVtC18%^gccs%Dc+TMeGB7X7zbqNKTe?J~AYZeLZvl7-hR;CN)o67LYTyS=8Bk0n>GobZJ zqMg36w8wIfRQ!)xb3S`P)_|E&y5|n-X68k8@7MfopgRrgzA{dJ?On0cSF+2wy&-W) zRml^gs#ey{%q`tz7;>J$X00Vc))6L-vp z-ia}6ouPb=O~=;0^;`Eu|EstjoTWh)FZ8hX5q;iV4K)!gg1-TQxJtcQScFecnGjbJ=epl6u44pP#6C9Z)%3||i z+)QjPv3dLy^Wb;mvOcln&>7I~cks;-tWk?O--ER&KVC>$3tEA1xdzGxn{~d8ljdoj zV1hi)3mt(DpxP4czsebKjA&@%RJ436&*Eb9pFTNX!Uti4GO#fGJ-Vg8M{ckad$CQ# z{5*2w{PJ=q{qjsAk_#C5eyn{f<7z*9-8bU;BK~;K{7?Mx=tmdx$K&`P|J3|cyYyS8 zy^Ann`6yccbMW@6-Fl=dRqDMF_x&{?*KQGMGtN~1kaqDi)lK`O!~e>-y)?#L%bcC` z`Ss90)%6RmiDS$)4e-2A{oVt*?AlFRf{0v&_8ZV|k>=K?6WLUhV?j z>ogUNvAwPd&>B;b{5=!D2_GjefS;A7Y#IAO_&L(AxeKSjVD^}-`$AYsld=7!F<2sP z<~`2gM3x@PKOHSgGS-){3Z1L`Hq0}2U3(~6M%X0`hTn^pa}1L>FcpTuOC&x^Ts{~r zzl-~{LyvSM$L*8h8|S)T3+4Yi=%17L7OO#)8}#!$%q~hPuZ&*7eXx#^uYd-5Cf3wL zuBn53QwurgM#wuiK<2wX0Qu+q8QTrm->cq@4#mT92yi)b{>9;VGp^S_?r4#DWgHiU zW3MwFjvZ6rSho94lr@thu`}2p#xNC*Rl7gI{nxLU=#M_01bHnRzFkXSI;o!jM-Odml8L_tUq5dU|cSh>Y4b-*c=V!2INp8NLHqIYhY)d~M;~ zmdzd0ZX7>8TSQhrb@w>))Sm+V4nzLPPY}bkX8JU_Dz~6bQ>u!wdYC^eKTi9T zdB5vm;`VTs$U)ICgFg)K_tR=MHBXh@5Z?^>9 zxYsV0W@3Hm^-*1?xd8>J?IOcYXj6-I-%$s78y00zR zX4Rjy)5czNjla#;)=^jNwg*oSG`cmLo$*O0=8H&gk{IsA`qU@6DtpZ`Uz&&dV*LU= zv^TM%Vtb+(rp)TO+qStLbG0RkN;}3;ui0&U7xcTFXT|k3dZ<3ZRXMg$kF@15lw?Nlg16kRdq4}|=A=m3qIvjP4yv+ zvvpc}C4DJvfR8rN@H!*EzCBgh9BBV=;NBtVAhkJ#eFf0DzRNR+xENE{QsF1v@Wsv` zj2Khi`~A7-u*zH|4w-HNEz))_%56%%1Hl5<+Bx47*{YOz4FkjJAK~%oj%I+o($2{ z`?&5ql%8HG{Ze>dl%a>((nT3@U*df`;ML@+V4nCF*XqxHi21%){Klp}%^sWs{h}vP z9Fs9UfP)tkQ~I7fIM8v}Yz^*+h+{6m&2jL*I<2I)St~ij+_-j(vrX%DaI7QXyPW?B z=0Aw}hcUJ`jLp8PXjzM9X|Sa3by&<6yUYcNb!oMUp`K1Xl!bL7t~4YnTsdLbAo8)d zo9JI1tFiHNioeGD(D;GJd#(vD176QI`42qad(HR;5ju6Fh(y0{53uIIfqP8;wX383 z;p0n~ucN%yoZV+F-s$6>rczeCRj=mx4r9!u-wXY|Ck7e`uP(q?R`Ei6cc-!|F#e2o z1=d63xzLHR>jQwpthQ@K7SDe6GI!_e^yjvD+ob(G%R|4&hS!ykH*d>2gl8`K z%x3305^f25O1D>V2D*P9#@fsZ#tvwrd;t4&(5d8Xo&iW-N4(1%usp+%aWzX-4u_Vd zB1GJ&{UACN&ZFHB{13dFd2VG+&=lGT?*yN}1N{DW@cl1>|KA4rr6~Y;K*}#OfxjCm zpU$TY34EIk+;VH}Z?NVS_@{;Q#e6KSZE~)hPuQGUN}Vx$g~FR|lO@QUdTfK^uE2bl z&w+dcI(v3DaDOm~XIa_3thZ-z>Y-M%%5{4Xa+Zv%*3xV}NusP()2sI+=2u!uxOs$PD*0&$6X547qfWyn{7Y0XMZ`yn?)B@ix)kLcc8ROWP^XvxQif1>hIs z(WcR~_;qQmvTPF>uLAE{PA^t<8|jaGI=NDkBe=~ z&0UN7K8HO_6OkVlSY^GMo*KRSquFNvadU$IBhVho6@4p&|7+lDAAvvL58Y}E@*ib_ zqu|LOK_;Yp$DE|hGg^1E9?HSInY;SykY69V2eRf?`U>UyM{fr_K%P0gR78%@=i@fL zdeCX97{u6n(YH0HM&(g2wVjKipdZKY z7Lfy2bS=tfE(zwKsl<4I>+j`>rqdV$dg9wD#Qxnd)WG;9D^Nm#|;I)-ojR`z7e)4*dSmoZ;d5=`Yu+>s~yY3qH-h=l(12 zO~X6WJoK@f`>48R9QZFmJ4qksnx-{u+q*-qa~ zQ>N^59@_hpmgzlW&Xj%5dsJPs&(9lueqO$lfp;=wpPzqJU9-=5NvhA!n=%@Hxc9!Q zUul`L&mZnxj^7#f1z6`aQ(Ew4>@nBsV{?H=U~QaR=6ab&O{4FcR@_@`5<|Sl^Fu*8 zBOkX1WI`;2MwC9{A+TS}KZE9b(pbva0<4WMtJkXIe(8bhD;Y-bh z%(``+_hz&;Em!!|nR3xs@rkHWyDN9Bz-s8J2R3X`%q1ZWq{QtQb$Yj=+D&sos5opowb3Ls|{aBj1De+eG4-mUxAYi1ks zX5IvP;K4gy#zQU;elOr5EOQ}FljrzHl0}5)m@i@uBmcGG*WoV=eLQm8$j5_E9{SjA zhCT^e3tc9{ytX^8#b2WUKS~IY?$$4}ZLVDa-Z@W1>YiLOj6`s0XF>l0cv z^~MJJGu^3$tSgLj+7+7g6<&h_*%+ib?z zHbDmX!wgZ*IQ=Ir$`^z=-52{@JZtx}9^N{cuOutD_(QGZ{k)n0Va-(__Os@TH(50O zFo`t?l>SG1%CFGRstn<`i>}ORcaBXo?Pnbt>v-h@*?MRJV0STS zWE*tFze2yH_v<vJr~&*&?50N<8~_Adx6 z_%*=0zoT^gF!t#s$XYK!wmw??Yezj`*=DkN0L#8B8};fpg{XL`QI{~8zS^1j65uio z_(C0ZTQT+2#Iauy-l6L$-+MJ@&Xe=yeCoAI8|@iv(+jyQAoEd+P~a-aUJr=s0LBF! zKGaIN?OIvif^{!K)*MmY3EH`3mOi1S-#3FgpqRO0Mi15xa@RB3zuY*%>pIp=694Oa zmWhYns_T+DHSCoAT>+Qf;&U#$QtFR}jj7us;Y|8w^6c*(X@@F(Oxj6(-*Xm=W6w*Q zs5thRN$#y@rg7%u)Dn&{hc3^1oW}W(#W){w)`(-fjk6%zM9o`H<17gBraTL>7;Wr5 zhw()^-(o*J2l~Fu2V@D>TJ>k4Q#?~&bB({&*V4hWnLX#!Tv{M&)5h@s%dtT&ZpD5M zHpc43Wd%LHtW4%_g^u}vE2GyzyE*jljV%x8)skllpMJrZYY>AoP2bKhs!TG%dedt?%~U%Jqi(fI&;F6jSjNx6PJY!^e^uYkR_q7D3TY_TX! zfj&UrOZsD{xb@I_QCn##hCT`Ta2eJr^-kTF_GR7oz*ltNeVEfrT3SQ1Db2fI%WSYn z8kOPQ3;kJh@AR$292X0dcOPRAaL+V%r|%xjxmlRKF9K$7hOA|p&U5_K;9n(({nvN= z)%XYCk(Xg_evu%KQHFaM`}l)tNqzs?)ja+ukvR5&IXTFjIGuR@K6v^~=RjK%uB?0` z;mV3APGyYfKQ{{ghef^I4&1Z_C@GL!YdY0y=-E185qCR=?ngsd5f$zoFB*>4; z8J~YXXS@Zn#NQe<2|CP^_!yu6zT3!u-+hI$$MQFQhTORBos$1PpK%npKQ;e-w~_z8 z+d27tm^`4XyV0sy&(|dwHR=+KgEmwpPL3tMF2Vnuu`m~ScU)b9@C9`VGA^I!XWv6s zwU#c+mi+~BBzh3^l7uYV&(vp#cg@;+ld^8SLoQQwa!pTFU+{)Mo!12F&2sp$XX zuru>y^rEoyed@{5-z+QGpecOH{qN|o%;n1*zzIeUV92|W(IN-zqO?HTVy4kwJNv0( z-M0;Wu3sViPlNXU3bF#P|D>gP`*!thx)1l(gTBrM{reN>;#|fjf|s;qfY;^leA425 zQs(`4dRlT+eqH|lEZs%Mv8>bD-?Lmij^$u7^Ymp0fB8KXANU)LJ10jB(cgjbi_%8} za1{W24W2Ux2IKGt&&yg8R9z2uf~xD0n>>j>7T_0v_ss*B;H`g)>wM4~OMI=53wW#D zd1-q(+wB7Fuwbva&Mju6=7)I_x30QO)%?iLRd~^zJy|>D;lG>cXI$vF0aLf7s93{T zyvseG;?+}Yf{@1sR_bz3W?`Rtu>Y3nA|t+s;M& zc8jfR(ek97iv}_7ElK!o+PR4BZ83E%qThQF+GVbl5%Gn}T8+8OoSwlS=+!Mr=@l&! z?wuaWDZDq5m|k&D>>k#F_guL572Nv{*7A#H=`(+REeqpl&S1hM&8bV6N^{=A_uu{* z_98WIFXCc~2%EQ!MTd!3OW7CRtw@RMEAHJdei9wtaZU^HU5+pOL0%!6RR)2F$wR=-!1eTQUV^^FEc=W9ISbkP9$d zCH}IyJ%5EU{>|a&6q)t^G+rGDM`ecn<;|?Ej!wH)vN@lzd6|*)>sK;?hG6T8Zri z0X)Lk=b)`Vt)$luIX4y8CAhv3Ve!^ksJoc|?x%O+BFU9mv><-UP7`I!HO& z$xjv;PP4^(%B1;AAY&dd&hsverHI8bMR#la&)%w!%e^Y*)h|L*jzMwey@o;ABCM~K@4#F`#1SjoTqNTu?QFL? zS=DGviKsJG&f98+9(JwBvTUtvpq+sAY56YKZ!}q*Nfyhvx*M>@*JG`(!iqW??ue`bAowJ*UF*caA;k@57J z%nu!@HS+D80F7K>7TJd?MPxKfMBcweg#H<@*j9Q&#|zkt?i=*b8x^|mkKhmQl0`jy6R$^)cysdmyoq{b z>~0aEEak=c=3>3??O}{Uiqs)lpNIO9TN|(ByR=t(b5i=ee+_*T?R%laczqq?W4A+g z{)Gs+m@DKSlmBdqh#ZRMxkumEeBllDj?W*D_W$W};cKzUdeuSt?AWy~U*}wLtOT&t z!m|#;cgK?0)i?^8z`b8QvG|x}tH^L0=O2sXe0O5+EjE02_`YYN=B>qR#W9Njoj_v0 zTV#wHXCksjuh|-`v+B6A^cDRaN_Q2@@%3byo4I*;p>mu}}JHh)P2ZReT zpIh{h2lC|TY{9ye8)!>BG~4bDKdpyG?IKe5I{KI|LZHtXb!$b21#-$M!;U`c6rno6 zc(?@5+ovxZTL?HP6e0S|Y+z14$kO%4^y)Tqeq~#4P4ywbOxw?NAL}+ZYx#2R4;eWx zcz*o?;G|8nd1&+hBmUkg6~3`=>7l)lW%gCzcb^{GcNP9W&Ab6N?>@+wORy$y&*1sD z-7}x@EXf6#!Lw22myoE3Y`2PvgOoWcRa|?wkqd+I2*6$G`#tJZI5g|BOZb1|dDe3( zZ{Nn-v33~Gt{F;Bq%8DD;ME^-P2Z7D!_QatS6dUQEvA1n? z7mJHUyJ@y)Vr~f2eC4<1222f_EETL@z;9a#^LWnhm)b?s8(2GjPyd&>puKwl^H2G_ z<4-|G`4#95begeIbB{yC5~a#m%n{K3y`>VCGWG&a`eu{oiuP2<243J_{UZHY(vY@9 zTVI2Q_YO990Ja+HwG{i_dBS)0aXoZZie6EVvDE{QzKpTmm8(~B?mY=zjdf<|DVK?| zx&#@o7yfu@?23{rs5ZcrQiQn{d=h(TfEuW-Sd<1-;4X6+OrlXydSv!4f zW0g>C5Fh39;u8Cvcz&hP7xVJ+oJ_t?dBS*~?>SB4*oVmj4)E<`_hJr5%ma4~xJCOL zT57}1;Dz2@Pda)vo1OEePf^>hUI*tq2L5~Rt2=#n;lB6VJAJ*Yik4xI8tPN`IqJ0c4-g9H_S&`zje;O6g*##=e>9ixUt(^gaf;6uLty9 zFcvmF*okj$TB^p^jlWLlboAR~Hsfr&V+?hk-#C2sf-F6Hgaf zK1i#$AMbeA(vJw^g^a~o_K+#E3;!r}g=eHblPT?2FVV&%ZC{Yj!{9G69>~xa;_tII zV4NN6CF%@gkb8UaP78B=US`A@PLDrBDGY)Rv4T94|KN1J)b-v;G49IfgNP->#mw8Z`pzWsN|qTR-R0URZ3Tv3lnppR z8@wHG(6-ex1x{>$1MWLvAl$5nV!6SthV0e?SZy^s>{x5x9>Db$;Q8W-XuryrlpA!O zj`nk3PDr0~=L0=in;d+vR-0Kl0y@_Enu_rw-#^%(>TW7JQ|Q@%cHX5gANa&?=$G_U zJ@U5Y;yE_U_C<%YG?86r`tx*aR0G`tKaJ5VOMQlcb0g$eE7kbk zGb?_39mc_Za7Q}d0?j|xTkMhcmodm5Zpa|?9d3pE;l_P8XcBoq_pj3`-cQn7~cWTY!9LLC;X%(-XGk7@UkOIgc#SczjW?io8Wg5AB$~GE4 z<>}{Cjb@>W3H%Pj_xo{5-qh)BOCui!RO22Th8fpZME}ey$67`tQNVpMlIyJlYHX z{mfmiajq$4n!Q+Gg@;8F56MTl*5nD6y=fKeIaUMrN3==YZ`G#aKI_d9_cta^#eK%% z{PD~r-ZD=A|0}%hIyDtiorn&%sB?l(!9&0}CwLbBHLxCdVA zG+VtRz*EZ3BY=Zq<{p8pb+$y0IFg0G8T#|{tXcRJ>%CoBNj<^hJKf<7s2mZ5!_lWz zjun%cxhV=gXVC83hI}+?F7Pn_@gd;w82(tFgl$t_i{)2YmnG||dnVR=5qjNi(C?a{ z=PiT2*9cwkR_KC>QWqpVvrWK3#x=kv%Es$}QzHgG#m*l|b9i1J!>3p+feZ1e;kyc- z%50y;rz``XsB>J1Pc2CbpJp2Pv=6j!FLc5%bV1_QyTC2Vxg+z`Iz})at_kh)`>-#E zv0juB+*(HIUhG4kAwv(`HD`Pe_NG;xm&o(Y_oS`2qr>f6-BAY_3-qyp`{h}bzKn8m zZB0#vWo`O0bFtfAahCb?oSr}8Irsk^wEcUu_YVdhp3tV^VR{@7Z!t~cvDGvckAD$W zIg*HQ>bve-DfHEzI$=N3^qc z#4g+aJoiFu4D2TXV_YutL&u+Mso3#PZr?4>v|L8*(XHImY^>uP=$BR%t4|*#8_z~| z0d_GC_j2kcN~gKW=j|9U^4uvMM&$~UwN}9wTf}%}EEk5vt+-qnf6jmGAawBmOcs%D zq0S7gR#n660Ce|QjwjFW_3CCL7awyw@tn_NHeS(#-*)M5 zv0N1Ez22%`BhQ5WM0DuT@#v>=QN+J9_Hk6^qWCuO_LR(-miK3UN22Crz+W!z=izxi z-YdZS4!~a_;4jJlUrR;gy{koJt2t{t=JVZijmYGgVSv0u7`emRYcTgKD+kTX#zbZl&-R2K_MZ~g2^WSu3S7W$ALwD+e7g}nB|3g)mLgv|Gotx45BC-Z>UYF>|qz^mvyiEGPeE|GA5VZylEi}7F|4oF# z_lwYuL~)EZfDypL=rW#{T7#pEC%IdX99c>qRLdCkLzycMxG>GP3gZJ^uNLJaZqTi( zzfk$7MUX3Q(Ib0n^y{^N8}7G5UL^MfDl z6Obug!B=Lzvng!K?F~;8!(3}ePJUn0(>h}tLoJ|-Bdj^NMEGTXY252J>XvuY*7>A* zFMRH+mEA`Dl&#QFyXWbl!0yKFgy~{jk5bnJk7s>>z&|bwj9%?5<+J7*QQf>&1O#w+ z^nUt47Ig5ebPLux5G`@Djlm5$9f75}+s#L!{X4B8Sd3wN%Nc@UgLRFEI-Q#ZSpI3`nnUwE5q228qhX};g>|7@ssXz zQeJ$-s4ZAzjqxo} zqfJMC)DZaacIXuQAR_^W!o|xg2Q|I&ZP457Ianjenj3Xyf`BJU@?g+}xx4*0=hq?lWQsS7!{|b@)aR zTCI&&j)7*DfEKguG3KBJ+}C&N8{9dzJ~w20##nu1e%e7e&nf`i=gYj#!BdhBytB!o z0p_tzv9&prhcV3%nXYKG{HKC-7?+I~0Tj}I=eiNZDwqVVc!l2vd8$S&>nlMb-OE`Y9)ms&8{h!0} zp^u~G^l9K;MzQ}6(UrO3ShTzm_x1vB4}D2Nc_(&UYG$x6R zrFgIJaB>Chx`%;-thZ=89BsPUckeiTOr@`{MtW->qi-Bz>)8k6Y{Jdb9++VTorQiM zvOo_DS5jBEddRn-gO`zSSUQ)#HFl#Oa;@s_8(oO^*0J`AwcgDdztGRXlbbGAHWv@$ z&tl*3eZD(-BV*mH^^7}ayR1Dj3Z6cer{a4onmq{pG(wpxig#puPo)SQ^ODAcUowaV!?^V3PMbJZ@@ll{!6dQ2^-=v7&k)siO@sz)qP>CV46$z$)weuT;J5sa{?m1>t}5m@EoN=@cjoz@7pgw% z7dKAyvke>8dLT)(ACP%6vx2UtYqpbq)IZ(4J=W&)`O=2xxhvMroAdlCA8%IhI<#{# zS;!c5-%8-Xzt}OR+wR zi_Crx`WcaNnmK(I-wYH3RoQV!mhZx4bnH~ZUiH%D$**PxyZLP%KaBS~kzbL13j5_w<9eks5$z@4D zOf$yD`0)XA;n=}(@CKu;lhBR0#+)nTqS@|y+T?uQ#(ZhJkaNQFw==-z2e`Lc% z-k-}yN57bm%vF=;^L(SAB_z`;B}l#_a#s+RGgNA(RQzLxPmywBYK zom#=z0gEtV2yN1)+kLn08^1z?h`*~6)VCkuJG+*)uM@hJ75DCqbUyornf1Zb`sSym z^?k@#HT*Fy_^3H0cx+E+Al)YRe*|4_0oJV%e~V28W7~3`bTs4tuX3Jp9EF_Jsilm) zqovxn8ac{#SycTOl_xb{)_L#kJlB6zQ~7>KH~9aMIW1TMor1bVY##Y}f9q%l4`Tic z>i8$_HwQ*Ueud1lVdTx0c>AwjXM_ znLjVkSKp`gI)168dY;sT??p#f=Q{+n^r|7o_yPc$d!nZMQxN9{1v1qWZ(D zM0u=l`Z{epn^*B`tiglkSpImGN0#tyg^YPTO~~5WhgicXRg|B$ix7PT4naSzr|yG2 zy$Wl)@vz-%Gmy$tUF{vfwx2bl|sW1vnFpX;OH ztn!)R7$U$Em0MorWXt=TbN#28BLID@Fz#pK9_2R|=H$o_5f|q;Tg9zz(qs-TxySUw zT842#R*Mu{V|l;}f>%7GzF%ln-=4NZJ}j0#=|fhnOXhT8%rO5OelbCwIe7r@^jouM zX#T@yTd-4`(b1Wh(6Qbs_P+=@gZeCaogI3TOSA23^$S1GL>4ESI!5rEx$bE5ru<30 zj<`rT`!RTZFi{M%PQ!BSZDHr58x9z`9+@MLHUQSi;5T`apA`oE(^XB2-y1c*X%pai ze$U)X;WTjxQCV!+_;&*uOmnEtK{=&_JHQST3_~)-=IQVXnoSsJ>J=fnY>nY@vc9)3IhO6|@GLtAj1(n2~w9j6twKSFvbweHOh z$WJZ50H3%*=ISPbn^gXq@M`Bm)7nQjFb=L(=77tV{nYMLzkB3w)lX}ojFFak*S>~+ zw#*R2N7+wo9NNWeQme6pYjod`o5FK0T+kNzhAQ*GGvCVYo9fvRKc75 zJfC9DUBcdlebFcAQhn8>bTzUs^9se=3CA@lF&=0~yZN5IYtQvBPXcUSATQi(;7ANV zV)aYwlF;S~;U->CwysHvwU>V$H-^zB*L>VuH%I8bYQGM^n+l_EK$w9 zd9YOY<8!*-g*7NSq2hL9F#KjdbQSF7z*Y1+1Z^;KJMP7O;!lj1%}w}hK041lm5=_= z^x1s$MeVcsC~)dieDp8L%NN5Rw@Kkg?Wgd=A@SoQ|3p7@{^3Ho7TLk&^F&1dkLd7m z!>`^GjppgVm*ob&)By)-fiLtaWi6ubnx@twVjUzMICH=h_r8HMwZNGzf;qDlK0k=H zlo2j>|%9{?tC*k{Dd*CHw?S}!?=#56^>u5ro>6exbz99?Qm-f z+7wgkQ@P)nTA!-eihD*bU3dD_`cw^&F_{nCm6~6e-xxgyiS%$nk!`Pem z%vqk7m&$zmo=%g+E6l20+I4Jb*NS%Q7txo^Dsk3^c1x%i8tuB>xtlACg?k~|#hjS8 zDtm=h;mtbyXH6K|Fo|FP{>Zuh{KtiVI7#ehU6_X>(P8=ta6UDkF`p-sRlhME;9jfJ z0jwB9O5B|0#LejuV@^&j%eyl{wcVBQ={bGK_zbjt7;SqP_lvgOb5k~R-R2teBK&>F z7Rw(cWlYbJWzqh7~9x!U{yf1B0pKjyvN6zJ)xaDVnSuHTJRQR*AWzHm7BjPd8l*es)=>C>Tn=9Y79V%I4 z1nZHDb*S7T{Nd-n(gD4!;^1Rn9$#m~bAGEG@)GXXikX#R;i@=kQhpI1MCqfZ@_DVz zo9O>7)|j~;80YcEM6`*0wLCBU%!PbF#)o8os^-J}c@udTt50$9_!bdteN?Z0*v50k z1kWeH^)PUK+^l)%%SFHB)<;EktIge4_C$@eO|(MxDZ|_z0*wy<9=3qTDY#WU?u80f zn~$(SUiV>|vy`w9BrJd*xxTDmfjsG88tW|O7(B^>J-g!M$YNaaCJU)$YD%ywKx32T1@wOvJq;JWIwq7Ql@a_+|1(fLEsgJ08&JFyO)c zxL$o6FmxN}JZbPDz($ECGTrvB&}nm`XY6Vb@@k@yaVY_l!+sX9HV#;GYj*nwP7(Sh zWe;;sL$+pbAdF>OMF#XIdl>E1X6vCt3q@!YvOCW-7{_B$ww4gj=+|Js{$^QMXb*5@ zM9T2Fww7fgG*$>0NoFju%0WIU%U5hK=D5uj9vAu^Ff-pwS7SoXfa8GlODe?P6?xJd zqy3*Ogbc(p=c{$r;47z(8|%c+O4CF4m~-ss&ul=i+v3h_?wzLSb?d8&UYiYi4L!8o znP5{D4j7Tl(M3y?K08<-I@toS7`MKv62LU4&tN5TF;+TJFkR;?M$Xj>3(?+sEHT(4cOEY@bxy0Oe)lJk4N zpXZ!p5(4)7{r>Ln_xodB$(%XoInVQXKF?=g2Izml=5o)`G6u%II(8@@m>10lfP3~T zHEuU>fi+y`0WK%Th!6zv$n98ntzGE~9j303p9X#^bp?;q6;!=wkJJ@%Oj+l^WUIfW zCvemKkS$h-pvw+AoS^K{q{~x*(_G6d5u<{69wm})Q~pi&O~P-S4~Vy{IaX#*bvN1S z7bg6Rd*>gs?ai-#ZfkzcX>YzCxMFCj)z#p?25{A9m$fR2#{#E6Bc4wbpR*3oIPB?X zuCYy@19!*#SYv$If@>z|4`yj&db%GH%wwtO#@N@qs)wG!InrM`ICHmFe>vxHjg0*m z)AM+*itnL)Yo5F|s;B8Iqr%$H4ff0dn0G-}EYdQ|KhcKn>DEzEds+p(;Ccmn;?Gw0 zv&8wGIYTseYZiTBjp=k#FG%+NX+yuC_rBV1RPfB?x%CivM1##C@tio;!TdhVsS0DQ z1b!(xlxyu^~|f<$j^K{dMIvEKOjGR31i7x zuA|l5Egj(r%=<9Lv0!z+TOXjgPY#38AKg)7UoX5F;}nc?G8pd=E+Fk?4{imUWFO?or_SMStn@Po-Qy z{ne)W5;T;FeA-*8uz36e=$7|X6ehlNNb$J3`e3O0VRNn%re>>0K zw}AS?2lqiIzfuIhVG~L3fKJJMnpnS(^%6aR-#pN1o@x5$TE^?O;C;1}8FtvDU$cCv zJ+pkh-QjLoSrT%NNp*X(#e!n&dG^mCf3WW9k7e)Bya;VPZt8Vef$z`{|BC9XP-R#1 zYdIs2-4kfPPxUU(WQ^qNMNNzo+c`$mKAb3O8^(x8%Z8F-*8Qr-yOcdCE$~zJr?*3% zN)*L)fV=fx`e=W?z*5wj|WDU*!VwUB_{DCP7cyH&f|7R(<@xWs1r*rLy;&G+xM{r)>JZWw3ibi5vVdtrU35xlTL^1>un$3hV*bBeru7wHl5 zvq3(X*M7{N=bM}Y+5>uI!+ef{4xN_>J}c=-{Qxal6LroB^N-z->2S^~G0zJzzsaU9 z#Q7a@XXRRa;%Ar}&vY+v;-1&_b{QjX={Un^$H$EI@lG2;mlzAcxN+8BJ~DPFUHUP` z=I;&QGZt-{oHaayxO|3z@Y9^pvvytLB;Hb56+rRhHa8$v0qow!II$F>#1C=vdR&taOTW-(T0O z{kCNP$`NG$RIHnL+&K zyoh;+QA5Y` z+@xsPSm~o4I?razlke*2HS&+k*r+Vupe-~})4_aW$jT@g|5bBr=Ur+q$UB|@oQKfCn-m?S4S@NPl+7NCv(A5- z@A~zM9%h+(o+ZmTftSQV-(wTkTe6Qy8=fX@pl)f=g)BSi!ox%8Lf^(R=x3$S)2@QP zb|v(-Z?*Q`az!ijIBCbEOv5umnWiO9^~SbnmpA6zvPt{aKIRJqDH~1Ni!*1B;>}S# zQIt(m(ZKnMrcLr<5h3q8A$z$b`NVc3_*gG%&UmCBi?+vOeMSm-zVvrR@qCB*`?LIg zuh}2yYu@_}^S%2nQtu_d+udOVuQctQ%=a+n*bar4#R67wfLT0rTIjWQTk{h3ElF1O z_gHVCWpie@(yZe_A0YEjNHg1UkF38S!~@3xH&;C7R5HH#uwBT$GRL=x;x0q9cBin0 zu86$7((rd~(~EOrRFA=zz{iMpjQJ}i%__-mww16KT2i3ovwm5>DX9A5MmQ$>k#lXV zJ97S*KELWu?veGYCgJ-L^B&?@=9oUem9IfLG-eBX=h6l*Slc7FQ}%xTj*RWrG%Gi$ z6mYl-@VFAV^Q~6EN8(IbLZAQaeTGHgPFXKR3k>uXj%8eu`0TV@yunz|;`mtE7ql}u zwaF7Z*h}?@v?+Q5O*b0;tQb+V8uaH5o2ofWJ733L{r-C30%LR!U~d@@VD*3GwJzGV zHCgW?H>**rVGqlk_^W%e|w&H(?rh`ce& zSAB`b{)U+UsOrOZ8M`fe9aO)hN&C_p9Wq03C1vNdYW68zEL458cG@<4vgfxi5Qp&qbLOj8 zUm}`UzqG7<7ictL#(Az;$sGF8GRMa&+e45*_CUX&M z6>(h3Ssc?7XN~EJ8q+gm%*HUs^aNVBsG4mBVIxRbG5&(N2QsG_aA92jA~Q}>*>|&i z<5poFCJY4j8|y8u6q5?6W6@sWC{!_R&O+=F?rXilxiiNjC`b9ekA32PsrZF!G~mg>e;5TdW)5kzZ*!#QLnb_) z`_u?Bc3$RAYK)Q5Bd*mYA?H5j!%W8YWYuGRz=tVgQhuw;9PNSoe=8!aQR7^#g&ICI zg2%@*U#))pLd+)__dcXWjS=Oue6Gg`o&fG8;ofIWpXI-sf8XRh zszxmMcm?0_fi}8_F?FP8%xiRgWtcsaMJ~T@Ic)@eMS7(C5hd+S}!jJ1Z5Pg#%86CQF5yBcHd*nfVET1B^I-elPd zt$FSOjXkVG-L#`qu3a&snekhWI1wbBioVB}F!Y|%aU$3xO^oL57 ztNNw&Kn|L=wZ4{dU3KgYhVKdEMm4=Qg}ED9f!Fb_Z?9j|{)Pw_yo~ewjfVQ#v3Kha z?$yTjl;A9XBSw!9&z|Yp_}17}HQ_^;^LX&?OE9PNtJW1Yi*e=afNu+cZ)4*`^B49p zftX~yXaPP`s=iyq`<}r)S76=?Fz;uCit`_vJi2M@TD|z&nkZx}KJziy@5t&G_V{U| zf_ZQq5hF+)$raLz!87uSQ@rko4Aje$dwQYF$LgRpC69jl`j2R zbLh{qLw<{C9ZB|I3faFhg>k(qN18DYvWMYidSn}WBVj*Qfsb|7E&olAefe+Zt`N=h zVrPfFn!5>dN6%xBfoAqC-?mcY91^A8WW{Fw9P&SDC~X71S2aAC*}wOTqy0wkq#3t) zM9M%}GT!dsC;fi<)t(3aNd=EAlH;WYPP+U2X)&VtOXiucg#N>tQ>;shzo+q>Q=YZ7 zz}7_77x@KY^?*(d&>ovS3fB`PZ;CYbYlRhg zMhtnm%&av~d4`QRQO3_+)Hw3HPhtGiE)n^=eN3*>O|s0MRLL^l_HX!n#8_MCN@G6m zm$2%LpO|}eveJpD%XCf_#kB1kbz1AF*ZTd>;T_R&=o42#ug3m$rI_{i;#q%hs9tmW z<}08R&l%8f2G(Ue_qxIjW?$_SM(`={nhpE)$OaW-8mU@a5~|#!OdLmU(L+@PK1p3jY7v&rioGylGWzeiks{;$Jp>SqntQumGz zuy+abT6#@C|0%o8Cu10}=Zvpoy_SYcLG#Bz2VgH@@LJ}Hdx7gd;5z%!EHiO^g9|W7 z5N&@+4HsUAy~w1k-&RuGhTd{_+Zrne+=#W(v?J-fMUI&M!9nUAVp! z_dqDED4)t@D6{`56xi1dJ*d7hjL(wxsz2Y>@4sEf(@0nZ zb`{H5od9bS?54Z}*^c?y$`|DbG`-X3r~QL*0D%|kL$vjjO>yt+o>;%o*F3Q(XH!nn!J zQ!54TOcImc{<`>zk0y)I-=Hs$7QQ9xSH}AyDjzMdA%VUrEwFS^eW(h0TV*``JQ=Ri zMI!X!R293dU#v&kZ`6wieLa`8w@jw)e3`Esx)$>wTX0^xW{FU%o&7&D);Y4o_$69n zI>wVe=;cwdt53!#TczU%%J#{)9>!p=dO?Iz%rlS%eYa~CbRDN@lQz$S6X$|)kxMYA z>&$qB%8kmmQaBa!`%hIzTIyy8)&EjAGwqXQ*T^2qvSv)lPx}1&0ulU?O(Y$|yFSEw zjsV}4-!;vr-8N`%r{750+p%t**T<#J-M5pquiTs$^wSsS(2kRA_EVHR*mttm@bf&p zjdQRY@(**R7!%YoLj*6@z{4{{XenUTi|eNnMW_O_ow*I2>|-3%6#cnUFD5-w^e@@0 zcjJ-u!+zx!+vUDw>Y+?6(|77TJyIz9p{jYDP7$Fn=-PK|V*7tV=We-gUoGop*s;%5 z!r?vu-FubkpJV*pG3eUMOn-m%2r+ovqv@b?-G#C@;rLnD589}Gpjq*zzhH%P&`0(3 zx_*DleR?f>;Lr|q5d4uaxB;{})h)*LV*i-?$~-6IZc($Ec}0`oOZRH&E+^I-V^48g z`BsYNr}%!g#E@e$@5|VeQ|*S{LOVEkPTOh14zygwGCF)aDJRiKER?Ue3;eKizdGN& z;FFm#QP)jA*$F=RD6ZE>o$n*gKEEI5yE9Im?@XNUT~X(|H%>$va9$q5`R>5^{)>6O zSI>$*-9?$TW7nM&dCwtUR)}v%!CHAm% znrB)14996+!v5%(tGqA85>GM%QvnOEgZsdQ!d<@3L168WXM@x7(voD_Ut@`wf5dP$9p%AuP7HTp%`PFg-l!&0o+e#+Ip0?-iBu8z?n_|*)&bE+P7Z<={uhHrh0 z*lzjLc4dim$DlV2_|#&~;ZwV5Ft)8@gI>&@^#RQPl^EF@n|(5$c0m7gS5*~(KrLv6 zywikr$^N$9B5AW{?%q7;dDHM24L#9aRbBMB<}ROyy)B2XS8WsdjwqjhE?zMwLFj+N?#4gWx=d@}`u5efnRIiWXJol3vu2QPR#3+<`Q#DSvH_ozGCThN6J=4&qMJ!3-GuDyRCKcvG_%q6 zzfUuBOq$slr{vdudiyf3ss)UYX+z-*T$7kz`|@ z`)n$Ik@KdnPe8WcZTfyNrhEdp^hcp;H-Rs=@jK(< zy6qEk566pZvSY+GZf||4&a@HMWs91XfIaPm*?4ZXQ-83|seds~+qz@5HtOJ3=qpFZ z#LOS9*_!uEjG1r$P~7ql`>4QEns(?HPJP~I_`H@a4n2wAx99DifBqG}SQ}fgd;SGi zJiYdZnctuPADK7J|KY@6%>QNPzs=vA`SbaEGWX2C2y*61{GFqVwX<<;PRywJ{JU6O zFmd#_QBCZ-`s>(|cG?6l&VDWZgS$k{KMw7>f&De!(L6rpg|i1VZG?;! zcE<-SyW>2J@jqpEl=E_mwy>(xl-v0eG3Em7^GEjj%a6^W{VLIM0iqifS6JIZ6lA>hvE zD}|~-LBG!G&+mGWJp&H|U$$uaZ>D=i^KRgbX5!4Ad+XLnTqzOFSL9VD+=S2UUyL1d zBR)UG=a=~GzhckYm#_Fa@Z!7kZv^h#13dXTa6`}BJ%2^!WAp#fX9OqVe+{@J@LdD$ z@Go=sJ-{EvNH8y-bDCD$y`Fr1)Z~Ndby!Oi)I`at6K41IfpQNkM+zh zX8wVX_2b6M-19c)3en8kM$=+vhnXK)r@5rPj6R?AcK^ck{=MriO9Ty>tm<+t%@J+g zkjcvGHg1Ei|G>L%&TN+c=BpsvRaJ$1<3;2+=*%g`Xo47VIRgbMr|ogbELI%R+_?IMKBw>& z+%=e=qjE+)W;|P#&wC5x7xTT$->=)B)3bfHXl9Ha<;<1OLhrTW&w;bdb)haA7|35Z}YKmB)*U@C;RVsaNK7vCdeQ zuWh{6+_B-dc5l-@Sqq!^M|rqo!;E&vAF(IwHxtJ?y-9)fj3;57j+WWv)#_^*f52Yp z$L#4oZ`a1RY=HH<>kNOEL)7p+ryz?}POFz|eALZ)M-CZ>$o^y{|0|xCZ!bSF%V)lq}-7Uleyx7IBEY4$2}9<!ys`0U0;=kjJtQwpp5$tWZaeu zM5sMML>!RiJZ{rAFeO^X^$f_kHv$JTO)VEmVQ6{V$UpJE(MDYO^GPE}`bpVA<|_XW$q$!;PoIYT@Z)|X<^NCe1Lt+=AC0zM zHu1T2M#9j&SyS(;sWOjcz&A)c_{$%u_`v*FrOUM>3z>V`3OsdQZpPkR4&Fi^uT|X=z90L^*!9;}-BNUD)vZMr z+s2gN3Y@;ijOX~wK3eYSm}I@^%~dr;yzd&^!#%wQd-{}6wb@_uxSL*EqZcP=qEOY9 zc1r)cI%^K;UuVoK;YQnzqeCz5BwyfOT`hI2p!|Q6tWlgN`IC9BRIQ)%z{}8u^-l-S zROt)qOgUaK@+Ew6o?eBn^C!EE`;ob-Qn&eU=ie7`gkcD z9S1JF7(+i_X3t^l9drlTC!x;fsa}rnA7b8rTSVD8+43Pv`^n$IbMzk?e%Jja#XXQU zoPf=!jT&G(VO{47^`TWVet+wZ^EF-C%a@rk+g)aDjP9t~7+%)1T`aumW_}v|=bX=$L&?6FFZ29NVmM(A1H?>~~FY-j)dBg6j@=9P-IZ67al`^P;DeMr{V_6*9ist4S; z>p9O=r1BS!$1H1EpLW!5&ejr5*M( zBDfH>@~ai?Ee9p`UYw04A8DGK~q=8{&PCnLA*PProQn%MN>Ji zXMY8L3mE(t-kJK=%;wWqN&fwLX(D9H+uW@!%y9&rb;LHL(}zr1{M5xF6iE~Vb@rc( zQGegJtH1I1{s`z$rBBhJ@?VIGvM4$PdAeft_@Q*@qK(z<{{S6=Y?SwprF!HwZ7408 ze->Iaruvqman&DXvR9U?}>4_ftArkHzKYyRD< z{`wNnPF^K~I{^1Di$(B|`R+<{PA{8(S>rEi zwf}Ehp8%FXX}{m`eKFo*xj4Z?=Ko9JtPPQ;uP+D9RA56~*42+XiBX5(B?q-tYhEz;{pJh2@M5$_mi` zNS%?jd9t##n%S3(T$@L8D*LOWUd6DUED~)tvzCbT|6>iMW9k=n*hF#XEa)HK6SXID zMcX@&XP`HR8Yh8A#Oz)t>yO7t`Kj$Kmxxs1w=MY1h2OlI%LN?u@pq1!m?5^47PCi+ ztr2>+aLTxAEk?Y-Gn4)OG0ktyrVq=6+2%pG>_67;XFX)XES*u>OL2sS|j1G(dqZSDxPvDhwv7K{m^|1%C9yuGF8Ud#xi>#WNp1^{; z3_oedVVwI8oXz1lw+`?-Jp#V1#`T}t6aAtgSCHH=siJN1 zm^067X}mhGi`*lhSN_g%rMi#G z*8b?g_w>NlW$J96zKS@Q708RipZ(*`jX&?--6!|uwhJs+$aqm-0I+C{tzSsmTLm0q zZDr90B_1UPj;5*e$$TZw`CMmoH(;as<7G%$ zpz;TXpLBqIG!BDLSDp{}fY)bbi<)}KM_J(QN8&`qaQxeRbY%Ry>*!Ek(K1TW!^+V^ zdBu!nLwUu;_|AD8nIq%;0{>>p2k*uYl@C~pYca0h?of6k>pJ`CMe{$0$JwOe?~w$) zBV!=8_lYHjU%f*F?iH$TBfpm>m~|V+FqbAP@MBBvc+Cjjp>h#@oZoNXjW2i+-=EvB zNA5^ebF*q90Ed!xU~cJ2O4o11+!`>q$8h~w-2WD?S4Q3cEAt(H`fnrHYrZ3~(+FM( z9a_pE&l@AkA$R7kef|mN-pM?2>|5zS z44ETaX|2tDmiR=cickFXE^}?#P&&U4Yh(Ui^xCAY(yd&MV-Vk>YH7UtiV-Bgya9MI6Z^XZ_>lf9V-N>Td}shZNV@i> z5hRaz7PwJ|`=7? z^jMr|-e$u4U17xwsJbiP0lYt0m0#4&Gw4ZgN``JP=`L`9dRtGS>WNkCR(-Lkzq@~F zR4{jj`h?Ug%Gp2Zx-j=OGp0|*;}GAixb{T6BgvF~WluuTw^JAE&>f-oLx*7=r6Wc> z;P`7&bBjGK++wd^$a>b%vdRnglyKYTl=ha*Y3)}Wk#Yv(u-m#I^E+didzxv+$vXlc z9#*u`qL)WZd*D7icWe>s^@@PShoj@^|Bm-Crv6eq&)!I~zB2Ry;`x{MB;W1dv#~bu zxXK%~(4U!CVAh&to-*<3e4%Qx+!?Q6og8DqI!oIAoq)sJ=V{IRR@#~^U64Hj_vHfS zMz56JG`kh2FV`JdeyxgQ;JG4>Vy)+>JL?IgnfrWguMxEN@x(PUhcvKCls$LRWn zq#>ONs)m-dFHL1!geZQ9@lv?2V~?$sJ#3SiOPi&KI%bRFg7Kp5r*0{K1RH?I+f1Kf zWt7jb;eJuf{G90A9O`)aW^T@q`1uiiXo-QVelX}mWBmN>Q9d*)SA{;b+d;eYD~-YH zQF$o&ILpyKG$-)*S)0^XM)aZGZu-!E3tVWJrH6iM`p~wH8rg^T;LS>A1K#E;dX_A0 z-b;mw{~|nF94ht;I#^qyeJ}>BBEQOI(c{L;^bl*wGN$W?mkrjaOpJ=@qFuP9U@)dD z@PZZ7l{^>+dzBuFvFZc$2^9l-l@-_Jk#zi~n+Izj*VQ8! z*OhF>b*X;Rozo0I$9-1DXC?1UjEc|VID`k+-L2}4$XG4rgs508-_E31QA-?MwA4_( zgQ(tp%Kp5h_4qZ{ww_$FxHY`2qV@F6i&}ecS=egW0M0iI$9cIwNr5dJP5KL*|G)6u zHsCzr%sDjzw;N2H-v*qYF)Hf1iSrG>`NUk&#+m?i<3(h-O+49A zt9iG?i2N+_r1;F-K&+~>pBAH@pOq*glkDQjTF~_doOhR~f6&Pij{qjcc2y_Zf=Rmdu59PoVO*wQe91;N-g@lKHjMW$#!EG8mssPG zpFRQ@W9@_QiGp$3DI@r<={si}#KX8Z?1~yA>fY-^_3XtRm2+spn|!@8 zR`Ok0k}4tB_?=>854Zn z7!@y(ZqoWcP8m5SIOTi&ehL5Mkn3;;9s>=_wyE04mTvvdBGrHF@XJEVm%mIXT zv~QGUw^RKc^OpAePfu3;a@i~3v56{9fwA!8G_m~@>_842+R0LXHgl1r2CWJU*ZI(NBC5^Vu}n z*37Y%0&bm{dyZR#49L6%cA29bV%%%a7>rSBV2dDLBTves0@QTy=1j(vf3o#5jJXp{%EqGfJL zq(QUnq$vSUZJ(dA$Z71oq~FX*9s_+8dv*E?Blrk#t>r&dUYCP>_Z9VjE9)=*Ym z^T1ouxKj4VcG4~^@)pO6r*~hZdTW7jqkC%~oEY6( zJ7q|3ZH_DGmszMsVy*WM^wU=3d2lYYixtdvK-bY`ShAugu-? zx-ZG4?MH#fg!eIfri{%x3b^xJOfALv`N#+s1O8=rrd(6Gcco_T9sBfl(LTyvC4W#p zYuTsdfcjtdDLG))1h#YTZmi82=!wVK$Da29fA@ipcukse2zq?w3e$#S<^)L_iaAD? zC8Iir>w0b(3(j$WW{xZDs_qkMFJqmSzcd&VUWI2XUsCnKmj90NeeQr&8>|QS%in)z z%B^cuZ1@p3_t7255h^yE`N3kkh#Wp)1fMo}51)M>|2KW5WTJsw&9BL^mVSA=^2@6} z395b=<25T%MB8&XQ_r)eB={D1yl->(8XRQuGtSr89)k4FMH3f=I`vu4N z9>*B3#&|4t=>3=Be%erSqVB(e_q&F^a}oH_rgZgAUaN&}{fm!g7ax<~Jpn65XTiyS zKjpwpE=5cD>=k&HV|CiCx(4cg)-|XDt*)yRt?&M>-(PIAbkr2}`}O^P))qJ_^=kFZ z;s5UUGe&`P=li4It^cjxFJbyutws<(hV_bhby%+$rAK7$>>4v6*Ex*0F$W~6#|ZKa z9~ooq=O8b;0Jy??j(0)#u$!?jDbcYn=g$3p=5()rq@DyxLg^A#>>FvSv}OEN*})dM zai*}Y0y9_WVw~5M7}0F$5uLH7+#IKR5q}_#AtscG=JMTyo%Bcuv+A5f**%Nc(fbFc_q0>0!mI&g>098GpStRK_Qc z`f>d|jd89+Wl_rWMYfUU`TzRT2(qSyANMSYem3f!_f8wZ_e~o8Tk~%R{+_KiA#>y( z@zsZRT)=uRGVVXX9&0H|RmVWiVs#Pw zDvzpKRn(-p%U7|FIpi^!vluU$FZAd|) zEo6-(?tK?N9iSJb!0m%}@dosUr+sz$gVnLIvi{WQ-?6v%=xWU+Dn>V!6u;^ed7~lY z-0Kv<4Gz&J>+3m0MMA7uW2pAY^|v^}&%c4Sjmy>}=6*?>XkLgqrcZb zQhhe779?%Ktf5|}jcg09yi=XI6q^YC19+RV5AuLexNg~ENkdY8t4HpPjk+FXXHDrf z+PW~86v!FGlg@t_!PhZXBjj;eQxG`4EL+qZ!yKl$#rRonvF>C0gxsx=>&vxK2Z6V3 z_l|cpJ$Zv(sQ*XeHBsxjWreXuFEq@D8fv~P*_ zfWaCCSw7IM$nVT^_y_#G*Jf+Js6^F0ds@>D?RM((VqE$>=B0g_Ee`$rrddzEwn;Q! zjOR!78Np8()B81jRzI30LdOzgT8~1XXRPBk$Zze5dgwXmn-P0FWGwb))_e~^_goYs z+E_1vwHR0%<6-DP*AD9k!rBPWTgD7@CYg2kJ<7iI7T~ZL^I0;iN5}0R;J|+j)+_9M zWw2f$^FO65eJ$l9MZbS=N1tC`gR^t7h(PNK9%OBxSgXEqy5!ZDt%O{M^__&wpW=la zc`@|4I8oz{k$t*Dv?oWf#-(xf3)z#x%6Z%;8 zZw)qV){83_i9FIf$eI=V!GHN1FmBwM|MA4Zdh=_BRw+MofmHQ;rqINb1Gl_?0xC76IAVB z&WX?bVMTvR=VZ(YXMp>uF`l{(FdHxX$CiMAb^dZw=!Cv&-}lb%v(P z1Z!}pc$7^sHMW?u#G{0LH?^sJ!Z&>qS28OMD03J>>l!yq~=v zR3FZi>Mg88q3TSG!*_QV=2mUSHEh#|#x=y+K>vX!yvK`s8>Ys3`Hs?2BA>Z7)|qf# zDMrkRR_DYPh{N0uLm%FS@%U~Je*fuZs)qR%n;z=HIk5I~mF9BKmUUwl-dHsPQV27r z>MM08`%1B%`CWtkpEfz8>y&5t{snk*Cvau3rbLR&C+B$VH_9=m(HCf*rOpd{JKc*F zt`Nt`(p(~il+ONc;%M>nkd}0jQXE*j)($dL;v~i)*YU!MRi4;NErF9B#%-vp&RP%!7Wg zBK++FygtUWTQ=0TSF`T{!-07vo@-_E54Eav#UAY`8Wsnn(Nxa zexg$fcFLFmtdF^(MdOCnyQdzoDQ<9mKU+Rn@BVSC)&~2TVI0=FFNPdlXHV7X6Os++{R{vVrt zhVLCUw06?*tif}U_gChwiX>j!G|-nI#dlQJdh_^}tGH3$auXMsQ)lFgOIS@Q&X5I**)9z)s`-%j%k$oIW}zTqEUr_1V5VAbhj?V69r zWaUQpiwL_x`%J%PD$Y312Cu1Je2QnQUS1yG^yOdQzand#2;ELywodh?b6}l~{=wdK zTijM}I#0DoAGtRj<3SriLp(pyBtDmQ>&%D~a1tkr|FbN*-*qk06eIdQ(>A6^$`IIezd&&VCZ{}&I+ zM@R6RMb8vH_xRq#T&jlfiZlD}5dWF0ZPM$=rBOXdN5cQ#nd`H9N_457j-Roo1Z$V` zlW!CGdjKE4hqjBZjaj+gUpA(DHHSO8$An4S78o{BGxr&Pdf60p{r2As?vvv;XWJ)F z^*-mJ33z_V6AfnA&H?lO>7~vYK!ToN{khex;>)x z**Foo;{p--ffc3{? z=|-7?&}z) z&vlso`3~jxm+?4vGKU|ydN?L(52NZViEY%MmChD-x_6*P&F&^6_^-gV_CrP+=RsZ} z=K;L96Z1IohEYM^psWXwAwrumua04Uigfzp+E8Wp*i$U zoV9-@hkkhc&lB2N;(z|N-+zG--IrSAR=zM;r)MBWdGIH41{pc}cNBaMQtG#a{9 zLTle8a>!^g4&YfrR!oMBlP zo_+B;=PNzl5mg7Z^FC3`T5cUe)pBFZAmb!&?>7qQYjBvgO!vo(T=PinNowH3b!JRs ztZ3U81<&A#UjKgqo({7fDfIBj2T|}$jt8s(&-Vb&&Tm3CHS2CYQ63G?Suq?K#dO}`O_=I zmVaR(AxkYfLP<;cxqn)L1phE=d7cYnv!D*%+lld8& z87CB@N9?sTY0HtRmOm%SXSa#%l*KtF_Y(Ti=U)4^9qe;1^W`qzxQ+R8ho^}M z^X1~Ox5M-0j?Pi_5(tmZr6M%@-F`pk5;pUc7*{}h5p!)G8pumZ4ulu>`yU?oo*Fog z?_4kQu`h|rEwP<4&Y4>>d!5J--%a~(dBIe4xuLd*Err~B$yZ(gH_V5^qn?vI9 z8{#2PPL?r^ZGiU~c_pm5+#qvpG6VBQi|x|BKP=bgh+TX}xH5)yR6hN)sb+3zX5j5x z41aHm9wDBvjxl|24Xn#Do_d3$=inDcg&Fq|I01QF_LOIDml;ClmK~oe`$5VcB3ce} z&Dq~1r|>ZQFpXDxK=>QjCj)zM2;L`qaE(_zxJna6p4!7SxrdvvhYt;WPY%?Xdpa6= zH|NhB)rQ%kIgx$Fa|d(m*$aFH$S8m@{Cab`=`!_O9XHDy7Lilo{tz2oNS&C z)@kM0AZ(A$(4~FFQ@e5f5$UJ%`0&o{^sf^Z7MwD#)+yeHo`wHu691Ec z|J+*(|LH>}-n)+*72Jm$Ge2ded*mK&YOQI3tFTt~HK-VE#iGkP{JvDIwE=5o{upDG z8^0%N-*sUv36if5U2B{O(UMDvgmuc?o20-(Yn?t_!iMuCPV&qVmt{{Kp?qLG zvpnCOPL;QA#ntbL6%_-&oh810yt$?%$Ivw$`%=Z%N3SUYe0c=(&KbUc=A5TQ&Dq+U z?pV1uZ*X6@KYyFi=Vy)0Jn+#Z#%S6Gd)1M@ChgNB)||g@{%-kqlFV~gbkYbu57{OU zJePYhFh*2AyQD9TAn8TX2S)HK$a+b?)gyVMqQ;Bz3sr=T;3GT>(pQxhs9DhOKQ4Xd z77a}bY+kG4=)Ppk%ZK8Y!*etlPsd!B!*=_Vr>==@eQ$~3@63hn8AHEiikVN7F8%IS z&C!pTw?Z4r7|@^>>!loUJj#wD`?(g5U|)aH?E7fiYLYY|V+xdwJ!8ODI{rKT{_mS{ zeLJ=q{v88;`t-nMSXa*sy|st6TkU55)E8C%RIk}TRrW|MJbUldhN#%+BQic=KIF!$ zAwSN899a%|a&BwyEoH5cFI5~CXx;s0-AJD)m;NjMZvH~W2X(wKST~Y&BSxwjc|GLN zoD}A(sCemoL(cZp1jnp*1A1a|!hei|}Fnnmwy#dmFIUs=M{#*^o&ODEwGZb+;(4a(SDIe^e5Z zJ;X27L&aEo?WH2*@YtHz-{y+ZgE>0(d_D4mNrt}>GH=5R${y+RsGfIE%D#L_fu^PX z{@o6d&)*v%1G}AK+$h|$2K3Z5rEq6C@VyE1DqkUrn?}_yyjl~HWx)SsFKOXrQ$%Rl zO`>?22jBBWZTTf4w6w$?UUoUIXN$6>Tc zT$Qw1_-AZpy_+Ol_u%(r+?Rs;Q?cJ^t$lOin*aWvBJ|N-5&96i@v$W$Wa)BW$-1kt zzOb2dP|Lg-DSvB$_sd1w6F3J4DBs;zUwiy15jp|-_9f(sMv+svcXLvh_8ZDS2OvlJ zG}gwsay@WE)?O}qOvzCJ+*kHHy|$}KgjzF{UGRxN7qoWWiSKjt;;vmH^mvA-=z2;I zJqzA&!mLelDd3ZNm;T^wZ{{{Lw#1m7({ngYRIFx9Qth4X4Qb&*>d8*c)8t*D7dz7c z_g$cyUQzQ2=t`^Bn7(R)7{3hPy;@Ux9{%5zENWf?uE}ShQ_Pa}-k_go+tb7VhMeNKE)eNMcN`Zvq%DekI0`@UctZPN5XyZaTmo=scM9wlqAFW#;j z`u&p_6UKUPGKMfYZ~%Hm4rsRQJ&V6ylULBDNL!*WtA3#`RumUt+$a8gN2|2Sj#2X& zwB3kY+GN*r49q|8Ma%Y`RQ;q~-Mb}DjBB`C-)7C9^X3|==)ah*^ikGvwAMeccE_1( zx1KFCpY6KS^iAPxFTohI@%xH6Yu!q(U48?3u<&ue9oReOjlTrCnImxauD8{!z}Z_4 z+&%BYGy8b20sVI7sX4gXht1!q>Snr4KFWB-YwambDjz-B*E>o2!F(Us9MzLz)H@E_ zMVkxnaJJVE)B$CGX7&na{ZDthRsYkya|_1zWe?W>WPj#kSTEODVy=ovJibp?ZUlM*|^R;2- z=?Y;~LZNpe}|CA z+#Yo@PT8aW%$g;$^w1raP5rZx?NK|f@Aq?W>Rh5`(kM}J6X%KfEVqqpFI6?YQ>4!K z!f|CU72pZP5snjHif3a*@Iq5B{e>x`F`m2ao@L>AvQM@6j54odlh(X@vw!B^XNy~R zZ+>`Yi#;{W{H@)SZHK70R$pQGTVB4t$giYG0)0P)V8HR*J-p7{^To_Q9g}I z)2CtC_$>S0bkL&?`h8-6i;$;Y8K~n6nh2gyb)Mn}i6%{=jUX9oPO%ToHF)SF!;EQ4 zj*4kY9um{!?KUc`{l02VpMUpfMvys9q(REJl{SD&@z+y6o|rqq%(Gc}o@HB1RIxGF z_4_+aKLT@UmYZ?w^doebeuSecuGptd^6uobKbm0pJEHnR9EkQA#0%*&AnuXxaPJ*v zERdHxt@hG((kAwoeiV8->DDgVr+SQvI?yE2u1?_8iKkTmV)j2H9qO9O{!{edIDM>d zmR=x&`K;r(a40^tEEFN|{Jh;44aKF7+>+vMlfE4XUXiXXp1>X#4e5J*qQ;?ZNl(Q0 z&b@l5!y)oGckhc)`A%`7!dG}^JV?%qW;_Vy>pLX8-FRNcgwS6F_^?k(u1PzG$GcUU z@owx*L;H;b@1_3#u+*j0I`7a#(z93#aWxuGwz(iLNjyoEc+&8S`oB^BZ}t@Uy^_DF zqyBC+XyWfg@L%IZ(oxLy!@ZV|SIHrF0T0M`EdOq_EMfU~_u_o8zE3^qHus0;<#y`v#-VT@LriXp8uj3A#GsO1B?f7E{N*r|_JtGvv}Z$xl0V8M5tZ^|(< z2jrN{>d|(!Ck=JVrp}&vD(=C()BB?I9S(`pXP!)md7MwF{7TE#w;@*LDmMJajECPZ z@*jz{{KRQPV)t`5eHO^ll$y6vFy3;2`;UhsY_Ay8Qv@p<--7RnP3=vLN#>Gt5|h)t@WjDDySI z3p~(gOnH}d?4u}J=Gr8Rk6|7kvK}7JN*8dhRVaG{$NC%Q#QGTBlfmN?**jYl@BGm4 z?-@ZZe08j-Fz|dd9ER;jBw8+P#u#5RMjd*{b8 zhIQwD=<}e}4}oX@uh8dvNASPU*F4~V`4{0$jEa#_If=<;pCCmm+mT ziY=PYemvagA#`8WW07>9J?!|G_oSM#@o>Jh0DaaByH> zfvY?-$AGJ}wRyS?KWPGURjV*(A83OQ{N+1cO9xgMuSUbz(fZvu5`SI=(HpJ~~8q&h~{-3hFA>XCcX z^vGWPwh6Gk7kb-kI2TW|HZ(ppt8Oj2Wz{W1YO*r_fOT1)_UJ{g;}d<)x6PWY_XB>_ znjUfY89~CY4D%+AHD-fu*hdBU+q7OISY=-KUMkvXk6}LI>Jq(p7kkWs9<2VBUOZPD z<*UY=%fWxTig4dWBL5HIr4Fp^0M^F*RoVf$HW%(&6+@d@R-hbfTaC5tqKy!1TaC57 zinX!c?62|p2IhRxsY1ti8*8TXSut z?00}QRAOzNc6Wfk`LMQ1^Lop232R?BXiPcQR%foQ9BcDxZr@zYc`kXYZD`%$EtpTX zDd+Fj&RuV~8|TE$I>xK2i&$Uy!qM1Q_AXzwrf4tD+-sV^I)oUb-4G+{-wdl(nEM?6F_lZu#=YERcG6ZYS{mY_eUM zUCDOD-Dvr)fia(u>sse{+95}^S-i=PcUt`E6Z^oZ>BE zyTfZ;uwiTN$4o&l*x5pR@Lk z^|Q2;>YU3(B5Ra)UzU{%no<22&QwEwU- zHElEZTm*WEcMrD#U47a(!v^HWT1K(~>C{QVlO6}Yxh@yuy^VTpwdQcs&a=nXlFKU`&RM4X)-2cC161vk2HXJq2zbW2VG{*?Ah(cS!#kD8l& z_p-}9G1mz>uodS_%BTx8Z&#BZ8XvW94Idi$6PZU!eZgVorT)Rl2d_%{Ii5S>o|voF z$#awBn~Jq^48G&U{g|J9Fh)4X>LoYHx07+gj1f*8CqjfnH=f1b(U(*~eJUI0sgn63 z@hV@WvQ7X-IZdt~m4piLZa(wUDWifq+9v#EpQcjwje=r;cz$KOhslj5vi1sGOdriWZIC&lTm zyi9~VW=^i8fm6?wTWbrft%5H4TO;^q#?oG_hsrp{)L1X=qt>{qFedS$yBu4GSKC%_)M$4Z9QeR zduyxK@73JZyQ$NIhf|)brk{$vw=h>9<~kX)`@6QJrfST!4z&Af^IVr>j?-SWY9)Af z7OoK9$z~pd%>5cT)2Y5S75#qBi+!M+%#W}+d#b-ODhRKJFN{1nXZ&rPapij7iz<)q zVcJk)#rO))VfvO@04J`=p*5y=E)tQ_$&hJ*v+1?BhZEPA6eqtuyZET8V=L|FnctCl zJ%MW>^W4c;q6BG&2%2^Me9T!thWr0|gSwA&%xBUE(zr6t39y>0`oS#Ni#hY`J8Dm? zr|+m0^DELGPVai0G*?ughj~($kp7rOiiS9%Xh^l@k-R6>;tA06-BCP2_Dhg;x@9br zk2-%0o|#yod;p{i9cCte9^05@(VD>SR72J}c+b?`sJF=; zmKj;HMq18`gZ8>JY&)1M_ebU%+8jOQ$Bl}q!0$8kYUp32Cx0tfy&OB@a|(&uv@tLi z^cZUtjve%WbS?s&=l&lx&akIl9Y55bmSf@>c~~IMtjSR>d2T3xJ@G+j8g5&g8z(CI z`WXkG82DqakZ+HPpGVf~EhhYi0) zmq?#UlW1eK=>MRNHm|)3JhjrV7heP%TnoNh33~H+Iq@MY;9HZpv;69L?R8p0^=R;= z@@#Qvo>LsUdYov!53s&S6M1XFt3H?@J_k>!cnZ448`$Hu?u4dW!M9%jktXwa5+>*m z&e9TkD$SVr4vd@dsvcSk9w=TqICHsHe>vxnK)#RrK;J6XVqVwCIQ@j`CwdJ@(_Hd* zS5Ns@D#nrXoMrP=A9g_R2W-ecAH%t=0l%)Qll|L1hmKG|`GY>Io|I_6{zz-6ZYG0iVs~o{lvl#m0M%lNgfz(CmAUgiFH7eKnobxV8tY9DU3|}`!PT0 z`sd>6hx;*~aEY4=*$-c49uXzc?p=K3_`PlB1^{^uwDCS{)}T3xzFl=o(fq1&+hL;biLz1T&xVY!zd(RJ(TkUvwin;GAb)EvpPa8@1n;@RXe<4ek$)c6Mf;moTWh%eP5;~& zu)i(*WYGRLX_^tdA)4 z<8H>|Y0b>@&0CYXC{Yu+v+a6lHtP{w0N#uBJIPB-pMc#tm>2FeWnR~dgZaKPRs{03 zWp{}ksE3d$<%j=T0Qn*J%JsdFlbmM!5$mJ2+E{ZUW8I^+ZRsw&uj?MIxo3mcoTW`z zHwW_(pf{zm$63>k0!^>|F61=J2jGb6Pj1a6Cp&Ftmpv_){mG+s)+4y4>LX_Of|!fL zlF@)e97p=NCl#~*d~q^pvLmWbIM=%+ON@6+DQ50xE&F?%0u8$%Q8aIi7vq+kG=j&W z+eem`c)yH?PJuO5+HwkZQ@)t5M}A=TXK#r172GF^*;}MDQS}ySNm6y2SPPVU#J%A- zo#S!}PbBJ*KhvIkH~mFQXKcA!6t}o?n$peKzLrb%P&)SHg-b=q+PBU3?W>LUX}O|& zIa^05d%2VLa>A-g!K#7lj0a2x^n3-g5AEr`n*lfZdmQ6sQ%yTZmM>|Z;SW5d7lY5{ zHR7F=Z@Lqbo;;F2a%s8;e5-hl;nK`S;zOjI&AnYUk$5^y;_27bB5OD}w2t-}{b|lu z`2n}zr0Q;^+C=bgkYyhRKVzPVBdR|K;rKB4Q)*1q^{Ac+;XfH|B8pEJf-YvVwyMdW zQo*0HqWJW~?8^u~ok%|YO+B>U%=?-*B#$n2fIsc~cEA7k{e!(|rH{;{voZ$lTeg}_ zwEZowuk8@w=bcH=?Q1LBJ4INYM>7T{*ZBbXg45@Cfc*$CF5q-(OlEj^y*AQb(q`r< zG~y$BF*_lTZ7C_J z@_Fb{SvVV@cXI5bSOvAq~R^&HK#J%`9s%|gx z;={3IO_cNW$SQmu|KhH?xENajk|gF2@>VpMDb4_S$i%1_M-T#dPA3CIr6 zYiv^X$?`?lSvwVfMOenkzAO$MzeWR`0qf18xq|)7lT{xp#yT6|U6n3Xf8OC$dY79r zS-h%g!oH7Q?;y=%>_r!Ui_=3@+I0oXp;sOO-QKs|@OOe%f76V8;~WS%+CS%2rZFBtz1Zps6;hOQmW+2mK&f=A!H z1pGQ=48FrT@ow^e+P3*V^KvmRf-(yIc=&y8aPgxDvG*V1|7+K?-eH3Ou=Zd5pTu6( zKiVO7e-U%4!QaJ}M9)l1lIIKHS2)(|TB0WpYn+*$&|0r0?AnF7&5fPf&)ikZWA(rz z_M9710$hK~XHi;31$ zr)@&^nq}bQOgn*Vn4N(6FGm{p;yCa*7`Fi9wqx97(!ahbaGqw?skb$}ZdK!vui{wC z26L%o%Umj^?c-J8w(` z(L#TWZw~dx*f&ZK>@Z@NOn;0oV_aM2@I3z41I}syZ`T3tz6|)g7W8Xo2jEe{=HEXU zXghlCZvcnD7l0e$h~fDuUXRLSbkHiEPh-wlj6GL0eM0@--OOhMnKU6PFM-SxOPg7| z7|fBtIbMi4-fiTnSn4ok>a@Y!MjWFLV>E+zamF=$g7FGlF7U{_6%#32e=(A`f_dwi z^YneA|Iyc~oE7w;<{E~?7e(jqvJJ@vGsMp!;_H$+#J?dp^K@HiVR;Ak+jI2Vmu3FG z;HaGbk@84Nns$NSaRT?UTgB^m#-!`PqFBRcb+o>qQU`yd6*%m``}P9x@3AWHV7d)- z33RPV6P?tf^$1b27wfCquHy0e8~qn3`;s2=JMCf7eeM*IJ}IYVpii!=-RP@iyYg@0 z-9K)`*V*y@PGOs5!+S2{JzIhvNMziD$SVPFC*RH8F6%>k*dKrI5O++n3+5ZQIZYo} z_u7b`$!r;4CRUI?$nT2r)j?ja`-vzUo)ggm8b>&Z5lxQ<llT{mde zY}?Q^wpb%;%*VYKHtNPjC;g6=I`pz*pgV8JMPfhc2ei{28qBXlKFGHGp_;v*rCdAf z#rDLAqT%!6T%LI~lvx*}*5C6|s78^|K(^#>s1O_>LNV3BtH!7D_eNUpm78~HQt?+CB08Lu^G-*XJI`)A0*Xx97S zT_Anxp}#8Dm4Pj5y3pPaIe#g8V0WX^5*Y;J;2(Z~${4=2dGgR^vb=wk(bbt~btSMvRl zyUThPUfgjn?)a!tA=W+*vX4JOR=L-vV4HA#uYm__d3srUyqNS}imj3KN{-v~A3plW z(xzVB@sulNt&1TnPM2J5S23bSU0 ziV+^U4oZ%!gW|YV?azrg(U}o#$316mWs85n*w-8J9_f>vI^8)%zWfDs{pKFgPj6?E z%J1KMq2d|mOedW_cYa6aNWO1aj$|`;a%RrZ=YQt&-=O{2k@F){HFYLU48%I>75 zD}^1O4t&Pq0B}H$zcUV>8a^#eS27neV<6g6L~!38;Ty;p)7oSeo116qf&Gvx-UqGw zV88J7lz<18I4j*R67^thj98^ZW^;`N&rUh)dot%qaWiDP3VgQwH)C$FkKfbeovbFD z-l7F~W`ybHTQ%lQ3!1Pp6u#2@CJng{`}pRu@K(I@25UdG+eJ}otoV4gQTstYkE;EU zj_;l4fq%R}!6cvASQk60_QR$jwI9-k)P7*U`X}M7?KP^u9}q8>=z){t(O)X~neoCG zt7R3M@zdlRKEU4W|GL)kUw26P-*Yln49=JIhU1HiuL|~qCm(6fkm=vZLccbdLnM2| zIXhj^bIu+zXZEN12QO=p{cn-|Ux)V;9oiD9U!nHoW~^)Ib2TpH>A>2bXl3$@AotAI zRJ{(@wK(S#QM&_pGyi>sGnSnnYU>7`z?utxK)mf#`3LK))KloeZ0uQfjOgqhHLh@8 z-+-!76EC*z8>MR9P`?r0KhS0y2)|+5JIR+lKBlAM6~FMj zmu|F-e3wrABixxte>SfDrbM~+>htAU7jpgFpD~7Bymy52 z2EQHbcY-g${yMS0_1N1AeA>%po~z*y;XUz9Be4p`27 zj`&S}UZXEqo@lv#7ju#0|9Pj^)--5|js|;zr}`SPU|FH8fz}Ax<~anusV{zQw)0|9 zmiR^R(8Z$63p$J63TGr*FH0yx|B??9jV;>R>{;5_JKgB#Al_@$oSuX^dKv9o6Jv7= z-N~(ZCJL92ae+_Cxzm27C~Ltp`y5fmH8SrO?I`wgQ8snI%7f3m{frMaYTn2=krWZh zgYV5gcOHD-Y!y=xh{~Np8SfVKKgB8z3#Wd65B4=fdp!FIs|X%X##q3I%*{Ur_so+% zrd6j73GXlH47Krj0iL<2gTtBdu9$ii(1gN%$R2s#`TaU@_)-UCP5d5yxuDOXseJ#m zJ!S!?vW*CbJNX;!tSy)5fwm9z;MxyG(7nKw(sBvo6hZIflz);vdB%J<_RgN1FdsN2 z*o=33vVoH_RK67 zPkF}^aaJ*0i>t8Tnq7DjpFc`r9;2*Q<}IS1dc|UWCHMXi;Hw4C^FU9UGi|LRw&}_| z&=jFHU3p8qNS6L@4fFeX7JtN8Ya2@YxwqyXu#bu0byfq%%yNoGj{gYt*~UF0?qN-i zDI&X%G3R*+pjYTiABAyj+ppA}_>944JU#_JtxZ>M!#Jx!$KLaNq45d4KO6nMmkZg! z_P?V~CSS7w{qB%F%OrXCXN*^T5_u%s&%>Rsgu z#f#l181L;Ahi_RbcF%x(anrBjOPVFj%d|x^EJ=H%6-+Q9$=S!|4|8))KFavX`#+<4!w@UC|6&;wX&(;~`N3B?2QJL5-MXrn{BB{8a93)<|#bFcB7 zIe7~bRBhK=M#-4z~XZQ|G!(CY_76doO zbo7Q}I}ThSf?c?;?ssHeDQCeuT42L6=A^MT)Y~O}HgeL8@$2V>+P306dP7gvbUT?} z!0zZpU+DjhWf;SaF{&^I^^M)n#B>}$|9$A6d2SqUmIs`IHBRhK`Y<@_`JcN=r>I?LQ& zGv@x9F?Y`SU|(d;%klpb^hX=MjEi||s-%(b%chrgj2A_hV;#SUXPm_tzx|P^+uX^b z(INHi{61~l6}U@ymdu)>#{p0D!_SG;1NEsQ*>kA~@cD}t0|sxl$T;9U^!f57XXXb; zw5!;CQwKKJ&@I}xsT?~whHmkCDF>VMFvoLjwDP}pX*mr|cGbUbAHn|`c+^=GvEMyn zH|%%l|Kfb%zQXW{VGMe~wR-RhvtDhKJ-2}MYQL`XW3pB+^J6kU+cxZB1g=sgTqWXc znAcjKFU|&MTW!bL^x|wlHqMIU+@*<5 z))(UbSck+xjFszr0qbPDBNmxwcgPxV{l8da5c0||u*PN5pK*+lS8A;1x_|K+InMo9 z;~l3J42-nK`>{s0JNf(Y)(X%woj!rq?PcE>rS#WJg}vJJr>H6!8dEtpO|7rei1&>4 zrku=U|KqBX*9thxXn@S;Z!Ec4uq~wK2yeZ4woRA8bX*nemUCtWoigcbPRq zv;2Qc47V``(f&H_%U{D=#cn+~A-){)`dE*drz;QqU(;X0MJ}6YT=&~>tt$q!$|3RN zmi!-IDrv?GdEjjNUX+=yXQXKhmlXqnuP2~L^2 zy%Kvk+HKr?oPI~^EPOI7=3>gH3hcayeabP=YZ6Q-4_mT zJtBz9Q$1#VI{K}L(XW|>+rno5~lsT33};fyV(8S6Qc1%M%(HzJ{!_oS6>X->pm^B z6*PXU$7*lIzVD(A9`o2e#b`_UO~cx^9}CNTdKVabc;m6~)`Cpn*I$dqI>=u=p#RK2 zU67-m?FBC6J{Guy&+fgylsIGxodP6)utN8YddX1)|nfE*dp_Ug4sh z8hiY4lJ7i?cOb{#g*oUGL~$Q$E+{?G8Ffw>lbedO-UK*lf$TuNfVBS{W}d938tOd` zLN;FuIfl85xDWY8tq1;3{r*R2PnjxQe{m^oO8ib80{;((lz*Fgru<7dMk3mO^jbk_ zk2TSgxJY05Q|upexm=qacl|{CePkU~-Dh=Hf227a4fy*=OK~=6$tXza#(Id8yy?ONb6+D=@nfgAaGT+NH? z;Ir*Q<)>%uG1(vbwyC)m#>r3WF4d>GhC49tOB?Pey%s!9_z{eQvkX5b8l8}VIo1~& z8cGYjjit|vtVxB|(X7E%mgl{*w7cI`!ugaR3)hB^Va`JBt9Bw>`*HnkrC$czT>8pH zxvq}~!g5{f2Jjo;l5^GZfAm~O11A0k{$;Ic^E1wZXB>X5VE#Y;&YXSvqd|+UwZNs9 z_9Tj;zW`Pit^v=?yvwOl$0uVr{_=OFYpb|Ve{?MRFSU+srB2~3Jg)$rVZ2i6-6DlD zy9>N7=yomj3Oj&H2!FH{i{?>2;)epfBW$AhD(u&WLI3?R{__Zz@uIlrzQn>FrwH`K zk1Ff|pVbp1-Z;fPt2-|AW#c}twkTU5`0hZ*p+{<3o_+RC=^sShKWhSwR{413yQ7;@ z*jGDX*tW>-W1dC!XIoMr`=ajf6mVC1IpyqZ|N6hHJcf%cwuT)tr=OWKGsl1OZv$<( zb49<1EARis>2N1)7VQtt+SUd9dSDb|39{&$-|(yx_!ILu-~`^LZ=$iM;A3S@RNn6b z?BAI3%jCY>aITC^9WzaRuR9u+c~AF(mdd+p8|@>l-}g6#A7u@gRO(1XT0dwWzq3Zl zfxiMzzZEV9Oqg4HDyFm*UV$6lWXYUG8GKfE}i}V-7p8f@RJZE=!EA2{8SVW*r z!cvCk)BNuGKxg)YRu1B>EW!=zkL38*8+*X@l1`lXL%6e-wav`Ex=HO-8`}ZqI%&_G zX5HOC%Z~9J7}p8fngH5r_1*Bs6>qg?s63qQOUL$CK#pX+AbYaDph|D5snXnz*MKt| zZoO=lX%Q08d z*oGJ(YdL-;-QN0ooF1G9UYow(w+X$BcE#^|Z!2Bly?u!9x3Vod2W^W!?;WMzA7)$p zzKT0w?5fnakq@iVRD9)Je7=nFr#_VIV=YeldD2&aZRndNfBQnRk9dwYSDP;VL5po! zdVu;E`TN0S@;Zfk0cWMW7lu8D-=l3h%@>G3^G`&X)fQ@NmwK76Nxckn=?t%VZPvOT zyCu~2UYrQNN8fvoj1g>P?9EZY?{Uya>M7?_PiD;+)KB(&M_;+t&`;X&occ-IF#Y6- zIHjM|8t#>KO#OQY+FT8j`gu01fSccDekMad83r$OpGO4do>Vq{@^AD9n}c!h-eB`h z5ovu*!LXs9O!YSLaAhv7fZ0@0gsmBkh%Y~91rhC?{~1jLe((5$O|6&em!83{*f87K86kL zdhQp2<2Q%fIG?vpFt6y<*uSf=kJGT9Q-Mp$J5I%aN%~BTR7aS1op-clCihtL)B|pu z$tsWLW0+Sv=H*Ryv`$J?_V1GXJ=u0G)6q-#*D^he<3wZo;5^g)7RTG^f%xt6WCRdz|U{0C=(+ zZL@&ivw&v_6U995Bt6(3<-f)FRezNK)7)ewTgiGd*C^SlTBsV<`!K&~pVB$Wk-CAb zxF#p>eFq^rG2hiCXZ<&*D|@`6yfR2+Qz*5uNgkmX1$S- zV2e3t8S8V*@Y$@;q;5Ev3K(Xd88_~U2Y2MII2ms@ct=ukM^bS|xc7v)QotPJP}?lc ztAW=7b}h?*zbpxVJyG}M);e`h_#5v=8(^*n@J3kU`Zr?ySFK{jLwCD;N*TxVgE0pa^ILa4n{?C z9Pmu`ObuIQIHjeLie|7D;Jgqn2}M!ZAC z@#+q3!yU3s(F5sbEM?5dcPJhE@l~8_@hg!#WY$#R{uRHZ2k)^&J&&rBz&k{k?{yje zSJF?q5_h8lcVs&5%9n6wu7JVWVw|7XrF;mFTVp)~R;%YEXu%241>266?B3fU_c4D6 z@aTQ(#nv0}*K;|}a=j=zVv+L8mIo=r98L92?H1A=Lj0KG!aZ3lih7yL3-_WI{2zI) z1cT>V9>sH=XV_qd=iVzYa_==8b*k!~RA+A+7UOibym^z2v+r!for@7^={TDkeyGmC zjM;qw&l5n)5+ z@Inz>Zwt4XcaQrMo!@Zy-Mc7Z$lVL3Mfua`C#ZX-e7@5pj6E<--8nDy{J3)+uVioY zW{TwA8%4mIgU{(AVCIM&UTbcjaV{!HY`T9SKHPS6ng|>PjRejN9KBC$t&11Q?XP5Q zt8?;m%r@2>Z(o|dt><<`CU9n;@qwRzgD+5IvX*g_FF37k7{yT#pqsR*`O zMB4mI^xy)^&|2X09b#+2?+D*n(kHZFm-@d&{;&KQcgoycs*cct8$)ekrs!<2sPkrB z`j+^S&zonx<3?rwde?R)y&sNSRSZU^nbYMAe|r@ppFYIjejN86drDrW-#W>|oPg!@ z)nJ?$@Y-I?js6<#%oWSJ!8zvHI~uNu6SX{t%0>Fhs;D^>#;V>4F4zE`+u zU&#i%-l8cRfeEkFu@E0pKTdpDcaAxSp$IU}bs^~R@l5a>=g|fR z9&*9_{*3wMWn*Pt80NRikT$FzR-KlY4^4XO9I%M&8|@+kU#0e!a*);~>^ zw3jg8#hvn7Z|Uza`mZ~$WKD|!1MIg-%W^tQI0&iwyzOYe0lzIV_C5w}2$%Dx%GxR( zv(6-AczVIF-euf>yK(*3z#Azl||+ z)38S8^$Sb4@jjWgk0t$PJT~qS?Pmd;TUNaAxvV*T6F&~u4&PIr75Qv)%{Jq#9Lyne zg}j#mo*CEdFwSfro=2Y>&ulW*+hOc$|D}=IvLnMo$r`^V^V9?nTxjH_G5X$rp_w}- zLcb@N@W7gise0gerkvLb=EJDkdzp{2Odswv$6@TB^SRdS2JCM=#$lXWgas22HHr!PGu@zyW`hR z>xjUzs?AKeA`Ro2LjHT+mRGXIo7NA+Z!E^LI*@)*q#xvTP_Zj@t@5&WT zvl}&i_koW$ZOv2li+l?=hT1X=TXQr`Q+DPOX=iq7>b-Kpw0t*RzB?^W&J`QmJ7fGTxQe;TBrvc<$9pG@JsW1t&l;$V|uiLNoI}_+PK*EaqwQOBY7M& zmvHg;%ld+q7UHz550#hXxWzi_DB zPCWEJp5+^IdjsZtnbXv1r1>w63oHL%BYw*M5abH_`z&NEtIeOYA=E}#XDn7A$e~|2z1zay`PIJ%}?T3=QY!hvH+(ResjKLZc17{tS~C;EQ3{xjp@6+`ea-u*$$5Inr1YR<$Vc$hqA zUED}`*fk6frw*>y3!c3`Zs;B8h>5@yb)m$?CQVx(WAeG`4!ko(@t|juxrWnBuaV2S z!{GPqBf@}@|6__er}rG9kv`=6e;KYl;)2YMvF@#D3hczaqm1g-G8}cxJ-s|!H2V^T zYa+R)CvBq+Va|8Hv$E@vu&Q_c{cw@Qe}4^kDm$5yV|##isOMtdIa{_UIypvko^4&! z&rwd;L>Yd9V-4j6C-rpGhv5x;U!M?xz1Ara+2H6j6DOq(@)$V3WcIzw(o|#Kow^G= zYZ%Wi`;Iz~efYk^GW0y|`jqov-#n9DHZ|{cDpr07zOxzlZpX0m_}Y{+?~Tc;g8s{S zvp(R#c%_e$XMR5Bew}b9j6lbS({Sby$D7Zh%K$B3L0WF=GPw3G>)C1fV1A^e zD1FOkpyhc}&Q8k*bL}xNkbB}9uJ@v|(DG4dq2;zI5n8@WMEZ50KhkuQo>yTnUW*Y$ zy)oir$`Z_7oeo-j%oe4~ijwz>V}|NFuX}r-ZCg~{xZ%3abVJt}NK*cT#fGjkA%0|C z=ez%Ly6v4=Do=hiZxNjrFtqU6j-%Jk>^OeoH68u4W^|nVc6G|{#)bvz|jJKg*`hYrfO*$X#T3^s3Mwi&|Zly)}`ZPO4QHJqex-i}o zddRv}=`B^f>FnoiOVV0xq1h`l()8e%;NnMZ&h3A+Ju;>>6VKkpdD6xN{4Z@x;O&Z4 z{j^N~6_Dd-N9otV=NWb<#xm`U9og=rY}T3n4{KCzs6WM-b!%NRSMN)24Yb+5uKDct zF|8RB0V7rsNV^emzESJoTrvL@4{f=~XK@nlRE_NC!vk%u3Z);bU@c?%up9B%d}ny> zfc1=B`f-sjIzE~C1lENIGXM0l9xT;VE-KSL#X2Cg`#gj5WV}6d6a48nXcrsRF3Mi@ zcre__ad{s0=voDbe&J@kvdv%k=Yh;4qjLKr`A;ko4r1OMXse5h zz+oleu*DLAL$6)I;e#)P+UhL8S>XFeD>w|u?|={9n^v4XbCK8{&>v;})H=vx^u=%) zF#8Sj{nO#%I)_nj%6Nx4;8>%`v!GyGgQJP|9G{ChOvB+?#<)9e`lAlbxoa8D=%RAr z%Zm}$9Nl`4Zu~hOvKW>$W>uZJJ}3N0T<9-PDnK zt`^(qdn)H(@Mm>DDeoYk)Q36DIQE@A7klS!t5P{7lP~sOw9SdXxtP~1EuoJ-L0pH- ziDV%@D(^TFKUMBKWfT6!ygI*Qp70Uu;`FQHUUN^M-ZLQYadQ&$q~h)_vgg>oDUvf5 z=_`3>=0M)zeZ9wK#&q$%WcZKZ%$8ytNw3zW`MQB0=@T*r&)JvUTdVTP*z%_GYkUW7 zsY`v)VrxC|RGN>mbuH*ay_?~;EttQJcaiI|YxY*a*zWQ6uGNH(7iCOYhW|;UFC+hn zza^gg?=+kAj_cZ{Az7IK`aP`p9=|S_Zac;DK{`R!Gv-C~mohAI=J$PRuw%(EM zD(%0Wrw1~nEW!JQduHCTshj_ucWfjZwC1k>9&l=USqJEV+kKgDqFrpQ*A_lM>viq$ zG9x#}oETB-jMd9pK{w~(x3$034$EiusAta^&l01aJ#9Qoj(WD+c$OaZ>@nln7`@EN zx>$>}#_ibKO3m4N0Jt(&`QgdDbbMByq3&(t7eCEM3<`{F^g)hr^whS^Ic?)-< z@THpV@QgUooh*DwW;?tq^A4vApWS%oPaxjVWlp=<%xPnc?;az3d~WVdmDgLU@>)9@ z_MQ&ch8DgAx+r`y#&o{RM;Y=5Ty@^4q_a{d&gBeB)aitm0$(mb=$!z6Q*3#$df8+hDz;OGH$? zBkvuhw|hUO-ceMW=z2%dHGyssqVsb4^5%=+N$@6SO`wy;^Izce4d4^bOMVZAx4sCt z`#I)I+Vu8^`MwheT)v7-wQlJPk2S3Zo}>O{npOE!(bs}>nEotZOH;I1`M9L}{qGRh zWcm5tyT-hf?~7HQ1Mv`lJBfL99t%sEem&!8^XQL|?ypFb_+8>Q_DB5o*gMqMr203= zJUZvDVNN`_k~TxorDM2X*ISgoQ2XV2Fmqd5P3GyB?xf!k>kUHI_hlOPUivXEHvET{ z;jA4NQM6#6#drU$!go8?Kp&bm%bB%n=|jUBwauAE?b?e(@eacBIF+Bc+sIGcfxA|Z zb)Fg_Ke1USYV*G!Ke6;tWj+IA@4t%q{t`U!Lcqi+BUiB-d%w_leyTsb^*H!zbFBlw z<8LPerve5n*e?tAtHAKNvJCUNni>=FxuRV!&#DJlqt2AQ=*LtSrN^otl;Ov&$uMG+ zr~}%Otn!DMGU9b&G8X-!0WWJ#g*y`ry##&KDR0$D-Bp&MyPCX)ecUF(ZET-& zGTeEb@`N$3ZBe%Fc}9M-Xj}Jk!^g^N)biupxPMEM&D>_0gSOU}qvmJo)1v33?AcjS z_Uu%D1?JUc!g>>7J;VP&;NZ?>|Fa-Qd!(fQ&6L{|kc;q9gGWKz> zUNUnQN7oC?Fyi9m9-H|#L67SH8~^8v##@DqrSgo$d-le0DXi%QoV()I##gTF9u+fF z9~U!IdtcnX6#U)!_=}Ad*B-FiJzsig7;?ijlsJm1qZ zJ>hV19=>b3xJ}@h7LzcOpOmQ`;)2|6j7h$3ZvM_}u944|X%5d4z<&LIi-3v$yr)$? zsyCfyp6MgQ&Xl+kKqsa`u4ishP0IC0AbZi*dl3Gj>R?}X8uTbi zFER0t18w(3)#Xl&6~V<(dWj=(A}D!J!;f+0i1~t3BlSNnKi&49Moya|L%y#w;gWsOIhRxyAco_07i~~4f)jXV2 zd#-|mz9U+pCs}{Ae!^?39l4_9Y;cigmo+as|B3zGIW__p-`%A2Jw;>1*6oIlq0VBP zWaj$Qz=xzK=z(yYitS^Z%J%G`xdD5VBDn#VB#GKAn;z^>5}m)N-nj;sQ`&HE=}VTZ2I?mF-hXeu^7qg3e-m)O9q`TibnjWl z_U(dPz&J~bA=mMawpg-S9jR-xi;`EZ?zA|nnVbD33+^st&nv99NgTHi`|(wbHDFEm z%!(I{4fxJ+&%?NDt(Jy9V_epc&eANqn$YK$F!s8^v2*%1VeAVruFJ~W*IAz5qyO_| zj9I$p=LuqK4|tS1enQ@5TrTU@9g7iftTWjw+r-wc8a;TGoX1$t3Gh}^@ju3vXLri4c=~<^;LfU-+2d5c&K~To+sM^ zc=t!9IV0f%(xJyr5+9tKPMu9gW$e1lIgGo(n49Ck32w*^4&VpcrYnITc3!Y^^$F|R zTf8x%WQt8RPQ<-o{$THUDyKj5wAqUFU>W!V-ZSR+PhT>tf64v#_ZLtff)18~#B%Yi1Si&P^L1&*nbQvX1F%0DL#UJ730r4VR0lFQja|^MAPBk!9xN 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

%hK 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

#7;fuun z8#Z2tcnj$ThZs08=MHOOi$XP_h_X=!36J#wV$MtPbk6OeB1ub2`e4Rtlt!EvC+J~P z+qN6PojEt2xP@|e*Y6lu{JYtE4>de;+xr~Y^Jt_K0*1Z#79b* zZxQMYT)8@A7}f|X!3e6srN3SJu2yurRRRU-!H17L{H|t5HJJWk`n$L%_>+9Jd7}A2 zkIzHA8gX%o(?*sxFoRB+cnyUq-Bogm;>Mlp#CkPDr5~0a`k&?KnR4nuM%G46e3n9` zJ|v-OOVuRCF7}ieOhNoJl~^&IK07nGw@h(|a`I0~h4|wLGxm453LDPCw@Gl@()01H zIKSV*`Tgtz2JS}LU-~UGD^tPR+wxT4gFv%x5z&(Nm`#Dh*-dPX*Y_LX9=QXff)r6~ zZ?s`U=*P|D+2q^?SEgq?G4~R<$|SwG+hT|f`f^Xr16xzXS9?m=w*opjkCUvD1{)eg zoGUkdp6$Z@u;m(!NY(1r3n+iP-j~ic6gKDv?~@6nX-T9teoUc{4LpIfU!7Bh1I>)E zzez1nxK}ix1N_H)b4}pwWjQ}1ah&XWMQ_uC`+6SeBE)A^R`ORW11Qr+iMLy|Nc>re z$c=>K`|{XM33135g#IunJH2qlh*Uz=PxqP-FJ}rVeQx5E1(?`) z;<1Zq;neV`#iU428NEb<-XIu;SvMu9BVEW*diaHfOZ-e|nRz?Pu&bq-rmwOo`tLCF{1bZOONwZW{57tNj%RCz-e5I7YrLOk&ozI`tBn|%;@PTLjHRP1 zy>Dk1uo zf}8i7r+BKk@rwF z$so*WW<;u4A4-WBno}ann_6q^frdcphy@HW{lNaEnt_yD4=a;4g#cBL#Sr7HcG)0F%=uNhd*Kja650wuDfq!QH#pNzse>1N zJc{#5`~?2%(-Xh^{{LZSY=x;pBKvQ=W^2*&4+lnX&$9+L+@9m}%?%HA`O=Oy-f<7I z9@|*2+=JxfKDqMQOR}a%6^0^|C<3X9-|Fj$(HlVhZ@_hd?6-}h|D zz0*o{JaOzZb?iHBP`oYvyi9R*ZFL=#aH1O=ZmA8-cleYx@1s0o%VL)8Abt$FATSL< zVrjKMNc5^EgOs1L(GCRuDf zk$C5NGLJs4)K{;wQGOOKCjJkmLm}X3#n#Ugk6ll_gCfu~6ag{OXA5x6($gr=KElAj zV+^D{&cL_v`BQwZ!{`5aclI2^i2OhiznpW|SHtpZD;RrbAR1;@K~; z2iyo*rxULrhe@IAualCFO3?MVCKQci4E5(Foh0~*r{|REq;ezrovgj zOc@W7)%)`WCrm0HDZdE-PdBt~dZzv9jg4Gm!`6oN4bN`mp54H2e7b>i6h7+&DD2=$ zxx!~*`AP=l)eNk9lz~MbP_w?;!c<5lEJ0a{7O2vK2`Hlbp`YUDGME6d%>$GwqHi*= z$9Q#=#H-iWsl|^H8P|wiI$K42l@Z@9zrE7Q(*n`%REbNPs0FY2&P?En-L?z=;ix(Y zg~cV0N$wK0R9aFSr`%N0O4%Re>=wVfAm~~e-xXX*B(Qav+MQM?0+;VN=8f;P)(5Fd zcgb~Wh2oEdvf~FpJs zx#o1c9Y5&cG_fFe2;S3K_QYVS2M~BJDaNY@W4}{|-Cun_} zt@={;X@i{w$RAH+e#W50G1uc>G?}e3Gosh478kGMz`fAqF(`KkpN>-ld0@$*2S*64 zaFO$Fm_Rwfsfxkrq)%ibt!U$IKB6(hKwbc8xeSBJQ;Ets3}oTwtISzAO@Tu^@q9pq z=&&tFq7bJ_8?0bAKm3Em#0$yDx|MA9iWPn{&NMjx5~p|*LfJzX4g(dP!?L+_l$KSw zIwYSApUV?D2PKHo6lsbl+R?_V)cs^HF5sc`FLCX+{%$cPtMPmGT;U}X1FvtpXXt&D z@ub^wUKTL7J@1+XC~cIS*vAHG7^Q>nNSY6I4@@QuSIIaZms)u!St3C==|z>aNqj++ zU@pS5#cnZxrONEmJ+}7xg|;n>qLxD z{%Bh>@*+`3e3XYSVRvn_2~$_D=VXYQ@YBy5o1pB=_%I)T zfqL1zXD*afP&Sxab0t-jcL$U@8rFY(S7uV~%7`2{%>M#;nu7CVHH+S6VEv)5{a|c* z@g-j7J6~WsH8xEdjHf|EGdb6oyWGRForq%Qat`XWjbl5X1JeqZ2YN(nI@Uj)_~rS) zi+g!i!61tjgt!~(@HuuAd(LU=S|RZ`9-eyj*>dVkKWOhfe`Cv}HM zGlXzw=|p*uc#D7nx>tvgIc+z2^p3O>z*R$r$B^&$*Rk$}O+h2LzcI%{RU3-G8mHuH zphd7+q$`-yxTrW7hE-@%kQaYxW&qhv>r#QAo% z8IiVVgej|LgzzRB@lf`)#EVy{h;9#QMJwSvO4NcY=h}kQ0?u(=IW02%j}y$JiQ3C= zj4|-s=4aX)H@0tV#I0AJ&cL%B_dnq-y>}h{h0V`A+tSqb?1qNTF8H_q%|JH3*QC$h zHxd65gui?4_NlTK`Cle9ow(=LZrmk|L}bk$%X7+}Bk~ ze8e~9A>=ep1OmL*iafQ`g!OieyLlgkeBV7u^=SGjdzdy-%b^pcTR4#dyL_4fB_!`E3Hqk^qls&m{v06O-u4zwk<}0DXu%!Oa@+l? zUJi~X{&?wiUM-FW(!l=^l;ufsJq8N{=fAIOm(}k&?HS6vytr;rEe(5fw>^Vrq zwBjN7l3&S!%cE#^62AyAwfsu4OimztNvs4kuZjwXDU>T$h4 zJj%eY@zeNr61P2-!axpwhTdWjKhKklJQSNGs?r#E5PJc|snVRl8h&L!=U&4T{H+5z zz~&lcDxchbZRa!a4N1qmwv_=o(6)3|%OQyih*X?&<-qOdnya>^TiM zIc{s7O}qaViN0|*aqq2Uq)bv%fX`X3^QFZn6`q3&iVl)@I&pcL)Rm` z{l)1EEwkw@S4ccT!m6K5{Q4$U1cOleZhZD0Z}%uTAD0X~@tM z`&HplC}f>VO=|IMB6hRs_H*COk=xJzaC85%k$c@zWA8$BY$$V0F5|!xL=?hOM&#tEvcTYPvlQZmvSC&<&qErPP(eXQc z1j?zQpHG}kJbqJi`}Q&gaOO%liQ_4U8F@7~RmfgYTEn)dzH!CblxzdU>4bNBWaiD; zMDEsUr^wThH7vbJ-BBlU%Ow^Z3$DE*6>I&H$WO@Yk$cdyiR_!on+1D(Urx-z zSL)3qEa>m32Wuggq8~1{mh;Jc(}_d3w(zrMzPj=H?dOX(<}RQXQ6(1$KNC5d_~gdd zK7?KvrNhW0!85ndSyVk#F`W9Xtcub@`o7h9jwWKY@Q#dF^YrVoE=pu2T!a` z)IC~>=#(dG{pgB1hUv}kXNS}GvU^SRz59ImXB_bD0~Ppo`wd-`zRwVQP}YgGLqAwE z;oynRmS!MbBKP`h6lqCRq@|N6EvfAe#q#ClD~1?}a7Pt8CMX;6YOD*XY)Aas5G7NK z9K0c_jWqaIvWAXK=D`l)qqn;wleYLj?3m{#_3H;Ucl2@BmE`Y_ZjjrDKg2aCqxvj{ z7|5FFfA7T~f{fp&==9Hp&l2M|>_FzkC?ThbG{_A*e410Zwg={7eVO$W@Y?2|VLM-#7op7(18HZ?T0qF}Q18Sbf#TR9Sa zfh%l8`njontaP`26nZ?im&swatYOm7nH*PPqDjf2-5RKI*NvHk|(FXk=p@==o3 zLB%Ou1j$ zO;iy*g@0whfE(4<(8#rIZRehDXyZ0+-rBy6YuUK%{=!CXW3X-GhOHYL?{^e7mJ~KR zxu>4lI{S=sQ*(RH+BYVvAT=b*k{jTk{%dlaua5p1>1Ga}!>=r+f8|4y4f7|HCw_A-`>oI)sPc{so-^@9q`G1xgjTFTkkvwg>GawzDWH1 zniFU^?6(Tw%I(!j@&STT)2}-R^CIRUOEg1v4myH*!P(}36oj7ETZBKq3-je7_PKs7 zFJg(BhoDp=4Yv~L`pI=Wvpg# zu|PeUJHWvK++#5H=rt0dGE>NoWeugue9c_!j|pP<&IRc)a`%`UO}?KOS(b;y?#%o0 zhw^^pa&1zv=o-q8*`sNSCxQ`~vc2I`;?$nd4eca1!V&zI(g4adQm**J12C0$jpWZ7 za)pa~fJ+lV&Kj~0Lw8|hyYKFk_JgasGh$Izl|SJhug_uVf9ke8&8$n0wijii}+>)d+jpax8+lE&^-*87v2xuPpp93j@%D{;l0 zKu$!zMQ#FcE{wQlL`(2pWnK1OHTK!Te-357f|*$zF9Mv;2^-ALD#RZ-S9dNqT8^Kx za}<~ewUWO2)Fl>2?ux120ZwYjLZ*JO33Ok&LIkrC6zWLcZ@+I-^ z3atOzn>mtu7RhoOHnz6TwnubQZ+(k_gZOE~&#Gs>*VM=rwzf8M&pfx4du9`-$V71G zSn?vKCgKz0kepmeCblS^(TckzqzjOpQjMIDZGaOzkQ(u@<33O{=>O+> zKdj4=hM}k~pY8XVPFez8P*ls~YHx>4bq%=M{mN<+e-i}1Upm1ldmwA*gVRhb608fB z%5L+a;9bJbpiQKC#C3goc=i&K=T`ODFCUy}_&@PIT9+=@dVd{4Q>bnR%4loXaIB%oelyvV|@% z*RAE}h1UeE5pykz5(OLJ1ln=e_*$MSq6_cp&wydD);Zv=sL5}EoiJWEfO4Ayc7ZLH zyT$+qefsg&VO_0dmis)e_AbR7)gZUS!T-(I-V7 zR-_ho=J?Ev_|CSdPb={?If!qxN?FAJS7!63e-cl;effnIi~=d&#b4LM4D1-4@zkjJ zM%VY~!n6DUEpScboCfhSG)ByE1~>GjB^kT=Qm ze{LVq=AjlAHf6{G{_kz?134c&oA~Bc5)B3SK!A8eFKplf-{iQR58%fECO6mMfZ4l( zU*LE)&5XB7NEzO5izh6XQHm~GFX6ZFI!}cl@_HcUAUIY_ke_mpc-qsA(7YzB7CgLG za03%kK`xKHo=p=y=u=J>PZ%H%p5V0u1B$kgHWHbMSfiB~aZg}$=C*z^o+G1NVbh4i zJ`y_yj;4ZE6n${Yp!}k=BV_@Us^UzfD?qfVnFxtD|G(puTn_4?7XyYN;D`r%I!0BB zkTPOmb#>r)B|eWtA{>IUp*WQv#dIQjtdNMeQ&o>{M8#`*lD#)!?`g>3sX{2wh{>pZ zaDs!!Q0D&`_Pr3a13&jA-!k?JplBmKIK*>6UKu|;UE07C<>Y|_dUO<9 zU@nc-1hD>s+ilE6$t`m>uW(+`BX6#mPE1XMxH|xHYG9amg07r!`y>+aAE!Ys3@~@p zPQ{aTpSUkcRVXoVpIuw$~a+(ou zKohv+@66{EjogXE;7#HSLxU1^JaO<+qa#Jp1C1x%yhI@OE2Puv$aLbPX>eSWHX_v} z_dr@qjVFdKk(+G7%l&Mcln^d`9aV-=?(ek9IZ*VEfO6^(vv@(p!XQ z`On0^Uy+nE6%Y1QvhS$NXxPOWkrU6YJJt-&v{PNFzs-)(Dt{LZHk~En?P)sNbd(*> z#@%{}_^upYI{KFDHcm>`vZoHX-}vV~O!P5QPraY5!|}RMc8w>lU3{bItEQ+@{@O(f zwlugAry5Qj%1*xj?2h-JUEI>tMIxDjZU$e$jp=F9&W=%SAr(sXkk-`CLq6{05*_XY z63d*#jsv^8RN-c%c|e!Ki434hA?`wno@#%4OAQiyOy=;-`n|IT*x4{j9} zdZ?lzKUY9SY(9urgXX#Ef_x8wWunDJA~eRJ*q>5hRbp3J!DOSN1|`nbJMFZx_S+TO zv1^nHk+UIv&)gXZPzm~%=^jq;e)`8m^EC~L-cw3q+fWe~@riSbA;*UZPls>J(g5O- zUxN~?8mRzs2BSKp0d~A=2nbnb6ES*TWVsFQlgVcj3yGFV=iLd?|e}epu|~!!bCUR^yXW$de5N)E$N}j z7E=gp8KFmPdtnKi*0-e2I;4`D_yfM@CE~&OYCNSUHEiSc!imJ?TiQZ$p7G5|UB981 z5v+=y=Xj#@3egB?mI|?hIyY(e^cTo428?~Fv6g_Q$q?Dw`tk~Llj?$$ib`s{j#{wK zcP-wYmm15Un(GXM7g|;X=JXjOnW40ya-P^bWQFI3GDpe-5kBMP<{DiU@fDLEHN{et z*jsZ&cK}KslC-6|A#;2=r;ldTo0K?%nei1ieRO3#I8$dL4eFz&nOK7vO02<*I;uRQ zHbaSr{9C#AfF5O;Q;G6x?m&hZPkiwCVcE_dQfhkPk5qY^yFM8`~5(m=>(tpS+ zY+l9d(63Nl$!L28_Z8)$CJglUS{u^J?O6Nv+LvXbovR&0N)rEx427D&lEChOF)Hw> z5yZ3ss^C~4OYvy&lI(638Y&uHoclW(fpDikl8J^p*i<2>Ol(&mZWO)d?z=|rN*z4t z)18jyw)=P1&uL4GQH!Vt_WS-Cr=02tGm)airz8D~Nana!T)c*0p4QKa6_80#_r(*NJ~u^Gw!PXef2shE z`4Ypu<4=t|WPQw+)}w)1bGk6bdaaCo!TywxF&s}+e32F-H?2&mN=g^U>N$rdZW6ug zI8Nv198rn%mA5wCl}h3WM9)l26AJ4wL{~PGyDXG}%QYgoL4v~VzE>v<^4-e1Fws+q z#;b0`-^R#fV*Yi#$l!1Ob@!}o1MZ~sxC4mxeil^lSqJpusl$dyI4K%>mTT|0~ zQ)A=C&G5I%H6r`8`I)U;o= zT@ob_D+{_v9U28%NM%bvSH*!Q!bIZ3z#Grxq2le^r1vR4FXdA>^}QRTjRa9u@i zjO^t(aD;tqk}CKWj#str{d%g3c3m6)CGjR%-;h_6Z$Zqjn{3GYnNt6%V6>hpuPLzm zuEf8=-8)IfL%B)J1NVJYxdBVMC&~X;G56wn>$*RZzLZ>z4{`aEi^;f4Af7u(*`|@U z4Eoe@s(f+%0Ezc7NuHqO%Xr%4x&q3!u9%T1o4+24Nq^TBUybL(H@JT)SXT`3TQUbX zWKZz>NV7xoI__QB8!Sc4@`6m;XxUJF7)y|nSL5%T^8^ zvJW^2h9N00$@g+Uk*jeWz94O*xchOA`{dtYp8HV-sp9(Of8s=J!R1^N-yMX~$E4o` zseF~qRSMEu^4%pM{aVh259E2=ZaJIViP)_?@S0r5{hhp)`@USyb;uSjD6i(eD?iC? z#d_TL8l3kX-GjMQL3gn+?hSGUDSmf;utXF8e{_8bd>h5}|BNn6vSmxQEUg{I*_DsV zM}q9c;cT(x#Mt4e69UM=gq0J+Dsc`-LY*H_k^pIFX)F0iCHZIqv`wJ!3zYua{(3n; zX&?lo1Pa7J>?ChI&eBYayH`{w|1zzxV7_vIw zbP)GdgfrA+y|c(cxK$mqiTj&C;klE?=2h!sP0X!5?knNAdh*yqrStiw4i>C%SB*2a zh*{lJ4rL8<4evbaFvo9YFOT2EUK(#_>*N2$&X3Qnq0#D^+}NWI?QKdaU&(*gb|tjq zR7Z2E!_yMI9De__yq;gotn2Bzjn>ZgNU?9muLOR==*iJ5 zy!d7CO}Q%Q5!@>V>p#{p3wfb>;>|hn8yvL+c{o3cc?p)?M$4=XH#jQi(kQ9a-%KXpXSk@5+fH& zOXlMDXEEIMa|G^aEjsn#+yBy%fTSgl!1s6HGy4lIvHVj@uKpa(!RLPXw8D7~z7;G% zdvV7>Rn3)S?jpjG;44iH9kW3)^c`xar^(%;@7PB8hPH+Wz;=(E#hl)bIK3RdRY6b3 zW1jq&3LGfJJUdp%e;G1-<82#n`#VP)XnokDiv7&<<(Mvx`Sn#{w2yy}Y2!NisG)=6 ze9!4Q7T^9%OK$kLmN+N1ufGo>=F*$yY?muG_YRS4B+Vi8}sr-9~L3^DW71mPFOW4Bo-I6jYC~0g5x< zEA=sb2xltcY(-q5mXTh{s4o~9Iwv^SwvqWb{W1y|SlF>4=waS(#l28SYi$;2nyX?< zoI618To$8F}s=#&6z?yD3>ZYvL9`I~evD-UF{S9`xgH+zUq=oDFV{LhkL! zWPa77_!#H;g6q++ILC-36VjJcn7LEg?RthgK9+tlh1@Y684-pN`<0VQLyVjKffP&Q zET1^pfDZPxNeX8Ig2G^V}GLx#@Xij-o6VC2#Y_}1dxAbBf_d~_i zvUE^$+*d-_$33UV^zl^=Txs#B=Yug-Tm|JDiWJ#-^2a)I{KqqWujx~xRD%Z!G=(>a zN{@c3C2DqC*27JzeitcplQNDRl~yK@`!0{>glIt9zkpa5tO4Mz3P+`LpQ=Namozg0)3q;qMUd4FlNm96Sp+yA8XW_vSj|(#`4kR$OtU9oVyV8(EBdfG{rS0aESN z?Q7cmrSwFSE{t!jaqjedF{T~X0@~N@yBf}ilC*-~N}Mc*a|(3(uG*UowOx|tw^FCJ zx51TlOtT1GQRzwWv8(q)rI$Xf0){1Jj<~u%Dy{z{%SpqYQ_=y!n&UygJ1C?%1LYv0GFT5~mSONW;(UWc#h@H91!U{i0ICC!@{J59vtL zvc-+d7qiP7J=ZN}dkC=wb)bNUeH2gm)l2(I$eOK~ z|DbBCs!AX8++Qv9c{F2@;vm`N&^&o#TTVS)_;b&>F%9N!i_pQ@(SyY7Z)DWYV@r!|_rN_7Wu0ME8U^2b+aG7< zC~Bb>BIm%*cbQ|Ve(WU*z4WB)1!qn7($G2F&s)RO5oLDabc{wkH-T3}P@l4{_s0h? zvY{o5znWWJBjCK0cP6rSlX;qc?Lg`KEU^v|f5X-W1Ld|i?IJG5?A8U$_38mq@oU1j zQ|@olwNuDlStNEOF8tvV1Fwy)RA(xV5NG49R| z=InOu%_^?~nf+}_8^ZnA)KUGua*&DK1nZ}QeqUU=VhU(2C|Bmd6`IfkZ@-X`*8)T} zp;0+Mf~GE)U&8;0|7X*-QVzW8;*^%)`?BXSCZZXN3sGs_CzNDED_cIi*s(`puA zfSDbiFP!5XmEs>C59?&UYg^WM&Gn5eDPKB|e6xHhIUbssuf9j1?mc{5Amu`1oaf;Q z|2((arH?AVaBPg1_iw&r0`;>;jw#D4;K;^nqH=UHhftyQ{-8(yeuH3v*4~5BFX3;} z`1jK=N*gCN>L{)YiA#?s=`=@Caud6Q?DB&Awc)(ORzVvNIsj5Yt-pT&-kziB(dCZ_ zq*97K-4FrRPPtYRV?rG zfi-b5oImI>;XJb5o@&$x+mN{S?LPRW$?`xL495U%U|WS;x0`xlV&ciUn(%A<;o z3kUh^IL^3}ckYXt$#wzi?Y_)CC2dLqC%I^p^HblrA0_ee32qI3|8(LG!6noGWP;2) z3OuSB!o0e^32u6}P+a<3LKSNC&m6r0M+XIEo|6k&cqF9?ZJ)k6CH-!S%+)CE^b(gn zri$QLq#1VeERtJ{WwEUir!TA1Sx6%k*{beslt(hf5Mv{TuUlvMUf)Z zl|M$xXpJ$tm#88~*Dm$qm=w0*hY9)mf`>exjVX61ZQGuJ_J`xr{fYC`HxX4}4N&D9 z(JGb(Tq~)|F-9s#ubW!DRtE1>h2qlcgila@Pe~Q2y~50SZ-R#4o`pL-ByxIejjStF zAqza~+QfN;t<2$?9X;c({fZLm)Lmcwo;UUE1r%G58W(1+h)IR|Wr_0=M2Si0cI5C6 zu%k^^yK&dh>Yin64Yq4Z-%bx`?0OSVD!y!b=C*8d zHCNlvON~vHJskKk+dUX*{wx|Z&Z;CKimOPY1!P;5vL>;J(9%d#lOy6$;jWHx1&gmg zqa{;c?E#k!^86@UyP}?~u3sQLx)9nvV2si}%${17tQ2PW{)I_8IDebVxuS_wuw*uw z59fZIRH1JO9s-@4J?3{X?mTEcEq!p=L%fcsm%H4w^55^xP*O#1WH1sBhWR)+8J^;I ztv#3p73>s;USux0df~i=n;g%3bnhA-48vJQ5vu5sUp-J@zA5B=A+mQC2_?l znOh#M^v|1~xi}?Vn)Lf;es`w!PxlKR3CaC_{GOls$UpN=-boBr#--(x%C5riUNDz2 zn*gS%Cb5U&w+YmFv#Q=hqTh|H`e^{}GlbuH5&7muX%3@67BmoSmDUJ5N=? zG94>jn%Mk!nX4>%t!r-VgEeH{6)~&othWBGcV(Kk2&|_#7FB5*O8j0wqG~cXC#Du? zwP6hN+*5a@utacrv@vUa$Rmx_LjU2N>WDRZy`UMXm&fV<5H-bDx{k)0SrRsN3<`iS zLOAj@7wnU2$P!l#mBm?Z#Y$488k#fK%#l!IM?T#oM3`Oy(@P(b*SO_J&&nF4hM3|M zY-Tec-f96e8X2bZ=b}fCdDUiSOMXwr0612u4ay@>b9F&OjFjq$HjI&py%V~yR@P%@ zorj?= z5zZTlSVvrQqqNuM)D!gxa^MZ}id1vd#lb_Q#93X))k#aMw<|u83u?#xiTK1kqT<}} z%QA_xzq6vvtS)Tqz^BpSxx&6{@Y?=KU6_>P8))F^0Inv~0norvb@-4>9TS-o*9+Q! zc@HUS>>(ApkT!zz4XYdreVN8kc@IX^KPX zGBUR%YK6CNX{uqYS9#)uGXv89SrX}Z1!ye_Ue?WLYuK9Q6gBEyHRP%VHGH>E#k%hK zWv43SaiFIem3Q+)Py!N#JW?5pwmP+;9UW@YIv@1?kYzgN06tTscw+&X8FeUDJ=n%M zkC7L^>w2N>@6zrJiED-~^qqcjz}8zlJ^QYr?>fTZ?;={h@|K)KOrQQTGEW=(N$D7Q z(HrrQV~yiQyB)p7{j&lV)*Mh%K~)gQA9zxoVXXn3>YB26lRaQ)vB1Z0ec^!N`ml$- zs}ge)`o~*I`wEOHe;54IHEP^9E^{?vXpEz0l9|i|O;NRqRjpH9Me+Y`_`gB5N%bAo z1FDe9L7z}HQV0E|Y7~ASRsCDFh+e0@O}$C|kosx*Yx;=#*K|<*EA>n2xLQGcu%M1F3kg)AA$??3(a$yKWaub2kDENdbqNL9;A!tVa?MtsyU^Z(ipW4dWf!r zPd%;EzDn!0OQ2MP_CD#m|U-PO9~x<-00TyxO-b^oh-Lw6I@^M#IN zRb;_4vo>Ufv;HS*5xt4#>Kkc^zDj?o9-p^}F45nt@6zLa>*(G3hxI+s!k_8!$U(8h zQ~Lkb|4x5ck4K;BYYnZ26^6SF4;g-8sHd;O_0{xM!@Gvn^a%VvX`sfV^eDa5=rOJ} z{+DsU_*dgw#t)3;^y~lA#=`9R*>`2%oBh4){n_u)_voA1?_~GD+n<&H=H@KUxhZE$ z&I>umb2O$x6ShO2k8P|nU1q{(Hky=oT}`)`zGp(Z4Vr#y`d`yQ)9a?F>8R<1=_YvB z2~%(GRrJl=4|4xO|3Sxd9rU~Ovs{vA%qz~DomZN-Ht(^#V|kzEsmw^bS>{Ufedd4} zOO2SHFh6Vljrk?>-_18$)>_tCHd&5Y9-;Ujudkzjw|s6PtRt-Vsl*Q_)Z)S^m6)2y zVeKGUjzI@=jD47Nwx4L>I&Kx1kVXu^^`kS_!+NGwaK;_sT|F(lO8n~t$eQ?0TB)xE zYW&j$CD(%7Q$W-z@mDivBW7l)&?~%MI!Inqd0L(W z>UTEDaWNqpQ;82w!~x5w#O)J~aEtJWz(mYlOS@F!jbG7+VUBT+5RX@B=dtngwG#0s zX(PMrLoKxK+iAy8r|`INC8v%nzxMVZEi0yYpjypW)UYyt06H%Ni-uRnQfoOw9B3H{ z_AKQCP|`kO;X}fu@GKtQ&OBj_?5d-zDvsYOmI?1#t`fBqOlaGEsOKq&KNHdkt>t&! zwt%!QKy=%P*(l)6tf^5!Df3B&!kveBDxS@Jo$iagKn1}bB<22Q6K~^2fELxHK>W+3 za%U83&lOuzjGR}Wiia{;HTDoQSQ2gUQ`f9990@VhU@X@bEFt|1YlzUSlC>(@e^&{Bl0X%YDRD&Bi;*;f{?NCanK1b?fiJ z=$An-dT~E0Dz3hO4p_$%XB?4&t%@a9u9)TXjSTYH4hHMHK261zjAMuwuoQt-8A&!# zi;ZbS>`0x!HQadarGo_C~pQeH=3kxJ+CGWjcjDLIHzEYoWxV^i1z4biFEF#Wk*^mGn3j7p5JN zWrBe=3GMP+=~tIGt|^FEni@N)=(?!29+`t1ythvC)ThAl4S?a-HWRLh_wr%>UB1ZI z?u+;);$N5Cbo{)2#p5RLQUNpi$hwL_?$nB#p{1Wqoo^|LW{p$v%=DQYFR8({e=t?W zvMZZQ7(mmG5S?x7H3Ki?Ow91i>r+g~K3qw1MP`}@IwtBVFEkcCBKs`1(BCCPk{23^ z?BVVF9w9s4C>VAbGzROBJertKXoYgBH5MN8uzU{n{d~$kbjL*j@-}7yF7nBg0Qqb#)K=BBmw=}(nZC~rq1`u zFIxJPKC7xX>b-OTdHk+(swlwDM=0ZP!)Zs>LGOC0ax_wwU>sZY@`8gY4&irG_N ze`cc>d-%plDyCCkztZIWt9)J7TwctdfwBlX4CGxau9?K%XQ%l#o+5tb*I3GdyZzil z#lNLA@QxoQ{*%9mbMXw<4OcQ

&B4*gXvP!V_DpIm?>YTia=xynA#ug@()*;3FO-Uam3&M&%4W{t;P0-_yrv9@v z)QJ=r0czf#`mCjAQOT1Qa@nEF4&ui#ckT^kA!hKwg^0PsF*d zSzU3Ds)}F3KgoZ}SNZ_eoooe5=$sWc^(OKXY_$TMH-X46tUds&7Pu$3lfA5}QOpRDqJ;zcW}7p$dCO|LOo z>}V6`)nA2H&P|wsLh^U%@rf$nRh*q_6YD35s7-^V0K7J*ucR-+l{}dx3K*_Dn!SEF4i09^1%M)OrElhS6!4fv3jW{KB84gUpRekqiD7k(@6;sz@0PP>*; z(VArBm@2k=kJ(rS?u^q4lGQYjDdHxDW#GLwV< z$48r&fSo>%WRZ*P0nWQt=Bi}^Sgi_E`O~zkh<}mcSMbPfPMP;g8I*%8@taeW*h5^K zY;hSpvmiso;l$2_mN;zWg1Qg>f9jU`bh>VtPvsWO)SWk7_Yv8e5ZutREi(%e%fATf;JWFGG_;_Av6|N1$_-;+?~SEcy7HTCbY{ELNEptA}U1 zfm+5Gwhn)3V-7hZu8g}Uu>Lxxu(!@zAkb>W(fbohNkj(lCgsPiJ(TNqG)t8kHG`nEJ7a220Wc5z6iSPql>Qlitv34$gKE9yj&z>B!-llF1TW1AEv${rQh&6 zP#t9KGpP5Eljn6adV2Mxv*-(L8EN)p&etqCownpe)=rO4ex3Uoy=XDeD({~Bx|VTz zv|J6C=3LP{VPT`TD0Uq4ssT>>T1ADEg#+s;Fazj;Ahx~8owGm;g( z9Nz10uZQ0RHt;~(#x_M$DAYw+|DP#eyCdWg@V6OwwdjI+kiY-0dXC8Tpzc=c>77z~ zq^k(-aN&r$__|RX{RH6txzc-GI0~VmLR_4kwTF%M3U}35-;1(QV<80-4UP>)njJfd(?>#be@32d_vVzL% z+_M0u7Y49ad)Uah1m#?A${KLV^(n_Xtgj3ah&7@Xe*#DNyAXZ{Q}(be0(M1=WoFvG zQ?^>?k~~kumotu#X0}H#_mpB5HBrj6^|&uHy67DUmIvtjDrKO$RZ-08**XmljO33#Rk zhd+r?d^L@|k8{b%3BMP2Y)Oqb3TCIV$-_(IU)PVFMRHUC@DCB|GD@H0@xCKvV23wkP8X(a``U>`J_7zfc*BvUAZhK)3Sm%q8*E7S(zWHE zkR?m0n`zQ7CE`SSwE2I&0XDh>K1%7xa#{PX^4j~D2EJ_>%93m^eF^k@caq22@n{7c zVXMmGrdb!>8-sg0z4l%++^gusnfn{zjw4^)e+3+&E|YCK{8qG+3n*9#sQ0m@PZZfh z#HBl4z+tumwYV~=B2J!EAukN4+XT$Tw3Nq)+QoYPkskd;7OJy-KGc$y_D`LssH{uc zuNCIXy7`i%hWv6V`nN<}pPsSJL=@7br%UGARcYkyI*yH>ufxRdq*%v~1yBfowJdK{h(UX<+7f~LLqf<9C3teuXzs6{@3mPE1b zZs3sRQ(Z;)G}$W!x*9S>?3+5T=a4c+S!V3PY*|lYexxkX3o?W8MqK^z7hdZ_%J@u5VZG6+% zlvF_vVgFB1;u0EtxKDsl{2A1#nYtLMD7ISBC7YpqUi{(`Ah+_>t_hS*KvYW=>|uys ztbM`a1Cm-gLBuyw$iE7*YMnqW_SYE?1pF{XbIP7d87Etn9|Nc2(_G+V{$94a2Z0y% zfv0&7c$D_iTj|FP__Mrf_L3JgzCz&JhkS^1DrJO?b=iTt-vj>YOPz0(jBcjiuuZ^> z(h3U6jep%TlzLm_IGU^@rgibRfLh%tkh_pAh$y85(B=`sgfv2{^RbS0;1GT6o_2e1 zO8P^>9#(qc8yU?0^l_4iZ7IUhI7Y>=uH{hIH7RBH*{{bV8W~MpS)8yc_?YALf;cip z`s5gpEEPK#&HRh5%l#){kdi zPASJ*Gxpt^{qQ6?mr>qW#cWcZKTs>*_55_1{Iqo;t!IUYJ^viDk1Sk6<}t%ZW7eT@ zxzyeisZjduOd2z=ESu4TfJhI@agN-;@8P@LtH_oucqjCj&sz{YA|Gc5yX0e2kY)1a z$cR%$-<+&z>;bP}4de`vxt89%AU@?>$~IiYHYnN(Wp?T*89V$<+Lngi4^$Bp3P+E`BeGS!ThWkC3^AQENYybzx!9EH0Q5e7Fu>icT+#)Lq!63~OdBUvYFLC$_PslLGPQv8y_ueC>sSnVViwg_dalj)XQ^sS_p{JaRG zXP|9UN_(uk?IZYnb7~)N3+?k2hJ=l^#5zL6($v?rh7uS13t9CawXc(F&r9ma>LU9v znU{_0>*p$OhtWQ>`1^#ByKAG{hqFiUOj5dTvVvc5L60aASzBKtpmk-$txYHlFd?mg zcInhfmz=%n1L^9?6DONF#UodVZ=`1sm@<-rQ63W0pU`lP8?`5LF2=*q?q@#C?YQT87HSo|J!F z8MDg~=OtH-|EKZ2->Q%6c?)0^7q{2zjT zr&m^Sd6A_n>E#A$6_yE0ncQHjU!&kr+;Qe^n*Z$jU~v*7I8$*o?i(({f|k^ zT#Ua?PgV-J8*t6U%(eF>Z^PaiWW3NzpjUBD!6m>2-nNg|l4?)1FhnVindSSJdS?k$ zLU%LA&*m(EFc-v8167EQ^rg@$!f|cuFyh$e`Whz2SdyZD5Dj$65j(==|3{fxR!fzr z5$i?l(={#gIpU{DerXO{q{M?)m>KN%S%by=0^AXK@My=5O|7Kv+IttZuY81QC2lyo zbj9}VmrTzEufV(y;1isg{Kf(CkJWJ12CY9dNnCHnu=eZ0`o0k*9F8hd&Iq_VCB2_| z`9sIh@i!@+$8o~nN0H+8(01Yao)!mcwx$!to~x^@K@t^C6!rt=t0K`W zPP)HYGH}*D2XqB9a`j14PO7z0)LztCL=w`ubUDBK!(w6|*>G~S*|SRkF_(wu;YWl&9R5pygJ;_qK2q*rkC9OZX7)CI#Wb0X)8Q(h}a~L+zxL zZcfOWC}Q@ixmV~?Z+WmRpz662v~L4b79d=C@OSV;`*1^%`nGG_$2!KcCS!$>^4_ul zP?0Ztk_lyl)V(y7mbk?Ev9rCh1qDr>-czLIpFP8phIkuL|8?nbMnfFKIKI=yvE+z! z-?))VO)vemow=)(E-&XEfwE6c&w{|!|0~ZZPun=vex~dx zH)w~q<$XiV0b4|gPHdV2ejYm*C*t}klxrK!pIy&iamFRT>CG8j5B6Wt z1C9#rh@?OFJTJ7kw}IClE{v3kvofM@bKKHfO!Rd`iN5s}h&N;`Ve4QX?qw7^eagHW zG%0dO#1O3%kVBlvAq$X0I!i3!!rpvp9&!6~d$)NlfdhV(Q`PjG4_jU*uaU71lGqEU z(A%{{#-#2fabdpTte81e3uh8i7G^PtJ$AB59)GO^+*&qiM#Kc~b=Q<_7;)SC5}W+_ zDI>PB!WOJ0c4%cXZ4286@d+g6JdK%~NQ@nyzZWs3dJ?bMPXiLK(a5vQu}3vi_K=Q$ z`gE~S2haMOBu@O|^aZg1=*wFZ{L-!>tm$mLR`zf)&bt8kO3IW4DW~9R6H$8NnN%z2 zMtw&vXX|?qa~SzIP>~jCw=l&<(c^-za4)SdJ*|#$ppUXJ>!>h zjUA6NIyWzhZ;I$CCMa`o3SVc$D7{>iS^I}C@E5-6vavWP1+tzId{ql;RmhbXlP9|FfvtKhKa)c%27RtiL zV9D-ks`zmR*^m2R+K)4aN^x)Gx#j?gxrlxMwGBSakVGVK_9W^VtM~z~eS|mKdh&qG z4X>Ph1AUAU+(AB(dFy1Ypy)zNMv<}4QfVnW^H(TS^5k36M;XGh{KzR>5kg|a<1YXw zy(N8+!CZzJ>7U7A);7d;aAdd^um5qJ^_#;DGF}8}8Lk3)UYEdZKO|OqqLt-3Sa}`f zjj;lb#umtXXmJE}%pCdpfX6(&-)qQ2-dliwr?2P5eC!T#fO&3ZrN(4^(nH36 z9@lQWb9&UUAn<&=PxcYtlGbO+Pgx@s1m2BUz^`62f%2A;KF$=KvJLr!D!L7@TLIvj z_oW=9cI>a?Jm2+0$6%$#U^P&C#M8EzDI8hPKf`~@hk$nNQER|Vte{n|_y|38mRaO* zgc1jrgZ>wm}d zcjpF)6MY~LR~WGL7C_rhOyu;lJqr4FrU_&rGb!1jZ@5Z&M@7goRD~52>4f_=c{G6i!|% z`>6IICs69$bU}y%DvV8Jq(_r?vfIHz-^COJ<(0V~LWKFg z=ig(L6b|JQKpf#i_HB83W}Ep%hfAZe8fCw-xvgKuNu@Om7-oE<&@^rhFB-RvfX7nB44H>DQS3LXxF)k6O09+?@NC3`>8|*Q zSqFfo%x?|gDx|^)pidcxm(bmS!+!+Ydqs(b-r==|Muh_036d}Dr9h_z<9R@*`QwK~ zEhzz?><3yMY4WW{z2jTGn)TtN`z`C%W0pA|dyl{CJD`I)KnK0ISx0h>I#NBUC7ggh z&hZT9&$NYUG$SobSo-&L<7zkiMJNMNuwBlM^Sg1JSzr&nFOkG=#>Ktpv*Yekjx=TY z%@|EhNJ1hb9ZBQ|?YmthTWreY%2uj#yk>)o6v`fUCPCQ)4Y&hEIeBuOs_DrtQc)1X z6%(W)FXVB|C$~1*;2Ez^;tUsk)CH&{4|@2BwBjsbT{q1mg&_^K4ZHlRc5A2s{BO%( zHs8Yki2n?@;WNOmOvsF5I`c3Kc`bQQI+{V81l~^3DB##eM?jwWb|={TLZ~+>eLr(T zwr!TkThbR(D)3S`Xy;TqKSXVmI=Z!3BK&&<^r^+w;sSew5kBW9AxLLBH6;NDah<4^I_9Tdm;HAa5EuIfGKv z7Djz;7XR?IvKyw{zztUc3Q}gLrlmWk+#4(bH%K4S`rnh3%O-mpEFqPwMQ!A{b;hRW zx@zw)=qqZf-GaW8C0IjPzsGA0>je`*A7}@(atHRe{KO+u)xrbvsCD6RB}m--DL3@F zMYaLh>j$QLy^0hJCZ#~y8alYf4g6~rzYD*Kz<`Y94{P}!ayF>1Fj5ViaetZ;H`wNC zXnkRNF=%4jkbUIx)8^2q-|aC(afNXn`q3_R)F;#Ijx=)i(ed06xfgr!$asf*enomn z#v;_k$3|Gn*&~+ax5kw<_cl2vmTF9|vPG12_qHJpykD-Zn5a)Hh}e^`2CTT&dI%-f zGE8F`sb`{%bCcJkbDyFoQPGwka(7m-1p(K}jSthy4%%Du8W=5ofPJ`WTfHK|6XPhq zRiM4*Onf;$+B~yPXY<|uJMZke`wF)FMq&>c!)CE8iF*_q0b6Im(O%iIY&~IzqxYn$ zG&5q0*oQICdqUbUffAaKzL)?VD6bBjl*Th_WnLvN%dk3T51GS9B-7MaQP8OR2#x23 z)vx47%=}V5BRxMc+PoNiv^>Dl*P1TUXKl+`uWww|&R)B?eOkAXQP5}GK$jWdGfs8n zU4xFy`BF>9rnKboJRNx%K82CqbwNIVWR!4^G3VQo%^Ma(D#?dO#(jv0I zfqLqrd7vNkO=jLj>-=Wm7nRT;*aA#w+d7;Nsc*oyR}&RiD9^n~0`BDmYvd6?4OuZO z*VwdYT?2#ji>J88jRkV%FLT5gGoh#I(v8iOh&55CXBn;E=zrMrr?FLt`oc!W+N+1& zzhrEKe5?oSPbwAw5AOl08U($UbSs%O4bl8TDug|nDDI^=8N*d`IFBBsFTx=*$34Bu za8}dcRrA4vh-8buPtgU)+Yfo(9C+VECA7-Yu`^}l5GhQ71imF9 zzvM;tam{Vbt9Gs~2-DSO?%?-yci!dL3BL69t}=ntycmPFbdws(NFlW5_i|=uLUrn_6{YbU#6HLUiO@G!`8TxbuBlX7mKea zE*;dnZ4G8&!}SciItxP#Xq&gBp=1{~&ZniV8F_^nTLNem-j>(tL8qP3F+Uek|Kq zLMt)rsCkTMeh=CJJ!e()`yEHKv{Btgdt@7PjeC#hU+c*7}=0 z4$DC!ZwR&U&%k}p$hOTGF^jh((O-K{>Pr3E2b_E#wsAC0FJr=oHd`aAh5*qsH_4IY z|BVyijn^fo?CU8zT)ZZ|dCoernTM7Nk-a#t|1GH}0nmfsidW!c(9cWKZGxhy7pDt` zEVmn}UwBQr;}hVa+vWAm<@p2i=yk&0c6;cUv_EYP?^(L1C_f_4?F{Kx()x!zpNG7dJj_8X=>3F6EO7lMAki;DeK=3-OK&(0^j|~WYI3Mk#i3+U{thl@7?DpMae#E*l+2Gj*U-;adM!58P#3^D}o3N=M+V7+RSX!mQ0 zNj#m&4jTcxmjh3vC3D&>{0lfG%b6Q6_P!>~J4alzqoQC6H&o7v;%{ZmiYdgoDx#l0 zRuO+q`tlzi$T;II>9WbR^x4!2`N#;E!ab=weRld<)g(EMwUoy&lj{2l_6XUa)a=QB zomv#rl6OJ!$K=ws!MCLR$+M?Mo4>bDOHO9%$o$W>WYb;U{>@#t%Z@Sl%eUh?P^9g% z-I$9KW0BPud9BA0Mt@0Run^>bu{S4-_zS%(U_hX!7H|gGN;y-2F_aTg<{E&NisTOF ziQ8pV_0%cURalP1lJRGuU5PkmrXa#-H}9pb)^PHTi(s`qBHC0iC4+;Z^Ix&u@ z<$YYv2x5&wC~;!~F@;IinjcT%)t_=Rcw=!w(cUV z(G5P=4Jfi+>nGY-x)1X4?;%FP$sSB$-+R(XQkg-Yk@}Oa*(~>()bfw4kc+p4s2_FO)hU5L zFZ+V;KzDYy^6q^;%Bq~EFjpz(A&6R_CmZDaCBofSoUtU2_SwPK=87++3Im0qvrtO` z97!3M4^a^_Qr~7C$Ve-bqs{GrTfU>wk+E}H5`gdjhVM5eEja@|9ntB?ui#u;LQBfw z+|(ypl7!WgVFJ1%*Z*E|%gn#|^Wjg; z%u$W<%X7sQt#II(Uo*evmMd!Dtj7aIueqk?mTRySoX27}+;ZbB^KZaPX6|n#7J*cL zBT9rx$&uRjM?7NXqf-gxs3?k2`bnucDIdd?TjgKIxN`KX>GMfxXJ*?Um&)gk!MV}q znanK}M8A-GO@EahP)^R}9KXFsH5+$rdL+XN2RvWAqu%QRT78i2;+34m8+~_g>bjfV zwAr_6ExX~KuDkE(-hjUEbPlkfj<^L2SexHWAs@P;I5*~B@=nyb(^^plxWkOmU@t4r zwa*jVr!c3OTR{H&?}^+v+84^Zh$@l|(zC0I{emiCm|NOWK!)e%^pQ$aZ%#DCE%nk$eQXHM8=;l7vOJ3A%i?)YRT3T4ohSZm z3N(`I#xdNR!w{vetSGKh(L~SgH3JPg(#>(|RQByq5o2%OunCY`p6G!$)x~k$4CXg` z8#F-PK(*i(E^!_u&$itL_+V3;LW%5t4$40RZ#z3?*geFWBIXWbIGbAh`o7m?dxW|) zH;{|EH+mc-i^kucmM_cDNadVU7rt z%MEg!KU;l>+xu`m_bM@jA8q^oeYm^jOYpvjrQM$y!uX_Lu2wLiap?J&9(p{HHiR*1 z^K{g-K~M0lf0HmoSdu&FAP+T=xf-di4=YQ*E1Unc#}P z-znE|T}Csg3YbC%{TjB&1APeA4DY_P9OEfQ(6b5YicB+W0^bpNR9mXdTGR9;qWJmJE&*gY*^@mq~XbKyE zl8<_ml6OLmTYhK)3zZ#ql6R#w8AR`ljC_9*H-JBwCzd75A7-(J@FBhhEL%&b;X|eL zgd{=F8$u*D`@@dC*^xJ;!l~q$#u61;<}nMw%!|*idxY7=>%e!^HxXC%?%Y1pfB|V4 zQSnVc3-w?^I+Qky7^i1C?c&h>;n_dJ*#mc?q?V+$@>-}h94VuvC~?L<9672KOc(fJ z`@qZ6O#5L6&?|@;LkBwXzRg_rFy55|wf3fE8^r0HE}|cq4-|d`{QQ$mm&v;v8$}kb z=YaLwBBL_AzBQdI`*K-hGf%N_uQchwo5Py!lFMOFccr(VvF?0-MG2aR<^6hziIO(vRUZ5y9@WUnmO-V&-&M|?&^`BvRclyfqSzw zKwTl9jvRPNOCoKGetP^sVV@<4dHnu5Ev?Q#wcrXB1@e1Il{!`=_y4Ek$|$9aF$Ic) zs9{cz53@{15gD${4Wi8tv5dDke8@*#npkn9Z4H(8L(S_e3~keW(vlM>80dVncxX@e z$2S01h4oR4E)r(}J?y1*ILdx=$sRxEPsX0t$g^8eDu0`-VwnK9lCZSWFh*-Th1@#A z7W9lV<~n*gt(<(1`{66u4a_z|xLLt}O8=9IKm3HCj-xI*o?Pw6?7+FQ!xv*_?u@%jKCN6Kmp4CRB>ojj=cX0q|+P!m3-g!WW%^A zggd6}@gvRl`b0UOO#QeetcPFuAsP1xx5@J(4aG_6)uhQ?9Bx@vHqLYUrnb(XvOv#{ zpVr!g&p>%gtcooTgXiVS87sya6G&s`y?ak((Wt7-v5D60@cerW^{z{v5whUJeH)0Y zcra&(#5%@R$5EHi%RrkrACX5xt{dMCd~yBw0NRfr;-~({NPOTi{as!e5Te-bX&z808QU9#rFhZ1&#!|c3d0ty+m)jQD)6$TqSWbYp8zv2W&?yf#@?m8V&`rvk)p~@5vV(z5;aE?$~T-I}C4UM)6 zhnc(~QZIc(;Xzs^cF^LXwfUeBi%TLS4%zK zdO4PzCoWDFhg8CRILaHsR(&s_0)Gqr?LbnI3=+NjOwEk!%a;0+6QweS!F(~8E9Sz` z+dBWIP5$-rK6}&ZXcPIvr&`i@)ADb(-q5sc@%4*uSS}BL`nmymf%butx3n&A`SwlA z*=66prFGHtFe&J{>u%GLcmAOzH@7an1@)es2oukDe3cusd=pzfuL=tP3NZ2Q<681O zd`ICUwg7cO3m*V2tl|#xF4h`gRuZR$90luQ+kNTStX@Lf1%uZS#OS>mxbm>{(#LGW z?7)?r<4IDM2Yp{kG~y6Yq(GkMtr7n@NnA|yMXr_H)j>DAx#Gyu4i&DeFDrP_!FTXO z{Bhnry)u`GkEdE$l%m_C^(1gQB;)|j!ckha)7YS@Qb%#^`j_&aEWRJn3RPw4FJ1%1ZL8?hR?qPiJctBxA=D~K0ZTj z6X?cw{PE5($cMRqLo_>N4eC489Boilu8z(Mp@!oHd%zm<{0QTxILn*qZ2^zAWQA?m z47vd==u`3=6X&lzxZB4UF>4X6odv!f6Zr^y(<`HoF?rxU<%ylRQ}Zy1#!q3*#e?Rd zx~O${?T-jsL}(m;9a&P`&_q@XCs%X}<%CvcjXmR_SIpft>}imxX^bx+k1yLn%!9Mm zM7&n``zR@1N^6S;se4u=;3*h34;_zX#j(BWIMUTTWDV`uX$`mfN#&1YRb|DuKi^_* zm=z9s+{g1mW@wdNp4+zj6v)=?w2B-Lo+9kis38Y$6=suJL$t<#t+;CLuDP1I)_rnI zzJQj@8tNpWWsk{i3AfP&v-*o8%YI1R1)5p#_=4dN#=1|L!@G9+Pc@d1d1S1XC^@SU zIn9os&N6c@8Dq>(6b0rCmcY4eupO&8)UlNb7by;-r|{l{f_CNswe`JjVi-o0S(HHB zxdm}&BpVQrC4r?(GR`U*oDC)P3C!z(+D|R-O}iD|DQDOoVn(v#?IpN3QqC|lf_ubZ zyX>Lu(6S%!{^lI8a@3jKi!D1dSsdDadr^>98Y4wxjRIlS#1_yIlVFRe;t;_Cm5YPXH8dBy6|&5j(7ZF zswhxbL&uiwA@R07bv3qrI<|B#iGO=9=**hZXm-#L`1WHct%s#~|6t+o%OANK90Ama zj{Pjj7eAZCT_qg@E{PnATk;~{q~*JKug+g(aE`ljg<&p;A3QQJHM~zCx+u+yrCs{DV5G-5L4z{u3*T%1KK{!Wq;|k z70H+9m)3ggfrpkwHN91=apf>*N{#zkLAPJOWgf;RgZNh;BwS8#X$h$@Mb!hkr(J{w zIil)!5R)iO(r_tJ4Y}@D4-=g$s;3OoC}`a3fHJ-`Aw8SWJ>v%MJuE$cc93;%#B6xl zNWQpbQXeq%Q>R&-6;O7$HHkEZyNBsz&)Egm_3(r?uBXLb(_Y+P`A>2d0mPgW($2)p zK0^8O9#;im3lB?ooE>d`(xW4H9VO%q_^j@_!?&e-GkcG(drKE?Z8$yNerx%r+YpMQ z1(Y`$@vYyCv^>!`vxgAoIIo$fis5*LJxY63eXQUHgEA(0l$2HqHvTtC2;#RE}8~qO73Wu+P84qdBexdb08!cdqHY{@BOpJ1Ebc zjTvHtM5rRQb@((6@W}%3fxiLIL+QvrOIZ>a)$%+Iu^Y`T{6p@AKL=~43Rl6^J!c8K z@g_33N1#1M+*jddQe`+kn>Z`gF`v-jG&XhexuScjnmq1fFL?edKUSVUAisD0S2O6I zk6*t=!)iTiVmW<=-fYl=#$Iice&G5}GS9plbBnKv&KGd!=AXm~`n>K-r}dT4RH1I7@+4kpwXU{m71up(h$26 zY?nTMP%!rRs>)(lI*l7?&y|&PVpW`PB`LRp&MF$)DXbPqxuu^I+~kP#`wV7>FfX9> zxc}-GV_9(*1!T?~yqC&*_?Y^0pYgt45T>E{5uCa@j+t^6 zm$;};Ffy@wDNCD7y|GQyWeQcsFcSzRhwg32QoT7Bcm9dz!gF7hHh$)2%p=rY3B7tm z>d6?xv@$=6*{$8+e{;*rAI=Gl5`CC9`G8{CL-|qneTZB5L>}e*3OU2?sZ3SHGlDL$H=S!lp>5C z8Qx=p3x{gCSIA;URr8G~?sriZoi$uC0AWC$zcM?FF)}x?!uy9Na8GK?*=&KM7be|g zPIyAHOyWumbOMh{e@-8mdA2;$8CT6!1I=vxg?&Z68Zs%pn89&=thp!>{m|Y&2dKR` zY8@zj${s2XF96M)D@Nt0^0~2LwnUzfw<=mq?BLIp4wVIqDDiu|-{{47^6tH^V0oap zzp@`W2Y2hlS-OtCia^=EIm4A8=W8=nL|IhL+d2CO2t^XDO zb`KkM3J>qacy)W~S0AF3+2u@4Peu21KiZ0``%6Zw1GUlGi@ff(5=Vfr#UNW1@iM@X z+jL;#T*kNd2p1yR&!&-VeqTY{9-0%jh$--%2juAE|KsaRz}qUXME|SJk}TVjEjyAd z$@fZLwAqmz$6;+{DY$l6;)KvK)VQ)k=(Q8FKvI^{HfBi;1$refbMKYy658n`X{QYg z)7QRfXA+VMtW;_C4|AyhotFUSiPG#A z#iI4YGx_#efDWN5rUE@-kcV=)!}EA;Esvk8c&AXBJvK9b1}K>q?YfjVGDxk#=(U>^ zZ#(Sk!n}hczMn}}MMJWTsU?SS;$A9zVvkd(n9@^LF4Tjv69t^8ORTJF8Us{50V}Iq&s=SxC zQQiKomRvf-gWoI4;Q#daRq*WhUel6a{-;*SLE3gsOM2eXlAZ8BKm#@HBUBfwx0Nw3 z$J%>nMPJi^z6MzHp&2A31~fJrG&VPnnQva0M-7&NZ`Jd5#g6>U=~jSXQQDrevnZDe zO1_SfEeO#v4)q;7uW^z37E+d?S>y&K@-Wt?^cO)d)yY?KKl`vORV`v)W?R&0ZKc|# zqwk{zS?55TujJrg$^8JdPBX8KP;@zFnv%--$P?8jW-JV*t**4l>OEVxEo`-F~?07{*AaBbbhOHD#iEXOnVO4LGvp~w5=%` z{Y{rCfpo8A`ms zR?NBisc;$Kr^-b@zph|y_w@NHlE6!SdihG)wp*Kd1K`>3rxebL=OV5I6{qV~!F(+s zH^4rf-K|($zJ9)frvT=<%;o}@?i$oI8x$>L1MI|VwIli$8F_WWUnWPsOnhx=in53p zcVze)@wdn&Df>M+fPiCnC{qlhw+O>gBA1@7R=hhbGV!>1yHJuf%~lH|16IZ=Zi+>0 zny^jrbS6>-U%^%L5twxsF^SR5C8GJB9B8eU-4uN+27Fz?L|9SQDsCnto6+yacu!xT zTz(93C4@elujIb}e-KMNQyor}7F*y-`G<$>9VTT02}lQs%Xs#> z6l~DTh_!|+w?G(|66y8vIlzx0tAI5H2wf_u{nQ&3B9*BS&0nh)ULLfjPHeHZpl$?f zHTqzboVxlv*8aX)Do^!10i3|M9@aNXzQl^RR14QXaV_g6RAWi{X(x4c+sK4cVf><8 zEhe6zE>9dNPkBgr#yZ(gZrMCc%BNd~HuY3b1%|#yo1Bib@A80nCKDz$Z*swAB7!m z7&7#@#PT6?&u?`Tf z1a|3h81HMjug=i-7y)`kfI0MT6eJg*sbWeZZWUrCeK><_8}UeS%Y4GGQRg3$Oy-W zsOGA~@c~2jnpw=R?&569slivzw(wSN)s%0Si}MlZG-_sZ3lyy)&qQ28F z+OGljm1ZB9K^ff5H-m)vgt8m_(kg`~REd^sa2|bBBlf@cP^G+1;OVou&&^izD)w@W ze}G>9aapBgrNGRZKbgsU!SM{{f0@nsXKjLu*Y_CMO64?6CFLuFRST~SwYxt(iL(ih zC>AB09gYRG1GEFn|M;$j*M}{fp4a*+VNYN#xeCc3wD)TLWm5Z~749LuHt_mht>S%i z0rq!$zdD1@Rtuf|7Ud)(PcN2p8|IF6eDgo^`)L9Gr~e%!!MC&py8_4xT{o=1rYCRU z-3!;h1v}7t-pC5yqesO1km)*G_@n z+g!pM6T{Ir)7nhFW$H4WppRqCpb|V^ehZ`qfr?Q6dRfE!!lj&6&^H?sAY0TEzhMGp zJQI02_u`)!qJy2Uixf|mPKDyM!o6GHGw@H|^rRhUpkG@$ZWOH0A9Yy?_qJ^1HB;wQ?CZn_D|mCZN2GHn&`E+bnu~l#ZjXS;@rp^`%pXZl%J9ZYmM=EqY=W%-Ij; z4&O>$e)y)6X>F#3tXw?}e5owulOEcU?kY}@Q0bJ3E0+A9(Oti%=&r?FS<0mNZ|Wo) zF~OT}%$22x@89KO(MteY_@(GMjl zb-awncG~B06h!*k`NAEbiJ$h;qUfr3oHve{cn$j-MMI_mKX3Un(i;P(3~k@is_%7f8k)U@>~Zz_kX1450>%j3_hcgq=O!yHoXh6^ZM-Li)A9x@~h9A zca?BvQas5(pPjQX22Ta~UWE9|loRFQJM^P=#k0kbw8W@=CeT!01ZdzXVKHdqE}i~$lkmuP%n@%AURKUTk7p>hG+`JtCiK~x7E3r7!>%&E7-VnjEVLfN{DA~0 zZ{iMp${tH>vwYnEe=Yk=!lTlqH0oT6{Mm?Atr=eEpSk&OiHThBPBQlH0&=!v+um)To?w$tpTWcE&pd)Q5Pagh|Dh!n0F-xL z*OH6yzw(7oYfSw?snqnBg5B_o+%_cx!x|`fjT2_U_wljE$ljxzIRi{E`$H z^-p+-lkKX1^42=iwU+oc$-c3M@gC4*_0O7ru|ck#s87}<^3rc5Lo2c`?l0oIN^Uz8 zW|+jwxhp=b2iaZk3#E$RcykEPxPAP^+}|ySQvW%?vlKHD(LaUeJ5|dKigxOf0(_mqRU0|q&$CX5VUJAha*ie5(w4Xc^CB zXpCEsew<<0TE4oFr{o_qPqHq~LV&Xa<(ZdtEJf3MtNCMtHC!|3U9&mM+&l=V(kJcjq3$Uc6H%{B zGwprHFmu)^AABSJJE2Wg+CW9w8+&Z<>@Q@cJs|?^HC}2DJzQ#Fk5f!l!cMAE?o6|i z8^4;Da_S{*rkclSG6&H1AI*Mt%q(=Jqq4^*6*SNzz_S{KUos)k=PNiP zZyBvfsiT%ugY?4;DnMTHFPWO@0C@&Jzn>xX=+FA2%wF2uYh?7%=cONHe&pAY6FwdJ z1MK(5pI%sg^(8I&BYc1D=)&@KUDtPkxJ0mRn-ZP5KU2z?C!Eti1^l#3lySP~-Ev7% ziM)q-?UAcN`=kPQycH5(9WtRmo#cdXBygMT7{@18e)q~~tE&*oL`%dXR!s#W#uy1~ zl8Xg{;^BK;rb@7g#%QN(7A+(M@_C3UN^I&S9)0o=UGqsNPqyPJgH!nR&?=!gMq&C_ z*-i}NrbvbOYEek0`~lg(KpPQDGCwMhY=IHf$j%g%F>kLR7!|LQZ1?U3-S3S-^mDYN zNuX9T-=~lMNh;1@?h3t(^1Svfeh?vE#_PG`Qq6QI)ll#xdh6_|LEPyEANATBKw+Gu zdix$Hj^&oqFP+14DGNwA*mg^WK z0R7`l$qL{#V@p=v7dN+ACY-!(J85c?Lj3U|Yl7PDOzhuY!8sW;c)x!yew+fe745iAp>u0UXy5AOLOfnWUHCG&4O)K_ zWWnRChL~C_F*mPr?(E>-%>C1>1#OvyUq6^NPwyGDwypf0o;C4w+yb;T9Iu2=voJDf zYc3(gXO*ZS%3mVWf^ipCJGGD^Pm=m}&-1s9bZau+>0sN<=c&u70Tay8%Ll_w&M}1* zp3R`8V{PNmw1%(XJ{qh5I#|hRSc`I&r2}|dxMC&3%SbGVV&KH*W+?KPew5Xc8Ia?A z#p$TqN3^NR>`&(Kj#*hRmGoeS^3}^_6K=jVp|@FK|JEd|{57`sw>yB7lrHGk*6@`= zsm(c|Z|n3_CsD3{IrrZCPX3zhXuWtj_tASb0(Dgi@ATFOPn*a!%=c- z>@4MTB+04gPumNW&jPY_YgiATjo~8r3}f|QvKLm#&X0f&N@_dnJ!7}W#_hfxgFC30 zkLbg0z@TE8vma+wN)(e7@OlntxGC#fbcpW_28nYG@nM{k2c)!-)7H`Ap%Ox`B|)>) zNb7r#>B#F}KV45M$%di4bXLl^_?cYeOn~e;T><)jCAX1tCN>@p@l{#P{6^j)T3Ef! zDVXCScz?gnaMHo=x5u^@gI+@O6(Hw-dB!O;j_U_)f{`^R^>L>FI#{@jLm$>xGqflT z#hkAVTsy#aR8H&SB_swtwt#N;@p1`Ag&PITW>gzCagFE+SEN6g-?3JBssf(MEbB<+ zga>GbS9GWP(oWtKuHy959B^Bn(UQhQqzCQTZs}=T9bJ>aIoeJ>M*DiIIkY`t9319X zLMa(wC;b}wb*H?dCPP4~K>XGdv>tS}9kub%*IsMPlqoy&BJj{(=iXMHCB8q)o*|5X zrG~tz;2Kg38cufGZ2sP9nIX=}f$eKpT#@ZC?p*HSWgp5Gy^Ijw(#ZRIj*S2w@2|)> zC*#|jj+hwB?$rS67B0*+bAD(y%*3|?i zMqU?ZhnkL*D06BV3y(FA;f!>Ge)r0Zo|ro{_?MC4hl@n>J!XcAS$2o{LjyxYY)2i@ z#v_aibb%nW_Q6ty{Z;?3_R=8dwD;y`+@Xxv0CTPp|8~}ZoCV{ycu+8he)-W*@s|1cApCgBP``nlg4C4#5h!)+%V)%K00Je zma-cTJ4cIm8<@(3J`xoupC>`2=Q1cE>4AC`XP=n$pp@vVpCr=%%5aLD%mJtI@p$)- z^BzG(LcBj29XOO(^;C%WOp$x{Ubd|GH|pLXI#RWtSYckpJyfOwB{0SBM$Szxg!yLS zX#6j6tRYN!8i4m)%uUVYW-)?q6B1| zDiQw5^=F!n(4-XU-)z`LKv(c2Ot9B5kHuctGg>A8G0iie(^h6jmO_I5zWq9Ka>F}% z7AQ50JeVlTE-n=@e&u|1ewGDY zC&(X-hQvR~>&{dwIUzndNb_>8WMMh?+u8a_D-ci^UKU>riZ_2wSOlqe6#4Q$OuV3^LH}?gO21x1U zHS7Sp0wvtZPcFK6L-rqMRiu$us}86`Lg#%Eo$92GM8YTbTSsZWDrwFNOQF;oKx1kJ zmyD6#jx_FCl-2dp??B@z&LBK1v+v9_az8&~rQJfOg2Q^-PKMe|(Om)+iyorxw%ZA8kk>rDWAUuMmCj?D9Poz7j?>fkgrz2Y|brQH!(u{ zd(<@LFG{cYep)=Q#`NBAZw{p_(;E(V?#3(*UzTB?`g&zu-7R0{*=lyMc@jCU-W^-Xrt;l52@9)TSt?RP5nk|3YY z_J;j#jDwms`Ua z*Wp)a8b}ObzfjdoJjVUhWgs>9X5Z4$fUkWq(DiibC>;`|{g^-bjs0H1NP;bXgstFA z8nfc^Dh^lw(2N^)l0Ix>PUN2au8(X*=xy{`5hi^)3;)2m;-D zcC%}1>5Jo5zWSG-t$o$JFa)E;QlXGv5f z%B0%D_07ulilj=p=Sk$Fs5hPQ0ll(_#n~OR9%a{GbH)P_0<|}G1~s#QgsWIDR%Ugx zjojGTZTIZnwskKC7u{B{8{dTnW4fX4t_FHw-(LDFyY|98azm3&Isf_N3l!OYf+CGC zQe+VRUU*(hGVnhnTJF`f)FkinZ;|%-H%oi{Uz9`BSvH872nY53N4Jk`#kFBL*n|91 z?hDK4H6ss5s zC_WJPi)NMz16NV@UQsqUk5tJ+xJ|5cu!izuG}N2v^6ez>y6hK#CSInG6X{cXN{&T6lDbbB+w;`8QH$cQTjTIuGmGuP5z_{bHD2C{kH`iL#MMC8|(&xfX4w;lzURCCU; zXScfeZje7T>_&i0Gg-?0e5sKOZ})JphqvmONZ+15*sE`cKz0f7!%CI;2L6*=)nYZQ zJh%AE36wK0>YU z-n)E7vW^Z4hQ82rxUVuR&1L@zMh`8ZE;zgu-ilNG$cHIq=Kr{qhuSxm@=&{P>9bJV zH_vvs{t9aGIgntd!vGt$BM5Ezh2eP9;r6&IrHl&qB+4l>T!$W{zZUSRz0#-JE`FkbjPS zB~D;ZVGh*%`cx^hM9G{RbYIM0q?ba%D~c^W<{VS*Ezcrcaqs0J`>n+Sj)^URW4rtO ziA?~%Fu*UUoWzt%$JmXBi?jP?@ib#2p8lmnf?s^1@A#@e=g!R^C}1S=S%m1)B0xyM zGwWLA%o?w~zi7wI64^g5p2!_}|5(Rk0UfdMh}Vd5!30u7Yr5&s@V7~wzLtqK{rKqz zeN+TmX&*$2{r1dS;b83P2dTB~{KL^drfK2jp(_)48B-?(QgysvzehF zrw&(enE}L#U5jO026&65@cS!^X72QmDS^1%Zfi(HY?%RUF~~pYjMZX<0_en}xm?$5 z{%Xvbzg7y@K0k|ZnZ*4zT$LN09ZKA>3GTEgPnW`Pi)aR{2*B?Uc{pAvJVHf0t1v!I zvJg$Yy}0g(NN|c+jri1z9kfk5S99j2gZQpv1~K__fIE$2 zmh{zvshM~iMjORSVkI!2`Xe9(HBA4L{rh%XGe%imNHc_1a@6ay?nRW!ty$kpe%~N| zRF4OUVN{=OS;RKIDNou|ZL(j#_(L~Mtc_MV2skC<4`_nBxutl;WF=PmwJ>GqjQ&#*qE}0!^xgN>QKPx#-|4vaW@LL!BUJHzY1gWd0w0 zt?$t&eNkZzIf2?gw7gsCuK{?`MbN`n`tw46?$pKH2g_}TD5f#dj+$e3bQz`8a(O-O z?%qgI$;n0@t;!6q#4LiOi8ACD1Q&12Mwdru7y8_A_~uua(SpKo_`F`iUI1s~_c5rm zUd;Wk<-BA_Pu8UUyv{}H@Hr#Mtr0u!kO6qE0oMOw?x|&c21i8g4)RfZGfNX)wtU&z zro0c3K9ja8*?6s>V^YnQIKJJd>~WJAoW#C{moY~R?D3Qi_#^}GHE>ZU+BeD>QWqxJ z%dTY_^d7%pWc^9B=Wk#zy8L2pD_m!YA7K8id1ap}`@BLdgL^kE;}witDG?EJ*Te7N zxHg{8zH5dn>zBid7R@MHv`U)8%n_M(cY~ruHwd5AqH$+bWG&bRz$pf@or^DpHayD+ znJNW>ct;J8sfO!S%N3bp9beeI@uu#A?zz6}#w}ep#L%=&5I;)hVO0cU_Nz}Pgg3kPcKt#KnH*d zAPvyZu^o-TUk@mBV8dZ54qAso3Cgp-S6aa~{X)K#@ukeAQJ6n7iaaErMM$O;OAK#; zQG8n|hqEYBxqiGTiN(+;AvzkJ_h}#}4AV?=7M}6i8tmg&14P(A? zDNhwK>l#9RO<@i=rv4t(vpNc63XZMk8Lp(MdZPFZ%&}R)bgA@FtyB+qir)S;oIR7L zF~$GGzK`_Oa4S2%hC4Ap^9_PNJ3Z%AB(s*MGiTyY1cAAo>B1l{Y4wh zMm0#)Q32507`CH?P=Mz_-T`+{Eiy2(o=X&LWXR7^VUQGSJCvQiVmS=*6)@lD7d51T zx8vzp7<<_b*Zm@5(oYvLU)u;sZ=XsHDk*}tHP|5}M1XGN{s^vkxfRCYWrDB@`H_yT zj5Gk6r!otSfx=OKYmx2nEA$4R#s0prXyd7{jcY*8A$ZevK47ypH%vLF8xw{R#PUve zC_(&~=k%G6ICDOgZ$fae>g5dw<~he5J# z0eodt{Mu|J633@5!pL<`)1lR~r(`APjXddl4`fQORr|icOi8avs?-!WD zs+C{Lng|rWzg*bS+`d~6?MDl?P_u&h|F%%0oEug1#XhY}gIwMKRMjvCyb!({vR|2{ z`5O4Ubv8Kp-}i*0uqW~ut0`b?5u?uJzp0f~w!x^ry#V_ypp#atu-NnPLcYB~$_y*! zo5XfEDebzaZi*a%c3q-$smJ`Cs_8FAo`E|w-#&!r;YwMEw;H)R-Xo~v`OMbcGc>u7 zdvJLvckN7mr&V*vV^QP!nj*VbEAVVza41yOrO5s+kl-%n)-5y_pl48^=i~PS{G6BI zM=M^X1|UfM|H9mh@^UUc7vUppWW*|(BSeE&UY+Y=&9pv3n()`J=khtdUYa|)WAHkZ z1Za>?|9f_kEpD109%@Wb&BFtK8LUn)#F+iJrCQp-g?oo}M_E!w{PnLBrXfLmYb1)S z^E}$C_EtnxL50TszgO~6_uT2g!aBB&oh0AsNqy}2rx%R|4>Fe0$0c> zEy0MX_W<7-IMQg8-Wx*M#t-}A<@q4sgn?@qr!ozEkV6fBP~oqQB68<1%=`apeO=1> zf)rC&-=N~1hWdvKus}|q&(2|{T@ZsM5I`zr?wUW#_8mPY#+n>Lp@~dSFJZUGY4CqsA+4pvK zG{>z6rQDZhHKa~CRXTv2oT%f6LB6>N>xkM?os!E=m;LJ8a?U-6enxL5L889t#;zN_ zK*u(I@tV!}CGQSQhj*7*yHgM za_iP9_%;=HZ>L&F6Xq0%04@Gl?z*q5NPm)IyLM52P5RNODy@RizBq%~!uIakMc>iC z^Im%Iwma{*3tb+!?z&_5u6;Xiqi?+Cx@#1|n~$BouDk1N4d;#`2d^g@ehyp?w zXFt7RW7iGz)*b!m$uxKuedo44`v&jab{jpg4IMerhY9B*9Mz1flO^P;LM}2}Ldy|0 z;vw~G$RBd67W6+t+mnW5V=9i}DZt)RSv%!pizajvBBML92Ii`sRS~pUlk6=sTH+CC zpzH4GyJ>n)U7XO=)IY>Cak^hMwXOdj`ZN30=xZ-iqpGAjp;dg!H4#czWRWf$t5R8K~R3ZR^3UXSZS-T@1!|>LvYQ z%JW#1$N>c|=jTbLjuaJqlx!fYsAM0p1EgNc9eDp($C5@zYBjn79-;3ldPj#bGi$U= zY9-YflC*iS!iE=Mk(fsfm6lrLt%Qgr86WIME5Ypd`Iz!Q;jZ#koC>>D=6ma>Ma?<;FmC#S#R8P>->9ZY( zlb}k$zuT9zFb4Fcf9R-*XoaKceE29eT1j*yTxeCpky`Z_X;dYOr33yV*{7_x`tZj& z2j*OrS$4hCL&7asLz9gDA*WP>Xlj*E8-jVfSJS!sAr&9qO&Wa?31O^fID9ldgq5Er z6+ceN&#JhWay{>>_(6947D~w(f0U)}DKA8&n@(X&`W_`F{m!^Cdu~ykF?Fhi-SMa6 zAP@H&S4OJfN0?|8{P^m7$2xwj%G;{fY=XV4*-td8m6&}K!Le)tU93j(vbVYy>oHf~ zT}}(DN&s!1P)!3jnl?y;wE)B)S?pv6WBs;~+f>XN(n+&1+ScfKsMi@W#U9#%I~OxG z;(4~7?exZCuXLZVIY0u7_G-KpvDlXVzeIe&wl3s$&+q?behgMvJH&Z6DP~d2s>r@P zi?s)A8Q5E6m^lyi{y*f_Dlx*BNfb@T<8jb3!kx@ZIrn>bVjkaGPgIkXkk4DAEns0{ zj?~i`)mRwl7V(!#n0KmJ!faNxi%7fn*!2BAz%^smxv0P&>eXLOShk1E0dcVjS8GEgkr;5W_aqpKu+pi*)l zEaHEcJGxkg*`iXhcq!Jxa^~%7RNMr2Jw%)OUGBS!6wN3*#mJTln_#D4e8`Kr>;8PK zV**xa=iOTJ)Di6^Kl@#G())JawQu+CU3cOM%Fr(0JbUlmz3mFj?N+x1xZRe5jNcEe zsN<&VuA?{Jv;~BGB=L9A{Xor?nBIMN-nnh(-W~VSm)aua$IDvM3H{OV-+gyJ_rgz( zdXhRaUs#DI*rAPMp|LeAMrL|P<8qgW@5Qsknk4X-1S6DYO*4$3CM397Dx5)huqGWn z>Lre>c9|BmhD8ToHu_0!)sly=6sQ>b%{Wp- zws0=d!kaN?)|dvgtNn!vO?O_$5Pfqk=uHuwlAZG;yb&;`FmG}#O$+EvRDLqwL*7o& z0X+mrG4yd3_CpEhBcfxfQWK5T zRbKx0xgN}0Eq^Do!%2BuoQr43i@C`^x_IJI-DH5#*(a&Ap*p(7h&~FuI&BmT)vnYn zTTBYp8?w_24!$TGp4E~EGA5t{C}*3Ow8W~(=YJ&rZBiDr&Fp}NQ~se zwC}z$vw|h&lP30+LAIj|-ao+Dhz;I8xj+#IP|vEAHoIfNkuvidmW1?xXRdME6p_Di z`pgjV4tBUki{Tv{&%eUlFrVW`^6t}SzC8P{Gv7O%Uq=q`rC6*0ygR&rcxRu)`#+o^ zb*^#TO|)R+OU26ZPT9h%d|r9Q&QwQmw&jTmX#KGTHy1iI*l{A>cxWW<;ydFd@ga}i zi)-h|s+Z7SQkbv5Qo`*0&dgswZ(4bNl7Suj!6HMj*V51Ez2)MDn4_Tg7REGXNs*vm zGLg$#N467>J4t+Blp94mZ+5uQO3t`JAMKLzdEZ?yPlQC8swVUF{f)en3#Hf&qes7@)bR@7 z=EL#l;<&!mqBG^lmMl5=D$xQv$s`?DqE9r^2-Dt!b{?VI%v(T@Ta!T=VJ+lTa8GS_ z7AX+!iSn&9ZUDF0z6juBoH< zW5$5pyD)}4yA!=u!^D|=Wg$=9YhTCvjB?*CBju!la^ApDwT|g9DFZtANzS8Ghq#!# ze>Tk4D3J#S*}+G44tCHYjOifd#VSCt#SmGg7rC2Nuyp(0&13Der=C6kV(z^U zt}yAyM+P0KGU~{kyY9ZL5F4Z90YUlVS4S@!y*&8|WyPJx+&Oj~&{9+O<)w8g;%gIr zE?+5vng;mUJ-<%Gc8|)Vz=NteZXi5*?bce_$!CPx!{IucL2H z@n2bp3}_+ppoK`A3GH(eD} z$!)1ywl*eJ&FjR(K!8v!Xg4}9`=(S%TeL_g1NBdS*=*ZS%(e%die@(Y`&?`R=YbL} zkvE@DeEAWwnrpYwlTQ+VqQpkE=4&a2k}u}&|G+zLA7gmmO}?r6iRQ^CzpQvwF_aJE zW{1hLXEpy~?ms@f>QG*?Fn`d-U(K!Kui_X{iq&$LqyLMKoO%p!xhCmJx{_8pknE0? z+QO~|ZV!9aA!GJ6tPLss{pot1?jv<;IXs=OoA@akXInW^7ou8uax?mkSI%Kh6l(2S z{^97y>E_86v2MC1(;~VuKDt@Z_Z^DrF&c@j0m;(CHSXw$ov9GWR9SwIi3G_OPF}UOROi z=3Et;rd62@%C|5Dn#Z7CsjIt+S;rf)w=StLGTDdO8?|!7Y3#99G<^$?(Tw2e;>ak~d7Z3HsYQZ(H`bcyq)fSR%!?RijnOiU?xjYB4bC$d1o8 zAa42APV53KX#iRl63AN?(wYn?UVH&DlnjZ+SSZ;llxH4%V%_AKA*$sy+dBhmr?pMK zDXnB|3dn8V=Xx<}eHZC29sX8NaO z_0*4VrdmnUYo}Ce#-e{o`=+da)dOhJ(zVXg%(0FiUDT4D7xS{jFL^EbXZU}ulX$$7 zXSO^-{F4LSh_QO0(8uIf;fe&I84kTHOoZ}ydAsmp?uz%Bv30yQ8=1*xMt(4}jvp>a z$)^=5`OKEqG0mv+?+eY|4)vdPQk<3o=+>ypn6Y;aa2iN~G{qBUQ3iRC)AjHjk`Vv*D=)~8q@n!a-ec5_R(m`rD{)xj1M_L9nk?T zd;Ku%j-O>HQkSUbnZ7nYvb}{9hq|4-;ve8mJm$QEX&v{G#-xiNPq57dxHaTYL&33D z`;$%&_a0_NXVgm7b029FE)z?$-=7_D`X}}{iSGvzlME*sxMsdyi1bmub*a|La2j}Z zxQX-gFFHvb?g-5DVo2XSxRyJlCD<5km!AuKn>0=W7kcFed{J8}o_KSB)MHhJ_0A4x zy(QT~Fs^vr)G@j>tx`N-*e@Iy!KVQMf)@g8h-3>^#*k12OF65o!o3}^q#K1qv{@*X!h)4-a(MY@ui~yG6$5W-7CeN? z;NScjmL%;bQ9daH`Q(0>Pvca8)B%KETVj9*hUJxe9NeoA@y?4&?#ZgtWr`Mt*}E#z zq}DuDHeJidV=V&eV2Bf~e6!Ff7G)oqr`A%RQ(Z-x{v>0ISTCZLFBbIKRZE};aE(*$ zNmUb({+Rho=JiP}(U|kP&?USA*gn35>mHtLrW>Z3dP$Q3c#S@rTU@8q-HE{%seO@5 z%LLoOC}*CnivRY7+@7Vpb!4w{%HmPh=_`ug1J(>^1dL^1K7C6KAU$qXa_!bBUK3t; z?#87$65!s8d4=I(Wx5%3k*_G3eNmon zMH-b1LJy5g6sc9D={ix9eL*?h9ciU}jVV)F#jF*LO01dH6OFZkrm$b}Cm-ItPSEc{ zzD>cO_vSM z>d1<2(1PArB9ZIF7Cf_ucFGs8%`}eV^%kiWv<6+aV%E#$DQ+El6;67T=axYC507g> z`@=K5@=3(r3k$SjH*mqVM$wyc!nF?;n*WD!g$v`VCsxoRL5>6c66aDOV%yRJ(mx#t z4SBzT3%QpT2u*VyUaPASOwu~u3Zu|u+ZOV=tVP)y7jn-o;5n#wLW^WwX$eZKl&>KT>+GzQYMRt< zp~s9bS|*1Zp6-aR6^7&av4vr5e?Q~l z>iIB?>}sHWK04g@P;_M!O}x4=ik1am=1JlM?pvB}5{#eWzw3BSc52?9xolZWR7+ZN zr4Z(+NKI%RuX{_$g(@73ctlI|bqU`?4Hc<&W6F~K{e1JZ(sS!W(dW`v9wPS~E2^FD zm5>HBPdAe$(Eu71;&1dAa=o>H!`{hZAysyh4SMZ_efK21Czv@5vNEYyjPEI)I_WPsPiuxfq1)S_e(TbV8Kwoc_K z-`05@L5hibcZG~~E?Sj{p_LgMF3lL;;qi?P@J8PEs22Le-jG*T15Cd;7vS>|Rw|I4 z@;l*fz<~h3Y4v>G8|t&PMkNh@hCb(W$hQ_O3plGr81HJN@Hnq}?5TxVp`Re|mKWo? zejTIngp~Rgz%@iw+%MvZCd$OkAfuz7f;0Qa*-zU*7njR{cRR92=PH%zSa|yR|7k_Y zxAE&)n$%AFCYf&efqcp%~vwLrV_UMwq~ zL0JEpPH8hM^+kQe3p@7yIp1XM^k>_47TV71GDR|uULzmhiBXKz*^Be^H;Ilqxt!C& z_#?aWJ}S$z>-hcm=fBU+<|!@OY>@gI6|C=^Lz~Sfxu<5r1>C`B-^3EF(?QBx zEB-piE-dHXn1%HXlC+&T#81~Z&&Sg5{winsfCuWQ*lYIfzODZ=_L_%}YLX>H#c5dR ztdU5579*cGN+fu_WV=TrZe}NZ>QR++H%4w}>S8`@!rx z1>04$V7odn6N54NCrJI36Qr?mEX4T|!O`%9QDW~Sp8Z9t*L~a3XDpBm@pe*{2~4b> zu#@79j}367HWa5kjl3Uv`{sO5SUncvP1*IzDf#E5Mx|2biR*~JVNCxwCuO~EhKlsG zD5qqYi#P;Q04CunBJVzrP;oEpIPU{4y%BVW4<*mUDvlzD z?#D=W>KD$0PEODUMbCE%Mv%3%yXq&EOl;Z3`8wc4q!CZTYA3PYTK+6-b;?0dYpGLC z{E>ciij_&#*NrjNz9-dXTrqtt=HMpi3a&{xEwf7@7+Jjl@=-Q3e$82ij9sTH%F8frRwwOfjP`_>!uAC6_B*Ef{(!TFDv8!Tec$=2(aBT`hU$oxHt@CXqo+epK=w&sBq@=FF-AM?aFP zfqr32Z^@pi!-MEm0q+kw#Nw8s>^GFm+^?St^T!6u1U*K(X1}|%pTVrZ{z2^RrE~e% zC1L5gb5&zNe^b^3J9NxI)s~Mv6ss9?lH%4*r(MBL^Th2^I|~xHe;`d*4Ul(w`W1pt zJk(7!KOLP(Q%&U5A2P*j8b%3igPju+n^GXJ`BtUt5+{hAb#tynY0n)jsii4@4|>V$ zSyo~;TEqN9(F^IOR7mtp)d`gu+hj$?&ASA>ZGD{3u(x2HYdFBxDPP}{QH=A%XNlCn zH*okaGg*;7K}w*HQfT+p+)K;KeWnKRA7BpvO)S%Hu126>r2#ttSFYj$ zw6E`KF2t`E=5xJstAvqe;tNlJq;}R{$R_jR*$^L5vPU03dlhfv^4ge*L>MPfwmK1e z`N`6I?2G;Wi5K_!SRd%8tHx+0N8OGy8Q>##ooQBbURlWtxu^crJVt7fa-rS4Oe$rY z59zaSFJVnh{UzE~JPS|MtsYOFb@0VunzN1h$8a4R_)58oP=SiH55{cUF{(IWNEoFn#TDOgC;u_%|4y-(GjL|2&Au?JA(tx}36XC&?H~6D)qDxj z_q98Lr)006GjS-}8plj&zY_Ptc9^EL@d0Ru78_C@=fuTT1+Q;}2g1z+SHH8^l=73S zGgi6*Pw(sy4W zS|_ZW{Du|#h_fJ{;ky>>TfyFL=pE;Q_4>%EpJhO&2$u6#5FG zE`<3u8}NX>MXaK>HbfqeHl-d;rJ=NW79i5jRen`cZyD*{W8sXSdE)^T7Z6qE3{QwAo+I`llMFy-LpLyUrNLJPKbf zDnz$*{9nG_1wM-EUK~F&`^;t&HpwPzp3KZ{!sdmWKqy+Zn_Y;!^a5fV6zL{_&IXWx zsIfi@iZ-aFn+NIaZjuXFEugj0_V)JnY6W~$@X=YtUQ5(Yf&x;-#n)_}`~QB=Y!G|z z?+>3OyYo16=A7^Q2`iKZ`>=AH!YYN-^#G}M>W9}LwMD^uc)Ir_rYhgwS=wpubrNBy zzJ#NY#eD~|F2mSbaYo1`VKu+1sMNw~)@G2zw#dGcliNzd7HL9chh%^uPvE0W*!gHY`ZGjieGkA04j3K3Zb8 zkHr3aI2t6CiCDSxpTn2Y8cGLKm^M>#gnf=BFn2q=_20*|)kv3-Yxo;6LMAJ~&aUO{ zKsAn!{YKGnU&A*$;NX|)i=Y+PN5lrK|FSKGZ~rlNDZY`|&y+_2<9@EZ2XOBRz1Lht zb1KTQ?|PYLN5}EF2xh~4srHP0KY~Xwy98l%_gGoVqKDZmjtE|}lV&jB^SDSkz3ZN_ zsT>+E;(>R$eN4-OLkn_Qv>2{v8RIk#l*-w=^%C!XIk|MFP+Ikbjd4o?bJC1)V}jwz zL0S;{W<-vCMBf%D*EU==*zYgZtHw}1FIVg?j$BHm>=9l3;Ajy%&rNkj61!}8G3X+* zhcDIqr=B`xK`Wv*wNl_2S!1?7raEm9tL15X(Zyqpyf0P#n9zsZi*Z-=-Zx0f%6bYF z+}TVyA9i$yZ&NA;!XXtnmcod*BIib%fr>V!W(RKwv%7J$QOTET9mq2u_L*YZ9Im0X z{q51k3YCy#PbWyaPMXsV8Y0jg=SiSD&-tt}a>&G>S@AGIYK_}&Dm&rnER$vz%%C(L zcx5l#h1L<-D?aGUJc$@}P}cTS!>BLSzR_F-ZT?lgo=6(VhzHIYh#h|VKS2v1<0%Vi zT2e~6@}^`B?U8`k zyC7Dbl07~BKahn~bywmN$OW}-WV^_eVU|i6sZk81ic&2{{HF0jiCYtF$O3BhV3Cz) z%8IBD^Gmg46z%I3Af@W!e;Cm+ztAs`OZ@`5Ve|_WUE&w0y66|U?v81Sr{5bzh$KAb zP|gqR2$Y781dL7a+;Cz1T%x+aywB3>`IoplkV#Ku6v(fnm5o{OXd z#63GwB(?MYMkYlG9Mmr{gF@ws5BMlPiq(`D=oQKGCWNkfV?n5NNE+R?DM z4|^JB2Db1TH@k17j93Aa(CMECl#}U(riWq@owP=#%+A5?oYZ?IBkg)QQMCP_7&ITxqXcD zxGIi$dXnn*5)Q(a*A99jIq+7|)r^Z&K6Bmu^Yt-%>3Y8>(zEH#{JOTj>O47E?TCFX zmPPjX?6E(HLgd}xGeEaL{YZ%H5%tQsmLB-_@kg72q&gAPDYd}|;QI$3F>{FUnD4}3 zc_-KTTae1R(9<8cb48#p&-b@)BKh`tOj`qXR{2<<6{103`*<7AwAP2~1NPpX0bAcI zfqfsptiE=Z7==FO-K1KX06l9XYA>GfzvgHyE14NW%BYK1CJIAH=}hrY$DU|8P_(xh zwR<5_7{8Fn3+3+-iyR@$Th9ZoRu%nMzGer$mU)q{IlS8`U&{!kDH>m}17FZSWx%Hv z3bO!x;j)MT81nB4k3{Y#yw{Z3VeRmqKwaOw20ccl5;Ko+XTDb~nHBA`89rltmO%C5 zOvxH@%TxZ7!rm!fvL=BsmQ%UAc;tqJHS}GH(U+1Kiz$Q^QwS?eL70o5A!T)Vu{YPd zuPedSeDeY8XGUhgj2jYD(l#Z7~RP)L0d7>h7}1&q~i1PVjf3iu=k_ufan@mu)P4lSGg3w0Yk0y=2e5y9^p zlejhpf;{+LrBG`3phd#$v4w2CF40Y6&0bBG5&InC{s!pSsTQrOL6E-B7wXbvmBbS^ z{&cd6o-2cMEvfgpI(4o;S)8hg_1!r$f^WsQ5J2bL^@Zw8=7lf=JG+CSt0oX!1qWR< zuSs}!U^j7H-Y@{s_MlacQIy8skGB~VGw_(rFi$$Dt|d? z<2ZQ7tS~}m`nyvR-h^Y34um)<8zfjRrL%9Rci{~FXHt6$>m_et20Cl;BNpTP_*UQ@ zd6K`#M6n3h=lMxZwkoEwl^?MsR$r1wu_f<2*fO0Zf~ zoynwCz1q1#>OYyn$MO_DX3{5Qe&-2QwD!3nUO5IbD*T-}M!1X+`k4#lD(Ntd)dc*E zf0fkU-ACV|mcmWrG8i$cmld!H;7TDK^ACp-q;YS z6_+jZ5S>y3l8Kri+*H1pp5}|8W&S1gwa-f4G>`*t7>N8I>~F0Ev#6{x5!dkJ>WAZK zPkb4q(lpj5TKv9%`~pYh7YObBQbaSJ?6PeksWQmcrnREZyHqUlFAZSU+VQ{&k@YSV zZT^J;GvHU-p;xY{?a<~)M_0z2}H$3}_$#46x>S#U4H`MO2 zffo)pIBz!)E!)c^FK${anwI4FmjsgP2T9EGGQc`8POJqJSKHyp;Ra%!nr9Ko!}k}) z)nAXXFh}q2ZO^kYBgm^(*)8_*C>@w$PBD)(i>7^Uc;ZcCwFKWPi{t{G8du*QbJH2$ ze)nzLn%cPaTepI`+;q#f^;<7h!#M#P@CX-kUGdF|QqaSOm_67#r+FN!L-R6-s@3M- zd!NsgO9=B6nqKVyvZi?B=xogIC1lpLL1tEljFiH{qgAXHp!S1t^s0CB&5f+Td6{u) zY}#E{M`7d-pDM=+{WEPzvp~DO_${*LF39E-XIDR!J z%;?PW^D9|ikhqQ`&6Q8p5I$mxTS4|MBOPVoG%s-7wezoh1U{)yk} zE}=cU4k{Uh;axy2zEt;(a^fPo$L3hzwyJOi$)WY<8Rs!II9V0u0P21`Q6;^kUioRi zGQB&eBfl4YF}o({b7Omyf{^!arqt~-g9h=1Dozl0exyJma=YTaJ8usM+Jz(P>b1o5 zyxB`C85yhdV11^7`1KQx==8pGez^MX34U5f!P1#-@^|ZymmF?ro4>ssD^*mJ`^ZPc z$mB6q%mOCB+{YN1$Kgk2E-(jlMkY<)tba?NYpAr`YB4f!= znu&Rri5E_={AY`QGXD+rwoyGPkph9eO&>QA&K+_ebVzaa)QDT+nwj{uNsNgVdd;$d z4DUm{d~F0*ZT~;rL-ckQ+?0=>pFXh>rOx6Ir zYWr?>%onv;T|My@?f6teUR56-L)a*kkJD<4ud2~8hQ|!mzofo*jj=R>oRqrvxDR>& z?{|+RdAG!Pb#C%bIa$hKL{dO};J!|fY#0IU8y4cfH{!$RpPqyxPL|dhA#xGfxlKFo z+qSd>HsbG0{9WKMuKv141OGIv4)#g^aHJ&iK$9=<@_OI;@?vH!!-ZgNw*oG1UB-aU zrM<(s@oP9I`culD(-lxzW)FIGVAZg14G8K0Z@Ci~m8yRpum5Di*&h$O{qZIy{^bOz zOq0J|`_d6NVAM^I7qfQgcw+`Jz% z@V*)s2vdihSw4@QJ?O<4&)n#eDuGswjcA^J zmn1}T07q{aW#(j64Z)mW8q?9SoRT-l0Dh8_|8<&_`Ig>0-}gifZP+saNioUM? zW3nV_B!cp@9~cN0ba?MC1`^q3AP>UNeeiSn)do`Y6hln81`>qxc`qBtUCZ(F?S%br z19@VL0VFT8xLeE!3B4HW`QsrEc6^B4G*rQP))W9_47IfT$OlTZrYF%#e!yKpmWe+% z;t~0fwqGu4&qsOm7b9pL;Ujr_aHq;f3VY@TL64p_TV`C(icYC05>r1O!3c&jIWO#{ zl-~W6Kx^AL;!7uqyCg#74?cF&ZmX}iP@4k@;$Fi}2S)HpHhy@-l+xS;30pI;@eLz) ziWq_a25OHjdwtAFLE70YHstl8_NdLT5=QvJh&5CwVaFiY$Jpx%!%y#cR>WCFM%;U5 z?!lRv<(bs4|LwfUWbPi+q$?&s59!$&WGc!AXY{(}X7*!UIu~e91raCA{~rnL4#Y>QK$BwQcP3DtEupo5a8xe@b!Rkdla=O#As=3w;AoW!8`W68L|aqT6uZ?;#pDgU9|kHY)qZ2j~?!(VW@K=&=jxujvsF{U-F{DE%p0h6ZQ2 ziZ6{wupdC-Mzl3=8q?PNbG3T{^is=IjV_E!x}a7inYo;Vl>cZf zsY)q+`}L^yUb4C~iPAD2du7yc5rVE7eNxom>QAGj^n09V^;~}I>f2kedkj`@Ah9Ac zTNJuBG`tTQmv+QXRtJPgK|m+iyxR%(KDRYW0he?Qd_qq7;}NFr&LBd>-(V)!kKG<@ zB>56)OAld{KqD_iV$JIWcPHYOxdVA}iDV9?OEbb|e|m^ix+Hu)B;H#u+EVe7ZSUKEa zK4Bo&{To;BU%3cN@Q}kVf`0oV9=mP<`XHT~45aOC19@SCfrQ{^;P(bH(P997uHQ%A zFCkb12dfhui?tKBn3Os}N_a=&QM1v9``yFq#+z?=9FA9=!HHPEzeP?4%;4-gld!@-d_i)PqJkdi?#?WkHzu;K` zG3P^6gn0hF#p#%<|04<`8810?>JmyXUrkwf3NPsz;hM^wrfWlD|9PsoD>JlHRD$R`f9jNr!;Bnje?bq| zZF?6p>k4|TGG+u7Mf1HNGs~E%_D!syhk$Ox^$M^GneiV?l+irynFrbf*8w#)2ZDkd z)5~D?d2wS>qe&*Gi`sB5sCP~LMkLiXfETN5c1^`#U_FWpYH)&?gEsUpG2_go<$Gvn zR>ND*=++08@g{+Bdf>?Q69!VjanZbxV-4fZ+OrlTz4=vZ9`mh|dFIAc*YoS;nGu~< zWfAR>FqS@U8!fpci|Rni3b-AufT?H&9qf^tu0A(0J;X6w*di_x(;J=A7TBkU#|kMG zZKAm-eDs2vF@Zd~Fk*``@h8UNIq~wDvtjEgar82>EDidg<36d`Ud?Kr_5Hz08)iA7El1mSpy)z?Q+zT((8`Lmn z)i@^>N2g%Ch{8Bijr!)LGJ*Z__Q3q%ii!#>NVcwNTT^q>?XV~C=8<<~j+gu&S$POgoP=HMNlYBdk#c~~&*;Z}A_=slAMlabkA`MO#D?h|eE3LU zMtDb{^k99Uu!ocx11N{i2FdWc1W#eDFk-G1SbcFzcvNx;`Yo+}Ld98?|z zI6OASi^bG3nzzRkL;ACC(<6=<;Vh5`m$zo8pms(F?ouf!qTKzrwEJXy|7@UO*U*}G zH-m(165JH;_EIms-sJ-RQcI8g60Ubi-%#Gm#Am_zqNon|*Yq$-5A9=leQq(AKIz+g z?xXkEJ8~mjkJq&AUy?1yu{|COg;lvt9Fcwio0J~#CX}c%$&!3 zrv}R;t=lH9sfl;>YqY0iELW@XLGyR;&fKxWsOOTI{s(pmhgs%cirf9q!aNHBx5eGL z7kBHZVjZZgRs6mE7@Zh)o_Uk$pIdRh0W+#htKvcZ_~J7dwpe z*HkTgv~CthHT;@!34U?n6u#_+Sr+!2|Ahu=t62)%ewr+V9}#2Xu8o*~-0pn45#_>0 zkWwswrEL6@$r*b#As??Ma^y5nXi6;+H%mztg{57im(sl3HT##PJ+*oojUU$LISR*A zcFe?A!#g8qd|iDifzct;!fZ{suw&(V_?fwH$J&|jg!)@e;f%=gf*k=(BSH@dJ5Q_h zpEf>&R{A%NZ{2(shq4n&t|VSI?jT3i^Pf1P2BPD(n;!BruDt8+pI;+7V5&#em(OVt zxS8X6fPGVyBYFY8rH>zOShLPR?8mj9^DV~=gjs7KFTZ9WE8*vgW&_#!7X$gE(m*zE zAY>iLX6Iiuki$=ard7JEB#RuZ&qKIlihK7vR){M^yI9`g4q*<84e`mbZ{=`(aGUakSV}v7-XSe67k!?(z$XAGdx;!H^Wk)IQM;kvv`zwh;tm_a?vttZXQ8?Wp0F6Y<+?xQ3nUYZ} z#Xsyju9}iYf|{Bwl~1>e>YF)m?IQ_IQbn9*;(Ve)5hC)vpuhE`$;`a(R>}4^vWnIj zPopADbd*|B0(!|U7sr_qAs~ln8Y}u`N&pXklyCuUXpiwyeNjPF0=U_lvK>hL$HSLe zmSL@iH7l`$oLBFeM4M{;`kY8kElLxzIy`2=j+>_zp~ZN$jdq+T@`+Q6d1quf#>L5R zozl9_J0rG6#?20zS-6sRo`=7UOik9Z7fyZqM1(SoKgDbe+~?cIH>aTU@&wwfVHJ2F zT~Y?n5gV-?8tBo>9ZR?R zicFl%t5qtsZUrqj9vu16DIDb|r_cv9qoaTnMUSgbj^k*HPZftS!mX&oq)b%^U@Jhb zIfWX**Rl2V&XYq$ZJsNW9Oq@-S%0sg@BXs--$}-W?>>v#N?%rgmtr_?iv{N_!*g$>&KREipkfRNAXq?zdw1pAePdUPSufc1- z8Ftf{$uEW%()Wj*is48lBiSkM!x44y=MD+Gw_zqy=3YnmsJiWJ2KBX?1B1hpKEdY3Q@e*q~SSZyHh{hNV&v&cYh`>kekT?T(~XG&5#6C5LMN31;JmSA_w z4)|zx#@}a?Lx9IM_*;e@sx-woubDTy$vb8e0{B|CECh44G`=(4C2c-+srCQ7S~h`@ zdQ|<>Cm-SaG!g-+T)PitA(uqtADucYIKz*?y(>=f5+hpBL>mLGy%IZLYdUX&`cPk1 z$0r#lMhJer55Ijqi4szp{AKFwXOr4a6m}FwbuK}AxtXC_s+scEl1N7^AE_ zwEOS)u#W#2c-C>$znV+JJDTbPt!=HXp0cXyy4$OJ2NUVU+#?#{_$ z!wii0=CB6uGbpuV-Hs2?M(?U6E+Bm zMY`D!`pyk5p&lMrFU7ow&EXYcL=jfGJbjS42jj?2@b!(j)0M)m)fi2o+oJbi2O?Jf zPqbSpf1vO0i2pb_sqPyMi1qivtHBz6GqmGgMqufBemTUF3qwft3xG#B;=!a-Iubk} zn!Qu?83{<^Lqk*ee^_KU{Yb&;QrnH#jf_^ZKOql&>v6$Z%KZFB4sa&pqy< ze>+Qfb3sS_{@|%##PQDbBkHT?n}Z==%^*uI16m(fE0eUp_mBXP-@toUA0|IT$Zf3r zPUMhQJz!G3e01NY*Whp6DDcci;GK(bV_fkt7whEBZ`&R3tTEY*Vm3${-=T*Am~NEp4l63lJyVy46!ZTb~0y~ ziQCT1S%#9kL_Hf$c;hd|Jpfm~nT#qwIz66r_s!_VOg{bdfIG1YQUm8ECY|Bq!7Rf2 z_tRMRECMjtc;ZWABA0w?hc-2jDe&P>1dXlwcVQmyEnh6oS>I0C$imPVYWNAi`SN*KJXasTzHX) zdBq65?r?czr}OBt?ZS>_Co#qwc5LWG z`Nu-|wZKA0Zvf;2!6s$vP#vkEIp-zk3e$j)m^y&3+m zAHWFaF9!3ZobXG^y%c-#w;&x?ccOJR98(`2cZ4U^za+}YmDlpEE3tZV zeuR-H)n^h-`vl2O9FgPdt)l{&RG&x`5TfJ|g!bnra4bAl6f$x`uhPtslCVC$G|7=- zz<+amNdoh&(8rh;Wlm124<|N?q>S$wx@Sft%g4urZl=^iD!jynIeDezW-qBIl(C(d* zT4=)FhsJlY2g(su|EUn=9E_*n9tLa108HG3_0>S2iHI8-xZa|Ge)i0l(Bm){=yXZc z5uZC*EO~#P7ZrMKbC|hkW!mk_kL(|uR9%VYqIzG*hrGBX!V~mi?W2APmI~e|$??DbfKCB&F6m%p!)BBeW&4?^ z)sUF#9b+Rp8rNfp--cfIzE=iyVK(H(`l~P^E0I~x%Y-QpS{i8u_|CtoKOAFdU1}m| zW8v|bS~zy#480<99&m<)w4=5$LgV(!HgkjpxYWnTK%Y9`#p=xHkE|h&Y-0V7tS8)2 zKd6IYbG&bS=NUb4|KsYXiJzW1qV7KjI^M6bmNHEo+P0Ysu3LZGw%{#ybKAuA+~($% z^=r4`;pX++*7d>L)~#=&v84-tJ+;OdJAte0or+cKFp5kluKo|KPD_mKK~HZPX@#|% zBkP`Gux}7Rk3N1HC?^|PG`NL!i(p|DvVs|ny08t-g_3Lp*ZT_D2Jcw`^7`fkdXi?y zF>$8CMwX$UqPKF8lrq%@nm3*we{Y-~uY1V%)nJLjO1S0~30%vU1{sk5UW4=5bcbpI zJ&vi~B%afy)_G){?bFuumeC5bg0q3#oE~F927hdX=IGMOlMhd!IE*2bA^xDu5k17*Q4oK7)EwCaoPd9Hm?c&$*=LZBsY((%A(+C3_$LWX z2iIZOdeI!xY+$np+PRA1uA4^CI%AGF;fY_;8ctD=Nll=?#?@;_7{w?V0%@=>{uK-A zS1#awxM;=78|s%%b--9j^O*~NWFQmY2U)&p)B3AsmTsBJ)n7NCRt~>vCe5RpIaS|* zbfLG74S_Ti$^!WGPO?PTO{(;r1u{}}9cV60wS7?6Yo0^OJPhAx19^G@LQag8s`u$5 z$J9AVdez)#eEP^|a3!fqlR1%P9JTLEXV6CrEBLq3T!rbw=u!ubE{&<*jOr8zNBE=a zr{h|5sa|%#n;ubnKk*Pt{~|uP8l|eKxXSZtatyD*ij_6+%`m3NI?OVTHIm3u7-Ftr z#cbvgM^Atia~OT^8_SM4i1YOTi7p8&FJc0EcnCuD;f8g0v~CQpZQ8b;`_ZD63pp*d z5Em;&pfL_}2S%U9u&$Re#)$Jl!cH?WCm8<79mmu{z%Vn}PJ1OhkgB(zCY#%OU{#KT z>`eF#4f%m3e1?LsK;o~Duw=h4O+KJy#nZD(d4!R533gzBj-wYBm9D=TVa`FUp6uAb z3-I12F}sDi-0oWH-?1qzpH%8jE-kvYjZ~Xt63kT* zMz{V$wlq0gt+NMXvdDPkz(A@uKncOl4j|e75JvAb$wJUAexPQI0$<>`ra&u5C4hd_g+1m{4s7BIw%c+R)%(#;lvEETixoUK9q88)wf3x$THPM@e>t6$ZY|nS4|GM0 zspe5OjFFKBph!p5p0k8IaKi`}Xf18h(e;1xjW^!V;ID+(iM~S@N~#NzAk%T!RmKvY zegdO(bfGVU2>))Pk9@BFH96&(uZ&IkvvgsmX@akB6%?kM-J|avp!EDBeI3aTwk@0Tq&HYFCjw(P#KfW$W>uuA?JS-*$r zMvt=#R`?UYsUx4*Ym6OUpCM%4qw6vCZuIXZH7#k4g+PaQ_{@?))=MSu^hXl2iLQSi zF@i=N50abngXSBUs|?Zs-$yZhWLZlQ&97yn`E8ADgf;saJ`H=h#ms(3E3q`T8W+j| zo@gD4ncl}^uZgm{Ci(AY4mU8se!4%`)0pdY!ibAp)|)Yk+DtIo_yaWw?~PE1Ft~ja z$=C76{QhOx7=OP~PC*sZ@k589^bUUov4eEWhGME|1bx&wG9xM5%XSP9&SCd(O${6y zHm@EEa9gnF1Zbw7@)?KKbLXc6Ctxpf0$WVu1Au-1PcFdG4iZ}Yvjw|~h<*J0)eZcD z)#V^-AZC3$iLua@7>T09b3z1~7DF}@S6y(%M&q6F{@>C56IelXN@l7JNdQNe^~~zg zY{wVIb3!KWuzy-;eObf8hf5hgvjb}$l(pGA37^$bF)O!=yuU}u4tYrByjC~)d(kN` znTmhCgWN$5lj*wYx&YI{Q2xGtW$R?q&w z#{KsHvi~*i)c;I2i=D&H`~4* z2Segzha7~7CxKJ)!C8lLB_=)s@{QPF@6`u#Kys`kpR4C49#V2S+NJ7Vht|}qU6Vx+XnfdrQ?7PuH&p|dvo0djOTa5zjPD%_rq4n?)mL7 zzPlA_r>1sg4oaGIO>rme{kW>GiMvkSHOmkS1c}Is3}|$VPZ0rYUgy9a4~-hhmQxOb z753ACe&GHv@!uzJJ(UA|orzBy$qM1$^pWgT{!Rmp6~Ni3TcwKg?4p$j*ox=L7B(~sGbDJJC#0O8Y z6^2;;W|Sa-lJTqVcs$jiaADxri*hA4UN`dRVXidrya5;g<22hWCL^Yd*DC+*!nt!|EfSW{1t*1tqZi zB2T?At0(oTJv%$i?eN(af`nx6qx%n|Poo{61sMOsu~~|?Z$DEwE;}Tw(e`5zK8;>~ z+4x@3+lIMEw}SMXOKTZn~PZ>pU66UiE-6#ABjy4>+{!%ryO0ruLsM? z$nY$(akxZm06u36y>}n3`^;hFi$721hG{2|;c3#*Vl&N%c@{A5hT*+fktKHTu)sI1 zNn^IRcpVRmi-!e{U$ehO4(7C>P3iXG>)X(W{Zh+ zBRJ@8koeHJb@+79GF%Ec@yDSd@wFhzu()Oj>9!F#(gg5OfingQ;jHwU+aw|E z&Cnl**uH+)OzfV(@Nlr0Xqj%)>0Ez0mK{2~f$^MOJ0!X({gGitZg}#MWILBbv&N<{ zb7IJVmhOOY_;ACYeq$gxCPH4n!a%q~1`-ISfi!Lj<-j}rIGGt5#%?ne8J(rFa3C9G z^wq~!AD;R_%8=cQH1WpCGG2%@ue8;bwt~`$9d~rj@D9JTBkyVKSbA8U_s@(-9Y}}y zdkA+~D688d)t6X1Sa)u(Z!oRTQI`{LuSxG9K!1idFf~JKr%Bt1+wrnUDj2z-JF6Gx zGaV?i&6x|dDXW_&woWDpRPXBveFYZzg|2$b1GpLCboEEz*4dd>ppNIa3ujT%GDmF7M}j}0U`A(R(ls@cK! z00Q1yD;x+mEDY2fFb8m~3Q|N&Q8qpk^zZCW1IeRjJqIwd*b+9vnS#-*{dl1CHv97 zPaB6lWH!i$S)FN}Pl}jz zka)@1vuA{Z8LfnKg|fKqtTTkXoW!piH;^F_B@7Z@I8G%jpqi^-rz%O#N52v^e&plz zPLw1nkp5G<0vb@0>R%F9oLQKv%V?0tVP$b$mnDZpj^oxG3uZd*Jj3LhYYYLT={ZtT zjgQ#-H=f~ul4ll(XMF99a}{gx)y0+@awA#&x1TU|Swb0MrhMz5r`Q%E&JtqovUbgw zWqqHbDYC#jgm^hJJ>6m#E3SS>r2UuaBf6LY#>+J zLd@J}eecB8cIF^8}(>Z};*bJi}sEVtAVpTIdiIbKUL!qzBT{)54QcqEPC%-*cttCSyo z&p;~R$I<<5pSWA@xNYsW;O5)VeBlNKXhr>^>le7oxlK)XbDMA5csJTO@3?*aI_|FE zHZgb`*Tikx8oc$^^;@f3w{E_5Yttq|$fn@!*bsE{EnL&Bw{Bg3Yty#%Q^SD-!jxzA z{y3)ft;DQGp(C$@xHJ2&m(%N#u2L`4cF=ci>@aZr#j>?)#|BblNM;Xx!TAl^q zY$Vn$W`zvm0a({fGH{<@y7U+ISF~Q`dfC&4zVjOa5^D+PHLtd{E^A|Ii8~Q{08>D$ zzj|XH%~=ti%91j|wPf!#dV-kvS9LN;susdX-e7SVS{q(e&wXwr*^<#)JU1PyCdtH^ z4jO{29v(3(mfpGWlL=IYP%G23W2m9JL4z;yWQB^Zt|2d~PkxRRdFipGhc_PEcsNS} zZro&%8iHgNc4&Q3{nO_tpD`X2wNjfRhgJ7kK~e&Nb{o(5^Q5NjfdGN0PM4WZGwyl#$ji9?M}b{z^22FEa#yA$O^pEbsAw4XoNiD zG+Huo8A1<{ z8}gqLAN84Ie)7&5GckrAr5ck#a?18vX6}=|&jvGktu(()hxKU*8#Z(rLFSjoNL9Lw zItk-0`A%%w{1thM{*dW7#^h`sw<&sw*|?-gw=OHNDcI>T^7V}eF@gxRf96WNhg5wX za}!faU*9#Lht<@RD^nEP9NH@`zI%nqb3z|7bp2d39(0qp)a)^x;Pck{r+i1OJ6k5@ zHksj%nRFedh%roNx#b+fcId*3y=>UxClzME_LA7leJtoGFRBMV#~Q$TnkQw5lK85` zY~>MAi0r*g zCZ>D^MmkFqo#pAz=D~A6dhFX80~us!T9aduZE?{%)BmcDC7Vi!yFw-cTSenM21zH| zO`J@~Nc4Mj9p@Y?+Pc#i-s)ZFOXKw3{f=oayZ7AcJ!u)9m`X1%yuws{!;9_)C5oUyFjw@}o+?!RWyqrTktuZ7?Bu?p{!B@006^;gV}F>UU0hVC3_zMgsztr7Z^*!Pw1!?o7; zuZG`t`6~E5js6zk?gg$Zme`d!@XaFQ?{s-Kjvn*5tcuUY5{rV@R4rlY-^wNa3WO0D zzYVkPxaXgVS(Pkf0eQqfpRZWD-^cyl_B{H_(HHe;jP#RPrNBu&tx1;~Xr<3x@*b(M z$hJ0v!g)RO(%iB>ToXR>uR;DTNqbHWOe`NAMmoF27%uq=8*?Vbp*}Su<7&|wOv76t>DrZ~f7k%37ruoN{ zYR;sQJn7TZst!zi!w6_l5_W!MF2V=)BF-dwa$K#PV5tpb-#E%gOnew5t0zUXL_3H^ zEK%&NeO?X0S%!Pb?;&htQk@C9G_}l^TL#l3cFt)(!g@IJ2HS)FrE0D?IeP+6Yb0!8&DEuC%F5}DabX^+8E{m8L|Jhtdt0lg_qKX$ps>?S6DUlQwb>%s~3-cgW*`m*KVG(C3A5t+;JjgL5% z+&ktf^4k4Nw~=c0o7je(-pb%cAxA1L8`j6AT> ztSCe;u>NN^!tVD6I>!I+ zJze(C(?2tiSEdu<1d;xa@R=#M#*W;JHOH9Ck8Dc{Sgp!SVcgefQ(g)_>eHV*+JarB zm|C;Kw%k;(-0@Nq)66PIS{4@_ZMKotYw%4U9WZxdg$P?O?_DY^FEDhJia2jnNp)iqZF`^>JB%Q!CDj9ymn&1>@&H49<7nf( zOg2bM+%sZ&+Nm9DSU6x+P3WB#QC`r~sy|pgYzeN6=ofEtFtfXS#@K@*Q}epxcOWGk z2~26TI0uxG{xqsnED|%%0{XeVj+tYTcKV`&7Ac+jp3GrGiazCOzOY&PnAXMoN69n= zKcNl!$mH4JfR8zOzNxC2x!9{ZJdn|4qSZ$9gxWpaYSwMrQyH7h9VS8}C)TuK^^R$n(RlKM z{fzPtfT)^sYY!uT_&8Di@wl?@HTAy|2C|;p4%cfIsDr!>B(L-8RWx_%!6MZ7>R?vy zj9B|UZ8h%9Zfno9*cYO$t%uil^tjQgWkZXJ`$qYf?wevZV)y(|*&4(nOe_oFG^4YW zeA<%z6cGwq^E&OFxt(i^a=O+zK5f3sofgYJU=i3>dsl7;+Tj~`A{dnH13Hk`v@AE9 zbY4|QGJ81@V<^qF5A&!ICe$&QcScm&fK>d5h#10&pQ^)Sc&P|8zLMc>mc9zW%eAR0a^@~lakb3OQ??nr2MDOMjp?B)lskeI zqD{nF>RCg^&Ui5UP)27upVgWZ0)AFz@5$|f)d6brP$Dm6={Zk3V`N0WRzC&qlSe(? zocLGu=OYMF?<$5cW~yl3J2v(joY_8NiDV98{a$lOX~w_l@YmRvLF;5{u(lBJA1fN3 zS8G7`Pm7voKLERd(E68z8#u&I2j>^r0LyhDecdc^8shFC;_mJVw2a!MX<-&PZ<>TK zjN@j=*$09D#d{NInXyVogV~fz-U<7?LdgWoHUn?GVH6~sPO%}K)=6c`Y!c#RJi(Bx zL-=`8ZBJxMmawr0@hoEk#}OMWv}Z6vG0ykzi778eIn_CBlnxlfOp`u*YfXJ?$;GFY zjOvJ`3prkj9(jzREILjBF~Uf{PkcN69lSRBp#-H1RXg9uJurt!{Kg4bC;0oriSH|? zA2JaCzpYrYU}^oz1+ZFOSq5^wzkX@`3PP4Hx_%|9!wVW0_-|ObfQs7O^*8vI->_iC zDz23F%}AFRx4AEG&>-1886l&jFD7Nko0#}@um*ydDIHfYB%X!cUbf6WhXGA>z;`~D z*$cWB;JmF5r4}}v7M)PPN}Aw^9#;BD5RSzi3EZP;gO_HhvvMY8k12M3T4cHZ(5B^> z_X_L!v+-JzHbtSROlKqcRHn;2d$?icPYmRmX$JDQE(4jrL!*bk9I$p}bXtj#{4;f5 zUWkM$`IqJT7-(&Z zm->_poUL=2e}0h%V`@Po7eI4QjOb{*(qZ-d82ZHxGI}nGKqKit>m(j{x9u3+FERPtfP>c?$S;0BfUK|^o$o?>F`XWr6a zDm(0VEa9^xfqbSumSpBIS6zr@^=J3lq9)1U&fdevGNt;Ut>cJ@^8uZH5?3s#ZXYv+ z2$u=CV-4@{VWlOcAtbg_VSrj_5-dllNPXjdz{7MQ(4)hT`3#hUHjUY$dZO!QDyPF6 zWJ-s{a$rJLNj6?ayQ6A6FI)2E*V5eK&(y1vOr0(Il<#cJ1TdHz%j`QB)cOt0fGaYh zpQ+W!DI2{9xX@>6Y0?&ELe}21DGs_8j%W9wz4|kCdU7fbX+r(&WF}xyM%3CXHazaL z#|*Te*Jr9BS%VeaXw263p(zdDMmrZFp58fR2$b+>+4@ZVe6m*5htaPOQbp_uC9}^K zep*pl>WhY&HT&vH8hc*}*ZzHSTCa^tvErajG8AV4l}ZbdvT`x!5JLA~NAv{i@nL;4 zHr_viwnG>r!onC?60XG`C+Yq3V9w#NuO#-cuV@f?)f_$xdwEAbQ-3{)-Z@Jo9Wd<& zlWFv6WfwDB&Ed2*>_mcg6^DX%)}`(=!8-1`U*|MEefz)(eXW^&pqs=nPjkwTK05^im6I9K$9?A5w~&BGIXH@u zTNXKf(J#A&K2fvbp9`WDTnD>^nd%51rb!ksjIA_v>nYbr8wGp_F_qK$zdxw!i>EZT zcnZ!v7d5pwXlh?ITO@?$S0)g~&a1DFr-d>poz@4M`7EH`2nBze!0!m*b1(u9X89() zJ}ok>A6I_egl5&fXH8}zWtSSHhkVoebuz}8koaYzxGqOWj8W`IS~ko8<0(|fiD9U;>pj%wbs5@ozOvUOz-U(-4*#Bi)GE!^Qx z>%d69tD{v1Ibw_)xW=e3a7_C)p{|@Xg%Rq1J2Lft^XU6sPT%iupB`@53h#FGCsR7C zwXLVh1~eUbi1YQ;cU9`;UsjqxhO^Hm%93EASS&KthS;QfB58!(r(K+!If1*X^fA;_ zlWOhg7iV5-xiSA}^O_>2`m;fuaKg{@upwQyzC$PJJOTfrU|J(9VeG=Wq(02dwO@%e zoaz6cGn!og^8u9ULn$52+OZR)iS!Oj2UdPicF+8C#S-0U@U9QQM% z^771bV|U4W`p&}*aPQrV$S>yK(_cJy?(beSnOyWAxge$=N&|?VRJVaft>L^8pudio z0k+nS%SsOLglCjrxE--MrFDF@8!O#xhyA@EVnm_lf!4ZeIb!I0CJOp)kmlGvC?d$4 z-vr)VmZB#ayb(ARjy-ogt#6+KPwz#UuP$i})dVev@bhKK3u0|>LxZuuB+wWzOH#lj zy%#|HUn!iuEotd}NWpQB!MJIC_s7x?p#(Fj=D-`6Xbzg5M&RVZv+zmG_(sJjB~?>G zPi#(;(`fHgtgEMa#cP6S!!|{eYD3bP@)a7WuTUS+XiQq4P0{Xy>w2BAvo+tj z7mv7;Zusp;%mJEg!VY*#?wOxP510L}z8_O%J0V|C)rRC;Ahn6kJ;=TxU?YZu#fo20Os? zRg=l&xw|gfXS(tTS}-QmcSrTaB7vqo%Mf$Zy6G5)Dc+$`XCKfSHZmKi&rM^{B>sr#n@%dh@c1=x;l;huO*+{zwAlEi@e9!sP zY8`)RwH45D6o%*}i|5hZq|z=kA;TWFdm-FWy>yP((EfzaB(ol-ChYrWknJ_}F%qko z34S7aogL@G5ncE*^}k19&XMdv!yZ{gD^G5*hbd1*?-(M+RCVIzl+r&jI{gw$J5Md` zNLfA1axvYpO3W=L<^KRptU-8SwXyTYdvu+qrv$RG!5OdvrPD=8d_}?p^!!a3cWgqv zdF-__e^%F>%ezaVr{Wbrbgq^y0GG}j=V7iy&)o`cV)N8# zWAdKr5xJ)tX-?g0hU=~tWLI@{Y(Oj~gr8KGj|)T(6bkvosaq2sF)fUrevlBziXj}I<=p;<-Iv7xhXA&o{*|fQ7}6^|Ik@!R`S7`OXEjD* zn%-}!&XU(xZ%d&9%Gf{@*xNLMzkty$k0hD&0TY3w?KFY zNeBM=`dE$P09`lz5bahP_#{D!8IPoi=3XbOUMsSXC$8yUe`Vw>GBlW`q-_ zO0h*;=`HeObmu3^!;6WtGSCv3A*^6+UbEl5<0Hk*5&lKBYXaZ5Q_*+3c|CI7bLKGL z3|O@zy}R{puSwTkapHHPncM{&#T0o}9ikZ-B-W#BgSE#>$(XmoICav?>MzGS6g$E9 zsJ!GoZXI(g|N3q>!@E5vzB8SbjNw14!a0_3yVfjm_%;FbrIYv7f{Bd^!yPeIh_{P` z`?DJQXC2YKV!rB;)U4;htmnyY-T*T`_la3@!;IZK()YMwCALnMr>-i6t4dQ>y?4n~ z12jhM&+5ESbo?$;yT75tEb-K9X#t9LMe4oc(>xBJjkpjtURKM;VDFXm&?4R(UA4M^ zEUML_dsn5Rd$U@f79x#I1v6-2!^?R7I0-ibhA(?r6-Q0N_Y|EpbVd)WDg>GWtgFNN}K?N1lo=rU;pea8he zWXniP>xz|Nr%CGQWTiu$jP!YD!?sP^4sH9}wof(x{^f;{%-(G1oQ*EgY$Oj|G7w8_I3=(G&>2COr7%(Bs7^h^v&3$+KR!m<#J#9}t0 zfMPJ}Eaf$8s>t0ISsz>JY!&OHQ@VegESzj-Zw)sig}pK(g%ztNLkf$a6jm;>^K#M; z)R>fNq=paFFe=h*ttdz|3B>K#ddGE?H^I2=rV5Sed;n*PEC6%0S?ho=ASkRiE7CQO zRbOd`d2Uq>RH%Zxc{TYHhDEx1*lE=wVj%W+W+8l+f(h+yFC+w%%cJQ_X!nN== z58w?@*a97cFG!&cAEdST`TywOEWK zcFK9kWQBuZSiM8rXXKb1!tC}D^?VU&5c$-9sgaf=T}PCSRmgwv6Ag8gUbe??U=-5x z9qAipo^Mq+ln=XRo)1b=W3ItBs6F>CD>Lo0=O4Xzevif)75xf~cJeN^V==C~Z|1sh zs+m^KV=Ft_XU|4w&VEB><>CLejT>jKT7G#O>u1k?W#;U)*v7A8L6o&?()>b`L>A-B z6-ycX$Hll7YQ5ln!}+-E9ig+^Sf*zANw&&P05b;_u}9e)BY4u|ZrW=0Y{{R++Vgd4&sQ zhc_vbct8a2j_?L`gJz1ez4@K~&fVdl%6cu}jCA>}$tzWp91XGFVauJzapiHH_&=C$ zJ8tUY5^svxa2CgQK3E1wPgpfgs4$$&#_D5&5l?sPG$HJBa&xRBMp4_FP;a_XG4(ZR ztNm8FT6KZB=d3sfEU5i_d7AY*PkP}Bjk3XBQJ5}s58r27kPp+IvJe;FBld>9>M+U} zEK1YVCu=fa{mDpur+I)-#;o#cr0Q>q0dN`Z731iz$lzFS+3cJm_X?;eGvJKBq}Tj; zww0$8#=Cm{M+(z-c7&C;a}@c_^_%+GC{X8DQ0ox`;^Wv8rkkmu z=!LmyN0S8{3&CgVVx^kS`p$URsj?^uZio66H7h{iq-p)fQ%ob(N+@b7T8NZEd@^k6 z<5DAO&^+KU)<2V)^(#{bRyE2;OCrtpJ>{J1J{F0s@_+f5)n(vYg2a*Rzs|!O%Ptv#Xo}_MCm5DgLc}h`m3XjaLM!h6!LL1JbX!3o^Oxa5+;QahE0uP zmPYweaPAYNn7=LYgB^aSKV`(~XLXak;B}3cOubwWBQ%@L@f{{M9;}wDY<+~~WKY^V z4~Fv;^Pp?t>$vyr>XH~cn7z>4=UPB~s1oH@(CkU3=NeB#$eOrO+>T7j9JZ^wMY3VN zq<`~cTc15?@+7QMBoG3)otW$_9|I29~Cqa^)x=r z4V0_)lqw3HOdmz)^T2DwLCp$y$h$hN&z-iXv}k^ej&c`|7EKFn_RAzZt11{0UeF`p z=q&npE3WUyK7w{L5Z?=mvwmXoi9i)aMP=-bonxfAb76{;F;w?9oo zvbB_VUh*41amWJVC5kK9B+fuWe^Fx+wjuEGy=JgIjB9O z$Z^&jFs`F0qs+B5&by~f{rlE%gXi0MncCbws;vobvn1Qr3Y)Bb-nDN>ED|dRgRJ!2 zdVbIt=b1a#PnmFJO!8~dN7r&t)yAbH5$|i;-zK;vRl@(vlpCGL5{rGyHzqJYeeoU@gV|a5Ah% z3EYoVU1=Gy$+Pum>_$9BhEneS@E6}Oga4k{Ja;BR6;5!?)^#c*MOF#JAgmY)^KV}- zY&X7{-ieSG{tmOYkn%Ox`(gKWEWA}BVBa2_0RJi_ATm+>1a428CDaxxSP7|CcQu%L zaF4EpQXH2$YcJnjh+|5zhBSA>lgLj?TcYG~4Rp!@yUIL?qdveZkmNPGdP z1lwZ9xBDkL+Rn6}TO+RTSnF>Ot`XZi*3_Z2)(CZtEa{BOfejq$;B6C!?iM=FZa9B; z$jYW{Cy;_AL(Uy|t_WB8=#&Qz-8~dL)MiBew=?z38oJ_I=h+z7Pcm1|)Va0;>u0Eq zmn?bH`g;?H)}CEYQgy-TxwZZcu??H<4&H4^w$z(aOasoM_(+(MQ)wFMS#56DA&QuT zz|B;HsoD>wIN|iPjUx^8U#lz;!_g%oE4>LB{rY$M@^Ln4f!rv}4=SeAQrs^bQr9m~ z{cwp9{Wt=DA)JoBAg+JZ&!Q_t)=&1NxoM{7G&sdwr3XX@U5jJzhjHYz$vvgJqi4jU z(Wq;`>kcschvoJr3Cv*yPqE*iu4({g9*@bu0_-ZEGc+38Gpo>}FACmWzHOL^^K zYaRc#T>XzLH@bek^`GI|(%Y(k0Y6%{=-cZmul?q5?+fyHPd4O)*Iy8LnpoCSy2ikdR+=XtqmQPqu+_`MLnsg&{6 zf2|?*j=uK7kO0Y+TR{l6&DMib47`ABl$d7ij*LXBCQqRVX4`RlXLn73(t|xcYVeei zX;#}U3Q_JubnqplX`wAOr?pQl`0zRhPf9|s>Z4|Vo)A6~F& z%VJ2QMeucnIfd$Fy{1o2QbhpeCBG@tzX8L3O_5wf?L`t399qK(B?(7pj^u}Ny=>Zq zyxJ)Zvt>BarBYldMoG@qUEU)oQLzlAiE^c&x3DW}WS8N}s4eZar_B_zA)*|AfzSxa zcl*Qe-_kz}GfIJ6D!Ka02MSR_EA90Ril|=-YFWxb(=0Nfc(_!J#u(Hii&f@9nYi9$oa$lTrB3epLj) zl{^}C$&>n{1eDdTlBm}$G(uZ%Um#D zf+|LENE&KRQz-M~CvBqOd7NxVHC#HM$)map&en%ehw+31@OBYi_3l*jm8e_2<>=0r zi?9WzsX*QpcJ;F-9jN=hqdE*8TI1O%>|-cXOMp2HCs8xM(jr;q-OW~saxmFAtuNDHYVTKS;GHM5f@C}l?|oOJ z^^o6{rL5dr(Dy_*zwg^=I%7Jy(6FXHpny=2Vrtsb;K@f#$(C>=9I4zy4)!-2d*Ya4 zpa^x7XvCg!I2VcJoBNIa&r>XTpUh9*Ale2TiM%dhw@hB1nmlC)Z0)uc4)Oo#H&5mD zIa2vair!%xGb8X}n*Og-YCyOuTjroU#3!#WXW*R>(twlM;OO>3ZZa#B-T$MIVYEDn zJP~sGJ)yD);fe?mN6H>?BycD8XC)csarpUCroI4m&GLaCq74h^!b!KV}u2^ex&WRsW)ROt%aiMLc{M@2p{RcoGhC`fTik-Tq>_` zTz_ry^4O`Hm9HX2xlMyA18vz&nR0XD6#X&}@BjW}iR2OI?>Eb@>C8l#fuek1CPL*S zefJ~-79$?KEH$proupcvoKdHf^3p!iJ15I!H`1TCC$$)KzUnG9qE%-1XsOIbX=R$! zLb)h8tfWy%%G}e$(u5nlE|GIA7xNxkeEx7b5gT8l)IzO zK3CE-xcKz&V!{Br?bg72DlY~gNRwsVQ;<;p7ft5SX8}z(*eEUnS z29-A%8J@4{+2d5-uw{~iX8ag7WzXXw(|t7GPI%?s!mwE_jJ&drDpdWuK7C>PWtMOY zock7Ke)(ZiuNfm>F6s6j{Pm4dPRo2B*S!;$bhD>saK1u^6BqsekBCr})no4=|G)VZ zSv%QNHt9^nEY)}NFz?D-KOZlDn`+#_Hp2M$mQ>!<^ulXatJnAk=fydYbZ6tPx-}GS&mu^pFiI>q2E7kAK0T=yQ$rOBAo%sHYU`dk3%0nh^7&WiHk970IM(w-liN>AyFN3$-oAMl3f|Gb!a{-l0#YGmZFehax@(NVBkIWT;*Ixh7259KD&Ds__8@`pb&t*F4q>kXWl9cVAJi2p zt@Jm(#N~xMo8QpiA-u5pd?w1O-vcz}D1O~W);l<7nyJ1@<3wZ2c2b1wp4;)_wDQtj z?mKI!CKKajfz$FkKr8BC8khyIu6i;&re^+rj=a>-p&$*4Ji}eI0hz%sQbpPTv4-D79}guNG_lzB6piQE5D>e#K$^mX9dH-MpVx z^K1HsQIe49$-Sc-%m5u41zb0;+p=!+H`m=Q+;iV%A+~Yry3HHgHc)2p4DQ*iZ-H!Y zW@AAfHE_@gm5hG9p)a}+giEw@{~=QslgJ>*mCmd*LE?UlbS~(0AJ(VNX8$vxxg6F% zJBvDuB;Y!H?$Ls7heQzor4-?TD~hs=;M{9t)k#Bt_OmKC1m~(QVi5{Pl#LsodRYI( z+5cE>hMmjJ7vFXNUV70IMI+qd?zJL#iovzp$N7qwYN%z?K87p(;X^-lvJ04|r^4sc z5+Fb7r&yEs^?w-`9=nujM0UO=@oa37z{Gb%LINK-(*{Q7IGbS3{bZt}o%DZJCcTD9 zQthAG^;GMLgHvsUn6=bHy8j#co^g}56uI6@`gbP5e_CO>*$PN-aD&@{BQgI&5Lk(H zI$_OGVc)I*(vO-3q`ZCXxu%Jr!7SNxpG+~bWr=53tLKqbRIAtxFX;zHhez1%e;uKi z4w&&Zn-jD$?}>q6kuvc*ezgW_s-jb8bjKx zU*3jS?ndo~OM$z7IqGqKb2{kUzN*=fPyeFa(`Fh7;(K3nmNRlicSZ=;i(=L7in!Q< zGS6DK-{3t{Mg>1cLwVe&hcd2rjgn>Ka%``^&0u?d_J3e|{b}TpL)5!IoLzU9kf@$n z2c*H7B&wynK&=vmgIt0#eZMya{&~v&hnf2QTfgq!10dbwG!L;o%c}@q^RT|+EYpjl zI~V|V;IO{&tjXYNzt+DsWtu@2M2a#>QsW!?iBa=`sh0MNO-`ubho>0 zMRz0PIT*^15VGf3+8w>L5_90dUZ{?T7oKE#t<{aV{+36GuD@U6!M9v_!K9rkA)EEh z6NDsZ!8LPOXU_)OhxR@KG*`brGk*;$Z-+)_OdQ%9#tm{um!jiCcmwJks@JcrRMC>hRWLf1+Ofolwy5D`Nu=ym_F?v<6m|}zq%{0U&r}QVt zCcTnPC1TslT9)m5!r^hCp3e@ni>$XWvOa2w{P5AIV<q<0p3SC_PuNXhXY^%(!UK$FWK>d`cYe;xD6j|bp=$_iy%+y-<@WFX(F#F zrxq=Aqt;85;u4*E?vNSAF4mT2d>UIUX=b}*K`NFlx#G6Yp;(?|!TTK2PT`w@IlVcO z?_D11P*Q|<4rq+$kuSojiOlJ=2ZZ7pPF@u!wqVD^Y z!RIicin#v()iJ9`y`wLl2G5VK_YVdJh;!35;4kkZguRC+vSmxql|0(^49@Kwxe{L0 zZIcTiFS$F0)T!++8t1Q2a{VsZ(eE&1IY}!D6e*jv2Lk!ZgMp2z{Iq~i$xAZl=8n4L zmqm!}5!ueGYdTd&Up8!`krIoOe0Zgj*B_1fr1;a--b^No6|ZlOk-qTwG@eQB2w$hT zQcFd_O}))aNl%3ETl~>$v^!%?n*Tta>Poi8a-dbr&dk}2Ju64~er>K=RBzW@Nk@H- z_K@+6JmhUBrYkhkak9im!})3eob|TZdp%DY_nPotTzmB}bDfO)V55QH{;IwcIS*NW zENalmlBDk>+kNA|)SQNMS4|*g!!>&Zd*3Z)LA_{>Zx?;I4jic?YqFD;dM^HQ8_e@` z3yQZZPloS=tlRT4mI#Wg`?+TBTM+}dTVnjdbY%>DRZPc9Z}MOD8>i@r|DZ9AcvjvS z{w&?6QSJDCZO+BatL)^Gih2XT;2O#lQh)NtkTI8YQwy*Uo{8DH^vRy&q~1UM4%2c;Pf|r3wGH)p1G#LjdyY(T20yt#8EuT;u9nN;Sgq0KtNMlU+4j~6 zt|Z^lIZ`f%cAMSD2=$Us9ynLu9ilyQM-)n!Sb zIKbUgNO+QJR(DpC31!7kM1rtAXhOMYXOPAJcL%Nb|JEQc5enO)Yv3A`Lf2>gV)=|$I2xkj#{Jt3(5|$IF%osr<8V?#ag_UsVz%qH$in} zuV3^fJ=kkFcVvpRW|wT)>6MwFS7L-pi52Ebf?Oey{qtwxGb(76R86^-{5F+@&OKN% zP}=ux)h!cmDwnr!C`|4Se^Vt2+XR)k|6dlfX{)PLb;k|=ss|=BF~I_A+a&{SYAwt~ z9xSBDYXM4yTp-m5<%3PDQO2yF8!zi&>K3OFtMDwF&Qy64Xmgi>X~C+rG;p0;U(4__uf7Cw||wb+|&OM(z{CB>or0E za#rug=Rlnh&wcL(kuaPEV@%c>IPrwq{MU3n%ozlYDsbCy90VK(q85k3INJ)HI}m10 z@{p~~jr-(d`q2r}t9*3bs*r_~;lx~-anFqpg-cF)sqz)BtJ7Gz5W z`0f`ecf}7h2B*g9IYkSZMlVt|&NWX)#aFan&hUUo@Gi>-Ou(fwg4bBF?FQ`~ zFtX-Bx%Gn=_qTlDl3`nj#6iC|o*%cLFs%1$+62CX@s0ec_vuV;aKF#9D3rh9!zceE zYK_-uP`eP1_)waE#(1I^8Z>YGnN~g|JxUb22>IiY36xHfxyy6p+#uhP1JzAYv8MM2 zczqyVbzpwHO1h%Ay4T>QLzDWm6V+scc<-Qgg<*^Mq2}*og8mL)3~K+V9?%}o)FV|pd98=TuIyN1L4Z|zUujEfc#26i9yZosSpTRAY6@%=A<7g`kz^E zjy$ur2>L@lIaGEeM8}JuB6)PZ5IMTGWWbOGP|7#UXY?OWfX^kr8YSGe%#mj%Tr$^| zlgz2VUZAKKvTqSLX+hc25ow9CK3vbZFI)cuZZrFA{p@eM&w`6*E4G z{)|`R2jL6qt(7pZEsgKrd3~VShzGnQ-57MG-b9XS77vCSl$IdXVH{20q=D!9>od|& z;=>p9AAMZjM-&6cEB)Y~ruEM8;l=Yl;b0MtdrL>oPMZ6TsQ;DYF+zAOPqyx6Li?WJ zBZNP-|4|&nC%pYaWcQ=f`nmD!T9n%|Xd#8IG#yUBA1T{=R2p!s0C} z7%f2P6(ZUHo||A%1J7{PykrZ`NlP2!%TGOy(#o{{+PE#2ITjC(;qRBmU(`Q7+jj4o z*f;LK@BS^q+WR)#fA2=a+VEd7#Wuv+2!QM&wwPgXsQ8eBe}0RDjrR##?q4g;+>I*K zma8(=O6Ocn1= z@o?Ts#B_G zjb_Jl*BAe@zry9_C7i3XjF8n!*5NGKE|m*85-`Qxg0oP{9(-;+#WbxRs|S9eW1zJu z(|X-0E|J?!TKdVBEO7Lgq?557t{_TiJo1gV+g0QdAiTZC+MD0yK)R6Ew>%BiEkZ}c z;VhC~#ueM5kdL5%;z#E33aW9y#zHZ!6m=uySEIxWkzN(1kc&i*AWsk^`X4!n;Ff${ zxdW9wmAEUN7YgLUBp)TeB`Bvf$AG_+zP+pEAyu#{PGGQAUm5NYqt!a0C~04%yYs0U z6motKyb1Y{qE!C!eECR>S?CZS3qPAK9%6huADxpZ?aCjl7pL{>jM`>D)ryCRapm{?`pN$PJ~KxlFcjVS{C1Aqnh9M zcC4j|X{30fGnzoPfnIsjDFR{V5iWU;5H){4(){2aYwmH_w)INN)MW$JZ-WKqYzL#( z>k7B#fqx%4gx`;jF!QodQpiVY$9GP7O`)s~>eT`<75-Z~TfTNJdA;)#J1kwBzn*Zi zX#Mco)3^(XN6@>@of;Zpfx(rSjgoDi+=?=7es8eCDmj2b%Ke`jVc%v;P<<{^C|L*U zAqxsoJ`x`qw$4%gWCiv+y2?<_BSfkEaFNpbU$O+ie_qYfh8HhdWQJ0BS|d6!J~chv z{Q2}W2Neg%O8@0)@E3LSI3^%g^fR?^@_@E8{Pp*KsAbEf4?aLwc0=v0D)@?$gviAm zrpUrPxe)LE>;g-5J8+i2tlIho(JmFaSvf25g1-CH+`h`LQ?bf}mINb6kJ|f%?zwUB z`MOI*Q~XA+x$E^+Ifm6uRlCffWMb*I<2&sP=bX%m=iodc zr%M&~P3pd}9Ky40Wc;7J3!0_BqB|=^Ho-hOAI|8JF~-f*)~3Nbx2v-2F?Z#`Jo$5d zv7xb@KfN=`xO3ur*f2_*;b=fCLOq>Vekpmb%6gFdstUMs{u!}$gqdyAzv&V zt9?X#Cl4)Q%i-O0jqv|}e zOOKGBXtS#tzmt!KW?z^*aJnEhbovGT_$R}Q+l1?Gx%sxGLU^UHc0(JniP#ol^SVv< z$2KFMShMb)`!=r=TAFWfz3DnIu0+aziF?da{VhTpUS{|aHf*@>flLi+Qq}%j;{e-6 zICvXBZ+_Jb-@w1t4>;I^JSF!u^4BvQ+|g`?-<;0)8}~d>8qQLlu$YdwT1_V$KVUV} z50Gm7pkV(i`b!hrUoxr%3F|sLHm}>Vh28=T{cmfmZG(_G_qCR5Z@G5n*<1du-Zoud zwMFRIe4iLw6We;R@^;4hS7GE@u-bgoSeVA(UEm*6p^lB`Doi5d!F)kq@o6URXPz3k z3ui6Kq^ea1EGS*=GVZM5@Xm_T_D-l7r3!vEgsheibBuehnz=VetvBwqsT6lRb3JJy3hTqzv zEbhq>U7a>;HQkrzvNQeBZ6Ryc@%^Gv;YU8Ae|vOa6lCBscfx!V9<7Jh^$#blmqo^B zEQT-Wi9Zi79=*m4=W#Bs!oQUDv(u;rVZMm%Ws;Z##V?pqOMgLs;m?_PMpj}DQVkn7 z{7pYNJsU}CGOUr@p+ngA-PpDr+x-32X0UfAYB;sp^Tev{v0>-#$zjNvAeWv6KdOIG? z+D|#qujsdp8~(ZK;SutaWsY4xP9C~nj^t|`kP!AD?Y*^Yaj{dutf~iTt6o~X0DpOp zGse%}Np{<=d2`h5F;;|{Y^6|S=GoGX4aZRSWg3gc11RmZH1wnF%LhT@g2=z?nJ5T{ zX0ScUoAHHW{_pS;QpHr#Sl?CiN*fO#f>_x?IP?fr0iy2}Z$2S4A#bEm&#o{c}~vc*kO z%cV>M!JL4a4g<%JmCOdZ$l5faj8MFw+0bGw-Chl)^=iu_CfSbsq}sqIgurd8fkuK- zQ8>-{nt)yTc_aw-IRm%Wp>}qQ_-)mK<1*&!Nhw&`D+x~9W0kWa)MUDEWN|xMQS-d13E_pNf z2tQb~(Av*5nhoA|G|kGkBzg0hbEn61XCp3f@8lTXba6355r{5|Dr9A@?-kvAfe}6& z!QJ=K@Z#PtW%8>3{r4O^eWe*@_tN)p-CRG@R&LzAp6afVmFiSG1ir0!pm5s*^B868 zJd;|m9%^)Tt7aFAythVnzjI21@o6GA$Jfd!=jG~)hnyl-YYKtb@Z{QHQpSxA7G+9(w_!c z0H5pUP-gv-VoloO9xzK>uWfMN>+^nX`(OT=Wvz`H$mz-MNx8ERTI6}y!d-^s5x{Rh z8xx`r2*ReSHCFlBHM>w=Wua>Ay0ssy-6v+XG9g?C93R;ib*vAs?O8iZ`*LTHJ@br} zTJX{BIDXSpQ`2AhVrCs4IP}4czT{6lE{42SiNZ*w#EI476VcYHj=L5>>jKhcGI@$O zPTCXR-lCqIE=H(I-C|)*z`4le(e-vQE8&SBi{+t|>L6SJ{!t z(m&}3K4_J!Lb*i#6T%`Bdg0{BQ{b@#8jD4*(nLJ+O4H*zE1oZ_Ii4Qk25@Rtdp{l~4l z!^~S$mz)U-Yxbc8BMjQrIff09-v8|h4O^%f0QIp`nM{w@rU;V~&YhSzg`CbSQ!ESv z6$7!h=u=fvsT|!^iN`jMSK+q}r=aF}Wk^Jg%l~twxZ8nx99hyGsK@ydP0Z5LDru)U zS0+#HGZ&bJ6w&CG9}D|Z=h9TIR2Zxn_&}9MkWb3ZsPEBpADD2;A*;Qg-frteSwCSj zXS~d>>$gu7Ya3#fGEt+t@yvVfnD835mfvYhjTO6S;tj(S{i1%=6t*)z0S}F^>$TuBr54)L&v%77LAN4};lo0|_VnXjh zIiW&sZYz?ht{**l(L`CC-?qijA>4AvlrI&=nLu{3>FqLkIF>6>eCQX_x&3vG1p|VX zCCp7YR!~L2s^lKg-Sv|0y5R21#`h~#3k7FtZeQ6_p|hmV84)@h?M%?IrYt3i`S@Fk z=Atxe(Fi#!>@1h5mH$*)44jLGvD=RV7>6ijzFfflsE2H;mu@c3Ho+ zzH0rMwUxM!CiDdA!e`cUTBTgpPowzwg^B^6jQ2!w0~wzEs^l?|HL^HK2H?d)@zF4& z{O9}m;7k=()HI-!bMDRwYC8w}xn0bscw*XbYPs=zY#Ax<>I+qJL9)5cZM6MQr!zCM z$?(a8D!;$fpdp?QE0Vcwj1XLN44)WKyf_!d6E#}V7c(?(ZEW+}`!}?0Mj82@b(`01 zTssrA(fkevo7b(qfAf~uH`iS{DHt&CGY*PvGw~f>`NaMPIHD(~gBSbAhz(HFu%JRP zkgEPNepEQLt5go|>S$+i?l-Ne#`T`TGrEOz3gxEv^N^CeQm9X(MhhpaPv;o=5Gc*> zdy+?EF4W*yKb$Ld-4ED*csa>|FI{nokf`2_81I z%vKiX+()tdPtw zH}324GgQkrcSYquMZaG(kg}%9uW3Ko(iC-7C7%paPQ&@MFz6eYn{;U6;!;AA8MroD zmfR67Pre)#jJRo!QN6@1H$TNR@f;NG3jce$c);0T(&t%E74V#tWvKlAk0o7m3=hbu zcA|{Sr#@s0m>O?CocznFJlPq{ zrRWW?NG{0_MO6V<8Ocg5cdil1tIWrRiYm#`netnbwl2H!Adc&IPdQ@HX-*P`=8jW} zxI-+8=NYmPoa{eU(gRghJ>@-C*^~749}!Kl0%>uq8098Lb&AE(?3#T16eG-)hS_`x z=2v!^l|zJXoXAf(!e1bZncu1uClBlIO;`4LsEU#D)l>2Ysv$V}bYY@WamTVCdjWWg z7}rXsVQ2V)3e`(1!JnPZmVx1&`AorZT9u54)|nWp+xUg*;m?IgKN^cn%=nZ z6!@y}d2?lWmnxM&&D;U1o@@@4W{#?*@|+&BK+jFgO|hZ5i2~UdbVweU!>kgYSxLT- z0<}b58YxW@mcy_JZeLF^wv+|a`un3b;2X&Fp;p=b;C8F&_`cHNhqha*j?ck6-3gyz zn+jQTPk=9XFlb;2Zk-}85~RPUwJc;Bs|>$x0c!SiPBJ`9?i8Ocj|+pD{yeJ*gWmoj z?P|9dX@#$+20qizOq$_nOS$BfIottxhBuh?H>Iz3Q{}7A^tUHjc+f2vh;E}I8x(NO(;HRc8&&sa>WK#7d0qP?^OVdp0(ixplThbLx_ag-yG2?F zHK@m4TUkn;Bc%l2)SX%yp)r10BpQ6{m_xfX2JVz!Bk#0V{vN(dVX7G4<+F*B!TTew zWNYcsXv@Q_hm9=R>PZUyIVh2rOJzxl6Z8)F;h6r+lqX4TR6{Kw-!Z;<`vb^Jag`u7 zWlma0gu#NomIcU_8)!7E5|4x_p8ATDPo54UyKp5x(|+!P5pPl;KC5VaJ9eNipy>OqQ&T*up=mE;G6!8w|@pC2&eOqLVgD;~>Hi&7{v z)o{vP*rOx*jT0tqrSYw0A}eX@V;1np^@>h$+y|G3i%PSa6ha0 z@Hj>49nn7-x64<|XaauJDhkv9%DcX#Ew#t_xJWjs9BloFesVm+jYmf2;MG4Hd0u}U zb#{~*;fks)SCD>d*px2XnE*0HVym_YV%rv>>TcniZ5!@ix5bF0#9tZD1@YJyR1W?H zKco2h1V7_%az-oxRi91c?;C2(@TIpn(D3+N{FLD5OP)8uB+Aaz3aH6a?8ses)eg(n zLttE0*OM&RDl*ZGuCs%31mh5JDPT}TXBq|@7lMzFEecK^XkX$wxTZc@;yxDHw1RSV zkHyFz@yBVpn)dn5@Y(ciq*>3Q~OZ@g&S$SxSz?$8*G5 zhH~a9=huU4xNO?4fv;%0E7}CDP1f!+29oQGx^0Y*Dy(r%p&D?{>o5G-ntY_iF6|0u zowUg2?Pi&YHV^`kkEw%`Z)o-&tM*`vCCP8MCTGu43}DcSn!AA9f(<$uDF{C@Vjz|T zIVlTr25gCc(z3gX1Tn%V?any%Ij1M6F2i@XXm`$37if)f^)>@@=n7m{0`Pw4NRKBu{5FF%LMr-r)BqL$<8R<<5<8n+2vhf zYdS}3cLiatvB$eFbdOM5gfLPIwgE<~g<{AXI;FofMV_HK3R7!KTL%JS#y)jSk4!k4 zm}~x~T9dO!u9^VBjC+aZau##A$gqkO<2rj@fA=F{9?G!a0jQc^^Warg_k-d$!;AmM z!Q$65cB3K@YI(&ZmdCOeREUlR&xFTS*VUjERwTr7@reGPqlac}kz}8Ha5nxgZWaUU zm$+)y{%}3a=cTI@&jyoLC_Wo*QW7z!8B=ejSas*A^)|5@z~{j+Jb2*|)V1zYY~2p= zQPE~p7V?9&w;pNM4LHBHL8!GTYxeUp$;rPN{PpWk`6HO<9IYxILTF|JQcTPTMDrI7UspOV@w()k!w zlA1Hs+7jJWDAa?68Cq$Q%<|AOw_xpl75poipnn-Jv++s&Cu1y_@C-j_kq@EPUt78Z zHN?4!DPgJz0+*WBol~uXA9XReVwNqES39?!6&ols6KUPuW3zAFs8L1}9lK+U5$ZIG zQCa$wHQBOjsn~+FdTG=mE!~x^QKYlEuUfHmv4f_RS)=S%emlKCJLrde)K=DB$kgFJ ztv62!C`k%YYyZ9tH@U-ikOeSui$!)Bvt$?T$z^3FhRu~tIgHBkw%s<)R^#;=8BOeYg-hk_b6qoB?;S3$X_lq&b8ReP+ZC)h4V>K2uWY_`5gGlU$|fvQ?vUVqUSIv8 z7R!@rP%aOm6uCYvh+IX7m?J?I*K6y^?)HhfLu9AeGHO9JoR@NvIZk`G0OR^q7qWW9 zEik`HG4+xZwCY1XnUlJGMcwtzkS!GlE9H&MCpv?_2haB)Slgti5=_4*2 z57bBgLob}RCifU<49zp{$(jG%#&qmNWg(oz{;}WUnAjviGdu47)xUF=5aCh--fl_Im^N_vb(1;MZRB zWw{`YB5CRWG76F8Y8*4&UL>f8#%59}0024&awsJ~M}odi?1E_2IOx zU3ko0guN#j{k%Scl$b?MMACmIlO^auwuvkIn11pC<@4JVs%rYY{>B+=OLS+gAapRo zzBVur3FpCI^}k&B{ME#|I<#*+{fcCVG?W{ z-=TT|zCqG>gGL2=X&AmlXEq=JMH_W|PvEQ6}S$9nZHLjbP zKR<1f*e<)s4HPvoK1(978zoqUs%Dg=sp`zU6(F=PHV@8;E{!g!G|86al>Un`ONx^% zVw1PIB$@^)x&!!O{r<%GZ)F8}#FY6ypGG3>FtI_vs4yZQTy=@z}30v1~zIRK; z*?PHecqRvqs`N<>Gy9g4f}L#K$UrmdBo`^*qv&IhSeW(}hK{bXc-YX_=P?TDPQlV} zC({Tu=hgaBkb_s+{e^E`Etn+JLEM*d@?niU)5ps&H6Xkl9>EkpHt(e=G zCPt|5qzHhavMoNWRv2R6Glb!KXheX25kR`m#U2jKs#Y>v*-PR^j6 zl(Y9M-Sg@2;#|QDV;ecRW9}>sxuFt;^Z2pIoa-N2w6626yZ&s&x2_vg3(E^|_f-Nj z-7A?ITJ@fFOC{9(Rb@1&%~w7z0rzGX#IJ8Yrk7H!n>wqKsg?69{fD1|FmxOA zfK2P@3;4W>jU3G8RI%L_;2Y_wgvH8_n}L;g#F*Zo_`DvPV&z?JP{%6%c9eG3FfyTD zR8Ej31_t~W_uzLA8Hh1~8w|X=*0hFeGYeOUS;~Pcn<%P^i|@mATBf2V5!?YASHS#S z#S{+$n|x9KWXcN+IFSSSR1oXosD6rae*|%6t9V!-(8cQzXsh)oxmYVen+0fSaP zO*}m5P+OWTh9(Tvmaa#`N7GiVEOuuswm3Ix+W)ftFB4342E}D~F|Mqt<-*#wjif+c zGRJ1p@Qk&0Da&tGjv$=q9I&F!_ALCqA~&=F=9QYd*+!^M9hJ4<7|8F;gc`gHxbMiqf7ysrV55Z!rj^6bO7mn56g zQu)7ClCvc$eZm^#+ zm{S()zdDiIEl{Mff#FhMRMN>w9xHLw-?hXZV%+(W45D}j)7fkEjYg?t(jqMsP;Xq7 z+waD`<>;xUe81>X7s{FL2B4?WvrLmVIkeX-2`HCls{U+4StQ$dkH1dTQ^hlsYI*h2 z)6GeyZPMM`!MgoGxN)uvNa5n*;=Fz?`k>K^Y@E3f{XZt~od(R&Z@V*fi%0a|O;B## zcH?&=&^514X!qZH3`d;$yQzvK6dIAe6ZD&YNjke&b+;2%{bJ5PArq9nBc5QEuDV0sy)zuH6mJ1_ z*C`4j5=03zc<(ze5x&TKVvN70iTV%SaTx$QW->iqZzvQgWjXk-}t$B1^H7|X;u5#}G# z?is>O@o3*{+Z-dKUnVZ=dxzLAOCn3!F7i_GKv6%`+2T&6rJZJrmq+zI)BY&xJ;AKO zLu)g2oohs!+}utv)y-qJWRtN)$`!yv;HeH!3@iJuz(eup`RA1SW zEt&ec0lQI;FDJPv5)wmq+#%j_M>e))QKaw!#iZrP9g&ry{f=z;k+4I}N||M8EupTo zM3RL40^~uud(74cLRND3TD$g+m?du)*DrQO3%J4}OKMF2!?dl>YRpbny1BAQXo>Kt z#J!GH%lsylm&f(?3${L{F;_0aH)Oudeg*1&j%x#HZ@+0^4pI}U5SBr%7}5W5!InHK z4vXX$&oXL;{{}S~@bYp_Qr9EEDw#Ecxr^%&#qH&=8XL8T znyzC!0!7d2PmEiJD4%}oIQtc*ksA>A?hKpzUP)VqUeqT?P4Gp*zlwFYFShvp6e)@> zi<(fn%x%qUVF{TUsOIjNeqt*7?B3<^XsED1;08?#Tw!EL#Qg<#VdTOLm->}{hse!2>394h0ncl^k`X$2Et()sM>rEVkQglX8kl+~(X=WULd`7&+y z@B7bR)_;>qz1Q`Eu}i&Aj9*@jl#$Hhh8R;@lBQg$K+Nu>=#3nOFyzb%)tPxw|M?h= zBt;Eu;SEFWmCVfdydg_p=i%pcz*fFvbcE&6*qAj*}1yjZKn){uC<;TeTpPq;E z-08Cd%BwiT`jdD~qe_xzKJh)Jo?+swgxo6@ULhEAYRP`8 zB}15T!_y??GAK7AH4>X$Ln7t3e#6ap8<0*tF)ARBMwt>Nlf7=T88#TQ$#)EVep6~5 zKBHvRZ0G{S^S}0U4!(SlgGJZgaP9JIg~hkre4|jcY(BD@OpGw4%6z$Mnb3UGB4O*c zj&)zYV(aGEH@>lMGwx&4!OQe0=>xK7N=$c=#`N#o;95c%o5*R!|Bi~rT*VrZ1T~{U z*cBEiFFXw?F#P(2eeyJ}*Fxp3_D91!&IF{h0Sxp_P^#gHFua=!x5S`^X7gjCJ~Pb! zwQ9Q9pUfQ20WSXk@%1KfZCuyF_#N#Mivy&=(7C&GJPk`s>f$64TzxI?}1$)Xjp}*AL~v|dFvA8S4}qUK{bEE9djiL8CHDmseI20?Y|%w{q3~JZq}j~|G(wsf@90ey=zwW z&K#5m-0*k-ro>yUvYa=IHNIl;c^Cbbqd>)4sQqp`sVh`-7TgKAv1eYR_R>^ z+Y+D4`AcOhy}2@!F>w8o%kubAvdfi9iTS4~o%*zq%kpDOs+fku=LpqYM0`2eXRR8X zu)Z>cNBV3r*m= zg`R;|b?Dp{_Ikdf*1@!ch4lV$r_GK|%LCU?iE8GPMMtQ1bn8UlI7M#}+#zfW)`d}p z3iFG&3blv3sRp*&-KpwjH-xs3a^o7Ro_)k!fxLC7*S684sOKn3BTs|afZR| z)M>Y!-R>9}EN0IPI=QaUtbB2qu z`8nvGA2>Q$di-i5%*a8plKTcWMBT`?gZ%T3KOlOkZDW47gKXc^8MQG!Yq39!yb*y6 z`3cleyFFA*w-0pc{pSwv?G2&w0kIeOH&Nc77!LG+-tL>Ipn9UkyCz+x^MgzuS4SKr zUw>=48Vo&r7vgfZiaQ=sHBB$j|3)`YZ!`4X$Sbq;EK$nB{m-2)N)VzNSSHT-xYO$Uo z=q@3nuZugqkFa;g42cfwQ$;wJP&*S{BASUR`NDNd1iLSiDx#9E7^=qj^P_81!8dQe zp2PP&wK#P-`TT|iD(U9RkTamon+m=g#C0I;aSZo-(a!kTom0K673kwPAHbZcUcr1% z8&J>y+X_Fwf%{sB_>MWbXR%k|#wM|ga|O#8b8#PsZ7$|99LWkCc7Q#36ZaDHr0dnh z7QTWboQP^+PrEDGRt~ARv-wKpcJ1_5#qQ~jA#q0Xa0IheU;{q3dyfn5dsu@jeq-2L zO26Uua9i^Bf!&F{w;ROm+#QS#?5{GHO57LFG$JXr5$D%`63;>9(rM45X*e$%p}~XH zzB}(eh?7f{)RViD8J)p919yDs&mKH*`#t+^yW`;9)ScL;Z7-*);fq7K74dzC5DE#) z%QdL+(2d+9uI`vA{#n4KeA33%Q2Mgo|cplpzA2HYlK@VsoM6)i~SI|VdV|XomTqSkKwoUd3ctz>r zy#XBAzxxWt@056#;Ne(5`@}G=2=jNxCsMN!J zKX6RRTYW;RR-!WK+=%1~b?)h(M5XsUa?cRsIZ~_zz2_l+$M|pk+rrtXyU{Leud^dx zNI!FB9^>lAop%k@?lJfY%JGonk!G#|9Xrx0^^E@zFvkgUV}sbF#Q$qWe1fGW&OE8M zSH8KP4h$HHVbIG|bcVY(RF2lywuNx?4a-YJpS^GK_uUqsli%lS1eh}r((Lh&pus4@8H@8O3qlA z{s<~7dL$ohsLS82wh50kj+RX98mdHITVZ&sTObW}J>jCU&W7qS!v;)?m!-9|k=Q~$ zK;!f7Rcs??aBO4^^(CANwXn_XW_A-xpw{t5ZheS2Sf$Wy+h|H65k&O&QPs^+z(b-I zl^g~RTZ|~Fgil2&$SUDF14LQx#H4fEggbg`e#cmE)Hl`<^-W%O`X+qQj!|4~U>jWh zzLN&+p#$4G=Tp(P$VNWZ-{mi%+afm)G=)rV6YT=|iYf?k6W<)dzc=$Op}YXD{rpYQ zTaRo#{NpZMhjiQPAkldXQcK%}3}itqQW5fnZEjSN8sBSsd;q91jQ!ZIXt4|LJLW0x zil~^d_l_A8Tkk~lBRlguM(a^W?0qH5 zXhlytvE7Hx*TcQrCR=0qASq~fDym1`dOS013;f#~j0bo3Q~A?TyMM=2i_jd=&)l(~ zlU6@BEFl;lWBM@YOWmiF*9|kaxs8JEwM~&M_omU!g2}x(jO=&Ds};`Q7Fo~h;@*0q zwg+gwNkFexUMb=ldBe=z^N8-^G&AcKS7iheKX`lVWLIoT=`U5t*>6D_f;MWLB(4E% zMVgt6#bR{bO6Ko{xAA@Y`1RcBz;=*FDzTEY-^$$Dubh1Uh-6kj&RF(@*Xea zWpCoz*lpv1A`10{ylxxFY!6H9H9UxWBY3%o$#wYDg+Ak4K8O7k-r#n@>@tZ*nO8wd zyFgy`hC4Xi;Q>|X#BH3)-Vp7H{po^gMl;vOz05f19=9iO57`R3Uej9*4YlZK@J!Gb zA)UQInJRe7AetC6ST&MZLYa5jm?N%4+);bN_1+u3TqW;yZWdI|&0!zsb#CGb=cZ6A za6N0HA$ltKQP3x3I6?M0asIkm+^@*gyAC^=e&+hy8!1vH*DJW3oB0gq=8%tXcW&Yg z&P{AXbeU@54Ng~4Pwb?tFS2zqU8K-99G46xR|W z_5;7&(9YsDcJb=B{8y4NEJR+aku~f}L3zw;cbdsFwz&qe|la)m(ei_k%7hgRcJ{b;^B3B~&l#0N!7*_d92?^>cr`J6O$&wFZ}2 z>VG1=kJiPHx zz=l1-1k)vi27@+&!F90vIPYja(C+8*4YM8v%c*z;<=E9`w_fPwU=}*^EVXxVuNtM` zzD<=zknwKA89nLlG~jCl80w$L?Hqx&*Q(JC^-k_H`De>53g7fbdIYNyYjG;E92{+F z7F@j<5`o%6Lwm606Qi9`3cVwLzDyu{qyq@6P54ZHVi`Z%9n3%*0AGF4Z;8pdqz8LK zspr;%-hn-yxLUMIsl(EtoPp>OlPmC!W&tiM(%xPp7{ybr8bK%42+jb^)=t3RbMY?j z<-s6rlo%SQ0PfPn`}m{5ZtKWUfIjK}B*=Jr$GtJF-^slrPc8RxwE!W*Y$fWA^>FRM z?|Kc+dLhG=FCse`UkBJ=7&xuZinl7fV2#+a;^+SQ+Eq4JFCj6^lpj^96MbABXwyHM z?`|X-+PQ~aTPKnD?&TJ)FH$O1b7X&e(1f-FmEltg#7ypTW{Rp<$geH#ieBt{HqaY% z!*^XeboM8gQ3Zu%qd0ZhX$!gA!3tUnwALItcG<~|IJ#m^u-T_}CwUklF3aDV$GQh` zo|w@scX8ExJK0=Y7^3-^S~^6ay4oK2SzDVKayoLrlDBbHESmXvxk6CYX^_P^=GquP ztiwILG=PDvVQ)-*&c_?~fNf$st#d>*=U9*onS0Frtt_fmDZZlCNmLC#L#U=#ypeMk zE>mh}EpQ-Xz;sAhsTTfi*vYHX4=Ru-OD1HgyCh-iu8ZXfB|OY@Va+(kh0I-lDp9B~mB;5R#h^7feeyC1`6 z8IWduxJ>l$XM%3)?}vU%4I>NNG+E!h+TVk)btv@Lv}B3k81rs`~dCId37%#kI7;_QLc-lgQ|3MnVpcpWsdJ)?d9?roR!}_0{$9^e{ zD_-8Gz^HH$pT)&oXvCn3mf(=aVh`VOQ$wNql>J0Aww8E{GW@SJ>)|>$M_mMRktY0v1_TyaFv#WK;u| zb{d-<%a#h&2Zm(Sj=-UvqIV9pgUFK)6G3FHt6~!$!G%}B|e!CbNJ=rdd|5* zsX3wpSLFfA?0xT{4qbeNa`a=!o&v~PHvATL5c4#9?7 z9dcoBwqGNax@|37K50k!ym7{~Oh(`@c)x<5G~vWuEpZK5`@pxs#`}T2Fm7qg0=}09 z7+xeMyJWOPH*)Gc4~%OLzay7iBN_1Ez|i8RIZP&u3j^EBfqz{eSdZgRqs~dm`>uj%X*fud6ato`Qgvy#bpYu=hsfu zq4X%G@bpDy1+t{r!J!q{{s3UB2iSH9W(B(J*Py%AkRQo&whzDTUk`Tdoc!n#vagMO z3E>W|LV@t)LMzU&QM&xK3dWgRmXdqg3VV9*QVU0sE$k|!9V?J_0HnRK0)TaK+|oo! zYdM@V@g=0S3Z%2bl|X%WEWpZO#LwmMGSSd7=8fs4djk%I<~48Sb6G$;B(DXyX9L_5 z*KX%KCQ*4A*v=)~EAsaiT9p$Q`19cfj7P63>+9}rQK}^-cYr}zJmK#93gqhn^2Tqh zX5e7RxA4RY?DG_^|Inp2?le=xw+}p~D?QuA4L`94>?Pb`)iXI0++zI=N9!M= zF}G+I@M`o6n3p(^V-i<=os}O~`bkkr@2FOIuRQ+`mmGXENI4Ymy@b0qgRX#k1=)4t zdb%C7J(E*a@p-(JZH*2->ES+?hnHK}+nz+#_Gp=i$_^k3ZFjWAPCSYGp|nPJGQutU z7*t#}GKOnJH)5~VYywFnvPWC^yGR_PLmIVZ2==pCct?I=o@i?2wmkVW*Pj!N2iEK_ zRA%oGTrj(-d73FxGLw*~zJwvuk<3k6fy~^+np7>W(nA-J`FXFKw5WVtnH}4a8Zi@O z3<130&MRHfQU*r{9ejrW2#v~G*=C_0U~}I*w$X+`il4h^zjHP6Mxc>>7~a3Xh~Zs9 zx3C*S&RxSuQ;2hHQT&OEsMv;HkptJhe-Y7Uuz0??w4PlLd(;{0n)*`>N{fL>K2|TG?Vwlea$B-B>v3IOGGnq!nx@L#-YCLN0lqXzp(EHlnJJ zKu2DODF(E<)UYAkdNv0YaX_&!*VMDC8buO&Jpjkl(Rbvm`BKS?D@jwR9LFWn#r2@s zsf)9ms!F}s8NfB&wMZ>tdBD%5Ay4$FV2}0q(4HqTb?w8W0H2we!*RUNLY7ZVi#|ZW=i45Uf0;8X+Vc1To&MF?xG5naIO5J zd}_8;85>DmyrUJLJ~*4eeZes08^j8}3hXuy*BW_WZkg-i^Vr9pSOXTdn#O-xN*#_+07wm`21FH4%T! zZ-Q0l@`wG2&TPz;{HR3Z$3F35v?MRg<62D}VjEysz?1P(KGz)1B=NU(5zUNlHo1GJ zb>vvXS$lMQLksTRwV@RxE$+a$x|6kMaSe<;9)r;FYlTK5pUb9syc^YY2k2y}3XZOu zs{rnaPn`Hz;0-pHyMuph-^dqyxh3YA6r`4zBw;Nf9d;>8FvBjT%(cXtBR`Wy7;Lec z#!O$KX0?dv`|~)G)W|nF@T5bjkubkJU$6> z!x2%sZP4tfNS!vWAgMVUw2Q2Cz+aB9;MKkqF{CZiGm3X;KmI6?%YkqoDrWmpei7 zmJkvxEQyGjP1jm^qV_6-&-zbYzKuGKns|#~>c$-$zN!3`D`+Hq9od@rl(4BgFWHHM zI^!?lF3FkmAX#I$Zx)776~eiyH8|1?GuJA8sIHfgHu5Vaio{F} zvdvtOb#MVT=?N%LwD9SLsH7C-q2=0NY&ALYn~gg|uH5*ZaR zFtc;2m7SG~=DN6-m{x99&YQzy)kahemL|-L{+s}RH+1Qaz?r?_SM7nt&?pLRh;uS2^pZ5=dD2Rr;B+A&753p-~(&DU9?U(Yx8Hao!j#=%5R>bCpaG$fcWy`XK?TWm)&jA=; zhj!g@7wHK#^1euy`*kt{8EQL1p@1Vq(7w>C`qmK5xI%=zC5+CGN)2^u!-(3(_Ofkk zGh4!X$6dVoRqVf77e96Xu)gGM1498%q~dEi6|?iFYP$R$2C!-%gnxb`G#E}=YxgbN zzk^TM_Th@yiUo%`dJS+&T*LXA{JX^x)`2?s&BCULe&*=~WZy2%1PDZJ^u;RBQKvg% z&96k4oWMlS=c6`zYZP6uAfIr=iK|2@lKFfFTt^qu!16WfQsRhk@FuW$Q~E17t7FUY zpUe9{^l@#h9c=^6lSaKlhSG(uAijQl;~0)XHOGQhSCmFgVcm>l8N+``KDtcpIe|Rg zSc^8e0SyCJ*5n+P-l083t-JwE zwf71px69eW5qr1nZ5yv}_J+3!K4*$^+o;pg!dB1@Zf(f5tBr1}Aj2qOLKzx^#mkZ$ z0g@A>6QVZzI296{?&xj#SC!hxD%8uVoW9r-PFzP8ov#AhT;sI34_I+^*E&Shf~%X$U&&?ydOWZjA|J>mSx{!sMM)T2nkix#mLwK#_W@V@Il$}lmEZP_= zcV;NNSjRL2<+eq3qBFg5CNt2-otCMkQulfuD9XJ)gzN%7_ahQaGlzn05!{80sBarh z?&7I8FueOBEqn!N5}_Nv+o3|#CSR-^g_N1Sqr_OsQ7=e)U-aRXNJ}x=CS*BN+}Qit z936zW--1SZd1MRTq>PQnBOG3^j{iI11+7DyXr8o5N#EJ+(~js`-oMLfZ=NI*U~3~p zA7D~YTYXlq3)Khjy5Tz=vF^3P)4R4>RSst@@4{ZazrvlvWEPZTq>>b>c5Gv-DGGFxmNCz`;cN}(Vv>0QkR(L_f!&m>TWY(K$oIivAj$iY#C6lP8FSbT30!!hIS=>bqdvSWhvRpI^ zTvOu`dV++zX9%C|z!m(B;?|;<4=&Rg&c~2TIo+|NUnRX1yute0p_<793@X7MqHX@~ z`~To?<}1;noI2-XJ-~|?Psf-Bbb}(W7Chsa3x=+ZP;|ee(1u3pd|{%zH)c%a3R~Sz z?-R(3;)L5=dak!ORunA}aP;IN6W)u@gxMq8>%ZarF^YF@@15yrP5jabCbg!;EJh-Yj5=jQbLm!h6?U+a{O~ z{S9o{jQu`N!w^+lC-sS3eh@}U_W3Q3Jl+d3KZfo0H*r0_=QY3V<2<}6zPre)$o(vo zEBM?+LKxm#78~LpO2SWoTp{co+q3(X? zCc*6dFIyNL>vnT>QB^@sr2Y5xXw)e=Nw*C+z@HSl$EW`5k=p4U1s+u4i!{Mr_J&I6 zqR`C)ojUzF?Aty%fatIeoiiW}%ALp?vxA*9w5&qqTshLInqnt={)2iLHHRyD4Dij4 z> ziF>Z(qr0z|Q8gVHXaIY&OUNY66ye$!-^lg{t7BrL-Q^PtpYU)m?ICJk+I_HAhx=8HU)cM9e0G4`YK9MSN=X}vCPV2A)w?BNVE+1FCQ0`W%F zei!!gf$d_Lshw|CM)5_6rk}h162D#Ah@~t^1YJR27<($#(5M9K`^A9iNk1p%CfLjQ zwtRAa)pJtfO`|jVXp}RZb+gu{a#lns7ZG2Q?_R(WnkD(p1?=x97*A9RZn3^I1oIF| zPUADm+l01J!^~gjeC(7f*&FY3dHr%LXugcc7t{LJDn8e@<%9EtEou33OV}2pkOO$l z=klk^*q5qNe5rqu{9ehX zYaR1G-T<7{@QxBb>+K6+V@JH|LAAapboZ z|2yvhTL8}{lQ$h|p_5$@=9QVPdYQVrN19qEQ1y4j-vgC30i@Tn*j_O7Z)8ijPS8b& zmMPf5^!~k8bCu}=K}|XT{5bB!gFXL-nR^y|5tZbComIz)7NY9vg?_0;!Pv6+MxNN1 zN^JxSdc9KF%E@4@p;f6*))C2DvC94%pY2sFGj3ly>1EckBaD}QjWHg=m`$R!f*02O z;#?z*?f13eEcBi{Fy{qbo)R6*X~xT+@vog6nAkZnLGL_S!quY>fm4CKJcvDhApi4J zwJ!~l!2J+EDqrM@3m)z>Ik5=ZHcwDqRzGpr&5xxgO%r)xD5sxIfRi(dy+0^GP5pQFV6!?SB! z!!85n3G`eGi=Sxa@e}u6YY}jU_^PeCUg6QV=aXakl)d1M- zwt(lM;?11FzX`bh3EG)&;?rs3;rl!FYtJH__jj@_+&boqcKxC2W#8ZZ zZjEl8^m3<}UCQd(l-234simp=ap$WSM55Wzh_ev4VT-l0LBuQl^$KrTr9Z-kA;ivl zIAW${HkpgKHqpi3aK{Ol!((f*<0pde1$!sG|Cs~(Snu9Ci7Hd#IIqyd;rIR5!fIwA zeiq)>@UUw-(aRf{&8(N%#MW@bfvzYuRLl_@irGT0+fm3?!OtqTE=DxAbC0G*@?6qFGyhU;(Zh;vKwx!L6P$CsDn|C;TJ*01If z^UnN%IED6|nt2gNVY~Q6IkFsW!A$VU6IkH!0lj+?ItNa<+}SBLxMn@Oh=zd0V(A(k5iN zdq!QtQ%)C--NIFu(94;@4lvBr?`(2sD>dcfawmQcEy?Kp%f zOR3ce958(}GhD=(K>lQno8##muJWA0sRBfWF+osiN_S%i?Lel;C3#}G9Dzo_J<4PN zUZkm7L{tpA97)@mSr+KX1!1-rGsu`4yTIbKN7YhZrm;IFx;yR z8AxdeKcSIUp0sJh_!+m=D2)2e!Z2y@8@ZSLsCvy<&S*}8s3=LG5;70ZW(a1}h;mT2 zP>e3g+m`E44a$iS4Nti~jB7^MM9q=`Y(?V+qBMJ4Wlw!0tvo$u64m9JQICkIY*r&_ zM$=;kzD-JxrI(k9spTcOlZc&;qw2L{DwWM+-)8C`EdVz|%hN6mOP()8X}qP(ff%=$ z96pLOJUwor@oN5v4@pF$W%7rvza`d0b7FcaeOxnIh*au1$?Mr@Z8at)P z0W5)t4YeyB+cU-OfX!JFzEhSrFX^Qo2HO}EG7090VP<&Vz~@8;rPWBsnkYegY^we3 z{xtruACG0`our=i7NxQyO(_#Zc}qe~{nm}jvd6PIwIhpV+!^>pO+N*)b$Bt8P2-01 za`>Zpsr-{J-Fdtp4YUP!yN+m;niGx6Ul?2daVeX7$V#CsK2!Ka&RI(NKb%V*wz+yO zEku)EV4R&xl?d+_s{SfweibjbF5y+0khf@&&I+a3 z(Vu@Y?L>zh&5;p3c&yOqklpF4xjIbe^+NTD1BTT3&1=xL!ZgN zo6lz3^U`CCCoP1}V!|u{j+f-TB?G6k*DKM=fG1lp`PGFwuEScSL?bWB#-&=O5p|Y5 z_C-W*3RZ|{Vlazu-_Lk*U{%A4^_C5zeY{xC;5%{Gw>8o9*q1RtGoO3{RafKFpmYvc zDD8eN>=o9TGK4hP)493YY3V^De?y=KFk+`jY>-yY>{E(W=j=~q`#{3A$I~j1*gkFi z!tyl3Y%j^rEtbRc81F7ifB$Spza%BUYn=Z3@7nuorWp^+(0>@l(FvF2Cl^)INzX2p z3UCe9_VD5?yjvZYCETg41)k8r6K4Lat1!&`VD1y3e8Q2+N<+^8?9%}D#`#S4aNbs{ zfiu`sLYv~*;UwI2oXd)R+!(KnVZ-Ppxp&dFQX5LIc)5@7I|`7?0Lb<1H-Xj%6bySu zt?b?AMaE-L;1ACW82)uir2)d8`9IFc8zrng-AY@yK%p9ko+YSuRZ1w8b*j}YqR+VV*oOcEQAPf^aSX+67j>cf1`SxmBaR%l2BkKo zO_(G#r*)zDo6|`P1V>a~nT}8Q6m?VSU_}`D6!Nd$JklJhr;WtT{TU$>Us}6dlIqMJ zB?ri{W3DyfHF1X$kI0Fj_=^&@r?Z8g{yd?_`54M)T;0z}8YL#7xfcq zh=F}~22*&0OBWpyK`#j6n2S-Dyz}OB8Ii=}s1kqni8rHR#<{D+u8ZD~z;PDXRj`~a ztd=_sydalFCAl2Rv+yQnRn8YGRCUWjB_bN0cKt1`1sk3u35Qw8I&@~pqWGqAfwoDy zfYMdsh%ze92icJeT%rwZ$7Fw4&}k+OaSP>l=YxiBfc-J?_t&=Xe-&(#Y(AwwIYt`r zuzc>4T)dDwwgQdG?5JME&=_2SMIFEbKULh1Ek#@ZNiQ{E=8cE;dF=jtu&yu3ngxdv z5&L21-~guEAFp`C;=Q?`3#}2$SMX&LpNGWOL$bmK(AEiswo0iC9@jy*{T$xSY$2oH zOcLe(M4FJPc+pZtHEmR7M{e%Vi`)z|%83*(zHZ##;>JWOmCJhFzqf@!$_V}0WNJ%3 z$lOj_W_WnuMr#hhbq_=6KE^dw;ugTJKe&5}`mI^)(=L?A;w>fH6!;kPEZk9l`Tb<{ zxGPPp04->*hw|e}_m|}Hd5X#8odc_5Nw`92oT$Y9)YVEM`HBzAvhk=tmxnpJ_mM;^ zQS;J;G){w%0@v(GgZLjniFd6)H3!z_>V65}THo&=QDuJ233@cRb(di?jrX!>K3lksLPTais<>ISqYVCrVA4zKpfO&i z&y%c^(z;CX7Zpsx=XEvy@6h=i{&smT1?Vyx?BSZr7~B8;`@hX)^SB0e8))3WhUZfh zoJ!u4PGf8`DS2PX@9@<$e6hd3R&t@)t|@ngkI!ihIi$$7H;@SQt_Zz zuufIhh^*ecDCM+_JPeeQ${|e?sj4FyNw85rN~B4d+%RJjO#Ahc9aqt?YZ4C2h#z0| z`Yp9YeJ=Nq>$!M-EOT;A6rdojiDFx!Td7Hm&fjpwD6m1`c(<##45XU*;atHNHSgZO ztU;HrXwWaNYETgVU43V@o`puKg=`j)a*i@JfpAQ=G+F1+FpHzA_?stiT|XEN_x2h& zWnQVfpbw|RCzbM(2&chMHQ1;cT*t9o1^Vdc^5(hKdbWC{nu6if@QcsO2d`GWu0fv+ zBlPp{BJ>gbMz62V$Aq+KnHq7}2UPZ)_)i!+lXCo*^7N7p-3EAF(Vx^zPtcgVd~23K zI_lSMoH6yWytqs#>)qkoLiKIAp__75_w{bsLV33LDuu%E`0d|C<=LVNh3h~+JcO!J z#NRxquQI%;E8TJPx2&%m{AZ-e+fnul^ur!Y9nO#XAc5%id%vvlhjVK^ew+BK1ppV8l@(71JWwNAr7ol0jPW(bO44g2+ABN;1Cc8ZwJClMXbT7Wz~UT~ncCcb{bMtd#Jl@`-Dy z{26>oCzhUYz>KaeXi+Nn5=gleump(WbglyFXT}#&!MYzlG_2E(tIjqeQ?yA+!}ahJ zrG>;~Ig<`j?BtRL?YCMQ)4)zspGQ?neL@jc875WO%4Z&CaD5I#+z8Se`ytd~I>=U+ z^|hhoj%)|%s|sI~qss&`#eQ6f?VKvm%08BBms9x>CSCCijMF#*tq!L|F3R6qzKg-! z=@WTqR-@Q@AaxVVbgdK1!70#RlXbPyL6W4z%3+T`l_wUkzJ@>j>Ke|R&`p|RX`%t> z9`h!x_--N2jL<0ZA)Q;6weW6pEzx8Ijp0#+MpQUYDQXZ=F@~nvpADFFQEp#Wv+1A* zEXyA(;T7T@4w_$PB#itY0+t3;imNib7NEgu{#gFul1U&Nh(;sd8GHih7STo_V?TcO zKbO=|RFwr9Jm1g(V8+wtSM?D)@SETC-ZiF7#@UC@)P6Gip}D z4F^?9%>ZJYB2>UtpJfdFI6EkLu0gHT@%RC)2JE;9^l=xXr(Sm35fS@X{YDWknby&-(BMb7OWfgl7`w=2)|2~?CVu*4}xSEFwG~$nC z$C5_SNx;W}l7DqgBN!Ur@e@rtWl#Q?z*YY`I(>beH@f@2Y;SuvweOz04^qtFy|+=f z9U9zyaPNK8op;>!#ev<`x_?C|4XN2GhGCAA*Mr`4*rgdI!c~9vqhS)C_c8#btD_ie zej_&kzd-hWz-ra=)GyP-QjoG#|CGz{W|z__Zpx+pvm1Z9MI+&^XovTJB)h(QgO`3z z9{!MUF#alr5T19b#tYu^0woUuytk0fmgA&a=y9tjJfySLYs1-Q&&j60X}D^#i6olU z+{3O#ap4R>ok+@D8On-Z#6LxV=hK-bsOes2TL zvcVaeD%j&>JropQ#T69BmcjQVB4l7REUurtLPH4+t}|AatiJf2S-T&1p42Gyy*^D4 zfZPA~yTA26?mqqhxO@BG-yJ&<#Mj-kQ$yv-r`B2f&|d>MBfchKXjHL*0FLD>%ahBc zlzQAg;MC*ZpyW9}_-Io1{I0VnBZ@(zW{LN46l7w0gO1K+kg z#UI$c@qEw$nx*6jcwA|4n!&Z@{&iXM(@GzK=a;EL|9wcGefC=cRFf-W?cb76jj6{Q zmFjS6;95^DE0Ar#wE;d$s3x`2U;v-JSeA+9GE~008jz^oxC3RtT5qGM{U2Sq1z?># zSE2#k`g8fc(28B0x>9S?`OBZIz$2ff_N-w~FPjB}T_y z_8Wk&P6y4Qa?p=5#xTC6CK?)%tuiliD5BGz#eJMm*-_W$K&drMrZ67dV;vpJ;Eng) zU2YsR#!py7Lps{L(j8qtnl9)iJ!R%mc{*saX&j>UAR~<^F& z$iLfiG86XZU67Br?Z(i197als;%cB-SSt}sFxt}#dNygNBu^1tlm%s;AY)->8o}gu zTZd?Tw^o_Q1IlL&Jo)GX{`=d?-}t%jF4#dEcw|{C5EU6b1&~f>O<##Bz?$HxJqzhv zISP7EX|_K#;`6h96DRs{b<#?-B#$lNKJ+>fOGn&82hXr~K~nSsJyq~m_1&*aubb!Qu4wY9L;-!C=nR!JntDrOFkk_ND;0L<0HNY!5-DPpKM2}vs` zBRZ|r7R&?=C1DRUcWk$rlZIBSnCC0{FV@JPlRtfL^3|{Q9Q(2>FK&VqxGmW`!p=*>{WND2G&qr3m{_iqWs-|GI|twKc$naW$N^F>^RuB)K)b z!H>^uuHiHe&|GRsA!UTvY&cD9vee?vxHy9d&HP}&ETpiX4%r!ezWs9<%@*)yhVr?C z_It#u!CEGrsU?ZpcZZU;u-odU3ppDy14chGPuOy~oQYb{67FBX{oHnnIZ>kO9}aXm;S(T_xW+Fa3inFI^F)+s zWZb0|!D@1FAVWEqJx-3IvUL+>6OYnmCv&-a^nu(5`nw(nS>gvSj{6B}ScQ9O_4sj* z!4Kr)vl>*y{bmTXanVANk$yKtK5~SpFPc`vsKeSt=Y$HCyo`(TWx!9E1K1)te9jn-6@HyNWe?90 zCX#ng%w1)EGng^P(U;O`FfNuWU#2pBqsZM z=;9L4g%xPbGgpl8IQMKIoho}?%sgHgEqNn(UNaqYHz5OdaA8)9lG%HBmU(dH<5@GC zte=&vm3L8ocUDIg@Wx$5QP5Fl%I5L~X}BLpI$MdpoL!cX2{iolSDv%L zJ&{?A&qO?JJV(0Mu8uR-R5ooqL;A{7aM#Fe8vFI<{&6;ST*vEU*hiJg66N|gzYdo> zXTO9Bp5N_%_ug;LQjCFbA9&B5^m65gHKIAP6>zFBY69y^vw}(H2*#zt=yAmcQ^r&( z6la0tY?)oHNSu5}i^nT9n*-?Bm9F`sl)yOw5b&TCgtcXbniRkK`AY zZ4tY`cu2siT{O1P%<%2gg?5x8d?ZgT=ivTAcC5i9BPvrX5f#Gb>P_NergE|(Eix^C zvXc8>G^rEwh4i{S9{WIX_J8djrFMZ0(|FN*0q5B5*agJ$0VnRHr%MqDZ9Rj9V^s0(K&|Vv=Lk+0xHF1;DYg_37DrFzjum?9%%nup$xT;+9<`XCv z=HGcUAz9$}9Ue`r(SMge>-fLR@x`Qn$o7SQ2-|$q@{Z*%JwzXYZLico^mX2N{ntE1 z2>qo?gMRZZ4f^h{G|0XEhVJb22m$ny0?^GTVy+ftzvnR_@bg8XtWFw`eU%1(T9jy!iLz7nq89hOuOZ@ydz7hT z3`oV#%1v`>p6S*I8p#3g{?|pY!qG9L<`{{raCy z8AfpqyI#o+`5`kx+52@Y*3NzbywE_Y*wbz!i~YPNHXG-PjHgVbj_nY0IMC>o9moOv zwIKEAv^=^*u-dWRR!#I-W`_A{HF|?W8%3~BhnKV{T{$aijC>@MODC=AQLOuB0(D~= zxNC`0{MROhvQ^?guT&f-{!Ti8E(`KOVBQ4Ii^uPR=j&noo~6~3{S?x|c%4hBQ5dnb z{TujH9ukYD^^gra(G}-`lukh>(X&8`SpPHvuE>!}$S3XP=6oqPTd z5yv*=n|nle(IxmM1$5Oi^t@6T;Gg@oW2kbUsM;`d5I^A{AL$QD5e8MJ#0>Fw6;1HL zc{MWdkNdAOXZ**QpD=%AzMSPB7FTCEGiUfpq(3>o7Z>kaiFIm1WI)ZPM4w_Lkf_Os zC-#tG=$%xmSspaMV*1vBId~MSOO-5q&k+ zA!Vh8J)X^{@}~J_CBCm^r6Jt2CYddo!X06Ljs09od_G;F=)H>uoO`|!vBtUB)AG>b z0mU1351riITNX`<9|50D0sd-pxsNH{#5de3;pN`c81~%~pnqxkPvynAQly{!ScydE zei4bruvoun5w5Oi`&iRY<8l1V6e(cb-ASmmDfbmG>NxDlvx&)GY^yyWN+f#_XZ{Qa zXlBHP-lF_dfB*NMum6qpXEc*K%LHk~`+imVt(mRfgR0+*Cp)-ddmQ%^N>8W@QAr_# zs$DL_DPOR2z#`Rh;4d+SeXg^r%nQHTDZ~7)e+8@vrHZiE? zqj-u`dcbjL%4Ldw#3cFHUzTeFsQgmA^nlWr$c8;S|GGGPC25DGg+Bel0;!?h16rGj zRw+6vLEA#`=?z<$V00lPgKU}MG@#R5);OvYas3%vL@i<&k0e{<7SIVF1#F@m<>793 zrqGM*;Y_j+y^*U88PLn}Lrb_mBZ{BA$PnvTilk^0`>ee8gDIkv)B|TP=Lj(0^U+p! z7(GRf5B@Zd*ytjOiq9@!ZF~*zsbUsvGJ9@x?WhLqW;_3^och-_<9d7&l+^LB-s!M8 z%F!Dch&Ym|oDDR>&te|MGx@{!5VS$1VU0@G)jQKE=wCY1IKr74%0q}sXRT}rYha65 z;MV1NEIJ>WZg8Zq>D(|fv)HF^ie-dIb{hMn;tx#Yp6wQP-FWYG*{HdA9d~-y4?78G zVTc|Z40dX?=S+6>`SQtiF`6Hm&Kk`RXHq#V4f@^jqlH2bi95b6%eB`mbarSRXm`tU z20i2cKL7V_ zNS|zUX8YF(nwc$21rZf0=8m|^CriUEZ)I|U72AsMyPIoSs%jTWC(s0F-L>i~km@SA-v1=1?xcm4b zy&(uIP30UU(gd~+lPJ|d+K0<03nEBESV+LN-!AB+L2n)+oJ(FKNuq)fQ9~vWofm6B zsede+yxVD?JmAcC8(M%)<0rpU8o9-psmshMjtH&?E>Mj`Z5evTbv0p&OuA^k^87*T zB+R4%;h)yYyNEnt2f0qry_S!&Ox<_*Q{0vQ3cgZ!&ws*S$d?~sjudcHM@qS=d!_>G z_{Rd~$vX6`{G$)10yKZP$HqPE$~#|%vZYj1B4jAN_t0BUNM}1uPQn>-{Vra_>czym*mtEo-gLAm+ z-bxuM8Z8N1*;MIQU4_mp=Z{_bc*;ltd|MQ&)>K=5?E3Hm1=g%hU|nm4|D7m9?_SQ~ z1EA&OxHmd~@$$MzK|Bkt6t2voK+wKbi2nO>8KO8V`}*b7cs6{CzY8gq?+mz3?OO-0 zWTW3+Zb13y&MT)qW&f7!6Nu1%E|*W_P?a|!TV=Q+T*K^R3`{B-WKOtGxp9tZTD)|W z3Lj@KF@Ppcd#Kh)xNXQ#hjIPM%L*Q&PQd&`oN6S2Ml%36a-)QJ?`6YeI#1LZx%ALs zmx%)ig_OGI;=pB8V-Zy~xrzNnd9iXt)n?ir-*s}Apy;9KLInbAsuuevs9$~**Gl&s z*Kz+YPt5XCo?r?a0qZRyj;m9o33jj)8D9PM?t%yHCF&jCk^%P~rXX+U9<{&QL2UXc zUWIP+Y9bilhU=etBHyWU9#!CI5{l#XR0FDSz!g6VMO@1>Kh6e>yeYi3D1@B-A2Ag_ z-skzTpYiv3%}%?2xYz-Dwr1wowU2-oVy~}?qW0%bngraj55w6b=1@7P?xtf;3>TBG zwD@(!7yF)LO3|lG<*j>ftwPR*>l#so`>oulR!U(;U8;D!O;!AKpGg?j+Rt4_;g!L> zMCv9JbHrs5isGoaa^C8y>CbV=N+Jd39yI()rCeZB%E$z-g z($YBD9fy)YDPU-+l91Tnxl)qSef;uMJenEZ=eg(n&%Ng{*{W;ezNJRw{oFx?w5Mri zXqAvyCiW%Ddcs*9TbXDSU!ZG_4e{lX!hwBMk1GL*lGv`04lY-Vo@>^_71{H?>Q zNInWed!PS8VH@m0=Ke3-^TlH7U`RZBIgYyyz)z*fDHK(RzDtFx<|uM1;jc!#2^l&a z;fc@oyB8r_hVq_{6O2n0&J7mkK&u8j#ID5Be`@wum-6?vP3XTsPCbdma|o7#W1TH` z(k-BTb-pxJl4Y$aDFdlZPc6q@T$vXA{) zn@I+Jh7_@#u!x2sdZOkS$)}-1R7yu2s;(#jwV7`bh6BI<@lvGyF+_u%4h zH9==R+NXCM?K9RK`!NnGD#au9jzXr8%9LF)yS{PIC-;!RTC=s_CG+kDO@67+4@Pb@P~ zibc1^%ZLa11~cleUtXQ!zJjf^D8qO~t6#-yy#`cSA(oe|A6jdaO0m1pX4}W=Sm`^m z^%mdA)^3uY>0SfYX7GQ$kSVzNoK@V#CGna%PCT^BXZ+Zg6Bp_0sV+5g0lw;t58js^38m@cinBbci(iW{N7tu-q?>-{v9d*V?TnsHtOMv___1~ zX$Cxr-!IhzOc>xY-y!9)vwA4S=ij|U58uJhGx!-=dztqbpp7waq*84$Iz=J|{StLG zO8&G9g7+e?w<;n3_{I{G=~%3AUKWNU`J0z$5r&CwN33)n<^C{7PRIMAhK0=e5^d`i zZ8O;grWdA`$loLRuBFpkpzQ;d*moSsw=MlO=Lgwkc%5gGJ2`#&+PMVkG>IfFkaI5l z7ovn_#LDlSO$V8?z|VcD?M1c@ZcyAtxf z1Z(?8$SFAXhg=m;!R;G#S`6uQe9PD;qrRu}@E$YpI^SQXCGJi_n{Fba(32EH>8R8; zewV%lwTgx0ks8SSERXRoc&*DkLP<8RMrq+_g=ih1*_JOSF>%_; zlx@5X5efC&f@;>HOn*G=qI}c{Fik+RW0Dg3`ubdYse6RvYyq-QHeibeef8MCd)_Uc zjZ=(XqF87%D1|*SF$Vvc|MXc}Obon>xaR!RMO^d2VsU@t2eWO$uP;${r%=i_^L2bL z6Bd|_%@e(ykqP2AOD+8Hd@yqza~S-SVOKO*H{nj-7H>)2oNQbFK7W-!Ej)L=1H3{* zs%auR8FqUF_b?S?bTQ#H4Waf(YbKC#E6XNhkvcUfx}hGm&f3Ld$>ZmFK3Z7gmHTTa zKwWdHJ9!mq*VMwwk8E1)MCJZ4&eK)X=EAl6(zA!pw`P}3HObN3w_MENz+e|jdM3&U zQ9vZK@Wt~XVHr6K3G0-^cuX?K6C;fi;Qvj$Hg`ZD6@2so+9kART@M~M{jA3)_^0Yq zwCY4^Sff>^gA9rOoa{%58mUQ_&$%`=_$#RIxga3J6aAwk!gB}s_i*{SDrn7CYj!X| zrB)Bjb*Ll34C@yd=6R196c$?HxL=TnpDSKj@NNH8NVLa80&89-MdHg+FPW%#s(_MF z&6Adita*mRs~rBX_~15gjkv2DBGqzKshRLkhQvl`Y;c+Q;$YdpEd#qpY+&nj#;Q{R zv2}$l48Qx4Muj3U!U{bU%BAmX&WYdg#drnObJa=@ADfPH4ke2J(@Ia0B9vFiZvVc@ zfKhw+U{L%~{{D}sg`b`?!&`J!%AF)RM7{DYd@SqbY)TaWrC zg8L%~H%j$#wbCwDXI+U7@x_7GHj5H#D^c1Dxup$C6uMT>p#8$yGMXZ`yvT*$P z>tuwC3Zi?l66tc;*_NyxBE^W#>Nhl!#hF@Iey&;c!GGkRS)>-C=R9(Y)HL0ig@y48 zpZ%U5Li=6A&G`18v}l+-0YyJ={&Gv$Bm1XF{FE@A&BOGNBkT z#E$(c*8HdZAC|Br(T8}aQ6m1!e|>Ut$pAsr(*1?3H`NzNv0+I@GR`L{H|hohP4cMAK5iZn9-^Yc{nT=w=v?6wTB5Dl z@2iEDFEm^@ylQE2X(`qK@TprarM3NQ^3nS*XAs!-1tz)ee&)X9Kk(a#ELp<$uelmP z=XYV(>Tu02<(FL~5lg9sZ=7W&>#$#UB||Q^6d7oe23?Nv$VloTDwevxwN0-wuI}-w ztUKO4(l>4 z6<&GsR6Go?ym5*VkMMLdC_b0paDiBV0Dl3w`LlV`1#&ij z`6;#VOOjPo{ne=^k#UV6RXO4#BbB*E8L375`6a%zlxNQ$expUYIoUKlv)&?fFwcXT z+Y?JjF1=O4>1r zyy-;$d`U__(ZB#@L&VuAJcLru?5Y-SO9nEv8BfNWamWY8*Ltf`_0m$z%+)G)kK3hE z?k?4lu9mDs`)ID1faBlR29nVD3^e8*>)(w$=zvBo2mdtp;ao$yX}Tget5r-m(hw{c ziJildy!#^As|R(LR*^eB;1UmvB*qzES&DG%E^u{)!HOev{tqP5KKOJ$_oVJk*u~kz zhY26w;x}I(g~hymae<6L&OCQx-4kA>(EIcS>N=`5f1*X)nkXr(WwPSw=NfaM{7_rK zvYZ0(r+!MiFA0G_#tSH4B=6MInlR3WZHgNLQ(c;!hhf55|NI&wjj&shtGo<$|91Ld2X>U`W&!AG!A7 z7&Rcp2Sh{M3W3RJJGI;?KEnNM?z4rKcqRf9|DZLbYqS_J*DyIh>}DI%j6Yplmi9wg z?o=U04c?KTVM+cuh*ad@csn#rA2K-w`e+q2h^?A0S(h7#FU#GP9KdBsHQVNTaekhK z#;KO|kCIj|htM?lm$@*uI1CQ0gR~lXh{!U*gSEdZv^oro^fZZZROkVj#j1D%%GBCy zGwYRUHh^fuDef>GuA$gK$|FTsiuI)2C`}!5364drNU>hz*B&t-G)+6?ikun3@n|Qp zQl*-zEd6>3VrtR(9nA$NI#8+6Q61OmYVqrQIVqd)a_ouHL52xWRX1;KlhU zT-54CyDR65_lfv1iVu%?V43tHPlvnJK-!b(NrEq^HBJ(Z#-SZvwd1S~2v5^Nv;*3z z)HbmN`6;#V{@LhqstYA=^2J`4>|jU#aX0rz^~gQH;Gf{=lfB73?zhxNKszRI>4rmB}^UkUYU%qcmiQe+LAprqa1u?8*0W-rny2CTAw| z7TAyT=7HL&I?V%~!pu1{j4ZQEAX{6NVY1##Rn|LolJ!n{v(71kKs+d=zt0x(s<+lo zksJ-4=?*q9-OhUA(9|^DkTt5&u4t5skm&J0JmH)tEp*HuPSy$xESqk~9NZzk5CLuI|yzBT~XMU*_xp5#Dm}rB> z^bwvBAj$ESP(Rho-o&@CI65jclijB46d%qQmuSsWT5Glwyi*O+jBHOT3CDnaczM|H z>Mx?SubW*Sb8Iz3yEHK1m&)QDQjJ^{_d{L#;PWBr;NUW8evoJ_6w?|hQDTv%X|vKE zsTU1O*EKXV#!}i2rfE7Lu`Uuz_P_{I)l{RrT?>j@e%BI&Nv+0$jOpR)2~J5+8u`|m z{ns^ z!*c{LY)QJ@ZiyO@+?H{AWDL>5*!`A5+`FHWJ<%4OQeMDAcYI{Xitd;+g8lAEj=BlL zZA=sFLvT;(!Z33UP)a)FY++~8b5^hQD5p_9}~ZyKfOertexLl2O(V>vBCV?THc&{<&+yjQ_W!M zSSDApFY}gUY$7-ez8pua*Nkc`_xqu5ZJ`~ z6tQ}Wr71u7B8BUS9LR29f9Q%zjbtxgYn9g}b*;=q$MKiU9k3__bFQ2p>gD=5)3S-yUlAvi*9I&;S`G`D7-Q<|n5&$QqKL?+jsvVnifHyjd2xK6@7 zzJ`Qmgkx#VnL<9r_&1d@EQOTNUy*ho4KF`WqJc&Qi$af+eLB0}60c~|sg&=B`4daX z#WNLhpO^BDunkQf5l)yPD2?+k`}g$g;(Pk4vQgP7#YDXZ{((qBJ-`zmjg5*kg>#2A z6TPN2T$S0NltlV}7fpkoa4_~#Hp_;rSct&@N@XGUOf`7pv3NjUi*imteoRHKR-utl z%)NCC-ic-P>V}Q8bx_EwTL$8tBsMuIg)WR&6%;dqkn)=2wNpf^bAbCwi3RN-@*5S} zVp)q4l84)uNfuT@@ZrtO#ecam!?me6OYkpwATIB4T(-^glkqA#E(dk}TU`T()1msrl?IL4I&Jc|hKS|unR-cC+^sTD!##cj)E zk|n@guoJkk-=f73=T)8Yii}VX5e?rMy0Pw8gTcZX|9knXmZI2a;?ZhV^f(gbhzZV5 z>S1Mu?1wDf@a~g(_}hr;h%^#GP5%DMW)Q))-V9<-TzjVy3>48J_qE)+*3QbdbFpebC?85@$kpvsJ8N z>sf5sj*T)e+`g^OCyw%VciO#fn8a&ipChN~zgLTzDUA{(A~4wJN07Hc8{s&5)R1TM z``#gPDC&AE-o24pK`c^8PL@cTMLEpKk@S13zr1qoMwCH#O~t6K^;1=1RK_;uX!Q@b ze03$Iy@~%LMr|tgEGm(nT!~5Ie!@RIW!!7`M-1=|OxmEPt3Ez|vP>=`k$*;Qw0sk9&-4OTpf3 zG5_Z)+U{b0|00ii*@(L_6_E({fBpA9sZL%S?{>MTN(V;WmE%^_I_t6<kx0Y`AF30H}cnEKUzf&H7=ShM8j>Om7*L*2|P`7nDj-WAK#la zyKp5BhGly2RFWHD{Euy713O2aABf1$-|v=b)Zh2G+~d@UgqpK-|N3z=^2QA#(okdO z_|Wr%BZKmpqKqucOHlq@bD_>mq0amz6%~MNd4YQz;myNhA?Cb!;{zyXzY)G$HG?w> z8lq+%5JTTN*D6;ei6kP~DUNQW0uQv{do2dFvXGzR)D=I-7P1B=p^OwPw8Zr7BQEP4qlRi_*?TGeV!?EyM zwNWH_k8V~&l09aDWg^YK#_NVNT&o;c*Ci{qK+_E>6|C3jOSACr7ig%Px;?%%$+{mN zXcJ?2?{gQoVolwJ-IE<|dfYNHf@42&Kh@bvB4!U;fym0xRC!kwJLvrm882V=#${PI zi(?k?Pnnf(kT}p$1M-{vA9V1-TRLEIly$t!wMs|kS_n6BcMnD4-GkIn4RSwf@Uo|9 zXW^uwYj)wsv-!l^MgP?S{QVO*>S5?@9sK4Sm;Fj?fLx%(rRW4^7#gK;jgl(J?3-2H z^u1(PJYtzUl{7C0W+(iqKf`&5z8V@seKi8bU1Oct%|jyyEtj@%WNqVY(av~Pf?0>^0w$EaktAHq!v zwI3#Fv9RZl7@8LK^$?0c8|YKMg746MOM2N7*QfQ8A@1y?meU3AtoPV!RpK(z0ZfO<7A^7bkwi48Mz8nA2;NWCaW2 zbr0x8UECnjar%;1nki#Uy9z#F;G@FTMQ<~|6SfbY*MWYajm%_mz^6jUKk+>;qkSnpaO6;EwB~DPW^HkV3R}FPYaYn%g zm&aklk^y{J$NNe0?ckzLwt+#i#Z5T#hIr3%qeR8*yfH;^xcRx)v3?tlqhW%Uh(8;p z+<3+?NvzdMW-ogp(?UtkH~jg~J8@%|WqSGbDMr_3d~K<*i#^2A>Ok@)-ZyNXBB%da zGMpfuYgm;ZlJHv>xF&YUe?Y=Y5IfwxeLU1 zi@IW4x@(r?jia03Rg^8wWXB)-I6+PWoGJu;KsD-`3dsAl5P7b83vYG7r_IMr?Qtr0 zhZ$P`sP_0*$9K3!l6!b)Zc?lgow7)fVz=l8aR~KKrGFoU5pM+PP$TFv>-my99II2D zRpmh%D(S~{Bg2CCEQHGxoz%0>3f5kVwRF+AV)k)o=I%&B^Kli|f<`e%;vnm@m5H^9 zq7UZf^TOiTR08F%((Tt1yiN2Lx3ZFN;VeogY8h-&kJ7~!B|D^lQk`Jc^iYDDNSG^8 z{_APPpHx5!2F8aY_VRh^%Gg(f9{w{ww?v}0Q!1_@p6vDgXZ{ruB^$r*;3+=Le?MP$ zjsl7)B3V07S16?(SC18F;k)D4Bfc=R&x||c7LHNK7&S5s>+$*6gB+zC;HuRy|2$8$ zY+$I&3vtMNkpDW#W{UUeWI;b?Ap1f7E9WVhoMI9BsOn){3};a0jZDzYjF*$_>g4ou z0oOv|WYSM4;A}zGomM&-uC8+h9oWf!lOtY6dDXI2=cfv2=~2WS#1C*Wf7N;Q3>jY< zti!+v%?5S+!4eaF6d3y#X=dvuNx!CM^|(@qT@cYXnM;zRP6&zjtV$$;Q=x=@1{PMF z9rZ<6Iz_zhAzZHnrV$K2NBjChlo{m#!0w3ciXV4ck2A?^^Cbon2NGJsIt8tE zWjze>Yd7t#^Q|sdo&F8+Cx@PKt>aH6WN03e`yWe$G^vi{Y4EFU8l85p)}<`$&*N|L zRH|g}Zmx#-U+QVOLci8k;?&8z3o)s!C(9s4QSv%|t*iGT-!=)FhSv5UOn_Df7OBVo z?R5hK2L|+_Hb60nZ3ngy8&1>N|4zqyXDR53(J2b*V#d_y_LaO%*p<|4T%AoE-KIxr zL*hX9c)P(SuXXhVsLU@n-Ph}8OHw3S=krN(#+ufUzr)acepBusr&Aq|>c<}C%nBW)IxNy2loC44oYhJF8u_Nr znX}~dN+OUD+sxUg$8XTKCI#**>OxZFzO1h4 zDM78vqLPRRB!;O~Udjg-t+F`_;VpP~$99r6A{Oo~A7v=cuV8DF)UZKLadoOqdMWvQayQmit)i?LgGa|Whe~#K3v+RN_{?2I zPii5%6*g&Xd+&CFY4opD;K{!d)KmQ<@ z^hdi3du|pmXgnf07TSRU8?LwcgD7&RCs}}PAhzQ#`9URh0t7&&xN{8Ey;zwrCMH>bhbmNlHbEssV(p-U!7#8+SrDvX0{_v;&_ITOk}MmZF6cME-uOV9PWeXLI@K8itvA^SWPa$#nz{0@@x+I{ zWmzjr_M4DHYGu;G8cVK@)wk#rdy8H*2S8&2CAq-XvQ&q*HhGBaP&>gf^ywic>t!2I z4~WGHa%qHR+Wv8`RK}fCDy7=&`uMBKim5GqN!M6nZjG0vL)b5r?QE-Fef1&hy^Y|S zvTAP|vgK0>6{w{@**L|yP@}U>m*KNo#7VU&oVn;D+|N{xL`CXy?y35@D$yqIaM`SqGZxHlU&s^@V%ZglB0Lv*9k@( zOZ+T;Q^J-g6&=&(& zlqaCH%{#>au0#h6u;rqTCoxKI<wpt>=ns*nXQAmMqk*2 zW}o|sYR8stWg~De$uhz~#GYG?n5aVP!Fx_3!3x<&>L$qkkwcag2CRi=mhAeEJ=v=i zN45Q9qYBJef|+o}ZHX}0a}4V2IO{SQ-3u4WC5LR~d-(zO)OC(a7Lngnp zXF+-Sbn$oQp0b>twH4UTLr@B-`suKm)w{!q~E>b#X*JM zim$G#J!IK&gfCB7w)gnf#%bOuuzZEk$Fr^%?xEnOm?QOY(g?2QcEKFg3IEwsik}(* zn%x;sraHY$4KgHeo9}4-j7PZE_f$Uj_HxGH^T>|dC`Nds?~&RWuTVGBATSg2dmWD) z+zWngN3~4tXl3k$e8EN%S&;V&^)sLy;5~w6;#+$e5)G@-8Ya8crnw_EzsWyvv08o} z5qqgyl6~uOt%V_xx!~Bt3sxM2`MXf@)XpUA1?u=__{ZLib_Dd^E zv!1v+TL(-h(d}2N(C7l4L^LC60nWNny8oSm+(qu&Mfn^%?Sqvm$1cYfYoaWB>!?L~ ziR=O(U6iOnpM~U~GL=cXqveuSUOnmn;!OY%n@k-i+^N}DKK=eE@u<9zkA5^eS}E?( zZ5`CTY?K{wgKUrMe(n^_*Aq|tgBOk9&PF?2;!ciw1=_x?AR|%Uo%bN!l;=QwYu+x> zz_wHA&Zu4J)Tl1<{6FwH$wSwo{%+n)VhF|w{(WxVER_uRn&8;K%(sy?Zi@Q7;K|CH zI$$>6iNm_cL`MlpeFAhDC#d0=N^7qcs|Eiu|S zSfaN$PmR9V>qTAc?qw{-;F#VCzvXT|d&y$G5asNqzkT0N4iLhMzc zGCp<_gi~|(?SrP6az78jZ{3WXuG2gA1MV7y?wH{IGUwNx!9M$y`}aX}gW{|wr}C8o zjx|4iM-7&O9D=VxOnMwOj0VLc#`jf<8AR3ea%U&iwU>Kqj$}Ebg|eygoM*a3rrLp_ zrQO^=&DoGYC&o}ST>7j1s#`3+_x=z>u083NR@0_5+fL>X=K=XpRpv8CDapd?5n)xO zp4|t&%2Y{e0O)Hrd#M(7?mqtZP4qR_w~~yyAHLQC%(d?67#w67|GHW_-4670F^2_G zr)-Irq}}op#HyokrxNc}rt82n{hKpZX<+bD#zvKbfo;U!&K^B58rIWJ5={ga{b7tc9}AK z=Ab*}%6$6sU2YR|I3Dh=k~}gjT!$FEPKkY{r3d*zq*}I~3_s|~QlA(_Zc?Hw>(L<> zs&$oh=(J$33o+9RF1Hlzq+-hFM!4UQ{F>SF+=1Pw#yj1(sxRa}b?(3@j>(nLxcky* zyzmhj4IGQMYL!GU-aNn{KOrsXTrxr;Nrm;uyLyJKvN-ecxAlE^Ot6yn{{R?)3cYj{*O`=A4qlcF5&0=P05nfulQ9nE0AkH z_hytaAR=X479qNw#BB_SEZ^+{hH8c59rLu%v&AMH5zB?cBBIZjJ+*3v0((rCT5-q< z_6~Q(9K-b(Eftz(%u%xt1y@ur)a*AeH|=*!Bp%vff}{>Ulo+9anDf<-r%oXT_m#3IdH8gS0vxkj7mn<13RDsYf|uhIlji zCgIiZYT&0D6A!Vb@}r5Qjd-Lfl2(#+^S8~k`04v@&)kOm;_p-ICqUDZD-J=ZbVo=a z6hKZ9Ethg6mP_4<;7q0L%r51p&gr$w*PAcUP(1-ns1yCS_dZ3=aAx#l(DGTODh+LB zWz~#+ho3?jB|Vj=-)e((+N$rhjWx{}ceGPxu@vu~eUsq#@D9&@XycSxu})z0wK<=> zT&WX*YC2?gjqptB2;Y$E-tA4n?s@@2?r8;Lu3ntC&i>d~y+|mlq(E8zvwneQVw=2$ zdl&Mav&mI{*^=l%l&X(6h=HswzG{Zx+B-k;$#&EeNqZkhDy>6g?GfuzBiv8spwTx~ zovV_gofYE4s4e!NSv3PbYKL!%Vw_MT+fj-+vetxAT06?>`Ucl-V?ZxE5^EEw1cXB> zzC9KYbkm(+M=ll+cX7_+v9Z;4HPY_U`^J7T>XToE5Be8eEKgeILWHvFJULThpF6D> zHAgPmX~BBol|P)O#bUey3;!c&tw*O`XfRy+_^O2;KbgPny~C@9kglKq+U2;BL~Ct? z70Z2Fp5|yJ3_r>L<5IYAdR1`&7-m=FW}WZguEgM9cgAdh=p&TkYLEY>-V}N={tQ5X z&QQWn^S$S=J&JG3V|&wB>Qnj0-t=u@U`2EUOQyu1ZX-n^4K;PDtNo)Jp((0Te#_SH`nvn62sP)RxjrAU zf9j{&xjw)41W!%}|M6g%=+Q=e<1oh2>Z7Z_ywag9`OK^*Yd1lej#fSetzSKfd<*(}O}45aC(Q@9`X81Pr7RUEa76x-kJtwKzA>)Z@? z*9k8VZ3A;Q#Bck!JC9dMd%+=x+D_~Zj0Ndzm)87dxk9O z4MUFUZM-wSEz!waWM{lH(TUpEnzc@;Y6|t56Qy7emrhqo&dIV9SmzY6SRhuqeLchm zt7>Y7HODE*yo2D7@+p*US+iX7&`Tz>0>0Sb(_5(E!T8ggO_D9)$W;oc4YfakD8VX$ zOl7Myt2B>&B|W>`+fuM<+dqB%G2-3x?JhlR$InMg zKQWHt-(P?6vOnv>4R`E20?(X}y^%gQOes18N&wlaqn=knq7Gq_S zQ*m>WoDcZ+7SF(*)ttV8P1XKyZ?e67&noU`u<)a^PiQ5)86_{tyG#oloftBv?d-3& zT#IW3+5!sMT?%cFZlB>i>eeA6uFmR0c63N#QwI=lP8=)&&Ry{xN5V+ygf?mI{N zSiDa~wb3taA*)zd7=w4u8p(-g+ZPmC9HEJ)hknACYETT&*`*U$lwU1Mk>~yHEIBU- zDQ!rter4;HaKex)+6eQ7T!cT#!$p!aTc10vR%ktb2pUks{7L@h#c0A5A}d+HOXnNe zwQ`Vx6)|eFPFT5_l%T_zg@xof{dD_Y2BDu1OYFZ$^3noxU_cvS22CNOT&Iyfw!GMK z9Ab_&13P${@X+ zQw|RmG9oj~;GfQ1-me~;)uZmJ2XiMqRwhBJR5GQYsZF6L8i7hX!5q5pGbTjJ#!2g3 zjMt^^<@Hm0<49>)DISR%ry$axkmsc*I{5qeDsl$P-p+c!AX(TAY!i8-sa8P=d9AzG z#{E{MWL;C$D{Jeh9S&-h3&gFXh-Ad*h(U}d^y1cpg^6wg#2VB|d^Tdnw$r;^Q7YK| znW8T?v5|ul^z?n7u}7&+N_v!|_bE>=aDOSpm^VN7 zhZDg7Egs&;8g(Ll?4^ypM)NU>F>3k~)mSHo+#L{P_VACdQFFJTNl{A%d4 zNnoDjTGYqKM;p7iuo7(Ccjt0b&C$@%XNSCO72Ad5Sg)SKvOIHkswCOVn_b-xG5lhF z#f8F|UZf29piOJ!zr@q~sWgT2(au%_CAS(+9D}yws_qJ=A$wr7Kw`q8J|L86r+8W< z@qreIH7u6YtOS$Ha7*|D1qkB(8f7fRzc~g1CH;b@nri1L@x~;H@M?bWut~238S^GO zD zUW=QAuK1gAqhJOziS&Z}=iZZ4TA!*$Zh3bSeB}IT=F2-wgGbG&M)>Z~+e0oeNoLj$ zMqHOPS-&s2S%yW*R!IzkI62wh3*kaEgXwC8^Wyg{4%iK&{UkT{6R3$-;J6y*qJdlE zgUMH1PjFFXwU>%fk+)BnnaHM4L8tSd)Jf(sYK3`6_#vXzc@^Z1$&y3w=l|ci5@}7H z#pm?vnn{chqHm%8n?kxoggt_i+W~aSsC9yQTBqq`$C%k=-x2NF>ZRJm6FP~Kas0LF z7>+W&Z}(Wn2tN=wIBwo?S!=Tt>|LxxlI7og>+mYumx?m$^fvva@g$yLWaVKImwzMZ zW?a4}^Y6Ze6fsH7lnCYcM2}L4#GTW9k4S-q{Py!rUm<(1#8UIGvA-;Z*k8r^X0g6! zu%5LhfG=ID@29hY^x~xm@7JekzKU<*d;O1XG&Oqnlad^-8zyZN_RI_X)&9WrGaLQs zI=*6JBk!0vvAcGnZm(-%<6iSbZjWW&3RKs)swPm_&wm6^kyz-t}X7pU6N8mvVy9C)u+t?nyGW!bi@cO)&lU36DfxMCn!yqB?egOYRrMKu?Z|rK z%yiGMpNUsYN8@7L@Ux(7zE&|s)KP}!0@E85UoL_DvTSIO)(laME?$>eGx*0fe#y#` zs4OyPm+P~)tCX%zwxGVt4U%!bOAGTXUyXeUNjqW|?w=5qO{whs;E+kA<6*uoJvhic zSYZlGmmOu13wepHK(>ciu!L_^j?^5>v*+uxUf~AqmDLuuEkHM|c=g{`J6P(P2DxHO zTfm!vz%=Y%PkfI%d1yr4Rq;-H_mlhqAIt@&{aOfT5%oV+Io%-j44M6Oe08B^_1S6- zaU!X)$*%fkos{BiC-2=yU2~8#t5(SwGs+di6{h`1_n+}*>a%sSV5-m5rE8Dk`0hb` zzVmy%X4dR~Vv_@TV)%qlUI+K{@+N;)=6ol$-K$5Ny+`nTDzGrUSS# zJUM8IC}#gRH|17)SZMa0w94bI2JP^w)yN0_cxg|Og{N_}%`S>i+6KF4es|pU`e;ZD zN)%Tk7xF19EL5=*@s12e_Y*RVY6L%!r{NtOxm*?LbxH&ixV#6-bQ;jh_ z>!O@xg}svV`G=Q65*tIh;S6fb&{VLpIG=xT$u4>2b*{DUhUxc5y=l8^cGNw^BdRJ# zN*=pV^g29!P7hm$Xp|ha5~x9mylcmAHZ>sb*caO~!kJzndonsFYAjL!f4Syjt++56 zm~Nc8n7;wFAV1Quj`$G_unybGxdf?!j8=$f!%Ac9Hmy z4yija!L3mfb@%QY<39O{k?hqQ<43z;mJg-aO-*5Y)+T;p&Lyp`Ymi8Gti}A!r4C%$ zUID^asf}=%h7xS9!UU{K&gQul^00(%FG^IzhbN18JD zN^tbRcGyLFjda2tB%&yGd1(CGy^l<1X|5@jDN3aTWM~>u2D-{Le3vsHN}a zO^b|gaMMa3K}!zGD8IrNZHmUY)`Irg1pk^}z6jw)#W)oiqHu+pr=NlGe&A>G|8bFI zz(yn}KEl-;w}>=KSd(mMCp!#B_zd(WU+#xw_k+%8iOG~kw8{Gl7A%Jp(1>-V^$K?U zKeNvCRjGR6dXZ46S*a&`+?PC}StA_#>g!jD#xd~S&<4L7etkuTc!{DMfITeZ?@CY9 z(opmetppmLVT<18^mF8dg1Y8A-PNg@j6423y&~&jE7Px7js!PDWjy6?O%wgz_Bt!- zg&V{w;e#Gy#>Kh?mRW&P!yp`H%xqX7ks#_Nv#UwCO4LUkLSM|40*3MhQ?-Ie(8CJh zY9S)j35`NmHnzWgqA^FcnCBwW82=Jqi}I*8T_;iTx|COZm?IYSRXNk~9pIG4leYds zUQZ=_DltTb4x#n|%8RE^j}N}QGmP0pw9`X(aLUgbNYU#k~Il*`XL6r39M&aUl|!2#VxFVnd3O_ zVif;gEySjmOO&=;icM3UsI4jwor&ZUL+x_c6s@((kz74=W?h^?0VbI989^DDZ#ZS8 zZJEOc;(Jw=YRI^b28Ifr%4+Yas~Oiu)&$2^o?4DqWS$B74+`Qw#FOE!spZmfr6F_2 zzVb{HG){#tjdy8gU9A<0BVL+v!y&e48A?4zVquulC4yP73p%h0hvOB3Zx7|)!v!+B z@z*&&LEpkWGSffA5b!xlcb!H+saTlx=tGgR&UE?1EQr7bs?ykny!11-xY z9CN{Jt+7mrW+kp`$~xzx$jU8wi0lXlQ##F(s*skYx~AG?;&XmhBfa=ggCNC3g*JiE zNmL>&Z~8BE61_wxY@zL_!C#>jN@<3bnt#6&d0UZAx_L&>M?(V9CVd&ZVud^T&gm}X zxgGdFt=y5+cOcbt)bh~$z6zQP!YH#THJokBKWoc4%MrgRnESfcCW0}o z?$nBMCRCsrBOis6`K!+pt65@U5Rk?J@!Qba0tfpF(i17?xVlWN5F%0lwS*UU8W3@O zQZ126j8`dU$s(_2i4`OxS8Pvl?Q(3|m;F1XPZJ@q#nu1txN)k5Ga+r+BpcFRPzYqH zjuqPPO`tl@ltMtdsV)Kr{!yG|+nEF4>NoOKC)pW@P5)WdpJ61+c8j!{rF1Ed6u<@ijvG zH4?S}|5l4DgrK-Wsz$oFTB^yeVJnHnp&El`tyTJb42;XvtzPiaZGkxw7lHCSKw`Uc zA&(RO$QGj^jIyY0HQR}|B+9G}-hJOM6T(gE z+x>gEWhYG{25I|ARaMdt&6GW50_~qvyM^eD?Fh> zn-h;G^cn;N!!x<;7Ws^fgk6^^Hz}(=+=@s{9PUSoulx(F#gV=QLW|5<@@mJ_cii_LLF&F z+jx*F{C@bneiE^3oEBEaQU14K|L7X?K}A6{J?n{SNhht4yCJQ1KHEL zsdqQ`DRQc$ti~%^y&11b+&5hz?iY7zcan4sRw~x_QTxwtV{N?tPTzQHkQfLt+IWGPEao&0UZ`&O%wA+8F6vKIF3_ea` zXZ>%zb7Sv5IQO?tZ@BU_f@QpZj(EJxa&xL)q{9_+fBP=!gITi_>Z7l;>ZNl<+i{^x zj|-fHbotx(X*b}f3ZLDlyPRL1tof=mvD}UD)v1!<`dn8;uZ;5T#KSRCu2xGWNk9BC ze;jqFAI#eU{Kb4^0XUKW(%J9MmkD)Zm1MmqdjJ*852u^U};he(l+E;rm({N**ZW1S?HfBF?_=BLnm@(T%Y}9+qvYem|Y6%)0iz z#rGzSDcxi;S;8Aq;I~fAaHe#5I(!lu%lDi19|F&owfz>pI`zXg;L5o3T7zhG z-^Z7U<5NSw z`D9DxD3W=_UkR2SBwMAP|0Z{CjxOvK>8A~ffx-5*T5>^knN}k1g0d@C(oIN>|9FmA zNr&Od{4SKmrGie0!1wYi-YgYKL~gww0%amOeR?nd_)@uG$uay}$s+?~T#x4m&xQD^ zoKtkjZzUZm2qafo6J!soB2zBuBi3oWO8Zb^7BVnN)sqf+F5k0MDfJB53br%{w?IU% zI>mSLpZtg!IJl)mw52Sr$2Qv-v%tmYw~&^SOgRDgMZV?2o0}ngyHc5T?|qu9o?3U( zl+yc4(uParm!xd6Sy~%sT@`|D!X(Y&yx9?B%y6BmT{O5!hE=C%REu=J-RF>-p&U6X zi8o8E>#dWvsY7sUKhmtMJj9eImNmB>BSiaT4>cFh7%=X z_&!@##UyE0^^~p0%uBrf`b-*E1;M zGvvhO+^ATF_cs+a(xN_E|1o`(WErcPTm4{#spcrvS~=I7EUTv{Vm!$rWPrEx6^mhH zzjTi3bS|f^BN5a5c-OQ@wCYC+enIc#|MC$Hytf#qKZ+21F8`Iqch3~hhHf4&1Iu!K zFvMN2(mb8+iBd@2Isqm~21lJ@;VT||#S~R2(e~n_LoW`wSSPEGW97L%xbY-ok*?F33|rB{Xa#2 zN#5?AHKt9el6x$B4Cz-~|2CvcKjFG%uRc{W^!(r`Z$V_Q=Nb5O-gbd_jd#Mc`QMy1 zBO-y84T^2jB<|#k`BZ$q5L3u%qmoRSVX$UA(1Cqlx>(F-Qp_hZm(O3M1%8$7a<=M^ z|3W6u&s@Bm8``Ltq@Dqiqk%}SD$VKp|9rg(d>hrZFn;gMXtY?CUEJB)i}kGC;Yhzz|E~o0R2QytIgx)UPCIKQU7Y_ z+o{d!CsRY)(GRyWv0r!b`)-jBAHR?2t?zruhRWJAL7E;r=QOU2m|+a7c`gA zDm)+k_G1DzAHA^A&Ukdm`c-h{8CAB}LFR%?o0A|y7NI=|jnxi}B2TKHPvVYE1EB-e zKv54*GTQFUDb+AG`(-UE$3qe$uM~7pS0yP6^i}lL=@RdX@Vl}y@T`AKS#O`IsPnyu zJ5J>VH*c-U{$yLtQ6*AStUOxdNdzwP_=v!G$a^fYk&#zIaDQt}DNq)11w1rES66t5 zVk6eT$SZ=7cMBkW)$b4Cn|R8=c>eo6Ry%L-dtOqk&<7D_V;arm(Xjc?q{2-Mm!DRz zpGH5C2taUHOocE@+2K}UD}|?LeYF;cUlXaQ#ivAQl_N=|>+L}ek9dqf2F}LFAE~!Y z2e;$CD@}Cr#sf#gUag7&sl%uB01FID9R<#HLxc|mg61e2+itVO9B9Y_wwiJuJKftV>`Vlt0cSMAzEd9>>Krs33mv;!AX95x;hT2@M0Nr z_3*eCU~zn!C9aS)QplZRvM0$|^iNPBoU9&Z)PP6WzXUyUjY-6&x0`qgQKHD3>`b164#9 zPl6qXx*2NrFHh&7ry2C7*Q)oh3fAPx88n_#lS}Jw@Hyx&d%zfH`@4esME64g<$>%V zbx>btMYsg#v2J`8x_n|bXAP&-k>O!wLyD;{r<+vZJnCVld<^G$-MCT8?oZF(k(vL} zakS-qnTR2?f-q~c|G70wW<-?2tpEix%wplVbyxP_^V+-jXw_ztYV~-RAhcAFu7!6# zgw@2uP1cwRaMTi8VSB{BP=jCbI99z))9B+MWwDaADgM}soR~vQB>J|`TFdio3PPUZ>@TD_K)=E{4wYEvww7-{++MYUyNcOhM-P1WPEn>qRUHYA|Gb+ zwEDn_{Y}FwIr4L`51C~gv8+5($5`qNa}rumo^;jU3bv1lED%}w^?(yb-ZVkobFjXz zNF@i@gg1<0lq}VvWGP~&k_`~~rP`m4fA{1nm}>$vIc)PY(L>24_Yyt(K9NtWFQSDZ zkf`A+)^3kj|p`O#? zVRhZKIzP!r-wtP&5=V`=6|`2Nyn*Nk7yM|w_=F$pcCm_WA+3-4zf4B`{J^rL7px`I zzO_xxpsn0VxHuVka`bozBeE||ULDZK-fd%+v&H(D0&CF{6a?!na`5kMwBhfqhW?L( zB_Vz6rjTzL<72zc^O>F@;C8yfVnrv?+QKALN?e9MtH^b{=+8>L5nf2R!595VSB3#L zL4Lya@AkJS1r2omQ~uAB{J?S1Z$BAiV%DHO*4Mgxs}7`!wf(Y`QCqVGN!_4VY;rWN z;v)RO-nOiLcQlm*tAPMsLBjH8Ef35Hps|q zkW@bbBi?uHX|?3|P1mLUa&B7A5gMlTGz2#Bm2hMPS}AFl$1_JYC=dI;NYVke|5lOI{4v4Foog=y z!N^1ps^RIaa1VGE=m3072Y9h|0{0R2Jje*pn`bETH+YT_oTn0xAH(sc-#w^aJ-tOl z`uz{+57rH?x)TN>9dnbN$7b_+Jaz}E&Q`LBZ$2lMiq*t6zYb_>EOCc8SNtJ7%U8-> ze^`~&^9n1@eJH7C5|2DUstpR5uT`eRJ6atvlW5*Ufj_W&UR0Z=sLQ5lvRVphp<+!C3>t1Zvx@NVOhB~}i2yYTX!rkFD_hkH&dxniY z^D|y{c|H2b&b216KD|pY>ckN?*ArJMz2-(b|5yI;L`xZu=Q34Uy|7BIEIF5y0AH;e z&+0cwM5}yR1w`{Vb<1=bBlQ3=fxMvJGv*D!no~y@cRgQFH;j#dMnN4*IbHCI;I`na zL0!nykMB1C-};-nZIUPEeP+Sh4)h~g`z(Dqedud^M0JjnI!>X^EYQL~Qr{k(^?b|I zJl{}4Jf*gse&Sk=?0;os=8J2%3}4oft~=6xO7WDwJFlOMbgjK+DMrzn6pv`cc{&T} z&KqgNqcG3rGJ|C5DHwEhs}gslfX(kNpMV?&IKpH#1%23{FO+N}!y6!WOpu29g=o0QXCcpky@X33~k zn&mDpFBOu!;%w#asr7+n z_EI9R*a&>?VL$m~N2`#wYyqybQ7?2uI=jgRuwMeU)mk3GMjNT6k*rV3fP+TJoh`Is zkAI=E59Ao>VI(F6bM7eFLQx8V6FLXq3*d! zU6iTMkIWee*>%diI?Kn@@tn`$H!1mYr?xMH@e&1K6`oSx8WVp?7g5ewfH{h~$_oeT zZbXWt!8y^!pf$QBXoSsu*jJVWVfZ^I-mo%LYpZ1XxhgL zV~SQCQm1q|mbYZbuJ`RDTbk2*slPbFl39Awp!393h1z4`C>eBPSUV|R60aA zRz4r2i=dxF1q(2~cc=gBBuP>EtTg6&fM-OOhKWGo&5M&&g8dfU3)S_q@_qsuf{oU= zliS)zCEqtptSumq54i>4T%HoecFUvwqC|^WPw_0w*Mikw?BrRMn{*Lfe-+^e(t5Kl zVM+OHuij6ExAn#ZUG#+iqa-^(7s5BAY~N4)ZzuI<#zT87gp<}+tP^zIxGSk6nD30# zl`9sRm9k|ZEvB+N%? zfR8L{BXx%pynOb1OvIbf&-n-iTfz4bDfjV94=@<{Uw$|Mnu>dlLdqM%)MH691e9Ud zC*%guEq>*jSH}&KkL$>S0QzHoo%8{|olG!iv;wyKpz0gnCJHGws*7NqQ{7X*m!nmL zj^vHvNlBivWGDI=EEU-pR^%%ypsp7({gy$$Og)|qeU&^VlG=|Gv$BoXVsQm6j^!zJ z^5p)em#*Z9^~$tt+dgdQ!OFpU3FC9}WM0aZb&^$!)ng?~zZW#Oe1P0;zct|v8vt?# zr_<4?SPPX0oYVshS&&k6WMC8__E};!JKVsqp}Q!O%0SE>+2N#QN4+Uh0FX0FjSns5 zjqiVSPBtr|OdrN0C4(j(m)7eeq;l@Al3kc5*4C4y42bC* zIiNQIg?j)WUmmx``P6_oFNIn!`fIxhv{hQdXeUjjY|--izmpv;J!DS*r!Ax!bVe6l zWYu)WqW({@N}%$n|5WmLs$kHhNpziJ2F_`W{Z@TxT&HE=sUpVs3+i$$mzqf_8A9$l z_bJ?`umNA23%Ge9Y6HNl)*sWSYoRFNV<`V$NfpQ^)!wl#N1(+PTOR(Q?G`)r=;B4m z@`n6wQjynJD4ihru@x=hro4W0FlK9T*g-ZNQVYgiq)@iS=)&dUpMp-C_h9;bs@stb z99TClrSkhqI-8OoZvib7ic`2iv zm*#cb;!eVV#oQ9!=Ko8wU|^_?dWTvKTD}OYG8cHeEye^3WB%ZlU^Z~UJdh12>+%6& zgEO#Zz<=F}X9IfLQOt5e?$q{0aR;7=AB8cJ^Tr4DoQiI3_zy+2>pnh;I0^F?k#cQ7xvNLFiHIw^ zj^b%9Vi!%!!6@3nrHk@+Wv6mwz578WS2nuuR|=wr4Y;C|qNJOiLK&9EoaINo zfH%#`HAlOeIMN1xSjWUf3L{ydWB+9o>!4hsxW(NeDmp^64eZF)0{P*#<@PPDt*iM# zu!aCSB{8jHb8u%cJN8b{L5gB@ilr^F5d=K|7f`)79Y&a#t{?`<)=> z62R7Pjp7_g;>X7dWg&#V_XpJ#6KA1H#*km3kKE{IPpMBI-`_N=BmO&BvBvJpGZ7$` z?sDgjRo(ngMH6UaU@?H5lYM~H{z!3?3&2WeohBbs#VWqA7NwVBfwq<_b7BR9M0hn| z-ldCVMKG_YS*xu(;J;kK{D4g2;?#iuLgjJ)A_b@c=GYa?9$FHlf+0v;CXH_YuKsN@ zOS(X)TID7SykKS28(bxR#4yr@@ZaJv$WD?4RMa|}Eu&m9MR$k^ar;{QQkU!97G1o> z*GWvxCi!#qXOnKC2W+JaxJB#2r1rlOe1->FG%F-WF0*|o`UYV z5uS`@T6-lg$R8h1-rsd(?ind!=>AYGo#_-SB!v0)BkKj7v`#3{vN2<9XqHr<;bsA7 zR2RrbX%Xm6e}f*Wm>cnlR_Ta#odeevX)aKFwp6|gs}mZOxpGC+95VuDj!j_S*B_~n zv!Xs&{|2#0;sGlqz)^Bw>5(kClT-lLeLZaV7HMB@ID%Aj{tfrMY?>J;h{BkI*wOk|Wni7WsUTW7Qzfs-&9eTQ+SMKz8=%#JRFh#53~jCe%mKXmbJafadvM4^g0iG=cnNX=c zJ2uT=4eIDus&87**6Kp#l5*_ZtGR=Is$M=_20fQ{&;DMd^<5k(m&@S&|AD7f`(~fH zr)?5mm&Wjy16pF9@8YNpT0RfIY8@~NxPDsussp~No311@RX*sDopFG$$01#n`0X`C zQ3GgjM$dVPOUkQoo`bVrP^WM-v%f~Bw0Xiv$_M`nc05Psr7~~>Ou-B{n0MSRxkM z07@WiaUMW0t-Wszz7cfxaxiXJREWcRLCbkDHs$ISWT#{wa0vT}r-jygn%%ZCseoLw z05uQd!t=M^sm-HVsSAPTKUl<(*A}I7;}d|%)9U5pt^xEe5~P5lgNuFY>CKmtt;KZ82@Gacyz@AU3_m2sK?W<|ITZ85)b<@P~YBzBW;K|4- zwR?P|6*IV%C=AJWkaEOS7x}BYdn%n9oNB9NhL%4Va}bUQ@*BZ<5}%qEDTz3uOlsb) z(rEc$SEWhIL+-42hFp8&HN{zd`qV=4KmBatTXDco5`~BF7D?T=3BKFV zV~Xgtiex&)2GG-ym(vB&k=Y|Cq%!SUa!U1%QeqyWk<;o^lUT`nso-9Pr?NcA z$u~!NVs&vcjpFHQ?kLqT#|;?u%jv^mPBwtl=olq+ylhln6(3tms&xtzZERs z(PmPC`iS3wdx{^aeUtiFa~oPNT>M6?kvf>I*uS94Me5BGzN_gS*fIxJy6RJGn z?pO;FXr0@stampj^qQyEW1~7L4EC;9;~m#(CkUQ!y842RFCl_x`#I4_MS6Umb}_KRWl6H%g9@QHn}jR*YD@EO=J#i_lbmta=#Q>q)jVc5rE1{#?UHU%FIz8S>+Q|i1KQiFU4 z_w7Ga-<)!H+~dX?PI!{t;b1{JeWd<)qPC6Hf@Q7Td`$l@`q@6U<@5bbbr)&;`Jp#2 z;K)xBv->PG0&Oc9sb0hJPt}qMlx$TB9XKH}@^h+n+957+-53bjE^xjZ=xP>4U)Z`7 zH7q8IJIM`nM+;r_Fxa+tmSN^n#$!&JCTFVWr>w6l`4I`d=0 zqz7x>P)TZIBxCo=Fs(85>U)Y3Zozg7%8&9Sj84JPSC>mOr=rd~LM4BIUrRs^P zUmwp+fko>eHD;~4Iq0*5xL#7}ls--g1uEXGID)4B0npsp$W4m4bE|)4Vv$C@&5GED zRUhy)=2Czvty!EDMZh&D*Vl}><8L9JOOl4}ZsKm^yE|L5=`G@&#h4?HCN2Zad`6uZ zC+_nSci%`VjuT_lY}?&dPo7anw3<|Op{f5r{eMsLDOTeL!8ShD)r|KniXlcD9{20x z+`v0YQ|jyvI2+{?^HO-<5PRIuMm-AZ-M>ie5NN-!3VnWz=o2S0V(uP1UwCemjp7^` zMF0*lJf4XQ^JFWuCM#(KjngQZU}Of7zGkR5Msf+g6f6!|2fX+AvHeZAZP>UbeEWLg zjy3lR>%yDXg*LAig<8Q`agXy%CC~8s+qD~b-XcDF26uXpvU%XBKOY0^jpL306PrlS0I;?{P;)e8)MZZFGd$F5AXD!N}>&0Flg*2%BsT_v^JHj9)WO? zlj@4;!wz5Rx!Rboa@c^fKT_`)D~QuY z^wJUFi`0$&<+_3IC-P)Gz3uWZOK2W4F{=%G$&Pl_(<*Cxq1G!{ua#VXcBI9guJmrW z3HQ=-2EsO4Z;s{tRPxX6VHA@)16i@uz&y~70^IKhc-4$$BL@C2{#W!;=5kVF zjsGQ)=4siE0?_9W#(8790bQT5UjSbAl{z_{E1^HhtpEci#tq;~(lM;Lj=sPr)aYn> zm#<8N5x)QT(OIt-{TZ(p;-Dcm+Sra<_;WQjB@iac#ZIaX(+>i?udsjCY6G0b_09pC z&~LvwgEM~|MSVHffmK$kKt6n=zCLP^5R$ol_A^i{(yBqAeUzh(;JHzRDnc_GY{aZH z_?#7eJ0QW_nN+si1y*ZV!%w4Z0u9#?GsjP;Ps8_eVK#yWjr13HXk*BBpd`cIA0G9J zOC61?vNiu8oicyfeT$`_u|GFjkg~>>+Zi`{$e3&e6>WhR*2Qd6&|hYWlWJ^1k|pH& z!1L=?6iXnHK3C^V<;8$bs`POqR!0EaSoglL0ewc$1Ex~JSaZ;m6N0uEgz_?YSDLE2 z9jIemIy$25>RV&H(&fODu>AOSz8KlkoIVM;GlRMAQPdhZc$1H<;Mw?GK4!}+ME#dr z$~e)t=5uv$@*wb~#fv$T&!*{pVA$M~-OWcZ5AvR~RSQIc99P%OKqF^`>>R|(CAuEN zp@s+3-#p);1I_(QkksWs?d_ONx;v-O(remfmKT5G0x4YHfF3`_NPZ-*dk!&l=XL{@ z#@^H7I??KWN=9_4LJ*6d;ntd%wPf7Ktt zH_?~bG?*J50oyfK%9lBBzLW`C#h}OKe*gI4p7lX-c8@8ZTZTcvrDb#^)skUZ(0FiT0fsZMi_fsxb(M z{BE=C6WJeGdn_`}KQfvp@v`p@qhyHB=_%+*f9Z(&efZAhORSjh0={O9eiX`%e$;B) z3XqWV01h95otY!&0}Q-y#VmlC@5Gt^ISF=~%Od|@^-Zk>LTTPKPYRwvFG8DRuWJ92 zm*+^9{(@fAKToNDpANQRwDdxf_6A1{Ng#X_D?t8TjgMl~6!RcHsUzL6?p*vJyhCb0 zDw1#2Z^ubpj?5_apg|oQMZfj}rAyGoZ7s!TybiN7o@MMgo@G(Zv+Ud&7Bqo-{(IGD zPapNB{aSdie>c~0nfzzSSJ`eRBAj#bg0{S_m+Rf-;P!zP3+wZOW~qX0QKw55F7f&p z;Gz%vb&18ol6F>pD`du+z;b6X^)j&);#(mvwc7mmFKd4otQDFV0@+XHFV!QcGyX5< zCVSQ3>HST|~RyE5%&(!8kit0rTNu+-v5BQ3Q;F7oA-S`R z^#l&?Z-Uv}yOjLu)rErMNJ#DJV1mxm)+%{ffkR(r-#As7 zN^?TIU(r2ZdvZ{{ZOSF#jC{q7VwGG0eSbKamL%tClH?##LZY$Ebq*ywr%?jHZ^7e! zqTF`ud$JAs=nS6+Jhw7N5~M2(puRSS>mgTcCAj2 ze{+%%3Zo_uMrF7o=M5SbRf7z4!Yb7Cmdl;QYugsaHJGcMKZKmXcB)QZD7^@Hj#U(K zx8eM!QTzE^9hwq;jGotQV#;Cgoxj&`7mUPxnNmZl2hf{ka+Cp^ybA25itbbD6{BvM zb7!5=GTa)BQj?tEmTLOvq~?pHx~88dJTfb?08OIp$}mp1taD=qeds6Z?*3f;{#ffe08tL6P=7LtR(1A0o zjk#boAIhB9r_cGT&z#buet{J*3SsGwT%fsYQ7DaM6s@uQIEOf9g;X!rzqy==YT1^kBmW|r?uAFQyW8F*M7yO zeou5tZJfjtLt_GWgFR8)*_cxA(Dq&?j?`=3G!~$RhP%pT-diVyn{)zk%^9==YX`3l z?g;)NXb5F@FALSlU7;!&-#5mm)E(1#XU7QGoZXG9I5lBNF_l$vJ@J6FIzB;!Y^i#1 zB(qAWkCeywhLyg@Q6F)nHT2nD(4If2emr52P*P8lK=fDC$FTQqvG zM9(MpB3Jp`Jy>xgKT=P+>g^E;rRr@^t{+9 z^@4FK6iahtN3URWO1Qt(Il}?>S_1O2LM~LQThgB0P1;HBLG|{DszJ9ryt+<9uQ2^<|9jyr|LUiO>CM4BpeC#2t4u6$h_zT#cSB z$zoC?2a2mfM=PB$En*hbMIYNq7Y_K}OqLB)$nKWv!J2;LYPV_{??KfxQ5QqHsf-pR zkQ#Co97lSUF;CRb4wpyydY49#c8wzIVtt1ffove|Mul-99kCicRe_~e7{@*2yq-Ih z)E(5DTHU;}0&sl+sTt&hc93v$fT~@9TYnjMe8-B|4fItJrJDDAr99;4lq%3)PN+A} z@T7DXj;jRh0iC-@$%`%lO1b^rD!DE;qJB2B;Bb1Z2IXJJ>FD$hcMSr@8qf zKy%JmDU9K#JVot%%~oH`U1jkqD(-eVF}cKJ|9_N0TLT4$|F4vNJMsAy$L#1$Z(HER3h71N71C}} zIhalA0Yj_g+=o15XiiTSXqQ>HlI}s|8F%D04Gfv*BNKg=|>}&gNZQ1lnm?;sVh9 zPzF&)Ht25EgCtS=S(QBNSBZD2CJSa|uQsFDocOf*{ZZRzd)04_D+@Vtv1@i;xs=du zGtq&jxO&t{c8RulVU&%SrEH1RaotSMU5Zu9NmESb^fNA2W_^Z8Rsc_x*#O^z-lt|s zvj81<3UGtc4jj{{n6;W#h!c<48ysLisec~5K&W4JA=pfWF$B`MXNX}PIXO|l* zIlxCv5lbJV_mTzPdeTr25IKOS?ncQaw%C!PI~~~oeG6drFGfAz@vqF*XxEtGD`pM1 zvZ9uOEX{A#D@qq~3+@h+y4?vbrk9zN6}Pw@q@$D9#czGzObVh0AFxEO zwd0)Vg$FacOSa7J5|cXEc7^?u)+!!h!@0?8UKUZw3+qmJL zu;xFW4`M0)dyvaKA*PNu^^yZLZ< z>CIdGuEY>21|I2bLoZ03f*z1hsXJ$wIG6S-(|j1{LgKb0f?&b_Px7X=P#a8N>(4qy zD{;r9l8_V`^k(+>r_aR2gB6$I1DX$b?}(PaU`rVNooU2Oyy5ikJ%0KL{=QSB!hVMO z&r56ylWGsfrBu+W(j?hcT1qOl{M$-rc()=zN~Qok1?u9;SQ$p}sXn`-Ar3(CkSGquKR1>LK;D(+%@D!cl?rmz{}e z_SjGpir}tb$U!SH@8Ep$q52wD`XdZz#mCf}rg3lX+DsJshw6*d>^W5Z}fC87AtL(nFlN6$!X=7qmu)(kbyeZ)jo7WR3M)3HGsf)&bsqPu&`8CLCuxNtWgx#-Kbsby)fFLuJfj|;c9UViugz=LwQtxM+IX+9X*2wL`x+q= z3DOEzVrc#CYi<>8+qhw!a8G!%7+x=ggv}d6>oVeJ^Vqe zb;|BNpyo}o(ef1OW~3o?^b|)}p;Ny#K!l}t^T}3;cnl}B`5)HOw>t+)OSu} zu0;x1&=tTFV5`Cd#fWx&?Pp06oe>N^%k0-;+eZP>X^LT;w9>87Ovw~lvf(BRNM5f-Ngt}#DPHqb@oN#^F1VwgI?Ero4`bAxE<#@v zUcMyrb%VtIX{l(qjEj&qUh;~x+(DjIKbT^rb`h@6YdOC2wk%@i;T=hfcIrYvN;2I*c-F{Vx-wO9=468J`$p5H! zkN(fGvm>ws4SO2M%g2b*ALLx@mUI+MK4F6|0=BIG;?E@2%haed;o-tx#8_m}Dy9PSub) z{ssTX1;o8Tfa?#w5I~2xdyJ92?cW4hkoPd#5pHxO$B; zC8K0Hv-SrkfnG(uw&L$jzIE08i%G4yhbYyUms~MRokG@NLyKfL_8$%yB6o$i`O6L& zdlrOgttkmIlL{^7=u@hG5~B@l%Cr7&lOds#WDR<4Tm2166}2{?pO*vR^0O)8z94a5 zYIqOUEp?7lVu=`1@9crL#2kB0E!OVfnP`qeT_!njcOXQ>bxnp?Rq$E$&r=rdl-LVB z{c(cS+yGE@02Dh;FV{TJ@cw_m7nUh7HnR4QYhT5`tUiTj)KhKuinsjm7Yx7I9`kjR7`JMXGn2xaWkm~+i7hNtmR)Q4q216K? zWd(~Uzcy=dMMBgddheJ;x+=vCctnIK8F5YO;%sj!sCVFw{?(4gRq5)07NyB?=c;R* zovXV1_?uU506f7STA&B&&_}Lvxy44&B+j`Xt1*1N>ivrAZzQ#xQeFAX%~^v?El}E> z4dLsw$XK?YRc;dB+hKN=_)z!w!;Zi;rM{}bI}d-QNjKJ!8~8x|-IRWS6NHVh($Qb4 zo2R%aA8T%Q2lQGbUJW5N`h;b#m;9HijH8bQN!)hK8@@A4FIq^<5ew}s_GuFH_v-oy zcet}y7kxF@2zu)?>ISgr#L)RmwrbJARMFQsVcqIidC#odo!Yul2dFVsTOp(cH^4Rt!H1wb|y0+tr#dxw2StQ5%*sbU}wh7iZ}Dr+s?z&dUzTi<3PiHC4sTO zW`&O$GA#_+`(LP!Y0sZYV9czogE&KOl89w;X1KMJ>Go;Nw(bVG{Ou?wxryC-BFuT1 zUHl<8sqvm{%Ppl1w3|y+wZZ=zs#>{=Xb`0krA^X2G9J7}iSW9rG#=k3g(oA7Y` zw^7Uz!VZu``!RP1jk5LHehW_uvr2yMAWlxE-5;ty7^6flydL1>D(LC-C^vBK{<4;b z1#I4Q^rYBC<7|*Rb+XNkCnB-~J>C|L`9MOIo!H-WsDLA}f?0dr*pnrhx~(GE=auFN z@f3rtJ)~ZJ0=>iy67TbsXGa~rf54jT7YzYjo$)=4G5C6quEGps8B$+7fhW;J>OYQS zt(_H#VLJi-zE?E>PrM4x(m+0$qYcn9c0wm_y}q+}ak~#}%PoQINS16GA2lWt2jv z5-^tI`byMz7ZOYA*ly&~lP74!oG9u{L+TsHiL*e?j@AbmSQWHjac%ahFHGXOpARti zYsEa+e((8iUBsRkhJW?(;)K3}NuBRz6}qtfX0#afE`6;vo;_V72QFYGot@jDGC zbWy7dqtX{2*2hUj4YBlby@q0XAurie=0Qt8NzwU#2VHuO;;PD5K*6h_iSJcqDNGHo z(3+7%WtCpJtm=ydmtuszmAAfP!`q#ib6CY=?2V?~wEYRjqQeX`Nu^ZDJr{Wd~JoQ$s_ppUcjNtFyR;`%KE zj+A8pBLSIOuD>L~R8+#u3R9(6i>rdb3@|I4PUiZV>*<10VoWh4i*WsXid1~BitDEd zT0xvySfdD@i^p(eY_AS1Xgno;btRooQ+P$3udRI5wyYhoggI`A8hnCnvEA39MJA-O zWFiUVN%fmAd00t9zu==@b3`v0Y+2Hi>d7xz2Ort4-x&~m7D-oUR=B!ig{?F9-;iLP zKhW^whU3Kj{lpJaI_DKnfQ;zJdsiQ49m}}DQsQ0(u=FM7q|E(7N2tTd(7^7FBOQ4R z6R>iIzy)B>*C(=Ltjzd4w97_uXPRZ%@3XMwx{tzRz-HcQl(nfbOv4$RyV zZM0o&U)q7P;{Ibd9WC3*4XZo*9S?piGhndjQQyKmb>!t3u2tqtEQ+_f<*gznlbZrB*!d@nq$ zt2+A*wA0$J4zlDr`0L;~5`@3s4YFr#60k$B6&Kt=YUUx7F zDtK18QF@oB<#+fT`R&fgZ%^}C-+Mu`c=k8tFjF%J=#=I=`6Srg^%?n937Q^taFJ)! z))}3IUOP4L1T6htSnal^Fe#^XjFg+ixKAAsH9v1R*!26+DF>=gc6{J1eCiu68=L84*YA4=cV#h+A_(_Ea*XobY_P5`YZe($sD zZKGwg;{*9>N}LCCctf3;Cc^Qc7-Ybze1H7Zu_sl-=|kBZIS^&ftkrjv0z&>-F96iJ zLsKd;7XPhlP|Xm|X$8+N&gRaEC3cHM@`W)|7Kxg|#FY>&Va(cqK8(+aXj_sI%jhDY zB{e~0Uzmx}xV3@Kf5d;{oElBrhUruK*So|(3T?V#g_9rMN$M_!e;0$LEogOhz&1_} zVb;GkLkkNK{(K7Q4}D*L=R;<`D~wbpSh?mRoiIbricoZ;tZX2?b=Hl)2m zu1U|a)|!b_NRQ}0+m73Jw_=VfR>>EwfI}?6n-#HEQ`&kv}o+`$mzc`w%3Hai~EL?uMk0pEdu^Bx?ulbx9BUfZ>M@vK}^3qY&2X^Qth3PGb z>LOt4N`}6gFh(E{>TDSyjnF!~#UOjguhiNp%+UN=c$j4EH8q>|5~1sQJ?ND#CEZ#C z3x@^motM$81@jHQJ7G_ex{}1~^Yh_84f0^cl<&dkuT8YC2kmIc3Os;TzHtoa`KW`F zjqwlEonU#gbuT5d;^~}iZ4TVOVPYSsTPD+IlWeT3VfG|})Ar6;NBSfI_=4M*JbT}? zcUE^Z|BIjalj`Cx_BZvLI1*TKMdQjVgq4l{tFI6$me*Bma#w8f5He`wNCV|a_HSA8 z+ZWRC{MoRn$I@*fl)Tke9zRrC+AaCX$EEUHtp?EaZ23Db?Zptog)|(@IOaJ@GLy>`jL9^Z@Z5zyKgaOj~!M&oW{GqIg%}t z@N;XAEW;=thL{^%^t~3k;4#3e*0NmcYbhWNT8=rp1M@godp=kHII87AIl}c;MDyf_ z+a9yWV00zq;nuLWTgt^~WIl}Jn+dO2CW%efel8f&_L{N)@`(xD;Vp}~phb9s%G7I@ zaNmcC6an4k_F3X2k#)pPy1ZptB}@G-nzFR4ss$4zy`i#Fd2YmL%Zn*(Slh=yl-8pD zPus*ME}HfuwgdizCa{+FQT5dc+$9WX2S~Qq9O!T5M6t|t;a$8}2zRc6HkjY|=b9e@ zw()D<9EVlPj~@j&S*D#@p?3RSFJH##Uy+7v1whsg(ELCxpU_FTuNTl@jlIpCD3KYr zevrI-Acb~M=?p8)l^-UgJX>~=U#lfk1zMEowa3z4u<8B457Zg$yF9d|?%YJNOuDE$ zJF!S8(jsCEN_wAiKC~~5vGAQ^;}xW&cP}Z96v?Emu_aGFsuoS!GNZ}Wc1CeL?~RL1 zg@fswc6Na42kJZHrLs@+&{_cZ8b}GW+CR>deEE@5G19h z96Hh4dEwkxpTDFZ>qVotB7AYct$i;(em0LSjd4qX&#DV%Wq({C$g>2k z2b_~}0B41B>iDNQwU1%e#edGJi1TrrIm0(*vQ(CxGn-s3OJ!GZo~C#D{eEHw-MwL& zC8CWZm%?A&Bug0h`@e7>_i-P_b1rpoRLg3nU|SSSp+DJN1@)sR z)i+NNS9S2|)r>q8r1EjFvoH0s(e0$s77h(*XM2d}mpVBaGon8}&ZIc`N%hu~s1uX| z{&xO~{E}+1o?UnRS}hps)J~-4fTsAQ`sWiIXvxp0_l#kdT$_T}77Bx1Dbo3dSLwy$ zi9O;LzwMJy`0?-~wtTOCr02KwMo-k``ZA}W_4w#<9axWxY;*x1KPaNtO}3^ZARJEys0;V+pHZjA z7~s!Os{2pq(`V^x*WRV^1F-Le%#UuGK6gaT8+Y{ePPC0KK9SC}N0i}LxIKvXzf@OD zg9iADi2IHIOP;sT+RbY=f~KFz;wLiQdEo=$9czhepWmfW$xcqIpG><5T3~Y(QW*>n z`E?1Wh2~J*gg@ zc5BtAZqG0-Tvo9>V;ASc+&L}xi*XO~_Ft;Mno1YI z{V%m+Mwc?c-4eLF5ALSV=3o`Sze1Spg^+Xmdt`W>=7BUjv78YHO=k()se9P@n#i2)nO$63jL9fqM5u+BQS}!x6NBpVsQz zS(PW%zX7%hBD0;ps>IJJe<(7M->bhLS6<k)98C4sG;QP)A6PH1z>GbT7A|1 zi|Yx8{@Nn%qg8y5F7o3fskY{ucWAJb<5wqvq zn(Cgb2gwg#s-p6zAK#o}x`P_Dmd)U|f0ClRXb1897-*=ooRu)Y!i=lfS3$nFu+(>* zeXpPYXnDteSC$Vkd`zLK;*Jv1WG9}J3F2-|epRH?&Zl%ePpElcGBDaKLPx%tz$g?p zdb2W2Y&L^r=pgQ^72P1;<0TK1X!A0AR>xD&vx!{SvA?nm`hEiXUS48|7q4ux=fZe2 zAFKGW1W>b^iCvPUgZCYya;JXY0rUqcAWS#)6ekf1{+oOKCJhQtl;BLCPzO&V6lP&? zDyawi3s01o*xx>8QiY&LS85dwIK>7qJ9&zvm_d^9il8n|)<+v)H6EQo$|xjX9oq;0 z;aPm;w`_)Y&mnw-RDKoEMHY_`0nBM~{i2-FT;G;j$ zYNG!w*@-(tpshRu`cRq=bM!Bb${86<`l3J<&M3X2FNiCOvCsAWc z^Dq;HyLsGOZ1c8aCWB|x8^`FGaiJ{Gks)nFy7$xdN-8jiMv4oQ8ml5~$DMw+=z#Yw z8xyv3OAUS|u^Y341LeP=PK*w}g0z~Zxm?k>J?-l<4=@tzGrzrRJK=#&ZnUwkWZ>-< zq{OGyp=qSVVay!)clM00iZw%rwea5dRm;k1u3@U!_gGJX!g(%FAWd92mF65(zC3Q0 za}168QnQ@nk`%UjW{S8MDWnhR#z{Oy3UPM2crqhUUnx+H&ev|I4SW5DkM8WiI*4?U z47g1^rxQ#HDeZUy`2mR+`;44Ld9UdA>OG@5DZJ-_JB;#%8XeWccjy)_#lim*MNF_U zh!E|7`5-JZ`%#irWV@IDKf=BQE~@)l_}sa(GwcWh4tR$x!`cDG8nex!1T{%Dv8|>i zok6g7Kn-e=lC(`VTQy7H3>`Hh2*;V5G#Ly@)1w{zO z|1qTvvWP+G_q$V&$2e9FXo5+c-mCSpVI!YZN**|7DXH8jy`hUC1v?2!h60+ zrc?AIN)=gR@bt@x^P?4zbBf#|(m4c_e^rEnCp~mNl7E_^Y$G8j?y1uw6r*FSP1_Z) zu_!yUK_lS4E7jvYch3Cg4wI(juOi4rpjo6vT&9UU=YjCxKnXB1+jTL6;G5ZHSf1=* z#bShlbJMIk7bvOvbk|{Pb}n92?Exrr1UDO%ILMTiQ6?RPN`|Zf)VYwu*3FF?_Q<{`*>-JE7u2^Hf~G?p!hG))LpKKp6&_^}ihn?!tr~%N?ITL_ z)maNNi>gDRh@mejdoT7^9~);u_vFO%{rGp5zRZ~^%LHR|>cuGt(y29_izJJD^~Xxz zl^EPvu2ZaI%0?RV4BXAO#;C0kC3;C|xL7_OgNG4?oymJn5%RP+|Fsth`*DQbMxK%T zfU)aCM(>*$FDnlr*1s&WtxUN#$f(iWwQqc9;FcOwP}@l-bVrnlNwZdGnd61Lq%wV% zn%(te7Q|UpZKRY56d}nBUs+~!L9r=JzC7EDG{;MjE4WqG6fk)R^TBz!@0iIt&CpsP zngrI#7HD#rJmYRT&#*f&Z-+N0d# zy}Ax-lTqNT2E1E(N#`;OIUL{Zn}|lXub(4@+G*<7Elbwnw-5o!52gWHWX|`R!Da ziVxyt$ctn>@1E@i;fl4_H0sW<^vCway7yx+@#{nEb-9a$ug$;@?X|n_(G<;*d^6*% z0OCn%C1&>#|7yt;R?D#WnNPHMqX0P7xQGuEt|Q!ZkRHhLRs+*Z!X4r zxrkS8S{9R#UsCGuy%zk84ATi8&9wvX-akTDWYb9a0{cH{n;j?a6He8Qr}Y%g)Zw^D z{A9AaD-y6Cvgv!$t2s#g-7%$Ng6@BIf$h*l{u4Qkmz29M{^$9ZlwV!wuRelwpYRP5 zEiZoFE+{YF0O~*aj$?nBooA%IK?fhhn4J@PaHtqFk;vM(Xx=p8!VHlqiyI*9R*W;bpjrEX z?RvY)OuRS3drY22D8`zmCWz~P#LdEw|2*4f8sS}}8O~wKn-asctyi=lCk|$;0M_dR zCaCk$`w$(v7Q?^{QXS@vuPHnrnJ{U22o2lDQRoPj{J7|F?;lt#RkOENK56!?jN%u1%kT0HipG0}u)?AZ$bsk_T8YsQU*+RQtPz zo!+P1%x;40xV!8g+DSj3n%zmW*p^kXtyaahKOgF^e(Q2mQW6 zrwOCudSZJAr}~c0$RKL0hxfcJohcySQ#wI>kMe`r`Zz3|g1w7z{Hv~LK(mK-j%%n- zwS}LJAFahbPcfsm%#1ueSi)Oz&ud(p@Xq#i%p%A?=Vcw{llc5G7yM`mleBn;k*6s9 zwNw8`rkqPOHlA`n=30Tt+a&ASwIM4$|2cAd@xWI*`ztxqtLv6OzJzAv=R^8~X-E^C zxc9b=>m!B^lJj0t9vmhQgPGC?@7;^s{1D2!5slAu&@F32jNJ;l&=KY0I7!w|h<37K zMSQ|ktaLLAiXXVCcwB_yE7F+^zt!W0JhtLK+;e6e=pohfx?a4AGd8WTl{RZ~iT~8( z+L}t5Zz|D9J6B^XmCsu@+jK2V<;G?@E#ux8ldMg^?Oa`|&P-#qRo#O}ljaQK~a@>TwEqQ=y4tc*->M&;hy#GpK#iTv1!jAKg9ddrW zt>FM^;OyqmVP(~HTrghn*gni~fTe|EQ1?zHhLhD&EwZjHUPy>Mm6ZfgkhB|0)(x0i z<02_p+7`-W2ZdE|v#gDX8J6%atEqE|8*(k7njGW~TkQ~X>jc%Op~1EJSjHZYxx=^{ zJ~g%&I-bJc@JTA{p}3nJP;$3;KM-y=%fUEzHlrt432*nlZB_h&Mb7mQd?3a=(#wclVjLm z??kCw4#_C_ri7Pe#z$7q%|+NqAFIp+E;+n&b@C06t3$}m8c&mT!U5&ebV|N?=+!UfWQ=`H;s*c|lKVI_Z7|jAk74;8h2Hi#DK0S1ER) zyVr&^ax%jBhKX4}is$DBguCoRZA00Gwuq6h`)X~Au-4*9L z<&yAjBE{cJ3*PO=}gkZIpz=+%=t>f@@8i3b{lq+_p6}=9L5L?Fwmc93L0=7p~1cR zoeV<|I8%`P>9lRSfh62Lz%h%Ta+_o^BNt9&7`winX>2n_ylyD559mU-Al|FV(FL(B z*zIO_Q`Gp_S|m{xy&{m}z<{+GBgk)x$a$8iF-%HGTX6zgn=8L)HH6o?Dd(IaL|K!O z!#|yjc$MTi%6hHaZJ@U(f-LTtn6^rXoH*Fu@v>@M6swp7#-J|pOqOYP78ryl-B3(% zy#Qr7C}su>f+>hS5MTgzOtF3-8MJaHa(Ozz5HYprBT2=^;H^@>)r_^(xXE5i-(rsJ z^%&Yz$>S4!Xk zvF*hb-rC%spN2C0)9MNrHJsWGph2@$Y&r;8DWq4zHk3N<2BxD)Gv{=ZF_i` zXYx)N3cy$euJQQ_mnd|%YBnfAk2{L+uFflPk+RiY+9+0O}{XRQ#&UB>y%~Jf~izw{I(tPtWq4n!diH z+O8OX8PjS1eXpL6^(vRNE|zydP6ev->8s+=Sx&U)x{i&?Z=;h3S%*EgiH-o1OP-2a zHKXf%2n2993{*nQs{~5oB&0$yS?YrWO7}$#)*Xi{@b#;Vs$-AwlJPUJ#(ro-So30k zj97cBXh%#-(xGX^2^V9}bg3urlw+F5b@I7+$X)LC(7Bi6uhQiCuj9XeHom$4WPG!H z$=k}gYyZfX#73QleI}_RrqRq*HJZ0eeKYz`ia?r;b&p;xf!W#kia5k0ZD?4w`GSvf zATYU_l6aDak*Fj7M_Jy-L-?>VpQQeBP zp!8#jM*05VW_bb)<)dr3YcuWeR*#B>k5|EG8J!+DRRQ=dB91GI$MI<*_dS|oU*(TQ zJstL%)V*@glvz%KOyvLPsV8Qvq(ScEg^QH&G$!XwHhp=fq7OQ*dwk7ui)SZD%AsHX zHGzD7*?iH_O!@otstyqOIj$6WbzQI!@~wu09Gp;|oi>EKixlw(MLIFPh!yS4q@&G1 z-pFYURBI#ThrV?#X<%5P1YT7ZQ4H7_Js{cQF?o97u(EA(*7wb*^57-Scv_1V*d+g`oG==`He-hnVTOkBCB;xsb13L>xvBGE*#x$IJycP-JfuDdXy`W z2CAdebqr@EsQlh5%DdD5I65tkPWw+sSALmBHu9&$G7$Dtp1U#>sHU$*3HBf zZcx`q-8IP*w7ck+1=pyDw*dXtPY}noU53&pM5M&zecirR)C9Gylo4eCnAFw!DZ+(G zD1?BcT6#3oq|U$r^BNd~Zx-H8n*!R4m+(J=eRo@Y+cWS&T zQy0{?8U;4|3+1ol4`-6i{$UAZeMsL$yc4~jj_;Fqud$N@UB@d*CeCl_-_5T9=Xdo4 z!n%6G`3prHpS8;~t8*Qv&UN!pf3*wew_qEYG{+)wer+=gpFhpQZyP73^=DZ4m(4MG z?#DOy`o;$vt2xTHJPD3O93e!1GYtY0KAaN_dLa`_z@$+<`Z#tvL{D9Z69wwEf8htsb@g z{YkSBhhtkZZ0InC33IOWec6X6{#ze}f6|Bj%3EXo)#qgDLuK9K>t6s7IR@Xa^ywjc z=DpIO{xJEW{RI1vFX>-#ApYDnLEj4}6NE(U%e4zE7zJI>^h)6e7GYy`;W5s)9($Fl z_DYBRXXOq3a;p8h>q^3G{c69;5C--uk7B=S<$s(T?jO4enwft77V%6xa^Zn>NmJ)Ccx=h8ofQAf1pmgQ z;fMa))W0U=bmO|1s$_XvnNj?18R?x8#Jz)b*I1>O>2GC~M*YiH#kDPW&jHAdLyj*l z)Zk|353VaH`UP?qe@03I1##iJA~->E26=Q|@M=N@2hAZUDUuA~Wt*`?VO-aX9?Hf8 zpH#uS8ORNOG9U0;%$}h}##w5lQrlk;NMTrg-3??f4$8)Pbb*6p(%xO=@L;q<)@?sN@Vw#v)# z`w#NnIM2_>W?@HWPRAQEqs|+5ayDk1_Ob6h_Sj=i&=O&Gpj?#+2O^#`xVRB_vCF@;4UmZ?9IC_sS;;rp!zN! z{nB?Q_~`woGYvTMZ($9=OXTH5ICQ^~f63u`HuKx++|KPtkYg=1+O*u=Sn}~pENAL` zHgl!=JiCMC=70z9Z@yFvnuXOe&X7G& zK&D>CwH#0qhFFM=#JQJx8W+(l%)?rKz`X@j6WK5CSAL9j6tC#dO7c~3JKU>$vD$L5 zwhF9mzv8?^nI4^3^4O>rN?nHTmoiPAaS?(bWPYSi&e6U+ehxT-t%BYi9!-Q!))+Bo z#?B3)STKhVDdp2yv-=%!hfcZ!afeaZuMAzfe15;OdbGdVz7yb~23ED#B3z;#VLbQm z23S|9n?WJq3hc8I&WG~dngZv1^ zYjez;JN-pHlVfg%TvN+&Z+y%CTw_agc|r?QWNl3%sqd5ToIRv$ze=_%DC%*5@%enc%iwS;gW+4l$>R9%UT@G7l>}J zYjk9_z^8A>C5sXq@X5cPAzp2V>ue3<0ZBM>2FrlVEO0zPb|i}($Q!KdH~dX3KFFvU zGBS6+r5LW3XA;yNKI?2=>?o7Un{$rDM!A0^U~}GXRxR-0gi+0em~@p^y75d-uNucL ze_r^#nw&^d)*kn}>OSK~(_!B3oOVZZ8J4RVd}(e@I|qW>7MvIK48E!Mx!=%_e|2J0 zGyNv7^(zv=R{Mw+5(KSF&N1LvZa(A7u?4HvSrPC5Y%)_Q3qo#5xL8OJ&IuV>Qn7sV z$WNE)LqA=n?zs@h>AcgN!-W_|w6(@}9lGoLOMK0?@D7h%BA(k8LHsgGv^Z0E)3BF6 z%LA7bOl?WoyYsdW1&2Wss?|F3^>IG+-9U|2$4$ znk@J^H~6rl=JZDF!3g0t@xKO5xejqpdU zy_)r>Yp|^Kv%yF3$)6F=g4i}_#2#(N9=)fI;C&3^$GAFX#inHs> z65Q@BJ~Pf@+{}zVIB45#?Q&p0c1_%P-@$LsbohAQrs`eFS|{Wb#2xSS#qf{=^7g!} ze1kGIiKB92*A3@i>x^N_0sg-HWn_$alw0WR6n@!`NG z@<+Vy1s1z?4g05`q6zl6{wXc7g+Aed=h>@fp z$&AC=J*NxA9+@Dt=_-9^U!#nr`;~JeI*9TXdvzvaz|)zbOu?D8UwLWR+7ag6*7!)= zVvjeNnFFu+qCTCFgpf_pCXUSRuqIin?tnug(I_bVWJM)D?;bw6{F4>?m7ZZbhbw6- zZlyRyh=YbH?(>P|AFkk32zw%S5?^RWXo|y+MTIJQ^6`i@!oHN_M}*~ z4oD)aXv8*-VZvjT*dM2_3H#H8u=fF3=Bv4jfh!AIyLEDwz~Cq9bNb6#=Z0TDAM1|; zN92UWFhuuF>c9fj_e{yjyXI0|Jy_R2jBTd$3zLql7u*%ROKsDK*^EYI$`?X(p~5Wn;EE`w(ds zZNa6sxx33s5D#~)+f#g~>@e-O^AoJYDrL2rs_rKVvw6olrm(`rRIR47(4xOd4zPAo z&3{5^w^7xL)QQ&atWL@bMb^?Mu23s=pRL$K*4@D?luag4c$<$|Gln+WKnVa(9EoB$hk}uBd$cZ?i>NA?tC&tS;=Q_ro6+$?` zx%}#K#vb%&R7_+Nw(<*BL_GK_98ojYRm^A+$|Jk7Ok$Os)mlEwDIj-KCS?gr} z`12*4wbK-~uP){aS35ZMSGdMAH&Rxt@&;H}SvWf~AB^)2ZUwLEbk%!mABbx)w^-T}0=MfjY{5%T_oEyq2EByGWgFobw z&+2#K4?7XpxcJ7TNt2-$aaY56=#jtA52~ z0itbz-3;(Knh;wA0}fbkf7h$SGA|4#~+E+pj!4RAw!yVZ$}v;$<#toqfNuamZoSIQJ`ihoPWwMKRW~eW*bF`{>Yq<^5qD z6!`o;hI2NRs3R)D5&cr+8nhvQ1LWFPut?o%vE;9Yi>+Fu6~4f}K*rrmy%{xL?*p0l zW#;*YGnTt+eWmvLb#^GNfU=*6p9gsF+^jrbf5wye1OzssX{u~8H$8X0zdDct(0nt% zs>51Hx(VQw9|KI?zr+m3f6}k=tGEW+FD(S$FwFQL{Ek1=c%d;B;=GHhpd>@gRr^c& zd}c;hMl(*fPT8s^yqK)wC5Jk*!1Wy^-4*af(64-DLiKFnkc#;bxB19#p_mWwADy4o zLuW%eXrYKBEwX)eVQqaaWdbUKRM@9P$H-q81dqX@(*1qPdt+p$?%)7n6>^R0-8t%g zJh*(jL(Yyfg_NcA-(|{4 z%LMDQeUB}6tde@NYxkHA;XWT{@aZ9$PI9=%A-CMIMB-q{<0dEB^g91!4N9J8Ps&@L$m_MAoolh zN;W?K9=}OQN61@uf$DLBAzX;9EE;pxZmDHDMy!Mx{LSul?;4l|P;^By3Q@n$W^XPl zBH3RfmK3E*`mVw~@rNvjA-Zy0<1k6La`9oe*CH6LOTB;f_hd62dYLJ-$y~14`*^Xj z%Odq#DZ;6z`MGt+4UCg)O3Lg^?$*^zGv(YdNR*?Ra_*MeHIbF8p)mOduUg8HMSivW z6yZ{T^{M}0q0+g2F&SW}Mi>yi10dgp+(`dN+4QVdef9(VUGqm4p6rWhi)oz`cPF%z zT-O*U^wJrzV=oib2X{8RAjzr?zRC4_+2A|Pn&67&_-3(cn$rb!o&==i%x%bZfOD~_ zxZtEYcdIwu>bxB#7X4)jC6{jJEjod9b$c=faHS&K?|;^la+=PFH6qvil*b|&1WmS~ z1$ezrTcH;iC(dn&dGA}K=M>^p>}=+Z;Z<2$(h9$!c|+4@ymOzz;dn27z#`2|04vOc zTOjeKbsxm=-+?}3i#`;X!R+}V>k&I_d}rgEvmb)t^W*g0dc{|h6*gLZ%e@X$OWX_INb*yo09q3mEzFbV3MS;07&6YOEg{pN~&O64VlMZ`DDhq$0U7h9-)5;rDMnUhR{3F`P(^)!UhkI6^n;+S(W|1gRq4w5M4%h7N@#*P}hM1jWfBU-g z_aHC57(coAxrQ+PtN&ot2!$%o%n{SfJ+j&Vs6Vig9J&Bn{_rK;D@H0&0L4|rJ3lQu z)JPdyL_6=Qp|eSCXop8Tb1LlTZ>`zkffJR0-|G2f9m4XW8p=?##r@Ug^MP&Or<@tp z1otWTjxo8~mKMW&gaGGgCGxxbl-o!5DXuY1*kpYxqa|^>b$gOAt87`d)rrp*kCiMh z#j;tWB`es-KE;7$i^qzVu|dXFR8!-vv+q;#N1a(zcm7zx^1>Ai(${?`aqd&n$Fz}n zdx8T7%1CyzcQ?WQO~J-Nfwi$v)1n zlZk@wL;1gaK>;wFqlsuZT#NAvvoehMgInL+`O%>3uR4GY^zYdR`{Bb!UDH2|(LMj_ zdvEFq-|lKmxgK``hzi@GqyijXiSkcPE5DyC!sRSj&Ay+re7iN^&RJdp##{F(OGcBh z2fw^DSH;!6BWzF;!oQbvFo^tu1Mh7f@%hu1xxM#f-fE{=+c47OzXkaUw|8eIVKhB3 zAu89Z%J!_F3DfUNU^?hsuGU}6a9ZSw)v?WtiRg3mi|OeYy^M$LKqr3*Yam}QHwDP@ zZ}k+NKK?QQ<&+h90mLGoJba3sIS)5F_bEq4N!v1*q4l|aMyGhxz-jj6Voy$91Wr7< z0U@uxj^c|^0)y)N({!i7X|V6~Hr+{)gYkQY zS17pa`%CInDCoVIhZtieojp?&U4sA9^WmL>d)Jaiy8<%3d)8C5i7b4>ze$fcDU-B3 zK0i+`cv>-C#Z?BpKL_vE)KkoD&)Qv$sVly>#LS&UK4r~%kxRz6^Vi@T#j!I&jjCVB zow0~HwLW%Uord%LKJM3-@N@DL7JiI>`|+MpWI+~ z9Abh*r?xjPD6ICn7LwoYeq|9^q;ODrvq&+Nh({Q@n0L<;OZpmVt<9WVR|u|!cCK<= z1=uSnClT>rOs=^pTI*b2=wl*#eVXu~Zt{yyG>Gj7T< zJGb(?tmcY7-xt25g{-UvlWfG+HuyMdPolRDj6>&aF2cpw|1|vE{z>eNiF_S>0gCM< z2OL>;emTmHH9oWRIevTAJ3bS~d(AlVw2Pnnxmv2raHa2Pf5U84=$M~qMI%8`*2SH$ zrO~*Cm3Qz5Jt%DkNE1ghkt)W#0wC(S5-;xvK#^H|D-iPU2)yS9`wst`es|!x24?Yd zwaiSEOeoe$8vZ^$Ezs%FeZu4#AsOHPVq83$3TgBI;6Ksuy#EuwRJ)^rsn}6FYY##i z)&zv>qQ)cu+~3ECcS4}iWHo|@Pllw5*F9IHiU8yLxerHz`}ZyNxp_^cKVc=`(BpyQ z8*67{^{VsI(Cg8ih)MZtC-@v+ZC@;oFBI@{1Fa^}MToALkOKkUoYmkv#P16n&pPBw z!WA)Q4N*JM&Es+-(&}L!ewPo^9w;4-)#DD3&4`w-=K&WO+ZeCE?koLNA7eLZm>@JR zg%?pqj0cKhlpCX5NKdxk*^BIyCTK^9o4%@7tudTHSgCKA5ulMuXWUR4%JW3^evs_f zG_5_rgqJm1)=(D79-cV##W))kYjOj2|ALh`|2UVIB~2%CK*H0Wb0?Ti>i-`v6s+H{ zo*?PiNfsg}V=zSXks>=9-QRoykm#erJSJA{XzGwrpC|V0;X6T{$%A;~Ad0nemC&ebMzH9lY9bq2c+trM$Lglo!pI@7T*G<6{WS#y&fi_`BXrxmQlYLw_LegHG zj~yP(2?tCo8Pkmc${3~-w2i*+kp}8WBjwZP0=?^jgch;#ryUqv@m< zZ&*J^;0@)DaXs|%3#_rHKe};sIVcaHwAQnO1I}59^4ezJ$urI+@=)Lc?GaDvaXJ}w zsd+AX`3tqwG?~z`$jq;*?N9Bz!u|^^X{3^YjO0$fjiU^j=-B4 zv?qviRbS8r+0YjmOsniA%_0L|T}~dcF-uV>*F@lSC7j4W9_j*{h#Asn3|rx9e@Ar7~cPwg*QH)rBg)d z8yb@47B%kl#2x2|YPBFoG?buvl_T#s#Dt9UJ;tUSCa9GeXA!Ra0(`1ze+?QMSFZVn zl|zia$749o1oV)!5Q<2D^;aoFM##GP0qbmZyF(vT>#sHHI`5Z&}$TTVy8IuqTah;yO42VZ#zO^p|)bmfCS;YA$ zzJj0c;dkCizW%Q(FHOg=D+@bqI_VQ$j|ki(8KLi}wHfrTcT~$UY915^ ztli1x#kqESG?K<{^!6Q1b}ch9WJ_)BJ38z06Aw(VON~kk1394CZ44vk301;g<-f+j zQ79pPb=bv2bA6fK9N^ycGR200byjBa+-9yM2|1m=i77I2B$B2hG8a0}TA5q^dkIEX zbJ+`yEOv$x*|6OMs<$Z&UwL~%l114cpb+6AT@V*k{ zBJw~JHIHli{)n9mx~l^$k0ai(E6aZ zjkiJ27$l2#lqekT0Y-3%DPHj3lx|Re=Bn!&;j~G$JYcs@sjD#y_xq0ay>>-7fETR zxcPMF8?`NgWN%v4%Cd73vyc^@^}IE}boKI#BS#wMQ~7rc$cqS1d5jXrFFKJN6*uG2%ukOA8BeE^Tg-$1GX%wJvLEnpCp9 zyu>L^6b0melghYw%tR&s#HF-7~f>N z4%cGoT+`tW>s+J`#(~nn01U1?Yc(C&Z~ct7ZDA_XD(i|bNj&1$l-YHN?8;)KJcNwB z%4eheZ&>)tB38|_1F+Vm>Q|b6sdgt@DhN9vyVo&3fOPaD1E zDsbD6&iGa1TA$-hf2`mes?BdD`|k6Fd{B^vG_44Xx3kgb#sOzDs^(~ql}h%3J$^4e z`#wHPlAM%HM*8wu(q1#k}Ptrd1>K^G`$b z0uFbn73DnxNA|nF3=po^tK2{8fM#beQZ(N8*V?{-+xD9OGU6eR`?9~t-{5CD3w*Qt zkaQ!7B4uIKMtjG51Eo#|%zRSzUeAQ&<0($xUX;U0UW)mbrG^j#U-vD`0qeqSEBG+=ue!UL}1rrNh{63sXkWq*gHWb^BsZEUG8CHX69X6)y0m zM3Pn|Wx9Q-odszNT#3Tl2*v55#vbyoZCtfJ8R8?_Xu}m9Bnb&&W`lHt*A|E?2OU73 zTXA71nkS~VQ6^Z%ZVB}&k6op+ihWqx)CFZr#pEF6mx#kB8?SFmj!w8P@S7>@IK1DZnWxmFT!#`WElxhD;r3#>@Tb0KxN zp@WTnL4KlTN2EST4I8asf78$L#;}Rk7pWFYVKeq?ukzqnO6PNOQuz5zP*NMdPs!@^OFRMGoy{Zu6h&5V>tik#A! z+pxZYX5)>Ky$xp@xJC{B{^ba9-@hC;pGSBItO_L6t*V0p?Rl+QM@{2%8!avGZcGg& zhTr9rL*!o#A`^%U{TOTu3GVM1(So6X)@=A3@mG75;Kew>=Z_aajZDT!WqTR91Tj%^ zcm=+@aqIlvTMdrc21od?#(B0j}SiQ)JC zIwbw3=<*Vl?Ug}O++JnD#r|r?|6xH_9rJ~5 z@^9T%&(&|;`p{Mi(!SNdxsluO$YwRg%53b`|9pf63x3@9dEva5g;Jaz3hPb}kFKG3 z@Qs@v`tD|KTT}h|fPW*m<&pZWv$1;%wk_sjaiQuSs^6wYh1&K=Q`19R@h`=G4Q&1n zdQiDR*fggX!NWTRLT2n5dH+l$G|pmSeL!+9Kg(7DIMcETxyHsY^U z9Va6(_JD7&v9_^=zn3?A@3AL)2iMP)wGM;GA~lg4sqI0Ok&>GMv#B(_@6xSQ-qz zF?c<~z7WXbjV&MYXZTO=W*rF<!lRk}O1Zjt?aXch}Ju$SVk#u3IrYbCxcK}@t@aCHu2*A!&{I$fOIdUQ+ zvDb1?gU}DTxOW}gjIYv5p3etN9mX!E3{E8sGFW5WAd|nQ(LeL{rK^d-xDIn9_V#0w zrVgL&hzAD7<-{A4dM zsy2Lj9ttdN-5XDBBsuIqWnH_amu!|a(T!JPzKgHP+BV$LZDfP;qA&5#a$me}M_vW! zBS(~mD_XF$60T{wpl^jzT{mSJr99@i=ZEXarb&iUMtp%QxSwq`2}|o=1t+4Ey$TGg zSW$XjcBq(1JFM$Ab#&FQ*#vf4M}p^FG8F3DW0-5?qN(FGh-_N95?5x^vz|W>=(-=1 zHO2bQ;sKN@kayD|43q;SGq9B#~nj9^zjlw&vsrLa0S-5R=c!b zDAjkWUV+kc{OsyBT-6DE9#hAFWE2=j;Q-_pKrgIqTpmbTqvyBsr1gx&?oX5|1KR?- z_=Lc+z*^TgTy#D&`;3vi{F8jF#_bbKl~L%$I!{UQ5lgt}y8kQ`7=#i)x;&9}-XiF_ z(`1^rlNaohnjy8^9h@7V!`>!mvOTH5!dc~orV0Lf9dzL zBd{E)WGuc>oTx2|lXl=PVnkzwMs_vs;FBtR@5amJ5GSj8Fv`0=)vHX6lSd#32bDXf ze8*4*y&l{7XkXTDTL^i^83?{Lh**!y4BCU`U|h)U&e_l#=x?ydwXd=8RDdbbODuob z!%D{*xx75@+v_RA$z>_0C7F-gH7|E=ORDRGyK>=_>$u_ln(W}bHnMWzBFFg_$mu#{ z4f48Ol`yxv%9Rcyu6bRb8Ma7d5!0)Tsac2OL{0$Gnu$l%-ElyvqG-R;n4I0pA(y)y za>5h=n+p!{3vg3_JvRiUC1MVa;C18?4k+1b`G1#RQ+b2~${h9joc!v{b^Lfv*9C88 zi0)pK52^34YMEQk^r~g{E0Yw*16TZC&Qu`}t%=56(?pL>1{#3lYhxauAU2#C;&Tt% zfs3%w$F4A{rGf8EF5;u?Fo@qe!v`Rbo@%0zsRK9zDGgcc3QAoRM~NxcN;ZV}`KN!hr&87f{YKnFJ}u)KnAb)1ZmiDp#eq5c z*GYTurZZ4Fud7g`5~gu3Xn`D*O?z=ndBAmQzzW%+8kZebxro9ol<8+edR);zI;?%LhoX)>* zEi(+#uLfUM{#9+!xS+AxrjGf0lMEagbTp8~!>{DK_k2svL72#jn4?cmsWpq;gI|tu zKE6>KYf)?&%n~f`@PVALIcm9T4?Z_IPjCg6@{ph3>cDcpnWnX#a}_zKO|*wK(YGf` z>$x_!MaSUCj zZUo5Q%)*EFu&}9q>vzb);EPQxT){b6vh=Q{tCyi3hIc}`q zwvF5H@V2TL%QcHrZrWO3`$%A8-Ay+J=6qyZeVv+EkMsWzuftawS(qm*McJ`1SP;w) z7V%uDD!4d!b8t}`jiu}=17#uF38!R|XiU+mYqNJG*=(;m1ZrM5O|*A%_Wti=%2bdU ztm@2Z&2HmhkCHw{^y=Cm*li(-)Ah!cmzBK#cJ984>|O9? z+Rx&^U>tD5oBZ>hJ5DVC$X(px4!pY#r7vl%EeB_Nj{;+QxLI)9hzlMWLQb(fLFB^E zH@@5Wq8h{H0%Cv~-=c#Q>tsIk-buY&9LerFkx|y0k2GZ7L~r2c@O$von#J86nNO|U zZuRhg&bZI*^{ueoyt_>0=Us2SA+`@@Mv{2OndDoE{HWW#%9r0u^*d&IJ#n=RVKS%l zSy2zW5Vl@cO0IE1g2yF1=@O1l>LI@!%F9J=lbw&-L^|N?-J0m*SF$?_>bVFMC!8XB zV~PH0B0EU%xamrEHy6oozt^M5gYrbNDFABRZnKzwkb}7B0?BQJ~?$8QjOWYRSDT0pMKsH$O>xt z{9ew!M=2aFX_a}4Jtb7*-J^UsN*TPU2Oo)C>mdI=qy_D`0%@aWdmh3;mOyZ@eKzQo3M?PE5?+ zeOf-rGmd#(>jt1Ot#fT)*8@;=uLN99@TOp4yR}i{(5r6@&b;vzX^YJkvZ^rk@n|+> za|-WKj*W30+2MGk1*u}VF(dRz<1XG7qILhe3Rn3ER~g7@*t&Y}jMWn-QEzj)3}PS5 z2^-hk6ovw_j+ooUkq4WV^SzVd=iP3N4`KdI4UHgkb`Pv6vZ05K4(#$%3ooj&?>nJ5H?XWmEa@$!w zWQL8nUyQyQ-WFNu#<>#qDCUt0m9GBm9ATH9DcX&%oa?W?cOcD%HI9%jWdq*3dq6vtO!$C7a=zrsj4pe z!)w`s3;X_fp6wx?>Y z4TE&jvcr?!dh4fl-iV{oM1MWGsDtC(&6?&EjoG`~lksW4)p^i{eSKvTGSk%z_0G;C zYQ}dMC{}w^ebGNRmK7eyeJVC?$Y0!gbL*nkueL61t!hmV*YLaejL;5`YSBFKBblNT z&1ugO;$0J&!qkDVi0_-C{`D|uJ z`vO6qSp>cOvz|Ha%TGb+t)d0l*6o?|vBWngpULESS7s&tUNz~;oF7h&ggm5ysyba6 zNwpr~_j#PBZw?jlU$*x-MMrQrq=lU~cQ5L#I{1=@EQ~#TRd^B3>xaV?*TFN&FkxVco}vJ#C-H#&&ZTa0`Qrx~mRSoP+t;)=wwXk$24q z(|j;*JU>v?Nw`NpOk9C>IHxlmTZCci4;Nk_B?_LLWMK{ju}9xMm)uzh%z_)&m09 zjB7H2LHy1N8q{2D?`$H9-ow!;Vjb?CRk=_=IJpG-yJ$Eo!W731WOQeBnsVt*`EX@3 z*^4m?nOpxV*}9gxa)cUJPVi2-yk%uY+2L$KAFY`z50?oG4lO#YkM`i)-7J}MW0_F7 z-MF)cGlSNUt?g#v&5TU)7mBQMFN&PVc+$GUy(ICEQ0VQ4Wb1?OtS+W3VITwBrM<~@ z>`|f@62RWy+WvaiR=Hab8zi*oYJn*LaBHs6R3J-zf!%hd;~e=ECoPwnvE!wckH`zI1t# z&X;0#Y%*^LV+FIJ2jyk6Ou5kY62tF7S^3RIvOa!mMppI(EYaVL5Au*}-XI<&8!~#| z6@dJweOMy;&NK(2TBi+?!5IDB6lpYdqBhJfe|$-<58=*k1d5mPf8U(76QpxYS3t*G zq9K%J7fGfMiuimiy}3I5_mw`BlJ^>KW1^Xplp~&=72WV`uKFwvpV`!Bc{e;uQ=eU( zpe*qhP@;(wsl?nHO2nxpMkb0HNWL_yHPD&brt0+H72|VuFBAQAB6coT@hukIcdcG} z@0V$a=$NZu+fCfPOYd>ty_8%1HE!k(oq3hHS;)b6?qAD7<=WVs?+Cn$v-@0tDb`D7 z{z;tO_ZqppRPP_wQ@rlWk_%@yaXjXq`u{H*7rinaTfhH*+1d3Ozeejblj~tO+Y%4@ zARt$)4ZY_rB1}a&EhPu^DDRAELDQPKfbiE{LwY)wE2j*Zlvmk~&s)cwV0AY6G~wko zdebqa4_EkDq0griqCQ4&`i%`u{)AesV3>)R_Dr8P$n+-k8}V%cYcGK8D&j$HGqq=n z$QP(tn|qWxtlj2x`f6=VxJQ{7(+EvICm5YWp0boG!|xFfDD zMJxa{`|!0=@-;@>K7NDMKZwr^a;n|Gu2tX8aZpHly^kiKhB3an z+Gjb)_{@m8jA2tm+W}FLv_m+L`fdlr!~5rTT~5$}W{Rxz8Proq$`i>~vz=OB3(i!_Uc&86bpE&w;@fb2 zB+69Lj!)Y6GU}7UnJ3>DjjvY!@!!sC+vB^S%osLzzb3^8w8-uM9%>dMHpS7Oy2OCr z4@E?~{h|?Bsd&WxJxbOk2h=!w{aV4{)3t5%ku`i7#lImg760}((73TzD6hSMZNES{ z!tyA(=K1NEboPuKd-^OseReOSKKn#{)-3&q{Izqnc{;-R6LfF0r0qo7+ZNxugPuj- zSF>eo6rs=#?;u~a;Zz@(0>(9J%+~TBQtoiEd0%{QGtSj7u`II?w^i|wbf2v2(s%#m zoVMN6Me#q9#))r_Z+qfAjoVyU?d5RfJ<5ZZ315* z|9?%Fsogo(98SorfR%eo@Gb6=6HMJb$}dN?nM@Uxf5tO95F6(*>Nk$k+)4JNb<-r} z_9#z|lE!Jnc^c{E38SD1yAdk(pPPeEwZW(Ou;(Ke<=u!~yzD)@lA@!Rq1nRhD_pDxeCnEQi_b$8JeeYUs#nQE$5p8w=a&zZ0k{QU<%q}Qifx9xjoo1*KCEX)9_eBto*eqd`G8`Yg>-$T< zalhCbyC3OM&;LRCiG1Mt9kKub=>vIBPwe`#di~M$>tXf!Z*tG|H)Qor?O<0=e7G1} zHsVU`Q8oWmKjo5U3e(Pz4Y~t5aYpwke0q&t3AMt-f`D8~!i!Pq^2WkOePfI)l+_7oxCTHDMl;EE?HvYu30 ztd(Z3H8Pz8-ZGd3&PCI9qs#1o6FcPIz&y3(_#otc?;dl(175T1zD(yWwarw{==z0? zSzvN7Cl7m~18Z{nJjXuSioJPKCj7DeVtjC^jn4ggP=2OdRK_6TXYcqxlf7{keOOzM(lipAr5gDGbykr8UqGP0^3B{yh={z~Ci#*B+aZ4C zoOU`%dT21Ai%tfXiT7gZTV<^KB6-~#aOHs;@;`{rdsXiKH!^u{mB{2H$dvzVKrK;# z)Z_or^(OF5T<4k$Pzd}Hj|LnNgy3LKu5+9hb(p5 z+tg$$Wcy3r-e@x>X>x6nwsgCuYF?;F{W z``SN0G@j+mIp3UfzU`cE8PAKqEp3c29?O>ZP7-H!s*BxO4VJnyi%^5IYcUlZqUr{)haenu-@I1gt@f7SR%(>)0egwEWTv4Xd?O)44s>miCK{KJb< z>o?VZ62N^Z`=%B<_Mer1a#JroJb5l$f?CKd>bZwDb6~;WN7WqMhkuo34(6B6zr6Q> zuST?dwhy#FvU?AidjZ^e4cSKQ-Esc|U)h5;_}hnNKE%H&{%B--Purt~vMKs0kc1Ps+pW#>_DQmX(8h4A zTm3CPaRwyp*)`mXQ<*&36ld;#JHI4K)>oiBp(fOlAvY8z@ar!OwU!KYt6U!}yH~*; zavNh@+TQ0?>&oo|B)jSmN0rk?n$hvRW`E~BUfpqz*Ptx%>J)=2dKu+j)W&dBraCSb z%FB3>W;N0Ydt8?|z%%vsm@&@OQ>}Au7Rb`)#oHcRM^RUGnV`B*nw~7dJ7j(H2=ewK z)Q)v(q1+r2_&_IfE!i!0)p&!SW~R21W<^hGcx^3t`LJeLj?%~E!ibw>E?uRr0Fx}J z430L+11fpw)YCc=#ZZpv6-4p!lgvt3Q4r@cjzmuoMsNC<@mi7v*z;Yx zsLyQ~a7#^jiR&9Eel`ylp!&aw^&{S_u%+_S!Hk4>ahvjL8!X+TK((`%?=9^u>2(g3 z3~zoB>GVa~2dh+0NsO<2>~`!yP`z!e*OD28ytFT3ZK0C4lRP!`tBVGet|rj7KGrucPmN-zh zBvXzuG2wQhLRS5Ul_l8cdFrAepJwL;Q_oLx@MBDI&wrD7=Hy`Z%*063y*1C@l-w!d}+yaQn^&_U^_4 zlrlQf{)H7QRtVc8h-42(9z~p^RJW9`jK7(K0RFD(oB&NLIoOhW4Aao6X4(3 zJPx8SaPTPp%5GioQyZN3hB?%VJY-Upw5zFSFOzqJuse5kcm}U_DDx`%cO4$xt{}nQWrC}5d3DH{ zZuOc@?DiHMzs zFd$S=L}!WvbmZsA4TUAXy38RLj#<5>vk3gx&DB%{EX%X+7eV87hNXYSzhV4){{1C& zB^guso5l?;lHnYh4Sv{V>O>l!+2GpPxdioiy=sC+SFn@D>(7}ZKi|;F)N@p)rzl`q zntk69SmCv1Hgx*eIs#^|;RB{VcaCj)FT4+e7EK>0XT_1FS7OfgP?WV(e+Xh)Y;8mvgeToVS>Cl%mX$pllw zq+q}=qFjX%yH2513^q3D^WG~_G#cYD#2h%c zPHXY&^A$gyzj!X_B5UrI*r01#l$f=mNcTI>F^I2TaUq&3<&h$+n0lRgojC%C73Jhljl%Q`qIWN8*aaAi*U#7U)s11Aj@-q zmlIuM3=b}$9HH9S63e-E-WK-$y*t7WNA`S0ct{Fwf8eY0oJiv&+DsUHj$6oCb|sdo zExN!L1}+d^V882idlBmHvt(D=q{S0wM8+d%Z@CY@ zr3BmI5cZ?bUZrz&%0fGBT01IIsjr_CkV-vzj%d}x=LYfEaZbhKo^xXR!ED>Pk0n@c zQi!wHU6hd8Z8=MjHJ>FadD~f{ZJW*>xiVLuJVLRbnW(v^_(~og^DwK;)BdwaziWxt zQT|f!FtQtpsIGG)DILt#o?V!ooEE>(4>~Qb1fx;yPtJ@qU5nphcy%G#^lXt9dzNIm=o)#LkwdW-{4~_7{;U!*LiO|+Be8LwS zZ@Fvzo!%Rl-ROh)HAMq_>B@Ry15`J3kPf5Bs->HDk?p;M+?PPyJ}xoCK#WS_j1qM#M4;;Xs8^P}X9;WKNkOeSBO>l2eBO)H*3y=VW`oJ_E6k%Hq|=@uEU@p**)gj3^yGq{^OIWsOd9w646WCoREDkP@=e|?Cd8wmeN{df&i=VN)5M|R$0_3i3 zMetB)V#}bDxdFU?JHB8oYS5yKnC5A19*)`T-{xS|x37-bIL<}~%2`9u8gaB}>)<$6 zuF0IA>U0L5uYNvweoTxUz@E2|XTp{5eg23Gd&(5MW`P#QpvK&1cAF0yqf2q_J~d7I zcdI``Deu)NrM}mkV%$WH8pX+w0EU<;@k;iCIf|6ex@j#9=hs=is!zOMO4rCGCh0h; z9bZG(ey@P{XvRnpVI^p{^sRFVHtXT$4k6FcAy}dvrrzIoY?8R&SYB;!veed!J48eJ zW$`1?aq~CUp?rB3yg$mA1}tg&{FJzXaICk*3Y=Pm??BH`@v~*!dOE)9$OWC0_u#iDM`G; zHrDL&!7|ULjvGCe4rVP|58iBsVo8}ohPZFb5vZjY7%g{8327;Q*A0{8!E!Kb!um?o zTG&zj0IiG@52SK9A5Jr189bO}C;g&1AxIAKV0P%V7bsf$C*S12bt4BG9^>Ge z00+PRCarzv`aFi?^S~943gW{Sr538!)N8Rk@-xEjoZq`e6|`7%gWJcq({r-C1D{#h zH9vbDID0|)7nS@5$P+-2EK!Sx>;+(|lDTcG%u~$ANgEvPh5~n`-tma!_6-Pr|Rp$6`_Im8IygoC^Siw`E=A~hIp0Zjr;q|qr{E{tA zwuux0VA*AYyJp9}llf^HxrWo*y~{Er-x>OJssmom{@Vq8v_hp^!Nd=*Jx%*5jGJVL zkx3SE@(58lWA}^MYc3cQ;QdG;UTJ^TA`{#F)kT9=vjJ-!Q*vhnn?A1dITXsWsY~Yd zSkm4-Na>YgO$$Qqf7-XlBO#2(_}%yy_rpR9l+VjboGt9=sXseFJt*Wa=} zv_;spOn6jiy5sg+KjVkFGxC)su;&I2PCvoHKVN?pH<7E<=Ik8(8L_?CJ}YSrp_~vYj&|jXiuyY%S0v7AwxckyANoWiESY zMr@_p1Vl2^X`=#IS)MIP7#^EoLr*lNK0)yykx z0(gn9*DwOCSgb&evDcKUK@CFRZRjC-QY#u$l*f+ph~}OkJ(?s>Op@`vpu-+EBoUt# zJ7CG>g_%lVkej+CQ8GrkcXl;F&AMM!h^F*5(StP5m^hfdXHpMywI~rRr#M;&$%+-U z8YvM>oWfA98byz~lHf;edV=NxN|DPQiVtk{hF?)h$8C?T+tpMlLY1k<^o619a?KNl zX4^n^<~-CGRIl_#XICe%rqGaR8raz?v@?ETJI*gnr~5UI)3=|vIG4jyLysk90O<;@ z5`I__KcLQ{_&dSyV5eEfgpO#n{kf9~6^QJUsi?X=IeVEo!UDA29Yk z5^}AkIe6a$tsp<4ntOHlNe8p76AbE>d9o1R8MdX(a==M;Au#oaX=Vj^xqf481wSX) z{D6F$U#05>PZ4l2w%guqk)ICk7&WJdoW{7m=kAa$v6)AnH}#F_C!JoW9U*vhx`wyQ z#sO2bDMVu=Oz5->YqXk!lJ*2@x7D!XOUG@pDc&ePDVqGYDC6^vLG3Dp%_8p$uEzQ$ z-Ws#T&C&rUOx-$djZ@4t{4VW|4j~QUy+&T*?U1`i&|fp%=)|#HWs;u^j*d}=XFaWN z*5m;fe>TV_4vraQCba_cR2;=>SZ+98OFmo!j69cJdZQBpYKoyJ~zvHiHtN;8KH~->Mp8>Vo>r+YBFY zgixaw3e=}NR|L%&1@9c->OYHGgP>)St zZGn)=#Tvi%JuWYVZG@_Bbq0+YP99;r0RxsWR5w6_3VlpJ+x^tnxcC9i7b@RWf!|vY zVB|L$kl6rAoboR%#_CGdj(BSi_~6%HW76N{R);DPwnc$=v0hf@%%*C)+UY3{d}v~m z9C(kb39(`sA+mb;;w*SSuiT=YH_uYuo80*(Ja3vmUx(+L=g)7LC7Xa-ur|8-JYLuGeCu zKQ`M~xzToGhKX<3euMVxC_ekV_N)V2XgGmScGPQ6-oht!+LQZd8@)A0b#6wpZe-+r z+Xbz}kFkVPD{;r{zRG-G(NQLD+EJ)Idj+3awP*BAhB1em^-?xKMt);ELwgP)2qg9k|K7+$ zk%w|u$5wH0@f!<%vrugli$w-0?H!7)k3s6fy7S7`SAy_Xh`FJSc5Uk}DtgrojiCs? zsgqgD+%Q*F6zFnWf}do92qXDToX_kGQHeI5C>*P0j^3d(y8`806uJi}Rv$oJl>&08 zoRi-ugBZBwARL3Z!gJlwGmt%wqk^0}F_8V)SuWnu$*iG$9j`Z-SvdEh&I8q}5Rz+D zl-t~#jB?EJQzus=P4qe&=l7szvyWV+74TIG7x&KZIWO~`!?!CkL*=^YKsI&O=OkL_ zQl2l@C7R2@eHbBOKy(gd6K8Xoc?YtOA{30wh^(v=p@vg+X%pW4!hrQdTQ;Q^UKM~{=@*SSe`T+M8k6&}Fu~P~Zne_j9)#+Q_`pC`K2x&`mX|7rBCMeI=`!OHjpw3H)ddem z^7yHUYmJs67~zbbcaV5)X{=N?#L zQ+^R*#GD8ZC*T8z*W0qa|H=IWPG95nSadO7JUbJ?jmW{s-p<%1EJ(ofS{ zt}~yt9;5dLrQCbA`S)PTHqERVl;}MXzmwHkga7Bfm5PAvRUwCiUO!XK4|OWrwij052r%AC{F-L`nu%Ql+3#R&6Zd$5vfDrN2HEzJ9A#E$Hr#TK@#-|1by|yvPOHpU z%hI|>4MjwV?A%2*x&B-Z?3wXhKa>auScUPBKl^PSOX$P<7v4K`gmN|(cXKga^grjh zy@2wTU#v}gMSh5P4`fRwjnxC$i>GNV4yOKk$<)X8|7HVO)*Z~6HQO#G15+n28T(i4 z^P&9Y6MwbA%a4e<1mA7*TcZVi#fe2RpIRnUM2KfT;)i~5NH_J`9A&6r1bfs2-&eWn zya7M_9I2T{>ov1G7jJ>2SU*r!AbT%8**nR)9hwK3qpu(xRhwPKP(mKeer8R5rv=Q{ zme%P$V5)iouWc#{{xy@=Z}B*~8IQgD8ei3M3wW-z))@zufAIBngM7~a{AZN zx_zhAmY3uq*xBgv)aew;ILW-8%?zE~=j!V8cGxMp+M}%3jrUBQ8#~P`6MA9;cF6fLQ=l-qLRu6r?!HS! zrUSaE`neU-S3k7%IV9Fg^>Y~|(ghBFBw~o7h9-g6t{AkxvwE44Dn9HBTH@4)Iwe>48(|0Nqx&O| zOSbsis3G|x%-XK9E->*-MK_M~?__b2DtfQl&jd`8!?ZJ~(!A ze1~*3Pu9Ee9y|vX{A9T}%QVV4lF^`%F0;g2V7L_zx%t zD@xrj1mXR=Pe#`2y>RUH@sXy5{OtFAwJVywccjVkRSsT9VrcAI$-$TKSA=}z=y`U2FXN%F?RhxdIlrZ`XGeH1nV!@?ns2o^9F>*pZo2v2t@jxg zFTU=^YZl-A<;Ax_GuHV_{Mn{ZP7wUzmT@|Egtv^_gp&A%ke}bz_D1;D@rDXo6DaD@ zO?A!wtGZWOxVk)dL|rKPp!7p&U+bH#Yv$i=;BDOn5pP3L&qJs~>Zi6%7bR_RQ@Hjs z&vQ?yHa+S&CF6|HA(o7HNK&|HzSJuIP+P7oZnh{XgbPxJ&p>m{ECX0B(M;u9X;x2N zHmg_PY^cbUtHE~%TMJSXSDt+s(OTAWZ?o=_e|Vp9TmIpF&P^?S8|zdNo?l!k(<&{% zdUgieYZJwS)c5C~*7MJ_dFwkQOLPb^s;I{tgG}I04wOwAW-K_{KQ{wzv;1wfL$ka< zJoivdMcB@r*iMJ|>_2$YG^>M!-nT{H)S^l0roNAD+vK+pvIo_o9*V=DQwlVjZpOX& z5zt_F&)M81iOr!0`Tea$$!)5wuc#+i(`tT~bXf9MSfaYR;*7bE@4Q>1L~`ee&gHB= zv|MKo{f~_(0aZUA1hPEv7NpE+ozgRp`LEBMLO5K0@Ck}OYKWQpPq$gzP*;pxn5iom zd$kSRCU9-70sj~B2UZ6x%i;ZxKDN}{8uB^)*D(HQaEkO)kpZlCz=CH*NxORWEBCeS zm2!Rj@3SsH1Cy#F3^w92?_%C+x4^d>yt)_<- z#a{>(CvG@)^yAyTwh!vTR$l`?(V8ffV!`}lD@5v@@642_n>9YP2&sHYvISeN_It%D z)e(R2p}cr~*dBi{%)sJ$9EuMZsDFrPPO)lFEbh)rR`wLg>k-B;VUOshR?Xm*Sdgwf z?1jR(ZmMMlxnkUbJkc}&O2;3)(*9sc%6`n|4u=}~YUHAgoood`5t{KLz1|=E^9No? zXSbXu3uF$j*%W`GOs=(;YOBSR7CC|WfBZor!VbdER%)oL1eS)>+p@v!KMmnS^oaM%_7%}K8Y;p9b< zZB8p*w;#VNb^aBRu--KA@yT@d7w1NrZd>1Y$B&nDa6UU{%rC7wckc5WW@dCV7H0*( z%pML(&ajZ4WZ}hS3%V4^GP-UZxJ8SsiZ4sKoy5>Ic(2Puv{l~EYY~CSBB&61hH}#C z50VJUVq!TJVXY)^l-) zKFKWjYy5vl>|lw4r%gO8dL=XVoX)!=GZZmLyU3T@yKM}r;$Ti}=6@@BDED>U7KN$1 zZH)4_8T<4-x?V13=yotQeDP{ipEWilQS6VL4)gRylG`jPLCT9tl0BNvZars)T%B?0^<+Bn>cRyxdeX0Vogc#l1nifoB24Y!9Gl;Bx! zUM5dwyv9+A_UH zJp5M&v_8#Ejn3AnxwG457tf#FKUby>Mc$M$k+-F&Xi45HmG7dcP|r$tiWX_3R2Pnf zb8*7S3UOG}&A<2a3kJyLniy%iBI(yKsFA!Zl7?j-s|8`r5cpBQIzPv(RwGZLtbcVc z=;b5%JtVyw;M77UfT&+8!C6-vEsx&mS`F2!VX3XBtlO>x1O_%hJb3AS5YpLK&KF0) zdy`U@fI7WWEHi#LV$$f@vIHj-MMpxV(R_Kt=O^ad->e4CfKSoXB(Gq2a{5TWHk9D*`HDWu`rG(}kK(JZW zB6)-XcTx0Ub_l7%CyEY=;_2)?X9=ED7ineeyW@l*hsVvmP`$XfvbUnw)vJfa2wQ1_ zYbZ`yMO*S_@fq>A2-#YX9}ImtxQ<^~oOWt^AUDn~1+%R48>7y&Ye?tMi}Dcgo1z_U zjN2Y7>MiN{qsnW(q#voW=0oa;Z3sDe@*XXWMuohV=K8W-JVb9QNtPj&l26~$K{)pTQRK{a>mdAVs@Z;k7vSh0(#F7QO3(2Dn!$lApkL>H&|61vvsQe?C(Y zXMC&1d=mDIkGR|CGDaM$Qn`Vr$hdmNHO$M4lJZS{C{SHP1ySL(qTa%2p!PN8*FodQD)es+!&KTD=E`8jeVe*E6=LyEOJ=p|;sCxnZilq-Qp}Yo;Xe zx?61SkQ6))wm;rQG1&?-6gOf~oSAxWx;{Bxw zhg23fg&g8SdEay?>Ze^s!|!uAtyeT_M%AlfAst7so$_9iS}vX@+2U`fooRl+oHEFl zv!`e2d(WLNPkA-#mZ2Hyc}He&-kUni=X|D{>pi;!!~y5LCR&~n5Jw$zP+i`8q>W}P zRR6d&ojr3F)bbQrJ{Mz4Z=S}|Zl7pc$aJIa9#CeLbT)c=q^SrQ_w)E0F9uk%lky3{l-(68m)i&AJ!^)%DI;5arcX>4p^4RYt8DSa!$QN||Iel%Dx_BKv~0dR!@2 z;i!Cb#;aw@eg7j}Uv;|9%v6;Hu6GBwlqB8^|GG6|;(DBcefJkgOnre!9zSeMaNC2< zG=nX3nOr_Nx7Hh=y!sI=EAOu!t4c6+C2<%X_{b(0;EN&K4eLTCr{J%SmZzFm-Q}vr zIkeANDU%o412ZkFY&S4pV3z;&_|qR%%5O>~GDI3(Q1@NsyC>`AqNraMq9yU0BR1qP zEg=)n`}NUElq$hfrA2)Dx$5abNw3e_x1_H;;eckpJBlqBD^tS2+TX*9HA?etigdVn zhgWzjR3*P5*@Ys6&^A^i2VHjImk@5`a z%)7=9Lc9p6*#6TLm$yi!yl`JsmZQXRJ_CX;>WvENC4EJSMQRmdb`i=b+h)a9Ra!Fa zJM4WGrbcF$43M1&Nskk!SXd39)`1W2-K0cO!YofZo1O4ny;Jk$znr~Gi;r*%a)RDd zG_!K^d>!f(;2y|+M_aZ2MDfZiL`fVH%M<^(qX1;eh=KF%y^G>bNgDi0wcKTN{JxTM z9!;&DD?-SK(!VuV6z|{}zb`75`62=S&`EJOi~SSckt^9dyG1CEo3?ftjlb8TV`$j2 zO~aOL8n$f3xFaCENs7ex8`4HCtO>Hn}KmQfp! z+82cC#r%1npGQ74CSfV3aBfSeK`a22>gviAd%~Pd1WU$DiGqM5@%|oT%ClLfX_u}3cQ4@4NU;$GDC*9(T1$Co$e~~y0`+9cF5x-^U0c>j@wzYe# zMxuOD7171=I+s(6)^JT`7&V|ZqiU&dz6}rd`vcQCZ#-H%I;AX*QDhI$_I=Buv_i2dRV1D2hliYYTzX5tr*{v+rJTBm};BXG9u8SdF7T$;A7H zXR}>+--mo|gDd(KSE^FWA(^=BNWM0{2t3hXWwBh<-5fd~`z!`&mgX8c9AD=W~8&vX_f{B@yprvnLqAw&PP~zcDzA) zzm&oE?fCxMQ{<(>h_+axNVZa@n2;z+ekWUhnJ8`G)ON2aLm5KS*-ev(y#ZS+;IK#O z+H|TizM*xIEQRz?E(e_*k{$cZ9Hsan%-Sf!Y|(?*5+yO(&eF#g~p(%Jo|ImGX;A z#|<%XmPHr$6{bp)`Rbvq-q;|&xce>_pC||hP}|ZgUaUu%UL0S~uSCgoNlbLMxhlH5 zJbZUS(4Z_CuEbd~GQAQ4&I;74ys{j;b<7?2XNuybJ-;bil1K#ex?!x0Vw~66#|q;W z$@h36UYh(J4^@BOdS>f$K{msz>_N%3G=3jn6n`Q36(ukJY|tHdjM|Yx9oSZpNbrTJ zm$riE*&x|>l%-3Px??W266sB0sw~ZTo)1#A)}m3-Nzi_6dcCu(&nquZJkGo2$Adj% zzV6y?gG|&$RylCTD`X$e{Msl*2C7UMGBop2S?N6K%HLL@?j}V57joF@=^Snw2L4HD zl%A5F4?0FcDvSo4H0#z+bKpzp>U3lIC~fVR9!D&9$_6p_u3`S&4>R|v3+;g?52Zmj ze*GIbzlv3;_4e0x7s_4yM#&vpGQ7CE4CMqT_U7VvfUk)9qGfUb$HyJVr!pU{z`KsL zw3AjnqqWqhuWmlI)B6=4QrXg&6XgOSc^T`b0 zGkiIFYVK)gjZ7_2zEzL{660T#D32fDZ~MyruORd&wJ}pS&D&T%KI2L`k~HHjD1B7I zmNlA3=f{4OJk}v@n66M%%E7@Xbd+~`P+u&GS0_+5JaPS>Z1sB77vboaKh9xJ`G7+q zNq+`4X0l4JpVzzU;(@ZeGfPoQxKzPG$1c`eIo9O*ab>xN(U-NT)P+i}4pSzF%Vz%B zJ7jXfCc^)gB+q4)GMA)vgQX~UK7(@SZ(8cM z@7ivGtqp9lyc3o>ldMuM!BT?)%YKN`Pu(srNr^+C{L;f4!p%@CAMCzgY zFASVaWvkCQ?&Dw>Mf`Frz&2YhHUle>Pp|UxXCj4C(Jp2wn<0yLm-^c_${|xN(UIia zqtf=e{NvV}zp>7GzfeDuJu#>J+=3;Is!8KgdW}m_<|)(t6x-piivb?Q-?u7rzgzLQ zt8yXsJ?mKnZSZ{X(pXD%duSMT^37`++sL=2Ji~NTO#D<<)?z3?v>wj~&Ozd?`&l^} zCTms4{SIfdKe}D7GAme=Mp>jy3`!wn`|-YR!H|VvtYw9=m)IoE@oxH2Pgl}l~!}WeA%7aGaqZDr~7rjZ} zb8MHce`;4M`^i~jJY2RA!^xa94H#0ZGK||Q8)Hld&hYkMx9gH}`)Iqho9o{jV4`en zL%_{H`aKX+pW{(CmOa10?%~w?Z>r z1NHitrH|=%tESz#m}7Riv5i)*cxClCMc=me+7{w|AG0QhgK)x{7!I0JxwSh`_Nn$b zMF9O~CZqnK{TUQd^Ltv{#+bRAR>dtiKBn%x?h)h8%zlCLQ?)AAo(;QM4;$cOE%mw> zt?jVgP`4&y?bpc$$sM6}#>$LUW=R_tY$$zc+W1ixtjT+&SA#Ihz^n7xxFz#S1U&Y1 zZq6xlQkx|W-s6fcQ6Rk#Bpb9_PRv!=R+5cf7s?#Wz@|~V9BSRC3K8)7GY$W}jbki4 zL@k`S+QQ<@)%r*0>sOUx)dnx^$vy}qbvMZ&qzyit$vf-^@)7tk>e0J1&!|@U zP(+t3lVT|EY;f@+y#Z4PW|)B+Rg|0txTGm{U1p_f?cq|w9y?;7?hNv=ol+%HR%)5b z|NBf8fqnpottYmSoN^%Zfr?;9&gbn4Zmcdxjrv8vYRZ~4Kj4* z#c9U9`KN|mex%Tb&)CW_8M2g1W$&4M{2mT|`z7QhH|4wn79rK5e0)MUmAzw<;%?rZ zG4yu{c>rz(Ww`KMy|&|jo6_YbD%mp0_G)$x$ti<6;MZP23ULf^*T0wA-YR z#i$bjPGvuwG$cu*hngK?y(9qTtA?pBTo8U;FHu%rT^gUOy0l-^4-oDDKN(irOQ4Kg zN5`1B4fazcm=>~s_FV8Gq)ffw`vmJ_<)=h~r)1IxtgH*?{0MTZ?s`}effZ%SD)6on zK-a@{v$0gRa*~PWblKGxbV;(}Vd5g{NL<1pdWDftpp5cxk&mBAbcnp>Yq~&ZX*HCI z2Cn#Kz1XHo`y_pLEC|Q-F*j^Loq1=3e9{<=_v@k{a8YBlS~bXBP7}%)pI&0qvYbb)K0Sd6?ecPs*Kck>VM8y!tN)$`pkR`c84&}x*`Rz{O79McQ4$EM95yEc2SKRwd)^)GVp z!d(md8#eG=vED;|>Z{M}h~#9SMVSw!erXHR0&xrDcJFwp?MFD{S3)hyOKF6ajXI>@ zHmGweb+AZPv8BdsTrB8hYP$p`7|?d+ISt~nOI$oJu*LJrmW>Ygj-azOY@dfshp;)c zoeU;g-_hnu1i4X0eqt--D`sV3$ElO<9fw_iLRsX$PVGdP|FUJlE|jPJdDJ_RPI{Pb zD{vu{a}?%P@GhdGuR!ru+qW6EF{{28yr^);oT9a2qr|Gb$W;WSG7-FIC|@!-MMgIK zojqtO`^u>!*w*$fS7Wb_<9uJIfJCEL3;Y`4G4QTc+>s3~AxwP~ehhqmyx!#UgvBjO zk(vg|f|bos_1Ld?D*vtJ%<&yt7OQO4kkz7aRg&GP=mdQg^eoLM&It-6q33O0;KMvq zpUSR1tx5tvSy~4(*?+r?v^j3#nYGlGD*8LbN0}?!k~~Qld@3n}1>;>jHZJ9%bfUI) zL3o#`MGO^d?cS z`zU^>Z<}K67hr>*jS^LdDA%v=rCqrLDzCv?eu2C}A@fr;w>nY6=7p^NuSu|?MEP;B z_(YeJjbF|_dSMN3?bpX|3ro^#(qORk1j@utz$Z&DfK!jOCr^z?hl17<;ItxC0^YR_ z(ES%$Zwu3oCq*UIr*z4Y6J-D1(%Pjq^QPevqz{%0CYd~lo(k%f4yOg*W-hFETKjf{ zKd*w@6f?%Sm?7r=+B?RjnGfd2(>QE8TnPpo(Lc?ok|_<#D-=UquZ`#i*C0|tHk!&B zCdl?g*j~McM$`{1j_Efp(3pC$T^o)mqs2Sm)MWPPc^X%mM=KQ?!6JoP^kpmw-Mp;x z`gCqQTQ5@{JVD95>rz2#jcj&>!~3?HVqHAZYNOH`rm;y+ha)DO>!vv6V%g#u+_J$T z?4Z^XT5Eq#qm$XT^CL~a-^{`3+jBm?gx#u?%s#HYL9;!O8I;B&`-2T9f|W0dSJ%+I zNGV_ryv53R+pyNwLiLEWFK8cCO6%vLhpF(iij?`Ij81LFF=SNwV&;le0Nt8KfH+dU zz(1mUA`_bTe3z3Op2>bZhkp}K^QWYZDC=_COcPscREYbwGjS^qz16FHI1>cysjp7& z2~(cXiSUY6scj=l!q!n7PoBkk-k6IZj8f}R8%xoy)D5noR?yaEYp(EBoi=8AZOo$Q zMw)(j8wYD{%Z-^H>%VT6b_p%>@n`iXXw53pnk3Cs)uBND*&f^(Av*U$&^VUs-_3JK zpK56*if9at#!U7nb3`?%H)zZ*X6W0b*1w(1(cty8C%K#=32(?SF;kT7h3;m?q50*Z zzE>LHb(&|dq2JiwPMhxaBzqm1Aj#09ta1uq@(b={Hh7K^jL{LJH?YgZg(i&pxP{lr zp+=KDlRbKQP^6iFU*9=mG|GT7E6Pi&$sa7xMtig-(yLb+2N*CUXr{fbkk2QZ@*}pr za}_X9nr^s-gCE|!5cd+gbj?$y{d)qHA*O27 zXzlhupn>Uz75ZK_^WrXRx=4jud*W~|XYBh8ke7NgXiby+_oS9JRxfw$ifZ|ypt=ZJ zE4?t-$o0TdOOkSyF^O6z7CF+LGJ0U-^`bt}ylWlLAWv@$=;X#wGvDktMWgNZXg#R; z0v~YXMIQ&djP$b;yteKl#T>Ktnd1A~f7hO9xAYuqx5FcWA_xVRqNHa;86YoZ{%+lS zx2h&&X3JEj2C57_(OeeM4-84f{sbI1q+dW7mjcR_87AKNhACM}QJ-qeNja!xX8&L* z82YT~@1Yi8h~rVQVp&!z%cy2~1z3{yv@w2n**m7dUZ3SdIN+ zQ}a^czyXNdqf2ZK=@Xmz=6X{MrBZy#3621GUr<=D4!H%zw*nP=NajQk$hzaDXIK0z zM+HcWgQ$c!U|L091#h9Q>{HrYe(CXG%_u6dc<=Na*_>Bq1f;fKKO?vWKyGn{@W300 zn3#~T>zAdcjfMQpjU9*s4mT6Jmj}e#zg-eUvQwaX<=F*#`s|SsFhuX2pVgLV2V+MX zT%i8q3{0ygB`NYm(Aa<73AURD^IGtjmr`zFU5xAXNX1gTG7lbf?L#{I;+Gz* zgu3k5pp)^NkbZvovbRl>N6NgdLlI^zM2Ess+x|ug`3LW3qI#K=z%!t&Mih*(9zVFZ zQv6`1p|O%ihI##O$JuLjNC9}Vq%=PRqCaGurfd}V%_Agq`>NNV2>stf%?FOxH4O-uxzMP|4-tYpCuxLEO zs^RBjlOs*iMh*%$aPz*ynof!w?TIU1i6ZJVnn$HAiXX z%_vB%stPf4Ow!h}Mo~(7FC?O7Vj2^qJna92GrDMgB2TtPSyk6(jah(=bKS;X$~$1_ zGn_DKrJkF~Pvs?0U-nQ=2&h>Kwmu)!;JGcK?_+u`QCl}B+oRS5&fQv5_lrSm6pmW^ z?Wxy-1UHPX27St&Ap2-*pM|m%j{3oxU<1}}TUs|@k^KRR%(qWvJQQDyEZnRz8zQer zsPkq_sSnF+-4?JXdm3$tOWCHm^-iMS4e)f(FhE(n?D6BHM3+mT%SjNgoT-ESWM15q zGCQp?d;DgkIez49RiIBZseeAnB#xHpQ&sS6z>KZUa}>qC9`u^BetOW!4$VAsTHor8q-Bttidusbr76d z7P_&WCvDyAd>u2{6PKz0`#1hB-;OohancySRRnpzXp+nci-;27>Azp!L3}>_$D24f zvpyH^y4ughFJ(WP?V4Z5`2G<+EW{>W5pCA?X#Y4~fI4tRx2wCn`xev~&Hn1u$aT9d z-L&><`){)-nf;eD7HvQNPvZ|uhQ8YG3T{Wti?hAyw7%aj)kVQs8zo8XzKfNw3E+q) zv)7(3h;#3Fq5-}#N~<`VFPc`FR@?ee!UhJkjFZv(#v7nDuoN6}C{Tp-xl-9%wiL(u ziAGD>p7J^`Wm{%-POq~nT|KbZ>A_l$oUR;#sihaaPILTmrwNGxtjLe&rD?r&-#A4j z<@-weO8OS{756Pmn7Zo{y6)-(*XMQJPE#q>v%k~st?Y>#2&()`M+Iu^>QC>!GT z1nnTBmNdTTF#oDaw#H$q6E6MYDqPS*ZvZ7=%&ZTo*+a1E5pMwH|iB~0-HyftZ`ZX^hj;$4=D_QQRMzYoAUZc6tWt;^bd9tilR2 zN-9HYLEMq%!P;l<<|JF9n6kCk5_*P>=#;-=A8`97%09rtE1EXXA%6>z$%=>AJPo4=pN`BBKCOn@ zfxYEE;5GZmI<=lC&HyYgR&+52%O<>a83B{HNiyone)#CI9L|o=Hs2YzyP1S67Ou0^nCDh zqq=U&B!9p3;5L1%!^uP$q07T+wg>uQMrL|uviqi)q&~jh$@nTW4{g);>~*5#9JdB_ zSi*r&JUFdSu6O3%Z*y_oP|GF?g4T>K!KDik-jNVR>1Tvu74Hm~RsAs6Uy1MCHN6tJ zf%Q&(T$k8iSmR&~yr;_BGY#N1Al_E%)8HuwKk{Gc~7;F6a&E zVjCs4rwpvHDR2isE!3f0m(j&7Qlq4=-~lCVfId4g@6}0nx|WKNd}51NqFgy_f=2Q7 zOFqfW`zWhGqTtO2~0k|M2h%#r9R1Y{i{LK3GlSG4o0d#SP4_driC^}Ex@`4 z#Unol_Zwnv2jzg48@~R^>SeC34H3(3eRmPRvu&X^+X?dI&DBQnxPO54h1&+jadE9y zt1fDY)=QN4W3OZwLY$iFyl9AfReB4>p9Z%3RcJR%lP;)e+3tX8l;fX zA>iVc7Nhp&y;_8SonlNfNM|o)-P6o!zw}h_^qAP@ZaXAiT{*hCqL|3ua!$N~gCk#9 zz&AVSAQGwD-ONu)1JaRTzV-zlw&lKoRx@s&9&SI~UezYH<-KLQzFt+^AR2g^>93St zZ9m)Yed|H~8J_KCl1YH{BwtbSQiSP2N$`5;XA=|$(AxP|exQ=6=cFG6xlx_}so;f- zMV-p9Rgg%QC7n#7sDmLZ|L%`Z3fNaDlb5Mi^3B_|eXFYwk!SHx`>A%y!kz!tkt;C+ zO*lTe{KdlSwO4RSlwOjUm}Pe%p9mU`^Sm#ragPj9zf7XQC{oi`q{&! zH-BSYnabnQ3ryStB`V$bOHf4~wDlF>>4D$2AiPzuj8&lO@!;RabUo~0%lsQC157VO zurO#npTmfS%So`e6uVavy9UxB|h*DufjwukBFq8lQ=k;8Y9Jz@>!tRGecK=x)u!26p1|bFt^c&>rGG-Z-$dznG6T>HH9dS}SUT`lKv6CGwhR-ohh|Vd@)2CW+J|%0>r*x|DTv=u1pB<7F}i z70=dy_tMxv@RKoJir}F&Nmlmp4P{)n9%&0F1tgwNWZTaorN!$; zSfEg5HQSBiIGbTsP^R31lmLqoFm?Vim0-u+|D*+(QZB0$!>J?+o>$Zoxio4AN3X!} zya9^W(AO3!#Q+{Z6va`;oa((?n%EqW0w%KmK{$#tJ}5!SYQOsH$SSD=>nTmPpn{c? z?OBDgnjKKEOwU)KzlFkZ?%t*$_Hc+=oTH748xjL(hnLSk52~;+e3Yw(-wIm;#kQ4}{GteYN zYuYs-$R{?JNAjir^UO+y{FC4R4cIXho`IfPOJrNvdq1Jas6>nj=w>y;>$WUk0?2Y-x&O?6EGr6q?$h zu_8r!URkywR-9#Yrpc<8rz+EMZi|@{hSlE_VaX44Xq0paRU~~dA+q0w#sxa}3M?(x zDu>BxQI>pkZv1Ufp+06t=~XCX11-m~ACHx(m04C}>Vi-)bY6t!qdJnxrR`cE!?YEp zIqAU|JGpVnjf0J|48F_((XUV>DombzpGE>TCH=kky$Y_FM1|Uscu<0RZiInAi$`fU zIoO|QzZFM?%E7W_6)D9WKd)Z$%5CjZdnoQ)i8_={*=E=rQ(vh(EaWIAvFW7#g6ZE> z3f|NPAt`Y1B~!X{iyPF9RiMqhyOGY^!(Mg0@Zppv=|zdLl;n_M=g=6+8IY5XjpN#V zNh~I$?4tp)p6g`ww&)waQ^*Se{9<{L?2=_6u+T1V_>M#7$88Pe1MXp0j^o$HQ-*eu zN_HMA&x9n%mjM^{4Qz~;$Vf3xhOl1pwf<_ZB;#wd5nc#iEL)&*uvl3rSDR?aWy4_& z>KBYujRZ$LiuaX;<5K5dp?Z9+5FB?3rAmZjqHr#EiGgYb8m`rYDihv|Gt&wc0}E57 zqrUtG+|Rp~TcC7w0=0OC8@VR$Mf&~y6JdBduSv!5 zfcO&5z+S=H!i`@r)?DOLhx7DIiDDZyu`p|K9SxC%%Ty#l_`ZjVCN?Gxf|;Mh`%B-nO(T7p>hAhsH9U$N9YX1m!3R$RYgx*C(9HLt<&3 zA3q!l$YpqC;y7i(b!!3CdhBtc<#e9zMm_xzVg37_5oT#!&Z&5#(nvaK<3cIpiQ|Zy!;=4V^w}vY?NaQ>iOOYX1|{01F!=$kf{;H+5paQ2 z6sg(Tcz~;vL7Iq_q~UFUx>8*yl_NJTNx@Nn$~|13J!o1t%2ESxfO}Ick?P>TD~m^7 zs45?Qx?_p>yULOU&vjI00&UP#F;K3fq+C}tEXN274BjltK98%cC{1z93jvl^q^ugv zKp<5-8aK~qissK~-ZV>1nonp=xWX#U6}jRP?TK`rH!U$0DI`SE0#i<|24Xv_pBa3?*Ic<>dWSX66`O zoTAa{!X4+xlq!dj?(MnzCwGsbL`L3jA<;eDBYwSoV|zo~orMOgM!o>gU8M1*S$Zy3 zs=Swj8uu`>bVY8tW>eO_0z4D8tK|bF@CE zctCY>a4u!$AG-8@K-t}UqsSlJi(FGR{r_Q!XB6H!^#1t!s&U=fLOk)l2`|{?I!Tb6 z^1D)?g-zOqOzhppdvg}q#0af%jw(13*4{9dqO(b7(yqRWBjOk=qRa+0!*f2URq!y5 zWsp8i@6aO6JY$=`|F(Jm=x6tx$j`)1;V_Pn>2V2>U5O$qNDgq0K9@rc631!3X3g8ovtDV&IWlH?E7(!yAB)kM7o1yi zkyR~73>%&e6yo;;uuAWtyt5o+Lv&rGBWmA#=29cl=l{D8L|uIJZly4c=hK{LUHTP{1SKy zZrZd}B!2N{`1yBQBlJ`|uFJ$e%mt)dC1>I*i4EdfK^FH4?z!{AeG^XE+iOYQ+#7{J z)P{5{5Ov7b5&Mu}qIz!A`^}hBI@^nhgr4lokc72Z!+lz(6tWz@-3;V$xr9EodcyM@ zyX~q*AwGI~{57&*$;m{Q3l5_vrS_Z?B>*IL&oRksA9nd%6oX zsttl7$^!K3Y)S?lZ026i# zR&^c^;_oKx1GGA23Ew!t4vL+2)qR+$Cod+HhM|>wNT$3`SSj?0 zsAYpq`41f;|3^zoYkMKQzI)!&_uvHiPwbr2$RfD@1J6cPHu)zilZ0lc{O6jL_sN7{ z9T<1W-a*g655&l~346ox#-{cSsEIhQC*x^koYSMc5Lblo)Qp>3A=?O0+Z-S zz`3WUnKt{7H|5Lib?$0|ij-h7NnJpUj4_lHq2~31$ zB7qwD@%We5S(6^wCc9<(fOEJ492uM9m91&vTM%j1eS^G|klf%-f3@8Lo@`%xX}k_l zqHA)PIe0ctn;C-A!Mx=S;a6e|CVo<&!=R0-FaOYoUJtw zSa!vbF3}ERcwvY3BjH=x-2Ne?y7JE~3AL7??c#)3)Ve3;`;BFsNwxqxybxxLiOY=I z1Z>vK?2xhK38(Ig@sF1rzo+T*rlzkN|9MllVj;G2f;-;FdRG z4U15-VE8=_lyw>y4MO&xx?jJw-4i#HY@3;D=CL_=(TeYOMSS|0v|D5vDs$c_A^T>) zy6J$xEPFIIlk?^O5F7D-uVN#9miuSVgw^z?ExDQ*28JT0N48yO_;JBErW((k76n_r zuQOssJ-&Pyko&1d|Ec->9E@q5VJ9ZAzcK9ZFRro7VSp7f((&8w>)9^#?BEmId-$#Q z+{^E{ufPAE?Svo}naiZL^`5Og4TL|My5_T7O=P2?Y)wU1+h!jJlS4an${+{i3ZMo+!uVM}};;Z5lSnnRhUJM)#$Y zbD6eeW|&Pz@rq#POk8N@OjM1#PO+m*^NCz!AtCG3h-%C}`6%j@UlUOW)0q}qzDfK> zb+f>Zrs1UxOzTMOwEpH)As!9Xy#kZ{`BY)uQ#^oO_fj&xcR^;6ejfhF%e&)+#fR;+#(+1n4nn=sFiCp5X+Gnlb+F zf{Dc4W<{ELE=Qjpy_Ry)D3(mv^cAOGcb;TN3E_n;o~{G25{*5|w5YhUAB{QQv8D#$1MXDU4uQG$k=XRneXx3iRbiqL!J?=} z*-6)2wjlcDKS{N_Pg3qj+Oc2J*g3o6LNn53OmwTrp*6~me8D(!If9=*zRct2uP;O0 zNZvXOb*^Ssr*q!F&%2tDN1{e)&F;%vlCEZJy1+BbVRxS8EzL#RwnZqdH+bGI7Fqsz zoGDFWqCwO(Sp7FrJIAbK2X;Yil#x-IK1n^U(#U?U8e30V($6HC1*W-5W1CrZf#zzi z))kS7RO@exti&`f(Ai#SyhB@wI{{^4cFWO#zV18F;6rJBKXM|kR*kdk&Xet7#|)vm!?}BA3S(TlzXGYso|A$Q!Lh&b zM4_EGO|^fA=rYmvf1R@O5pz$!Fm<@|Z*d^*v;%lhys_cGFW|qwv;cgF>U$Ee_lw&T zJ9+@VnV-iVtlRPbPjf=o-*w-XEe%)mYEh;t7G$C>8qM$2C7Nrv4E2dT<->y|4sA?y zgq*QTlqKu(^>BM022|r0$00?SN+byYYTEfrbSe_iq9IyYZ{yvf{BDT0@KAxjn@_cx z@lh5X@{n@yvH;EhsZEG&lvgZrO>Q@A;~o_oB=QIkN)(630SsI)Uc3Y;O)Qp5VGr!% z9N{Y;Kh#W=Y?Gm<$fwe;j>&Pwn5Tq zHeAhh;*d?A$5X_RbJ#9>WczEL@oD3?vsUns)?m`4oyVhe!aHoKV|bhC*n4sPbsRn?wn&8UX$id=U$eofJU^uvubrI?Szr?uUJ?4te?B5wB4wz_?~WDg$MKm6 z$4B2qt(I>Yz}i-v$V(?ACwDx-gJS&R?8J|bOC8lG5>(FGJ@L6Hn=#Y`e(E+;>yrDUyHE5K4)me&cDtL@@~{L4~-7Z+N-Z^oA&lWbQQ?2j)J*=rO-;Cda;64|`X6sW{r$m$RqQvGv>kOmc*m06GiMj` zWWCC-w30kY{Z!6r>cLH5mdh=HJ#(5am3v8NRy-VgHs?~T>J=k73q19k_;XU2nVO5O zHl@o@@6Sb-vbD1xcUlywKDCe~G;5&{`*p=Qb!9$+`v2=0yIv^$!7TZ#7HVL?`TIFZ z;S0Za9!S=nO?tgZ-r$EV55(w<8k+01<`(LB)9P1Iir0$_=~KG4h8wdc;a{>(rp6; zu*rb93#@W}?#BgIWkzon{&K32PjK%9VT1by7tO5- zb%JM_A`oU>?)~eWq%K5s@tb;r_uVx)ojDI_Qy2>)2@5fBly@cPM*xGkB?N8lC z{!edNz2+7^wh0B7NZk(lzhN%tFn!8Z^RbUMSbo*};kmvjw&{mwm{3n-gSI(xiyjqi zIO>#(wQG9RSb5nhTaq?q%=p%{Rhd9(7spei$T!9K-dU?mr7h~15t~+wd(RM67&Gpg zzBxn@!;u_2+%K^aCTSn3!1*M6EvQ=pmQlySC~|f2vO~QoxF2k(+c&J>m^Qo8E-@<~ zjGfIv-ZDA{_B6*?RiuX8z6HAzixO;>QIGdIu4M_fSmcr*NzN{-m=K|%N)Jh!rGFBerMsn`_M6+A+r*DKi_p`tMsT(=tFWEQTT@qcT`Y%-M>c4>^DxtxVyQQyGdNgKvXD@8TF$ZbBmo~VLkK6$c+b^l7 zH_r7mau1JVINwtkB-!4MC8Jo<`b)B%e&G^fYGU7(6y;j(*&p-1V>i+8w%>DWSCg=j zL#~^y684EihiFW8_mNe`*}~@A`*!21vAkOF=fky1S+~r*+9)&iGAMxo>Mq537=#eX zY$I1F|9Z5KX$#@}oj(;3qJ8x3-7}Ep=4zkMsb`0quSUpFYvYbK@ptAK`z^nutmlpq z`+zNJ)h7BV8r&IOl_$GupN8@nYL%;UP+Je|uqaWSe@K4;9LfVo)2xH)2G=3yGZfYH z)GQ%bxKJu6*2eoz;0~}PohoHGZN+`LQLw76pfilL{|1sK1G=@1SwXcw5qm4=%J=u} z5(821D}waAxTP~Bpl)}?G5TSjHJprpc&9x@T7f%vN(|OPEzQUEAMnyVV`T_y_S);N>jkDOGDmrhW=I^g>grKl|y=dGw)sD^f# z@LHkv<^BizSNB`{`xA=s>rl%?Hs{z8^6p{5I}l*pvY+#e zl&x@$_%rvJ6ydcK77#oADkF3VfpL;cXN|wUNIkRYWIy(0PU^5Uss}P|h38zVYbSG` zM_u=wj{CeRrj_2eC#L7v(I{%UR@98{I^n1@GbPjphKSa$yi9uBw=V;4%LsSUxbc_n znwzT<qO=QobrUr#{^<-ekseoij6^kvxMv)1(CbkLN zB(LzixKDZ=KOdD+LP&6hnTSJora4^I*6b2(E!iycYsglSeMN8!Hl_2x z)w`DqGib}aFy$Zm^38v<+Lkf1%b-L?2&DFuBV9O4@$1xb_Z9knMoUk9?K{x4P-``@ zr2N^zsh*`rb$@o!ME3S4RpT;I5`D!~BxJ?*KX>B$0&;@mWC@xO{p#*S<5bwp`RA&I zrsuUV{PR>9KIz3L^QOdbN-HyaK5&8^nGhdL;5duBq)ySyvW;?#Z6VFw{U@lbODp6I zQjEw+sB`AMS$6c|`w_}5S&OYWT8Em7Q=P!)R|{v~R}A_1;m(iBEYS1u>}((YyY-{l zSr7hQ@3p{K={yfDL)y4?D@jR_t*zpom`|hCFrx$V|9g*{21+oIbdTcd)w^_;NvE>O1#-xtV! zHlMYIgDdLs|T(!?IM_AM19yPT9#em~C7F(dIc-}9WG#JYA{uyS4zxSxX3x9}N z@uczNv!??V7z)hG=vFh5y#2*LxvH6%+@g<-ROv*^TQ$NKW3@+M4|j{S4?4Jg(!MH7 z5~N-DPP6Z|)dC?$R}n7r^wK;t$UalZkn`LOt)W^yf-Q(~y#h3F?=U-=21ey{COTsb zm@OykCu((r{e6~ah(csd3x^AzvZze@jVbC4qk@TMWB(&38BZFwofWY^FBN?jU*Utr zSF`0o=ofLA>r;_l7~!Bf!ne$g950&j?kjo0k8+hWPi-vGq|Ole*BGa~%9q3H%{oDp|BKF&N0%p|wjIjXktl*q&Vzpg;Jof9!jp7q#bSGy%nE!=XJD9?esT_%r(CyoBIc4gu&yG;Iz&S7S$b-*!l zO%8RKjBVI+$o)*z+zro6v*ZQZi1n$^7|`8{E9p@y0Ky@Z)eZ>n3gJX|f{=&rzu;0^ z!7<9Uk)IN)JC%oGlR3)()8NcnGyN#NFiR~moxSwt?26CS3)eK!NO)F82QjRMx9w#26Qh)<+eN? zds`=2&>}C(xrRR6YExEMKNhnNF_ZoG`19+5H)X&8oV&}+h;a|mJ;Iw>r1gK(8@8$I zxIMjz^GG-1URfgn#Z%%N!a{!M<3)#CX!kqmF%--vYn#7S`7AgloVCPt46+nM@LAyZum~cc4-H zl}J8q@ZUerNBc}_tslWRSO>TC@e(jk8V{q+=-_=x(n!Yg_7TT0FENZydD3|K3}qAZ zX0OTlRBubSLfZ_9?}3APF^Hi^AX;Om*1Owx2k$r46}tk~c{wF5Yyit3(`- zC@Ys=D@TcnSz2oPc#p!!CT7{wNb#Zm8I{`!^_mKt2 zsqGPeB8n)L!ntRs$NRi8b%c+P!hgwB8}QQpLh9k!ZY2bqcM(k^GA5(VJnly})zrNTU--qg_=& zAtX6DDm8xsS!Pnr0F;|+>EBNu?tB*4(PM54{1WEl7#0HA{22bQg}h&FP%6ISuO& zEnYs&!XX@g=On+Au*E5o_(@~M89LPP!XK5t}bHB!^#w1DJBt_V!$;%0pdF$fm&(Ezo zS=b@8TlizA<;Q>Tw0zF~GFSnv^Y)7*Bfc&|onzP;avW-cX=BF>MAqu|A%XK zR-iJDQDiHS$2qIz$cBjKd{NfTLL+M zh7eQ;aV;=uRfxk(8_!;PIEWhAay!!O4|7Z%-DP!47V=D%&CpvOJk5Za@t5>xAj>w= zfIqOfJZWq_b-43;P78eGu)wPhRxe}@M_uIxn4@{VLGOSS{_-l-t1~qx!fKv1I!!(M zP~I_IrG!L(vUJ2QL&P;=dhzJP`Qveq^8&=}K^JDAdN1NKBX?U4)LZvMcR-wRIJp5eQgkTsb#{FgkkQ{lU; zYS!3w5o$|@JaZnt&LMxgnDCGL{OYTHkC~aKNQ+o&QWFk5>9HI9X_Piqx3Wvxv+0(q zJsWogW8$lok95QYSmMN%5mL)TCQ|bAISW!nH|j{tN@rrNWJ}2%YZES{K-wv%c>>0R zJ3~2TYV{LlmUUipgo+M94Ue3>2h4hYXnsC&s%UP8%W#HEb)r0_qYUbyg|d&G zBFZp!YI6ipk@vsaGfBqG8E0W_HTSS)xc0lHwv3tp$6yZtLC~So7ZNvncaK zoVwGzYt@?O?lyoETmPidcq)RQS5A`88Bbmzy(r;j8w3$$=%smlZw)(W39w3vvv`KLNfz2Lw`H91wdu@eWckkn#dj^}8@fF&h>lDMEU6|F-=Kk@T z`=|tJ~8jxL#PyGa~Zmw3L_ykO2m+FZ0zVrxDL??U!jkKGt|dC z$^R$T;u!v!#R5rWGyiX&A@65CLx*61e1)DgcAgmfzxoM1X}ov*3TuJ)*}^&QgJgpi zU2imqy`Aotict?NKH$9GF#hQxSxK!E6F(w*oJ%W|p!*dE3}Y1Up3?=kc!yylB2GyJh9JbsCOLF5{Z zP2ygvTP-{!{8X?d)+F40OznR5h+vUf0jcnDk{m4RO$jHC;Qhxx6AW#IK3Y!B-uO-doM&$!~OzP!7(~7SWx2Uh*eDlmf|*#ST&IjE0%(9Z5#853dpS z2rmmoSzCewe=3k>&i(2lx574pVu0>WB_&UiX}C2fBVBYpNNi!~cXcn-uxr}7fE%s1My!k=w!cVumXJ-bGD7+c3A0uV?s=k{Inr3-Dc z=3NS#FVw&+^AHloBt)Lmia$q}$@WnW7O1*PmpSo>$)^@;^R$;UX>a*uh?MJ%;Lg^7 z#pE-{BaVCD5IgNcrpKYLhORenaJ3(!tQAbs4Ht|%E=C12^X;*a z#Eq|tI%NNd<5=avibLhkkk`=LxlpYvR$W|q#uY41JrXN^ zXMyVED%3ERTYa`#fnc>96)l;Nv`!2qNC*9&d>*CyQn>`LGfM)v3(w{taz?K}X@)@^ z&m~*IK2VXbR@YWn%L`J#Z@A5#x}$n1<{w=@=~P``hlWnQT3ugVJ+L4}_cGOA$~*B* zB{(<#I9r-7Nx8GP2VJAz=-@fzQHphEwYoqdAMK8Qmz(LYR;Z1Q=GsbLsK)Qr$j=-Z zzMp#4XrinfykN_>bB3{d?!FD>UQgOR>>4T6?Ub)@(y1K2gM2os!9Pl4;N*(cy|HiR zs16*LiwSJgkvo26(+biwT~-KC1cmUgWPb` zJ4AWH+I64uFc%njs;XKkR$Wz#Q;$_W6$`wx>|hjIeg4W=%sFX;{@^m~^Vuuy!LgX} z4&-f6=o?vVM~nwQ2&4|-8`^OW=G$j8+gFA?Tyzoj&&&ZF)t}{Dd3wrc&YJi^Vb=Vp z`POpwR8$-yKl~}0yRS?Ir$~DL8JMLi1A?odI7p>}Ai4eJ34-#EWUu;z=TGj`p z`0M)@qoyR(k}1j8qWoH(FL)J^?Ih9*sn~{gjtRA7I)n#>2y)>_0#|7WSN8y%d&7Lz zqOpL#(@lBG#<6b;(_l@rsoLB_q9U@vz(7iPud+D#8}Y`DqrwN3jV3jF4E0{JyiaxHj4hEqbN96u#8keT4Sixo3%J=*bY%ksgwr3lmuFHr0 zuG>%!-erW#_lEf15lN^*Mk;g}yV{^Tv%=8lkOK>?1ipf*g?@*dzMKXhvCFhOBBB zPfoKbS{XjVI}RP`-`(HQ&-7b)J`oVZX5O9=;~Qrzrl0e=n{Qon%WeF+n{WG59tD(Z zt_m=b9X;QaHZP&9(M$Tjx%Hj~{?9sYynW5BkuNX7|4pCog6y&osCOZ02luX&;s&d6 z=d@Y|Sn-xEgE6~YoU=7pb9NJLe8)^k+Rl}=3eujK?KgIXaLdjc?_CZ_W750QF7AN% zNYz`FhH?9JNZKzPlbl>WaV^i^5rS)5P%;{}j<7>a(xDNC9mVFP^GqlU z3H*EL>yLhYkgyq7JRFtxGr zGoIzs9ORe7&DDgYLGAwV0@T;{P+cLou?63W676}T_p%_4^;j}i<)H|MSM5Uxqq1^Hg^TYHuyanof+vGp@N|94|s5+WnaOGSgY?zdh& z^Q7!=4ijx1w4dce3vEfL^B!Ds#Cfpg$kSWy4R%Y6_?0b8C>1LjwoJN{3-Qhe8S<+HnjISJ#oGAwBrD`siU0<)L7y_HxW?J8@F6J zRLz?n1%G})WPZ418Ap7uD78}m0k;IAZM5QAb)rG2ktaQahVi$T8YIgwS@x~C>ULf# zR;)-N7Ld4AcQmD+GwDKB16s_(^vQ{Oq8&x zo%!$LE~#A+#j8tDqFWWU$+p)M;&;WnJKaCkD^V2ZEQ<5G^Tyq{=6;u`OIX8%NJG9> z=Z(@!PYD9$n-TJTOf-KdL#SN+HvH!>>A-8-exFv6e?ma#C0oQYhc-Mki_fpb3Pg79 z8l2laBlM0KYfnO5Pxn*Zzw6G6BS!nl-wAbzp2V0mVqAOjsRXv9JHKVbXgm44&2>HO za8Hl0<*6+cali}(YT41qCY1h8vTDP|NRV*3`8H++qpscZ_?Cxb=W-+)awk8t0v7yq zN#^Cn4#``8bG!xGT9BTdCarFF5WywZdMZT$pd|qZ9Go+Nev0CPpK#2rqAw*T&1ZJW2!SHTwYSQ1NhY z!1M~=(`Bj2#Si1U-&N(1`8E&o9cR)H+ZHj+O}RSm0dObZ<%)X=4I=QOd-NlXVx1@( z?o!dYocu>la&PuV#9dV}%dF4D7v#XHfaaUUMo~Q+{ z;7Z6;Q4Dm>AtTYkXKjiQcXBN3k|@`m^TmJA*GhL(GeZx?Qj=v+-Np{_NaLM@wiJ`; zjz7*FlA!T%{UlPJ>SfkJrtwd5w#;pD?{)n04b^T!X$Z#5Y)9BPibzYrJNHj9HAtOs zT`il9iewc6ZOfDsOIlQyc;hQK9^~^|xE^HZ(l^z}2A~7SzhEuE=ho9K8mI-iD)jFmE=keX+J)582Osk{6 zdwzBN-NYkzL*sVMB0sTZhqN5ZmJ=!z(_~LNa_%h*eut2ykurhU)paOmwdSBHszEKq z%`VWondiG+;7TMrS2^j|vE+Ewpn%P93Ntb6WenwZ>cTbO)c z{a>&4L4Tjr=@o87T`z0wygYt)3~Z`9ex&GdWgI;5{yqzG`@2r`_l+3eHa~AZ(cj$w zkM$Jx{nU5nbw10W6;@r<`Wyp9L!pLdb5o8)SZdnvf_#qmVWp8tVqSt#7)z@k1LV>48v zebO6};x?t7qxHvW_Ja=8u}HeCpQaYLbuTZ*?Wury-=a&^rfvHQMWj>y$Y+icW~=k} z(9a0fiZse$ooA?a*>Wh(1XTB6mx(gw8Vrs)b#}#iiQ$oc z@GrzbbIHNcFO2tgmI}8DBSP`ee+z*GAC5pEIc@yUB|?}`hT*L^K zgI{BUz_%njIs~c<&b@MBypQ6Z@t2t+@&_n){`GN^J2~VrU%Obym0P59I1-hqf}|Na zPQQ@4&i(Ztj|ko`G1paO|5NW3i&4uW`@c)Gr-P7)kBc2#$%3!OvD^ts45T>;7H|m& zyB0JGlHgGbc&kP4x>FlPX4OW4S;-}w??xezAs&^VsgNmaxgaqsgQF8>rgpAy=Tfc6 ztbm$=ygh47&*izjc&so^6{%UH;etK=jW`cnG%)mFFd?q5?iM!1Yak_7WNzDV3+iE> zfsH~SRgAo)I8mv#a~1Mxu^4Km7L79yZLy)uwz9>EpQ~DmlHRBvXRciSg2Ktzb2Hy| z>lCN%r6}t9{z!YBJI^o5J%+V3z!=ID>$H+2DV{39QCbAY42r1^ z%j>OGi%@=}k|eJ@e8Hh~ybQb(rI8~1=Tj&;uJD9^v;?&-TvsTekv!CYp@e!Esmd(M z5h8WrYR`qrd{w4Af4K7z+}HGE3H1O|K&-z4+}vB0^p^9+Z5I|DszPbBOx=qz(M4m; z^nBbt&bK;aTsA2S=nYfC`=7Vl{+>?6|M}WAx2)k!&FK0sBj^00e68%4SIJ#{gx&Sy zJk(@vyLOn9+r=*;x2*n6yXhZNz#@JqcJVF0(tzvZy|d)|vP%Bq zuqO}U^}-_p3!JhuUzPHv@68u-46i!qOIpJ#pP}*l)F_^ndB03jcm#Y|lEYt}d5mAy zvz$~s$u_*mgl~eo)N7rn4_0ua6Gq3oy$}060od3Q3s}5Sjw3p5s<1-U? zmuDNqy)jN%pucd>Zt;;=<>ZFN?N!&RF&zC>2aA&Q_VdQzO#eL`&I*^hMJ%ZzG{W+1 zk@~6evn!l3Y}B8jd2J9o1hKPh)Gk!29Rd@kof$~OxyPngrLI+^PXB;gSSv(;*50Sa z%&a%v2srj_55{0JKIO-H*fSMMvC0TvPz+<;%mTbJeHwVeidrBO@|Q&mh)XG-lwg~u z`lbwjy~!JXe0u043nBJ1+(IwZeRgh)8kxnE-&s>HYtWe?n_Mq_gi_>f9BI5mvBf#- z;ND;vDjdubM-J-8gZ6{xjgyyGa8IK?N_fbvC}@3ZeC3KwVNA+&e8!qiFZidRO`$q} ztuakDvs{%~?hAh;E6}jfdwL7D^Yn>%UBe2rdO4l%tB2?c%5LRT?MZKzLGC1;iHdBf z5$x$7bSKFJc~f-{-^&erJ=U(lhIVEZ(_kEB zM_j}1tk~{VJ%hu>9jBYXlkz1W2SM`7otvQ9F;u2S_?A1ONQTsyN8ctTV@{oky3}Fg z;nVK4Cq?`I-}5U(Xg;Y2pf|cJv@1dgdmF25$^A%0ys2c&iahEsa*VtdeDdo^4u_3< zPusykc=h^{W2Eil>N(|54imm*#IH2vD8g+R7Ux4^$41JjG;F+i%4b>~u8I1>HFxN+ zv3*l}Y|%9<851XuaBx1xxB9SM)2H@AOIJu}+u&DLZz430g3s?GvH#YG4H@6lneeGc zgdWsanFd#y&DgT8To2y>U*$@EZ*<%yvi-23o$@6a#fGiqPFtznOF-B1k$TejhmEhE zaw}uEKSdszI4&O4%ZH7RPW2?rTu@<~>K%yP*0{VbK_`xm(QT5uD=c_7OrUf=AqYWx z%9^FM`d72K%G6MIcXvo~amR#EB1)KZx<6@8H|9x$4kf(mt8p4{1`-e0(~I*_>3Pvz zRo+;BbR9&&pQP0}-@aXWzcMB`ly<2-NILyQ?4s_a%t84!u%_(k_LyHT8zp?*jqP3S z&ba9X5~mtwYKCr_@41^Jl_L1hpCD zGw&vtmQX^!+CtwbG~07#8537QxSw*X@b~+(jrpoj;v3J$EZK66{FLr`z@IJ4^HN83 zD8Yn6x6#`^u586o`QXZ34?yTxg8Ys61T6Juy;}Jw-9IM1P)!J$pBhK6ygzrJ$G$q$ zb)s9`#X0Ble-wNWy-+V9X=-LBz3>ltPtq&*NX*h=)a0t8+ZI8X&~;0-M`KooNNCn%2d?=tUPR#onn=4 zi3u^n#_Ep50r8l)M>rzbRUh0Jw*a@STk;HeQ@8X&qbKFnHpVw`Q2UrLY^*+cTb@~} zcz4g@DABJWEpV{ zI)|C-ogl_})IY0R@m=yu64SUiXB$Q-A?{9k6+Y@Uqnf;mUA#XS6y1u8TNm{G!gs`# zMy$SSZ?1Zc zlF!(~G1my>T=KYNmye5d*2w@NO+kdw*H#}FPDrjk2(t|i4W%ueS!t8UQIkAeX~~aM zgcxB1QKpUo+kj=jGfpS`5V9-IWEfn?BRgl17NFGU7+#^1ue2-d9)bF0Kr>@a?cyw{ zjUBf1WaUq|^&PLmnj&BPFmT-M9Velqs5t%-?Bb-3XmneLJ4N}*>nMJ9z!j$FYfm=r z+{L+5+d7!#%(Wluj%=e8Yi~@5(%N=0!J>TkZIrVEQAR!~B_*c8soa}`8t0%2n$+Iq zmMIp3&@Nocp4eYZK7GgE;`;pZvRR&MzrA`_&BHOrZ^}Ukw(mR~X4{$NDLQR!aVxt` zWT5wQuyl=9=&e)fsJ1KNLLPu=@*JX`626j)Y<)=me{tdud)is#H+%YL9Zt2S<+aK< zx4q*$_PNEpy0L><>dDmuju!IA=T5YmJ;kdlnCm~$ne_Qa5x)**X4m>lX~RBaMcz)o)?KnHR>6YO7M1HiVF%i^-?)nA zZ=XAjb(sBXK7R5TJ0BBy=RNmry*JX>@Ouspbvv$s`;X0IagZ(1ouUXLi2SK$8GvL@ zopq3D^5(26)6!G7onvqUwr!^T7tf^k%S%IE;{p1r{rTp*&WnsGWf;Z+6*Tlv?%F8 zouwUVRVc|P?a9TsE>ng!>z2JqL1gM%AZ0u>YXbpSKX=?AFEO!eh79ejYvjW?YReI4 zvQcyLN8-LA(@Oa^1O8E8CK?>q{6Zytl%6E}Tlbu?IlrC*q}Ly1CjOK*SgKofjo{A%`lK^#rx!PsxH+{xU{$ADiT zm&v8FRW6Zzip4}B!@A!2H_Bxp)02+y%isOP_;hyVu?0hQ;2vsS*tD3g!?`bBcq+Db z(lG?J-eJfWXZ)l6!2rJb3$vv|tAopef$XB^N)FPQaud>r()>I`ev^D58Gf>XX__E|}Y*lRXE$;yDmF>8XXteIS!Ul^KuiC*m!98#& zX3vtxtXFnUx|JwLC2qe`xbIb5Ny_0Bc+shO=kDEbrC2RZdezljp|&qyu?2Soi&Kt) z!hC;X{LhubY};tIpC!#GievEP6^9bx{HmKn{h|sb{ZTqUdKO#hrp(y*j(^VCaPGoq ztO~8k5;=c;_yk|eNbdFzzO)a?w z>DQ3)_UXf&-%8xyvpw<6o*m!eVe=Mg^G+V%TXj1MCY-v>yhtB(zKwssgLLg%JMP_n z-<|i~x4q{(z}Ib#5WS7|6(kket+uowOIG(rmSIhxBKwq6b{tgJzMXE z9pXLrZQ0Cs_gu>pRMTIWfC!Om=5AlJq+k?VVh&{k4wz62aF?`w$Gv=F`#1S}@A>>w z4gB5r;f?Md{_6Apm-=_y*WKH5=eByXsN`xomERxjLNonNrODsLYS1f95Q!_94NOZ_@GAMy5C2EQRAbLzj5 zZ#DuQsNrPN0;<~q8}Ql#n^|~tGkZ0*u>D2k?Q+RgA3vyNnu>Bz3xm<11zVZCgk1a? z&(GcXPU8}!mjnrU)%i!F{DzF~Q-?df_zqmNaP-$K%p*eN zeK3G@F?-1lZq&-eP7Cf=b|5A!J3uz_PmCX5V)E>W1$F6%V>eCOhV4UEW%t*e$z4IF zjy$&L9MY=MXkLHG3Qn~lcFh>06EazEXFzzR$jPk<*c7{3V{)G-FMTiQP%I0`-?Is< z*~TEGGw)*hrcluwSEGjluEb21Cf3BPs2J+vJOpX0S(p)7kRYvKz+4V+V_ zcm0UIGx&WFzZX1{t-v%C=>gn7eHY>XVeZZ2+p4a_@$;UxCs~r^HIidHPx6A~ZDeOD zP!?GVCJUhngw_d3k?fdCwv!kVsG;rPq(B`C$&+Dw9Zb=wOfzv*3Py2hMCXXM=}T1_1|dY{o4_&X>DHf z)tJjIS2f`^zhhgun^vmUC)R#kO9L4KR5!hAh;lK;xoL!{Huh?JP}Z%~;p*a3Y2D0a z7Nr@D&|aVv>V+;`0gjvj_ZsPLoQ3s4eef>wO(*O^Tp0CdjCX-KZn2w&&C8hI)7Srg znR%VL>7s0=H5#A)*JT}KqU5+DXc^^#2E;0T!Zh$v%Axv?Hx8O*%kT%`%u&Kut7?_| z7hF#$Eg)s$x>F&|!@0d7BjE}rQWvje;%XzEb}CS*m&vw4rx3@nWXh>j<5SH@Z|cJ{ zSZm+>ml6Duc<)4N{0i~9FP%0kJY?Zr_gNEudFZr7{5bWCOIGnOsrx?jT%%QAqQ-i( zio3!`RbSQQ!^oE zsyB7l>0AB{dHEJ{XSoyp^fU{7J6V{zkA)jzEZmI0|Jt~xecQlW^XnBOuu(3|UT<)h zzWr6~|5yXI{}CU2XZfN6O%eXnu;LRDDBZB12PQ$W5!KU2g?vi0eQPDX8pWVi{>pxs z<}NoVcampGWi$TWjF7yOJSmovwr)4cM{0~8Rve2w>CYZN3=lUqGU9CNSF?2fNGJU3 zu$1=@63jCC>a@I7se(48H+69mO24MufT@4H6d|i;k0r^L9fSuPzku(4cPUcH(wRiK zPxTo7VX_Y2zH*8DXxt$k#N4`MMYtB<{o^HY2P8^;3GZ%^D5{+5y@RaeqD&lR*2Fsd z@52?CV?XBbN>J{J?4`KoHC3w~UCv1Kx0Y$QKNqPW3xnysmz>`s`*9w>=)R=3+x?!L zg=-Z|cU@vA)>4$-ap}4ePpO>J8_9HRaMgR(;N?@50t^4Kk9Z0ms++gB^WRAG7PJ;1 z+mn8Wya>IkCM1}9sIDeHCC!r%Z5&t2z<2kSJ-Qj6zxY)aE`F1R*LKe92OuvH6xP#!t}O5}hxX220An==^yjba$)mw_t}bp2fHMX24N z$MJt@mT>ANrFMe}XT7mP|8{t#$(M4jhT}fQ>F|N4O|4h` zjjfjqeNe{5SA|_AdPN5s#Z|I+J-algld0QrPq;9r(^dHwq>>-VE?3?9(ZVrs=k4FDtT~`>eQF+Qt@zB17!bBGZ$3P zS&yb^%ggt&u;xJ)Uf#sQ?!$9b2FJkI!^QHidV=5%F{*74wI5+vWtPZ;3)v*m>3(m@ zJE>E9clkVNa`Jfh$@zKT)2!<2OWkStHT!G!Fn4=T>d5(%e_-K(2Uz(2AJVwK`|x9K z>)VS;G>AhcNchG$eznF&F|=MqT+Z=(Wv{|GcU!7uM%c|RSOEeXnC1JuI zj?K0gAn(q z?~sQ)7NJbATDFFTPiJQrUHm=^o7Q~ZM&k(<>Tjf&9|aX~eEy3suHINE`0pEs9-<%b z1rC(gI!LR2l`RT4t^UUH4IA$+-sOiAi^+rhi9BHH=$Z@9`Dy2Ra{LffVXpYb0eiCZ zUi-KGhIi|I9(rR9<|rZ^>p<@x1aoKoEi_RoHn`X%No08;Hh~2DLOe^c{ zNZsq)9yrc|P3_x^)8r$~>pdGyb`V+LuTGH+4WG`;_O3*n!QbS17JhyY3+-QK;RIfP zwQ}BeL?P+K*#tHA1e~6{dIJQ{Vj&-~AoF8&lu)&6tprFh}8pxgXpV zVd`HoU5DuqiKqNCHsN3-N9?}cD)gl8IBzJ=q}bh3MXT#zjwsx&hm!un(OhhUaE@%+ z84ryAQ7Ig?c{u@`C88yo9nFYR4Vq*&t_~o*q(FIbe_{XG)`c(Rh}m&2F>*WYe7vcI zBe}xD1do#W3pkRRVBrfnqz^GPs;2)^$r`F`D>%eMc3f27{8(|R_3cr>wO+}KTM|*f z{@wgUMyw#=jF~W>IckX!t$#o!DSew%kgy@%w!XWn7)lq!7Y&p{zh5{0Qz&$_gm)G` zD(d_HWVbFJknqd<-PFRpl#s0!4<)5kqc%GxgjT> zIY1T@i{i!&ovtk~Anc`z7w>?%!4jW}Z=y z>#boVFPM}p@i(odFBE{cZpq>t(HtMSJ!_~$&<|z|JJpjLom|=GJVYtt?InU2VftkW zC4L$B3c(||1#`SSdYzCXmI>#GH(MwcuZ zEj_497!ZEZDXh&FCWCy}ZC*BsxOXSA0=SGWrK`)Np{)AC7!2+>XDUZd#8Q;d1)te@VmmS+YxwS>eds9)Et6qBvQEBW>iSK)78C=Dx`Q zD?k<3Pg+jFh%@{K5GAXdvWRSJ=0RlH5tg{3RfA-XYkHyjW;s)2+&3l*Me=51=(UKq zwc6DAntLew1==kfz50bA4%Lg~jHtQqf2;&PJE6zft{oQuq2Cx!J$WTJ@kg)@9ok?- zYIM+Himnc4ficmOs+byGXAJHCo$*rnL02C z`e=D13v$3Ja(x*uT7P2|yhpoMb*)a1+n>&u1Y?x$xgi7gpeHqchJ_3;iAJPB@2mG3 zl!AIvN7Z|?m=ULY%K%FyF5|q+;urkKk~b)%`A0jW8R~BRt_ZH7xN2w_`x2UOHB)-> zJ62OD5eyMu&XD&{YrHo22GrZVp$9@1@kluLAScp@kPSXUAd-EE6VnhNJzL_Kn$BoN zYWI!j3`!O-{Huo5K9oFhKHc%@9dj6%j~MuMc>!WzwwQyh<)^e@K^W%YeZdsKkW0T?qC!n4GWgDS2J@WLffZa(f@zPR&0k3? znFYwk(lqeWm*rviOc# zfOI6071RzwRj!mFFvFt`I-`Ci(`WbDJOxiV*a2}Na?d9?Ak7N8^1+O&{-Sc#Q~Er0 zr8zn|*6{qREIfZ?{+vGlst*mD43(O3nh~E&YT$I6ZlnMfMO4uwyY zQh zU!B*x)${tE)R!l3!M?rz%GEt*sQ-Monb!z!7`Dr%f%hVj!ii9*mGKyp&-m{@;cR`z z-<+g%E5JTzMNZTPhKtOdbJ#i7@(0!w}0)dMhLbt z?ghyw{CV?j7+zdJ<;|v?v(GnE>$oJ2+PlY6Z(bNin7lYPKkll< zQ}|%G+n*`dgRh*ZgcW`ali{9}_YC=4FiP8klfi>wP$t8x3J(P-HVHU6RqH2hrLryz ze0}}8tMTHCAs4tP<5Uc0IhGPHKpB-|h;mXD&@Ar1XoxQja;hAy@9kB+k@lvBuF%;q z+oyvrZ>}?z>b-CSw!h1T@@lLn<(};38K)uYS^GHeb9&agq1#L61~H1^=Vp4fvX2L6 zZ|c!2TF~`r#HzKbCY{8HntpwPskkW#RX0lHDT#|)8aX>ue^FWCn6 zZnVBJGir|QvFmThh!)0M>M8Dzu8_6M6389MA9~UM%j4z=o5&Y%LT2Iy#U?rnxM=2Jmy#jw_Lsk7 ziJ6DO$dANQ?h7o*!*nCkkh-Seus1=zo#edj2>q1V3pcRxJbF(LG z9ZcQ5ihpIdKjXx$*e*w4T}PL35#EjQT)@`B*4?4x#5J|u{<`s7oh+Dq1%U${yNz^h z>cFxxGBK~B=GD|KQ%b-RBRDveiWMF^Ut8<3z3p(WV%#g;tNZ+rbbto<#eHh5f<_19 z+U+y>e~6sq5}+CXeK6^mu&>~cq6#U2! z$E>H)^>Qd9n8q>_$g3296FJD?!z8K8Bkx<|jAD&*(Bf9DUtxi|HwPDIXFr=oZspV2 z*?<2Y%Uuj0Sm+)Ng{wt3z0BG5;5G1)*dB5|dWwTL6WbB6M?CpLF5t^3tAN1xVQ zA}`3eY!Ou|Wd#@J{?j?~0I@0wC9KHw#X+CAr;#bw_Bfz6um`!QTP3~dYt#rxXH;sk z`Li@_DOR7pj8CjsE#s=*2_9x>k#u+AEaHe0xf^iqTEDT-f$zybTZ{L+^yzi)x504EE&YS!D5pDimCs=Leh^k$1?h} z-nAaIh~0ixilq`~&55;O#94jQIdg)%up7$BD`mBmL6NO1Y~+P9q3JA!`denpmimyP zTvkv`u|%yMjF+ipZk(3G4H@z5F>o40%b*L)1G=Hn+w~}c>?+g`a1i&i# z$Ndy-o56a&dbXto*I$$g<~gTgm2+C8uAdcWJAcJO`!BDa3-siIPN=$SJxJd5m?}+_ zNpfLEAwN`F>_Prn!m1^*z(bh_ap}5?8u!Qo!C@N{;lAI3A9m7TuV+oLlAN%m+*O3?a#pi2`LHg@*-ky?PCf`y|9=6@_&E=)x(y*?V zjb_BLe_+G))g}MP~%F+9!xubjzOvB={g<+FDn>$T{P`C59Ftn zoemrFb2gmEoM7nfDs#_K;l-WIvhU)`upHZR)J{}5u<521&-+cnJRLqXM~4TP45Y(9 zMLJv#OIJF4j0>fLfGNS$3I0r}tJ0EO=sLzm{YZ19$11fajB$NJUeAf8xE3Pridv+- zTRt_$yZsKSe1%h`j1HADmaH^IOI9Q0Ap7GUqK?rtb+ns7rH>-(*Gimd7<}G;;5d&` zu6Bs2)(sd?R^J618u$Cz6O8u>|HTuY0#ol(P>6C3BRK6`Q7koc)`W6ja4oY`+ehD{ z9C7TiQ@S`y@&T@F8ZkqqgG2*~7G6sS_ZqL|{Ya}*`zZ)d^A(NYWGWmMOL|3HrBUBRJQRz4u-LnKsbibl(o-bS zs_?Ihw({2G+r^wvYya+u#$|}cQrr}{ua^yjv#;mLOeV}yz!_4t}N)-#6sxCaPbu!sNT-oy0_`g(e(mo6*Rn!bmf>nytXkIBlsX5)bHZ4_ zwu!wl;Ktlj*Gr&xxP0{HQ!jC32yi+vAsHQ0v5*an14*^qDH>LNcU-(AR5 zAY42e={di3_&t=9BTlBnI&2vjD(=`Ey57DL`LdNVW%??xvai>zW` z({g)LXEs|9_(A7?bS`8o0}Hh|f%n&(TGfNAyf{(PnNEFPOi3QR*YE$Ney>r#|K!v3_n%E{$M4&DcgNTGWfL@ymQDPr*gCl1aU5roK5FTS zr5e=u5nr6p_S1>6Mbx=rymf+ERF3murwR!+FrxNV6R>M-flI591D1a|d7VO@NhapKB=&|aZJTZ7R4(Oi3eHn9!i-NN%7JNbtuXsiw@>9MM{zmH?3 zLy9mnnI5a}k;m=1(b}shq)J$`juX9d;c8&~ z?_0N7ZtUD6i6UJeC?!pD!zVr)9u^`EQ;W!u&fOFOTT49)h-@*5tif zlT)q9J<*OeHDOIH{745%F_qTgkZkD@7ZDa;QNNC*9#p^0zKX+|IjEWtstUGq1TiIu zkbO(hs=~b^W^l`g;@80Tp`aIw0@sfcJjLT3Y-ZXwxGMi1B#-n zgMID)p{)AE5#2h=!Qn21g3mxpWPBFokE&n}bZ1-0;gOmFAUpR&ZQ@N}_Ngv|`>xWV9A`*t_5`+bc*`*#|~ z8jw`N3H;?EJ70>w-Pio?V2GBsM_RV+q+TJNRUwV{Ma83wz#(GI$y*%Hb|WU$Zv36Km5s&Z*QP zntJOzX|GMqJ^g{=^x^kbb%!W;nc^WCM6aT)S(5wOUb7&1|sFMya%Phg)di>G<&Fb}j{M!u&=HC4i9D)A@f0}!G z55L|1U<-~Oj*U8oG(egfqMUqZNacLKx8gSnjm(?s$kcCM?jTxk3hY;DeMZ2c%?dob z3OQx@CyKLkK27NamJ0xm!l9L3g-SehwZ!kQ7*OBrzxw8h6*09A@&8gspIXPR|Fn*M zE4%%V$`9hme0^?Y9>+VVY!1rIV`lP-D8xOs1)nU=B(}Tn0*^ zw?v6(c5Hu$%Gn7ms)YamUFa^<)ZT(bxuxYnU1x%Su z_3N`~4hHV4ar$;04%orDspXGUfV32)&3k-Xpen%Jz#!RvS2plkA97t) zw9jZ$>+RFd>so)_*37?YtDf2_U)xsFg9V-tT4N#?4j;-SQDiGfUIbOnHsZ zR729tPkj8EN`H<_Q4jSJMb~)5L(vZ(@t7oL2^)VJWl8O?-%V;1E##wY4Z}@^Z2T#| zbKDC|{OL_j2;J~oEZ5?TaE`z%UQN}ew;AU_p9v)roy62(OECXrl2d3^V(K2LBJTnp zNuaDPOxyKQKM$+A?S{dv4edewU{w&Nw|vSTKK%0EzHe0Dr}fP;!ch5zcOiO57|PBE z>c9)3N606!GYp|7LUGzoEIB+ zB%4-+5OOMfx*o5o?|Qr#f7W_{4L;f@#C7Zp@M-%1T*cJ;^xl^?s)LQ6?|hXT`t|*1 z!j+MAk+3#W3%Vf{K2>HJJSN$VB|kWoj<5=D?O+Lx z-xm}*0knd4uujqS<&$@ErqQbrqN$5&g!^J_kp}6_r)P9xIQU}le8>%r-f+_g;Wxl% zA8i6&J6NF9fM)1S*b`Ya5>4GdH5$Zu$YXB>#LjXJ@_%g7pgwB{bwkt&?-Z1Ip)6Q1 zx9iBMyNIUbA9?q^wZOEZt9T>7jmG=io4{4|{f{~%=OwJp*2 zP8+NPg#Bbe!$^f;#`%(gdCLu~@)U@TOzndP=HK?f=0>P0m(uY_o=rV)Sr6&EKa;j} ziD76o9BBZTA!Z8d6BI?;1s|nyKjq@A2eH~sXTUIh06Ev&XYT z*V$cn12Y+(PFhqC%aEkmbXywTWv@vdj$V${6_M-8s2Y4;Ke$`f_JPfYP zm=bw4>}+Fdoz0;(Lu_4rsQE7uw%XL2CqcEb=N8%3DgozRR~Yv%8$ZyR)0l0)D_jsT z4sc$mAnz$3NY18O#R+R`jnOh#vD6viqWU(|AXCFh9M1bU!ba6|>ur~aYfXD`<&k-u! zbQQJ)Dyn6!*8E0J0BUiKsk|idO{I#qe^>jS?naj;wl3haKka0q^^I!^1t%NzH8vD) zi9l6x@_Ci&L(&Bl-Gum?8&88iAG7gzv;6#1=lhj^ZFCRlG?-ej5?wZSYm;LT=Tm9X^$Ngs{V`8`e z-4mw4I(UF04z+>P5;aG4(Tu1w@>H0My%8pyWU6&Tn-H%}gA}tQQ`RfN)^zNf`f#Ma zKA5hLytsb(BKa;FxhC~ig(3m7Cx_Xh`Fok{lU-sn~!CUOM2z= z7OcbenFa~Z$}h7(aA&JQsy~$(W6KEsIj8>kerCUE@c8?gG0Q0-_00=o4cX7JpzLRX z;sU32H*x^V&IF(`Phw-*=pvo?@mDfp3WrfUCJRsFZptTEH zlqcGL(?%;1Q^En+_dlDmUusgAN}Jr(>QLCqrTE1SvX)|@?9mJq__DPSF(182;=rl+ zS~+D`E3}RQXV)kci-jmV8)izO!lthBH4q4s-_R-&l#t7Wnk6!6i!pmNgHE4O%S!){ z(qE}iv`%K1d8}MvD{^sOx#Y3-EX2IxYwFF_?ruN60IH72TAtfw3a$=jDqZd1HYYy_ zlXYen)JDvW;RYS{M2nm)n~0y9_t!vnYiygZjeLVqB&77YN*?H=56_*#n4(asuQmt^ z&}$Doe!vd^x@7ARlYh~YYIeGVh?%3eJx}S+Y-8Jj=Td^>E#`` zim{X4Ae1wu|DfbLZK|Il1~mN}8g)@Kolwaf6gO(;-ZwTff{^;-c^!lc0cov}lFl<; zt-$s}xv~GlfN@k8pH7))D1H)1Pby63Mh{s#XivC2dg(fk7V#+PVWfLKWa&AbO3noK zleXWlXVNw{?5`I{KK0E{W+)z)O}bfqdU1wTbyjX3ablf^E|7N%9`7DJzyB1ET!N6= zc3#&z0=E!+8VzDJWj?J%%&fLMmqL{v*A5}2CCiE$UQ%^EQ>F_P9bTJw+&&##5;DXe z2h1H>Vd{kmdtk;Mn4}EFP)d4E3r;M7yt&>m@^tE< z8E=H?gwl_UZw@ux$Un5LZQJ&*Z%eQE{LV)@XxU#!<^s?Dt$yso>0DRUWT~w4gX~q^ zJ?B;X6W|%a88Lkm*Byy*P6R!Q>ebQZ4|F4iuWww9^qr`CO9ZO3lRuiH?iDZ+aR4Cp ztvU|_MBjhr*Nmt6PX#eoX}*35GfEaL)2T1cGFLU1SoI81qxO8;xv_>OY}1DWpSSDz z2$a#xxGk9WI{tC0|6+$4k!62mMeCX-`jTjSqq9E1!&+~>{b(3@?q%RUFTK%b?DTrh zNJ47Mxurpd=Xd`3R9Y_}A7w12Lf^v@m-18o*Q~UGY}k~q;9uG`6mBQGyH~<%inXyk zpH855R{}Hb{wy7{T_+t5>k+TNDE&0}u)_9QRZqj<>6kmGZIa50Lg8J0U9z5R*{0Xd zfcrjKNU8NV8VJ7HRPj(*&*9Xr)No2_GDcTzTnIC6uP;9)d zcxWx-W=>EnRjNTNO{=+a2A`$6-Z~o$*B6I^$hDpzPGQ+ajc8OjC$;{A&q&%TDmj4;=06E@!%811AurI{|8(Tk(O6G+DgluZ1);AjWLB0!O*q}+$+;H){aGsU(X&u9 zErS@m>H+(S!%U1c=Y`arXK`M-BQja6Ass8Pg;?sVxON34iX8J~@bw_dRCJE&S(Ahq z;(VDVJ_^=Gf<*gSE#y>X$vLj_5rX{5v*311IWD*QbON7rGL*97@}N`6sPZN==JNdk zQ;;IeJsmx(`ZHdZaT7RMg|3W~73+Xvr?jEOM1FbLIMVb|O9UJ70%@!GztJbVx%O{$%x?C=&h2e2+nU3n2Y1{IJ6bwI z57Gu6-p}g;=p-eKqd!F>acm0s`3T5t59x~{eVrmm7Rk`h^cAYQ4bjvuXI0$=snALA zIy}XQ9YJuD^sAGAB3q6#B0^y5aF9hRS2btNnXWO2V>_(YmbhA5&tYAUHpWJousIqC z??OrQNVw6SAq?6bqDHWbjBw)4zhCZx7H0<8jvYTZ@fbfAAUyz6l=J0vt}k5Ze1o+{ zyPUS@zpl*2pC$T)-xzbh(=n%?HRv}>wjt+V=>@3zSxcVteM3&F`x4LV` z|5`sQ?STYP_V_vS-76w`xKAOS1XG;zm37`<_=LaWou6H!88)oeT>G~*FZ&7BT>Rgz z`PIwdULYstG_>Fy;{<6UJiGGQ|3@7ykW&h^bO~e*8ZpYTV<$<6>xK(fCbrEHfJ$Px~eNcObW@-EncWB0(uhT>zQ{hqW8;vLEZrwj-?G4g2m#dc4lQr<3!I8TLyaAP?9zk|FwAK*>67 zm*>ig9aigN%Ia;SfqU0{Yq@*lw-HOSqH7B2S^>-rbVVt_&#HELS&6l9mui`(pR>#( zFBxp|PHe%hP2^iRW570)8UM0!>k7Bs1MXV4yX+WK-sRDabC4M~0j1xjFy+%MTQ=re zRIPXXAgKgsLXD=UbwZyHdFzJjR;io58h!AP4-)Pug@LG z7(h<0V~=CdpBaT?|M-46aEY~HZ-EqC8)1<^=H!54J!Q4YyrzXL{`xt|;YlQ`WM*QjVr^6p7bn#YU$p4jNRxz#HQ`N~VeH!P{ zH;E^in@2-9kF0|pbsinKb{;K#0q0Q>aDxmOaUPj)9@(zWBil9es7akiW>r7=4;M3V z#LWX1@rXnkJ&4X8+uP*%gh}c|y{ zsg@!d%YBMw=wNsDrT16kVBoBR{2RqtH7Vra12A0ao}%vI}q&?Aq%YVZN_R zI+#9aj5V`?r0aqZ$9bzBbPFHCM8Tyq)*fx^vW?>P5i5TH<_dx}TP~5h=z~ zKGv_1hW%FYN5@MP;MoDDQkzI?EUhDrrE$h9`Y$HG?MM8P%mc&z?&B=-0$Su>aCK04pk05$E5fsR+#~w zEp4N`KFq=|Y=5m^HJf^V7KG6-#oe(d1I5Uv{D0D|`p)4(KnYJ^%H41{pmk@-!LSZx zEq+qt)KzE7S~n+?Pbh7fE?$8ccX1Njt8jEZ`(gT*SNzBub_3tY;urc!t?+l)J3X$) z-DhakUM!QRA0#Z!J-|e7vzIR=Uh12ZTJpG9RVtZ>33d0SUcbN$1szVX)lLLUy_$hn z>`bjbaWcd=g_;;XxQ=ht#S4hjnpDC*q%vBRk5;JnFn#-#B`8Ivb!!!D`M%VV3mT+q zKRGqlAQiGG&paGzk8JrrZ1#5USQ2`ulW*R>E$yai`-3E-+`V?*zGHrGn+-$7wR_uK zSR;UY`MXS%{IPr($b(#9W2+y5%IhRISi%{PKs6(2WBCeOsqII(H>R!hrDsiouS98; zyiv`)aRFCJ)?6Uvg0^}t7qFG|HxIN4b1kz>BR=W>*CbSAB^kt%#*ia&47%4|w-R`< z>76FFe2L3>e7Oy0HqO`^k5|1TJxz>f;PJ(v#+48T3>~lN(d6-Z08$G6R zH)$}{medZgz06>9h#6QI(e@n2`v15VT;|pLQv3xrp*g}VgKA@v8FWRafKm*YQgC6U zX`(5;djQ?XebD`?k8HXCa`8I-&-0x2dts{@Q+i+O&li|w%W5vlAM^Aip|ra%^}F-f z=4;~8>`Og=KJ6*ClYCi6qp5$qoR)(+kq6wD8a-bggrRFsxM;ul_3*{AjtxTU&C|el ztizd71k*j2m9~AU!ShP{zEt8ozkOe-U#+qC{O4akbJ)~F`@rJ?K0HRzj>;Ji#oN&0 zY%#~USiYo1%E|IYIoKF4XCi%&nYC1coxqYO#&aJFa?45H4*!%be~ZmPMVyrfC> z!PA$@BWIc(i&QtVFLnO~rFs7St{HyIL>sLE_efA}PiFLw0w7EbgwW(?EY`)Bx;iFW$xMzSYS{ikL`sc%MHH;}(<>`RF=2zBzyeL@fSwz#DIurGD?T)4p$XM$Y3KA4f%9W=&Y3F<;-F;J`*NfRdHGI@kFhcK z)Wu=?UuJ1PomZtX@-9`jW8ObJ$;F-5M9Lh)dFI~6c-{Ahx1mfET~Qyte{!2vcyXJH zvDNANnhUk!xBZTB&-QM61MQ=gL5)p~lH!IvjkF$`31fz6=gC$FRTKyG&(aI`gXDRw#Z2Vwg7%##kN(o0NLro>h)kqvRZSgPnm*gn7G2_+lq>w`?`or+#$Tqp^; zNi!dgmwoQ-~ zlwPOkhYl8!OwXt~O?|SPac<}A>8Qi?5p^dv1cQ~3t=Jh|+=ywrBTU`y(2)p~Y^*;L zLi*_K4jv6R)>p#OAPi~|gZCxDr4x7G|JU(HZK|I5zSPgpjy2rzGz*VEh5W(guY?!)PmW#aB}9qrM_<~`tHAk$j#nX@1AuMAnN?b`X4xbZXBmrFYNx zKS}OOU7X@0`%)jHEX@alK|XZ&<$1~8Dvh+Ma~mn`pQnP4(ESL`oj*+lkpjX6qPnF0 zpPuhShqGcf)f?~0x%L$b8bv9_4xG`-&R-howkC z*e;^q@}Odkn&X~;Aqt)qlHHk=pfjc4gzddJE>#(cyCklU&QCJHfdWyid^dMNoeW_oZgA%gS_>yE17|2NE z4TymJ>SFs~Db-VT4D+*Yr*EioLtv4s0k$~wdm+gZ6 zU~ZJCsx@u}(;zo=gHjB3C{>`GsU+F9KsJhxBPranl*a$)l!o}M%1p_QGpLAKJmrR< zceMG*m7ZX3+=XvC&Q=1HlcdWH<%$}q5Z`I1N|2tI28|NbSmOpcQ*P)BI^qXoG=by)8Ar?Li5F3667V_p3o z_S=?>z-|`%sYbism-^LIo=EG?D+}r%cVJ&??-V$)6Z1K{*o~{$0E;=fAu7o}N~6c{ z76Ev3lxUzu$REW~t_IoIXOCN>9F81v5>tBEQu8gDJoHjM{i)S6eW}VTTCf5=ZJTlQ z+k06xhDYKK9{GS>h`DjnSH6drg8;J zUq0iA+Y=OTD7(KmxgL$}annW7c+yR(wRXvP*WctdiTI%M< z7DPeG9I{2*!ujz9!wW~-8~ne?jyr={@eq#Oek@@E=U-!?B~DRYc3q+pIC){5&W20X z@~m-<{LNF=I4B;JEO73gX{jMAB;(v(c%ix%UZm3I$i}kFXCEUO2Yj{rQmf9A-)(m=5?)omgubgDM)=O+cy_eQX^wJ!M$Qp5N)APho*uoN|HHHf*zH%!?P-lr{}r!2JKk*9 z!Ypt04x*fNMbQepxF`;;?AV}RCy+guK1%0|j~s(C#;H%}hE08%zU;oN9`bBe8vsuy z@;EeeGW)GDOVlj$o#r@MkL3ysuT^r@+9Q{<21@Paon}#wDS7=2uT%2WluekDH=G?W zwU0P#g6O~d?c9MOhe>?GZ+^EGVVf`RSJaRbB$Fmgbl_hWY2%iov!@N@>| zCa=(Nq5_O!b{y&NX)AJoSp&Ag%we2qZcWlAXT+cJTi(SHA95YZ8o))bhE7_wv(G0SRHjy38g>0ln1*fqm z?#*&eob_x>LTP?)UN6ez?o0{!GLK2pyrCa5|9*pycm(cd+I6l%x}qO+k$*fTPxbwn zuljz3Y5irD6P5D^@WmOnM-{mo%E7O6AUEooGJ# z*QNdYB`PgLEiKZJ^@>j9u9o!f43$I@!LKIytM+qtRg=Y`V(wFu+YnEycF)_-6@wme zjf>H^=M3t4bC;;f9uj%^3wrmZZXs{~JXvd}W2|a~Opz6=A|nJiPHpor5A25jSAXH^b*>Q#sKTrd~Wj|`t4W4cCqBKBM_41_G zk?Y)-%00~`w91NNH_Av))^BUdLk@wsA(~eZ)<%qBOXS5lUb6z;K(2RR>f|H?!G-B_ zmcuX4>(S+cs!503cpjZdd$J{OC*x)%lX{Y5z`sO?gxfy|uP)a3yeh{8(}s&_K4l;B zC~v^L?+iA^P{j9g@RUlRmXdSFH?fo~{5uZajeG3iULdUrLv^kM{fyIEFd6nlm;^gO zzD0~uMRq;=x5KBjg+VE^E@55ODaubfZ+%ITA5SrypS55kzW4K zQ*NA;UY@tD)W$Th?5dQ}4Mp}B+YG(eFD0LewQ{yc*JG3wz5sF>vm$pzC~o$?)Zs~s zLSFxDjRucaKH=Pea_jSx8pRRWh`i9qB(AU}KSOOY#-W5ntX_sug{i{g9+&M|8$&x9mg+6X-WR_A4UfLJAkVzvMoHVl48QRef#YTlMt#W7jAOeN$MKFGB0V=4H^TvYL%miU zGwKFeDO7lU<%xG0arqdCe1Sztw~pnxxjPN7nY+{SdfH$7+p+7(1rz9nbzvz&Yq~AG z5TR#6a~oM?cJGBItB2w7oEqh?sIo)MK?1UJ!lBu*&%8gt| z(vFRrBmq@p&2@=MQ2A_JJMep%S-dv>fYl0TX7>9BK)Co<7|TcI1VV9EJ({ISiFUaSw3_u{=M^FP1ky)Dl-z1K9- zruB|A8^k*mgFxKC|GemmI9tiaKbqD?IL1Otq`CD4KaA@E|4Ma8PWWX|u~c4FSceop zP`?9ltI8W`Kw)5+6-UA#&Ze4Yz+EaY3&&3x)p(|!nWdYS*=JqmI)kV~4utE&HAmqv zEe}%*W-5^L_1cZYxW*@$YJE~K1RNs>51;+pe&ahfsG5fx@^x!e59-<;P3)i}*shE2 zLQaKm*Tq-j2<}a_Ur3)ByeB!guwrma1(@p6)=B?N8doU8bvg8LfSih0xF>_&eD^yse*V=xNUJa2;g7&?sP3IVJ zf4&y-^YSLimj;=}_D5%fZF^JF1>l3tG|JLkydQm!9_}t?qNID2159N}(z^≪k%j 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÷GFMvtDp_ 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⊁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 z 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 %uGmtnb4|Ett5*cUZrf$rwBLFtJ_XxD#DGF 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 z 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 z

3rkC5#J)T%HQt4|nY|Ga7BlB*I{!bDh`8SG0y$FM~hBkJbO#+=S=iMLfA zvqi0yp%@t}%feTrK=1Ia@4{}aK(~0sYN5rYY;yRH2`*)`L*HCnR+TE&{+iZD2N}2f zD@+*<|NStp`<=>e=di74jLP8W&+4hnJL^^+{nn|>Yw>6GQbxkd_wdpQJa(7lYqsWY z_3i_@RT{SG;yxFw;dEd|jgDcPT}r7rwOB!iTXW1Nm+-YqsY;E*eP-{#ZeF{PX}km< z@qQNCs=c4ys_O~L!cjnHhx>D{TGWYm_rumo7x%&;o}3}&wtHqZ6(ktosPN9JSt1y` z(`%L_7`*rU^0uhqdv^C*5iBP!=gfM$%CX$VzY>O*W$si{D~ zMm(=QxE6{*;{QUq?)1}r_m-f(s&ctz36Q=w1@{X`fyK~2ZQ5QkR(#NcCB(W<2$4<5 zL^<9V$u8EdqJ$;ru*JL0tpc_FpjB3vWV)8!XK~bAdPXf6JN^{^$vhSiGTozZ~2M2MJvS;Z@ zI*6NItXb5jokwK#KCAy3A)pTqoEhkM=L*<=`a+6vS%kj7Q((7klD|q28zu_1 z8$|_8j>*uuFd<^-+?yyG7-_H%Gf1Z6zA!Py+_^WAHCW_y7qeN$Gr!OnWAxmcXd5iD zxhrDUT$pqfv*zaDU%SXDt_gX=@~h$-DGt-*yVW}+^)V}YAuJnjl3=Rfw3Ca~ku}w~ z8aye$TAF-0f_D<&!m$ju!ZEB@7wbj(tBmhdda|l^stVOY!45o` z8-wQsrip1KukEs0WM^ImFuJ>>v=jYrz>P+f+=kp!oIRKB*e4@P2c6IY;jbmaEVAVMqa(jFU)*N?~|A@6gH zQi~0Mw-OL~WH+o8_C?N|2x#x`k%1hGdRtwKimX;N+yvOjgc?va(Q`194J&NGo`3Dn>O{B#=c z7~qg%{F1ER1t?KD315mtw| z`T;;#Ym~zrVO>-Xc@N;4HOcB!tHbZP#o!wF3Q9sX0I!|F_ePxZef$8>{&KAdq>UXgr`QpPVL6ubP2v4hMMCwV#5Vk zI575RWrMBDv{%{eJr1AEDL}_ZWgCUb^~UVBx*hrA8%=_z-c)lJP~Y>&%h^=HDK-=d zuG+>$eVB8VWwHJuQ601h@v0-G5fN)oqF#b!sAaSC2t%tyh*lw=;nki*y#yV+1Yy-8 z#Hy?Wpw*s4y#xn`O8`|TqEao|kjuU%3t7qet{5w@Tm%%P^yv*W z_l9wj_~%UvW{rLD9}jsFl)$owgxUk1V$$HrZe;sUDmxFSMb2jLwK?w5fX(XNNe17V zgivqZpZd}ygL0nSF`XA1fH$r^;N2YR6~PzTjnd0aPLx3kS7d#?d(0dRd-8Ks+)0;} z){rgxKyX=DzJ=5Ssg9#Vnu-*P07{mw%+$KVX3{?IMe61x47ru=(UzbeIAk0hdQ;69 z0j6%+#VfGvd;bxCMCS&o=v3PD?SQ$NLoDUE(&~s;`@3Hr>$T61JTw8 z|G+aA)DUg``OExH<`gHt<6{Z~()gl{suY44_V^N%T&^}wKhqa|e7d~1@r z%MWVqFnCgZi!U3zJ!%%~37%_N%yyt_0u{%b3p3doTnkTZY=zcl;|3bhMZci^%M@`v?7jI*M046bS!}`w(uC(*;lG(pyq!&a zVsH7mz#G<^mFZ(f|su1JrY0-nEf- zU;1sN-CtL6C_2LJ=CgK}hHqsptlgQ>cIQ?_z zjINPY7XpZzQb_9KCN4yqTN&r0V-o~q=svR5j3KVN>0`nm5lo-x0Y`uWLAk$yH+ zMucehR{l5m5c}ltb)w9dXo!1!f5ho9%37%e5 zI7ywC8oF_n*_)Q#3N_f}x^{WyS#(v~6G#Eb_ar2a)G~XJX;*y`Kfh3`4&y7AwQFAt z!)wO^c3p&*5AL!ns5ybxUYE4HdLWrzU>etC%)w|b7Fn$Xq_n_<^xrwX#1f7e==LuG zme*yaWvV2@BGqvV=36BHy_u4KLYCWKV0Zf`jB+bodP$~3S%>jJYgy3iJAYzfhbL~a zFYjMVaN=geB#e47GI7}ze148B;S+cG6`DBft32bQB{XpcUME{m?+tZA!@~1LWP3N4 z@<7+MQsu=Z7!&7Z_|NY$o%*Ri(y3qg&+fPT3!!Xi1p8uED49Lj#g8OY`NaT> zWZSI$`Y9I4)?VJ6Z!!{U#PhYR2Sx0HHSgDvX}@DJM_a*X__S-k zqiG-ZGS6syhNeB`*OC2t?cxYN`|~sZZNL5$J-f7J73%OQJCUEZ$E){~gNZTS9Rv$K zFkZ<#<{eU0Xqux zzg7=SB>Z+bYV-sWoycNQvxKg4w+Hde^c(9s$p_vMpg&$T))<&5K$3ioX)Nw523MAR zM?0Zt3ZuYLF#z7S7&uLy-+^o5gofbG4GKcsKw4}*5_havm;!!1Yf zL7X>QW50Q4;n(dSJ@mSSNMJf5)QJ$E#_u1+_d*z;&bPrRHUMoZ1&-#34W1-H3Y@S@ zDO)iy0TMH%lyjJ#2x(-ja$# zo{u-!vype0vA~?YBZ$j9#$K<&W;S@N?!-B^5?N>^#XdRrho{q#6Ok5N0~IhFD*P-( z@-@-Pt~||D(5*CgHgUz4WxVT%5VTT+GSdSuQ?x-aEA^@(+VY8u*7%R5O(J{bM%;FI7Efu;WU&9VVQs9S4^1n zHU4Ra^Z=$eqGv_;zYc0_Di?pTpBckZQ%V_%|gd%U7X>r(Y2!Jw5IT6GGnz_k1d z(ZV!SZvi^?irYWOwuovBYX-dH|Imor;DSRmyI>k0XnbG5YmI>hW|n%Pt3{XbItcj1 zP5gGZ8W)g1?~eY+dXf-lkU$&Umv_OF$ay2Nmdy0kykGhwIIY~vNuqQw$7yN5A)Gel zH$0=oLpW`;pOfKeT&Snt3B`kWGZ0aP9lFfgE>7MY=>V1zoDn&=zZ+$UC>!9Rvp{uuVNdmi*2+% zwox@drqLDoF^#^E&l-INekGukVFG86CpbVRV#5@`62}OIN-5h>jcsx#3G0Z< zUqlxic(jtE3NpSNHZRsE1nNFL|3BWoGVVGweoBZlenPk2 zB03Fvp|eHj@+Z920>X#UfxeAq-_gOo4zqVG&~|2`?Ru(3slIlh>gLb`K;WU1cq=3C zGNzr?F{4k&ffQa5Qh3RbPRU`DdG3_eR1^D3>eCsc$gng&>)s+@qY%l>P1=!6O z0E6;#jEC9f#sBpf`hdTkN1ciskoocQp4k-qpnKqn8U6z3a>7%$c2~-SKIUDmk6JQx zF6c~*5QmRmg<$SOaO#Bwv+puczoGE}q&pdq`cEaQ8PYN03Aw@djK9h^tn`iR+{$sH zyKeys8^86H65Vk22ZDqBZj-*f1KLI99-Zvo@ zZf`*r`joBP=;@70mL;Kdd=2%$Zz};xg1n&)Wm23vtyt?fL|ny8gzt_y4HNws5S;Lw ze@Fnb%GGu?g;DLPKQZJ`autPG=PH2|bI~)*!B*jFin;%M@M?;=gZ_kO*hK7ZpBpB2 zOP-4y48`*}P1`w_9}Jh5)4?#-&og$;rGp{kxd^d~c#RXg4RgE2keNXe^VzWy^Gg?7 z^cZW>_cV&I*hqP z!oW>AZi*d?I)ij66-P0nOI@@&*kCa5bBo+Zu+R&VpLvN5yLN?g-@uQZJ)*}KGcU!0 zOk70dJq|FLj26&U`34WF$d4-qc-)F8q}gaA&ceT(+GA5t!=?az0qq%hT1TH`m>Eju zmTnHEFdzMXZGx2+hv>2EUg+yy!1V|wiafJc`=AZrxDsK94Q`y5ohCHV&L zgT5stWz|!##`{sQ^#TNh9;0Bhz`3|Ul5i&^J@6^olcs0>kAT*+z-s2TUqdFy?shC* zAfaw(a&tjG!b&eFi31RJ(VGI$K|nmXR(tt}maFSWO=BDgE)JCBsPn86n&6IwgU45$ zZxHLs0Vjn8K%ZDG0YGN=W&oLt5$QU#N&rf5C;GB1!bq&%t;!W5di=ZxV>L7sFphNsaI9)khCgjRg-v>I zyKj@xnR}^fAk<5ZHtJH^wWH|Q@b(1e2y$cs1-Zx|?NNu{ZPVc`D{Svd!CitX(aGpg zH?h=)eatsh-GwGKIO+RI$w})Z&U>s4Jvd@ZIcTW%JH9mZqOqaj@%$KD9I;>clz%}l z$|2$q)utdLRma0CH8&voeR%r|V@%~^gk;}Fqg1w0Y)I<`R3|d5y*R_VTWpxz3rSI6 zSkGfRXILp67}jGJp3WIoO7DTBE2QI2D8Yne#=866y-ei%7!}0Mqt}!#jfAzL`T!1p zQKwY4mvmRvEQ`3Mxa>@!YRhzpU-_yn2G4Y7?sru;vMmEsa-~;-!Ks|b@ga?D*4&r* zE}|tM)>aXC0R5<`7IEV^)tD)6pby=YyQN~BBX?cZ^w5~t_yFSE^}rj>{Yo4WSom`2 zV|o|oZWKpsSlACUfX$n`0WzN+O8kDLCx7nVlQoxEPe?hfD8u1vHp#h7Og}UD11j0( z{ryoqBFixTdrjnsym>Zfk@h{xkI21sbVLq#mS?>GC>@a<)vQih{0`8Ev}1m}PAA%5 zbu0B4lqz4z%?C*mtfxOz-4d?qRxY`fbJ}|ybitxcg<48Mepph8$IVsb;moALfu3|P z%Vn)@^^s5}Hk^uG6zh5mgiHNNe=Q|SL<{$sTGSF*PhmfXGFgR#hKLpBNp0PF!lgN~ z%Fe0S(86unZy#o%g>Mg=I1=^>W6_t(=`KmDIY)!{+~#Ya<(&_N9du@XPheL4Nl)UB z=t9G$?4A)Ikm1GOpktwN3|`m#K!=q(x5Hy+_3f;FHm~niXmJgX`9?7SvYa`p(YBt2 z9^ix}#(*;%OO)1U3D62e4*M(y!~JVlmT=lZTfpAK?r3~1IWYg-l_%`wzz&on12CW* zkA5@!HQI{Hk}(X&3Z(jq)k!AVpRYTC?>m|(`Pvf~^n#;g2b{m&lF)p&(kKnvAp7sn z%+?9^**m)3mn}J%FFJSEEYaA{_w+Lc|4P1QqvTs_mvY;^d+|I6cEeaL`<+XT(#3uB zwepoUIjm@7DsT_pb1v-H4RkB9(3HK=?e9JO0RithBl=%E#D>BokEOQJJ1Y2&;Ya!s z=&<4?q%iITj-sZ@m>|~P7AsFf1?Pr`ja5Ty)^^ogzJ8(YeTUd^KrYL8#Vu^skH7B< z-4Z{(%lTgE{lZZH_s50$yq8aE+@RB>o&@2k+rIi0=Qb06NyQg4e@Vj^3xCPL7b}0U;Y%ie$-);q ze;I`@Is9d;LCW1N`R_4#SGEP+ux1pYK-|?~+|9EC2%b zULXL{00rdv2?fZ?Hc2@r0}A*}YfHq>-4}GoJw6+6m&VsD$uxMKKpPu?Qfw|D$Bu5b z(kiRfVFcDZlY2PY+S0-_%uZ_;bogGh$cHnTAzy?=ZPSESBo2Lf?HFgsb1$4g3!jOc zTArDlfBV@?ernxVO{Z2__`3Ge3_7(6qIF83XkDw<8cL(9z5oqR;_^q)$qO3^a_;@7hdKA(E{rt) zo9VojapC42todJ6@{9qj`ClxIaPHU+zy9ugm~1mF90qpY)H@G{n;IT%Dl^>Fo`-o; zyDO-v{^6$n{xCIl@##oY#%NP7U{mVC5)`XcX3$YE4WFN6&lCW47JHtJ&-b(E`S@I% zLHGZWUcK~m^#1>0?$Fi|?o~eP)zS){VPUXYFVqN$Rc$nMNT7xajh2J5~)!CxQ6zTCW>28D%|Fu71 ze;~OjZZ3usCl>Wb!Kd?Ob#O$FO)r4gc@|<}Gi+k*u$U#@5Lx1%(F*SuUElL?eZ#qJ zk<>YZ$ivzq39r)G0JI15cy}@0Id~9uD{5A=ZOGEan-bSr4i_kttS7 zBdQaY(%3aV&(53L@L;&9qG(gja8nl^Q^OYn|hVgNOVUEzv#li;jhWfJTDjK6)wT8vAjO~3oB9()z~MPOKS zIDLkA_i4bp%+ckFfe93NqOM;8X#q0*H@|T`0o$LIuf6(h3pv^?PGs5`u0+OhnWVsx zpRq8Ix>d88P*1MN;!@@@uW5OSO#h6Z4Aq z+lSV&mA&ROhqBz+VtrzQK|6fBghX`V1>@9-j331mGr zAEhBuGV{`eT6X0L{QliF1OAu5|9tpwhyPaiZ-)QSTIGC)I>mtQP2N3@;t&_?5I^&v zTWnDM=$=_Y7Z^clX@L3QD~7rBzsVkFBN=BN*9=21qJzJ#27bl^DB8y>Sqp$HvxyCk zA&QHPMlF)!va60Py-{)Hhi+eG^7dV2^ro-s>&d{ryJg^Xt~-x+g0P7hxd)FX90SrL z=f?r{zo4CtETB2ZJYoZgE(BsG)EiX*%5Z7;$za52Q}dw}vEeM#MM0y0Zgz00$v1y< zK6#BOZ_e){7`SO_QAq^ZV1@aEan%LygmTcKWNqa{rdbfS(n38%J1*5sSvknWPTE%% ztb@I1GBD|ioz7#F9cH&ePqHb%gm(anf2Ws_{i>u$rY7hHs$Yr?PbLITn8b#=6I0GR zn6H>xnt&ZZ*n4b4C10Rdc58(G7aN}GkOC)j#D@DXNrB^bDdjRGU52DgDdjMvc0#I^ zrCxzl3rp>SR5MG}*=;_g4v>V)?%WHWVd%_8I49-qs(3TIH8jZ4RAdrDcZ5+1ZW%@( z4FyUpzkYUKr?NgYkR_$zb=-cK5B7Tf7fc@H!CU+cx}{j0&aN@Wr5WO7=lMMTdYp3o z=SN!N^vzNKP@6iGKJj31>!9xO{=|kN)7qc1cgu7r-^fZ^ys@aH4u(o8>^$(#%L!fM ztF{^NY?x;cC1kfUhke7=z*OxiLALKMS2puqia{I1hI@yK4X(bD_}&^|bR<=_cy1Zz zcfM(oURI5QxS?jrO$IjoC@C*H8+zRBpR=c=ZinY-Nv*brJYvIS!N{dtLQ+)9CG?0& zxrF4XluIy0rCdTvRLUjvI-%#JSZnJ8AR9%-qfrB(^tthr0b0I}!LWy#@A=QSui6Fy^CPSN0B+ zhNSk#i4sw+;{~+#q@?zveb*OfR&2OuC`>d!+tUZ8>;z0%MIV^5lXlXE@$`WyI{{PH zh3PP5C#^gkrtE};r^A$;H1l+rvJ)msclUuQ14inacp=o)!GDy8paVts43`ZsIOV*OF9esY}u1FC;JW~XN#2z`;=*o~i3 zobP1it`(nOPTc(Z1b1$$xO^&#EL~(RO%CvbFC>JAG?Huw_9Ci1;P&6rI#`Iew~LO? z1pPBo|AuJ0$DP%oLgs8rQ~jZj!=SG>BWboS0q^IFV2W%6@8Hh>#`=1p{f2m^88ol>mb5t{#I|6W%26G_v}- zt%f*Q%!}NG``;(AX`ZBhhSW&>6_iPPSPox7nPRS>5@TeirFSE9#=@IvcO7iem9>#q z!$A@-Tze$QaFpdcnK^bvXin97)+6tGGBCY2+sh zS?6x&z{@T~;5FeFpB;i!grw|aJ9vP=Xx=^ovruQpFi`W;`R$qswd1TvidYbhozzBW zg~^bABhWDX0}Ba?+JQi}SkbVUJW0R(b11o%zZ~jK)eeZRQ1C6RP>)Ai6OD z;^JTz{@@_(H)3z`sjXKxTB5`|m}rS(Wv|sGS`{b^oOw^r?vsZ2^ z%7poxP7JZrSIq=hMOR~mubISI;q?6xR``zAI9B-b#8^H1$o+<-oQsvI`SVU)6j;n5 zSve~!+wZ>TzPq)%;Hyy68kVblMm<n_lM%JNz0(}2&Z`6L@q$vSj;)a4UZG2m@9zO=3?Xkx5N{Q%mKIWQjf}> zq#YdWpMbB|RP`hy>YxelTeta+2x8q8ZY3_jR;zj*nn0 z*1n2Y4uS8i$g!S5Mafa{eaZg?b~b7X=N2?6&`x@vl7D1o+}_dbq7ZPBKfM*D zr^*!gUuiE^I^F)ylkgL6r81|!*ycBGAp!VCn4kLMA@#1I;!CcZkm<=mD+c^-ruM)t z9PK;Lk*DfnSOkXFEa^;OdiX`CL6CMzSM-gj3;;3&1F@EQ8n(B0jj^NQjB4LXJG z3_9p3j6(+J17UIvgNbb)!UUbC0ep5bfOyAdA8;(Kw4xbY^@FnN#V*ycF1@%5*RRp` z8FH+?yhmh!jn^5(i0Cu~7G2b;b$-LtVf=Z+d;;x@t=cqRmzb(uMyzj>$;shcq@SGk z#>@!zd0pn>s0lL1KI0!H?4v%)Gj5a#`#jF;nDz8Ukb={>7`0tY_%z>0k-~}XmsH8b zl&I8v7GQ^ZDl3&1v9=M91l46FGk;W%CWRq9|AA{K4Me&O8GDwE1qk?Ucp38SH!Tqf z%)b*2Va2*A{J&ucHctwR;y#}d8R91rAIWTq5Ao4*8se&Qo^h8%L#&?>5yibEMMQBo zN;q0-O00VfzF#hr&cOUeXSq19cPI_De81UHE>^?xz?5KY%6v>Y8BJMEq!7F$9izl* z=3yBo-;QzBFNoDJZ(*l7fH0o^wLnyPqbqx(Hhm9UIG%xWvr9r%Dc@y*_iP*bmmMgu zPx0j~5EwOSXB2vGBt#c9@ZA*m=IU$uDGJD)>=^y!W&gy&E-HUb5mJNTL(Ec^7bj~~G?i<2nAu441s`d%McGN!f$v! zNBRH5kxBf%kk8eh3;87e=@FX5}&22=1sAnQHEk&Dlg}eK`i+A@z8FhD5 zxVxKO)ZH{*r@x+l1JnWF^r-3+x}J)xa4RmPU zxl=UZQ@7KspnI;D8pYbf21ZXyz7F8%Fld&$?C57ngwjTDJ0*laF?nx0DXSt?leWEu z83LSghPTu&AByV#yZDtzdU$wgYHj|z*;3TGI^h&6 zeOhx<=_X&^jWmua(5F9^M#k|6C!dXCCm)CV7c>t4FL;KHjpGSc2g60$J=g2$UPwlt z3>iT$33s66r2=%H3i(7@KCFi$%_63)|H0_`FW|)Bp9{k4etUo6fV$D#Mg41(TY!k4aN#}V}ESRJuefcc~0>q8V)nZNZLmuQHS zha$Kx$VwNwhCAR%(kGZb$%+Q0A6hH`BiA?SgQFnC_QKLVcLIXDyw9UMHa=>(o7`#E?9;&{^ML2A&(oKapDK`YpWg20sdZu>_Lb|hK5zQl4JE>iA=oL;!r1AiE(BJCw_my z@5$MY_V(r$y}2OGz?+@38TkY6y&Uk~@v>S7l!*lVG9>(8Cqb><%2bpKfX;cHp2J*G zgca?9_qOeP{7(EmUz|IfQiV|wD%(vI7i4%^79iD7o#6(ffEcoUu3 z;dk#H*=?E!HWaeGiGXrQ#6gmha~e|LF(R8{sH*IZUOY#hg12pIVe!t$fwP&k_?8u< zpnlbIB3&lr(Na2fodoc>tx6c3hEnedlB`TLi{=SA4zbTQFp`2CV2`Dyf)pYA<+Urj``i3l zB3Co82&7M*beQdpbMe7ZHe{}P2nLEuCjtHNRm-48;1jkS@20fHj zjGc`%4ywR~{S7cL-hciI8I<+1GJ=9iVyJi&aAz94cRPH*HygZi#6bbFF?9VLS#MMF zxW-ZG24)On#>2PzK#R^Vsv{-GKuNmGa`>(!i?tU~dZ~^e&$Jf}%tIrRuG_vNO2)q- zN|&)ap9-4=%h=t@DBu)&yH=z6-$qF}B`bTit($2OzPwRmiQjpix|{djeY$MbO?yw*lDY zTJ)!`x(troX0dL(z@)_%hp#zPdtqIRPW~v_U8K0;HtwHcIC33jx@Of{cyubUHcjAq z*|Oron{dh31gqU^0mj8lR!Yi4CU~|oymu!Vm;+C!n%({+>FZVV{q$EMkL+%>VL*lnoA8h*`e&Om?$dq#+9rAzG75L#$+!gLAKnvLE|qt1SN~ae@Z~am8ZDPO(|AVW9kg8B z_wbYPB@922J_S;P%TTh~h>)zsn5fhq0FXLZtc)aqYV6G%eea*SP_u-t5l}^7L(CcU z9}gfx2mowrvGNW*XSar4EngWYkHZ}lCxc^=;FHOgep&ua^-fzayt0+biimU1gxw&#yxKW0PG1XC-=>Z4Kv%eMOjW`LbJj2F zBPp{@&U*Z61&iWphjQ!SYdy6)O^g#U^BZkh(YyoxA>f6!SS$8Gg1E?zy3(}?JrG|m zGDG?gz*#X9-C+S>s=fxyv4bq6yxEe!^y`v3z*d^aD51MUx+=X3ua5U=M?08pq1l0S zU_Z1npfIy_?@$cpana>GEiq-YOKh0Y7iS{(xcKY@qAuMwfVDhS7T^2IhnQRP&oLPl z1kMV%i$bK3!3LW$$LD66%C-w)Rnnm(GF9FinooCIH*dh>TKv`XMnGDA_)|Vk9O1OK zi@&PGlqE4Kb&tb~sLsap8Aj44F}tnpRR7sYm|7fD`q?~88Dos0SJfiRIMr?a-q%qm zE`J!nHeSuJsta;_9Yx+!gs9-10;|HnZuBb!c00U>8&Jbax&*0->~0uSxy=fuCb64g zOyw3UmCHB}?2y>*wY* zaHiMVkk?SBWJVIp#obKks7|rPmwcHLt??x(I`EW?_>%RMXo)XbLy2jzC7rfK>J)Qq zF{f?5Iwdu}%xravDUuSjqk4OUJ{YG?ww?_fOCZRKbq@*TQoffUmF-X`r(?C+pCyo) z%o_9|5FC_18X=MTVNiX_K$SbZJE+1n<6#v}jR#g-*$A}a%0|EyS2hB#xUvy|#gq+0 zET&)>WO1b!%;J(}z>@SQ#ZHH~jVhTA$CoK3g2ZCQ3eq?X3 z^jJF_EB+_H^mQeQzDouUZq);@-YV9fHxR6w*!}m0V9?ObpDl%`23{l+aFS%!H!2f= zIf8QmC|+g43{32!OqixjD24u&i`9VfsBaAUVGj#Row@B!abi2*=z=3^I7CFjR!EfCWMW7?Rn_-yu7&;AUTk!+RrxjWaz} z+#uFI3138GEC9?#{KSGDz;C#+@s@*bTs}bpNpuF3K+VzQnvP`8)4n6gKob5tGsek~ ztT)NNbr$y+4|-Kt0iVPJByxPgw}8w6#7pQD1AeE9&%V;Zgd>1&@)4V^W7t#$+$pK! zEr3=9qxk&4F6nyk`*sT6kpYknnX)(5Pci|3;;tj`i1iLa$BIkWVYg$>dlvCKv`riO zSxYz`P8@%b<3MNp-Ar~I>Rc=Ex3=7%=ubxr9eE!2kvfV6ZLUBm7`#MbG^N+*P<#!3b4r9g7NTX{nkoSj5v_GE)5~$gE zh#0J(OXu<1VU*I#P@<^>FcxqFyGvxHq6z+Zc9-BfB*{eRTE<5ft5tSw|0hJY0;_am z+?BT7dykt)u$-7F@jGuZ_>JrH5z~#zuWNIN(hn#ma2;+TXLw)u-M5$s;!2_2p-iNi zV9a1}37UYEe$sL^`3Gb6;+3(j4x}nRW0V50+@8ZFC>~0e)w{I6w9@Dg)94+`ih!^7 zjKuPiLw7&7$k9}k(oNM%tb2@9RvAT!yt-UgWWzr1k=03dvEgnrRQ=r|w|~CwQWn}K z_|ssbJlkQSp2T_DF7^?8?Z)cN-cu6XD#ZCCclyf&SMK-J1wV7S{5{li`;AZI_D>B+{;|01j2*b(7FvmL zcy0%tRAPfOV7|lI0qbs!Asl}NT84$1k2SVajq6yAGhG>x8YRwfIuM2$8`6&$#vp1+K9pa*=H6UF5^QRa8aW&3Et zw9Zh>LH1f2mDy=3a0qN5$n?(6QjJP~YRJ2GsYM5?$cdt7y?#B6nHDw991i?9Y2>1911P zz~8_7af==f^H~?>?_)1q&GDC07|(P+y4`K^<&|V1!!`?;FLs|m4BJ;(Tw=K-i!*GC z#}mW$*?69DPZlw3uSM&u%0h0u&6COeVfS#XX3Xr&B)osr2PA}&+&_B&xL&Lq;iLEHM&MIc$~6&eGC(y zl!fxU)i`WSDY%L=m}|)y3@|M7%r#498oWb8PGI>atrEN}a*Y-+qyE!+%Ip~$n%#;| zp25D))?tg@w5EcYhGyS1f!3)(S7!+9S~=2*mBSMw@|gR+VIw%DU213{f9YlvV?WV= z_y7G2-PDCFUb9mfw}Fk{-d52NcPs(*RmM|zjh+fR5fg=ruYw_ecTsMMJz)+B+c zjGMXc)gkSTQ{g-mO%R_g1Aiellq8U^B`GmwyJI!e0ms#*Yz*swH}=ZjLHI>%Sj6?e zXJ3*6-vO&}1(LY__Zdj-gj6d_<@(>4+6Ad*mdf?NAvIGHu1LB6_VkwYHIi^v%H34) zW{C9`uh;@VM?K*t{`Sw4*moBmIj+-ntzM6;GFK%L_YmjmNg8~6clQuIap>!AVBQP| zU)3)}(=a9urn{8Ce#o@M=w;4_EevF}Q;aB;pM%%DunQpN#kC~KF&Sg|hqkqXSoSw zQO`ETsArpE)U!=7>e(h#&n9vNsSv;0p6b9Rhe*Cl3B>G5V$mf@|61C9M$(%lpKe@` zoZS|*lICQ)>^suwaiPgAmj8^G-!JK#r7uvJ1OM)lZU_PD{)6QA*iDF*GTpgbpSH+; z&nqS=_uPVO;A=YsGJV|)KNI|;4CDQ&0hjpRZijD8s$6zT5;QmJ)@?@5VEw;0ME#6i z$6v_L*dYEwe#Wf)h5U^DjK7edv77h{`57CAFOZlGzbh|@^U#N%^#A+s`)~gH?nVE7 zy_ig7Wkn=A4Yr_X zfiLfoA$Zo6!nt)kFLG`j8Ny|d&kx~e-HHM_>%K1F8RbLhtb32w8KS3u4k@8Q*{zWV ze0e7Pw)ZWnFnS0g3JO~5*Q$Hy8I>jY*c9;YYT ziZbmigSg`Nz<%MuX~Ijkh%~DtF=dnQk|5SqAqyGSwTEmYlOC2NMWlyPkBIcJBsn5I zluQxnVM$6vdMNdbNDt=&e%OlhV977E0AD&?k zgFfRAL)P$zTQ>5C(c8`t;^@7X{U#kb^W%7F4%L-49F_w5m8nZ%*8z4Zyh2dND}ExC z$+k4Hwh7K{7b^Mz9-cyI_!Ev+H%aUGk@LH?VG7PPt2*+6d>4<1_Te!y;T;F>zyPU^jUTcAa|d64tU4 zX#*Z0Ve1o9jP;2r#`?q*V|`+Zu|6?Htxx9QiS(U`hyXf~PRqVaM(ptnscfUq*{6O$1l$t&&bN_L-$SYIu~ZwBYBNPjAR@m+PgkHsCzdz~pMVoA^j)N}(~-}# z#WjZAxqyiL9DM~IfJ20B6EcS#*D`rYJ0T%#u_}n)G$er9{@;E^1CTLJ6!W{t9D@5?Y9Z z=jY4m>+dYbLSrgaJZ|9Ax;plGh2@Qzqoz{gBwej|-Uz9$(?$v;NV(f9RtN8n_2&|W z-t!UYX=y(Vy$hoGMS|Z2vGm0-1TTmW?5B(m!x`_>!vi~TOpx$Dc;K5i06oFd>AMd2xqC`;vO08seWF=nCkO?RNa69y`m zC&HIYRruoT1Udp+Q4B1x?*u+^L@9@A(bb^(F|NiE(g_H30a6c)C9s}ki&FCUeyblk zqxl-Z`Wy%A$p~!E{CH8)GV8u5W0zRmqHKkXAY_EPFUs(0{Z3`$AI_l_{gi_*fRhUs zKrgT97ZD9p$0Gf_s2@>lZK$|1oZT+4Mm0#RWr;PB29HpKPFn?>i;KjmZIE;plD>x| z4EZq;ub0B#(+XdT#kHq2sAHnl^22W4l{|HZ7bDxLT+{e*1M;RZ6Gx#z+ zz!%$F;br<(7_gApf`FxJZ-uM98MlVNqs-UCnJ>qDGYZ{G=<~KdKMh@KeR;U``e^Hv zQ5(*vVITjNH#^5x0m*X+%#i#8f|+dlJdpf|Z9XqbaK3=Jb`GRZw$0{S^Ba`v^aomJ z#O8%&=*WnDUd!TZ@qNwHBK%}-#y@L_a|8<9ImQFT%kq5}8KG+p8Ov9qn)4YvS2HE$ z6j5bb?m;5QSTs}Z@*Z~eYS#nM8eW9|<0R2nne9khWu0Ke)^>au$zPD+>U}GJIf^f% z`AZOAa`+3Le7(n^T#kd$4CKJ}0wh3qG6Jvl*XL;D68h z(p!7gR1PtC#sSB6tC0sti=l^0KQbwYS?v$#3G03Ubw7Z*AM}#+Cb6M%2*x?wiT(E9 zFVrtisDB{Q(d;4)Avb`eyGg9W5OmJmSu;=}XGUc&*;i=-CTN=x(exv>9F&|m#fBLP zc;Bz3{SgIi%=Hn|=tk!n8(rD@KLtki;d0!n&Dllj$fz$la~JYx-p74;H}xlNs89-N zL;Z1NRR6g@SJy7?AJ%^!&Ger~^9);mrvJ?AT(74uhLq5?)W&HHy7HKv#8|l1vf|bu zE*P=yFDb~d;9A7h73*ib?pqlhEKMgT{iJpiwcz_;X&dbT6wpbQkS z@c5Nc+Um7Yaq-<)$6xV;0Vr^zBpj9$=Al;d8{Z|$8ck1>HQ8-i{hO$ae1zoD=u-f_ zT#L2Wry!sy?qnso9D%jv7%Dc%z^`;9tmgd6Ik$hVE^lv@_4U%HdYEAmb^{9lWZnsk zoprkj)heb*z9za71AgU{q zy|3X9>FNAoPzHY(@-zN$%gx6KA&kD2{pQ_q45e6y`FZbFD7+Y6=AqO{d`}Y_N=E{F za~uV3Be}rs5GDe9a~#;43z*IYZj=t}&2bA)=K?oM2lnQ;iKhd5b4d1GG0MuQ{!-Zw zZol*P)CK*rcLcu@;^{e5>75`cyCvUNlUwL=Dm%sZ_L2(?6oMNN3X%|#0++4i7aw?? zK?W)J^n&Z9#K{0k;gTd=mU4HJb2*HL2|vFirY9r`SKNtCjE-^Kt!#?ncb>pM#qk2L z_4L#T)c+bT6ME{bB~k*B^S{HQFeV~95Eg*#g}eaeLCtx)!lJO5+pyFc{7$?8>^pio z9u|?I@M{|vfU(c4i!=s&$IQK0Xl=MVOhoqY$Y;L$kvxud2eO)|5Ig`oHS-9TS;srW z1z^Ad%?x7t7O1uX{-fv-I{XW${@8Zla_&J^2Nv;q3|@gkFkp31;8~pe9a%7XY~oXh05ycsnZb0LVcEN^@72}SEAIMUL{Nc*kQXdSKp}_wb6df7hQRoztgJokyLjI#qS5cr5HjU*=&G`;TdqCz(l|9K7^Jbj)TXPxSxw zl&%BzjR?%hH$SnrLl@Aw6Ux*>wfho+Z>(u!E?pIGwsJY-|+od$sc6@9(ZvL6ru z6&|yC_idOTHUPd?X8h$p1$${uRNXj5i4i=|&nj!T6L2#*ye^xO>qOhp#vA z6$918obO9bVzZ<=SHY8oJpnywL^5P`+ICg!q7Vfm)npYAZDMAre~ajwhjLf-n9JnA zG9nteG4cO>&8{5uM3TfS>}P=YzjzvJ91$la91&9!(9sCqIL}zZm$Uw0dK{?8oV-{i zEP@*7W&}tIrL|BRM~0#X=+pL!7cj>(?9|eLB8UrbIIZgrA9Sk`P#4oSFh{5c_^<{x zfFP0YC+v&$iuZ&-H^RgP_mPYE2KkBa&M{fUr(c>j81Z8=)ZqPBLoOWxHcqTmfebcq66fqyk|fb z<5UbQ{cLuAAg@D#C`J`eqT9)j3U zVlfLYC*>GRu4tvq=7E<{)Xe~qLW>~(eY*!9^qNKAYdyI8KN+Dl%*;|Yo}wpg44znm z!@?6a;ujSM_b$P-J`ZLFbC$4p4G&=hAaiTz!;NW<#dp63sejR}J=oQ#Wgl^tj|Gh7 zBbEZuaA)Qo;86#^gtJ1h8d`Kz->eQH8$F9}_7u^I{T!llK zgwoG+@18`$ZAJZBQ5!*qSF*P&XqG?`-Uwhw{?u|{xp$1ejhuhSCOEWW%;j{!~x| zq`6}~P-6QZfM(5i{viz`6+>B_V%zTCMM2Y?nKRvq;fq;5n1H=Lst;9@t1!N_ZKL~V zwk+x{ySmn{{zyUXof;}QvaVpG7{*4^+qxAc8a7vo-e9jDk4fcEvXpbS4sqdy7)j;; z5yh{pEINlhb1o+4qtszQwkZ+_!jrUOehFhV-obz~=Wm-P-g@h;h~%U`2xSPhcC{wE z2_>^hXbe#ol6G8WiaGc~MX8@IQ3M`Ip5_n_HKXloux%UquYd>#B{j&92=R*SRhXJU zWri|n3zblf_Ds6IsJ0rB_Gg1m{3TZ}4Bje*C)om2^NcU;t-WC_bBQOx_Gdodi-TDv8^noB|8r)WtMjh7*5+p;;znsOR$Q8 z_e~VBBzFreoa;7TUt72Y*G&6#35L_pcP>6n80`F~miz~my~{6HOl4#LsX6~(fx@qd z_pCL`wl6EzgnD$+Zyp79yZE#?)JLC|sz-q_ekEzif8>o#6Cd_b1L9B%Yqq4jW>j@Q|wx31+BWOs%UEpL_O#nN?eLBmd#ySEat5E_)W;iwhEvt>R zhePkjBo5y~471LBsTVG!TtNL6L;u+`Jg^EV>Y!|MM4SwQ&7{L1A#}*-7`P1D)??fA zy%=qeVr266eB4sNDs*Y@IPj(p%nLAonZs9u+TPDa-vxjJ6xIj-{%5E00lYi4CBDss zYrfBE?R<#N+FL$UK-*4=r6-vReIM%=4F2I3rqTyN_u&H=jBWN*Z0LS&$O=CiWAB7+ zGRf%SCDi;;@h%?$U>fb+&?x)@xwaC-sD~L)W|M)|E2;H4uVU*Ww_An#p*lI-n^|1G z=)7JamaT=ESa(Fcy~$~-nRg!A|DcUM;(}D5iXeSXf|*+TxqwdgL?Iu5xv^IRO|q*k zp4yIx?*E@;^)(DCz5jR;*~@mhEbS>-ILYP_eyqbEU+H_aC7Bqg{>mkp$0Lij9twYA zg+y|UD5v=;w$!|)nphx_Hb?gS99jefnH|p zU{u@xRit-qWJ^KRyOQNrV(?m_a2+eGiS!OL57fbnPuUA*$RNuLyg=*AGWH^BAZmpd zU&FtD!ppbV%cargDA#H1`ux&NGgC`%<-{+}G-4FZ^-*!M&zS9_6#oxi{A9d1%(n(k zH*Ol5aCo!Om~wcD7O7VH?0e(0-O=`N+Uez2#>>_y)*4eUKE-ZV_xkJcb5B3D@=v3c zrU-lnd!6y3Cfen??hHz3p9$kS&}Ykx&)$o+XRHNPc+04;G^SnP%##iRnP{@xfSogA z%$LjxVr;83}=5!R<=86sqV?CGTN5=PM+Zn7|FD^WJ3}|rKWO!Q^3g3uF){M|6 zL1x3rqCazYhW-WxOp<0rq342le{N^E7yO74?@?OvPPt4#hjdiBBJ;lxng4~v{4YE= z^Dj$&Qw}66s0kvbFA~!i8PgYkiRmkWvE(9?UK*H_j29vYbf!n6G|R3Ln*A>pMg6A} zgRX@XTN}!DSx(Uj^0+g=tk7~`A$0{xTbyM<923Z9C0sU}53(5?|7NC(%f~R^o{4cu z>uqbr0HO%U;wMK3?5IrJZDAn=wPXQLS+(K3s>wH6*yAvGjAxHo@R-0JGvG0iJ*LB> zl|81wV^YzPul?zPz6V|9VtSejlwb z*nKj;e6C=k?zL4j%~j*#q{bq4cnOTKjy4p50O&Fk&xSm?2Ob_u2D>IXg&%X<@icKa z3F}?$KNCKHiJI|2a{h$(Pva3obZ*wtK9E!>&(C?EO2%%6S{5uyMt4D{t)ZeZJfUm5 zOdkRA#``ekL+u|}>D!V>YnYA7{y{QG8t)r#y0%)2_qYW-$9oXH{2i2b>iRQg?ku>x zH<@i@L*~dMY(~q^YfuNtU=iI%AA^6P`KPoWnSU1bqRC zq7Ba^?S<$+h^gcPkHC&wLY34|F#kIP7J(3bzl+C&bObcC=X==4da1w0)h9-g5~Dv+ zY&+l#OlMxvzxgoU!zfCQjo&LbTK41bBA@P>B~?$o4DS->M&l>@cDnjAwwZjK$qN&X zpAPqrl}DfeekLDBp@|u$Cj*O}ypU_EZg1u)C(C|WZ$y35-=RxkE5nam9R!MDPTO8N z@DPx}hj{+cl;B@4Hc==_RM0486G=CN!F$_-&-qb3Q$px2X(RcTuEZ@Zmo>@1ZN3%H zTX4|Iu2t99?jP84LTIrI-@=M4a+BLUQI|*YCfl^dw7o|Wy&4Ym>IX|{z>-T!Xj%Jh zI^O3d@^C9B4|t|fk7Mv|x~2FTH_OIb*fW}C%YjL2UQVzPzCg$3g|%<(1ThWJJ5p@6`%8N zOA(^bC~<`bc{JWF=MQsV56AF4j(plUD+azrz1g)Ffi&EMJu7_;gC|Xu=*LDBCg)qb zoA4Gk;rlbP*Q+hHp@A(Yh4pq}k6gB1v27F=K8L3Q^%!oQVZqZqjK)R(3n(um^+qTQ z-+{kM%P4w4UT1$sSRcz$%+(;*?uCijXdLWi^`KoniIg5UR`7RU7(2yncWTS{ZsW-v zF&X3GUFhq|1Mgq@5!Ln|u#1kL@td4d+ul+@Lh4S%Q{h4M;4N%Ej<-?zJJrwh-tF)l zI`%D|a_HUL_|Ek`P>`HdMnQV&y|Yi48Ir*#PIZIcd-HKleLm|$)FT%%-ttyA~{D2#1=#h*h14d`fb z7e9(R>RL{5QWxq=RV;(kNgOS?Ty9*8c8+j7eFvBl6yN=VoSE@@rHS-P!d5bgs_Ox5 z@~YC(+0(G93F!iR%z{TVd(42xIQEzhj~4cr0*~=kGtv{Poau?gP_LGS*4$?8#f2zV zs$WuV*fU>J-A-FZTz=bN^!nP$oth1D8>~!;V&|pk3XQawQZ8t@vLRXEs6hGv+Whj@ zG#|M;krSLxB-yEc%Ot9jT{u6$+&j4si@uu#O8A_IGVZS4B%rV8gEEJ`1+{G;3m|cK z(Zo%J^*$z-ZIb^t?v>cZ<@Z{9D#GW~o6398gCH8B=UB)IJNPW07Z@Ie<9Lh3gYqA6 zWjk&6k;ltJ7;44+V>n&b+!(PfSo;rl%@_m8pc4=CGNKy=#{ipj7_2eZZ{t1R{QFq0 zG11;?S3C3uIX1!xPM&R>xbRyZ*p0DH(eE(gu$<+oE&7JUOtmWwy~qnod!tBbKS9^L zVVR;ct(0y2UzuifobD+LU$9xe3w7(Uvn&hyyYnmx(Ja5X$?zX|b`Pg1vH8jI*+y;uLM;Q$+Fb45{k- zBYHRak;lQQ1f~ zWV!QUb1s%`lGSyQtR-Qvw<8$&?2xQBVEC2aEYm4oI%{ddJhDSLf_Up=2a&aY=yv44 zQs7F+_D6Nk{zB zQl4)IOLcbZ0!q`-lgPHg)tl~H9+z!LD*l40st1zemcnlpO95HnK~8TvgWIs4|CRd= zobmk!B+*fi7O1HdOLyvA44P(*gyfqs_8cMk5KnIkcEZ!nA^AoeMm(*Y8_a&30@}|F z9)673x_+W5dub{CiUp>R`2}EG_Wc5|FAgEF)f5+V?sz9uOY^gy>`^s8x;q5%>)-kp743U^{B zA5=sxr*;|aX3;k#9-pV8Bg|+s{3wnCv?>PPv>Ux(Mgwp97O)A$|6<@xy8)e=upD^P zw;8+~Q<$ama^Owhrtos$O}nkUyeIb-x?2g{nT!eo*?Zi~LMS=KlH-d0nbLBoG;o`M z&M)ZgLr#F!@?yjDiwY`Qjz?wc%|!R{ljwaT`JiaiqSI0uZud%`R}`Dh%wA3fa} zxHmIzOu%)zXl$V3RGL%$LiX-G4c!`IVu88?$p_e4Vw#b_=wuf2jf4&Ihq`|y_lJ6z zKlFCia!A!&%VHEYoB!<)cYNJ6*Y%YUoXc2*LH~S2GQmT!gv^1NyMK79S)`c^Emt! z4n#Mj0}*VLdVaYI9f&@`fEqUPG{|xdT&!IzZcryL%+sb?=%Ijapm-YqziTV@puW!K z%x#X@53YsNwaE)-$IAN3`LKR4C1dkEvwr5zV#80!1^}ZI;@K_2CJ|_g(Kh zqCRe6o;cLLa5{ZlVl+2ReAvEl2EHgTUUX@7out<|Y)#_A^fOGXvZ7uKBO9uyT)==4 zGSDj|SHu{L4NThNYZeVrd7XZdl6sC6vMz2|3lDWn0MAPu6Rk!k12AtJBt0@q7rC4UXKJ z(0}ujH}HTAr+O4UK59dGRmmyrX;_srMPQFv@Mva_8Sog#9@F8`!X8uLF}|uIC826^ z3OkS%%EIQZ^ABq|{a2k$xAC)SaQz8n;x(OI&li(6v<5A0YK{EFI%FgsPLqp+5u;)y?vC@71L69i6DC*J9@k104gwQeQ(RhrFRc@t4 ze*FW!$Zzq7-v8ha13u;tgKPQ2kfsmVB5!8D3tQoLC@!A)A83zS*+zZj^3~|QE`5sI zb7fE5qg$pecB=K_a(k~6D24zV>cxfHIxIZJ#E@1j=VC3DpJ8GMm2<(C%5^4&P`ODK z>YTPyu7RX}3fYB&4xtTIP>VvUC5E2`q!V&kE9=Do6YIr<0X+WZS}ZiPUTns49)Xj} zEvy$*&SP*=c>?RjX5^yj_%acNK};~L*V4si?3{}FH<**biuVkcj!MOnGfX<7>;<}| zyv&Ko2zQ@$-9cGDu&S&cTE#tp56JpP`QzxF@GrU&fPW8zM}a+N!K0ZyX24?{d&IgH_Lu^X@l~!~2~`t%B~oAqQmzMM#gc7(Gs_GRUz25yiC#GS%lA-W#%>U8LU#6E55lo3FW=E6Ocdgi9p`dXYergP6;)tmG^#TO0b*8NKs;L8rPy!T9jSKniAJW?eGDd(ZBnou9G|yHs{uK4h-TJy95OZUh@FOkB{ab-A2j;IH|teDMQ|=o6Z>n|A*kF z)lcH&pvjqfk9hBf9W#5{0Gj>j{(Er1X-#!U`%@ucY(l*3-^*}+a|TNq3t_mbin>P4-Kal zWXf7WrW4IndrAQXwaKVFz*LXwj^L|0%5{ev+54~(5~y^vW}(ue6jS=`2zsCfh;gs8 zv+FKQicmNmW1(9zaWhyQeq9n@ZnS6bou7m`-h6kE>s8TZ0n7PvSyRA%z95%vw&Tq} zOQxiTWuE>Vb>A3POqa_VK`!nRKLk#KcFnoqw1T0ghR;Tus8eWn_-cR?F0#5RnKig4 zb4ap3O&Z^HXIaiWqXRB!mkH`~oAJ|D$#z=wAu>5_U%S$#i9>hHIS+nra6k6g zT=>0tcDX}!K6zTsw`7Vh*4eG6pl5m`hU4;2$Mmh0q?5t(OI*}H3BaQxPPbh^%QV6_ zq8m)0x?8Xx{<+YiUELS37ouSfPcC*fXMwEOE8evhIe!M)1YT?u7w!b=W4G-S7h;N; zF44@-ihslN?PekK&%^u06&ypJBMdntwH!iaIbew8Q+{`9pIz-htjWVWm4F>tsHlCD z5aXaDy92olAVoXAg%^t%KCFu1!wrZ!?vc?1~&ywPN6h2^pR!43#V37I^ zjbCjQg02Ugwqp)0ZK*pIDqY8Ya5J9>XH8qIlx<;GD9S7=D1tXeiUg8B)Y3A092s)P z1OSsUEt=k-1ngG|PTO(u#TvUcNXt=cSt_`n58obZ4^G!uTh>6D4Ykb(Pqq9ZY$XG@ zYI#!zflLU?Ug)(2W6Bi4YSzQKRcGf`SqR!-TEyQcl8&kq-Hyb2e4?!exxM;1W-#gK zq@_deF}z;!G39oEy$i(UnrknWDFTsStkcQ=M3Eq7T0l67~_-Scp zpi=^+exHzu@yo{vrG0CZW1F2lOIo~? zufa=xbrh-kWK6S4z;1~EYdIVNwyBl3InMxA!GNu5=PxEOV1GUw0rt1n2(at%rI8P~ zlR^Pe+MOdmv95+|5@<8v9MZf6<9lMVyz@oh^B5l$Z_x&Cxd-E2#;UUy)Bf1nb-NJJ zSBGb!n)VXZAX^a+GAJT{{8z7`P64Jr1*ZR!I{^_Fy@Fze`tyoz@gFg9G{4P0LC`(x zGdw3BciAu~XG(d$NVX;a4Y;G+gQzCI!!?fXwxl;$gq&D@cMa9Q*0|~gM<+$!=zfN^ zH~@Ai+bY+v7B6PE|KeA$%V89$E86fBzGuAjvOjTkN^6=9FEXOoeB+iFY^J!dXJPYB z*X51H44aD)oAUvg9}>GF^Fv99%rK>0kQrw)BNmxEtv0TRI~!Jeajf15mOG!V_Jv7& zwI4%2j+cY?-_<#OH>SJVN^}uJb1M0`PLz$$x6MQp%nkeaaVycOS4`c~smF*;xsXnU zJVe(@tfbahf|HV$;Lg`%i@(`5oaMu9kKFIsf(eCc_gXv!SqYd})Ks3JRb*N8M&TrI z5Zn6MUjt!n=ee{=HY|vy?+wk{cu0>@;`tvF`NIz)l<)5Y3CTqN92`6Bo9nr38qEQG z&iEqF62@+q&JHeu6D^T2@EXgJg9f>j8}N}udk9c5g*UTjUO~|bahGJVU9$WYzDv?! zU9Y%PK|u~gx=+c1(P@8-)(ZCF#xLn+&M%-j?}c+7&gSb0lhL0|M)^uM8DgjQaAtsZ zC?G$mq2Qv6v6uCp#}Ua}_?X=N=t3bSmte^NFE4~+@vGRk#mwdon|36z>DWy>oFeI# z4`4@y02=H!T}PYjBJOmHpYq+6f!h}3KP2<1*rh|rMXbU8L*O`e1FtGu@GzEMp1#@= zY4UN_Ff5yMgQa0njQm}vj@D~2L1)0_Zz<~Pik1(yi zTR3lOYT-<)@enaB>tX)lUqs6fHxS{wcn z9f#4UV|Njt`PFEJgw^=>WWf04Q5i5mZe#61sV|cPcNG~@pvPQzoFOp& zn+ABEY)=ZgdV)x3l>%c0RkljrMzdr)BtCfuci~M3vCt~|KjUIy9`33;5Z{Wr;G2wu zZW0p<^Du_EoJ}BakJ&kSxO0jqMFqT>6x}&Lt&iC`8-Df9xzyTq=Ui%LJLjz4HDKpr z#lq>xsLllxN7 z+~1ho0~(6%5xgrXV0mSaMh^xn#}4V9y9G9ILmVvLWQc=ne~9d?HJkVbdUzAxSr4_* z&U&Yfzi@1#owewPh&cGdrieJ0wJ9Qd+S!edEDr69jRv#{QD`?C&`bt2JxtJw3~1Xo z610pcv>{PwA8%yBXVzK5C+12X9k~clSW- zlfTSta0l2L4rtR0U>+tw)26=wBgS-RU^zig(nOC@`{zq6m--sQj+t^0TK$YAG zqV$~mKkF@gx!KHf?_RtoLN)rW=fq)sGp8EO`-p1v2=W)NG!xa>|1IbKqlx<;h0;)w z!Q$sN8!Ue3EobSUaqAy8b$j*Jj z)4O2y%m&`in9UO+|5lu!>l)1MW+9j zMn20zBcFcLUYdSsFMrY6K+`{H7oYymX!@^!>Y;VyY#A#h{Pn;8gHl2s=i37s48Hy1 zH<6A%*TDNHH}H;^d`}&(`kucS$T~j#n+V@_H$?chxgkbMh)fqkd$-j<#b^}Nl83}7=Du(!YC zFYF9hAPVgH`UtSg>lr$vpRIxG<1O604l%*se#XfE4S(~jwVfy@(inFZP|d?cH9Kii zHXh>yGaJp8qcN}0MPu6Zv*{Ppot-*MaVD$%GqH=8kl4~y%fl6EvUW8Pm0-;!5v48a zl$_kG)SUuq)tZ=n=IMSkMgP73UJmT97i{BQVC8^I<8$#@>EoQ+w;b`^f6ph zCG?6ccMpCt>wyQdz-T;=dF#x!aJdJCfQXhp<~a5%we)Zv46f`KQPUfe(K*%h_pOS- zEBCKHjx9Oa6|0u~)b=a2^nKtsrf9?0;o=S**M|4b*qEo7IO#~NHAu&T9TC#ut>qNr z>RL`Za(5BwDBs0jB-Ik>xMfF#blg=NAsuZs=g`|fUt<948wJ+K09Ieafvx+7fW;fY zUaTQtds`#Gj?_ee&9C`Iz5SJE>+L!D8FQ4AA57I8dJ7LuFDPB?+mzpaST|}By14xB zicUGNcikcnSlJe-7MN-{+mN1a`lWLXY=}Y3#}owp?C{(ug!QjQl(ql?cf*gt_9TY? zH;VvOK&rpX@v_&Pk8m=F*8+d-j8!)tq4{uUBfCAnvoxJ@yekf-9BI>IS@$2yCx&i-l{5i59 zfFkTA zULvJc53Z~-$6ZM7G9AH}F2eOY3-@m8e@@)HLD6PgBe*{G!mjqVuJ~Tg@O`f}GO@qy z2H+3<&IxeduR`|wo;@4cpJ6CA^xm$>E{A^^+57z16)F3Ke*xK__(u$~x9vYSvadee zwcXYG{}+*+0U)zly@9}%O)8qYD2xQs+z&zb$Fjv!ZgX7KL6ybOk z%Q<7aayjRCSA0$!@4?Uc3-fZ~c%wH(INqe?5stU_Lt?HpzuH{}Z+-eh15)oOr1K3( zwI6awHCqXiU_g5ILxS|}#t5W?A4VWO{vn>eOVT4t$S4gHPtp~26MB8CKe97)8kbWr z@=+wqDu(3AMr)QW(|x(D*E$2}3)xPAMApk{ZLr2_xODiN-919OiCr1Ab`%ei1BFNL zVi{sL1zU@ZEDf&5x-REg>xkO%#(l6!3O&nkR_=lk>i>+)%IRf%@PA*%XXS5OXja08 z)%3|_G%FkUHxKB&TcITUn^^qn9h|U);a4hsGX`t?k8!7qlXHsO3R^85w_5Pl!Zy8& z|Km8kK6S>a-IwAF3~`6iTNC%Ax}#WJo}8@Ljqns?o7{&=g>UVFS-QI3v-Wk*$&5Kp zarqWh*#8X;Eoo27!V!HB9NqG#SVXU%Y^x3{U9kGrGOf{KO)xduF=MLJ$LLS?`42h8pn6gyBNF46TKD#y}?AMnoaC-T;SSk&}?Dh%@*)x(URt^i!+*i zJ<=@VzR~O*XE$pyg>Qj2pP3xfX0U*@S=qVGn~sv)dE^CsGZZNM$%tgg7Co zyFyptw;Z1ugtPD|@tpYd7IBCD>Iyuc#yP4zEi5}vU8=%Uu zow@CH^=C;v+zDR-6Rs3u|JLhqcsXh|J_O6dNXt}CmbiK z2LVdaa=~*VNnCIj`ZHzXEuG)c2AL=N?xBY%ZmYEB48BcZZKIDt=d0_hQR|tz1v5_` z3hqF3tYcOEJLk4^-XFlH0Li^b%P4s(FGDPg=zb>Od}P7`ZrX56px)&T+i~{S^JbL9-JY+$e2^(IL50hs3G^ zJsQ8`U-n0Qsuxjd>eEo@6ZU63vWa;aCeeSGOp&El?N$>A0)TLyg4B4?zXOUr&QzhO zYkxf_ZeVwQp+&VJ`1Q%?AYX^l#pf8G=o?SSG!J$Geq6TU*w(lyCXAMYn5s_hVUg6v z&~MN~iN;B*FD|?p3p~e#)j-uu-fwiLx?LNXe;45TDU#kw3|ud&8g6Z{13OSBSS?P~ zX|*DnCrav}P%mi1d;E;(x8UWpI+!ur6cdBu5bYhI17{E=j%0u7T^k2%PwSaK+A`~Q zlng0|**@GyH^xK5H)6v#S_6`x#)V}N)k7a(0E#u(Z0HSAqla)ZyvI94|1)O{V0~B6 zfJA#k$Pb09<4xSXy*cORLywRA!jm zGbL@RMbRF%21j0p6wQ5yJ#cTo9(MJI+8=-b%g3;jJMW~x?yegh>NJa@jc~cNl15UW370RWf=PB+lBp-`bGF+V>~5+8G{AQo|%SM6|xjz9Y!)6=1>nR7#mO6 zBvo573xjwS{&929@zP047PI0d;eD2%KNrM+zD4KB3R4i6Ur?N<<$iwNVO` z2rx1;lG@7zl11D>C^S3#y8D(89_V87M+xg}N5lng)XzR5;3-M>)wl*k{51-Ox>5@6 zbR|oA;|QQ*H~4DYZLpR=q8(^rY``JHYN4o`g^s{Q2nb3F?CPoT06u@BZ)xY*a>ltb zhe_JQ7XJa)*UXKSua86h9s_}4#P)W3f*?qmGr{8S3*uja`)Wn2NU+L!WB7td|LnFC z?u%GCd1$F$2K!!1?A-T0Zhn0oh71F|UcsmNJep?vc^17!64pt!w%H3qx9LVe0W~Fj z8>S4-AU}f1ndx>dUn{mqwnowW0*MPJD7_GDh+#l>dLaAmVKFoI-GkV-BXB=#j7vi* zp2KP|Fq9obVr4k+n0FZViyWJz4dj0Y?mNJaU6ggukQOM_x7vzxF->Z;2nirc+XV}g z?d?LWtk7n#BtmthM!SL^oWg57jdtx)7=V-R;n>#A8j6I-&ZY$Ak9d9VFkNA^3i4a1`?|27LZWm2<7$# zM_x_zd^UYGYf_gl5`F=sdqj8)+UyukymSJXJeKBYae5Pl7mh2ohBF9vfSX0dtX;u! zUe|SAG?EaWc(rTvO~fAez-A~VjE-Dh>^PyH+y9mL*#zWc?TU(VwE)MKrn{1sTHVu2 zf!bSff;*ZD66VYkm)C#*Zh6^cgy7b9m$C@TlQV(CRbob*flB_!l=41K^%$IRdnYj? zPqqbB4wdOjTqW$e4kQQFSGDPiFf~2Y%YyM*DQpN`${1dYf$BQ(uh1FhfSZoK+)Dl! z)IqXS!m;27+>X@1t0>wSD|h8qyd%>sp|{Wd?QFva)%jajx%)o$?eC)B#`ACE`L{Rl zZ^y)Z+W>UnK4@UtJu_xu1M#6@s6A?j8O2C&cxRafOP!EuIeU=l3A`nozQ`EL&zVai@`#kS)ddauyy8#|R7(Hi`X4 zJ)@#dL_Oo3tfG5p7ygA~0EY3A$yh8vQV;`JZP#w%mNE6!0}A|KyVo*0&_AcR-JT;@ z+;`GU!cayini%T~c{Po=Z)5U?Rnu zJqMVGP%q`r$h3$H%2CQJ#6W1q)J6f#PKeqdjWvt`Hicp#(Tl(sl9y7t)OeiFR)#S@ z=vvj?{77tqqWK^K^8}}gk!mao%#cJgB>Mku;`j!$Il|=x(Yy z}09Zsy~L*jfMhRP3xvY}O^A(UA`$cBp5>1$eJA z^j$}{P)=LU31wav*)>*wdlZCi@uOm^TI>CGpd9G^h1+DRPEJ+VcdYlEG?$O@oQM;B zFJY%nz-jDD(>Zs3g@vvBTf#Z0#vcVdbat{sWO^R&A-FGgYLBNZHH*F@2nI?-KYIFT z#mS*71a^^fqbcU1`_&7`Ofe1k`%<%e6RGAqH!S+=BTeC31Hd4`D7_Gs72}hqL66lk z+`tq!$y13w9{XvK35`XhZ)_++WnLaID);E_w8s;+w&`$27-XiSiRc^5Xv8IW;)rpn zki_{TQ|K%aswNh$Lx=q5;Q{)iruNztcV2Eyd#&Kkj|}rl{~;p1;~3wWnPYGlZZSEVaSNv1<^9>!5$VsM+%4Fj%n0xo zd}!-I*f494=7vQCJRSjGfCU+z$9s-)U!-pB)Q3gbhixIe;>Cg^GV{)Sn&PQevJPy* zV{zezmkgiQQ6EK=wk0of-E8|yTxt9Br=+yK&afYEe2J8{eLmu@fKT8Vxc5N#E;PG? z`;)y1bwblS^lto{c>GC_f7(I*aj2)!P^1K$7Bd;<(xt#0GszPI!*0L8?OL5}Nte(W zVFEi=AAfs$BGxy_0OEPz2cJ}b}*Gfmrh^OMQ;|dzjmmHf%2rtwpux0xAu?&{gY&I zWGih>S1~^u(KZjlb1>mDc7(zNez=PTMY~wm@}ow;0<3j+#UZ>K6}lEpPgh?Ft0Uh+Jp+D7R@{XGk=s8w+JN~_kJlbIWs$0bZHyvV;9w$7?r?;@N(IyVCzU+u=-NGHHyJa zm;up&R$2!zFh_=on0HwA)@3Q`loUD*%VnE+?xU1XqBZLiYy?vM{PmWR-Gv;yPtV@r$pQ>r!K_4u*Tu z@cTV$#@cFY?0xV_*6@LI_&ZEB%*t;*V;Fn0-iu84;Ai>%{rnj|-CIAT=}t4Oz<+;+ zru(ONBgS6g*@&@s(KCiwIRPLUX62hAkXFANf%M5Uyuk+yNWW!}{`Mh%Au&kRQAp1` z6M>ZZ44Rckl3CeX`1R8Wp%iLQjzYNo8N`rddT*-%A(26lKjbfVJxvg@@Ec$N_+4Mv z+xp<4>{ITcpbuUS70EBB`}?UBA(>9+o&1^qVq(e2Eb3R9>-gFFD zaRUaj%jn`Zn}trjdCaLd9epPE1@|1%@t%+^Ci+G?MgJk?8obGix_m79LyTK*-?(2L zedE(jT|GcPZ9?05Hyv!i{>5I}7!%*c@dbSYgEQQR^w2e3U!jSW(Xkf;@cx3X?_V}k zr1bgtvfaYMnp+iIs=y?{lQ%>b9j&rnms_K(`X~D@SqVI(D{D;bKTqg26VpG-wqWIG zrW>#Y-S>#gdwOa&qZzNnd(!3_;XRq>&QUZ=CN%0)gYKeOEBy#`K{~Y%AXM1)#G){2Dh1P zeq-o3oSca{GE`V{&GmldW&!MGJj(bjSP`rH6qvb9g_!MKGX zjEzl)V6!`ulpL6n3iTY`wH=065I=;3CP9-94UUOSy%e}h2<8l6JYgW09Pz}1JYiiC z&v%O#l_dSM+%1wmc zv;e>%27ZUGf>ON11^rxUoERSUq8u~>V|HJRXG|mH_^zNh3)UuKT4OQLX1q3+end>M ztJPL+u!b?mgr))qkU?4Oik9RuD+&&X5r@WlKHxz218o`e{W|6A}H8 z8>=yuCR@u;87nbGOKvuIb{tI)&MIdP9%&KZ(NK;#%1FBL@eutz(Y_1JMDz=0JTm?Q zLkS^!hf@k#XfxGgwTBXlJfGDBMhWT{MO6h^MV=pSD)Made1iJz&{#Y(|5zJJ_B8Jf zJO)*&lC#vGYY)ITd!gD!Phga}s46Ef@)hb)Lw(_^#db9$RS!=t@^nlV{Rm$Q%oE^H z(!ap2?(o#UW@#r7Wk~DSSbcZ1 zb66BMc}|qfi}yA(hvU2rZ$d50uc{RvTdN1w0x_y@*v@JuK~4BODLfo%``cYZByWAZ zw`0Ee)Itymi~*^KgfG=*G}G#hb{oiIXT&E_npIoiT!FaY)Z!BtnoS&y8-nF^=k~m_ zH+QAGcBtLy<^VDk_xbV@>z0~2-SrGU*0^lu8H14|L>8n-U>X@vNXb1g~gnGzW001SKob``0C-e`HQE1PkeRr z8|<525k9)@_hus?OI<8~oe1T>p#RR3)h|5rOo?s>H-yf&s)xzeiT~#|WKG?!m(XlDzR|JipDiI^!?`gK$c=wTiyK5~yOUXS9$KdK#exoCAeq zOO+6+B3@+Z`)B}m?cR8cQ=1WQm9)DoL@&Lk%;oniR)hH3VY@fcf=alGM5|Lhh_`xX z^`*07rd}^I!?R(a6PcDzB;Bg*>+)6Met{`4p6@JDwSAzlG)?sNBL@o);RjIv{6{S1 zb1+#jS?26GW~<3{AL>zu(P$-Yprp;Q*pAM+L(#@k9>9pP1x+X1ewS*P)Fd_0cDQ^j zSHbIcGsk8l!{5f}{rHX%GJ3Q-s1RXWn#KY9xn`&{Y zGg7U34MC)~W?iFbw^=dA2pQ;l2xMV2nPM!A0U3HIN}l;}b{`P>lZne7Xt+VZD|ewo z0K9b1Q`E26btxeXNCIb`V1B-StQ5!* zQ(Usom`=8$mnoqjXohi=kJ6 z8S#SMcBb<6$n~Vy@5ejUIv`jT*9)fLxQhrS&3D!X<9pNNd2%DN4ih^q*R4S@J@{N6 z$|D$s*L6N#>_~-`DN4a=xixpz@v4#iq4jb2w}^{GIuTB^I@HaQcefyUPYUk-xy{li zscI8eaPJByI@BE~PfBVX1#DiMF4@-G)mHaQ z&<)q61m;2lld74$$E~hJ@9`v;6`i`8fm2HA28X|SZh^dl38;r}lGTw#vNke9DQj-D zG!bpKH(3OSf9KqxO4$Y|GaF?qa8APm8b?wn4td4Um!Ep|oe}dUU=z7Db+m%&$SioA zws<@ee|G$;QH|r*O|M3XctJHkWrbBv#P`2JMEuI7{KZ<8hd5iyb$E%Z z7LkWUB(Abt$cRQ4#zb2LCePUkby4aWot?E|T+S zN*(n-cv}yXaToAZl`)9NUWp81j>`LbnK6jLY!K7l;4jWp(I7^?5*fsJH8P0ZRcsJl z;*ogU(o5CGvv1X<1RIm^WRB{O_ejpWi4+dVLb_4*aQ%%_yFaDW|GoRtP=%RUA6$_` z&qoiT;%6PDjhSkW=qh4vN!(@JlGqu&C2C~I;8T2sysy&=t$Urn zxbrDmq1RsK>KpX*)_cDVrJ;+N%C4`;b&W&I$&_mMnuD*UVBpjPmF0k74=ZJ7g2lsW zSTds6ee9O)zFMEh zHZdhoE@(v-;jpBROrx=}ERu>g5>Rb1^89LxAXSY_2Rz&2a_TJE(QZq-T@Z>~1qdK~ z9ZlRN3t+|qh3&&gygQwW`lIt?Rf1mE5HTeQRkXLFIjvV>m#c$t6nX(q1Fc<*dHPxa zkrvJcbo-2<+xZXT^}l-56s*Eo(jkUkA*r)da(9Mb>WZl!J#ZGLet%vBQ?sI& zN+MO+PB=86zNAj0q@I!BMm3*C+qJArB^GY*|14J=0b@`BHxFBkneg1r~|Ig&Q`IQG`RO4yt5 zSN`J9KEmD~UX0L}qrM1z@%U(k%CBM<5Do@!ONlHJF3Q|^wwJtfQ`prA>Y?ap4WWBz z@XcOr(R{w1`LGS9$l9DdZEOl<(%b_$(FbrMA)pBA*p$G{f_htuUSiF^Elu=N3VE$W zR=3yzt(;7JsvDKMM%Hf2(@IiM z{Q##UIv{uou10~yd9_8a6`I1A$l6$}5|}Aq6_VdP1-T$TXcKZR-nC|7vs!}Pfrhn` zG2Q{bD`#V~Numka%bL5>S8r6g1(DN?(Ah)^Vp_Qr5t=fByN z{o&EB*td2hv#1)u%@UVDxBM~w z(dTA7ntg~>(P6;7JvmI@3tJ}` zA6IgR7}tK^N3Iq-q#wOKk{B-yz#}50F`Ya}38NAc8v8lfe&@V3LIj zSVVyCev*u*y?Yn{*IZ2F4*uQ}U4PTRTK~r*>+hQP>(+kiimppC^@BFOTfFZ+-jy3< z++T=xmGS|LL$VJxI2*wA?(>aU14kqpiS{#0pjfwX5LTp)EmC-ya! zoC~aZk+^{A&-}$RmBa;hKONx$2Pz|6;IT@)b~)7u(RXzO#QRT2K)h4QTbg2kn9M-@ z`9=O>I0G>+3Zgm+;zD?2qT5s>qR@tU2AEM%FeL_<_IZZ?!wby+!2q*y9`k>Qg1Iyb z=Dm3crZR(Bcr2L!jzS9E?Jb;4;6}rzJO2~`*E)~4`ji1~0Rz`)n2)D2aBr}0pj}s* z-uwM|5r{X=BYRRr@@gDuMrCrUb8WC_^iK#m6 zAT=)mG-kfWlBXguC4n%o-0BpLYjT=i8<^Zvkn;Oy&R!E9M=iUQXsfa3=@Eh9SMnw$ zY?3a2kXC1f(c%eBLfuZQlyAvY>t=6^8vHutE5ZA-AUcj#fc;DA=OeWKe<2%VJBU!* zNFFN5LsfyN04TuSnll|qKq7DfzWdREEXFm}Yl?AtjQWRt^$ii3?)<|tV^>3|{oXPv zkd`3_Mjal}ZqFdz+MWZ?}9%IT5b z$z+G2pp>#kIgVfbz5so=)sEnSugO~Nf1B#<#;UvVG2kPLj(=nJ@cog9FBW1T~^t-@_%`LZz$?3#GK*JtX(c9^OJyU8}@F6@4lJ~SA z2jYiq#X%4G9+(RtO%SE_aZvn^!2)9u@VtL7V;4=+#2HP%GMt%{kjqXtaoH!&4qOFG zoUD(NGm9L##3}PI1?f1tf0f%DEUZ4P+u`isbl~a!2U;|Eco*r*6K8rP193}`yk`>K zSHYp}9$-N5>o+F%AfQC|KzCO&>r79nae-l;k@N*#d*`ba=BIVR>~%~UD8Ho`D-c*a(AvuH}P-l~Ex>S0waq_e=#(YV(BhvN9)Sbh~P4+n`5LVbv8PDBH{8P;x8xkaj;I5jL5dG^J9 zAh_a+s!mE(6Q@?){5$WXE|dFiHYAw4bjrKZD7l6m#}-W7xudbDKNiT^+#EfEe?Qx7a;PWm8Wd346(dc6sQ+||*LS-o0JI|uj-?#vOF?!Ye;DW`x+&zg0{t)~#>_^sZUlGdnY;Rn}_XhAgV?Us% zkrce~rS7)FP8dWEu>N;iSqEE<4*CzcZl!SHK-T*3`{Pw8>4Sh;g!&WrVJA95Xj8KE z(sT@KKQD!38d*!!$7PTo-oc>l0wjz(W%X-!3jzlu^B#{A7oyRJr5Yst{3k{5V{xhW zaE9Wo7+^KIh9iTq)mLWVuEPwy_5qZr*ExU^sX6267f^LcZwwFM@~Wb_1`y+|JHJg= z8sQTfiC(Xi!LTt|rLDf=d52n=B@z8b0|CR5%GB_9oZ2zr+dzKGGE-x-GnBwfS!AOp zb)fAV7pA*Qpp44|u{F)3yo!Y@Yn>eLLWedI7f^lc=yWdu#^ zNZe?{9q?8FjS&4G;i2^1lXyIdzwihrEO-O&3fSHlp#7&Gd7<~rMXbkj#1*IX)d@1W zvR+2#EyC=k)HaGxZVj$J9oA*N#z1pdFOK4PNDp5ui61Q@Riv#+T!4DIm5dhJi61S%&%MXfMK9XyR`Aak;ODE;xdhY$zeSm#1V8+^ z(}#9WioAb3>vKE*e8YbJIi`6GJx*%XcPJnLU}q)kq2>TlX8{({tvE$nz$(Bo^erNZ zRz+PzuRk(HX6eE@Sdh&Mh7EUWlHeYQ(--9&OIQjR}xWO19UF*+YDSzl57l4!jjV_R5yt`@EnQ{sDkhXIQ~NJ)u5w1*x6o8v!c zkJRXjJrpn;2yxLpv+kp`fFQmwcNK=VzB9*ko@h%;r&uGw{ZBD}!0(PBAHkAI3y5fm z{vA*h^1@J8lAFbU;e8i+YK%Oc#t@?0PlO}(SLTlgyg$oS*)Mk|>>(iS1+Bq<5Ng-a zwzkz(?DH0yW*W|I^Q$6ftBRT2)_&zoBmT=G7XM`te_@`<;=fdNb#A+PW@qQN9gi^Q zHk8h89WMv&&1}M;Yba8ui0@3!%)u+gR(Z8f|KY@AM79}dho3>22V}KY9t0<yckD5h)3$ps`^^*6bNnEsrNcm3pRUo)Jlj?vL z;ahz@FcG0fPCXLByFSVjC-nIy6Om*0pwM1Rq=-cdkykRFU^RhQn6wF6cFn&Ze%>_y zx>ZQH74>I(_7_gIuBa-cY~5?GYLT~w;n|rKR<`cWZ7v0r_*1Q%w1M6n3|}h+MgcM% zg<84I&`y!7=ldReHoW^mR)2IR)k1A?c{6+vw&w11CN+qEssn5iTCu}-#$mS}6fhzY zjP_X)x31`0h(ePpW-iIiWRjsGR4Z)5ImPA zg=Cy!nWk7tYNjdPFRLx#>v5J96)Sd`WkALj*_dVcCfvgTEhMd#pakz{9)T%v3QcnA zdYF#Tew^yS&2X4+LF7Y*+ARLw$rivpk57Ik#V0xri-$8U+P5pB1E%@}n~;6x(1jR) zh$CS~B0jgEPFQG^Q-73K8xw$9dp|ZL`gUL?zM+l*J3THj_n<+W*z&y6BZ8*xL97?9 z%kXz}c8vun4fls><$nwfixEV50NQ{z)Gb$UV;wB8Wj3v3mZ1}P3}Xw7Jib%C-ApH#X6@j?f>r7V)X)aR1c)P^dsfCF!u!R#PPYu>oH#sV(wtQbc=A z2yGl}J1S3{L{Ki6&00m>EVqQby9K3o_f0a+>ox_NZ#h`1wuIhK!t}$LIfG4i<8~MV ze-@emQQVi6qQ!9lBE5ILF0Jf<=A=)UZ_nm6c-9I1hAL;^_!E-y@+(T`ApNM%|p4al_iH+vGtlib~iU$~mnY0B|3(4|-Y| z(TUl|y{x~6PW}`_C%=!Oli&R(>11{*4)-yllaCs7^0_FTydi@Aw_2if^3RrY(Md%O z;|Q-zI~m_ z&>yVKXZp>Ab5hI)X|ivSK4G){xg&ckkW72k4mR6B3E{ak>D&Juk_mluW;e-wiE5rA zD~}??kj%G?wRp*7;Hf)@kJ!J*%yx_;cPDKb+7Xhtq%L<$ZVjBwTgeyiD9tNTpGG`X zd>o~lfU&iu*|l=tAD#XdSDLX#VO&Y|Na$Jgb5NULi;DgQzXU7vusKRs2Q!oreUA99 z7;miEZ^J#Kv~|G0BBeOy>lMJU2r`tyBock%i!Is@(>o_n#`gpu4_}M++>9TQ=0fXVhvO(VUV}4Wsb`Ybo;Vb(nyQIreJ2iI%jsB()Wns zU++p)aKY;kDY0xzI9XO(ok^QTpA8i#dic^VWb`EBI}b zW$P7N^ZXh1?Dc_L1pN5=s+QGk6VzmHQ?>?+s(y6B>~H-J9+V_(0FWLxK#j6>zqq^x zaL}o43A+LRok0J#9?We<^zZTi*!vQ=s*3jinX_=YfLz=FaRCh!6&KuhKmobQCSs|T z%BG?S1Q)kTF|?$j%q4GWX<1pBwpeOriu;l&?puqR<#JU(Q4!(J|2yX#;6iTozQ6zP z{e3>~8NTP4eV$pLXU?2+`6|0L=OSDi{rUcf_~#k=BFmt#4OODK^`7wNhb)aMXTeF{ z9GVqP`4BhxaSNKo)Ffnf zepXuum!O<824haCWNH?cvr`JoIY=xGAegcY78%534_|xkixRr<8J|;3bI#IFbfyIC z=XeP-|KtVCv?}@c0Oi^H@OSi|S2l$^bN)1h_tURkMzscgQL=cG-3zI%-IwhvO*$jbRavW;3oh@LHHI~uqA9>CLK zlY~j5$ACE&-h5}c{@2-zzrk#8@WnoC7SHnHgd5m9!g+}wQt_4cM}F?R$Ev*N$VXF% zMk7?J3^+w8vOH0(c3@aoF55&H)}oE#9@<&AEb>o3E8%r@GVuk0HIMLRlCJ ztJX@x?3<8$mwr^9`XqYyc{%QknWA2Y(%?}v2SUU1a z5S)8rj1QOC2l!|9>k5JmYcHAljp@r~MDSk_wQ5fVwDzZv)|XiT>Y!{S`Fkv4IDeJu zV&4#Sp?>Ej^(d!QS=#v16}~}s!cw)1FI8b?i!)!pR69m)U|3#yF$Q~|89u>zp`E9*ZHu@WVdMVa(YQXv_;j1C{of(JC)Y%ysg9#mO6Mvf4yj z_-|7kzR11wC!nx^Rldk?Q@pu$*!stu142aJV%|9Zr!AeJHk!PRRWncd5G8!}?yN>R z2dJe1*2q2Tz||{OMR90-D%igQ3eMws4Hhc%QGY6sKVf8h!*a@;C$|XCYg$+bHBM+S z-$)M!vEQ+P8FP1s^Yh_Tm)=mG7w(+wVC=a&!yC3N&j>64xz~*cEfLD=QvpT}{b6O7 za>8O~WPA8X!WiYE`HWN87E2ejqZ5{Uu9w`tfqku!3xvaAx6g+6ygb<EA2&+#-xlRRL{YG}+oZOq+^ zsMZL2J)-XK7L4be5y%Kjnz8j(W1}NTWte5*ZIN5RAIoqSju>;dRDtIV~sB5vS|P8fF=IY6fk?8y1U$GAk~*hgOH8XJV$P)fp2V}`Lk?$3!3pQI>l@E874>_llT2OF>_9l%* zr`aR&K4GeOLib+kD`?M;v(kCRkiF^Yzt+uP&C?5Y>&@Tw%Pq<|hw7C{rViYhvlRsu z5K9YG4PjXx7JJoZa#4frm0*?mi(RnhQNA_bwN=1ujA*?VU0^c2q5PmZ*T1@KP_?h( z;MRwrDRNcrth(RhI^0SBL)h@at?c-=VqrAu4_f@x?cQ~4M*Oi_)Y|Sr`@oJ**>BuJ z?4Vm)bS6d0b0tI(^P2o_tqObe;vwFPdn>DnUfgoeUfiPgV)b5P_A!$ia#aSovUw3&|qMOSfDbQQyF{$mEvS1u_piRgEllK$Ey?bI%D z^}mHu)E?|vHPkwACR>E%UQ1A0Js3S>YMQTKHCy3*jPT z?p5vaQnoT`f8cxq{{u>m2y8M_mujKm`nbU z*@uD*>rQde9|+$vF8rZmV}1FQRPSo2x*gmfRw>=M&_B&p08JaXw3?`|ZR!uGKm5+u z#X1oF1z|bY1HuvxSqzZ=2Q>#~2*iJeD*nCmri+1d?m%o+N&o#AeuBONMLjXmvaUGzR^#9&g`hTxVe=hFbtGiKq`hF(7`8iY&(*KgG z9v$S*+o2)_Lq`fRtSvEh;yRN0VVd!WD(xtDZ-oAmQPq*4`eH+QR^(~`pRJR_AVBmN z4YQR0Zic-a*Ne8==tVoK^`h{+uwrA*ojx;K2jv;7aBt+y(YUr~$v4_UgaMVox81%sj;8E0?FYRrYdD;5j?J*sx(pxSx! zJf0`<|A7f9QXZx+Fw#?DY&U9u9*ewlMBaEhxo&t~!?t!@{!1?!>DC~IjbA>07v%O? zzGuxn%r|eh&ngo87+(pw|3Q8@hk)J}T-drIXs3QBR|&RU>7ZiV(gFA?%_E z;U6_2Tt^kcb-56Rrjxfy8A<;JIn2M7QTC|kA3+YITuly#JwOgmdx#u1=9E{-;YxcA zIo$K#Du+=uO%AKJhsfbAsvN$AX$Cp0oNDFVsg}bxgIn*_cCD7fsu=Ec>5wXh zxfH%?BZV(=DZI9}6#ht)!tef5Da=`H5uW>JwG@WWBTL~{(15TD$b|s-qgo1M%7p9p zt3p_(#I=>d)lUr+smEn%r65*CFvM?1O2`Bf!;Rgug^ZnYE+<4+3ytSN#+ ze!q_he&n-V<<~?cZ~nu#>e+4~KilO8B2`DbTMD^g?mK4Y1u(%MT5RE>)v)e2ezvQG zXlJ@y*6!z9QGTM!#gZa^)n^3!EI7+qeb#TX<2yC34&S84o)-1EmlEXw{CvA^=D{4IV{0}(p4S$5=-jO!Py&paBxOdPS=`iyy0X z#G7Av#CuHblK1`%N4#VI?h$WmnRfFs_I|5J~6 ztIv0D{PleI!~dS|{(n2)ZCY!=mEmb}RL>S4bgtX)AD-(5spq;aYb~GrBlw!J!M#Er{~z^Gwz> zkpG6}!Rf7FZw7nbJG`Z{M$g(~dRpo2%XPDcVBgsRX|o2SVK%G1MTueEt?xPn@;)wY zT?}yp8JYJwf98la1zKNjfl=M@oCxyYa{G8tUX!{x7raajFP0p(FpKkMr4_Gl_Tt3C ztLc?{;;C)?|7hoy=9X=_=z058?oOqEoImNTd_zdthJJA5vdRPH)>|Qm6SjsOzF@KQ zXIKPo@qtyO46N!W^JuZ6u;#}rpOY}=qiPUm&{%(BB<f6f z$ge`GLP#DRje$ zF=2-3JC)(aZTXeS4Mcf@#@|Z6h9dZ0EH8{JG&)70neNJWC^G4zJk^mPMf+URjsdcQ z`2+7~D<630lsf0`n$hq(gCdm*T4Uf`%nS2}O2tK4F(`cf53P4XR;^3br~GEi0G>ye zF#bdE1<*S>S3k^Fih~w{F~=1V6ue%Ub9H(1SNA(5Ot;i#6s6MyJ4})7@#FwAos)t4{2df_%`KrxYHHnpffK<6mb2j>5 z67P=4-5TCJUwPb<=cFhi$`c>ug$g5Nd3c^vg{q!h?5hSC`LKhg!}bPY;2B=$zh+>} zn@6^D^|_3{G(9~OMK#ejh5S1lb>CG_c@}>nEN?FFyGtFZrt@X#LokMCH&O)8ZnlAE zajBlN!#Xr$Mp#bSKErDcaBl9~r^XJw^>NNd4hxv!r<_sbO%q!m42M#6__BJeV?2B| zOph+*>h3};-36EUSGM2re|u-l-OBZf%UqbUK$AZ2@c~ExLGBMt1hH{109Qb$zqs^{ zQtvYoB5k>#<2w45OMOsgxPG_t6%Q1sEKmNj1r{8x12lqm62@%bC%24MkETpd@C~A} ztL9J2cG+mK;kkP%`#ex7Ele#WEayxqSl+3_(g)4cta&w9tA zy|Uubjf9`NhVu^%n<(1HSylVEqX^cH+``oZkC54WvRWFU`{Ws=pqz8iK*}VeA!LuG zZrJQw@U%A?g7;V?WLONIdT3e)WkN=h|+B!Th%(jRvm#!&O z6s3gmQnpV^X;i7 zn5I_#S*VNh0ti2R3NSV=!!+#31tp@pL%~$1>@NOfS$U{?F@QhQ<$I`7HE2s#UH&qO z{)GB7RhN`6ac44RNILPEi4f(V9fc_S|ExOU{C$u;NPs=r7XPadJW4#+^d|xh3wHSD z2haWq+c=&Cm0P>VWXDIoWx(vKhP7L>8i)1Vo#krmSvsTc^M1yj*C#s|7HrLGVC;E% zl0lg;jq-EO2w`luWng&EW0Uo>4w-zy5$L4_hVj=={1kD0vFAPu7SVkEA3Q9Lu(mej zO0deiVK)E8sY|_Cl>+m>)vU_91nTE||AuCr^)EMTNM*A=#+$X7ZL_vfoAumYi~3F5 zUmG=nY5&TpvQaS~si}_P$^09JkwD#G@1Nl%m<%UP-si{UgnM5UP9}PvUkp#l)bNJE zMc#gq|6hSUh`&XNe+EJJHu3E%%`y6oKprvE;`bH!&HzC8Bs-GD`J&babThY*{@*X1@|fi+&HUu~0Nc20a z>D9c&W8OY3Tluzb)7GzD`wkubJ9X~TwOjWdJ$v=;)3;whU{L=7!6Bgo!;Fs)3Xh14 ziXI#@BzEW%PYxSC;;E;f898cnTzo=e(wMR1lE+U-nV6cE{%l63DQnW?DO0CC_xuaf zXJpTOF=y87mtLNe`^u}Y<-PvK+&AaVU$F44Mdr8PS-j-k_m(bu|AXZpe)RE*Pd@!@ z<>#wbfAQs4U$6P*+qLV~f4AZLjX!MKoWEu3w(UE1?%KU)?~nU_+JB(n;Gx4ujvhOH z;^e8*KmYRUZ)eV)`~CbMe_ptF>9Xa@)oX=C#n*3?+`M(W^iJ8`@(L>(GB`Zhl%#!4 z>eX5O#cX8~t5*Y?2BbC}Of{OQ**WHDAp#MJL}X$|bXeDGnjTuZN;*u_xhiRSE&7QT zuaZi&sKL38lcR&)US}suqCkn4tonP^;+s!IQA=kF)F{9fT$8kgQ!TjELgl5g%PQNV z5=63hB7eQItEeE^**iEnSMe&!I=y2ZL#10^>nf^s8ERdEmQJ*(yDhb^MV)Fk&Ur<-IMb+gUsM6sI&7Rd>T^9o1P~4+`Z>hS| zU)I8%weT5%hYV`JasH&L{781C>b|+w)u`6xRqJ9kuj(A{<5AhZmDH{lt!h~9qWYR{ z!J(#Gbgb!?YK<1TPEEI+b4|C-Kx$vutQYe3_u@aBYeN|fjz;Hd)U45E z8m*jvwdYczjlX*F*m-N#wYWhQq@)fF%ufT#A`fO3^eDrLf^6N1#ja0*r zObU#PjcK*)?S6qxMh4_VPtJ7E(ZsU;s(pIc zSJ<VgGlaGOy@+ zRe@a0Y~SntT_+?T!8y6jT#JBS#MyhL3Pgu zeXfpb{~h+OE>~F`kOv%dQT>IwDvbc03VZ|{1Vs0%tS7J^_!w9Pd;@$BYz6iJa}uvI zGw>~71&m2oSr(8F+yETMTxGq0*+2oXFa0Vj2lX9$mBo%#-Pxe80`CErfco!TW%U;S z>o`^`pF+)T51d(lm970=#bwxU0F5_P`*F0?-2Fl0ZNgsD?E5tu2Uw0>V`YHF2KwXI zSa)F1iEAtx^!ekeKe^u(C^p3R(Sug=|pQLiSTaAsYg_Pf{U!8|c`l zkc|dLK2yl{0=mA1Y%anhyBD%IA`4j#=**`I*|sr-%+j-vmBGCW{uS2>*%sti+^>** ziTtfk7P1t?`8BAJ#UbA{!wT7=b}GIYry|@>P4{2?&tez)>u^OO`=Eaz`xAY2-cJS7 zaG_fvlQ0endK9vQ0fnq1kF>6dB`Bw5dli#WcDrbdlX&=Z-asqhHY1N` zTHPDVA1`DZcp2dN>ptrEN`1PJrC|(S9#zPM(S>XW;w*+=1?XJ3e?`2*pw4lH>{Xx) z>AgbXhd9g7W}hK#1I&Yq7{8Ij)%G0Tx+Wa%0nfpO%x**>YcWDi<2b00jYYn3aIXWM zJEV|3J+zR`2lC*zSwjijsqIxnACA$g@81 z7%*VCif({C;8%;*vq3m84%j%cnC+QZP5Y!4vjw0nW)!n#?-sMRKsNBf^kQb5T#X}B zRUDjC%zk>Wm_?h5*^n2CS&z4i*||yJe=+QnRr}`%FJGYA1D-2p=cg4j?+l&75y9#_M@@=Y}l9%mTZA|CbmeSR_9f-<(}s%@2ER_PeTeGdLFzoYVe(yXSN z3G_sH-H`4bl<~%7l^^<6F)Mkwn0@+|8pq+aV)i)NcOA<95N)?`sv5V$3^l*rDE}MO zeK6W-!eliKkK>H+t4OnXj_Sv80^w6%EM`l9U6a-Ht=_H<-Y2?)lwqCtyY1b%ZT3&{B=iugOOL~sVaU(_@;Sk zoq4}a$*#7)ys()4g0|a&@c)OkfAn-9?$3=c|3n5e_~wz|S_6e;f8_wBLxS zD$XMRZxLrX&=O(Yk-sD81mqPDP{jQc)E#Aw2HL~E3FS3^L*>r}^cLK2gBoA2&g*rg zdky1kE%NV#u=i1aN8l&e_oF{^uh5R>E9|moTRhC2Sl}1e{q{!kVlvVb227fddbK z_u3LBe^eSOx&MRm`!D`)L&Vq_z3yMjqsjO8 z51aX|3U8Znl!N$-f!Eim=(hIW_`7_>Z2YU=!F%}KkH?3B&jnFytA0P!%;WVR{yx9= z0`H6R);C#!@BbX?x4Fpz+TLWZ+W5Kq-DI5rPhSxqD;UYd2Zu z8~?Kiezm6EwoLB67kJo-y#IOL{*z$aE)4eUxLfQ4-~!Mg;}&~iw2E&vTm?eoZ?U2A zs{d6joNc_tR{d~`9RnI|y2ave-(pjM$dX&^#oLdDQHU#xw^<*+69{@lv<04Vyv-H> zlL7N1A_wSZxy=q=elS`gj%0&-#n}mr9b3u<1Dw7;u9OX}e}~NkJ_U{e!M*P=@*jff z8qK+f-~Hm&cIWGv8<3%kR5&%478 zEU1axTJ9DaojAYRZ`nQ4{S*8v<^KeC{RPz+qq)DDSM7KH&6;ukop{vpec-3 z8|R z87b%2>{zYAn&PQN!2aWlSGj#$17y29&Y+KsVSEgH`)f z&^f>&;0GgS%Zw8H)x!hX4DZ`!suCXc^lA{=S2KCvX9%7@+$7WP_hIT+#3+ z>N5hgHRl6(5|{|MVNBUYRilB1E*jcImob+o%GfKwhrlL{+M)so@V(1s0$%{W8np%Y zJMzU{wjD?VeyRoTxAN<|Y!|Q}I0YnVZd-7_(ZzS!IiZ~WrqL1CRk~B7w&--D+Rv_} zX83Hl6K>vR>tJ`b|JUIwma{hjU#XlelWK;!%jN8duAJ>|QO?fWt5kMSX(bvuR@;4? zR2o{RoSB_##`83kv;HpSY*yWJwxV9mu)X!m*^Jb3wh{OV_ydUf264BRGxDuU^EB$Z zR;9LBYU9^wUCpo^aKEs=oaG`;m#r%P*idb+jRD`^KkRdad2K9b_OR2P)%eQBZQNEf z%oaxwR<@&@-G<#^r%Kyvv=Y5+?4cS>1Ky|=Zwc@b@I7GJQ8SFYSwT6I4wkb92dil% zc-XJ?D%i>T6>LC*3bq08Z&<GyCJQxeKI3H@%HqE`#SLWLohz3%Cp$|c0ji%J1wqdm~0(g9^ zm01DLaaPv-AsCme(&ZYxnp_W7H7{&}b!w*K*g!GY<)W7~+89V^((lkduzc0{bCg z2kf5!uLD^?$WX?HJ@IIm`jGH~`}li5dH*yE5ta=e0*C!Q{F5~Q+qfUkwf!GfxBJEC zbUv^$jd*!g)@E$_qceP!0a~4)#4tP`U>3t@h&Bn$lII)2%y79G{8?#ui|cQlwq`Jh4~R}>mZu8L~z*EqE& zq)>5ZlOjR@q6%oudDX=O%GcyYKK?4Ipw{|{}e(wrCLu@fd~Tbm~t3l zH5lOO?d-LtMzA1?lElZEPG@hg*E={kIyyPkspITyFu1tXty`~N{rU|WG;HYV>gML| z-l&m>N8`p#nlx?NteK~$msj)VEm}PGn76l&Ps^6ATKW36Zr!F$+qQmw?b@|(-=Rat zj{g3gI(6>crAybY-MV$}-lIp)o?7`RyE(>9Gtz{3@b3bYFEniX{~k-lBVCOvFP)D6 z{pHdb>}AQ--M((Uh7H^tJzT`9ORn$aT*pqP_rAcS9?7Zw{lgnOG;Y-RUJKR#&nrAR z>v7VKkQfp{NE@d}12GNlmQLyu%<##X#Pu11X%jk-gxHaeBgT+Pn6G|htUIYorge2A za%!W|ggigK&vQMSbSF=dL=Qf#$f&2|hD~&Cm4f+JZ+My)nG*eMzxJ3RBYk^k5N|@7 zk|zQJNrS$m2hr(d$xf0*JDtdflxUBYOp-(g$?B%*n7^wn(^B8NToop}Lix|I>URmj4 zLX45YA;Us~Lxv0piVg`H5Ee3EP{{E9A)!$S8W@TDz>s0l;X%g8A+aGr!NEbXLH&b< zgoK9-fF(R6G&U>*8H9$!#BgW$kdR>mLZV}1f+B|m4Tv>HMFzzVjR^{m4T%Xd^04rs zLyS*^3^NXi9TN0JNOY7j5pZ8QAp$fFcXFHkR~!VDl~LRNNh+%bW{w4 z!q7hxS7%()3m)Sog z_Q{Zt$f(%Jq2b}iK_LTzP~%`EkLA{o0a4-MNHriPgx`n8fQ{HuJfGkYp0zO|A|%)d z=i^{`NJvaA<;2G10#a^N5#ZG5fnZ&WXKc7nAo8~;l>DK?2~99 z0Qm()gan0hmXT~gNDyzfprPThK|^DaCkl>0kzgejtPG8a91s~0YisIJYfuZ(imxsH3o%;53gD= zuv98vhB-rIG$3xI5lmC8PTr(7X-_(muB033P5MFB4S?i`#2k16Gh-AP4QY}L$(IF* zluhQ4*NK@dB_F_iL{`A8Bwvy>WIfDAl23M#edHiHLQaui$XRlk6e;EgxkbvzUBZY= z_0)yB(iYU0`qR#|C+$ZA=|CDz2h%6%Gc=x#p~*CjX3}Z&d749K)0gR7x`4hzm(fq? zDwrSWcKRdTM-S8E^fdjA{!ag-7wKhML`!Hn7J9wlB-9mLg(iZR;8P_NqDQ~hs#oiA z{hL4Aw_gV#@b#ANlU?FpaZG+mIy~k%an8uPF~0WCr?i)vg*2WLIWzag!A-;b62}|-z56)$#K**p(M@fa z(dN1M4lU|+nr@7DdOY)m@Q46YB@dEKUnrOQjiIjA(%zgjRA?vCR_wqn%}6ihJ5So5 zpl@2MvHX=!*F3wpw5a^D(J?Fv9Xu|cOdwB^L7hosAL9`6Sa7wdQPyu4MS?;NqxJZ$ z>I2uR75=f7EggBdC^{+^6}fa3?1>95+=v1!!K7u?Me2DeALiPAnOp4wl_c(Vss6sz z&V@)G_lm4ttw=ZVdvTEXhi16nI5J82L$ozrrLNL+@;+Hix{xKLfJn3lO~FVxLLG(v z!lZ|q&wyV9gJ=-viGTb{=FS7cFkY&RFJ@gBxkws_pVLxO3R{SfMrV+N^c5m=`C#WF za^oO42$RLh;tS$i)J!juM>82TmhKfcz#OE*NwraPE~P`sP+}58i93BsTu*n3OT>re zm@09@ZHoof=Y1tj);&{xKtC3aimI^+2Kt6*#f(iB>WTHleqyrFPn5_hVTeHB_U9k0 zia!f(LU)oU4Tf0(Gg#UueJ72VE@@`4MC9>`ANS?1)si3&R%{(*ephWjOWZV3Y&R4e zcb}8))WBdV8u7149c2%gj&hk)E>%bjIVZ?tPDn@Ou`fJj#5}RFbXl7EqZlh4U#L4TM3 zkpGk~$d}~jDQtG=xN&Z;Hm<=4&2zg+I& zxoS1cs@1KiV6OE%V8^GQ?bx^j=?V@O9IRhphRxN(oyV~GJ%?Ip#@~Eb3kbe&x4uoh zr2D5){9>XK`tKeyc3k~WKK;z>ekktQKYAx!ynh<=M)R!MFFiAoKaDWgM>@BWVNtv) z&psf{N^{D@)PjSPrTlhOk~nW}!-g;KjXlKa2h_*B zW83x{h`)W7<4g6|9>{ddnsi|Ks@3M7AHbW7dB@5ES2tHT4;PR6*lf8SIcny-)xUq5 z_GZ*(VybzNIl|Sg{-q)2A%m_(e7I`$xd+q-4PZ8#v6q?v{+6ZRt^c8`dB|(0QIt)Z z-p|(_3cWx5Z1R*CB;K6AIe$p$o%+LukB)OUo0DF#NroJ2B|{gP&F#$|7q)JlH^08w zWDYZ%r=t9*S02z3DQ@Pi9$U>@x8|B(tv})86{k)$J+*3e^BNr1PO~*|Wnp3AiyyBz zaVm zm^pl^cT_a@>piRYORH8Z*{oXaec9aGj5LQ4^ZU3^w+yp~+xKp0zPOk;*ALBLH#Fb; zyqRa2XHJSSo7bB+3>&_SH-}b?8AHdSJUvvhJp5Mg!#2&K_}RFJ4d1r?vBQTsyXM55 z2UboiGEX=@v1sq{z2=`+t^Vq}RjY%{Uz)#Nwfea6%US2a=a=R^=3R@Gnb5~Pt)%7B zrRL&d#fh7FX&S$~n%k<*O)si+)#|-UjC!i`7u>dhzGq%)cCGSO0=6it-)c@d-ZO7f z)&ujVrMWyMvgvESitMhqPFT8X_0q2q1>`+``#SE6fG@^>@xsYQPE5fbD2~LFVdS`YTzpC# zDGq@drR>O5GlgW*3_688O>(%vMT z28fI3D|9O~%9rm`{)5Z;j3#0K*bnIgMIL*rxJ}$HZX-XU9JM@m>_NML2S*s*D~tY7 zIs51@fIXc|t>~H0X*smb8MKqs6yx9~`Ixq)d!Qp5;8WTATmMnJsr~FBuchCj_dlTN zw1TL0ilXBbvsD<2eRVKuN@YH>{v`jT9Ewpqg`9&))!Hmb`W2e)uPCRv^eO#_4is+- zw}nsXO3G{VC4J!^wwp+KNm(SGt`@tJ{P|N>eAO zLAI0bQg?~(l&^^0cp!I%*-IWH%j3&tj}a(MIwUbT&C7>=ciP zcgS?0bJaG@h=eN6C58f-a>^>3eiHYLOvsq{oD#!a|JWx5b0xZLtx0cs%kA6`Rxf z(GY7K>gIkIA{o5k-r&| z@U?yrq2zm7pIU^yRK_UZr;WWJu^zc1`~jbav_5&8^rd}iA9{lHqHdUTUkT%>r&JwN z9n)LE&9@j$cgayv_2Ivf*MO9PoA#3G^S;72K{-!RZ{kfVxoIXf!JOe-CZKiIxclfj z*p7sAG7hKLFYsuq?hxH8QyeReucsbSFaMxaXn#@A$MoG_5?k>{uyh5ge zOLs9EtHzHcOI$-Y3J1YM2J#9;UcZw_IzswR;c_G0K>ewU*r}>@pQW#$)}i36j&zmS z0X&|rYIIb_yDOG~n{rVv`w$;8msW-kx8X8e>W8(!`#z(iI^Mm*x#Zz8-II8dNm2*Wfpmm{jG|t|3v?Qp zhWop~bL2VlDtR7eAKd^wjI$|0#M=}I<9b?7@}8GTCX zPP&ty$(ytb=|VOWcbIxKpKKvbU@F8gx=HYtM$?YcexZZ(1$|QTm5j8Z6heL?cH}YI zKx#&ZN%bXn`3cE~`q5UjHEkt*DGik(NHNK$iF7;th9;6@WFYyPic*NwkQ|`b$qn*@ zc$}Ohr$_PoIUm)kC-=!PkS!p_%LC#3ek`IN!^csnwFOdm!1*t2!NIl4H zl19HFGsQGAL!3jLrA}ftd4*gPWcr5q9eIPiN&1q0B!C2xnPi^$J=sWJ7bg)X@&kEU zbfRa(AIS&gb@~=rNY)7Ru+nTLZ_!0$G3`(4kds0o@u1FR0LdXCVz3w|-VzK%BEh6g z_=5aO&X7;2nIwsB;$Bh@YfTtQ7vsgzq6?`@%;EvENGu?m>DS_i&AzSry) z>8kXC^t|+(G)+1sjh3cJ&q`U+2I(8=TWO87PKjrd-jY6)7S_o3-)-KLmP?;WA4p3j zv$RNhTY3kj2~uaR%yQIfG3-mE71GDjN74<+S*|1hvyz-7-fs3VJl|?lD#c2J?o-Di z=^8?IKXMC1-#4Z`xIQXHYbHhtlpaUjO2o-hJWL09GTml)D>Kkmz2CnY~6HWRlfch%NKF|8$T^H6NuJw}SFf#K3d z;40$pfY~BtNMogRDHS=(lAq)#JIXr6bcZRG++-(7HEwbfsfkqWvaNMJxb{9$>%ELv zMdD2*ZpkCJcl#Qposf?I&9T~Fi|~rf^j9;-N3e!_Z!94E&sj$2QbpTrvf zQ^oh?-&?AMTd7T)>U`ZN25 z{8DkM;uKq5v6`*s_q(eYH;TP%_1)Fwu-}EfhWXXXW3IL;u5wVt{KkH>uD*MQov|t@ z?()>D@BV)G_ww`B^W+>mM-GyLiUM|)oUK?`@(25ad`-Tt*m!qi#h>I)D{m3CcfcF) zsr57K!n+r5US^lAmx+bJR9q!jt(Ph;Sqm$QDvGSvO0V6yR(6eZP?pcQK^|obE3T94 zR^(No0QJ1VU@N~_dYhE8(uzB52ialWQE|8IZs}b1ru9uWkIk!?PZp6yY?1YC_BL5) zT~@x#YG&Mg%vP{ZU_P>bgi-Onb$!Kp_8s{FJ-Ll-XNRnZ(Ne#%gX}_;`IKEDS1Jlw z5h-THq=b~PTkKZFZEG1RD=)L!j?YlS-`mn-k3=BPb;Ctc4rIYL=UkBOC zS?*Y0>ft8SCbI2>iKc}3Q;Ec3-w-KM!hevJ+v{k*fSi_^HfBs*N@mj3q)byrR?-wx zMjS7Yzck6Obe6@Yu_-K*1(FP6BJnJRwPK@5XK}2UDxN0Jbdu;o=dpL`TjDv)k|hjulM=F&VmN|+<85jG0jg&o2P z;ihm`pkfoTjo3+yfVOi*a2KD!{;>n}otMR2F-BZ2ekf*(pNcERuf)g6x8geJ>pR3< z;%;$@*hO3{z9()L^AZ1u_?lQOo)k}sd&T|YYVl`r4R#YZM5{=p-^630z2q$27VnC_ z(h0GH)KNMko)!B_K2kfWE%e2wr9^2QBxnkxSU*Uy$Z*1<*_uLo?Ya&65hG`H+q8O7BU# zq_3q-QogiV+9v%XorN}aO}Z}KmhM86c^{g}W$6#;PwAp$!T#X9bU`YSZc4W#t5hUW zXqC>;m_12vVrW%+YSg^${RW@S8*{Zi{_;wllF5U^Nn7RW^mtS|r|1YL7nf$uf(H(I z>gkboo}Rq}dU_5Ye@tk6bo28A}({GHug8`USl_9k?AD}_Oa)PS{ZbGe8+kbD9b_j5y`zJZK@bh@jr2|I_4aywlUi5h`k-8+ zqN9_eQ&agLzn%h;5~HI>jE#;S7hQwj!3{>+HA#r~@Tdn`H@=5QeNgB46pyDt8^uR@ zG#t%e)am8X6x1u;)x+Jz&5=6Sad+`_6yxeNwvUhT&`JC!n6Uwu#en85`Z)C;A$l91SuHv`wHq#m0+FZNVJ**rWszaluHTyq^ID33c0-xAp0#U5)Z?Ln6zzmI7jx&r>6f_@IV8uSa$uV^n}4a!(Y z`_c7qZv?hef$jj^1-ct_FX)ey*83GGhW$F?-@+Plo4!O#DfRUdQfUi;*6SsN(%u50 zeT5X-PY9+#un!Q%(_o%b%opO?gXbdKnP)xv|mF1ibEiq3VH zi_ZG32sRcevVg9mf%VjS8Tkdk{Pk#bPGy2xzX0zyf%|_E@ z&FE-*&$sN|J>RnP1?>TZ!9Lt`k^MN>=KyBl6JWjPTfzp<>B2_O1$2{VBHiuzytEJY z6YxLfIYqb#df9W5aK+P1OFh$tGS3X59N{gS$I~{=pQde_kEETNJJHe2?Ok%36S~&h z!Grj@b{OqPXuRJrn&3BvCi;z_WBsVzM88;?>h}aq^NXhGelauyak7Bvevv}9A5FCQ zQRzC|fgjWM*&kE)7AvT8rxmo{)D={EVMREdzJfZux`NQW6_3-o@LLA=XDh;JbLQ+p z{=xM(*RO|$^G`=~7one|P}1QFCA!ZsXbJ=(o&dc9lmkzrbALwH+B*{GFh`CNqdJ#iD?1|{aDa}daxsMTvcoXrWH>p?ZO?1INM4ID+GJJ?AwIsBtCDE0(Btnx` zMD%NgdbJ|L9AGza5q^>{;`kD|)E9ADBTj4Z(3%MOphw`A+913Qu`g{y#3pSK-WKVB zeAp!nf+9cU?}xPQ5Y~qI(A-`F23r9f}a9|E#4{fuw3;esnzbo?V3V+b^p!VGe_3cjV`gA9B zSa)JSx;qhf!@j)-(G~PS-aUxENlzk->j}SJ#IB$h5w3uG^(LNDAL3Ndhq!I;OB}oO zBi@Pqh@rF}sna8XH26G_*!c#b4}yp|1(*|rK7)IE5OK2ak3Q>fWvB{)qb~5UdOmx}fiQTgC7-K1ys4zltW@G`P9suL8fh>$oyb?xiBS41biho~C@>S_I1_D?Nm}u*IEp3{S~8u8 zR#o5AC*!*ezH? z#Eol+bbbx^U4t?7E$aC#iOODwc3Dq6$ObYzWdk`zHp0CbdFPWxUin1#Nj?!yJIoV6ZEew6QmPB!TW+hJ`m~_ zd>{xtmJ9W=mkZ*V<${CxL!nNSkC4wtfjUoIm_TpiZ9(LdQ=9Dg9GH z{P|OXUIFqy6U5!03Bu1n>1P6!RwDjNLH9Z6k(GkuYhMVIj24CRi9ni2%V&sm$`z4* zctv#CeN7ZfOGKgQw&+1hMO}8O_*j0aSU>uXC@s5#xOYW^R4(eqm5X*)%0E^I|OSIfu!df8-4SXf3qpu{M z@r9qSqz`Nj+FH_`_me~tD7l^q1nn=?%kK{wEIBU;mLw7ad#L2RFI18m43z48K0=c6 z-;~-1{~$|!Hp#b0psp1O)_wb7ur8E@>7FFvIx0P-qba}@Aogh;Jp%N3Mn^XS-XnGN zL%?a2PRRdW=ST8&iTU|DL-tmk^Y*PegS1U&2;Qdi4BW2klfPZpHh+h%sd<;KZQyR5 zp6t;HfqQh#$v&N3{ytsk&--)@$bOwq_I{o0en3|@`+zQh6zC{9s9S4)P$!)~tm{XP z=p=Gf=N@=e7kcHm&auHs@OesSB0qyq(qnWs=}|kLiy!Iu`WXhTnqDEkAencaP!{YhU&Zo6fS?i|l1Kmn~sS z*=KAm%V*o!PPUuvWd-aUyTC59Vs@LAvO87(MM2i}&<)Tf=;r7a=zi2))RpR-?EBeI zv47A0g#9&pUwxGR6a9Mq5xuuVio@p)zdCq0MmoOY_=)3s$0LsRb+YTEJ7+u3bzbJ& z!w_Z|X2>>tV%TkPaB1W6xXXB#S6n`G+3j+|rPQTI-LSe->YD3H?%mv{xX*Dv;oh`S za-*4z?2DQdjVv-3?JX)TvM+8{Jgj(J@oUBFi%%7o7q`Fu+4a5GORqcJ7nv+^(FZwyGtBy?z{Q;t?{?o+8DTv@5f zQ#+Ctc-*tuej7iuf(KGQ*vsYDLF0GYa&LQSA3FJ zVlwwjFp*4CMsn&{ue1!W_>{DGFH>5YSA6nVk`R}gnr8A!OHWGmnv|Sj%8E?tI(72$@6oGE*Ir$_dv#3c+BMO?d(ZBjJI8nFme?b) zV|-kf#2!78I{L?T>YC)=v0L}<9lLZ(O6r^#=bzX$-oI-P|D+z>x_9a}rjvhn|3tz+ zgY4FYjE|cX*C8b?b!>;IEK}5&h@^>W8B;?tGSV_gXdJpV5#8c7Hp%2QG&Zzd53huA zaT%FPTf}9I&6=2$YVvA2DJ0(*l9{T@|4O@ z67P)`eqJq-Q%yxIgmIlXNt?j$TK3)ilmsmj(o!*2FqceT zW6+gaSqW*0m`naWy(T7QX2y+$y((c>En()=R8!m(Ek6G<@m{Qv{2r-0YN`Jk+b6L` z^!v2QL}e2FwU-j&Qc}_qdU=IJMn!}~5cS(+=tQP*nI<$uB8iNPB>Xd1;>+*+gH&xT z8k1>?Gx3qbrvP6*6q=QqlAJmL1AFo~?&M=#Sz9J%rI?b_;lqP7`LO5FdsU^&P-f9z zl5q=3NJ+~~f*O&4Y7)$rgvp777f!~gcT+}IY64&Q#w4VgQV15oM3P>8$BM!i$t03) zOW->uVcf*DL^4Kc0-j!FUMVyyz2qt6go`qR2gn2=oogPU6EOZH(7b zKJEQGW-}obqhuD4&#+DLx6L!=$*34kn0<4q2I+h2OLlKQ_vxKbBaRIFH0 zQKLmg7gu!IT~u~ObJL_Hkee4g|L^mhnYlA_=OmfW=l`p6GxMD1Ij_%o&htFyIcMgf zPqzqF6gQ-+6N03pEo14S26VOaQe*W=lVPt~X*BL25_WNP53SK@9A2p6Vu@n%C0M|? z@JL%*7bl^f%^h3Ao!~EYM@uI-4ISRu(PlhQUSspGT@s{dXIG5$1FL7Fk+w*Jk!fI= zGhJEokgFUiBZq=vXBvr<`0fHDFE6(l?7L?w0`{G3l@3>>p;?j&d(){BO%tdH;2XQ7W|*y@QX>Y4oq7Y4sWTcSAVMb&nojzJ?K_+w6{bfP!U12vZD*i zl=>xvb)@D|LRB{u$+)O#ic`jQZPb08X4~nPAH}-x6Hx5L>QFbz!7uWsXZ}Tz$gM7% zSVsbEZKo&)rh?Riuh2~$o58?h<(Abg4~08BP)uz{T(w2L$EiJ38TA)y`r~3%Lezvs zO+u`~Ycw9Fsy;3%!_A%4D~hhYxzp-m9tP@7R5gJS5LNA=bjMaVMH8ym_z{SSFzK84 z3#nSi8kFGVx{elAiwY>y7{Ja5Pse*PbHs{{*fvqezaZql>%ws?6EqYnz_WGX$3=N4 zw7RVg2~E-R7EF>zVw+e&om(63q{+>!RS`*0C*cpetFATDlBfx{B-GP7il?A#L|xY= zOdO2gy=p1iCMqLaF)xsLTNCNoohX&o5&UT*9;XbMU0Pb=;e^?)#Z)!u!@{o4y-i!f z>mUrUR;~a;P?t5KvpTj!!r+aB`Lr%fk`3c4h}qTH;^6^ak?5(iE5?6m`mol|Z&k5Y zOtQ|VsL4Y-Q_wM8Vel~X13_xz;jU1JSi$S0s$cy6csOKZf(xEdJi59)9_~z-e`r=z zvaF!4r@B)8RY_JSsJBXpG2%k&FLAqL)>P3vU_>kbPIh)T!#CvJ)%Vq^U@BhEbKrqg7CBMJ*|fbx>~F0Ion$znVl%M^mUA5@K6C z5*L-79kF`mFnU_ey~r@rAYw*Ek8fMC#hg;a7|4$26Sp2%us7~)>NbbHh9tiz-@Lgl z5ssBw5A=5>iEL5T9fPJIxYQb2bkoz)~M*K~Bms5WfgZGnm)Dnv;^ zoMgTz7DW)!rSW1xT0;nb=FPu-vnV1Hw^(e&3bmvl2JDb{1S*q~FKgD;v&0wbei*^m z*f^IW!FFiIYP6l#nWjw`KGH$3IAYm*xFG&Wh7}yQmJBE{P%_dh3a^x04^sFnYt%+} zX4DDRqSbYZd6`trygV6+^zt+%GNe+YTy(TDM%vv#yK)d>o0^)pAagXrNd;wqo*)I? zHJSj?RwUxg_%O@jWG}XFMyJEdgBWRSgJ7i9hOZJbh`&luhYnUqOAH_xbb*agSnzlu zOnHN^&>?RE-(X`@JgB@Cf_xrrP3_x^Xn1Ql8YlJ9^eCXao5698CaM}xCQrcLA`MV! zLB8FB;pq_M6@ivGmlapLzYS)XxZ;>4%rC6|GqR!dI@7&jAfK&JmO^&h1eRI4&J0?K zx0gsq22UzA+3Y4NbiUO~iA~XxNT|DnjT!Eqg8SyV5WCtT+DXxyBjVeaK3qEY&PV2e zDdSrru{e5R4rVS|+5!O;#o7-WjOH}+ecWhA4|bB$2PxCRW+{3$#_FPp(Mdv)L^P%j zYwET(*%pb%NzLW{BvrE|+VO-zWhh3ZH100Z;&LUJnG35%7{;a+gN2Oc&NA5YPNU7` z7lnehv|@EaO(Su}kCPH(_c>#>ceQN_vx%~xJ(O+&)xgR&?cN|8!H6X~so`6~+m@1K zQV{M73_dh?m0*OsW3alyp{0;gC1mAn?nqeAR==W$)8+y-7#1-XJI`SjQz@Hh(I6#; z2#bnQ5mII14lJtZ+IEBR>@jH$N298gwRR^_KXYIv_&pNkG+rFoxKb?Ispdgw-aO=4 z)tv~phiK-spnW{7%%{BK8KibwWXxJnc#*3rEEJAG)ec2k(5G=rRS6RdDaX*JZI}TC zT~?Od)tyb7X$~oaL$MH{5p%_86%CPnNmWgc`fG)<5kw5dfJp?ZDr`I2oNsiypgGUg z^;HwhZ8zS8(p23nR#;eGXKZDCvoW+u@ZDn8q_joVO$ATfG|wg7OsSRF77H&eWaF-| zd`%?_yRv14*2Fc{o^ zU1Da?{c7oU%`4ooAjp}80o7GvQk@>a&G!_v}Xd*#Nm&}I61wpu=A(i^(S!D5-1=F)-{XPXXF z$vItW2vdt#FcfZ%LUA=$0LI=FX=m>NNfZ{$oAY>~*bbA3)FW1x zx(fw42SuUVi{BLO3iIkn9Yo%IvUEC0pN*Ink<|m%HUJsi7L0n+?P`bag_+#c2+hiJ zx2q@76pO+1 zN!sHP_IXDmTaXU9$C!=HWPXcg+X!zYr;&2xkSjsef>sv1wjsZ8V+T7+peNA^(x`L- zN$;C2XVvL_wLW(}PX&efHl zwfr?I^_m@DYAd6WCR$viTLl{On{%#>X_YpPVT8)TqBUxDH+M3+x~0Q>aF4nP}u{Do5DNx%`?Z^1K(1n|^m$DGE%TQb6$nXHUsB-F*5hJYR{mKNMc z`Y)s%2rPe~@&-cXcQ{Pj+r!FWQMq?IG<(t^qaB#RO`%XHn3fbT5t}b!3q=X6Xap6H;B6!2IWiUtWK$S7JKXbwce zu5DH&z6?u4Sfaeoa#$Cfbf#Lk-oMzEaKYPnHz4m3y;r2p~cZx1(h0>A#I zC5CfvCv8Vrn|X0sgIY`r-YBTY#Dq@W5}{H#f1Wf3Enc+9(6+=AVP3e@T3%wPdss_& z8(Uqp>Qu5!#mt_^q!^ob(UNtCWwA>+qCL5*T&WAEmM6IetbG4}$&_~i$+1tyvSsQB z7(kRY7TBiE&>S~6DVKIpu{|nQUz%Xj-j(wU3U3@zT{-7@TE=N!m`k?GI3)N2UGP#{ z(>8+yB?SUdf>Xog8qT$xBJ58o?G~-!Zi9HTlfnR$O+|Ge8?$TET*bw;PIY2O|r(3OA~CQcUiBNvRrBg&W8K;ZR##fPN#<3+yz64w;vJSGK#sg{ z2-f20T3>5D!MLz^F!>)+lm@q|-c;KQ;)Nw#Ux?Nc@;)@$FShD@GYnp`O8_-haF*!= zcduFwSB2SqY($jctytK3lfQ@U7OKIGOKts~=kiVSZX#{Avk6Npt>+z(EOzh#3~bU3 zqmkB*ju1^0bLg9t;@#9vZ;24PCa%yhDcA9wUx`-x&Z}N681)X4=2-!lL!lXVM z>c(%uE+a;3iK2Ru^w;EQqC-L)%}()g*mu2@<-E+ZQdmZIPHG?AE!A zBP(7?%}yf@F>1;lD_={ zlNRmHa;%)wC0aYi-UNeJ8LO96B{)CKba3hRB?VoAM25Y-+C#vChbn~>tKL|_U|2;+ zSF^f~IaZmFhIw(k@fcJzUh^o&)~2l#6=$qnLrb+0+sAvTp&ce-!Bgf+D` zg$*lwlP0Ss!4XU9i;<~9Ig~Nhpj7<|;$G#;R1KP}4dupycw+&FfLhC!XQgs#JUr2P z=g+meHJd>YG_AqT*0&UFX^}j7PA#kV+6GhBE+Haj_+K9QhMh z5$~ByOM=7Hfkj#bI94QQo}Ot-6V;bS&0uSP$n+6f>abZbPYG}SVGd1T4^4U}%a=hz zogJ|lMvJmnDCe2DVNrujDtK?Yd6*YL$aQV4ODNn19eu@!Ke&I0u>@g-4f|vJA zSmic%@MfO%%@JYgQi4A!V$_yn#;jdwuK>b+Af{IOoXMum9axB(TF8T65I0Af_(Sm5 zQyh9oTC+11VMdO3#niSDS%|f3??-D*<8(C^PqY06Au|HeG)h@6R?MwmSA`X#39Q`_ z=j}05u(6)Q>VdykgzR@L@1zFOp4=L%MNXwn%~?C>?hWvW}27=&AS z9sO}GDzq5gTVB6<1&`ip=w2(Nh2;;C!EE8o` zn$H4f6fs&s{O)35nBUSd>u%;8T0)r@3CgJQP9(*r*05jpxO0?*vVf`&_95}Lra zLFUl2ID28(f)sPGtKH^#rMHq?SV9X+K|ShJZ%#pyGW7W$gFlnRrKKl4<`j8c(Z2Nj zp*V6=PKJENZ(B!5t(NAh#P8b(X;ZjaH6y`mzuGODJJ&G3>cnx=4v`PbQY|KPc^}W7 zH?&R@z}HIhIe=0SSCv-2WeP5xX9k6++SjrA1uBO&7jhU$b(WE26+@COZ8JSVx(xMC zG@=3?{B0?&LWJYTNJlc4X={YoxBJC7dt=cbt4?1`1K1MnYk4SPqoIctk`Z@di9c8bq_`q6dP-p&P|1 ziT{JVT~j3pWzL*A9^J|S=(T)Oz|`oO!N`pF`bf-uT$2OIEi2r?E~?AfN2In!%pj47 zXd@o z+~v?4VSb}b?V0oZ;nhu(ag(7stv z4)JYqRL0b+-B@U{1JOLMS0~g*`~-h<&O>2-&5u+x2c_j)s!KbwR3gJH3oVgoYHoFC zM*QxGW{am)Bj=2B7=`B10_SN1+g>zt6F%885707W`!5pV?u5!60~ z_#hwXp}p&-Xln;=imQ;ZuFi<%4o++{9kp9q;wmCR#9Jv8L%@dL%ArTJJJ{JFI-kJ* zo9$ksWwXOP!(cu;)oj;cO60x7VUf@#B6`kJ;l1>t?FrWI6>z) zx`e^MJ{vCT#F)8(*=Y(%wQt%=ZWhZQV>uKZ%LY3)&=AuuVrgeuMie%+)G+I)4sSK8 zJ!guGDluq71Gc+u_T80fT&XNbfhVjrDvV~Sk(L|uAxuvZW|~z-F?}A>i^4m^7J^Z= zrZTOr8;NaD|^%Y_Xl?0pJj2+aKVwxbS>&beLG7=5O(i$PZ%0mj8=8827EEg&1f=br84N&O0n%z=Wtw}db zOSRjjex5^>slzi(+rJK{>JsHtRhmHx&ue$YBJ&DI}NaIO&#fbel+T zq6!NF{%sST{HuOYwT>2{LQ7FPhKkn2_CyPX2XV{{>1U#86RFH}?hI-wR5e=uIw>AO zL|Rn*p*m%${!j!Xhb2Z@tZLe^Tc!x$dl4w8&;(GN5XYm6DCT&hvcejb5oksBB{~uu zTczGQ!?7qGMzKOBh2k{)X;YY@Y3pVc8z?rT?lFq7qjOeP;Hn^{LolfsIGGLtfws^> zXA~EdhJ}xu_rlDBK7Q+xU<(fuhgAscMLgCOji9fZwh4}=qNpf-;s-RNg&$1ozA@tk z)3YsRLpY0eRC{4*%iIO?oA56r7L+zGq3WxDoA_D3|D85u9J)HzZLbxj6fLd~9Ssi0 zI-ulqC7K0n;w@;7A=Ggdm`G5n+QC%Y=xh}=lqn4&HK5RJg*B$Sl6U{f$J2#Yw1P22 zLFvK}9sE~66a*VuV*hwjjf_?heBA-|Zhg>?hsV3SWB~;Q0j>F%42py8rIzpY+u{m~yVqhqzNPLU2 z`qs5(mF$ce9%&=9G7>lJ^Dk+q7Kd~=18)ruktV9R!M3bMl~)JI%?MQ5AWC#Vu#3!- zUPQplhvj<`o9I}FTevzSM**sz$ z?BRO_-?$-K67fa+;}EuJAI0KY5lcw)EMlm1=G>#(DpjcYRH`T87-4?~HTjop(ahq7X?c-;Q~( zAnxKa8eyS1YGh|&w#}OZX$1FK4L6q|FO33wDNSc0*VFEmG|#AyN%2!k=pA(-@q^zk4g+)|6*SFa6L)~3+cd@2v z=mzQpUAyDkRikMmJF;19ai?w-mU?8K4x%VacG$*^dQ-WizBZOEHPq${zm?IO9h$+Q z^12n1wcaeGI>fj0RJZ@?inkpAl?QY-fOtDnx z8YQ3nY&=JP)@iKmlVWNbg3)vroY`^Zbw<5lM)Cyz7m0%HPzhmaZYOiq4D~M|8ueIg zMa82$*Rd9}kS$;xZSm3vXRfq^DzNnD#(ByV{My&M-y(halHC z$G3~trg$q0GTy5UcVcOzbxb`qcapDOJv+AWSFbdx8dlfU*V%nZbLp;$Fe0Jui4n|J z-8FGJ=9o>4W%1Nq9MEX)V_0z!rVHMn^R?}C_{Z#K5>AdY%vPOE?qET+R81+8R%J`? z_QXrkgfe&&+?elOn`lLL$Ea>I1H8`*ZTC)|XM@~$>E})HWdSP9Yuf0$*&$ZcP zo)4HeA8WZD&UomeMlXP>5Nx!IG z+efQz8z7#El2)EpnHWj=4=iEBhh&uAHoxTxWo(_8Zh}c|pD9cYqs@a;Ez>{<$sd|@dMQ}|Nb1mnUp5~HsJ@v}!31*l- z9@p3w)XU6?7zvf7r91loislr%>P_0KCH6mH_S}g50H)^iY_+Esp0#-rQq=Qa~Z8izw@2!F65A z(!e~pAf9Z(ET$9uPZ{D#rSElhhMy8o7R0T38m;t0jl$ojLM&{3-F2xP_hnAyU8yjj*WQMtf}sq0v@|6*jxXNH?P> z-o^VCB?ffedBvm$szX@5$c1KdVTm8Hj- zb5y-W;!V-^t~T}3LhwJ3IViede{H6-Rjcu_EcdUz5&f`ORJ0+69|(UHPMw{cx_~VNz!7ya) z!=M3>Q|UP1Y!M>BOnSjNWfZar&|WdYQxgV&-hD3{0yu_1gZ49DWYDQ z>Bx4oP;`6)LZq1z_^wUC&Lr4#LdkCWp^#*C`5FIE6*?$p0>y)j26SsjbJHe=ni;J! z7*wQ$8(6ah`c5;R+7rckyeXqlejR)%MRCUHn}_9XCLq(8;x5?D%zbayc!}XY@n{A@ z-Dh8yLJPWMZHG#ou(lHDUEMKSI41(t)n3hAOEpD=FvmB=B8{;`r>SxLKeYh-ur@3Aa&s6jbS-WdRu|Y5mT6+y816}~N^tocCO7R^avQKjt??!~ zs1)}i6M~8XWwJbOTL(f$SQPDF&2yYzP6~{j3PEQ{hSv@+B~%{?{HSaB+RIY%9o2SG3NW*^j3YH znq7&h-L=n`q8Y$-G(|rWxguhTaBXmr3)4sb7(^Pi3=xoNty$&Y++IL zt%{L8#Hh+pCn5=-Y??HaE50xa3Jj_O<(c*^n8hwY#drs_Xg=nwm+9#^TY6FyqvWYf zGG$bC8)bo5%qAl~NN=_~DQMT-#BfsEc3gLwCH`Ltkf~MDQ7~be`QvG#?97_apUNaN zo2*J$U1tSiT1}sDTS-!f)ueVi` z=FTr+4$yMOR5NntFn2!fR#?Lz(g)97`--G@Ikt}Cq)Mi@I^EkY6otXJjPV^e>M^Y| z(T1<@&Wf$%sk5^2X3vffT}P66SBSmY>Dcihho0Iw<()J)iWTNehs5oT(g>S?3tg&O zM&m4=nB&mC1xsqW<+G@JUSTsVeG0xUF}f*@8cm6Kgr32xBWD z6T;$!Dp2Cw7E4dgVok-YWwl7#pCxK7_G{egl@8t8wWb#7@=^=6nOStgPlVy?Gs-e|2d!BZ;VdoPsxgmZo=xmh!dk%JWIG zm12*}HZ2onx6;q1W%K6EL++t~E@Z`1opK18;H>mf?J z%zcQI0_&k*pg+2;OL!xeP(fiZiFxX&N#+h; zp(&@Kr{iaQ@2k23S6!j%$kcLuG$oo`>KFB^rF_wIdj~Y3bQ!KgO?LEBWu(n?MX3va z%?oGM1p|)iS^EhA@##uz^^G9DjhB1S+CJqsCUUkyfiv1+T_er!E&?8&LXR)y-lkZL z8p|6a#@uCGuVQx}6qu)YMS(fQ1=bkzrxd)j>Ix60aO{%1ktQu5bow)w!2+nDWleBIDi^$7Ta~wvnX=;k>25twtsL!cPsEksx)B;2J!(z<|^`cG> zsAqLZPCfIt>(rwP&&7QVQTKFWh7m#|lPT z^S-B!ZeHr_3e#7>usAPXb5GtGoAHYs{ALwi0eg3H5PF6RZi?&?SmnN+`yNFsN5b_``jsO~|&fWfVSK z5PC$+;|=K9+5qg#J6QEm*k;tYcbANuLlkmd(r%qtEwPW6@tbuph$5Uy=zJ7Gi(O~C z9kFmO)%@F6vC)CYpw+B;&8t1ta_Z`+=pTesXw z`^x4uFSNs~!tN-D(2BhWDAX0RKWUhzRV8Q4Q!ztiXU~|CJtI4J+O;>lE&uJsh3_sB zqUX}zWa`S_{9yQR{Xm%s{Z{7|8mFFzjKcFbLL-q&l*er zdmisX?7Ulu<;!Q9-?z=$zD{Iy&&axA`gPOxW(h&?S@?JC4}X=faeN1t;0y6@FW}QX z@EZK<0sJivcnSW6@b3uVUnf9$-i(U8{E9rIBCn`Cuk`6__gwRl+-Gy1$xi395C4|` zF*Etr@EZPzf!Ff4f`(al(L^n?D1Kme+ed#LmHfGXs z`_VtfpUrlz%$s4gvj*@Yz}M5qkSj9V`QhA;{5csvDo3h;k&^+UNT-^_)|9RgnL<-f}RnWkxXZDzUDz7jm=5C2vEX$s>= zyt4t%XMz94G=6!W@icnjnQUsu4y3oH-0k4;r#wb{#vkw$@bf(IlYkEbp5uU1`R4$? z2>7Rk8jo^Se$Gd-Rr)xUk8+l3(q|#V-ALbK*3U|R#!N3mdJ5_HXxg^{=|!V|mG5x0 zkLVJBmjZrER%X83exxrS`>TArr(X^OUJZEI13wA)0l=^Iwjb~wz;E@bKaJ-&(hnhh zC~IotS%P`eebvm*r@v~Dz8mTPmQJtC+ndD*#CK7o7ya$8^5u8>^4+Su^Vu1UN9{WZ zy7RO8ut+VnJ^ zW?^0)dRL#^mhK<4cU9hCjv8aaqjpu&{JpVH{w7<~t`q+4+Cll>+$Y;T{Jf9yo82c{ z9dIh=FyIY<&-0GgBy#Qo=xPi4Ua9J8HC(^FjQ-4pIqx|KlP&BeD23e;O(8? zC*LQmems)(w4?kGG3J6knd2|#R^{!@>>r}r54y9r_sO__d$scU4Csu-eR8f@A8Vc@ z0bdOGYfZRS|J>^^9|7;S`J~k56Y7WANZ*U}Z<&1UmaBVMsuNxf@QUv2lXVl|@%#tg zM&RvC^@Zwl4*2En%!zB9vVg{AA>l9UlPh1V8JC?|zT+7MU8=fIhIDi>fBroPy3)En+2B9F zv~=e{*KmKI9KUYr{6qaV6AF*auA^nZ>wdIP&dkx|@3W3l{t3`+Z0eJXCdi-g z_EY|w`eZ@2ho5K)n*2oLcM^CzLw)iO-t}CgUkw3&d0U^%b?_I#r(;|ed*ICffR_S3 zFhPA;{sS-7-X~9+e9iK|G`&7Vk$$M7PaYIbepI|j>3gXBSfBi8n%-Vts2+!rehle{ zCzxM6|ADvs@jm%E@B9b+EZ~bg?an2+*qI5R1$dDUd?DbqfY0{8YXENryu>Wmf`-SV*?=zx{J*m@$A#!BNm1+SlRxm(cLU(Z0AJyOCjcJ=e6s`2;}3ZC);{_7Cfq59 zx&4$M(%#;(&wRZQr+wfhfS(0?mIq!5_<6wJ=71A# zYykWs;1MAvp8h)u_(s6v9{4H1dwuXP04|=)gpUKh*aN4w z&4hv-1N?%>9B)cri1g(<`s8Yp&Z`&K6Ft(KeCT=nk$wW{4|&?V2k>c6^~pjH{2<^4 z;Ey=!N#lMT@K(TQ%=8_1EOa@(de;!u|GB;lyLLJz;$pz3dEm1FFMZBEz638b@n<^V zH173pQ2BpM2(7&2`47Bfz+2{^C)u$N@biE_It9I)=Rfdgd<^~Isoy!kr+v&_ZyKK= z6aSm(`nlxrOk{Kf=}ArcLZt89=bz5)M|$l)_Q{khoo2IJZ`=XAqL25Bo`Y`%itcPm_KQ={-Gt@_U-}ailN)gr0uZ_2|D(_Q`K+(#w#329by zdHgB={ce6EzTS5|HNH<4>GWQWJUa!t6zCQZV3S&ZXgn?eZhX2=p7Qb|<>b&eroR#W z3A`UqqL(ZLUhK1dGByE!v-|_zu}Sc#pLPLH9DrRzcpiDd`XAC~ApO(Aw?DLgl5?Qz z2HopC^J0kVf54n~?df%TIu^tp4?dMY8}Pk=uhQwCKI1`j8$fsH^L@5|W2*MrKF}Fo z=#$w2>^vTS(4|24dQW>V06zEyQ=f3OYaHs1YYx({Z`$&iWv zb_bm2Kj6Cof6!;#dHy547wO+fr`!4@<$D}ItzUG@J!;n(z&8T^%(cGlf_a*0Z!-VC z8T|Scvpn}aS?<*P7Xq*LaG%_wv!@5I@wb0KxBFYLr>AT9$j5G?dL0DafgkqCU#0Cn zhaIOZKI*Siz-#zXpL`&#r!kV{e@P;}=f{2WMxDRY$Bv@)Xf_nWy+1>LPSHoBFPgy}t|T=TE!yXa5J_ z7Xkm-Yc&0#^M8PD=kGJ;MH29Cz}t0x-vgQa$L-IDKJdpr+aGDQt1O@V=a8d5b^*&j zq@Vp$pX?XD<@w4N%6A{=_Fm|7`mtT>>QSW6_}@PHYYl&$LHcQ=ztvG+Za>ur@Fo8K z2h5esdCTpGKs!IsC*SGFkM%#mFAik(bG?cGF`YfK*T0|lfUf#drd@Ur@LIt0JmnlW z@#pBu(fCD%K)3u#pBxXcz7W5cfB~kZ`lR9VKV{l8^~5M6nR-q1?c~4jlfMtZ58Qsx z9YB89IP#-;d>rr|z<=OsKkCCyD_1sZ{DHstYM%`G^Z%;6y)*sC{|4v_*Cbu@lldR; zZor>Q`|%Ym@SWLS)Q)s{an8w_cZ&kNWeYt1gt^Vc_>%pOhbR`D4?3 ze+uc--jvL+UoHSH0Ke7)AE)}gF%v!$g$)93>CIMqOYqZ!d{&zB2ouKk^YZ$S^xj!X z*Eq5K!_Nu8-|N#4G%mZ4ZoDHY#{%-janM}^-4Ma3GUhm+0sOR)l(+h?Bij6?zXSEZ zDYO2w0Y3rw-DdqW{2xd^k94m;Z3EzEec%bePXm6P1J3K8S^lMf^*#x@y#-0-*LKwV z9N@bFf5@lb+5VyOkbc7Kcke#bEC{^TcPEuU>w&b~TL}10z@2(>C5=De-GEO`-_5Sd ztFF$gEzfHx&)c{(nMVyp9Nvp458G&tVV z`6iKXLs3#bJSF`i`)poAts|fN@*3{X+gRz&mfKzVF6f(clJYTKeckdt`?q;LS?jUb zR^%PZD$hHTwHgQ{U-uxN-M1ts)jy8{&nQXCzv$$?k6u9Iodn(4Ta)qyA3kRN*TDFd zCgmn?`Cj`Ecqf4OSembV_d_-SZ`%CH@pb{Pb`m_6f57Vjp3Xmf3hDU^CeLRGcpHJY z(kCD4-q9D2lTV_QzA!28m>ORn&TFX1+qf#PwcNpQ z?Ej9HL41IqG;L`yA$}Hdh;O$ty_4p|0cGkP)G><>v-GKje0{;c; z|G+cWr~6?ddxq`*o6$eOf5wYHi5C-w*{ci$!x(j$Q;2rehIpjXeKj5W+_uuCDdFS^js!u#=+ugSRpEjNnNtd6W z${h!Mal)%7W%{XSzZ>?#)}*qh9P_R0-Lzlh((5wzC#io!z&ilE?+4Ut_JeNmwxsNE z)SKq-QNZ^C{t;KXmi=Dq+6w3P1AlN^rd~Y$ZrYzoX7~+e7ApL=df+91rvT^p3kSRs z@EK2<>!$f1>;HhaKADyqmjBA)&mBlVi}b%uVox0e-jS!0%3t|NS`Rx;^nl+*fQQoX zGqi#7o}~PMhYyl~cl*F|i_l)c7kJ>a0MCD~yMNgK54Zt%Jl+2;IZ}`Go$t-GE24mR z1Mc1L+y!{d2fiQhR=~aSUPl4n=mS3mcmv?I9{2^o_r5oCy&4Dn7~qe3+C7sNu$^u= z$G-ty4S0qhS{MHY{A0j>BE25d%&_&99Z1iAUsCPEXvUxY-@rQpyk4DrI`8jKI7jvU zXj1LdtxUIX2=JXAIO~6NP~VTb^v{fVANGF&ul8d}c_d&QQWSK(`;zjh0R9T*f6&e7 zNxI@;nEwHv=7Cecp8;F|{zoBv{l-H`Kiy;MiH>ofev1%ApKz~#EdKyEK4H!Sr~gNT zUvJ`j>l+0;-v_=6@EM=ToG<$Up9XlA2YwWA;R8Pfc*>`rE&x8*lZihL_(i}Md-`E! ziK>rtAC~R^64l=MCcbyQt3i4-(nluQKS}`4_*7DsPa^mBQ-1qRx#!rQJ_>jY@ZY7! z*R>9wL3-(@lNtV}B-J1A3V;67^6l)oSpN;7C){#H!AJl20eXM8^C z*|&7>pAz12;2i^Ac9zi2SL&||z&r4Tq}-A2FAmYO_62fjGyTUCSM=4S{4f9UVqcq|+&crh(_c$w#BU_2z8*NY|5oUm zfM@yp*?sjtZa?Uby@2&Vr{8PjSpsy%ca!q(%<;AQWe?yDfG?S3{u~8f?8T%V524fB z&H?Wb@D_UJ&k*3J0Y7WPxq*)Q%`C-w`Mpg4R0-g_0soBuJit1X>pLDH&<&n&`={9c z1Nu>A*kE8w5^DTmUhLjg?v zENRE_diPyQkly-IQr4L1UVmW?(tD8ZjCbep2mHWGnfmt*6Mvegp8Ejb3wYG09Oi$d zpGSIKru=aE$<6^U|K~~hI-TC+vk%Pte;fGqKa*;|$5G!Bz*B&iJK9I(R03XlE-Bv< zVBeDc|DenN@1*>r zpsO89%5QtiOWR{M1(lP)&-p7!c{;#)%Jwhlx>HH{At8MC5l$_n^B&Nn0}|=Kj_ZNr2KQx z_TP^Amense2lP{wfvz{FUp}tepY~b*dHg{)kVAeZW5t{J8<x!RY}TD4(Co8s0A1_ietAVlcf{Y1yN}9S-Y*Xb;k!R^6zNBho~zT> zHT6k?Zg*9`yfFY@vHr6J{JW}OzGs4Uhu44LovrSdwZsn;d1Q`v2=Ey-{qo;Ee7A$} z0sm9Lb>JxI_O9udRhqbyGe|$N7WoF)A7lIfF03zg{qm^Czc(9j<9@U&+YK)Ryy1a< zb>7DTuLt}9;Fg_i=|NGzdjVhK$$uB%gAM)a9HIlhAMpGK`(=#-pW6?3?L+Hu!j0>4w27Z0CU%u&$zI4#XGvldQ{{dZXtY2OiaJ|}5M&~Q~WqpA7Cgy)C z@5z3-J;3-f|AVgQJ^k`40sU69F)%ZB_IvcrDeV7%Zt>su%eMqLU(E5}pfldzFJJPu z&nG^O$~g)A6T5xZt4Y@VanQB?L%+NsKs+G(f0v>EKhm$Y6Y7zE0_hwF;ImJgAo^$f zC)}4|{s-Q)z5Qz6LO8}B@a2GiURQ6Q_$nTM&>h>?FMl7PpE&;UZp^2T`_O6P1?%r7 ze`UYghjG+93U~wH18>rluhEwdQhtZ~<;}WzqG|6r&`tY>S8h)(2WBqE_Hzx+|aef5K&JMcok{FINpCw@AKbmMrx+V`Dc-#-bw-tS_b z`0ypme;9VVU+h=@634jB2K)%%4Z3mD%##hEJNv7CxltphcOX6g-}~jy1ISIbf2lsd z=~w49Cy1*!2fSndf%Se8yxa=R*WdQb?@iKwCBSR=9pGQ|+hx{Uji>a;<%Pi8`AWYXUu%t54dA;0Z}#DLlA}?i zpMAAozU=K^A3KQf_gB*WD44Ha{aJGk>Qp7&kI*kGJmYN{rYX_a|~H6G)D_X7Uj z0D3gHzY6j=>tz)eC(`g5z>5H1=O~BmKfq&vU-XxI8F8NbfM1&PvO2fvBd3lcy%y=t z{T#M`0Ivr8r9R(swDHZkSYXe;{Ic3_Fykos{1f222VRz6^%+l&e?WTvD=*vU(VhF7 zltuzHqSWj1N=PTUkh;W0o(teYrSSbuF$MENu>8& zJ0Ks^#lLI(?X#<4ug@5ef7bPbkN&~yALw@H4>;p`UGiWD(p%p)Aph4_&&~839tM8V zI|k(R0DcPI{{o$O*MO|n_`P#iW4;*!>fDT{o^1aiJ$B=OifePoyE4Fc1773PKIVU< zA49rR9#Oj!fDZ!xvUk1ZT{*Wuiv9ne0Xv4Hyqm7qJaYCskQl*>Cncc^+mzE@|*Yvl4#&<+0Gfc!wQroWE(pTA3juDT2J zK_|yF?VEisCRYiaU^=zjHu-D`@*cci?HvqX2dt+drVY zxNAUCc#NO^K7EZ4DWr=4>kf}U=uW(UKsM^^am~5L9iY4T!GQ_w4z_=RxAQ{-@>eS~ z<9)z?U+Ns_ihemD7f->D&+Uf+viS6X{APgmv;Ggd6Tcd;?HAp?Toecwf%j)!Kl%8B zS^k6Wz<&(Ld^3Oh{sX`d0sixVdcqLsmY*GvKk?xMzW=5c^9$)0CTUL@@Q(d%KwcAY z-X}n}_xA(x+X4CPFzE8n4ao8UdK~ZnfUfip1DSF6K77FKzmM)89I)@PamdwLCtsEU z?;`O27Qny9?FZeFKM&~qkb3?1KC&MN&%i<$ zI452nkcKC}8o+x2|B-I}(3~&c1-gx|49M>YF{OEW6!?R{*PJWW);kHhL$40VcE?66 z+dpI&UKvpFq~+=JZnFSST^^9b>3L$G=iv1p>1RRr#ms%h171Cj=RfcpQUmh00oT`q zRKKwS`DPv8Yy1Z1KzC6ND8IFjydSS4dv#FW9?);Uu%7JGK^33fmhnC4%Xowg6@r;+|*0QpG#cnWk4ZyQwpIcLA2 zirGHrVaI_#?S?^lXMpqI?Ehac#EhE<<-Y4O>reHlNBZ75gLa(xMDv;BpMXCI{3m_% zB=&zHy|!dfUa#>houu@+gYxDn=;1v6ggDpc4xQ z<#i7GhV6gAQ-FK#!P*CS?QMg0oRQbAJc{(4NRK+`*#86gS-{T+kiTsIHXy&-2kraD zym14wk$wQ_-g{Ka0Pg|(Nk=_+{{wJw$6&^J)F|L7;9p743tJx1IPPhn^JarG;o}eR zTL+ES`85Q(+NFc?9|P_~lspLewQNw`8{wnR*C0KA`Jnt+0Q-{dKhPbi z9F&^^w1Z+1kAv>wO7Q)EY537C$8w&&Hm@gpEwtsTyhGU)c}KEW10(x~0Nx8Azub?P z71qmTFmxObIr%vNuLHQkL73B&1?U<;%T4Htykq!#LZzp$eq%vffHsL`nBsZzt((rCIn2E3@BR=gcfW%cs3Li(Lg?yv7Ho!HMy} zwa#)E?Z(?f*4y)Mz*~j&_V2I7TgZG{i|5B2om1iH9AVl&4?|wx^oqPCTWHrqnimIw zw{i9>GS|yjnt5^NVe+TEBLC#SkMHZR!;&bbZ@~Oq@{0Vr?mXsR*ZzOb`Pbz2HV zcL@KEc9&-jXbkIp{!p`&xQXFw+& zc}326x27HLd*O24|E|1?sQ)19f8J6J+5h_p^x5~l5@^4Y=;}eYan~zyrvLpz+V<`N zUG+b_B1hh)q4TjceS199@Bcn2-rf!?Dl3Ool5}vaoVO&WByUv6VU9_P@zkl}F_Q&gRzwZ0_yq?!}-LEGgRtSnT zkjES&ZhL#h8<4)l@}<01-?=WG7sp$kN!ZV^`(8sojgA`b%^akIA}6fs`s2^hBLJhV z>Cjil%HRnKkpp3|H)7xx2%#y3ZV!DWRQz3hwxrzcpYF9To@*d(e7zoLyffXFKBZiq z^cedk;`Zpwl{WL#roZtU&b}I6Lp>hAun@X);`*Q#enzfmwutfm-**bD^1OC*gC0gW*7~GHnBbp3;-DDVZ-uYo^QF7A>>KZ#_WBi&U;&rh3T)doa|EA>Q7g(u> zde{ipB~_>W*nvxT)tyfdUVn0%DFNIOTVrFLQr+-1bVc!X^3`FU)ZCO~`zh?^`waXn zgSBSBz`be3`KzIDeeQ7$>~H@zw5l|;n&~`amb9GD<)oac1SgJPiC9-0|4S@%_zbaz zzM8u4;^B&gnJ=35q~B~-pHf{Wt~DMvD@qA0>-J>yn-5&XnK#znyfx7KnouxM@@!x@ z$QvNir>b~Sk1T~xEFT?m;$?Ey@3kCnkmxec+b4pp<^1e6BMo$MuyMlC$LQyYd{B`O z#7vwc7Vf4Zlt3%a==6m-EHGyPZON+n0Ztd$k)l_>(Atk9R1=AJ06}pEi+{M9oXL zqamP=7Qf(56^Cr*9gU(@NvQ2H6MnKhL{^O+A%u$o;!0VMWY%;5eM{oBeBiFR`6jtO zb`C55_IF*#*3QvGfCmUODxxSD5n~J2zsNg_5=wYket$WubE1|oGE|9>>(kluE9?(j zREil}(hbB(w}YB~fJ;n|E3NV}52Hl@`kRj}SmkpYtjrX9=Vt_ww=hbz<`OePwwk3Vg+i6{#OelT^M6ss>v|p&+9Pb$#=myjWNZi=_mdcyqlDNC zI|y<3z72pBMM+d^=V1}Hf=?F>LcxMZqMz?zfwpYB5>d$@7Q-UImMBIW=*P@Ui40>i zL4Z;M%(jkj2RCxrqKT_)NzcD@^*wW4!h6LqWick|p-V(4Wj`eY7H>QGI^pVp@IFW- zG{N_$p!5|KyCDcNWsyxS^#`c=4`->JRLI6b1Yt-@MJV}5>-UIszpsb^nd{)%iDAfG z#6?3=_t67}FYU<3-aOP66Lv6@&B&{oYC3fFq1D6$u-@@}Hj(jnyJ9K#NAbXi#GCd? z9OGrH_enSipwDL4sv*~c5P$dNFn`|}p@kBc{W8J1m+(5)T$S2iZ(zBKiL>DcNvLs$ zUS5@)4Vn={zaauv)?3Gj2zm6VP$j!p;v0AW1SnEQf<<%}K;&WDh-7_I={c^A=s9qE zkG5$2Zh0;ueudIhmqeEOLT6H$GLQPwv+-wsM*b~L(6`xQLXnGjP2hQF6;i=vuo5xK z{TubK`U|h~t%^G%CHaB(6XOR&JVsOV>X$ah7`2O*O@K&cf@hw)_}^pm!blskV zf?&jG!-J|r<+V;fJUH6zO4S*71&#w4_LnnesjL773t^T6M@@Vz6ItMo_JcL%f4bi!uTww#!cT`>` z%t>xQH_Q z7v6auSCYPlEZ_V|^r-#$N_;6=jv{Ie`4hFf*s=9u41E2-l&%$@dvYUaHqHujx(s_v zS|mXhGdY{AG12?9T^FS!ekx}OCA~WDyDnCpV+3_7Hi8gV-i6a`P1FWJq*R_)mX=pS z|21JmbJaxxn)963xYMdcU^5Vg%hc)9^ina-E(V06U5h;yHnC#!I$~0KxFigH4Dshs zig_aQ9y_tJR1X2Rz zC)e@znv9)wu{QAyRq?+%A|h9nf;k47gdqazAc*4@1n$-WccpP*gDR)jz;)3c9X`nl zH%ts=+SKiSu1I1j4G*z;Pp`typyC;s$6&^z5Xdt@5FfZJ#Sf{BaSzab&AD9`!e7+vvFNKv}XQr9nRqvw|Q@k1#gYGQ{u@DlVa-e zFC^TgkL0pG78i$zot4U+pWg5c2Iqh_kN2C?(@)a}T)xqDXIKxk_9uDQs&D*7Q5<@n;BwKNe4KLO-4VjB zQkpUX0ING3DWF476AogO_$7vCu(b?{5KNHDp1B3(sZy@C3+!l^LxvnKba5Z zMfINX8R%$9&L)ytb=%Jq6om|V)`E4H7%c9svsqQQJsVT`fsY%zJ3s#Ssi6L@+k9nu z{0N2Lda-G9-j~2^XY+JK8c$dRTaUjTAc~>bn4!d(NXC#D06GPw|C4B4XxdX1Gc|p!VK@W)B{ghiEmAnZP zQ?Cfe%j?|#P#d3lE!RSWanJG|Yh(T0O8K zyS|2TKl3~^Rn$9fUCPo*A{o7ts4ZOaW%E4F@!zx%=*KBLa6h-0 zy2P6Rpp+M_D%pz}s))eN?tw{f#Gm7}>|IIXrc9XIiT9^JspT4U>i2VRFsHaTTE!sz zDc=^zdw~SH8>O7rE78^dSzx)wrGLH`@l$*fAu6wg`M%s%|APq^eoKkP%sYPP0Ys%r z{vLA?B4R*QqvvU+Z(-EVvJk#&1L{O`6-jmp5#W|=wag0VW_feI`fhtI&?9HrTR}(g zVyLP^Ood7&Z|3t~xn|nFU0y4O$(l&VKU`uWfj{K?wu+sL0Iqx@K1l%Far7)pXLwyvpu6Fv^xk`GFNzyQC~VZWuc5P<(#4?ZOdwJxgcMjVLZ5;#)pKKipN?yWFle||C zGjnVqiCaqNSCn32c!r&Haf7*dj5-ta+56}mI&&Ib<#SMEox#(mlr|X=<6>BHQ|H55 zc}0jzi8ON=*i;I_O=Nr6is^ieo1?Q__;AsblWqnWTwXJmirxQPpbHjm9?gw`yWI@* z;HyMzM+~J<%qX8dU*2!Zi8^%mWG_S=HZ6P|m#JCux7pm5#%6q0iQLqv&<(p?_v{bz zbMWDt1@FrJ!Nt2^+ugn`&M}#ZC%_spfGy(pKS)|ReplOfDU3+&2Na7`_`4n4My3=e zADe!mGQ#-^-cabz2W?Ew<`yq^BIb>3^AOhsU$vsJO%vFpmH2hhokx3JnOE|ejpe8O zHWi|C%>jS85HSdslRFLB%&Jm;2|layDjX2=WVhCDsu!tP0PhD^>e!&i0G1n_i8_)z z69DhHNY;#}DS@RP?fdPn#@Z_~?I4a_jLrqLec=iJ+4AaeHQHbcOgrp}FSFH;MW`fT zh4!H3!mR8f*aFX8GPJ6Lb;_qH@Ji@;}D)S5tA%WSq z;UTe_GltrO#cI7xcOk5UT*3C68Cp?}qn^gEO!;5iaF4nX9+5>{YKmrsdi)P^Ha ziwm|3;ZHfTiK#po4pxgl{ed)lik?@8Gsxws^NO75wu#XUb}!i{^9gRWsF+c}N7+K* z5m(ek*;sRKlQPtQotS6o?Rs(blO2sjXQ^W)7|y5UP_tXaO-l$8swR|TL>l;64XE73UZ(H~ z?v7(0?Hzjplb^UI@~m9sq?{vHr@Zt&Y+v1Mfr<)Q2LBW-QsbWg5yT=+4dRlX@@3}G zw9RHVrK!m=SfHzlM+|?3n`zWEbm#8$If^4<9Is^TF(VXlGv5<6k1|W*I@$L;!irvO zjiIje=`7yf(cE^`7&TP0?E^eo*fbP_??h;^9ZFCGL7;p*;y<{QQ)wnK=P9OPB|)Id zB4Z1jiAg1uC>A%r1F{h~7~?9E0d@z>dgyUU!}(ahZ#o@uXz|D(K-FTM1Sg5<6bp51 zS(m7Y14*`RD_0LTZ$x5$xz~#{$2Vbb|H5viXQqfj0L{@5`xt=`MTv)K@xe&|VS`X2 zl8lvtg=I6Y#V6(qVW=I4Z$feO7{s=(1`VJ5C`BrxvV*U%(^MWlx}CW<3F6SQt}2q_ zy|)y$^27ueN`>YD#CMB3VsQ0R5kt*)xN_pX+K?jS{5GRn4NbeC0a<-s)7J(Kc%QN$ zX-8*$o|i>l)MPNj=6 zKIb&B2Y;LWOGGg2kW8ZUDmSDw>Pd!M{?T^P#0h0zC3T+FIcOz ztaCTUp14yX^;C9Gdjr!xf9T>U z*-u);Il*ddikZt-gUt)shc<|-S%WlVhaXMn%c%TT(f5N_6;SmuqDmm+CknlY^2VF~ zo8V-63_w{d!(&d1>LS9l{xPb=PVZm*zx6SU)OkqtRM4~-n)lPTC+4nVqG(Sw+x+(b zNglJ@x&Ea8xh(nVJr$1zOsUz5zg5^YdjasCppL#!b z|3!g_ePWW-(eWCM^u^;8NzzMA@g=?ygpc>Jq2lXYe=Z#FC!Xj27nBI%j;0oC zj|%IBG9r6O3A3P{FSPmyNhH2mVNOA>vrFvo9t7CESGGEQ@;(CFJ5QKsC$$IK_Gq zA(dORU1myO+Q;q@3%3x3j!1JG>qVK`oj{INCOmCH$=Z{+XMq7pY}zG&AJu1d#b>1V zD@(z3HXz22=evmzZqP?86yzjOh)GDKmaZNCeE{Zvd9KRj@qDq^d|Ft>Pp-rc)pyv7 zcW^QPnp*I}b8Vgh3=(vCc{k5{^rNL)CbamXKwlcPbrgv)bvD@?v=CG9e2r;G~~K4EX9@8h>vzu-ID zDQi~Q{H4`XS>S&~#@G<~_e7D}_`9wgLB*M>Y(Qua<-@juJ+>=_x1uRj+(Z1J1c9(-N!U(7Xo#@tRs+38zGr% zlsOYxUU%m3t4v8Z@*^P^x`LS=K|Vspi419_;li^bl1hhBKOjO4obK)leT}ZC@ZS|3 zrs3rGZAX1(qZA@j@-kO<%(n!Y>TZrVk^K%Pe2WI{dt!6-H!7k%J)YrVQ*A;(o5V!L z!=ryD-ZFzllwNDxb=)vJ|2+8!{y#VX*&nlqh1D^xUZ;2{>v;m!h3)?M43fODHaKU?(gP>G@)jYRKMJQ7G?%r2Y~T9Bniij|C{(4}4PakUeiwcBu2{?z#o z7?;Hj{3|i<_5*9jjK-B~im&|7QN|YIJF?fr<{Ix;(BD+GbKfU)K)eqkA=jMv7~@lQ z;Tuxlb;K~UQeb(Jj8)SxyHRNK9Zx(QHD`}olWHSKh%#TOit@x-L;Srex++910I^z*;at8Pm*FH@=hPBWk9# z!FofDRD$|%{O$t7d%~pkUwG>!=sA8kaHSP`_*Iz9`zlW{ufOB(d2d6BHzOR$AH$wN z5C$JGO&7k$U6*eAE(AuwH6L7|2T4(G;WIe!rfeo63&V=3SXKM3^((6iW51> zmTG8WiAe~F{)Q>yB_SXGp68Ru4HM}>=y^yWj<)-^ly)LySHGyhvgZ@u^UiEXbRoIn z8+fhC7^upPO#*yV6pHu*?_oMQ2J*!;gsG&!lJiXKug6&XiNFpTJoY-qZhvvQ}`sY9;A_0jLD z_wYnKbE|hxM~tYPe=M@$&qxGunR`Bp0`R|-s!y?x7fN~qGQ$$CEi*Tw#jspC|GUL1 zOEd|y3;tKvEZ z9bzbEg`3Uc*ksMas0C-xPA-U{cDR&9_IhKRG(F`P!w#SpfS8zR=AP{F&fq*$6N9uuEqYM!N3%hew zUi#0ZsTmWXCgnZS=}$k}+g#6+GLvj(a*ganN-fqVrY@r=QVkR8K6gFw|e!r`jRdKSO#dW9&D$2N`xMh0hxWoDmH;Y z%ZcB`6K3gcdliW#I7_0FgL?HBzEZ{OV9|pIm_q_UM~yfF7X;s6B3{m?Z#B3eX=d`g zb#l+*b}1b%hGDb}#%VYt1hqHwiBecGLA~*7!9-W#tHB?u4w5k9yoIBO2l-%`v#?D8J5+u$GPaQ1#>_WD1JN{nj|FeE-|R_TJp z@gB(+T{$&+QNk=6c)cKH3plD2Ow#2s%tfRf1lboflu+`pq_#k0Y)H2S6^+JaH5i|+ zi24AM3GiD4{CXdXJCl922Q_@oGGF!j9c&X78faT)Q8b%=smhLgzje z{5i}Vq{-8E%}eWPlciE?PM}3#y#2Q4yy|eN@~*iRLdF1L_iU9GJ8N%BEr`(FO~FGF zL)k^WOVp^iH_Kouzia>-?s;2kw#i%q{e6n`#m%Owg>ajb`5k0Mdgv{NRTa5POd(Qy zh2Lfh2%&1^Tzbz^NY!UlKNBQ|{j(E}H+i*!he))k#~`V+?QtY+3*`etM|ghQ)7Dg> z5NSHlvosUM@Kkpc6<1MH%{*>mG|p+b#0{)nBZ135PQl%LF%T~?p0h~#>%B4dA)K93 zcvujHpq-3|&0F#8p`b3}1RuoRK8f>f?1s1R9m>bw;aQF$B>4^ZJ@dF-nGHNk&caSO8|>Bcn!Qh? zDE(^o+@DCJ+?$3EZ%1Yf5a()1rp%VEAsM>%^2b5t!D@Z%)*`#qLxFt&7V8N=UY1bA zS13UoCcr>eSfQK0$En?6PS4gl$Ia z!m5!#W+ON;Ou?mwXtYuD7@=3D;$>K2Mm$wg1=HpSoVBnF24A0lQ4hF{BO;wN^K_eE<`lr=eToo6^SS*UaXC&NX~l1 z{OW43Ag?W^Cc!)X11o6RD(6yb`@fp-1-$bZMx$&byAJyS=PKH5D8ABeD-2Jh#eCsO z%=J*~ro$ET+GXk&Ik=th-%;4j5B!n`VJckXD~PchY(Fu6As*tC2p8OF@ko_kqv-$s zx{FpS2KV0)J_#ky)P9I3s0hBAC&tA8z9$quUwBsA-y89i0Qxqv0x;dvHt+80C6LPy z{tt5-UMn+HoZo^b2~=Ip=?q~AZJt#0f!3QT^*+(#^1B00Z*CIws`j0}*=BY2*2cjD zhL@|HEM%TozyEJDZ^-2I{F66F-lspgwRy1dZi)$M_oqSo>ldhU$8LUlukm)zl{#q} zjXK7VKbLYlkN=J6k0^j7aM;C6ZiK03m1b2+B$w9IuNnFqW9MERjXKJR2(s$J_t{+$ z$eU?S#PV`tgu|8F%!g=!Aca%4llh1jcov^@sCMQHc!7`bab86PAX?KxG}hm! zvSLSK1?oCMZu)C2FK|rAc2YIgsFSPNwZr&@VPaX#I7O4phAfF|hm3s&t0m|ku?R*M zo0()cLvv_la}B%ZtY@i(>rw$Mb}@8F05Q?R_CHWH&Ra9?J>Ckg!*0VJ$xLX$T5qT+ zD%!9PM-(a$h&hdz-byK9#)T`qoG#GoN!kum`L)QBsIBD^vk~!_>yPVI&!JyuGUfE) zb@%thk{lhbOvooVzAAJ~ZJQj+{?Y@7)G^{$zI}2z5Pl%&c$08;eu#NI3Pqs$LN3-X#I77>Pi8=-mTgb9PLz;x~;lT*Q zw+xo1fNPVTy{*oS|B&jzzT><;v}N9QXvgD8Tg5?5jXW)#&dp+>F#+nR5y+6=BCwg* zpYadvob%qnGHp3g4&-e>_#U0(8iZ)R%g7QOL1qxUO6Y#h*4sXOQz74QGbjH<;P5w6 z1%qewZh&3S-~=5Y*W~AT(Hib65n}mG{k(R)S_zemP=q||7rY;uGsz5$X3#$DIw72> z+-@J3TTJ;if7mXRucjOi4|v7qqV0kQUy6LcP6OGK48%8lRtXoi#?*1_r?2Ca3WWmp z-CCvjYqvRqNhDK(x7g16wk}ljmWsj%`%XWCXlV+5GH+Z?E8>Y0*rprBp=2@&*vo+A zjE={1qyDxDzwZQsG?$W8c}ygjj^m!w!v1|XhvQ=Jp?Jo$88uIvXt3}yFQ_JGlK6II zoe25TE>yBBL~TY~WfBbBp$}ku2WRgGk;G8#8L7z=fxqR=Vu);>L@cq+;YuOjsBc5X z>LtqsW8WWp7=@lcTLs6(aAJSfp9Npy4-hrSNpFu zyqMr^FFJil)EuM)EA)@on~A|~#f<6m`8EdLy$1_thQjZyoAyo#PR(e_e*T7EcNq8% z?i%d(Yc!;tyW7D62g&I&{I`-!gNo7QfOV(l5Th#jU&lW2Kk`}~1YR)U%-=KCO0#KE zg%eGTv`i<7=iHAgK{z=is{=O@M)XeH>6g5pRTMutpNp6%ErjOocuxnVU*)+nxL!;K zwN1!Bz%YH3e(x6t13Z7Eju|5%S$eKaH1%}uK^NwaIZkCTF0E!l0@9;klW)yI+p6QJ zkPMmE`q0?4m1nuq@Miw5q>##>7V65#tk&Iyy!qBvId}__`J7s*x|v zA7Em}OuT-t?kFt7>s#i}DNiORt?pn}8SjY0_%q#P-^lgT3Z0&^#;XBml1DQ4o$0(- zXOdP{6IODrT&je-k63rj3>YzKCoLIMopS^&HEyS2!u*(HbYl3GWouHJ4bgim3BKho zHlUk&G?M0kxNX{_`&fEQzPyBA-J2lWaz{#?V#5SCCaK958XW`-({voIHZhwaHHTuDAj!c@~wuZJ))u)02tGSy8H>^mb`QIcLn*cllFP79tMe zn@#$x@Oz>bI#cVeE&Hl;7Id7F^>owxdSd-p5A!r#59FmZ20)KwW^Ez?o%z`*^~ZKn zrob=QvKlm#<)k#_RD*d>%?V)hvu%T!u!=coPK+tZBIxDzk1n&Fd@Z7@rcNPGztu@y|DX_NMD*h&S-hFF(U! z^>iYA&&KKc(sj9e7lxBc3GSM*XZ^vzp1s!f3P}Tpq$KBkR49lXp0Aq~m^1GOrg&Kh zDQr`==-55P+X!ElNG9)S{n%UHg|z{59-NV^_$XmruVP6vfNvpeu|P{#wb;|{HnKkZ z&;kntrRU0)|M479D-EOof=VWQw z@&>#~b(hbiNp-jG3EeMaCVl2l!neINpHZwpXvx}~*mr83z{6M7taTr!wNIvn>?Tde zmms@;zl?Hz0#}NChxA3tYv8+lcPSRYj<2b98R?d6` zG)Ym+)Ry(({ll>!Zf+%sUoBYMgQVSAPE(64#a!b7>9sj!)x8gqKD#U2UVJy8DEX5n z(-^?%Ue7Jm00)S#fRgqMDq1Sl=A2BfpX~CVtVe>pC~c|yC)!(wH9td#UmTV7+uff3 zF$XC5xo^B;tdslOc~YrFu~3tvQ^6+zi2>7{!}}*ylU%>3w!0hxSbttIikJ^n=~Ya5 zMmcj^RTpUy>D3)q0jhD}M{>*`Zx?)zt6jxqWAKla6BxFN7 zq6e*X;{F|E7e)WyhwcRwe55Hcs?!K<{e^F_Y&u$;pQap)>)i@kwH%c3a!Y?~lM2a# ztEsD1057^4Q=dzJ{9&unD}feX;@Rca@8#ROOKo8;Lx4RGulnqsL%bC|U`1f}?4`-g z^Yfr*%WXdst{xiDL+(TRo$t}hs15vE=kym8Ssr3c^-ahj0b#(7y*SI51B~u}Zu;)> zKOs0fN$B$3xx=wEwEn!eg3<}h^HE8nxPNEqChluc72PHA5K60p8ql*TPr5{CMaqy+ z4H*>oZupNQ)+4R2!+nlf3#*1h0V>f9Y8MWjdp?9^JhGR!R% zzU3=subXNi>ua2>_aywIHNkMObFqSPj+e(&P9}`X_tfvMAnIu&eSvdSARu{RP#DRn zAsb!7$1Ojem*jMwyy^QfExe-c#ZEi2retRX`z+ewP$#hG6ml!weisaqZZ9}AUZF&S zWZFx|m4r+C?maz%wfFp>mlz(ob~u05;E-nAu;ELy$n}Hyy2;U*_MfVW>e{#lAh|SL ztBdu!dB5*23CiqgZN~63U&W>v&o>n1OAw$n8Mvyai?BA3FIhy}JidlWg>BhX!HB`ugJDGh_s zv>^U4WA9o8;%GP!+J#2hz>G;21k#{liR0c(jHWweE7=|5B0LlO4)Y}3cXtB5R#9<^xr6K`Kt1PEoKgXGZj-q}|v`!T=e~9c|b`skji5 zbMpGv@U()5UY@UYlc&JTtr=055XAz$CmQeC9!HO~rbUmm7qVp1Yz!r%Yx9rE(r)7M z&fkIv_UAd06O4wOaGJZ$dir4aRh49BZN9#2^Qs0C16$R2e)MDaWp8to-FuL?j#?zh zNk`+I*^?c;M*;2E%bAq8w4$}%QT!v78#>Q`7g1W7wfSNujwiy}*k(6$UI9B#CSR-0 z|0q3<>S3KIpi1?m%o_kfak!894@tlUy^Yqm;2(QUbjs%b4_3H6(UbLKHBsNLIy1oTI(m^M4c-dx;Inbz2lmCR$Mx9| zXoPf-Ik`@B>_-cFaZ_=9r9Ycb)F}bt-hIrkf0w|HlYT?MdjC)yit31~?%n_e$0*F( znk9$6^K!vFi`LUi-z=kDSkOzAMwV0cm*YiAk5EE=`;RCBARe?o)io+gaKRLrMdCyw z)i>^6zB#|WV9A6nmLtSTMfbo>BPhMgrD^d6ZCXfxj2>(ECh$>mxZlFmwnFz$233Rl zknZgR&M%@q-FAMGrW35>MI6yaQ-Q(*gCVNnl)FddEnjr`?yu;PYb0x8L_nZP*Ab~U zbL42G8sUhO3m9YZrM9v}@o*RHE!&KE#EQ}*cEb9+t%j&|vh8{6YoRZnYN1Atuw4rA z!Ey_|zue`V!4t(gX`MzVkfhY29u`hr-XFa1t`N_ZQ~3VVN^Ue@b;Ny8P&9nx83kKu zab-9rSb}^lqV2rxje6tx!^dy8A$RnQo`plL+EC&C8>g02Hdh)m*K2}_xphZFO{nnu zNyw7Wbtzqli$I-WNm!Fxd{8_$a%9SY0$_~5G&g~O3%0}KM5|VVK{8^xd!w@}|3RB} zz%00fsNm0qaBLA^oM46*asetSdo zo=QiaEyor%CWVq30z;f`+a8`0CUKruC-p!t@L07r3v= zZ~t2NG{7q^hn_<@8eZ9@xTdUu&5c&*^7j;-9=S7h+)1|dvz@1*6ZErP&l^UigLCrZ z9}WuE1d4-mx^yHzE&7^3KUvNzVCj`SVQUqRQc4Si4=o-dGCT zJ?HY(DLbl-2Hw%n19wGM+3rf0P+{><~s7@TWkbM!Ft&4UH z&Az);JbhfcLA4?2w(xwK<{g~9gYy&bu$l4N82`j_%`H?ncFs{$z79T-2aG9GIz?QhSqA61J|acTKkGexCkTq%Mkm z+k0pm-Yr?s_?cR6pJ}CgkKb! z8p)-KuQj;h)2Hv`i7XJm&ODYHjJn=%{f$fopn#Mt%2u};79qB?g+mLyKle1II6)h( zSA-=r7zwY=E)6*+Z=Qbr_TRatVaL?w_@eIg&DeW3w4@=0?;8e#0KSf4I``=0_N&`k zKQ?NH6n=CxHF9;AqL7OI6iX<~fbef4v4i*G#a7C9xuNV1TSbzWEuzR>>T06`cDN1X zQF*tVJv(_!x&iiI`l61X>dxJL5OhkTt#Qvza8^MzJ~->I4GCB=zov4X7OvgPx`ZqqKPE2w$fHt0gqFtJu(v7?`WNVKVgpq&ova~} zJ>PzsA^n&9mm~Ja0#yjd!d(Qg^u@e}TC#yQ((9sHvW_2*0>Yb(L}_il!=%QVUE?3` zd6qVi+S{>sQ2I^$mGq|$hbn;Gx3;|IkGZFZpCWnOo5yc8{hDpMn{^E7FXnF`T08b` z09mh@A0n-wwhAIUd(jLn@e$NhuhNe2DF*)drMS$=ZPN_K=CXZ%pP-LK81R8%RO@GI5tRpm;A1FEeBMbE~GUq3yi5x*Ab#ZQ0I=&colnGKFRG#7RXI0a$=vbn9aXc(|l@h z+oopGwEz$Mw9x&}L0?&kcV?A0F1`DEcgaAH&279A^^EQL>r{A7iaXw*7Ut3IKU;U> zN~s|h8uBU@NW|VaH4-5fE4qI@-H$gOLUjp*PYafWl}`%iN=HuJ02(*kxC_-qHQW(e zO-7s{b^mPnq<@f)4SS`(r#m!P+KBGfGW)iS!!h?IMC(|_yV<;O=Mo50c@qfe5StRMXV!GXk8*4H)Rc}M z4bpVwkNvXX6zL*O=96=1zkQlP;MKN(44LWp!f0&3oUYT@DJLXBU+8+WLdKG4po1ig z=$Mc`sdWCu$MvK+T`dcf;BMFDdQg;-?sxfDCWXI=kzsrXnm{!$u0{L(Dr1URdLva1 zmnhTK4j=R;>l}*rEi)q)bbsH=QHbP!arp7Bc;>`c%Ask|o{~EthTcjbZB9K)1idEKr}0qP{{__P7(qKnpfM_lU4tRgNg^9Fc&$nQ(b%suy=pQYK) z9Dj_l+Y(BW&`5S!#J~Isna;2RhTbNnbJ}naKXIWiE+=~UnZ;nQZk%2+e9QYgy1?jT z!Wd8Gb^@?Hd-H~q_EEJ?R|9}3P$n6;gCe2!2ue$7EH)4>w1B|V3MXao&G)ZSPknauzZAsVmTSTJ z$6VC9oAvb3ULPFTi_vNR|1=0JOsl@8OPNaH5c+C|b?98n{$Y(Zq13Ug^{u1btx^{C$zNQLv1;-hB+m2)K z^NfGSz{z>T@UJbxewJ>A@79e`j23nf4ZjChYw)II4zKqvlh1Ba;z}OL`t6svf$U|e zasMdN!FTe-dcxICfRC${oSq_5_)?6X4yCnhuGSi&^O5dT4PfsPbVy-u)iU@j_4dN& z!(JgX-RwhDrYhq*h53;gw2V0r3k<0QA;Ww;DYHM!z=mY#)}(+)4TV z;rudOf(=Y~8V>I>F~0)o={0GdJPHp_x$bvlux*%WM*5(~R5h*Kt0;o5NnyI$B#)0Y z*JTEX(apLt{e2ihQJSkM)I?)WtcOhgQJ%J-F&mS<$8kFUQ{cxxRb>;3eHcy zCn+lQ{5mRK&7b_6@^t^FxA5ziE`{e1KTRNP7F&=O{;7kwbs;wBm?s%m_d)RPBb=|Sr zjONU=8UuXruuigWD$Y?+q1pgTylSf$cUNJ-I|!cHXEs?#^dDU}VTd+bb-LMeft-vT zJ(f8MSwuZDxknMA>m6CEsU`uuu%%#-tBCdbS$M)A@YI_xe6R)Z9v>szuZH>Slhba;uT5P$-q3C&#iPRW4Zq}}E{tiw88CKDPy=WFE{}$$gv%jLzLl-?J`Jl{Pgs8qRMeUCA& zWa+;<_UW<0vCwpOLcxA;zwLrm&tnXB7~GSeO}Goz`2um^Lsz8c23C6S*~BO_+`c!@ z3`V#hXL2i$Gb~@{=G}i7z_lh9LF*Up)@wv5r=q_|rqw6@e;PG~irPowE#5oDw9 zyAPIE?F}tZa`_s|b#DDDVIOM_~Mr zd#SfKJ9nFQ(iQIOUXcgBYi#3{dkXSS_@-g@VcBcfQciy9O5Ltcpo$FF^anNy8ea+LSoA?G#WjWwM&B)4~gUoUy>Wc1j4^}e3~6Iw?4t&*4{AuaR0-5Q|SG|Px3dJt^j9%OXdy7>y9q? zn|PPrn*8eSRk>A%yZ@EcX*;8wq1T}|h)$3j*qh4Z(Gz-Oqt)x>>otNa=GRrrGp^&E z@vb^fnl;_4Usunr&aFzU`fVG3b$;^xK=b^&iU1}4->0OtGCYAetR#yy%=(~_dWT8(g&=d zVo5jZX&f>xJMQ&e#DS|{FkaeW&jY_N!N$J1R`$EP9jx(xcMIpFRBb#q$`Fp#trkV9 zP06RQUq23OoTY+m&=vzF(0gwET#o^mWVGObOA5pBrm;PVIZnUE_(<3JI_rus1F@^L z*Nh*kXvSz2>0H?gZXtFQQ`nYw9!x*MAhRT*cK$?#!%qO?>bJkT4t6sn@wKs@Cc*R+8bzuIw5FY47K$Q76 zec9SvpNTS+iM~U4C=UUk^Nb}E0%tN@4TPr~+v?Ongs3!~jQ~pCOXE^`xtk5|#^L<{#cBUfy?GiLN9uj#76

%U>U`a##rGE+D)*ZhV)o@ z_etj&cI_zbNsj$Q-|DN?iM!Qt4RJMbRVFs=jp~6I{~gU#w#YI##1JGCp0I5 z#)Brv6Iaf^!JI!0Q=KG5?Z5dA%Q1?J!v2}?8hws88-r7wHFI>`#?Evu6T8{4wMpZ-F-b(OWQ{<64%2baHS{zSHw?X| z-;T|UFKDtIWndbY0*g`p7jLnpJm!ZX9!vV||F4vD4@)Xr|2R{pY^

)nuK#Ow+|i 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 D=>Rc5 literal 3068313 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

qo#{U@9&NgB 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

gXMYj^2Hf>RtCdV0H?0n}1K> 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 z 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�&5g_GZW>tv2gr} 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

+_@N}R!-_HTY{Ly484CQk z7Pv72JZ&0qhw+r>0e=`zc|Y*yTJW=zz@HJr`M$Dg9`I*B@W*b7_YMcnxq)--*&<+H zhk8Z|--#o_2idaalr_e?+R8JKp7Y)Pk$TIAea&yKn&sf#$MG%m5B(fvev98p z%w^&)bdL$}IEDVs_-SJOAT7~5F+um-l&pJhPS-t?20$MhP~5tFz_g~Da&*tD1MX_N z`6}JBXFx^Mq&(d-VVDkms=%!d9kAxdwV0X;$9$EdzKUerB4@JRM0|J;(+r_q;J@p~Yq$aQmik&AV_ zBORKTj-ifGdIdv@5#eJTMMtuobr`h1=JfEOU z#9R`?pcAYz&UPj<_crK={TE6nSPdHT6=d&+7gw}C4_dMYw8RHm@&d{~9owT9tZ^v4 zz?Y)*f){A33Yf-2Cl~>p-~?b0GT$&CFeulcPM$Ea=wl7z9H*d)+t&4*b(v&L)ORdyU6;))xNSmW&G0{>X7$Nk)qiNu&z~d6=s-@Qn z-!SxR_(;N96ukR{v{uzFsi0Ep{$gc~%>Cx59DaO6hExXG9una$$e-O{M2>p-C@Z&w^ zxQzPy7&w z&%U)v?rSVHMOHtvdzIYJ;C_VM(=a*Yo(9*NA3G7Pp=P?w$nhCIE&Bz+KKiZ8dxg<~4KP@|UE~9K0l9=2c59GrvaN zM^Nvls8iO5Z%z4I?aYPAIH6b^ilE0f`weuCSy%2|H|++qvW5EU&sEE zOJmg2u8uLKL$=V2p+huCu@#sLz`9Id z0Qt|>h`Plg+Jz+h&$v|m%nOh_Pz0>Yu3SH3Z2ft%inSFUD`-(^XFqY3FyXifJ!6je4rBh^_Z>6pdVaEsBNjg9A7IQ^id)0jyJyT1{s8nL+E$iZL=EHr zy%8(Q?)a%T^DdEE`cJG)6(dI4h#EOWlR+zz{J%40dE0_PBZf?xzbD72dVeSwvI9(! z@oT>Z-esFb&GEl&&YS|ge99&YO6uu@v2^V`P2@Y4C|?ZPx_^nbzCwNROZBxUqX*=V zL_fZ!e>HTHiiK5j4_TXbU45>_?lt{XU(3DHRS}{f2lVIA!Up+%!nB0?3EMnY{m27`trhJ^CgS%rexI1E)sQR8vb8u#%SFx{xmUl;EXs0n zW;<`jRbQyifyZmH?FWCoIkQ$1ZqXS%W&q~zyY}TK_Jw}jvOO{V?MrEoms+RZP>zX(Gt9~OeXKUn#p?v?;}LK{VMRQ ztL8u2Og|dt==hPad0(?ddZ`zE1~@+pJg8mxNPB-JM9Wo>k5@#H zCtBM-1^njV{|YU_P1`uaGU8(N80wP87gjd^#bmL+`H%c&>hgbvEc(oX5zPwzknd0r z;m@3$r5A!_@uqnDC#Lx7;{ndWO@Qx2zZS+hkgg>8V{KyH!BkPm+y-XgHT_TTLY=h>f6}qVqS~;U^K3`M>L;8vi_F`!ljn7n z(W;HV3|2W44n>I_2Mxa&;=&rV(e?#&C%lJkSjE&%A{vwZxHIP!hoVHcWF@*05 zNXJm7Eh1seWFhwFEZ#GYaaOsHkg}5f)|4;dU=cVwg#L`R;|`|Pjyt+XEVv~OZT+ms zV?kSO%ZohwG_fDLSL5Lkdcbw|mH^Mhio41oTWtPEF?~KU=h;?qYL1NYqWNpZ_>VU- zzY1VnO#jGhX!|De+g>;F4WWO@=pXaHVP19?8UFuAXvc`(dyfOpi!leZdk?Fl1K$H~ z+jD<)olp7PihRmvzki%@op#B1V;oD{a?QiBFy2mywRVQpp)arv7ao`9V4mp(Y!WDOZSfbZI=u@VL2qd->w3`c7v-_6}-||7!hWF08#$ zSGc#MCr{6GthH%abGKnVPHpU}rf;kAKX|?vdc#EXfsS%3-rG>ljx`wrx@ea9e*LJc zm@&YY?HLDL?2akOx$`d{&@tCuJ7au=s2L3$J$B#$gD`!J-IBm*b$DV1#)&hM0cf9mn^*@y%c1XIvOwO^7ak#j) z>LCwgU~T;nFh(5#Fu1^lur;=2;lhqx247rhzLY0weR$$Em%u%>8}3IeV%^?nbr1az z_JWtNznsT3@-`{!B>BGtF3_fnYpL!s>v`8@*7M-_{@3BENVN|CCYYa*epqR;Prewj zj4$VJV)5BN8 z%db~-VohH<@o9~u6Wc>{BJdsP1jn#9LKL2k?&h)GxkNt#e+lDd`}^>+{e5}a-ah_G z-;N#stkC2gnvG}z~I*?pAta~*Y?*#CBiSa;f(&+jX@ zj?3*Mx4x?6*79iZ!z@E?jTB|fHF6K-)_WFo(}2m}fd*Wi+lL0A{=;j9k2D}SM6?`2 zJ8grDJPpyn@gcaziNYLB+D^Avv~)LZw<)W-qJ_h1VGOc?QmzF8JI0$K*LFg#g?z*^ z4H4;-XSYjvc4C-3JCX8ivj6l@$g?91c{U63>=DR&cC`N=MV>qx+TT-Ttg)LLX@}K! zja5eVzs7b%_rJzQG9HaZ#cNo$u(IQ4zzxcBtW`L3*76tKf7xqpNH}$k{`6$ z$%8~bV`NpKUQ05*d#1=U8FazAvdCk_)%GX7MdlBEMw2lCOVK~;-CB!vR*{UkYMrIE zuHdG{;Tzixphbz zj+(+_Fw6w~m;pL69rR=xXwGeoU5}&xX5}B*ax>$yU0Fs5(VP&yp=_WfiZLZvFS;Rb zb3Uu%m5e=RrQE9voF^?bWPoz5n+^Qf=29^*x#yZ<)fszb!9LA0hI{4A zX{gRZEq-%O*G7KJJr|Z~6qYeoBQB8qMp#CN>XLLaR&SyG#8HtmrYfwSFR~@Qbd$!h zOrw}L+5#GF(oA-PhPu@_QvAM>VZLhWTVDMzn^UM%SU_5M(4kSY-IlyxrB9`G3wZx`u${*w{9YRh&a$y z9*;5!DC+=SfII@doO*XdFS;`$W&$aA)_C zC5|XrVoD_NeTXQeZuWiUla#)7PE>V{L7h1fqJVU~$=ZV_4VEj@@Q=0dy!8F!$(8a+ zu-=>~W&3(9`-HWm#+mJY4?2Q~lDd_WL6$2SB$+bEa$`?z6y|Y^A%kQ?1~F?39)k|r z7Cph!KpDh5L9Wwt(UTevkH2)Cwp~UB8I85F%fQXO#yZ^#{4Bg2{~M|Y+R*P{(A=0j zOZaA{ik%-_MketL{QprV8Qde2>o5H z5CNeyX1FLfZ#b5fXTc-`(Gs)L&6d%q(6LR7(y)_cwhOb`x&^N6dRDwtlH8GU%a-}n1op7(j5=Xsy^?vOd>a(&f<%r!jj zut|u%ElNcq(YHsNWbhBON&X&u<*$LJf;7{VUO23UPrW2!mY_xr~jgXA$sXSqBv-!bOsDwob_G<_KwxyPprM_~J+Qvu6)*KR@(>5^Y8>?`Nkt&ksHH%*}qb?hg9dSp!`9 z*-rCA=r2q2L+R*aH^}otr#!m%r>}T2Kbj{>ahfNJljn)#e)VeSd7{2I=ZONOd7>*W z^F;rl;qyc-j(MWh?LEvBMJnC5X^T|uZO^_g{p#PLoZM^ z&;4C@{2ArMpI7c+4(S8O9MV=NU3tJsS8jFbS8jFFuRQQK^eb=CMJ{tlKN-A!=p51w z6JLAgx~{^xe@pT#%^US)oj=x=eJ0dJUX@&4-%!Ao?ak$t<|ZsZU~ZyG!{;UjImzw6 zg}RQBJLEP5x}izI=O##gqGk;$m(CVnQqbYdpVX(a%yaNGg&{sBzINs10=ciX2;rT^ zVSh6GAlVuv?5D@4z2$M4zI12)O@qrUU4^yBGWlI!)Sh8NW< z$qQ_?V(Rxa_uUX;@B0+cUimP`x-4P9Z%CA2~viKJ4u$5eH`;&WiP^RQAuZH6~C?Hx~*IP)Pu#A_v8K3(I|5O%3Rwe*2&{d2f`Oc zkv@%a)|GKZTvvu`?o3xkAw2c<%a(IJybO3Q4>8tLT)Qn}A1fkzW*A-7z8}KB zwwxsf-a-F*g~0pQbSC1e zH(4HC^S{4`{Ox1OcOr}L1$URl&z)t_a;q%n%>7}qIDYOAlf`@H{xDe_IrpD0i|*FQ zw9DtP(z%bcKPpebw$%C2S_xjaPkFLV4c(sxx)2RK*@lNQ=*%;ey9l(m?KW78<_{~+ z4m2hZKJyFbC2SGJII>Z#z;&K<_pjct1m#|&X0?$5i?z7aFWu!5kNPElU%5|(dfm#$ z|A%%P)2IFv_0|4bcx~+>)KLKXVfVP9DTQ0{H_(*QuHZJs&9e{49(0-~=yvwOm)*`j z2(a4}w>kSD;Ffs;mvJelvk!QBiy%KGzhE^#HM~lEsE^KKZdqTXr2bU*{g^Z_P$Qq$ z-XifIvz?OfJ87mnF3~4RD(CxF2BGhMTv|)R&s{tQeVBrNQnON$x4LYpZv%Y|{ZU2p z8S93YOXncI$P$;|$8}PGn%^Bn{Nc<;v^L*9mox#qbd#RYLx(}1ynhfqDcuGor)MuW zYy&+GwUU#5J3K{45Lg{`Ly{+2$&JgLYC&xZV)Rkmg-cB|s4ZD1t z6~(@zK;w?w9W}S^xn;Iz&`vCdexNmY!A}e;Z%K}~(w(7SdN4oFqQZog&=H3D!qnVl ztoU;eHnjlwAg=>OT<`GM_Y)71!ErL!u_q$!`Wv~K|GnqvR z6qeFgpbSHh|I2D);>5!F2_qtcDwvu8HOiz`eOkG#46-QC3Az)@#7+kzRD>w`Wl@$}tzT_zkn<3`c!r`01>}K#M`3 zMI>l3540eCogT*G;((7~7n_R07c}3N(r=EJ)C*_5Ni8SX{wSV-)S@ULL{Bv~T(}@E?Y>q%p2< zv}lV5O16s*X|YhG<>NlB$o`JB9vQ^b@|4aC&|38_b^Dne*O^0arhk4c((iYh^n)Gg z@7CLKWieiI9-dBl6cPU*4?Dl@?j`dZWUD8Bd%agje6_Twg`MdJhsn|#kFS6ODL(MvuasP^L3H#0Swp~C=}-*zn!lM#o@lpoGFLT z^ks3U5uWfl)|;7EBCl59SF(jk;VB*36F_|53O;TJUPZuxXjC$U?jEuD*IX6N3uv66 zH;YZW1l~kCNlyvICeY{7vjbxaNe656G5kzTewM|1jNfGv@7*zm%GZMOX^RRHsv+|Q zKm$GSv1n+22ypRY-EgtWxO}O(GhAS6-o)h--~t_MC_w&&kf$0oi<_%3))OCP z(!FqJmmVHgSd>r_$clH-UF&|HRs&=|QwWKnJ-4Sai4VEHvyn}73iMXm)7Kh)=ccT$ zDQ;6%)P){(KsINAjK^tZyg@5?dPN~JLo%d_e$-v z7T5pn@KiSChUBllT-%sIHEk4grxg{>MEGfQm^p|Bg( zTptaidlx}B(nsK18mCOO>m-t||DpIOuU^OVjFihPK;Kb$KA}C0X`y!|&nezAaPQF7bP1r1K-Fe*l{+Zk>m*el2iVeDAfj4GI<~-H8|lJ@G`Sd>>+8 z+vGHU4oD+kCtttL1GX#rmwFalv>SY@^c1g-jjRx3a&mE69Uq0hiT zD|huLDisI2o>0_WeM|{I6~3tv#sj!(fV)tB>{V6+yR0)*W$e5v%|i(WqECS$$P4-S zwdjrYAt{m8$$}+^{7X=m4=HulvOs2jQt0EAt~4gDoi^I4hc0S>eCg*4#dM!yhQ^o} zxr-gt4`Ju4`$%W2NNe1i{h4&%A+-nE=X&?o3Q=AeS#uM#&?&T@eHh}DM6vUOq2EY{ z?DC^_$kT8dwEPryxpd|i;-B#_CT?btW4;mTyj&JT@58U%9e>)>SU(MT5l$4xAd0cl z_ncwYRgk-M*gM`g`o^C{+x#A6^W5CW6ISUI)3ky&?YWzJL|$Wm#=jSZuU{pvv8Q_! ztb&&pmA{70kEZ;)?jA#YB9(0bD;A{nX(2YP-k6|A+e~+z(*09(W*enJcQi!;v{?lS zk)G(wBFrq5lg`L*(X;w~;1Sq20ThSMwxxa$(UtBlBf7%YG$%^&mn2BvA@^66!8R~U zeZ7Xo#v+|-%6^7RDEB3l^Dd$l=+Q@}2l-D|@w;YE zxA;qEk#;il!HM2ULcby!Yb1ZBroF8p(*Dj6;_Gu_Y$NF*(DKyW!h|H5ey9AkR!Tcc zrXRI`k%HDsF9a4v(fP=rU*xsB$IzJZbOo!WJN_!suI4Jyu0l_)=o4Z+4L#ioK6w~r zHlSUF?x=^p=v)upkD#)789V7-ieT8zKV#BeCAOKwyIv@x{4E6E9-#a+{Cx%b4+Wkq zj`CZF{Pf6A0lqEk6Ko~BQEK~Xy)W|fl-qGD@{5z(jib`OUVe|=b?D~xNaHHqkEW+H zR<%XRpdXDl)j%)JrMjAWuVfPhAuZ^j&Xq_@BiSi@+?DUK4Yr-W!Ow0w2E2uocq{)F zXd4CHLwGl!KPTxG6|K`Tc4jI2WKkXIrjC~CahQ(PQ(m;bk=hj<)vds2zp~W!9+k&g z2=C8s@Nyp4i8%OWcyJ*Ex@b4Q~P0W zGk#9(G<~Og@0{A6Ftj~hGVdtd*g^B;c#Vwrzg+vrloo|Q?lkr$AYHn@htB_^a4+2u zZ@ceXYLg&ue1DFBdK=&mn+$p&81@eBZ;|eRo=W-|{6+nrtx?T!-R_Nk4Z5Rnkg0~k zdkTS8#~u}Fe~)1f`rH=uCFt(>Lg^eJ&c9)T*17v2~d6mY{JbAh7^H^{H zyr9E%FY^_IqdcAW#57BGeIHvU@?!%W`Puix^tw%)afp-G-w|i!q+jOP-rFqgqml4K z9K!FAJ&iy|8g@HlIMOiobEL6v_^KS6w#FT|{g1%c9oy+fxXkt8dmKp~o8|NNCyC_z()`X0ceLs4pv?@8CFc!S z`e<&Y4|I0S&!OjE&$-9iNNt+>$I<8Y9_W(@Tr4^FTJ7}l0Dat*^~F1+@8uh=^bK)K z--nf2uM#Eb+bNoN^+4Z3fsfhWLSK2z{&r^+xI2f9#+l3fjY|xSwPh~rBaIR1{ETZd z3JVjYd)Ia7BSRkO-tsEwsU-BNmZ4wKlf0XVCVg+!5w7xHhjQE3PtacY6$Zy%_}5TZ zjan`3RR~De+UHyXY(4>9YYA8Bu3wFIOtMoNHCjg+CM{2+z*{?p`oRS+f=BvDZ3K;9 zuco|U6vS?e@$v1=&bX?7g=H%`s+0AZ1!cf)$)Gq^xo2X z!`1fnhSe_nv44+u$9lt?VeYXt}1H2$(2`D(|pKIy8Cc+#oqz#o0L zo4Br&ai#e+3a3?e#FPC-@d|+N3gA0PPc!qW!x2p zN+zwZi6h-bwty7>hB(H)U)J?}Il`^F+dg<+kCF0z>4KHuW%L`LLSHb?!!pj@`E<8C zE0bi6@a6s3Km*C*rwZsUol_g=N#_vuu@wRLJn!yu|9}eiF6cZ4a(~H_-)~KOb>4uk z4QYBYr%MwWvwrU4gpwzPVmfQH#L9{-5X1*s;ia0M8pT zX>L>mdIr`EY&Y>OWTYqj8DC64kUQb!dz?on3}+Gx2R6 zXiMK$T~d@&nDrS&30~Ar;ClwX)A@0cv@cQ!Ebm|VYy!tUkmKIV1@~SY_fX(Y=K;CX z^LD>r4eh%LYNc;=9_%1}r~Ns~%c9ve-k2WrtoQ&J*aVGHFhLN#l1)3Yt%+S;c;i<0Hk zFVY(p!Iq#k%y%?DOXWj(>D(`Oavmk0l|phZ&Ep`SLRr>fZ@=5CxyYG38`3Ub@( zcFjV7yk=pALL1-9WzE7Af9OMnw9f11ngyDJYM0k6oN`*TK<#H>FJpbX!0J{Zj1Ic> zl$Rr|(MXHNHQO1hE2T9<2wNzxT?iBcz1n-DuMXON?f1)^1aap=?aRi_NLsT7dnHK- zE~4|9>8$B8QLLjrRuKBB@iY%PlFR< zptZSn+p4c^REM~hX<4kDHyb^rdBW9sJ@962x4SQcq}B;sqL$ zcBlXB^Y+zF`!(vE_V-o0?AO@VZ9hqX+j{yT^W)v|zjfaJr-T>H+dJb^>$LC26`wjc zdz4-A`M$NVdBEpw7kmVHEv&PS3uF2(Z&^!_qB_|1gcsUBZ}3Vl`1{~{Z`8eS&2^>o zenTdWgU~)?=dq6hwKVpzI%;Zsx3Q0?n|tcG?hTUm)bTY3(!RPrtn+eTc@IKw%eYg| zvn6j{qr2@*iPa%Aj%G@%k@mkP*BsTm*;g0jeh)%yu=_m-b#7$6x*v;uym!~yoo>EG z_M`J;Sj@i%cCG!ro9~Um{Jfdh@cp;=z5@MWI=}6*+T!0A;Z7@cwyZ#7LWk1yekb}? z4-1wYnitHVI}u=q(3+@ICl&9nc%%8kFw`rZoAze~ouj8~4OfDuN@JpZj`JA&bH7FZ zjofCwj$K+OFTid_n$7ZBDUMrTPkt7T>HWun8`;2_bWhfE{nyjnwAMt^>nwoATBW%V z;6Tr1z{8+p{&XJ7Y3RWF7(b)EAL%=Up>f_T&<&Xva}zRvSJVLJpEQIOpF&?3_Pn$v z*9+y20#2U5BS|W&m!}X|_SaLsEH(?cJc=|)cUK^6g__nv1=wDMep4)B{!#LHPr9HT zLu0|zpU#u_fCy^oF3G9X$D=i9-U17F9p7nO?JJt+jlH&3M7#7GZ}h2PV>h8)^1YAG z5oyr}`@{ouq<-)~W~McY)OVnBZ8LYpm+$km`0w|y_@70+(U?;%`p4{=Xr^<6!Zgs? zu%AAc`y0(EbPfjZHIx`?p#z3h*_jyodpON%DSH!^>m*5y)SF|-j`eURnEI0w}I4NNOL0KZ7ujj2fwqD z-@q8XyzcrG-d*Je{;}mgynQWkS*QKq()q0{<^uXtZLo2kV06|ri9wMG%#nB31ujSAg-}(7^ zeFt8qzNt7sD5m#E$p63DRI0b{{!N&Az>m^fkU;S%PH+F-H{(#+^nOd6Ku4U7a-25A znF5>fey4bpUK`@Ah7CIf{%sUj$71ygMe%1ygTCA8LFX#zZ|I9*pO}4q;W6#JQXlgd zbqKx@KPn8g2G;)<-qX%0`^DsV_Kz{DnBRE~i}4xhG1@<4P{IX-Z^kzvh>gxsD7<_! z!V=ohpP{*q)tQec=obpb0`$vguuCkUn{SygRX>Rpmt7RiQ1 zUz=v2QTl` zw7v{{RoXs5k{{9)bQi?Cxm|@*&FUKne-G0AEY|&g0NBuNY|&liJMo=t zBa7R0aD8m{HI*;qO5twWC|cG3f=$48-c!4z0!V|t|tV@zM{t6z8G3# z4tdE8y{9A41WIBTOkw=1oufSyJhU7Qj~clibysDD6b6Seea^#dfEwU6x` zd2Yxittsha+kkfi-DjR-ux2u}Cuq-FdK;yCq6MM9*Vm%Bw#uKcWe@TTu{QdLTJ=oZ z+5}sK=G&N>bw&xHF*Mg^kosZ+V?duon%gbNNwj_goPuFT_f<=Gq{M9S;%9v}=G-fd z>*`@&)4sMAWq(7XzgC{VmCo+9*+xruo5U7q`26iBPV={)xS7B0FX+5Vl%Yj~uZw2V z8A}nbF=wn*H^7*%5(37~u0d z@S*%RA{^Bhtwo{vV(rxUZgYi%x14Vr@dE0qg2E3|24?BNQ#4=eeK6iibGB6H_Bq=X zYU0CwhV@7z5_Mh%zq0R^9xj+$kYFFLF90oF$LkA0?>CfMuOy|eX!dvf>_12Usr&w* ztB)n44K&@{C*<~wY@|nf4C!tv*nu&N4nP~uNd zd3>Z5JWb(~ZsHtt3(k!S>5OAP>ZkX*PG{+Mx8*PP9@ugHS>OdbWf`p*Tonb}RJJEU}Sw zj7k4a!hi($8C6^z$wI7pwn<{fpIZ_Afg2ap?_qz1=?fPc`=XrM}qRsLwpI zHBpx|mczU(IXU<8_1TM1j|wj?|1{@*ob(oruPJz)wol$&-4iWtC|Je60zJeO+P8V@ znca@_HC57CrPBUQ4WoTe74e~bpF~st?t6e;&vOpc8appBR!8Rtl!fr|x1aTr#@=j! zA-s=C@za&scze8N*iU`EjrE_5y0+FxYfjJ)>8s{vR-U;Bb>+`GtCVz(WuP?n^$hCd z5r1RnQ@bgQbQid7{zY-E5%exdmiFSuwxe!eqA_0~Y>ZZ(BZ>hYbeGX@kq_t=cLKHw zHi?o+!rsC*l;$k=96t(>uw#!Lfr4nEUrrLmg>RXy<8HoUtTyE*Vf#%?TXK6XR>&61%^vfGHq3X+9H zBlx3^=rWMf*V=SUyD#c`>fyp)2~nP~L#R(U_W)u*oxc&5xQEWW*Fqop8|%GP#`<}n zBibUrEWyjGD2Uas@?^1dfn(;9!tI%K4sGGw1d5k|^1(Kkszo~q-JaN}iH@iH`{<6O zvA6I&FQ0|xs=|hrM?ltzX6Rd;r?u0u>J1@G$N1fa3V!Y?r4>o{-UA1^v!+p=Kiulw zC5_SEPvb(s09-!u9HTO~d2O*!cVr{c@9&CW^6W}7* zc;&2EK>gGGGkiY@=MRON`pJ6RdzZ+bK%J|l^Al@{uD=0&2~Uzw`<{tq(mLe;gX`Jw zkZ-BIrSNk>ql<`3a?mJ`tuH{iXrA+IG}<-D!6AI7ax5jOOl0GOE}eE>tZ>nJx8ud%cRP>9JulvFe%L;a*y2{_Io18Tq2)yPO`~}I+w1%_ z+B-%%NJlhe=czvx0G_bX`d)<9=5rfP7b?|vy}?gQ=N~7|Wzq3uL!b{<@1-@?dj}Zn zX^ogC-ixHR*t^IJyuBPe;T2)*ocrM1?KjtBga5tqSmN9An(SQIf04j>mWuCtAl-~I zN^P(_eJ!Sj{EqMuK5 zxncY~nsi^_DxI~bFhmIn(%9%5;D^`zrF^YneFCL% z(&>X(Y}q4xZ3*qIA(}z|n`w+I5@ASB=!`Va7_yMD6_tJ1t^Qj0(^z1QeC7n5H!;^u zIEpWwn;nRL{Xnw+``9d3#kJ?<@lAVp>CP1zuj%J8O%MXDGzWPK?ZiXAU29J;>3+oe zov`T(L(%7h?u$g5O7UqBX#z)k zdJ5qAo}8XGh@ZDqBb|HW{=B7@9?o2h^>jbxO#3G2>?5Mh3fe=X9#&4W8ZMMo(i-|@ zgZMYsvq6?TERXs5@o`<#_w2Eq|FC4&2fT{BMl1Oq)96v$rbqu{&5<9;htmK-`0 z}l4&kYuXdO2{FHmdHcfby!^|XEY9lNwXrCFXAi=wji zrSb0|t8`|JEI+ij@p+VKIcS~ywV}MJw?2mI`f0h2>1-o!SuU8=w=#B0Vb2)Km0C7c zrKYooS@~Q!e1Y1*6Bm2niRvEC@xG|w`y;9B1u{<*$me+5$F-@hZ#>j}zq393q8?~< z0pYov@G)Nd*;_46XY#l^W3qD^zmw5^#$+(sL4GEabiZ9^PxIeoJ6{6bYkiVCT-!&Q zOKbQCwU4gnwYh5_7X{tgX8+T1Lj0#;&%5IFd#7_#T=Cl8?c5aicy&KFCE&K_rntlF z$S+vUqM<)MdXWuY;>qeuU?0Qn+zCA0&0o7;`^ao`?g5>DKzndbEBhGYrjE8M9vr>> zH?U91WW8Tv0Cw!4ap9iD19~Z^7 z)j4CVIujq0d7joy1a=>f`2_u@7KPReeLO!=p_BHw(0V?~rxE$kJRIfIjP&hk|HYoJ z;FPZV)^w>4M`=dg5Y6t^rMZql(V983LCDUhJFy$(^%0~q10P(po!ZWev`!fHRda6X zVO=2~x1@b@TE9T668zBYG!_iKxYe#hX?$sj)7ok0^{jQ5#kKC%v#wOx*RysXqdEmU zU+1SI8!k~hHP-5BVh1VTB-khEXcu*|UUtSK473@ni^L&D+Xn zx6uC9LePWGCTxCQy=5Qtar5(OTl&%-=h?!+jY`EqS{JkP$UQZ6&-dTHGbMEK&OQA* z-d2v?vMk}++G^#@?c&_X1WJe2I4~i=I`-~sYs+?rN$WBjZ#hr#0hIrK&|!K_SFX7R zbdhxYhLP9Sx{eub9N`!<>LrgEeHib4%;{d4elvxdbSJ;wW$t#_l(_N5~6ik{lR(y?^b=|vg?D)ET2 zOh#XKjIlo6gT=;sv)ChsXlYOGk%4@UqTodnt>lA)uylz1?f zR>*t|>Si&*N_V{U?Qacx#n{2r(D6pt+Zq^hl71Jhbu=Y*(mg7XESAR2LCXNG zURsZ2;Iv>8ElN;N>14y*E%)_Dk!%H_ub%~8$pp`2fOpctLlbJco){0_<@O2j--s+} zZJFVSzqYucA2SDqusAArn3B)8!S<_ffIT`Fbjl3uZ_NY^vXFO?Ffb+yc~cpv-N{lj z|6Da&I5%)Z$lRX`iNl@(T|N{NThXW4hQ7m*AXXf|OGtcPRCAYQ^j=FL|M)X!OMDDS+&sA>yyf> zbVrY}zwMgR&p_?pd1ZgYHD!qHss{Xpa&5at{UsI?34F}p&&Yw=X+pdf*87A8~Ud8*~8NPP;ZVXR}>a@@O`*_ZB36~Tl@51_<2biJH*w= zRoe1n(mEWzW}0lulE1J{%SZ~xI$Iz+dIr6PZ$W}3gu;b`7OyitFGFj{&q2oQ^-p^; z?R;*9e9;=_%QyM_=?)tA87uR69e8{vc>GK7xEI|YKGInK)H!2k$vM^;wM6eS?{jC6slHyr!|r)7WWY z(m9NsT0d^f@U}3}c5W1{L+xw(>bh7b;oS=|uafYNxvUI{xdNBuPOIemIm^g?fefO* z+j^GfpWz>-ZWyQSOY?%3abZHkI3`%eUGZRk#A`y)(-Q4JM?U(Z_>KaDMJhLynbM&9 zeML`J{EUIs|C!c}BF>l46%(YkUmsHd|5-F9yir@8!~$Dse{h(0!#GN_$_M#r8^%?6 z!d1cbfXm=2EaSE#zo-0J=Vj>ig5Bu5c(5^vNb?!=Z?25Lr<~@Qz8c8<#ks7wn)pZD zkkj~8)k5u%uPV`|jFH0m+*5Ane;RM1aqG86a5)G@AE$+JIY8qZ+lhLvN1G7zg&3!y zG1E_zm*|z+))k&ix|_PdQ)|`Dm*?r{3-z3Lf^F5dYim2fi=DlwpW4rUC#tO$`A~YV z9}?p(-VpoR%b^umJn{Es>CWE%R$BAutY6R%tf#Y*U$`OTFpCur(zwT=8GK22yaXJY z=^Mq~cwFx%6mRr!pXM?x-{ZE>Ca;4y7WG}4HtGjkMzrW%Z(9pO zP=`wvb^I0KN#>;X6!Mk@JyY#;rc*8YAWrjG-OeDY!@HY#tgU~;TFlkATW8_AF5~*M zf2v_@&RYU|@2%^wFC*}L0%aY7cN$kXrc{AH)HYq}yBs9RUU4afJBzTgjTN*@sTEaY9PbihPT=& zcODRm=b=Bbvx^n4LL3$NKQH3L%2KAz8Uoi4wzo1Luz~4YjRLbB*KDX{Ol6}p{&q6j zt1nCqi)g4+G0P!Zr>^p~gROtjq))LHQ;K8run!@dR)uTIoS6HE5LvnrdWPX+W!!h&v(d z;_g zUpURuMxjh7TUZRMb>;`6#q#KN+e{tVYwkkY@1dN;6GV$gArD5-VFS~&+UY>+Rkaem zJmF`_p>aEv^sZ@b9?i_;M?6>x8I53*)=<6UYsipjdRN*u-OXypdw=w5a#zaX<>8CB zMZirBU;O)_-g{m>igIWKqLF87mtNNMSHrtZhr#Os;p({;szxw#5}R_K z_T;6HV6`*{k;L-OhmQoFBUvrQn}e{5sCC;;f<8^4kH}ant?5WcnRhYcnxU%kHWSj^ z)1|OIj<8`!w_zB`*Oc=_hk{|OR>3T5K1SRV=-)(Ay(ug?brP<5=XV*HxjKr~nWcAq z(P_x!d@bkO2nCnPy^Pg~;IUm1%xpxRE#>CA$K&m>|pWuO%7Qwl??Y@&;P>D8nt#nGXwG zj%lo74)fRtp4dmcZ>Le5#DCh>T{mS}D~+R4+Ia)J%QB@$X_Q^^QYpm2FoL;cYv&OAFQ<=g*KPnT^ zO@Z>=EW0e%3^J{UOlO0y3@BF?$u)SZ2z>RaKdYnh_sl-5b}#tI2%2mlnORHeYxXs< zb=%z0Z6(>f-~p2#tGgG^XC&G1mSlfem>bzw*k#>Yl6~4cwbDh-_n~fcQC^iOuBrCj zP)X0>zNM0T95QqgdCZpIAyYXNhxGhuABSGp&A47DWe&YSv@o@Q^y(h8e~%-)b2(2- z<@DUggmv5U<#KL7IVnyPz8OJVZ+lsRALM%t@;*ee>jAf=?}kdE-%-uFZN^69n&V0j zo8a5Rg;Z5@tI^Z3)yK*)YvR;Jye8is0JXtQnqJ^oHrX{SQ z(zMk0s>p=a{ot)+rpco7%yON0Y)`~)@R%Y?0atM1u~|%zcx))@n8xmM!DA-ym=Lkc zrOi-eY2-G8%HwD^1Ula&;3VjyfR3ZJVkBE6SHxFpmv^GmW6<>@ocuLT&-7g>y)(S4 zY^lhP@Q~`9+5pruJ@1j-qnZsNw0DrwCR@B2I`bH4N_8*cg>*cm`mh{Q0_^(K*U7I7 z_M;%{++)C_1MhZR?O~KoX%imAPx)HonoY22BT&bTg~n`v4yU$c1L~UG;~G|%?`>SO z!Izz<^U?Bs`I$eF@R!DLJy>mi80=5*57}(t5z8uRJZCxjPev9tCWFn0XKX-BxRSRg zMD#wPu((_5Stdh!K0NF_r^3Ky3mr^e4 zGSC5SyP+9$9}M0f1UYDy@(@}{-exg{EtySyKM8bB2EFsxV{fTpW2Wsee(-I=ln>N` z>4Pfv+qcjUimlRE#=Q}V{)whx9PK4ZzA8%VEQpRuxqgVA#5*364Q9!))01p}F8h|8 zWzC}51MkP*cNh=93)}V-(#;yj zrX7X*UMQQEiRX9WX3@S|@s*qsffb=&WDaLj-p}l1JQxmn-wk=syqL@(H6G9znSzJa8-Bgzd|>0E-FV{gJc%w`|LJ7@q`1QYDyR2snSLZ6XO$Y; zK9u_y+)|YN36!%Cun#m?Fn~=f0!&7kPoT`A;8BD!nM+aT5h!zM`^T>yLz!z(=3u1% zJlc$7=+C`~a^^!Hosi4>G0H2-<^3(ndkp10DQL1v!}e7EddSC>?}YEEJPv(FIG#j# zi6=LOL&u=JutoPpp}Zb)d0#{x<5Aw1*wi(1WIaN9ne053ENesM^4j0W12P5OzE8B? zv>)=IkHRN2DUqH37-efD-cMx3WweHrvDI6OTz1BwqqSQX?zkAMSebllk)+9k_r9CL&tl`jif?)k_S%%g37sfTB zplH=C*ICQxP7@{R67SYepkG!AUe;yEZ-d~~x;5ejwBx=KJ`|2@bMk)&F2yH5lfdJm zugl|VdE8A>T$PpIg`%>pKwT!Y-uo!*akQDKOtp_}UZR)L8*xF8(sGaWuShig1T^jK zhNitGca==jRWeOWk!}=d@Cwp6iZqTPjX}#4Hmc`aX{wam@8mST({Y-fTIOv_L7P7m zbc{e+tCsd!|7SpHtk3$7minw;ZppS%eGn}pK+BI%wm(~vt*a1rr=V>8J7x=G4 z@M)#KM+x#~Qaf*apZXxX0vB(4kxjiow$BksS3fVg@A_IRe@!}w>7_N?C!v2g=-BxN zqF*m|zNrsfH9Kz%;I@`szr2a()LzE&(ypX(YGZq$?Mgvg_dLp?l-s%zxveXa+dA+; zT?*Q|60~*DXXX^St%F@FwROOwHU({63ED4`MQZD2v8rw19a(Eq{fy-wqTQjo-3;6Y zYf~V9DTg2NPPYAm)@~tBJ=!ermN_iIw*ehu|$Qsq9)JFtnVe-e&w`Otel zykB!Z75$osh`p6c*=|z8Zkmm_gP|v9qb()+Qa|Px;!?cjpy_hZR3XzeSEgyMOw)~^ z>2lCCSElK5H#A)in&v`x9Y> zNNux;#^_{xh~^D4&6!N|jj}C7v>YT@4kfELRH~fc17PnXA4->Spt-|l*ykkQH1-lE z*-k9rTeMfdXm1lR{O4(5S2QlPOfxo=*L_Zs+bgdeTvZlFFQ?6SM5jS!e5 zZ%k0x^3<#j_~*O?+EWrkf*LXkn+eoG=E3UX z{>5o`a>%u{M!0uEJBNMxA2no)9&@ozFHRF`zJ>o$*+!iYdgT)h!T-$w8*H`JDBB#+ zatoeI$ySwZ)Lhu8WUqY$duX$LB@{(R-k-SVY5v@Sy$mX6VGV-V$rY3 zNfH!NSx=&@t5DXH?H|7S4$8VpF6&XI1`S#5QIzp9l(h!#AVDZkLs@q^+2S=QE85Mh zlPKe{A$uwxBbzq-6G=z?Mz&2)hVQHV5M|wnzWXXcVO7Xwr95CG)P4)w^bz>&bh1q~ zvMoADF01`L8IYm%u|+F4J0@N876NapfyupW@kf zg>0XmgiT6(LuUa+!HydQJMIZUKAz7%r+^KkTmMUM#rl;?b?bL6n`%u0?~?5?7`8_y z>gpWAokaLiu;pU$d;#GuE>)}_v0Sk3%22HT1o6Wy(-6;JiZ=-HqEPOGh;sywD%yWC{WN4Vyte(O)- z`|bgL>pw#p$rcmrBaM{TP|4Qxu&z{iT8ARPT-ZJzSrk^2pt7F4i^dOhRYX>vwpPSWIM@vTTkxa^Xi^hrR`&7)wX;FJ4Tgao86_corH}~^H}497H>NW`{^U! zmnuo$gu{Nym28ETmA{efCSE_^O8p2Q8*jfnZMj-*OXYgQg)Nng|;7k_*y}3Ym?-*KS^%;-$vU%3vGXr-1g6s+x~Cmw*Ot4KSbM~ zB#j*iwv!Prf!C|HorFD=4|{62WKSttSCL+%aV@mTCAYDqnw@MZ;(L1EdDE6!F4}`j3VBS3;w?k`!FOPv4tBCn2fLx?V97oeTASs0 ztKG6KWv|N!S@uodyIv){$j%`qc~o5E!~>gGG_ zsBqbivg@Z4u%l?4N+sJ-6#j(Nj=&y;e%%dwig?s+PucP2;U9ZTgZ2oz_k)*UPyHJ9 zR1=f!DKE=7Lj>$8uZD3Kr(i5W-#EH<`%7EA*TQu&!suY zCV8%r<{W9hF>L^!Z=`Xj;h-V(V=eh9dEMmD*bU89GUoMv^O65IANhatkw4-2$d~_4 z^O4c)Uwc0CTcy@kL%gYTKPS0Mo|CNlo;k^f{)Rb8V-ItZ?d+#NC;1S&v-wCmKlpE% zkEHwS{?+FrshrO9k*;%*vwE0|q&wW4=OU#!um78m{J;6g{~ydpJ{A7=pO3WL#AFZC z{!!u!vX2>T;K8tWKNMd&6t=^7I2?9wKCPhx(76A8;Qzde=&Z2yLAo39Jd|u(W!WM6 z{xWE`7tejzR(~458qNB6nIJpiN){`0O+5_#Q)k@4Y)x=!JmjLf478f^{*ww-R;jmf zYUz%oseK|2S2DC&lm`PXbEPqHA*)Gg37N+FWIm}7yub&scY`j(v{A+@=#yWIGPfDVbJVYud+jw&k#8eSI0iG`fj>(b6HPqLqb=eAUV|iFt>fvM-T^{b8dYJAp zG@_1BceR6ocS!;(CS02YOU@&E8CX%7MYaab6%&o}#%_mtKZG+3jsS2s#|h z?a-e`|HGW8ntOri9JVCs#|F`Ih{hI(rm?}j0d>X#s2uvuVN?9*Ro=jYK_iN=yM-kbRmkFc;2ey zN`I)N-)YQcS>@f%@4m|_=?=*kWL=*k>-uKJ_HD^j_Z{hLa=Y~BXQ5taqh1AB&(k-I%V^vM^(mzdoJdCu-f#RMB{KViW0Fih z_EwWT=Of7cO0*erjh{_p=UvzZ@y*J+28IQP4-5z2Rxxe-QM?PjBjGnl_VbNDDzH%W zdqcw_xu1mv$Iqg7tvy~?yaI86S7=zmpn+lVllHKQB_;2D`0tBQ7tHx*v7QkRtUM!n zuR0^nc=?Q&y3zp)oS@=m9*%YYS=eoVVv_uDU`+OdhbkkoOimv!s10GpZo!QT`+L(TEH`h~BeU}#o%2{h;oPEm^B;d=LGi*T7d`d#GmDq}{Mn_? z{i4LOZ29x0FTD6t*@~6cRWJYYmDS~IUaffT^|kBXs9gW%zrVGi>g|p1YKyb-MM;*>m5uoxgCg{nF(t9i3ONbzQ$93Pff6 z>_iH1BADP*L4xe&%g+R5@)rdfFBMZW52kU{ocv=h@q7F9^7iu7X*C{dl~N(FFg5oN zbIBL>7*gdflbmDD%q`eLmR?BpLPG` zJB8yvsvTZ8S~Nxu{^g7-W8a1F9R!tD=8sv28gxVXQ$q&wP8dt^6- z{yzHW|K{Njt!ey>Xv$z(e`>9uX%} z_%LgU*~E>dHr3?;9=sE+%oj1*3#q=|B^A z<$5nWY~=19xI@DG2Z!{7+^clny#o{qr5XxACGnJ?R4o4W8PNjR3MiA^o`Axx22?ru ztpm)cIU`o@{^vokjk^)HI}0BzhZ_qw-6f9s4$~mWLs;M6oDt{2T?{Cd!Gva z(ob&>sWP}e|2@E-R<@gO?)(UL?Bnk7eLpO(fWIT&KL+x8DC2?8&x+pwjsw~Osb8EG z8{ux2UG0}=MI&Irm;8MbT=VDr`3#<8zd9=x0M-G{e8v64zUJ;yxV3;5KR7te|5D>%%=b3S05lOI8~ z{Jt0Nai?#-FL5_pcE5ppVAFTvalip5=m12&`<*!NSKo=*a2LJH{h7O;QDN-vAttHR zO0|H03j8D2^W8vH5!eFhlg6NR^g|VehU7xhkInv<802tTjN)Iw28)s zHZgQ`o7ga@O>FP_P6E|+4#PEVVpVLLSkbpl{0441plnl{*rjR{R}E_uXToJMZKC(! zHnCcVuz24taLDs-6Bl3ot{cqgazF#(Z$_9% z1Q3Gq;k^OR7KB+e6f`FnepP_40oe$%8qjf9n^+5XMt_dm*f4~{b3i!o1Ehl2RH(!4 zfC@ZU0bhdD_%;cse&)gbW(;@|5SGv;o+)b+BUa!Y?r^wGe}VsJ;6XqG;5a~g2>1i? z0HuIhzyUz84AC+K9Ohv=`kfb9$azr<2nCDx{Ev33BKunL1b`KV=h4FI@~Hi1YlFj1+gjjf_Mfn zHVaeJ?nzFY8J}&Fybd)5F=;e9p7jE3}qP0p9}EaJcB>CCtVP00W-#d zE(o(1=~qv^AbKOrI;0mt-;=qUfH56dpXo&o+5|Hg6N@i33~Iba?98`Ca` zUn5=baU7ojl)nqFfk1!ZX)$HT^E^7K|Cd|vhiu>$Dv zRKb5<3iqS5!r)&DI^_X^$MN`~GacV3oIQ;S&~7ns?f@R?GacVHfnH|hwH4`Bz`p@$ z6`-E7b7lJ8$HOu_zX|_!nfy88J`Qb&Ux4y-jpL9G`h+6f*89On4VupO=~Htu)Q?%n{N&I8x_|3}!zXI~%w>`&^RyEStfqL4D@YP6nF}`gD4OD<{@SG0+cDPM& z6UI5f9-nw8mFfYoN_SB-dwoAF&~fPIe|yr0!M$7hF1SU?_!vDMX-0Z>592PLD^R)izkgAj`TL7vzy}w_GCVJk z-2>a(#hHI-7xVtuE^Y!u?r0a+0lEOg|I{un{uB3qbEo{hpXb#4^-NO&XBR%F;zpZZk zdcyJhU=`@JNv2i6=l+4A8#Cq4Z7n@Q=jn|5c!R zXsQO?KX5=>P51ZzO^|T0-HOwlLKxz*ddSxH+d~Ax?BDJHcVUbO6MYV{a{3d`|M9r}l)#xT zsa-!je%bfLA-Zlyn65uu7K8tIS)2iA`Sh|F{Ra*+Whe!_iEo?!$o)&@@4gG4Ce=sS~b8*0E>S>oH9V@&#s8`ej*SF z$Onx50dcYctD-u@(C>j-z)UA_7bXBuvA#pJtmp3LH#Q|8?2*Hc*6_ZdH+JUzw9yMz3vxcCzt%>|$LKjyK$ZW)BB1j`UB!`Ova#e&Bjutg&F2vP*i~@`U@@Qt{*7?Y$j=K3u8L;h#}LOG z5D7?~!~OD|V1W#u%P<_!_6Yot#!|pKKrLW+5qNQ-17^suR|d*rU+{eX7a zb%q(w0*B0NVkuw;V7Tl$1Nm+K?3%a^Uk=Eo zyTmHlHTrXRuk1QQdLPGgWI*?CwRo=x>=HNOd2H0*4v~Yp#A-nL;4X3h;O^h1M0ANN zxHG17iA!ZSz`$KQta5r+4dd>caMOo(57&hE{1FH*X%7 z18I17xQ7GnNUMkMWv9Eu9r$+OihHPN=WhPV?*0paTLSX6Aa2DK2b7&~JkMzF{>>S> zP@Y8yJL3w6va^n7S7^G;x72gs2|x$%^SZWJ4_xg2%^4N}j~!ID%kH7#qI>^p z)O`ZtS`fG5vI9Op=6IfQvHLe?=xXOK)xjp&J#e{u-84D9x5>{Dz&ZU&_i%YsUYV|? zE@{wvy5hPx1z>h^?LglSn68U6ldp?Sfc%u}Vhg~SdR^QLNKd;irvCA|sNKQcRJiE} zu8ZvlxEprxx;Ssf4KWx{3TS%ZhPVz8@rxT`EMNhkrR?@FRt}RbyUuZDx{03;zj=WD zC2%c>54XZ{d&pbH-BdYjwsV|i?&Fj$zacJq@rJk*Pz!kTdtj05*1EXP-&|ocAof=` z#3_I(z-B<{A8v>RfEluDhXpS0uCVxfzJDKB0IOSXh+m(&A#Men0YshwZU82`U$=61 zE8GL8Z-{Mxt+KmXb{7CD&Z4fIpcatbazoq%H?<3821EdY0qua}fX@MqfZFQ_2dDs) z0eo*De?S|aj|1l6c_ttmU<5P*wgajGZvwh}Mez*a8^8fTzMm+X0jYolz<$6Ez-B-d zAl6?LBLD#aEnxG5qS*G(oq_kmxBot)hws~O6EAe8C^i6xc|ZGM@MGfqv!N%PUH!kW zY(0f1_ZvXVqoO!`jwp_Ol*3XyZw4Fy?0*{k0`PtYys%glrvO5q=D?PMXMXO0&G!_18KSGyj6KE#`C zVWYoS=v}|t-^nFWq5qO2kSpBOBut^eU&s$wMvCL1)!L;>p-?JSDqgKpMZeCz@VVMeS?Gh^$Q8<-#;{Tz<_}R_4=@|@bE!{1`m#i z7&2t&(7W!6jEssh7={fSK77Q8kt6TEJ34yQsF;}1qhn*^;^O1Sj7dmHOqBDd%)`M6 z16e2wp=6~~-UHDWc8^Kr(o5+~Kds1(-ffjYh5VP^pz38YMB4QVT_-QYk%E z9$p>_s34t(PN(t2t3s($;hRRK)<8u;N$C(;p;959O5@?}p;IBE249dMK5LYkUeIeE z9$K}ZH+WP*8w8;0Jk(mXRte5k>6AHX8Iw}eW~8O2O-nINNi(ISr=?`2J(!#}elk8y zn1sI*(q>G_Hf2njW==Durkc#AWYe^??6ed-WT%Zcr>7x-@o70Z^qM^_ZAMDk6myPg z(lk?wIb-r9lX-fMDchWuW6Gd!+0&Hf4SlQSma(=;TOlQCgJS`HDk#CS!pRIlsFa9&GeX-GC4aN zu~Kr<=5PdJ(^50=nhBJrrRA6>n#?Kbpvxpv_Ja?lP02A$m}p9# zoMXPRXJG;vB!#zfGBlOO0!Gb0^yYR=>- z<4qaa<8vlY9FMY2$ex`1V8-~2X;kpZIjKMZq|J~>o^H-Txsy#PSviv*0Bt8vLj6pd zaK9;K`t*tSXQVxlF)72GVfz2r`xfvhs`Kyn%*+yQLKGwrQ3fO?!6hWzCENlDf&z(2 zR8TZ*b~nkwW_R5SB#26tdMj#fKmt2tc`+v{#eb4h{GV?og=G@PF-t)faw)5vN=DnAS+;!OxeZfG=q9M4>1TPv% z`BXrKG=U~kF-=EbH5*;RLeTvsXbm;A6y1amJy#4}%^JFyen4@$mwtiketHnsqx1wl zMbF{dM%(EXYN5AiFMU9Npg+^6bXZtKWjVBDe{@ofrSsJ(8eO>Asse8b3|{; zU!S?cg5o-QOWaBhX8%1hRla&Fy_J>fO7$A`P7xQM z(8*n4Q7v9mp2zi;SWL;w4EdRze6i_n#kBdk^b_mS z=P$$q$~&rgwJZI_57lgg@ikPMzK|w<|BLo@+I^8$0r#z1 zp(7htq2n8^O*^g`2-)qZcQoO;US4K-b$^YZyTqHq5I+Z}IjZ$mA5%|N&r@fpC2E7( zs2)*RsyT+NKWR5>el|ww-*L=!EOOlCnCW=l@vP%PN0no|W3}TU#|@5^j=LR~ zIUaR9<#^h$*x_v+l0;#lVRo#Qpf8;;iiTkpLJ+=kcV_R~C67Qgu?|S%=UE6lS-=4Sjyft7?9Hv3pgV{yO$rK&@Ec^G* ztPiFCI5r@~ows{G(yp@HJ!>~~`vK6-IDvdH|kT@%XRVPjUBtkmu()`#W|ZCQe({qQ&}3}Xa8fz zj@y4cARdj+jmMi2fBCH^C<%X7d`I?<_>LX7#J@LS`2!Dr@WGiMJho+cS_(V**)j9c zfBoxU*FW&!-ggFMefd>(ad!N^5AM6~zS0VZ6m+x}z+O=y~JZr#!>;WI-W}SX0 z`@Z`;#rLInN%JvaV0=*4u3cFJc4fz1SyyLekIat82Mnwov@pfTl_TTDORZ6=)%9~c z-mFmH?7ms$#o3kKK^Z;cix!_T=ZtuW$Fkz(-a(a1N39$6%%a5u2Cf}+BU@$_d$R{k zk53;tsCcj(%bM#bjt@Ft>dx`_sm0GoOE@f^b5>k0hT*X-6Y?tKFkFTt41VFUEi&x5 zmy^q;vSL@X_}%#Y=8@$UY*)Ot_{PV!$Y37ZGV;@SaU6c$hRYXRbF#wm?5r2EP<*aR z*Pu;tBzMmC`06+Z`Te-JG9G^}{`{iFuW)f#(ZoSI2jm!@4D#(ei{DNu4r!P2zG(4F zJI{XmZBB07^YWXIt~wlF{$AtZ*WPc~0w-W&hyGx>@~{N5lx2gT1dUthf5#K*S0CS9CnzWxD^-vaN6-y0v4 zu$CWwE4kkmM!xTfzbN@Z{Kb23VV?+QTKph_YaO)w-p97w`y`wI?%~IiuE%FQzU=X9 z-hcMV$CuwbXx}d%fB*5v-`{udzJ1UB`Tbk|`s9^QUi+OPYp(mn8`(eq``=Ib$xnLR z_4@BxUc2l5M<2cG(fjXz^eOF|r@r}09rWmH$2)Dyn0}!xaR5`Cg3l) zbi^v*7_@x$x(l)g=P#c zs}Uozva<#a&Kk4|wt)UwFs{lHtJ?nW`XegFA6a)Xq{d?TPv(2-A6piuimDwQ*zOLg z8z5aOG{|uoZLs;adM+#q$bcS}l5sU&`lo(01=3Ma&Qf zke|D0v-(Tir;4k^Kru^RTZKg+Q zmoh`WmzesdtMj{w%}nEoV>4UPceU?ouh4h3$LMwKAJFj>heG8DyAAX`UgcPhDc==* zt)=q+iuSl2{Rz*1YW>w$5ZiQZidKR2FGM`mB15}aEE0>Mv0f&6Q*XLa@gVxH$5XU9ryY#X0vbtCOny%H>i83)w)3hhMiRVPQ z;n9S(;NLH+O~lt(Y8yQas&k1F=)!I>Or5B1Rc;io(~Dw8~FRa>^bqH#B8N!{T4i`VBKPZ1xZWb3&CH)jGf2#Ho zx~RhUH^lEmCR|Qev*2>AxLe(>-L2{xyX4f|psI9(YPc5C@dkgacIG zV$oiSdK$GVe}m2GVgUVwrip1{s@O+UL>AiIFO_9tn3i;D()13b=4nvVF?vTeZF*8q z8c5$DH3gb!^K+SQLOhp?ku;L*)SRUaMVsMNx>35O+ZORGOz)^|O0!yp9{)KyhE%Sl zXXpaB13yDN*Q>K|b3Dn^@Y`$RLt2Z{E!VCP{C?O9vz3~W%E4*{xW?-gQ=bysl(&$E zFv6OHu>ML5#bw&BWGc6b=S7joRL3St_bPEKayqj9x}0xH0B7!9Kp+87!`g}Bg137vG{Dq4l-&v0K&SJU@sHLe!% zJnm+M9-)c2TEvgVa2gJ5pavR;t3~`A_d4?7T866*SBv;QHREa#KcJPkUW93l7N7t% z;(AeO5$ov|Q3BiLv>eab!cTtsA!7NxHi0J4i`psTr?gRAu1%sz^b!3?jHmJR8ybx3 zG_jq2OG9xTSLccsl_G7aDAe9i#%Pa=OSL?0o;Y1Aqu)^vI$I3X&Jv5X0oq{4C0dSf zid>N|awtX)gj(Z||Vv`M*09HL5bBP|yX(y3aeHkrPnpx8>^QG;}ydNcLY z#;R-RRyw3O#1GY9(GTfIG>xXy44O&bq1)9LXdC@NT|s^6*L0KGSA49#PQRcZh&$;H zdP=z+oMs2zDej`X#Vk67-dFxb*`goKrW>eCEmd9Wmr8%qsFc1@9;ZLj$MlehlUL1B zU!&8&Yvxi&tyPz*nRF_})i>!bbr1bUJgIJ?x9KVM_jEtKBs}T^R4itzzg8}$y>zN$ zvUpC-bo6kroYy8tBl&8?)vEQ?4ywuPxx`zw7DWy^)Gk2Yj;JfOT3llsD{*IQLmgSD%UbOjS*I7l%|UgnW3jeaD{>S8uh%AO zE48WCwOBLYpY7O|-`>}p(zT)fRz6MBczNY(Y|547n8}5T}zYEuIwXjyN zg|q-dc4$tmkE4$xLtc|`9o4cNeKqsSatzgmYRR|MT%U%w*G{VRZi1`B>c6GiBPU(n z1!=ME)86|JX?2$6UhhCtLD)CQZ#i93Tf61&cuIV?zHNJ;#4${EY5Cc6a+P=ojsq+8>|?+8+4k!S+XKbNl8t>pG6> znDuUKZvQ3y(s+uVYJa-@>EnDo(~ir))xP!k*7j%V+4g7Ke@?$Lo^OBt>*tT*`tsNG zI6Z#+MS8LQH^y&_JKBER{#&}^t2^56Fz#!A>G;dW%k3{4JHL9f?agDa7`W*7wENiZ zeb@10-yA!7oAIOe z9~rkBw;%s8-9>j9ceVe-_zB(7zOij%d)(mb0pmgAAzb&j-w&$zdHZw6pEG_%zeY{I zWb8D4-~KjA>W{`-#y=9*!$vE$@+p4wneiDNp(DnZ#+S#xYX645Y5S&q4)MaNUeJOF zJ$42p2wp2D(0BF1n?igz@l`w@D#xMDo0QQbXL!IBjfGu)Z(TGPi+aPp`i5v-%RkSa zx7izshGX8QXxPPJ^4dZQ88Ks((PTu7nG~id)f#>y*H}v9)Ot0ben|bq3N=&QZv0H# zskW&5X_WE5cTK0+ke~)DXDGAOt&mbl%h393gTW_r!6%*CSZ%Ua3~oJJo1@J`KT!_e zeW`XCcyyiS)0U&xjG*6aMqhfpwid1bHuRSpw2kQ19@09;wwB&DT#&#w(beK{GLZTw z6FFEUuhle9{80QzTxVP^E*BRf&z83!w-^djO$HXw@Y~^}mzA^&x z=v3w3;$mfpGDmrqE>#vOig{98Gu2z97BN*${%fQ-_r3|6mz);9)H%1!DmYNdLgx=CH5KCC{f z{!+bwo>rfQl)X!RMcu77spHkV)qB+6sN3OwuewhCOnqPdKz&VpL*1f&q&@{5;0v`~ z722QFch#O+KkX~^n3|{UQ^#n9+Q;gj)oEIeHd;FuQr;5Hqcx!S^P>lvjvi#1oKQp4C{s*{1zkyGi?@_9I9y>mgO# z4XNT~?RIUC_G9#GKhy5fUeTV^Ueva0ztLXO{-FIClF%XTbL}hb7^IM&L(2G6` zbgujxdqMf=z7-4lW@essR_XZ{UcThY9>aze&p2<`;+kO#I+!WhX9D%wLD_>dv-*gBrwq;<)<<=naz@YE z%Ipk{PbG&&>`-S6A2GeJa>*&Z`<~zXl!Xp;VXw0;tekk>g!B5JYMkD7`tj3^)7uBN z4>C?WF0W&_je*9%_5sF#<5@;ld)BeR#^82nd+kHohP0nyoI(Hk%E;)SHR{lzNpssE zDfS+6W(oDnewt=N%juW3kNRbxh6=|D(c?TJGA|IKph-l*O+=6DM1%N_7%Q$9Lc0;V z%}uDwTf`{kd%zz+Z}_1&N8AQo^+$OBu^1)Rivn>cG?}|Zp@_q71I#~zUURRQEH)y% z2gFqIAnYFoZU$}vJ`Vh)n4&y|IGz>L#dCPyhI^+_#4g|~z}>*tfUgU2+8=R$2J`1| z|0OuUSK>x-RERuX35XGjIBkkDM-(e0rYU|gT`3hMFwa(&iBe^#C{xZ7a}?3L3_5xU zt#}2f;YRf|akH9YWNay?(i$c*x`M}(&0TbZx~MEnUTG-$vJ4uQYVR8=OW>D)(MaE zGEwgoJsO?WBH+A41f3Nk!c?ZN&Q{56%_Cjegl(vX~S6{fFG=+rLvG?u<_$ zFZczGX%&>Q86>kuA$1?H6?Yr%C8*kuP_aGxP`|l-C}Vve5?lMwceVldo!*$Gsh94J2^biSV89 zI~w0cld=f+&7%=N?w$n*w}8~aV@S&zgSf{~&z3RpR|r3aurGpr5h>NUZ!SW)1AC4| zm}BvMEWVG!_i^}+`)1rdA^ja45BmwQpMdZtz#h0C*mEL@yh+q!>Le12CQ;9&lSthS z^UleXv1c;Eo=m-lo<~ZKk1^y=N{&2UtPMR^DTA z87cnDNZounsdJZ*WA_qL=3arazk<%*b0uj@Ye+Qr{)&{6w zJV@H%APu}NM2^-FDMzn@{1%}hGb5nm2+AfxxxB66@JbR#t|he%_xS5bjpE*V9cc18 zq+$*Ac<4Li_yl*}^_0EldKy0S21wj%N$a~7XW=6DjK{rfr~KRo#PfdyIOle~Q#?Pm#9&DWvx) z(9qM!=hIZa=2?`>bCgZb(_;Vg^e%0~`)?5Tb{e8@r;LZTld^9+sYkYx=Gj4F4er*L zNSXOE^ zX>0CN)Q|5|ddD{@rwqLx;oPri^nh|k%L9ti^q|sj(?g2r`>>)EKCEb=hZXgshZWI^ zd;24by897D`3U#XM--tw3ippH8JmH7A65FSdt4E;R8`sP+bo~9M%Y3j#$ zu*=hW&CCbpYZ?2Uno2XZK_AZq&eBfXJ_}f?_1jRYX;cRD9Iao=98DW|zIMvy%QS8K zkFL0}jH%mqW}LfySH_v~ zS2E6>xjUm5y_%uSd^KY@wPf_z-jXrrqn3<;^hQR`nl~~WgWt?JbG@WMw*T#n>9jXPqjxd}&wM9iPV0LaeFnadbbgQ#rH_zKn!I!kO+HN8a{eLOz z{}w4r$ejuODHB|CDCv|#=TIIbAD$y9qw}d8eN>cQ0|)#ay+Lo%Tl9N+o8AF$kL1#<p z_Iaq!bA9&q>3PbUQ$qdL^t-L!#(tCg&+Wgc|C;^}_21pUcjljmYJ(>ZZW?^^;C+M79O4`DogqCB4?TS4;rQX#4j(<-^Ru%)Tl87O zXX`$D?z0a*Yx}I=^G7~^?en9b_x|F_FE)Jf=@^{=_ z-!1>X;LBxSj{54JugK;0`U1gNbF<6s@p{euuYn+MevPecUKNbFe8E`#^5C-ifXnL( zhGUUvgUcIiwk2Cvtw%0MZ164j`x^tHu(@rP_sup$S2nYsSo8n1^3C7vJN2oY)DF2+ zNB`p~O9tHKNW_1-h425hzgWQ6Bp;&#!GPB^d4kb8pWk}%Ho5&23C6;1ukH$XbdNU@ z^#xo}UofCIg1GcrukP`&ojXdAXxJC1*Mnib)*r0ZqrsqF>#HZXD-Z}q^MMQGhF~nJhl4A9o=$F7_`EBnWgw_WV(tdr9rVW<15@-7 zIgt@m7YuuS^#Ogkw>iyMPQ-G@yH)j-VINYAl!d*nsF$MN#*lmj!>({Mc>^BuHii5y zUjT)$JP=$N&^<1s%@r||%)8~zFRM(Xz)ZHCj+{sV+*DmOe_nN24e>6$iQ{RRYlUl! z-xa7IQyz zikoBOGCuhTYB{8uWszXuWTUtWrY5gD7WIxGwx^PcdHRBRRdV~EURGIIUPI;U`K(`dTfOpuprV}w&5;R{5)ycb$e*vN7B5m$VR z%PBf%Ne>~zUeiV|I(gsv*#E%oxKy_zg3HlVA|sp>i240an!(wcK_fuNmi-8K!&rvk za(-HYPIOA=Biz9NC5Lu49fHWfSRK2X2?&A9PRA%NCX|C|f}0##o9rM54&9r_+y7Cg05y zBWR&(A?5KN%zT?c)J3AMDANlQKDTd)v4GzfSPpVt*}$(%;j-~J#{5xV2sZpV!o<$b zrzHG^W!vfGjSb}X2P0l|;cjmvLTDrIl^&9@Q(ZJ13%HpX)wu&vKZU@VJmwSJBg72L zYXRQt+zpLEc$G!Lp3KC`NJ@QSuRDsOqsHYPUzoy;{Dcp%F^b())Dlc)gGC;pfoG<7`l3Y<{kx|aEWU0(=byvhJHS`PaurGvoQJpl#<6SX^ ztDAz68tz95+*5ME%JWdwD2%+ENWMP0BV(7H4)`?c0&z20=)pSu@|=RA!pIfGvtBiI zpgcF+jPXW&{;MK2Ievdrj+@4;aD~T2!NbSIBBsIOzSRpVO6OI=!{|suqs&z>;0G7Q z3(C(MtfNpQxDwwBP>##ZWXHl_4#CDwoS%~$3rJ3Hmw-!8bQ(!#vN)K5MNk;r9VXq# zej-9sOwyi${zFFVYix|kPe`FVxWXF-^&sWeT-j)6>P>bhjJ+~Am=(JLbj;6Vr)L500w zbTBZ5c$u%0wO3uguxzp3fvI>sTnUZK7RkT!7A;yu3oZcB_(6{{nRrA0>GyfeS2)cn zoVe&baI!^|GrXW^LOq?wM=?wqTR3jw6qM_g`Mh*iNbnCwC@8mb6;SIny`=QhjlmXU2~c7xZw+zjUe^URC| zASJqFj?WL@bjigb54XtkgV7)!kytIw3;3e5gJFm?AZuFe^ZGrs0J768?>r7926`ij+kUhp(07=zftpDI~wVym(y z2xbwQ?}~7cRgGLwVJnyXq)P8fA3V+TG$C+25h$DG6Y(IRDsQxs8IftM2Em{Zg7u(G znzMXf-DTcz5J6W2BWB9Y_Xww+6JR3BB1-eUG(Sq`qciqLyqvbHsMPBYbLLG?0eAQk zmpc|~q)TKCaG@cAQIs&11w6^}o9psN%>t4}IE;GhkuM-PW0jP3kjXkT_E``_=@M7i zC)?KoGzF@f9Sk+IbBUGS2pBq-^=!~zmG>$t@p$GnHsXWJUs4Bx_eGm&HkV(I3RLL{{R28d513=|0FguK9D)p@ZeIwvTv$+W<=+*^spi$0C3V0JLL+=s+_qn4@C%RC4*MNFHrme_Eq>?zn( z8VgBeYUlV&hh?D#w283GZxMndY-Bs;1qsRuW}AwLH|7b_Y}sGUmV#~M;)vIiaEWSN zX%gDJK*Sr4G9{xZIdw4@&9KqNxFuR|rC>2kND`S)%a~y0Co>EtyQHa9G6zse9Yg@H zhdr>h87Wr|Qs;Gr%~;J~XttE+XGOzaM0%CK3?d^{usBu)!J^Sc^Mfu=30iD(#22B` za4=LY$%0MuWC=;Tu&>@CC~rMVvw8M%i~d0w9GoP6nNPTaB)`DbWL4gL=D$=@UtbmV zh6-&1;~Zw3RMr$i?@Th*`ONw+ndPmAmT`%haJrZs%&;F90`W!GUr+t42C#0QpZ`2Zke1p z5%AqSaLU3+K5-xI0TdKXtfxHI=JII;dWb1GA-Dv0DX*5ymgGStshpprrqzl0uaa!t zRf~G!4jz3GdYQ{}B3E?M?;ClGqo=Fas-Y{r20bN%O>!s^c0=IVWQuTND7B$ z6JeDrP>(`~q6A)0(+J+hd|w_Gqcb5nk%pj@_MAE#>3l?qo||)3E)-W?9+JZPvOJ?i zpS9T3!-=)|MpvL&_j^}({SlVUqGn4$al1iUDOogAz=5oU%EF?SDRgvMEU2C!vAz#+ zY_yaL6XmT-f{BWq0w+5~s5w`iE*XeDHls^@HR)`$d@-FMFAeBbkWybn zx{t5~ktk;AG7xL5^-7U{Y`~Mu0;j+ZHaRH3^0yv}hB@QQz0K3`ah7Q#%L4Tc8QJ`x zdz(VgV!WPd;6qN<8tQ{l+iaIBN;oNybB3W=%4iGpq!P-p)N+Tw0tI`_%SS?3tcawz z;)Iq5bat1h6SvpzH)APJ6cU%ST-XN^_xa^F$@rzRVp3(;Bz;do0m3Y6ib4zL#!`p; z$!e9PDSI&;>Py0#BrOP+2-S?t;|)Qg_4w*grV(3+@G=RR!zs1RAo`q`9i%Mku&bV% zjVaQbB*e~`xI)}RdRSlMq$X=UgwR17gcK5={ARUa^XQ=ywAyrcC*+gnsZhDOB~|(g zDdN?5YDu08Ww*Tq6B?1TazsHI-?I2ov^nIRmMgWS+>(W*l8sHBo@=*HODf6L`I|fF zf|}*_<|VjXQU3J8|1>TsGMNGTy@C2@Lmu4bPcO0q$~6z5()nzxWWEY=SFgS*7L0oH zIEDGESLf=c^HCh9j56JYOiI%G$>hD8{B@n4^Z--Ra^n0Wn7mvbYRz@#T5LWyA6-IT z$Hdram{ypd=##Ol))67+c8en^=X zZdpQwV)AZP3}}k9lR6$7Lhc zY8SIYQ}wX(Z4X$ZStsnc4ATdSDa6gxRRc-M9xQf+LeS%6v#mi_>w?5yV^*OwH{y%C z#+2bXLp4!fqZfPwNkpD&93waDRc`)R>)navZ{R>tWtsV-3Ia=yQa4w5YizEETL8 zu634rU>yL*WhE`ev6ZM)8yTwIb=8<+uN(w2$JuMR^+X7+d3;!UuSv?C_yC1cR<+A- z7o{vf6k}b`GRi1SW0PfViTqZ2tV1ztSb|Bs$U>AOE#&vsyWGt+JTg;bo`Oj{qJzwt zUK(9ZHQYF?Ahsn<&REr+M<^)9DJ=>vQLomX<9frzP51uV}e){Lxbf+LNu9Ldyv<9zn*V zm7Zt=HL#Xm=dVZpy;lW-JRD}W0DkA$FVqbMQQA>cx zHCegIRNx2Sh(##b8Us-2;l6sr6g_p8A*p@Xvq%x+`Q(LSK?)Kc|}=eNp(3-;G&pgQE)^iS4tRJA@SSAMCK8oWSwzptJRX}S-N$H zA%01FiRtlJAVHcY{{*$7a+y0eBX@F)mgmG|#oP8SDEZtm>E>h-ms7f^OV;Rrf@O3u zVNq>+qG0VZE?}81bjaTD3IxhpL}FesX3cG<9fR7D4z1%}^~&-~=at&i8P@Tqa@gNi zRfBdbM~ISj6Q5#gGjr60Z1omdgC%lxmQ`DlZcZfEDU&)a=OQQTJeAoY3^Y!g?}vEclamv% zdqayt&EhwCSHu*jxY4reC(|m22=!Fi47Cl`(BP}}al7^fWNslQr{v1-b1_Rv=C0F% z4{|kviNqk4*eg5a7->SNX1SW5tE~A}&R)(cZez)~$)(GKiqkoI7=+?ub)nYF0;z5u zXiRcEjHG+&T>8fMC%o(>V%McQ1G6H4}KiIEeTOcrjY;6sx>al(Xg6VlZOd+m$a z`t%66qs3e7z--=$1en6N&hrY1dF%AJ5`tywk{n;y9fMAlbSkaw7A*%E6Fr1vBT0^( z8jl@vGDdq!vf~F`_8WH5n2C_#p*e#TS53)@5%Yya-C&4TEQ!v^zwz=&6@p&Rb!SSC|%SBAtS*Jx8qbt5xcr0 z%wjoY+nbCfCb^8!wDTUqe=2jVxIS9r>Ob}Xw$r9`$ zAd3cV`jE$4>m~E&Q{vEZGEXZvKXsA*#7MN21(Zy}N*0bM=r!r0k(ZF@$wpw;N=iE@ zORy$$xX&8g1lgcq^U&ygjj={+^o_>?oV|6OdgrJ2Dx@#GcmeTP3+b?*-?{MxC0Fyr zOvT=t%A=;3lkasdPEulI!EzwSxGgHTdl0MT$pshO_M~tgg&K}nydWQ6qstsQ?a+Js zBBp?r(u2EL{*|lO^pt)(F>Y@TrMq-K=-p!PK_=3`Xlav72gnE|kN27+Td^`YO_me8Y$c8OX zw@>S`+}2b(H)D{meI9(G^(Wb|Nhe5^C3SM2YlWCLL}yApW=qVoMjM@waq!Q=P0mI6 z#nf3gvBxF34}}<+nD4Urs43{lR+GALg(u}qr`*S_u;#<XqXv&NRr#dsnsCA5Yl;J_(@Bj96lN)B_T*8@WE#ZOj$b=SrIu4m z((N{=6lqwJYDamsJAbyHBpoHZbdtgoLNDlGPaEuIF*_*`b|w1AmQN|lTcVCx zUXXoxExNS&pq#j}e>8z?X^G^oBIp$*XfEY*66{_QvMH!p)aeeQvvJk&=yguSs$eDy zlE3rW zMF%5t2FPM&QkIb-K-Z%dtaYOcXZen&ofg_TN)^n^kU(%g_>rA0EiC6B$e?;&(E`D? zX_hw2+i!RlfE>`{LM9f5+ z!?C=~u)tccV5YuGN=)#TB7k{Pw3#Yfo3W!|u9Q@6RU9+#p9Dplvswbx>36y zvsHgvBA;Q3#KR8q2* zsc?DvJl>9rLLjI`eB|>*7QyV34}OnC*iQa|AucSVQKLq65O#D}^(MI#)D*5I;qY)k z$B_tYg3+QZ9_gg?#TI5c%aIs!KEPU};Il{PtkIOSS%%?HK9l`hAA`&3;_5k*N$!M@ z&!UMCW=un^G}spQJ3g4Nl-k7YDKkrbma9I<`pqMA9#=M*lsT`IAxWN?k*hiqwQrYv z_p|#f2FUeYY_NVHiL9S$BKwDnPyxF6>r%wOKXRmpc%^taAk`}7c7F6P=I>gi zj0>ddR!p{q7E4erbmrP>nayRc%FU;A0Y|sj3rI;ib*$D}zLYiu zkeo)4!%69ikv+)HeQ3G{Lv~=D$9B66f_Yf^OPAG=w=NMJM3-Hk7LU zH7%)D)tOGx6txcJ%d^R>s3futP8o=DkIN-yjq1a?mZisp=A5#UEmcDqm-;fk(=fRu z6k2X_Xx6M*a?Y`a)hg2zibWbsQ@uAzywD-m)zpQ##mAcF3tQaKoLy|-p$&Ts#2&g! z=@jI!0`g!fC6c#UY6&mgnWkIGGk4k4@Uo6Tlvn0Bb)Fx9)|}9}iaTpIW)Lh!v#W*X zYL01ol2!1}=yiy~`ew(G&p)o$(TSW#wH@eX3rmyJ76_gbW*O6?w%5^^(V8f}+`GQ+9bg=*iOME;&n)_B}DM)cI5LHy3RYP&ODAJ)|g;HeQ(S z)n1I9<}rPI(Oj#Y>ZxNSiPm2q1$>BsJr z&HC_1lAzEbN)=EnQ`V^xDm&qnWI4op&tkcGj`0u{tx*lu=-w zKusCOoMH}RnnF^PCDl+Y!LqH@SLQm28aegeKju<0d+{BalmloqU65-J8duVK-dkQCdY+i z1t+Jxc@!mv)Hk4lDW`C}hj&k#j}EUoKc*xe_&Tv*9IB>poar)UnYz7!l@~IbE0vS$ z`Yl)1KH#w2nab{X9@lc6A{fc7wYn!JUt)peM#Yq+GIHRAM~NdWhVp8}SSVsDt^sSE z5$ormSd_W>Zp|HsxH8P*h5*Jx0p=i^+@Ij}qzS&3%$Be+n|ty@%061TpBFsL-kF*d zbmh7XUf;nX`6A2pd1K10Bqait_P$2e?R*hEvD+azP9)bXaNA6Hk;`V;S45Y`$aW)7 zn|pDsrHnjT5)Fdo%3vfLw+C;ime=pwO~_R;9>oL{?qfznq(r7jpn>j5RjJ3lK*qT9D<-+&+^+94X#YS7Jyx+@6#` zokv(5M{{63g;+PCN~oR-NFGE$b~vy_A+f{;ZNh;|IYvbH*bj;>AX&VJ;;9G6D27?PG9iXvsxk6iHB;d9#Z zM0*KhhjBJLUtw80ow6HFU4`DEW;@REg8N!ZSz5&Q{8=cm*vF|?7eEeTaPyjn2zM1O zg8JIUn7EVAS8*@bXU#8%isr5Nd7N^5*{O%>13_o1)4Y_=`JGfgh$}UaSXij#A?&o} zU6PKc*n4Dnkb!vt)MZa_r9D9g-=@xM{g}2nWFvQyanPKF+&qq6rZ?Xn#+l)qk&mo$ zM!U;kWR;mao_F=t)AIDME9}i2yrxf%T}Je3OCsZP)Td9=&G`lSHkIEJD+Z)hN!9Fc z3u9_p7}Gn4!9UjiErCp%(Qz<~%f%x1T)RA2r${To6S(UzVw>j7j2A6vMwh`^JS8`+ z8oCHC;VvaSd-KeyZ*|#CMo^3C5qB=Qk}AELB&Bp%^_@pKt00G61Yq6HTI20xKc+F? zUS5s(nCKEhsTIj`kW9xS;{+wfh-BlnPi{chrsvhkIT~JNm@^kdxVm?n3ahptU?%4GArIeOWmc~#X_iL&IzQhXv8K2Ot$ z9ay<4K5;x&ot@Z~O;g2kL7g?EZ_nUc1JgS1dJM?z_GU3N_et4IYNy$v4#|n8nN5n> z(bQ=(IxOSi2Bph+TfL}bXT#lS`ufP)#<3F;f`MFr0pZnNKgNT6a)WjwpKu|?KzT5L z$<)&3U92VN1x4rrph^?cXE~Ee;DbDPw{AkuFu#HJ?0IB+LM=I7pJ(6&3h2FOz z%tFk&1hHA_jZ@B$TOUooR_F1pu}|Y8y%OzAcCAjc7!%Vy7bPn|j{fnL zpRy-5Wpp#G=&kWfbE`MgiJyh!q--M{nToc}V0f;9Ou=k4ZzIi3nsd8eN^UNpO@xku zg3M(uR<`U@VkE0YQle?54kC0HW{UsB)}PVl4xFy|qS-<_e~=CHM4YrZtrtjZ999P{ zyKinkshwm;{(OQ~)wMgB;skS^ZZ$riXKIq8%biJiqw>?zofFATaQsy9B9BuzeR@&8 zWjv=Szf(b^r7I`70@E!|AFy`EmCWb)=yW+GlB-viEi738wlB+wZHi54+T)cY6)EN# zd0w5gFl9+_=R6KNpJZC6Ne*ze3yqfdP+z0d)uzZ63wy7jt8*fD`t$~VaAttlkO#d% z6R#pb%Jr-LEByR5uzuD@M{xKJ=z=B+Ba()gb}0Y9fa(iHBWDG9dKyCz%47dSArlhr|EGOI;B45()T1A!N3}SKr{5 z>uXLf1j`@qn_2ZAtfx;zBlqFRfwzf8(a zJ&*;f*-$v3kU*R8ts<#V^9+2z?IRaIc-#W=laH79`iOZPp16at2%eS-j*pN=2)a;! z_hzGmvXR|MGh9UBeg!{kedddsx4XJYj$-1;cJkCdlA|odJH+5$64Z*I+f|z)!THN{ zX_aU45Ri!zqJ$f!Ks3L5cPH(H!wbq?`1zeG!`e2Ss1u&#m!qIA-a?Z|?G!zIZ<@85 z=Ay*e5ZqO!^qP=VqxP^iznjMp=8p0~B209cX}uvYKaj-d3i)b6(XiE*k1Z^kJi4%G z^w_a_(c~%PCrp_zNiTFynBXazbl#+K<7&rG^i1{?*1E=fCQtSj7P-bw@D>$LoHVI$ z{6w#JoX1tcXxtg=D9t(CjoBh%46AQLs-Z3A2t+n{IQw)a}I! zADS5h4~LX)3;VXzp5D~V7}AvUZ&#Kim(-!#*;UQl$P|V1EE^;YPQERS;nTWSrfj!e zeX}@nq`QwEU*{E_sbWQ!-lDE(Zi;f1I!%$tq@A@!R}<9pru?oVwtSk)c2Ge1VA(}o zYIlijB)+MXT#02Qfg#O zPOIat@diA$O^T6cdrqcElF~B^4Jktk|0m*`RaSjzS=mBsOkzeNYV#|rPR@?W=u)=p zCNGpy8`ARIeRW9D35d8;WG8A2mSc+~P9~NP!w_bJP05p-IrugY$<|>`nRaSa-!{l$ zI{KEem6It)D;YC%bE}N?YPubx=M@!>9j}k#2H6$6NOkQ@QUH1^^rc-UMNe)~GvhG# zyRm!L7?MP8(uJOrqjM5C%%rw%MLQM=lM{D&MQF1fiJtc@B^yOPVm_HhW~wYr`qcl3 z#1h_^4w7@esXln}*K(2SJE0{tB}wA{6azWAM5aW{F0JrkI#F;|%8O2>ky%+bW0+TE zFa5K#{%u)F9mpw4WkAeK^fao`Pljq`X(y@XKWsnx30b36%1}4vl+2soRcV`98eQa+ z6wobYoNPepA&f5Kv33ohuVu~+iMuZ2)%-KOXwUq9}UPa40eG}7zKB<3=Pm|C(<;f<6 zQ7Q5^Ne0bF6y`M*32*D%r_l`K}yvl8e4=E+@aZyKtDMEcR=K!PJ>Br!olJt`qaMKXkT{ z?1U5GOr1GOHpcvJ5@vU!dEJ($)9ib@%G|s;DYAB2ADY))SZ2p;1(qD~mnZDV@%Ne< ztG=L{U*yy~Y8$*~E;)N(COR>fa8W|NIGJ(r6FN$f>rd>;6!1@Cu>QmWbuaQKc%wXO zPVQx5L;BH7pe4B%)y#L{@+2k~=sT(K#TSsqoom}p?nE9E5g~|DpX(ZDvN7R^q z^2*k!wbS`7C@7dZ21cKsPh;}yiIK3x`3yW#C3m2i|732OvX5Z$Snu}oRcX)1vT+W zdw5Fntm61j-Sd&X=Ffo0qeJB?JbPAAzDZB1xiGCe<-=;Dq_FJ1st$bC3r0TpYzs*V7ZoDqsbn0!<{G8@I0s8BN zh%e95WV*`lFk97`F3}(GvAZ6g&4(CKS@Ap?wabsG!Mbk1HYUN&NmLpTsN-Y;n zEzMEx0ixx|)NEN!%#~kFv2x@BbCs3iNXP|h3QklI5C#7H{^xLj1Bds$JokR?{XF-1 zo_nVvWtO_4<+I<><+P7fM97s!nwAvU-93sPJ9A#nxpR_M@v==n=3T=3k;~^X^tVsj z*f-;rw_aX#ZZEeLficV^yxeuf@RzGD>$xA1h+%&VUiL-U-6}E5+D7S~1AM;XE}SeR zwLf}x>PTe-*~2n&q3gb~s>NF&_ltWkFK)T<>lpg}*6CAvdElMV7XHbU8?D!;Iwb$M zrAOs8uEpznue4eDc8`>LjMDZJ#yS&bzh1cqTbMC$)afzEubH?kd*^z2A35^xuw%v{ zoy-20dddGD-}2*%sYeXv$@|#^_j~IpyL-NN==Fj(fKQ3Pm!C_$Q$p2F$vAK&?&jt{x!{HOirKxLL%rfUZHz+tjC zV_ssY;4QlDdV3gSYGCWhg1o1*GU(l#GycFQ`oATI0u%l``uX4D)e1t6>nT_C?~BjQ zGn@`Xx~&%^7O&!8z4=}2-_det)5GnWQNhq710p#u@6~vc&%i;C&8S=VJl(Fr;dicG zJ+O8Aqd?yH)knE+-OrTuR9TK)xtizs##!0v&m*^#imQho4OAY;-C2Q=hl--Rp3vk^ zoTzX4@aaGHoRhBa7uIQ7^tWIB`FRBAA;|ovS4vT`Xo5r4-y!TFh%1L-WsO1eH`umFM zA#u|ESI|EMZ-W8t*$x{&r%m0#OPLb(`(B%-pDmD9pxs~)5!iG99)K4#7BChxwhF@r z3LdnI!v+F%0n(Ov6v`sdP6tQR+7slss_Kse?L#bK!9d;E*`#4{pD$}kr*MwtJa*D4 z{s|8+sbC-*3G}ys)e1`shX|+%t_$h1e+%A%PKH8Zfn^!|Ujvu`CuFhe26#%q2jsIg zB6#Zz4m>3`B{>By+}RQ=3l$tzLdkh;if>5-|ILX(+9Q>dYw1y9sf2;x3M!Ga+|P5cpQ6gvtc zT_Wv$^0;+u<1WlFOdAI-Hx&h&D6|MtghK8xA9-hWU@K$4gTtUGWLzjwkk!?s@ZMoMT-Ow;)v=Tv_4lK~+*VzZ-yP;^Q7J0&F!3Dq=aw7I)FN%cqb_*l?XHgn7Z~RtDXB61XUo`u@`N=g51=wl`k@H` zRO|!nHnsy>g!Ocu|?Q1t$O1cuH*O9wPlS#YCc;reG77`{GM!NV4f)kr!3vEeE0iOZVti*VHX&+#J z^KX+lR95VCsg8g3k9ryytfe&=_gP{=xP9%;7&vVB_y*|Nx?OuPSj9vlf_`vBLWLFI zBM|{8vmP=}=S$pjphcSSZG9#UK^g()690ZE$+4Elx+cNlJWYO83`mQj3B5jD{%y3t z(n(GYW+X0iM8ZS3wk35>)oJt96+iDeZVvT85j*L z!y1L-2m*Uv=7GV$yLVL#7(ftkGN}e>OGY68*`PY$AgB%$mlPidF&GzQ3K|QN8K!}& zLX5S{u%tiMYYF9YCi}hO#P@*OOlV-O$hzq^szH$g3B$2OTW+h*2{%bu1)7lGPlNew z5)71=gy8@_o*#XPN zRC!adKj$1<*E$y151hyDU^}eA8@EXJQC7eu;cTIGp~ctga1xw^m2lJhEUk1I>3jzy z1>N{wn9>(VdO-s#c_YpFx;lyVAYp~mqpe1~vty8n$EB5=_!z4}ZeA!?ZuxwWn^du$ z(zlOfMY`m0Y`!BM93w;#RQqTiSSx(c2vwN$$ErtyzwF87dzp`W(>ZkAa~(opr3&i+ zQ7-?|k=R76GhZ*0Ns0Bzh(7&2;Jo!ml?1JaI0Z3!&m})>S`wV^TvWqo;;-a!m@U*W zAVHcSJ|#AG3^$lhg0$>6IiLXW0OAEW*h#)v%KY0T7Uc4a5)c4W(!s*gzE9W~Q4apk zQF~J5A5l=ty3#96eYnJkV6bqLfK%ubC~THVs+ZmINn;_MLTyb2l=(W;AjOfUAR2x! z;-s52_9E;!T87XpzAd04Rw!O5enQv-Nani*ang0ZBLRkqg&hymK?}FM>;`7`u<1Vkc{G!9H-M1DulPyZ8-n7BECu+UGHM`EWTnX42(L0BI!8CII`cjsHJ(>dPzv^CyoE z^?ryZT_M?G?~^=GkQSyC-)h#KUjg+WftQ87q$~hF;;ZqB6loJ#f(U zBxF=tF$h_plJ@K)AJzw(_}(*nHTF9tUYK>E-nQ=wDc34Z5{kY<(zpfOXgV`nj46ry zZUP9#ffa4*&zYq{PWJ&z6vDs11wSiJ{GJZTTf{=pYlXIbF0i2~+dg}2)=qkr$l5)F zJwd3*AgJk}x)q7^&9={swD=?K*#qq4(_AakziVmFke9AsC##;mfIKO$a@xYWWA1r_ zT1%_!I`T}-tXd0Qwr3tt4mfyaCI?$^=eL;S~wBBk@Shk`$%oN$MOg6`;?-fxqK3agP7SI#?$;B`4t^fZ0`!6TaDu+l0$68bl zeWfy2rsCI4$;JQwBry?k-lD73Jj_qGoLEGFdOZS<2#ygmX#go3O4qpiJfNF{fM4vsbHC&QHS34UkU`ag-X7f^6mpgM30Bzjt1OO;? zpPs(pUF_D;Z$+8A{mr7F@$7jM7>6keV(^l}V7)>kQV|zt6Y|50e)ElWKLv2>(NP2} z_TZ9mQ_?=1QBD}DSbZw?sAsFrO<~*2s&wUGuhZxEQ1;OCY-`>pozo)YA*avN$(kiL zX9A5b?lbpl{=0uONn?J$Sg~tKW~GBdM9M7~UixxRnBX!PCpo@uay}T=?Q*$CEDGs| zR+dca9NVub^^;<2VQ-u_XCeWN$h?I`qCrO9UUjJJ$l7|WwvnbHQ_1w}^pIc`^c*TzXt@Bo&9EugqCmR}D@W$%~^ zU2Q6~6RBnZSJrmHNwBf&kmr6RQ4_$Cn>c@wX)QV`wG9oA5Bs4LJ~wI! zym?)J_=f)HKi6e}MU(Z1D?JF&K2Ei;UYDQ@<=Q$Qr(}|hiRk#Mh$Z2xHr?}3QP8-o zIiZbseNOP>?kye+N&q!oAAiA5FNB>u<@1CCN#&&2D9;Ixt2~K84wr?i;I8DvxbgJD zRKiGJDrDwSNI&1)SVBD#^um@mtS(Unz@+l{3sFMk*7X;Hmr*}5=S|0DB?v$>EF350 zQJ5T)ELAlZL;8NtM2*5Z`OPbYsEo49FFitLd}9rU(OhSkTbW+XLoBeiTJn`<=}gJjmTBYOl>)x7N!U@N*Sjt~XH z1IvtLMOxg=VB5~suf<;0{(s`;gpM<>xhBBw_Qs7!MUB^MYr@cpmc#y;^Sh;>wHmyf z{Iu0E8vqFxE_T|X+12H_f(iUW^4q%ZSmPt+Td*~lUF`f^aynbfp%J`27nW?&^*u0|)rEt~m4hX7Y{2>B z*5HXFvORm+Dxt@0YEkCJ>e4ugRvVgGAt>-#iTVxn;aqh$G(y+r8Ge)j;*b4OWrjq= za+RZiPsgxCx3XjYv z2gVj2nT8oEhy)=Fo!^gv?_w!B>BOv~p;d?AD7lCf->TUJtef5-$iOFSe%fJj+hoSM z#U+8S&yfC2?0NwTOHIU7cTwny^odCnNit0k(&>Bk7rQA01Z-1LR-V#iZnl(Sv_MXSCYl$T{%xGmKZ6~Hf zDe+d0zoKtJ^)#$dOv@gSLBb2IL=@-ps{EJin;0f4;SSm#jc|L~(zTxg^mTIAI@i3d zBl|Ut(OvE!^6XVb`jX$P8t2PBBFo3!dw|!YoO46apO2ll!~VB`OHuu!2~s^_@xmOKM-?+8LnSjKLc1)2x% zkq=Ik*<7=;fPC9Yp3a%K=<>sXQ@cXKL?u)1+)yFk=%F6yk(2C9-4nP4{BDn4I#~{; zz(M`MZhmAC?ZXae{QIeS6pB*(lH`FCH&ZJeqB>|_;^}6CJ(8wj+wtGE^*4=slz%0q zVh$k=5x{}*kWGPjYi)&H0kV`C)Xr4sjAlBB!r8whX~Y4}#>osJD$`XjB6ZPsCHWtv z2%@)~9)sp#uJ{!Es+Tu&OAEhu6~P!vkELeGM|ObPn1y$ zCKx-5biwu6CW)QaEixm2^N$=vbIz&A*Ftri0jU1mBR6o28Usb3lnbQ<%S99%If8z# z!#C$_UWUI>D6usQHg*bz+4r6ZPw9>ydZAA7vT_nB zDO;PkCJQ`?;>J>J&JcjtORCmRJO--n4#`3lglu7p*lVXn-arhTB=umsFiO{;Z9s;^ zs#(YzA*`QyHZV1(Kim&Bl=-=5EGNN2F-{+7)>Z01Bn$C^vrjAmLHTHeev}b|cW5Mb z;Y34H*P{l6{-0;8q)0N~MS!0rjZ55h1Q__G&$mBb%M9o04a5Ikn=75nBkgs?p~1mI znlOQ9$Tv>m?RmNWC`EdTN0>lFk{Or*j7qjaLso$g@-#YMd8#M8&5qYlp|pr>3IkE{ zU%v1Y37=NNe9(hwtmM~t&CYuDsghg_Y(5K@64}g0<+$`JL~_P+yd#o0gN;pYXe8)0*7w7S=i&}uTJQR9Fen%NH!z!pWoMBcj0tT^DvE-;T?!@w z%b;-8U?clqr~sPjO;GpbuYGzZUZ?EO!UC&IPm72|r*coKMCX~_1lZSKkO~@JcPoL7&Sz-hBn3T~&b19~>f~B$1<*(49a8!^Rd!6fHW~@0~Rm;EhQ4HZqW$k`>%yrQ(0l}xW)8Y z-!Y8q?|sL;#LQ+Y*3S0G{YrwP$+3@t_Wsr_(f1JM-#XG_Fvu`es7$|LR_IW!I)Of@ zq9{}bldOeDXDjehBN7qW1Z)Gi0TD*mT!jR4g?2%gOXk|KmBXel1b3}33oY^V3c+5x zs#~BFJhde$kE9gXPjI?CLFDeC2(>4*unLR0mP${w?w2~FCGHXYMk5uYnb`DGW`%e!-pE!3CP%59 zG{5U0W3c{8V;>qpmUK)y*>*cU{H;}hx=P@*p{)<;dx)Z}fOFftNrbYBpz?3U7lLh! z?=rMB0(IC#S^;DU`*}(f)TElHaRUueDTV8cOt^fP;n=4$9TnZB-V{CCfN4?$v!ow` zfP<2XLiX^?FvxJ+K{E5yD*qM)sR?UOcfkjw ztJaG6qJ-(mQTn1$&?j`k`5{e}4=eq#@Z>GfL|12CDJacv=(&v7u2D9yDMb;teQJ)W zGs3T8h1*c1!$^-PUHSDW&`(UNTCgvW6Y#-x{BFA3suze8@Wme-hYpaALkIIchuu<) z!yB)zz}Pn}U8qw|$*@P~-<-3%hY5e9h3!$hc9W~pKY83~l?1!`CI(A#{Zy{3GNbKe z$8Xv8hQd!XPe7gi>!R3Pn-dBG|B!_SLam&>jlple>A_mrzj@2eh~X&h3im5F_~Rm! z7!rMmOpZHG@!AW)GtRgi4gVp&aDMOja}QqK2{Gh0(;8~Gn<t#_@M%{S67DXo2jrnZc7y~9+gmFu z08dU1%H7((gqgNz;14!58^lPm!nKcDEQz#56>IN9-_47CA<)Jw)?N&Co5|BGMpY@z zc2=yN>5*IYJLUQfcI~$XpMM@yA)CMIw7+WBL&D3qmpu_Yg=&&EM?-U7XHlB{2jTV2`MqJg7ASOowTu(}dgBZQHGf zIN#;bi-M1Vkzl?{`q^zVsI5QAlri7pa-=)P>`^DjoS;p(I)D z%dfK#`%c{>J%A`(jUKUVir8lFJ@bs`R$*b@XZx_+HPPYv^Ol!w(#2Kmwz%i(U2;6 zfFk+AAEThe0?|g-vOh`f1g2s*P2ct!4>p*$bX?4(h7i1OKu+!>3PfCOuGgqLw7Hf- zOf=7_e~P$$YAw{CUwN7(w_)7vU-hulpt$dFI&@D}ctOgCZz)r;{$a3^I|0uH3 zX_PED-^Gs=PtqH5(q7uTL2bRP2z@-ixsrkqfakmP)0bqBJ!>xaH`7}nV?tw{9W58I8W|r@b=ZM?--U}5BCcpsG>I1pXSJwMpI$9>{*(GFZNq6Ngo>OGKUEp^dxO ze}5k3n8R|gA$r#_H+Zpe5c+(*HO6s?<*)v5+ANL;u6V2#5L?VG>(ua%s**hFWJ4J(L5y_A8u!s{Xm zBmBFzD?ad0HQX?%d&h8_Z1DC+W$yE*{sRcsWyrztfbp!rT>(b#u^sG6WHmP}gmSAe zZDL!=2e(sNv$KDx6z=PEAs?KGyP936(dyj0by7TWFR14-D#4KnEu>rumf95cfm{hq znbB`dRT$_Qs0X!fzB9btXvet_X+vpscW6G`Tc=r8uKc*}MEB1MJF6ZP?N0dghXv1> z@GRx|R`sCogudRKc%DNPLa!LX*2E` z#GF?=It%T2e6{7{iW02eoveS6Q{=4L!SE+N49f56iD|(UejuS z$3|SA3N7QNT&h2?*+$Z<&&rL-rO~=DtxYkk5SG1kc5YzqM#@ICT5{Zb2aduM%*v%m z=x=$>n;7ZO162H%y?hw;afcsDRnM1)W2zmzHRQeijSDi~>rUHDh&s3$dN0v*R2U_p zqIPS|I*Z|^VCL^zi%zV?oiELNjdR?F)Lri1w+F8o3Hgvpl;9<~eBApSm2!n!dWP#$ zT3vfwp{;ilq^3fAaMOJ@yZoln)Ubm@a+rA;^Lu;`Gxr3V7xqo^`il}(0qTR;| zOT-pByn+j*$YJdEq;77eTN7uW=0;_a5!F0UE9*jG^9AVR2=1i1?_fsm;^Aa6xMOoq zL2;x-&tU=5+9@$ca~eRjLYgh0_ox(tkmNq?R8aKy*h{Ej5VKb~iFdg9Fi4zE<%r(VQ2)QE&lnZW zgIOz=|KmlKuT-K`j|bsT_Ta&oCBrGQ(-zE51f7bjHe=D^{+zhq5WS}|5 zyzwhq)%5HT`Qx`;-)DW~lUxTjH)J96YYTq;>mo74<@oEm#R5A`JTaa<8(}4sFCk za~d{fUUPpdO!J`PE1rpm`F!*Px&YS9DMKSh0r51bc)gzastaM|67}g+RXeUt?g_Kk z`fw4od$QvC5C(VcF24_-Tk(6G)bBuO^9V~h>in0NG4QebU~;2zEp8UPA(Z~+cb5`Fp7$Y0 z^~9*;?a-hesE98lVla8vU^3@Mboo$}Ty5e0f8?`?H;{E5H_tXgJeGM$#14*7weOeb z{_eZc(Gz{|V4Sen&8@DPuk%9H*K03#gtSFhQ5#(OCmbvIkRNi{YtOWZc3eYHo|(Ho zS3<($syS&z%F#uambC9I-R>$8WVIQLIJWX^J=-SF*(A=N8vSITQNt@|KvwS(UJt2G z-(|z;Lc=;EXC&i$*X3$?rg~gW^lr4L&XC2lEZyYp+QVa6h&3ep;gHxkxbS#YEd2Q1 zK`D$Jx6d***1fvEW24Go&xU2r%)j)kMDJDRh8mrt9?QN!2FLUK;J5rnKkv5 zE5~QeWC`_rK0w?k$ViTrk0MNqn@?jT5ED0Y#C`=;um!k;!F+Yw{Gnlqq237Jzo+nz zms`G$anmsO7tZCzVrq+Y{~&frW)=ZwA90h$xG63O-TJ(%+2kamIO4rJae?D9lSnZu z-CFT8LlERdp_PC1WPX_=l&G{LSIEPT3lOdgOEsCJ(0Aa2_h1QZ{wRQ>)pQ_Y>SnT} z1f^ofAIJ1H=~_hGd*##$uiw2nCJ)$79^Rp+=~OJ?6aFFwaDR{VT@g=b5Q<2(+w%8B5joBf9- zZI00#T4%xjL!;MF#VSavv1~?%_1D}9#BOO(?5NO^+t*OXH7M(Nh}~CQpgjLA#l3m% zYiQ=klEyaAw!RIKOs{4zb;}<1 z#a``07H#aNZmQ_MCBiBF_S*aBZJ!Lii|C-QBi?t)zAe$1=9L;JX2sc|IES}+d;8Zi zsM>@C>E1`e(-7aBjwR3-9>C$JBz$nYl^au+ZgR6Bt=z_=p@$crjBd}UuIzBE%MuOk z@F^vWYpnJSu~xsmUqUMZ`1G75_15fuq4=S*n$Td-a3tD|C_a|s&XcEiD}JGF%^luG zbg6xJk*S$uucme&ikrb(1KPgzGZ&9sA>Mj12!Si-GIJc)Ag$2T8U+}wM#OzLd+hqv zG2mT-@xI`;adY6F1~I4z3MHRIKp4`IRxEx+2Pmpg3fd#m)hb*5Q#~K>frzLj(U$X&MqKH%L$SC~pA@B6H z$ku_++J7ysAfvuaU%+p6ZP#z9r9|-35PK?c&ixJ^VA_GERS;S`0wLIQ$j%4pXU@TL zx?RW*o=%Y|Or5^=m*rm_z8a{e()YTx6fb2_&zd&a$cGeYEgW9=4xzNxpY+JlUDXrt zU2Sz7xpK4p9bB(_ugdY}$zi|rv!1&FuUwJL-tt}EY=q^`kN2E}gDg%n?P1xA5NTGy z`rF&{K1%a}ew0F_WACnbEQh!O0=C25OkLjg(FPrVhx=A@Q$keCJTsVQrJyNXT|d27 z3cS}72poRK(y=wOXGjdeTL1AamihGIY)T!k_{SkC=j6X=(bi&;me{>tZMl62RLy$+ zD-5Uv4}G0P1R$!T-c(Dky#gJ{{AKQwo+s7X1=7xl*IZkfkn;U|tCuzjMkEf_zl9v; zhrZA>;vt;>u|@=n2{pX7;dc$dz+GPM&s~J7Ay=q6#gN$9|Ef7ljw9-syt6zb&P?Xg zyC2D13pOY3G{KW+t8JjWKdF-lJ#V(KaIED9S8mVH*tLOCGqFqESP3mU6cXEc@}u57 z8H}(6F^@0KI&l!ts+H%?4N)Jg%`@Tkm1Ks_&Cw6|atOJ1w^iVnM|tk}5f$~cY0gtAsdstm}&jvNF|cqacQ=d#k!zG>Xm zjx!aXTvFQMS=PpqzCqj_a*^k=^?<;qjnP-e?N6zE9BphjKY#jgpTtshesHeNxYcl= zym=`No)jTdSaJ?SGoWws+2w+24xD)pcKa#){uk}?9V&hIQi;ofUoYPiGyZ#G`Q@VL zC+=%DCdWqAJeBR{zZb(N8NTQYkQo9K0se+tkodBr2E%$JLZVXAkQ ztJt>rr9{a%*Wjnm3VP|4aji3fg%M)elf%?N;p1~X)qkm-IQZ6C=$BiCSx(g!2pl!+ z&c*N%?HKqz%H*;6)mFKCJX^?L!#Xd_Vd@T9{;2te@_91v0+I9drC?V=B~dD9>dfHs z`7HPWwr@j^U-%1?3&9vo9MfMRfLeWjDvuKVV?a0irCZmo?{-7P^j6D&#rYk$Dz3M* zM%D-V1H@t731`3yCRpG-9oBK-naeK*OV+7RTLx%l?P@=9)VjvLzk7;OMepFzYXdR4 zE=oeXZnik@`m7*Ew<8%`L~S*3T>7$7FBy>y?Q`VM zPL~Gy5n;EQW@O}*h_AOG>;~mr9srMg#lz)H)#max>}TbDqf_Dib(`aJctcL7uf*Od zBqQq;uU~U&EqvU+X1MN)ZL?DArI|-5V?3!gvdcgF46ZT%_?3$fIeEVD2Ic2^*2~H} zy#o~qe%c&e|21HH!hiG?Wf#;?_)#!`V>!Z-r%z9Zmxg;(^MGsyrtj}=gA(3bpj9&B z_u=L9>}l(jGMpHrV1z0jSDgMi(pP9}I^w;H=g!%7!lO(2%=QNv2b!(|B$e()ux z+{#R5&Cr>_AjCwegbm*F-`7|0&<0)E0M6{OB~lt@GZF3w*uJR1E(U*DzVo#h-hYb4 zl*N0_v@4D3Y3v>yWPiLmG3voufo9kIDj?G^B!4N)UhM7JuW4}OPdBv&XZ$ZY=BV!_ z^7~M<^Nu$1O2P0-xW&CadG0>eYibe2^{f}6?djt)-Jy^y`Dfju)N2#4&|~2x6~s0= zTrGf_cK;(nvgFO}p~N z{U_*c`NZD8@zqLeg4z*4V*d|ZTE&pP67O;6=0anzU&=U3JEEw*_Rbpo;|`c^URqy& zSfgvxknM{@g7LECsGD)e=?$BWtBKyol|O4J;$<%QB!c5vbgfNufBpYR8P4shLfnw1hNMf($nlOQd6uFcxE?cV?ti^@le#*FxBJQ zfVI-2^qMw&wNF(o<}5;dZuh$xgPYM86Jz*iyH?XCYb8Z(NYGdPOZIR7E7ziNKt%UT z!Vu%;(x@{AvO8$@zFuxL$C}tM9C!MtNr@LP=-+1LN(FWP=_(PxSsum9&0jcW$$_tt z3RWB+4M#O4%v=y)|7u%tB->4FJF)N))8Dph)no$^y@3{X<9UTuwwSU>?o!-ozd6ge z;}P2>_1d<{L*#WkcH-7{d9BB4oV3wMWWVexx5khs);jn=wwEmYZxEAP*Z3SZ|KU2P zr0T49uKIj3)tTT@LH(djXpjEL4W&#(U3?zZwd*az9xjr-9pQ8;@$ou>C{!)mUUwST zJg)6vtS|?Z*ArZ?FS3UXUi}!LF%CaXJi&;f~ zCz%aG2x&8NiL7pzXjr_+}jM4dee3yqaB|7b|^>@U) zoRMs^DJyZy=RFkRWG9|&aw)sQ8>ZHFhvNAwQt(2BqDQbaXa_Q?tnYb71O zxg%R!WQ|#=<+PaTIKfGQ=Z)0{iRZ46f7m1f& z?Ue05ReTw35k-;H|$7}e5`K7ey#RwDxA-Hpt)#)X}9`oLdBSY_TM@=KF9$!!VF=q%s81Jnm zFPul{4*awq)jCF)`C?5pe;P+MIn}Y^!&Yrk^ni+5xQd`4)%hB}hi5{?Z3FzRY*Rhb z|CpbmlvNGxzlMn^^-(Mc&#wB7W)ywj)1$N%o;kd7$2bCr`7`dw}vP_dPW=bx}jG33Z`lQliPI$uq!-$i$ zS$?hxY<5t91Mf)1sO>T@4bG}mG^*Fpsoi@YVY}jTym(jX8Zxu3}T2r{7LGwm7N78ErLC=t>rRZ}D`ICu~yHAK>tW z^r&7gZu0UOElvJTVq1Uih-5)%-7sbXk$LYl_!H+Ohtypu}edbQB+mCxchXd)0)2$(e>`_ z70iVN2*Zf*dS!&7H@0;BM&3--kK?XK2t_4B&)vGVZm0P{Q&-&3CEXGoyq}7)GVQKU zP&qvP?&8a1+fFN45}S~e8Osc|Jvu>IH`&Vc@=eQc|6?xpm(M(|n>@~+%glT_|3cwB z9+BGl{?L!bml@A^KIiar7e6sI3_QuE7R9z$~PhxOWDxF8BSq-@y7HU2zSn|TkL`vplD}YtH4-OfAAG@=5Ow8 z>cV{s|9m~0)|uiHTM1vo63ip!1q<^6IiQYext+!=FSExeV`#3{j4WqY6W3_<`ovqZ zOiG6^r@?2z--s12h%G#XC!SRm9KEpJGoPgP++uP@?shdHTwp5lh+1`5-5x zEOVVVTE6_~tpQICP7HAT!>IkjmD&TAROfl#<7l$7${hb}M+Tamp9OajKXCU>CPtrE z;2T1Z$_!@Qt$VuO(+oj*;IExo*F7bLSTJ^E_;uLD zW?1L3b$=|zen{kraVIv*2jZ`vfJlCHD5k!ALX?;#iv5?0Sxvh=`{)pJau)I!Q{iCs zb=J7fae(Oh!=I-jZM^4uc>MBmimqAi?G?G|M4mKvLdS3BO5LtdmbJx?zEB~y@o&#V z;PE5ZFl`Qew2f~cM0x{7@cbyjL3Geus09%Q0qkKXQD{e6_>OAw>^r zU+rWD;I1ugBMxjmA+ZcH@(t&HcG6nugrYn(&v((P1ewnJWmme`mt6?X$D+Wi3*v2A zi@d9J??N4S`&jipX&d$?ydsk z2I0@L^Ag9CCDm3TK7REAw)k(OzQ3fO&%w5X%fJ1i5)zAj^Lfh^)S>b#_@%rp2=|~0 zlxOP0Um{qqWXR6<+fbCET^p#&fpn16*}T*8eesfva00F0v4YQJw&TkQyAhcS5;Yg7 zJijbX7uCI|O(|-!Sm!s>r-BTj6aKUqxs4~W%@vl8v;2~TRIB&yRW4AC+vIRr>1N z${UTr>ULB$dHErom5s%+ef0SER)Avu#-j>^jD%cjne; zV81Ym#>wsXU)$B*uqWv;_KX0C3cd3K!n=BO{H!Zz#0@sRpPvZtSSsBg6e>zT(}Dt9 z7LKe2yctI%)iLXJbFU$g@)MT*d2wGjz;5NHh64a_194J zC?x!Wx3vG zI~gfgelRuVaE%Fb%#PaG$B!6q2jVZ5rmImU$g&pF-VN6E7jTGArBk*ak1N#SWgd@1&9s zKACnLfb(>z`2H6Ae~i6nRFlsW25O^;fQW!fQ~4<(O+e`o5fu~!1(gmW0-`{G&`Tm9 zpi~>ZOOqOUPeKupmPC3@M1%wa1V}Vx$ zsM$qFBXlrBuV!!Qc@X47Hz43u$G`34fSLup%?td#!*3S@x6u%kil2<66 zmI`e?iQ@DFKJ?oro|1h)K!#JqKIGJUrAtir@jS>d15J;oDyjMXPbuXk+L@1$w*qe1-V|54hktGruW- z*#{7WeEk#hgqNQ1cDx#U`w#pEcjQ`j(@r=mE+?>qMHu&D*stg`-nQN{<%imDL_5it zG*SU~*Vu+Kv2fodmrxqNk!FD0o@t%Tb?!)}{`z;+LY#d-$63blVSm&Dc4{XWljvVj z&&r)-^W{;%|2kjj_6GAi%JAc!e3ufA_SuAbYWP@wHz+%liUE`Bo7RFs9B@v}4_z6H zukT*ydqlz4h5|nO6~^MUT%ZAa)u6!%FrGXgutWi{|3MCXFa%vf^CV>3{fSNKS%baG;wu z^T>&ohLq_z5s(&om@&-u4q(P}#&664Iyg=wdhSbJMb}Eiz}HrrcJz+-ZE2x2$Fs4W zoWN}B1m*WQ7s+6=E(4LJyyw^!>yMABmC~W$=3;S87X#8;6Pi=S0%Fi}m zFVSvs;~Us`YtMr0?e1;N3gyc$5`ZlG`Q~}?JoXV7B(tF4HcTYiVCRV)lUd%in<$Le zF)(jrT}lgbJjTKg>cJjP7F)6*M+TX9!7!6886WXbt^?abb#R(HDU)j(sEn^dm{%cW zax?P5_+j|(H#mhg_8shjcXj~(sLZzw2wryg<{|vuG=qrvLw6{+8Z^cF&`bEq9T|L* zlJTd@O^B@1TcB`aA1e^K`rY>L*-fEyQ5bl@^8@|2Oh>JO`;D7mIW&-?1pX^?U$9gD zcdQXZiWMT6*#A}m@BPhp>aF1^j`(DD1f@$EK-6@_3NZeONJ0Ga|yho=>ZAP+^;6bu)Y|nr4Q1wUh+g z7Qwh_szqTH>`VFAUx%saR!99RZSeJGc1%EZ!1HE+V;zJ+^_$@q>V#9}K0spivBQ44{^b> z_D@)1_jc@(ZI|Bg0974L-PAMg;KDt43V45@R3Ork|35sI?%TDqOb9=T4C7!oiI%&j zL;&C};*qxXje<%cPG&RhWcZ2wH?fW!41oO$3%*5a$!@Ao$ruY%4dEEUk&}+8ZYdNi zoD}M4_)fR>xa@)CN({zE*SPxFs%0g+5US^84q|0LWgC_QBFypniWMx#xv^Hdwnl-P zisM)v_1Y!}wZ?HNeSTB1ML->&lp3f48Y1-`zI~wGvRywA2spUm$RBJ@F;EH0rB;rUsq1WK9l3n&FyA4qGO2E_Z2v$ZL>e_eZS+lIQe-sXYeh5*)1YLCqG2Qr=v ze%AEc&j!(i0j@%s4wsZ><6D14<9sN|poHD1*pTF&f+&Qqqq2s2a=}M3l56v&xJ*oE)>#WeF688ca2b=BU{9k;u6aQ-c zb1=Jnu>4T;b*d=|B4f0)M|S85pA?(r$yZJ)klM$TPp!yJL3XI!*tX#HfKvKJavwWW zHt08zeOu=6P3^1}AujOe8FX^Q*a&Q(OLt=B15p!H%{DF6_lk$F>6T=?U}uYmxq79H ziE#XfV=&p;EYn|}cDoEaD zl~N9D6#gKtTKNo?ml5|!y~K7$f6?qiE&JQ0upV0Elm$LORQJ_WjQxwj);{2@s*%o# z0(B0^DcCTKZ^H;Jw4E=!jgX2ls1Ls12Kl-3-$q`fTFFCS{bLGbrRMX?6v0Jwx!_nG z?f9`7&}n)%O3f=zCpidnF~HUM)rSYZlK&lLe$uyM9J)Jrgq=LpH?TSYcQmm1JLn?n zSK!4BI}WQ+2AEHm#CieXHI zyG^*!3vhu5eOuiZ#*0*-8ezc?%6?K|qya!-YPi}f8xq~tgvudRTf0AuaF&I#NuCaC zm?U@IyTcItqO~l5Yh^16zM6gNyl{jdJ`NM&7)P<^B!y`=^Az%*L^|KsfgBh|p5J#g z`n+4<;ah;n$F-VpEK8HV(S?0+Q)d-2Jwv@3a+h#ujBa-xstY|h#wSLR zp>Gu2Yk+@#BEvI0g4^&|Kg6G34kYBFJy;(J&+C>5@o?pYz2`3-*#;M|5D$~mZif0g zQw~q~dVU)EQ%< z2IV{*e;T}cBIE#@M`yS0O)K#B0P3DRf6bKlWQmaVbKK`Zo*2I~br}*3o3KY|0jdV6 zYTSq}89x^W`WRb_k$;AIPc9&RtnmVqyce<0ffBeqr@-VY`FpT%HMj*7VjZ$159 zxy2~G2IBlr`yMCoa9P)#e@0xWAq;R5GW+dH71tmxiP@$cG*%fgV}pUbh~;F+3kD+2 zuQM(1UY#EN15j9<{n?;(nheKQRuablt%jfL7|?I1MCFV#EDj|8SUVGaFEPm~8v%~t z?up0@wZ4LPh-W*8l7jdez|a@&9^6S8GBR7S3NnRZ#~~`pZshgWX?8o2;cZP$c69lZ zj{Pj#eSNKDf1eOO8lNL*-OuamB%43d&Aa6VtNnP8$mSl^m^2Jv)J#JC5NX4JfX^|F zo2+7Cq9I-}{v!JXJ+zdbDveE7qAvxnjQsFOwInHUT6MTKRAY_*r%mgG#(Qv~dNkl) zyw9zG>njDO1Oa~B0#DxhtfIYm+uhI-lE`QG?HK%toYWJK3nIdINA^u)nLM@^Lm(s7~^>6&X2w`(| z?CCaU6LTI?WCB(oLk)pV%>$4k)5SE=Fz7uU_KYu!>fSs<c)}jLpt4 zRR~B%y_%ycPQoEPh~+s&3FD``;mb1kk;>}h12d3wh2Fmu54V3j)R!vb^whw*l^uR*+M7|z&MqqaJb1MLm_Z)A<@O(dIJ zr_aN7Kk|AFDc&dK>`cxJgx^_ul*&}W@pTp%_#J7R%;eiQwJW4Xesv>;zfKy_DdHqu z?h0Jr(otcgzfOn6XNxNz;UMT=l4|LHsNkvy1N)XbmM8Hmkfd3v|+KHz&i__#$HaL1>mVKvYHE?L!?ADg)5`}P>uD>N6n)0 zbwtW59f^QMQ60@G?^~!n+J~_bqJ7sJ;r-TwS+4V)Did8;J9|0G$X{oeUw)F(*A#mY zw&9tn-(mr_NJ!E4jNQ$>UE#fz2|vnDLDJ8*3PuF?+1-*AGompsrOkC$ zR3b=TKjXIeJjkg9{IyA$pL5zMGr`{&_n?!S?SV4pKZIQ;HqFwEJZiG#miyI~{tlAf zkGJUs^Z~LwX7t&=6$?q?B_*A|0*Cr>?E&QGcc%M?72E6))XVx!h;L14)6O6^6(Iuw zu)qxF!Qn1-g*b?1f5h$(_O^;}v#*c`CtR-%%AKQFs9n%1&egY2jnk5~SbcPI3?SW_ z>R-DiiA(Yu(6+j_|Ml?cFmEb!cc+C1b?XC*B=-VYD)pV zQzy$8<3Q3tWD8`Ee9m4mapvFvBBnATl=R$uL1=z=n0a?4E&RRD!7?Dx+BB&?AtMI; zlWpEL9Q;yVe9X^dU|{JSA;_Z|t51~GW+x(o>9Zm`@wu+KE4c)1oVF%7rG7PZV2rlE zpF6e)=fPs)Nw<+kS_CbNKLNh^$k0o;xpt<%Q#VZ)i3K?gh939e!8zs%`5TPVv~ZwY zsGp!exLdoIrj2`pBxlX z9tqXMLA4!o#X(L3p`y6v+*V)ASbG9V7Y2FQnT*+K=*R7Zv(MYJte_1X&RKLQIzLWOb9A|Q>N64;n)-G6$$Rar+QCf(#+`qZ2le;VDv|5+-5Q!+%LaB)BsnSYwhne5_%jbm1~GJ)(Y2l{udDg`ap6;{&rwEztr0k zxi5mnB$M)54+3{CthDAT6u5hRR0X59h6@@)vwp_$pOaV`dBxh}p9@kir(M2JAf7v( zyOi5v`fr(C4)%ZztpHy|`Xg2r61QKiRnhieCTQesyTf565rFmQp+eYc5VJ2L-1D6` zV5~J`cVX9_b~y2D!(eEkj5!S0*-9QReO46c33nXO9n_R|K+EcM$cgB&M0J+Lx`P%G zL+QFEnrr&pq*Uv&sxj=q`P^Tv0uh?Y5#fzWkjszqv#L2(MCaEh-l2fOzi!>yzBOg(AWU zOq&B+xOZ2wH}L1ku7;FXczml^iiJps3>+p!mFaC&2sv=x+1i>b+kORyt<-uQ`o_XX z>XPq@pddJV+PZVCE>$TsLS>99+Y>=sNP8{*4_JIkk2!rOv=j&EZVg^rU5U|)lsXW_ zVq!B8@^Hr?%6lMjc!XF6B!&GMy*JL)s)WVl$pl%$z1Kvlz{9Q7KZm-Et=NO#Qj&wM z)PL*2I#|rx-zViEDiPtA;N%GZnXf>R^pv5gF6pIwZ>nEpCP@lO)dKuseBkJYDiVr$ zj)kZmBHHx_=EPq*jI@F}JmGoE4tpsbKFs$K;S<6C79KK-to#o%4#dufn8em_7>b*hE65wh%kY4*-wUMa5TLZ7*0LE_W4h7KyR8QLcrbK_5*Lr;w}Q z{Iy_kVG%rjnADE@^hgXSyTF<{0+nG8v?UBeiOxv~Ow@X^42h5q!lkaRTMkl#M{uJo z5L~|-b;t{cG0n{&|6y4-`bZf-DC0KV5y3UV_Ox*_sBs=f5qSIeRU>q%lhZq;5s32Z z43Fy!-0s#Q^j>`pL+Q7YWpn2~#;k=&v)*Gy><0SeP&K_~rwNnbGTbWe{GlCK+A2af zI2hHeFrV-<{K@AK`;_#-a4hiOZvM(DB4fe%$pO~NOGVi~cN?@im?d(`8U)u{9RH!` zP*2+ExGn9&@7Cs^ja!}0l!bC?n$1uQQ9Hiv?^9OyCl33hN6cOO5!=%pxsYN3@KRrS zWUfm_OyqavjIkV*gK!Ba`ztg;t=9Gjhp5GfF>c7xqZzILAR|jrvSLbZ0}!Qyz*S9^ zG)6(e!I*F&ja3}VYVj>ek@naj=YgH}l}uCbBd>By(M8-19KLmrY*n^*jv5>}I6J6K z1`ebU&+BTBKwdbEdD{2QO1ql%pGW*#7fBookHv?0Tx5-R0#d)`7G61bXN zST4|)^;P}WC4ke8TMJAR0krjJ%64HE{VZz%X7!P0ut65X(1qLCc^>br03)PJeR$Mf zKsIjOG(=}zBg3YJuXwK8rf+>APPI?_wX5WcmtI2s$B98t?dq z<^)<~GUy6!EH^UO*>@vUH=GM6&leh&gz1R=dCeobu`I?fvyq`OaNS(al*(B2kecdMwNZp%V#Zx0Q& zY4zYb>)NpQ^X9Sv9K_o}0FtSCkVs~pUOY$VZ@JQljT zy0VZ9mfvG0Q0??%1Nn*PJMGVj(KoN0rVnReE;|U^P_0uPH^|2AuDOc|}zgK*z zI5lYtbE7OhFxv`|5l}64AceCKQ)NEu~xw-|URt5I=ZN*0Nr(>;O*tYc9{X z-GDz41t5Ej0g4$Ww7j}FOd{ME5Jdj&n<7C=Q|1n}?Nk2D94)7qgtmFIriTY27Id!w zGlF(QRx$0i{jHkI3+=e`n6BTjfdX00zYD3?$&m?L+j5{8&9_G$?S_GdE>9QQHM-BTMVzay8pko|$@;VS^Cv+8DViJa z%MqfQhY0RoF62*F9_a~3eDPW%Am)8Ws6n6Yz?NLZ&k!+>72`eJR(J@)%cs-6Udqyo zD&KBdw6dMA>bNe zKajHZa}PT4GhjMzl^z6N>bGs=cl|c;e8@&IzbaHOhn+e|;*mzBvsZS_STZBQ7r5w% z;sd>}11kT74fZ`Lel>BI_npP-sgPnH0PF+i*-!8j;X}83oB5abs}g3}Hb23R!iNI) zHe1E(v5r4kkA)9i7q_4OGld8y^(9Z z`X#)rHa8sb2t7<+?DFurRYbbN>ax?dBpgIkIaqI1G1#rmIzf^M5XjKY_ZMqcbAWta zVU{m{@R?D|8&>gc)>|a7AEyH;zQYA-iVsK-B5o|} zu>TX%bSR0q4*5t}T{aNWb7G+Oe4S59qXNF_IXu0QyX_v@wtIQzH{?R??C!A6zvZi3 zeOx|Y<4t+v6c9$zJ}o;8jo%fFZI^4(X z+F?BH>p!~;mOY0&`z;=Htyf9j9~^YAZ8d?UkgnXr^KTh>W;7njv%0K&I?1ELw|_Vg zCmVr5IiFXd3H8~^xOFiAr>ytS6}R4CKRtfG9kZ*o@)`J1iii*pUk;;wP4bSVQJv!! z%!UCY{r=&k{5{6V7{P(J_324#`^yeKERXHhe~44oWN^vBl0znh{Y>k!4N9R;v@<0x zY;`$b^ptqSed%qf9s;z=LV7!~msIs#vFa<;RFFE-msTUp?*X=z-qz~zO|kyBT*=jU zo-^W>GpEF@-Y@ti&qh{nJBDgCzR>EtyatB=0EDvF5Z~294G3^Y1 z(GzVcgK|T7bJZ|ysX2CDsPM3JMaYcuGSiz47(C3BP1P%D*vJ$CHwTxx_4g>)DNvzv z#O`e7KA^Cna`j7EMs)yGk2IbZj!QSI)LV#LyN7%31mF8&it0T0K78DIvRbRKtgNi1 ztf65;k=HS;Zhos=vH&-4UvBT`Nh-}Z)$_MGvTHNK9aze}y1e&O5i%6T66y^`?gj(?r^AeI49@=5iH^>9;QIr-NU%urb!q6#@E zE!-D%6^GFKjf5|;O5g+axuI$;RP)~D_u9noBt4JZ(4i|HP8Ifkf*Stp^6>9G-R7mQ z^Fo(HJ!G$ohi96${;f7unX1t`{L8OW(n*t{|Mm;g(SR2@yVmEr$2w_8z#3DMw{X#` z1BW25)#HSAaMI$~CCJj+BT_GJ?fAdUc{fAEe<~3^5%BB<&@za`?>{;w_lx}nZ$Xi(=a-z+B1t)~$9LNt3^OiA_(Ud39^*t^}soo89S;Azh)UJ4$x7AMBpBwJSfrIZSyHU zZP2;Y6$I4ia{f8!xzUP!P6=t>%V`9Zxe{a7I1jgSb7yCmeBEj%6pnH@Sk!tVBIIl@ zF9co0=IEqT+jrXiR*^BZ-O%2DNZsJYMeyZ>72Fz?EIHh(dHsypdA5+~a$x)ZGbw&- zVdk%5GZd=L+lYQ^kNo!4@`5Pzib7xN?#j%y&GsGTSVwKJa$-0Jni|h;F*#TyvX4GC z<>9qdv`CMko;*_MEOz9v>G2aMj~wAWa^!_qqS=xE%j*>9+RO8$ii^Luo6Ad2mH)Lo zdxV#l_y5&W;s4Q+a~H_Z%T>uO$Q9`CrsU%i;2Gqm^va*}?yn32j>7muo=(kCVf+7X z^6{CO-_SlS$K(6%-O*$B6N5~So%nd+=KPCd?XmZKr-nYoa3|inHvhWE{37}R@7c&Y zfrkr|FHP;yKlC(O@an}jPhRWVpntskJ%07gJ1T_OF4ySZ-MR&W%}^qD?HJo^ySGr- ze#eX_F>B7C?MF!c_iMdW@ykiQ<^IB()Vn8(gk9QuFE*K&3J+b*oro~hKXU15NDSg8 zu|QtVQo!ZE089Wg@bewSq{O^h>@~REk5$VKZmkHb60L{~&2zp-VttnZ#cd zBhGofiM{Xa&8LfXbT$e|CtJ=9tgiItGuFu?-NuErI%!OaP z20LOWK~!P46q42Oq;Z-xcPTW=K;2N`PCMf;W?b{c`u;_jfX>qmXExW8?hus9vkHkF z_tWP#hbUa*FwhKY0L)Y5mV$#r+%>W%-g0{7_iinLLQSnIv@cw+MezzKLZr!DCBUa$ z>-P-Tub?IJgd#Cqh2b zsbaYxcMT>vzn2bSXmFQeg_!&HEIRArHRd2%u9R$KxK6xXkT#CuDpkOrbndz`ur_!C zpIOYJ_;8cYzSbp36e4ss5STOgx>n|lN1QnXg~)F*L`5zj@_pjLf4m`)`<}-MBvX8W ztbW!6PoYfcAOgb@r4I!&aEFrf%oIcyuU9!+as4d5&UIF{F<<0-2>fl4xD+WP*z_?y z4;^f>UKKqqQK)2sS|J-320x?)-)27@N4z)qZyj(40XEwxKu=&O1Yvw<5!6E}K90TI z$zndzAYX0@zCgHwUMQq|Uc`PsMtB>S?>F2zQ$`Li@-Ur08o4BoU_(y9B*QKf!1#jO zsF#sv>04GTiu>uXCC{SmnFr4ASQt+Tdpud><)9}5(pZR#{6i%MqDQVc9)qnNXS2%0 z!bm)L zU_fv-41TZ^UqM(qt{Kx?;n=J?v>zE4GSG^MvFhEq1CGVVPQ^f9|bO}J>b-aKF zb7tZMj8=^R0JveKYOIWIp->)$=nOt71v39&KCNO12t`6zGewZ2upFu@(MW|o3V=;*Q~OWiaUGuc=pvvyYiaBQMa85O@lM z|0*L}vFq$B40!X3t>$LjA zo>@LEnE-WyEjsWsYX$f|<>M1yD1K_B2>Nli0KpyBAA<0SbvnM4qoQF1j6?oq4x|>c z?aP0lq$Vk%bpF@Qho^1>#0WETMZtHdd%NuS2D(qqzs2(5&$)a(Tb~+um8?=2$y^S@ z6Uf7}Ebw{q`m1}2Yvl04D$8&6tQIl5R%?aV=MzOmesbe)nNXKxi0^!&_P30|+%Q4< z34(YL(d5}(RctE!D0BW9ivfuROLcsqh@;g760|lur5A5PxbwPaas**FCm<}~ZI$@_ z8k|C*rU!il8ngY09D`m^W6rdm?@$u{&M?O7YwL^wPO%T^0wcbyLFJLR^?`m2F&ElP|esRV?zIAeui_s0eC*xQE# z>_#;4;W~#W3md@7V58yTWtTkeoZ_i3M@V!j9_z-d)-*Ok_8`Vud)!3(OAsm z&6z7`p!gy430GvpES8hSM2Q_T5$EmNZO?~0?fpl7t9eKWKccfPhCrm=E`awF5vFMN zyZxGSRgvRRfE2yMo=GFVck-`77&N0tfRxmX@bpaiQKZvIk+|BJu4#T@^G_Lqyl*ysIUPt3S<}o;Uf?*4;k6X zVAgBO*TEpiBX5Uc)Q;p`fQqidcaOs4>~veO+I(9HlL-dfY+PYr*j6S05xsA+dhZHP zzKXnwMZ9wVE}WIavlK_7F*)yXreu6%e ze`XegjZGO~HUj~T@+QHhCom8|-kF1l9S`{^6ag%tf3`|0Jpb_JCzd{$w+RS4EV#%N zY!;_y0J}n>$uB-hNBeMAi`>bpNPSColECyy)u_#77n@oj20`I|5dIVm%an=K?Ageg6Sg5O#Zf z>g(~rcq#hDH4!X$TNp3=fS4(H5CKH}>!uMr0vH1G^)&h)&X@ID!;s?VP4xim`=AIb zh3~cng#qiNLWB|3i6B$3QvW&lA;(cV{>6z~|KhqG{)-+0!yzBqu_?esq$7JyA;8U$Pn(mPioh32W9s6?$#(PXbNgVAA4<;fFl-X*za6t*zfl+It7TJrUY zNz)`4R5jdn4=zIk&|qo#Rkv}w_P0{uG6)_KYy80uEm zF3i@j?4Zt8x|_arY`l%^a35JrC|j#sOE06fo76NseKzx~X%cH~4Xpi9zo4+0+z6G- zQx7`G7CUS0QUPqa$=yGv_>5{7Z5}iJVzQdksJ8Y;O=Tn3-Dn z&|Jma1{%r+rZaH>)3mYa$Ld$#N+_|aJYQRmNa?m99fE={5E$|5S%zg3p^D-nDghm7Ah19k&9l%Ac7&Ku+FnDs&L-389j!1JE0*pzlgjp)8&1h)0OwJVQ zRU}Yr>oupRG-nd#v+3?RfR5qmmlZcOo1QLo8A!ejQtx{GR*ZVY3?YyzaX7`>D)XknQ^#mr_opn7M4i^nuip z%`>2njggX@LJgckftZzN9seg?9 z#Pc=M@pjop9Cv{28zoa$*T_Db#vhTLmF?~IyQk9su!^80uZ`a(%}sW1YJHFXm|cyu2|P&Kdv0I* zNkX9N`SL@a+33!lv;;Wg4?XU}+h@$-Kll+9z@O~p6)}7DaK#&f#mzKLh+M3s#0w4PRW2O(pDbRk3LqgrUFqNJ+oS&y_mcoyUe7f0ezi9|+ zfgFEdb8PKj<=S=j58#jTjfv?~k)w)^KVf6frZR$Im1zp95p{T4ilk|e+4Cn;;};%> zO^E(|bHPjL?S{fJx$DEiXZvZ#=7+__Z`A+#{AEHbJKX27*V3xo$;~*)^S-f?;`rzC zE30xs=SC&1otxJZ{KkLZ$t?=9Hr(KRt4$3~tA+$~$XHP#e$OLKBznrq;B z>rI;LhUfdo0WYNC8Rrx23BV_&RZ`^*na3}OazNCsJxIkm;N#;@f8-?8pSd70bF=2u z=;^j0>*C2V(CwsPg5+sYEvJLFca5PuZyKA6ggayJud7K|)1Nc0hQlO*RrcPWm96c} zx01!$x-I>n5V`l?B|h=l=aqGELsV})qudf(m?^Ey`35!p_tgPB-rn=Xa!@kyGvVqz zdTQy=DN@0t_3Ph!347Ztg}UUov<@5EU3b&uM>Urp^5wcoyw<6PHcw66am1K_vgMn~H`VEO_Wb)@{$4LWw^Ux8SA4N^3;KD6N>xyexg>On73EGCJ*(4-J%o^UFn9Cf#c&Z|4bHn zZp~k)i|MLvTN|j%ey39`@n;RuJCClLM;x!qsrd7*?LPThM=Wm=3_7fSh*0T*`7--D4->}VmCzW zfef!Elo#=YmEYIL#iQ_MDFGr=`?Nl>;xVv?9djqN`d2?a4h4D28|U8dMQmIvY`E5+ zvm^7ZZN9;$x^0eZQwhG3pyYIqYxV}e_2PDNj(X5looJz*HMS74O!-7(=#|VGWv;z@ z4sdhE;k|I{l)0{eU!~l&@@%J%mwKYtfsE1`+v`8sHyYC4Xte0u)Euj_v1+dUo-OvVJMYwUr|{VJ+TWHFl65h~ zoxzZR*n5uIlkq=9MW-G;3MikPRXpJHe|AeBRQtom7HjDjPnG@APfjguMlN2zP_;1` zTG!9n?X8v;-+2(U9~=H&yAQ1T>kO*7;H?p!Y`6I(+unEPMJ+|X1y<#1Rns1n0w|cv zSqn!)TZ*%P^1Ze5!uUTq3axLLv+sVGn4vMPG5s0{eS#8BZ*~epJ#qCp6%hXDv2o>j zf>?84&DwmKj?IR#VqK~K8>SNa-`k@aUF&4SkCT#*#@(jJKF{BO_~~zjTlO)#vT3ZE zWwa*P4J6X~K%|xL>#f=!9~VkKF5HEuXV3r9s1SJbb-tTi_)npvmTW2!d}$+u!GQI? zsh^t?(!SQP+F-NSF~9IsJd^NG^@kwnXYmv5j~#K@oo=HYy>d06V}~s7*%Y(`2>16( zLND|Y9U*BIWpBMGi^_{!)x&ns)*7Jl8DCD`l~o8F==-+xUj!}PCYxVO<&;kP0Pg$r zg~Sd={tE*Fvwm5yzYXdw)%6bYwcm?`#kOxqY)j|@qlj_S;!j>*lFv(9A$DyARla%$ zUpjNM{hzD#4~)ca`RY`9S|DX(P>P}ylu{h8nn})nTMe)Mqd(nR83Ot(Eh29-abv=T zN1>plq(?erexYg`_T4IS*E!?x?P7&{TeQmHU;fh&F6-wJc`I;aL60*3{vSjTR@Cx( z?c%-KMPTipHib6JJxeA1ov-0r-oAcD%&m<|*?Z!yJijfQ$NhB~*4FmcRzH-jSOMd$ zwqCSnkB*k6z3e%cC@r!3h&9yh{E;zhi>8oesQVwbw^BKq%#JQUs_{(%tKm8o=Q#mwpayKNFZ{Rmm&{U0$fK?goK za+lB}elR;!r|BCZY=Rw2uRFET!oyp3!UZX@ao zvA>z;m&0bUIM689paO;{N2?_T^DekRzNQ$4aJ#7Bgsi#{<#Ph#R2|ZRzJRW9r7$?! zSNt#Pk{M1-=Jq152_l27)GPL$#tSHJdEAAF*WrZ=fj^*AKcR4)qFpC2d|+`GnZXI* zs+5<?ymfY#G}|F>&)YCg~<^qSoPKz#GMekU6#gcv1X}qeV*+jGRM~m zFR{morG$4(i;8@pEF*KvX#5sg)m4;8Y`N+;|Kt;V#xt6!cEGd8--{B4N1cwojU|;} z({H{rrD;jbCi?>J==Lh`&Rk;fMqz+ES8?GSl5KpXM8JjKl>kA!oi6}K*?%4QW5~&){bmZJY{(O24X*IKk>nY{LLAjj>BjV^s*Fzt3gjAG< z($~@ki_3b0LD%;Hd~~Ohvs^HVh_AOI5fR*fBUH{dn5>#{R80XQvwW6Azj+;XlPaJF ziMb6lyC5fZ2pH9U&tZE*GRE;$3uGAUoHF4}#psh|roas*G7EDlfT#TT;X8cmX_ZT8 z=<_u{#uzV17-Q7N#jeJh9>nDQ~$;oQBTXL6u*O)Xa10p=1WswC<>yp571!%XJa2e@AF1P^rJj#)w2) z0Y^TAgd0D16;2xi1Sp=2%i}O;ar%sK5PJTXA0>gB zXI^mW6hATC0RFeh(ZoJx$9k4i6np701|Yz)Dq(l&+;}}1`h=FvRz|UjC$OQBsy(H# zNmKWdR;g2W`zV5nMh-#g3RB8Exz5&z5$MkFOgIhVj5TKy*`59ZEChq-?8t;n>s&Tr zVpFD*DDT(^mfU+{AcWmn965~|gQjlTM!r4WKM`>|{K4@%kIXXXFX+fGNp4`@hD{g^ z+=Nx7?(=ZFi%t9*bzi#y$_gFjG81Y1WZSFgmaaOIm1d?sG3@15>(QdBskV@nlPTyf zH!-y7vhBX@vad!}JqO6iqASeDr+WAx<)!jIx*3w*Dv`h-$hW>IJ4Ny?`uYp znUd9@*^7;=3bW(tiJq_A)j^rW%QM!_3H0=IHU!m{IVW%i0kV??k`eu-<@P5BY|LDo>V2rqL*ARCw*0 z)!9aNmYw^}|L^B2`)K=1@uir$X=drDn!9%67f*M)ERC|fxzYb0bIBa-8$G%vT$UL6 zEi@@Kdfg@erJx$>MtmkNOLp{0Sz8tpHK|sdrQ?3g3T5VYA=B1ORy`-HZ`5r~Rs6=I z(L3(KjhX*9`TcKFDWe)|_t&nL#mo%_sD)>CW`$=euko#2B1#hI@a2zcjbsZHk6C#}jeF}}!{;7wObV*U`_xEuw zOFut0sVb5g=6-#md-UanthrH1cV+d|_II8y#ncir`$x~X%Qq(3BCB6zXFV@V{y$jz z%CI)NcHOs%Lxa1!2lo_rx8lX!-Ai!`#oe9a?zA|R;_eWN274UH=Gz87@P)UrvE;VcMkvI#e_W+&*C*_ zG8{(0=ro!!j*?_+%Vv(1G+{U_{l`Rh19nB>iHY$J^Uf*n%6NEE=+L#%?8!c0Arih z(*6~l>A%N}cR4Q7P||4s1MAZMz_XohZN8l5VZqsu+?KO6xH@cS>0ly|maRbN%G;2- zG$ix`YWZK~#e7=cUh@UmG-g!-PX95>sh<81E%~Q-{Oy40GJImKT^|b~SE`2Ww#b9e z9vs^$dVg7(5E>)?OlsVoMwdnkM;iGBs%r#1AHBrpQI2&WxF`P~ zIkq2*9rO5Cgm?X0%3ke?T7WLt;qVMOFd;R~`RtQcnil+TL{6$RN}C#cYr)7F4L8-C z^)nnu>BVC%@UZ-=@&Bpm-rx9#h5G&tp~w!r|B6t!r2b7wlfSv5GxF~|{F{Y+tG`!= zpr)i|*PMSN{%^Fyef~Rh&c5vK3c{Sp)}Q~s;r-vcZX}rED#+nl(b|>v@9I9tZ27|2jjF993&OOe zF(EkcLUcx%Ep_36=J`8S2WIdx@{dUo(xlEdH5C^u9kLDput9KZgCFT9ut&y4&X%o8|F4dC^GQ$h9DaleAO1@Hn6 zb_Tdi!70oO6in}e6WAE8tl|8_#O7huJ7)u2@REn}51z-uwb@c2%{T2K?FlZwNN^Y; zs()&GfkT=fZaJ_a3C@y#2uTP0JpU{Yz+I%0@PFd;@UXQTp0$7I@IOk<--WXgsF!X( z=3znC5Z)I4Pa@@f2D2AxJ9ojQ5glG;$12VK4#w43tO5eu2{TCO1?4 zmCxAAZ;pa!2^Zvv+q2Q5w7yicQ*wh+D-+XMIPnHfYn#_&d`0^6T`y;pCu>gdnxIfYFcbobt!aJ1@>*6nG;G<&JUp;`tEnX9(M~P0P zr${gENBJT)@(r~0_koy>(jXdE(Ljn6lg!ue05#hE(8dvVq6pJ^TR1UfE8-v-S}@%vJa=5=8KG{RPQw{Q$|m z#ki8^qu~1k z20>@mF@YusaC3;RaW1jX4(6g_1MQ$dI8*X|?;*LLqR*85v;Ys0xNz^4fzNZ-1GjW1 z;V*L@VJ~yn;V+R0*jto;gNroeB{CcyR22M|e!Q)~CIh%<{`fC8zQ&JOx!V2S+m7(F zI=~I39qh8)Jy4m5Q;NHJ{832av*k7=TlJyldGm?xx%S|xU;;hodWm*qJP}Gf!Xwu# zT7Q*Lm1tLGhB87*aK0j*AWXkRIwC^5#5zLy4H_^aLcZjmu*S61L9@cJgg)Ys3gsDb zNVe-R)1&E7tN%saAyFSqy+Xa@osdnnBsIb#(`;Dpo=}x+_w(Aq=0!fhSEe3;W`$~L zhi8&;MfvQY=y76u7M*Sve#eCZsf0DjhrMx z4M)~lmXt<3WIQ^|T4X)Go2}5SFfJu07|<@!Bp6WtSMf_;Hu|6RmZ|)S##g0YIKf|` z-XKAkeCa8{|6~0Fb%%Dnr+l+|JxRhE>ymxK8sn13NVA+rv019DN2D2^Y_n|r1+}1b zeQbjLH@hygBWgXSC9!(x?xg=&^HBbC^FD`1k!9m8Lxus(^k?>JhgR;#+D zR`WBsbtp>_1-Jk9Nq0j8IK6ExYOb4dt;75V3DAjc9qiU2idxVxwGjMARd zhS}6TsI@aLO-iicoh_WA6HVkk{dqTGsf`pY1s9Cua`(W6z!gS|7*}D6ZhOVL6Bz+^ z_k}3pr=T{Il5I@&8OCIOZuhl2G7>!Xr0TR$kgtT)VoEt_c7kE)T&BvycYRvhH21`x zUa43t8rnRDJ)Z+Qj8U4T(|>(tJ~F~-FZPe@BCoWq3*fBw?X#g0B3#Zc#5ky6;ymah z9?cqU4?o`!sdf%?XGrFY+>VfIlSYaKQzwb)JtuTz6 z;Z&lI_L_ZR@-*9RNuDu}Os13P@ux45udfu4(!=F^ z!P8m~YTYUdKZts}tR&fcE>@@ou&|EE_CbQQb6}TK6~9 z&)EV=UcfG}*Bniuj5KtZ!e`@~K(0cx3zBKsQF{#UfVjDdPnn=ivWve)lT#B32YRHu zeHltNom5DaVwkn3&Ji72m+zGMhZT!tN$;E*l)ygnMtH*nVx)8jWrq#SZqQnN;YM3O>UG zw}*6?%q1k>e*3j)AxS ziASAVslx!xlCem}pZF`9hu+Bi_u5E>+hF3TCzF=;l7ksG^u56L=yB^}L+ryt)d{k% z7oHF=``BL}w)b_fvwNw+f-XCNN{!Vc=5mAf8TNM+L*nfnRn?eneQ|A#3JB7k0ltsb^$esl?ZM+r7 zL}AyO7Dx+%Iq~I0A7+}rO5F!{Hv6Sk`wW!FG;`R$YC85%-oJi`FTodUwjw^JsghwE zS~A!>3C2kXU>jd<*)d#PzU-!9*>vBWob_P!?(}8(y^Cgr)Ts6#(^au=q#k^e!MOT8 zpUZ$KMOyKB86Tviv&KEm*;uk;on9f^`@dlrXC z2Pml%_v{sRIV#Ob;yrdFyksL@1qugXnZSa-1W|7!e9&S96+<#%8KlmXj0SYH5PhNv zhBeOqf>})Bi-MrJMB zDrP)&SW`$njI&b>Yg)U^4wop|U>6LxS}8P z8*ic%-?%K^UGBmNl^b4be1v?&y^YzZ8vvNxjj9q9*@e6q!eYW=++qy9iimfJZHOBKb?g3=zZuso%X!D#OHXe#1(Mtp!`YRb z6p`_N0uF^BL_LJz^|2OJ-=*Ewxox!4GMCS3jz&iJiDQS<`IWBJt!S#|@*S#{Goof% z^q3#Xs?vhL1x*Iqu0@>wBw9Q&5g{r)ndjLtEy=;%io$eQTs&5I=3nN z5h_n%o{A_qa?QK_1IEWX15{yyab64bTP`HXs`8~zH7Nd6TWF4%v@=T!h!8GMwX^$P zxmj_@^bFtiWc5Q)`lSTn5vlupGb0I6Wd_&@Al!2si{}1fK&OQizRmRswSc*_wWs3x zKzHkMwwkE@$TYTL8dH`tx5_@!v&a9;{qj}FS1K{Ty*M%IM_s1pJEp3|C!fvrJK(zd z!o&8A^*hvjtwFy0mpJd0e6=E^V1Fco;F34T$ycI32euR~cYjdjKX4=9wUr_(D%0Ni za3^PuU!;f{d^gf%sjm@XZKfwl%(sjPw?$tNGE<-KxZrNw@Nz|OqCA!dPZTc*wj~TC zy9#L9Vw??>QIsJfwXK?(6{7_<-UP+Po&t$wz@Ej02_5`uXd4TMw>? z;c-?2>YH(KUj9I^r?N46JKcw{50@TK>EBpmIkQfzE1lOh zzj@}tq<`5yy|T1ID>)Yn>5+)}E6Lm0YaeU&D(Vkf0LQs+)#>BOu;)Zi}`}=f`{-;g_pxfT}jz&|0M$W!Z#m^=A3qtLrSIp=0KR#_T z5?@G)JecISJ8Ip)wliljj(je-9j8%S%MRbWJJy($6~+r~Wl-EZH}Z*O8;%v9VApu` zfEZ{8>YP|deTmnx(pNg41ydBfm8i@43sn-GtL@yYHO7FX8FWUve}s?xCa~SFw8q{8 zgfAbhQZg)5W+Xf^m<+1k9ekg4-M>8E<#KOq*|S|&)Rg9a5>%<#L7k;doX}R4!>lZ@ zd0NC#-tIQ};LnB5YUty%Kn4u&4EIO5{m`5HnM|}5%UGb7e>FHPSUm8H@(07v@v!la ziwJ_~vy^s0#}Yo5WL-DujT`;@Fa5kH59m|i^XbzhdH?Xvi`e0uT{*KF{o-|5-y{4X z!^p0?px&-S?inR09*@0Cu6LQ?2vJ3L$>1(|%RElGp=w0D%8Gn(a@VN1d|1)H6nkxs+a?};QVHuXm*|OaF&*7aAe3R$4%J7 zu0yM*!zZA=zRPqAoyg}@Uda z$AG@ZV;_!xpBt?n(xjQrI}o9{ejDoR6E&WW4(j(ax5F7sQi|0>eFAtN>e`o|63<5C zg&HTA7En#aLnj6I!P;!B=2DR(dWni*N6F<^yhkOaWSLC&c&3Jio|(7C`8||Un@rndWlu5tSo?`^1{>Lht`n zjb>3N-Y~y-@vdM8HArCCKcA1xm$J8J#)U`SD#cri^Z(M5SH}sq*G=mvY~s{3RT1)u zCm(b#xwaD8YO@whYQwUm55yHez?*5dm>NxP1YZ0;2R~AHzQ5x?@Fmz_Q^ref;FLJd zLek@qILg9*6!cf(dNyFEGl_NxJFmu{){lWgaYu7nahzpA`kj(kx1C2J+x{4wp%=A< zTUJ<4oN3y$EgJHzYL;?qrL=Y1hth=#l?X))9Ik9`S#0NbI!)wSpN*`V=!#xI8U!sb1H#h z;HH$%(gX`sN~^9e#)s#lJX6MVDF(!>q%lWaeA9vwQc+Y={iYf?Xkn#8o-@P%dE4BM z9kZyJO%*scW+b~AREr$btz|rz1qg)Qu2Qku`x^rqjda7e+i%TurEjlWm2}x=h|3Ky zCX|jNHr(ZdWa2P&mE|UONXkoA)N{v6`Q_VKb%cWa?GM4`@2mwUQliuMR^>|4IP#^< zY;TU(<;@|h3>{Vj^8zRe1GhMVq$7TH9=5ooAG&?E*55e9;hjic62s zp*@UfJ5Vg)I@u4 z!5+^2U72%pE{a`53f;f<*~EHS?IGO;Y(H=z#~Ov0N5TIK2SmTb)kZzZ!E`c<5ywAx zHZ;&HiN0Y}j$&R@+RAUE?C#(+;%5yjiH+(AJtJ%UMKnrWTz?%S;V}gBI-p+akfP-) z5Zo8?p&Rf~nx2DyDdHPYxh!KZ5>z98kKn`5bnh%#1TE4OBJ|htN8it2GSMLF;9DS$ z*Z=t496Xt}oCssg*+Jy4`jkN>Cd}lZTL`=Z^03^iQaGK}hvFvzv6=^*74gf3WgLGg@5{|BYby05b^AYnjX<15~EjJ5sXk(%D z)k&hVTj45NaTYoub}1AzZ7;A;b{cfE+k{}fHBc_}@zYRV9M=&u({ExfNz6Ggz-JZ4 zi-II%$tfk6ifIdyCFYZ=hnb4FC4vufQ2a|Xc>Oc;IjtAwa-IhU^-kznb7=c3OsZ~O zdSfYF8FsmRC~8jq8akq%11^5+RqP+PiEsFACXX|K4DR)<2OJbd2!B&^bn8p0FNSXM zHEA5j_VJ>*D$tMnj%PQnO-8y#>MYtv#!RFT%-w@?NZ1nElaCUcBPtty4GR)PJl$5Z z=Qt0!mDq9G$#01KEZ?EIvK!NGFL~lOb*#s__~!4TTqbKq2Sq%_JaGf)eSi?xE)Xss zUxiUVsKr3t02w$Yd4TY{A0$y7tTzw3@!Rm2@@G!sFsfxO(XNdL-9S7U3}mwbhpmB| z)K|DR=|?FB%Cvef+kMTw+OMzR_?1|@2mhKtxb-B73fZ#LK4d^`-x>eQ?mESMX5x6yu zll=O|{#~;2Ks3&u@->W!NSJs1rEFJsXV)c?zuC>&WuwB2%zf|q2+8q5$$3Z4>>-^1 zEi~o?kiPSKWbM9cAJ0;a7%Lkix%A|=RK!{ueA}rplC|2!V)R|)-K3{4?5S^{?_%IG zDVwlTInaGbkhiEvU~iu+hYD3yuurJ58V`HNjD$tgW$?gr_vJ$3a6EjEg|U{dn2$Dp zEy2Ltn&Kc42)fKpPxSLu8=W^VPYW0FJS@CIlHKjdgsF4`b{*t0X4M_E&y$uCJ?R^8 zAf+%GPwT!ugYx}s=X+{PyMsPgwPuwGr6W0s@^aQjr51F1;K0bq8*u${*L^sdUu1fNdhT(T1-q2Luw!T`{&9jUd zNwNXucXi$S-NOTG550RA8jbtluIV1TBv!+O=Vk$vOsoQ9Xk!kVWQb?6M@`TvE}xwg zk;wkSJDl=N8WSo!jBY8JQ4fW1O32V%ZJWiP*^O!eg)Q`o^vo28%XPh+yE+tg|%Hb`!PwX=Yi*uv8wRd?EwygQ0@eKI6g2 zTJ@Bo0puj~Ek%sWzp3bgghBBz+g+feXrq3>3o=-!mkX-OMP19N5_GoJqI`4(kFwL+ zmDYGYV@G9|=|UoPJXd)Am+RT&cdl3a46;#Y zkehGi!V&v`I&Oc2aL+|o|0i~&I4g=E-!pNn-kW0 z>g}e9&D6gYr@RV&VaX+T>ia7{f4cyX6f4nwSpMC~ZefmBZmEi<) zjSJP9ohdHIO5b4fNAgIs-FhQW#U(w2X3f@2!l85Ez1HU+=q&=>%cpcXdRv`8n7@V@ zq(cQU-N<%%d*W^F;2r?&=$YGm=IMV*4bBLr@L#6E3+n^1_P3!ubWLb2I|qJ;WC2K` zoFARdYtriPD9kfUIN$n$C+&3sObI~V7H|lEX;RolI@Kf(VT-8M-#0JtMb4%`f#o=X z9~UR3J%1bP6{h%?vJYgK%-Ny&YW-yPu~hNT`RI?`B*Nx*i4Aro7b+rsFxe=m3e`)v zJAlOMNi|%W)qI#yHwc}uYNiK&%S9H4iBo`wEyY{9(+QfndjTix1!3B8pL5Fy;x1y? zq76lXEe6vO#QAQ=hL|H)-GD1}_rM0n{X7?y89JwDSb#>XYv9d-uIkqhH}Ww57uejx zv)*0Vz#`cqs6a5+V}j#Zfucx!Bu{XU@+#ds&A7nIh(p>7RK2$ zk-yQu4`HVBbNotIXp*4v%J%ADW3j9Xz-%(n6oI#8~1T{$r`JHSVU_?2;e!y7s8gi5ar?Y;c<@bTimwcu4PbbAEM{f%_~X+ zfh$*Y!r-TOmz^Owu$i| z0`Ekuw7AV};0UEqC<88O<5wDYt@Ay}o_j;((#m+AMUe{T_mjR5r)q7dYQ!5p!0uG@ z^d2Wwh ztXBqyzU_|F-I01G5|t262Y%=@6L%Oja6Lb*KrqRzYcit|JXvl{TScMMFUVDbq~})4 zRWi(yTEE>)8(oSlVKM6gWOCMvpeo=rj^3WPkGls!a$EK%NykbB$qIJlJ47bc6`|BAdxeg zu#pewWzn6ZoVQZgP8xfD_d{PGlZw61s=30@Q`vQa*o4)(??T}b*ez_&b`l+_ny+-S zb$`Szy_>0>s;$&MvRV(n>Et4e>dGu9d2uN5 z8M{&J`GlS6o?s~oVNU9PL$_Zes+USC!qJOheKB2~(9gS><_EhruC20TYBx?N#AgsX zNV{}+&jW*hhRU56qLBKXN~QX&aHv2GI@ut}R;vNU$>n65yw;ZkFBK?gpf4ly{pcR8x=OTGTN+VMdR; zZtq}pKflZ9_m8Q_HOj7vsBXvjCu7QGl8#IW(wgU3zHPwv>%m5Mx7&BCS9jgYxHCA` z#Z3luQZ>kWr=yDmJJh(nwoYPnRehpP<{824=3HhcQdQ5F3?{4wnDt>4jpDEIacCv%XWD)417{@^#Ue0Gc$dkK31EAj z!v5uyp}%^&W-hI?F=v_Fw+I?}-B^FNhd=X-<1kSQH!{(G>awZh4Ha<)yA+$66HIjU zU_+k=JJcWa!%ea-tt;7W;Ome~rI~{}68k&I!00g0#jashS%0f;Os#p1=kcSg(at>n z8Q+3g1=Te9Gln^gbVJIW2AoR}TNKZ{a?V)~2_d*sU2={gNnozUHj5Nc@|s1;$7k2@ zFu~_%!@{(o#}NEDj}#>5kw7vMCt#hAUR){9uma;*B3!Potvy!2yw2?ZNM{|1mGC8x z>s+tL)nbPl+Oh%LyLb?vw%T16^c)w4`HmA{ks<%)4X-qCzfh!z`av0}Bd7hbffCh7 z1fu}Q9Q%9DoY!W1H_M3xVF0G(dDb|U;xJVtf}V5;&xe|8zIbW#GW1qa$b&X>l?0+* z3ABTMF-CZFlkl-dK`he1uuP|Yv6jSLN!{+5OH%!ll#n-h_fd@l;#g1nrDH`g9cY5l z@uE1lR{B<`#W4wvwUxjLA|GGRSRxsano;#CjpFlEIO36v(cARxc_x-D*MW*R2_ zp#<3AHNzClOVEF*Lb9cqC&s0|<}-_2>b$Bi9@|FDg_m){wX${v?h@%%FGkERCGzrp z-ecxr9*hhJJ@KRZ1{ze*IORi)VaC4znX6UMTmB1M|XH0 zTpgr@$X8d^d z!?SaEO0$gI;EN_ttS)6r?K|zeP5vWhDQf!!$9=DL_v-7vrdWPV=bo}(Gh%?A@kl9O zeuxW`g4*7C_kvCX!?oUJ{i(Q6KWn@wsK$wW)7ZBaaYuV;FaubAxpAa!QT9Oo!R7$Q!L0h(&BQC+#K8c5tenJ7PCOHYe3|}$(g|UT zPPEF$-7LwEOxLNd!=$~mZSdZ86J7j6kgxlrHV;uAcv$Z5?V6hA+=FzEqU5W;=;Xc_ zH^$N#O7L~STFJl-4+nNatk}6{;@*rd8m0juSaB+s!dH46o?9Ct z=U>DtuUAx~*0#=nPrS)mqWrL%k`8iv7g>6S@Di4=ir<1ZRP}Q3=M!~_Al`6$%z^Wi zHXYUb@%@+4#23RWP5Ro*wde$V?RO^OgNP5f(P9{*W+kgG3M03XR=F zlZwc@EPm<9XJ#VUj5FQ?Aufmx?>LD6L6s?@ij?Z9Y+t=(A#z^sIba#d2>4#o<2NJe zC-Dx&ObZ3VxcW3leN?+1VCmydbq~;Jp_mV+cREOPXW~|8rS>B%($U7R zRR>Xo`7JN9k4S%CX0wCg3^VyNvNq3J?bQ~Gn0iAkkIde@T@XRh+@kVu9J^#U`fT&a zO_;9CP32n?v6@3pe=_?JA#;V(S?wQ-YWnI$MDkF0YmL7o4|R>gSPd}1Bsms&Y9_1b zjhHNTG!WX~h0^>TL$^x+fUV-;tmrN|=i6US#S`cYvriG>-Eo+a=}+(Noy*o>=_P4` ziDD4SWdB3aWy*}hPvUjTrVdeE7TD6zo)WbCD2%B`^&li18rY>w#J#TRQG6;p&O643 zD0Y~!GXmJ-xD-k{Z5P0amg6@tYYQG*naDGgSH*~OH0iIO)#;R|%l1r{S~^(C3gtO$TQYL%(wBVUu!E$L?6ug5CU;1CY-YFTfDc6j zb-=;03Olwi2QotH{!|^;sjIPWv8fPBv+)?rD^O?Z`5~Y4AM;1+f+l0w9~#H z)Ewj&faTM10%5vrl3#z(=%HZeoLR7H>FV+`S zd`iAjohxa|d9~7TH-4y^W^@l=*IYl*^MZC(KM*#Eq3oinBMq$h$7HN0elH%j7`fxn z+y8jNUnXt0tXT?8%wsp8CB9Th|H&W@g_K|B-2I$?txeUyhgS6k6jL-Zal1}rZD<8k zRFx@pO7_zo2%IjKwh@D} z=RnLkbtB$ONU=4Q3s{4p=Rak}Weta{ZwTJ2nb$XVyh@``Kv=|v;qBVM9?S0cIVM+M)=itA&=vzaCd!=zsPiU$kT7wRbNr~0 z;I~%OiVpyvB9v?L3_ny|bniTD45_OkFZsR*4WaqnX!vc$ylZ7=re6KLszu^paZC3U zuq)FP?JS4e~~;sfDpL#aOndgmst(_+P~%^Mol6G^c2C`S=>gTF$@Pq6vz*_H!u-=ceePVdr=>l(PzmZwcm z2FtK;w*@tJ3%+rfMU2_ITiKZwGE|Dz&@K&~@x_0&x*LIJSu$irGX7gFCgWmc&Lb98DVQ&HrgIz|;jiL&RlEUGg+t z#*y>r$xgI-C<0vxRxTw2$Wl@^syaxb>t0GC_$4MXh*+M#8!E%QSRwYbe;Ejah&tr2 z4LFvC+>yK6@vUFFaZ(K{UNl|i+$du#_(h#R&ghAJW{%e(2|cy)Srnw|uI;G8Bww zpEF7kJoNNAV)M@2Wvubr>8FN}PDB_&F##h)R$ErP`%t6$^_$b$=z$&4a8|T(18! zHIrBK7xvccvE`qe=~Bvxvq@h$s5p0XI80QZou*%t(8U@$()!wqL{6)WMI5JBCUtvr z80e2XZM|3YB3>LEA|c*;QLoy>?3|Y=JSt~&<$?x70_Uv2z~8KyIef_z1%IAm*fbU6 zyQZDKF}Qi(4Wo4PlLgU93#(<4Uc|o0G>pLeBag>)@gz=buQ%33?p_YYAYAGB&H^5; zQQt%j=KH@54~!E^u-)$PQ*5N`Y;_^+H9kZ2V)p$;OCk9@j|($Nh&FetRtDjD2cVFx zMcoX?*k>+%FTTu9-fs)2n95izi78dEQjk6Tr6N(^{Q)N8Imq{-&7#>Hy1cL?{?5vm zT7~yiCPl^f8^%-ZJfWC=2ufY4%i zQqxpGi~OzKGq3rM+U^#w5Px0MEyKH%eBDIkNB?v>!kR~_5;of)As<<3wbfyFE*J#j zN`E*!7paE&wS()VI;-E>ge9J3t$btZ?K~6FuH+bh=x7*_!iwdw|CD z38ucSZtnE9X|jr3i2ZQ#&)`$x>m7}ZRmBHd2uweZQ@s?aWT*tdNdEl5i&mo0Tg$rwBm>CS^ZyE?Lu;@XhTx+iiUd} zW#hwX1h>(R$IBVicXW*8a#K6;4)2tqE)PBt_5{)_Yo_WG&6|OCse~&WZyeNj`jlNL z+*5|gH#n#^U18jcrdR2NmopT zclw^Q=nqjBYxF!)MWZPRjIozMvLxh7!BO@WMF~;+aE(~!@%WB^cK)lKqurDS*SxnZ zW2f8^GOln&bQxTmfdlZs%%9MU1PCnL9Y7Z$CCsUyur^XvpY*N=HH+5t+vqR*oD zzf|m!@qTR|RAclAtUCHuF2?$E*Go*(H>OF}_>O z9>wVae`Jwjt@p^Jk5@k95-QLemG|t%z{u1RjIa1~eIg75C(l)&0UJk~9XX{egQht0d}lZ_r}qy~I9U zu>IPe2wQ#Cm9pCuS?HaOn3?(DciENsP*T`sUB$f@!l4D9ULEF&pJUYLGFh&@OW-J8 z-+a7hvzx=&kCALBa>vaqPsTwmrqp^l+ptj6s?B{K)gp=Cc&ZEEs@T**eQSMy=hoJJ zw#dra*dkl0H;XG3zx?DbSW}5p*8-YCKm{85){~Tc{~&*UQ;fTlJ-VVjiA=vCXssg8 zJ-Tjm6reGhKZ^AQc&&dNQJ7ms|5HvOCsF#ARSNqDuE*dw&7{d;uR%vReku+ z3q{GFf#aV>xw@dsK|HBy)+nOZQTJdKwTTFD>N|F)8Gx*P(b(D(Jw)d9nn>*4y%l^N zzAwmFCIlvuP*lnSN`4gKiM!o;Wm}!fqR5VX7{= zcec#FGq2~Xap-|#s@~~SF6(8rBA-mb%Wn>e<&|g6kK2lur_GO*V!N`5f91Dq)`rrU z0~$jhx2tf9ClzF;Vz*y>~x7DvhYHZRy&U<0&veR~aE5eC6$TSh%=lAU8cTeSN_-VOlXx~@8E)GQ-7gXfIsHw!ZSarbNnJ7<#|C()dqQQ{TPDpG&Alg>NR?*^E^y0_77( zOS5D!PLolnmA*SN~3GN%ke#+UlR54{#O?xNFIBx7u$+|T*AwzP6yhiR;?a?8q9eoQpb;bR2 z!+YBD7Bq0n(2McABQHUm!Flg(^z?}x7FEugnBgf);Q`S6@oZ{~(EjzN_JhTRxU=N1 zCpp*2(*=W3(#oW9?Xg=atOyPfo=z@Q1KXar9(oI=rJ!9S4&BAomEAafZ`wXXj!pbe_H;MGjy` z=?FqY`z7d4y!_ZQNLb3?s5oEZ{Jl4rA%=FeY3a$AW)`egY&<(a5#ipP7Y;nuA zNq9-xPB2t2kKDFQo?Kf=X~t(Q-3y2@Xufftu=r{IgEMrm40kxyA6V%z{QXgVaqPE* zZoE}WB#gJbJk=N?VS#$Qye&KqgTdh~Tn^Ujlby~e#|!vPwDdmxsA8B*EEIA5B*Rhu z98WQu)sE6KnNuO*b6R8tC4eeIz2g8CLO6w0|OIBciIAL9$$^9@Wm$G7A(-LyItPu}V?uzlSP}xpz-^OB7QM>b|cZiKckgA_`sP5Otn(ufffy) zf9MeT&L8>VMC}VA>-MewftbK=$|tT~YhK}NWZduh*(QHeN7I{4%$n9^!!-m;15O_4 zcM{c~%BeMKRv`uLh7!KWrb(M1kG~dT;+V7vb;~SJAE!rHT0d3xae~;$2!m*ugGmykZ9k%Av$;%^VS8KNxF2G<(b>k4-yRcNSvY zw#Rn*81*eFRXbs^90m7?l~=RTPGW)6-jeR-m=8eO=5m73ixm@bEnysA9t&mN4qjk= zHnq-bI|@Q(VZP6%@Q@RGA6uB-rO!nC$qPoUp8vBir}uUKkG|f?*}gfk%*o4r6Y)Re z40zFZzrJmJ;?2i+XkBLDXu7bC_3Q}gdl9LMb%oPwT@mu}>Y2w{X-^BGb^Uog7bHk~ zx#SmMwi$7cEUishx{|enzjYoIdtXE;w)?SN2peZ`=+KCjRh_s3>!vB6oMjEz5;RUG zp<%+~k;G*veL$6hc3dSgUY2yJ2Ex&{dwF1YaJS@pDf=v{M}EQ6;bQL1=^ ziTIbaQ@pSc^}6iJ>>?3){rl%VdgjhVy!|{Bl{b~{aMbc%Pe-OZ1NAfea^A~`HWTA7 z?I7wVo0E3eAXYgBS~)(Pfxn4KfW)7_j-xq>m$Q68eEY2#1H)2OvWQTJK>6G0Lkz`d z|5bu~R?49(u?)xie0D5~5u-6S&j>9d@UgKeCAnUoBP>3|=UZP>7=S`r`wx@3@q%RO z+gP(C0I`*0nI78hMyYUq?9f4-lI!7UI_E!@F8D3IBoTRi!6C+v9Xuq}Z~@X}67ds> zgNF={&WZxI42~eJmK!?Mt>=vyAjj76&B%w&r3z88(s7D9;A832^i*Sqc)`?`lfCj}D zt@XZ#@|L$Te%`_=?2}hRLnfd!kS364VLwAA%;Fw|%@SelpQb?eG(rWVT5f;x=8Ay1*3;1{ zoY@TJjB2{|@tfB-jU5uxd0@5!^xT1xLwa*F;*5#iVfV8gt;=TViNR;Md*;LcC&eV< zn`RCkvdZgf3h_}hE z`&gYzTo})G6Ut1)%RhDRurJThIfcR1TOP}_T8<*`Gm-S8bv~%`Q-TlirN1|JBEAAG z0xiHT$8i=CtrQ0sao=X4ap;gU$u~h_T5jKn(ye%}kF-KKQVtjA^!wmQDd4x_fJ_m} zO=<>?b|e8Juk%73Biz16sv9{;cx>33qEL=)iY}#FYMg<${N$@j#5sIwfDUm7bfPri z_c^qL$a@|8@;%mL=_}sy9=4j4c1YEIX$C)UY}&MWi?DWUv#@28uYtj=FOWn;#3}?D(OPUVD#R=oeGLpOuYxj@x&pOH@`AK3Lp`ST6|uUWDP=}7SYMqezDqSF z7y0U1mk}=;(f8}FOX{@ugopz@HAQ%{q;?{H?F{kBRa3~LL&mOQWm4x13nJ=$g0A-w zJ$L#=7^=z&i_lw@iQn&6W#D&6&*a@zWeOJ^a8z-4+*#$q@Aj%}{Qgzd9Q+PfL9u)H zyfEJi_S)8eIGMJmU2v_iMpC=%t2zaHeMsQzOF~dow0mw>aTh0Z9bDk%08{LU*4>p+ z*;!Q(PWPmDyN;o3y%`?$!av-Yz4u#L_x>O&V(tIYPe7O(;am4>H+S%G!y*QJ z&!P-Q`JI6}o4c3ls2MG~G-pr@agtRV1TkW-FB<$}Uw-V31heEt-`_sESD4!?v=$9A z?(_Tjm^v=PquAc@PSN05gvq_h<54`m6OXq^MT4L0YsMqwBGC-Qz+Y=Cta!H%{+DLA z!Uw7$B|h*bI&Q6 z;lJ_Uc>L(+;Q8Q3l=VNq&l999@x%KW_3(__KJ0bLTW@@H6)1j4%y#n z5`MCOBA#|e!Lh_uFAL%on&@A3NmAl6o4zxhY7ycZam(W-E(L9-L zbBJ~?l&w+n!-di(8$95tWW<6nS7uUE$B+?=0!ea3unguYZ}CT4-B+eJ@=|< zaw1-ilq-gwJ2@|6Z(|BG#KTrlPMxH&)e{3~f0V<(Vya4udK?Sxmb%}G!FsaZ>cn8f z4y)sXKKvzL&zy)&qTN4_lpV>8t)CGjrcwx8hDJN;bi6u9mSI(C-R1McW_PdYgC8f) zgAi!iGb+FA+D;JVZS||9BQBjNA9RfAoTBU3;Ui_0|n`!b^x(j8?GrYUW=pwa5u`* z(QFDh2p`Di7;C#dOgxbwjG063&VpoN-4wo51ss>gaI=?V(he3GN3m zZ13GwmlAn1!0d3kNgv1yE|=!YylZYKy?0*3)<)FDmzveQw)t`g@}Cu>wg}-KuxU|e zJ$W*1qFYAm8EGLa_VcM~R(E;v&;A2IMR$UmV-fccu6$qVjut&*TD zS6L-xN=FM1BR_R2Mo$D&i7rOaaTnLOkBa>U&`+rILWmt?TX12gf*X9S#M*M<4C-`~SiwdWJH zpUjJ9wAJaH$c!3$2Fye4ik-3|$0KdDZ_+9VAxj@cp)zPeFCG&^?%tCdJ;dy&c z^oJhjp}h_Dsvz=(t9kG|!9)EMv-{7iG82Dk+VE43#|tj}eLp3Y^7wl$N+a&sLdnVH znF>Lo{=Bb%c8{TJ0kE+)eP7P3kOd03Zu0phh+3qRdL^&ax(uJB1;0_}XLp$Xhqr)y z1vJNP(jAZWSlFWwGoiNZ3>wyLD&F;Vsy@9i;36Dlp5mms!WCbtY&S^RZYX5BAy%yK;m=h( z!Hl<2VoO5-{>HR`^d!Q)Cq-oh=@CYj8ZFuv676FQNd?fktPnVPDDc;SzGH><^@PI7 zoy+2*L%QY9#{MvNIi7et?mACCR>R-MD7ysy9)z5c)vfH@NRh?Hxn!I`j2|11*PJ)& zKJ4-_>N{I24;JR5oHej5HAxkN8)=7gml(WfpU-sMBR2ZIuAxI7DNpQJV~cG`P4BzM3Yx89Pd4W1M`!)WXx}FoaVB0eW7hrZA17w# zM%R9pVDXwOc}>x;8Ge;S{D+D0_*b8rAx*#bR)Ty-%%#YPMEnPdnfOh~p1=57&uw^R z(adbm7ypl*oAntrC;RTv`@*I9u1T1|vx5=;lXdzy#k|7lHGERk_9?yXa7|+La{F8K zXSgvr+QzRv-!~KH9fCgQRf5M$5aJuCe`Relr&-TyHz?qREyf-cz1skaU}2F$HSLFd z!f}rTy8UA8sJy$us1fQBTK&O|yeqVfgXIGB5qBZ%;bJ#WLD8A7`NL;@XWNiptZKXR z-e{jC+7IR8y~+NDq760c1D0O$7n#P`A%aViPP%h}tXYUXhmyb^g#{L6WdU1y`z zfY7q*G}CSu#)B6!5rP{Li{P-^7_k3z4%PnnBtrw<%CzRZS?V zYQ*XW4^sMl$=z4B$F2wxRsE?Squ-hMAE@q^W=isEbMmPSnsVtoz>j~=*jKdmHUr=D zae9USFX@Z@_CE6HNd=ijtjBi534_Zl8WfSYZc88$?@pjKs_#e}F*9s8)1|{cmOn-~ z?o@RMZ{l5^Yndq9GZXjD%+itRYgrG&H4~2*_c!eQ8>biD4j#99rEDRp3j`}jS65Ld z_vDWVQjSh-ho)!Sl_p31mEf+=5lWD6dq3ruRw6ezGDCaabT4M1X~ZcA_YeBgP6$$7 z$@Vo>V2kx6$2fnfZs_P}aK1-i!?pg#O=&Kwer=s%1SVA3A?W+KQ}F|d_h~oJb68<| z@_>zoy(g?!Erbv4;PkztkcFJ*7gzswG_sh1_a8BI!2tgL7(Y$HjcbKX8-+%pY3sv} z{v8Q&y>M^w!}sZUc4W?Y96mK7p=M!BISPLt#{2)TFy6a$b{{7ZU#|DIs-FMBd&no= zvXxJ+r;%5ah%ZX8z(=Th0F*97nU$m;jp_0T0e{OTr)!S;uz!0U+e5oM&Rf2J^EdGS z({)$jciJsauPVUb*21S(Q>6i_+-$=C9d*XNnJA}NlXqvL&g5M0n6m1AuQ$C6oKMmg zbBVSR@jGXTw*KE3o2p~1T}$a_i?|9<7Q-y&E}fahTpE|XV%*XhgJx;utQ}Vs6?hA7 zd*bHu`tCz=-M!^uO4wjpQY33O`#{UivxWfC9{uB7&9 zx;&#h+O$p(T)pJ!3-?x%b^{_4U}XM^Dlv>oD>W8>^|Rp`1@Yk2Lp;2OpOy`m*X>sV zUr&0cQLEJq-Ipr0l0*eH zc6hCr6V44;y61GiA~@?=k9m)9!n2cl|50PRY8IKg7=a5df!}G1;h};wNQjKrjvC)X z1(j{!xu|CS%;fgKll!bO*Vv-DMz&Yh7+pK9{;Ou`x9(vz&wUH?Udp4&O!)_}MeHf0 zmwfr3JYS-wYU#}ywDy(4BCy2biJ#?B-h7YdX}if|RoU{?5vd^WfDrp|EKjy+=6<85 zZ6f~1nY<9IadKYB+`ll-1oiVhVy%Dkrd(I$4(1vTZFHwkRDITxqpWqo(QVesqh9X1 zqt-oHgRJ}8`z*1y5?@KqrL>1rDf#Zp8oYI1UaV`H{D>DvvIZIVGHf%Hu=Xw2vIaT# zEeJhJY%t-|9Dm3fT!#PhV&9+sNBy5q|F>m&v1XFFHm2O6ekolO%o@BJM+{DvYKx?- z!3sQHGhL`z_wYaSAl54vSlJo+QmP64=H)U_#fql#2-Dd9v8=(#`0_~( z%&3D5Uy2?fY@Dqlyf~S^xAi$`IGe5$C>9Tv7JWHvk@M-n@z2FostJpbgJ` zgZwO&h970&LIH|4@$gj(5A38BQtHFttW5N!Pm(%O% zU)C4lMjk9T@=0Bc>VA;ldo~A>3!RdL;7gCO2d+UqYR@=$3KTjMtfBu`O_8^R;v7xC z6FPa?w{PcffQ6`KL0+tX8g(L>(XVm(wb>{sPLB{V>(Bnx`Qe&d@fj`#XY1DN8p`TU z>9U72Lr0SBcZQ%OXK%M`3Rwb-UQ zF1@;lRvk!fGf&=#n-F1@4fvOzQ{|Isn1@|TnD8W)a+!>PgIIB zeNoFDgxDJs7I4azMyOb=46FxFMz2lDjM##XDsX2p@6|Jlp2lZeJ)c3loOWgE0ua+b{ z)ul!=+n_AFw?G|qv#nI8fl*otOK=0 zwhLh~oO^(BjAte?WoM+eF|{KVQpwxoNtc~!&LG7Yd%zmyac-`uwCKu$jFQSS(}x+J zv@ob+r-^U>gR1vHcrQZh!5n~+>ktl$_i_0BkNX(>_U%iFLhSH3Q!)qFNK~LGQ`Y6r zT$gxK?lV^)Z^im+T6|hhm8bHf?SWKDbd>*Ze4;I^W#ZycT8>Umv&lVPVat z^;CA;9=eyR-G?AH^jg0J;>`ml`Y9CFo&wZB9q=>ihYbUm;TX! z6+YJ9b7SU^cv{UC{oem;!#pw75jo>`H`P;;rsSk-6Tks zt+CCwjW&4xM*Tb^KP}mG{5K(faZxe$yD{+i6kC+-x_X~QhFHrO^<7dq) zfy6$u%=BH^xsEcWNIKjr^BvF}V% z(yk0yq+@RKg)Tt&{A!BiPQF6<9_`{-y!C8JpjDSQHwVDo6c|9OiH)4Z*##PR1!#xy zMv->q#h5xtDY1slMDIj9sC%z0@`f5ufUdteDN4)TI~u6woHdf|_W6IbA?nI#oEBHM zl9gw~@|e0T&?zjc=fZWaD(I|Y!e2iOWYW-#Z&DeVm9ho4tIq%P4R#lF zITwMrK(mB*fvIo7ed)rR{ySE8g40!z#}qBT%N)9S4U502khbJ!uzDrc^!shYh?P^A za(0C6nVWaVN>kxqzhjnvyQa7h!p$AZWyHZ2nUv7~ZFB8rd?2%gkoAa!~TmB4hitKecdhXA6 zbme-j(Tpd^##;3RL%}6#20YK$_k;^iHKcTRiOmhR@Ip4n?{)9-+oL)DPga-Nn^q^p z&MIrqy$yV~t>@J08F!gC1%Ey6l&&nWMDOt1yRFfcE>qYX*#Qu?Rym>>UR&5Ma$z3% zPHF^@+t^ECgbQ<#l%8AsDc$MV(pr__<-=)_j;tAOBsSTjpui#FJyx?O; z9?9R92jZ#brcF?0RqfHeKK8^87q}Vi4ZPCypnD^o=k@a|FP(Qk;MUvQ^z$#^c~*NZ zf14`}+z P5JAbG@0y*yCyw>)QGJOO5ai*6gp7;*3}O@2*r2SnPjGom3?i#R<`Z0 zg<0Mm;Bec$`F^%FRi?VYCZ%}Wi;bT&mTOEz+-8oPY;4@*s!Hp(L_J{BUI^rXBf1Kh z!sk|%0ZR5N=6a^=uP0JNTy%fq$qlY5M<2CvLJPEG8y0ne%dLb>5E+ZVeuio%-alcz zBJYk-DeEpCf0<(U8x0=Q^xavzv?Tb&hMi6CHE{yJ{h=0fDdj$LBdtx9XgO?8uv#U` zga1Bb20pTOVTQ_v-8(8bG14tR0HNE*9S;HTYTuCJDL-cQkK$h}$Y96f`_E9%Ozqmj z_wJ9nx?rcPYeQ3@-IIRAajln6*V1tmh%!Bi_$%0hDWowDT@JGIZ&^jkHUYt2_`i zD#F-jJq-BF9)uU|5sk$yiP-<}yO6i%V_d)CM#DcwF=IxgBBy(v{|vLf=lPJW%i^09 zCM*THWGqiv@;;Sd+Aa8*BGe5>P)`e)qUxO3oY!2n)e9u5NX>?$KBry*f{mP*6T)Nu zAbiO7gnatjaY_qRu81O~U5Z_1Lz2{ycSbVdIHfk7U1Fg-(mD;C0p36lDEA)kRF?u zVl*-K$8p1VcO@(m@h1~>mdfiJK20NbQ*1MpnvV#OAKNuUnf78ECorWM>dAGQb!Frn|oz``uW)DIOFbrG1gIS8#sCe4teW$q{U73CP` zPtjb);xl@#$y8iRn3J*l_9VpYU#lMF(cu@5zjoo`y*zReqlVW@NbesZEFZbo@HHBH z6UI2{NxZm?@?7e&1SF+8VV+qFQ-oPzmfydc*E7p5s$b6;n2nFWAIGlv?&Up_dkc;I znW_VZ?0SC4-2G;?A%Y=5Tut_BOgP@wd4#Xcy;_-Sh8rRb<*JiOwABee7Sq-IAhYqQvL6K)6aUD;kJ z{?y-IXzdRB*pHY>d&s0w@3T{edA@s=#K$>&Njr+2hpadA)}+ zb-#xy+n7}P_wE!U^5OgNjQ8L&l_`PZ`^vpa1>C5&{kKcKHz9p6AzOrR0}Gq$1ir`R zeX4M-#oD*fa?Uk3H%harvV~cV?%F@~jIUpzT3l%g13XGYw>Jw|aQmMsGauVZ6+s&g zH|+H7QW&=>vdd@bx=E#cT)ao5)7PP1tKa?mQwu$y){owY-+@u^EL6TTItvwqNi^I0 zlsnU6?U`$dx^i+4d<`!5;mlw6v5E;HQlQfJNtI@{a*7o#Vep(#Et(B&Nj)k;Wxx`i zt?%s6^Ne56EOILC4(U%H(;>Sc3E8U@Tg2LDZ$mprYib)7GrY{=1HN&E6*4UA=ozjR zQHwVtFF!rQc$yH4Z>r=YytlEy-L}p5$+458G(!i@kkvjDAn!Q+%daLbl!O zNAVswXK6GZKXdNzJv_Ymk`?k@p!q^qC|j=gN){>Hd@PZ%?%AeeI#tJt8m~l%z+<7b0uC z?h^pDTZ5vs-RXlA|N4nP?Wd`78nU=}{Hya-dNuA*)w(BWMwZ&Ap(d$!6^H)_Du0V9VQ;wG~{%iu8J$+FWsqnksvr8n!OO|GCJ+Q)N@M z5TD_*F>8n-aaL&rH+ys@?i$}m+Eg907%5C1@O_Co;M$7$DlfN#6*XgA`C=#Ds}%3` z^7#X(N7mJW$D*e75^s#hUpjC0tXG*Oy!@>1+{hq+Xo+Uj+0aI#JnWR-fn|WWW$s;D z@sfg1q)|OPfpUq3v{1Utb>!}=TpM(Z>dE_Mfzgn9k-eK8!0cpJDVym+mv~iE7A*Ws1gWwm=M)* zWrE%yr@ai@>h~k>WR^Vd8#@9e2Yeao4zSOI;sto8z&UFPL6-KCY8&mrZunhYT>;-% z0j&OBVO#C&n{X?W_U-*R*W2-PJ$|wuFc3_6p7; zil3eMX~B8jj34h^hF%emKYkWG9yQyTVF_uO8A@jDm2cf8xs9->z4YebBIIajXF$k~ zt1JcM@y%x|8aFmVIj34`XWv6UcF2zRnEDP6XYlj8W**-9jsXw8Z(|J!_+^0j zifPPB`4^yOl&}9v$ip!a5S6cYHc;1WF zb*7w!oD0|BS~K$GzDgdymsdJMDSJHH8;H+O&T!y63BsFx54d6%Cz(iXK}HdjG9i~z zc9Iu!!(z-j4#k7;3cc6N1tnH(2;BAgG89&!h5wClX6ayFF6sb(9r+pZ@;SR*gS*6d z{MECo#Z(#j~U~Z+0?j(Xac4nN_(q%Tn1af=l%FSr?(HkFKgWku%bCcqV6lk7cb~LAJdtN{q zmfF{OD*4!djeQ}}+ceF{Q*$G(So35C_MvyT5GTGW_Re%}FSEE5YJ<=C=AFphUBaXS zAMD7xRf6&_6j85;_<_DxG#P&hrRIMrR$Z6ll-rhf>Ti-_Rm7|KT?vQ&^o(M~@$C`X zF;17My7pW-Cq&h~dHs4ypRIomRo#)YBEJ0mUV4XZ2=PN)&08QBXEpLZY6@bVARU>L z6%k`;W4{sub=1zTzj4N-8uu~ja^&PVgIW_8nA3|iP(D}5iInaygo*f7I>d8&$Kvc* zzJ_b<`Hf=IeGb1?*iulwJk5zhY%<{xazlJ^>~u~qW{2S+x= zrPvi=%cf1j`c35MW>|oRJ9s$s2L{T&&BK>9Jp4wF+SpL@N`UWOAAlmX;ED>p?L~!t z$~WTBS|bb2f-PLXhr+MNQSCt6!LZ(nQRvM= zcvY)vpcwip*YY-6MYeL#_qUN*t7*ZkwXIutOzaii`|ZKCHifK%>uR8QUVw|<6OaR+ z`UT*^q|Kd}rW#(BP_|;l-wcJ5ZTUj19i@2Hyw?gIZX4m}E+F3;vm_0k^?fyBk}Ux) zLfTYQtTX?gr2o`Hm2n=Y`>eh49Dk(9KeNqv-)}nt^BTxKxRMbf>nX6KFS-< z3z)hof}u3PqgH1NGlD&ojj&D$*9jNni#|6a72KidQYRqQm;+a%v@rjalSQ}~zxX-r z3)_*h6N2F7(84y$T;;`h>~pGK=uk*Ld!&o;?Vnj9?tzQ(Pe1nrEb_(plb@yZmT7d< z_8Dbx8@-Nx?nZmiDtG$$<7Rm$K;gyszkg0|i@`Z))P^M=X@x1mC^i|jt5OE3lMgVx z7R?yp_0O$Eoczoh{t63)cBWHx*cN?uE5h#`nmL+5B55alLvPwunj6Dn&C#A;oS=KR|aBwtVU&!MXoF;t@zyb z&&WcdHYizzp~mGJD_1t6=B*7tX?+nwB!IoI$KDSGR}^e+TqNxP(t}yFp)Md!Q$>`k z6(|z1Jrm*UsnTS&axq@=nGx|)QvhNmu0!B6lCZf7wW50Yi|}02XVBjotS)${u}W%( z)a0lqM({Z+V*wCM8tPh+&PGNsJy!jd-mcC<>0jyZ2x4 zz_$v1iPQzSg7O6;lh*LkT&CmMIJV0khdD_aG-qoQeP2G_{_LD>DYC zc|+%PG{c{dw#pQ>xLj;RzW4`~qQl-(JJvzzJ1XpDd+w%~>ppG|(_f`lOLqsVpTGOr z>XrcI*0f~!?`{III>3dipDhxr8+KS+A5>9QI%zrf&s1387iCEQ;NIC_D$MfQA$t+K z;G(+X1xDn;$SKOmi_i9S=uzE~0JygW-b4IHtm}`CBDS8tVFeF$w;MjH?MRazJl^~j z1F_|o-}m$0P}Wb`E~;bA!Mn5X&+2yJIHnM=#gfOB7NT6L0~<5KRE-dABIFK1T))gv zNgWjaIdEus9_noW>^=+~b*7G|H+Q(0Fkk5m<%LY*yG+1k4w1GNaB--u2`-DSq1i%w z_c1?&(nAz|l)2ZXWFM$ReWP}Yg$%i!-ZOdP*IIUee?>+pXCzIp8iQt)_QMKL-_SDq z-*BB81$Vm4c&HvTVyuVWB*c_t@6D7soS#`v?_vY_yYpoGo|N5e=SsfkmNTV`j-__5 zf*+Hn*Y(^zODL1KILCX|HGnq$+J;wr`O2z=+_4|x_1o@)g`cZ;T=RqF&-v`fGAz78 z`EKtv+<}tsZjg~TTQ!-+iSBfnwB-=SGpk(ozRb>)-qfB*!A@W5@$I!4uDrp_XgX5Z ze@{JTBi((iTU zh03(;4`)W0#`H*aW1{f(YgE@W*F=4AECV_^3bgb{Za5QlC|7t+h-pJzrZhEVR_44M z#M#Zn_o7bt-F-9huJKekKSX)sd4oAGS3zOykBQ9wba|q)Y{L7x7YIUvYG6U*EKF*^YzubYn=^iRyMAlC3p(UOV)b;PMQGB z$SyXmUcP2kYfIyXMxkkS>qgz*PU_{cF*#AXxXbNdN;;{$i(+^felMza*y3l^3Ee9?ufFEN%D|zM6Z^nk7RErPx3eiXD@4Ox)Q*f!kMAo9+A8U~lWj9nR9E9? z)1M>H-&gbQY~-hLeri8wumi6vX2)%SkW77J&u(s<|L>&^swU+pYn1haN$VbJut>0;Jbr-o^C< zv20(?A0NGUDVvcNxDb7H66dM*%9!g^<{-v-UR~n-hO)uC5g{9*-&U7nkKZG`5T#3n zcB{t=PauS=!w`7}pE0}tLv7xqQ$Hni*3;l;)3*ee0>$T|oSSrbH(@PMwy5t=JwbOh zpzt7Ky$47K)tjidHu@`7+Qhlbye(1lt}=n)Uu^oA#{?OEY`=);%?fPaF@-6tIHq8p z)!ZXu>r0|N`jaKzFGu&~)#lkZk(Fmji8UI?W1DU+HX~G=kJ?p=V9mX8D*B9S3eQr% zf=}LpG*zl=&ZMRIX6E9VioLi>u@!%rMjR=Ol4c9(T7IrIMA{V{O4YL>F;S*n?8 z>wU}|Mr;zEicj#W9dmEQHp=z9a(z5UqDKb2n>et~np~1}$PFQX#{4v#X*YZ@;Px!G zk_Gv#10>78f8b{P-8gWYce`>wdEOlmDR%t;jpO`r!k0)LmXmK)P(h%xpDh3Rfg7L= z8aK7JG&HS-#?>nT8MW3m>l)TQN_tT18j*1WIMZ%}BOx375z}3N#x;(~hIx&c{)~Cg z;q_;D?Z$KqrhH7_#MFf8w^(NQulZbihR%4)vZGK)bWHZB88}Y`eqi!@$8@T#_Oh*z z*5~KiXG3F!7C+_v?Xq#AX;?^kJ&=D{OTR)~y?Gh=&`@-54Vgevi{_dPq#fR?&d29w zTp`~KOkd%xbD#I~0JW`i_ve-4T5Fw4t*Heh_lJAQ^5t`_Zz$i0x_Ec2z!T4RD&#}# zz#5`TbXnS(t#c>GYmF4-#cO35QnePUMcB5jW$Rp$tNDB`_vc#XU{?GIlC5nP4~T;W zneiv>y2J}s(Kl+Fn;Nf2-gCZ#xaKKL8!$Cv5;4_dx(m~6OtUa~kbf?sdUZTx;?;ra zYBdi}>+wCG-Jjg?v-oM6rNh~t6jI&$^>}f_nZ8o{xpvPLGyE=&0WCT;I{zqgq5EU; z7^X@4%po=t3Ua;fLw+DX3T<1-kHRE<+52E7+yL`2Erk`(g4b_AF8)3PJD>|*fY0M8_jwlmzs7+Gb z^>teZ5>Gx!yO7v6{>)R@{z9KsO_V>1FY9guUGUPe1MZZ+HOdKz{ z>}k;ZG|I?E-!IkI)s6ReFShr#SUX<-KJ2d*-|MRcEo+ST`d~Cs`);h=T2YC;%csl7 z+aR38Hx%LDznf$ep00LDrr>>&3sQaNU|70i5n|Z_wsT*AAr%Sl7XjDaFA?@E0tfk3 zjpoB!g%rtj!QHqc>d`k?xUX>bT~Ezkdp8#$EGfJJhYNvDne{fJcvnIZ1L$efE>rh+ z1A3i9g?i3ZK+5f~K);F+_ag(|5Gp9%Tpj&o3jb0d&Ofd0-Q$UO*zIQG@5lc-?4E$- zb#-ry=g>*@)@45*|2timgTH+IJo2l3HP771Ll?sL`U(y%<9c>h@f7j*n_YNSF%<-O z2w-{;lM~bDn3svy*D#G>{T+Dy1k+#WZ%i97J%b6b%@jy+`>G8amF;Bp}KFRQwYxtc$+5fLj&8OnHM{!JEKR>QV5c`6B3i69GEd9wC{P4gs*ALmB?=o8lp zDYN>m1{2a*6gj9!*%NRm9BDEXOniV9l~-ro!%t0@DE<}EdJbhGKJ~HdeyOj?`0M5{P8huu*DS-{G)j}{>PZVIQ=AsvW(E^~8w+*k%IlGf@} zlSC@Np^oXLB-!Fysjd1t(s(q7-yGPo5cft(cksY9S2d@Cu?7u4ZiBj4UOv7`%9ph) z8~lO{X!K3WBOj?R-OhuIsc%*5Tv%;br-A#LUpV8dKNvLiW!w8wk};!>c51!^7n zJkouGy6fK%3hQ|R@;$J3E)=D!K7H-~UV^eDC3U)0-6w5bX`D*Tjh(+hkwDK!*$lDi z*}zag`H(GiS=GG~`JFZDd>pSsrx>d)&PGaULhP3pNv9!6$sm8R$lENs3`N;$8t&@N z7p#!3(sQp|0PiWqQpDp*6Lbw<{^A$qV1_r(`S|X$PuO6`Z9I^_*eR7<+&?7QWgBxq zQm~ID#1K;io!inQ>9rqR<)Vm*5mhqf_p?vy9?I{8V|6#l7)xVQRG z$V+wv%!ffbxRRR}oXgzg@xHHye6BLLgWFtZSn@x+UzavEBzKL7&aRimq^=gx(N!v* z*ZzCN8rS*#?tWT7L@5y#&k7S=m;wnrTLBY0Gv$n)^az~-*xMZ;>%QUxP7is6zoh+< zRwx>W! z5Xx^=a=Nm^xRy$p9!bLku5Kuv5OVIcDG2Lj#Zlxru_Q$)P!YqG>E5=Z#k&4eK2-Zj z*2t!0MGJxDPw1lD37r|$)&3lRs?2LfI|RiPaRc$u@RE6az^bf3c=U`~5S@@# zLayuxX30rGn>#s@3ic3>xb#CV&7U0NJZ7&?v3Sd(QcV)h+60_6XLz&tmgoqx2EHS? zlb21^DRKp*M#i*|KGz@o%eq{C@^v+z7~?xFVDdoOn^90X;CFyqs@@g)C&}Uq-v`Pxky_$6v&Ml-dae`l^NabPLZqXNw?WjIC&3Qsw^Ar7%=j9c(aB+JQM~A&VA#+isj4&Tc58Fa%VQVNgYzbX2 zeTSm6)rLps68x4@jRj}jinDIRS?9wCL~8?;+9Qt6G3|F(tzf|P>lX}2?Yi{Okea09 zfz`M0F!`25d?-^p7qURYQXwU1e#Pr1SlTe;+zACVt6aVhxUea5QLDYmuxvssc5zwwzpu)7CG6}{;%7M&)8f4LrJ?tx^6>oB#D1F+KV`7Q-_y{)ghD#8B0GW# zuur*Q>Gmq^z^lc9p z!+xZ_eei;0g=Ac#C!=PB99+X?W}?%cf`T^NqQ9~(VbjgJr6XAjWV_F6l|$t9u_o4X zk=no3^8Z}@_bsymvmVC?pYXaBOZkn5xt^&oX)5HKWOK(QZJ{2mF;lU~-d3wDwUt6% zWlO`lJhBl#ugx3+nS?)iv9Dg)8*nOnMVm^aB%h0ey8m~Q2GA^-blogdZ1@80XD^JI zyU!xbzxq_drc;!vnryqzYw8ebiXYS=^1OC+$cw+L2Wfw}wl;7z2;+;PP>+teL24A% zHLl&*xPC+93Ss%0)f*Z&ZGh`^Tn&%Q#?D4oV$gv*Tc;}ZxtHtwOgX&aez=Y}pXpHN zZd~%uJKHAY0~S^q`YoA|5~o2@b!j85BSk2$dsis0FRdHY<--Yj*{ohGN%+?;!gf;r zm$p=V;_$z0>sm>ot&gVhaB$kcZ|e{~@xi}r>sm>ot>>|wN2VD(kONo=*Kb(VQaqLO z+U-Liw7p3_)&5;ypJ0oF|FW-ZC5gT~*pFixAD59PgB+M}nEwLZ>Lz+&$b3D`ij=}T z$hW;#mEf1mdX!m55Anh-5xL58P<*0k*Tf=I$(@I|cDB>N0{Qv~CnFY^1`fA5Lh-j# zb&F>K(qJ-qG#i};<{r`lDC#!}eGELFI;qAK;c%};+BJ6nsDTMawY^sij4&Co|8CtE zh$%`EUKV!OsbBC;WyINFh32>(_oz1Gii&XGHuaz5h9+zb)2EKd+;zWO4P`kBgse^e zrrDEIRe|~HXo(Y7;D<Aoon(g*IU zdPfL~iFUYANt5^xcwNPnCRmZTv@7&$RV?_6czXBb*wm{8v!t_Vee||iF#Q_~npQv3 z(9*PG{9HR-_g#H>jNsV#dWk3>^N8yA@=7l9pn^IPe+%?qx2|)@xi4yezhFVuVRQzR zB}ad-lKhnoUgqLZQgzuUQJp_uFnn1|996%-M|k{Bv3+BVq!7l=X^ZY%IkM91H>sxD^V-5o zBL((xb|F%{@ndzv`&oYEYX)&8qZ7}e`Yd1Gwx5L#o(hZYOR;s;(qJNGe=)_ zQnB;UcOWOHcJ&Gzy|v#=GRk{90??mW$W4u%ehLtxNE~O0y{$ahl1;HPQI?sA@9* zbvjto5`=Y5rC6%pl0;KVJO9BU;YHnxA-!v>*<8)kR`WB}6L;*XP1_;(lY$e2lW^%! zwCGXo#Y=|Gr~POSOy%$!cVsAtrwpA&+}mDP9qqexokk{XojWKdhn*Gn5a}}i1WVqQ za=|$jSDlyM%B*}R4pqsW={q@r4@wQrU1LS3mVdi;Z=*w=s!hfBZS^7WDBr7K!iyu3oHnJum&?5_W=Lby(s zDOUO3xl&Ct=A`$TJn1r>&Kh}N*YnclhpE?ykvCghp|`M{%Eq5=&})jllrs%;lEdlU z1Xl>p-ut4-p`~Q&6^|)7Ikw>HUNK3QmfPHEauRY4&-!bGw4gPRrey4Gs;Lz-_wwSz zmr~^k;VDoR`{**Sf-oq0adwuC+^)_?7*#J2je@&P85d2LFKQbvWgri819CyR>cogc z=Bm?seA2Y0%rI$yG>g;0Jgo#Qu~G8)T>O+WtCk{9CWT4E`}K=<^_D&9x>k2S{{7%Z z0edPRvFj)MCZ!_2ddaW;XWF|uL}Jh7mZ%Zk=BoDBF;4X&-(CnQvPI04Khsi1=zJy- zz1pM8;!hm&LB63!Tf)QMavq++^a!Q__zUcH#EmhnJ%OMTP^FPD+c-q<(AHZ%Oa z(G0;&Hu%&5@PF`r1K$4(ugmZ{@nJJ8iP~Tr{=Im~;(3d3PZ2P`>o#s&XK!XH4}=T< z`zGwCsY>$V%zou+ansvka+jMd6r+pW{-tSQX$i$~s*25_vW5fr2E1q%_;pO+ANdXa z)$kjHUSSjM&Z`DM*AyMqTo-@U%X#Pv1x}LB5yFcvjLWyg!G+!*P zXZf@$KGU}2leo_n4=PZc-m@wS?qo>qN>{nE^uu1Zna+4!A4?3+wv(q)rJj zG5Il?4#mUzb9YCx_HM#bpT~@Cww|EKrxR4C%y}mq&Ij&Ksd9}3h0Qe+Ma1`WQ!8t!AvWME$<`kSXk!Gk+} z!$EP2xHLXH_xBnzn5)-F@5xZeb~NR}z1RlVT-{6>YFD)lSDq9O0%=cC-PDoku;{q1 zJB5@UMQ=(&82E+C3ihk1JMJn@|tU!k7BCH1LDF`A;ck5l+rK`33XWbK2(bh!j}lXs|M^3mI@ zWOb&?m-dWm_l}mra<#AKgTppx`Kb+vrdU+9q`DT@m*tygSc@r&=>n#QH>{sdv|Q$m zJY-i|^uHfk(YSogibgm$?F)ZDw0g~IGXIBP&5Y;khNu9~;!I~)Hm+OV_z*pJ)r)xI{MgvL$a}wq_pf2@1~d$3kHnUhIA!TV&DFh)+JfCf#Ml3xaPNd|1iGJa^mrU(*`ne-O58| zTDPURQw}tWKM+3^3n?~)PiT7`=hx$h)w^ z^D{m7Yq5IFtGf;YUx`EDj}ZbbxQ0H{hKKRnd%tvDotNTuUcgms)H$TrDUH6M?@zR1 zNA;ZiXfN$s9;y@5b8@5I<2lFmoU|xuQgM3D-}D?lx@)}72YL?q0{U9)x1+QdeyPExG25EHlH(_6;N zAG*ZpUSHAxO1>He?~?1@{81gpJ*tlvF-#Awsr!bF_U=4>t=?L_-dg=FjCEWSuT^?o zt!BLz?feNmR~fIBbKH>CEbna`A6G_v+)2l&M8u~=(uKh%uV@x5({X$;eoOCN(fbxY zG5fyS)L>dTQ?qS|Ax=T6CAIT2?cxxF)XFrO`O<cQ?t|Kn7dZwMK7D`dSCjJ*daY9R@5(+jHeF|8Ca4jfR^TT6>iZ8#jS@G7s}r8@!FzbAPkJU-0^8ygoCDhkZZN*Y&iA zbiJ#l#~RlGd<*k##`6FAyA6JfsS{J?Z*B0kwH8>8_g~G^*Lx-5g_(G78L`1^Z1YCZ z3dc^^U~YpI-oop5@wyMM>o%-w)P0B`5AoCqgO_k%eZ~Xq!Rs$48$A7(HveKqTMn^+8bOuVc09$9b?Q*K105Ki7c2VDnz@xfpv^& zo{K~QIisvckXX|nrMo=am%e8+M{7J>=hI6T2}w)nxf7Sh1fM_dk8+LeAAF`Fd<|Xi zGc`+>-6cgF-E;jxEd+o9ru|3yeYA3439I`}+Ry{vz4U)C3 z;f4BEWw#zX%%)fhiV^0C`q8vGSLUkTe`z;umElp%&HQG0Yv2YwvY^*x3EvQ_yoj7t zd#YLv6LY+eTEq57w+3v{V*P}Oq71SKQM{Rz)8Y2gk*FR;v!?v?&)^wdVcEai|ArHQ)d34!d zs^X9-GKuNnm|%)SV`)Q#j1*L~)BL;6&&&U|tq8XB7^b;y(pQAI?A+F2 zX(##d=5bF(`Cb| zA|tHFNJ5T)WG48HMA9@hhnZ;aw00vG9;J08Kn`N%q^nXdc_*@UUec;Ao50?|3KJ3Z zq&|BQPCXo$aMLa*JSa~!g2Najf@OzY(g`QjERPV^aFHp+J= zDOO~CIWPsy!S4-RyO#%a9c#BuCfoR8fE^`*??EmI`FUXOV7pRP7kfmibouIS;Yskh zcIYy}q**526*isq@W{Dwk&eKLe!E(ZV{+hnTA-TcN>`#R60k*xOU{TE2o*~~*k&#L zAQi`WG#)vxQ1J@WDC*mkl71IkD>+?wU+Px)4mw3NhaeUk&4&*kXPz{_DU|a#X(l+p z>t6q0uf%tC1u~-RoBMfIkmon=NLH`C8FWnx5_{+ZQOn#LgNjWxtV2xE-X@5Is(Tv<+v=LP?GPf(9<~z-@>Es?0#^$CR(RN7 z*2L-7fIe1S&&i)_moJg*!pFR>J_&JFI5#$+M{UlEvP#x1H9Zsfdq2o_U9<7{C9)g0 zN4-r9TRErAIt5;m)I#u2ieVx8CEU;f&>*$=^mU)$iz^JeQZrh|_!wpspaMn34A_VS3}s={xhjK_TU zV(vR5B-4G;{by*YKDg42c%T?_?;D|0%KhW#{kTrtf2qD+ay_O?8?A7Bx%v;1>uV(j z){wBzy1clr-j3@%Xe7M28mDO$qqt^qy^teGO)@cRs1T3olJ7g6|+_|(8#dD#EK8xpah;;|$VV}E>^=Frp+I@DB2 zG&_dA;Pd+@c8tXJ1(Q26+cQEL`;tPInNXPNg%5vy)DH>$zf71!>Jac_cmw_j{{#J? z0^xa**+nNb_a7x*qyDH#Ke<|Rlrie3Uz3|2W<)%~@ zEwPlmrWhrb*yJnV{fWZ5$J8X5;S5x{w*!-QlI~3%VXDixcDK%bHeSjkvZhID_e;b% zgc_8Fk$B0oWbYyA7ADbS>eHk>C;m+(p5NL1QM`^t`m350<|iculO@umPYMo73w0P; zABRpa#i@3CzzInRrJs!&dNZry5LO7k_@{Bq_H14JQaqQ|-bJnEk`eXScHxOaaNmZj zHlikj9Ir#tX^_6EYyUkT&#QKC!@Mu+dC$c2Kw3zelMPR(cP)BMRfRdaoC8-4!t*-C z0GyY~t-Clg}Vu@D5gO|G8;u1;f#^3K@Dh4OQ z+&)S6^wzOrb3a(=>{!zVu2LH$aky2vDLx04s;y^jo~4`o=xx7(>&s1d-@4L!gSCry z6-#qmTu-_hOLZ@`d8YbVfdD~2?>A0SEpi3cU2|o3z#3&UtX4W;1Q-y2WyuJ zF(p4t*vmX@k@?t>3kmy;WZa|49w230KlhyW!O)Uy9uB*BcmdN=OcyZ?V@kCc82D-uWWj7{&y&2+Zu5Kq<=jU?^Rnh= zb0^gDu5Wr4bHRZ1Q0-(sV2Zkz3E+r*^P(WRL8u^~li3$-^D6wF=DTwnmQlQoquV); zqx#qu!bot{h_y&3G>&l(fwy^}y}2eY_TnXw$sa?)OCWM(``g|;r>z(|mCnPVbUq$8 zg-(8<%!|W3>Bo@9qN3Mw04s3Aow4s-F}@t-lZ|p7OoR#XcQCb|)B1*Jmujk^ z_{qA*n=buayF1}q&7}KH)P24n4|7htIM`QHg70L#?!CO5eBP;1X_Me))tidTqOjwY zO>DZa{E|W^t4WZiW=*((O{;#<&X7;?2kb>wzb|J(f!UwVJk?Sjt9WIT1;z?0{d9h9 zePD*|_y-_6`T`7?AK$)p7HmGY;hj&lgkEG zWmjr({0ANUMn5g&IF24ZTO$a?6rB$X@3|R znne3HasnZQP;Dkj;|ti140X328!-iG3$n33r|lo26RFk*h=Q;$WkQW7EnreuWoqfr z5hfGO@Rhq4&Ra6)A-Hb>4>#a=sqfTc)1j@P`*f}+o1)YS2_BC8n^}>MOBE0<25oM# zg$1`+BrWqlh<5yjD{FEaJ`}^EjU*bsd#Bohb7Dn&{_YTiM6A#OZXgM65x9Wc zm8+UVF9ULW_gWBs-Wz(giNAY)ll5N8p_VKW(?OiaS#*|VmiehjBLmlClD`!=)=&DV z46(!;Lq1p;`@dI`R3FaVYeP2GOnydj2WL2&=d_;=(ddi+ZiDB3ZH?0by?R`FRgX)5 zR{P+z^5#Fz(^>7{X_}{riZcwJ%swX8i1am9*5ovNBt}G{dia^9-@P|JQ!~bA>bJPU zHC*Rpb3xx>bHs+2k*#Go+r&FDxI?(Jm^(z}#7$Klv%%$GSbkFFVxc@~@}uD9N^wP& z@`|CCYgKAhXwQV{P@rZ)ii&M@?+x6huub3PZ@lZN*&81yY_&6AQHmd_Pao4uOBHBm zo09F*tC{bPqC3mDLs?k!kq3%ex54d&$yk$fvq&(IrC2w;YA>c*g*2w*MNiINwY0GH zPIro*sLyQ=G_-~#RuLAtN{Ad7C`URhN1VL2Hi}ZA)2eRUYTLBR{Eiiz_v^ zb?$B0)>n=i{&MtapAAtlBwDZy$3ZhmHW!@Jo*K07r!|OJ3j$SNnKPpjz``f|AehGE z-t$2yo^m8h@*xj)R{P{M7i4Zzh-B@~i)IiJ0^U7k1`!g$Lszh$s@s8ZTqRdn&*>|2FBz` zHsng=*XNw}*kIx;n0Y7;w^{cXXvBEqbQvM?uO%j2qgS-RMdeMaK=y)UId@K5Hpm3! z&A*0i@ZVwEb!{#kG~zp))3OHJ;#NXN$yWyxF&}-`%j1war)&73@-;Z-tQ!X3tNAGl2J9|3u zj<{Fl<7y^t&cnH2>{~R0si5;rxRQ^ZHgMg6Y*s;YNjw6L^Q`s;mM}d=_cqxE+htok zE=UIMM0^CwZ&aXzwbNV_(_DDyB$jKJ=Msj?Qb?nVMb2u!B!~*#L*6T~mJxwmp3B0V zoQ`YNg`<7(bh7G|o{7(tSDz`1E(hB^my=oCPtd_#Hn<(<>hCxPSDXVebuh0Z%DoKv zyzc)IX$P-UnH@NqouOKVRBSDE&snYhGzf21yTPtqnK@r=6yv!q7mjSUi{_70M9xMemo6%HeQDb7UDYo87kbQ z6JDB+m^c}@um}4LoMyqqTyQ(D&4yLwc7TW1znX`w2T*;B@@`gdj!Npx7nj(184?cN`iZy7gnP zlpK_#v)bpUz}+MYo9@T`_}d>lLk)TSCRS1Ey%bH_iG1}YR!R5b2wX@o5C$o?aB%ITmcWwNcvf#S*23t;9@eO?Xoe6$XYY%4O zm&JWV$c~s*H$78)Daw3uVDt!akGCH4Ar+hzBum(5k0r|pPbbqlUGTOqBfK>Lho>B~ z%bW9<@EqP-=BQxA3GJCSbyG2(I zoZ>1Msf~F^JE+Zh#hWGqS;&@_j7BrVO|I46bmd|F4L5j6HVVn)bd$P87WXFgX4zWy;(swQVi)hst-GBiBgLDsI6s*Lcq9NtyuqxDg6 z@){I;g#BcPvwEgtU;9sF;~P#rX;S-YUbOR&-Mu%*6+WviIXO{I>l|D%=yF5?trL2l zZ4Kw8$`)^4bhRKYkzC-eTFb3%aUW>i+`7?S)%v$dQ{WwJBlRW#9^1JiFabPkR<2v~ zjrE>V@>jD05H?am>DYG32)#kUiIi}aD=TOY`Du&@$@xdfGTR+HaHK>jdHkj%TX z!t=l%e~-Qq6TU~aNLo&tj=FH6r$n;xyDvOJ^ZJ*O6gj(-sZ$_DcDYi+>{eFnJmd;b z!m{C!Dd3RJ5qXJBqi_9c-a56Wbz+#crpdq0YfxSCmIpkzuP!ZdMwbfp_uQLP+saK} zqSAeR&ctvP{70mxzVSB*w;eA-w6$$0c+l2LJ zgdW)3YMMS(-4d|qC2WQ(yzPMx2U2y9TaNzZk_n2VBwewWOpF@+Y;eCbaHoDpW6bVI zjrYIK{hI;fZngVY1NAv+!5{b1dp|akhTre0;q1;i*m@Rn?veh9GSze7h{3(N^_4ta z4;9%RIo&pjulv!v$7!bKpICuw?FYxRyR(9ObCNu}5zixZ4wryqM%u2do`aueL7h4s zvceg~_Gmc_x+cL?k1P0}dc7UPcc>1aTvp-=PL1B-Y1i|&4*OIcpCa|;3SPreS-X5k z?DCd8`o0|jiX1`Tx8gcXbyj=t#5D-rrV@k_e2T*apT|yQ^`xqg>3zURTDJ@H%)@hX z(st7N93Cbuk-OE2;EJ%4+xydGuges+OW7ftN5s|nrD4LnVy`PgEv3m;pDXBf(W+NZ z5EfL2TnLHjp;EyWG+=uot~eijr8gU&c>6@U%zWALC*H;H%0Xbv}T4};F-U+)Z`3AqnBTk^Xh-^si&6ujYQwvW5-IrN(vZ)~xfC3ZACb8yeTG zZfFtooLNHi`ZcSC)`oTK8;u;Hf@(Ex+OV#{L;BO#-NOIgmN51DC*S%H8+evWQwa$W z4!Dy7Cfx~e1@j-p)Pd;*s>AWn^FKCt7SkR~=Y!X1>a$wv%{2~(_)613TQBF~7f@@?VNSK~ z_ENl~{UqzZM6prk%$-wTXYe`{Yj@4^S;CyVzPxD8qIg_B#O7QO3W@+a7O5QKm!&1i z(Y74_rVZYkm8FxayZ1|^EU-rw{1dPQfZpu zMQp;4m*{w=lAAF}HE>Ewf9^fVea@Ju+66P>4o-Clpe75hd$<{_(xJL?SkQ`V;=y5t z@Uv_XI?aeTUJ3l9--t6Su}A+1bji zy6q;#eI$MNwl@p)zj5syTHtBd?<^mZCGpesN#f?Zwl{fv!?sfio)==a(Oby^y51qB zx_D8Edk;=l67BHg?U+8K69xZ$ZEtco#w{x;zGd5+FM?rDVruGgeM@>dV0#Zr%!;|e zFZH?3XzHo`Z$fNeJdz{_j(0%dXN3baBi1AJd3B-;A&IZow4YosWSpsSIk2VO6ykyu z3l5aqvf75z2%!eCV2h2oE-}MdK644AnAMmk-PJ% z#1OPe{(8bB|9OF=b;j7q@6g-XB~6gO*u}N8j{2$}NzB9b^aOOd%=@epdB=VhA=zyP zLV=Tb%Gk}L_(sLnk8G;9DUesv&@5#xA-Yfd=<0QmIY+fQSB=P=W7^!YYv-zIdL%w8 zuyT99(9|IDF2WXPw1QJYQ(KPEFq()S4xT5;KM+$$KjgRsmx+q_q~B)!z|%w$tp>@5Z@K^E!y-jq9@D;mb+;%! zNpS%iHiG<}0qV`7_r|cdX9f&-rxt8~HNDH zMDeDRIm6C%o_qFE(xI3U%~fe7Ro#be7KRKv!S{=SG-`x5Xy&L*{JYqp^g@+u4vr!D zUN$}XZisyu+s;zwxxWMKUULqeA~+v_SWxwl|RZA=&2a88ftT*&8R6YLcPdhujQ))-&4Zh=GOI zUp_M6)xQ9EKh)3l)?fNyVE=W}!u#|n@y3~7{EMhk0ib#r@n~Pihy6oA{tV_gdDv6)5O|lvFZz;TW~`x{Su4){K5}#=Pp#d&7{XB zH6Lx-DmE=U-Vm!+Me+>9Bv!%1y$El68`3H2ZtVM)_B9VS(~N9hwy&8}=?vp;k+93# z%V<2qC#cq*3oQ2fg@g{1>fqsZ2OpOYXMs6nT8X@#2MYL*wc|NswSSlowqVuD3Elew zaKr=ntFL))^lY|i7cW=3nyXko6j|kGke^7!RaFVwk!zerze*nNXr`VoD|{DsgQeXj zx3#bwGp>Z0BWB!>quH4`{Ent7Yv{GyHWyQ^JIyjhk1+==LDR13AgHQDbo7GNmN3cI z%_?%Xrl#S>gDNx3WG;{gYvi$|{560t*rNu7=^yUM&1`wwK7 zLV;@5#6RcrCZPN|i{0&tk=w z2%^qt+fUH@dzw>fDSFF<1uW*dn4!8?;@20RH}KXsiCCVwb0c|(MMVA#DyGn?-Nh} zwuygL1kxaM)O(xRzTjNamSzYevrnYVU}5q=%VJ->C~Z%f$NWuOlCSfvLTi#}Tn9?w{Hiz&oEAyhhi4@_a&CO$m$g8*r?d)PGA; z4fSrp@m?IJ@lL2sR+-x=SNW48Y1M{i*fPq6?T|k26sanb6Z1vrMav= z%6V-ce$B`i#5Rg4!&fqr2fML-d%)r9ZwtvJj&%=?(Y zw{iJg8H;;Tz8$I2`=yA>($3+2jB8vZ>u?r3et}|!oY5wakKC${`(_-s9b32Hs4d9l zu}+f$VHz>(G?(2PH5v1`u~IEW%!%)Wd!Pw8?3u%!S&?;@`?~r0*#)wjCA|^E5kpMM zTga;wkXtMGEk(rhTD)9%f?|@Z8j2uEHFY7BY+zx&fyXbzFDu-@WXnd}wPF{pPWXby zZlCV4`;316??8BQOaS1_JfwOVEHUA}hv^vdwvWZuQ?%F^GN`Ak9b z!uRy5LCNCgUXth1mqluPP{#-hp~#|gdtoaSaJT}BXurP7WUH9)!ETM?C7V9V)WI$s z&nVJSoQ7jf0hk&e-@g5sV1@q^f65!Io$M^k@WO|c*Xh$`z|HJtHW9Mn`}*C@>_xop zg;(^yevZGt$5g_6Ph=l$ZJKygz%RB!+TYB)@KN4TZb$O2nDnZS*-{X%?q5Xoy7_3b zyrud5Y>V9H;(8veg2LI8U#TL>pXuBU94Us}E@xy<06z4> z&jPxJp>B7V*FBh>6g1Ag934rxw{{JJTb%rS)ib$0RgO-l%x2~SAKG4J-)Ro|b8JCV zdy*WevbNjh0#}k;Q^f>Z_&Y`~@A2VXxYO`5{wju5$gdFhN;PEV!iiNPc$`RK=sNfB zr$P_n%{2NoMiVvbnl+}LWZ8qe3&dK-HZ5XaN2fLNw(^`RNc)$4TQ$3_YOBPWT6Uk& z-WhyKP1U0^vsn7*qnO_&9mtMp>S;Y@Q6ZGKDz%tbf#q4FMPifsmhb@itgG)6QtPL| z!%}Wba>xBG%f)=8TXD}Ubap%)FzfVBDLijbPKT%9ok0UZ6e+u6ov%1tuK!KZto8cj zKckqUPeZ9dPeqg9JsX2iHIybtC`#5ybt?FMFy*HH*>6ASpYNYq&Ci4qK}qg8+YBXn zQAb||@#lpJ{=690t;A2#k33n4F_#YV?HN<9()-S&I4QCBF5~`H=u1E!!t5O6;fg6j zP!HEt(ee-NwS2L?V^O0=OC%KkdekRE$VXn-6aRinbU#v~)+0V3`v(@g5vk}u48$ah z9=YlGRq&osVp`2`2 zF<9GQGCV=PHwo+=?_^KvbhLLMRM=%lq$BPPvJ&^8B=YAL{i}K?8+!QSn&b&uVJ{q`Vn zhCd|#%k@dYUA4@g5_vxx3UN=_S&Z{raB9z!D{Ex&L(wj~M3!$7poG_bWpUt;t>L8Z zy>l%f8xOfK7n16^a*9!ZB^+BnT;;R<(C~m1`U9X}YKGq>K6X2R`pl zj-+m_aHX|9I^W?3!P(gn`1#>^s&l6o`>j7|36}Vv&>o~w>^MpGI*3OG>|uKlG1W;9o^2Z|2n=$vUUDwnpjIVAQqMW3Ql{7G(%*FWnSjHlOw)x##ZqBD8L(Nx0qDLWv=39Ef6Vqm$ zycHqR8A?*@@>`O*J44+%VuP%6HfY@jumShVOqusr%;)?8H%0!0*qxWmfOSPEo$yhn z>TZmOqS@>NnE9z&$){W#@C0}3P+1*)TXQ*v1X%T)V+(+dA;*aeHLdfKBiFx0i@dFoRk5;I;kI%HuIj80o7? zKWpHo!u4hArBwh25htx{Y*?{ob<3j<={W!-h#)=J8Hm$7m{RfGF5-3ZBQ}^y&m&W< z(|1lx69Jr?Y_RVeHn2(uEBRmD#{92tUW>nLH_uWjipO?rWny4@^x8A$^=FczTx8Q! zMTqtm=)(s+zh-To_fd~^_L+`)#FD0y1s^@v}V{0$ zEd;ZMUn>NW*yESMn-{ero`J~IuC-M~I>(-n%$nfgl}K~+b2{ZgavE#2w*?~GT*czi zW>#@@8H-2O~r zPsr$vX?stUCu-sf&qgj-dD9{j$A#-UO0}|kPv}xi8TZLS{kf#xV*_+`_5KZa`lp7M zeQJY|6XUUxA11$a!ir_W!%Z!Em}LFBu5oq4s>T(C8_JSmEP1(xKRN4*^L6e&@LDjB#?&SJN|SgB_Tj9Zb*~ z5WDH(QG|MHzimFfpZOwbJFBAF6w{^-*SiITAdi05`OY`t|Fa*0E$U|mwqJ^Aa=ah< z7MbJUqF1-Ko2UrQr0F()C4CM39HBTVx?9>J^+`FM)qYp_ZhuZSi=Xq@{y|EC^pN(} z(0_kyg9i~N<&TXyh-t5kw2jBSduG2AOpu7SuqDWfS~>P(@^2W^9v-IM$uVqJ**^Qy zn@Q_HflM zDEOqBIMSHr8qRVv(WRPpBrido%8uGe;1o zt1%6Ro%jSv6b!sV_!weiV>CZE;qF<2Gi2!5nL=i$7}v6+NHMsE+b!)7wFFs^2?xw3 znN^!Zx83#B>|3#3wM4OXEV{)Olx6mFWv;^&P2_PRPY`-NxZGnJH@sf*?ly%vtOf2r zSA+NHNBKCapAV6wvtOB{lFePNLO$rZ7VAFJngnlpG=uc4swpN33*TSi!2Ob1Y z1(zXJ11=n#n~-)1@fcyGkr31R2K_jf4I9Y2KSg0P;*@&|*L#G9^~U;J(YSv3x~A3* zYt{**H*oWc#z$^my|JYQr)CAh=qya_M{V$Py#8|V+IKNxt|4_gWReIoN;R8BJvJCv zk(;yh;(SD6`bniR*Xvtsux9;38&@}NDqlXUaK$XaTezYam#MdKeX&rcuUFmoETjl* z55$s2+upoBwmOZK);sz9Pr{xp_`aDw@|0lirIkph*BrwB#1?`j0TB!$1jH^YC?5O$ zh2<5#^}0@lu}|!lAULOag8GV7EIH;IKDY?#YX)iMGT<(J*TobQNyH^Oy#pSz~tIL%)A3JX7#2%0`eJwS+kuDWQUKT`Nk6lUHtZ<#3wiPDU zCUu$p$d3mp-n!wF!w04a!Tz3MC{FF)DkSSPkx$oIHJ~)_LL>So|dCrB4$&Ar6?7I28?5Z8zm7`Pr07(PyM(Pg2y78>6g{?HqH@15-$kcq?%g zT!`qi=T`MeRyTV|);+N#^*3%5nwd{nW>x!iKl0D5vbw1(5%t`nYXS2>`Xr~dnWy_| z{`NN;cySzGLi((h_6YntLxL%$euom+?x?n_{_VU!5yd)9Y@Hj}zP&o#$F;T2HT;oL zth|I&&Vw^v*h+dt&r0N@#uA;moA4)5X?%lq2bK88^REt34B^^_I~G1M+obLV!DVe? z)1lm@Q2fHcN`9YDho{u&1OZIWF!M9P7Hl(Z4%niVHhw-Y;ELcAfXA zQe64uJIaiF3-97)T7sk}%?td#)7sM0$kEG|Rvzi$=9>J2R404SG&rrTK5fMHOp3Bf zM=5{!2E8AvT&(x=cjeDWAOC6Kv=%|0UBJ1DoU%dO9%sp-y4mv<0NnjWfH9S z2mHC!$Qdg6LLW?})Bk$A+?KQLhTz`L18;tGdsi=>K4;k!jXVmerl zU-7k*?;N(lBgYJ$rVp>LV4B}-gCJgIyh@n9iuYf64&awq7uR$#c^PDGyJ^c4?^(IO za;qHGT;qWi#(Mbn{$yamo5p3aZGtJt3d}pW9r+1KYZ3Pn*-tRIv6gg{Jn@xpMVh5N zO0raLFWbuWliZlX6;F!peUd1rk&V4LdjkV)9^x9vD)pO4W&WK!$a*sHU4MFoINz6~ zq*}7wNm?+b{p7MT0B)?G&ycT`M*oO!{H2q9HL3mhZbuE-yCWUo4ao+dZw2_|BLlx} zmfmfm=u1bN=v_zO1YLS0{9EafIL=>e)1y6P=+Xv9|6b^A;_C^!XX@D9-4vW_R*l@# zTGq)Q=j`78t-xUa?xxdP>PdsX}3@J*a&{`fPa zku*AN%NLex*^K0)@_{3RVUsjXWr-L=lCDW;Yf{>dxjM29F-KA$q}b$G18FPyU`LYe znl$atkfUyz?q>HNwm_0DNz--)XbK_e4oMqx8mHMr=Cc3KGqMT0>(6K8(P)l$-s3sH z&+|+iJgJ#sA+EV2*w%h+hIZy4^(c`_Bx7%fbSV5L<++&SIL*9R-T@_T9qfMhVf#%= zNjk96!}vk9!wk;IIBmsF(ZrWf$9?V;%A|Pzwo|FKm>3~%FNf=e>gr`qk5_&);}!rt zK*GPdG>yhmO>5wgO4W3jWS?l3$!}(vIa`-V3vhHVC%5A>YVqE`{jb!#BYoL)Y9^Mj zKBb*Zqm)44#Z>l6iruG(`QQZg*OrUq^Y>q!@zIk6G8Fb~C)7gOW;*k7a@pnC+WVeN zz3&~1BRZ#JPM2-Y(WpOl?@?*ywD-tzZ+?(h8LFp%+j<|1ny1*D1~aid0=AXf>F^o! zd6UXl;M)!*UBOujQ_iZ4;M<(34TsNqc)h|7$@}bSD5=_P!si{m2omdK6seiLk1`j$ z^p})BBZZdf&|_oX4pX}+e|;)a(j)rx90%L*+!-9f-Z#J4fA`H9Il|h|8O%_w2~2|(a z`EMBIv*Zu1q|iXmO?{Ea$D~&%r#o?x`I0Y;{ILXlUs9)pF28>T_`Ir5axQMEhmss| zsc3lKqw5%RCTO*1>oyucB$Kb6mJ4F`Am!Z8?O{Cz$cx%Sj&8D}8emqBAV5iWgrc0oS18XC zsL3<=F-FXZa2pp2bo|?R+@SkP&Ya0Wea>&-BC{iIIUu>kS@BG;?X3xzq79w~A0fic z{&yBLfwbs54VFlr%m%Z13I`XeI0n_OSd-%40=j)W=ZstKkQTZ{AgkwZCsR33O=m!` zMV#$5;FjxKyx`V(QD!eutg-X@@}@{&l;4FAL_H@ib?wZrj{AGoP6~>0~VPH7<-MH zvDelM_?g-30dubx?9ux}X@l($aPi$8PIqjvR4}mEl~-f-TDzmDKxg{FlOFvvc|?!f z{%4H^ZLZ=8HU?dexkpyf`Q{pHA{JWe-0kXf4Hv)JSht#8&A@O?T9g5$#v09}{Kh!G z1$*7`uPF9-quUVS6Hcek`9kq{qYr!FU(WOK7ZyN;NlBCSSa7E~b~*XNdB2nyvkz3@ z89&GUfU9kv)q6QPr0-k&Cp~<$V6eS0Ge&3hp66wM(;QFT*YP~h;r3=vXZ!a(b?xaf zWVq4q+O@ZuK`!bJ^7pqy;B>bv5J2Ku3688>RKig~@{CHEYJhbU=8%(l0)({xlK-D{b&@d!E zBV@-s4^Tez=R9KL5N{^PkK8WJMg=4yyi-l%t^C{ zS9_3mpUXf>Ke@9o%0sOm#=9q&vQ&m8(h;-dy3K`h0FOVdQxp?qB{E`zn|(;Y zVEmsZ=nd)K_EBdG6f~`L$~pa0*jxERKFUhzqX^tS|+9o^GX z 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�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%0AX^Frb)N4&!y|XFLnI?Shby$ZI6L3U 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

  • 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 */ #define SQLITE_FCNTL_LOCKSTATE 1 @@ -2122,6 +2168,8 @@ struct sqlite3_io_methods { #define SQLITE_FCNTL_BEGIN_ATOMIC_WRITE 31 #define SQLITE_FCNTL_COMMIT_ATOMIC_WRITE 32 #define SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE 33 +#define SQLITE_FCNTL_LOCK_TIMEOUT 34 +#define SQLITE_FCNTL_DATA_VERSION 35 /* deprecated names */ #define SQLITE_GET_LOCKPROXYFILE SQLITE_FCNTL_GET_LOCKPROXYFILE @@ -2947,6 +2995,22 @@ struct sqlite3_mem_methods { ** I/O required to support statement rollback. ** The default value for this setting is controlled by the ** [SQLITE_STMTJRNL_SPILL] compile-time option. +** +** [[SQLITE_CONFIG_SORTERREF_SIZE]] +**
    SQLITE_CONFIG_SORTERREF_SIZE +**
    The SQLITE_CONFIG_SORTERREF_SIZE option accepts a single parameter +** of type (int) - the new value of the sorter-reference size threshold. +** Usually, when SQLite uses an external sort to order records according +** to an ORDER BY clause, all fields required by the caller are present in the +** sorted records. However, if SQLite determines based on the declared type +** of a table column that its values are likely to be very large - larger +** than the configured sorter-reference size threshold - then a reference +** is stored in each sorted record and the required column values loaded +** from the database as records are returned in sorted order. The default +** value for this option is to never use this optimization. Specifying a +** negative value for this option restores the default behaviour. +** This option is only available if SQLite is compiled with the +** [SQLITE_ENABLE_SORTER_REFERENCES] compile-time option. **

    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

  • */ #define SQLITE_CONFIG_SINGLETHREAD 1 /* nil */ @@ -2976,6 +3040,7 @@ struct sqlite3_mem_methods { #define SQLITE_CONFIG_PMASZ 25 /* unsigned int szPma */ #define SQLITE_CONFIG_STMTJRNL_SPILL 26 /* int nByte */ #define SQLITE_CONFIG_SMALL_MALLOC 27 /* boolean */ +#define SQLITE_CONFIG_SORTERREF_SIZE 28 /* int nByte */ /* ** CAPI3REF: Database Connection Configuration Options @@ -2991,6 +3056,7 @@ struct sqlite3_mem_methods { ** is invoked. ** **
    +** [[SQLITE_DBCONFIG_LOOKASIDE]] **
    SQLITE_DBCONFIG_LOOKASIDE
    **
    ^This option takes three additional arguments that determine the ** [lookaside memory allocator] configuration for the [database connection]. @@ -3013,6 +3079,7 @@ struct sqlite3_mem_methods { ** memory is in use leaves the configuration unchanged and returns ** [SQLITE_BUSY].)^
    ** +** [[SQLITE_DBCONFIG_ENABLE_FKEY]] **
    SQLITE_DBCONFIG_ENABLE_FKEY
    **
    ^This option is used to enable or disable the enforcement of ** [foreign key constraints]. There should be two additional arguments. @@ -3023,6 +3090,7 @@ struct sqlite3_mem_methods { ** following this call. The second parameter may be a NULL pointer, in ** which case the FK enforcement setting is not reported back.
    ** +** [[SQLITE_DBCONFIG_ENABLE_TRIGGER]] **
    SQLITE_DBCONFIG_ENABLE_TRIGGER
    **
    ^This option is used to enable or disable [CREATE TRIGGER | triggers]. ** There should be two additional arguments. @@ -3033,6 +3101,7 @@ struct sqlite3_mem_methods { ** following this call. The second parameter may be a NULL pointer, in ** which case the trigger setting is not reported back.
    ** +** [[SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER]] **
    SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER
    **
    ^This option is used to enable or disable the two-argument ** version of the [fts3_tokenizer()] function which is part of the @@ -3046,6 +3115,7 @@ struct sqlite3_mem_methods { ** following this call. The second parameter may be a NULL pointer, in ** which case the new setting is not reported back.
    ** +** [[SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION]] **
    SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION
    **
    ^This option is used to enable or disable the [sqlite3_load_extension()] ** interface independently of the [load_extension()] SQL function. @@ -3063,7 +3133,7 @@ struct sqlite3_mem_methods { ** be a NULL pointer, in which case the new setting is not reported back. **
    ** -**
    SQLITE_DBCONFIG_MAINDBNAME
    +** [[SQLITE_DBCONFIG_MAINDBNAME]]
    SQLITE_DBCONFIG_MAINDBNAME
    **
    ^This option is used to change the name of the "main" database ** schema. ^The sole argument is a pointer to a constant UTF8 string ** which will become the new schema name in place of "main". ^SQLite @@ -3072,18 +3142,21 @@ struct sqlite3_mem_methods { ** until after the database connection closes. **
    ** +** [[SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE]] **
    SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE
    **
    Usually, when a database in wal mode is closed or detached from a ** database handle, SQLite checks if this will mean that there are now no ** connections at all to the database. If so, it performs a checkpoint ** operation before closing the connection. This option may be used to ** override this behaviour. The first parameter passed to this operation -** is an integer - non-zero to disable checkpoints-on-close, or zero (the -** default) to enable them. The second parameter is a pointer to an integer +** is an integer - positive to disable checkpoints-on-close, or zero (the +** default) to enable them, and negative to leave the setting unchanged. +** The second parameter is a pointer to an integer ** into which is written 0 or 1 to indicate whether checkpoints-on-close ** have been disabled - 0 if they are not disabled, 1 if they are. **
    -**
    SQLITE_DBCONFIG_ENABLE_QPSG
    +** +** [[SQLITE_DBCONFIG_ENABLE_QPSG]]
    SQLITE_DBCONFIG_ENABLE_QPSG
    **
    ^(The SQLITE_DBCONFIG_ENABLE_QPSG option activates or deactivates ** the [query planner stability guarantee] (QPSG). When the QPSG is active, ** a single SQL query statement will always use the same algorithm regardless @@ -3092,17 +3165,57 @@ struct sqlite3_mem_methods { ** slower. But the QPSG has the advantage of more predictable behavior. With ** the QPSG active, SQLite will always use the same query plan in the field as ** was used during testing in the lab. +** The first argument to this setting is an integer which is 0 to disable +** the QPSG, positive to enable QPSG, or negative to leave the setting +** unchanged. The second parameter is a pointer to an integer into which +** is written 0 or 1 to indicate whether the QPSG is disabled or enabled +** following this call. **
    -**
    SQLITE_DBCONFIG_TRIGGER_EQP
    +** +** [[SQLITE_DBCONFIG_TRIGGER_EQP]]
    SQLITE_DBCONFIG_TRIGGER_EQP
    **
    By default, the output of EXPLAIN QUERY PLAN commands does not ** include output for any operations performed by trigger programs. This ** option is used to set or clear (the default) a flag that governs this ** behavior. The first parameter passed to this operation is an integer - -** non-zero to enable output for trigger programs, or zero to disable it. +** positive to enable output for trigger programs, or zero to disable it, +** or negative to leave the setting unchanged. ** The second parameter is a pointer to an integer into which is written ** 0 or 1 to indicate whether output-for-triggers has been disabled - 0 if ** it is not disabled, 1 if it is. **
    +** +** [[SQLITE_DBCONFIG_RESET_DATABASE]]
    SQLITE_DBCONFIG_RESET_DATABASE
    +**
    Set the SQLITE_DBCONFIG_RESET_DATABASE flag and then run +** [VACUUM] in order to reset a database back to an empty database +** with no schema and no content. The following process works even for +** a badly corrupted database file: +**
      +**
    1. If the database connection is newly opened, make sure it has read the +** database schema by preparing then discarding some query against the +** database, or calling sqlite3_table_column_metadata(), ignoring any +** errors. This step is only necessary if the application desires to keep +** the database in WAL mode after the reset if it was in WAL mode before +** the reset. +**
    2. sqlite3_db_config(db, SQLITE_DBCONFIG_RESET_DATABASE, 1, 0); +**
    3. [sqlite3_exec](db, "[VACUUM]", 0, 0, 0); +**
    4. sqlite3_db_config(db, SQLITE_DBCONFIG_RESET_DATABASE, 0, 0); +**
    +** Because resetting a database is destructive and irreversible, the +** process requires the use of this obscure API and multiple steps to help +** ensure that it does not happen by accident. +** +** [[SQLITE_DBCONFIG_DEFENSIVE]]
    SQLITE_DBCONFIG_DEFENSIVE
    +**
    The SQLITE_DBCONFIG_DEFENSIVE option activates or deactivates the +** "defensive" flag for a database connection. When the defensive +** flag is enabled, language features that allow ordinary SQL to +** deliberately corrupt the database file are disabled. The disabled +** features include but are not limited to the following: +**
      +**
    • The [PRAGMA writable_schema=ON] statement. +**
    • Writes to the [sqlite_dbpage] virtual table. +**
    • Direct writes to [shadow tables]. +**
    +**
    **
    */ #define SQLITE_DBCONFIG_MAINDBNAME 1000 /* const char* */ @@ -3114,7 +3227,9 @@ struct sqlite3_mem_methods { #define SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE 1006 /* int int* */ #define SQLITE_DBCONFIG_ENABLE_QPSG 1007 /* int int* */ #define SQLITE_DBCONFIG_TRIGGER_EQP 1008 /* int int* */ -#define SQLITE_DBCONFIG_MAX 1008 /* Largest DBCONFIG */ +#define SQLITE_DBCONFIG_RESET_DATABASE 1009 /* int int* */ +#define SQLITE_DBCONFIG_DEFENSIVE 1010 /* int int* */ +#define SQLITE_DBCONFIG_MAX 1010 /* Largest DBCONFIG */ /* ** CAPI3REF: Enable Or Disable Extended Result Codes @@ -3242,12 +3357,17 @@ SQLITE_API void sqlite3_set_last_insert_rowid(sqlite3*,sqlite3_int64); ** program, the value returned reflects the number of rows modified by the ** previous INSERT, UPDATE or DELETE statement within the same trigger. ** -** See also the [sqlite3_total_changes()] interface, the -** [count_changes pragma], and the [changes() SQL function]. -** ** If a separate thread makes changes on the same database connection ** while [sqlite3_changes()] is running then the value returned ** is unpredictable and not meaningful. +** +** See also: +**
      +**
    • the [sqlite3_total_changes()] interface +**
    • the [count_changes pragma] +**
    • the [changes() SQL function] +**
    • the [data_version pragma] +**
    */ SQLITE_API int sqlite3_changes(sqlite3*); @@ -3265,13 +3385,26 @@ SQLITE_API int sqlite3_changes(sqlite3*); ** count, but those made as part of REPLACE constraint resolution are ** not. ^Changes to a view that are intercepted by INSTEAD OF triggers ** are not counted. -** -** See also the [sqlite3_changes()] interface, the -** [count_changes pragma], and the [total_changes() SQL function]. ** +** This the [sqlite3_total_changes(D)] interface only reports the number +** of rows that changed due to SQL statement run against database +** connection D. Any changes by other database connections are ignored. +** To detect changes against a database file from other database +** connections use the [PRAGMA data_version] command or the +** [SQLITE_FCNTL_DATA_VERSION] [file control]. +** ** If a separate thread makes changes on the same database connection ** while [sqlite3_total_changes()] is running then the value ** returned is unpredictable and not meaningful. +** +** See also: +**
      +**
    • the [sqlite3_changes()] interface +**
    • the [count_changes pragma] +**
    • the [changes() SQL function] +**
    • the [data_version pragma] +**
    • the [SQLITE_FCNTL_DATA_VERSION] [file control] +**
    */ SQLITE_API int sqlite3_total_changes(sqlite3*); @@ -3520,16 +3653,16 @@ SQLITE_API void sqlite3_free_table(char **result); ** ** These routines are work-alikes of the "printf()" family of functions ** from the standard C library. -** These routines understand most of the common K&R formatting options, -** plus some additional non-standard formats, detailed below. -** Note that some of the more obscure formatting options from recent -** C-library standards are omitted from this implementation. +** These routines understand most of the common formatting options from +** the standard library printf() +** plus some additional non-standard formats ([%q], [%Q], [%w], and [%z]). +** See the [built-in printf()] documentation for details. ** ** ^The sqlite3_mprintf() and sqlite3_vmprintf() routines write their -** results into memory obtained from [sqlite3_malloc()]. +** results into memory obtained from [sqlite3_malloc64()]. ** The strings returned by these two routines should be ** released by [sqlite3_free()]. ^Both routines return a -** NULL pointer if [sqlite3_malloc()] is unable to allocate enough +** NULL pointer if [sqlite3_malloc64()] is unable to allocate enough ** memory to hold the resulting string. ** ** ^(The sqlite3_snprintf() routine is similar to "snprintf()" from @@ -3553,71 +3686,7 @@ SQLITE_API void sqlite3_free_table(char **result); ** ** ^The sqlite3_vsnprintf() routine is a varargs version of sqlite3_snprintf(). ** -** These routines all implement some additional formatting -** options that are useful for constructing SQL statements. -** All of the usual printf() formatting options apply. In addition, there -** is are "%q", "%Q", "%w" and "%z" options. -** -** ^(The %q option works like %s in that it substitutes a nul-terminated -** string from the argument list. But %q also doubles every '\'' character. -** %q is designed for use inside a string literal.)^ By doubling each '\'' -** character it escapes that character and allows it to be inserted into -** the string. -** -** For example, assume the string variable zText contains text as follows: -** -**
    -**  char *zText = "It's a happy day!";
    -** 
    -** -** One can use this text in an SQL statement as follows: -** -**
    -**  char *zSQL = sqlite3_mprintf("INSERT INTO table VALUES('%q')", zText);
    -**  sqlite3_exec(db, zSQL, 0, 0, 0);
    -**  sqlite3_free(zSQL);
    -** 
    -** -** Because the %q format string is used, the '\'' character in zText -** is escaped and the SQL generated is as follows: -** -**
    -**  INSERT INTO table1 VALUES('It''s a happy day!')
    -** 
    -** -** This is correct. Had we used %s instead of %q, the generated SQL -** would have looked like this: -** -**
    -**  INSERT INTO table1 VALUES('It's a happy day!');
    -** 
    -** -** This second example is an SQL syntax error. As a general rule you should -** always use %q instead of %s when inserting text into a string literal. -** -** ^(The %Q option works like %q except it also adds single quotes around -** the outside of the total string. Additionally, if the parameter in the -** argument list is a NULL pointer, %Q substitutes the text "NULL" (without -** single quotes).)^ So, for example, one could say: -** -**
    -**  char *zSQL = sqlite3_mprintf("INSERT INTO table VALUES(%Q)", zText);
    -**  sqlite3_exec(db, zSQL, 0, 0, 0);
    -**  sqlite3_free(zSQL);
    -** 
    -** -** The code above will render a correct SQL statement in the zSQL -** variable even if the zText variable is a NULL pointer. -** -** ^(The "%w" formatting option is like "%q" except that it expects to -** be contained within double-quotes instead of single quotes, and it -** escapes the double-quote character instead of the single-quote -** character.)^ The "%w" formatting option is intended for safely inserting -** table and column names into a constructed SQL statement. -** -** ^(The "%z" formatting option works like "%s" but with the -** addition that after the string has been read and copied into -** the result, [sqlite3_free()] is called on the input string.)^ +** See also: [built-in printf()], [printf() SQL function] */ SQLITE_API char *sqlite3_mprintf(const char*,...); SQLITE_API char *sqlite3_vmprintf(const char*, va_list); @@ -4391,13 +4460,24 @@ SQLITE_API sqlite3_int64 sqlite3_uri_int64(const char*, const char*, sqlite3_int ** [database connection] D failed, then the sqlite3_errcode(D) interface ** returns the numeric [result code] or [extended result code] for that ** API call. -** If the most recent API call was successful, -** then the return value from sqlite3_errcode() is undefined. ** ^The sqlite3_extended_errcode() ** interface is the same except that it always returns the ** [extended result code] even when extended result codes are ** disabled. ** +** The values returned by sqlite3_errcode() and/or +** sqlite3_extended_errcode() might change with each API call. +** Except, there are some interfaces that are guaranteed to never +** change the value of the error code. The error-code preserving +** interfaces are: +** +**
      +**
    • sqlite3_errcode() +**
    • sqlite3_extended_errcode() +**
    • sqlite3_errmsg() +**
    • sqlite3_errmsg16() +**
    +** ** ^The sqlite3_errmsg() and sqlite3_errmsg16() return English-language ** text that describes the error, as either UTF-8 or UTF-16 respectively. ** ^(Memory to hold the error message string is managed internally. @@ -4587,9 +4667,19 @@ SQLITE_API int sqlite3_limit(sqlite3*, int id, int newVal); ** on this hint by avoiding the use of [lookaside memory] so as not to ** deplete the limited store of lookaside memory. Future versions of ** SQLite may act on this hint differently. +** +** [[SQLITE_PREPARE_NORMALIZE]] ^(
    SQLITE_PREPARE_NORMALIZE
    +**
    The SQLITE_PREPARE_NORMALIZE flag indicates that a normalized +** representation of the SQL statement should be calculated and then +** associated with the prepared statement, which can be obtained via +** the [sqlite3_normalized_sql()] interface.)^ The semantics used to +** normalize a SQL statement are unspecified and subject to change. +** At a minimum, literal values will be replaced with suitable +** placeholders. ** */ #define SQLITE_PREPARE_PERSISTENT 0x01 +#define SQLITE_PREPARE_NORMALIZE 0x02 /* ** CAPI3REF: Compiling An SQL Statement @@ -4683,13 +4773,13 @@ SQLITE_API int sqlite3_limit(sqlite3*, int id, int newVal); ** or [GLOB] operator or if the parameter is compared to an indexed column ** and the [SQLITE_ENABLE_STAT3] compile-time option is enabled. ** +** ** **

    ^sqlite3_prepare_v3() differs from sqlite3_prepare_v2() only in having ** the extra prepFlags parameter, which is a bit array consisting of zero or ** more of the [SQLITE_PREPARE_PERSISTENT|SQLITE_PREPARE_*] flags. ^The ** sqlite3_prepare_v2() interface works exactly the same as ** sqlite3_prepare_v3() with a zero prepFlags parameter. -** */ SQLITE_API int sqlite3_prepare( sqlite3 *db, /* Database handle */ @@ -4747,6 +4837,11 @@ SQLITE_API int sqlite3_prepare16_v3( ** ^The sqlite3_expanded_sql(P) interface returns a pointer to a UTF-8 ** string containing the SQL text of prepared statement P with ** [bound parameters] expanded. +** ^The sqlite3_normalized_sql(P) interface returns a pointer to a UTF-8 +** string containing the normalized SQL text of prepared statement P. The +** semantics used to normalize a SQL statement are unspecified and subject +** to change. At a minimum, literal values will be replaced with suitable +** placeholders. ** ** ^(For example, if a prepared statement is created using the SQL ** text "SELECT $abc,:xyz" and if parameter $abc is bound to integer 2345 @@ -4762,14 +4857,16 @@ SQLITE_API int sqlite3_prepare16_v3( ** bound parameter expansions. ^The [SQLITE_OMIT_TRACE] compile-time ** option causes sqlite3_expanded_sql() to always return NULL. ** -** ^The string returned by sqlite3_sql(P) is managed by SQLite and is -** automatically freed when the prepared statement is finalized. +** ^The strings returned by sqlite3_sql(P) and sqlite3_normalized_sql(P) +** are managed by SQLite and are automatically freed when the prepared +** statement is finalized. ** ^The string returned by sqlite3_expanded_sql(P), on the other hand, ** is obtained from [sqlite3_malloc()] and must be free by the application ** by passing it to [sqlite3_free()]. */ SQLITE_API const char *sqlite3_sql(sqlite3_stmt *pStmt); SQLITE_API char *sqlite3_expanded_sql(sqlite3_stmt *pStmt); +SQLITE_API const char *sqlite3_normalized_sql(sqlite3_stmt *pStmt); /* ** CAPI3REF: Determine If An SQL Statement Writes The Database @@ -5551,11 +5648,25 @@ SQLITE_API int sqlite3_data_count(sqlite3_stmt *pStmt); ** from [sqlite3_column_blob()], [sqlite3_column_text()], etc. into ** [sqlite3_free()]. ** -** ^(If a memory allocation error occurs during the evaluation of any -** of these routines, a default value is returned. The default value -** is either the integer 0, the floating point number 0.0, or a NULL -** pointer. Subsequent calls to [sqlite3_errcode()] will return -** [SQLITE_NOMEM].)^ +** As long as the input parameters are correct, these routines will only +** fail if an out-of-memory error occurs during a format conversion. +** Only the following subset of interfaces are subject to out-of-memory +** errors: +** +**

      +**
    • sqlite3_column_blob() +**
    • sqlite3_column_text() +**
    • sqlite3_column_text16() +**
    • sqlite3_column_bytes() +**
    • sqlite3_column_bytes16() +**
    +** +** If an out-of-memory error occurs, then the return value from these +** routines is the same as if the column had contained an SQL NULL value. +** Valid SQL NULL returns can be distinguished from out-of-memory errors +** by invoking the [sqlite3_errcode()] immediately after the suspect +** return value is obtained and before any +** other SQLite interface is called on the same [database connection]. */ SQLITE_API const void *sqlite3_column_blob(sqlite3_stmt*, int iCol); SQLITE_API double sqlite3_column_double(sqlite3_stmt*, int iCol); @@ -5632,11 +5743,13 @@ SQLITE_API int sqlite3_reset(sqlite3_stmt *pStmt); ** ** ^These functions (collectively known as "function creation routines") ** are used to add SQL functions or aggregates or to redefine the behavior -** of existing SQL functions or aggregates. The only differences between -** these routines are the text encoding expected for -** the second parameter (the name of the function being created) -** and the presence or absence of a destructor callback for -** the application data pointer. +** of existing SQL functions or aggregates. The only differences between +** the three "sqlite3_create_function*" routines are the text encoding +** expected for the second parameter (the name of the function being +** created) and the presence or absence of a destructor callback for +** the application data pointer. Function sqlite3_create_window_function() +** is similar, but allows the user to supply the extra callback functions +** needed by [aggregate window functions]. ** ** ^The first parameter is the [database connection] to which the SQL ** function is to be added. ^If an application uses more than one database @@ -5682,7 +5795,8 @@ SQLITE_API int sqlite3_reset(sqlite3_stmt *pStmt); ** ^(The fifth parameter is an arbitrary pointer. The implementation of the ** function can gain access to this pointer using [sqlite3_user_data()].)^ ** -** ^The sixth, seventh and eighth parameters, xFunc, xStep and xFinal, are +** ^The sixth, seventh and eighth parameters passed to the three +** "sqlite3_create_function*" functions, xFunc, xStep and xFinal, are ** pointers to C-language functions that implement the SQL function or ** aggregate. ^A scalar SQL function requires an implementation of the xFunc ** callback only; NULL pointers must be passed as the xStep and xFinal @@ -5691,15 +5805,24 @@ SQLITE_API int sqlite3_reset(sqlite3_stmt *pStmt); ** SQL function or aggregate, pass NULL pointers for all three function ** callbacks. ** -** ^(If the ninth parameter to sqlite3_create_function_v2() is not NULL, -** then it is destructor for the application data pointer. -** The destructor is invoked when the function is deleted, either by being -** overloaded or when the database connection closes.)^ -** ^The destructor is also invoked if the call to -** sqlite3_create_function_v2() fails. -** ^When the destructor callback of the tenth parameter is invoked, it -** is passed a single argument which is a copy of the application data -** pointer which was the fifth parameter to sqlite3_create_function_v2(). +** ^The sixth, seventh, eighth and ninth parameters (xStep, xFinal, xValue +** and xInverse) passed to sqlite3_create_window_function are pointers to +** C-language callbacks that implement the new function. xStep and xFinal +** must both be non-NULL. xValue and xInverse may either both be NULL, in +** which case a regular aggregate function is created, or must both be +** non-NULL, in which case the new function may be used as either an aggregate +** or aggregate window function. More details regarding the implementation +** of aggregate window functions are +** [user-defined window functions|available here]. +** +** ^(If the final parameter to sqlite3_create_function_v2() or +** sqlite3_create_window_function() is not NULL, then it is destructor for +** the application data pointer. The destructor is invoked when the function +** is deleted, either by being overloaded or when the database connection +** closes.)^ ^The destructor is also invoked if the call to +** sqlite3_create_function_v2() fails. ^When the destructor callback is +** invoked, it is passed a single argument which is a copy of the application +** data pointer which was the fifth parameter to sqlite3_create_function_v2(). ** ** ^It is permitted to register multiple implementations of the same ** functions with the same name but with either differing numbers of @@ -5752,6 +5875,18 @@ SQLITE_API int sqlite3_create_function_v2( void (*xFinal)(sqlite3_context*), void(*xDestroy)(void*) ); +SQLITE_API int sqlite3_create_window_function( + sqlite3 *db, + const char *zFunctionName, + int nArg, + int eTextRep, + void *pApp, + void (*xStep)(sqlite3_context*,int,sqlite3_value**), + void (*xFinal)(sqlite3_context*), + void (*xValue)(sqlite3_context*), + void (*xInverse)(sqlite3_context*,int,sqlite3_value**), + void(*xDestroy)(void*) +); /* ** CAPI3REF: Text Encodings @@ -5894,6 +6029,28 @@ SQLITE_API SQLITE_DEPRECATED int sqlite3_memory_alarm(void(*)(void*,sqlite3_int6 ** ** These routines must be called from the same thread as ** the SQL function that supplied the [sqlite3_value*] parameters. +** +** As long as the input parameter is correct, these routines can only +** fail if an out-of-memory error occurs during a format conversion. +** Only the following subset of interfaces are subject to out-of-memory +** errors: +** +**
      +**
    • sqlite3_value_blob() +**
    • sqlite3_value_text() +**
    • sqlite3_value_text16() +**
    • sqlite3_value_text16le() +**
    • sqlite3_value_text16be() +**
    • sqlite3_value_bytes() +**
    • sqlite3_value_bytes16() +**
    +** +** If an out-of-memory error occurs, then the return value from these +** routines is the same as if the column had contained an SQL NULL value. +** Valid SQL NULL returns can be distinguished from out-of-memory errors +** by invoking the [sqlite3_errcode()] immediately after the suspect +** return value is obtained and before any +** other SQLite interface is called on the same [database connection]. */ SQLITE_API const void *sqlite3_value_blob(sqlite3_value*); SQLITE_API double sqlite3_value_double(sqlite3_value*); @@ -6564,6 +6721,41 @@ SQLITE_API char *sqlite3_temp_directory; */ SQLITE_API char *sqlite3_data_directory; +/* +** CAPI3REF: Win32 Specific Interface +** +** These interfaces are available only on Windows. The +** [sqlite3_win32_set_directory] interface is used to set the value associated +** with the [sqlite3_temp_directory] or [sqlite3_data_directory] variable, to +** zValue, depending on the value of the type parameter. The zValue parameter +** should be NULL to cause the previous value to be freed via [sqlite3_free]; +** a non-NULL value will be copied into memory obtained from [sqlite3_malloc] +** prior to being used. The [sqlite3_win32_set_directory] interface returns +** [SQLITE_OK] to indicate success, [SQLITE_ERROR] if the type is unsupported, +** or [SQLITE_NOMEM] if memory could not be allocated. The value of the +** [sqlite3_data_directory] variable is intended to act as a replacement for +** the current directory on the sub-platforms of Win32 where that concept is +** not present, e.g. WinRT and UWP. The [sqlite3_win32_set_directory8] and +** [sqlite3_win32_set_directory16] interfaces behave exactly the same as the +** sqlite3_win32_set_directory interface except the string parameter must be +** UTF-8 or UTF-16, respectively. +*/ +SQLITE_API int sqlite3_win32_set_directory( + unsigned long type, /* Identifier for directory being set or reset */ + void *zValue /* New value for directory being set or reset */ +); +SQLITE_API int sqlite3_win32_set_directory8(unsigned long type, const char *zValue); +SQLITE_API int sqlite3_win32_set_directory16(unsigned long type, const void *zValue); + +/* +** CAPI3REF: Win32 Directory Types +** +** These macros are only available on Windows. They define the allowed values +** for the type argument to the [sqlite3_win32_set_directory] interface. +*/ +#define SQLITE_WIN32_DATA_DIRECTORY_TYPE 1 +#define SQLITE_WIN32_TEMP_DIRECTORY_TYPE 2 + /* ** CAPI3REF: Test For Auto-Commit Mode ** KEYWORDS: {autocommit mode} @@ -7164,6 +7356,9 @@ struct sqlite3_module { int (*xSavepoint)(sqlite3_vtab *pVTab, int); int (*xRelease)(sqlite3_vtab *pVTab, int); int (*xRollbackTo)(sqlite3_vtab *pVTab, int); + /* The methods above are in versions 1 and 2 of the sqlite_module object. + ** Those below are for version 3 and greater. */ + int (*xShadowName)(const char*); }; /* @@ -7296,6 +7491,10 @@ struct sqlite3_index_info { /* ** CAPI3REF: Virtual Table Scan Flags +** +** Virtual table implementations are allowed to set the +** [sqlite3_index_info].idxFlags field to some combination of +** these bits. */ #define SQLITE_INDEX_SCAN_UNIQUE 1 /* Scan visits at most 1 row */ @@ -7321,6 +7520,7 @@ struct sqlite3_index_info { #define SQLITE_INDEX_CONSTRAINT_ISNOTNULL 70 #define SQLITE_INDEX_CONSTRAINT_ISNULL 71 #define SQLITE_INDEX_CONSTRAINT_IS 72 +#define SQLITE_INDEX_CONSTRAINT_FUNCTION 150 /* ** CAPI3REF: Register A Virtual Table Implementation @@ -7997,6 +8197,7 @@ SQLITE_API sqlite3_mutex *sqlite3_db_mutex(sqlite3*); /* ** CAPI3REF: Low-Level Control Of Database Files ** METHOD: sqlite3 +** KEYWORDS: {file control} ** ** ^The [sqlite3_file_control()] interface makes a direct call to the ** xFileControl method for the [sqlite3_io_methods] object associated @@ -8011,11 +8212,18 @@ SQLITE_API sqlite3_mutex *sqlite3_db_mutex(sqlite3*); ** the xFileControl method. ^The return value of the xFileControl ** method becomes the return value of this routine. ** +** A few opcodes for [sqlite3_file_control()] are handled directly +** by the SQLite core and never invoke the +** sqlite3_io_methods.xFileControl method. ** ^The [SQLITE_FCNTL_FILE_POINTER] value for the op parameter causes ** a pointer to the underlying [sqlite3_file] object to be written into -** the space pointed to by the 4th parameter. ^The [SQLITE_FCNTL_FILE_POINTER] -** case is a short-circuit path which does not actually invoke the -** underlying sqlite3_io_methods.xFileControl method. +** the space pointed to by the 4th parameter. The +** [SQLITE_FCNTL_JOURNAL_POINTER] works similarly except that it returns +** the [sqlite3_file] object associated with the journal file instead of +** the main database. The [SQLITE_FCNTL_VFS_POINTER] opcode returns +** a pointer to the underlying [sqlite3_vfs] object for the file. +** The [SQLITE_FCNTL_DATA_VERSION] returns the data version counter +** from the pager. ** ** ^If the second parameter (zDbName) does not match the name of any ** open database file, then SQLITE_ERROR is returned. ^This error @@ -8071,8 +8279,9 @@ SQLITE_API int sqlite3_test_control(int op, ...); #define SQLITE_TESTCTRL_ALWAYS 13 #define SQLITE_TESTCTRL_RESERVE 14 #define SQLITE_TESTCTRL_OPTIMIZATIONS 15 -#define SQLITE_TESTCTRL_ISKEYWORD 16 +#define SQLITE_TESTCTRL_ISKEYWORD 16 /* NOT USED */ #define SQLITE_TESTCTRL_SCRATCHMALLOC 17 /* NOT USED */ +#define SQLITE_TESTCTRL_INTERNAL_FUNCTIONS 17 #define SQLITE_TESTCTRL_LOCALTIME_FAULT 18 #define SQLITE_TESTCTRL_EXPLAIN_STMT 19 /* NOT USED */ #define SQLITE_TESTCTRL_ONCE_RESET_THRESHOLD 19 @@ -8085,6 +8294,189 @@ SQLITE_API int sqlite3_test_control(int op, ...); #define SQLITE_TESTCTRL_PARSER_COVERAGE 26 #define SQLITE_TESTCTRL_LAST 26 /* Largest TESTCTRL */ +/* +** CAPI3REF: SQL Keyword Checking +** +** These routines provide access to the set of SQL language keywords +** recognized by SQLite. Applications can uses these routines to determine +** whether or not a specific identifier needs to be escaped (for example, +** by enclosing in double-quotes) so as not to confuse the parser. +** +** The sqlite3_keyword_count() interface returns the number of distinct +** keywords understood by SQLite. +** +** The sqlite3_keyword_name(N,Z,L) interface finds the N-th keyword and +** makes *Z point to that keyword expressed as UTF8 and writes the number +** of bytes in the keyword into *L. The string that *Z points to is not +** zero-terminated. The sqlite3_keyword_name(N,Z,L) routine returns +** SQLITE_OK if N is within bounds and SQLITE_ERROR if not. If either Z +** or L are NULL or invalid pointers then calls to +** sqlite3_keyword_name(N,Z,L) result in undefined behavior. +** +** The sqlite3_keyword_check(Z,L) interface checks to see whether or not +** the L-byte UTF8 identifier that Z points to is a keyword, returning non-zero +** if it is and zero if not. +** +** The parser used by SQLite is forgiving. It is often possible to use +** a keyword as an identifier as long as such use does not result in a +** parsing ambiguity. For example, the statement +** "CREATE TABLE BEGIN(REPLACE,PRAGMA,END);" is accepted by SQLite, and +** creates a new table named "BEGIN" with three columns named +** "REPLACE", "PRAGMA", and "END". Nevertheless, best practice is to avoid +** using keywords as identifiers. Common techniques used to avoid keyword +** name collisions include: +**
      +**
    • Put all identifier names inside double-quotes. This is the official +** SQL way to escape identifier names. +**
    • Put identifier names inside [...]. This is not standard SQL, +** but it is what SQL Server does and so lots of programmers use this +** technique. +**
    • Begin every identifier with the letter "Z" as no SQL keywords start +** with "Z". +**
    • Include a digit somewhere in every identifier name. +**
    +** +** Note that the number of keywords understood by SQLite can depend on +** compile-time options. For example, "VACUUM" is not a keyword if +** SQLite is compiled with the [-DSQLITE_OMIT_VACUUM] option. Also, +** new keywords may be added to future releases of SQLite. +*/ +SQLITE_API int sqlite3_keyword_count(void); +SQLITE_API int sqlite3_keyword_name(int,const char**,int*); +SQLITE_API int sqlite3_keyword_check(const char*,int); + +/* +** CAPI3REF: Dynamic String Object +** KEYWORDS: {dynamic string} +** +** An instance of the sqlite3_str object contains a dynamically-sized +** string under construction. +** +** The lifecycle of an sqlite3_str object is as follows: +**
      +**
    1. ^The sqlite3_str object is created using [sqlite3_str_new()]. +**
    2. ^Text is appended to the sqlite3_str object using various +** methods, such as [sqlite3_str_appendf()]. +**
    3. ^The sqlite3_str object is destroyed and the string it created +** is returned using the [sqlite3_str_finish()] interface. +**
    +*/ +typedef struct sqlite3_str sqlite3_str; + +/* +** CAPI3REF: Create A New Dynamic String Object +** CONSTRUCTOR: sqlite3_str +** +** ^The [sqlite3_str_new(D)] interface allocates and initializes +** a new [sqlite3_str] object. To avoid memory leaks, the object returned by +** [sqlite3_str_new()] must be freed by a subsequent call to +** [sqlite3_str_finish(X)]. +** +** ^The [sqlite3_str_new(D)] interface always returns a pointer to a +** valid [sqlite3_str] object, though in the event of an out-of-memory +** error the returned object might be a special singleton that will +** silently reject new text, always return SQLITE_NOMEM from +** [sqlite3_str_errcode()], always return 0 for +** [sqlite3_str_length()], and always return NULL from +** [sqlite3_str_finish(X)]. It is always safe to use the value +** returned by [sqlite3_str_new(D)] as the sqlite3_str parameter +** to any of the other [sqlite3_str] methods. +** +** The D parameter to [sqlite3_str_new(D)] may be NULL. If the +** D parameter in [sqlite3_str_new(D)] is not NULL, then the maximum +** length of the string contained in the [sqlite3_str] object will be +** the value set for [sqlite3_limit](D,[SQLITE_LIMIT_LENGTH]) instead +** of [SQLITE_MAX_LENGTH]. +*/ +SQLITE_API sqlite3_str *sqlite3_str_new(sqlite3*); + +/* +** CAPI3REF: Finalize A Dynamic String +** DESTRUCTOR: sqlite3_str +** +** ^The [sqlite3_str_finish(X)] interface destroys the sqlite3_str object X +** and returns a pointer to a memory buffer obtained from [sqlite3_malloc64()] +** that contains the constructed string. The calling application should +** pass the returned value to [sqlite3_free()] to avoid a memory leak. +** ^The [sqlite3_str_finish(X)] interface may return a NULL pointer if any +** errors were encountered during construction of the string. ^The +** [sqlite3_str_finish(X)] interface will also return a NULL pointer if the +** string in [sqlite3_str] object X is zero bytes long. +*/ +SQLITE_API char *sqlite3_str_finish(sqlite3_str*); + +/* +** CAPI3REF: Add Content To A Dynamic String +** METHOD: sqlite3_str +** +** These interfaces add content to an sqlite3_str object previously obtained +** from [sqlite3_str_new()]. +** +** ^The [sqlite3_str_appendf(X,F,...)] and +** [sqlite3_str_vappendf(X,F,V)] interfaces uses the [built-in printf] +** functionality of SQLite to append formatted text onto the end of +** [sqlite3_str] object X. +** +** ^The [sqlite3_str_append(X,S,N)] method appends exactly N bytes from string S +** onto the end of the [sqlite3_str] object X. N must be non-negative. +** S must contain at least N non-zero bytes of content. To append a +** zero-terminated string in its entirety, use the [sqlite3_str_appendall()] +** method instead. +** +** ^The [sqlite3_str_appendall(X,S)] method appends the complete content of +** zero-terminated string S onto the end of [sqlite3_str] object X. +** +** ^The [sqlite3_str_appendchar(X,N,C)] method appends N copies of the +** single-byte character C onto the end of [sqlite3_str] object X. +** ^This method can be used, for example, to add whitespace indentation. +** +** ^The [sqlite3_str_reset(X)] method resets the string under construction +** inside [sqlite3_str] object X back to zero bytes in length. +** +** These methods do not return a result code. ^If an error occurs, that fact +** is recorded in the [sqlite3_str] object and can be recovered by a +** subsequent call to [sqlite3_str_errcode(X)]. +*/ +SQLITE_API void sqlite3_str_appendf(sqlite3_str*, const char *zFormat, ...); +SQLITE_API void sqlite3_str_vappendf(sqlite3_str*, const char *zFormat, va_list); +SQLITE_API void sqlite3_str_append(sqlite3_str*, const char *zIn, int N); +SQLITE_API void sqlite3_str_appendall(sqlite3_str*, const char *zIn); +SQLITE_API void sqlite3_str_appendchar(sqlite3_str*, int N, char C); +SQLITE_API void sqlite3_str_reset(sqlite3_str*); + +/* +** CAPI3REF: Status Of A Dynamic String +** METHOD: sqlite3_str +** +** These interfaces return the current status of an [sqlite3_str] object. +** +** ^If any prior errors have occurred while constructing the dynamic string +** in sqlite3_str X, then the [sqlite3_str_errcode(X)] method will return +** an appropriate error code. ^The [sqlite3_str_errcode(X)] method returns +** [SQLITE_NOMEM] following any out-of-memory error, or +** [SQLITE_TOOBIG] if the size of the dynamic string exceeds +** [SQLITE_MAX_LENGTH], or [SQLITE_OK] if there have been no errors. +** +** ^The [sqlite3_str_length(X)] method returns the current length, in bytes, +** of the dynamic string under construction in [sqlite3_str] object X. +** ^The length returned by [sqlite3_str_length(X)] does not include the +** zero-termination byte. +** +** ^The [sqlite3_str_value(X)] method returns a pointer to the current +** content of the dynamic string under construction in X. The value +** returned by [sqlite3_str_value(X)] is managed by the sqlite3_str object X +** and might be freed or altered by any subsequent method on the same +** [sqlite3_str] object. Applications must not used the pointer returned +** [sqlite3_str_value(X)] after any subsequent method call on the same +** object. ^Applications may change the content of the string returned +** by [sqlite3_str_value(X)] as long as they do not write into any bytes +** outside the range of 0 to [sqlite3_str_length(X)] and do not read or +** write any byte after any subsequent sqlite3_str method call. +*/ +SQLITE_API int sqlite3_str_errcode(sqlite3_str*); +SQLITE_API int sqlite3_str_length(sqlite3_str*); +SQLITE_API char *sqlite3_str_value(sqlite3_str*); + /* ** CAPI3REF: SQLite Runtime Status ** @@ -8318,6 +8710,15 @@ SQLITE_API int sqlite3_db_status(sqlite3*, int op, int *pCur, int *pHiwtr, int r ** highwater mark associated with SQLITE_DBSTATUS_CACHE_WRITE is always 0. **
    ** +** [[SQLITE_DBSTATUS_CACHE_SPILL]] ^(
    SQLITE_DBSTATUS_CACHE_SPILL
    +**
    This parameter returns the number of dirty cache entries that have +** been written to disk in the middle of a transaction due to the page +** cache overflowing. Transactions are more efficient if they are written +** to disk all at once. When pages spill mid-transaction, that introduces +** additional overhead. This parameter can be used help identify +** inefficiencies that can be resolve by increasing the cache size. +**
    +** ** [[SQLITE_DBSTATUS_DEFERRED_FKS]] ^(
    SQLITE_DBSTATUS_DEFERRED_FKS
    **
    This parameter returns zero for the current value if and only if ** all foreign key constraints (deferred or immediate) have been @@ -8337,7 +8738,8 @@ SQLITE_API int sqlite3_db_status(sqlite3*, int op, int *pCur, int *pHiwtr, int r #define SQLITE_DBSTATUS_CACHE_WRITE 9 #define SQLITE_DBSTATUS_DEFERRED_FKS 10 #define SQLITE_DBSTATUS_CACHE_USED_SHARED 11 -#define SQLITE_DBSTATUS_MAX 11 /* Largest defined DBSTATUS */ +#define SQLITE_DBSTATUS_CACHE_SPILL 12 +#define SQLITE_DBSTATUS_MAX 12 /* Largest defined DBSTATUS */ /* @@ -9292,6 +9694,7 @@ SQLITE_API int sqlite3_vtab_config(sqlite3*, int op, ...); ** can use to customize and optimize their behavior. ** **
    +** [[SQLITE_VTAB_CONSTRAINT_SUPPORT]] **
    SQLITE_VTAB_CONSTRAINT_SUPPORT **
    Calls of the form ** [sqlite3_vtab_config](db,SQLITE_VTAB_CONSTRAINT_SUPPORT,X) are supported, @@ -9344,11 +9747,11 @@ SQLITE_API int sqlite3_vtab_on_conflict(sqlite3 *); ** method of a [virtual table], then it returns true if and only if the ** column is being fetched as part of an UPDATE operation during which the ** column value will not change. Applications might use this to substitute -** a lighter-weight value to return that the corresponding [xUpdate] method -** understands as a "no-change" value. +** a return value that is less expensive to compute and that the corresponding +** [xUpdate] method understands as a "no-change" value. ** ** If the [xColumn] method calls sqlite3_vtab_nochange() and finds that -** the column is not changed by the UPDATE statement, they the xColumn +** the column is not changed by the UPDATE statement, then the xColumn ** method can optionally return without setting a result, without calling ** any of the [sqlite3_result_int|sqlite3_result_xxxxx() interfaces]. ** In that case, [sqlite3_value_nochange(X)] will return true for the @@ -9641,7 +10044,6 @@ SQLITE_API int sqlite3_system_errno(sqlite3*); /* ** CAPI3REF: Database Snapshot ** KEYWORDS: {snapshot} {sqlite3_snapshot} -** EXPERIMENTAL ** ** An instance of the snapshot object records the state of a [WAL mode] ** database for some specific point in history. @@ -9658,11 +10060,6 @@ SQLITE_API int sqlite3_system_errno(sqlite3*); ** version of the database file so that it is possible to later open a new read ** transaction that sees that historical version of the database rather than ** the most recent version. -** -** The constructor for this object is [sqlite3_snapshot_get()]. The -** [sqlite3_snapshot_open()] method causes a fresh read transaction to refer -** to an historical snapshot (if possible). The destructor for -** sqlite3_snapshot objects is [sqlite3_snapshot_free()]. */ typedef struct sqlite3_snapshot { unsigned char hidden[48]; @@ -9670,7 +10067,7 @@ typedef struct sqlite3_snapshot { /* ** CAPI3REF: Record A Database Snapshot -** EXPERIMENTAL +** CONSTRUCTOR: sqlite3_snapshot ** ** ^The [sqlite3_snapshot_get(D,S,P)] interface attempts to make a ** new [sqlite3_snapshot] object that records the current state of @@ -9686,7 +10083,7 @@ typedef struct sqlite3_snapshot { ** in this case. ** **
      -**
    • The database handle must be in [autocommit mode]. +**
    • The database handle must not be in [autocommit mode]. ** **
    • Schema S of [database connection] D must be a [WAL mode] database. ** @@ -9709,7 +10106,7 @@ typedef struct sqlite3_snapshot { ** to avoid a memory leak. ** ** The [sqlite3_snapshot_get()] interface is only available when the -** SQLITE_ENABLE_SNAPSHOT compile-time option is used. +** [SQLITE_ENABLE_SNAPSHOT] compile-time option is used. */ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_get( sqlite3 *db, @@ -9719,24 +10116,35 @@ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_get( /* ** CAPI3REF: Start a read transaction on an historical snapshot -** EXPERIMENTAL +** METHOD: sqlite3_snapshot +** +** ^The [sqlite3_snapshot_open(D,S,P)] interface either starts a new read +** transaction or upgrades an existing one for schema S of +** [database connection] D such that the read transaction refers to +** historical [snapshot] P, rather than the most recent change to the +** database. ^The [sqlite3_snapshot_open()] interface returns SQLITE_OK +** on success or an appropriate [error code] if it fails. +** +** ^In order to succeed, the database connection must not be in +** [autocommit mode] when [sqlite3_snapshot_open(D,S,P)] is called. If there +** is already a read transaction open on schema S, then the database handle +** must have no active statements (SELECT statements that have been passed +** to sqlite3_step() but not sqlite3_reset() or sqlite3_finalize()). +** SQLITE_ERROR is returned if either of these conditions is violated, or +** if schema S does not exist, or if the snapshot object is invalid. +** +** ^A call to sqlite3_snapshot_open() will fail to open if the specified +** snapshot has been overwritten by a [checkpoint]. In this case +** SQLITE_ERROR_SNAPSHOT is returned. +** +** If there is already a read transaction open when this function is +** invoked, then the same read transaction remains open (on the same +** database snapshot) if SQLITE_ERROR, SQLITE_BUSY or SQLITE_ERROR_SNAPSHOT +** is returned. If another error code - for example SQLITE_PROTOCOL or an +** SQLITE_IOERR error code - is returned, then the final state of the +** read transaction is undefined. If SQLITE_OK is returned, then the +** read transaction is now open on database snapshot P. ** -** ^The [sqlite3_snapshot_open(D,S,P)] interface starts a -** read transaction for schema S of -** [database connection] D such that the read transaction -** refers to historical [snapshot] P, rather than the most -** recent change to the database. -** ^The [sqlite3_snapshot_open()] interface returns SQLITE_OK on success -** or an appropriate [error code] if it fails. -** -** ^In order to succeed, a call to [sqlite3_snapshot_open(D,S,P)] must be -** the first operation following the [BEGIN] that takes the schema S -** out of [autocommit mode]. -** ^In other words, schema S must not currently be in -** a transaction for [sqlite3_snapshot_open(D,S,P)] to work, but the -** database connection D must be out of [autocommit mode]. -** ^A [snapshot] will fail to open if it has been overwritten by a -** [checkpoint]. ** ^(A call to [sqlite3_snapshot_open(D,S,P)] will fail if the ** database connection D does not know that the database file for ** schema S is in [WAL mode]. A database connection might not know @@ -9747,7 +10155,7 @@ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_get( ** database connection in order to make it ready to use snapshots.) ** ** The [sqlite3_snapshot_open()] interface is only available when the -** SQLITE_ENABLE_SNAPSHOT compile-time option is used. +** [SQLITE_ENABLE_SNAPSHOT] compile-time option is used. */ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_open( sqlite3 *db, @@ -9757,20 +10165,20 @@ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_open( /* ** CAPI3REF: Destroy a snapshot -** EXPERIMENTAL +** DESTRUCTOR: sqlite3_snapshot ** ** ^The [sqlite3_snapshot_free(P)] interface destroys [sqlite3_snapshot] P. ** The application must eventually free every [sqlite3_snapshot] object ** using this routine to avoid a memory leak. ** ** The [sqlite3_snapshot_free()] interface is only available when the -** SQLITE_ENABLE_SNAPSHOT compile-time option is used. +** [SQLITE_ENABLE_SNAPSHOT] compile-time option is used. */ SQLITE_API SQLITE_EXPERIMENTAL void sqlite3_snapshot_free(sqlite3_snapshot*); /* ** CAPI3REF: Compare the ages of two snapshot handles. -** EXPERIMENTAL +** METHOD: sqlite3_snapshot ** ** The sqlite3_snapshot_cmp(P1, P2) interface is used to compare the ages ** of two valid snapshot handles. @@ -9789,6 +10197,9 @@ SQLITE_API SQLITE_EXPERIMENTAL void sqlite3_snapshot_free(sqlite3_snapshot*); ** Otherwise, this API returns a negative value if P1 refers to an older ** snapshot than P2, zero if the two handles refer to the same database ** snapshot, and a positive value if P1 is a newer snapshot than P2. +** +** This interface is only available if SQLite is compiled with the +** [SQLITE_ENABLE_SNAPSHOT] option. */ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_cmp( sqlite3_snapshot *p1, @@ -9797,26 +10208,151 @@ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_cmp( /* ** CAPI3REF: Recover snapshots from a wal file -** EXPERIMENTAL +** METHOD: sqlite3_snapshot ** -** If all connections disconnect from a database file but do not perform -** a checkpoint, the existing wal file is opened along with the database -** file the next time the database is opened. At this point it is only -** possible to successfully call sqlite3_snapshot_open() to open the most -** recent snapshot of the database (the one at the head of the wal file), -** even though the wal file may contain other valid snapshots for which -** clients have sqlite3_snapshot handles. +** If a [WAL file] remains on disk after all database connections close +** (either through the use of the [SQLITE_FCNTL_PERSIST_WAL] [file control] +** or because the last process to have the database opened exited without +** calling [sqlite3_close()]) and a new connection is subsequently opened +** on that database and [WAL file], the [sqlite3_snapshot_open()] interface +** will only be able to open the last transaction added to the WAL file +** even though the WAL file contains other valid transactions. ** -** This function attempts to scan the wal file associated with database zDb +** This function attempts to scan the WAL file associated with database zDb ** of database handle db and make all valid snapshots available to ** sqlite3_snapshot_open(). It is an error if there is already a read -** transaction open on the database, or if the database is not a wal mode +** transaction open on the database, or if the database is not a WAL mode ** database. ** ** SQLITE_OK is returned if successful, or an SQLite error code otherwise. +** +** This interface is only available if SQLite is compiled with the +** [SQLITE_ENABLE_SNAPSHOT] option. */ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_recover(sqlite3 *db, const char *zDb); +/* +** CAPI3REF: Serialize a database +** +** The sqlite3_serialize(D,S,P,F) interface returns a pointer to memory +** that is a serialization of the S database on [database connection] D. +** If P is not a NULL pointer, then the size of the database in bytes +** is written into *P. +** +** For an ordinary on-disk database file, the serialization is just a +** copy of the disk file. For an in-memory database or a "TEMP" database, +** the serialization is the same sequence of bytes which would be written +** to disk if that database where backed up to disk. +** +** The usual case is that sqlite3_serialize() copies the serialization of +** the database into memory obtained from [sqlite3_malloc64()] and returns +** a pointer to that memory. The caller is responsible for freeing the +** returned value to avoid a memory leak. However, if the F argument +** contains the SQLITE_SERIALIZE_NOCOPY bit, then no memory allocations +** are made, and the sqlite3_serialize() function will return a pointer +** to the contiguous memory representation of the database that SQLite +** is currently using for that database, or NULL if the no such contiguous +** memory representation of the database exists. A contiguous memory +** representation of the database will usually only exist if there has +** been a prior call to [sqlite3_deserialize(D,S,...)] with the same +** values of D and S. +** The size of the database is written into *P even if the +** SQLITE_SERIALIZE_NOCOPY bit is set but no contiguous copy +** of the database exists. +** +** A call to sqlite3_serialize(D,S,P,F) might return NULL even if the +** SQLITE_SERIALIZE_NOCOPY bit is omitted from argument F if a memory +** allocation error occurs. +** +** This interface is only available if SQLite is compiled with the +** [SQLITE_ENABLE_DESERIALIZE] option. +*/ +SQLITE_API unsigned char *sqlite3_serialize( + sqlite3 *db, /* The database connection */ + const char *zSchema, /* Which DB to serialize. ex: "main", "temp", ... */ + sqlite3_int64 *piSize, /* Write size of the DB here, if not NULL */ + unsigned int mFlags /* Zero or more SQLITE_SERIALIZE_* flags */ +); + +/* +** CAPI3REF: Flags for sqlite3_serialize +** +** Zero or more of the following constants can be OR-ed together for +** the F argument to [sqlite3_serialize(D,S,P,F)]. +** +** SQLITE_SERIALIZE_NOCOPY means that [sqlite3_serialize()] will return +** a pointer to contiguous in-memory database that it is currently using, +** without making a copy of the database. If SQLite is not currently using +** a contiguous in-memory database, then this option causes +** [sqlite3_serialize()] to return a NULL pointer. SQLite will only be +** using a contiguous in-memory database if it has been initialized by a +** prior call to [sqlite3_deserialize()]. +*/ +#define SQLITE_SERIALIZE_NOCOPY 0x001 /* Do no memory allocations */ + +/* +** CAPI3REF: Deserialize a database +** +** The sqlite3_deserialize(D,S,P,N,M,F) interface causes the +** [database connection] D to disconnect from database S and then +** reopen S as an in-memory database based on the serialization contained +** in P. The serialized database P is N bytes in size. M is the size of +** the buffer P, which might be larger than N. If M is larger than N, and +** the SQLITE_DESERIALIZE_READONLY bit is not set in F, then SQLite is +** permitted to add content to the in-memory database as long as the total +** size does not exceed M bytes. +** +** If the SQLITE_DESERIALIZE_FREEONCLOSE bit is set in F, then SQLite will +** invoke sqlite3_free() on the serialization buffer when the database +** connection closes. If the SQLITE_DESERIALIZE_RESIZEABLE bit is set, then +** SQLite will try to increase the buffer size using sqlite3_realloc64() +** if writes on the database cause it to grow larger than M bytes. +** +** The sqlite3_deserialize() interface will fail with SQLITE_BUSY if the +** database is currently in a read transaction or is involved in a backup +** operation. +** +** If sqlite3_deserialize(D,S,P,N,M,F) fails for any reason and if the +** SQLITE_DESERIALIZE_FREEONCLOSE bit is set in argument F, then +** [sqlite3_free()] is invoked on argument P prior to returning. +** +** This interface is only available if SQLite is compiled with the +** [SQLITE_ENABLE_DESERIALIZE] option. +*/ +SQLITE_API int sqlite3_deserialize( + sqlite3 *db, /* The database connection */ + const char *zSchema, /* Which DB to reopen with the deserialization */ + unsigned char *pData, /* The serialized database content */ + sqlite3_int64 szDb, /* Number bytes in the deserialization */ + sqlite3_int64 szBuf, /* Total size of buffer pData[] */ + unsigned mFlags /* Zero or more SQLITE_DESERIALIZE_* flags */ +); + +/* +** CAPI3REF: Flags for sqlite3_deserialize() +** +** The following are allowed values for 6th argument (the F argument) to +** the [sqlite3_deserialize(D,S,P,N,M,F)] interface. +** +** The SQLITE_DESERIALIZE_FREEONCLOSE means that the database serialization +** in the P argument is held in memory obtained from [sqlite3_malloc64()] +** and that SQLite should take ownership of this memory and automatically +** free it when it has finished using it. Without this flag, the caller +** is responsible for freeing any dynamically allocated memory. +** +** The SQLITE_DESERIALIZE_RESIZEABLE flag means that SQLite is allowed to +** grow the size of the database using calls to [sqlite3_realloc64()]. This +** flag should only be used if SQLITE_DESERIALIZE_FREEONCLOSE is also used. +** Without this flag, the deserialized database cannot increase in size beyond +** the number of bytes specified by the M parameter. +** +** The SQLITE_DESERIALIZE_READONLY flag means that the deserialized database +** should be treated as read-only. +*/ +#define SQLITE_DESERIALIZE_FREEONCLOSE 1 /* Call sqlite3_free() on close */ +#define SQLITE_DESERIALIZE_RESIZEABLE 2 /* Resize using sqlite3_realloc64() */ +#define SQLITE_DESERIALIZE_READONLY 4 /* Database is read-only */ + /* ** Undo the hack that converts floating point types to integer for ** builds on processors without floating point support. @@ -9928,7 +10464,7 @@ struct sqlite3_rtree_query_info { sqlite3_int64 iRowid; /* Rowid for current entry */ sqlite3_rtree_dbl rParentScore; /* Score of parent node */ int eParentWithin; /* Visibility of parent node */ - int eWithin; /* OUT: Visiblity */ + int eWithin; /* OUT: Visibility */ sqlite3_rtree_dbl rScore; /* OUT: Write the score here */ /* The following fields are only available in 3.8.11 and later */ sqlite3_value **apSqlParam; /* Original SQL values of parameters */ @@ -9964,16 +10500,23 @@ extern "C" { /* ** CAPI3REF: Session Object Handle +** +** An instance of this object is a [session] that can be used to +** record changes to a database. */ typedef struct sqlite3_session sqlite3_session; /* ** CAPI3REF: Changeset Iterator Handle +** +** An instance of this object acts as a cursor for iterating +** over the elements of a [changeset] or [patchset]. */ typedef struct sqlite3_changeset_iter sqlite3_changeset_iter; /* ** CAPI3REF: Create A New Session Object +** CONSTRUCTOR: sqlite3_session ** ** Create a new session object attached to database handle db. If successful, ** a pointer to the new object is written to *ppSession and SQLITE_OK is @@ -10010,6 +10553,7 @@ SQLITE_API int sqlite3session_create( /* ** CAPI3REF: Delete A Session Object +** DESTRUCTOR: sqlite3_session ** ** Delete a session object previously allocated using ** [sqlite3session_create()]. Once a session object has been deleted, the @@ -10025,6 +10569,7 @@ SQLITE_API void sqlite3session_delete(sqlite3_session *pSession); /* ** CAPI3REF: Enable Or Disable A Session Object +** METHOD: sqlite3_session ** ** Enable or disable the recording of changes by a session object. When ** enabled, a session object records changes made to the database. When @@ -10044,6 +10589,7 @@ SQLITE_API int sqlite3session_enable(sqlite3_session *pSession, int bEnable); /* ** CAPI3REF: Set Or Clear the Indirect Change Flag +** METHOD: sqlite3_session ** ** Each change recorded by a session object is marked as either direct or ** indirect. A change is marked as indirect if either: @@ -10073,6 +10619,7 @@ SQLITE_API int sqlite3session_indirect(sqlite3_session *pSession, int bIndirect) /* ** CAPI3REF: Attach A Table To A Session Object +** METHOD: sqlite3_session ** ** If argument zTab is not NULL, then it is the name of a table to attach ** to the session object passed as the first argument. All subsequent changes @@ -10135,6 +10682,7 @@ SQLITE_API int sqlite3session_attach( /* ** CAPI3REF: Set a table filter on a Session Object. +** METHOD: sqlite3_session ** ** The second argument (xFilter) is the "filter callback". For changes to rows ** in tables that are not attached to the Session object, the filter is called @@ -10153,6 +10701,7 @@ SQLITE_API void sqlite3session_table_filter( /* ** CAPI3REF: Generate A Changeset From A Session Object +** METHOD: sqlite3_session ** ** Obtain a changeset containing changes to the tables attached to the ** session object passed as the first argument. If successful, @@ -10262,7 +10811,8 @@ SQLITE_API int sqlite3session_changeset( ); /* -** CAPI3REF: Load The Difference Between Tables Into A Session +** CAPI3REF: Load The Difference Between Tables Into A Session +** METHOD: sqlite3_session ** ** If it is not already attached to the session object passed as the first ** argument, this function attaches table zTbl in the same manner as the @@ -10327,6 +10877,7 @@ SQLITE_API int sqlite3session_diff( /* ** CAPI3REF: Generate A Patchset From A Session Object +** METHOD: sqlite3_session ** ** The differences between a patchset and a changeset are that: ** @@ -10378,6 +10929,7 @@ SQLITE_API int sqlite3session_isempty(sqlite3_session *pSession); /* ** CAPI3REF: Create An Iterator To Traverse A Changeset +** CONSTRUCTOR: sqlite3_changeset_iter ** ** Create an iterator used to iterate through the contents of a changeset. ** If successful, *pp is set to point to the iterator handle and SQLITE_OK @@ -10408,16 +10960,43 @@ SQLITE_API int sqlite3session_isempty(sqlite3_session *pSession); ** consecutively. There is no chance that the iterator will visit a change ** the applies to table X, then one for table Y, and then later on visit ** another change for table X. +** +** The behavior of sqlite3changeset_start_v2() and its streaming equivalent +** may be modified by passing a combination of +** [SQLITE_CHANGESETSTART_INVERT | supported flags] as the 4th parameter. +** +** Note that the sqlite3changeset_start_v2() API is still experimental +** and therefore subject to change. */ SQLITE_API int sqlite3changeset_start( sqlite3_changeset_iter **pp, /* OUT: New changeset iterator handle */ int nChangeset, /* Size of changeset blob in bytes */ void *pChangeset /* Pointer to blob containing changeset */ ); +SQLITE_API int sqlite3changeset_start_v2( + sqlite3_changeset_iter **pp, /* OUT: New changeset iterator handle */ + int nChangeset, /* Size of changeset blob in bytes */ + void *pChangeset, /* Pointer to blob containing changeset */ + int flags /* SESSION_CHANGESETSTART_* flags */ +); + +/* +** CAPI3REF: Flags for sqlite3changeset_start_v2 +** +** The following flags may passed via the 4th parameter to +** [sqlite3changeset_start_v2] and [sqlite3changeset_start_v2_strm]: +** +**
      SQLITE_CHANGESETAPPLY_INVERT
      +** Invert the changeset while iterating through it. This is equivalent to +** inverting a changeset using sqlite3changeset_invert() before applying it. +** It is an error to specify this flag with a patchset. +*/ +#define SQLITE_CHANGESETSTART_INVERT 0x0002 /* ** CAPI3REF: Advance A Changeset Iterator +** METHOD: sqlite3_changeset_iter ** ** This function may only be used with iterators created by function ** [sqlite3changeset_start()]. If it is called on an iterator passed to @@ -10442,6 +11021,7 @@ SQLITE_API int sqlite3changeset_next(sqlite3_changeset_iter *pIter); /* ** CAPI3REF: Obtain The Current Operation From A Changeset Iterator +** METHOD: sqlite3_changeset_iter ** ** The pIter argument passed to this function may either be an iterator ** passed to a conflict-handler by [sqlite3changeset_apply()], or an iterator @@ -10476,6 +11056,7 @@ SQLITE_API int sqlite3changeset_op( /* ** CAPI3REF: Obtain The Primary Key Definition Of A Table +** METHOD: sqlite3_changeset_iter ** ** For each modified table, a changeset includes the following: ** @@ -10507,6 +11088,7 @@ SQLITE_API int sqlite3changeset_pk( /* ** CAPI3REF: Obtain old.* Values From A Changeset Iterator +** METHOD: sqlite3_changeset_iter ** ** The pIter argument passed to this function may either be an iterator ** passed to a conflict-handler by [sqlite3changeset_apply()], or an iterator @@ -10537,6 +11119,7 @@ SQLITE_API int sqlite3changeset_old( /* ** CAPI3REF: Obtain new.* Values From A Changeset Iterator +** METHOD: sqlite3_changeset_iter ** ** The pIter argument passed to this function may either be an iterator ** passed to a conflict-handler by [sqlite3changeset_apply()], or an iterator @@ -10570,6 +11153,7 @@ SQLITE_API int sqlite3changeset_new( /* ** CAPI3REF: Obtain Conflicting Row Values From A Changeset Iterator +** METHOD: sqlite3_changeset_iter ** ** This function should only be used with iterator objects passed to a ** conflict-handler callback by [sqlite3changeset_apply()] with either @@ -10597,6 +11181,7 @@ SQLITE_API int sqlite3changeset_conflict( /* ** CAPI3REF: Determine The Number Of Foreign Key Constraint Violations +** METHOD: sqlite3_changeset_iter ** ** This function may only be called with an iterator passed to an ** SQLITE_CHANGESET_FOREIGN_KEY conflict handler callback. In this case @@ -10613,6 +11198,7 @@ SQLITE_API int sqlite3changeset_fk_conflicts( /* ** CAPI3REF: Finalize A Changeset Iterator +** METHOD: sqlite3_changeset_iter ** ** This function is used to finalize an iterator allocated with ** [sqlite3changeset_start()]. @@ -10629,6 +11215,7 @@ SQLITE_API int sqlite3changeset_fk_conflicts( ** to that error is returned by this function. Otherwise, SQLITE_OK is ** returned. This is to allow the following pattern (pseudo-code): ** +**
       **   sqlite3changeset_start();
       **   while( SQLITE_ROW==sqlite3changeset_next() ){
       **     // Do something with change.
      @@ -10637,6 +11224,7 @@ SQLITE_API int sqlite3changeset_fk_conflicts(
       **   if( rc!=SQLITE_OK ){
       **     // An error has occurred 
       **   }
      +** 
      */ SQLITE_API int sqlite3changeset_finalize(sqlite3_changeset_iter *pIter); @@ -10684,6 +11272,7 @@ SQLITE_API int sqlite3changeset_invert( ** sqlite3_changegroup object. Calling it produces similar results as the ** following code fragment: ** +**
       **   sqlite3_changegroup *pGrp;
       **   rc = sqlite3_changegroup_new(&pGrp);
       **   if( rc==SQLITE_OK ) rc = sqlite3changegroup_add(pGrp, nA, pA);
      @@ -10694,6 +11283,7 @@ SQLITE_API int sqlite3changeset_invert(
       **     *ppOut = 0;
       **     *pnOut = 0;
       **   }
      +** 
      ** ** Refer to the sqlite3_changegroup documentation below for details. */ @@ -10709,11 +11299,15 @@ SQLITE_API int sqlite3changeset_concat( /* ** CAPI3REF: Changegroup Handle +** +** A changegroup is an object used to combine two or more +** [changesets] or [patchsets] */ typedef struct sqlite3_changegroup sqlite3_changegroup; /* ** CAPI3REF: Create A New Changegroup Object +** CONSTRUCTOR: sqlite3_changegroup ** ** An sqlite3_changegroup object is used to combine two or more changesets ** (or patchsets) into a single changeset (or patchset). A single changegroup @@ -10751,6 +11345,7 @@ SQLITE_API int sqlite3changegroup_new(sqlite3_changegroup **pp); /* ** CAPI3REF: Add A Changeset To A Changegroup +** METHOD: sqlite3_changegroup ** ** Add all changes within the changeset (or patchset) in buffer pData (size ** nData bytes) to the changegroup. @@ -10828,6 +11423,7 @@ SQLITE_API int sqlite3changegroup_add(sqlite3_changegroup*, int nData, void *pDa /* ** CAPI3REF: Obtain A Composite Changeset From A Changegroup +** METHOD: sqlite3_changegroup ** ** Obtain a buffer containing a changeset (or patchset) representing the ** current contents of the changegroup. If the inputs to the changegroup @@ -10858,25 +11454,25 @@ SQLITE_API int sqlite3changegroup_output( /* ** CAPI3REF: Delete A Changegroup Object +** DESTRUCTOR: sqlite3_changegroup */ SQLITE_API void sqlite3changegroup_delete(sqlite3_changegroup*); /* ** CAPI3REF: Apply A Changeset To A Database ** -** Apply a changeset to a database. This function attempts to update the -** "main" database attached to handle db with the changes found in the -** changeset passed via the second and third arguments. +** Apply a changeset or patchset to a database. These functions attempt to +** update the "main" database attached to handle db with the changes found in +** the changeset passed via the second and third arguments. ** -** The fourth argument (xFilter) passed to this function is the "filter +** The fourth argument (xFilter) passed to these functions is the "filter ** callback". If it is not NULL, then for each table affected by at least one ** change in the changeset, the filter callback is invoked with ** the table name as the second argument, and a copy of the context pointer -** passed as the sixth argument to this function as the first. If the "filter -** callback" returns zero, then no attempt is made to apply any changes to -** the table. Otherwise, if the return value is non-zero or the xFilter -** argument to this function is NULL, all changes related to the table are -** attempted. +** passed as the sixth argument as the first. If the "filter callback" +** returns zero, then no attempt is made to apply any changes to the table. +** Otherwise, if the return value is non-zero or the xFilter argument to +** is NULL, all changes related to the table are attempted. ** ** For each table that is not excluded by the filter callback, this function ** tests that the target database contains a compatible table. A table is @@ -10921,7 +11517,7 @@ SQLITE_API void sqlite3changegroup_delete(sqlite3_changegroup*); ** **
      **
      DELETE Changes
      -** For each DELETE change, this function checks if the target database +** For each DELETE change, the function checks if the target database ** contains a row with the same primary key value (or values) as the ** original row values stored in the changeset. If it does, and the values ** stored in all non-primary key columns also match the values stored in @@ -10966,7 +11562,7 @@ SQLITE_API void sqlite3changegroup_delete(sqlite3_changegroup*); ** [SQLITE_CHANGESET_REPLACE]. ** **
      UPDATE Changes
      -** For each UPDATE change, this function checks if the target database +** For each UPDATE change, the function checks if the target database ** contains a row with the same primary key value (or values) as the ** original row values stored in the changeset. If it does, and the values ** stored in all modified non-primary key columns also match the values @@ -10997,11 +11593,28 @@ SQLITE_API void sqlite3changegroup_delete(sqlite3_changegroup*); ** This can be used to further customize the applications conflict ** resolution strategy. ** -** All changes made by this function are enclosed in a savepoint transaction. +** All changes made by these functions are enclosed in a savepoint transaction. ** If any other error (aside from a constraint failure when attempting to ** write to the target database) occurs, then the savepoint transaction is ** rolled back, restoring the target database to its original state, and an ** SQLite error code returned. +** +** If the output parameters (ppRebase) and (pnRebase) are non-NULL and +** the input is a changeset (not a patchset), then sqlite3changeset_apply_v2() +** may set (*ppRebase) to point to a "rebase" that may be used with the +** sqlite3_rebaser APIs buffer before returning. In this case (*pnRebase) +** is set to the size of the buffer in bytes. It is the responsibility of the +** caller to eventually free any such buffer using sqlite3_free(). The buffer +** is only allocated and populated if one or more conflicts were encountered +** while applying the patchset. See comments surrounding the sqlite3_rebaser +** APIs for further details. +** +** The behavior of sqlite3changeset_apply_v2() and its streaming equivalent +** may be modified by passing a combination of +** [SQLITE_CHANGESETAPPLY_NOSAVEPOINT | supported flags] as the 9th parameter. +** +** Note that the sqlite3changeset_apply_v2() API is still experimental +** and therefore subject to change. */ SQLITE_API int sqlite3changeset_apply( sqlite3 *db, /* Apply change to "main" db of this handle */ @@ -11018,6 +11631,47 @@ SQLITE_API int sqlite3changeset_apply( ), void *pCtx /* First argument passed to xConflict */ ); +SQLITE_API int sqlite3changeset_apply_v2( + sqlite3 *db, /* Apply change to "main" db of this handle */ + int nChangeset, /* Size of changeset in bytes */ + void *pChangeset, /* Changeset blob */ + int(*xFilter)( + void *pCtx, /* Copy of sixth arg to _apply() */ + const char *zTab /* Table name */ + ), + int(*xConflict)( + void *pCtx, /* Copy of sixth arg to _apply() */ + int eConflict, /* DATA, MISSING, CONFLICT, CONSTRAINT */ + sqlite3_changeset_iter *p /* Handle describing change and conflict */ + ), + void *pCtx, /* First argument passed to xConflict */ + void **ppRebase, int *pnRebase, /* OUT: Rebase data */ + int flags /* SESSION_CHANGESETAPPLY_* flags */ +); + +/* +** CAPI3REF: Flags for sqlite3changeset_apply_v2 +** +** The following flags may passed via the 9th parameter to +** [sqlite3changeset_apply_v2] and [sqlite3changeset_apply_v2_strm]: +** +**
      +**
      SQLITE_CHANGESETAPPLY_NOSAVEPOINT
      +** Usually, the sessions module encloses all operations performed by +** a single call to apply_v2() or apply_v2_strm() in a [SAVEPOINT]. The +** SAVEPOINT is committed if the changeset or patchset is successfully +** applied, or rolled back if an error occurs. Specifying this flag +** causes the sessions module to omit this savepoint. In this case, if the +** caller has an open transaction or savepoint when apply_v2() is called, +** it may revert the partially applied changeset by rolling it back. +** +**
      SQLITE_CHANGESETAPPLY_INVERT
      +** Invert the changeset before applying it. This is equivalent to inverting +** a changeset using sqlite3changeset_invert() before applying it. It is +** an error to specify this flag with a patchset. +*/ +#define SQLITE_CHANGESETAPPLY_NOSAVEPOINT 0x0001 +#define SQLITE_CHANGESETAPPLY_INVERT 0x0002 /* ** CAPI3REF: Constants Passed To The Conflict Handler @@ -11115,6 +11769,161 @@ SQLITE_API int sqlite3changeset_apply( #define SQLITE_CHANGESET_REPLACE 1 #define SQLITE_CHANGESET_ABORT 2 +/* +** CAPI3REF: Rebasing changesets +** EXPERIMENTAL +** +** Suppose there is a site hosting a database in state S0. And that +** modifications are made that move that database to state S1 and a +** changeset recorded (the "local" changeset). Then, a changeset based +** on S0 is received from another site (the "remote" changeset) and +** applied to the database. The database is then in state +** (S1+"remote"), where the exact state depends on any conflict +** resolution decisions (OMIT or REPLACE) made while applying "remote". +** Rebasing a changeset is to update it to take those conflict +** resolution decisions into account, so that the same conflicts +** do not have to be resolved elsewhere in the network. +** +** For example, if both the local and remote changesets contain an +** INSERT of the same key on "CREATE TABLE t1(a PRIMARY KEY, b)": +** +** local: INSERT INTO t1 VALUES(1, 'v1'); +** remote: INSERT INTO t1 VALUES(1, 'v2'); +** +** and the conflict resolution is REPLACE, then the INSERT change is +** removed from the local changeset (it was overridden). Or, if the +** conflict resolution was "OMIT", then the local changeset is modified +** to instead contain: +** +** UPDATE t1 SET b = 'v2' WHERE a=1; +** +** Changes within the local changeset are rebased as follows: +** +**
      +**
      Local INSERT
      +** This may only conflict with a remote INSERT. If the conflict +** resolution was OMIT, then add an UPDATE change to the rebased +** changeset. Or, if the conflict resolution was REPLACE, add +** nothing to the rebased changeset. +** +**
      Local DELETE
      +** This may conflict with a remote UPDATE or DELETE. In both cases the +** only possible resolution is OMIT. If the remote operation was a +** DELETE, then add no change to the rebased changeset. If the remote +** operation was an UPDATE, then the old.* fields of change are updated +** to reflect the new.* values in the UPDATE. +** +**
      Local UPDATE
      +** This may conflict with a remote UPDATE or DELETE. If it conflicts +** with a DELETE, and the conflict resolution was OMIT, then the update +** is changed into an INSERT. Any undefined values in the new.* record +** from the update change are filled in using the old.* values from +** the conflicting DELETE. Or, if the conflict resolution was REPLACE, +** the UPDATE change is simply omitted from the rebased changeset. +** +** If conflict is with a remote UPDATE and the resolution is OMIT, then +** the old.* values are rebased using the new.* values in the remote +** change. Or, if the resolution is REPLACE, then the change is copied +** into the rebased changeset with updates to columns also updated by +** the conflicting remote UPDATE removed. If this means no columns would +** be updated, the change is omitted. +**
      +** +** A local change may be rebased against multiple remote changes +** simultaneously. If a single key is modified by multiple remote +** changesets, they are combined as follows before the local changeset +** is rebased: +** +**
        +**
      • If there has been one or more REPLACE resolutions on a +** key, it is rebased according to a REPLACE. +** +**
      • If there have been no REPLACE resolutions on a key, then +** the local changeset is rebased according to the most recent +** of the OMIT resolutions. +**
      +** +** Note that conflict resolutions from multiple remote changesets are +** combined on a per-field basis, not per-row. This means that in the +** case of multiple remote UPDATE operations, some fields of a single +** local change may be rebased for REPLACE while others are rebased for +** OMIT. +** +** In order to rebase a local changeset, the remote changeset must first +** be applied to the local database using sqlite3changeset_apply_v2() and +** the buffer of rebase information captured. Then: +** +**
        +**
      1. An sqlite3_rebaser object is created by calling +** sqlite3rebaser_create(). +**
      2. The new object is configured with the rebase buffer obtained from +** sqlite3changeset_apply_v2() by calling sqlite3rebaser_configure(). +** If the local changeset is to be rebased against multiple remote +** changesets, then sqlite3rebaser_configure() should be called +** multiple times, in the same order that the multiple +** sqlite3changeset_apply_v2() calls were made. +**
      3. Each local changeset is rebased by calling sqlite3rebaser_rebase(). +**
      4. The sqlite3_rebaser object is deleted by calling +** sqlite3rebaser_delete(). +**
      +*/ +typedef struct sqlite3_rebaser sqlite3_rebaser; + +/* +** CAPI3REF: Create a changeset rebaser object. +** EXPERIMENTAL +** +** Allocate a new changeset rebaser object. If successful, set (*ppNew) to +** point to the new object and return SQLITE_OK. Otherwise, if an error +** occurs, return an SQLite error code (e.g. SQLITE_NOMEM) and set (*ppNew) +** to NULL. +*/ +SQLITE_API int sqlite3rebaser_create(sqlite3_rebaser **ppNew); + +/* +** CAPI3REF: Configure a changeset rebaser object. +** EXPERIMENTAL +** +** Configure the changeset rebaser object to rebase changesets according +** to the conflict resolutions described by buffer pRebase (size nRebase +** bytes), which must have been obtained from a previous call to +** sqlite3changeset_apply_v2(). +*/ +SQLITE_API int sqlite3rebaser_configure( + sqlite3_rebaser*, + int nRebase, const void *pRebase +); + +/* +** CAPI3REF: Rebase a changeset +** EXPERIMENTAL +** +** Argument pIn must point to a buffer containing a changeset nIn bytes +** in size. This function allocates and populates a buffer with a copy +** of the changeset rebased rebased according to the configuration of the +** rebaser object passed as the first argument. If successful, (*ppOut) +** is set to point to the new buffer containing the rebased changset and +** (*pnOut) to its size in bytes and SQLITE_OK returned. It is the +** responsibility of the caller to eventually free the new buffer using +** sqlite3_free(). Otherwise, if an error occurs, (*ppOut) and (*pnOut) +** are set to zero and an SQLite error code returned. +*/ +SQLITE_API int sqlite3rebaser_rebase( + sqlite3_rebaser*, + int nIn, const void *pIn, + int *pnOut, void **ppOut +); + +/* +** CAPI3REF: Delete a changeset rebaser object. +** EXPERIMENTAL +** +** Delete the changeset rebaser object and all associated resources. There +** should be one call to this function for each successful invocation +** of sqlite3rebaser_create(). +*/ +SQLITE_API void sqlite3rebaser_delete(sqlite3_rebaser *p); + /* ** CAPI3REF: Streaming Versions of API functions. ** @@ -11124,6 +11933,7 @@ SQLITE_API int sqlite3changeset_apply( ** ** **
      Streaming functionNon-streaming equivalent
      sqlite3changeset_apply_strm[sqlite3changeset_apply] +**
      sqlite3changeset_apply_strm_v2[sqlite3changeset_apply_v2] **
      sqlite3changeset_concat_strm[sqlite3changeset_concat] **
      sqlite3changeset_invert_strm[sqlite3changeset_invert] **
      sqlite3changeset_start_strm[sqlite3changeset_start] @@ -11219,6 +12029,23 @@ SQLITE_API int sqlite3changeset_apply_strm( ), void *pCtx /* First argument passed to xConflict */ ); +SQLITE_API int sqlite3changeset_apply_v2_strm( + sqlite3 *db, /* Apply change to "main" db of this handle */ + int (*xInput)(void *pIn, void *pData, int *pnData), /* Input function */ + void *pIn, /* First arg for xInput */ + int(*xFilter)( + void *pCtx, /* Copy of sixth arg to _apply() */ + const char *zTab /* Table name */ + ), + int(*xConflict)( + void *pCtx, /* Copy of sixth arg to _apply() */ + int eConflict, /* DATA, MISSING, CONFLICT, CONSTRAINT */ + sqlite3_changeset_iter *p /* Handle describing change and conflict */ + ), + void *pCtx, /* First argument passed to xConflict */ + void **ppRebase, int *pnRebase, + int flags +); SQLITE_API int sqlite3changeset_concat_strm( int (*xInputA)(void *pIn, void *pData, int *pnData), void *pInA, @@ -11238,6 +12065,12 @@ SQLITE_API int sqlite3changeset_start_strm( int (*xInput)(void *pIn, void *pData, int *pnData), void *pIn ); +SQLITE_API int sqlite3changeset_start_v2_strm( + sqlite3_changeset_iter **pp, + int (*xInput)(void *pIn, void *pData, int *pnData), + void *pIn, + int flags +); SQLITE_API int sqlite3session_changeset_strm( sqlite3_session *pSession, int (*xOutput)(void *pOut, const void *pData, int nData), @@ -11256,7 +12089,53 @@ SQLITE_API int sqlite3changegroup_output_strm(sqlite3_changegroup*, int (*xOutput)(void *pOut, const void *pData, int nData), void *pOut ); +SQLITE_API int sqlite3rebaser_rebase_strm( + sqlite3_rebaser *pRebaser, + int (*xInput)(void *pIn, void *pData, int *pnData), + void *pIn, + int (*xOutput)(void *pOut, const void *pData, int nData), + void *pOut +); + +/* +** CAPI3REF: Configure global parameters +** +** The sqlite3session_config() interface is used to make global configuration +** changes to the sessions module in order to tune it to the specific needs +** of the application. +** +** The sqlite3session_config() interface is not threadsafe. If it is invoked +** while any other thread is inside any other sessions method then the +** results are undefined. Furthermore, if it is invoked after any sessions +** related objects have been created, the results are also undefined. +** +** The first argument to the sqlite3session_config() function must be one +** of the SQLITE_SESSION_CONFIG_XXX constants defined below. The +** interpretation of the (void*) value passed as the second parameter and +** the effect of calling this function depends on the value of the first +** parameter. +** +**
      +**
      SQLITE_SESSION_CONFIG_STRMSIZE
      +** By default, the sessions module streaming interfaces attempt to input +** and output data in approximately 1 KiB chunks. This operand may be used +** to set and query the value of this configuration setting. The pointer +** passed as the second argument must point to a value of type (int). +** If this value is greater than 0, it is used as the new streaming data +** chunk size for both input and output. Before returning, the (int) value +** pointed to by pArg is set to the final value of the streaming interface +** chunk size. +**
      +** +** This function returns SQLITE_OK if successful, or an SQLite error code +** otherwise. +*/ +SQLITE_API int sqlite3session_config(int op, void *pArg); +/* +** CAPI3REF: Values for sqlite3session_config(). +*/ +#define SQLITE_SESSION_CONFIG_STRMSIZE 1 /* ** Make sure we can call this stuff from C++. @@ -11714,7 +12593,7 @@ struct Fts5ExtensionApi { ** This way, even if the tokenizer does not provide synonyms ** when tokenizing query text (it should not - to do would be ** inefficient), it doesn't matter if the user queries for -** 'first + place' or '1st + place', as there are entires in the +** 'first + place' or '1st + place', as there are entries in the ** FTS index corresponding to both forms of the first token. ** ** @@ -11742,7 +12621,7 @@ struct Fts5ExtensionApi { ** extra data to the FTS index or require FTS5 to query for multiple terms, ** so it is efficient in terms of disk space and query speed. However, it ** does not support prefix queries very well. If, as suggested above, the -** token "first" is subsituted for "1st" by the tokenizer, then the query: +** token "first" is substituted for "1st" by the tokenizer, then the query: ** ** ** ... MATCH '1s*' @@ -12591,105 +13470,119 @@ SQLITE_PRIVATE void sqlite3HashClear(Hash*); #define TK_ESCAPE 58 #define TK_ID 59 #define TK_COLUMNKW 60 -#define TK_FOR 61 -#define TK_IGNORE 62 -#define TK_INITIALLY 63 -#define TK_INSTEAD 64 -#define TK_NO 65 -#define TK_KEY 66 -#define TK_OF 67 -#define TK_OFFSET 68 -#define TK_PRAGMA 69 -#define TK_RAISE 70 -#define TK_RECURSIVE 71 -#define TK_REPLACE 72 -#define TK_RESTRICT 73 -#define TK_ROW 74 -#define TK_TRIGGER 75 -#define TK_VACUUM 76 -#define TK_VIEW 77 -#define TK_VIRTUAL 78 -#define TK_WITH 79 -#define TK_REINDEX 80 -#define TK_RENAME 81 -#define TK_CTIME_KW 82 -#define TK_ANY 83 -#define TK_BITAND 84 -#define TK_BITOR 85 -#define TK_LSHIFT 86 -#define TK_RSHIFT 87 -#define TK_PLUS 88 -#define TK_MINUS 89 -#define TK_STAR 90 -#define TK_SLASH 91 -#define TK_REM 92 -#define TK_CONCAT 93 -#define TK_COLLATE 94 -#define TK_BITNOT 95 -#define TK_INDEXED 96 -#define TK_STRING 97 -#define TK_JOIN_KW 98 -#define TK_CONSTRAINT 99 -#define TK_DEFAULT 100 -#define TK_NULL 101 -#define TK_PRIMARY 102 -#define TK_UNIQUE 103 -#define TK_CHECK 104 -#define TK_REFERENCES 105 -#define TK_AUTOINCR 106 -#define TK_ON 107 -#define TK_INSERT 108 -#define TK_DELETE 109 -#define TK_UPDATE 110 -#define TK_SET 111 -#define TK_DEFERRABLE 112 -#define TK_FOREIGN 113 -#define TK_DROP 114 -#define TK_UNION 115 -#define TK_ALL 116 -#define TK_EXCEPT 117 -#define TK_INTERSECT 118 -#define TK_SELECT 119 -#define TK_VALUES 120 -#define TK_DISTINCT 121 -#define TK_DOT 122 -#define TK_FROM 123 -#define TK_JOIN 124 -#define TK_USING 125 -#define TK_ORDER 126 -#define TK_GROUP 127 -#define TK_HAVING 128 -#define TK_LIMIT 129 -#define TK_WHERE 130 -#define TK_INTO 131 -#define TK_FLOAT 132 -#define TK_BLOB 133 -#define TK_INTEGER 134 -#define TK_VARIABLE 135 -#define TK_CASE 136 -#define TK_WHEN 137 -#define TK_THEN 138 -#define TK_ELSE 139 -#define TK_INDEX 140 -#define TK_ALTER 141 -#define TK_ADD 142 -#define TK_ISNOT 143 -#define TK_FUNCTION 144 -#define TK_COLUMN 145 -#define TK_AGG_FUNCTION 146 -#define TK_AGG_COLUMN 147 -#define TK_UMINUS 148 -#define TK_UPLUS 149 -#define TK_REGISTER 150 -#define TK_VECTOR 151 -#define TK_SELECT_COLUMN 152 -#define TK_IF_NULL_ROW 153 -#define TK_ASTERISK 154 -#define TK_SPAN 155 -#define TK_END_OF_FILE 156 -#define TK_UNCLOSED_STRING 157 -#define TK_SPACE 158 -#define TK_ILLEGAL 159 +#define TK_DO 61 +#define TK_FOR 62 +#define TK_IGNORE 63 +#define TK_INITIALLY 64 +#define TK_INSTEAD 65 +#define TK_NO 66 +#define TK_KEY 67 +#define TK_OF 68 +#define TK_OFFSET 69 +#define TK_PRAGMA 70 +#define TK_RAISE 71 +#define TK_RECURSIVE 72 +#define TK_REPLACE 73 +#define TK_RESTRICT 74 +#define TK_ROW 75 +#define TK_ROWS 76 +#define TK_TRIGGER 77 +#define TK_VACUUM 78 +#define TK_VIEW 79 +#define TK_VIRTUAL 80 +#define TK_WITH 81 +#define TK_CURRENT 82 +#define TK_FOLLOWING 83 +#define TK_PARTITION 84 +#define TK_PRECEDING 85 +#define TK_RANGE 86 +#define TK_UNBOUNDED 87 +#define TK_REINDEX 88 +#define TK_RENAME 89 +#define TK_CTIME_KW 90 +#define TK_ANY 91 +#define TK_BITAND 92 +#define TK_BITOR 93 +#define TK_LSHIFT 94 +#define TK_RSHIFT 95 +#define TK_PLUS 96 +#define TK_MINUS 97 +#define TK_STAR 98 +#define TK_SLASH 99 +#define TK_REM 100 +#define TK_CONCAT 101 +#define TK_COLLATE 102 +#define TK_BITNOT 103 +#define TK_ON 104 +#define TK_INDEXED 105 +#define TK_STRING 106 +#define TK_JOIN_KW 107 +#define TK_CONSTRAINT 108 +#define TK_DEFAULT 109 +#define TK_NULL 110 +#define TK_PRIMARY 111 +#define TK_UNIQUE 112 +#define TK_CHECK 113 +#define TK_REFERENCES 114 +#define TK_AUTOINCR 115 +#define TK_INSERT 116 +#define TK_DELETE 117 +#define TK_UPDATE 118 +#define TK_SET 119 +#define TK_DEFERRABLE 120 +#define TK_FOREIGN 121 +#define TK_DROP 122 +#define TK_UNION 123 +#define TK_ALL 124 +#define TK_EXCEPT 125 +#define TK_INTERSECT 126 +#define TK_SELECT 127 +#define TK_VALUES 128 +#define TK_DISTINCT 129 +#define TK_DOT 130 +#define TK_FROM 131 +#define TK_JOIN 132 +#define TK_USING 133 +#define TK_ORDER 134 +#define TK_GROUP 135 +#define TK_HAVING 136 +#define TK_LIMIT 137 +#define TK_WHERE 138 +#define TK_INTO 139 +#define TK_NOTHING 140 +#define TK_FLOAT 141 +#define TK_BLOB 142 +#define TK_INTEGER 143 +#define TK_VARIABLE 144 +#define TK_CASE 145 +#define TK_WHEN 146 +#define TK_THEN 147 +#define TK_ELSE 148 +#define TK_INDEX 149 +#define TK_ALTER 150 +#define TK_ADD 151 +#define TK_WINDOW 152 +#define TK_OVER 153 +#define TK_FILTER 154 +#define TK_TRUEFALSE 155 +#define TK_ISNOT 156 +#define TK_FUNCTION 157 +#define TK_COLUMN 158 +#define TK_AGG_FUNCTION 159 +#define TK_AGG_COLUMN 160 +#define TK_UMINUS 161 +#define TK_UPLUS 162 +#define TK_TRUTH 163 +#define TK_REGISTER 164 +#define TK_VECTOR 165 +#define TK_SELECT_COLUMN 166 +#define TK_IF_NULL_ROW 167 +#define TK_ASTERISK 168 +#define TK_SPAN 169 +#define TK_END_OF_FILE 170 +#define TK_UNCLOSED_STRING 171 +#define TK_SPACE 172 +#define TK_ILLEGAL 173 /* The token codes above must all fit in 8 bits */ #define TKFLG_MASK 0xff @@ -12809,6 +13702,13 @@ SQLITE_PRIVATE void sqlite3HashClear(Hash*); # define SQLITE_DEFAULT_PCACHE_INITSZ 20 #endif +/* +** Default value for the SQLITE_CONFIG_SORTERREF_SIZE option. +*/ +#ifndef SQLITE_DEFAULT_SORTERREF_SIZE +# define SQLITE_DEFAULT_SORTERREF_SIZE 0x7fffffff +#endif + /* ** The compile-time options SQLITE_MMAP_READWRITE and ** SQLITE_ENABLE_BATCH_ATOMIC_WRITE are not compatible with one another. @@ -12956,7 +13856,8 @@ typedef INT16_TYPE LogEst; # if defined(__SIZEOF_POINTER__) # define SQLITE_PTRSIZE __SIZEOF_POINTER__ # elif defined(i386) || defined(__i386__) || defined(_M_IX86) || \ - defined(_M_ARM) || defined(__arm__) || defined(__x86) + defined(_M_ARM) || defined(__arm__) || defined(__x86) || \ + (defined(__TOS_AIX__) && !defined(__64BIT__)) # define SQLITE_PTRSIZE 4 # else # define SQLITE_PTRSIZE 8 @@ -12997,7 +13898,7 @@ typedef INT16_TYPE LogEst; # if defined(i386) || defined(__i386__) || defined(_M_IX86) || \ defined(__x86_64) || defined(__x86_64__) || defined(_M_X64) || \ defined(_M_AMD64) || defined(_M_ARM) || defined(__x86) || \ - defined(__arm__) + defined(__arm__) || defined(_M_ARM64) # define SQLITE_BYTEORDER 1234 # elif defined(sparc) || defined(__ppc__) # define SQLITE_BYTEORDER 4321 @@ -13133,9 +14034,10 @@ typedef INT16_TYPE LogEst; */ typedef struct BusyHandler BusyHandler; struct BusyHandler { - int (*xFunc)(void *,int); /* The busy callback */ - void *pArg; /* First arg to busy callback */ - int nBusy; /* Incremented with each busy call */ + int (*xBusyHandler)(void *,int); /* The busy callback */ + void *pBusyArg; /* First arg to busy callback */ + int nBusy; /* Incremented with each busy call */ + u8 bExtraFileArg; /* Include sqlite3_file as callback arg */ }; /* @@ -13251,13 +14153,14 @@ typedef struct NameContext NameContext; typedef struct Parse Parse; typedef struct PreUpdate PreUpdate; typedef struct PrintfArguments PrintfArguments; +typedef struct RenameToken RenameToken; typedef struct RowSet RowSet; typedef struct Savepoint Savepoint; typedef struct Select Select; typedef struct SQLiteThread SQLiteThread; typedef struct SelectDest SelectDest; typedef struct SrcList SrcList; -typedef struct StrAccum StrAccum; +typedef struct sqlite3_str StrAccum; /* Internal alias for sqlite3_str */ typedef struct Table Table; typedef struct TableLock TableLock; typedef struct Token Token; @@ -13266,12 +14169,40 @@ typedef struct Trigger Trigger; typedef struct TriggerPrg TriggerPrg; typedef struct TriggerStep TriggerStep; typedef struct UnpackedRecord UnpackedRecord; +typedef struct Upsert Upsert; typedef struct VTable VTable; typedef struct VtabCtx VtabCtx; typedef struct Walker Walker; typedef struct WhereInfo WhereInfo; +typedef struct Window Window; typedef struct With With; + +/* +** The bitmask datatype defined below is used for various optimizations. +** +** Changing this from a 64-bit to a 32-bit type limits the number of +** tables in a join to 32 instead of 64. But it also reduces the size +** of the library by 738 bytes on ix86. +*/ +#ifdef SQLITE_BITMASK_TYPE + typedef SQLITE_BITMASK_TYPE Bitmask; +#else + typedef u64 Bitmask; +#endif + +/* +** The number of bits in a Bitmask. "BMS" means "BitMask Size". +*/ +#define BMS ((int)(sizeof(Bitmask)*8)) + +/* +** A bit in a Bitmask +*/ +#define MASKBIT(n) (((Bitmask)1)<<(n)) +#define MASKBIT32(n) (((unsigned int)1)<<(n)) +#define ALLBITS ((Bitmask)-1) + /* A VList object records a mapping between parameters/variables/wildcards ** in the SQL statement (such as $abc, @pqr, or :xyz) and the integer ** variable number associated with that parameter. See the format description @@ -13367,7 +14298,7 @@ SQLITE_PRIVATE int sqlite3BtreeGetOptimalReserve(Btree*); SQLITE_PRIVATE int sqlite3BtreeGetReserveNoMutex(Btree *p); SQLITE_PRIVATE int sqlite3BtreeSetAutoVacuum(Btree *, int); SQLITE_PRIVATE int sqlite3BtreeGetAutoVacuum(Btree *); -SQLITE_PRIVATE int sqlite3BtreeBeginTrans(Btree*,int); +SQLITE_PRIVATE int sqlite3BtreeBeginTrans(Btree*,int,int*); SQLITE_PRIVATE int sqlite3BtreeCommitPhaseOne(Btree*, const char *zMaster); SQLITE_PRIVATE int sqlite3BtreeCommitPhaseTwo(Btree*, int); SQLITE_PRIVATE int sqlite3BtreeCommit(Btree*); @@ -13548,13 +14479,28 @@ SQLITE_PRIVATE int sqlite3BtreeDelete(BtCursor*, u8 flags); ** entry in either an index or table btree. ** ** Index btrees (used for indexes and also WITHOUT ROWID tables) contain -** an arbitrary key and no data. These btrees have pKey,nKey set to their -** key and pData,nData,nZero set to zero. +** an arbitrary key and no data. These btrees have pKey,nKey set to the +** key and the pData,nData,nZero fields are uninitialized. The aMem,nMem +** fields give an array of Mem objects that are a decomposition of the key. +** The nMem field might be zero, indicating that no decomposition is available. ** ** Table btrees (used for rowid tables) contain an integer rowid used as ** the key and passed in the nKey field. The pKey field is zero. ** pData,nData hold the content of the new entry. nZero extra zero bytes ** are appended to the end of the content when constructing the entry. +** The aMem,nMem fields are uninitialized for table btrees. +** +** Field usage summary: +** +** Table BTrees Index Btrees +** +** pKey always NULL encoded key +** nKey the ROWID length of pKey +** pData data not used +** aMem not used decomposed key value +** nMem not used entries in aMem +** nData length of pData not used +** nZero extra zeros after pData not used ** ** This object is used to pass information into sqlite3BtreeInsert(). The ** same information used to be passed as five separate parameters. But placing @@ -13565,7 +14511,7 @@ SQLITE_PRIVATE int sqlite3BtreeDelete(BtCursor*, u8 flags); struct BtreePayload { const void *pKey; /* Key content for indexes. NULL for tables */ sqlite3_int64 nKey; /* Size of pKey for indexes. PRIMARY KEY for tabs */ - const void *pData; /* Data for tables. NULL for indexes */ + const void *pData; /* Data for tables. */ sqlite3_value *aMem; /* First of nMem value in the unpacked pKey */ u16 nMem; /* Number of aMem[] value. Might be zero */ int nData; /* Size of pData. 0 if none. */ @@ -13575,6 +14521,9 @@ struct BtreePayload { SQLITE_PRIVATE int sqlite3BtreeInsert(BtCursor*, const BtreePayload *pPayload, int flags, int seekResult); SQLITE_PRIVATE int sqlite3BtreeFirst(BtCursor*, int *pRes); +#ifndef SQLITE_OMIT_WINDOWFUNC +SQLITE_PRIVATE void sqlite3BtreeSkipNext(BtCursor*); +#endif SQLITE_PRIVATE int sqlite3BtreeLast(BtCursor*, int *pRes); SQLITE_PRIVATE int sqlite3BtreeNext(BtCursor*, int flags); SQLITE_PRIVATE int sqlite3BtreeEof(BtCursor*); @@ -13742,7 +14691,8 @@ struct VdbeOp { u64 cycles; /* Total time spent executing this instruction */ #endif #ifdef SQLITE_VDBE_COVERAGE - int iSrcLine; /* Source-code line that generated this opcode */ + u32 iSrcLine; /* Source-code line that generated this opcode + ** with flags in the upper 8 bits */ #endif }; typedef struct VdbeOp VdbeOp; @@ -13843,52 +14793,52 @@ typedef struct VdbeOpList VdbeOpList; #define OP_AutoCommit 1 #define OP_Transaction 2 #define OP_SorterNext 3 /* jump */ -#define OP_PrevIfOpen 4 /* jump */ -#define OP_NextIfOpen 5 /* jump */ -#define OP_Prev 6 /* jump */ -#define OP_Next 7 /* jump */ -#define OP_Checkpoint 8 -#define OP_JournalMode 9 -#define OP_Vacuum 10 -#define OP_VFilter 11 /* jump, synopsis: iplan=r[P3] zplan='P4' */ -#define OP_VUpdate 12 /* synopsis: data=r[P3@P2] */ -#define OP_Goto 13 /* jump */ -#define OP_Gosub 14 /* jump */ -#define OP_InitCoroutine 15 /* jump */ -#define OP_Yield 16 /* jump */ -#define OP_MustBeInt 17 /* jump */ -#define OP_Jump 18 /* jump */ +#define OP_Prev 4 /* jump */ +#define OP_Next 5 /* jump */ +#define OP_Checkpoint 6 +#define OP_JournalMode 7 +#define OP_Vacuum 8 +#define OP_VFilter 9 /* jump, synopsis: iplan=r[P3] zplan='P4' */ +#define OP_VUpdate 10 /* synopsis: data=r[P3@P2] */ +#define OP_Goto 11 /* jump */ +#define OP_Gosub 12 /* jump */ +#define OP_InitCoroutine 13 /* jump */ +#define OP_Yield 14 /* jump */ +#define OP_MustBeInt 15 /* jump */ +#define OP_Jump 16 /* jump */ +#define OP_Once 17 /* jump */ +#define OP_If 18 /* jump */ #define OP_Not 19 /* same as TK_NOT, synopsis: r[P2]= !r[P1] */ -#define OP_Once 20 /* jump */ -#define OP_If 21 /* jump */ -#define OP_IfNot 22 /* jump */ -#define OP_IfNullRow 23 /* jump, synopsis: if P1.nullRow then r[P3]=NULL, goto P2 */ -#define OP_SeekLT 24 /* jump, synopsis: key=r[P3@P4] */ -#define OP_SeekLE 25 /* jump, synopsis: key=r[P3@P4] */ -#define OP_SeekGE 26 /* jump, synopsis: key=r[P3@P4] */ -#define OP_SeekGT 27 /* jump, synopsis: key=r[P3@P4] */ -#define OP_NoConflict 28 /* jump, synopsis: key=r[P3@P4] */ -#define OP_NotFound 29 /* jump, synopsis: key=r[P3@P4] */ -#define OP_Found 30 /* jump, synopsis: key=r[P3@P4] */ -#define OP_SeekRowid 31 /* jump, synopsis: intkey=r[P3] */ -#define OP_NotExists 32 /* jump, synopsis: intkey=r[P3] */ -#define OP_Last 33 /* jump */ -#define OP_IfSmaller 34 /* jump */ -#define OP_SorterSort 35 /* jump */ -#define OP_Sort 36 /* jump */ -#define OP_Rewind 37 /* jump */ -#define OP_IdxLE 38 /* jump, synopsis: key=r[P3@P4] */ -#define OP_IdxGT 39 /* jump, synopsis: key=r[P3@P4] */ -#define OP_IdxLT 40 /* jump, synopsis: key=r[P3@P4] */ -#define OP_IdxGE 41 /* jump, synopsis: key=r[P3@P4] */ -#define OP_RowSetRead 42 /* jump, synopsis: r[P3]=rowset(P1) */ +#define OP_IfNot 20 /* jump */ +#define OP_IfNullRow 21 /* jump, synopsis: if P1.nullRow then r[P3]=NULL, goto P2 */ +#define OP_SeekLT 22 /* jump, synopsis: key=r[P3@P4] */ +#define OP_SeekLE 23 /* jump, synopsis: key=r[P3@P4] */ +#define OP_SeekGE 24 /* jump, synopsis: key=r[P3@P4] */ +#define OP_SeekGT 25 /* jump, synopsis: key=r[P3@P4] */ +#define OP_IfNoHope 26 /* jump, synopsis: key=r[P3@P4] */ +#define OP_NoConflict 27 /* jump, synopsis: key=r[P3@P4] */ +#define OP_NotFound 28 /* jump, synopsis: key=r[P3@P4] */ +#define OP_Found 29 /* jump, synopsis: key=r[P3@P4] */ +#define OP_SeekRowid 30 /* jump, synopsis: intkey=r[P3] */ +#define OP_NotExists 31 /* jump, synopsis: intkey=r[P3] */ +#define OP_Last 32 /* jump */ +#define OP_IfSmaller 33 /* jump */ +#define OP_SorterSort 34 /* jump */ +#define OP_Sort 35 /* jump */ +#define OP_Rewind 36 /* jump */ +#define OP_IdxLE 37 /* jump, synopsis: key=r[P3@P4] */ +#define OP_IdxGT 38 /* jump, synopsis: key=r[P3@P4] */ +#define OP_IdxLT 39 /* jump, synopsis: key=r[P3@P4] */ +#define OP_IdxGE 40 /* jump, synopsis: key=r[P3@P4] */ +#define OP_RowSetRead 41 /* jump, synopsis: r[P3]=rowset(P1) */ +#define OP_RowSetTest 42 /* jump, synopsis: if r[P3] in rowset(P1) goto P2 */ #define OP_Or 43 /* same as TK_OR, synopsis: r[P3]=(r[P1] || r[P2]) */ #define OP_And 44 /* same as TK_AND, synopsis: r[P3]=(r[P1] && r[P2]) */ -#define OP_RowSetTest 45 /* jump, synopsis: if r[P3] in rowset(P1) goto P2 */ -#define OP_Program 46 /* jump */ -#define OP_FkIfZero 47 /* jump, synopsis: if fkctr[P1]==0 goto P2 */ -#define OP_IfPos 48 /* jump, synopsis: if r[P1]>0 then r[P1]-=P3, goto P2 */ -#define OP_IfNotZero 49 /* jump, synopsis: if r[P1]!=0 then r[P1]--, goto P2 */ +#define OP_Program 45 /* jump */ +#define OP_FkIfZero 46 /* jump, synopsis: if fkctr[P1]==0 goto P2 */ +#define OP_IfPos 47 /* jump, synopsis: if r[P1]>0 then r[P1]-=P3, goto P2 */ +#define OP_IfNotZero 48 /* jump, synopsis: if r[P1]!=0 then r[P1]--, goto P2 */ +#define OP_DecrJumpZero 49 /* jump, synopsis: if (--r[P1])==0 goto P2 */ #define OP_IsNull 50 /* jump, same as TK_ISNULL, synopsis: if r[P1]==NULL goto P2 */ #define OP_NotNull 51 /* jump, same as TK_NOTNULL, synopsis: if r[P1]!=NULL goto P2 */ #define OP_Ne 52 /* jump, same as TK_NE, synopsis: IF r[P3]!=r[P1] */ @@ -13898,117 +14848,121 @@ typedef struct VdbeOpList VdbeOpList; #define OP_Lt 56 /* jump, same as TK_LT, synopsis: IF r[P3]=r[P1] */ #define OP_ElseNotEq 58 /* jump, same as TK_ESCAPE */ -#define OP_DecrJumpZero 59 /* jump, synopsis: if (--r[P1])==0 goto P2 */ -#define OP_IncrVacuum 60 /* jump */ -#define OP_VNext 61 /* jump */ -#define OP_Init 62 /* jump, synopsis: Start at P2 */ -#define OP_Return 63 -#define OP_EndCoroutine 64 -#define OP_HaltIfNull 65 /* synopsis: if r[P3]=null halt */ -#define OP_Halt 66 -#define OP_Integer 67 /* synopsis: r[P2]=P1 */ -#define OP_Int64 68 /* synopsis: r[P2]=P4 */ -#define OP_String 69 /* synopsis: r[P2]='P4' (len=P1) */ -#define OP_Null 70 /* synopsis: r[P2..P3]=NULL */ -#define OP_SoftNull 71 /* synopsis: r[P1]=NULL */ -#define OP_Blob 72 /* synopsis: r[P2]=P4 (len=P1) */ -#define OP_Variable 73 /* synopsis: r[P2]=parameter(P1,P4) */ -#define OP_Move 74 /* synopsis: r[P2@P3]=r[P1@P3] */ -#define OP_Copy 75 /* synopsis: r[P2@P3+1]=r[P1@P3+1] */ -#define OP_SCopy 76 /* synopsis: r[P2]=r[P1] */ -#define OP_IntCopy 77 /* synopsis: r[P2]=r[P1] */ -#define OP_ResultRow 78 /* synopsis: output=r[P1@P2] */ -#define OP_CollSeq 79 -#define OP_AddImm 80 /* synopsis: r[P1]=r[P1]+P2 */ -#define OP_RealAffinity 81 -#define OP_Cast 82 /* synopsis: affinity(r[P1]) */ -#define OP_Permutation 83 -#define OP_BitAnd 84 /* same as TK_BITAND, synopsis: r[P3]=r[P1]&r[P2] */ -#define OP_BitOr 85 /* same as TK_BITOR, synopsis: r[P3]=r[P1]|r[P2] */ -#define OP_ShiftLeft 86 /* same as TK_LSHIFT, synopsis: r[P3]=r[P2]<>r[P1] */ -#define OP_Add 88 /* same as TK_PLUS, synopsis: r[P3]=r[P1]+r[P2] */ -#define OP_Subtract 89 /* same as TK_MINUS, synopsis: r[P3]=r[P2]-r[P1] */ -#define OP_Multiply 90 /* same as TK_STAR, synopsis: r[P3]=r[P1]*r[P2] */ -#define OP_Divide 91 /* same as TK_SLASH, synopsis: r[P3]=r[P2]/r[P1] */ -#define OP_Remainder 92 /* same as TK_REM, synopsis: r[P3]=r[P2]%r[P1] */ -#define OP_Concat 93 /* same as TK_CONCAT, synopsis: r[P3]=r[P2]+r[P1] */ -#define OP_Compare 94 /* synopsis: r[P1@P3] <-> r[P2@P3] */ -#define OP_BitNot 95 /* same as TK_BITNOT, synopsis: r[P1]= ~r[P1] */ -#define OP_Offset 96 /* synopsis: r[P3] = sqlite_offset(P1) */ -#define OP_String8 97 /* same as TK_STRING, synopsis: r[P2]='P4' */ -#define OP_Column 98 /* synopsis: r[P3]=PX */ -#define OP_Affinity 99 /* synopsis: affinity(r[P1@P2]) */ -#define OP_MakeRecord 100 /* synopsis: r[P3]=mkrec(r[P1@P2]) */ -#define OP_Count 101 /* synopsis: r[P2]=count() */ -#define OP_ReadCookie 102 -#define OP_SetCookie 103 -#define OP_ReopenIdx 104 /* synopsis: root=P2 iDb=P3 */ -#define OP_OpenRead 105 /* synopsis: root=P2 iDb=P3 */ -#define OP_OpenWrite 106 /* synopsis: root=P2 iDb=P3 */ -#define OP_OpenDup 107 -#define OP_OpenAutoindex 108 /* synopsis: nColumn=P2 */ -#define OP_OpenEphemeral 109 /* synopsis: nColumn=P2 */ -#define OP_SorterOpen 110 -#define OP_SequenceTest 111 /* synopsis: if( cursor[P1].ctr++ ) pc = P2 */ -#define OP_OpenPseudo 112 /* synopsis: P3 columns in r[P2] */ -#define OP_Close 113 -#define OP_ColumnsUsed 114 -#define OP_Sequence 115 /* synopsis: r[P2]=cursor[P1].ctr++ */ -#define OP_NewRowid 116 /* synopsis: r[P2]=rowid */ -#define OP_Insert 117 /* synopsis: intkey=r[P3] data=r[P2] */ -#define OP_InsertInt 118 /* synopsis: intkey=P3 data=r[P2] */ -#define OP_Delete 119 -#define OP_ResetCount 120 -#define OP_SorterCompare 121 /* synopsis: if key(P1)!=trim(r[P3],P4) goto P2 */ -#define OP_SorterData 122 /* synopsis: r[P2]=data */ -#define OP_RowData 123 /* synopsis: r[P2]=data */ -#define OP_Rowid 124 /* synopsis: r[P2]=rowid */ -#define OP_NullRow 125 -#define OP_SeekEnd 126 -#define OP_SorterInsert 127 /* synopsis: key=r[P2] */ -#define OP_IdxInsert 128 /* synopsis: key=r[P2] */ -#define OP_IdxDelete 129 /* synopsis: key=r[P2@P3] */ -#define OP_DeferredSeek 130 /* synopsis: Move P3 to P1.rowid if needed */ -#define OP_IdxRowid 131 /* synopsis: r[P2]=rowid */ -#define OP_Real 132 /* same as TK_FLOAT, synopsis: r[P2]=P4 */ -#define OP_Destroy 133 -#define OP_Clear 134 -#define OP_ResetSorter 135 -#define OP_CreateBtree 136 /* synopsis: r[P2]=root iDb=P1 flags=P3 */ -#define OP_SqlExec 137 -#define OP_ParseSchema 138 -#define OP_LoadAnalysis 139 -#define OP_DropTable 140 -#define OP_DropIndex 141 -#define OP_DropTrigger 142 -#define OP_IntegrityCk 143 -#define OP_RowSetAdd 144 /* synopsis: rowset(P1)=r[P2] */ -#define OP_Param 145 -#define OP_FkCounter 146 /* synopsis: fkctr[P1]+=P2 */ -#define OP_MemMax 147 /* synopsis: r[P1]=max(r[P1],r[P2]) */ -#define OP_OffsetLimit 148 /* synopsis: if r[P1]>0 then r[P2]=r[P1]+max(0,r[P3]) else r[P2]=(-1) */ -#define OP_AggStep0 149 /* synopsis: accum=r[P3] step(r[P2@P5]) */ -#define OP_AggStep 150 /* synopsis: accum=r[P3] step(r[P2@P5]) */ -#define OP_AggFinal 151 /* synopsis: accum=r[P1] N=P2 */ -#define OP_Expire 152 -#define OP_TableLock 153 /* synopsis: iDb=P1 root=P2 write=P3 */ -#define OP_VBegin 154 -#define OP_VCreate 155 -#define OP_VDestroy 156 -#define OP_VOpen 157 -#define OP_VColumn 158 /* synopsis: r[P3]=vcolumn(P2) */ -#define OP_VRename 159 -#define OP_Pagecount 160 -#define OP_MaxPgcnt 161 -#define OP_PureFunc0 162 -#define OP_Function0 163 /* synopsis: r[P3]=func(r[P2@P5]) */ -#define OP_PureFunc 164 -#define OP_Function 165 /* synopsis: r[P3]=func(r[P2@P5]) */ -#define OP_Trace 166 -#define OP_CursorHint 167 -#define OP_Noop 168 -#define OP_Explain 169 +#define OP_IncrVacuum 59 /* jump */ +#define OP_VNext 60 /* jump */ +#define OP_Init 61 /* jump, synopsis: Start at P2 */ +#define OP_PureFunc0 62 +#define OP_Function0 63 /* synopsis: r[P3]=func(r[P2@P5]) */ +#define OP_PureFunc 64 +#define OP_Function 65 /* synopsis: r[P3]=func(r[P2@P5]) */ +#define OP_Return 66 +#define OP_EndCoroutine 67 +#define OP_HaltIfNull 68 /* synopsis: if r[P3]=null halt */ +#define OP_Halt 69 +#define OP_Integer 70 /* synopsis: r[P2]=P1 */ +#define OP_Int64 71 /* synopsis: r[P2]=P4 */ +#define OP_String 72 /* synopsis: r[P2]='P4' (len=P1) */ +#define OP_Null 73 /* synopsis: r[P2..P3]=NULL */ +#define OP_SoftNull 74 /* synopsis: r[P1]=NULL */ +#define OP_Blob 75 /* synopsis: r[P2]=P4 (len=P1) */ +#define OP_Variable 76 /* synopsis: r[P2]=parameter(P1,P4) */ +#define OP_Move 77 /* synopsis: r[P2@P3]=r[P1@P3] */ +#define OP_Copy 78 /* synopsis: r[P2@P3+1]=r[P1@P3+1] */ +#define OP_SCopy 79 /* synopsis: r[P2]=r[P1] */ +#define OP_IntCopy 80 /* synopsis: r[P2]=r[P1] */ +#define OP_ResultRow 81 /* synopsis: output=r[P1@P2] */ +#define OP_CollSeq 82 +#define OP_AddImm 83 /* synopsis: r[P1]=r[P1]+P2 */ +#define OP_RealAffinity 84 +#define OP_Cast 85 /* synopsis: affinity(r[P1]) */ +#define OP_Permutation 86 +#define OP_Compare 87 /* synopsis: r[P1@P3] <-> r[P2@P3] */ +#define OP_IsTrue 88 /* synopsis: r[P2] = coalesce(r[P1]==TRUE,P3) ^ P4 */ +#define OP_Offset 89 /* synopsis: r[P3] = sqlite_offset(P1) */ +#define OP_Column 90 /* synopsis: r[P3]=PX */ +#define OP_Affinity 91 /* synopsis: affinity(r[P1@P2]) */ +#define OP_BitAnd 92 /* same as TK_BITAND, synopsis: r[P3]=r[P1]&r[P2] */ +#define OP_BitOr 93 /* same as TK_BITOR, synopsis: r[P3]=r[P1]|r[P2] */ +#define OP_ShiftLeft 94 /* same as TK_LSHIFT, synopsis: r[P3]=r[P2]<>r[P1] */ +#define OP_Add 96 /* same as TK_PLUS, synopsis: r[P3]=r[P1]+r[P2] */ +#define OP_Subtract 97 /* same as TK_MINUS, synopsis: r[P3]=r[P2]-r[P1] */ +#define OP_Multiply 98 /* same as TK_STAR, synopsis: r[P3]=r[P1]*r[P2] */ +#define OP_Divide 99 /* same as TK_SLASH, synopsis: r[P3]=r[P2]/r[P1] */ +#define OP_Remainder 100 /* same as TK_REM, synopsis: r[P3]=r[P2]%r[P1] */ +#define OP_Concat 101 /* same as TK_CONCAT, synopsis: r[P3]=r[P2]+r[P1] */ +#define OP_MakeRecord 102 /* synopsis: r[P3]=mkrec(r[P1@P2]) */ +#define OP_BitNot 103 /* same as TK_BITNOT, synopsis: r[P2]= ~r[P1] */ +#define OP_Count 104 /* synopsis: r[P2]=count() */ +#define OP_ReadCookie 105 +#define OP_String8 106 /* same as TK_STRING, synopsis: r[P2]='P4' */ +#define OP_SetCookie 107 +#define OP_ReopenIdx 108 /* synopsis: root=P2 iDb=P3 */ +#define OP_OpenRead 109 /* synopsis: root=P2 iDb=P3 */ +#define OP_OpenWrite 110 /* synopsis: root=P2 iDb=P3 */ +#define OP_OpenDup 111 +#define OP_OpenAutoindex 112 /* synopsis: nColumn=P2 */ +#define OP_OpenEphemeral 113 /* synopsis: nColumn=P2 */ +#define OP_SorterOpen 114 +#define OP_SequenceTest 115 /* synopsis: if( cursor[P1].ctr++ ) pc = P2 */ +#define OP_OpenPseudo 116 /* synopsis: P3 columns in r[P2] */ +#define OP_Close 117 +#define OP_ColumnsUsed 118 +#define OP_SeekHit 119 /* synopsis: seekHit=P2 */ +#define OP_Sequence 120 /* synopsis: r[P2]=cursor[P1].ctr++ */ +#define OP_NewRowid 121 /* synopsis: r[P2]=rowid */ +#define OP_Insert 122 /* synopsis: intkey=r[P3] data=r[P2] */ +#define OP_InsertInt 123 /* synopsis: intkey=P3 data=r[P2] */ +#define OP_Delete 124 +#define OP_ResetCount 125 +#define OP_SorterCompare 126 /* synopsis: if key(P1)!=trim(r[P3],P4) goto P2 */ +#define OP_SorterData 127 /* synopsis: r[P2]=data */ +#define OP_RowData 128 /* synopsis: r[P2]=data */ +#define OP_Rowid 129 /* synopsis: r[P2]=rowid */ +#define OP_NullRow 130 +#define OP_SeekEnd 131 +#define OP_SorterInsert 132 /* synopsis: key=r[P2] */ +#define OP_IdxInsert 133 /* synopsis: key=r[P2] */ +#define OP_IdxDelete 134 /* synopsis: key=r[P2@P3] */ +#define OP_DeferredSeek 135 /* synopsis: Move P3 to P1.rowid if needed */ +#define OP_IdxRowid 136 /* synopsis: r[P2]=rowid */ +#define OP_Destroy 137 +#define OP_Clear 138 +#define OP_ResetSorter 139 +#define OP_CreateBtree 140 /* synopsis: r[P2]=root iDb=P1 flags=P3 */ +#define OP_Real 141 /* same as TK_FLOAT, synopsis: r[P2]=P4 */ +#define OP_SqlExec 142 +#define OP_ParseSchema 143 +#define OP_LoadAnalysis 144 +#define OP_DropTable 145 +#define OP_DropIndex 146 +#define OP_DropTrigger 147 +#define OP_IntegrityCk 148 +#define OP_RowSetAdd 149 /* synopsis: rowset(P1)=r[P2] */ +#define OP_Param 150 +#define OP_FkCounter 151 /* synopsis: fkctr[P1]+=P2 */ +#define OP_MemMax 152 /* synopsis: r[P1]=max(r[P1],r[P2]) */ +#define OP_OffsetLimit 153 /* synopsis: if r[P1]>0 then r[P2]=r[P1]+max(0,r[P3]) else r[P2]=(-1) */ +#define OP_AggInverse 154 /* synopsis: accum=r[P3] inverse(r[P2@P5]) */ +#define OP_AggStep 155 /* synopsis: accum=r[P3] step(r[P2@P5]) */ +#define OP_AggStep1 156 /* synopsis: accum=r[P3] step(r[P2@P5]) */ +#define OP_AggValue 157 /* synopsis: r[P3]=value N=P2 */ +#define OP_AggFinal 158 /* synopsis: accum=r[P1] N=P2 */ +#define OP_Expire 159 +#define OP_TableLock 160 /* synopsis: iDb=P1 root=P2 write=P3 */ +#define OP_VBegin 161 +#define OP_VCreate 162 +#define OP_VDestroy 163 +#define OP_VOpen 164 +#define OP_VColumn 165 /* synopsis: r[P3]=vcolumn(P2) */ +#define OP_VRename 166 +#define OP_Pagecount 167 +#define OP_MaxPgcnt 168 +#define OP_Trace 169 +#define OP_CursorHint 170 +#define OP_Noop 171 +#define OP_Explain 172 +#define OP_Abortable 173 /* Properties such as "out2" or "jump" that are specified in ** comments following the "case" for each opcode in the vdbe.c @@ -14021,28 +14975,28 @@ typedef struct VdbeOpList VdbeOpList; #define OPFLG_OUT2 0x10 /* out2: P2 is an output */ #define OPFLG_OUT3 0x20 /* out3: P3 is an output */ #define OPFLG_INITIALIZER {\ -/* 0 */ 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01,\ -/* 8 */ 0x00, 0x10, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01,\ -/* 16 */ 0x03, 0x03, 0x01, 0x12, 0x01, 0x03, 0x03, 0x01,\ +/* 0 */ 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x10,\ +/* 8 */ 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03,\ +/* 16 */ 0x01, 0x01, 0x03, 0x12, 0x03, 0x01, 0x09, 0x09,\ /* 24 */ 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,\ -/* 32 */ 0x09, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\ -/* 40 */ 0x01, 0x01, 0x23, 0x26, 0x26, 0x0b, 0x01, 0x01,\ +/* 32 */ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\ +/* 40 */ 0x01, 0x23, 0x0b, 0x26, 0x26, 0x01, 0x01, 0x03,\ /* 48 */ 0x03, 0x03, 0x03, 0x03, 0x0b, 0x0b, 0x0b, 0x0b,\ -/* 56 */ 0x0b, 0x0b, 0x01, 0x03, 0x01, 0x01, 0x01, 0x02,\ -/* 64 */ 0x02, 0x08, 0x00, 0x10, 0x10, 0x10, 0x10, 0x00,\ -/* 72 */ 0x10, 0x10, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00,\ -/* 80 */ 0x02, 0x02, 0x02, 0x00, 0x26, 0x26, 0x26, 0x26,\ -/* 88 */ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x00, 0x12,\ -/* 96 */ 0x20, 0x10, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00,\ -/* 104 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\ -/* 112 */ 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00,\ -/* 120 */ 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x04,\ -/* 128 */ 0x04, 0x00, 0x00, 0x10, 0x10, 0x10, 0x00, 0x00,\ -/* 136 */ 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\ -/* 144 */ 0x06, 0x10, 0x00, 0x04, 0x1a, 0x00, 0x00, 0x00,\ -/* 152 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\ -/* 160 */ 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\ -/* 168 */ 0x00, 0x00,} +/* 56 */ 0x0b, 0x0b, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00,\ +/* 64 */ 0x00, 0x00, 0x02, 0x02, 0x08, 0x00, 0x10, 0x10,\ +/* 72 */ 0x10, 0x10, 0x00, 0x10, 0x10, 0x00, 0x00, 0x10,\ +/* 80 */ 0x10, 0x00, 0x00, 0x02, 0x02, 0x02, 0x00, 0x00,\ +/* 88 */ 0x12, 0x20, 0x00, 0x00, 0x26, 0x26, 0x26, 0x26,\ +/* 96 */ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x00, 0x12,\ +/* 104 */ 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,\ +/* 112 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\ +/* 120 */ 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\ +/* 128 */ 0x00, 0x10, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00,\ +/* 136 */ 0x10, 0x10, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00,\ +/* 144 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x10, 0x00,\ +/* 152 */ 0x04, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\ +/* 160 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,\ +/* 168 */ 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,} /* The sqlite3P2Values() routine is able to run faster if it knows ** the value of the largest JUMP opcode. The smaller the maximum @@ -14050,7 +15004,7 @@ typedef struct VdbeOpList VdbeOpList; ** generated this include file strives to group all JUMP opcodes ** together near the beginning of the list. */ -#define SQLITE_MX_JUMP_OPCODE 62 /* Maximum JUMP opcode */ +#define SQLITE_MX_JUMP_OPCODE 61 /* Maximum JUMP opcode */ /************** End of opcodes.h *********************************************/ /************** Continuing where we left off in vdbe.h ***********************/ @@ -14084,7 +15038,24 @@ SQLITE_PRIVATE void sqlite3VdbeVerifyNoResultRow(Vdbe *p); # define sqlite3VdbeVerifyNoMallocRequired(A,B) # define sqlite3VdbeVerifyNoResultRow(A) #endif -SQLITE_PRIVATE VdbeOp *sqlite3VdbeAddOpList(Vdbe*, int nOp, VdbeOpList const *aOp, int iLineno); +#if defined(SQLITE_DEBUG) +SQLITE_PRIVATE void sqlite3VdbeVerifyAbortable(Vdbe *p, int); +#else +# define sqlite3VdbeVerifyAbortable(A,B) +#endif +SQLITE_PRIVATE VdbeOp *sqlite3VdbeAddOpList(Vdbe*, int nOp, VdbeOpList const *aOp,int iLineno); +#ifndef SQLITE_OMIT_EXPLAIN +SQLITE_PRIVATE void sqlite3VdbeExplain(Parse*,u8,const char*,...); +SQLITE_PRIVATE void sqlite3VdbeExplainPop(Parse*); +SQLITE_PRIVATE int sqlite3VdbeExplainParent(Parse*); +# define ExplainQueryPlan(P) sqlite3VdbeExplain P +# define ExplainQueryPlanPop(P) sqlite3VdbeExplainPop(P) +# define ExplainQueryPlanParent(P) sqlite3VdbeExplainParent(P) +#else +# define ExplainQueryPlan(P) +# define ExplainQueryPlanPop(P) +# define ExplainQueryPlanParent(P) 0 +#endif SQLITE_PRIVATE void sqlite3VdbeAddParseSchemaOp(Vdbe*,int,char*); SQLITE_PRIVATE void sqlite3VdbeChangeOpcode(Vdbe*, u32 addr, u8); SQLITE_PRIVATE void sqlite3VdbeChangeP1(Vdbe*, u32 addr, int P1); @@ -14128,6 +15099,7 @@ SQLITE_PRIVATE void sqlite3VdbeSetVarmask(Vdbe*, int); SQLITE_PRIVATE char *sqlite3VdbeExpandSql(Vdbe*, const char*); #endif SQLITE_PRIVATE int sqlite3MemCompare(const Mem*, const Mem*, const CollSeq*); +SQLITE_PRIVATE int sqlite3BlobCompare(const Mem*, const Mem*); SQLITE_PRIVATE void sqlite3VdbeRecordUnpack(KeyInfo*,int,const void*,UnpackedRecord*); SQLITE_PRIVATE int sqlite3VdbeRecordCompare(int,const void*,UnpackedRecord*); @@ -14183,23 +15155,52 @@ SQLITE_PRIVATE void sqlite3VdbeNoopComment(Vdbe*, const char*, ...); ** ** VdbeCoverageNeverTaken(v) // Previous branch is never taken ** +** VdbeCoverageNeverNull(v) // Previous three-way branch is only +** // taken on the first two ways. The +** // NULL option is not possible +** +** VdbeCoverageEqNe(v) // Previous OP_Jump is only interested +** // in distingishing equal and not-equal. +** ** Every VDBE branch operation must be tagged with one of the macros above. ** If not, then when "make test" is run with -DSQLITE_VDBE_COVERAGE and ** -DSQLITE_DEBUG then an ALWAYS() will fail in the vdbeTakeBranch() ** routine in vdbe.c, alerting the developer to the missed tag. +** +** During testing, the test application will invoke +** sqlite3_test_control(SQLITE_TESTCTRL_VDBE_COVERAGE,...) to set a callback +** routine that is invoked as each bytecode branch is taken. The callback +** contains the sqlite3.c source line number ov the VdbeCoverage macro and +** flags to indicate whether or not the branch was taken. The test application +** is responsible for keeping track of this and reporting byte-code branches +** that are never taken. +** +** See the VdbeBranchTaken() macro and vdbeTakeBranch() function in the +** vdbe.c source file for additional information. */ #ifdef SQLITE_VDBE_COVERAGE SQLITE_PRIVATE void sqlite3VdbeSetLineNumber(Vdbe*,int); # define VdbeCoverage(v) sqlite3VdbeSetLineNumber(v,__LINE__) # define VdbeCoverageIf(v,x) if(x)sqlite3VdbeSetLineNumber(v,__LINE__) -# define VdbeCoverageAlwaysTaken(v) sqlite3VdbeSetLineNumber(v,2); -# define VdbeCoverageNeverTaken(v) sqlite3VdbeSetLineNumber(v,1); +# define VdbeCoverageAlwaysTaken(v) \ + sqlite3VdbeSetLineNumber(v,__LINE__|0x5000000); +# define VdbeCoverageNeverTaken(v) \ + sqlite3VdbeSetLineNumber(v,__LINE__|0x6000000); +# define VdbeCoverageNeverNull(v) \ + sqlite3VdbeSetLineNumber(v,__LINE__|0x4000000); +# define VdbeCoverageNeverNullIf(v,x) \ + if(x)sqlite3VdbeSetLineNumber(v,__LINE__|0x4000000); +# define VdbeCoverageEqNe(v) \ + sqlite3VdbeSetLineNumber(v,__LINE__|0x8000000); # define VDBE_OFFSET_LINENO(x) (__LINE__+x) #else # define VdbeCoverage(v) # define VdbeCoverageIf(v,x) # define VdbeCoverageAlwaysTaken(v) # define VdbeCoverageNeverTaken(v) +# define VdbeCoverageNeverNull(v) +# define VdbeCoverageNeverNullIf(v,x) +# define VdbeCoverageEqNe(v) # define VDBE_OFFSET_LINENO(x) 0 #endif @@ -14209,6 +15210,10 @@ SQLITE_PRIVATE void sqlite3VdbeScanStatus(Vdbe*, int, int, int, LogEst, const ch # define sqlite3VdbeScanStatus(a,b,c,d,e) #endif +#if defined(SQLITE_DEBUG) || defined(VDBE_PROFILE) +SQLITE_PRIVATE void sqlite3VdbePrintOp(FILE*, int, VdbeOp*); +#endif + #endif /* SQLITE_VDBE_H */ /************** End of vdbe.h ************************************************/ @@ -14343,7 +15348,7 @@ SQLITE_PRIVATE int sqlite3PagerClose(Pager *pPager, sqlite3*); SQLITE_PRIVATE int sqlite3PagerReadFileheader(Pager*, int, unsigned char*); /* Functions used to configure a Pager object. */ -SQLITE_PRIVATE void sqlite3PagerSetBusyhandler(Pager*, int(*)(void *), void *); +SQLITE_PRIVATE void sqlite3PagerSetBusyHandler(Pager*, int(*)(void *), void *); SQLITE_PRIVATE int sqlite3PagerSetPagesize(Pager*, u32*, int); #ifdef SQLITE_HAS_CODEC SQLITE_PRIVATE void sqlite3PagerAlignReserve(Pager*,Pager*); @@ -14396,16 +15401,17 @@ SQLITE_PRIVATE int sqlite3PagerWalSupported(Pager *pPager); SQLITE_PRIVATE int sqlite3PagerWalCallback(Pager *pPager); SQLITE_PRIVATE int sqlite3PagerOpenWal(Pager *pPager, int *pisOpen); SQLITE_PRIVATE int sqlite3PagerCloseWal(Pager *pPager, sqlite3*); -# ifdef SQLITE_DIRECT_OVERFLOW_READ -SQLITE_PRIVATE int sqlite3PagerUseWal(Pager *pPager, Pgno); -# endif # ifdef SQLITE_ENABLE_SNAPSHOT SQLITE_PRIVATE int sqlite3PagerSnapshotGet(Pager *pPager, sqlite3_snapshot **ppSnapshot); SQLITE_PRIVATE int sqlite3PagerSnapshotOpen(Pager *pPager, sqlite3_snapshot *pSnapshot); SQLITE_PRIVATE int sqlite3PagerSnapshotRecover(Pager *pPager); +SQLITE_PRIVATE int sqlite3PagerSnapshotCheck(Pager *pPager, sqlite3_snapshot *pSnapshot); +SQLITE_PRIVATE void sqlite3PagerSnapshotUnlock(Pager *pPager); # endif -#else -# define sqlite3PagerUseWal(x,y) 0 +#endif + +#ifdef SQLITE_DIRECT_OVERFLOW_READ +SQLITE_PRIVATE int sqlite3PagerDirectReadOk(Pager *pPager, Pgno pgno); #endif #ifdef SQLITE_ENABLE_ZIPVFS @@ -14429,6 +15435,11 @@ SQLITE_PRIVATE int sqlite3PagerIsMemdb(Pager*); SQLITE_PRIVATE void sqlite3PagerCacheStat(Pager *, int, int, int *); SQLITE_PRIVATE void sqlite3PagerClearCache(Pager*); SQLITE_PRIVATE int sqlite3SectorSize(sqlite3_file *); +#ifdef SQLITE_ENABLE_SETLK_TIMEOUT +SQLITE_PRIVATE void sqlite3PagerResetLockTimeout(Pager *pPager); +#else +# define sqlite3PagerResetLockTimeout(X) +#endif /* Functions used to truncate the database file. */ SQLITE_PRIVATE void sqlite3PagerTruncateImage(Pager*,Pgno); @@ -14645,6 +15656,10 @@ SQLITE_PRIVATE int sqlite3HeaderSizePcache1(void); /* Number of dirty pages as a percentage of the configured cache size */ SQLITE_PRIVATE int sqlite3PCachePercentDirty(PCache*); +#ifdef SQLITE_DIRECT_OVERFLOW_READ +SQLITE_PRIVATE int sqlite3PCacheIsDirty(PCache *pCache); +#endif + #endif /* _PCACHE_H_ */ /************** End of pcache.h **********************************************/ @@ -15150,12 +16165,14 @@ struct LookasideSlot { ** functions use a regular table table from hash.h.) ** ** Hash each FuncDef structure into one of the FuncDefHash.a[] slots. -** Collisions are on the FuncDef.u.pHash chain. +** Collisions are on the FuncDef.u.pHash chain. Use the SQLITE_FUNC_HASH() +** macro to compute a hash on the function name. */ #define SQLITE_FUNC_HASH_SZ 23 struct FuncDefHash { FuncDef *a[SQLITE_FUNC_HASH_SZ]; /* Hash table for functions */ }; +#define SQLITE_FUNC_HASH(C,L) (((C)+(L))%SQLITE_FUNC_HASH_SZ) #ifdef SQLITE_USER_AUTHENTICATION /* @@ -15216,7 +16233,7 @@ struct sqlite3 { Db *aDb; /* All backends */ int nDb; /* Number of backends currently in use */ u32 mDbFlags; /* flags recording internal state */ - u32 flags; /* flags settable by pragmas. See below */ + u64 flags; /* flags settable by pragmas. See below */ i64 lastRowid; /* ROWID of most recent insert (see above) */ i64 szMmap; /* Default mmap_size setting */ u32 nSchemaLock; /* Do not reset the schema when non-zero */ @@ -15236,7 +16253,7 @@ struct sqlite3 { u8 vtabOnConflict; /* Value to return for s3_vtab_on_conflict() */ u8 isTransactionSavepoint; /* True if the outermost savepoint is a TS */ u8 mTrace; /* zero or more SQLITE_TRACE flags */ - u8 skipBtreeMutex; /* True if no shared-cache backends */ + u8 noSharedCache; /* True if no shared-cache backends */ u8 nSqlExec; /* Number of pending OP_SqlExec opcodes */ int nextPagesize; /* Pagesize after VACUUM if >0 */ u32 magic; /* Magic number for detect library misuse */ @@ -15248,8 +16265,9 @@ struct sqlite3 { int newTnum; /* Rootpage of table being initialized */ u8 iDb; /* Which db file is being initialized */ u8 busy; /* TRUE if currently initializing */ - u8 orphanTrigger; /* Last statement is orphaned TEMP trigger */ - u8 imposterTable; /* Building an imposter table */ + unsigned orphanTrigger : 1; /* Last statement is orphaned TEMP trigger */ + unsigned imposterTable : 1; /* Building an imposter table */ + unsigned reopenMemdb : 1; /* ATTACH is really a reopen using MemDB */ } init; int nVdbeActive; /* Number of VDBEs currently running */ int nVdbeRead; /* Number of active VDBEs that read or write */ @@ -15379,14 +16397,19 @@ struct sqlite3 { #define SQLITE_Fts3Tokenizer 0x00400000 /* Enable fts3_tokenizer(2) */ #define SQLITE_EnableQPSG 0x00800000 /* Query Planner Stability Guarantee*/ #define SQLITE_TriggerEQP 0x01000000 /* Show trigger EXPLAIN QUERY PLAN */ +#define SQLITE_ResetDatabase 0x02000000 /* Reset the database */ +#define SQLITE_LegacyAlter 0x04000000 /* Legacy ALTER TABLE behaviour */ +#define SQLITE_NoSchemaError 0x08000000 /* Do not report schema parse errors*/ +#define SQLITE_Defensive 0x10000000 /* Input SQL is likely hostile */ /* Flags used only if debugging */ +#define HI(X) ((u64)(X)<<32) #ifdef SQLITE_DEBUG -#define SQLITE_SqlTrace 0x08000000 /* Debug print SQL as it executes */ -#define SQLITE_VdbeListing 0x10000000 /* Debug listings of VDBE programs */ -#define SQLITE_VdbeTrace 0x20000000 /* True to trace VDBE execution */ -#define SQLITE_VdbeAddopTrace 0x40000000 /* Trace sqlite3VdbeAddOp() calls */ -#define SQLITE_VdbeEQP 0x80000000 /* Debug EXPLAIN QUERY PLAN */ +#define SQLITE_SqlTrace HI(0x0001) /* Debug print SQL as it executes */ +#define SQLITE_VdbeListing HI(0x0002) /* Debug listings of VDBE progs */ +#define SQLITE_VdbeTrace HI(0x0004) /* True to trace VDBE execution */ +#define SQLITE_VdbeAddopTrace HI(0x0008) /* Trace sqlite3VdbeAddOp() calls */ +#define SQLITE_VdbeEQP HI(0x0010) /* Debug EXPLAIN QUERY PLAN */ #endif /* @@ -15395,6 +16418,7 @@ struct sqlite3 { #define DBFLAG_SchemaChange 0x0001 /* Uncommitted Hash table changes */ #define DBFLAG_PreferBuiltin 0x0002 /* Preference to built-in funcs */ #define DBFLAG_Vacuum 0x0004 /* Currently in a VACUUM */ +#define DBFLAG_SchemaKnownOk 0x0008 /* Schema is known to be valid */ /* ** Bits of the sqlite3.dbOptFlags field that are used by the @@ -15402,7 +16426,7 @@ struct sqlite3 { ** selectively disable various optimizations. */ #define SQLITE_QueryFlattener 0x0001 /* Query flattening */ -#define SQLITE_ColumnCache 0x0002 /* Column cache */ + /* 0x0002 available for reuse */ #define SQLITE_GroupByOrder 0x0004 /* GROUPBY cover of ORDERBY */ #define SQLITE_FactorOutConst 0x0008 /* Constant factoring */ #define SQLITE_DistinctOpt 0x0010 /* DISTINCT using indexes */ @@ -15414,6 +16438,10 @@ struct sqlite3 { #define SQLITE_CursorHints 0x0400 /* Add OP_CursorHint opcodes */ #define SQLITE_Stat34 0x0800 /* Use STAT3 or STAT4 data */ /* TH3 expects the Stat34 ^^^^^^ value to be 0x0800. Don't change it */ +#define SQLITE_PushDown 0x1000 /* The push-down optimization */ +#define SQLITE_SimplifyJoin 0x2000 /* Convert LEFT JOIN to JOIN */ +#define SQLITE_SkipScan 0x4000 /* Skip-scans */ +#define SQLITE_PropagateConst 0x8000 /* The constant propagation opt */ #define SQLITE_AllOpts 0xffff /* All optimizations */ /* @@ -15452,11 +16480,13 @@ struct sqlite3 { */ struct FuncDef { i8 nArg; /* Number of arguments. -1 means unlimited */ - u16 funcFlags; /* Some combination of SQLITE_FUNC_* */ + u32 funcFlags; /* Some combination of SQLITE_FUNC_* */ void *pUserData; /* User data parameter */ FuncDef *pNext; /* Next function with same name */ void (*xSFunc)(sqlite3_context*,int,sqlite3_value**); /* func or agg-step */ void (*xFinalize)(sqlite3_context*); /* Agg finalizer */ + void (*xValue)(sqlite3_context*); /* Current agg value */ + void (*xInverse)(sqlite3_context*,int,sqlite3_value**); /* inverse agg-step */ const char *zName; /* SQL name of the function. */ union { FuncDef *pHash; /* Next with a different name but the same hash */ @@ -15513,6 +16543,9 @@ struct FuncDestructor { ** single query - might change over time */ #define SQLITE_FUNC_AFFINITY 0x4000 /* Built-in affinity() function */ #define SQLITE_FUNC_OFFSET 0x8000 /* Built-in sqlite_offset() function */ +#define SQLITE_FUNC_WINDOW 0x00010000 /* Built-in window-only function */ +#define SQLITE_FUNC_WINDOW_SIZE 0x20000 /* Requires partition size as arg. */ +#define SQLITE_FUNC_INTERNAL 0x00040000 /* For use by NestedParse() only */ /* ** The following three macros, FUNCTION(), LIKEFUNC() and AGGREGATE() are @@ -15547,6 +16580,12 @@ struct FuncDestructor { ** are interpreted in the same way as the first 4 parameters to ** FUNCTION(). ** +** WFUNCTION(zName, nArg, iArg, xStep, xFinal, xValue, xInverse) +** Used to create an aggregate function definition implemented by +** the C functions xStep and xFinal. The first four parameters +** are interpreted in the same way as the first 4 parameters to +** FUNCTION(). +** ** LIKEFUNC(zName, nArg, pArg, flags) ** Used to create a scalar function definition of a function zName ** that accepts nArg arguments and is implemented by a call to C @@ -15557,31 +16596,38 @@ struct FuncDestructor { */ #define FUNCTION(zName, nArg, iArg, bNC, xFunc) \ {nArg, SQLITE_FUNC_CONSTANT|SQLITE_UTF8|(bNC*SQLITE_FUNC_NEEDCOLL), \ - SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, #zName, {0} } + SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, 0, 0, #zName, {0} } #define VFUNCTION(zName, nArg, iArg, bNC, xFunc) \ {nArg, SQLITE_UTF8|(bNC*SQLITE_FUNC_NEEDCOLL), \ - SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, #zName, {0} } + SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, 0, 0, #zName, {0} } #define DFUNCTION(zName, nArg, iArg, bNC, xFunc) \ {nArg, SQLITE_FUNC_SLOCHNG|SQLITE_UTF8, \ - 0, 0, xFunc, 0, #zName, {0} } + 0, 0, xFunc, 0, 0, 0, #zName, {0} } #define PURE_DATE(zName, nArg, iArg, bNC, xFunc) \ {nArg, SQLITE_FUNC_SLOCHNG|SQLITE_UTF8|SQLITE_FUNC_CONSTANT, \ - (void*)&sqlite3Config, 0, xFunc, 0, #zName, {0} } + (void*)&sqlite3Config, 0, xFunc, 0, 0, 0, #zName, {0} } #define FUNCTION2(zName, nArg, iArg, bNC, xFunc, extraFlags) \ {nArg,SQLITE_FUNC_CONSTANT|SQLITE_UTF8|(bNC*SQLITE_FUNC_NEEDCOLL)|extraFlags,\ - SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, #zName, {0} } + SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, 0, 0, #zName, {0} } #define STR_FUNCTION(zName, nArg, pArg, bNC, xFunc) \ {nArg, SQLITE_FUNC_SLOCHNG|SQLITE_UTF8|(bNC*SQLITE_FUNC_NEEDCOLL), \ - pArg, 0, xFunc, 0, #zName, } + pArg, 0, xFunc, 0, 0, 0, #zName, } #define LIKEFUNC(zName, nArg, arg, flags) \ {nArg, SQLITE_FUNC_CONSTANT|SQLITE_UTF8|flags, \ - (void *)arg, 0, likeFunc, 0, #zName, {0} } -#define AGGREGATE(zName, nArg, arg, nc, xStep, xFinal) \ + (void *)arg, 0, likeFunc, 0, 0, 0, #zName, {0} } +#define AGGREGATE(zName, nArg, arg, nc, xStep, xFinal, xValue) \ {nArg, SQLITE_UTF8|(nc*SQLITE_FUNC_NEEDCOLL), \ - SQLITE_INT_TO_PTR(arg), 0, xStep,xFinal,#zName, {0}} + SQLITE_INT_TO_PTR(arg), 0, xStep,xFinal,xValue,0,#zName, {0}} #define AGGREGATE2(zName, nArg, arg, nc, xStep, xFinal, extraFlags) \ {nArg, SQLITE_UTF8|(nc*SQLITE_FUNC_NEEDCOLL)|extraFlags, \ - SQLITE_INT_TO_PTR(arg), 0, xStep,xFinal,#zName, {0}} + SQLITE_INT_TO_PTR(arg), 0, xStep,xFinal,xFinal,0,#zName, {0}} +#define WAGGREGATE(zName, nArg, arg, nc, xStep, xFinal, xValue, xInverse, f) \ + {nArg, SQLITE_UTF8|(nc*SQLITE_FUNC_NEEDCOLL)|f, \ + SQLITE_INT_TO_PTR(arg), 0, xStep,xFinal,xValue,xInverse,#zName, {0}} +#define INTERNAL_FUNCTION(zName, nArg, xFunc) \ + {nArg, SQLITE_FUNC_INTERNAL|SQLITE_UTF8|SQLITE_FUNC_CONSTANT, \ + 0, 0, xFunc, 0, 0, 0, #zName, {0} } + /* ** All current savepoints are stored in a linked list starting at @@ -15637,6 +16683,8 @@ struct Column { #define COLFLAG_PRIMKEY 0x0001 /* Column is part of the primary key */ #define COLFLAG_HIDDEN 0x0002 /* A hidden column in a virtual table */ #define COLFLAG_HASTYPE 0x0004 /* Type name follows column name */ +#define COLFLAG_UNIQUE 0x0008 /* Column def contains "UNIQUE" or "PK" */ +#define COLFLAG_SORTERREF 0x0010 /* Use sorter-refs with this column */ /* ** A "Collating Sequence" is defined by an instance of the following @@ -15764,6 +16812,9 @@ struct VTable { struct Table { char *zName; /* Name of the table or view */ Column *aCol; /* Information about each column */ +#ifdef SQLITE_ENABLE_NORMALIZE + Hash *pColHash; /* All columns indexed by name */ +#endif Index *pIndex; /* List of SQL indexes on this table. */ Select *pSelect; /* NULL for tables. Points to definition if a view. */ FKey *pFKey; /* Linked list of all foreign keys in this table */ @@ -15814,6 +16865,7 @@ struct Table { #define TF_StatsUsed 0x0100 /* Query planner decisions affected by ** Index.aiRowLogEst[] values */ #define TF_HasNotNull 0x0200 /* Contains NOT NULL constraints */ +#define TF_Shadow 0x0400 /* True for a shadow table */ /* ** Test to see whether or not a table is a virtual table. This is @@ -15924,13 +16976,12 @@ struct FKey { #define OE_Fail 3 /* Stop the operation but leave all prior changes */ #define OE_Ignore 4 /* Ignore the error. Do not do the INSERT or UPDATE */ #define OE_Replace 5 /* Delete existing record, then do INSERT or UPDATE */ - -#define OE_Restrict 6 /* OE_Abort for IMMEDIATE, OE_Rollback for DEFERRED */ -#define OE_SetNull 7 /* Set the foreign key value to NULL */ -#define OE_SetDflt 8 /* Set the foreign key value to its default */ -#define OE_Cascade 9 /* Cascade the changes */ - -#define OE_Default 10 /* Do whatever the default action is */ +#define OE_Update 6 /* Process as a DO UPDATE in an upsert */ +#define OE_Restrict 7 /* OE_Abort for IMMEDIATE, OE_Rollback for DEFERRED */ +#define OE_SetNull 8 /* Set the foreign key value to NULL */ +#define OE_SetDflt 9 /* Set the foreign key value to its default */ +#define OE_Cascade 10 /* Cascade the changes */ +#define OE_Default 11 /* Do whatever the default action is */ /* @@ -16066,6 +17117,7 @@ struct Index { tRowcnt *aiRowEst; /* Non-logarithmic stat1 data for this index */ tRowcnt nRowEst0; /* Non-logarithmic number of rows in the index */ #endif + Bitmask colNotIdxed; /* 0 for unindexed columns in pTab */ }; /* @@ -16100,13 +17152,21 @@ struct IndexSample { tRowcnt *anDLt; /* Est. number of distinct keys less than this sample */ }; +/* +** Possible values to use within the flags argument to sqlite3GetToken(). +*/ +#define SQLITE_TOKEN_QUOTED 0x1 /* Token is a quoted identifier. */ +#define SQLITE_TOKEN_KEYWORD 0x2 /* Token is a keyword. */ + /* ** Each token coming out of the lexer is an instance of ** this structure. Tokens are also used as part of an expression. ** -** Note if Token.z==0 then Token.dyn and Token.n are undefined and -** may contain random values. Do not make any assumptions about Token.dyn -** and Token.n when Token.z==0. +** The memory that "z" points to is owned by other objects. Take care +** that the owner of the "z" string does not deallocate the string before +** the Token goes out of scope! Very often, the "z" points to some place +** in the middle of the Parse.zSql text. But it might also point to a +** static string. */ struct Token { const char *z; /* Text of the token. Not NULL-terminated! */ @@ -16279,8 +17339,11 @@ struct Expr { ** TK_COLUMN: the value of p5 for OP_Column ** TK_AGG_FUNCTION: nesting depth */ AggInfo *pAggInfo; /* Used by TK_AGG_COLUMN and TK_AGG_FUNCTION */ - Table *pTab; /* Table for TK_COLUMN expressions. Can be NULL - ** for a column of an index on an expression */ + union { + Table *pTab; /* TK_COLUMN: Table containing column. Can be NULL + ** for a column of an index on an expression */ + Window *pWin; /* TK_FUNCTION: Window definition for the func */ + } y; }; /* @@ -16289,7 +17352,7 @@ struct Expr { #define EP_FromJoin 0x000001 /* Originates in ON/USING clause of outer join */ #define EP_Agg 0x000002 /* Contains one or more aggregate functions */ #define EP_HasFunc 0x000004 /* Contains one or more functions of any kind */ - /* 0x000008 // available for use */ +#define EP_FixedCol 0x000008 /* TK_Column with a known fixed value */ #define EP_Distinct 0x000010 /* Aggregate function with DISTINCT keyword */ #define EP_VarSelect 0x000020 /* pSelect is correlated, not constant */ #define EP_DblQuoted 0x000040 /* token.z was originally in "..." */ @@ -16310,6 +17373,7 @@ struct Expr { #define EP_Subquery 0x200000 /* Tree contains a TK_SELECT operator */ #define EP_Alias 0x400000 /* Is an alias for a result set column */ #define EP_Leaf 0x800000 /* Expr.pLeft, .pRight, .u.pSelect all NULL */ +#define EP_WinFunc 0x1000000 /* TK_FUNCTION with Expr.y.pWin set */ /* ** The EP_Propagate mask is a set of properties that automatically propagate @@ -16377,6 +17441,7 @@ struct ExprList { unsigned done :1; /* A flag to indicate when processing is finished */ unsigned bSpanIsTab :1; /* zSpan holds DB.TABLE.COLUMN */ unsigned reusable :1; /* Constant expression is reusable */ + unsigned bSorterRef :1; /* Defer evaluation until after sorting */ union { struct { u16 iOrderByCol; /* For ORDER BY, column number in result set */ @@ -16410,31 +17475,6 @@ struct IdList { int nId; /* Number of identifiers on the list */ }; -/* -** The bitmask datatype defined below is used for various optimizations. -** -** Changing this from a 64-bit to a 32-bit type limits the number of -** tables in a join to 32 instead of 64. But it also reduces the size -** of the library by 738 bytes on ix86. -*/ -#ifdef SQLITE_BITMASK_TYPE - typedef SQLITE_BITMASK_TYPE Bitmask; -#else - typedef u64 Bitmask; -#endif - -/* -** The number of bits in a Bitmask. "BMS" means "BitMask Size". -*/ -#define BMS ((int)(sizeof(Bitmask)*8)) - -/* -** A bit in a Bitmask -*/ -#define MASKBIT(n) (((Bitmask)1)<<(n)) -#define MASKBIT32(n) (((unsigned int)1)<<(n)) -#define ALLBITS ((Bitmask)-1) - /* ** The following structure describes the FROM clause of a SELECT statement. ** Each table or subquery in the FROM clause is a separate element of @@ -16476,9 +17516,6 @@ struct SrcList { unsigned viaCoroutine :1; /* Implemented as a co-routine */ unsigned isRecursive :1; /* True for recursive reference in WITH */ } fg; -#ifndef SQLITE_OMIT_EXPLAIN - u8 iSelectId; /* If pSelect!=0, the id of the sub-select in EQP */ -#endif int iCursor; /* The VDBE cursor number used to access this table */ Expr *pOn; /* The ON clause of a join */ IdList *pUsing; /* The USING clause of a join */ @@ -16560,12 +17597,16 @@ struct SrcList { struct NameContext { Parse *pParse; /* The parser */ SrcList *pSrcList; /* One or more tables used to resolve names */ - ExprList *pEList; /* Optional list of result-set columns */ - AggInfo *pAggInfo; /* Information about aggregates at this level */ + union { + ExprList *pEList; /* Optional list of result-set columns */ + AggInfo *pAggInfo; /* Information about aggregates at this level */ + Upsert *pUpsert; /* ON CONFLICT clause information from an upsert */ + } uNC; NameContext *pNext; /* Next outer name context. NULL for outermost */ int nRef; /* Number of names resolved by this context */ int nErr; /* Number of errors encountered while resolving names */ u16 ncFlags; /* Zero or more NC_* flags defined below */ + Select *pWinSelect; /* SELECT statement for any window functions */ }; /* @@ -16583,18 +17624,49 @@ struct NameContext { #define NC_HasAgg 0x0010 /* One or more aggregate functions seen */ #define NC_IdxExpr 0x0020 /* True if resolving columns of CREATE INDEX */ #define NC_VarSelect 0x0040 /* A correlated subquery has been seen */ +#define NC_UEList 0x0080 /* True if uNC.pEList is used */ +#define NC_UAggInfo 0x0100 /* True if uNC.pAggInfo is used */ +#define NC_UUpsert 0x0200 /* True if uNC.pUpsert is used */ #define NC_MinMaxAgg 0x1000 /* min/max aggregates seen. See note above */ #define NC_Complex 0x2000 /* True if a function or subquery seen */ +#define NC_AllowWin 0x4000 /* Window functions are allowed here */ + +/* +** An instance of the following object describes a single ON CONFLICT +** clause in an upsert. +** +** The pUpsertTarget field is only set if the ON CONFLICT clause includes +** conflict-target clause. (In "ON CONFLICT(a,b)" the "(a,b)" is the +** conflict-target clause.) The pUpsertTargetWhere is the optional +** WHERE clause used to identify partial unique indexes. +** +** pUpsertSet is the list of column=expr terms of the UPDATE statement. +** The pUpsertSet field is NULL for a ON CONFLICT DO NOTHING. The +** pUpsertWhere is the WHERE clause for the UPDATE and is NULL if the +** WHERE clause is omitted. +*/ +struct Upsert { + ExprList *pUpsertTarget; /* Optional description of conflicting index */ + Expr *pUpsertTargetWhere; /* WHERE clause for partial index targets */ + ExprList *pUpsertSet; /* The SET clause from an ON CONFLICT UPDATE */ + Expr *pUpsertWhere; /* WHERE clause for the ON CONFLICT UPDATE */ + /* The fields above comprise the parse tree for the upsert clause. + ** The fields below are used to transfer information from the INSERT + ** processing down into the UPDATE processing while generating code. + ** Upsert owns the memory allocated above, but not the memory below. */ + Index *pUpsertIdx; /* Constraint that pUpsertTarget identifies */ + SrcList *pUpsertSrc; /* Table to be updated */ + int regData; /* First register holding array of VALUES */ + int iDataCur; /* Index of the data cursor */ + int iIdxCur; /* Index of the first index cursor */ +}; /* ** An instance of the following structure contains all information ** needed to generate code for a single SELECT statement. ** -** nLimit is set to -1 if there is no LIMIT clause. nOffset is set to 0. -** If there is a LIMIT clause, the parser sets nLimit to the value of the -** limit and nOffset to the value of the offset (or 0 if there is not -** offset). But later on, nLimit and nOffset become the memory locations -** in the VDBE that record the limit and offset counters. +** See the header comment on the computeLimitRegisters() routine for a +** detailed description of the meaning of the iLimit and iOffset fields. ** ** addrOpenEphm[] entries contain the address of OP_OpenEphemeral opcodes. ** These addresses must be stored so that we can go back and fill in @@ -16612,9 +17684,7 @@ struct Select { LogEst nSelectRow; /* Estimated number of result rows */ u32 selFlags; /* Various SF_* values */ int iLimit, iOffset; /* Memory registers holding LIMIT & OFFSET counters */ -#if SELECTTRACE_ENABLED - char zSelName[12]; /* Symbolic name of this SELECT use for debugging */ -#endif + u32 selId; /* Unique identifier number for this SELECT */ int addrOpenEphm[2]; /* OP_OpenEphem opcodes related to this select */ SrcList *pSrc; /* The FROM clause */ Expr *pWhere; /* The WHERE clause */ @@ -16625,6 +17695,10 @@ struct Select { Select *pNext; /* Next select to the left in a compound */ Expr *pLimit; /* LIMIT expression. NULL means not used. */ With *pWith; /* WITH clause attached to this select. Or NULL. */ +#ifndef SQLITE_OMIT_WINDOWFUNC + Window *pWin; /* List of window functions */ + Window *pWinDefn; /* List of named window definitions */ +#endif }; /* @@ -16654,8 +17728,7 @@ struct Select { #define SF_MaybeConvert 0x08000 /* Need convertCompoundSelectToSubquery() */ #define SF_Converted 0x10000 /* By convertCompoundSelectToSubquery() */ #define SF_IncludeHidden 0x20000 /* Include hidden columns in output */ -#define SF_ComplexResult 0x40000 /* Result set contains subquery or function */ - +#define SF_ComplexResult 0x40000 /* Result contains subquery or function */ /* ** The results of a SELECT can be distributed in several ways, as defined @@ -16769,13 +17842,6 @@ struct AutoincInfo { int regCtr; /* Memory register holding the rowid counter */ }; -/* -** Size of the column cache -*/ -#ifndef SQLITE_N_COLCACHE -# define SQLITE_N_COLCACHE 10 -#endif - /* ** At least one instance of the following structure is created for each ** trigger that may be fired while parsing an INSERT, UPDATE or DELETE @@ -16851,7 +17917,6 @@ struct Parse { u8 hasCompound; /* Need to invoke convertCompoundSelectToSubquery() */ u8 okConstFactor; /* OK to factor out constants */ u8 disableLookaside; /* Number of times lookaside has been disabled */ - u8 nColCache; /* Number of entries in aColCache[] */ int nRangeReg; /* Size of the temporary register block */ int iRangeReg; /* First register in temporary register block */ int nErr; /* Number of errors seen */ @@ -16861,8 +17926,6 @@ struct Parse { int szOpAlloc; /* Bytes of memory space allocated for Vdbe.aOp[] */ int iSelfTab; /* Table associated with an index on expr, or negative ** of the base register during check-constraint eval */ - int iCacheLevel; /* ColCache valid when aColCache[].iLevel<=iCacheLevel */ - int iCacheCnt; /* Counter used to generate aColCache[].lru values */ int nLabel; /* Number of labels used */ int *aLabel; /* Space to hold the labels */ ExprList *pConstExpr;/* Constant expressions */ @@ -16872,10 +17935,7 @@ struct Parse { int regRowid; /* Register holding rowid of CREATE TABLE entry */ int regRoot; /* Register holding root page number for new objects */ int nMaxArg; /* Max args passed to user function by sub-program */ -#if SELECTTRACE_ENABLED - int nSelect; /* Number of SELECT statements seen */ - int nSelectIndent; /* How far to indent SELECTTRACE() output */ -#endif + int nSelect; /* Number of SELECT stmts. Counter for Select.selId */ #ifndef SQLITE_OMIT_SHARED_CACHE int nTableLock; /* Number of locks in aTableLock */ TableLock *aTableLock; /* Required table locks for shared-cache mode */ @@ -16895,17 +17955,9 @@ struct Parse { ** Fields above must be initialized to zero. The fields that follow, ** down to the beginning of the recursive section, do not need to be ** initialized as they will be set before being used. The boundary is - ** determined by offsetof(Parse,aColCache). + ** determined by offsetof(Parse,aTempReg). **************************************************************************/ - struct yColCache { - int iTable; /* Table cursor number */ - i16 iColumn; /* Table column number */ - u8 tempReg; /* iReg is a temp register that needs to be freed */ - int iLevel; /* Nesting level */ - int iReg; /* Reg with value of this column. 0 means none. */ - int lru; /* Least recently used entry has the smallest value */ - } aColCache[SQLITE_N_COLCACHE]; /* One for each column cache entry */ int aTempReg[8]; /* Holding area for temporary registers */ Token sNameToken; /* Token with unqualified schema object name */ @@ -16920,19 +17972,21 @@ struct Parse { ynVar nVar; /* Number of '?' variables seen in the SQL so far */ u8 iPkSortOrder; /* ASC or DESC for INTEGER PRIMARY KEY */ u8 explain; /* True if the EXPLAIN flag is found on the query */ +#if !(defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_OMIT_ALTERTABLE)) + u8 eParseMode; /* PARSE_MODE_XXX constant */ +#endif #ifndef SQLITE_OMIT_VIRTUALTABLE - u8 declareVtab; /* True if inside sqlite3_declare_vtab() */ int nVtabLock; /* Number of virtual tables to lock */ #endif int nHeight; /* Expression tree height of current sub-select */ #ifndef SQLITE_OMIT_EXPLAIN - int iSelectId; /* ID of current select for EXPLAIN output */ - int iNextSelectId; /* Next available select ID for EXPLAIN output */ + int addrExplain; /* Address of current OP_Explain opcode */ #endif VList *pVList; /* Mapping between variable names and numbers */ Vdbe *pReprepare; /* VM being reprepared (sqlite3Reprepare()) */ const char *zTail; /* All SQL text past the last semicolon parsed */ Table *pNewTable; /* A table being constructed by CREATE TABLE */ + Index *pNewIndex; /* An index being constructed by CREATE INDEX */ Trigger *pNewTrigger; /* Trigger under construct by a CREATE TRIGGER */ const char *zAuthContext; /* The 6th parameter to db->xAuth callbacks */ #ifndef SQLITE_OMIT_VIRTUALTABLE @@ -16943,12 +17997,20 @@ struct Parse { TriggerPrg *pTriggerPrg; /* Linked list of coded triggers */ With *pWith; /* Current WITH clause, or NULL */ With *pWithToFree; /* Free this WITH object at the end of the parse */ +#ifndef SQLITE_OMIT_ALTERTABLE + RenameToken *pRename; /* Tokens subject to renaming by ALTER TABLE */ +#endif }; +#define PARSE_MODE_NORMAL 0 +#define PARSE_MODE_DECLARE_VTAB 1 +#define PARSE_MODE_RENAME_COLUMN 2 +#define PARSE_MODE_RENAME_TABLE 3 + /* ** Sizes and pointers of various parts of the Parse object. */ -#define PARSE_HDR_SZ offsetof(Parse,aColCache) /* Recursive part w/o aColCache*/ +#define PARSE_HDR_SZ offsetof(Parse,aTempReg) /* Recursive part w/o aColCache*/ #define PARSE_RECURSE_SZ offsetof(Parse,sLastToken) /* Recursive part */ #define PARSE_TAIL_SZ (sizeof(Parse)-PARSE_RECURSE_SZ) /* Non-recursive part */ #define PARSE_TAIL(X) (((char*)(X))+PARSE_RECURSE_SZ) /* Pointer to tail */ @@ -16959,7 +18021,19 @@ struct Parse { #ifdef SQLITE_OMIT_VIRTUALTABLE #define IN_DECLARE_VTAB 0 #else - #define IN_DECLARE_VTAB (pParse->declareVtab) + #define IN_DECLARE_VTAB (pParse->eParseMode==PARSE_MODE_DECLARE_VTAB) +#endif + +#if defined(SQLITE_OMIT_ALTERTABLE) + #define IN_RENAME_OBJECT 0 +#else + #define IN_RENAME_OBJECT (pParse->eParseMode>=PARSE_MODE_RENAME_COLUMN) +#endif + +#if defined(SQLITE_OMIT_VIRTUALTABLE) && defined(SQLITE_OMIT_ALTERTABLE) + #define IN_SPECIAL_PARSE 0 +#else + #define IN_SPECIAL_PARSE (pParse->eParseMode!=PARSE_MODE_NORMAL) #endif /* @@ -16985,6 +18059,7 @@ struct AuthContext { */ #define OPFLAG_NCHANGE 0x01 /* OP_Insert: Set to update db->nChange */ /* Also used in P2 (not P5) of OP_Delete */ +#define OPFLAG_NOCHNG 0x01 /* OP_VColumn nochange for UPDATE */ #define OPFLAG_EPHEM 0x01 /* OP_Column: Ephemeral output is ok */ #define OPFLAG_LASTROWID 0x20 /* Set to update db->lastRowid */ #define OPFLAG_ISUPDATE 0x04 /* This OP_Insert is an sql UPDATE */ @@ -17086,8 +18161,9 @@ struct TriggerStep { Select *pSelect; /* SELECT statement or RHS of INSERT INTO SELECT ... */ char *zTarget; /* Target table for DELETE, UPDATE, INSERT */ Expr *pWhere; /* The WHERE clause for DELETE or UPDATE steps */ - ExprList *pExprList; /* SET clause for UPDATE. */ + ExprList *pExprList; /* SET clause for UPDATE */ IdList *pIdList; /* Column names for INSERT */ + Upsert *pUpsert; /* Upsert clauses on an INSERT */ char *zSpan; /* Original SQL text of this command */ TriggerStep *pNext; /* Next in the link-list */ TriggerStep *pLast; /* Last element in link-list. Valid for 1st elem only */ @@ -17112,17 +18188,15 @@ struct DbFixer { ** An objected used to accumulate the text of a string where we ** do not necessarily know how big the string will be in the end. */ -struct StrAccum { +struct sqlite3_str { sqlite3 *db; /* Optional database for lookaside. Can be NULL */ char *zText; /* The string collected so far */ u32 nAlloc; /* Amount of space allocated in zText */ u32 mxAlloc; /* Maximum allowed allocation. 0 for no malloc usage */ u32 nChar; /* Length of the string so far */ - u8 accError; /* STRACCUM_NOMEM or STRACCUM_TOOBIG */ + u8 accError; /* SQLITE_NOMEM or SQLITE_TOOBIG */ u8 printfFlags; /* SQLITE_PRINTF flags below */ }; -#define STRACCUM_NOMEM 1 -#define STRACCUM_TOOBIG 2 #define SQLITE_PRINTF_INTERNAL 0x01 /* Internal-use-only converters allowed */ #define SQLITE_PRINTF_SQLFUNC 0x02 /* SQL function arguments to VXPrintf */ #define SQLITE_PRINTF_MALLOCED 0x04 /* True if xText is allocated space */ @@ -17139,8 +18213,14 @@ typedef struct { char **pzErrMsg; /* Error message stored here */ int iDb; /* 0 for main database. 1 for TEMP, 2.. for ATTACHed */ int rc; /* Result code stored here */ + u32 mInitFlags; /* Flags controlling error messages */ } InitData; +/* +** Allowed values for mInitFlags +*/ +#define INITFLAG_AlterTable 0x0001 /* This is a reparse after ALTER TABLE */ + /* ** Structure containing global configuration data for the SQLite library. ** @@ -17191,14 +18271,16 @@ struct Sqlite3Config { /* The following callback (if not NULL) is invoked on every VDBE branch ** operation. Set the callback using SQLITE_TESTCTRL_VDBE_COVERAGE. */ - void (*xVdbeBranch)(void*,int iSrcLine,u8 eThis,u8 eMx); /* Callback */ + void (*xVdbeBranch)(void*,unsigned iSrcLine,u8 eThis,u8 eMx); /* Callback */ void *pVdbeBranchArg; /* 1st argument */ #endif #ifndef SQLITE_UNTESTABLE int (*xTestCallback)(int); /* Invoked by sqlite3FaultSim() */ #endif int bLocaltimeFault; /* True to fail localtime() calls */ + int bInternalFunctions; /* Internal SQL functions are visible */ int iOnceResetThreshold; /* When to reset OP_Once counters */ + u32 szSorterRef; /* Min size in bytes to use sorter-refs */ }; /* @@ -17238,9 +18320,12 @@ struct Walker { struct CCurHint *pCCurHint; /* Used by codeCursorHint() */ int *aiCol; /* array of column indexes */ struct IdxCover *pIdxCover; /* Check for index coverage */ - struct IdxExprTrans *pIdxTrans; /* Convert indexed expr to column */ + struct IdxExprTrans *pIdxTrans; /* Convert idxed expr to column */ ExprList *pGroupBy; /* GROUP BY clause */ - struct HavingToWhereCtx *pHavingCtx; /* HAVING to WHERE clause ctx */ + Select *pSelect; /* HAVING to WHERE clause ctx */ + struct WindowRewrite *pRewrite; /* Window rewrite context */ + struct WhereConst *pConst; /* WHERE clause constants */ + struct RenameCtx *pRename; /* RENAME COLUMN context */ } u; }; @@ -17291,6 +18376,68 @@ struct TreeView { }; #endif /* SQLITE_DEBUG */ +/* +** This object is used in varioius ways, all related to window functions +** +** (1) A single instance of this structure is attached to the +** the Expr.pWin field for each window function in an expression tree. +** This object holds the information contained in the OVER clause, +** plus additional fields used during code generation. +** +** (2) All window functions in a single SELECT form a linked-list +** attached to Select.pWin. The Window.pFunc and Window.pExpr +** fields point back to the expression that is the window function. +** +** (3) The terms of the WINDOW clause of a SELECT are instances of this +** object on a linked list attached to Select.pWinDefn. +** +** The uses (1) and (2) are really the same Window object that just happens +** to be accessible in two different ways. Use (3) is are separate objects. +*/ +struct Window { + char *zName; /* Name of window (may be NULL) */ + ExprList *pPartition; /* PARTITION BY clause */ + ExprList *pOrderBy; /* ORDER BY clause */ + u8 eType; /* TK_RANGE or TK_ROWS */ + u8 eStart; /* UNBOUNDED, CURRENT, PRECEDING or FOLLOWING */ + u8 eEnd; /* UNBOUNDED, CURRENT, PRECEDING or FOLLOWING */ + Expr *pStart; /* Expression for " PRECEDING" */ + Expr *pEnd; /* Expression for " FOLLOWING" */ + Window *pNextWin; /* Next window function belonging to this SELECT */ + Expr *pFilter; /* The FILTER expression */ + FuncDef *pFunc; /* The function */ + int iEphCsr; /* Partition buffer or Peer buffer */ + int regAccum; + int regResult; + int csrApp; /* Function cursor (used by min/max) */ + int regApp; /* Function register (also used by min/max) */ + int regPart; /* First in a set of registers holding PARTITION BY + ** and ORDER BY values for the window */ + Expr *pOwner; /* Expression object this window is attached to */ + int nBufferCol; /* Number of columns in buffer table */ + int iArgCol; /* Offset of first argument for this function */ +}; + +#ifndef SQLITE_OMIT_WINDOWFUNC +SQLITE_PRIVATE void sqlite3WindowDelete(sqlite3*, Window*); +SQLITE_PRIVATE void sqlite3WindowListDelete(sqlite3 *db, Window *p); +SQLITE_PRIVATE Window *sqlite3WindowAlloc(Parse*, int, int, Expr*, int , Expr*); +SQLITE_PRIVATE void sqlite3WindowAttach(Parse*, Expr*, Window*); +SQLITE_PRIVATE int sqlite3WindowCompare(Parse*, Window*, Window*); +SQLITE_PRIVATE void sqlite3WindowCodeInit(Parse*, Window*); +SQLITE_PRIVATE void sqlite3WindowCodeStep(Parse*, Select*, WhereInfo*, int, int); +SQLITE_PRIVATE int sqlite3WindowRewrite(Parse*, Select*); +SQLITE_PRIVATE int sqlite3ExpandSubquery(Parse*, struct SrcList_item*); +SQLITE_PRIVATE void sqlite3WindowUpdate(Parse*, Window*, Window*, FuncDef*); +SQLITE_PRIVATE Window *sqlite3WindowDup(sqlite3 *db, Expr *pOwner, Window *p); +SQLITE_PRIVATE Window *sqlite3WindowListDup(sqlite3 *db, Window *p); +SQLITE_PRIVATE void sqlite3WindowFunctions(void); +#else +# define sqlite3WindowDelete(a,b) +# define sqlite3WindowFunctions() +# define sqlite3WindowAttach(a,b,c) +#endif + /* ** Assuming zIn points to the first byte of a UTF-8 character, ** advance zIn to point to the first byte of the next UTF-8 character. @@ -17378,15 +18525,14 @@ SQLITE_PRIVATE int sqlite3CorruptPgnoError(int,Pgno); # define sqlite3Tolower(x) tolower((unsigned char)(x)) # define sqlite3Isquote(x) ((x)=='"'||(x)=='\''||(x)=='['||(x)=='`') #endif -#ifndef SQLITE_OMIT_COMPILEOPTION_DIAGS SQLITE_PRIVATE int sqlite3IsIdChar(u8); -#endif /* ** Internal function prototypes */ SQLITE_PRIVATE int sqlite3StrICmp(const char*,const char*); SQLITE_PRIVATE int sqlite3Strlen30(const char*); +#define sqlite3Strlen30NN(C) (strlen(C)&0x3fffffff) SQLITE_PRIVATE char *sqlite3ColumnType(Column*,char*); #define sqlite3StrNICmp sqlite3_strnicmp @@ -17490,8 +18636,6 @@ struct PrintfArguments { sqlite3_value **apArg; /* The argument values */ }; -SQLITE_PRIVATE void sqlite3VXPrintf(StrAccum*, const char*, va_list); -SQLITE_PRIVATE void sqlite3XPrintf(StrAccum*, const char*, ...); SQLITE_PRIVATE char *sqlite3MPrintf(sqlite3*,const char*, ...); SQLITE_PRIVATE char *sqlite3VMPrintf(sqlite3*,const char*, va_list); #if defined(SQLITE_DEBUG) || defined(SQLITE_HAVE_OS_TRACE) @@ -17505,8 +18649,13 @@ SQLITE_PRIVATE void *sqlite3TestTextToPtr(const char*); SQLITE_PRIVATE void sqlite3TreeViewExpr(TreeView*, const Expr*, u8); SQLITE_PRIVATE void sqlite3TreeViewBareExprList(TreeView*, const ExprList*, const char*); SQLITE_PRIVATE void sqlite3TreeViewExprList(TreeView*, const ExprList*, u8, const char*); +SQLITE_PRIVATE void sqlite3TreeViewSrcList(TreeView*, const SrcList*); SQLITE_PRIVATE void sqlite3TreeViewSelect(TreeView*, const Select*, u8); SQLITE_PRIVATE void sqlite3TreeViewWith(TreeView*, const With*, u8); +#ifndef SQLITE_OMIT_WINDOWFUNC +SQLITE_PRIVATE void sqlite3TreeViewWindow(TreeView*, const Window*, u8); +SQLITE_PRIVATE void sqlite3TreeViewWinFunc(TreeView*, const Window*, u8); +#endif #endif @@ -17531,7 +18680,7 @@ SQLITE_PRIVATE void sqlite3ExprAttachSubtrees(sqlite3*,Expr*,Expr*,Expr*); SQLITE_PRIVATE Expr *sqlite3PExpr(Parse*, int, Expr*, Expr*); SQLITE_PRIVATE void sqlite3PExprAddSelect(Parse*, Expr*, Select*); SQLITE_PRIVATE Expr *sqlite3ExprAnd(sqlite3*,Expr*, Expr*); -SQLITE_PRIVATE Expr *sqlite3ExprFunction(Parse*,ExprList*, Token*); +SQLITE_PRIVATE Expr *sqlite3ExprFunction(Parse*,ExprList*, Token*, int); SQLITE_PRIVATE void sqlite3ExprAssignVarNumber(Parse*, Expr*, u32); SQLITE_PRIVATE void sqlite3ExprDelete(sqlite3*, Expr*); SQLITE_PRIVATE ExprList *sqlite3ExprListAppend(Parse*,ExprList*,Expr*); @@ -17543,6 +18692,7 @@ SQLITE_PRIVATE void sqlite3ExprListDelete(sqlite3*, ExprList*); SQLITE_PRIVATE u32 sqlite3ExprListFlags(const ExprList*); SQLITE_PRIVATE int sqlite3Init(sqlite3*, char**); SQLITE_PRIVATE int sqlite3InitCallback(void*, int, char**, char**); +SQLITE_PRIVATE int sqlite3InitOne(sqlite3*, int, char**, u32); SQLITE_PRIVATE void sqlite3Pragma(Parse*,Token*,Token*,Token*,int); #ifndef SQLITE_OMIT_VIRTUALTABLE SQLITE_PRIVATE Module *sqlite3PragmaVtabRegister(sqlite3*,const char *zName); @@ -17592,8 +18742,9 @@ SQLITE_PRIVATE u32 sqlite3BitvecSize(Bitvec*); SQLITE_PRIVATE int sqlite3BitvecBuiltinTest(int,int*); #endif -SQLITE_PRIVATE RowSet *sqlite3RowSetInit(sqlite3*, void*, unsigned int); -SQLITE_PRIVATE void sqlite3RowSetClear(RowSet*); +SQLITE_PRIVATE RowSet *sqlite3RowSetInit(sqlite3*); +SQLITE_PRIVATE void sqlite3RowSetDelete(void*); +SQLITE_PRIVATE void sqlite3RowSetClear(void*); SQLITE_PRIVATE void sqlite3RowSetInsert(RowSet*, i64); SQLITE_PRIVATE int sqlite3RowSetTest(RowSet*, int iBatch, i64); SQLITE_PRIVATE int sqlite3RowSetNext(RowSet*, i64*); @@ -17612,6 +18763,7 @@ SQLITE_PRIVATE int sqlite3DbMaskAllZero(yDbMask); SQLITE_PRIVATE void sqlite3DropTable(Parse*, SrcList*, int, int); SQLITE_PRIVATE void sqlite3CodeDropTable(Parse*, Table*, int, int); SQLITE_PRIVATE void sqlite3DeleteTable(sqlite3*, Table*); +SQLITE_PRIVATE void sqlite3FreeIndex(sqlite3*, Index*); #ifndef SQLITE_OMIT_AUTOINCREMENT SQLITE_PRIVATE void sqlite3AutoincrementBegin(Parse *pParse); SQLITE_PRIVATE void sqlite3AutoincrementEnd(Parse *pParse); @@ -17619,9 +18771,9 @@ SQLITE_PRIVATE void sqlite3AutoincrementEnd(Parse *pParse); # define sqlite3AutoincrementBegin(X) # define sqlite3AutoincrementEnd(X) #endif -SQLITE_PRIVATE void sqlite3Insert(Parse*, SrcList*, Select*, IdList*, int); +SQLITE_PRIVATE void sqlite3Insert(Parse*, SrcList*, Select*, IdList*, int, Upsert*); SQLITE_PRIVATE void *sqlite3ArrayAllocate(sqlite3*,void*,int,int*,int*); -SQLITE_PRIVATE IdList *sqlite3IdListAppend(sqlite3*, IdList*, Token*); +SQLITE_PRIVATE IdList *sqlite3IdListAppend(Parse*, IdList*, Token*); SQLITE_PRIVATE int sqlite3IdListIndex(IdList*,const char*); SQLITE_PRIVATE SrcList *sqlite3SrcListEnlarge(sqlite3*, SrcList*, int, int); SQLITE_PRIVATE SrcList *sqlite3SrcListAppend(sqlite3*, SrcList*, Token*, Token*); @@ -17649,13 +18801,14 @@ SQLITE_PRIVATE void sqlite3OpenTable(Parse*, int iCur, int iDb, Table*, int); SQLITE_PRIVATE Expr *sqlite3LimitWhere(Parse*,SrcList*,Expr*,ExprList*,Expr*,char*); #endif SQLITE_PRIVATE void sqlite3DeleteFrom(Parse*, SrcList*, Expr*, ExprList*, Expr*); -SQLITE_PRIVATE void sqlite3Update(Parse*, SrcList*, ExprList*,Expr*,int,ExprList*,Expr*); +SQLITE_PRIVATE void sqlite3Update(Parse*, SrcList*, ExprList*,Expr*,int,ExprList*,Expr*, + Upsert*); SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin(Parse*,SrcList*,Expr*,ExprList*,ExprList*,u16,int); SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo*); SQLITE_PRIVATE LogEst sqlite3WhereOutputRowCount(WhereInfo*); SQLITE_PRIVATE int sqlite3WhereIsDistinct(WhereInfo*); SQLITE_PRIVATE int sqlite3WhereIsOrdered(WhereInfo*); -SQLITE_PRIVATE int sqlite3WhereOrderedInnerLoop(WhereInfo*); +SQLITE_PRIVATE int sqlite3WhereOrderByLimitOptLabel(WhereInfo*); SQLITE_PRIVATE int sqlite3WhereIsSorted(WhereInfo*); SQLITE_PRIVATE int sqlite3WhereContinueLabel(WhereInfo*); SQLITE_PRIVATE int sqlite3WhereBreakLabel(WhereInfo*); @@ -17665,15 +18818,8 @@ SQLITE_PRIVATE int sqlite3WhereOkOnePass(WhereInfo*, int*); #define ONEPASS_MULTI 2 /* ONEPASS is valid for multiple rows */ SQLITE_PRIVATE void sqlite3ExprCodeLoadIndexColumn(Parse*, Index*, int, int, int); SQLITE_PRIVATE int sqlite3ExprCodeGetColumn(Parse*, Table*, int, int, int, u8); -SQLITE_PRIVATE void sqlite3ExprCodeGetColumnToReg(Parse*, Table*, int, int, int); SQLITE_PRIVATE void sqlite3ExprCodeGetColumnOfTable(Vdbe*, Table*, int, int, int); SQLITE_PRIVATE void sqlite3ExprCodeMove(Parse*, int, int, int); -SQLITE_PRIVATE void sqlite3ExprCacheStore(Parse*, int, int, int); -SQLITE_PRIVATE void sqlite3ExprCachePush(Parse*); -SQLITE_PRIVATE void sqlite3ExprCachePop(Parse*); -SQLITE_PRIVATE void sqlite3ExprCacheRemove(Parse*, int, int); -SQLITE_PRIVATE void sqlite3ExprCacheClear(Parse*); -SQLITE_PRIVATE void sqlite3ExprCacheAffinityChange(Parse*, int, int); SQLITE_PRIVATE void sqlite3ExprCode(Parse*, Expr*, int); SQLITE_PRIVATE void sqlite3ExprCodeCopy(Parse*, Expr*, int); SQLITE_PRIVATE void sqlite3ExprCodeFactorable(Parse*, Expr*, int); @@ -17704,6 +18850,7 @@ SQLITE_PRIVATE int sqlite3ExprCompare(Parse*,Expr*, Expr*, int); SQLITE_PRIVATE int sqlite3ExprCompareSkip(Expr*, Expr*, int); SQLITE_PRIVATE int sqlite3ExprListCompare(ExprList*, ExprList*, int); SQLITE_PRIVATE int sqlite3ExprImpliesExpr(Parse*,Expr*, Expr*, int); +SQLITE_PRIVATE int sqlite3ExprImpliesNonNullRow(Expr*,int); SQLITE_PRIVATE void sqlite3ExprAnalyzeAggregates(NameContext*, Expr*); SQLITE_PRIVATE void sqlite3ExprAnalyzeAggList(NameContext*,ExprList*); SQLITE_PRIVATE int sqlite3ExprCoveredByIndex(Expr*, int iCur, Index *pIdx); @@ -17721,6 +18868,8 @@ SQLITE_PRIVATE void sqlite3EndTransaction(Parse*,int); SQLITE_PRIVATE void sqlite3Savepoint(Parse*, int, Token*); SQLITE_PRIVATE void sqlite3CloseSavepoints(sqlite3 *); SQLITE_PRIVATE void sqlite3LeaveMutexAndCloseZombie(sqlite3*); +SQLITE_PRIVATE int sqlite3ExprIdToTrueFalse(Expr*); +SQLITE_PRIVATE int sqlite3ExprTruthValue(const Expr*); SQLITE_PRIVATE int sqlite3ExprIsConstant(Expr*); SQLITE_PRIVATE int sqlite3ExprIsConstantNotJoin(Expr*); SQLITE_PRIVATE int sqlite3ExprIsConstantOrFunction(Expr*, u8); @@ -17733,13 +18882,17 @@ SQLITE_PRIVATE int sqlite3ExprIsInteger(Expr*, int*); SQLITE_PRIVATE int sqlite3ExprCanBeNull(const Expr*); SQLITE_PRIVATE int sqlite3ExprNeedsNoAffinityChange(const Expr*, char); SQLITE_PRIVATE int sqlite3IsRowid(const char*); +#ifdef SQLITE_ENABLE_NORMALIZE +SQLITE_PRIVATE int sqlite3IsRowidN(const char*, int); +#endif SQLITE_PRIVATE void sqlite3GenerateRowDelete( Parse*,Table*,Trigger*,int,int,int,i16,u8,u8,u8,int); SQLITE_PRIVATE void sqlite3GenerateRowIndexDelete(Parse*, Table*, int, int, int*, int); SQLITE_PRIVATE int sqlite3GenerateIndexKey(Parse*, Index*, int, int, int, int*,Index*,int); SQLITE_PRIVATE void sqlite3ResolvePartIdxLabel(Parse*,int); +SQLITE_PRIVATE int sqlite3ExprReferencesUpdatedColumn(Expr*,int*,int); SQLITE_PRIVATE void sqlite3GenerateConstraintChecks(Parse*,Table*,int*,int,int,int,int, - u8,u8,int,int*,int*); + u8,u8,int,int*,int*,Upsert*); #ifdef SQLITE_ENABLE_NULL_TRIM SQLITE_PRIVATE void sqlite3SetMakeRecordP5(Vdbe*,Table*); #else @@ -17758,10 +18911,8 @@ SQLITE_PRIVATE ExprList *sqlite3ExprListDup(sqlite3*,ExprList*,int); SQLITE_PRIVATE SrcList *sqlite3SrcListDup(sqlite3*,SrcList*,int); SQLITE_PRIVATE IdList *sqlite3IdListDup(sqlite3*,IdList*); SQLITE_PRIVATE Select *sqlite3SelectDup(sqlite3*,Select*,int); -#if SELECTTRACE_ENABLED -SQLITE_PRIVATE void sqlite3SelectSetName(Select*,const char*); -#else -# define sqlite3SelectSetName(A,B) +#ifdef SQLITE_ENABLE_NORMALIZE +SQLITE_PRIVATE FuncDef *sqlite3FunctionSearchN(int,const char*,int); #endif SQLITE_PRIVATE void sqlite3InsertBuiltinFuncs(FuncDef*,int); SQLITE_PRIVATE FuncDef *sqlite3FindFunction(sqlite3*,const char*,int,u8,u8); @@ -17791,11 +18942,12 @@ SQLITE_PRIVATE void sqlite3CodeRowTriggerDirect(Parse *, Trigger *, Table *, i SQLITE_PRIVATE void sqlite3DeleteTriggerStep(sqlite3*, TriggerStep*); SQLITE_PRIVATE TriggerStep *sqlite3TriggerSelectStep(sqlite3*,Select*, const char*,const char*); -SQLITE_PRIVATE TriggerStep *sqlite3TriggerInsertStep(sqlite3*,Token*, IdList*, - Select*,u8,const char*,const char*); -SQLITE_PRIVATE TriggerStep *sqlite3TriggerUpdateStep(sqlite3*,Token*,ExprList*, Expr*, u8, +SQLITE_PRIVATE TriggerStep *sqlite3TriggerInsertStep(Parse*,Token*, IdList*, + Select*,u8,Upsert*, const char*,const char*); -SQLITE_PRIVATE TriggerStep *sqlite3TriggerDeleteStep(sqlite3*,Token*, Expr*, +SQLITE_PRIVATE TriggerStep *sqlite3TriggerUpdateStep(Parse*,Token*,ExprList*, Expr*, u8, + const char*,const char*); +SQLITE_PRIVATE TriggerStep *sqlite3TriggerDeleteStep(Parse*,Token*, Expr*, const char*,const char*); SQLITE_PRIVATE void sqlite3DeleteTrigger(sqlite3*, Trigger*); SQLITE_PRIVATE void sqlite3UnlinkAndDeleteTrigger(sqlite3*,int,const char*); @@ -17903,9 +19055,14 @@ SQLITE_PRIVATE int sqlite3TwoPartName(Parse *, Token *, Token *, Token **); SQLITE_PRIVATE const char *sqlite3ErrName(int); #endif +#ifdef SQLITE_ENABLE_DESERIALIZE +SQLITE_PRIVATE int sqlite3MemdbInit(void); +#endif + SQLITE_PRIVATE const char *sqlite3ErrStr(int); SQLITE_PRIVATE int sqlite3ReadSchema(Parse *pParse); SQLITE_PRIVATE CollSeq *sqlite3FindCollSeq(sqlite3*,u8 enc, const char*,int); +SQLITE_PRIVATE int sqlite3IsBinary(const CollSeq*); SQLITE_PRIVATE CollSeq *sqlite3LocateCollSeq(Parse *pParse, const char*zName); SQLITE_PRIVATE CollSeq *sqlite3ExprCollSeq(Parse *pParse, Expr *pExpr); SQLITE_PRIVATE CollSeq *sqlite3ExprNNCollSeq(Parse *pParse, Expr *pExpr); @@ -17914,6 +19071,7 @@ SQLITE_PRIVATE Expr *sqlite3ExprAddCollateToken(Parse *pParse, Expr*, const Toke SQLITE_PRIVATE Expr *sqlite3ExprAddCollateString(Parse*,Expr*,const char*); SQLITE_PRIVATE Expr *sqlite3ExprSkipCollate(Expr*); SQLITE_PRIVATE int sqlite3CheckCollSeq(Parse *, CollSeq *); +SQLITE_PRIVATE int sqlite3WritableSchema(sqlite3*); SQLITE_PRIVATE int sqlite3CheckObjectName(Parse *, const char *); SQLITE_PRIVATE void sqlite3VdbeSetChanges(sqlite3 *, int); SQLITE_PRIVATE int sqlite3AddInt64(i64*,i64); @@ -17951,13 +19109,20 @@ SQLITE_PRIVATE FuncDefHash sqlite3BuiltinFunctions; SQLITE_PRIVATE int sqlite3PendingByte; #endif #endif +#ifdef VDBE_PROFILE +SQLITE_PRIVATE sqlite3_uint64 sqlite3NProfileCnt; +#endif SQLITE_PRIVATE void sqlite3RootPageMoved(sqlite3*, int, int, int); SQLITE_PRIVATE void sqlite3Reindex(Parse*, Token*, Token*); SQLITE_PRIVATE void sqlite3AlterFunctions(void); SQLITE_PRIVATE void sqlite3AlterRenameTable(Parse*, SrcList*, Token*); +SQLITE_PRIVATE void sqlite3AlterRenameColumn(Parse*, SrcList*, Token*, Token*); SQLITE_PRIVATE int sqlite3GetToken(const unsigned char *, int *); +#ifdef SQLITE_ENABLE_NORMALIZE +SQLITE_PRIVATE int sqlite3GetTokenNormalized(const unsigned char *, int *, int *); +#endif SQLITE_PRIVATE void sqlite3NestedParse(Parse*, const char*, ...); -SQLITE_PRIVATE void sqlite3ExpirePreparedStatements(sqlite3*); +SQLITE_PRIVATE void sqlite3ExpirePreparedStatements(sqlite3*, int); SQLITE_PRIVATE int sqlite3CodeSubselect(Parse*, Expr *, int, int); SQLITE_PRIVATE void sqlite3SelectPrep(Parse*, Select*, NameContext*); SQLITE_PRIVATE void sqlite3SelectWrongNumTermsError(Parse *pParse, Select *p); @@ -17970,10 +19135,14 @@ SQLITE_PRIVATE int sqlite3ResolveOrderGroupBy(Parse*, Select*, ExprList*, const SQLITE_PRIVATE void sqlite3ColumnDefault(Vdbe *, Table *, int, int); SQLITE_PRIVATE void sqlite3AlterFinishAddColumn(Parse *, Token *); SQLITE_PRIVATE void sqlite3AlterBeginAddColumn(Parse *, SrcList *); +SQLITE_PRIVATE void *sqlite3RenameTokenMap(Parse*, void*, Token*); +SQLITE_PRIVATE void sqlite3RenameTokenRemap(Parse*, void *pTo, void *pFrom); +SQLITE_PRIVATE void sqlite3RenameExprUnmap(Parse*, Expr*); +SQLITE_PRIVATE void sqlite3RenameExprlistUnmap(Parse*, ExprList*); SQLITE_PRIVATE CollSeq *sqlite3GetCollSeq(Parse*, u8, CollSeq *, const char*); -SQLITE_PRIVATE char sqlite3AffinityType(const char*, u8*); +SQLITE_PRIVATE char sqlite3AffinityType(const char*, Column*); SQLITE_PRIVATE void sqlite3Analyze(Parse*, Token*, Token*); -SQLITE_PRIVATE int sqlite3InvokeBusyHandler(BusyHandler*); +SQLITE_PRIVATE int sqlite3InvokeBusyHandler(BusyHandler*, sqlite3_file*); SQLITE_PRIVATE int sqlite3FindDb(sqlite3*, Token*); SQLITE_PRIVATE int sqlite3FindDbName(sqlite3 *, const char *); SQLITE_PRIVATE int sqlite3AnalysisLoad(sqlite3*,int iDB); @@ -17988,25 +19157,27 @@ SQLITE_PRIVATE KeyInfo *sqlite3KeyInfoAlloc(sqlite3*,int,int); SQLITE_PRIVATE void sqlite3KeyInfoUnref(KeyInfo*); SQLITE_PRIVATE KeyInfo *sqlite3KeyInfoRef(KeyInfo*); SQLITE_PRIVATE KeyInfo *sqlite3KeyInfoOfIndex(Parse*, Index*); +SQLITE_PRIVATE KeyInfo *sqlite3KeyInfoFromExprList(Parse*, ExprList*, int, int); + #ifdef SQLITE_DEBUG SQLITE_PRIVATE int sqlite3KeyInfoIsWriteable(KeyInfo*); #endif SQLITE_PRIVATE int sqlite3CreateFunc(sqlite3 *, const char *, int, int, void *, void (*)(sqlite3_context*,int,sqlite3_value **), - void (*)(sqlite3_context*,int,sqlite3_value **), void (*)(sqlite3_context*), + void (*)(sqlite3_context*,int,sqlite3_value **), + void (*)(sqlite3_context*), + void (*)(sqlite3_context*), + void (*)(sqlite3_context*,int,sqlite3_value **), FuncDestructor *pDestructor ); +SQLITE_PRIVATE void sqlite3NoopDestructor(void*); SQLITE_PRIVATE void sqlite3OomFault(sqlite3*); SQLITE_PRIVATE void sqlite3OomClear(sqlite3*); SQLITE_PRIVATE int sqlite3ApiExit(sqlite3 *db, int); SQLITE_PRIVATE int sqlite3OpenTempDatabase(Parse *); SQLITE_PRIVATE void sqlite3StrAccumInit(StrAccum*, sqlite3*, char*, int, int); -SQLITE_PRIVATE void sqlite3StrAccumAppend(StrAccum*,const char*,int); -SQLITE_PRIVATE void sqlite3StrAccumAppendAll(StrAccum*,const char*); -SQLITE_PRIVATE void sqlite3AppendChar(StrAccum*,int,char); SQLITE_PRIVATE char *sqlite3StrAccumFinish(StrAccum*); -SQLITE_PRIVATE void sqlite3StrAccumReset(StrAccum*); SQLITE_PRIVATE void sqlite3SelectDestInit(SelectDest*,int,int); SQLITE_PRIVATE Expr *sqlite3CreateColumnExpr(sqlite3 *, SrcList *, int, int); @@ -18033,10 +19204,11 @@ SQLITE_PRIVATE char sqlite3IndexColumnAffinity(sqlite3*, Index*, int); ** The interface to the LEMON-generated parser */ #ifndef SQLITE_AMALGAMATION -SQLITE_PRIVATE void *sqlite3ParserAlloc(void*(*)(u64)); +SQLITE_PRIVATE void *sqlite3ParserAlloc(void*(*)(u64), Parse*); SQLITE_PRIVATE void sqlite3ParserFree(void*, void(*)(void*)); #endif -SQLITE_PRIVATE void sqlite3Parser(void*, int, Token, Parse*); +SQLITE_PRIVATE void sqlite3Parser(void*, int, Token); +SQLITE_PRIVATE int sqlite3ParserFallback(int); #ifdef YYTRACKMAXSTACKDEPTH SQLITE_PRIVATE int sqlite3ParserStackPeak(void*); #endif @@ -18102,11 +19274,13 @@ SQLITE_PRIVATE int sqlite3VtabCallConnect(Parse*, Table*); SQLITE_PRIVATE int sqlite3VtabCallDestroy(sqlite3*, int, const char *); SQLITE_PRIVATE int sqlite3VtabBegin(sqlite3 *, VTable *); SQLITE_PRIVATE FuncDef *sqlite3VtabOverloadFunction(sqlite3 *,FuncDef*, int nArg, Expr*); -SQLITE_PRIVATE void sqlite3InvalidFunction(sqlite3_context*,int,sqlite3_value**); SQLITE_PRIVATE sqlite3_int64 sqlite3StmtCurrentTime(sqlite3_context*); SQLITE_PRIVATE int sqlite3VdbeParameterIndex(Vdbe*, const char*, int); SQLITE_PRIVATE int sqlite3TransferBindings(sqlite3_stmt *, sqlite3_stmt *); SQLITE_PRIVATE void sqlite3ParserReset(Parse*); +#ifdef SQLITE_ENABLE_NORMALIZE +SQLITE_PRIVATE void sqlite3Normalize(Vdbe*, const char*, int, u8); +#endif SQLITE_PRIVATE int sqlite3Reprepare(Vdbe*); SQLITE_PRIVATE void sqlite3ExprListCheckLength(Parse*, ExprList*, const char*); SQLITE_PRIVATE CollSeq *sqlite3BinaryCompareCollSeq(Parse *, Expr *, Expr *); @@ -18124,6 +19298,18 @@ SQLITE_PRIVATE void sqlite3WithPush(Parse*, With*, u8); #define sqlite3WithPush(x,y,z) #define sqlite3WithDelete(x,y) #endif +#ifndef SQLITE_OMIT_UPSERT +SQLITE_PRIVATE Upsert *sqlite3UpsertNew(sqlite3*,ExprList*,Expr*,ExprList*,Expr*); +SQLITE_PRIVATE void sqlite3UpsertDelete(sqlite3*,Upsert*); +SQLITE_PRIVATE Upsert *sqlite3UpsertDup(sqlite3*,Upsert*); +SQLITE_PRIVATE int sqlite3UpsertAnalyzeTarget(Parse*,SrcList*,Upsert*); +SQLITE_PRIVATE void sqlite3UpsertDoUpdate(Parse*,Upsert*,Table*,Index*,int); +#else +#define sqlite3UpsertNew(v,w,x,y,z) ((Upsert*)0) +#define sqlite3UpsertDelete(x,y) +#define sqlite3UpsertDup(x,y) ((Upsert*)0) +#endif + /* Declarations for functions in fkey.c. All of these are replaced by ** no-op macros if OMIT_FOREIGN_KEY is defined. In this case no foreign @@ -18556,7 +19742,9 @@ SQLITE_PRIVATE SQLITE_WSD struct Sqlite3Config sqlite3Config = { 0, /* xTestCallback */ #endif 0, /* bLocaltimeFault */ - 0x7ffffffe /* iOnceResetThreshold */ + 0, /* bInternalFunctions */ + 0x7ffffffe, /* iOnceResetThreshold */ + SQLITE_DEFAULT_SORTERREF_SIZE /* szSorterRef */ }; /* @@ -18574,6 +19762,13 @@ SQLITE_PRIVATE const Token sqlite3IntTokens[] = { { "1", 1 } }; +#ifdef VDBE_PROFILE +/* +** The following performance counter can be used in place of +** sqlite3Hwtime() for profiling. This is a no-op on standard builds. +*/ +SQLITE_PRIVATE sqlite3_uint64 sqlite3NProfileCnt = 0; +#endif /* ** The value of the "pending" byte must be 0x40000000 (1 byte past the @@ -18718,6 +19913,7 @@ struct VdbeCursor { Bool isEphemeral:1; /* True for an ephemeral table */ Bool useRandomRowid:1; /* Generate new record numbers semi-randomly */ Bool isOrdered:1; /* True if the table is not BTREE_UNORDERED */ + Bool seekHit:1; /* See the OP_SeekHit and OP_IfNoHope opcodes */ Btree *pBtx; /* Separate file holding temporary table */ i64 seqCount; /* Sequence counter */ int *aAltMap; /* Mapping from table to index column numbers */ @@ -18801,6 +19997,9 @@ struct VdbeFrame { void *token; /* Copy of SubProgram.token */ i64 lastRowid; /* Last insert rowid (sqlite3.lastRowid) */ AuxData *pAuxData; /* Linked list of auxdata allocations */ +#if SQLITE_DEBUG + u32 iFrameMagic; /* magic number for sanity checking */ +#endif int nCursor; /* Number of entries in apCsr */ int pc; /* Program Counter in parent (calling) frame */ int nOp; /* Size of aOp array */ @@ -18811,6 +20010,13 @@ struct VdbeFrame { int nDbChange; /* Value of db->nChange */ }; +/* Magic number for sanity checking on VdbeFrame objects */ +#define SQLITE_FRAME_MAGIC 0x879fb71e + +/* +** Return a pointer to the array of registers allocated for use +** by a VdbeFrame. +*/ #define VdbeFrameMem(p) ((Mem *)&((u8 *)p)[ROUND8(sizeof(VdbeFrame))]) /* @@ -18825,8 +20031,6 @@ struct sqlite3_value { int nZero; /* Extra zero bytes when MEM_Zero and MEM_Blob set */ const char *zPType; /* Pointer type when MEM_Term|MEM_Subtype|MEM_Null */ FuncDef *pDef; /* Used only when flags==MEM_Agg */ - RowSet *pRowSet; /* Used only when flags==MEM_RowSet */ - VdbeFrame *pFrame; /* Used when flags==MEM_Frame */ } u; u16 flags; /* Some combination of MEM_Null, MEM_Str, MEM_Dyn, etc. */ u8 enc; /* SQLITE_UTF8, SQLITE_UTF16BE, SQLITE_UTF16LE */ @@ -18841,7 +20045,7 @@ struct sqlite3_value { void (*xDel)(void*);/* Destructor for Mem.z - only valid if MEM_Dyn */ #ifdef SQLITE_DEBUG Mem *pScopyFrom; /* This Mem is a shallow copy of pScopyFrom */ - void *pFiller; /* So that sizeof(Mem) is a multiple of 8 */ + u16 mScopyFlags; /* flags value immediately after the shallow copy */ #endif }; @@ -18857,8 +20061,6 @@ struct sqlite3_value { ** If the MEM_Null flag is set, then the value is an SQL NULL value. ** For a pointer type created using sqlite3_bind_pointer() or ** sqlite3_result_pointer() the MEM_Term and MEM_Subtype flags are also set. -** If both MEM_Null and MEM_Zero are set, that means that the value is -** an unchanging column value from VColumn. ** ** If the MEM_Str flag is set then Mem.z points at a string representation. ** Usually this is encoded in the same unicode encoding as the main @@ -18872,8 +20074,8 @@ struct sqlite3_value { #define MEM_Real 0x0008 /* Value is a real number */ #define MEM_Blob 0x0010 /* Value is a BLOB */ #define MEM_AffMask 0x001f /* Mask of affinity bits */ -#define MEM_RowSet 0x0020 /* Value is a RowSet object */ -#define MEM_Frame 0x0040 /* Value is a VdbeFrame object */ +/* Available 0x0020 */ +/* Available 0x0040 */ #define MEM_Undefined 0x0080 /* Value is undefined */ #define MEM_Cleared 0x0100 /* NULL set by OP_Null, not from data */ #define MEM_TypeMask 0xc1ff /* Mask of type bits */ @@ -18900,7 +20102,7 @@ struct sqlite3_value { ** that needs to be deallocated to avoid a leak. */ #define VdbeMemDynamic(X) \ - (((X)->flags&(MEM_Agg|MEM_Dyn|MEM_RowSet|MEM_Frame))!=0) + (((X)->flags&(MEM_Agg|MEM_Dyn))!=0) /* ** Clear any existing type flags from a Mem and replace them with f @@ -18952,7 +20154,6 @@ struct sqlite3_context { int iOp; /* Instruction number of OP_Function */ int isError; /* Error code returned by the function. */ u8 skipFlag; /* Skip accumulator loading if true */ - u8 fErrorOrAux; /* isError!=0 or pVdbe->pAuxData modified */ u8 argc; /* Number of arguments */ sqlite3_value *argv[1]; /* Argument set */ }; @@ -19015,14 +20216,15 @@ struct Vdbe { int nOp; /* Number of instructions in the program */ #ifdef SQLITE_DEBUG int rcApp; /* errcode set by sqlite3_result_error_code() */ + u32 nWrite; /* Number of write operations that have occurred */ #endif u16 nResColumn; /* Number of columns in one row of the result set */ u8 errorAction; /* Recovery action to do in case of an error */ u8 minWriteFileFormat; /* Minimum file format for writable database files */ u8 prepFlags; /* SQLITE_PREPARE_* flags */ - bft expired:1; /* True if the VM needs to be recompiled */ - bft doingRerun:1; /* True if rerunning after an auto-reprepare */ + bft expired:2; /* 1: recompile VM immediately 2: when convenient */ bft explain:2; /* True if EXPLAIN present on SQL command */ + bft doingRerun:1; /* True if rerunning after an auto-reprepare */ bft changeCntOn:1; /* True to update the change-counter */ bft runOnlyOnce:1; /* Automatically expire on reset */ bft usesStmtJournal:1; /* True if uses a statement journal */ @@ -19032,6 +20234,9 @@ struct Vdbe { yDbMask lockMask; /* Subset of btreeMask that requires a lock */ u32 aCounter[7]; /* Counters used by sqlite3_stmt_status() */ char *zSql; /* Text of the SQL statement that generated this */ +#ifdef SQLITE_ENABLE_NORMALIZE + char *zNormSql; /* Normalization of the associated SQL statement */ +#endif void *pFree; /* Free this when deleting the vdbe */ VdbeFrame *pFrame; /* Parent frame */ VdbeFrame *pDelFrame; /* List of frame objects to free on VM reset */ @@ -19083,9 +20288,6 @@ SQLITE_PRIVATE void sqlite3VdbeFreeCursor(Vdbe *, VdbeCursor*); void sqliteVdbePopStack(Vdbe*,int); SQLITE_PRIVATE int sqlite3VdbeCursorMoveto(VdbeCursor**, int*); SQLITE_PRIVATE int sqlite3VdbeCursorRestore(VdbeCursor*); -#if defined(SQLITE_DEBUG) || defined(VDBE_PROFILE) -SQLITE_PRIVATE void sqlite3VdbePrintOp(FILE*, int, Op*); -#endif SQLITE_PRIVATE u32 sqlite3VdbeSerialTypeLen(u32); SQLITE_PRIVATE u8 sqlite3VdbeOneByteSerialTypeLen(u8); SQLITE_PRIVATE u32 sqlite3VdbeSerialType(Mem*, int, u32*); @@ -19097,7 +20299,9 @@ int sqlite2BtreeKeyCompare(BtCursor *, const void *, int, int, int *); SQLITE_PRIVATE int sqlite3VdbeIdxKeyCompare(sqlite3*,VdbeCursor*,UnpackedRecord*,int*); SQLITE_PRIVATE int sqlite3VdbeIdxRowid(sqlite3*, BtCursor*, i64*); SQLITE_PRIVATE int sqlite3VdbeExec(Vdbe*); +#ifndef SQLITE_OMIT_EXPLAIN SQLITE_PRIVATE int sqlite3VdbeList(Vdbe*); +#endif SQLITE_PRIVATE int sqlite3VdbeHalt(Vdbe*); SQLITE_PRIVATE int sqlite3VdbeChangeEncoding(Mem *, int); SQLITE_PRIVATE int sqlite3VdbeMemTooBig(Mem*); @@ -19116,12 +20320,16 @@ SQLITE_PRIVATE void sqlite3VdbeMemSetPointer(Mem*, void*, const char*, void(*)(v SQLITE_PRIVATE void sqlite3VdbeMemInit(Mem*,sqlite3*,u16); SQLITE_PRIVATE void sqlite3VdbeMemSetNull(Mem*); SQLITE_PRIVATE void sqlite3VdbeMemSetZeroBlob(Mem*,int); -SQLITE_PRIVATE void sqlite3VdbeMemSetRowSet(Mem*); +#ifdef SQLITE_DEBUG +SQLITE_PRIVATE int sqlite3VdbeMemIsRowSet(const Mem*); +#endif +SQLITE_PRIVATE int sqlite3VdbeMemSetRowSet(Mem*); SQLITE_PRIVATE int sqlite3VdbeMemMakeWriteable(Mem*); SQLITE_PRIVATE int sqlite3VdbeMemStringify(Mem*, u8, u8); SQLITE_PRIVATE i64 sqlite3VdbeIntValue(Mem*); SQLITE_PRIVATE int sqlite3VdbeMemIntegerify(Mem*); SQLITE_PRIVATE double sqlite3VdbeRealValue(Mem*); +SQLITE_PRIVATE int sqlite3VdbeBooleanValue(Mem*, int ifNull); SQLITE_PRIVATE void sqlite3VdbeIntegerAffinity(Mem*); SQLITE_PRIVATE int sqlite3VdbeMemRealify(Mem*); SQLITE_PRIVATE int sqlite3VdbeMemNumerify(Mem*); @@ -19129,11 +20337,20 @@ SQLITE_PRIVATE void sqlite3VdbeMemCast(Mem*,u8,u8); SQLITE_PRIVATE int sqlite3VdbeMemFromBtree(BtCursor*,u32,u32,Mem*); SQLITE_PRIVATE void sqlite3VdbeMemRelease(Mem *p); SQLITE_PRIVATE int sqlite3VdbeMemFinalize(Mem*, FuncDef*); +#ifndef SQLITE_OMIT_WINDOWFUNC +SQLITE_PRIVATE int sqlite3VdbeMemAggValue(Mem*, Mem*, FuncDef*); +#endif +#ifndef SQLITE_OMIT_EXPLAIN SQLITE_PRIVATE const char *sqlite3OpcodeName(int); +#endif SQLITE_PRIVATE int sqlite3VdbeMemGrow(Mem *pMem, int n, int preserve); SQLITE_PRIVATE int sqlite3VdbeMemClearAndResize(Mem *pMem, int n); SQLITE_PRIVATE int sqlite3VdbeCloseStatement(Vdbe *, int); -SQLITE_PRIVATE void sqlite3VdbeFrameDelete(VdbeFrame*); +#ifdef SQLITE_DEBUG +SQLITE_PRIVATE int sqlite3VdbeFrameIsValid(VdbeFrame*); +#endif +SQLITE_PRIVATE void sqlite3VdbeFrameMemDel(void*); /* Destructor on Mem */ +SQLITE_PRIVATE void sqlite3VdbeFrameDelete(VdbeFrame*); /* Actually deletes the Frame */ SQLITE_PRIVATE int sqlite3VdbeFrameRestore(VdbeFrame *); #ifdef SQLITE_ENABLE_PREUPDATE_HOOK SQLITE_PRIVATE void sqlite3VdbePreUpdateHook(Vdbe*,VdbeCursor*,int,const char*,Table*,i64,int); @@ -19149,6 +20366,14 @@ SQLITE_PRIVATE int sqlite3VdbeSorterRewind(const VdbeCursor *, int *); SQLITE_PRIVATE int sqlite3VdbeSorterWrite(const VdbeCursor *, Mem *); SQLITE_PRIVATE int sqlite3VdbeSorterCompare(const VdbeCursor *, Mem *, int, int *); +#ifdef SQLITE_DEBUG +SQLITE_PRIVATE void sqlite3VdbeIncrWriteCounter(Vdbe*, VdbeCursor*); +SQLITE_PRIVATE void sqlite3VdbeAssertAbortable(Vdbe*); +#else +# define sqlite3VdbeIncrWriteCounter(V,C) +# define sqlite3VdbeAssertAbortable(V) +#endif + #if !defined(SQLITE_OMIT_SHARED_CACHE) SQLITE_PRIVATE void sqlite3VdbeEnter(Vdbe*); #else @@ -19515,6 +20740,9 @@ SQLITE_API int sqlite3_db_status( ** pagers the database handle is connected to. *pHighwater is always set ** to zero. */ + case SQLITE_DBSTATUS_CACHE_SPILL: + op = SQLITE_DBSTATUS_CACHE_WRITE+1; + /* Fall through into the next case */ case SQLITE_DBSTATUS_CACHE_HIT: case SQLITE_DBSTATUS_CACHE_MISS: case SQLITE_DBSTATUS_CACHE_WRITE:{ @@ -20935,8 +22163,11 @@ SQLITE_PRIVATE int sqlite3OsCheckReservedLock(sqlite3_file *id, int *pResOut){ ** routine has no return value since the return value would be meaningless. */ SQLITE_PRIVATE int sqlite3OsFileControl(sqlite3_file *id, int op, void *pArg){ + if( id->pMethods==0 ) return SQLITE_NOTFOUND; #ifdef SQLITE_TEST - if( op!=SQLITE_FCNTL_COMMIT_PHASETWO ){ + if( op!=SQLITE_FCNTL_COMMIT_PHASETWO + && op!=SQLITE_FCNTL_LOCK_TIMEOUT + ){ /* Faults are not injected into COMMIT_PHASETWO because, assuming SQLite ** is using a regular VFS, it is called after the corresponding ** transaction has been committed. Injecting a fault at this point @@ -20953,7 +22184,7 @@ SQLITE_PRIVATE int sqlite3OsFileControl(sqlite3_file *id, int op, void *pArg){ return id->pMethods->xFileControl(id, op, pArg); } SQLITE_PRIVATE void sqlite3OsFileControlHint(sqlite3_file *id, int op, void *pArg){ - (void)id->pMethods->xFileControl(id, op, pArg); + if( id->pMethods ) (void)id->pMethods->xFileControl(id, op, pArg); } SQLITE_PRIVATE int sqlite3OsSectorSize(sqlite3_file *id){ @@ -21217,9 +22448,12 @@ SQLITE_API int sqlite3_vfs_register(sqlite3_vfs *pVfs, int makeDflt){ ** Unregister a VFS so that it is no longer accessible. */ SQLITE_API int sqlite3_vfs_unregister(sqlite3_vfs *pVfs){ -#if SQLITE_THREADSAFE - sqlite3_mutex *mutex = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER); + MUTEX_LOGIC(sqlite3_mutex *mutex;) +#ifndef SQLITE_OMIT_AUTOINIT + int rc = sqlite3_initialize(); + if( rc ) return rc; #endif + MUTEX_LOGIC( mutex = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER); ) sqlite3_mutex_enter(mutex); vfsUnlink(pVfs); sqlite3_mutex_leave(mutex); @@ -23835,7 +25069,6 @@ SQLITE_API int sqlite3_mutex_notheld(sqlite3_mutex *p){ #endif /* !defined(SQLITE_MUTEX_OMIT) */ - /************** End of mutex.c ***********************************************/ /************** Begin file mutex_noop.c **************************************/ /* @@ -24108,11 +25341,12 @@ struct sqlite3_mutex { #endif }; #if SQLITE_MUTEX_NREF -#define SQLITE3_MUTEX_INITIALIZER {PTHREAD_MUTEX_INITIALIZER,0,0,(pthread_t)0,0} +# define SQLITE3_MUTEX_INITIALIZER(id) \ + {PTHREAD_MUTEX_INITIALIZER,id,0,(pthread_t)0,0} #elif defined(SQLITE_ENABLE_API_ARMOR) -#define SQLITE3_MUTEX_INITIALIZER { PTHREAD_MUTEX_INITIALIZER, 0 } +# define SQLITE3_MUTEX_INITIALIZER(id) { PTHREAD_MUTEX_INITIALIZER, id } #else -#define SQLITE3_MUTEX_INITIALIZER { PTHREAD_MUTEX_INITIALIZER } +#define SQLITE3_MUTEX_INITIALIZER(id) { PTHREAD_MUTEX_INITIALIZER } #endif /* @@ -24209,18 +25443,18 @@ static int pthreadMutexEnd(void){ return SQLITE_OK; } */ static sqlite3_mutex *pthreadMutexAlloc(int iType){ static sqlite3_mutex staticMutexes[] = { - SQLITE3_MUTEX_INITIALIZER, - SQLITE3_MUTEX_INITIALIZER, - SQLITE3_MUTEX_INITIALIZER, - SQLITE3_MUTEX_INITIALIZER, - SQLITE3_MUTEX_INITIALIZER, - SQLITE3_MUTEX_INITIALIZER, - SQLITE3_MUTEX_INITIALIZER, - SQLITE3_MUTEX_INITIALIZER, - SQLITE3_MUTEX_INITIALIZER, - SQLITE3_MUTEX_INITIALIZER, - SQLITE3_MUTEX_INITIALIZER, - SQLITE3_MUTEX_INITIALIZER + SQLITE3_MUTEX_INITIALIZER(2), + SQLITE3_MUTEX_INITIALIZER(3), + SQLITE3_MUTEX_INITIALIZER(4), + SQLITE3_MUTEX_INITIALIZER(5), + SQLITE3_MUTEX_INITIALIZER(6), + SQLITE3_MUTEX_INITIALIZER(7), + SQLITE3_MUTEX_INITIALIZER(8), + SQLITE3_MUTEX_INITIALIZER(9), + SQLITE3_MUTEX_INITIALIZER(10), + SQLITE3_MUTEX_INITIALIZER(11), + SQLITE3_MUTEX_INITIALIZER(12), + SQLITE3_MUTEX_INITIALIZER(13) }; sqlite3_mutex *p; switch( iType ){ @@ -24238,6 +25472,9 @@ static sqlite3_mutex *pthreadMutexAlloc(int iType){ pthread_mutexattr_settype(&recursiveAttr, PTHREAD_MUTEX_RECURSIVE); pthread_mutex_init(&p->mutex, &recursiveAttr); pthread_mutexattr_destroy(&recursiveAttr); +#endif +#if SQLITE_MUTEX_NREF || defined(SQLITE_ENABLE_API_ARMOR) + p->id = SQLITE_MUTEX_RECURSIVE; #endif } break; @@ -24246,6 +25483,9 @@ static sqlite3_mutex *pthreadMutexAlloc(int iType){ p = sqlite3MallocZero( sizeof(*p) ); if( p ){ pthread_mutex_init(&p->mutex, 0); +#if SQLITE_MUTEX_NREF || defined(SQLITE_ENABLE_API_ARMOR) + p->id = SQLITE_MUTEX_FAST; +#endif } break; } @@ -24261,7 +25501,7 @@ static sqlite3_mutex *pthreadMutexAlloc(int iType){ } } #if SQLITE_MUTEX_NREF || defined(SQLITE_ENABLE_API_ARMOR) - if( p ) p->id = iType; + assert( p==0 || p->id==iType ); #endif return p; } @@ -24778,7 +26018,7 @@ struct sqlite3_mutex { #ifdef SQLITE_DEBUG volatile int nRef; /* Number of enterances */ volatile DWORD owner; /* Thread holding this mutex */ - volatile int trace; /* True to trace changes */ + volatile LONG trace; /* True to trace changes */ #endif }; @@ -24790,10 +26030,10 @@ struct sqlite3_mutex { #define SQLITE_W32_MUTEX_INITIALIZER { 0 } #ifdef SQLITE_DEBUG -#define SQLITE3_MUTEX_INITIALIZER { SQLITE_W32_MUTEX_INITIALIZER, 0, \ +#define SQLITE3_MUTEX_INITIALIZER(id) { SQLITE_W32_MUTEX_INITIALIZER, id, \ 0L, (DWORD)0, 0 } #else -#define SQLITE3_MUTEX_INITIALIZER { SQLITE_W32_MUTEX_INITIALIZER, 0 } +#define SQLITE3_MUTEX_INITIALIZER(id) { SQLITE_W32_MUTEX_INITIALIZER, id } #endif #ifdef SQLITE_DEBUG @@ -24836,18 +26076,18 @@ SQLITE_PRIVATE void sqlite3MemoryBarrier(void){ ** Initialize and deinitialize the mutex subsystem. */ static sqlite3_mutex winMutex_staticMutexes[] = { - SQLITE3_MUTEX_INITIALIZER, - SQLITE3_MUTEX_INITIALIZER, - SQLITE3_MUTEX_INITIALIZER, - SQLITE3_MUTEX_INITIALIZER, - SQLITE3_MUTEX_INITIALIZER, - SQLITE3_MUTEX_INITIALIZER, - SQLITE3_MUTEX_INITIALIZER, - SQLITE3_MUTEX_INITIALIZER, - SQLITE3_MUTEX_INITIALIZER, - SQLITE3_MUTEX_INITIALIZER, - SQLITE3_MUTEX_INITIALIZER, - SQLITE3_MUTEX_INITIALIZER + SQLITE3_MUTEX_INITIALIZER(2), + SQLITE3_MUTEX_INITIALIZER(3), + SQLITE3_MUTEX_INITIALIZER(4), + SQLITE3_MUTEX_INITIALIZER(5), + SQLITE3_MUTEX_INITIALIZER(6), + SQLITE3_MUTEX_INITIALIZER(7), + SQLITE3_MUTEX_INITIALIZER(8), + SQLITE3_MUTEX_INITIALIZER(9), + SQLITE3_MUTEX_INITIALIZER(10), + SQLITE3_MUTEX_INITIALIZER(11), + SQLITE3_MUTEX_INITIALIZER(12), + SQLITE3_MUTEX_INITIALIZER(13) }; static int winMutex_isInit = 0; @@ -24977,15 +26217,15 @@ static sqlite3_mutex *winMutexAlloc(int iType){ } #endif p = &winMutex_staticMutexes[iType-2]; - p->id = iType; #ifdef SQLITE_DEBUG #ifdef SQLITE_WIN32_MUTEX_TRACE_STATIC - p->trace = 1; + InterlockedCompareExchange(&p->trace, 1, 0); #endif #endif break; } } + assert( p==0 || p->id==iType ); return p; } @@ -25992,7 +27232,7 @@ static char et_getdigit(LONGDOUBLE_TYPE *val, int *cnt){ ** Set the StrAccum object to an error mode. */ static void setStrAccumError(StrAccum *p, u8 eError){ - assert( eError==STRACCUM_NOMEM || eError==STRACCUM_TOOBIG ); + assert( eError==SQLITE_NOMEM || eError==SQLITE_TOOBIG ); p->accError = eError; p->nAlloc = 0; } @@ -26026,8 +27266,8 @@ static char *getTextArg(PrintfArguments *p){ /* ** Render a string given by "fmt" into the StrAccum object. */ -SQLITE_PRIVATE void sqlite3VXPrintf( - StrAccum *pAccum, /* Accumulate results here */ +SQLITE_API void sqlite3_str_vappendf( + sqlite3_str *pAccum, /* Accumulate results here */ const char *fmt, /* Format string */ va_list ap /* arguments */ ){ @@ -26064,6 +27304,11 @@ SQLITE_PRIVATE void sqlite3VXPrintf( PrintfArguments *pArgList = 0; /* Arguments for SQLITE_PRINTF_SQLFUNC */ char buf[etBUFSIZE]; /* Conversion buffer */ + /* pAccum never starts out with an empty buffer that was obtained from + ** malloc(). This precondition is required by the mprintf("%z...") + ** optimization. */ + assert( pAccum->nChar>0 || (pAccum->printfFlags&SQLITE_PRINTF_MALLOCED)==0 ); + bufpt = 0; if( (pAccum->printfFlags & SQLITE_PRINTF_SQLFUNC)!=0 ){ pArgList = va_arg(ap, PrintfArguments*); @@ -26079,11 +27324,11 @@ SQLITE_PRIVATE void sqlite3VXPrintf( #else do{ fmt++; }while( *fmt && *fmt != '%' ); #endif - sqlite3StrAccumAppend(pAccum, bufpt, (int)(fmt - bufpt)); + sqlite3_str_append(pAccum, bufpt, (int)(fmt - bufpt)); if( *fmt==0 ) break; } if( (c=(*++fmt))==0 ){ - sqlite3StrAccumAppend(pAccum, "%", 1); + sqlite3_str_append(pAccum, "%", 1); break; } /* Find out what flags are present */ @@ -26261,7 +27506,7 @@ SQLITE_PRIVATE void sqlite3VXPrintf( u64 n = (u64)precision + 10 + precision/3; zOut = zExtra = sqlite3Malloc( n ); if( zOut==0 ){ - setStrAccumError(pAccum, STRACCUM_NOMEM); + setStrAccumError(pAccum, SQLITE_NOMEM); return; } nOut = (int)n; @@ -26386,7 +27631,7 @@ SQLITE_PRIVATE void sqlite3VXPrintf( bufpt = zExtra = sqlite3Malloc( MAX(e2,0)+(i64)precision+(i64)width+15 ); if( bufpt==0 ){ - setStrAccumError(pAccum, STRACCUM_NOMEM); + setStrAccumError(pAccum, SQLITE_NOMEM); return; } } @@ -26482,22 +27727,52 @@ SQLITE_PRIVATE void sqlite3VXPrintf( case etCHARX: if( bArgList ){ bufpt = getTextArg(pArgList); - c = bufpt ? bufpt[0] : 0; + length = 1; + if( bufpt ){ + buf[0] = c = *(bufpt++); + if( (c&0xc0)==0xc0 ){ + while( length<4 && (bufpt[0]&0xc0)==0x80 ){ + buf[length++] = *(bufpt++); + } + } + }else{ + buf[0] = 0; + } }else{ - c = va_arg(ap,int); + unsigned int ch = va_arg(ap,unsigned int); + if( ch<0x00080 ){ + buf[0] = ch & 0xff; + length = 1; + }else if( ch<0x00800 ){ + buf[0] = 0xc0 + (u8)((ch>>6)&0x1f); + buf[1] = 0x80 + (u8)(ch & 0x3f); + length = 2; + }else if( ch<0x10000 ){ + buf[0] = 0xe0 + (u8)((ch>>12)&0x0f); + buf[1] = 0x80 + (u8)((ch>>6) & 0x3f); + buf[2] = 0x80 + (u8)(ch & 0x3f); + length = 3; + }else{ + buf[0] = 0xf0 + (u8)((ch>>18) & 0x07); + buf[1] = 0x80 + (u8)((ch>>12) & 0x3f); + buf[2] = 0x80 + (u8)((ch>>6) & 0x3f); + buf[3] = 0x80 + (u8)(ch & 0x3f); + length = 4; + } } if( precision>1 ){ width -= precision-1; if( width>1 && !flag_leftjustify ){ - sqlite3AppendChar(pAccum, width-1, ' '); + sqlite3_str_appendchar(pAccum, width-1, ' '); width = 0; } - sqlite3AppendChar(pAccum, precision-1, c); + while( precision-- > 1 ){ + sqlite3_str_append(pAccum, buf, length); + } } - length = 1; - buf[0] = c; bufpt = buf; - break; + flag_altform2 = 1; + goto adjust_width_for_utf8; case etSTRING: case etDYNSTRING: if( bArgList ){ @@ -26509,17 +27784,50 @@ SQLITE_PRIVATE void sqlite3VXPrintf( if( bufpt==0 ){ bufpt = ""; }else if( xtype==etDYNSTRING ){ + if( pAccum->nChar==0 + && pAccum->mxAlloc + && width==0 + && precision<0 + && pAccum->accError==0 + ){ + /* Special optimization for sqlite3_mprintf("%z..."): + ** Extend an existing memory allocation rather than creating + ** a new one. */ + assert( (pAccum->printfFlags&SQLITE_PRINTF_MALLOCED)==0 ); + pAccum->zText = bufpt; + pAccum->nAlloc = sqlite3DbMallocSize(pAccum->db, bufpt); + pAccum->nChar = 0x7fffffff & (int)strlen(bufpt); + pAccum->printfFlags |= SQLITE_PRINTF_MALLOCED; + length = 0; + break; + } zExtra = bufpt; } if( precision>=0 ){ - for(length=0; length 0 && z[0] ){ + SQLITE_SKIP_UTF8(z); + } + length = (int)(z - (unsigned char*)bufpt); + }else{ + for(length=0; length0 ){ + /* Adjust width to account for extra bytes in UTF-8 characters */ + int ii = length - 1; + while( ii>=0 ) if( (bufpt[ii--] & 0xc0)==0x80 ) width++; + } break; - case etSQLESCAPE: /* Escape ' characters */ - case etSQLESCAPE2: /* Escape ' and enclose in '...' */ - case etSQLESCAPE3: { /* Escape " characters */ + case etSQLESCAPE: /* %q: Escape ' characters */ + case etSQLESCAPE2: /* %Q: Escape ' and enclose in '...' */ + case etSQLESCAPE3: { /* %w: Escape " characters */ int i, j, k, n, isnull; int needQuote; char ch; @@ -26533,16 +27841,24 @@ SQLITE_PRIVATE void sqlite3VXPrintf( } isnull = escarg==0; if( isnull ) escarg = (xtype==etSQLESCAPE2 ? "NULL" : "(NULL)"); + /* For %q, %Q, and %w, the precision is the number of byte (or + ** characters if the ! flags is present) to use from the input. + ** Because of the extra quoting characters inserted, the number + ** of output characters may be larger than the precision. + */ k = precision; for(i=n=0; k!=0 && (ch=escarg[i])!=0; i++, k--){ if( ch==q ) n++; + if( flag_altform2 && (ch&0xc0)==0xc0 ){ + while( (escarg[i+1]&0xc0)==0x80 ){ i++; } + } } needQuote = !isnull && xtype==etSQLESCAPE2; n += i + 3; if( n>etBUFSIZE ){ bufpt = zExtra = sqlite3Malloc( n ); if( bufpt==0 ){ - setStrAccumError(pAccum, STRACCUM_NOMEM); + setStrAccumError(pAccum, SQLITE_NOMEM); return; } }else{ @@ -26558,10 +27874,7 @@ SQLITE_PRIVATE void sqlite3VXPrintf( if( needQuote ) bufpt[j++] = q; bufpt[j] = 0; length = j; - /* The precision in %q and %Q means how many input characters to - ** consume, not the length of the output... - ** if( precision>=0 && precisionn ){ - sqlite3StrAccumAppend(pAccum, (const char*)pToken->z, pToken->n); + sqlite3_str_append(pAccum, (const char*)pToken->z, pToken->n); } length = width = 0; break; @@ -26585,10 +27898,10 @@ SQLITE_PRIVATE void sqlite3VXPrintf( assert( bArgList==0 ); assert( k>=0 && knSrc ); if( pItem->zDatabase ){ - sqlite3StrAccumAppendAll(pAccum, pItem->zDatabase); - sqlite3StrAccumAppend(pAccum, ".", 1); + sqlite3_str_appendall(pAccum, pItem->zDatabase); + sqlite3_str_append(pAccum, ".", 1); } - sqlite3StrAccumAppendAll(pAccum, pItem->zName); + sqlite3_str_appendall(pAccum, pItem->zName); length = width = 0; break; } @@ -26600,15 +27913,18 @@ SQLITE_PRIVATE void sqlite3VXPrintf( /* ** The text of the conversion is pointed to by "bufpt" and is ** "length" characters long. The field width is "width". Do - ** the output. + ** the output. Both length and width are in bytes, not characters, + ** at this point. If the "!" flag was present on string conversions + ** indicating that width and precision should be expressed in characters, + ** then the values have been translated prior to reaching this point. */ width -= length; if( width>0 ){ - if( !flag_leftjustify ) sqlite3AppendChar(pAccum, width, ' '); - sqlite3StrAccumAppend(pAccum, bufpt, length); - if( flag_leftjustify ) sqlite3AppendChar(pAccum, width, ' '); + if( !flag_leftjustify ) sqlite3_str_appendchar(pAccum, width, ' '); + sqlite3_str_append(pAccum, bufpt, length); + if( flag_leftjustify ) sqlite3_str_appendchar(pAccum, width, ' '); }else{ - sqlite3StrAccumAppend(pAccum, bufpt, length); + sqlite3_str_append(pAccum, bufpt, length); } if( zExtra ){ @@ -26629,13 +27945,13 @@ static int sqlite3StrAccumEnlarge(StrAccum *p, int N){ char *zNew; assert( p->nChar+(i64)N >= p->nAlloc ); /* Only called if really needed */ if( p->accError ){ - testcase(p->accError==STRACCUM_TOOBIG); - testcase(p->accError==STRACCUM_NOMEM); + testcase(p->accError==SQLITE_TOOBIG); + testcase(p->accError==SQLITE_NOMEM); return 0; } if( p->mxAlloc==0 ){ N = p->nAlloc - p->nChar - 1; - setStrAccumError(p, STRACCUM_TOOBIG); + setStrAccumError(p, SQLITE_TOOBIG); return N; }else{ char *zOld = isMalloced(p) ? p->zText : 0; @@ -26647,8 +27963,8 @@ static int sqlite3StrAccumEnlarge(StrAccum *p, int N){ szNew += p->nChar; } if( szNew > p->mxAlloc ){ - sqlite3StrAccumReset(p); - setStrAccumError(p, STRACCUM_TOOBIG); + sqlite3_str_reset(p); + setStrAccumError(p, SQLITE_TOOBIG); return 0; }else{ p->nAlloc = (int)szNew; @@ -26665,8 +27981,8 @@ static int sqlite3StrAccumEnlarge(StrAccum *p, int N){ p->nAlloc = sqlite3DbMallocSize(p->db, zNew); p->printfFlags |= SQLITE_PRINTF_MALLOCED; }else{ - sqlite3StrAccumReset(p); - setStrAccumError(p, STRACCUM_NOMEM); + sqlite3_str_reset(p); + setStrAccumError(p, SQLITE_NOMEM); return 0; } } @@ -26676,7 +27992,7 @@ static int sqlite3StrAccumEnlarge(StrAccum *p, int N){ /* ** Append N copies of character c to the given string buffer. */ -SQLITE_PRIVATE void sqlite3AppendChar(StrAccum *p, int N, char c){ +SQLITE_API void sqlite3_str_appendchar(sqlite3_str *p, int N, char c){ testcase( p->nChar + (i64)N > 0x7fffffff ); if( p->nChar+(i64)N >= p->nAlloc && (N = sqlite3StrAccumEnlarge(p, N))<=0 ){ return; @@ -26688,9 +28004,9 @@ SQLITE_PRIVATE void sqlite3AppendChar(StrAccum *p, int N, char c){ ** The StrAccum "p" is not large enough to accept N new bytes of z[]. ** So enlarge if first, then do the append. ** -** This is a helper routine to sqlite3StrAccumAppend() that does special-case +** This is a helper routine to sqlite3_str_append() that does special-case ** work (enlarging the buffer) using tail recursion, so that the -** sqlite3StrAccumAppend() routine can use fast calling semantics. +** sqlite3_str_append() routine can use fast calling semantics. */ static void SQLITE_NOINLINE enlargeAndAppend(StrAccum *p, const char *z, int N){ N = sqlite3StrAccumEnlarge(p, N); @@ -26704,7 +28020,7 @@ static void SQLITE_NOINLINE enlargeAndAppend(StrAccum *p, const char *z, int N){ ** Append N bytes of text from z to the StrAccum object. Increase the ** size of the memory allocation for StrAccum if necessary. */ -SQLITE_PRIVATE void sqlite3StrAccumAppend(StrAccum *p, const char *z, int N){ +SQLITE_API void sqlite3_str_append(sqlite3_str *p, const char *z, int N){ assert( z!=0 || N==0 ); assert( p->zText!=0 || p->nChar==0 || p->accError ); assert( N>=0 ); @@ -26721,8 +28037,8 @@ SQLITE_PRIVATE void sqlite3StrAccumAppend(StrAccum *p, const char *z, int N){ /* ** Append the complete text of zero-terminated string z[] to the p string. */ -SQLITE_PRIVATE void sqlite3StrAccumAppendAll(StrAccum *p, const char *z){ - sqlite3StrAccumAppend(p, z, sqlite3Strlen30(z)); +SQLITE_API void sqlite3_str_appendall(sqlite3_str *p, const char *z){ + sqlite3_str_append(p, z, sqlite3Strlen30(z)); } @@ -26739,7 +28055,7 @@ static SQLITE_NOINLINE char *strAccumFinishRealloc(StrAccum *p){ memcpy(zText, p->zText, p->nChar+1); p->printfFlags |= SQLITE_PRINTF_MALLOCED; }else{ - setStrAccumError(p, STRACCUM_NOMEM); + setStrAccumError(p, SQLITE_NOMEM); } p->zText = zText; return zText; @@ -26754,14 +28070,56 @@ SQLITE_PRIVATE char *sqlite3StrAccumFinish(StrAccum *p){ return p->zText; } +/* +** This singleton is an sqlite3_str object that is returned if +** sqlite3_malloc() fails to provide space for a real one. This +** sqlite3_str object accepts no new text and always returns +** an SQLITE_NOMEM error. +*/ +static sqlite3_str sqlite3OomStr = { + 0, 0, 0, 0, 0, SQLITE_NOMEM, 0 +}; + +/* Finalize a string created using sqlite3_str_new(). +*/ +SQLITE_API char *sqlite3_str_finish(sqlite3_str *p){ + char *z; + if( p!=0 && p!=&sqlite3OomStr ){ + z = sqlite3StrAccumFinish(p); + sqlite3_free(p); + }else{ + z = 0; + } + return z; +} + +/* Return any error code associated with p */ +SQLITE_API int sqlite3_str_errcode(sqlite3_str *p){ + return p ? p->accError : SQLITE_NOMEM; +} + +/* Return the current length of p in bytes */ +SQLITE_API int sqlite3_str_length(sqlite3_str *p){ + return p ? p->nChar : 0; +} + +/* Return the current value for p */ +SQLITE_API char *sqlite3_str_value(sqlite3_str *p){ + if( p==0 || p->nChar==0 ) return 0; + p->zText[p->nChar] = 0; + return p->zText; +} + /* ** Reset an StrAccum string. Reclaim all malloced memory. */ -SQLITE_PRIVATE void sqlite3StrAccumReset(StrAccum *p){ +SQLITE_API void sqlite3_str_reset(StrAccum *p){ if( isMalloced(p) ){ sqlite3DbFree(p->db, p->zText); p->printfFlags &= ~SQLITE_PRINTF_MALLOCED; } + p->nAlloc = 0; + p->nChar = 0; p->zText = 0; } @@ -26789,6 +28147,18 @@ SQLITE_PRIVATE void sqlite3StrAccumInit(StrAccum *p, sqlite3 *db, char *zBase, i p->printfFlags = 0; } +/* Allocate and initialize a new dynamic string object */ +SQLITE_API sqlite3_str *sqlite3_str_new(sqlite3 *db){ + sqlite3_str *p = sqlite3_malloc64(sizeof(*p)); + if( p ){ + sqlite3StrAccumInit(p, 0, 0, 0, + db ? db->aLimit[SQLITE_LIMIT_LENGTH] : SQLITE_MAX_LENGTH); + }else{ + p = &sqlite3OomStr; + } + return p; +} + /* ** Print into memory obtained from sqliteMalloc(). Use the internal ** %-conversion extensions. @@ -26801,9 +28171,9 @@ SQLITE_PRIVATE char *sqlite3VMPrintf(sqlite3 *db, const char *zFormat, va_list a sqlite3StrAccumInit(&acc, db, zBase, sizeof(zBase), db->aLimit[SQLITE_LIMIT_LENGTH]); acc.printfFlags = SQLITE_PRINTF_INTERNAL; - sqlite3VXPrintf(&acc, zFormat, ap); + sqlite3_str_vappendf(&acc, zFormat, ap); z = sqlite3StrAccumFinish(&acc); - if( acc.accError==STRACCUM_NOMEM ){ + if( acc.accError==SQLITE_NOMEM ){ sqlite3OomFault(db); } return z; @@ -26841,7 +28211,7 @@ SQLITE_API char *sqlite3_vmprintf(const char *zFormat, va_list ap){ if( sqlite3_initialize() ) return 0; #endif sqlite3StrAccumInit(&acc, 0, zBase, sizeof(zBase), SQLITE_MAX_LENGTH); - sqlite3VXPrintf(&acc, zFormat, ap); + sqlite3_str_vappendf(&acc, zFormat, ap); z = sqlite3StrAccumFinish(&acc); return z; } @@ -26886,7 +28256,7 @@ SQLITE_API char *sqlite3_vsnprintf(int n, char *zBuf, const char *zFormat, va_li } #endif sqlite3StrAccumInit(&acc, 0, zBuf, n, 0); - sqlite3VXPrintf(&acc, zFormat, ap); + sqlite3_str_vappendf(&acc, zFormat, ap); zBuf[acc.nChar] = 0; return zBuf; } @@ -26908,7 +28278,7 @@ SQLITE_API char *sqlite3_snprintf(int n, char *zBuf, const char *zFormat, ...){ ** allocate memory because it might be called while the memory allocator ** mutex is held. ** -** sqlite3VXPrintf() might ask for *temporary* memory allocations for +** sqlite3_str_vappendf() might ask for *temporary* memory allocations for ** certain format characters (%q) or for very large precisions or widths. ** Care must be taken that any sqlite3_log() calls that occur while the ** memory mutex is held do not use these mechanisms. @@ -26918,7 +28288,7 @@ static void renderLogMsg(int iErrCode, const char *zFormat, va_list ap){ char zMsg[SQLITE_PRINT_BUF_SIZE*3]; /* Complete log message */ sqlite3StrAccumInit(&acc, 0, zMsg, sizeof(zMsg), 0); - sqlite3VXPrintf(&acc, zFormat, ap); + sqlite3_str_vappendf(&acc, zFormat, ap); sqlite3GlobalConfig.xLog(sqlite3GlobalConfig.pLogArg, iErrCode, sqlite3StrAccumFinish(&acc)); } @@ -26947,7 +28317,7 @@ SQLITE_PRIVATE void sqlite3DebugPrintf(const char *zFormat, ...){ char zBuf[500]; sqlite3StrAccumInit(&acc, 0, zBuf, sizeof(zBuf), 0); va_start(ap,zFormat); - sqlite3VXPrintf(&acc, zFormat, ap); + sqlite3_str_vappendf(&acc, zFormat, ap); va_end(ap); sqlite3StrAccumFinish(&acc); #ifdef SQLITE_OS_TRACE_PROC @@ -26964,13 +28334,13 @@ SQLITE_PRIVATE void sqlite3DebugPrintf(const char *zFormat, ...){ /* -** variable-argument wrapper around sqlite3VXPrintf(). The bFlags argument +** variable-argument wrapper around sqlite3_str_vappendf(). The bFlags argument ** can contain the bit SQLITE_PRINTF_INTERNAL enable internal formats. */ -SQLITE_PRIVATE void sqlite3XPrintf(StrAccum *p, const char *zFormat, ...){ +SQLITE_API void sqlite3_str_appendf(StrAccum *p, const char *zFormat, ...){ va_list ap; va_start(ap,zFormat); - sqlite3VXPrintf(p, zFormat, ap); + sqlite3_str_vappendf(p, zFormat, ap); va_end(ap); } @@ -27036,15 +28406,17 @@ static void sqlite3TreeViewLine(TreeView *p, const char *zFormat, ...){ sqlite3StrAccumInit(&acc, 0, zBuf, sizeof(zBuf), 0); if( p ){ for(i=0; iiLevel && ibLine)-1; i++){ - sqlite3StrAccumAppend(&acc, p->bLine[i] ? "| " : " ", 4); + sqlite3_str_append(&acc, p->bLine[i] ? "| " : " ", 4); } - sqlite3StrAccumAppend(&acc, p->bLine[i] ? "|-- " : "'-- ", 4); + sqlite3_str_append(&acc, p->bLine[i] ? "|-- " : "'-- ", 4); + } + if( zFormat!=0 ){ + va_start(ap, zFormat); + sqlite3_str_vappendf(&acc, zFormat, ap); + va_end(ap); + assert( acc.nChar>0 ); + sqlite3_str_append(&acc, "\n", 1); } - va_start(ap, zFormat); - sqlite3VXPrintf(&acc, zFormat, ap); - va_end(ap); - assert( acc.nChar>0 ); - if( zBuf[acc.nChar-1]!='\n' ) sqlite3StrAccumAppend(&acc, "\n", 1); sqlite3StrAccumFinish(&acc); fprintf(stdout,"%s", zBuf); fflush(stdout); @@ -27077,17 +28449,17 @@ SQLITE_PRIVATE void sqlite3TreeViewWith(TreeView *pView, const With *pWith, u8 m char zLine[1000]; const struct Cte *pCte = &pWith->a[i]; sqlite3StrAccumInit(&x, 0, zLine, sizeof(zLine), 0); - sqlite3XPrintf(&x, "%s", pCte->zName); + sqlite3_str_appendf(&x, "%s", pCte->zName); if( pCte->pCols && pCte->pCols->nExpr>0 ){ char cSep = '('; int j; for(j=0; jpCols->nExpr; j++){ - sqlite3XPrintf(&x, "%c%s", cSep, pCte->pCols->a[j].zName); + sqlite3_str_appendf(&x, "%c%s", cSep, pCte->pCols->a[j].zName); cSep = ','; } - sqlite3XPrintf(&x, ")"); + sqlite3_str_appendf(&x, ")"); } - sqlite3XPrintf(&x, " AS"); + sqlite3_str_appendf(&x, " AS"); sqlite3StrAccumFinish(&x); sqlite3TreeViewItem(pView, zLine, inCte-1); sqlite3TreeViewSelect(pView, pCte->pSelect, 0); @@ -27097,6 +28469,42 @@ SQLITE_PRIVATE void sqlite3TreeViewWith(TreeView *pView, const With *pWith, u8 m } } +/* +** Generate a human-readable description of a SrcList object. +*/ +SQLITE_PRIVATE void sqlite3TreeViewSrcList(TreeView *pView, const SrcList *pSrc){ + int i; + for(i=0; inSrc; i++){ + const struct SrcList_item *pItem = &pSrc->a[i]; + StrAccum x; + char zLine[100]; + sqlite3StrAccumInit(&x, 0, zLine, sizeof(zLine), 0); + sqlite3_str_appendf(&x, "{%d,*}", pItem->iCursor); + if( pItem->zDatabase ){ + sqlite3_str_appendf(&x, " %s.%s", pItem->zDatabase, pItem->zName); + }else if( pItem->zName ){ + sqlite3_str_appendf(&x, " %s", pItem->zName); + } + if( pItem->pTab ){ + sqlite3_str_appendf(&x, " tabname=%Q", pItem->pTab->zName); + } + if( pItem->zAlias ){ + sqlite3_str_appendf(&x, " (AS %s)", pItem->zAlias); + } + if( pItem->fg.jointype & JT_LEFT ){ + sqlite3_str_appendf(&x, " LEFT-JOIN"); + } + sqlite3StrAccumFinish(&x); + sqlite3TreeViewItem(pView, zLine, inSrc-1); + if( pItem->pSelect ){ + sqlite3TreeViewSelect(pView, pItem->pSelect, 0); + } + if( pItem->fg.isTabFunc ){ + sqlite3TreeViewExprList(pView, pItem->u1.pFuncArg, 0, "func-args:"); + } + sqlite3TreeViewPop(pView); + } +} /* ** Generate a human-readable description of a Select object. @@ -27115,9 +28523,11 @@ SQLITE_PRIVATE void sqlite3TreeViewSelect(TreeView *pView, const Select *p, u8 m sqlite3TreeViewPush(pView, 1); } do{ - sqlite3TreeViewLine(pView, "SELECT%s%s (0x%p) selFlags=0x%x nSelectRow=%d", + sqlite3TreeViewLine(pView, + "SELECT%s%s (%u/%p) selFlags=0x%x nSelectRow=%d", ((p->selFlags & SF_Distinct) ? " DISTINCT" : ""), - ((p->selFlags & SF_Aggregate) ? " agg_flag" : ""), p, p->selFlags, + ((p->selFlags & SF_Aggregate) ? " agg_flag" : ""), + p->selId, p, p->selFlags, (int)p->nSelectRow ); if( cnt++ ) sqlite3TreeViewPop(pView); @@ -27131,42 +28541,27 @@ SQLITE_PRIVATE void sqlite3TreeViewSelect(TreeView *pView, const Select *p, u8 m if( p->pHaving ) n++; if( p->pOrderBy ) n++; if( p->pLimit ) n++; +#ifndef SQLITE_OMIT_WINDOWFUNC + if( p->pWin ) n++; + if( p->pWinDefn ) n++; +#endif } sqlite3TreeViewExprList(pView, p->pEList, (n--)>0, "result-set"); +#ifndef SQLITE_OMIT_WINDOWFUNC + if( p->pWin ){ + Window *pX; + pView = sqlite3TreeViewPush(pView, (n--)>0); + sqlite3TreeViewLine(pView, "window-functions"); + for(pX=p->pWin; pX; pX=pX->pNextWin){ + sqlite3TreeViewWinFunc(pView, pX, pX->pNextWin!=0); + } + sqlite3TreeViewPop(pView); + } +#endif if( p->pSrc && p->pSrc->nSrc ){ - int i; pView = sqlite3TreeViewPush(pView, (n--)>0); sqlite3TreeViewLine(pView, "FROM"); - for(i=0; ipSrc->nSrc; i++){ - struct SrcList_item *pItem = &p->pSrc->a[i]; - StrAccum x; - char zLine[100]; - sqlite3StrAccumInit(&x, 0, zLine, sizeof(zLine), 0); - sqlite3XPrintf(&x, "{%d,*}", pItem->iCursor); - if( pItem->zDatabase ){ - sqlite3XPrintf(&x, " %s.%s", pItem->zDatabase, pItem->zName); - }else if( pItem->zName ){ - sqlite3XPrintf(&x, " %s", pItem->zName); - } - if( pItem->pTab ){ - sqlite3XPrintf(&x, " tabname=%Q", pItem->pTab->zName); - } - if( pItem->zAlias ){ - sqlite3XPrintf(&x, " (AS %s)", pItem->zAlias); - } - if( pItem->fg.jointype & JT_LEFT ){ - sqlite3XPrintf(&x, " LEFT-JOIN"); - } - sqlite3StrAccumFinish(&x); - sqlite3TreeViewItem(pView, zLine, ipSrc->nSrc-1); - if( pItem->pSelect ){ - sqlite3TreeViewSelect(pView, pItem->pSelect, 0); - } - if( pItem->fg.isTabFunc ){ - sqlite3TreeViewExprList(pView, pItem->u1.pFuncArg, 0, "func-args:"); - } - sqlite3TreeViewPop(pView); - } + sqlite3TreeViewSrcList(pView, p->pSrc); sqlite3TreeViewPop(pView); } if( p->pWhere ){ @@ -27182,6 +28577,16 @@ SQLITE_PRIVATE void sqlite3TreeViewSelect(TreeView *pView, const Select *p, u8 m sqlite3TreeViewExpr(pView, p->pHaving, 0); sqlite3TreeViewPop(pView); } +#ifndef SQLITE_OMIT_WINDOWFUNC + if( p->pWinDefn ){ + Window *pX; + sqlite3TreeViewItem(pView, "WINDOW", (n--)>0); + for(pX=p->pWinDefn; pX; pX=pX->pNextWin){ + sqlite3TreeViewWindow(pView, pX, pX->pNextWin!=0); + } + sqlite3TreeViewPop(pView); + } +#endif if( p->pOrderBy ){ sqlite3TreeViewExprList(pView, p->pOrderBy, (n--)>0, "ORDERBY"); } @@ -27209,6 +28614,83 @@ SQLITE_PRIVATE void sqlite3TreeViewSelect(TreeView *pView, const Select *p, u8 m sqlite3TreeViewPop(pView); } +#ifndef SQLITE_OMIT_WINDOWFUNC +/* +** Generate a description of starting or stopping bounds +*/ +SQLITE_PRIVATE void sqlite3TreeViewBound( + TreeView *pView, /* View context */ + u8 eBound, /* UNBOUNDED, CURRENT, PRECEDING, FOLLOWING */ + Expr *pExpr, /* Value for PRECEDING or FOLLOWING */ + u8 moreToFollow /* True if more to follow */ +){ + switch( eBound ){ + case TK_UNBOUNDED: { + sqlite3TreeViewItem(pView, "UNBOUNDED", moreToFollow); + sqlite3TreeViewPop(pView); + break; + } + case TK_CURRENT: { + sqlite3TreeViewItem(pView, "CURRENT", moreToFollow); + sqlite3TreeViewPop(pView); + break; + } + case TK_PRECEDING: { + sqlite3TreeViewItem(pView, "PRECEDING", moreToFollow); + sqlite3TreeViewExpr(pView, pExpr, 0); + sqlite3TreeViewPop(pView); + break; + } + case TK_FOLLOWING: { + sqlite3TreeViewItem(pView, "FOLLOWING", moreToFollow); + sqlite3TreeViewExpr(pView, pExpr, 0); + sqlite3TreeViewPop(pView); + break; + } + } +} +#endif /* SQLITE_OMIT_WINDOWFUNC */ + +#ifndef SQLITE_OMIT_WINDOWFUNC +/* +** Generate a human-readable explanation for a Window object +*/ +SQLITE_PRIVATE void sqlite3TreeViewWindow(TreeView *pView, const Window *pWin, u8 more){ + pView = sqlite3TreeViewPush(pView, more); + if( pWin->zName ){ + sqlite3TreeViewLine(pView, "OVER %s", pWin->zName); + }else{ + sqlite3TreeViewLine(pView, "OVER"); + } + if( pWin->pPartition ){ + sqlite3TreeViewExprList(pView, pWin->pPartition, 1, "PARTITION-BY"); + } + if( pWin->pOrderBy ){ + sqlite3TreeViewExprList(pView, pWin->pOrderBy, 1, "ORDER-BY"); + } + if( pWin->eType ){ + sqlite3TreeViewItem(pView, pWin->eType==TK_RANGE ? "RANGE" : "ROWS", 0); + sqlite3TreeViewBound(pView, pWin->eStart, pWin->pStart, 1); + sqlite3TreeViewBound(pView, pWin->eEnd, pWin->pEnd, 0); + sqlite3TreeViewPop(pView); + } + sqlite3TreeViewPop(pView); +} +#endif /* SQLITE_OMIT_WINDOWFUNC */ + +#ifndef SQLITE_OMIT_WINDOWFUNC +/* +** Generate a human-readable explanation for a Window Function object +*/ +SQLITE_PRIVATE void sqlite3TreeViewWinFunc(TreeView *pView, const Window *pWin, u8 more){ + pView = sqlite3TreeViewPush(pView, more); + sqlite3TreeViewLine(pView, "WINFUNC %s(%d)", + pWin->pFunc->zName, pWin->pFunc->nArg); + sqlite3TreeViewWindow(pView, pWin, 0); + sqlite3TreeViewPop(pView); +} +#endif /* SQLITE_OMIT_WINDOWFUNC */ + /* ** Generate a human-readable explanation of an expression tree. */ @@ -27246,6 +28728,9 @@ SQLITE_PRIVATE void sqlite3TreeViewExpr(TreeView *pView, const Expr *pExpr, u8 m sqlite3TreeViewLine(pView, "{%d:%d}%s", pExpr->iTable, pExpr->iColumn, zFlgs); } + if( ExprHasProperty(pExpr, EP_FixedCol) ){ + sqlite3TreeViewExpr(pView, pExpr->pLeft, 0); + } break; } case TK_INTEGER: { @@ -27270,6 +28755,11 @@ SQLITE_PRIVATE void sqlite3TreeViewExpr(TreeView *pView, const Expr *pExpr, u8 m sqlite3TreeViewLine(pView,"NULL"); break; } + case TK_TRUEFALSE: { + sqlite3TreeViewLine(pView, + sqlite3ExprTruthValue(pExpr) ? "TRUE" : "FALSE"); + break; + } #ifndef SQLITE_OMIT_BLOB_LITERAL case TK_BLOB: { sqlite3TreeViewLine(pView,"%s", pExpr->u.zToken); @@ -27326,6 +28816,19 @@ SQLITE_PRIVATE void sqlite3TreeViewExpr(TreeView *pView, const Expr *pExpr, u8 m case TK_ISNULL: zUniOp = "ISNULL"; break; case TK_NOTNULL: zUniOp = "NOTNULL"; break; + case TK_TRUTH: { + int x; + const char *azOp[] = { + "IS-FALSE", "IS-TRUE", "IS-NOT-FALSE", "IS-NOT-TRUE" + }; + assert( pExpr->op2==TK_IS || pExpr->op2==TK_ISNOT ); + assert( pExpr->pRight ); + assert( pExpr->pRight->op==TK_TRUEFALSE ); + x = (pExpr->op2==TK_ISNOT)*2 + sqlite3ExprTruthValue(pExpr->pRight); + zUniOp = azOp[x]; + break; + } + case TK_SPAN: { sqlite3TreeViewLine(pView, "SPAN %Q", pExpr->u.zToken); sqlite3TreeViewExpr(pView, pExpr->pLeft, 0); @@ -27341,10 +28844,17 @@ SQLITE_PRIVATE void sqlite3TreeViewExpr(TreeView *pView, const Expr *pExpr, u8 m case TK_AGG_FUNCTION: case TK_FUNCTION: { ExprList *pFarg; /* List of function arguments */ + Window *pWin; if( ExprHasProperty(pExpr, EP_TokenOnly) ){ pFarg = 0; + pWin = 0; }else{ pFarg = pExpr->x.pList; +#ifndef SQLITE_OMIT_WINDOWFUNC + pWin = pExpr->y.pWin; +#else + pWin = 0; +#endif } if( pExpr->op==TK_AGG_FUNCTION ){ sqlite3TreeViewLine(pView, "AGG_FUNCTION%d %Q", @@ -27353,8 +28863,13 @@ SQLITE_PRIVATE void sqlite3TreeViewExpr(TreeView *pView, const Expr *pExpr, u8 m sqlite3TreeViewLine(pView, "FUNCTION %Q", pExpr->u.zToken); } if( pFarg ){ - sqlite3TreeViewExprList(pView, pFarg, 0, 0); + sqlite3TreeViewExprList(pView, pFarg, pWin!=0, 0); + } +#ifndef SQLITE_OMIT_WINDOWFUNC + if( pWin ){ + sqlite3TreeViewWindow(pView, pWin, 0); } +#endif break; } #ifndef SQLITE_OMIT_SUBQUERY @@ -27486,16 +29001,21 @@ SQLITE_PRIVATE void sqlite3TreeViewBareExprList( for(i=0; inExpr; i++){ int j = pList->a[i].u.x.iOrderByCol; char *zName = pList->a[i].zName; + int moreToFollow = inExpr - 1; if( j || zName ){ - sqlite3TreeViewPush(pView, 0); - } - if( zName ){ - sqlite3TreeViewLine(pView, "AS %s", zName); - } - if( j ){ - sqlite3TreeViewLine(pView, "iOrderByCol=%d", j); + sqlite3TreeViewPush(pView, moreToFollow); + moreToFollow = 0; + sqlite3TreeViewLine(pView, 0); + if( zName ){ + fprintf(stdout, "AS %s ", zName); + } + if( j ){ + fprintf(stdout, "iOrderByCol=%d", j); + } + fprintf(stdout, "\n"); + fflush(stdout); } - sqlite3TreeViewExpr(pView, pList->a[i].pExpr, inExpr-1); + sqlite3TreeViewExpr(pView, pList->a[i].pExpr, moreToFollow); if( j || zName ){ sqlite3TreeViewPop(pView); } @@ -29063,7 +30583,7 @@ static int compare2pow63(const char *zNum, int incr){ ** Returns: ** ** 0 Successful transformation. Fits in a 64-bit signed integer. -** 1 Excess text after the integer value +** 1 Excess non-space text after the integer value ** 2 Integer too large for a 64-bit signed integer or is malformed ** 3 Special case of 9223372036854775808 ** @@ -29106,47 +30626,57 @@ SQLITE_PRIVATE int sqlite3Atoi64(const char *zNum, i64 *pNum, int length, u8 enc for(i=0; &zNum[i]='0' && c<='9'; i+=incr){ u = u*10 + c - '0'; } + testcase( i==18*incr ); + testcase( i==19*incr ); + testcase( i==20*incr ); if( u>LARGEST_INT64 ){ + /* This test and assignment is needed only to suppress UB warnings + ** from clang and -fsanitize=undefined. This test and assignment make + ** the code a little larger and slower, and no harm comes from omitting + ** them, but we must appaise the undefined-behavior pharisees. */ *pNum = neg ? SMALLEST_INT64 : LARGEST_INT64; }else if( neg ){ *pNum = -(i64)u; }else{ *pNum = (i64)u; } - testcase( i==18 ); - testcase( i==19 ); - testcase( i==20 ); - if( &zNum[i]19*incr ){ /* Too many digits */ - /* zNum is empty or contains non-numeric text or is longer - ** than 19 digits (thus guaranteeing that it is too large) */ - return 2; - }else if( i<19*incr ){ + if( i<19*incr ){ /* Less than 19 digits, so we know that it fits in 64 bits */ assert( u<=LARGEST_INT64 ); return rc; }else{ /* zNum is a 19-digit numbers. Compare it against 9223372036854775808. */ - c = compare2pow63(zNum, incr); + c = i>19*incr ? 1 : compare2pow63(zNum, incr); if( c<0 ){ /* zNum is less than 9223372036854775808 so it fits */ assert( u<=LARGEST_INT64 ); return rc; - }else if( c>0 ){ - /* zNum is greater than 9223372036854775808 so it overflows */ - return 2; }else{ - /* zNum is exactly 9223372036854775808. Fits if negative. The - ** special case 2 overflow if positive */ - assert( u-1==LARGEST_INT64 ); - return neg ? rc : 3; + *pNum = neg ? SMALLEST_INT64 : LARGEST_INT64; + if( c>0 ){ + /* zNum is greater than 9223372036854775808 so it overflows */ + return 2; + }else{ + /* zNum is exactly 9223372036854775808. Fits if negative. The + ** special case 2 overflow if positive */ + assert( u-1==LARGEST_INT64 ); + return neg ? rc : 3; + } } } } @@ -30149,6 +31679,20 @@ static unsigned int strHash(const char *z){ } return h; } +#ifdef SQLITE_ENABLE_NORMALIZE +static unsigned int strHashN(const char *z, int n){ + unsigned int h = 0; + int i; + for(i=0; iht ){ /*OPTIMIZATION-IF-TRUE*/ + struct _ht *pEntry; + h = strHashN(pKey, nKey) % pH->htsize; + pEntry = &pH->ht[h]; + elem = pEntry->chain; + count = pEntry->count; + }else{ + h = 0; + elem = pH->first; + count = pH->count; + } + if( pHash ) *pHash = h; + while( count-- ){ + assert( elem!=0 ); + if( sqlite3StrNICmp(elem->pKey,pKey,nKey)==0 ){ + return elem; + } + elem = elem->next; + } + return &nullElement; +} +#endif /* SQLITE_ENABLE_NORMALIZE */ /* Remove a single entry from the hash table given a pointer to that ** element and a hash on the element's key. @@ -30304,6 +31882,14 @@ SQLITE_PRIVATE void *sqlite3HashFind(const Hash *pH, const char *pKey){ assert( pKey!=0 ); return findElementWithHash(pH, pKey, 0)->data; } +#ifdef SQLITE_ENABLE_NORMALIZE +SQLITE_PRIVATE void *sqlite3HashFindN(const Hash *pH, const char *pKey, int nKey){ + assert( pH!=0 ); + assert( pKey!=0 ); + assert( nKey>=0 ); + return findElementWithHashN(pH, pKey, nKey, 0)->data; +} +#endif /* SQLITE_ENABLE_NORMALIZE */ /* Insert an element into the hash table pH. The key is pKey ** and the data is "data". @@ -30371,52 +31957,52 @@ SQLITE_PRIVATE const char *sqlite3OpcodeName(int i){ /* 1 */ "AutoCommit" OpHelp(""), /* 2 */ "Transaction" OpHelp(""), /* 3 */ "SorterNext" OpHelp(""), - /* 4 */ "PrevIfOpen" OpHelp(""), - /* 5 */ "NextIfOpen" OpHelp(""), - /* 6 */ "Prev" OpHelp(""), - /* 7 */ "Next" OpHelp(""), - /* 8 */ "Checkpoint" OpHelp(""), - /* 9 */ "JournalMode" OpHelp(""), - /* 10 */ "Vacuum" OpHelp(""), - /* 11 */ "VFilter" OpHelp("iplan=r[P3] zplan='P4'"), - /* 12 */ "VUpdate" OpHelp("data=r[P3@P2]"), - /* 13 */ "Goto" OpHelp(""), - /* 14 */ "Gosub" OpHelp(""), - /* 15 */ "InitCoroutine" OpHelp(""), - /* 16 */ "Yield" OpHelp(""), - /* 17 */ "MustBeInt" OpHelp(""), - /* 18 */ "Jump" OpHelp(""), + /* 4 */ "Prev" OpHelp(""), + /* 5 */ "Next" OpHelp(""), + /* 6 */ "Checkpoint" OpHelp(""), + /* 7 */ "JournalMode" OpHelp(""), + /* 8 */ "Vacuum" OpHelp(""), + /* 9 */ "VFilter" OpHelp("iplan=r[P3] zplan='P4'"), + /* 10 */ "VUpdate" OpHelp("data=r[P3@P2]"), + /* 11 */ "Goto" OpHelp(""), + /* 12 */ "Gosub" OpHelp(""), + /* 13 */ "InitCoroutine" OpHelp(""), + /* 14 */ "Yield" OpHelp(""), + /* 15 */ "MustBeInt" OpHelp(""), + /* 16 */ "Jump" OpHelp(""), + /* 17 */ "Once" OpHelp(""), + /* 18 */ "If" OpHelp(""), /* 19 */ "Not" OpHelp("r[P2]= !r[P1]"), - /* 20 */ "Once" OpHelp(""), - /* 21 */ "If" OpHelp(""), - /* 22 */ "IfNot" OpHelp(""), - /* 23 */ "IfNullRow" OpHelp("if P1.nullRow then r[P3]=NULL, goto P2"), - /* 24 */ "SeekLT" OpHelp("key=r[P3@P4]"), - /* 25 */ "SeekLE" OpHelp("key=r[P3@P4]"), - /* 26 */ "SeekGE" OpHelp("key=r[P3@P4]"), - /* 27 */ "SeekGT" OpHelp("key=r[P3@P4]"), - /* 28 */ "NoConflict" OpHelp("key=r[P3@P4]"), - /* 29 */ "NotFound" OpHelp("key=r[P3@P4]"), - /* 30 */ "Found" OpHelp("key=r[P3@P4]"), - /* 31 */ "SeekRowid" OpHelp("intkey=r[P3]"), - /* 32 */ "NotExists" OpHelp("intkey=r[P3]"), - /* 33 */ "Last" OpHelp(""), - /* 34 */ "IfSmaller" OpHelp(""), - /* 35 */ "SorterSort" OpHelp(""), - /* 36 */ "Sort" OpHelp(""), - /* 37 */ "Rewind" OpHelp(""), - /* 38 */ "IdxLE" OpHelp("key=r[P3@P4]"), - /* 39 */ "IdxGT" OpHelp("key=r[P3@P4]"), - /* 40 */ "IdxLT" OpHelp("key=r[P3@P4]"), - /* 41 */ "IdxGE" OpHelp("key=r[P3@P4]"), - /* 42 */ "RowSetRead" OpHelp("r[P3]=rowset(P1)"), + /* 20 */ "IfNot" OpHelp(""), + /* 21 */ "IfNullRow" OpHelp("if P1.nullRow then r[P3]=NULL, goto P2"), + /* 22 */ "SeekLT" OpHelp("key=r[P3@P4]"), + /* 23 */ "SeekLE" OpHelp("key=r[P3@P4]"), + /* 24 */ "SeekGE" OpHelp("key=r[P3@P4]"), + /* 25 */ "SeekGT" OpHelp("key=r[P3@P4]"), + /* 26 */ "IfNoHope" OpHelp("key=r[P3@P4]"), + /* 27 */ "NoConflict" OpHelp("key=r[P3@P4]"), + /* 28 */ "NotFound" OpHelp("key=r[P3@P4]"), + /* 29 */ "Found" OpHelp("key=r[P3@P4]"), + /* 30 */ "SeekRowid" OpHelp("intkey=r[P3]"), + /* 31 */ "NotExists" OpHelp("intkey=r[P3]"), + /* 32 */ "Last" OpHelp(""), + /* 33 */ "IfSmaller" OpHelp(""), + /* 34 */ "SorterSort" OpHelp(""), + /* 35 */ "Sort" OpHelp(""), + /* 36 */ "Rewind" OpHelp(""), + /* 37 */ "IdxLE" OpHelp("key=r[P3@P4]"), + /* 38 */ "IdxGT" OpHelp("key=r[P3@P4]"), + /* 39 */ "IdxLT" OpHelp("key=r[P3@P4]"), + /* 40 */ "IdxGE" OpHelp("key=r[P3@P4]"), + /* 41 */ "RowSetRead" OpHelp("r[P3]=rowset(P1)"), + /* 42 */ "RowSetTest" OpHelp("if r[P3] in rowset(P1) goto P2"), /* 43 */ "Or" OpHelp("r[P3]=(r[P1] || r[P2])"), /* 44 */ "And" OpHelp("r[P3]=(r[P1] && r[P2])"), - /* 45 */ "RowSetTest" OpHelp("if r[P3] in rowset(P1) goto P2"), - /* 46 */ "Program" OpHelp(""), - /* 47 */ "FkIfZero" OpHelp("if fkctr[P1]==0 goto P2"), - /* 48 */ "IfPos" OpHelp("if r[P1]>0 then r[P1]-=P3, goto P2"), - /* 49 */ "IfNotZero" OpHelp("if r[P1]!=0 then r[P1]--, goto P2"), + /* 45 */ "Program" OpHelp(""), + /* 46 */ "FkIfZero" OpHelp("if fkctr[P1]==0 goto P2"), + /* 47 */ "IfPos" OpHelp("if r[P1]>0 then r[P1]-=P3, goto P2"), + /* 48 */ "IfNotZero" OpHelp("if r[P1]!=0 then r[P1]--, goto P2"), + /* 49 */ "DecrJumpZero" OpHelp("if (--r[P1])==0 goto P2"), /* 50 */ "IsNull" OpHelp("if r[P1]==NULL goto P2"), /* 51 */ "NotNull" OpHelp("if r[P1]!=NULL goto P2"), /* 52 */ "Ne" OpHelp("IF r[P3]!=r[P1]"), @@ -30426,117 +32012,121 @@ SQLITE_PRIVATE const char *sqlite3OpcodeName(int i){ /* 56 */ "Lt" OpHelp("IF r[P3]=r[P1]"), /* 58 */ "ElseNotEq" OpHelp(""), - /* 59 */ "DecrJumpZero" OpHelp("if (--r[P1])==0 goto P2"), - /* 60 */ "IncrVacuum" OpHelp(""), - /* 61 */ "VNext" OpHelp(""), - /* 62 */ "Init" OpHelp("Start at P2"), - /* 63 */ "Return" OpHelp(""), - /* 64 */ "EndCoroutine" OpHelp(""), - /* 65 */ "HaltIfNull" OpHelp("if r[P3]=null halt"), - /* 66 */ "Halt" OpHelp(""), - /* 67 */ "Integer" OpHelp("r[P2]=P1"), - /* 68 */ "Int64" OpHelp("r[P2]=P4"), - /* 69 */ "String" OpHelp("r[P2]='P4' (len=P1)"), - /* 70 */ "Null" OpHelp("r[P2..P3]=NULL"), - /* 71 */ "SoftNull" OpHelp("r[P1]=NULL"), - /* 72 */ "Blob" OpHelp("r[P2]=P4 (len=P1)"), - /* 73 */ "Variable" OpHelp("r[P2]=parameter(P1,P4)"), - /* 74 */ "Move" OpHelp("r[P2@P3]=r[P1@P3]"), - /* 75 */ "Copy" OpHelp("r[P2@P3+1]=r[P1@P3+1]"), - /* 76 */ "SCopy" OpHelp("r[P2]=r[P1]"), - /* 77 */ "IntCopy" OpHelp("r[P2]=r[P1]"), - /* 78 */ "ResultRow" OpHelp("output=r[P1@P2]"), - /* 79 */ "CollSeq" OpHelp(""), - /* 80 */ "AddImm" OpHelp("r[P1]=r[P1]+P2"), - /* 81 */ "RealAffinity" OpHelp(""), - /* 82 */ "Cast" OpHelp("affinity(r[P1])"), - /* 83 */ "Permutation" OpHelp(""), - /* 84 */ "BitAnd" OpHelp("r[P3]=r[P1]&r[P2]"), - /* 85 */ "BitOr" OpHelp("r[P3]=r[P1]|r[P2]"), - /* 86 */ "ShiftLeft" OpHelp("r[P3]=r[P2]<>r[P1]"), - /* 88 */ "Add" OpHelp("r[P3]=r[P1]+r[P2]"), - /* 89 */ "Subtract" OpHelp("r[P3]=r[P2]-r[P1]"), - /* 90 */ "Multiply" OpHelp("r[P3]=r[P1]*r[P2]"), - /* 91 */ "Divide" OpHelp("r[P3]=r[P2]/r[P1]"), - /* 92 */ "Remainder" OpHelp("r[P3]=r[P2]%r[P1]"), - /* 93 */ "Concat" OpHelp("r[P3]=r[P2]+r[P1]"), - /* 94 */ "Compare" OpHelp("r[P1@P3] <-> r[P2@P3]"), - /* 95 */ "BitNot" OpHelp("r[P1]= ~r[P1]"), - /* 96 */ "Offset" OpHelp("r[P3] = sqlite_offset(P1)"), - /* 97 */ "String8" OpHelp("r[P2]='P4'"), - /* 98 */ "Column" OpHelp("r[P3]=PX"), - /* 99 */ "Affinity" OpHelp("affinity(r[P1@P2])"), - /* 100 */ "MakeRecord" OpHelp("r[P3]=mkrec(r[P1@P2])"), - /* 101 */ "Count" OpHelp("r[P2]=count()"), - /* 102 */ "ReadCookie" OpHelp(""), - /* 103 */ "SetCookie" OpHelp(""), - /* 104 */ "ReopenIdx" OpHelp("root=P2 iDb=P3"), - /* 105 */ "OpenRead" OpHelp("root=P2 iDb=P3"), - /* 106 */ "OpenWrite" OpHelp("root=P2 iDb=P3"), - /* 107 */ "OpenDup" OpHelp(""), - /* 108 */ "OpenAutoindex" OpHelp("nColumn=P2"), - /* 109 */ "OpenEphemeral" OpHelp("nColumn=P2"), - /* 110 */ "SorterOpen" OpHelp(""), - /* 111 */ "SequenceTest" OpHelp("if( cursor[P1].ctr++ ) pc = P2"), - /* 112 */ "OpenPseudo" OpHelp("P3 columns in r[P2]"), - /* 113 */ "Close" OpHelp(""), - /* 114 */ "ColumnsUsed" OpHelp(""), - /* 115 */ "Sequence" OpHelp("r[P2]=cursor[P1].ctr++"), - /* 116 */ "NewRowid" OpHelp("r[P2]=rowid"), - /* 117 */ "Insert" OpHelp("intkey=r[P3] data=r[P2]"), - /* 118 */ "InsertInt" OpHelp("intkey=P3 data=r[P2]"), - /* 119 */ "Delete" OpHelp(""), - /* 120 */ "ResetCount" OpHelp(""), - /* 121 */ "SorterCompare" OpHelp("if key(P1)!=trim(r[P3],P4) goto P2"), - /* 122 */ "SorterData" OpHelp("r[P2]=data"), - /* 123 */ "RowData" OpHelp("r[P2]=data"), - /* 124 */ "Rowid" OpHelp("r[P2]=rowid"), - /* 125 */ "NullRow" OpHelp(""), - /* 126 */ "SeekEnd" OpHelp(""), - /* 127 */ "SorterInsert" OpHelp("key=r[P2]"), - /* 128 */ "IdxInsert" OpHelp("key=r[P2]"), - /* 129 */ "IdxDelete" OpHelp("key=r[P2@P3]"), - /* 130 */ "DeferredSeek" OpHelp("Move P3 to P1.rowid if needed"), - /* 131 */ "IdxRowid" OpHelp("r[P2]=rowid"), - /* 132 */ "Real" OpHelp("r[P2]=P4"), - /* 133 */ "Destroy" OpHelp(""), - /* 134 */ "Clear" OpHelp(""), - /* 135 */ "ResetSorter" OpHelp(""), - /* 136 */ "CreateBtree" OpHelp("r[P2]=root iDb=P1 flags=P3"), - /* 137 */ "SqlExec" OpHelp(""), - /* 138 */ "ParseSchema" OpHelp(""), - /* 139 */ "LoadAnalysis" OpHelp(""), - /* 140 */ "DropTable" OpHelp(""), - /* 141 */ "DropIndex" OpHelp(""), - /* 142 */ "DropTrigger" OpHelp(""), - /* 143 */ "IntegrityCk" OpHelp(""), - /* 144 */ "RowSetAdd" OpHelp("rowset(P1)=r[P2]"), - /* 145 */ "Param" OpHelp(""), - /* 146 */ "FkCounter" OpHelp("fkctr[P1]+=P2"), - /* 147 */ "MemMax" OpHelp("r[P1]=max(r[P1],r[P2])"), - /* 148 */ "OffsetLimit" OpHelp("if r[P1]>0 then r[P2]=r[P1]+max(0,r[P3]) else r[P2]=(-1)"), - /* 149 */ "AggStep0" OpHelp("accum=r[P3] step(r[P2@P5])"), - /* 150 */ "AggStep" OpHelp("accum=r[P3] step(r[P2@P5])"), - /* 151 */ "AggFinal" OpHelp("accum=r[P1] N=P2"), - /* 152 */ "Expire" OpHelp(""), - /* 153 */ "TableLock" OpHelp("iDb=P1 root=P2 write=P3"), - /* 154 */ "VBegin" OpHelp(""), - /* 155 */ "VCreate" OpHelp(""), - /* 156 */ "VDestroy" OpHelp(""), - /* 157 */ "VOpen" OpHelp(""), - /* 158 */ "VColumn" OpHelp("r[P3]=vcolumn(P2)"), - /* 159 */ "VRename" OpHelp(""), - /* 160 */ "Pagecount" OpHelp(""), - /* 161 */ "MaxPgcnt" OpHelp(""), - /* 162 */ "PureFunc0" OpHelp(""), - /* 163 */ "Function0" OpHelp("r[P3]=func(r[P2@P5])"), - /* 164 */ "PureFunc" OpHelp(""), - /* 165 */ "Function" OpHelp("r[P3]=func(r[P2@P5])"), - /* 166 */ "Trace" OpHelp(""), - /* 167 */ "CursorHint" OpHelp(""), - /* 168 */ "Noop" OpHelp(""), - /* 169 */ "Explain" OpHelp(""), + /* 59 */ "IncrVacuum" OpHelp(""), + /* 60 */ "VNext" OpHelp(""), + /* 61 */ "Init" OpHelp("Start at P2"), + /* 62 */ "PureFunc0" OpHelp(""), + /* 63 */ "Function0" OpHelp("r[P3]=func(r[P2@P5])"), + /* 64 */ "PureFunc" OpHelp(""), + /* 65 */ "Function" OpHelp("r[P3]=func(r[P2@P5])"), + /* 66 */ "Return" OpHelp(""), + /* 67 */ "EndCoroutine" OpHelp(""), + /* 68 */ "HaltIfNull" OpHelp("if r[P3]=null halt"), + /* 69 */ "Halt" OpHelp(""), + /* 70 */ "Integer" OpHelp("r[P2]=P1"), + /* 71 */ "Int64" OpHelp("r[P2]=P4"), + /* 72 */ "String" OpHelp("r[P2]='P4' (len=P1)"), + /* 73 */ "Null" OpHelp("r[P2..P3]=NULL"), + /* 74 */ "SoftNull" OpHelp("r[P1]=NULL"), + /* 75 */ "Blob" OpHelp("r[P2]=P4 (len=P1)"), + /* 76 */ "Variable" OpHelp("r[P2]=parameter(P1,P4)"), + /* 77 */ "Move" OpHelp("r[P2@P3]=r[P1@P3]"), + /* 78 */ "Copy" OpHelp("r[P2@P3+1]=r[P1@P3+1]"), + /* 79 */ "SCopy" OpHelp("r[P2]=r[P1]"), + /* 80 */ "IntCopy" OpHelp("r[P2]=r[P1]"), + /* 81 */ "ResultRow" OpHelp("output=r[P1@P2]"), + /* 82 */ "CollSeq" OpHelp(""), + /* 83 */ "AddImm" OpHelp("r[P1]=r[P1]+P2"), + /* 84 */ "RealAffinity" OpHelp(""), + /* 85 */ "Cast" OpHelp("affinity(r[P1])"), + /* 86 */ "Permutation" OpHelp(""), + /* 87 */ "Compare" OpHelp("r[P1@P3] <-> r[P2@P3]"), + /* 88 */ "IsTrue" OpHelp("r[P2] = coalesce(r[P1]==TRUE,P3) ^ P4"), + /* 89 */ "Offset" OpHelp("r[P3] = sqlite_offset(P1)"), + /* 90 */ "Column" OpHelp("r[P3]=PX"), + /* 91 */ "Affinity" OpHelp("affinity(r[P1@P2])"), + /* 92 */ "BitAnd" OpHelp("r[P3]=r[P1]&r[P2]"), + /* 93 */ "BitOr" OpHelp("r[P3]=r[P1]|r[P2]"), + /* 94 */ "ShiftLeft" OpHelp("r[P3]=r[P2]<>r[P1]"), + /* 96 */ "Add" OpHelp("r[P3]=r[P1]+r[P2]"), + /* 97 */ "Subtract" OpHelp("r[P3]=r[P2]-r[P1]"), + /* 98 */ "Multiply" OpHelp("r[P3]=r[P1]*r[P2]"), + /* 99 */ "Divide" OpHelp("r[P3]=r[P2]/r[P1]"), + /* 100 */ "Remainder" OpHelp("r[P3]=r[P2]%r[P1]"), + /* 101 */ "Concat" OpHelp("r[P3]=r[P2]+r[P1]"), + /* 102 */ "MakeRecord" OpHelp("r[P3]=mkrec(r[P1@P2])"), + /* 103 */ "BitNot" OpHelp("r[P2]= ~r[P1]"), + /* 104 */ "Count" OpHelp("r[P2]=count()"), + /* 105 */ "ReadCookie" OpHelp(""), + /* 106 */ "String8" OpHelp("r[P2]='P4'"), + /* 107 */ "SetCookie" OpHelp(""), + /* 108 */ "ReopenIdx" OpHelp("root=P2 iDb=P3"), + /* 109 */ "OpenRead" OpHelp("root=P2 iDb=P3"), + /* 110 */ "OpenWrite" OpHelp("root=P2 iDb=P3"), + /* 111 */ "OpenDup" OpHelp(""), + /* 112 */ "OpenAutoindex" OpHelp("nColumn=P2"), + /* 113 */ "OpenEphemeral" OpHelp("nColumn=P2"), + /* 114 */ "SorterOpen" OpHelp(""), + /* 115 */ "SequenceTest" OpHelp("if( cursor[P1].ctr++ ) pc = P2"), + /* 116 */ "OpenPseudo" OpHelp("P3 columns in r[P2]"), + /* 117 */ "Close" OpHelp(""), + /* 118 */ "ColumnsUsed" OpHelp(""), + /* 119 */ "SeekHit" OpHelp("seekHit=P2"), + /* 120 */ "Sequence" OpHelp("r[P2]=cursor[P1].ctr++"), + /* 121 */ "NewRowid" OpHelp("r[P2]=rowid"), + /* 122 */ "Insert" OpHelp("intkey=r[P3] data=r[P2]"), + /* 123 */ "InsertInt" OpHelp("intkey=P3 data=r[P2]"), + /* 124 */ "Delete" OpHelp(""), + /* 125 */ "ResetCount" OpHelp(""), + /* 126 */ "SorterCompare" OpHelp("if key(P1)!=trim(r[P3],P4) goto P2"), + /* 127 */ "SorterData" OpHelp("r[P2]=data"), + /* 128 */ "RowData" OpHelp("r[P2]=data"), + /* 129 */ "Rowid" OpHelp("r[P2]=rowid"), + /* 130 */ "NullRow" OpHelp(""), + /* 131 */ "SeekEnd" OpHelp(""), + /* 132 */ "SorterInsert" OpHelp("key=r[P2]"), + /* 133 */ "IdxInsert" OpHelp("key=r[P2]"), + /* 134 */ "IdxDelete" OpHelp("key=r[P2@P3]"), + /* 135 */ "DeferredSeek" OpHelp("Move P3 to P1.rowid if needed"), + /* 136 */ "IdxRowid" OpHelp("r[P2]=rowid"), + /* 137 */ "Destroy" OpHelp(""), + /* 138 */ "Clear" OpHelp(""), + /* 139 */ "ResetSorter" OpHelp(""), + /* 140 */ "CreateBtree" OpHelp("r[P2]=root iDb=P1 flags=P3"), + /* 141 */ "Real" OpHelp("r[P2]=P4"), + /* 142 */ "SqlExec" OpHelp(""), + /* 143 */ "ParseSchema" OpHelp(""), + /* 144 */ "LoadAnalysis" OpHelp(""), + /* 145 */ "DropTable" OpHelp(""), + /* 146 */ "DropIndex" OpHelp(""), + /* 147 */ "DropTrigger" OpHelp(""), + /* 148 */ "IntegrityCk" OpHelp(""), + /* 149 */ "RowSetAdd" OpHelp("rowset(P1)=r[P2]"), + /* 150 */ "Param" OpHelp(""), + /* 151 */ "FkCounter" OpHelp("fkctr[P1]+=P2"), + /* 152 */ "MemMax" OpHelp("r[P1]=max(r[P1],r[P2])"), + /* 153 */ "OffsetLimit" OpHelp("if r[P1]>0 then r[P2]=r[P1]+max(0,r[P3]) else r[P2]=(-1)"), + /* 154 */ "AggInverse" OpHelp("accum=r[P3] inverse(r[P2@P5])"), + /* 155 */ "AggStep" OpHelp("accum=r[P3] step(r[P2@P5])"), + /* 156 */ "AggStep1" OpHelp("accum=r[P3] step(r[P2@P5])"), + /* 157 */ "AggValue" OpHelp("r[P3]=value N=P2"), + /* 158 */ "AggFinal" OpHelp("accum=r[P1] N=P2"), + /* 159 */ "Expire" OpHelp(""), + /* 160 */ "TableLock" OpHelp("iDb=P1 root=P2 write=P3"), + /* 161 */ "VBegin" OpHelp(""), + /* 162 */ "VCreate" OpHelp(""), + /* 163 */ "VDestroy" OpHelp(""), + /* 164 */ "VOpen" OpHelp(""), + /* 165 */ "VColumn" OpHelp("r[P3]=vcolumn(P2)"), + /* 166 */ "VRename" OpHelp(""), + /* 167 */ "Pagecount" OpHelp(""), + /* 168 */ "MaxPgcnt" OpHelp(""), + /* 169 */ "Trace" OpHelp(""), + /* 170 */ "CursorHint" OpHelp(""), + /* 171 */ "Noop" OpHelp(""), + /* 172 */ "Explain" OpHelp(""), + /* 173 */ "Abortable" OpHelp(""), }; return azName[i]; } @@ -30682,12 +32272,10 @@ SQLITE_PRIVATE const char *sqlite3OpcodeName(int i){ #define SQLITE_FSFLAGS_IS_MSDOS 0x1 /* -** If we are to be thread-safe, include the pthreads header and define -** the SQLITE_UNIX_THREADS macro. +** If we are to be thread-safe, include the pthreads header. */ #if SQLITE_THREADSAFE /* # include */ -# define SQLITE_UNIX_THREADS 1 #endif /* @@ -30775,6 +32363,9 @@ struct unixFile { #if SQLITE_ENABLE_LOCKING_STYLE || defined(__APPLE__) unsigned fsFlags; /* cached details from statfs() */ #endif +#ifdef SQLITE_ENABLE_SETLK_TIMEOUT + unsigned iBusyTimeout; /* Wait this many millisec on locks */ +#endif #if OS_VXWORKS struct vxworksFileId *pId; /* Unique file ID */ #endif @@ -31212,7 +32803,11 @@ static struct unix_syscall { #endif #define osFchown ((int(*)(int,uid_t,gid_t))aSyscall[20].pCurrent) +#if defined(HAVE_FCHOWN) { "geteuid", (sqlite3_syscall_ptr)geteuid, 0 }, +#else + { "geteuid", (sqlite3_syscall_ptr)0, 0 }, +#endif #define osGeteuid ((uid_t(*)(void))aSyscall[21].pCurrent) #if !defined(SQLITE_OMIT_WAL) || SQLITE_MAX_MMAP_SIZE>0 @@ -31258,7 +32853,11 @@ static struct unix_syscall { #define osLstat ((int(*)(const char*,struct stat*))aSyscall[27].pCurrent) #if defined(__linux__) && defined(SQLITE_ENABLE_BATCH_ATOMIC_WRITE) +# ifdef __ANDROID__ + { "ioctl", (sqlite3_syscall_ptr)(int(*)(int, int, ...))ioctl, 0 }, +# else { "ioctl", (sqlite3_syscall_ptr)ioctl, 0 }, +# endif #else { "ioctl", (sqlite3_syscall_ptr)0, 0 }, #endif @@ -31439,16 +33038,30 @@ static int robust_open(const char *z, int f, mode_t m){ ** unixEnterMutex() ** assert( unixMutexHeld() ); ** unixEnterLeave() +** +** To prevent deadlock, the global unixBigLock must must be acquired +** before the unixInodeInfo.pLockMutex mutex, if both are held. It is +** OK to get the pLockMutex without holding unixBigLock first, but if +** that happens, the unixBigLock mutex must not be acquired until after +** pLockMutex is released. +** +** OK: enter(unixBigLock), enter(pLockInfo) +** OK: enter(unixBigLock) +** OK: enter(pLockInfo) +** ERROR: enter(pLockInfo), enter(unixBigLock) */ +static sqlite3_mutex *unixBigLock = 0; static void unixEnterMutex(void){ - sqlite3_mutex_enter(sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_VFS1)); + assert( sqlite3_mutex_notheld(unixBigLock) ); /* Not a recursive mutex */ + sqlite3_mutex_enter(unixBigLock); } static void unixLeaveMutex(void){ - sqlite3_mutex_leave(sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_VFS1)); + assert( sqlite3_mutex_held(unixBigLock) ); + sqlite3_mutex_leave(unixBigLock); } #ifdef SQLITE_DEBUG static int unixMutexHeld(void) { - return sqlite3_mutex_held(sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_VFS1)); + return sqlite3_mutex_held(unixBigLock); } #endif @@ -31838,22 +33451,39 @@ struct unixFileId { /* ** An instance of the following structure is allocated for each open -** inode. Or, on LinuxThreads, there is one of these structures for -** each inode opened by each thread. +** inode. ** ** A single inode can have multiple file descriptors, so each unixFile ** structure contains a pointer to an instance of this object and this ** object keeps a count of the number of unixFile pointing to it. +** +** Mutex rules: +** +** (1) Only the pLockMutex mutex must be held in order to read or write +** any of the locking fields: +** nShared, nLock, eFileLock, bProcessLock, pUnused +** +** (2) When nRef>0, then the following fields are unchanging and can +** be read (but not written) without holding any mutex: +** fileId, pLockMutex +** +** (3) With the exceptions above, all the fields may only be read +** or written while holding the global unixBigLock mutex. +** +** Deadlock prevention: The global unixBigLock mutex may not +** be acquired while holding the pLockMutex mutex. If both unixBigLock +** and pLockMutex are needed, then unixBigLock must be acquired first. */ struct unixInodeInfo { struct unixFileId fileId; /* The lookup key */ - int nShared; /* Number of SHARED locks held */ - unsigned char eFileLock; /* One of SHARED_LOCK, RESERVED_LOCK etc. */ - unsigned char bProcessLock; /* An exclusive process lock is held */ + sqlite3_mutex *pLockMutex; /* Hold this mutex for... */ + int nShared; /* Number of SHARED locks held */ + int nLock; /* Number of outstanding file locks */ + unsigned char eFileLock; /* One of SHARED_LOCK, RESERVED_LOCK etc. */ + unsigned char bProcessLock; /* An exclusive process lock is held */ + UnixUnusedFd *pUnused; /* Unused file descriptors to close */ int nRef; /* Number of pointers to this structure */ unixShmNode *pShmNode; /* Shared memory associated with this inode */ - int nLock; /* Number of outstanding file locks */ - UnixUnusedFd *pUnused; /* Unused file descriptors to close */ unixInodeInfo *pNext; /* List of all unixInodeInfo objects */ unixInodeInfo *pPrev; /* .... doubly linked */ #if SQLITE_ENABLE_LOCKING_STYLE @@ -31867,9 +33497,26 @@ struct unixInodeInfo { /* ** A lists of all unixInodeInfo objects. +** +** Must hold unixBigLock in order to read or write this variable. */ static unixInodeInfo *inodeList = 0; /* All unixInodeInfo objects */ -static unsigned int nUnusedFd = 0; /* Total unused file descriptors */ + +#ifdef SQLITE_DEBUG +/* +** True if the inode mutex (on the unixFile.pFileMutex field) is held, or not. +** This routine is used only within assert() to help verify correct mutex +** usage. +*/ +int unixFileMutexHeld(unixFile *pFile){ + assert( pFile->pInode ); + return sqlite3_mutex_held(pFile->pInode->pLockMutex); +} +int unixFileMutexNotheld(unixFile *pFile){ + assert( pFile->pInode ); + return sqlite3_mutex_notheld(pFile->pInode->pLockMutex); +} +#endif /* ** @@ -31975,11 +33622,11 @@ static void closePendingFds(unixFile *pFile){ unixInodeInfo *pInode = pFile->pInode; UnixUnusedFd *p; UnixUnusedFd *pNext; + assert( unixFileMutexHeld(pFile) ); for(p=pInode->pUnused; p; p=pNext){ pNext = p->pNext; robust_close(pFile, p->fd, __LINE__); sqlite3_free(p); - nUnusedFd--; } pInode->pUnused = 0; } @@ -31987,17 +33634,20 @@ static void closePendingFds(unixFile *pFile){ /* ** Release a unixInodeInfo structure previously allocated by findInodeInfo(). ** -** The mutex entered using the unixEnterMutex() function must be held -** when this function is called. +** The global mutex must be held when this routine is called, but the mutex +** on the inode being deleted must NOT be held. */ static void releaseInodeInfo(unixFile *pFile){ unixInodeInfo *pInode = pFile->pInode; assert( unixMutexHeld() ); + assert( unixFileMutexNotheld(pFile) ); if( ALWAYS(pInode) ){ pInode->nRef--; if( pInode->nRef==0 ){ assert( pInode->pShmNode==0 ); + sqlite3_mutex_enter(pInode->pLockMutex); closePendingFds(pFile); + sqlite3_mutex_leave(pInode->pLockMutex); if( pInode->pPrev ){ assert( pInode->pPrev->pNext==pInode ); pInode->pPrev->pNext = pInode->pNext; @@ -32009,10 +33659,10 @@ static void releaseInodeInfo(unixFile *pFile){ assert( pInode->pNext->pPrev==pInode ); pInode->pNext->pPrev = pInode->pPrev; } + sqlite3_mutex_free(pInode->pLockMutex); sqlite3_free(pInode); } } - assert( inodeList!=0 || nUnusedFd==0 ); } /* @@ -32020,8 +33670,7 @@ static void releaseInodeInfo(unixFile *pFile){ ** describes that file descriptor. Create a new one if necessary. The ** return value might be uninitialized if an error occurs. ** -** The mutex entered using the unixEnterMutex() function must be held -** when this function is called. +** The global mutex must held when calling this routine. ** ** Return an appropriate error code. */ @@ -32082,7 +33731,7 @@ static int findInodeInfo( #else fileId.ino = (u64)statbuf.st_ino; #endif - assert( inodeList!=0 || nUnusedFd==0 ); + assert( unixMutexHeld() ); pInode = inodeList; while( pInode && memcmp(&fileId, &pInode->fileId, sizeof(fileId)) ){ pInode = pInode->pNext; @@ -32094,7 +33743,15 @@ static int findInodeInfo( } memset(pInode, 0, sizeof(*pInode)); memcpy(&pInode->fileId, &fileId, sizeof(fileId)); + if( sqlite3GlobalConfig.bCoreMutex ){ + pInode->pLockMutex = sqlite3_mutex_alloc(SQLITE_MUTEX_FAST); + if( pInode->pLockMutex==0 ){ + sqlite3_free(pInode); + return SQLITE_NOMEM_BKPT; + } + } pInode->nRef = 1; + assert( unixMutexHeld() ); pInode->pNext = inodeList; pInode->pPrev = 0; if( inodeList ) inodeList->pPrev = pInode; @@ -32172,7 +33829,7 @@ static int unixCheckReservedLock(sqlite3_file *id, int *pResOut){ assert( pFile ); assert( pFile->eFileLock<=SHARED_LOCK ); - unixEnterMutex(); /* Because pFile->pInode is shared across threads */ + sqlite3_mutex_enter(pFile->pInode->pLockMutex); /* Check if a thread in this process holds such a lock */ if( pFile->pInode->eFileLock>SHARED_LOCK ){ @@ -32197,13 +33854,50 @@ static int unixCheckReservedLock(sqlite3_file *id, int *pResOut){ } #endif - unixLeaveMutex(); + sqlite3_mutex_leave(pFile->pInode->pLockMutex); OSTRACE(("TEST WR-LOCK %d %d %d (unix)\n", pFile->h, rc, reserved)); *pResOut = reserved; return rc; } +/* +** Set a posix-advisory-lock. +** +** There are two versions of this routine. If compiled with +** SQLITE_ENABLE_SETLK_TIMEOUT then the routine has an extra parameter +** which is a pointer to a unixFile. If the unixFile->iBusyTimeout +** value is set, then it is the number of milliseconds to wait before +** failing the lock. The iBusyTimeout value is always reset back to +** zero on each call. +** +** If SQLITE_ENABLE_SETLK_TIMEOUT is not defined, then do a non-blocking +** attempt to set the lock. +*/ +#ifndef SQLITE_ENABLE_SETLK_TIMEOUT +# define osSetPosixAdvisoryLock(h,x,t) osFcntl(h,F_SETLK,x) +#else +static int osSetPosixAdvisoryLock( + int h, /* The file descriptor on which to take the lock */ + struct flock *pLock, /* The description of the lock */ + unixFile *pFile /* Structure holding timeout value */ +){ + int rc = osFcntl(h,F_SETLK,pLock); + while( rc<0 && pFile->iBusyTimeout>0 ){ + /* On systems that support some kind of blocking file lock with a timeout, + ** make appropriate changes here to invoke that blocking file lock. On + ** generic posix, however, there is no such API. So we simply try the + ** lock once every millisecond until either the timeout expires, or until + ** the lock is obtained. */ + usleep(1000); + rc = osFcntl(h,F_SETLK,pLock); + pFile->iBusyTimeout--; + } + return rc; +} +#endif /* SQLITE_ENABLE_SETLK_TIMEOUT */ + + /* ** Attempt to set a system-lock on the file pFile. The lock is ** described by pLock. @@ -32226,8 +33920,8 @@ static int unixCheckReservedLock(sqlite3_file *id, int *pResOut){ static int unixFileLock(unixFile *pFile, struct flock *pLock){ int rc; unixInodeInfo *pInode = pFile->pInode; - assert( unixMutexHeld() ); assert( pInode!=0 ); + assert( sqlite3_mutex_held(pInode->pLockMutex) ); if( (pFile->ctrlFlags & (UNIXFILE_EXCL|UNIXFILE_RDONLY))==UNIXFILE_EXCL ){ if( pInode->bProcessLock==0 ){ struct flock lock; @@ -32236,7 +33930,7 @@ static int unixFileLock(unixFile *pFile, struct flock *pLock){ lock.l_start = SHARED_FIRST; lock.l_len = SHARED_SIZE; lock.l_type = F_WRLCK; - rc = osFcntl(pFile->h, F_SETLK, &lock); + rc = osSetPosixAdvisoryLock(pFile->h, &lock, pFile); if( rc<0 ) return rc; pInode->bProcessLock = 1; pInode->nLock++; @@ -32244,7 +33938,7 @@ static int unixFileLock(unixFile *pFile, struct flock *pLock){ rc = 0; } }else{ - rc = osFcntl(pFile->h, F_SETLK, pLock); + rc = osSetPosixAdvisoryLock(pFile->h, pLock, pFile); } return rc; } @@ -32346,8 +34040,8 @@ static int unixLock(sqlite3_file *id, int eFileLock){ /* This mutex is needed because pFile->pInode is shared across threads */ - unixEnterMutex(); pInode = pFile->pInode; + sqlite3_mutex_enter(pInode->pLockMutex); /* If some thread using this PID has a lock via a different unixFile* ** handle that precludes the requested lock, return BUSY. @@ -32490,7 +34184,7 @@ static int unixLock(sqlite3_file *id, int eFileLock){ } end_lock: - unixLeaveMutex(); + sqlite3_mutex_leave(pInode->pLockMutex); OSTRACE(("LOCK %d %s %s (unix)\n", pFile->h, azFileLock(eFileLock), rc==SQLITE_OK ? "ok" : "failed")); return rc; @@ -32503,11 +34197,11 @@ static int unixLock(sqlite3_file *id, int eFileLock){ static void setPendingFd(unixFile *pFile){ unixInodeInfo *pInode = pFile->pInode; UnixUnusedFd *p = pFile->pPreallocatedUnused; + assert( unixFileMutexHeld(pFile) ); p->pNext = pInode->pUnused; pInode->pUnused = p; pFile->h = -1; pFile->pPreallocatedUnused = 0; - nUnusedFd++; } /* @@ -32538,8 +34232,8 @@ static int posixUnlock(sqlite3_file *id, int eFileLock, int handleNFSUnlock){ if( pFile->eFileLock<=eFileLock ){ return SQLITE_OK; } - unixEnterMutex(); pInode = pFile->pInode; + sqlite3_mutex_enter(pInode->pLockMutex); assert( pInode->nShared!=0 ); if( pFile->eFileLock>SHARED_LOCK ){ assert( pInode->eFileLock==pFile->eFileLock ); @@ -32665,14 +34359,14 @@ static int posixUnlock(sqlite3_file *id, int eFileLock, int handleNFSUnlock){ */ pInode->nLock--; assert( pInode->nLock>=0 ); - if( pInode->nLock==0 ){ - closePendingFds(pFile); - } + if( pInode->nLock==0 ) closePendingFds(pFile); } end_unlock: - unixLeaveMutex(); - if( rc==SQLITE_OK ) pFile->eFileLock = eFileLock; + sqlite3_mutex_leave(pInode->pLockMutex); + if( rc==SQLITE_OK ){ + pFile->eFileLock = eFileLock; + } return rc; } @@ -32743,15 +34437,20 @@ static int closeUnixFile(sqlite3_file *id){ static int unixClose(sqlite3_file *id){ int rc = SQLITE_OK; unixFile *pFile = (unixFile *)id; + unixInodeInfo *pInode = pFile->pInode; + + assert( pInode!=0 ); verifyDbFile(pFile); unixUnlock(id, NO_LOCK); + assert( unixFileMutexNotheld(pFile) ); unixEnterMutex(); /* unixFile.pInode is always valid here. Otherwise, a different close ** routine (e.g. nolockClose()) would be called instead. */ assert( pFile->pInode->nLock>0 || pFile->pInode->bProcessLock==0 ); - if( ALWAYS(pFile->pInode) && pFile->pInode->nLock ){ + sqlite3_mutex_enter(pInode->pLockMutex); + if( pInode->nLock ){ /* If there are outstanding locks, do not actually close the file just ** yet because that would clear those locks. Instead, add the file ** descriptor to pInode->pUnused list. It will be automatically closed @@ -32759,6 +34458,7 @@ static int unixClose(sqlite3_file *id){ */ setPendingFd(pFile); } + sqlite3_mutex_leave(pInode->pLockMutex); releaseInodeInfo(pFile); rc = closeUnixFile(id); unixLeaveMutex(); @@ -33356,6 +35056,7 @@ static int semXClose(sqlite3_file *id) { unixFile *pFile = (unixFile*)id; semXUnlock(id, NO_LOCK); assert( pFile ); + assert( unixFileMutexNotheld(pFile) ); unixEnterMutex(); releaseInodeInfo(pFile); unixLeaveMutex(); @@ -33470,8 +35171,7 @@ static int afpCheckReservedLock(sqlite3_file *id, int *pResOut){ *pResOut = 1; return SQLITE_OK; } - unixEnterMutex(); /* Because pFile->pInode is shared across threads */ - + sqlite3_mutex_enter(pFile->pInode->pLockMutex); /* Check if a thread in this process holds such a lock */ if( pFile->pInode->eFileLock>SHARED_LOCK ){ reserved = 1; @@ -33495,7 +35195,7 @@ static int afpCheckReservedLock(sqlite3_file *id, int *pResOut){ } } - unixLeaveMutex(); + sqlite3_mutex_leave(pFile->pInode->pLockMutex); OSTRACE(("TEST WR-LOCK %d %d %d (afp)\n", pFile->h, rc, reserved)); *pResOut = reserved; @@ -33558,8 +35258,8 @@ static int afpLock(sqlite3_file *id, int eFileLock){ /* This mutex is needed because pFile->pInode is shared across threads */ - unixEnterMutex(); pInode = pFile->pInode; + sqlite3_mutex_enter(pInode->pLockMutex); /* If some thread using this PID has a lock via a different unixFile* ** handle that precludes the requested lock, return BUSY. @@ -33695,7 +35395,7 @@ static int afpLock(sqlite3_file *id, int eFileLock){ } afp_end_lock: - unixLeaveMutex(); + sqlite3_mutex_leave(pInode->pLockMutex); OSTRACE(("LOCK %d %s %s (afp)\n", pFile->h, azFileLock(eFileLock), rc==SQLITE_OK ? "ok" : "failed")); return rc; @@ -33727,8 +35427,8 @@ static int afpUnlock(sqlite3_file *id, int eFileLock) { if( pFile->eFileLock<=eFileLock ){ return SQLITE_OK; } - unixEnterMutex(); pInode = pFile->pInode; + sqlite3_mutex_enter(pInode->pLockMutex); assert( pInode->nShared!=0 ); if( pFile->eFileLock>SHARED_LOCK ){ assert( pInode->eFileLock==pFile->eFileLock ); @@ -33797,14 +35497,14 @@ static int afpUnlock(sqlite3_file *id, int eFileLock) { if( rc==SQLITE_OK ){ pInode->nLock--; assert( pInode->nLock>=0 ); - if( pInode->nLock==0 ){ - closePendingFds(pFile); - } + if( pInode->nLock==0 ) closePendingFds(pFile); } } - unixLeaveMutex(); - if( rc==SQLITE_OK ) pFile->eFileLock = eFileLock; + sqlite3_mutex_leave(pInode->pLockMutex); + if( rc==SQLITE_OK ){ + pFile->eFileLock = eFileLock; + } return rc; } @@ -33816,14 +35516,20 @@ static int afpClose(sqlite3_file *id) { unixFile *pFile = (unixFile*)id; assert( id!=0 ); afpUnlock(id, NO_LOCK); + assert( unixFileMutexNotheld(pFile) ); unixEnterMutex(); - if( pFile->pInode && pFile->pInode->nLock ){ - /* If there are outstanding locks, do not actually close the file just - ** yet because that would clear those locks. Instead, add the file - ** descriptor to pInode->aPending. It will be automatically closed when - ** the last lock is cleared. - */ - setPendingFd(pFile); + if( pFile->pInode ){ + unixInodeInfo *pInode = pFile->pInode; + sqlite3_mutex_enter(pInode->pLockMutex); + if( pInode->nLock ){ + /* If there are outstanding locks, do not actually close the file just + ** yet because that would clear those locks. Instead, add the file + ** descriptor to pInode->aPending. It will be automatically closed when + ** the last lock is cleared. + */ + setPendingFd(pFile); + } + sqlite3_mutex_leave(pInode->pLockMutex); } releaseInodeInfo(pFile); sqlite3_free(pFile->lockingContext); @@ -34478,7 +36184,7 @@ static int fcntlSizeHint(unixFile *pFile, i64 nByte){ do{ err = osFallocate(pFile->h, buf.st_size, nSize-buf.st_size); }while( err==EINTR ); - if( err ) return SQLITE_IOERR_WRITE; + if( err && err!=EINVAL ) return SQLITE_IOERR_WRITE; #else /* If the OS does not have posix_fallocate(), fake it. Write a ** single byte to the last byte in each block that falls entirely @@ -34604,6 +36310,12 @@ static int unixFileControl(sqlite3_file *id, int op, void *pArg){ *(int*)pArg = fileHasMoved(pFile); return SQLITE_OK; } +#ifdef SQLITE_ENABLE_SETLK_TIMEOUT + case SQLITE_FCNTL_LOCK_TIMEOUT: { + pFile->iBusyTimeout = *(int*)pArg; + return SQLITE_OK; + } +#endif #if SQLITE_MAX_MMAP_SIZE>0 case SQLITE_FCNTL_MMAP_SIZE: { i64 newLimit = *(i64*)pArg; @@ -34837,18 +36549,18 @@ static int unixGetpagesize(void){ ** ** The following fields are read-only after the object is created: ** -** fid +** hShm ** zFilename ** -** Either unixShmNode.mutex must be held or unixShmNode.nRef==0 and +** Either unixShmNode.pShmMutex must be held or unixShmNode.nRef==0 and ** unixMutexHeld() is true when reading or writing any other field ** in this structure. */ struct unixShmNode { unixInodeInfo *pInode; /* unixInodeInfo that owns this SHM node */ - sqlite3_mutex *mutex; /* Mutex to access this object */ + sqlite3_mutex *pShmMutex; /* Mutex to access this object */ char *zFilename; /* Name of the mmapped file */ - int h; /* Open file descriptor */ + int hShm; /* Open file descriptor */ int szRegion; /* Size of shared-memory regions */ u16 nRegion; /* Size of array apRegion */ u8 isReadonly; /* True if read-only */ @@ -34870,16 +36582,16 @@ struct unixShmNode { ** The following fields are initialized when this object is created and ** are read-only thereafter: ** -** unixShm.pFile +** unixShm.pShmNode ** unixShm.id ** -** All other fields are read/write. The unixShm.pFile->mutex must be held -** while accessing any read/write fields. +** All other fields are read/write. The unixShm.pShmNode->pShmMutex must +** be held while accessing any read/write fields. */ struct unixShm { unixShmNode *pShmNode; /* The underlying unixShmNode object */ unixShm *pNext; /* Next unixShm with the same unixShmNode */ - u8 hasMutex; /* True if holding the unixShmNode mutex */ + u8 hasMutex; /* True if holding the unixShmNode->pShmMutex */ u8 id; /* Id of this connection within its unixShmNode */ u16 sharedMask; /* Mask of shared locks held */ u16 exclMask; /* Mask of exclusive locks held */ @@ -34909,7 +36621,8 @@ static int unixShmSystemLock( /* Access to the unixShmNode object is serialized by the caller */ pShmNode = pFile->pInode->pShmNode; - assert( pShmNode->nRef==0 || sqlite3_mutex_held(pShmNode->mutex) ); + assert( pShmNode->nRef==0 || sqlite3_mutex_held(pShmNode->pShmMutex) ); + assert( pShmNode->nRef>0 || unixMutexHeld() ); /* Shared locks never span more than one byte */ assert( n==1 || lockType!=F_RDLCK ); @@ -34917,15 +36630,13 @@ static int unixShmSystemLock( /* Locks are within range */ assert( n>=1 && n<=SQLITE_SHM_NLOCK ); - if( pShmNode->h>=0 ){ + if( pShmNode->hShm>=0 ){ /* Initialize the locking parameters */ - memset(&f, 0, sizeof(f)); f.l_type = lockType; f.l_whence = SEEK_SET; f.l_start = ofst; f.l_len = n; - - rc = osFcntl(pShmNode->h, F_SETLK, &f); + rc = osSetPosixAdvisoryLock(pShmNode->hShm, &f, pFile); rc = (rc!=(-1)) ? SQLITE_OK : SQLITE_BUSY; } @@ -34997,18 +36708,18 @@ static void unixShmPurge(unixFile *pFd){ int nShmPerMap = unixShmRegionPerMap(); int i; assert( p->pInode==pFd->pInode ); - sqlite3_mutex_free(p->mutex); + sqlite3_mutex_free(p->pShmMutex); for(i=0; inRegion; i+=nShmPerMap){ - if( p->h>=0 ){ + if( p->hShm>=0 ){ osMunmap(p->apRegion[i], p->szRegion); }else{ sqlite3_free(p->apRegion[i]); } } sqlite3_free(p->apRegion); - if( p->h>=0 ){ - robust_close(pFd, p->h, __LINE__); - p->h = -1; + if( p->hShm>=0 ){ + robust_close(pFd, p->hShm, __LINE__); + p->hShm = -1; } p->pInode->pShmNode = 0; sqlite3_free(p); @@ -35050,7 +36761,7 @@ static int unixLockSharedMemory(unixFile *pDbFd, unixShmNode *pShmNode){ lock.l_start = UNIX_SHM_DMS; lock.l_len = 1; lock.l_type = F_WRLCK; - if( osFcntl(pShmNode->h, F_GETLK, &lock)!=0 ) { + if( osFcntl(pShmNode->hShm, F_GETLK, &lock)!=0 ) { rc = SQLITE_IOERR_LOCK; }else if( lock.l_type==F_UNLCK ){ if( pShmNode->isReadonly ){ @@ -35058,7 +36769,12 @@ static int unixLockSharedMemory(unixFile *pDbFd, unixShmNode *pShmNode){ rc = SQLITE_READONLY_CANTINIT; }else{ rc = unixShmSystemLock(pDbFd, F_WRLCK, UNIX_SHM_DMS, 1); - if( rc==SQLITE_OK && robust_ftruncate(pShmNode->h, 0) ){ + /* The first connection to attach must truncate the -shm file. We + ** truncate to 3 bytes (an arbitrary small number, less than the + ** -shm header size) rather than 0 as a system debugging aid, to + ** help detect if a -shm file truncation is legitimate or is the work + ** or a rogue process. */ + if( rc==SQLITE_OK && robust_ftruncate(pShmNode->hShm, 3) ){ rc = unixLogError(SQLITE_IOERR_SHMOPEN,"ftruncate",pShmNode->zFilename); } } @@ -35125,6 +36841,7 @@ static int unixOpenSharedMemory(unixFile *pDbFd){ /* Check to see if a unixShmNode object already exists. Reuse an existing ** one if present. Create a new one if necessary. */ + assert( unixFileMutexNotheld(pDbFd) ); unixEnterMutex(); pInode = pDbFd->pInode; pShmNode = pInode->pShmNode; @@ -35163,12 +36880,12 @@ static int unixOpenSharedMemory(unixFile *pDbFd){ sqlite3_snprintf(nShmFilename, zShm, "%s-shm", zBasePath); sqlite3FileSuffix3(pDbFd->zPath, zShm); #endif - pShmNode->h = -1; + pShmNode->hShm = -1; pDbFd->pInode->pShmNode = pShmNode; pShmNode->pInode = pDbFd->pInode; if( sqlite3GlobalConfig.bCoreMutex ){ - pShmNode->mutex = sqlite3_mutex_alloc(SQLITE_MUTEX_FAST); - if( pShmNode->mutex==0 ){ + pShmNode->pShmMutex = sqlite3_mutex_alloc(SQLITE_MUTEX_FAST); + if( pShmNode->pShmMutex==0 ){ rc = SQLITE_NOMEM_BKPT; goto shm_open_err; } @@ -35176,11 +36893,11 @@ static int unixOpenSharedMemory(unixFile *pDbFd){ if( pInode->bProcessLock==0 ){ if( 0==sqlite3_uri_boolean(pDbFd->zPath, "readonly_shm", 0) ){ - pShmNode->h = robust_open(zShm, O_RDWR|O_CREAT, (sStat.st_mode&0777)); + pShmNode->hShm = robust_open(zShm, O_RDWR|O_CREAT,(sStat.st_mode&0777)); } - if( pShmNode->h<0 ){ - pShmNode->h = robust_open(zShm, O_RDONLY, (sStat.st_mode&0777)); - if( pShmNode->h<0 ){ + if( pShmNode->hShm<0 ){ + pShmNode->hShm = robust_open(zShm, O_RDONLY, (sStat.st_mode&0777)); + if( pShmNode->hShm<0 ){ rc = unixLogError(SQLITE_CANTOPEN_BKPT, "open", zShm); goto shm_open_err; } @@ -35191,7 +36908,7 @@ static int unixOpenSharedMemory(unixFile *pDbFd){ ** is owned by the same user that owns the original database. Otherwise, ** the original owner will not be able to connect. */ - robustFchown(pShmNode->h, sStat.st_uid, sStat.st_gid); + robustFchown(pShmNode->hShm, sStat.st_uid, sStat.st_gid); rc = unixLockSharedMemory(pDbFd, pShmNode); if( rc!=SQLITE_OK && rc!=SQLITE_READONLY_CANTINIT ) goto shm_open_err; @@ -35211,13 +36928,13 @@ static int unixOpenSharedMemory(unixFile *pDbFd){ ** the cover of the unixEnterMutex() mutex and the pointer from the ** new (struct unixShm) object to the pShmNode has been set. All that is ** left to do is to link the new object into the linked list starting - ** at pShmNode->pFirst. This must be done while holding the pShmNode->mutex - ** mutex. + ** at pShmNode->pFirst. This must be done while holding the + ** pShmNode->pShmMutex. */ - sqlite3_mutex_enter(pShmNode->mutex); + sqlite3_mutex_enter(pShmNode->pShmMutex); p->pNext = pShmNode->pFirst; pShmNode->pFirst = p; - sqlite3_mutex_leave(pShmNode->mutex); + sqlite3_mutex_leave(pShmNode->pShmMutex); return rc; /* Jump here on any error */ @@ -35269,7 +36986,7 @@ static int unixShmMap( p = pDbFd->pShm; pShmNode = p->pShmNode; - sqlite3_mutex_enter(pShmNode->mutex); + sqlite3_mutex_enter(pShmNode->pShmMutex); if( pShmNode->isUnlocked ){ rc = unixLockSharedMemory(pDbFd, pShmNode); if( rc!=SQLITE_OK ) goto shmpage_out; @@ -35277,8 +36994,8 @@ static int unixShmMap( } assert( szRegion==pShmNode->szRegion || pShmNode->nRegion==0 ); assert( pShmNode->pInode==pDbFd->pInode ); - assert( pShmNode->h>=0 || pDbFd->pInode->bProcessLock==1 ); - assert( pShmNode->h<0 || pDbFd->pInode->bProcessLock==0 ); + assert( pShmNode->hShm>=0 || pDbFd->pInode->bProcessLock==1 ); + assert( pShmNode->hShm<0 || pDbFd->pInode->bProcessLock==0 ); /* Minimum number of regions required to be mapped. */ nReqRegion = ((iRegion+nShmPerMap) / nShmPerMap) * nShmPerMap; @@ -35290,12 +37007,12 @@ static int unixShmMap( pShmNode->szRegion = szRegion; - if( pShmNode->h>=0 ){ + if( pShmNode->hShm>=0 ){ /* The requested region is not mapped into this processes address space. ** Check to see if it has been allocated (i.e. if the wal-index file is ** large enough to contain the requested region). */ - if( osFstat(pShmNode->h, &sStat) ){ + if( osFstat(pShmNode->hShm, &sStat) ){ rc = SQLITE_IOERR_SHMSIZE; goto shmpage_out; } @@ -35323,7 +37040,7 @@ static int unixShmMap( assert( (nByte % pgsz)==0 ); for(iPg=(sStat.st_size/pgsz); iPg<(nByte/pgsz); iPg++){ int x = 0; - if( seekAndWriteFd(pShmNode->h, iPg*pgsz + pgsz-1, "", 1, &x)!=1 ){ + if( seekAndWriteFd(pShmNode->hShm, iPg*pgsz + pgsz-1,"",1,&x)!=1 ){ const char *zFile = pShmNode->zFilename; rc = unixLogError(SQLITE_IOERR_SHMSIZE, "write", zFile); goto shmpage_out; @@ -35346,22 +37063,22 @@ static int unixShmMap( int nMap = szRegion*nShmPerMap; int i; void *pMem; - if( pShmNode->h>=0 ){ + if( pShmNode->hShm>=0 ){ pMem = osMmap(0, nMap, pShmNode->isReadonly ? PROT_READ : PROT_READ|PROT_WRITE, - MAP_SHARED, pShmNode->h, szRegion*(i64)pShmNode->nRegion + MAP_SHARED, pShmNode->hShm, szRegion*(i64)pShmNode->nRegion ); if( pMem==MAP_FAILED ){ rc = unixLogError(SQLITE_IOERR_SHMMAP, "mmap", pShmNode->zFilename); goto shmpage_out; } }else{ - pMem = sqlite3_malloc64(szRegion); + pMem = sqlite3_malloc64(nMap); if( pMem==0 ){ rc = SQLITE_NOMEM_BKPT; goto shmpage_out; } - memset(pMem, 0, szRegion); + memset(pMem, 0, nMap); } for(i=0; iisReadonly && rc==SQLITE_OK ) rc = SQLITE_READONLY; - sqlite3_mutex_leave(pShmNode->mutex); + sqlite3_mutex_leave(pShmNode->pShmMutex); return rc; } @@ -35412,12 +37129,12 @@ static int unixShmLock( || flags==(SQLITE_SHM_UNLOCK | SQLITE_SHM_SHARED) || flags==(SQLITE_SHM_UNLOCK | SQLITE_SHM_EXCLUSIVE) ); assert( n==1 || (flags & SQLITE_SHM_EXCLUSIVE)!=0 ); - assert( pShmNode->h>=0 || pDbFd->pInode->bProcessLock==1 ); - assert( pShmNode->h<0 || pDbFd->pInode->bProcessLock==0 ); + assert( pShmNode->hShm>=0 || pDbFd->pInode->bProcessLock==1 ); + assert( pShmNode->hShm<0 || pDbFd->pInode->bProcessLock==0 ); mask = (1<<(ofst+n)) - (1<1 || mask==(1<mutex); + sqlite3_mutex_enter(pShmNode->pShmMutex); if( flags & SQLITE_SHM_UNLOCK ){ u16 allMask = 0; /* Mask of locks held by siblings */ @@ -35490,7 +37207,7 @@ static int unixShmLock( } } } - sqlite3_mutex_leave(pShmNode->mutex); + sqlite3_mutex_leave(pShmNode->pShmMutex); OSTRACE(("SHM-LOCK shmid-%d, pid-%d got %03x,%03x\n", p->id, osGetpid(0), p->sharedMask, p->exclMask)); return rc; @@ -35507,6 +37224,9 @@ static void unixShmBarrier( ){ UNUSED_PARAMETER(fd); sqlite3MemoryBarrier(); /* compiler-defined memory barrier */ + assert( fd->pMethods->xLock==nolockLock + || unixFileMutexNotheld((unixFile*)fd) + ); unixEnterMutex(); /* Also mutex, for redundancy */ unixLeaveMutex(); } @@ -35537,22 +37257,23 @@ static int unixShmUnmap( /* Remove connection p from the set of connections associated ** with pShmNode */ - sqlite3_mutex_enter(pShmNode->mutex); + sqlite3_mutex_enter(pShmNode->pShmMutex); for(pp=&pShmNode->pFirst; (*pp)!=p; pp = &(*pp)->pNext){} *pp = p->pNext; /* Free the connection p */ sqlite3_free(p); pDbFd->pShm = 0; - sqlite3_mutex_leave(pShmNode->mutex); + sqlite3_mutex_leave(pShmNode->pShmMutex); /* If pShmNode->nRef has reached 0, then close the underlying ** shared-memory file, too */ + assert( unixFileMutexNotheld(pDbFd) ); unixEnterMutex(); assert( pShmNode->nRef>0 ); pShmNode->nRef--; if( pShmNode->nRef==0 ){ - if( deleteFlag && pShmNode->h>=0 ){ + if( deleteFlag && pShmNode->hShm>=0 ){ osUnlink(pShmNode->zFilename); } unixShmPurge(pDbFd); @@ -35874,7 +37595,7 @@ IOMETHODS( IOMETHODS( nolockIoFinder, /* Finder function name */ nolockIoMethods, /* sqlite3_io_methods object name */ - 3, /* shared memory is disabled */ + 3, /* shared memory and mmap are enabled */ nolockClose, /* xClose method */ nolockLock, /* xLock method */ nolockUnlock, /* xUnlock method */ @@ -36370,7 +38091,7 @@ static UnixUnusedFd *findReusableFd(const char *zPath, int flags){ ** ** Even if a subsequent open() call does succeed, the consequences of ** not searching for a reusable file descriptor are not dire. */ - if( nUnusedFd>0 && 0==osStat(zPath, &sStat) ){ + if( inodeList!=0 && 0==osStat(zPath, &sStat) ){ unixInodeInfo *pInode; pInode = inodeList; @@ -36380,12 +38101,14 @@ static UnixUnusedFd *findReusableFd(const char *zPath, int flags){ } if( pInode ){ UnixUnusedFd **pp; + assert( sqlite3_mutex_notheld(pInode->pLockMutex) ); + sqlite3_mutex_enter(pInode->pLockMutex); for(pp=&pInode->pUnused; *pp && (*pp)->flags!=flags; pp=&((*pp)->pNext)); pUnused = *pp; if( pUnused ){ - nUnusedFd--; *pp = pUnused->pNext; } + sqlite3_mutex_leave(pInode->pLockMutex); } } unixLeaveMutex(); @@ -36590,7 +38313,6 @@ static int unixOpen( randomnessPid = osGetpid(0); sqlite3_randomness(0,0); } - memset(p, 0, sizeof(unixFile)); if( eType==SQLITE_OPEN_MAIN_DB ){ @@ -38465,6 +40187,7 @@ SQLITE_API int sqlite3_os_init(void){ for(i=0; i<(sizeof(aVfs)/sizeof(sqlite3_vfs)); i++){ sqlite3_vfs_register(&aVfs[i], i==0); } + unixBigLock = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_VFS1); return SQLITE_OK; } @@ -38476,6 +40199,7 @@ SQLITE_API int sqlite3_os_init(void){ ** This routine is a no-op for unix. */ SQLITE_API int sqlite3_os_end(void){ + unixBigLock = 0; return SQLITE_OK; } @@ -38967,8 +40691,7 @@ struct winFile { int nFetchOut; /* Number of outstanding xFetch references */ HANDLE hMap; /* Handle for accessing memory mapping */ void *pMapRegion; /* Area memory mapped */ - sqlite3_int64 mmapSize; /* Usable size of mapped region */ - sqlite3_int64 mmapSizeActual; /* Actual size of mapped region */ + sqlite3_int64 mmapSize; /* Size of mapped region */ sqlite3_int64 mmapSizeMax; /* Configured FCNTL_MMAP_SIZE value */ #endif }; @@ -38998,22 +40721,6 @@ struct winVfsAppData { # define SQLITE_WIN32_DBG_BUF_SIZE ((int)(4096-sizeof(DWORD))) #endif -/* - * The value used with sqlite3_win32_set_directory() to specify that - * the data directory should be changed. - */ -#ifndef SQLITE_WIN32_DATA_DIRECTORY_TYPE -# define SQLITE_WIN32_DATA_DIRECTORY_TYPE (1) -#endif - -/* - * The value used with sqlite3_win32_set_directory() to specify that - * the temporary directory should be changed. - */ -#ifndef SQLITE_WIN32_TEMP_DIRECTORY_TYPE -# define SQLITE_WIN32_TEMP_DIRECTORY_TYPE (2) -#endif - /* * If compiled with SQLITE_WIN32_MALLOC on Windows, we will use the * various Win32 API heap functions instead of our own. @@ -40610,13 +42317,13 @@ SQLITE_API char *sqlite3_win32_utf8_to_mbcs_v2(const char *zText, int useAnsi){ } /* -** This function sets the data directory or the temporary directory based on -** the provided arguments. The type argument must be 1 in order to set the -** data directory or 2 in order to set the temporary directory. The zValue -** argument is the name of the directory to use. The return value will be -** SQLITE_OK if successful. +** This function is the same as sqlite3_win32_set_directory (below); however, +** it accepts a UTF-8 string. */ -SQLITE_API int sqlite3_win32_set_directory(DWORD type, LPCWSTR zValue){ +SQLITE_API int sqlite3_win32_set_directory8( + unsigned long type, /* Identifier for directory being set or reset */ + const char *zValue /* New value for directory being set or reset */ +){ char **ppDirectory = 0; #ifndef SQLITE_OMIT_AUTOINIT int rc = sqlite3_initialize(); @@ -40632,20 +42339,53 @@ SQLITE_API int sqlite3_win32_set_directory(DWORD type, LPCWSTR zValue){ ); assert( !ppDirectory || sqlite3MemdebugHasType(*ppDirectory, MEMTYPE_HEAP) ); if( ppDirectory ){ - char *zValueUtf8 = 0; + char *zCopy = 0; if( zValue && zValue[0] ){ - zValueUtf8 = winUnicodeToUtf8(zValue); - if ( zValueUtf8==0 ){ + zCopy = sqlite3_mprintf("%s", zValue); + if ( zCopy==0 ){ return SQLITE_NOMEM_BKPT; } } sqlite3_free(*ppDirectory); - *ppDirectory = zValueUtf8; + *ppDirectory = zCopy; return SQLITE_OK; } return SQLITE_ERROR; } +/* +** This function is the same as sqlite3_win32_set_directory (below); however, +** it accepts a UTF-16 string. +*/ +SQLITE_API int sqlite3_win32_set_directory16( + unsigned long type, /* Identifier for directory being set or reset */ + const void *zValue /* New value for directory being set or reset */ +){ + int rc; + char *zUtf8 = 0; + if( zValue ){ + zUtf8 = sqlite3_win32_unicode_to_utf8(zValue); + if( zUtf8==0 ) return SQLITE_NOMEM_BKPT; + } + rc = sqlite3_win32_set_directory8(type, zUtf8); + if( zUtf8 ) sqlite3_free(zUtf8); + return rc; +} + +/* +** This function sets the data directory or the temporary directory based on +** the provided arguments. The type argument must be 1 in order to set the +** data directory or 2 in order to set the temporary directory. The zValue +** argument is the name of the directory to use. The return value will be +** SQLITE_OK if successful. +*/ +SQLITE_API int sqlite3_win32_set_directory( + unsigned long type, /* Identifier for directory being set or reset */ + void *zValue /* New value for directory being set or reset */ +){ + return sqlite3_win32_set_directory16(type, zValue); +} + /* ** The return value of winGetLastErrorMsg ** is zero if the error message fits in the buffer, or non-zero @@ -41570,6 +43310,29 @@ static int winTruncate(sqlite3_file *id, sqlite3_int64 nByte){ winFile *pFile = (winFile*)id; /* File handle object */ int rc = SQLITE_OK; /* Return code for this function */ DWORD lastErrno; +#if SQLITE_MAX_MMAP_SIZE>0 + sqlite3_int64 oldMmapSize; + if( pFile->nFetchOut>0 ){ + /* File truncation is a no-op if there are outstanding memory mapped + ** pages. This is because truncating the file means temporarily unmapping + ** the file, and that might delete memory out from under existing cursors. + ** + ** This can result in incremental vacuum not truncating the file, + ** if there is an active read cursor when the incremental vacuum occurs. + ** No real harm comes of this - the database file is not corrupted, + ** though some folks might complain that the file is bigger than it + ** needs to be. + ** + ** The only feasible work-around is to defer the truncation until after + ** all references to memory-mapped content are closed. That is doable, + ** but involves adding a few branches in the common write code path which + ** could slow down normal operations slightly. Hence, we have decided for + ** now to simply make trancations a no-op if there are pending reads. We + ** can maybe revisit this decision in the future. + */ + return SQLITE_OK; + } +#endif assert( pFile ); SimulateIOError(return SQLITE_IOERR_TRUNCATE); @@ -41585,6 +43348,15 @@ static int winTruncate(sqlite3_file *id, sqlite3_int64 nByte){ nByte = ((nByte + pFile->szChunk - 1)/pFile->szChunk) * pFile->szChunk; } +#if SQLITE_MAX_MMAP_SIZE>0 + if( pFile->pMapRegion ){ + oldMmapSize = pFile->mmapSize; + }else{ + oldMmapSize = 0; + } + winUnmapfile(pFile); +#endif + /* SetEndOfFile() returns non-zero when successful, or zero when it fails. */ if( winSeekFile(pFile, nByte) ){ rc = winLogError(SQLITE_IOERR_TRUNCATE, pFile->lastErrno, @@ -41597,12 +43369,12 @@ static int winTruncate(sqlite3_file *id, sqlite3_int64 nByte){ } #if SQLITE_MAX_MMAP_SIZE>0 - /* If the file was truncated to a size smaller than the currently - ** mapped region, reduce the effective mapping size as well. SQLite will - ** use read() and write() to access data beyond this point from now on. - */ - if( pFile->pMapRegion && nBytemmapSize ){ - pFile->mmapSize = nByte; + if( rc==SQLITE_OK && oldMmapSize>0 ){ + if( oldMmapSize>nByte ){ + winMapfile(pFile, -1); + }else{ + winMapfile(pFile, oldMmapSize); + } } #endif @@ -42314,15 +44086,16 @@ static SYSTEM_INFO winSysInfo; ** assert( winShmMutexHeld() ); ** winShmLeaveMutex() */ +static sqlite3_mutex *winBigLock = 0; static void winShmEnterMutex(void){ - sqlite3_mutex_enter(sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_VFS1)); + sqlite3_mutex_enter(winBigLock); } static void winShmLeaveMutex(void){ - sqlite3_mutex_leave(sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_VFS1)); + sqlite3_mutex_leave(winBigLock); } #ifndef NDEBUG static int winShmMutexHeld(void) { - return sqlite3_mutex_held(sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_VFS1)); + return sqlite3_mutex_held(winBigLock); } #endif @@ -42987,9 +44760,9 @@ static int winShmMap( static int winUnmapfile(winFile *pFile){ assert( pFile!=0 ); OSTRACE(("UNMAP-FILE pid=%lu, pFile=%p, hMap=%p, pMapRegion=%p, " - "mmapSize=%lld, mmapSizeActual=%lld, mmapSizeMax=%lld\n", + "mmapSize=%lld, mmapSizeMax=%lld\n", osGetCurrentProcessId(), pFile, pFile->hMap, pFile->pMapRegion, - pFile->mmapSize, pFile->mmapSizeActual, pFile->mmapSizeMax)); + pFile->mmapSize, pFile->mmapSizeMax)); if( pFile->pMapRegion ){ if( !osUnmapViewOfFile(pFile->pMapRegion) ){ pFile->lastErrno = osGetLastError(); @@ -43001,7 +44774,6 @@ static int winUnmapfile(winFile *pFile){ } pFile->pMapRegion = 0; pFile->mmapSize = 0; - pFile->mmapSizeActual = 0; } if( pFile->hMap!=NULL ){ if( !osCloseHandle(pFile->hMap) ){ @@ -43112,7 +44884,6 @@ static int winMapfile(winFile *pFd, sqlite3_int64 nByte){ } pFd->pMapRegion = pNew; pFd->mmapSize = nMap; - pFd->mmapSizeActual = nMap; } OSTRACE(("MAP-FILE pid=%lu, pFile=%p, rc=SQLITE_OK\n", @@ -43914,7 +45685,6 @@ static int winOpen( pFile->hMap = NULL; pFile->pMapRegion = 0; pFile->mmapSize = 0; - pFile->mmapSizeActual = 0; pFile->mmapSizeMax = sqlite3GlobalConfig.szMmap; #endif @@ -44745,6 +46515,10 @@ SQLITE_API int sqlite3_os_init(void){ sqlite3_vfs_register(&winLongPathNolockVfs, 0); #endif +#ifndef SQLITE_OMIT_WAL + winBigLock = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_VFS1); +#endif + return SQLITE_OK; } @@ -44755,12 +46529,609 @@ SQLITE_API int sqlite3_os_end(void){ sleepObj = NULL; } #endif + +#ifndef SQLITE_OMIT_WAL + winBigLock = 0; +#endif + return SQLITE_OK; } #endif /* SQLITE_OS_WIN */ /************** End of os_win.c **********************************************/ +/************** Begin file memdb.c *******************************************/ +/* +** 2016-09-07 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +** +** This file implements an in-memory VFS. A database is held as a contiguous +** block of memory. +** +** This file also implements interface sqlite3_serialize() and +** sqlite3_deserialize(). +*/ +/* #include "sqliteInt.h" */ +#ifdef SQLITE_ENABLE_DESERIALIZE + +/* +** Forward declaration of objects used by this utility +*/ +typedef struct sqlite3_vfs MemVfs; +typedef struct MemFile MemFile; + +/* Access to a lower-level VFS that (might) implement dynamic loading, +** access to randomness, etc. +*/ +#define ORIGVFS(p) ((sqlite3_vfs*)((p)->pAppData)) + +/* An open file */ +struct MemFile { + sqlite3_file base; /* IO methods */ + sqlite3_int64 sz; /* Size of the file */ + sqlite3_int64 szMax; /* Space allocated to aData */ + unsigned char *aData; /* content of the file */ + int nMmap; /* Number of memory mapped pages */ + unsigned mFlags; /* Flags */ + int eLock; /* Most recent lock against this file */ +}; + +/* +** Methods for MemFile +*/ +static int memdbClose(sqlite3_file*); +static int memdbRead(sqlite3_file*, void*, int iAmt, sqlite3_int64 iOfst); +static int memdbWrite(sqlite3_file*,const void*,int iAmt, sqlite3_int64 iOfst); +static int memdbTruncate(sqlite3_file*, sqlite3_int64 size); +static int memdbSync(sqlite3_file*, int flags); +static int memdbFileSize(sqlite3_file*, sqlite3_int64 *pSize); +static int memdbLock(sqlite3_file*, int); +/* static int memdbCheckReservedLock(sqlite3_file*, int *pResOut);// not used */ +static int memdbFileControl(sqlite3_file*, int op, void *pArg); +/* static int memdbSectorSize(sqlite3_file*); // not used */ +static int memdbDeviceCharacteristics(sqlite3_file*); +static int memdbFetch(sqlite3_file*, sqlite3_int64 iOfst, int iAmt, void **pp); +static int memdbUnfetch(sqlite3_file*, sqlite3_int64 iOfst, void *p); + +/* +** Methods for MemVfs +*/ +static int memdbOpen(sqlite3_vfs*, const char *, sqlite3_file*, int , int *); +/* static int memdbDelete(sqlite3_vfs*, const char *zName, int syncDir); */ +static int memdbAccess(sqlite3_vfs*, const char *zName, int flags, int *); +static int memdbFullPathname(sqlite3_vfs*, const char *zName, int, char *zOut); +static void *memdbDlOpen(sqlite3_vfs*, const char *zFilename); +static void memdbDlError(sqlite3_vfs*, int nByte, char *zErrMsg); +static void (*memdbDlSym(sqlite3_vfs *pVfs, void *p, const char*zSym))(void); +static void memdbDlClose(sqlite3_vfs*, void*); +static int memdbRandomness(sqlite3_vfs*, int nByte, char *zOut); +static int memdbSleep(sqlite3_vfs*, int microseconds); +/* static int memdbCurrentTime(sqlite3_vfs*, double*); */ +static int memdbGetLastError(sqlite3_vfs*, int, char *); +static int memdbCurrentTimeInt64(sqlite3_vfs*, sqlite3_int64*); + +static sqlite3_vfs memdb_vfs = { + 2, /* iVersion */ + 0, /* szOsFile (set when registered) */ + 1024, /* mxPathname */ + 0, /* pNext */ + "memdb", /* zName */ + 0, /* pAppData (set when registered) */ + memdbOpen, /* xOpen */ + 0, /* memdbDelete, */ /* xDelete */ + memdbAccess, /* xAccess */ + memdbFullPathname, /* xFullPathname */ + memdbDlOpen, /* xDlOpen */ + memdbDlError, /* xDlError */ + memdbDlSym, /* xDlSym */ + memdbDlClose, /* xDlClose */ + memdbRandomness, /* xRandomness */ + memdbSleep, /* xSleep */ + 0, /* memdbCurrentTime, */ /* xCurrentTime */ + memdbGetLastError, /* xGetLastError */ + memdbCurrentTimeInt64 /* xCurrentTimeInt64 */ +}; + +static const sqlite3_io_methods memdb_io_methods = { + 3, /* iVersion */ + memdbClose, /* xClose */ + memdbRead, /* xRead */ + memdbWrite, /* xWrite */ + memdbTruncate, /* xTruncate */ + memdbSync, /* xSync */ + memdbFileSize, /* xFileSize */ + memdbLock, /* xLock */ + memdbLock, /* xUnlock - same as xLock in this case */ + 0, /* memdbCheckReservedLock, */ /* xCheckReservedLock */ + memdbFileControl, /* xFileControl */ + 0, /* memdbSectorSize,*/ /* xSectorSize */ + memdbDeviceCharacteristics, /* xDeviceCharacteristics */ + 0, /* xShmMap */ + 0, /* xShmLock */ + 0, /* xShmBarrier */ + 0, /* xShmUnmap */ + memdbFetch, /* xFetch */ + memdbUnfetch /* xUnfetch */ +}; + + + +/* +** Close an memdb-file. +** +** The pData pointer is owned by the application, so there is nothing +** to free. +*/ +static int memdbClose(sqlite3_file *pFile){ + MemFile *p = (MemFile *)pFile; + if( p->mFlags & SQLITE_DESERIALIZE_FREEONCLOSE ) sqlite3_free(p->aData); + return SQLITE_OK; +} + +/* +** Read data from an memdb-file. +*/ +static int memdbRead( + sqlite3_file *pFile, + void *zBuf, + int iAmt, + sqlite_int64 iOfst +){ + MemFile *p = (MemFile *)pFile; + if( iOfst+iAmt>p->sz ){ + memset(zBuf, 0, iAmt); + if( iOfstsz ) memcpy(zBuf, p->aData+iOfst, p->sz - iOfst); + return SQLITE_IOERR_SHORT_READ; + } + memcpy(zBuf, p->aData+iOfst, iAmt); + return SQLITE_OK; +} + +/* +** Try to enlarge the memory allocation to hold at least sz bytes +*/ +static int memdbEnlarge(MemFile *p, sqlite3_int64 newSz){ + unsigned char *pNew; + if( (p->mFlags & SQLITE_DESERIALIZE_RESIZEABLE)==0 || p->nMmap>0 ){ + return SQLITE_FULL; + } + pNew = sqlite3_realloc64(p->aData, newSz); + if( pNew==0 ) return SQLITE_NOMEM; + p->aData = pNew; + p->szMax = newSz; + return SQLITE_OK; +} + +/* +** Write data to an memdb-file. +*/ +static int memdbWrite( + sqlite3_file *pFile, + const void *z, + int iAmt, + sqlite_int64 iOfst +){ + MemFile *p = (MemFile *)pFile; + if( iOfst+iAmt>p->sz ){ + int rc; + if( iOfst+iAmt>p->szMax + && (rc = memdbEnlarge(p, (iOfst+iAmt)*2))!=SQLITE_OK + ){ + return rc; + } + if( iOfst>p->sz ) memset(p->aData+p->sz, 0, iOfst-p->sz); + p->sz = iOfst+iAmt; + } + memcpy(p->aData+iOfst, z, iAmt); + return SQLITE_OK; +} + +/* +** Truncate an memdb-file. +** +** In rollback mode (which is always the case for memdb, as it does not +** support WAL mode) the truncate() method is only used to reduce +** the size of a file, never to increase the size. +*/ +static int memdbTruncate(sqlite3_file *pFile, sqlite_int64 size){ + MemFile *p = (MemFile *)pFile; + if( NEVER(size>p->sz) ) return SQLITE_FULL; + p->sz = size; + return SQLITE_OK; +} + +/* +** Sync an memdb-file. +*/ +static int memdbSync(sqlite3_file *pFile, int flags){ + return SQLITE_OK; +} + +/* +** Return the current file-size of an memdb-file. +*/ +static int memdbFileSize(sqlite3_file *pFile, sqlite_int64 *pSize){ + MemFile *p = (MemFile *)pFile; + *pSize = p->sz; + return SQLITE_OK; +} + +/* +** Lock an memdb-file. +*/ +static int memdbLock(sqlite3_file *pFile, int eLock){ + MemFile *p = (MemFile *)pFile; + p->eLock = eLock; + return SQLITE_OK; +} + +#if 0 /* Never used because memdbAccess() always returns false */ +/* +** Check if another file-handle holds a RESERVED lock on an memdb-file. +*/ +static int memdbCheckReservedLock(sqlite3_file *pFile, int *pResOut){ + *pResOut = 0; + return SQLITE_OK; +} +#endif + +/* +** File control method. For custom operations on an memdb-file. +*/ +static int memdbFileControl(sqlite3_file *pFile, int op, void *pArg){ + MemFile *p = (MemFile *)pFile; + int rc = SQLITE_NOTFOUND; + if( op==SQLITE_FCNTL_VFSNAME ){ + *(char**)pArg = sqlite3_mprintf("memdb(%p,%lld)", p->aData, p->sz); + rc = SQLITE_OK; + } + return rc; +} + +#if 0 /* Not used because of SQLITE_IOCAP_POWERSAFE_OVERWRITE */ +/* +** Return the sector-size in bytes for an memdb-file. +*/ +static int memdbSectorSize(sqlite3_file *pFile){ + return 1024; +} +#endif + +/* +** Return the device characteristic flags supported by an memdb-file. +*/ +static int memdbDeviceCharacteristics(sqlite3_file *pFile){ + return SQLITE_IOCAP_ATOMIC | + SQLITE_IOCAP_POWERSAFE_OVERWRITE | + SQLITE_IOCAP_SAFE_APPEND | + SQLITE_IOCAP_SEQUENTIAL; +} + +/* Fetch a page of a memory-mapped file */ +static int memdbFetch( + sqlite3_file *pFile, + sqlite3_int64 iOfst, + int iAmt, + void **pp +){ + MemFile *p = (MemFile *)pFile; + p->nMmap++; + *pp = (void*)(p->aData + iOfst); + return SQLITE_OK; +} + +/* Release a memory-mapped page */ +static int memdbUnfetch(sqlite3_file *pFile, sqlite3_int64 iOfst, void *pPage){ + MemFile *p = (MemFile *)pFile; + p->nMmap--; + return SQLITE_OK; +} + +/* +** Open an mem file handle. +*/ +static int memdbOpen( + sqlite3_vfs *pVfs, + const char *zName, + sqlite3_file *pFile, + int flags, + int *pOutFlags +){ + MemFile *p = (MemFile*)pFile; + if( (flags & SQLITE_OPEN_MAIN_DB)==0 ){ + return ORIGVFS(pVfs)->xOpen(ORIGVFS(pVfs), zName, pFile, flags, pOutFlags); + } + memset(p, 0, sizeof(*p)); + p->mFlags = SQLITE_DESERIALIZE_RESIZEABLE | SQLITE_DESERIALIZE_FREEONCLOSE; + assert( pOutFlags!=0 ); /* True because flags==SQLITE_OPEN_MAIN_DB */ + *pOutFlags = flags | SQLITE_OPEN_MEMORY; + p->base.pMethods = &memdb_io_methods; + return SQLITE_OK; +} + +#if 0 /* Only used to delete rollback journals, master journals, and WAL + ** files, none of which exist in memdb. So this routine is never used */ +/* +** Delete the file located at zPath. If the dirSync argument is true, +** ensure the file-system modifications are synced to disk before +** returning. +*/ +static int memdbDelete(sqlite3_vfs *pVfs, const char *zPath, int dirSync){ + return SQLITE_IOERR_DELETE; +} +#endif + +/* +** Test for access permissions. Return true if the requested permission +** is available, or false otherwise. +** +** With memdb, no files ever exist on disk. So always return false. +*/ +static int memdbAccess( + sqlite3_vfs *pVfs, + const char *zPath, + int flags, + int *pResOut +){ + *pResOut = 0; + return SQLITE_OK; +} + +/* +** Populate buffer zOut with the full canonical pathname corresponding +** to the pathname in zPath. zOut is guaranteed to point to a buffer +** of at least (INST_MAX_PATHNAME+1) bytes. +*/ +static int memdbFullPathname( + sqlite3_vfs *pVfs, + const char *zPath, + int nOut, + char *zOut +){ + sqlite3_snprintf(nOut, zOut, "%s", zPath); + return SQLITE_OK; +} + +/* +** Open the dynamic library located at zPath and return a handle. +*/ +static void *memdbDlOpen(sqlite3_vfs *pVfs, const char *zPath){ + return ORIGVFS(pVfs)->xDlOpen(ORIGVFS(pVfs), zPath); +} + +/* +** Populate the buffer zErrMsg (size nByte bytes) with a human readable +** utf-8 string describing the most recent error encountered associated +** with dynamic libraries. +*/ +static void memdbDlError(sqlite3_vfs *pVfs, int nByte, char *zErrMsg){ + ORIGVFS(pVfs)->xDlError(ORIGVFS(pVfs), nByte, zErrMsg); +} + +/* +** Return a pointer to the symbol zSymbol in the dynamic library pHandle. +*/ +static void (*memdbDlSym(sqlite3_vfs *pVfs, void *p, const char *zSym))(void){ + return ORIGVFS(pVfs)->xDlSym(ORIGVFS(pVfs), p, zSym); +} + +/* +** Close the dynamic library handle pHandle. +*/ +static void memdbDlClose(sqlite3_vfs *pVfs, void *pHandle){ + ORIGVFS(pVfs)->xDlClose(ORIGVFS(pVfs), pHandle); +} + +/* +** Populate the buffer pointed to by zBufOut with nByte bytes of +** random data. +*/ +static int memdbRandomness(sqlite3_vfs *pVfs, int nByte, char *zBufOut){ + return ORIGVFS(pVfs)->xRandomness(ORIGVFS(pVfs), nByte, zBufOut); +} + +/* +** Sleep for nMicro microseconds. Return the number of microseconds +** actually slept. +*/ +static int memdbSleep(sqlite3_vfs *pVfs, int nMicro){ + return ORIGVFS(pVfs)->xSleep(ORIGVFS(pVfs), nMicro); +} + +#if 0 /* Never used. Modern cores only call xCurrentTimeInt64() */ +/* +** Return the current time as a Julian Day number in *pTimeOut. +*/ +static int memdbCurrentTime(sqlite3_vfs *pVfs, double *pTimeOut){ + return ORIGVFS(pVfs)->xCurrentTime(ORIGVFS(pVfs), pTimeOut); +} +#endif + +static int memdbGetLastError(sqlite3_vfs *pVfs, int a, char *b){ + return ORIGVFS(pVfs)->xGetLastError(ORIGVFS(pVfs), a, b); +} +static int memdbCurrentTimeInt64(sqlite3_vfs *pVfs, sqlite3_int64 *p){ + return ORIGVFS(pVfs)->xCurrentTimeInt64(ORIGVFS(pVfs), p); +} + +/* +** Translate a database connection pointer and schema name into a +** MemFile pointer. +*/ +static MemFile *memdbFromDbSchema(sqlite3 *db, const char *zSchema){ + MemFile *p = 0; + int rc = sqlite3_file_control(db, zSchema, SQLITE_FCNTL_FILE_POINTER, &p); + if( rc ) return 0; + if( p->base.pMethods!=&memdb_io_methods ) return 0; + return p; +} + +/* +** Return the serialization of a database +*/ +SQLITE_API unsigned char *sqlite3_serialize( + sqlite3 *db, /* The database connection */ + const char *zSchema, /* Which database within the connection */ + sqlite3_int64 *piSize, /* Write size here, if not NULL */ + unsigned int mFlags /* Maybe SQLITE_SERIALIZE_NOCOPY */ +){ + MemFile *p; + int iDb; + Btree *pBt; + sqlite3_int64 sz; + int szPage = 0; + sqlite3_stmt *pStmt = 0; + unsigned char *pOut; + char *zSql; + int rc; + +#ifdef SQLITE_ENABLE_API_ARMOR + if( !sqlite3SafetyCheckOk(db) ){ + (void)SQLITE_MISUSE_BKPT; + return 0; + } +#endif + + if( zSchema==0 ) zSchema = db->aDb[0].zDbSName; + p = memdbFromDbSchema(db, zSchema); + iDb = sqlite3FindDbName(db, zSchema); + if( piSize ) *piSize = -1; + if( iDb<0 ) return 0; + if( p ){ + if( piSize ) *piSize = p->sz; + if( mFlags & SQLITE_SERIALIZE_NOCOPY ){ + pOut = p->aData; + }else{ + pOut = sqlite3_malloc64( p->sz ); + if( pOut ) memcpy(pOut, p->aData, p->sz); + } + return pOut; + } + pBt = db->aDb[iDb].pBt; + if( pBt==0 ) return 0; + szPage = sqlite3BtreeGetPageSize(pBt); + zSql = sqlite3_mprintf("PRAGMA \"%w\".page_count", zSchema); + rc = zSql ? sqlite3_prepare_v2(db, zSql, -1, &pStmt, 0) : SQLITE_NOMEM; + sqlite3_free(zSql); + if( rc ) return 0; + rc = sqlite3_step(pStmt); + if( rc!=SQLITE_ROW ){ + pOut = 0; + }else{ + sz = sqlite3_column_int64(pStmt, 0)*szPage; + if( piSize ) *piSize = sz; + if( mFlags & SQLITE_SERIALIZE_NOCOPY ){ + pOut = 0; + }else{ + pOut = sqlite3_malloc64( sz ); + if( pOut ){ + int nPage = sqlite3_column_int(pStmt, 0); + Pager *pPager = sqlite3BtreePager(pBt); + int pgno; + for(pgno=1; pgno<=nPage; pgno++){ + DbPage *pPage = 0; + unsigned char *pTo = pOut + szPage*(sqlite3_int64)(pgno-1); + rc = sqlite3PagerGet(pPager, pgno, (DbPage**)&pPage, 0); + if( rc==SQLITE_OK ){ + memcpy(pTo, sqlite3PagerGetData(pPage), szPage); + }else{ + memset(pTo, 0, szPage); + } + sqlite3PagerUnref(pPage); + } + } + } + } + sqlite3_finalize(pStmt); + return pOut; +} + +/* Convert zSchema to a MemDB and initialize its content. +*/ +SQLITE_API int sqlite3_deserialize( + sqlite3 *db, /* The database connection */ + const char *zSchema, /* Which DB to reopen with the deserialization */ + unsigned char *pData, /* The serialized database content */ + sqlite3_int64 szDb, /* Number bytes in the deserialization */ + sqlite3_int64 szBuf, /* Total size of buffer pData[] */ + unsigned mFlags /* Zero or more SQLITE_DESERIALIZE_* flags */ +){ + MemFile *p; + char *zSql; + sqlite3_stmt *pStmt = 0; + int rc; + int iDb; + +#ifdef SQLITE_ENABLE_API_ARMOR + if( !sqlite3SafetyCheckOk(db) ){ + return SQLITE_MISUSE_BKPT; + } + if( szDb<0 ) return SQLITE_MISUSE_BKPT; + if( szBuf<0 ) return SQLITE_MISUSE_BKPT; +#endif + + sqlite3_mutex_enter(db->mutex); + if( zSchema==0 ) zSchema = db->aDb[0].zDbSName; + iDb = sqlite3FindDbName(db, zSchema); + if( iDb<0 ){ + rc = SQLITE_ERROR; + goto end_deserialize; + } + zSql = sqlite3_mprintf("ATTACH x AS %Q", zSchema); + rc = sqlite3_prepare_v2(db, zSql, -1, &pStmt, 0); + sqlite3_free(zSql); + if( rc ) goto end_deserialize; + db->init.iDb = (u8)iDb; + db->init.reopenMemdb = 1; + rc = sqlite3_step(pStmt); + db->init.reopenMemdb = 0; + if( rc!=SQLITE_DONE ){ + rc = SQLITE_ERROR; + goto end_deserialize; + } + p = memdbFromDbSchema(db, zSchema); + if( p==0 ){ + rc = SQLITE_ERROR; + }else{ + p->aData = pData; + p->sz = szDb; + p->szMax = szBuf; + p->mFlags = mFlags; + rc = SQLITE_OK; + } + +end_deserialize: + sqlite3_finalize(pStmt); + sqlite3_mutex_leave(db->mutex); + return rc; +} + +/* +** This routine is called when the extension is loaded. +** Register the new VFS. +*/ +SQLITE_PRIVATE int sqlite3MemdbInit(void){ + sqlite3_vfs *pLower = sqlite3_vfs_find(0); + int sz = pLower->szOsFile; + memdb_vfs.pAppData = pLower; + /* In all known configurations of SQLite, the size of a default + ** sqlite3_file is greater than the size of a memdb sqlite3_file. + ** Should that ever change, remove the following NEVER() */ + if( NEVER(szpgno, pgno, - sqlite3GlobalConfig.pcache.xPagecount(pCache->pCache), + sqlite3GlobalConfig.pcache2.xPagecount(pCache->pCache), numberOfCachePages(pCache)); #endif pcacheTrace(("%p.SPILL %d\n",pCache,pPg->pgno)); @@ -46034,6 +48405,15 @@ SQLITE_PRIVATE int sqlite3PCachePercentDirty(PCache *pCache){ return nCache ? (int)(((i64)nDirty * 100) / nCache) : 0; } +#ifdef SQLITE_DIRECT_OVERFLOW_READ +/* +** Return true if there are one or more dirty pages in the cache. Else false. +*/ +SQLITE_PRIVATE int sqlite3PCacheIsDirty(PCache *pCache){ + return (pCache->pDirty!=0); +} +#endif + #if defined(SQLITE_CHECK_PAGES) || defined(SQLITE_DEBUG) /* ** For all dirty pages currently in the cache, invoke the specified @@ -46157,7 +48537,8 @@ struct PgHdr1 { }; /* -** A page is pinned if it is no on the LRU list +** A page is pinned if it is not on the LRU list. To be "pinned" means +** that the page is in active use and must not be deallocated. */ #define PAGE_IS_PINNED(p) ((p)->pLruNext==0) #define PAGE_IS_UNPINNED(p) ((p)->pLruNext!=0) @@ -47437,30 +49818,23 @@ struct RowSet { #define ROWSET_NEXT 0x02 /* True if sqlite3RowSetNext() has been called */ /* -** Turn bulk memory into a RowSet object. N bytes of memory -** are available at pSpace. The db pointer is used as a memory context -** for any subsequent allocations that need to occur. -** Return a pointer to the new RowSet object. -** -** It must be the case that N is sufficient to make a Rowset. If not -** an assertion fault occurs. -** -** If N is larger than the minimum, use the surplus as an initial -** allocation of entries available to be filled. +** Allocate a RowSet object. Return NULL if a memory allocation +** error occurs. */ -SQLITE_PRIVATE RowSet *sqlite3RowSetInit(sqlite3 *db, void *pSpace, unsigned int N){ - RowSet *p; - assert( N >= ROUND8(sizeof(*p)) ); - p = pSpace; - p->pChunk = 0; - p->db = db; - p->pEntry = 0; - p->pLast = 0; - p->pForest = 0; - p->pFresh = (struct RowSetEntry*)(ROUND8(sizeof(*p)) + (char*)p); - p->nFresh = (u16)((N - ROUND8(sizeof(*p)))/sizeof(struct RowSetEntry)); - p->rsFlags = ROWSET_SORTED; - p->iBatch = 0; +SQLITE_PRIVATE RowSet *sqlite3RowSetInit(sqlite3 *db){ + RowSet *p = sqlite3DbMallocRawNN(db, sizeof(*p)); + if( p ){ + int N = sqlite3DbMallocSize(db, p); + p->pChunk = 0; + p->db = db; + p->pEntry = 0; + p->pLast = 0; + p->pForest = 0; + p->pFresh = (struct RowSetEntry*)(ROUND8(sizeof(*p)) + (char*)p); + p->nFresh = (u16)((N - ROUND8(sizeof(*p)))/sizeof(struct RowSetEntry)); + p->rsFlags = ROWSET_SORTED; + p->iBatch = 0; + } return p; } @@ -47469,7 +49843,8 @@ SQLITE_PRIVATE RowSet *sqlite3RowSetInit(sqlite3 *db, void *pSpace, unsigned int ** the RowSet has allocated over its lifetime. This routine is ** the destructor for the RowSet. */ -SQLITE_PRIVATE void sqlite3RowSetClear(RowSet *p){ +SQLITE_PRIVATE void sqlite3RowSetClear(void *pArg){ + RowSet *p = (RowSet*)pArg; struct RowSetChunk *pChunk, *pNextChunk; for(pChunk=p->pChunk; pChunk; pChunk = pNextChunk){ pNextChunk = pChunk->pNextChunk; @@ -47483,6 +49858,16 @@ SQLITE_PRIVATE void sqlite3RowSetClear(RowSet *p){ p->rsFlags = ROWSET_SORTED; } +/* +** Deallocate all chunks from a RowSet. This frees all memory that +** the RowSet has allocated over its lifetime. This routine is +** the destructor for the RowSet. +*/ +SQLITE_PRIVATE void sqlite3RowSetDelete(void *pArg){ + sqlite3RowSetClear(pArg); + sqlite3DbFree(((RowSet*)pArg)->db, pArg); +} + /* ** Allocate a new RowSetEntry object that is associated with the ** given RowSet. Return a pointer to the new and completely uninitialized @@ -47970,6 +50355,8 @@ SQLITE_PRIVATE int sqlite3WalHeapMemory(Wal *pWal); SQLITE_PRIVATE int sqlite3WalSnapshotGet(Wal *pWal, sqlite3_snapshot **ppSnapshot); SQLITE_PRIVATE void sqlite3WalSnapshotOpen(Wal *pWal, sqlite3_snapshot *pSnapshot); SQLITE_PRIVATE int sqlite3WalSnapshotRecover(Wal *pWal); +SQLITE_PRIVATE int sqlite3WalSnapshotCheck(Wal *pWal, sqlite3_snapshot *pSnapshot); +SQLITE_PRIVATE void sqlite3WalSnapshotUnlock(Wal *pWal); #endif #ifdef SQLITE_ENABLE_ZIPVFS @@ -48665,7 +51052,7 @@ struct Pager { char *zJournal; /* Name of the journal file */ int (*xBusyHandler)(void*); /* Function to call when busy */ void *pBusyHandlerArg; /* Context argument for xBusyHandler */ - int aStat[3]; /* Total cache hits, misses and writes */ + int aStat[4]; /* Total cache hits, misses, writes, spills */ #ifdef SQLITE_TEST int nRead; /* Database pages read */ #endif @@ -48693,6 +51080,7 @@ struct Pager { #define PAGER_STAT_HIT 0 #define PAGER_STAT_MISS 1 #define PAGER_STAT_WRITE 2 +#define PAGER_STAT_SPILL 3 /* ** The following global variables hold counters used for @@ -48790,19 +51178,30 @@ static const unsigned char aJournalMagic[] = { */ #define isOpen(pFd) ((pFd)->pMethods!=0) +#ifdef SQLITE_DIRECT_OVERFLOW_READ /* -** Return true if this pager uses a write-ahead log to read page pgno. -** Return false if the pager reads pgno directly from the database. +** Return true if page pgno can be read directly from the database file +** by the b-tree layer. This is the case if: +** +** * the database file is open, +** * there are no dirty pages in the cache, and +** * the desired page is not currently in the wal file. */ -#if !defined(SQLITE_OMIT_WAL) && defined(SQLITE_DIRECT_OVERFLOW_READ) -SQLITE_PRIVATE int sqlite3PagerUseWal(Pager *pPager, Pgno pgno){ - u32 iRead = 0; - int rc; - if( pPager->pWal==0 ) return 0; - rc = sqlite3WalFindFrame(pPager->pWal, pgno, &iRead); - return rc || iRead; +SQLITE_PRIVATE int sqlite3PagerDirectReadOk(Pager *pPager, Pgno pgno){ + if( pPager->fd->pMethods==0 ) return 0; + if( sqlite3PCacheIsDirty(pPager->pPCache) ) return 0; +#ifndef SQLITE_OMIT_WAL + if( pPager->pWal ){ + u32 iRead = 0; + int rc; + rc = sqlite3WalFindFrame(pPager->pWal, pgno, &iRead); + return (rc==SQLITE_OK && iRead==0); + } +#endif + return 1; } #endif + #ifndef SQLITE_OMIT_WAL # define pagerUseWal(x) ((x)->pWal!=0) #else @@ -48962,8 +51361,12 @@ static int assert_pager_state(Pager *p){ ** to "print *pPager" in gdb: ** ** (gdb) printf "%s", print_pager_state(pPager) +** +** This routine has external linkage in order to suppress compiler warnings +** about an unused function. It is enclosed within SQLITE_DEBUG and so does +** not appear in normal builds. */ -static char *print_pager_state(Pager *p){ +char *print_pager_state(Pager *p){ static char zRet[1024]; sqlite3_snprintf(1024, zRet, @@ -49179,7 +51582,7 @@ static int jrnlBufferSize(Pager *pPager){ #endif #ifdef SQLITE_ENABLE_BATCH_ATOMIC_WRITE - if( dc&SQLITE_IOCAP_BATCH_ATOMIC ){ + if( pPager->dbSize>0 && (dc&SQLITE_IOCAP_BATCH_ATOMIC) ){ return -1; } #endif @@ -49729,7 +52132,6 @@ static void pager_reset(Pager *pPager){ ** Return the pPager->iDataVersion value */ SQLITE_PRIVATE u32 sqlite3PagerDataVersion(Pager *pPager){ - assert( pPager->eState>PAGER_OPEN ); return pPager->iDataVersion; } @@ -50095,7 +52497,7 @@ static int pager_end_transaction(Pager *pPager, int hasMaster, int bCommit){ rc = pager_truncate(pPager, pPager->dbSize); } - if( rc==SQLITE_OK && bCommit && isOpen(pPager->fd) ){ + if( rc==SQLITE_OK && bCommit ){ rc = sqlite3OsFileControl(pPager->fd, SQLITE_FCNTL_COMMIT_PHASETWO, 0); if( rc==SQLITE_NOTFOUND ) rc = SQLITE_OK; } @@ -50914,9 +53316,7 @@ static int pager_playback(Pager *pPager, int isHot){ ** assertion that the transaction counter was modified. */ #ifdef SQLITE_DEBUG - if( pPager->fd->pMethods ){ - sqlite3OsFileControlHint(pPager->fd,SQLITE_FCNTL_DB_UNCHANGED,0); - } + sqlite3OsFileControlHint(pPager->fd,SQLITE_FCNTL_DB_UNCHANGED,0); #endif /* If this playback is happening automatically as a result of an IO or @@ -51669,20 +54069,18 @@ static int pagerOpentemp( ** retried. If it returns zero, then the SQLITE_BUSY error is ** returned to the caller of the pager API function. */ -SQLITE_PRIVATE void sqlite3PagerSetBusyhandler( +SQLITE_PRIVATE void sqlite3PagerSetBusyHandler( Pager *pPager, /* Pager object */ int (*xBusyHandler)(void *), /* Pointer to busy-handler function */ void *pBusyHandlerArg /* Argument to pass to xBusyHandler */ ){ + void **ap; pPager->xBusyHandler = xBusyHandler; pPager->pBusyHandlerArg = pBusyHandlerArg; - - if( isOpen(pPager->fd) ){ - void **ap = (void **)&pPager->xBusyHandler; - assert( ((int(*)(void *))(ap[0]))==xBusyHandler ); - assert( ap[1]==pBusyHandlerArg ); - sqlite3OsFileControlHint(pPager->fd, SQLITE_FCNTL_BUSYHANDLER, (void *)ap); - } + ap = (void **)&pPager->xBusyHandler; + assert( ((int(*)(void *))(ap[0]))==xBusyHandler ); + assert( ap[1]==pBusyHandlerArg ); + sqlite3OsFileControlHint(pPager->fd, SQLITE_FCNTL_BUSYHANDLER, (void *)ap); } /* @@ -52068,6 +54466,30 @@ static void pagerFreeMapHdrs(Pager *pPager){ } } +/* Verify that the database file has not be deleted or renamed out from +** under the pager. Return SQLITE_OK if the database is still where it ought +** to be on disk. Return non-zero (SQLITE_READONLY_DBMOVED or some other error +** code from sqlite3OsAccess()) if the database has gone missing. +*/ +static int databaseIsUnmoved(Pager *pPager){ + int bHasMoved = 0; + int rc; + + if( pPager->tempFile ) return SQLITE_OK; + if( pPager->dbSize==0 ) return SQLITE_OK; + assert( pPager->zFilename && pPager->zFilename[0] ); + rc = sqlite3OsFileControl(pPager->fd, SQLITE_FCNTL_HAS_MOVED, &bHasMoved); + if( rc==SQLITE_NOTFOUND ){ + /* If the HAS_MOVED file-control is unimplemented, assume that the file + ** has not been moved. That is the historical behavior of SQLite: prior to + ** version 3.8.3, it never checked */ + rc = SQLITE_OK; + }else if( rc==SQLITE_OK && bHasMoved ){ + rc = SQLITE_READONLY_DBMOVED; + } + return rc; +} + /* ** Shutdown the page cache. Free all memory and close all files. @@ -52084,8 +54506,7 @@ static void pagerFreeMapHdrs(Pager *pPager){ ** to the caller. */ SQLITE_PRIVATE int sqlite3PagerClose(Pager *pPager, sqlite3 *db){ - u8 *pTmp = (u8 *)pPager->pTmpSpace; - + u8 *pTmp = (u8*)pPager->pTmpSpace; assert( db || pagerUseWal(pPager)==0 ); assert( assert_pager_state(pPager) ); disable_simulated_io_errors(); @@ -52094,11 +54515,17 @@ SQLITE_PRIVATE int sqlite3PagerClose(Pager *pPager, sqlite3 *db){ /* pPager->errCode = 0; */ pPager->exclusiveMode = 0; #ifndef SQLITE_OMIT_WAL - assert( db || pPager->pWal==0 ); - sqlite3WalClose(pPager->pWal, db, pPager->walSyncFlags, pPager->pageSize, - (db && (db->flags & SQLITE_NoCkptOnClose) ? 0 : pTmp) - ); - pPager->pWal = 0; + { + u8 *a = 0; + assert( db || pPager->pWal==0 ); + if( db && 0==(db->flags & SQLITE_NoCkptOnClose) + && SQLITE_OK==databaseIsUnmoved(pPager) + ){ + a = pTmp; + } + sqlite3WalClose(pPager->pWal, db, pPager->walSyncFlags, pPager->pageSize,a); + pPager->pWal = 0; + } #endif pager_reset(pPager); if( MEMDB ){ @@ -52555,6 +54982,7 @@ static int pagerStress(void *p, PgHdr *pPg){ return SQLITE_OK; } + pPager->aStat[PAGER_STAT_SPILL]++; pPg->pDirty = 0; if( pagerUseWal(pPager) ){ /* Write a single frame for this page to the log. */ @@ -52660,6 +55088,11 @@ SQLITE_PRIVATE int sqlite3PagerOpen( int rc = SQLITE_OK; /* Return code */ int tempFile = 0; /* True for temp files (incl. in-memory files) */ int memDb = 0; /* True if this is an in-memory file */ +#ifdef SQLITE_ENABLE_DESERIALIZE + int memJM = 0; /* Memory journal mode */ +#else +# define memJM 0 +#endif int readOnly = 0; /* True if this is a read-only file */ int journalFileSize; /* Bytes to allocate for each journal fd */ char *zPathname = 0; /* Full path to database file */ @@ -52787,7 +55220,10 @@ SQLITE_PRIVATE int sqlite3PagerOpen( int fout = 0; /* VFS flags returned by xOpen() */ rc = sqlite3OsOpen(pVfs, pPager->zFilename, pPager->fd, vfsFlags, &fout); assert( !memDb ); - readOnly = (fout&SQLITE_OPEN_READONLY); +#ifdef SQLITE_ENABLE_DESERIALIZE + memJM = (fout&SQLITE_OPEN_MEMORY)!=0; +#endif + readOnly = (fout&SQLITE_OPEN_READONLY)!=0; /* If the file was successfully opened for read/write access, ** choose a default page size in case we have to create the @@ -52918,7 +55354,7 @@ SQLITE_PRIVATE int sqlite3PagerOpen( setSectorSize(pPager); if( !useJournal ){ pPager->journalMode = PAGER_JOURNALMODE_OFF; - }else if( memDb ){ + }else if( memDb || memJM ){ pPager->journalMode = PAGER_JOURNALMODE_MEMORY; } /* pPager->xBusyHandler = 0; */ @@ -52933,30 +55369,6 @@ SQLITE_PRIVATE int sqlite3PagerOpen( } -/* Verify that the database file has not be deleted or renamed out from -** under the pager. Return SQLITE_OK if the database is still were it ought -** to be on disk. Return non-zero (SQLITE_READONLY_DBMOVED or some other error -** code from sqlite3OsAccess()) if the database has gone missing. -*/ -static int databaseIsUnmoved(Pager *pPager){ - int bHasMoved = 0; - int rc; - - if( pPager->tempFile ) return SQLITE_OK; - if( pPager->dbSize==0 ) return SQLITE_OK; - assert( pPager->zFilename && pPager->zFilename[0] ); - rc = sqlite3OsFileControl(pPager->fd, SQLITE_FCNTL_HAS_MOVED, &bHasMoved); - if( rc==SQLITE_NOTFOUND ){ - /* If the HAS_MOVED file-control is unimplemented, assume that the file - ** has not been moved. That is the historical behavior of SQLite: prior to - ** version 3.8.3, it never checked */ - rc = SQLITE_OK; - }else if( rc==SQLITE_OK && bHasMoved ){ - rc = SQLITE_READONLY_DBMOVED; - } - return rc; -} - /* ** This function is called after transitioning from PAGER_UNLOCK to @@ -53644,6 +56056,7 @@ SQLITE_PRIVATE void sqlite3PagerUnrefPageOne(DbPage *pPg){ assert( pPg->pgno==1 ); assert( (pPg->flags & PGHDR_MMAP)==0 ); /* Page1 is never memory mapped */ pPager = pPg->pPager; + sqlite3PagerResetLockTimeout(pPager); sqlite3PcacheRelease(pPg); pagerUnlockIfUnused(pPager); } @@ -54239,12 +56652,9 @@ static int pager_incr_changecounter(Pager *pPager, int isDirectMode){ */ SQLITE_PRIVATE int sqlite3PagerSync(Pager *pPager, const char *zMaster){ int rc = SQLITE_OK; - - if( isOpen(pPager->fd) ){ - void *pArg = (void*)zMaster; - rc = sqlite3OsFileControl(pPager->fd, SQLITE_FCNTL_SYNC, pArg); - if( rc==SQLITE_NOTFOUND ) rc = SQLITE_OK; - } + void *pArg = (void*)zMaster; + rc = sqlite3OsFileControl(pPager->fd, SQLITE_FCNTL_SYNC, pArg); + if( rc==SQLITE_NOTFOUND ) rc = SQLITE_OK; if( rc==SQLITE_OK && !pPager->noSync ){ assert( !MEMDB ); rc = sqlite3OsSync(pPager->fd, pPager->syncFlags); @@ -54339,9 +56749,10 @@ SQLITE_PRIVATE int sqlite3PagerCommitPhaseOne( ** backup in progress needs to be restarted. */ sqlite3BackupRestart(pPager->pBackup); }else{ + PgHdr *pList; if( pagerUseWal(pPager) ){ - PgHdr *pList = sqlite3PcacheDirtyList(pPager->pPCache); PgHdr *pPageOne = 0; + pList = sqlite3PcacheDirtyList(pPager->pPCache); if( pList==0 ){ /* Must have at least one page for the WAL commit flag. ** Ticket [2d1a5c67dfc2363e44f29d9bbd57f] 2011-05-18 */ @@ -54362,14 +56773,14 @@ SQLITE_PRIVATE int sqlite3PagerCommitPhaseOne( ** should be used. No rollback journal is created if batch-atomic-write ** is enabled. */ - sqlite3_file *fd = pPager->fd; #ifdef SQLITE_ENABLE_BATCH_ATOMIC_WRITE - const int bBatch = zMaster==0 /* An SQLITE_IOCAP_BATCH_ATOMIC commit */ + sqlite3_file *fd = pPager->fd; + int bBatch = zMaster==0 /* An SQLITE_IOCAP_BATCH_ATOMIC commit */ && (sqlite3OsDeviceCharacteristics(fd) & SQLITE_IOCAP_BATCH_ATOMIC) && !pPager->noSync && sqlite3JournalIsInMemory(pPager->jfd); #else -# define bBatch 0 +# define bBatch 0 #endif #ifdef SQLITE_ENABLE_ATOMIC_WRITE @@ -54421,15 +56832,16 @@ SQLITE_PRIVATE int sqlite3PagerCommitPhaseOne( } } } -#else +#else /* SQLITE_ENABLE_ATOMIC_WRITE */ #ifdef SQLITE_ENABLE_BATCH_ATOMIC_WRITE if( zMaster ){ rc = sqlite3JournalCreate(pPager->jfd); if( rc!=SQLITE_OK ) goto commit_phase_one_exit; + assert( bBatch==0 ); } #endif rc = pager_incr_changecounter(pPager, 0); -#endif +#endif /* !SQLITE_ENABLE_ATOMIC_WRITE */ if( rc!=SQLITE_OK ) goto commit_phase_one_exit; /* Write the master journal name into the journal file. If a master @@ -54453,23 +56865,36 @@ SQLITE_PRIVATE int sqlite3PagerCommitPhaseOne( rc = syncJournal(pPager, 0); if( rc!=SQLITE_OK ) goto commit_phase_one_exit; + pList = sqlite3PcacheDirtyList(pPager->pPCache); +#ifdef SQLITE_ENABLE_BATCH_ATOMIC_WRITE if( bBatch ){ - /* The pager is now in DBMOD state. But regardless of what happens - ** next, attempting to play the journal back into the database would - ** be unsafe. Close it now to make sure that does not happen. */ - sqlite3OsClose(pPager->jfd); rc = sqlite3OsFileControl(fd, SQLITE_FCNTL_BEGIN_ATOMIC_WRITE, 0); - if( rc!=SQLITE_OK ) goto commit_phase_one_exit; - } - rc = pager_write_pagelist(pPager,sqlite3PcacheDirtyList(pPager->pPCache)); - if( bBatch ){ if( rc==SQLITE_OK ){ - rc = sqlite3OsFileControl(fd, SQLITE_FCNTL_COMMIT_ATOMIC_WRITE, 0); + rc = pager_write_pagelist(pPager, pList); + if( rc==SQLITE_OK ){ + rc = sqlite3OsFileControl(fd, SQLITE_FCNTL_COMMIT_ATOMIC_WRITE, 0); + } + if( rc!=SQLITE_OK ){ + sqlite3OsFileControlHint(fd, SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE, 0); + } + } + + if( (rc&0xFF)==SQLITE_IOERR && rc!=SQLITE_IOERR_NOMEM ){ + rc = sqlite3JournalCreate(pPager->jfd); + if( rc!=SQLITE_OK ){ + sqlite3OsClose(pPager->jfd); + goto commit_phase_one_exit; + } + bBatch = 0; }else{ - sqlite3OsFileControl(fd, SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE, 0); + sqlite3OsClose(pPager->jfd); } } +#endif /* SQLITE_ENABLE_BATCH_ATOMIC_WRITE */ + if( bBatch==0 ){ + rc = pager_write_pagelist(pPager, pList); + } if( rc!=SQLITE_OK ){ assert( rc!=SQLITE_IOERR_BLOCKED ); goto commit_phase_one_exit; @@ -54690,8 +57115,12 @@ SQLITE_PRIVATE int *sqlite3PagerStats(Pager *pPager){ #endif /* -** Parameter eStat must be either SQLITE_DBSTATUS_CACHE_HIT or -** SQLITE_DBSTATUS_CACHE_MISS. Before returning, *pnVal is incremented by the +** Parameter eStat must be one of SQLITE_DBSTATUS_CACHE_HIT, _MISS, _WRITE, +** or _WRITE+1. The SQLITE_DBSTATUS_CACHE_WRITE+1 case is a translation +** of SQLITE_DBSTATUS_CACHE_SPILL. The _SPILL case is not contiguous because +** it was added later. +** +** Before returning, *pnVal is incremented by the ** current cache hit or miss count, according to the value of eStat. If the ** reset parameter is non-zero, the cache hit or miss count is zeroed before ** returning. @@ -54701,15 +57130,18 @@ SQLITE_PRIVATE void sqlite3PagerCacheStat(Pager *pPager, int eStat, int reset, i assert( eStat==SQLITE_DBSTATUS_CACHE_HIT || eStat==SQLITE_DBSTATUS_CACHE_MISS || eStat==SQLITE_DBSTATUS_CACHE_WRITE + || eStat==SQLITE_DBSTATUS_CACHE_WRITE+1 ); assert( SQLITE_DBSTATUS_CACHE_HIT+1==SQLITE_DBSTATUS_CACHE_MISS ); assert( SQLITE_DBSTATUS_CACHE_HIT+2==SQLITE_DBSTATUS_CACHE_WRITE ); - assert( PAGER_STAT_HIT==0 && PAGER_STAT_MISS==1 && PAGER_STAT_WRITE==2 ); + assert( PAGER_STAT_HIT==0 && PAGER_STAT_MISS==1 + && PAGER_STAT_WRITE==2 && PAGER_STAT_SPILL==3 ); - *pnVal += pPager->aStat[eStat - SQLITE_DBSTATUS_CACHE_HIT]; + eStat -= SQLITE_DBSTATUS_CACHE_HIT; + *pnVal += pPager->aStat[eStat]; if( reset ){ - pPager->aStat[eStat - SQLITE_DBSTATUS_CACHE_HIT] = 0; + pPager->aStat[eStat] = 0; } } @@ -54913,6 +57345,16 @@ SQLITE_PRIVATE sqlite3_file *sqlite3PagerFile(Pager *pPager){ return pPager->fd; } +#ifdef SQLITE_ENABLE_SETLK_TIMEOUT +/* +** Reset the lock timeout for pager. +*/ +SQLITE_PRIVATE void sqlite3PagerResetLockTimeout(Pager *pPager){ + int x = 0; + sqlite3OsFileControl(pPager->fd, SQLITE_FCNTL_LOCK_TIMEOUT, &x); +} +#endif + /* ** Return the file handle for the journal file (if it exists). ** This will be either the rollback journal or the WAL file. @@ -54943,7 +57385,11 @@ SQLITE_PRIVATE void sqlite3PagerSetCodec( void (*xCodecFree)(void*), void *pCodec ){ - if( pPager->xCodecFree ) pPager->xCodecFree(pPager->pCodec); + if( pPager->xCodecFree ){ + pPager->xCodecFree(pPager->pCodec); + }else{ + pager_reset(pPager); + } pPager->xCodec = pPager->memDb ? 0 : xCodec; pPager->xCodecSizeChng = xCodecSizeChng; pPager->xCodecFree = xCodecFree; @@ -55204,13 +57650,6 @@ SQLITE_PRIVATE int sqlite3PagerLockingMode(Pager *pPager, int eMode){ SQLITE_PRIVATE int sqlite3PagerSetJournalMode(Pager *pPager, int eMode){ u8 eOld = pPager->journalMode; /* Prior journalmode */ -#ifdef SQLITE_DEBUG - /* The print_pager_state() routine is intended to be used by the debugger - ** only. We invoke it once here to suppress a compiler warning. */ - print_pager_state(pPager); -#endif - - /* The eMode parameter is always valid */ assert( eMode==PAGER_JOURNALMODE_DELETE || eMode==PAGER_JOURNALMODE_TRUNCATE @@ -55373,6 +57812,7 @@ SQLITE_PRIVATE int sqlite3PagerCheckpoint( pPager->walSyncFlags, pPager->pageSize, (u8 *)pPager->pTmpSpace, pnLog, pnCkpt ); + sqlite3PagerResetLockTimeout(pPager); } return rc; } @@ -55578,6 +58018,38 @@ SQLITE_PRIVATE int sqlite3PagerSnapshotRecover(Pager *pPager){ } return rc; } + +/* +** The caller currently has a read transaction open on the database. +** If this is not a WAL database, SQLITE_ERROR is returned. Otherwise, +** this function takes a SHARED lock on the CHECKPOINTER slot and then +** checks if the snapshot passed as the second argument is still +** available. If so, SQLITE_OK is returned. +** +** If the snapshot is not available, SQLITE_ERROR is returned. Or, if +** the CHECKPOINTER lock cannot be obtained, SQLITE_BUSY. If any error +** occurs (any value other than SQLITE_OK is returned), the CHECKPOINTER +** lock is released before returning. +*/ +SQLITE_PRIVATE int sqlite3PagerSnapshotCheck(Pager *pPager, sqlite3_snapshot *pSnapshot){ + int rc; + if( pPager->pWal ){ + rc = sqlite3WalSnapshotCheck(pPager->pWal, pSnapshot); + }else{ + rc = SQLITE_ERROR; + } + return rc; +} + +/* +** Release a lock obtained by an earlier successful call to +** sqlite3PagerSnapshotCheck(). +*/ +SQLITE_PRIVATE void sqlite3PagerSnapshotUnlock(Pager *pPager){ + assert( pPager->pWal ); + return sqlite3WalSnapshotUnlock(pPager->pWal); +} + #endif /* SQLITE_ENABLE_SNAPSHOT */ #endif /* !SQLITE_OMIT_WAL */ @@ -55859,6 +58331,18 @@ SQLITE_PRIVATE int sqlite3WalTrace = 0; # define WALTRACE(X) #endif +/* +** WAL mode depends on atomic aligned 32-bit loads and stores in a few +** places. The following macros try to make this explicit. +*/ +#if GCC_VESRION>=5004000 +# define AtomicLoad(PTR) __atomic_load_n((PTR),__ATOMIC_RELAXED) +# define AtomicStore(PTR,VAL) __atomic_store_n((PTR),(VAL),__ATOMIC_RELAXED) +#else +# define AtomicLoad(PTR) (*(PTR)) +# define AtomicStore(PTR,VAL) (*(PTR) = (VAL)) +#endif + /* ** The maximum (and only) versions of the wal and wal-index formats ** that may be interpreted by this version of SQLite. @@ -56155,7 +58639,11 @@ struct WalIterator { ** page and SQLITE_OK is returned. If an error (an OOM or VFS error) occurs, ** then an SQLite error code is returned and *ppPage is set to 0. */ -static int walIndexPage(Wal *pWal, int iPage, volatile u32 **ppPage){ +static SQLITE_NOINLINE int walIndexPageRealloc( + Wal *pWal, /* The WAL context */ + int iPage, /* The page we seek */ + volatile u32 **ppPage /* Write the page pointer here */ +){ int rc = SQLITE_OK; /* Enlarge the pWal->apWiData[] array if required */ @@ -56174,21 +58662,20 @@ static int walIndexPage(Wal *pWal, int iPage, volatile u32 **ppPage){ } /* Request a pointer to the required page from the VFS */ - if( pWal->apWiData[iPage]==0 ){ - if( pWal->exclusiveMode==WAL_HEAPMEMORY_MODE ){ - pWal->apWiData[iPage] = (u32 volatile *)sqlite3MallocZero(WALINDEX_PGSZ); - if( !pWal->apWiData[iPage] ) rc = SQLITE_NOMEM_BKPT; - }else{ - rc = sqlite3OsShmMap(pWal->pDbFd, iPage, WALINDEX_PGSZ, - pWal->writeLock, (void volatile **)&pWal->apWiData[iPage] - ); - assert( pWal->apWiData[iPage]!=0 || rc!=SQLITE_OK || pWal->writeLock==0 ); - testcase( pWal->apWiData[iPage]==0 && rc==SQLITE_OK ); - if( (rc&0xff)==SQLITE_READONLY ){ - pWal->readOnly |= WAL_SHM_RDONLY; - if( rc==SQLITE_READONLY ){ - rc = SQLITE_OK; - } + assert( pWal->apWiData[iPage]==0 ); + if( pWal->exclusiveMode==WAL_HEAPMEMORY_MODE ){ + pWal->apWiData[iPage] = (u32 volatile *)sqlite3MallocZero(WALINDEX_PGSZ); + if( !pWal->apWiData[iPage] ) rc = SQLITE_NOMEM_BKPT; + }else{ + rc = sqlite3OsShmMap(pWal->pDbFd, iPage, WALINDEX_PGSZ, + pWal->writeLock, (void volatile **)&pWal->apWiData[iPage] + ); + assert( pWal->apWiData[iPage]!=0 || rc!=SQLITE_OK || pWal->writeLock==0 ); + testcase( pWal->apWiData[iPage]==0 && rc==SQLITE_OK ); + if( (rc&0xff)==SQLITE_READONLY ){ + pWal->readOnly |= WAL_SHM_RDONLY; + if( rc==SQLITE_READONLY ){ + rc = SQLITE_OK; } } } @@ -56197,6 +58684,16 @@ static int walIndexPage(Wal *pWal, int iPage, volatile u32 **ppPage){ assert( iPage==0 || *ppPage || rc!=SQLITE_OK ); return rc; } +static int walIndexPage( + Wal *pWal, /* The WAL context */ + int iPage, /* The page we seek */ + volatile u32 **ppPage /* Write the page pointer here */ +){ + if( pWal->nWiData<=iPage || (*ppPage = pWal->apWiData[iPage])==0 ){ + return walIndexPageRealloc(pWal, iPage, ppPage); + } + return SQLITE_OK; +} /* ** Return a pointer to the WalCkptInfo structure in the wal-index. @@ -56468,48 +58965,51 @@ static int walNextHash(int iPriorHash){ return (iPriorHash+1)&(HASHTABLE_NSLOT-1); } +/* +** An instance of the WalHashLoc object is used to describe the location +** of a page hash table in the wal-index. This becomes the return value +** from walHashGet(). +*/ +typedef struct WalHashLoc WalHashLoc; +struct WalHashLoc { + volatile ht_slot *aHash; /* Start of the wal-index hash table */ + volatile u32 *aPgno; /* aPgno[1] is the page of first frame indexed */ + u32 iZero; /* One less than the frame number of first indexed*/ +}; + /* ** Return pointers to the hash table and page number array stored on ** page iHash of the wal-index. The wal-index is broken into 32KB pages ** numbered starting from 0. ** -** Set output variable *paHash to point to the start of the hash table -** in the wal-index file. Set *piZero to one less than the frame +** Set output variable pLoc->aHash to point to the start of the hash table +** in the wal-index file. Set pLoc->iZero to one less than the frame ** number of the first frame indexed by this hash table. If a ** slot in the hash table is set to N, it refers to frame number -** (*piZero+N) in the log. +** (pLoc->iZero+N) in the log. ** -** Finally, set *paPgno so that *paPgno[1] is the page number of the -** first frame indexed by the hash table, frame (*piZero+1). +** Finally, set pLoc->aPgno so that pLoc->aPgno[1] is the page number of the +** first frame indexed by the hash table, frame (pLoc->iZero+1). */ static int walHashGet( Wal *pWal, /* WAL handle */ int iHash, /* Find the iHash'th table */ - volatile ht_slot **paHash, /* OUT: Pointer to hash index */ - volatile u32 **paPgno, /* OUT: Pointer to page number array */ - u32 *piZero /* OUT: Frame associated with *paPgno[0] */ + WalHashLoc *pLoc /* OUT: Hash table location */ ){ int rc; /* Return code */ - volatile u32 *aPgno; - rc = walIndexPage(pWal, iHash, &aPgno); + rc = walIndexPage(pWal, iHash, &pLoc->aPgno); assert( rc==SQLITE_OK || iHash>0 ); if( rc==SQLITE_OK ){ - u32 iZero; - volatile ht_slot *aHash; - - aHash = (volatile ht_slot *)&aPgno[HASHTABLE_NPAGE]; + pLoc->aHash = (volatile ht_slot *)&pLoc->aPgno[HASHTABLE_NPAGE]; if( iHash==0 ){ - aPgno = &aPgno[WALINDEX_HDR_SIZE/sizeof(u32)]; - iZero = 0; + pLoc->aPgno = &pLoc->aPgno[WALINDEX_HDR_SIZE/sizeof(u32)]; + pLoc->iZero = 0; }else{ - iZero = HASHTABLE_NPAGE_ONE + (iHash-1)*HASHTABLE_NPAGE; + pLoc->iZero = HASHTABLE_NPAGE_ONE + (iHash-1)*HASHTABLE_NPAGE; } - - *paPgno = &aPgno[-1]; - *paHash = aHash; - *piZero = iZero; + pLoc->aPgno = &pLoc->aPgno[-1]; } return rc; } @@ -56555,9 +59055,7 @@ static u32 walFramePgno(Wal *pWal, u32 iFrame){ ** actually needed. */ static void walCleanupHash(Wal *pWal){ - volatile ht_slot *aHash = 0; /* Pointer to hash table to clear */ - volatile u32 *aPgno = 0; /* Page number array for hash table */ - u32 iZero = 0; /* frame == (aHash[x]+iZero) */ + WalHashLoc sLoc; /* Hash table location */ int iLimit = 0; /* Zero values greater than this */ int nByte; /* Number of bytes to zero in aPgno[] */ int i; /* Used to iterate through aHash[] */ @@ -56575,24 +59073,24 @@ static void walCleanupHash(Wal *pWal){ */ assert( pWal->nWiData>walFramePage(pWal->hdr.mxFrame) ); assert( pWal->apWiData[walFramePage(pWal->hdr.mxFrame)] ); - walHashGet(pWal, walFramePage(pWal->hdr.mxFrame), &aHash, &aPgno, &iZero); + walHashGet(pWal, walFramePage(pWal->hdr.mxFrame), &sLoc); /* Zero all hash-table entries that correspond to frame numbers greater ** than pWal->hdr.mxFrame. */ - iLimit = pWal->hdr.mxFrame - iZero; + iLimit = pWal->hdr.mxFrame - sLoc.iZero; assert( iLimit>0 ); for(i=0; iiLimit ){ - aHash[i] = 0; + if( sLoc.aHash[i]>iLimit ){ + sLoc.aHash[i] = 0; } } /* Zero the entries in the aPgno array that correspond to frames with ** frame numbers greater than pWal->hdr.mxFrame. */ - nByte = (int)((char *)aHash - (char *)&aPgno[iLimit+1]); - memset((void *)&aPgno[iLimit+1], 0, nByte); + nByte = (int)((char *)sLoc.aHash - (char *)&sLoc.aPgno[iLimit+1]); + memset((void *)&sLoc.aPgno[iLimit+1], 0, nByte); #ifdef SQLITE_ENABLE_EXPENSIVE_ASSERT /* Verify that the every entry in the mapping region is still reachable @@ -56602,10 +59100,10 @@ static void walCleanupHash(Wal *pWal){ int j; /* Loop counter */ int iKey; /* Hash key */ for(j=1; j<=iLimit; j++){ - for(iKey=walHash(aPgno[j]); aHash[iKey]; iKey=walNextHash(iKey)){ - if( aHash[iKey]==j ) break; + for(iKey=walHash(sLoc.aPgno[j]);sLoc.aHash[iKey];iKey=walNextHash(iKey)){ + if( sLoc.aHash[iKey]==j ) break; } - assert( aHash[iKey]==j ); + assert( sLoc.aHash[iKey]==j ); } } #endif /* SQLITE_ENABLE_EXPENSIVE_ASSERT */ @@ -56618,11 +59116,9 @@ static void walCleanupHash(Wal *pWal){ */ static int walIndexAppend(Wal *pWal, u32 iFrame, u32 iPage){ int rc; /* Return code */ - u32 iZero = 0; /* One less than frame number of aPgno[1] */ - volatile u32 *aPgno = 0; /* Page number array */ - volatile ht_slot *aHash = 0; /* Hash table */ + WalHashLoc sLoc; /* Wal-index hash table location */ - rc = walHashGet(pWal, walFramePage(iFrame), &aHash, &aPgno, &iZero); + rc = walHashGet(pWal, walFramePage(iFrame), &sLoc); /* Assuming the wal-index file was successfully mapped, populate the ** page number array and hash table entry. @@ -56632,15 +59128,16 @@ static int walIndexAppend(Wal *pWal, u32 iFrame, u32 iPage){ int idx; /* Value to write to hash-table slot */ int nCollide; /* Number of hash collisions */ - idx = iFrame - iZero; + idx = iFrame - sLoc.iZero; assert( idx <= HASHTABLE_NSLOT/2 + 1 ); /* If this is the first entry to be added to this hash-table, zero the ** entire hash table and aPgno[] array before proceeding. */ if( idx==1 ){ - int nByte = (int)((u8 *)&aHash[HASHTABLE_NSLOT] - (u8 *)&aPgno[1]); - memset((void*)&aPgno[1], 0, nByte); + int nByte = (int)((u8 *)&sLoc.aHash[HASHTABLE_NSLOT] + - (u8 *)&sLoc.aPgno[1]); + memset((void*)&sLoc.aPgno[1], 0, nByte); } /* If the entry in aPgno[] is already set, then the previous writer @@ -56649,18 +59146,18 @@ static int walIndexAppend(Wal *pWal, u32 iFrame, u32 iPage){ ** Remove the remnants of that writers uncommitted transaction from ** the hash-table before writing any new entries. */ - if( aPgno[idx] ){ + if( sLoc.aPgno[idx] ){ walCleanupHash(pWal); - assert( !aPgno[idx] ); + assert( !sLoc.aPgno[idx] ); } /* Write the aPgno[] array entry and the hash-table slot. */ nCollide = idx; - for(iKey=walHash(iPage); aHash[iKey]; iKey=walNextHash(iKey)){ + for(iKey=walHash(iPage); sLoc.aHash[iKey]; iKey=walNextHash(iKey)){ if( (nCollide--)==0 ) return SQLITE_CORRUPT_BKPT; } - aPgno[idx] = iPage; - aHash[iKey] = (ht_slot)idx; + sLoc.aPgno[idx] = iPage; + sLoc.aHash[iKey] = (ht_slot)idx; #ifdef SQLITE_ENABLE_EXPENSIVE_ASSERT /* Verify that the number of entries in the hash table exactly equals @@ -56669,7 +59166,7 @@ static int walIndexAppend(Wal *pWal, u32 iFrame, u32 iPage){ { int i; /* Loop counter */ int nEntry = 0; /* Number of entries in the hash table */ - for(i=0; iaSegment[p->nSegment])[iZero]; - iZero++; + aIndex = &((ht_slot *)&p->aSegment[p->nSegment])[sLoc.iZero]; + sLoc.iZero++; for(j=0; jaSegment[i].iZero = iZero; + walMergesort((u32 *)sLoc.aPgno, aTmp, aIndex, &nEntry); + p->aSegment[i].iZero = sLoc.iZero; p->aSegment[i].nEntry = nEntry; p->aSegment[i].aIndex = aIndex; - p->aSegment[i].aPgno = (u32 *)aPgno; + p->aSegment[i].aPgno = (u32 *)sLoc.aPgno; } } sqlite3_free(aTmp); if( rc!=SQLITE_OK ){ walIteratorFree(p); + p = 0; } *pp = p; return rc; @@ -57376,13 +59875,6 @@ static int walCheckpoint( pInfo = walCkptInfo(pWal); if( pInfo->nBackfillhdr.mxFrame ){ - /* Allocate the iterator */ - rc = walIteratorInit(pWal, &pIter); - if( rc!=SQLITE_OK ){ - return rc; - } - assert( pIter ); - /* EVIDENCE-OF: R-62920-47450 The busy-handler callback is never invoked ** in the SQLITE_CHECKPOINT_PASSIVE mode. */ assert( eMode!=SQLITE_CHECKPOINT_PASSIVE || xBusy==0 ); @@ -57419,10 +59911,15 @@ static int walCheckpoint( } } - if( pInfo->nBackfillnBackfillnBackfill, &pIter); + assert( rc==SQLITE_OK || pIter==0 ); + } + + if( pIter && (rc = walBusyLock(pWal, xBusy, pBusyArg, WAL_READ_LOCK(0),1))==SQLITE_OK ){ - i64 nSize; /* Current size of database file */ u32 nBackfill = pInfo->nBackfill; pInfo->nBackfillAttempted = mxSafeFrame; @@ -57435,6 +59932,7 @@ static int walCheckpoint( */ if( rc==SQLITE_OK ){ i64 nReq = ((i64)mxPage * szPage); + i64 nSize; /* Current size of database file */ rc = sqlite3OsFileSize(pWal->pDbFd, &nSize); if( rc==SQLITE_OK && nSizepDbFd, SQLITE_FCNTL_SIZE_HINT, &nReq); @@ -58142,7 +60640,7 @@ static int walTryBeginRead(Wal *pWal, int *pChanged, int useWal, int cnt){ } #endif for(i=1; iaReadMark[i]; + u32 thisMark = AtomicLoad(pInfo->aReadMark+i); if( mxReadMark<=thisMark && thisMark<=mxFrame ){ assert( thisMark!=READMARK_NOT_USED ); mxReadMark = thisMark; @@ -58155,7 +60653,7 @@ static int walTryBeginRead(Wal *pWal, int *pChanged, int useWal, int cnt){ for(i=1; iaReadMark[i] = mxFrame; + mxReadMark = AtomicStore(pInfo->aReadMark+i,mxFrame); mxI = i; walUnlockExclusive(pWal, WAL_READ_LOCK(i), 1); break; @@ -58207,9 +60705,9 @@ static int walTryBeginRead(Wal *pWal, int *pChanged, int useWal, int cnt){ ** we can guarantee that the checkpointer that set nBackfill could not ** see any pages past pWal->hdr.mxFrame, this problem does not come up. */ - pWal->minFrame = pInfo->nBackfill+1; + pWal->minFrame = AtomicLoad(&pInfo->nBackfill)+1; walShmBarrier(pWal); - if( pInfo->aReadMark[mxI]!=mxReadMark + if( AtomicLoad(pInfo->aReadMark+mxI)!=mxReadMark || memcmp((void *)walIndexHdr(pWal), &pWal->hdr, sizeof(WalIndexHdr)) ){ walUnlockShared(pWal, WAL_READ_LOCK(mxI)); @@ -58260,16 +60758,14 @@ SQLITE_PRIVATE int sqlite3WalSnapshotRecover(Wal *pWal){ }else{ u32 i = pInfo->nBackfillAttempted; for(i=pInfo->nBackfillAttempted; i>pInfo->nBackfill; i--){ - volatile ht_slot *dummy; - volatile u32 *aPgno; /* Array of page numbers */ - u32 iZero; /* Frame corresponding to aPgno[0] */ + WalHashLoc sLoc; /* Hash table location */ u32 pgno; /* Page number in db file */ i64 iDbOff; /* Offset of db file entry */ i64 iWalOff; /* Offset of wal file entry */ - rc = walHashGet(pWal, walFramePage(i), &dummy, &aPgno, &iZero); + rc = walHashGet(pWal, walFramePage(i), &sLoc); if( rc!=SQLITE_OK ) break; - pgno = aPgno[i-iZero]; + pgno = sLoc.aPgno[i-sLoc.iZero]; iDbOff = (i64)(pgno-1) * szPage; if( iDbOff+szPage<=szDb ){ @@ -58310,7 +60806,7 @@ SQLITE_PRIVATE int sqlite3WalSnapshotRecover(Wal *pWal){ ** ** If the database contents have changes since the previous read ** transaction, then *pChanged is set to 1 before returning. The -** Pager layer will use this to know that is cache is stale and +** Pager layer will use this to know that its cache is stale and ** needs to be flushed. */ SQLITE_PRIVATE int sqlite3WalBeginReadTransaction(Wal *pWal, int *pChanged){ @@ -58372,7 +60868,7 @@ SQLITE_PRIVATE int sqlite3WalBeginReadTransaction(Wal *pWal, int *pChanged){ /* Check that the wal file has not been wrapped. Assuming that it has ** not, also check that no checkpointer has attempted to checkpoint any ** frames beyond pSnapshot->mxFrame. If either of these conditions are - ** true, return SQLITE_BUSY_SNAPSHOT. Otherwise, overwrite pWal->hdr + ** true, return SQLITE_ERROR_SNAPSHOT. Otherwise, overwrite pWal->hdr ** with *pSnapshot and set *pChanged as appropriate for opening the ** snapshot. */ if( !memcmp(pSnapshot->aSalt, pWal->hdr.aSalt, sizeof(pWal->hdr.aSalt)) @@ -58382,11 +60878,12 @@ SQLITE_PRIVATE int sqlite3WalBeginReadTransaction(Wal *pWal, int *pChanged){ memcpy(&pWal->hdr, pSnapshot, sizeof(WalIndexHdr)); *pChanged = bChanged; }else{ - rc = SQLITE_BUSY_SNAPSHOT; + rc = SQLITE_ERROR_SNAPSHOT; } /* Release the shared CKPT lock obtained above. */ walUnlockShared(pWal, WAL_CKPT_LOCK); + pWal->minFrame = 1; } @@ -58469,22 +60966,21 @@ SQLITE_PRIVATE int sqlite3WalFindFrame( ** table after the current read-transaction had started. */ iMinHash = walFramePage(pWal->minFrame); - for(iHash=walFramePage(iLast); iHash>=iMinHash && iRead==0; iHash--){ - volatile ht_slot *aHash; /* Pointer to hash table */ - volatile u32 *aPgno; /* Pointer to array of page numbers */ - u32 iZero; /* Frame number corresponding to aPgno[0] */ + for(iHash=walFramePage(iLast); iHash>=iMinHash; iHash--){ + WalHashLoc sLoc; /* Hash table location */ int iKey; /* Hash slot index */ int nCollide; /* Number of hash collisions remaining */ int rc; /* Error code */ - rc = walHashGet(pWal, iHash, &aHash, &aPgno, &iZero); + rc = walHashGet(pWal, iHash, &sLoc); if( rc!=SQLITE_OK ){ return rc; } nCollide = HASHTABLE_NSLOT; - for(iKey=walHash(pgno); aHash[iKey]; iKey=walNextHash(iKey)){ - u32 iFrame = aHash[iKey] + iZero; - if( iFrame<=iLast && iFrame>=pWal->minFrame && aPgno[aHash[iKey]]==pgno ){ + for(iKey=walHash(pgno); sLoc.aHash[iKey]; iKey=walNextHash(iKey)){ + u32 iFrame = sLoc.aHash[iKey] + sLoc.iZero; + if( iFrame<=iLast && iFrame>=pWal->minFrame + && sLoc.aPgno[sLoc.aHash[iKey]]==pgno ){ assert( iFrame>iRead || CORRUPT_DB ); iRead = iFrame; } @@ -58492,6 +60988,7 @@ SQLITE_PRIVATE int sqlite3WalFindFrame( return SQLITE_CORRUPT_BKPT; } } + if( iRead ) break; } #ifdef SQLITE_ENABLE_EXPENSIVE_ASSERT @@ -59358,6 +61855,43 @@ SQLITE_API int sqlite3_snapshot_cmp(sqlite3_snapshot *p1, sqlite3_snapshot *p2){ if( pHdr1->mxFrame>pHdr2->mxFrame ) return +1; return 0; } + +/* +** The caller currently has a read transaction open on the database. +** This function takes a SHARED lock on the CHECKPOINTER slot and then +** checks if the snapshot passed as the second argument is still +** available. If so, SQLITE_OK is returned. +** +** If the snapshot is not available, SQLITE_ERROR is returned. Or, if +** the CHECKPOINTER lock cannot be obtained, SQLITE_BUSY. If any error +** occurs (any value other than SQLITE_OK is returned), the CHECKPOINTER +** lock is released before returning. +*/ +SQLITE_PRIVATE int sqlite3WalSnapshotCheck(Wal *pWal, sqlite3_snapshot *pSnapshot){ + int rc; + rc = walLockShared(pWal, WAL_CKPT_LOCK); + if( rc==SQLITE_OK ){ + WalIndexHdr *pNew = (WalIndexHdr*)pSnapshot; + if( memcmp(pNew->aSalt, pWal->hdr.aSalt, sizeof(pWal->hdr.aSalt)) + || pNew->mxFramenBackfillAttempted + ){ + rc = SQLITE_ERROR_SNAPSHOT; + walUnlockShared(pWal, WAL_CKPT_LOCK); + } + } + return rc; +} + +/* +** Release a lock obtained by an earlier successful call to +** sqlite3WalSnapshotCheck(). +*/ +SQLITE_PRIVATE void sqlite3WalSnapshotUnlock(Wal *pWal){ + assert( pWal ); + walUnlockShared(pWal, WAL_CKPT_LOCK); +} + + #endif /* SQLITE_ENABLE_SNAPSHOT */ #ifdef SQLITE_ENABLE_ZIPVFS @@ -59906,20 +62440,20 @@ struct BtCursor { u8 curFlags; /* zero or more BTCF_* flags defined below */ u8 curPagerFlags; /* Flags to send to sqlite3PagerGet() */ u8 hints; /* As configured by CursorSetHints() */ - int nOvflAlloc; /* Allocated size of aOverflow[] array */ + int skipNext; /* Prev() is noop if negative. Next() is noop if positive. + ** Error code if eState==CURSOR_FAULT */ Btree *pBtree; /* The Btree to which this cursor belongs */ - BtShared *pBt; /* The BtShared this cursor points to */ - BtCursor *pNext; /* Forms a linked list of all cursors */ Pgno *aOverflow; /* Cache of overflow page locations */ - CellInfo info; /* A parse of the cell we are pointing at */ - i64 nKey; /* Size of pKey, or last integer key */ void *pKey; /* Saved key that was cursor last known position */ - Pgno pgnoRoot; /* The root page of this tree */ - int skipNext; /* Prev() is noop if negative. Next() is noop if positive. - ** Error code if eState==CURSOR_FAULT */ /* All fields above are zeroed when the cursor is allocated. See ** sqlite3BtreeCursorZero(). Fields that follow must be manually ** initialized. */ +#define BTCURSOR_FIRST_UNINIT pBt /* Name of first uninitialized field */ + BtShared *pBt; /* The BtShared this cursor points to */ + BtCursor *pNext; /* Forms a linked list of all cursors */ + CellInfo info; /* A parse of the cell we are pointing at */ + i64 nKey; /* Size of pKey, or last integer key */ + Pgno pgnoRoot; /* The root page of this tree */ i8 iPage; /* Index of current page in apPage */ u8 curIntKey; /* Value of apPage[0]->intKey */ u16 ix; /* Current index for apPage[iPage] */ @@ -59969,8 +62503,8 @@ struct BtCursor { ** Do nothing else with this cursor. Any attempt to use the cursor ** should return the error code stored in BtCursor.skipNext */ -#define CURSOR_INVALID 0 -#define CURSOR_VALID 1 +#define CURSOR_VALID 0 +#define CURSOR_INVALID 1 #define CURSOR_SKIPNEXT 2 #define CURSOR_REQUIRESEEK 3 #define CURSOR_FAULT 4 @@ -60287,10 +62821,10 @@ static void SQLITE_NOINLINE btreeEnterAll(sqlite3 *db){ skipOk = 0; } } - db->skipBtreeMutex = skipOk; + db->noSharedCache = skipOk; } SQLITE_PRIVATE void sqlite3BtreeEnterAll(sqlite3 *db){ - if( db->skipBtreeMutex==0 ) btreeEnterAll(db); + if( db->noSharedCache==0 ) btreeEnterAll(db); } static void SQLITE_NOINLINE btreeLeaveAll(sqlite3 *db){ int i; @@ -60302,7 +62836,7 @@ static void SQLITE_NOINLINE btreeLeaveAll(sqlite3 *db){ } } SQLITE_PRIVATE void sqlite3BtreeLeaveAll(sqlite3 *db){ - if( db->skipBtreeMutex==0 ) btreeLeaveAll(db); + if( db->noSharedCache==0 ) btreeLeaveAll(db); } #ifndef NDEBUG @@ -61267,7 +63801,11 @@ static int btreeRestoreCursorPosition(BtCursor *pCur){ ** back to where it ought to be if this routine returns true. */ SQLITE_PRIVATE int sqlite3BtreeCursorHasMoved(BtCursor *pCur){ - return pCur->eState!=CURSOR_VALID; + assert( EIGHT_BYTE_ALIGNMENT(pCur) + || pCur==sqlite3BtreeFakeValidCursor() ); + assert( offsetof(BtCursor, eState)==0 ); + assert( sizeof(pCur->eState)==1 ); + return CURSOR_VALID != *(u8*)pCur; } /* @@ -62634,7 +65172,8 @@ static int btreeInvokeBusyHandler(void *pArg){ BtShared *pBt = (BtShared*)pArg; assert( pBt->db ); assert( sqlite3_mutex_held(pBt->db->mutex) ); - return sqlite3InvokeBusyHandler(&pBt->db->busyHandler); + return sqlite3InvokeBusyHandler(&pBt->db->busyHandler, + sqlite3PagerFile(pBt->pPager)); } /* @@ -62812,7 +65351,7 @@ SQLITE_PRIVATE int sqlite3BtreeOpen( } pBt->openFlags = (u8)flags; pBt->db = db; - sqlite3PagerSetBusyhandler(pBt->pPager, btreeInvokeBusyHandler, pBt); + sqlite3PagerSetBusyHandler(pBt->pPager, btreeInvokeBusyHandler, pBt); p->pBt = pBt; pBt->pCursor = 0; @@ -63374,6 +65913,10 @@ static void setDefaultSyncFlag(BtShared *pBt, u8 safety_level){ # define setDefaultSyncFlag(pBt,safety_level) #endif +/* Forward declaration */ +static int newDatabase(BtShared*); + + /* ** Get a reference to pPage1 of the database file. This will ** also acquire a readlock on that file. @@ -63405,6 +65948,9 @@ static int lockBtree(BtShared *pBt){ if( nPage==0 || memcmp(24+(u8*)pPage1->aData, 92+(u8*)pPage1->aData,4)!=0 ){ nPage = nPageFile; } + if( (pBt->db->flags & SQLITE_ResetDatabase)!=0 ){ + nPage = 0; + } if( nPage>0 ){ u32 pageSize; u32 usableSize; @@ -63503,7 +66049,7 @@ static int lockBtree(BtShared *pBt){ pageSize-usableSize); return rc; } - if( (pBt->db->flags & SQLITE_WriteSchema)==0 && nPage>nPageFile ){ + if( sqlite3WritableSchema(pBt->db)==0 && nPage>nPageFile ){ rc = SQLITE_CORRUPT_BKPT; goto page1_init_failed; } @@ -63691,7 +66237,7 @@ SQLITE_PRIVATE int sqlite3BtreeNewDb(Btree *p){ ** when A already has a read lock, we encourage A to give up and let B ** proceed. */ -SQLITE_PRIVATE int sqlite3BtreeBeginTrans(Btree *p, int wrflag){ +SQLITE_PRIVATE int sqlite3BtreeBeginTrans(Btree *p, int wrflag, int *pSchemaVersion){ BtShared *pBt = p->pBt; int rc = SQLITE_OK; @@ -63707,6 +66253,12 @@ SQLITE_PRIVATE int sqlite3BtreeBeginTrans(Btree *p, int wrflag){ } assert( pBt->inTransaction==TRANS_WRITE || IfNotOmitAV(pBt->bDoTruncate)==0 ); + if( (p->db->flags & SQLITE_ResetDatabase) + && sqlite3PagerIsreadonly(pBt->pPager)==0 + ){ + pBt->btsFlags &= ~BTS_READ_ONLY; + } + /* Write transactions are not possible on a read-only database */ if( (pBt->btsFlags & BTS_READ_ONLY)!=0 && wrflag ){ rc = SQLITE_READONLY; @@ -63766,6 +66318,11 @@ SQLITE_PRIVATE int sqlite3BtreeBeginTrans(Btree *p, int wrflag){ rc = sqlite3PagerBegin(pBt->pPager,wrflag>1,sqlite3TempInMemory(p->db)); if( rc==SQLITE_OK ){ rc = newDatabase(pBt); + }else if( rc==SQLITE_BUSY_SNAPSHOT && pBt->inTransaction==TRANS_NONE ){ + /* if there was no transaction opened when this function was + ** called and SQLITE_BUSY_SNAPSHOT is returned, change the error + ** code to SQLITE_BUSY. */ + rc = SQLITE_BUSY; } } } @@ -63775,6 +66332,7 @@ SQLITE_PRIVATE int sqlite3BtreeBeginTrans(Btree *p, int wrflag){ } }while( (rc&0xFF)==SQLITE_BUSY && pBt->inTransaction==TRANS_NONE && btreeInvokeBusyHandler(pBt) ); + sqlite3PagerResetLockTimeout(pBt->pPager); if( rc==SQLITE_OK ){ if( p->inTrans==TRANS_NONE ){ @@ -63816,14 +66374,18 @@ SQLITE_PRIVATE int sqlite3BtreeBeginTrans(Btree *p, int wrflag){ } } - trans_begun: - if( rc==SQLITE_OK && wrflag ){ - /* This call makes sure that the pager has the correct number of - ** open savepoints. If the second parameter is greater than 0 and - ** the sub-journal is not already open, then it will be opened here. - */ - rc = sqlite3PagerOpenSavepoint(pBt->pPager, p->db->nSavepoint); + if( rc==SQLITE_OK ){ + if( pSchemaVersion ){ + *pSchemaVersion = get4byte(&pBt->pPage1->aData[40]); + } + if( wrflag ){ + /* This call makes sure that the pager has the correct number of + ** open savepoints. If the second parameter is greater than 0 and + ** the sub-journal is not already open, then it will be opened here. + */ + rc = sqlite3PagerOpenSavepoint(pBt->pPager, p->db->nSavepoint); + } } btreeIntegrity(p); @@ -63961,6 +66523,7 @@ static int relocatePage( eType==PTRMAP_BTREE || eType==PTRMAP_ROOTPAGE ); assert( sqlite3_mutex_held(pBt->mutex) ); assert( pDbPage->pBt==pBt ); + if( iDbPage<3 ) return SQLITE_CORRUPT_BKPT; /* Move page iDbPage from its current location to page number iFreePage */ TRACE(("AUTOVACUUM: Moving %d to free page %d (ptr page %d type %d)\n", @@ -64748,7 +67311,7 @@ SQLITE_PRIVATE int sqlite3BtreeCursorSize(void){ ** of run-time by skipping the initialization of those elements. */ SQLITE_PRIVATE void sqlite3BtreeCursorZero(BtCursor *p){ - memset(p, 0, offsetof(BtCursor, iPage)); + memset(p, 0, offsetof(BtCursor, BTCURSOR_FIRST_UNINIT)); } /* @@ -64791,11 +67354,19 @@ SQLITE_PRIVATE int sqlite3BtreeCloseCursor(BtCursor *pCur){ ** Using this cache reduces the number of calls to btreeParseCell(). */ #ifndef NDEBUG + static int cellInfoEqual(CellInfo *a, CellInfo *b){ + if( a->nKey!=b->nKey ) return 0; + if( a->pPayload!=b->pPayload ) return 0; + if( a->nPayload!=b->nPayload ) return 0; + if( a->nLocal!=b->nLocal ) return 0; + if( a->nSize!=b->nSize ) return 0; + return 1; + } static void assertCellInfo(BtCursor *pCur){ CellInfo info; memset(&info, 0, sizeof(info)); btreeParseCell(pCur->pPage, pCur->ix, &info); - assert( CORRUPT_DB || memcmp(&info, &pCur->info, sizeof(info))==0 ); + assert( CORRUPT_DB || cellInfoEqual(&info, &pCur->info) ); } #else #define assertCellInfo(x) @@ -65071,14 +67642,15 @@ static int accessPayload( */ if( (pCur->curFlags & BTCF_ValidOvfl)==0 ){ int nOvfl = (pCur->info.nPayload-pCur->info.nLocal+ovflSize-1)/ovflSize; - if( nOvfl>pCur->nOvflAlloc ){ + if( pCur->aOverflow==0 + || nOvfl*(int)sizeof(Pgno) > sqlite3MallocSize(pCur->aOverflow) + ){ Pgno *aNew = (Pgno*)sqlite3Realloc( pCur->aOverflow, nOvfl*2*sizeof(Pgno) ); if( aNew==0 ){ return SQLITE_NOMEM_BKPT; }else{ - pCur->nOvflAlloc = nOvfl*2; pCur->aOverflow = aNew; } } @@ -65123,9 +67695,6 @@ static int accessPayload( /* Need to read this page properly. It contains some of the ** range of data that is being read (eOp==0) or written (eOp!=0). */ -#ifdef SQLITE_DIRECT_OVERFLOW_READ - sqlite3_file *fd; /* File from which to do direct overflow read */ -#endif int a = amt; if( a + offset > ovflSize ){ a = ovflSize - offset; @@ -65136,7 +67705,7 @@ static int accessPayload( ** ** 1) this is a read operation, and ** 2) data is required from the start of this overflow page, and - ** 3) there is no open write-transaction, and + ** 3) there are no dirty pages in the page-cache ** 4) the database is file-backed, and ** 5) the page is not in the WAL file ** 6) at least 4 bytes have already been read into the output buffer @@ -65147,11 +67716,10 @@ static int accessPayload( */ if( eOp==0 /* (1) */ && offset==0 /* (2) */ - && pBt->inTransaction==TRANS_READ /* (3) */ - && (fd = sqlite3PagerFile(pBt->pPager))->pMethods /* (4) */ - && 0==sqlite3PagerUseWal(pBt->pPager, nextPage) /* (5) */ + && sqlite3PagerDirectReadOk(pBt->pPager, nextPage) /* (3,4,5) */ && &pBuf[-4]>=pBufStart /* (6) */ ){ + sqlite3_file *fd = sqlite3PagerFile(pBt->pPager); u8 aSave[4]; u8 *aWrite = &pBuf[-4]; assert( aWrite>=pBufStart ); /* due to (6) */ @@ -65561,6 +68129,23 @@ SQLITE_PRIVATE int sqlite3BtreeFirst(BtCursor *pCur, int *pRes){ return rc; } +/* +** This function is a no-op if cursor pCur does not point to a valid row. +** Otherwise, if pCur is valid, configure it so that the next call to +** sqlite3BtreeNext() is a no-op. +*/ +#ifndef SQLITE_OMIT_WINDOWFUNC +SQLITE_PRIVATE void sqlite3BtreeSkipNext(BtCursor *pCur){ + /* We believe that the cursor must always be in the valid state when + ** this routine is called, but the proof is difficult, so we add an + ** ALWaYS() test just in case we are wrong. */ + if( ALWAYS(pCur->eState==CURSOR_VALID) ){ + pCur->eState = CURSOR_SKIPNEXT; + pCur->skipNext = 1; + } +} +#endif /* SQLITE_OMIT_WINDOWFUNC */ + /* Move the cursor to the last entry in the table. Return SQLITE_OK ** on success. Set *pRes to 0 if the cursor actually points to something ** or set *pRes to 1 if the table is empty. @@ -65965,7 +68550,16 @@ static SQLITE_NOINLINE int btreeNext(BtCursor *pCur){ pPage = pCur->pPage; idx = ++pCur->ix; - assert( pPage->isInit ); + if( !pPage->isInit ){ + /* The only known way for this to happen is for there to be a + ** recursive SQL function that does a DELETE operation as part of a + ** SELECT which deletes content out from under an active cursor + ** in a corrupt database file where the table being DELETE-ed from + ** has pages in common with the table being queried. See TH3 + ** module cov1/btree78.test testcase 220 (2018-06-08) for an + ** example. */ + return SQLITE_CORRUPT_BKPT; + } /* If the database file is corrupt, it is possible for the value of idx ** to be invalid here. This can only occur if a second cursor modifies @@ -66592,9 +69186,8 @@ static void freePage(MemPage *pPage, int *pRC){ } /* -** Free any overflow pages associated with the given Cell. Write the -** local Cell size (the number of bytes on the original page, omitting -** overflow) into *pnSize. +** Free any overflow pages associated with the given Cell. Store +** size information about the cell in pInfo. */ static int clearCell( MemPage *pPage, /* The page that contains the Cell */ @@ -66612,7 +69205,9 @@ static int clearCell( if( pInfo->nLocal==pInfo->nPayload ){ return SQLITE_OK; /* No overflow pages. Return without doing anything */ } - if( pCell+pInfo->nSize-1 > pPage->aData+pPage->maskPage ){ + testcase( pCell + pInfo->nSize == pPage->aDataEnd ); + testcase( pCell + (pInfo->nSize-1) == pPage->aDataEnd ); + if( pCell + pInfo->nSize > pPage->aDataEnd ){ /* Cell extends past end of page */ return SQLITE_CORRUPT_PAGE(pPage); } @@ -67798,7 +70393,7 @@ static int balance_nonroot( } /* Load b.apCell[] with pointers to all cells in pOld. If pOld - ** constains overflow cells, include them in the b.apCell[] array + ** contains overflow cells, include them in the b.apCell[] array ** in the correct spot. ** ** Note that when there are multiple overflow cells, it is always the @@ -68538,6 +71133,94 @@ static int balance(BtCursor *pCur){ return rc; } +/* Overwrite content from pX into pDest. Only do the write if the +** content is different from what is already there. +*/ +static int btreeOverwriteContent( + MemPage *pPage, /* MemPage on which writing will occur */ + u8 *pDest, /* Pointer to the place to start writing */ + const BtreePayload *pX, /* Source of data to write */ + int iOffset, /* Offset of first byte to write */ + int iAmt /* Number of bytes to be written */ +){ + int nData = pX->nData - iOffset; + if( nData<=0 ){ + /* Overwritting with zeros */ + int i; + for(i=0; ipDbPage); + if( rc ) return rc; + memset(pDest + i, 0, iAmt - i); + } + }else{ + if( nDatapData) + iOffset, iAmt)!=0 ){ + int rc = sqlite3PagerWrite(pPage->pDbPage); + if( rc ) return rc; + memcpy(pDest, ((u8*)pX->pData) + iOffset, iAmt); + } + } + return SQLITE_OK; +} + +/* +** Overwrite the cell that cursor pCur is pointing to with fresh content +** contained in pX. +*/ +static int btreeOverwriteCell(BtCursor *pCur, const BtreePayload *pX){ + int iOffset; /* Next byte of pX->pData to write */ + int nTotal = pX->nData + pX->nZero; /* Total bytes of to write */ + int rc; /* Return code */ + MemPage *pPage = pCur->pPage; /* Page being written */ + BtShared *pBt; /* Btree */ + Pgno ovflPgno; /* Next overflow page to write */ + u32 ovflPageSize; /* Size to write on overflow page */ + + if( pCur->info.pPayload + pCur->info.nLocal > pPage->aDataEnd ){ + return SQLITE_CORRUPT_BKPT; + } + /* Overwrite the local portion first */ + rc = btreeOverwriteContent(pPage, pCur->info.pPayload, pX, + 0, pCur->info.nLocal); + if( rc ) return rc; + if( pCur->info.nLocal==nTotal ) return SQLITE_OK; + + /* Now overwrite the overflow pages */ + iOffset = pCur->info.nLocal; + assert( nTotal>=0 ); + assert( iOffset>=0 ); + ovflPgno = get4byte(pCur->info.pPayload + iOffset); + pBt = pPage->pBt; + ovflPageSize = pBt->usableSize - 4; + do{ + rc = btreeGetPage(pBt, ovflPgno, &pPage, 0); + if( rc ) return rc; + if( sqlite3PagerPageRefcount(pPage->pDbPage)!=1 ){ + rc = SQLITE_CORRUPT_BKPT; + }else{ + if( iOffset+ovflPageSize<(u32)nTotal ){ + ovflPgno = get4byte(pPage->aData); + }else{ + ovflPageSize = nTotal - iOffset; + } + rc = btreeOverwriteContent(pPage, pPage->aData+4, pX, + iOffset, ovflPageSize); + } + sqlite3PagerUnref(pPage->pDbPage); + if( rc ) return rc; + iOffset += ovflPageSize; + }while( iOffsetpgnoRoot, pX->nKey, 0); /* If BTREE_SAVEPOSITION is set, the cursor must already be pointing - ** to a row with the same key as the new entry being inserted. */ - assert( (flags & BTREE_SAVEPOSITION)==0 || - ((pCur->curFlags&BTCF_ValidNKey)!=0 && pX->nKey==pCur->info.nKey) ); + ** to a row with the same key as the new entry being inserted. + */ +#ifdef SQLITE_DEBUG + if( flags & BTREE_SAVEPOSITION ){ + assert( pCur->curFlags & BTCF_ValidNKey ); + assert( pX->nKey==pCur->info.nKey ); + assert( pCur->info.nSize!=0 ); + assert( loc==0 ); + } +#endif - /* If the cursor is currently on the last row and we are appending a - ** new row onto the end, set the "loc" to avoid an unnecessary - ** btreeMoveto() call */ + /* On the other hand, BTREE_SAVEPOSITION==0 does not imply + ** that the cursor is not pointing to a row to be overwritten. + ** So do a complete check. + */ if( (pCur->curFlags&BTCF_ValidNKey)!=0 && pX->nKey==pCur->info.nKey ){ - loc = 0; + /* The cursor is pointing to the entry that is to be + ** overwritten */ + assert( pX->nData>=0 && pX->nZero>=0 ); + if( pCur->info.nSize!=0 + && pCur->info.nPayload==(u32)pX->nData+pX->nZero + ){ + /* New entry is the same size as the old. Do an overwrite */ + return btreeOverwriteCell(pCur, pX); + } + assert( loc==0 ); }else if( loc==0 ){ + /* The cursor is *not* pointing to the cell to be overwritten, nor + ** to an adjacent cell. Move the cursor so that it is pointing either + ** to the cell to be overwritten or an adjacent cell. + */ rc = sqlite3BtreeMovetoUnpacked(pCur, 0, pX->nKey, flags!=0, &loc); if( rc ) return rc; } - }else if( loc==0 && (flags & BTREE_SAVEPOSITION)==0 ){ - if( pX->nMem ){ - UnpackedRecord r; - r.pKeyInfo = pCur->pKeyInfo; - r.aMem = pX->aMem; - r.nField = pX->nMem; - r.default_rc = 0; - r.errCode = 0; - r.r1 = 0; - r.r2 = 0; - r.eqSeen = 0; - rc = sqlite3BtreeMovetoUnpacked(pCur, &r, 0, flags!=0, &loc); - }else{ - rc = btreeMoveto(pCur, pX->pKey, pX->nKey, flags!=0, &loc); + }else{ + /* This is an index or a WITHOUT ROWID table */ + + /* If BTREE_SAVEPOSITION is set, the cursor must already be pointing + ** to a row with the same key as the new entry being inserted. + */ + assert( (flags & BTREE_SAVEPOSITION)==0 || loc==0 ); + + /* If the cursor is not already pointing either to the cell to be + ** overwritten, or if a new cell is being inserted, if the cursor is + ** not pointing to an immediately adjacent cell, then move the cursor + ** so that it does. + */ + if( loc==0 && (flags & BTREE_SAVEPOSITION)==0 ){ + if( pX->nMem ){ + UnpackedRecord r; + r.pKeyInfo = pCur->pKeyInfo; + r.aMem = pX->aMem; + r.nField = pX->nMem; + r.default_rc = 0; + r.errCode = 0; + r.r1 = 0; + r.r2 = 0; + r.eqSeen = 0; + rc = sqlite3BtreeMovetoUnpacked(pCur, &r, 0, flags!=0, &loc); + }else{ + rc = btreeMoveto(pCur, pX->pKey, pX->nKey, flags!=0, &loc); + } + if( rc ) return rc; } - if( rc ) return rc; + + /* If the cursor is currently pointing to an entry to be overwritten + ** and the new content is the same as as the old, then use the + ** overwrite optimization. + */ + if( loc==0 ){ + getCellInfo(pCur); + if( pCur->info.nKey==pX->nKey ){ + BtreePayload x2; + x2.pData = pX->pKey; + x2.nData = pX->nKey; + x2.nZero = 0; + return btreeOverwriteCell(pCur, &x2); + } + } + } assert( pCur->eState==CURSOR_VALID || (pCur->eState==CURSOR_INVALID && loc) ); @@ -69495,14 +72229,14 @@ static void checkAppendMsg( pCheck->nErr++; va_start(ap, zFormat); if( pCheck->errMsg.nChar ){ - sqlite3StrAccumAppend(&pCheck->errMsg, "\n", 1); + sqlite3_str_append(&pCheck->errMsg, "\n", 1); } if( pCheck->zPfx ){ - sqlite3XPrintf(&pCheck->errMsg, pCheck->zPfx, pCheck->v1, pCheck->v2); + sqlite3_str_appendf(&pCheck->errMsg, pCheck->zPfx, pCheck->v1, pCheck->v2); } - sqlite3VXPrintf(&pCheck->errMsg, zFormat, ap); + sqlite3_str_vappendf(&pCheck->errMsg, zFormat, ap); va_end(ap); - if( pCheck->errMsg.accError==STRACCUM_NOMEM ){ + if( pCheck->errMsg.accError==SQLITE_NOMEM ){ pCheck->mallocFailed = 1; } } @@ -69537,8 +72271,7 @@ static void setPageReferenced(IntegrityCk *pCheck, Pgno iPg){ ** Also check that the page number is in bounds. */ static int checkRef(IntegrityCk *pCheck, Pgno iPage){ - if( iPage==0 ) return 1; - if( iPage>pCheck->nPage ){ + if( iPage>pCheck->nPage || iPage==0 ){ checkAppendMsg(pCheck, "invalid page number %d", iPage); return 1; } @@ -69593,17 +72326,12 @@ static void checkList( ){ int i; int expected = N; - int iFirst = iPage; - while( N-- > 0 && pCheck->mxErr ){ + int nErrAtStart = pCheck->nErr; + while( iPage!=0 && pCheck->mxErr ){ DbPage *pOvflPage; unsigned char *pOvflData; - if( iPage<1 ){ - checkAppendMsg(pCheck, - "%d of %d pages missing from overflow list starting at %d", - N+1, expected, iFirst); - break; - } if( checkRef(pCheck, iPage) ) break; + N--; if( sqlite3PagerGet(pCheck->pPager, (Pgno)iPage, &pOvflPage, 0) ){ checkAppendMsg(pCheck, "failed to get page %d", iPage); break; @@ -69647,10 +72375,12 @@ static void checkList( #endif iPage = get4byte(pOvflData); sqlite3PagerUnref(pOvflPage); - - if( isFreeList && N<(iPage!=0) ){ - checkAppendMsg(pCheck, "free-page count in header is too small"); - } + } + if( N && nErrAtStart==pCheck->nErr ){ + checkAppendMsg(pCheck, + "%s is %d but should be %d", + isFreeList ? "size" : "overflow list length", + expected-N, expected); } } #endif /* SQLITE_OMIT_INTEGRITY_CHECK */ @@ -70044,6 +72774,24 @@ SQLITE_PRIVATE char *sqlite3BtreeIntegrityCheck( /* Check all the tables. */ +#ifndef SQLITE_OMIT_AUTOVACUUM + if( pBt->autoVacuum ){ + int mx = 0; + int mxInHdr; + for(i=0; (int)ipPage1->aData[52]); + if( mx!=mxInHdr ){ + checkAppendMsg(&sCheck, + "max rootpage (%d) disagrees with header (%d)", + mx, mxInHdr + ); + } + }else if( get4byte(&pBt->pPage1->aData[64])!=0 ){ + checkAppendMsg(&sCheck, + "incremental_vacuum enabled with a max rootpage of zero" + ); + } +#endif testcase( pBt->db->flags & SQLITE_CellSizeCk ); pBt->db->flags &= ~SQLITE_CellSizeCk; for(i=0; (int)ipPager) ); sqlite3BtreeLeave(p); @@ -70325,11 +73073,11 @@ SQLITE_PRIVATE int sqlite3BtreeSetVersion(Btree *pBtree, int iVersion){ pBt->btsFlags &= ~BTS_NO_WAL; if( iVersion==1 ) pBt->btsFlags |= BTS_NO_WAL; - rc = sqlite3BtreeBeginTrans(pBtree, 0); + rc = sqlite3BtreeBeginTrans(pBtree, 0, 0); if( rc==SQLITE_OK ){ u8 *aData = pBt->pPage1->aData; if( aData[18]!=(u8)iVersion || aData[19]!=(u8)iVersion ){ - rc = sqlite3BtreeBeginTrans(pBtree, 2); + rc = sqlite3BtreeBeginTrans(pBtree, 2, 0); if( rc==SQLITE_OK ){ rc = sqlite3PagerWrite(pBt->pPage1->pDbPage); if( rc==SQLITE_OK ){ @@ -70769,7 +73517,7 @@ SQLITE_API int sqlite3_backup_step(sqlite3_backup *p, int nPage){ ** before this function exits. */ if( rc==SQLITE_OK && 0==sqlite3BtreeIsInReadTrans(p->pSrc) ){ - rc = sqlite3BtreeBeginTrans(p->pSrc, 0); + rc = sqlite3BtreeBeginTrans(p->pSrc, 0, 0); bCloseTrans = 1; } @@ -70785,10 +73533,10 @@ SQLITE_API int sqlite3_backup_step(sqlite3_backup *p, int nPage){ /* Lock the destination database, if it is not locked already. */ if( SQLITE_OK==rc && p->bDestLocked==0 - && SQLITE_OK==(rc = sqlite3BtreeBeginTrans(p->pDest, 2)) + && SQLITE_OK==(rc = sqlite3BtreeBeginTrans(p->pDest, 2, + (int*)&p->iDestSchema)) ){ p->bDestLocked = 1; - sqlite3BtreeGetMeta(p->pDest, BTREE_SCHEMA_VERSION, &p->iDestSchema); } /* Do not allow backup if the destination database is in WAL mode @@ -71232,8 +73980,7 @@ SQLITE_PRIVATE int sqlite3VdbeCheckMemInvariants(Mem *p){ if( p->flags & MEM_Null ){ /* Cannot be both MEM_Null and some other type */ - assert( (p->flags & (MEM_Int|MEM_Real|MEM_Str|MEM_Blob - |MEM_RowSet|MEM_Frame|MEM_Agg))==0 ); + assert( (p->flags & (MEM_Int|MEM_Real|MEM_Str|MEM_Blob|MEM_Agg))==0 ); /* If MEM_Null is set, then either the value is a pure NULL (the usual ** case) or it is a pointer set using sqlite3_bind_pointer() or @@ -71283,6 +74030,51 @@ SQLITE_PRIVATE int sqlite3VdbeCheckMemInvariants(Mem *p){ } #endif +#ifdef SQLITE_DEBUG +/* +** Check that string value of pMem agrees with its integer or real value. +** +** A single int or real value always converts to the same strings. But +** many different strings can be converted into the same int or real. +** If a table contains a numeric value and an index is based on the +** corresponding string value, then it is important that the string be +** derived from the numeric value, not the other way around, to ensure +** that the index and table are consistent. See ticket +** https://www.sqlite.org/src/info/343634942dd54ab (2018-01-31) for +** an example. +** +** This routine looks at pMem to verify that if it has both a numeric +** representation and a string representation then the string rep has +** been derived from the numeric and not the other way around. It returns +** true if everything is ok and false if there is a problem. +** +** This routine is for use inside of assert() statements only. +*/ +SQLITE_PRIVATE int sqlite3VdbeMemConsistentDualRep(Mem *p){ + char zBuf[100]; + char *z; + int i, j, incr; + if( (p->flags & MEM_Str)==0 ) return 1; + if( (p->flags & (MEM_Int|MEM_Real))==0 ) return 1; + if( p->flags & MEM_Int ){ + sqlite3_snprintf(sizeof(zBuf),zBuf,"%lld",p->u.i); + }else{ + sqlite3_snprintf(sizeof(zBuf),zBuf,"%!.15g",p->u.r); + } + z = p->z; + i = j = 0; + incr = 1; + if( p->enc!=SQLITE_UTF8 ){ + incr = 2; + if( p->enc==SQLITE_UTF16BE ) z++; + } + while( zBuf[j] ){ + if( zBuf[j++]!=z[i] ) return 0; + i += incr; + } + return 1; +} +#endif /* SQLITE_DEBUG */ /* ** If pMem is an object with a valid string representation, this routine @@ -71301,7 +74093,7 @@ SQLITE_PRIVATE int sqlite3VdbeChangeEncoding(Mem *pMem, int desiredEnc){ #ifndef SQLITE_OMIT_UTF16 int rc; #endif - assert( (pMem->flags&MEM_RowSet)==0 ); + assert( !sqlite3VdbeMemIsRowSet(pMem) ); assert( desiredEnc==SQLITE_UTF8 || desiredEnc==SQLITE_UTF16LE || desiredEnc==SQLITE_UTF16BE ); if( !(pMem->flags&MEM_Str) || pMem->enc==desiredEnc ){ @@ -71334,7 +74126,7 @@ SQLITE_PRIVATE int sqlite3VdbeChangeEncoding(Mem *pMem, int desiredEnc){ */ SQLITE_PRIVATE SQLITE_NOINLINE int sqlite3VdbeMemGrow(Mem *pMem, int n, int bPreserve){ assert( sqlite3VdbeCheckMemInvariants(pMem) ); - assert( (pMem->flags&MEM_RowSet)==0 ); + assert( !sqlite3VdbeMemIsRowSet(pMem) ); testcase( pMem->db==0 ); /* If the bPreserve flag is set to true, then the memory cell must already @@ -71422,7 +74214,7 @@ static SQLITE_NOINLINE int vdbeMemAddTerminator(Mem *pMem){ */ SQLITE_PRIVATE int sqlite3VdbeMemMakeWriteable(Mem *pMem){ assert( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) ); - assert( (pMem->flags&MEM_RowSet)==0 ); + assert( !sqlite3VdbeMemIsRowSet(pMem) ); if( (pMem->flags & (MEM_Str|MEM_Blob))!=0 ){ if( ExpandBlob(pMem) ) return SQLITE_NOMEM; if( pMem->szMalloc==0 || pMem->z!=pMem->zMalloc ){ @@ -71447,7 +74239,7 @@ SQLITE_PRIVATE int sqlite3VdbeMemExpandBlob(Mem *pMem){ int nByte; assert( pMem->flags & MEM_Zero ); assert( pMem->flags&MEM_Blob ); - assert( (pMem->flags&MEM_RowSet)==0 ); + assert( !sqlite3VdbeMemIsRowSet(pMem) ); assert( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) ); /* Set nByte to the number of bytes required to store the expanded blob. */ @@ -71502,7 +74294,7 @@ SQLITE_PRIVATE int sqlite3VdbeMemStringify(Mem *pMem, u8 enc, u8 bForce){ assert( !(fg&MEM_Zero) ); assert( !(fg&(MEM_Str|MEM_Blob)) ); assert( fg&(MEM_Int|MEM_Real) ); - assert( (pMem->flags&MEM_RowSet)==0 ); + assert( !sqlite3VdbeMemIsRowSet(pMem) ); assert( EIGHT_BYTE_ALIGNMENT(pMem) ); @@ -71523,7 +74315,8 @@ SQLITE_PRIVATE int sqlite3VdbeMemStringify(Mem *pMem, u8 enc, u8 bForce){ assert( fg & MEM_Real ); sqlite3_snprintf(nByte, pMem->z, "%!.15g", pMem->u.r); } - pMem->n = sqlite3Strlen30(pMem->z); + assert( pMem->z!=0 ); + pMem->n = sqlite3Strlen30NN(pMem->z); pMem->enc = SQLITE_UTF8; pMem->flags |= MEM_Str|MEM_Term; if( bForce ) pMem->flags &= ~(MEM_Int|MEM_Real); @@ -71560,6 +74353,35 @@ SQLITE_PRIVATE int sqlite3VdbeMemFinalize(Mem *pMem, FuncDef *pFunc){ return ctx.isError; } +/* +** Memory cell pAccum contains the context of an aggregate function. +** This routine calls the xValue method for that function and stores +** the results in memory cell pMem. +** +** SQLITE_ERROR is returned if xValue() reports an error. SQLITE_OK +** otherwise. +*/ +#ifndef SQLITE_OMIT_WINDOWFUNC +SQLITE_PRIVATE int sqlite3VdbeMemAggValue(Mem *pAccum, Mem *pOut, FuncDef *pFunc){ + sqlite3_context ctx; + Mem t; + assert( pFunc!=0 ); + assert( pFunc->xValue!=0 ); + assert( (pAccum->flags & MEM_Null)!=0 || pFunc==pAccum->u.pDef ); + assert( pAccum->db==0 || sqlite3_mutex_held(pAccum->db->mutex) ); + memset(&ctx, 0, sizeof(ctx)); + memset(&t, 0, sizeof(t)); + t.flags = MEM_Null; + t.db = pAccum->db; + sqlite3VdbeMemSetNull(pOut); + ctx.pOut = pOut; + ctx.pMem = pAccum; + ctx.pFunc = pFunc; + pFunc->xValue(&ctx); + return ctx.isError; +} +#endif /* SQLITE_OMIT_WINDOWFUNC */ + /* ** If the memory cell contains a value that must be freed by ** invoking the external callback in Mem.xDel, then this routine @@ -71578,15 +74400,8 @@ static SQLITE_NOINLINE void vdbeMemClearExternAndSetNull(Mem *p){ testcase( p->flags & MEM_Dyn ); } if( p->flags&MEM_Dyn ){ - assert( (p->flags&MEM_RowSet)==0 ); assert( p->xDel!=SQLITE_DYNAMIC && p->xDel!=0 ); p->xDel((void *)p->z); - }else if( p->flags&MEM_RowSet ){ - sqlite3RowSetClear(p->u.pRowSet); - }else if( p->flags&MEM_Frame ){ - VdbeFrame *pFrame = p->u.pFrame; - pFrame->pParent = pFrame->v->pDelFrame; - pFrame->v->pDelFrame = pFrame; } p->flags = MEM_Null; } @@ -71717,6 +74532,16 @@ SQLITE_PRIVATE double sqlite3VdbeRealValue(Mem *pMem){ } } +/* +** Return 1 if pMem represents true, and return 0 if pMem represents false. +** Return the value ifNull if pMem is NULL. +*/ +SQLITE_PRIVATE int sqlite3VdbeBooleanValue(Mem *pMem, int ifNull){ + if( pMem->flags & MEM_Int ) return pMem->u.i!=0; + if( pMem->flags & MEM_Null ) return ifNull; + return sqlite3VdbeRealValue(pMem)!=0.0; +} + /* ** The MEM structure is already a MEM_Real. Try to also make it a ** MEM_Int if we can. @@ -71724,7 +74549,7 @@ SQLITE_PRIVATE double sqlite3VdbeRealValue(Mem *pMem){ SQLITE_PRIVATE void sqlite3VdbeIntegerAffinity(Mem *pMem){ i64 ix; assert( pMem->flags & MEM_Real ); - assert( (pMem->flags & MEM_RowSet)==0 ); + assert( !sqlite3VdbeMemIsRowSet(pMem) ); assert( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) ); assert( EIGHT_BYTE_ALIGNMENT(pMem) ); @@ -71751,7 +74576,7 @@ SQLITE_PRIVATE void sqlite3VdbeIntegerAffinity(Mem *pMem){ */ SQLITE_PRIVATE int sqlite3VdbeMemIntegerify(Mem *pMem){ assert( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) ); - assert( (pMem->flags & MEM_RowSet)==0 ); + assert( !sqlite3VdbeMemIsRowSet(pMem) ); assert( EIGHT_BYTE_ALIGNMENT(pMem) ); pMem->u.i = sqlite3VdbeIntValue(pMem); @@ -71772,6 +74597,18 @@ SQLITE_PRIVATE int sqlite3VdbeMemRealify(Mem *pMem){ return SQLITE_OK; } +/* Compare a floating point value to an integer. Return true if the two +** values are the same within the precision of the floating point value. +** +** For some versions of GCC on 32-bit machines, if you do the more obvious +** comparison of "r1==(double)i" you sometimes get an answer of false even +** though the r1 and (double)i values are bit-for-bit the same. +*/ +static int sqlite3RealSameAsInt(double r1, sqlite3_int64 i){ + double r2 = (double)i; + return memcmp(&r1, &r2, sizeof(r1))==0; +} + /* ** Convert pMem so that it has types MEM_Real or MEM_Int or both. ** Invalidate any prior representations. @@ -71791,7 +74628,7 @@ SQLITE_PRIVATE int sqlite3VdbeMemNumerify(Mem *pMem){ }else{ i64 i = pMem->u.i; sqlite3AtoF(pMem->z, &pMem->u.r, pMem->n, pMem->enc); - if( rc==1 && pMem->u.r==(double)i ){ + if( rc==1 && sqlite3RealSameAsInt(pMem->u.r, i) ){ pMem->u.i = i; MemSetTypeFlag(pMem, MEM_Int); }else{ @@ -71923,7 +74760,7 @@ SQLITE_PRIVATE void sqlite3VdbeMemSetInt64(Mem *pMem, i64 val){ } /* A no-op destructor */ -static void sqlite3NoopDestructor(void *p){ UNUSED_PARAMETER(p); } +SQLITE_PRIVATE void sqlite3NoopDestructor(void *p){ UNUSED_PARAMETER(p); } /* ** Set the value stored in *pMem should already be a NULL. @@ -71957,26 +74794,36 @@ SQLITE_PRIVATE void sqlite3VdbeMemSetDouble(Mem *pMem, double val){ } #endif +#ifdef SQLITE_DEBUG +/* +** Return true if the Mem holds a RowSet object. This routine is intended +** for use inside of assert() statements. +*/ +SQLITE_PRIVATE int sqlite3VdbeMemIsRowSet(const Mem *pMem){ + return (pMem->flags&(MEM_Blob|MEM_Dyn))==(MEM_Blob|MEM_Dyn) + && pMem->xDel==sqlite3RowSetDelete; +} +#endif + /* ** Delete any previous value and set the value of pMem to be an ** empty boolean index. +** +** Return SQLITE_OK on success and SQLITE_NOMEM if a memory allocation +** error occurs. */ -SQLITE_PRIVATE void sqlite3VdbeMemSetRowSet(Mem *pMem){ +SQLITE_PRIVATE int sqlite3VdbeMemSetRowSet(Mem *pMem){ sqlite3 *db = pMem->db; + RowSet *p; assert( db!=0 ); - assert( (pMem->flags & MEM_RowSet)==0 ); + assert( !sqlite3VdbeMemIsRowSet(pMem) ); sqlite3VdbeMemRelease(pMem); - pMem->zMalloc = sqlite3DbMallocRawNN(db, 64); - if( db->mallocFailed ){ - pMem->flags = MEM_Null; - pMem->szMalloc = 0; - }else{ - assert( pMem->zMalloc ); - pMem->szMalloc = sqlite3DbMallocSize(db, pMem->zMalloc); - pMem->u.pRowSet = sqlite3RowSetInit(db, pMem->zMalloc, pMem->szMalloc); - assert( pMem->u.pRowSet!=0 ); - pMem->flags = MEM_RowSet; - } + p = sqlite3RowSetInit(db); + if( p==0 ) return SQLITE_NOMEM; + pMem->z = (char*)p; + pMem->flags = MEM_Blob|MEM_Dyn; + pMem->xDel = sqlite3RowSetDelete; + return SQLITE_OK; } /* @@ -72009,7 +74856,21 @@ SQLITE_PRIVATE void sqlite3VdbeMemAboutToChange(Vdbe *pVdbe, Mem *pMem){ Mem *pX; for(i=0, pX=pVdbe->aMem; inMem; i++, pX++){ if( pX->pScopyFrom==pMem ){ - pX->flags |= MEM_Undefined; + /* If pX is marked as a shallow copy of pMem, then verify that + ** no significant changes have been made to pX since the OP_SCopy. + ** A significant change would indicated a missed call to this + ** function for pX. Minor changes, such as adding or removing a + ** dual type, are allowed, as long as the underlying value is the + ** same. */ + u16 mFlags = pMem->flags & pX->flags & pX->mScopyFlags; + assert( (mFlags&MEM_Int)==0 || pMem->u.i==pX->u.i ); + assert( (mFlags&MEM_Real)==0 || pMem->u.r==pX->u.r ); + assert( (mFlags&MEM_Str)==0 || (pMem->n==pX->n && pMem->z==pX->z) ); + assert( (mFlags&MEM_Blob)==0 || sqlite3BlobCompare(pMem,pX)==0 ); + + /* pMem is the register that is changing. But also mark pX as + ** undefined so that we can quickly detect the shallow-copy error */ + pX->flags = MEM_Undefined; pX->pScopyFrom = 0; } } @@ -72030,7 +74891,7 @@ static SQLITE_NOINLINE void vdbeClrCopy(Mem *pTo, const Mem *pFrom, int eType){ sqlite3VdbeMemShallowCopy(pTo, pFrom, eType); } SQLITE_PRIVATE void sqlite3VdbeMemShallowCopy(Mem *pTo, const Mem *pFrom, int srcType){ - assert( (pFrom->flags & MEM_RowSet)==0 ); + assert( !sqlite3VdbeMemIsRowSet(pFrom) ); assert( pTo->db==pFrom->db ); if( VdbeMemDynamic(pTo) ){ vdbeClrCopy(pTo,pFrom,srcType); return; } memcpy(pTo, pFrom, MEMCELLSIZE); @@ -72048,7 +74909,7 @@ SQLITE_PRIVATE void sqlite3VdbeMemShallowCopy(Mem *pTo, const Mem *pFrom, int sr SQLITE_PRIVATE int sqlite3VdbeMemCopy(Mem *pTo, const Mem *pFrom){ int rc = SQLITE_OK; - assert( (pFrom->flags & MEM_RowSet)==0 ); + assert( !sqlite3VdbeMemIsRowSet(pFrom) ); if( VdbeMemDynamic(pTo) ) vdbeMemClearExternAndSetNull(pTo); memcpy(pTo, pFrom, MEMCELLSIZE); pTo->flags &= ~MEM_Dyn; @@ -72106,7 +74967,7 @@ SQLITE_PRIVATE int sqlite3VdbeMemSetStr( u16 flags = 0; /* New value for pMem->flags */ assert( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) ); - assert( (pMem->flags & MEM_RowSet)==0 ); + assert( !sqlite3VdbeMemIsRowSet(pMem) ); /* If z is a NULL pointer, set pMem to contain an SQL NULL. */ if( !z ){ @@ -72228,7 +75089,7 @@ SQLITE_PRIVATE int sqlite3VdbeMemFromBtree( /* Note: the calls to BtreeKeyFetch() and DataFetch() below assert() ** that both the BtShared and database handle mutexes are held. */ - assert( (pMem->flags & MEM_RowSet)==0 ); + assert( !sqlite3VdbeMemIsRowSet(pMem) ); zData = (char *)sqlite3BtreePayloadFetch(pCur, &available); assert( zData!=0 ); @@ -72252,7 +75113,7 @@ static SQLITE_NOINLINE const void *valueToText(sqlite3_value* pVal, u8 enc){ assert( pVal!=0 ); assert( pVal->db==0 || sqlite3_mutex_held(pVal->db->mutex) ); assert( (enc&3)==(enc&~SQLITE_UTF16_ALIGNED) ); - assert( (pVal->flags & MEM_RowSet)==0 ); + assert( !sqlite3VdbeMemIsRowSet(pVal) ); assert( (pVal->flags & (MEM_Null))==0 ); if( pVal->flags & (MEM_Blob|MEM_Str) ){ if( ExpandBlob(pVal) ) return 0; @@ -72274,6 +75135,7 @@ static SQLITE_NOINLINE const void *valueToText(sqlite3_value* pVal, u8 enc){ assert(pVal->enc==(enc & ~SQLITE_UTF16_ALIGNED) || pVal->db==0 || pVal->db->mallocFailed ); if( pVal->enc==(enc & ~SQLITE_UTF16_ALIGNED) ){ + assert( sqlite3VdbeMemConsistentDualRep(pVal) ); return pVal->z; }else{ return 0; @@ -72294,8 +75156,9 @@ SQLITE_PRIVATE const void *sqlite3ValueText(sqlite3_value* pVal, u8 enc){ if( !pVal ) return 0; assert( pVal->db==0 || sqlite3_mutex_held(pVal->db->mutex) ); assert( (enc&3)==(enc&~SQLITE_UTF16_ALIGNED) ); - assert( (pVal->flags & MEM_RowSet)==0 ); + assert( !sqlite3VdbeMemIsRowSet(pVal) ); if( (pVal->flags&(MEM_Str|MEM_Term))==(MEM_Str|MEM_Term) && pVal->enc==enc ){ + assert( sqlite3VdbeMemConsistentDualRep(pVal) ); return pVal->z; } if( pVal->flags&MEM_Null ){ @@ -72599,12 +75462,16 @@ static int valueFromExpr( 0, SQLITE_DYNAMIC); } #endif - #ifdef SQLITE_ENABLE_STAT3_OR_STAT4 else if( op==TK_FUNCTION && pCtx!=0 ){ rc = valueFromFunction(db, pExpr, enc, affinity, &pVal, pCtx); } #endif + else if( op==TK_TRUEFALSE ){ + pVal = valueNew(db, pCtx); + pVal->flags = MEM_Int; + pVal->u.i = pExpr->u.zToken[4]==0; + } *ppVal = pVal; return rc; @@ -72856,11 +75723,11 @@ SQLITE_PRIVATE int sqlite3Stat4Column( int iCol, /* Column to extract */ sqlite3_value **ppVal /* OUT: Extracted value */ ){ - u32 t; /* a column type code */ + u32 t = 0; /* a column type code */ int nHdr; /* Size of the header in the record */ int iHdr; /* Next unread header byte */ int iField; /* Next unread data byte */ - int szField; /* Size of the current data field */ + int szField = 0; /* Size of the current data field */ int i; /* Column index */ u8 *a = (u8*)pRec; /* Typecast byte array */ Mem *pMem = *ppVal; /* Write result into this Mem object */ @@ -73024,6 +75891,13 @@ SQLITE_PRIVATE void sqlite3VdbeSetSql(Vdbe *p, const char *z, int n, u8 prepFlag } assert( p->zSql==0 ); p->zSql = sqlite3DbStrNDup(p->db, z, n); +#ifdef SQLITE_ENABLE_NORMALIZE + assert( p->zNormSql==0 ); + if( p->zSql && (prepFlags & SQLITE_PREPARE_NORMALIZE)!=0 ){ + sqlite3Normalize(p, p->zSql, n, prepFlags); + assert( p->zNormSql!=0 || p->db->mallocFailed ); + } +#endif } /* @@ -73045,6 +75919,11 @@ SQLITE_PRIVATE void sqlite3VdbeSwap(Vdbe *pA, Vdbe *pB){ zTmp = pA->zSql; pA->zSql = pB->zSql; pB->zSql = zTmp; +#ifdef SQLITE_ENABLE_NORMALIZE + zTmp = pA->zNormSql; + pA->zNormSql = pB->zNormSql; + pB->zNormSql = zTmp; +#endif pB->expmask = pA->expmask; pB->prepFlags = pA->prepFlags; memcpy(pB->aCounter, pA->aCounter, sizeof(pB->aCounter)); @@ -73153,14 +76032,6 @@ SQLITE_PRIVATE int sqlite3VdbeAddOp3(Vdbe *p, int op, int p1, int p2, int p3){ #endif #ifdef SQLITE_DEBUG if( p->db->flags & SQLITE_VdbeAddopTrace ){ - int jj, kk; - Parse *pParse = p->pParse; - for(jj=kk=0; jjnColCache; jj++){ - struct yColCache *x = pParse->aColCache + jj; - printf(" r[%d]={%d:%d}", x->iReg, x->iTable, x->iColumn); - kk++; - } - if( kk ) printf("\n"); sqlite3VdbePrintOp(0, i, &p->aOp[i]); test_addop_breakpoint(); } @@ -73263,6 +76134,49 @@ SQLITE_PRIVATE int sqlite3VdbeAddOp4Dup8( return sqlite3VdbeAddOp4(p, op, p1, p2, p3, p4copy, p4type); } +#ifndef SQLITE_OMIT_EXPLAIN +/* +** Return the address of the current EXPLAIN QUERY PLAN baseline. +** 0 means "none". +*/ +SQLITE_PRIVATE int sqlite3VdbeExplainParent(Parse *pParse){ + VdbeOp *pOp; + if( pParse->addrExplain==0 ) return 0; + pOp = sqlite3VdbeGetOp(pParse->pVdbe, pParse->addrExplain); + return pOp->p2; +} + +/* +** Add a new OP_Explain opcode. +** +** If the bPush flag is true, then make this opcode the parent for +** subsequent Explains until sqlite3VdbeExplainPop() is called. +*/ +SQLITE_PRIVATE void sqlite3VdbeExplain(Parse *pParse, u8 bPush, const char *zFmt, ...){ + if( pParse->explain==2 ){ + char *zMsg; + Vdbe *v; + va_list ap; + int iThis; + va_start(ap, zFmt); + zMsg = sqlite3VMPrintf(pParse->db, zFmt, ap); + va_end(ap); + v = pParse->pVdbe; + iThis = v->nOp; + sqlite3VdbeAddOp4(v, OP_Explain, iThis, pParse->addrExplain, 0, + zMsg, P4_DYNAMIC); + if( bPush) pParse->addrExplain = iThis; + } +} + +/* +** Pop the EXPLAIN QUERY PLAN stack one level. +*/ +SQLITE_PRIVATE void sqlite3VdbeExplainPop(Parse *pParse){ + pParse->addrExplain = sqlite3VdbeExplainParent(pParse); +} +#endif /* SQLITE_OMIT_EXPLAIN */ + /* ** Add an OP_ParseSchema opcode. This routine is broken out from ** sqlite3VdbeAddOp4() since it needs to also needs to mark all btrees @@ -73352,6 +76266,12 @@ SQLITE_PRIVATE void sqlite3VdbeResolveLabel(Vdbe *v, int x){ assert( jnLabel ); assert( j>=0 ); if( p->aLabel ){ +#ifdef SQLITE_DEBUG + if( p->db->flags & SQLITE_VdbeAddopTrace ){ + printf("RESOLVE LABEL %d to %d\n", x, v->nOp); + } +#endif + assert( p->aLabel[j]==(-1) ); /* Labels may only be resolved once */ p->aLabel[j] = v->nOp; } } @@ -73501,6 +76421,32 @@ SQLITE_PRIVATE int sqlite3VdbeAssertMayAbort(Vdbe *v, int mayAbort){ } #endif /* SQLITE_DEBUG - the sqlite3AssertMayAbort() function */ +#ifdef SQLITE_DEBUG +/* +** Increment the nWrite counter in the VDBE if the cursor is not an +** ephemeral cursor, or if the cursor argument is NULL. +*/ +SQLITE_PRIVATE void sqlite3VdbeIncrWriteCounter(Vdbe *p, VdbeCursor *pC){ + if( pC==0 + || (pC->eCurType!=CURTYPE_SORTER + && pC->eCurType!=CURTYPE_PSEUDO + && !pC->isEphemeral) + ){ + p->nWrite++; + } +} +#endif + +#ifdef SQLITE_DEBUG +/* +** Assert if an Abort at this point in time might result in a corrupt +** database. +*/ +SQLITE_PRIVATE void sqlite3VdbeAssertAbortable(Vdbe *p){ + assert( p->nWrite==0 || p->usesStmtJournal ); +} +#endif + /* ** This routine is called after all opcodes have been inserted. It loops ** through all the opcodes and fixes up some details. @@ -73561,7 +76507,6 @@ static void resolveP2Values(Vdbe *p, int *pMaxFuncArgs){ break; } case OP_Next: - case OP_NextIfOpen: case OP_SorterNext: { pOp->p4.xAdvance = sqlite3BtreeNext; pOp->p4type = P4_ADVANCE; @@ -73571,8 +76516,7 @@ static void resolveP2Values(Vdbe *p, int *pMaxFuncArgs){ assert( pOp->p2>=0 ); break; } - case OP_Prev: - case OP_PrevIfOpen: { + case OP_Prev: { pOp->p4.xAdvance = sqlite3BtreePrevious; pOp->p4type = P4_ADVANCE; /* The code generator never codes any of these opcodes as a jump @@ -73660,6 +76604,17 @@ SQLITE_PRIVATE void sqlite3VdbeVerifyNoResultRow(Vdbe *p){ } #endif +/* +** Generate code (a single OP_Abortable opcode) that will +** verify that the VDBE program can safely call Abort in the current +** context. +*/ +#if defined(SQLITE_DEBUG) +SQLITE_PRIVATE void sqlite3VdbeVerifyAbortable(Vdbe *p, int onError){ + if( onError==OE_Abort ) sqlite3VdbeAddOp0(p, OP_Abortable); +} +#endif + /* ** This function returns a pointer to the array of opcodes associated with ** the Vdbe passed as the first argument. It is the callers responsibility @@ -74204,23 +77159,23 @@ static void displayP4Expr(StrAccum *p, Expr *pExpr){ const char *zOp = 0; switch( pExpr->op ){ case TK_STRING: - sqlite3XPrintf(p, "%Q", pExpr->u.zToken); + sqlite3_str_appendf(p, "%Q", pExpr->u.zToken); break; case TK_INTEGER: - sqlite3XPrintf(p, "%d", pExpr->u.iValue); + sqlite3_str_appendf(p, "%d", pExpr->u.iValue); break; case TK_NULL: - sqlite3XPrintf(p, "NULL"); + sqlite3_str_appendf(p, "NULL"); break; case TK_REGISTER: { - sqlite3XPrintf(p, "r[%d]", pExpr->iTable); + sqlite3_str_appendf(p, "r[%d]", pExpr->iTable); break; } case TK_COLUMN: { if( pExpr->iColumn<0 ){ - sqlite3XPrintf(p, "rowid"); + sqlite3_str_appendf(p, "rowid"); }else{ - sqlite3XPrintf(p, "c%d", (int)pExpr->iColumn); + sqlite3_str_appendf(p, "c%d", (int)pExpr->iColumn); } break; } @@ -74252,18 +77207,18 @@ static void displayP4Expr(StrAccum *p, Expr *pExpr){ case TK_NOTNULL: zOp = "NOTNULL"; break; default: - sqlite3XPrintf(p, "%s", "expr"); + sqlite3_str_appendf(p, "%s", "expr"); break; } if( zOp ){ - sqlite3XPrintf(p, "%s(", zOp); + sqlite3_str_appendf(p, "%s(", zOp); displayP4Expr(p, pExpr->pLeft); if( pExpr->pRight ){ - sqlite3StrAccumAppend(p, ",", 1); + sqlite3_str_append(p, ",", 1); displayP4Expr(p, pExpr->pRight); } - sqlite3StrAccumAppend(p, ")", 1); + sqlite3_str_append(p, ")", 1); } } #endif /* VDBE_DISPLAY_P4 && defined(SQLITE_ENABLE_CURSOR_HINTS) */ @@ -74284,14 +77239,15 @@ static char *displayP4(Op *pOp, char *zTemp, int nTemp){ int j; KeyInfo *pKeyInfo = pOp->p4.pKeyInfo; assert( pKeyInfo->aSortOrder!=0 ); - sqlite3XPrintf(&x, "k(%d", pKeyInfo->nKeyField); + sqlite3_str_appendf(&x, "k(%d", pKeyInfo->nKeyField); for(j=0; jnKeyField; j++){ CollSeq *pColl = pKeyInfo->aColl[j]; const char *zColl = pColl ? pColl->zName : ""; if( strcmp(zColl, "BINARY")==0 ) zColl = "B"; - sqlite3XPrintf(&x, ",%s%s", pKeyInfo->aSortOrder[j] ? "-" : "", zColl); + sqlite3_str_appendf(&x, ",%s%s", + pKeyInfo->aSortOrder[j] ? "-" : "", zColl); } - sqlite3StrAccumAppend(&x, ")", 1); + sqlite3_str_append(&x, ")", 1); break; } #ifdef SQLITE_ENABLE_CURSOR_HINTS @@ -74302,31 +77258,31 @@ static char *displayP4(Op *pOp, char *zTemp, int nTemp){ #endif case P4_COLLSEQ: { CollSeq *pColl = pOp->p4.pColl; - sqlite3XPrintf(&x, "(%.20s)", pColl->zName); + sqlite3_str_appendf(&x, "(%.20s)", pColl->zName); break; } case P4_FUNCDEF: { FuncDef *pDef = pOp->p4.pFunc; - sqlite3XPrintf(&x, "%s(%d)", pDef->zName, pDef->nArg); + sqlite3_str_appendf(&x, "%s(%d)", pDef->zName, pDef->nArg); break; } #if defined(SQLITE_DEBUG) || defined(VDBE_PROFILE) case P4_FUNCCTX: { FuncDef *pDef = pOp->p4.pCtx->pFunc; - sqlite3XPrintf(&x, "%s(%d)", pDef->zName, pDef->nArg); + sqlite3_str_appendf(&x, "%s(%d)", pDef->zName, pDef->nArg); break; } #endif case P4_INT64: { - sqlite3XPrintf(&x, "%lld", *pOp->p4.pI64); + sqlite3_str_appendf(&x, "%lld", *pOp->p4.pI64); break; } case P4_INT32: { - sqlite3XPrintf(&x, "%d", pOp->p4.i); + sqlite3_str_appendf(&x, "%d", pOp->p4.i); break; } case P4_REAL: { - sqlite3XPrintf(&x, "%.16g", *pOp->p4.pReal); + sqlite3_str_appendf(&x, "%.16g", *pOp->p4.pReal); break; } case P4_MEM: { @@ -74334,9 +77290,9 @@ static char *displayP4(Op *pOp, char *zTemp, int nTemp){ if( pMem->flags & MEM_Str ){ zP4 = pMem->z; }else if( pMem->flags & MEM_Int ){ - sqlite3XPrintf(&x, "%lld", pMem->u.i); + sqlite3_str_appendf(&x, "%lld", pMem->u.i); }else if( pMem->flags & MEM_Real ){ - sqlite3XPrintf(&x, "%.16g", pMem->u.r); + sqlite3_str_appendf(&x, "%.16g", pMem->u.r); }else if( pMem->flags & MEM_Null ){ zP4 = "NULL"; }else{ @@ -74348,7 +77304,7 @@ static char *displayP4(Op *pOp, char *zTemp, int nTemp){ #ifndef SQLITE_OMIT_VIRTUALTABLE case P4_VTAB: { sqlite3_vtab *pVtab = pOp->p4.pVtab->pVtab; - sqlite3XPrintf(&x, "vtab:%p", pVtab); + sqlite3_str_appendf(&x, "vtab:%p", pVtab); break; } #endif @@ -74358,14 +77314,14 @@ static char *displayP4(Op *pOp, char *zTemp, int nTemp){ int n = ai[0]; /* The first element of an INTARRAY is always the ** count of the number of elements to follow */ for(i=1; i<=n; i++){ - sqlite3XPrintf(&x, ",%d", ai[i]); + sqlite3_str_appendf(&x, ",%d", ai[i]); } zTemp[0] = '['; - sqlite3StrAccumAppend(&x, "]", 1); + sqlite3_str_append(&x, "]", 1); break; } case P4_SUBPROGRAM: { - sqlite3XPrintf(&x, "program"); + sqlite3_str_appendf(&x, "program"); break; } case P4_DYNBLOB: @@ -74374,7 +77330,7 @@ static char *displayP4(Op *pOp, char *zTemp, int nTemp){ break; } case P4_TABLE: { - sqlite3XPrintf(&x, "%s", pOp->p4.pTab->zName); + sqlite3_str_appendf(&x, "%s", pOp->p4.pTab->zName); break; } default: { @@ -74475,7 +77431,7 @@ SQLITE_PRIVATE void sqlite3VdbeLeave(Vdbe *p){ /* ** Print a single opcode. This routine is used for debugging only. */ -SQLITE_PRIVATE void sqlite3VdbePrintOp(FILE *pOut, int pc, Op *pOp){ +SQLITE_PRIVATE void sqlite3VdbePrintOp(FILE *pOut, int pc, VdbeOp *pOp){ char *zP4; char zPtr[50]; char zCom[100]; @@ -74544,9 +77500,8 @@ static void releaseMemArray(Mem *p, int N){ */ testcase( p->flags & MEM_Agg ); testcase( p->flags & MEM_Dyn ); - testcase( p->flags & MEM_Frame ); - testcase( p->flags & MEM_RowSet ); - if( p->flags&(MEM_Agg|MEM_Dyn|MEM_Frame|MEM_RowSet) ){ + testcase( p->xDel==sqlite3VdbeFrameMemDel ); + if( p->flags&(MEM_Agg|MEM_Dyn) ){ sqlite3VdbeMemRelease(p); }else if( p->szMalloc ){ sqlite3DbFreeNN(db, p->zMalloc); @@ -74558,6 +77513,35 @@ static void releaseMemArray(Mem *p, int N){ } } +#ifdef SQLITE_DEBUG +/* +** Verify that pFrame is a valid VdbeFrame pointer. Return true if it is +** and false if something is wrong. +** +** This routine is intended for use inside of assert() statements only. +*/ +SQLITE_PRIVATE int sqlite3VdbeFrameIsValid(VdbeFrame *pFrame){ + if( pFrame->iFrameMagic!=SQLITE_FRAME_MAGIC ) return 0; + return 1; +} +#endif + + +/* +** This is a destructor on a Mem object (which is really an sqlite3_value) +** that deletes the Frame object that is attached to it as a blob. +** +** This routine does not delete the Frame right away. It merely adds the +** frame to a list of frames to be deleted when the Vdbe halts. +*/ +SQLITE_PRIVATE void sqlite3VdbeFrameMemDel(void *pArg){ + VdbeFrame *pFrame = (VdbeFrame*)pArg; + assert( sqlite3VdbeFrameIsValid(pFrame) ); + pFrame->pParent = pFrame->v->pDelFrame; + pFrame->v->pDelFrame = pFrame; +} + + /* ** Delete a VdbeFrame object and its contents. VdbeFrame objects are ** allocated by the OP_Program opcode in sqlite3VdbeExec(). @@ -74566,6 +77550,7 @@ SQLITE_PRIVATE void sqlite3VdbeFrameDelete(VdbeFrame *p){ int i; Mem *aMem = VdbeFrameMem(p); VdbeCursor **apCsr = (VdbeCursor **)&aMem[p->nChildMem]; + assert( sqlite3VdbeFrameIsValid(p) ); for(i=0; inChildCsr; i++){ sqlite3VdbeFreeCursor(p->v, apCsr[i]); } @@ -74586,6 +77571,9 @@ SQLITE_PRIVATE void sqlite3VdbeFrameDelete(VdbeFrame *p){ ** p->explain==2, only OP_Explain instructions are listed and these ** are shown in a different format. p->explain==2 is used to implement ** EXPLAIN QUERY PLAN. +** 2018-04-24: In p->explain==2 mode, the OP_Init opcodes of triggers +** are also shown, so that the boundaries between the main program and +** each trigger are clear. ** ** When p->explain==1, first the main program is listed, then each of ** the trigger subprograms are listed one by one. @@ -74648,7 +77636,7 @@ SQLITE_PRIVATE int sqlite3VdbeList( } } - do{ + while(1){ /* Loop exits via break */ i = p->pc++; if( i>=nRow ){ p->rc = SQLITE_OK; @@ -74694,7 +77682,10 @@ SQLITE_PRIVATE int sqlite3VdbeList( nRow += pOp->p4.pProgram->nOp; } } - }while( p->explain==2 && pOp->opcode!=OP_Explain ); + if( p->explain<2 ) break; + if( pOp->opcode==OP_Explain ) break; + if( pOp->opcode==OP_Init && p->pc>1 ) break; + } if( rc==SQLITE_OK ){ if( db->u1.isInterrupted ){ @@ -75856,7 +78847,7 @@ SQLITE_PRIVATE int sqlite3VdbeReset(Vdbe *p){ */ sqlite3VdbeHalt(p); - /* If the VDBE has be run even partially, then transfer the error code + /* If the VDBE has been run even partially, then transfer the error code ** and error message from the VDBE into the main database structure. But ** if the VDBE has just been set to run but has not actually executed any ** instructions yet, leave the main database error information unchanged. @@ -75886,6 +78877,9 @@ SQLITE_PRIVATE int sqlite3VdbeReset(Vdbe *p){ sqlite3DbFree(db, p->zErrMsg); p->zErrMsg = 0; p->pResultSet = 0; +#ifdef SQLITE_DEBUG + p->nWrite = 0; +#endif /* Save profiling information from this VDBE run. */ @@ -76001,6 +78995,9 @@ SQLITE_PRIVATE void sqlite3VdbeClearObject(sqlite3 *db, Vdbe *p){ vdbeFreeOpArray(db, p->aOp, p->nOp); sqlite3DbFree(db, p->aColName); sqlite3DbFree(db, p->zSql); +#ifdef SQLITE_ENABLE_NORMALIZE + sqlite3DbFree(db, p->zNormSql); +#endif #ifdef SQLITE_ENABLE_STMT_SCANSTATUS { int i; @@ -76765,7 +79762,7 @@ static int isAllZero(const char *z, int n){ ** is less than, equal to, or greater than the second, respectively. ** If one blob is a prefix of the other, then the shorter is the lessor. */ -static SQLITE_NOINLINE int sqlite3BlobCompare(const Mem *pB1, const Mem *pB2){ +SQLITE_PRIVATE SQLITE_NOINLINE int sqlite3BlobCompare(const Mem *pB1, const Mem *pB2){ int c; int n1 = pB1->n; int n2 = pB2->n; @@ -76808,13 +79805,10 @@ static int sqlite3IntFloatCompare(i64 i, double r){ i64 y; double s; if( r<-9223372036854775808.0 ) return +1; - if( r>9223372036854775807.0 ) return -1; + if( r>=9223372036854775808.0 ) return -1; y = (i64)r; if( iy ){ - if( y==SMALLEST_INT64 && r>0.0 ) return -1; - return +1; - } + if( i>y ) return +1; s = (double)i; if( sr ) return +1; @@ -76838,7 +79832,7 @@ SQLITE_PRIVATE int sqlite3MemCompare(const Mem *pMem1, const Mem *pMem2, const C f1 = pMem1->flags; f2 = pMem2->flags; combined_flags = f1|f2; - assert( (combined_flags & MEM_RowSet)==0 ); + assert( !sqlite3VdbeMemIsRowSet(pMem1) && !sqlite3VdbeMemIsRowSet(pMem2) ); /* If one value is NULL, it is less than the other. If both values ** are NULL, return 0. @@ -76983,7 +79977,7 @@ SQLITE_PRIVATE int sqlite3VdbeRecordCompareWithSkip( u32 idx1; /* Offset of first type in header */ int rc = 0; /* Return value */ Mem *pRhs = pPKey2->aMem; /* Next field of pPKey2 to compare */ - KeyInfo *pKeyInfo = pPKey2->pKeyInfo; + KeyInfo *pKeyInfo; const unsigned char *aKey1 = (const unsigned char *)pKey1; Mem mem1; @@ -77078,7 +80072,7 @@ SQLITE_PRIVATE int sqlite3VdbeRecordCompareWithSkip( if( (d1+mem1.n) > (unsigned)nKey1 ){ pPKey2->errCode = (u8)SQLITE_CORRUPT_BKPT; return 0; /* Corruption */ - }else if( pKeyInfo->aColl[i] ){ + }else if( (pKeyInfo = pPKey2->pKeyInfo)->aColl[i] ){ mem1.enc = pKeyInfo->enc; mem1.db = pKeyInfo->db; mem1.flags = MEM_Str; @@ -77129,7 +80123,7 @@ SQLITE_PRIVATE int sqlite3VdbeRecordCompareWithSkip( } if( rc!=0 ){ - if( pKeyInfo->aSortOrder[i] ){ + if( pPKey2->pKeyInfo->aSortOrder[i] ){ rc = -rc; } assert( vdbeRecordCompareDebug(nKey1, pKey1, pPKey2, rc) ); @@ -77138,10 +80132,11 @@ SQLITE_PRIVATE int sqlite3VdbeRecordCompareWithSkip( } i++; + if( i==pPKey2->nField ) break; pRhs++; d1 += sqlite3VdbeSerialTypeLen(serial_type); idx1 += sqlite3VarintLen(serial_type); - }while( idx1<(unsigned)szHdr1 && inField && d1<=(unsigned)nKey1 ); + }while( idx1<(unsigned)szHdr1 && d1<=(unsigned)nKey1 ); /* No memory allocation is ever used on mem1. Prove this using ** the following assert(). If the assert() fails, it indicates a @@ -77153,7 +80148,7 @@ SQLITE_PRIVATE int sqlite3VdbeRecordCompareWithSkip( ** value. */ assert( CORRUPT_DB || vdbeRecordCompareDebug(nKey1, pKey1, pPKey2, pPKey2->default_rc) - || pKeyInfo->db->mallocFailed + || pPKey2->pKeyInfo->db->mallocFailed ); pPKey2->eqSeen = 1; return pPKey2->default_rc; @@ -77404,7 +80399,9 @@ SQLITE_PRIVATE int sqlite3VdbeIdxRowid(sqlite3 *db, BtCursor *pCur, i64 *rowid){ (void)getVarint32((u8*)m.z, szHdr); testcase( szHdr==3 ); testcase( szHdr==m.n ); - if( unlikely(szHdr<3 || (int)szHdr>m.n) ){ + testcase( szHdr>0x7fffffff ); + assert( m.n>=0 ); + if( unlikely(szHdr<3 || szHdr>(unsigned)m.n) ){ goto idx_rowid_corruption; } @@ -77479,7 +80476,7 @@ SQLITE_PRIVATE int sqlite3VdbeIdxKeyCompare( if( rc ){ return rc; } - *res = sqlite3VdbeRecordCompare(m.n, m.z, pUnpacked); + *res = sqlite3VdbeRecordCompareWithSkip(m.n, m.z, pUnpacked, 0); sqlite3VdbeMemRelease(&m); return SQLITE_OK; } @@ -77511,11 +80508,19 @@ SQLITE_PRIVATE void sqlite3VdbeCountChanges(Vdbe *v){ ** programs obsolete. Removing user-defined functions or collating ** sequences, or changing an authorization function are the types of ** things that make prepared statements obsolete. +** +** If iCode is 1, then expiration is advisory. The statement should +** be reprepared before being restarted, but if it is already running +** it is allowed to run to completion. +** +** Internally, this function just sets the Vdbe.expired flag on all +** prepared statements. The flag is set to 1 for an immediate expiration +** and set to 2 for an advisory expiration. */ -SQLITE_PRIVATE void sqlite3ExpirePreparedStatements(sqlite3 *db){ +SQLITE_PRIVATE void sqlite3ExpirePreparedStatements(sqlite3 *db, int iCode){ Vdbe *p; for(p = db->pVdbe; p; p=p->pNext){ - p->expired = 1; + p->expired = iCode+1; } } @@ -78077,14 +81082,12 @@ SQLITE_API void sqlite3_result_double(sqlite3_context *pCtx, double rVal){ SQLITE_API void sqlite3_result_error(sqlite3_context *pCtx, const char *z, int n){ assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) ); pCtx->isError = SQLITE_ERROR; - pCtx->fErrorOrAux = 1; sqlite3VdbeMemSetStr(pCtx->pOut, z, n, SQLITE_UTF8, SQLITE_TRANSIENT); } #ifndef SQLITE_OMIT_UTF16 SQLITE_API void sqlite3_result_error16(sqlite3_context *pCtx, const void *z, int n){ assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) ); pCtx->isError = SQLITE_ERROR; - pCtx->fErrorOrAux = 1; sqlite3VdbeMemSetStr(pCtx->pOut, z, n, SQLITE_UTF16NATIVE, SQLITE_TRANSIENT); } #endif @@ -78190,8 +81193,7 @@ SQLITE_API int sqlite3_result_zeroblob64(sqlite3_context *pCtx, u64 n){ return SQLITE_OK; } SQLITE_API void sqlite3_result_error_code(sqlite3_context *pCtx, int errCode){ - pCtx->isError = errCode; - pCtx->fErrorOrAux = 1; + pCtx->isError = errCode ? errCode : -1; #ifdef SQLITE_DEBUG if( pCtx->pVdbe ) pCtx->pVdbe->rcApp = errCode; #endif @@ -78205,7 +81207,6 @@ SQLITE_API void sqlite3_result_error_code(sqlite3_context *pCtx, int errCode){ SQLITE_API void sqlite3_result_error_toobig(sqlite3_context *pCtx){ assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) ); pCtx->isError = SQLITE_TOOBIG; - pCtx->fErrorOrAux = 1; sqlite3VdbeMemSetStr(pCtx->pOut, "string or blob too big", -1, SQLITE_UTF8, SQLITE_STATIC); } @@ -78215,7 +81216,6 @@ SQLITE_API void sqlite3_result_error_nomem(sqlite3_context *pCtx){ assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) ); sqlite3VdbeMemSetNull(pCtx->pOut); pCtx->isError = SQLITE_NOMEM_BKPT; - pCtx->fErrorOrAux = 1; sqlite3OomFault(pCtx->pOut->db); } @@ -78497,28 +81497,6 @@ SQLITE_PRIVATE sqlite3_int64 sqlite3StmtCurrentTime(sqlite3_context *p){ return *piTime; } -/* -** The following is the implementation of an SQL function that always -** fails with an error message stating that the function is used in the -** wrong context. The sqlite3_overload_function() API might construct -** SQL function that use this routine so that the functions will exist -** for name resolution but are actually overloaded by the xFindFunction -** method of virtual tables. -*/ -SQLITE_PRIVATE void sqlite3InvalidFunction( - sqlite3_context *context, /* The function calling context */ - int NotUsed, /* Number of arguments to the function */ - sqlite3_value **NotUsed2 /* Value of each argument */ -){ - const char *zName = context->pFunc->zName; - char *zErr; - UNUSED_PARAMETER2(NotUsed, NotUsed2); - zErr = sqlite3_mprintf( - "unable to use function %s in the requested context", zName); - sqlite3_result_error(context, zErr, -1); - sqlite3_free(zErr); -} - /* ** Create a new aggregate context for p and return a pointer to ** its pMem->z element. @@ -78622,10 +81600,7 @@ SQLITE_API void sqlite3_set_auxdata( pAuxData->iAuxArg = iArg; pAuxData->pNextAux = pVdbe->pAuxData; pVdbe->pAuxData = pAuxData; - if( pCtx->fErrorOrAux==0 ){ - pCtx->isError = 0; - pCtx->fErrorOrAux = 1; - } + if( pCtx->isError==0 ) pCtx->isError = -1; }else if( pAuxData->xDeleteAux ){ pAuxData->xDeleteAux(pAuxData->pAux); } @@ -78705,7 +81680,7 @@ static const Mem *columnNullValue(void){ /* .xDel = */ (void(*)(void*))0, #ifdef SQLITE_DEBUG /* .pScopyFrom = */ (Mem*)0, - /* .pFiller = */ (void*)0, + /* .mScopyFlags= */ 0, #endif }; return &nullMem; @@ -79381,7 +82356,9 @@ SQLITE_API int sqlite3_stmt_status(sqlite3_stmt *pStmt, int op, int resetFlag){ Vdbe *pVdbe = (Vdbe*)pStmt; u32 v; #ifdef SQLITE_ENABLE_API_ARMOR - if( !pStmt ){ + if( !pStmt + || (op!=SQLITE_STMTSTATUS_MEMUSED && (op<0||op>=ArraySize(pVdbe->aCounter))) + ){ (void)SQLITE_MISUSE_BKPT; return 0; } @@ -79435,6 +82412,16 @@ SQLITE_API char *sqlite3_expanded_sql(sqlite3_stmt *pStmt){ #endif } +#ifdef SQLITE_ENABLE_NORMALIZE +/* +** Return the normalized SQL associated with a prepared statement. +*/ +SQLITE_API const char *sqlite3_normalized_sql(sqlite3_stmt *pStmt){ + Vdbe *p = (Vdbe *)pStmt; + return p ? p->zNormSql : 0; +} +#endif /* SQLITE_ENABLE_NORMALIZE */ + #ifdef SQLITE_ENABLE_PREUPDATE_HOOK /* ** Allocate and populate an UnpackedRecord structure based on the serialized @@ -79787,17 +82774,17 @@ SQLITE_PRIVATE char *sqlite3VdbeExpandSql( while( *zRawSql ){ const char *zStart = zRawSql; while( *(zRawSql++)!='\n' && *zRawSql ); - sqlite3StrAccumAppend(&out, "-- ", 3); + sqlite3_str_append(&out, "-- ", 3); assert( (zRawSql - zStart) > 0 ); - sqlite3StrAccumAppend(&out, zStart, (int)(zRawSql-zStart)); + sqlite3_str_append(&out, zStart, (int)(zRawSql-zStart)); } }else if( p->nVar==0 ){ - sqlite3StrAccumAppend(&out, zRawSql, sqlite3Strlen30(zRawSql)); + sqlite3_str_append(&out, zRawSql, sqlite3Strlen30(zRawSql)); }else{ while( zRawSql[0] ){ n = findNextHostParameter(zRawSql, &nToken); assert( n>0 ); - sqlite3StrAccumAppend(&out, zRawSql, n); + sqlite3_str_append(&out, zRawSql, n); zRawSql += n; assert( zRawSql[0] || nToken==0 ); if( nToken==0 ) break; @@ -79823,11 +82810,11 @@ SQLITE_PRIVATE char *sqlite3VdbeExpandSql( assert( idx>0 && idx<=p->nVar ); pVar = &p->aVar[idx-1]; if( pVar->flags & MEM_Null ){ - sqlite3StrAccumAppend(&out, "NULL", 4); + sqlite3_str_append(&out, "NULL", 4); }else if( pVar->flags & MEM_Int ){ - sqlite3XPrintf(&out, "%lld", pVar->u.i); + sqlite3_str_appendf(&out, "%lld", pVar->u.i); }else if( pVar->flags & MEM_Real ){ - sqlite3XPrintf(&out, "%!.15g", pVar->u.r); + sqlite3_str_appendf(&out, "%!.15g", pVar->u.r); }else if( pVar->flags & MEM_Str ){ int nOut; /* Number of bytes of the string text to include in output */ #ifndef SQLITE_OMIT_UTF16 @@ -79837,7 +82824,7 @@ SQLITE_PRIVATE char *sqlite3VdbeExpandSql( utf8.db = db; sqlite3VdbeMemSetStr(&utf8, pVar->z, pVar->n, enc, SQLITE_STATIC); if( SQLITE_NOMEM==sqlite3VdbeChangeEncoding(&utf8, SQLITE_UTF8) ){ - out.accError = STRACCUM_NOMEM; + out.accError = SQLITE_NOMEM; out.nAlloc = 0; } pVar = &utf8; @@ -79850,38 +82837,38 @@ SQLITE_PRIVATE char *sqlite3VdbeExpandSql( while( nOutn && (pVar->z[nOut]&0xc0)==0x80 ){ nOut++; } } #endif - sqlite3XPrintf(&out, "'%.*q'", nOut, pVar->z); + sqlite3_str_appendf(&out, "'%.*q'", nOut, pVar->z); #ifdef SQLITE_TRACE_SIZE_LIMIT if( nOutn ){ - sqlite3XPrintf(&out, "/*+%d bytes*/", pVar->n-nOut); + sqlite3_str_appendf(&out, "/*+%d bytes*/", pVar->n-nOut); } #endif #ifndef SQLITE_OMIT_UTF16 if( enc!=SQLITE_UTF8 ) sqlite3VdbeMemRelease(&utf8); #endif }else if( pVar->flags & MEM_Zero ){ - sqlite3XPrintf(&out, "zeroblob(%d)", pVar->u.nZero); + sqlite3_str_appendf(&out, "zeroblob(%d)", pVar->u.nZero); }else{ int nOut; /* Number of bytes of the blob to include in output */ assert( pVar->flags & MEM_Blob ); - sqlite3StrAccumAppend(&out, "x'", 2); + sqlite3_str_append(&out, "x'", 2); nOut = pVar->n; #ifdef SQLITE_TRACE_SIZE_LIMIT if( nOut>SQLITE_TRACE_SIZE_LIMIT ) nOut = SQLITE_TRACE_SIZE_LIMIT; #endif for(i=0; iz[i]&0xff); + sqlite3_str_appendf(&out, "%02x", pVar->z[i]&0xff); } - sqlite3StrAccumAppend(&out, "'", 1); + sqlite3_str_append(&out, "'", 1); #ifdef SQLITE_TRACE_SIZE_LIMIT if( nOutn ){ - sqlite3XPrintf(&out, "/*+%d bytes*/", pVar->n-nOut); + sqlite3_str_appendf(&out, "/*+%d bytes*/", pVar->n-nOut); } #endif } } } - if( out.accError ) sqlite3StrAccumReset(&out); + if( out.accError ) sqlite3_str_reset(&out); return sqlite3StrAccumFinish(&out); } @@ -80013,32 +83000,56 @@ SQLITE_API int sqlite3_found_count = 0; ** feature is used for test suite validation only and does not appear an ** production builds. ** -** M is an integer, 2 or 3, that indices how many different ways the -** branch can go. It is usually 2. "I" is the direction the branch -** goes. 0 means falls through. 1 means branch is taken. 2 means the -** second alternative branch is taken. +** M is an integer between 2 and 4. 2 indicates a ordinary two-way +** branch (I=0 means fall through and I=1 means taken). 3 indicates +** a 3-way branch where the third way is when one of the operands is +** NULL. 4 indicates the OP_Jump instruction which has three destinations +** depending on whether the first operand is less than, equal to, or greater +** than the second. ** ** iSrcLine is the source code line (from the __LINE__ macro) that -** generated the VDBE instruction. This instrumentation assumes that all -** source code is in a single file (the amalgamation). Special values 1 -** and 2 for the iSrcLine parameter mean that this particular branch is -** always taken or never taken, respectively. +** generated the VDBE instruction combined with flag bits. The source +** code line number is in the lower 24 bits of iSrcLine and the upper +** 8 bytes are flags. The lower three bits of the flags indicate +** values for I that should never occur. For example, if the branch is +** always taken, the flags should be 0x05 since the fall-through and +** alternate branch are never taken. If a branch is never taken then +** flags should be 0x06 since only the fall-through approach is allowed. +** +** Bit 0x04 of the flags indicates an OP_Jump opcode that is only +** interested in equal or not-equal. In other words, I==0 and I==2 +** should be treated the same. +** +** Since only a line number is retained, not the filename, this macro +** only works for amalgamation builds. But that is ok, since these macros +** should be no-ops except for special builds used to measure test coverage. */ #if !defined(SQLITE_VDBE_COVERAGE) # define VdbeBranchTaken(I,M) #else # define VdbeBranchTaken(I,M) vdbeTakeBranch(pOp->iSrcLine,I,M) - static void vdbeTakeBranch(int iSrcLine, u8 I, u8 M){ - if( iSrcLine<=2 && ALWAYS(iSrcLine>0) ){ - M = iSrcLine; - /* Assert the truth of VdbeCoverageAlwaysTaken() and - ** VdbeCoverageNeverTaken() */ - assert( (M & I)==I ); - }else{ - if( sqlite3GlobalConfig.xVdbeBranch==0 ) return; /*NO_TEST*/ - sqlite3GlobalConfig.xVdbeBranch(sqlite3GlobalConfig.pVdbeBranchArg, - iSrcLine,I,M); - } + static void vdbeTakeBranch(u32 iSrcLine, u8 I, u8 M){ + u8 mNever; + assert( I<=2 ); /* 0: fall through, 1: taken, 2: alternate taken */ + assert( M<=4 ); /* 2: two-way branch, 3: three-way branch, 4: OP_Jump */ + assert( I> 24; + assert( (I & mNever)==0 ); + if( sqlite3GlobalConfig.xVdbeBranch==0 ) return; /*NO_TEST*/ + I |= mNever; + if( M==2 ) I |= 0x04; + if( M==4 ){ + I |= 0x08; + if( (mNever&0x08)!=0 && (I&0x05)!=0) I |= 0x05; /*NO_TEST*/ + } + sqlite3GlobalConfig.xVdbeBranch(sqlite3GlobalConfig.pVdbeBranchArg, + iSrcLine&0xffffff, I, M); } #endif @@ -80155,6 +83166,11 @@ static void applyNumericAffinity(Mem *pRec, int bTryForInt){ pRec->flags |= MEM_Real; if( bTryForInt ) sqlite3VdbeIntegerAffinity(pRec); } + /* TEXT->NUMERIC is many->one. Hence, it is important to invalidate the + ** string representation after computing a numeric equivalent, because the + ** string representation might not be the canonical representation for the + ** numeric value. Ticket [343634942dd54ab57b7024] 2018-01-31. */ + pRec->flags &= ~MEM_Str; } /* @@ -80364,7 +83380,7 @@ static void memTracePrint(Mem *p){ }else if( p->flags & MEM_Real ){ printf(" r:%g", p->u.r); #endif - }else if( p->flags & MEM_RowSet ){ + }else if( sqlite3VdbeMemIsRowSet(p) ){ printf(" (rowset)"); }else{ char zBuf[200]; @@ -80623,7 +83639,7 @@ SQLITE_PRIVATE int sqlite3VdbeExec( assert( pOp>=aOp && pOp<&aOp[p->nOp]); #ifdef VDBE_PROFILE - start = sqlite3Hwtime(); + start = sqlite3NProfileCnt ? sqlite3NProfileCnt : sqlite3Hwtime(); #endif nVmStep++; #ifdef SQLITE_ENABLE_STMT_SCANSTATUS @@ -80890,6 +83906,9 @@ case OP_Yield: { /* in1, jump */ */ case OP_HaltIfNull: { /* in3 */ pIn3 = &aMem[pOp->p3]; +#ifdef SQLITE_DEBUG + if( pOp->p2==OE_Abort ){ sqlite3VdbeAssertAbortable(p); } +#endif if( (pIn3->flags & MEM_Null)==0 ) break; /* Fall through into OP_Halt */ } @@ -80929,6 +83948,9 @@ case OP_Halt: { int pcx; pcx = (int)(pOp - aOp); +#ifdef SQLITE_DEBUG + if( pOp->p2==OE_Abort ){ sqlite3VdbeAssertAbortable(p); } +#endif if( pOp->p1==SQLITE_OK && p->pFrame ){ /* Halt the sub-program. Return control to the parent frame. */ pFrame = p->pFrame; @@ -81112,6 +84134,9 @@ case OP_Null: { /* out2 */ assert( pOp->p3<=(p->nMem+1 - p->nCursor) ); pOut->flags = nullFlag = pOp->p1 ? (MEM_Null|MEM_Cleared) : MEM_Null; pOut->n = 0; +#ifdef SQLITE_DEBUG + pOut->uTemp = 0; +#endif while( cnt>0 ){ pOut++; memAboutToChange(p, pOut); @@ -81233,6 +84258,7 @@ case OP_Copy: { pOut = &aMem[pOp->p2]; assert( pOut!=pIn1 ); while( 1 ){ + memAboutToChange(p, pOut); sqlite3VdbeMemShallowCopy(pOut, pIn1, MEM_Ephem); Deephemeralize(pOut); #ifdef SQLITE_DEBUG @@ -81265,7 +84291,8 @@ case OP_SCopy: { /* out2 */ assert( pOut!=pIn1 ); sqlite3VdbeMemShallowCopy(pOut, pIn1, MEM_Ephem); #ifdef SQLITE_DEBUG - if( pOut->pScopyFrom==0 ) pOut->pScopyFrom = pIn1; + pOut->pScopyFrom = pIn1; + pOut->mScopyFlags = pIn1->flags; #endif break; } @@ -81899,7 +84926,12 @@ case OP_Ge: { /* same as TK_GE, jump, in1, in3 */ if( (flags1 | flags3)&MEM_Str ){ if( (flags1 & (MEM_Int|MEM_Real|MEM_Str))==MEM_Str ){ applyNumericAffinity(pIn1,0); - testcase( flags3!=pIn3->flags ); /* Possible if pIn1==pIn3 */ + assert( flags3==pIn3->flags ); + /* testcase( flags3!=pIn3->flags ); + ** this used to be possible with pIn1==pIn3, but not since + ** the column cache was removed. The following assignment + ** is essentially a no-op. But, it provides defense-in-depth + ** in case our analysis is incorrect, so it is left in. */ flags3 = pIn3->flags; } if( (flags3 & (MEM_Int|MEM_Real|MEM_Str))==MEM_Str ){ @@ -82113,11 +85145,11 @@ case OP_Compare: { */ case OP_Jump: { /* jump */ if( iCompare<0 ){ - VdbeBranchTaken(0,3); pOp = &aOp[pOp->p1 - 1]; + VdbeBranchTaken(0,4); pOp = &aOp[pOp->p1 - 1]; }else if( iCompare==0 ){ - VdbeBranchTaken(1,3); pOp = &aOp[pOp->p2 - 1]; + VdbeBranchTaken(1,4); pOp = &aOp[pOp->p2 - 1]; }else{ - VdbeBranchTaken(2,3); pOp = &aOp[pOp->p3 - 1]; + VdbeBranchTaken(2,4); pOp = &aOp[pOp->p3 - 1]; } break; } @@ -82147,18 +85179,8 @@ case OP_Or: { /* same as TK_OR, in1, in2, out3 */ int v1; /* Left operand: 0==FALSE, 1==TRUE, 2==UNKNOWN or NULL */ int v2; /* Right operand: 0==FALSE, 1==TRUE, 2==UNKNOWN or NULL */ - pIn1 = &aMem[pOp->p1]; - if( pIn1->flags & MEM_Null ){ - v1 = 2; - }else{ - v1 = sqlite3VdbeIntValue(pIn1)!=0; - } - pIn2 = &aMem[pOp->p2]; - if( pIn2->flags & MEM_Null ){ - v2 = 2; - }else{ - v2 = sqlite3VdbeIntValue(pIn2)!=0; - } + v1 = sqlite3VdbeBooleanValue(&aMem[pOp->p1], 2); + v2 = sqlite3VdbeBooleanValue(&aMem[pOp->p2], 2); if( pOp->opcode==OP_And ){ static const unsigned char and_logic[] = { 0, 0, 0, 0, 1, 2, 0, 2, 2 }; v1 = and_logic[v1*3+v2]; @@ -82176,6 +85198,35 @@ case OP_Or: { /* same as TK_OR, in1, in2, out3 */ break; } +/* Opcode: IsTrue P1 P2 P3 P4 * +** Synopsis: r[P2] = coalesce(r[P1]==TRUE,P3) ^ P4 +** +** This opcode implements the IS TRUE, IS FALSE, IS NOT TRUE, and +** IS NOT FALSE operators. +** +** Interpret the value in register P1 as a boolean value. Store that +** boolean (a 0 or 1) in register P2. Or if the value in register P1 is +** NULL, then the P3 is stored in register P2. Invert the answer if P4 +** is 1. +** +** The logic is summarized like this: +** +**
        +**
      • If P3==0 and P4==0 then r[P2] := r[P1] IS TRUE +**
      • If P3==1 and P4==1 then r[P2] := r[P1] IS FALSE +**
      • If P3==0 and P4==1 then r[P2] := r[P1] IS NOT TRUE +**
      • If P3==1 and P4==0 then r[P2] := r[P1] IS NOT FALSE +**
      +*/ +case OP_IsTrue: { /* in1, out2 */ + assert( pOp->p4type==P4_INT32 ); + assert( pOp->p4.i==0 || pOp->p4.i==1 ); + assert( pOp->p3==0 || pOp->p3==1 ); + sqlite3VdbeMemSetInt64(&aMem[pOp->p2], + sqlite3VdbeBooleanValue(&aMem[pOp->p1], pOp->p3) ^ pOp->p4.i); + break; +} + /* Opcode: Not P1 P2 * * * ** Synopsis: r[P2]= !r[P1] ** @@ -82186,16 +85237,16 @@ case OP_Or: { /* same as TK_OR, in1, in2, out3 */ case OP_Not: { /* same as TK_NOT, in1, out2 */ pIn1 = &aMem[pOp->p1]; pOut = &aMem[pOp->p2]; - sqlite3VdbeMemSetNull(pOut); if( (pIn1->flags & MEM_Null)==0 ){ - pOut->flags = MEM_Int; - pOut->u.i = !sqlite3VdbeIntValue(pIn1); + sqlite3VdbeMemSetInt64(pOut, !sqlite3VdbeBooleanValue(pIn1,0)); + }else{ + sqlite3VdbeMemSetNull(pOut); } break; } /* Opcode: BitNot P1 P2 * * * -** Synopsis: r[P1]= ~r[P1] +** Synopsis: r[P2]= ~r[P1] ** ** Interpret the content of register P1 as an integer. Store the ** ones-complement of the P1 value into register P2. If P1 holds @@ -82256,30 +85307,25 @@ case OP_Once: { /* jump */ ** is considered true if it is numeric and non-zero. If the value ** in P1 is NULL then take the jump if and only if P3 is non-zero. */ +case OP_If: { /* jump, in1 */ + int c; + c = sqlite3VdbeBooleanValue(&aMem[pOp->p1], pOp->p3); + VdbeBranchTaken(c!=0, 2); + if( c ) goto jump_to_p2; + break; +} + /* Opcode: IfNot P1 P2 P3 * * ** ** Jump to P2 if the value in register P1 is False. The value ** is considered false if it has a numeric value of zero. If the value ** in P1 is NULL then take the jump if and only if P3 is non-zero. */ -case OP_If: /* jump, in1 */ case OP_IfNot: { /* jump, in1 */ int c; - pIn1 = &aMem[pOp->p1]; - if( pIn1->flags & MEM_Null ){ - c = pOp->p3; - }else{ -#ifdef SQLITE_OMIT_FLOATING_POINT - c = sqlite3VdbeIntValue(pIn1)!=0; -#else - c = sqlite3VdbeRealValue(pIn1)!=0.0; -#endif - if( pOp->opcode==OP_IfNot ) c = !c; - } + c = !sqlite3VdbeBooleanValue(&aMem[pOp->p1], !pOp->p3); VdbeBranchTaken(c!=0, 2); - if( c ){ - goto jump_to_p2; - } + if( c ) goto jump_to_p2; break; } @@ -82340,7 +85386,7 @@ case OP_IfNullRow: { /* jump */ ** P2 is the column number for the argument to the sqlite_offset() function. ** This opcode does not use P2 itself, but the P2 value is used by the ** code generator. The P1, P2, and P3 operands to this opcode are the -** as as for OP_Column. +** same as for OP_Column. ** ** This opcode is only available if SQLite is compiled with the ** -DSQLITE_ENABLE_OFFSET_SQL_FUNC option. @@ -82815,17 +85861,25 @@ case OP_MakeRecord: { if( nVarintdb->aLimit[SQLITE_LIMIT_LENGTH] ){ - goto too_big; - } /* Make sure the output register has a buffer large enough to store ** the new record. The output register (pOp->p3) is not allowed to ** be one of the input registers (because the following call to ** sqlite3VdbeMemClearAndResize() could clobber the value before it is used). */ - if( sqlite3VdbeMemClearAndResize(pOut, (int)nByte) ){ - goto no_mem; + if( nByte+nZero<=pOut->szMalloc ){ + /* The output register is already large enough to hold the record. + ** No error checks or buffer enlargement is required */ + pOut->z = pOut->zMalloc; + }else{ + /* Need to make sure that the output is not too big and then enlarge + ** the output register to hold the full result */ + if( nByte+nZero>db->aLimit[SQLITE_LIMIT_LENGTH] ){ + goto too_big; + } + if( sqlite3VdbeMemClearAndResize(pOut, (int)nByte) ){ + goto no_mem; + } } zNewRecord = (u8 *)pOut->z; @@ -83015,7 +86069,7 @@ case OP_Savepoint: { } } if( isSchemaChange ){ - sqlite3ExpirePreparedStatements(db); + sqlite3ExpirePreparedStatements(db, 0); sqlite3ResetAllSchemasOfConnection(db); db->mDbFlags |= DBFLAG_SchemaChange; } @@ -83157,8 +86211,7 @@ case OP_AutoCommit: { */ case OP_Transaction: { Btree *pBt; - int iMeta; - int iGen; + int iMeta = 0; assert( p->bIsReader ); assert( p->readOnly==0 || pOp->p2==0 ); @@ -83171,7 +86224,7 @@ case OP_Transaction: { pBt = db->aDb[pOp->p1].pBt; if( pBt ){ - rc = sqlite3BtreeBeginTrans(pBt, pOp->p2); + rc = sqlite3BtreeBeginTrans(pBt, pOp->p2, &iMeta); testcase( rc==SQLITE_BUSY_SNAPSHOT ); testcase( rc==SQLITE_BUSY_RECOVERY ); if( rc!=SQLITE_OK ){ @@ -83204,19 +86257,17 @@ case OP_Transaction: { p->nStmtDefCons = db->nDeferredCons; p->nStmtDefImmCons = db->nDeferredImmCons; } - - /* Gather the schema version number for checking: + } + assert( pOp->p5==0 || pOp->p4type==P4_INT32 ); + if( pOp->p5 + && (iMeta!=pOp->p3 + || db->aDb[pOp->p1].pSchema->iGeneration!=pOp->p4.i) + ){ + /* ** IMPLEMENTATION-OF: R-03189-51135 As each SQL statement runs, the schema ** version is checked to ensure that the schema has not changed since the ** SQL statement was prepared. */ - sqlite3BtreeGetMeta(pBt, BTREE_SCHEMA_VERSION, (u32 *)&iMeta); - iGen = db->aDb[pOp->p1].pSchema->iGeneration; - }else{ - iGen = iMeta = 0; - } - assert( pOp->p5==0 || pOp->p4type==P4_INT32 ); - if( pOp->p5 && (iMeta!=pOp->p3 || iGen!=pOp->p4.i) ){ sqlite3DbFree(db, p->zErrMsg); p->zErrMsg = sqlite3DbStrDup(db, "database schema has changed"); /* If the schema-cookie from the database file matches the cookie @@ -83285,6 +86336,8 @@ case OP_ReadCookie: { /* out2 */ */ case OP_SetCookie: { Db *pDb; + + sqlite3VdbeIncrWriteCounter(p, 0); assert( pOp->p2p1>=0 && pOp->p1nDb ); assert( DbMaskTest(p->btreeMask, pOp->p1) ); @@ -83305,7 +86358,7 @@ case OP_SetCookie: { if( pOp->p1==1 ){ /* Invalidate all prepared statements whenever the TEMP database ** schema is changed. Ticket #1644 */ - sqlite3ExpirePreparedStatements(db); + sqlite3ExpirePreparedStatements(db, 0); p->expired = 0; } if( rc ) goto abort_due_to_error; @@ -83323,59 +86376,78 @@ case OP_SetCookie: { ** values need not be contiguous but all P1 values should be small integers. ** It is an error for P1 to be negative. ** -** If P5!=0 then use the content of register P2 as the root page, not -** the value of P2 itself. -** -** There will be a read lock on the database whenever there is an -** open cursor. If the database was unlocked prior to this instruction -** then a read lock is acquired as part of this instruction. A read -** lock allows other processes to read the database but prohibits -** any other process from modifying the database. The read lock is -** released when all cursors are closed. If this instruction attempts -** to get a read lock but fails, the script terminates with an -** SQLITE_BUSY error code. +** Allowed P5 bits: +**
        +**
      • 0x02 OPFLAG_SEEKEQ: This cursor will only be used for +** equality lookups (implemented as a pair of opcodes OP_SeekGE/OP_IdxGT +** of OP_SeekLE/OP_IdxGT) +**
      ** ** The P4 value may be either an integer (P4_INT32) or a pointer to ** a KeyInfo structure (P4_KEYINFO). If it is a pointer to a KeyInfo -** structure, then said structure defines the content and collating -** sequence of the index being opened. Otherwise, if P4 is an integer -** value, it is set to the number of columns in the table. +** object, then table being opened must be an [index b-tree] where the +** KeyInfo object defines the content and collating +** sequence of that index b-tree. Otherwise, if P4 is an integer +** value, then the table being opened must be a [table b-tree] with a +** number of columns no less than the value of P4. ** ** See also: OpenWrite, ReopenIdx */ /* Opcode: ReopenIdx P1 P2 P3 P4 P5 ** Synopsis: root=P2 iDb=P3 ** -** The ReopenIdx opcode works exactly like ReadOpen except that it first -** checks to see if the cursor on P1 is already open with a root page -** number of P2 and if it is this opcode becomes a no-op. In other words, +** The ReopenIdx opcode works like OP_OpenRead except that it first +** checks to see if the cursor on P1 is already open on the same +** b-tree and if it is this opcode becomes a no-op. In other words, ** if the cursor is already open, do not reopen it. ** -** The ReopenIdx opcode may only be used with P5==0 and with P4 being -** a P4_KEYINFO object. Furthermore, the P3 value must be the same as -** every other ReopenIdx or OpenRead for the same cursor number. +** The ReopenIdx opcode may only be used with P5==0 or P5==OPFLAG_SEEKEQ +** and with P4 being a P4_KEYINFO object. Furthermore, the P3 value must +** be the same as every other ReopenIdx or OpenRead for the same cursor +** number. ** -** See the OpenRead opcode documentation for additional information. +** Allowed P5 bits: +**
        +**
      • 0x02 OPFLAG_SEEKEQ: This cursor will only be used for +** equality lookups (implemented as a pair of opcodes OP_SeekGE/OP_IdxGT +** of OP_SeekLE/OP_IdxGT) +**
      +** +** See also: OP_OpenRead, OP_OpenWrite */ /* Opcode: OpenWrite P1 P2 P3 P4 P5 ** Synopsis: root=P2 iDb=P3 ** ** Open a read/write cursor named P1 on the table or index whose root -** page is P2. Or if P5!=0 use the content of register P2 to find the -** root page. +** page is P2 (or whose root page is held in register P2 if the +** OPFLAG_P2ISREG bit is set in P5 - see below). ** ** The P4 value may be either an integer (P4_INT32) or a pointer to ** a KeyInfo structure (P4_KEYINFO). If it is a pointer to a KeyInfo -** structure, then said structure defines the content and collating -** sequence of the index being opened. Otherwise, if P4 is an integer -** value, it is set to the number of columns in the table, or to the -** largest index of any column of the table that is actually used. +** object, then table being opened must be an [index b-tree] where the +** KeyInfo object defines the content and collating +** sequence of that index b-tree. Otherwise, if P4 is an integer +** value, then the table being opened must be a [table b-tree] with a +** number of columns no less than the value of P4. ** -** This instruction works just like OpenRead except that it opens the cursor -** in read/write mode. For a given table, there can be one or more read-only -** cursors or a single read/write cursor but not both. +** Allowed P5 bits: +**
        +**
      • 0x02 OPFLAG_SEEKEQ: This cursor will only be used for +** equality lookups (implemented as a pair of opcodes OP_SeekGE/OP_IdxGT +** of OP_SeekLE/OP_IdxGT) +**
      • 0x08 OPFLAG_FORDELETE: This cursor is used only to seek +** and subsequently delete entries in an index btree. This is a +** hint to the storage engine that the storage engine is allowed to +** ignore. The hint is not used by the official SQLite b*tree storage +** engine, but is used by COMDB2. +**
      • 0x10 OPFLAG_P2ISREG: Use the content of register P2 +** as the root page, not the value of P2 itself. +**
      +** +** This instruction works like OpenRead except that it opens the cursor +** in read/write mode. ** -** See also OpenRead. +** See also: OP_OpenRead, OP_ReopenIdx */ case OP_ReopenIdx: { int nField; @@ -83404,7 +86476,7 @@ case OP_OpenWrite: assert( pOp->opcode==OP_OpenRead || pOp->opcode==OP_ReopenIdx || p->readOnly==0 ); - if( p->expired ){ + if( p->expired==1 ){ rc = SQLITE_ABORT_ROLLBACK; goto abort_due_to_error; } @@ -83431,6 +86503,7 @@ case OP_OpenWrite: if( pOp->p5 & OPFLAG_P2ISREG ){ assert( p2>0 ); assert( p2<=(p->nMem+1 - p->nCursor) ); + assert( pOp->opcode==OP_OpenWrite ); pIn2 = &aMem[p2]; assert( memIsValid(pIn2) ); assert( (pIn2->flags & MEM_Int)!=0 ); @@ -83559,7 +86632,7 @@ case OP_OpenEphemeral: { rc = sqlite3BtreeOpen(db->pVfs, 0, db, &pCx->pBtx, BTREE_OMIT_JOURNAL | BTREE_SINGLE | pOp->p5, vfsFlags); if( rc==SQLITE_OK ){ - rc = sqlite3BtreeBeginTrans(pCx->pBtx, 1); + rc = sqlite3BtreeBeginTrans(pCx->pBtx, 1, 0); } if( rc==SQLITE_OK ){ /* If a transient index is required, create it by calling @@ -83786,10 +86859,10 @@ case OP_ColumnsUsed: { ** ** See also: Found, NotFound, SeekGt, SeekGe, SeekLt */ -case OP_SeekLT: /* jump, in3 */ -case OP_SeekLE: /* jump, in3 */ -case OP_SeekGE: /* jump, in3 */ -case OP_SeekGT: { /* jump, in3 */ +case OP_SeekLT: /* jump, in3, group */ +case OP_SeekLE: /* jump, in3, group */ +case OP_SeekGE: /* jump, in3, group */ +case OP_SeekGT: { /* jump, in3, group */ int res; /* Comparison result */ int oc; /* Opcode */ VdbeCursor *pC; /* The cursor to seek */ @@ -83967,6 +87040,25 @@ case OP_SeekGT: { /* jump, in3 */ break; } +/* Opcode: SeekHit P1 P2 * * * +** Synopsis: seekHit=P2 +** +** Set the seekHit flag on cursor P1 to the value in P2. +** The seekHit flag is used by the IfNoHope opcode. +** +** P1 must be a valid b-tree cursor. P2 must be a boolean value, +** either 0 or 1. +*/ +case OP_SeekHit: { + VdbeCursor *pC; + assert( pOp->p1>=0 && pOp->p1nCursor ); + pC = p->apCsr[pOp->p1]; + assert( pC!=0 ); + assert( pOp->p2==0 || pOp->p2==1 ); + pC->seekHit = pOp->p2 & 1; + break; +} + /* Opcode: Found P1 P2 P3 P4 * ** Synopsis: key=r[P3@P4] ** @@ -84001,7 +87093,34 @@ case OP_SeekGT: { /* jump, in3 */ ** advanced in either direction. In other words, the Next and Prev ** opcodes do not work after this operation. ** -** See also: Found, NotExists, NoConflict +** See also: Found, NotExists, NoConflict, IfNoHope +*/ +/* Opcode: IfNoHope P1 P2 P3 P4 * +** Synopsis: key=r[P3@P4] +** +** Register P3 is the first of P4 registers that form an unpacked +** record. +** +** Cursor P1 is on an index btree. If the seekHit flag is set on P1, then +** this opcode is a no-op. But if the seekHit flag of P1 is clear, then +** check to see if there is any entry in P1 that matches the +** prefix identified by P3 and P4. If no entry matches the prefix, +** jump to P2. Otherwise fall through. +** +** This opcode behaves like OP_NotFound if the seekHit +** flag is clear and it behaves like OP_Noop if the seekHit flag is set. +** +** This opcode is used in IN clause processing for a multi-column key. +** If an IN clause is attached to an element of the key other than the +** left-most element, and if there are no matches on the most recent +** seek over the whole key, then it might be that one of the key element +** to the left is prohibiting a match, and hence there is "no hope" of +** any match regardless of how many IN clause elements are checked. +** In such a case, we abandon the IN clause search early, using this +** opcode. The opcode name comes from the fact that the +** jump is taken if there is "no hope" of achieving a match. +** +** See also: NotFound, SeekHit */ /* Opcode: NoConflict P1 P2 P3 P4 * ** Synopsis: key=r[P3@P4] @@ -84026,6 +87145,14 @@ case OP_SeekGT: { /* jump, in3 */ ** ** See also: NotFound, Found, NotExists */ +case OP_IfNoHope: { /* jump, in3 */ + VdbeCursor *pC; + assert( pOp->p1>=0 && pOp->p1nCursor ); + pC = p->apCsr[pOp->p1]; + assert( pC!=0 ); + if( pC->seekHit ) break; + /* Fall through into OP_NotFound */ +} case OP_NoConflict: /* jump, in3 */ case OP_NotFound: /* jump, in3 */ case OP_Found: { /* jump, in3 */ @@ -84163,18 +87290,26 @@ case OP_SeekRowid: { /* jump, in3 */ pIn3 = &aMem[pOp->p3]; if( (pIn3->flags & MEM_Int)==0 ){ + /* Make sure pIn3->u.i contains a valid integer representation of + ** the key value, but do not change the datatype of the register, as + ** other parts of the perpared statement might be depending on the + ** current datatype. */ + u16 origFlags = pIn3->flags; + int isNotInt; applyAffinity(pIn3, SQLITE_AFF_NUMERIC, encoding); - if( (pIn3->flags & MEM_Int)==0 ) goto jump_to_p2; + isNotInt = (pIn3->flags & MEM_Int)==0; + pIn3->flags = origFlags; + if( isNotInt ) goto jump_to_p2; } /* Fall through into OP_NotExists */ case OP_NotExists: /* jump, in3 */ pIn3 = &aMem[pOp->p3]; - assert( pIn3->flags & MEM_Int ); + assert( (pIn3->flags & MEM_Int)!=0 || pOp->opcode==OP_SeekRowid ); assert( pOp->p1>=0 && pOp->p1nCursor ); pC = p->apCsr[pOp->p1]; assert( pC!=0 ); #ifdef SQLITE_DEBUG - pC->seekOp = 0; + pC->seekOp = OP_SeekRowid; #endif assert( pC->isTable ); assert( pC->eCurType==CURTYPE_BTREE ); @@ -84249,6 +87384,7 @@ case OP_NewRowid: { /* out2 */ assert( pOp->p1>=0 && pOp->p1nCursor ); pC = p->apCsr[pOp->p1]; assert( pC!=0 ); + assert( pC->isTable ); assert( pC->eCurType==CURTYPE_BTREE ); assert( pC->uc.pCursor!=0 ); { @@ -84417,6 +87553,7 @@ case OP_InsertInt: { assert( (pOp->p5 & OPFLAG_ISNOOP) || pC->isTable ); assert( pOp->p4type==P4_TABLE || pOp->p4type>=P4_STATIC ); REGISTER_TRACE(pOp->p2, pData); + sqlite3VdbeIncrWriteCounter(p, pC); if( pOp->opcode==OP_Insert ){ pKey = &aMem[pOp->p3]; @@ -84531,6 +87668,7 @@ case OP_Delete: { assert( pC->eCurType==CURTYPE_BTREE ); assert( pC->uc.pCursor!=0 ); assert( pC->deferredMoveto==0 ); + sqlite3VdbeIncrWriteCounter(p, pC); #ifdef SQLITE_DEBUG if( pOp->p4type==P4_TABLE && HasRowid(pOp->p4.pTab) && pOp->p5==0 ){ @@ -84699,10 +87837,10 @@ case OP_SorterData: { ** If the P1 cursor must be pointing to a valid row (not a NULL row) ** of a real table, not a pseudo-table. ** -** If P3!=0 then this opcode is allowed to make an ephermeral pointer +** If P3!=0 then this opcode is allowed to make an ephemeral pointer ** into the database page. That means that the content of the output ** register will be invalidated as soon as the cursor moves - including -** moves caused by other cursors that "save" the the current cursors +** moves caused by other cursors that "save" the current cursors ** position in order that they can write to the same table. If P3==0 ** then a copy of the data is made into memory. P3!=0 is faster, but ** P3==0 is safer. @@ -84825,6 +87963,9 @@ case OP_NullRow: { assert( pC->uc.pCursor!=0 ); sqlite3BtreeClearCursor(pC->uc.pCursor); } +#ifdef SQLITE_DEBUG + if( pC->seekOp==0 ) pC->seekOp = OP_NullRow; +#endif break; } @@ -84943,7 +88084,7 @@ case OP_Sort: { /* jump */ p->aCounter[SQLITE_STMTSTATUS_SORT]++; /* Fall through into OP_Rewind */ } -/* Opcode: Rewind P1 P2 * * * +/* Opcode: Rewind P1 P2 * * P5 ** ** The next use of the Rowid or Column or Next instruction for P1 ** will refer to the first entry in the database table or index. @@ -84951,6 +88092,10 @@ case OP_Sort: { /* jump */ ** If the table or index is not empty, fall through to the following ** instruction. ** +** If P5 is non-zero and the table is not empty, then the "skip-next" +** flag is set on the cursor so that the next OP_Next instruction +** executed on it is a no-op. +** ** This opcode leaves the cursor configured to move in forward order, ** from the beginning toward the end. In other words, the cursor is ** configured to use Next, not Prev. @@ -84975,6 +88120,9 @@ case OP_Rewind: { /* jump */ pCrsr = pC->uc.pCursor; assert( pCrsr ); rc = sqlite3BtreeFirst(pCrsr, &res); +#ifndef SQLITE_OMIT_WINDOWFUNC + if( pOp->p5 ) sqlite3BtreeSkipNext(pCrsr); +#endif pC->deferredMoveto = 0; pC->cacheStatus = CACHE_STALE; } @@ -85011,12 +88159,7 @@ case OP_Rewind: { /* jump */ ** If P5 is positive and the jump is taken, then event counter ** number P5-1 in the prepared statement is incremented. ** -** See also: Prev, NextIfOpen -*/ -/* Opcode: NextIfOpen P1 P2 P3 P4 P5 -** -** This opcode works just like Next except that if cursor P1 is not -** open it behaves a no-op. +** See also: Prev */ /* Opcode: Prev P1 P2 P3 P4 P5 ** @@ -85044,11 +88187,6 @@ case OP_Rewind: { /* jump */ ** If P5 is positive and the jump is taken, then event counter ** number P5-1 in the prepared statement is incremented. */ -/* Opcode: PrevIfOpen P1 P2 P3 P4 P5 -** -** This opcode works just like Prev except that if cursor P1 is not -** open it behaves a no-op. -*/ /* Opcode: SorterNext P1 P2 * * P5 ** ** This opcode works just like OP_Next except that P1 must be a @@ -85063,10 +88201,6 @@ case OP_SorterNext: { /* jump */ assert( isSorter(pC) ); rc = sqlite3VdbeSorterNext(db, pC); goto next_tail; -case OP_PrevIfOpen: /* jump */ -case OP_NextIfOpen: /* jump */ - if( p->apCsr[pOp->p1]==0 ) break; - /* Fall through */ case OP_Prev: /* jump */ case OP_Next: /* jump */ assert( pOp->p1>=0 && pOp->p1nCursor ); @@ -85077,17 +88211,17 @@ case OP_Next: /* jump */ assert( pC->eCurType==CURTYPE_BTREE ); assert( pOp->opcode!=OP_Next || pOp->p4.xAdvance==sqlite3BtreeNext ); assert( pOp->opcode!=OP_Prev || pOp->p4.xAdvance==sqlite3BtreePrevious ); - assert( pOp->opcode!=OP_NextIfOpen || pOp->p4.xAdvance==sqlite3BtreeNext ); - assert( pOp->opcode!=OP_PrevIfOpen || pOp->p4.xAdvance==sqlite3BtreePrevious); - /* The Next opcode is only used after SeekGT, SeekGE, and Rewind. + /* The Next opcode is only used after SeekGT, SeekGE, Rewind, and Found. ** The Prev opcode is only used after SeekLT, SeekLE, and Last. */ - assert( pOp->opcode!=OP_Next || pOp->opcode!=OP_NextIfOpen + assert( pOp->opcode!=OP_Next || pC->seekOp==OP_SeekGT || pC->seekOp==OP_SeekGE - || pC->seekOp==OP_Rewind || pC->seekOp==OP_Found); - assert( pOp->opcode!=OP_Prev || pOp->opcode!=OP_PrevIfOpen + || pC->seekOp==OP_Rewind || pC->seekOp==OP_Found + || pC->seekOp==OP_NullRow); + assert( pOp->opcode!=OP_Prev || pC->seekOp==OP_SeekLT || pC->seekOp==OP_SeekLE - || pC->seekOp==OP_Last ); + || pC->seekOp==OP_Last + || pC->seekOp==OP_NullRow); rc = pOp->p4.xAdvance(pC->uc.pCursor, pOp->p3); next_tail: @@ -85149,6 +88283,7 @@ case OP_IdxInsert: { /* in2 */ assert( pOp->p1>=0 && pOp->p1nCursor ); pC = p->apCsr[pOp->p1]; + sqlite3VdbeIncrWriteCounter(p, pC); assert( pC!=0 ); assert( isSorter(pC)==(pOp->opcode==OP_SorterInsert) ); pIn2 = &aMem[pOp->p2]; @@ -85195,6 +88330,7 @@ case OP_IdxDelete: { pC = p->apCsr[pOp->p1]; assert( pC!=0 ); assert( pC->eCurType==CURTYPE_BTREE ); + sqlite3VdbeIncrWriteCounter(p, pC); pCrsr = pC->uc.pCursor; assert( pCrsr!=0 ); assert( pOp->p5==0 ); @@ -85368,7 +88504,13 @@ case OP_IdxGE: { /* jump */ } r.aMem = &aMem[pOp->p3]; #ifdef SQLITE_DEBUG - { int i; for(i=0; ip3+i, &aMem[pOp->p3+i]); + } + } #endif res = 0; /* Not needed. Only used to silence a warning. */ rc = sqlite3VdbeIdxKeyCompare(db, pC, &r, &res); @@ -85417,6 +88559,7 @@ case OP_Destroy: { /* out2 */ int iMoved; int iDb; + sqlite3VdbeIncrWriteCounter(p, 0); assert( p->readOnly==0 ); assert( pOp->p1>1 ); pOut = out2Prerelease(p, pOp); @@ -85466,6 +88609,7 @@ case OP_Destroy: { /* out2 */ case OP_Clear: { int nChange; + sqlite3VdbeIncrWriteCounter(p, 0); nChange = 0; assert( p->readOnly==0 ); assert( DbMaskTest(p->btreeMask, pOp->p2) ); @@ -85515,13 +88659,14 @@ case OP_ResetSorter: { ** Allocate a new b-tree in the main database file if P1==0 or in the ** TEMP database file if P1==1 or in an attached database if ** P1>1. The P3 argument must be 1 (BTREE_INTKEY) for a rowid table -** it must be 2 (BTREE_BLOBKEY) for a index or WITHOUT ROWID table. +** it must be 2 (BTREE_BLOBKEY) for an index or WITHOUT ROWID table. ** The root page number of the new b-tree is stored in register P2. */ case OP_CreateBtree: { /* out2 */ int pgno; Db *pDb; + sqlite3VdbeIncrWriteCounter(p, 0); pOut = out2Prerelease(p, pOp); pgno = 0; assert( pOp->p3==BTREE_INTKEY || pOp->p3==BTREE_BLOBKEY ); @@ -85541,6 +88686,7 @@ case OP_CreateBtree: { /* out2 */ ** Run the SQL statement or statements specified in the P4 string. */ case OP_SqlExec: { + sqlite3VdbeIncrWriteCounter(p, 0); db->nSqlExec++; rc = sqlite3_exec(db, pOp->p4.z, 0, 0, 0); db->nSqlExec--; @@ -85551,7 +88697,8 @@ case OP_SqlExec: { /* Opcode: ParseSchema P1 * * P4 * ** ** Read and parse all entries from the SQLITE_MASTER table of database P1 -** that match the WHERE clause P4. +** that match the WHERE clause P4. If P4 is a NULL pointer, then the +** entire schema for P1 is reparsed. ** ** This opcode invokes the parser to create a new virtual machine, ** then runs the new virtual machine. It is thus a re-entrant opcode. @@ -85575,11 +88722,22 @@ case OP_ParseSchema: { iDb = pOp->p1; assert( iDb>=0 && iDbnDb ); assert( DbHasProperty(db, iDb, DB_SchemaLoaded) ); - /* Used to be a conditional */ { + +#ifndef SQLITE_OMIT_ALTERTABLE + if( pOp->p4.z==0 ){ + sqlite3SchemaClear(db->aDb[iDb].pSchema); + db->mDbFlags &= ~DBFLAG_SchemaKnownOk; + rc = sqlite3InitOne(db, iDb, &p->zErrMsg, INITFLAG_AlterTable); + db->mDbFlags |= DBFLAG_SchemaChange; + p->expired = 0; + }else +#endif + { zMaster = MASTER_NAME; initData.db = db; - initData.iDb = pOp->p1; + initData.iDb = iDb; initData.pzErrMsg = &p->zErrMsg; + initData.mInitFlags = 0; zSql = sqlite3MPrintf(db, "SELECT name, rootpage, sql FROM '%q'.%s WHERE %s ORDER BY rowid", db->aDb[iDb].zDbSName, zMaster, pOp->p4.z); @@ -85630,6 +88788,7 @@ case OP_LoadAnalysis: { ** schema consistent with what is on disk. */ case OP_DropTable: { + sqlite3VdbeIncrWriteCounter(p, 0); sqlite3UnlinkAndDeleteTable(db, pOp->p1, pOp->p4.z); break; } @@ -85643,6 +88802,7 @@ case OP_DropTable: { ** schema consistent with what is on disk. */ case OP_DropIndex: { + sqlite3VdbeIncrWriteCounter(p, 0); sqlite3UnlinkAndDeleteIndex(db, pOp->p1, pOp->p4.z); break; } @@ -85656,6 +88816,7 @@ case OP_DropIndex: { ** schema consistent with what is on disk. */ case OP_DropTrigger: { + sqlite3VdbeIncrWriteCounter(p, 0); sqlite3UnlinkAndDeleteTrigger(db, pOp->p1, pOp->p4.z); break; } @@ -85729,11 +88890,11 @@ case OP_RowSetAdd: { /* in1, in2 */ pIn1 = &aMem[pOp->p1]; pIn2 = &aMem[pOp->p2]; assert( (pIn2->flags & MEM_Int)!=0 ); - if( (pIn1->flags & MEM_RowSet)==0 ){ - sqlite3VdbeMemSetRowSet(pIn1); - if( (pIn1->flags & MEM_RowSet)==0 ) goto no_mem; + if( (pIn1->flags & MEM_Blob)==0 ){ + if( sqlite3VdbeMemSetRowSet(pIn1) ) goto no_mem; } - sqlite3RowSetInsert(pIn1->u.pRowSet, pIn2->u.i); + assert( sqlite3VdbeMemIsRowSet(pIn1) ); + sqlite3RowSetInsert((RowSet*)pIn1->z, pIn2->u.i); break; } @@ -85749,8 +88910,9 @@ case OP_RowSetRead: { /* jump, in1, out3 */ i64 val; pIn1 = &aMem[pOp->p1]; - if( (pIn1->flags & MEM_RowSet)==0 - || sqlite3RowSetNext(pIn1->u.pRowSet, &val)==0 + assert( (pIn1->flags & MEM_Blob)==0 || sqlite3VdbeMemIsRowSet(pIn1) ); + if( (pIn1->flags & MEM_Blob)==0 + || sqlite3RowSetNext((RowSet*)pIn1->z, &val)==0 ){ /* The boolean index is empty */ sqlite3VdbeMemSetNull(pIn1); @@ -85799,20 +88961,19 @@ case OP_RowSetTest: { /* jump, in1, in3 */ /* If there is anything other than a rowset object in memory cell P1, ** delete it now and initialize P1 with an empty rowset */ - if( (pIn1->flags & MEM_RowSet)==0 ){ - sqlite3VdbeMemSetRowSet(pIn1); - if( (pIn1->flags & MEM_RowSet)==0 ) goto no_mem; + if( (pIn1->flags & MEM_Blob)==0 ){ + if( sqlite3VdbeMemSetRowSet(pIn1) ) goto no_mem; } - + assert( sqlite3VdbeMemIsRowSet(pIn1) ); assert( pOp->p4type==P4_INT32 ); assert( iSet==-1 || iSet>=0 ); if( iSet ){ - exists = sqlite3RowSetTest(pIn1->u.pRowSet, iSet, pIn3->u.i); + exists = sqlite3RowSetTest((RowSet*)pIn1->z, iSet, pIn3->u.i); VdbeBranchTaken(exists!=0,2); if( exists ) goto jump_to_p2; } if( iSet>=0 ){ - sqlite3RowSetInsert(pIn1->u.pRowSet, pIn3->u.i); + sqlite3RowSetInsert((RowSet*)pIn1->z, pIn3->u.i); } break; } @@ -85876,7 +89037,7 @@ case OP_Program: { /* jump */ ** of the current program, and the memory required at runtime to execute ** the trigger program. If this trigger has been fired before, then pRt ** is already allocated. Otherwise, it must be initialized. */ - if( (pRt->flags&MEM_Frame)==0 ){ + if( (pRt->flags&MEM_Blob)==0 ){ /* SubProgram.nMem is set to the number of memory cells used by the ** program stored in SubProgram.aOp. As well as these, one memory ** cell is required for each cursor used by the program. Set local @@ -85894,8 +89055,10 @@ case OP_Program: { /* jump */ goto no_mem; } sqlite3VdbeMemRelease(pRt); - pRt->flags = MEM_Frame; - pRt->u.pFrame = pFrame; + pRt->flags = MEM_Blob|MEM_Dyn; + pRt->z = (char*)pFrame; + pRt->n = nByte; + pRt->xDel = sqlite3VdbeFrameMemDel; pFrame->v = p; pFrame->nChildMem = nMem; @@ -85911,6 +89074,9 @@ case OP_Program: { /* jump */ #ifdef SQLITE_ENABLE_STMT_SCANSTATUS pFrame->anExec = p->anExec; #endif +#ifdef SQLITE_DEBUG + pFrame->iFrameMagic = SQLITE_FRAME_MAGIC; +#endif pEnd = &VdbeFrameMem(pFrame)[pFrame->nChildMem]; for(pMem=VdbeFrameMem(pFrame); pMem!=pEnd; pMem++){ @@ -85918,7 +89084,8 @@ case OP_Program: { /* jump */ pMem->db = db; } }else{ - pFrame = pRt->u.pFrame; + pFrame = (VdbeFrame*)pRt->z; + assert( pRt->xDel==sqlite3VdbeFrameMemDel ); assert( pProgram->nMem+pProgram->nCsr==pFrame->nChildMem || (pProgram->nCsr==0 && pProgram->nMem+1==pFrame->nChildMem) ); assert( pProgram->nCsr==pFrame->nChildCsr ); @@ -86147,24 +89314,35 @@ case OP_DecrJumpZero: { /* jump, in1 */ } -/* Opcode: AggStep0 * P2 P3 P4 P5 +/* Opcode: AggStep * P2 P3 P4 P5 ** Synopsis: accum=r[P3] step(r[P2@P5]) ** -** Execute the step function for an aggregate. The -** function has P5 arguments. P4 is a pointer to the FuncDef -** structure that specifies the function. Register P3 is the +** Execute the xStep function for an aggregate. +** The function has P5 arguments. P4 is a pointer to the +** FuncDef structure that specifies the function. Register P3 is the ** accumulator. ** ** The P5 arguments are taken from register P2 and its ** successors. */ -/* Opcode: AggStep * P2 P3 P4 P5 +/* Opcode: AggInverse * P2 P3 P4 P5 +** Synopsis: accum=r[P3] inverse(r[P2@P5]) +** +** Execute the xInverse function for an aggregate. +** The function has P5 arguments. P4 is a pointer to the +** FuncDef structure that specifies the function. Register P3 is the +** accumulator. +** +** The P5 arguments are taken from register P2 and its +** successors. +*/ +/* Opcode: AggStep1 P1 P2 P3 P4 P5 ** Synopsis: accum=r[P3] step(r[P2@P5]) ** -** Execute the step function for an aggregate. The -** function has P5 arguments. P4 is a pointer to an sqlite3_context -** object that is used to run the function. Register P3 is -** as the accumulator. +** Execute the xStep (if P1==0) or xInverse (if P1!=0) function for an +** aggregate. The function has P5 arguments. P4 is a pointer to the +** FuncDef structure that specifies the function. Register P3 is the +** accumulator. ** ** The P5 arguments are taken from register P2 and its ** successors. @@ -86175,7 +89353,8 @@ case OP_DecrJumpZero: { /* jump, in1 */ ** sqlite3_context only happens once, instead of on each call to the ** step function. */ -case OP_AggStep0: { +case OP_AggInverse: +case OP_AggStep: { int n; sqlite3_context *pCtx; @@ -86184,28 +89363,47 @@ case OP_AggStep0: { assert( pOp->p3>0 && pOp->p3<=(p->nMem+1 - p->nCursor) ); assert( n==0 || (pOp->p2>0 && pOp->p2+n<=(p->nMem+1 - p->nCursor)+1) ); assert( pOp->p3p2 || pOp->p3>=pOp->p2+n ); - pCtx = sqlite3DbMallocRawNN(db, sizeof(*pCtx) + (n-1)*sizeof(sqlite3_value*)); + pCtx = sqlite3DbMallocRawNN(db, n*sizeof(sqlite3_value*) + + (sizeof(pCtx[0]) + sizeof(Mem) - sizeof(sqlite3_value*))); if( pCtx==0 ) goto no_mem; pCtx->pMem = 0; + pCtx->pOut = (Mem*)&(pCtx->argv[n]); + sqlite3VdbeMemInit(pCtx->pOut, db, MEM_Null); pCtx->pFunc = pOp->p4.pFunc; pCtx->iOp = (int)(pOp - aOp); pCtx->pVdbe = p; + pCtx->skipFlag = 0; + pCtx->isError = 0; pCtx->argc = n; pOp->p4type = P4_FUNCCTX; pOp->p4.pCtx = pCtx; - pOp->opcode = OP_AggStep; + + /* OP_AggInverse must have P1==1 and OP_AggStep must have P1==0 */ + assert( pOp->p1==(pOp->opcode==OP_AggInverse) ); + + pOp->opcode = OP_AggStep1; /* Fall through into OP_AggStep */ } -case OP_AggStep: { +case OP_AggStep1: { int i; sqlite3_context *pCtx; Mem *pMem; - Mem t; assert( pOp->p4type==P4_FUNCCTX ); pCtx = pOp->p4.pCtx; pMem = &aMem[pOp->p3]; +#ifdef SQLITE_DEBUG + if( pOp->p1 ){ + /* This is an OP_AggInverse call. Verify that xStep has always + ** been called at least once prior to any xInverse call. */ + assert( pMem->uTemp==0x1122e0e3 ); + }else{ + /* This is an OP_AggStep call. Mark it as such. */ + pMem->uTemp = 0x1122e0e3; + } +#endif + /* If this function is inside of a trigger, the register array in aMem[] ** might change from one evaluation to the next. The next block of code ** checks to see if the register array has changed, and if so it @@ -86223,48 +89421,80 @@ case OP_AggStep: { #endif pMem->n++; - sqlite3VdbeMemInit(&t, db, MEM_Null); - pCtx->pOut = &t; - pCtx->fErrorOrAux = 0; - pCtx->skipFlag = 0; + assert( pCtx->pOut->flags==MEM_Null ); + assert( pCtx->isError==0 ); + assert( pCtx->skipFlag==0 ); +#ifndef SQLITE_OMIT_WINDOWFUNC + if( pOp->p1 ){ + (pCtx->pFunc->xInverse)(pCtx,pCtx->argc,pCtx->argv); + }else +#endif (pCtx->pFunc->xSFunc)(pCtx,pCtx->argc,pCtx->argv); /* IMP: R-24505-23230 */ - if( pCtx->fErrorOrAux ){ - if( pCtx->isError ){ - sqlite3VdbeError(p, "%s", sqlite3_value_text(&t)); + + if( pCtx->isError ){ + if( pCtx->isError>0 ){ + sqlite3VdbeError(p, "%s", sqlite3_value_text(pCtx->pOut)); rc = pCtx->isError; } - sqlite3VdbeMemRelease(&t); + if( pCtx->skipFlag ){ + assert( pOp[-1].opcode==OP_CollSeq ); + i = pOp[-1].p1; + if( i ) sqlite3VdbeMemSetInt64(&aMem[i], 1); + pCtx->skipFlag = 0; + } + sqlite3VdbeMemRelease(pCtx->pOut); + pCtx->pOut->flags = MEM_Null; + pCtx->isError = 0; if( rc ) goto abort_due_to_error; - }else{ - assert( t.flags==MEM_Null ); - } - if( pCtx->skipFlag ){ - assert( pOp[-1].opcode==OP_CollSeq ); - i = pOp[-1].p1; - if( i ) sqlite3VdbeMemSetInt64(&aMem[i], 1); } + assert( pCtx->pOut->flags==MEM_Null ); + assert( pCtx->skipFlag==0 ); break; } /* Opcode: AggFinal P1 P2 * P4 * ** Synopsis: accum=r[P1] N=P2 ** -** Execute the finalizer function for an aggregate. P1 is -** the memory location that is the accumulator for the aggregate. +** P1 is the memory location that is the accumulator for an aggregate +** or window function. Execute the finalizer function +** for an aggregate and store the result in P1. +** +** P2 is the number of arguments that the step function takes and +** P4 is a pointer to the FuncDef for this function. The P2 +** argument is not used by this opcode. It is only there to disambiguate +** functions that can take varying numbers of arguments. The +** P4 argument is only needed for the case where +** the step function was not previously called. +*/ +/* Opcode: AggValue * P2 P3 P4 * +** Synopsis: r[P3]=value N=P2 +** +** Invoke the xValue() function and store the result in register P3. ** ** P2 is the number of arguments that the step function takes and ** P4 is a pointer to the FuncDef for this function. The P2 ** argument is not used by this opcode. It is only there to disambiguate ** functions that can take varying numbers of arguments. The -** P4 argument is only needed for the degenerate case where +** P4 argument is only needed for the case where ** the step function was not previously called. */ +case OP_AggValue: case OP_AggFinal: { Mem *pMem; assert( pOp->p1>0 && pOp->p1<=(p->nMem+1 - p->nCursor) ); + assert( pOp->p3==0 || pOp->opcode==OP_AggValue ); pMem = &aMem[pOp->p1]; assert( (pMem->flags & ~(MEM_Null|MEM_Agg))==0 ); - rc = sqlite3VdbeMemFinalize(pMem, pOp->p4.pFunc); +#ifndef SQLITE_OMIT_WINDOWFUNC + if( pOp->p3 ){ + rc = sqlite3VdbeMemAggValue(pMem, &aMem[pOp->p3], pOp->p4.pFunc); + pMem = &aMem[pOp->p3]; + }else +#endif + { + rc = sqlite3VdbeMemFinalize(pMem, pOp->p4.pFunc); + } + if( rc ){ sqlite3VdbeError(p, "%s", sqlite3_value_text(pMem)); goto abort_due_to_error; @@ -86459,7 +89689,7 @@ case OP_IncrVacuum: { /* jump */ } #endif -/* Opcode: Expire P1 * * * * +/* Opcode: Expire P1 P2 * * * ** ** Cause precompiled statements to expire. When an expired statement ** is executed using sqlite3_step() it will either automatically @@ -86468,12 +89698,19 @@ case OP_IncrVacuum: { /* jump */ ** ** If P1 is 0, then all SQL statements become expired. If P1 is non-zero, ** then only the currently executing statement is expired. +** +** If P2 is 0, then SQL statements are expired immediately. If P2 is 1, +** then running SQL statements are allowed to continue to run to completion. +** The P2==1 case occurs when a CREATE INDEX or similar schema change happens +** that might help the statement run faster but which does not affect the +** correctness of operation. */ case OP_Expire: { + assert( pOp->p2==0 || pOp->p2==1 ); if( !pOp->p1 ){ - sqlite3ExpirePreparedStatements(db); + sqlite3ExpirePreparedStatements(db, pOp->p2); }else{ - p->expired = 1; + p->expired = pOp->p2+1; } break; } @@ -86695,10 +89932,11 @@ case OP_VFilter: { /* jump */ ** ** If the VColumn opcode is being used to fetch the value of ** an unchanging column during an UPDATE operation, then the P5 -** value is 1. Otherwise, P5 is 0. The P5 value is returned -** by sqlite3_vtab_nochange() routine can can be used -** by virtual table implementations to return special "no-change" -** marks which can be more efficient, depending on the virtual table. +** value is OPFLAG_NOCHNG. This will cause the sqlite3_vtab_nochange() +** function to return true inside the xColumn method of the virtual +** table implementation. The P5 column might also contain other +** bits (OPFLAG_LENGTHARG or OPFLAG_TYPEOFARG) but those bits are +** unused by OP_VColumn. */ case OP_VColumn: { sqlite3_vtab *pVtab; @@ -86720,7 +89958,8 @@ case OP_VColumn: { assert( pModule->xColumn ); memset(&sContext, 0, sizeof(sContext)); sContext.pOut = pDest; - if( pOp->p5 ){ + testcase( (pOp->p5 & OPFLAG_NOCHNG)==0 && pOp->p5!=0 ); + if( pOp->p5 & OPFLAG_NOCHNG ){ sqlite3VdbeMemSetNull(pDest); pDest->flags = MEM_Null|MEM_Zero; pDest->u.nZero = 0; @@ -86729,7 +89968,8 @@ case OP_VColumn: { } rc = pModule->xColumn(pCur->uc.pVCur, &sContext, pOp->p2); sqlite3VtabImportErrmsg(p, pVtab); - if( sContext.isError ){ + if( sContext.isError>0 ){ + sqlite3VdbeError(p, "%s", sqlite3_value_text(pDest)); rc = sContext.isError; } sqlite3VdbeChangeEncoding(pDest, encoding); @@ -86796,7 +90036,10 @@ case OP_VNext: { /* jump */ case OP_VRename: { sqlite3_vtab *pVtab; Mem *pName; - + int isLegacy; + + isLegacy = (db->flags & SQLITE_LegacyAlter); + db->flags |= SQLITE_LegacyAlter; pVtab = pOp->p4.pVtab->pVtab; pName = &aMem[pOp->p1]; assert( pVtab->pModule->xRename ); @@ -86810,6 +90053,7 @@ case OP_VRename: { rc = sqlite3VdbeChangeEncoding(pName, SQLITE_UTF8); if( rc ) goto abort_due_to_error; rc = pVtab->pModule->xRename(pVtab, pName->z); + if( isLegacy==0 ) db->flags &= ~SQLITE_LegacyAlter; sqlite3VtabImportErrmsg(p, pVtab); p->expired = 0; if( rc ) goto abort_due_to_error; @@ -86858,6 +90102,8 @@ case OP_VUpdate: { || pOp->p5==OE_Abort || pOp->p5==OE_Ignore || pOp->p5==OE_Replace ); assert( p->readOnly==0 ); + if( db->mallocFailed ) goto no_mem; + sqlite3VdbeIncrWriteCounter(p, 0); pVtab = pOp->p4.pVtab->pVtab; if( pVtab==0 || NEVER(pVtab->pModule==0) ){ rc = SQLITE_LOCKED; @@ -86978,8 +90224,8 @@ case OP_MaxPgcnt: { /* out2 */ ** ** See also: Function0, AggStep, AggFinal */ -case OP_PureFunc0: -case OP_Function0: { +case OP_PureFunc0: /* group */ +case OP_Function0: { /* group */ int n; sqlite3_context *pCtx; @@ -86994,6 +90240,7 @@ case OP_Function0: { pCtx->pFunc = pOp->p4.pFunc; pCtx->iOp = (int)(pOp - aOp); pCtx->pVdbe = p; + pCtx->isError = 0; pCtx->argc = n; pOp->p4type = P4_FUNCCTX; pOp->p4.pCtx = pCtx; @@ -87002,8 +90249,8 @@ case OP_Function0: { pOp->opcode += 2; /* Fall through into OP_Function */ } -case OP_PureFunc: -case OP_Function: { +case OP_PureFunc: /* group */ +case OP_Function: { /* group */ int i; sqlite3_context *pCtx; @@ -87028,16 +90275,17 @@ case OP_Function: { } #endif MemSetTypeFlag(pOut, MEM_Null); - pCtx->fErrorOrAux = 0; + assert( pCtx->isError==0 ); (*pCtx->pFunc->xSFunc)(pCtx, pCtx->argc, pCtx->argv);/* IMP: R-24505-23230 */ /* If the function returned an error, throw an exception */ - if( pCtx->fErrorOrAux ){ - if( pCtx->isError ){ + if( pCtx->isError ){ + if( pCtx->isError>0 ){ sqlite3VdbeError(p, "%s", sqlite3_value_text(pOut)); rc = pCtx->isError; } sqlite3VdbeDeleteAuxData(db, &p->pAuxData, pCtx->iOp, pOp->p1); + pCtx->isError = 0; if( rc ) goto abort_due_to_error; } @@ -87079,8 +90327,10 @@ case OP_Function: { */ case OP_Trace: case OP_Init: { /* jump */ - char *zTrace; int i; +#ifndef SQLITE_OMIT_TRACE + char *zTrace; +#endif /* If the P4 argument is not NULL, then it must be an SQL comment string. ** The "--" string is broken up to prevent false-positives with srcck1.c. @@ -87171,6 +90421,22 @@ case OP_CursorHint: { } #endif /* SQLITE_ENABLE_CURSOR_HINTS */ +#ifdef SQLITE_DEBUG +/* Opcode: Abortable * * * * * +** +** Verify that an Abort can happen. Assert if an Abort at this point +** might cause database corruption. This opcode only appears in debugging +** builds. +** +** An Abort is safe if either there have been no writes, or if there is +** an active statement journal. +*/ +case OP_Abortable: { + sqlite3VdbeAssertAbortable(p); + break; +} +#endif + /* Opcode: Noop * * * * * ** ** Do nothing. This instruction is often useful as a jump @@ -87182,8 +90448,9 @@ case OP_CursorHint: { ** This opcode records information from the optimizer. It is the ** the same as a no-op. This opcodesnever appears in a real VM program. */ -default: { /* This is really OP_Noop and OP_Explain */ +default: { /* This is really OP_Noop, OP_Explain */ assert( pOp->opcode==OP_Noop || pOp->opcode==OP_Explain ); + break; } @@ -87197,7 +90464,7 @@ default: { /* This is really OP_Noop and OP_Explain */ #ifdef VDBE_PROFILE { - u64 endTime = sqlite3Hwtime(); + u64 endTime = sqlite3NProfileCnt ? sqlite3NProfileCnt : sqlite3Hwtime(); if( endTime>start ) pOrigOp->cycles += endTime - start; pOrigOp->cnt++; } @@ -89908,7 +93175,11 @@ static int vdbeMergeEngineInit( ){ int rc = SQLITE_OK; /* Return code */ int i; /* For looping over PmaReader objects */ - int nTree = pMerger->nTree; + int nTree; /* Number of subtrees to merge */ + + /* Failure to allocate the merge would have been detected prior to + ** invoking this routine */ + assert( pMerger!=0 ); /* eMode is always INCRINIT_NORMAL in single-threaded mode */ assert( SQLITE_MAX_WORKER_THREADS>0 || eMode==INCRINIT_NORMAL ); @@ -89917,6 +93188,7 @@ static int vdbeMergeEngineInit( assert( pMerger->pTask==0 ); pMerger->pTask = pTask; + nTree = pMerger->nTree; for(i=0; i0 && eMode==INCRINIT_ROOT ){ /* PmaReaders should be normally initialized in order, as if they are @@ -91045,6 +94317,14 @@ static SQLITE_NOINLINE int walkExpr(Walker *pWalker, Expr *pExpr){ }else if( pExpr->x.pList ){ if( sqlite3WalkExprList(pWalker, pExpr->x.pList) ) return WRC_Abort; } +#ifndef SQLITE_OMIT_WINDOWFUNC + if( ExprHasProperty(pExpr, EP_WinFunc) ){ + Window *pWin = pExpr->y.pWin; + if( sqlite3WalkExprList(pWalker, pWin->pPartition) ) return WRC_Abort; + if( sqlite3WalkExprList(pWalker, pWin->pOrderBy) ) return WRC_Abort; + if( sqlite3WalkExpr(pWalker, pWin->pFilter) ) return WRC_Abort; + } +#endif } break; } @@ -91228,29 +94508,31 @@ static void resolveAlias( assert( pOrig!=0 ); db = pParse->db; pDup = sqlite3ExprDup(db, pOrig, 0); - if( pDup==0 ) return; - if( zType[0]!='G' ) incrAggFunctionDepth(pDup, nSubquery); - if( pExpr->op==TK_COLLATE ){ - pDup = sqlite3ExprAddCollateString(pParse, pDup, pExpr->u.zToken); - } - ExprSetProperty(pDup, EP_Alias); + if( pDup!=0 ){ + if( zType[0]!='G' ) incrAggFunctionDepth(pDup, nSubquery); + if( pExpr->op==TK_COLLATE ){ + pDup = sqlite3ExprAddCollateString(pParse, pDup, pExpr->u.zToken); + } + ExprSetProperty(pDup, EP_Alias); - /* Before calling sqlite3ExprDelete(), set the EP_Static flag. This - ** prevents ExprDelete() from deleting the Expr structure itself, - ** allowing it to be repopulated by the memcpy() on the following line. - ** The pExpr->u.zToken might point into memory that will be freed by the - ** sqlite3DbFree(db, pDup) on the last line of this block, so be sure to - ** make a copy of the token before doing the sqlite3DbFree(). - */ - ExprSetProperty(pExpr, EP_Static); - sqlite3ExprDelete(db, pExpr); - memcpy(pExpr, pDup, sizeof(*pExpr)); - if( !ExprHasProperty(pExpr, EP_IntValue) && pExpr->u.zToken!=0 ){ - assert( (pExpr->flags & (EP_Reduced|EP_TokenOnly))==0 ); - pExpr->u.zToken = sqlite3DbStrDup(db, pExpr->u.zToken); - pExpr->flags |= EP_MemToken; + /* Before calling sqlite3ExprDelete(), set the EP_Static flag. This + ** prevents ExprDelete() from deleting the Expr structure itself, + ** allowing it to be repopulated by the memcpy() on the following line. + ** The pExpr->u.zToken might point into memory that will be freed by the + ** sqlite3DbFree(db, pDup) on the last line of this block, so be sure to + ** make a copy of the token before doing the sqlite3DbFree(). + */ + ExprSetProperty(pExpr, EP_Static); + sqlite3ExprDelete(db, pExpr); + memcpy(pExpr, pDup, sizeof(*pExpr)); + if( !ExprHasProperty(pExpr, EP_IntValue) && pExpr->u.zToken!=0 ){ + assert( (pExpr->flags & (EP_Reduced|EP_TokenOnly))==0 ); + pExpr->u.zToken = sqlite3DbStrDup(db, pExpr->u.zToken); + pExpr->flags |= EP_MemToken; + } + sqlite3DbFree(db, pDup); } - sqlite3DbFree(db, pDup); + ExprSetProperty(pExpr, EP_Alias); } @@ -91310,7 +94592,7 @@ SQLITE_PRIVATE int sqlite3MatchSpanName( ** (even if X is implied). ** pExpr->iTable Set to the cursor number for the table obtained ** from pSrcList. -** pExpr->pTab Points to the Table structure of X.Y (even if +** pExpr->y.pTab Points to the Table structure of X.Y (even if ** X and/or Y are implied.) ** pExpr->iColumn Set to the column number within the table. ** pExpr->op Set to TK_COLUMN. @@ -91344,7 +94626,7 @@ static int lookupName( struct SrcList_item *pMatch = 0; /* The matching pSrcList item */ NameContext *pTopNC = pNC; /* First namecontext in the list */ Schema *pSchema = 0; /* Schema of the expression */ - int isTrigger = 0; /* True if resolved to a trigger column */ + int eNewExprOp = TK_COLUMN; /* New value for pExpr->op on success */ Table *pTab = 0; /* Table hold the row */ Column *pCol; /* A column of pTab */ @@ -91354,7 +94636,6 @@ static int lookupName( /* Initialize the node to no-match */ pExpr->iTable = -1; - pExpr->pTab = 0; ExprSetVVAProperty(pExpr, EP_NoReduce); /* Translate the schema name in zDb into a pointer to the corresponding @@ -91415,6 +94696,9 @@ static int lookupName( if( sqlite3StrICmp(zTabName, zTab)!=0 ){ continue; } + if( IN_RENAME_OBJECT && pItem->zAlias ){ + sqlite3RenameTokenRemap(pParse, 0, (void*)&pExpr->y.pTab); + } } if( 0==(cntTab++) ){ pMatch = pItem; @@ -91439,32 +94723,45 @@ static int lookupName( } if( pMatch ){ pExpr->iTable = pMatch->iCursor; - pExpr->pTab = pMatch->pTab; + pExpr->y.pTab = pMatch->pTab; /* RIGHT JOIN not (yet) supported */ assert( (pMatch->fg.jointype & JT_RIGHT)==0 ); if( (pMatch->fg.jointype & JT_LEFT)!=0 ){ ExprSetProperty(pExpr, EP_CanBeNull); } - pSchema = pExpr->pTab->pSchema; + pSchema = pExpr->y.pTab->pSchema; } } /* if( pSrcList ) */ -#ifndef SQLITE_OMIT_TRIGGER +#if !defined(SQLITE_OMIT_TRIGGER) || !defined(SQLITE_OMIT_UPSERT) /* If we have not already resolved the name, then maybe - ** it is a new.* or old.* trigger argument reference + ** it is a new.* or old.* trigger argument reference. Or + ** maybe it is an excluded.* from an upsert. */ - if( zDb==0 && zTab!=0 && cntTab==0 && pParse->pTriggerTab!=0 ){ - int op = pParse->eTriggerOp; - assert( op==TK_DELETE || op==TK_UPDATE || op==TK_INSERT ); - if( op!=TK_DELETE && sqlite3StrICmp("new",zTab) == 0 ){ - pExpr->iTable = 1; - pTab = pParse->pTriggerTab; - }else if( op!=TK_INSERT && sqlite3StrICmp("old",zTab)==0 ){ - pExpr->iTable = 0; - pTab = pParse->pTriggerTab; - }else{ - pTab = 0; + if( zDb==0 && zTab!=0 && cntTab==0 ){ + pTab = 0; +#ifndef SQLITE_OMIT_TRIGGER + if( pParse->pTriggerTab!=0 ){ + int op = pParse->eTriggerOp; + assert( op==TK_DELETE || op==TK_UPDATE || op==TK_INSERT ); + if( op!=TK_DELETE && sqlite3StrICmp("new",zTab) == 0 ){ + pExpr->iTable = 1; + pTab = pParse->pTriggerTab; + }else if( op!=TK_INSERT && sqlite3StrICmp("old",zTab)==0 ){ + pExpr->iTable = 0; + pTab = pParse->pTriggerTab; + } + } +#endif /* SQLITE_OMIT_TRIGGER */ +#ifndef SQLITE_OMIT_UPSERT + if( (pNC->ncFlags & NC_UUpsert)!=0 ){ + Upsert *pUpsert = pNC->uNC.pUpsert; + if( pUpsert && sqlite3StrICmp("excluded",zTab)==0 ){ + pTab = pUpsert->pUpsertSrc->a[0].pTab; + pExpr->iTable = 2; + } } +#endif /* SQLITE_OMIT_UPSERT */ if( pTab ){ int iCol; @@ -91484,24 +94781,42 @@ static int lookupName( } if( iColnCol ){ cnt++; - if( iCol<0 ){ - pExpr->affinity = SQLITE_AFF_INTEGER; - }else if( pExpr->iTable==0 ){ - testcase( iCol==31 ); - testcase( iCol==32 ); - pParse->oldmask |= (iCol>=32 ? 0xffffffff : (((u32)1)<newmask |= (iCol>=32 ? 0xffffffff : (((u32)1)<iTable==2 ){ + testcase( iCol==(-1) ); + if( IN_RENAME_OBJECT ){ + pExpr->iColumn = iCol; + pExpr->y.pTab = pTab; + eNewExprOp = TK_COLUMN; + }else{ + pExpr->iTable = pNC->uNC.pUpsert->regData + iCol; + eNewExprOp = TK_REGISTER; + ExprSetProperty(pExpr, EP_Alias); + } + }else +#endif /* SQLITE_OMIT_UPSERT */ + { +#ifndef SQLITE_OMIT_TRIGGER + if( iCol<0 ){ + pExpr->affinity = SQLITE_AFF_INTEGER; + }else if( pExpr->iTable==0 ){ + testcase( iCol==31 ); + testcase( iCol==32 ); + pParse->oldmask |= (iCol>=32 ? 0xffffffff : (((u32)1)<newmask |= (iCol>=32 ? 0xffffffff : (((u32)1)<y.pTab = pTab; + pExpr->iColumn = (i16)iCol; + eNewExprOp = TK_TRIGGER; +#endif /* SQLITE_OMIT_TRIGGER */ } - pExpr->iColumn = (i16)iCol; - pExpr->pTab = pTab; - isTrigger = 1; } } } -#endif /* !defined(SQLITE_OMIT_TRIGGER) */ +#endif /* !defined(SQLITE_OMIT_TRIGGER) || !defined(SQLITE_OMIT_UPSERT) */ /* ** Perhaps the name is a reference to the ROWID @@ -91536,10 +94851,12 @@ static int lookupName( ** is supported for backwards compatibility only. Hence, we issue a warning ** on sqlite3_log() whenever the capability is used. */ - if( (pEList = pNC->pEList)!=0 - && zTab==0 + if( (pNC->ncFlags & NC_UEList)!=0 && cnt==0 + && zTab==0 ){ + pEList = pNC->uNC.pEList; + assert( pEList!=0 ); for(j=0; jnExpr; j++){ char *zAs = pEList->a[j].zName; if( zAs!=0 && sqlite3StrICmp(zAs, zCol)==0 ){ @@ -91560,6 +94877,9 @@ static int lookupName( cnt = 1; pMatch = 0; assert( zTab==0 && zDb==0 ); + if( IN_RENAME_OBJECT ){ + sqlite3RenameTokenRemap(pParse, 0, (void*)pExpr); + } goto lookupname_end; } } @@ -91584,10 +94904,16 @@ static int lookupName( ** Because no reference was made to outer contexts, the pNC->nRef ** fields are not changed in any context. */ - if( cnt==0 && zTab==0 && ExprHasProperty(pExpr,EP_DblQuoted) ){ - pExpr->op = TK_STRING; - pExpr->pTab = 0; - return WRC_Prune; + if( cnt==0 && zTab==0 ){ + assert( pExpr->op==TK_ID ); + if( ExprHasProperty(pExpr,EP_DblQuoted) ){ + pExpr->op = TK_STRING; + pExpr->y.pTab = 0; + return WRC_Prune; + } + if( sqlite3ExprIdToTrueFalse(pExpr) ){ + return WRC_Prune; + } } /* @@ -91630,7 +94956,7 @@ static int lookupName( pExpr->pLeft = 0; sqlite3ExprDelete(db, pExpr->pRight); pExpr->pRight = 0; - pExpr->op = (isTrigger ? TK_TRIGGER : TK_COLUMN); + pExpr->op = eNewExprOp; ExprSetProperty(pExpr, EP_Leaf); lookupname_end: if( cnt==1 ){ @@ -91660,9 +94986,9 @@ SQLITE_PRIVATE Expr *sqlite3CreateColumnExpr(sqlite3 *db, SrcList *pSrc, int iSr Expr *p = sqlite3ExprAlloc(db, TK_COLUMN, 0, 0); if( p ){ struct SrcList_item *pItem = &pSrc->a[iSrc]; - p->pTab = pItem->pTab; + p->y.pTab = pItem->pTab; p->iTable = pItem->iCursor; - if( p->pTab->iPKey==iCol ){ + if( p->y.pTab->iPKey==iCol ){ p->iColumn = -1; }else{ p->iColumn = (ynVar)iCol; @@ -91752,7 +95078,7 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ pItem = pSrcList->a; assert( HasRowid(pItem->pTab) && pItem->pTab->pSelect==0 ); pExpr->op = TK_COLUMN; - pExpr->pTab = pItem->pTab; + pExpr->y.pTab = pItem->pTab; pExpr->iTable = pItem->iCursor; pExpr->iColumn = -1; pExpr->affinity = SQLITE_AFF_INTEGER; @@ -91781,17 +95107,22 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ zTable = 0; zColumn = pExpr->u.zToken; }else{ + Expr *pLeft = pExpr->pLeft; notValid(pParse, pNC, "the \".\" operator", NC_IdxExpr); pRight = pExpr->pRight; if( pRight->op==TK_ID ){ zDb = 0; - zTable = pExpr->pLeft->u.zToken; - zColumn = pRight->u.zToken; }else{ assert( pRight->op==TK_DOT ); - zDb = pExpr->pLeft->u.zToken; - zTable = pRight->pLeft->u.zToken; - zColumn = pRight->pRight->u.zToken; + zDb = pLeft->u.zToken; + pLeft = pRight->pLeft; + pRight = pRight->pRight; + } + zTable = pLeft->u.zToken; + zColumn = pRight->u.zToken; + if( IN_RENAME_OBJECT ){ + sqlite3RenameTokenRemap(pParse, (void*)pExpr, (void*)pRight); + sqlite3RenameTokenRemap(pParse, (void*)&pExpr->y.pTab, (void*)pLeft); } } return lookupName(pParse, zDb, zTable, zColumn, pNC, pExpr); @@ -91873,41 +95204,105 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ notValid(pParse, pNC, "non-deterministic functions", NC_IdxExpr|NC_PartIdx); } + if( (pDef->funcFlags & SQLITE_FUNC_INTERNAL)!=0 + && pParse->nested==0 + && sqlite3Config.bInternalFunctions==0 + ){ + /* Internal-use-only functions are disallowed unless the + ** SQL is being compiled using sqlite3NestedParse() */ + no_such_func = 1; + pDef = 0; + } } - if( is_agg && (pNC->ncFlags & NC_AllowAgg)==0 ){ - sqlite3ErrorMsg(pParse, "misuse of aggregate function %.*s()", nId,zId); - pNC->nErr++; - is_agg = 0; - }else if( no_such_func && pParse->db->init.busy==0 + + if( 0==IN_RENAME_OBJECT ){ +#ifndef SQLITE_OMIT_WINDOWFUNC + assert( is_agg==0 || (pDef->funcFlags & SQLITE_FUNC_MINMAX) + || (pDef->xValue==0 && pDef->xInverse==0) + || (pDef->xValue && pDef->xInverse && pDef->xSFunc && pDef->xFinalize) + ); + if( pDef && pDef->xValue==0 && ExprHasProperty(pExpr, EP_WinFunc) ){ + sqlite3ErrorMsg(pParse, + "%.*s() may not be used as a window function", nId, zId + ); + pNC->nErr++; + }else if( + (is_agg && (pNC->ncFlags & NC_AllowAgg)==0) + || (is_agg && (pDef->funcFlags&SQLITE_FUNC_WINDOW) && !pExpr->y.pWin) + || (is_agg && pExpr->y.pWin && (pNC->ncFlags & NC_AllowWin)==0) + ){ + const char *zType; + if( (pDef->funcFlags & SQLITE_FUNC_WINDOW) || pExpr->y.pWin ){ + zType = "window"; + }else{ + zType = "aggregate"; + } + sqlite3ErrorMsg(pParse, "misuse of %s function %.*s()",zType,nId,zId); + pNC->nErr++; + is_agg = 0; + } +#else + if( (is_agg && (pNC->ncFlags & NC_AllowAgg)==0) ){ + sqlite3ErrorMsg(pParse,"misuse of aggregate function %.*s()",nId,zId); + pNC->nErr++; + is_agg = 0; + } +#endif + else if( no_such_func && pParse->db->init.busy==0 #ifdef SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION - && pParse->explain==0 + && pParse->explain==0 #endif - ){ - sqlite3ErrorMsg(pParse, "no such function: %.*s", nId, zId); - pNC->nErr++; - }else if( wrong_num_args ){ - sqlite3ErrorMsg(pParse,"wrong number of arguments to function %.*s()", - nId, zId); - pNC->nErr++; - } - if( is_agg ) pNC->ncFlags &= ~NC_AllowAgg; + ){ + sqlite3ErrorMsg(pParse, "no such function: %.*s", nId, zId); + pNC->nErr++; + }else if( wrong_num_args ){ + sqlite3ErrorMsg(pParse,"wrong number of arguments to function %.*s()", + nId, zId); + pNC->nErr++; + } + if( is_agg ){ +#ifndef SQLITE_OMIT_WINDOWFUNC + pNC->ncFlags &= ~(pExpr->y.pWin ? NC_AllowWin : NC_AllowAgg); +#else + pNC->ncFlags &= ~NC_AllowAgg; +#endif + } + } sqlite3WalkExprList(pWalker, pList); if( is_agg ){ - NameContext *pNC2 = pNC; - pExpr->op = TK_AGG_FUNCTION; - pExpr->op2 = 0; - while( pNC2 && !sqlite3FunctionUsesThisSrc(pExpr, pNC2->pSrcList) ){ - pExpr->op2++; - pNC2 = pNC2->pNext; - } - assert( pDef!=0 ); - if( pNC2 ){ - assert( SQLITE_FUNC_MINMAX==NC_MinMaxAgg ); - testcase( (pDef->funcFlags & SQLITE_FUNC_MINMAX)!=0 ); - pNC2->ncFlags |= NC_HasAgg | (pDef->funcFlags & SQLITE_FUNC_MINMAX); +#ifndef SQLITE_OMIT_WINDOWFUNC + if( pExpr->y.pWin ){ + Select *pSel = pNC->pWinSelect; + sqlite3WalkExprList(pWalker, pExpr->y.pWin->pPartition); + sqlite3WalkExprList(pWalker, pExpr->y.pWin->pOrderBy); + sqlite3WalkExpr(pWalker, pExpr->y.pWin->pFilter); + sqlite3WindowUpdate(pParse, pSel->pWinDefn, pExpr->y.pWin, pDef); + if( 0==pSel->pWin + || 0==sqlite3WindowCompare(pParse, pSel->pWin, pExpr->y.pWin) + ){ + pExpr->y.pWin->pNextWin = pSel->pWin; + pSel->pWin = pExpr->y.pWin; + } + pNC->ncFlags |= NC_AllowWin; + }else +#endif /* SQLITE_OMIT_WINDOWFUNC */ + { + NameContext *pNC2 = pNC; + pExpr->op = TK_AGG_FUNCTION; + pExpr->op2 = 0; + while( pNC2 && !sqlite3FunctionUsesThisSrc(pExpr, pNC2->pSrcList) ){ + pExpr->op2++; + pNC2 = pNC2->pNext; + } + assert( pDef!=0 ); + if( pNC2 ){ + assert( SQLITE_FUNC_MINMAX==NC_MinMaxAgg ); + testcase( (pDef->funcFlags & SQLITE_FUNC_MINMAX)!=0 ); + pNC2->ncFlags |= NC_HasAgg | (pDef->funcFlags & SQLITE_FUNC_MINMAX); + } + pNC->ncFlags |= NC_AllowAgg; } - pNC->ncFlags |= NC_AllowAgg; } /* FIX ME: Compute pExpr->affinity based on the expected return ** type of the function @@ -91936,15 +95331,30 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ notValid(pParse, pNC, "parameters", NC_IsCheck|NC_PartIdx|NC_IdxExpr); break; } + case TK_IS: + case TK_ISNOT: { + Expr *pRight; + assert( !ExprHasProperty(pExpr, EP_Reduced) ); + /* Handle special cases of "x IS TRUE", "x IS FALSE", "x IS NOT TRUE", + ** and "x IS NOT FALSE". */ + if( (pRight = pExpr->pRight)->op==TK_ID ){ + int rc = resolveExprStep(pWalker, pRight); + if( rc==WRC_Abort ) return WRC_Abort; + if( pRight->op==TK_TRUEFALSE ){ + pExpr->op2 = pExpr->op; + pExpr->op = TK_TRUTH; + return WRC_Continue; + } + } + /* Fall thru */ + } case TK_BETWEEN: case TK_EQ: case TK_NE: case TK_LT: case TK_LE: case TK_GT: - case TK_GE: - case TK_IS: - case TK_ISNOT: { + case TK_GE: { int nLeft, nRight; if( pParse->db->mallocFailed ) break; assert( pExpr->pLeft!=0 ); @@ -92047,8 +95457,8 @@ static int resolveOrderByTermToExprList( memset(&nc, 0, sizeof(nc)); nc.pParse = pParse; nc.pSrcList = pSelect->pSrc; - nc.pEList = pEList; - nc.ncFlags = NC_AllowAgg; + nc.uNC.pEList = pEList; + nc.ncFlags = NC_AllowAgg|NC_UEList; nc.nErr = 0; db = pParse->db; savedSuppErr = db->suppressErr; @@ -92293,6 +95703,19 @@ static int resolveOrderGroupBy( } for(j=0; jpEList->nExpr; j++){ if( sqlite3ExprCompare(0, pE, pSelect->pEList->a[j].pExpr, -1)==0 ){ +#ifndef SQLITE_OMIT_WINDOWFUNC + if( ExprHasProperty(pE, EP_WinFunc) ){ + /* Since this window function is being changed into a reference + ** to the same window function the result set, remove the instance + ** of this window function from the Select.pWin list. */ + Window **pp; + for(pp=&pSelect->pWin; *pp; pp=&(*pp)->pNextWin){ + if( *pp==pE->y.pWin ){ + *pp = (*pp)->pNextWin; + } + } + } +#endif pItem->u.x.iOrderByCol = j+1; } } @@ -92349,6 +95772,7 @@ static int resolveSelectStep(Walker *pWalker, Select *p){ */ memset(&sNC, 0, sizeof(sNC)); sNC.pParse = pParse; + sNC.pWinSelect = p; if( sqlite3ResolveExprNames(&sNC, p->pLimit) ){ return WRC_Abort; } @@ -92397,12 +95821,13 @@ static int resolveSelectStep(Walker *pWalker, Select *p){ /* Set up the local name-context to pass to sqlite3ResolveExprNames() to ** resolve the result-set expression list. */ - sNC.ncFlags = NC_AllowAgg; + sNC.ncFlags = NC_AllowAgg|NC_AllowWin; sNC.pSrcList = p->pSrc; sNC.pNext = pOuterNC; /* Resolve names in the result set. */ if( sqlite3ResolveExprListNames(&sNC, p->pEList) ) return WRC_Abort; + sNC.ncFlags &= ~NC_AllowWin; /* If there are no aggregate functions in the result-set, and no GROUP BY ** expression, do not allow aggregates in any of the other expressions. @@ -92431,7 +95856,9 @@ static int resolveSelectStep(Walker *pWalker, Select *p){ ** Minor point: If this is the case, then the expression will be ** re-evaluated for each reference to it. */ - sNC.pEList = p->pEList; + assert( (sNC.ncFlags & (NC_UAggInfo|NC_UUpsert))==0 ); + sNC.uNC.pEList = p->pEList; + sNC.ncFlags |= NC_UEList; if( sqlite3ResolveExprNames(&sNC, p->pHaving) ) return WRC_Abort; if( sqlite3ResolveExprNames(&sNC, p->pWhere) ) return WRC_Abort; @@ -92449,7 +95876,7 @@ static int resolveSelectStep(Walker *pWalker, Select *p){ ** outer queries */ sNC.pNext = 0; - sNC.ncFlags |= NC_AllowAgg; + sNC.ncFlags |= NC_AllowAgg|NC_AllowWin; /* If this is a converted compound query, move the ORDER BY clause from ** the sub-query back to the parent query. At this point each term @@ -92480,6 +95907,7 @@ static int resolveSelectStep(Walker *pWalker, Select *p){ if( db->mallocFailed ){ return WRC_Abort; } + sNC.ncFlags &= ~NC_AllowWin; /* Resolve the GROUP BY clause. At the same time, make sure ** the GROUP BY clause does not contain aggregate functions. @@ -92664,7 +96092,7 @@ SQLITE_PRIVATE void sqlite3ResolveSelfReference( Table *pTab, /* The table being referenced */ int type, /* NC_IsCheck or NC_PartIdx or NC_IdxExpr */ Expr *pExpr, /* Expression to resolve. May be NULL. */ - ExprList *pList /* Expression list to resolve. May be NUL. */ + ExprList *pList /* Expression list to resolve. May be NULL. */ ){ SrcList sSrc; /* Fake SrcList for pParse->pNewTable */ NameContext sNC; /* Name context for pParse->pNewTable */ @@ -92745,8 +96173,8 @@ SQLITE_PRIVATE char sqlite3ExprAffinity(Expr *pExpr){ return sqlite3AffinityType(pExpr->u.zToken, 0); } #endif - if( (op==TK_AGG_COLUMN || op==TK_COLUMN) && pExpr->pTab ){ - return sqlite3TableColumnAffinity(pExpr->pTab, pExpr->iColumn); + if( (op==TK_AGG_COLUMN || op==TK_COLUMN) && pExpr->y.pTab ){ + return sqlite3TableColumnAffinity(pExpr->y.pTab, pExpr->iColumn); } if( op==TK_SELECT_COLUMN ){ assert( pExpr->pLeft->flags&EP_xIsSelect ); @@ -92828,27 +96256,27 @@ SQLITE_PRIVATE CollSeq *sqlite3ExprCollSeq(Parse *pParse, Expr *pExpr){ while( p ){ int op = p->op; if( p->flags & EP_Generic ) break; - if( op==TK_CAST || op==TK_UPLUS ){ - p = p->pLeft; - continue; - } - if( op==TK_COLLATE || (op==TK_REGISTER && p->op2==TK_COLLATE) ){ - pColl = sqlite3GetCollSeq(pParse, ENC(db), 0, p->u.zToken); - break; - } if( (op==TK_AGG_COLUMN || op==TK_COLUMN || op==TK_REGISTER || op==TK_TRIGGER) - && p->pTab!=0 + && p->y.pTab!=0 ){ - /* op==TK_REGISTER && p->pTab!=0 happens when pExpr was originally + /* op==TK_REGISTER && p->y.pTab!=0 happens when pExpr was originally ** a TK_COLUMN but was previously evaluated and cached in a register */ int j = p->iColumn; if( j>=0 ){ - const char *zColl = p->pTab->aCol[j].zColl; + const char *zColl = p->y.pTab->aCol[j].zColl; pColl = sqlite3FindCollSeq(db, ENC(db), zColl, 0); } break; } + if( op==TK_CAST || op==TK_UPLUS ){ + p = p->pLeft; + continue; + } + if( op==TK_COLLATE || (op==TK_REGISTER && p->op2==TK_COLLATE) ){ + pColl = sqlite3GetCollSeq(pParse, ENC(db), 0, p->u.zToken); + break; + } if( p->flags & EP_Collate ){ if( p->pLeft && (p->pLeft->flags & EP_Collate)!=0 ){ p = p->pLeft; @@ -93268,7 +96696,6 @@ static void codeVectorCompare( Expr *pL, *pR; int r1, r2; assert( i>=0 && i0 ) sqlite3ExprCachePush(pParse); r1 = exprVectorRegister(pParse, pLeft, i, regLeft, &pL, ®Free1); r2 = exprVectorRegister(pParse, pRight, i, regRight, &pR, ®Free2); codeCompare(pParse, pL, pR, opx, r1, r2, dest, p5); @@ -93280,7 +96707,6 @@ static void codeVectorCompare( testcase(op==OP_Ne); VdbeCoverageIf(v,op==OP_Ne); sqlite3ReleaseTempReg(pParse, regFree1); sqlite3ReleaseTempReg(pParse, regFree2); - if( i>0 ) sqlite3ExprCachePop(pParse); if( i==nLeft-1 ){ break; } @@ -93628,7 +97054,12 @@ SQLITE_PRIVATE Expr *sqlite3ExprAnd(sqlite3 *db, Expr *pLeft, Expr *pRight){ ** Construct a new expression node for a function with multiple ** arguments. */ -SQLITE_PRIVATE Expr *sqlite3ExprFunction(Parse *pParse, ExprList *pList, Token *pToken){ +SQLITE_PRIVATE Expr *sqlite3ExprFunction( + Parse *pParse, /* Parsing context */ + ExprList *pList, /* Argument list */ + Token *pToken, /* Name of the function */ + int eDistinct /* SF_Distinct or SF_ALL or 0 */ +){ Expr *pNew; sqlite3 *db = pParse->db; assert( pToken ); @@ -93637,10 +97068,14 @@ SQLITE_PRIVATE Expr *sqlite3ExprFunction(Parse *pParse, ExprList *pList, Token * sqlite3ExprListDelete(db, pList); /* Avoid memory leak when malloc fails */ return 0; } + if( pList && pList->nExpr > pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG] ){ + sqlite3ErrorMsg(pParse, "too many arguments on function %T", pToken); + } pNew->x.pList = pList; ExprSetProperty(pNew, EP_HasFunc); assert( !ExprHasProperty(pNew, EP_xIsSelect) ); sqlite3ExprSetHeightAndFlags(pParse, pNew); + if( eDistinct==SF_Distinct ) ExprSetProperty(pNew, EP_Distinct); return pNew; } @@ -93732,6 +97167,10 @@ static SQLITE_NOINLINE void sqlite3ExprDeleteNN(sqlite3 *db, Expr *p){ assert( p!=0 ); /* Sanity check: Assert that the IntValue is non-negative if it exists */ assert( !ExprHasProperty(p, EP_IntValue) || p->u.iValue>=0 ); + + assert( !ExprHasProperty(p, EP_WinFunc) || p->y.pWin!=0 || db->mallocFailed ); + assert( p->op!=TK_FUNCTION || ExprHasProperty(p, EP_TokenOnly|EP_Reduced) + || p->y.pWin==0 || ExprHasProperty(p, EP_WinFunc) ); #ifdef SQLITE_DEBUG if( ExprHasProperty(p, EP_Leaf) && !ExprHasProperty(p, EP_TokenOnly) ){ assert( p->pLeft==0 ); @@ -93750,6 +97189,10 @@ static SQLITE_NOINLINE void sqlite3ExprDeleteNN(sqlite3 *db, Expr *p){ }else{ sqlite3ExprListDelete(db, p->x.pList); } + if( ExprHasProperty(p, EP_WinFunc) ){ + assert( p->op==TK_FUNCTION ); + sqlite3WindowDelete(db, p->y.pWin); + } } if( ExprHasProperty(p, EP_MemToken) ) sqlite3DbFree(db, p->u.zToken); if( !ExprHasProperty(p, EP_Static) ){ @@ -93798,7 +97241,7 @@ static int exprStructSize(Expr *p){ ** Note that with flags==EXPRDUP_REDUCE, this routines works on full-size ** (unreduced) Expr objects as they or originally constructed by the parser. ** During expression analysis, extra information is computed and moved into -** later parts of teh Expr object and that extra information might get chopped +** later parts of the Expr object and that extra information might get chopped ** off if the expression is reduced. Note also that it does not work to ** make an EXPRDUP_REDUCE copy of a reduced expression. It is only legal ** to reduce a pristine expression tree from the parser. The implementation @@ -93810,7 +97253,11 @@ static int dupedExprStructSize(Expr *p, int flags){ assert( flags==EXPRDUP_REDUCE || flags==0 ); /* Only one flag value allowed */ assert( EXPR_FULLSIZE<=0xfff ); assert( (0xfff & (EP_Reduced|EP_TokenOnly))==0 ); - if( 0==flags || p->op==TK_SELECT_COLUMN ){ + if( 0==flags || p->op==TK_SELECT_COLUMN +#ifndef SQLITE_OMIT_WINDOWFUNC + || ExprHasProperty(p, EP_WinFunc) +#endif + ){ nSize = EXPR_FULLSIZE; }else{ assert( !ExprHasProperty(p, EP_TokenOnly|EP_Reduced) ); @@ -93835,7 +97282,7 @@ static int dupedExprStructSize(Expr *p, int flags){ static int dupedExprNodeSize(Expr *p, int flags){ int nByte = dupedExprStructSize(p, flags) & 0xfff; if( !ExprHasProperty(p, EP_IntValue) && p->u.zToken ){ - nByte += sqlite3Strlen30(p->u.zToken)+1; + nByte += sqlite3Strlen30NN(p->u.zToken)+1; } return ROUND8(nByte); } @@ -93938,7 +97385,7 @@ static Expr *exprDup(sqlite3 *db, Expr *p, int dupFlags, u8 **pzBuffer){ } /* Fill in pNew->pLeft and pNew->pRight. */ - if( ExprHasProperty(pNew, EP_Reduced|EP_TokenOnly) ){ + if( ExprHasProperty(pNew, EP_Reduced|EP_TokenOnly|EP_WinFunc) ){ zAlloc += dupedExprNodeSize(p, dupFlags); if( !ExprHasProperty(pNew, EP_TokenOnly|EP_Leaf) ){ pNew->pLeft = p->pLeft ? @@ -93946,6 +97393,12 @@ static Expr *exprDup(sqlite3 *db, Expr *p, int dupFlags, u8 **pzBuffer){ pNew->pRight = p->pRight ? exprDup(db, p->pRight, EXPRDUP_REDUCE, &zAlloc) : 0; } +#ifndef SQLITE_OMIT_WINDOWFUNC + if( ExprHasProperty(p, EP_WinFunc) ){ + pNew->y.pWin = sqlite3WindowDup(db, pNew, p->y.pWin); + assert( ExprHasProperty(pNew, EP_WinFunc) ); + } +#endif /* SQLITE_OMIT_WINDOWFUNC */ if( pzBuffer ){ *pzBuffer = zAlloc; } @@ -94050,6 +97503,7 @@ SQLITE_PRIVATE ExprList *sqlite3ExprListDup(sqlite3 *db, ExprList *p, int flags) pItem->sortOrder = pOldItem->sortOrder; pItem->done = 0; pItem->bSpanIsTab = pOldItem->bSpanIsTab; + pItem->bSorterRef = pOldItem->bSorterRef; pItem->u = pOldItem->u; } return pNew; @@ -94155,7 +97609,11 @@ SQLITE_PRIVATE Select *sqlite3SelectDup(sqlite3 *db, Select *pDup, int flags){ pNew->addrOpenEphm[1] = -1; pNew->nSelectRow = p->nSelectRow; pNew->pWith = withDup(db, p->pWith); - sqlite3SelectSetName(pNew, p->zSelName); +#ifndef SQLITE_OMIT_WINDOWFUNC + pNew->pWin = 0; + pNew->pWinDefn = sqlite3WindowListDup(db, p->pWinDefn); +#endif + pNew->selId = p->selId; *pp = pNew; pp = &pNew->pPrior; pNext = pNew; @@ -94327,6 +97785,9 @@ SQLITE_PRIVATE void sqlite3ExprListSetName( assert( pItem->zName==0 ); pItem->zName = sqlite3DbStrNDup(pParse->db, pName->z, pName->n); if( dequote ) sqlite3Dequote(pItem->zName); + if( IN_RENAME_OBJECT ){ + sqlite3RenameTokenMap(pParse, (void*)pItem->zName, pName); + } } } @@ -94419,6 +97880,34 @@ SQLITE_PRIVATE int sqlite3SelectWalkFail(Walker *pWalker, Select *NotUsed){ return WRC_Abort; } +/* +** If the input expression is an ID with the name "true" or "false" +** then convert it into an TK_TRUEFALSE term. Return non-zero if +** the conversion happened, and zero if the expression is unaltered. +*/ +SQLITE_PRIVATE int sqlite3ExprIdToTrueFalse(Expr *pExpr){ + assert( pExpr->op==TK_ID || pExpr->op==TK_STRING ); + if( sqlite3StrICmp(pExpr->u.zToken, "true")==0 + || sqlite3StrICmp(pExpr->u.zToken, "false")==0 + ){ + pExpr->op = TK_TRUEFALSE; + return 1; + } + return 0; +} + +/* +** The argument must be a TK_TRUEFALSE Expr node. Return 1 if it is TRUE +** and 0 if it is FALSE. +*/ +SQLITE_PRIVATE int sqlite3ExprTruthValue(const Expr *pExpr){ + assert( pExpr->op==TK_TRUEFALSE ); + assert( sqlite3StrICmp(pExpr->u.zToken,"true")==0 + || sqlite3StrICmp(pExpr->u.zToken,"false")==0 ); + return pExpr->u.zToken[4]==0; +} + + /* ** These routines are Walker callbacks used to check expressions to ** see if they are "constant" for some definition of constant. The @@ -94466,6 +97955,12 @@ static int exprNodeIsConstant(Walker *pWalker, Expr *pExpr){ return WRC_Abort; } case TK_ID: + /* Convert "true" or "false" in a DEFAULT clause into the + ** appropriate TK_TRUEFALSE operator */ + if( sqlite3ExprIdToTrueFalse(pExpr) ){ + return WRC_Prune; + } + /* Fall thru */ case TK_COLUMN: case TK_AGG_FUNCTION: case TK_AGG_COLUMN: @@ -94473,11 +97968,16 @@ static int exprNodeIsConstant(Walker *pWalker, Expr *pExpr){ testcase( pExpr->op==TK_COLUMN ); testcase( pExpr->op==TK_AGG_FUNCTION ); testcase( pExpr->op==TK_AGG_COLUMN ); + if( ExprHasProperty(pExpr, EP_FixedCol) && pWalker->eCode!=2 ){ + return WRC_Continue; + } if( pWalker->eCode==3 && pExpr->iTable==pWalker->u.iCur ){ return WRC_Continue; } /* Fall through */ case TK_IF_NULL_ROW: + case TK_REGISTER: + testcase( pExpr->op==TK_REGISTER ); testcase( pExpr->op==TK_IF_NULL_ROW ); pWalker->eCode = 0; return WRC_Abort; @@ -94495,8 +97995,8 @@ static int exprNodeIsConstant(Walker *pWalker, Expr *pExpr){ } /* Fall through */ default: - testcase( pExpr->op==TK_SELECT ); /* sqlite3SelectWalkFail will disallow */ - testcase( pExpr->op==TK_EXISTS ); /* sqlite3SelectWalkFail will disallow */ + testcase( pExpr->op==TK_SELECT ); /* sqlite3SelectWalkFail() disallows */ + testcase( pExpr->op==TK_EXISTS ); /* sqlite3SelectWalkFail() disallows */ return WRC_Continue; } } @@ -94526,10 +98026,17 @@ SQLITE_PRIVATE int sqlite3ExprIsConstant(Expr *p){ } /* -** Walk an expression tree. Return non-zero if the expression is constant -** that does no originate from the ON or USING clauses of a join. -** Return 0 if it involves variables or function calls or terms from -** an ON or USING clause. +** Walk an expression tree. Return non-zero if +** +** (1) the expression is constant, and +** (2) the expression does originate in the ON or USING clause +** of a LEFT JOIN, and +** (3) the expression does not contain any EP_FixedCol TK_COLUMN +** operands created by the constant propagation optimization. +** +** When this routine returns true, it indicates that the expression +** can be added to the pParse->pConstExpr list and evaluated once when +** the prepared statement starts up. See sqlite3ExprCodeAtInit(). */ SQLITE_PRIVATE int sqlite3ExprIsConstantNotJoin(Expr *p){ return exprIsConst(p, 2, 0); @@ -94559,7 +98066,7 @@ static int exprNodeIsConstantOrGroupBy(Walker *pWalker, Expr *pExpr){ Expr *p = pGroupBy->a[i].pExpr; if( sqlite3ExprCompare(0, pExpr, p, -1)<2 ){ CollSeq *pColl = sqlite3ExprNNCollSeq(pWalker->pParse, p); - if( sqlite3_stricmp("BINARY", pColl->zName)==0 ){ + if( sqlite3IsBinary(pColl) ){ return WRC_Prune; } } @@ -94701,8 +98208,8 @@ SQLITE_PRIVATE int sqlite3ExprCanBeNull(const Expr *p){ return 0; case TK_COLUMN: return ExprHasProperty(p, EP_CanBeNull) || - p->pTab==0 || /* Reference to column of index on expression */ - (p->iColumn>=0 && p->pTab->aCol[p->iColumn].notNull==0); + p->y.pTab==0 || /* Reference to column of index on expression */ + (p->iColumn>=0 && p->y.pTab->aCol[p->iColumn].notNull==0); default: return 1; } @@ -94757,6 +98264,14 @@ SQLITE_PRIVATE int sqlite3IsRowid(const char *z){ if( sqlite3StrICmp(z, "OID")==0 ) return 1; return 0; } +#ifdef SQLITE_ENABLE_NORMALIZE +SQLITE_PRIVATE int sqlite3IsRowidN(const char *z, int n){ + if( sqlite3StrNICmp(z, "_ROWID_", n)==0 ) return 1; + if( sqlite3StrNICmp(z, "ROWID", n)==0 ) return 1; + if( sqlite3StrNICmp(z, "OID", n)==0 ) return 1; + return 0; +} +#endif /* ** pX is the RHS of an IN operator. If pX is a SELECT statement @@ -94981,7 +98496,8 @@ SQLITE_PRIVATE int sqlite3FindInIndex( sqlite3OpenTable(pParse, iTab, iDb, pTab, OP_OpenRead); eType = IN_INDEX_ROWID; - + ExplainQueryPlan((pParse, 0, + "USING ROWID SEARCH ON TABLE %s FOR IN-OPERATOR",pTab->zName)); sqlite3VdbeJumpHere(v, iAddr); }else{ Index *pIdx; /* Iterator variable */ @@ -95060,11 +98576,8 @@ SQLITE_PRIVATE int sqlite3FindInIndex( if( colUsed==(MASKBIT(nExpr)-1) ){ /* If we reach this point, that means the index pIdx is usable */ int iAddr = sqlite3VdbeAddOp0(v, OP_Once); VdbeCoverage(v); -#ifndef SQLITE_OMIT_EXPLAIN - sqlite3VdbeAddOp4(v, OP_Explain, 0, 0, 0, - sqlite3MPrintf(db, "USING INDEX %s FOR IN-OPERATOR",pIdx->zName), - P4_DYNAMIC); -#endif + ExplainQueryPlan((pParse, 0, + "USING INDEX %s FOR IN-OPERATOR",pIdx->zName)); sqlite3VdbeAddOp3(v, OP_OpenRead, iTab, pIdx->tnum, iDb); sqlite3VdbeSetP4KeyInfo(pParse, pIdx); VdbeComment((v, "%s", pIdx->zName)); @@ -95243,7 +98756,6 @@ SQLITE_PRIVATE int sqlite3CodeSubselect( int rReg = 0; /* Register storing resulting */ Vdbe *v = sqlite3GetVdbe(pParse); if( NEVER(v==0) ) return 0; - sqlite3ExprCachePush(pParse); /* The evaluation of the IN/EXISTS/SELECT must be repeated every time it ** is encountered if any of the following is true: @@ -95259,17 +98771,6 @@ SQLITE_PRIVATE int sqlite3CodeSubselect( jmpIfDynamic = sqlite3VdbeAddOp0(v, OP_Once); VdbeCoverage(v); } -#ifndef SQLITE_OMIT_EXPLAIN - if( pParse->explain==2 ){ - char *zMsg = sqlite3MPrintf(pParse->db, "EXECUTE %s%s SUBQUERY %d", - jmpIfDynamic>=0?"":"CORRELATED ", - pExpr->op==TK_IN?"LIST":"SCALAR", - pParse->iNextSelectId - ); - sqlite3VdbeAddOp4(v, OP_Explain, pParse->iSelectId, 0, 0, zMsg, P4_DYNAMIC); - } -#endif - switch( pExpr->op ){ case TK_IN: { int addr; /* Address of OP_OpenEphemeral instruction */ @@ -95307,6 +98808,9 @@ SQLITE_PRIVATE int sqlite3CodeSubselect( Select *pSelect = pExpr->x.pSelect; ExprList *pEList = pSelect->pEList; + ExplainQueryPlan((pParse, 1, "%sLIST SUBQUERY", + jmpIfDynamic>=0?"":"CORRELATED " + )); assert( !isRowid ); /* If the LHS and RHS of the IN operator do not match, that ** error will have been caught long before we reach this point. */ @@ -95348,7 +98852,6 @@ SQLITE_PRIVATE int sqlite3CodeSubselect( ExprList *pList = pExpr->x.pList; struct ExprList_item *pItem; int r1, r2, r3; - affinity = sqlite3ExprAffinity(pLeft); if( !affinity ){ affinity = SQLITE_AFF_BLOB; @@ -95388,7 +98891,6 @@ SQLITE_PRIVATE int sqlite3CodeSubselect( sqlite3VdbeAddOp3(v, OP_Insert, pExpr->iTable, r2, r3); }else{ sqlite3VdbeAddOp4(v, OP_MakeRecord, r3, 1, r2, &affinity, 1); - sqlite3ExprCacheAffinityChange(pParse, r3, 1); sqlite3VdbeAddOp4Int(v, OP_IdxInsert, pExpr->iTable, r2, r3, 1); } } @@ -95429,6 +98931,8 @@ SQLITE_PRIVATE int sqlite3CodeSubselect( assert( ExprHasProperty(pExpr, EP_xIsSelect) ); pSel = pExpr->x.pSelect; + ExplainQueryPlan((pParse, 1, "%sSCALAR SUBQUERY", + jmpIfDynamic>=0?"":"CORRELATED ")); nReg = pExpr->op==TK_SELECT ? pSel->pEList->nExpr : 1; sqlite3SelectDestInit(&dest, 0, pParse->nMem+1); pParse->nMem += nReg; @@ -95467,7 +98971,6 @@ SQLITE_PRIVATE int sqlite3CodeSubselect( if( jmpIfDynamic>=0 ){ sqlite3VdbeJumpHere(v, jmpIfDynamic); } - sqlite3ExprCachePop(pParse); return rReg; } @@ -95586,7 +99089,6 @@ static void sqlite3ExprCodeIN( ** aiMap[] array contains a mapping from the original LHS field order to ** the field order that matches the RHS index. */ - sqlite3ExprCachePush(pParse); rLhsOrig = exprCodeVector(pParse, pLeft, &iDummy); for(i=0; idb, aiMap); @@ -95813,145 +99314,6 @@ static void codeInteger(Parse *pParse, Expr *pExpr, int negFlag, int iMem){ } } -/* -** Erase column-cache entry number i -*/ -static void cacheEntryClear(Parse *pParse, int i){ - if( pParse->aColCache[i].tempReg ){ - if( pParse->nTempRegaTempReg) ){ - pParse->aTempReg[pParse->nTempReg++] = pParse->aColCache[i].iReg; - } - } - pParse->nColCache--; - if( inColCache ){ - pParse->aColCache[i] = pParse->aColCache[pParse->nColCache]; - } -} - - -/* -** Record in the column cache that a particular column from a -** particular table is stored in a particular register. -*/ -SQLITE_PRIVATE void sqlite3ExprCacheStore(Parse *pParse, int iTab, int iCol, int iReg){ - int i; - int minLru; - int idxLru; - struct yColCache *p; - - /* Unless an error has occurred, register numbers are always positive. */ - assert( iReg>0 || pParse->nErr || pParse->db->mallocFailed ); - assert( iCol>=-1 && iCol<32768 ); /* Finite column numbers */ - - /* The SQLITE_ColumnCache flag disables the column cache. This is used - ** for testing only - to verify that SQLite always gets the same answer - ** with and without the column cache. - */ - if( OptimizationDisabled(pParse->db, SQLITE_ColumnCache) ) return; - - /* First replace any existing entry. - ** - ** Actually, the way the column cache is currently used, we are guaranteed - ** that the object will never already be in cache. Verify this guarantee. - */ -#ifndef NDEBUG - for(i=0, p=pParse->aColCache; inColCache; i++, p++){ - assert( p->iTable!=iTab || p->iColumn!=iCol ); - } -#endif - - /* If the cache is already full, delete the least recently used entry */ - if( pParse->nColCache>=SQLITE_N_COLCACHE ){ - minLru = 0x7fffffff; - idxLru = -1; - for(i=0, p=pParse->aColCache; ilrulru; - } - } - p = &pParse->aColCache[idxLru]; - }else{ - p = &pParse->aColCache[pParse->nColCache++]; - } - - /* Add the new entry to the end of the cache */ - p->iLevel = pParse->iCacheLevel; - p->iTable = iTab; - p->iColumn = iCol; - p->iReg = iReg; - p->tempReg = 0; - p->lru = pParse->iCacheCnt++; -} - -/* -** Indicate that registers between iReg..iReg+nReg-1 are being overwritten. -** Purge the range of registers from the column cache. -*/ -SQLITE_PRIVATE void sqlite3ExprCacheRemove(Parse *pParse, int iReg, int nReg){ - int i = 0; - while( inColCache ){ - struct yColCache *p = &pParse->aColCache[i]; - if( p->iReg >= iReg && p->iReg < iReg+nReg ){ - cacheEntryClear(pParse, i); - }else{ - i++; - } - } -} - -/* -** Remember the current column cache context. Any new entries added -** added to the column cache after this call are removed when the -** corresponding pop occurs. -*/ -SQLITE_PRIVATE void sqlite3ExprCachePush(Parse *pParse){ - pParse->iCacheLevel++; -#ifdef SQLITE_DEBUG - if( pParse->db->flags & SQLITE_VdbeAddopTrace ){ - printf("PUSH to %d\n", pParse->iCacheLevel); - } -#endif -} - -/* -** Remove from the column cache any entries that were added since the -** the previous sqlite3ExprCachePush operation. In other words, restore -** the cache to the state it was in prior the most recent Push. -*/ -SQLITE_PRIVATE void sqlite3ExprCachePop(Parse *pParse){ - int i = 0; - assert( pParse->iCacheLevel>=1 ); - pParse->iCacheLevel--; -#ifdef SQLITE_DEBUG - if( pParse->db->flags & SQLITE_VdbeAddopTrace ){ - printf("POP to %d\n", pParse->iCacheLevel); - } -#endif - while( inColCache ){ - if( pParse->aColCache[i].iLevel>pParse->iCacheLevel ){ - cacheEntryClear(pParse, i); - }else{ - i++; - } - } -} - -/* -** When a cached column is reused, make sure that its register is -** no longer available as a temp register. ticket #3879: that same -** register might be in the cache in multiple places, so be sure to -** get them all. -*/ -static void sqlite3ExprCachePinRegister(Parse *pParse, int iReg){ - int i; - struct yColCache *p; - for(i=0, p=pParse->aColCache; inColCache; i++, p++){ - if( p->iReg==iReg ){ - p->tempReg = 0; - } - } -} /* Generate code that will load into register regOut a value that is ** appropriate for the iIdxCol-th column of index pIdx. @@ -96007,12 +99369,7 @@ SQLITE_PRIVATE void sqlite3ExprCodeGetColumnOfTable( /* ** Generate code that will extract the iColumn-th column from -** table pTab and store the column value in a register. -** -** An effort is made to store the column value in register iReg. This -** is not garanteeed for GetColumn() - the result can be stored in -** any register. But the result is guaranteed to land in register iReg -** for GetColumnToReg(). +** table pTab and store the column value in register iReg. ** ** There must be an open cursor to pTab in iTable when this routine ** is called. If iColumn<0 then code is generated that extracts the rowid. @@ -96026,95 +99383,22 @@ SQLITE_PRIVATE int sqlite3ExprCodeGetColumn( u8 p5 /* P5 value for OP_Column + FLAGS */ ){ Vdbe *v = pParse->pVdbe; - int i; - struct yColCache *p; - - for(i=0, p=pParse->aColCache; inColCache; i++, p++){ - if( p->iTable==iTable && p->iColumn==iColumn ){ - p->lru = pParse->iCacheCnt++; - sqlite3ExprCachePinRegister(pParse, p->iReg); - return p->iReg; - } - } assert( v!=0 ); sqlite3ExprCodeGetColumnOfTable(v, pTab, iTable, iColumn, iReg); if( p5 ){ sqlite3VdbeChangeP5(v, p5); - }else{ - sqlite3ExprCacheStore(pParse, iTable, iColumn, iReg); } return iReg; } -SQLITE_PRIVATE void sqlite3ExprCodeGetColumnToReg( - Parse *pParse, /* Parsing and code generating context */ - Table *pTab, /* Description of the table we are reading from */ - int iColumn, /* Index of the table column */ - int iTable, /* The cursor pointing to the table */ - int iReg /* Store results here */ -){ - int r1 = sqlite3ExprCodeGetColumn(pParse, pTab, iColumn, iTable, iReg, 0); - if( r1!=iReg ) sqlite3VdbeAddOp2(pParse->pVdbe, OP_SCopy, r1, iReg); -} - - -/* -** Clear all column cache entries. -*/ -SQLITE_PRIVATE void sqlite3ExprCacheClear(Parse *pParse){ - int i; - -#ifdef SQLITE_DEBUG - if( pParse->db->flags & SQLITE_VdbeAddopTrace ){ - printf("CLEAR\n"); - } -#endif - for(i=0; inColCache; i++){ - if( pParse->aColCache[i].tempReg - && pParse->nTempRegaTempReg) - ){ - pParse->aTempReg[pParse->nTempReg++] = pParse->aColCache[i].iReg; - } - } - pParse->nColCache = 0; -} - -/* -** Record the fact that an affinity change has occurred on iCount -** registers starting with iStart. -*/ -SQLITE_PRIVATE void sqlite3ExprCacheAffinityChange(Parse *pParse, int iStart, int iCount){ - sqlite3ExprCacheRemove(pParse, iStart, iCount); -} /* ** Generate code to move content from registers iFrom...iFrom+nReg-1 -** over to iTo..iTo+nReg-1. Keep the column cache up-to-date. +** over to iTo..iTo+nReg-1. */ SQLITE_PRIVATE void sqlite3ExprCodeMove(Parse *pParse, int iFrom, int iTo, int nReg){ assert( iFrom>=iTo+nReg || iFrom+nReg<=iTo ); sqlite3VdbeAddOp3(pParse->pVdbe, OP_Move, iFrom, iTo, nReg); - sqlite3ExprCacheRemove(pParse, iFrom, nReg); -} - -#if defined(SQLITE_DEBUG) || defined(SQLITE_COVERAGE_TEST) -/* -** Return true if any register in the range iFrom..iTo (inclusive) -** is used as part of the column cache. -** -** This routine is used within assert() and testcase() macros only -** and does not appear in a normal build. -*/ -static int usedAsColumnCache(Parse *pParse, int iFrom, int iTo){ - int i; - struct yColCache *p; - for(i=0, p=pParse->aColCache; inColCache; i++, p++){ - int r = p->iReg; - if( r>=iFrom && r<=iTo ) return 1; /*NO_TEST*/ - } - return 0; } -#endif /* SQLITE_DEBUG || SQLITE_COVERAGE_TEST */ - /* ** Convert a scalar expression node to a TK_REGISTER referencing @@ -96191,6 +99475,7 @@ SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target) return 0; } +expr_code_doover: if( pExpr==0 ){ op = TK_NULL; }else{ @@ -96212,6 +99497,28 @@ SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target) } case TK_COLUMN: { int iTab = pExpr->iTable; + if( ExprHasProperty(pExpr, EP_FixedCol) ){ + /* This COLUMN expression is really a constant due to WHERE clause + ** constraints, and that constant is coded by the pExpr->pLeft + ** expresssion. However, make sure the constant has the correct + ** datatype by applying the Affinity of the table column to the + ** constant. + */ + int iReg = sqlite3ExprCodeTarget(pParse, pExpr->pLeft,target); + int aff = sqlite3TableColumnAffinity(pExpr->y.pTab, pExpr->iColumn); + if( aff!=SQLITE_AFF_BLOB ){ + static const char zAff[] = "B\000C\000D\000E"; + assert( SQLITE_AFF_BLOB=='A' ); + assert( SQLITE_AFF_TEXT=='B' ); + if( iReg!=target ){ + sqlite3VdbeAddOp2(v, OP_SCopy, iReg, target); + iReg = target; + } + sqlite3VdbeAddOp4(v, OP_Affinity, iReg, 1, 0, + &zAff[(aff-'B')*2], P4_STATIC); + } + return iReg; + } if( iTab<0 ){ if( pParse->iSelfTab<0 ){ /* Generating CHECK constraints or inserting into partial index */ @@ -96222,7 +99529,7 @@ SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target) iTab = pParse->iSelfTab - 1; } } - return sqlite3ExprCodeGetColumn(pParse, pExpr->pTab, + return sqlite3ExprCodeGetColumn(pParse, pExpr->y.pTab, pExpr->iColumn, iTab, target, pExpr->op2); } @@ -96230,6 +99537,10 @@ SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target) codeInteger(pParse, pExpr, 0, target); return target; } + case TK_TRUEFALSE: { + sqlite3VdbeAddOp2(v, OP_Integer, sqlite3ExprTruthValue(pExpr), target); + return target; + } #ifndef SQLITE_OMIT_FLOATING_POINT case TK_FLOAT: { assert( !ExprHasProperty(pExpr, EP_IntValue) ); @@ -96288,8 +99599,6 @@ SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target) } sqlite3VdbeAddOp2(v, OP_Cast, target, sqlite3AffinityType(pExpr->u.zToken, 0)); - testcase( usedAsColumnCache(pParse, inReg, inReg) ); - sqlite3ExprCacheAffinityChange(pParse, inReg, 1); return inReg; } #endif /* SQLITE_OMIT_CAST */ @@ -96385,6 +99694,18 @@ SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target) sqlite3VdbeAddOp2(v, op, r1, inReg); break; } + case TK_TRUTH: { + int isTrue; /* IS TRUE or IS NOT TRUE */ + int bNormal; /* IS TRUE or IS FALSE */ + r1 = sqlite3ExprCodeTemp(pParse, pExpr->pLeft, ®Free1); + testcase( regFree1==0 ); + isTrue = sqlite3ExprTruthValue(pExpr->pRight); + bNormal = pExpr->op2==TK_IS; + testcase( isTrue && bNormal); + testcase( !isTrue && bNormal); + sqlite3VdbeAddOp4Int(v, OP_IsTrue, r1, inReg, !isTrue, isTrue ^ bNormal); + break; + } case TK_ISNULL: case TK_NOTNULL: { int addr; @@ -96421,6 +99742,12 @@ SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target) u8 enc = ENC(db); /* The text encoding used by this database */ CollSeq *pColl = 0; /* A collating sequence */ +#ifndef SQLITE_OMIT_WINDOWFUNC + if( ExprHasProperty(pExpr, EP_WinFunc) ){ + return pExpr->y.pWin->regResult; + } +#endif + if( ConstFactorOk(pParse) && sqlite3ExprIsConstantNotJoin(pExpr) ){ /* SQL functions can be expensive. So try to move constant functions ** out of the inner loop, even if that means an extra OP_Copy. */ @@ -96457,10 +99784,7 @@ SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target) for(i=1; ia[i].pExpr, target); - sqlite3ExprCachePop(pParse); } sqlite3VdbeResolveLabel(v, endCoalesce); break; @@ -96526,10 +99850,8 @@ SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target) } } - sqlite3ExprCachePush(pParse); /* Ticket 2ea2425d34be */ sqlite3ExprCodeExprList(pParse, pFarg, r1, 0, SQLITE_ECEL_DUP|SQLITE_ECEL_FACTOR); - sqlite3ExprCachePop(pParse); /* Ticket 2ea2425d34be */ }else{ r1 = 0; } @@ -96546,7 +99868,7 @@ SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target) ** "glob(B,A). We want to use the A in "A glob B" to test ** for function overloading. But we use the B term in "glob(B,A)". */ - if( nFarg>=2 && (pExpr->flags & EP_InfixFunc) ){ + if( nFarg>=2 && ExprHasProperty(pExpr, EP_InfixFunc) ){ pDef = sqlite3VtabOverloadFunction(db, pDef, nFarg, pFarg->a[1].pExpr); }else if( nFarg>0 ){ pDef = sqlite3VtabOverloadFunction(db, pDef, nFarg, pFarg->a[0].pExpr); @@ -96635,7 +99957,8 @@ SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target) case TK_SPAN: case TK_COLLATE: case TK_UPLUS: { - return sqlite3ExprCodeTarget(pParse, pExpr->pLeft, target); + pExpr = pExpr->pLeft; + goto expr_code_doover; /* 2018-04-28: Prevent deep recursion. OSSFuzz. */ } case TK_TRIGGER: { @@ -96664,7 +99987,7 @@ SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target) ** p1==1 -> old.a p1==4 -> new.a ** p1==2 -> old.b p1==5 -> new.b */ - Table *pTab = pExpr->pTab; + Table *pTab = pExpr->y.pTab; int p1 = pExpr->iTable * (pTab->nCol+1) + 1 + pExpr->iColumn; assert( pExpr->iTable==0 || pExpr->iTable==1 ); @@ -96673,10 +99996,9 @@ SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target) assert( p1>=0 && p1<(pTab->nCol*2+2) ); sqlite3VdbeAddOp2(v, OP_Param, p1, target); - VdbeComment((v, "%s.%s -> $%d", + VdbeComment((v, "r[%d]=%s.%s", target, (pExpr->iTable ? "new" : "old"), - (pExpr->iColumn<0 ? "rowid" : pExpr->pTab->aCol[pExpr->iColumn].zName), - target + (pExpr->iColumn<0 ? "rowid" : pExpr->y.pTab->aCol[pExpr->iColumn].zName) )); #ifndef SQLITE_OMIT_FLOATING_POINT @@ -96702,9 +100024,7 @@ SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target) case TK_IF_NULL_ROW: { int addrINR; addrINR = sqlite3VdbeAddOp1(v, OP_IfNullRow, pExpr->iTable); - sqlite3ExprCachePush(pParse); inReg = sqlite3ExprCodeTarget(pParse, pExpr->pLeft, target); - sqlite3ExprCachePop(pParse); sqlite3VdbeJumpHere(v, addrINR); sqlite3VdbeChangeP3(v, addrINR, inReg); break; @@ -96741,7 +100061,6 @@ SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target) Expr opCompare; /* The X==Ei expression */ Expr *pX; /* The X expression */ Expr *pTest = 0; /* X==Ei (form A) or just Ei (form B) */ - VVA_ONLY( int iCacheLevel = pParse->iCacheLevel; ) assert( !ExprHasProperty(pExpr, EP_xIsSelect) && pExpr->x.pList ); assert(pExpr->x.pList->nExpr > 0); @@ -96765,7 +100084,6 @@ SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target) regFree1 = 0; } for(i=0; iop==TK_COLUMN ); sqlite3ExprCode(pParse, aListelem[i+1].pExpr, target); sqlite3VdbeGoto(v, endLabel); - sqlite3ExprCachePop(pParse); sqlite3VdbeResolveLabel(v, nextCase); } if( (nExpr&1)!=0 ){ - sqlite3ExprCachePush(pParse); sqlite3ExprCode(pParse, pEList->a[nExpr-1].pExpr, target); - sqlite3ExprCachePop(pParse); }else{ sqlite3VdbeAddOp2(v, OP_Null, 0, target); } - assert( pParse->db->mallocFailed || pParse->nErr>0 - || pParse->iCacheLevel==iCacheLevel ); sqlite3VdbeResolveLabel(v, endLabel); break; } @@ -96939,7 +100252,7 @@ SQLITE_PRIVATE void sqlite3ExprCodeCopy(Parse *pParse, Expr *pExpr, int target){ ** might choose to code the expression at initialization time. */ SQLITE_PRIVATE void sqlite3ExprCodeFactorable(Parse *pParse, Expr *pExpr, int target){ - if( pParse->okConstFactor && sqlite3ExprIsConstant(pExpr) ){ + if( pParse->okConstFactor && sqlite3ExprIsConstantNotJoin(pExpr) ){ sqlite3ExprCodeAtInit(pParse, pExpr, target); }else{ sqlite3ExprCode(pParse, pExpr, target); @@ -97008,6 +100321,12 @@ SQLITE_PRIVATE int sqlite3ExprCodeExprList( if( !ConstFactorOk(pParse) ) flags &= ~SQLITE_ECEL_FACTOR; for(pItem=pList->a, i=0; ipExpr; +#ifdef SQLITE_ENABLE_SORTER_REFERENCES + if( pItem->bSorterRef ){ + i--; + n--; + }else +#endif if( (flags & SQLITE_ECEL_REF)!=0 && (j = pItem->u.x.iOrderByCol)>0 ){ if( flags & SQLITE_ECEL_OMITREF ){ i--; @@ -97015,7 +100334,9 @@ SQLITE_PRIVATE int sqlite3ExprCodeExprList( }else{ sqlite3VdbeAddOp2(v, copyOp, j+srcReg-1, target+i); } - }else if( (flags & SQLITE_ECEL_FACTOR)!=0 && sqlite3ExprIsConstant(pExpr) ){ + }else if( (flags & SQLITE_ECEL_FACTOR)!=0 + && sqlite3ExprIsConstantNotJoin(pExpr) + ){ sqlite3ExprCodeAtInit(pParse, pExpr, target+i); }else{ int inReg = sqlite3ExprCodeTarget(pParse, pExpr, target+i); @@ -97141,18 +100462,14 @@ SQLITE_PRIVATE void sqlite3ExprIfTrue(Parse *pParse, Expr *pExpr, int dest, int int d2 = sqlite3VdbeMakeLabel(v); testcase( jumpIfNull==0 ); sqlite3ExprIfFalse(pParse, pExpr->pLeft, d2,jumpIfNull^SQLITE_JUMPIFNULL); - sqlite3ExprCachePush(pParse); sqlite3ExprIfTrue(pParse, pExpr->pRight, dest, jumpIfNull); sqlite3VdbeResolveLabel(v, d2); - sqlite3ExprCachePop(pParse); break; } case TK_OR: { testcase( jumpIfNull==0 ); sqlite3ExprIfTrue(pParse, pExpr->pLeft, dest, jumpIfNull); - sqlite3ExprCachePush(pParse); sqlite3ExprIfTrue(pParse, pExpr->pRight, dest, jumpIfNull); - sqlite3ExprCachePop(pParse); break; } case TK_NOT: { @@ -97160,6 +100477,23 @@ SQLITE_PRIVATE void sqlite3ExprIfTrue(Parse *pParse, Expr *pExpr, int dest, int sqlite3ExprIfFalse(pParse, pExpr->pLeft, dest, jumpIfNull); break; } + case TK_TRUTH: { + int isNot; /* IS NOT TRUE or IS NOT FALSE */ + int isTrue; /* IS TRUE or IS NOT TRUE */ + testcase( jumpIfNull==0 ); + isNot = pExpr->op2==TK_ISNOT; + isTrue = sqlite3ExprTruthValue(pExpr->pRight); + testcase( isTrue && isNot ); + testcase( !isTrue && isNot ); + if( isTrue ^ isNot ){ + sqlite3ExprIfTrue(pParse, pExpr->pLeft, dest, + isNot ? SQLITE_JUMPIFNULL : 0); + }else{ + sqlite3ExprIfFalse(pParse, pExpr->pLeft, dest, + isNot ? SQLITE_JUMPIFNULL : 0); + } + break; + } case TK_IS: case TK_ISNOT: testcase( op==TK_IS ); @@ -97294,19 +100628,15 @@ SQLITE_PRIVATE void sqlite3ExprIfFalse(Parse *pParse, Expr *pExpr, int dest, int case TK_AND: { testcase( jumpIfNull==0 ); sqlite3ExprIfFalse(pParse, pExpr->pLeft, dest, jumpIfNull); - sqlite3ExprCachePush(pParse); sqlite3ExprIfFalse(pParse, pExpr->pRight, dest, jumpIfNull); - sqlite3ExprCachePop(pParse); break; } case TK_OR: { int d2 = sqlite3VdbeMakeLabel(v); testcase( jumpIfNull==0 ); sqlite3ExprIfTrue(pParse, pExpr->pLeft, d2, jumpIfNull^SQLITE_JUMPIFNULL); - sqlite3ExprCachePush(pParse); sqlite3ExprIfFalse(pParse, pExpr->pRight, dest, jumpIfNull); sqlite3VdbeResolveLabel(v, d2); - sqlite3ExprCachePop(pParse); break; } case TK_NOT: { @@ -97314,6 +100644,26 @@ SQLITE_PRIVATE void sqlite3ExprIfFalse(Parse *pParse, Expr *pExpr, int dest, int sqlite3ExprIfTrue(pParse, pExpr->pLeft, dest, jumpIfNull); break; } + case TK_TRUTH: { + int isNot; /* IS NOT TRUE or IS NOT FALSE */ + int isTrue; /* IS TRUE or IS NOT TRUE */ + testcase( jumpIfNull==0 ); + isNot = pExpr->op2==TK_ISNOT; + isTrue = sqlite3ExprTruthValue(pExpr->pRight); + testcase( isTrue && isNot ); + testcase( !isTrue && isNot ); + if( isTrue ^ isNot ){ + /* IS TRUE and IS NOT FALSE */ + sqlite3ExprIfFalse(pParse, pExpr->pLeft, dest, + isNot ? 0 : SQLITE_JUMPIFNULL); + + }else{ + /* IS FALSE and IS NOT TRUE */ + sqlite3ExprIfTrue(pParse, pExpr->pLeft, dest, + isNot ? 0 : SQLITE_JUMPIFNULL); + } + break; + } case TK_IS: case TK_ISNOT: testcase( pExpr->op==TK_IS ); @@ -97499,17 +100849,35 @@ SQLITE_PRIVATE int sqlite3ExprCompare(Parse *pParse, Expr *pA, Expr *pB, int iTa if( pA->op!=TK_COLUMN && pA->op!=TK_AGG_COLUMN && pA->u.zToken ){ if( pA->op==TK_FUNCTION ){ if( sqlite3StrICmp(pA->u.zToken,pB->u.zToken)!=0 ) return 2; +#ifndef SQLITE_OMIT_WINDOWFUNC + /* Justification for the assert(): + ** window functions have p->op==TK_FUNCTION but aggregate functions + ** have p->op==TK_AGG_FUNCTION. So any comparison between an aggregate + ** function and a window function should have failed before reaching + ** this point. And, it is not possible to have a window function and + ** a scalar function with the same name and number of arguments. So + ** if we reach this point, either A and B both window functions or + ** neither are a window functions. */ + assert( ExprHasProperty(pA,EP_WinFunc)==ExprHasProperty(pB,EP_WinFunc) ); + if( ExprHasProperty(pA,EP_WinFunc) ){ + if( sqlite3WindowCompare(pParse,pA->y.pWin,pB->y.pWin)!=0 ) return 2; + } +#endif + }else if( pA->op==TK_COLLATE ){ + if( sqlite3_stricmp(pA->u.zToken,pB->u.zToken)!=0 ) return 2; }else if( strcmp(pA->u.zToken,pB->u.zToken)!=0 ){ - return pA->op==TK_COLLATE ? 1 : 2; + return 2; } } if( (pA->flags & EP_Distinct)!=(pB->flags & EP_Distinct) ) return 2; if( ALWAYS((combinedFlags & EP_TokenOnly)==0) ){ if( combinedFlags & EP_xIsSelect ) return 2; - if( sqlite3ExprCompare(pParse, pA->pLeft, pB->pLeft, iTab) ) return 2; + if( (combinedFlags & EP_FixedCol)==0 + && sqlite3ExprCompare(pParse, pA->pLeft, pB->pLeft, iTab) ) return 2; if( sqlite3ExprCompare(pParse, pA->pRight, pB->pRight, iTab) ) return 2; if( sqlite3ExprListCompare(pA->x.pList, pB->x.pList, iTab) ) return 2; - if( ALWAYS((combinedFlags & EP_Reduced)==0) && pA->op!=TK_STRING ){ + assert( (combinedFlags & EP_Reduced)==0 ); + if( pA->op!=TK_STRING && pA->op!=TK_TRUEFALSE ){ if( pA->iColumn!=pB->iColumn ) return 2; if( pA->iTable!=pB->iTable && (pA->iTable!=iTab || NEVER(pB->iTable>=0)) ) return 2; @@ -97601,6 +100969,102 @@ SQLITE_PRIVATE int sqlite3ExprImpliesExpr(Parse *pParse, Expr *pE1, Expr *pE2, i return 0; } +/* +** This is the Expr node callback for sqlite3ExprImpliesNotNullRow(). +** If the expression node requires that the table at pWalker->iCur +** have one or more non-NULL column, then set pWalker->eCode to 1 and abort. +** +** This routine controls an optimization. False positives (setting +** pWalker->eCode to 1 when it should not be) are deadly, but false-negatives +** (never setting pWalker->eCode) is a harmless missed optimization. +*/ +static int impliesNotNullRow(Walker *pWalker, Expr *pExpr){ + testcase( pExpr->op==TK_AGG_COLUMN ); + testcase( pExpr->op==TK_AGG_FUNCTION ); + if( ExprHasProperty(pExpr, EP_FromJoin) ) return WRC_Prune; + switch( pExpr->op ){ + case TK_ISNOT: + case TK_NOT: + case TK_ISNULL: + case TK_IS: + case TK_OR: + case TK_CASE: + case TK_IN: + case TK_FUNCTION: + testcase( pExpr->op==TK_ISNOT ); + testcase( pExpr->op==TK_NOT ); + testcase( pExpr->op==TK_ISNULL ); + testcase( pExpr->op==TK_IS ); + testcase( pExpr->op==TK_OR ); + testcase( pExpr->op==TK_CASE ); + testcase( pExpr->op==TK_IN ); + testcase( pExpr->op==TK_FUNCTION ); + return WRC_Prune; + case TK_COLUMN: + if( pWalker->u.iCur==pExpr->iTable ){ + pWalker->eCode = 1; + return WRC_Abort; + } + return WRC_Prune; + + /* Virtual tables are allowed to use constraints like x=NULL. So + ** a term of the form x=y does not prove that y is not null if x + ** is the column of a virtual table */ + case TK_EQ: + case TK_NE: + case TK_LT: + case TK_LE: + case TK_GT: + case TK_GE: + testcase( pExpr->op==TK_EQ ); + testcase( pExpr->op==TK_NE ); + testcase( pExpr->op==TK_LT ); + testcase( pExpr->op==TK_LE ); + testcase( pExpr->op==TK_GT ); + testcase( pExpr->op==TK_GE ); + if( (pExpr->pLeft->op==TK_COLUMN && IsVirtual(pExpr->pLeft->y.pTab)) + || (pExpr->pRight->op==TK_COLUMN && IsVirtual(pExpr->pRight->y.pTab)) + ){ + return WRC_Prune; + } + default: + return WRC_Continue; + } +} + +/* +** Return true (non-zero) if expression p can only be true if at least +** one column of table iTab is non-null. In other words, return true +** if expression p will always be NULL or false if every column of iTab +** is NULL. +** +** False negatives are acceptable. In other words, it is ok to return +** zero even if expression p will never be true of every column of iTab +** is NULL. A false negative is merely a missed optimization opportunity. +** +** False positives are not allowed, however. A false positive may result +** in an incorrect answer. +** +** Terms of p that are marked with EP_FromJoin (and hence that come from +** the ON or USING clauses of LEFT JOINS) are excluded from the analysis. +** +** This routine is used to check if a LEFT JOIN can be converted into +** an ordinary JOIN. The p argument is the WHERE clause. If the WHERE +** clause requires that some column of the right table of the LEFT JOIN +** be non-NULL, then the LEFT JOIN can be safely converted into an +** ordinary join. +*/ +SQLITE_PRIVATE int sqlite3ExprImpliesNonNullRow(Expr *p, int iTab){ + Walker w; + w.xExprCallback = impliesNotNullRow; + w.xSelectCallback = 0; + w.xSelectCallback2 = 0; + w.eCode = 0; + w.u.iCur = iTab; + sqlite3WalkExpr(&w, p); + return w.eCode; +} + /* ** An instance of the following structure is used by the tree walker ** to determine if an expression can be evaluated by reference to the @@ -97756,8 +101220,9 @@ static int analyzeAggregate(Walker *pWalker, Expr *pExpr){ NameContext *pNC = pWalker->u.pNC; Parse *pParse = pNC->pParse; SrcList *pSrcList = pNC->pSrcList; - AggInfo *pAggInfo = pNC->pAggInfo; + AggInfo *pAggInfo = pNC->uNC.pAggInfo; + assert( pNC->ncFlags & NC_UAggInfo ); switch( pExpr->op ){ case TK_AGG_COLUMN: case TK_COLUMN: { @@ -97789,7 +101254,7 @@ static int analyzeAggregate(Walker *pWalker, Expr *pExpr){ && (k = addAggInfoColumn(pParse->db, pAggInfo))>=0 ){ pCol = &pAggInfo->aCol[k]; - pCol->pTab = pExpr->pTab; + pCol->pTab = pExpr->y.pTab; pCol->iTable = pExpr->iTable; pCol->iColumn = pExpr->iColumn; pCol->iMem = ++pParse->nMem; @@ -97935,21 +101400,9 @@ SQLITE_PRIVATE int sqlite3GetTempReg(Parse *pParse){ /* ** Deallocate a register, making available for reuse for some other ** purpose. -** -** If a register is currently being used by the column cache, then -** the deallocation is deferred until the column cache line that uses -** the register becomes stale. */ SQLITE_PRIVATE void sqlite3ReleaseTempReg(Parse *pParse, int iReg){ if( iReg && pParse->nTempRegaTempReg) ){ - int i; - struct yColCache *p; - for(i=0, p=pParse->aColCache; inColCache; i++, p++){ - if( p->iReg==iReg ){ - p->tempReg = 1; - return; - } - } pParse->aTempReg[pParse->nTempReg++] = iReg; } } @@ -97963,7 +101416,6 @@ SQLITE_PRIVATE int sqlite3GetTempRange(Parse *pParse, int nReg){ i = pParse->iRangeReg; n = pParse->nRangeReg; if( nReg<=n ){ - assert( !usedAsColumnCache(pParse, i, i+n-1) ); pParse->iRangeReg += nReg; pParse->nRangeReg -= nReg; }else{ @@ -97977,7 +101429,6 @@ SQLITE_PRIVATE void sqlite3ReleaseTempRange(Parse *pParse, int iReg, int nReg){ sqlite3ReleaseTempReg(pParse, iReg); return; } - sqlite3ExprCacheRemove(pParse, iReg, nReg); if( nReg>pParse->nRangeReg ){ pParse->nRangeReg = nReg; pParse->iRangeReg = iReg; @@ -98039,366 +101490,63 @@ SQLITE_PRIVATE int sqlite3NoTempsInRange(Parse *pParse, int iFirst, int iLast){ */ #ifndef SQLITE_OMIT_ALTERTABLE - -/* -** This function is used by SQL generated to implement the -** ALTER TABLE command. The first argument is the text of a CREATE TABLE or -** CREATE INDEX command. The second is a table name. The table name in -** the CREATE TABLE or CREATE INDEX statement is replaced with the third -** argument and the result returned. Examples: -** -** sqlite_rename_table('CREATE TABLE abc(a, b, c)', 'def') -** -> 'CREATE TABLE def(a, b, c)' -** -** sqlite_rename_table('CREATE INDEX i ON abc(a)', 'def') -** -> 'CREATE INDEX i ON def(a, b, c)' -*/ -static void renameTableFunc( - sqlite3_context *context, - int NotUsed, - sqlite3_value **argv -){ - unsigned char const *zSql = sqlite3_value_text(argv[0]); - unsigned char const *zTableName = sqlite3_value_text(argv[1]); - - int token; - Token tname; - unsigned char const *zCsr = zSql; - int len = 0; - char *zRet; - - sqlite3 *db = sqlite3_context_db_handle(context); - - UNUSED_PARAMETER(NotUsed); - - /* The principle used to locate the table name in the CREATE TABLE - ** statement is that the table name is the first non-space token that - ** is immediately followed by a TK_LP or TK_USING token. - */ - if( zSql ){ - do { - if( !*zCsr ){ - /* Ran out of input before finding an opening bracket. Return NULL. */ - return; - } - - /* Store the token that zCsr points to in tname. */ - tname.z = (char*)zCsr; - tname.n = len; - - /* Advance zCsr to the next token. Store that token type in 'token', - ** and its length in 'len' (to be used next iteration of this loop). - */ - do { - zCsr += len; - len = sqlite3GetToken(zCsr, &token); - } while( token==TK_SPACE ); - assert( len>0 ); - } while( token!=TK_LP && token!=TK_USING ); - - zRet = sqlite3MPrintf(db, "%.*s\"%w\"%s", (int)(((u8*)tname.z) - zSql), - zSql, zTableName, tname.z+tname.n); - sqlite3_result_text(context, zRet, -1, SQLITE_DYNAMIC); - } -} - -/* -** This C function implements an SQL user function that is used by SQL code -** generated by the ALTER TABLE ... RENAME command to modify the definition -** of any foreign key constraints that use the table being renamed as the -** parent table. It is passed three arguments: -** -** 1) The complete text of the CREATE TABLE statement being modified, -** 2) The old name of the table being renamed, and -** 3) The new name of the table being renamed. -** -** It returns the new CREATE TABLE statement. For example: -** -** sqlite_rename_parent('CREATE TABLE t1(a REFERENCES t2)', 't2', 't3') -** -> 'CREATE TABLE t1(a REFERENCES t3)' -*/ -#ifndef SQLITE_OMIT_FOREIGN_KEY -static void renameParentFunc( - sqlite3_context *context, - int NotUsed, - sqlite3_value **argv -){ - sqlite3 *db = sqlite3_context_db_handle(context); - char *zOutput = 0; - char *zResult; - unsigned char const *zInput = sqlite3_value_text(argv[0]); - unsigned char const *zOld = sqlite3_value_text(argv[1]); - unsigned char const *zNew = sqlite3_value_text(argv[2]); - - unsigned const char *z; /* Pointer to token */ - int n; /* Length of token z */ - int token; /* Type of token */ - - UNUSED_PARAMETER(NotUsed); - if( zInput==0 || zOld==0 ) return; - for(z=zInput; *z; z=z+n){ - n = sqlite3GetToken(z, &token); - if( token==TK_REFERENCES ){ - char *zParent; - do { - z += n; - n = sqlite3GetToken(z, &token); - }while( token==TK_SPACE ); - - if( token==TK_ILLEGAL ) break; - zParent = sqlite3DbStrNDup(db, (const char *)z, n); - if( zParent==0 ) break; - sqlite3Dequote(zParent); - if( 0==sqlite3StrICmp((const char *)zOld, zParent) ){ - char *zOut = sqlite3MPrintf(db, "%s%.*s\"%w\"", - (zOutput?zOutput:""), (int)(z-zInput), zInput, (const char *)zNew - ); - sqlite3DbFree(db, zOutput); - zOutput = zOut; - zInput = &z[n]; - } - sqlite3DbFree(db, zParent); - } - } - - zResult = sqlite3MPrintf(db, "%s%s", (zOutput?zOutput:""), zInput), - sqlite3_result_text(context, zResult, -1, SQLITE_DYNAMIC); - sqlite3DbFree(db, zOutput); -} -#endif - -#ifndef SQLITE_OMIT_TRIGGER -/* This function is used by SQL generated to implement the -** ALTER TABLE command. The first argument is the text of a CREATE TRIGGER -** statement. The second is a table name. The table name in the CREATE -** TRIGGER statement is replaced with the third argument and the result -** returned. This is analagous to renameTableFunc() above, except for CREATE -** TRIGGER, not CREATE INDEX and CREATE TABLE. -*/ -static void renameTriggerFunc( - sqlite3_context *context, - int NotUsed, - sqlite3_value **argv -){ - unsigned char const *zSql = sqlite3_value_text(argv[0]); - unsigned char const *zTableName = sqlite3_value_text(argv[1]); - - int token; - Token tname; - int dist = 3; - unsigned char const *zCsr = zSql; - int len = 0; - char *zRet; - sqlite3 *db = sqlite3_context_db_handle(context); - - UNUSED_PARAMETER(NotUsed); - - /* The principle used to locate the table name in the CREATE TRIGGER - ** statement is that the table name is the first token that is immediately - ** preceded by either TK_ON or TK_DOT and immediately followed by one - ** of TK_WHEN, TK_BEGIN or TK_FOR. - */ - if( zSql ){ - do { - - if( !*zCsr ){ - /* Ran out of input before finding the table name. Return NULL. */ - return; - } - - /* Store the token that zCsr points to in tname. */ - tname.z = (char*)zCsr; - tname.n = len; - - /* Advance zCsr to the next token. Store that token type in 'token', - ** and its length in 'len' (to be used next iteration of this loop). - */ - do { - zCsr += len; - len = sqlite3GetToken(zCsr, &token); - }while( token==TK_SPACE ); - assert( len>0 ); - - /* Variable 'dist' stores the number of tokens read since the most - ** recent TK_DOT or TK_ON. This means that when a WHEN, FOR or BEGIN - ** token is read and 'dist' equals 2, the condition stated above - ** to be met. - ** - ** Note that ON cannot be a database, table or column name, so - ** there is no need to worry about syntax like - ** "CREATE TRIGGER ... ON ON.ON BEGIN ..." etc. - */ - dist++; - if( token==TK_DOT || token==TK_ON ){ - dist = 0; - } - } while( dist!=2 || (token!=TK_WHEN && token!=TK_FOR && token!=TK_BEGIN) ); - - /* Variable tname now contains the token that is the old table-name - ** in the CREATE TRIGGER statement. - */ - zRet = sqlite3MPrintf(db, "%.*s\"%w\"%s", (int)(((u8*)tname.z) - zSql), - zSql, zTableName, tname.z+tname.n); - sqlite3_result_text(context, zRet, -1, SQLITE_DYNAMIC); - } -} -#endif /* !SQLITE_OMIT_TRIGGER */ - -/* -** Register built-in functions used to help implement ALTER TABLE -*/ -SQLITE_PRIVATE void sqlite3AlterFunctions(void){ - static FuncDef aAlterTableFuncs[] = { - FUNCTION(sqlite_rename_table, 2, 0, 0, renameTableFunc), -#ifndef SQLITE_OMIT_TRIGGER - FUNCTION(sqlite_rename_trigger, 2, 0, 0, renameTriggerFunc), -#endif -#ifndef SQLITE_OMIT_FOREIGN_KEY - FUNCTION(sqlite_rename_parent, 3, 0, 0, renameParentFunc), -#endif - }; - sqlite3InsertBuiltinFuncs(aAlterTableFuncs, ArraySize(aAlterTableFuncs)); -} - /* -** This function is used to create the text of expressions of the form: -** -** name= OR name= OR ... -** -** If argument zWhere is NULL, then a pointer string containing the text -** "name=" is returned, where is the quoted version -** of the string passed as argument zConstant. The returned buffer is -** allocated using sqlite3DbMalloc(). It is the responsibility of the -** caller to ensure that it is eventually freed. +** Parameter zName is the name of a table that is about to be altered +** (either with ALTER TABLE ... RENAME TO or ALTER TABLE ... ADD COLUMN). +** If the table is a system table, this function leaves an error message +** in pParse->zErr (system tables may not be altered) and returns non-zero. ** -** If argument zWhere is not NULL, then the string returned is -** " OR name=", where is the contents of zWhere. -** In this case zWhere is passed to sqlite3DbFree() before returning. -** -*/ -static char *whereOrName(sqlite3 *db, char *zWhere, char *zConstant){ - char *zNew; - if( !zWhere ){ - zNew = sqlite3MPrintf(db, "name=%Q", zConstant); - }else{ - zNew = sqlite3MPrintf(db, "%s OR name=%Q", zWhere, zConstant); - sqlite3DbFree(db, zWhere); - } - return zNew; -} - -#if !defined(SQLITE_OMIT_FOREIGN_KEY) && !defined(SQLITE_OMIT_TRIGGER) -/* -** Generate the text of a WHERE expression which can be used to select all -** tables that have foreign key constraints that refer to table pTab (i.e. -** constraints for which pTab is the parent table) from the sqlite_master -** table. -*/ -static char *whereForeignKeys(Parse *pParse, Table *pTab){ - FKey *p; - char *zWhere = 0; - for(p=sqlite3FkReferences(pTab); p; p=p->pNextTo){ - zWhere = whereOrName(pParse->db, zWhere, p->pFrom->zName); - } - return zWhere; -} -#endif - -/* -** Generate the text of a WHERE expression which can be used to select all -** temporary triggers on table pTab from the sqlite_temp_master table. If -** table pTab has no temporary triggers, or is itself stored in the -** temporary database, NULL is returned. +** Or, if zName is not a system table, zero is returned. */ -static char *whereTempTriggers(Parse *pParse, Table *pTab){ - Trigger *pTrig; - char *zWhere = 0; - const Schema *pTempSchema = pParse->db->aDb[1].pSchema; /* Temp db schema */ - - /* If the table is not located in the temp-db (in which case NULL is - ** returned, loop through the tables list of triggers. For each trigger - ** that is not part of the temp-db schema, add a clause to the WHERE - ** expression being built up in zWhere. - */ - if( pTab->pSchema!=pTempSchema ){ - sqlite3 *db = pParse->db; - for(pTrig=sqlite3TriggerList(pParse, pTab); pTrig; pTrig=pTrig->pNext){ - if( pTrig->pSchema==pTempSchema ){ - zWhere = whereOrName(db, zWhere, pTrig->zName); - } - } - } - if( zWhere ){ - char *zNew = sqlite3MPrintf(pParse->db, "type='trigger' AND (%s)", zWhere); - sqlite3DbFree(pParse->db, zWhere); - zWhere = zNew; +static int isSystemTable(Parse *pParse, const char *zName){ + if( 0==sqlite3StrNICmp(zName, "sqlite_", 7) ){ + sqlite3ErrorMsg(pParse, "table %s may not be altered", zName); + return 1; } - return zWhere; + return 0; } /* -** Generate code to drop and reload the internal representation of table -** pTab from the database, including triggers and temporary triggers. -** Argument zName is the name of the table in the database schema at -** the time the generated code is executed. This can be different from -** pTab->zName if this function is being called to code part of an -** "ALTER TABLE RENAME TO" statement. +** Generate code to verify that the schemas of database zDb and, if +** bTemp is not true, database "temp", can still be parsed. This is +** called at the end of the generation of an ALTER TABLE ... RENAME ... +** statement to ensure that the operation has not rendered any schema +** objects unusable. */ -static void reloadTableSchema(Parse *pParse, Table *pTab, const char *zName){ - Vdbe *v; - char *zWhere; - int iDb; /* Index of database containing pTab */ -#ifndef SQLITE_OMIT_TRIGGER - Trigger *pTrig; -#endif - - v = sqlite3GetVdbe(pParse); - if( NEVER(v==0) ) return; - assert( sqlite3BtreeHoldsAllMutexes(pParse->db) ); - iDb = sqlite3SchemaToIndex(pParse->db, pTab->pSchema); - assert( iDb>=0 ); - -#ifndef SQLITE_OMIT_TRIGGER - /* Drop any table triggers from the internal schema. */ - for(pTrig=sqlite3TriggerList(pParse, pTab); pTrig; pTrig=pTrig->pNext){ - int iTrigDb = sqlite3SchemaToIndex(pParse->db, pTrig->pSchema); - assert( iTrigDb==iDb || iTrigDb==1 ); - sqlite3VdbeAddOp4(v, OP_DropTrigger, iTrigDb, 0, 0, pTrig->zName, 0); - } -#endif - - /* Drop the table and index from the internal schema. */ - sqlite3VdbeAddOp4(v, OP_DropTable, iDb, 0, 0, pTab->zName, 0); - - /* Reload the table, index and permanent trigger schemas. */ - zWhere = sqlite3MPrintf(pParse->db, "tbl_name=%Q", zName); - if( !zWhere ) return; - sqlite3VdbeAddParseSchemaOp(v, iDb, zWhere); +static void renameTestSchema(Parse *pParse, const char *zDb, int bTemp){ + sqlite3NestedParse(pParse, + "SELECT 1 " + "FROM \"%w\".%s " + "WHERE name NOT LIKE 'sqlite_%%'" + " AND sql NOT LIKE 'create virtual%%'" + " AND sqlite_rename_test(%Q, sql, type, name, %d)=NULL ", + zDb, MASTER_NAME, + zDb, bTemp + ); -#ifndef SQLITE_OMIT_TRIGGER - /* Now, if the table is not stored in the temp database, reload any temp - ** triggers. Don't use IN(...) in case SQLITE_OMIT_SUBQUERY is defined. - */ - if( (zWhere=whereTempTriggers(pParse, pTab))!=0 ){ - sqlite3VdbeAddParseSchemaOp(v, 1, zWhere); + if( bTemp==0 ){ + sqlite3NestedParse(pParse, + "SELECT 1 " + "FROM temp.%s " + "WHERE name NOT LIKE 'sqlite_%%'" + " AND sql NOT LIKE 'create virtual%%'" + " AND sqlite_rename_test(%Q, sql, type, name, 1)=NULL ", + MASTER_NAME, zDb + ); } -#endif } /* -** Parameter zName is the name of a table that is about to be altered -** (either with ALTER TABLE ... RENAME TO or ALTER TABLE ... ADD COLUMN). -** If the table is a system table, this function leaves an error message -** in pParse->zErr (system tables may not be altered) and returns non-zero. -** -** Or, if zName is not a system table, zero is returned. +** Generate code to reload the schema for database iDb. And, if iDb!=1, for +** the temp database as well. */ -static int isSystemTable(Parse *pParse, const char *zName){ - if( 0==sqlite3StrNICmp(zName, "sqlite_", 7) ){ - sqlite3ErrorMsg(pParse, "table %s may not be altered", zName); - return 1; +static void renameReloadSchema(Parse *pParse, int iDb){ + Vdbe *v = pParse->pVdbe; + if( v ){ + sqlite3ChangeCookie(pParse, iDb); + sqlite3VdbeAddParseSchemaOp(pParse->pVdbe, iDb, 0); + if( iDb!=1 ) sqlite3VdbeAddParseSchemaOp(pParse->pVdbe, 1, 0); } - return 0; } /* @@ -98418,9 +101566,6 @@ SQLITE_PRIVATE void sqlite3AlterRenameTable( int nTabName; /* Number of UTF-8 characters in zTabName */ const char *zTabName; /* Original name of the table */ Vdbe *v; -#ifndef SQLITE_OMIT_TRIGGER - char *zWhere = 0; /* Where clause to locate temp triggers */ -#endif VTable *pVTab = 0; /* Non-zero if this is a v-tab with an xRename() */ u32 savedDbFlags; /* Saved value of db->mDbFlags */ @@ -98493,52 +101638,25 @@ SQLITE_PRIVATE void sqlite3AlterRenameTable( if( v==0 ){ goto exit_rename_table; } - sqlite3BeginWriteOperation(pParse, pVTab!=0, iDb); - sqlite3ChangeCookie(pParse, iDb); - - /* If this is a virtual table, invoke the xRename() function if - ** one is defined. The xRename() callback will modify the names - ** of any resources used by the v-table implementation (including other - ** SQLite tables) that are identified by the name of the virtual table. - */ -#ifndef SQLITE_OMIT_VIRTUALTABLE - if( pVTab ){ - int i = ++pParse->nMem; - sqlite3VdbeLoadString(v, i, zName); - sqlite3VdbeAddOp4(v, OP_VRename, i, 0, 0,(const char*)pVTab, P4_VTAB); - sqlite3MayAbort(pParse); - } -#endif /* figure out how many UTF-8 characters are in zName */ zTabName = pTab->zName; nTabName = sqlite3Utf8CharLen(zTabName, -1); -#if !defined(SQLITE_OMIT_FOREIGN_KEY) && !defined(SQLITE_OMIT_TRIGGER) - if( db->flags&SQLITE_ForeignKeys ){ - /* If foreign-key support is enabled, rewrite the CREATE TABLE - ** statements corresponding to all child tables of foreign key constraints - ** for which the renamed table is the parent table. */ - if( (zWhere=whereForeignKeys(pParse, pTab))!=0 ){ - sqlite3NestedParse(pParse, - "UPDATE \"%w\".%s SET " - "sql = sqlite_rename_parent(sql, %Q, %Q) " - "WHERE %s;", zDb, MASTER_NAME, zTabName, zName, zWhere); - sqlite3DbFree(db, zWhere); - } - } -#endif + /* Rewrite all CREATE TABLE, INDEX, TRIGGER or VIEW statements in + ** the schema to use the new table name. */ + sqlite3NestedParse(pParse, + "UPDATE \"%w\".%s SET " + "sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) " + "WHERE (type!='index' OR tbl_name=%Q COLLATE nocase)" + "AND name NOT LIKE 'sqlite_%%'" + , zDb, MASTER_NAME, zDb, zTabName, zName, (iDb==1), zTabName + ); - /* Modify the sqlite_master table to use the new table name. */ + /* Update the tbl_name and name columns of the sqlite_master table + ** as required. */ sqlite3NestedParse(pParse, "UPDATE %Q.%s SET " -#ifdef SQLITE_OMIT_TRIGGER - "sql = sqlite_rename_table(sql, %Q), " -#else - "sql = CASE " - "WHEN type = 'trigger' THEN sqlite_rename_trigger(sql, %Q)" - "ELSE sqlite_rename_table(sql, %Q) END, " -#endif "tbl_name = %Q, " "name = CASE " "WHEN type='table' THEN %Q " @@ -98547,11 +101665,9 @@ SQLITE_PRIVATE void sqlite3AlterRenameTable( "ELSE name END " "WHERE tbl_name=%Q COLLATE nocase AND " "(type='table' OR type='index' OR type='trigger');", - zDb, MASTER_NAME, zName, zName, zName, -#ifndef SQLITE_OMIT_TRIGGER - zName, -#endif - zName, nTabName, zTabName + zDb, MASTER_NAME, + zName, zName, zName, + nTabName, zTabName ); #ifndef SQLITE_OMIT_AUTOINCREMENT @@ -98565,35 +101681,37 @@ SQLITE_PRIVATE void sqlite3AlterRenameTable( } #endif -#ifndef SQLITE_OMIT_TRIGGER - /* If there are TEMP triggers on this table, modify the sqlite_temp_master - ** table. Don't do this if the table being ALTERed is itself located in - ** the temp database. - */ - if( (zWhere=whereTempTriggers(pParse, pTab))!=0 ){ + /* If the table being renamed is not itself part of the temp database, + ** edit view and trigger definitions within the temp database + ** as required. */ + if( iDb!=1 ){ sqlite3NestedParse(pParse, "UPDATE sqlite_temp_master SET " - "sql = sqlite_rename_trigger(sql, %Q), " - "tbl_name = %Q " - "WHERE %s;", zName, zName, zWhere); - sqlite3DbFree(db, zWhere); + "sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), " + "tbl_name = " + "CASE WHEN tbl_name=%Q COLLATE nocase AND " + " sqlite_rename_test(%Q, sql, type, name, 1) " + "THEN %Q ELSE tbl_name END " + "WHERE type IN ('view', 'trigger')" + , zDb, zTabName, zName, zTabName, zDb, zName); } -#endif -#if !defined(SQLITE_OMIT_FOREIGN_KEY) && !defined(SQLITE_OMIT_TRIGGER) - if( db->flags&SQLITE_ForeignKeys ){ - FKey *p; - for(p=sqlite3FkReferences(pTab); p; p=p->pNextTo){ - Table *pFrom = p->pFrom; - if( pFrom!=pTab ){ - reloadTableSchema(pParse, p->pFrom, pFrom->zName); - } - } + /* If this is a virtual table, invoke the xRename() function if + ** one is defined. The xRename() callback will modify the names + ** of any resources used by the v-table implementation (including other + ** SQLite tables) that are identified by the name of the virtual table. + */ +#ifndef SQLITE_OMIT_VIRTUALTABLE + if( pVTab ){ + int i = ++pParse->nMem; + sqlite3VdbeLoadString(v, i, zName); + sqlite3VdbeAddOp4(v, OP_VRename, i, 0, 0,(const char*)pVTab, P4_VTAB); + sqlite3MayAbort(pParse); } #endif - /* Drop and reload the internal table schema. */ - reloadTableSchema(pParse, pTab, zName); + renameReloadSchema(pParse, iDb); + renameTestSchema(pParse, zDb, iDb==1); exit_rename_table: sqlite3SrcListDelete(db, pSrc); @@ -98619,12 +101737,11 @@ SQLITE_PRIVATE void sqlite3AlterFinishAddColumn(Parse *pParse, Token *pColDef){ Column *pCol; /* The new column */ Expr *pDflt; /* Default value for the new column */ sqlite3 *db; /* The database connection; */ - Vdbe *v = pParse->pVdbe; /* The prepared statement under construction */ + Vdbe *v; /* The prepared statement under construction */ int r1; /* Temporary registers */ db = pParse->db; if( pParse->nErr || db->mallocFailed ) return; - assert( v!=0 ); pNew = pParse->pNewTable; assert( pNew ); @@ -98719,17 +101836,20 @@ SQLITE_PRIVATE void sqlite3AlterFinishAddColumn(Parse *pParse, Token *pColDef){ ** from less than 3 to 4, as that will corrupt any preexisting DESC ** index. */ - r1 = sqlite3GetTempReg(pParse); - sqlite3VdbeAddOp3(v, OP_ReadCookie, iDb, r1, BTREE_FILE_FORMAT); - sqlite3VdbeUsesBtree(v, iDb); - sqlite3VdbeAddOp2(v, OP_AddImm, r1, -2); - sqlite3VdbeAddOp2(v, OP_IfPos, r1, sqlite3VdbeCurrentAddr(v)+2); - VdbeCoverage(v); - sqlite3VdbeAddOp3(v, OP_SetCookie, iDb, BTREE_FILE_FORMAT, 3); - sqlite3ReleaseTempReg(pParse, r1); + v = sqlite3GetVdbe(pParse); + if( v ){ + r1 = sqlite3GetTempReg(pParse); + sqlite3VdbeAddOp3(v, OP_ReadCookie, iDb, r1, BTREE_FILE_FORMAT); + sqlite3VdbeUsesBtree(v, iDb); + sqlite3VdbeAddOp2(v, OP_AddImm, r1, -2); + sqlite3VdbeAddOp2(v, OP_IfPos, r1, sqlite3VdbeCurrentAddr(v)+2); + VdbeCoverage(v); + sqlite3VdbeAddOp3(v, OP_SetCookie, iDb, BTREE_FILE_FORMAT, 3); + sqlite3ReleaseTempReg(pParse, r1); + } - /* Reload the schema of the modified table. */ - reloadTableSchema(pParse, pTab, pTab->zName); + /* Reload the table definition */ + renameReloadSchema(pParse, iDb); } /* @@ -98750,7 +101870,6 @@ SQLITE_PRIVATE void sqlite3AlterFinishAddColumn(Parse *pParse, Token *pColDef){ SQLITE_PRIVATE void sqlite3AlterBeginAddColumn(Parse *pParse, SrcList *pSrc){ Table *pNew; Table *pTab; - Vdbe *v; int iDb; int i; int nAlloc; @@ -98814,16 +101933,1146 @@ SQLITE_PRIVATE void sqlite3AlterBeginAddColumn(Parse *pParse, SrcList *pSrc){ pNew->addColOffset = pTab->addColOffset; pNew->nTabRef = 1; - /* Begin a transaction and increment the schema cookie. */ - sqlite3BeginWriteOperation(pParse, 0, iDb); - v = sqlite3GetVdbe(pParse); - if( !v ) goto exit_begin_add_column; - sqlite3ChangeCookie(pParse, iDb); - exit_begin_add_column: sqlite3SrcListDelete(db, pSrc); return; } + +/* +** Parameter pTab is the subject of an ALTER TABLE ... RENAME COLUMN +** command. This function checks if the table is a view or virtual +** table (columns of views or virtual tables may not be renamed). If so, +** it loads an error message into pParse and returns non-zero. +** +** Or, if pTab is not a view or virtual table, zero is returned. +*/ +#if !defined(SQLITE_OMIT_VIEW) || !defined(SQLITE_OMIT_VIRTUALTABLE) +static int isRealTable(Parse *pParse, Table *pTab){ + const char *zType = 0; +#ifndef SQLITE_OMIT_VIEW + if( pTab->pSelect ){ + zType = "view"; + } +#endif +#ifndef SQLITE_OMIT_VIRTUALTABLE + if( IsVirtual(pTab) ){ + zType = "virtual table"; + } +#endif + if( zType ){ + sqlite3ErrorMsg( + pParse, "cannot rename columns of %s \"%s\"", zType, pTab->zName + ); + return 1; + } + return 0; +} +#else /* !defined(SQLITE_OMIT_VIEW) || !defined(SQLITE_OMIT_VIRTUALTABLE) */ +# define isRealTable(x,y) (0) +#endif + +/* +** Handles the following parser reduction: +** +** cmd ::= ALTER TABLE pSrc RENAME COLUMN pOld TO pNew +*/ +SQLITE_PRIVATE void sqlite3AlterRenameColumn( + Parse *pParse, /* Parsing context */ + SrcList *pSrc, /* Table being altered. pSrc->nSrc==1 */ + Token *pOld, /* Name of column being changed */ + Token *pNew /* New column name */ +){ + sqlite3 *db = pParse->db; /* Database connection */ + Table *pTab; /* Table being updated */ + int iCol; /* Index of column being renamed */ + char *zOld = 0; /* Old column name */ + char *zNew = 0; /* New column name */ + const char *zDb; /* Name of schema containing the table */ + int iSchema; /* Index of the schema */ + int bQuote; /* True to quote the new name */ + + /* Locate the table to be altered */ + pTab = sqlite3LocateTableItem(pParse, 0, &pSrc->a[0]); + if( !pTab ) goto exit_rename_column; + + /* Cannot alter a system table */ + if( SQLITE_OK!=isSystemTable(pParse, pTab->zName) ) goto exit_rename_column; + if( SQLITE_OK!=isRealTable(pParse, pTab) ) goto exit_rename_column; + + /* Which schema holds the table to be altered */ + iSchema = sqlite3SchemaToIndex(db, pTab->pSchema); + assert( iSchema>=0 ); + zDb = db->aDb[iSchema].zDbSName; + +#ifndef SQLITE_OMIT_AUTHORIZATION + /* Invoke the authorization callback. */ + if( sqlite3AuthCheck(pParse, SQLITE_ALTER_TABLE, zDb, pTab->zName, 0) ){ + goto exit_rename_column; + } +#endif + + /* Make sure the old name really is a column name in the table to be + ** altered. Set iCol to be the index of the column being renamed */ + zOld = sqlite3NameFromToken(db, pOld); + if( !zOld ) goto exit_rename_column; + for(iCol=0; iColnCol; iCol++){ + if( 0==sqlite3StrICmp(pTab->aCol[iCol].zName, zOld) ) break; + } + if( iCol==pTab->nCol ){ + sqlite3ErrorMsg(pParse, "no such column: \"%s\"", zOld); + goto exit_rename_column; + } + + /* Do the rename operation using a recursive UPDATE statement that + ** uses the sqlite_rename_column() SQL function to compute the new + ** CREATE statement text for the sqlite_master table. + */ + zNew = sqlite3NameFromToken(db, pNew); + if( !zNew ) goto exit_rename_column; + assert( pNew->n>0 ); + bQuote = sqlite3Isquote(pNew->z[0]); + sqlite3NestedParse(pParse, + "UPDATE \"%w\".%s SET " + "sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, %d) " + "WHERE name NOT LIKE 'sqlite_%%' AND (type != 'index' OR tbl_name = %Q)" + " AND sql NOT LIKE 'create virtual%%'", + zDb, MASTER_NAME, + zDb, pTab->zName, iCol, zNew, bQuote, iSchema==1, + pTab->zName + ); + + sqlite3NestedParse(pParse, + "UPDATE temp.%s SET " + "sql = sqlite_rename_column(sql, type, name, %Q, %Q, %d, %Q, %d, 1) " + "WHERE type IN ('trigger', 'view')", + MASTER_NAME, + zDb, pTab->zName, iCol, zNew, bQuote + ); + + /* Drop and reload the database schema. */ + renameReloadSchema(pParse, iSchema); + renameTestSchema(pParse, zDb, iSchema==1); + + exit_rename_column: + sqlite3SrcListDelete(db, pSrc); + sqlite3DbFree(db, zOld); + sqlite3DbFree(db, zNew); + return; +} + +/* +** Each RenameToken object maps an element of the parse tree into +** the token that generated that element. The parse tree element +** might be one of: +** +** * A pointer to an Expr that represents an ID +** * The name of a table column in Column.zName +** +** A list of RenameToken objects can be constructed during parsing. +** Each new object is created by sqlite3RenameTokenMap(). +** As the parse tree is transformed, the sqlite3RenameTokenRemap() +** routine is used to keep the mapping current. +** +** After the parse finishes, renameTokenFind() routine can be used +** to look up the actual token value that created some element in +** the parse tree. +*/ +struct RenameToken { + void *p; /* Parse tree element created by token t */ + Token t; /* The token that created parse tree element p */ + RenameToken *pNext; /* Next is a list of all RenameToken objects */ +}; + +/* +** The context of an ALTER TABLE RENAME COLUMN operation that gets passed +** down into the Walker. +*/ +typedef struct RenameCtx RenameCtx; +struct RenameCtx { + RenameToken *pList; /* List of tokens to overwrite */ + int nList; /* Number of tokens in pList */ + int iCol; /* Index of column being renamed */ + Table *pTab; /* Table being ALTERed */ + const char *zOld; /* Old column name */ +}; + +#ifdef SQLITE_DEBUG +/* +** This function is only for debugging. It performs two tasks: +** +** 1. Checks that pointer pPtr does not already appear in the +** rename-token list. +** +** 2. Dereferences each pointer in the rename-token list. +** +** The second is most effective when debugging under valgrind or +** address-sanitizer or similar. If any of these pointers no longer +** point to valid objects, an exception is raised by the memory-checking +** tool. +** +** The point of this is to prevent comparisons of invalid pointer values. +** Even though this always seems to work, it is undefined according to the +** C standard. Example of undefined comparison: +** +** sqlite3_free(x); +** if( x==y ) ... +** +** Technically, as x no longer points into a valid object or to the byte +** following a valid object, it may not be used in comparison operations. +*/ +static void renameTokenCheckAll(Parse *pParse, void *pPtr){ + if( pParse->nErr==0 && pParse->db->mallocFailed==0 ){ + RenameToken *p; + u8 i = 0; + for(p=pParse->pRename; p; p=p->pNext){ + if( p->p ){ + assert( p->p!=pPtr ); + i += *(u8*)(p->p); + } + } + } +} +#else +# define renameTokenCheckAll(x,y) +#endif + +/* +** Remember that the parser tree element pPtr was created using +** the token pToken. +** +** In other words, construct a new RenameToken object and add it +** to the list of RenameToken objects currently being built up +** in pParse->pRename. +** +** The pPtr argument is returned so that this routine can be used +** with tail recursion in tokenExpr() routine, for a small performance +** improvement. +*/ +SQLITE_PRIVATE void *sqlite3RenameTokenMap(Parse *pParse, void *pPtr, Token *pToken){ + RenameToken *pNew; + assert( pPtr || pParse->db->mallocFailed ); + renameTokenCheckAll(pParse, pPtr); + pNew = sqlite3DbMallocZero(pParse->db, sizeof(RenameToken)); + if( pNew ){ + pNew->p = pPtr; + pNew->t = *pToken; + pNew->pNext = pParse->pRename; + pParse->pRename = pNew; + } + + return pPtr; +} + +/* +** It is assumed that there is already a RenameToken object associated +** with parse tree element pFrom. This function remaps the associated token +** to parse tree element pTo. +*/ +SQLITE_PRIVATE void sqlite3RenameTokenRemap(Parse *pParse, void *pTo, void *pFrom){ + RenameToken *p; + renameTokenCheckAll(pParse, pTo); + for(p=pParse->pRename; p; p=p->pNext){ + if( p->p==pFrom ){ + p->p = pTo; + break; + } + } +} + +/* +** Walker callback used by sqlite3RenameExprUnmap(). +*/ +static int renameUnmapExprCb(Walker *pWalker, Expr *pExpr){ + Parse *pParse = pWalker->pParse; + sqlite3RenameTokenRemap(pParse, 0, (void*)pExpr); + return WRC_Continue; +} + +/* +** Remove all nodes that are part of expression pExpr from the rename list. +*/ +SQLITE_PRIVATE void sqlite3RenameExprUnmap(Parse *pParse, Expr *pExpr){ + Walker sWalker; + memset(&sWalker, 0, sizeof(Walker)); + sWalker.pParse = pParse; + sWalker.xExprCallback = renameUnmapExprCb; + sqlite3WalkExpr(&sWalker, pExpr); +} + +/* +** Remove all nodes that are part of expression-list pEList from the +** rename list. +*/ +SQLITE_PRIVATE void sqlite3RenameExprlistUnmap(Parse *pParse, ExprList *pEList){ + if( pEList ){ + int i; + Walker sWalker; + memset(&sWalker, 0, sizeof(Walker)); + sWalker.pParse = pParse; + sWalker.xExprCallback = renameUnmapExprCb; + sqlite3WalkExprList(&sWalker, pEList); + for(i=0; inExpr; i++){ + sqlite3RenameTokenRemap(pParse, 0, (void*)pEList->a[i].zName); + } + } +} + +/* +** Free the list of RenameToken objects given in the second argument +*/ +static void renameTokenFree(sqlite3 *db, RenameToken *pToken){ + RenameToken *pNext; + RenameToken *p; + for(p=pToken; p; p=pNext){ + pNext = p->pNext; + sqlite3DbFree(db, p); + } +} + +/* +** Search the Parse object passed as the first argument for a RenameToken +** object associated with parse tree element pPtr. If found, remove it +** from the Parse object and add it to the list maintained by the +** RenameCtx object passed as the second argument. +*/ +static void renameTokenFind(Parse *pParse, struct RenameCtx *pCtx, void *pPtr){ + RenameToken **pp; + assert( pPtr!=0 ); + for(pp=&pParse->pRename; (*pp); pp=&(*pp)->pNext){ + if( (*pp)->p==pPtr ){ + RenameToken *pToken = *pp; + *pp = pToken->pNext; + pToken->pNext = pCtx->pList; + pCtx->pList = pToken; + pCtx->nList++; + break; + } + } +} + +/* +** This is a Walker select callback. It does nothing. It is only required +** because without a dummy callback, sqlite3WalkExpr() and similar do not +** descend into sub-select statements. +*/ +static int renameColumnSelectCb(Walker *pWalker, Select *p){ + UNUSED_PARAMETER(pWalker); + UNUSED_PARAMETER(p); + return WRC_Continue; +} + +/* +** This is a Walker expression callback. +** +** For every TK_COLUMN node in the expression tree, search to see +** if the column being references is the column being renamed by an +** ALTER TABLE statement. If it is, then attach its associated +** RenameToken object to the list of RenameToken objects being +** constructed in RenameCtx object at pWalker->u.pRename. +*/ +static int renameColumnExprCb(Walker *pWalker, Expr *pExpr){ + RenameCtx *p = pWalker->u.pRename; + if( pExpr->op==TK_TRIGGER + && pExpr->iColumn==p->iCol + && pWalker->pParse->pTriggerTab==p->pTab + ){ + renameTokenFind(pWalker->pParse, p, (void*)pExpr); + }else if( pExpr->op==TK_COLUMN + && pExpr->iColumn==p->iCol + && p->pTab==pExpr->y.pTab + ){ + renameTokenFind(pWalker->pParse, p, (void*)pExpr); + } + return WRC_Continue; +} + +/* +** The RenameCtx contains a list of tokens that reference a column that +** is being renamed by an ALTER TABLE statement. Return the "last" +** RenameToken in the RenameCtx and remove that RenameToken from the +** RenameContext. "Last" means the last RenameToken encountered when +** the input SQL is parsed from left to right. Repeated calls to this routine +** return all column name tokens in the order that they are encountered +** in the SQL statement. +*/ +static RenameToken *renameColumnTokenNext(RenameCtx *pCtx){ + RenameToken *pBest = pCtx->pList; + RenameToken *pToken; + RenameToken **pp; + + for(pToken=pBest->pNext; pToken; pToken=pToken->pNext){ + if( pToken->t.z>pBest->t.z ) pBest = pToken; + } + for(pp=&pCtx->pList; *pp!=pBest; pp=&(*pp)->pNext); + *pp = pBest->pNext; + + return pBest; +} + +/* +** An error occured while parsing or otherwise processing a database +** object (either pParse->pNewTable, pNewIndex or pNewTrigger) as part of an +** ALTER TABLE RENAME COLUMN program. The error message emitted by the +** sub-routine is currently stored in pParse->zErrMsg. This function +** adds context to the error message and then stores it in pCtx. +*/ +static void renameColumnParseError( + sqlite3_context *pCtx, + int bPost, + sqlite3_value *pType, + sqlite3_value *pObject, + Parse *pParse +){ + const char *zT = (const char*)sqlite3_value_text(pType); + const char *zN = (const char*)sqlite3_value_text(pObject); + char *zErr; + + zErr = sqlite3_mprintf("error in %s %s%s: %s", + zT, zN, (bPost ? " after rename" : ""), + pParse->zErrMsg + ); + sqlite3_result_error(pCtx, zErr, -1); + sqlite3_free(zErr); +} + +/* +** For each name in the the expression-list pEList (i.e. each +** pEList->a[i].zName) that matches the string in zOld, extract the +** corresponding rename-token from Parse object pParse and add it +** to the RenameCtx pCtx. +*/ +static void renameColumnElistNames( + Parse *pParse, + RenameCtx *pCtx, + ExprList *pEList, + const char *zOld +){ + if( pEList ){ + int i; + for(i=0; inExpr; i++){ + char *zName = pEList->a[i].zName; + if( 0==sqlite3_stricmp(zName, zOld) ){ + renameTokenFind(pParse, pCtx, (void*)zName); + } + } + } +} + +/* +** For each name in the the id-list pIdList (i.e. each pIdList->a[i].zName) +** that matches the string in zOld, extract the corresponding rename-token +** from Parse object pParse and add it to the RenameCtx pCtx. +*/ +static void renameColumnIdlistNames( + Parse *pParse, + RenameCtx *pCtx, + IdList *pIdList, + const char *zOld +){ + if( pIdList ){ + int i; + for(i=0; inId; i++){ + char *zName = pIdList->a[i].zName; + if( 0==sqlite3_stricmp(zName, zOld) ){ + renameTokenFind(pParse, pCtx, (void*)zName); + } + } + } +} + +/* +** Parse the SQL statement zSql using Parse object (*p). The Parse object +** is initialized by this function before it is used. +*/ +static int renameParseSql( + Parse *p, /* Memory to use for Parse object */ + const char *zDb, /* Name of schema SQL belongs to */ + int bTable, /* 1 -> RENAME TABLE, 0 -> RENAME COLUMN */ + sqlite3 *db, /* Database handle */ + const char *zSql, /* SQL to parse */ + int bTemp /* True if SQL is from temp schema */ +){ + int rc; + char *zErr = 0; + + db->init.iDb = bTemp ? 1 : sqlite3FindDbName(db, zDb); + + /* Parse the SQL statement passed as the first argument. If no error + ** occurs and the parse does not result in a new table, index or + ** trigger object, the database must be corrupt. */ + memset(p, 0, sizeof(Parse)); + p->eParseMode = (bTable ? PARSE_MODE_RENAME_TABLE : PARSE_MODE_RENAME_COLUMN); + p->db = db; + p->nQueryLoop = 1; + rc = sqlite3RunParser(p, zSql, &zErr); + assert( p->zErrMsg==0 ); + assert( rc!=SQLITE_OK || zErr==0 ); + assert( (0!=p->pNewTable) + (0!=p->pNewIndex) + (0!=p->pNewTrigger)<2 ); + p->zErrMsg = zErr; + if( db->mallocFailed ) rc = SQLITE_NOMEM; + if( rc==SQLITE_OK + && p->pNewTable==0 && p->pNewIndex==0 && p->pNewTrigger==0 + ){ + rc = SQLITE_CORRUPT_BKPT; + } + +#ifdef SQLITE_DEBUG + /* Ensure that all mappings in the Parse.pRename list really do map to + ** a part of the input string. */ + if( rc==SQLITE_OK ){ + int nSql = sqlite3Strlen30(zSql); + RenameToken *pToken; + for(pToken=p->pRename; pToken; pToken=pToken->pNext){ + assert( pToken->t.z>=zSql && &pToken->t.z[pToken->t.n]<=&zSql[nSql] ); + } + } +#endif + + db->init.iDb = 0; + return rc; +} + +/* +** This function edits SQL statement zSql, replacing each token identified +** by the linked list pRename with the text of zNew. If argument bQuote is +** true, then zNew is always quoted first. If no error occurs, the result +** is loaded into context object pCtx as the result. +** +** Or, if an error occurs (i.e. an OOM condition), an error is left in +** pCtx and an SQLite error code returned. +*/ +static int renameEditSql( + sqlite3_context *pCtx, /* Return result here */ + RenameCtx *pRename, /* Rename context */ + const char *zSql, /* SQL statement to edit */ + const char *zNew, /* New token text */ + int bQuote /* True to always quote token */ +){ + int nNew = sqlite3Strlen30(zNew); + int nSql = sqlite3Strlen30(zSql); + sqlite3 *db = sqlite3_context_db_handle(pCtx); + int rc = SQLITE_OK; + char *zQuot; + char *zOut; + int nQuot; + + /* Set zQuot to point to a buffer containing a quoted copy of the + ** identifier zNew. If the corresponding identifier in the original + ** ALTER TABLE statement was quoted (bQuote==1), then set zNew to + ** point to zQuot so that all substitutions are made using the + ** quoted version of the new column name. */ + zQuot = sqlite3MPrintf(db, "\"%w\"", zNew); + if( zQuot==0 ){ + return SQLITE_NOMEM; + }else{ + nQuot = sqlite3Strlen30(zQuot); + } + if( bQuote ){ + zNew = zQuot; + nNew = nQuot; + } + + /* At this point pRename->pList contains a list of RenameToken objects + ** corresponding to all tokens in the input SQL that must be replaced + ** with the new column name. All that remains is to construct and + ** return the edited SQL string. */ + assert( nQuot>=nNew ); + zOut = sqlite3DbMallocZero(db, nSql + pRename->nList*nQuot + 1); + if( zOut ){ + int nOut = nSql; + memcpy(zOut, zSql, nSql); + while( pRename->pList ){ + int iOff; /* Offset of token to replace in zOut */ + RenameToken *pBest = renameColumnTokenNext(pRename); + + u32 nReplace; + const char *zReplace; + if( sqlite3IsIdChar(*pBest->t.z) ){ + nReplace = nNew; + zReplace = zNew; + }else{ + nReplace = nQuot; + zReplace = zQuot; + } + + iOff = pBest->t.z - zSql; + if( pBest->t.n!=nReplace ){ + memmove(&zOut[iOff + nReplace], &zOut[iOff + pBest->t.n], + nOut - (iOff + pBest->t.n) + ); + nOut += nReplace - pBest->t.n; + zOut[nOut] = '\0'; + } + memcpy(&zOut[iOff], zReplace, nReplace); + sqlite3DbFree(db, pBest); + } + + sqlite3_result_text(pCtx, zOut, -1, SQLITE_TRANSIENT); + sqlite3DbFree(db, zOut); + }else{ + rc = SQLITE_NOMEM; + } + + sqlite3_free(zQuot); + return rc; +} + +/* +** Resolve all symbols in the trigger at pParse->pNewTrigger, assuming +** it was read from the schema of database zDb. Return SQLITE_OK if +** successful. Otherwise, return an SQLite error code and leave an error +** message in the Parse object. +*/ +static int renameResolveTrigger(Parse *pParse, const char *zDb){ + sqlite3 *db = pParse->db; + Trigger *pNew = pParse->pNewTrigger; + TriggerStep *pStep; + NameContext sNC; + int rc = SQLITE_OK; + + memset(&sNC, 0, sizeof(sNC)); + sNC.pParse = pParse; + assert( pNew->pTabSchema ); + pParse->pTriggerTab = sqlite3FindTable(db, pNew->table, + db->aDb[sqlite3SchemaToIndex(db, pNew->pTabSchema)].zDbSName + ); + pParse->eTriggerOp = pNew->op; + /* ALWAYS() because if the table of the trigger does not exist, the + ** error would have been hit before this point */ + if( ALWAYS(pParse->pTriggerTab) ){ + rc = sqlite3ViewGetColumnNames(pParse, pParse->pTriggerTab); + } + + /* Resolve symbols in WHEN clause */ + if( rc==SQLITE_OK && pNew->pWhen ){ + rc = sqlite3ResolveExprNames(&sNC, pNew->pWhen); + } + + for(pStep=pNew->step_list; rc==SQLITE_OK && pStep; pStep=pStep->pNext){ + if( pStep->pSelect ){ + sqlite3SelectPrep(pParse, pStep->pSelect, &sNC); + if( pParse->nErr ) rc = pParse->rc; + } + if( rc==SQLITE_OK && pStep->zTarget ){ + Table *pTarget = sqlite3LocateTable(pParse, 0, pStep->zTarget, zDb); + if( pTarget==0 ){ + rc = SQLITE_ERROR; + }else if( SQLITE_OK==(rc = sqlite3ViewGetColumnNames(pParse, pTarget)) ){ + SrcList sSrc; + memset(&sSrc, 0, sizeof(sSrc)); + sSrc.nSrc = 1; + sSrc.a[0].zName = pStep->zTarget; + sSrc.a[0].pTab = pTarget; + sNC.pSrcList = &sSrc; + if( pStep->pWhere ){ + rc = sqlite3ResolveExprNames(&sNC, pStep->pWhere); + } + if( rc==SQLITE_OK ){ + rc = sqlite3ResolveExprListNames(&sNC, pStep->pExprList); + } + assert( !pStep->pUpsert || (!pStep->pWhere && !pStep->pExprList) ); + if( pStep->pUpsert ){ + Upsert *pUpsert = pStep->pUpsert; + assert( rc==SQLITE_OK ); + pUpsert->pUpsertSrc = &sSrc; + sNC.uNC.pUpsert = pUpsert; + sNC.ncFlags = NC_UUpsert; + rc = sqlite3ResolveExprListNames(&sNC, pUpsert->pUpsertTarget); + if( rc==SQLITE_OK ){ + ExprList *pUpsertSet = pUpsert->pUpsertSet; + rc = sqlite3ResolveExprListNames(&sNC, pUpsertSet); + } + if( rc==SQLITE_OK ){ + rc = sqlite3ResolveExprNames(&sNC, pUpsert->pUpsertWhere); + } + if( rc==SQLITE_OK ){ + rc = sqlite3ResolveExprNames(&sNC, pUpsert->pUpsertTargetWhere); + } + sNC.ncFlags = 0; + } + } + } + } + return rc; +} + +/* +** Invoke sqlite3WalkExpr() or sqlite3WalkSelect() on all Select or Expr +** objects that are part of the trigger passed as the second argument. +*/ +static void renameWalkTrigger(Walker *pWalker, Trigger *pTrigger){ + TriggerStep *pStep; + + /* Find tokens to edit in WHEN clause */ + sqlite3WalkExpr(pWalker, pTrigger->pWhen); + + /* Find tokens to edit in trigger steps */ + for(pStep=pTrigger->step_list; pStep; pStep=pStep->pNext){ + sqlite3WalkSelect(pWalker, pStep->pSelect); + sqlite3WalkExpr(pWalker, pStep->pWhere); + sqlite3WalkExprList(pWalker, pStep->pExprList); + if( pStep->pUpsert ){ + Upsert *pUpsert = pStep->pUpsert; + sqlite3WalkExprList(pWalker, pUpsert->pUpsertTarget); + sqlite3WalkExprList(pWalker, pUpsert->pUpsertSet); + sqlite3WalkExpr(pWalker, pUpsert->pUpsertWhere); + sqlite3WalkExpr(pWalker, pUpsert->pUpsertTargetWhere); + } + } +} + +/* +** Free the contents of Parse object (*pParse). Do not free the memory +** occupied by the Parse object itself. +*/ +static void renameParseCleanup(Parse *pParse){ + sqlite3 *db = pParse->db; + if( pParse->pVdbe ){ + sqlite3VdbeFinalize(pParse->pVdbe); + } + sqlite3DeleteTable(db, pParse->pNewTable); + if( pParse->pNewIndex ) sqlite3FreeIndex(db, pParse->pNewIndex); + sqlite3DeleteTrigger(db, pParse->pNewTrigger); + sqlite3DbFree(db, pParse->zErrMsg); + renameTokenFree(db, pParse->pRename); + sqlite3ParserReset(pParse); +} + +/* +** SQL function: +** +** sqlite_rename_column(zSql, iCol, bQuote, zNew, zTable, zOld) +** +** 0. zSql: SQL statement to rewrite +** 1. type: Type of object ("table", "view" etc.) +** 2. object: Name of object +** 3. Database: Database name (e.g. "main") +** 4. Table: Table name +** 5. iCol: Index of column to rename +** 6. zNew: New column name +** 7. bQuote: Non-zero if the new column name should be quoted. +** 8. bTemp: True if zSql comes from temp schema +** +** Do a column rename operation on the CREATE statement given in zSql. +** The iCol-th column (left-most is 0) of table zTable is renamed from zCol +** into zNew. The name should be quoted if bQuote is true. +** +** This function is used internally by the ALTER TABLE RENAME COLUMN command. +** It is only accessible to SQL created using sqlite3NestedParse(). It is +** not reachable from ordinary SQL passed into sqlite3_prepare(). +*/ +static void renameColumnFunc( + sqlite3_context *context, + int NotUsed, + sqlite3_value **argv +){ + sqlite3 *db = sqlite3_context_db_handle(context); + RenameCtx sCtx; + const char *zSql = (const char*)sqlite3_value_text(argv[0]); + const char *zDb = (const char*)sqlite3_value_text(argv[3]); + const char *zTable = (const char*)sqlite3_value_text(argv[4]); + int iCol = sqlite3_value_int(argv[5]); + const char *zNew = (const char*)sqlite3_value_text(argv[6]); + int bQuote = sqlite3_value_int(argv[7]); + int bTemp = sqlite3_value_int(argv[8]); + const char *zOld; + int rc; + Parse sParse; + Walker sWalker; + Index *pIdx; + int i; + Table *pTab; +#ifndef SQLITE_OMIT_AUTHORIZATION + sqlite3_xauth xAuth = db->xAuth; +#endif + + UNUSED_PARAMETER(NotUsed); + if( zSql==0 ) return; + if( zTable==0 ) return; + if( zNew==0 ) return; + if( iCol<0 ) return; + sqlite3BtreeEnterAll(db); + pTab = sqlite3FindTable(db, zTable, zDb); + if( pTab==0 || iCol>=pTab->nCol ){ + sqlite3BtreeLeaveAll(db); + return; + } + zOld = pTab->aCol[iCol].zName; + memset(&sCtx, 0, sizeof(sCtx)); + sCtx.iCol = ((iCol==pTab->iPKey) ? -1 : iCol); + +#ifndef SQLITE_OMIT_AUTHORIZATION + db->xAuth = 0; +#endif + rc = renameParseSql(&sParse, zDb, 0, db, zSql, bTemp); + + /* Find tokens that need to be replaced. */ + memset(&sWalker, 0, sizeof(Walker)); + sWalker.pParse = &sParse; + sWalker.xExprCallback = renameColumnExprCb; + sWalker.xSelectCallback = renameColumnSelectCb; + sWalker.u.pRename = &sCtx; + + sCtx.pTab = pTab; + if( rc!=SQLITE_OK ) goto renameColumnFunc_done; + if( sParse.pNewTable ){ + Select *pSelect = sParse.pNewTable->pSelect; + if( pSelect ){ + sParse.rc = SQLITE_OK; + sqlite3SelectPrep(&sParse, sParse.pNewTable->pSelect, 0); + rc = (db->mallocFailed ? SQLITE_NOMEM : sParse.rc); + if( rc==SQLITE_OK ){ + sqlite3WalkSelect(&sWalker, pSelect); + } + if( rc!=SQLITE_OK ) goto renameColumnFunc_done; + }else{ + /* A regular table */ + int bFKOnly = sqlite3_stricmp(zTable, sParse.pNewTable->zName); + FKey *pFKey; + assert( sParse.pNewTable->pSelect==0 ); + sCtx.pTab = sParse.pNewTable; + if( bFKOnly==0 ){ + renameTokenFind( + &sParse, &sCtx, (void*)sParse.pNewTable->aCol[iCol].zName + ); + if( sCtx.iCol<0 ){ + renameTokenFind(&sParse, &sCtx, (void*)&sParse.pNewTable->iPKey); + } + sqlite3WalkExprList(&sWalker, sParse.pNewTable->pCheck); + for(pIdx=sParse.pNewTable->pIndex; pIdx; pIdx=pIdx->pNext){ + sqlite3WalkExprList(&sWalker, pIdx->aColExpr); + } + } + + for(pFKey=sParse.pNewTable->pFKey; pFKey; pFKey=pFKey->pNextFrom){ + for(i=0; inCol; i++){ + if( bFKOnly==0 && pFKey->aCol[i].iFrom==iCol ){ + renameTokenFind(&sParse, &sCtx, (void*)&pFKey->aCol[i]); + } + if( 0==sqlite3_stricmp(pFKey->zTo, zTable) + && 0==sqlite3_stricmp(pFKey->aCol[i].zCol, zOld) + ){ + renameTokenFind(&sParse, &sCtx, (void*)pFKey->aCol[i].zCol); + } + } + } + } + }else if( sParse.pNewIndex ){ + sqlite3WalkExprList(&sWalker, sParse.pNewIndex->aColExpr); + sqlite3WalkExpr(&sWalker, sParse.pNewIndex->pPartIdxWhere); + }else{ + /* A trigger */ + TriggerStep *pStep; + rc = renameResolveTrigger(&sParse, (bTemp ? 0 : zDb)); + if( rc!=SQLITE_OK ) goto renameColumnFunc_done; + + for(pStep=sParse.pNewTrigger->step_list; pStep; pStep=pStep->pNext){ + if( pStep->zTarget ){ + Table *pTarget = sqlite3LocateTable(&sParse, 0, pStep->zTarget, zDb); + if( pTarget==pTab ){ + if( pStep->pUpsert ){ + ExprList *pUpsertSet = pStep->pUpsert->pUpsertSet; + renameColumnElistNames(&sParse, &sCtx, pUpsertSet, zOld); + } + renameColumnIdlistNames(&sParse, &sCtx, pStep->pIdList, zOld); + renameColumnElistNames(&sParse, &sCtx, pStep->pExprList, zOld); + } + } + } + + + /* Find tokens to edit in UPDATE OF clause */ + if( sParse.pTriggerTab==pTab ){ + renameColumnIdlistNames(&sParse, &sCtx,sParse.pNewTrigger->pColumns,zOld); + } + + /* Find tokens to edit in various expressions and selects */ + renameWalkTrigger(&sWalker, sParse.pNewTrigger); + } + + assert( rc==SQLITE_OK ); + rc = renameEditSql(context, &sCtx, zSql, zNew, bQuote); + +renameColumnFunc_done: + if( rc!=SQLITE_OK ){ + if( sParse.zErrMsg ){ + renameColumnParseError(context, 0, argv[1], argv[2], &sParse); + }else{ + sqlite3_result_error_code(context, rc); + } + } + + renameParseCleanup(&sParse); + renameTokenFree(db, sCtx.pList); +#ifndef SQLITE_OMIT_AUTHORIZATION + db->xAuth = xAuth; +#endif + sqlite3BtreeLeaveAll(db); +} + +/* +** Walker expression callback used by "RENAME TABLE". +*/ +static int renameTableExprCb(Walker *pWalker, Expr *pExpr){ + RenameCtx *p = pWalker->u.pRename; + if( pExpr->op==TK_COLUMN && p->pTab==pExpr->y.pTab ){ + renameTokenFind(pWalker->pParse, p, (void*)&pExpr->y.pTab); + } + return WRC_Continue; +} + +/* +** Walker select callback used by "RENAME TABLE". +*/ +static int renameTableSelectCb(Walker *pWalker, Select *pSelect){ + int i; + RenameCtx *p = pWalker->u.pRename; + SrcList *pSrc = pSelect->pSrc; + for(i=0; inSrc; i++){ + struct SrcList_item *pItem = &pSrc->a[i]; + if( pItem->pTab==p->pTab ){ + renameTokenFind(pWalker->pParse, p, pItem->zName); + } + } + + return WRC_Continue; +} + + +/* +** This C function implements an SQL user function that is used by SQL code +** generated by the ALTER TABLE ... RENAME command to modify the definition +** of any foreign key constraints that use the table being renamed as the +** parent table. It is passed three arguments: +** +** 0: The database containing the table being renamed. +** 1. type: Type of object ("table", "view" etc.) +** 2. object: Name of object +** 3: The complete text of the schema statement being modified, +** 4: The old name of the table being renamed, and +** 5: The new name of the table being renamed. +** 6: True if the schema statement comes from the temp db. +** +** It returns the new schema statement. For example: +** +** sqlite_rename_table('main', 'CREATE TABLE t1(a REFERENCES t2)','t2','t3',0) +** -> 'CREATE TABLE t1(a REFERENCES t3)' +*/ +static void renameTableFunc( + sqlite3_context *context, + int NotUsed, + sqlite3_value **argv +){ + sqlite3 *db = sqlite3_context_db_handle(context); + const char *zDb = (const char*)sqlite3_value_text(argv[0]); + const char *zInput = (const char*)sqlite3_value_text(argv[3]); + const char *zOld = (const char*)sqlite3_value_text(argv[4]); + const char *zNew = (const char*)sqlite3_value_text(argv[5]); + int bTemp = sqlite3_value_int(argv[6]); + UNUSED_PARAMETER(NotUsed); + + if( zInput && zOld && zNew ){ + Parse sParse; + int rc; + int bQuote = 1; + RenameCtx sCtx; + Walker sWalker; + +#ifndef SQLITE_OMIT_AUTHORIZATION + sqlite3_xauth xAuth = db->xAuth; + db->xAuth = 0; +#endif + + sqlite3BtreeEnterAll(db); + + memset(&sCtx, 0, sizeof(RenameCtx)); + sCtx.pTab = sqlite3FindTable(db, zOld, zDb); + memset(&sWalker, 0, sizeof(Walker)); + sWalker.pParse = &sParse; + sWalker.xExprCallback = renameTableExprCb; + sWalker.xSelectCallback = renameTableSelectCb; + sWalker.u.pRename = &sCtx; + + rc = renameParseSql(&sParse, zDb, 1, db, zInput, bTemp); + + if( rc==SQLITE_OK ){ + int isLegacy = (db->flags & SQLITE_LegacyAlter); + if( sParse.pNewTable ){ + Table *pTab = sParse.pNewTable; + + if( pTab->pSelect ){ + if( isLegacy==0 ){ + NameContext sNC; + memset(&sNC, 0, sizeof(sNC)); + sNC.pParse = &sParse; + + sqlite3SelectPrep(&sParse, pTab->pSelect, &sNC); + if( sParse.nErr ) rc = sParse.rc; + sqlite3WalkSelect(&sWalker, pTab->pSelect); + } + }else{ + /* Modify any FK definitions to point to the new table. */ +#ifndef SQLITE_OMIT_FOREIGN_KEY + if( isLegacy==0 || (db->flags & SQLITE_ForeignKeys) ){ + FKey *pFKey; + for(pFKey=pTab->pFKey; pFKey; pFKey=pFKey->pNextFrom){ + if( sqlite3_stricmp(pFKey->zTo, zOld)==0 ){ + renameTokenFind(&sParse, &sCtx, (void*)pFKey->zTo); + } + } + } +#endif + + /* If this is the table being altered, fix any table refs in CHECK + ** expressions. Also update the name that appears right after the + ** "CREATE [VIRTUAL] TABLE" bit. */ + if( sqlite3_stricmp(zOld, pTab->zName)==0 ){ + sCtx.pTab = pTab; + if( isLegacy==0 ){ + sqlite3WalkExprList(&sWalker, pTab->pCheck); + } + renameTokenFind(&sParse, &sCtx, pTab->zName); + } + } + } + + else if( sParse.pNewIndex ){ + renameTokenFind(&sParse, &sCtx, sParse.pNewIndex->zName); + if( isLegacy==0 ){ + sqlite3WalkExpr(&sWalker, sParse.pNewIndex->pPartIdxWhere); + } + } + +#ifndef SQLITE_OMIT_TRIGGER + else{ + Trigger *pTrigger = sParse.pNewTrigger; + TriggerStep *pStep; + if( 0==sqlite3_stricmp(sParse.pNewTrigger->table, zOld) + && sCtx.pTab->pSchema==pTrigger->pTabSchema + ){ + renameTokenFind(&sParse, &sCtx, sParse.pNewTrigger->table); + } + + if( isLegacy==0 ){ + rc = renameResolveTrigger(&sParse, bTemp ? 0 : zDb); + if( rc==SQLITE_OK ){ + renameWalkTrigger(&sWalker, pTrigger); + for(pStep=pTrigger->step_list; pStep; pStep=pStep->pNext){ + if( pStep->zTarget && 0==sqlite3_stricmp(pStep->zTarget, zOld) ){ + renameTokenFind(&sParse, &sCtx, pStep->zTarget); + } + } + } + } + } +#endif + } + + if( rc==SQLITE_OK ){ + rc = renameEditSql(context, &sCtx, zInput, zNew, bQuote); + } + if( rc!=SQLITE_OK ){ + if( sParse.zErrMsg ){ + renameColumnParseError(context, 0, argv[1], argv[2], &sParse); + }else{ + sqlite3_result_error_code(context, rc); + } + } + + renameParseCleanup(&sParse); + renameTokenFree(db, sCtx.pList); + sqlite3BtreeLeaveAll(db); +#ifndef SQLITE_OMIT_AUTHORIZATION + db->xAuth = xAuth; +#endif + } + + return; +} + +/* +** An SQL user function that checks that there are no parse or symbol +** resolution problems in a CREATE TRIGGER|TABLE|VIEW|INDEX statement. +** After an ALTER TABLE .. RENAME operation is performed and the schema +** reloaded, this function is called on each SQL statement in the schema +** to ensure that it is still usable. +** +** 0: Database name ("main", "temp" etc.). +** 1: SQL statement. +** 2: Object type ("view", "table", "trigger" or "index"). +** 3: Object name. +** 4: True if object is from temp schema. +** +** Unless it finds an error, this function normally returns NULL. However, it +** returns integer value 1 if: +** +** * the SQL argument creates a trigger, and +** * the table that the trigger is attached to is in database zDb. +*/ +static void renameTableTest( + sqlite3_context *context, + int NotUsed, + sqlite3_value **argv +){ + sqlite3 *db = sqlite3_context_db_handle(context); + char const *zDb = (const char*)sqlite3_value_text(argv[0]); + char const *zInput = (const char*)sqlite3_value_text(argv[1]); + int bTemp = sqlite3_value_int(argv[4]); + int isLegacy = (db->flags & SQLITE_LegacyAlter); + +#ifndef SQLITE_OMIT_AUTHORIZATION + sqlite3_xauth xAuth = db->xAuth; + db->xAuth = 0; +#endif + + UNUSED_PARAMETER(NotUsed); + if( zDb && zInput ){ + int rc; + Parse sParse; + rc = renameParseSql(&sParse, zDb, 1, db, zInput, bTemp); + if( rc==SQLITE_OK ){ + if( isLegacy==0 && sParse.pNewTable && sParse.pNewTable->pSelect ){ + NameContext sNC; + memset(&sNC, 0, sizeof(sNC)); + sNC.pParse = &sParse; + sqlite3SelectPrep(&sParse, sParse.pNewTable->pSelect, &sNC); + if( sParse.nErr ) rc = sParse.rc; + } + + else if( sParse.pNewTrigger ){ + if( isLegacy==0 ){ + rc = renameResolveTrigger(&sParse, bTemp ? 0 : zDb); + } + if( rc==SQLITE_OK ){ + int i1 = sqlite3SchemaToIndex(db, sParse.pNewTrigger->pTabSchema); + int i2 = sqlite3FindDbName(db, zDb); + if( i1==i2 ) sqlite3_result_int(context, 1); + } + } + } + + if( rc!=SQLITE_OK ){ + renameColumnParseError(context, 1, argv[2], argv[3], &sParse); + } + renameParseCleanup(&sParse); + } + +#ifndef SQLITE_OMIT_AUTHORIZATION + db->xAuth = xAuth; +#endif +} + +/* +** Register built-in functions used to help implement ALTER TABLE +*/ +SQLITE_PRIVATE void sqlite3AlterFunctions(void){ + static FuncDef aAlterTableFuncs[] = { + INTERNAL_FUNCTION(sqlite_rename_column, 9, renameColumnFunc), + INTERNAL_FUNCTION(sqlite_rename_table, 7, renameTableFunc), + INTERNAL_FUNCTION(sqlite_rename_test, 5, renameTableTest), + }; + sqlite3InsertBuiltinFuncs(aAlterTableFuncs, ArraySize(aAlterTableFuncs)); +} #endif /* SQLITE_ALTER_TABLE */ /************** End of alter.c ***********************************************/ @@ -99315,6 +103564,7 @@ static const FuncDef statInitFuncdef = { 0, /* pNext */ statInit, /* xSFunc */ 0, /* xFinalize */ + 0, 0, /* xValue, xInverse */ "stat_init", /* zName */ {0} }; @@ -99631,6 +103881,7 @@ static const FuncDef statPushFuncdef = { 0, /* pNext */ statPush, /* xSFunc */ 0, /* xFinalize */ + 0, 0, /* xValue, xInverse */ "stat_push", /* zName */ {0} }; @@ -99782,6 +104033,7 @@ static const FuncDef statGetFuncdef = { 0, /* pNext */ statGet, /* xSFunc */ 0, /* xFinalize */ + 0, 0, /* xValue, xInverse */ "stat_get", /* zName */ {0} }; @@ -99845,7 +104097,7 @@ static void analyzeOneTable( /* Do not gather statistics on views or virtual tables */ return; } - if( sqlite3_strlike("sqlite_%", pTab->zName, 0)==0 ){ + if( sqlite3_strlike("sqlite\\_%", pTab->zName, '\\')==0 ){ /* Do not gather statistics on system tables */ return; } @@ -100101,10 +104353,7 @@ static void analyzeOneTable( callStatGet(v, regStat4, STAT_GET_NLT, regLt); callStatGet(v, regStat4, STAT_GET_NDLT, regDLt); sqlite3VdbeAddOp4Int(v, seekOp, iTabCur, addrNext, regSampleRowid, 0); - /* We know that the regSampleRowid row exists because it was read by - ** the previous loop. Thus the not-found jump of seekOp will never - ** be taken */ - VdbeCoverageNeverTaken(v); + VdbeCoverage(v); #ifdef SQLITE_ENABLE_STAT3 sqlite3ExprCodeLoadIndexColumn(pParse, pIdx, iTabCur, 0, regSample); #else @@ -100744,7 +104993,7 @@ SQLITE_PRIVATE int sqlite3AnalysisLoad(sqlite3 *db, int iDb){ /* Load the statistics from the sqlite_stat4 table. */ #ifdef SQLITE_ENABLE_STAT3_OR_STAT4 - if( rc==SQLITE_OK && OptimizationEnabled(db, SQLITE_Stat34) ){ + if( rc==SQLITE_OK ){ db->lookaside.bDisable++; rc = loadStat4(db, sInfo.zDatabase); db->lookaside.bDisable--; @@ -100824,6 +105073,10 @@ static int resolveAttachExpr(NameContext *pName, Expr *pExpr) ** ** If the optional "KEY z" syntax is omitted, an SQL NULL is passed as the ** third argument. +** +** If the db->init.reopenMemdb flags is set, then instead of attaching a +** new database, close the database on db->init.iDb and reopen it as an +** empty MemDB. */ static void attachFunc( sqlite3_context *context, @@ -100844,66 +105097,86 @@ static void attachFunc( sqlite3_vfs *pVfs; UNUSED_PARAMETER(NotUsed); - zFile = (const char *)sqlite3_value_text(argv[0]); zName = (const char *)sqlite3_value_text(argv[1]); if( zFile==0 ) zFile = ""; if( zName==0 ) zName = ""; - /* Check for the following errors: - ** - ** * Too many attached databases, - ** * Transaction currently open - ** * Specified database name already being used. - */ - if( db->nDb>=db->aLimit[SQLITE_LIMIT_ATTACHED]+2 ){ - zErrDyn = sqlite3MPrintf(db, "too many attached databases - max %d", - db->aLimit[SQLITE_LIMIT_ATTACHED] - ); - goto attach_error; - } - for(i=0; inDb; i++){ - char *z = db->aDb[i].zDbSName; - assert( z && zName ); - if( sqlite3StrICmp(z, zName)==0 ){ - zErrDyn = sqlite3MPrintf(db, "database %s is already in use", zName); +#ifdef SQLITE_ENABLE_DESERIALIZE +# define REOPEN_AS_MEMDB(db) (db->init.reopenMemdb) +#else +# define REOPEN_AS_MEMDB(db) (0) +#endif + + if( REOPEN_AS_MEMDB(db) ){ + /* This is not a real ATTACH. Instead, this routine is being called + ** from sqlite3_deserialize() to close database db->init.iDb and + ** reopen it as a MemDB */ + pVfs = sqlite3_vfs_find("memdb"); + if( pVfs==0 ) return; + pNew = &db->aDb[db->init.iDb]; + if( pNew->pBt ) sqlite3BtreeClose(pNew->pBt); + pNew->pBt = 0; + pNew->pSchema = 0; + rc = sqlite3BtreeOpen(pVfs, "x\0", db, &pNew->pBt, 0, SQLITE_OPEN_MAIN_DB); + }else{ + /* This is a real ATTACH + ** + ** Check for the following errors: + ** + ** * Too many attached databases, + ** * Transaction currently open + ** * Specified database name already being used. + */ + if( db->nDb>=db->aLimit[SQLITE_LIMIT_ATTACHED]+2 ){ + zErrDyn = sqlite3MPrintf(db, "too many attached databases - max %d", + db->aLimit[SQLITE_LIMIT_ATTACHED] + ); goto attach_error; } + for(i=0; inDb; i++){ + char *z = db->aDb[i].zDbSName; + assert( z && zName ); + if( sqlite3StrICmp(z, zName)==0 ){ + zErrDyn = sqlite3MPrintf(db, "database %s is already in use", zName); + goto attach_error; + } + } + + /* Allocate the new entry in the db->aDb[] array and initialize the schema + ** hash tables. + */ + if( db->aDb==db->aDbStatic ){ + aNew = sqlite3DbMallocRawNN(db, sizeof(db->aDb[0])*3 ); + if( aNew==0 ) return; + memcpy(aNew, db->aDb, sizeof(db->aDb[0])*2); + }else{ + aNew = sqlite3DbRealloc(db, db->aDb, sizeof(db->aDb[0])*(db->nDb+1) ); + if( aNew==0 ) return; + } + db->aDb = aNew; + pNew = &db->aDb[db->nDb]; + memset(pNew, 0, sizeof(*pNew)); + + /* Open the database file. If the btree is successfully opened, use + ** it to obtain the database schema. At this point the schema may + ** or may not be initialized. + */ + flags = db->openFlags; + rc = sqlite3ParseUri(db->pVfs->zName, zFile, &flags, &pVfs, &zPath, &zErr); + if( rc!=SQLITE_OK ){ + if( rc==SQLITE_NOMEM ) sqlite3OomFault(db); + sqlite3_result_error(context, zErr, -1); + sqlite3_free(zErr); + return; + } + assert( pVfs ); + flags |= SQLITE_OPEN_MAIN_DB; + rc = sqlite3BtreeOpen(pVfs, zPath, db, &pNew->pBt, 0, flags); + sqlite3_free( zPath ); + db->nDb++; } - - /* Allocate the new entry in the db->aDb[] array and initialize the schema - ** hash tables. - */ - if( db->aDb==db->aDbStatic ){ - aNew = sqlite3DbMallocRawNN(db, sizeof(db->aDb[0])*3 ); - if( aNew==0 ) return; - memcpy(aNew, db->aDb, sizeof(db->aDb[0])*2); - }else{ - aNew = sqlite3DbRealloc(db, db->aDb, sizeof(db->aDb[0])*(db->nDb+1) ); - if( aNew==0 ) return; - } - db->aDb = aNew; - pNew = &db->aDb[db->nDb]; - memset(pNew, 0, sizeof(*pNew)); - - /* Open the database file. If the btree is successfully opened, use - ** it to obtain the database schema. At this point the schema may - ** or may not be initialized. - */ - flags = db->openFlags; - rc = sqlite3ParseUri(db->pVfs->zName, zFile, &flags, &pVfs, &zPath, &zErr); - if( rc!=SQLITE_OK ){ - if( rc==SQLITE_NOMEM ) sqlite3OomFault(db); - sqlite3_result_error(context, zErr, -1); - sqlite3_free(zErr); - return; - } - assert( pVfs ); - flags |= SQLITE_OPEN_MAIN_DB; - rc = sqlite3BtreeOpen(pVfs, zPath, db, &pNew->pBt, 0, flags); - sqlite3_free( zPath ); - db->nDb++; - db->skipBtreeMutex = 0; + db->noSharedCache = 0; if( rc==SQLITE_CONSTRAINT ){ rc = SQLITE_ERROR; zErrDyn = sqlite3MPrintf(db, "database is already attached"); @@ -100929,7 +105202,7 @@ static void attachFunc( sqlite3BtreeLeave(pNew->pBt); } pNew->safety_level = SQLITE_DEFAULT_SYNCHRONOUS+1; - pNew->zDbSName = sqlite3DbStrDup(db, zName); + if( !REOPEN_AS_MEMDB(db) ) pNew->zDbSName = sqlite3DbStrDup(db, zName); if( rc==SQLITE_OK && pNew->zDbSName==0 ){ rc = SQLITE_NOMEM_BKPT; } @@ -100969,13 +105242,16 @@ static void attachFunc( /* If the file was opened successfully, read the schema for the new database. ** If this fails, or if opening the file failed, then close the file and - ** remove the entry from the db->aDb[] array. i.e. put everything back the way - ** we found it. + ** remove the entry from the db->aDb[] array. i.e. put everything back the + ** way we found it. */ if( rc==SQLITE_OK ){ sqlite3BtreeEnterAll(db); + db->init.iDb = 0; + db->mDbFlags &= ~(DBFLAG_SchemaKnownOk); rc = sqlite3Init(db, &zErrDyn); sqlite3BtreeLeaveAll(db); + assert( zErrDyn==0 || rc!=SQLITE_OK ); } #ifdef SQLITE_USER_AUTHENTICATION if( rc==SQLITE_OK ){ @@ -100987,21 +105263,23 @@ static void attachFunc( } #endif if( rc ){ - int iDb = db->nDb - 1; - assert( iDb>=2 ); - if( db->aDb[iDb].pBt ){ - sqlite3BtreeClose(db->aDb[iDb].pBt); - db->aDb[iDb].pBt = 0; - db->aDb[iDb].pSchema = 0; - } - sqlite3ResetAllSchemasOfConnection(db); - db->nDb = iDb; - if( rc==SQLITE_NOMEM || rc==SQLITE_IOERR_NOMEM ){ - sqlite3OomFault(db); - sqlite3DbFree(db, zErrDyn); - zErrDyn = sqlite3MPrintf(db, "out of memory"); - }else if( zErrDyn==0 ){ - zErrDyn = sqlite3MPrintf(db, "unable to open database: %s", zFile); + if( !REOPEN_AS_MEMDB(db) ){ + int iDb = db->nDb - 1; + assert( iDb>=2 ); + if( db->aDb[iDb].pBt ){ + sqlite3BtreeClose(db->aDb[iDb].pBt); + db->aDb[iDb].pBt = 0; + db->aDb[iDb].pSchema = 0; + } + sqlite3ResetAllSchemasOfConnection(db); + db->nDb = iDb; + if( rc==SQLITE_NOMEM || rc==SQLITE_IOERR_NOMEM ){ + sqlite3OomFault(db); + sqlite3DbFree(db, zErrDyn); + zErrDyn = sqlite3MPrintf(db, "out of memory"); + }else if( zErrDyn==0 ){ + zErrDyn = sqlite3MPrintf(db, "unable to open database: %s", zFile); + } } goto attach_error; } @@ -101154,6 +105432,7 @@ SQLITE_PRIVATE void sqlite3Detach(Parse *pParse, Expr *pDbname){ 0, /* pNext */ detachFunc, /* xSFunc */ 0, /* xFinalize */ + 0, 0, /* xValue, xInverse */ "sqlite_detach", /* zName */ {0} }; @@ -101173,6 +105452,7 @@ SQLITE_PRIVATE void sqlite3Attach(Parse *pParse, Expr *p, Expr *pDbname, Expr *p 0, /* pNext */ attachFunc, /* xSFunc */ 0, /* xFinalize */ + 0, 0, /* xValue, xInverse */ "sqlite_attach", /* zName */ {0} }; @@ -101243,6 +105523,9 @@ SQLITE_PRIVATE int sqlite3FixSrcList( if( sqlite3FixSelect(pFix, pItem->pSelect) ) return 1; if( sqlite3FixExpr(pFix, pItem->pOn) ) return 1; #endif + if( pItem->fg.isTabFunc && sqlite3FixExprList(pFix, pItem->u1.pFuncArg) ){ + return 1; + } } return 0; } @@ -101273,6 +105556,14 @@ SQLITE_PRIVATE int sqlite3FixSelect( if( sqlite3FixExpr(pFix, pSelect->pLimit) ){ return 1; } + if( pSelect->pWith ){ + int i; + for(i=0; ipWith->nCte; i++){ + if( sqlite3FixSelect(pFix, pSelect->pWith->a[i].pSelect) ){ + return 1; + } + } + } pSelect = pSelect->pPrior; } return 0; @@ -101334,6 +105625,18 @@ SQLITE_PRIVATE int sqlite3FixTriggerStep( if( sqlite3FixExprList(pFix, pStep->pExprList) ){ return 1; } +#ifndef SQLITE_OMIT_UPSERT + if( pStep->pUpsert ){ + Upsert *pUp = pStep->pUpsert; + if( sqlite3FixExprList(pFix, pUp->pUpsertTarget) + || sqlite3FixExpr(pFix, pUp->pUpsertTargetWhere) + || sqlite3FixExprList(pFix, pUp->pUpsertSet) + || sqlite3FixExpr(pFix, pUp->pUpsertWhere) + ){ + return 1; + } + } +#endif pStep = pStep->pNext; } return 0; @@ -101422,7 +105725,7 @@ SQLITE_API int sqlite3_set_authorizer( sqlite3_mutex_enter(db->mutex); db->xAuth = (sqlite3_xauth)xAuth; db->pAuthArg = pArg; - sqlite3ExpirePreparedStatements(db); + sqlite3ExpirePreparedStatements(db, 0); sqlite3_mutex_leave(db->mutex); return SQLITE_OK; } @@ -101494,6 +105797,8 @@ SQLITE_PRIVATE void sqlite3AuthRead( int iDb; /* The index of the database the expression refers to */ int iCol; /* Index of column in table */ + assert( pExpr->op==TK_COLUMN || pExpr->op==TK_TRIGGER ); + assert( !IN_RENAME_OBJECT || db->xAuth==0 ); if( db->xAuth==0 ) return; iDb = sqlite3SchemaToIndex(pParse->db, pSchema); if( iDb<0 ){ @@ -101502,7 +105807,6 @@ SQLITE_PRIVATE void sqlite3AuthRead( return; } - assert( pExpr->op==TK_COLUMN || pExpr->op==TK_TRIGGER ); if( pExpr->op==TK_TRIGGER ){ pTab = pParse->pTriggerTab; }else{ @@ -101551,7 +105855,8 @@ SQLITE_PRIVATE int sqlite3AuthCheck( /* Don't do any authorization checks if the database is initialising ** or if the parser is being invoked from within sqlite3_declare_vtab. */ - if( db->init.busy || IN_DECLARE_VTAB ){ + assert( !IN_RENAME_OBJECT || db->xAuth==0 ); + if( db->init.busy || IN_SPECIAL_PARSE ){ return SQLITE_OK; } @@ -101843,7 +106148,6 @@ SQLITE_PRIVATE void sqlite3FinishCoding(Parse *pParse){ /* Get the VDBE program ready for execution */ if( v && pParse->nErr==0 && !db->mallocFailed ){ - assert( pParse->iCacheLevel==0 ); /* Disables and re-enables match */ /* A minimum of one cursor is required if autoincrement is used * See ticket [a696379c1f08866] */ if( pParse->pAinc!=0 && pParse->nTab==0 ) pParse->nTab = 1; @@ -101961,28 +106265,29 @@ SQLITE_PRIVATE Table *sqlite3LocateTable( const char *zDbase /* Name of the database. Might be NULL */ ){ Table *p; + sqlite3 *db = pParse->db; /* Read the database schema. If an error occurs, leave an error message ** and code in pParse and return NULL. */ - if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){ + if( (db->mDbFlags & DBFLAG_SchemaKnownOk)==0 + && SQLITE_OK!=sqlite3ReadSchema(pParse) + ){ return 0; } - p = sqlite3FindTable(pParse->db, zName, zDbase); + p = sqlite3FindTable(db, zName, zDbase); if( p==0 ){ const char *zMsg = flags & LOCATE_VIEW ? "no such view" : "no such table"; #ifndef SQLITE_OMIT_VIRTUALTABLE - if( sqlite3FindDbName(pParse->db, zDbase)<1 ){ - /* If zName is the not the name of a table in the schema created using - ** CREATE, then check to see if it is the name of an virtual table that - ** can be an eponymous virtual table. */ - Module *pMod = (Module*)sqlite3HashFind(&pParse->db->aModule, zName); - if( pMod==0 && sqlite3_strnicmp(zName, "pragma_", 7)==0 ){ - pMod = sqlite3PragmaVtabRegister(pParse->db, zName); - } - if( pMod && sqlite3VtabEponymousTableInit(pParse, pMod) ){ - return pMod->pEpoTab; - } + /* If zName is the not the name of a table in the schema created using + ** CREATE, then check to see if it is the name of an virtual table that + ** can be an eponymous virtual table. */ + Module *pMod = (Module*)sqlite3HashFind(&db->aModule, zName); + if( pMod==0 && sqlite3_strnicmp(zName, "pragma_", 7)==0 ){ + pMod = sqlite3PragmaVtabRegister(db, zName); + } + if( pMod && sqlite3VtabEponymousTableInit(pParse, pMod) ){ + return pMod->pEpoTab; } #endif if( (flags & LOCATE_NOERR)==0 ){ @@ -102055,7 +106360,7 @@ SQLITE_PRIVATE Index *sqlite3FindIndex(sqlite3 *db, const char *zName, const cha /* ** Reclaim the memory used by an index */ -static void freeIndex(sqlite3 *db, Index *p){ +SQLITE_PRIVATE void sqlite3FreeIndex(sqlite3 *db, Index *p){ #ifndef SQLITE_OMIT_ANALYZE sqlite3DeleteIndexSamples(db, p); #endif @@ -102095,7 +106400,7 @@ SQLITE_PRIVATE void sqlite3UnlinkAndDeleteIndex(sqlite3 *db, int iDb, const char p->pNext = pIndex->pNext; } } - freeIndex(db, pIndex); + sqlite3FreeIndex(db, pIndex); } db->mDbFlags |= DBFLAG_SchemaChange; } @@ -102143,6 +106448,7 @@ SQLITE_PRIVATE void sqlite3ResetOneSchema(sqlite3 *db, int iDb){ assert( sqlite3SchemaMutexHeld(db, iDb, 0) ); DbSetProperty(db, iDb, DB_ResetWanted); DbSetProperty(db, 1, DB_ResetWanted); + db->mDbFlags &= ~DBFLAG_SchemaKnownOk; } if( db->nSchemaLock==0 ){ @@ -102161,17 +106467,22 @@ SQLITE_PRIVATE void sqlite3ResetOneSchema(sqlite3 *db, int iDb){ SQLITE_PRIVATE void sqlite3ResetAllSchemasOfConnection(sqlite3 *db){ int i; sqlite3BtreeEnterAll(db); - assert( db->nSchemaLock==0 ); for(i=0; inDb; i++){ Db *pDb = &db->aDb[i]; if( pDb->pSchema ){ - sqlite3SchemaClear(pDb->pSchema); + if( db->nSchemaLock==0 ){ + sqlite3SchemaClear(pDb->pSchema); + }else{ + DbSetProperty(db, i, DB_ResetWanted); + } } } - db->mDbFlags &= ~DBFLAG_SchemaChange; + db->mDbFlags &= ~(DBFLAG_SchemaChange|DBFLAG_SchemaKnownOk); sqlite3VtabUnlockList(db); sqlite3BtreeLeaveAll(db); - sqlite3CollapseDatabaseArray(db); + if( db->nSchemaLock==0 ){ + sqlite3CollapseDatabaseArray(db); + } } /* @@ -102240,7 +106551,7 @@ static void SQLITE_NOINLINE deleteTable(sqlite3 *db, Table *pTable){ assert( db==0 || sqlite3SchemaMutexHeld(db, 0, pIndex->pSchema) ); assert( pOld==pIndex || pOld==0 ); } - freeIndex(db, pIndex); + sqlite3FreeIndex(db, pIndex); } /* Delete any foreign keys attached to this table. */ @@ -102248,6 +106559,12 @@ static void SQLITE_NOINLINE deleteTable(sqlite3 *db, Table *pTable){ /* Delete the Table structure itself. */ +#ifdef SQLITE_ENABLE_NORMALIZE + if( pTable->pColHash ){ + sqlite3HashClear(pTable->pColHash); + sqlite3_free(pTable->pColHash); + } +#endif sqlite3DeleteColumnNames(db, pTable); sqlite3DbFree(db, pTable->zName); sqlite3DbFree(db, pTable->zColAff); @@ -102398,7 +106715,7 @@ SQLITE_PRIVATE int sqlite3TwoPartName( return -1; } }else{ - assert( db->init.iDb==0 || db->init.busy + assert( db->init.iDb==0 || db->init.busy || IN_RENAME_OBJECT || (db->mDbFlags & DBFLAG_Vacuum)!=0); iDb = db->init.iDb; *pUnqual = pName1; @@ -102406,6 +106723,20 @@ SQLITE_PRIVATE int sqlite3TwoPartName( return iDb; } +/* +** True if PRAGMA writable_schema is ON +*/ +SQLITE_PRIVATE int sqlite3WritableSchema(sqlite3 *db){ + testcase( (db->flags&(SQLITE_WriteSchema|SQLITE_Defensive))==0 ); + testcase( (db->flags&(SQLITE_WriteSchema|SQLITE_Defensive))== + SQLITE_WriteSchema ); + testcase( (db->flags&(SQLITE_WriteSchema|SQLITE_Defensive))== + SQLITE_Defensive ); + testcase( (db->flags&(SQLITE_WriteSchema|SQLITE_Defensive))== + (SQLITE_WriteSchema|SQLITE_Defensive) ); + return (db->flags&(SQLITE_WriteSchema|SQLITE_Defensive))==SQLITE_WriteSchema; +} + /* ** This routine is used to check if the UTF-8 string zName is a legal ** unqualified name for a new schema object (table, index, view or @@ -102415,7 +106746,7 @@ SQLITE_PRIVATE int sqlite3TwoPartName( */ SQLITE_PRIVATE int sqlite3CheckObjectName(Parse *pParse, const char *zName){ if( !pParse->db->init.busy && pParse->nested==0 - && (pParse->db->flags & SQLITE_WriteSchema)==0 + && sqlite3WritableSchema(pParse->db)==0 && 0==sqlite3StrNICmp(zName, "sqlite_", 7) ){ sqlite3ErrorMsg(pParse, "object name reserved for internal use: %s", zName); return SQLITE_ERROR; @@ -102493,6 +106824,9 @@ SQLITE_PRIVATE void sqlite3StartTable( } if( !OMIT_TEMPDB && isTemp ) iDb = 1; zName = sqlite3NameFromToken(db, pName); + if( IN_RENAME_OBJECT ){ + sqlite3RenameTokenMap(pParse, (void*)zName, pName); + } } pParse->sNameToken = *pName; if( zName==0 ) return; @@ -102528,7 +106862,7 @@ SQLITE_PRIVATE void sqlite3StartTable( ** and types will be used, so there is no need to test for namespace ** collisions. */ - if( !IN_DECLARE_VTAB ){ + if( !IN_SPECIAL_PARSE ){ char *zDb = db->aDb[iDb].zDbSName; if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){ goto begin_table_error; @@ -102687,6 +107021,7 @@ SQLITE_PRIVATE void sqlite3AddColumn(Parse *pParse, Token *pName, Token *pType){ } z = sqlite3DbMallocRaw(db, pName->n + pType->n + 2); if( z==0 ) return; + if( IN_RENAME_OBJECT ) sqlite3RenameTokenMap(pParse, (void*)z, pName); memcpy(z, pName->z, pName->n); z[pName->n] = 0; sqlite3Dequote(z); @@ -102713,15 +107048,20 @@ SQLITE_PRIVATE void sqlite3AddColumn(Parse *pParse, Token *pName, Token *pType){ if( pType->n==0 ){ /* If there is no type specified, columns have the default affinity - ** 'BLOB'. */ + ** 'BLOB' with a default size of 4 bytes. */ pCol->affinity = SQLITE_AFF_BLOB; pCol->szEst = 1; +#ifdef SQLITE_ENABLE_SORTER_REFERENCES + if( 4>=sqlite3GlobalConfig.szSorterRef ){ + pCol->colFlags |= COLFLAG_SORTERREF; + } +#endif }else{ zType = z + sqlite3Strlen30(z) + 1; memcpy(zType, pType->z, pType->n); zType[pType->n] = 0; sqlite3Dequote(zType); - pCol->affinity = sqlite3AffinityType(zType, &pCol->szEst); + pCol->affinity = sqlite3AffinityType(zType, pCol); pCol->colFlags |= COLFLAG_HASTYPE; } p->nCol++; @@ -102736,10 +107076,24 @@ SQLITE_PRIVATE void sqlite3AddColumn(Parse *pParse, Token *pName, Token *pType){ */ SQLITE_PRIVATE void sqlite3AddNotNull(Parse *pParse, int onError){ Table *p; + Column *pCol; p = pParse->pNewTable; if( p==0 || NEVER(p->nCol<1) ) return; - p->aCol[p->nCol-1].notNull = (u8)onError; + pCol = &p->aCol[p->nCol-1]; + pCol->notNull = (u8)onError; p->tabFlags |= TF_HasNotNull; + + /* Set the uniqNotNull flag on any UNIQUE or PK indexes already created + ** on this column. */ + if( pCol->colFlags & COLFLAG_UNIQUE ){ + Index *pIdx; + for(pIdx=p->pIndex; pIdx; pIdx=pIdx->pNext){ + assert( pIdx->nKeyCol==1 && pIdx->onError!=OE_None ); + if( pIdx->aiColumn[0]==p->nCol-1 ){ + pIdx->uniqNotNull = 1; + } + } + } } /* @@ -102767,7 +107121,7 @@ SQLITE_PRIVATE void sqlite3AddNotNull(Parse *pParse, int onError){ ** If none of the substrings in the above table are found, ** SQLITE_AFF_NUMERIC is returned. */ -SQLITE_PRIVATE char sqlite3AffinityType(const char *zIn, u8 *pszEst){ +SQLITE_PRIVATE char sqlite3AffinityType(const char *zIn, Column *pCol){ u32 h = 0; char aff = SQLITE_AFF_NUMERIC; const char *zChar = 0; @@ -102804,27 +107158,32 @@ SQLITE_PRIVATE char sqlite3AffinityType(const char *zIn, u8 *pszEst){ } } - /* If pszEst is not NULL, store an estimate of the field size. The + /* If pCol is not NULL, store an estimate of the field size. The ** estimate is scaled so that the size of an integer is 1. */ - if( pszEst ){ - *pszEst = 1; /* default size is approx 4 bytes */ + if( pCol ){ + int v = 0; /* default size is approx 4 bytes */ if( aff r=(k/4+1) */ sqlite3GetInt32(zChar, &v); - v = v/4 + 1; - if( v>255 ) v = 255; - *pszEst = v; /* BLOB(k), VARCHAR(k), CHAR(k) -> r=(k/4+1) */ break; } zChar++; } }else{ - *pszEst = 5; /* BLOB, TEXT, CLOB -> r=5 (approx 20 bytes)*/ + v = 16; /* BLOB, TEXT, CLOB -> r=5 (approx 20 bytes)*/ } } +#ifdef SQLITE_ENABLE_SORTER_REFERENCES + if( v>=sqlite3GlobalConfig.szSorterRef ){ + pCol->colFlags |= COLFLAG_SORTERREF; + } +#endif + v = v/4 + 1; + if( v>255 ) v = 255; + pCol->szEst = v; } return aff; } @@ -102856,7 +107215,7 @@ SQLITE_PRIVATE void sqlite3AddDefaultValue( pCol->zName); }else{ /* A copy of pExpr is used instead of the original, as pExpr contains - ** tokens that point to volatile memory. + ** tokens that point to volatile memory. */ Expr x; sqlite3ExprDelete(db, pCol->pDflt); @@ -102869,6 +107228,9 @@ SQLITE_PRIVATE void sqlite3AddDefaultValue( sqlite3DbFree(db, x.u.zToken); } } + if( IN_RENAME_OBJECT ){ + sqlite3RenameExprUnmap(pParse, pExpr); + } sqlite3ExprDelete(db, pExpr); } @@ -102960,6 +107322,9 @@ SQLITE_PRIVATE void sqlite3AddPrimaryKey( && sqlite3StrICmp(sqlite3ColumnType(pCol,""), "INTEGER")==0 && sortOrder!=SQLITE_SO_DESC ){ + if( IN_RENAME_OBJECT && pList ){ + sqlite3RenameTokenRemap(pParse, &pTab->iPKey, pList->a[0].pExpr); + } pTab->iPKey = iCol; pTab->keyConf = (u8)onError; assert( autoInc==0 || autoInc==1 ); @@ -103100,7 +107465,7 @@ SQLITE_PRIVATE void sqlite3ChangeCookie(Parse *pParse, int iDb){ Vdbe *v = pParse->pVdbe; assert( sqlite3SchemaMutexHeld(db, iDb, 0) ); sqlite3VdbeAddOp3(v, OP_SetCookie, iDb, BTREE_SCHEMA_VERSION, - db->aDb[iDb].pSchema->schema_cookie+1); + (int)(1+(unsigned)db->aDb[iDb].pSchema->schema_cookie)); } /* @@ -103285,6 +107650,31 @@ static int hasColumn(const i16 *aiCol, int nCol, int x){ return 0; } +/* Recompute the colNotIdxed field of the Index. +** +** colNotIdxed is a bitmask that has a 0 bit representing each indexed +** columns that are within the first 63 columns of the table. The +** high-order bit of colNotIdxed is always 1. All unindexed columns +** of the table have a 1. +** +** The colNotIdxed mask is AND-ed with the SrcList.a[].colUsed mask +** to determine if the index is covering index. +*/ +static void recomputeColumnsNotIndexed(Index *pIdx){ + Bitmask m = 0; + int j; + for(j=pIdx->nColumn-1; j>=0; j--){ + int x = pIdx->aiColumn[j]; + if( x>=0 ){ + testcase( x==BMS-1 ); + testcase( x==BMS-2 ); + if( xcolNotIdxed = ~m; + assert( (pIdx->colNotIdxed>>63)==1 ); +} + /* ** This routine runs at the end of parsing a CREATE TABLE statement that ** has a WITHOUT ROWID clause. The job of this routine is to convert both @@ -103327,10 +107717,6 @@ static void convertToWithoutRowidTable(Parse *pParse, Table *pTab){ } } - /* The remaining transformations only apply to b-tree tables, not to - ** virtual tables */ - if( IN_DECLARE_VTAB ) return; - /* Convert the P3 operand of the OP_CreateBtree opcode from BTREE_INTKEY ** into BTREE_BLOBKEY. */ @@ -103353,7 +107739,7 @@ static void convertToWithoutRowidTable(Parse *pParse, Table *pTab){ assert( pParse->pNewTable==pTab ); sqlite3CreateIndex(pParse, 0, 0, 0, pList, pTab->keyConf, 0, 0, 0, 0, SQLITE_IDXTYPE_PRIMARYKEY); - if( db->mallocFailed ) return; + if( db->mallocFailed || pParse->nErr ) return; pPk = sqlite3PrimaryKeyIndex(pTab); pTab->iPKey = -1; }else{ @@ -103433,8 +107819,39 @@ static void convertToWithoutRowidTable(Parse *pParse, Table *pTab){ }else{ pPk->nColumn = pTab->nCol; } + recomputeColumnsNotIndexed(pPk); } +#ifndef SQLITE_OMIT_VIRTUALTABLE +/* +** Return true if zName is a shadow table name in the current database +** connection. +** +** zName is temporarily modified while this routine is running, but is +** restored to its original value prior to this routine returning. +*/ +static int isShadowTableName(sqlite3 *db, char *zName){ + char *zTail; /* Pointer to the last "_" in zName */ + Table *pTab; /* Table that zName is a shadow of */ + Module *pMod; /* Module for the virtual table */ + + zTail = strrchr(zName, '_'); + if( zTail==0 ) return 0; + *zTail = 0; + pTab = sqlite3FindTable(db, zName, 0); + *zTail = '_'; + if( pTab==0 ) return 0; + if( !IsVirtual(pTab) ) return 0; + pMod = (Module*)sqlite3HashFind(&db->aModule, pTab->azModuleArg[0]); + if( pMod==0 ) return 0; + if( pMod->pModule->iVersion<3 ) return 0; + if( pMod->pModule->xShadowName==0 ) return 0; + return pMod->pModule->xShadowName(zTail+1); +} +#else +# define isShadowTableName(x,y) 0 +#endif /* ifndef SQLITE_OMIT_VIRTUALTABLE */ + /* ** This routine is called to report the final ")" that terminates ** a CREATE TABLE statement. @@ -103474,7 +107891,9 @@ SQLITE_PRIVATE void sqlite3EndTable( p = pParse->pNewTable; if( p==0 ) return; - assert( !db->init.busy || !pSelect ); + if( pSelect==0 && isShadowTableName(db, p->zName) ){ + p->tabFlags |= TF_Shadow; + } /* If the db->init.busy is 1 it means we are reading the SQL off the ** "sqlite_master" or "sqlite_temp_master" table on the disk. @@ -103486,6 +107905,10 @@ SQLITE_PRIVATE void sqlite3EndTable( ** table itself. So mark it read-only. */ if( db->init.busy ){ + if( pSelect ){ + sqlite3ErrorMsg(pParse, ""); + return; + } p->tnum = db->init.newTnum; if( p->tnum==1 ) p->tabFlags |= TF_Readonly; } @@ -103734,7 +108157,12 @@ SQLITE_PRIVATE void sqlite3CreateView( ** allocated rather than point to the input string - which means that ** they will persist after the current sqlite3_exec() call returns. */ - p->pSelect = sqlite3SelectDup(db, pSelect, EXPRDUP_REDUCE); + if( IN_RENAME_OBJECT ){ + p->pSelect = pSelect; + pSelect = 0; + }else{ + p->pSelect = sqlite3SelectDup(db, pSelect, EXPRDUP_REDUCE); + } p->pCheck = sqlite3ExprListDup(db, pCNames, EXPRDUP_REDUCE); if( db->mallocFailed ) goto create_view_fail; @@ -103759,6 +108187,9 @@ SQLITE_PRIVATE void sqlite3CreateView( create_view_fail: sqlite3SelectDelete(db, pSelect); + if( IN_RENAME_OBJECT ){ + sqlite3RenameExprlistUnmap(pParse, pCNames); + } sqlite3ExprListDelete(db, pCNames); return; } @@ -103776,7 +108207,7 @@ SQLITE_PRIVATE int sqlite3ViewGetColumnNames(Parse *pParse, Table *pTable){ int nErr = 0; /* Number of errors encountered */ int n; /* Temporarily holds the number of cursors assigned */ sqlite3 *db = pParse->db; /* Database connection for malloc errors */ -#ifndef SQLITE_OMIT_VIRTUALTABLE +#ifndef SQLITE_OMIT_VIRTUALTABLE int rc; #endif #ifndef SQLITE_OMIT_AUTHORIZATION @@ -103832,6 +108263,10 @@ SQLITE_PRIVATE int sqlite3ViewGetColumnNames(Parse *pParse, Table *pTable){ assert( pTable->pSelect ); pSel = sqlite3SelectDup(db, pTable->pSelect, 0); if( pSel ){ +#ifndef SQLITE_OMIT_ALTERTABLE + u8 eParseMode = pParse->eParseMode; + pParse->eParseMode = PARSE_MODE_NORMAL; +#endif n = pParse->nTab; sqlite3SrcListAssignCursors(pParse, pSel->pSrc); pTable->nCol = -1; @@ -103877,10 +108312,18 @@ SQLITE_PRIVATE int sqlite3ViewGetColumnNames(Parse *pParse, Table *pTable){ sqlite3DeleteTable(db, pSelTab); sqlite3SelectDelete(db, pSel); db->lookaside.bDisable--; +#ifndef SQLITE_OMIT_ALTERTABLE + pParse->eParseMode = eParseMode; +#endif } else { nErr++; } pTable->pSchema->schemaFlags |= DB_UnresetViews; + if( db->mallocFailed ){ + sqlite3DeleteColumnNames(db, pTable); + pTable->aCol = 0; + pTable->nCol = 0; + } #endif /* SQLITE_OMIT_VIEW */ return nErr; } @@ -103959,7 +108402,7 @@ SQLITE_PRIVATE void sqlite3RootPageMoved(sqlite3 *db, int iDb, int iFrom, int iT static void destroyRootPage(Parse *pParse, int iTable, int iDb){ Vdbe *v = sqlite3GetVdbe(pParse); int r1 = sqlite3GetTempReg(pParse); - assert( iTable>1 ); + if( iTable<2 ) sqlite3ErrorMsg(pParse, "corrupt schema"); sqlite3VdbeAddOp3(v, OP_Destroy, iTable, r1, iDb); sqlite3MayAbort(pParse); #ifndef SQLITE_OMIT_AUTOVACUUM @@ -104219,8 +108662,10 @@ SQLITE_PRIVATE void sqlite3DropTable(Parse *pParse, SrcList *pName, int isView, v = sqlite3GetVdbe(pParse); if( v ){ sqlite3BeginWriteOperation(pParse, 1, iDb); - sqlite3ClearStatTables(pParse, iDb, "tbl", pTab->zName); - sqlite3FkDropTable(pParse, pName, pTab); + if( !isView ){ + sqlite3ClearStatTables(pParse, iDb, "tbl", pTab->zName); + sqlite3FkDropTable(pParse, pName, pTab); + } sqlite3CodeDropTable(pParse, pTab, iDb, isView); } @@ -104295,6 +108740,9 @@ SQLITE_PRIVATE void sqlite3CreateForeignKey( pFKey->pNextFrom = p->pFKey; z = (char*)&pFKey->aCol[nCol]; pFKey->zTo = z; + if( IN_RENAME_OBJECT ){ + sqlite3RenameTokenMap(pParse, (void*)z, pTo); + } memcpy(z, pTo->z, pTo->n); z[pTo->n] = 0; sqlite3Dequote(z); @@ -104317,12 +108765,18 @@ SQLITE_PRIVATE void sqlite3CreateForeignKey( pFromCol->a[i].zName); goto fk_end; } + if( IN_RENAME_OBJECT ){ + sqlite3RenameTokenRemap(pParse, &pFKey->aCol[i], pFromCol->a[i].zName); + } } } if( pToCol ){ for(i=0; ia[i].zName); pFKey->aCol[i].zCol = z; + if( IN_RENAME_OBJECT ){ + sqlite3RenameTokenRemap(pParse, z, pToCol->a[i].zName); + } memcpy(z, pToCol->a[i].zName, n); z[n] = 0; z += n+1; @@ -104431,6 +108885,7 @@ static void sqlite3RefillIndex(Parse *pParse, Index *pIndex, int memRootPage){ sqlite3OpenTable(pParse, iTab, iDb, pTab, OP_OpenRead); addr1 = sqlite3VdbeAddOp2(v, OP_Rewind, iTab, 0); VdbeCoverage(v); regRecord = sqlite3GetTempReg(pParse); + sqlite3MultiWrite(pParse); sqlite3GenerateIndexKey(pParse,pIndex,iTab,regRecord,0,&iPartIdxLabel,0,0); sqlite3VdbeAddOp2(v, OP_SorterInsert, iSorter, regRecord); @@ -104444,12 +108899,13 @@ static void sqlite3RefillIndex(Parse *pParse, Index *pIndex, int memRootPage){ addr1 = sqlite3VdbeAddOp2(v, OP_SorterSort, iSorter, 0); VdbeCoverage(v); if( IsUniqueIndex(pIndex) ){ - int j2 = sqlite3VdbeCurrentAddr(v) + 3; - sqlite3VdbeGoto(v, j2); + int j2 = sqlite3VdbeGoto(v, 1); addr2 = sqlite3VdbeCurrentAddr(v); + sqlite3VdbeVerifyAbortable(v, OE_Abort); sqlite3VdbeAddOp4Int(v, OP_SorterCompare, iSorter, j2, regRecord, pIndex->nKeyCol); VdbeCoverage(v); sqlite3UniqueConstraint(pParse, OE_Abort, pIndex); + sqlite3VdbeJumpHere(v, j2); }else{ addr2 = sqlite3VdbeCurrentAddr(v); } @@ -104612,7 +109068,11 @@ SQLITE_PRIVATE void sqlite3CreateIndex( #if SQLITE_USER_AUTHENTICATION && sqlite3UserAuthTable(pTab->zName)==0 #endif - && sqlite3StrNICmp(&pTab->zName[7],"altertab_",9)!=0 ){ +#ifdef SQLITE_ALLOW_SQLITE_MASTER_INDEX + && sqlite3StrICmp(&pTab->zName[7],"master")!=0 +#endif + && sqlite3StrNICmp(&pTab->zName[7],"altertab_",9)!=0 + ){ sqlite3ErrorMsg(pParse, "table %s may not be indexed", pTab->zName); goto exit_create_index; } @@ -104649,20 +109109,22 @@ SQLITE_PRIVATE void sqlite3CreateIndex( if( SQLITE_OK!=sqlite3CheckObjectName(pParse, zName) ){ goto exit_create_index; } - if( !db->init.busy ){ - if( sqlite3FindTable(db, zName, 0)!=0 ){ - sqlite3ErrorMsg(pParse, "there is already a table named %s", zName); - goto exit_create_index; + if( !IN_RENAME_OBJECT ){ + if( !db->init.busy ){ + if( sqlite3FindTable(db, zName, 0)!=0 ){ + sqlite3ErrorMsg(pParse, "there is already a table named %s", zName); + goto exit_create_index; + } } - } - if( sqlite3FindIndex(db, zName, pDb->zDbSName)!=0 ){ - if( !ifNotExist ){ - sqlite3ErrorMsg(pParse, "index %s already exists", zName); - }else{ - assert( !db->init.busy ); - sqlite3CodeVerifySchema(pParse, iDb); + if( sqlite3FindIndex(db, zName, pDb->zDbSName)!=0 ){ + if( !ifNotExist ){ + sqlite3ErrorMsg(pParse, "index %s already exists", zName); + }else{ + assert( !db->init.busy ); + sqlite3CodeVerifySchema(pParse, iDb); + } + goto exit_create_index; } - goto exit_create_index; } }else{ int n; @@ -104678,13 +109140,13 @@ SQLITE_PRIVATE void sqlite3CreateIndex( ** The following statement converts "sqlite3_autoindex..." into ** "sqlite3_butoindex..." in order to make the names distinct. ** The "vtab_err.test" test demonstrates the need of this statement. */ - if( IN_DECLARE_VTAB ) zName[7]++; + if( IN_SPECIAL_PARSE ) zName[7]++; } /* Check for authorization to create an index. */ #ifndef SQLITE_OMIT_AUTHORIZATION - { + if( !IN_RENAME_OBJECT ){ const char *zDb = pDb->zDbSName; if( sqlite3AuthCheck(pParse, SQLITE_INSERT, SCHEMA_TABLE(iDb), 0, zDb) ){ goto exit_create_index; @@ -104703,7 +109165,9 @@ SQLITE_PRIVATE void sqlite3CreateIndex( */ if( pList==0 ){ Token prevCol; - sqlite3TokenInit(&prevCol, pTab->aCol[pTab->nCol-1].zName); + Column *pCol = &pTab->aCol[pTab->nCol-1]; + pCol->colFlags |= COLFLAG_UNIQUE; + sqlite3TokenInit(&prevCol, pCol->zName); pList = sqlite3ExprListAppend(pParse, 0, sqlite3ExprAlloc(db, TK_ID, &prevCol, 0)); if( pList==0 ) goto exit_create_index; @@ -104769,7 +109233,12 @@ SQLITE_PRIVATE void sqlite3CreateIndex( ** TODO: Issue a warning if the table primary key is used as part of the ** index key. */ - for(i=0, pListItem=pList->a; inExpr; i++, pListItem++){ + pListItem = pList->a; + if( IN_RENAME_OBJECT ){ + pIndex->aColExpr = pList; + pList = 0; + } + for(i=0; inKeyCol; i++, pListItem++){ Expr *pCExpr; /* The i-th index expression */ int requestedSortOrder; /* ASC or DESC on the i-th expression */ const char *zColl; /* Collation sequence name */ @@ -104785,12 +109254,8 @@ SQLITE_PRIVATE void sqlite3CreateIndex( goto exit_create_index; } if( pIndex->aColExpr==0 ){ - ExprList *pCopy = sqlite3ExprListDup(db, pList, 0); - pIndex->aColExpr = pCopy; - if( !db->mallocFailed ){ - assert( pCopy!=0 ); - pListItem = &pCopy->a[i]; - } + pIndex->aColExpr = pList; + pList = 0; } j = XN_EXPR; pIndex->aiColumn[i] = XN_EXPR; @@ -104856,6 +109321,7 @@ SQLITE_PRIVATE void sqlite3CreateIndex( ** it as a covering index */ assert( HasRowid(pTab) || pTab->iPKey<0 || sqlite3ColumnOfIndex(pIndex, pTab->iPKey)>=0 ); + recomputeColumnsNotIndexed(pIndex); if( pTblName!=0 && pIndex->nColumn>=pTab->nCol ){ pIndex->isCovering = 1; for(j=0; jnCol; j++){ @@ -104928,98 +109394,101 @@ SQLITE_PRIVATE void sqlite3CreateIndex( } } - /* Link the new Index structure to its table and to the other - ** in-memory database structures. - */ - assert( pParse->nErr==0 ); - if( db->init.busy ){ - Index *p; - assert( !IN_DECLARE_VTAB ); - assert( sqlite3SchemaMutexHeld(db, 0, pIndex->pSchema) ); - p = sqlite3HashInsert(&pIndex->pSchema->idxHash, - pIndex->zName, pIndex); - if( p ){ - assert( p==pIndex ); /* Malloc must have failed */ - sqlite3OomFault(db); - goto exit_create_index; - } - db->mDbFlags |= DBFLAG_SchemaChange; - if( pTblName!=0 ){ - pIndex->tnum = db->init.newTnum; - } - } - - /* If this is the initial CREATE INDEX statement (or CREATE TABLE if the - ** index is an implied index for a UNIQUE or PRIMARY KEY constraint) then - ** emit code to allocate the index rootpage on disk and make an entry for - ** the index in the sqlite_master table and populate the index with - ** content. But, do not do this if we are simply reading the sqlite_master - ** table to parse the schema, or if this index is the PRIMARY KEY index - ** of a WITHOUT ROWID table. - ** - ** If pTblName==0 it means this index is generated as an implied PRIMARY KEY - ** or UNIQUE index in a CREATE TABLE statement. Since the table - ** has just been created, it contains no data and the index initialization - ** step can be skipped. - */ - else if( HasRowid(pTab) || pTblName!=0 ){ - Vdbe *v; - char *zStmt; - int iMem = ++pParse->nMem; - - v = sqlite3GetVdbe(pParse); - if( v==0 ) goto exit_create_index; - - sqlite3BeginWriteOperation(pParse, 1, iDb); + if( !IN_RENAME_OBJECT ){ - /* Create the rootpage for the index using CreateIndex. But before - ** doing so, code a Noop instruction and store its address in - ** Index.tnum. This is required in case this index is actually a - ** PRIMARY KEY and the table is actually a WITHOUT ROWID table. In - ** that case the convertToWithoutRowidTable() routine will replace - ** the Noop with a Goto to jump over the VDBE code generated below. */ - pIndex->tnum = sqlite3VdbeAddOp0(v, OP_Noop); - sqlite3VdbeAddOp3(v, OP_CreateBtree, iDb, iMem, BTREE_BLOBKEY); - - /* Gather the complete text of the CREATE INDEX statement into - ** the zStmt variable + /* Link the new Index structure to its table and to the other + ** in-memory database structures. */ - if( pStart ){ - int n = (int)(pParse->sLastToken.z - pName->z) + pParse->sLastToken.n; - if( pName->z[n-1]==';' ) n--; - /* A named index with an explicit CREATE INDEX statement */ - zStmt = sqlite3MPrintf(db, "CREATE%s INDEX %.*s", - onError==OE_None ? "" : " UNIQUE", n, pName->z); - }else{ - /* An automatic index created by a PRIMARY KEY or UNIQUE constraint */ - /* zStmt = sqlite3MPrintf(""); */ - zStmt = 0; + assert( pParse->nErr==0 ); + if( db->init.busy ){ + Index *p; + assert( !IN_SPECIAL_PARSE ); + assert( sqlite3SchemaMutexHeld(db, 0, pIndex->pSchema) ); + p = sqlite3HashInsert(&pIndex->pSchema->idxHash, + pIndex->zName, pIndex); + if( p ){ + assert( p==pIndex ); /* Malloc must have failed */ + sqlite3OomFault(db); + goto exit_create_index; + } + db->mDbFlags |= DBFLAG_SchemaChange; + if( pTblName!=0 ){ + pIndex->tnum = db->init.newTnum; + } } - /* Add an entry in sqlite_master for this index + /* If this is the initial CREATE INDEX statement (or CREATE TABLE if the + ** index is an implied index for a UNIQUE or PRIMARY KEY constraint) then + ** emit code to allocate the index rootpage on disk and make an entry for + ** the index in the sqlite_master table and populate the index with + ** content. But, do not do this if we are simply reading the sqlite_master + ** table to parse the schema, or if this index is the PRIMARY KEY index + ** of a WITHOUT ROWID table. + ** + ** If pTblName==0 it means this index is generated as an implied PRIMARY KEY + ** or UNIQUE index in a CREATE TABLE statement. Since the table + ** has just been created, it contains no data and the index initialization + ** step can be skipped. */ - sqlite3NestedParse(pParse, - "INSERT INTO %Q.%s VALUES('index',%Q,%Q,#%d,%Q);", - db->aDb[iDb].zDbSName, MASTER_NAME, - pIndex->zName, - pTab->zName, - iMem, - zStmt - ); - sqlite3DbFree(db, zStmt); + else if( HasRowid(pTab) || pTblName!=0 ){ + Vdbe *v; + char *zStmt; + int iMem = ++pParse->nMem; + + v = sqlite3GetVdbe(pParse); + if( v==0 ) goto exit_create_index; + + sqlite3BeginWriteOperation(pParse, 1, iDb); + + /* Create the rootpage for the index using CreateIndex. But before + ** doing so, code a Noop instruction and store its address in + ** Index.tnum. This is required in case this index is actually a + ** PRIMARY KEY and the table is actually a WITHOUT ROWID table. In + ** that case the convertToWithoutRowidTable() routine will replace + ** the Noop with a Goto to jump over the VDBE code generated below. */ + pIndex->tnum = sqlite3VdbeAddOp0(v, OP_Noop); + sqlite3VdbeAddOp3(v, OP_CreateBtree, iDb, iMem, BTREE_BLOBKEY); + + /* Gather the complete text of the CREATE INDEX statement into + ** the zStmt variable + */ + if( pStart ){ + int n = (int)(pParse->sLastToken.z - pName->z) + pParse->sLastToken.n; + if( pName->z[n-1]==';' ) n--; + /* A named index with an explicit CREATE INDEX statement */ + zStmt = sqlite3MPrintf(db, "CREATE%s INDEX %.*s", + onError==OE_None ? "" : " UNIQUE", n, pName->z); + }else{ + /* An automatic index created by a PRIMARY KEY or UNIQUE constraint */ + /* zStmt = sqlite3MPrintf(""); */ + zStmt = 0; + } - /* Fill the index with data and reparse the schema. Code an OP_Expire - ** to invalidate all pre-compiled statements. - */ - if( pTblName ){ - sqlite3RefillIndex(pParse, pIndex, iMem); - sqlite3ChangeCookie(pParse, iDb); - sqlite3VdbeAddParseSchemaOp(v, iDb, - sqlite3MPrintf(db, "name='%q' AND type='index'", pIndex->zName)); - sqlite3VdbeAddOp0(v, OP_Expire); - } + /* Add an entry in sqlite_master for this index + */ + sqlite3NestedParse(pParse, + "INSERT INTO %Q.%s VALUES('index',%Q,%Q,#%d,%Q);", + db->aDb[iDb].zDbSName, MASTER_NAME, + pIndex->zName, + pTab->zName, + iMem, + zStmt + ); + sqlite3DbFree(db, zStmt); - sqlite3VdbeJumpHere(v, pIndex->tnum); + /* Fill the index with data and reparse the schema. Code an OP_Expire + ** to invalidate all pre-compiled statements. + */ + if( pTblName ){ + sqlite3RefillIndex(pParse, pIndex, iMem); + sqlite3ChangeCookie(pParse, iDb); + sqlite3VdbeAddParseSchemaOp(v, iDb, + sqlite3MPrintf(db, "name='%q' AND type='index'", pIndex->zName)); + sqlite3VdbeAddOp2(v, OP_Expire, 0, 1); + } + + sqlite3VdbeJumpHere(v, pIndex->tnum); + } } /* When adding an index to the list of indices for a table, make @@ -105043,10 +109512,15 @@ SQLITE_PRIVATE void sqlite3CreateIndex( } pIndex = 0; } + else if( IN_RENAME_OBJECT ){ + assert( pParse->pNewIndex==0 ); + pParse->pNewIndex = pIndex; + pIndex = 0; + } /* Clean up before exiting */ exit_create_index: - if( pIndex ) freeIndex(db, pIndex); + if( pIndex ) sqlite3FreeIndex(db, pIndex); sqlite3ExprDelete(db, pPIWhere); sqlite3ExprListDelete(db, pList); sqlite3SrcListDelete(db, pTblName); @@ -105215,7 +109689,8 @@ SQLITE_PRIVATE void *sqlite3ArrayAllocate( ** ** A new IdList is returned, or NULL if malloc() fails. */ -SQLITE_PRIVATE IdList *sqlite3IdListAppend(sqlite3 *db, IdList *pList, Token *pToken){ +SQLITE_PRIVATE IdList *sqlite3IdListAppend(Parse *pParse, IdList *pList, Token *pToken){ + sqlite3 *db = pParse->db; int i; if( pList==0 ){ pList = sqlite3DbMallocZero(db, sizeof(IdList) ); @@ -105233,6 +109708,9 @@ SQLITE_PRIVATE IdList *sqlite3IdListAppend(sqlite3 *db, IdList *pList, Token *pT return 0; } pList->a[i].zName = sqlite3NameFromToken(db, pToken); + if( IN_RENAME_OBJECT && pList->a[i].zName ){ + sqlite3RenameTokenMap(pParse, (void*)pList->a[i].zName, pToken); + } return pList; } @@ -105479,6 +109957,12 @@ SQLITE_PRIVATE SrcList *sqlite3SrcListAppendFromTerm( } assert( p->nSrc>0 ); pItem = &p->a[p->nSrc-1]; + assert( (pTable==0)==(pDatabase==0) ); + assert( pItem->zName==0 || pDatabase!=0 ); + if( IN_RENAME_OBJECT && pItem->zName ){ + Token *pToken = (ALWAYS(pDatabase) && pDatabase->z) ? pDatabase : pTable; + sqlite3RenameTokenMap(pParse, pItem->zName, pToken); + } assert( pAlias!=0 ); if( pAlias->n ){ pItem->zAlias = sqlite3NameFromToken(db, pAlias); @@ -105789,16 +110273,16 @@ SQLITE_PRIVATE void sqlite3UniqueConstraint( sqlite3StrAccumInit(&errMsg, pParse->db, 0, 0, 200); if( pIdx->aColExpr ){ - sqlite3XPrintf(&errMsg, "index '%q'", pIdx->zName); + sqlite3_str_appendf(&errMsg, "index '%q'", pIdx->zName); }else{ for(j=0; jnKeyCol; j++){ char *zCol; assert( pIdx->aiColumn[j]>=0 ); zCol = pTab->aCol[pIdx->aiColumn[j]].zName; - if( j ) sqlite3StrAccumAppend(&errMsg, ", ", 2); - sqlite3StrAccumAppendAll(&errMsg, pTab->zName); - sqlite3StrAccumAppend(&errMsg, ".", 1); - sqlite3StrAccumAppendAll(&errMsg, zCol); + if( j ) sqlite3_str_append(&errMsg, ", ", 2); + sqlite3_str_appendall(&errMsg, pTab->zName); + sqlite3_str_append(&errMsg, ".", 1); + sqlite3_str_appendall(&errMsg, zCol); } } zErr = sqlite3StrAccumFinish(&errMsg); @@ -106373,6 +110857,21 @@ static FuncDef *functionSearch( } return 0; } +#ifdef SQLITE_ENABLE_NORMALIZE +SQLITE_PRIVATE FuncDef *sqlite3FunctionSearchN( + int h, /* Hash of the name */ + const char *zFunc, /* Name of function */ + int nFunc /* Length of the name */ +){ + FuncDef *p; + for(p=sqlite3BuiltinFunctions.a[h]; p; p=p->u.pHash){ + if( sqlite3StrNICmp(p->zName, zFunc, nFunc)==0 ){ + return p; + } + } + return 0; +} +#endif /* SQLITE_ENABLE_NORMALIZE */ /* ** Insert a new FuncDef into a FuncDefHash hash table. @@ -106386,7 +110885,7 @@ SQLITE_PRIVATE void sqlite3InsertBuiltinFuncs( FuncDef *pOther; const char *zName = aDef[i].zName; int nName = sqlite3Strlen30(zName); - int h = (zName[0] + nName) % SQLITE_FUNC_HASH_SZ; + int h = SQLITE_FUNC_HASH(zName[0], nName); assert( zName[0]>='a' && zName[0]<='z' ); pOther = functionSearch(h, zName); if( pOther ){ @@ -106465,7 +110964,7 @@ SQLITE_PRIVATE FuncDef *sqlite3FindFunction( */ if( !createFlag && (pBest==0 || (db->mDbFlags & DBFLAG_PreferBuiltin)!=0) ){ bestScore = 0; - h = (sqlite3UpperToLower[(u8)zName[0]] + nName) % SQLITE_FUNC_HASH_SZ; + h = SQLITE_FUNC_HASH(sqlite3UpperToLower[(u8)zName[0]], nName); p = functionSearch(h, zName); while( p ){ int score = matchQuality(p, nArg, enc); @@ -106484,10 +110983,12 @@ SQLITE_PRIVATE FuncDef *sqlite3FindFunction( if( createFlag && bestScorezName = (const char*)&pBest[1]; pBest->nArg = (u16)nArg; pBest->funcFlags = enc; memcpy((char*)&pBest[1], zName, nName+1); + for(z=(u8*)pBest->zName; *z; z++) *z = sqlite3UpperToLower[*z]; pOther = (FuncDef*)sqlite3HashInsert(&db->aFunc, pBest->zName, pBest); if( pOther==pBest ){ sqlite3DbFree(db, pBest); @@ -106611,32 +111112,49 @@ SQLITE_PRIVATE Table *sqlite3SrcListLookup(Parse *pParse, SrcList *pSrc){ return pTab; } +/* Return true if table pTab is read-only. +** +** A table is read-only if any of the following are true: +** +** 1) It is a virtual table and no implementation of the xUpdate method +** has been provided +** +** 2) It is a system table (i.e. sqlite_master), this call is not +** part of a nested parse and writable_schema pragma has not +** been specified +** +** 3) The table is a shadow table, the database connection is in +** defensive mode, and the current sqlite3_prepare() +** is for a top-level SQL statement. +*/ +static int tabIsReadOnly(Parse *pParse, Table *pTab){ + sqlite3 *db; + if( IsVirtual(pTab) ){ + return sqlite3GetVTable(pParse->db, pTab)->pMod->pModule->xUpdate==0; + } + if( (pTab->tabFlags & (TF_Readonly|TF_Shadow))==0 ) return 0; + db = pParse->db; + if( (pTab->tabFlags & TF_Readonly)!=0 ){ + return sqlite3WritableSchema(db)==0 && pParse->nested==0; + } + assert( pTab->tabFlags & TF_Shadow ); + return (db->flags & SQLITE_Defensive)!=0 +#ifndef SQLITE_OMIT_VIRTUALTABLE + && db->pVtabCtx==0 +#endif + && db->nVdbeExec==0; +} + /* ** Check to make sure the given table is writable. If it is not ** writable, generate an error message and return 1. If it is ** writable return 0; */ SQLITE_PRIVATE int sqlite3IsReadOnly(Parse *pParse, Table *pTab, int viewOk){ - /* A table is not writable under the following circumstances: - ** - ** 1) It is a virtual table and no implementation of the xUpdate method - ** has been provided, or - ** 2) It is a system table (i.e. sqlite_master), this call is not - ** part of a nested parse and writable_schema pragma has not - ** been specified. - ** - ** In either case leave an error message in pParse and return non-zero. - */ - if( ( IsVirtual(pTab) - && sqlite3GetVTable(pParse->db, pTab)->pMod->pModule->xUpdate==0 ) - || ( (pTab->tabFlags & TF_Readonly)!=0 - && (pParse->db->flags & SQLITE_WriteSchema)==0 - && pParse->nested==0 ) - ){ + if( tabIsReadOnly(pParse, pTab) ){ sqlite3ErrorMsg(pParse, "table %s may not be modified", pTab->zName); return 1; } - #ifndef SQLITE_OMIT_VIEW if( !viewOk && pTab->pSelect ){ sqlite3ErrorMsg(pParse,"cannot modify %s because it is a view",pTab->zName); @@ -106805,7 +111323,7 @@ SQLITE_PRIVATE void sqlite3DeleteFrom( AuthContext sContext; /* Authorization context */ NameContext sNC; /* Name context to resolve expressions in */ int iDb; /* Database number */ - int memCnt = -1; /* Memory cell used for change counting */ + int memCnt = 0; /* Memory cell used for change counting */ int rcauth; /* Value returned by authorization callback */ int eOnePass; /* ONEPASS_OFF or _SINGLE or _MULTI */ int aiCurOnePass[2]; /* The write cursors opened by WHERE_ONEPASS */ @@ -106910,7 +111428,7 @@ SQLITE_PRIVATE void sqlite3DeleteFrom( goto delete_from_cleanup; } if( pParse->nested==0 ) sqlite3VdbeCountChanges(v); - sqlite3BeginWriteOperation(pParse, 1, iDb); + sqlite3BeginWriteOperation(pParse, bComplex, iDb); /* If we are trying to delete from a view, realize that view into ** an ephemeral table. @@ -106938,7 +111456,10 @@ SQLITE_PRIVATE void sqlite3DeleteFrom( /* Initialize the counter of the number of rows deleted, if ** we are counting rows. */ - if( db->flags & SQLITE_CountRows ){ + if( (db->flags & SQLITE_CountRows)!=0 + && !pParse->nested + && !pParse->pTriggerTab + ){ memCnt = ++pParse->nMem; sqlite3VdbeAddOp2(v, OP_Integer, 0, memCnt); } @@ -106966,7 +111487,7 @@ SQLITE_PRIVATE void sqlite3DeleteFrom( assert( !isView ); sqlite3TableLock(pParse, iDb, pTab->tnum, 1, pTab->zName); if( HasRowid(pTab) ){ - sqlite3VdbeAddOp4(v, OP_Clear, pTab->tnum, iDb, memCnt, + sqlite3VdbeAddOp4(v, OP_Clear, pTab->tnum, iDb, memCnt ? memCnt : -1, pTab->zName, P4_STATIC); } for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ @@ -107011,9 +111532,10 @@ SQLITE_PRIVATE void sqlite3DeleteFrom( eOnePass = sqlite3WhereOkOnePass(pWInfo, aiCurOnePass); assert( IsVirtual(pTab)==0 || eOnePass!=ONEPASS_MULTI ); assert( IsVirtual(pTab) || bComplex || eOnePass!=ONEPASS_OFF ); + if( eOnePass!=ONEPASS_SINGLE ) sqlite3MultiWrite(pParse); /* Keep track of the number of rows to be deleted */ - if( db->flags & SQLITE_CountRows ){ + if( memCnt ){ sqlite3VdbeAddOp2(v, OP_AddImm, memCnt, 1); } @@ -107026,9 +111548,8 @@ SQLITE_PRIVATE void sqlite3DeleteFrom( } iKey = iPk; }else{ - iKey = pParse->nMem + 1; - iKey = sqlite3ExprCodeGetColumn(pParse, pTab, -1, iTabCur, iKey, 0); - if( iKey>pParse->nMem ) pParse->nMem = iKey; + iKey = ++pParse->nMem; + sqlite3ExprCodeGetColumnOfTable(v, pTab, iTabCur, -1, iKey); } if( eOnePass!=ONEPASS_OFF ){ @@ -107116,13 +111637,16 @@ SQLITE_PRIVATE void sqlite3DeleteFrom( if( IsVirtual(pTab) ){ const char *pVTab = (const char *)sqlite3GetVTable(db, pTab); sqlite3VtabMakeWritable(pParse, pTab); - sqlite3VdbeAddOp4(v, OP_VUpdate, 0, 1, iKey, pVTab, P4_VTAB); - sqlite3VdbeChangeP5(v, OE_Abort); assert( eOnePass==ONEPASS_OFF || eOnePass==ONEPASS_SINGLE ); sqlite3MayAbort(pParse); - if( eOnePass==ONEPASS_SINGLE && sqlite3IsToplevel(pParse) ){ - pParse->isMultiWrite = 0; + if( eOnePass==ONEPASS_SINGLE ){ + sqlite3VdbeAddOp1(v, OP_Close, iTabCur); + if( sqlite3IsToplevel(pParse) ){ + pParse->isMultiWrite = 0; + } } + sqlite3VdbeAddOp4(v, OP_VUpdate, 0, 1, iKey, pVTab, P4_VTAB); + sqlite3VdbeChangeP5(v, OE_Abort); }else #endif { @@ -107156,7 +111680,7 @@ SQLITE_PRIVATE void sqlite3DeleteFrom( ** generating code because of a call to sqlite3NestedParse(), do not ** invoke the callback function. */ - if( (db->flags&SQLITE_CountRows) && !pParse->nested && !pParse->pTriggerTab ){ + if( memCnt ){ sqlite3VdbeAddOp2(v, OP_ResultRow, memCnt, 1); sqlite3VdbeSetNumCols(v, 1); sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "rows deleted", SQLITE_STATIC); @@ -107458,7 +111982,6 @@ SQLITE_PRIVATE int sqlite3GenerateIndexKey( if( pIdx->pPartIdxWhere ){ *piPartIdxLabel = sqlite3VdbeMakeLabel(v); pParse->iSelfTab = iDataCur + 1; - sqlite3ExprCachePush(pParse); sqlite3ExprIfFalseDup(pParse, pIdx->pPartIdxWhere, *piPartIdxLabel, SQLITE_JUMPIFNULL); pParse->iSelfTab = 0; @@ -107505,7 +112028,6 @@ SQLITE_PRIVATE int sqlite3GenerateIndexKey( SQLITE_PRIVATE void sqlite3ResolvePartIdxLabel(Parse *pParse, int iLabel){ if( iLabel ){ sqlite3VdbeResolveLabel(pParse->pVdbe, iLabel); - sqlite3ExprCachePop(pParse); } } @@ -107548,6 +112070,8 @@ static CollSeq *sqlite3GetFuncCollSeq(sqlite3_context *context){ ** iteration of the aggregate loop. */ static void sqlite3SkipAccumulatorLoad(sqlite3_context *context){ + assert( context->isError<=0 ); + context->isError = -1; context->skipFlag = 1; } @@ -107614,8 +112138,6 @@ static void lengthFunc( int argc, sqlite3_value **argv ){ - int len; - assert( argc==1 ); UNUSED_PARAMETER(argc); switch( sqlite3_value_type(argv[0]) ){ @@ -107627,13 +112149,17 @@ static void lengthFunc( } case SQLITE_TEXT: { const unsigned char *z = sqlite3_value_text(argv[0]); + const unsigned char *z0; + unsigned char c; if( z==0 ) return; - len = 0; - while( *z ){ - len++; - SQLITE_SKIP_UTF8(z); + z0 = z; + while( (c = *z)!=0 ){ + z++; + if( c>=0xc0 ){ + while( (*z & 0xc0)==0x80 ){ z++; z0++; } + } } - sqlite3_result_int(context, len); + sqlite3_result_int(context, (int)(z-z0)); break; } default: { @@ -107760,7 +112286,7 @@ static void printfFunc( x.apArg = argv+1; sqlite3StrAccumInit(&str, db, 0, 0, db->aLimit[SQLITE_LIMIT_LENGTH]); str.printfFlags = SQLITE_PRINTF_SQLFUNC; - sqlite3XPrintf(&str, zFormat, &x); + sqlite3_str_appendf(&str, zFormat, &x); n = str.nChar; sqlite3_result_text(context, sqlite3StrAccumFinish(&str), n, SQLITE_DYNAMIC); @@ -108708,6 +113234,8 @@ static void replaceFunc( i64 nOut; /* Maximum size of zOut */ int loopLimit; /* Last zStr[] that might match zPattern[] */ int i, j; /* Loop counters */ + unsigned cntExpand; /* Number zOut expansions */ + sqlite3 *db = sqlite3_context_db_handle(context); assert( argc==3 ); UNUSED_PARAMETER(argc); @@ -108739,33 +113267,40 @@ static void replaceFunc( return; } loopLimit = nStr - nPattern; + cntExpand = 0; for(i=j=0; i<=loopLimit; i++){ if( zStr[i]!=zPattern[0] || memcmp(&zStr[i], zPattern, nPattern) ){ zOut[j++] = zStr[i]; }else{ - u8 *zOld; - sqlite3 *db = sqlite3_context_db_handle(context); - nOut += nRep - nPattern; - testcase( nOut-1==db->aLimit[SQLITE_LIMIT_LENGTH] ); - testcase( nOut-2==db->aLimit[SQLITE_LIMIT_LENGTH] ); - if( nOut-1>db->aLimit[SQLITE_LIMIT_LENGTH] ){ - sqlite3_result_error_toobig(context); - sqlite3_free(zOut); - return; - } - zOld = zOut; - zOut = sqlite3_realloc64(zOut, (int)nOut); - if( zOut==0 ){ - sqlite3_result_error_nomem(context); - sqlite3_free(zOld); - return; + if( nRep>nPattern ){ + nOut += nRep - nPattern; + testcase( nOut-1==db->aLimit[SQLITE_LIMIT_LENGTH] ); + testcase( nOut-2==db->aLimit[SQLITE_LIMIT_LENGTH] ); + if( nOut-1>db->aLimit[SQLITE_LIMIT_LENGTH] ){ + sqlite3_result_error_toobig(context); + sqlite3_free(zOut); + return; + } + cntExpand++; + if( (cntExpand&(cntExpand-1))==0 ){ + /* Grow the size of the output buffer only on substitutions + ** whose index is a power of two: 1, 2, 4, 8, 16, 32, ... */ + u8 *zOld; + zOld = zOut; + zOut = sqlite3_realloc64(zOut, (int)nOut + (nOut - nStr - 1)); + if( zOut==0 ){ + sqlite3_result_error_nomem(context); + sqlite3_free(zOld); + return; + } + } } memcpy(&zOut[j], zRep, nRep); j += nRep; i += nPattern-1; } } - assert( j+nStr-i+1==nOut ); + assert( j+nStr-i+1<=nOut ); memcpy(&zOut[j], &zStr[i], nStr-i); j += nStr - i; assert( j<=nOut ); @@ -109005,7 +113540,7 @@ static void sumStep(sqlite3_context *context, int argc, sqlite3_value **argv){ i64 v = sqlite3_value_int64(argv[0]); p->rSum += v; if( (p->approx|p->overflow)==0 && sqlite3AddInt64(&p->iSum, v) ){ - p->overflow = 1; + p->approx = p->overflow = 1; } }else{ p->rSum += sqlite3_value_double(argv[0]); @@ -109013,6 +113548,32 @@ static void sumStep(sqlite3_context *context, int argc, sqlite3_value **argv){ } } } +#ifndef SQLITE_OMIT_WINDOWFUNC +static void sumInverse(sqlite3_context *context, int argc, sqlite3_value**argv){ + SumCtx *p; + int type; + assert( argc==1 ); + UNUSED_PARAMETER(argc); + p = sqlite3_aggregate_context(context, sizeof(*p)); + type = sqlite3_value_numeric_type(argv[0]); + /* p is always non-NULL because sumStep() will have been called first + ** to initialize it */ + if( ALWAYS(p) && type!=SQLITE_NULL ){ + assert( p->cnt>0 ); + p->cnt--; + assert( type==SQLITE_INTEGER || p->approx ); + if( type==SQLITE_INTEGER && p->approx==0 ){ + i64 v = sqlite3_value_int64(argv[0]); + p->rSum -= v; + p->iSum -= v; + }else{ + p->rSum -= sqlite3_value_double(argv[0]); + } + } +} +#else +# define sumInverse 0 +#endif /* SQLITE_OMIT_WINDOWFUNC */ static void sumFinalize(sqlite3_context *context){ SumCtx *p; p = sqlite3_aggregate_context(context, 0); @@ -109047,6 +113608,9 @@ static void totalFinalize(sqlite3_context *context){ typedef struct CountCtx CountCtx; struct CountCtx { i64 n; +#ifdef SQLITE_DEBUG + int bInverse; /* True if xInverse() ever called */ +#endif }; /* @@ -109064,7 +113628,7 @@ static void countStep(sqlite3_context *context, int argc, sqlite3_value **argv){ ** sure it still operates correctly, verify that its count agrees with our ** internal count when using count(*) and when the total count can be ** expressed as a 32-bit integer. */ - assert( argc==1 || p==0 || p->n>0x7fffffff + assert( argc==1 || p==0 || p->n>0x7fffffff || p->bInverse || p->n==sqlite3_aggregate_count(context) ); #endif } @@ -109073,6 +113637,21 @@ static void countFinalize(sqlite3_context *context){ p = sqlite3_aggregate_context(context, 0); sqlite3_result_int64(context, p ? p->n : 0); } +#ifndef SQLITE_OMIT_WINDOWFUNC +static void countInverse(sqlite3_context *ctx, int argc, sqlite3_value **argv){ + CountCtx *p; + p = sqlite3_aggregate_context(ctx, sizeof(*p)); + /* p is always non-NULL since countStep() will have been called first */ + if( (argc==0 || SQLITE_NULL!=sqlite3_value_type(argv[0])) && ALWAYS(p) ){ + p->n--; +#ifdef SQLITE_DEBUG + p->bInverse = 1; +#endif + } +} +#else +# define countInverse 0 +#endif /* SQLITE_OMIT_WINDOWFUNC */ /* ** Routines to implement min() and max() aggregate functions. @@ -109089,7 +113668,7 @@ static void minmaxStep( pBest = (Mem *)sqlite3_aggregate_context(context, sizeof(*pBest)); if( !pBest ) return; - if( sqlite3_value_type(argv[0])==SQLITE_NULL ){ + if( sqlite3_value_type(pArg)==SQLITE_NULL ){ if( pBest->flags ) sqlite3SkipAccumulatorLoad(context); }else if( pBest->flags ){ int max; @@ -109115,16 +113694,26 @@ static void minmaxStep( sqlite3VdbeMemCopy(pBest, pArg); } } -static void minMaxFinalize(sqlite3_context *context){ +static void minMaxValueFinalize(sqlite3_context *context, int bValue){ sqlite3_value *pRes; pRes = (sqlite3_value *)sqlite3_aggregate_context(context, 0); if( pRes ){ if( pRes->flags ){ sqlite3_result_value(context, pRes); } - sqlite3VdbeMemRelease(pRes); + if( bValue==0 ) sqlite3VdbeMemRelease(pRes); } } +#ifndef SQLITE_OMIT_WINDOWFUNC +static void minMaxValue(sqlite3_context *context){ + minMaxValueFinalize(context, 1); +} +#else +# define minMaxValue 0 +#endif /* SQLITE_OMIT_WINDOWFUNC */ +static void minMaxFinalize(sqlite3_context *context){ + minMaxValueFinalize(context, 0); +} /* ** group_concat(EXPR, ?SEPARATOR?) @@ -109154,20 +113743,52 @@ static void groupConcatStep( zSep = ","; nSep = 1; } - if( zSep ) sqlite3StrAccumAppend(pAccum, zSep, nSep); + if( zSep ) sqlite3_str_append(pAccum, zSep, nSep); } zVal = (char*)sqlite3_value_text(argv[0]); nVal = sqlite3_value_bytes(argv[0]); - if( zVal ) sqlite3StrAccumAppend(pAccum, zVal, nVal); + if( zVal ) sqlite3_str_append(pAccum, zVal, nVal); } } +#ifndef SQLITE_OMIT_WINDOWFUNC +static void groupConcatInverse( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + int n; + StrAccum *pAccum; + assert( argc==1 || argc==2 ); + if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return; + pAccum = (StrAccum*)sqlite3_aggregate_context(context, sizeof(*pAccum)); + /* pAccum is always non-NULL since groupConcatStep() will have always + ** run frist to initialize it */ + if( ALWAYS(pAccum) ){ + n = sqlite3_value_bytes(argv[0]); + if( argc==2 ){ + n += sqlite3_value_bytes(argv[1]); + }else{ + n++; + } + if( n>=(int)pAccum->nChar ){ + pAccum->nChar = 0; + }else{ + pAccum->nChar -= n; + memmove(pAccum->zText, &pAccum->zText[n], pAccum->nChar); + } + if( pAccum->nChar==0 ) pAccum->mxAlloc = 0; + } +} +#else +# define groupConcatInverse 0 +#endif /* SQLITE_OMIT_WINDOWFUNC */ static void groupConcatFinalize(sqlite3_context *context){ StrAccum *pAccum; pAccum = sqlite3_aggregate_context(context, 0); if( pAccum ){ - if( pAccum->accError==STRACCUM_TOOBIG ){ + if( pAccum->accError==SQLITE_TOOBIG ){ sqlite3_result_error_toobig(context); - }else if( pAccum->accError==STRACCUM_NOMEM ){ + }else if( pAccum->accError==SQLITE_NOMEM ){ sqlite3_result_error_nomem(context); }else{ sqlite3_result_text(context, sqlite3StrAccumFinish(pAccum), -1, @@ -109175,6 +113796,24 @@ static void groupConcatFinalize(sqlite3_context *context){ } } } +#ifndef SQLITE_OMIT_WINDOWFUNC +static void groupConcatValue(sqlite3_context *context){ + sqlite3_str *pAccum; + pAccum = (sqlite3_str*)sqlite3_aggregate_context(context, 0); + if( pAccum ){ + if( pAccum->accError==SQLITE_TOOBIG ){ + sqlite3_result_error_toobig(context); + }else if( pAccum->accError==SQLITE_NOMEM ){ + sqlite3_result_error_nomem(context); + }else{ + const char *zText = sqlite3_str_value(pAccum); + sqlite3_result_text(context, zText, -1, SQLITE_TRANSIENT); + } + } +} +#else +# define groupConcatValue 0 +#endif /* SQLITE_OMIT_WINDOWFUNC */ /* ** This routine does per-connection function registration. Most @@ -109212,10 +113851,10 @@ SQLITE_PRIVATE void sqlite3RegisterLikeFunctions(sqlite3 *db, int caseSensitive) }else{ pInfo = (struct compareInfo*)&likeInfoNorm; } - sqlite3CreateFunc(db, "like", 2, SQLITE_UTF8, pInfo, likeFunc, 0, 0, 0); - sqlite3CreateFunc(db, "like", 3, SQLITE_UTF8, pInfo, likeFunc, 0, 0, 0); + sqlite3CreateFunc(db, "like", 2, SQLITE_UTF8, pInfo, likeFunc, 0, 0, 0, 0, 0); + sqlite3CreateFunc(db, "like", 3, SQLITE_UTF8, pInfo, likeFunc, 0, 0, 0, 0, 0); sqlite3CreateFunc(db, "glob", 2, SQLITE_UTF8, - (struct compareInfo*)&globInfo, likeFunc, 0, 0, 0); + (struct compareInfo*)&globInfo, likeFunc, 0, 0, 0, 0, 0); setLikeOptFlag(db, "glob", SQLITE_FUNC_LIKE | SQLITE_FUNC_CASE); setLikeOptFlag(db, "like", caseSensitive ? (SQLITE_FUNC_LIKE | SQLITE_FUNC_CASE) : SQLITE_FUNC_LIKE); @@ -109324,11 +113963,11 @@ SQLITE_PRIVATE void sqlite3RegisterBuiltinFunctions(void){ FUNCTION(trim, 2, 3, 0, trimFunc ), FUNCTION(min, -1, 0, 1, minmaxFunc ), FUNCTION(min, 0, 0, 1, 0 ), - AGGREGATE2(min, 1, 0, 1, minmaxStep, minMaxFinalize, + WAGGREGATE(min, 1, 0, 1, minmaxStep, minMaxFinalize, minMaxValue, 0, SQLITE_FUNC_MINMAX ), FUNCTION(max, -1, 1, 1, minmaxFunc ), FUNCTION(max, 0, 1, 1, 0 ), - AGGREGATE2(max, 1, 1, 1, minmaxStep, minMaxFinalize, + WAGGREGATE(max, 1, 1, 1, minmaxStep, minMaxFinalize, minMaxValue, 0, SQLITE_FUNC_MINMAX ), FUNCTION2(typeof, 1, 0, 0, typeofFunc, SQLITE_FUNC_TYPEOF), FUNCTION2(length, 1, 0, 0, lengthFunc, SQLITE_FUNC_LENGTH), @@ -109359,14 +113998,17 @@ SQLITE_PRIVATE void sqlite3RegisterBuiltinFunctions(void){ FUNCTION(zeroblob, 1, 0, 0, zeroblobFunc ), FUNCTION(substr, 2, 0, 0, substrFunc ), FUNCTION(substr, 3, 0, 0, substrFunc ), - AGGREGATE(sum, 1, 0, 0, sumStep, sumFinalize ), - AGGREGATE(total, 1, 0, 0, sumStep, totalFinalize ), - AGGREGATE(avg, 1, 0, 0, sumStep, avgFinalize ), - AGGREGATE2(count, 0, 0, 0, countStep, countFinalize, - SQLITE_FUNC_COUNT ), - AGGREGATE(count, 1, 0, 0, countStep, countFinalize ), - AGGREGATE(group_concat, 1, 0, 0, groupConcatStep, groupConcatFinalize), - AGGREGATE(group_concat, 2, 0, 0, groupConcatStep, groupConcatFinalize), + WAGGREGATE(sum, 1,0,0, sumStep, sumFinalize, sumFinalize, sumInverse, 0), + WAGGREGATE(total, 1,0,0, sumStep,totalFinalize,totalFinalize,sumInverse, 0), + WAGGREGATE(avg, 1,0,0, sumStep, avgFinalize, avgFinalize, sumInverse, 0), + WAGGREGATE(count, 0,0,0, countStep, + countFinalize, countFinalize, countInverse, SQLITE_FUNC_COUNT ), + WAGGREGATE(count, 1,0,0, countStep, + countFinalize, countFinalize, countInverse, 0 ), + WAGGREGATE(group_concat, 1, 0, 0, groupConcatStep, + groupConcatFinalize, groupConcatValue, groupConcatInverse, 0), + WAGGREGATE(group_concat, 2, 0, 0, groupConcatStep, + groupConcatFinalize, groupConcatValue, groupConcatInverse, 0), LIKEFUNC(glob, 2, &globInfo, SQLITE_FUNC_LIKE|SQLITE_FUNC_CASE), #ifdef SQLITE_CASE_SENSITIVE_LIKE @@ -109386,6 +114028,7 @@ SQLITE_PRIVATE void sqlite3RegisterBuiltinFunctions(void){ #ifndef SQLITE_OMIT_ALTERTABLE sqlite3AlterFunctions(); #endif + sqlite3WindowFunctions(); #if defined(SQLITE_ENABLE_STAT3) || defined(SQLITE_ENABLE_STAT4) sqlite3AnalyzeFunctions(); #endif @@ -109744,6 +114387,12 @@ static void fkLookupParent( int iCur = pParse->nTab - 1; /* Cursor number to use */ int iOk = sqlite3VdbeMakeLabel(v); /* jump here if parent key found */ + sqlite3VdbeVerifyAbortable(v, + (!pFKey->isDeferred + && !(pParse->db->flags & SQLITE_DeferFKs) + && !pParse->pToplevel + && !pParse->isMultiWrite) ? OE_Abort : OE_Ignore); + /* If nIncr is less than zero, then check at runtime if there are any ** outstanding constraints to resolve. If there are not, there is no need ** to check if deleting this row resolves any outstanding violations. @@ -109909,7 +114558,7 @@ static Expr *exprTableColumn( ){ Expr *pExpr = sqlite3Expr(db, TK_COLUMN, 0); if( pExpr ){ - pExpr->pTab = pTab; + pExpr->y.pTab = pTab; pExpr->iTable = iCursor; pExpr->iColumn = iCol; } @@ -110117,11 +114766,12 @@ static void fkTriggerDelete(sqlite3 *dbMem, Trigger *p){ */ SQLITE_PRIVATE void sqlite3FkDropTable(Parse *pParse, SrcList *pName, Table *pTab){ sqlite3 *db = pParse->db; - if( (db->flags&SQLITE_ForeignKeys) && !IsVirtual(pTab) && !pTab->pSelect ){ + if( (db->flags&SQLITE_ForeignKeys) && !IsVirtual(pTab) ){ int iSkip = 0; Vdbe *v = sqlite3GetVdbe(pParse); assert( v ); /* VDBE has already been allocated */ + assert( pTab->pSelect==0 ); /* Not a view */ if( sqlite3FkReferences(pTab)==0 ){ /* Search for a deferred foreign key constraint for which this table ** is the child table. If one cannot be found, return without @@ -110151,6 +114801,7 @@ SQLITE_PRIVATE void sqlite3FkDropTable(Parse *pParse, SrcList *pName, Table *pTa ** constraints are violated. */ if( (db->flags & SQLITE_DeferFKs)==0 ){ + sqlite3VdbeVerifyAbortable(v, OE_Abort); sqlite3VdbeAddOp2(v, OP_FkIfZero, 0, sqlite3VdbeCurrentAddr(v)+2); VdbeCoverage(v); sqlite3HaltConstraint(pParse, SQLITE_CONSTRAINT_FOREIGNKEY, @@ -110983,7 +115634,8 @@ SQLITE_PRIVATE void sqlite3TableAffinity(Vdbe *v, Table *pTab, int iReg){ }while( i>=0 && zColAff[i]==SQLITE_AFF_BLOB ); pTab->zColAff = zColAff; } - i = sqlite3Strlen30(zColAff); + assert( zColAff!=0 ); + i = sqlite3Strlen30NN(zColAff); if( i ){ if( iReg ){ sqlite3VdbeAddOp4(v, OP_Affinity, iReg, i, 0, zColAff, i); @@ -111047,11 +115699,12 @@ static int readsTable(Parse *p, int iDb, Table *pTab){ ** first use of table pTab. On 2nd and subsequent uses, the original ** AutoincInfo structure is used. ** -** Three memory locations are allocated: +** Four consecutive registers are allocated: ** -** (1) Register to hold the name of the pTab table. -** (2) Register to hold the maximum ROWID of pTab. -** (3) Register to hold the rowid in sqlite_sequence of pTab +** (1) The name of the pTab table. +** (2) The maximum ROWID of pTab. +** (3) The rowid in sqlite_sequence of pTab +** (4) The original value of the max ROWID in pTab, or NULL if none ** ** The 2nd register is the one that is returned. That is all the ** insert routine needs to know about. @@ -111062,11 +115715,26 @@ static int autoIncBegin( Table *pTab /* The table we are writing to */ ){ int memId = 0; /* Register holding maximum rowid */ + assert( pParse->db->aDb[iDb].pSchema!=0 ); if( (pTab->tabFlags & TF_Autoincrement)!=0 && (pParse->db->mDbFlags & DBFLAG_Vacuum)==0 ){ Parse *pToplevel = sqlite3ParseToplevel(pParse); AutoincInfo *pInfo; + Table *pSeqTab = pParse->db->aDb[iDb].pSchema->pSeqTab; + + /* Verify that the sqlite_sequence table exists and is an ordinary + ** rowid table with exactly two columns. + ** Ticket d8dc2b3a58cd5dc2918a1d4acb 2018-05-23 */ + if( pSeqTab==0 + || !HasRowid(pSeqTab) + || IsVirtual(pSeqTab) + || pSeqTab->nCol!=2 + ){ + pParse->nErr++; + pParse->rc = SQLITE_CORRUPT_SEQUENCE; + return 0; + } pInfo = pToplevel->pAinc; while( pInfo && pInfo->pTab!=pTab ){ pInfo = pInfo->pNext; } @@ -111079,7 +115747,7 @@ static int autoIncBegin( pInfo->iDb = iDb; pToplevel->nMem++; /* Register to hold name of table */ pInfo->regCtr = ++pToplevel->nMem; /* Max rowid register */ - pToplevel->nMem++; /* Rowid in sqlite_sequence */ + pToplevel->nMem +=2; /* Rowid in sqlite_sequence + orig max val */ } memId = pInfo->regCtr; } @@ -111107,15 +115775,17 @@ SQLITE_PRIVATE void sqlite3AutoincrementBegin(Parse *pParse){ static const int iLn = VDBE_OFFSET_LINENO(2); static const VdbeOpList autoInc[] = { /* 0 */ {OP_Null, 0, 0, 0}, - /* 1 */ {OP_Rewind, 0, 9, 0}, + /* 1 */ {OP_Rewind, 0, 10, 0}, /* 2 */ {OP_Column, 0, 0, 0}, - /* 3 */ {OP_Ne, 0, 7, 0}, + /* 3 */ {OP_Ne, 0, 9, 0}, /* 4 */ {OP_Rowid, 0, 0, 0}, /* 5 */ {OP_Column, 0, 1, 0}, - /* 6 */ {OP_Goto, 0, 9, 0}, - /* 7 */ {OP_Next, 0, 2, 0}, - /* 8 */ {OP_Integer, 0, 0, 0}, - /* 9 */ {OP_Close, 0, 0, 0} + /* 6 */ {OP_AddImm, 0, 0, 0}, + /* 7 */ {OP_Copy, 0, 0, 0}, + /* 8 */ {OP_Goto, 0, 11, 0}, + /* 9 */ {OP_Next, 0, 2, 0}, + /* 10 */ {OP_Integer, 0, 0, 0}, + /* 11 */ {OP_Close, 0, 0, 0} }; VdbeOp *aOp; pDb = &db->aDb[p->iDb]; @@ -111126,14 +115796,17 @@ SQLITE_PRIVATE void sqlite3AutoincrementBegin(Parse *pParse){ aOp = sqlite3VdbeAddOpList(v, ArraySize(autoInc), autoInc, iLn); if( aOp==0 ) break; aOp[0].p2 = memId; - aOp[0].p3 = memId+1; + aOp[0].p3 = memId+2; aOp[2].p3 = memId; aOp[3].p1 = memId-1; aOp[3].p3 = memId; aOp[3].p5 = SQLITE_JUMPIFNULL; aOp[4].p2 = memId+1; aOp[5].p3 = memId; - aOp[8].p2 = memId; + aOp[6].p1 = memId; + aOp[7].p2 = memId+2; + aOp[7].p1 = memId; + aOp[10].p2 = memId; } } @@ -111180,6 +115853,8 @@ static SQLITE_NOINLINE void autoIncrementEnd(Parse *pParse){ iRec = sqlite3GetTempReg(pParse); assert( sqlite3SchemaMutexHeld(db, 0, pDb->pSchema) ); + sqlite3VdbeAddOp3(v, OP_Le, memId+2, sqlite3VdbeCurrentAddr(v)+7, memId); + VdbeCoverage(v); sqlite3OpenTable(pParse, 0, p->iDb, pDb->pSchema->pSeqTab, OP_OpenWrite); aOp = sqlite3VdbeAddOpList(v, ArraySize(autoIncEnd), autoIncEnd, iLn); if( aOp==0 ) break; @@ -111317,7 +115992,8 @@ SQLITE_PRIVATE void sqlite3Insert( SrcList *pTabList, /* Name of table into which we are inserting */ Select *pSelect, /* A SELECT statement to use as the data source */ IdList *pColumn, /* Column names corresponding to IDLIST. */ - int onError /* How to handle constraint errors */ + int onError, /* How to handle constraint errors */ + Upsert *pUpsert /* ON CONFLICT clauses for upsert, or NULL */ ){ sqlite3 *db; /* The main database structure */ Table *pTab; /* The table to insert into. aka TABLE */ @@ -111612,7 +116288,10 @@ SQLITE_PRIVATE void sqlite3Insert( /* Initialize the count of rows to be inserted */ - if( db->flags & SQLITE_CountRows ){ + if( (db->flags & SQLITE_CountRows)!=0 + && !pParse->nested + && !pParse->pTriggerTab + ){ regRowCount = ++pParse->nMem; sqlite3VdbeAddOp2(v, OP_Integer, 0, regRowCount); } @@ -111632,6 +116311,19 @@ SQLITE_PRIVATE void sqlite3Insert( pParse->nMem += pIdx->nColumn; } } +#ifndef SQLITE_OMIT_UPSERT + if( pUpsert ){ + pTabList->a[0].iCursor = iDataCur; + pUpsert->pUpsertSrc = pTabList; + pUpsert->regData = regData; + pUpsert->iDataCur = iDataCur; + pUpsert->iIdxCur = iIdxCur; + if( pUpsert->pUpsertTarget ){ + sqlite3UpsertAnalyzeTarget(pParse, pTabList, pUpsert); + } + } +#endif + /* This is the top of the main insertion loop */ if( useTempTable ){ @@ -111834,7 +116526,7 @@ SQLITE_PRIVATE void sqlite3Insert( int isReplace; /* Set to true if constraints may cause a replace */ int bUseSeek; /* True to use OPFLAG_SEEKRESULT */ sqlite3GenerateConstraintChecks(pParse, pTab, aRegIdx, iDataCur, iIdxCur, - regIns, 0, ipkColumn>=0, onError, endOfLoop, &isReplace, 0 + regIns, 0, ipkColumn>=0, onError, endOfLoop, &isReplace, 0, pUpsert ); sqlite3FkCheck(pParse, pTab, 0, regIns, 0, 0); @@ -111857,7 +116549,7 @@ SQLITE_PRIVATE void sqlite3Insert( /* Update the count of rows that are inserted */ - if( (db->flags & SQLITE_CountRows)!=0 ){ + if( regRowCount ){ sqlite3VdbeAddOp2(v, OP_AddImm, regRowCount, 1); } @@ -111894,7 +116586,7 @@ SQLITE_PRIVATE void sqlite3Insert( ** generating code because of a call to sqlite3NestedParse(), do not ** invoke the callback function. */ - if( (db->flags&SQLITE_CountRows) && !pParse->nested && !pParse->pTriggerTab ){ + if( regRowCount ){ sqlite3VdbeAddOp2(v, OP_ResultRow, regRowCount, 1); sqlite3VdbeSetNumCols(v, 1); sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "rows inserted", SQLITE_STATIC); @@ -111903,6 +116595,7 @@ SQLITE_PRIVATE void sqlite3Insert( insert_cleanup: sqlite3SrcListDelete(db, pTabList); sqlite3ExprListDelete(db, pList); + sqlite3UpsertDelete(db, pUpsert); sqlite3SelectDelete(db, pSelect); sqlite3IdListDelete(db, pColumn); sqlite3DbFree(db, aRegIdx); @@ -111922,14 +116615,15 @@ SQLITE_PRIVATE void sqlite3Insert( #endif /* -** Meanings of bits in of pWalker->eCode for checkConstraintUnchanged() +** Meanings of bits in of pWalker->eCode for +** sqlite3ExprReferencesUpdatedColumn() */ #define CKCNSTRNT_COLUMN 0x01 /* CHECK constraint uses a changing column */ #define CKCNSTRNT_ROWID 0x02 /* CHECK constraint references the ROWID */ -/* This is the Walker callback from checkConstraintUnchanged(). Set -** bit 0x01 of pWalker->eCode if -** pWalker->eCode to 0 if this expression node references any of the +/* This is the Walker callback from sqlite3ExprReferencesUpdatedColumn(). +* Set bit 0x01 of pWalker->eCode if pWalker->eCode to 0 and if this +** expression node references any of the ** columns that are being modifed by an UPDATE statement. */ static int checkConstraintExprNode(Walker *pWalker, Expr *pExpr){ @@ -111951,12 +116645,21 @@ static int checkConstraintExprNode(Walker *pWalker, Expr *pExpr){ ** only columns that are modified by the UPDATE are those for which ** aiChng[i]>=0, and also the ROWID is modified if chngRowid is true. ** -** Return true if CHECK constraint pExpr does not use any of the +** Return true if CHECK constraint pExpr uses any of the ** changing columns (or the rowid if it is changing). In other words, -** return true if this CHECK constraint can be skipped when validating +** return true if this CHECK constraint must be validated for ** the new row in the UPDATE statement. +** +** 2018-09-15: pExpr might also be an expression for an index-on-expressions. +** The operation of this routine is the same - return true if an only if +** the expression uses one or more of columns identified by the second and +** third arguments. */ -static int checkConstraintUnchanged(Expr *pExpr, int *aiChng, int chngRowid){ +SQLITE_PRIVATE int sqlite3ExprReferencesUpdatedColumn( + Expr *pExpr, /* The expression to be checked */ + int *aiChng, /* aiChng[x]>=0 if column x changed by the UPDATE */ + int chngRowid /* True if UPDATE changes the rowid */ +){ Walker w; memset(&w, 0, sizeof(w)); w.eCode = 0; @@ -111971,7 +116674,7 @@ static int checkConstraintUnchanged(Expr *pExpr, int *aiChng, int chngRowid){ testcase( w.eCode==CKCNSTRNT_COLUMN ); testcase( w.eCode==CKCNSTRNT_ROWID ); testcase( w.eCode==(CKCNSTRNT_ROWID|CKCNSTRNT_COLUMN) ); - return !w.eCode; + return w.eCode!=0; } /* @@ -112069,7 +116772,8 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( u8 overrideError, /* Override onError to this if not OE_Default */ int ignoreDest, /* Jump to this label on an OE_Ignore resolution */ int *pbMayReplace, /* OUT: Set to true if constraint may cause a replace */ - int *aiChng /* column i is unchanged if aiChng[i]<0 */ + int *aiChng, /* column i is unchanged if aiChng[i]<0 */ + Upsert *pUpsert /* ON CONFLICT clauses, if any. NULL otherwise */ ){ Vdbe *v; /* VDBE under constrution */ Index *pIdx; /* Pointer to one of the indices */ @@ -112082,10 +116786,13 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( int addr1; /* Address of jump instruction */ int seenReplace = 0; /* True if REPLACE is used to resolve INT PK conflict */ int nPkField; /* Number of fields in PRIMARY KEY. 1 for ROWID tables */ - int ipkTop = 0; /* Top of the rowid change constraint check */ - int ipkBottom = 0; /* Bottom of the rowid change constraint check */ + Index *pUpIdx = 0; /* Index to which to apply the upsert */ u8 isUpdate; /* True if this is an UPDATE operation */ u8 bAffinityDone = 0; /* True if the OP_Affinity operation has been run */ + int upsertBypass = 0; /* Address of Goto to bypass upsert subroutine */ + int upsertJump = 0; /* Address of Goto that jumps into upsert subroutine */ + int ipkTop = 0; /* Top of the IPK uniqueness check */ + int ipkBottom = 0; /* OP_Goto at the end of the IPK uniqueness check */ isUpdate = regOldData!=0; db = pParse->db; @@ -112173,8 +116880,15 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( for(i=0; inExpr; i++){ int allOk; Expr *pExpr = pCheck->a[i].pExpr; - if( aiChng && checkConstraintUnchanged(pExpr, aiChng, pkChng) ) continue; + if( aiChng + && !sqlite3ExprReferencesUpdatedColumn(pExpr, aiChng, pkChng) + ){ + /* The check constraints do not reference any of the columns being + ** updated so there is no point it verifying the check constraint */ + continue; + } allOk = sqlite3VdbeMakeLabel(v); + sqlite3VdbeVerifyAbortable(v, onError); sqlite3ExprIfTrue(pParse, pExpr, allOk, SQLITE_JUMPIFNULL); if( onError==OE_Ignore ){ sqlite3VdbeGoto(v, ignoreDest); @@ -112192,6 +116906,50 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( } #endif /* !defined(SQLITE_OMIT_CHECK) */ + /* UNIQUE and PRIMARY KEY constraints should be handled in the following + ** order: + ** + ** (1) OE_Update + ** (2) OE_Abort, OE_Fail, OE_Rollback, OE_Ignore + ** (3) OE_Replace + ** + ** OE_Fail and OE_Ignore must happen before any changes are made. + ** OE_Update guarantees that only a single row will change, so it + ** must happen before OE_Replace. Technically, OE_Abort and OE_Rollback + ** could happen in any order, but they are grouped up front for + ** convenience. + ** + ** 2018-08-14: Ticket https://www.sqlite.org/src/info/908f001483982c43 + ** The order of constraints used to have OE_Update as (2) and OE_Abort + ** and so forth as (1). But apparently PostgreSQL checks the OE_Update + ** constraint before any others, so it had to be moved. + ** + ** Constraint checking code is generated in this order: + ** (A) The rowid constraint + ** (B) Unique index constraints that do not have OE_Replace as their + ** default conflict resolution strategy + ** (C) Unique index that do use OE_Replace by default. + ** + ** The ordering of (2) and (3) is accomplished by making sure the linked + ** list of indexes attached to a table puts all OE_Replace indexes last + ** in the list. See sqlite3CreateIndex() for where that happens. + */ + + if( pUpsert ){ + if( pUpsert->pUpsertTarget==0 ){ + /* An ON CONFLICT DO NOTHING clause, without a constraint-target. + ** Make all unique constraint resolution be OE_Ignore */ + assert( pUpsert->pUpsertSet==0 ); + overrideError = OE_Ignore; + pUpsert = 0; + }else if( (pUpIdx = pUpsert->pUpsertIdx)!=0 ){ + /* If the constraint-target uniqueness check must be run first. + ** Jump to that uniqueness check now */ + upsertJump = sqlite3VdbeAddOp0(v, OP_Goto); + VdbeComment((v, "UPSERT constraint goes first")); + } + } + /* If rowid is changing, make sure the new rowid does not previously ** exist in the table. */ @@ -112206,13 +116964,13 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( onError = OE_Abort; } - if( isUpdate ){ - /* pkChng!=0 does not mean that the rowid has changed, only that - ** it might have changed. Skip the conflict logic below if the rowid - ** is unchanged. */ - sqlite3VdbeAddOp3(v, OP_Eq, regNewData, addrRowidOk, regOldData); - sqlite3VdbeChangeP5(v, SQLITE_NOTNULL); - VdbeCoverage(v); + /* figure out whether or not upsert applies in this case */ + if( pUpsert && pUpsert->pUpsertIdx==0 ){ + if( pUpsert->pUpsertSet==0 ){ + onError = OE_Ignore; /* DO NOTHING is the same as INSERT OR IGNORE */ + }else{ + onError = OE_Update; /* DO UPDATE */ + } } /* If the response to a rowid conflict is REPLACE but the response @@ -112220,21 +116978,30 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( ** to defer the running of the rowid conflict checking until after ** the UNIQUE constraints have run. */ - if( onError==OE_Replace && overrideError!=OE_Replace ){ - for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ - if( pIdx->onError==OE_Ignore || pIdx->onError==OE_Fail ){ - ipkTop = sqlite3VdbeAddOp0(v, OP_Goto); - break; - } - } + if( onError==OE_Replace /* IPK rule is REPLACE */ + && onError!=overrideError /* Rules for other contraints are different */ + && pTab->pIndex /* There exist other constraints */ + ){ + ipkTop = sqlite3VdbeAddOp0(v, OP_Goto)+1; + VdbeComment((v, "defer IPK REPLACE until last")); + } + + if( isUpdate ){ + /* pkChng!=0 does not mean that the rowid has changed, only that + ** it might have changed. Skip the conflict logic below if the rowid + ** is unchanged. */ + sqlite3VdbeAddOp3(v, OP_Eq, regNewData, addrRowidOk, regOldData); + sqlite3VdbeChangeP5(v, SQLITE_NOTNULL); + VdbeCoverage(v); } /* Check to see if the new rowid already exists in the table. Skip ** the following conflict logic if it does not. */ + VdbeNoopComment((v, "uniqueness check for ROWID")); + sqlite3VdbeVerifyAbortable(v, onError); sqlite3VdbeAddOp3(v, OP_NotExists, iDataCur, addrRowidOk, regNewData); VdbeCoverage(v); - /* Generate code that deals with a rowid collision */ switch( onError ){ default: { onError = OE_Abort; @@ -112243,6 +117010,9 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( case OE_Rollback: case OE_Abort: case OE_Fail: { + testcase( onError==OE_Rollback ); + testcase( onError==OE_Abort ); + testcase( onError==OE_Fail ); sqlite3RowidConstraint(pParse, onError, pTab); break; } @@ -112279,14 +117049,13 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( regNewData, 1, 0, OE_Replace, 1, -1); }else{ #ifdef SQLITE_ENABLE_PREUPDATE_HOOK - if( HasRowid(pTab) ){ - /* This OP_Delete opcode fires the pre-update-hook only. It does - ** not modify the b-tree. It is more efficient to let the coming - ** OP_Insert replace the existing entry than it is to delete the - ** existing entry and then insert a new one. */ - sqlite3VdbeAddOp2(v, OP_Delete, iDataCur, OPFLAG_ISNOOP); - sqlite3VdbeAppendP4(v, pTab, P4_TABLE); - } + assert( HasRowid(pTab) ); + /* This OP_Delete opcode fires the pre-update-hook only. It does + ** not modify the b-tree. It is more efficient to let the coming + ** OP_Insert replace the existing entry than it is to delete the + ** existing entry and then insert a new one. */ + sqlite3VdbeAddOp2(v, OP_Delete, iDataCur, OPFLAG_ISNOOP); + sqlite3VdbeAppendP4(v, pTab, P4_TABLE); #endif /* SQLITE_ENABLE_PREUPDATE_HOOK */ if( pTab->pIndex ){ sqlite3MultiWrite(pParse); @@ -112296,8 +117065,14 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( seenReplace = 1; break; } +#ifndef SQLITE_OMIT_UPSERT + case OE_Update: { + sqlite3UpsertDoUpdate(pParse, pUpsert, pTab, 0, iDataCur); + /* Fall through */ + } +#endif case OE_Ignore: { - /*assert( seenReplace==0 );*/ + testcase( onError==OE_Ignore ); sqlite3VdbeGoto(v, ignoreDest); break; } @@ -112305,7 +117080,7 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( sqlite3VdbeResolveLabel(v, addrRowidOk); if( ipkTop ){ ipkBottom = sqlite3VdbeAddOp0(v, OP_Goto); - sqlite3VdbeJumpHere(v, ipkTop); + sqlite3VdbeJumpHere(v, ipkTop-1); } } @@ -112323,12 +117098,21 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( int addrUniqueOk; /* Jump here if the UNIQUE constraint is satisfied */ if( aRegIdx[ix]==0 ) continue; /* Skip indices that do not change */ - if( bAffinityDone==0 ){ + if( pUpIdx==pIdx ){ + addrUniqueOk = upsertJump+1; + upsertBypass = sqlite3VdbeGoto(v, 0); + VdbeComment((v, "Skip upsert subroutine")); + sqlite3VdbeJumpHere(v, upsertJump); + }else{ + addrUniqueOk = sqlite3VdbeMakeLabel(v); + } + if( bAffinityDone==0 && (pUpIdx==0 || pUpIdx==pIdx) ){ sqlite3TableAffinity(v, pTab, regNewData+1); bAffinityDone = 1; } + VdbeNoopComment((v, "uniqueness check for %s", pIdx->zName)); iThisCur = iIdxCur+ix; - addrUniqueOk = sqlite3VdbeMakeLabel(v); + /* Skip partial indices for which the WHERE clause is not true */ if( pIdx->pPartIdxWhere ){ @@ -112388,6 +117172,15 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( onError = OE_Abort; } + /* Figure out if the upsert clause applies to this index */ + if( pUpIdx==pIdx ){ + if( pUpsert->pUpsertSet==0 ){ + onError = OE_Ignore; /* DO NOTHING is the same as INSERT OR IGNORE */ + }else{ + onError = OE_Update; /* DO UPDATE */ + } + } + /* Collision detection may be omitted if all of the following are true: ** (1) The conflict resolution algorithm is REPLACE ** (2) The table is a WITHOUT ROWID table @@ -112408,7 +117201,7 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( } /* Check to see if the new index entry will be unique */ - sqlite3ExprCachePush(pParse); + sqlite3VdbeVerifyAbortable(v, onError); sqlite3VdbeAddOp4Int(v, OP_NoConflict, iThisCur, addrUniqueOk, regIdx, pIdx->nKeyCol); VdbeCoverage(v); @@ -112470,25 +117263,37 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( /* Generate code that executes if the new index entry is not unique */ assert( onError==OE_Rollback || onError==OE_Abort || onError==OE_Fail - || onError==OE_Ignore || onError==OE_Replace ); + || onError==OE_Ignore || onError==OE_Replace || onError==OE_Update ); switch( onError ){ case OE_Rollback: case OE_Abort: case OE_Fail: { + testcase( onError==OE_Rollback ); + testcase( onError==OE_Abort ); + testcase( onError==OE_Fail ); sqlite3UniqueConstraint(pParse, onError, pIdx); break; } +#ifndef SQLITE_OMIT_UPSERT + case OE_Update: { + sqlite3UpsertDoUpdate(pParse, pUpsert, pTab, pIdx, iIdxCur+ix); + /* Fall through */ + } +#endif case OE_Ignore: { + testcase( onError==OE_Ignore ); sqlite3VdbeGoto(v, ignoreDest); break; } default: { Trigger *pTrigger = 0; assert( onError==OE_Replace ); - sqlite3MultiWrite(pParse); if( db->flags&SQLITE_RecTriggers ){ pTrigger = sqlite3TriggersExist(pParse, pTab, TK_DELETE, 0, 0); } + if( pTrigger || sqlite3FkRequired(pParse, pTab, 0, 0) ){ + sqlite3MultiWrite(pParse); + } sqlite3GenerateRowDelete(pParse, pTab, pTrigger, iDataCur, iIdxCur, regR, nPkField, 0, OE_Replace, (pIdx==pPk ? ONEPASS_SINGLE : ONEPASS_OFF), iThisCur); @@ -112496,15 +117301,22 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( break; } } - sqlite3VdbeResolveLabel(v, addrUniqueOk); - sqlite3ExprCachePop(pParse); + if( pUpIdx==pIdx ){ + sqlite3VdbeGoto(v, upsertJump+1); + sqlite3VdbeJumpHere(v, upsertBypass); + }else{ + sqlite3VdbeResolveLabel(v, addrUniqueOk); + } if( regR!=regIdx ) sqlite3ReleaseTempRange(pParse, regR, nPkField); } + + /* If the IPK constraint is a REPLACE, run it last */ if( ipkTop ){ sqlite3VdbeGoto(v, ipkTop+1); + VdbeComment((v, "Do IPK REPLACE")); sqlite3VdbeJumpHere(v, ipkBottom); } - + *pbMayReplace = seenReplace; VdbeModuleComment((v, "END: GenCnstCks(%d)", seenReplace)); } @@ -112600,7 +117412,6 @@ SQLITE_PRIVATE void sqlite3CompleteInsertion( sqlite3SetMakeRecordP5(v, pTab); if( !bAffinityDone ){ sqlite3TableAffinity(v, pTab, 0); - sqlite3ExprCacheAffinityChange(pParse, regData, pTab->nCol); } if( pParse->nested ){ pik_flags = 0; @@ -113003,6 +117814,7 @@ static int xferOptimization( emptySrcTest = sqlite3VdbeAddOp2(v, OP_Rewind, iSrc, 0); VdbeCoverage(v); if( pDest->iPKey>=0 ){ addr1 = sqlite3VdbeAddOp2(v, OP_Rowid, iSrc, regRowid); + sqlite3VdbeVerifyAbortable(v, onError); addr2 = sqlite3VdbeAddOp3(v, OP_NotExists, iDest, 0, regRowid); VdbeCoverage(v); sqlite3RowidConstraint(pParse, onError, pDest); @@ -113560,6 +118372,30 @@ struct sqlite3_api_routines { int (*vtab_nochange)(sqlite3_context*); int (*value_nochange)(sqlite3_value*); const char *(*vtab_collation)(sqlite3_index_info*,int); + /* Version 3.24.0 and later */ + int (*keyword_count)(void); + int (*keyword_name)(int,const char**,int*); + int (*keyword_check)(const char*,int); + sqlite3_str *(*str_new)(sqlite3*); + char *(*str_finish)(sqlite3_str*); + void (*str_appendf)(sqlite3_str*, const char *zFormat, ...); + void (*str_vappendf)(sqlite3_str*, const char *zFormat, va_list); + void (*str_append)(sqlite3_str*, const char *zIn, int N); + void (*str_appendall)(sqlite3_str*, const char *zIn); + void (*str_appendchar)(sqlite3_str*, int N, char C); + void (*str_reset)(sqlite3_str*); + int (*str_errcode)(sqlite3_str*); + int (*str_length)(sqlite3_str*); + char *(*str_value)(sqlite3_str*); + /* Version 3.25.0 and later */ + int (*create_window_function)(sqlite3*,const char*,int,int,void*, + void (*xStep)(sqlite3_context*,int,sqlite3_value**), + void (*xFinal)(sqlite3_context*), + void (*xValue)(sqlite3_context*), + void (*xInv)(sqlite3_context*,int,sqlite3_value**), + void(*xDestroy)(void*)); + /* Version 3.26.0 and later */ + const char *(*normalized_sql)(sqlite3_stmt*); }; /* @@ -113828,8 +118664,27 @@ typedef int (*sqlite3_loadext_entry)( #define sqlite3_value_pointer sqlite3_api->value_pointer /* Version 3.22.0 and later */ #define sqlite3_vtab_nochange sqlite3_api->vtab_nochange -#define sqlite3_value_nochange sqltie3_api->value_nochange -#define sqlite3_vtab_collation sqltie3_api->vtab_collation +#define sqlite3_value_nochange sqlite3_api->value_nochange +#define sqlite3_vtab_collation sqlite3_api->vtab_collation +/* Version 3.24.0 and later */ +#define sqlite3_keyword_count sqlite3_api->keyword_count +#define sqlite3_keyword_name sqlite3_api->keyword_name +#define sqlite3_keyword_check sqlite3_api->keyword_check +#define sqlite3_str_new sqlite3_api->str_new +#define sqlite3_str_finish sqlite3_api->str_finish +#define sqlite3_str_appendf sqlite3_api->str_appendf +#define sqlite3_str_vappendf sqlite3_api->str_vappendf +#define sqlite3_str_append sqlite3_api->str_append +#define sqlite3_str_appendall sqlite3_api->str_appendall +#define sqlite3_str_appendchar sqlite3_api->str_appendchar +#define sqlite3_str_reset sqlite3_api->str_reset +#define sqlite3_str_errcode sqlite3_api->str_errcode +#define sqlite3_str_length sqlite3_api->str_length +#define sqlite3_str_value sqlite3_api->str_value +/* Version 3.25.0 and later */ +#define sqlite3_create_window_function sqlite3_api->create_window_function +/* Version 3.26.0 and later */ +#define sqlite3_normalized_sql sqlite3_api->normalized_sql #endif /* !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) */ #if !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) @@ -113918,6 +118773,7 @@ typedef int (*sqlite3_loadext_entry)( # define sqlite3_declare_vtab 0 # define sqlite3_vtab_config 0 # define sqlite3_vtab_on_conflict 0 +# define sqlite3_vtab_collation 0 #endif #ifdef SQLITE_OMIT_SHARED_CACHE @@ -114268,7 +119124,30 @@ static const sqlite3_api_routines sqlite3Apis = { /* Version 3.22.0 and later */ sqlite3_vtab_nochange, sqlite3_value_nochange, - sqlite3_vtab_collation + sqlite3_vtab_collation, + /* Version 3.24.0 and later */ + sqlite3_keyword_count, + sqlite3_keyword_name, + sqlite3_keyword_check, + sqlite3_str_new, + sqlite3_str_finish, + sqlite3_str_appendf, + sqlite3_str_vappendf, + sqlite3_str_append, + sqlite3_str_appendall, + sqlite3_str_appendchar, + sqlite3_str_reset, + sqlite3_str_errcode, + sqlite3_str_length, + sqlite3_str_value, + /* Version 3.25.0 and later */ + sqlite3_create_window_function, + /* Version 3.26.0 and later */ +#ifdef SQLITE_ENABLE_NORMALIZE + sqlite3_normalized_sql +#else + 0 +#endif }; /* @@ -114334,10 +119213,8 @@ static int sqlite3LoadExtension( #if SQLITE_OS_UNIX || SQLITE_OS_WIN for(ii=0; iiflags & pPragma->iArg)!=0 ); }else{ - int mask = pPragma->iArg; /* Mask of bits to set or clear. */ + u64 mask = pPragma->iArg; /* Mask of bits to set or clear. */ if( db->autoCommit==0 ){ /* Foreign key support may not be enabled or disabled while not ** in auto-commit mode. */ @@ -116379,15 +121276,17 @@ SQLITE_PRIVATE void sqlite3Pragma( Table *pTab; pTab = sqlite3LocateTable(pParse, LOCATE_NOERR, zRight, zDb); if( pTab ){ + int iTabDb = sqlite3SchemaToIndex(db, pTab->pSchema); int i, k; int nHidden = 0; Column *pCol; Index *pPk = sqlite3PrimaryKeyIndex(pTab); - pParse->nMem = 6; - sqlite3CodeVerifySchema(pParse, iDb); + pParse->nMem = 7; + sqlite3CodeVerifySchema(pParse, iTabDb); sqlite3ViewGetColumnNames(pParse, pTab); for(i=0, pCol=pTab->aCol; inCol; i++, pCol++){ - if( IsHiddenColumn(pCol) ){ + int isHidden = IsHiddenColumn(pCol); + if( isHidden && pPragma->iArg==0 ){ nHidden++; continue; } @@ -116399,13 +121298,14 @@ SQLITE_PRIVATE void sqlite3Pragma( for(k=1; k<=pTab->nCol && pPk->aiColumn[k-1]!=i; k++){} } assert( pCol->pDflt==0 || pCol->pDflt->op==TK_SPAN ); - sqlite3VdbeMultiLoad(v, 1, "issisi", + sqlite3VdbeMultiLoad(v, 1, pPragma->iArg ? "issisii" : "issisi", i-nHidden, pCol->zName, sqlite3ColumnType(pCol,""), pCol->notNull ? 1 : 0, pCol->pDflt ? pCol->pDflt->u.zToken : 0, - k); + k, + isHidden); } } } @@ -116443,6 +121343,7 @@ SQLITE_PRIVATE void sqlite3Pragma( Table *pTab; pIdx = sqlite3FindIndex(db, zRight, zDb); if( pIdx ){ + int iIdxDb = sqlite3SchemaToIndex(db, pIdx->pSchema); int i; int mx; if( pPragma->iArg ){ @@ -116455,7 +121356,7 @@ SQLITE_PRIVATE void sqlite3Pragma( pParse->nMem = 3; } pTab = pIdx->pTable; - sqlite3CodeVerifySchema(pParse, iDb); + sqlite3CodeVerifySchema(pParse, iIdxDb); assert( pParse->nMem<=pPragma->nPragCName ); for(i=0; iaiColumn[i]; @@ -116479,8 +121380,9 @@ SQLITE_PRIVATE void sqlite3Pragma( int i; pTab = sqlite3FindTable(db, zRight, zDb); if( pTab ){ + int iTabDb = sqlite3SchemaToIndex(db, pTab->pSchema); pParse->nMem = 5; - sqlite3CodeVerifySchema(pParse, iDb); + sqlite3CodeVerifySchema(pParse, iTabDb); for(pIdx=pTab->pIndex, i=0; pIdx; pIdx=pIdx->pNext, i++){ const char *azOrigin[] = { "c", "u", "pk" }; sqlite3VdbeMultiLoad(v, 1, "isisi", @@ -116527,6 +121429,7 @@ SQLITE_PRIVATE void sqlite3Pragma( pParse->nMem = 2; for(i=0; iu.pHash ){ + if( p->funcFlags & SQLITE_FUNC_INTERNAL ) continue; sqlite3VdbeMultiLoad(v, 1, "si", p->zName, 1); } } @@ -116568,9 +121471,10 @@ SQLITE_PRIVATE void sqlite3Pragma( if( pTab ){ pFK = pTab->pFKey; if( pFK ){ + int iTabDb = sqlite3SchemaToIndex(db, pTab->pSchema); int i = 0; pParse->nMem = 8; - sqlite3CodeVerifySchema(pParse, iDb); + sqlite3CodeVerifySchema(pParse, iTabDb); while(pFK){ int j; for(j=0; jnCol; j++){ @@ -116615,9 +121519,9 @@ SQLITE_PRIVATE void sqlite3Pragma( pParse->nMem += 4; regKey = ++pParse->nMem; regRow = ++pParse->nMem; - sqlite3CodeVerifySchema(pParse, iDb); k = sqliteHashFirst(&db->aDb[iDb].pSchema->tblHash); while( k ){ + int iTabDb; if( zRight ){ pTab = sqlite3LocateTable(pParse, 0, zRight, zDb); k = 0; @@ -116626,21 +121530,23 @@ SQLITE_PRIVATE void sqlite3Pragma( k = sqliteHashNext(k); } if( pTab==0 || pTab->pFKey==0 ) continue; - sqlite3TableLock(pParse, iDb, pTab->tnum, 0, pTab->zName); + iTabDb = sqlite3SchemaToIndex(db, pTab->pSchema); + sqlite3CodeVerifySchema(pParse, iTabDb); + sqlite3TableLock(pParse, iTabDb, pTab->tnum, 0, pTab->zName); if( pTab->nCol+regRow>pParse->nMem ) pParse->nMem = pTab->nCol + regRow; - sqlite3OpenTable(pParse, 0, iDb, pTab, OP_OpenRead); + sqlite3OpenTable(pParse, 0, iTabDb, pTab, OP_OpenRead); sqlite3VdbeLoadString(v, regResult, pTab->zName); for(i=1, pFK=pTab->pFKey; pFK; i++, pFK=pFK->pNextFrom){ pParent = sqlite3FindTable(db, pFK->zTo, zDb); if( pParent==0 ) continue; pIdx = 0; - sqlite3TableLock(pParse, iDb, pParent->tnum, 0, pParent->zName); + sqlite3TableLock(pParse, iTabDb, pParent->tnum, 0, pParent->zName); x = sqlite3FkLocateIndex(pParse, pParent, pFK, &pIdx, 0); if( x==0 ){ if( pIdx==0 ){ - sqlite3OpenTable(pParse, i, iDb, pParent, OP_OpenRead); + sqlite3OpenTable(pParse, i, iTabDb, pParent, OP_OpenRead); }else{ - sqlite3VdbeAddOp3(v, OP_OpenRead, i, pIdx->tnum, iDb); + sqlite3VdbeAddOp3(v, OP_OpenRead, i, pIdx->tnum, iTabDb); sqlite3VdbeSetP4KeyInfo(pParse, pIdx); } }else{ @@ -116843,7 +121749,6 @@ SQLITE_PRIVATE void sqlite3Pragma( if( pTab->tnum<1 ) continue; /* Skip VIEWs or VIRTUAL TABLEs */ pPk = HasRowid(pTab) ? 0 : sqlite3PrimaryKeyIndex(pTab); - sqlite3ExprCacheClear(pParse); sqlite3OpenTableAndIndices(pParse, pTab, OP_OpenRead, 0, 1, 0, &iDataCur, &iIdxCur); /* reg[7] counts the number of entries in the table. @@ -116857,6 +121762,11 @@ SQLITE_PRIVATE void sqlite3Pragma( assert( sqlite3NoTempsInRange(pParse,1,7+j) ); sqlite3VdbeAddOp2(v, OP_Rewind, iDataCur, 0); VdbeCoverage(v); loopTop = sqlite3VdbeAddOp2(v, OP_AddImm, 7, 1); + if( !isQuick ){ + /* Sanity check on record header decoding */ + sqlite3VdbeAddOp3(v, OP_Column, iDataCur, pTab->nCol-1, 3); + sqlite3VdbeChangeP5(v, OPFLAG_TYPEOFARG); + } /* Verify that all NOT NULL columns really are NOT NULL */ for(j=0; jnCol; j++){ char *zErr; @@ -116881,7 +121791,6 @@ SQLITE_PRIVATE void sqlite3Pragma( char *zErr; int k; pParse->iSelfTab = iDataCur + 1; - sqlite3ExprCachePush(pParse); for(k=pCheck->nExpr-1; k>0; k--){ sqlite3ExprIfFalse(pParse, pCheck->a[k].pExpr, addrCkFault, 0); } @@ -116894,14 +121803,10 @@ SQLITE_PRIVATE void sqlite3Pragma( sqlite3VdbeAddOp4(v, OP_String8, 0, 3, 0, zErr, P4_DYNAMIC); integrityCheckResultRow(v); sqlite3VdbeResolveLabel(v, addrCkOk); - sqlite3ExprCachePop(pParse); } sqlite3ExprListDelete(db, pCheck); } if( !isQuick ){ /* Omit the remaining tests for quick_check */ - /* Sanity check on record header decoding */ - sqlite3VdbeAddOp3(v, OP_Column, iDataCur, pTab->nCol-1, 3); - sqlite3VdbeChangeP5(v, OPFLAG_TYPEOFARG); /* Validate index entries for the current row */ for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){ int jmp2, jmp3, jmp4, jmp5; @@ -117410,12 +122315,24 @@ SQLITE_PRIVATE void sqlite3Pragma( #endif #ifdef SQLITE_HAS_CODEC + /* Pragma iArg + ** ---------- ------ + ** key 0 + ** rekey 1 + ** hexkey 2 + ** hexrekey 3 + ** textkey 4 + ** textrekey 5 + */ case PragTyp_KEY: { - if( zRight ) sqlite3_key_v2(db, zDb, zRight, sqlite3Strlen30(zRight)); - break; - } - case PragTyp_REKEY: { - if( zRight ) sqlite3_rekey_v2(db, zDb, zRight, sqlite3Strlen30(zRight)); + if( zRight ){ + int n = pPragma->iArg<4 ? sqlite3Strlen30(zRight) : -1; + if( (pPragma->iArg & 1)==0 ){ + sqlite3_key_v2(db, zDb, zRight, n); + }else{ + sqlite3_rekey_v2(db, zDb, zRight, n); + } + } break; } case PragTyp_HEXKEY: { @@ -117427,7 +122344,7 @@ SQLITE_PRIVATE void sqlite3Pragma( iByte = (iByte<<4) + sqlite3HexToInt(zRight[i]); if( (i&1)!=0 ) zKey[i/2] = iByte; } - if( (zLeft[3] & 0xf)==0xb ){ + if( (pPragma->iArg & 1)==0 ){ sqlite3_key_v2(db, zDb, zKey, i/2); }else{ sqlite3_rekey_v2(db, zDb, zKey, i/2); @@ -117509,26 +122426,25 @@ static int pragmaVtabConnect( UNUSED_PARAMETER(argc); UNUSED_PARAMETER(argv); sqlite3StrAccumInit(&acc, 0, zBuf, sizeof(zBuf), 0); - sqlite3StrAccumAppendAll(&acc, "CREATE TABLE x"); + sqlite3_str_appendall(&acc, "CREATE TABLE x"); for(i=0, j=pPragma->iPragCName; inPragCName; i++, j++){ - sqlite3XPrintf(&acc, "%c\"%s\"", cSep, pragCName[j]); + sqlite3_str_appendf(&acc, "%c\"%s\"", cSep, pragCName[j]); cSep = ','; } if( i==0 ){ - sqlite3XPrintf(&acc, "(\"%s\"", pPragma->zName); - cSep = ','; + sqlite3_str_appendf(&acc, "(\"%s\"", pPragma->zName); i++; } j = 0; if( pPragma->mPragFlg & PragFlg_Result1 ){ - sqlite3StrAccumAppendAll(&acc, ",arg HIDDEN"); + sqlite3_str_appendall(&acc, ",arg HIDDEN"); j++; } if( pPragma->mPragFlg & (PragFlg_SchemaOpt|PragFlg_SchemaReq) ){ - sqlite3StrAccumAppendAll(&acc, ",schema HIDDEN"); + sqlite3_str_appendall(&acc, ",schema HIDDEN"); j++; } - sqlite3StrAccumAppend(&acc, ")", 1); + sqlite3_str_append(&acc, ")", 1); sqlite3StrAccumFinish(&acc); assert( strlen(zBuf) < sizeof(zBuf)-1 ); rc = sqlite3_declare_vtab(db, zBuf); @@ -117680,13 +122596,13 @@ static int pragmaVtabFilter( } } sqlite3StrAccumInit(&acc, 0, 0, 0, pTab->db->aLimit[SQLITE_LIMIT_SQL_LENGTH]); - sqlite3StrAccumAppendAll(&acc, "PRAGMA "); + sqlite3_str_appendall(&acc, "PRAGMA "); if( pCsr->azArg[1] ){ - sqlite3XPrintf(&acc, "%Q.", pCsr->azArg[1]); + sqlite3_str_appendf(&acc, "%Q.", pCsr->azArg[1]); } - sqlite3StrAccumAppendAll(&acc, pTab->pName->zName); + sqlite3_str_appendall(&acc, pTab->pName->zName); if( pCsr->azArg[0] ){ - sqlite3XPrintf(&acc, "=%Q", pCsr->azArg[0]); + sqlite3_str_appendf(&acc, "=%Q", pCsr->azArg[0]); } zSql = sqlite3StrAccumFinish(&acc); if( zSql==0 ) return SQLITE_NOMEM; @@ -117758,7 +122674,8 @@ static const sqlite3_module pragmaVtabModule = { 0, /* xRename - rename the table */ 0, /* xSavepoint */ 0, /* xRelease */ - 0 /* xRollbackTo */ + 0, /* xRollbackTo */ + 0 /* xShadowName */ }; /* @@ -117809,15 +122726,23 @@ static void corruptSchema( const char *zExtra /* Error information */ ){ sqlite3 *db = pData->db; - if( !db->mallocFailed && (db->flags & SQLITE_WriteSchema)==0 ){ + if( db->mallocFailed ){ + pData->rc = SQLITE_NOMEM_BKPT; + }else if( pData->pzErrMsg[0]!=0 ){ + /* A error message has already been generated. Do not overwrite it */ + }else if( pData->mInitFlags & INITFLAG_AlterTable ){ + *pData->pzErrMsg = sqlite3DbStrDup(db, zExtra); + pData->rc = SQLITE_ERROR; + }else if( db->flags & SQLITE_WriteSchema ){ + pData->rc = SQLITE_CORRUPT_BKPT; + }else{ char *z; if( zObj==0 ) zObj = "?"; z = sqlite3MPrintf(db, "malformed database schema (%s)", zObj); - if( zExtra ) z = sqlite3MPrintf(db, "%z - %s", z, zExtra); - sqlite3DbFree(db, *pData->pzErrMsg); + if( zExtra && zExtra[0] ) z = sqlite3MPrintf(db, "%z - %s", z, zExtra); *pData->pzErrMsg = z; + pData->rc = SQLITE_CORRUPT_BKPT; } - pData->rc = db->mallocFailed ? SQLITE_NOMEM_BKPT : SQLITE_CORRUPT_BKPT; } /* @@ -117869,7 +122794,7 @@ SQLITE_PRIVATE int sqlite3InitCallback(void *pInit, int argc, char **argv, char rc = db->errCode; assert( (rc&0xFF)==(rcp&0xFF) ); db->init.iDb = saved_iDb; - assert( saved_iDb==0 || (db->mDbFlags & DBFLAG_Vacuum)!=0 ); + /* assert( saved_iDb==0 || (db->mDbFlags & DBFLAG_Vacuum)!=0 ); */ if( SQLITE_OK!=rc ){ if( db->init.orphanTrigger ){ assert( iDb==1 ); @@ -117916,7 +122841,7 @@ SQLITE_PRIVATE int sqlite3InitCallback(void *pInit, int argc, char **argv, char ** auxiliary databases. Return one of the SQLITE_ error codes to ** indicate success or failure. */ -static int sqlite3InitOne(sqlite3 *db, int iDb, char **pzErrMsg){ +SQLITE_PRIVATE int sqlite3InitOne(sqlite3 *db, int iDb, char **pzErrMsg, u32 mFlags){ int rc; int i; #ifndef SQLITE_OMIT_DEPRECATED @@ -117929,6 +122854,7 @@ static int sqlite3InitOne(sqlite3 *db, int iDb, char **pzErrMsg){ const char *zMasterName; int openedTransaction = 0; + assert( (db->mDbFlags & DBFLAG_SchemaKnownOk)==0 ); assert( iDb>=0 && iDbnDb ); assert( db->aDb[iDb].pSchema ); assert( sqlite3_mutex_held(db->mutex) ); @@ -117950,6 +122876,7 @@ static int sqlite3InitOne(sqlite3 *db, int iDb, char **pzErrMsg){ initData.iDb = iDb; initData.rc = SQLITE_OK; initData.pzErrMsg = pzErrMsg; + initData.mInitFlags = mFlags; sqlite3InitCallback(&initData, 3, (char **)azArg, 0); if( initData.rc ){ rc = initData.rc; @@ -117971,7 +122898,7 @@ static int sqlite3InitOne(sqlite3 *db, int iDb, char **pzErrMsg){ ** will be closed before this function returns. */ sqlite3BtreeEnter(pDb->pBt); if( !sqlite3BtreeIsInReadTrans(pDb->pBt) ){ - rc = sqlite3BtreeBeginTrans(pDb->pBt, 0); + rc = sqlite3BtreeBeginTrans(pDb->pBt, 0, 0); if( rc!=SQLITE_OK ){ sqlite3SetString(pzErrMsg, db, sqlite3ErrStr(rc)); goto initone_error_out; @@ -117999,6 +122926,9 @@ static int sqlite3InitOne(sqlite3 *db, int iDb, char **pzErrMsg){ for(i=0; ipBt, i+1, (u32 *)&meta[i]); } + if( (db->flags & SQLITE_ResetDatabase)!=0 ){ + memset(meta, 0, sizeof(meta)); + } pDb->pSchema->schema_cookie = meta[BTREE_SCHEMA_VERSION-1]; /* If opening a non-empty database, check the text encoding. For the @@ -118098,8 +123028,8 @@ static int sqlite3InitOne(sqlite3 *db, int iDb, char **pzErrMsg){ rc = SQLITE_NOMEM_BKPT; sqlite3ResetAllSchemasOfConnection(db); } - if( rc==SQLITE_OK || (db->flags&SQLITE_WriteSchema)){ - /* Black magic: If the SQLITE_WriteSchema flag is set, then consider + if( rc==SQLITE_OK || (db->flags&SQLITE_NoSchemaError)){ + /* Black magic: If the SQLITE_NoSchemaError flag is set, then consider ** the schema loaded, even if errors occurred. In this situation the ** current sqlite3_prepare() operation will fail, but the following one ** will attempt to compile the supplied statement against whatever subset @@ -118153,13 +123083,14 @@ SQLITE_PRIVATE int sqlite3Init(sqlite3 *db, char **pzErrMsg){ assert( db->nDb>0 ); /* Do the main schema first */ if( !DbHasProperty(db, 0, DB_SchemaLoaded) ){ - rc = sqlite3InitOne(db, 0, pzErrMsg); + rc = sqlite3InitOne(db, 0, pzErrMsg, 0); if( rc ) return rc; } /* All other schemas after the main schema. The "temp" schema must be last */ for(i=db->nDb-1; i>0; i--){ + assert( i==1 || sqlite3BtreeHoldsMutex(db->aDb[i].pBt) ); if( !DbHasProperty(db, i, DB_SchemaLoaded) ){ - rc = sqlite3InitOne(db, i, pzErrMsg); + rc = sqlite3InitOne(db, i, pzErrMsg, 0); if( rc ) return rc; } } @@ -118179,10 +123110,12 @@ SQLITE_PRIVATE int sqlite3ReadSchema(Parse *pParse){ assert( sqlite3_mutex_held(db->mutex) ); if( !db->init.busy ){ rc = sqlite3Init(db, &pParse->zErrMsg); - } - if( rc!=SQLITE_OK ){ - pParse->rc = rc; - pParse->nErr++; + if( rc!=SQLITE_OK ){ + pParse->rc = rc; + pParse->nErr++; + }else if( db->noSharedCache ){ + db->mDbFlags |= DBFLAG_SchemaKnownOk; + } } return rc; } @@ -118210,7 +123143,7 @@ static void schemaIsValid(Parse *pParse){ ** on the b-tree database, open one now. If a transaction is opened, it ** will be closed immediately after reading the meta-value. */ if( !sqlite3BtreeIsInReadTrans(pBt) ){ - rc = sqlite3BtreeBeginTrans(pBt, 0); + rc = sqlite3BtreeBeginTrans(pBt, 0, 0); if( rc==SQLITE_NOMEM || rc==SQLITE_IOERR_NOMEM ){ sqlite3OomFault(db); } @@ -118393,7 +123326,7 @@ static int sqlite3Prepare( if( rc==SQLITE_OK && sParse.pVdbe && sParse.explain ){ static const char * const azColName[] = { "addr", "opcode", "p1", "p2", "p3", "p4", "p5", "comment", - "selectid", "order", "from", "detail" + "id", "parent", "notused", "detail" }; int iFirst, mx; if( sParse.explain==2 ){ @@ -118477,6 +123410,294 @@ static int sqlite3LockAndPrepare( return rc; } +#ifdef SQLITE_ENABLE_NORMALIZE +/* +** Checks if the specified token is a table, column, or function name, +** based on the databases associated with the statement being prepared. +** If the function fails, zero is returned and pRc is filled with the +** error code. +*/ +static int shouldTreatAsIdentifier( + sqlite3 *db, /* Database handle. */ + const char *zToken, /* Pointer to start of token to be checked */ + int nToken, /* Length of token to be checked */ + int *pRc /* Pointer to error code upon failure */ +){ + int bFound = 0; /* Non-zero if token is an identifier name. */ + int i, j; /* Database and column loop indexes. */ + Schema *pSchema; /* Schema for current database. */ + Hash *pHash; /* Hash table of tables for current database. */ + HashElem *e; /* Hash element for hash table iteration. */ + Table *pTab; /* Database table for columns being checked. */ + + if( sqlite3IsRowidN(zToken, nToken) ){ + return 1; + } + if( nToken>0 ){ + int hash = SQLITE_FUNC_HASH(sqlite3UpperToLower[(u8)zToken[0]], nToken); + if( sqlite3FunctionSearchN(hash, zToken, nToken) ) return 1; + } + assert( db!=0 ); + sqlite3_mutex_enter(db->mutex); + sqlite3BtreeEnterAll(db); + for(i=0; inDb; i++){ + pHash = &db->aFunc; + if( sqlite3HashFindN(pHash, zToken, nToken) ){ + bFound = 1; + break; + } + pSchema = db->aDb[i].pSchema; + if( pSchema==0 ) continue; + pHash = &pSchema->tblHash; + if( sqlite3HashFindN(pHash, zToken, nToken) ){ + bFound = 1; + break; + } + for(e=sqliteHashFirst(pHash); e; e=sqliteHashNext(e)){ + pTab = sqliteHashData(e); + if( pTab==0 ) continue; + pHash = pTab->pColHash; + if( pHash==0 ){ + pTab->pColHash = pHash = sqlite3_malloc(sizeof(Hash)); + if( pHash ){ + sqlite3HashInit(pHash); + for(j=0; jnCol; j++){ + Column *pCol = &pTab->aCol[j]; + sqlite3HashInsert(pHash, pCol->zName, pCol); + } + }else{ + *pRc = SQLITE_NOMEM_BKPT; + bFound = 0; + goto done; + } + } + if( pHash && sqlite3HashFindN(pHash, zToken, nToken) ){ + bFound = 1; + goto done; + } + } + } +done: + sqlite3BtreeLeaveAll(db); + sqlite3_mutex_leave(db->mutex); + return bFound; +} + +/* +** Attempt to estimate the final output buffer size needed for the fully +** normalized version of the specified SQL string. This should take into +** account any potential expansion that could occur (e.g. via IN clauses +** being expanded, etc). This size returned is the total number of bytes +** including the NUL terminator. +*/ +static int estimateNormalizedSize( + const char *zSql, /* The original SQL string */ + int nSql, /* Length of original SQL string */ + u8 prepFlags /* The flags passed to sqlite3_prepare_v3() */ +){ + int nOut = nSql + 4; + const char *z = zSql; + while( nOut0 ){ + zOut[j++] = '"'; + continue; + }else if( k==nToken-1 ){ + zOut[j++] = '"'; + continue; + } + } + if( bKeyword ){ + zOut[j++] = sqlite3Toupper(zSql[iIn+k]); + }else{ + zOut[j++] = sqlite3Tolower(zSql[iIn+k]); + } + } + *piOut = j; +} + +/* +** Perform normalization of the SQL contained in the prepared statement and +** store the result in the zNormSql field. The schema for the associated +** databases are consulted while performing the normalization in order to +** determine if a token appears to be an identifier. All identifiers are +** left intact in the normalized SQL and all literals are replaced with a +** single '?'. +*/ +SQLITE_PRIVATE void sqlite3Normalize( + Vdbe *pVdbe, /* VM being reprepared */ + const char *zSql, /* The original SQL string */ + int nSql, /* Size of the input string in bytes */ + u8 prepFlags /* The flags passed to sqlite3_prepare_v3() */ +){ + sqlite3 *db; /* Database handle. */ + char *z; /* The output string */ + int nZ; /* Size of the output string in bytes */ + int i; /* Next character to read from zSql[] */ + int j; /* Next character to fill in on z[] */ + int tokenType = 0; /* Type of the next token */ + int prevTokenType = 0; /* Type of the previous token, except spaces */ + int n; /* Size of the next token */ + int nParen = 0; /* Nesting level of parenthesis */ + Hash inHash; /* Table of parenthesis levels to output index. */ + + db = sqlite3VdbeDb(pVdbe); + assert( db!=0 ); + assert( pVdbe->zNormSql==0 ); + if( zSql==0 ) return; + nZ = estimateNormalizedSize(zSql, nSql, prepFlags); + z = sqlite3DbMallocRawNN(db, nZ); + if( z==0 ) return; + sqlite3HashInit(&inHash); + for(i=j=0; i0 ){ + sqlite3HashInsert(&inHash, zSql+nParen, 0); + assert( jj+6=0 ); + assert( nZ-1-j=0 ); + /* Fall through */ + } + case TK_MINUS: + case TK_SEMI: + case TK_PLUS: + case TK_STAR: + case TK_SLASH: + case TK_REM: + case TK_EQ: + case TK_LE: + case TK_NE: + case TK_LSHIFT: + case TK_LT: + case TK_RSHIFT: + case TK_GT: + case TK_GE: + case TK_BITOR: + case TK_CONCAT: + case TK_COMMA: + case TK_BITAND: + case TK_BITNOT: + case TK_DOT: + case TK_IN: + case TK_IS: + case TK_NOT: + case TK_NULL: + case TK_ID: { + if( tokenType==TK_NULL ){ + if( prevTokenType==TK_IS || prevTokenType==TK_NOT ){ + /* NULL is a keyword in this case, not a literal value */ + }else{ + /* Here the NULL is a literal value */ + z[j++] = '?'; + break; + } + } + if( j>0 && sqlite3IsIdChar(z[j-1]) && sqlite3IsIdChar(zSql[i]) ){ + z[j++] = ' '; + } + if( tokenType==TK_ID ){ + int i2 = i, n2 = n, rc = SQLITE_OK; + if( nParen>0 ){ + assert( nParen0 && z[j-1]==' ' ){ j--; } + if( j>0 && z[j-1]!=';' ){ z[j++] = ';'; } + z[j] = 0; + assert( jzNormSql = z; + sqlite3HashClear(&inHash); +} +#endif /* SQLITE_ENABLE_NORMALIZE */ + /* ** Rerun the compilation of a statement after a schema change. ** @@ -118707,8 +123928,7 @@ SQLITE_API int sqlite3_prepare16_v3( /***/ int sqlite3SelectTrace = 0; # define SELECTTRACE(K,P,S,X) \ if(sqlite3SelectTrace&(K)) \ - sqlite3DebugPrintf("%*s%s.%p: ",(P)->nSelectIndent*2-2,"",\ - (S)->zSelName,(S)),\ + sqlite3DebugPrintf("%u/%d/%p: ",(S)->selId,(P)->addrExplain,(S)),\ sqlite3DebugPrintf X #else # define SELECTTRACE(K,P,S,X) @@ -118731,6 +123951,20 @@ struct DistinctCtx { /* ** An instance of the following object is used to record information about ** the ORDER BY (or GROUP BY) clause of query is being coded. +** +** The aDefer[] array is used by the sorter-references optimization. For +** example, assuming there is no index that can be used for the ORDER BY, +** for the query: +** +** SELECT a, bigblob FROM t1 ORDER BY a LIMIT 10; +** +** it may be more efficient to add just the "a" values to the sorter, and +** retrieve the associated "bigblob" values directly from table t1 as the +** 10 smallest "a" values are extracted from the sorter. +** +** When the sorter-reference optimization is used, there is one entry in the +** aDefer[] array for each database table that may be read as values are +** extracted from the sorter. */ typedef struct SortCtx SortCtx; struct SortCtx { @@ -118741,8 +123975,17 @@ struct SortCtx { int labelBkOut; /* Start label for the block-output subroutine */ int addrSortIndex; /* Address of the OP_SorterOpen or OP_OpenEphemeral */ int labelDone; /* Jump here when done, ex: LIMIT reached */ + int labelOBLopt; /* Jump here when sorter is full */ u8 sortFlags; /* Zero or more SORTFLAG_* bits */ - u8 bOrderedInnerLoop; /* ORDER BY correctly sorts the inner loop */ +#ifdef SQLITE_ENABLE_SORTER_REFERENCES + u8 nDefer; /* Number of valid entries in aDefer[] */ + struct DeferredCsr { + Table *pTab; /* Table definition */ + int iCsr; /* Cursor number for table */ + int nKey; /* Number of PK columns for table pTab (>=1) */ + } aDefer[4]; +#endif + struct RowLoadInfo *pDeferredRowLoad; /* Deferred row loading info or NULL */ }; #define SORTFLAG_UseSorter 0x01 /* Use SorterOpen instead of OpenEphemeral */ @@ -118760,6 +124003,11 @@ static void clearSelect(sqlite3 *db, Select *p, int bFree){ sqlite3ExprDelete(db, p->pHaving); sqlite3ExprListDelete(db, p->pOrderBy); sqlite3ExprDelete(db, p->pLimit); +#ifndef SQLITE_OMIT_WINDOWFUNC + if( OK_IF_ALWAYS_TRUE(p->pWinDefn) ){ + sqlite3WindowListDelete(db, p->pWinDefn); + } +#endif if( OK_IF_ALWAYS_TRUE(p->pWith) ) sqlite3WithDelete(db, p->pWith); if( bFree ) sqlite3DbFreeNN(db, p); p = pPrior; @@ -118810,9 +124058,7 @@ SQLITE_PRIVATE Select *sqlite3SelectNew( pNew->selFlags = selFlags; pNew->iLimit = 0; pNew->iOffset = 0; -#if SELECTTRACE_ENABLED - pNew->zSelName[0] = 0; -#endif + pNew->selId = ++pParse->nSelect; pNew->addrOpenEphm[0] = -1; pNew->addrOpenEphm[1] = -1; pNew->nSelectRow = 0; @@ -118826,6 +124072,10 @@ SQLITE_PRIVATE Select *sqlite3SelectNew( pNew->pNext = 0; pNew->pLimit = pLimit; pNew->pWith = 0; +#ifndef SQLITE_OMIT_WINDOWFUNC + pNew->pWin = 0; + pNew->pWinDefn = 0; +#endif if( pParse->db->mallocFailed ) { clearSelect(pParse->db, pNew, pNew!=&standin); pNew = 0; @@ -118836,17 +124086,6 @@ SQLITE_PRIVATE Select *sqlite3SelectNew( return pNew; } -#if SELECTTRACE_ENABLED -/* -** Set the name of a Select object -*/ -SQLITE_PRIVATE void sqlite3SelectSetName(Select *p, const char *zName){ - if( p && zName ){ - sqlite3_snprintf(sizeof(p->zSelName), p->zSelName, "%s", zName); - } -} -#endif - /* ** Delete the given Select structure and all of its substructures. @@ -119069,6 +124308,29 @@ static void setJoinExpr(Expr *p, int iTable){ } } +/* Undo the work of setJoinExpr(). In the expression tree p, convert every +** term that is marked with EP_FromJoin and iRightJoinTable==iTable into +** an ordinary term that omits the EP_FromJoin mark. +** +** This happens when a LEFT JOIN is simplified into an ordinary JOIN. +*/ +static void unsetJoinExpr(Expr *p, int iTable){ + while( p ){ + if( ExprHasProperty(p, EP_FromJoin) + && (iTable<0 || p->iRightJoinTable==iTable) ){ + ExprClearProperty(p, EP_FromJoin); + } + if( p->op==TK_FUNCTION && p->x.pList ){ + int i; + for(i=0; ix.pList->nExpr; i++){ + unsetJoinExpr(p->x.pList->a[i].pExpr, iTable); + } + } + unsetJoinExpr(p->pLeft, iTable); + p = p->pRight; + } +} + /* ** This routine processes the join information for a SELECT statement. ** ON and USING clauses are converted into extra terms of the WHERE clause. @@ -119170,13 +124432,61 @@ static int sqliteProcessJoin(Parse *pParse, Select *p){ return 0; } -/* Forward reference */ -static KeyInfo *keyInfoFromExprList( - Parse *pParse, /* Parsing context */ - ExprList *pList, /* Form the KeyInfo object from this ExprList */ - int iStart, /* Begin with this column of pList */ - int nExtra /* Add this many extra columns to the end */ -); +/* +** An instance of this object holds information (beyond pParse and pSelect) +** needed to load the next result row that is to be added to the sorter. +*/ +typedef struct RowLoadInfo RowLoadInfo; +struct RowLoadInfo { + int regResult; /* Store results in array of registers here */ + u8 ecelFlags; /* Flag argument to ExprCodeExprList() */ +#ifdef SQLITE_ENABLE_SORTER_REFERENCES + ExprList *pExtra; /* Extra columns needed by sorter refs */ + int regExtraResult; /* Where to load the extra columns */ +#endif +}; + +/* +** This routine does the work of loading query data into an array of +** registers so that it can be added to the sorter. +*/ +static void innerLoopLoadRow( + Parse *pParse, /* Statement under construction */ + Select *pSelect, /* The query being coded */ + RowLoadInfo *pInfo /* Info needed to complete the row load */ +){ + sqlite3ExprCodeExprList(pParse, pSelect->pEList, pInfo->regResult, + 0, pInfo->ecelFlags); +#ifdef SQLITE_ENABLE_SORTER_REFERENCES + if( pInfo->pExtra ){ + sqlite3ExprCodeExprList(pParse, pInfo->pExtra, pInfo->regExtraResult, 0, 0); + sqlite3ExprListDelete(pParse->db, pInfo->pExtra); + } +#endif +} + +/* +** Code the OP_MakeRecord instruction that generates the entry to be +** added into the sorter. +** +** Return the register in which the result is stored. +*/ +static int makeSorterRecord( + Parse *pParse, + SortCtx *pSort, + Select *pSelect, + int regBase, + int nBase +){ + int nOBSat = pSort->nOBSat; + Vdbe *v = pParse->pVdbe; + int regOut = ++pParse->nMem; + if( pSort->pDeferredRowLoad ){ + innerLoopLoadRow(pParse, pSelect, pSort->pDeferredRowLoad); + } + sqlite3VdbeAddOp3(v, OP_MakeRecord, regBase+nOBSat, nBase-nOBSat, regOut); + return regOut; +} /* ** Generate code that will push the record in registers regData @@ -119188,7 +124498,7 @@ static void pushOntoSorter( Select *pSelect, /* The whole SELECT statement */ int regData, /* First register holding data to be sorted */ int regOrigData, /* First register holding data before packing */ - int nData, /* Number of elements in the data array */ + int nData, /* Number of elements in the regData data array */ int nPrefixReg /* No. of reg prior to regData available for use */ ){ Vdbe *v = pParse->pVdbe; /* Stmt under construction */ @@ -119196,16 +124506,32 @@ static void pushOntoSorter( int nExpr = pSort->pOrderBy->nExpr; /* No. of ORDER BY terms */ int nBase = nExpr + bSeq + nData; /* Fields in sorter record */ int regBase; /* Regs for sorter record */ - int regRecord = ++pParse->nMem; /* Assembled sorter record */ + int regRecord = 0; /* Assembled sorter record */ int nOBSat = pSort->nOBSat; /* ORDER BY terms to skip */ int op; /* Opcode to add sorter record to sorter */ int iLimit; /* LIMIT counter */ + int iSkip = 0; /* End of the sorter insert loop */ assert( bSeq==0 || bSeq==1 ); + + /* Three cases: + ** (1) The data to be sorted has already been packed into a Record + ** by a prior OP_MakeRecord. In this case nData==1 and regData + ** will be completely unrelated to regOrigData. + ** (2) All output columns are included in the sort record. In that + ** case regData==regOrigData. + ** (3) Some output columns are omitted from the sort record due to + ** the SQLITE_ENABLE_SORTER_REFERENCE optimization, or due to the + ** SQLITE_ECEL_OMITREF optimization, or due to the + ** SortCtx.pDeferredRowLoad optimiation. In any of these cases + ** regOrigData is 0 to prevent this routine from trying to copy + ** values that might not yet exist. + */ assert( nData==1 || regData==regOrigData || regOrigData==0 ); + if( nPrefixReg ){ assert( nPrefixReg==nExpr+bSeq ); - regBase = regData - nExpr - bSeq; + regBase = regData - nPrefixReg; }else{ regBase = pParse->nMem + 1; pParse->nMem += nBase; @@ -119221,7 +124547,6 @@ static void pushOntoSorter( if( nPrefixReg==0 && nData>0 ){ sqlite3ExprCodeMove(pParse, regData, regBase+nExpr+bSeq, nData); } - sqlite3VdbeAddOp3(v, OP_MakeRecord, regBase+nOBSat, nBase-nOBSat, regRecord); if( nOBSat>0 ){ int regPrevKey; /* The first nOBSat columns of the previous row */ int addrFirst; /* Address of the OP_IfNot opcode */ @@ -119230,6 +124555,7 @@ static void pushOntoSorter( int nKey; /* Number of sorting key columns, including OP_Sequence */ KeyInfo *pKI; /* Original KeyInfo on the sorter table */ + regRecord = makeSorterRecord(pParse, pSort, pSelect, regBase, nBase); regPrevKey = pParse->nMem+1; pParse->nMem += pSort->nOBSat; nKey = nExpr - pSort->nOBSat + bSeq; @@ -119247,7 +124573,7 @@ static void pushOntoSorter( memset(pKI->aSortOrder, 0, pKI->nKeyField); /* Makes OP_Jump testable */ sqlite3VdbeChangeP4(v, -1, (char*)pKI, P4_KEYINFO); testcase( pKI->nAllField > pKI->nKeyField+2 ); - pOp->p4.pKeyInfo = keyInfoFromExprList(pParse, pSort->pOrderBy, nOBSat, + pOp->p4.pKeyInfo = sqlite3KeyInfoFromExprList(pParse,pSort->pOrderBy,nOBSat, pKI->nAllField-pKI->nKeyField-1); addrJmp = sqlite3VdbeCurrentAddr(v); sqlite3VdbeAddOp3(v, OP_Jump, addrJmp+1, 0, addrJmp+1); VdbeCoverage(v); @@ -119263,6 +124589,34 @@ static void pushOntoSorter( sqlite3ExprCodeMove(pParse, regBase, regPrevKey, pSort->nOBSat); sqlite3VdbeJumpHere(v, addrJmp); } + if( iLimit ){ + /* At this point the values for the new sorter entry are stored + ** in an array of registers. They need to be composed into a record + ** and inserted into the sorter if either (a) there are currently + ** less than LIMIT+OFFSET items or (b) the new record is smaller than + ** the largest record currently in the sorter. If (b) is true and there + ** are already LIMIT+OFFSET items in the sorter, delete the largest + ** entry before inserting the new one. This way there are never more + ** than LIMIT+OFFSET items in the sorter. + ** + ** If the new record does not need to be inserted into the sorter, + ** jump to the next iteration of the loop. If the pSort->labelOBLopt + ** value is not zero, then it is a label of where to jump. Otherwise, + ** just bypass the row insert logic. See the header comment on the + ** sqlite3WhereOrderByLimitOptLabel() function for additional info. + */ + int iCsr = pSort->iECursor; + sqlite3VdbeAddOp2(v, OP_IfNotZero, iLimit, sqlite3VdbeCurrentAddr(v)+4); + VdbeCoverage(v); + sqlite3VdbeAddOp2(v, OP_Last, iCsr, 0); + iSkip = sqlite3VdbeAddOp4Int(v, OP_IdxLE, + iCsr, 0, regBase+nOBSat, nExpr-nOBSat); + VdbeCoverage(v); + sqlite3VdbeAddOp1(v, OP_Delete, iCsr); + } + if( regRecord==0 ){ + regRecord = makeSorterRecord(pParse, pSort, pSelect, regBase, nBase); + } if( pSort->sortFlags & SORTFLAG_UseSorter ){ op = OP_SorterInsert; }else{ @@ -119270,33 +124624,9 @@ static void pushOntoSorter( } sqlite3VdbeAddOp4Int(v, op, pSort->iECursor, regRecord, regBase+nOBSat, nBase-nOBSat); - if( iLimit ){ - int addr; - int r1 = 0; - /* Fill the sorter until it contains LIMIT+OFFSET entries. (The iLimit - ** register is initialized with value of LIMIT+OFFSET.) After the sorter - ** fills up, delete the least entry in the sorter after each insert. - ** Thus we never hold more than the LIMIT+OFFSET rows in memory at once */ - addr = sqlite3VdbeAddOp1(v, OP_IfNotZero, iLimit); VdbeCoverage(v); - sqlite3VdbeAddOp1(v, OP_Last, pSort->iECursor); - if( pSort->bOrderedInnerLoop ){ - r1 = ++pParse->nMem; - sqlite3VdbeAddOp3(v, OP_Column, pSort->iECursor, nExpr, r1); - VdbeComment((v, "seq")); - } - sqlite3VdbeAddOp1(v, OP_Delete, pSort->iECursor); - if( pSort->bOrderedInnerLoop ){ - /* If the inner loop is driven by an index such that values from - ** the same iteration of the inner loop are in sorted order, then - ** immediately jump to the next iteration of an inner loop if the - ** entry from the current iteration does not fit into the top - ** LIMIT+OFFSET entries of the sorter. */ - int iBrk = sqlite3VdbeCurrentAddr(v) + 2; - sqlite3VdbeAddOp3(v, OP_Eq, regBase+nExpr, iBrk, r1); - sqlite3VdbeChangeP5(v, SQLITE_NULLEQ); - VdbeCoverage(v); - } - sqlite3VdbeJumpHere(v, addr); + if( iSkip ){ + sqlite3VdbeChangeP2(v, iSkip, + pSort->labelOBLopt ? pSort->labelOBLopt : sqlite3VdbeCurrentAddr(v)); } } @@ -119342,6 +124672,87 @@ static void codeDistinct( sqlite3ReleaseTempReg(pParse, r1); } +#ifdef SQLITE_ENABLE_SORTER_REFERENCES +/* +** This function is called as part of inner-loop generation for a SELECT +** statement with an ORDER BY that is not optimized by an index. It +** determines the expressions, if any, that the sorter-reference +** optimization should be used for. The sorter-reference optimization +** is used for SELECT queries like: +** +** SELECT a, bigblob FROM t1 ORDER BY a LIMIT 10 +** +** If the optimization is used for expression "bigblob", then instead of +** storing values read from that column in the sorter records, the PK of +** the row from table t1 is stored instead. Then, as records are extracted from +** the sorter to return to the user, the required value of bigblob is +** retrieved directly from table t1. If the values are very large, this +** can be more efficient than storing them directly in the sorter records. +** +** The ExprList_item.bSorterRef flag is set for each expression in pEList +** for which the sorter-reference optimization should be enabled. +** Additionally, the pSort->aDefer[] array is populated with entries +** for all cursors required to evaluate all selected expressions. Finally. +** output variable (*ppExtra) is set to an expression list containing +** expressions for all extra PK values that should be stored in the +** sorter records. +*/ +static void selectExprDefer( + Parse *pParse, /* Leave any error here */ + SortCtx *pSort, /* Sorter context */ + ExprList *pEList, /* Expressions destined for sorter */ + ExprList **ppExtra /* Expressions to append to sorter record */ +){ + int i; + int nDefer = 0; + ExprList *pExtra = 0; + for(i=0; inExpr; i++){ + struct ExprList_item *pItem = &pEList->a[i]; + if( pItem->u.x.iOrderByCol==0 ){ + Expr *pExpr = pItem->pExpr; + Table *pTab = pExpr->y.pTab; + if( pExpr->op==TK_COLUMN && pExpr->iColumn>=0 && pTab && !IsVirtual(pTab) + && (pTab->aCol[pExpr->iColumn].colFlags & COLFLAG_SORTERREF) + ){ + int j; + for(j=0; jaDefer[j].iCsr==pExpr->iTable ) break; + } + if( j==nDefer ){ + if( nDefer==ArraySize(pSort->aDefer) ){ + continue; + }else{ + int nKey = 1; + int k; + Index *pPk = 0; + if( !HasRowid(pTab) ){ + pPk = sqlite3PrimaryKeyIndex(pTab); + nKey = pPk->nKeyCol; + } + for(k=0; kiTable = pExpr->iTable; + pNew->y.pTab = pExpr->y.pTab; + pNew->iColumn = pPk ? pPk->aiColumn[k] : -1; + pExtra = sqlite3ExprListAppend(pParse, pExtra, pNew); + } + } + pSort->aDefer[nDefer].pTab = pExpr->y.pTab; + pSort->aDefer[nDefer].iCsr = pExpr->iTable; + pSort->aDefer[nDefer].nKey = nKey; + nDefer++; + } + } + pItem->bSorterRef = 1; + } + } + } + pSort->nDefer = (u8)nDefer; + *ppExtra = pExtra; +} +#endif + /* ** This routine generates the code for the inside of the inner loop ** of a SELECT. @@ -119368,6 +124779,7 @@ static void selectInnerLoop( int iParm = pDest->iSDParm; /* First argument to disposal method */ int nResultCol; /* Number of result columns */ int nPrefixReg = 0; /* Number of extra registers before regResult */ + RowLoadInfo sRowLoadInfo; /* Info for deferred row loading */ /* Usually, regResult is the first cell in an array of memory cells ** containing the current result row. In this case regOrig is set to the @@ -119414,10 +124826,14 @@ static void selectInnerLoop( VdbeComment((v, "%s", p->pEList->a[i].zName)); } }else if( eDest!=SRT_Exists ){ +#ifdef SQLITE_ENABLE_SORTER_REFERENCES + ExprList *pExtra = 0; +#endif /* If the destination is an EXISTS(...) expression, the actual ** values returned by the SELECT are not required. */ - u8 ecelFlags; + u8 ecelFlags; /* "ecel" is an abbreviation of "ExprCodeExprList" */ + ExprList *pEList; if( eDest==SRT_Mem || eDest==SRT_Output || eDest==SRT_Coroutine ){ ecelFlags = SQLITE_ECEL_DUP; }else{ @@ -119431,18 +124847,68 @@ static void selectInnerLoop( ** This allows the p->pEList field to be omitted from the sorted record, ** saving space and CPU cycles. */ ecelFlags |= (SQLITE_ECEL_OMITREF|SQLITE_ECEL_REF); + for(i=pSort->nOBSat; ipOrderBy->nExpr; i++){ int j; if( (j = pSort->pOrderBy->a[i].u.x.iOrderByCol)>0 ){ p->pEList->a[j-1].u.x.iOrderByCol = i+1-pSort->nOBSat; } } - regOrig = 0; +#ifdef SQLITE_ENABLE_SORTER_REFERENCES + selectExprDefer(pParse, pSort, p->pEList, &pExtra); + if( pExtra && pParse->db->mallocFailed==0 ){ + /* If there are any extra PK columns to add to the sorter records, + ** allocate extra memory cells and adjust the OpenEphemeral + ** instruction to account for the larger records. This is only + ** required if there are one or more WITHOUT ROWID tables with + ** composite primary keys in the SortCtx.aDefer[] array. */ + VdbeOp *pOp = sqlite3VdbeGetOp(v, pSort->addrSortIndex); + pOp->p2 += (pExtra->nExpr - pSort->nDefer); + pOp->p4.pKeyInfo->nAllField += (pExtra->nExpr - pSort->nDefer); + pParse->nMem += pExtra->nExpr; + } +#endif + + /* Adjust nResultCol to account for columns that are omitted + ** from the sorter by the optimizations in this branch */ + pEList = p->pEList; + for(i=0; inExpr; i++){ + if( pEList->a[i].u.x.iOrderByCol>0 +#ifdef SQLITE_ENABLE_SORTER_REFERENCES + || pEList->a[i].bSorterRef +#endif + ){ + nResultCol--; + regOrig = 0; + } + } + + testcase( regOrig ); + testcase( eDest==SRT_Set ); + testcase( eDest==SRT_Mem ); + testcase( eDest==SRT_Coroutine ); + testcase( eDest==SRT_Output ); assert( eDest==SRT_Set || eDest==SRT_Mem || eDest==SRT_Coroutine || eDest==SRT_Output ); } - nResultCol = sqlite3ExprCodeExprList(pParse,p->pEList,regResult, - 0,ecelFlags); + sRowLoadInfo.regResult = regResult; + sRowLoadInfo.ecelFlags = ecelFlags; +#ifdef SQLITE_ENABLE_SORTER_REFERENCES + sRowLoadInfo.pExtra = pExtra; + sRowLoadInfo.regExtraResult = regResult + nResultCol; + if( pExtra ) nResultCol += pExtra->nExpr; +#endif + if( p->iLimit + && (ecelFlags & SQLITE_ECEL_OMITREF)!=0 + && nPrefixReg>0 + ){ + assert( pSort!=0 ); + assert( hasDistinct==0 ); + pSort->pDeferredRowLoad = &sRowLoadInfo; + regOrig = 0; + }else{ + innerLoopLoadRow(pParse, p, &sRowLoadInfo); + } } /* If the DISTINCT keyword was present on the SELECT statement @@ -119558,7 +125024,8 @@ static void selectInnerLoop( } #endif if( pSort ){ - pushOntoSorter(pParse, pSort, p, r1+nPrefixReg,regResult,1,nPrefixReg); + assert( regResult==regOrig ); + pushOntoSorter(pParse, pSort, p, r1+nPrefixReg, regOrig, 1, nPrefixReg); }else{ int r2 = sqlite3GetTempReg(pParse); sqlite3VdbeAddOp2(v, OP_NewRowid, iParm, r2); @@ -119588,7 +125055,6 @@ static void selectInnerLoop( assert( sqlite3Strlen30(pDest->zAffSdst)==nResultCol ); sqlite3VdbeAddOp4(v, OP_MakeRecord, regResult, nResultCol, r1, pDest->zAffSdst, nResultCol); - sqlite3ExprCacheAffinityChange(pParse, regResult, nResultCol); sqlite3VdbeAddOp4Int(v, OP_IdxInsert, iParm, r1, regResult, nResultCol); sqlite3ReleaseTempReg(pParse, r1); } @@ -119632,7 +125098,6 @@ static void selectInnerLoop( sqlite3VdbeAddOp1(v, OP_Yield, pDest->iSDParm); }else{ sqlite3VdbeAddOp2(v, OP_ResultRow, regResult, nResultCol); - sqlite3ExprCacheAffinityChange(pParse, regResult, nResultCol); } break; } @@ -119775,7 +125240,7 @@ SQLITE_PRIVATE int sqlite3KeyInfoIsWriteable(KeyInfo *p){ return p->nRef==1; } ** function is responsible for seeing that this structure is eventually ** freed. */ -static KeyInfo *keyInfoFromExprList( +SQLITE_PRIVATE KeyInfo *sqlite3KeyInfoFromExprList( Parse *pParse, /* Parsing context */ ExprList *pList, /* Form the KeyInfo object from this ExprList */ int iStart, /* Begin with this column of pList */ @@ -119825,11 +125290,7 @@ static const char *selectOpName(int id){ ** is determined by the zUsage argument. */ static void explainTempTable(Parse *pParse, const char *zUsage){ - if( pParse->explain==2 ){ - Vdbe *v = pParse->pVdbe; - char *zMsg = sqlite3MPrintf(pParse->db, "USE TEMP B-TREE FOR %s", zUsage); - sqlite3VdbeAddOp4(v, OP_Explain, pParse->iSelectId, 0, 0, zMsg, P4_DYNAMIC); - } + ExplainQueryPlan((pParse, 0, "USE TEMP B-TREE FOR %s", zUsage)); } /* @@ -119847,42 +125308,6 @@ static void explainTempTable(Parse *pParse, const char *zUsage){ # define explainSetInteger(y,z) #endif -#if !defined(SQLITE_OMIT_EXPLAIN) && !defined(SQLITE_OMIT_COMPOUND_SELECT) -/* -** Unless an "EXPLAIN QUERY PLAN" command is being processed, this function -** is a no-op. Otherwise, it adds a single row of output to the EQP result, -** where the caption is of one of the two forms: -** -** "COMPOSITE SUBQUERIES iSub1 and iSub2 (op)" -** "COMPOSITE SUBQUERIES iSub1 and iSub2 USING TEMP B-TREE (op)" -** -** where iSub1 and iSub2 are the integers passed as the corresponding -** function parameters, and op is the text representation of the parameter -** of the same name. The parameter "op" must be one of TK_UNION, TK_EXCEPT, -** TK_INTERSECT or TK_ALL. The first form is used if argument bUseTmp is -** false, or the second form if it is true. -*/ -static void explainComposite( - Parse *pParse, /* Parse context */ - int op, /* One of TK_UNION, TK_EXCEPT etc. */ - int iSub1, /* Subquery id 1 */ - int iSub2, /* Subquery id 2 */ - int bUseTmp /* True if a temp table was used */ -){ - assert( op==TK_UNION || op==TK_EXCEPT || op==TK_INTERSECT || op==TK_ALL ); - if( pParse->explain==2 ){ - Vdbe *v = pParse->pVdbe; - char *zMsg = sqlite3MPrintf( - pParse->db, "COMPOUND SUBQUERIES %d AND %d %s(%s)", iSub1, iSub2, - bUseTmp?"USING TEMP B-TREE ":"", selectOpName(op) - ); - sqlite3VdbeAddOp4(v, OP_Explain, pParse->iSelectId, 0, 0, zMsg, P4_DYNAMIC); - } -} -#else -/* No-op versions of the explainXXX() functions and macros. */ -# define explainComposite(v,w,x,y,z) -#endif /* ** If the inner loop was generated using a non-null pOrderBy argument, @@ -119900,7 +125325,7 @@ static void generateSortTail( Vdbe *v = pParse->pVdbe; /* The prepared statement */ int addrBreak = pSort->labelDone; /* Jump here to exit loop */ int addrContinue = sqlite3VdbeMakeLabel(v); /* Jump here for next cycle */ - int addr; + int addr; /* Top of output loop. Jump for Next. */ int addrOnce = 0; int iTab; ExprList *pOrderBy = pSort->pOrderBy; @@ -119909,11 +125334,11 @@ static void generateSortTail( int regRow; int regRowid; int iCol; - int nKey; + int nKey; /* Number of key columns in sorter record */ int iSortTab; /* Sorter cursor to read from */ - int nSortData; /* Trailing values to read from sorter */ int i; int bSeq; /* True if sorter record includes seq. no. */ + int nRefKey = 0; struct ExprList_item *aOutEx = p->pEList->a; assert( addrBreak<0 ); @@ -119922,15 +125347,24 @@ static void generateSortTail( sqlite3VdbeGoto(v, addrBreak); sqlite3VdbeResolveLabel(v, pSort->labelBkOut); } + +#ifdef SQLITE_ENABLE_SORTER_REFERENCES + /* Open any cursors needed for sorter-reference expressions */ + for(i=0; inDefer; i++){ + Table *pTab = pSort->aDefer[i].pTab; + int iDb = sqlite3SchemaToIndex(pParse->db, pTab->pSchema); + sqlite3OpenTable(pParse, pSort->aDefer[i].iCsr, iDb, pTab, OP_OpenRead); + nRefKey = MAX(nRefKey, pSort->aDefer[i].nKey); + } +#endif + iTab = pSort->iECursor; if( eDest==SRT_Output || eDest==SRT_Coroutine || eDest==SRT_Mem ){ regRowid = 0; regRow = pDest->iSdst; - nSortData = nColumn; }else{ regRowid = sqlite3GetTempReg(pParse); regRow = sqlite3GetTempRange(pParse, nColumn); - nSortData = nColumn; } nKey = pOrderBy->nExpr - pSort->nOBSat; if( pSort->sortFlags & SORTFLAG_UseSorter ){ @@ -119939,7 +125373,8 @@ static void generateSortTail( if( pSort->labelBkOut ){ addrOnce = sqlite3VdbeAddOp0(v, OP_Once); VdbeCoverage(v); } - sqlite3VdbeAddOp3(v, OP_OpenPseudo, iSortTab, regSortOut, nKey+1+nSortData); + sqlite3VdbeAddOp3(v, OP_OpenPseudo, iSortTab, regSortOut, + nKey+1+nColumn+nRefKey); if( addrOnce ) sqlite3VdbeJumpHere(v, addrOnce); addr = 1 + sqlite3VdbeAddOp2(v, OP_SorterSort, iTab, addrBreak); VdbeCoverage(v); @@ -119952,15 +125387,59 @@ static void generateSortTail( iSortTab = iTab; bSeq = 1; } - for(i=0, iCol=nKey+bSeq; inDefer ){ + int iKey = iCol+1; + int regKey = sqlite3GetTempRange(pParse, nRefKey); + + for(i=0; inDefer; i++){ + int iCsr = pSort->aDefer[i].iCsr; + Table *pTab = pSort->aDefer[i].pTab; + int nKey = pSort->aDefer[i].nKey; + + sqlite3VdbeAddOp1(v, OP_NullRow, iCsr); + if( HasRowid(pTab) ){ + sqlite3VdbeAddOp3(v, OP_Column, iSortTab, iKey++, regKey); + sqlite3VdbeAddOp3(v, OP_SeekRowid, iCsr, + sqlite3VdbeCurrentAddr(v)+1, regKey); + }else{ + int k; + int iJmp; + assert( sqlite3PrimaryKeyIndex(pTab)->nKeyCol==nKey ); + for(k=0; k=0; i--){ +#ifdef SQLITE_ENABLE_SORTER_REFERENCES + if( aOutEx[i].bSorterRef ){ + sqlite3ExprCode(pParse, aOutEx[i].pExpr, regRow+i); + }else +#endif + { + int iRead; + if( aOutEx[i].u.x.iOrderByCol ){ + iRead = aOutEx[i].u.x.iOrderByCol-1; + }else{ + iRead = iCol--; + } + sqlite3VdbeAddOp3(v, OP_Column, iSortTab, iRead, regRow+i); + VdbeComment((v, "%s", aOutEx[i].zName?aOutEx[i].zName : aOutEx[i].zSpan)); } - sqlite3VdbeAddOp3(v, OP_Column, iSortTab, iRead, regRow+i); - VdbeComment((v, "%s", aOutEx[i].zName ? aOutEx[i].zName : aOutEx[i].zSpan)); } switch( eDest ){ case SRT_Table: @@ -119975,7 +125454,6 @@ static void generateSortTail( assert( nColumn==sqlite3Strlen30(pDest->zAffSdst) ); sqlite3VdbeAddOp4(v, OP_MakeRecord, regRow, nColumn, regRowid, pDest->zAffSdst, nColumn); - sqlite3ExprCacheAffinityChange(pParse, regRow, nColumn); sqlite3VdbeAddOp4Int(v, OP_IdxInsert, iParm, regRowid, regRow, nColumn); break; } @@ -119990,7 +125468,6 @@ static void generateSortTail( testcase( eDest==SRT_Coroutine ); if( eDest==SRT_Output ){ sqlite3VdbeAddOp2(v, OP_ResultRow, pDest->iSdst, nColumn); - sqlite3ExprCacheAffinityChange(pParse, pDest->iSdst, nColumn); }else{ sqlite3VdbeAddOp1(v, OP_Yield, pDest->iSDParm); } @@ -120110,7 +125587,7 @@ static const char *columnTypeImpl( break; } - assert( pTab && pExpr->pTab==pTab ); + assert( pTab && pExpr->y.pTab==pTab ); if( pS ){ /* The "table" is actually a sub-select or a view in the FROM clause ** of the SELECT statement. Return the declaration type and origin @@ -120278,7 +125755,7 @@ static void generateColumnNames( } #endif - if( pParse->colNamesSet || db->mallocFailed ) return; + if( pParse->colNamesSet ) return; /* Column names are determined by the left-most term of a compound select */ while( pSelect->pPrior ) pSelect = pSelect->pPrior; SELECTTRACE(1,pParse,pSelect,("generating column names\n")); @@ -120295,7 +125772,7 @@ static void generateColumnNames( assert( p!=0 ); assert( p->op!=TK_AGG_COLUMN ); /* Agg processing has not run yet */ - assert( p->op!=TK_COLUMN || p->pTab!=0 ); /* Covering idx not yet coded */ + assert( p->op!=TK_COLUMN || p->y.pTab!=0 ); /* Covering idx not yet coded */ if( pEList->a[i].zName ){ /* An AS clause always takes first priority */ char *zName = pEList->a[i].zName; @@ -120303,7 +125780,7 @@ static void generateColumnNames( }else if( srcName && p->op==TK_COLUMN ){ char *zCol; int iCol = p->iColumn; - pTab = p->pTab; + pTab = p->y.pTab; assert( pTab!=0 ); if( iCol<0 ) iCol = pTab->iPKey; assert( iCol==-1 || (iCol>=0 && iColnCol) ); @@ -120394,7 +125871,7 @@ SQLITE_PRIVATE int sqlite3ColumnsFromExprList( if( pColExpr->op==TK_COLUMN ){ /* For columns use the column name name */ int iCol = pColExpr->iColumn; - Table *pTab = pColExpr->pTab; + Table *pTab = pColExpr->y.pTab; assert( pTab!=0 ); if( iCol<0 ) iCol = pTab->iPKey; zName = iCol>=0 ? pTab->aCol[iCol].zName : "rowid"; @@ -120591,7 +126068,6 @@ static void computeLimitRegisters(Parse *pParse, Select *p, int iBreak){ ** The current implementation interprets "LIMIT 0" to mean ** no rows. */ - sqlite3ExprCacheClear(pParse); if( pLimit ){ assert( pLimit->op==TK_LIMIT ); assert( pLimit->pLeft!=0 ); @@ -120749,6 +126225,13 @@ static void generateWithRecursiveQuery( Expr *pLimit; /* Saved LIMIT and OFFSET */ int regLimit, regOffset; /* Registers used by LIMIT and OFFSET */ +#ifndef SQLITE_OMIT_WINDOWFUNC + if( p->pWin ){ + sqlite3ErrorMsg(pParse, "cannot use window functions in recursive queries"); + return; + } +#endif + /* Obtain authorization to do a recursive query */ if( sqlite3AuthCheck(pParse, SQLITE_RECURSIVE, 0, 0, 0) ) return; @@ -120805,6 +126288,7 @@ static void generateWithRecursiveQuery( /* Store the results of the setup-query in Queue. */ pSetup->pNext = 0; + ExplainQueryPlan((pParse, 1, "SETUP")); rc = sqlite3Select(pParse, pSetup, &destQueue); pSetup->pNext = p; if( rc ) goto end_of_recursive_query; @@ -120839,6 +126323,7 @@ static void generateWithRecursiveQuery( sqlite3ErrorMsg(pParse, "recursive aggregate queries not supported"); }else{ p->pPrior = 0; + ExplainQueryPlan((pParse, 1, "RECURSIVE STEP")); sqlite3Select(pParse, p, &destQueue); assert( p->pPrior==0 ); p->pPrior = pSetup; @@ -120884,10 +126369,9 @@ static int multiSelectValues( Select *p, /* The right-most of SELECTs to be coded */ SelectDest *pDest /* What to do with query results */ ){ - Select *pPrior; - Select *pRightmost = p; int nRow = 1; int rc = 0; + int bShowAll = p->pLimit==0; assert( p->selFlags & SF_MultiValue ); do{ assert( p->selFlags & SF_Values ); @@ -120896,14 +126380,13 @@ static int multiSelectValues( if( p->pPrior==0 ) break; assert( p->pPrior->pNext==p ); p = p->pPrior; - nRow++; + nRow += bShowAll; }while(1); + ExplainQueryPlan((pParse, 0, "SCAN %d CONSTANT ROW%s", nRow, + nRow==1 ? "" : "S")); while( p ){ - pPrior = p->pPrior; - p->pPrior = 0; - rc = sqlite3Select(pParse, p, pDest); - p->pPrior = pPrior; - if( rc || pRightmost->pLimit ) break; + selectInnerLoop(pParse, p, -1, 0, 0, pDest, 1, 1); + if( !bShowAll ) break; p->nSelectRow = nRow; p = p->pNext; } @@ -120952,10 +126435,6 @@ static int multiSelect( SelectDest dest; /* Alternative data destination */ Select *pDelete = 0; /* Chain of simple selects to delete */ sqlite3 *db; /* Database connection */ -#ifndef SQLITE_OMIT_EXPLAIN - int iSub1 = 0; /* EQP id of left-hand query */ - int iSub2 = 0; /* EQP id of right-hand query */ -#endif /* Make sure there is no ORDER BY or LIMIT clause on prior SELECTs. Only ** the last (right-most) SELECT in the series may have an ORDER BY or LIMIT. @@ -121006,217 +126485,231 @@ static int multiSelect( */ if( p->pOrderBy ){ return multiSelectOrderBy(pParse, p, pDest); - }else + }else{ - /* Generate code for the left and right SELECT statements. - */ - switch( p->op ){ - case TK_ALL: { - int addr = 0; - int nLimit; - assert( !pPrior->pLimit ); - pPrior->iLimit = p->iLimit; - pPrior->iOffset = p->iOffset; - pPrior->pLimit = p->pLimit; - explainSetInteger(iSub1, pParse->iNextSelectId); - rc = sqlite3Select(pParse, pPrior, &dest); - p->pLimit = 0; - if( rc ){ - goto multi_select_end; - } - p->pPrior = 0; - p->iLimit = pPrior->iLimit; - p->iOffset = pPrior->iOffset; - if( p->iLimit ){ - addr = sqlite3VdbeAddOp1(v, OP_IfNot, p->iLimit); VdbeCoverage(v); - VdbeComment((v, "Jump ahead if LIMIT reached")); - if( p->iOffset ){ - sqlite3VdbeAddOp3(v, OP_OffsetLimit, - p->iLimit, p->iOffset+1, p->iOffset); +#ifndef SQLITE_OMIT_EXPLAIN + if( pPrior->pPrior==0 ){ + ExplainQueryPlan((pParse, 1, "COMPOUND QUERY")); + ExplainQueryPlan((pParse, 1, "LEFT-MOST SUBQUERY")); + } +#endif + + /* Generate code for the left and right SELECT statements. + */ + switch( p->op ){ + case TK_ALL: { + int addr = 0; + int nLimit; + assert( !pPrior->pLimit ); + pPrior->iLimit = p->iLimit; + pPrior->iOffset = p->iOffset; + pPrior->pLimit = p->pLimit; + rc = sqlite3Select(pParse, pPrior, &dest); + p->pLimit = 0; + if( rc ){ + goto multi_select_end; + } + p->pPrior = 0; + p->iLimit = pPrior->iLimit; + p->iOffset = pPrior->iOffset; + if( p->iLimit ){ + addr = sqlite3VdbeAddOp1(v, OP_IfNot, p->iLimit); VdbeCoverage(v); + VdbeComment((v, "Jump ahead if LIMIT reached")); + if( p->iOffset ){ + sqlite3VdbeAddOp3(v, OP_OffsetLimit, + p->iLimit, p->iOffset+1, p->iOffset); + } } + ExplainQueryPlan((pParse, 1, "UNION ALL")); + rc = sqlite3Select(pParse, p, &dest); + testcase( rc!=SQLITE_OK ); + pDelete = p->pPrior; + p->pPrior = pPrior; + p->nSelectRow = sqlite3LogEstAdd(p->nSelectRow, pPrior->nSelectRow); + if( pPrior->pLimit + && sqlite3ExprIsInteger(pPrior->pLimit->pLeft, &nLimit) + && nLimit>0 && p->nSelectRow > sqlite3LogEst((u64)nLimit) + ){ + p->nSelectRow = sqlite3LogEst((u64)nLimit); + } + if( addr ){ + sqlite3VdbeJumpHere(v, addr); + } + break; } - explainSetInteger(iSub2, pParse->iNextSelectId); - rc = sqlite3Select(pParse, p, &dest); - testcase( rc!=SQLITE_OK ); - pDelete = p->pPrior; - p->pPrior = pPrior; - p->nSelectRow = sqlite3LogEstAdd(p->nSelectRow, pPrior->nSelectRow); - if( pPrior->pLimit - && sqlite3ExprIsInteger(pPrior->pLimit->pLeft, &nLimit) - && nLimit>0 && p->nSelectRow > sqlite3LogEst((u64)nLimit) - ){ - p->nSelectRow = sqlite3LogEst((u64)nLimit); - } - if( addr ){ - sqlite3VdbeJumpHere(v, addr); - } - break; - } - case TK_EXCEPT: - case TK_UNION: { - int unionTab; /* Cursor number of the temporary table holding result */ - u8 op = 0; /* One of the SRT_ operations to apply to self */ - int priorOp; /* The SRT_ operation to apply to prior selects */ - Expr *pLimit; /* Saved values of p->nLimit */ - int addr; - SelectDest uniondest; - - testcase( p->op==TK_EXCEPT ); - testcase( p->op==TK_UNION ); - priorOp = SRT_Union; - if( dest.eDest==priorOp ){ - /* We can reuse a temporary table generated by a SELECT to our - ** right. + case TK_EXCEPT: + case TK_UNION: { + int unionTab; /* Cursor number of the temp table holding result */ + u8 op = 0; /* One of the SRT_ operations to apply to self */ + int priorOp; /* The SRT_ operation to apply to prior selects */ + Expr *pLimit; /* Saved values of p->nLimit */ + int addr; + SelectDest uniondest; + + testcase( p->op==TK_EXCEPT ); + testcase( p->op==TK_UNION ); + priorOp = SRT_Union; + if( dest.eDest==priorOp ){ + /* We can reuse a temporary table generated by a SELECT to our + ** right. + */ + assert( p->pLimit==0 ); /* Not allowed on leftward elements */ + unionTab = dest.iSDParm; + }else{ + /* We will need to create our own temporary table to hold the + ** intermediate results. + */ + unionTab = pParse->nTab++; + assert( p->pOrderBy==0 ); + addr = sqlite3VdbeAddOp2(v, OP_OpenEphemeral, unionTab, 0); + assert( p->addrOpenEphm[0] == -1 ); + p->addrOpenEphm[0] = addr; + findRightmost(p)->selFlags |= SF_UsesEphemeral; + assert( p->pEList ); + } + + /* Code the SELECT statements to our left */ - assert( p->pLimit==0 ); /* Not allowed on leftward elements */ - unionTab = dest.iSDParm; - }else{ - /* We will need to create our own temporary table to hold the - ** intermediate results. + assert( !pPrior->pOrderBy ); + sqlite3SelectDestInit(&uniondest, priorOp, unionTab); + rc = sqlite3Select(pParse, pPrior, &uniondest); + if( rc ){ + goto multi_select_end; + } + + /* Code the current SELECT statement */ - unionTab = pParse->nTab++; + if( p->op==TK_EXCEPT ){ + op = SRT_Except; + }else{ + assert( p->op==TK_UNION ); + op = SRT_Union; + } + p->pPrior = 0; + pLimit = p->pLimit; + p->pLimit = 0; + uniondest.eDest = op; + ExplainQueryPlan((pParse, 1, "%s USING TEMP B-TREE", + selectOpName(p->op))); + rc = sqlite3Select(pParse, p, &uniondest); + testcase( rc!=SQLITE_OK ); + /* Query flattening in sqlite3Select() might refill p->pOrderBy. + ** Be sure to delete p->pOrderBy, therefore, to avoid a memory leak. */ + sqlite3ExprListDelete(db, p->pOrderBy); + pDelete = p->pPrior; + p->pPrior = pPrior; + p->pOrderBy = 0; + if( p->op==TK_UNION ){ + p->nSelectRow = sqlite3LogEstAdd(p->nSelectRow, pPrior->nSelectRow); + } + sqlite3ExprDelete(db, p->pLimit); + p->pLimit = pLimit; + p->iLimit = 0; + p->iOffset = 0; + + /* Convert the data in the temporary table into whatever form + ** it is that we currently need. + */ + assert( unionTab==dest.iSDParm || dest.eDest!=priorOp ); + if( dest.eDest!=priorOp ){ + int iCont, iBreak, iStart; + assert( p->pEList ); + iBreak = sqlite3VdbeMakeLabel(v); + iCont = sqlite3VdbeMakeLabel(v); + computeLimitRegisters(pParse, p, iBreak); + sqlite3VdbeAddOp2(v, OP_Rewind, unionTab, iBreak); VdbeCoverage(v); + iStart = sqlite3VdbeCurrentAddr(v); + selectInnerLoop(pParse, p, unionTab, + 0, 0, &dest, iCont, iBreak); + sqlite3VdbeResolveLabel(v, iCont); + sqlite3VdbeAddOp2(v, OP_Next, unionTab, iStart); VdbeCoverage(v); + sqlite3VdbeResolveLabel(v, iBreak); + sqlite3VdbeAddOp2(v, OP_Close, unionTab, 0); + } + break; + } + default: assert( p->op==TK_INTERSECT ); { + int tab1, tab2; + int iCont, iBreak, iStart; + Expr *pLimit; + int addr; + SelectDest intersectdest; + int r1; + + /* INTERSECT is different from the others since it requires + ** two temporary tables. Hence it has its own case. Begin + ** by allocating the tables we will need. + */ + tab1 = pParse->nTab++; + tab2 = pParse->nTab++; assert( p->pOrderBy==0 ); - addr = sqlite3VdbeAddOp2(v, OP_OpenEphemeral, unionTab, 0); + + addr = sqlite3VdbeAddOp2(v, OP_OpenEphemeral, tab1, 0); assert( p->addrOpenEphm[0] == -1 ); p->addrOpenEphm[0] = addr; findRightmost(p)->selFlags |= SF_UsesEphemeral; assert( p->pEList ); - } - - /* Code the SELECT statements to our left - */ - assert( !pPrior->pOrderBy ); - sqlite3SelectDestInit(&uniondest, priorOp, unionTab); - explainSetInteger(iSub1, pParse->iNextSelectId); - rc = sqlite3Select(pParse, pPrior, &uniondest); - if( rc ){ - goto multi_select_end; - } - - /* Code the current SELECT statement - */ - if( p->op==TK_EXCEPT ){ - op = SRT_Except; - }else{ - assert( p->op==TK_UNION ); - op = SRT_Union; - } - p->pPrior = 0; - pLimit = p->pLimit; - p->pLimit = 0; - uniondest.eDest = op; - explainSetInteger(iSub2, pParse->iNextSelectId); - rc = sqlite3Select(pParse, p, &uniondest); - testcase( rc!=SQLITE_OK ); - /* Query flattening in sqlite3Select() might refill p->pOrderBy. - ** Be sure to delete p->pOrderBy, therefore, to avoid a memory leak. */ - sqlite3ExprListDelete(db, p->pOrderBy); - pDelete = p->pPrior; - p->pPrior = pPrior; - p->pOrderBy = 0; - if( p->op==TK_UNION ){ - p->nSelectRow = sqlite3LogEstAdd(p->nSelectRow, pPrior->nSelectRow); - } - sqlite3ExprDelete(db, p->pLimit); - p->pLimit = pLimit; - p->iLimit = 0; - p->iOffset = 0; - - /* Convert the data in the temporary table into whatever form - ** it is that we currently need. - */ - assert( unionTab==dest.iSDParm || dest.eDest!=priorOp ); - if( dest.eDest!=priorOp ){ - int iCont, iBreak, iStart; + + /* Code the SELECTs to our left into temporary table "tab1". + */ + sqlite3SelectDestInit(&intersectdest, SRT_Union, tab1); + rc = sqlite3Select(pParse, pPrior, &intersectdest); + if( rc ){ + goto multi_select_end; + } + + /* Code the current SELECT into temporary table "tab2" + */ + addr = sqlite3VdbeAddOp2(v, OP_OpenEphemeral, tab2, 0); + assert( p->addrOpenEphm[1] == -1 ); + p->addrOpenEphm[1] = addr; + p->pPrior = 0; + pLimit = p->pLimit; + p->pLimit = 0; + intersectdest.iSDParm = tab2; + ExplainQueryPlan((pParse, 1, "%s USING TEMP B-TREE", + selectOpName(p->op))); + rc = sqlite3Select(pParse, p, &intersectdest); + testcase( rc!=SQLITE_OK ); + pDelete = p->pPrior; + p->pPrior = pPrior; + if( p->nSelectRow>pPrior->nSelectRow ){ + p->nSelectRow = pPrior->nSelectRow; + } + sqlite3ExprDelete(db, p->pLimit); + p->pLimit = pLimit; + + /* Generate code to take the intersection of the two temporary + ** tables. + */ assert( p->pEList ); iBreak = sqlite3VdbeMakeLabel(v); iCont = sqlite3VdbeMakeLabel(v); computeLimitRegisters(pParse, p, iBreak); - sqlite3VdbeAddOp2(v, OP_Rewind, unionTab, iBreak); VdbeCoverage(v); - iStart = sqlite3VdbeCurrentAddr(v); - selectInnerLoop(pParse, p, unionTab, + sqlite3VdbeAddOp2(v, OP_Rewind, tab1, iBreak); VdbeCoverage(v); + r1 = sqlite3GetTempReg(pParse); + iStart = sqlite3VdbeAddOp2(v, OP_RowData, tab1, r1); + sqlite3VdbeAddOp4Int(v, OP_NotFound, tab2, iCont, r1, 0); + VdbeCoverage(v); + sqlite3ReleaseTempReg(pParse, r1); + selectInnerLoop(pParse, p, tab1, 0, 0, &dest, iCont, iBreak); sqlite3VdbeResolveLabel(v, iCont); - sqlite3VdbeAddOp2(v, OP_Next, unionTab, iStart); VdbeCoverage(v); + sqlite3VdbeAddOp2(v, OP_Next, tab1, iStart); VdbeCoverage(v); sqlite3VdbeResolveLabel(v, iBreak); - sqlite3VdbeAddOp2(v, OP_Close, unionTab, 0); + sqlite3VdbeAddOp2(v, OP_Close, tab2, 0); + sqlite3VdbeAddOp2(v, OP_Close, tab1, 0); + break; } - break; } - default: assert( p->op==TK_INTERSECT ); { - int tab1, tab2; - int iCont, iBreak, iStart; - Expr *pLimit; - int addr; - SelectDest intersectdest; - int r1; - - /* INTERSECT is different from the others since it requires - ** two temporary tables. Hence it has its own case. Begin - ** by allocating the tables we will need. - */ - tab1 = pParse->nTab++; - tab2 = pParse->nTab++; - assert( p->pOrderBy==0 ); - - addr = sqlite3VdbeAddOp2(v, OP_OpenEphemeral, tab1, 0); - assert( p->addrOpenEphm[0] == -1 ); - p->addrOpenEphm[0] = addr; - findRightmost(p)->selFlags |= SF_UsesEphemeral; - assert( p->pEList ); - - /* Code the SELECTs to our left into temporary table "tab1". - */ - sqlite3SelectDestInit(&intersectdest, SRT_Union, tab1); - explainSetInteger(iSub1, pParse->iNextSelectId); - rc = sqlite3Select(pParse, pPrior, &intersectdest); - if( rc ){ - goto multi_select_end; - } - - /* Code the current SELECT into temporary table "tab2" - */ - addr = sqlite3VdbeAddOp2(v, OP_OpenEphemeral, tab2, 0); - assert( p->addrOpenEphm[1] == -1 ); - p->addrOpenEphm[1] = addr; - p->pPrior = 0; - pLimit = p->pLimit; - p->pLimit = 0; - intersectdest.iSDParm = tab2; - explainSetInteger(iSub2, pParse->iNextSelectId); - rc = sqlite3Select(pParse, p, &intersectdest); - testcase( rc!=SQLITE_OK ); - pDelete = p->pPrior; - p->pPrior = pPrior; - if( p->nSelectRow>pPrior->nSelectRow ) p->nSelectRow = pPrior->nSelectRow; - sqlite3ExprDelete(db, p->pLimit); - p->pLimit = pLimit; - - /* Generate code to take the intersection of the two temporary - ** tables. - */ - assert( p->pEList ); - iBreak = sqlite3VdbeMakeLabel(v); - iCont = sqlite3VdbeMakeLabel(v); - computeLimitRegisters(pParse, p, iBreak); - sqlite3VdbeAddOp2(v, OP_Rewind, tab1, iBreak); VdbeCoverage(v); - r1 = sqlite3GetTempReg(pParse); - iStart = sqlite3VdbeAddOp2(v, OP_RowData, tab1, r1); - sqlite3VdbeAddOp4Int(v, OP_NotFound, tab2, iCont, r1, 0); VdbeCoverage(v); - sqlite3ReleaseTempReg(pParse, r1); - selectInnerLoop(pParse, p, tab1, - 0, 0, &dest, iCont, iBreak); - sqlite3VdbeResolveLabel(v, iCont); - sqlite3VdbeAddOp2(v, OP_Next, tab1, iStart); VdbeCoverage(v); - sqlite3VdbeResolveLabel(v, iBreak); - sqlite3VdbeAddOp2(v, OP_Close, tab2, 0); - sqlite3VdbeAddOp2(v, OP_Close, tab1, 0); - break; + + #ifndef SQLITE_OMIT_EXPLAIN + if( p->pNext==0 ){ + ExplainQueryPlanPop(pParse); } + #endif } - - explainComposite(pParse, p->op, iSub1, iSub2, p->op!=TK_ALL); - + /* Compute collating sequences used by ** temporary tables needed to implement the compound select. ** Attach the KeyInfo structure to all temporary tables. @@ -121367,7 +126860,6 @@ static int generateOutputSubroutine( r1 = sqlite3GetTempReg(pParse); sqlite3VdbeAddOp4(v, OP_MakeRecord, pIn->iSdst, pIn->nSdst, r1, pDest->zAffSdst, pIn->nSdst); - sqlite3ExprCacheAffinityChange(pParse, pIn->iSdst, pIn->nSdst); sqlite3VdbeAddOp4Int(v, OP_IdxInsert, pDest->iSDParm, r1, pIn->iSdst, pIn->nSdst); sqlite3ReleaseTempReg(pParse, r1); @@ -121410,7 +126902,6 @@ static int generateOutputSubroutine( default: { assert( pDest->eDest==SRT_Output ); sqlite3VdbeAddOp2(v, OP_ResultRow, pIn->iSdst, pIn->nSdst); - sqlite3ExprCacheAffinityChange(pParse, pIn->iSdst, pIn->nSdst); break; } } @@ -121554,10 +127045,6 @@ static int multiSelectOrderBy( ExprList *pOrderBy; /* The ORDER BY clause */ int nOrderBy; /* Number of terms in the ORDER BY clause */ int *aPermute; /* Mapping from ORDER BY terms to result set columns */ -#ifndef SQLITE_OMIT_EXPLAIN - int iSub1; /* EQP id of left-hand query */ - int iSub2; /* EQP id of right-hand query */ -#endif assert( p->pOrderBy!=0 ); assert( pKeyDup==0 ); /* "Managed" code needs this. Ticket #3382. */ @@ -121677,6 +127164,8 @@ static int multiSelectOrderBy( sqlite3SelectDestInit(&destA, SRT_Coroutine, regAddrA); sqlite3SelectDestInit(&destB, SRT_Coroutine, regAddrB); + ExplainQueryPlan((pParse, 1, "MERGE (%s)", selectOpName(p->op))); + /* Generate a coroutine to evaluate the SELECT statement to the ** left of the compound operator - the "A" select. */ @@ -121684,7 +127173,7 @@ static int multiSelectOrderBy( addr1 = sqlite3VdbeAddOp3(v, OP_InitCoroutine, regAddrA, 0, addrSelectA); VdbeComment((v, "left SELECT")); pPrior->iLimit = regLimitA; - explainSetInteger(iSub1, pParse->iNextSelectId); + ExplainQueryPlan((pParse, 1, "LEFT")); sqlite3Select(pParse, pPrior, &destA); sqlite3VdbeEndCoroutine(v, regAddrA); sqlite3VdbeJumpHere(v, addr1); @@ -121699,7 +127188,7 @@ static int multiSelectOrderBy( savedOffset = p->iOffset; p->iLimit = regLimitB; p->iOffset = 0; - explainSetInteger(iSub2, pParse->iNextSelectId); + ExplainQueryPlan((pParse, 1, "RIGHT")); sqlite3Select(pParse, p, &destB); p->iLimit = savedLimit; p->iOffset = savedOffset; @@ -121811,7 +127300,7 @@ static int multiSelectOrderBy( /*** TBD: Insert subroutine calls to close cursors on incomplete **** subqueries ****/ - explainComposite(pParse, p->op, iSub1, iSub2, 0); + ExplainQueryPlanPop(pParse); return pParse->nErr!=0; } #endif @@ -121867,7 +127356,7 @@ static Expr *substExpr( Expr *pCopy = pSubst->pEList->a[pExpr->iColumn].pExpr; Expr ifNullRow; assert( pSubst->pEList!=0 && pExpr->iColumnpEList->nExpr ); - assert( pExpr->pLeft==0 && pExpr->pRight==0 ); + assert( pExpr->pRight==0 ); if( sqlite3ExprIsVector(pCopy) ){ sqlite3VectorErrorMsg(pSubst->pParse, pCopy); }else{ @@ -122081,6 +127570,10 @@ static void substSelect( ** "SELECT x FROM (SELECT max(y), x FROM t1)" would not necessarily ** return the value X for which Y was maximal.) ** +** (25) If either the subquery or the parent query contains a window +** function in the select list or ORDER BY clause, flattening +** is not attempted. +** ** ** In this routine, the "p" parameter is a pointer to the outer query. ** The subquery is p->pSrc->a[iFrom]. isAgg is true if the outer query @@ -122124,6 +127617,10 @@ static int flattenSubquery( pSub = pSubitem->pSelect; assert( pSub!=0 ); +#ifndef SQLITE_OMIT_WINDOWFUNC + if( p->pWin || pSub->pWin ) return 0; /* Restriction (25) */ +#endif + pSubSrc = pSub->pSrc; assert( pSubSrc ); /* Prior to version 3.1.2, when LIMIT and OFFSET had to be simple constants, @@ -122234,8 +127731,8 @@ static int flattenSubquery( assert( (p->selFlags & SF_Recursive)==0 || pSub->pPrior==0 ); /***** If we reach this point, flattening is permitted. *****/ - SELECTTRACE(1,pParse,p,("flatten %s.%p from term %d\n", - pSub->zSelName, pSub, iFrom)); + SELECTTRACE(1,pParse,p,("flatten %u.%p from term %d\n", + pSub->selId, pSub, iFrom)); /* Authorize the subquery */ pParse->zAuthContext = pSubitem->zName; @@ -122286,7 +127783,6 @@ static int flattenSubquery( p->pPrior = 0; p->pLimit = 0; pNew = sqlite3SelectDup(db, p, 0); - sqlite3SelectSetName(pNew, pSub->zSelName); p->pLimit = pLimit; p->pOrderBy = pOrderBy; p->pSrc = pSrc; @@ -122298,9 +127794,8 @@ static int flattenSubquery( if( pPrior ) pPrior->pNext = pNew; pNew->pNext = p; p->pPrior = pNew; - SELECTTRACE(2,pParse,p, - ("compound-subquery flattener creates %s.%p as peer\n", - pNew->zSelName, pNew)); + SELECTTRACE(2,pParse,p,("compound-subquery flattener" + " creates %u as peer\n",pNew->selId)); } if( db->mallocFailed ) return 1; } @@ -122434,7 +127929,6 @@ static int flattenSubquery( pOrderBy->a[i].u.x.iOrderByCol = 0; } assert( pParent->pOrderBy==0 ); - assert( pSub->pPrior==0 ); pParent->pOrderBy = pOrderBy; pSub->pOrderBy = 0; } @@ -122486,7 +127980,183 @@ static int flattenSubquery( } #endif /* !defined(SQLITE_OMIT_SUBQUERY) || !defined(SQLITE_OMIT_VIEW) */ +/* +** A structure to keep track of all of the column values that are fixed to +** a known value due to WHERE clause constraints of the form COLUMN=VALUE. +*/ +typedef struct WhereConst WhereConst; +struct WhereConst { + Parse *pParse; /* Parsing context */ + int nConst; /* Number for COLUMN=CONSTANT terms */ + int nChng; /* Number of times a constant is propagated */ + Expr **apExpr; /* [i*2] is COLUMN and [i*2+1] is VALUE */ +}; +/* +** Add a new entry to the pConst object. Except, do not add duplicate +** pColumn entires. +*/ +static void constInsert( + WhereConst *pConst, /* The WhereConst into which we are inserting */ + Expr *pColumn, /* The COLUMN part of the constraint */ + Expr *pValue /* The VALUE part of the constraint */ +){ + int i; + assert( pColumn->op==TK_COLUMN ); + + /* 2018-10-25 ticket [cf5ed20f] + ** Make sure the same pColumn is not inserted more than once */ + for(i=0; inConst; i++){ + const Expr *pExpr = pConst->apExpr[i*2]; + assert( pExpr->op==TK_COLUMN ); + if( pExpr->iTable==pColumn->iTable + && pExpr->iColumn==pColumn->iColumn + ){ + return; /* Already present. Return without doing anything. */ + } + } + + pConst->nConst++; + pConst->apExpr = sqlite3DbReallocOrFree(pConst->pParse->db, pConst->apExpr, + pConst->nConst*2*sizeof(Expr*)); + if( pConst->apExpr==0 ){ + pConst->nConst = 0; + }else{ + if( ExprHasProperty(pValue, EP_FixedCol) ) pValue = pValue->pLeft; + pConst->apExpr[pConst->nConst*2-2] = pColumn; + pConst->apExpr[pConst->nConst*2-1] = pValue; + } +} + +/* +** Find all terms of COLUMN=VALUE or VALUE=COLUMN in pExpr where VALUE +** is a constant expression and where the term must be true because it +** is part of the AND-connected terms of the expression. For each term +** found, add it to the pConst structure. +*/ +static void findConstInWhere(WhereConst *pConst, Expr *pExpr){ + Expr *pRight, *pLeft; + if( pExpr==0 ) return; + if( ExprHasProperty(pExpr, EP_FromJoin) ) return; + if( pExpr->op==TK_AND ){ + findConstInWhere(pConst, pExpr->pRight); + findConstInWhere(pConst, pExpr->pLeft); + return; + } + if( pExpr->op!=TK_EQ ) return; + pRight = pExpr->pRight; + pLeft = pExpr->pLeft; + assert( pRight!=0 ); + assert( pLeft!=0 ); + if( pRight->op==TK_COLUMN + && !ExprHasProperty(pRight, EP_FixedCol) + && sqlite3ExprIsConstant(pLeft) + && sqlite3IsBinary(sqlite3BinaryCompareCollSeq(pConst->pParse,pLeft,pRight)) + ){ + constInsert(pConst, pRight, pLeft); + }else + if( pLeft->op==TK_COLUMN + && !ExprHasProperty(pLeft, EP_FixedCol) + && sqlite3ExprIsConstant(pRight) + && sqlite3IsBinary(sqlite3BinaryCompareCollSeq(pConst->pParse,pLeft,pRight)) + ){ + constInsert(pConst, pLeft, pRight); + } +} + +/* +** This is a Walker expression callback. pExpr is a candidate expression +** to be replaced by a value. If pExpr is equivalent to one of the +** columns named in pWalker->u.pConst, then overwrite it with its +** corresponding value. +*/ +static int propagateConstantExprRewrite(Walker *pWalker, Expr *pExpr){ + int i; + WhereConst *pConst; + if( pExpr->op!=TK_COLUMN ) return WRC_Continue; + if( ExprHasProperty(pExpr, EP_FixedCol) ) return WRC_Continue; + pConst = pWalker->u.pConst; + for(i=0; inConst; i++){ + Expr *pColumn = pConst->apExpr[i*2]; + if( pColumn==pExpr ) continue; + if( pColumn->iTable!=pExpr->iTable ) continue; + if( pColumn->iColumn!=pExpr->iColumn ) continue; + /* A match is found. Add the EP_FixedCol property */ + pConst->nChng++; + ExprClearProperty(pExpr, EP_Leaf); + ExprSetProperty(pExpr, EP_FixedCol); + assert( pExpr->pLeft==0 ); + pExpr->pLeft = sqlite3ExprDup(pConst->pParse->db, pConst->apExpr[i*2+1], 0); + break; + } + return WRC_Prune; +} + +/* +** The WHERE-clause constant propagation optimization. +** +** If the WHERE clause contains terms of the form COLUMN=CONSTANT or +** CONSTANT=COLUMN that must be tree (in other words, if the terms top-level +** AND-connected terms that are not part of a ON clause from a LEFT JOIN) +** then throughout the query replace all other occurrences of COLUMN +** with CONSTANT within the WHERE clause. +** +** For example, the query: +** +** SELECT * FROM t1, t2, t3 WHERE t1.a=39 AND t2.b=t1.a AND t3.c=t2.b +** +** Is transformed into +** +** SELECT * FROM t1, t2, t3 WHERE t1.a=39 AND t2.b=39 AND t3.c=39 +** +** Return true if any transformations where made and false if not. +** +** Implementation note: Constant propagation is tricky due to affinity +** and collating sequence interactions. Consider this example: +** +** CREATE TABLE t1(a INT,b TEXT); +** INSERT INTO t1 VALUES(123,'0123'); +** SELECT * FROM t1 WHERE a=123 AND b=a; +** SELECT * FROM t1 WHERE a=123 AND b=123; +** +** The two SELECT statements above should return different answers. b=a +** is alway true because the comparison uses numeric affinity, but b=123 +** is false because it uses text affinity and '0123' is not the same as '123'. +** To work around this, the expression tree is not actually changed from +** "b=a" to "b=123" but rather the "a" in "b=a" is tagged with EP_FixedCol +** and the "123" value is hung off of the pLeft pointer. Code generator +** routines know to generate the constant "123" instead of looking up the +** column value. Also, to avoid collation problems, this optimization is +** only attempted if the "a=123" term uses the default BINARY collation. +*/ +static int propagateConstants( + Parse *pParse, /* The parsing context */ + Select *p /* The query in which to propagate constants */ +){ + WhereConst x; + Walker w; + int nChng = 0; + x.pParse = pParse; + do{ + x.nConst = 0; + x.nChng = 0; + x.apExpr = 0; + findConstInWhere(&x, p->pWhere); + if( x.nConst ){ + memset(&w, 0, sizeof(w)); + w.pParse = pParse; + w.xExprCallback = propagateConstantExprRewrite; + w.xSelectCallback = sqlite3SelectWalkNoop; + w.xSelectCallback2 = 0; + w.walkerDepth = 0; + w.u.pConst = &x; + sqlite3WalkExpr(&w, p->pWhere); + sqlite3DbFree(x.pParse->db, x.apExpr); + nChng += x.nChng; + } + }while( x.nChng ); + return nChng; +} #if !defined(SQLITE_OMIT_SUBQUERY) || !defined(SQLITE_OMIT_VIEW) /* @@ -122516,14 +128186,28 @@ static int flattenSubquery( ** (2) The inner query is the recursive part of a common table expression. ** ** (3) The inner query has a LIMIT clause (since the changes to the WHERE -** close would change the meaning of the LIMIT). +** clause would change the meaning of the LIMIT). ** -** (4) The inner query is the right operand of a LEFT JOIN. (The caller -** enforces this restriction since this routine does not have enough -** information to know.) +** (4) The inner query is the right operand of a LEFT JOIN and the +** expression to be pushed down does not come from the ON clause +** on that LEFT JOIN. ** ** (5) The WHERE clause expression originates in the ON or USING clause -** of a LEFT JOIN. +** of a LEFT JOIN where iCursor is not the right-hand table of that +** left join. An example: +** +** SELECT * +** FROM (SELECT 1 AS a1 UNION ALL SELECT 2) AS aa +** JOIN (SELECT 1 AS b2 UNION ALL SELECT 2) AS bb ON (a1=b2) +** LEFT JOIN (SELECT 8 AS c3 UNION ALL SELECT 9) AS cc ON (b2=2); +** +** The correct answer is three rows: (1,1,NULL),(2,2,8),(2,2,9). +** But if the (b2=2) term were to be pushed down into the bb subquery, +** then the (1,1,NULL) row would be suppressed. +** +** (6) The inner query features one or more window-functions (since +** changes to the WHERE clause of the inner query could change the +** window over which window functions are calculated). ** ** Return 0 if no changes are made and non-zero if one or more WHERE clause ** terms are duplicated into the subquery. @@ -122532,13 +128216,18 @@ static int pushDownWhereTerms( Parse *pParse, /* Parse context (for malloc() and error reporting) */ Select *pSubq, /* The subquery whose WHERE clause is to be augmented */ Expr *pWhere, /* The WHERE clause of the outer query */ - int iCursor /* Cursor number of the subquery */ + int iCursor, /* Cursor number of the subquery */ + int isLeftJoin /* True if pSubq is the right term of a LEFT JOIN */ ){ Expr *pNew; int nChng = 0; if( pWhere==0 ) return 0; if( pSubq->selFlags & SF_Recursive ) return 0; /* restriction (2) */ +#ifndef SQLITE_OMIT_WINDOWFUNC + if( pSubq->pWin ) return 0; /* restriction (6) */ +#endif + #ifdef SQLITE_DEBUG /* Only the first term of a compound can have a WITH clause. But make ** sure no other terms are marked SF_Recursive in case something changes @@ -122556,15 +128245,25 @@ static int pushDownWhereTerms( return 0; /* restriction (3) */ } while( pWhere->op==TK_AND ){ - nChng += pushDownWhereTerms(pParse, pSubq, pWhere->pRight, iCursor); + nChng += pushDownWhereTerms(pParse, pSubq, pWhere->pRight, + iCursor, isLeftJoin); pWhere = pWhere->pLeft; } - if( ExprHasProperty(pWhere,EP_FromJoin) ) return 0; /* restriction (5) */ + if( isLeftJoin + && (ExprHasProperty(pWhere,EP_FromJoin)==0 + || pWhere->iRightJoinTable!=iCursor) + ){ + return 0; /* restriction (4) */ + } + if( ExprHasProperty(pWhere,EP_FromJoin) && pWhere->iRightJoinTable!=iCursor ){ + return 0; /* restriction (5) */ + } if( sqlite3ExprIsTableConstant(pWhere, iCursor) ){ nChng++; while( pSubq ){ SubstContext x; pNew = sqlite3ExprDup(pParse->db, pWhere, 0); + unsetJoinExpr(pNew, -1); x.pParse = pParse; x.iTable = iCursor; x.iNewTable = iCursor; @@ -122974,6 +128673,35 @@ static void selectPopWith(Walker *pWalker, Select *p){ #define selectPopWith 0 #endif +/* +** The SrcList_item structure passed as the second argument represents a +** sub-query in the FROM clause of a SELECT statement. This function +** allocates and populates the SrcList_item.pTab object. If successful, +** SQLITE_OK is returned. Otherwise, if an OOM error is encountered, +** SQLITE_NOMEM. +*/ +SQLITE_PRIVATE int sqlite3ExpandSubquery(Parse *pParse, struct SrcList_item *pFrom){ + Select *pSel = pFrom->pSelect; + Table *pTab; + + assert( pSel ); + pFrom->pTab = pTab = sqlite3DbMallocZero(pParse->db, sizeof(Table)); + if( pTab==0 ) return SQLITE_NOMEM; + pTab->nTabRef = 1; + if( pFrom->zAlias ){ + pTab->zName = sqlite3DbStrDup(pParse->db, pFrom->zAlias); + }else{ + pTab->zName = sqlite3MPrintf(pParse->db, "subquery_%u", pSel->selId); + } + while( pSel->pPrior ){ pSel = pSel->pPrior; } + sqlite3ColumnsFromExprList(pParse, pSel->pEList,&pTab->nCol,&pTab->aCol); + pTab->iPKey = -1; + pTab->nRowLogEst = 200; assert( 200==sqlite3LogEst(1048576) ); + pTab->tabFlags |= TF_Ephemeral; + + return SQLITE_OK; +} + /* ** This routine is a Walker callback for "expanding" a SELECT statement. ** "Expanding" means to do the following: @@ -123019,9 +128747,7 @@ static int selectExpander(Walker *pWalker, Select *p){ } pTabList = p->pSrc; pEList = p->pEList; - if( OK_IF_ALWAYS_TRUE(p->pWith) ){ - sqlite3WithPush(pParse, p->pWith, 0); - } + sqlite3WithPush(pParse, p->pWith, 0); /* Make sure cursor numbers have been assigned to all entries in ** the FROM clause of the SELECT statement. @@ -123048,19 +128774,7 @@ static int selectExpander(Walker *pWalker, Select *p){ assert( pSel!=0 ); assert( pFrom->pTab==0 ); if( sqlite3WalkSelect(pWalker, pSel) ) return WRC_Abort; - pFrom->pTab = pTab = sqlite3DbMallocZero(db, sizeof(Table)); - if( pTab==0 ) return WRC_Abort; - pTab->nTabRef = 1; - if( pFrom->zAlias ){ - pTab->zName = sqlite3DbStrDup(db, pFrom->zAlias); - }else{ - pTab->zName = sqlite3MPrintf(db, "subquery_%p", (void*)pTab); - } - while( pSel->pPrior ){ pSel = pSel->pPrior; } - sqlite3ColumnsFromExprList(pParse, pSel->pEList,&pTab->nCol,&pTab->aCol); - pTab->iPKey = -1; - pTab->nRowLogEst = 200; assert( 200==sqlite3LogEst(1048576) ); - pTab->tabFlags |= TF_Ephemeral; + if( sqlite3ExpandSubquery(pParse, pFrom) ) return WRC_Abort; #endif }else{ /* An ordinary table or view name in the FROM clause */ @@ -123083,7 +128797,6 @@ static int selectExpander(Walker *pWalker, Select *p){ if( sqlite3ViewGetColumnNames(pParse, pTab) ) return WRC_Abort; assert( pFrom->pSelect==0 ); pFrom->pSelect = sqlite3SelectDup(db, pTab->pSelect, 0); - sqlite3SelectSetName(pFrom->pSelect, pTab->zName); nCol = pTab->nCol; pTab->nCol = -1; sqlite3WalkSelect(pWalker, pFrom->pSelect); @@ -123361,7 +129074,7 @@ static void selectAddSubqueryTypeInfo(Walker *pWalker, Select *p){ struct SrcList_item *pFrom; assert( p->selFlags & SF_Resolved ); - assert( (p->selFlags & SF_HasTypeInfo)==0 ); + if( p->selFlags & SF_HasTypeInfo ) return; p->selFlags |= SF_HasTypeInfo; pParse = pWalker->pParse; pTabList = p->pSrc; @@ -123464,7 +129177,7 @@ static void resetAccumulator(Parse *pParse, AggInfo *pAggInfo){ "argument"); pFunc->iDistinct = -1; }else{ - KeyInfo *pKeyInfo = keyInfoFromExprList(pParse, pE->x.pList, 0, 0); + KeyInfo *pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pE->x.pList,0,0); sqlite3VdbeAddOp4(v, OP_OpenEphemeral, pFunc->iDistinct, 0, 0, (char*)pKeyInfo, P4_KEYINFO); } @@ -123488,11 +129201,17 @@ static void finalizeAggFunctions(Parse *pParse, AggInfo *pAggInfo){ } } + /* ** Update the accumulator memory cells for an aggregate based on ** the current cursor position. +** +** If regAcc is non-zero and there are no min() or max() aggregates +** in pAggInfo, then only populate the pAggInfo->nAccumulator accumulator +** registers i register regAcc contains 0. The caller will take care +** of setting and clearing regAcc. */ -static void updateAccumulator(Parse *pParse, AggInfo *pAggInfo){ +static void updateAccumulator(Parse *pParse, int regAcc, AggInfo *pAggInfo){ Vdbe *v = pParse->pVdbe; int i; int regHit = 0; @@ -123535,36 +129254,24 @@ static void updateAccumulator(Parse *pParse, AggInfo *pAggInfo){ if( regHit==0 && pAggInfo->nAccumulator ) regHit = ++pParse->nMem; sqlite3VdbeAddOp4(v, OP_CollSeq, regHit, 0, 0, (char *)pColl, P4_COLLSEQ); } - sqlite3VdbeAddOp3(v, OP_AggStep0, 0, regAgg, pF->iMem); + sqlite3VdbeAddOp3(v, OP_AggStep, 0, regAgg, pF->iMem); sqlite3VdbeAppendP4(v, pF->pFunc, P4_FUNCDEF); sqlite3VdbeChangeP5(v, (u8)nArg); - sqlite3ExprCacheAffinityChange(pParse, regAgg, nArg); sqlite3ReleaseTempRange(pParse, regAgg, nArg); if( addrNext ){ sqlite3VdbeResolveLabel(v, addrNext); - sqlite3ExprCacheClear(pParse); } } - - /* Before populating the accumulator registers, clear the column cache. - ** Otherwise, if any of the required column values are already present - ** in registers, sqlite3ExprCode() may use OP_SCopy to copy the value - ** to pC->iMem. But by the time the value is used, the original register - ** may have been used, invalidating the underlying buffer holding the - ** text or blob value. See ticket [883034dcb5]. - ** - ** Another solution would be to change the OP_SCopy used to copy cached - ** values to an OP_Copy. - */ + if( regHit==0 && pAggInfo->nAccumulator ){ + regHit = regAcc; + } if( regHit ){ addrHitTest = sqlite3VdbeAddOp1(v, OP_If, regHit); VdbeCoverage(v); } - sqlite3ExprCacheClear(pParse); for(i=0, pC=pAggInfo->aCol; inAccumulator; i++, pC++){ sqlite3ExprCode(pParse, pC->pExpr, pC->iMem); } pAggInfo->directMode = 0; - sqlite3ExprCacheClear(pParse); if( addrHitTest ){ sqlite3VdbeJumpHere(v, addrHitTest); } @@ -123582,28 +129289,17 @@ static void explainSimpleCount( ){ if( pParse->explain==2 ){ int bCover = (pIdx!=0 && (HasRowid(pTab) || !IsPrimaryKeyIndex(pIdx))); - char *zEqp = sqlite3MPrintf(pParse->db, "SCAN TABLE %s%s%s", + sqlite3VdbeExplain(pParse, 0, "SCAN TABLE %s%s%s", pTab->zName, bCover ? " USING COVERING INDEX " : "", bCover ? pIdx->zName : "" ); - sqlite3VdbeAddOp4( - pParse->pVdbe, OP_Explain, pParse->iSelectId, 0, 0, zEqp, P4_DYNAMIC - ); } } #else # define explainSimpleCount(a,b,c) #endif -/* -** Context object for havingToWhereExprCb(). -*/ -struct HavingToWhereCtx { - Expr **ppWhere; - ExprList *pGroupBy; -}; - /* ** sqlite3WalkExpr() callback used by havingToWhere(). ** @@ -123617,15 +129313,16 @@ struct HavingToWhereCtx { */ static int havingToWhereExprCb(Walker *pWalker, Expr *pExpr){ if( pExpr->op!=TK_AND ){ - struct HavingToWhereCtx *p = pWalker->u.pHavingCtx; - if( sqlite3ExprIsConstantOrGroupBy(pWalker->pParse, pExpr, p->pGroupBy) ){ + Select *pS = pWalker->u.pSelect; + if( sqlite3ExprIsConstantOrGroupBy(pWalker->pParse, pExpr, pS->pGroupBy) ){ sqlite3 *db = pWalker->pParse->db; Expr *pNew = sqlite3ExprAlloc(db, TK_INTEGER, &sqlite3IntTokens[1], 0); if( pNew ){ - Expr *pWhere = *(p->ppWhere); + Expr *pWhere = pS->pWhere; SWAP(Expr, *pNew, *pExpr); pNew = sqlite3ExprAnd(db, pWhere, pNew); - *(p->ppWhere) = pNew; + pS->pWhere = pNew; + pWalker->eCode = 1; } } return WRC_Prune; @@ -123648,23 +129345,19 @@ static int havingToWhereExprCb(Walker *pWalker, Expr *pExpr){ ** entirely of constants and expressions that are also GROUP BY terms that ** use the "BINARY" collation sequence. */ -static void havingToWhere( - Parse *pParse, - ExprList *pGroupBy, - Expr *pHaving, - Expr **ppWhere -){ - struct HavingToWhereCtx sCtx; +static void havingToWhere(Parse *pParse, Select *p){ Walker sWalker; - - sCtx.ppWhere = ppWhere; - sCtx.pGroupBy = pGroupBy; - memset(&sWalker, 0, sizeof(sWalker)); sWalker.pParse = pParse; sWalker.xExprCallback = havingToWhereExprCb; - sWalker.u.pHavingCtx = &sCtx; - sqlite3WalkExpr(&sWalker, pHaving); + sWalker.u.pSelect = p; + sqlite3WalkExpr(&sWalker, p->pHaving); +#if SELECTTRACE_ENABLED + if( sWalker.eCode && (sqlite3SelectTrace & 0x100)!=0 ){ + SELECTTRACE(0x100,pParse,p,("Move HAVING terms into WHERE:\n")); + sqlite3TreeViewSelect(0, p, 0); + } +#endif } /* @@ -123708,6 +129401,7 @@ static struct SrcList_item *isSelfJoinView( ** The transformation only works if all of the following are true: ** ** * The subquery is a UNION ALL of two or more terms +** * The subquery does not have a LIMIT clause ** * There is no WHERE or GROUP BY or HAVING clauses on the subqueries ** * The outer query is a simple count(*) ** @@ -123731,6 +129425,7 @@ static int countOfViewOptimization(Parse *pParse, Select *p){ do{ if( pSub->op!=TK_ALL && pSub->pPrior ) return 0; /* Must be UNION ALL */ if( pSub->pWhere ) return 0; /* No WHERE clause */ + if( pSub->pLimit ) return 0; /* No LIMIT clause */ if( pSub->selFlags & SF_Aggregate ) return 0; /* Not an aggregate */ pSub = pSub->pPrior; /* Repeat over compound */ }while( pSub ); @@ -123813,20 +129508,15 @@ SQLITE_PRIVATE int sqlite3Select( ExprList *pMinMaxOrderBy = 0; /* Added ORDER BY for min/max queries */ u8 minMaxFlag; /* Flag for min/max queries */ -#ifndef SQLITE_OMIT_EXPLAIN - int iRestoreSelectId = pParse->iSelectId; - pParse->iSelectId = pParse->iNextSelectId++; -#endif - db = pParse->db; + v = sqlite3GetVdbe(pParse); if( p==0 || db->mallocFailed || pParse->nErr ){ return 1; } if( sqlite3AuthCheck(pParse, SQLITE_SELECT, 0, 0, 0) ) return 1; memset(&sAggInfo, 0, sizeof(sAggInfo)); #if SELECTTRACE_ENABLED - pParse->nSelectIndent++; - SELECTTRACE(1,pParse,p, ("begin processing:\n")); + SELECTTRACE(1,pParse,p, ("begin processing:\n", pParse->addrExplain)); if( sqlite3SelectTrace & 0x100 ){ sqlite3TreeViewSelect(0, p, 0); } @@ -123848,36 +129538,60 @@ SQLITE_PRIVATE int sqlite3Select( p->selFlags &= ~SF_Distinct; } sqlite3SelectPrep(pParse, p, 0); - memset(&sSort, 0, sizeof(sSort)); - sSort.pOrderBy = p->pOrderBy; - pTabList = p->pSrc; if( pParse->nErr || db->mallocFailed ){ goto select_end; } assert( p->pEList!=0 ); - isAgg = (p->selFlags & SF_Aggregate)!=0; #if SELECTTRACE_ENABLED - if( sqlite3SelectTrace & 0x100 ){ - SELECTTRACE(0x100,pParse,p, ("after name resolution:\n")); + if( sqlite3SelectTrace & 0x104 ){ + SELECTTRACE(0x104,pParse,p, ("after name resolution:\n")); sqlite3TreeViewSelect(0, p, 0); } #endif - /* Get a pointer the VDBE under construction, allocating a new VDBE if one - ** does not already exist */ - v = sqlite3GetVdbe(pParse); - if( v==0 ) goto select_end; if( pDest->eDest==SRT_Output ){ generateColumnNames(pParse, p); } - /* Try to flatten subqueries in the FROM clause up into the main query +#ifndef SQLITE_OMIT_WINDOWFUNC + if( sqlite3WindowRewrite(pParse, p) ){ + goto select_end; + } +#if SELECTTRACE_ENABLED + if( sqlite3SelectTrace & 0x108 ){ + SELECTTRACE(0x104,pParse,p, ("after window rewrite:\n")); + sqlite3TreeViewSelect(0, p, 0); + } +#endif +#endif /* SQLITE_OMIT_WINDOWFUNC */ + pTabList = p->pSrc; + isAgg = (p->selFlags & SF_Aggregate)!=0; + memset(&sSort, 0, sizeof(sSort)); + sSort.pOrderBy = p->pOrderBy; + + /* Try to various optimizations (flattening subqueries, and strength + ** reduction of join operators) in the FROM clause up into the main query */ #if !defined(SQLITE_OMIT_SUBQUERY) || !defined(SQLITE_OMIT_VIEW) for(i=0; !p->pPrior && inSrc; i++){ struct SrcList_item *pItem = &pTabList->a[i]; Select *pSub = pItem->pSelect; Table *pTab = pItem->pTab; + + /* Convert LEFT JOIN into JOIN if there are terms of the right table + ** of the LEFT JOIN used in the WHERE clause. + */ + if( (pItem->fg.jointype & JT_LEFT)!=0 + && sqlite3ExprImpliesNonNullRow(p->pWhere, pItem->iCursor) + && OptimizationEnabled(db, SQLITE_SimplifyJoin) + ){ + SELECTTRACE(0x100,pParse,p, + ("LEFT-JOIN simplifies to JOIN on term %d\n",i)); + pItem->fg.jointype &= ~(JT_LEFT|JT_OUTER); + unsetJoinExpr(p->pWhere, pItem->iCursor); + } + + /* No futher action if this term of the FROM clause is no a subquery */ if( pSub==0 ) continue; /* Catch mismatch in the declared columns of a view and the number of @@ -123943,15 +129657,46 @@ SQLITE_PRIVATE int sqlite3Select( */ if( p->pPrior ){ rc = multiSelect(pParse, p, pDest); - explainSetInteger(pParse->iSelectId, iRestoreSelectId); #if SELECTTRACE_ENABLED - SELECTTRACE(1,pParse,p,("end compound-select processing\n")); - pParse->nSelectIndent--; + SELECTTRACE(0x1,pParse,p,("end compound-select processing\n")); + if( (sqlite3SelectTrace & 0x2000)!=0 && ExplainQueryPlanParent(pParse)==0 ){ + sqlite3TreeViewSelect(0, p, 0); + } #endif + if( p->pNext==0 ) ExplainQueryPlanPop(pParse); return rc; } #endif + /* Do the WHERE-clause constant propagation optimization if this is + ** a join. No need to speed time on this operation for non-join queries + ** as the equivalent optimization will be handled by query planner in + ** sqlite3WhereBegin(). + */ + if( pTabList->nSrc>1 + && OptimizationEnabled(db, SQLITE_PropagateConst) + && propagateConstants(pParse, p) + ){ +#if SELECTTRACE_ENABLED + if( sqlite3SelectTrace & 0x100 ){ + SELECTTRACE(0x100,pParse,p,("After constant propagation:\n")); + sqlite3TreeViewSelect(0, p, 0); + } +#endif + }else{ + SELECTTRACE(0x100,pParse,p,("Constant propagation not helpful\n")); + } + +#ifdef SQLITE_COUNTOFVIEW_OPTIMIZATION + if( OptimizationEnabled(db, SQLITE_QueryFlattener|SQLITE_CountOfView) + && countOfViewOptimization(pParse, p) + ){ + if( db->mallocFailed ) goto select_end; + pEList = p->pEList; + pTabList = p->pSrc; + } +#endif + /* For each term in the FROM clause, do two things: ** (1) Authorized unreferenced tables ** (2) Generate code for all sub-queries @@ -124019,15 +129764,19 @@ SQLITE_PRIVATE int sqlite3Select( /* Make copies of constant WHERE-clause terms in the outer query down ** inside the subquery. This can help the subquery to run more efficiently. */ - if( (pItem->fg.jointype & JT_OUTER)==0 - && pushDownWhereTerms(pParse, pSub, p->pWhere, pItem->iCursor) + if( OptimizationEnabled(db, SQLITE_PushDown) + && pushDownWhereTerms(pParse, pSub, p->pWhere, pItem->iCursor, + (pItem->fg.jointype & JT_OUTER)!=0) ){ #if SELECTTRACE_ENABLED if( sqlite3SelectTrace & 0x100 ){ - SELECTTRACE(0x100,pParse,p,("After WHERE-clause push-down:\n")); + SELECTTRACE(0x100,pParse,p, + ("After WHERE-clause push-down into subquery %d:\n", pSub->selId)); sqlite3TreeViewSelect(0, p, 0); } #endif + }else{ + SELECTTRACE(0x100,pParse,p,("Push-down not possible\n")); } zSavedAuthContext = pParse->zAuthContext; @@ -124056,7 +129805,7 @@ SQLITE_PRIVATE int sqlite3Select( VdbeComment((v, "%s", pItem->pTab->zName)); pItem->addrFillSub = addrTop; sqlite3SelectDestInit(&dest, SRT_Coroutine, pItem->regReturn); - explainSetInteger(pItem->iSelectId, (u8)pParse->iNextSelectId); + ExplainQueryPlan((pParse, 1, "CO-ROUTINE %u", pSub->selId)); sqlite3Select(pParse, pSub, &dest); pItem->pTab->nRowLogEst = pSub->nSelectRow; pItem->fg.viaCoroutine = 1; @@ -124091,12 +129840,11 @@ SQLITE_PRIVATE int sqlite3Select( pPrior = isSelfJoinView(pTabList, pItem); if( pPrior ){ sqlite3VdbeAddOp2(v, OP_OpenDup, pItem->iCursor, pPrior->iCursor); - explainSetInteger(pItem->iSelectId, pPrior->iSelectId); assert( pPrior->pSelect!=0 ); pSub->nSelectRow = pPrior->pSelect->nSelectRow; }else{ sqlite3SelectDestInit(&dest, SRT_EphemTab, pItem->iCursor); - explainSetInteger(pItem->iSelectId, (u8)pParse->iNextSelectId); + ExplainQueryPlan((pParse, 1, "MATERIALIZE %u", pSub->selId)); sqlite3Select(pParse, pSub, &dest); } pItem->pTab->nRowLogEst = pSub->nSelectRow; @@ -124127,16 +129875,6 @@ SQLITE_PRIVATE int sqlite3Select( } #endif -#ifdef SQLITE_COUNTOFVIEW_OPTIMIZATION - if( OptimizationEnabled(db, SQLITE_QueryFlattener|SQLITE_CountOfView) - && countOfViewOptimization(pParse, p) - ){ - if( db->mallocFailed ) goto select_end; - pEList = p->pEList; - pTabList = p->pSrc; - } -#endif - /* If the query is DISTINCT with an ORDER BY but is not an aggregate, and ** if the select-list is the same as the ORDER BY list, then this query ** can be rewritten as a GROUP BY. In other words, this: @@ -124180,7 +129918,8 @@ SQLITE_PRIVATE int sqlite3Select( */ if( sSort.pOrderBy ){ KeyInfo *pKeyInfo; - pKeyInfo = keyInfoFromExprList(pParse, sSort.pOrderBy, 0, pEList->nExpr); + pKeyInfo = sqlite3KeyInfoFromExprList( + pParse, sSort.pOrderBy, 0, pEList->nExpr); sSort.iECursor = pParse->nTab++; sSort.addrSortIndex = sqlite3VdbeAddOp4(v, OP_OpenEphemeral, @@ -124214,9 +129953,9 @@ SQLITE_PRIVATE int sqlite3Select( if( p->selFlags & SF_Distinct ){ sDistinct.tabTnct = pParse->nTab++; sDistinct.addrTnct = sqlite3VdbeAddOp4(v, OP_OpenEphemeral, - sDistinct.tabTnct, 0, 0, - (char*)keyInfoFromExprList(pParse, p->pEList,0,0), - P4_KEYINFO); + sDistinct.tabTnct, 0, 0, + (char*)sqlite3KeyInfoFromExprList(pParse, p->pEList,0,0), + P4_KEYINFO); sqlite3VdbeChangeP5(v, BTREE_UNORDERED); sDistinct.eTnctType = WHERE_DISTINCT_UNORDERED; }else{ @@ -124225,11 +129964,19 @@ SQLITE_PRIVATE int sqlite3Select( if( !isAgg && pGroupBy==0 ){ /* No aggregate functions and no GROUP BY clause */ - u16 wctrlFlags = (sDistinct.isTnct ? WHERE_WANT_DISTINCT : 0); + u16 wctrlFlags = (sDistinct.isTnct ? WHERE_WANT_DISTINCT : 0) + | (p->selFlags & SF_FixedLimit); +#ifndef SQLITE_OMIT_WINDOWFUNC + Window *pWin = p->pWin; /* Master window object (or NULL) */ + if( pWin ){ + sqlite3WindowCodeInit(pParse, pWin); + } +#endif assert( WHERE_USE_LIMIT==SF_FixedLimit ); - wctrlFlags |= p->selFlags & SF_FixedLimit; + /* Begin the database scan. */ + SELECTTRACE(1,pParse,p,("WhereBegin\n")); pWInfo = sqlite3WhereBegin(pParse, pTabList, pWhere, sSort.pOrderBy, p->pEList, wctrlFlags, p->nSelectRow); if( pWInfo==0 ) goto select_end; @@ -124241,7 +129988,7 @@ SQLITE_PRIVATE int sqlite3Select( } if( sSort.pOrderBy ){ sSort.nOBSat = sqlite3WhereIsOrdered(pWInfo); - sSort.bOrderedInnerLoop = sqlite3WhereOrderedInnerLoop(pWInfo); + sSort.labelOBLopt = sqlite3WhereOrderByLimitOptLabel(pWInfo); if( sSort.nOBSat==sSort.pOrderBy->nExpr ){ sSort.pOrderBy = 0; } @@ -124255,15 +130002,37 @@ SQLITE_PRIVATE int sqlite3Select( sqlite3VdbeChangeToNoop(v, sSort.addrSortIndex); } - /* Use the standard inner loop. */ assert( p->pEList==pEList ); - selectInnerLoop(pParse, p, -1, &sSort, &sDistinct, pDest, - sqlite3WhereContinueLabel(pWInfo), - sqlite3WhereBreakLabel(pWInfo)); +#ifndef SQLITE_OMIT_WINDOWFUNC + if( pWin ){ + int addrGosub = sqlite3VdbeMakeLabel(v); + int iCont = sqlite3VdbeMakeLabel(v); + int iBreak = sqlite3VdbeMakeLabel(v); + int regGosub = ++pParse->nMem; + + sqlite3WindowCodeStep(pParse, p, pWInfo, regGosub, addrGosub); + + sqlite3VdbeAddOp2(v, OP_Goto, 0, iBreak); + sqlite3VdbeResolveLabel(v, addrGosub); + VdbeNoopComment((v, "inner-loop subroutine")); + sSort.labelOBLopt = 0; + selectInnerLoop(pParse, p, -1, &sSort, &sDistinct, pDest, iCont, iBreak); + sqlite3VdbeResolveLabel(v, iCont); + sqlite3VdbeAddOp1(v, OP_Return, regGosub); + VdbeComment((v, "end inner-loop subroutine")); + sqlite3VdbeResolveLabel(v, iBreak); + }else +#endif /* SQLITE_OMIT_WINDOWFUNC */ + { + /* Use the standard inner loop. */ + selectInnerLoop(pParse, p, -1, &sSort, &sDistinct, pDest, + sqlite3WhereContinueLabel(pWInfo), + sqlite3WhereBreakLabel(pWInfo)); - /* End the database scan loop. - */ - sqlite3WhereEnd(pWInfo); + /* End the database scan loop. + */ + sqlite3WhereEnd(pWInfo); + } }else{ /* This case when there exist aggregate functions or a GROUP BY clause ** or both */ @@ -124322,7 +130091,8 @@ SQLITE_PRIVATE int sqlite3Select( memset(&sNC, 0, sizeof(sNC)); sNC.pParse = pParse; sNC.pSrcList = pTabList; - sNC.pAggInfo = &sAggInfo; + sNC.uNC.pAggInfo = &sAggInfo; + VVA_ONLY( sNC.ncFlags = NC_UAggInfo; ) sAggInfo.mnReg = pParse->nMem+1; sAggInfo.nSortingColumn = pGroupBy ? pGroupBy->nExpr : 0; sAggInfo.pGroupBy = pGroupBy; @@ -124331,7 +130101,9 @@ SQLITE_PRIVATE int sqlite3Select( if( pHaving ){ if( pGroupBy ){ assert( pWhere==p->pWhere ); - havingToWhere(pParse, pGroupBy, pHaving, &p->pWhere); + assert( pHaving==p->pHaving ); + assert( pGroupBy==p->pGroupBy ); + havingToWhere(pParse, p); pWhere = p->pWhere; } sqlite3ExprAnalyzeAggregates(&sNC, pHaving); @@ -124389,7 +130161,7 @@ SQLITE_PRIVATE int sqlite3Select( ** will be converted into a Noop. */ sAggInfo.sortingIdx = pParse->nTab++; - pKeyInfo = keyInfoFromExprList(pParse, pGroupBy, 0, sAggInfo.nColumn); + pKeyInfo = sqlite3KeyInfoFromExprList(pParse,pGroupBy,0,sAggInfo.nColumn); addrSortingIdx = sqlite3VdbeAddOp4(v, OP_SorterOpen, sAggInfo.sortingIdx, sAggInfo.nSortingColumn, 0, (char*)pKeyInfo, P4_KEYINFO); @@ -124408,8 +130180,6 @@ SQLITE_PRIVATE int sqlite3Select( pParse->nMem += pGroupBy->nExpr; sqlite3VdbeAddOp2(v, OP_Integer, 0, iAbortFlag); VdbeComment((v, "clear abort flag")); - sqlite3VdbeAddOp2(v, OP_Integer, 0, iUseFlag); - VdbeComment((v, "indicate accumulator empty")); sqlite3VdbeAddOp3(v, OP_Null, 0, iAMem, iAMem+pGroupBy->nExpr-1); /* Begin a loop that will extract all source rows in GROUP BY order. @@ -124418,6 +130188,7 @@ SQLITE_PRIVATE int sqlite3Select( ** in the right order to begin with. */ sqlite3VdbeAddOp2(v, OP_Gosub, regReset, addrReset); + SELECTTRACE(1,pParse,p,("WhereBegin\n")); pWInfo = sqlite3WhereBegin(pParse, pTabList, pWhere, pGroupBy, 0, WHERE_GROUPBY | (orderByGrp ? WHERE_SORTBYGROUP : 0), 0 ); @@ -124454,15 +130225,14 @@ SQLITE_PRIVATE int sqlite3Select( } } regBase = sqlite3GetTempRange(pParse, nCol); - sqlite3ExprCacheClear(pParse); sqlite3ExprCodeExprList(pParse, pGroupBy, regBase, 0, 0); j = nGroupBy; for(i=0; iiSorterColumn>=j ){ int r1 = j + regBase; - sqlite3ExprCodeGetColumnToReg(pParse, - pCol->pTab, pCol->iColumn, pCol->iTable, r1); + sqlite3ExprCodeGetColumnOfTable(v, + pCol->pTab, pCol->iTable, pCol->iColumn, r1); j++; } } @@ -124478,8 +130248,6 @@ SQLITE_PRIVATE int sqlite3Select( sqlite3VdbeAddOp2(v, OP_SorterSort, sAggInfo.sortingIdx, addrEnd); VdbeComment((v, "GROUP BY sort")); VdbeCoverage(v); sAggInfo.useSortingIdx = 1; - sqlite3ExprCacheClear(pParse); - } /* If the index or temporary table used by the GROUP BY sort @@ -124502,7 +130270,6 @@ SQLITE_PRIVATE int sqlite3Select( ** from the previous row currently stored in a0, a1, a2... */ addrTopOfLoop = sqlite3VdbeCurrentAddr(v); - sqlite3ExprCacheClear(pParse); if( groupBySort ){ sqlite3VdbeAddOp3(v, OP_SorterData, sAggInfo.sortingIdx, sortOut, sortPTab); @@ -124541,7 +130308,7 @@ SQLITE_PRIVATE int sqlite3Select( ** the current row */ sqlite3VdbeJumpHere(v, addr1); - updateAccumulator(pParse, &sAggInfo); + updateAccumulator(pParse, iUseFlag, &sAggInfo); sqlite3VdbeAddOp2(v, OP_Integer, 1, iUseFlag); VdbeComment((v, "indicate data in accumulator")); @@ -124593,6 +130360,8 @@ SQLITE_PRIVATE int sqlite3Select( */ sqlite3VdbeResolveLabel(v, addrReset); resetAccumulator(pParse, &sAggInfo); + sqlite3VdbeAddOp2(v, OP_Integer, 0, iUseFlag); + VdbeComment((v, "indicate accumulator empty")); sqlite3VdbeAddOp1(v, OP_Return, regReset); } /* endif pGroupBy. Begin aggregate queries without GROUP BY: */ @@ -124658,6 +130427,23 @@ SQLITE_PRIVATE int sqlite3Select( }else #endif /* SQLITE_OMIT_BTREECOUNT */ { + int regAcc = 0; /* "populate accumulators" flag */ + + /* If there are accumulator registers but no min() or max() functions, + ** allocate register regAcc. Register regAcc will contain 0 the first + ** time the inner loop runs, and 1 thereafter. The code generated + ** by updateAccumulator() only updates the accumulator registers if + ** regAcc contains 0. */ + if( sAggInfo.nAccumulator ){ + for(i=0; ifuncFlags&SQLITE_FUNC_NEEDCOLL ) break; + } + if( i==sAggInfo.nFunc ){ + regAcc = ++pParse->nMem; + sqlite3VdbeAddOp2(v, OP_Integer, 0, regAcc); + } + } + /* This case runs if the aggregate has no GROUP BY clause. The ** processing is much simpler since there is only a single row ** of output. @@ -124673,12 +130459,14 @@ SQLITE_PRIVATE int sqlite3Select( assert( minMaxFlag==WHERE_ORDERBY_NORMAL || pMinMaxOrderBy!=0 ); assert( pMinMaxOrderBy==0 || pMinMaxOrderBy->nExpr==1 ); + SELECTTRACE(1,pParse,p,("WhereBegin\n")); pWInfo = sqlite3WhereBegin(pParse, pTabList, pWhere, pMinMaxOrderBy, 0, minMaxFlag, 0); if( pWInfo==0 ){ goto select_end; } - updateAccumulator(pParse, &sAggInfo); + updateAccumulator(pParse, regAcc, &sAggInfo); + if( regAcc ) sqlite3VdbeAddOp2(v, OP_Integer, 1, regAcc); if( sqlite3WhereIsOrdered(pWInfo)>0 ){ sqlite3VdbeGoto(v, sqlite3WhereBreakLabel(pWInfo)); VdbeComment((v, "%s() by index", @@ -124707,6 +130495,7 @@ SQLITE_PRIVATE int sqlite3Select( if( sSort.pOrderBy ){ explainTempTable(pParse, sSort.nOBSat>0 ? "RIGHT PART OF ORDER BY":"ORDER BY"); + assert( p->pEList==pEList ); generateSortTail(pParse, p, &sSort, pEList->nExpr, pDest); } @@ -124722,14 +130511,16 @@ SQLITE_PRIVATE int sqlite3Select( ** successful coding of the SELECT. */ select_end: - explainSetInteger(pParse->iSelectId, iRestoreSelectId); sqlite3ExprListDelete(db, pMinMaxOrderBy); sqlite3DbFree(db, sAggInfo.aCol); sqlite3DbFree(db, sAggInfo.aFunc); #if SELECTTRACE_ENABLED - SELECTTRACE(1,pParse,p,("end processing\n")); - pParse->nSelectIndent--; + SELECTTRACE(0x1,pParse,p,("end processing\n")); + if( (sqlite3SelectTrace & 0x2000)!=0 && ExplainQueryPlanParent(pParse)==0 ){ + sqlite3TreeViewSelect(0, p, 0); + } #endif + ExplainQueryPlanPop(pParse); return rc; } @@ -124963,6 +130754,7 @@ SQLITE_PRIVATE void sqlite3DeleteTriggerStep(sqlite3 *db, TriggerStep *pTriggerS sqlite3ExprListDelete(db, pTmp->pExprList); sqlite3SelectDelete(db, pTmp->pSelect); sqlite3IdListDelete(db, pTmp->pIdList); + sqlite3UpsertDelete(db, pTmp->pUpsert); sqlite3DbFree(db, pTmp->zSpan); sqlite3DbFree(db, pTmp); @@ -125118,14 +130910,16 @@ SQLITE_PRIVATE void sqlite3BeginTrigger( goto trigger_cleanup; } assert( sqlite3SchemaMutexHeld(db, iDb, 0) ); - if( sqlite3HashFind(&(db->aDb[iDb].pSchema->trigHash),zName) ){ - if( !noErr ){ - sqlite3ErrorMsg(pParse, "trigger %T already exists", pName); - }else{ - assert( !db->init.busy ); - sqlite3CodeVerifySchema(pParse, iDb); + if( !IN_RENAME_OBJECT ){ + if( sqlite3HashFind(&(db->aDb[iDb].pSchema->trigHash),zName) ){ + if( !noErr ){ + sqlite3ErrorMsg(pParse, "trigger %T already exists", pName); + }else{ + assert( !db->init.busy ); + sqlite3CodeVerifySchema(pParse, iDb); + } + goto trigger_cleanup; } - goto trigger_cleanup; } /* Do not create a trigger on a system table */ @@ -125149,7 +130943,7 @@ SQLITE_PRIVATE void sqlite3BeginTrigger( } #ifndef SQLITE_OMIT_AUTHORIZATION - { + if( !IN_RENAME_OBJECT ){ int iTabDb = sqlite3SchemaToIndex(db, pTab->pSchema); int code = SQLITE_CREATE_TRIGGER; const char *zDb = db->aDb[iTabDb].zDbSName; @@ -125183,8 +130977,15 @@ SQLITE_PRIVATE void sqlite3BeginTrigger( pTrigger->pTabSchema = pTab->pSchema; pTrigger->op = (u8)op; pTrigger->tr_tm = tr_tm==TK_BEFORE ? TRIGGER_BEFORE : TRIGGER_AFTER; - pTrigger->pWhen = sqlite3ExprDup(db, pWhen, EXPRDUP_REDUCE); - pTrigger->pColumns = sqlite3IdListDup(db, pColumns); + if( IN_RENAME_OBJECT ){ + sqlite3RenameTokenRemap(pParse, pTrigger->table, pTableName->a[0].zName); + pTrigger->pWhen = pWhen; + pWhen = 0; + }else{ + pTrigger->pWhen = sqlite3ExprDup(db, pWhen, EXPRDUP_REDUCE); + } + pTrigger->pColumns = pColumns; + pColumns = 0; assert( pParse->pNewTrigger==0 ); pParse->pNewTrigger = pTrigger; @@ -125233,6 +131034,14 @@ SQLITE_PRIVATE void sqlite3FinishTrigger( goto triggerfinish_cleanup; } +#ifndef SQLITE_OMIT_ALTERTABLE + if( IN_RENAME_OBJECT ){ + assert( !db->init.busy ); + pParse->pNewTrigger = pTrig; + pTrig = 0; + }else +#endif + /* if we are not initializing, ** build the sqlite_master entry */ @@ -125274,7 +131083,7 @@ SQLITE_PRIVATE void sqlite3FinishTrigger( triggerfinish_cleanup: sqlite3DeleteTrigger(db, pTrig); - assert( !pParse->pNewTrigger ); + assert( IN_RENAME_OBJECT || !pParse->pNewTrigger ); sqlite3DeleteTriggerStep(db, pStepList); } @@ -125321,12 +131130,13 @@ SQLITE_PRIVATE TriggerStep *sqlite3TriggerSelectStep( ** If an OOM error occurs, NULL is returned and db->mallocFailed is set. */ static TriggerStep *triggerStepAllocate( - sqlite3 *db, /* Database connection */ + Parse *pParse, /* Parser context */ u8 op, /* Trigger opcode */ Token *pName, /* The target name */ const char *zStart, /* Start of SQL text */ const char *zEnd /* End of SQL text */ ){ + sqlite3 *db = pParse->db; TriggerStep *pTriggerStep; pTriggerStep = sqlite3DbMallocZero(db, sizeof(TriggerStep) + pName->n + 1); @@ -125337,6 +131147,9 @@ static TriggerStep *triggerStepAllocate( pTriggerStep->zTarget = z; pTriggerStep->op = op; pTriggerStep->zSpan = triggerSpanDup(db, zStart, zEnd); + if( IN_RENAME_OBJECT ){ + sqlite3RenameTokenMap(pParse, pTriggerStep->zTarget, pName); + } } return pTriggerStep; } @@ -125349,25 +131162,36 @@ static TriggerStep *triggerStepAllocate( ** body of a trigger. */ SQLITE_PRIVATE TriggerStep *sqlite3TriggerInsertStep( - sqlite3 *db, /* The database connection */ + Parse *pParse, /* Parser */ Token *pTableName, /* Name of the table into which we insert */ IdList *pColumn, /* List of columns in pTableName to insert into */ Select *pSelect, /* A SELECT statement that supplies values */ u8 orconf, /* The conflict algorithm (OE_Abort, OE_Replace, etc.) */ + Upsert *pUpsert, /* ON CONFLICT clauses for upsert */ const char *zStart, /* Start of SQL text */ const char *zEnd /* End of SQL text */ ){ + sqlite3 *db = pParse->db; TriggerStep *pTriggerStep; assert(pSelect != 0 || db->mallocFailed); - pTriggerStep = triggerStepAllocate(db, TK_INSERT, pTableName, zStart, zEnd); + pTriggerStep = triggerStepAllocate(pParse, TK_INSERT, pTableName,zStart,zEnd); if( pTriggerStep ){ - pTriggerStep->pSelect = sqlite3SelectDup(db, pSelect, EXPRDUP_REDUCE); + if( IN_RENAME_OBJECT ){ + pTriggerStep->pSelect = pSelect; + pSelect = 0; + }else{ + pTriggerStep->pSelect = sqlite3SelectDup(db, pSelect, EXPRDUP_REDUCE); + } pTriggerStep->pIdList = pColumn; + pTriggerStep->pUpsert = pUpsert; pTriggerStep->orconf = orconf; }else{ + testcase( pColumn ); sqlite3IdListDelete(db, pColumn); + testcase( pUpsert ); + sqlite3UpsertDelete(db, pUpsert); } sqlite3SelectDelete(db, pSelect); @@ -125380,7 +131204,7 @@ SQLITE_PRIVATE TriggerStep *sqlite3TriggerInsertStep( ** sees an UPDATE statement inside the body of a CREATE TRIGGER. */ SQLITE_PRIVATE TriggerStep *sqlite3TriggerUpdateStep( - sqlite3 *db, /* The database connection */ + Parse *pParse, /* Parser */ Token *pTableName, /* Name of the table to be updated */ ExprList *pEList, /* The SET clause: list of column and new values */ Expr *pWhere, /* The WHERE clause */ @@ -125388,12 +131212,20 @@ SQLITE_PRIVATE TriggerStep *sqlite3TriggerUpdateStep( const char *zStart, /* Start of SQL text */ const char *zEnd /* End of SQL text */ ){ + sqlite3 *db = pParse->db; TriggerStep *pTriggerStep; - pTriggerStep = triggerStepAllocate(db, TK_UPDATE, pTableName, zStart, zEnd); + pTriggerStep = triggerStepAllocate(pParse, TK_UPDATE, pTableName,zStart,zEnd); if( pTriggerStep ){ - pTriggerStep->pExprList = sqlite3ExprListDup(db, pEList, EXPRDUP_REDUCE); - pTriggerStep->pWhere = sqlite3ExprDup(db, pWhere, EXPRDUP_REDUCE); + if( IN_RENAME_OBJECT ){ + pTriggerStep->pExprList = pEList; + pTriggerStep->pWhere = pWhere; + pEList = 0; + pWhere = 0; + }else{ + pTriggerStep->pExprList = sqlite3ExprListDup(db, pEList, EXPRDUP_REDUCE); + pTriggerStep->pWhere = sqlite3ExprDup(db, pWhere, EXPRDUP_REDUCE); + } pTriggerStep->orconf = orconf; } sqlite3ExprListDelete(db, pEList); @@ -125407,17 +131239,23 @@ SQLITE_PRIVATE TriggerStep *sqlite3TriggerUpdateStep( ** sees a DELETE statement inside the body of a CREATE TRIGGER. */ SQLITE_PRIVATE TriggerStep *sqlite3TriggerDeleteStep( - sqlite3 *db, /* Database connection */ + Parse *pParse, /* Parser */ Token *pTableName, /* The table from which rows are deleted */ Expr *pWhere, /* The WHERE clause */ const char *zStart, /* Start of SQL text */ const char *zEnd /* End of SQL text */ ){ + sqlite3 *db = pParse->db; TriggerStep *pTriggerStep; - pTriggerStep = triggerStepAllocate(db, TK_DELETE, pTableName, zStart, zEnd); + pTriggerStep = triggerStepAllocate(pParse, TK_DELETE, pTableName,zStart,zEnd); if( pTriggerStep ){ - pTriggerStep->pWhere = sqlite3ExprDup(db, pWhere, EXPRDUP_REDUCE); + if( IN_RENAME_OBJECT ){ + pTriggerStep->pWhere = pWhere; + pWhere = 0; + }else{ + pTriggerStep->pWhere = sqlite3ExprDup(db, pWhere, EXPRDUP_REDUCE); + } pTriggerStep->orconf = OE_Default; } sqlite3ExprDelete(db, pWhere); @@ -125684,7 +131522,7 @@ static int codeTriggerProgram( targetSrcList(pParse, pStep), sqlite3ExprListDup(db, pStep->pExprList, 0), sqlite3ExprDup(db, pStep->pWhere, 0), - pParse->eOrconf, 0, 0 + pParse->eOrconf, 0, 0, 0 ); break; } @@ -125693,7 +131531,8 @@ static int codeTriggerProgram( targetSrcList(pParse, pStep), sqlite3SelectDup(db, pStep->pSelect, 0), sqlite3IdListDup(db, pStep->pIdList), - pParse->eOrconf + pParse->eOrconf, + sqlite3UpsertDup(db, pStep->pUpsert) ); break; } @@ -126157,6 +131996,57 @@ SQLITE_PRIVATE void sqlite3ColumnDefault(Vdbe *v, Table *pTab, int i, int iReg){ #endif } +/* +** Check to see if column iCol of index pIdx references any of the +** columns defined by aXRef and chngRowid. Return true if it does +** and false if not. This is an optimization. False-positives are a +** performance degradation, but false-negatives can result in a corrupt +** index and incorrect answers. +** +** aXRef[j] will be non-negative if column j of the original table is +** being updated. chngRowid will be true if the rowid of the table is +** being updated. +*/ +static int indexColumnIsBeingUpdated( + Index *pIdx, /* The index to check */ + int iCol, /* Which column of the index to check */ + int *aXRef, /* aXRef[j]>=0 if column j is being updated */ + int chngRowid /* true if the rowid is being updated */ +){ + i16 iIdxCol = pIdx->aiColumn[iCol]; + assert( iIdxCol!=XN_ROWID ); /* Cannot index rowid */ + if( iIdxCol>=0 ){ + return aXRef[iIdxCol]>=0; + } + assert( iIdxCol==XN_EXPR ); + assert( pIdx->aColExpr!=0 ); + assert( pIdx->aColExpr->a[iCol].pExpr!=0 ); + return sqlite3ExprReferencesUpdatedColumn(pIdx->aColExpr->a[iCol].pExpr, + aXRef,chngRowid); +} + +/* +** Check to see if index pIdx is a partial index whose conditional +** expression might change values due to an UPDATE. Return true if +** the index is subject to change and false if the index is guaranteed +** to be unchanged. This is an optimization. False-positives are a +** performance degradation, but false-negatives can result in a corrupt +** index and incorrect answers. +** +** aXRef[j] will be non-negative if column j of the original table is +** being updated. chngRowid will be true if the rowid of the table is +** being updated. +*/ +static int indexWhereClauseMightChange( + Index *pIdx, /* The index to check */ + int *aXRef, /* aXRef[j]>=0 if column j is being updated */ + int chngRowid /* true if the rowid is being updated */ +){ + if( pIdx->pPartIdxWhere==0 ) return 0; + return sqlite3ExprReferencesUpdatedColumn(pIdx->pPartIdxWhere, + aXRef, chngRowid); +} + /* ** Process an UPDATE statement. ** @@ -126171,7 +132061,8 @@ SQLITE_PRIVATE void sqlite3Update( Expr *pWhere, /* The WHERE clause. May be null */ int onError, /* How to handle constraint errors */ ExprList *pOrderBy, /* ORDER BY clause. May be null */ - Expr *pLimit /* LIMIT clause. May be null */ + Expr *pLimit, /* LIMIT clause. May be null */ + Upsert *pUpsert /* ON CONFLICT clause, or null */ ){ int i, j; /* Loop counters */ Table *pTab; /* The table to be updated */ @@ -126278,16 +132169,23 @@ SQLITE_PRIVATE void sqlite3Update( ** need to occur right after the database cursor. So go ahead and ** allocate enough space, just in case. */ - pTabList->a[0].iCursor = iBaseCur = iDataCur = pParse->nTab++; + iBaseCur = iDataCur = pParse->nTab++; iIdxCur = iDataCur+1; pPk = HasRowid(pTab) ? 0 : sqlite3PrimaryKeyIndex(pTab); + testcase( pPk!=0 && pPk!=pTab->pIndex ); for(nIdx=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, nIdx++){ - if( IsPrimaryKeyIndex(pIdx) && pPk!=0 ){ + if( pPk==pIdx ){ iDataCur = pParse->nTab; - pTabList->a[0].iCursor = iDataCur; } pParse->nTab++; } + if( pUpsert ){ + /* On an UPSERT, reuse the same cursors already opened by INSERT */ + iDataCur = pUpsert->iDataCur; + iIdxCur = pUpsert->iIdxCur; + pParse->nTab = iBaseCur; + } + pTabList->a[0].iCursor = iDataCur; /* Allocate space for aXRef[], aRegIdx[], and aToOpen[]. ** Initialize aXRef[] and aToOpen[] to their default values. @@ -126304,6 +132202,8 @@ SQLITE_PRIVATE void sqlite3Update( memset(&sNC, 0, sizeof(sNC)); sNC.pParse = pParse; sNC.pSrcList = pTabList; + sNC.uNC.pUpsert = pUpsert; + sNC.ncFlags = NC_UUpsert; /* Resolve the column names in all the expressions of the ** of the UPDATE statement. Also find the column index @@ -126370,19 +132270,18 @@ SQLITE_PRIVATE void sqlite3Update( /* There is one entry in the aRegIdx[] array for each index on the table ** being updated. Fill in aRegIdx[] with a register number that will hold ** the key for accessing each index. - ** - ** FIXME: Be smarter about omitting indexes that use expressions. */ for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){ int reg; - if( chngKey || hasFK>1 || pIdx->pPartIdxWhere || pIdx==pPk ){ + if( chngKey || hasFK>1 || pIdx==pPk + || indexWhereClauseMightChange(pIdx,aXRef,chngRowid) + ){ reg = ++pParse->nMem; pParse->nMem += pIdx->nColumn; }else{ reg = 0; for(i=0; inKeyCol; i++){ - i16 iIdxCol = pIdx->aiColumn[i]; - if( iIdxCol<0 || aXRef[iIdxCol]>=0 ){ + if( indexColumnIsBeingUpdated(pIdx, i, aXRef, chngRowid) ){ reg = ++pParse->nMem; pParse->nMem += pIdx->nColumn; if( (onError==OE_Replace) @@ -126407,7 +132306,7 @@ SQLITE_PRIVATE void sqlite3Update( v = sqlite3GetVdbe(pParse); if( v==0 ) goto update_cleanup; if( pParse->nested==0 ) sqlite3VdbeCountChanges(v); - sqlite3BeginWriteOperation(pParse, 1, iDb); + sqlite3BeginWriteOperation(pParse, pTrigger || hasFK, iDb); /* Allocate required registers. */ if( !IsVirtual(pTab) ){ @@ -126458,8 +132357,16 @@ SQLITE_PRIVATE void sqlite3Update( } #endif - /* Initialize the count of updated rows */ - if( (db->flags & SQLITE_CountRows) && !pParse->pTriggerTab ){ + /* Jump to labelBreak to abandon further processing of this UPDATE */ + labelContinue = labelBreak = sqlite3VdbeMakeLabel(v); + + /* Not an UPSERT. Normal processing. Begin by + ** initialize the count of updated rows */ + if( (db->flags&SQLITE_CountRows)!=0 + && !pParse->pTriggerTab + && !pParse->nested + && pUpsert==0 + ){ regRowCount = ++pParse->nMem; sqlite3VdbeAddOp2(v, OP_Integer, 0, regRowCount); } @@ -126472,46 +132379,61 @@ SQLITE_PRIVATE void sqlite3Update( iPk = pParse->nMem+1; pParse->nMem += nPk; regKey = ++pParse->nMem; - iEph = pParse->nTab++; - - sqlite3VdbeAddOp2(v, OP_Null, 0, iPk); - addrOpen = sqlite3VdbeAddOp2(v, OP_OpenEphemeral, iEph, nPk); - sqlite3VdbeSetP4KeyInfo(pParse, pPk); - } - - /* Begin the database scan. - ** - ** Do not consider a single-pass strategy for a multi-row update if - ** there are any triggers or foreign keys to process, or rows may - ** be deleted as a result of REPLACE conflict handling. Any of these - ** things might disturb a cursor being used to scan through the table - ** or index, causing a single-pass approach to malfunction. */ - flags = WHERE_ONEPASS_DESIRED|WHERE_SEEK_UNIQ_TABLE; - if( !pParse->nested && !pTrigger && !hasFK && !chngKey && !bReplace ){ - flags |= WHERE_ONEPASS_MULTIROW; - } - pWInfo = sqlite3WhereBegin(pParse, pTabList, pWhere, 0, 0, flags, iIdxCur); - if( pWInfo==0 ) goto update_cleanup; - - /* A one-pass strategy that might update more than one row may not - ** be used if any column of the index used for the scan is being - ** updated. Otherwise, if there is an index on "b", statements like - ** the following could create an infinite loop: - ** - ** UPDATE t1 SET b=b+1 WHERE b>? - ** - ** Fall back to ONEPASS_OFF if where.c has selected a ONEPASS_MULTI - ** strategy that uses an index for which one or more columns are being - ** updated. */ - eOnePass = sqlite3WhereOkOnePass(pWInfo, aiCurOnePass); - if( eOnePass==ONEPASS_MULTI ){ - int iCur = aiCurOnePass[1]; - if( iCur>=0 && iCur!=iDataCur && aToOpen[iCur-iBaseCur] ){ - eOnePass = ONEPASS_OFF; + if( pUpsert==0 ){ + iEph = pParse->nTab++; + sqlite3VdbeAddOp3(v, OP_Null, 0, iPk, iPk+nPk-1); + addrOpen = sqlite3VdbeAddOp2(v, OP_OpenEphemeral, iEph, nPk); + sqlite3VdbeSetP4KeyInfo(pParse, pPk); } - assert( iCur!=iDataCur || !HasRowid(pTab) ); } + if( pUpsert ){ + /* If this is an UPSERT, then all cursors have already been opened by + ** the outer INSERT and the data cursor should be pointing at the row + ** that is to be updated. So bypass the code that searches for the + ** row(s) to be updated. + */ + pWInfo = 0; + eOnePass = ONEPASS_SINGLE; + sqlite3ExprIfFalse(pParse, pWhere, labelBreak, SQLITE_JUMPIFNULL); + }else{ + /* Begin the database scan. + ** + ** Do not consider a single-pass strategy for a multi-row update if + ** there are any triggers or foreign keys to process, or rows may + ** be deleted as a result of REPLACE conflict handling. Any of these + ** things might disturb a cursor being used to scan through the table + ** or index, causing a single-pass approach to malfunction. */ + flags = WHERE_ONEPASS_DESIRED|WHERE_SEEK_UNIQ_TABLE; + if( !pParse->nested && !pTrigger && !hasFK && !chngKey && !bReplace ){ + flags |= WHERE_ONEPASS_MULTIROW; + } + pWInfo = sqlite3WhereBegin(pParse, pTabList, pWhere, 0, 0, flags, iIdxCur); + if( pWInfo==0 ) goto update_cleanup; + + /* A one-pass strategy that might update more than one row may not + ** be used if any column of the index used for the scan is being + ** updated. Otherwise, if there is an index on "b", statements like + ** the following could create an infinite loop: + ** + ** UPDATE t1 SET b=b+1 WHERE b>? + ** + ** Fall back to ONEPASS_OFF if where.c has selected a ONEPASS_MULTI + ** strategy that uses an index for which one or more columns are being + ** updated. */ + eOnePass = sqlite3WhereOkOnePass(pWInfo, aiCurOnePass); + if( eOnePass!=ONEPASS_SINGLE ){ + sqlite3MultiWrite(pParse); + if( eOnePass==ONEPASS_MULTI ){ + int iCur = aiCurOnePass[1]; + if( iCur>=0 && iCur!=iDataCur && aToOpen[iCur-iBaseCur] ){ + eOnePass = ONEPASS_OFF; + } + assert( iCur!=iDataCur || !HasRowid(pTab) ); + } + } + } + if( HasRowid(pTab) ){ /* Read the rowid of the current row of the WHERE scan. In ONEPASS_OFF ** mode, write the rowid into the FIFO. In either of the one-pass modes, @@ -126531,7 +132453,7 @@ SQLITE_PRIVATE void sqlite3Update( sqlite3ExprCodeGetColumnOfTable(v, pTab, iDataCur,pPk->aiColumn[i],iPk+i); } if( eOnePass ){ - sqlite3VdbeChangeToNoop(v, addrOpen); + if( addrOpen ) sqlite3VdbeChangeToNoop(v, addrOpen); nKey = nPk; regKey = iPk; }else{ @@ -126541,59 +132463,58 @@ SQLITE_PRIVATE void sqlite3Update( } } - if( eOnePass!=ONEPASS_MULTI ){ - sqlite3WhereEnd(pWInfo); - } - - labelBreak = sqlite3VdbeMakeLabel(v); - if( !isView ){ - int addrOnce = 0; - - /* Open every index that needs updating. */ - if( eOnePass!=ONEPASS_OFF ){ - if( aiCurOnePass[0]>=0 ) aToOpen[aiCurOnePass[0]-iBaseCur] = 0; - if( aiCurOnePass[1]>=0 ) aToOpen[aiCurOnePass[1]-iBaseCur] = 0; - } - - if( eOnePass==ONEPASS_MULTI && (nIdx-(aiCurOnePass[1]>=0))>0 ){ - addrOnce = sqlite3VdbeAddOp0(v, OP_Once); VdbeCoverage(v); + if( pUpsert==0 ){ + if( eOnePass!=ONEPASS_MULTI ){ + sqlite3WhereEnd(pWInfo); } - sqlite3OpenTableAndIndices(pParse, pTab, OP_OpenWrite, 0, iBaseCur, aToOpen, - 0, 0); - if( addrOnce ) sqlite3VdbeJumpHere(v, addrOnce); - } - - /* Top of the update loop */ - if( eOnePass!=ONEPASS_OFF ){ - if( !isView && aiCurOnePass[0]!=iDataCur && aiCurOnePass[1]!=iDataCur ){ - assert( pPk ); - sqlite3VdbeAddOp4Int(v, OP_NotFound, iDataCur, labelBreak, regKey, nKey); - VdbeCoverageNeverTaken(v); + + if( !isView ){ + int addrOnce = 0; + + /* Open every index that needs updating. */ + if( eOnePass!=ONEPASS_OFF ){ + if( aiCurOnePass[0]>=0 ) aToOpen[aiCurOnePass[0]-iBaseCur] = 0; + if( aiCurOnePass[1]>=0 ) aToOpen[aiCurOnePass[1]-iBaseCur] = 0; + } + + if( eOnePass==ONEPASS_MULTI && (nIdx-(aiCurOnePass[1]>=0))>0 ){ + addrOnce = sqlite3VdbeAddOp0(v, OP_Once); VdbeCoverage(v); + } + sqlite3OpenTableAndIndices(pParse, pTab, OP_OpenWrite, 0, iBaseCur, + aToOpen, 0, 0); + if( addrOnce ) sqlite3VdbeJumpHere(v, addrOnce); } - if( eOnePass==ONEPASS_SINGLE ){ - labelContinue = labelBreak; - }else{ + + /* Top of the update loop */ + if( eOnePass!=ONEPASS_OFF ){ + if( !isView && aiCurOnePass[0]!=iDataCur && aiCurOnePass[1]!=iDataCur ){ + assert( pPk ); + sqlite3VdbeAddOp4Int(v, OP_NotFound, iDataCur, labelBreak, regKey,nKey); + VdbeCoverage(v); + } + if( eOnePass!=ONEPASS_SINGLE ){ + labelContinue = sqlite3VdbeMakeLabel(v); + } + sqlite3VdbeAddOp2(v, OP_IsNull, pPk ? regKey : regOldRowid, labelBreak); + VdbeCoverageIf(v, pPk==0); + VdbeCoverageIf(v, pPk!=0); + }else if( pPk ){ labelContinue = sqlite3VdbeMakeLabel(v); + sqlite3VdbeAddOp2(v, OP_Rewind, iEph, labelBreak); VdbeCoverage(v); + addrTop = sqlite3VdbeAddOp2(v, OP_RowData, iEph, regKey); + sqlite3VdbeAddOp4Int(v, OP_NotFound, iDataCur, labelContinue, regKey, 0); + VdbeCoverage(v); + }else{ + labelContinue = sqlite3VdbeAddOp3(v, OP_RowSetRead, regRowSet,labelBreak, + regOldRowid); + VdbeCoverage(v); + sqlite3VdbeAddOp3(v, OP_NotExists, iDataCur, labelContinue, regOldRowid); + VdbeCoverage(v); } - sqlite3VdbeAddOp2(v, OP_IsNull, pPk ? regKey : regOldRowid, labelBreak); - VdbeCoverageIf(v, pPk==0); - VdbeCoverageIf(v, pPk!=0); - }else if( pPk ){ - labelContinue = sqlite3VdbeMakeLabel(v); - sqlite3VdbeAddOp2(v, OP_Rewind, iEph, labelBreak); VdbeCoverage(v); - addrTop = sqlite3VdbeAddOp2(v, OP_RowData, iEph, regKey); - sqlite3VdbeAddOp4Int(v, OP_NotFound, iDataCur, labelContinue, regKey, 0); - VdbeCoverage(v); - }else{ - labelContinue = sqlite3VdbeAddOp3(v, OP_RowSetRead, regRowSet, labelBreak, - regOldRowid); - VdbeCoverage(v); - sqlite3VdbeAddOp3(v, OP_NotExists, iDataCur, labelContinue, regOldRowid); - VdbeCoverage(v); } - /* If the record number will change, set register regNewRowid to - ** contain the new value. If the record number is not being modified, + /* If the rowid value will change, set register regNewRowid to + ** contain the new value. If the rowid is not being modified, ** then regNewRowid is the same register as regOldRowid, which is ** already populated. */ assert( chngKey || pTrigger || hasFK || regOldRowid==regNewRowid ); @@ -126656,7 +132577,7 @@ SQLITE_PRIVATE void sqlite3Update( */ testcase( i==31 ); testcase( i==32 ); - sqlite3ExprCodeGetColumnToReg(pParse, pTab, i, iDataCur, regNew+i); + sqlite3ExprCodeGetColumnOfTable(v, pTab, iDataCur, i, regNew+i); }else{ sqlite3VdbeAddOp2(v, OP_Null, 0, regNew+i); } @@ -126685,10 +132606,14 @@ SQLITE_PRIVATE void sqlite3Update( VdbeCoverage(v); } - /* If it did not delete it, the row-trigger may still have modified + /* After-BEFORE-trigger-reload-loop: + ** If it did not delete it, the BEFORE trigger may still have modified ** some of the columns of the row being updated. Load the values for - ** all columns not modified by the update statement into their - ** registers in case this has happened. + ** all columns not modified by the update statement into their registers + ** in case this has happened. Only unmodified columns are reloaded. + ** The values computed for modified columns use the values before the + ** BEFORE trigger runs. See test case trigger1-18.0 (added 2018-04-26) + ** for an example. */ for(i=0; inCol; i++){ if( aXRef[i]<0 && i!=pTab->iPKey ){ @@ -126704,7 +132629,7 @@ SQLITE_PRIVATE void sqlite3Update( assert( regOldRowid>0 ); sqlite3GenerateConstraintChecks(pParse, pTab, aRegIdx, iDataCur, iIdxCur, regNewRowid, regOldRowid, chngKey, onError, labelContinue, &bReplace, - aXRef); + aXRef, 0); /* Do FK constraint checks. */ if( hasFK ){ @@ -126774,7 +132699,7 @@ SQLITE_PRIVATE void sqlite3Update( /* Increment the row counter */ - if( (db->flags & SQLITE_CountRows) && !pParse->pTriggerTab){ + if( regRowCount ){ sqlite3VdbeAddOp2(v, OP_AddImm, regRowCount, 1); } @@ -126801,16 +132726,15 @@ SQLITE_PRIVATE void sqlite3Update( ** maximum rowid counter values recorded while inserting into ** autoincrement tables. */ - if( pParse->nested==0 && pParse->pTriggerTab==0 ){ + if( pParse->nested==0 && pParse->pTriggerTab==0 && pUpsert==0 ){ sqlite3AutoincrementEnd(pParse); } /* - ** Return the number of rows that were changed. If this routine is - ** generating code because of a call to sqlite3NestedParse(), do not - ** invoke the callback function. + ** Return the number of rows that were changed, if we are tracking + ** that information. */ - if( (db->flags&SQLITE_CountRows) && !pParse->pTriggerTab && !pParse->nested ){ + if( regRowCount ){ sqlite3VdbeAddOp2(v, OP_ResultRow, regRowCount, 1); sqlite3VdbeSetNumCols(v, 1); sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "rows updated", SQLITE_STATIC); @@ -126882,7 +132806,7 @@ static void updateVirtualTable( int regRowid; /* Register for ephem table rowid */ int iCsr = pSrc->a[0].iCursor; /* Cursor used for virtual table scan */ int aDummy[2]; /* Unused arg for sqlite3WhereOkOnePass() */ - int bOnePass; /* True to use onepass strategy */ + int eOnePass; /* True to use onepass strategy */ int addr; /* Address of OP_OpenEphemeral */ /* Allocate nArg registers in which to gather the arguments for VUpdate. Then @@ -126906,7 +132830,7 @@ static void updateVirtualTable( sqlite3ExprCode(pParse, pChanges->a[aXRef[i]].pExpr, regArg+2+i); }else{ sqlite3VdbeAddOp3(v, OP_VColumn, iCsr, i, regArg+2+i); - sqlite3VdbeChangeP5(v, 1); /* Enable sqlite3_vtab_nochange() */ + sqlite3VdbeChangeP5(v, OPFLAG_NOCHNG);/* Enable sqlite3_vtab_nochange() */ } } if( HasRowid(pTab) ){ @@ -126927,19 +132851,20 @@ static void updateVirtualTable( sqlite3VdbeAddOp2(v, OP_SCopy, regArg+2+iPk, regArg+1); } - bOnePass = sqlite3WhereOkOnePass(pWInfo, aDummy); + eOnePass = sqlite3WhereOkOnePass(pWInfo, aDummy); - if( bOnePass ){ + /* There is no ONEPASS_MULTI on virtual tables */ + assert( eOnePass==ONEPASS_OFF || eOnePass==ONEPASS_SINGLE ); + + if( eOnePass ){ /* If using the onepass strategy, no-op out the OP_OpenEphemeral coded - ** above. Also, if this is a top-level parse (not a trigger), clear the - ** multi-write flag so that the VM does not open a statement journal */ + ** above. */ sqlite3VdbeChangeToNoop(v, addr); - if( sqlite3IsToplevel(pParse) ){ - pParse->isMultiWrite = 0; - } + sqlite3VdbeAddOp1(v, OP_Close, iCsr); }else{ /* Create a record from the argument register contents and insert it into ** the ephemeral table. */ + sqlite3MultiWrite(pParse); sqlite3VdbeAddOp3(v, OP_MakeRecord, regArg, nArg, regRec); #ifdef SQLITE_DEBUG /* Signal an assert() within OP_MakeRecord that it is allowed to @@ -126951,7 +132876,7 @@ static void updateVirtualTable( } - if( bOnePass==0 ){ + if( eOnePass==ONEPASS_OFF ){ /* End the virtual table scan */ sqlite3WhereEnd(pWInfo); @@ -126971,7 +132896,7 @@ static void updateVirtualTable( /* End of the ephemeral table scan. Or, if using the onepass strategy, ** jump to here if the scan visited zero rows. */ - if( bOnePass==0 ){ + if( eOnePass==ONEPASS_OFF ){ sqlite3VdbeAddOp2(v, OP_Next, ephemTab, addr+1); VdbeCoverage(v); sqlite3VdbeJumpHere(v, addr); sqlite3VdbeAddOp2(v, OP_Close, ephemTab, 0); @@ -126982,6 +132907,261 @@ static void updateVirtualTable( #endif /* SQLITE_OMIT_VIRTUALTABLE */ /************** End of update.c **********************************************/ +/************** Begin file upsert.c ******************************************/ +/* +** 2018-04-12 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This file contains code to implement various aspects of UPSERT +** processing and handling of the Upsert object. +*/ +/* #include "sqliteInt.h" */ + +#ifndef SQLITE_OMIT_UPSERT +/* +** Free a list of Upsert objects +*/ +SQLITE_PRIVATE void sqlite3UpsertDelete(sqlite3 *db, Upsert *p){ + if( p ){ + sqlite3ExprListDelete(db, p->pUpsertTarget); + sqlite3ExprDelete(db, p->pUpsertTargetWhere); + sqlite3ExprListDelete(db, p->pUpsertSet); + sqlite3ExprDelete(db, p->pUpsertWhere); + sqlite3DbFree(db, p); + } +} + +/* +** Duplicate an Upsert object. +*/ +SQLITE_PRIVATE Upsert *sqlite3UpsertDup(sqlite3 *db, Upsert *p){ + if( p==0 ) return 0; + return sqlite3UpsertNew(db, + sqlite3ExprListDup(db, p->pUpsertTarget, 0), + sqlite3ExprDup(db, p->pUpsertTargetWhere, 0), + sqlite3ExprListDup(db, p->pUpsertSet, 0), + sqlite3ExprDup(db, p->pUpsertWhere, 0) + ); +} + +/* +** Create a new Upsert object. +*/ +SQLITE_PRIVATE Upsert *sqlite3UpsertNew( + sqlite3 *db, /* Determines which memory allocator to use */ + ExprList *pTarget, /* Target argument to ON CONFLICT, or NULL */ + Expr *pTargetWhere, /* Optional WHERE clause on the target */ + ExprList *pSet, /* UPDATE columns, or NULL for a DO NOTHING */ + Expr *pWhere /* WHERE clause for the ON CONFLICT UPDATE */ +){ + Upsert *pNew; + pNew = sqlite3DbMallocRaw(db, sizeof(Upsert)); + if( pNew==0 ){ + sqlite3ExprListDelete(db, pTarget); + sqlite3ExprDelete(db, pTargetWhere); + sqlite3ExprListDelete(db, pSet); + sqlite3ExprDelete(db, pWhere); + return 0; + }else{ + pNew->pUpsertTarget = pTarget; + pNew->pUpsertTargetWhere = pTargetWhere; + pNew->pUpsertSet = pSet; + pNew->pUpsertWhere = pWhere; + pNew->pUpsertIdx = 0; + } + return pNew; +} + +/* +** Analyze the ON CONFLICT clause described by pUpsert. Resolve all +** symbols in the conflict-target. +** +** Return SQLITE_OK if everything works, or an error code is something +** is wrong. +*/ +SQLITE_PRIVATE int sqlite3UpsertAnalyzeTarget( + Parse *pParse, /* The parsing context */ + SrcList *pTabList, /* Table into which we are inserting */ + Upsert *pUpsert /* The ON CONFLICT clauses */ +){ + Table *pTab; /* That table into which we are inserting */ + int rc; /* Result code */ + int iCursor; /* Cursor used by pTab */ + Index *pIdx; /* One of the indexes of pTab */ + ExprList *pTarget; /* The conflict-target clause */ + Expr *pTerm; /* One term of the conflict-target clause */ + NameContext sNC; /* Context for resolving symbolic names */ + Expr sCol[2]; /* Index column converted into an Expr */ + + assert( pTabList->nSrc==1 ); + assert( pTabList->a[0].pTab!=0 ); + assert( pUpsert!=0 ); + assert( pUpsert->pUpsertTarget!=0 ); + + /* Resolve all symbolic names in the conflict-target clause, which + ** includes both the list of columns and the optional partial-index + ** WHERE clause. + */ + memset(&sNC, 0, sizeof(sNC)); + sNC.pParse = pParse; + sNC.pSrcList = pTabList; + rc = sqlite3ResolveExprListNames(&sNC, pUpsert->pUpsertTarget); + if( rc ) return rc; + rc = sqlite3ResolveExprNames(&sNC, pUpsert->pUpsertTargetWhere); + if( rc ) return rc; + + /* Check to see if the conflict target matches the rowid. */ + pTab = pTabList->a[0].pTab; + pTarget = pUpsert->pUpsertTarget; + iCursor = pTabList->a[0].iCursor; + if( HasRowid(pTab) + && pTarget->nExpr==1 + && (pTerm = pTarget->a[0].pExpr)->op==TK_COLUMN + && pTerm->iColumn==XN_ROWID + ){ + /* The conflict-target is the rowid of the primary table */ + assert( pUpsert->pUpsertIdx==0 ); + return SQLITE_OK; + } + + /* Initialize sCol[0..1] to be an expression parse tree for a + ** single column of an index. The sCol[0] node will be the TK_COLLATE + ** operator and sCol[1] will be the TK_COLUMN operator. Code below + ** will populate the specific collation and column number values + ** prior to comparing against the conflict-target expression. + */ + memset(sCol, 0, sizeof(sCol)); + sCol[0].op = TK_COLLATE; + sCol[0].pLeft = &sCol[1]; + sCol[1].op = TK_COLUMN; + sCol[1].iTable = pTabList->a[0].iCursor; + + /* Check for matches against other indexes */ + for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ + int ii, jj, nn; + if( !IsUniqueIndex(pIdx) ) continue; + if( pTarget->nExpr!=pIdx->nKeyCol ) continue; + if( pIdx->pPartIdxWhere ){ + if( pUpsert->pUpsertTargetWhere==0 ) continue; + if( sqlite3ExprCompare(pParse, pUpsert->pUpsertTargetWhere, + pIdx->pPartIdxWhere, iCursor)!=0 ){ + continue; + } + } + nn = pIdx->nKeyCol; + for(ii=0; iiazColl[ii]; + if( pIdx->aiColumn[ii]==XN_EXPR ){ + assert( pIdx->aColExpr!=0 ); + assert( pIdx->aColExpr->nExpr>ii ); + pExpr = pIdx->aColExpr->a[ii].pExpr; + if( pExpr->op!=TK_COLLATE ){ + sCol[0].pLeft = pExpr; + pExpr = &sCol[0]; + } + }else{ + sCol[0].pLeft = &sCol[1]; + sCol[1].iColumn = pIdx->aiColumn[ii]; + pExpr = &sCol[0]; + } + for(jj=0; jja[jj].pExpr, pExpr,iCursor)<2 ){ + break; /* Column ii of the index matches column jj of target */ + } + } + if( jj>=nn ){ + /* The target contains no match for column jj of the index */ + break; + } + } + if( iipUpsertIdx = pIdx; + return SQLITE_OK; + } + sqlite3ErrorMsg(pParse, "ON CONFLICT clause does not match any " + "PRIMARY KEY or UNIQUE constraint"); + return SQLITE_ERROR; +} + +/* +** Generate bytecode that does an UPDATE as part of an upsert. +** +** If pIdx is NULL, then the UNIQUE constraint that failed was the IPK. +** In this case parameter iCur is a cursor open on the table b-tree that +** currently points to the conflicting table row. Otherwise, if pIdx +** is not NULL, then pIdx is the constraint that failed and iCur is a +** cursor points to the conflicting row. +*/ +SQLITE_PRIVATE void sqlite3UpsertDoUpdate( + Parse *pParse, /* The parsing and code-generating context */ + Upsert *pUpsert, /* The ON CONFLICT clause for the upsert */ + Table *pTab, /* The table being updated */ + Index *pIdx, /* The UNIQUE constraint that failed */ + int iCur /* Cursor for pIdx (or pTab if pIdx==NULL) */ +){ + Vdbe *v = pParse->pVdbe; + sqlite3 *db = pParse->db; + SrcList *pSrc; /* FROM clause for the UPDATE */ + int iDataCur; + + assert( v!=0 ); + assert( pUpsert!=0 ); + VdbeNoopComment((v, "Begin DO UPDATE of UPSERT")); + iDataCur = pUpsert->iDataCur; + if( pIdx && iCur!=iDataCur ){ + if( HasRowid(pTab) ){ + int regRowid = sqlite3GetTempReg(pParse); + sqlite3VdbeAddOp2(v, OP_IdxRowid, iCur, regRowid); + sqlite3VdbeAddOp3(v, OP_SeekRowid, iDataCur, 0, regRowid); + VdbeCoverage(v); + sqlite3ReleaseTempReg(pParse, regRowid); + }else{ + Index *pPk = sqlite3PrimaryKeyIndex(pTab); + int nPk = pPk->nKeyCol; + int iPk = pParse->nMem+1; + int i; + pParse->nMem += nPk; + for(i=0; iaiColumn[i]>=0 ); + k = sqlite3ColumnOfIndex(pIdx, pPk->aiColumn[i]); + sqlite3VdbeAddOp3(v, OP_Column, iCur, k, iPk+i); + VdbeComment((v, "%s.%s", pIdx->zName, + pTab->aCol[pPk->aiColumn[i]].zName)); + } + sqlite3VdbeVerifyAbortable(v, OE_Abort); + i = sqlite3VdbeAddOp4Int(v, OP_Found, iDataCur, 0, iPk, nPk); + VdbeCoverage(v); + sqlite3VdbeAddOp4(v, OP_Halt, SQLITE_CORRUPT, OE_Abort, 0, + "corrupt database", P4_STATIC); + sqlite3VdbeJumpHere(v, i); + } + } + /* pUpsert does not own pUpsertSrc - the outer INSERT statement does. So + ** we have to make a copy before passing it down into sqlite3Update() */ + pSrc = sqlite3SrcListDup(db, pUpsert->pUpsertSrc, 0); + sqlite3Update(pParse, pSrc, pUpsert->pUpsertSet, + pUpsert->pUpsertWhere, OE_Abort, 0, 0, pUpsert); + pUpsert->pUpsertSet = 0; /* Will have been deleted by sqlite3Update() */ + pUpsert->pUpsertWhere = 0; /* Will have been deleted by sqlite3Update() */ + VdbeNoopComment((v, "End DO UPDATE of UPSERT")); +} + +#endif /* SQLITE_OMIT_UPSERT */ + +/************** End of upsert.c **********************************************/ /************** Begin file vacuum.c ******************************************/ /* ** 2003 April 6 @@ -127024,8 +133204,14 @@ static int execSql(sqlite3 *db, char **pzErrMsg, const char *zSql){ while( SQLITE_ROW==(rc = sqlite3_step(pStmt)) ){ const char *zSubSql = (const char*)sqlite3_column_text(pStmt,0); assert( sqlite3_strnicmp(zSql,"SELECT",6)==0 ); - if( zSubSql ){ - assert( zSubSql[0]!='S' ); + /* The secondary SQL must be one of CREATE TABLE, CREATE INDEX, + ** or INSERT. Historically there have been attacks that first + ** corrupt the sqlite_master.sql field with other kinds of statements + ** then run VACUUM to get those statements to execute at inappropriate + ** times. */ + if( zSubSql + && (strncmp(zSubSql,"CRE",3)==0 || strncmp(zSubSql,"INS",3)==0) + ){ rc = execSql(db, pzErrMsg, zSubSql); if( rc!=SQLITE_OK ) break; } @@ -127145,7 +133331,8 @@ SQLITE_PRIVATE int sqlite3RunVacuum(char **pzErrMsg, sqlite3 *db, int iDb){ saved_mTrace = db->mTrace; db->flags |= SQLITE_WriteSchema | SQLITE_IgnoreChecks; db->mDbFlags |= DBFLAG_PreferBuiltin | DBFLAG_Vacuum; - db->flags &= ~(SQLITE_ForeignKeys | SQLITE_ReverseOrder | SQLITE_CountRows); + db->flags &= ~(SQLITE_ForeignKeys | SQLITE_ReverseOrder + | SQLITE_Defensive | SQLITE_CountRows); db->mTrace = 0; zDbMain = db->aDb[iDb].zDbSName; @@ -127203,7 +133390,7 @@ SQLITE_PRIVATE int sqlite3RunVacuum(char **pzErrMsg, sqlite3 *db, int iDb){ */ rc = execSql(db, pzErrMsg, "BEGIN"); if( rc!=SQLITE_OK ) goto end_of_vacuum; - rc = sqlite3BtreeBeginTrans(pMain, 2); + rc = sqlite3BtreeBeginTrans(pMain, 2, 0); if( rc!=SQLITE_OK ) goto end_of_vacuum; /* Do not attempt to change the page size for a WAL database */ @@ -127238,7 +133425,7 @@ SQLITE_PRIVATE int sqlite3RunVacuum(char **pzErrMsg, sqlite3 *db, int iDb){ if( rc!=SQLITE_OK ) goto end_of_vacuum; rc = execSqlF(db, pzErrMsg, "SELECT sql FROM \"%w\".sqlite_master" - " WHERE type='index' AND length(sql)>10", + " WHERE type='index'", zDbMain ); if( rc!=SQLITE_OK ) goto end_of_vacuum; @@ -127621,7 +133808,7 @@ SQLITE_PRIVATE void sqlite3VtabUnlockList(sqlite3 *db){ assert( sqlite3_mutex_held(db->mutex) ); if( p ){ - sqlite3ExpirePreparedStatements(db); + sqlite3ExpirePreparedStatements(db, 0); do { VTable *pNext = p->pNext; sqlite3VtabUnlock(p); @@ -127687,7 +133874,6 @@ SQLITE_PRIVATE void sqlite3VtabBeginParse( Token *pModuleName, /* Name of the module for the virtual table */ int ifNotExists /* No error if the table already exists */ ){ - int iDb; /* The database the table is being created in */ Table *pTable; /* The new virtual table */ sqlite3 *db; /* Database connection */ @@ -127697,8 +133883,6 @@ SQLITE_PRIVATE void sqlite3VtabBeginParse( assert( 0==pTable->pIndex ); db = pParse->db; - iDb = sqlite3SchemaToIndex(db, pTable->pSchema); - assert( iDb>=0 ); assert( pTable->nModuleArg==0 ); addModuleArgument(db, pTable, sqlite3NameFromToken(db, pModuleName)); @@ -127718,6 +133902,8 @@ SQLITE_PRIVATE void sqlite3VtabBeginParse( ** The second call, to obtain permission to create the table, is made now. */ if( pTable->azModuleArg ){ + int iDb = sqlite3SchemaToIndex(db, pTable->pSchema); + assert( iDb>=0 ); /* The database the table is being created in */ sqlite3AuthCheck(pParse, SQLITE_CREATE_VTABLE, pTable->zName, pTable->azModuleArg[0], pParse->db->aDb[iDb].zDbSName); } @@ -128117,7 +134303,7 @@ SQLITE_API int sqlite3_declare_vtab(sqlite3 *db, const char *zCreateTable){ assert( IsVirtual(pTab) ); memset(&sParse, 0, sizeof(sParse)); - sParse.declareVtab = 1; + sParse.eParseMode = PARSE_MODE_DECLARE_VTAB; sParse.db = db; sParse.nQueryLoop = 1; if( SQLITE_OK==sqlite3RunParser(&sParse, zCreateTable, &zErr) @@ -128158,7 +134344,7 @@ SQLITE_API int sqlite3_declare_vtab(sqlite3 *db, const char *zCreateTable){ sqlite3DbFree(db, zErr); rc = SQLITE_ERROR; } - sParse.declareVtab = 0; + sParse.eParseMode = PARSE_MODE_NORMAL; if( sParse.pVdbe ){ sqlite3VdbeFinalize(sParse.pVdbe); @@ -128408,14 +134594,11 @@ SQLITE_PRIVATE FuncDef *sqlite3VtabOverloadFunction( void *pArg = 0; FuncDef *pNew; int rc = 0; - char *zLowerName; - unsigned char *z; - /* Check to see the left operand is a column in a virtual table */ if( NEVER(pExpr==0) ) return pDef; if( pExpr->op!=TK_COLUMN ) return pDef; - pTab = pExpr->pTab; + pTab = pExpr->y.pTab; if( pTab==0 ) return pDef; if( !IsVirtual(pTab) ) return pDef; pVtab = sqlite3GetVTable(db, pTab)->pVtab; @@ -128425,16 +134608,22 @@ SQLITE_PRIVATE FuncDef *sqlite3VtabOverloadFunction( if( pMod->xFindFunction==0 ) return pDef; /* Call the xFindFunction method on the virtual table implementation - ** to see if the implementation wants to overload this function + ** to see if the implementation wants to overload this function. + ** + ** Though undocumented, we have historically always invoked xFindFunction + ** with an all lower-case function name. Continue in this tradition to + ** avoid any chance of an incompatibility. */ - zLowerName = sqlite3DbStrDup(db, pDef->zName); - if( zLowerName ){ - for(z=(unsigned char*)zLowerName; *z; z++){ - *z = sqlite3UpperToLower[*z]; +#ifdef SQLITE_DEBUG + { + int i; + for(i=0; pDef->zName[i]; i++){ + unsigned char x = (unsigned char)pDef->zName[i]; + assert( x==sqlite3UpperToLower[x] ); } - rc = pMod->xFindFunction(pVtab, nArg, zLowerName, &xSFunc, &pArg); - sqlite3DbFree(db, zLowerName); } +#endif + rc = pMod->xFindFunction(pVtab, nArg, pDef->zName, &xSFunc, &pArg); if( rc==0 ){ return pDef; } @@ -128646,7 +134835,7 @@ SQLITE_API int sqlite3_vtab_config(sqlite3 *db, int op, ...){ ** Trace output macros */ #if defined(SQLITE_TEST) || defined(SQLITE_DEBUG) -/***/ int sqlite3WhereTrace; +/***/ extern int sqlite3WhereTrace; #endif #if defined(SQLITE_DEBUG) \ && (defined(SQLITE_TEST) || defined(SQLITE_ENABLE_WHERETRACE)) @@ -128709,6 +134898,8 @@ struct WhereLevel { struct InLoop { int iCur; /* The VDBE cursor used by this IN operator */ int addrInTop; /* Top of the IN loop */ + int iBase; /* Base register of multi-key index record */ + int nPrefix; /* Number of prior entires in the key */ u8 eEndLoopOp; /* IN Loop terminator. OP_Next or OP_Prev */ } *aInLoop; /* Information about each nested IN operator */ } in; /* Used when pWLoop->wsFlags&WHERE_IN_ABLE */ @@ -128947,6 +135138,7 @@ struct WhereClause { WhereInfo *pWInfo; /* WHERE clause processing context */ WhereClause *pOuter; /* Outer conjunction */ u8 op; /* Split operator. TK_AND or TK_OR */ + u8 hasOr; /* True if any a[].eOperator is WO_OR */ int nTerm; /* Number of terms */ int nSlot; /* Number of entries in a[] */ WhereTerm *a; /* Each a[] describes a term of the WHERE cluase */ @@ -129026,12 +135218,33 @@ struct WhereLoopBuilder { int nRecValid; /* Number of valid fields currently in pRec */ #endif unsigned int bldFlags; /* SQLITE_BLDF_* flags */ + unsigned int iPlanLimit; /* Search limiter */ }; /* Allowed values for WhereLoopBuider.bldFlags */ #define SQLITE_BLDF_INDEXED 0x0001 /* An index is used */ #define SQLITE_BLDF_UNIQUE 0x0002 /* All keys of a UNIQUE index used */ +/* The WhereLoopBuilder.iPlanLimit is used to limit the number of +** index+constraint combinations the query planner will consider for a +** particular query. If this parameter is unlimited, then certain +** pathological queries can spend excess time in the sqlite3WhereBegin() +** routine. The limit is high enough that is should not impact real-world +** queries. +** +** SQLITE_QUERY_PLANNER_LIMIT is the baseline limit. The limit is +** increased by SQLITE_QUERY_PLANNER_LIMIT_INCR before each term of the FROM +** clause is processed, so that every table in a join is guaranteed to be +** able to propose a some index+constraint combinations even if the initial +** baseline limit was exhausted by prior tables of the join. +*/ +#ifndef SQLITE_QUERY_PLANNER_LIMIT +# define SQLITE_QUERY_PLANNER_LIMIT 20000 +#endif +#ifndef SQLITE_QUERY_PLANNER_LIMIT_INCR +# define SQLITE_QUERY_PLANNER_LIMIT_INCR 1000 +#endif + /* ** The WHERE clause processing routine has two halves. The ** first part does the start of the WHERE loop and the second @@ -129094,12 +135307,10 @@ SQLITE_PRIVATE int sqlite3WhereExplainOneScan( Parse *pParse, /* Parse context */ SrcList *pTabList, /* Table list this loop refers to */ WhereLevel *pLevel, /* Scan to write OP_Explain opcode for */ - int iLevel, /* Value for "level" column of output */ - int iFrom, /* Value for "from" column of output */ u16 wctrlFlags /* Flags passed to sqlite3WhereBegin() */ ); #else -# define sqlite3WhereExplainOneScan(u,v,w,x,y,z) 0 +# define sqlite3WhereExplainOneScan(u,v,w,x) 0 #endif /* SQLITE_OMIT_EXPLAIN */ #ifdef SQLITE_ENABLE_STMT_SCANSTATUS SQLITE_PRIVATE void sqlite3WhereAddScanStatus( @@ -129122,6 +135333,7 @@ SQLITE_PRIVATE void sqlite3WhereClauseInit(WhereClause*,WhereInfo*); SQLITE_PRIVATE void sqlite3WhereClauseClear(WhereClause*); SQLITE_PRIVATE void sqlite3WhereSplit(WhereClause*,Expr*,u8); SQLITE_PRIVATE Bitmask sqlite3WhereExprUsage(WhereMaskSet*, Expr*); +SQLITE_PRIVATE Bitmask sqlite3WhereExprUsageNN(WhereMaskSet*, Expr*); SQLITE_PRIVATE Bitmask sqlite3WhereExprListUsage(WhereMaskSet*, ExprList*); SQLITE_PRIVATE void sqlite3WhereExprAnalyze(SrcList*, WhereClause*); SQLITE_PRIVATE void sqlite3WhereTabFuncArgs(Parse*, struct SrcList_item*, WhereClause*); @@ -129184,6 +135396,7 @@ SQLITE_PRIVATE void sqlite3WhereTabFuncArgs(Parse*, struct SrcList_item*, WhereC #define WHERE_SKIPSCAN 0x00008000 /* Uses the skip-scan algorithm */ #define WHERE_UNQ_WANTED 0x00010000 /* WHERE_ONEROW would have been helpful*/ #define WHERE_PARTIALIDX 0x00020000 /* The automatic index is partial */ +#define WHERE_IN_EARLYOUT 0x00040000 /* Perhaps quit IN loops early */ /************** End of whereInt.h ********************************************/ /************** Continuing where we left off in wherecode.c ******************/ @@ -129219,23 +135432,23 @@ static void explainAppendTerm( int i; assert( nTerm>=1 ); - if( bAnd ) sqlite3StrAccumAppend(pStr, " AND ", 5); + if( bAnd ) sqlite3_str_append(pStr, " AND ", 5); - if( nTerm>1 ) sqlite3StrAccumAppend(pStr, "(", 1); + if( nTerm>1 ) sqlite3_str_append(pStr, "(", 1); for(i=0; i1 ) sqlite3StrAccumAppend(pStr, ")", 1); + if( nTerm>1 ) sqlite3_str_append(pStr, ")", 1); - sqlite3StrAccumAppend(pStr, zOp, 1); + sqlite3_str_append(pStr, zOp, 1); - if( nTerm>1 ) sqlite3StrAccumAppend(pStr, "(", 1); + if( nTerm>1 ) sqlite3_str_append(pStr, "(", 1); for(i=0; i1 ) sqlite3StrAccumAppend(pStr, ")", 1); + if( nTerm>1 ) sqlite3_str_append(pStr, ")", 1); } /* @@ -129259,11 +135472,11 @@ static void explainIndexRange(StrAccum *pStr, WhereLoop *pLoop){ int i, j; if( nEq==0 && (pLoop->wsFlags&(WHERE_BTM_LIMIT|WHERE_TOP_LIMIT))==0 ) return; - sqlite3StrAccumAppend(pStr, " (", 2); + sqlite3_str_append(pStr, " (", 2); for(i=0; i=nSkip ? "%s=?" : "ANY(%s)", z); + if( i ) sqlite3_str_append(pStr, " AND ", 5); + sqlite3_str_appendf(pStr, i>=nSkip ? "%s=?" : "ANY(%s)", z); } j = i; @@ -129274,7 +135487,7 @@ static void explainIndexRange(StrAccum *pStr, WhereLoop *pLoop){ if( pLoop->wsFlags&WHERE_TOP_LIMIT ){ explainAppendTerm(pStr, pIndex, pLoop->u.btree.nTop, j, i, "<"); } - sqlite3StrAccumAppend(pStr, ")", 1); + sqlite3_str_append(pStr, ")", 1); } /* @@ -129290,8 +135503,6 @@ SQLITE_PRIVATE int sqlite3WhereExplainOneScan( Parse *pParse, /* Parse context */ SrcList *pTabList, /* Table list this loop refers to */ WhereLevel *pLevel, /* Scan to write OP_Explain opcode for */ - int iLevel, /* Value for "level" column of output */ - int iFrom, /* Value for "from" column of output */ u16 wctrlFlags /* Flags passed to sqlite3WhereBegin() */ ){ int ret = 0; @@ -129302,7 +135513,6 @@ SQLITE_PRIVATE int sqlite3WhereExplainOneScan( struct SrcList_item *pItem = &pTabList->a[pLevel->iFrom]; Vdbe *v = pParse->pVdbe; /* VM being constructed */ sqlite3 *db = pParse->db; /* Database handle */ - int iId = pParse->iSelectId; /* Select id (left-most output column) */ int isSearch; /* True for a SEARCH. False for SCAN. */ WhereLoop *pLoop; /* The controlling WhereLoop object */ u32 flags; /* Flags that describe this loop */ @@ -129319,15 +135529,15 @@ SQLITE_PRIVATE int sqlite3WhereExplainOneScan( || (wctrlFlags&(WHERE_ORDERBY_MIN|WHERE_ORDERBY_MAX)); sqlite3StrAccumInit(&str, db, zBuf, sizeof(zBuf), SQLITE_MAX_LENGTH); - sqlite3StrAccumAppendAll(&str, isSearch ? "SEARCH" : "SCAN"); + sqlite3_str_appendall(&str, isSearch ? "SEARCH" : "SCAN"); if( pItem->pSelect ){ - sqlite3XPrintf(&str, " SUBQUERY %d", pItem->iSelectId); + sqlite3_str_appendf(&str, " SUBQUERY %u", pItem->pSelect->selId); }else{ - sqlite3XPrintf(&str, " TABLE %s", pItem->zName); + sqlite3_str_appendf(&str, " TABLE %s", pItem->zName); } if( pItem->zAlias ){ - sqlite3XPrintf(&str, " AS %s", pItem->zAlias); + sqlite3_str_appendf(&str, " AS %s", pItem->zAlias); } if( (flags & (WHERE_IPK|WHERE_VIRTUALTABLE))==0 ){ const char *zFmt = 0; @@ -129350,8 +135560,8 @@ SQLITE_PRIVATE int sqlite3WhereExplainOneScan( zFmt = "INDEX %s"; } if( zFmt ){ - sqlite3StrAccumAppend(&str, " USING ", 7); - sqlite3XPrintf(&str, zFmt, pIdx->zName); + sqlite3_str_append(&str, " USING ", 7); + sqlite3_str_appendf(&str, zFmt, pIdx->zName); explainIndexRange(&str, pLoop); } }else if( (flags & WHERE_IPK)!=0 && (flags & WHERE_CONSTRAINT)!=0 ){ @@ -129366,23 +135576,26 @@ SQLITE_PRIVATE int sqlite3WhereExplainOneScan( assert( flags&WHERE_TOP_LIMIT); zRangeOp = "<"; } - sqlite3XPrintf(&str, " USING INTEGER PRIMARY KEY (rowid%s?)",zRangeOp); + sqlite3_str_appendf(&str, + " USING INTEGER PRIMARY KEY (rowid%s?)",zRangeOp); } #ifndef SQLITE_OMIT_VIRTUALTABLE else if( (flags & WHERE_VIRTUALTABLE)!=0 ){ - sqlite3XPrintf(&str, " VIRTUAL TABLE INDEX %d:%s", + sqlite3_str_appendf(&str, " VIRTUAL TABLE INDEX %d:%s", pLoop->u.vtab.idxNum, pLoop->u.vtab.idxStr); } #endif #ifdef SQLITE_EXPLAIN_ESTIMATED_ROWS if( pLoop->nOut>=10 ){ - sqlite3XPrintf(&str, " (~%llu rows)", sqlite3LogEstToInt(pLoop->nOut)); + sqlite3_str_appendf(&str, " (~%llu rows)", + sqlite3LogEstToInt(pLoop->nOut)); }else{ - sqlite3StrAccumAppend(&str, " (~1 row)", 9); + sqlite3_str_append(&str, " (~1 row)", 9); } #endif zMsg = sqlite3StrAccumFinish(&str); - ret = sqlite3VdbeAddOp4(v, OP_Explain, iId, iLevel, iFrom, zMsg,P4_DYNAMIC); + ret = sqlite3VdbeAddOp4(v, OP_Explain, sqlite3VdbeCurrentAddr(v), + pParse->addrExplain, 0, zMsg,P4_DYNAMIC); } return ret; } @@ -129515,7 +135728,6 @@ static void codeApplyAffinity(Parse *pParse, int base, int n, char *zAff){ /* Code the OP_Affinity opcode if there is anything left to do. */ if( n>0 ){ sqlite3VdbeAddOp4(v, OP_Affinity, base, n, 0, zAff, n); - sqlite3ExprCacheAffinityChange(pParse, base, n); } } @@ -129594,7 +135806,7 @@ static Expr *removeUnindexableInClauseTerms( for(i=iEq; inLTerm; i++){ if( pLoop->aLTerm[i]->pExpr==pX ){ int iField = pLoop->aLTerm[i]->iField - 1; - assert( pOrigRhs->a[iField].pExpr!=0 ); + if( pOrigRhs->a[iField].pExpr==0 ) continue; /* Duplicate PK column */ pRhs = sqlite3ExprListAppend(pParse, pRhs, pOrigRhs->a[iField].pExpr); pOrigRhs->a[iField].pExpr = 0; assert( pOrigLhs->a[iField].pExpr!=0 ); @@ -129759,7 +135971,14 @@ static int codeEqualityTerm( sqlite3VdbeAddOp1(v, OP_IsNull, iOut); VdbeCoverage(v); if( i==iEq ){ pIn->iCur = iTab; - pIn->eEndLoopOp = bRev ? OP_PrevIfOpen : OP_NextIfOpen; + pIn->eEndLoopOp = bRev ? OP_Prev : OP_Next; + if( iEq>0 && (pLoop->wsFlags & WHERE_VIRTUALTABLE)==0 ){ + pIn->iBase = iReg - i; + pIn->nPrefix = i; + pLoop->wsFlags |= WHERE_IN_EARLYOUT; + }else{ + pIn->nPrefix = 0; + } }else{ pIn->eEndLoopOp = OP_Noop; } @@ -130046,11 +136265,8 @@ static int codeCursorHintFixExpr(Walker *pWalker, Expr *pExpr){ struct CCurHint *pHint = pWalker->u.pCCurHint; if( pExpr->op==TK_COLUMN ){ if( pExpr->iTable!=pHint->iTabCur ){ - Vdbe *v = pWalker->pParse->pVdbe; int reg = ++pWalker->pParse->nMem; /* Register for column value */ - sqlite3ExprCodeGetColumnOfTable( - v, pExpr->pTab, pExpr->iTable, pExpr->iColumn, reg - ); + sqlite3ExprCode(pWalker->pParse, pExpr, reg); pExpr->op = TK_REGISTER; pExpr->iTable = reg; }else if( pHint->pIdx!=0 ){ @@ -130282,7 +136498,7 @@ static int whereIndexExprTransNode(Walker *p, Expr *pExpr){ pExpr->op = TK_COLUMN; pExpr->iTable = pX->iIdxCur; pExpr->iColumn = pX->iIdxCol; - pExpr->pTab = 0; + pExpr->y.pTab = 0; return WRC_Prune; }else{ return WRC_Continue; @@ -130383,6 +136599,9 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( ** initialize a memory cell that records if this table matches any ** row of the left table of the join. */ + assert( (pWInfo->wctrlFlags & WHERE_OR_SUBCLAUSE) + || pLevel->iFrom>0 || (pTabItem[0].fg.jointype & JT_LEFT)==0 + ); if( pLevel->iFrom>0 && (pTabItem[0].fg.jointype & JT_LEFT)!=0 ){ pLevel->iLeftJoin = ++pParse->nMem; sqlite3VdbeAddOp2(v, OP_Integer, 0, pLevel->iLeftJoin); @@ -130400,7 +136619,7 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( sqlite3VdbeAddOp3(v, OP_InitCoroutine, regYield, 0, pTabItem->addrFillSub); pLevel->p2 = sqlite3VdbeAddOp2(v, OP_Yield, regYield, addrBrk); VdbeCoverage(v); - VdbeComment((v, "next row of \"%s\"", pTabItem->pTab->zName)); + VdbeComment((v, "next row of %s", pTabItem->pTab->zName)); pLevel->op = OP_Goto; }else @@ -130414,7 +136633,6 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( int nConstraint = pLoop->nLTerm; int iIn; /* Counter for IN constraints */ - sqlite3ExprCachePush(pParse); iReg = sqlite3GetTempRange(pParse, nConstraint+2); addrNotFound = pLevel->addrBrk; for(j=0; jaddrNxt; sqlite3VdbeAddOp3(v, OP_SeekRowid, iCur, addrNxt, iRowidReg); VdbeCoverage(v); - sqlite3ExprCacheAffinityChange(pParse, iRowidReg, 1); - sqlite3ExprCacheStore(pParse, iCur, -1, iRowidReg); - VdbeComment((v, "pk")); pLevel->op = OP_Noop; }else if( (pLoop->wsFlags & WHERE_IPK)!=0 && (pLoop->wsFlags & WHERE_COLUMN_RANGE)!=0 @@ -130563,7 +136777,15 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( if( sqlite3ExprIsVector(pX->pRight) ){ r1 = rTemp = sqlite3GetTempReg(pParse); codeExprOrVector(pParse, pX->pRight, r1, 1); - op = aMoveOp[(pX->op - TK_GT) | 0x0001]; + testcase( pX->op==TK_GT ); + testcase( pX->op==TK_GE ); + testcase( pX->op==TK_LT ); + testcase( pX->op==TK_LE ); + op = aMoveOp[((pX->op - TK_GT - 1) & 0x3) | 0x1]; + assert( pX->op!=TK_GT || op==OP_SeekGE ); + assert( pX->op!=TK_GE || op==OP_SeekGE ); + assert( pX->op!=TK_LT || op==OP_SeekLE ); + assert( pX->op!=TK_LE || op==OP_SeekLE ); }else{ r1 = sqlite3ExprCodeTemp(pParse, pX->pRight, &rTemp); disableTerm(pLevel, pStart); @@ -130575,7 +136797,6 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( VdbeCoverageIf(v, pX->op==TK_LE); VdbeCoverageIf(v, pX->op==TK_LT); VdbeCoverageIf(v, pX->op==TK_GE); - sqlite3ExprCacheAffinityChange(pParse, r1, 1); sqlite3ReleaseTempReg(pParse, rTemp); }else{ sqlite3VdbeAddOp2(v, bRev ? OP_Last : OP_Rewind, iCur, addrHalt); @@ -130610,7 +136831,6 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( if( testOp!=OP_Noop ){ iRowidReg = ++pParse->nMem; sqlite3VdbeAddOp2(v, OP_Rowid, iCur, iRowidReg); - sqlite3ExprCacheStore(pParse, iCur, -1, iRowidReg); sqlite3VdbeAddOp3(v, testOp, memEndValue, addrBrk, iRowidReg); VdbeCoverageIf(v, testOp==OP_Le); VdbeCoverageIf(v, testOp==OP_Lt); @@ -130815,6 +137035,9 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( ** above has already left the cursor sitting on the correct row, ** so no further seeking is needed */ }else{ + if( pLoop->wsFlags & WHERE_IN_EARLYOUT ){ + sqlite3VdbeAddOp1(v, OP_SeekHit, iIdxCur); + } op = aStartOp[(start_constraints<<2) + (startEq<<1) + bRev]; assert( op!=0 ); sqlite3VdbeAddOp4Int(v, op, iIdxCur, addrNxt, regBase, nConstraint); @@ -130833,7 +137056,6 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( nConstraint = nEq; if( pRangeEnd ){ Expr *pRight = pRangeEnd->pExpr->pRight; - sqlite3ExprCacheRemove(pParse, regBase+nEq, 1); codeExprOrVector(pParse, pRight, regBase+nEq, nTop); whereLikeOptimizationStringFixup(v, pLevel, pRangeEnd); if( (pRangeEnd->wtFlags & TERM_VNULL)==0 @@ -130858,7 +137080,6 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( } }else if( bStopAtNull ){ sqlite3VdbeAddOp2(v, OP_Null, 0, regBase+nEq); - sqlite3ExprCacheRemove(pParse, regBase+nEq, 1); endEq = 0; nConstraint++; } @@ -130878,6 +137099,10 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( testcase( op==OP_IdxLE ); VdbeCoverageIf(v, op==OP_IdxLE ); } + if( pLoop->wsFlags & WHERE_IN_EARLYOUT ){ + sqlite3VdbeAddOp2(v, OP_SeekHit, iIdxCur, 1); + } + /* Seek the table cursor, if required */ if( omitTable ){ /* pIdx is a covering index. No need to access the main table. */ @@ -130888,7 +137113,6 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( )){ iRowidReg = ++pParse->nMem; sqlite3VdbeAddOp2(v, OP_IdxRowid, iIdxCur, iRowidReg); - sqlite3ExprCacheStore(pParse, iCur, -1, iRowidReg); sqlite3VdbeAddOp3(v, OP_NotExists, iCur, 0, iRowidReg); VdbeCoverage(v); }else{ @@ -130908,9 +137132,16 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( /* If pIdx is an index on one or more expressions, then look through ** all the expressions in pWInfo and try to transform matching expressions ** into reference to index columns. + ** + ** Do not do this for the RHS of a LEFT JOIN. This is because the + ** expression may be evaluated after OP_NullRow has been executed on + ** the cursor. In this case it is important to do the full evaluation, + ** as the result of the expression may not be NULL, even if all table + ** column values are. https://www.sqlite.org/src/info/7fa8049685b50b5a */ - whereIndexExprTrans(pIdx, iCur, iIdxCur, pWInfo); - + if( pLevel->iLeftJoin==0 ){ + whereIndexExprTrans(pIdx, iCur, iIdxCur, pWInfo); + } /* Record the instruction used to terminate the loop. */ if( pLoop->wsFlags & WHERE_ONEROW ){ @@ -131066,7 +137297,6 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( for(iTerm=0; iTermnTerm; iTerm++){ Expr *pExpr = pWC->a[iTerm].pExpr; if( &pWC->a[iTerm] == pTerm ) continue; - if( ExprHasProperty(pExpr, EP_FromJoin) ) continue; testcase( pWC->a[iTerm].wtFlags & TERM_VIRTUAL ); testcase( pWC->a[iTerm].wtFlags & TERM_CODED ); if( (pWC->a[iTerm].wtFlags & (TERM_VIRTUAL|TERM_CODED))!=0 ) continue; @@ -131085,13 +137315,17 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( ** sub-WHERE clause is to to invoke the main loop body as a subroutine. */ wctrlFlags = WHERE_OR_SUBCLAUSE | (pWInfo->wctrlFlags & WHERE_SEEK_TABLE); + ExplainQueryPlan((pParse, 1, "MULTI-INDEX OR")); for(ii=0; iinTerm; ii++){ WhereTerm *pOrTerm = &pOrWc->a[ii]; if( pOrTerm->leftCursor==iCur || (pOrTerm->eOperator & WO_AND)!=0 ){ WhereInfo *pSubWInfo; /* Info for single OR-term scan */ Expr *pOrExpr = pOrTerm->pExpr; /* Current OR clause term */ int jmp1 = 0; /* Address of jump operation */ - if( pAndExpr && !ExprHasProperty(pOrExpr, EP_FromJoin) ){ + assert( (pTabItem[0].fg.jointype & JT_LEFT)==0 + || ExprHasProperty(pOrExpr, EP_FromJoin) + ); + if( pAndExpr ){ pAndExpr->pLeft = pOrExpr; pOrExpr = pAndExpr; } @@ -131103,7 +137337,7 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( if( pSubWInfo ){ WhereLoop *pSubLoop; int addrExplain = sqlite3WhereExplainOneScan( - pParse, pOrTab, &pSubWInfo->a[0], iLevel, pLevel->iFrom, 0 + pParse, pOrTab, &pSubWInfo->a[0], 0 ); sqlite3WhereAddScanStatus(v, pOrTab, &pSubWInfo->a[0], addrExplain); @@ -131113,23 +137347,23 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( ** row will be skipped in subsequent sub-WHERE clauses. */ if( (pWInfo->wctrlFlags & WHERE_DUPLICATES_OK)==0 ){ - int r; int iSet = ((ii==pOrWc->nTerm-1)?-1:ii); if( HasRowid(pTab) ){ - r = sqlite3ExprCodeGetColumn(pParse, pTab, -1, iCur, regRowid, 0); + sqlite3ExprCodeGetColumnOfTable(v, pTab, iCur, -1, regRowid); jmp1 = sqlite3VdbeAddOp4Int(v, OP_RowSetTest, regRowset, 0, - r,iSet); + regRowid, iSet); VdbeCoverage(v); }else{ Index *pPk = sqlite3PrimaryKeyIndex(pTab); int nPk = pPk->nKeyCol; int iPk; + int r; /* Read the PK into an array of temp registers. */ r = sqlite3GetTempRange(pParse, nPk); for(iPk=0; iPkaiColumn[iPk]; - sqlite3ExprCodeGetColumnToReg(pParse, pTab, iCol, iCur, r+iPk); + sqlite3ExprCodeGetColumnOfTable(v, pTab, iCur, iCol, r+iPk); } /* Check if the temp table already contains this key. If so, @@ -131202,6 +137436,7 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( } } } + ExplainQueryPlanPop(pParse); pLevel->u.pCovidx = pCov; if( pCov ) pLevel->iIdxCur = iCovCur; if( pAndExpr ){ @@ -131274,7 +137509,7 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( } pE = pTerm->pExpr; assert( pE!=0 ); - if( pLevel->iLeftJoin && !ExprHasProperty(pE, EP_FromJoin) ){ + if( (pTabItem->fg.jointype&JT_LEFT) && !ExprHasProperty(pE,EP_FromJoin) ){ continue; } @@ -131287,7 +137522,7 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( continue; } - if( pTerm->wtFlags & TERM_LIKECOND ){ + if( (pTerm->wtFlags & TERM_LIKECOND)!=0 ){ /* If the TERM_LIKECOND flag is set, that means that the range search ** is sufficient to guarantee that the LIKE operator is true, so we ** can skip the call to the like(A,B) function. But this only works @@ -131297,8 +137532,9 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( continue; #else u32 x = pLevel->iLikeRepCntr; - assert( x>0 ); - skipLikeAddr = sqlite3VdbeAddOp1(v, (x&1)?OP_IfNot:OP_If, (int)(x>>1)); + if( x>0 ){ + skipLikeAddr = sqlite3VdbeAddOp1(v, (x&1)?OP_IfNot:OP_If,(int)(x>>1)); + } VdbeCoverage(v); #endif } @@ -131338,6 +137574,12 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( WO_EQ|WO_IN|WO_IS, 0); if( pAlt==0 ) continue; if( pAlt->wtFlags & (TERM_CODED) ) continue; + if( (pAlt->eOperator & WO_IN) + && (pAlt->pExpr->flags & EP_xIsSelect) + && (pAlt->pExpr->x.pSelect->pEList->nExpr>1) + ){ + continue; + } testcase( pAlt->eOperator & WO_EQ ); testcase( pAlt->eOperator & WO_IS ); testcase( pAlt->eOperator & WO_IN ); @@ -131354,7 +137596,6 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( pLevel->addrFirst = sqlite3VdbeCurrentAddr(v); sqlite3VdbeAddOp2(v, OP_Integer, 1, pLevel->iLeftJoin); VdbeComment((v, "record LEFT JOIN hit")); - sqlite3ExprCacheClear(pParse); for(pTerm=pWC->a, j=0; jnTerm; j++, pTerm++){ testcase( pTerm->wtFlags & TERM_VIRTUAL ); testcase( pTerm->wtFlags & TERM_CODED ); @@ -131570,18 +137811,18 @@ static int isLikeOrGlob( int *pisComplete, /* True if the only wildcard is % in the last character */ int *pnoCase /* True if uppercase is equivalent to lowercase */ ){ - const u8 *z = 0; /* String on RHS of LIKE operator */ + const u8 *z = 0; /* String on RHS of LIKE operator */ Expr *pRight, *pLeft; /* Right and left size of LIKE operator */ ExprList *pList; /* List of operands to the LIKE operator */ - int c; /* One character in z[] */ + u8 c; /* One character in z[] */ int cnt; /* Number of non-wildcard prefix characters */ - char wc[4]; /* Wildcard characters */ + u8 wc[4]; /* Wildcard characters */ sqlite3 *db = pParse->db; /* Database connection */ sqlite3_value *pVal = 0; int op; /* Opcode of pRight */ int rc; /* Result code to return */ - if( !sqlite3IsLikeFunction(db, pExpr, pnoCase, wc) ){ + if( !sqlite3IsLikeFunction(db, pExpr, pnoCase, (char*)wc) ){ return 0; } #ifdef SQLITE_EBCDIC @@ -131606,23 +137847,6 @@ static int isLikeOrGlob( } if( z ){ - /* If the RHS begins with a digit or a minus sign, then the LHS must - ** be an ordinary column (not a virtual table column) with TEXT affinity. - ** Otherwise the LHS might be numeric and "lhs >= rhs" would be false - ** even though "lhs LIKE rhs" is true. But if the RHS does not start - ** with a digit or '-', then "lhs LIKE rhs" will always be false if - ** the LHS is numeric and so the optimization still works. - */ - if( sqlite3Isdigit(z[0]) || z[0]=='-' ){ - if( pLeft->op!=TK_COLUMN - || sqlite3ExprAffinity(pLeft)!=SQLITE_AFF_TEXT - || IsVirtual(pLeft->pTab) /* Value might be numeric */ - ){ - sqlite3ValueFree(pVal); - return 0; - } - } - /* Count the number of prefix characters prior to the first wildcard */ cnt = 0; while( (c=z[cnt])!=0 && c!=wc[0] && c!=wc[1] && c!=wc[2] ){ @@ -131632,11 +137856,13 @@ static int isLikeOrGlob( /* The optimization is possible only if (1) the pattern does not begin ** with a wildcard and if (2) the non-wildcard prefix does not end with - ** an (illegal 0xff) character. The second condition is necessary so + ** an (illegal 0xff) character, or (3) the pattern does not consist of + ** a single escape character. The second condition is necessary so ** that we can increment the prefix key to find an upper bound for the - ** range search. - */ - if( cnt!=0 && 255!=(u8)z[cnt-1] ){ + ** range search. The third is because the caller assumes that the pattern + ** consists of at least one character after all escapes have been + ** removed. */ + if( cnt!=0 && 255!=(u8)z[cnt-1] && (cnt>1 || z[0]!=wc[3]) ){ Expr *pPrefix; /* A "complete" match if the pattern ends with "*" or "%" */ @@ -131653,6 +137879,32 @@ static int isLikeOrGlob( zNew[iTo++] = zNew[iFrom]; } zNew[iTo] = 0; + + /* If the RHS begins with a digit or a minus sign, then the LHS must be + ** an ordinary column (not a virtual table column) with TEXT affinity. + ** Otherwise the LHS might be numeric and "lhs >= rhs" would be false + ** even though "lhs LIKE rhs" is true. But if the RHS does not start + ** with a digit or '-', then "lhs LIKE rhs" will always be false if + ** the LHS is numeric and so the optimization still works. + ** + ** 2018-09-10 ticket c94369cae9b561b1f996d0054bfab11389f9d033 + ** The RHS pattern must not be '/%' because the termination condition + ** will then become "x<'0'" and if the affinity is numeric, will then + ** be converted into "x<0", which is incorrect. + */ + if( sqlite3Isdigit(zNew[0]) + || zNew[0]=='-' + || (zNew[0]+1=='0' && iTo==1) + ){ + if( pLeft->op!=TK_COLUMN + || sqlite3ExprAffinity(pLeft)!=SQLITE_AFF_TEXT + || IsVirtual(pLeft->y.pTab) /* Value might be numeric */ + ){ + sqlite3ExprDelete(db, pPrefix); + sqlite3ValueFree(pVal); + return 0; + } + } } *ppPrefix = pPrefix; @@ -131714,6 +137966,7 @@ static int isLikeOrGlob( ** If the expression matches none of the patterns above, return 0. */ static int isAuxiliaryVtabOperator( + sqlite3 *db, /* Parsing context */ Expr *pExpr, /* Test this expression */ unsigned char *peOp2, /* OUT: 0 for MATCH, or else an op2 value */ Expr **ppLeft, /* Column expression to left of MATCH/op2 */ @@ -131737,26 +137990,64 @@ static int isAuxiliaryVtabOperator( if( pList==0 || pList->nExpr!=2 ){ return 0; } + + /* Built-in operators MATCH, GLOB, LIKE, and REGEXP attach to a + ** virtual table on their second argument, which is the same as + ** the left-hand side operand in their in-fix form. + ** + ** vtab_column MATCH expression + ** MATCH(expression,vtab_column) + */ pCol = pList->a[1].pExpr; - if( pCol->op!=TK_COLUMN || !IsVirtual(pCol->pTab) ){ - return 0; + if( pCol->op==TK_COLUMN && IsVirtual(pCol->y.pTab) ){ + for(i=0; iu.zToken, aOp[i].zOp)==0 ){ + *peOp2 = aOp[i].eOp2; + *ppRight = pList->a[0].pExpr; + *ppLeft = pCol; + return 1; + } + } } - for(i=0; iu.zToken, aOp[i].zOp)==0 ){ - *peOp2 = aOp[i].eOp2; - *ppRight = pList->a[0].pExpr; - *ppLeft = pCol; - return 1; + + /* We can also match against the first column of overloaded + ** functions where xFindFunction returns a value of at least + ** SQLITE_INDEX_CONSTRAINT_FUNCTION. + ** + ** OVERLOADED(vtab_column,expression) + ** + ** Historically, xFindFunction expected to see lower-case function + ** names. But for this use case, xFindFunction is expected to deal + ** with function names in an arbitrary case. + */ + pCol = pList->a[0].pExpr; + if( pCol->op==TK_COLUMN && IsVirtual(pCol->y.pTab) ){ + sqlite3_vtab *pVtab; + sqlite3_module *pMod; + void (*xNotUsed)(sqlite3_context*,int,sqlite3_value**); + void *pNotUsed; + pVtab = sqlite3GetVTable(db, pCol->y.pTab)->pVtab; + assert( pVtab!=0 ); + assert( pVtab->pModule!=0 ); + pMod = (sqlite3_module *)pVtab->pModule; + if( pMod->xFindFunction!=0 ){ + i = pMod->xFindFunction(pVtab,2, pExpr->u.zToken, &xNotUsed, &pNotUsed); + if( i>=SQLITE_INDEX_CONSTRAINT_FUNCTION ){ + *peOp2 = i; + *ppRight = pList->a[1].pExpr; + *ppLeft = pCol; + return 1; + } } } }else if( pExpr->op==TK_NE || pExpr->op==TK_ISNOT || pExpr->op==TK_NOTNULL ){ int res = 0; Expr *pLeft = pExpr->pLeft; Expr *pRight = pExpr->pRight; - if( pLeft->op==TK_COLUMN && IsVirtual(pLeft->pTab) ){ + if( pLeft->op==TK_COLUMN && IsVirtual(pLeft->y.pTab) ){ res++; } - if( pRight && pRight->op==TK_COLUMN && IsVirtual(pRight->pTab) ){ + if( pRight && pRight->op==TK_COLUMN && IsVirtual(pRight->y.pTab) ){ res++; SWAP(Expr*, pLeft, pRight); } @@ -132048,7 +138339,12 @@ static void exprAnalyzeOrTerm( ** empty. */ pOrInfo->indexable = indexable; - pTerm->eOperator = indexable==0 ? 0 : WO_OR; + if( indexable ){ + pTerm->eOperator = WO_OR; + pWC->hasOr = 1; + }else{ + pTerm->eOperator = WO_OR; + } /* For a two-way OR, attempt to implementation case 2. */ @@ -132189,12 +138485,11 @@ static void exprAnalyzeOrTerm( idxNew = whereClauseInsert(pWC, pNew, TERM_VIRTUAL|TERM_DYNAMIC); testcase( idxNew==0 ); exprAnalyze(pSrc, pWC, idxNew); - pTerm = &pWC->a[idxTerm]; + /* pTerm = &pWC->a[idxTerm]; // would be needed if pTerm where used again */ markTermAsChild(pWC, idxNew, idxTerm); }else{ sqlite3ExprListDelete(db, pList); } - pTerm->eOperator = WO_NOOP; /* case 1 trumps case 3 */ } } } @@ -132229,7 +138524,7 @@ static int termIsEquivalence(Parse *pParse, Expr *pExpr){ return 0; } pColl = sqlite3BinaryCompareCollSeq(pParse, pExpr->pLeft, pExpr->pRight); - if( pColl==0 || sqlite3StrICmp(pColl->zName, "BINARY")==0 ) return 1; + if( sqlite3IsBinary(pColl) ) return 1; return sqlite3ExprCollSeqMatch(pParse, pExpr->pLeft, pExpr->pRight); } @@ -132252,6 +138547,9 @@ static Bitmask exprSelectUsage(WhereMaskSet *pMaskSet, Select *pS){ for(i=0; inSrc; i++){ mask |= exprSelectUsage(pMaskSet, pSrc->a[i].pSelect); mask |= sqlite3WhereExprUsage(pMaskSet, pSrc->a[i].pOn); + if( pSrc->a[i].fg.isTabFunc ){ + mask |= sqlite3WhereExprListUsage(pMaskSet, pSrc->a[i].u1.pFuncArg); + } } } pS = pS->pPrior; @@ -132385,7 +138683,7 @@ static void exprAnalyze( pTerm->prereqRight = sqlite3WhereExprUsage(pMaskSet, pExpr->pRight); } pMaskSet->bVarSelect = 0; - prereqAll = sqlite3WhereExprUsage(pMaskSet, pExpr); + prereqAll = sqlite3WhereExprUsageNN(pMaskSet, pExpr); if( pMaskSet->bVarSelect ) pTerm->wtFlags |= TERM_VARSELECT; if( ExprHasProperty(pExpr, EP_FromJoin) ){ Bitmask x = sqlite3WhereGetMask(pMaskSet, pExpr->iRightJoinTable); @@ -132567,7 +138865,7 @@ static void exprAnalyze( } *pC = c + 1; } - zCollSeqName = noCase ? "NOCASE" : "BINARY"; + zCollSeqName = noCase ? "NOCASE" : sqlite3StrBINARY; pNewExpr1 = sqlite3ExprDup(db, pLeft, 0); pNewExpr1 = sqlite3PExpr(pParse, TK_GE, sqlite3ExprAddCollateString(pParse,pNewExpr1,zCollSeqName), @@ -132604,7 +138902,7 @@ static void exprAnalyze( */ if( pWC->op==TK_AND ){ Expr *pRight = 0, *pLeft = 0; - int res = isAuxiliaryVtabOperator(pExpr, &eOp2, &pLeft, &pRight); + int res = isAuxiliaryVtabOperator(db, pExpr, &eOp2, &pLeft, &pRight); while( res-- > 0 ){ int idxNew; WhereTerm *pNewTerm; @@ -132664,7 +138962,7 @@ static void exprAnalyze( exprAnalyze(pSrc, pWC, idxNew); } pTerm = &pWC->a[idxTerm]; - pTerm->wtFlags = TERM_CODED|TERM_VIRTUAL; /* Disable the original */ + pTerm->wtFlags |= TERM_CODED|TERM_VIRTUAL; /* Disable the original */ pTerm->eOperator = 0; } @@ -132701,6 +138999,7 @@ static void exprAnalyze( if( pExpr->op==TK_NOTNULL && pExpr->pLeft->op==TK_COLUMN && pExpr->pLeft->iColumn>=0 + && !ExprHasProperty(pExpr, EP_FromJoin) && OptimizationEnabled(db, SQLITE_Stat34) ){ Expr *pNewExpr; @@ -132778,6 +139077,7 @@ SQLITE_PRIVATE void sqlite3WhereClauseInit( WhereInfo *pWInfo /* The WHERE processing context */ ){ pWC->pWInfo = pWInfo; + pWC->hasOr = 0; pWC->pOuter = 0; pWC->nTerm = 0; pWC->nSlot = ArraySize(pWC->aStatic); @@ -132814,17 +139114,18 @@ SQLITE_PRIVATE void sqlite3WhereClauseClear(WhereClause *pWC){ ** a bitmask indicating which tables are used in that expression ** tree. */ -SQLITE_PRIVATE Bitmask sqlite3WhereExprUsage(WhereMaskSet *pMaskSet, Expr *p){ +SQLITE_PRIVATE Bitmask sqlite3WhereExprUsageNN(WhereMaskSet *pMaskSet, Expr *p){ Bitmask mask; - if( p==0 ) return 0; - if( p->op==TK_COLUMN ){ + if( p->op==TK_COLUMN && !ExprHasProperty(p, EP_FixedCol) ){ return sqlite3WhereGetMask(pMaskSet, p->iTable); + }else if( ExprHasProperty(p, EP_TokenOnly|EP_Leaf) ){ + assert( p->op!=TK_IF_NULL_ROW ); + return 0; } mask = (p->op==TK_IF_NULL_ROW) ? sqlite3WhereGetMask(pMaskSet, p->iTable) : 0; - assert( !ExprHasProperty(p, EP_TokenOnly) ); - if( p->pLeft ) mask |= sqlite3WhereExprUsage(pMaskSet, p->pLeft); + if( p->pLeft ) mask |= sqlite3WhereExprUsageNN(pMaskSet, p->pLeft); if( p->pRight ){ - mask |= sqlite3WhereExprUsage(pMaskSet, p->pRight); + mask |= sqlite3WhereExprUsageNN(pMaskSet, p->pRight); assert( p->x.pList==0 ); }else if( ExprHasProperty(p, EP_xIsSelect) ){ if( ExprHasProperty(p, EP_VarSelect) ) pMaskSet->bVarSelect = 1; @@ -132834,6 +139135,9 @@ SQLITE_PRIVATE Bitmask sqlite3WhereExprUsage(WhereMaskSet *pMaskSet, Expr *p){ } return mask; } +SQLITE_PRIVATE Bitmask sqlite3WhereExprUsage(WhereMaskSet *pMaskSet, Expr *p){ + return p ? sqlite3WhereExprUsageNN(pMaskSet,p) : 0; +} SQLITE_PRIVATE Bitmask sqlite3WhereExprListUsage(WhereMaskSet *pMaskSet, ExprList *pList){ int i; Bitmask mask = 0; @@ -132887,6 +139191,7 @@ SQLITE_PRIVATE void sqlite3WhereTabFuncArgs( pArgs = pItem->u1.pFuncArg; if( pArgs==0 ) return; for(j=k=0; jnExpr; j++){ + Expr *pRhs; while( knCol && (pTab->aCol[k].colFlags & COLFLAG_HIDDEN)==0 ){k++;} if( k>=pTab->nCol ){ sqlite3ErrorMsg(pParse, "too many arguments on %s() - max %d", @@ -132897,9 +139202,10 @@ SQLITE_PRIVATE void sqlite3WhereTabFuncArgs( if( pColRef==0 ) return; pColRef->iTable = pItem->iCursor; pColRef->iColumn = k++; - pColRef->pTab = pTab; - pTerm = sqlite3PExpr(pParse, TK_EQ, pColRef, - sqlite3ExprDup(pParse->db, pArgs->a[j].pExpr, 0)); + pColRef->y.pTab = pTab; + pRhs = sqlite3PExpr(pParse, TK_UPLUS, + sqlite3ExprDup(pParse->db, pArgs->a[j].pExpr, 0), 0); + pTerm = sqlite3PExpr(pParse, TK_EQ, pColRef, pRhs); whereClauseInsert(pWC, pTerm, TERM_DYNAMIC); } } @@ -132975,15 +139281,38 @@ SQLITE_PRIVATE int sqlite3WhereIsOrdered(WhereInfo *pWInfo){ } /* -** Return TRUE if the innermost loop of the WHERE clause implementation -** returns rows in ORDER BY order for complete run of the inner loop. +** In the ORDER BY LIMIT optimization, if the inner-most loop is known +** to emit rows in increasing order, and if the last row emitted by the +** inner-most loop did not fit within the sorter, then we can skip all +** subsequent rows for the current iteration of the inner loop (because they +** will not fit in the sorter either) and continue with the second inner +** loop - the loop immediately outside the inner-most. +** +** When a row does not fit in the sorter (because the sorter already +** holds LIMIT+OFFSET rows that are smaller), then a jump is made to the +** label returned by this function. ** -** Across multiple iterations of outer loops, the output rows need not be -** sorted. As long as rows are sorted for just the innermost loop, this -** routine can return TRUE. +** If the ORDER BY LIMIT optimization applies, the jump destination should +** be the continuation for the second-inner-most loop. If the ORDER BY +** LIMIT optimization does not apply, then the jump destination should +** be the continuation for the inner-most loop. +** +** It is always safe for this routine to return the continuation of the +** inner-most loop, in the sense that a correct answer will result. +** Returning the continuation the second inner loop is an optimization +** that might make the code run a little faster, but should not change +** the final answer. */ -SQLITE_PRIVATE int sqlite3WhereOrderedInnerLoop(WhereInfo *pWInfo){ - return pWInfo->bOrderedInnerLoop; +SQLITE_PRIVATE int sqlite3WhereOrderByLimitOptLabel(WhereInfo *pWInfo){ + WhereLevel *pInner; + if( !pWInfo->bOrderedInnerLoop ){ + /* The ORDER BY LIMIT optimization does not apply. Jump to the + ** continuation of the inner-most loop. */ + return pWInfo->iContinue; + } + pInner = &pWInfo->a[pWInfo->nLevel-1]; + assert( pInner->addrNxt!=0 ); + return pInner->addrNxt; } /* @@ -133710,7 +140039,6 @@ static void constructAutomaticIndex( VdbeComment((v, "for %s", pTable->zName)); /* Fill the automatic index with content */ - sqlite3ExprCachePush(pParse); pTabItem = &pWC->pWInfo->pTabList->a[pLevel->iFrom]; if( pTabItem->fg.viaCoroutine ){ int regYield = pTabItem->regReturn; @@ -133718,7 +140046,7 @@ static void constructAutomaticIndex( sqlite3VdbeAddOp3(v, OP_InitCoroutine, regYield, 0, pTabItem->addrFillSub); addrTop = sqlite3VdbeAddOp1(v, OP_Yield, regYield); VdbeCoverage(v); - VdbeComment((v, "next row of \"%s\"", pTabItem->pTab->zName)); + VdbeComment((v, "next row of %s", pTabItem->pTab->zName)); }else{ addrTop = sqlite3VdbeAddOp1(v, OP_Rewind, pLevel->iTabCur); VdbeCoverage(v); } @@ -133740,14 +140068,12 @@ static void constructAutomaticIndex( translateColumnToCopy(pParse, addrTop, pLevel->iTabCur, pTabItem->regResult, 1); sqlite3VdbeGoto(v, addrTop); - pTabItem->fg.viaCoroutine = 0; }else{ sqlite3VdbeAddOp2(v, OP_Next, pLevel->iTabCur, addrTop+1); VdbeCoverage(v); } sqlite3VdbeChangeP5(v, SQLITE_STMTSTATUS_AUTOINDEX); sqlite3VdbeJumpHere(v, addrTop); sqlite3ReleaseTempReg(pParse, regRecord); - sqlite3ExprCachePop(pParse); /* Jump here when skipping the initialization */ sqlite3VdbeJumpHere(v, addrInit); @@ -133853,6 +140179,20 @@ static sqlite3_index_info *allocateIndexInfo( testcase( pTerm->eOperator & WO_ALL ); if( (pTerm->eOperator & ~(WO_EQUIV))==0 ) continue; if( pTerm->wtFlags & TERM_VNULL ) continue; + if( (pSrc->fg.jointype & JT_LEFT)!=0 + && !ExprHasProperty(pTerm->pExpr, EP_FromJoin) + && (pTerm->eOperator & (WO_IS|WO_ISNULL)) + ){ + /* An "IS" term in the WHERE clause where the virtual table is the rhs + ** of a LEFT JOIN. Do not pass this term to the virtual table + ** implementation, as this can lead to incorrect results from SQL such + ** as: + ** + ** "LEFT JOIN vtab WHERE vtab.col IS NULL" */ + testcase( pTerm->eOperator & WO_ISNULL ); + testcase( pTerm->eOperator & WO_IS ); + continue; + } assert( pTerm->u.leftColumn>=(-1) ); pIdxCons[j].iColumn = pTerm->u.leftColumn; pIdxCons[j].iTermOffset = i; @@ -133905,9 +140245,11 @@ static sqlite3_index_info *allocateIndexInfo( ** method of the virtual table with the sqlite3_index_info object that ** comes in as the 3rd argument to this function. ** -** If an error occurs, pParse is populated with an error message and a -** non-zero value is returned. Otherwise, 0 is returned and the output -** part of the sqlite3_index_info structure is left populated. +** If an error occurs, pParse is populated with an error message and an +** appropriate error code is returned. A return of SQLITE_CONSTRAINT from +** xBestIndex is not considered an error. SQLITE_CONSTRAINT indicates that +** the current configuration of "unusable" flags in sqlite3_index_info can +** not result in a valid plan. ** ** Whether or not an error is returned, it is the responsibility of the ** caller to eventually free p->idxStr if p->needToFreeIdxStr indicates @@ -133921,7 +140263,7 @@ static int vtabBestIndex(Parse *pParse, Table *pTab, sqlite3_index_info *p){ rc = pVtab->pModule->xBestIndex(pVtab, p); TRACE_IDX_OUTPUTS(p); - if( rc!=SQLITE_OK ){ + if( rc!=SQLITE_OK && rc!=SQLITE_CONSTRAINT ){ if( rc==SQLITE_NOMEM ){ sqlite3OomFault(pParse->db); }else if( !pVtab->zErrMsg ){ @@ -133932,19 +140274,7 @@ static int vtabBestIndex(Parse *pParse, Table *pTab, sqlite3_index_info *p){ } sqlite3_free(pVtab->zErrMsg); pVtab->zErrMsg = 0; - -#if 0 - /* This error is now caught by the caller. - ** Search for "xBestIndex malfunction" below */ - for(i=0; inConstraint; i++){ - if( !p->aConstraint[i].usable && p->aConstraintUsage[i].argvIndex>0 ){ - sqlite3ErrorMsg(pParse, - "table %s: xBestIndex returned an invalid plan", pTab->zName); - } - } -#endif - - return pParse->nErr; + return rc; } #endif /* !defined(SQLITE_OMIT_VIRTUALTABLE) */ @@ -134344,7 +140674,9 @@ static int whereRangeScanEst( Index *p = pLoop->u.btree.pIndex; int nEq = pLoop->u.btree.nEq; - if( p->nSample>0 && nEqnSampleCol ){ + if( p->nSample>0 && nEqnSampleCol + && OptimizationEnabled(pParse->db, SQLITE_Stat34) + ){ if( nEq==pBuilder->nRecValid ){ UnpackedRecord *pRec = pBuilder->pRec; tRowcnt a[2]; @@ -134997,6 +141329,14 @@ static int whereLoopInsert(WhereLoopBuilder *pBuilder, WhereLoop *pTemplate){ sqlite3 *db = pWInfo->pParse->db; int rc; + /* Stop the search once we hit the query planner search limit */ + if( pBuilder->iPlanLimit==0 ){ + WHERETRACE(0xffffffff,("=== query planner search limit reached ===\n")); + if( pBuilder->pOrSet ) pBuilder->pOrSet->n = 0; + return SQLITE_DONE; + } + pBuilder->iPlanLimit--; + /* If pBuilder->pOrSet is defined, then only keep track of the costs ** and prereqs. */ @@ -135281,8 +141621,8 @@ static int whereLoopAddBtreeIndex( pNew = pBuilder->pNew; if( db->mallocFailed ) return SQLITE_NOMEM_BKPT; - WHERETRACE(0x800, ("BEGIN addBtreeIdx(%s), nEq=%d\n", - pProbe->zName, pNew->u.btree.nEq)); + WHERETRACE(0x800, ("BEGIN %s.addBtreeIdx(%s), nEq=%d\n", + pProbe->pTable->zName,pProbe->zName, pNew->u.btree.nEq)); assert( (pNew->wsFlags & WHERE_VIRTUALTABLE)==0 ); assert( (pNew->wsFlags & WHERE_TOP_LIMIT)==0 ); @@ -135328,15 +141668,12 @@ static int whereLoopAddBtreeIndex( ** to mix with a lower range bound from some other source */ if( pTerm->wtFlags & TERM_LIKEOPT && pTerm->eOperator==WO_LT ) continue; - /* Do not allow IS constraints from the WHERE clause to be used by the + /* Do not allow constraints from the WHERE clause to be used by the ** right table of a LEFT JOIN. Only constraints in the ON clause are ** allowed */ if( (pSrc->fg.jointype & JT_LEFT)!=0 && !ExprHasProperty(pTerm->pExpr, EP_FromJoin) - && (eOp & (WO_IS|WO_ISNULL))!=0 ){ - testcase( eOp & WO_IS ); - testcase( eOp & WO_ISNULL ); continue; } @@ -135362,7 +141699,6 @@ static int whereLoopAddBtreeIndex( if( eOp & WO_IN ){ Expr *pExpr = pTerm->pExpr; - pNew->wsFlags |= WHERE_COLUMN_IN; if( ExprHasProperty(pExpr, EP_xIsSelect) ){ /* "x IN (SELECT ...)": TUNING: the SELECT returns 25 rows */ int i; @@ -135382,6 +141718,42 @@ static int whereLoopAddBtreeIndex( assert( nIn>0 ); /* RHS always has 2 or more terms... The parser ** changes "x IN (?)" into "x=?". */ } + if( pProbe->hasStat1 ){ + LogEst M, logK, safetyMargin; + /* Let: + ** N = the total number of rows in the table + ** K = the number of entries on the RHS of the IN operator + ** M = the number of rows in the table that match terms to the + ** to the left in the same index. If the IN operator is on + ** the left-most index column, M==N. + ** + ** Given the definitions above, it is better to omit the IN operator + ** from the index lookup and instead do a scan of the M elements, + ** testing each scanned row against the IN operator separately, if: + ** + ** M*log(K) < K*log(N) + ** + ** Our estimates for M, K, and N might be inaccurate, so we build in + ** a safety margin of 2 (LogEst: 10) that favors using the IN operator + ** with the index, as using an index has better worst-case behavior. + ** If we do not have real sqlite_stat1 data, always prefer to use + ** the index. + */ + M = pProbe->aiRowLogEst[saved_nEq]; + logK = estLog(nIn); + safetyMargin = 10; /* TUNING: extra weight for indexed IN */ + if( M + logK + safetyMargin < nIn + rLogSize ){ + WHERETRACE(0x40, + ("Scan preferred over IN operator on column %d of \"%s\" (%d<%d)\n", + saved_nEq, pProbe->zName, M+logK+10, nIn+rLogSize)); + continue; + }else{ + WHERETRACE(0x40, + ("IN operator preferred on column %d of \"%s\" (%d>=%d)\n", + saved_nEq, pProbe->zName, M+logK+10, nIn+rLogSize)); + } + } + pNew->wsFlags |= WHERE_COLUMN_IN; }else if( eOp & (WO_EQ|WO_IS) ){ int iCol = pProbe->aiColumn[saved_nEq]; pNew->wsFlags |= WHERE_COLUMN_EQ; @@ -135389,10 +141761,12 @@ static int whereLoopAddBtreeIndex( if( iCol==XN_ROWID || (iCol>=0 && nInMul==0 && saved_nEq==pProbe->nKeyCol-1) ){ - if( iCol>=0 && pProbe->uniqNotNull==0 ){ - pNew->wsFlags |= WHERE_UNQ_WANTED; - }else{ + if( iCol==XN_ROWID || pProbe->uniqNotNull + || (pProbe->nKeyCol==1 && pProbe->onError && eOp==WO_EQ) + ){ pNew->wsFlags |= WHERE_ONEROW; + }else{ + pNew->wsFlags |= WHERE_UNQ_WANTED; } } }else if( eOp & WO_ISNULL ){ @@ -135458,6 +141832,7 @@ static int whereLoopAddBtreeIndex( && pProbe->nSample && pNew->u.btree.nEq<=pProbe->nSampleCol && ((eOp & WO_IN)==0 || !ExprHasProperty(pTerm->pExpr, EP_xIsSelect)) + && OptimizationEnabled(db, SQLITE_Stat34) ){ Expr *pExpr = pTerm->pExpr; if( (eOp & (WO_EQ|WO_ISNULL|WO_IS))!=0 ){ @@ -135546,6 +141921,7 @@ static int whereLoopAddBtreeIndex( if( saved_nEq==saved_nSkip && saved_nEq+1nKeyCol && pProbe->noSkipScan==0 + && OptimizationEnabled(db, SQLITE_SkipScan) && pProbe->aiRowLogEst[saved_nEq+1]>=42 /* TUNING: Minimum for skip-scan */ && (rc = whereLoopResize(db, pNew, pNew->nLTerm+1))==SQLITE_OK ){ @@ -135566,8 +141942,8 @@ static int whereLoopAddBtreeIndex( pNew->wsFlags = saved_wsFlags; } - WHERETRACE(0x800, ("END addBtreeIdx(%s), nEq=%d, rc=%d\n", - pProbe->zName, saved_nEq, rc)); + WHERETRACE(0x800, ("END %s.addBtreeIdx(%s), nEq=%d, rc=%d\n", + pProbe->pTable->zName, pProbe->zName, saved_nEq, rc)); return rc; } @@ -135609,24 +141985,6 @@ static int indexMightHelpWithOrderBy( return 0; } -/* -** Return a bitmask where 1s indicate that the corresponding column of -** the table is used by an index. Only the first 63 columns are considered. -*/ -static Bitmask columnsInIndex(Index *pIdx){ - Bitmask m = 0; - int j; - for(j=pIdx->nColumn-1; j>=0; j--){ - int x = pIdx->aiColumn[j]; - if( x>=0 ){ - testcase( x==BMS-1 ); - testcase( x==BMS-2 ); - if( xrSetup = rLogSize + rSize + 4; + pNew->rSetup = rLogSize + rSize; if( pTab->pSelect==0 && (pTab->tabFlags & TF_Ephemeral)==0 ){ - pNew->rSetup += 24; + pNew->rSetup += 28; + }else{ + pNew->rSetup -= 10; } ApplyCostMultiplier(pNew->rSetup, pTab->costMult); if( pNew->rSetup<0 ) pNew->rSetup = 0; @@ -135840,7 +142200,7 @@ static int whereLoopAddBtree( pNew->wsFlags = WHERE_IDX_ONLY | WHERE_INDEXED; m = 0; }else{ - m = pSrc->colUsed & ~columnsInIndex(pProbe); + m = pSrc->colUsed & pProbe->colNotIdxed; pNew->wsFlags = (m==0) ? (WHERE_IDX_ONLY|WHERE_INDEXED) : WHERE_INDEXED; } @@ -135987,7 +142347,17 @@ static int whereLoopAddVirtualOne( /* Invoke the virtual table xBestIndex() method */ rc = vtabBestIndex(pParse, pSrc->pTab, pIdxInfo); - if( rc ) return rc; + if( rc ){ + if( rc==SQLITE_CONSTRAINT ){ + /* If the xBestIndex method returns SQLITE_CONSTRAINT, that means + ** that the particular combination of parameters provided is unusable. + ** Make no entries in the loop table. + */ + WHERETRACE(0xffff, (" ^^^^--- non-viable plan rejected!\n")); + return SQLITE_OK; + } + return rc; + } mxTerm = -1; assert( pNew->nLSlot>=nConstraint ); @@ -136005,9 +142375,9 @@ static int whereLoopAddVirtualOne( || pNew->aLTerm[iTerm]!=0 || pIdxCons->usable==0 ){ - rc = SQLITE_ERROR; sqlite3ErrorMsg(pParse,"%s.xBestIndex malfunction",pSrc->pTab->zName); - return rc; + testcase( pIdxInfo->needToFreeIdxStr ); + return SQLITE_ERROR; } testcase( iTerm==nConstraint-1 ); testcase( j==0 ); @@ -136035,6 +142405,15 @@ static int whereLoopAddVirtualOne( pNew->u.vtab.omitMask &= ~mNoOmit; pNew->nLTerm = mxTerm+1; + for(i=0; i<=mxTerm; i++){ + if( pNew->aLTerm[i]==0 ){ + /* The non-zero argvIdx values must be contiguous. Raise an + ** error if they are not */ + sqlite3ErrorMsg(pParse,"%s.xBestIndex malfunction",pSrc->pTab->zName); + testcase( pIdxInfo->needToFreeIdxStr ); + return SQLITE_ERROR; + } + } assert( pNew->nLTerm<=pNew->nLSlot ); pNew->u.vtab.idxNum = pIdxInfo->idxNum; pNew->u.vtab.needFree = pIdxInfo->needToFreeIdxStr; @@ -136082,7 +142461,7 @@ SQLITE_API const char *sqlite3_vtab_collation(sqlite3_index_info *pIdxInfo, int if( pX->pLeft ){ pC = sqlite3BinaryCompareCollSeq(pHidden->pParse, pX->pLeft, pX->pRight); } - zRet = (pC ? pC->zName : "BINARY"); + zRet = (pC ? pC->zName : sqlite3StrBINARY); } return zRet; } @@ -136150,6 +142529,7 @@ static int whereLoopAddVirtual( } /* First call xBestIndex() with all constraints usable. */ + WHERETRACE(0x800, ("BEGIN %s.addVirtual()\n", pSrc->pTab->zName)); WHERETRACE(0x40, (" VirtualOne: all usable\n")); rc = whereLoopAddVirtualOne(pBuilder, mPrereq, ALLBITS, 0, p, mNoOmit, &bIn); @@ -136225,6 +142605,7 @@ static int whereLoopAddVirtual( if( p->needToFreeIdxStr ) sqlite3_free(p->idxStr); sqlite3DbFreeNN(pParse->db, p); + WHERETRACE(0x800, ("END %s.addVirtual(), rc=%d\n", pSrc->pTab->zName, rc)); return rc; } #endif /* SQLITE_OMIT_VIRTUALTABLE */ @@ -136372,9 +142753,11 @@ static int whereLoopAddAll(WhereLoopBuilder *pBuilder){ /* Loop over the tables in the join, from left to right */ pNew = pBuilder->pNew; whereLoopInit(pNew); + pBuilder->iPlanLimit = SQLITE_QUERY_PLANNER_LIMIT; for(iTab=0, pItem=pTabList->a; pItemiTab = iTab; + pBuilder->iPlanLimit += SQLITE_QUERY_PLANNER_LIMIT_INCR; pNew->maskSelf = sqlite3WhereGetMask(&pWInfo->sMaskSet, pItem->iCursor); if( ((pItem->fg.jointype|priorJointype) & (JT_LEFT|JT_CROSS))!=0 ){ /* This condition is true when pItem is the FROM clause term on the @@ -136396,11 +142779,19 @@ static int whereLoopAddAll(WhereLoopBuilder *pBuilder){ { rc = whereLoopAddBtree(pBuilder, mPrereq); } - if( rc==SQLITE_OK ){ + if( rc==SQLITE_OK && pBuilder->pWC->hasOr ){ rc = whereLoopAddOr(pBuilder, mPrereq, mUnusable); } mPrior |= pNew->maskSelf; - if( rc || db->mallocFailed ) break; + if( rc || db->mallocFailed ){ + if( rc==SQLITE_DONE ){ + /* We hit the query planner search limit set by iPlanLimit */ + sqlite3_log(SQLITE_WARNING, "abbreviated query algorithm search"); + rc = SQLITE_OK; + }else{ + break; + } + } } whereLoopClear(db, pNew); @@ -136903,12 +143294,15 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ if( (pWLoop->prereq & ~pFrom->maskLoop)!=0 ) continue; if( (pWLoop->maskSelf & pFrom->maskLoop)!=0 ) continue; - if( (pWLoop->wsFlags & WHERE_AUTO_INDEX)!=0 && pFrom->nRow<10 ){ + if( (pWLoop->wsFlags & WHERE_AUTO_INDEX)!=0 && pFrom->nRow<3 ){ /* Do not use an automatic index if the this loop is expected - ** to run less than 2 times. */ + ** to run less than 1.25 times. It is tempting to also exclude + ** automatic index usage on an outer loop, but sometimes an automatic + ** index is useful in the outer loop of a correlated subquery. */ assert( 10==sqlite3LogEst(2) ); continue; } + /* At this point, pWLoop is a candidate to be the next loop. ** Compute its cost */ rUnsorted = sqlite3LogEstAdd(pWLoop->rSetup,pWLoop->rRun + pFrom->nRow); @@ -136928,7 +143322,11 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ pWInfo, nRowEst, nOrderBy, isOrdered ); } - rCost = sqlite3LogEstAdd(rUnsorted, aSortCost[isOrdered]); + /* TUNING: Add a small extra penalty (5) to sorting as an + ** extra encouragment to the query planner to select a plan + ** where the rows emerge in the correct order without any sorting + ** required. */ + rCost = sqlite3LogEstAdd(rUnsorted, aSortCost[isOrdered]) + 5; WHERETRACE(0x002, ("---- sort cost=%-3d (%d/%d) increases cost %3d to %-3d\n", @@ -137118,6 +143516,7 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ pWInfo->eDistinct = WHERE_DISTINCT_ORDERED; } } + pWInfo->bOrderedInnerLoop = 0; if( pWInfo->pOrderBy ){ if( pWInfo->wctrlFlags & WHERE_DISTINCTBY ){ if( pFrom->isOrdered==pWInfo->pOrderBy->nExpr ){ @@ -137229,7 +143628,7 @@ static int whereShortCut(WhereLoopBuilder *pBuilder){ } if( j!=pIdx->nKeyCol ) continue; pLoop->wsFlags = WHERE_COLUMN_EQ|WHERE_ONEROW|WHERE_INDEXED; - if( pIdx->isCovering || (pItem->colUsed & ~columnsInIndex(pIdx))==0 ){ + if( pIdx->isCovering || (pItem->colUsed & pIdx->colNotIdxed)==0 ){ pLoop->wsFlags |= WHERE_IDX_ONLY; } pLoop->nLTerm = j; @@ -137490,6 +143889,7 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( if( wctrlFlags & WHERE_WANT_DISTINCT ){ pWInfo->eDistinct = WHERE_DISTINCT_UNIQUE; } + ExplainQueryPlan((pParse, 0, "SCAN CONSTANT ROW")); }else{ /* Assign a bit from the bitmask to every term in the FROM clause. ** @@ -137539,6 +143939,7 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( */ for(ii=0; iinTerm; ii++){ WhereTerm *pT = &sWLB.pWC->a[ii]; + if( pT->wtFlags & TERM_VIRTUAL ) continue; if( pT->prereqAll==0 && (nTabList==0 || exprIsDeterministic(pT->pExpr)) ){ sqlite3ExprIfFalse(pParse, pT->pExpr, pWInfo->iBreak, SQLITE_JUMPIFNULL); pT->wtFlags |= TERM_CODED; @@ -137884,7 +144285,7 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( } #endif addrExplain = sqlite3WhereExplainOneScan( - pParse, pTabList, pLevel, ii, pLevel->iFrom, wctrlFlags + pParse, pTabList, pLevel, wctrlFlags ); pLevel->addrBody = sqlite3VdbeCurrentAddr(v); notReady = sqlite3WhereCodeOneLoopStart(pWInfo, ii, notReady); @@ -137907,6 +144308,26 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( return 0; } +/* +** Part of sqlite3WhereEnd() will rewrite opcodes to reference the +** index rather than the main table. In SQLITE_DEBUG mode, we want +** to trace those changes if PRAGMA vdbe_addoptrace=on. This routine +** does that. +*/ +#ifndef SQLITE_DEBUG +# define OpcodeRewriteTrace(D,K,P) /* no-op */ +#else +# define OpcodeRewriteTrace(D,K,P) sqlite3WhereOpcodeRewriteTrace(D,K,P) + static void sqlite3WhereOpcodeRewriteTrace( + sqlite3 *db, + int pc, + VdbeOp *pOp + ){ + if( (db->flags & SQLITE_VdbeAddopTrace)==0 ) return; + sqlite3VdbePrintOp(0, pc, pOp); + } +#endif + /* ** Generate the end of the WHERE loop. See comments on ** sqlite3WhereBegin() for additional information. @@ -137923,7 +144344,6 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ /* Generate loop termination code. */ VdbeModuleComment((v, "End WHERE-core")); - sqlite3ExprCacheClear(pParse); for(i=pWInfo->nLevel-1; i>=0; i--){ int addr; pLevel = &pWInfo->a[i]; @@ -137974,10 +144394,17 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ for(j=pLevel->u.in.nIn, pIn=&pLevel->u.in.aInLoop[j-1]; j>0; j--, pIn--){ sqlite3VdbeJumpHere(v, pIn->addrInTop+1); if( pIn->eEndLoopOp!=OP_Noop ){ + if( pIn->nPrefix ){ + assert( pLoop->wsFlags & WHERE_IN_EARLYOUT ); + sqlite3VdbeAddOp4Int(v, OP_IfNoHope, pLevel->iIdxCur, + sqlite3VdbeCurrentAddr(v)+2, + pIn->iBase, pIn->nPrefix); + VdbeCoverage(v); + } sqlite3VdbeAddOp2(v, pIn->eEndLoopOp, pIn->iCur, pIn->addrInTop); VdbeCoverage(v); - VdbeCoverageIf(v, pIn->eEndLoopOp==OP_PrevIfOpen); - VdbeCoverageIf(v, pIn->eEndLoopOp==OP_NextIfOpen); + VdbeCoverageIf(v, pIn->eEndLoopOp==OP_Prev); + VdbeCoverageIf(v, pIn->eEndLoopOp==OP_Next); } sqlite3VdbeJumpHere(v, pIn->addrInTop-1); } @@ -138068,6 +144495,11 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ ){ last = sqlite3VdbeCurrentAddr(v); k = pLevel->addrBody; +#ifdef SQLITE_DEBUG + if( db->flags & SQLITE_VdbeAddopTrace ){ + printf("TRANSLATE opcodes in range %d..%d\n", k, last-1); + } +#endif pOp = sqlite3VdbeGetOp(v, k); for(; kp1!=pLevel->iTabCur ) continue; @@ -138087,16 +144519,22 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ if( x>=0 ){ pOp->p2 = x; pOp->p1 = pLevel->iIdxCur; + OpcodeRewriteTrace(db, k, pOp); } assert( (pLoop->wsFlags & WHERE_IDX_ONLY)==0 || x>=0 || pWInfo->eOnePass ); }else if( pOp->opcode==OP_Rowid ){ pOp->p1 = pLevel->iIdxCur; pOp->opcode = OP_IdxRowid; + OpcodeRewriteTrace(db, k, pOp); }else if( pOp->opcode==OP_IfNullRow ){ pOp->p1 = pLevel->iIdxCur; + OpcodeRewriteTrace(db, k, pOp); } } +#ifdef SQLITE_DEBUG + if( db->flags & SQLITE_VdbeAddopTrace ) printf("TRANSLATE complete\n"); +#endif } } @@ -138108,6 +144546,2263 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ } /************** End of where.c ***********************************************/ +/************** Begin file window.c ******************************************/ +/* +** 2018 May 08 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +*/ +/* #include "sqliteInt.h" */ + +#ifndef SQLITE_OMIT_WINDOWFUNC + +/* +** SELECT REWRITING +** +** Any SELECT statement that contains one or more window functions in +** either the select list or ORDER BY clause (the only two places window +** functions may be used) is transformed by function sqlite3WindowRewrite() +** in order to support window function processing. For example, with the +** schema: +** +** CREATE TABLE t1(a, b, c, d, e, f, g); +** +** the statement: +** +** SELECT a+1, max(b) OVER (PARTITION BY c ORDER BY d) FROM t1 ORDER BY e; +** +** is transformed to: +** +** SELECT a+1, max(b) OVER (PARTITION BY c ORDER BY d) FROM ( +** SELECT a, e, c, d, b FROM t1 ORDER BY c, d +** ) ORDER BY e; +** +** The flattening optimization is disabled when processing this transformed +** SELECT statement. This allows the implementation of the window function +** (in this case max()) to process rows sorted in order of (c, d), which +** makes things easier for obvious reasons. More generally: +** +** * FROM, WHERE, GROUP BY and HAVING clauses are all moved to +** the sub-query. +** +** * ORDER BY, LIMIT and OFFSET remain part of the parent query. +** +** * Terminals from each of the expression trees that make up the +** select-list and ORDER BY expressions in the parent query are +** selected by the sub-query. For the purposes of the transformation, +** terminals are column references and aggregate functions. +** +** If there is more than one window function in the SELECT that uses +** the same window declaration (the OVER bit), then a single scan may +** be used to process more than one window function. For example: +** +** SELECT max(b) OVER (PARTITION BY c ORDER BY d), +** min(e) OVER (PARTITION BY c ORDER BY d) +** FROM t1; +** +** is transformed in the same way as the example above. However: +** +** SELECT max(b) OVER (PARTITION BY c ORDER BY d), +** min(e) OVER (PARTITION BY a ORDER BY b) +** FROM t1; +** +** Must be transformed to: +** +** SELECT max(b) OVER (PARTITION BY c ORDER BY d) FROM ( +** SELECT e, min(e) OVER (PARTITION BY a ORDER BY b), c, d, b FROM +** SELECT a, e, c, d, b FROM t1 ORDER BY a, b +** ) ORDER BY c, d +** ) ORDER BY e; +** +** so that both min() and max() may process rows in the order defined by +** their respective window declarations. +** +** INTERFACE WITH SELECT.C +** +** When processing the rewritten SELECT statement, code in select.c calls +** sqlite3WhereBegin() to begin iterating through the results of the +** sub-query, which is always implemented as a co-routine. It then calls +** sqlite3WindowCodeStep() to process rows and finish the scan by calling +** sqlite3WhereEnd(). +** +** sqlite3WindowCodeStep() generates VM code so that, for each row returned +** by the sub-query a sub-routine (OP_Gosub) coded by select.c is invoked. +** When the sub-routine is invoked: +** +** * The results of all window-functions for the row are stored +** in the associated Window.regResult registers. +** +** * The required terminal values are stored in the current row of +** temp table Window.iEphCsr. +** +** In some cases, depending on the window frame and the specific window +** functions invoked, sqlite3WindowCodeStep() caches each entire partition +** in a temp table before returning any rows. In other cases it does not. +** This detail is encapsulated within this file, the code generated by +** select.c is the same in either case. +** +** BUILT-IN WINDOW FUNCTIONS +** +** This implementation features the following built-in window functions: +** +** row_number() +** rank() +** dense_rank() +** percent_rank() +** cume_dist() +** ntile(N) +** lead(expr [, offset [, default]]) +** lag(expr [, offset [, default]]) +** first_value(expr) +** last_value(expr) +** nth_value(expr, N) +** +** These are the same built-in window functions supported by Postgres. +** Although the behaviour of aggregate window functions (functions that +** can be used as either aggregates or window funtions) allows them to +** be implemented using an API, built-in window functions are much more +** esoteric. Additionally, some window functions (e.g. nth_value()) +** may only be implemented by caching the entire partition in memory. +** As such, some built-in window functions use the same API as aggregate +** window functions and some are implemented directly using VDBE +** instructions. Additionally, for those functions that use the API, the +** window frame is sometimes modified before the SELECT statement is +** rewritten. For example, regardless of the specified window frame, the +** row_number() function always uses: +** +** ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW +** +** See sqlite3WindowUpdate() for details. +** +** As well as some of the built-in window functions, aggregate window +** functions min() and max() are implemented using VDBE instructions if +** the start of the window frame is declared as anything other than +** UNBOUNDED PRECEDING. +*/ + +/* +** Implementation of built-in window function row_number(). Assumes that the +** window frame has been coerced to: +** +** ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW +*/ +static void row_numberStepFunc( + sqlite3_context *pCtx, + int nArg, + sqlite3_value **apArg +){ + i64 *p = (i64*)sqlite3_aggregate_context(pCtx, sizeof(*p)); + if( p ) (*p)++; + UNUSED_PARAMETER(nArg); + UNUSED_PARAMETER(apArg); +} +static void row_numberValueFunc(sqlite3_context *pCtx){ + i64 *p = (i64*)sqlite3_aggregate_context(pCtx, sizeof(*p)); + sqlite3_result_int64(pCtx, (p ? *p : 0)); +} + +/* +** Context object type used by rank(), dense_rank(), percent_rank() and +** cume_dist(). +*/ +struct CallCount { + i64 nValue; + i64 nStep; + i64 nTotal; +}; + +/* +** Implementation of built-in window function dense_rank(). Assumes that +** the window frame has been set to: +** +** RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW +*/ +static void dense_rankStepFunc( + sqlite3_context *pCtx, + int nArg, + sqlite3_value **apArg +){ + struct CallCount *p; + p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p)); + if( p ) p->nStep = 1; + UNUSED_PARAMETER(nArg); + UNUSED_PARAMETER(apArg); +} +static void dense_rankValueFunc(sqlite3_context *pCtx){ + struct CallCount *p; + p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p)); + if( p ){ + if( p->nStep ){ + p->nValue++; + p->nStep = 0; + } + sqlite3_result_int64(pCtx, p->nValue); + } +} + +/* +** Implementation of built-in window function rank(). Assumes that +** the window frame has been set to: +** +** RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW +*/ +static void rankStepFunc( + sqlite3_context *pCtx, + int nArg, + sqlite3_value **apArg +){ + struct CallCount *p; + p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p)); + if( p ){ + p->nStep++; + if( p->nValue==0 ){ + p->nValue = p->nStep; + } + } + UNUSED_PARAMETER(nArg); + UNUSED_PARAMETER(apArg); +} +static void rankValueFunc(sqlite3_context *pCtx){ + struct CallCount *p; + p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p)); + if( p ){ + sqlite3_result_int64(pCtx, p->nValue); + p->nValue = 0; + } +} + +/* +** Implementation of built-in window function percent_rank(). Assumes that +** the window frame has been set to: +** +** RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW +*/ +static void percent_rankStepFunc( + sqlite3_context *pCtx, + int nArg, + sqlite3_value **apArg +){ + struct CallCount *p; + UNUSED_PARAMETER(nArg); assert( nArg==1 ); + + p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p)); + if( p ){ + if( p->nTotal==0 ){ + p->nTotal = sqlite3_value_int64(apArg[0]); + } + p->nStep++; + if( p->nValue==0 ){ + p->nValue = p->nStep; + } + } +} +static void percent_rankValueFunc(sqlite3_context *pCtx){ + struct CallCount *p; + p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p)); + if( p ){ + if( p->nTotal>1 ){ + double r = (double)(p->nValue-1) / (double)(p->nTotal-1); + sqlite3_result_double(pCtx, r); + }else{ + sqlite3_result_double(pCtx, 0.0); + } + p->nValue = 0; + } +} + +/* +** Implementation of built-in window function cume_dist(). Assumes that +** the window frame has been set to: +** +** RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW +*/ +static void cume_distStepFunc( + sqlite3_context *pCtx, + int nArg, + sqlite3_value **apArg +){ + struct CallCount *p; + assert( nArg==1 ); UNUSED_PARAMETER(nArg); + + p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p)); + if( p ){ + if( p->nTotal==0 ){ + p->nTotal = sqlite3_value_int64(apArg[0]); + } + p->nStep++; + } +} +static void cume_distValueFunc(sqlite3_context *pCtx){ + struct CallCount *p; + p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p)); + if( p && p->nTotal ){ + double r = (double)(p->nStep) / (double)(p->nTotal); + sqlite3_result_double(pCtx, r); + } +} + +/* +** Context object for ntile() window function. +*/ +struct NtileCtx { + i64 nTotal; /* Total rows in partition */ + i64 nParam; /* Parameter passed to ntile(N) */ + i64 iRow; /* Current row */ +}; + +/* +** Implementation of ntile(). This assumes that the window frame has +** been coerced to: +** +** ROWS UNBOUNDED PRECEDING AND CURRENT ROW +*/ +static void ntileStepFunc( + sqlite3_context *pCtx, + int nArg, + sqlite3_value **apArg +){ + struct NtileCtx *p; + assert( nArg==2 ); UNUSED_PARAMETER(nArg); + p = (struct NtileCtx*)sqlite3_aggregate_context(pCtx, sizeof(*p)); + if( p ){ + if( p->nTotal==0 ){ + p->nParam = sqlite3_value_int64(apArg[0]); + p->nTotal = sqlite3_value_int64(apArg[1]); + if( p->nParam<=0 ){ + sqlite3_result_error( + pCtx, "argument of ntile must be a positive integer", -1 + ); + } + } + p->iRow++; + } +} +static void ntileValueFunc(sqlite3_context *pCtx){ + struct NtileCtx *p; + p = (struct NtileCtx*)sqlite3_aggregate_context(pCtx, sizeof(*p)); + if( p && p->nParam>0 ){ + int nSize = (p->nTotal / p->nParam); + if( nSize==0 ){ + sqlite3_result_int64(pCtx, p->iRow); + }else{ + i64 nLarge = p->nTotal - p->nParam*nSize; + i64 iSmall = nLarge*(nSize+1); + i64 iRow = p->iRow-1; + + assert( (nLarge*(nSize+1) + (p->nParam-nLarge)*nSize)==p->nTotal ); + + if( iRowpVal); + p->pVal = sqlite3_value_dup(apArg[0]); + if( p->pVal==0 ){ + sqlite3_result_error_nomem(pCtx); + }else{ + p->nVal++; + } + } +} +static void last_valueInvFunc( + sqlite3_context *pCtx, + int nArg, + sqlite3_value **apArg +){ + struct LastValueCtx *p; + UNUSED_PARAMETER(nArg); + UNUSED_PARAMETER(apArg); + p = (struct LastValueCtx*)sqlite3_aggregate_context(pCtx, sizeof(*p)); + if( ALWAYS(p) ){ + p->nVal--; + if( p->nVal==0 ){ + sqlite3_value_free(p->pVal); + p->pVal = 0; + } + } +} +static void last_valueValueFunc(sqlite3_context *pCtx){ + struct LastValueCtx *p; + p = (struct LastValueCtx*)sqlite3_aggregate_context(pCtx, sizeof(*p)); + if( p && p->pVal ){ + sqlite3_result_value(pCtx, p->pVal); + } +} +static void last_valueFinalizeFunc(sqlite3_context *pCtx){ + struct LastValueCtx *p; + p = (struct LastValueCtx*)sqlite3_aggregate_context(pCtx, sizeof(*p)); + if( p && p->pVal ){ + sqlite3_result_value(pCtx, p->pVal); + sqlite3_value_free(p->pVal); + p->pVal = 0; + } +} + +/* +** Static names for the built-in window function names. These static +** names are used, rather than string literals, so that FuncDef objects +** can be associated with a particular window function by direct +** comparison of the zName pointer. Example: +** +** if( pFuncDef->zName==row_valueName ){ ... } +*/ +static const char row_numberName[] = "row_number"; +static const char dense_rankName[] = "dense_rank"; +static const char rankName[] = "rank"; +static const char percent_rankName[] = "percent_rank"; +static const char cume_distName[] = "cume_dist"; +static const char ntileName[] = "ntile"; +static const char last_valueName[] = "last_value"; +static const char nth_valueName[] = "nth_value"; +static const char first_valueName[] = "first_value"; +static const char leadName[] = "lead"; +static const char lagName[] = "lag"; + +/* +** No-op implementations of xStep() and xFinalize(). Used as place-holders +** for built-in window functions that never call those interfaces. +** +** The noopValueFunc() is called but is expected to do nothing. The +** noopStepFunc() is never called, and so it is marked with NO_TEST to +** let the test coverage routine know not to expect this function to be +** invoked. +*/ +static void noopStepFunc( /*NO_TEST*/ + sqlite3_context *p, /*NO_TEST*/ + int n, /*NO_TEST*/ + sqlite3_value **a /*NO_TEST*/ +){ /*NO_TEST*/ + UNUSED_PARAMETER(p); /*NO_TEST*/ + UNUSED_PARAMETER(n); /*NO_TEST*/ + UNUSED_PARAMETER(a); /*NO_TEST*/ + assert(0); /*NO_TEST*/ +} /*NO_TEST*/ +static void noopValueFunc(sqlite3_context *p){ UNUSED_PARAMETER(p); /*no-op*/ } + +/* Window functions that use all window interfaces: xStep, xFinal, +** xValue, and xInverse */ +#define WINDOWFUNCALL(name,nArg,extra) { \ + nArg, (SQLITE_UTF8|SQLITE_FUNC_WINDOW|extra), 0, 0, \ + name ## StepFunc, name ## FinalizeFunc, name ## ValueFunc, \ + name ## InvFunc, name ## Name, {0} \ +} + +/* Window functions that are implemented using bytecode and thus have +** no-op routines for their methods */ +#define WINDOWFUNCNOOP(name,nArg,extra) { \ + nArg, (SQLITE_UTF8|SQLITE_FUNC_WINDOW|extra), 0, 0, \ + noopStepFunc, noopValueFunc, noopValueFunc, \ + noopStepFunc, name ## Name, {0} \ +} + +/* Window functions that use all window interfaces: xStep, the +** same routine for xFinalize and xValue and which never call +** xInverse. */ +#define WINDOWFUNCX(name,nArg,extra) { \ + nArg, (SQLITE_UTF8|SQLITE_FUNC_WINDOW|extra), 0, 0, \ + name ## StepFunc, name ## ValueFunc, name ## ValueFunc, \ + noopStepFunc, name ## Name, {0} \ +} + + +/* +** Register those built-in window functions that are not also aggregates. +*/ +SQLITE_PRIVATE void sqlite3WindowFunctions(void){ + static FuncDef aWindowFuncs[] = { + WINDOWFUNCX(row_number, 0, 0), + WINDOWFUNCX(dense_rank, 0, 0), + WINDOWFUNCX(rank, 0, 0), + WINDOWFUNCX(percent_rank, 0, SQLITE_FUNC_WINDOW_SIZE), + WINDOWFUNCX(cume_dist, 0, SQLITE_FUNC_WINDOW_SIZE), + WINDOWFUNCX(ntile, 1, SQLITE_FUNC_WINDOW_SIZE), + WINDOWFUNCALL(last_value, 1, 0), + WINDOWFUNCNOOP(nth_value, 2, 0), + WINDOWFUNCNOOP(first_value, 1, 0), + WINDOWFUNCNOOP(lead, 1, 0), + WINDOWFUNCNOOP(lead, 2, 0), + WINDOWFUNCNOOP(lead, 3, 0), + WINDOWFUNCNOOP(lag, 1, 0), + WINDOWFUNCNOOP(lag, 2, 0), + WINDOWFUNCNOOP(lag, 3, 0), + }; + sqlite3InsertBuiltinFuncs(aWindowFuncs, ArraySize(aWindowFuncs)); +} + +/* +** This function is called immediately after resolving the function name +** for a window function within a SELECT statement. Argument pList is a +** linked list of WINDOW definitions for the current SELECT statement. +** Argument pFunc is the function definition just resolved and pWin +** is the Window object representing the associated OVER clause. This +** function updates the contents of pWin as follows: +** +** * If the OVER clause refered to a named window (as in "max(x) OVER win"), +** search list pList for a matching WINDOW definition, and update pWin +** accordingly. If no such WINDOW clause can be found, leave an error +** in pParse. +** +** * If the function is a built-in window function that requires the +** window to be coerced (see "BUILT-IN WINDOW FUNCTIONS" at the top +** of this file), pWin is updated here. +*/ +SQLITE_PRIVATE void sqlite3WindowUpdate( + Parse *pParse, + Window *pList, /* List of named windows for this SELECT */ + Window *pWin, /* Window frame to update */ + FuncDef *pFunc /* Window function definition */ +){ + if( pWin->zName && pWin->eType==0 ){ + Window *p; + for(p=pList; p; p=p->pNextWin){ + if( sqlite3StrICmp(p->zName, pWin->zName)==0 ) break; + } + if( p==0 ){ + sqlite3ErrorMsg(pParse, "no such window: %s", pWin->zName); + return; + } + pWin->pPartition = sqlite3ExprListDup(pParse->db, p->pPartition, 0); + pWin->pOrderBy = sqlite3ExprListDup(pParse->db, p->pOrderBy, 0); + pWin->pStart = sqlite3ExprDup(pParse->db, p->pStart, 0); + pWin->pEnd = sqlite3ExprDup(pParse->db, p->pEnd, 0); + pWin->eStart = p->eStart; + pWin->eEnd = p->eEnd; + pWin->eType = p->eType; + } + if( pFunc->funcFlags & SQLITE_FUNC_WINDOW ){ + sqlite3 *db = pParse->db; + if( pWin->pFilter ){ + sqlite3ErrorMsg(pParse, + "FILTER clause may only be used with aggregate window functions" + ); + }else + if( pFunc->zName==row_numberName || pFunc->zName==ntileName ){ + sqlite3ExprDelete(db, pWin->pStart); + sqlite3ExprDelete(db, pWin->pEnd); + pWin->pStart = pWin->pEnd = 0; + pWin->eType = TK_ROWS; + pWin->eStart = TK_UNBOUNDED; + pWin->eEnd = TK_CURRENT; + }else + + if( pFunc->zName==dense_rankName || pFunc->zName==rankName + || pFunc->zName==percent_rankName || pFunc->zName==cume_distName + ){ + sqlite3ExprDelete(db, pWin->pStart); + sqlite3ExprDelete(db, pWin->pEnd); + pWin->pStart = pWin->pEnd = 0; + pWin->eType = TK_RANGE; + pWin->eStart = TK_UNBOUNDED; + pWin->eEnd = TK_CURRENT; + } + } + pWin->pFunc = pFunc; +} + +/* +** Context object passed through sqlite3WalkExprList() to +** selectWindowRewriteExprCb() by selectWindowRewriteEList(). +*/ +typedef struct WindowRewrite WindowRewrite; +struct WindowRewrite { + Window *pWin; + SrcList *pSrc; + ExprList *pSub; + Select *pSubSelect; /* Current sub-select, if any */ +}; + +/* +** Callback function used by selectWindowRewriteEList(). If necessary, +** this function appends to the output expression-list and updates +** expression (*ppExpr) in place. +*/ +static int selectWindowRewriteExprCb(Walker *pWalker, Expr *pExpr){ + struct WindowRewrite *p = pWalker->u.pRewrite; + Parse *pParse = pWalker->pParse; + + /* If this function is being called from within a scalar sub-select + ** that used by the SELECT statement being processed, only process + ** TK_COLUMN expressions that refer to it (the outer SELECT). Do + ** not process aggregates or window functions at all, as they belong + ** to the scalar sub-select. */ + if( p->pSubSelect ){ + if( pExpr->op!=TK_COLUMN ){ + return WRC_Continue; + }else{ + int nSrc = p->pSrc->nSrc; + int i; + for(i=0; iiTable==p->pSrc->a[i].iCursor ) break; + } + if( i==nSrc ) return WRC_Continue; + } + } + + switch( pExpr->op ){ + + case TK_FUNCTION: + if( !ExprHasProperty(pExpr, EP_WinFunc) ){ + break; + }else{ + Window *pWin; + for(pWin=p->pWin; pWin; pWin=pWin->pNextWin){ + if( pExpr->y.pWin==pWin ){ + assert( pWin->pOwner==pExpr ); + return WRC_Prune; + } + } + } + /* Fall through. */ + + case TK_AGG_FUNCTION: + case TK_COLUMN: { + Expr *pDup = sqlite3ExprDup(pParse->db, pExpr, 0); + p->pSub = sqlite3ExprListAppend(pParse, p->pSub, pDup); + if( p->pSub ){ + assert( ExprHasProperty(pExpr, EP_Static)==0 ); + ExprSetProperty(pExpr, EP_Static); + sqlite3ExprDelete(pParse->db, pExpr); + ExprClearProperty(pExpr, EP_Static); + memset(pExpr, 0, sizeof(Expr)); + + pExpr->op = TK_COLUMN; + pExpr->iColumn = p->pSub->nExpr-1; + pExpr->iTable = p->pWin->iEphCsr; + } + + break; + } + + default: /* no-op */ + break; + } + + return WRC_Continue; +} +static int selectWindowRewriteSelectCb(Walker *pWalker, Select *pSelect){ + struct WindowRewrite *p = pWalker->u.pRewrite; + Select *pSave = p->pSubSelect; + if( pSave==pSelect ){ + return WRC_Continue; + }else{ + p->pSubSelect = pSelect; + sqlite3WalkSelect(pWalker, pSelect); + p->pSubSelect = pSave; + } + return WRC_Prune; +} + + +/* +** Iterate through each expression in expression-list pEList. For each: +** +** * TK_COLUMN, +** * aggregate function, or +** * window function with a Window object that is not a member of the +** Window list passed as the second argument (pWin). +** +** Append the node to output expression-list (*ppSub). And replace it +** with a TK_COLUMN that reads the (N-1)th element of table +** pWin->iEphCsr, where N is the number of elements in (*ppSub) after +** appending the new one. +*/ +static void selectWindowRewriteEList( + Parse *pParse, + Window *pWin, + SrcList *pSrc, + ExprList *pEList, /* Rewrite expressions in this list */ + ExprList **ppSub /* IN/OUT: Sub-select expression-list */ +){ + Walker sWalker; + WindowRewrite sRewrite; + + memset(&sWalker, 0, sizeof(Walker)); + memset(&sRewrite, 0, sizeof(WindowRewrite)); + + sRewrite.pSub = *ppSub; + sRewrite.pWin = pWin; + sRewrite.pSrc = pSrc; + + sWalker.pParse = pParse; + sWalker.xExprCallback = selectWindowRewriteExprCb; + sWalker.xSelectCallback = selectWindowRewriteSelectCb; + sWalker.u.pRewrite = &sRewrite; + + (void)sqlite3WalkExprList(&sWalker, pEList); + + *ppSub = sRewrite.pSub; +} + +/* +** Append a copy of each expression in expression-list pAppend to +** expression list pList. Return a pointer to the result list. +*/ +static ExprList *exprListAppendList( + Parse *pParse, /* Parsing context */ + ExprList *pList, /* List to which to append. Might be NULL */ + ExprList *pAppend /* List of values to append. Might be NULL */ +){ + if( pAppend ){ + int i; + int nInit = pList ? pList->nExpr : 0; + for(i=0; inExpr; i++){ + Expr *pDup = sqlite3ExprDup(pParse->db, pAppend->a[i].pExpr, 0); + pList = sqlite3ExprListAppend(pParse, pList, pDup); + if( pList ) pList->a[nInit+i].sortOrder = pAppend->a[i].sortOrder; + } + } + return pList; +} + +/* +** If the SELECT statement passed as the second argument does not invoke +** any SQL window functions, this function is a no-op. Otherwise, it +** rewrites the SELECT statement so that window function xStep functions +** are invoked in the correct order as described under "SELECT REWRITING" +** at the top of this file. +*/ +SQLITE_PRIVATE int sqlite3WindowRewrite(Parse *pParse, Select *p){ + int rc = SQLITE_OK; + if( p->pWin && p->pPrior==0 ){ + Vdbe *v = sqlite3GetVdbe(pParse); + sqlite3 *db = pParse->db; + Select *pSub = 0; /* The subquery */ + SrcList *pSrc = p->pSrc; + Expr *pWhere = p->pWhere; + ExprList *pGroupBy = p->pGroupBy; + Expr *pHaving = p->pHaving; + ExprList *pSort = 0; + + ExprList *pSublist = 0; /* Expression list for sub-query */ + Window *pMWin = p->pWin; /* Master window object */ + Window *pWin; /* Window object iterator */ + + p->pSrc = 0; + p->pWhere = 0; + p->pGroupBy = 0; + p->pHaving = 0; + + /* Create the ORDER BY clause for the sub-select. This is the concatenation + ** of the window PARTITION and ORDER BY clauses. Then, if this makes it + ** redundant, remove the ORDER BY from the parent SELECT. */ + pSort = sqlite3ExprListDup(db, pMWin->pPartition, 0); + pSort = exprListAppendList(pParse, pSort, pMWin->pOrderBy); + if( pSort && p->pOrderBy ){ + if( sqlite3ExprListCompare(pSort, p->pOrderBy, -1)==0 ){ + sqlite3ExprListDelete(db, p->pOrderBy); + p->pOrderBy = 0; + } + } + + /* Assign a cursor number for the ephemeral table used to buffer rows. + ** The OpenEphemeral instruction is coded later, after it is known how + ** many columns the table will have. */ + pMWin->iEphCsr = pParse->nTab++; + + selectWindowRewriteEList(pParse, pMWin, pSrc, p->pEList, &pSublist); + selectWindowRewriteEList(pParse, pMWin, pSrc, p->pOrderBy, &pSublist); + pMWin->nBufferCol = (pSublist ? pSublist->nExpr : 0); + + /* Append the PARTITION BY and ORDER BY expressions to the to the + ** sub-select expression list. They are required to figure out where + ** boundaries for partitions and sets of peer rows lie. */ + pSublist = exprListAppendList(pParse, pSublist, pMWin->pPartition); + pSublist = exprListAppendList(pParse, pSublist, pMWin->pOrderBy); + + /* Append the arguments passed to each window function to the + ** sub-select expression list. Also allocate two registers for each + ** window function - one for the accumulator, another for interim + ** results. */ + for(pWin=pMWin; pWin; pWin=pWin->pNextWin){ + pWin->iArgCol = (pSublist ? pSublist->nExpr : 0); + pSublist = exprListAppendList(pParse, pSublist, pWin->pOwner->x.pList); + if( pWin->pFilter ){ + Expr *pFilter = sqlite3ExprDup(db, pWin->pFilter, 0); + pSublist = sqlite3ExprListAppend(pParse, pSublist, pFilter); + } + pWin->regAccum = ++pParse->nMem; + pWin->regResult = ++pParse->nMem; + sqlite3VdbeAddOp2(v, OP_Null, 0, pWin->regAccum); + } + + /* If there is no ORDER BY or PARTITION BY clause, and the window + ** function accepts zero arguments, and there are no other columns + ** selected (e.g. "SELECT row_number() OVER () FROM t1"), it is possible + ** that pSublist is still NULL here. Add a constant expression here to + ** keep everything legal in this case. + */ + if( pSublist==0 ){ + pSublist = sqlite3ExprListAppend(pParse, 0, + sqlite3ExprAlloc(db, TK_INTEGER, &sqlite3IntTokens[0], 0) + ); + } + + pSub = sqlite3SelectNew( + pParse, pSublist, pSrc, pWhere, pGroupBy, pHaving, pSort, 0, 0 + ); + p->pSrc = sqlite3SrcListAppend(db, 0, 0, 0); + assert( p->pSrc || db->mallocFailed ); + if( p->pSrc ){ + p->pSrc->a[0].pSelect = pSub; + sqlite3SrcListAssignCursors(pParse, p->pSrc); + if( sqlite3ExpandSubquery(pParse, &p->pSrc->a[0]) ){ + rc = SQLITE_NOMEM; + }else{ + pSub->selFlags |= SF_Expanded; + p->selFlags &= ~SF_Aggregate; + sqlite3SelectPrep(pParse, pSub, 0); + } + + sqlite3VdbeAddOp2(v, OP_OpenEphemeral, pMWin->iEphCsr, pSublist->nExpr); + }else{ + sqlite3SelectDelete(db, pSub); + } + if( db->mallocFailed ) rc = SQLITE_NOMEM; + } + + return rc; +} + +/* +** Free the Window object passed as the second argument. +*/ +SQLITE_PRIVATE void sqlite3WindowDelete(sqlite3 *db, Window *p){ + if( p ){ + sqlite3ExprDelete(db, p->pFilter); + sqlite3ExprListDelete(db, p->pPartition); + sqlite3ExprListDelete(db, p->pOrderBy); + sqlite3ExprDelete(db, p->pEnd); + sqlite3ExprDelete(db, p->pStart); + sqlite3DbFree(db, p->zName); + sqlite3DbFree(db, p); + } +} + +/* +** Free the linked list of Window objects starting at the second argument. +*/ +SQLITE_PRIVATE void sqlite3WindowListDelete(sqlite3 *db, Window *p){ + while( p ){ + Window *pNext = p->pNextWin; + sqlite3WindowDelete(db, p); + p = pNext; + } +} + +/* +** The argument expression is an PRECEDING or FOLLOWING offset. The +** value should be a non-negative integer. If the value is not a +** constant, change it to NULL. The fact that it is then a non-negative +** integer will be caught later. But it is important not to leave +** variable values in the expression tree. +*/ +static Expr *sqlite3WindowOffsetExpr(Parse *pParse, Expr *pExpr){ + if( 0==sqlite3ExprIsConstant(pExpr) ){ + sqlite3ExprDelete(pParse->db, pExpr); + pExpr = sqlite3ExprAlloc(pParse->db, TK_NULL, 0, 0); + } + return pExpr; +} + +/* +** Allocate and return a new Window object describing a Window Definition. +*/ +SQLITE_PRIVATE Window *sqlite3WindowAlloc( + Parse *pParse, /* Parsing context */ + int eType, /* Frame type. TK_RANGE or TK_ROWS */ + int eStart, /* Start type: CURRENT, PRECEDING, FOLLOWING, UNBOUNDED */ + Expr *pStart, /* Start window size if TK_PRECEDING or FOLLOWING */ + int eEnd, /* End type: CURRENT, FOLLOWING, TK_UNBOUNDED, PRECEDING */ + Expr *pEnd /* End window size if TK_FOLLOWING or PRECEDING */ +){ + Window *pWin = 0; + + /* Parser assures the following: */ + assert( eType==TK_RANGE || eType==TK_ROWS ); + assert( eStart==TK_CURRENT || eStart==TK_PRECEDING + || eStart==TK_UNBOUNDED || eStart==TK_FOLLOWING ); + assert( eEnd==TK_CURRENT || eEnd==TK_FOLLOWING + || eEnd==TK_UNBOUNDED || eEnd==TK_PRECEDING ); + assert( (eStart==TK_PRECEDING || eStart==TK_FOLLOWING)==(pStart!=0) ); + assert( (eEnd==TK_FOLLOWING || eEnd==TK_PRECEDING)==(pEnd!=0) ); + + + /* If a frame is declared "RANGE" (not "ROWS"), then it may not use + ** either " PRECEDING" or " FOLLOWING". + */ + if( eType==TK_RANGE && (pStart!=0 || pEnd!=0) ){ + sqlite3ErrorMsg(pParse, "RANGE must use only UNBOUNDED or CURRENT ROW"); + goto windowAllocErr; + } + + /* Additionally, the + ** starting boundary type may not occur earlier in the following list than + ** the ending boundary type: + ** + ** UNBOUNDED PRECEDING + ** PRECEDING + ** CURRENT ROW + ** FOLLOWING + ** UNBOUNDED FOLLOWING + ** + ** The parser ensures that "UNBOUNDED PRECEDING" cannot be used as an ending + ** boundary, and than "UNBOUNDED FOLLOWING" cannot be used as a starting + ** frame boundary. + */ + if( (eStart==TK_CURRENT && eEnd==TK_PRECEDING) + || (eStart==TK_FOLLOWING && (eEnd==TK_PRECEDING || eEnd==TK_CURRENT)) + ){ + sqlite3ErrorMsg(pParse, "unsupported frame delimiter for ROWS"); + goto windowAllocErr; + } + + pWin = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); + if( pWin==0 ) goto windowAllocErr; + pWin->eType = eType; + pWin->eStart = eStart; + pWin->eEnd = eEnd; + pWin->pEnd = sqlite3WindowOffsetExpr(pParse, pEnd); + pWin->pStart = sqlite3WindowOffsetExpr(pParse, pStart); + return pWin; + +windowAllocErr: + sqlite3ExprDelete(pParse->db, pEnd); + sqlite3ExprDelete(pParse->db, pStart); + return 0; +} + +/* +** Attach window object pWin to expression p. +*/ +SQLITE_PRIVATE void sqlite3WindowAttach(Parse *pParse, Expr *p, Window *pWin){ + if( p ){ + assert( p->op==TK_FUNCTION ); + /* This routine is only called for the parser. If pWin was not + ** allocated due to an OOM, then the parser would fail before ever + ** invoking this routine */ + if( ALWAYS(pWin) ){ + p->y.pWin = pWin; + ExprSetProperty(p, EP_WinFunc); + pWin->pOwner = p; + if( p->flags & EP_Distinct ){ + sqlite3ErrorMsg(pParse, + "DISTINCT is not supported for window functions"); + } + } + }else{ + sqlite3WindowDelete(pParse->db, pWin); + } +} + +/* +** Return 0 if the two window objects are identical, or non-zero otherwise. +** Identical window objects can be processed in a single scan. +*/ +SQLITE_PRIVATE int sqlite3WindowCompare(Parse *pParse, Window *p1, Window *p2){ + if( p1->eType!=p2->eType ) return 1; + if( p1->eStart!=p2->eStart ) return 1; + if( p1->eEnd!=p2->eEnd ) return 1; + if( sqlite3ExprCompare(pParse, p1->pStart, p2->pStart, -1) ) return 1; + if( sqlite3ExprCompare(pParse, p1->pEnd, p2->pEnd, -1) ) return 1; + if( sqlite3ExprListCompare(p1->pPartition, p2->pPartition, -1) ) return 1; + if( sqlite3ExprListCompare(p1->pOrderBy, p2->pOrderBy, -1) ) return 1; + return 0; +} + + +/* +** This is called by code in select.c before it calls sqlite3WhereBegin() +** to begin iterating through the sub-query results. It is used to allocate +** and initialize registers and cursors used by sqlite3WindowCodeStep(). +*/ +SQLITE_PRIVATE void sqlite3WindowCodeInit(Parse *pParse, Window *pMWin){ + Window *pWin; + Vdbe *v = sqlite3GetVdbe(pParse); + int nPart = (pMWin->pPartition ? pMWin->pPartition->nExpr : 0); + nPart += (pMWin->pOrderBy ? pMWin->pOrderBy->nExpr : 0); + if( nPart ){ + pMWin->regPart = pParse->nMem+1; + pParse->nMem += nPart; + sqlite3VdbeAddOp3(v, OP_Null, 0, pMWin->regPart, pMWin->regPart+nPart-1); + } + + for(pWin=pMWin; pWin; pWin=pWin->pNextWin){ + FuncDef *p = pWin->pFunc; + if( (p->funcFlags & SQLITE_FUNC_MINMAX) && pWin->eStart!=TK_UNBOUNDED ){ + /* The inline versions of min() and max() require a single ephemeral + ** table and 3 registers. The registers are used as follows: + ** + ** regApp+0: slot to copy min()/max() argument to for MakeRecord + ** regApp+1: integer value used to ensure keys are unique + ** regApp+2: output of MakeRecord + */ + ExprList *pList = pWin->pOwner->x.pList; + KeyInfo *pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pList, 0, 0); + pWin->csrApp = pParse->nTab++; + pWin->regApp = pParse->nMem+1; + pParse->nMem += 3; + if( pKeyInfo && pWin->pFunc->zName[1]=='i' ){ + assert( pKeyInfo->aSortOrder[0]==0 ); + pKeyInfo->aSortOrder[0] = 1; + } + sqlite3VdbeAddOp2(v, OP_OpenEphemeral, pWin->csrApp, 2); + sqlite3VdbeAppendP4(v, pKeyInfo, P4_KEYINFO); + sqlite3VdbeAddOp2(v, OP_Integer, 0, pWin->regApp+1); + } + else if( p->zName==nth_valueName || p->zName==first_valueName ){ + /* Allocate two registers at pWin->regApp. These will be used to + ** store the start and end index of the current frame. */ + assert( pMWin->iEphCsr ); + pWin->regApp = pParse->nMem+1; + pWin->csrApp = pParse->nTab++; + pParse->nMem += 2; + sqlite3VdbeAddOp2(v, OP_OpenDup, pWin->csrApp, pMWin->iEphCsr); + } + else if( p->zName==leadName || p->zName==lagName ){ + assert( pMWin->iEphCsr ); + pWin->csrApp = pParse->nTab++; + sqlite3VdbeAddOp2(v, OP_OpenDup, pWin->csrApp, pMWin->iEphCsr); + } + } +} + +/* +** A "PRECEDING " (eCond==0) or "FOLLOWING " (eCond==1) or the +** value of the second argument to nth_value() (eCond==2) has just been +** evaluated and the result left in register reg. This function generates VM +** code to check that the value is a non-negative integer and throws an +** exception if it is not. +*/ +static void windowCheckIntValue(Parse *pParse, int reg, int eCond){ + static const char *azErr[] = { + "frame starting offset must be a non-negative integer", + "frame ending offset must be a non-negative integer", + "second argument to nth_value must be a positive integer" + }; + static int aOp[] = { OP_Ge, OP_Ge, OP_Gt }; + Vdbe *v = sqlite3GetVdbe(pParse); + int regZero = sqlite3GetTempReg(pParse); + assert( eCond==0 || eCond==1 || eCond==2 ); + sqlite3VdbeAddOp2(v, OP_Integer, 0, regZero); + sqlite3VdbeAddOp2(v, OP_MustBeInt, reg, sqlite3VdbeCurrentAddr(v)+2); + VdbeCoverageIf(v, eCond==0); + VdbeCoverageIf(v, eCond==1); + VdbeCoverageIf(v, eCond==2); + sqlite3VdbeAddOp3(v, aOp[eCond], regZero, sqlite3VdbeCurrentAddr(v)+2, reg); + VdbeCoverageNeverNullIf(v, eCond==0); + VdbeCoverageNeverNullIf(v, eCond==1); + VdbeCoverageNeverNullIf(v, eCond==2); + sqlite3VdbeAddOp2(v, OP_Halt, SQLITE_ERROR, OE_Abort); + sqlite3VdbeAppendP4(v, (void*)azErr[eCond], P4_STATIC); + sqlite3ReleaseTempReg(pParse, regZero); +} + +/* +** Return the number of arguments passed to the window-function associated +** with the object passed as the only argument to this function. +*/ +static int windowArgCount(Window *pWin){ + ExprList *pList = pWin->pOwner->x.pList; + return (pList ? pList->nExpr : 0); +} + +/* +** Generate VM code to invoke either xStep() (if bInverse is 0) or +** xInverse (if bInverse is non-zero) for each window function in the +** linked list starting at pMWin. Or, for built-in window functions +** that do not use the standard function API, generate the required +** inline VM code. +** +** If argument csr is greater than or equal to 0, then argument reg is +** the first register in an array of registers guaranteed to be large +** enough to hold the array of arguments for each function. In this case +** the arguments are extracted from the current row of csr into the +** array of registers before invoking OP_AggStep or OP_AggInverse +** +** Or, if csr is less than zero, then the array of registers at reg is +** already populated with all columns from the current row of the sub-query. +** +** If argument regPartSize is non-zero, then it is a register containing the +** number of rows in the current partition. +*/ +static void windowAggStep( + Parse *pParse, + Window *pMWin, /* Linked list of window functions */ + int csr, /* Read arguments from this cursor */ + int bInverse, /* True to invoke xInverse instead of xStep */ + int reg, /* Array of registers */ + int regPartSize /* Register containing size of partition */ +){ + Vdbe *v = sqlite3GetVdbe(pParse); + Window *pWin; + for(pWin=pMWin; pWin; pWin=pWin->pNextWin){ + int flags = pWin->pFunc->funcFlags; + int regArg; + int nArg = windowArgCount(pWin); + + if( csr>=0 ){ + int i; + for(i=0; iiArgCol+i, reg+i); + } + regArg = reg; + if( flags & SQLITE_FUNC_WINDOW_SIZE ){ + if( nArg==0 ){ + regArg = regPartSize; + }else{ + sqlite3VdbeAddOp2(v, OP_SCopy, regPartSize, reg+nArg); + } + nArg++; + } + }else{ + assert( !(flags & SQLITE_FUNC_WINDOW_SIZE) ); + regArg = reg + pWin->iArgCol; + } + + if( (pWin->pFunc->funcFlags & SQLITE_FUNC_MINMAX) + && pWin->eStart!=TK_UNBOUNDED + ){ + int addrIsNull = sqlite3VdbeAddOp1(v, OP_IsNull, regArg); + VdbeCoverage(v); + if( bInverse==0 ){ + sqlite3VdbeAddOp2(v, OP_AddImm, pWin->regApp+1, 1); + sqlite3VdbeAddOp2(v, OP_SCopy, regArg, pWin->regApp); + sqlite3VdbeAddOp3(v, OP_MakeRecord, pWin->regApp, 2, pWin->regApp+2); + sqlite3VdbeAddOp2(v, OP_IdxInsert, pWin->csrApp, pWin->regApp+2); + }else{ + sqlite3VdbeAddOp4Int(v, OP_SeekGE, pWin->csrApp, 0, regArg, 1); + VdbeCoverageNeverTaken(v); + sqlite3VdbeAddOp1(v, OP_Delete, pWin->csrApp); + sqlite3VdbeJumpHere(v, sqlite3VdbeCurrentAddr(v)-2); + } + sqlite3VdbeJumpHere(v, addrIsNull); + }else if( pWin->regApp ){ + assert( pWin->pFunc->zName==nth_valueName + || pWin->pFunc->zName==first_valueName + ); + assert( bInverse==0 || bInverse==1 ); + sqlite3VdbeAddOp2(v, OP_AddImm, pWin->regApp+1-bInverse, 1); + }else if( pWin->pFunc->zName==leadName + || pWin->pFunc->zName==lagName + ){ + /* no-op */ + }else{ + int addrIf = 0; + if( pWin->pFilter ){ + int regTmp; + assert( nArg==0 || nArg==pWin->pOwner->x.pList->nExpr ); + assert( nArg || pWin->pOwner->x.pList==0 ); + if( csr>0 ){ + regTmp = sqlite3GetTempReg(pParse); + sqlite3VdbeAddOp3(v, OP_Column, csr, pWin->iArgCol+nArg,regTmp); + }else{ + regTmp = regArg + nArg; + } + addrIf = sqlite3VdbeAddOp3(v, OP_IfNot, regTmp, 0, 1); + VdbeCoverage(v); + if( csr>0 ){ + sqlite3ReleaseTempReg(pParse, regTmp); + } + } + if( pWin->pFunc->funcFlags & SQLITE_FUNC_NEEDCOLL ){ + CollSeq *pColl; + assert( nArg>0 ); + pColl = sqlite3ExprNNCollSeq(pParse, pWin->pOwner->x.pList->a[0].pExpr); + sqlite3VdbeAddOp4(v, OP_CollSeq, 0,0,0, (const char*)pColl, P4_COLLSEQ); + } + sqlite3VdbeAddOp3(v, bInverse? OP_AggInverse : OP_AggStep, + bInverse, regArg, pWin->regAccum); + sqlite3VdbeAppendP4(v, pWin->pFunc, P4_FUNCDEF); + sqlite3VdbeChangeP5(v, (u8)nArg); + if( addrIf ) sqlite3VdbeJumpHere(v, addrIf); + } + } +} + +/* +** Generate VM code to invoke either xValue() (bFinal==0) or xFinalize() +** (bFinal==1) for each window function in the linked list starting at +** pMWin. Or, for built-in window-functions that do not use the standard +** API, generate the equivalent VM code. +*/ +static void windowAggFinal(Parse *pParse, Window *pMWin, int bFinal){ + Vdbe *v = sqlite3GetVdbe(pParse); + Window *pWin; + + for(pWin=pMWin; pWin; pWin=pWin->pNextWin){ + if( (pWin->pFunc->funcFlags & SQLITE_FUNC_MINMAX) + && pWin->eStart!=TK_UNBOUNDED + ){ + sqlite3VdbeAddOp2(v, OP_Null, 0, pWin->regResult); + sqlite3VdbeAddOp1(v, OP_Last, pWin->csrApp); + VdbeCoverage(v); + sqlite3VdbeAddOp3(v, OP_Column, pWin->csrApp, 0, pWin->regResult); + sqlite3VdbeJumpHere(v, sqlite3VdbeCurrentAddr(v)-2); + if( bFinal ){ + sqlite3VdbeAddOp1(v, OP_ResetSorter, pWin->csrApp); + } + }else if( pWin->regApp ){ + }else{ + if( bFinal ){ + sqlite3VdbeAddOp2(v, OP_AggFinal, pWin->regAccum, windowArgCount(pWin)); + sqlite3VdbeAppendP4(v, pWin->pFunc, P4_FUNCDEF); + sqlite3VdbeAddOp2(v, OP_Copy, pWin->regAccum, pWin->regResult); + sqlite3VdbeAddOp2(v, OP_Null, 0, pWin->regAccum); + }else{ + sqlite3VdbeAddOp3(v, OP_AggValue, pWin->regAccum, windowArgCount(pWin), + pWin->regResult); + sqlite3VdbeAppendP4(v, pWin->pFunc, P4_FUNCDEF); + } + } + } +} + +/* +** This function generates VM code to invoke the sub-routine at address +** lblFlushPart once for each partition with the entire partition cached in +** the Window.iEphCsr temp table. +*/ +static void windowPartitionCache( + Parse *pParse, + Select *p, /* The rewritten SELECT statement */ + WhereInfo *pWInfo, /* WhereInfo to call WhereEnd() on */ + int regFlushPart, /* Register to use with Gosub lblFlushPart */ + int lblFlushPart, /* Subroutine to Gosub to */ + int *pRegSize /* OUT: Register containing partition size */ +){ + Window *pMWin = p->pWin; + Vdbe *v = sqlite3GetVdbe(pParse); + int iSubCsr = p->pSrc->a[0].iCursor; + int nSub = p->pSrc->a[0].pTab->nCol; + int k; + + int reg = pParse->nMem+1; + int regRecord = reg+nSub; + int regRowid = regRecord+1; + + *pRegSize = regRowid; + pParse->nMem += nSub + 2; + + /* Load the column values for the row returned by the sub-select + ** into an array of registers starting at reg. */ + for(k=0; kpPartition ){ + int addr; + ExprList *pPart = pMWin->pPartition; + int nPart = pPart->nExpr; + int regNewPart = reg + pMWin->nBufferCol; + KeyInfo *pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pPart, 0, 0); + + addr = sqlite3VdbeAddOp3(v, OP_Compare, regNewPart, pMWin->regPart,nPart); + sqlite3VdbeAppendP4(v, (void*)pKeyInfo, P4_KEYINFO); + sqlite3VdbeAddOp3(v, OP_Jump, addr+2, addr+4, addr+2); + VdbeCoverageEqNe(v); + sqlite3VdbeAddOp3(v, OP_Copy, regNewPart, pMWin->regPart, nPart-1); + sqlite3VdbeAddOp2(v, OP_Gosub, regFlushPart, lblFlushPart); + VdbeComment((v, "call flush_partition")); + } + + /* Buffer the current row in the ephemeral table. */ + sqlite3VdbeAddOp2(v, OP_NewRowid, pMWin->iEphCsr, regRowid); + sqlite3VdbeAddOp3(v, OP_Insert, pMWin->iEphCsr, regRecord, regRowid); + + /* End of the input loop */ + sqlite3WhereEnd(pWInfo); + + /* Invoke "flush_partition" to deal with the final (or only) partition */ + sqlite3VdbeAddOp2(v, OP_Gosub, regFlushPart, lblFlushPart); + VdbeComment((v, "call flush_partition")); +} + +/* +** Invoke the sub-routine at regGosub (generated by code in select.c) to +** return the current row of Window.iEphCsr. If all window functions are +** aggregate window functions that use the standard API, a single +** OP_Gosub instruction is all that this routine generates. Extra VM code +** for per-row processing is only generated for the following built-in window +** functions: +** +** nth_value() +** first_value() +** lag() +** lead() +*/ +static void windowReturnOneRow( + Parse *pParse, + Window *pMWin, + int regGosub, + int addrGosub +){ + Vdbe *v = sqlite3GetVdbe(pParse); + Window *pWin; + for(pWin=pMWin; pWin; pWin=pWin->pNextWin){ + FuncDef *pFunc = pWin->pFunc; + if( pFunc->zName==nth_valueName + || pFunc->zName==first_valueName + ){ + int csr = pWin->csrApp; + int lbl = sqlite3VdbeMakeLabel(v); + int tmpReg = sqlite3GetTempReg(pParse); + sqlite3VdbeAddOp2(v, OP_Null, 0, pWin->regResult); + + if( pFunc->zName==nth_valueName ){ + sqlite3VdbeAddOp3(v, OP_Column, pMWin->iEphCsr, pWin->iArgCol+1,tmpReg); + windowCheckIntValue(pParse, tmpReg, 2); + }else{ + sqlite3VdbeAddOp2(v, OP_Integer, 1, tmpReg); + } + sqlite3VdbeAddOp3(v, OP_Add, tmpReg, pWin->regApp, tmpReg); + sqlite3VdbeAddOp3(v, OP_Gt, pWin->regApp+1, lbl, tmpReg); + VdbeCoverageNeverNull(v); + sqlite3VdbeAddOp3(v, OP_SeekRowid, csr, 0, tmpReg); + VdbeCoverageNeverTaken(v); + sqlite3VdbeAddOp3(v, OP_Column, csr, pWin->iArgCol, pWin->regResult); + sqlite3VdbeResolveLabel(v, lbl); + sqlite3ReleaseTempReg(pParse, tmpReg); + } + else if( pFunc->zName==leadName || pFunc->zName==lagName ){ + int nArg = pWin->pOwner->x.pList->nExpr; + int iEph = pMWin->iEphCsr; + int csr = pWin->csrApp; + int lbl = sqlite3VdbeMakeLabel(v); + int tmpReg = sqlite3GetTempReg(pParse); + + if( nArg<3 ){ + sqlite3VdbeAddOp2(v, OP_Null, 0, pWin->regResult); + }else{ + sqlite3VdbeAddOp3(v, OP_Column, iEph, pWin->iArgCol+2, pWin->regResult); + } + sqlite3VdbeAddOp2(v, OP_Rowid, iEph, tmpReg); + if( nArg<2 ){ + int val = (pFunc->zName==leadName ? 1 : -1); + sqlite3VdbeAddOp2(v, OP_AddImm, tmpReg, val); + }else{ + int op = (pFunc->zName==leadName ? OP_Add : OP_Subtract); + int tmpReg2 = sqlite3GetTempReg(pParse); + sqlite3VdbeAddOp3(v, OP_Column, iEph, pWin->iArgCol+1, tmpReg2); + sqlite3VdbeAddOp3(v, op, tmpReg2, tmpReg, tmpReg); + sqlite3ReleaseTempReg(pParse, tmpReg2); + } + + sqlite3VdbeAddOp3(v, OP_SeekRowid, csr, lbl, tmpReg); + VdbeCoverage(v); + sqlite3VdbeAddOp3(v, OP_Column, csr, pWin->iArgCol, pWin->regResult); + sqlite3VdbeResolveLabel(v, lbl); + sqlite3ReleaseTempReg(pParse, tmpReg); + } + } + sqlite3VdbeAddOp2(v, OP_Gosub, regGosub, addrGosub); +} + +/* +** Invoke the code generated by windowReturnOneRow() and, optionally, the +** xInverse() function for each window function, for one or more rows +** from the Window.iEphCsr temp table. This routine generates VM code +** similar to: +** +** while( regCtr>0 ){ +** regCtr--; +** windowReturnOneRow() +** if( bInverse ){ +** AggInverse +** } +** Next (Window.iEphCsr) +** } +*/ +static void windowReturnRows( + Parse *pParse, + Window *pMWin, /* List of window functions */ + int regCtr, /* Register containing number of rows */ + int regGosub, /* Register for Gosub addrGosub */ + int addrGosub, /* Address of sub-routine for ReturnOneRow */ + int regInvArg, /* Array of registers for xInverse args */ + int regInvSize /* Register containing size of partition */ +){ + int addr; + Vdbe *v = sqlite3GetVdbe(pParse); + windowAggFinal(pParse, pMWin, 0); + addr = sqlite3VdbeAddOp3(v, OP_IfPos, regCtr, sqlite3VdbeCurrentAddr(v)+2 ,1); + VdbeCoverage(v); + sqlite3VdbeAddOp2(v, OP_Goto, 0, 0); + windowReturnOneRow(pParse, pMWin, regGosub, addrGosub); + if( regInvArg ){ + windowAggStep(pParse, pMWin, pMWin->iEphCsr, 1, regInvArg, regInvSize); + } + sqlite3VdbeAddOp2(v, OP_Next, pMWin->iEphCsr, addr); + VdbeCoverage(v); + sqlite3VdbeJumpHere(v, addr+1); /* The OP_Goto */ +} + +/* +** Generate code to set the accumulator register for each window function +** in the linked list passed as the second argument to NULL. And perform +** any equivalent initialization required by any built-in window functions +** in the list. +*/ +static int windowInitAccum(Parse *pParse, Window *pMWin){ + Vdbe *v = sqlite3GetVdbe(pParse); + int regArg; + int nArg = 0; + Window *pWin; + for(pWin=pMWin; pWin; pWin=pWin->pNextWin){ + FuncDef *pFunc = pWin->pFunc; + sqlite3VdbeAddOp2(v, OP_Null, 0, pWin->regAccum); + nArg = MAX(nArg, windowArgCount(pWin)); + if( pFunc->zName==nth_valueName + || pFunc->zName==first_valueName + ){ + sqlite3VdbeAddOp2(v, OP_Integer, 0, pWin->regApp); + sqlite3VdbeAddOp2(v, OP_Integer, 0, pWin->regApp+1); + } + + if( (pFunc->funcFlags & SQLITE_FUNC_MINMAX) && pWin->csrApp ){ + assert( pWin->eStart!=TK_UNBOUNDED ); + sqlite3VdbeAddOp1(v, OP_ResetSorter, pWin->csrApp); + sqlite3VdbeAddOp2(v, OP_Integer, 0, pWin->regApp+1); + } + } + regArg = pParse->nMem+1; + pParse->nMem += nArg; + return regArg; +} + + +/* +** This function does the work of sqlite3WindowCodeStep() for all "ROWS" +** window frame types except for "BETWEEN UNBOUNDED PRECEDING AND CURRENT +** ROW". Pseudo-code for each follows. +** +** ROWS BETWEEN PRECEDING AND FOLLOWING +** +** ... +** if( new partition ){ +** Gosub flush_partition +** } +** Insert (record in eph-table) +** sqlite3WhereEnd() +** Gosub flush_partition +** +** flush_partition: +** Once { +** OpenDup (iEphCsr -> csrStart) +** OpenDup (iEphCsr -> csrEnd) +** } +** regStart = // PRECEDING expression +** regEnd = // FOLLOWING expression +** if( regStart<0 || regEnd<0 ){ error! } +** Rewind (csr,csrStart,csrEnd) // if EOF goto flush_partition_done +** Next(csrEnd) // if EOF skip Aggstep +** Aggstep (csrEnd) +** if( (regEnd--)<=0 ){ +** AggFinal (xValue) +** Gosub addrGosub +** Next(csr) // if EOF goto flush_partition_done +** if( (regStart--)<=0 ){ +** AggInverse (csrStart) +** Next(csrStart) +** } +** } +** flush_partition_done: +** ResetSorter (csr) +** Return +** +** ROWS BETWEEN PRECEDING AND CURRENT ROW +** ROWS BETWEEN CURRENT ROW AND FOLLOWING +** ROWS BETWEEN UNBOUNDED PRECEDING AND FOLLOWING +** +** These are similar to the above. For "CURRENT ROW", intialize the +** register to 0. For "UNBOUNDED PRECEDING" to infinity. +** +** ROWS BETWEEN PRECEDING AND UNBOUNDED FOLLOWING +** ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING +** +** Rewind (csr,csrStart,csrEnd) // if EOF goto flush_partition_done +** while( 1 ){ +** Next(csrEnd) // Exit while(1) at EOF +** Aggstep (csrEnd) +** } +** while( 1 ){ +** AggFinal (xValue) +** Gosub addrGosub +** Next(csr) // if EOF goto flush_partition_done +** if( (regStart--)<=0 ){ +** AggInverse (csrStart) +** Next(csrStart) +** } +** } +** +** For the "CURRENT ROW AND UNBOUNDED FOLLOWING" case, the final if() +** condition is always true (as if regStart were initialized to 0). +** +** RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING +** +** This is the only RANGE case handled by this routine. It modifies the +** second while( 1 ) loop in "ROWS BETWEEN CURRENT ... UNBOUNDED..." to +** be: +** +** while( 1 ){ +** AggFinal (xValue) +** while( 1 ){ +** regPeer++ +** Gosub addrGosub +** Next(csr) // if EOF goto flush_partition_done +** if( new peer ) break; +** } +** while( (regPeer--)>0 ){ +** AggInverse (csrStart) +** Next(csrStart) +** } +** } +** +** ROWS BETWEEN FOLLOWING AND FOLLOWING +** +** regEnd = regEnd - regStart +** Rewind (csr,csrStart,csrEnd) // if EOF goto flush_partition_done +** Aggstep (csrEnd) +** Next(csrEnd) // if EOF fall-through +** if( (regEnd--)<=0 ){ +** if( (regStart--)<=0 ){ +** AggFinal (xValue) +** Gosub addrGosub +** Next(csr) // if EOF goto flush_partition_done +** } +** AggInverse (csrStart) +** Next (csrStart) +** } +** +** ROWS BETWEEN PRECEDING AND PRECEDING +** +** Replace the bit after "Rewind" in the above with: +** +** if( (regEnd--)<=0 ){ +** AggStep (csrEnd) +** Next (csrEnd) +** } +** AggFinal (xValue) +** Gosub addrGosub +** Next(csr) // if EOF goto flush_partition_done +** if( (regStart--)<=0 ){ +** AggInverse (csr2) +** Next (csr2) +** } +** +*/ +static void windowCodeRowExprStep( + Parse *pParse, + Select *p, + WhereInfo *pWInfo, + int regGosub, + int addrGosub +){ + Window *pMWin = p->pWin; + Vdbe *v = sqlite3GetVdbe(pParse); + int regFlushPart; /* Register for "Gosub flush_partition" */ + int lblFlushPart; /* Label for "Gosub flush_partition" */ + int lblFlushDone; /* Label for "Gosub flush_partition_done" */ + + int regArg; + int addr; + int csrStart = pParse->nTab++; + int csrEnd = pParse->nTab++; + int regStart; /* Value of PRECEDING */ + int regEnd; /* Value of FOLLOWING */ + int addrGoto; + int addrTop; + int addrIfPos1 = 0; + int addrIfPos2 = 0; + int regSize = 0; + + assert( pMWin->eStart==TK_PRECEDING + || pMWin->eStart==TK_CURRENT + || pMWin->eStart==TK_FOLLOWING + || pMWin->eStart==TK_UNBOUNDED + ); + assert( pMWin->eEnd==TK_FOLLOWING + || pMWin->eEnd==TK_CURRENT + || pMWin->eEnd==TK_UNBOUNDED + || pMWin->eEnd==TK_PRECEDING + ); + + /* Allocate register and label for the "flush_partition" sub-routine. */ + regFlushPart = ++pParse->nMem; + lblFlushPart = sqlite3VdbeMakeLabel(v); + lblFlushDone = sqlite3VdbeMakeLabel(v); + + regStart = ++pParse->nMem; + regEnd = ++pParse->nMem; + + windowPartitionCache(pParse, p, pWInfo, regFlushPart, lblFlushPart, ®Size); + + addrGoto = sqlite3VdbeAddOp0(v, OP_Goto); + + /* Start of "flush_partition" */ + sqlite3VdbeResolveLabel(v, lblFlushPart); + sqlite3VdbeAddOp2(v, OP_Once, 0, sqlite3VdbeCurrentAddr(v)+3); + VdbeCoverage(v); + VdbeComment((v, "Flush_partition subroutine")); + sqlite3VdbeAddOp2(v, OP_OpenDup, csrStart, pMWin->iEphCsr); + sqlite3VdbeAddOp2(v, OP_OpenDup, csrEnd, pMWin->iEphCsr); + + /* If either regStart or regEnd are not non-negative integers, throw + ** an exception. */ + if( pMWin->pStart ){ + sqlite3ExprCode(pParse, pMWin->pStart, regStart); + windowCheckIntValue(pParse, regStart, 0); + } + if( pMWin->pEnd ){ + sqlite3ExprCode(pParse, pMWin->pEnd, regEnd); + windowCheckIntValue(pParse, regEnd, 1); + } + + /* If this is "ROWS FOLLOWING AND ROWS FOLLOWING", do: + ** + ** if( regEndpEnd && pMWin->eStart==TK_FOLLOWING ){ + assert( pMWin->pStart!=0 ); + assert( pMWin->eEnd==TK_FOLLOWING ); + sqlite3VdbeAddOp3(v, OP_Ge, regStart, sqlite3VdbeCurrentAddr(v)+2, regEnd); + VdbeCoverageNeverNull(v); + sqlite3VdbeAddOp2(v, OP_Copy, regSize, regStart); + sqlite3VdbeAddOp3(v, OP_Subtract, regStart, regEnd, regEnd); + } + + if( pMWin->pStart && pMWin->eEnd==TK_PRECEDING ){ + assert( pMWin->pEnd!=0 ); + assert( pMWin->eStart==TK_PRECEDING ); + sqlite3VdbeAddOp3(v, OP_Le, regStart, sqlite3VdbeCurrentAddr(v)+3, regEnd); + VdbeCoverageNeverNull(v); + sqlite3VdbeAddOp2(v, OP_Copy, regSize, regStart); + sqlite3VdbeAddOp2(v, OP_Copy, regSize, regEnd); + } + + /* Initialize the accumulator register for each window function to NULL */ + regArg = windowInitAccum(pParse, pMWin); + + sqlite3VdbeAddOp2(v, OP_Rewind, pMWin->iEphCsr, lblFlushDone); + VdbeCoverage(v); + sqlite3VdbeAddOp2(v, OP_Rewind, csrStart, lblFlushDone); + VdbeCoverageNeverTaken(v); + sqlite3VdbeChangeP5(v, 1); + sqlite3VdbeAddOp2(v, OP_Rewind, csrEnd, lblFlushDone); + VdbeCoverageNeverTaken(v); + sqlite3VdbeChangeP5(v, 1); + + /* Invoke AggStep function for each window function using the row that + ** csrEnd currently points to. Or, if csrEnd is already at EOF, + ** do nothing. */ + addrTop = sqlite3VdbeCurrentAddr(v); + if( pMWin->eEnd==TK_PRECEDING ){ + addrIfPos1 = sqlite3VdbeAddOp3(v, OP_IfPos, regEnd, 0 , 1); + VdbeCoverage(v); + } + sqlite3VdbeAddOp2(v, OP_Next, csrEnd, sqlite3VdbeCurrentAddr(v)+2); + VdbeCoverage(v); + addr = sqlite3VdbeAddOp0(v, OP_Goto); + windowAggStep(pParse, pMWin, csrEnd, 0, regArg, regSize); + if( pMWin->eEnd==TK_UNBOUNDED ){ + sqlite3VdbeAddOp2(v, OP_Goto, 0, addrTop); + sqlite3VdbeJumpHere(v, addr); + addrTop = sqlite3VdbeCurrentAddr(v); + }else{ + sqlite3VdbeJumpHere(v, addr); + if( pMWin->eEnd==TK_PRECEDING ){ + sqlite3VdbeJumpHere(v, addrIfPos1); + } + } + + if( pMWin->eEnd==TK_FOLLOWING ){ + addrIfPos1 = sqlite3VdbeAddOp3(v, OP_IfPos, regEnd, 0 , 1); + VdbeCoverage(v); + } + if( pMWin->eStart==TK_FOLLOWING ){ + addrIfPos2 = sqlite3VdbeAddOp3(v, OP_IfPos, regStart, 0 , 1); + VdbeCoverage(v); + } + windowAggFinal(pParse, pMWin, 0); + windowReturnOneRow(pParse, pMWin, regGosub, addrGosub); + sqlite3VdbeAddOp2(v, OP_Next, pMWin->iEphCsr, sqlite3VdbeCurrentAddr(v)+2); + VdbeCoverage(v); + sqlite3VdbeAddOp2(v, OP_Goto, 0, lblFlushDone); + if( pMWin->eStart==TK_FOLLOWING ){ + sqlite3VdbeJumpHere(v, addrIfPos2); + } + + if( pMWin->eStart==TK_CURRENT + || pMWin->eStart==TK_PRECEDING + || pMWin->eStart==TK_FOLLOWING + ){ + int lblSkipInverse = sqlite3VdbeMakeLabel(v);; + if( pMWin->eStart==TK_PRECEDING ){ + sqlite3VdbeAddOp3(v, OP_IfPos, regStart, lblSkipInverse, 1); + VdbeCoverage(v); + } + if( pMWin->eStart==TK_FOLLOWING ){ + sqlite3VdbeAddOp2(v, OP_Next, csrStart, sqlite3VdbeCurrentAddr(v)+2); + VdbeCoverage(v); + sqlite3VdbeAddOp2(v, OP_Goto, 0, lblSkipInverse); + }else{ + sqlite3VdbeAddOp2(v, OP_Next, csrStart, sqlite3VdbeCurrentAddr(v)+1); + VdbeCoverageAlwaysTaken(v); + } + windowAggStep(pParse, pMWin, csrStart, 1, regArg, regSize); + sqlite3VdbeResolveLabel(v, lblSkipInverse); + } + if( pMWin->eEnd==TK_FOLLOWING ){ + sqlite3VdbeJumpHere(v, addrIfPos1); + } + sqlite3VdbeAddOp2(v, OP_Goto, 0, addrTop); + + /* flush_partition_done: */ + sqlite3VdbeResolveLabel(v, lblFlushDone); + sqlite3VdbeAddOp1(v, OP_ResetSorter, pMWin->iEphCsr); + sqlite3VdbeAddOp1(v, OP_Return, regFlushPart); + VdbeComment((v, "end flush_partition subroutine")); + + /* Jump to here to skip over flush_partition */ + sqlite3VdbeJumpHere(v, addrGoto); +} + +/* +** This function does the work of sqlite3WindowCodeStep() for cases that +** would normally be handled by windowCodeDefaultStep() when there are +** one or more built-in window-functions that require the entire partition +** to be cached in a temp table before any rows can be returned. Additionally. +** "RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING" is always handled by +** this function. +** +** Pseudo-code corresponding to the VM code generated by this function +** for each type of window follows. +** +** RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW +** +** flush_partition: +** Once { +** OpenDup (iEphCsr -> csrLead) +** } +** Integer ctr 0 +** foreach row (csrLead){ +** if( new peer ){ +** AggFinal (xValue) +** for(i=0; i csrLead) +** } +** foreach row (csrLead) { +** AggStep (csrLead) +** } +** foreach row (iEphCsr) { +** Gosub addrGosub +** } +** +** RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING +** +** flush_partition: +** Once { +** OpenDup (iEphCsr -> csrLead) +** } +** foreach row (csrLead){ +** AggStep (csrLead) +** } +** Rewind (csrLead) +** Integer ctr 0 +** foreach row (csrLead){ +** if( new peer ){ +** AggFinal (xValue) +** for(i=0; ipWin; + Vdbe *v = sqlite3GetVdbe(pParse); + int k; + int addr; + ExprList *pPart = pMWin->pPartition; + ExprList *pOrderBy = pMWin->pOrderBy; + int nPeer = pOrderBy ? pOrderBy->nExpr : 0; + int regNewPeer; + + int addrGoto; /* Address of Goto used to jump flush_par.. */ + int addrNext; /* Jump here for next iteration of loop */ + int regFlushPart; + int lblFlushPart; + int csrLead; + int regCtr; + int regArg; /* Register array to martial function args */ + int regSize; + int lblEmpty; + int bReverse = pMWin->pOrderBy && pMWin->eStart==TK_CURRENT + && pMWin->eEnd==TK_UNBOUNDED; + + assert( (pMWin->eStart==TK_UNBOUNDED && pMWin->eEnd==TK_CURRENT) + || (pMWin->eStart==TK_UNBOUNDED && pMWin->eEnd==TK_UNBOUNDED) + || (pMWin->eStart==TK_CURRENT && pMWin->eEnd==TK_CURRENT) + || (pMWin->eStart==TK_CURRENT && pMWin->eEnd==TK_UNBOUNDED) + ); + + lblEmpty = sqlite3VdbeMakeLabel(v); + regNewPeer = pParse->nMem+1; + pParse->nMem += nPeer; + + /* Allocate register and label for the "flush_partition" sub-routine. */ + regFlushPart = ++pParse->nMem; + lblFlushPart = sqlite3VdbeMakeLabel(v); + + csrLead = pParse->nTab++; + regCtr = ++pParse->nMem; + + windowPartitionCache(pParse, p, pWInfo, regFlushPart, lblFlushPart, ®Size); + addrGoto = sqlite3VdbeAddOp0(v, OP_Goto); + + /* Start of "flush_partition" */ + sqlite3VdbeResolveLabel(v, lblFlushPart); + sqlite3VdbeAddOp2(v, OP_Once, 0, sqlite3VdbeCurrentAddr(v)+2); + VdbeCoverage(v); + sqlite3VdbeAddOp2(v, OP_OpenDup, csrLead, pMWin->iEphCsr); + + /* Initialize the accumulator register for each window function to NULL */ + regArg = windowInitAccum(pParse, pMWin); + + sqlite3VdbeAddOp2(v, OP_Integer, 0, regCtr); + sqlite3VdbeAddOp2(v, OP_Rewind, csrLead, lblEmpty); + VdbeCoverage(v); + sqlite3VdbeAddOp2(v, OP_Rewind, pMWin->iEphCsr, lblEmpty); + VdbeCoverageNeverTaken(v); + + if( bReverse ){ + int addr2 = sqlite3VdbeCurrentAddr(v); + windowAggStep(pParse, pMWin, csrLead, 0, regArg, regSize); + sqlite3VdbeAddOp2(v, OP_Next, csrLead, addr2); + VdbeCoverage(v); + sqlite3VdbeAddOp2(v, OP_Rewind, csrLead, lblEmpty); + VdbeCoverageNeverTaken(v); + } + addrNext = sqlite3VdbeCurrentAddr(v); + + if( pOrderBy && (pMWin->eEnd==TK_CURRENT || pMWin->eStart==TK_CURRENT) ){ + int bCurrent = (pMWin->eStart==TK_CURRENT); + int addrJump = 0; /* Address of OP_Jump below */ + if( pMWin->eType==TK_RANGE ){ + int iOff = pMWin->nBufferCol + (pPart ? pPart->nExpr : 0); + int regPeer = pMWin->regPart + (pPart ? pPart->nExpr : 0); + KeyInfo *pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pOrderBy, 0, 0); + for(k=0; kiEphCsr); + sqlite3VdbeAddOp1(v, OP_Return, regFlushPart); + + /* Jump to here to skip over flush_partition */ + sqlite3VdbeJumpHere(v, addrGoto); +} + + +/* +** RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW +** +** ... +** if( new partition ){ +** AggFinal (xFinalize) +** Gosub addrGosub +** ResetSorter eph-table +** } +** else if( new peer ){ +** AggFinal (xValue) +** Gosub addrGosub +** ResetSorter eph-table +** } +** AggStep +** Insert (record into eph-table) +** sqlite3WhereEnd() +** AggFinal (xFinalize) +** Gosub addrGosub +** +** RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING +** +** As above, except take no action for a "new peer". Invoke +** the sub-routine once only for each partition. +** +** RANGE BETWEEN CURRENT ROW AND CURRENT ROW +** +** As above, except that the "new peer" condition is handled in the +** same way as "new partition" (so there is no "else if" block). +** +** ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW +** +** As above, except assume every row is a "new peer". +*/ +static void windowCodeDefaultStep( + Parse *pParse, + Select *p, + WhereInfo *pWInfo, + int regGosub, + int addrGosub +){ + Window *pMWin = p->pWin; + Vdbe *v = sqlite3GetVdbe(pParse); + int k; + int iSubCsr = p->pSrc->a[0].iCursor; + int nSub = p->pSrc->a[0].pTab->nCol; + int reg = pParse->nMem+1; + int regRecord = reg+nSub; + int regRowid = regRecord+1; + int addr; + ExprList *pPart = pMWin->pPartition; + ExprList *pOrderBy = pMWin->pOrderBy; + + assert( pMWin->eType==TK_RANGE + || (pMWin->eStart==TK_UNBOUNDED && pMWin->eEnd==TK_CURRENT) + ); + + assert( (pMWin->eStart==TK_UNBOUNDED && pMWin->eEnd==TK_CURRENT) + || (pMWin->eStart==TK_UNBOUNDED && pMWin->eEnd==TK_UNBOUNDED) + || (pMWin->eStart==TK_CURRENT && pMWin->eEnd==TK_CURRENT) + || (pMWin->eStart==TK_CURRENT && pMWin->eEnd==TK_UNBOUNDED && !pOrderBy) + ); + + if( pMWin->eEnd==TK_UNBOUNDED ){ + pOrderBy = 0; + } + + pParse->nMem += nSub + 2; + + /* Load the individual column values of the row returned by + ** the sub-select into an array of registers. */ + for(k=0; knExpr : 0); + int addrGoto = 0; + int addrJump = 0; + int nPeer = (pOrderBy ? pOrderBy->nExpr : 0); + + if( pPart ){ + int regNewPart = reg + pMWin->nBufferCol; + KeyInfo *pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pPart, 0, 0); + addr = sqlite3VdbeAddOp3(v, OP_Compare, regNewPart, pMWin->regPart,nPart); + sqlite3VdbeAppendP4(v, (void*)pKeyInfo, P4_KEYINFO); + addrJump = sqlite3VdbeAddOp3(v, OP_Jump, addr+2, 0, addr+2); + VdbeCoverageEqNe(v); + windowAggFinal(pParse, pMWin, 1); + if( pOrderBy ){ + addrGoto = sqlite3VdbeAddOp0(v, OP_Goto); + } + } + + if( pOrderBy ){ + int regNewPeer = reg + pMWin->nBufferCol + nPart; + int regPeer = pMWin->regPart + nPart; + + if( addrJump ) sqlite3VdbeJumpHere(v, addrJump); + if( pMWin->eType==TK_RANGE ){ + KeyInfo *pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pOrderBy, 0, 0); + addr = sqlite3VdbeAddOp3(v, OP_Compare, regNewPeer, regPeer, nPeer); + sqlite3VdbeAppendP4(v, (void*)pKeyInfo, P4_KEYINFO); + addrJump = sqlite3VdbeAddOp3(v, OP_Jump, addr+2, 0, addr+2); + VdbeCoverage(v); + }else{ + addrJump = 0; + } + windowAggFinal(pParse, pMWin, pMWin->eStart==TK_CURRENT); + if( addrGoto ) sqlite3VdbeJumpHere(v, addrGoto); + } + + sqlite3VdbeAddOp2(v, OP_Rewind, pMWin->iEphCsr,sqlite3VdbeCurrentAddr(v)+3); + VdbeCoverage(v); + sqlite3VdbeAddOp2(v, OP_Gosub, regGosub, addrGosub); + sqlite3VdbeAddOp2(v, OP_Next, pMWin->iEphCsr, sqlite3VdbeCurrentAddr(v)-1); + VdbeCoverage(v); + + sqlite3VdbeAddOp1(v, OP_ResetSorter, pMWin->iEphCsr); + sqlite3VdbeAddOp3( + v, OP_Copy, reg+pMWin->nBufferCol, pMWin->regPart, nPart+nPeer-1 + ); + + if( addrJump ) sqlite3VdbeJumpHere(v, addrJump); + } + + /* Invoke step function for window functions */ + windowAggStep(pParse, pMWin, -1, 0, reg, 0); + + /* Buffer the current row in the ephemeral table. */ + if( pMWin->nBufferCol>0 ){ + sqlite3VdbeAddOp3(v, OP_MakeRecord, reg, pMWin->nBufferCol, regRecord); + }else{ + sqlite3VdbeAddOp2(v, OP_Blob, 0, regRecord); + sqlite3VdbeAppendP4(v, (void*)"", 0); + } + sqlite3VdbeAddOp2(v, OP_NewRowid, pMWin->iEphCsr, regRowid); + sqlite3VdbeAddOp3(v, OP_Insert, pMWin->iEphCsr, regRecord, regRowid); + + /* End the database scan loop. */ + sqlite3WhereEnd(pWInfo); + + windowAggFinal(pParse, pMWin, 1); + sqlite3VdbeAddOp2(v, OP_Rewind, pMWin->iEphCsr,sqlite3VdbeCurrentAddr(v)+3); + VdbeCoverage(v); + sqlite3VdbeAddOp2(v, OP_Gosub, regGosub, addrGosub); + sqlite3VdbeAddOp2(v, OP_Next, pMWin->iEphCsr, sqlite3VdbeCurrentAddr(v)-1); + VdbeCoverage(v); +} + +/* +** Allocate and return a duplicate of the Window object indicated by the +** third argument. Set the Window.pOwner field of the new object to +** pOwner. +*/ +SQLITE_PRIVATE Window *sqlite3WindowDup(sqlite3 *db, Expr *pOwner, Window *p){ + Window *pNew = 0; + if( ALWAYS(p) ){ + pNew = sqlite3DbMallocZero(db, sizeof(Window)); + if( pNew ){ + pNew->zName = sqlite3DbStrDup(db, p->zName); + pNew->pFilter = sqlite3ExprDup(db, p->pFilter, 0); + pNew->pPartition = sqlite3ExprListDup(db, p->pPartition, 0); + pNew->pOrderBy = sqlite3ExprListDup(db, p->pOrderBy, 0); + pNew->eType = p->eType; + pNew->eEnd = p->eEnd; + pNew->eStart = p->eStart; + pNew->pStart = sqlite3ExprDup(db, p->pStart, 0); + pNew->pEnd = sqlite3ExprDup(db, p->pEnd, 0); + pNew->pOwner = pOwner; + } + } + return pNew; +} + +/* +** Return a copy of the linked list of Window objects passed as the +** second argument. +*/ +SQLITE_PRIVATE Window *sqlite3WindowListDup(sqlite3 *db, Window *p){ + Window *pWin; + Window *pRet = 0; + Window **pp = &pRet; + + for(pWin=p; pWin; pWin=pWin->pNextWin){ + *pp = sqlite3WindowDup(db, 0, pWin); + if( *pp==0 ) break; + pp = &((*pp)->pNextWin); + } + + return pRet; +} + +/* +** sqlite3WhereBegin() has already been called for the SELECT statement +** passed as the second argument when this function is invoked. It generates +** code to populate the Window.regResult register for each window function and +** invoke the sub-routine at instruction addrGosub once for each row. +** This function calls sqlite3WhereEnd() before returning. +*/ +SQLITE_PRIVATE void sqlite3WindowCodeStep( + Parse *pParse, /* Parse context */ + Select *p, /* Rewritten SELECT statement */ + WhereInfo *pWInfo, /* Context returned by sqlite3WhereBegin() */ + int regGosub, /* Register for OP_Gosub */ + int addrGosub /* OP_Gosub here to return each row */ +){ + Window *pMWin = p->pWin; + + /* There are three different functions that may be used to do the work + ** of this one, depending on the window frame and the specific built-in + ** window functions used (if any). + ** + ** windowCodeRowExprStep() handles all "ROWS" window frames, except for: + ** + ** ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW + ** + ** The exception is because windowCodeRowExprStep() implements all window + ** frame types by caching the entire partition in a temp table, and + ** "ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW" is easy enough to + ** implement without such a cache. + ** + ** windowCodeCacheStep() is used for: + ** + ** RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING + ** + ** It is also used for anything not handled by windowCodeRowExprStep() + ** that invokes a built-in window function that requires the entire + ** partition to be cached in a temp table before any rows are returned + ** (e.g. nth_value() or percent_rank()). + ** + ** Finally, assuming there is no built-in window function that requires + ** the partition to be cached, windowCodeDefaultStep() is used for: + ** + ** RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW + ** RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING + ** RANGE BETWEEN CURRENT ROW AND CURRENT ROW + ** ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW + ** + ** windowCodeDefaultStep() is the only one of the three functions that + ** does not cache each partition in a temp table before beginning to + ** return rows. + */ + if( pMWin->eType==TK_ROWS + && (pMWin->eStart!=TK_UNBOUNDED||pMWin->eEnd!=TK_CURRENT||!pMWin->pOrderBy) + ){ + VdbeModuleComment((pParse->pVdbe, "Begin RowExprStep()")); + windowCodeRowExprStep(pParse, p, pWInfo, regGosub, addrGosub); + }else{ + Window *pWin; + int bCache = 0; /* True to use CacheStep() */ + + if( pMWin->eStart==TK_CURRENT && pMWin->eEnd==TK_UNBOUNDED ){ + bCache = 1; + }else{ + for(pWin=pMWin; pWin; pWin=pWin->pNextWin){ + FuncDef *pFunc = pWin->pFunc; + if( (pFunc->funcFlags & SQLITE_FUNC_WINDOW_SIZE) + || (pFunc->zName==nth_valueName) + || (pFunc->zName==first_valueName) + || (pFunc->zName==leadName) + || (pFunc->zName==lagName) + ){ + bCache = 1; + break; + } + } + } + + /* Otherwise, call windowCodeDefaultStep(). */ + if( bCache ){ + VdbeModuleComment((pParse->pVdbe, "Begin CacheStep()")); + windowCodeCacheStep(pParse, p, pWInfo, regGosub, addrGosub); + }else{ + VdbeModuleComment((pParse->pVdbe, "Begin DefaultStep()")); + windowCodeDefaultStep(pParse, p, pWInfo, regGosub, addrGosub); + } + } +} + +#endif /* SQLITE_OMIT_WINDOWFUNC */ + +/************** End of window.c **********************************************/ /************** Begin file parse.c *******************************************/ /* ** 2000-05-29 @@ -138134,6 +146829,7 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ ** input grammar file: */ /* #include */ +/* #include */ /************ Begin %include sections from the grammar ************************/ /* #include "sqliteInt.h" */ @@ -138185,6 +146881,8 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ */ struct TrigEvent { int a; IdList * b; }; +struct FrameBound { int eType; Expr *pExpr; }; + /* ** Disable lookaside memory allocation for objects that might be ** shared across database connections. @@ -138225,10 +146923,18 @@ static void disableLookaside(Parse *pParse){ static Expr *tokenExpr(Parse *pParse, int op, Token t){ Expr *p = sqlite3DbMallocRawNN(pParse->db, sizeof(Expr)+t.n+1); if( p ){ - memset(p, 0, sizeof(Expr)); + /* memset(p, 0, sizeof(Expr)); */ p->op = (u8)op; + p->affinity = 0; p->flags = EP_Leaf; p->iAgg = -1; + p->pLeft = p->pRight = 0; + p->x.pList = 0; + p->pAggInfo = 0; + p->y.pTab = 0; + p->op2 = 0; + p->iTable = 0; + p->iColumn = 0; p->u.zToken = (char*)&p[1]; memcpy(p->u.zToken, t.z, t.n); p->u.zToken[t.n] = 0; @@ -138239,15 +146945,19 @@ static void disableLookaside(Parse *pParse){ #if SQLITE_MAX_EXPR_DEPTH>0 p->nHeight = 1; #endif + if( IN_RENAME_OBJECT ){ + return (Expr*)sqlite3RenameTokenMap(pParse, (void*)p, &t); + } } return p; } + /* A routine to convert a binary TK_IS or TK_ISNOT expression into a ** unary TK_ISNULL or TK_NOTNULL expression. */ static void binaryToUnaryIfNull(Parse *pParse, Expr *pY, Expr *pA, int op){ sqlite3 *db = pParse->db; - if( pA && pY && pY->op==TK_NULL ){ + if( pA && pY && pY->op==TK_NULL && !IN_RENAME_OBJECT ){ pA->op = (u8)op; sqlite3ExprDelete(db, pA->pRight); pA->pRight = 0; @@ -138316,8 +147026,10 @@ static void disableLookaside(Parse *pParse){ ** zero the stack is dynamically sized using realloc() ** sqlite3ParserARG_SDECL A static variable declaration for the %extra_argument ** sqlite3ParserARG_PDECL A parameter declaration for the %extra_argument +** sqlite3ParserARG_PARAM Code to pass %extra_argument as a subroutine parameter ** sqlite3ParserARG_STORE Code to store %extra_argument into yypParser ** sqlite3ParserARG_FETCH Code to extract %extra_argument from yypParser +** sqlite3ParserCTX_* As sqlite3ParserARG_ except for %extra_context ** YYERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. ** YYNSTATE the combined number of states. @@ -138336,46 +147048,56 @@ static void disableLookaside(Parse *pParse){ # define INTERFACE 1 #endif /************* Begin control #defines *****************************************/ -#define YYCODETYPE unsigned char -#define YYNOCODE 253 +#define YYCODETYPE unsigned short int +#define YYNOCODE 277 #define YYACTIONTYPE unsigned short int -#define YYWILDCARD 83 +#define YYWILDCARD 91 #define sqlite3ParserTOKENTYPE Token typedef union { int yyinit; sqlite3ParserTOKENTYPE yy0; - int yy4; - struct TrigEvent yy90; - TriggerStep* yy203; - struct {int value; int mask;} yy215; - SrcList* yy259; - Expr* yy314; - ExprList* yy322; - const char* yy336; - IdList* yy384; - Select* yy387; - With* yy451; + Expr* yy18; + struct TrigEvent yy34; + IdList* yy48; + int yy70; + struct {int value; int mask;} yy111; + struct FrameBound yy119; + SrcList* yy135; + TriggerStep* yy207; + Window* yy327; + Upsert* yy340; + const char* yy392; + ExprList* yy420; + With* yy449; + Select* yy489; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 100 #endif -#define sqlite3ParserARG_SDECL Parse *pParse; -#define sqlite3ParserARG_PDECL ,Parse *pParse -#define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse -#define sqlite3ParserARG_STORE yypParser->pParse = pParse +#define sqlite3ParserARG_SDECL +#define sqlite3ParserARG_PDECL +#define sqlite3ParserARG_PARAM +#define sqlite3ParserARG_FETCH +#define sqlite3ParserARG_STORE +#define sqlite3ParserCTX_SDECL Parse *pParse; +#define sqlite3ParserCTX_PDECL ,Parse *pParse +#define sqlite3ParserCTX_PARAM ,pParse +#define sqlite3ParserCTX_FETCH Parse *pParse=yypParser->pParse; +#define sqlite3ParserCTX_STORE yypParser->pParse=pParse; #define YYFALLBACK 1 -#define YYNSTATE 466 -#define YYNRULE 330 -#define YYNTOKEN 143 -#define YY_MAX_SHIFT 465 -#define YY_MIN_SHIFTREDUCE 675 -#define YY_MAX_SHIFTREDUCE 1004 -#define YY_ERROR_ACTION 1005 -#define YY_ACCEPT_ACTION 1006 -#define YY_NO_ACTION 1007 -#define YY_MIN_REDUCE 1008 -#define YY_MAX_REDUCE 1337 +#define YYNSTATE 521 +#define YYNRULE 367 +#define YYNTOKEN 155 +#define YY_MAX_SHIFT 520 +#define YY_MIN_SHIFTREDUCE 756 +#define YY_MAX_SHIFTREDUCE 1122 +#define YY_ERROR_ACTION 1123 +#define YY_ACCEPT_ACTION 1124 +#define YY_NO_ACTION 1125 +#define YY_MIN_REDUCE 1126 +#define YY_MAX_REDUCE 1492 /************* End control #defines *******************************************/ +#define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) /* Define the yytestcase() macro to be a no-op if is not already defined ** otherwise. @@ -138440,474 +147162,568 @@ typedef union { ** yy_default[] Default action for each state. ** *********** Begin parsing tables **********************************************/ -#define YY_ACTTAB_COUNT (1541) +#define YY_ACTTAB_COUNT (2009) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 1006, 156, 156, 2, 1302, 90, 87, 179, 90, 87, - /* 10 */ 179, 460, 1048, 460, 465, 1010, 460, 333, 1130, 335, - /* 20 */ 246, 330, 112, 303, 439, 1258, 304, 419, 1129, 1087, - /* 30 */ 72, 798, 50, 50, 50, 50, 331, 30, 30, 799, - /* 40 */ 951, 364, 371, 97, 98, 88, 983, 983, 859, 862, - /* 50 */ 851, 851, 95, 95, 96, 96, 96, 96, 120, 371, - /* 60 */ 370, 120, 348, 22, 90, 87, 179, 438, 423, 438, - /* 70 */ 440, 335, 420, 385, 90, 87, 179, 116, 73, 163, - /* 80 */ 848, 848, 860, 863, 94, 94, 94, 94, 93, 93, - /* 90 */ 92, 92, 92, 91, 361, 97, 98, 88, 983, 983, - /* 100 */ 859, 862, 851, 851, 95, 95, 96, 96, 96, 96, - /* 110 */ 718, 365, 339, 93, 93, 92, 92, 92, 91, 361, - /* 120 */ 99, 371, 453, 335, 94, 94, 94, 94, 93, 93, - /* 130 */ 92, 92, 92, 91, 361, 852, 94, 94, 94, 94, - /* 140 */ 93, 93, 92, 92, 92, 91, 361, 97, 98, 88, - /* 150 */ 983, 983, 859, 862, 851, 851, 95, 95, 96, 96, - /* 160 */ 96, 96, 92, 92, 92, 91, 361, 838, 132, 195, - /* 170 */ 58, 244, 412, 409, 408, 335, 457, 457, 457, 304, - /* 180 */ 59, 332, 831, 407, 394, 962, 830, 391, 94, 94, - /* 190 */ 94, 94, 93, 93, 92, 92, 92, 91, 361, 97, - /* 200 */ 98, 88, 983, 983, 859, 862, 851, 851, 95, 95, - /* 210 */ 96, 96, 96, 96, 426, 357, 460, 830, 830, 832, - /* 220 */ 91, 361, 962, 963, 964, 195, 459, 335, 412, 409, - /* 230 */ 408, 280, 361, 820, 132, 11, 11, 50, 50, 407, - /* 240 */ 94, 94, 94, 94, 93, 93, 92, 92, 92, 91, - /* 250 */ 361, 97, 98, 88, 983, 983, 859, 862, 851, 851, - /* 260 */ 95, 95, 96, 96, 96, 96, 460, 221, 460, 264, - /* 270 */ 375, 254, 438, 428, 1276, 1276, 383, 1074, 1053, 335, - /* 280 */ 245, 422, 299, 713, 271, 271, 1074, 50, 50, 50, - /* 290 */ 50, 962, 94, 94, 94, 94, 93, 93, 92, 92, - /* 300 */ 92, 91, 361, 97, 98, 88, 983, 983, 859, 862, - /* 310 */ 851, 851, 95, 95, 96, 96, 96, 96, 90, 87, - /* 320 */ 179, 1306, 438, 437, 438, 418, 368, 253, 962, 963, - /* 330 */ 964, 335, 360, 360, 360, 706, 359, 358, 324, 962, - /* 340 */ 1281, 951, 364, 230, 94, 94, 94, 94, 93, 93, - /* 350 */ 92, 92, 92, 91, 361, 97, 98, 88, 983, 983, - /* 360 */ 859, 862, 851, 851, 95, 95, 96, 96, 96, 96, - /* 370 */ 769, 460, 120, 226, 226, 366, 962, 963, 964, 1089, - /* 380 */ 990, 900, 990, 335, 1057, 425, 421, 839, 759, 759, - /* 390 */ 425, 427, 50, 50, 432, 381, 94, 94, 94, 94, - /* 400 */ 93, 93, 92, 92, 92, 91, 361, 97, 98, 88, - /* 410 */ 983, 983, 859, 862, 851, 851, 95, 95, 96, 96, - /* 420 */ 96, 96, 460, 259, 460, 120, 117, 354, 942, 1332, - /* 430 */ 942, 1333, 1332, 278, 1333, 335, 680, 681, 682, 825, - /* 440 */ 201, 176, 303, 50, 50, 49, 49, 404, 94, 94, - /* 450 */ 94, 94, 93, 93, 92, 92, 92, 91, 361, 97, - /* 460 */ 98, 88, 983, 983, 859, 862, 851, 851, 95, 95, - /* 470 */ 96, 96, 96, 96, 199, 460, 380, 265, 433, 380, - /* 480 */ 265, 383, 256, 158, 258, 319, 1003, 335, 155, 940, - /* 490 */ 177, 940, 273, 379, 276, 322, 34, 34, 302, 962, - /* 500 */ 94, 94, 94, 94, 93, 93, 92, 92, 92, 91, - /* 510 */ 361, 97, 98, 88, 983, 983, 859, 862, 851, 851, - /* 520 */ 95, 95, 96, 96, 96, 96, 905, 905, 397, 460, - /* 530 */ 301, 158, 101, 319, 941, 340, 962, 963, 964, 313, - /* 540 */ 283, 449, 335, 327, 146, 1266, 1004, 257, 234, 248, - /* 550 */ 35, 35, 94, 94, 94, 94, 93, 93, 92, 92, - /* 560 */ 92, 91, 361, 709, 785, 1227, 97, 98, 88, 983, - /* 570 */ 983, 859, 862, 851, 851, 95, 95, 96, 96, 96, - /* 580 */ 96, 962, 1227, 1229, 245, 422, 838, 198, 197, 196, - /* 590 */ 1079, 1079, 1077, 1077, 1004, 1334, 320, 335, 172, 171, - /* 600 */ 709, 831, 159, 271, 271, 830, 76, 94, 94, 94, - /* 610 */ 94, 93, 93, 92, 92, 92, 91, 361, 962, 963, - /* 620 */ 964, 97, 98, 88, 983, 983, 859, 862, 851, 851, - /* 630 */ 95, 95, 96, 96, 96, 96, 830, 830, 832, 1157, - /* 640 */ 1157, 199, 1157, 173, 1227, 231, 232, 1282, 2, 335, - /* 650 */ 271, 764, 271, 820, 271, 271, 763, 389, 389, 389, - /* 660 */ 132, 79, 94, 94, 94, 94, 93, 93, 92, 92, - /* 670 */ 92, 91, 361, 97, 98, 88, 983, 983, 859, 862, - /* 680 */ 851, 851, 95, 95, 96, 96, 96, 96, 460, 264, - /* 690 */ 223, 460, 1257, 783, 1223, 1157, 1086, 1082, 80, 271, - /* 700 */ 78, 335, 340, 1031, 341, 344, 345, 902, 346, 10, - /* 710 */ 10, 902, 25, 25, 94, 94, 94, 94, 93, 93, - /* 720 */ 92, 92, 92, 91, 361, 97, 86, 88, 983, 983, - /* 730 */ 859, 862, 851, 851, 95, 95, 96, 96, 96, 96, - /* 740 */ 1157, 270, 395, 117, 233, 263, 235, 70, 456, 341, - /* 750 */ 225, 176, 335, 1305, 342, 133, 736, 966, 980, 249, - /* 760 */ 1150, 396, 325, 1085, 1028, 178, 94, 94, 94, 94, - /* 770 */ 93, 93, 92, 92, 92, 91, 361, 98, 88, 983, - /* 780 */ 983, 859, 862, 851, 851, 95, 95, 96, 96, 96, - /* 790 */ 96, 783, 783, 132, 120, 966, 120, 120, 120, 798, - /* 800 */ 252, 937, 335, 353, 321, 429, 355, 799, 822, 692, - /* 810 */ 390, 203, 446, 450, 372, 716, 454, 94, 94, 94, - /* 820 */ 94, 93, 93, 92, 92, 92, 91, 361, 88, 983, - /* 830 */ 983, 859, 862, 851, 851, 95, 95, 96, 96, 96, - /* 840 */ 96, 84, 455, 1225, 3, 1209, 120, 120, 382, 387, - /* 850 */ 120, 203, 1271, 716, 384, 168, 266, 203, 458, 72, - /* 860 */ 260, 1246, 84, 455, 178, 3, 378, 94, 94, 94, - /* 870 */ 94, 93, 93, 92, 92, 92, 91, 361, 350, 458, - /* 880 */ 1245, 362, 430, 213, 228, 290, 415, 285, 414, 200, - /* 890 */ 783, 882, 444, 726, 725, 405, 283, 921, 209, 921, - /* 900 */ 281, 132, 362, 72, 838, 289, 147, 733, 734, 392, - /* 910 */ 81, 82, 922, 444, 922, 267, 288, 83, 362, 462, - /* 920 */ 461, 272, 132, 830, 23, 838, 388, 923, 1216, 923, - /* 930 */ 1056, 81, 82, 84, 455, 899, 3, 899, 83, 362, - /* 940 */ 462, 461, 761, 962, 830, 75, 1, 443, 275, 747, - /* 950 */ 458, 5, 962, 204, 830, 830, 832, 833, 18, 748, - /* 960 */ 229, 962, 277, 19, 153, 317, 317, 316, 216, 314, - /* 970 */ 279, 460, 689, 362, 1055, 830, 830, 832, 833, 18, - /* 980 */ 962, 963, 964, 962, 444, 181, 460, 251, 981, 962, - /* 990 */ 963, 964, 8, 8, 20, 250, 838, 1070, 962, 963, - /* 1000 */ 964, 417, 81, 82, 768, 204, 347, 36, 36, 83, - /* 1010 */ 362, 462, 461, 1054, 284, 830, 84, 455, 1123, 3, - /* 1020 */ 962, 963, 964, 460, 183, 962, 981, 764, 889, 1107, - /* 1030 */ 460, 184, 763, 458, 132, 182, 74, 455, 460, 3, - /* 1040 */ 981, 898, 834, 898, 8, 8, 830, 830, 832, 833, - /* 1050 */ 18, 8, 8, 458, 219, 1156, 362, 1103, 349, 8, - /* 1060 */ 8, 240, 962, 963, 964, 236, 889, 444, 792, 336, - /* 1070 */ 158, 203, 885, 435, 700, 209, 362, 114, 981, 838, - /* 1080 */ 834, 227, 334, 1114, 441, 81, 82, 444, 442, 305, - /* 1090 */ 784, 306, 83, 362, 462, 461, 369, 1162, 830, 838, - /* 1100 */ 460, 1037, 237, 1030, 237, 81, 82, 7, 96, 96, - /* 1110 */ 96, 96, 83, 362, 462, 461, 1019, 1018, 830, 1020, - /* 1120 */ 1289, 37, 37, 400, 96, 96, 96, 96, 89, 830, - /* 1130 */ 830, 832, 833, 18, 1100, 318, 962, 292, 94, 94, - /* 1140 */ 94, 94, 93, 93, 92, 92, 92, 91, 361, 830, - /* 1150 */ 830, 832, 833, 18, 94, 94, 94, 94, 93, 93, - /* 1160 */ 92, 92, 92, 91, 361, 359, 358, 226, 226, 727, - /* 1170 */ 294, 296, 460, 962, 963, 964, 460, 989, 160, 425, - /* 1180 */ 170, 1295, 262, 460, 987, 374, 988, 386, 1145, 255, - /* 1190 */ 326, 460, 373, 38, 38, 410, 174, 39, 39, 413, - /* 1200 */ 460, 287, 460, 1053, 40, 40, 298, 728, 1220, 990, - /* 1210 */ 445, 990, 26, 26, 1219, 460, 311, 460, 169, 1292, - /* 1220 */ 460, 27, 27, 29, 29, 998, 460, 206, 135, 995, - /* 1230 */ 1265, 1263, 460, 57, 60, 460, 41, 41, 42, 42, - /* 1240 */ 460, 43, 43, 460, 343, 351, 460, 9, 9, 460, - /* 1250 */ 144, 460, 130, 44, 44, 460, 103, 103, 460, 137, - /* 1260 */ 70, 45, 45, 460, 46, 46, 460, 31, 31, 1142, - /* 1270 */ 47, 47, 48, 48, 460, 376, 32, 32, 460, 122, - /* 1280 */ 122, 460, 157, 460, 123, 123, 139, 124, 124, 460, - /* 1290 */ 186, 460, 377, 460, 115, 54, 54, 460, 403, 33, - /* 1300 */ 33, 460, 104, 104, 51, 51, 460, 161, 460, 140, - /* 1310 */ 105, 105, 106, 106, 102, 102, 460, 141, 121, 121, - /* 1320 */ 460, 142, 119, 119, 190, 460, 1152, 110, 110, 109, - /* 1330 */ 109, 702, 460, 148, 393, 65, 460, 107, 107, 460, - /* 1340 */ 323, 108, 108, 399, 460, 1234, 53, 53, 1214, 269, - /* 1350 */ 154, 416, 1115, 55, 55, 220, 401, 52, 52, 191, - /* 1360 */ 24, 24, 274, 192, 193, 28, 28, 1021, 328, 702, - /* 1370 */ 1073, 352, 1072, 718, 1071, 431, 1111, 1064, 329, 1045, - /* 1380 */ 69, 205, 6, 291, 1044, 286, 1112, 1043, 1304, 1110, - /* 1390 */ 293, 300, 295, 297, 1063, 1200, 1109, 77, 241, 448, - /* 1400 */ 356, 452, 436, 100, 214, 71, 434, 1027, 1093, 21, - /* 1410 */ 463, 242, 243, 957, 215, 217, 218, 464, 309, 307, - /* 1420 */ 308, 310, 1016, 125, 1250, 1251, 1011, 1249, 126, 127, - /* 1430 */ 1248, 113, 676, 337, 238, 338, 134, 363, 167, 1041, - /* 1440 */ 1040, 56, 247, 367, 180, 897, 111, 895, 136, 1038, - /* 1450 */ 818, 128, 138, 750, 261, 911, 185, 143, 145, 61, - /* 1460 */ 62, 63, 64, 129, 914, 187, 188, 910, 118, 12, - /* 1470 */ 189, 903, 268, 992, 203, 162, 398, 150, 149, 691, - /* 1480 */ 402, 288, 194, 406, 151, 411, 66, 13, 729, 239, - /* 1490 */ 282, 14, 67, 131, 837, 836, 865, 758, 15, 4, - /* 1500 */ 68, 762, 175, 222, 224, 424, 152, 869, 791, 202, - /* 1510 */ 786, 75, 72, 880, 866, 864, 16, 17, 920, 207, - /* 1520 */ 919, 208, 447, 946, 164, 211, 947, 210, 165, 451, - /* 1530 */ 868, 166, 315, 835, 701, 85, 212, 1297, 312, 952, - /* 1540 */ 1296, + /* 0 */ 368, 105, 102, 197, 105, 102, 197, 515, 1124, 1, + /* 10 */ 1, 520, 2, 1128, 515, 1192, 1171, 1456, 275, 370, + /* 20 */ 127, 1389, 1197, 1197, 1192, 1166, 178, 1205, 64, 64, + /* 30 */ 477, 887, 322, 428, 348, 37, 37, 808, 362, 888, + /* 40 */ 509, 509, 509, 112, 113, 103, 1100, 1100, 953, 956, + /* 50 */ 946, 946, 110, 110, 111, 111, 111, 111, 365, 252, + /* 60 */ 252, 515, 252, 252, 497, 515, 309, 515, 459, 515, + /* 70 */ 1079, 491, 512, 478, 6, 512, 809, 134, 498, 228, + /* 80 */ 194, 428, 37, 37, 515, 208, 64, 64, 64, 64, + /* 90 */ 13, 13, 109, 109, 109, 109, 108, 108, 107, 107, + /* 100 */ 107, 106, 401, 258, 381, 13, 13, 398, 397, 428, + /* 110 */ 252, 252, 370, 476, 405, 1104, 1079, 1080, 1081, 386, + /* 120 */ 1106, 390, 497, 512, 497, 1423, 1419, 304, 1105, 307, + /* 130 */ 1256, 496, 370, 499, 16, 16, 112, 113, 103, 1100, + /* 140 */ 1100, 953, 956, 946, 946, 110, 110, 111, 111, 111, + /* 150 */ 111, 262, 1107, 495, 1107, 401, 112, 113, 103, 1100, + /* 160 */ 1100, 953, 956, 946, 946, 110, 110, 111, 111, 111, + /* 170 */ 111, 129, 1425, 343, 1420, 339, 1059, 492, 1057, 263, + /* 180 */ 73, 105, 102, 197, 994, 109, 109, 109, 109, 108, + /* 190 */ 108, 107, 107, 107, 106, 401, 370, 111, 111, 111, + /* 200 */ 111, 104, 492, 89, 1432, 109, 109, 109, 109, 108, + /* 210 */ 108, 107, 107, 107, 106, 401, 111, 111, 111, 111, + /* 220 */ 112, 113, 103, 1100, 1100, 953, 956, 946, 946, 110, + /* 230 */ 110, 111, 111, 111, 111, 109, 109, 109, 109, 108, + /* 240 */ 108, 107, 107, 107, 106, 401, 114, 108, 108, 107, + /* 250 */ 107, 107, 106, 401, 109, 109, 109, 109, 108, 108, + /* 260 */ 107, 107, 107, 106, 401, 152, 399, 399, 399, 109, + /* 270 */ 109, 109, 109, 108, 108, 107, 107, 107, 106, 401, + /* 280 */ 178, 493, 1412, 434, 1037, 1486, 1079, 515, 1486, 370, + /* 290 */ 421, 297, 357, 412, 74, 1079, 109, 109, 109, 109, + /* 300 */ 108, 108, 107, 107, 107, 106, 401, 1413, 37, 37, + /* 310 */ 1431, 274, 506, 112, 113, 103, 1100, 1100, 953, 956, + /* 320 */ 946, 946, 110, 110, 111, 111, 111, 111, 1436, 520, + /* 330 */ 2, 1128, 1079, 1080, 1081, 430, 275, 1079, 127, 366, + /* 340 */ 933, 1079, 1080, 1081, 220, 1205, 913, 458, 455, 454, + /* 350 */ 392, 167, 515, 1035, 152, 445, 924, 453, 152, 874, + /* 360 */ 923, 289, 109, 109, 109, 109, 108, 108, 107, 107, + /* 370 */ 107, 106, 401, 13, 13, 261, 853, 252, 252, 227, + /* 380 */ 106, 401, 370, 1079, 1080, 1081, 311, 388, 1079, 296, + /* 390 */ 512, 923, 923, 925, 231, 323, 1255, 1388, 1423, 490, + /* 400 */ 274, 506, 12, 208, 274, 506, 112, 113, 103, 1100, + /* 410 */ 1100, 953, 956, 946, 946, 110, 110, 111, 111, 111, + /* 420 */ 111, 1440, 286, 1128, 288, 1079, 1097, 247, 275, 1098, + /* 430 */ 127, 387, 405, 389, 1079, 1080, 1081, 1205, 159, 238, + /* 440 */ 255, 321, 461, 316, 460, 225, 790, 105, 102, 197, + /* 450 */ 513, 314, 842, 842, 445, 109, 109, 109, 109, 108, + /* 460 */ 108, 107, 107, 107, 106, 401, 515, 514, 515, 252, + /* 470 */ 252, 1079, 1080, 1081, 435, 370, 1098, 933, 1460, 794, + /* 480 */ 274, 506, 512, 105, 102, 197, 336, 63, 63, 64, + /* 490 */ 64, 27, 790, 924, 287, 208, 1354, 923, 515, 112, + /* 500 */ 113, 103, 1100, 1100, 953, 956, 946, 946, 110, 110, + /* 510 */ 111, 111, 111, 111, 107, 107, 107, 106, 401, 49, + /* 520 */ 49, 515, 28, 1079, 405, 497, 421, 297, 923, 923, + /* 530 */ 925, 186, 468, 1079, 467, 999, 999, 442, 515, 1079, + /* 540 */ 334, 515, 45, 45, 1083, 342, 173, 168, 109, 109, + /* 550 */ 109, 109, 108, 108, 107, 107, 107, 106, 401, 13, + /* 560 */ 13, 205, 13, 13, 252, 252, 1195, 1195, 370, 1079, + /* 570 */ 1080, 1081, 787, 265, 5, 359, 494, 512, 469, 1079, + /* 580 */ 1080, 1081, 398, 397, 1079, 1079, 1080, 1081, 3, 282, + /* 590 */ 1079, 1083, 112, 113, 103, 1100, 1100, 953, 956, 946, + /* 600 */ 946, 110, 110, 111, 111, 111, 111, 252, 252, 1015, + /* 610 */ 220, 1079, 873, 458, 455, 454, 943, 943, 954, 957, + /* 620 */ 512, 252, 252, 453, 1016, 1079, 445, 1107, 1209, 1107, + /* 630 */ 1079, 1080, 1081, 515, 512, 426, 1079, 1080, 1081, 1017, + /* 640 */ 512, 109, 109, 109, 109, 108, 108, 107, 107, 107, + /* 650 */ 106, 401, 1052, 515, 50, 50, 515, 1079, 1080, 1081, + /* 660 */ 828, 370, 1051, 379, 411, 1064, 1358, 207, 408, 773, + /* 670 */ 829, 1079, 1080, 1081, 64, 64, 322, 64, 64, 1302, + /* 680 */ 947, 411, 410, 1358, 1360, 112, 113, 103, 1100, 1100, + /* 690 */ 953, 956, 946, 946, 110, 110, 111, 111, 111, 111, + /* 700 */ 294, 482, 515, 1037, 1487, 515, 434, 1487, 354, 1120, + /* 710 */ 483, 996, 913, 485, 466, 996, 132, 178, 33, 450, + /* 720 */ 1203, 136, 406, 64, 64, 479, 64, 64, 419, 369, + /* 730 */ 283, 1146, 252, 252, 109, 109, 109, 109, 108, 108, + /* 740 */ 107, 107, 107, 106, 401, 512, 224, 440, 411, 266, + /* 750 */ 1358, 266, 252, 252, 370, 296, 416, 284, 934, 396, + /* 760 */ 976, 470, 400, 252, 252, 512, 9, 473, 231, 500, + /* 770 */ 354, 1036, 1035, 1488, 355, 374, 512, 1121, 112, 113, + /* 780 */ 103, 1100, 1100, 953, 956, 946, 946, 110, 110, 111, + /* 790 */ 111, 111, 111, 252, 252, 1015, 515, 1347, 295, 252, + /* 800 */ 252, 252, 252, 1098, 375, 249, 512, 445, 872, 322, + /* 810 */ 1016, 480, 512, 195, 512, 434, 273, 15, 15, 515, + /* 820 */ 314, 515, 95, 515, 93, 1017, 367, 109, 109, 109, + /* 830 */ 109, 108, 108, 107, 107, 107, 106, 401, 515, 1121, + /* 840 */ 39, 39, 51, 51, 52, 52, 503, 370, 515, 1204, + /* 850 */ 1098, 918, 439, 341, 133, 436, 223, 222, 221, 53, + /* 860 */ 53, 322, 1400, 761, 762, 763, 515, 370, 88, 54, + /* 870 */ 54, 112, 113, 103, 1100, 1100, 953, 956, 946, 946, + /* 880 */ 110, 110, 111, 111, 111, 111, 407, 55, 55, 196, + /* 890 */ 515, 112, 113, 103, 1100, 1100, 953, 956, 946, 946, + /* 900 */ 110, 110, 111, 111, 111, 111, 135, 264, 1149, 376, + /* 910 */ 515, 40, 40, 515, 872, 515, 993, 515, 993, 116, + /* 920 */ 109, 109, 109, 109, 108, 108, 107, 107, 107, 106, + /* 930 */ 401, 41, 41, 515, 43, 43, 44, 44, 56, 56, + /* 940 */ 109, 109, 109, 109, 108, 108, 107, 107, 107, 106, + /* 950 */ 401, 515, 379, 515, 57, 57, 515, 799, 515, 379, + /* 960 */ 515, 445, 200, 515, 323, 515, 1397, 515, 1459, 515, + /* 970 */ 1287, 817, 58, 58, 14, 14, 515, 59, 59, 118, + /* 980 */ 118, 60, 60, 515, 46, 46, 61, 61, 62, 62, + /* 990 */ 47, 47, 515, 190, 189, 91, 515, 140, 140, 515, + /* 1000 */ 394, 515, 277, 1200, 141, 141, 515, 1115, 515, 992, + /* 1010 */ 515, 992, 515, 69, 69, 370, 278, 48, 48, 259, + /* 1020 */ 65, 65, 119, 119, 246, 246, 260, 66, 66, 120, + /* 1030 */ 120, 121, 121, 117, 117, 370, 515, 512, 383, 112, + /* 1040 */ 113, 103, 1100, 1100, 953, 956, 946, 946, 110, 110, + /* 1050 */ 111, 111, 111, 111, 515, 872, 515, 139, 139, 112, + /* 1060 */ 113, 103, 1100, 1100, 953, 956, 946, 946, 110, 110, + /* 1070 */ 111, 111, 111, 111, 1287, 138, 138, 125, 125, 515, + /* 1080 */ 12, 515, 281, 1287, 515, 445, 131, 1287, 109, 109, + /* 1090 */ 109, 109, 108, 108, 107, 107, 107, 106, 401, 515, + /* 1100 */ 124, 124, 122, 122, 515, 123, 123, 515, 109, 109, + /* 1110 */ 109, 109, 108, 108, 107, 107, 107, 106, 401, 515, + /* 1120 */ 68, 68, 463, 783, 515, 70, 70, 302, 67, 67, + /* 1130 */ 1032, 253, 253, 356, 1287, 191, 196, 1433, 465, 1301, + /* 1140 */ 38, 38, 384, 94, 512, 42, 42, 177, 848, 274, + /* 1150 */ 506, 385, 420, 847, 1356, 441, 508, 376, 377, 153, + /* 1160 */ 423, 872, 432, 370, 224, 251, 194, 887, 182, 293, + /* 1170 */ 783, 848, 88, 254, 466, 888, 847, 915, 807, 806, + /* 1180 */ 230, 1241, 910, 370, 17, 413, 797, 112, 113, 103, + /* 1190 */ 1100, 1100, 953, 956, 946, 946, 110, 110, 111, 111, + /* 1200 */ 111, 111, 395, 814, 815, 1175, 983, 112, 101, 103, + /* 1210 */ 1100, 1100, 953, 956, 946, 946, 110, 110, 111, 111, + /* 1220 */ 111, 111, 375, 422, 427, 429, 298, 230, 230, 88, + /* 1230 */ 1240, 451, 312, 797, 226, 88, 109, 109, 109, 109, + /* 1240 */ 108, 108, 107, 107, 107, 106, 401, 86, 433, 979, + /* 1250 */ 927, 881, 226, 983, 230, 415, 109, 109, 109, 109, + /* 1260 */ 108, 108, 107, 107, 107, 106, 401, 320, 845, 781, + /* 1270 */ 846, 100, 130, 100, 1403, 290, 370, 319, 1377, 1376, + /* 1280 */ 437, 1449, 299, 1237, 303, 306, 308, 310, 1188, 1174, + /* 1290 */ 1173, 1172, 315, 324, 325, 1228, 370, 927, 1249, 271, + /* 1300 */ 1286, 113, 103, 1100, 1100, 953, 956, 946, 946, 110, + /* 1310 */ 110, 111, 111, 111, 111, 1224, 1235, 502, 501, 1292, + /* 1320 */ 1221, 1155, 103, 1100, 1100, 953, 956, 946, 946, 110, + /* 1330 */ 110, 111, 111, 111, 111, 1148, 1137, 1136, 1138, 1443, + /* 1340 */ 446, 244, 184, 98, 507, 188, 4, 353, 327, 109, + /* 1350 */ 109, 109, 109, 108, 108, 107, 107, 107, 106, 401, + /* 1360 */ 510, 329, 331, 199, 414, 456, 292, 285, 318, 109, + /* 1370 */ 109, 109, 109, 108, 108, 107, 107, 107, 106, 401, + /* 1380 */ 11, 1271, 1279, 402, 361, 192, 1171, 1351, 431, 505, + /* 1390 */ 346, 1350, 333, 98, 507, 504, 4, 187, 1446, 1115, + /* 1400 */ 233, 1396, 155, 1394, 1112, 152, 72, 75, 378, 425, + /* 1410 */ 510, 165, 149, 157, 933, 1276, 86, 30, 1268, 417, + /* 1420 */ 96, 96, 8, 160, 161, 162, 163, 97, 418, 402, + /* 1430 */ 517, 516, 449, 402, 923, 210, 358, 424, 1282, 438, + /* 1440 */ 169, 214, 360, 1345, 80, 504, 31, 444, 1365, 301, + /* 1450 */ 245, 274, 506, 216, 174, 305, 488, 447, 217, 462, + /* 1460 */ 1139, 487, 218, 363, 933, 923, 923, 925, 926, 24, + /* 1470 */ 96, 96, 1191, 1190, 1189, 391, 1182, 97, 1163, 402, + /* 1480 */ 517, 516, 799, 364, 923, 1162, 317, 1161, 98, 507, + /* 1490 */ 1181, 4, 1458, 472, 393, 269, 270, 475, 481, 1232, + /* 1500 */ 85, 1233, 326, 328, 232, 510, 495, 1231, 330, 98, + /* 1510 */ 507, 1230, 4, 486, 335, 923, 923, 925, 926, 24, + /* 1520 */ 1435, 1068, 404, 181, 336, 256, 510, 115, 402, 332, + /* 1530 */ 352, 352, 351, 241, 349, 1214, 1414, 770, 338, 10, + /* 1540 */ 504, 340, 272, 92, 1331, 1213, 87, 183, 484, 402, + /* 1550 */ 201, 488, 280, 239, 344, 345, 489, 1145, 29, 933, + /* 1560 */ 279, 504, 1074, 518, 240, 96, 96, 242, 243, 519, + /* 1570 */ 1134, 1129, 97, 154, 402, 517, 516, 372, 373, 923, + /* 1580 */ 933, 142, 143, 128, 1381, 267, 96, 96, 852, 757, + /* 1590 */ 203, 144, 403, 97, 1382, 402, 517, 516, 204, 1380, + /* 1600 */ 923, 146, 1379, 1159, 1158, 71, 1156, 276, 202, 185, + /* 1610 */ 923, 923, 925, 926, 24, 198, 257, 126, 991, 989, + /* 1620 */ 907, 98, 507, 156, 4, 145, 158, 206, 831, 209, + /* 1630 */ 291, 923, 923, 925, 926, 24, 1005, 911, 510, 164, + /* 1640 */ 147, 380, 371, 382, 166, 76, 77, 274, 506, 148, + /* 1650 */ 78, 79, 1008, 211, 212, 1004, 137, 213, 18, 300, + /* 1660 */ 230, 402, 997, 1109, 443, 215, 32, 170, 171, 772, + /* 1670 */ 409, 448, 319, 504, 219, 172, 452, 81, 19, 457, + /* 1680 */ 313, 20, 82, 268, 488, 150, 810, 179, 83, 487, + /* 1690 */ 464, 151, 933, 180, 959, 84, 1040, 34, 96, 96, + /* 1700 */ 471, 1041, 35, 474, 193, 97, 248, 402, 517, 516, + /* 1710 */ 1068, 404, 923, 250, 256, 880, 229, 175, 875, 352, + /* 1720 */ 352, 351, 241, 349, 100, 21, 770, 22, 1054, 1056, + /* 1730 */ 7, 98, 507, 1045, 4, 337, 1058, 23, 974, 201, + /* 1740 */ 176, 280, 88, 923, 923, 925, 926, 24, 510, 279, + /* 1750 */ 960, 958, 962, 1014, 963, 1013, 235, 234, 25, 36, + /* 1760 */ 99, 90, 507, 928, 4, 511, 350, 782, 26, 841, + /* 1770 */ 236, 402, 347, 1069, 237, 1125, 1125, 1451, 510, 203, + /* 1780 */ 1450, 1125, 1125, 504, 1125, 1125, 1125, 204, 1125, 1125, + /* 1790 */ 146, 1125, 1125, 1125, 1125, 1125, 1125, 202, 1125, 1125, + /* 1800 */ 1125, 402, 933, 1125, 1125, 1125, 1125, 1125, 96, 96, + /* 1810 */ 1125, 1125, 1125, 504, 1125, 97, 1125, 402, 517, 516, + /* 1820 */ 1125, 1125, 923, 1125, 1125, 1125, 1125, 1125, 1125, 1125, + /* 1830 */ 1125, 371, 933, 1125, 1125, 1125, 274, 506, 96, 96, + /* 1840 */ 1125, 1125, 1125, 1125, 1125, 97, 1125, 402, 517, 516, + /* 1850 */ 1125, 1125, 923, 923, 923, 925, 926, 24, 1125, 409, + /* 1860 */ 1125, 1125, 1125, 256, 1125, 1125, 1125, 1125, 352, 352, + /* 1870 */ 351, 241, 349, 1125, 1125, 770, 1125, 1125, 1125, 1125, + /* 1880 */ 1125, 1125, 1125, 923, 923, 925, 926, 24, 201, 1125, + /* 1890 */ 280, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 279, 1125, + /* 1900 */ 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, + /* 1910 */ 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, + /* 1920 */ 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 203, 1125, + /* 1930 */ 1125, 1125, 1125, 1125, 1125, 1125, 204, 1125, 1125, 146, + /* 1940 */ 1125, 1125, 1125, 1125, 1125, 1125, 202, 1125, 1125, 1125, + /* 1950 */ 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, + /* 1960 */ 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, + /* 1970 */ 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, + /* 1980 */ 371, 1125, 1125, 1125, 1125, 274, 506, 1125, 1125, 1125, + /* 1990 */ 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, + /* 2000 */ 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 409, }; static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 144, 145, 146, 147, 172, 222, 223, 224, 222, 223, - /* 10 */ 224, 152, 180, 152, 148, 149, 152, 173, 176, 19, - /* 20 */ 154, 173, 156, 152, 163, 242, 152, 163, 176, 163, - /* 30 */ 26, 31, 173, 174, 173, 174, 173, 173, 174, 39, - /* 40 */ 1, 2, 152, 43, 44, 45, 46, 47, 48, 49, - /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 197, 169, - /* 60 */ 170, 197, 188, 197, 222, 223, 224, 208, 209, 208, - /* 70 */ 209, 19, 208, 152, 222, 223, 224, 22, 26, 24, - /* 80 */ 46, 47, 48, 49, 84, 85, 86, 87, 88, 89, - /* 90 */ 90, 91, 92, 93, 94, 43, 44, 45, 46, 47, - /* 100 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - /* 110 */ 106, 245, 157, 88, 89, 90, 91, 92, 93, 94, - /* 120 */ 68, 231, 251, 19, 84, 85, 86, 87, 88, 89, - /* 130 */ 90, 91, 92, 93, 94, 101, 84, 85, 86, 87, - /* 140 */ 88, 89, 90, 91, 92, 93, 94, 43, 44, 45, - /* 150 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - /* 160 */ 56, 57, 90, 91, 92, 93, 94, 82, 79, 99, - /* 170 */ 66, 200, 102, 103, 104, 19, 168, 169, 170, 152, - /* 180 */ 24, 210, 97, 113, 229, 59, 101, 232, 84, 85, - /* 190 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 43, - /* 200 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - /* 210 */ 54, 55, 56, 57, 152, 188, 152, 132, 133, 134, - /* 220 */ 93, 94, 96, 97, 98, 99, 152, 19, 102, 103, - /* 230 */ 104, 23, 94, 72, 79, 173, 174, 173, 174, 113, - /* 240 */ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - /* 250 */ 94, 43, 44, 45, 46, 47, 48, 49, 50, 51, - /* 260 */ 52, 53, 54, 55, 56, 57, 152, 171, 152, 108, - /* 270 */ 109, 110, 208, 209, 119, 120, 152, 180, 181, 19, - /* 280 */ 119, 120, 152, 23, 152, 152, 189, 173, 174, 173, - /* 290 */ 174, 59, 84, 85, 86, 87, 88, 89, 90, 91, - /* 300 */ 92, 93, 94, 43, 44, 45, 46, 47, 48, 49, - /* 310 */ 50, 51, 52, 53, 54, 55, 56, 57, 222, 223, - /* 320 */ 224, 186, 208, 209, 208, 209, 194, 194, 96, 97, - /* 330 */ 98, 19, 168, 169, 170, 23, 88, 89, 163, 59, - /* 340 */ 0, 1, 2, 219, 84, 85, 86, 87, 88, 89, - /* 350 */ 90, 91, 92, 93, 94, 43, 44, 45, 46, 47, - /* 360 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - /* 370 */ 90, 152, 197, 195, 196, 243, 96, 97, 98, 196, - /* 380 */ 132, 11, 134, 19, 182, 207, 115, 23, 117, 118, - /* 390 */ 207, 163, 173, 174, 152, 220, 84, 85, 86, 87, - /* 400 */ 88, 89, 90, 91, 92, 93, 94, 43, 44, 45, - /* 410 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - /* 420 */ 56, 57, 152, 16, 152, 197, 171, 208, 22, 23, - /* 430 */ 22, 23, 26, 16, 26, 19, 7, 8, 9, 23, - /* 440 */ 212, 213, 152, 173, 174, 173, 174, 19, 84, 85, - /* 450 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 43, - /* 460 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - /* 470 */ 54, 55, 56, 57, 46, 152, 109, 110, 208, 109, - /* 480 */ 110, 152, 75, 152, 77, 22, 23, 19, 233, 83, - /* 490 */ 152, 83, 75, 238, 77, 164, 173, 174, 226, 59, - /* 500 */ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - /* 510 */ 94, 43, 44, 45, 46, 47, 48, 49, 50, 51, - /* 520 */ 52, 53, 54, 55, 56, 57, 108, 109, 110, 152, - /* 530 */ 152, 152, 22, 22, 23, 107, 96, 97, 98, 160, - /* 540 */ 112, 251, 19, 164, 22, 152, 83, 140, 219, 152, - /* 550 */ 173, 174, 84, 85, 86, 87, 88, 89, 90, 91, - /* 560 */ 92, 93, 94, 59, 124, 152, 43, 44, 45, 46, - /* 570 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - /* 580 */ 57, 59, 169, 170, 119, 120, 82, 108, 109, 110, - /* 590 */ 191, 192, 191, 192, 83, 248, 249, 19, 88, 89, - /* 600 */ 96, 97, 24, 152, 152, 101, 138, 84, 85, 86, - /* 610 */ 87, 88, 89, 90, 91, 92, 93, 94, 96, 97, - /* 620 */ 98, 43, 44, 45, 46, 47, 48, 49, 50, 51, - /* 630 */ 52, 53, 54, 55, 56, 57, 132, 133, 134, 152, - /* 640 */ 152, 46, 152, 26, 231, 194, 194, 146, 147, 19, - /* 650 */ 152, 116, 152, 72, 152, 152, 121, 152, 152, 152, - /* 660 */ 79, 138, 84, 85, 86, 87, 88, 89, 90, 91, - /* 670 */ 92, 93, 94, 43, 44, 45, 46, 47, 48, 49, - /* 680 */ 50, 51, 52, 53, 54, 55, 56, 57, 152, 108, - /* 690 */ 23, 152, 194, 26, 194, 152, 194, 194, 137, 152, - /* 700 */ 139, 19, 107, 166, 167, 218, 218, 29, 218, 173, - /* 710 */ 174, 33, 173, 174, 84, 85, 86, 87, 88, 89, - /* 720 */ 90, 91, 92, 93, 94, 43, 44, 45, 46, 47, - /* 730 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - /* 740 */ 152, 194, 64, 171, 239, 239, 239, 130, 166, 167, - /* 750 */ 212, 213, 19, 23, 246, 247, 26, 59, 26, 152, - /* 760 */ 163, 218, 163, 163, 163, 98, 84, 85, 86, 87, - /* 770 */ 88, 89, 90, 91, 92, 93, 94, 44, 45, 46, - /* 780 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - /* 790 */ 57, 124, 26, 79, 197, 97, 197, 197, 197, 31, - /* 800 */ 152, 23, 19, 19, 26, 19, 218, 39, 23, 21, - /* 810 */ 238, 26, 163, 163, 100, 59, 163, 84, 85, 86, - /* 820 */ 87, 88, 89, 90, 91, 92, 93, 94, 45, 46, - /* 830 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - /* 840 */ 57, 19, 20, 152, 22, 23, 197, 197, 23, 19, - /* 850 */ 197, 26, 152, 97, 23, 123, 23, 26, 36, 26, - /* 860 */ 152, 152, 19, 20, 98, 22, 78, 84, 85, 86, - /* 870 */ 87, 88, 89, 90, 91, 92, 93, 94, 94, 36, - /* 880 */ 152, 59, 96, 99, 100, 101, 102, 103, 104, 105, - /* 890 */ 124, 103, 70, 100, 101, 23, 112, 12, 26, 12, - /* 900 */ 23, 79, 59, 26, 82, 101, 22, 7, 8, 152, - /* 910 */ 88, 89, 27, 70, 27, 152, 112, 95, 96, 97, - /* 920 */ 98, 152, 79, 101, 22, 82, 96, 42, 140, 42, - /* 930 */ 182, 88, 89, 19, 20, 132, 22, 134, 95, 96, - /* 940 */ 97, 98, 23, 59, 101, 26, 22, 62, 152, 62, - /* 950 */ 36, 22, 59, 24, 132, 133, 134, 135, 136, 72, - /* 960 */ 5, 59, 152, 22, 71, 10, 11, 12, 13, 14, - /* 970 */ 152, 152, 17, 59, 182, 132, 133, 134, 135, 136, - /* 980 */ 96, 97, 98, 59, 70, 30, 152, 32, 59, 96, - /* 990 */ 97, 98, 173, 174, 53, 40, 82, 152, 96, 97, - /* 1000 */ 98, 90, 88, 89, 90, 24, 187, 173, 174, 95, - /* 1010 */ 96, 97, 98, 152, 152, 101, 19, 20, 152, 22, - /* 1020 */ 96, 97, 98, 152, 69, 59, 97, 116, 59, 214, - /* 1030 */ 152, 76, 121, 36, 79, 80, 19, 20, 152, 22, - /* 1040 */ 59, 132, 59, 134, 173, 174, 132, 133, 134, 135, - /* 1050 */ 136, 173, 174, 36, 234, 152, 59, 152, 187, 173, - /* 1060 */ 174, 211, 96, 97, 98, 187, 97, 70, 23, 114, - /* 1070 */ 152, 26, 23, 187, 23, 26, 59, 26, 97, 82, - /* 1080 */ 97, 22, 164, 152, 152, 88, 89, 70, 192, 152, - /* 1090 */ 124, 152, 95, 96, 97, 98, 141, 152, 101, 82, - /* 1100 */ 152, 152, 184, 152, 186, 88, 89, 199, 54, 55, - /* 1110 */ 56, 57, 95, 96, 97, 98, 152, 152, 101, 152, - /* 1120 */ 152, 173, 174, 235, 54, 55, 56, 57, 58, 132, - /* 1130 */ 133, 134, 135, 136, 211, 150, 59, 211, 84, 85, - /* 1140 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 132, - /* 1150 */ 133, 134, 135, 136, 84, 85, 86, 87, 88, 89, - /* 1160 */ 90, 91, 92, 93, 94, 88, 89, 195, 196, 35, - /* 1170 */ 211, 211, 152, 96, 97, 98, 152, 100, 198, 207, - /* 1180 */ 171, 122, 240, 152, 107, 215, 109, 240, 202, 215, - /* 1190 */ 202, 152, 220, 173, 174, 177, 185, 173, 174, 65, - /* 1200 */ 152, 176, 152, 181, 173, 174, 215, 73, 176, 132, - /* 1210 */ 228, 134, 173, 174, 176, 152, 201, 152, 199, 155, - /* 1220 */ 152, 173, 174, 173, 174, 60, 152, 122, 244, 38, - /* 1230 */ 159, 159, 152, 241, 241, 152, 173, 174, 173, 174, - /* 1240 */ 152, 173, 174, 152, 159, 111, 152, 173, 174, 152, - /* 1250 */ 22, 152, 43, 173, 174, 152, 173, 174, 152, 190, - /* 1260 */ 130, 173, 174, 152, 173, 174, 152, 173, 174, 202, - /* 1270 */ 173, 174, 173, 174, 152, 18, 173, 174, 152, 173, - /* 1280 */ 174, 152, 221, 152, 173, 174, 193, 173, 174, 152, - /* 1290 */ 158, 152, 159, 152, 22, 173, 174, 152, 18, 173, - /* 1300 */ 174, 152, 173, 174, 173, 174, 152, 221, 152, 193, - /* 1310 */ 173, 174, 173, 174, 173, 174, 152, 193, 173, 174, - /* 1320 */ 152, 193, 173, 174, 158, 152, 190, 173, 174, 173, - /* 1330 */ 174, 59, 152, 190, 159, 137, 152, 173, 174, 152, - /* 1340 */ 202, 173, 174, 61, 152, 237, 173, 174, 202, 236, - /* 1350 */ 22, 107, 159, 173, 174, 159, 178, 173, 174, 158, - /* 1360 */ 173, 174, 159, 158, 158, 173, 174, 159, 178, 97, - /* 1370 */ 175, 63, 175, 106, 175, 125, 217, 183, 178, 175, - /* 1380 */ 107, 159, 22, 216, 177, 175, 217, 175, 175, 217, - /* 1390 */ 216, 159, 216, 216, 183, 225, 217, 137, 227, 178, - /* 1400 */ 94, 178, 126, 129, 25, 128, 127, 162, 206, 26, - /* 1410 */ 161, 230, 230, 13, 153, 153, 6, 151, 203, 205, - /* 1420 */ 204, 202, 151, 165, 171, 171, 151, 171, 165, 165, - /* 1430 */ 171, 179, 4, 250, 179, 250, 247, 3, 22, 171, - /* 1440 */ 171, 171, 142, 81, 15, 23, 16, 23, 131, 171, - /* 1450 */ 120, 111, 123, 20, 16, 1, 125, 123, 131, 53, - /* 1460 */ 53, 53, 53, 111, 96, 34, 122, 1, 5, 22, - /* 1470 */ 107, 67, 140, 74, 26, 24, 41, 107, 67, 20, - /* 1480 */ 19, 112, 105, 66, 22, 66, 22, 22, 28, 66, - /* 1490 */ 23, 22, 22, 37, 23, 23, 23, 116, 22, 22, - /* 1500 */ 26, 23, 122, 23, 23, 26, 22, 11, 96, 34, - /* 1510 */ 124, 26, 26, 23, 23, 23, 34, 34, 23, 26, - /* 1520 */ 23, 22, 24, 23, 22, 122, 23, 26, 22, 24, - /* 1530 */ 23, 22, 15, 23, 23, 22, 122, 122, 23, 1, - /* 1540 */ 122, 252, 252, 252, 252, 252, 252, 252, 252, 252, - /* 1550 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, - /* 1560 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, - /* 1570 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, - /* 1580 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, - /* 1590 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, - /* 1600 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, - /* 1610 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, - /* 1620 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, - /* 1630 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, - /* 1640 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, - /* 1650 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, - /* 1660 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, - /* 1670 */ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, - /* 1680 */ 252, 252, 252, 252, + /* 0 */ 184, 238, 239, 240, 238, 239, 240, 163, 155, 156, + /* 10 */ 157, 158, 159, 160, 163, 191, 192, 183, 165, 19, + /* 20 */ 167, 258, 202, 203, 200, 191, 163, 174, 184, 185, + /* 30 */ 174, 31, 163, 163, 171, 184, 185, 35, 175, 39, + /* 40 */ 179, 180, 181, 43, 44, 45, 46, 47, 48, 49, + /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 184, 206, + /* 60 */ 207, 163, 206, 207, 220, 163, 16, 163, 66, 163, + /* 70 */ 59, 270, 219, 229, 273, 219, 74, 208, 174, 223, + /* 80 */ 224, 163, 184, 185, 163, 232, 184, 185, 184, 185, + /* 90 */ 184, 185, 92, 93, 94, 95, 96, 97, 98, 99, + /* 100 */ 100, 101, 102, 233, 198, 184, 185, 96, 97, 163, + /* 110 */ 206, 207, 19, 163, 261, 104, 105, 106, 107, 198, + /* 120 */ 109, 119, 220, 219, 220, 274, 275, 77, 117, 79, + /* 130 */ 187, 229, 19, 229, 184, 185, 43, 44, 45, 46, + /* 140 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + /* 150 */ 57, 233, 141, 134, 143, 102, 43, 44, 45, 46, + /* 160 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + /* 170 */ 57, 152, 274, 216, 276, 218, 83, 163, 85, 233, + /* 180 */ 67, 238, 239, 240, 11, 92, 93, 94, 95, 96, + /* 190 */ 97, 98, 99, 100, 101, 102, 19, 54, 55, 56, + /* 200 */ 57, 58, 163, 26, 163, 92, 93, 94, 95, 96, + /* 210 */ 97, 98, 99, 100, 101, 102, 54, 55, 56, 57, + /* 220 */ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + /* 230 */ 53, 54, 55, 56, 57, 92, 93, 94, 95, 96, + /* 240 */ 97, 98, 99, 100, 101, 102, 69, 96, 97, 98, + /* 250 */ 99, 100, 101, 102, 92, 93, 94, 95, 96, 97, + /* 260 */ 98, 99, 100, 101, 102, 81, 179, 180, 181, 92, + /* 270 */ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + /* 280 */ 163, 267, 268, 163, 22, 23, 59, 163, 26, 19, + /* 290 */ 117, 118, 175, 109, 24, 59, 92, 93, 94, 95, + /* 300 */ 96, 97, 98, 99, 100, 101, 102, 268, 184, 185, + /* 310 */ 269, 127, 128, 43, 44, 45, 46, 47, 48, 49, + /* 320 */ 50, 51, 52, 53, 54, 55, 56, 57, 157, 158, + /* 330 */ 159, 160, 105, 106, 107, 163, 165, 59, 167, 184, + /* 340 */ 90, 105, 106, 107, 108, 174, 73, 111, 112, 113, + /* 350 */ 19, 22, 163, 91, 81, 163, 106, 121, 81, 132, + /* 360 */ 110, 16, 92, 93, 94, 95, 96, 97, 98, 99, + /* 370 */ 100, 101, 102, 184, 185, 255, 98, 206, 207, 26, + /* 380 */ 101, 102, 19, 105, 106, 107, 23, 198, 59, 116, + /* 390 */ 219, 141, 142, 143, 24, 163, 187, 205, 274, 275, + /* 400 */ 127, 128, 182, 232, 127, 128, 43, 44, 45, 46, + /* 410 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + /* 420 */ 57, 158, 77, 160, 79, 59, 26, 182, 165, 59, + /* 430 */ 167, 199, 261, 102, 105, 106, 107, 174, 72, 108, + /* 440 */ 109, 110, 111, 112, 113, 114, 59, 238, 239, 240, + /* 450 */ 123, 120, 125, 126, 163, 92, 93, 94, 95, 96, + /* 460 */ 97, 98, 99, 100, 101, 102, 163, 163, 163, 206, + /* 470 */ 207, 105, 106, 107, 254, 19, 106, 90, 197, 23, + /* 480 */ 127, 128, 219, 238, 239, 240, 22, 184, 185, 184, + /* 490 */ 185, 22, 105, 106, 149, 232, 205, 110, 163, 43, + /* 500 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + /* 510 */ 54, 55, 56, 57, 98, 99, 100, 101, 102, 184, + /* 520 */ 185, 163, 53, 59, 261, 220, 117, 118, 141, 142, + /* 530 */ 143, 131, 174, 59, 229, 116, 117, 118, 163, 59, + /* 540 */ 163, 163, 184, 185, 59, 242, 72, 22, 92, 93, + /* 550 */ 94, 95, 96, 97, 98, 99, 100, 101, 102, 184, + /* 560 */ 185, 24, 184, 185, 206, 207, 202, 203, 19, 105, + /* 570 */ 106, 107, 23, 198, 22, 174, 198, 219, 220, 105, + /* 580 */ 106, 107, 96, 97, 59, 105, 106, 107, 22, 174, + /* 590 */ 59, 106, 43, 44, 45, 46, 47, 48, 49, 50, + /* 600 */ 51, 52, 53, 54, 55, 56, 57, 206, 207, 12, + /* 610 */ 108, 59, 132, 111, 112, 113, 46, 47, 48, 49, + /* 620 */ 219, 206, 207, 121, 27, 59, 163, 141, 207, 143, + /* 630 */ 105, 106, 107, 163, 219, 234, 105, 106, 107, 42, + /* 640 */ 219, 92, 93, 94, 95, 96, 97, 98, 99, 100, + /* 650 */ 101, 102, 76, 163, 184, 185, 163, 105, 106, 107, + /* 660 */ 63, 19, 86, 163, 163, 23, 163, 130, 205, 21, + /* 670 */ 73, 105, 106, 107, 184, 185, 163, 184, 185, 237, + /* 680 */ 110, 180, 181, 180, 181, 43, 44, 45, 46, 47, + /* 690 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + /* 700 */ 174, 163, 163, 22, 23, 163, 163, 26, 22, 23, + /* 710 */ 220, 29, 73, 220, 272, 33, 22, 163, 24, 19, + /* 720 */ 174, 208, 259, 184, 185, 19, 184, 185, 80, 175, + /* 730 */ 230, 174, 206, 207, 92, 93, 94, 95, 96, 97, + /* 740 */ 98, 99, 100, 101, 102, 219, 46, 65, 247, 195, + /* 750 */ 247, 197, 206, 207, 19, 116, 117, 118, 23, 220, + /* 760 */ 112, 174, 220, 206, 207, 219, 22, 174, 24, 174, + /* 770 */ 22, 23, 91, 264, 265, 168, 219, 91, 43, 44, + /* 780 */ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + /* 790 */ 55, 56, 57, 206, 207, 12, 163, 149, 255, 206, + /* 800 */ 207, 206, 207, 59, 104, 23, 219, 163, 26, 163, + /* 810 */ 27, 105, 219, 163, 219, 163, 211, 184, 185, 163, + /* 820 */ 120, 163, 146, 163, 148, 42, 221, 92, 93, 94, + /* 830 */ 95, 96, 97, 98, 99, 100, 101, 102, 163, 91, + /* 840 */ 184, 185, 184, 185, 184, 185, 63, 19, 163, 205, + /* 850 */ 106, 23, 245, 163, 208, 248, 116, 117, 118, 184, + /* 860 */ 185, 163, 163, 7, 8, 9, 163, 19, 26, 184, + /* 870 */ 185, 43, 44, 45, 46, 47, 48, 49, 50, 51, + /* 880 */ 52, 53, 54, 55, 56, 57, 163, 184, 185, 107, + /* 890 */ 163, 43, 44, 45, 46, 47, 48, 49, 50, 51, + /* 900 */ 52, 53, 54, 55, 56, 57, 208, 255, 177, 178, + /* 910 */ 163, 184, 185, 163, 132, 163, 141, 163, 143, 22, + /* 920 */ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + /* 930 */ 102, 184, 185, 163, 184, 185, 184, 185, 184, 185, + /* 940 */ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + /* 950 */ 102, 163, 163, 163, 184, 185, 163, 115, 163, 163, + /* 960 */ 163, 163, 15, 163, 163, 163, 163, 163, 23, 163, + /* 970 */ 163, 26, 184, 185, 184, 185, 163, 184, 185, 184, + /* 980 */ 185, 184, 185, 163, 184, 185, 184, 185, 184, 185, + /* 990 */ 184, 185, 163, 96, 97, 147, 163, 184, 185, 163, + /* 1000 */ 199, 163, 163, 205, 184, 185, 163, 60, 163, 141, + /* 1010 */ 163, 143, 163, 184, 185, 19, 163, 184, 185, 230, + /* 1020 */ 184, 185, 184, 185, 206, 207, 230, 184, 185, 184, + /* 1030 */ 185, 184, 185, 184, 185, 19, 163, 219, 231, 43, + /* 1040 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + /* 1050 */ 54, 55, 56, 57, 163, 26, 163, 184, 185, 43, + /* 1060 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + /* 1070 */ 54, 55, 56, 57, 163, 184, 185, 184, 185, 163, + /* 1080 */ 182, 163, 163, 163, 163, 163, 22, 163, 92, 93, + /* 1090 */ 94, 95, 96, 97, 98, 99, 100, 101, 102, 163, + /* 1100 */ 184, 185, 184, 185, 163, 184, 185, 163, 92, 93, + /* 1110 */ 94, 95, 96, 97, 98, 99, 100, 101, 102, 163, + /* 1120 */ 184, 185, 98, 59, 163, 184, 185, 205, 184, 185, + /* 1130 */ 23, 206, 207, 26, 163, 26, 107, 153, 154, 237, + /* 1140 */ 184, 185, 231, 147, 219, 184, 185, 249, 124, 127, + /* 1150 */ 128, 231, 254, 129, 163, 231, 177, 178, 262, 263, + /* 1160 */ 118, 132, 19, 19, 46, 223, 224, 31, 24, 23, + /* 1170 */ 106, 124, 26, 22, 272, 39, 129, 23, 109, 110, + /* 1180 */ 26, 163, 140, 19, 22, 234, 59, 43, 44, 45, + /* 1190 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + /* 1200 */ 56, 57, 231, 7, 8, 193, 59, 43, 44, 45, + /* 1210 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + /* 1220 */ 56, 57, 104, 61, 23, 23, 23, 26, 26, 26, + /* 1230 */ 163, 23, 23, 106, 26, 26, 92, 93, 94, 95, + /* 1240 */ 96, 97, 98, 99, 100, 101, 102, 138, 105, 23, + /* 1250 */ 59, 23, 26, 106, 26, 163, 92, 93, 94, 95, + /* 1260 */ 96, 97, 98, 99, 100, 101, 102, 110, 23, 23, + /* 1270 */ 23, 26, 26, 26, 163, 163, 19, 120, 163, 163, + /* 1280 */ 163, 130, 163, 163, 163, 163, 163, 163, 163, 193, + /* 1290 */ 193, 163, 163, 163, 163, 225, 19, 106, 163, 222, + /* 1300 */ 163, 44, 45, 46, 47, 48, 49, 50, 51, 52, + /* 1310 */ 53, 54, 55, 56, 57, 163, 163, 203, 163, 163, + /* 1320 */ 222, 163, 45, 46, 47, 48, 49, 50, 51, 52, + /* 1330 */ 53, 54, 55, 56, 57, 163, 163, 163, 163, 163, + /* 1340 */ 251, 250, 209, 19, 20, 182, 22, 161, 222, 92, + /* 1350 */ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + /* 1360 */ 36, 222, 222, 260, 226, 188, 256, 226, 187, 92, + /* 1370 */ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + /* 1380 */ 210, 213, 213, 59, 213, 196, 192, 187, 256, 244, + /* 1390 */ 212, 187, 226, 19, 20, 71, 22, 210, 166, 60, + /* 1400 */ 130, 170, 260, 170, 38, 81, 257, 257, 170, 104, + /* 1410 */ 36, 22, 43, 201, 90, 236, 138, 235, 213, 18, + /* 1420 */ 96, 97, 48, 204, 204, 204, 204, 103, 170, 105, + /* 1430 */ 106, 107, 18, 59, 110, 169, 213, 213, 201, 170, + /* 1440 */ 201, 169, 236, 213, 146, 71, 235, 62, 253, 252, + /* 1450 */ 170, 127, 128, 169, 22, 170, 82, 189, 169, 104, + /* 1460 */ 170, 87, 169, 189, 90, 141, 142, 143, 144, 145, + /* 1470 */ 96, 97, 186, 186, 186, 64, 194, 103, 186, 105, + /* 1480 */ 106, 107, 115, 189, 110, 188, 186, 186, 19, 20, + /* 1490 */ 194, 22, 186, 189, 102, 246, 246, 189, 133, 228, + /* 1500 */ 104, 228, 227, 227, 170, 36, 134, 228, 227, 19, + /* 1510 */ 20, 228, 22, 84, 271, 141, 142, 143, 144, 145, + /* 1520 */ 0, 1, 2, 216, 22, 5, 36, 137, 59, 227, + /* 1530 */ 10, 11, 12, 13, 14, 217, 269, 17, 216, 22, + /* 1540 */ 71, 170, 243, 146, 241, 217, 136, 215, 135, 59, + /* 1550 */ 30, 82, 32, 25, 214, 213, 87, 173, 26, 90, + /* 1560 */ 40, 71, 13, 172, 164, 96, 97, 164, 6, 162, + /* 1570 */ 162, 162, 103, 263, 105, 106, 107, 266, 266, 110, + /* 1580 */ 90, 176, 176, 190, 182, 190, 96, 97, 98, 4, + /* 1590 */ 70, 176, 3, 103, 182, 105, 106, 107, 78, 182, + /* 1600 */ 110, 81, 182, 182, 182, 182, 182, 151, 88, 22, + /* 1610 */ 141, 142, 143, 144, 145, 15, 89, 16, 23, 23, + /* 1620 */ 128, 19, 20, 139, 22, 119, 131, 24, 20, 133, + /* 1630 */ 16, 141, 142, 143, 144, 145, 1, 140, 36, 131, + /* 1640 */ 119, 61, 122, 37, 139, 53, 53, 127, 128, 119, + /* 1650 */ 53, 53, 105, 34, 130, 1, 5, 104, 22, 149, + /* 1660 */ 26, 59, 68, 75, 41, 130, 24, 68, 104, 20, + /* 1670 */ 150, 19, 120, 71, 114, 22, 67, 22, 22, 67, + /* 1680 */ 23, 22, 22, 67, 82, 37, 28, 23, 138, 87, + /* 1690 */ 22, 153, 90, 23, 23, 26, 23, 22, 96, 97, + /* 1700 */ 24, 23, 22, 24, 130, 103, 23, 105, 106, 107, + /* 1710 */ 1, 2, 110, 23, 5, 105, 34, 22, 132, 10, + /* 1720 */ 11, 12, 13, 14, 26, 34, 17, 34, 85, 83, + /* 1730 */ 44, 19, 20, 23, 22, 24, 75, 34, 23, 30, + /* 1740 */ 26, 32, 26, 141, 142, 143, 144, 145, 36, 40, + /* 1750 */ 23, 23, 23, 23, 11, 23, 22, 26, 22, 22, + /* 1760 */ 22, 19, 20, 23, 22, 26, 15, 23, 22, 124, + /* 1770 */ 130, 59, 23, 1, 130, 277, 277, 130, 36, 70, + /* 1780 */ 130, 277, 277, 71, 277, 277, 277, 78, 277, 277, + /* 1790 */ 81, 277, 277, 277, 277, 277, 277, 88, 277, 277, + /* 1800 */ 277, 59, 90, 277, 277, 277, 277, 277, 96, 97, + /* 1810 */ 277, 277, 277, 71, 277, 103, 277, 105, 106, 107, + /* 1820 */ 277, 277, 110, 277, 277, 277, 277, 277, 277, 277, + /* 1830 */ 277, 122, 90, 277, 277, 277, 127, 128, 96, 97, + /* 1840 */ 277, 277, 277, 277, 277, 103, 277, 105, 106, 107, + /* 1850 */ 277, 277, 110, 141, 142, 143, 144, 145, 277, 150, + /* 1860 */ 277, 277, 277, 5, 277, 277, 277, 277, 10, 11, + /* 1870 */ 12, 13, 14, 277, 277, 17, 277, 277, 277, 277, + /* 1880 */ 277, 277, 277, 141, 142, 143, 144, 145, 30, 277, + /* 1890 */ 32, 277, 277, 277, 277, 277, 277, 277, 40, 277, + /* 1900 */ 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, + /* 1910 */ 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, + /* 1920 */ 277, 277, 277, 277, 277, 277, 277, 277, 70, 277, + /* 1930 */ 277, 277, 277, 277, 277, 277, 78, 277, 277, 81, + /* 1940 */ 277, 277, 277, 277, 277, 277, 88, 277, 277, 277, + /* 1950 */ 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, + /* 1960 */ 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, + /* 1970 */ 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, + /* 1980 */ 122, 277, 277, 277, 277, 127, 128, 277, 277, 277, + /* 1990 */ 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, + /* 2000 */ 277, 277, 277, 277, 277, 277, 277, 277, 150, 277, + /* 2010 */ 277, 277, 277, 277, 277, 277, 277, 277, 277, }; -#define YY_SHIFT_COUNT (465) +#define YY_SHIFT_COUNT (520) #define YY_SHIFT_MIN (0) -#define YY_SHIFT_MAX (1538) +#define YY_SHIFT_MAX (1858) static const unsigned short int yy_shift_ofst[] = { - /* 0 */ 39, 822, 955, 843, 997, 997, 997, 997, 0, 0, - /* 10 */ 104, 630, 997, 997, 997, 997, 997, 997, 997, 1077, - /* 20 */ 1077, 126, 161, 155, 52, 156, 208, 260, 312, 364, - /* 30 */ 416, 468, 523, 578, 630, 630, 630, 630, 630, 630, - /* 40 */ 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, - /* 50 */ 630, 682, 630, 733, 783, 783, 914, 997, 997, 997, - /* 60 */ 997, 997, 997, 997, 997, 997, 997, 997, 997, 997, - /* 70 */ 997, 997, 997, 997, 997, 997, 997, 997, 997, 997, - /* 80 */ 997, 997, 997, 997, 997, 997, 997, 997, 1017, 997, - /* 90 */ 997, 997, 997, 997, 997, 997, 997, 997, 997, 997, - /* 100 */ 997, 997, 1070, 1054, 1054, 1054, 1054, 1054, 40, 25, - /* 110 */ 72, 232, 788, 428, 248, 248, 232, 581, 367, 127, - /* 120 */ 465, 138, 1541, 1541, 1541, 784, 784, 784, 522, 522, - /* 130 */ 887, 887, 893, 406, 408, 232, 232, 232, 232, 232, - /* 140 */ 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - /* 150 */ 232, 232, 232, 232, 232, 370, 340, 714, 698, 698, - /* 160 */ 465, 89, 89, 89, 89, 89, 89, 1541, 1541, 1541, - /* 170 */ 504, 85, 85, 884, 70, 280, 902, 440, 966, 924, - /* 180 */ 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - /* 190 */ 232, 232, 232, 232, 232, 232, 1134, 1134, 1134, 232, - /* 200 */ 232, 667, 232, 232, 232, 929, 232, 232, 885, 232, - /* 210 */ 232, 232, 232, 232, 232, 232, 232, 232, 232, 418, - /* 220 */ 678, 981, 981, 981, 981, 766, 271, 911, 510, 429, - /* 230 */ 617, 786, 786, 830, 617, 830, 4, 730, 595, 768, - /* 240 */ 786, 561, 768, 768, 732, 535, 55, 1165, 1105, 1105, - /* 250 */ 1191, 1191, 1105, 1228, 1209, 1130, 1257, 1257, 1257, 1257, - /* 260 */ 1105, 1280, 1130, 1228, 1209, 1209, 1130, 1105, 1280, 1198, - /* 270 */ 1282, 1105, 1105, 1280, 1328, 1105, 1280, 1105, 1280, 1328, - /* 280 */ 1244, 1244, 1244, 1308, 1328, 1244, 1267, 1244, 1308, 1244, - /* 290 */ 1244, 1250, 1273, 1250, 1273, 1250, 1273, 1250, 1273, 1105, - /* 300 */ 1360, 1105, 1260, 1328, 1306, 1306, 1328, 1274, 1276, 1277, - /* 310 */ 1279, 1130, 1379, 1383, 1400, 1400, 1410, 1410, 1410, 1541, - /* 320 */ 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, - /* 330 */ 1541, 1541, 1541, 1541, 1541, 34, 407, 463, 511, 417, - /* 340 */ 479, 1272, 778, 941, 785, 825, 831, 833, 872, 877, - /* 350 */ 756, 793, 900, 804, 919, 1045, 969, 1049, 803, 909, - /* 360 */ 1051, 983, 1059, 1428, 1434, 1416, 1300, 1429, 1362, 1430, - /* 370 */ 1422, 1424, 1330, 1317, 1340, 1329, 1433, 1331, 1438, 1454, - /* 380 */ 1334, 1327, 1406, 1407, 1408, 1409, 1352, 1368, 1431, 1344, - /* 390 */ 1466, 1463, 1447, 1363, 1332, 1404, 1448, 1411, 1399, 1435, - /* 400 */ 1370, 1451, 1459, 1461, 1369, 1377, 1462, 1417, 1464, 1465, - /* 410 */ 1467, 1469, 1419, 1460, 1470, 1423, 1456, 1471, 1472, 1473, - /* 420 */ 1474, 1381, 1476, 1478, 1477, 1479, 1380, 1480, 1481, 1412, - /* 430 */ 1475, 1484, 1386, 1485, 1482, 1486, 1483, 1490, 1485, 1491, - /* 440 */ 1492, 1495, 1493, 1497, 1499, 1496, 1500, 1502, 1498, 1501, - /* 450 */ 1503, 1506, 1505, 1501, 1507, 1509, 1510, 1511, 1513, 1403, - /* 460 */ 1414, 1415, 1418, 1515, 1517, 1538, + /* 0 */ 1709, 1520, 1858, 1324, 1324, 277, 1374, 1469, 1602, 1712, + /* 10 */ 1712, 1712, 273, 0, 0, 113, 1016, 1712, 1712, 1712, + /* 20 */ 1712, 1712, 1712, 1712, 1712, 1712, 1712, 11, 11, 236, + /* 30 */ 184, 277, 277, 277, 277, 277, 277, 93, 177, 270, + /* 40 */ 363, 456, 549, 642, 735, 828, 848, 996, 1144, 1016, + /* 50 */ 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, + /* 60 */ 1016, 1016, 1016, 1016, 1016, 1016, 1164, 1016, 1257, 1277, + /* 70 */ 1277, 1490, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, + /* 80 */ 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, + /* 90 */ 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, + /* 100 */ 1712, 1712, 1712, 1742, 1712, 1712, 1712, 1712, 1712, 1712, + /* 110 */ 1712, 1712, 1712, 1712, 1712, 1712, 1712, 143, 162, 162, + /* 120 */ 162, 162, 162, 204, 151, 416, 531, 648, 700, 531, + /* 130 */ 486, 486, 531, 353, 353, 353, 353, 409, 279, 53, + /* 140 */ 2009, 2009, 331, 331, 331, 329, 366, 329, 329, 597, + /* 150 */ 597, 464, 474, 262, 681, 531, 531, 531, 531, 531, + /* 160 */ 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, + /* 170 */ 531, 531, 531, 531, 531, 531, 531, 173, 485, 984, + /* 180 */ 984, 576, 485, 19, 1022, 2009, 2009, 2009, 387, 250, + /* 190 */ 250, 525, 502, 278, 552, 227, 480, 566, 531, 531, + /* 200 */ 531, 531, 531, 531, 531, 531, 531, 531, 639, 531, + /* 210 */ 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, + /* 220 */ 531, 2, 2, 2, 531, 531, 531, 531, 782, 531, + /* 230 */ 531, 531, 744, 531, 531, 783, 531, 531, 531, 531, + /* 240 */ 531, 531, 531, 531, 419, 682, 327, 370, 370, 370, + /* 250 */ 370, 1029, 327, 327, 1024, 897, 856, 947, 1109, 706, + /* 260 */ 706, 1143, 1109, 1109, 1143, 842, 945, 1118, 1136, 1136, + /* 270 */ 1136, 706, 676, 400, 1047, 694, 1339, 1270, 1270, 1366, + /* 280 */ 1366, 1270, 1305, 1389, 1369, 1278, 1401, 1401, 1401, 1401, + /* 290 */ 1270, 1414, 1278, 1278, 1305, 1389, 1369, 1369, 1278, 1270, + /* 300 */ 1414, 1298, 1385, 1270, 1414, 1432, 1270, 1414, 1270, 1414, + /* 310 */ 1432, 1355, 1355, 1355, 1411, 1432, 1355, 1367, 1355, 1411, + /* 320 */ 1355, 1355, 1432, 1392, 1392, 1432, 1365, 1396, 1365, 1396, + /* 330 */ 1365, 1396, 1365, 1396, 1270, 1372, 1429, 1502, 1390, 1372, + /* 340 */ 1517, 1270, 1397, 1390, 1410, 1413, 1278, 1528, 1532, 1549, + /* 350 */ 1549, 1562, 1562, 1562, 2009, 2009, 2009, 2009, 2009, 2009, + /* 360 */ 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, + /* 370 */ 570, 345, 686, 748, 50, 740, 1064, 1107, 469, 537, + /* 380 */ 1042, 1146, 1162, 1154, 1201, 1202, 1203, 1208, 1209, 1127, + /* 390 */ 1069, 1196, 1157, 1147, 1226, 1228, 1245, 775, 868, 1246, + /* 400 */ 1247, 1191, 1151, 1585, 1589, 1587, 1456, 1600, 1527, 1601, + /* 410 */ 1595, 1596, 1492, 1484, 1506, 1603, 1495, 1608, 1496, 1614, + /* 420 */ 1635, 1508, 1497, 1521, 1580, 1606, 1505, 1592, 1593, 1597, + /* 430 */ 1598, 1530, 1547, 1619, 1524, 1654, 1651, 1636, 1553, 1510, + /* 440 */ 1594, 1634, 1599, 1588, 1623, 1535, 1564, 1642, 1649, 1652, + /* 450 */ 1552, 1560, 1653, 1609, 1655, 1656, 1657, 1659, 1612, 1658, + /* 460 */ 1660, 1616, 1648, 1664, 1550, 1668, 1538, 1670, 1671, 1669, + /* 470 */ 1673, 1675, 1676, 1678, 1680, 1679, 1574, 1683, 1690, 1610, + /* 480 */ 1682, 1695, 1586, 1698, 1691, 1698, 1693, 1643, 1661, 1646, + /* 490 */ 1686, 1710, 1711, 1714, 1716, 1703, 1715, 1698, 1727, 1728, + /* 500 */ 1729, 1730, 1731, 1732, 1734, 1743, 1736, 1737, 1740, 1744, + /* 510 */ 1738, 1746, 1739, 1645, 1640, 1644, 1647, 1650, 1749, 1751, + /* 520 */ 1772, }; -#define YY_REDUCE_COUNT (334) -#define YY_REDUCE_MIN (-217) -#define YY_REDUCE_MAX (1278) +#define YY_REDUCE_COUNT (369) +#define YY_REDUCE_MIN (-237) +#define YY_REDUCE_MAX (1424) static const short yy_reduce_ofst[] = { - /* 0 */ -144, -139, -134, -136, -141, 64, 114, 116, -158, -148, - /* 10 */ -217, 96, 819, 871, 878, 219, 270, 886, 272, -110, - /* 20 */ 413, 918, 972, 228, -214, -214, -214, -214, -214, -214, - /* 30 */ -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, - /* 40 */ -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, - /* 50 */ -214, -214, -214, -214, -214, -214, 62, 323, 377, 536, - /* 60 */ 539, 834, 948, 1020, 1024, 1031, 1039, 1048, 1050, 1063, - /* 70 */ 1065, 1068, 1074, 1080, 1083, 1088, 1091, 1094, 1097, 1099, - /* 80 */ 1103, 1106, 1111, 1114, 1122, 1126, 1129, 1131, 1137, 1139, - /* 90 */ 1141, 1145, 1149, 1154, 1156, 1164, 1168, 1173, 1180, 1184, - /* 100 */ 1187, 1192, -214, -214, -214, -214, -214, -214, -214, -214, - /* 110 */ -214, 132, -45, 97, 8, 164, 379, 175, 255, -214, - /* 120 */ 178, -214, -214, -214, -214, -168, -168, -168, 124, 329, - /* 130 */ 399, 401, -129, 347, 347, 331, 133, 451, 452, 498, - /* 140 */ 500, 502, 503, 505, 487, 506, 488, 490, 507, 543, - /* 150 */ 547, -126, 588, 290, 27, 572, 501, 597, 537, 582, - /* 160 */ 183, 599, 600, 601, 649, 650, 653, 508, 538, -29, - /* 170 */ -156, -152, -137, -79, 135, 74, 130, 242, 338, 378, - /* 180 */ 393, 397, 607, 648, 691, 700, 708, 709, 728, 757, - /* 190 */ 763, 769, 796, 810, 818, 845, 202, 748, 792, 861, - /* 200 */ 862, 815, 866, 903, 905, 850, 931, 932, 896, 937, - /* 210 */ 939, 945, 74, 949, 951, 964, 965, 967, 968, 888, - /* 220 */ 820, 923, 926, 959, 960, 815, 980, 908, 1009, 985, - /* 230 */ 986, 970, 974, 942, 988, 947, 1018, 1011, 1022, 1025, - /* 240 */ 991, 982, 1032, 1038, 1015, 1019, 1064, 984, 1071, 1072, - /* 250 */ 992, 993, 1085, 1061, 1069, 1067, 1093, 1116, 1124, 1128, - /* 260 */ 1133, 1132, 1138, 1086, 1136, 1143, 1146, 1175, 1166, 1108, - /* 270 */ 1113, 1193, 1196, 1201, 1178, 1203, 1205, 1208, 1206, 1190, - /* 280 */ 1195, 1197, 1199, 1194, 1200, 1204, 1207, 1210, 1211, 1212, - /* 290 */ 1213, 1159, 1167, 1169, 1174, 1172, 1176, 1179, 1177, 1222, - /* 300 */ 1170, 1232, 1171, 1221, 1181, 1182, 1223, 1202, 1214, 1216, - /* 310 */ 1215, 1219, 1245, 1249, 1261, 1262, 1266, 1271, 1275, 1183, - /* 320 */ 1185, 1189, 1258, 1253, 1254, 1256, 1259, 1263, 1252, 1255, - /* 330 */ 1268, 1269, 1270, 1278, 1264, + /* 0 */ -147, 171, 263, -96, 358, -144, -149, -102, 124, -156, + /* 10 */ -98, 305, 401, -57, 209, -237, 245, -94, -79, 189, + /* 20 */ 375, 490, 493, 378, 303, 539, 542, 501, 503, 554, + /* 30 */ 415, 526, 546, 557, 587, 593, 595, -234, -234, -234, + /* 40 */ -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, + /* 50 */ -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, + /* 60 */ -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, + /* 70 */ -234, -50, 335, 470, 633, 656, 658, 660, 675, 685, + /* 80 */ 703, 727, 747, 750, 752, 754, 770, 788, 790, 793, + /* 90 */ 795, 797, 800, 802, 804, 806, 813, 820, 829, 833, + /* 100 */ 836, 838, 843, 845, 847, 849, 873, 891, 893, 916, + /* 110 */ 918, 921, 936, 941, 944, 956, 961, -234, -234, -234, + /* 120 */ -234, -234, -234, -234, -234, -234, 463, 607, -176, 14, + /* 130 */ -139, 87, -137, 818, 925, 818, 925, 898, -234, -234, + /* 140 */ -234, -234, -166, -166, -166, -130, -131, -82, -54, -180, + /* 150 */ 364, 41, 513, 509, 509, 117, 500, 789, 796, 646, + /* 160 */ 192, 291, 644, 798, 120, 807, 543, 911, 920, 652, + /* 170 */ 924, 922, 232, 698, 801, 971, 39, 220, 731, 442, + /* 180 */ 902, -199, 979, -43, 421, 896, 942, 605, -184, -126, + /* 190 */ 155, 172, 281, 304, 377, 538, 650, 690, 699, 723, + /* 200 */ 803, 839, 853, 919, 991, 1018, 1067, 1092, 951, 1111, + /* 210 */ 1112, 1115, 1116, 1117, 1119, 1120, 1121, 1122, 1123, 1124, + /* 220 */ 1125, 1012, 1096, 1097, 1128, 1129, 1130, 1131, 1070, 1135, + /* 230 */ 1137, 1152, 1077, 1153, 1155, 1114, 1156, 304, 1158, 1172, + /* 240 */ 1173, 1174, 1175, 1176, 1089, 1091, 1133, 1098, 1126, 1139, + /* 250 */ 1140, 1070, 1133, 1133, 1170, 1163, 1186, 1103, 1168, 1138, + /* 260 */ 1141, 1110, 1169, 1171, 1132, 1177, 1189, 1194, 1181, 1200, + /* 270 */ 1204, 1166, 1145, 1178, 1187, 1232, 1142, 1231, 1233, 1149, + /* 280 */ 1150, 1238, 1179, 1182, 1212, 1205, 1219, 1220, 1221, 1222, + /* 290 */ 1258, 1266, 1223, 1224, 1206, 1211, 1237, 1239, 1230, 1269, + /* 300 */ 1272, 1195, 1197, 1280, 1284, 1268, 1285, 1289, 1290, 1293, + /* 310 */ 1274, 1286, 1287, 1288, 1282, 1294, 1292, 1297, 1300, 1296, + /* 320 */ 1301, 1306, 1304, 1249, 1250, 1308, 1271, 1275, 1273, 1276, + /* 330 */ 1279, 1281, 1283, 1302, 1334, 1307, 1243, 1267, 1318, 1322, + /* 340 */ 1303, 1371, 1299, 1328, 1332, 1340, 1342, 1384, 1391, 1400, + /* 350 */ 1403, 1407, 1408, 1409, 1311, 1312, 1310, 1405, 1402, 1412, + /* 360 */ 1417, 1420, 1406, 1393, 1395, 1421, 1422, 1423, 1424, 1415, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 1286, 1276, 1276, 1276, 1209, 1209, 1209, 1209, 1133, 1133, - /* 10 */ 1260, 1036, 1005, 1005, 1005, 1005, 1005, 1005, 1208, 1005, - /* 20 */ 1005, 1005, 1005, 1108, 1139, 1005, 1005, 1005, 1005, 1210, - /* 30 */ 1211, 1005, 1005, 1005, 1259, 1261, 1149, 1148, 1147, 1146, - /* 40 */ 1242, 1120, 1144, 1137, 1141, 1210, 1204, 1205, 1203, 1207, - /* 50 */ 1211, 1005, 1140, 1174, 1188, 1173, 1005, 1005, 1005, 1005, - /* 60 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, - /* 70 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, - /* 80 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, - /* 90 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, - /* 100 */ 1005, 1005, 1182, 1187, 1194, 1186, 1183, 1176, 1175, 1177, - /* 110 */ 1178, 1005, 1026, 1075, 1005, 1005, 1005, 1276, 1036, 1179, - /* 120 */ 1005, 1180, 1191, 1190, 1189, 1267, 1294, 1293, 1005, 1005, - /* 130 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, - /* 140 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, - /* 150 */ 1005, 1005, 1005, 1005, 1005, 1036, 1286, 1276, 1032, 1032, - /* 160 */ 1005, 1276, 1276, 1276, 1276, 1276, 1276, 1272, 1108, 1099, - /* 170 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, - /* 180 */ 1005, 1264, 1262, 1005, 1224, 1005, 1005, 1005, 1005, 1005, - /* 190 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, - /* 200 */ 1005, 1005, 1005, 1005, 1005, 1104, 1005, 1005, 1005, 1005, - /* 210 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1288, 1005, - /* 220 */ 1237, 1104, 1104, 1104, 1104, 1106, 1088, 1098, 1036, 1012, - /* 230 */ 1143, 1122, 1122, 1327, 1143, 1327, 1050, 1308, 1047, 1133, - /* 240 */ 1122, 1206, 1133, 1133, 1105, 1098, 1005, 1330, 1113, 1113, - /* 250 */ 1329, 1329, 1113, 1154, 1078, 1143, 1084, 1084, 1084, 1084, - /* 260 */ 1113, 1023, 1143, 1154, 1078, 1078, 1143, 1113, 1023, 1241, - /* 270 */ 1324, 1113, 1113, 1023, 1217, 1113, 1023, 1113, 1023, 1217, - /* 280 */ 1076, 1076, 1076, 1065, 1217, 1076, 1050, 1076, 1065, 1076, - /* 290 */ 1076, 1126, 1121, 1126, 1121, 1126, 1121, 1126, 1121, 1113, - /* 300 */ 1212, 1113, 1005, 1217, 1221, 1221, 1217, 1138, 1127, 1136, - /* 310 */ 1134, 1143, 1029, 1068, 1291, 1291, 1287, 1287, 1287, 1335, - /* 320 */ 1335, 1272, 1303, 1036, 1036, 1036, 1036, 1303, 1052, 1052, - /* 330 */ 1036, 1036, 1036, 1036, 1303, 1005, 1005, 1005, 1005, 1005, - /* 340 */ 1005, 1298, 1005, 1226, 1005, 1005, 1005, 1005, 1005, 1005, - /* 350 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, - /* 360 */ 1005, 1005, 1159, 1005, 1008, 1269, 1005, 1005, 1268, 1005, - /* 370 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, - /* 380 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1326, - /* 390 */ 1005, 1005, 1005, 1005, 1005, 1005, 1240, 1239, 1005, 1005, - /* 400 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, - /* 410 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, - /* 420 */ 1005, 1090, 1005, 1005, 1005, 1312, 1005, 1005, 1005, 1005, - /* 430 */ 1005, 1005, 1005, 1135, 1005, 1128, 1005, 1005, 1317, 1005, - /* 440 */ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1278, - /* 450 */ 1005, 1005, 1005, 1277, 1005, 1005, 1005, 1005, 1005, 1161, - /* 460 */ 1005, 1160, 1164, 1005, 1017, 1005, + /* 0 */ 1492, 1492, 1492, 1340, 1123, 1229, 1123, 1123, 1123, 1340, + /* 10 */ 1340, 1340, 1123, 1259, 1259, 1391, 1154, 1123, 1123, 1123, + /* 20 */ 1123, 1123, 1123, 1123, 1339, 1123, 1123, 1123, 1123, 1123, + /* 30 */ 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1265, 1123, + /* 40 */ 1123, 1123, 1123, 1123, 1341, 1342, 1123, 1123, 1123, 1390, + /* 50 */ 1392, 1275, 1274, 1273, 1272, 1373, 1246, 1270, 1263, 1267, + /* 60 */ 1335, 1336, 1334, 1338, 1342, 1341, 1123, 1266, 1306, 1320, + /* 70 */ 1305, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, + /* 80 */ 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, + /* 90 */ 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, + /* 100 */ 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, + /* 110 */ 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1314, 1319, 1325, + /* 120 */ 1318, 1315, 1308, 1307, 1309, 1310, 1123, 1144, 1193, 1123, + /* 130 */ 1123, 1123, 1123, 1409, 1408, 1123, 1123, 1154, 1311, 1312, + /* 140 */ 1322, 1321, 1398, 1448, 1447, 1123, 1123, 1123, 1123, 1123, + /* 150 */ 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, + /* 160 */ 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, + /* 170 */ 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1154, 1150, 1300, + /* 180 */ 1299, 1418, 1150, 1253, 1123, 1404, 1229, 1220, 1123, 1123, + /* 190 */ 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, + /* 200 */ 1123, 1395, 1393, 1123, 1355, 1123, 1123, 1123, 1123, 1123, + /* 210 */ 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, + /* 220 */ 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, + /* 230 */ 1123, 1123, 1225, 1123, 1123, 1123, 1123, 1123, 1123, 1123, + /* 240 */ 1123, 1123, 1123, 1442, 1123, 1368, 1207, 1225, 1225, 1225, + /* 250 */ 1225, 1227, 1208, 1206, 1219, 1154, 1130, 1484, 1269, 1248, + /* 260 */ 1248, 1481, 1269, 1269, 1481, 1168, 1462, 1165, 1259, 1259, + /* 270 */ 1259, 1248, 1337, 1226, 1219, 1123, 1484, 1234, 1234, 1483, + /* 280 */ 1483, 1234, 1278, 1284, 1196, 1269, 1202, 1202, 1202, 1202, + /* 290 */ 1234, 1141, 1269, 1269, 1278, 1284, 1196, 1196, 1269, 1234, + /* 300 */ 1141, 1372, 1478, 1234, 1141, 1348, 1234, 1141, 1234, 1141, + /* 310 */ 1348, 1194, 1194, 1194, 1183, 1348, 1194, 1168, 1194, 1183, + /* 320 */ 1194, 1194, 1348, 1352, 1352, 1348, 1252, 1247, 1252, 1247, + /* 330 */ 1252, 1247, 1252, 1247, 1234, 1253, 1417, 1123, 1264, 1253, + /* 340 */ 1343, 1234, 1123, 1264, 1262, 1260, 1269, 1147, 1186, 1445, + /* 350 */ 1445, 1441, 1441, 1441, 1489, 1489, 1404, 1457, 1154, 1154, + /* 360 */ 1154, 1154, 1457, 1170, 1170, 1154, 1154, 1154, 1154, 1457, + /* 370 */ 1123, 1123, 1123, 1123, 1123, 1123, 1452, 1123, 1357, 1238, + /* 380 */ 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, + /* 390 */ 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, + /* 400 */ 1123, 1123, 1289, 1123, 1126, 1401, 1123, 1123, 1399, 1123, + /* 410 */ 1123, 1123, 1123, 1123, 1123, 1239, 1123, 1123, 1123, 1123, + /* 420 */ 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, + /* 430 */ 1123, 1123, 1123, 1123, 1480, 1123, 1123, 1123, 1123, 1123, + /* 440 */ 1123, 1371, 1370, 1123, 1123, 1236, 1123, 1123, 1123, 1123, + /* 450 */ 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, + /* 460 */ 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, + /* 470 */ 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, + /* 480 */ 1123, 1123, 1123, 1261, 1123, 1416, 1123, 1123, 1123, 1123, + /* 490 */ 1123, 1123, 1123, 1430, 1254, 1123, 1123, 1471, 1123, 1123, + /* 500 */ 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, + /* 510 */ 1123, 1123, 1466, 1210, 1291, 1123, 1290, 1294, 1123, 1135, + /* 520 */ 1123, }; /********** End of lemon-generated parsing tables *****************************/ @@ -138988,6 +147804,7 @@ static const YYCODETYPE yyFallback[] = { 0, /* ESCAPE => nothing */ 0, /* ID => nothing */ 59, /* COLUMNKW => ID */ + 59, /* DO => ID */ 59, /* FOR => ID */ 59, /* IGNORE => ID */ 59, /* INITIALLY => ID */ @@ -139002,11 +147819,18 @@ static const YYCODETYPE yyFallback[] = { 59, /* REPLACE => ID */ 59, /* RESTRICT => ID */ 59, /* ROW => ID */ + 59, /* ROWS => ID */ 59, /* TRIGGER => ID */ 59, /* VACUUM => ID */ 59, /* VIEW => ID */ 59, /* VIRTUAL => ID */ 59, /* WITH => ID */ + 59, /* CURRENT => ID */ + 59, /* FOLLOWING => ID */ + 59, /* PARTITION => ID */ + 59, /* PRECEDING => ID */ + 59, /* RANGE => ID */ + 59, /* UNBOUNDED => ID */ 59, /* REINDEX => ID */ 59, /* RENAME => ID */ 59, /* CTIME_KW => ID */ @@ -139049,6 +147873,7 @@ struct yyParser { int yyerrcnt; /* Shifts left before out of the error */ #endif sqlite3ParserARG_SDECL /* A place to hold %extra_argument */ + sqlite3ParserCTX_SDECL /* A place to hold %extra_context */ #if YYSTACKDEPTH<=0 int yystksz; /* Current side of the stack */ yyStackEntry *yystack; /* The parser's stack */ @@ -139157,197 +147982,222 @@ static const char *const yyTokenName[] = { /* 58 */ "ESCAPE", /* 59 */ "ID", /* 60 */ "COLUMNKW", - /* 61 */ "FOR", - /* 62 */ "IGNORE", - /* 63 */ "INITIALLY", - /* 64 */ "INSTEAD", - /* 65 */ "NO", - /* 66 */ "KEY", - /* 67 */ "OF", - /* 68 */ "OFFSET", - /* 69 */ "PRAGMA", - /* 70 */ "RAISE", - /* 71 */ "RECURSIVE", - /* 72 */ "REPLACE", - /* 73 */ "RESTRICT", - /* 74 */ "ROW", - /* 75 */ "TRIGGER", - /* 76 */ "VACUUM", - /* 77 */ "VIEW", - /* 78 */ "VIRTUAL", - /* 79 */ "WITH", - /* 80 */ "REINDEX", - /* 81 */ "RENAME", - /* 82 */ "CTIME_KW", - /* 83 */ "ANY", - /* 84 */ "BITAND", - /* 85 */ "BITOR", - /* 86 */ "LSHIFT", - /* 87 */ "RSHIFT", - /* 88 */ "PLUS", - /* 89 */ "MINUS", - /* 90 */ "STAR", - /* 91 */ "SLASH", - /* 92 */ "REM", - /* 93 */ "CONCAT", - /* 94 */ "COLLATE", - /* 95 */ "BITNOT", - /* 96 */ "INDEXED", - /* 97 */ "STRING", - /* 98 */ "JOIN_KW", - /* 99 */ "CONSTRAINT", - /* 100 */ "DEFAULT", - /* 101 */ "NULL", - /* 102 */ "PRIMARY", - /* 103 */ "UNIQUE", - /* 104 */ "CHECK", - /* 105 */ "REFERENCES", - /* 106 */ "AUTOINCR", - /* 107 */ "ON", - /* 108 */ "INSERT", - /* 109 */ "DELETE", - /* 110 */ "UPDATE", - /* 111 */ "SET", - /* 112 */ "DEFERRABLE", - /* 113 */ "FOREIGN", - /* 114 */ "DROP", - /* 115 */ "UNION", - /* 116 */ "ALL", - /* 117 */ "EXCEPT", - /* 118 */ "INTERSECT", - /* 119 */ "SELECT", - /* 120 */ "VALUES", - /* 121 */ "DISTINCT", - /* 122 */ "DOT", - /* 123 */ "FROM", - /* 124 */ "JOIN", - /* 125 */ "USING", - /* 126 */ "ORDER", - /* 127 */ "GROUP", - /* 128 */ "HAVING", - /* 129 */ "LIMIT", - /* 130 */ "WHERE", - /* 131 */ "INTO", - /* 132 */ "FLOAT", - /* 133 */ "BLOB", - /* 134 */ "INTEGER", - /* 135 */ "VARIABLE", - /* 136 */ "CASE", - /* 137 */ "WHEN", - /* 138 */ "THEN", - /* 139 */ "ELSE", - /* 140 */ "INDEX", - /* 141 */ "ALTER", - /* 142 */ "ADD", - /* 143 */ "error", - /* 144 */ "input", - /* 145 */ "cmdlist", - /* 146 */ "ecmd", - /* 147 */ "explain", - /* 148 */ "cmdx", - /* 149 */ "cmd", - /* 150 */ "transtype", - /* 151 */ "trans_opt", - /* 152 */ "nm", - /* 153 */ "savepoint_opt", - /* 154 */ "create_table", - /* 155 */ "create_table_args", - /* 156 */ "createkw", - /* 157 */ "temp", - /* 158 */ "ifnotexists", - /* 159 */ "dbnm", - /* 160 */ "columnlist", - /* 161 */ "conslist_opt", - /* 162 */ "table_options", - /* 163 */ "select", - /* 164 */ "columnname", - /* 165 */ "carglist", - /* 166 */ "typetoken", - /* 167 */ "typename", - /* 168 */ "signed", - /* 169 */ "plus_num", - /* 170 */ "minus_num", - /* 171 */ "scanpt", - /* 172 */ "ccons", - /* 173 */ "term", - /* 174 */ "expr", - /* 175 */ "onconf", - /* 176 */ "sortorder", - /* 177 */ "autoinc", - /* 178 */ "eidlist_opt", - /* 179 */ "refargs", - /* 180 */ "defer_subclause", - /* 181 */ "refarg", - /* 182 */ "refact", - /* 183 */ "init_deferred_pred_opt", - /* 184 */ "conslist", - /* 185 */ "tconscomma", - /* 186 */ "tcons", - /* 187 */ "sortlist", - /* 188 */ "eidlist", - /* 189 */ "defer_subclause_opt", - /* 190 */ "orconf", - /* 191 */ "resolvetype", - /* 192 */ "raisetype", - /* 193 */ "ifexists", - /* 194 */ "fullname", - /* 195 */ "selectnowith", - /* 196 */ "oneselect", - /* 197 */ "with", - /* 198 */ "multiselect_op", - /* 199 */ "distinct", - /* 200 */ "selcollist", - /* 201 */ "from", - /* 202 */ "where_opt", - /* 203 */ "groupby_opt", - /* 204 */ "having_opt", - /* 205 */ "orderby_opt", - /* 206 */ "limit_opt", - /* 207 */ "values", - /* 208 */ "nexprlist", - /* 209 */ "exprlist", - /* 210 */ "sclp", - /* 211 */ "as", - /* 212 */ "seltablist", - /* 213 */ "stl_prefix", - /* 214 */ "joinop", - /* 215 */ "indexed_opt", - /* 216 */ "on_opt", - /* 217 */ "using_opt", - /* 218 */ "idlist", - /* 219 */ "setlist", - /* 220 */ "insert_cmd", - /* 221 */ "idlist_opt", - /* 222 */ "likeop", - /* 223 */ "between_op", - /* 224 */ "in_op", - /* 225 */ "paren_exprlist", - /* 226 */ "case_operand", - /* 227 */ "case_exprlist", - /* 228 */ "case_else", - /* 229 */ "uniqueflag", - /* 230 */ "collate", - /* 231 */ "nmnum", - /* 232 */ "trigger_decl", - /* 233 */ "trigger_cmd_list", - /* 234 */ "trigger_time", - /* 235 */ "trigger_event", - /* 236 */ "foreach_clause", - /* 237 */ "when_clause", - /* 238 */ "trigger_cmd", - /* 239 */ "trnm", - /* 240 */ "tridxby", - /* 241 */ "database_kw_opt", - /* 242 */ "key_opt", - /* 243 */ "add_column_fullname", - /* 244 */ "kwcolumn_opt", - /* 245 */ "create_vtab", - /* 246 */ "vtabarglist", - /* 247 */ "vtabarg", - /* 248 */ "vtabargtoken", - /* 249 */ "lp", - /* 250 */ "anylist", - /* 251 */ "wqlist", + /* 61 */ "DO", + /* 62 */ "FOR", + /* 63 */ "IGNORE", + /* 64 */ "INITIALLY", + /* 65 */ "INSTEAD", + /* 66 */ "NO", + /* 67 */ "KEY", + /* 68 */ "OF", + /* 69 */ "OFFSET", + /* 70 */ "PRAGMA", + /* 71 */ "RAISE", + /* 72 */ "RECURSIVE", + /* 73 */ "REPLACE", + /* 74 */ "RESTRICT", + /* 75 */ "ROW", + /* 76 */ "ROWS", + /* 77 */ "TRIGGER", + /* 78 */ "VACUUM", + /* 79 */ "VIEW", + /* 80 */ "VIRTUAL", + /* 81 */ "WITH", + /* 82 */ "CURRENT", + /* 83 */ "FOLLOWING", + /* 84 */ "PARTITION", + /* 85 */ "PRECEDING", + /* 86 */ "RANGE", + /* 87 */ "UNBOUNDED", + /* 88 */ "REINDEX", + /* 89 */ "RENAME", + /* 90 */ "CTIME_KW", + /* 91 */ "ANY", + /* 92 */ "BITAND", + /* 93 */ "BITOR", + /* 94 */ "LSHIFT", + /* 95 */ "RSHIFT", + /* 96 */ "PLUS", + /* 97 */ "MINUS", + /* 98 */ "STAR", + /* 99 */ "SLASH", + /* 100 */ "REM", + /* 101 */ "CONCAT", + /* 102 */ "COLLATE", + /* 103 */ "BITNOT", + /* 104 */ "ON", + /* 105 */ "INDEXED", + /* 106 */ "STRING", + /* 107 */ "JOIN_KW", + /* 108 */ "CONSTRAINT", + /* 109 */ "DEFAULT", + /* 110 */ "NULL", + /* 111 */ "PRIMARY", + /* 112 */ "UNIQUE", + /* 113 */ "CHECK", + /* 114 */ "REFERENCES", + /* 115 */ "AUTOINCR", + /* 116 */ "INSERT", + /* 117 */ "DELETE", + /* 118 */ "UPDATE", + /* 119 */ "SET", + /* 120 */ "DEFERRABLE", + /* 121 */ "FOREIGN", + /* 122 */ "DROP", + /* 123 */ "UNION", + /* 124 */ "ALL", + /* 125 */ "EXCEPT", + /* 126 */ "INTERSECT", + /* 127 */ "SELECT", + /* 128 */ "VALUES", + /* 129 */ "DISTINCT", + /* 130 */ "DOT", + /* 131 */ "FROM", + /* 132 */ "JOIN", + /* 133 */ "USING", + /* 134 */ "ORDER", + /* 135 */ "GROUP", + /* 136 */ "HAVING", + /* 137 */ "LIMIT", + /* 138 */ "WHERE", + /* 139 */ "INTO", + /* 140 */ "NOTHING", + /* 141 */ "FLOAT", + /* 142 */ "BLOB", + /* 143 */ "INTEGER", + /* 144 */ "VARIABLE", + /* 145 */ "CASE", + /* 146 */ "WHEN", + /* 147 */ "THEN", + /* 148 */ "ELSE", + /* 149 */ "INDEX", + /* 150 */ "ALTER", + /* 151 */ "ADD", + /* 152 */ "WINDOW", + /* 153 */ "OVER", + /* 154 */ "FILTER", + /* 155 */ "input", + /* 156 */ "cmdlist", + /* 157 */ "ecmd", + /* 158 */ "cmdx", + /* 159 */ "explain", + /* 160 */ "cmd", + /* 161 */ "transtype", + /* 162 */ "trans_opt", + /* 163 */ "nm", + /* 164 */ "savepoint_opt", + /* 165 */ "create_table", + /* 166 */ "create_table_args", + /* 167 */ "createkw", + /* 168 */ "temp", + /* 169 */ "ifnotexists", + /* 170 */ "dbnm", + /* 171 */ "columnlist", + /* 172 */ "conslist_opt", + /* 173 */ "table_options", + /* 174 */ "select", + /* 175 */ "columnname", + /* 176 */ "carglist", + /* 177 */ "typetoken", + /* 178 */ "typename", + /* 179 */ "signed", + /* 180 */ "plus_num", + /* 181 */ "minus_num", + /* 182 */ "scanpt", + /* 183 */ "ccons", + /* 184 */ "term", + /* 185 */ "expr", + /* 186 */ "onconf", + /* 187 */ "sortorder", + /* 188 */ "autoinc", + /* 189 */ "eidlist_opt", + /* 190 */ "refargs", + /* 191 */ "defer_subclause", + /* 192 */ "refarg", + /* 193 */ "refact", + /* 194 */ "init_deferred_pred_opt", + /* 195 */ "conslist", + /* 196 */ "tconscomma", + /* 197 */ "tcons", + /* 198 */ "sortlist", + /* 199 */ "eidlist", + /* 200 */ "defer_subclause_opt", + /* 201 */ "orconf", + /* 202 */ "resolvetype", + /* 203 */ "raisetype", + /* 204 */ "ifexists", + /* 205 */ "fullname", + /* 206 */ "selectnowith", + /* 207 */ "oneselect", + /* 208 */ "wqlist", + /* 209 */ "multiselect_op", + /* 210 */ "distinct", + /* 211 */ "selcollist", + /* 212 */ "from", + /* 213 */ "where_opt", + /* 214 */ "groupby_opt", + /* 215 */ "having_opt", + /* 216 */ "orderby_opt", + /* 217 */ "limit_opt", + /* 218 */ "window_clause", + /* 219 */ "values", + /* 220 */ "nexprlist", + /* 221 */ "sclp", + /* 222 */ "as", + /* 223 */ "seltablist", + /* 224 */ "stl_prefix", + /* 225 */ "joinop", + /* 226 */ "indexed_opt", + /* 227 */ "on_opt", + /* 228 */ "using_opt", + /* 229 */ "exprlist", + /* 230 */ "xfullname", + /* 231 */ "idlist", + /* 232 */ "with", + /* 233 */ "setlist", + /* 234 */ "insert_cmd", + /* 235 */ "idlist_opt", + /* 236 */ "upsert", + /* 237 */ "over_clause", + /* 238 */ "likeop", + /* 239 */ "between_op", + /* 240 */ "in_op", + /* 241 */ "paren_exprlist", + /* 242 */ "case_operand", + /* 243 */ "case_exprlist", + /* 244 */ "case_else", + /* 245 */ "uniqueflag", + /* 246 */ "collate", + /* 247 */ "nmnum", + /* 248 */ "trigger_decl", + /* 249 */ "trigger_cmd_list", + /* 250 */ "trigger_time", + /* 251 */ "trigger_event", + /* 252 */ "foreach_clause", + /* 253 */ "when_clause", + /* 254 */ "trigger_cmd", + /* 255 */ "trnm", + /* 256 */ "tridxby", + /* 257 */ "database_kw_opt", + /* 258 */ "key_opt", + /* 259 */ "add_column_fullname", + /* 260 */ "kwcolumn_opt", + /* 261 */ "create_vtab", + /* 262 */ "vtabarglist", + /* 263 */ "vtabarg", + /* 264 */ "vtabargtoken", + /* 265 */ "lp", + /* 266 */ "anylist", + /* 267 */ "windowdefn_list", + /* 268 */ "windowdefn", + /* 269 */ "window", + /* 270 */ "frame_opt", + /* 271 */ "part_opt", + /* 272 */ "filter_opt", + /* 273 */ "range_or_rows", + /* 274 */ "frame_bound", + /* 275 */ "frame_bound_s", + /* 276 */ "frame_bound_e", }; #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */ @@ -139435,256 +148285,293 @@ static const char *const yyRuleName[] = { /* 77 */ "cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select", /* 78 */ "cmd ::= DROP VIEW ifexists fullname", /* 79 */ "cmd ::= select", - /* 80 */ "select ::= with selectnowith", - /* 81 */ "selectnowith ::= selectnowith multiselect_op oneselect", - /* 82 */ "multiselect_op ::= UNION", - /* 83 */ "multiselect_op ::= UNION ALL", - /* 84 */ "multiselect_op ::= EXCEPT|INTERSECT", - /* 85 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt", - /* 86 */ "values ::= VALUES LP nexprlist RP", - /* 87 */ "values ::= values COMMA LP exprlist RP", - /* 88 */ "distinct ::= DISTINCT", - /* 89 */ "distinct ::= ALL", - /* 90 */ "distinct ::=", - /* 91 */ "sclp ::=", - /* 92 */ "selcollist ::= sclp scanpt expr scanpt as", - /* 93 */ "selcollist ::= sclp scanpt STAR", - /* 94 */ "selcollist ::= sclp scanpt nm DOT STAR", - /* 95 */ "as ::= AS nm", - /* 96 */ "as ::=", - /* 97 */ "from ::=", - /* 98 */ "from ::= FROM seltablist", - /* 99 */ "stl_prefix ::= seltablist joinop", - /* 100 */ "stl_prefix ::=", - /* 101 */ "seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt", - /* 102 */ "seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt", - /* 103 */ "seltablist ::= stl_prefix LP select RP as on_opt using_opt", - /* 104 */ "seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt", - /* 105 */ "dbnm ::=", - /* 106 */ "dbnm ::= DOT nm", - /* 107 */ "fullname ::= nm dbnm", - /* 108 */ "joinop ::= COMMA|JOIN", - /* 109 */ "joinop ::= JOIN_KW JOIN", - /* 110 */ "joinop ::= JOIN_KW nm JOIN", - /* 111 */ "joinop ::= JOIN_KW nm nm JOIN", - /* 112 */ "on_opt ::= ON expr", - /* 113 */ "on_opt ::=", - /* 114 */ "indexed_opt ::=", - /* 115 */ "indexed_opt ::= INDEXED BY nm", - /* 116 */ "indexed_opt ::= NOT INDEXED", - /* 117 */ "using_opt ::= USING LP idlist RP", - /* 118 */ "using_opt ::=", - /* 119 */ "orderby_opt ::=", - /* 120 */ "orderby_opt ::= ORDER BY sortlist", - /* 121 */ "sortlist ::= sortlist COMMA expr sortorder", - /* 122 */ "sortlist ::= expr sortorder", - /* 123 */ "sortorder ::= ASC", - /* 124 */ "sortorder ::= DESC", - /* 125 */ "sortorder ::=", - /* 126 */ "groupby_opt ::=", - /* 127 */ "groupby_opt ::= GROUP BY nexprlist", - /* 128 */ "having_opt ::=", - /* 129 */ "having_opt ::= HAVING expr", - /* 130 */ "limit_opt ::=", - /* 131 */ "limit_opt ::= LIMIT expr", - /* 132 */ "limit_opt ::= LIMIT expr OFFSET expr", - /* 133 */ "limit_opt ::= LIMIT expr COMMA expr", - /* 134 */ "cmd ::= with DELETE FROM fullname indexed_opt where_opt", - /* 135 */ "where_opt ::=", - /* 136 */ "where_opt ::= WHERE expr", - /* 137 */ "cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt", - /* 138 */ "setlist ::= setlist COMMA nm EQ expr", - /* 139 */ "setlist ::= setlist COMMA LP idlist RP EQ expr", - /* 140 */ "setlist ::= nm EQ expr", - /* 141 */ "setlist ::= LP idlist RP EQ expr", - /* 142 */ "cmd ::= with insert_cmd INTO fullname idlist_opt select", - /* 143 */ "cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES", - /* 144 */ "insert_cmd ::= INSERT orconf", - /* 145 */ "insert_cmd ::= REPLACE", - /* 146 */ "idlist_opt ::=", - /* 147 */ "idlist_opt ::= LP idlist RP", - /* 148 */ "idlist ::= idlist COMMA nm", - /* 149 */ "idlist ::= nm", - /* 150 */ "expr ::= LP expr RP", - /* 151 */ "expr ::= ID|INDEXED", - /* 152 */ "expr ::= JOIN_KW", - /* 153 */ "expr ::= nm DOT nm", - /* 154 */ "expr ::= nm DOT nm DOT nm", - /* 155 */ "term ::= NULL|FLOAT|BLOB", - /* 156 */ "term ::= STRING", - /* 157 */ "term ::= INTEGER", - /* 158 */ "expr ::= VARIABLE", - /* 159 */ "expr ::= expr COLLATE ID|STRING", - /* 160 */ "expr ::= CAST LP expr AS typetoken RP", - /* 161 */ "expr ::= ID|INDEXED LP distinct exprlist RP", - /* 162 */ "expr ::= ID|INDEXED LP STAR RP", - /* 163 */ "term ::= CTIME_KW", - /* 164 */ "expr ::= LP nexprlist COMMA expr RP", - /* 165 */ "expr ::= expr AND expr", - /* 166 */ "expr ::= expr OR expr", - /* 167 */ "expr ::= expr LT|GT|GE|LE expr", - /* 168 */ "expr ::= expr EQ|NE expr", - /* 169 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr", - /* 170 */ "expr ::= expr PLUS|MINUS expr", - /* 171 */ "expr ::= expr STAR|SLASH|REM expr", - /* 172 */ "expr ::= expr CONCAT expr", - /* 173 */ "likeop ::= NOT LIKE_KW|MATCH", - /* 174 */ "expr ::= expr likeop expr", - /* 175 */ "expr ::= expr likeop expr ESCAPE expr", - /* 176 */ "expr ::= expr ISNULL|NOTNULL", - /* 177 */ "expr ::= expr NOT NULL", - /* 178 */ "expr ::= expr IS expr", - /* 179 */ "expr ::= expr IS NOT expr", - /* 180 */ "expr ::= NOT expr", - /* 181 */ "expr ::= BITNOT expr", - /* 182 */ "expr ::= MINUS expr", - /* 183 */ "expr ::= PLUS expr", - /* 184 */ "between_op ::= BETWEEN", - /* 185 */ "between_op ::= NOT BETWEEN", - /* 186 */ "expr ::= expr between_op expr AND expr", - /* 187 */ "in_op ::= IN", - /* 188 */ "in_op ::= NOT IN", - /* 189 */ "expr ::= expr in_op LP exprlist RP", - /* 190 */ "expr ::= LP select RP", - /* 191 */ "expr ::= expr in_op LP select RP", - /* 192 */ "expr ::= expr in_op nm dbnm paren_exprlist", - /* 193 */ "expr ::= EXISTS LP select RP", - /* 194 */ "expr ::= CASE case_operand case_exprlist case_else END", - /* 195 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr", - /* 196 */ "case_exprlist ::= WHEN expr THEN expr", - /* 197 */ "case_else ::= ELSE expr", - /* 198 */ "case_else ::=", - /* 199 */ "case_operand ::= expr", - /* 200 */ "case_operand ::=", - /* 201 */ "exprlist ::=", - /* 202 */ "nexprlist ::= nexprlist COMMA expr", - /* 203 */ "nexprlist ::= expr", - /* 204 */ "paren_exprlist ::=", - /* 205 */ "paren_exprlist ::= LP exprlist RP", - /* 206 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt", - /* 207 */ "uniqueflag ::= UNIQUE", - /* 208 */ "uniqueflag ::=", - /* 209 */ "eidlist_opt ::=", - /* 210 */ "eidlist_opt ::= LP eidlist RP", - /* 211 */ "eidlist ::= eidlist COMMA nm collate sortorder", - /* 212 */ "eidlist ::= nm collate sortorder", - /* 213 */ "collate ::=", - /* 214 */ "collate ::= COLLATE ID|STRING", - /* 215 */ "cmd ::= DROP INDEX ifexists fullname", - /* 216 */ "cmd ::= VACUUM", - /* 217 */ "cmd ::= VACUUM nm", - /* 218 */ "cmd ::= PRAGMA nm dbnm", - /* 219 */ "cmd ::= PRAGMA nm dbnm EQ nmnum", - /* 220 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP", - /* 221 */ "cmd ::= PRAGMA nm dbnm EQ minus_num", - /* 222 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP", - /* 223 */ "plus_num ::= PLUS INTEGER|FLOAT", - /* 224 */ "minus_num ::= MINUS INTEGER|FLOAT", - /* 225 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END", - /* 226 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause", - /* 227 */ "trigger_time ::= BEFORE|AFTER", - /* 228 */ "trigger_time ::= INSTEAD OF", - /* 229 */ "trigger_time ::=", - /* 230 */ "trigger_event ::= DELETE|INSERT", - /* 231 */ "trigger_event ::= UPDATE", - /* 232 */ "trigger_event ::= UPDATE OF idlist", - /* 233 */ "when_clause ::=", - /* 234 */ "when_clause ::= WHEN expr", - /* 235 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI", - /* 236 */ "trigger_cmd_list ::= trigger_cmd SEMI", - /* 237 */ "trnm ::= nm DOT nm", - /* 238 */ "tridxby ::= INDEXED BY nm", - /* 239 */ "tridxby ::= NOT INDEXED", - /* 240 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt", - /* 241 */ "trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select scanpt", - /* 242 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt", - /* 243 */ "trigger_cmd ::= scanpt select scanpt", - /* 244 */ "expr ::= RAISE LP IGNORE RP", - /* 245 */ "expr ::= RAISE LP raisetype COMMA nm RP", - /* 246 */ "raisetype ::= ROLLBACK", - /* 247 */ "raisetype ::= ABORT", - /* 248 */ "raisetype ::= FAIL", - /* 249 */ "cmd ::= DROP TRIGGER ifexists fullname", - /* 250 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt", - /* 251 */ "cmd ::= DETACH database_kw_opt expr", - /* 252 */ "key_opt ::=", - /* 253 */ "key_opt ::= KEY expr", - /* 254 */ "cmd ::= REINDEX", - /* 255 */ "cmd ::= REINDEX nm dbnm", - /* 256 */ "cmd ::= ANALYZE", - /* 257 */ "cmd ::= ANALYZE nm dbnm", - /* 258 */ "cmd ::= ALTER TABLE fullname RENAME TO nm", - /* 259 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist", - /* 260 */ "add_column_fullname ::= fullname", - /* 261 */ "cmd ::= create_vtab", - /* 262 */ "cmd ::= create_vtab LP vtabarglist RP", - /* 263 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm", - /* 264 */ "vtabarg ::=", - /* 265 */ "vtabargtoken ::= ANY", - /* 266 */ "vtabargtoken ::= lp anylist RP", - /* 267 */ "lp ::= LP", - /* 268 */ "with ::=", - /* 269 */ "with ::= WITH wqlist", - /* 270 */ "with ::= WITH RECURSIVE wqlist", - /* 271 */ "wqlist ::= nm eidlist_opt AS LP select RP", - /* 272 */ "wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP", - /* 273 */ "input ::= cmdlist", - /* 274 */ "cmdlist ::= cmdlist ecmd", - /* 275 */ "cmdlist ::= ecmd", - /* 276 */ "ecmd ::= SEMI", - /* 277 */ "ecmd ::= explain cmdx SEMI", - /* 278 */ "explain ::=", - /* 279 */ "trans_opt ::=", - /* 280 */ "trans_opt ::= TRANSACTION", - /* 281 */ "trans_opt ::= TRANSACTION nm", - /* 282 */ "savepoint_opt ::= SAVEPOINT", - /* 283 */ "savepoint_opt ::=", - /* 284 */ "cmd ::= create_table create_table_args", - /* 285 */ "columnlist ::= columnlist COMMA columnname carglist", - /* 286 */ "columnlist ::= columnname carglist", - /* 287 */ "nm ::= ID|INDEXED", - /* 288 */ "nm ::= STRING", - /* 289 */ "nm ::= JOIN_KW", - /* 290 */ "typetoken ::= typename", - /* 291 */ "typename ::= ID|STRING", - /* 292 */ "signed ::= plus_num", - /* 293 */ "signed ::= minus_num", - /* 294 */ "carglist ::= carglist ccons", - /* 295 */ "carglist ::=", - /* 296 */ "ccons ::= NULL onconf", - /* 297 */ "conslist_opt ::= COMMA conslist", - /* 298 */ "conslist ::= conslist tconscomma tcons", - /* 299 */ "conslist ::= tcons", - /* 300 */ "tconscomma ::=", - /* 301 */ "defer_subclause_opt ::= defer_subclause", - /* 302 */ "resolvetype ::= raisetype", - /* 303 */ "selectnowith ::= oneselect", - /* 304 */ "oneselect ::= values", - /* 305 */ "sclp ::= selcollist COMMA", - /* 306 */ "as ::= ID|STRING", - /* 307 */ "expr ::= term", - /* 308 */ "likeop ::= LIKE_KW|MATCH", - /* 309 */ "exprlist ::= nexprlist", - /* 310 */ "nmnum ::= plus_num", - /* 311 */ "nmnum ::= nm", - /* 312 */ "nmnum ::= ON", - /* 313 */ "nmnum ::= DELETE", - /* 314 */ "nmnum ::= DEFAULT", - /* 315 */ "plus_num ::= INTEGER|FLOAT", - /* 316 */ "foreach_clause ::=", - /* 317 */ "foreach_clause ::= FOR EACH ROW", - /* 318 */ "trnm ::= nm", - /* 319 */ "tridxby ::=", - /* 320 */ "database_kw_opt ::= DATABASE", - /* 321 */ "database_kw_opt ::=", - /* 322 */ "kwcolumn_opt ::=", - /* 323 */ "kwcolumn_opt ::= COLUMNKW", - /* 324 */ "vtabarglist ::= vtabarg", - /* 325 */ "vtabarglist ::= vtabarglist COMMA vtabarg", - /* 326 */ "vtabarg ::= vtabarg vtabargtoken", - /* 327 */ "anylist ::=", - /* 328 */ "anylist ::= anylist LP anylist RP", - /* 329 */ "anylist ::= anylist ANY", + /* 80 */ "select ::= WITH wqlist selectnowith", + /* 81 */ "select ::= WITH RECURSIVE wqlist selectnowith", + /* 82 */ "select ::= selectnowith", + /* 83 */ "selectnowith ::= selectnowith multiselect_op oneselect", + /* 84 */ "multiselect_op ::= UNION", + /* 85 */ "multiselect_op ::= UNION ALL", + /* 86 */ "multiselect_op ::= EXCEPT|INTERSECT", + /* 87 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt", + /* 88 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt", + /* 89 */ "values ::= VALUES LP nexprlist RP", + /* 90 */ "values ::= values COMMA LP nexprlist RP", + /* 91 */ "distinct ::= DISTINCT", + /* 92 */ "distinct ::= ALL", + /* 93 */ "distinct ::=", + /* 94 */ "sclp ::=", + /* 95 */ "selcollist ::= sclp scanpt expr scanpt as", + /* 96 */ "selcollist ::= sclp scanpt STAR", + /* 97 */ "selcollist ::= sclp scanpt nm DOT STAR", + /* 98 */ "as ::= AS nm", + /* 99 */ "as ::=", + /* 100 */ "from ::=", + /* 101 */ "from ::= FROM seltablist", + /* 102 */ "stl_prefix ::= seltablist joinop", + /* 103 */ "stl_prefix ::=", + /* 104 */ "seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt", + /* 105 */ "seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt", + /* 106 */ "seltablist ::= stl_prefix LP select RP as on_opt using_opt", + /* 107 */ "seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt", + /* 108 */ "dbnm ::=", + /* 109 */ "dbnm ::= DOT nm", + /* 110 */ "fullname ::= nm", + /* 111 */ "fullname ::= nm DOT nm", + /* 112 */ "xfullname ::= nm", + /* 113 */ "xfullname ::= nm DOT nm", + /* 114 */ "xfullname ::= nm DOT nm AS nm", + /* 115 */ "xfullname ::= nm AS nm", + /* 116 */ "joinop ::= COMMA|JOIN", + /* 117 */ "joinop ::= JOIN_KW JOIN", + /* 118 */ "joinop ::= JOIN_KW nm JOIN", + /* 119 */ "joinop ::= JOIN_KW nm nm JOIN", + /* 120 */ "on_opt ::= ON expr", + /* 121 */ "on_opt ::=", + /* 122 */ "indexed_opt ::=", + /* 123 */ "indexed_opt ::= INDEXED BY nm", + /* 124 */ "indexed_opt ::= NOT INDEXED", + /* 125 */ "using_opt ::= USING LP idlist RP", + /* 126 */ "using_opt ::=", + /* 127 */ "orderby_opt ::=", + /* 128 */ "orderby_opt ::= ORDER BY sortlist", + /* 129 */ "sortlist ::= sortlist COMMA expr sortorder", + /* 130 */ "sortlist ::= expr sortorder", + /* 131 */ "sortorder ::= ASC", + /* 132 */ "sortorder ::= DESC", + /* 133 */ "sortorder ::=", + /* 134 */ "groupby_opt ::=", + /* 135 */ "groupby_opt ::= GROUP BY nexprlist", + /* 136 */ "having_opt ::=", + /* 137 */ "having_opt ::= HAVING expr", + /* 138 */ "limit_opt ::=", + /* 139 */ "limit_opt ::= LIMIT expr", + /* 140 */ "limit_opt ::= LIMIT expr OFFSET expr", + /* 141 */ "limit_opt ::= LIMIT expr COMMA expr", + /* 142 */ "cmd ::= with DELETE FROM xfullname indexed_opt where_opt", + /* 143 */ "where_opt ::=", + /* 144 */ "where_opt ::= WHERE expr", + /* 145 */ "cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist where_opt", + /* 146 */ "setlist ::= setlist COMMA nm EQ expr", + /* 147 */ "setlist ::= setlist COMMA LP idlist RP EQ expr", + /* 148 */ "setlist ::= nm EQ expr", + /* 149 */ "setlist ::= LP idlist RP EQ expr", + /* 150 */ "cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert", + /* 151 */ "cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES", + /* 152 */ "upsert ::=", + /* 153 */ "upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt", + /* 154 */ "upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING", + /* 155 */ "upsert ::= ON CONFLICT DO NOTHING", + /* 156 */ "insert_cmd ::= INSERT orconf", + /* 157 */ "insert_cmd ::= REPLACE", + /* 158 */ "idlist_opt ::=", + /* 159 */ "idlist_opt ::= LP idlist RP", + /* 160 */ "idlist ::= idlist COMMA nm", + /* 161 */ "idlist ::= nm", + /* 162 */ "expr ::= LP expr RP", + /* 163 */ "expr ::= ID|INDEXED", + /* 164 */ "expr ::= JOIN_KW", + /* 165 */ "expr ::= nm DOT nm", + /* 166 */ "expr ::= nm DOT nm DOT nm", + /* 167 */ "term ::= NULL|FLOAT|BLOB", + /* 168 */ "term ::= STRING", + /* 169 */ "term ::= INTEGER", + /* 170 */ "expr ::= VARIABLE", + /* 171 */ "expr ::= expr COLLATE ID|STRING", + /* 172 */ "expr ::= CAST LP expr AS typetoken RP", + /* 173 */ "expr ::= ID|INDEXED LP distinct exprlist RP", + /* 174 */ "expr ::= ID|INDEXED LP STAR RP", + /* 175 */ "expr ::= ID|INDEXED LP distinct exprlist RP over_clause", + /* 176 */ "expr ::= ID|INDEXED LP STAR RP over_clause", + /* 177 */ "term ::= CTIME_KW", + /* 178 */ "expr ::= LP nexprlist COMMA expr RP", + /* 179 */ "expr ::= expr AND expr", + /* 180 */ "expr ::= expr OR expr", + /* 181 */ "expr ::= expr LT|GT|GE|LE expr", + /* 182 */ "expr ::= expr EQ|NE expr", + /* 183 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr", + /* 184 */ "expr ::= expr PLUS|MINUS expr", + /* 185 */ "expr ::= expr STAR|SLASH|REM expr", + /* 186 */ "expr ::= expr CONCAT expr", + /* 187 */ "likeop ::= NOT LIKE_KW|MATCH", + /* 188 */ "expr ::= expr likeop expr", + /* 189 */ "expr ::= expr likeop expr ESCAPE expr", + /* 190 */ "expr ::= expr ISNULL|NOTNULL", + /* 191 */ "expr ::= expr NOT NULL", + /* 192 */ "expr ::= expr IS expr", + /* 193 */ "expr ::= expr IS NOT expr", + /* 194 */ "expr ::= NOT expr", + /* 195 */ "expr ::= BITNOT expr", + /* 196 */ "expr ::= PLUS|MINUS expr", + /* 197 */ "between_op ::= BETWEEN", + /* 198 */ "between_op ::= NOT BETWEEN", + /* 199 */ "expr ::= expr between_op expr AND expr", + /* 200 */ "in_op ::= IN", + /* 201 */ "in_op ::= NOT IN", + /* 202 */ "expr ::= expr in_op LP exprlist RP", + /* 203 */ "expr ::= LP select RP", + /* 204 */ "expr ::= expr in_op LP select RP", + /* 205 */ "expr ::= expr in_op nm dbnm paren_exprlist", + /* 206 */ "expr ::= EXISTS LP select RP", + /* 207 */ "expr ::= CASE case_operand case_exprlist case_else END", + /* 208 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr", + /* 209 */ "case_exprlist ::= WHEN expr THEN expr", + /* 210 */ "case_else ::= ELSE expr", + /* 211 */ "case_else ::=", + /* 212 */ "case_operand ::= expr", + /* 213 */ "case_operand ::=", + /* 214 */ "exprlist ::=", + /* 215 */ "nexprlist ::= nexprlist COMMA expr", + /* 216 */ "nexprlist ::= expr", + /* 217 */ "paren_exprlist ::=", + /* 218 */ "paren_exprlist ::= LP exprlist RP", + /* 219 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt", + /* 220 */ "uniqueflag ::= UNIQUE", + /* 221 */ "uniqueflag ::=", + /* 222 */ "eidlist_opt ::=", + /* 223 */ "eidlist_opt ::= LP eidlist RP", + /* 224 */ "eidlist ::= eidlist COMMA nm collate sortorder", + /* 225 */ "eidlist ::= nm collate sortorder", + /* 226 */ "collate ::=", + /* 227 */ "collate ::= COLLATE ID|STRING", + /* 228 */ "cmd ::= DROP INDEX ifexists fullname", + /* 229 */ "cmd ::= VACUUM", + /* 230 */ "cmd ::= VACUUM nm", + /* 231 */ "cmd ::= PRAGMA nm dbnm", + /* 232 */ "cmd ::= PRAGMA nm dbnm EQ nmnum", + /* 233 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP", + /* 234 */ "cmd ::= PRAGMA nm dbnm EQ minus_num", + /* 235 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP", + /* 236 */ "plus_num ::= PLUS INTEGER|FLOAT", + /* 237 */ "minus_num ::= MINUS INTEGER|FLOAT", + /* 238 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END", + /* 239 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause", + /* 240 */ "trigger_time ::= BEFORE|AFTER", + /* 241 */ "trigger_time ::= INSTEAD OF", + /* 242 */ "trigger_time ::=", + /* 243 */ "trigger_event ::= DELETE|INSERT", + /* 244 */ "trigger_event ::= UPDATE", + /* 245 */ "trigger_event ::= UPDATE OF idlist", + /* 246 */ "when_clause ::=", + /* 247 */ "when_clause ::= WHEN expr", + /* 248 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI", + /* 249 */ "trigger_cmd_list ::= trigger_cmd SEMI", + /* 250 */ "trnm ::= nm DOT nm", + /* 251 */ "tridxby ::= INDEXED BY nm", + /* 252 */ "tridxby ::= NOT INDEXED", + /* 253 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt", + /* 254 */ "trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt", + /* 255 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt", + /* 256 */ "trigger_cmd ::= scanpt select scanpt", + /* 257 */ "expr ::= RAISE LP IGNORE RP", + /* 258 */ "expr ::= RAISE LP raisetype COMMA nm RP", + /* 259 */ "raisetype ::= ROLLBACK", + /* 260 */ "raisetype ::= ABORT", + /* 261 */ "raisetype ::= FAIL", + /* 262 */ "cmd ::= DROP TRIGGER ifexists fullname", + /* 263 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt", + /* 264 */ "cmd ::= DETACH database_kw_opt expr", + /* 265 */ "key_opt ::=", + /* 266 */ "key_opt ::= KEY expr", + /* 267 */ "cmd ::= REINDEX", + /* 268 */ "cmd ::= REINDEX nm dbnm", + /* 269 */ "cmd ::= ANALYZE", + /* 270 */ "cmd ::= ANALYZE nm dbnm", + /* 271 */ "cmd ::= ALTER TABLE fullname RENAME TO nm", + /* 272 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist", + /* 273 */ "add_column_fullname ::= fullname", + /* 274 */ "cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm", + /* 275 */ "cmd ::= create_vtab", + /* 276 */ "cmd ::= create_vtab LP vtabarglist RP", + /* 277 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm", + /* 278 */ "vtabarg ::=", + /* 279 */ "vtabargtoken ::= ANY", + /* 280 */ "vtabargtoken ::= lp anylist RP", + /* 281 */ "lp ::= LP", + /* 282 */ "with ::= WITH wqlist", + /* 283 */ "with ::= WITH RECURSIVE wqlist", + /* 284 */ "wqlist ::= nm eidlist_opt AS LP select RP", + /* 285 */ "wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP", + /* 286 */ "windowdefn_list ::= windowdefn", + /* 287 */ "windowdefn_list ::= windowdefn_list COMMA windowdefn", + /* 288 */ "windowdefn ::= nm AS window", + /* 289 */ "window ::= LP part_opt orderby_opt frame_opt RP", + /* 290 */ "part_opt ::= PARTITION BY nexprlist", + /* 291 */ "part_opt ::=", + /* 292 */ "frame_opt ::=", + /* 293 */ "frame_opt ::= range_or_rows frame_bound_s", + /* 294 */ "frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e", + /* 295 */ "range_or_rows ::= RANGE", + /* 296 */ "range_or_rows ::= ROWS", + /* 297 */ "frame_bound_s ::= frame_bound", + /* 298 */ "frame_bound_s ::= UNBOUNDED PRECEDING", + /* 299 */ "frame_bound_e ::= frame_bound", + /* 300 */ "frame_bound_e ::= UNBOUNDED FOLLOWING", + /* 301 */ "frame_bound ::= expr PRECEDING", + /* 302 */ "frame_bound ::= CURRENT ROW", + /* 303 */ "frame_bound ::= expr FOLLOWING", + /* 304 */ "window_clause ::= WINDOW windowdefn_list", + /* 305 */ "over_clause ::= filter_opt OVER window", + /* 306 */ "over_clause ::= filter_opt OVER nm", + /* 307 */ "filter_opt ::=", + /* 308 */ "filter_opt ::= FILTER LP WHERE expr RP", + /* 309 */ "input ::= cmdlist", + /* 310 */ "cmdlist ::= cmdlist ecmd", + /* 311 */ "cmdlist ::= ecmd", + /* 312 */ "ecmd ::= SEMI", + /* 313 */ "ecmd ::= cmdx SEMI", + /* 314 */ "ecmd ::= explain cmdx", + /* 315 */ "trans_opt ::=", + /* 316 */ "trans_opt ::= TRANSACTION", + /* 317 */ "trans_opt ::= TRANSACTION nm", + /* 318 */ "savepoint_opt ::= SAVEPOINT", + /* 319 */ "savepoint_opt ::=", + /* 320 */ "cmd ::= create_table create_table_args", + /* 321 */ "columnlist ::= columnlist COMMA columnname carglist", + /* 322 */ "columnlist ::= columnname carglist", + /* 323 */ "nm ::= ID|INDEXED", + /* 324 */ "nm ::= STRING", + /* 325 */ "nm ::= JOIN_KW", + /* 326 */ "typetoken ::= typename", + /* 327 */ "typename ::= ID|STRING", + /* 328 */ "signed ::= plus_num", + /* 329 */ "signed ::= minus_num", + /* 330 */ "carglist ::= carglist ccons", + /* 331 */ "carglist ::=", + /* 332 */ "ccons ::= NULL onconf", + /* 333 */ "conslist_opt ::= COMMA conslist", + /* 334 */ "conslist ::= conslist tconscomma tcons", + /* 335 */ "conslist ::= tcons", + /* 336 */ "tconscomma ::=", + /* 337 */ "defer_subclause_opt ::= defer_subclause", + /* 338 */ "resolvetype ::= raisetype", + /* 339 */ "selectnowith ::= oneselect", + /* 340 */ "oneselect ::= values", + /* 341 */ "sclp ::= selcollist COMMA", + /* 342 */ "as ::= ID|STRING", + /* 343 */ "expr ::= term", + /* 344 */ "likeop ::= LIKE_KW|MATCH", + /* 345 */ "exprlist ::= nexprlist", + /* 346 */ "nmnum ::= plus_num", + /* 347 */ "nmnum ::= nm", + /* 348 */ "nmnum ::= ON", + /* 349 */ "nmnum ::= DELETE", + /* 350 */ "nmnum ::= DEFAULT", + /* 351 */ "plus_num ::= INTEGER|FLOAT", + /* 352 */ "foreach_clause ::=", + /* 353 */ "foreach_clause ::= FOR EACH ROW", + /* 354 */ "trnm ::= nm", + /* 355 */ "tridxby ::=", + /* 356 */ "database_kw_opt ::= DATABASE", + /* 357 */ "database_kw_opt ::=", + /* 358 */ "kwcolumn_opt ::=", + /* 359 */ "kwcolumn_opt ::= COLUMNKW", + /* 360 */ "vtabarglist ::= vtabarg", + /* 361 */ "vtabarglist ::= vtabarglist COMMA vtabarg", + /* 362 */ "vtabarg ::= vtabarg vtabargtoken", + /* 363 */ "anylist ::=", + /* 364 */ "anylist ::= anylist LP anylist RP", + /* 365 */ "anylist ::= anylist ANY", + /* 366 */ "with ::=", }; #endif /* NDEBUG */ @@ -139733,28 +148620,29 @@ static int yyGrowStack(yyParser *p){ /* Initialize a new parser that has already been allocated. */ -SQLITE_PRIVATE void sqlite3ParserInit(void *yypParser){ - yyParser *pParser = (yyParser*)yypParser; +SQLITE_PRIVATE void sqlite3ParserInit(void *yypRawParser sqlite3ParserCTX_PDECL){ + yyParser *yypParser = (yyParser*)yypRawParser; + sqlite3ParserCTX_STORE #ifdef YYTRACKMAXSTACKDEPTH - pParser->yyhwm = 0; + yypParser->yyhwm = 0; #endif #if YYSTACKDEPTH<=0 - pParser->yytos = NULL; - pParser->yystack = NULL; - pParser->yystksz = 0; - if( yyGrowStack(pParser) ){ - pParser->yystack = &pParser->yystk0; - pParser->yystksz = 1; + yypParser->yytos = NULL; + yypParser->yystack = NULL; + yypParser->yystksz = 0; + if( yyGrowStack(yypParser) ){ + yypParser->yystack = &yypParser->yystk0; + yypParser->yystksz = 1; } #endif #ifndef YYNOERRORRECOVERY - pParser->yyerrcnt = -1; + yypParser->yyerrcnt = -1; #endif - pParser->yytos = pParser->yystack; - pParser->yystack[0].stateno = 0; - pParser->yystack[0].major = 0; + yypParser->yytos = yypParser->yystack; + yypParser->yystack[0].stateno = 0; + yypParser->yystack[0].major = 0; #if YYSTACKDEPTH>0 - pParser->yystackEnd = &pParser->yystack[YYSTACKDEPTH-1]; + yypParser->yystackEnd = &yypParser->yystack[YYSTACKDEPTH-1]; #endif } @@ -139771,11 +148659,14 @@ SQLITE_PRIVATE void sqlite3ParserInit(void *yypParser){ ** A pointer to a parser. This pointer is used in subsequent calls ** to sqlite3Parser and sqlite3ParserFree. */ -SQLITE_PRIVATE void *sqlite3ParserAlloc(void *(*mallocProc)(YYMALLOCARGTYPE)){ - yyParser *pParser; - pParser = (yyParser*)(*mallocProc)( (YYMALLOCARGTYPE)sizeof(yyParser) ); - if( pParser ) sqlite3ParserInit(pParser); - return pParser; +SQLITE_PRIVATE void *sqlite3ParserAlloc(void *(*mallocProc)(YYMALLOCARGTYPE) sqlite3ParserCTX_PDECL){ + yyParser *yypParser; + yypParser = (yyParser*)(*mallocProc)( (YYMALLOCARGTYPE)sizeof(yyParser) ); + if( yypParser ){ + sqlite3ParserCTX_STORE + sqlite3ParserInit(yypParser sqlite3ParserCTX_PARAM); + } + return (void*)yypParser; } #endif /* sqlite3Parser_ENGINEALWAYSONSTACK */ @@ -139792,7 +148683,8 @@ static void yy_destructor( YYCODETYPE yymajor, /* Type code for object to destroy */ YYMINORTYPE *yypminor /* The object to be destroyed */ ){ - sqlite3ParserARG_FETCH; + sqlite3ParserARG_FETCH + sqlite3ParserCTX_FETCH switch( yymajor ){ /* Here is inserted the actions which take place when a ** terminal or non-terminal is destroyed. This can happen @@ -139805,73 +148697,96 @@ static void yy_destructor( ** inside the C code. */ /********* Begin destructor definitions ***************************************/ - case 163: /* select */ - case 195: /* selectnowith */ - case 196: /* oneselect */ - case 207: /* values */ + case 174: /* select */ + case 206: /* selectnowith */ + case 207: /* oneselect */ + case 219: /* values */ +{ +sqlite3SelectDelete(pParse->db, (yypminor->yy489)); +} + break; + case 184: /* term */ + case 185: /* expr */ + case 213: /* where_opt */ + case 215: /* having_opt */ + case 227: /* on_opt */ + case 242: /* case_operand */ + case 244: /* case_else */ + case 253: /* when_clause */ + case 258: /* key_opt */ + case 272: /* filter_opt */ { -sqlite3SelectDelete(pParse->db, (yypminor->yy387)); +sqlite3ExprDelete(pParse->db, (yypminor->yy18)); } break; - case 173: /* term */ - case 174: /* expr */ - case 202: /* where_opt */ - case 204: /* having_opt */ - case 216: /* on_opt */ - case 226: /* case_operand */ - case 228: /* case_else */ - case 237: /* when_clause */ - case 242: /* key_opt */ + case 189: /* eidlist_opt */ + case 198: /* sortlist */ + case 199: /* eidlist */ + case 211: /* selcollist */ + case 214: /* groupby_opt */ + case 216: /* orderby_opt */ + case 220: /* nexprlist */ + case 221: /* sclp */ + case 229: /* exprlist */ + case 233: /* setlist */ + case 241: /* paren_exprlist */ + case 243: /* case_exprlist */ + case 271: /* part_opt */ { -sqlite3ExprDelete(pParse->db, (yypminor->yy314)); +sqlite3ExprListDelete(pParse->db, (yypminor->yy420)); } break; - case 178: /* eidlist_opt */ - case 187: /* sortlist */ - case 188: /* eidlist */ - case 200: /* selcollist */ - case 203: /* groupby_opt */ - case 205: /* orderby_opt */ - case 208: /* nexprlist */ - case 209: /* exprlist */ - case 210: /* sclp */ - case 219: /* setlist */ - case 225: /* paren_exprlist */ - case 227: /* case_exprlist */ + case 205: /* fullname */ + case 212: /* from */ + case 223: /* seltablist */ + case 224: /* stl_prefix */ + case 230: /* xfullname */ { -sqlite3ExprListDelete(pParse->db, (yypminor->yy322)); +sqlite3SrcListDelete(pParse->db, (yypminor->yy135)); } break; - case 194: /* fullname */ - case 201: /* from */ - case 212: /* seltablist */ - case 213: /* stl_prefix */ + case 208: /* wqlist */ { -sqlite3SrcListDelete(pParse->db, (yypminor->yy259)); +sqlite3WithDelete(pParse->db, (yypminor->yy449)); } break; - case 197: /* with */ - case 251: /* wqlist */ + case 218: /* window_clause */ + case 267: /* windowdefn_list */ { -sqlite3WithDelete(pParse->db, (yypminor->yy451)); +sqlite3WindowListDelete(pParse->db, (yypminor->yy327)); } break; - case 217: /* using_opt */ - case 218: /* idlist */ - case 221: /* idlist_opt */ + case 228: /* using_opt */ + case 231: /* idlist */ + case 235: /* idlist_opt */ { -sqlite3IdListDelete(pParse->db, (yypminor->yy384)); +sqlite3IdListDelete(pParse->db, (yypminor->yy48)); } break; - case 233: /* trigger_cmd_list */ - case 238: /* trigger_cmd */ + case 237: /* over_clause */ + case 268: /* windowdefn */ + case 269: /* window */ + case 270: /* frame_opt */ { -sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy203)); +sqlite3WindowDelete(pParse->db, (yypminor->yy327)); } break; - case 235: /* trigger_event */ + case 249: /* trigger_cmd_list */ + case 254: /* trigger_cmd */ { -sqlite3IdListDelete(pParse->db, (yypminor->yy90).b); +sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy207)); +} + break; + case 251: /* trigger_event */ +{ +sqlite3IdListDelete(pParse->db, (yypminor->yy34).b); +} + break; + case 274: /* frame_bound */ + case 275: /* frame_bound_s */ + case 276: /* frame_bound_e */ +{ +sqlite3ExprDelete(pParse->db, (yypminor->yy119).pExpr); } break; /********* End destructor definitions *****************************************/ @@ -139983,13 +148898,12 @@ SQLITE_PRIVATE int sqlite3ParserCoverage(FILE *out){ ** Find the appropriate action for a parser given the terminal ** look-ahead token iLookAhead. */ -static unsigned int yy_find_shift_action( - yyParser *pParser, /* The parser */ - YYCODETYPE iLookAhead /* The look-ahead token */ +static YYACTIONTYPE yy_find_shift_action( + YYCODETYPE iLookAhead, /* The look-ahead token */ + YYACTIONTYPE stateno /* Current state number */ ){ int i; - int stateno = pParser->yytos->stateno; - + if( stateno>YY_MAX_SHIFT ) return stateno; assert( stateno <= YY_SHIFT_COUNT ); #if defined(YYCOVERAGE) @@ -139997,11 +148911,12 @@ static unsigned int yy_find_shift_action( #endif do{ i = yy_shift_ofst[stateno]; - assert( i>=0 && i+YYNTOKEN<=sizeof(yy_lookahead)/sizeof(yy_lookahead[0]) ); + assert( i>=0 ); + /* assert( i+YYNTOKEN<=(int)YY_NLOOKAHEAD ); */ assert( iLookAhead!=YYNOCODE ); assert( iLookAhead < YYNTOKEN ); i += iLookAhead; - if( yy_lookahead[i]!=iLookAhead ){ + if( i>=YY_NLOOKAHEAD || yy_lookahead[i]!=iLookAhead ){ #ifdef YYFALLBACK YYCODETYPE iFallback; /* Fallback token */ if( iLookAhead=YY_ACTTAB_COUNT j0 ){ #ifndef NDEBUG @@ -140051,8 +148967,8 @@ static unsigned int yy_find_shift_action( ** Find the appropriate action for a parser given the non-terminal ** look-ahead token iLookAhead. */ -static int yy_find_reduce_action( - int stateno, /* Current state number */ +static YYACTIONTYPE yy_find_reduce_action( + YYACTIONTYPE stateno, /* Current state number */ YYCODETYPE iLookAhead /* The look-ahead token */ ){ int i; @@ -140081,7 +148997,8 @@ static int yy_find_reduce_action( ** The following routine is called if the stack overflows. */ static void yyStackOverflow(yyParser *yypParser){ - sqlite3ParserARG_FETCH; + sqlite3ParserARG_FETCH + sqlite3ParserCTX_FETCH #ifndef NDEBUG if( yyTraceFILE ){ fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt); @@ -140094,7 +149011,8 @@ static void yyStackOverflow(yyParser *yypParser){ sqlite3ErrorMsg(pParse, "parser stack overflow"); /******** End %stack_overflow code ********************************************/ - sqlite3ParserARG_STORE; /* Suppress warning about unused %extra_argument var */ + sqlite3ParserARG_STORE /* Suppress warning about unused %extra_argument var */ + sqlite3ParserCTX_STORE } /* @@ -140123,8 +149041,8 @@ static void yyTraceShift(yyParser *yypParser, int yyNewState, const char *zTag){ */ static void yy_shift( yyParser *yypParser, /* The parser to be shifted */ - int yyNewState, /* The new state to shift in */ - int yyMajor, /* The major token to shift in */ + YYACTIONTYPE yyNewState, /* The new state to shift in */ + YYCODETYPE yyMajor, /* The major token to shift in */ sqlite3ParserTOKENTYPE yyMinor /* The minor token to shift in */ ){ yyStackEntry *yytos; @@ -140154,8 +149072,8 @@ static void yy_shift( yyNewState += YY_MIN_REDUCE - YY_MIN_SHIFTREDUCE; } yytos = yypParser->yytos; - yytos->stateno = (YYACTIONTYPE)yyNewState; - yytos->major = (YYCODETYPE)yyMajor; + yytos->stateno = yyNewState; + yytos->major = yyMajor; yytos->minor.yy0 = yyMinor; yyTraceShift(yypParser, yyNewState, "Shift"); } @@ -140167,336 +149085,373 @@ static const struct { YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ signed char nrhs; /* Negative of the number of RHS symbols in the rule */ } yyRuleInfo[] = { - { 147, -1 }, /* (0) explain ::= EXPLAIN */ - { 147, -3 }, /* (1) explain ::= EXPLAIN QUERY PLAN */ - { 148, -1 }, /* (2) cmdx ::= cmd */ - { 149, -3 }, /* (3) cmd ::= BEGIN transtype trans_opt */ - { 150, 0 }, /* (4) transtype ::= */ - { 150, -1 }, /* (5) transtype ::= DEFERRED */ - { 150, -1 }, /* (6) transtype ::= IMMEDIATE */ - { 150, -1 }, /* (7) transtype ::= EXCLUSIVE */ - { 149, -2 }, /* (8) cmd ::= COMMIT|END trans_opt */ - { 149, -2 }, /* (9) cmd ::= ROLLBACK trans_opt */ - { 149, -2 }, /* (10) cmd ::= SAVEPOINT nm */ - { 149, -3 }, /* (11) cmd ::= RELEASE savepoint_opt nm */ - { 149, -5 }, /* (12) cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ - { 154, -6 }, /* (13) create_table ::= createkw temp TABLE ifnotexists nm dbnm */ - { 156, -1 }, /* (14) createkw ::= CREATE */ - { 158, 0 }, /* (15) ifnotexists ::= */ - { 158, -3 }, /* (16) ifnotexists ::= IF NOT EXISTS */ - { 157, -1 }, /* (17) temp ::= TEMP */ - { 157, 0 }, /* (18) temp ::= */ - { 155, -5 }, /* (19) create_table_args ::= LP columnlist conslist_opt RP table_options */ - { 155, -2 }, /* (20) create_table_args ::= AS select */ - { 162, 0 }, /* (21) table_options ::= */ - { 162, -2 }, /* (22) table_options ::= WITHOUT nm */ - { 164, -2 }, /* (23) columnname ::= nm typetoken */ - { 166, 0 }, /* (24) typetoken ::= */ - { 166, -4 }, /* (25) typetoken ::= typename LP signed RP */ - { 166, -6 }, /* (26) typetoken ::= typename LP signed COMMA signed RP */ - { 167, -2 }, /* (27) typename ::= typename ID|STRING */ - { 171, 0 }, /* (28) scanpt ::= */ - { 172, -2 }, /* (29) ccons ::= CONSTRAINT nm */ - { 172, -4 }, /* (30) ccons ::= DEFAULT scanpt term scanpt */ - { 172, -4 }, /* (31) ccons ::= DEFAULT LP expr RP */ - { 172, -4 }, /* (32) ccons ::= DEFAULT PLUS term scanpt */ - { 172, -4 }, /* (33) ccons ::= DEFAULT MINUS term scanpt */ - { 172, -3 }, /* (34) ccons ::= DEFAULT scanpt ID|INDEXED */ - { 172, -3 }, /* (35) ccons ::= NOT NULL onconf */ - { 172, -5 }, /* (36) ccons ::= PRIMARY KEY sortorder onconf autoinc */ - { 172, -2 }, /* (37) ccons ::= UNIQUE onconf */ - { 172, -4 }, /* (38) ccons ::= CHECK LP expr RP */ - { 172, -4 }, /* (39) ccons ::= REFERENCES nm eidlist_opt refargs */ - { 172, -1 }, /* (40) ccons ::= defer_subclause */ - { 172, -2 }, /* (41) ccons ::= COLLATE ID|STRING */ - { 177, 0 }, /* (42) autoinc ::= */ - { 177, -1 }, /* (43) autoinc ::= AUTOINCR */ - { 179, 0 }, /* (44) refargs ::= */ - { 179, -2 }, /* (45) refargs ::= refargs refarg */ - { 181, -2 }, /* (46) refarg ::= MATCH nm */ - { 181, -3 }, /* (47) refarg ::= ON INSERT refact */ - { 181, -3 }, /* (48) refarg ::= ON DELETE refact */ - { 181, -3 }, /* (49) refarg ::= ON UPDATE refact */ - { 182, -2 }, /* (50) refact ::= SET NULL */ - { 182, -2 }, /* (51) refact ::= SET DEFAULT */ - { 182, -1 }, /* (52) refact ::= CASCADE */ - { 182, -1 }, /* (53) refact ::= RESTRICT */ - { 182, -2 }, /* (54) refact ::= NO ACTION */ - { 180, -3 }, /* (55) defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ - { 180, -2 }, /* (56) defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ - { 183, 0 }, /* (57) init_deferred_pred_opt ::= */ - { 183, -2 }, /* (58) init_deferred_pred_opt ::= INITIALLY DEFERRED */ - { 183, -2 }, /* (59) init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ - { 161, 0 }, /* (60) conslist_opt ::= */ - { 185, -1 }, /* (61) tconscomma ::= COMMA */ - { 186, -2 }, /* (62) tcons ::= CONSTRAINT nm */ - { 186, -7 }, /* (63) tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ - { 186, -5 }, /* (64) tcons ::= UNIQUE LP sortlist RP onconf */ - { 186, -5 }, /* (65) tcons ::= CHECK LP expr RP onconf */ - { 186, -10 }, /* (66) tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ - { 189, 0 }, /* (67) defer_subclause_opt ::= */ - { 175, 0 }, /* (68) onconf ::= */ - { 175, -3 }, /* (69) onconf ::= ON CONFLICT resolvetype */ - { 190, 0 }, /* (70) orconf ::= */ - { 190, -2 }, /* (71) orconf ::= OR resolvetype */ - { 191, -1 }, /* (72) resolvetype ::= IGNORE */ - { 191, -1 }, /* (73) resolvetype ::= REPLACE */ - { 149, -4 }, /* (74) cmd ::= DROP TABLE ifexists fullname */ - { 193, -2 }, /* (75) ifexists ::= IF EXISTS */ - { 193, 0 }, /* (76) ifexists ::= */ - { 149, -9 }, /* (77) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ - { 149, -4 }, /* (78) cmd ::= DROP VIEW ifexists fullname */ - { 149, -1 }, /* (79) cmd ::= select */ - { 163, -2 }, /* (80) select ::= with selectnowith */ - { 195, -3 }, /* (81) selectnowith ::= selectnowith multiselect_op oneselect */ - { 198, -1 }, /* (82) multiselect_op ::= UNION */ - { 198, -2 }, /* (83) multiselect_op ::= UNION ALL */ - { 198, -1 }, /* (84) multiselect_op ::= EXCEPT|INTERSECT */ - { 196, -9 }, /* (85) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ - { 207, -4 }, /* (86) values ::= VALUES LP nexprlist RP */ - { 207, -5 }, /* (87) values ::= values COMMA LP exprlist RP */ - { 199, -1 }, /* (88) distinct ::= DISTINCT */ - { 199, -1 }, /* (89) distinct ::= ALL */ - { 199, 0 }, /* (90) distinct ::= */ - { 210, 0 }, /* (91) sclp ::= */ - { 200, -5 }, /* (92) selcollist ::= sclp scanpt expr scanpt as */ - { 200, -3 }, /* (93) selcollist ::= sclp scanpt STAR */ - { 200, -5 }, /* (94) selcollist ::= sclp scanpt nm DOT STAR */ - { 211, -2 }, /* (95) as ::= AS nm */ - { 211, 0 }, /* (96) as ::= */ - { 201, 0 }, /* (97) from ::= */ - { 201, -2 }, /* (98) from ::= FROM seltablist */ - { 213, -2 }, /* (99) stl_prefix ::= seltablist joinop */ - { 213, 0 }, /* (100) stl_prefix ::= */ - { 212, -7 }, /* (101) seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */ - { 212, -9 }, /* (102) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */ - { 212, -7 }, /* (103) seltablist ::= stl_prefix LP select RP as on_opt using_opt */ - { 212, -7 }, /* (104) seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */ - { 159, 0 }, /* (105) dbnm ::= */ - { 159, -2 }, /* (106) dbnm ::= DOT nm */ - { 194, -2 }, /* (107) fullname ::= nm dbnm */ - { 214, -1 }, /* (108) joinop ::= COMMA|JOIN */ - { 214, -2 }, /* (109) joinop ::= JOIN_KW JOIN */ - { 214, -3 }, /* (110) joinop ::= JOIN_KW nm JOIN */ - { 214, -4 }, /* (111) joinop ::= JOIN_KW nm nm JOIN */ - { 216, -2 }, /* (112) on_opt ::= ON expr */ - { 216, 0 }, /* (113) on_opt ::= */ - { 215, 0 }, /* (114) indexed_opt ::= */ - { 215, -3 }, /* (115) indexed_opt ::= INDEXED BY nm */ - { 215, -2 }, /* (116) indexed_opt ::= NOT INDEXED */ - { 217, -4 }, /* (117) using_opt ::= USING LP idlist RP */ - { 217, 0 }, /* (118) using_opt ::= */ - { 205, 0 }, /* (119) orderby_opt ::= */ - { 205, -3 }, /* (120) orderby_opt ::= ORDER BY sortlist */ - { 187, -4 }, /* (121) sortlist ::= sortlist COMMA expr sortorder */ - { 187, -2 }, /* (122) sortlist ::= expr sortorder */ - { 176, -1 }, /* (123) sortorder ::= ASC */ - { 176, -1 }, /* (124) sortorder ::= DESC */ - { 176, 0 }, /* (125) sortorder ::= */ - { 203, 0 }, /* (126) groupby_opt ::= */ - { 203, -3 }, /* (127) groupby_opt ::= GROUP BY nexprlist */ - { 204, 0 }, /* (128) having_opt ::= */ - { 204, -2 }, /* (129) having_opt ::= HAVING expr */ - { 206, 0 }, /* (130) limit_opt ::= */ - { 206, -2 }, /* (131) limit_opt ::= LIMIT expr */ - { 206, -4 }, /* (132) limit_opt ::= LIMIT expr OFFSET expr */ - { 206, -4 }, /* (133) limit_opt ::= LIMIT expr COMMA expr */ - { 149, -6 }, /* (134) cmd ::= with DELETE FROM fullname indexed_opt where_opt */ - { 202, 0 }, /* (135) where_opt ::= */ - { 202, -2 }, /* (136) where_opt ::= WHERE expr */ - { 149, -8 }, /* (137) cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt */ - { 219, -5 }, /* (138) setlist ::= setlist COMMA nm EQ expr */ - { 219, -7 }, /* (139) setlist ::= setlist COMMA LP idlist RP EQ expr */ - { 219, -3 }, /* (140) setlist ::= nm EQ expr */ - { 219, -5 }, /* (141) setlist ::= LP idlist RP EQ expr */ - { 149, -6 }, /* (142) cmd ::= with insert_cmd INTO fullname idlist_opt select */ - { 149, -7 }, /* (143) cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES */ - { 220, -2 }, /* (144) insert_cmd ::= INSERT orconf */ - { 220, -1 }, /* (145) insert_cmd ::= REPLACE */ - { 221, 0 }, /* (146) idlist_opt ::= */ - { 221, -3 }, /* (147) idlist_opt ::= LP idlist RP */ - { 218, -3 }, /* (148) idlist ::= idlist COMMA nm */ - { 218, -1 }, /* (149) idlist ::= nm */ - { 174, -3 }, /* (150) expr ::= LP expr RP */ - { 174, -1 }, /* (151) expr ::= ID|INDEXED */ - { 174, -1 }, /* (152) expr ::= JOIN_KW */ - { 174, -3 }, /* (153) expr ::= nm DOT nm */ - { 174, -5 }, /* (154) expr ::= nm DOT nm DOT nm */ - { 173, -1 }, /* (155) term ::= NULL|FLOAT|BLOB */ - { 173, -1 }, /* (156) term ::= STRING */ - { 173, -1 }, /* (157) term ::= INTEGER */ - { 174, -1 }, /* (158) expr ::= VARIABLE */ - { 174, -3 }, /* (159) expr ::= expr COLLATE ID|STRING */ - { 174, -6 }, /* (160) expr ::= CAST LP expr AS typetoken RP */ - { 174, -5 }, /* (161) expr ::= ID|INDEXED LP distinct exprlist RP */ - { 174, -4 }, /* (162) expr ::= ID|INDEXED LP STAR RP */ - { 173, -1 }, /* (163) term ::= CTIME_KW */ - { 174, -5 }, /* (164) expr ::= LP nexprlist COMMA expr RP */ - { 174, -3 }, /* (165) expr ::= expr AND expr */ - { 174, -3 }, /* (166) expr ::= expr OR expr */ - { 174, -3 }, /* (167) expr ::= expr LT|GT|GE|LE expr */ - { 174, -3 }, /* (168) expr ::= expr EQ|NE expr */ - { 174, -3 }, /* (169) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ - { 174, -3 }, /* (170) expr ::= expr PLUS|MINUS expr */ - { 174, -3 }, /* (171) expr ::= expr STAR|SLASH|REM expr */ - { 174, -3 }, /* (172) expr ::= expr CONCAT expr */ - { 222, -2 }, /* (173) likeop ::= NOT LIKE_KW|MATCH */ - { 174, -3 }, /* (174) expr ::= expr likeop expr */ - { 174, -5 }, /* (175) expr ::= expr likeop expr ESCAPE expr */ - { 174, -2 }, /* (176) expr ::= expr ISNULL|NOTNULL */ - { 174, -3 }, /* (177) expr ::= expr NOT NULL */ - { 174, -3 }, /* (178) expr ::= expr IS expr */ - { 174, -4 }, /* (179) expr ::= expr IS NOT expr */ - { 174, -2 }, /* (180) expr ::= NOT expr */ - { 174, -2 }, /* (181) expr ::= BITNOT expr */ - { 174, -2 }, /* (182) expr ::= MINUS expr */ - { 174, -2 }, /* (183) expr ::= PLUS expr */ - { 223, -1 }, /* (184) between_op ::= BETWEEN */ - { 223, -2 }, /* (185) between_op ::= NOT BETWEEN */ - { 174, -5 }, /* (186) expr ::= expr between_op expr AND expr */ - { 224, -1 }, /* (187) in_op ::= IN */ - { 224, -2 }, /* (188) in_op ::= NOT IN */ - { 174, -5 }, /* (189) expr ::= expr in_op LP exprlist RP */ - { 174, -3 }, /* (190) expr ::= LP select RP */ - { 174, -5 }, /* (191) expr ::= expr in_op LP select RP */ - { 174, -5 }, /* (192) expr ::= expr in_op nm dbnm paren_exprlist */ - { 174, -4 }, /* (193) expr ::= EXISTS LP select RP */ - { 174, -5 }, /* (194) expr ::= CASE case_operand case_exprlist case_else END */ - { 227, -5 }, /* (195) case_exprlist ::= case_exprlist WHEN expr THEN expr */ - { 227, -4 }, /* (196) case_exprlist ::= WHEN expr THEN expr */ - { 228, -2 }, /* (197) case_else ::= ELSE expr */ - { 228, 0 }, /* (198) case_else ::= */ - { 226, -1 }, /* (199) case_operand ::= expr */ - { 226, 0 }, /* (200) case_operand ::= */ - { 209, 0 }, /* (201) exprlist ::= */ - { 208, -3 }, /* (202) nexprlist ::= nexprlist COMMA expr */ - { 208, -1 }, /* (203) nexprlist ::= expr */ - { 225, 0 }, /* (204) paren_exprlist ::= */ - { 225, -3 }, /* (205) paren_exprlist ::= LP exprlist RP */ - { 149, -12 }, /* (206) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ - { 229, -1 }, /* (207) uniqueflag ::= UNIQUE */ - { 229, 0 }, /* (208) uniqueflag ::= */ - { 178, 0 }, /* (209) eidlist_opt ::= */ - { 178, -3 }, /* (210) eidlist_opt ::= LP eidlist RP */ - { 188, -5 }, /* (211) eidlist ::= eidlist COMMA nm collate sortorder */ - { 188, -3 }, /* (212) eidlist ::= nm collate sortorder */ - { 230, 0 }, /* (213) collate ::= */ - { 230, -2 }, /* (214) collate ::= COLLATE ID|STRING */ - { 149, -4 }, /* (215) cmd ::= DROP INDEX ifexists fullname */ - { 149, -1 }, /* (216) cmd ::= VACUUM */ - { 149, -2 }, /* (217) cmd ::= VACUUM nm */ - { 149, -3 }, /* (218) cmd ::= PRAGMA nm dbnm */ - { 149, -5 }, /* (219) cmd ::= PRAGMA nm dbnm EQ nmnum */ - { 149, -6 }, /* (220) cmd ::= PRAGMA nm dbnm LP nmnum RP */ - { 149, -5 }, /* (221) cmd ::= PRAGMA nm dbnm EQ minus_num */ - { 149, -6 }, /* (222) cmd ::= PRAGMA nm dbnm LP minus_num RP */ - { 169, -2 }, /* (223) plus_num ::= PLUS INTEGER|FLOAT */ - { 170, -2 }, /* (224) minus_num ::= MINUS INTEGER|FLOAT */ - { 149, -5 }, /* (225) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ - { 232, -11 }, /* (226) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ - { 234, -1 }, /* (227) trigger_time ::= BEFORE|AFTER */ - { 234, -2 }, /* (228) trigger_time ::= INSTEAD OF */ - { 234, 0 }, /* (229) trigger_time ::= */ - { 235, -1 }, /* (230) trigger_event ::= DELETE|INSERT */ - { 235, -1 }, /* (231) trigger_event ::= UPDATE */ - { 235, -3 }, /* (232) trigger_event ::= UPDATE OF idlist */ - { 237, 0 }, /* (233) when_clause ::= */ - { 237, -2 }, /* (234) when_clause ::= WHEN expr */ - { 233, -3 }, /* (235) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ - { 233, -2 }, /* (236) trigger_cmd_list ::= trigger_cmd SEMI */ - { 239, -3 }, /* (237) trnm ::= nm DOT nm */ - { 240, -3 }, /* (238) tridxby ::= INDEXED BY nm */ - { 240, -2 }, /* (239) tridxby ::= NOT INDEXED */ - { 238, -8 }, /* (240) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */ - { 238, -7 }, /* (241) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select scanpt */ - { 238, -6 }, /* (242) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ - { 238, -3 }, /* (243) trigger_cmd ::= scanpt select scanpt */ - { 174, -4 }, /* (244) expr ::= RAISE LP IGNORE RP */ - { 174, -6 }, /* (245) expr ::= RAISE LP raisetype COMMA nm RP */ - { 192, -1 }, /* (246) raisetype ::= ROLLBACK */ - { 192, -1 }, /* (247) raisetype ::= ABORT */ - { 192, -1 }, /* (248) raisetype ::= FAIL */ - { 149, -4 }, /* (249) cmd ::= DROP TRIGGER ifexists fullname */ - { 149, -6 }, /* (250) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ - { 149, -3 }, /* (251) cmd ::= DETACH database_kw_opt expr */ - { 242, 0 }, /* (252) key_opt ::= */ - { 242, -2 }, /* (253) key_opt ::= KEY expr */ - { 149, -1 }, /* (254) cmd ::= REINDEX */ - { 149, -3 }, /* (255) cmd ::= REINDEX nm dbnm */ - { 149, -1 }, /* (256) cmd ::= ANALYZE */ - { 149, -3 }, /* (257) cmd ::= ANALYZE nm dbnm */ - { 149, -6 }, /* (258) cmd ::= ALTER TABLE fullname RENAME TO nm */ - { 149, -7 }, /* (259) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ - { 243, -1 }, /* (260) add_column_fullname ::= fullname */ - { 149, -1 }, /* (261) cmd ::= create_vtab */ - { 149, -4 }, /* (262) cmd ::= create_vtab LP vtabarglist RP */ - { 245, -8 }, /* (263) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ - { 247, 0 }, /* (264) vtabarg ::= */ - { 248, -1 }, /* (265) vtabargtoken ::= ANY */ - { 248, -3 }, /* (266) vtabargtoken ::= lp anylist RP */ - { 249, -1 }, /* (267) lp ::= LP */ - { 197, 0 }, /* (268) with ::= */ - { 197, -2 }, /* (269) with ::= WITH wqlist */ - { 197, -3 }, /* (270) with ::= WITH RECURSIVE wqlist */ - { 251, -6 }, /* (271) wqlist ::= nm eidlist_opt AS LP select RP */ - { 251, -8 }, /* (272) wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */ - { 144, -1 }, /* (273) input ::= cmdlist */ - { 145, -2 }, /* (274) cmdlist ::= cmdlist ecmd */ - { 145, -1 }, /* (275) cmdlist ::= ecmd */ - { 146, -1 }, /* (276) ecmd ::= SEMI */ - { 146, -3 }, /* (277) ecmd ::= explain cmdx SEMI */ - { 147, 0 }, /* (278) explain ::= */ - { 151, 0 }, /* (279) trans_opt ::= */ - { 151, -1 }, /* (280) trans_opt ::= TRANSACTION */ - { 151, -2 }, /* (281) trans_opt ::= TRANSACTION nm */ - { 153, -1 }, /* (282) savepoint_opt ::= SAVEPOINT */ - { 153, 0 }, /* (283) savepoint_opt ::= */ - { 149, -2 }, /* (284) cmd ::= create_table create_table_args */ - { 160, -4 }, /* (285) columnlist ::= columnlist COMMA columnname carglist */ - { 160, -2 }, /* (286) columnlist ::= columnname carglist */ - { 152, -1 }, /* (287) nm ::= ID|INDEXED */ - { 152, -1 }, /* (288) nm ::= STRING */ - { 152, -1 }, /* (289) nm ::= JOIN_KW */ - { 166, -1 }, /* (290) typetoken ::= typename */ - { 167, -1 }, /* (291) typename ::= ID|STRING */ - { 168, -1 }, /* (292) signed ::= plus_num */ - { 168, -1 }, /* (293) signed ::= minus_num */ - { 165, -2 }, /* (294) carglist ::= carglist ccons */ - { 165, 0 }, /* (295) carglist ::= */ - { 172, -2 }, /* (296) ccons ::= NULL onconf */ - { 161, -2 }, /* (297) conslist_opt ::= COMMA conslist */ - { 184, -3 }, /* (298) conslist ::= conslist tconscomma tcons */ - { 184, -1 }, /* (299) conslist ::= tcons */ - { 185, 0 }, /* (300) tconscomma ::= */ - { 189, -1 }, /* (301) defer_subclause_opt ::= defer_subclause */ - { 191, -1 }, /* (302) resolvetype ::= raisetype */ - { 195, -1 }, /* (303) selectnowith ::= oneselect */ - { 196, -1 }, /* (304) oneselect ::= values */ - { 210, -2 }, /* (305) sclp ::= selcollist COMMA */ - { 211, -1 }, /* (306) as ::= ID|STRING */ - { 174, -1 }, /* (307) expr ::= term */ - { 222, -1 }, /* (308) likeop ::= LIKE_KW|MATCH */ - { 209, -1 }, /* (309) exprlist ::= nexprlist */ - { 231, -1 }, /* (310) nmnum ::= plus_num */ - { 231, -1 }, /* (311) nmnum ::= nm */ - { 231, -1 }, /* (312) nmnum ::= ON */ - { 231, -1 }, /* (313) nmnum ::= DELETE */ - { 231, -1 }, /* (314) nmnum ::= DEFAULT */ - { 169, -1 }, /* (315) plus_num ::= INTEGER|FLOAT */ - { 236, 0 }, /* (316) foreach_clause ::= */ - { 236, -3 }, /* (317) foreach_clause ::= FOR EACH ROW */ - { 239, -1 }, /* (318) trnm ::= nm */ - { 240, 0 }, /* (319) tridxby ::= */ - { 241, -1 }, /* (320) database_kw_opt ::= DATABASE */ - { 241, 0 }, /* (321) database_kw_opt ::= */ - { 244, 0 }, /* (322) kwcolumn_opt ::= */ - { 244, -1 }, /* (323) kwcolumn_opt ::= COLUMNKW */ - { 246, -1 }, /* (324) vtabarglist ::= vtabarg */ - { 246, -3 }, /* (325) vtabarglist ::= vtabarglist COMMA vtabarg */ - { 247, -2 }, /* (326) vtabarg ::= vtabarg vtabargtoken */ - { 250, 0 }, /* (327) anylist ::= */ - { 250, -4 }, /* (328) anylist ::= anylist LP anylist RP */ - { 250, -2 }, /* (329) anylist ::= anylist ANY */ + { 159, -1 }, /* (0) explain ::= EXPLAIN */ + { 159, -3 }, /* (1) explain ::= EXPLAIN QUERY PLAN */ + { 158, -1 }, /* (2) cmdx ::= cmd */ + { 160, -3 }, /* (3) cmd ::= BEGIN transtype trans_opt */ + { 161, 0 }, /* (4) transtype ::= */ + { 161, -1 }, /* (5) transtype ::= DEFERRED */ + { 161, -1 }, /* (6) transtype ::= IMMEDIATE */ + { 161, -1 }, /* (7) transtype ::= EXCLUSIVE */ + { 160, -2 }, /* (8) cmd ::= COMMIT|END trans_opt */ + { 160, -2 }, /* (9) cmd ::= ROLLBACK trans_opt */ + { 160, -2 }, /* (10) cmd ::= SAVEPOINT nm */ + { 160, -3 }, /* (11) cmd ::= RELEASE savepoint_opt nm */ + { 160, -5 }, /* (12) cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ + { 165, -6 }, /* (13) create_table ::= createkw temp TABLE ifnotexists nm dbnm */ + { 167, -1 }, /* (14) createkw ::= CREATE */ + { 169, 0 }, /* (15) ifnotexists ::= */ + { 169, -3 }, /* (16) ifnotexists ::= IF NOT EXISTS */ + { 168, -1 }, /* (17) temp ::= TEMP */ + { 168, 0 }, /* (18) temp ::= */ + { 166, -5 }, /* (19) create_table_args ::= LP columnlist conslist_opt RP table_options */ + { 166, -2 }, /* (20) create_table_args ::= AS select */ + { 173, 0 }, /* (21) table_options ::= */ + { 173, -2 }, /* (22) table_options ::= WITHOUT nm */ + { 175, -2 }, /* (23) columnname ::= nm typetoken */ + { 177, 0 }, /* (24) typetoken ::= */ + { 177, -4 }, /* (25) typetoken ::= typename LP signed RP */ + { 177, -6 }, /* (26) typetoken ::= typename LP signed COMMA signed RP */ + { 178, -2 }, /* (27) typename ::= typename ID|STRING */ + { 182, 0 }, /* (28) scanpt ::= */ + { 183, -2 }, /* (29) ccons ::= CONSTRAINT nm */ + { 183, -4 }, /* (30) ccons ::= DEFAULT scanpt term scanpt */ + { 183, -4 }, /* (31) ccons ::= DEFAULT LP expr RP */ + { 183, -4 }, /* (32) ccons ::= DEFAULT PLUS term scanpt */ + { 183, -4 }, /* (33) ccons ::= DEFAULT MINUS term scanpt */ + { 183, -3 }, /* (34) ccons ::= DEFAULT scanpt ID|INDEXED */ + { 183, -3 }, /* (35) ccons ::= NOT NULL onconf */ + { 183, -5 }, /* (36) ccons ::= PRIMARY KEY sortorder onconf autoinc */ + { 183, -2 }, /* (37) ccons ::= UNIQUE onconf */ + { 183, -4 }, /* (38) ccons ::= CHECK LP expr RP */ + { 183, -4 }, /* (39) ccons ::= REFERENCES nm eidlist_opt refargs */ + { 183, -1 }, /* (40) ccons ::= defer_subclause */ + { 183, -2 }, /* (41) ccons ::= COLLATE ID|STRING */ + { 188, 0 }, /* (42) autoinc ::= */ + { 188, -1 }, /* (43) autoinc ::= AUTOINCR */ + { 190, 0 }, /* (44) refargs ::= */ + { 190, -2 }, /* (45) refargs ::= refargs refarg */ + { 192, -2 }, /* (46) refarg ::= MATCH nm */ + { 192, -3 }, /* (47) refarg ::= ON INSERT refact */ + { 192, -3 }, /* (48) refarg ::= ON DELETE refact */ + { 192, -3 }, /* (49) refarg ::= ON UPDATE refact */ + { 193, -2 }, /* (50) refact ::= SET NULL */ + { 193, -2 }, /* (51) refact ::= SET DEFAULT */ + { 193, -1 }, /* (52) refact ::= CASCADE */ + { 193, -1 }, /* (53) refact ::= RESTRICT */ + { 193, -2 }, /* (54) refact ::= NO ACTION */ + { 191, -3 }, /* (55) defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ + { 191, -2 }, /* (56) defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ + { 194, 0 }, /* (57) init_deferred_pred_opt ::= */ + { 194, -2 }, /* (58) init_deferred_pred_opt ::= INITIALLY DEFERRED */ + { 194, -2 }, /* (59) init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ + { 172, 0 }, /* (60) conslist_opt ::= */ + { 196, -1 }, /* (61) tconscomma ::= COMMA */ + { 197, -2 }, /* (62) tcons ::= CONSTRAINT nm */ + { 197, -7 }, /* (63) tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ + { 197, -5 }, /* (64) tcons ::= UNIQUE LP sortlist RP onconf */ + { 197, -5 }, /* (65) tcons ::= CHECK LP expr RP onconf */ + { 197, -10 }, /* (66) tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ + { 200, 0 }, /* (67) defer_subclause_opt ::= */ + { 186, 0 }, /* (68) onconf ::= */ + { 186, -3 }, /* (69) onconf ::= ON CONFLICT resolvetype */ + { 201, 0 }, /* (70) orconf ::= */ + { 201, -2 }, /* (71) orconf ::= OR resolvetype */ + { 202, -1 }, /* (72) resolvetype ::= IGNORE */ + { 202, -1 }, /* (73) resolvetype ::= REPLACE */ + { 160, -4 }, /* (74) cmd ::= DROP TABLE ifexists fullname */ + { 204, -2 }, /* (75) ifexists ::= IF EXISTS */ + { 204, 0 }, /* (76) ifexists ::= */ + { 160, -9 }, /* (77) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ + { 160, -4 }, /* (78) cmd ::= DROP VIEW ifexists fullname */ + { 160, -1 }, /* (79) cmd ::= select */ + { 174, -3 }, /* (80) select ::= WITH wqlist selectnowith */ + { 174, -4 }, /* (81) select ::= WITH RECURSIVE wqlist selectnowith */ + { 174, -1 }, /* (82) select ::= selectnowith */ + { 206, -3 }, /* (83) selectnowith ::= selectnowith multiselect_op oneselect */ + { 209, -1 }, /* (84) multiselect_op ::= UNION */ + { 209, -2 }, /* (85) multiselect_op ::= UNION ALL */ + { 209, -1 }, /* (86) multiselect_op ::= EXCEPT|INTERSECT */ + { 207, -9 }, /* (87) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ + { 207, -10 }, /* (88) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ + { 219, -4 }, /* (89) values ::= VALUES LP nexprlist RP */ + { 219, -5 }, /* (90) values ::= values COMMA LP nexprlist RP */ + { 210, -1 }, /* (91) distinct ::= DISTINCT */ + { 210, -1 }, /* (92) distinct ::= ALL */ + { 210, 0 }, /* (93) distinct ::= */ + { 221, 0 }, /* (94) sclp ::= */ + { 211, -5 }, /* (95) selcollist ::= sclp scanpt expr scanpt as */ + { 211, -3 }, /* (96) selcollist ::= sclp scanpt STAR */ + { 211, -5 }, /* (97) selcollist ::= sclp scanpt nm DOT STAR */ + { 222, -2 }, /* (98) as ::= AS nm */ + { 222, 0 }, /* (99) as ::= */ + { 212, 0 }, /* (100) from ::= */ + { 212, -2 }, /* (101) from ::= FROM seltablist */ + { 224, -2 }, /* (102) stl_prefix ::= seltablist joinop */ + { 224, 0 }, /* (103) stl_prefix ::= */ + { 223, -7 }, /* (104) seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */ + { 223, -9 }, /* (105) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */ + { 223, -7 }, /* (106) seltablist ::= stl_prefix LP select RP as on_opt using_opt */ + { 223, -7 }, /* (107) seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */ + { 170, 0 }, /* (108) dbnm ::= */ + { 170, -2 }, /* (109) dbnm ::= DOT nm */ + { 205, -1 }, /* (110) fullname ::= nm */ + { 205, -3 }, /* (111) fullname ::= nm DOT nm */ + { 230, -1 }, /* (112) xfullname ::= nm */ + { 230, -3 }, /* (113) xfullname ::= nm DOT nm */ + { 230, -5 }, /* (114) xfullname ::= nm DOT nm AS nm */ + { 230, -3 }, /* (115) xfullname ::= nm AS nm */ + { 225, -1 }, /* (116) joinop ::= COMMA|JOIN */ + { 225, -2 }, /* (117) joinop ::= JOIN_KW JOIN */ + { 225, -3 }, /* (118) joinop ::= JOIN_KW nm JOIN */ + { 225, -4 }, /* (119) joinop ::= JOIN_KW nm nm JOIN */ + { 227, -2 }, /* (120) on_opt ::= ON expr */ + { 227, 0 }, /* (121) on_opt ::= */ + { 226, 0 }, /* (122) indexed_opt ::= */ + { 226, -3 }, /* (123) indexed_opt ::= INDEXED BY nm */ + { 226, -2 }, /* (124) indexed_opt ::= NOT INDEXED */ + { 228, -4 }, /* (125) using_opt ::= USING LP idlist RP */ + { 228, 0 }, /* (126) using_opt ::= */ + { 216, 0 }, /* (127) orderby_opt ::= */ + { 216, -3 }, /* (128) orderby_opt ::= ORDER BY sortlist */ + { 198, -4 }, /* (129) sortlist ::= sortlist COMMA expr sortorder */ + { 198, -2 }, /* (130) sortlist ::= expr sortorder */ + { 187, -1 }, /* (131) sortorder ::= ASC */ + { 187, -1 }, /* (132) sortorder ::= DESC */ + { 187, 0 }, /* (133) sortorder ::= */ + { 214, 0 }, /* (134) groupby_opt ::= */ + { 214, -3 }, /* (135) groupby_opt ::= GROUP BY nexprlist */ + { 215, 0 }, /* (136) having_opt ::= */ + { 215, -2 }, /* (137) having_opt ::= HAVING expr */ + { 217, 0 }, /* (138) limit_opt ::= */ + { 217, -2 }, /* (139) limit_opt ::= LIMIT expr */ + { 217, -4 }, /* (140) limit_opt ::= LIMIT expr OFFSET expr */ + { 217, -4 }, /* (141) limit_opt ::= LIMIT expr COMMA expr */ + { 160, -6 }, /* (142) cmd ::= with DELETE FROM xfullname indexed_opt where_opt */ + { 213, 0 }, /* (143) where_opt ::= */ + { 213, -2 }, /* (144) where_opt ::= WHERE expr */ + { 160, -8 }, /* (145) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist where_opt */ + { 233, -5 }, /* (146) setlist ::= setlist COMMA nm EQ expr */ + { 233, -7 }, /* (147) setlist ::= setlist COMMA LP idlist RP EQ expr */ + { 233, -3 }, /* (148) setlist ::= nm EQ expr */ + { 233, -5 }, /* (149) setlist ::= LP idlist RP EQ expr */ + { 160, -7 }, /* (150) cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ + { 160, -7 }, /* (151) cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES */ + { 236, 0 }, /* (152) upsert ::= */ + { 236, -11 }, /* (153) upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt */ + { 236, -8 }, /* (154) upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING */ + { 236, -4 }, /* (155) upsert ::= ON CONFLICT DO NOTHING */ + { 234, -2 }, /* (156) insert_cmd ::= INSERT orconf */ + { 234, -1 }, /* (157) insert_cmd ::= REPLACE */ + { 235, 0 }, /* (158) idlist_opt ::= */ + { 235, -3 }, /* (159) idlist_opt ::= LP idlist RP */ + { 231, -3 }, /* (160) idlist ::= idlist COMMA nm */ + { 231, -1 }, /* (161) idlist ::= nm */ + { 185, -3 }, /* (162) expr ::= LP expr RP */ + { 185, -1 }, /* (163) expr ::= ID|INDEXED */ + { 185, -1 }, /* (164) expr ::= JOIN_KW */ + { 185, -3 }, /* (165) expr ::= nm DOT nm */ + { 185, -5 }, /* (166) expr ::= nm DOT nm DOT nm */ + { 184, -1 }, /* (167) term ::= NULL|FLOAT|BLOB */ + { 184, -1 }, /* (168) term ::= STRING */ + { 184, -1 }, /* (169) term ::= INTEGER */ + { 185, -1 }, /* (170) expr ::= VARIABLE */ + { 185, -3 }, /* (171) expr ::= expr COLLATE ID|STRING */ + { 185, -6 }, /* (172) expr ::= CAST LP expr AS typetoken RP */ + { 185, -5 }, /* (173) expr ::= ID|INDEXED LP distinct exprlist RP */ + { 185, -4 }, /* (174) expr ::= ID|INDEXED LP STAR RP */ + { 185, -6 }, /* (175) expr ::= ID|INDEXED LP distinct exprlist RP over_clause */ + { 185, -5 }, /* (176) expr ::= ID|INDEXED LP STAR RP over_clause */ + { 184, -1 }, /* (177) term ::= CTIME_KW */ + { 185, -5 }, /* (178) expr ::= LP nexprlist COMMA expr RP */ + { 185, -3 }, /* (179) expr ::= expr AND expr */ + { 185, -3 }, /* (180) expr ::= expr OR expr */ + { 185, -3 }, /* (181) expr ::= expr LT|GT|GE|LE expr */ + { 185, -3 }, /* (182) expr ::= expr EQ|NE expr */ + { 185, -3 }, /* (183) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ + { 185, -3 }, /* (184) expr ::= expr PLUS|MINUS expr */ + { 185, -3 }, /* (185) expr ::= expr STAR|SLASH|REM expr */ + { 185, -3 }, /* (186) expr ::= expr CONCAT expr */ + { 238, -2 }, /* (187) likeop ::= NOT LIKE_KW|MATCH */ + { 185, -3 }, /* (188) expr ::= expr likeop expr */ + { 185, -5 }, /* (189) expr ::= expr likeop expr ESCAPE expr */ + { 185, -2 }, /* (190) expr ::= expr ISNULL|NOTNULL */ + { 185, -3 }, /* (191) expr ::= expr NOT NULL */ + { 185, -3 }, /* (192) expr ::= expr IS expr */ + { 185, -4 }, /* (193) expr ::= expr IS NOT expr */ + { 185, -2 }, /* (194) expr ::= NOT expr */ + { 185, -2 }, /* (195) expr ::= BITNOT expr */ + { 185, -2 }, /* (196) expr ::= PLUS|MINUS expr */ + { 239, -1 }, /* (197) between_op ::= BETWEEN */ + { 239, -2 }, /* (198) between_op ::= NOT BETWEEN */ + { 185, -5 }, /* (199) expr ::= expr between_op expr AND expr */ + { 240, -1 }, /* (200) in_op ::= IN */ + { 240, -2 }, /* (201) in_op ::= NOT IN */ + { 185, -5 }, /* (202) expr ::= expr in_op LP exprlist RP */ + { 185, -3 }, /* (203) expr ::= LP select RP */ + { 185, -5 }, /* (204) expr ::= expr in_op LP select RP */ + { 185, -5 }, /* (205) expr ::= expr in_op nm dbnm paren_exprlist */ + { 185, -4 }, /* (206) expr ::= EXISTS LP select RP */ + { 185, -5 }, /* (207) expr ::= CASE case_operand case_exprlist case_else END */ + { 243, -5 }, /* (208) case_exprlist ::= case_exprlist WHEN expr THEN expr */ + { 243, -4 }, /* (209) case_exprlist ::= WHEN expr THEN expr */ + { 244, -2 }, /* (210) case_else ::= ELSE expr */ + { 244, 0 }, /* (211) case_else ::= */ + { 242, -1 }, /* (212) case_operand ::= expr */ + { 242, 0 }, /* (213) case_operand ::= */ + { 229, 0 }, /* (214) exprlist ::= */ + { 220, -3 }, /* (215) nexprlist ::= nexprlist COMMA expr */ + { 220, -1 }, /* (216) nexprlist ::= expr */ + { 241, 0 }, /* (217) paren_exprlist ::= */ + { 241, -3 }, /* (218) paren_exprlist ::= LP exprlist RP */ + { 160, -12 }, /* (219) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ + { 245, -1 }, /* (220) uniqueflag ::= UNIQUE */ + { 245, 0 }, /* (221) uniqueflag ::= */ + { 189, 0 }, /* (222) eidlist_opt ::= */ + { 189, -3 }, /* (223) eidlist_opt ::= LP eidlist RP */ + { 199, -5 }, /* (224) eidlist ::= eidlist COMMA nm collate sortorder */ + { 199, -3 }, /* (225) eidlist ::= nm collate sortorder */ + { 246, 0 }, /* (226) collate ::= */ + { 246, -2 }, /* (227) collate ::= COLLATE ID|STRING */ + { 160, -4 }, /* (228) cmd ::= DROP INDEX ifexists fullname */ + { 160, -1 }, /* (229) cmd ::= VACUUM */ + { 160, -2 }, /* (230) cmd ::= VACUUM nm */ + { 160, -3 }, /* (231) cmd ::= PRAGMA nm dbnm */ + { 160, -5 }, /* (232) cmd ::= PRAGMA nm dbnm EQ nmnum */ + { 160, -6 }, /* (233) cmd ::= PRAGMA nm dbnm LP nmnum RP */ + { 160, -5 }, /* (234) cmd ::= PRAGMA nm dbnm EQ minus_num */ + { 160, -6 }, /* (235) cmd ::= PRAGMA nm dbnm LP minus_num RP */ + { 180, -2 }, /* (236) plus_num ::= PLUS INTEGER|FLOAT */ + { 181, -2 }, /* (237) minus_num ::= MINUS INTEGER|FLOAT */ + { 160, -5 }, /* (238) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ + { 248, -11 }, /* (239) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ + { 250, -1 }, /* (240) trigger_time ::= BEFORE|AFTER */ + { 250, -2 }, /* (241) trigger_time ::= INSTEAD OF */ + { 250, 0 }, /* (242) trigger_time ::= */ + { 251, -1 }, /* (243) trigger_event ::= DELETE|INSERT */ + { 251, -1 }, /* (244) trigger_event ::= UPDATE */ + { 251, -3 }, /* (245) trigger_event ::= UPDATE OF idlist */ + { 253, 0 }, /* (246) when_clause ::= */ + { 253, -2 }, /* (247) when_clause ::= WHEN expr */ + { 249, -3 }, /* (248) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ + { 249, -2 }, /* (249) trigger_cmd_list ::= trigger_cmd SEMI */ + { 255, -3 }, /* (250) trnm ::= nm DOT nm */ + { 256, -3 }, /* (251) tridxby ::= INDEXED BY nm */ + { 256, -2 }, /* (252) tridxby ::= NOT INDEXED */ + { 254, -8 }, /* (253) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */ + { 254, -8 }, /* (254) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ + { 254, -6 }, /* (255) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ + { 254, -3 }, /* (256) trigger_cmd ::= scanpt select scanpt */ + { 185, -4 }, /* (257) expr ::= RAISE LP IGNORE RP */ + { 185, -6 }, /* (258) expr ::= RAISE LP raisetype COMMA nm RP */ + { 203, -1 }, /* (259) raisetype ::= ROLLBACK */ + { 203, -1 }, /* (260) raisetype ::= ABORT */ + { 203, -1 }, /* (261) raisetype ::= FAIL */ + { 160, -4 }, /* (262) cmd ::= DROP TRIGGER ifexists fullname */ + { 160, -6 }, /* (263) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ + { 160, -3 }, /* (264) cmd ::= DETACH database_kw_opt expr */ + { 258, 0 }, /* (265) key_opt ::= */ + { 258, -2 }, /* (266) key_opt ::= KEY expr */ + { 160, -1 }, /* (267) cmd ::= REINDEX */ + { 160, -3 }, /* (268) cmd ::= REINDEX nm dbnm */ + { 160, -1 }, /* (269) cmd ::= ANALYZE */ + { 160, -3 }, /* (270) cmd ::= ANALYZE nm dbnm */ + { 160, -6 }, /* (271) cmd ::= ALTER TABLE fullname RENAME TO nm */ + { 160, -7 }, /* (272) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ + { 259, -1 }, /* (273) add_column_fullname ::= fullname */ + { 160, -8 }, /* (274) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ + { 160, -1 }, /* (275) cmd ::= create_vtab */ + { 160, -4 }, /* (276) cmd ::= create_vtab LP vtabarglist RP */ + { 261, -8 }, /* (277) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ + { 263, 0 }, /* (278) vtabarg ::= */ + { 264, -1 }, /* (279) vtabargtoken ::= ANY */ + { 264, -3 }, /* (280) vtabargtoken ::= lp anylist RP */ + { 265, -1 }, /* (281) lp ::= LP */ + { 232, -2 }, /* (282) with ::= WITH wqlist */ + { 232, -3 }, /* (283) with ::= WITH RECURSIVE wqlist */ + { 208, -6 }, /* (284) wqlist ::= nm eidlist_opt AS LP select RP */ + { 208, -8 }, /* (285) wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */ + { 267, -1 }, /* (286) windowdefn_list ::= windowdefn */ + { 267, -3 }, /* (287) windowdefn_list ::= windowdefn_list COMMA windowdefn */ + { 268, -3 }, /* (288) windowdefn ::= nm AS window */ + { 269, -5 }, /* (289) window ::= LP part_opt orderby_opt frame_opt RP */ + { 271, -3 }, /* (290) part_opt ::= PARTITION BY nexprlist */ + { 271, 0 }, /* (291) part_opt ::= */ + { 270, 0 }, /* (292) frame_opt ::= */ + { 270, -2 }, /* (293) frame_opt ::= range_or_rows frame_bound_s */ + { 270, -5 }, /* (294) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e */ + { 273, -1 }, /* (295) range_or_rows ::= RANGE */ + { 273, -1 }, /* (296) range_or_rows ::= ROWS */ + { 275, -1 }, /* (297) frame_bound_s ::= frame_bound */ + { 275, -2 }, /* (298) frame_bound_s ::= UNBOUNDED PRECEDING */ + { 276, -1 }, /* (299) frame_bound_e ::= frame_bound */ + { 276, -2 }, /* (300) frame_bound_e ::= UNBOUNDED FOLLOWING */ + { 274, -2 }, /* (301) frame_bound ::= expr PRECEDING */ + { 274, -2 }, /* (302) frame_bound ::= CURRENT ROW */ + { 274, -2 }, /* (303) frame_bound ::= expr FOLLOWING */ + { 218, -2 }, /* (304) window_clause ::= WINDOW windowdefn_list */ + { 237, -3 }, /* (305) over_clause ::= filter_opt OVER window */ + { 237, -3 }, /* (306) over_clause ::= filter_opt OVER nm */ + { 272, 0 }, /* (307) filter_opt ::= */ + { 272, -5 }, /* (308) filter_opt ::= FILTER LP WHERE expr RP */ + { 155, -1 }, /* (309) input ::= cmdlist */ + { 156, -2 }, /* (310) cmdlist ::= cmdlist ecmd */ + { 156, -1 }, /* (311) cmdlist ::= ecmd */ + { 157, -1 }, /* (312) ecmd ::= SEMI */ + { 157, -2 }, /* (313) ecmd ::= cmdx SEMI */ + { 157, -2 }, /* (314) ecmd ::= explain cmdx */ + { 162, 0 }, /* (315) trans_opt ::= */ + { 162, -1 }, /* (316) trans_opt ::= TRANSACTION */ + { 162, -2 }, /* (317) trans_opt ::= TRANSACTION nm */ + { 164, -1 }, /* (318) savepoint_opt ::= SAVEPOINT */ + { 164, 0 }, /* (319) savepoint_opt ::= */ + { 160, -2 }, /* (320) cmd ::= create_table create_table_args */ + { 171, -4 }, /* (321) columnlist ::= columnlist COMMA columnname carglist */ + { 171, -2 }, /* (322) columnlist ::= columnname carglist */ + { 163, -1 }, /* (323) nm ::= ID|INDEXED */ + { 163, -1 }, /* (324) nm ::= STRING */ + { 163, -1 }, /* (325) nm ::= JOIN_KW */ + { 177, -1 }, /* (326) typetoken ::= typename */ + { 178, -1 }, /* (327) typename ::= ID|STRING */ + { 179, -1 }, /* (328) signed ::= plus_num */ + { 179, -1 }, /* (329) signed ::= minus_num */ + { 176, -2 }, /* (330) carglist ::= carglist ccons */ + { 176, 0 }, /* (331) carglist ::= */ + { 183, -2 }, /* (332) ccons ::= NULL onconf */ + { 172, -2 }, /* (333) conslist_opt ::= COMMA conslist */ + { 195, -3 }, /* (334) conslist ::= conslist tconscomma tcons */ + { 195, -1 }, /* (335) conslist ::= tcons */ + { 196, 0 }, /* (336) tconscomma ::= */ + { 200, -1 }, /* (337) defer_subclause_opt ::= defer_subclause */ + { 202, -1 }, /* (338) resolvetype ::= raisetype */ + { 206, -1 }, /* (339) selectnowith ::= oneselect */ + { 207, -1 }, /* (340) oneselect ::= values */ + { 221, -2 }, /* (341) sclp ::= selcollist COMMA */ + { 222, -1 }, /* (342) as ::= ID|STRING */ + { 185, -1 }, /* (343) expr ::= term */ + { 238, -1 }, /* (344) likeop ::= LIKE_KW|MATCH */ + { 229, -1 }, /* (345) exprlist ::= nexprlist */ + { 247, -1 }, /* (346) nmnum ::= plus_num */ + { 247, -1 }, /* (347) nmnum ::= nm */ + { 247, -1 }, /* (348) nmnum ::= ON */ + { 247, -1 }, /* (349) nmnum ::= DELETE */ + { 247, -1 }, /* (350) nmnum ::= DEFAULT */ + { 180, -1 }, /* (351) plus_num ::= INTEGER|FLOAT */ + { 252, 0 }, /* (352) foreach_clause ::= */ + { 252, -3 }, /* (353) foreach_clause ::= FOR EACH ROW */ + { 255, -1 }, /* (354) trnm ::= nm */ + { 256, 0 }, /* (355) tridxby ::= */ + { 257, -1 }, /* (356) database_kw_opt ::= DATABASE */ + { 257, 0 }, /* (357) database_kw_opt ::= */ + { 260, 0 }, /* (358) kwcolumn_opt ::= */ + { 260, -1 }, /* (359) kwcolumn_opt ::= COLUMNKW */ + { 262, -1 }, /* (360) vtabarglist ::= vtabarg */ + { 262, -3 }, /* (361) vtabarglist ::= vtabarglist COMMA vtabarg */ + { 263, -2 }, /* (362) vtabarg ::= vtabarg vtabargtoken */ + { 266, 0 }, /* (363) anylist ::= */ + { 266, -4 }, /* (364) anylist ::= anylist LP anylist RP */ + { 266, -2 }, /* (365) anylist ::= anylist ANY */ + { 232, 0 }, /* (366) with ::= */ }; static void yy_accept(yyParser*); /* Forward Declaration */ @@ -140511,17 +149466,18 @@ static void yy_accept(yyParser*); /* Forward Declaration */ ** only called from one place, optimizing compilers will in-line it, which ** means that the extra parameters have no performance impact. */ -static void yy_reduce( +static YYACTIONTYPE yy_reduce( yyParser *yypParser, /* The parser */ unsigned int yyruleno, /* Number of the rule by which to reduce */ int yyLookahead, /* Lookahead token, or YYNOCODE if none */ sqlite3ParserTOKENTYPE yyLookaheadToken /* Value of the lookahead token */ + sqlite3ParserCTX_PDECL /* %extra_context */ ){ int yygoto; /* The next state */ - int yyact; /* The next action */ + YYACTIONTYPE yyact; /* The next action */ yyStackEntry *yymsp; /* The top of the parser's stack */ int yysize; /* Amount to pop the stack */ - sqlite3ParserARG_FETCH; + sqlite3ParserARG_FETCH (void)yyLookahead; (void)yyLookaheadToken; yymsp = yypParser->yytos; @@ -140552,13 +149508,19 @@ static void yy_reduce( #if YYSTACKDEPTH>0 if( yypParser->yytos>=yypParser->yystackEnd ){ yyStackOverflow(yypParser); - return; + /* The call to yyStackOverflow() above pops the stack until it is + ** empty, causing the main parser loop to exit. So the return value + ** is never used and does not matter. */ + return 0; } #else if( yypParser->yytos>=&yypParser->yystack[yypParser->yystksz-1] ){ if( yyGrowStack(yypParser) ){ yyStackOverflow(yypParser); - return; + /* The call to yyStackOverflow() above pops the stack until it is + ** empty, causing the main parser loop to exit. So the return value + ** is never used and does not matter. */ + return 0; } yymsp = yypParser->yytos; } @@ -140586,15 +149548,15 @@ static void yy_reduce( { sqlite3FinishCoding(pParse); } break; case 3: /* cmd ::= BEGIN transtype trans_opt */ -{sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy4);} +{sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy70);} break; case 4: /* transtype ::= */ -{yymsp[1].minor.yy4 = TK_DEFERRED;} +{yymsp[1].minor.yy70 = TK_DEFERRED;} break; case 5: /* transtype ::= DEFERRED */ case 6: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==6); case 7: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==7); -{yymsp[0].minor.yy4 = yymsp[0].major; /*A-overwrites-X*/} +{yymsp[0].minor.yy70 = yymsp[0].major; /*A-overwrites-X*/} break; case 8: /* cmd ::= COMMIT|END trans_opt */ case 9: /* cmd ::= ROLLBACK trans_opt */ yytestcase(yyruleno==9); @@ -140617,7 +149579,7 @@ static void yy_reduce( break; case 13: /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */ { - sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy4,0,0,yymsp[-2].minor.yy4); + sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy70,0,0,yymsp[-2].minor.yy70); } break; case 14: /* createkw ::= CREATE */ @@ -140630,34 +149592,34 @@ static void yy_reduce( case 57: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==57); case 67: /* defer_subclause_opt ::= */ yytestcase(yyruleno==67); case 76: /* ifexists ::= */ yytestcase(yyruleno==76); - case 90: /* distinct ::= */ yytestcase(yyruleno==90); - case 213: /* collate ::= */ yytestcase(yyruleno==213); -{yymsp[1].minor.yy4 = 0;} + case 93: /* distinct ::= */ yytestcase(yyruleno==93); + case 226: /* collate ::= */ yytestcase(yyruleno==226); +{yymsp[1].minor.yy70 = 0;} break; case 16: /* ifnotexists ::= IF NOT EXISTS */ -{yymsp[-2].minor.yy4 = 1;} +{yymsp[-2].minor.yy70 = 1;} break; case 17: /* temp ::= TEMP */ case 43: /* autoinc ::= AUTOINCR */ yytestcase(yyruleno==43); -{yymsp[0].minor.yy4 = 1;} +{yymsp[0].minor.yy70 = 1;} break; case 19: /* create_table_args ::= LP columnlist conslist_opt RP table_options */ { - sqlite3EndTable(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,yymsp[0].minor.yy4,0); + sqlite3EndTable(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,yymsp[0].minor.yy70,0); } break; case 20: /* create_table_args ::= AS select */ { - sqlite3EndTable(pParse,0,0,0,yymsp[0].minor.yy387); - sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy387); + sqlite3EndTable(pParse,0,0,0,yymsp[0].minor.yy489); + sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy489); } break; case 22: /* table_options ::= WITHOUT nm */ { if( yymsp[0].minor.yy0.n==5 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"rowid",5)==0 ){ - yymsp[-1].minor.yy4 = TF_WithoutRowid | TF_NoVisibleRowid; + yymsp[-1].minor.yy70 = TF_WithoutRowid | TF_NoVisibleRowid; }else{ - yymsp[-1].minor.yy4 = 0; + yymsp[-1].minor.yy70 = 0; sqlite3ErrorMsg(pParse, "unknown table option: %.*s", yymsp[0].minor.yy0.n, yymsp[0].minor.yy0.z); } } @@ -140667,7 +149629,7 @@ static void yy_reduce( break; case 24: /* typetoken ::= */ case 60: /* conslist_opt ::= */ yytestcase(yyruleno==60); - case 96: /* as ::= */ yytestcase(yyruleno==96); + case 99: /* as ::= */ yytestcase(yyruleno==99); {yymsp[1].minor.yy0.n = 0; yymsp[1].minor.yy0.z = 0;} break; case 25: /* typetoken ::= typename LP signed RP */ @@ -140686,7 +149648,7 @@ static void yy_reduce( case 28: /* scanpt ::= */ { assert( yyLookahead!=YYNOCODE ); - yymsp[1].minor.yy336 = yyLookaheadToken.z; + yymsp[1].minor.yy392 = yyLookaheadToken.z; } break; case 29: /* ccons ::= CONSTRAINT nm */ @@ -140694,170 +149656,195 @@ static void yy_reduce( {pParse->constraintName = yymsp[0].minor.yy0;} break; case 30: /* ccons ::= DEFAULT scanpt term scanpt */ -{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy314,yymsp[-2].minor.yy336,yymsp[0].minor.yy336);} +{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy18,yymsp[-2].minor.yy392,yymsp[0].minor.yy392);} break; case 31: /* ccons ::= DEFAULT LP expr RP */ -{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy314,yymsp[-2].minor.yy0.z+1,yymsp[0].minor.yy0.z);} +{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy18,yymsp[-2].minor.yy0.z+1,yymsp[0].minor.yy0.z);} break; case 32: /* ccons ::= DEFAULT PLUS term scanpt */ -{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy314,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy336);} +{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy18,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy392);} break; case 33: /* ccons ::= DEFAULT MINUS term scanpt */ { - Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[-1].minor.yy314, 0); - sqlite3AddDefaultValue(pParse,p,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy336); + Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[-1].minor.yy18, 0); + sqlite3AddDefaultValue(pParse,p,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy392); } break; case 34: /* ccons ::= DEFAULT scanpt ID|INDEXED */ { Expr *p = tokenExpr(pParse, TK_STRING, yymsp[0].minor.yy0); - sqlite3AddDefaultValue(pParse,p,yymsp[0].minor.yy0.z,yymsp[0].minor.yy0.z+yymsp[0].minor.yy0.n); + if( p ){ + sqlite3ExprIdToTrueFalse(p); + testcase( p->op==TK_TRUEFALSE && sqlite3ExprTruthValue(p) ); + } + sqlite3AddDefaultValue(pParse,p,yymsp[0].minor.yy0.z,yymsp[0].minor.yy0.z+yymsp[0].minor.yy0.n); } break; case 35: /* ccons ::= NOT NULL onconf */ -{sqlite3AddNotNull(pParse, yymsp[0].minor.yy4);} +{sqlite3AddNotNull(pParse, yymsp[0].minor.yy70);} break; case 36: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ -{sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy4,yymsp[0].minor.yy4,yymsp[-2].minor.yy4);} +{sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy70,yymsp[0].minor.yy70,yymsp[-2].minor.yy70);} break; case 37: /* ccons ::= UNIQUE onconf */ -{sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy4,0,0,0,0, +{sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy70,0,0,0,0, SQLITE_IDXTYPE_UNIQUE);} break; case 38: /* ccons ::= CHECK LP expr RP */ -{sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy314);} +{sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy18);} break; case 39: /* ccons ::= REFERENCES nm eidlist_opt refargs */ -{sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy322,yymsp[0].minor.yy4);} +{sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy420,yymsp[0].minor.yy70);} break; case 40: /* ccons ::= defer_subclause */ -{sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy4);} +{sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy70);} break; case 41: /* ccons ::= COLLATE ID|STRING */ {sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);} break; case 44: /* refargs ::= */ -{ yymsp[1].minor.yy4 = OE_None*0x0101; /* EV: R-19803-45884 */} +{ yymsp[1].minor.yy70 = OE_None*0x0101; /* EV: R-19803-45884 */} break; case 45: /* refargs ::= refargs refarg */ -{ yymsp[-1].minor.yy4 = (yymsp[-1].minor.yy4 & ~yymsp[0].minor.yy215.mask) | yymsp[0].minor.yy215.value; } +{ yymsp[-1].minor.yy70 = (yymsp[-1].minor.yy70 & ~yymsp[0].minor.yy111.mask) | yymsp[0].minor.yy111.value; } break; case 46: /* refarg ::= MATCH nm */ -{ yymsp[-1].minor.yy215.value = 0; yymsp[-1].minor.yy215.mask = 0x000000; } +{ yymsp[-1].minor.yy111.value = 0; yymsp[-1].minor.yy111.mask = 0x000000; } break; case 47: /* refarg ::= ON INSERT refact */ -{ yymsp[-2].minor.yy215.value = 0; yymsp[-2].minor.yy215.mask = 0x000000; } +{ yymsp[-2].minor.yy111.value = 0; yymsp[-2].minor.yy111.mask = 0x000000; } break; case 48: /* refarg ::= ON DELETE refact */ -{ yymsp[-2].minor.yy215.value = yymsp[0].minor.yy4; yymsp[-2].minor.yy215.mask = 0x0000ff; } +{ yymsp[-2].minor.yy111.value = yymsp[0].minor.yy70; yymsp[-2].minor.yy111.mask = 0x0000ff; } break; case 49: /* refarg ::= ON UPDATE refact */ -{ yymsp[-2].minor.yy215.value = yymsp[0].minor.yy4<<8; yymsp[-2].minor.yy215.mask = 0x00ff00; } +{ yymsp[-2].minor.yy111.value = yymsp[0].minor.yy70<<8; yymsp[-2].minor.yy111.mask = 0x00ff00; } break; case 50: /* refact ::= SET NULL */ -{ yymsp[-1].minor.yy4 = OE_SetNull; /* EV: R-33326-45252 */} +{ yymsp[-1].minor.yy70 = OE_SetNull; /* EV: R-33326-45252 */} break; case 51: /* refact ::= SET DEFAULT */ -{ yymsp[-1].minor.yy4 = OE_SetDflt; /* EV: R-33326-45252 */} +{ yymsp[-1].minor.yy70 = OE_SetDflt; /* EV: R-33326-45252 */} break; case 52: /* refact ::= CASCADE */ -{ yymsp[0].minor.yy4 = OE_Cascade; /* EV: R-33326-45252 */} +{ yymsp[0].minor.yy70 = OE_Cascade; /* EV: R-33326-45252 */} break; case 53: /* refact ::= RESTRICT */ -{ yymsp[0].minor.yy4 = OE_Restrict; /* EV: R-33326-45252 */} +{ yymsp[0].minor.yy70 = OE_Restrict; /* EV: R-33326-45252 */} break; case 54: /* refact ::= NO ACTION */ -{ yymsp[-1].minor.yy4 = OE_None; /* EV: R-33326-45252 */} +{ yymsp[-1].minor.yy70 = OE_None; /* EV: R-33326-45252 */} break; case 55: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ -{yymsp[-2].minor.yy4 = 0;} +{yymsp[-2].minor.yy70 = 0;} break; case 56: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ case 71: /* orconf ::= OR resolvetype */ yytestcase(yyruleno==71); - case 144: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==144); -{yymsp[-1].minor.yy4 = yymsp[0].minor.yy4;} + case 156: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==156); +{yymsp[-1].minor.yy70 = yymsp[0].minor.yy70;} break; case 58: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ case 75: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==75); - case 185: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==185); - case 188: /* in_op ::= NOT IN */ yytestcase(yyruleno==188); - case 214: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==214); -{yymsp[-1].minor.yy4 = 1;} + case 198: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==198); + case 201: /* in_op ::= NOT IN */ yytestcase(yyruleno==201); + case 227: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==227); +{yymsp[-1].minor.yy70 = 1;} break; case 59: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ -{yymsp[-1].minor.yy4 = 0;} +{yymsp[-1].minor.yy70 = 0;} break; case 61: /* tconscomma ::= COMMA */ {pParse->constraintName.n = 0;} break; case 63: /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ -{sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy322,yymsp[0].minor.yy4,yymsp[-2].minor.yy4,0);} +{sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy420,yymsp[0].minor.yy70,yymsp[-2].minor.yy70,0);} break; case 64: /* tcons ::= UNIQUE LP sortlist RP onconf */ -{sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy322,yymsp[0].minor.yy4,0,0,0,0, +{sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy420,yymsp[0].minor.yy70,0,0,0,0, SQLITE_IDXTYPE_UNIQUE);} break; case 65: /* tcons ::= CHECK LP expr RP onconf */ -{sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy314);} +{sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy18);} break; case 66: /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ { - sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy322, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy322, yymsp[-1].minor.yy4); - sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy4); + sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy420, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy420, yymsp[-1].minor.yy70); + sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy70); } break; case 68: /* onconf ::= */ case 70: /* orconf ::= */ yytestcase(yyruleno==70); -{yymsp[1].minor.yy4 = OE_Default;} +{yymsp[1].minor.yy70 = OE_Default;} break; case 69: /* onconf ::= ON CONFLICT resolvetype */ -{yymsp[-2].minor.yy4 = yymsp[0].minor.yy4;} +{yymsp[-2].minor.yy70 = yymsp[0].minor.yy70;} break; case 72: /* resolvetype ::= IGNORE */ -{yymsp[0].minor.yy4 = OE_Ignore;} +{yymsp[0].minor.yy70 = OE_Ignore;} break; case 73: /* resolvetype ::= REPLACE */ - case 145: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==145); -{yymsp[0].minor.yy4 = OE_Replace;} + case 157: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==157); +{yymsp[0].minor.yy70 = OE_Replace;} break; case 74: /* cmd ::= DROP TABLE ifexists fullname */ { - sqlite3DropTable(pParse, yymsp[0].minor.yy259, 0, yymsp[-1].minor.yy4); + sqlite3DropTable(pParse, yymsp[0].minor.yy135, 0, yymsp[-1].minor.yy70); } break; case 77: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ { - sqlite3CreateView(pParse, &yymsp[-8].minor.yy0, &yymsp[-4].minor.yy0, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy322, yymsp[0].minor.yy387, yymsp[-7].minor.yy4, yymsp[-5].minor.yy4); + sqlite3CreateView(pParse, &yymsp[-8].minor.yy0, &yymsp[-4].minor.yy0, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy420, yymsp[0].minor.yy489, yymsp[-7].minor.yy70, yymsp[-5].minor.yy70); } break; case 78: /* cmd ::= DROP VIEW ifexists fullname */ { - sqlite3DropTable(pParse, yymsp[0].minor.yy259, 1, yymsp[-1].minor.yy4); + sqlite3DropTable(pParse, yymsp[0].minor.yy135, 1, yymsp[-1].minor.yy70); } break; case 79: /* cmd ::= select */ { SelectDest dest = {SRT_Output, 0, 0, 0, 0, 0}; - sqlite3Select(pParse, yymsp[0].minor.yy387, &dest); - sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy387); + sqlite3Select(pParse, yymsp[0].minor.yy489, &dest); + sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy489); } break; - case 80: /* select ::= with selectnowith */ + case 80: /* select ::= WITH wqlist selectnowith */ { - Select *p = yymsp[0].minor.yy387; + Select *p = yymsp[0].minor.yy489; if( p ){ - p->pWith = yymsp[-1].minor.yy451; + p->pWith = yymsp[-1].minor.yy449; parserDoubleLinkSelect(pParse, p); }else{ - sqlite3WithDelete(pParse->db, yymsp[-1].minor.yy451); + sqlite3WithDelete(pParse->db, yymsp[-1].minor.yy449); + } + yymsp[-2].minor.yy489 = p; +} + break; + case 81: /* select ::= WITH RECURSIVE wqlist selectnowith */ +{ + Select *p = yymsp[0].minor.yy489; + if( p ){ + p->pWith = yymsp[-1].minor.yy449; + parserDoubleLinkSelect(pParse, p); + }else{ + sqlite3WithDelete(pParse->db, yymsp[-1].minor.yy449); + } + yymsp[-3].minor.yy489 = p; +} + break; + case 82: /* select ::= selectnowith */ +{ + Select *p = yymsp[0].minor.yy489; + if( p ){ + parserDoubleLinkSelect(pParse, p); } - yymsp[-1].minor.yy387 = p; /*A-overwrites-W*/ + yymsp[0].minor.yy489 = p; /*A-overwrites-X*/ } break; - case 81: /* selectnowith ::= selectnowith multiselect_op oneselect */ + case 83: /* selectnowith ::= selectnowith multiselect_op oneselect */ { - Select *pRhs = yymsp[0].minor.yy387; - Select *pLhs = yymsp[-2].minor.yy387; + Select *pRhs = yymsp[0].minor.yy489; + Select *pLhs = yymsp[-2].minor.yy489; if( pRhs && pRhs->pPrior ){ SrcList *pFrom; Token x; @@ -140867,354 +149854,382 @@ static void yy_reduce( pRhs = sqlite3SelectNew(pParse,0,pFrom,0,0,0,0,0,0); } if( pRhs ){ - pRhs->op = (u8)yymsp[-1].minor.yy4; + pRhs->op = (u8)yymsp[-1].minor.yy70; pRhs->pPrior = pLhs; if( ALWAYS(pLhs) ) pLhs->selFlags &= ~SF_MultiValue; pRhs->selFlags &= ~SF_MultiValue; - if( yymsp[-1].minor.yy4!=TK_ALL ) pParse->hasCompound = 1; + if( yymsp[-1].minor.yy70!=TK_ALL ) pParse->hasCompound = 1; }else{ sqlite3SelectDelete(pParse->db, pLhs); } - yymsp[-2].minor.yy387 = pRhs; + yymsp[-2].minor.yy489 = pRhs; } break; - case 82: /* multiselect_op ::= UNION */ - case 84: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==84); -{yymsp[0].minor.yy4 = yymsp[0].major; /*A-overwrites-OP*/} + case 84: /* multiselect_op ::= UNION */ + case 86: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==86); +{yymsp[0].minor.yy70 = yymsp[0].major; /*A-overwrites-OP*/} break; - case 83: /* multiselect_op ::= UNION ALL */ -{yymsp[-1].minor.yy4 = TK_ALL;} + case 85: /* multiselect_op ::= UNION ALL */ +{yymsp[-1].minor.yy70 = TK_ALL;} break; - case 85: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ + case 87: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ { -#if SELECTTRACE_ENABLED - Token s = yymsp[-8].minor.yy0; /*A-overwrites-S*/ -#endif - yymsp[-8].minor.yy387 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy322,yymsp[-5].minor.yy259,yymsp[-4].minor.yy314,yymsp[-3].minor.yy322,yymsp[-2].minor.yy314,yymsp[-1].minor.yy322,yymsp[-7].minor.yy4,yymsp[0].minor.yy314); -#if SELECTTRACE_ENABLED - /* Populate the Select.zSelName[] string that is used to help with - ** query planner debugging, to differentiate between multiple Select - ** objects in a complex query. - ** - ** If the SELECT keyword is immediately followed by a C-style comment - ** then extract the first few alphanumeric characters from within that - ** comment to be the zSelName value. Otherwise, the label is #N where - ** is an integer that is incremented with each SELECT statement seen. - */ - if( yymsp[-8].minor.yy387!=0 ){ - const char *z = s.z+6; - int i; - sqlite3_snprintf(sizeof(yymsp[-8].minor.yy387->zSelName), yymsp[-8].minor.yy387->zSelName, "#%d", - ++pParse->nSelect); - while( z[0]==' ' ) z++; - if( z[0]=='/' && z[1]=='*' ){ - z += 2; - while( z[0]==' ' ) z++; - for(i=0; sqlite3Isalnum(z[i]); i++){} - sqlite3_snprintf(sizeof(yymsp[-8].minor.yy387->zSelName), yymsp[-8].minor.yy387->zSelName, "%.*s", i, z); - } + yymsp[-8].minor.yy489 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy420,yymsp[-5].minor.yy135,yymsp[-4].minor.yy18,yymsp[-3].minor.yy420,yymsp[-2].minor.yy18,yymsp[-1].minor.yy420,yymsp[-7].minor.yy70,yymsp[0].minor.yy18); +} + break; + case 88: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ +{ + yymsp[-9].minor.yy489 = sqlite3SelectNew(pParse,yymsp[-7].minor.yy420,yymsp[-6].minor.yy135,yymsp[-5].minor.yy18,yymsp[-4].minor.yy420,yymsp[-3].minor.yy18,yymsp[-1].minor.yy420,yymsp[-8].minor.yy70,yymsp[0].minor.yy18); + if( yymsp[-9].minor.yy489 ){ + yymsp[-9].minor.yy489->pWinDefn = yymsp[-2].minor.yy327; + }else{ + sqlite3WindowListDelete(pParse->db, yymsp[-2].minor.yy327); } -#endif /* SELECTRACE_ENABLED */ } break; - case 86: /* values ::= VALUES LP nexprlist RP */ + case 89: /* values ::= VALUES LP nexprlist RP */ { - yymsp[-3].minor.yy387 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy322,0,0,0,0,0,SF_Values,0); + yymsp[-3].minor.yy489 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy420,0,0,0,0,0,SF_Values,0); } break; - case 87: /* values ::= values COMMA LP exprlist RP */ + case 90: /* values ::= values COMMA LP nexprlist RP */ { - Select *pRight, *pLeft = yymsp[-4].minor.yy387; - pRight = sqlite3SelectNew(pParse,yymsp[-1].minor.yy322,0,0,0,0,0,SF_Values|SF_MultiValue,0); + Select *pRight, *pLeft = yymsp[-4].minor.yy489; + pRight = sqlite3SelectNew(pParse,yymsp[-1].minor.yy420,0,0,0,0,0,SF_Values|SF_MultiValue,0); if( ALWAYS(pLeft) ) pLeft->selFlags &= ~SF_MultiValue; if( pRight ){ pRight->op = TK_ALL; pRight->pPrior = pLeft; - yymsp[-4].minor.yy387 = pRight; + yymsp[-4].minor.yy489 = pRight; }else{ - yymsp[-4].minor.yy387 = pLeft; + yymsp[-4].minor.yy489 = pLeft; } } break; - case 88: /* distinct ::= DISTINCT */ -{yymsp[0].minor.yy4 = SF_Distinct;} + case 91: /* distinct ::= DISTINCT */ +{yymsp[0].minor.yy70 = SF_Distinct;} break; - case 89: /* distinct ::= ALL */ -{yymsp[0].minor.yy4 = SF_All;} + case 92: /* distinct ::= ALL */ +{yymsp[0].minor.yy70 = SF_All;} break; - case 91: /* sclp ::= */ - case 119: /* orderby_opt ::= */ yytestcase(yyruleno==119); - case 126: /* groupby_opt ::= */ yytestcase(yyruleno==126); - case 201: /* exprlist ::= */ yytestcase(yyruleno==201); - case 204: /* paren_exprlist ::= */ yytestcase(yyruleno==204); - case 209: /* eidlist_opt ::= */ yytestcase(yyruleno==209); -{yymsp[1].minor.yy322 = 0;} + case 94: /* sclp ::= */ + case 127: /* orderby_opt ::= */ yytestcase(yyruleno==127); + case 134: /* groupby_opt ::= */ yytestcase(yyruleno==134); + case 214: /* exprlist ::= */ yytestcase(yyruleno==214); + case 217: /* paren_exprlist ::= */ yytestcase(yyruleno==217); + case 222: /* eidlist_opt ::= */ yytestcase(yyruleno==222); +{yymsp[1].minor.yy420 = 0;} break; - case 92: /* selcollist ::= sclp scanpt expr scanpt as */ + case 95: /* selcollist ::= sclp scanpt expr scanpt as */ { - yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy322, yymsp[-2].minor.yy314); - if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy322, &yymsp[0].minor.yy0, 1); - sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy322,yymsp[-3].minor.yy336,yymsp[-1].minor.yy336); + yymsp[-4].minor.yy420 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy420, yymsp[-2].minor.yy18); + if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy420, &yymsp[0].minor.yy0, 1); + sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy420,yymsp[-3].minor.yy392,yymsp[-1].minor.yy392); } break; - case 93: /* selcollist ::= sclp scanpt STAR */ + case 96: /* selcollist ::= sclp scanpt STAR */ { Expr *p = sqlite3Expr(pParse->db, TK_ASTERISK, 0); - yymsp[-2].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy322, p); + yymsp[-2].minor.yy420 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy420, p); } break; - case 94: /* selcollist ::= sclp scanpt nm DOT STAR */ + case 97: /* selcollist ::= sclp scanpt nm DOT STAR */ { Expr *pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0); Expr *pLeft = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1); Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight); - yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, pDot); + yymsp[-4].minor.yy420 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy420, pDot); } break; - case 95: /* as ::= AS nm */ - case 106: /* dbnm ::= DOT nm */ yytestcase(yyruleno==106); - case 223: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==223); - case 224: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==224); + case 98: /* as ::= AS nm */ + case 109: /* dbnm ::= DOT nm */ yytestcase(yyruleno==109); + case 236: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==236); + case 237: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==237); {yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;} break; - case 97: /* from ::= */ -{yymsp[1].minor.yy259 = sqlite3DbMallocZero(pParse->db, sizeof(*yymsp[1].minor.yy259));} + case 100: /* from ::= */ +{yymsp[1].minor.yy135 = sqlite3DbMallocZero(pParse->db, sizeof(*yymsp[1].minor.yy135));} break; - case 98: /* from ::= FROM seltablist */ + case 101: /* from ::= FROM seltablist */ { - yymsp[-1].minor.yy259 = yymsp[0].minor.yy259; - sqlite3SrcListShiftJoinType(yymsp[-1].minor.yy259); + yymsp[-1].minor.yy135 = yymsp[0].minor.yy135; + sqlite3SrcListShiftJoinType(yymsp[-1].minor.yy135); } break; - case 99: /* stl_prefix ::= seltablist joinop */ + case 102: /* stl_prefix ::= seltablist joinop */ { - if( ALWAYS(yymsp[-1].minor.yy259 && yymsp[-1].minor.yy259->nSrc>0) ) yymsp[-1].minor.yy259->a[yymsp[-1].minor.yy259->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy4; + if( ALWAYS(yymsp[-1].minor.yy135 && yymsp[-1].minor.yy135->nSrc>0) ) yymsp[-1].minor.yy135->a[yymsp[-1].minor.yy135->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy70; } break; - case 100: /* stl_prefix ::= */ -{yymsp[1].minor.yy259 = 0;} + case 103: /* stl_prefix ::= */ +{yymsp[1].minor.yy135 = 0;} break; - case 101: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */ + case 104: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt */ { - yymsp[-6].minor.yy259 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy259,&yymsp[-5].minor.yy0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor.yy314,yymsp[0].minor.yy384); - sqlite3SrcListIndexedBy(pParse, yymsp[-6].minor.yy259, &yymsp[-2].minor.yy0); + yymsp[-6].minor.yy135 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy135,&yymsp[-5].minor.yy0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor.yy18,yymsp[0].minor.yy48); + sqlite3SrcListIndexedBy(pParse, yymsp[-6].minor.yy135, &yymsp[-2].minor.yy0); } break; - case 102: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */ + case 105: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */ { - yymsp[-8].minor.yy259 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-8].minor.yy259,&yymsp[-7].minor.yy0,&yymsp[-6].minor.yy0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy314,yymsp[0].minor.yy384); - sqlite3SrcListFuncArgs(pParse, yymsp[-8].minor.yy259, yymsp[-4].minor.yy322); + yymsp[-8].minor.yy135 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-8].minor.yy135,&yymsp[-7].minor.yy0,&yymsp[-6].minor.yy0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy18,yymsp[0].minor.yy48); + sqlite3SrcListFuncArgs(pParse, yymsp[-8].minor.yy135, yymsp[-4].minor.yy420); } break; - case 103: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */ + case 106: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */ { - yymsp[-6].minor.yy259 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy259,0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy387,yymsp[-1].minor.yy314,yymsp[0].minor.yy384); + yymsp[-6].minor.yy135 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy135,0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy489,yymsp[-1].minor.yy18,yymsp[0].minor.yy48); } break; - case 104: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */ + case 107: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */ { - if( yymsp[-6].minor.yy259==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy314==0 && yymsp[0].minor.yy384==0 ){ - yymsp[-6].minor.yy259 = yymsp[-4].minor.yy259; - }else if( yymsp[-4].minor.yy259->nSrc==1 ){ - yymsp[-6].minor.yy259 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy259,0,0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy314,yymsp[0].minor.yy384); - if( yymsp[-6].minor.yy259 ){ - struct SrcList_item *pNew = &yymsp[-6].minor.yy259->a[yymsp[-6].minor.yy259->nSrc-1]; - struct SrcList_item *pOld = yymsp[-4].minor.yy259->a; + if( yymsp[-6].minor.yy135==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy18==0 && yymsp[0].minor.yy48==0 ){ + yymsp[-6].minor.yy135 = yymsp[-4].minor.yy135; + }else if( yymsp[-4].minor.yy135->nSrc==1 ){ + yymsp[-6].minor.yy135 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy135,0,0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy18,yymsp[0].minor.yy48); + if( yymsp[-6].minor.yy135 ){ + struct SrcList_item *pNew = &yymsp[-6].minor.yy135->a[yymsp[-6].minor.yy135->nSrc-1]; + struct SrcList_item *pOld = yymsp[-4].minor.yy135->a; pNew->zName = pOld->zName; pNew->zDatabase = pOld->zDatabase; pNew->pSelect = pOld->pSelect; pOld->zName = pOld->zDatabase = 0; pOld->pSelect = 0; } - sqlite3SrcListDelete(pParse->db, yymsp[-4].minor.yy259); + sqlite3SrcListDelete(pParse->db, yymsp[-4].minor.yy135); }else{ Select *pSubquery; - sqlite3SrcListShiftJoinType(yymsp[-4].minor.yy259); - pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy259,0,0,0,0,SF_NestedFrom,0); - yymsp[-6].minor.yy259 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy259,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy314,yymsp[0].minor.yy384); + sqlite3SrcListShiftJoinType(yymsp[-4].minor.yy135); + pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy135,0,0,0,0,SF_NestedFrom,0); + yymsp[-6].minor.yy135 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy135,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy18,yymsp[0].minor.yy48); } } break; - case 105: /* dbnm ::= */ - case 114: /* indexed_opt ::= */ yytestcase(yyruleno==114); + case 108: /* dbnm ::= */ + case 122: /* indexed_opt ::= */ yytestcase(yyruleno==122); {yymsp[1].minor.yy0.z=0; yymsp[1].minor.yy0.n=0;} break; - case 107: /* fullname ::= nm dbnm */ -{yymsp[-1].minor.yy259 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/} + case 110: /* fullname ::= nm */ +{ + yylhsminor.yy135 = sqlite3SrcListAppend(pParse->db,0,&yymsp[0].minor.yy0,0); + if( IN_RENAME_OBJECT && yylhsminor.yy135 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy135->a[0].zName, &yymsp[0].minor.yy0); +} + yymsp[0].minor.yy135 = yylhsminor.yy135; + break; + case 111: /* fullname ::= nm DOT nm */ +{ + yylhsminor.yy135 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); + if( IN_RENAME_OBJECT && yylhsminor.yy135 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy135->a[0].zName, &yymsp[0].minor.yy0); +} + yymsp[-2].minor.yy135 = yylhsminor.yy135; + break; + case 112: /* xfullname ::= nm */ +{yymsp[0].minor.yy135 = sqlite3SrcListAppend(pParse->db,0,&yymsp[0].minor.yy0,0); /*A-overwrites-X*/} break; - case 108: /* joinop ::= COMMA|JOIN */ -{ yymsp[0].minor.yy4 = JT_INNER; } + case 113: /* xfullname ::= nm DOT nm */ +{yymsp[-2].minor.yy135 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/} break; - case 109: /* joinop ::= JOIN_KW JOIN */ -{yymsp[-1].minor.yy4 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/} + case 114: /* xfullname ::= nm DOT nm AS nm */ +{ + yymsp[-4].minor.yy135 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-4].minor.yy0,&yymsp[-2].minor.yy0); /*A-overwrites-X*/ + if( yymsp[-4].minor.yy135 ) yymsp[-4].minor.yy135->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0); +} + break; + case 115: /* xfullname ::= nm AS nm */ +{ + yymsp[-2].minor.yy135 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-2].minor.yy0,0); /*A-overwrites-X*/ + if( yymsp[-2].minor.yy135 ) yymsp[-2].minor.yy135->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0); +} + break; + case 116: /* joinop ::= COMMA|JOIN */ +{ yymsp[0].minor.yy70 = JT_INNER; } break; - case 110: /* joinop ::= JOIN_KW nm JOIN */ -{yymsp[-2].minor.yy4 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/} + case 117: /* joinop ::= JOIN_KW JOIN */ +{yymsp[-1].minor.yy70 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/} break; - case 111: /* joinop ::= JOIN_KW nm nm JOIN */ -{yymsp[-3].minor.yy4 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/} + case 118: /* joinop ::= JOIN_KW nm JOIN */ +{yymsp[-2].minor.yy70 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/} break; - case 112: /* on_opt ::= ON expr */ - case 129: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==129); - case 136: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==136); - case 197: /* case_else ::= ELSE expr */ yytestcase(yyruleno==197); -{yymsp[-1].minor.yy314 = yymsp[0].minor.yy314;} + case 119: /* joinop ::= JOIN_KW nm nm JOIN */ +{yymsp[-3].minor.yy70 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/} break; - case 113: /* on_opt ::= */ - case 128: /* having_opt ::= */ yytestcase(yyruleno==128); - case 130: /* limit_opt ::= */ yytestcase(yyruleno==130); - case 135: /* where_opt ::= */ yytestcase(yyruleno==135); - case 198: /* case_else ::= */ yytestcase(yyruleno==198); - case 200: /* case_operand ::= */ yytestcase(yyruleno==200); -{yymsp[1].minor.yy314 = 0;} + case 120: /* on_opt ::= ON expr */ + case 137: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==137); + case 144: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==144); + case 210: /* case_else ::= ELSE expr */ yytestcase(yyruleno==210); +{yymsp[-1].minor.yy18 = yymsp[0].minor.yy18;} break; - case 115: /* indexed_opt ::= INDEXED BY nm */ + case 121: /* on_opt ::= */ + case 136: /* having_opt ::= */ yytestcase(yyruleno==136); + case 138: /* limit_opt ::= */ yytestcase(yyruleno==138); + case 143: /* where_opt ::= */ yytestcase(yyruleno==143); + case 211: /* case_else ::= */ yytestcase(yyruleno==211); + case 213: /* case_operand ::= */ yytestcase(yyruleno==213); +{yymsp[1].minor.yy18 = 0;} + break; + case 123: /* indexed_opt ::= INDEXED BY nm */ {yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;} break; - case 116: /* indexed_opt ::= NOT INDEXED */ + case 124: /* indexed_opt ::= NOT INDEXED */ {yymsp[-1].minor.yy0.z=0; yymsp[-1].minor.yy0.n=1;} break; - case 117: /* using_opt ::= USING LP idlist RP */ -{yymsp[-3].minor.yy384 = yymsp[-1].minor.yy384;} + case 125: /* using_opt ::= USING LP idlist RP */ +{yymsp[-3].minor.yy48 = yymsp[-1].minor.yy48;} break; - case 118: /* using_opt ::= */ - case 146: /* idlist_opt ::= */ yytestcase(yyruleno==146); -{yymsp[1].minor.yy384 = 0;} + case 126: /* using_opt ::= */ + case 158: /* idlist_opt ::= */ yytestcase(yyruleno==158); +{yymsp[1].minor.yy48 = 0;} break; - case 120: /* orderby_opt ::= ORDER BY sortlist */ - case 127: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==127); -{yymsp[-2].minor.yy322 = yymsp[0].minor.yy322;} + case 128: /* orderby_opt ::= ORDER BY sortlist */ + case 135: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==135); +{yymsp[-2].minor.yy420 = yymsp[0].minor.yy420;} break; - case 121: /* sortlist ::= sortlist COMMA expr sortorder */ + case 129: /* sortlist ::= sortlist COMMA expr sortorder */ { - yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy322,yymsp[-1].minor.yy314); - sqlite3ExprListSetSortOrder(yymsp[-3].minor.yy322,yymsp[0].minor.yy4); + yymsp[-3].minor.yy420 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy420,yymsp[-1].minor.yy18); + sqlite3ExprListSetSortOrder(yymsp[-3].minor.yy420,yymsp[0].minor.yy70); } break; - case 122: /* sortlist ::= expr sortorder */ + case 130: /* sortlist ::= expr sortorder */ { - yymsp[-1].minor.yy322 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy314); /*A-overwrites-Y*/ - sqlite3ExprListSetSortOrder(yymsp[-1].minor.yy322,yymsp[0].minor.yy4); + yymsp[-1].minor.yy420 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy18); /*A-overwrites-Y*/ + sqlite3ExprListSetSortOrder(yymsp[-1].minor.yy420,yymsp[0].minor.yy70); } break; - case 123: /* sortorder ::= ASC */ -{yymsp[0].minor.yy4 = SQLITE_SO_ASC;} + case 131: /* sortorder ::= ASC */ +{yymsp[0].minor.yy70 = SQLITE_SO_ASC;} break; - case 124: /* sortorder ::= DESC */ -{yymsp[0].minor.yy4 = SQLITE_SO_DESC;} + case 132: /* sortorder ::= DESC */ +{yymsp[0].minor.yy70 = SQLITE_SO_DESC;} break; - case 125: /* sortorder ::= */ -{yymsp[1].minor.yy4 = SQLITE_SO_UNDEFINED;} + case 133: /* sortorder ::= */ +{yymsp[1].minor.yy70 = SQLITE_SO_UNDEFINED;} break; - case 131: /* limit_opt ::= LIMIT expr */ -{yymsp[-1].minor.yy314 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy314,0);} + case 139: /* limit_opt ::= LIMIT expr */ +{yymsp[-1].minor.yy18 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy18,0);} break; - case 132: /* limit_opt ::= LIMIT expr OFFSET expr */ -{yymsp[-3].minor.yy314 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy314,yymsp[0].minor.yy314);} + case 140: /* limit_opt ::= LIMIT expr OFFSET expr */ +{yymsp[-3].minor.yy18 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy18,yymsp[0].minor.yy18);} break; - case 133: /* limit_opt ::= LIMIT expr COMMA expr */ -{yymsp[-3].minor.yy314 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy314,yymsp[-2].minor.yy314);} + case 141: /* limit_opt ::= LIMIT expr COMMA expr */ +{yymsp[-3].minor.yy18 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy18,yymsp[-2].minor.yy18);} break; - case 134: /* cmd ::= with DELETE FROM fullname indexed_opt where_opt */ + case 142: /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt */ { - sqlite3WithPush(pParse, yymsp[-5].minor.yy451, 1); - sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy259, &yymsp[-1].minor.yy0); - sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy259,yymsp[0].minor.yy314,0,0); + sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy135, &yymsp[-1].minor.yy0); + sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy135,yymsp[0].minor.yy18,0,0); } break; - case 137: /* cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt */ + case 145: /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist where_opt */ { - sqlite3WithPush(pParse, yymsp[-7].minor.yy451, 1); - sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy259, &yymsp[-3].minor.yy0); - sqlite3ExprListCheckLength(pParse,yymsp[-1].minor.yy322,"set list"); - sqlite3Update(pParse,yymsp[-4].minor.yy259,yymsp[-1].minor.yy322,yymsp[0].minor.yy314,yymsp[-5].minor.yy4,0,0); + sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy135, &yymsp[-3].minor.yy0); + sqlite3ExprListCheckLength(pParse,yymsp[-1].minor.yy420,"set list"); + sqlite3Update(pParse,yymsp[-4].minor.yy135,yymsp[-1].minor.yy420,yymsp[0].minor.yy18,yymsp[-5].minor.yy70,0,0,0); } break; - case 138: /* setlist ::= setlist COMMA nm EQ expr */ + case 146: /* setlist ::= setlist COMMA nm EQ expr */ { - yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy322, yymsp[0].minor.yy314); - sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy322, &yymsp[-2].minor.yy0, 1); + yymsp[-4].minor.yy420 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy420, yymsp[0].minor.yy18); + sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy420, &yymsp[-2].minor.yy0, 1); } break; - case 139: /* setlist ::= setlist COMMA LP idlist RP EQ expr */ + case 147: /* setlist ::= setlist COMMA LP idlist RP EQ expr */ { - yymsp[-6].minor.yy322 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy322, yymsp[-3].minor.yy384, yymsp[0].minor.yy314); + yymsp[-6].minor.yy420 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy420, yymsp[-3].minor.yy48, yymsp[0].minor.yy18); } break; - case 140: /* setlist ::= nm EQ expr */ + case 148: /* setlist ::= nm EQ expr */ { - yylhsminor.yy322 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy314); - sqlite3ExprListSetName(pParse, yylhsminor.yy322, &yymsp[-2].minor.yy0, 1); + yylhsminor.yy420 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy18); + sqlite3ExprListSetName(pParse, yylhsminor.yy420, &yymsp[-2].minor.yy0, 1); } - yymsp[-2].minor.yy322 = yylhsminor.yy322; + yymsp[-2].minor.yy420 = yylhsminor.yy420; break; - case 141: /* setlist ::= LP idlist RP EQ expr */ + case 149: /* setlist ::= LP idlist RP EQ expr */ { - yymsp[-4].minor.yy322 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy384, yymsp[0].minor.yy314); + yymsp[-4].minor.yy420 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy48, yymsp[0].minor.yy18); } break; - case 142: /* cmd ::= with insert_cmd INTO fullname idlist_opt select */ + case 150: /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ { - sqlite3WithPush(pParse, yymsp[-5].minor.yy451, 1); - sqlite3Insert(pParse, yymsp[-2].minor.yy259, yymsp[0].minor.yy387, yymsp[-1].minor.yy384, yymsp[-4].minor.yy4); + sqlite3Insert(pParse, yymsp[-3].minor.yy135, yymsp[-1].minor.yy489, yymsp[-2].minor.yy48, yymsp[-5].minor.yy70, yymsp[0].minor.yy340); } break; - case 143: /* cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES */ + case 151: /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES */ { - sqlite3WithPush(pParse, yymsp[-6].minor.yy451, 1); - sqlite3Insert(pParse, yymsp[-3].minor.yy259, 0, yymsp[-2].minor.yy384, yymsp[-5].minor.yy4); + sqlite3Insert(pParse, yymsp[-3].minor.yy135, 0, yymsp[-2].minor.yy48, yymsp[-5].minor.yy70, 0); } break; - case 147: /* idlist_opt ::= LP idlist RP */ -{yymsp[-2].minor.yy384 = yymsp[-1].minor.yy384;} + case 152: /* upsert ::= */ +{ yymsp[1].minor.yy340 = 0; } + break; + case 153: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt */ +{ yymsp[-10].minor.yy340 = sqlite3UpsertNew(pParse->db,yymsp[-7].minor.yy420,yymsp[-5].minor.yy18,yymsp[-1].minor.yy420,yymsp[0].minor.yy18);} + break; + case 154: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING */ +{ yymsp[-7].minor.yy340 = sqlite3UpsertNew(pParse->db,yymsp[-4].minor.yy420,yymsp[-2].minor.yy18,0,0); } + break; + case 155: /* upsert ::= ON CONFLICT DO NOTHING */ +{ yymsp[-3].minor.yy340 = sqlite3UpsertNew(pParse->db,0,0,0,0); } + break; + case 159: /* idlist_opt ::= LP idlist RP */ +{yymsp[-2].minor.yy48 = yymsp[-1].minor.yy48;} break; - case 148: /* idlist ::= idlist COMMA nm */ -{yymsp[-2].minor.yy384 = sqlite3IdListAppend(pParse->db,yymsp[-2].minor.yy384,&yymsp[0].minor.yy0);} + case 160: /* idlist ::= idlist COMMA nm */ +{yymsp[-2].minor.yy48 = sqlite3IdListAppend(pParse,yymsp[-2].minor.yy48,&yymsp[0].minor.yy0);} break; - case 149: /* idlist ::= nm */ -{yymsp[0].minor.yy384 = sqlite3IdListAppend(pParse->db,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/} + case 161: /* idlist ::= nm */ +{yymsp[0].minor.yy48 = sqlite3IdListAppend(pParse,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/} break; - case 150: /* expr ::= LP expr RP */ -{yymsp[-2].minor.yy314 = yymsp[-1].minor.yy314;} + case 162: /* expr ::= LP expr RP */ +{yymsp[-2].minor.yy18 = yymsp[-1].minor.yy18;} break; - case 151: /* expr ::= ID|INDEXED */ - case 152: /* expr ::= JOIN_KW */ yytestcase(yyruleno==152); -{yymsp[0].minor.yy314=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/} + case 163: /* expr ::= ID|INDEXED */ + case 164: /* expr ::= JOIN_KW */ yytestcase(yyruleno==164); +{yymsp[0].minor.yy18=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/} break; - case 153: /* expr ::= nm DOT nm */ + case 165: /* expr ::= nm DOT nm */ { Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1); Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1); - yylhsminor.yy314 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2); + if( IN_RENAME_OBJECT ){ + sqlite3RenameTokenMap(pParse, (void*)temp2, &yymsp[0].minor.yy0); + sqlite3RenameTokenMap(pParse, (void*)temp1, &yymsp[-2].minor.yy0); + } + yylhsminor.yy18 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2); } - yymsp[-2].minor.yy314 = yylhsminor.yy314; + yymsp[-2].minor.yy18 = yylhsminor.yy18; break; - case 154: /* expr ::= nm DOT nm DOT nm */ + case 166: /* expr ::= nm DOT nm DOT nm */ { Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-4].minor.yy0, 1); Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[-2].minor.yy0, 1); Expr *temp3 = sqlite3ExprAlloc(pParse->db, TK_ID, &yymsp[0].minor.yy0, 1); Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3); - yylhsminor.yy314 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4); + if( IN_RENAME_OBJECT ){ + sqlite3RenameTokenMap(pParse, (void*)temp3, &yymsp[0].minor.yy0); + sqlite3RenameTokenMap(pParse, (void*)temp2, &yymsp[-2].minor.yy0); + } + yylhsminor.yy18 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4); } - yymsp[-4].minor.yy314 = yylhsminor.yy314; + yymsp[-4].minor.yy18 = yylhsminor.yy18; break; - case 155: /* term ::= NULL|FLOAT|BLOB */ - case 156: /* term ::= STRING */ yytestcase(yyruleno==156); -{yymsp[0].minor.yy314=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/} + case 167: /* term ::= NULL|FLOAT|BLOB */ + case 168: /* term ::= STRING */ yytestcase(yyruleno==168); +{yymsp[0].minor.yy18=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/} break; - case 157: /* term ::= INTEGER */ + case 169: /* term ::= INTEGER */ { - yylhsminor.yy314 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1); + yylhsminor.yy18 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1); } - yymsp[0].minor.yy314 = yylhsminor.yy314; + yymsp[0].minor.yy18 = yylhsminor.yy18; break; - case 158: /* expr ::= VARIABLE */ + case 170: /* expr ::= VARIABLE */ { if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){ u32 n = yymsp[0].minor.yy0.n; - yymsp[0].minor.yy314 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0); - sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy314, n); + yymsp[0].minor.yy18 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0); + sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy18, n); }else{ /* When doing a nested parse, one can include terms in an expression ** that look like this: #1 #2 ... These terms refer to registers @@ -141223,146 +150238,154 @@ static void yy_reduce( assert( t.n>=2 ); if( pParse->nested==0 ){ sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &t); - yymsp[0].minor.yy314 = 0; + yymsp[0].minor.yy18 = 0; }else{ - yymsp[0].minor.yy314 = sqlite3PExpr(pParse, TK_REGISTER, 0, 0); - if( yymsp[0].minor.yy314 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy314->iTable); + yymsp[0].minor.yy18 = sqlite3PExpr(pParse, TK_REGISTER, 0, 0); + if( yymsp[0].minor.yy18 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy18->iTable); } } } break; - case 159: /* expr ::= expr COLLATE ID|STRING */ + case 171: /* expr ::= expr COLLATE ID|STRING */ { - yymsp[-2].minor.yy314 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy314, &yymsp[0].minor.yy0, 1); + yymsp[-2].minor.yy18 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy18, &yymsp[0].minor.yy0, 1); } break; - case 160: /* expr ::= CAST LP expr AS typetoken RP */ + case 172: /* expr ::= CAST LP expr AS typetoken RP */ { - yymsp[-5].minor.yy314 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1); - sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy314, yymsp[-3].minor.yy314, 0); + yymsp[-5].minor.yy18 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1); + sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy18, yymsp[-3].minor.yy18, 0); } break; - case 161: /* expr ::= ID|INDEXED LP distinct exprlist RP */ + case 173: /* expr ::= ID|INDEXED LP distinct exprlist RP */ { - if( yymsp[-1].minor.yy322 && yymsp[-1].minor.yy322->nExpr>pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG] ){ - sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-4].minor.yy0); - } - yylhsminor.yy314 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy322, &yymsp[-4].minor.yy0); - if( yymsp[-2].minor.yy4==SF_Distinct && yylhsminor.yy314 ){ - yylhsminor.yy314->flags |= EP_Distinct; - } + yylhsminor.yy18 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy420, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy70); +} + yymsp[-4].minor.yy18 = yylhsminor.yy18; + break; + case 174: /* expr ::= ID|INDEXED LP STAR RP */ +{ + yylhsminor.yy18 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0, 0); +} + yymsp[-3].minor.yy18 = yylhsminor.yy18; + break; + case 175: /* expr ::= ID|INDEXED LP distinct exprlist RP over_clause */ +{ + yylhsminor.yy18 = sqlite3ExprFunction(pParse, yymsp[-2].minor.yy420, &yymsp[-5].minor.yy0, yymsp[-3].minor.yy70); + sqlite3WindowAttach(pParse, yylhsminor.yy18, yymsp[0].minor.yy327); } - yymsp[-4].minor.yy314 = yylhsminor.yy314; + yymsp[-5].minor.yy18 = yylhsminor.yy18; break; - case 162: /* expr ::= ID|INDEXED LP STAR RP */ + case 176: /* expr ::= ID|INDEXED LP STAR RP over_clause */ { - yylhsminor.yy314 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0); + yylhsminor.yy18 = sqlite3ExprFunction(pParse, 0, &yymsp[-4].minor.yy0, 0); + sqlite3WindowAttach(pParse, yylhsminor.yy18, yymsp[0].minor.yy327); } - yymsp[-3].minor.yy314 = yylhsminor.yy314; + yymsp[-4].minor.yy18 = yylhsminor.yy18; break; - case 163: /* term ::= CTIME_KW */ + case 177: /* term ::= CTIME_KW */ { - yylhsminor.yy314 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0); + yylhsminor.yy18 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0, 0); } - yymsp[0].minor.yy314 = yylhsminor.yy314; + yymsp[0].minor.yy18 = yylhsminor.yy18; break; - case 164: /* expr ::= LP nexprlist COMMA expr RP */ + case 178: /* expr ::= LP nexprlist COMMA expr RP */ { - ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy322, yymsp[-1].minor.yy314); - yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0); - if( yymsp[-4].minor.yy314 ){ - yymsp[-4].minor.yy314->x.pList = pList; + ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy420, yymsp[-1].minor.yy18); + yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0); + if( yymsp[-4].minor.yy18 ){ + yymsp[-4].minor.yy18->x.pList = pList; }else{ sqlite3ExprListDelete(pParse->db, pList); } } break; - case 165: /* expr ::= expr AND expr */ - case 166: /* expr ::= expr OR expr */ yytestcase(yyruleno==166); - case 167: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==167); - case 168: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==168); - case 169: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==169); - case 170: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==170); - case 171: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==171); - case 172: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==172); -{yymsp[-2].minor.yy314=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy314,yymsp[0].minor.yy314);} + case 179: /* expr ::= expr AND expr */ + case 180: /* expr ::= expr OR expr */ yytestcase(yyruleno==180); + case 181: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==181); + case 182: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==182); + case 183: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==183); + case 184: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==184); + case 185: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==185); + case 186: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==186); +{yymsp[-2].minor.yy18=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy18,yymsp[0].minor.yy18);} break; - case 173: /* likeop ::= NOT LIKE_KW|MATCH */ + case 187: /* likeop ::= NOT LIKE_KW|MATCH */ {yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/} break; - case 174: /* expr ::= expr likeop expr */ + case 188: /* expr ::= expr likeop expr */ { ExprList *pList; int bNot = yymsp[-1].minor.yy0.n & 0x80000000; yymsp[-1].minor.yy0.n &= 0x7fffffff; - pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy314); - pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy314); - yymsp[-2].minor.yy314 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0); - if( bNot ) yymsp[-2].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy314, 0); - if( yymsp[-2].minor.yy314 ) yymsp[-2].minor.yy314->flags |= EP_InfixFunc; + pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy18); + pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy18); + yymsp[-2].minor.yy18 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0); + if( bNot ) yymsp[-2].minor.yy18 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy18, 0); + if( yymsp[-2].minor.yy18 ) yymsp[-2].minor.yy18->flags |= EP_InfixFunc; } break; - case 175: /* expr ::= expr likeop expr ESCAPE expr */ + case 189: /* expr ::= expr likeop expr ESCAPE expr */ { ExprList *pList; int bNot = yymsp[-3].minor.yy0.n & 0x80000000; yymsp[-3].minor.yy0.n &= 0x7fffffff; - pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy314); - pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy314); - pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy314); - yymsp[-4].minor.yy314 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0); - if( bNot ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0); - if( yymsp[-4].minor.yy314 ) yymsp[-4].minor.yy314->flags |= EP_InfixFunc; + pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy18); + pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy18); + pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy18); + yymsp[-4].minor.yy18 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0, 0); + if( bNot ) yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy18, 0); + if( yymsp[-4].minor.yy18 ) yymsp[-4].minor.yy18->flags |= EP_InfixFunc; } break; - case 176: /* expr ::= expr ISNULL|NOTNULL */ -{yymsp[-1].minor.yy314 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy314,0);} + case 190: /* expr ::= expr ISNULL|NOTNULL */ +{yymsp[-1].minor.yy18 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy18,0);} break; - case 177: /* expr ::= expr NOT NULL */ -{yymsp[-2].minor.yy314 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy314,0);} + case 191: /* expr ::= expr NOT NULL */ +{yymsp[-2].minor.yy18 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy18,0);} break; - case 178: /* expr ::= expr IS expr */ + case 192: /* expr ::= expr IS expr */ { - yymsp[-2].minor.yy314 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy314,yymsp[0].minor.yy314); - binaryToUnaryIfNull(pParse, yymsp[0].minor.yy314, yymsp[-2].minor.yy314, TK_ISNULL); + yymsp[-2].minor.yy18 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy18,yymsp[0].minor.yy18); + binaryToUnaryIfNull(pParse, yymsp[0].minor.yy18, yymsp[-2].minor.yy18, TK_ISNULL); } break; - case 179: /* expr ::= expr IS NOT expr */ + case 193: /* expr ::= expr IS NOT expr */ { - yymsp[-3].minor.yy314 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy314,yymsp[0].minor.yy314); - binaryToUnaryIfNull(pParse, yymsp[0].minor.yy314, yymsp[-3].minor.yy314, TK_NOTNULL); + yymsp[-3].minor.yy18 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy18,yymsp[0].minor.yy18); + binaryToUnaryIfNull(pParse, yymsp[0].minor.yy18, yymsp[-3].minor.yy18, TK_NOTNULL); } break; - case 180: /* expr ::= NOT expr */ - case 181: /* expr ::= BITNOT expr */ yytestcase(yyruleno==181); -{yymsp[-1].minor.yy314 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy314, 0);/*A-overwrites-B*/} - break; - case 182: /* expr ::= MINUS expr */ -{yymsp[-1].minor.yy314 = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy314, 0);} + case 194: /* expr ::= NOT expr */ + case 195: /* expr ::= BITNOT expr */ yytestcase(yyruleno==195); +{yymsp[-1].minor.yy18 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy18, 0);/*A-overwrites-B*/} break; - case 183: /* expr ::= PLUS expr */ -{yymsp[-1].minor.yy314 = sqlite3PExpr(pParse, TK_UPLUS, yymsp[0].minor.yy314, 0);} + case 196: /* expr ::= PLUS|MINUS expr */ +{ + yymsp[-1].minor.yy18 = sqlite3PExpr(pParse, yymsp[-1].major==TK_PLUS ? TK_UPLUS : TK_UMINUS, yymsp[0].minor.yy18, 0); + /*A-overwrites-B*/ +} break; - case 184: /* between_op ::= BETWEEN */ - case 187: /* in_op ::= IN */ yytestcase(yyruleno==187); -{yymsp[0].minor.yy4 = 0;} + case 197: /* between_op ::= BETWEEN */ + case 200: /* in_op ::= IN */ yytestcase(yyruleno==200); +{yymsp[0].minor.yy70 = 0;} break; - case 186: /* expr ::= expr between_op expr AND expr */ + case 199: /* expr ::= expr between_op expr AND expr */ { - ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy314); - pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy314); - yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy314, 0); - if( yymsp[-4].minor.yy314 ){ - yymsp[-4].minor.yy314->x.pList = pList; + ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy18); + pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy18); + yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy18, 0); + if( yymsp[-4].minor.yy18 ){ + yymsp[-4].minor.yy18->x.pList = pList; }else{ sqlite3ExprListDelete(pParse->db, pList); } - if( yymsp[-3].minor.yy4 ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0); + if( yymsp[-3].minor.yy70 ) yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy18, 0); } break; - case 189: /* expr ::= expr in_op LP exprlist RP */ + case 202: /* expr ::= expr in_op LP exprlist RP */ { - if( yymsp[-1].minor.yy322==0 ){ + if( yymsp[-1].minor.yy420==0 ){ /* Expressions of the form ** ** expr1 IN () @@ -141371,9 +150394,9 @@ static void yy_reduce( ** simplify to constants 0 (false) and 1 (true), respectively, ** regardless of the value of expr1. */ - sqlite3ExprDelete(pParse->db, yymsp[-4].minor.yy314); - yymsp[-4].minor.yy314 = sqlite3ExprAlloc(pParse->db, TK_INTEGER,&sqlite3IntTokens[yymsp[-3].minor.yy4],1); - }else if( yymsp[-1].minor.yy322->nExpr==1 ){ + sqlite3ExprDelete(pParse->db, yymsp[-4].minor.yy18); + yymsp[-4].minor.yy18 = sqlite3ExprAlloc(pParse->db, TK_INTEGER,&sqlite3IntTokens[yymsp[-3].minor.yy70],1); + }else if( yymsp[-1].minor.yy420->nExpr==1 ){ /* Expressions of the form: ** ** expr1 IN (?1) @@ -141390,195 +150413,199 @@ static void yy_reduce( ** affinity or the collating sequence to use for comparison. Otherwise, ** the semantics would be subtly different from IN or NOT IN. */ - Expr *pRHS = yymsp[-1].minor.yy322->a[0].pExpr; - yymsp[-1].minor.yy322->a[0].pExpr = 0; - sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy322); + Expr *pRHS = yymsp[-1].minor.yy420->a[0].pExpr; + yymsp[-1].minor.yy420->a[0].pExpr = 0; + sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy420); /* pRHS cannot be NULL because a malloc error would have been detected ** before now and control would have never reached this point */ if( ALWAYS(pRHS) ){ pRHS->flags &= ~EP_Collate; pRHS->flags |= EP_Generic; } - yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, yymsp[-3].minor.yy4 ? TK_NE : TK_EQ, yymsp[-4].minor.yy314, pRHS); + yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, yymsp[-3].minor.yy70 ? TK_NE : TK_EQ, yymsp[-4].minor.yy18, pRHS); }else{ - yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy314, 0); - if( yymsp[-4].minor.yy314 ){ - yymsp[-4].minor.yy314->x.pList = yymsp[-1].minor.yy322; - sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy314); + yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy18, 0); + if( yymsp[-4].minor.yy18 ){ + yymsp[-4].minor.yy18->x.pList = yymsp[-1].minor.yy420; + sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy18); }else{ - sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy322); + sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy420); } - if( yymsp[-3].minor.yy4 ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0); + if( yymsp[-3].minor.yy70 ) yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy18, 0); } } break; - case 190: /* expr ::= LP select RP */ + case 203: /* expr ::= LP select RP */ { - yymsp[-2].minor.yy314 = sqlite3PExpr(pParse, TK_SELECT, 0, 0); - sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy314, yymsp[-1].minor.yy387); + yymsp[-2].minor.yy18 = sqlite3PExpr(pParse, TK_SELECT, 0, 0); + sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy18, yymsp[-1].minor.yy489); } break; - case 191: /* expr ::= expr in_op LP select RP */ + case 204: /* expr ::= expr in_op LP select RP */ { - yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy314, 0); - sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy314, yymsp[-1].minor.yy387); - if( yymsp[-3].minor.yy4 ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0); + yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy18, 0); + sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy18, yymsp[-1].minor.yy489); + if( yymsp[-3].minor.yy70 ) yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy18, 0); } break; - case 192: /* expr ::= expr in_op nm dbnm paren_exprlist */ + case 205: /* expr ::= expr in_op nm dbnm paren_exprlist */ { SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0); Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0); - if( yymsp[0].minor.yy322 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy322); - yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy314, 0); - sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy314, pSelect); - if( yymsp[-3].minor.yy4 ) yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy314, 0); + if( yymsp[0].minor.yy420 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy420); + yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy18, 0); + sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy18, pSelect); + if( yymsp[-3].minor.yy70 ) yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy18, 0); } break; - case 193: /* expr ::= EXISTS LP select RP */ + case 206: /* expr ::= EXISTS LP select RP */ { Expr *p; - p = yymsp[-3].minor.yy314 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0); - sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy387); + p = yymsp[-3].minor.yy18 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0); + sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy489); } break; - case 194: /* expr ::= CASE case_operand case_exprlist case_else END */ + case 207: /* expr ::= CASE case_operand case_exprlist case_else END */ { - yymsp[-4].minor.yy314 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy314, 0); - if( yymsp[-4].minor.yy314 ){ - yymsp[-4].minor.yy314->x.pList = yymsp[-1].minor.yy314 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy322,yymsp[-1].minor.yy314) : yymsp[-2].minor.yy322; - sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy314); + yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy18, 0); + if( yymsp[-4].minor.yy18 ){ + yymsp[-4].minor.yy18->x.pList = yymsp[-1].minor.yy18 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy420,yymsp[-1].minor.yy18) : yymsp[-2].minor.yy420; + sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy18); }else{ - sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy322); - sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy314); + sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy420); + sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy18); } } break; - case 195: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ + case 208: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ { - yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, yymsp[-2].minor.yy314); - yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, yymsp[0].minor.yy314); + yymsp[-4].minor.yy420 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy420, yymsp[-2].minor.yy18); + yymsp[-4].minor.yy420 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy420, yymsp[0].minor.yy18); } break; - case 196: /* case_exprlist ::= WHEN expr THEN expr */ + case 209: /* case_exprlist ::= WHEN expr THEN expr */ { - yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy314); - yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy322, yymsp[0].minor.yy314); + yymsp[-3].minor.yy420 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy18); + yymsp[-3].minor.yy420 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy420, yymsp[0].minor.yy18); } break; - case 199: /* case_operand ::= expr */ -{yymsp[0].minor.yy314 = yymsp[0].minor.yy314; /*A-overwrites-X*/} + case 212: /* case_operand ::= expr */ +{yymsp[0].minor.yy18 = yymsp[0].minor.yy18; /*A-overwrites-X*/} break; - case 202: /* nexprlist ::= nexprlist COMMA expr */ -{yymsp[-2].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy322,yymsp[0].minor.yy314);} + case 215: /* nexprlist ::= nexprlist COMMA expr */ +{yymsp[-2].minor.yy420 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy420,yymsp[0].minor.yy18);} break; - case 203: /* nexprlist ::= expr */ -{yymsp[0].minor.yy322 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy314); /*A-overwrites-Y*/} + case 216: /* nexprlist ::= expr */ +{yymsp[0].minor.yy420 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy18); /*A-overwrites-Y*/} break; - case 205: /* paren_exprlist ::= LP exprlist RP */ - case 210: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==210); -{yymsp[-2].minor.yy322 = yymsp[-1].minor.yy322;} + case 218: /* paren_exprlist ::= LP exprlist RP */ + case 223: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==223); +{yymsp[-2].minor.yy420 = yymsp[-1].minor.yy420;} break; - case 206: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ + case 219: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ { sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, - sqlite3SrcListAppend(pParse->db,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy322, yymsp[-10].minor.yy4, - &yymsp[-11].minor.yy0, yymsp[0].minor.yy314, SQLITE_SO_ASC, yymsp[-8].minor.yy4, SQLITE_IDXTYPE_APPDEF); + sqlite3SrcListAppend(pParse->db,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy420, yymsp[-10].minor.yy70, + &yymsp[-11].minor.yy0, yymsp[0].minor.yy18, SQLITE_SO_ASC, yymsp[-8].minor.yy70, SQLITE_IDXTYPE_APPDEF); + if( IN_RENAME_OBJECT && pParse->pNewIndex ){ + sqlite3RenameTokenMap(pParse, pParse->pNewIndex->zName, &yymsp[-4].minor.yy0); + } } break; - case 207: /* uniqueflag ::= UNIQUE */ - case 247: /* raisetype ::= ABORT */ yytestcase(yyruleno==247); -{yymsp[0].minor.yy4 = OE_Abort;} + case 220: /* uniqueflag ::= UNIQUE */ + case 260: /* raisetype ::= ABORT */ yytestcase(yyruleno==260); +{yymsp[0].minor.yy70 = OE_Abort;} break; - case 208: /* uniqueflag ::= */ -{yymsp[1].minor.yy4 = OE_None;} + case 221: /* uniqueflag ::= */ +{yymsp[1].minor.yy70 = OE_None;} break; - case 211: /* eidlist ::= eidlist COMMA nm collate sortorder */ + case 224: /* eidlist ::= eidlist COMMA nm collate sortorder */ { - yymsp[-4].minor.yy322 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy322, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy4, yymsp[0].minor.yy4); + yymsp[-4].minor.yy420 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy420, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy70, yymsp[0].minor.yy70); } break; - case 212: /* eidlist ::= nm collate sortorder */ + case 225: /* eidlist ::= nm collate sortorder */ { - yymsp[-2].minor.yy322 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy4, yymsp[0].minor.yy4); /*A-overwrites-Y*/ + yymsp[-2].minor.yy420 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy70, yymsp[0].minor.yy70); /*A-overwrites-Y*/ } break; - case 215: /* cmd ::= DROP INDEX ifexists fullname */ -{sqlite3DropIndex(pParse, yymsp[0].minor.yy259, yymsp[-1].minor.yy4);} + case 228: /* cmd ::= DROP INDEX ifexists fullname */ +{sqlite3DropIndex(pParse, yymsp[0].minor.yy135, yymsp[-1].minor.yy70);} break; - case 216: /* cmd ::= VACUUM */ + case 229: /* cmd ::= VACUUM */ {sqlite3Vacuum(pParse,0);} break; - case 217: /* cmd ::= VACUUM nm */ + case 230: /* cmd ::= VACUUM nm */ {sqlite3Vacuum(pParse,&yymsp[0].minor.yy0);} break; - case 218: /* cmd ::= PRAGMA nm dbnm */ + case 231: /* cmd ::= PRAGMA nm dbnm */ {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);} break; - case 219: /* cmd ::= PRAGMA nm dbnm EQ nmnum */ + case 232: /* cmd ::= PRAGMA nm dbnm EQ nmnum */ {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);} break; - case 220: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ + case 233: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);} break; - case 221: /* cmd ::= PRAGMA nm dbnm EQ minus_num */ + case 234: /* cmd ::= PRAGMA nm dbnm EQ minus_num */ {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);} break; - case 222: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ + case 235: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);} break; - case 225: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ + case 238: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ { Token all; all.z = yymsp[-3].minor.yy0.z; all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n; - sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy203, &all); + sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy207, &all); } break; - case 226: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ + case 239: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ { - sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy4, yymsp[-4].minor.yy90.a, yymsp[-4].minor.yy90.b, yymsp[-2].minor.yy259, yymsp[0].minor.yy314, yymsp[-10].minor.yy4, yymsp[-8].minor.yy4); + sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy70, yymsp[-4].minor.yy34.a, yymsp[-4].minor.yy34.b, yymsp[-2].minor.yy135, yymsp[0].minor.yy18, yymsp[-10].minor.yy70, yymsp[-8].minor.yy70); yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/ } break; - case 227: /* trigger_time ::= BEFORE|AFTER */ -{ yymsp[0].minor.yy4 = yymsp[0].major; /*A-overwrites-X*/ } + case 240: /* trigger_time ::= BEFORE|AFTER */ +{ yymsp[0].minor.yy70 = yymsp[0].major; /*A-overwrites-X*/ } break; - case 228: /* trigger_time ::= INSTEAD OF */ -{ yymsp[-1].minor.yy4 = TK_INSTEAD;} + case 241: /* trigger_time ::= INSTEAD OF */ +{ yymsp[-1].minor.yy70 = TK_INSTEAD;} break; - case 229: /* trigger_time ::= */ -{ yymsp[1].minor.yy4 = TK_BEFORE; } + case 242: /* trigger_time ::= */ +{ yymsp[1].minor.yy70 = TK_BEFORE; } break; - case 230: /* trigger_event ::= DELETE|INSERT */ - case 231: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==231); -{yymsp[0].minor.yy90.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy90.b = 0;} + case 243: /* trigger_event ::= DELETE|INSERT */ + case 244: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==244); +{yymsp[0].minor.yy34.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy34.b = 0;} break; - case 232: /* trigger_event ::= UPDATE OF idlist */ -{yymsp[-2].minor.yy90.a = TK_UPDATE; yymsp[-2].minor.yy90.b = yymsp[0].minor.yy384;} + case 245: /* trigger_event ::= UPDATE OF idlist */ +{yymsp[-2].minor.yy34.a = TK_UPDATE; yymsp[-2].minor.yy34.b = yymsp[0].minor.yy48;} break; - case 233: /* when_clause ::= */ - case 252: /* key_opt ::= */ yytestcase(yyruleno==252); -{ yymsp[1].minor.yy314 = 0; } + case 246: /* when_clause ::= */ + case 265: /* key_opt ::= */ yytestcase(yyruleno==265); + case 307: /* filter_opt ::= */ yytestcase(yyruleno==307); +{ yymsp[1].minor.yy18 = 0; } break; - case 234: /* when_clause ::= WHEN expr */ - case 253: /* key_opt ::= KEY expr */ yytestcase(yyruleno==253); -{ yymsp[-1].minor.yy314 = yymsp[0].minor.yy314; } + case 247: /* when_clause ::= WHEN expr */ + case 266: /* key_opt ::= KEY expr */ yytestcase(yyruleno==266); +{ yymsp[-1].minor.yy18 = yymsp[0].minor.yy18; } break; - case 235: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ + case 248: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ { - assert( yymsp[-2].minor.yy203!=0 ); - yymsp[-2].minor.yy203->pLast->pNext = yymsp[-1].minor.yy203; - yymsp[-2].minor.yy203->pLast = yymsp[-1].minor.yy203; + assert( yymsp[-2].minor.yy207!=0 ); + yymsp[-2].minor.yy207->pLast->pNext = yymsp[-1].minor.yy207; + yymsp[-2].minor.yy207->pLast = yymsp[-1].minor.yy207; } break; - case 236: /* trigger_cmd_list ::= trigger_cmd SEMI */ + case 249: /* trigger_cmd_list ::= trigger_cmd SEMI */ { - assert( yymsp[-1].minor.yy203!=0 ); - yymsp[-1].minor.yy203->pLast = yymsp[-1].minor.yy203; + assert( yymsp[-1].minor.yy207!=0 ); + yymsp[-1].minor.yy207->pLast = yymsp[-1].minor.yy207; } break; - case 237: /* trnm ::= nm DOT nm */ + case 250: /* trnm ::= nm DOT nm */ { yymsp[-2].minor.yy0 = yymsp[0].minor.yy0; sqlite3ErrorMsg(pParse, @@ -141586,198 +150613,306 @@ static void yy_reduce( "statements within triggers"); } break; - case 238: /* tridxby ::= INDEXED BY nm */ + case 251: /* tridxby ::= INDEXED BY nm */ { sqlite3ErrorMsg(pParse, "the INDEXED BY clause is not allowed on UPDATE or DELETE statements " "within triggers"); } break; - case 239: /* tridxby ::= NOT INDEXED */ + case 252: /* tridxby ::= NOT INDEXED */ { sqlite3ErrorMsg(pParse, "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements " "within triggers"); } break; - case 240: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */ -{yylhsminor.yy203 = sqlite3TriggerUpdateStep(pParse->db, &yymsp[-5].minor.yy0, yymsp[-2].minor.yy322, yymsp[-1].minor.yy314, yymsp[-6].minor.yy4, yymsp[-7].minor.yy0.z, yymsp[0].minor.yy336);} - yymsp[-7].minor.yy203 = yylhsminor.yy203; + case 253: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt scanpt */ +{yylhsminor.yy207 = sqlite3TriggerUpdateStep(pParse, &yymsp[-5].minor.yy0, yymsp[-2].minor.yy420, yymsp[-1].minor.yy18, yymsp[-6].minor.yy70, yymsp[-7].minor.yy0.z, yymsp[0].minor.yy392);} + yymsp[-7].minor.yy207 = yylhsminor.yy207; break; - case 241: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select scanpt */ -{yylhsminor.yy203 = sqlite3TriggerInsertStep(pParse->db,&yymsp[-3].minor.yy0,yymsp[-2].minor.yy384,yymsp[-1].minor.yy387,yymsp[-5].minor.yy4,yymsp[-6].minor.yy336,yymsp[0].minor.yy336);/*yylhsminor.yy203-overwrites-yymsp[-5].minor.yy4*/} - yymsp[-6].minor.yy203 = yylhsminor.yy203; + case 254: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ +{ + yylhsminor.yy207 = sqlite3TriggerInsertStep(pParse,&yymsp[-4].minor.yy0,yymsp[-3].minor.yy48,yymsp[-2].minor.yy489,yymsp[-6].minor.yy70,yymsp[-1].minor.yy340,yymsp[-7].minor.yy392,yymsp[0].minor.yy392);/*yylhsminor.yy207-overwrites-yymsp[-6].minor.yy70*/ +} + yymsp[-7].minor.yy207 = yylhsminor.yy207; break; - case 242: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ -{yylhsminor.yy203 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy314, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy336);} - yymsp[-5].minor.yy203 = yylhsminor.yy203; + case 255: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ +{yylhsminor.yy207 = sqlite3TriggerDeleteStep(pParse, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy18, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy392);} + yymsp[-5].minor.yy207 = yylhsminor.yy207; break; - case 243: /* trigger_cmd ::= scanpt select scanpt */ -{yylhsminor.yy203 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy387, yymsp[-2].minor.yy336, yymsp[0].minor.yy336); /*yylhsminor.yy203-overwrites-yymsp[-1].minor.yy387*/} - yymsp[-2].minor.yy203 = yylhsminor.yy203; + case 256: /* trigger_cmd ::= scanpt select scanpt */ +{yylhsminor.yy207 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy489, yymsp[-2].minor.yy392, yymsp[0].minor.yy392); /*yylhsminor.yy207-overwrites-yymsp[-1].minor.yy489*/} + yymsp[-2].minor.yy207 = yylhsminor.yy207; break; - case 244: /* expr ::= RAISE LP IGNORE RP */ + case 257: /* expr ::= RAISE LP IGNORE RP */ { - yymsp[-3].minor.yy314 = sqlite3PExpr(pParse, TK_RAISE, 0, 0); - if( yymsp[-3].minor.yy314 ){ - yymsp[-3].minor.yy314->affinity = OE_Ignore; + yymsp[-3].minor.yy18 = sqlite3PExpr(pParse, TK_RAISE, 0, 0); + if( yymsp[-3].minor.yy18 ){ + yymsp[-3].minor.yy18->affinity = OE_Ignore; } } break; - case 245: /* expr ::= RAISE LP raisetype COMMA nm RP */ + case 258: /* expr ::= RAISE LP raisetype COMMA nm RP */ { - yymsp[-5].minor.yy314 = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1); - if( yymsp[-5].minor.yy314 ) { - yymsp[-5].minor.yy314->affinity = (char)yymsp[-3].minor.yy4; + yymsp[-5].minor.yy18 = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1); + if( yymsp[-5].minor.yy18 ) { + yymsp[-5].minor.yy18->affinity = (char)yymsp[-3].minor.yy70; } } break; - case 246: /* raisetype ::= ROLLBACK */ -{yymsp[0].minor.yy4 = OE_Rollback;} + case 259: /* raisetype ::= ROLLBACK */ +{yymsp[0].minor.yy70 = OE_Rollback;} break; - case 248: /* raisetype ::= FAIL */ -{yymsp[0].minor.yy4 = OE_Fail;} + case 261: /* raisetype ::= FAIL */ +{yymsp[0].minor.yy70 = OE_Fail;} break; - case 249: /* cmd ::= DROP TRIGGER ifexists fullname */ + case 262: /* cmd ::= DROP TRIGGER ifexists fullname */ { - sqlite3DropTrigger(pParse,yymsp[0].minor.yy259,yymsp[-1].minor.yy4); + sqlite3DropTrigger(pParse,yymsp[0].minor.yy135,yymsp[-1].minor.yy70); } break; - case 250: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ + case 263: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ { - sqlite3Attach(pParse, yymsp[-3].minor.yy314, yymsp[-1].minor.yy314, yymsp[0].minor.yy314); + sqlite3Attach(pParse, yymsp[-3].minor.yy18, yymsp[-1].minor.yy18, yymsp[0].minor.yy18); } break; - case 251: /* cmd ::= DETACH database_kw_opt expr */ + case 264: /* cmd ::= DETACH database_kw_opt expr */ { - sqlite3Detach(pParse, yymsp[0].minor.yy314); + sqlite3Detach(pParse, yymsp[0].minor.yy18); } break; - case 254: /* cmd ::= REINDEX */ + case 267: /* cmd ::= REINDEX */ {sqlite3Reindex(pParse, 0, 0);} break; - case 255: /* cmd ::= REINDEX nm dbnm */ + case 268: /* cmd ::= REINDEX nm dbnm */ {sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);} break; - case 256: /* cmd ::= ANALYZE */ + case 269: /* cmd ::= ANALYZE */ {sqlite3Analyze(pParse, 0, 0);} break; - case 257: /* cmd ::= ANALYZE nm dbnm */ + case 270: /* cmd ::= ANALYZE nm dbnm */ {sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);} break; - case 258: /* cmd ::= ALTER TABLE fullname RENAME TO nm */ + case 271: /* cmd ::= ALTER TABLE fullname RENAME TO nm */ { - sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy259,&yymsp[0].minor.yy0); + sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy135,&yymsp[0].minor.yy0); } break; - case 259: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ + case 272: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ { yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n; sqlite3AlterFinishAddColumn(pParse, &yymsp[-1].minor.yy0); } break; - case 260: /* add_column_fullname ::= fullname */ + case 273: /* add_column_fullname ::= fullname */ { disableLookaside(pParse); - sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy259); + sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy135); +} + break; + case 274: /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ +{ + sqlite3AlterRenameColumn(pParse, yymsp[-5].minor.yy135, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); } break; - case 261: /* cmd ::= create_vtab */ + case 275: /* cmd ::= create_vtab */ {sqlite3VtabFinishParse(pParse,0);} break; - case 262: /* cmd ::= create_vtab LP vtabarglist RP */ + case 276: /* cmd ::= create_vtab LP vtabarglist RP */ {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);} break; - case 263: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ + case 277: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ { - sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy4); + sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy70); } break; - case 264: /* vtabarg ::= */ + case 278: /* vtabarg ::= */ {sqlite3VtabArgInit(pParse);} break; - case 265: /* vtabargtoken ::= ANY */ - case 266: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==266); - case 267: /* lp ::= LP */ yytestcase(yyruleno==267); + case 279: /* vtabargtoken ::= ANY */ + case 280: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==280); + case 281: /* lp ::= LP */ yytestcase(yyruleno==281); {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);} break; - case 268: /* with ::= */ -{yymsp[1].minor.yy451 = 0;} + case 282: /* with ::= WITH wqlist */ + case 283: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==283); +{ sqlite3WithPush(pParse, yymsp[0].minor.yy449, 1); } + break; + case 284: /* wqlist ::= nm eidlist_opt AS LP select RP */ +{ + yymsp[-5].minor.yy449 = sqlite3WithAdd(pParse, 0, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy420, yymsp[-1].minor.yy489); /*A-overwrites-X*/ +} + break; + case 285: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */ +{ + yymsp[-7].minor.yy449 = sqlite3WithAdd(pParse, yymsp[-7].minor.yy449, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy420, yymsp[-1].minor.yy489); +} + break; + case 286: /* windowdefn_list ::= windowdefn */ +{ yylhsminor.yy327 = yymsp[0].minor.yy327; } + yymsp[0].minor.yy327 = yylhsminor.yy327; + break; + case 287: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ +{ + assert( yymsp[0].minor.yy327!=0 ); + yymsp[0].minor.yy327->pNextWin = yymsp[-2].minor.yy327; + yylhsminor.yy327 = yymsp[0].minor.yy327; +} + yymsp[-2].minor.yy327 = yylhsminor.yy327; + break; + case 288: /* windowdefn ::= nm AS window */ +{ + if( ALWAYS(yymsp[0].minor.yy327) ){ + yymsp[0].minor.yy327->zName = sqlite3DbStrNDup(pParse->db, yymsp[-2].minor.yy0.z, yymsp[-2].minor.yy0.n); + } + yylhsminor.yy327 = yymsp[0].minor.yy327; +} + yymsp[-2].minor.yy327 = yylhsminor.yy327; + break; + case 289: /* window ::= LP part_opt orderby_opt frame_opt RP */ +{ + yymsp[-4].minor.yy327 = yymsp[-1].minor.yy327; + if( ALWAYS(yymsp[-4].minor.yy327) ){ + yymsp[-4].minor.yy327->pPartition = yymsp[-3].minor.yy420; + yymsp[-4].minor.yy327->pOrderBy = yymsp[-2].minor.yy420; + } +} + break; + case 290: /* part_opt ::= PARTITION BY nexprlist */ +{ yymsp[-2].minor.yy420 = yymsp[0].minor.yy420; } + break; + case 291: /* part_opt ::= */ +{ yymsp[1].minor.yy420 = 0; } + break; + case 292: /* frame_opt ::= */ +{ + yymsp[1].minor.yy327 = sqlite3WindowAlloc(pParse, TK_RANGE, TK_UNBOUNDED, 0, TK_CURRENT, 0); +} + break; + case 293: /* frame_opt ::= range_or_rows frame_bound_s */ +{ + yylhsminor.yy327 = sqlite3WindowAlloc(pParse, yymsp[-1].minor.yy70, yymsp[0].minor.yy119.eType, yymsp[0].minor.yy119.pExpr, TK_CURRENT, 0); +} + yymsp[-1].minor.yy327 = yylhsminor.yy327; + break; + case 294: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e */ +{ + yylhsminor.yy327 = sqlite3WindowAlloc(pParse, yymsp[-4].minor.yy70, yymsp[-2].minor.yy119.eType, yymsp[-2].minor.yy119.pExpr, yymsp[0].minor.yy119.eType, yymsp[0].minor.yy119.pExpr); +} + yymsp[-4].minor.yy327 = yylhsminor.yy327; + break; + case 295: /* range_or_rows ::= RANGE */ +{ yymsp[0].minor.yy70 = TK_RANGE; } + break; + case 296: /* range_or_rows ::= ROWS */ +{ yymsp[0].minor.yy70 = TK_ROWS; } + break; + case 297: /* frame_bound_s ::= frame_bound */ + case 299: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==299); +{ yylhsminor.yy119 = yymsp[0].minor.yy119; } + yymsp[0].minor.yy119 = yylhsminor.yy119; + break; + case 298: /* frame_bound_s ::= UNBOUNDED PRECEDING */ + case 300: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==300); +{yymsp[-1].minor.yy119.eType = TK_UNBOUNDED; yymsp[-1].minor.yy119.pExpr = 0;} break; - case 269: /* with ::= WITH wqlist */ -{ yymsp[-1].minor.yy451 = yymsp[0].minor.yy451; } + case 301: /* frame_bound ::= expr PRECEDING */ +{ yylhsminor.yy119.eType = TK_PRECEDING; yylhsminor.yy119.pExpr = yymsp[-1].minor.yy18; } + yymsp[-1].minor.yy119 = yylhsminor.yy119; break; - case 270: /* with ::= WITH RECURSIVE wqlist */ -{ yymsp[-2].minor.yy451 = yymsp[0].minor.yy451; } + case 302: /* frame_bound ::= CURRENT ROW */ +{ yymsp[-1].minor.yy119.eType = TK_CURRENT ; yymsp[-1].minor.yy119.pExpr = 0; } break; - case 271: /* wqlist ::= nm eidlist_opt AS LP select RP */ + case 303: /* frame_bound ::= expr FOLLOWING */ +{ yylhsminor.yy119.eType = TK_FOLLOWING; yylhsminor.yy119.pExpr = yymsp[-1].minor.yy18; } + yymsp[-1].minor.yy119 = yylhsminor.yy119; + break; + case 304: /* window_clause ::= WINDOW windowdefn_list */ +{ yymsp[-1].minor.yy327 = yymsp[0].minor.yy327; } + break; + case 305: /* over_clause ::= filter_opt OVER window */ { - yymsp[-5].minor.yy451 = sqlite3WithAdd(pParse, 0, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy322, yymsp[-1].minor.yy387); /*A-overwrites-X*/ + yylhsminor.yy327 = yymsp[0].minor.yy327; + assert( yylhsminor.yy327!=0 ); + yylhsminor.yy327->pFilter = yymsp[-2].minor.yy18; } + yymsp[-2].minor.yy327 = yylhsminor.yy327; break; - case 272: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */ + case 306: /* over_clause ::= filter_opt OVER nm */ { - yymsp[-7].minor.yy451 = sqlite3WithAdd(pParse, yymsp[-7].minor.yy451, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy322, yymsp[-1].minor.yy387); + yylhsminor.yy327 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); + if( yylhsminor.yy327 ){ + yylhsminor.yy327->zName = sqlite3DbStrNDup(pParse->db, yymsp[0].minor.yy0.z, yymsp[0].minor.yy0.n); + yylhsminor.yy327->pFilter = yymsp[-2].minor.yy18; + }else{ + sqlite3ExprDelete(pParse->db, yymsp[-2].minor.yy18); + } } + yymsp[-2].minor.yy327 = yylhsminor.yy327; + break; + case 308: /* filter_opt ::= FILTER LP WHERE expr RP */ +{ yymsp[-4].minor.yy18 = yymsp[-1].minor.yy18; } break; default: - /* (273) input ::= cmdlist */ yytestcase(yyruleno==273); - /* (274) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==274); - /* (275) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=275); - /* (276) ecmd ::= SEMI */ yytestcase(yyruleno==276); - /* (277) ecmd ::= explain cmdx SEMI */ yytestcase(yyruleno==277); - /* (278) explain ::= */ yytestcase(yyruleno==278); - /* (279) trans_opt ::= */ yytestcase(yyruleno==279); - /* (280) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==280); - /* (281) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==281); - /* (282) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==282); - /* (283) savepoint_opt ::= */ yytestcase(yyruleno==283); - /* (284) cmd ::= create_table create_table_args */ yytestcase(yyruleno==284); - /* (285) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==285); - /* (286) columnlist ::= columnname carglist */ yytestcase(yyruleno==286); - /* (287) nm ::= ID|INDEXED */ yytestcase(yyruleno==287); - /* (288) nm ::= STRING */ yytestcase(yyruleno==288); - /* (289) nm ::= JOIN_KW */ yytestcase(yyruleno==289); - /* (290) typetoken ::= typename */ yytestcase(yyruleno==290); - /* (291) typename ::= ID|STRING */ yytestcase(yyruleno==291); - /* (292) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=292); - /* (293) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=293); - /* (294) carglist ::= carglist ccons */ yytestcase(yyruleno==294); - /* (295) carglist ::= */ yytestcase(yyruleno==295); - /* (296) ccons ::= NULL onconf */ yytestcase(yyruleno==296); - /* (297) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==297); - /* (298) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==298); - /* (299) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=299); - /* (300) tconscomma ::= */ yytestcase(yyruleno==300); - /* (301) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=301); - /* (302) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=302); - /* (303) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=303); - /* (304) oneselect ::= values */ yytestcase(yyruleno==304); - /* (305) sclp ::= selcollist COMMA */ yytestcase(yyruleno==305); - /* (306) as ::= ID|STRING */ yytestcase(yyruleno==306); - /* (307) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=307); - /* (308) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==308); - /* (309) exprlist ::= nexprlist */ yytestcase(yyruleno==309); - /* (310) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=310); - /* (311) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=311); - /* (312) nmnum ::= ON */ yytestcase(yyruleno==312); - /* (313) nmnum ::= DELETE */ yytestcase(yyruleno==313); - /* (314) nmnum ::= DEFAULT */ yytestcase(yyruleno==314); - /* (315) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==315); - /* (316) foreach_clause ::= */ yytestcase(yyruleno==316); - /* (317) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==317); - /* (318) trnm ::= nm */ yytestcase(yyruleno==318); - /* (319) tridxby ::= */ yytestcase(yyruleno==319); - /* (320) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==320); - /* (321) database_kw_opt ::= */ yytestcase(yyruleno==321); - /* (322) kwcolumn_opt ::= */ yytestcase(yyruleno==322); - /* (323) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==323); - /* (324) vtabarglist ::= vtabarg */ yytestcase(yyruleno==324); - /* (325) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==325); - /* (326) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==326); - /* (327) anylist ::= */ yytestcase(yyruleno==327); - /* (328) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==328); - /* (329) anylist ::= anylist ANY */ yytestcase(yyruleno==329); + /* (309) input ::= cmdlist */ yytestcase(yyruleno==309); + /* (310) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==310); + /* (311) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=311); + /* (312) ecmd ::= SEMI */ yytestcase(yyruleno==312); + /* (313) ecmd ::= cmdx SEMI */ yytestcase(yyruleno==313); + /* (314) ecmd ::= explain cmdx */ yytestcase(yyruleno==314); + /* (315) trans_opt ::= */ yytestcase(yyruleno==315); + /* (316) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==316); + /* (317) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==317); + /* (318) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==318); + /* (319) savepoint_opt ::= */ yytestcase(yyruleno==319); + /* (320) cmd ::= create_table create_table_args */ yytestcase(yyruleno==320); + /* (321) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==321); + /* (322) columnlist ::= columnname carglist */ yytestcase(yyruleno==322); + /* (323) nm ::= ID|INDEXED */ yytestcase(yyruleno==323); + /* (324) nm ::= STRING */ yytestcase(yyruleno==324); + /* (325) nm ::= JOIN_KW */ yytestcase(yyruleno==325); + /* (326) typetoken ::= typename */ yytestcase(yyruleno==326); + /* (327) typename ::= ID|STRING */ yytestcase(yyruleno==327); + /* (328) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=328); + /* (329) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=329); + /* (330) carglist ::= carglist ccons */ yytestcase(yyruleno==330); + /* (331) carglist ::= */ yytestcase(yyruleno==331); + /* (332) ccons ::= NULL onconf */ yytestcase(yyruleno==332); + /* (333) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==333); + /* (334) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==334); + /* (335) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=335); + /* (336) tconscomma ::= */ yytestcase(yyruleno==336); + /* (337) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=337); + /* (338) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=338); + /* (339) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=339); + /* (340) oneselect ::= values */ yytestcase(yyruleno==340); + /* (341) sclp ::= selcollist COMMA */ yytestcase(yyruleno==341); + /* (342) as ::= ID|STRING */ yytestcase(yyruleno==342); + /* (343) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=343); + /* (344) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==344); + /* (345) exprlist ::= nexprlist */ yytestcase(yyruleno==345); + /* (346) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=346); + /* (347) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=347); + /* (348) nmnum ::= ON */ yytestcase(yyruleno==348); + /* (349) nmnum ::= DELETE */ yytestcase(yyruleno==349); + /* (350) nmnum ::= DEFAULT */ yytestcase(yyruleno==350); + /* (351) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==351); + /* (352) foreach_clause ::= */ yytestcase(yyruleno==352); + /* (353) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==353); + /* (354) trnm ::= nm */ yytestcase(yyruleno==354); + /* (355) tridxby ::= */ yytestcase(yyruleno==355); + /* (356) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==356); + /* (357) database_kw_opt ::= */ yytestcase(yyruleno==357); + /* (358) kwcolumn_opt ::= */ yytestcase(yyruleno==358); + /* (359) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==359); + /* (360) vtabarglist ::= vtabarg */ yytestcase(yyruleno==360); + /* (361) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==361); + /* (362) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==362); + /* (363) anylist ::= */ yytestcase(yyruleno==363); + /* (364) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==364); + /* (365) anylist ::= anylist ANY */ yytestcase(yyruleno==365); + /* (366) with ::= */ yytestcase(yyruleno==366); break; /********** End reduce actions ************************************************/ }; @@ -141798,6 +150933,7 @@ static void yy_reduce( yymsp->stateno = (YYACTIONTYPE)yyact; yymsp->major = (YYCODETYPE)yygoto; yyTraceShift(yypParser, yyact, "... then shift"); + return yyact; } /* @@ -141807,7 +150943,8 @@ static void yy_reduce( static void yy_parse_failed( yyParser *yypParser /* The parser */ ){ - sqlite3ParserARG_FETCH; + sqlite3ParserARG_FETCH + sqlite3ParserCTX_FETCH #ifndef NDEBUG if( yyTraceFILE ){ fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt); @@ -141818,7 +150955,8 @@ static void yy_parse_failed( ** parser fails */ /************ Begin %parse_failure code ***************************************/ /************ End %parse_failure code *****************************************/ - sqlite3ParserARG_STORE; /* Suppress warning about unused %extra_argument variable */ + sqlite3ParserARG_STORE /* Suppress warning about unused %extra_argument variable */ + sqlite3ParserCTX_STORE } #endif /* YYNOERRORRECOVERY */ @@ -141830,7 +150968,8 @@ static void yy_syntax_error( int yymajor, /* The major type of the error token */ sqlite3ParserTOKENTYPE yyminor /* The minor type of the error token */ ){ - sqlite3ParserARG_FETCH; + sqlite3ParserARG_FETCH + sqlite3ParserCTX_FETCH #define TOKEN yyminor /************ Begin %syntax_error code ****************************************/ @@ -141841,7 +150980,8 @@ static void yy_syntax_error( sqlite3ErrorMsg(pParse, "incomplete input"); } /************ End %syntax_error code ******************************************/ - sqlite3ParserARG_STORE; /* Suppress warning about unused %extra_argument variable */ + sqlite3ParserARG_STORE /* Suppress warning about unused %extra_argument variable */ + sqlite3ParserCTX_STORE } /* @@ -141850,7 +150990,8 @@ static void yy_syntax_error( static void yy_accept( yyParser *yypParser /* The parser */ ){ - sqlite3ParserARG_FETCH; + sqlite3ParserARG_FETCH + sqlite3ParserCTX_FETCH #ifndef NDEBUG if( yyTraceFILE ){ fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt); @@ -141864,7 +151005,8 @@ static void yy_accept( ** parser accepts */ /*********** Begin %parse_accept code *****************************************/ /*********** End %parse_accept code *******************************************/ - sqlite3ParserARG_STORE; /* Suppress warning about unused %extra_argument variable */ + sqlite3ParserARG_STORE /* Suppress warning about unused %extra_argument variable */ + sqlite3ParserCTX_STORE } /* The main parser program. @@ -141893,45 +151035,47 @@ SQLITE_PRIVATE void sqlite3Parser( sqlite3ParserARG_PDECL /* Optional %extra_argument parameter */ ){ YYMINORTYPE yyminorunion; - unsigned int yyact; /* The parser action. */ + YYACTIONTYPE yyact; /* The parser action. */ #if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY) int yyendofinput; /* True if we are at the end of input */ #endif #ifdef YYERRORSYMBOL int yyerrorhit = 0; /* True if yymajor has invoked an error */ #endif - yyParser *yypParser; /* The parser */ + yyParser *yypParser = (yyParser*)yyp; /* The parser */ + sqlite3ParserCTX_FETCH + sqlite3ParserARG_STORE - yypParser = (yyParser*)yyp; assert( yypParser->yytos!=0 ); #if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY) yyendofinput = (yymajor==0); #endif - sqlite3ParserARG_STORE; + yyact = yypParser->yytos->stateno; #ifndef NDEBUG if( yyTraceFILE ){ - int stateno = yypParser->yytos->stateno; - if( stateno < YY_MIN_REDUCE ){ + if( yyact < YY_MIN_REDUCE ){ fprintf(yyTraceFILE,"%sInput '%s' in state %d\n", - yyTracePrompt,yyTokenName[yymajor],stateno); + yyTracePrompt,yyTokenName[yymajor],yyact); }else{ fprintf(yyTraceFILE,"%sInput '%s' with pending reduce %d\n", - yyTracePrompt,yyTokenName[yymajor],stateno-YY_MIN_REDUCE); + yyTracePrompt,yyTokenName[yymajor],yyact-YY_MIN_REDUCE); } } #endif do{ - yyact = yy_find_shift_action(yypParser,(YYCODETYPE)yymajor); + assert( yyact==yypParser->yytos->stateno ); + yyact = yy_find_shift_action((YYCODETYPE)yymajor,yyact); if( yyact >= YY_MIN_REDUCE ){ - yy_reduce(yypParser,yyact-YY_MIN_REDUCE,yymajor,yyminor); + yyact = yy_reduce(yypParser,yyact-YY_MIN_REDUCE,yymajor, + yyminor sqlite3ParserCTX_PARAM); }else if( yyact <= YY_MAX_SHIFTREDUCE ){ - yy_shift(yypParser,yyact,yymajor,yyminor); + yy_shift(yypParser,yyact,(YYCODETYPE)yymajor,yyminor); #ifndef YYNOERRORRECOVERY yypParser->yyerrcnt--; #endif - yymajor = YYNOCODE; + break; }else if( yyact==YY_ACCEPT_ACTION ){ yypParser->yytos--; yy_accept(yypParser); @@ -141982,10 +151126,9 @@ SQLITE_PRIVATE void sqlite3Parser( yymajor = YYNOCODE; }else{ while( yypParser->yytos >= yypParser->yystack - && yymx != YYERRORSYMBOL && (yyact = yy_find_reduce_action( yypParser->yytos->stateno, - YYERRORSYMBOL)) >= YY_MIN_REDUCE + YYERRORSYMBOL)) > YY_MAX_SHIFTREDUCE ){ yy_pop_parser_stack(yypParser); } @@ -142002,6 +151145,8 @@ SQLITE_PRIVATE void sqlite3Parser( } yypParser->yyerrcnt = 3; yyerrorhit = 1; + if( yymajor==YYNOCODE ) break; + yyact = yypParser->yytos->stateno; #elif defined(YYNOERRORRECOVERY) /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to ** do any kind of error recovery. Instead, simply invoke the syntax @@ -142012,8 +151157,7 @@ SQLITE_PRIVATE void sqlite3Parser( */ yy_syntax_error(yypParser,yymajor, yyminor); yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); - yymajor = YYNOCODE; - + break; #else /* YYERRORSYMBOL is not defined */ /* This is what we do if the grammar does not define ERROR: ** @@ -142035,10 +151179,10 @@ SQLITE_PRIVATE void sqlite3Parser( yypParser->yyerrcnt = -1; #endif } - yymajor = YYNOCODE; + break; #endif } - }while( yymajor!=YYNOCODE && yypParser->yytos>yypParser->yystack ); + }while( yypParser->yytos>yypParser->yystack ); #ifndef NDEBUG if( yyTraceFILE ){ yyStackEntry *i; @@ -142054,6 +151198,21 @@ SQLITE_PRIVATE void sqlite3Parser( return; } +/* +** Return the fallback token corresponding to canonical token iToken, or +** 0 if iToken has no fallback. +*/ +SQLITE_PRIVATE int sqlite3ParserFallback(int iToken){ +#ifdef YYFALLBACK + if( iToken<(int)(sizeof(yyFallback)/sizeof(yyFallback[0])) ){ + return yyFallback[iToken]; + } +#else + (void)iToken; +#endif + return 0; +} + /************** End of parse.c ***********************************************/ /************** Begin file tokenize.c ****************************************/ /* @@ -142112,11 +151271,12 @@ SQLITE_PRIVATE void sqlite3Parser( #define CC_TILDA 25 /* '~' */ #define CC_DOT 26 /* '.' */ #define CC_ILLEGAL 27 /* Illegal character */ +#define CC_NUL 28 /* 0x00 */ static const unsigned char aiClass[] = { #ifdef SQLITE_ASCII /* x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xa xb xc xd xe xf */ -/* 0x */ 27, 27, 27, 27, 27, 27, 27, 27, 27, 7, 7, 27, 7, 7, 27, 27, +/* 0x */ 28, 27, 27, 27, 27, 27, 27, 27, 27, 7, 7, 27, 7, 7, 27, 27, /* 1x */ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, /* 2x */ 7, 15, 8, 5, 4, 22, 24, 8, 17, 18, 21, 20, 23, 11, 26, 16, /* 3x */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 19, 12, 14, 13, 6, @@ -142215,19 +151375,20 @@ const unsigned char ebcdicToAscii[] = { ** is substantially reduced. This is important for embedded applications ** on platforms with limited memory. */ -/* Hash score: 182 */ -/* zKWText[] encodes 834 bytes of keyword text in 554 bytes */ +/* Hash score: 208 */ +/* zKWText[] encodes 923 bytes of keyword text in 614 bytes */ /* REINDEXEDESCAPEACHECKEYBEFOREIGNOREGEXPLAINSTEADDATABASELECT */ /* ABLEFTHENDEFERRABLELSEXCEPTRANSACTIONATURALTERAISEXCLUSIVE */ /* XISTSAVEPOINTERSECTRIGGEREFERENCESCONSTRAINTOFFSETEMPORARY */ -/* UNIQUERYWITHOUTERELEASEATTACHAVINGROUPDATEBEGINNERECURSIVE */ -/* BETWEENOTNULLIKECASCADELETECASECOLLATECREATECURRENT_DATEDETACH */ -/* IMMEDIATEJOINSERTMATCHPLANALYZEPRAGMABORTVALUESVIRTUALIMITWHEN */ -/* WHERENAMEAFTEREPLACEANDEFAULTAUTOINCREMENTCASTCOLUMNCOMMIT */ -/* CONFLICTCROSSCURRENT_TIMESTAMPRIMARYDEFERREDISTINCTDROPFAIL */ -/* FROMFULLGLOBYIFISNULLORDERESTRICTRIGHTROLLBACKROWUNIONUSING */ -/* VACUUMVIEWINITIALLY */ -static const char zKWText[553] = { +/* UNIQUERYWITHOUTERELEASEATTACHAVINGROUPDATEBEGINNERANGEBETWEEN */ +/* OTHINGLOBYCASCADELETECASECOLLATECREATECURRENT_DATEDETACH */ +/* IMMEDIATEJOINSERTLIKEMATCHPLANALYZEPRAGMABORTVALUESVIRTUALIMIT */ +/* WHENOTNULLWHERECURSIVEAFTERENAMEANDEFAULTAUTOINCREMENTCAST */ +/* COLUMNCOMMITCONFLICTCROSSCURRENT_TIMESTAMPARTITIONDEFERRED */ +/* ISTINCTDROPRECEDINGFAILFILTEREPLACEFOLLOWINGFROMFULLIFISNULL */ +/* ORDERESTRICTOVERIGHTROLLBACKROWSUNBOUNDEDUNIONUSINGVACUUMVIEW */ +/* INDOWINITIALLYPRIMARY */ +static const char zKWText[613] = { 'R','E','I','N','D','E','X','E','D','E','S','C','A','P','E','A','C','H', 'E','C','K','E','Y','B','E','F','O','R','E','I','G','N','O','R','E','G', 'E','X','P','L','A','I','N','S','T','E','A','D','D','A','T','A','B','A', @@ -142240,83 +151401,90 @@ static const char zKWText[553] = { 'O','F','F','S','E','T','E','M','P','O','R','A','R','Y','U','N','I','Q', 'U','E','R','Y','W','I','T','H','O','U','T','E','R','E','L','E','A','S', 'E','A','T','T','A','C','H','A','V','I','N','G','R','O','U','P','D','A', - 'T','E','B','E','G','I','N','N','E','R','E','C','U','R','S','I','V','E', - 'B','E','T','W','E','E','N','O','T','N','U','L','L','I','K','E','C','A', - 'S','C','A','D','E','L','E','T','E','C','A','S','E','C','O','L','L','A', - 'T','E','C','R','E','A','T','E','C','U','R','R','E','N','T','_','D','A', - 'T','E','D','E','T','A','C','H','I','M','M','E','D','I','A','T','E','J', - 'O','I','N','S','E','R','T','M','A','T','C','H','P','L','A','N','A','L', - 'Y','Z','E','P','R','A','G','M','A','B','O','R','T','V','A','L','U','E', - 'S','V','I','R','T','U','A','L','I','M','I','T','W','H','E','N','W','H', - 'E','R','E','N','A','M','E','A','F','T','E','R','E','P','L','A','C','E', - 'A','N','D','E','F','A','U','L','T','A','U','T','O','I','N','C','R','E', - 'M','E','N','T','C','A','S','T','C','O','L','U','M','N','C','O','M','M', - 'I','T','C','O','N','F','L','I','C','T','C','R','O','S','S','C','U','R', - 'R','E','N','T','_','T','I','M','E','S','T','A','M','P','R','I','M','A', - 'R','Y','D','E','F','E','R','R','E','D','I','S','T','I','N','C','T','D', - 'R','O','P','F','A','I','L','F','R','O','M','F','U','L','L','G','L','O', - 'B','Y','I','F','I','S','N','U','L','L','O','R','D','E','R','E','S','T', - 'R','I','C','T','R','I','G','H','T','R','O','L','L','B','A','C','K','R', - 'O','W','U','N','I','O','N','U','S','I','N','G','V','A','C','U','U','M', - 'V','I','E','W','I','N','I','T','I','A','L','L','Y', + 'T','E','B','E','G','I','N','N','E','R','A','N','G','E','B','E','T','W', + 'E','E','N','O','T','H','I','N','G','L','O','B','Y','C','A','S','C','A', + 'D','E','L','E','T','E','C','A','S','E','C','O','L','L','A','T','E','C', + 'R','E','A','T','E','C','U','R','R','E','N','T','_','D','A','T','E','D', + 'E','T','A','C','H','I','M','M','E','D','I','A','T','E','J','O','I','N', + 'S','E','R','T','L','I','K','E','M','A','T','C','H','P','L','A','N','A', + 'L','Y','Z','E','P','R','A','G','M','A','B','O','R','T','V','A','L','U', + 'E','S','V','I','R','T','U','A','L','I','M','I','T','W','H','E','N','O', + 'T','N','U','L','L','W','H','E','R','E','C','U','R','S','I','V','E','A', + 'F','T','E','R','E','N','A','M','E','A','N','D','E','F','A','U','L','T', + 'A','U','T','O','I','N','C','R','E','M','E','N','T','C','A','S','T','C', + 'O','L','U','M','N','C','O','M','M','I','T','C','O','N','F','L','I','C', + 'T','C','R','O','S','S','C','U','R','R','E','N','T','_','T','I','M','E', + 'S','T','A','M','P','A','R','T','I','T','I','O','N','D','E','F','E','R', + 'R','E','D','I','S','T','I','N','C','T','D','R','O','P','R','E','C','E', + 'D','I','N','G','F','A','I','L','F','I','L','T','E','R','E','P','L','A', + 'C','E','F','O','L','L','O','W','I','N','G','F','R','O','M','F','U','L', + 'L','I','F','I','S','N','U','L','L','O','R','D','E','R','E','S','T','R', + 'I','C','T','O','V','E','R','I','G','H','T','R','O','L','L','B','A','C', + 'K','R','O','W','S','U','N','B','O','U','N','D','E','D','U','N','I','O', + 'N','U','S','I','N','G','V','A','C','U','U','M','V','I','E','W','I','N', + 'D','O','W','I','N','I','T','I','A','L','L','Y','P','R','I','M','A','R', + 'Y', }; /* aKWHash[i] is the hash value for the i-th keyword */ static const unsigned char aKWHash[127] = { - 76, 105, 117, 74, 0, 45, 0, 0, 82, 0, 77, 0, 0, - 42, 12, 78, 15, 0, 116, 85, 54, 112, 0, 19, 0, 0, - 121, 0, 119, 115, 0, 22, 93, 0, 9, 0, 0, 70, 71, - 0, 69, 6, 0, 48, 90, 102, 0, 118, 101, 0, 0, 44, - 0, 103, 24, 0, 17, 0, 122, 53, 23, 0, 5, 110, 25, - 96, 0, 0, 124, 106, 60, 123, 57, 28, 55, 0, 91, 0, - 100, 26, 0, 99, 0, 0, 0, 95, 92, 97, 88, 109, 14, - 39, 108, 0, 81, 0, 18, 89, 111, 32, 0, 120, 80, 113, - 62, 46, 84, 0, 0, 94, 40, 59, 114, 0, 36, 0, 0, - 29, 0, 86, 63, 64, 0, 20, 61, 0, 56, + 74, 109, 124, 72, 106, 45, 0, 0, 81, 0, 76, 61, 0, + 42, 12, 77, 15, 0, 123, 84, 54, 118, 125, 19, 0, 0, + 130, 0, 128, 121, 0, 22, 96, 0, 9, 0, 0, 115, 69, + 0, 67, 6, 0, 48, 93, 136, 0, 126, 104, 0, 0, 44, + 0, 107, 24, 0, 17, 0, 131, 53, 23, 0, 5, 62, 132, + 99, 0, 0, 135, 110, 60, 134, 57, 113, 55, 0, 94, 0, + 103, 26, 0, 102, 0, 0, 0, 98, 95, 100, 105, 117, 14, + 39, 116, 0, 80, 0, 133, 114, 92, 59, 0, 129, 79, 119, + 86, 46, 83, 0, 0, 97, 40, 122, 120, 0, 127, 0, 0, + 29, 0, 89, 87, 88, 0, 20, 85, 111, 56, }; /* aKWNext[] forms the hash collision chain. If aKWHash[i]==0 ** then the i-th keyword has no more hash collisions. Otherwise, ** the next keyword with the same hash is aKWHash[i]-1. */ -static const unsigned char aKWNext[124] = { +static const unsigned char aKWNext[136] = { 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 21, 0, 0, 0, 0, 0, 50, - 0, 43, 3, 47, 0, 0, 0, 0, 30, 0, 58, 0, 38, - 0, 0, 0, 1, 66, 0, 0, 67, 0, 41, 0, 0, 0, - 0, 0, 0, 49, 65, 0, 0, 0, 0, 31, 52, 16, 34, - 10, 0, 0, 0, 0, 0, 0, 0, 11, 72, 79, 0, 8, - 0, 104, 98, 0, 107, 0, 87, 0, 75, 51, 0, 27, 37, - 73, 83, 0, 35, 68, 0, 0, + 0, 43, 3, 47, 0, 0, 32, 0, 0, 0, 0, 0, 0, + 0, 1, 64, 0, 0, 65, 0, 41, 0, 38, 0, 0, 0, + 0, 0, 49, 75, 0, 0, 30, 0, 58, 0, 0, 0, 31, + 63, 16, 34, 10, 0, 0, 0, 0, 0, 0, 0, 11, 70, + 91, 0, 0, 8, 0, 108, 0, 101, 28, 52, 68, 0, 112, + 0, 73, 51, 0, 90, 27, 37, 0, 71, 36, 82, 0, 35, + 66, 25, 18, 0, 0, 78, }; /* aKWLen[i] is the length (in bytes) of the i-th keyword */ -static const unsigned char aKWLen[124] = { +static const unsigned char aKWLen[136] = { 7, 7, 5, 4, 6, 4, 5, 3, 6, 7, 3, 6, 6, 7, 7, 3, 8, 2, 6, 5, 4, 4, 3, 10, 4, 6, 11, 6, 2, 7, 5, 5, 9, 6, 9, 9, 7, 10, 10, 4, 6, 2, 3, 9, 4, 2, 6, 5, 7, 4, 5, 7, - 6, 6, 5, 6, 5, 5, 9, 7, 7, 3, 2, 4, 4, - 7, 3, 6, 4, 7, 6, 12, 6, 9, 4, 6, 5, 4, - 7, 6, 5, 6, 7, 5, 4, 5, 6, 5, 7, 3, 7, - 13, 2, 2, 4, 6, 6, 8, 5, 17, 12, 7, 8, 8, - 2, 4, 4, 4, 4, 4, 2, 2, 6, 5, 8, 5, 8, - 3, 5, 5, 6, 4, 9, 3, + 6, 6, 5, 6, 5, 5, 5, 7, 7, 4, 2, 7, 3, + 6, 4, 7, 6, 12, 6, 9, 4, 6, 4, 5, 4, 7, + 6, 5, 6, 7, 5, 4, 7, 3, 2, 4, 5, 9, 5, + 6, 3, 7, 13, 2, 2, 4, 6, 6, 8, 5, 17, 12, + 7, 9, 8, 8, 2, 4, 9, 4, 6, 7, 9, 4, 4, + 2, 6, 5, 8, 4, 5, 8, 4, 3, 9, 5, 5, 6, + 4, 6, 2, 9, 3, 7, }; /* aKWOffset[i] is the index into zKWText[] of the start of ** the text for the i-th keyword. */ -static const unsigned short int aKWOffset[124] = { +static const unsigned short int aKWOffset[136] = { 0, 2, 2, 8, 9, 14, 16, 20, 23, 25, 25, 29, 33, 36, 41, 46, 48, 53, 54, 59, 62, 65, 67, 69, 78, 81, 86, 91, 95, 96, 101, 105, 109, 117, 122, 128, 136, 142, 152, 159, 162, 162, 165, 167, 167, 171, 176, 179, 184, 184, 188, 192, - 199, 204, 209, 212, 218, 221, 225, 234, 240, 240, 240, 243, 246, - 250, 251, 255, 261, 265, 272, 278, 290, 296, 305, 307, 313, 318, - 320, 327, 332, 337, 343, 349, 354, 358, 361, 367, 371, 378, 380, - 387, 389, 391, 400, 404, 410, 416, 424, 429, 429, 445, 452, 459, - 460, 467, 471, 475, 479, 483, 486, 488, 490, 496, 500, 508, 513, - 521, 524, 529, 534, 540, 544, 549, + 199, 204, 209, 212, 218, 221, 225, 230, 236, 242, 245, 247, 248, + 252, 258, 262, 269, 275, 287, 293, 302, 304, 310, 314, 319, 321, + 328, 333, 338, 344, 350, 355, 358, 358, 358, 361, 365, 368, 377, + 381, 387, 389, 396, 398, 400, 409, 413, 419, 425, 433, 438, 438, + 438, 454, 463, 470, 471, 478, 481, 490, 494, 499, 506, 515, 519, + 523, 525, 531, 535, 543, 546, 551, 559, 559, 563, 572, 577, 582, + 588, 591, 594, 597, 602, 606, }; /* aKWCode[i] is the parser symbol code for the i-th keyword */ -static const unsigned char aKWCode[124] = { +static const unsigned char aKWCode[136] = { TK_REINDEX, TK_INDEXED, TK_INDEX, TK_DESC, TK_ESCAPE, TK_EACH, TK_CHECK, TK_KEY, TK_BEFORE, TK_FOREIGN, TK_FOR, TK_IGNORE, TK_LIKE_KW, TK_EXPLAIN, TK_INSTEAD, @@ -142328,20 +151496,23 @@ static const unsigned char aKWCode[124] = { TK_OFFSET, TK_OF, TK_SET, TK_TEMP, TK_TEMP, TK_OR, TK_UNIQUE, TK_QUERY, TK_WITHOUT, TK_WITH, TK_JOIN_KW, TK_RELEASE, TK_ATTACH, TK_HAVING, TK_GROUP, - TK_UPDATE, TK_BEGIN, TK_JOIN_KW, TK_RECURSIVE, TK_BETWEEN, - TK_NOTNULL, TK_NOT, TK_NO, TK_NULL, TK_LIKE_KW, - TK_CASCADE, TK_ASC, TK_DELETE, TK_CASE, TK_COLLATE, - TK_CREATE, TK_CTIME_KW, TK_DETACH, TK_IMMEDIATE, TK_JOIN, - TK_INSERT, TK_MATCH, TK_PLAN, TK_ANALYZE, TK_PRAGMA, - TK_ABORT, TK_VALUES, TK_VIRTUAL, TK_LIMIT, TK_WHEN, - TK_WHERE, TK_RENAME, TK_AFTER, TK_REPLACE, TK_AND, - TK_DEFAULT, TK_AUTOINCR, TK_TO, TK_IN, TK_CAST, - TK_COLUMNKW, TK_COMMIT, TK_CONFLICT, TK_JOIN_KW, TK_CTIME_KW, - TK_CTIME_KW, TK_PRIMARY, TK_DEFERRED, TK_DISTINCT, TK_IS, - TK_DROP, TK_FAIL, TK_FROM, TK_JOIN_KW, TK_LIKE_KW, - TK_BY, TK_IF, TK_ISNULL, TK_ORDER, TK_RESTRICT, - TK_JOIN_KW, TK_ROLLBACK, TK_ROW, TK_UNION, TK_USING, - TK_VACUUM, TK_VIEW, TK_INITIALLY, TK_ALL, + TK_UPDATE, TK_BEGIN, TK_JOIN_KW, TK_RANGE, TK_BETWEEN, + TK_NOTHING, TK_LIKE_KW, TK_BY, TK_CASCADE, TK_ASC, + TK_DELETE, TK_CASE, TK_COLLATE, TK_CREATE, TK_CTIME_KW, + TK_DETACH, TK_IMMEDIATE, TK_JOIN, TK_INSERT, TK_LIKE_KW, + TK_MATCH, TK_PLAN, TK_ANALYZE, TK_PRAGMA, TK_ABORT, + TK_VALUES, TK_VIRTUAL, TK_LIMIT, TK_WHEN, TK_NOTNULL, + TK_NOT, TK_NO, TK_NULL, TK_WHERE, TK_RECURSIVE, + TK_AFTER, TK_RENAME, TK_AND, TK_DEFAULT, TK_AUTOINCR, + TK_TO, TK_IN, TK_CAST, TK_COLUMNKW, TK_COMMIT, + TK_CONFLICT, TK_JOIN_KW, TK_CTIME_KW, TK_CTIME_KW, TK_CURRENT, + TK_PARTITION, TK_DEFERRED, TK_DISTINCT, TK_IS, TK_DROP, + TK_PRECEDING, TK_FAIL, TK_FILTER, TK_REPLACE, TK_FOLLOWING, + TK_FROM, TK_JOIN_KW, TK_IF, TK_ISNULL, TK_ORDER, + TK_RESTRICT, TK_OVER, TK_JOIN_KW, TK_ROLLBACK, TK_ROWS, + TK_ROW, TK_UNBOUNDED, TK_UNION, TK_USING, TK_VACUUM, + TK_VIEW, TK_WINDOW, TK_DO, TK_INITIALLY, TK_ALL, + TK_PRIMARY, }; /* Check to see if z[0..n-1] is a keyword. If it is, write the ** parser symbol code for that keyword into *pType. Always @@ -142420,72 +151591,84 @@ static int keywordCode(const char *z, int n, int *pType){ testcase( i==55 ); /* UPDATE */ testcase( i==56 ); /* BEGIN */ testcase( i==57 ); /* INNER */ - testcase( i==58 ); /* RECURSIVE */ + testcase( i==58 ); /* RANGE */ testcase( i==59 ); /* BETWEEN */ - testcase( i==60 ); /* NOTNULL */ - testcase( i==61 ); /* NOT */ - testcase( i==62 ); /* NO */ - testcase( i==63 ); /* NULL */ - testcase( i==64 ); /* LIKE */ - testcase( i==65 ); /* CASCADE */ - testcase( i==66 ); /* ASC */ - testcase( i==67 ); /* DELETE */ - testcase( i==68 ); /* CASE */ - testcase( i==69 ); /* COLLATE */ - testcase( i==70 ); /* CREATE */ - testcase( i==71 ); /* CURRENT_DATE */ - testcase( i==72 ); /* DETACH */ - testcase( i==73 ); /* IMMEDIATE */ - testcase( i==74 ); /* JOIN */ - testcase( i==75 ); /* INSERT */ - testcase( i==76 ); /* MATCH */ - testcase( i==77 ); /* PLAN */ - testcase( i==78 ); /* ANALYZE */ - testcase( i==79 ); /* PRAGMA */ - testcase( i==80 ); /* ABORT */ - testcase( i==81 ); /* VALUES */ - testcase( i==82 ); /* VIRTUAL */ - testcase( i==83 ); /* LIMIT */ - testcase( i==84 ); /* WHEN */ - testcase( i==85 ); /* WHERE */ - testcase( i==86 ); /* RENAME */ - testcase( i==87 ); /* AFTER */ - testcase( i==88 ); /* REPLACE */ - testcase( i==89 ); /* AND */ - testcase( i==90 ); /* DEFAULT */ - testcase( i==91 ); /* AUTOINCREMENT */ - testcase( i==92 ); /* TO */ - testcase( i==93 ); /* IN */ - testcase( i==94 ); /* CAST */ - testcase( i==95 ); /* COLUMN */ - testcase( i==96 ); /* COMMIT */ - testcase( i==97 ); /* CONFLICT */ - testcase( i==98 ); /* CROSS */ - testcase( i==99 ); /* CURRENT_TIMESTAMP */ - testcase( i==100 ); /* CURRENT_TIME */ - testcase( i==101 ); /* PRIMARY */ - testcase( i==102 ); /* DEFERRED */ - testcase( i==103 ); /* DISTINCT */ - testcase( i==104 ); /* IS */ - testcase( i==105 ); /* DROP */ - testcase( i==106 ); /* FAIL */ - testcase( i==107 ); /* FROM */ - testcase( i==108 ); /* FULL */ - testcase( i==109 ); /* GLOB */ - testcase( i==110 ); /* BY */ - testcase( i==111 ); /* IF */ - testcase( i==112 ); /* ISNULL */ - testcase( i==113 ); /* ORDER */ - testcase( i==114 ); /* RESTRICT */ - testcase( i==115 ); /* RIGHT */ - testcase( i==116 ); /* ROLLBACK */ - testcase( i==117 ); /* ROW */ - testcase( i==118 ); /* UNION */ - testcase( i==119 ); /* USING */ - testcase( i==120 ); /* VACUUM */ - testcase( i==121 ); /* VIEW */ - testcase( i==122 ); /* INITIALLY */ - testcase( i==123 ); /* ALL */ + testcase( i==60 ); /* NOTHING */ + testcase( i==61 ); /* GLOB */ + testcase( i==62 ); /* BY */ + testcase( i==63 ); /* CASCADE */ + testcase( i==64 ); /* ASC */ + testcase( i==65 ); /* DELETE */ + testcase( i==66 ); /* CASE */ + testcase( i==67 ); /* COLLATE */ + testcase( i==68 ); /* CREATE */ + testcase( i==69 ); /* CURRENT_DATE */ + testcase( i==70 ); /* DETACH */ + testcase( i==71 ); /* IMMEDIATE */ + testcase( i==72 ); /* JOIN */ + testcase( i==73 ); /* INSERT */ + testcase( i==74 ); /* LIKE */ + testcase( i==75 ); /* MATCH */ + testcase( i==76 ); /* PLAN */ + testcase( i==77 ); /* ANALYZE */ + testcase( i==78 ); /* PRAGMA */ + testcase( i==79 ); /* ABORT */ + testcase( i==80 ); /* VALUES */ + testcase( i==81 ); /* VIRTUAL */ + testcase( i==82 ); /* LIMIT */ + testcase( i==83 ); /* WHEN */ + testcase( i==84 ); /* NOTNULL */ + testcase( i==85 ); /* NOT */ + testcase( i==86 ); /* NO */ + testcase( i==87 ); /* NULL */ + testcase( i==88 ); /* WHERE */ + testcase( i==89 ); /* RECURSIVE */ + testcase( i==90 ); /* AFTER */ + testcase( i==91 ); /* RENAME */ + testcase( i==92 ); /* AND */ + testcase( i==93 ); /* DEFAULT */ + testcase( i==94 ); /* AUTOINCREMENT */ + testcase( i==95 ); /* TO */ + testcase( i==96 ); /* IN */ + testcase( i==97 ); /* CAST */ + testcase( i==98 ); /* COLUMN */ + testcase( i==99 ); /* COMMIT */ + testcase( i==100 ); /* CONFLICT */ + testcase( i==101 ); /* CROSS */ + testcase( i==102 ); /* CURRENT_TIMESTAMP */ + testcase( i==103 ); /* CURRENT_TIME */ + testcase( i==104 ); /* CURRENT */ + testcase( i==105 ); /* PARTITION */ + testcase( i==106 ); /* DEFERRED */ + testcase( i==107 ); /* DISTINCT */ + testcase( i==108 ); /* IS */ + testcase( i==109 ); /* DROP */ + testcase( i==110 ); /* PRECEDING */ + testcase( i==111 ); /* FAIL */ + testcase( i==112 ); /* FILTER */ + testcase( i==113 ); /* REPLACE */ + testcase( i==114 ); /* FOLLOWING */ + testcase( i==115 ); /* FROM */ + testcase( i==116 ); /* FULL */ + testcase( i==117 ); /* IF */ + testcase( i==118 ); /* ISNULL */ + testcase( i==119 ); /* ORDER */ + testcase( i==120 ); /* RESTRICT */ + testcase( i==121 ); /* OVER */ + testcase( i==122 ); /* RIGHT */ + testcase( i==123 ); /* ROLLBACK */ + testcase( i==124 ); /* ROWS */ + testcase( i==125 ); /* ROW */ + testcase( i==126 ); /* UNBOUNDED */ + testcase( i==127 ); /* UNION */ + testcase( i==128 ); /* USING */ + testcase( i==129 ); /* VACUUM */ + testcase( i==130 ); /* VIEW */ + testcase( i==131 ); /* WINDOW */ + testcase( i==132 ); /* DO */ + testcase( i==133 ); /* INITIALLY */ + testcase( i==134 ); /* ALL */ + testcase( i==135 ); /* PRIMARY */ *pType = aKWCode[i]; break; } @@ -142497,7 +151680,17 @@ SQLITE_PRIVATE int sqlite3KeywordCode(const unsigned char *z, int n){ keywordCode((char*)z, n, &id); return id; } -#define SQLITE_N_KEYWORD 124 +#define SQLITE_N_KEYWORD 136 +SQLITE_API int sqlite3_keyword_name(int i,const char **pzName,int *pnName){ + if( i<0 || i>=SQLITE_N_KEYWORD ) return SQLITE_ERROR; + *pzName = zKWText + aKWOffset[i]; + *pnName = aKWLen[i]; + return SQLITE_OK; +} +SQLITE_API int sqlite3_keyword_count(void){ return SQLITE_N_KEYWORD; } +SQLITE_API int sqlite3_keyword_check(const char *zName, int nName){ + return TK_ID!=sqlite3KeywordCode((const u8*)zName, nName); +} /************** End of keywordhash.h *****************************************/ /************** Continuing where we left off in tokenize.c *******************/ @@ -142541,11 +151734,85 @@ SQLITE_PRIVATE const char sqlite3IsEbcdicIdChar[] = { #define IdChar(C) (((c=C)>=0x42 && sqlite3IsEbcdicIdChar[c-0x40])) #endif -/* Make the IdChar function accessible from ctime.c */ -#ifndef SQLITE_OMIT_COMPILEOPTION_DIAGS +/* Make the IdChar function accessible from ctime.c and alter.c */ SQLITE_PRIVATE int sqlite3IsIdChar(u8 c){ return IdChar(c); } -#endif +#ifndef SQLITE_OMIT_WINDOWFUNC +/* +** Return the id of the next token in string (*pz). Before returning, set +** (*pz) to point to the byte following the parsed token. +*/ +static int getToken(const unsigned char **pz){ + const unsigned char *z = *pz; + int t; /* Token type to return */ + do { + z += sqlite3GetToken(z, &t); + }while( t==TK_SPACE ); + if( t==TK_ID + || t==TK_STRING + || t==TK_JOIN_KW + || t==TK_WINDOW + || t==TK_OVER + || sqlite3ParserFallback(t)==TK_ID + ){ + t = TK_ID; + } + *pz = z; + return t; +} + +/* +** The following three functions are called immediately after the tokenizer +** reads the keywords WINDOW, OVER and FILTER, respectively, to determine +** whether the token should be treated as a keyword or an SQL identifier. +** This cannot be handled by the usual lemon %fallback method, due to +** the ambiguity in some constructions. e.g. +** +** SELECT sum(x) OVER ... +** +** In the above, "OVER" might be a keyword, or it might be an alias for the +** sum(x) expression. If a "%fallback ID OVER" directive were added to +** grammar, then SQLite would always treat "OVER" as an alias, making it +** impossible to call a window-function without a FILTER clause. +** +** WINDOW is treated as a keyword if: +** +** * the following token is an identifier, or a keyword that can fallback +** to being an identifier, and +** * the token after than one is TK_AS. +** +** OVER is a keyword if: +** +** * the previous token was TK_RP, and +** * the next token is either TK_LP or an identifier. +** +** FILTER is a keyword if: +** +** * the previous token was TK_RP, and +** * the next token is TK_LP. +*/ +static int analyzeWindowKeyword(const unsigned char *z){ + int t; + t = getToken(&z); + if( t!=TK_ID ) return TK_ID; + t = getToken(&z); + if( t!=TK_AS ) return TK_ID; + return TK_WINDOW; +} +static int analyzeOverKeyword(const unsigned char *z, int lastToken){ + if( lastToken==TK_RP ){ + int t = getToken(&z); + if( t==TK_LP || t==TK_ID ) return TK_OVER; + } + return TK_ID; +} +static int analyzeFilterKeyword(const unsigned char *z, int lastToken){ + if( lastToken==TK_RP && getToken(&z)==TK_LP ){ + return TK_FILTER; + } + return TK_ID; +} +#endif /* SQLITE_OMIT_WINDOWFUNC */ /* ** Return the length (in bytes) of the token that begins at z[0]. @@ -142814,6 +152081,10 @@ SQLITE_PRIVATE int sqlite3GetToken(const unsigned char *z, int *tokenType){ i = 1; break; } + case CC_NUL: { + *tokenType = TK_ILLEGAL; + return 0; + } default: { *tokenType = TK_ILLEGAL; return 1; @@ -142824,6 +152095,73 @@ SQLITE_PRIVATE int sqlite3GetToken(const unsigned char *z, int *tokenType){ return i; } +#ifdef SQLITE_ENABLE_NORMALIZE +/* +** Return the length (in bytes) of the token that begins at z[0]. +** Store the token type in *tokenType before returning. If flags has +** SQLITE_TOKEN_NORMALIZE flag enabled, use the identifier token type +** for keywords. Add SQLITE_TOKEN_QUOTED to flags if the token was +** actually a quoted identifier. Add SQLITE_TOKEN_KEYWORD to flags +** if the token was recognized as a keyword; this is useful when the +** SQLITE_TOKEN_NORMALIZE flag is used, because it enables the caller +** to differentiate between a keyword being treated as an identifier +** (for normalization purposes) and an actual identifier. +*/ +SQLITE_PRIVATE int sqlite3GetTokenNormalized( + const unsigned char *z, + int *tokenType, + int *flags +){ + int n; + unsigned char iClass = aiClass[*z]; + if( iClass==CC_KYWD ){ + int i; + for(i=1; aiClass[z[i]]<=CC_KYWD; i++){} + if( IdChar(z[i]) ){ + /* This token started out using characters that can appear in keywords, + ** but z[i] is a character not allowed within keywords, so this must + ** be an identifier instead */ + i++; + while( IdChar(z[i]) ){ i++; } + *tokenType = TK_ID; + return i; + } + *tokenType = TK_ID; + n = keywordCode((char*)z, i, tokenType); + /* If the token is no longer considered to be an identifier, then it is a + ** keyword of some kind. Make the token back into an identifier and then + ** set the SQLITE_TOKEN_KEYWORD flag. Several non-identifier tokens are + ** used verbatim, including IN, IS, NOT, and NULL. */ + switch( *tokenType ){ + case TK_ID: { + /* do nothing, handled by caller */ + break; + } + case TK_IN: + case TK_IS: + case TK_NOT: + case TK_NULL: { + *flags |= SQLITE_TOKEN_KEYWORD; + break; + } + default: { + *tokenType = TK_ID; + *flags |= SQLITE_TOKEN_KEYWORD; + break; + } + } + }else{ + n = sqlite3GetToken(z, tokenType); + /* If the token is considered to be an identifier and the character class + ** of the first character is a quote, set the SQLITE_TOKEN_QUOTED flag. */ + if( *tokenType==TK_ID && (iClass==CC_QUOTE || iClass==CC_QUOTE2) ){ + *flags |= SQLITE_TOKEN_QUOTED; + } + } + return n; +} +#endif /* SQLITE_ENABLE_NORMALIZE */ + /* ** Run the parser on the given SQL string. The parser structure is ** passed in. An SQLITE_ status code is returned. If an error occurs @@ -142854,9 +152192,9 @@ SQLITE_PRIVATE int sqlite3RunParser(Parse *pParse, const char *zSql, char **pzEr /* sqlite3ParserTrace(stdout, "parser: "); */ #ifdef sqlite3Parser_ENGINEALWAYSONSTACK pEngine = &sEngine; - sqlite3ParserInit(pEngine); + sqlite3ParserInit(pEngine, pParse); #else - pEngine = sqlite3ParserAlloc(sqlite3Malloc); + pEngine = sqlite3ParserAlloc(sqlite3Malloc, pParse); if( pEngine==0 ){ sqlite3OomFault(db); return SQLITE_NOMEM_BKPT; @@ -142867,47 +152205,64 @@ SQLITE_PRIVATE int sqlite3RunParser(Parse *pParse, const char *zSql, char **pzEr assert( pParse->nVar==0 ); assert( pParse->pVList==0 ); while( 1 ){ - if( zSql[0]!=0 ){ - n = sqlite3GetToken((u8*)zSql, &tokenType); - mxSqlLen -= n; - if( mxSqlLen<0 ){ - pParse->rc = SQLITE_TOOBIG; - break; - } - }else{ - /* Upon reaching the end of input, call the parser two more times - ** with tokens TK_SEMI and 0, in that order. */ - if( lastTokenParsed==TK_SEMI ){ - tokenType = 0; - }else if( lastTokenParsed==0 ){ - break; - }else{ - tokenType = TK_SEMI; - } - n = 0; + n = sqlite3GetToken((u8*)zSql, &tokenType); + mxSqlLen -= n; + if( mxSqlLen<0 ){ + pParse->rc = SQLITE_TOOBIG; + break; } +#ifndef SQLITE_OMIT_WINDOWFUNC + if( tokenType>=TK_WINDOW ){ + assert( tokenType==TK_SPACE || tokenType==TK_OVER || tokenType==TK_FILTER + || tokenType==TK_ILLEGAL || tokenType==TK_WINDOW + ); +#else if( tokenType>=TK_SPACE ){ assert( tokenType==TK_SPACE || tokenType==TK_ILLEGAL ); +#endif /* SQLITE_OMIT_WINDOWFUNC */ if( db->u1.isInterrupted ){ pParse->rc = SQLITE_INTERRUPT; break; } - if( tokenType==TK_ILLEGAL ){ + if( tokenType==TK_SPACE ){ + zSql += n; + continue; + } + if( zSql[0]==0 ){ + /* Upon reaching the end of input, call the parser two more times + ** with tokens TK_SEMI and 0, in that order. */ + if( lastTokenParsed==TK_SEMI ){ + tokenType = 0; + }else if( lastTokenParsed==0 ){ + break; + }else{ + tokenType = TK_SEMI; + } + n = 0; +#ifndef SQLITE_OMIT_WINDOWFUNC + }else if( tokenType==TK_WINDOW ){ + assert( n==6 ); + tokenType = analyzeWindowKeyword((const u8*)&zSql[6]); + }else if( tokenType==TK_OVER ){ + assert( n==4 ); + tokenType = analyzeOverKeyword((const u8*)&zSql[4], lastTokenParsed); + }else if( tokenType==TK_FILTER ){ + assert( n==6 ); + tokenType = analyzeFilterKeyword((const u8*)&zSql[6], lastTokenParsed); +#endif /* SQLITE_OMIT_WINDOWFUNC */ + }else{ sqlite3ErrorMsg(pParse, "unrecognized token: \"%.*s\"", n, zSql); break; } - zSql += n; - }else{ - pParse->sLastToken.z = zSql; - pParse->sLastToken.n = n; - sqlite3Parser(pEngine, tokenType, pParse->sLastToken, pParse); - lastTokenParsed = tokenType; - zSql += n; - if( pParse->rc!=SQLITE_OK || db->mallocFailed ) break; } + pParse->sLastToken.z = zSql; + pParse->sLastToken.n = n; + sqlite3Parser(pEngine, tokenType, pParse->sLastToken); + lastTokenParsed = tokenType; + zSql += n; + if( pParse->rc!=SQLITE_OK || db->mallocFailed ) break; } assert( nErr==0 ); - pParse->zTail = zSql; #ifdef YYTRACKMAXSTACKDEPTH sqlite3_mutex_enter(sqlite3MallocMutex()); sqlite3StatusHighwater(SQLITE_STATUS_PARSER_STACK, @@ -142929,10 +152284,12 @@ SQLITE_PRIVATE int sqlite3RunParser(Parse *pParse, const char *zSql, char **pzEr assert( pzErrMsg!=0 ); if( pParse->zErrMsg ){ *pzErrMsg = pParse->zErrMsg; - sqlite3_log(pParse->rc, "%s", *pzErrMsg); + sqlite3_log(pParse->rc, "%s in \"%s\"", + *pzErrMsg, pParse->zTail); pParse->zErrMsg = 0; nErr++; } + pParse->zTail = zSql; if( pParse->pVdbe && pParse->nErr>0 && pParse->nested==0 ){ sqlite3VdbeDelete(pParse->pVdbe); pParse->pVdbe = 0; @@ -142948,16 +152305,18 @@ SQLITE_PRIVATE int sqlite3RunParser(Parse *pParse, const char *zSql, char **pzEr sqlite3_free(pParse->apVtabLock); #endif - if( !IN_DECLARE_VTAB ){ + if( !IN_SPECIAL_PARSE ){ /* If the pParse->declareVtab flag is set, do not delete any table ** structure built up in pParse->pNewTable. The calling code (see vtab.c) ** will take responsibility for freeing the Table structure. */ sqlite3DeleteTable(db, pParse->pNewTable); } + if( !IN_RENAME_OBJECT ){ + sqlite3DeleteTrigger(db, pParse->pNewTrigger); + } if( pParse->pWithToFree ) sqlite3WithDelete(db, pParse->pWithToFree); - sqlite3DeleteTrigger(db, pParse->pNewTrigger); sqlite3DbFree(db, pParse->pVList); while( pParse->pAinc ){ AutoincInfo *p = pParse->pAinc; @@ -143604,6 +152963,11 @@ SQLITE_API int sqlite3_initialize(void){ sqlite3GlobalConfig.isPCacheInit = 1; rc = sqlite3OsInit(); } +#ifdef SQLITE_ENABLE_DESERIALIZE + if( rc==SQLITE_OK ){ + rc = sqlite3MemdbInit(); + } +#endif if( rc==SQLITE_OK ){ sqlite3PCacheBufferSetup( sqlite3GlobalConfig.pPage, sqlite3GlobalConfig.szPage, sqlite3GlobalConfig.nPage); @@ -143636,7 +153000,7 @@ SQLITE_API int sqlite3_initialize(void){ #ifndef NDEBUG #ifndef SQLITE_OMIT_FLOATING_POINT /* This section of code's only "output" is via assert() statements. */ - if ( rc==SQLITE_OK ){ + if( rc==SQLITE_OK ){ u64 x = (((u64)1)<<63)-1; double y; assert(sizeof(x)==8); @@ -144002,6 +153366,17 @@ SQLITE_API int sqlite3_config(int op, ...){ break; } +#ifdef SQLITE_ENABLE_SORTER_REFERENCES + case SQLITE_CONFIG_SORTERREF_SIZE: { + int iVal = va_arg(ap, int); + if( iVal<0 ){ + iVal = SQLITE_DEFAULT_SORTERREF_SIZE; + } + sqlite3GlobalConfig.szSorterRef = (u32)iVal; + break; + } +#endif /* SQLITE_ENABLE_SORTER_REFERENCES */ + default: { rc = SQLITE_ERROR; break; @@ -144183,6 +153558,8 @@ SQLITE_API int sqlite3_db_config(sqlite3 *db, int op, ...){ { SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE, SQLITE_NoCkptOnClose }, { SQLITE_DBCONFIG_ENABLE_QPSG, SQLITE_EnableQPSG }, { SQLITE_DBCONFIG_TRIGGER_EQP, SQLITE_TriggerEQP }, + { SQLITE_DBCONFIG_RESET_DATABASE, SQLITE_ResetDatabase }, + { SQLITE_DBCONFIG_DEFENSIVE, SQLITE_Defensive }, }; unsigned int i; rc = SQLITE_ERROR; /* IMP: R-42790-23372 */ @@ -144197,7 +153574,7 @@ SQLITE_API int sqlite3_db_config(sqlite3 *db, int op, ...){ db->flags &= ~aFlagOp[i].mask; } if( oldFlags!=db->flags ){ - sqlite3ExpirePreparedStatements(db); + sqlite3ExpirePreparedStatements(db, 0); } if( pRes ){ *pRes = (db->flags & aFlagOp[i].mask)!=0; @@ -144258,6 +153635,15 @@ static int binCollFunc( return rc; } +/* +** Return true if CollSeq is the default built-in BINARY. +*/ +SQLITE_PRIVATE int sqlite3IsBinary(const CollSeq *p){ + assert( p==0 || p->xCmp!=binCollFunc || p->pUser!=0 + || strcmp(p->zName,"BINARY")==0 ); + return p==0 || (p->xCmp==binCollFunc && p->pUser==0); +} + /* ** Another built-in collating sequence: NOCASE. ** @@ -144379,7 +153765,7 @@ static void disconnectAllVtab(sqlite3 *db){ sqlite3BtreeEnterAll(db); for(i=0; inDb; i++){ Schema *pSchema = db->aDb[i].pSchema; - if( db->aDb[i].pSchema ){ + if( pSchema ){ for(p=sqliteHashFirst(&pSchema->tblHash); p; p=sqliteHashNext(p)){ Table *pTab = (Table *)sqliteHashData(p); if( IsVirtual(pTab) ) sqlite3VtabDisconnect(db, pTab); @@ -144639,8 +154025,8 @@ SQLITE_PRIVATE void sqlite3RollbackAll(sqlite3 *db, int tripCode){ sqlite3VtabRollback(db); sqlite3EndBenignMalloc(); - if( (db->mDbFlags&DBFLAG_SchemaChange)!=0 && db->init.busy==0 ){ - sqlite3ExpirePreparedStatements(db); + if( schemaChange ){ + sqlite3ExpirePreparedStatements(db, 0); sqlite3ResetAllSchemasOfConnection(db); } sqlite3BtreeLeaveAll(db); @@ -144668,6 +154054,7 @@ SQLITE_PRIVATE const char *sqlite3ErrName(int rc){ switch( rc ){ case SQLITE_OK: zName = "SQLITE_OK"; break; case SQLITE_ERROR: zName = "SQLITE_ERROR"; break; + case SQLITE_ERROR_SNAPSHOT: zName = "SQLITE_ERROR_SNAPSHOT"; break; case SQLITE_INTERNAL: zName = "SQLITE_INTERNAL"; break; case SQLITE_PERM: zName = "SQLITE_PERM"; break; case SQLITE_ABORT: zName = "SQLITE_ABORT"; break; @@ -144803,6 +154190,8 @@ SQLITE_PRIVATE const char *sqlite3ErrStr(int rc){ /* SQLITE_FORMAT */ 0, /* SQLITE_RANGE */ "column index out of range", /* SQLITE_NOTADB */ "file is not a database", + /* SQLITE_NOTICE */ "notification message", + /* SQLITE_WARNING */ "warning message", }; const char *zErr = "unknown error"; switch( rc ){ @@ -144810,6 +154199,14 @@ SQLITE_PRIVATE const char *sqlite3ErrStr(int rc){ zErr = "abort due to ROLLBACK"; break; } + case SQLITE_ROW: { + zErr = "another row available"; + break; + } + case SQLITE_DONE: { + zErr = "no more rows available"; + break; + } default: { rc &= 0xff; if( ALWAYS(rc>=0) && rcbusyTimeout; + int tmout = db->busyTimeout; int delay, prior; +#ifdef SQLITE_ENABLE_SETLK_TIMEOUT + if( sqlite3OsFileControl(pFile,SQLITE_FCNTL_LOCK_TIMEOUT,&tmout)==SQLITE_OK ){ + if( count ){ + tmout = 0; + sqlite3OsFileControl(pFile, SQLITE_FCNTL_LOCK_TIMEOUT, &tmout); + return 0; + }else{ + return 1; + } + } +#else + UNUSED_PARAMETER(pFile); +#endif assert( count>=0 ); if( count < NDELAY ){ delay = delays[count]; @@ -144849,16 +154265,19 @@ static int sqliteDefaultBusyCallback( delay = delays[NDELAY-1]; prior = totals[NDELAY-1] + delay*(count-(NDELAY-1)); } - if( prior + delay > timeout ){ - delay = timeout - prior; + if( prior + delay > tmout ){ + delay = tmout - prior; if( delay<=0 ) return 0; } sqlite3OsSleep(db->pVfs, delay*1000); return 1; #else + /* This case for unix systems that lack usleep() support. Sleeping + ** must be done in increments of whole seconds */ sqlite3 *db = (sqlite3 *)ptr; - int timeout = ((sqlite3 *)ptr)->busyTimeout; - if( (count+1)*1000 > timeout ){ + int tmout = ((sqlite3 *)ptr)->busyTimeout; + UNUSED_PARAMETER(pFile); + if( (count+1)*1000 > tmout ){ return 0; } sqlite3OsSleep(db->pVfs, 1000000); @@ -144869,14 +154288,25 @@ static int sqliteDefaultBusyCallback( /* ** Invoke the given busy handler. ** -** This routine is called when an operation failed with a lock. +** This routine is called when an operation failed to acquire a +** lock on VFS file pFile. +** ** If this routine returns non-zero, the lock is retried. If it ** returns 0, the operation aborts with an SQLITE_BUSY error. */ -SQLITE_PRIVATE int sqlite3InvokeBusyHandler(BusyHandler *p){ +SQLITE_PRIVATE int sqlite3InvokeBusyHandler(BusyHandler *p, sqlite3_file *pFile){ int rc; - if( NEVER(p==0) || p->xFunc==0 || p->nBusy<0 ) return 0; - rc = p->xFunc(p->pArg, p->nBusy); + if( p->xBusyHandler==0 || p->nBusy<0 ) return 0; + if( p->bExtraFileArg ){ + /* Add an extra parameter with the pFile pointer to the end of the + ** callback argument list */ + int (*xTra)(void*,int,sqlite3_file*); + xTra = (int(*)(void*,int,sqlite3_file*))p->xBusyHandler; + rc = xTra(p->pBusyArg, p->nBusy, pFile); + }else{ + /* Legacy style busy handler callback */ + rc = p->xBusyHandler(p->pBusyArg, p->nBusy); + } if( rc==0 ){ p->nBusy = -1; }else{ @@ -144898,9 +154328,10 @@ SQLITE_API int sqlite3_busy_handler( if( !sqlite3SafetyCheckOk(db) ) return SQLITE_MISUSE_BKPT; #endif sqlite3_mutex_enter(db->mutex); - db->busyHandler.xFunc = xBusy; - db->busyHandler.pArg = pArg; + db->busyHandler.xBusyHandler = xBusy; + db->busyHandler.pBusyArg = pArg; db->busyHandler.nBusy = 0; + db->busyHandler.bExtraFileArg = 0; db->busyTimeout = 0; sqlite3_mutex_leave(db->mutex); return SQLITE_OK; @@ -144948,8 +154379,10 @@ SQLITE_API int sqlite3_busy_timeout(sqlite3 *db, int ms){ if( !sqlite3SafetyCheckOk(db) ) return SQLITE_MISUSE_BKPT; #endif if( ms>0 ){ - sqlite3_busy_handler(db, sqliteDefaultBusyCallback, (void*)db); + sqlite3_busy_handler(db, (int(*)(void*,int))sqliteDefaultBusyCallback, + (void*)db); db->busyTimeout = ms; + db->busyHandler.bExtraFileArg = 1; }else{ sqlite3_busy_handler(db, 0, 0); } @@ -144985,6 +154418,8 @@ SQLITE_PRIVATE int sqlite3CreateFunc( void (*xSFunc)(sqlite3_context*,int,sqlite3_value **), void (*xStep)(sqlite3_context*,int,sqlite3_value **), void (*xFinal)(sqlite3_context*), + void (*xValue)(sqlite3_context*), + void (*xInverse)(sqlite3_context*,int,sqlite3_value **), FuncDestructor *pDestructor ){ FuncDef *p; @@ -144992,12 +154427,14 @@ SQLITE_PRIVATE int sqlite3CreateFunc( int extraFlags; assert( sqlite3_mutex_held(db->mutex) ); - if( zFunctionName==0 || - (xSFunc && (xFinal || xStep)) || - (!xSFunc && (xFinal && !xStep)) || - (!xSFunc && (!xFinal && xStep)) || - (nArg<-1 || nArg>SQLITE_MAX_FUNCTION_ARG) || - (255<(nName = sqlite3Strlen30( zFunctionName))) ){ + assert( xValue==0 || xSFunc==0 ); + if( zFunctionName==0 /* Must have a valid name */ + || (xSFunc!=0 && xFinal!=0) /* Not both xSFunc and xFinal */ + || ((xFinal==0)!=(xStep==0)) /* Both or neither of xFinal and xStep */ + || ((xValue==0)!=(xInverse==0)) /* Both or neither of xValue, xInverse */ + || (nArg<-1 || nArg>SQLITE_MAX_FUNCTION_ARG) + || (255<(nName = sqlite3Strlen30( zFunctionName))) + ){ return SQLITE_MISUSE_BKPT; } @@ -145018,10 +154455,10 @@ SQLITE_PRIVATE int sqlite3CreateFunc( }else if( enc==SQLITE_ANY ){ int rc; rc = sqlite3CreateFunc(db, zFunctionName, nArg, SQLITE_UTF8|extraFlags, - pUserData, xSFunc, xStep, xFinal, pDestructor); + pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor); if( rc==SQLITE_OK ){ rc = sqlite3CreateFunc(db, zFunctionName, nArg, SQLITE_UTF16LE|extraFlags, - pUserData, xSFunc, xStep, xFinal, pDestructor); + pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor); } if( rc!=SQLITE_OK ){ return rc; @@ -145038,14 +154475,14 @@ SQLITE_PRIVATE int sqlite3CreateFunc( ** operation to continue but invalidate all precompiled statements. */ p = sqlite3FindFunction(db, zFunctionName, nArg, (u8)enc, 0); - if( p && (p->funcFlags & SQLITE_FUNC_ENCMASK)==enc && p->nArg==nArg ){ + if( p && (p->funcFlags & SQLITE_FUNC_ENCMASK)==(u32)enc && p->nArg==nArg ){ if( db->nVdbeActive ){ sqlite3ErrorWithMsg(db, SQLITE_BUSY, "unable to delete/modify user-function due to active statements"); assert( !db->mallocFailed ); return SQLITE_BUSY; }else{ - sqlite3ExpirePreparedStatements(db); + sqlite3ExpirePreparedStatements(db, 0); } } @@ -145067,38 +154504,32 @@ SQLITE_PRIVATE int sqlite3CreateFunc( testcase( p->funcFlags & SQLITE_DETERMINISTIC ); p->xSFunc = xSFunc ? xSFunc : xStep; p->xFinalize = xFinal; + p->xValue = xValue; + p->xInverse = xInverse; p->pUserData = pUserData; p->nArg = (u16)nArg; return SQLITE_OK; } /* -** Create new user functions. +** Worker function used by utf-8 APIs that create new functions: +** +** sqlite3_create_function() +** sqlite3_create_function_v2() +** sqlite3_create_window_function() */ -SQLITE_API int sqlite3_create_function( - sqlite3 *db, - const char *zFunc, - int nArg, - int enc, - void *p, - void (*xSFunc)(sqlite3_context*,int,sqlite3_value **), - void (*xStep)(sqlite3_context*,int,sqlite3_value **), - void (*xFinal)(sqlite3_context*) -){ - return sqlite3_create_function_v2(db, zFunc, nArg, enc, p, xSFunc, xStep, - xFinal, 0); -} - -SQLITE_API int sqlite3_create_function_v2( +static int createFunctionApi( sqlite3 *db, const char *zFunc, int nArg, int enc, void *p, - void (*xSFunc)(sqlite3_context*,int,sqlite3_value **), - void (*xStep)(sqlite3_context*,int,sqlite3_value **), + void (*xSFunc)(sqlite3_context*,int,sqlite3_value**), + void (*xStep)(sqlite3_context*,int,sqlite3_value**), void (*xFinal)(sqlite3_context*), - void (*xDestroy)(void *) + void (*xValue)(sqlite3_context*), + void (*xInverse)(sqlite3_context*,int,sqlite3_value**), + void(*xDestroy)(void*) ){ int rc = SQLITE_ERROR; FuncDestructor *pArg = 0; @@ -145110,19 +154541,23 @@ SQLITE_API int sqlite3_create_function_v2( #endif sqlite3_mutex_enter(db->mutex); if( xDestroy ){ - pArg = (FuncDestructor *)sqlite3DbMallocZero(db, sizeof(FuncDestructor)); + pArg = (FuncDestructor *)sqlite3Malloc(sizeof(FuncDestructor)); if( !pArg ){ + sqlite3OomFault(db); xDestroy(p); goto out; } + pArg->nRef = 0; pArg->xDestroy = xDestroy; pArg->pUserData = p; } - rc = sqlite3CreateFunc(db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, pArg); + rc = sqlite3CreateFunc(db, zFunc, nArg, enc, p, + xSFunc, xStep, xFinal, xValue, xInverse, pArg + ); if( pArg && pArg->nRef==0 ){ assert( rc!=SQLITE_OK ); xDestroy(p); - sqlite3DbFree(db, pArg); + sqlite3_free(pArg); } out: @@ -145131,6 +154566,52 @@ SQLITE_API int sqlite3_create_function_v2( return rc; } +/* +** Create new user functions. +*/ +SQLITE_API int sqlite3_create_function( + sqlite3 *db, + const char *zFunc, + int nArg, + int enc, + void *p, + void (*xSFunc)(sqlite3_context*,int,sqlite3_value **), + void (*xStep)(sqlite3_context*,int,sqlite3_value **), + void (*xFinal)(sqlite3_context*) +){ + return createFunctionApi(db, zFunc, nArg, enc, p, xSFunc, xStep, + xFinal, 0, 0, 0); +} +SQLITE_API int sqlite3_create_function_v2( + sqlite3 *db, + const char *zFunc, + int nArg, + int enc, + void *p, + void (*xSFunc)(sqlite3_context*,int,sqlite3_value **), + void (*xStep)(sqlite3_context*,int,sqlite3_value **), + void (*xFinal)(sqlite3_context*), + void (*xDestroy)(void *) +){ + return createFunctionApi(db, zFunc, nArg, enc, p, xSFunc, xStep, + xFinal, 0, 0, xDestroy); +} +SQLITE_API int sqlite3_create_window_function( + sqlite3 *db, + const char *zFunc, + int nArg, + int enc, + void *p, + void (*xStep)(sqlite3_context*,int,sqlite3_value **), + void (*xFinal)(sqlite3_context*), + void (*xValue)(sqlite3_context*), + void (*xInverse)(sqlite3_context*,int,sqlite3_value **), + void (*xDestroy)(void *) +){ + return createFunctionApi(db, zFunc, nArg, enc, p, 0, xStep, + xFinal, xValue, xInverse, xDestroy); +} + #ifndef SQLITE_OMIT_UTF16 SQLITE_API int sqlite3_create_function16( sqlite3 *db, @@ -145151,7 +154632,7 @@ SQLITE_API int sqlite3_create_function16( sqlite3_mutex_enter(db->mutex); assert( !db->mallocFailed ); zFunc8 = sqlite3Utf16to8(db, zFunctionName, -1, SQLITE_UTF16NATIVE); - rc = sqlite3CreateFunc(db, zFunc8, nArg, eTextRep, p, xSFunc,xStep,xFinal,0); + rc = sqlite3CreateFunc(db, zFunc8, nArg, eTextRep, p, xSFunc,xStep,xFinal,0,0,0); sqlite3DbFree(db, zFunc8); rc = sqlite3ApiExit(db, rc); sqlite3_mutex_leave(db->mutex); @@ -145160,6 +154641,28 @@ SQLITE_API int sqlite3_create_function16( #endif +/* +** The following is the implementation of an SQL function that always +** fails with an error message stating that the function is used in the +** wrong context. The sqlite3_overload_function() API might construct +** SQL function that use this routine so that the functions will exist +** for name resolution but are actually overloaded by the xFindFunction +** method of virtual tables. +*/ +static void sqlite3InvalidFunction( + sqlite3_context *context, /* The function calling context */ + int NotUsed, /* Number of arguments to the function */ + sqlite3_value **NotUsed2 /* Value of each argument */ +){ + const char *zName = (const char*)sqlite3_user_data(context); + char *zErr; + UNUSED_PARAMETER2(NotUsed, NotUsed2); + zErr = sqlite3_mprintf( + "unable to use function %s in the requested context", zName); + sqlite3_result_error(context, zErr, -1); + sqlite3_free(zErr); +} + /* ** Declare that a function has been overloaded by a virtual table. ** @@ -145177,7 +154680,8 @@ SQLITE_API int sqlite3_overload_function( const char *zName, int nArg ){ - int rc = SQLITE_OK; + int rc; + char *zCopy; #ifdef SQLITE_ENABLE_API_ARMOR if( !sqlite3SafetyCheckOk(db) || zName==0 || nArg<-2 ){ @@ -145185,13 +154689,13 @@ SQLITE_API int sqlite3_overload_function( } #endif sqlite3_mutex_enter(db->mutex); - if( sqlite3FindFunction(db, zName, nArg, SQLITE_UTF8, 0)==0 ){ - rc = sqlite3CreateFunc(db, zName, nArg, SQLITE_UTF8, - 0, sqlite3InvalidFunction, 0, 0, 0); - } - rc = sqlite3ApiExit(db, rc); + rc = sqlite3FindFunction(db, zName, nArg, SQLITE_UTF8, 0)!=0; sqlite3_mutex_leave(db->mutex); - return rc; + if( rc ) return SQLITE_OK; + zCopy = sqlite3_mprintf(zName); + if( zCopy==0 ) return SQLITE_NOMEM; + return sqlite3_create_function_v2(db, zName, nArg, SQLITE_UTF8, + zCopy, sqlite3InvalidFunction, 0, 0, sqlite3_free); } #ifndef SQLITE_OMIT_TRACE @@ -145753,7 +155257,7 @@ static int createCollation( "unable to delete/modify collation sequence due to active statements"); return SQLITE_BUSY; } - sqlite3ExpirePreparedStatements(db); + sqlite3ExpirePreparedStatements(db, 0); /* If collation sequence pColl was created directly by a call to ** sqlite3_create_collation, and not generated by synthCollSeq(), @@ -146242,6 +155746,7 @@ static int openDatabase( db->nDb = 2; db->magic = SQLITE_MAGIC_BUSY; db->aDb = db->aDbStatic; + db->lookaside.bDisable = 1; assert( sizeof(db->aLimit)==sizeof(aHardLimit) ); memcpy(db->aLimit, aHardLimit, sizeof(db->aLimit)); @@ -146281,6 +155786,9 @@ static int openDatabase( #endif #if defined(SQLITE_ENABLE_QPSG) | SQLITE_EnableQPSG +#endif +#if defined(SQLITE_DEFAULT_DEFENSIVE) + | SQLITE_Defensive #endif ; sqlite3HashInit(&db->aCollSeq); @@ -146942,10 +156450,11 @@ SQLITE_API int sqlite3_file_control(sqlite3 *db, const char *zDbName, int op, vo }else if( op==SQLITE_FCNTL_JOURNAL_POINTER ){ *(sqlite3_file**)pArg = sqlite3PagerJrnlFile(pPager); rc = SQLITE_OK; - }else if( fd->pMethods ){ - rc = sqlite3OsFileControl(fd, op, pArg); + }else if( op==SQLITE_FCNTL_DATA_VERSION ){ + *(unsigned int*)pArg = sqlite3PagerDataVersion(pPager); + rc = SQLITE_OK; }else{ - rc = SQLITE_NOTFOUND; + rc = sqlite3OsFileControl(fd, op, pArg); } sqlite3BtreeLeave(pBtree); } @@ -147166,32 +156675,25 @@ SQLITE_API int sqlite3_test_control(int op, ...){ break; } -#ifdef SQLITE_N_KEYWORD - /* sqlite3_test_control(SQLITE_TESTCTRL_ISKEYWORD, const char *zWord) + /* sqlite3_test_control(SQLITE_TESTCTRL_LOCALTIME_FAULT, int onoff); ** - ** If zWord is a keyword recognized by the parser, then return the - ** number of keywords. Or if zWord is not a keyword, return 0. - ** - ** This test feature is only available in the amalgamation since - ** the SQLITE_N_KEYWORD macro is not defined in this file if SQLite - ** is built using separate source files. + ** If parameter onoff is non-zero, subsequent calls to localtime() + ** and its variants fail. If onoff is zero, undo this setting. */ - case SQLITE_TESTCTRL_ISKEYWORD: { - const char *zWord = va_arg(ap, const char*); - int n = sqlite3Strlen30(zWord); - rc = (sqlite3KeywordCode((u8*)zWord, n)!=TK_ID) ? SQLITE_N_KEYWORD : 0; + case SQLITE_TESTCTRL_LOCALTIME_FAULT: { + sqlite3GlobalConfig.bLocaltimeFault = va_arg(ap, int); break; } -#endif - /* sqlite3_test_control(SQLITE_TESTCTRL_LOCALTIME_FAULT, int onoff); + /* sqlite3_test_control(SQLITE_TESTCTRL_INTERNAL_FUNCS, int onoff); ** - ** If parameter onoff is non-zero, configure the wrappers so that all - ** subsequent calls to localtime() and variants fail. If onoff is zero, - ** undo this setting. + ** If parameter onoff is non-zero, internal-use-only SQL functions + ** are visible to ordinary SQL. This is useful for testing but is + ** unsafe because invalid parameters to those internal-use-only functions + ** can result in crashes or segfaults. */ - case SQLITE_TESTCTRL_LOCALTIME_FAULT: { - sqlite3GlobalConfig.bLocaltimeFault = va_arg(ap, int); + case SQLITE_TESTCTRL_INTERNAL_FUNCTIONS: { + sqlite3GlobalConfig.bInternalFunctions = va_arg(ap, int); break; } @@ -147225,7 +156727,8 @@ SQLITE_API int sqlite3_test_control(int op, ...){ */ case SQLITE_TESTCTRL_VDBE_COVERAGE: { #ifdef SQLITE_VDBE_COVERAGE - typedef void (*branch_callback)(void*,int,u8,u8); + typedef void (*branch_callback)(void*,unsigned int, + unsigned char,unsigned char); sqlite3GlobalConfig.xVdbeBranch = va_arg(ap,branch_callback); sqlite3GlobalConfig.pVdbeBranchArg = va_arg(ap,void*); #endif @@ -147412,7 +156915,7 @@ SQLITE_API int sqlite3_snapshot_get( if( iDb==0 || iDb>1 ){ Btree *pBt = db->aDb[iDb].pBt; if( 0==sqlite3BtreeIsInTrans(pBt) ){ - rc = sqlite3BtreeBeginTrans(pBt, 0); + rc = sqlite3BtreeBeginTrans(pBt, 0, 0); if( rc==SQLITE_OK ){ rc = sqlite3PagerSnapshotGet(sqlite3BtreePager(pBt), ppSnapshot); } @@ -147447,11 +156950,29 @@ SQLITE_API int sqlite3_snapshot_open( iDb = sqlite3FindDbName(db, zDb); if( iDb==0 || iDb>1 ){ Btree *pBt = db->aDb[iDb].pBt; - if( 0==sqlite3BtreeIsInReadTrans(pBt) ){ - rc = sqlite3PagerSnapshotOpen(sqlite3BtreePager(pBt), pSnapshot); + if( sqlite3BtreeIsInTrans(pBt)==0 ){ + Pager *pPager = sqlite3BtreePager(pBt); + int bUnlock = 0; + if( sqlite3BtreeIsInReadTrans(pBt) ){ + if( db->nVdbeActive==0 ){ + rc = sqlite3PagerSnapshotCheck(pPager, pSnapshot); + if( rc==SQLITE_OK ){ + bUnlock = 1; + rc = sqlite3BtreeCommit(pBt); + } + } + }else{ + rc = SQLITE_OK; + } + if( rc==SQLITE_OK ){ + rc = sqlite3PagerSnapshotOpen(pPager, pSnapshot); + } if( rc==SQLITE_OK ){ - rc = sqlite3BtreeBeginTrans(pBt, 0); - sqlite3PagerSnapshotOpen(sqlite3BtreePager(pBt), 0); + rc = sqlite3BtreeBeginTrans(pBt, 0, 0); + sqlite3PagerSnapshotOpen(pPager, 0); + } + if( bUnlock ){ + sqlite3PagerSnapshotUnlock(pPager); } } } @@ -147482,7 +157003,7 @@ SQLITE_API int sqlite3_snapshot_recover(sqlite3 *db, const char *zDb){ if( iDb==0 || iDb>1 ){ Btree *pBt = db->aDb[iDb].pBt; if( 0==sqlite3BtreeIsInReadTrans(pBt) ){ - rc = sqlite3BtreeBeginTrans(pBt, 0); + rc = sqlite3BtreeBeginTrans(pBt, 0, 0); if( rc==SQLITE_OK ){ rc = sqlite3PagerSnapshotRecover(sqlite3BtreePager(pBt)); sqlite3BtreeCommit(pBt); @@ -149050,7 +158571,7 @@ SQLITE_PRIVATE int sqlite3Fts3ExprParse(sqlite3_tokenizer *, int, ); SQLITE_PRIVATE void sqlite3Fts3ExprFree(Fts3Expr *); #ifdef SQLITE_TEST -SQLITE_PRIVATE int sqlite3Fts3ExprInitTestInterface(sqlite3 *db); +SQLITE_PRIVATE int sqlite3Fts3ExprInitTestInterface(sqlite3 *db, Fts3Hash*); SQLITE_PRIVATE int sqlite3Fts3InitTerm(sqlite3 *db); #endif @@ -150618,7 +160139,7 @@ static int fts3ScanInteriorNode( const char *zCsr = zNode; /* Cursor to iterate through node */ const char *zEnd = &zCsr[nNode];/* End of interior node buffer */ char *zBuffer = 0; /* Buffer to load terms into */ - int nAlloc = 0; /* Size of allocated buffer */ + i64 nAlloc = 0; /* Size of allocated buffer */ int isFirstTerm = 1; /* True when processing first term on page */ sqlite3_int64 iChild; /* Block id of child node to descend to */ @@ -150656,14 +160177,14 @@ static int fts3ScanInteriorNode( zCsr += fts3GetVarint32(zCsr, &nSuffix); assert( nPrefix>=0 && nSuffix>=0 ); - if( &zCsr[nSuffix]>zEnd ){ + if( nPrefix>zCsr-zNode || nSuffix>zEnd-zCsr ){ rc = FTS_CORRUPT_VTAB; goto finish_scan; } - if( nPrefix+nSuffix>nAlloc ){ + if( (i64)nPrefix+nSuffix>nAlloc ){ char *zNew; - nAlloc = (nPrefix+nSuffix) * 2; - zNew = (char *)sqlite3_realloc(zBuffer, nAlloc); + nAlloc = ((i64)nPrefix+nSuffix) * 2; + zNew = (char *)sqlite3_realloc64(zBuffer, nAlloc); if( !zNew ){ rc = SQLITE_NOMEM; goto finish_scan; @@ -152605,7 +162126,7 @@ static int fts3SavepointMethod(sqlite3_vtab *pVtab, int iSavepoint){ int rc = SQLITE_OK; UNUSED_PARAMETER(iSavepoint); assert( ((Fts3Table *)pVtab)->inTransaction ); - assert( ((Fts3Table *)pVtab)->mxSavepoint < iSavepoint ); + assert( ((Fts3Table *)pVtab)->mxSavepoint <= iSavepoint ); TESTONLY( ((Fts3Table *)pVtab)->mxSavepoint = iSavepoint ); if( ((Fts3Table *)pVtab)->bIgnoreSavepoint==0 ){ rc = fts3SyncMethod(pVtab); @@ -152643,8 +162164,23 @@ static int fts3RollbackToMethod(sqlite3_vtab *pVtab, int iSavepoint){ return SQLITE_OK; } +/* +** Return true if zName is the extension on one of the shadow tables used +** by this module. +*/ +static int fts3ShadowName(const char *zName){ + static const char *azName[] = { + "content", "docsize", "segdir", "segments", "stat", + }; + unsigned int i; + for(i=0; i */ -/* -** Function to query the hash-table of tokenizers (see README.tokenizers). -*/ -static int queryTestTokenizer( - sqlite3 *db, - const char *zName, - const sqlite3_tokenizer_module **pp -){ - int rc; - sqlite3_stmt *pStmt; - const char zSql[] = "SELECT fts3_tokenizer(?)"; - - *pp = 0; - rc = sqlite3_prepare_v2(db, zSql, -1, &pStmt, 0); - if( rc!=SQLITE_OK ){ - return rc; - } - - sqlite3_bind_text(pStmt, 1, zName, -1, SQLITE_STATIC); - if( SQLITE_ROW==sqlite3_step(pStmt) ){ - if( sqlite3_column_type(pStmt, 0)==SQLITE_BLOB ){ - memcpy((void *)pp, sqlite3_column_blob(pStmt, 0), sizeof(*pp)); - } - } - - return sqlite3_finalize(pStmt); -} - /* ** Return a pointer to a buffer containing a text representation of the ** expression passed as the first argument. The buffer is obtained from @@ -156515,12 +166027,12 @@ static char *exprToString(Fts3Expr *pExpr, char *zBuf){ ** ** SELECT fts3_exprtest('simple', 'Bill col2:Bloggs', 'col1', 'col2'); */ -static void fts3ExprTest( +static void fts3ExprTestCommon( + int bRebalance, sqlite3_context *context, int argc, sqlite3_value **argv ){ - sqlite3_tokenizer_module const *pModule = 0; sqlite3_tokenizer *pTokenizer = 0; int rc; char **azCol = 0; @@ -156530,7 +166042,9 @@ static void fts3ExprTest( int ii; Fts3Expr *pExpr; char *zBuf = 0; - sqlite3 *db = sqlite3_context_db_handle(context); + Fts3Hash *pHash = (Fts3Hash*)sqlite3_user_data(context); + const char *zTokenizer = 0; + char *zErr = 0; if( argc<3 ){ sqlite3_result_error(context, @@ -156539,23 +166053,17 @@ static void fts3ExprTest( return; } - rc = queryTestTokenizer(db, - (const char *)sqlite3_value_text(argv[0]), &pModule); - if( rc==SQLITE_NOMEM ){ - sqlite3_result_error_nomem(context); - goto exprtest_out; - }else if( !pModule ){ - sqlite3_result_error(context, "No such tokenizer module", -1); - goto exprtest_out; - } - - rc = pModule->xCreate(0, 0, &pTokenizer); - assert( rc==SQLITE_NOMEM || rc==SQLITE_OK ); - if( rc==SQLITE_NOMEM ){ - sqlite3_result_error_nomem(context); - goto exprtest_out; + zTokenizer = (const char*)sqlite3_value_text(argv[0]); + rc = sqlite3Fts3InitTokenizer(pHash, zTokenizer, &pTokenizer, &zErr); + if( rc!=SQLITE_OK ){ + if( rc==SQLITE_NOMEM ){ + sqlite3_result_error_nomem(context); + }else{ + sqlite3_result_error(context, zErr, -1); + } + sqlite3_free(zErr); + return; } - pTokenizer->pModule = pModule; zExpr = (const char *)sqlite3_value_text(argv[1]); nExpr = sqlite3_value_bytes(argv[1]); @@ -156569,7 +166077,7 @@ static void fts3ExprTest( azCol[ii] = (char *)sqlite3_value_text(argv[ii+2]); } - if( sqlite3_user_data(context) ){ + if( bRebalance ){ char *zDummy = 0; rc = sqlite3Fts3ExprParse( pTokenizer, 0, azCol, 0, nCol, nCol, zExpr, nExpr, &pExpr, &zDummy @@ -156595,23 +166103,38 @@ static void fts3ExprTest( sqlite3Fts3ExprFree(pExpr); exprtest_out: - if( pModule && pTokenizer ){ - rc = pModule->xDestroy(pTokenizer); + if( pTokenizer ){ + rc = pTokenizer->pModule->xDestroy(pTokenizer); } sqlite3_free(azCol); } +static void fts3ExprTest( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + fts3ExprTestCommon(0, context, argc, argv); +} +static void fts3ExprTestRebalance( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + fts3ExprTestCommon(1, context, argc, argv); +} + /* ** Register the query expression parser test function fts3_exprtest() ** with database connection db. */ -SQLITE_PRIVATE int sqlite3Fts3ExprInitTestInterface(sqlite3* db){ +SQLITE_PRIVATE int sqlite3Fts3ExprInitTestInterface(sqlite3 *db, Fts3Hash *pHash){ int rc = sqlite3_create_function( - db, "fts3_exprtest", -1, SQLITE_UTF8, 0, fts3ExprTest, 0, 0 + db, "fts3_exprtest", -1, SQLITE_UTF8, (void*)pHash, fts3ExprTest, 0, 0 ); if( rc==SQLITE_OK ){ rc = sqlite3_create_function(db, "fts3_exprtest_rebalance", - -1, SQLITE_UTF8, (void *)1, fts3ExprTest, 0, 0 + -1, SQLITE_UTF8, (void*)pHash, fts3ExprTestRebalance, 0, 0 ); } return rc; @@ -158874,7 +168397,8 @@ SQLITE_PRIVATE int sqlite3Fts3InitTok(sqlite3 *db, Fts3Hash *pHash){ 0, /* xRename */ 0, /* xSavepoint */ 0, /* xRelease */ - 0 /* xRollbackTo */ + 0, /* xRollbackTo */ + 0 /* xShadowName */ }; int rc; /* Return code */ @@ -160262,15 +169786,19 @@ static int fts3SegReaderNext( ** safe (no risk of overread) even if the node data is corrupted. */ pNext += fts3GetVarint32(pNext, &nPrefix); pNext += fts3GetVarint32(pNext, &nSuffix); - if( nPrefix<0 || nSuffix<=0 - || &pNext[nSuffix]>&pReader->aNode[pReader->nNode] + if( nSuffix<=0 + || (&pReader->aNode[pReader->nNode] - pNext)pReader->nTermAlloc ){ return FTS_CORRUPT_VTAB; } - if( nPrefix+nSuffix>pReader->nTermAlloc ){ - int nNew = (nPrefix+nSuffix)*2; - char *zNew = sqlite3_realloc(pReader->zTerm, nNew); + /* Both nPrefix and nSuffix were read by fts3GetVarint32() and so are + ** between 0 and 0x7FFFFFFF. But the sum of the two may cause integer + ** overflow - hence the (i64) casts. */ + if( (i64)nPrefix+nSuffix>(i64)pReader->nTermAlloc ){ + i64 nNew = ((i64)nPrefix+nSuffix)*2; + char *zNew = sqlite3_realloc64(pReader->zTerm, nNew); if( !zNew ){ return SQLITE_NOMEM; } @@ -160292,7 +169820,7 @@ static int fts3SegReaderNext( ** b-tree node. And that the final byte of the doclist is 0x00. If either ** of these statements is untrue, then the data structure is corrupt. */ - if( &pReader->aDoclist[pReader->nDoclist]>&pReader->aNode[pReader->nNode] + if( (&pReader->aNode[pReader->nNode] - pReader->aDoclist)nDoclist || (pReader->nPopulate==0 && pReader->aDoclist[pReader->nDoclist-1]) ){ return FTS_CORRUPT_VTAB; @@ -160796,6 +170324,7 @@ static int fts3WriteSegment( sqlite3_bind_blob(pStmt, 2, z, n, SQLITE_STATIC); sqlite3_step(pStmt); rc = sqlite3_reset(pStmt); + sqlite3_bind_null(pStmt, 2); } return rc; } @@ -160852,6 +170381,7 @@ static int fts3WriteSegdir( sqlite3_bind_blob(pStmt, 6, zRoot, nRoot, SQLITE_STATIC); sqlite3_step(pStmt); rc = sqlite3_reset(pStmt); + sqlite3_bind_null(pStmt, 6); } return rc; } @@ -162331,6 +171861,7 @@ static void fts3UpdateDocTotals( sqlite3_bind_blob(pStmt, 2, pBlob, nBlob, SQLITE_STATIC); sqlite3_step(pStmt); *pRC = sqlite3_reset(pStmt); + sqlite3_bind_null(pStmt, 2); sqlite3_free(a); } @@ -162615,6 +172146,9 @@ static int nodeReaderNext(NodeReader *p){ } p->iOff += fts3GetVarint32(&p->aNode[p->iOff], &nSuffix); + if( nPrefix>p->iOff || nSuffix>p->nNode-p->iOff ){ + return SQLITE_CORRUPT_VTAB; + } blobGrowBuffer(&p->term, nPrefix+nSuffix, &rc); if( rc==SQLITE_OK ){ memcpy(&p->term.a[nPrefix], &p->aNode[p->iOff], nSuffix); @@ -162622,6 +172156,9 @@ static int nodeReaderNext(NodeReader *p){ p->iOff += nSuffix; if( p->iChild==0 ){ p->iOff += fts3GetVarint32(&p->aNode[p->iOff], &p->nDoclist); + if( (p->nNode-p->iOff)nDoclist ){ + return SQLITE_CORRUPT_VTAB; + } p->aDoclist = &p->aNode[p->iOff]; p->iOff += p->nDoclist; } @@ -162629,7 +172166,6 @@ static int nodeReaderNext(NodeReader *p){ } assert( p->iOff<=p->nNode ); - return rc; } @@ -163519,6 +173055,7 @@ static int fts3TruncateSegment( sqlite3_bind_int(pChomp, 4, iIdx); sqlite3_step(pChomp); rc = sqlite3_reset(pChomp); + sqlite3_bind_null(pChomp, 2); } } @@ -163598,6 +173135,7 @@ static int fts3IncrmergeHintStore(Fts3Table *p, Blob *pHint){ sqlite3_bind_blob(pReplace, 2, pHint->a, pHint->n, SQLITE_STATIC); sqlite3_step(pReplace); rc = sqlite3_reset(pReplace); + sqlite3_bind_null(pReplace, 2); } return rc; @@ -164412,7 +173950,6 @@ SQLITE_PRIVATE int sqlite3Fts3UpdateMethod( ){ Fts3Table *p = (Fts3Table *)pVtab; int rc = SQLITE_OK; /* Return Code */ - int isRemove = 0; /* True for an UPDATE or DELETE */ u32 *aSzIns = 0; /* Sizes of inserted documents */ u32 *aSzDel = 0; /* Sizes of deleted documents */ int nChng = 0; /* Net change in number of documents */ @@ -164510,7 +174047,6 @@ SQLITE_PRIVATE int sqlite3Fts3UpdateMethod( if( sqlite3_value_type(apVal[0])!=SQLITE_NULL ){ assert( sqlite3_value_type(apVal[0])==SQLITE_INTEGER ); rc = fts3DeleteByRowid(p, apVal[0], &nChng, aSzDel); - isRemove = 1; } /* If this is an INSERT or UPDATE operation, insert the new record. */ @@ -164522,7 +174058,7 @@ SQLITE_PRIVATE int sqlite3Fts3UpdateMethod( rc = FTS_CORRUPT_VTAB; } } - if( rc==SQLITE_OK && (!isRemove || *pRowid!=p->iPrevDocid ) ){ + if( rc==SQLITE_OK ){ rc = fts3PendingTermsDocid(p, 0, iLangid, *pRowid); } if( rc==SQLITE_OK ){ @@ -167042,9 +176578,9 @@ SQLITE_PRIVATE int sqlite3FtsUnicodeFold(int c, int bRemoveDiacritic){ #endif /* !defined(SQLITE_DISABLE_FTS3_UNICODE) */ /************** End of fts3_unicode2.c ***************************************/ -/************** Begin file rtree.c *******************************************/ +/************** Begin file json1.c *******************************************/ /* -** 2001 September 15 +** 2015-08-12 ** ** The author disclaims copyright to this source code. In place of ** a legal notice, here is a blessing: @@ -167053,1642 +176589,4236 @@ SQLITE_PRIVATE int sqlite3FtsUnicodeFold(int c, int bRemoveDiacritic){ ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** -************************************************************************* -** This file contains code for implementations of the r-tree and r*-tree -** algorithms packaged as an SQLite virtual table module. -*/ - -/* -** Database Format of R-Tree Tables -** -------------------------------- -** -** The data structure for a single virtual r-tree table is stored in three -** native SQLite tables declared as follows. In each case, the '%' character -** in the table name is replaced with the user-supplied name of the r-tree -** table. -** -** CREATE TABLE %_node(nodeno INTEGER PRIMARY KEY, data BLOB) -** CREATE TABLE %_parent(nodeno INTEGER PRIMARY KEY, parentnode INTEGER) -** CREATE TABLE %_rowid(rowid INTEGER PRIMARY KEY, nodeno INTEGER) -** -** The data for each node of the r-tree structure is stored in the %_node -** table. For each node that is not the root node of the r-tree, there is -** an entry in the %_parent table associating the node with its parent. -** And for each row of data in the table, there is an entry in the %_rowid -** table that maps from the entries rowid to the id of the node that it -** is stored on. -** -** The root node of an r-tree always exists, even if the r-tree table is -** empty. The nodeno of the root node is always 1. All other nodes in the -** table must be the same size as the root node. The content of each node -** is formatted as follows: +****************************************************************************** ** -** 1. If the node is the root node (node 1), then the first 2 bytes -** of the node contain the tree depth as a big-endian integer. -** For non-root nodes, the first 2 bytes are left unused. +** This SQLite extension implements JSON functions. The interface is +** modeled after MySQL JSON functions: ** -** 2. The next 2 bytes contain the number of entries currently -** stored in the node. +** https://dev.mysql.com/doc/refman/5.7/en/json.html ** -** 3. The remainder of the node contains the node entries. Each entry -** consists of a single 8-byte integer followed by an even number -** of 4-byte coordinates. For leaf nodes the integer is the rowid -** of a record. For internal nodes it is the node number of a -** child page. +** For the time being, all JSON is stored as pure text. (We might add +** a JSONB type in the future which stores a binary encoding of JSON in +** a BLOB, but there is no support for JSONB in the current implementation. +** This implementation parses JSON text at 250 MB/s, so it is hard to see +** how JSONB might improve on that.) */ - -#if !defined(SQLITE_CORE) \ - || (defined(SQLITE_ENABLE_RTREE) && !defined(SQLITE_OMIT_VIRTUALTABLE)) - -#ifndef SQLITE_CORE -/* #include "sqlite3ext.h" */ - SQLITE_EXTENSION_INIT1 -#else -/* #include "sqlite3.h" */ +#if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_JSON1) +#if !defined(SQLITEINT_H) +/* #include "sqlite3ext.h" */ #endif - -/* #include */ +SQLITE_EXTENSION_INIT1 /* #include */ -/* #include */ +/* #include */ +/* #include */ +/* #include */ -#ifndef SQLITE_AMALGAMATION -#include "sqlite3rtree.h" -typedef sqlite3_int64 i64; -typedef sqlite3_uint64 u64; -typedef unsigned char u8; -typedef unsigned short u16; -typedef unsigned int u32; +/* Mark a function parameter as unused, to suppress nuisance compiler +** warnings. */ +#ifndef UNUSED_PARAM +# define UNUSED_PARAM(X) (void)(X) #endif -/* The following macro is used to suppress compiler warnings. -*/ -#ifndef UNUSED_PARAMETER -# define UNUSED_PARAMETER(x) (void)(x) +#ifndef LARGEST_INT64 +# define LARGEST_INT64 (0xffffffff|(((sqlite3_int64)0x7fffffff)<<32)) +# define SMALLEST_INT64 (((sqlite3_int64)-1) - LARGEST_INT64) #endif -typedef struct Rtree Rtree; -typedef struct RtreeCursor RtreeCursor; -typedef struct RtreeNode RtreeNode; -typedef struct RtreeCell RtreeCell; -typedef struct RtreeConstraint RtreeConstraint; -typedef struct RtreeMatchArg RtreeMatchArg; -typedef struct RtreeGeomCallback RtreeGeomCallback; -typedef union RtreeCoord RtreeCoord; -typedef struct RtreeSearchPoint RtreeSearchPoint; - -/* The rtree may have between 1 and RTREE_MAX_DIMENSIONS dimensions. */ -#define RTREE_MAX_DIMENSIONS 5 - -/* Size of hash table Rtree.aHash. This hash table is not expected to -** ever contain very many entries, so a fixed number of buckets is -** used. -*/ -#define HASHSIZE 97 - -/* The xBestIndex method of this virtual table requires an estimate of -** the number of rows in the virtual table to calculate the costs of -** various strategies. If possible, this estimate is loaded from the -** sqlite_stat1 table (with RTREE_MIN_ROWEST as a hard-coded minimum). -** Otherwise, if no sqlite_stat1 entry is available, use -** RTREE_DEFAULT_ROWEST. -*/ -#define RTREE_DEFAULT_ROWEST 1048576 -#define RTREE_MIN_ROWEST 100 - -/* -** An rtree virtual-table object. -*/ -struct Rtree { - sqlite3_vtab base; /* Base class. Must be first */ - sqlite3 *db; /* Host database connection */ - int iNodeSize; /* Size in bytes of each node in the node table */ - u8 nDim; /* Number of dimensions */ - u8 nDim2; /* Twice the number of dimensions */ - u8 eCoordType; /* RTREE_COORD_REAL32 or RTREE_COORD_INT32 */ - u8 nBytesPerCell; /* Bytes consumed per cell */ - u8 inWrTrans; /* True if inside write transaction */ - int iDepth; /* Current depth of the r-tree structure */ - char *zDb; /* Name of database containing r-tree table */ - char *zName; /* Name of r-tree table */ - u32 nBusy; /* Current number of users of this structure */ - i64 nRowEst; /* Estimated number of rows in this table */ - u32 nCursor; /* Number of open cursors */ - - /* List of nodes removed during a CondenseTree operation. List is - ** linked together via the pointer normally used for hash chains - - ** RtreeNode.pNext. RtreeNode.iNode stores the depth of the sub-tree - ** headed by the node (leaf nodes have RtreeNode.iNode==0). - */ - RtreeNode *pDeleted; - int iReinsertHeight; /* Height of sub-trees Reinsert() has run on */ - - /* Blob I/O on xxx_node */ - sqlite3_blob *pNodeBlob; - - /* Statements to read/write/delete a record from xxx_node */ - sqlite3_stmt *pWriteNode; - sqlite3_stmt *pDeleteNode; - - /* Statements to read/write/delete a record from xxx_rowid */ - sqlite3_stmt *pReadRowid; - sqlite3_stmt *pWriteRowid; - sqlite3_stmt *pDeleteRowid; - - /* Statements to read/write/delete a record from xxx_parent */ - sqlite3_stmt *pReadParent; - sqlite3_stmt *pWriteParent; - sqlite3_stmt *pDeleteParent; - - RtreeNode *aHash[HASHSIZE]; /* Hash table of in-memory nodes. */ -}; - -/* Possible values for Rtree.eCoordType: */ -#define RTREE_COORD_REAL32 0 -#define RTREE_COORD_INT32 1 - /* -** If SQLITE_RTREE_INT_ONLY is defined, then this virtual table will -** only deal with integer coordinates. No floating point operations -** will be done. +** Versions of isspace(), isalnum() and isdigit() to which it is safe +** to pass signed char values. */ -#ifdef SQLITE_RTREE_INT_ONLY - typedef sqlite3_int64 RtreeDValue; /* High accuracy coordinate */ - typedef int RtreeValue; /* Low accuracy coordinate */ -# define RTREE_ZERO 0 +#ifdef sqlite3Isdigit + /* Use the SQLite core versions if this routine is part of the + ** SQLite amalgamation */ +# define safe_isdigit(x) sqlite3Isdigit(x) +# define safe_isalnum(x) sqlite3Isalnum(x) +# define safe_isxdigit(x) sqlite3Isxdigit(x) #else - typedef double RtreeDValue; /* High accuracy coordinate */ - typedef float RtreeValue; /* Low accuracy coordinate */ -# define RTREE_ZERO 0.0 + /* Use the standard library for separate compilation */ +#include /* amalgamator: keep */ +# define safe_isdigit(x) isdigit((unsigned char)(x)) +# define safe_isalnum(x) isalnum((unsigned char)(x)) +# define safe_isxdigit(x) isxdigit((unsigned char)(x)) #endif /* -** When doing a search of an r-tree, instances of the following structure -** record intermediate results from the tree walk. -** -** The id is always a node-id. For iLevel>=1 the id is the node-id of -** the node that the RtreeSearchPoint represents. When iLevel==0, however, -** the id is of the parent node and the cell that RtreeSearchPoint -** represents is the iCell-th entry in the parent node. +** Growing our own isspace() routine this way is twice as fast as +** the library isspace() function, resulting in a 7% overall performance +** increase for the parser. (Ubuntu14.10 gcc 4.8.4 x64 with -Os). */ -struct RtreeSearchPoint { - RtreeDValue rScore; /* The score for this node. Smallest goes first. */ - sqlite3_int64 id; /* Node ID */ - u8 iLevel; /* 0=entries. 1=leaf node. 2+ for higher */ - u8 eWithin; /* PARTLY_WITHIN or FULLY_WITHIN */ - u8 iCell; /* Cell index within the node */ +static const char jsonIsSpace[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; +#define safe_isspace(x) (jsonIsSpace[(unsigned char)x]) -/* -** The minimum number of cells allowed for a node is a third of the -** maximum. In Gutman's notation: -** -** m = M/3 -** -** If an R*-tree "Reinsert" operation is required, the same number of -** cells are removed from the overfull node and reinserted into the tree. -*/ -#define RTREE_MINCELLS(p) ((((p)->iNodeSize-4)/(p)->nBytesPerCell)/3) -#define RTREE_REINSERT(p) RTREE_MINCELLS(p) -#define RTREE_MAXCELLS 51 - -/* -** The smallest possible node-size is (512-64)==448 bytes. And the largest -** supported cell size is 48 bytes (8 byte rowid + ten 4 byte coordinates). -** Therefore all non-root nodes must contain at least 3 entries. Since -** 3^40 is greater than 2^64, an r-tree structure always has a depth of -** 40 or less. -*/ -#define RTREE_MAX_DEPTH 40 +#ifndef SQLITE_AMALGAMATION + /* Unsigned integer types. These are already defined in the sqliteInt.h, + ** but the definitions need to be repeated for separate compilation. */ + typedef sqlite3_uint64 u64; + typedef unsigned int u32; + typedef unsigned short int u16; + typedef unsigned char u8; +#endif +/* Objects */ +typedef struct JsonString JsonString; +typedef struct JsonNode JsonNode; +typedef struct JsonParse JsonParse; -/* -** Number of entries in the cursor RtreeNode cache. The first entry is -** used to cache the RtreeNode for RtreeCursor.sPoint. The remaining -** entries cache the RtreeNode for the first elements of the priority queue. +/* An instance of this object represents a JSON string +** under construction. Really, this is a generic string accumulator +** that can be and is used to create strings other than JSON. */ -#define RTREE_CACHE_SZ 5 +struct JsonString { + sqlite3_context *pCtx; /* Function context - put error messages here */ + char *zBuf; /* Append JSON content here */ + u64 nAlloc; /* Bytes of storage available in zBuf[] */ + u64 nUsed; /* Bytes of zBuf[] currently used */ + u8 bStatic; /* True if zBuf is static space */ + u8 bErr; /* True if an error has been encountered */ + char zSpace[100]; /* Initial static space */ +}; -/* -** An rtree cursor object. +/* JSON type values */ -struct RtreeCursor { - sqlite3_vtab_cursor base; /* Base class. Must be first */ - u8 atEOF; /* True if at end of search */ - u8 bPoint; /* True if sPoint is valid */ - int iStrategy; /* Copy of idxNum search parameter */ - int nConstraint; /* Number of entries in aConstraint */ - RtreeConstraint *aConstraint; /* Search constraints. */ - int nPointAlloc; /* Number of slots allocated for aPoint[] */ - int nPoint; /* Number of slots used in aPoint[] */ - int mxLevel; /* iLevel value for root of the tree */ - RtreeSearchPoint *aPoint; /* Priority queue for search points */ - RtreeSearchPoint sPoint; /* Cached next search point */ - RtreeNode *aNode[RTREE_CACHE_SZ]; /* Rtree node cache */ - u32 anQueue[RTREE_MAX_DEPTH+1]; /* Number of queued entries by iLevel */ -}; +#define JSON_NULL 0 +#define JSON_TRUE 1 +#define JSON_FALSE 2 +#define JSON_INT 3 +#define JSON_REAL 4 +#define JSON_STRING 5 +#define JSON_ARRAY 6 +#define JSON_OBJECT 7 -/* Return the Rtree of a RtreeCursor */ -#define RTREE_OF_CURSOR(X) ((Rtree*)((X)->base.pVtab)) +/* The "subtype" set for JSON values */ +#define JSON_SUBTYPE 74 /* Ascii for "J" */ /* -** A coordinate can be either a floating point number or a integer. All -** coordinates within a single R-Tree are always of the same time. +** Names of the various JSON types: */ -union RtreeCoord { - RtreeValue f; /* Floating point value */ - int i; /* Integer value */ - u32 u; /* Unsigned for byte-order conversions */ +static const char * const jsonType[] = { + "null", "true", "false", "integer", "real", "text", "array", "object" }; -/* -** The argument is an RtreeCoord. Return the value stored within the RtreeCoord -** formatted as a RtreeDValue (double or int64). This macro assumes that local -** variable pRtree points to the Rtree structure associated with the -** RtreeCoord. +/* Bit values for the JsonNode.jnFlag field */ -#ifdef SQLITE_RTREE_INT_ONLY -# define DCOORD(coord) ((RtreeDValue)coord.i) -#else -# define DCOORD(coord) ( \ - (pRtree->eCoordType==RTREE_COORD_REAL32) ? \ - ((double)coord.f) : \ - ((double)coord.i) \ - ) -#endif +#define JNODE_RAW 0x01 /* Content is raw, not JSON encoded */ +#define JNODE_ESCAPE 0x02 /* Content is text with \ escapes */ +#define JNODE_REMOVE 0x04 /* Do not output */ +#define JNODE_REPLACE 0x08 /* Replace with JsonNode.u.iReplace */ +#define JNODE_PATCH 0x10 /* Patch with JsonNode.u.pPatch */ +#define JNODE_APPEND 0x20 /* More ARRAY/OBJECT entries at u.iAppend */ +#define JNODE_LABEL 0x40 /* Is a label of an object */ -/* -** A search constraint. + +/* A single node of parsed JSON */ -struct RtreeConstraint { - int iCoord; /* Index of constrained coordinate */ - int op; /* Constraining operation */ +struct JsonNode { + u8 eType; /* One of the JSON_ type values */ + u8 jnFlags; /* JNODE flags */ + u32 n; /* Bytes of content, or number of sub-nodes */ union { - RtreeDValue rValue; /* Constraint value. */ - int (*xGeom)(sqlite3_rtree_geometry*,int,RtreeDValue*,int*); - int (*xQueryFunc)(sqlite3_rtree_query_info*); + const char *zJContent; /* Content for INT, REAL, and STRING */ + u32 iAppend; /* More terms for ARRAY and OBJECT */ + u32 iKey; /* Key for ARRAY objects in json_tree() */ + u32 iReplace; /* Replacement content for JNODE_REPLACE */ + JsonNode *pPatch; /* Node chain of patch for JNODE_PATCH */ } u; - sqlite3_rtree_query_info *pInfo; /* xGeom and xQueryFunc argument */ -}; - -/* Possible values for RtreeConstraint.op */ -#define RTREE_EQ 0x41 /* A */ -#define RTREE_LE 0x42 /* B */ -#define RTREE_LT 0x43 /* C */ -#define RTREE_GE 0x44 /* D */ -#define RTREE_GT 0x45 /* E */ -#define RTREE_MATCH 0x46 /* F: Old-style sqlite3_rtree_geometry_callback() */ -#define RTREE_QUERY 0x47 /* G: New-style sqlite3_rtree_query_callback() */ - - -/* -** An rtree structure node. -*/ -struct RtreeNode { - RtreeNode *pParent; /* Parent node */ - i64 iNode; /* The node number */ - int nRef; /* Number of references to this node */ - int isDirty; /* True if the node needs to be written to disk */ - u8 *zData; /* Content of the node, as should be on disk */ - RtreeNode *pNext; /* Next node in this hash collision chain */ }; -/* Return the number of cells in a node */ -#define NCELL(pNode) readInt16(&(pNode)->zData[2]) - -/* -** A single cell from a node, deserialized +/* A completely parsed JSON string */ -struct RtreeCell { - i64 iRowid; /* Node or entry ID */ - RtreeCoord aCoord[RTREE_MAX_DIMENSIONS*2]; /* Bounding box coordinates */ +struct JsonParse { + u32 nNode; /* Number of slots of aNode[] used */ + u32 nAlloc; /* Number of slots of aNode[] allocated */ + JsonNode *aNode; /* Array of nodes containing the parse */ + const char *zJson; /* Original JSON string */ + u32 *aUp; /* Index of parent of each node */ + u8 oom; /* Set to true if out of memory */ + u8 nErr; /* Number of errors seen */ + u16 iDepth; /* Nesting depth */ + int nJson; /* Length of the zJson string in bytes */ + u32 iHold; /* Replace cache line with the lowest iHold value */ }; - /* -** This object becomes the sqlite3_user_data() for the SQL functions -** that are created by sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() and which appear on the right of MATCH -** operators in order to constrain a search. +** Maximum nesting depth of JSON for this implementation. ** -** xGeom and xQueryFunc are the callback functions. Exactly one of -** xGeom and xQueryFunc fields is non-NULL, depending on whether the -** SQL function was created using sqlite3_rtree_geometry_callback() or -** sqlite3_rtree_query_callback(). -** -** This object is deleted automatically by the destructor mechanism in -** sqlite3_create_function_v2(). -*/ -struct RtreeGeomCallback { - int (*xGeom)(sqlite3_rtree_geometry*, int, RtreeDValue*, int*); - int (*xQueryFunc)(sqlite3_rtree_query_info*); - void (*xDestructor)(void*); - void *pContext; -}; - -/* -** An instance of this structure (in the form of a BLOB) is returned by -** the SQL functions that sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() create, and is read as the right-hand -** operand to the MATCH operator of an R-Tree. +** This limit is needed to avoid a stack overflow in the recursive +** descent parser. A depth of 2000 is far deeper than any sane JSON +** should go. */ -struct RtreeMatchArg { - u32 iSize; /* Size of this object */ - RtreeGeomCallback cb; /* Info about the callback functions */ - int nParam; /* Number of parameters to the SQL function */ - sqlite3_value **apSqlParam; /* Original SQL parameter values */ - RtreeDValue aParam[1]; /* Values for parameters to the SQL function */ -}; +#define JSON_MAX_DEPTH 2000 -#ifndef MAX -# define MAX(x,y) ((x) < (y) ? (y) : (x)) -#endif -#ifndef MIN -# define MIN(x,y) ((x) > (y) ? (y) : (x)) -#endif +/************************************************************************** +** Utility routines for dealing with JsonString objects +**************************************************************************/ -/* What version of GCC is being used. 0 means GCC is not being used . -** Note that the GCC_VERSION macro will also be set correctly when using -** clang, since clang works hard to be gcc compatible. So the gcc -** optimizations will also work when compiling with clang. +/* Set the JsonString object to an empty string */ -#ifndef GCC_VERSION -#if defined(__GNUC__) && !defined(SQLITE_DISABLE_INTRINSIC) -# define GCC_VERSION (__GNUC__*1000000+__GNUC_MINOR__*1000+__GNUC_PATCHLEVEL__) -#else -# define GCC_VERSION 0 -#endif -#endif +static void jsonZero(JsonString *p){ + p->zBuf = p->zSpace; + p->nAlloc = sizeof(p->zSpace); + p->nUsed = 0; + p->bStatic = 1; +} -/* The testcase() macro should already be defined in the amalgamation. If -** it is not, make it a no-op. +/* Initialize the JsonString object */ -#ifndef SQLITE_AMALGAMATION -# define testcase(X) -#endif +static void jsonInit(JsonString *p, sqlite3_context *pCtx){ + p->pCtx = pCtx; + p->bErr = 0; + jsonZero(p); +} -/* -** Macros to determine whether the machine is big or little endian, -** and whether or not that determination is run-time or compile-time. -** -** For best performance, an attempt is made to guess at the byte-order -** using C-preprocessor macros. If that is unsuccessful, or if -** -DSQLITE_RUNTIME_BYTEORDER=1 is set, then byte-order is determined -** at run-time. -*/ -#ifndef SQLITE_BYTEORDER -#if defined(i386) || defined(__i386__) || defined(_M_IX86) || \ - defined(__x86_64) || defined(__x86_64__) || defined(_M_X64) || \ - defined(_M_AMD64) || defined(_M_ARM) || defined(__x86) || \ - defined(__arm__) -# define SQLITE_BYTEORDER 1234 -#elif defined(sparc) || defined(__ppc__) -# define SQLITE_BYTEORDER 4321 -#else -# define SQLITE_BYTEORDER 0 /* 0 means "unknown at compile-time" */ -#endif -#endif +/* Free all allocated memory and reset the JsonString object back to its +** initial state. +*/ +static void jsonReset(JsonString *p){ + if( !p->bStatic ) sqlite3_free(p->zBuf); + jsonZero(p); +} -/* What version of MSVC is being used. 0 means MSVC is not being used */ -#ifndef MSVC_VERSION -#if defined(_MSC_VER) && !defined(SQLITE_DISABLE_INTRINSIC) -# define MSVC_VERSION _MSC_VER -#else -# define MSVC_VERSION 0 -#endif -#endif -/* -** Functions to deserialize a 16 bit integer, 32 bit real number and -** 64 bit integer. The deserialized value is returned. +/* Report an out-of-memory (OOM) condition */ -static int readInt16(u8 *p){ - return (p[0]<<8) + p[1]; -} -static void readCoord(u8 *p, RtreeCoord *pCoord){ - assert( ((((char*)p) - (char*)0)&3)==0 ); /* p is always 4-byte aligned */ -#if SQLITE_BYTEORDER==1234 && MSVC_VERSION>=1300 - pCoord->u = _byteswap_ulong(*(u32*)p); -#elif SQLITE_BYTEORDER==1234 && GCC_VERSION>=4003000 - pCoord->u = __builtin_bswap32(*(u32*)p); -#elif SQLITE_BYTEORDER==4321 - pCoord->u = *(u32*)p; -#else - pCoord->u = ( - (((u32)p[0]) << 24) + - (((u32)p[1]) << 16) + - (((u32)p[2]) << 8) + - (((u32)p[3]) << 0) - ); -#endif -} -static i64 readInt64(u8 *p){ -#if SQLITE_BYTEORDER==1234 && MSVC_VERSION>=1300 - u64 x; - memcpy(&x, p, 8); - return (i64)_byteswap_uint64(x); -#elif SQLITE_BYTEORDER==1234 && GCC_VERSION>=4003000 - u64 x; - memcpy(&x, p, 8); - return (i64)__builtin_bswap64(x); -#elif SQLITE_BYTEORDER==4321 - i64 x; - memcpy(&x, p, 8); - return x; -#else - return (i64)( - (((u64)p[0]) << 56) + - (((u64)p[1]) << 48) + - (((u64)p[2]) << 40) + - (((u64)p[3]) << 32) + - (((u64)p[4]) << 24) + - (((u64)p[5]) << 16) + - (((u64)p[6]) << 8) + - (((u64)p[7]) << 0) - ); -#endif +static void jsonOom(JsonString *p){ + p->bErr = 1; + sqlite3_result_error_nomem(p->pCtx); + jsonReset(p); } -/* -** Functions to serialize a 16 bit integer, 32 bit real number and -** 64 bit integer. The value returned is the number of bytes written -** to the argument buffer (always 2, 4 and 8 respectively). +/* Enlarge pJson->zBuf so that it can hold at least N more bytes. +** Return zero on success. Return non-zero on an OOM error */ -static void writeInt16(u8 *p, int i){ - p[0] = (i>> 8)&0xFF; - p[1] = (i>> 0)&0xFF; +static int jsonGrow(JsonString *p, u32 N){ + u64 nTotal = NnAlloc ? p->nAlloc*2 : p->nAlloc+N+10; + char *zNew; + if( p->bStatic ){ + if( p->bErr ) return 1; + zNew = sqlite3_malloc64(nTotal); + if( zNew==0 ){ + jsonOom(p); + return SQLITE_NOMEM; + } + memcpy(zNew, p->zBuf, (size_t)p->nUsed); + p->zBuf = zNew; + p->bStatic = 0; + }else{ + zNew = sqlite3_realloc64(p->zBuf, nTotal); + if( zNew==0 ){ + jsonOom(p); + return SQLITE_NOMEM; + } + p->zBuf = zNew; + } + p->nAlloc = nTotal; + return SQLITE_OK; } -static int writeCoord(u8 *p, RtreeCoord *pCoord){ - u32 i; - assert( ((((char*)p) - (char*)0)&3)==0 ); /* p is always 4-byte aligned */ - assert( sizeof(RtreeCoord)==4 ); - assert( sizeof(u32)==4 ); -#if SQLITE_BYTEORDER==1234 && GCC_VERSION>=4003000 - i = __builtin_bswap32(pCoord->u); - memcpy(p, &i, 4); -#elif SQLITE_BYTEORDER==1234 && MSVC_VERSION>=1300 - i = _byteswap_ulong(pCoord->u); - memcpy(p, &i, 4); -#elif SQLITE_BYTEORDER==4321 - i = pCoord->u; - memcpy(p, &i, 4); -#else - i = pCoord->u; - p[0] = (i>>24)&0xFF; - p[1] = (i>>16)&0xFF; - p[2] = (i>> 8)&0xFF; - p[3] = (i>> 0)&0xFF; -#endif - return 4; + +/* Append N bytes from zIn onto the end of the JsonString string. +*/ +static void jsonAppendRaw(JsonString *p, const char *zIn, u32 N){ + if( (N+p->nUsed >= p->nAlloc) && jsonGrow(p,N)!=0 ) return; + memcpy(p->zBuf+p->nUsed, zIn, N); + p->nUsed += N; } -static int writeInt64(u8 *p, i64 i){ -#if SQLITE_BYTEORDER==1234 && GCC_VERSION>=4003000 - i = (i64)__builtin_bswap64((u64)i); - memcpy(p, &i, 8); -#elif SQLITE_BYTEORDER==1234 && MSVC_VERSION>=1300 - i = (i64)_byteswap_uint64((u64)i); - memcpy(p, &i, 8); -#elif SQLITE_BYTEORDER==4321 - memcpy(p, &i, 8); -#else - p[0] = (i>>56)&0xFF; - p[1] = (i>>48)&0xFF; - p[2] = (i>>40)&0xFF; - p[3] = (i>>32)&0xFF; - p[4] = (i>>24)&0xFF; - p[5] = (i>>16)&0xFF; - p[6] = (i>> 8)&0xFF; - p[7] = (i>> 0)&0xFF; -#endif - return 8; + +/* Append formatted text (not to exceed N bytes) to the JsonString. +*/ +static void jsonPrintf(int N, JsonString *p, const char *zFormat, ...){ + va_list ap; + if( (p->nUsed + N >= p->nAlloc) && jsonGrow(p, N) ) return; + va_start(ap, zFormat); + sqlite3_vsnprintf(N, p->zBuf+p->nUsed, zFormat, ap); + va_end(ap); + p->nUsed += (int)strlen(p->zBuf+p->nUsed); } -/* -** Increment the reference count of node p. +/* Append a single character */ -static void nodeReference(RtreeNode *p){ - if( p ){ - p->nRef++; - } +static void jsonAppendChar(JsonString *p, char c){ + if( p->nUsed>=p->nAlloc && jsonGrow(p,1)!=0 ) return; + p->zBuf[p->nUsed++] = c; } -/* -** Clear the content of node p (set all bytes to 0x00). +/* Append a comma separator to the output buffer, if the previous +** character is not '[' or '{'. */ -static void nodeZero(Rtree *pRtree, RtreeNode *p){ - memset(&p->zData[2], 0, pRtree->iNodeSize-2); - p->isDirty = 1; +static void jsonAppendSeparator(JsonString *p){ + char c; + if( p->nUsed==0 ) return; + c = p->zBuf[p->nUsed-1]; + if( c!='[' && c!='{' ) jsonAppendChar(p, ','); } -/* -** Given a node number iNode, return the corresponding key to use -** in the Rtree.aHash table. +/* Append the N-byte string in zIn to the end of the JsonString string +** under construction. Enclose the string in "..." and escape +** any double-quotes or backslash characters contained within the +** string. */ -static int nodeHash(i64 iNode){ - return iNode % HASHSIZE; +static void jsonAppendString(JsonString *p, const char *zIn, u32 N){ + u32 i; + if( (N+p->nUsed+2 >= p->nAlloc) && jsonGrow(p,N+2)!=0 ) return; + p->zBuf[p->nUsed++] = '"'; + for(i=0; inUsed+N+3-i > p->nAlloc) && jsonGrow(p,N+3-i)!=0 ) return; + p->zBuf[p->nUsed++] = '\\'; + }else if( c<=0x1f ){ + static const char aSpecial[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 'b', 't', 'n', 0, 'f', 'r', 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + assert( sizeof(aSpecial)==32 ); + assert( aSpecial['\b']=='b' ); + assert( aSpecial['\f']=='f' ); + assert( aSpecial['\n']=='n' ); + assert( aSpecial['\r']=='r' ); + assert( aSpecial['\t']=='t' ); + if( aSpecial[c] ){ + c = aSpecial[c]; + goto json_simple_escape; + } + if( (p->nUsed+N+7+i > p->nAlloc) && jsonGrow(p,N+7-i)!=0 ) return; + p->zBuf[p->nUsed++] = '\\'; + p->zBuf[p->nUsed++] = 'u'; + p->zBuf[p->nUsed++] = '0'; + p->zBuf[p->nUsed++] = '0'; + p->zBuf[p->nUsed++] = '0' + (c>>4); + c = "0123456789abcdef"[c&0xf]; + } + p->zBuf[p->nUsed++] = c; + } + p->zBuf[p->nUsed++] = '"'; + assert( p->nUsednAlloc ); } /* -** Search the node hash table for node iNode. If found, return a pointer -** to it. Otherwise, return 0. +** Append a function parameter value to the JSON string under +** construction. */ -static RtreeNode *nodeHashLookup(Rtree *pRtree, i64 iNode){ - RtreeNode *p; - for(p=pRtree->aHash[nodeHash(iNode)]; p && p->iNode!=iNode; p=p->pNext); - return p; +static void jsonAppendValue( + JsonString *p, /* Append to this JSON string */ + sqlite3_value *pValue /* Value to append */ +){ + switch( sqlite3_value_type(pValue) ){ + case SQLITE_NULL: { + jsonAppendRaw(p, "null", 4); + break; + } + case SQLITE_INTEGER: + case SQLITE_FLOAT: { + const char *z = (const char*)sqlite3_value_text(pValue); + u32 n = (u32)sqlite3_value_bytes(pValue); + jsonAppendRaw(p, z, n); + break; + } + case SQLITE_TEXT: { + const char *z = (const char*)sqlite3_value_text(pValue); + u32 n = (u32)sqlite3_value_bytes(pValue); + if( sqlite3_value_subtype(pValue)==JSON_SUBTYPE ){ + jsonAppendRaw(p, z, n); + }else{ + jsonAppendString(p, z, n); + } + break; + } + default: { + if( p->bErr==0 ){ + sqlite3_result_error(p->pCtx, "JSON cannot hold BLOB values", -1); + p->bErr = 2; + jsonReset(p); + } + break; + } + } } -/* -** Add node pNode to the node hash table. + +/* Make the JSON in p the result of the SQL function. */ -static void nodeHashInsert(Rtree *pRtree, RtreeNode *pNode){ - int iHash; - assert( pNode->pNext==0 ); - iHash = nodeHash(pNode->iNode); - pNode->pNext = pRtree->aHash[iHash]; - pRtree->aHash[iHash] = pNode; +static void jsonResult(JsonString *p){ + if( p->bErr==0 ){ + sqlite3_result_text64(p->pCtx, p->zBuf, p->nUsed, + p->bStatic ? SQLITE_TRANSIENT : sqlite3_free, + SQLITE_UTF8); + jsonZero(p); + } + assert( p->bStatic ); } +/************************************************************************** +** Utility routines for dealing with JsonNode and JsonParse objects +**************************************************************************/ + /* -** Remove node pNode from the node hash table. +** Return the number of consecutive JsonNode slots need to represent +** the parsed JSON at pNode. The minimum answer is 1. For ARRAY and +** OBJECT types, the number might be larger. +** +** Appended elements are not counted. The value returned is the number +** by which the JsonNode counter should increment in order to go to the +** next peer value. */ -static void nodeHashDelete(Rtree *pRtree, RtreeNode *pNode){ - RtreeNode **pp; - if( pNode->iNode!=0 ){ - pp = &pRtree->aHash[nodeHash(pNode->iNode)]; - for( ; (*pp)!=pNode; pp = &(*pp)->pNext){ assert(*pp); } - *pp = pNode->pNext; - pNode->pNext = 0; - } +static u32 jsonNodeSize(JsonNode *pNode){ + return pNode->eType>=JSON_ARRAY ? pNode->n+1 : 1; } /* -** Allocate and return new r-tree node. Initially, (RtreeNode.iNode==0), -** indicating that node has not yet been assigned a node number. It is -** assigned a node number when nodeWrite() is called to write the -** node contents out to the database. +** Reclaim all memory allocated by a JsonParse object. But do not +** delete the JsonParse object itself. */ -static RtreeNode *nodeNew(Rtree *pRtree, RtreeNode *pParent){ - RtreeNode *pNode; - pNode = (RtreeNode *)sqlite3_malloc(sizeof(RtreeNode) + pRtree->iNodeSize); - if( pNode ){ - memset(pNode, 0, sizeof(RtreeNode) + pRtree->iNodeSize); - pNode->zData = (u8 *)&pNode[1]; - pNode->nRef = 1; - pNode->pParent = pParent; - pNode->isDirty = 1; - nodeReference(pParent); - } - return pNode; +static void jsonParseReset(JsonParse *pParse){ + sqlite3_free(pParse->aNode); + pParse->aNode = 0; + pParse->nNode = 0; + pParse->nAlloc = 0; + sqlite3_free(pParse->aUp); + pParse->aUp = 0; } /* -** Clear the Rtree.pNodeBlob object +** Free a JsonParse object that was obtained from sqlite3_malloc(). */ -static void nodeBlobReset(Rtree *pRtree){ - if( pRtree->pNodeBlob && pRtree->inWrTrans==0 && pRtree->nCursor==0 ){ - sqlite3_blob *pBlob = pRtree->pNodeBlob; - pRtree->pNodeBlob = 0; - sqlite3_blob_close(pBlob); - } +static void jsonParseFree(JsonParse *pParse){ + jsonParseReset(pParse); + sqlite3_free(pParse); } /* -** Obtain a reference to an r-tree node. +** Convert the JsonNode pNode into a pure JSON string and +** append to pOut. Subsubstructure is also included. Return +** the number of JsonNode objects that are encoded. */ -static int nodeAcquire( - Rtree *pRtree, /* R-tree structure */ - i64 iNode, /* Node number to load */ - RtreeNode *pParent, /* Either the parent node or NULL */ - RtreeNode **ppNode /* OUT: Acquired node */ +static void jsonRenderNode( + JsonNode *pNode, /* The node to render */ + JsonString *pOut, /* Write JSON here */ + sqlite3_value **aReplace /* Replacement values */ ){ - int rc = SQLITE_OK; - RtreeNode *pNode = 0; - - /* Check if the requested node is already in the hash table. If so, - ** increase its reference count and return it. - */ - if( (pNode = nodeHashLookup(pRtree, iNode)) ){ - assert( !pParent || !pNode->pParent || pNode->pParent==pParent ); - if( pParent && !pNode->pParent ){ - nodeReference(pParent); - pNode->pParent = pParent; + if( pNode->jnFlags & (JNODE_REPLACE|JNODE_PATCH) ){ + if( pNode->jnFlags & JNODE_REPLACE ){ + jsonAppendValue(pOut, aReplace[pNode->u.iReplace]); + return; } - pNode->nRef++; - *ppNode = pNode; - return SQLITE_OK; + pNode = pNode->u.pPatch; } - - if( pRtree->pNodeBlob ){ - sqlite3_blob *pBlob = pRtree->pNodeBlob; - pRtree->pNodeBlob = 0; - rc = sqlite3_blob_reopen(pBlob, iNode); - pRtree->pNodeBlob = pBlob; - if( rc ){ - nodeBlobReset(pRtree); - if( rc==SQLITE_NOMEM ) return SQLITE_NOMEM; + switch( pNode->eType ){ + default: { + assert( pNode->eType==JSON_NULL ); + jsonAppendRaw(pOut, "null", 4); + break; } - } - if( pRtree->pNodeBlob==0 ){ - char *zTab = sqlite3_mprintf("%s_node", pRtree->zName); - if( zTab==0 ) return SQLITE_NOMEM; - rc = sqlite3_blob_open(pRtree->db, pRtree->zDb, zTab, "data", iNode, 0, - &pRtree->pNodeBlob); - sqlite3_free(zTab); - } - if( rc ){ - nodeBlobReset(pRtree); - *ppNode = 0; - /* If unable to open an sqlite3_blob on the desired row, that can only - ** be because the shadow tables hold erroneous data. */ - if( rc==SQLITE_ERROR ) rc = SQLITE_CORRUPT_VTAB; - }else if( pRtree->iNodeSize==sqlite3_blob_bytes(pRtree->pNodeBlob) ){ - pNode = (RtreeNode *)sqlite3_malloc(sizeof(RtreeNode)+pRtree->iNodeSize); - if( !pNode ){ - rc = SQLITE_NOMEM; - }else{ - pNode->pParent = pParent; - pNode->zData = (u8 *)&pNode[1]; - pNode->nRef = 1; - pNode->iNode = iNode; - pNode->isDirty = 0; - pNode->pNext = 0; - rc = sqlite3_blob_read(pRtree->pNodeBlob, pNode->zData, - pRtree->iNodeSize, 0); - nodeReference(pParent); + case JSON_TRUE: { + jsonAppendRaw(pOut, "true", 4); + break; } - } - - /* If the root node was just loaded, set pRtree->iDepth to the height - ** of the r-tree structure. A height of zero means all data is stored on - ** the root node. A height of one means the children of the root node - ** are the leaves, and so on. If the depth as specified on the root node - ** is greater than RTREE_MAX_DEPTH, the r-tree structure must be corrupt. - */ - if( pNode && iNode==1 ){ - pRtree->iDepth = readInt16(pNode->zData); - if( pRtree->iDepth>RTREE_MAX_DEPTH ){ - rc = SQLITE_CORRUPT_VTAB; + case JSON_FALSE: { + jsonAppendRaw(pOut, "false", 5); + break; } - } - - /* If no error has occurred so far, check if the "number of entries" - ** field on the node is too large. If so, set the return code to - ** SQLITE_CORRUPT_VTAB. - */ - if( pNode && rc==SQLITE_OK ){ - if( NCELL(pNode)>((pRtree->iNodeSize-4)/pRtree->nBytesPerCell) ){ - rc = SQLITE_CORRUPT_VTAB; + case JSON_STRING: { + if( pNode->jnFlags & JNODE_RAW ){ + jsonAppendString(pOut, pNode->u.zJContent, pNode->n); + break; + } + /* Fall through into the next case */ } - } - - if( rc==SQLITE_OK ){ - if( pNode!=0 ){ - nodeHashInsert(pRtree, pNode); - }else{ - rc = SQLITE_CORRUPT_VTAB; + case JSON_REAL: + case JSON_INT: { + jsonAppendRaw(pOut, pNode->u.zJContent, pNode->n); + break; + } + case JSON_ARRAY: { + u32 j = 1; + jsonAppendChar(pOut, '['); + for(;;){ + while( j<=pNode->n ){ + if( (pNode[j].jnFlags & JNODE_REMOVE)==0 ){ + jsonAppendSeparator(pOut); + jsonRenderNode(&pNode[j], pOut, aReplace); + } + j += jsonNodeSize(&pNode[j]); + } + if( (pNode->jnFlags & JNODE_APPEND)==0 ) break; + pNode = &pNode[pNode->u.iAppend]; + j = 1; + } + jsonAppendChar(pOut, ']'); + break; + } + case JSON_OBJECT: { + u32 j = 1; + jsonAppendChar(pOut, '{'); + for(;;){ + while( j<=pNode->n ){ + if( (pNode[j+1].jnFlags & JNODE_REMOVE)==0 ){ + jsonAppendSeparator(pOut); + jsonRenderNode(&pNode[j], pOut, aReplace); + jsonAppendChar(pOut, ':'); + jsonRenderNode(&pNode[j+1], pOut, aReplace); + } + j += 1 + jsonNodeSize(&pNode[j+1]); + } + if( (pNode->jnFlags & JNODE_APPEND)==0 ) break; + pNode = &pNode[pNode->u.iAppend]; + j = 1; + } + jsonAppendChar(pOut, '}'); + break; } - *ppNode = pNode; - }else{ - sqlite3_free(pNode); - *ppNode = 0; } - - return rc; } /* -** Overwrite cell iCell of node pNode with the contents of pCell. +** Return a JsonNode and all its descendents as a JSON string. */ -static void nodeOverwriteCell( - Rtree *pRtree, /* The overall R-Tree */ - RtreeNode *pNode, /* The node into which the cell is to be written */ - RtreeCell *pCell, /* The cell to write */ - int iCell /* Index into pNode into which pCell is written */ +static void jsonReturnJson( + JsonNode *pNode, /* Node to return */ + sqlite3_context *pCtx, /* Return value for this function */ + sqlite3_value **aReplace /* Array of replacement values */ ){ - int ii; - u8 *p = &pNode->zData[4 + pRtree->nBytesPerCell*iCell]; - p += writeInt64(p, pCell->iRowid); - for(ii=0; iinDim2; ii++){ - p += writeCoord(p, &pCell->aCoord[ii]); - } - pNode->isDirty = 1; + JsonString s; + jsonInit(&s, pCtx); + jsonRenderNode(pNode, &s, aReplace); + jsonResult(&s); + sqlite3_result_subtype(pCtx, JSON_SUBTYPE); } /* -** Remove the cell with index iCell from node pNode. +** Make the JsonNode the return value of the function. */ -static void nodeDeleteCell(Rtree *pRtree, RtreeNode *pNode, int iCell){ - u8 *pDst = &pNode->zData[4 + pRtree->nBytesPerCell*iCell]; - u8 *pSrc = &pDst[pRtree->nBytesPerCell]; - int nByte = (NCELL(pNode) - iCell - 1) * pRtree->nBytesPerCell; - memmove(pDst, pSrc, nByte); - writeInt16(&pNode->zData[2], NCELL(pNode)-1); - pNode->isDirty = 1; +static void jsonReturn( + JsonNode *pNode, /* Node to return */ + sqlite3_context *pCtx, /* Return value for this function */ + sqlite3_value **aReplace /* Array of replacement values */ +){ + switch( pNode->eType ){ + default: { + assert( pNode->eType==JSON_NULL ); + sqlite3_result_null(pCtx); + break; + } + case JSON_TRUE: { + sqlite3_result_int(pCtx, 1); + break; + } + case JSON_FALSE: { + sqlite3_result_int(pCtx, 0); + break; + } + case JSON_INT: { + sqlite3_int64 i = 0; + const char *z = pNode->u.zJContent; + if( z[0]=='-' ){ z++; } + while( z[0]>='0' && z[0]<='9' ){ + unsigned v = *(z++) - '0'; + if( i>=LARGEST_INT64/10 ){ + if( i>LARGEST_INT64/10 ) goto int_as_real; + if( z[0]>='0' && z[0]<='9' ) goto int_as_real; + if( v==9 ) goto int_as_real; + if( v==8 ){ + if( pNode->u.zJContent[0]=='-' ){ + sqlite3_result_int64(pCtx, SMALLEST_INT64); + goto int_done; + }else{ + goto int_as_real; + } + } + } + i = i*10 + v; + } + if( pNode->u.zJContent[0]=='-' ){ i = -i; } + sqlite3_result_int64(pCtx, i); + int_done: + break; + int_as_real: /* fall through to real */; + } + case JSON_REAL: { + double r; +#ifdef SQLITE_AMALGAMATION + const char *z = pNode->u.zJContent; + sqlite3AtoF(z, &r, sqlite3Strlen30(z), SQLITE_UTF8); +#else + r = strtod(pNode->u.zJContent, 0); +#endif + sqlite3_result_double(pCtx, r); + break; + } + case JSON_STRING: { +#if 0 /* Never happens because JNODE_RAW is only set by json_set(), + ** json_insert() and json_replace() and those routines do not + ** call jsonReturn() */ + if( pNode->jnFlags & JNODE_RAW ){ + sqlite3_result_text(pCtx, pNode->u.zJContent, pNode->n, + SQLITE_TRANSIENT); + }else +#endif + assert( (pNode->jnFlags & JNODE_RAW)==0 ); + if( (pNode->jnFlags & JNODE_ESCAPE)==0 ){ + /* JSON formatted without any backslash-escapes */ + sqlite3_result_text(pCtx, pNode->u.zJContent+1, pNode->n-2, + SQLITE_TRANSIENT); + }else{ + /* Translate JSON formatted string into raw text */ + u32 i; + u32 n = pNode->n; + const char *z = pNode->u.zJContent; + char *zOut; + u32 j; + zOut = sqlite3_malloc( n+1 ); + if( zOut==0 ){ + sqlite3_result_error_nomem(pCtx); + break; + } + for(i=1, j=0; i>6)); + zOut[j++] = 0x80 | (v&0x3f); + }else{ + zOut[j++] = (char)(0xe0 | (v>>12)); + zOut[j++] = 0x80 | ((v>>6)&0x3f); + zOut[j++] = 0x80 | (v&0x3f); + } + }else{ + if( c=='b' ){ + c = '\b'; + }else if( c=='f' ){ + c = '\f'; + }else if( c=='n' ){ + c = '\n'; + }else if( c=='r' ){ + c = '\r'; + }else if( c=='t' ){ + c = '\t'; + } + zOut[j++] = c; + } + } + } + zOut[j] = 0; + sqlite3_result_text(pCtx, zOut, j, sqlite3_free); + } + break; + } + case JSON_ARRAY: + case JSON_OBJECT: { + jsonReturnJson(pNode, pCtx, aReplace); + break; + } + } } +/* Forward reference */ +static int jsonParseAddNode(JsonParse*,u32,u32,const char*); + /* -** Insert the contents of cell pCell into node pNode. If the insert -** is successful, return SQLITE_OK. -** -** If there is not enough free space in pNode, return SQLITE_FULL. +** A macro to hint to the compiler that a function should not be +** inlined. */ -static int nodeInsertCell( - Rtree *pRtree, /* The overall R-Tree */ - RtreeNode *pNode, /* Write new cell into this node */ - RtreeCell *pCell /* The cell to be inserted */ -){ - int nCell; /* Current number of cells in pNode */ - int nMaxCell; /* Maximum number of cells for pNode */ +#if defined(__GNUC__) +# define JSON_NOINLINE __attribute__((noinline)) +#elif defined(_MSC_VER) && _MSC_VER>=1310 +# define JSON_NOINLINE __declspec(noinline) +#else +# define JSON_NOINLINE +#endif - nMaxCell = (pRtree->iNodeSize-4)/pRtree->nBytesPerCell; - nCell = NCELL(pNode); - assert( nCell<=nMaxCell ); - if( nCellzData[2], nCell+1); - pNode->isDirty = 1; +static JSON_NOINLINE int jsonParseAddNodeExpand( + JsonParse *pParse, /* Append the node to this object */ + u32 eType, /* Node type */ + u32 n, /* Content size or sub-node count */ + const char *zContent /* Content */ +){ + u32 nNew; + JsonNode *pNew; + assert( pParse->nNode>=pParse->nAlloc ); + if( pParse->oom ) return -1; + nNew = pParse->nAlloc*2 + 10; + pNew = sqlite3_realloc(pParse->aNode, sizeof(JsonNode)*nNew); + if( pNew==0 ){ + pParse->oom = 1; + return -1; } - - return (nCell==nMaxCell); + pParse->nAlloc = nNew; + pParse->aNode = pNew; + assert( pParse->nNodenAlloc ); + return jsonParseAddNode(pParse, eType, n, zContent); } /* -** If the node is dirty, write it out to the database. +** Create a new JsonNode instance based on the arguments and append that +** instance to the JsonParse. Return the index in pParse->aNode[] of the +** new node, or -1 if a memory allocation fails. */ -static int nodeWrite(Rtree *pRtree, RtreeNode *pNode){ - int rc = SQLITE_OK; - if( pNode->isDirty ){ - sqlite3_stmt *p = pRtree->pWriteNode; - if( pNode->iNode ){ - sqlite3_bind_int64(p, 1, pNode->iNode); - }else{ - sqlite3_bind_null(p, 1); - } - sqlite3_bind_blob(p, 2, pNode->zData, pRtree->iNodeSize, SQLITE_STATIC); - sqlite3_step(p); - pNode->isDirty = 0; - rc = sqlite3_reset(p); - if( pNode->iNode==0 && rc==SQLITE_OK ){ - pNode->iNode = sqlite3_last_insert_rowid(pRtree->db); - nodeHashInsert(pRtree, pNode); - } +static int jsonParseAddNode( + JsonParse *pParse, /* Append the node to this object */ + u32 eType, /* Node type */ + u32 n, /* Content size or sub-node count */ + const char *zContent /* Content */ +){ + JsonNode *p; + if( pParse->nNode>=pParse->nAlloc ){ + return jsonParseAddNodeExpand(pParse, eType, n, zContent); } - return rc; + p = &pParse->aNode[pParse->nNode]; + p->eType = (u8)eType; + p->jnFlags = 0; + p->n = n; + p->u.zJContent = zContent; + return pParse->nNode++; } /* -** Release a reference to a node. If the node is dirty and the reference -** count drops to zero, the node data is written to the database. +** Return true if z[] begins with 4 (or more) hexadecimal digits */ -static int nodeRelease(Rtree *pRtree, RtreeNode *pNode){ - int rc = SQLITE_OK; - if( pNode ){ - assert( pNode->nRef>0 ); - pNode->nRef--; - if( pNode->nRef==0 ){ - if( pNode->iNode==1 ){ - pRtree->iDepth = -1; +static int jsonIs4Hex(const char *z){ + int i; + for(i=0; i<4; i++) if( !safe_isxdigit(z[i]) ) return 0; + return 1; +} + +/* +** Parse a single JSON value which begins at pParse->zJson[i]. Return the +** index of the first character past the end of the value parsed. +** +** Return negative for a syntax error. Special cases: return -2 if the +** first non-whitespace character is '}' and return -3 if the first +** non-whitespace character is ']'. +*/ +static int jsonParseValue(JsonParse *pParse, u32 i){ + char c; + u32 j; + int iThis; + int x; + JsonNode *pNode; + const char *z = pParse->zJson; + while( safe_isspace(z[i]) ){ i++; } + if( (c = z[i])=='{' ){ + /* Parse object */ + iThis = jsonParseAddNode(pParse, JSON_OBJECT, 0, 0); + if( iThis<0 ) return -1; + for(j=i+1;;j++){ + while( safe_isspace(z[j]) ){ j++; } + if( ++pParse->iDepth > JSON_MAX_DEPTH ) return -1; + x = jsonParseValue(pParse, j); + if( x<0 ){ + pParse->iDepth--; + if( x==(-2) && pParse->nNode==(u32)iThis+1 ) return j+1; + return -1; } - if( pNode->pParent ){ - rc = nodeRelease(pRtree, pNode->pParent); + if( pParse->oom ) return -1; + pNode = &pParse->aNode[pParse->nNode-1]; + if( pNode->eType!=JSON_STRING ) return -1; + pNode->jnFlags |= JNODE_LABEL; + j = x; + while( safe_isspace(z[j]) ){ j++; } + if( z[j]!=':' ) return -1; + j++; + x = jsonParseValue(pParse, j); + pParse->iDepth--; + if( x<0 ) return -1; + j = x; + while( safe_isspace(z[j]) ){ j++; } + c = z[j]; + if( c==',' ) continue; + if( c!='}' ) return -1; + break; + } + pParse->aNode[iThis].n = pParse->nNode - (u32)iThis - 1; + return j+1; + }else if( c=='[' ){ + /* Parse array */ + iThis = jsonParseAddNode(pParse, JSON_ARRAY, 0, 0); + if( iThis<0 ) return -1; + for(j=i+1;;j++){ + while( safe_isspace(z[j]) ){ j++; } + if( ++pParse->iDepth > JSON_MAX_DEPTH ) return -1; + x = jsonParseValue(pParse, j); + pParse->iDepth--; + if( x<0 ){ + if( x==(-3) && pParse->nNode==(u32)iThis+1 ) return j+1; + return -1; } - if( rc==SQLITE_OK ){ - rc = nodeWrite(pRtree, pNode); + j = x; + while( safe_isspace(z[j]) ){ j++; } + c = z[j]; + if( c==',' ) continue; + if( c!=']' ) return -1; + break; + } + pParse->aNode[iThis].n = pParse->nNode - (u32)iThis - 1; + return j+1; + }else if( c=='"' ){ + /* Parse string */ + u8 jnFlags = 0; + j = i+1; + for(;;){ + c = z[j]; + if( (c & ~0x1f)==0 ){ + /* Control characters are not allowed in strings */ + return -1; } - nodeHashDelete(pRtree, pNode); - sqlite3_free(pNode); + if( c=='\\' ){ + c = z[++j]; + if( c=='"' || c=='\\' || c=='/' || c=='b' || c=='f' + || c=='n' || c=='r' || c=='t' + || (c=='u' && jsonIs4Hex(z+j+1)) ){ + jnFlags = JNODE_ESCAPE; + }else{ + return -1; + } + }else if( c=='"' ){ + break; + } + j++; + } + jsonParseAddNode(pParse, JSON_STRING, j+1-i, &z[i]); + if( !pParse->oom ) pParse->aNode[pParse->nNode-1].jnFlags = jnFlags; + return j+1; + }else if( c=='n' + && strncmp(z+i,"null",4)==0 + && !safe_isalnum(z[i+4]) ){ + jsonParseAddNode(pParse, JSON_NULL, 0, 0); + return i+4; + }else if( c=='t' + && strncmp(z+i,"true",4)==0 + && !safe_isalnum(z[i+4]) ){ + jsonParseAddNode(pParse, JSON_TRUE, 0, 0); + return i+4; + }else if( c=='f' + && strncmp(z+i,"false",5)==0 + && !safe_isalnum(z[i+5]) ){ + jsonParseAddNode(pParse, JSON_FALSE, 0, 0); + return i+5; + }else if( c=='-' || (c>='0' && c<='9') ){ + /* Parse number */ + u8 seenDP = 0; + u8 seenE = 0; + assert( '-' < '0' ); + if( c<='0' ){ + j = c=='-' ? i+1 : i; + if( z[j]=='0' && z[j+1]>='0' && z[j+1]<='9' ) return -1; + } + j = i+1; + for(;; j++){ + c = z[j]; + if( c>='0' && c<='9' ) continue; + if( c=='.' ){ + if( z[j-1]=='-' ) return -1; + if( seenDP ) return -1; + seenDP = 1; + continue; + } + if( c=='e' || c=='E' ){ + if( z[j-1]<'0' ) return -1; + if( seenE ) return -1; + seenDP = seenE = 1; + c = z[j+1]; + if( c=='+' || c=='-' ){ + j++; + c = z[j+1]; + } + if( c<'0' || c>'9' ) return -1; + continue; + } + break; } + if( z[j-1]<'0' ) return -1; + jsonParseAddNode(pParse, seenDP ? JSON_REAL : JSON_INT, + j - i, &z[i]); + return j; + }else if( c=='}' ){ + return -2; /* End of {...} */ + }else if( c==']' ){ + return -3; /* End of [...] */ + }else if( c==0 ){ + return 0; /* End of file */ + }else{ + return -1; /* Syntax error */ } - return rc; } /* -** Return the 64-bit integer value associated with cell iCell of -** node pNode. If pNode is a leaf node, this is a rowid. If it is -** an internal node, then the 64-bit integer is a child page number. +** Parse a complete JSON string. Return 0 on success or non-zero if there +** are any errors. If an error occurs, free all memory associated with +** pParse. +** +** pParse is uninitialized when this routine is called. */ -static i64 nodeGetRowid( - Rtree *pRtree, /* The overall R-Tree */ - RtreeNode *pNode, /* The node from which to extract the ID */ - int iCell /* The cell index from which to extract the ID */ +static int jsonParse( + JsonParse *pParse, /* Initialize and fill this JsonParse object */ + sqlite3_context *pCtx, /* Report errors here */ + const char *zJson /* Input JSON text to be parsed */ ){ - assert( iCellzData[4 + pRtree->nBytesPerCell*iCell]); + int i; + memset(pParse, 0, sizeof(*pParse)); + if( zJson==0 ) return 1; + pParse->zJson = zJson; + i = jsonParseValue(pParse, 0); + if( pParse->oom ) i = -1; + if( i>0 ){ + assert( pParse->iDepth==0 ); + while( safe_isspace(zJson[i]) ) i++; + if( zJson[i] ) i = -1; + } + if( i<=0 ){ + if( pCtx!=0 ){ + if( pParse->oom ){ + sqlite3_result_error_nomem(pCtx); + }else{ + sqlite3_result_error(pCtx, "malformed JSON", -1); + } + } + jsonParseReset(pParse); + return 1; + } + return 0; } -/* -** Return coordinate iCoord from cell iCell in node pNode. +/* Mark node i of pParse as being a child of iParent. Call recursively +** to fill in all the descendants of node i. */ -static void nodeGetCoord( - Rtree *pRtree, /* The overall R-Tree */ - RtreeNode *pNode, /* The node from which to extract a coordinate */ - int iCell, /* The index of the cell within the node */ - int iCoord, /* Which coordinate to extract */ - RtreeCoord *pCoord /* OUT: Space to write result to */ -){ - readCoord(&pNode->zData[12 + pRtree->nBytesPerCell*iCell + 4*iCoord], pCoord); +static void jsonParseFillInParentage(JsonParse *pParse, u32 i, u32 iParent){ + JsonNode *pNode = &pParse->aNode[i]; + u32 j; + pParse->aUp[i] = iParent; + switch( pNode->eType ){ + case JSON_ARRAY: { + for(j=1; j<=pNode->n; j += jsonNodeSize(pNode+j)){ + jsonParseFillInParentage(pParse, i+j, i); + } + break; + } + case JSON_OBJECT: { + for(j=1; j<=pNode->n; j += jsonNodeSize(pNode+j+1)+1){ + pParse->aUp[i+j] = i; + jsonParseFillInParentage(pParse, i+j+1, i); + } + break; + } + default: { + break; + } + } } /* -** Deserialize cell iCell of node pNode. Populate the structure pointed -** to by pCell with the results. +** Compute the parentage of all nodes in a completed parse. */ -static void nodeGetCell( - Rtree *pRtree, /* The overall R-Tree */ - RtreeNode *pNode, /* The node containing the cell to be read */ - int iCell, /* Index of the cell within the node */ - RtreeCell *pCell /* OUT: Write the cell contents here */ -){ - u8 *pData; - RtreeCoord *pCoord; - int ii = 0; - pCell->iRowid = nodeGetRowid(pRtree, pNode, iCell); - pData = pNode->zData + (12 + pRtree->nBytesPerCell*iCell); - pCoord = pCell->aCoord; - do{ - readCoord(pData, &pCoord[ii]); - readCoord(pData+4, &pCoord[ii+1]); - pData += 8; - ii += 2; - }while( iinDim2 ); +static int jsonParseFindParents(JsonParse *pParse){ + u32 *aUp; + assert( pParse->aUp==0 ); + aUp = pParse->aUp = sqlite3_malloc( sizeof(u32)*pParse->nNode ); + if( aUp==0 ){ + pParse->oom = 1; + return SQLITE_NOMEM; + } + jsonParseFillInParentage(pParse, 0, 0); + return SQLITE_OK; } - -/* Forward declaration for the function that does the work of -** the virtual table module xCreate() and xConnect() methods. +/* +** Magic number used for the JSON parse cache in sqlite3_get_auxdata() */ -static int rtreeInit( - sqlite3 *, void *, int, const char *const*, sqlite3_vtab **, char **, int -); +#define JSON_CACHE_ID (-429938) /* First cache entry */ +#define JSON_CACHE_SZ 4 /* Max number of cache entries */ -/* -** Rtree virtual table module xCreate method. +/* +** Obtain a complete parse of the JSON found in the first argument +** of the argv array. Use the sqlite3_get_auxdata() cache for this +** parse if it is available. If the cache is not available or if it +** is no longer valid, parse the JSON again and return the new parse, +** and also register the new parse so that it will be available for +** future sqlite3_get_auxdata() calls. */ -static int rtreeCreate( - sqlite3 *db, - void *pAux, - int argc, const char *const*argv, - sqlite3_vtab **ppVtab, - char **pzErr +static JsonParse *jsonParseCached( + sqlite3_context *pCtx, + sqlite3_value **argv, + sqlite3_context *pErrCtx ){ - return rtreeInit(db, pAux, argc, argv, ppVtab, pzErr, 1); + const char *zJson = (const char*)sqlite3_value_text(argv[0]); + int nJson = sqlite3_value_bytes(argv[0]); + JsonParse *p; + JsonParse *pMatch = 0; + int iKey; + int iMinKey = 0; + u32 iMinHold = 0xffffffff; + u32 iMaxHold = 0; + if( zJson==0 ) return 0; + for(iKey=0; iKeynJson==nJson + && memcmp(p->zJson,zJson,nJson)==0 + ){ + p->nErr = 0; + pMatch = p; + }else if( p->iHoldiHold; + iMinKey = iKey; + } + if( p->iHold>iMaxHold ){ + iMaxHold = p->iHold; + } + } + if( pMatch ){ + pMatch->nErr = 0; + pMatch->iHold = iMaxHold+1; + return pMatch; + } + p = sqlite3_malloc( sizeof(*p) + nJson + 1 ); + if( p==0 ){ + sqlite3_result_error_nomem(pCtx); + return 0; + } + memset(p, 0, sizeof(*p)); + p->zJson = (char*)&p[1]; + memcpy((char*)p->zJson, zJson, nJson+1); + if( jsonParse(p, pErrCtx, p->zJson) ){ + sqlite3_free(p); + return 0; + } + p->nJson = nJson; + p->iHold = iMaxHold+1; + sqlite3_set_auxdata(pCtx, JSON_CACHE_ID+iMinKey, p, + (void(*)(void*))jsonParseFree); + return (JsonParse*)sqlite3_get_auxdata(pCtx, JSON_CACHE_ID+iMinKey); } -/* -** Rtree virtual table module xConnect method. +/* +** Compare the OBJECT label at pNode against zKey,nKey. Return true on +** a match. */ -static int rtreeConnect( - sqlite3 *db, - void *pAux, - int argc, const char *const*argv, - sqlite3_vtab **ppVtab, - char **pzErr -){ - return rtreeInit(db, pAux, argc, argv, ppVtab, pzErr, 0); +static int jsonLabelCompare(JsonNode *pNode, const char *zKey, u32 nKey){ + if( pNode->jnFlags & JNODE_RAW ){ + if( pNode->n!=nKey ) return 0; + return strncmp(pNode->u.zJContent, zKey, nKey)==0; + }else{ + if( pNode->n!=nKey+2 ) return 0; + return strncmp(pNode->u.zJContent+1, zKey, nKey)==0; + } } +/* forward declaration */ +static JsonNode *jsonLookupAppend(JsonParse*,const char*,int*,const char**); + /* -** Increment the r-tree reference count. +** Search along zPath to find the node specified. Return a pointer +** to that node, or NULL if zPath is malformed or if there is no such +** node. +** +** If pApnd!=0, then try to append new nodes to complete zPath if it is +** possible to do so and if no existing node corresponds to zPath. If +** new nodes are appended *pApnd is set to 1. */ -static void rtreeReference(Rtree *pRtree){ - pRtree->nBusy++; +static JsonNode *jsonLookupStep( + JsonParse *pParse, /* The JSON to search */ + u32 iRoot, /* Begin the search at this node */ + const char *zPath, /* The path to search */ + int *pApnd, /* Append nodes to complete path if not NULL */ + const char **pzErr /* Make *pzErr point to any syntax error in zPath */ +){ + u32 i, j, nKey; + const char *zKey; + JsonNode *pRoot = &pParse->aNode[iRoot]; + if( zPath[0]==0 ) return pRoot; + if( zPath[0]=='.' ){ + if( pRoot->eType!=JSON_OBJECT ) return 0; + zPath++; + if( zPath[0]=='"' ){ + zKey = zPath + 1; + for(i=1; zPath[i] && zPath[i]!='"'; i++){} + nKey = i-1; + if( zPath[i] ){ + i++; + }else{ + *pzErr = zPath; + return 0; + } + }else{ + zKey = zPath; + for(i=0; zPath[i] && zPath[i]!='.' && zPath[i]!='['; i++){} + nKey = i; + } + if( nKey==0 ){ + *pzErr = zPath; + return 0; + } + j = 1; + for(;;){ + while( j<=pRoot->n ){ + if( jsonLabelCompare(pRoot+j, zKey, nKey) ){ + return jsonLookupStep(pParse, iRoot+j+1, &zPath[i], pApnd, pzErr); + } + j++; + j += jsonNodeSize(&pRoot[j]); + } + if( (pRoot->jnFlags & JNODE_APPEND)==0 ) break; + iRoot += pRoot->u.iAppend; + pRoot = &pParse->aNode[iRoot]; + j = 1; + } + if( pApnd ){ + u32 iStart, iLabel; + JsonNode *pNode; + iStart = jsonParseAddNode(pParse, JSON_OBJECT, 2, 0); + iLabel = jsonParseAddNode(pParse, JSON_STRING, i, zPath); + zPath += i; + pNode = jsonLookupAppend(pParse, zPath, pApnd, pzErr); + if( pParse->oom ) return 0; + if( pNode ){ + pRoot = &pParse->aNode[iRoot]; + pRoot->u.iAppend = iStart - iRoot; + pRoot->jnFlags |= JNODE_APPEND; + pParse->aNode[iLabel].jnFlags |= JNODE_RAW; + } + return pNode; + } + }else if( zPath[0]=='[' && safe_isdigit(zPath[1]) ){ + if( pRoot->eType!=JSON_ARRAY ) return 0; + i = 0; + j = 1; + while( safe_isdigit(zPath[j]) ){ + i = i*10 + zPath[j] - '0'; + j++; + } + if( zPath[j]!=']' ){ + *pzErr = zPath; + return 0; + } + zPath += j + 1; + j = 1; + for(;;){ + while( j<=pRoot->n && (i>0 || (pRoot[j].jnFlags & JNODE_REMOVE)!=0) ){ + if( (pRoot[j].jnFlags & JNODE_REMOVE)==0 ) i--; + j += jsonNodeSize(&pRoot[j]); + } + if( (pRoot->jnFlags & JNODE_APPEND)==0 ) break; + iRoot += pRoot->u.iAppend; + pRoot = &pParse->aNode[iRoot]; + j = 1; + } + if( j<=pRoot->n ){ + return jsonLookupStep(pParse, iRoot+j, zPath, pApnd, pzErr); + } + if( i==0 && pApnd ){ + u32 iStart; + JsonNode *pNode; + iStart = jsonParseAddNode(pParse, JSON_ARRAY, 1, 0); + pNode = jsonLookupAppend(pParse, zPath, pApnd, pzErr); + if( pParse->oom ) return 0; + if( pNode ){ + pRoot = &pParse->aNode[iRoot]; + pRoot->u.iAppend = iStart - iRoot; + pRoot->jnFlags |= JNODE_APPEND; + } + return pNode; + } + }else{ + *pzErr = zPath; + } + return 0; } /* -** Decrement the r-tree reference count. When the reference count reaches -** zero the structure is deleted. +** Append content to pParse that will complete zPath. Return a pointer +** to the inserted node, or return NULL if the append fails. */ -static void rtreeRelease(Rtree *pRtree){ - pRtree->nBusy--; - if( pRtree->nBusy==0 ){ - pRtree->inWrTrans = 0; - pRtree->nCursor = 0; - nodeBlobReset(pRtree); - sqlite3_finalize(pRtree->pWriteNode); - sqlite3_finalize(pRtree->pDeleteNode); - sqlite3_finalize(pRtree->pReadRowid); - sqlite3_finalize(pRtree->pWriteRowid); - sqlite3_finalize(pRtree->pDeleteRowid); - sqlite3_finalize(pRtree->pReadParent); - sqlite3_finalize(pRtree->pWriteParent); - sqlite3_finalize(pRtree->pDeleteParent); - sqlite3_free(pRtree); +static JsonNode *jsonLookupAppend( + JsonParse *pParse, /* Append content to the JSON parse */ + const char *zPath, /* Description of content to append */ + int *pApnd, /* Set this flag to 1 */ + const char **pzErr /* Make this point to any syntax error */ +){ + *pApnd = 1; + if( zPath[0]==0 ){ + jsonParseAddNode(pParse, JSON_NULL, 0, 0); + return pParse->oom ? 0 : &pParse->aNode[pParse->nNode-1]; } + if( zPath[0]=='.' ){ + jsonParseAddNode(pParse, JSON_OBJECT, 0, 0); + }else if( strncmp(zPath,"[0]",3)==0 ){ + jsonParseAddNode(pParse, JSON_ARRAY, 0, 0); + }else{ + return 0; + } + if( pParse->oom ) return 0; + return jsonLookupStep(pParse, pParse->nNode-1, zPath, pApnd, pzErr); } -/* -** Rtree virtual table module xDisconnect method. +/* +** Return the text of a syntax error message on a JSON path. Space is +** obtained from sqlite3_malloc(). */ -static int rtreeDisconnect(sqlite3_vtab *pVtab){ - rtreeRelease((Rtree *)pVtab); - return SQLITE_OK; +static char *jsonPathSyntaxError(const char *zErr){ + return sqlite3_mprintf("JSON path error near '%q'", zErr); } -/* -** Rtree virtual table module xDestroy method. +/* +** Do a node lookup using zPath. Return a pointer to the node on success. +** Return NULL if not found or if there is an error. +** +** On an error, write an error message into pCtx and increment the +** pParse->nErr counter. +** +** If pApnd!=NULL then try to append missing nodes and set *pApnd = 1 if +** nodes are appended. */ -static int rtreeDestroy(sqlite3_vtab *pVtab){ - Rtree *pRtree = (Rtree *)pVtab; - int rc; - char *zCreate = sqlite3_mprintf( - "DROP TABLE '%q'.'%q_node';" - "DROP TABLE '%q'.'%q_rowid';" - "DROP TABLE '%q'.'%q_parent';", - pRtree->zDb, pRtree->zName, - pRtree->zDb, pRtree->zName, - pRtree->zDb, pRtree->zName - ); - if( !zCreate ){ - rc = SQLITE_NOMEM; - }else{ - nodeBlobReset(pRtree); - rc = sqlite3_exec(pRtree->db, zCreate, 0, 0, 0); - sqlite3_free(zCreate); - } - if( rc==SQLITE_OK ){ - rtreeRelease(pRtree); +static JsonNode *jsonLookup( + JsonParse *pParse, /* The JSON to search */ + const char *zPath, /* The path to search */ + int *pApnd, /* Append nodes to complete path if not NULL */ + sqlite3_context *pCtx /* Report errors here, if not NULL */ +){ + const char *zErr = 0; + JsonNode *pNode = 0; + char *zMsg; + + if( zPath==0 ) return 0; + if( zPath[0]!='$' ){ + zErr = zPath; + goto lookup_err; } + zPath++; + pNode = jsonLookupStep(pParse, 0, zPath, pApnd, &zErr); + if( zErr==0 ) return pNode; - return rc; +lookup_err: + pParse->nErr++; + assert( zErr!=0 && pCtx!=0 ); + zMsg = jsonPathSyntaxError(zErr); + if( zMsg ){ + sqlite3_result_error(pCtx, zMsg, -1); + sqlite3_free(zMsg); + }else{ + sqlite3_result_error_nomem(pCtx); + } + return 0; } -/* -** Rtree virtual table module xOpen method. -*/ -static int rtreeOpen(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor){ - int rc = SQLITE_NOMEM; - Rtree *pRtree = (Rtree *)pVTab; - RtreeCursor *pCsr; - - pCsr = (RtreeCursor *)sqlite3_malloc(sizeof(RtreeCursor)); - if( pCsr ){ - memset(pCsr, 0, sizeof(RtreeCursor)); - pCsr->base.pVtab = pVTab; - rc = SQLITE_OK; - pRtree->nCursor++; - } - *ppCursor = (sqlite3_vtab_cursor *)pCsr; - return rc; +/* +** Report the wrong number of arguments for json_insert(), json_replace() +** or json_set(). +*/ +static void jsonWrongNumArgs( + sqlite3_context *pCtx, + const char *zFuncName +){ + char *zMsg = sqlite3_mprintf("json_%s() needs an odd number of arguments", + zFuncName); + sqlite3_result_error(pCtx, zMsg, -1); + sqlite3_free(zMsg); } - /* -** Free the RtreeCursor.aConstraint[] array and its contents. +** Mark all NULL entries in the Object passed in as JNODE_REMOVE. */ -static void freeCursorConstraints(RtreeCursor *pCsr){ - if( pCsr->aConstraint ){ - int i; /* Used to iterate through constraint array */ - for(i=0; inConstraint; i++){ - sqlite3_rtree_query_info *pInfo = pCsr->aConstraint[i].pInfo; - if( pInfo ){ - if( pInfo->xDelUser ) pInfo->xDelUser(pInfo->pUser); - sqlite3_free(pInfo); - } +static void jsonRemoveAllNulls(JsonNode *pNode){ + int i, n; + assert( pNode->eType==JSON_OBJECT ); + n = pNode->n; + for(i=2; i<=n; i += jsonNodeSize(&pNode[i])+1){ + switch( pNode[i].eType ){ + case JSON_NULL: + pNode[i].jnFlags |= JNODE_REMOVE; + break; + case JSON_OBJECT: + jsonRemoveAllNulls(&pNode[i]); + break; } - sqlite3_free(pCsr->aConstraint); - pCsr->aConstraint = 0; } } -/* -** Rtree virtual table module xClose method. -*/ -static int rtreeClose(sqlite3_vtab_cursor *cur){ - Rtree *pRtree = (Rtree *)(cur->pVtab); - int ii; - RtreeCursor *pCsr = (RtreeCursor *)cur; - assert( pRtree->nCursor>0 ); - freeCursorConstraints(pCsr); - sqlite3_free(pCsr->aPoint); - for(ii=0; iiaNode[ii]); - sqlite3_free(pCsr); - pRtree->nCursor--; - nodeBlobReset(pRtree); - return SQLITE_OK; -} -/* -** Rtree virtual table module xEof method. -** -** Return non-zero if the cursor does not currently point to a valid -** record (i.e if the scan has finished), or zero otherwise. -*/ -static int rtreeEof(sqlite3_vtab_cursor *cur){ - RtreeCursor *pCsr = (RtreeCursor *)cur; - return pCsr->atEOF; -} +/**************************************************************************** +** SQL functions used for testing and debugging +****************************************************************************/ +#ifdef SQLITE_DEBUG /* -** Convert raw bits from the on-disk RTree record into a coordinate value. -** The on-disk format is big-endian and needs to be converted for little- -** endian platforms. The on-disk record stores integer coordinates if -** eInt is true and it stores 32-bit floating point records if eInt is -** false. a[] is the four bytes of the on-disk record to be decoded. -** Store the results in "r". -** -** There are five versions of this macro. The last one is generic. The -** other four are various architectures-specific optimizations. -*/ -#if SQLITE_BYTEORDER==1234 && MSVC_VERSION>=1300 -#define RTREE_DECODE_COORD(eInt, a, r) { \ - RtreeCoord c; /* Coordinate decoded */ \ - c.u = _byteswap_ulong(*(u32*)a); \ - r = eInt ? (sqlite3_rtree_dbl)c.i : (sqlite3_rtree_dbl)c.f; \ -} -#elif SQLITE_BYTEORDER==1234 && GCC_VERSION>=4003000 -#define RTREE_DECODE_COORD(eInt, a, r) { \ - RtreeCoord c; /* Coordinate decoded */ \ - c.u = __builtin_bswap32(*(u32*)a); \ - r = eInt ? (sqlite3_rtree_dbl)c.i : (sqlite3_rtree_dbl)c.f; \ -} -#elif SQLITE_BYTEORDER==1234 -#define RTREE_DECODE_COORD(eInt, a, r) { \ - RtreeCoord c; /* Coordinate decoded */ \ - memcpy(&c.u,a,4); \ - c.u = ((c.u>>24)&0xff)|((c.u>>8)&0xff00)| \ - ((c.u&0xff)<<24)|((c.u&0xff00)<<8); \ - r = eInt ? (sqlite3_rtree_dbl)c.i : (sqlite3_rtree_dbl)c.f; \ -} -#elif SQLITE_BYTEORDER==4321 -#define RTREE_DECODE_COORD(eInt, a, r) { \ - RtreeCoord c; /* Coordinate decoded */ \ - memcpy(&c.u,a,4); \ - r = eInt ? (sqlite3_rtree_dbl)c.i : (sqlite3_rtree_dbl)c.f; \ -} -#else -#define RTREE_DECODE_COORD(eInt, a, r) { \ - RtreeCoord c; /* Coordinate decoded */ \ - c.u = ((u32)a[0]<<24) + ((u32)a[1]<<16) \ - +((u32)a[2]<<8) + a[3]; \ - r = eInt ? (sqlite3_rtree_dbl)c.i : (sqlite3_rtree_dbl)c.f; \ -} -#endif - -/* -** Check the RTree node or entry given by pCellData and p against the MATCH -** constraint pConstraint. +** The json_parse(JSON) function returns a string which describes +** a parse of the JSON provided. Or it returns NULL if JSON is not +** well-formed. */ -static int rtreeCallbackConstraint( - RtreeConstraint *pConstraint, /* The constraint to test */ - int eInt, /* True if RTree holding integer coordinates */ - u8 *pCellData, /* Raw cell content */ - RtreeSearchPoint *pSearch, /* Container of this cell */ - sqlite3_rtree_dbl *prScore, /* OUT: score for the cell */ - int *peWithin /* OUT: visibility of the cell */ +static void jsonParseFunc( + sqlite3_context *ctx, + int argc, + sqlite3_value **argv ){ - sqlite3_rtree_query_info *pInfo = pConstraint->pInfo; /* Callback info */ - int nCoord = pInfo->nCoord; /* No. of coordinates */ - int rc; /* Callback return code */ - RtreeCoord c; /* Translator union */ - sqlite3_rtree_dbl aCoord[RTREE_MAX_DIMENSIONS*2]; /* Decoded coordinates */ - - assert( pConstraint->op==RTREE_MATCH || pConstraint->op==RTREE_QUERY ); - assert( nCoord==2 || nCoord==4 || nCoord==6 || nCoord==8 || nCoord==10 ); + JsonString s; /* Output string - not real JSON */ + JsonParse x; /* The parse */ + u32 i; - if( pConstraint->op==RTREE_QUERY && pSearch->iLevel==1 ){ - pInfo->iRowid = readInt64(pCellData); - } - pCellData += 8; -#ifndef SQLITE_RTREE_INT_ONLY - if( eInt==0 ){ - switch( nCoord ){ - case 10: readCoord(pCellData+36, &c); aCoord[9] = c.f; - readCoord(pCellData+32, &c); aCoord[8] = c.f; - case 8: readCoord(pCellData+28, &c); aCoord[7] = c.f; - readCoord(pCellData+24, &c); aCoord[6] = c.f; - case 6: readCoord(pCellData+20, &c); aCoord[5] = c.f; - readCoord(pCellData+16, &c); aCoord[4] = c.f; - case 4: readCoord(pCellData+12, &c); aCoord[3] = c.f; - readCoord(pCellData+8, &c); aCoord[2] = c.f; - default: readCoord(pCellData+4, &c); aCoord[1] = c.f; - readCoord(pCellData, &c); aCoord[0] = c.f; - } - }else -#endif - { - switch( nCoord ){ - case 10: readCoord(pCellData+36, &c); aCoord[9] = c.i; - readCoord(pCellData+32, &c); aCoord[8] = c.i; - case 8: readCoord(pCellData+28, &c); aCoord[7] = c.i; - readCoord(pCellData+24, &c); aCoord[6] = c.i; - case 6: readCoord(pCellData+20, &c); aCoord[5] = c.i; - readCoord(pCellData+16, &c); aCoord[4] = c.i; - case 4: readCoord(pCellData+12, &c); aCoord[3] = c.i; - readCoord(pCellData+8, &c); aCoord[2] = c.i; - default: readCoord(pCellData+4, &c); aCoord[1] = c.i; - readCoord(pCellData, &c); aCoord[0] = c.i; + assert( argc==1 ); + if( jsonParse(&x, ctx, (const char*)sqlite3_value_text(argv[0])) ) return; + jsonParseFindParents(&x); + jsonInit(&s, ctx); + for(i=0; iop==RTREE_MATCH ){ - int eWithin = 0; - rc = pConstraint->u.xGeom((sqlite3_rtree_geometry*)pInfo, - nCoord, aCoord, &eWithin); - if( eWithin==0 ) *peWithin = NOT_WITHIN; - *prScore = RTREE_ZERO; - }else{ - pInfo->aCoord = aCoord; - pInfo->iLevel = pSearch->iLevel - 1; - pInfo->rScore = pInfo->rParentScore = pSearch->rScore; - pInfo->eWithin = pInfo->eParentWithin = pSearch->eWithin; - rc = pConstraint->u.xQueryFunc(pInfo); - if( pInfo->eWithin<*peWithin ) *peWithin = pInfo->eWithin; - if( pInfo->rScore<*prScore || *prScorerScore; + jsonPrintf(100, &s,"node %3u: %7s n=%-4d up=%-4d", + i, zType, x.aNode[i].n, x.aUp[i]); + if( x.aNode[i].u.zJContent!=0 ){ + jsonAppendRaw(&s, " ", 1); + jsonAppendRaw(&s, x.aNode[i].u.zJContent, x.aNode[i].n); } + jsonAppendRaw(&s, "\n", 1); } - return rc; + jsonParseReset(&x); + jsonResult(&s); } -/* -** Check the internal RTree node given by pCellData against constraint p. -** If this constraint cannot be satisfied by any child within the node, -** set *peWithin to NOT_WITHIN. +/* +** The json_test1(JSON) function return true (1) if the input is JSON +** text generated by another json function. It returns (0) if the input +** is not known to be JSON. */ -static void rtreeNonleafConstraint( - RtreeConstraint *p, /* The constraint to test */ - int eInt, /* True if RTree holds integer coordinates */ - u8 *pCellData, /* Raw cell content as appears on disk */ - int *peWithin /* Adjust downward, as appropriate */ +static void jsonTest1Func( + sqlite3_context *ctx, + int argc, + sqlite3_value **argv ){ - sqlite3_rtree_dbl val; /* Coordinate value convert to a double */ + UNUSED_PARAM(argc); + sqlite3_result_int(ctx, sqlite3_value_subtype(argv[0])==JSON_SUBTYPE); +} +#endif /* SQLITE_DEBUG */ - /* p->iCoord might point to either a lower or upper bound coordinate - ** in a coordinate pair. But make pCellData point to the lower bound. - */ - pCellData += 8 + 4*(p->iCoord&0xfe); +/**************************************************************************** +** Scalar SQL function implementations +****************************************************************************/ - assert(p->op==RTREE_LE || p->op==RTREE_LT || p->op==RTREE_GE - || p->op==RTREE_GT || p->op==RTREE_EQ ); - assert( ((((char*)pCellData) - (char*)0)&3)==0 ); /* 4-byte aligned */ - switch( p->op ){ - case RTREE_LE: - case RTREE_LT: - case RTREE_EQ: - RTREE_DECODE_COORD(eInt, pCellData, val); - /* val now holds the lower bound of the coordinate pair */ - if( p->u.rValue>=val ) return; - if( p->op!=RTREE_EQ ) break; /* RTREE_LE and RTREE_LT end here */ - /* Fall through for the RTREE_EQ case */ +/* +** Implementation of the json_QUOTE(VALUE) function. Return a JSON value +** corresponding to the SQL value input. Mostly this means putting +** double-quotes around strings and returning the unquoted string "null" +** when given a NULL input. +*/ +static void jsonQuoteFunc( + sqlite3_context *ctx, + int argc, + sqlite3_value **argv +){ + JsonString jx; + UNUSED_PARAM(argc); - default: /* RTREE_GT or RTREE_GE, or fallthrough of RTREE_EQ */ - pCellData += 4; - RTREE_DECODE_COORD(eInt, pCellData, val); - /* val now holds the upper bound of the coordinate pair */ - if( p->u.rValue<=val ) return; - } - *peWithin = NOT_WITHIN; + jsonInit(&jx, ctx); + jsonAppendValue(&jx, argv[0]); + jsonResult(&jx); + sqlite3_result_subtype(ctx, JSON_SUBTYPE); } /* -** Check the leaf RTree cell given by pCellData against constraint p. -** If this constraint is not satisfied, set *peWithin to NOT_WITHIN. -** If the constraint is satisfied, leave *peWithin unchanged. -** -** The constraint is of the form: xN op $val -** -** The op is given by p->op. The xN is p->iCoord-th coordinate in -** pCellData. $val is given by p->u.rValue. +** Implementation of the json_array(VALUE,...) function. Return a JSON +** array that contains all values given in arguments. Or if any argument +** is a BLOB, throw an error. */ -static void rtreeLeafConstraint( - RtreeConstraint *p, /* The constraint to test */ - int eInt, /* True if RTree holds integer coordinates */ - u8 *pCellData, /* Raw cell content as appears on disk */ - int *peWithin /* Adjust downward, as appropriate */ +static void jsonArrayFunc( + sqlite3_context *ctx, + int argc, + sqlite3_value **argv ){ - RtreeDValue xN; /* Coordinate value converted to a double */ + int i; + JsonString jx; - assert(p->op==RTREE_LE || p->op==RTREE_LT || p->op==RTREE_GE - || p->op==RTREE_GT || p->op==RTREE_EQ ); - pCellData += 8 + p->iCoord*4; - assert( ((((char*)pCellData) - (char*)0)&3)==0 ); /* 4-byte aligned */ - RTREE_DECODE_COORD(eInt, pCellData, xN); - switch( p->op ){ - case RTREE_LE: if( xN <= p->u.rValue ) return; break; - case RTREE_LT: if( xN < p->u.rValue ) return; break; - case RTREE_GE: if( xN >= p->u.rValue ) return; break; - case RTREE_GT: if( xN > p->u.rValue ) return; break; - default: if( xN == p->u.rValue ) return; break; + jsonInit(&jx, ctx); + jsonAppendChar(&jx, '['); + for(i=0; inNode ); + if( argc==2 ){ + const char *zPath = (const char*)sqlite3_value_text(argv[1]); + pNode = jsonLookup(p, zPath, 0, ctx); + }else{ + pNode = p->aNode; + } + if( pNode==0 ){ + return; + } + if( pNode->eType==JSON_ARRAY ){ + assert( (pNode->jnFlags & JNODE_APPEND)==0 ); + for(i=1; i<=pNode->n; n++){ + i += jsonNodeSize(&pNode[i]); } } - return SQLITE_CORRUPT_VTAB; + sqlite3_result_int64(ctx, n); } /* -** Return the index of the cell containing a pointer to node pNode -** in its parent. If pNode is the root node, return -1. +** json_extract(JSON, PATH, ...) +** +** Return the element described by PATH. Return NULL if there is no +** PATH element. If there are multiple PATHs, then return a JSON array +** with the result from each path. Throw an error if the JSON or any PATH +** is malformed. */ -static int nodeParentIndex(Rtree *pRtree, RtreeNode *pNode, int *piIndex){ - RtreeNode *pParent = pNode->pParent; - if( pParent ){ - return nodeRowidIndex(pRtree, pParent, pNode->iNode, piIndex); +static void jsonExtractFunc( + sqlite3_context *ctx, + int argc, + sqlite3_value **argv +){ + JsonParse *p; /* The parse */ + JsonNode *pNode; + const char *zPath; + JsonString jx; + int i; + + if( argc<2 ) return; + p = jsonParseCached(ctx, argv, ctx); + if( p==0 ) return; + jsonInit(&jx, ctx); + jsonAppendChar(&jx, '['); + for(i=1; inErr ) break; + if( argc>2 ){ + jsonAppendSeparator(&jx); + if( pNode ){ + jsonRenderNode(pNode, &jx, 0); + }else{ + jsonAppendRaw(&jx, "null", 4); + } + }else if( pNode ){ + jsonReturn(pNode, ctx, 0); + } } - *piIndex = -1; - return SQLITE_OK; + if( argc>2 && i==argc ){ + jsonAppendChar(&jx, ']'); + jsonResult(&jx); + sqlite3_result_subtype(ctx, JSON_SUBTYPE); + } + jsonReset(&jx); } -/* -** Compare two search points. Return negative, zero, or positive if the first -** is less than, equal to, or greater than the second. -** -** The rScore is the primary key. Smaller rScore values come first. -** If the rScore is a tie, then use iLevel as the tie breaker with smaller -** iLevel values coming first. In this way, if rScore is the same for all -** SearchPoints, then iLevel becomes the deciding factor and the result -** is a depth-first search, which is the desired default behavior. +/* This is the RFC 7396 MergePatch algorithm. */ -static int rtreeSearchPointCompare( - const RtreeSearchPoint *pA, - const RtreeSearchPoint *pB +static JsonNode *jsonMergePatch( + JsonParse *pParse, /* The JSON parser that contains the TARGET */ + u32 iTarget, /* Node of the TARGET in pParse */ + JsonNode *pPatch /* The PATCH */ ){ - if( pA->rScorerScore ) return -1; - if( pA->rScore>pB->rScore ) return +1; - if( pA->iLeveliLevel ) return -1; - if( pA->iLevel>pB->iLevel ) return +1; - return 0; + u32 i, j; + u32 iRoot; + JsonNode *pTarget; + if( pPatch->eType!=JSON_OBJECT ){ + return pPatch; + } + assert( iTarget>=0 && iTargetnNode ); + pTarget = &pParse->aNode[iTarget]; + assert( (pPatch->jnFlags & JNODE_APPEND)==0 ); + if( pTarget->eType!=JSON_OBJECT ){ + jsonRemoveAllNulls(pPatch); + return pPatch; + } + iRoot = iTarget; + for(i=1; in; i += jsonNodeSize(&pPatch[i+1])+1){ + u32 nKey; + const char *zKey; + assert( pPatch[i].eType==JSON_STRING ); + assert( pPatch[i].jnFlags & JNODE_LABEL ); + nKey = pPatch[i].n; + zKey = pPatch[i].u.zJContent; + assert( (pPatch[i].jnFlags & JNODE_RAW)==0 ); + for(j=1; jn; j += jsonNodeSize(&pTarget[j+1])+1 ){ + assert( pTarget[j].eType==JSON_STRING ); + assert( pTarget[j].jnFlags & JNODE_LABEL ); + assert( (pPatch[i].jnFlags & JNODE_RAW)==0 ); + if( pTarget[j].n==nKey && strncmp(pTarget[j].u.zJContent,zKey,nKey)==0 ){ + if( pTarget[j+1].jnFlags & (JNODE_REMOVE|JNODE_PATCH) ) break; + if( pPatch[i+1].eType==JSON_NULL ){ + pTarget[j+1].jnFlags |= JNODE_REMOVE; + }else{ + JsonNode *pNew = jsonMergePatch(pParse, iTarget+j+1, &pPatch[i+1]); + if( pNew==0 ) return 0; + pTarget = &pParse->aNode[iTarget]; + if( pNew!=&pTarget[j+1] ){ + pTarget[j+1].u.pPatch = pNew; + pTarget[j+1].jnFlags |= JNODE_PATCH; + } + } + break; + } + } + if( j>=pTarget->n && pPatch[i+1].eType!=JSON_NULL ){ + int iStart, iPatch; + iStart = jsonParseAddNode(pParse, JSON_OBJECT, 2, 0); + jsonParseAddNode(pParse, JSON_STRING, nKey, zKey); + iPatch = jsonParseAddNode(pParse, JSON_TRUE, 0, 0); + if( pParse->oom ) return 0; + jsonRemoveAllNulls(pPatch); + pTarget = &pParse->aNode[iTarget]; + pParse->aNode[iRoot].jnFlags |= JNODE_APPEND; + pParse->aNode[iRoot].u.iAppend = iStart - iRoot; + iRoot = iStart; + pParse->aNode[iPatch].jnFlags |= JNODE_PATCH; + pParse->aNode[iPatch].u.pPatch = &pPatch[i+1]; + } + } + return pTarget; } /* -** Interchange two search points in a cursor. +** Implementation of the json_mergepatch(JSON1,JSON2) function. Return a JSON +** object that is the result of running the RFC 7396 MergePatch() algorithm +** on the two arguments. */ -static void rtreeSearchPointSwap(RtreeCursor *p, int i, int j){ - RtreeSearchPoint t = p->aPoint[i]; - assert( iaPoint[i] = p->aPoint[j]; - p->aPoint[j] = t; - i++; j++; - if( i=RTREE_CACHE_SZ ){ - nodeRelease(RTREE_OF_CURSOR(p), p->aNode[i]); - p->aNode[i] = 0; - }else{ - RtreeNode *pTemp = p->aNode[i]; - p->aNode[i] = p->aNode[j]; - p->aNode[j] = pTemp; - } +static void jsonPatchFunc( + sqlite3_context *ctx, + int argc, + sqlite3_value **argv +){ + JsonParse x; /* The JSON that is being patched */ + JsonParse y; /* The patch */ + JsonNode *pResult; /* The result of the merge */ + + UNUSED_PARAM(argc); + if( jsonParse(&x, ctx, (const char*)sqlite3_value_text(argv[0])) ) return; + if( jsonParse(&y, ctx, (const char*)sqlite3_value_text(argv[1])) ){ + jsonParseReset(&x); + return; + } + pResult = jsonMergePatch(&x, 0, y.aNode); + assert( pResult!=0 || x.oom ); + if( pResult ){ + jsonReturnJson(pResult, ctx, 0); + }else{ + sqlite3_result_error_nomem(ctx); } + jsonParseReset(&x); + jsonParseReset(&y); } + /* -** Return the search point with the lowest current score. +** Implementation of the json_object(NAME,VALUE,...) function. Return a JSON +** object that contains all name/value given in arguments. Or if any name +** is not a string or if any value is a BLOB, throw an error. */ -static RtreeSearchPoint *rtreeSearchPointFirst(RtreeCursor *pCur){ - return pCur->bPoint ? &pCur->sPoint : pCur->nPoint ? pCur->aPoint : 0; +static void jsonObjectFunc( + sqlite3_context *ctx, + int argc, + sqlite3_value **argv +){ + int i; + JsonString jx; + const char *z; + u32 n; + + if( argc&1 ){ + sqlite3_result_error(ctx, "json_object() requires an even number " + "of arguments", -1); + return; + } + jsonInit(&jx, ctx); + jsonAppendChar(&jx, '{'); + for(i=0; ibPoint; - assert( ii==0 || ii==1 ); - assert( pCur->bPoint || pCur->nPoint ); - if( pCur->aNode[ii]==0 ){ - assert( pRC!=0 ); - id = ii ? pCur->aPoint[0].id : pCur->sPoint.id; - *pRC = nodeAcquire(RTREE_OF_CURSOR(pCur), id, 0, &pCur->aNode[ii]); +static void jsonRemoveFunc( + sqlite3_context *ctx, + int argc, + sqlite3_value **argv +){ + JsonParse x; /* The parse */ + JsonNode *pNode; + const char *zPath; + u32 i; + + if( argc<1 ) return; + if( jsonParse(&x, ctx, (const char*)sqlite3_value_text(argv[0])) ) return; + assert( x.nNode ); + for(i=1; i<(u32)argc; i++){ + zPath = (const char*)sqlite3_value_text(argv[i]); + if( zPath==0 ) goto remove_done; + pNode = jsonLookup(&x, zPath, 0, ctx); + if( x.nErr ) goto remove_done; + if( pNode ) pNode->jnFlags |= JNODE_REMOVE; } - return pCur->aNode[ii]; + if( (x.aNode[0].jnFlags & JNODE_REMOVE)==0 ){ + jsonReturnJson(x.aNode, ctx, 0); + } +remove_done: + jsonParseReset(&x); } /* -** Push a new element onto the priority queue +** json_replace(JSON, PATH, VALUE, ...) +** +** Replace the value at PATH with VALUE. If PATH does not already exist, +** this routine is a no-op. If JSON or PATH is malformed, throw an error. */ -static RtreeSearchPoint *rtreeEnqueue( - RtreeCursor *pCur, /* The cursor */ - RtreeDValue rScore, /* Score for the new search point */ - u8 iLevel /* Level for the new search point */ +static void jsonReplaceFunc( + sqlite3_context *ctx, + int argc, + sqlite3_value **argv ){ - int i, j; - RtreeSearchPoint *pNew; - if( pCur->nPoint>=pCur->nPointAlloc ){ - int nNew = pCur->nPointAlloc*2 + 8; - pNew = sqlite3_realloc(pCur->aPoint, nNew*sizeof(pCur->aPoint[0])); - if( pNew==0 ) return 0; - pCur->aPoint = pNew; - pCur->nPointAlloc = nNew; + JsonParse x; /* The parse */ + JsonNode *pNode; + const char *zPath; + u32 i; + + if( argc<1 ) return; + if( (argc&1)==0 ) { + jsonWrongNumArgs(ctx, "replace"); + return; } - i = pCur->nPoint++; - pNew = pCur->aPoint + i; - pNew->rScore = rScore; - pNew->iLevel = iLevel; - assert( iLevel<=RTREE_MAX_DEPTH ); - while( i>0 ){ - RtreeSearchPoint *pParent; - j = (i-1)/2; - pParent = pCur->aPoint + j; - if( rtreeSearchPointCompare(pNew, pParent)>=0 ) break; - rtreeSearchPointSwap(pCur, j, i); - i = j; - pNew = pParent; + if( jsonParse(&x, ctx, (const char*)sqlite3_value_text(argv[0])) ) return; + assert( x.nNode ); + for(i=1; i<(u32)argc; i+=2){ + zPath = (const char*)sqlite3_value_text(argv[i]); + pNode = jsonLookup(&x, zPath, 0, ctx); + if( x.nErr ) goto replace_err; + if( pNode ){ + pNode->jnFlags |= (u8)JNODE_REPLACE; + pNode->u.iReplace = i + 1; + } } - return pNew; + if( x.aNode[0].jnFlags & JNODE_REPLACE ){ + sqlite3_result_value(ctx, argv[x.aNode[0].u.iReplace]); + }else{ + jsonReturnJson(x.aNode, ctx, argv); + } +replace_err: + jsonParseReset(&x); } /* -** Allocate a new RtreeSearchPoint and return a pointer to it. Return -** NULL if malloc fails. +** json_set(JSON, PATH, VALUE, ...) +** +** Set the value at PATH to VALUE. Create the PATH if it does not already +** exist. Overwrite existing values that do exist. +** If JSON or PATH is malformed, throw an error. +** +** json_insert(JSON, PATH, VALUE, ...) +** +** Create PATH and initialize it to VALUE. If PATH already exists, this +** routine is a no-op. If JSON or PATH is malformed, throw an error. */ -static RtreeSearchPoint *rtreeSearchPointNew( - RtreeCursor *pCur, /* The cursor */ - RtreeDValue rScore, /* Score for the new search point */ - u8 iLevel /* Level for the new search point */ +static void jsonSetFunc( + sqlite3_context *ctx, + int argc, + sqlite3_value **argv ){ - RtreeSearchPoint *pNew, *pFirst; - pFirst = rtreeSearchPointFirst(pCur); - pCur->anQueue[iLevel]++; - if( pFirst==0 - || pFirst->rScore>rScore - || (pFirst->rScore==rScore && pFirst->iLevel>iLevel) - ){ - if( pCur->bPoint ){ - int ii; - pNew = rtreeEnqueue(pCur, rScore, iLevel); - if( pNew==0 ) return 0; - ii = (int)(pNew - pCur->aPoint) + 1; - if( iiaNode[ii]==0 ); - pCur->aNode[ii] = pCur->aNode[0]; - }else{ - nodeRelease(RTREE_OF_CURSOR(pCur), pCur->aNode[0]); - } - pCur->aNode[0] = 0; - *pNew = pCur->sPoint; + JsonParse x; /* The parse */ + JsonNode *pNode; + const char *zPath; + u32 i; + int bApnd; + int bIsSet = *(int*)sqlite3_user_data(ctx); + + if( argc<1 ) return; + if( (argc&1)==0 ) { + jsonWrongNumArgs(ctx, bIsSet ? "set" : "insert"); + return; + } + if( jsonParse(&x, ctx, (const char*)sqlite3_value_text(argv[0])) ) return; + assert( x.nNode ); + for(i=1; i<(u32)argc; i+=2){ + zPath = (const char*)sqlite3_value_text(argv[i]); + bApnd = 0; + pNode = jsonLookup(&x, zPath, &bApnd, ctx); + if( x.oom ){ + sqlite3_result_error_nomem(ctx); + goto jsonSetDone; + }else if( x.nErr ){ + goto jsonSetDone; + }else if( pNode && (bApnd || bIsSet) ){ + pNode->jnFlags |= (u8)JNODE_REPLACE; + pNode->u.iReplace = i + 1; } - pCur->sPoint.rScore = rScore; - pCur->sPoint.iLevel = iLevel; - pCur->bPoint = 1; - return &pCur->sPoint; + } + if( x.aNode[0].jnFlags & JNODE_REPLACE ){ + sqlite3_result_value(ctx, argv[x.aNode[0].u.iReplace]); }else{ - return rtreeEnqueue(pCur, rScore, iLevel); + jsonReturnJson(x.aNode, ctx, argv); } +jsonSetDone: + jsonParseReset(&x); } -#if 0 -/* Tracing routines for the RtreeSearchPoint queue */ -static void tracePoint(RtreeSearchPoint *p, int idx, RtreeCursor *pCur){ - if( idx<0 ){ printf(" s"); }else{ printf("%2d", idx); } - printf(" %d.%05lld.%02d %g %d", - p->iLevel, p->id, p->iCell, p->rScore, p->eWithin - ); - idx++; - if( idxaNode[idx]); +/* +** json_type(JSON) +** json_type(JSON, PATH) +** +** Return the top-level "type" of a JSON string. Throw an error if +** either the JSON or PATH inputs are not well-formed. +*/ +static void jsonTypeFunc( + sqlite3_context *ctx, + int argc, + sqlite3_value **argv +){ + JsonParse *p; /* The parse */ + const char *zPath; + JsonNode *pNode; + + p = jsonParseCached(ctx, argv, ctx); + if( p==0 ) return; + if( argc==2 ){ + zPath = (const char*)sqlite3_value_text(argv[1]); + pNode = jsonLookup(p, zPath, 0, ctx); }else{ - printf("\n"); - } -} -static void traceQueue(RtreeCursor *pCur, const char *zPrefix){ - int ii; - printf("=== %9s ", zPrefix); - if( pCur->bPoint ){ - tracePoint(&pCur->sPoint, -1, pCur); + pNode = p->aNode; } - for(ii=0; iinPoint; ii++){ - if( ii>0 || pCur->bPoint ) printf(" "); - tracePoint(&pCur->aPoint[ii], ii, pCur); + if( pNode ){ + sqlite3_result_text(ctx, jsonType[pNode->eType], -1, SQLITE_STATIC); } } -# define RTREE_QUEUE_TRACE(A,B) traceQueue(A,B) -#else -# define RTREE_QUEUE_TRACE(A,B) /* no-op */ -#endif -/* Remove the search point with the lowest current score. +/* +** json_valid(JSON) +** +** Return 1 if JSON is a well-formed JSON string according to RFC-7159. +** Return 0 otherwise. */ -static void rtreeSearchPointPop(RtreeCursor *p){ - int i, j, k, n; - i = 1 - p->bPoint; - assert( i==0 || i==1 ); - if( p->aNode[i] ){ - nodeRelease(RTREE_OF_CURSOR(p), p->aNode[i]); - p->aNode[i] = 0; - } - if( p->bPoint ){ - p->anQueue[p->sPoint.iLevel]--; - p->bPoint = 0; - }else if( p->nPoint ){ - p->anQueue[p->aPoint[0].iLevel]--; - n = --p->nPoint; - p->aPoint[0] = p->aPoint[n]; - if( naNode[1] = p->aNode[n+1]; - p->aNode[n+1] = 0; - } - i = 0; - while( (j = i*2+1)aPoint[k], &p->aPoint[j])<0 ){ - if( rtreeSearchPointCompare(&p->aPoint[k], &p->aPoint[i])<0 ){ - rtreeSearchPointSwap(p, i, k); - i = k; - }else{ - break; - } - }else{ - if( rtreeSearchPointCompare(&p->aPoint[j], &p->aPoint[i])<0 ){ - rtreeSearchPointSwap(p, i, j); - i = j; - }else{ - break; - } - } - } - } +static void jsonValidFunc( + sqlite3_context *ctx, + int argc, + sqlite3_value **argv +){ + JsonParse *p; /* The parse */ + UNUSED_PARAM(argc); + p = jsonParseCached(ctx, argv, 0); + sqlite3_result_int(ctx, p!=0); } +/**************************************************************************** +** Aggregate SQL function implementations +****************************************************************************/ /* -** Continue the search on cursor pCur until the front of the queue -** contains an entry suitable for returning as a result-set row, -** or until the RtreeSearchPoint queue is empty, indicating that the -** query has completed. +** json_group_array(VALUE) +** +** Return a JSON array composed of all values in the aggregate. */ -static int rtreeStepToLeaf(RtreeCursor *pCur){ - RtreeSearchPoint *p; - Rtree *pRtree = RTREE_OF_CURSOR(pCur); - RtreeNode *pNode; - int eWithin; - int rc = SQLITE_OK; - int nCell; - int nConstraint = pCur->nConstraint; - int ii; - int eInt; - RtreeSearchPoint x; - - eInt = pRtree->eCoordType==RTREE_COORD_INT32; - while( (p = rtreeSearchPointFirst(pCur))!=0 && p->iLevel>0 ){ - pNode = rtreeNodeOfFirstSearchPoint(pCur, &rc); - if( rc ) return rc; - nCell = NCELL(pNode); - assert( nCell<200 ); - while( p->iCellzData + (4+pRtree->nBytesPerCell*p->iCell); - eWithin = FULLY_WITHIN; - for(ii=0; iiaConstraint + ii; - if( pConstraint->op>=RTREE_MATCH ){ - rc = rtreeCallbackConstraint(pConstraint, eInt, pCellData, p, - &rScore, &eWithin); - if( rc ) return rc; - }else if( p->iLevel==1 ){ - rtreeLeafConstraint(pConstraint, eInt, pCellData, &eWithin); - }else{ - rtreeNonleafConstraint(pConstraint, eInt, pCellData, &eWithin); - } - if( eWithin==NOT_WITHIN ) break; - } - p->iCell++; - if( eWithin==NOT_WITHIN ) continue; - x.iLevel = p->iLevel - 1; - if( x.iLevel ){ - x.id = readInt64(pCellData); - x.iCell = 0; - }else{ - x.id = p->id; - x.iCell = p->iCell - 1; - } - if( p->iCell>=nCell ){ - RTREE_QUEUE_TRACE(pCur, "POP-S:"); - rtreeSearchPointPop(pCur); - } - if( rScoreeWithin = (u8)eWithin; - p->id = x.id; - p->iCell = x.iCell; - RTREE_QUEUE_TRACE(pCur, "PUSH-S:"); - break; +static void jsonArrayStep( + sqlite3_context *ctx, + int argc, + sqlite3_value **argv +){ + JsonString *pStr; + UNUSED_PARAM(argc); + pStr = (JsonString*)sqlite3_aggregate_context(ctx, sizeof(*pStr)); + if( pStr ){ + if( pStr->zBuf==0 ){ + jsonInit(pStr, ctx); + jsonAppendChar(pStr, '['); + }else{ + jsonAppendChar(pStr, ','); + pStr->pCtx = ctx; } - if( p->iCell>=nCell ){ - RTREE_QUEUE_TRACE(pCur, "POP-Se:"); - rtreeSearchPointPop(pCur); + jsonAppendValue(pStr, argv[0]); + } +} +static void jsonArrayCompute(sqlite3_context *ctx, int isFinal){ + JsonString *pStr; + pStr = (JsonString*)sqlite3_aggregate_context(ctx, 0); + if( pStr ){ + pStr->pCtx = ctx; + jsonAppendChar(pStr, ']'); + if( pStr->bErr ){ + if( pStr->bErr==1 ) sqlite3_result_error_nomem(ctx); + assert( pStr->bStatic ); + }else if( isFinal ){ + sqlite3_result_text(ctx, pStr->zBuf, (int)pStr->nUsed, + pStr->bStatic ? SQLITE_TRANSIENT : sqlite3_free); + pStr->bStatic = 1; + }else{ + sqlite3_result_text(ctx, pStr->zBuf, (int)pStr->nUsed, SQLITE_TRANSIENT); + pStr->nUsed--; } + }else{ + sqlite3_result_text(ctx, "[]", 2, SQLITE_STATIC); } - pCur->atEOF = p==0; - return SQLITE_OK; + sqlite3_result_subtype(ctx, JSON_SUBTYPE); } - -/* -** Rtree virtual table module xNext method. -*/ -static int rtreeNext(sqlite3_vtab_cursor *pVtabCursor){ - RtreeCursor *pCsr = (RtreeCursor *)pVtabCursor; - int rc = SQLITE_OK; - - /* Move to the next entry that matches the configured constraints. */ - RTREE_QUEUE_TRACE(pCsr, "POP-Nx:"); - rtreeSearchPointPop(pCsr); - rc = rtreeStepToLeaf(pCsr); - return rc; +static void jsonArrayValue(sqlite3_context *ctx){ + jsonArrayCompute(ctx, 0); } - -/* -** Rtree virtual table module xRowid method. -*/ -static int rtreeRowid(sqlite3_vtab_cursor *pVtabCursor, sqlite_int64 *pRowid){ - RtreeCursor *pCsr = (RtreeCursor *)pVtabCursor; - RtreeSearchPoint *p = rtreeSearchPointFirst(pCsr); - int rc = SQLITE_OK; - RtreeNode *pNode = rtreeNodeOfFirstSearchPoint(pCsr, &rc); - if( rc==SQLITE_OK && p ){ - *pRowid = nodeGetRowid(RTREE_OF_CURSOR(pCsr), pNode, p->iCell); - } - return rc; +static void jsonArrayFinal(sqlite3_context *ctx){ + jsonArrayCompute(ctx, 1); } -/* -** Rtree virtual table module xColumn method. +#ifndef SQLITE_OMIT_WINDOWFUNC +/* +** This method works for both json_group_array() and json_group_object(). +** It works by removing the first element of the group by searching forward +** to the first comma (",") that is not within a string and deleting all +** text through that comma. */ -static int rtreeColumn(sqlite3_vtab_cursor *cur, sqlite3_context *ctx, int i){ - Rtree *pRtree = (Rtree *)cur->pVtab; - RtreeCursor *pCsr = (RtreeCursor *)cur; - RtreeSearchPoint *p = rtreeSearchPointFirst(pCsr); - RtreeCoord c; - int rc = SQLITE_OK; - RtreeNode *pNode = rtreeNodeOfFirstSearchPoint(pCsr, &rc); - - if( rc ) return rc; - if( p==0 ) return SQLITE_OK; - if( i==0 ){ - sqlite3_result_int64(ctx, nodeGetRowid(pRtree, pNode, p->iCell)); - }else{ - nodeGetCoord(pRtree, pNode, p->iCell, i-1, &c); -#ifndef SQLITE_RTREE_INT_ONLY - if( pRtree->eCoordType==RTREE_COORD_REAL32 ){ - sqlite3_result_double(ctx, c.f); - }else -#endif - { - assert( pRtree->eCoordType==RTREE_COORD_INT32 ); - sqlite3_result_int(ctx, c.i); +static void jsonGroupInverse( + sqlite3_context *ctx, + int argc, + sqlite3_value **argv +){ + int i; + int inStr = 0; + char *z; + JsonString *pStr; + UNUSED_PARAM(argc); + UNUSED_PARAM(argv); + pStr = (JsonString*)sqlite3_aggregate_context(ctx, 0); +#ifdef NEVER + /* pStr is always non-NULL since jsonArrayStep() or jsonObjectStep() will + ** always have been called to initalize it */ + if( NEVER(!pStr) ) return; +#endif + z = pStr->zBuf; + for(i=1; z[i]!=',' || inStr; i++){ + assert( inUsed ); + if( z[i]=='"' ){ + inStr = !inStr; + }else if( z[i]=='\\' ){ + i++; } } - return SQLITE_OK; + pStr->nUsed -= i; + memmove(&z[1], &z[i+1], (size_t)pStr->nUsed-1); } +#else +# define jsonGroupInverse 0 +#endif -/* -** Use nodeAcquire() to obtain the leaf node containing the record with -** rowid iRowid. If successful, set *ppLeaf to point to the node and -** return SQLITE_OK. If there is no such record in the table, set -** *ppLeaf to 0 and return SQLITE_OK. If an error occurs, set *ppLeaf -** to zero and return an SQLite error code. + +/* +** json_group_obj(NAME,VALUE) +** +** Return a JSON object composed of all names and values in the aggregate. */ -static int findLeafNode( - Rtree *pRtree, /* RTree to search */ - i64 iRowid, /* The rowid searching for */ - RtreeNode **ppLeaf, /* Write the node here */ - sqlite3_int64 *piNode /* Write the node-id here */ +static void jsonObjectStep( + sqlite3_context *ctx, + int argc, + sqlite3_value **argv ){ - int rc; - *ppLeaf = 0; - sqlite3_bind_int64(pRtree->pReadRowid, 1, iRowid); - if( sqlite3_step(pRtree->pReadRowid)==SQLITE_ROW ){ - i64 iNode = sqlite3_column_int64(pRtree->pReadRowid, 0); - if( piNode ) *piNode = iNode; - rc = nodeAcquire(pRtree, iNode, 0, ppLeaf); - sqlite3_reset(pRtree->pReadRowid); + JsonString *pStr; + const char *z; + u32 n; + UNUSED_PARAM(argc); + pStr = (JsonString*)sqlite3_aggregate_context(ctx, sizeof(*pStr)); + if( pStr ){ + if( pStr->zBuf==0 ){ + jsonInit(pStr, ctx); + jsonAppendChar(pStr, '{'); + }else{ + jsonAppendChar(pStr, ','); + pStr->pCtx = ctx; + } + z = (const char*)sqlite3_value_text(argv[0]); + n = (u32)sqlite3_value_bytes(argv[0]); + jsonAppendString(pStr, z, n); + jsonAppendChar(pStr, ':'); + jsonAppendValue(pStr, argv[1]); + } +} +static void jsonObjectCompute(sqlite3_context *ctx, int isFinal){ + JsonString *pStr; + pStr = (JsonString*)sqlite3_aggregate_context(ctx, 0); + if( pStr ){ + jsonAppendChar(pStr, '}'); + if( pStr->bErr ){ + if( pStr->bErr==1 ) sqlite3_result_error_nomem(ctx); + assert( pStr->bStatic ); + }else if( isFinal ){ + sqlite3_result_text(ctx, pStr->zBuf, (int)pStr->nUsed, + pStr->bStatic ? SQLITE_TRANSIENT : sqlite3_free); + pStr->bStatic = 1; + }else{ + sqlite3_result_text(ctx, pStr->zBuf, (int)pStr->nUsed, SQLITE_TRANSIENT); + pStr->nUsed--; + } }else{ - rc = sqlite3_reset(pRtree->pReadRowid); + sqlite3_result_text(ctx, "{}", 2, SQLITE_STATIC); } - return rc; + sqlite3_result_subtype(ctx, JSON_SUBTYPE); +} +static void jsonObjectValue(sqlite3_context *ctx){ + jsonObjectCompute(ctx, 0); +} +static void jsonObjectFinal(sqlite3_context *ctx){ + jsonObjectCompute(ctx, 1); } -/* -** This function is called to configure the RtreeConstraint object passed -** as the second argument for a MATCH constraint. The value passed as the -** first argument to this function is the right-hand operand to the MATCH -** operator. -*/ -static int deserializeGeometry(sqlite3_value *pValue, RtreeConstraint *pCons){ - RtreeMatchArg *pBlob, *pSrc; /* BLOB returned by geometry function */ - sqlite3_rtree_query_info *pInfo; /* Callback information */ + + +#ifndef SQLITE_OMIT_VIRTUALTABLE +/**************************************************************************** +** The json_each virtual table +****************************************************************************/ +typedef struct JsonEachCursor JsonEachCursor; +struct JsonEachCursor { + sqlite3_vtab_cursor base; /* Base class - must be first */ + u32 iRowid; /* The rowid */ + u32 iBegin; /* The first node of the scan */ + u32 i; /* Index in sParse.aNode[] of current row */ + u32 iEnd; /* EOF when i equals or exceeds this value */ + u8 eType; /* Type of top-level element */ + u8 bRecursive; /* True for json_tree(). False for json_each() */ + char *zJson; /* Input JSON */ + char *zRoot; /* Path by which to filter zJson */ + JsonParse sParse; /* Parse of the input JSON */ +}; + +/* Constructor for the json_each virtual table */ +static int jsonEachConnect( + sqlite3 *db, + void *pAux, + int argc, const char *const*argv, + sqlite3_vtab **ppVtab, + char **pzErr +){ + sqlite3_vtab *pNew; + int rc; + +/* Column numbers */ +#define JEACH_KEY 0 +#define JEACH_VALUE 1 +#define JEACH_TYPE 2 +#define JEACH_ATOM 3 +#define JEACH_ID 4 +#define JEACH_PARENT 5 +#define JEACH_FULLKEY 6 +#define JEACH_PATH 7 +/* The xBestIndex method assumes that the JSON and ROOT columns are +** the last two columns in the table. Should this ever changes, be +** sure to update the xBestIndex method. */ +#define JEACH_JSON 8 +#define JEACH_ROOT 9 + + UNUSED_PARAM(pzErr); + UNUSED_PARAM(argv); + UNUSED_PARAM(argc); + UNUSED_PARAM(pAux); + rc = sqlite3_declare_vtab(db, + "CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path," + "json HIDDEN,root HIDDEN)"); + if( rc==SQLITE_OK ){ + pNew = *ppVtab = sqlite3_malloc( sizeof(*pNew) ); + if( pNew==0 ) return SQLITE_NOMEM; + memset(pNew, 0, sizeof(*pNew)); + } + return rc; +} + +/* destructor for json_each virtual table */ +static int jsonEachDisconnect(sqlite3_vtab *pVtab){ + sqlite3_free(pVtab); + return SQLITE_OK; +} + +/* constructor for a JsonEachCursor object for json_each(). */ +static int jsonEachOpenEach(sqlite3_vtab *p, sqlite3_vtab_cursor **ppCursor){ + JsonEachCursor *pCur; + + UNUSED_PARAM(p); + pCur = sqlite3_malloc( sizeof(*pCur) ); + if( pCur==0 ) return SQLITE_NOMEM; + memset(pCur, 0, sizeof(*pCur)); + *ppCursor = &pCur->base; + return SQLITE_OK; +} + +/* constructor for a JsonEachCursor object for json_tree(). */ +static int jsonEachOpenTree(sqlite3_vtab *p, sqlite3_vtab_cursor **ppCursor){ + int rc = jsonEachOpenEach(p, ppCursor); + if( rc==SQLITE_OK ){ + JsonEachCursor *pCur = (JsonEachCursor*)*ppCursor; + pCur->bRecursive = 1; + } + return rc; +} + +/* Reset a JsonEachCursor back to its original state. Free any memory +** held. */ +static void jsonEachCursorReset(JsonEachCursor *p){ + sqlite3_free(p->zJson); + sqlite3_free(p->zRoot); + jsonParseReset(&p->sParse); + p->iRowid = 0; + p->i = 0; + p->iEnd = 0; + p->eType = 0; + p->zJson = 0; + p->zRoot = 0; +} + +/* Destructor for a jsonEachCursor object */ +static int jsonEachClose(sqlite3_vtab_cursor *cur){ + JsonEachCursor *p = (JsonEachCursor*)cur; + jsonEachCursorReset(p); + sqlite3_free(cur); + return SQLITE_OK; +} + +/* Return TRUE if the jsonEachCursor object has been advanced off the end +** of the JSON object */ +static int jsonEachEof(sqlite3_vtab_cursor *cur){ + JsonEachCursor *p = (JsonEachCursor*)cur; + return p->i >= p->iEnd; +} + +/* Advance the cursor to the next element for json_tree() */ +static int jsonEachNext(sqlite3_vtab_cursor *cur){ + JsonEachCursor *p = (JsonEachCursor*)cur; + if( p->bRecursive ){ + if( p->sParse.aNode[p->i].jnFlags & JNODE_LABEL ) p->i++; + p->i++; + p->iRowid++; + if( p->iiEnd ){ + u32 iUp = p->sParse.aUp[p->i]; + JsonNode *pUp = &p->sParse.aNode[iUp]; + p->eType = pUp->eType; + if( pUp->eType==JSON_ARRAY ){ + if( iUp==p->i-1 ){ + pUp->u.iKey = 0; + }else{ + pUp->u.iKey++; + } + } + } + }else{ + switch( p->eType ){ + case JSON_ARRAY: { + p->i += jsonNodeSize(&p->sParse.aNode[p->i]); + p->iRowid++; + break; + } + case JSON_OBJECT: { + p->i += 1 + jsonNodeSize(&p->sParse.aNode[p->i+1]); + p->iRowid++; + break; + } + default: { + p->i = p->iEnd; + break; + } + } + } + return SQLITE_OK; +} + +/* Append the name of the path for element i to pStr +*/ +static void jsonEachComputePath( + JsonEachCursor *p, /* The cursor */ + JsonString *pStr, /* Write the path here */ + u32 i /* Path to this element */ +){ + JsonNode *pNode, *pUp; + u32 iUp; + if( i==0 ){ + jsonAppendChar(pStr, '$'); + return; + } + iUp = p->sParse.aUp[i]; + jsonEachComputePath(p, pStr, iUp); + pNode = &p->sParse.aNode[i]; + pUp = &p->sParse.aNode[iUp]; + if( pUp->eType==JSON_ARRAY ){ + jsonPrintf(30, pStr, "[%d]", pUp->u.iKey); + }else{ + assert( pUp->eType==JSON_OBJECT ); + if( (pNode->jnFlags & JNODE_LABEL)==0 ) pNode--; + assert( pNode->eType==JSON_STRING ); + assert( pNode->jnFlags & JNODE_LABEL ); + jsonPrintf(pNode->n+1, pStr, ".%.*s", pNode->n-2, pNode->u.zJContent+1); + } +} + +/* Return the value of a column */ +static int jsonEachColumn( + sqlite3_vtab_cursor *cur, /* The cursor */ + sqlite3_context *ctx, /* First argument to sqlite3_result_...() */ + int i /* Which column to return */ +){ + JsonEachCursor *p = (JsonEachCursor*)cur; + JsonNode *pThis = &p->sParse.aNode[p->i]; + switch( i ){ + case JEACH_KEY: { + if( p->i==0 ) break; + if( p->eType==JSON_OBJECT ){ + jsonReturn(pThis, ctx, 0); + }else if( p->eType==JSON_ARRAY ){ + u32 iKey; + if( p->bRecursive ){ + if( p->iRowid==0 ) break; + iKey = p->sParse.aNode[p->sParse.aUp[p->i]].u.iKey; + }else{ + iKey = p->iRowid; + } + sqlite3_result_int64(ctx, (sqlite3_int64)iKey); + } + break; + } + case JEACH_VALUE: { + if( pThis->jnFlags & JNODE_LABEL ) pThis++; + jsonReturn(pThis, ctx, 0); + break; + } + case JEACH_TYPE: { + if( pThis->jnFlags & JNODE_LABEL ) pThis++; + sqlite3_result_text(ctx, jsonType[pThis->eType], -1, SQLITE_STATIC); + break; + } + case JEACH_ATOM: { + if( pThis->jnFlags & JNODE_LABEL ) pThis++; + if( pThis->eType>=JSON_ARRAY ) break; + jsonReturn(pThis, ctx, 0); + break; + } + case JEACH_ID: { + sqlite3_result_int64(ctx, + (sqlite3_int64)p->i + ((pThis->jnFlags & JNODE_LABEL)!=0)); + break; + } + case JEACH_PARENT: { + if( p->i>p->iBegin && p->bRecursive ){ + sqlite3_result_int64(ctx, (sqlite3_int64)p->sParse.aUp[p->i]); + } + break; + } + case JEACH_FULLKEY: { + JsonString x; + jsonInit(&x, ctx); + if( p->bRecursive ){ + jsonEachComputePath(p, &x, p->i); + }else{ + if( p->zRoot ){ + jsonAppendRaw(&x, p->zRoot, (int)strlen(p->zRoot)); + }else{ + jsonAppendChar(&x, '$'); + } + if( p->eType==JSON_ARRAY ){ + jsonPrintf(30, &x, "[%d]", p->iRowid); + }else if( p->eType==JSON_OBJECT ){ + jsonPrintf(pThis->n, &x, ".%.*s", pThis->n-2, pThis->u.zJContent+1); + } + } + jsonResult(&x); + break; + } + case JEACH_PATH: { + if( p->bRecursive ){ + JsonString x; + jsonInit(&x, ctx); + jsonEachComputePath(p, &x, p->sParse.aUp[p->i]); + jsonResult(&x); + break; + } + /* For json_each() path and root are the same so fall through + ** into the root case */ + } + default: { + const char *zRoot = p->zRoot; + if( zRoot==0 ) zRoot = "$"; + sqlite3_result_text(ctx, zRoot, -1, SQLITE_STATIC); + break; + } + case JEACH_JSON: { + assert( i==JEACH_JSON ); + sqlite3_result_text(ctx, p->sParse.zJson, -1, SQLITE_STATIC); + break; + } + } + return SQLITE_OK; +} + +/* Return the current rowid value */ +static int jsonEachRowid(sqlite3_vtab_cursor *cur, sqlite_int64 *pRowid){ + JsonEachCursor *p = (JsonEachCursor*)cur; + *pRowid = p->iRowid; + return SQLITE_OK; +} + +/* The query strategy is to look for an equality constraint on the json +** column. Without such a constraint, the table cannot operate. idxNum is +** 1 if the constraint is found, 3 if the constraint and zRoot are found, +** and 0 otherwise. +*/ +static int jsonEachBestIndex( + sqlite3_vtab *tab, + sqlite3_index_info *pIdxInfo +){ + int i; /* Loop counter or computed array index */ + int aIdx[2]; /* Index of constraints for JSON and ROOT */ + int unusableMask = 0; /* Mask of unusable JSON and ROOT constraints */ + int idxMask = 0; /* Mask of usable == constraints JSON and ROOT */ + const struct sqlite3_index_constraint *pConstraint; + + /* This implementation assumes that JSON and ROOT are the last two + ** columns in the table */ + assert( JEACH_ROOT == JEACH_JSON+1 ); + UNUSED_PARAM(tab); + aIdx[0] = aIdx[1] = -1; + pConstraint = pIdxInfo->aConstraint; + for(i=0; inConstraint; i++, pConstraint++){ + int iCol; + int iMask; + if( pConstraint->iColumn < JEACH_JSON ) continue; + iCol = pConstraint->iColumn - JEACH_JSON; + assert( iCol==0 || iCol==1 ); + iMask = 1 << iCol; + if( pConstraint->usable==0 ){ + unusableMask |= iMask; + }else if( pConstraint->op==SQLITE_INDEX_CONSTRAINT_EQ ){ + aIdx[iCol] = i; + idxMask |= iMask; + } + } + if( (unusableMask & ~idxMask)!=0 ){ + /* If there are any unusable constraints on JSON or ROOT, then reject + ** this entire plan */ + return SQLITE_CONSTRAINT; + } + if( aIdx[0]<0 ){ + /* No JSON input. Leave estimatedCost at the huge value that it was + ** initialized to to discourage the query planner from selecting this + ** plan. */ + pIdxInfo->idxNum = 0; + }else{ + pIdxInfo->estimatedCost = 1.0; + i = aIdx[0]; + pIdxInfo->aConstraintUsage[i].argvIndex = 1; + pIdxInfo->aConstraintUsage[i].omit = 1; + if( aIdx[1]<0 ){ + pIdxInfo->idxNum = 1; /* Only JSON supplied. Plan 1 */ + }else{ + i = aIdx[1]; + pIdxInfo->aConstraintUsage[i].argvIndex = 2; + pIdxInfo->aConstraintUsage[i].omit = 1; + pIdxInfo->idxNum = 3; /* Both JSON and ROOT are supplied. Plan 3 */ + } + } + return SQLITE_OK; +} + +/* Start a search on a new JSON string */ +static int jsonEachFilter( + sqlite3_vtab_cursor *cur, + int idxNum, const char *idxStr, + int argc, sqlite3_value **argv +){ + JsonEachCursor *p = (JsonEachCursor*)cur; + const char *z; + const char *zRoot = 0; + sqlite3_int64 n; + + UNUSED_PARAM(idxStr); + UNUSED_PARAM(argc); + jsonEachCursorReset(p); + if( idxNum==0 ) return SQLITE_OK; + z = (const char*)sqlite3_value_text(argv[0]); + if( z==0 ) return SQLITE_OK; + n = sqlite3_value_bytes(argv[0]); + p->zJson = sqlite3_malloc64( n+1 ); + if( p->zJson==0 ) return SQLITE_NOMEM; + memcpy(p->zJson, z, (size_t)n+1); + if( jsonParse(&p->sParse, 0, p->zJson) ){ + int rc = SQLITE_NOMEM; + if( p->sParse.oom==0 ){ + sqlite3_free(cur->pVtab->zErrMsg); + cur->pVtab->zErrMsg = sqlite3_mprintf("malformed JSON"); + if( cur->pVtab->zErrMsg ) rc = SQLITE_ERROR; + } + jsonEachCursorReset(p); + return rc; + }else if( p->bRecursive && jsonParseFindParents(&p->sParse) ){ + jsonEachCursorReset(p); + return SQLITE_NOMEM; + }else{ + JsonNode *pNode = 0; + if( idxNum==3 ){ + const char *zErr = 0; + zRoot = (const char*)sqlite3_value_text(argv[1]); + if( zRoot==0 ) return SQLITE_OK; + n = sqlite3_value_bytes(argv[1]); + p->zRoot = sqlite3_malloc64( n+1 ); + if( p->zRoot==0 ) return SQLITE_NOMEM; + memcpy(p->zRoot, zRoot, (size_t)n+1); + if( zRoot[0]!='$' ){ + zErr = zRoot; + }else{ + pNode = jsonLookupStep(&p->sParse, 0, p->zRoot+1, 0, &zErr); + } + if( zErr ){ + sqlite3_free(cur->pVtab->zErrMsg); + cur->pVtab->zErrMsg = jsonPathSyntaxError(zErr); + jsonEachCursorReset(p); + return cur->pVtab->zErrMsg ? SQLITE_ERROR : SQLITE_NOMEM; + }else if( pNode==0 ){ + return SQLITE_OK; + } + }else{ + pNode = p->sParse.aNode; + } + p->iBegin = p->i = (int)(pNode - p->sParse.aNode); + p->eType = pNode->eType; + if( p->eType>=JSON_ARRAY ){ + pNode->u.iKey = 0; + p->iEnd = p->i + pNode->n + 1; + if( p->bRecursive ){ + p->eType = p->sParse.aNode[p->sParse.aUp[p->i]].eType; + if( p->i>0 && (p->sParse.aNode[p->i-1].jnFlags & JNODE_LABEL)!=0 ){ + p->i--; + } + }else{ + p->i++; + } + }else{ + p->iEnd = p->i+1; + } + } + return SQLITE_OK; +} + +/* The methods of the json_each virtual table */ +static sqlite3_module jsonEachModule = { + 0, /* iVersion */ + 0, /* xCreate */ + jsonEachConnect, /* xConnect */ + jsonEachBestIndex, /* xBestIndex */ + jsonEachDisconnect, /* xDisconnect */ + 0, /* xDestroy */ + jsonEachOpenEach, /* xOpen - open a cursor */ + jsonEachClose, /* xClose - close a cursor */ + jsonEachFilter, /* xFilter - configure scan constraints */ + jsonEachNext, /* xNext - advance a cursor */ + jsonEachEof, /* xEof - check for end of scan */ + jsonEachColumn, /* xColumn - read data */ + jsonEachRowid, /* xRowid - read data */ + 0, /* xUpdate */ + 0, /* xBegin */ + 0, /* xSync */ + 0, /* xCommit */ + 0, /* xRollback */ + 0, /* xFindMethod */ + 0, /* xRename */ + 0, /* xSavepoint */ + 0, /* xRelease */ + 0, /* xRollbackTo */ + 0 /* xShadowName */ +}; + +/* The methods of the json_tree virtual table. */ +static sqlite3_module jsonTreeModule = { + 0, /* iVersion */ + 0, /* xCreate */ + jsonEachConnect, /* xConnect */ + jsonEachBestIndex, /* xBestIndex */ + jsonEachDisconnect, /* xDisconnect */ + 0, /* xDestroy */ + jsonEachOpenTree, /* xOpen - open a cursor */ + jsonEachClose, /* xClose - close a cursor */ + jsonEachFilter, /* xFilter - configure scan constraints */ + jsonEachNext, /* xNext - advance a cursor */ + jsonEachEof, /* xEof - check for end of scan */ + jsonEachColumn, /* xColumn - read data */ + jsonEachRowid, /* xRowid - read data */ + 0, /* xUpdate */ + 0, /* xBegin */ + 0, /* xSync */ + 0, /* xCommit */ + 0, /* xRollback */ + 0, /* xFindMethod */ + 0, /* xRename */ + 0, /* xSavepoint */ + 0, /* xRelease */ + 0, /* xRollbackTo */ + 0 /* xShadowName */ +}; +#endif /* SQLITE_OMIT_VIRTUALTABLE */ + +/**************************************************************************** +** The following routines are the only publically visible identifiers in this +** file. Call the following routines in order to register the various SQL +** functions and the virtual table implemented by this file. +****************************************************************************/ + +SQLITE_PRIVATE int sqlite3Json1Init(sqlite3 *db){ + int rc = SQLITE_OK; + unsigned int i; + static const struct { + const char *zName; + int nArg; + int flag; + void (*xFunc)(sqlite3_context*,int,sqlite3_value**); + } aFunc[] = { + { "json", 1, 0, jsonRemoveFunc }, + { "json_array", -1, 0, jsonArrayFunc }, + { "json_array_length", 1, 0, jsonArrayLengthFunc }, + { "json_array_length", 2, 0, jsonArrayLengthFunc }, + { "json_extract", -1, 0, jsonExtractFunc }, + { "json_insert", -1, 0, jsonSetFunc }, + { "json_object", -1, 0, jsonObjectFunc }, + { "json_patch", 2, 0, jsonPatchFunc }, + { "json_quote", 1, 0, jsonQuoteFunc }, + { "json_remove", -1, 0, jsonRemoveFunc }, + { "json_replace", -1, 0, jsonReplaceFunc }, + { "json_set", -1, 1, jsonSetFunc }, + { "json_type", 1, 0, jsonTypeFunc }, + { "json_type", 2, 0, jsonTypeFunc }, + { "json_valid", 1, 0, jsonValidFunc }, + +#if SQLITE_DEBUG + /* DEBUG and TESTING functions */ + { "json_parse", 1, 0, jsonParseFunc }, + { "json_test1", 1, 0, jsonTest1Func }, +#endif + }; + static const struct { + const char *zName; + int nArg; + void (*xStep)(sqlite3_context*,int,sqlite3_value**); + void (*xFinal)(sqlite3_context*); + void (*xValue)(sqlite3_context*); + } aAgg[] = { + { "json_group_array", 1, + jsonArrayStep, jsonArrayFinal, jsonArrayValue }, + { "json_group_object", 2, + jsonObjectStep, jsonObjectFinal, jsonObjectValue }, + }; +#ifndef SQLITE_OMIT_VIRTUALTABLE + static const struct { + const char *zName; + sqlite3_module *pModule; + } aMod[] = { + { "json_each", &jsonEachModule }, + { "json_tree", &jsonTreeModule }, + }; +#endif + for(i=0; i */ +/* #include */ +/* #include */ + +#ifndef SQLITE_AMALGAMATION +#include "sqlite3rtree.h" +typedef sqlite3_int64 i64; +typedef sqlite3_uint64 u64; +typedef unsigned char u8; +typedef unsigned short u16; +typedef unsigned int u32; +#endif + +/* The following macro is used to suppress compiler warnings. +*/ +#ifndef UNUSED_PARAMETER +# define UNUSED_PARAMETER(x) (void)(x) +#endif + +typedef struct Rtree Rtree; +typedef struct RtreeCursor RtreeCursor; +typedef struct RtreeNode RtreeNode; +typedef struct RtreeCell RtreeCell; +typedef struct RtreeConstraint RtreeConstraint; +typedef struct RtreeMatchArg RtreeMatchArg; +typedef struct RtreeGeomCallback RtreeGeomCallback; +typedef union RtreeCoord RtreeCoord; +typedef struct RtreeSearchPoint RtreeSearchPoint; + +/* The rtree may have between 1 and RTREE_MAX_DIMENSIONS dimensions. */ +#define RTREE_MAX_DIMENSIONS 5 + +/* Maximum number of auxiliary columns */ +#define RTREE_MAX_AUX_COLUMN 100 + +/* Size of hash table Rtree.aHash. This hash table is not expected to +** ever contain very many entries, so a fixed number of buckets is +** used. +*/ +#define HASHSIZE 97 + +/* The xBestIndex method of this virtual table requires an estimate of +** the number of rows in the virtual table to calculate the costs of +** various strategies. If possible, this estimate is loaded from the +** sqlite_stat1 table (with RTREE_MIN_ROWEST as a hard-coded minimum). +** Otherwise, if no sqlite_stat1 entry is available, use +** RTREE_DEFAULT_ROWEST. +*/ +#define RTREE_DEFAULT_ROWEST 1048576 +#define RTREE_MIN_ROWEST 100 + +/* +** An rtree virtual-table object. +*/ +struct Rtree { + sqlite3_vtab base; /* Base class. Must be first */ + sqlite3 *db; /* Host database connection */ + int iNodeSize; /* Size in bytes of each node in the node table */ + u8 nDim; /* Number of dimensions */ + u8 nDim2; /* Twice the number of dimensions */ + u8 eCoordType; /* RTREE_COORD_REAL32 or RTREE_COORD_INT32 */ + u8 nBytesPerCell; /* Bytes consumed per cell */ + u8 inWrTrans; /* True if inside write transaction */ + u8 nAux; /* # of auxiliary columns in %_rowid */ + u8 nAuxNotNull; /* Number of initial not-null aux columns */ + int iDepth; /* Current depth of the r-tree structure */ + char *zDb; /* Name of database containing r-tree table */ + char *zName; /* Name of r-tree table */ + u32 nBusy; /* Current number of users of this structure */ + i64 nRowEst; /* Estimated number of rows in this table */ + u32 nCursor; /* Number of open cursors */ + u32 nNodeRef; /* Number RtreeNodes with positive nRef */ + char *zReadAuxSql; /* SQL for statement to read aux data */ + + /* List of nodes removed during a CondenseTree operation. List is + ** linked together via the pointer normally used for hash chains - + ** RtreeNode.pNext. RtreeNode.iNode stores the depth of the sub-tree + ** headed by the node (leaf nodes have RtreeNode.iNode==0). + */ + RtreeNode *pDeleted; + int iReinsertHeight; /* Height of sub-trees Reinsert() has run on */ + + /* Blob I/O on xxx_node */ + sqlite3_blob *pNodeBlob; + + /* Statements to read/write/delete a record from xxx_node */ + sqlite3_stmt *pWriteNode; + sqlite3_stmt *pDeleteNode; + + /* Statements to read/write/delete a record from xxx_rowid */ + sqlite3_stmt *pReadRowid; + sqlite3_stmt *pWriteRowid; + sqlite3_stmt *pDeleteRowid; + + /* Statements to read/write/delete a record from xxx_parent */ + sqlite3_stmt *pReadParent; + sqlite3_stmt *pWriteParent; + sqlite3_stmt *pDeleteParent; + + /* Statement for writing to the "aux:" fields, if there are any */ + sqlite3_stmt *pWriteAux; + + RtreeNode *aHash[HASHSIZE]; /* Hash table of in-memory nodes. */ +}; + +/* Possible values for Rtree.eCoordType: */ +#define RTREE_COORD_REAL32 0 +#define RTREE_COORD_INT32 1 + +/* +** If SQLITE_RTREE_INT_ONLY is defined, then this virtual table will +** only deal with integer coordinates. No floating point operations +** will be done. +*/ +#ifdef SQLITE_RTREE_INT_ONLY + typedef sqlite3_int64 RtreeDValue; /* High accuracy coordinate */ + typedef int RtreeValue; /* Low accuracy coordinate */ +# define RTREE_ZERO 0 +#else + typedef double RtreeDValue; /* High accuracy coordinate */ + typedef float RtreeValue; /* Low accuracy coordinate */ +# define RTREE_ZERO 0.0 +#endif + +/* +** When doing a search of an r-tree, instances of the following structure +** record intermediate results from the tree walk. +** +** The id is always a node-id. For iLevel>=1 the id is the node-id of +** the node that the RtreeSearchPoint represents. When iLevel==0, however, +** the id is of the parent node and the cell that RtreeSearchPoint +** represents is the iCell-th entry in the parent node. +*/ +struct RtreeSearchPoint { + RtreeDValue rScore; /* The score for this node. Smallest goes first. */ + sqlite3_int64 id; /* Node ID */ + u8 iLevel; /* 0=entries. 1=leaf node. 2+ for higher */ + u8 eWithin; /* PARTLY_WITHIN or FULLY_WITHIN */ + u8 iCell; /* Cell index within the node */ +}; + +/* +** The minimum number of cells allowed for a node is a third of the +** maximum. In Gutman's notation: +** +** m = M/3 +** +** If an R*-tree "Reinsert" operation is required, the same number of +** cells are removed from the overfull node and reinserted into the tree. +*/ +#define RTREE_MINCELLS(p) ((((p)->iNodeSize-4)/(p)->nBytesPerCell)/3) +#define RTREE_REINSERT(p) RTREE_MINCELLS(p) +#define RTREE_MAXCELLS 51 + +/* +** The smallest possible node-size is (512-64)==448 bytes. And the largest +** supported cell size is 48 bytes (8 byte rowid + ten 4 byte coordinates). +** Therefore all non-root nodes must contain at least 3 entries. Since +** 3^40 is greater than 2^64, an r-tree structure always has a depth of +** 40 or less. +*/ +#define RTREE_MAX_DEPTH 40 + + +/* +** Number of entries in the cursor RtreeNode cache. The first entry is +** used to cache the RtreeNode for RtreeCursor.sPoint. The remaining +** entries cache the RtreeNode for the first elements of the priority queue. +*/ +#define RTREE_CACHE_SZ 5 + +/* +** An rtree cursor object. +*/ +struct RtreeCursor { + sqlite3_vtab_cursor base; /* Base class. Must be first */ + u8 atEOF; /* True if at end of search */ + u8 bPoint; /* True if sPoint is valid */ + u8 bAuxValid; /* True if pReadAux is valid */ + int iStrategy; /* Copy of idxNum search parameter */ + int nConstraint; /* Number of entries in aConstraint */ + RtreeConstraint *aConstraint; /* Search constraints. */ + int nPointAlloc; /* Number of slots allocated for aPoint[] */ + int nPoint; /* Number of slots used in aPoint[] */ + int mxLevel; /* iLevel value for root of the tree */ + RtreeSearchPoint *aPoint; /* Priority queue for search points */ + sqlite3_stmt *pReadAux; /* Statement to read aux-data */ + RtreeSearchPoint sPoint; /* Cached next search point */ + RtreeNode *aNode[RTREE_CACHE_SZ]; /* Rtree node cache */ + u32 anQueue[RTREE_MAX_DEPTH+1]; /* Number of queued entries by iLevel */ +}; + +/* Return the Rtree of a RtreeCursor */ +#define RTREE_OF_CURSOR(X) ((Rtree*)((X)->base.pVtab)) + +/* +** A coordinate can be either a floating point number or a integer. All +** coordinates within a single R-Tree are always of the same time. +*/ +union RtreeCoord { + RtreeValue f; /* Floating point value */ + int i; /* Integer value */ + u32 u; /* Unsigned for byte-order conversions */ +}; + +/* +** The argument is an RtreeCoord. Return the value stored within the RtreeCoord +** formatted as a RtreeDValue (double or int64). This macro assumes that local +** variable pRtree points to the Rtree structure associated with the +** RtreeCoord. +*/ +#ifdef SQLITE_RTREE_INT_ONLY +# define DCOORD(coord) ((RtreeDValue)coord.i) +#else +# define DCOORD(coord) ( \ + (pRtree->eCoordType==RTREE_COORD_REAL32) ? \ + ((double)coord.f) : \ + ((double)coord.i) \ + ) +#endif + +/* +** A search constraint. +*/ +struct RtreeConstraint { + int iCoord; /* Index of constrained coordinate */ + int op; /* Constraining operation */ + union { + RtreeDValue rValue; /* Constraint value. */ + int (*xGeom)(sqlite3_rtree_geometry*,int,RtreeDValue*,int*); + int (*xQueryFunc)(sqlite3_rtree_query_info*); + } u; + sqlite3_rtree_query_info *pInfo; /* xGeom and xQueryFunc argument */ +}; + +/* Possible values for RtreeConstraint.op */ +#define RTREE_EQ 0x41 /* A */ +#define RTREE_LE 0x42 /* B */ +#define RTREE_LT 0x43 /* C */ +#define RTREE_GE 0x44 /* D */ +#define RTREE_GT 0x45 /* E */ +#define RTREE_MATCH 0x46 /* F: Old-style sqlite3_rtree_geometry_callback() */ +#define RTREE_QUERY 0x47 /* G: New-style sqlite3_rtree_query_callback() */ + + +/* +** An rtree structure node. +*/ +struct RtreeNode { + RtreeNode *pParent; /* Parent node */ + i64 iNode; /* The node number */ + int nRef; /* Number of references to this node */ + int isDirty; /* True if the node needs to be written to disk */ + u8 *zData; /* Content of the node, as should be on disk */ + RtreeNode *pNext; /* Next node in this hash collision chain */ +}; + +/* Return the number of cells in a node */ +#define NCELL(pNode) readInt16(&(pNode)->zData[2]) + +/* +** A single cell from a node, deserialized +*/ +struct RtreeCell { + i64 iRowid; /* Node or entry ID */ + RtreeCoord aCoord[RTREE_MAX_DIMENSIONS*2]; /* Bounding box coordinates */ +}; + + +/* +** This object becomes the sqlite3_user_data() for the SQL functions +** that are created by sqlite3_rtree_geometry_callback() and +** sqlite3_rtree_query_callback() and which appear on the right of MATCH +** operators in order to constrain a search. +** +** xGeom and xQueryFunc are the callback functions. Exactly one of +** xGeom and xQueryFunc fields is non-NULL, depending on whether the +** SQL function was created using sqlite3_rtree_geometry_callback() or +** sqlite3_rtree_query_callback(). +** +** This object is deleted automatically by the destructor mechanism in +** sqlite3_create_function_v2(). +*/ +struct RtreeGeomCallback { + int (*xGeom)(sqlite3_rtree_geometry*, int, RtreeDValue*, int*); + int (*xQueryFunc)(sqlite3_rtree_query_info*); + void (*xDestructor)(void*); + void *pContext; +}; + +/* +** An instance of this structure (in the form of a BLOB) is returned by +** the SQL functions that sqlite3_rtree_geometry_callback() and +** sqlite3_rtree_query_callback() create, and is read as the right-hand +** operand to the MATCH operator of an R-Tree. +*/ +struct RtreeMatchArg { + u32 iSize; /* Size of this object */ + RtreeGeomCallback cb; /* Info about the callback functions */ + int nParam; /* Number of parameters to the SQL function */ + sqlite3_value **apSqlParam; /* Original SQL parameter values */ + RtreeDValue aParam[1]; /* Values for parameters to the SQL function */ +}; + +#ifndef MAX +# define MAX(x,y) ((x) < (y) ? (y) : (x)) +#endif +#ifndef MIN +# define MIN(x,y) ((x) > (y) ? (y) : (x)) +#endif + +/* What version of GCC is being used. 0 means GCC is not being used . +** Note that the GCC_VERSION macro will also be set correctly when using +** clang, since clang works hard to be gcc compatible. So the gcc +** optimizations will also work when compiling with clang. +*/ +#ifndef GCC_VERSION +#if defined(__GNUC__) && !defined(SQLITE_DISABLE_INTRINSIC) +# define GCC_VERSION (__GNUC__*1000000+__GNUC_MINOR__*1000+__GNUC_PATCHLEVEL__) +#else +# define GCC_VERSION 0 +#endif +#endif + +/* The testcase() macro should already be defined in the amalgamation. If +** it is not, make it a no-op. +*/ +#ifndef SQLITE_AMALGAMATION +# define testcase(X) +#endif + +/* +** Macros to determine whether the machine is big or little endian, +** and whether or not that determination is run-time or compile-time. +** +** For best performance, an attempt is made to guess at the byte-order +** using C-preprocessor macros. If that is unsuccessful, or if +** -DSQLITE_RUNTIME_BYTEORDER=1 is set, then byte-order is determined +** at run-time. +*/ +#ifndef SQLITE_BYTEORDER +#if defined(i386) || defined(__i386__) || defined(_M_IX86) || \ + defined(__x86_64) || defined(__x86_64__) || defined(_M_X64) || \ + defined(_M_AMD64) || defined(_M_ARM) || defined(__x86) || \ + defined(__arm__) +# define SQLITE_BYTEORDER 1234 +#elif defined(sparc) || defined(__ppc__) +# define SQLITE_BYTEORDER 4321 +#else +# define SQLITE_BYTEORDER 0 /* 0 means "unknown at compile-time" */ +#endif +#endif + + +/* What version of MSVC is being used. 0 means MSVC is not being used */ +#ifndef MSVC_VERSION +#if defined(_MSC_VER) && !defined(SQLITE_DISABLE_INTRINSIC) +# define MSVC_VERSION _MSC_VER +#else +# define MSVC_VERSION 0 +#endif +#endif + +/* +** Functions to deserialize a 16 bit integer, 32 bit real number and +** 64 bit integer. The deserialized value is returned. +*/ +static int readInt16(u8 *p){ + return (p[0]<<8) + p[1]; +} +static void readCoord(u8 *p, RtreeCoord *pCoord){ + assert( ((((char*)p) - (char*)0)&3)==0 ); /* p is always 4-byte aligned */ +#if SQLITE_BYTEORDER==1234 && MSVC_VERSION>=1300 + pCoord->u = _byteswap_ulong(*(u32*)p); +#elif SQLITE_BYTEORDER==1234 && GCC_VERSION>=4003000 + pCoord->u = __builtin_bswap32(*(u32*)p); +#elif SQLITE_BYTEORDER==4321 + pCoord->u = *(u32*)p; +#else + pCoord->u = ( + (((u32)p[0]) << 24) + + (((u32)p[1]) << 16) + + (((u32)p[2]) << 8) + + (((u32)p[3]) << 0) + ); +#endif +} +static i64 readInt64(u8 *p){ +#if SQLITE_BYTEORDER==1234 && MSVC_VERSION>=1300 + u64 x; + memcpy(&x, p, 8); + return (i64)_byteswap_uint64(x); +#elif SQLITE_BYTEORDER==1234 && GCC_VERSION>=4003000 + u64 x; + memcpy(&x, p, 8); + return (i64)__builtin_bswap64(x); +#elif SQLITE_BYTEORDER==4321 + i64 x; + memcpy(&x, p, 8); + return x; +#else + return (i64)( + (((u64)p[0]) << 56) + + (((u64)p[1]) << 48) + + (((u64)p[2]) << 40) + + (((u64)p[3]) << 32) + + (((u64)p[4]) << 24) + + (((u64)p[5]) << 16) + + (((u64)p[6]) << 8) + + (((u64)p[7]) << 0) + ); +#endif +} + +/* +** Functions to serialize a 16 bit integer, 32 bit real number and +** 64 bit integer. The value returned is the number of bytes written +** to the argument buffer (always 2, 4 and 8 respectively). +*/ +static void writeInt16(u8 *p, int i){ + p[0] = (i>> 8)&0xFF; + p[1] = (i>> 0)&0xFF; +} +static int writeCoord(u8 *p, RtreeCoord *pCoord){ + u32 i; + assert( ((((char*)p) - (char*)0)&3)==0 ); /* p is always 4-byte aligned */ + assert( sizeof(RtreeCoord)==4 ); + assert( sizeof(u32)==4 ); +#if SQLITE_BYTEORDER==1234 && GCC_VERSION>=4003000 + i = __builtin_bswap32(pCoord->u); + memcpy(p, &i, 4); +#elif SQLITE_BYTEORDER==1234 && MSVC_VERSION>=1300 + i = _byteswap_ulong(pCoord->u); + memcpy(p, &i, 4); +#elif SQLITE_BYTEORDER==4321 + i = pCoord->u; + memcpy(p, &i, 4); +#else + i = pCoord->u; + p[0] = (i>>24)&0xFF; + p[1] = (i>>16)&0xFF; + p[2] = (i>> 8)&0xFF; + p[3] = (i>> 0)&0xFF; +#endif + return 4; +} +static int writeInt64(u8 *p, i64 i){ +#if SQLITE_BYTEORDER==1234 && GCC_VERSION>=4003000 + i = (i64)__builtin_bswap64((u64)i); + memcpy(p, &i, 8); +#elif SQLITE_BYTEORDER==1234 && MSVC_VERSION>=1300 + i = (i64)_byteswap_uint64((u64)i); + memcpy(p, &i, 8); +#elif SQLITE_BYTEORDER==4321 + memcpy(p, &i, 8); +#else + p[0] = (i>>56)&0xFF; + p[1] = (i>>48)&0xFF; + p[2] = (i>>40)&0xFF; + p[3] = (i>>32)&0xFF; + p[4] = (i>>24)&0xFF; + p[5] = (i>>16)&0xFF; + p[6] = (i>> 8)&0xFF; + p[7] = (i>> 0)&0xFF; +#endif + return 8; +} + +/* +** Increment the reference count of node p. +*/ +static void nodeReference(RtreeNode *p){ + if( p ){ + assert( p->nRef>0 ); + p->nRef++; + } +} + +/* +** Clear the content of node p (set all bytes to 0x00). +*/ +static void nodeZero(Rtree *pRtree, RtreeNode *p){ + memset(&p->zData[2], 0, pRtree->iNodeSize-2); + p->isDirty = 1; +} + +/* +** Given a node number iNode, return the corresponding key to use +** in the Rtree.aHash table. +*/ +static int nodeHash(i64 iNode){ + return iNode % HASHSIZE; +} + +/* +** Search the node hash table for node iNode. If found, return a pointer +** to it. Otherwise, return 0. +*/ +static RtreeNode *nodeHashLookup(Rtree *pRtree, i64 iNode){ + RtreeNode *p; + for(p=pRtree->aHash[nodeHash(iNode)]; p && p->iNode!=iNode; p=p->pNext); + return p; +} + +/* +** Add node pNode to the node hash table. +*/ +static void nodeHashInsert(Rtree *pRtree, RtreeNode *pNode){ + int iHash; + assert( pNode->pNext==0 ); + iHash = nodeHash(pNode->iNode); + pNode->pNext = pRtree->aHash[iHash]; + pRtree->aHash[iHash] = pNode; +} + +/* +** Remove node pNode from the node hash table. +*/ +static void nodeHashDelete(Rtree *pRtree, RtreeNode *pNode){ + RtreeNode **pp; + if( pNode->iNode!=0 ){ + pp = &pRtree->aHash[nodeHash(pNode->iNode)]; + for( ; (*pp)!=pNode; pp = &(*pp)->pNext){ assert(*pp); } + *pp = pNode->pNext; + pNode->pNext = 0; + } +} + +/* +** Allocate and return new r-tree node. Initially, (RtreeNode.iNode==0), +** indicating that node has not yet been assigned a node number. It is +** assigned a node number when nodeWrite() is called to write the +** node contents out to the database. +*/ +static RtreeNode *nodeNew(Rtree *pRtree, RtreeNode *pParent){ + RtreeNode *pNode; + pNode = (RtreeNode *)sqlite3_malloc(sizeof(RtreeNode) + pRtree->iNodeSize); + if( pNode ){ + memset(pNode, 0, sizeof(RtreeNode) + pRtree->iNodeSize); + pNode->zData = (u8 *)&pNode[1]; + pNode->nRef = 1; + pRtree->nNodeRef++; + pNode->pParent = pParent; + pNode->isDirty = 1; + nodeReference(pParent); + } + return pNode; +} + +/* +** Clear the Rtree.pNodeBlob object +*/ +static void nodeBlobReset(Rtree *pRtree){ + if( pRtree->pNodeBlob && pRtree->inWrTrans==0 && pRtree->nCursor==0 ){ + sqlite3_blob *pBlob = pRtree->pNodeBlob; + pRtree->pNodeBlob = 0; + sqlite3_blob_close(pBlob); + } +} + +/* +** Obtain a reference to an r-tree node. +*/ +static int nodeAcquire( + Rtree *pRtree, /* R-tree structure */ + i64 iNode, /* Node number to load */ + RtreeNode *pParent, /* Either the parent node or NULL */ + RtreeNode **ppNode /* OUT: Acquired node */ +){ + int rc = SQLITE_OK; + RtreeNode *pNode = 0; + + /* Check if the requested node is already in the hash table. If so, + ** increase its reference count and return it. + */ + if( (pNode = nodeHashLookup(pRtree, iNode))!=0 ){ + assert( !pParent || !pNode->pParent || pNode->pParent==pParent ); + if( pParent && !pNode->pParent ){ + pParent->nRef++; + pNode->pParent = pParent; + } + pNode->nRef++; + *ppNode = pNode; + return SQLITE_OK; + } + + if( pRtree->pNodeBlob ){ + sqlite3_blob *pBlob = pRtree->pNodeBlob; + pRtree->pNodeBlob = 0; + rc = sqlite3_blob_reopen(pBlob, iNode); + pRtree->pNodeBlob = pBlob; + if( rc ){ + nodeBlobReset(pRtree); + if( rc==SQLITE_NOMEM ) return SQLITE_NOMEM; + } + } + if( pRtree->pNodeBlob==0 ){ + char *zTab = sqlite3_mprintf("%s_node", pRtree->zName); + if( zTab==0 ) return SQLITE_NOMEM; + rc = sqlite3_blob_open(pRtree->db, pRtree->zDb, zTab, "data", iNode, 0, + &pRtree->pNodeBlob); + sqlite3_free(zTab); + } + if( rc ){ + nodeBlobReset(pRtree); + *ppNode = 0; + /* If unable to open an sqlite3_blob on the desired row, that can only + ** be because the shadow tables hold erroneous data. */ + if( rc==SQLITE_ERROR ) rc = SQLITE_CORRUPT_VTAB; + }else if( pRtree->iNodeSize==sqlite3_blob_bytes(pRtree->pNodeBlob) ){ + pNode = (RtreeNode *)sqlite3_malloc(sizeof(RtreeNode)+pRtree->iNodeSize); + if( !pNode ){ + rc = SQLITE_NOMEM; + }else{ + pNode->pParent = pParent; + pNode->zData = (u8 *)&pNode[1]; + pNode->nRef = 1; + pRtree->nNodeRef++; + pNode->iNode = iNode; + pNode->isDirty = 0; + pNode->pNext = 0; + rc = sqlite3_blob_read(pRtree->pNodeBlob, pNode->zData, + pRtree->iNodeSize, 0); + nodeReference(pParent); + } + } + + /* If the root node was just loaded, set pRtree->iDepth to the height + ** of the r-tree structure. A height of zero means all data is stored on + ** the root node. A height of one means the children of the root node + ** are the leaves, and so on. If the depth as specified on the root node + ** is greater than RTREE_MAX_DEPTH, the r-tree structure must be corrupt. + */ + if( pNode && iNode==1 ){ + pRtree->iDepth = readInt16(pNode->zData); + if( pRtree->iDepth>RTREE_MAX_DEPTH ){ + rc = SQLITE_CORRUPT_VTAB; + } + } + + /* If no error has occurred so far, check if the "number of entries" + ** field on the node is too large. If so, set the return code to + ** SQLITE_CORRUPT_VTAB. + */ + if( pNode && rc==SQLITE_OK ){ + if( NCELL(pNode)>((pRtree->iNodeSize-4)/pRtree->nBytesPerCell) ){ + rc = SQLITE_CORRUPT_VTAB; + } + } + + if( rc==SQLITE_OK ){ + if( pNode!=0 ){ + nodeHashInsert(pRtree, pNode); + }else{ + rc = SQLITE_CORRUPT_VTAB; + } + *ppNode = pNode; + }else{ + if( pNode ){ + pRtree->nNodeRef--; + sqlite3_free(pNode); + } + *ppNode = 0; + } + + return rc; +} + +/* +** Overwrite cell iCell of node pNode with the contents of pCell. +*/ +static void nodeOverwriteCell( + Rtree *pRtree, /* The overall R-Tree */ + RtreeNode *pNode, /* The node into which the cell is to be written */ + RtreeCell *pCell, /* The cell to write */ + int iCell /* Index into pNode into which pCell is written */ +){ + int ii; + u8 *p = &pNode->zData[4 + pRtree->nBytesPerCell*iCell]; + p += writeInt64(p, pCell->iRowid); + for(ii=0; iinDim2; ii++){ + p += writeCoord(p, &pCell->aCoord[ii]); + } + pNode->isDirty = 1; +} + +/* +** Remove the cell with index iCell from node pNode. +*/ +static void nodeDeleteCell(Rtree *pRtree, RtreeNode *pNode, int iCell){ + u8 *pDst = &pNode->zData[4 + pRtree->nBytesPerCell*iCell]; + u8 *pSrc = &pDst[pRtree->nBytesPerCell]; + int nByte = (NCELL(pNode) - iCell - 1) * pRtree->nBytesPerCell; + memmove(pDst, pSrc, nByte); + writeInt16(&pNode->zData[2], NCELL(pNode)-1); + pNode->isDirty = 1; +} + +/* +** Insert the contents of cell pCell into node pNode. If the insert +** is successful, return SQLITE_OK. +** +** If there is not enough free space in pNode, return SQLITE_FULL. +*/ +static int nodeInsertCell( + Rtree *pRtree, /* The overall R-Tree */ + RtreeNode *pNode, /* Write new cell into this node */ + RtreeCell *pCell /* The cell to be inserted */ +){ + int nCell; /* Current number of cells in pNode */ + int nMaxCell; /* Maximum number of cells for pNode */ + + nMaxCell = (pRtree->iNodeSize-4)/pRtree->nBytesPerCell; + nCell = NCELL(pNode); + + assert( nCell<=nMaxCell ); + if( nCellzData[2], nCell+1); + pNode->isDirty = 1; + } + + return (nCell==nMaxCell); +} + +/* +** If the node is dirty, write it out to the database. +*/ +static int nodeWrite(Rtree *pRtree, RtreeNode *pNode){ + int rc = SQLITE_OK; + if( pNode->isDirty ){ + sqlite3_stmt *p = pRtree->pWriteNode; + if( pNode->iNode ){ + sqlite3_bind_int64(p, 1, pNode->iNode); + }else{ + sqlite3_bind_null(p, 1); + } + sqlite3_bind_blob(p, 2, pNode->zData, pRtree->iNodeSize, SQLITE_STATIC); + sqlite3_step(p); + pNode->isDirty = 0; + rc = sqlite3_reset(p); + sqlite3_bind_null(p, 2); + if( pNode->iNode==0 && rc==SQLITE_OK ){ + pNode->iNode = sqlite3_last_insert_rowid(pRtree->db); + nodeHashInsert(pRtree, pNode); + } + } + return rc; +} + +/* +** Release a reference to a node. If the node is dirty and the reference +** count drops to zero, the node data is written to the database. +*/ +static int nodeRelease(Rtree *pRtree, RtreeNode *pNode){ + int rc = SQLITE_OK; + if( pNode ){ + assert( pNode->nRef>0 ); + assert( pRtree->nNodeRef>0 ); + pNode->nRef--; + if( pNode->nRef==0 ){ + pRtree->nNodeRef--; + if( pNode->iNode==1 ){ + pRtree->iDepth = -1; + } + if( pNode->pParent ){ + rc = nodeRelease(pRtree, pNode->pParent); + } + if( rc==SQLITE_OK ){ + rc = nodeWrite(pRtree, pNode); + } + nodeHashDelete(pRtree, pNode); + sqlite3_free(pNode); + } + } + return rc; +} + +/* +** Return the 64-bit integer value associated with cell iCell of +** node pNode. If pNode is a leaf node, this is a rowid. If it is +** an internal node, then the 64-bit integer is a child page number. +*/ +static i64 nodeGetRowid( + Rtree *pRtree, /* The overall R-Tree */ + RtreeNode *pNode, /* The node from which to extract the ID */ + int iCell /* The cell index from which to extract the ID */ +){ + assert( iCellzData[4 + pRtree->nBytesPerCell*iCell]); +} + +/* +** Return coordinate iCoord from cell iCell in node pNode. +*/ +static void nodeGetCoord( + Rtree *pRtree, /* The overall R-Tree */ + RtreeNode *pNode, /* The node from which to extract a coordinate */ + int iCell, /* The index of the cell within the node */ + int iCoord, /* Which coordinate to extract */ + RtreeCoord *pCoord /* OUT: Space to write result to */ +){ + readCoord(&pNode->zData[12 + pRtree->nBytesPerCell*iCell + 4*iCoord], pCoord); +} + +/* +** Deserialize cell iCell of node pNode. Populate the structure pointed +** to by pCell with the results. +*/ +static void nodeGetCell( + Rtree *pRtree, /* The overall R-Tree */ + RtreeNode *pNode, /* The node containing the cell to be read */ + int iCell, /* Index of the cell within the node */ + RtreeCell *pCell /* OUT: Write the cell contents here */ +){ + u8 *pData; + RtreeCoord *pCoord; + int ii = 0; + pCell->iRowid = nodeGetRowid(pRtree, pNode, iCell); + pData = pNode->zData + (12 + pRtree->nBytesPerCell*iCell); + pCoord = pCell->aCoord; + do{ + readCoord(pData, &pCoord[ii]); + readCoord(pData+4, &pCoord[ii+1]); + pData += 8; + ii += 2; + }while( iinDim2 ); +} + + +/* Forward declaration for the function that does the work of +** the virtual table module xCreate() and xConnect() methods. +*/ +static int rtreeInit( + sqlite3 *, void *, int, const char *const*, sqlite3_vtab **, char **, int +); + +/* +** Rtree virtual table module xCreate method. +*/ +static int rtreeCreate( + sqlite3 *db, + void *pAux, + int argc, const char *const*argv, + sqlite3_vtab **ppVtab, + char **pzErr +){ + return rtreeInit(db, pAux, argc, argv, ppVtab, pzErr, 1); +} + +/* +** Rtree virtual table module xConnect method. +*/ +static int rtreeConnect( + sqlite3 *db, + void *pAux, + int argc, const char *const*argv, + sqlite3_vtab **ppVtab, + char **pzErr +){ + return rtreeInit(db, pAux, argc, argv, ppVtab, pzErr, 0); +} + +/* +** Increment the r-tree reference count. +*/ +static void rtreeReference(Rtree *pRtree){ + pRtree->nBusy++; +} + +/* +** Decrement the r-tree reference count. When the reference count reaches +** zero the structure is deleted. +*/ +static void rtreeRelease(Rtree *pRtree){ + pRtree->nBusy--; + if( pRtree->nBusy==0 ){ + pRtree->inWrTrans = 0; + assert( pRtree->nCursor==0 ); + nodeBlobReset(pRtree); + assert( pRtree->nNodeRef==0 ); + sqlite3_finalize(pRtree->pWriteNode); + sqlite3_finalize(pRtree->pDeleteNode); + sqlite3_finalize(pRtree->pReadRowid); + sqlite3_finalize(pRtree->pWriteRowid); + sqlite3_finalize(pRtree->pDeleteRowid); + sqlite3_finalize(pRtree->pReadParent); + sqlite3_finalize(pRtree->pWriteParent); + sqlite3_finalize(pRtree->pDeleteParent); + sqlite3_finalize(pRtree->pWriteAux); + sqlite3_free(pRtree->zReadAuxSql); + sqlite3_free(pRtree); + } +} + +/* +** Rtree virtual table module xDisconnect method. +*/ +static int rtreeDisconnect(sqlite3_vtab *pVtab){ + rtreeRelease((Rtree *)pVtab); + return SQLITE_OK; +} + +/* +** Rtree virtual table module xDestroy method. +*/ +static int rtreeDestroy(sqlite3_vtab *pVtab){ + Rtree *pRtree = (Rtree *)pVtab; + int rc; + char *zCreate = sqlite3_mprintf( + "DROP TABLE '%q'.'%q_node';" + "DROP TABLE '%q'.'%q_rowid';" + "DROP TABLE '%q'.'%q_parent';", + pRtree->zDb, pRtree->zName, + pRtree->zDb, pRtree->zName, + pRtree->zDb, pRtree->zName + ); + if( !zCreate ){ + rc = SQLITE_NOMEM; + }else{ + nodeBlobReset(pRtree); + rc = sqlite3_exec(pRtree->db, zCreate, 0, 0, 0); + sqlite3_free(zCreate); + } + if( rc==SQLITE_OK ){ + rtreeRelease(pRtree); + } + + return rc; +} + +/* +** Rtree virtual table module xOpen method. +*/ +static int rtreeOpen(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor){ + int rc = SQLITE_NOMEM; + Rtree *pRtree = (Rtree *)pVTab; + RtreeCursor *pCsr; + + pCsr = (RtreeCursor *)sqlite3_malloc(sizeof(RtreeCursor)); + if( pCsr ){ + memset(pCsr, 0, sizeof(RtreeCursor)); + pCsr->base.pVtab = pVTab; + rc = SQLITE_OK; + pRtree->nCursor++; + } + *ppCursor = (sqlite3_vtab_cursor *)pCsr; + + return rc; +} + + +/* +** Free the RtreeCursor.aConstraint[] array and its contents. +*/ +static void freeCursorConstraints(RtreeCursor *pCsr){ + if( pCsr->aConstraint ){ + int i; /* Used to iterate through constraint array */ + for(i=0; inConstraint; i++){ + sqlite3_rtree_query_info *pInfo = pCsr->aConstraint[i].pInfo; + if( pInfo ){ + if( pInfo->xDelUser ) pInfo->xDelUser(pInfo->pUser); + sqlite3_free(pInfo); + } + } + sqlite3_free(pCsr->aConstraint); + pCsr->aConstraint = 0; + } +} + +/* +** Rtree virtual table module xClose method. +*/ +static int rtreeClose(sqlite3_vtab_cursor *cur){ + Rtree *pRtree = (Rtree *)(cur->pVtab); + int ii; + RtreeCursor *pCsr = (RtreeCursor *)cur; + assert( pRtree->nCursor>0 ); + freeCursorConstraints(pCsr); + sqlite3_finalize(pCsr->pReadAux); + sqlite3_free(pCsr->aPoint); + for(ii=0; iiaNode[ii]); + sqlite3_free(pCsr); + pRtree->nCursor--; + nodeBlobReset(pRtree); + return SQLITE_OK; +} + +/* +** Rtree virtual table module xEof method. +** +** Return non-zero if the cursor does not currently point to a valid +** record (i.e if the scan has finished), or zero otherwise. +*/ +static int rtreeEof(sqlite3_vtab_cursor *cur){ + RtreeCursor *pCsr = (RtreeCursor *)cur; + return pCsr->atEOF; +} + +/* +** Convert raw bits from the on-disk RTree record into a coordinate value. +** The on-disk format is big-endian and needs to be converted for little- +** endian platforms. The on-disk record stores integer coordinates if +** eInt is true and it stores 32-bit floating point records if eInt is +** false. a[] is the four bytes of the on-disk record to be decoded. +** Store the results in "r". +** +** There are five versions of this macro. The last one is generic. The +** other four are various architectures-specific optimizations. +*/ +#if SQLITE_BYTEORDER==1234 && MSVC_VERSION>=1300 +#define RTREE_DECODE_COORD(eInt, a, r) { \ + RtreeCoord c; /* Coordinate decoded */ \ + c.u = _byteswap_ulong(*(u32*)a); \ + r = eInt ? (sqlite3_rtree_dbl)c.i : (sqlite3_rtree_dbl)c.f; \ +} +#elif SQLITE_BYTEORDER==1234 && GCC_VERSION>=4003000 +#define RTREE_DECODE_COORD(eInt, a, r) { \ + RtreeCoord c; /* Coordinate decoded */ \ + c.u = __builtin_bswap32(*(u32*)a); \ + r = eInt ? (sqlite3_rtree_dbl)c.i : (sqlite3_rtree_dbl)c.f; \ +} +#elif SQLITE_BYTEORDER==1234 +#define RTREE_DECODE_COORD(eInt, a, r) { \ + RtreeCoord c; /* Coordinate decoded */ \ + memcpy(&c.u,a,4); \ + c.u = ((c.u>>24)&0xff)|((c.u>>8)&0xff00)| \ + ((c.u&0xff)<<24)|((c.u&0xff00)<<8); \ + r = eInt ? (sqlite3_rtree_dbl)c.i : (sqlite3_rtree_dbl)c.f; \ +} +#elif SQLITE_BYTEORDER==4321 +#define RTREE_DECODE_COORD(eInt, a, r) { \ + RtreeCoord c; /* Coordinate decoded */ \ + memcpy(&c.u,a,4); \ + r = eInt ? (sqlite3_rtree_dbl)c.i : (sqlite3_rtree_dbl)c.f; \ +} +#else +#define RTREE_DECODE_COORD(eInt, a, r) { \ + RtreeCoord c; /* Coordinate decoded */ \ + c.u = ((u32)a[0]<<24) + ((u32)a[1]<<16) \ + +((u32)a[2]<<8) + a[3]; \ + r = eInt ? (sqlite3_rtree_dbl)c.i : (sqlite3_rtree_dbl)c.f; \ +} +#endif + +/* +** Check the RTree node or entry given by pCellData and p against the MATCH +** constraint pConstraint. +*/ +static int rtreeCallbackConstraint( + RtreeConstraint *pConstraint, /* The constraint to test */ + int eInt, /* True if RTree holding integer coordinates */ + u8 *pCellData, /* Raw cell content */ + RtreeSearchPoint *pSearch, /* Container of this cell */ + sqlite3_rtree_dbl *prScore, /* OUT: score for the cell */ + int *peWithin /* OUT: visibility of the cell */ +){ + sqlite3_rtree_query_info *pInfo = pConstraint->pInfo; /* Callback info */ + int nCoord = pInfo->nCoord; /* No. of coordinates */ + int rc; /* Callback return code */ + RtreeCoord c; /* Translator union */ + sqlite3_rtree_dbl aCoord[RTREE_MAX_DIMENSIONS*2]; /* Decoded coordinates */ + + assert( pConstraint->op==RTREE_MATCH || pConstraint->op==RTREE_QUERY ); + assert( nCoord==2 || nCoord==4 || nCoord==6 || nCoord==8 || nCoord==10 ); + + if( pConstraint->op==RTREE_QUERY && pSearch->iLevel==1 ){ + pInfo->iRowid = readInt64(pCellData); + } + pCellData += 8; +#ifndef SQLITE_RTREE_INT_ONLY + if( eInt==0 ){ + switch( nCoord ){ + case 10: readCoord(pCellData+36, &c); aCoord[9] = c.f; + readCoord(pCellData+32, &c); aCoord[8] = c.f; + case 8: readCoord(pCellData+28, &c); aCoord[7] = c.f; + readCoord(pCellData+24, &c); aCoord[6] = c.f; + case 6: readCoord(pCellData+20, &c); aCoord[5] = c.f; + readCoord(pCellData+16, &c); aCoord[4] = c.f; + case 4: readCoord(pCellData+12, &c); aCoord[3] = c.f; + readCoord(pCellData+8, &c); aCoord[2] = c.f; + default: readCoord(pCellData+4, &c); aCoord[1] = c.f; + readCoord(pCellData, &c); aCoord[0] = c.f; + } + }else +#endif + { + switch( nCoord ){ + case 10: readCoord(pCellData+36, &c); aCoord[9] = c.i; + readCoord(pCellData+32, &c); aCoord[8] = c.i; + case 8: readCoord(pCellData+28, &c); aCoord[7] = c.i; + readCoord(pCellData+24, &c); aCoord[6] = c.i; + case 6: readCoord(pCellData+20, &c); aCoord[5] = c.i; + readCoord(pCellData+16, &c); aCoord[4] = c.i; + case 4: readCoord(pCellData+12, &c); aCoord[3] = c.i; + readCoord(pCellData+8, &c); aCoord[2] = c.i; + default: readCoord(pCellData+4, &c); aCoord[1] = c.i; + readCoord(pCellData, &c); aCoord[0] = c.i; + } + } + if( pConstraint->op==RTREE_MATCH ){ + int eWithin = 0; + rc = pConstraint->u.xGeom((sqlite3_rtree_geometry*)pInfo, + nCoord, aCoord, &eWithin); + if( eWithin==0 ) *peWithin = NOT_WITHIN; + *prScore = RTREE_ZERO; + }else{ + pInfo->aCoord = aCoord; + pInfo->iLevel = pSearch->iLevel - 1; + pInfo->rScore = pInfo->rParentScore = pSearch->rScore; + pInfo->eWithin = pInfo->eParentWithin = pSearch->eWithin; + rc = pConstraint->u.xQueryFunc(pInfo); + if( pInfo->eWithin<*peWithin ) *peWithin = pInfo->eWithin; + if( pInfo->rScore<*prScore || *prScorerScore; + } + } + return rc; +} + +/* +** Check the internal RTree node given by pCellData against constraint p. +** If this constraint cannot be satisfied by any child within the node, +** set *peWithin to NOT_WITHIN. +*/ +static void rtreeNonleafConstraint( + RtreeConstraint *p, /* The constraint to test */ + int eInt, /* True if RTree holds integer coordinates */ + u8 *pCellData, /* Raw cell content as appears on disk */ + int *peWithin /* Adjust downward, as appropriate */ +){ + sqlite3_rtree_dbl val; /* Coordinate value convert to a double */ + + /* p->iCoord might point to either a lower or upper bound coordinate + ** in a coordinate pair. But make pCellData point to the lower bound. + */ + pCellData += 8 + 4*(p->iCoord&0xfe); + + assert(p->op==RTREE_LE || p->op==RTREE_LT || p->op==RTREE_GE + || p->op==RTREE_GT || p->op==RTREE_EQ ); + assert( ((((char*)pCellData) - (char*)0)&3)==0 ); /* 4-byte aligned */ + switch( p->op ){ + case RTREE_LE: + case RTREE_LT: + case RTREE_EQ: + RTREE_DECODE_COORD(eInt, pCellData, val); + /* val now holds the lower bound of the coordinate pair */ + if( p->u.rValue>=val ) return; + if( p->op!=RTREE_EQ ) break; /* RTREE_LE and RTREE_LT end here */ + /* Fall through for the RTREE_EQ case */ + + default: /* RTREE_GT or RTREE_GE, or fallthrough of RTREE_EQ */ + pCellData += 4; + RTREE_DECODE_COORD(eInt, pCellData, val); + /* val now holds the upper bound of the coordinate pair */ + if( p->u.rValue<=val ) return; + } + *peWithin = NOT_WITHIN; +} + +/* +** Check the leaf RTree cell given by pCellData against constraint p. +** If this constraint is not satisfied, set *peWithin to NOT_WITHIN. +** If the constraint is satisfied, leave *peWithin unchanged. +** +** The constraint is of the form: xN op $val +** +** The op is given by p->op. The xN is p->iCoord-th coordinate in +** pCellData. $val is given by p->u.rValue. +*/ +static void rtreeLeafConstraint( + RtreeConstraint *p, /* The constraint to test */ + int eInt, /* True if RTree holds integer coordinates */ + u8 *pCellData, /* Raw cell content as appears on disk */ + int *peWithin /* Adjust downward, as appropriate */ +){ + RtreeDValue xN; /* Coordinate value converted to a double */ + + assert(p->op==RTREE_LE || p->op==RTREE_LT || p->op==RTREE_GE + || p->op==RTREE_GT || p->op==RTREE_EQ ); + pCellData += 8 + p->iCoord*4; + assert( ((((char*)pCellData) - (char*)0)&3)==0 ); /* 4-byte aligned */ + RTREE_DECODE_COORD(eInt, pCellData, xN); + switch( p->op ){ + case RTREE_LE: if( xN <= p->u.rValue ) return; break; + case RTREE_LT: if( xN < p->u.rValue ) return; break; + case RTREE_GE: if( xN >= p->u.rValue ) return; break; + case RTREE_GT: if( xN > p->u.rValue ) return; break; + default: if( xN == p->u.rValue ) return; break; + } + *peWithin = NOT_WITHIN; +} + +/* +** One of the cells in node pNode is guaranteed to have a 64-bit +** integer value equal to iRowid. Return the index of this cell. +*/ +static int nodeRowidIndex( + Rtree *pRtree, + RtreeNode *pNode, + i64 iRowid, + int *piIndex +){ + int ii; + int nCell = NCELL(pNode); + assert( nCell<200 ); + for(ii=0; iipParent; + if( pParent ){ + return nodeRowidIndex(pRtree, pParent, pNode->iNode, piIndex); + } + *piIndex = -1; + return SQLITE_OK; +} + +/* +** Compare two search points. Return negative, zero, or positive if the first +** is less than, equal to, or greater than the second. +** +** The rScore is the primary key. Smaller rScore values come first. +** If the rScore is a tie, then use iLevel as the tie breaker with smaller +** iLevel values coming first. In this way, if rScore is the same for all +** SearchPoints, then iLevel becomes the deciding factor and the result +** is a depth-first search, which is the desired default behavior. +*/ +static int rtreeSearchPointCompare( + const RtreeSearchPoint *pA, + const RtreeSearchPoint *pB +){ + if( pA->rScorerScore ) return -1; + if( pA->rScore>pB->rScore ) return +1; + if( pA->iLeveliLevel ) return -1; + if( pA->iLevel>pB->iLevel ) return +1; + return 0; +} + +/* +** Interchange two search points in a cursor. +*/ +static void rtreeSearchPointSwap(RtreeCursor *p, int i, int j){ + RtreeSearchPoint t = p->aPoint[i]; + assert( iaPoint[i] = p->aPoint[j]; + p->aPoint[j] = t; + i++; j++; + if( i=RTREE_CACHE_SZ ){ + nodeRelease(RTREE_OF_CURSOR(p), p->aNode[i]); + p->aNode[i] = 0; + }else{ + RtreeNode *pTemp = p->aNode[i]; + p->aNode[i] = p->aNode[j]; + p->aNode[j] = pTemp; + } + } +} + +/* +** Return the search point with the lowest current score. +*/ +static RtreeSearchPoint *rtreeSearchPointFirst(RtreeCursor *pCur){ + return pCur->bPoint ? &pCur->sPoint : pCur->nPoint ? pCur->aPoint : 0; +} + +/* +** Get the RtreeNode for the search point with the lowest score. +*/ +static RtreeNode *rtreeNodeOfFirstSearchPoint(RtreeCursor *pCur, int *pRC){ + sqlite3_int64 id; + int ii = 1 - pCur->bPoint; + assert( ii==0 || ii==1 ); + assert( pCur->bPoint || pCur->nPoint ); + if( pCur->aNode[ii]==0 ){ + assert( pRC!=0 ); + id = ii ? pCur->aPoint[0].id : pCur->sPoint.id; + *pRC = nodeAcquire(RTREE_OF_CURSOR(pCur), id, 0, &pCur->aNode[ii]); + } + return pCur->aNode[ii]; +} + +/* +** Push a new element onto the priority queue +*/ +static RtreeSearchPoint *rtreeEnqueue( + RtreeCursor *pCur, /* The cursor */ + RtreeDValue rScore, /* Score for the new search point */ + u8 iLevel /* Level for the new search point */ +){ + int i, j; + RtreeSearchPoint *pNew; + if( pCur->nPoint>=pCur->nPointAlloc ){ + int nNew = pCur->nPointAlloc*2 + 8; + pNew = sqlite3_realloc(pCur->aPoint, nNew*sizeof(pCur->aPoint[0])); + if( pNew==0 ) return 0; + pCur->aPoint = pNew; + pCur->nPointAlloc = nNew; + } + i = pCur->nPoint++; + pNew = pCur->aPoint + i; + pNew->rScore = rScore; + pNew->iLevel = iLevel; + assert( iLevel<=RTREE_MAX_DEPTH ); + while( i>0 ){ + RtreeSearchPoint *pParent; + j = (i-1)/2; + pParent = pCur->aPoint + j; + if( rtreeSearchPointCompare(pNew, pParent)>=0 ) break; + rtreeSearchPointSwap(pCur, j, i); + i = j; + pNew = pParent; + } + return pNew; +} + +/* +** Allocate a new RtreeSearchPoint and return a pointer to it. Return +** NULL if malloc fails. +*/ +static RtreeSearchPoint *rtreeSearchPointNew( + RtreeCursor *pCur, /* The cursor */ + RtreeDValue rScore, /* Score for the new search point */ + u8 iLevel /* Level for the new search point */ +){ + RtreeSearchPoint *pNew, *pFirst; + pFirst = rtreeSearchPointFirst(pCur); + pCur->anQueue[iLevel]++; + if( pFirst==0 + || pFirst->rScore>rScore + || (pFirst->rScore==rScore && pFirst->iLevel>iLevel) + ){ + if( pCur->bPoint ){ + int ii; + pNew = rtreeEnqueue(pCur, rScore, iLevel); + if( pNew==0 ) return 0; + ii = (int)(pNew - pCur->aPoint) + 1; + if( iiaNode[ii]==0 ); + pCur->aNode[ii] = pCur->aNode[0]; + }else{ + nodeRelease(RTREE_OF_CURSOR(pCur), pCur->aNode[0]); + } + pCur->aNode[0] = 0; + *pNew = pCur->sPoint; + } + pCur->sPoint.rScore = rScore; + pCur->sPoint.iLevel = iLevel; + pCur->bPoint = 1; + return &pCur->sPoint; + }else{ + return rtreeEnqueue(pCur, rScore, iLevel); + } +} + +#if 0 +/* Tracing routines for the RtreeSearchPoint queue */ +static void tracePoint(RtreeSearchPoint *p, int idx, RtreeCursor *pCur){ + if( idx<0 ){ printf(" s"); }else{ printf("%2d", idx); } + printf(" %d.%05lld.%02d %g %d", + p->iLevel, p->id, p->iCell, p->rScore, p->eWithin + ); + idx++; + if( idxaNode[idx]); + }else{ + printf("\n"); + } +} +static void traceQueue(RtreeCursor *pCur, const char *zPrefix){ + int ii; + printf("=== %9s ", zPrefix); + if( pCur->bPoint ){ + tracePoint(&pCur->sPoint, -1, pCur); + } + for(ii=0; iinPoint; ii++){ + if( ii>0 || pCur->bPoint ) printf(" "); + tracePoint(&pCur->aPoint[ii], ii, pCur); + } +} +# define RTREE_QUEUE_TRACE(A,B) traceQueue(A,B) +#else +# define RTREE_QUEUE_TRACE(A,B) /* no-op */ +#endif + +/* Remove the search point with the lowest current score. +*/ +static void rtreeSearchPointPop(RtreeCursor *p){ + int i, j, k, n; + i = 1 - p->bPoint; + assert( i==0 || i==1 ); + if( p->aNode[i] ){ + nodeRelease(RTREE_OF_CURSOR(p), p->aNode[i]); + p->aNode[i] = 0; + } + if( p->bPoint ){ + p->anQueue[p->sPoint.iLevel]--; + p->bPoint = 0; + }else if( p->nPoint ){ + p->anQueue[p->aPoint[0].iLevel]--; + n = --p->nPoint; + p->aPoint[0] = p->aPoint[n]; + if( naNode[1] = p->aNode[n+1]; + p->aNode[n+1] = 0; + } + i = 0; + while( (j = i*2+1)aPoint[k], &p->aPoint[j])<0 ){ + if( rtreeSearchPointCompare(&p->aPoint[k], &p->aPoint[i])<0 ){ + rtreeSearchPointSwap(p, i, k); + i = k; + }else{ + break; + } + }else{ + if( rtreeSearchPointCompare(&p->aPoint[j], &p->aPoint[i])<0 ){ + rtreeSearchPointSwap(p, i, j); + i = j; + }else{ + break; + } + } + } + } +} + + +/* +** Continue the search on cursor pCur until the front of the queue +** contains an entry suitable for returning as a result-set row, +** or until the RtreeSearchPoint queue is empty, indicating that the +** query has completed. +*/ +static int rtreeStepToLeaf(RtreeCursor *pCur){ + RtreeSearchPoint *p; + Rtree *pRtree = RTREE_OF_CURSOR(pCur); + RtreeNode *pNode; + int eWithin; + int rc = SQLITE_OK; + int nCell; + int nConstraint = pCur->nConstraint; + int ii; + int eInt; + RtreeSearchPoint x; + + eInt = pRtree->eCoordType==RTREE_COORD_INT32; + while( (p = rtreeSearchPointFirst(pCur))!=0 && p->iLevel>0 ){ + pNode = rtreeNodeOfFirstSearchPoint(pCur, &rc); + if( rc ) return rc; + nCell = NCELL(pNode); + assert( nCell<200 ); + while( p->iCellzData + (4+pRtree->nBytesPerCell*p->iCell); + eWithin = FULLY_WITHIN; + for(ii=0; iiaConstraint + ii; + if( pConstraint->op>=RTREE_MATCH ){ + rc = rtreeCallbackConstraint(pConstraint, eInt, pCellData, p, + &rScore, &eWithin); + if( rc ) return rc; + }else if( p->iLevel==1 ){ + rtreeLeafConstraint(pConstraint, eInt, pCellData, &eWithin); + }else{ + rtreeNonleafConstraint(pConstraint, eInt, pCellData, &eWithin); + } + if( eWithin==NOT_WITHIN ) break; + } + p->iCell++; + if( eWithin==NOT_WITHIN ) continue; + x.iLevel = p->iLevel - 1; + if( x.iLevel ){ + x.id = readInt64(pCellData); + x.iCell = 0; + }else{ + x.id = p->id; + x.iCell = p->iCell - 1; + } + if( p->iCell>=nCell ){ + RTREE_QUEUE_TRACE(pCur, "POP-S:"); + rtreeSearchPointPop(pCur); + } + if( rScoreeWithin = (u8)eWithin; + p->id = x.id; + p->iCell = x.iCell; + RTREE_QUEUE_TRACE(pCur, "PUSH-S:"); + break; + } + if( p->iCell>=nCell ){ + RTREE_QUEUE_TRACE(pCur, "POP-Se:"); + rtreeSearchPointPop(pCur); + } + } + pCur->atEOF = p==0; + return SQLITE_OK; +} + +/* +** Rtree virtual table module xNext method. +*/ +static int rtreeNext(sqlite3_vtab_cursor *pVtabCursor){ + RtreeCursor *pCsr = (RtreeCursor *)pVtabCursor; + int rc = SQLITE_OK; + + /* Move to the next entry that matches the configured constraints. */ + RTREE_QUEUE_TRACE(pCsr, "POP-Nx:"); + if( pCsr->bAuxValid ){ + pCsr->bAuxValid = 0; + sqlite3_reset(pCsr->pReadAux); + } + rtreeSearchPointPop(pCsr); + rc = rtreeStepToLeaf(pCsr); + return rc; +} + +/* +** Rtree virtual table module xRowid method. +*/ +static int rtreeRowid(sqlite3_vtab_cursor *pVtabCursor, sqlite_int64 *pRowid){ + RtreeCursor *pCsr = (RtreeCursor *)pVtabCursor; + RtreeSearchPoint *p = rtreeSearchPointFirst(pCsr); + int rc = SQLITE_OK; + RtreeNode *pNode = rtreeNodeOfFirstSearchPoint(pCsr, &rc); + if( rc==SQLITE_OK && p ){ + *pRowid = nodeGetRowid(RTREE_OF_CURSOR(pCsr), pNode, p->iCell); + } + return rc; +} + +/* +** Rtree virtual table module xColumn method. +*/ +static int rtreeColumn(sqlite3_vtab_cursor *cur, sqlite3_context *ctx, int i){ + Rtree *pRtree = (Rtree *)cur->pVtab; + RtreeCursor *pCsr = (RtreeCursor *)cur; + RtreeSearchPoint *p = rtreeSearchPointFirst(pCsr); + RtreeCoord c; + int rc = SQLITE_OK; + RtreeNode *pNode = rtreeNodeOfFirstSearchPoint(pCsr, &rc); + + if( rc ) return rc; + if( p==0 ) return SQLITE_OK; + if( i==0 ){ + sqlite3_result_int64(ctx, nodeGetRowid(pRtree, pNode, p->iCell)); + }else if( i<=pRtree->nDim2 ){ + nodeGetCoord(pRtree, pNode, p->iCell, i-1, &c); +#ifndef SQLITE_RTREE_INT_ONLY + if( pRtree->eCoordType==RTREE_COORD_REAL32 ){ + sqlite3_result_double(ctx, c.f); + }else +#endif + { + assert( pRtree->eCoordType==RTREE_COORD_INT32 ); + sqlite3_result_int(ctx, c.i); + } + }else{ + if( !pCsr->bAuxValid ){ + if( pCsr->pReadAux==0 ){ + rc = sqlite3_prepare_v3(pRtree->db, pRtree->zReadAuxSql, -1, 0, + &pCsr->pReadAux, 0); + if( rc ) return rc; + } + sqlite3_bind_int64(pCsr->pReadAux, 1, + nodeGetRowid(pRtree, pNode, p->iCell)); + rc = sqlite3_step(pCsr->pReadAux); + if( rc==SQLITE_ROW ){ + pCsr->bAuxValid = 1; + }else{ + sqlite3_reset(pCsr->pReadAux); + if( rc==SQLITE_DONE ) rc = SQLITE_OK; + return rc; + } + } + sqlite3_result_value(ctx, + sqlite3_column_value(pCsr->pReadAux, i - pRtree->nDim2 + 1)); + } + return SQLITE_OK; +} + +/* +** Use nodeAcquire() to obtain the leaf node containing the record with +** rowid iRowid. If successful, set *ppLeaf to point to the node and +** return SQLITE_OK. If there is no such record in the table, set +** *ppLeaf to 0 and return SQLITE_OK. If an error occurs, set *ppLeaf +** to zero and return an SQLite error code. +*/ +static int findLeafNode( + Rtree *pRtree, /* RTree to search */ + i64 iRowid, /* The rowid searching for */ + RtreeNode **ppLeaf, /* Write the node here */ + sqlite3_int64 *piNode /* Write the node-id here */ +){ + int rc; + *ppLeaf = 0; + sqlite3_bind_int64(pRtree->pReadRowid, 1, iRowid); + if( sqlite3_step(pRtree->pReadRowid)==SQLITE_ROW ){ + i64 iNode = sqlite3_column_int64(pRtree->pReadRowid, 0); + if( piNode ) *piNode = iNode; + rc = nodeAcquire(pRtree, iNode, 0, ppLeaf); + sqlite3_reset(pRtree->pReadRowid); + }else{ + rc = sqlite3_reset(pRtree->pReadRowid); + } + return rc; +} + +/* +** This function is called to configure the RtreeConstraint object passed +** as the second argument for a MATCH constraint. The value passed as the +** first argument to this function is the right-hand operand to the MATCH +** operator. +*/ +static int deserializeGeometry(sqlite3_value *pValue, RtreeConstraint *pCons){ + RtreeMatchArg *pBlob, *pSrc; /* BLOB returned by geometry function */ + sqlite3_rtree_query_info *pInfo; /* Callback information */ pSrc = sqlite3_value_pointer(pValue, "RtreeMatchArg"); if( pSrc==0 ) return SQLITE_ERROR; @@ -168727,14 +180857,17 @@ static int rtreeFilter( int ii; int rc = SQLITE_OK; int iCell = 0; + sqlite3_stmt *pStmt; rtreeReference(pRtree); /* Reset the cursor to the same state as rtreeOpen() leaves it in. */ freeCursorConstraints(pCsr); sqlite3_free(pCsr->aPoint); + pStmt = pCsr->pReadAux; memset(pCsr, 0, sizeof(RtreeCursor)); pCsr->base.pVtab = (sqlite3_vtab*)pRtree; + pCsr->pReadAux = pStmt; pCsr->iStrategy = idxNum; if( idxNum==1 ){ @@ -168897,10 +181030,14 @@ static int rtreeBestIndex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo){ */ pIdxInfo->estimatedCost = 30.0; pIdxInfo->estimatedRows = 1; + pIdxInfo->idxFlags = SQLITE_INDEX_SCAN_UNIQUE; return SQLITE_OK; } - if( p->usable && (p->iColumn>0 || p->op==SQLITE_INDEX_CONSTRAINT_MATCH) ){ + if( p->usable + && ((p->iColumn>0 && p->iColumn<=pRtree->nDim2) + || p->op==SQLITE_INDEX_CONSTRAINT_MATCH) + ){ u8 op; switch( p->op ){ case SQLITE_INDEX_CONSTRAINT_EQ: op = RTREE_EQ; break; @@ -169473,7 +181610,7 @@ static int SplitNode( }else{ pLeft = pNode; pRight = nodeNew(pRtree, pLeft->pParent); - nodeReference(pLeft); + pLeft->nRef++; } if( !pLeft || !pRight ){ @@ -169882,7 +182019,7 @@ static int reinsertNodeContent(Rtree *pRtree, RtreeNode *pNode){ /* ** Select a currently unused rowid for a new r-tree record. */ -static int newRowid(Rtree *pRtree, i64 *piRowid){ +static int rtreeNewRowid(Rtree *pRtree, i64 *piRowid){ int rc; sqlite3_bind_null(pRtree->pWriteRowid, 1); sqlite3_bind_null(pRtree->pWriteRowid, 2); @@ -169963,6 +182100,7 @@ static int rtreeDeleteRowid(Rtree *pRtree, sqlite3_int64 iDelete){ rc = reinsertNodeContent(pRtree, pLeaf); } pRtree->pDeleted = pLeaf->pNext; + pRtree->nNodeRef--; sqlite3_free(pLeaf); } @@ -170059,7 +182197,7 @@ static int rtreeConstraintError(Rtree *pRtree, int iCol){ static int rtreeUpdate( sqlite3_vtab *pVtab, int nData, - sqlite3_value **azData, + sqlite3_value **aData, sqlite_int64 *pRowid ){ Rtree *pRtree = (Rtree *)pVtab; @@ -170067,6 +182205,12 @@ static int rtreeUpdate( RtreeCell cell; /* New cell to insert if nData>1 */ int bHaveRowid = 0; /* Set to 1 after new rowid is determined */ + if( pRtree->nNodeRef ){ + /* Unable to write to the btree while another cursor is reading from it, + ** since the write might do a rebalance which would disrupt the read + ** cursor. */ + return SQLITE_LOCKED_VTAB; + } rtreeReference(pRtree); assert(nData>=1); @@ -170085,8 +182229,10 @@ static int rtreeUpdate( */ if( nData>1 ){ int ii; + int nn = nData - 4; - /* Populate the cell.aCoord[] array. The first coordinate is azData[3]. + if( nn > pRtree->nDim2 ) nn = pRtree->nDim2; + /* Populate the cell.aCoord[] array. The first coordinate is aData[3]. ** ** NB: nData can only be less than nDim*2+3 if the rtree is mis-declared ** with "column" that are interpreted as table constraints. @@ -170094,13 +182240,12 @@ static int rtreeUpdate( ** This problem was discovered after years of use, so we silently ignore ** these kinds of misdeclared tables to avoid breaking any legacy. */ - assert( nData<=(pRtree->nDim2 + 3) ); #ifndef SQLITE_RTREE_INT_ONLY if( pRtree->eCoordType==RTREE_COORD_REAL32 ){ - for(ii=0; iicell.aCoord[ii+1].f ){ rc = rtreeConstraintError(pRtree, ii+1); goto constraint; @@ -170109,9 +182254,9 @@ static int rtreeUpdate( }else #endif { - for(ii=0; iicell.aCoord[ii+1].i ){ rc = rtreeConstraintError(pRtree, ii+1); goto constraint; @@ -170121,10 +182266,10 @@ static int rtreeUpdate( /* If a rowid value was supplied, check if it is already present in ** the table. If so, the constraint has failed. */ - if( sqlite3_value_type(azData[2])!=SQLITE_NULL ){ - cell.iRowid = sqlite3_value_int64(azData[2]); - if( sqlite3_value_type(azData[0])==SQLITE_NULL - || sqlite3_value_int64(azData[0])!=cell.iRowid + if( sqlite3_value_type(aData[2])!=SQLITE_NULL ){ + cell.iRowid = sqlite3_value_int64(aData[2]); + if( sqlite3_value_type(aData[0])==SQLITE_NULL + || sqlite3_value_int64(aData[0])!=cell.iRowid ){ int steprc; sqlite3_bind_int64(pRtree->pReadRowid, 1, cell.iRowid); @@ -170143,16 +182288,16 @@ static int rtreeUpdate( } } - /* If azData[0] is not an SQL NULL value, it is the rowid of a + /* If aData[0] is not an SQL NULL value, it is the rowid of a ** record to delete from the r-tree table. The following block does ** just that. */ - if( sqlite3_value_type(azData[0])!=SQLITE_NULL ){ - rc = rtreeDeleteRowid(pRtree, sqlite3_value_int64(azData[0])); + if( sqlite3_value_type(aData[0])!=SQLITE_NULL ){ + rc = rtreeDeleteRowid(pRtree, sqlite3_value_int64(aData[0])); } - /* If the azData[] array contains more than one element, elements - ** (azData[2]..azData[argc-1]) contain a new record to insert into + /* If the aData[] array contains more than one element, elements + ** (aData[2]..aData[argc-1]) contain a new record to insert into ** the r-tree structure. */ if( rc==SQLITE_OK && nData>1 ){ @@ -170161,7 +182306,7 @@ static int rtreeUpdate( /* Figure out the rowid of the new row. */ if( bHaveRowid==0 ){ - rc = newRowid(pRtree, &cell.iRowid); + rc = rtreeNewRowid(pRtree, &cell.iRowid); } *pRowid = cell.iRowid; @@ -170177,6 +182322,16 @@ static int rtreeUpdate( rc = rc2; } } + if( pRtree->nAux ){ + sqlite3_stmt *pUp = pRtree->pWriteAux; + int jj; + sqlite3_bind_int64(pUp, 1, *pRowid); + for(jj=0; jjnAux; jj++){ + sqlite3_bind_value(pUp, jj+2, aData[pRtree->nDim2+3+jj]); + } + sqlite3_step(pUp); + rc = sqlite3_reset(pUp); + } } constraint: @@ -170243,7 +182398,7 @@ static int rtreeRename(sqlite3_vtab *pVtab, const char *zNewName){ */ static int rtreeSavepoint(sqlite3_vtab *pVtab, int iSavepoint){ Rtree *pRtree = (Rtree *)pVtab; - int iwt = pRtree->inWrTrans; + u8 iwt = pRtree->inWrTrans; UNUSED_PARAMETER(iSavepoint); pRtree->inWrTrans = 0; nodeBlobReset(pRtree); @@ -170295,8 +182450,24 @@ static int rtreeQueryStat1(sqlite3 *db, Rtree *pRtree){ return rc; } + +/* +** Return true if zName is the extension on one of the shadow tables used +** by this module. +*/ +static int rtreeShadowName(const char *zName){ + static const char *azName[] = { + "node", "parent", "rowid" + }; + unsigned int i; + for(i=0; idb = db; if( isCreate ){ - char *zCreate = sqlite3_mprintf( -"CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY, data BLOB);" -"CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY, nodeno INTEGER);" -"CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY," - " parentnode INTEGER);" -"INSERT INTO '%q'.'%q_node' VALUES(1, zeroblob(%d))", - zDb, zPrefix, zDb, zPrefix, zDb, zPrefix, zDb, zPrefix, pRtree->iNodeSize - ); + char *zCreate; + sqlite3_str *p = sqlite3_str_new(db); + int ii; + sqlite3_str_appendf(p, + "CREATE TABLE \"%w\".\"%w_rowid\"(rowid INTEGER PRIMARY KEY,nodeno", + zDb, zPrefix); + for(ii=0; iinAux; ii++){ + sqlite3_str_appendf(p,",a%d",ii); + } + sqlite3_str_appendf(p, + ");CREATE TABLE \"%w\".\"%w_node\"(nodeno INTEGER PRIMARY KEY,data);", + zDb, zPrefix); + sqlite3_str_appendf(p, + "CREATE TABLE \"%w\".\"%w_parent\"(nodeno INTEGER PRIMARY KEY,parentnode);", + zDb, zPrefix); + sqlite3_str_appendf(p, + "INSERT INTO \"%w\".\"%w_node\"VALUES(1,zeroblob(%d))", + zDb, zPrefix, pRtree->iNodeSize); + zCreate = sqlite3_str_finish(p); if( !zCreate ){ return SQLITE_NOMEM; } @@ -170381,7 +182564,17 @@ static int rtreeSqlInit( rc = rtreeQueryStat1(db, pRtree); for(i=0; inAux==0 ){ + zFormat = azSql[i]; + }else { + /* An UPSERT is very slightly slower than REPLACE, but it is needed + ** if there are auxiliary columns */ + zFormat = "INSERT INTO\"%w\".\"%w_rowid\"(rowid,nodeno)VALUES(?1,?2)" + "ON CONFLICT(rowid)DO UPDATE SET nodeno=excluded.nodeno"; + } + zSql = sqlite3_mprintf(zFormat, zDb, zPrefix); if( zSql ){ rc = sqlite3_prepare_v3(db, zSql, -1, SQLITE_PREPARE_PERSISTENT, appStmt[i], 0); @@ -170390,6 +182583,36 @@ static int rtreeSqlInit( } sqlite3_free(zSql); } + if( pRtree->nAux ){ + pRtree->zReadAuxSql = sqlite3_mprintf( + "SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1", + zDb, zPrefix); + if( pRtree->zReadAuxSql==0 ){ + rc = SQLITE_NOMEM; + }else{ + sqlite3_str *p = sqlite3_str_new(db); + int ii; + char *zSql; + sqlite3_str_appendf(p, "UPDATE \"%w\".\"%w_rowid\"SET ", zDb, zPrefix); + for(ii=0; iinAux; ii++){ + if( ii ) sqlite3_str_append(p, ",", 1); + if( iinAuxNotNull ){ + sqlite3_str_appendf(p,"a%d=coalesce(?%d,a%d)",ii,ii+2,ii); + }else{ + sqlite3_str_appendf(p,"a%d=?%d",ii,ii+2); + } + } + sqlite3_str_appendf(p, " WHERE rowid=?1"); + zSql = sqlite3_str_finish(p); + if( zSql==0 ){ + rc = SQLITE_NOMEM; + }else{ + rc = sqlite3_prepare_v3(db, zSql, -1, SQLITE_PREPARE_PERSISTENT, + &pRtree->pWriteAux, 0); + sqlite3_free(zSql); + } + } + } return rc; } @@ -170492,17 +182715,22 @@ static int rtreeInit( int nDb; /* Length of string argv[1] */ int nName; /* Length of string argv[2] */ int eCoordType = (pAux ? RTREE_COORD_INT32 : RTREE_COORD_REAL32); + sqlite3_str *pSql; + char *zSql; + int ii = 4; + int iErr; const char *aErrMsg[] = { 0, /* 0 */ "Wrong number of columns for an rtree table", /* 1 */ "Too few columns for an rtree table", /* 2 */ - "Too many columns for an rtree table" /* 3 */ + "Too many columns for an rtree table", /* 3 */ + "Auxiliary rtree columns must be last" /* 4 */ }; - int iErr = (argc<6) ? 2 : argc>(RTREE_MAX_DIMENSIONS*2+4) ? 3 : argc%2; - if( aErrMsg[iErr] ){ - *pzErr = sqlite3_mprintf("%s", aErrMsg[iErr]); + assert( RTREE_MAX_AUX_COLUMN<256 ); /* Aux columns counted by a u8 */ + if( argc>RTREE_MAX_AUX_COLUMN+3 ){ + *pzErr = sqlite3_mprintf("%s", aErrMsg[3]); return SQLITE_ERROR; } @@ -170520,53 +182748,73 @@ static int rtreeInit( pRtree->base.pModule = &rtreeModule; pRtree->zDb = (char *)&pRtree[1]; pRtree->zName = &pRtree->zDb[nDb+1]; - pRtree->nDim = (u8)((argc-4)/2); - pRtree->nDim2 = pRtree->nDim*2; - pRtree->nBytesPerCell = 8 + pRtree->nDim2*4; pRtree->eCoordType = (u8)eCoordType; memcpy(pRtree->zDb, argv[1], nDb); memcpy(pRtree->zName, argv[2], nName); - /* Figure out the node size to use. */ - rc = getNodeSize(db, pRtree, isCreate, pzErr); /* Create/Connect to the underlying relational database schema. If ** that is successful, call sqlite3_declare_vtab() to configure ** the r-tree table schema. */ - if( rc==SQLITE_OK ){ - if( (rc = rtreeSqlInit(pRtree, db, argv[1], argv[2], isCreate)) ){ - *pzErr = sqlite3_mprintf("%s", sqlite3_errmsg(db)); + pSql = sqlite3_str_new(db); + sqlite3_str_appendf(pSql, "CREATE TABLE x(%s", argv[3]); + for(ii=4; iinAux++; + sqlite3_str_appendf(pSql, ",%s", argv[ii]+1); + }else if( pRtree->nAux>0 ){ + break; }else{ - char *zSql = sqlite3_mprintf("CREATE TABLE x(%s", argv[3]); - char *zTmp; - int ii; - for(ii=4; zSql && iinDim2++; + sqlite3_str_appendf(pSql, ",%s", argv[ii]); } } + sqlite3_str_appendf(pSql, ");"); + zSql = sqlite3_str_finish(pSql); + if( !zSql ){ + rc = SQLITE_NOMEM; + }else if( iinDim = pRtree->nDim2/2; + if( pRtree->nDim<1 ){ + iErr = 2; + }else if( pRtree->nDim2>RTREE_MAX_DIMENSIONS*2 ){ + iErr = 3; + }else if( pRtree->nDim2 % 2 ){ + iErr = 1; + }else{ + iErr = 0; + } + if( iErr ){ + *pzErr = sqlite3_mprintf("%s", aErrMsg[iErr]); + goto rtreeInit_fail; + } + pRtree->nBytesPerCell = 8 + pRtree->nDim2*4; - if( rc==SQLITE_OK ){ - *ppVtab = (sqlite3_vtab *)pRtree; - }else{ - assert( *ppVtab==0 ); - assert( pRtree->nBusy==1 ); - rtreeRelease(pRtree); + /* Figure out the node size to use. */ + rc = getNodeSize(db, pRtree, isCreate, pzErr); + if( rc ) goto rtreeInit_fail; + rc = rtreeSqlInit(pRtree, db, argv[1], argv[2], isCreate); + if( rc ){ + *pzErr = sqlite3_mprintf("%s", sqlite3_errmsg(db)); + goto rtreeInit_fail; } + + *ppVtab = (sqlite3_vtab *)pRtree; + return SQLITE_OK; + +rtreeInit_fail: + if( rc==SQLITE_OK ) rc = SQLITE_ERROR; + assert( *ppVtab==0 ); + assert( pRtree->nBusy==1 ); + rtreeRelease(pRtree); return rc; } @@ -170795,7 +183043,7 @@ static u8 *rtreeCheckGetNode(RtreeCheck *pCheck, i64 iNode, int *pnNode){ ** two tables are: ** ** CREATE TABLE %_parent(nodeno INTEGER PRIMARY KEY, parentnode INTEGER) -** CREATE TABLE %_rowid(rowid INTEGER PRIMARY KEY, nodeno INTEGER) +** CREATE TABLE %_rowid(rowid INTEGER PRIMARY KEY, nodeno INTEGER, ...) ** ** In both cases, this function checks that there exists an entry with ** IPK value iKey and the second column set to iVal. @@ -170810,8 +183058,8 @@ static void rtreeCheckMapping( int rc; sqlite3_stmt *pStmt; const char *azSql[2] = { - "SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?", - "SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?" + "SELECT parentnode FROM %Q.'%q_parent' WHERE nodeno=?1", + "SELECT nodeno FROM %Q.'%q_rowid' WHERE rowid=?1" }; assert( bLeaf==0 || bLeaf==1 ); @@ -170984,14975 +183232,15110 @@ static void rtreeCheckCount(RtreeCheck *pCheck, const char *zTbl, i64 nExpect){ /* ** This function does the bulk of the work for the rtree integrity-check. -** It is called by rtreecheck(), which is the SQL function implementation. -*/ -static int rtreeCheckTable( - sqlite3 *db, /* Database handle to access db through */ - const char *zDb, /* Name of db ("main", "temp" etc.) */ - const char *zTab, /* Name of rtree table to check */ - char **pzReport /* OUT: sqlite3_malloc'd report text */ -){ - RtreeCheck check; /* Common context for various routines */ - sqlite3_stmt *pStmt = 0; /* Used to find column count of rtree table */ - int bEnd = 0; /* True if transaction should be closed */ - - /* Initialize the context object */ - memset(&check, 0, sizeof(check)); - check.db = db; - check.zDb = zDb; - check.zTab = zTab; - - /* If there is not already an open transaction, open one now. This is - ** to ensure that the queries run as part of this integrity-check operate - ** on a consistent snapshot. */ - if( sqlite3_get_autocommit(db) ){ - check.rc = sqlite3_exec(db, "BEGIN", 0, 0, 0); - bEnd = 1; - } - - /* Find number of dimensions in the rtree table. */ - pStmt = rtreeCheckPrepare(&check, "SELECT * FROM %Q.%Q", zDb, zTab); - if( pStmt ){ - int rc; - check.nDim = (sqlite3_column_count(pStmt) - 1) / 2; - if( check.nDim<1 ){ - rtreeCheckAppendMsg(&check, "Schema corrupt or not an rtree"); - }else if( SQLITE_ROW==sqlite3_step(pStmt) ){ - check.bInt = (sqlite3_column_type(pStmt, 1)==SQLITE_INTEGER); - } - rc = sqlite3_finalize(pStmt); - if( rc!=SQLITE_CORRUPT ) check.rc = rc; - } - - /* Do the actual integrity-check */ - if( check.nDim>=1 ){ - if( check.rc==SQLITE_OK ){ - rtreeCheckNode(&check, 0, 0, 1); - } - rtreeCheckCount(&check, "_rowid", check.nLeaf); - rtreeCheckCount(&check, "_parent", check.nNonLeaf); - } - - /* Finalize SQL statements used by the integrity-check */ - sqlite3_finalize(check.pGetNode); - sqlite3_finalize(check.aCheckMapping[0]); - sqlite3_finalize(check.aCheckMapping[1]); - - /* If one was opened, close the transaction */ - if( bEnd ){ - int rc = sqlite3_exec(db, "END", 0, 0, 0); - if( check.rc==SQLITE_OK ) check.rc = rc; - } - *pzReport = check.zReport; - return check.rc; -} - -/* -** Usage: -** -** rtreecheck(); -** rtreecheck(, ); -** -** Invoking this SQL function runs an integrity-check on the named rtree -** table. The integrity-check verifies the following: -** -** 1. For each cell in the r-tree structure (%_node table), that: -** -** a) for each dimension, (coord1 <= coord2). -** -** b) unless the cell is on the root node, that the cell is bounded -** by the parent cell on the parent node. -** -** c) for leaf nodes, that there is an entry in the %_rowid -** table corresponding to the cell's rowid value that -** points to the correct node. -** -** d) for cells on non-leaf nodes, that there is an entry in the -** %_parent table mapping from the cell's child node to the -** node that it resides on. -** -** 2. That there are the same number of entries in the %_rowid table -** as there are leaf cells in the r-tree structure, and that there -** is a leaf cell that corresponds to each entry in the %_rowid table. -** -** 3. That there are the same number of entries in the %_parent table -** as there are non-leaf cells in the r-tree structure, and that -** there is a non-leaf cell that corresponds to each entry in the -** %_parent table. -*/ -static void rtreecheck( - sqlite3_context *ctx, - int nArg, - sqlite3_value **apArg -){ - if( nArg!=1 && nArg!=2 ){ - sqlite3_result_error(ctx, - "wrong number of arguments to function rtreecheck()", -1 - ); - }else{ - int rc; - char *zReport = 0; - const char *zDb = (const char*)sqlite3_value_text(apArg[0]); - const char *zTab; - if( nArg==1 ){ - zTab = zDb; - zDb = "main"; - }else{ - zTab = (const char*)sqlite3_value_text(apArg[1]); - } - rc = rtreeCheckTable(sqlite3_context_db_handle(ctx), zDb, zTab, &zReport); - if( rc==SQLITE_OK ){ - sqlite3_result_text(ctx, zReport ? zReport : "ok", -1, SQLITE_TRANSIENT); - }else{ - sqlite3_result_error_code(ctx, rc); - } - sqlite3_free(zReport); - } -} - - -/* -** Register the r-tree module with database handle db. This creates the -** virtual table module "rtree" and the debugging/analysis scalar -** function "rtreenode". -*/ -SQLITE_PRIVATE int sqlite3RtreeInit(sqlite3 *db){ - const int utf8 = SQLITE_UTF8; - int rc; - - rc = sqlite3_create_function(db, "rtreenode", 2, utf8, 0, rtreenode, 0, 0); - if( rc==SQLITE_OK ){ - rc = sqlite3_create_function(db, "rtreedepth", 1, utf8, 0,rtreedepth, 0, 0); - } - if( rc==SQLITE_OK ){ - rc = sqlite3_create_function(db, "rtreecheck", -1, utf8, 0,rtreecheck, 0,0); - } - if( rc==SQLITE_OK ){ -#ifdef SQLITE_RTREE_INT_ONLY - void *c = (void *)RTREE_COORD_INT32; -#else - void *c = (void *)RTREE_COORD_REAL32; -#endif - rc = sqlite3_create_module_v2(db, "rtree", &rtreeModule, c, 0); - } - if( rc==SQLITE_OK ){ - void *c = (void *)RTREE_COORD_INT32; - rc = sqlite3_create_module_v2(db, "rtree_i32", &rtreeModule, c, 0); - } - - return rc; -} - -/* -** This routine deletes the RtreeGeomCallback object that was attached -** one of the SQL functions create by sqlite3_rtree_geometry_callback() -** or sqlite3_rtree_query_callback(). In other words, this routine is the -** destructor for an RtreeGeomCallback objecct. This routine is called when -** the corresponding SQL function is deleted. -*/ -static void rtreeFreeCallback(void *p){ - RtreeGeomCallback *pInfo = (RtreeGeomCallback*)p; - if( pInfo->xDestructor ) pInfo->xDestructor(pInfo->pContext); - sqlite3_free(p); -} - -/* -** This routine frees the BLOB that is returned by geomCallback(). -*/ -static void rtreeMatchArgFree(void *pArg){ - int i; - RtreeMatchArg *p = (RtreeMatchArg*)pArg; - for(i=0; inParam; i++){ - sqlite3_value_free(p->apSqlParam[i]); - } - sqlite3_free(p); -} - -/* -** Each call to sqlite3_rtree_geometry_callback() or -** sqlite3_rtree_query_callback() creates an ordinary SQLite -** scalar function that is implemented by this routine. -** -** All this function does is construct an RtreeMatchArg object that -** contains the geometry-checking callback routines and a list of -** parameters to this function, then return that RtreeMatchArg object -** as a BLOB. -** -** The R-Tree MATCH operator will read the returned BLOB, deserialize -** the RtreeMatchArg object, and use the RtreeMatchArg object to figure -** out which elements of the R-Tree should be returned by the query. -*/ -static void geomCallback(sqlite3_context *ctx, int nArg, sqlite3_value **aArg){ - RtreeGeomCallback *pGeomCtx = (RtreeGeomCallback *)sqlite3_user_data(ctx); - RtreeMatchArg *pBlob; - int nBlob; - int memErr = 0; - - nBlob = sizeof(RtreeMatchArg) + (nArg-1)*sizeof(RtreeDValue) - + nArg*sizeof(sqlite3_value*); - pBlob = (RtreeMatchArg *)sqlite3_malloc(nBlob); - if( !pBlob ){ - sqlite3_result_error_nomem(ctx); - }else{ - int i; - pBlob->iSize = nBlob; - pBlob->cb = pGeomCtx[0]; - pBlob->apSqlParam = (sqlite3_value**)&pBlob->aParam[nArg]; - pBlob->nParam = nArg; - for(i=0; iapSqlParam[i] = sqlite3_value_dup(aArg[i]); - if( pBlob->apSqlParam[i]==0 ) memErr = 1; -#ifdef SQLITE_RTREE_INT_ONLY - pBlob->aParam[i] = sqlite3_value_int64(aArg[i]); -#else - pBlob->aParam[i] = sqlite3_value_double(aArg[i]); -#endif - } - if( memErr ){ - sqlite3_result_error_nomem(ctx); - rtreeMatchArgFree(pBlob); - }else{ - sqlite3_result_pointer(ctx, pBlob, "RtreeMatchArg", rtreeMatchArgFree); - } - } -} - -/* -** Register a new geometry function for use with the r-tree MATCH operator. -*/ -SQLITE_API int sqlite3_rtree_geometry_callback( - sqlite3 *db, /* Register SQL function on this connection */ - const char *zGeom, /* Name of the new SQL function */ - int (*xGeom)(sqlite3_rtree_geometry*,int,RtreeDValue*,int*), /* Callback */ - void *pContext /* Extra data associated with the callback */ -){ - RtreeGeomCallback *pGeomCtx; /* Context object for new user-function */ - - /* Allocate and populate the context object. */ - pGeomCtx = (RtreeGeomCallback *)sqlite3_malloc(sizeof(RtreeGeomCallback)); - if( !pGeomCtx ) return SQLITE_NOMEM; - pGeomCtx->xGeom = xGeom; - pGeomCtx->xQueryFunc = 0; - pGeomCtx->xDestructor = 0; - pGeomCtx->pContext = pContext; - return sqlite3_create_function_v2(db, zGeom, -1, SQLITE_ANY, - (void *)pGeomCtx, geomCallback, 0, 0, rtreeFreeCallback - ); -} - -/* -** Register a new 2nd-generation geometry function for use with the -** r-tree MATCH operator. -*/ -SQLITE_API int sqlite3_rtree_query_callback( - sqlite3 *db, /* Register SQL function on this connection */ - const char *zQueryFunc, /* Name of new SQL function */ - int (*xQueryFunc)(sqlite3_rtree_query_info*), /* Callback */ - void *pContext, /* Extra data passed into the callback */ - void (*xDestructor)(void*) /* Destructor for the extra data */ -){ - RtreeGeomCallback *pGeomCtx; /* Context object for new user-function */ - - /* Allocate and populate the context object. */ - pGeomCtx = (RtreeGeomCallback *)sqlite3_malloc(sizeof(RtreeGeomCallback)); - if( !pGeomCtx ) return SQLITE_NOMEM; - pGeomCtx->xGeom = 0; - pGeomCtx->xQueryFunc = xQueryFunc; - pGeomCtx->xDestructor = xDestructor; - pGeomCtx->pContext = pContext; - return sqlite3_create_function_v2(db, zQueryFunc, -1, SQLITE_ANY, - (void *)pGeomCtx, geomCallback, 0, 0, rtreeFreeCallback - ); -} - -#if !SQLITE_CORE -#ifdef _WIN32 -__declspec(dllexport) -#endif -SQLITE_API int sqlite3_rtree_init( - sqlite3 *db, - char **pzErrMsg, - const sqlite3_api_routines *pApi -){ - SQLITE_EXTENSION_INIT2(pApi) - return sqlite3RtreeInit(db); -} -#endif - -#endif - -/************** End of rtree.c ***********************************************/ -/************** Begin file icu.c *********************************************/ -/* -** 2007 May 6 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** $Id: icu.c,v 1.7 2007/12/13 21:54:11 drh Exp $ -** -** This file implements an integration between the ICU library -** ("International Components for Unicode", an open-source library -** for handling unicode data) and SQLite. The integration uses -** ICU to provide the following to SQLite: -** -** * An implementation of the SQL regexp() function (and hence REGEXP -** operator) using the ICU uregex_XX() APIs. -** -** * Implementations of the SQL scalar upper() and lower() functions -** for case mapping. -** -** * Integration of ICU and SQLite collation sequences. -** -** * An implementation of the LIKE operator that uses ICU to -** provide case-independent matching. -*/ - -#if !defined(SQLITE_CORE) \ - || defined(SQLITE_ENABLE_ICU) \ - || defined(SQLITE_ENABLE_ICU_COLLATIONS) - -/* Include ICU headers */ -#include -#include -#include -#include - -/* #include */ - -#ifndef SQLITE_CORE -/* #include "sqlite3ext.h" */ - SQLITE_EXTENSION_INIT1 -#else -/* #include "sqlite3.h" */ -#endif - -/* -** This function is called when an ICU function called from within -** the implementation of an SQL scalar function returns an error. -** -** The scalar function context passed as the first argument is -** loaded with an error message based on the following two args. -*/ -static void icuFunctionError( - sqlite3_context *pCtx, /* SQLite scalar function context */ - const char *zName, /* Name of ICU function that failed */ - UErrorCode e /* Error code returned by ICU function */ -){ - char zBuf[128]; - sqlite3_snprintf(128, zBuf, "ICU error: %s(): %s", zName, u_errorName(e)); - zBuf[127] = '\0'; - sqlite3_result_error(pCtx, zBuf, -1); -} - -#if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_ICU) - -/* -** Maximum length (in bytes) of the pattern in a LIKE or GLOB -** operator. -*/ -#ifndef SQLITE_MAX_LIKE_PATTERN_LENGTH -# define SQLITE_MAX_LIKE_PATTERN_LENGTH 50000 -#endif - -/* -** Version of sqlite3_free() that is always a function, never a macro. -*/ -static void xFree(void *p){ - sqlite3_free(p); -} - -/* -** This lookup table is used to help decode the first byte of -** a multi-byte UTF8 character. It is copied here from SQLite source -** code file utf8.c. -*/ -static const unsigned char icuUtf8Trans1[] = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0x00, 0x00, -}; - -#define SQLITE_ICU_READ_UTF8(zIn, c) \ - c = *(zIn++); \ - if( c>=0xc0 ){ \ - c = icuUtf8Trans1[c-0xc0]; \ - while( (*zIn & 0xc0)==0x80 ){ \ - c = (c<<6) + (0x3f & *(zIn++)); \ - } \ - } - -#define SQLITE_ICU_SKIP_UTF8(zIn) \ - assert( *zIn ); \ - if( *(zIn++)>=0xc0 ){ \ - while( (*zIn & 0xc0)==0x80 ){zIn++;} \ - } - - -/* -** Compare two UTF-8 strings for equality where the first string is -** a "LIKE" expression. Return true (1) if they are the same and -** false (0) if they are different. -*/ -static int icuLikeCompare( - const uint8_t *zPattern, /* LIKE pattern */ - const uint8_t *zString, /* The UTF-8 string to compare against */ - const UChar32 uEsc /* The escape character */ -){ - static const uint32_t MATCH_ONE = (uint32_t)'_'; - static const uint32_t MATCH_ALL = (uint32_t)'%'; - - int prevEscape = 0; /* True if the previous character was uEsc */ - - while( 1 ){ - - /* Read (and consume) the next character from the input pattern. */ - uint32_t uPattern; - SQLITE_ICU_READ_UTF8(zPattern, uPattern); - if( uPattern==0 ) break; - - /* There are now 4 possibilities: - ** - ** 1. uPattern is an unescaped match-all character "%", - ** 2. uPattern is an unescaped match-one character "_", - ** 3. uPattern is an unescaped escape character, or - ** 4. uPattern is to be handled as an ordinary character - */ - if( !prevEscape && uPattern==MATCH_ALL ){ - /* Case 1. */ - uint8_t c; - - /* Skip any MATCH_ALL or MATCH_ONE characters that follow a - ** MATCH_ALL. For each MATCH_ONE, skip one character in the - ** test string. - */ - while( (c=*zPattern) == MATCH_ALL || c == MATCH_ONE ){ - if( c==MATCH_ONE ){ - if( *zString==0 ) return 0; - SQLITE_ICU_SKIP_UTF8(zString); - } - zPattern++; - } - - if( *zPattern==0 ) return 1; - - while( *zString ){ - if( icuLikeCompare(zPattern, zString, uEsc) ){ - return 1; - } - SQLITE_ICU_SKIP_UTF8(zString); - } - return 0; - - }else if( !prevEscape && uPattern==MATCH_ONE ){ - /* Case 2. */ - if( *zString==0 ) return 0; - SQLITE_ICU_SKIP_UTF8(zString); - - }else if( !prevEscape && uPattern==(uint32_t)uEsc){ - /* Case 3. */ - prevEscape = 1; - - }else{ - /* Case 4. */ - uint32_t uString; - SQLITE_ICU_READ_UTF8(zString, uString); - uString = (uint32_t)u_foldCase((UChar32)uString, U_FOLD_CASE_DEFAULT); - uPattern = (uint32_t)u_foldCase((UChar32)uPattern, U_FOLD_CASE_DEFAULT); - if( uString!=uPattern ){ - return 0; - } - prevEscape = 0; - } - } - - return *zString==0; -} - -/* -** Implementation of the like() SQL function. This function implements -** the build-in LIKE operator. The first argument to the function is the -** pattern and the second argument is the string. So, the SQL statements: -** -** A LIKE B -** -** is implemented as like(B, A). If there is an escape character E, -** -** A LIKE B ESCAPE E -** -** is mapped to like(B, A, E). -*/ -static void icuLikeFunc( - sqlite3_context *context, - int argc, - sqlite3_value **argv -){ - const unsigned char *zA = sqlite3_value_text(argv[0]); - const unsigned char *zB = sqlite3_value_text(argv[1]); - UChar32 uEsc = 0; - - /* Limit the length of the LIKE or GLOB pattern to avoid problems - ** of deep recursion and N*N behavior in patternCompare(). - */ - if( sqlite3_value_bytes(argv[0])>SQLITE_MAX_LIKE_PATTERN_LENGTH ){ - sqlite3_result_error(context, "LIKE or GLOB pattern too complex", -1); - return; - } - - - if( argc==3 ){ - /* The escape character string must consist of a single UTF-8 character. - ** Otherwise, return an error. - */ - int nE= sqlite3_value_bytes(argv[2]); - const unsigned char *zE = sqlite3_value_text(argv[2]); - int i = 0; - if( zE==0 ) return; - U8_NEXT(zE, i, nE, uEsc); - if( i!=nE){ - sqlite3_result_error(context, - "ESCAPE expression must be a single character", -1); - return; - } - } - - if( zA && zB ){ - sqlite3_result_int(context, icuLikeCompare(zA, zB, uEsc)); - } -} - -/* -** Function to delete compiled regexp objects. Registered as -** a destructor function with sqlite3_set_auxdata(). -*/ -static void icuRegexpDelete(void *p){ - URegularExpression *pExpr = (URegularExpression *)p; - uregex_close(pExpr); -} - -/* -** Implementation of SQLite REGEXP operator. This scalar function takes -** two arguments. The first is a regular expression pattern to compile -** the second is a string to match against that pattern. If either -** argument is an SQL NULL, then NULL Is returned. Otherwise, the result -** is 1 if the string matches the pattern, or 0 otherwise. -** -** SQLite maps the regexp() function to the regexp() operator such -** that the following two are equivalent: -** -** zString REGEXP zPattern -** regexp(zPattern, zString) -** -** Uses the following ICU regexp APIs: -** -** uregex_open() -** uregex_matches() -** uregex_close() +** It is called by rtreecheck(), which is the SQL function implementation. */ -static void icuRegexpFunc(sqlite3_context *p, int nArg, sqlite3_value **apArg){ - UErrorCode status = U_ZERO_ERROR; - URegularExpression *pExpr; - UBool res; - const UChar *zString = sqlite3_value_text16(apArg[1]); +static int rtreeCheckTable( + sqlite3 *db, /* Database handle to access db through */ + const char *zDb, /* Name of db ("main", "temp" etc.) */ + const char *zTab, /* Name of rtree table to check */ + char **pzReport /* OUT: sqlite3_malloc'd report text */ +){ + RtreeCheck check; /* Common context for various routines */ + sqlite3_stmt *pStmt = 0; /* Used to find column count of rtree table */ + int bEnd = 0; /* True if transaction should be closed */ + int nAux = 0; /* Number of extra columns. */ - (void)nArg; /* Unused parameter */ + /* Initialize the context object */ + memset(&check, 0, sizeof(check)); + check.db = db; + check.zDb = zDb; + check.zTab = zTab; - /* If the left hand side of the regexp operator is NULL, - ** then the result is also NULL. - */ - if( !zString ){ - return; + /* If there is not already an open transaction, open one now. This is + ** to ensure that the queries run as part of this integrity-check operate + ** on a consistent snapshot. */ + if( sqlite3_get_autocommit(db) ){ + check.rc = sqlite3_exec(db, "BEGIN", 0, 0, 0); + bEnd = 1; } - pExpr = sqlite3_get_auxdata(p, 0); - if( !pExpr ){ - const UChar *zPattern = sqlite3_value_text16(apArg[0]); - if( !zPattern ){ - return; - } - pExpr = uregex_open(zPattern, -1, 0, 0, &status); - - if( U_SUCCESS(status) ){ - sqlite3_set_auxdata(p, 0, pExpr, icuRegexpDelete); - }else{ - assert(!pExpr); - icuFunctionError(p, "uregex_open", status); - return; + /* Find the number of auxiliary columns */ + if( check.rc==SQLITE_OK ){ + pStmt = rtreeCheckPrepare(&check, "SELECT * FROM %Q.'%q_rowid'", zDb, zTab); + if( pStmt ){ + nAux = sqlite3_column_count(pStmt) - 2; + sqlite3_finalize(pStmt); } + check.rc = SQLITE_OK; } - /* Configure the text that the regular expression operates on. */ - uregex_setText(pExpr, zString, -1, &status); - if( !U_SUCCESS(status) ){ - icuFunctionError(p, "uregex_setText", status); - return; + /* Find number of dimensions in the rtree table. */ + pStmt = rtreeCheckPrepare(&check, "SELECT * FROM %Q.%Q", zDb, zTab); + if( pStmt ){ + int rc; + check.nDim = (sqlite3_column_count(pStmt) - 1 - nAux) / 2; + if( check.nDim<1 ){ + rtreeCheckAppendMsg(&check, "Schema corrupt or not an rtree"); + }else if( SQLITE_ROW==sqlite3_step(pStmt) ){ + check.bInt = (sqlite3_column_type(pStmt, 1)==SQLITE_INTEGER); + } + rc = sqlite3_finalize(pStmt); + if( rc!=SQLITE_CORRUPT ) check.rc = rc; } - /* Attempt the match */ - res = uregex_matches(pExpr, 0, &status); - if( !U_SUCCESS(status) ){ - icuFunctionError(p, "uregex_matches", status); - return; + /* Do the actual integrity-check */ + if( check.nDim>=1 ){ + if( check.rc==SQLITE_OK ){ + rtreeCheckNode(&check, 0, 0, 1); + } + rtreeCheckCount(&check, "_rowid", check.nLeaf); + rtreeCheckCount(&check, "_parent", check.nNonLeaf); } - /* Set the text that the regular expression operates on to a NULL - ** pointer. This is not really necessary, but it is tidier than - ** leaving the regular expression object configured with an invalid - ** pointer after this function returns. - */ - uregex_setText(pExpr, 0, 0, &status); + /* Finalize SQL statements used by the integrity-check */ + sqlite3_finalize(check.pGetNode); + sqlite3_finalize(check.aCheckMapping[0]); + sqlite3_finalize(check.aCheckMapping[1]); - /* Return 1 or 0. */ - sqlite3_result_int(p, res ? 1 : 0); + /* If one was opened, close the transaction */ + if( bEnd ){ + int rc = sqlite3_exec(db, "END", 0, 0, 0); + if( check.rc==SQLITE_OK ) check.rc = rc; + } + *pzReport = check.zReport; + return check.rc; } /* -** Implementations of scalar functions for case mapping - upper() and -** lower(). Function upper() converts its input to upper-case (ABC). -** Function lower() converts to lower-case (abc). +** Usage: ** -** ICU provides two types of case mapping, "general" case mapping and -** "language specific". Refer to ICU documentation for the differences -** between the two. +** rtreecheck(); +** rtreecheck(, ); ** -** To utilise "general" case mapping, the upper() or lower() scalar -** functions are invoked with one argument: +** Invoking this SQL function runs an integrity-check on the named rtree +** table. The integrity-check verifies the following: ** -** upper('ABC') -> 'abc' -** lower('abc') -> 'ABC' +** 1. For each cell in the r-tree structure (%_node table), that: ** -** To access ICU "language specific" case mapping, upper() or lower() -** should be invoked with two arguments. The second argument is the name -** of the locale to use. Passing an empty string ("") or SQL NULL value -** as the second argument is the same as invoking the 1 argument version -** of upper() or lower(). +** a) for each dimension, (coord1 <= coord2). ** -** lower('I', 'en_us') -> 'i' -** lower('I', 'tr_tr') -> '\u131' (small dotless i) +** b) unless the cell is on the root node, that the cell is bounded +** by the parent cell on the parent node. ** -** http://www.icu-project.org/userguide/posix.html#case_mappings +** c) for leaf nodes, that there is an entry in the %_rowid +** table corresponding to the cell's rowid value that +** points to the correct node. +** +** d) for cells on non-leaf nodes, that there is an entry in the +** %_parent table mapping from the cell's child node to the +** node that it resides on. +** +** 2. That there are the same number of entries in the %_rowid table +** as there are leaf cells in the r-tree structure, and that there +** is a leaf cell that corresponds to each entry in the %_rowid table. +** +** 3. That there are the same number of entries in the %_parent table +** as there are non-leaf cells in the r-tree structure, and that +** there is a non-leaf cell that corresponds to each entry in the +** %_parent table. */ -static void icuCaseFunc16(sqlite3_context *p, int nArg, sqlite3_value **apArg){ - const UChar *zInput; /* Pointer to input string */ - UChar *zOutput = 0; /* Pointer to output buffer */ - int nInput; /* Size of utf-16 input string in bytes */ - int nOut; /* Size of output buffer in bytes */ - int cnt; - int bToUpper; /* True for toupper(), false for tolower() */ - UErrorCode status; - const char *zLocale = 0; - - assert(nArg==1 || nArg==2); - bToUpper = (sqlite3_user_data(p)!=0); - if( nArg==2 ){ - zLocale = (const char *)sqlite3_value_text(apArg[1]); - } - - zInput = sqlite3_value_text16(apArg[0]); - if( !zInput ){ - return; - } - nOut = nInput = sqlite3_value_bytes16(apArg[0]); - if( nOut==0 ){ - sqlite3_result_text16(p, "", 0, SQLITE_STATIC); - return; - } - - for(cnt=0; cnt<2; cnt++){ - UChar *zNew = sqlite3_realloc(zOutput, nOut); - if( zNew==0 ){ - sqlite3_free(zOutput); - sqlite3_result_error_nomem(p); - return; - } - zOutput = zNew; - status = U_ZERO_ERROR; - if( bToUpper ){ - nOut = 2*u_strToUpper(zOutput,nOut/2,zInput,nInput/2,zLocale,&status); +static void rtreecheck( + sqlite3_context *ctx, + int nArg, + sqlite3_value **apArg +){ + if( nArg!=1 && nArg!=2 ){ + sqlite3_result_error(ctx, + "wrong number of arguments to function rtreecheck()", -1 + ); + }else{ + int rc; + char *zReport = 0; + const char *zDb = (const char*)sqlite3_value_text(apArg[0]); + const char *zTab; + if( nArg==1 ){ + zTab = zDb; + zDb = "main"; }else{ - nOut = 2*u_strToLower(zOutput,nOut/2,zInput,nInput/2,zLocale,&status); + zTab = (const char*)sqlite3_value_text(apArg[1]); } - - if( U_SUCCESS(status) ){ - sqlite3_result_text16(p, zOutput, nOut, xFree); - }else if( status==U_BUFFER_OVERFLOW_ERROR ){ - assert( cnt==0 ); - continue; + rc = rtreeCheckTable(sqlite3_context_db_handle(ctx), zDb, zTab, &zReport); + if( rc==SQLITE_OK ){ + sqlite3_result_text(ctx, zReport ? zReport : "ok", -1, SQLITE_TRANSIENT); }else{ - icuFunctionError(p, bToUpper ? "u_strToUpper" : "u_strToLower", status); + sqlite3_result_error_code(ctx, rc); } - return; - } - assert( 0 ); /* Unreachable */ -} - -#endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_ICU) */ - -/* -** Collation sequence destructor function. The pCtx argument points to -** a UCollator structure previously allocated using ucol_open(). -*/ -static void icuCollationDel(void *pCtx){ - UCollator *p = (UCollator *)pCtx; - ucol_close(p); -} - -/* -** Collation sequence comparison function. The pCtx argument points to -** a UCollator structure previously allocated using ucol_open(). -*/ -static int icuCollationColl( - void *pCtx, - int nLeft, - const void *zLeft, - int nRight, - const void *zRight -){ - UCollationResult res; - UCollator *p = (UCollator *)pCtx; - res = ucol_strcoll(p, (UChar *)zLeft, nLeft/2, (UChar *)zRight, nRight/2); - switch( res ){ - case UCOL_LESS: return -1; - case UCOL_GREATER: return +1; - case UCOL_EQUAL: return 0; + sqlite3_free(zReport); } - assert(!"Unexpected return value from ucol_strcoll()"); - return 0; } +/* Conditionally include the geopoly code */ +#ifdef SQLITE_ENABLE_GEOPOLY +/************** Include geopoly.c in the middle of rtree.c *******************/ +/************** Begin file geopoly.c *****************************************/ /* -** Implementation of the scalar function icu_load_collation(). +** 2018-05-25 ** -** This scalar function is used to add ICU collation based collation -** types to an SQLite database connection. It is intended to be called -** as follows: +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: ** -** SELECT icu_load_collation(, ); +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. ** -** Where is a string containing an ICU locale identifier (i.e. -** "en_AU", "tr_TR" etc.) and is the name of the -** collation sequence to create. +****************************************************************************** +** +** This file implements an alternative R-Tree virtual table that +** uses polygons to express the boundaries of 2-dimensional objects. +** +** This file is #include-ed onto the end of "rtree.c" so that it has +** access to all of the R-Tree internals. */ -static void icuLoadCollation( - sqlite3_context *p, - int nArg, - sqlite3_value **apArg -){ - sqlite3 *db = (sqlite3 *)sqlite3_user_data(p); - UErrorCode status = U_ZERO_ERROR; - const char *zLocale; /* Locale identifier - (eg. "jp_JP") */ - const char *zName; /* SQL Collation sequence name (eg. "japanese") */ - UCollator *pUCollator; /* ICU library collation object */ - int rc; /* Return code from sqlite3_create_collation_x() */ - - assert(nArg==2); - (void)nArg; /* Unused parameter */ - zLocale = (const char *)sqlite3_value_text(apArg[0]); - zName = (const char *)sqlite3_value_text(apArg[1]); - - if( !zLocale || !zName ){ - return; - } - - pUCollator = ucol_open(zLocale, &status); - if( !U_SUCCESS(status) ){ - icuFunctionError(p, "ucol_open", status); - return; - } - assert(p); +/* #include */ - rc = sqlite3_create_collation_v2(db, zName, SQLITE_UTF16, (void *)pUCollator, - icuCollationColl, icuCollationDel - ); - if( rc!=SQLITE_OK ){ - ucol_close(pUCollator); - sqlite3_result_error(p, "Error registering collation function", -1); - } -} +/* Enable -DGEOPOLY_ENABLE_DEBUG for debugging facilities */ +#ifdef GEOPOLY_ENABLE_DEBUG + static int geo_debug = 0; +# define GEODEBUG(X) if(geo_debug)printf X +#else +# define GEODEBUG(X) +#endif +#ifndef JSON_NULL /* The following stuff repeats things found in json1 */ /* -** Register the ICU extension functions with database db. +** Versions of isspace(), isalnum() and isdigit() to which it is safe +** to pass signed char values. */ -SQLITE_PRIVATE int sqlite3IcuInit(sqlite3 *db){ - static const struct IcuScalar { - const char *zName; /* Function name */ - unsigned char nArg; /* Number of arguments */ - unsigned short enc; /* Optimal text encoding */ - unsigned char iContext; /* sqlite3_user_data() context */ - void (*xFunc)(sqlite3_context*,int,sqlite3_value**); - } scalars[] = { - {"icu_load_collation", 2, SQLITE_UTF8, 1, icuLoadCollation}, -#if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_ICU) - {"regexp", 2, SQLITE_ANY|SQLITE_DETERMINISTIC, 0, icuRegexpFunc}, - {"lower", 1, SQLITE_UTF16|SQLITE_DETERMINISTIC, 0, icuCaseFunc16}, - {"lower", 2, SQLITE_UTF16|SQLITE_DETERMINISTIC, 0, icuCaseFunc16}, - {"upper", 1, SQLITE_UTF16|SQLITE_DETERMINISTIC, 1, icuCaseFunc16}, - {"upper", 2, SQLITE_UTF16|SQLITE_DETERMINISTIC, 1, icuCaseFunc16}, - {"lower", 1, SQLITE_UTF8|SQLITE_DETERMINISTIC, 0, icuCaseFunc16}, - {"lower", 2, SQLITE_UTF8|SQLITE_DETERMINISTIC, 0, icuCaseFunc16}, - {"upper", 1, SQLITE_UTF8|SQLITE_DETERMINISTIC, 1, icuCaseFunc16}, - {"upper", 2, SQLITE_UTF8|SQLITE_DETERMINISTIC, 1, icuCaseFunc16}, - {"like", 2, SQLITE_UTF8|SQLITE_DETERMINISTIC, 0, icuLikeFunc}, - {"like", 3, SQLITE_UTF8|SQLITE_DETERMINISTIC, 0, icuLikeFunc}, -#endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_ICU) */ - }; - int rc = SQLITE_OK; - int i; - - for(i=0; rc==SQLITE_OK && i<(int)(sizeof(scalars)/sizeof(scalars[0])); i++){ - const struct IcuScalar *p = &scalars[i]; - rc = sqlite3_create_function( - db, p->zName, p->nArg, p->enc, - p->iContext ? (void*)db : (void*)0, - p->xFunc, 0, 0 - ); - } +#ifdef sqlite3Isdigit + /* Use the SQLite core versions if this routine is part of the + ** SQLite amalgamation */ +# define safe_isdigit(x) sqlite3Isdigit(x) +# define safe_isalnum(x) sqlite3Isalnum(x) +# define safe_isxdigit(x) sqlite3Isxdigit(x) +#else + /* Use the standard library for separate compilation */ +#include /* amalgamator: keep */ +# define safe_isdigit(x) isdigit((unsigned char)(x)) +# define safe_isalnum(x) isalnum((unsigned char)(x)) +# define safe_isxdigit(x) isxdigit((unsigned char)(x)) +#endif - return rc; -} +/* +** Growing our own isspace() routine this way is twice as fast as +** the library isspace() function. +*/ +static const char geopolyIsSpace[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; +#define safe_isspace(x) (geopolyIsSpace[(unsigned char)x]) +#endif /* JSON NULL - back to original code */ -#if !SQLITE_CORE -#ifdef _WIN32 -__declspec(dllexport) +/* Compiler and version */ +#ifndef GCC_VERSION +#if defined(__GNUC__) && !defined(SQLITE_DISABLE_INTRINSIC) +# define GCC_VERSION (__GNUC__*1000000+__GNUC_MINOR__*1000+__GNUC_PATCHLEVEL__) +#else +# define GCC_VERSION 0 #endif -SQLITE_API int sqlite3_icu_init( - sqlite3 *db, - char **pzErrMsg, - const sqlite3_api_routines *pApi -){ - SQLITE_EXTENSION_INIT2(pApi) - return sqlite3IcuInit(db); -} #endif - +#ifndef MSVC_VERSION +#if defined(_MSC_VER) && !defined(SQLITE_DISABLE_INTRINSIC) +# define MSVC_VERSION _MSC_VER +#else +# define MSVC_VERSION 0 +#endif #endif -/************** End of icu.c *************************************************/ -/************** Begin file fts3_icu.c ****************************************/ +/* Datatype for coordinates +*/ +typedef float GeoCoord; + /* -** 2007 June 22 +** Internal representation of a polygon. ** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: +** The polygon consists of a sequence of vertexes. There is a line +** segment between each pair of vertexes, and one final segment from +** the last vertex back to the first. (This differs from the GeoJSON +** standard in which the final vertex is a repeat of the first.) ** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. +** The polygon follows the right-hand rule. The area to the right of +** each segment is "outside" and the area to the left is "inside". ** -************************************************************************* -** This file implements a tokenizer for fts3 based on the ICU library. +** The on-disk representation consists of a 4-byte header followed by +** the values. The 4-byte header is: +** +** encoding (1 byte) 0=big-endian, 1=little-endian +** nvertex (3 bytes) Number of vertexes as a big-endian integer +** +** Enough space is allocated for 4 coordinates, to work around over-zealous +** warnings coming from some compiler (notably, clang). In reality, the size +** of each GeoPoly memory allocate is adjusted as necessary so that the +** GeoPoly.a[] array at the end is the appropriate size. */ -/* #include "fts3Int.h" */ -#if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3) -#ifdef SQLITE_ENABLE_ICU - -/* #include */ -/* #include */ -/* #include "fts3_tokenizer.h" */ - -#include -/* #include */ -/* #include */ -#include - -typedef struct IcuTokenizer IcuTokenizer; -typedef struct IcuCursor IcuCursor; - -struct IcuTokenizer { - sqlite3_tokenizer base; - char *zLocale; +typedef struct GeoPoly GeoPoly; +struct GeoPoly { + int nVertex; /* Number of vertexes */ + unsigned char hdr[4]; /* Header for on-disk representation */ + GeoCoord a[8]; /* 2*nVertex values. X (longitude) first, then Y */ }; -struct IcuCursor { - sqlite3_tokenizer_cursor base; - - UBreakIterator *pIter; /* ICU break-iterator object */ - int nChar; /* Number of UChar elements in pInput */ - UChar *aChar; /* Copy of input using utf-16 encoding */ - int *aOffset; /* Offsets of each character in utf-8 input */ - - int nBuffer; - char *zBuffer; - - int iToken; -}; +/* The size of a memory allocation needed for a GeoPoly object sufficient +** to hold N coordinate pairs. +*/ +#define GEOPOLY_SZ(N) (sizeof(GeoPoly) + sizeof(GeoCoord)*2*((N)-4)) /* -** Create a new tokenizer instance. +** State of a parse of a GeoJSON input. */ -static int icuCreate( - int argc, /* Number of entries in argv[] */ - const char * const *argv, /* Tokenizer creation arguments */ - sqlite3_tokenizer **ppTokenizer /* OUT: Created tokenizer */ -){ - IcuTokenizer *p; - int n = 0; - - if( argc>0 ){ - n = strlen(argv[0])+1; - } - p = (IcuTokenizer *)sqlite3_malloc(sizeof(IcuTokenizer)+n); - if( !p ){ - return SQLITE_NOMEM; - } - memset(p, 0, sizeof(IcuTokenizer)); - - if( n ){ - p->zLocale = (char *)&p[1]; - memcpy(p->zLocale, argv[0], n); - } - - *ppTokenizer = (sqlite3_tokenizer *)p; +typedef struct GeoParse GeoParse; +struct GeoParse { + const unsigned char *z; /* Unparsed input */ + int nVertex; /* Number of vertexes in a[] */ + int nAlloc; /* Space allocated to a[] */ + int nErr; /* Number of errors encountered */ + GeoCoord *a; /* Array of vertexes. From sqlite3_malloc64() */ +}; - return SQLITE_OK; +/* Do a 4-byte byte swap */ +static void geopolySwab32(unsigned char *a){ + unsigned char t = a[0]; + a[0] = a[3]; + a[3] = t; + t = a[1]; + a[1] = a[2]; + a[2] = t; } -/* -** Destroy a tokenizer -*/ -static int icuDestroy(sqlite3_tokenizer *pTokenizer){ - IcuTokenizer *p = (IcuTokenizer *)pTokenizer; - sqlite3_free(p); - return SQLITE_OK; +/* Skip whitespace. Return the next non-whitespace character. */ +static char geopolySkipSpace(GeoParse *p){ + while( safe_isspace(p->z[0]) ) p->z++; + return p->z[0]; } -/* -** Prepare to begin tokenizing a particular string. The input -** string to be tokenized is pInput[0..nBytes-1]. A cursor -** used to incrementally tokenize this string is returned in -** *ppCursor. +/* Parse out a number. Write the value into *pVal if pVal!=0. +** return non-zero on success and zero if the next token is not a number. */ -static int icuOpen( - sqlite3_tokenizer *pTokenizer, /* The tokenizer */ - const char *zInput, /* Input string */ - int nInput, /* Length of zInput in bytes */ - sqlite3_tokenizer_cursor **ppCursor /* OUT: Tokenization cursor */ -){ - IcuTokenizer *p = (IcuTokenizer *)pTokenizer; - IcuCursor *pCsr; - - const int32_t opt = U_FOLD_CASE_DEFAULT; - UErrorCode status = U_ZERO_ERROR; - int nChar; - - UChar32 c; - int iInput = 0; - int iOut = 0; - - *ppCursor = 0; - - if( zInput==0 ){ - nInput = 0; - zInput = ""; - }else if( nInput<0 ){ - nInput = strlen(zInput); - } - nChar = nInput+1; - pCsr = (IcuCursor *)sqlite3_malloc( - sizeof(IcuCursor) + /* IcuCursor */ - ((nChar+3)&~3) * sizeof(UChar) + /* IcuCursor.aChar[] */ - (nChar+1) * sizeof(int) /* IcuCursor.aOffset[] */ - ); - if( !pCsr ){ - return SQLITE_NOMEM; +static int geopolyParseNumber(GeoParse *p, GeoCoord *pVal){ + char c = geopolySkipSpace(p); + const unsigned char *z = p->z; + int j = 0; + int seenDP = 0; + int seenE = 0; + if( c=='-' ){ + j = 1; + c = z[j]; } - memset(pCsr, 0, sizeof(IcuCursor)); - pCsr->aChar = (UChar *)&pCsr[1]; - pCsr->aOffset = (int *)&pCsr->aChar[(nChar+3)&~3]; - - pCsr->aOffset[iOut] = iInput; - U8_NEXT(zInput, iInput, nInput, c); - while( c>0 ){ - int isError = 0; - c = u_foldCase(c, opt); - U16_APPEND(pCsr->aChar, iOut, nChar, c, isError); - if( isError ){ - sqlite3_free(pCsr); - return SQLITE_ERROR; + if( c=='0' && z[j+1]>='0' && z[j+1]<='9' ) return 0; + for(;; j++){ + c = z[j]; + if( safe_isdigit(c) ) continue; + if( c=='.' ){ + if( z[j-1]=='-' ) return 0; + if( seenDP ) return 0; + seenDP = 1; + continue; } - pCsr->aOffset[iOut] = iInput; - - if( iInput'9' ) return 0; + continue; } + break; } - - pCsr->pIter = ubrk_open(UBRK_WORD, p->zLocale, pCsr->aChar, iOut, &status); - if( !U_SUCCESS(status) ){ - sqlite3_free(pCsr); - return SQLITE_ERROR; + if( z[j-1]<'0' ) return 0; + if( pVal ){ +#ifdef SQLITE_AMALGAMATION + /* The sqlite3AtoF() routine is much much faster than atof(), if it + ** is available */ + double r; + (void)sqlite3AtoF((const char*)p->z, &r, j, SQLITE_UTF8); + *pVal = r; +#else + *pVal = (GeoCoord)atof((const char*)p->z); +#endif } - pCsr->nChar = iOut; - - ubrk_first(pCsr->pIter); - *ppCursor = (sqlite3_tokenizer_cursor *)pCsr; - return SQLITE_OK; + p->z += j; + return 1; } /* -** Close a tokenization cursor previously opened by a call to icuOpen(). +** If the input is a well-formed JSON array of coordinates with at least +** four coordinates and where each coordinate is itself a two-value array, +** then convert the JSON into a GeoPoly object and return a pointer to +** that object. +** +** If any error occurs, return NULL. */ -static int icuClose(sqlite3_tokenizer_cursor *pCursor){ - IcuCursor *pCsr = (IcuCursor *)pCursor; - ubrk_close(pCsr->pIter); - sqlite3_free(pCsr->zBuffer); - sqlite3_free(pCsr); - return SQLITE_OK; +static GeoPoly *geopolyParseJson(const unsigned char *z, int *pRc){ + GeoParse s; + int rc = SQLITE_OK; + memset(&s, 0, sizeof(s)); + s.z = z; + if( geopolySkipSpace(&s)=='[' ){ + s.z++; + while( geopolySkipSpace(&s)=='[' ){ + int ii = 0; + char c; + s.z++; + if( s.nVertex>=s.nAlloc ){ + GeoCoord *aNew; + s.nAlloc = s.nAlloc*2 + 16; + aNew = sqlite3_realloc64(s.a, s.nAlloc*sizeof(GeoCoord)*2 ); + if( aNew==0 ){ + rc = SQLITE_NOMEM; + s.nErr++; + break; + } + s.a = aNew; + } + while( geopolyParseNumber(&s, ii<=1 ? &s.a[s.nVertex*2+ii] : 0) ){ + ii++; + if( ii==2 ) s.nVertex++; + c = geopolySkipSpace(&s); + s.z++; + if( c==',' ) continue; + if( c==']' && ii>=2 ) break; + s.nErr++; + rc = SQLITE_ERROR; + goto parse_json_err; + } + if( geopolySkipSpace(&s)==',' ){ + s.z++; + continue; + } + break; + } + if( geopolySkipSpace(&s)==']' + && s.nVertex>=4 + && s.a[0]==s.a[s.nVertex*2-2] + && s.a[1]==s.a[s.nVertex*2-1] + && (s.z++, geopolySkipSpace(&s)==0) + ){ + GeoPoly *pOut; + int x = 1; + s.nVertex--; /* Remove the redundant vertex at the end */ + pOut = sqlite3_malloc64( GEOPOLY_SZ(s.nVertex) ); + x = 1; + if( pOut==0 ) goto parse_json_err; + pOut->nVertex = s.nVertex; + memcpy(pOut->a, s.a, s.nVertex*2*sizeof(GeoCoord)); + pOut->hdr[0] = *(unsigned char*)&x; + pOut->hdr[1] = (s.nVertex>>16)&0xff; + pOut->hdr[2] = (s.nVertex>>8)&0xff; + pOut->hdr[3] = s.nVertex&0xff; + sqlite3_free(s.a); + if( pRc ) *pRc = SQLITE_OK; + return pOut; + }else{ + s.nErr++; + rc = SQLITE_ERROR; + } + } +parse_json_err: + if( pRc ) *pRc = rc; + sqlite3_free(s.a); + return 0; } /* -** Extract the next token from a tokenization cursor. +** Given a function parameter, try to interpret it as a polygon, either +** in the binary format or JSON text. Compute a GeoPoly object and +** return a pointer to that object. Or if the input is not a well-formed +** polygon, put an error message in sqlite3_context and return NULL. */ -static int icuNext( - sqlite3_tokenizer_cursor *pCursor, /* Cursor returned by simpleOpen */ - const char **ppToken, /* OUT: *ppToken is the token text */ - int *pnBytes, /* OUT: Number of bytes in token */ - int *piStartOffset, /* OUT: Starting offset of token */ - int *piEndOffset, /* OUT: Ending offset of token */ - int *piPosition /* OUT: Position integer of token */ +static GeoPoly *geopolyFuncParam( + sqlite3_context *pCtx, /* Context for error messages */ + sqlite3_value *pVal, /* The value to decode */ + int *pRc /* Write error here */ ){ - IcuCursor *pCsr = (IcuCursor *)pCursor; - - int iStart = 0; - int iEnd = 0; - int nByte = 0; - - while( iStart==iEnd ){ - UChar32 c; - - iStart = ubrk_current(pCsr->pIter); - iEnd = ubrk_next(pCsr->pIter); - if( iEnd==UBRK_DONE ){ - return SQLITE_DONE; - } - - while( iStartaChar, iWhite, pCsr->nChar, c); - if( u_isspace(c) ){ - iStart = iWhite; + GeoPoly *p = 0; + int nByte; + if( sqlite3_value_type(pVal)==SQLITE_BLOB + && (nByte = sqlite3_value_bytes(pVal))>=(4+6*sizeof(GeoCoord)) + ){ + const unsigned char *a = sqlite3_value_blob(pVal); + int nVertex; + nVertex = (a[1]<<16) + (a[2]<<8) + a[3]; + if( (a[0]==0 || a[0]==1) + && (nVertex*2*sizeof(GeoCoord) + 4)==(unsigned int)nByte + ){ + p = sqlite3_malloc64( sizeof(*p) + (nVertex-1)*2*sizeof(GeoCoord) ); + if( p==0 ){ + if( pRc ) *pRc = SQLITE_NOMEM; + if( pCtx ) sqlite3_result_error_nomem(pCtx); }else{ - break; + int x = 1; + p->nVertex = nVertex; + memcpy(p->hdr, a, nByte); + if( a[0] != *(unsigned char*)&x ){ + int ii; + for(ii=0; iia[ii]); + } + p->hdr[0] ^= 1; + } } } - assert(iStart<=iEnd); - } - - do { - UErrorCode status = U_ZERO_ERROR; - if( nByte ){ - char *zNew = sqlite3_realloc(pCsr->zBuffer, nByte); - if( !zNew ){ - return SQLITE_NOMEM; - } - pCsr->zBuffer = zNew; - pCsr->nBuffer = nByte; + if( pRc ) *pRc = SQLITE_OK; + return p; + }else if( sqlite3_value_type(pVal)==SQLITE_TEXT ){ + const unsigned char *zJson = sqlite3_value_text(pVal); + if( zJson==0 ){ + if( pRc ) *pRc = SQLITE_NOMEM; + return 0; } - - u_strToUTF8( - pCsr->zBuffer, pCsr->nBuffer, &nByte, /* Output vars */ - &pCsr->aChar[iStart], iEnd-iStart, /* Input vars */ - &status /* Output success/failure */ - ); - } while( nByte>pCsr->nBuffer ); - - *ppToken = pCsr->zBuffer; - *pnBytes = nByte; - *piStartOffset = pCsr->aOffset[iStart]; - *piEndOffset = pCsr->aOffset[iEnd]; - *piPosition = pCsr->iToken++; - - return SQLITE_OK; + return geopolyParseJson(zJson, pRc); + }else{ + if( pRc ) *pRc = SQLITE_ERROR; + return 0; + } } /* -** The set of routines that implement the simple tokenizer -*/ -static const sqlite3_tokenizer_module icuTokenizerModule = { - 0, /* iVersion */ - icuCreate, /* xCreate */ - icuDestroy, /* xCreate */ - icuOpen, /* xOpen */ - icuClose, /* xClose */ - icuNext, /* xNext */ - 0, /* xLanguageid */ -}; - -/* -** Set *ppModule to point at the implementation of the ICU tokenizer. +** Implementation of the geopoly_blob(X) function. +** +** If the input is a well-formed Geopoly BLOB or JSON string +** then return the BLOB representation of the polygon. Otherwise +** return NULL. */ -SQLITE_PRIVATE void sqlite3Fts3IcuTokenizerModule( - sqlite3_tokenizer_module const**ppModule +static void geopolyBlobFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv ){ - *ppModule = &icuTokenizerModule; + GeoPoly *p = geopolyFuncParam(context, argv[0], 0); + if( p ){ + sqlite3_result_blob(context, p->hdr, + 4+8*p->nVertex, SQLITE_TRANSIENT); + sqlite3_free(p); + } } -#endif /* defined(SQLITE_ENABLE_ICU) */ -#endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3) */ - -/************** End of fts3_icu.c ********************************************/ -/************** Begin file sqlite3rbu.c **************************************/ /* -** 2014 August 30 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** -** -** OVERVIEW -** -** The RBU extension requires that the RBU update be packaged as an -** SQLite database. The tables it expects to find are described in -** sqlite3rbu.h. Essentially, for each table xyz in the target database -** that the user wishes to write to, a corresponding data_xyz table is -** created in the RBU database and populated with one row for each row to -** update, insert or delete from the target table. -** -** The update proceeds in three stages: -** -** 1) The database is updated. The modified database pages are written -** to a *-oal file. A *-oal file is just like a *-wal file, except -** that it is named "-oal" instead of "-wal". -** Because regular SQLite clients do not look for file named -** "-oal", they go on using the original database in -** rollback mode while the *-oal file is being generated. -** -** During this stage RBU does not update the database by writing -** directly to the target tables. Instead it creates "imposter" -** tables using the SQLITE_TESTCTRL_IMPOSTER interface that it uses -** to update each b-tree individually. All updates required by each -** b-tree are completed before moving on to the next, and all -** updates are done in sorted key order. -** -** 2) The "-oal" file is moved to the equivalent "-wal" -** location using a call to rename(2). Before doing this the RBU -** module takes an EXCLUSIVE lock on the database file, ensuring -** that there are no other active readers. -** -** Once the EXCLUSIVE lock is released, any other database readers -** detect the new *-wal file and read the database in wal mode. At -** this point they see the new version of the database - including -** the updates made as part of the RBU update. -** -** 3) The new *-wal file is checkpointed. This proceeds in the same way -** as a regular database checkpoint, except that a single frame is -** checkpointed each time sqlite3rbu_step() is called. If the RBU -** handle is closed before the entire *-wal file is checkpointed, -** the checkpoint progress is saved in the RBU database and the -** checkpoint can be resumed by another RBU client at some point in -** the future. -** -** POTENTIAL PROBLEMS -** -** The rename() call might not be portable. And RBU is not currently -** syncing the directory after renaming the file. -** -** When state is saved, any commit to the *-oal file and the commit to -** the RBU update database are not atomic. So if the power fails at the -** wrong moment they might get out of sync. As the main database will be -** committed before the RBU update database this will likely either just -** pass unnoticed, or result in SQLITE_CONSTRAINT errors (due to UNIQUE -** constraint violations). -** -** If some client does modify the target database mid RBU update, or some -** other error occurs, the RBU extension will keep throwing errors. It's -** not really clear how to get out of this state. The system could just -** by delete the RBU update database and *-oal file and have the device -** download the update again and start over. +** SQL function: geopoly_json(X) ** -** At present, for an UPDATE, both the new.* and old.* records are -** collected in the rbu_xyz table. And for both UPDATEs and DELETEs all -** fields are collected. This means we're probably writing a lot more -** data to disk when saving the state of an ongoing update to the RBU -** update database than is strictly necessary. -** +** Interpret X as a polygon and render it as a JSON array +** of coordinates. Or, if X is not a valid polygon, return NULL. */ +static void geopolyJsonFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + GeoPoly *p = geopolyFuncParam(context, argv[0], 0); + if( p ){ + sqlite3 *db = sqlite3_context_db_handle(context); + sqlite3_str *x = sqlite3_str_new(db); + int i; + sqlite3_str_append(x, "[", 1); + for(i=0; inVertex; i++){ + sqlite3_str_appendf(x, "[%!g,%!g],", p->a[i*2], p->a[i*2+1]); + } + sqlite3_str_appendf(x, "[%!g,%!g]]", p->a[0], p->a[1]); + sqlite3_result_text(context, sqlite3_str_finish(x), -1, sqlite3_free); + sqlite3_free(p); + } +} -/* #include */ -/* #include */ -/* #include */ - -/* #include "sqlite3.h" */ - -#if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_RBU) -/************** Include sqlite3rbu.h in the middle of sqlite3rbu.c ***********/ -/************** Begin file sqlite3rbu.h **************************************/ /* -** 2014 August 30 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* +** SQL function: geopoly_svg(X, ....) ** -** This file contains the public interface for the RBU extension. +** Interpret X as a polygon and render it as a SVG . +** Additional arguments are added as attributes to the . */ +static void geopolySvgFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + GeoPoly *p = geopolyFuncParam(context, argv[0], 0); + if( p ){ + sqlite3 *db = sqlite3_context_db_handle(context); + sqlite3_str *x = sqlite3_str_new(db); + int i; + char cSep = '\''; + sqlite3_str_appendf(x, "a[i*2], p->a[i*2+1]); + cSep = ' '; + } + sqlite3_str_appendf(x, " %g,%g'", p->a[0], p->a[1]); + for(i=1; i"); + sqlite3_result_text(context, sqlite3_str_finish(x), -1, sqlite3_free); + sqlite3_free(p); + } +} /* -** SUMMARY -** -** Writing a transaction containing a large number of operations on -** b-tree indexes that are collectively larger than the available cache -** memory can be very inefficient. -** -** The problem is that in order to update a b-tree, the leaf page (at least) -** containing the entry being inserted or deleted must be modified. If the -** working set of leaves is larger than the available cache memory, then a -** single leaf that is modified more than once as part of the transaction -** may be loaded from or written to the persistent media multiple times. -** Additionally, because the index updates are likely to be applied in -** random order, access to pages within the database is also likely to be in -** random order, which is itself quite inefficient. -** -** One way to improve the situation is to sort the operations on each index -** by index key before applying them to the b-tree. This leads to an IO -** pattern that resembles a single linear scan through the index b-tree, -** and all but guarantees each modified leaf page is loaded and stored -** exactly once. SQLite uses this trick to improve the performance of -** CREATE INDEX commands. This extension allows it to be used to improve -** the performance of large transactions on existing databases. -** -** Additionally, this extension allows the work involved in writing the -** large transaction to be broken down into sub-transactions performed -** sequentially by separate processes. This is useful if the system cannot -** guarantee that a single update process will run for long enough to apply -** the entire update, for example because the update is being applied on a -** mobile device that is frequently rebooted. Even after the writer process -** has committed one or more sub-transactions, other database clients continue -** to read from the original database snapshot. In other words, partially -** applied transactions are not visible to other clients. -** -** "RBU" stands for "Resumable Bulk Update". As in a large database update -** transmitted via a wireless network to a mobile device. A transaction -** applied using this extension is hence refered to as an "RBU update". -** -** -** LIMITATIONS -** -** An "RBU update" transaction is subject to the following limitations: -** -** * The transaction must consist of INSERT, UPDATE and DELETE operations -** only. -** -** * INSERT statements may not use any default values. -** -** * UPDATE and DELETE statements must identify their target rows by -** non-NULL PRIMARY KEY values. Rows with NULL values stored in PRIMARY -** KEY fields may not be updated or deleted. If the table being written -** has no PRIMARY KEY, affected rows must be identified by rowid. -** -** * UPDATE statements may not modify PRIMARY KEY columns. -** -** * No triggers will be fired. -** -** * No foreign key violations are detected or reported. -** -** * CHECK constraints are not enforced. -** -** * No constraint handling mode except for "OR ROLLBACK" is supported. -** -** -** PREPARATION -** -** An "RBU update" is stored as a separate SQLite database. A database -** containing an RBU update is an "RBU database". For each table in the -** target database to be updated, the RBU database should contain a table -** named "data_" containing the same set of columns as the -** target table, and one more - "rbu_control". The data_% table should -** have no PRIMARY KEY or UNIQUE constraints, but each column should have -** the same type as the corresponding column in the target database. -** The "rbu_control" column should have no type at all. For example, if -** the target database contains: -** -** CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c UNIQUE); -** -** Then the RBU database should contain: -** -** CREATE TABLE data_t1(a INTEGER, b TEXT, c, rbu_control); -** -** The order of the columns in the data_% table does not matter. -** -** Instead of a regular table, the RBU database may also contain virtual -** tables or view named using the data_ naming scheme. -** -** Instead of the plain data_ naming scheme, RBU database tables -** may also be named data_, where is any sequence -** of zero or more numeric characters (0-9). This can be significant because -** tables within the RBU database are always processed in order sorted by -** name. By judicious selection of the portion of the names -** of the RBU tables the user can therefore control the order in which they -** are processed. This can be useful, for example, to ensure that "external -** content" FTS4 tables are updated before their underlying content tables. -** -** If the target database table is a virtual table or a table that has no -** PRIMARY KEY declaration, the data_% table must also contain a column -** named "rbu_rowid". This column is mapped to the tables implicit primary -** key column - "rowid". Virtual tables for which the "rowid" column does -** not function like a primary key value cannot be updated using RBU. For -** example, if the target db contains either of the following: -** -** CREATE VIRTUAL TABLE x1 USING fts3(a, b); -** CREATE TABLE x1(a, b) -** -** then the RBU database should contain: -** -** CREATE TABLE data_x1(a, b, rbu_rowid, rbu_control); -** -** All non-hidden columns (i.e. all columns matched by "SELECT *") of the -** target table must be present in the input table. For virtual tables, -** hidden columns are optional - they are updated by RBU if present in -** the input table, or not otherwise. For example, to write to an fts4 -** table with a hidden languageid column such as: -** -** CREATE VIRTUAL TABLE ft1 USING fts4(a, b, languageid='langid'); -** -** Either of the following input table schemas may be used: -** -** CREATE TABLE data_ft1(a, b, langid, rbu_rowid, rbu_control); -** CREATE TABLE data_ft1(a, b, rbu_rowid, rbu_control); -** -** For each row to INSERT into the target database as part of the RBU -** update, the corresponding data_% table should contain a single record -** with the "rbu_control" column set to contain integer value 0. The -** other columns should be set to the values that make up the new record -** to insert. -** -** If the target database table has an INTEGER PRIMARY KEY, it is not -** possible to insert a NULL value into the IPK column. Attempting to -** do so results in an SQLITE_MISMATCH error. -** -** For each row to DELETE from the target database as part of the RBU -** update, the corresponding data_% table should contain a single record -** with the "rbu_control" column set to contain integer value 1. The -** real primary key values of the row to delete should be stored in the -** corresponding columns of the data_% table. The values stored in the -** other columns are not used. -** -** For each row to UPDATE from the target database as part of the RBU -** update, the corresponding data_% table should contain a single record -** with the "rbu_control" column set to contain a value of type text. -** The real primary key values identifying the row to update should be -** stored in the corresponding columns of the data_% table row, as should -** the new values of all columns being update. The text value in the -** "rbu_control" column must contain the same number of characters as -** there are columns in the target database table, and must consist entirely -** of 'x' and '.' characters (or in some special cases 'd' - see below). For -** each column that is being updated, the corresponding character is set to -** 'x'. For those that remain as they are, the corresponding character of the -** rbu_control value should be set to '.'. For example, given the tables -** above, the update statement: -** -** UPDATE t1 SET c = 'usa' WHERE a = 4; -** -** is represented by the data_t1 row created by: -** -** INSERT INTO data_t1(a, b, c, rbu_control) VALUES(4, NULL, 'usa', '..x'); -** -** Instead of an 'x' character, characters of the rbu_control value specified -** for UPDATEs may also be set to 'd'. In this case, instead of updating the -** target table with the value stored in the corresponding data_% column, the -** user-defined SQL function "rbu_delta()" is invoked and the result stored in -** the target table column. rbu_delta() is invoked with two arguments - the -** original value currently stored in the target table column and the -** value specified in the data_xxx table. -** -** For example, this row: -** -** INSERT INTO data_t1(a, b, c, rbu_control) VALUES(4, NULL, 'usa', '..d'); -** -** is similar to an UPDATE statement such as: -** -** UPDATE t1 SET c = rbu_delta(c, 'usa') WHERE a = 4; -** -** Finally, if an 'f' character appears in place of a 'd' or 's' in an -** ota_control string, the contents of the data_xxx table column is assumed -** to be a "fossil delta" - a patch to be applied to a blob value in the -** format used by the fossil source-code management system. In this case -** the existing value within the target database table must be of type BLOB. -** It is replaced by the result of applying the specified fossil delta to -** itself. -** -** If the target database table is a virtual table or a table with no PRIMARY -** KEY, the rbu_control value should not include a character corresponding -** to the rbu_rowid value. For example, this: -** -** INSERT INTO data_ft1(a, b, rbu_rowid, rbu_control) -** VALUES(NULL, 'usa', 12, '.x'); -** -** causes a result similar to: -** -** UPDATE ft1 SET b = 'usa' WHERE rowid = 12; -** -** The data_xxx tables themselves should have no PRIMARY KEY declarations. -** However, RBU is more efficient if reading the rows in from each data_xxx -** table in "rowid" order is roughly the same as reading them sorted by -** the PRIMARY KEY of the corresponding target database table. In other -** words, rows should be sorted using the destination table PRIMARY KEY -** fields before they are inserted into the data_xxx tables. -** -** USAGE -** -** The API declared below allows an application to apply an RBU update -** stored on disk to an existing target database. Essentially, the -** application: -** -** 1) Opens an RBU handle using the sqlite3rbu_open() function. -** -** 2) Registers any required virtual table modules with the database -** handle returned by sqlite3rbu_db(). Also, if required, register -** the rbu_delta() implementation. -** -** 3) Calls the sqlite3rbu_step() function one or more times on -** the new handle. Each call to sqlite3rbu_step() performs a single -** b-tree operation, so thousands of calls may be required to apply -** a complete update. -** -** 4) Calls sqlite3rbu_close() to close the RBU update handle. If -** sqlite3rbu_step() has been called enough times to completely -** apply the update to the target database, then the RBU database -** is marked as fully applied. Otherwise, the state of the RBU -** update application is saved in the RBU database for later -** resumption. -** -** See comments below for more detail on APIs. +** SQL Function: geopoly_xform(poly, A, B, C, D, E, F) ** -** If an update is only partially applied to the target database by the -** time sqlite3rbu_close() is called, various state information is saved -** within the RBU database. This allows subsequent processes to automatically -** resume the RBU update from where it left off. +** Transform and/or translate a polygon as follows: ** -** To remove all RBU extension state information, returning an RBU database -** to its original contents, it is sufficient to drop all tables that begin -** with the prefix "rbu_" +** x1 = A*x0 + B*y0 + E +** y1 = C*x0 + D*y0 + F ** -** DATABASE LOCKING +** For a translation: ** -** An RBU update may not be applied to a database in WAL mode. Attempting -** to do so is an error (SQLITE_ERROR). +** geopoly_xform(poly, 1, 0, 0, 1, x-offset, y-offset) ** -** While an RBU handle is open, a SHARED lock may be held on the target -** database file. This means it is possible for other clients to read the -** database, but not to write it. +** Rotate by R around the point (0,0): ** -** If an RBU update is started and then suspended before it is completed, -** then an external client writes to the database, then attempting to resume -** the suspended RBU update is also an error (SQLITE_BUSY). +** geopoly_xform(poly, cos(R), sin(R), -sin(R), cos(R), 0, 0) */ - -#ifndef _SQLITE3RBU_H -#define _SQLITE3RBU_H - -/* #include "sqlite3.h" ** Required for error code definitions ** */ - -#if 0 -extern "C" { -#endif - -typedef struct sqlite3rbu sqlite3rbu; +static void geopolyXformFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + GeoPoly *p = geopolyFuncParam(context, argv[0], 0); + double A = sqlite3_value_double(argv[1]); + double B = sqlite3_value_double(argv[2]); + double C = sqlite3_value_double(argv[3]); + double D = sqlite3_value_double(argv[4]); + double E = sqlite3_value_double(argv[5]); + double F = sqlite3_value_double(argv[6]); + GeoCoord x1, y1, x0, y0; + int ii; + if( p ){ + for(ii=0; iinVertex; ii++){ + x0 = p->a[ii*2]; + y0 = p->a[ii*2+1]; + x1 = (GeoCoord)(A*x0 + B*y0 + E); + y1 = (GeoCoord)(C*x0 + D*y0 + F); + p->a[ii*2] = x1; + p->a[ii*2+1] = y1; + } + sqlite3_result_blob(context, p->hdr, + 4+8*p->nVertex, SQLITE_TRANSIENT); + sqlite3_free(p); + } +} /* -** Open an RBU handle. -** -** Argument zTarget is the path to the target database. Argument zRbu is -** the path to the RBU database. Each call to this function must be matched -** by a call to sqlite3rbu_close(). When opening the databases, RBU passes -** the SQLITE_CONFIG_URI flag to sqlite3_open_v2(). So if either zTarget -** or zRbu begin with "file:", it will be interpreted as an SQLite -** database URI, not a regular file name. -** -** If the zState argument is passed a NULL value, the RBU extension stores -** the current state of the update (how many rows have been updated, which -** indexes are yet to be updated etc.) within the RBU database itself. This -** can be convenient, as it means that the RBU application does not need to -** organize removing a separate state file after the update is concluded. -** Or, if zState is non-NULL, it must be a path to a database file in which -** the RBU extension can store the state of the update. -** -** When resuming an RBU update, the zState argument must be passed the same -** value as when the RBU update was started. -** -** Once the RBU update is finished, the RBU extension does not -** automatically remove any zState database file, even if it created it. +** Compute the area enclosed by the polygon. ** -** By default, RBU uses the default VFS to access the files on disk. To -** use a VFS other than the default, an SQLite "file:" URI containing a -** "vfs=..." option may be passed as the zTarget option. +** This routine can also be used to detect polygons that rotate in +** the wrong direction. Polygons are suppose to be counter-clockwise (CCW). +** This routine returns a negative value for clockwise (CW) polygons. +*/ +static double geopolyArea(GeoPoly *p){ + double rArea = 0.0; + int ii; + for(ii=0; iinVertex-1; ii++){ + rArea += (p->a[ii*2] - p->a[ii*2+2]) /* (x0 - x1) */ + * (p->a[ii*2+1] + p->a[ii*2+3]) /* (y0 + y1) */ + * 0.5; + } + rArea += (p->a[ii*2] - p->a[0]) /* (xN - x0) */ + * (p->a[ii*2+1] + p->a[1]) /* (yN + y0) */ + * 0.5; + return rArea; +} + +/* +** Implementation of the geopoly_area(X) function. ** -** IMPORTANT NOTE FOR ZIPVFS USERS: The RBU extension works with all of -** SQLite's built-in VFSs, including the multiplexor VFS. However it does -** not work out of the box with zipvfs. Refer to the comment describing -** the zipvfs_create_vfs() API below for details on using RBU with zipvfs. +** If the input is a well-formed Geopoly BLOB then return the area +** enclosed by the polygon. If the polygon circulates clockwise instead +** of counterclockwise (as it should) then return the negative of the +** enclosed area. Otherwise return NULL. */ -SQLITE_API sqlite3rbu *sqlite3rbu_open( - const char *zTarget, - const char *zRbu, - const char *zState -); +static void geopolyAreaFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + GeoPoly *p = geopolyFuncParam(context, argv[0], 0); + if( p ){ + sqlite3_result_double(context, geopolyArea(p)); + sqlite3_free(p); + } +} /* -** Open an RBU handle to perform an RBU vacuum on database file zTarget. -** An RBU vacuum is similar to SQLite's built-in VACUUM command, except -** that it can be suspended and resumed like an RBU update. +** Implementation of the geopoly_ccw(X) function. ** -** The second argument to this function identifies a database in which -** to store the state of the RBU vacuum operation if it is suspended. The -** first time sqlite3rbu_vacuum() is called, to start an RBU vacuum -** operation, the state database should either not exist or be empty -** (contain no tables). If an RBU vacuum is suspended by calling -** sqlite3rbu_close() on the RBU handle before sqlite3rbu_step() has -** returned SQLITE_DONE, the vacuum state is stored in the state database. -** The vacuum can be resumed by calling this function to open a new RBU -** handle specifying the same target and state databases. +** If the rotation of polygon X is clockwise (incorrect) instead of +** counter-clockwise (the correct winding order according to RFC7946) +** then reverse the order of the vertexes in polygon X. ** -** If the second argument passed to this function is NULL, then the -** name of the state database is "-vacuum", where -** is the name of the target database file. In this case, on UNIX, if the -** state database is not already present in the file-system, it is created -** with the same permissions as the target db is made. +** In other words, this routine returns a CCW polygon regardless of the +** winding order of its input. ** -** This function does not delete the state database after an RBU vacuum -** is completed, even if it created it. However, if the call to -** sqlite3rbu_close() returns any value other than SQLITE_OK, the contents -** of the state tables within the state database are zeroed. This way, -** the next call to sqlite3rbu_vacuum() opens a handle that starts a -** new RBU vacuum operation. +** Use this routine to sanitize historical inputs that that sometimes +** contain polygons that wind in the wrong direction. +*/ +static void geopolyCcwFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + GeoPoly *p = geopolyFuncParam(context, argv[0], 0); + if( p ){ + if( geopolyArea(p)<0.0 ){ + int ii, jj; + for(ii=2, jj=p->nVertex*2 - 2; iia[ii]; + p->a[ii] = p->a[jj]; + p->a[jj] = t; + t = p->a[ii+1]; + p->a[ii+1] = p->a[jj+1]; + p->a[jj+1] = t; + } + } + sqlite3_result_blob(context, p->hdr, + 4+8*p->nVertex, SQLITE_TRANSIENT); + sqlite3_free(p); + } +} + +#define GEOPOLY_PI 3.1415926535897932385 + +/* Fast approximation for sine(X) for X between -0.5*pi and 2*pi +*/ +static double geopolySine(double r){ + assert( r>=-0.5*GEOPOLY_PI && r<=2.0*GEOPOLY_PI ); + if( r>=1.5*GEOPOLY_PI ){ + r -= 2.0*GEOPOLY_PI; + } + if( r>=0.5*GEOPOLY_PI ){ + return -geopolySine(r-GEOPOLY_PI); + }else{ + double r2 = r*r; + double r3 = r2*r; + double r5 = r3*r2; + return 0.9996949*r - 0.1656700*r3 + 0.0075134*r5; + } +} + +/* +** Function: geopoly_regular(X,Y,R,N) ** -** As with sqlite3rbu_open(), Zipvfs users should rever to the comment -** describing the sqlite3rbu_create_vfs() API function below for -** a description of the complications associated with using RBU with -** zipvfs databases. +** Construct a simple, convex, regular polygon centered at X, Y +** with circumradius R and with N sides. */ -SQLITE_API sqlite3rbu *sqlite3rbu_vacuum( - const char *zTarget, - const char *zState -); +static void geopolyRegularFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + double x = sqlite3_value_double(argv[0]); + double y = sqlite3_value_double(argv[1]); + double r = sqlite3_value_double(argv[2]); + int n = sqlite3_value_int(argv[3]); + int i; + GeoPoly *p; + + if( n<3 || r<=0.0 ) return; + if( n>1000 ) n = 1000; + p = sqlite3_malloc64( sizeof(*p) + (n-1)*2*sizeof(GeoCoord) ); + if( p==0 ){ + sqlite3_result_error_nomem(context); + return; + } + i = 1; + p->hdr[0] = *(unsigned char*)&i; + p->hdr[1] = 0; + p->hdr[2] = (n>>8)&0xff; + p->hdr[3] = n&0xff; + for(i=0; ia[i*2] = x - r*geopolySine(rAngle-0.5*GEOPOLY_PI); + p->a[i*2+1] = y + r*geopolySine(rAngle); + } + sqlite3_result_blob(context, p->hdr, 4+8*n, SQLITE_TRANSIENT); + sqlite3_free(p); +} /* -** Configure a limit for the amount of temp space that may be used by -** the RBU handle passed as the first argument. The new limit is specified -** in bytes by the second parameter. If it is positive, the limit is updated. -** If the second parameter to this function is passed zero, then the limit -** is removed entirely. If the second parameter is negative, the limit is -** not modified (this is useful for querying the current limit). +** If pPoly is a polygon, compute its bounding box. Then: ** -** In all cases the returned value is the current limit in bytes (zero -** indicates unlimited). +** (1) if aCoord!=0 store the bounding box in aCoord, returning NULL +** (2) otherwise, compute a GeoPoly for the bounding box and return the +** new GeoPoly ** -** If the temp space limit is exceeded during operation, an SQLITE_FULL -** error is returned. +** If pPoly is NULL but aCoord is not NULL, then compute a new GeoPoly from +** the bounding box in aCoord and return a pointer to that GeoPoly. */ -SQLITE_API sqlite3_int64 sqlite3rbu_temp_size_limit(sqlite3rbu*, sqlite3_int64); +static GeoPoly *geopolyBBox( + sqlite3_context *context, /* For recording the error */ + sqlite3_value *pPoly, /* The polygon */ + RtreeCoord *aCoord, /* Results here */ + int *pRc /* Error code here */ +){ + GeoPoly *pOut = 0; + GeoPoly *p; + float mnX, mxX, mnY, mxY; + if( pPoly==0 && aCoord!=0 ){ + p = 0; + mnX = aCoord[0].f; + mxX = aCoord[1].f; + mnY = aCoord[2].f; + mxY = aCoord[3].f; + goto geopolyBboxFill; + }else{ + p = geopolyFuncParam(context, pPoly, pRc); + } + if( p ){ + int ii; + mnX = mxX = p->a[0]; + mnY = mxY = p->a[1]; + for(ii=1; iinVertex; ii++){ + double r = p->a[ii*2]; + if( rmxX ) mxX = (float)r; + r = p->a[ii*2+1]; + if( rmxY ) mxY = (float)r; + } + if( pRc ) *pRc = SQLITE_OK; + if( aCoord==0 ){ + geopolyBboxFill: + pOut = sqlite3_realloc(p, GEOPOLY_SZ(4)); + if( pOut==0 ){ + sqlite3_free(p); + if( context ) sqlite3_result_error_nomem(context); + if( pRc ) *pRc = SQLITE_NOMEM; + return 0; + } + pOut->nVertex = 4; + ii = 1; + pOut->hdr[0] = *(unsigned char*)ⅈ + pOut->hdr[1] = 0; + pOut->hdr[2] = 0; + pOut->hdr[3] = 4; + pOut->a[0] = mnX; + pOut->a[1] = mnY; + pOut->a[2] = mxX; + pOut->a[3] = mnY; + pOut->a[4] = mxX; + pOut->a[5] = mxY; + pOut->a[6] = mnX; + pOut->a[7] = mxY; + }else{ + sqlite3_free(p); + aCoord[0].f = mnX; + aCoord[1].f = mxX; + aCoord[2].f = mnY; + aCoord[3].f = mxY; + } + } + return pOut; +} /* -** Return the current amount of temp file space, in bytes, currently used by -** the RBU handle passed as the only argument. +** Implementation of the geopoly_bbox(X) SQL function. */ -SQLITE_API sqlite3_int64 sqlite3rbu_temp_size(sqlite3rbu*); +static void geopolyBBoxFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + GeoPoly *p = geopolyBBox(context, argv[0], 0, 0); + if( p ){ + sqlite3_result_blob(context, p->hdr, + 4+8*p->nVertex, SQLITE_TRANSIENT); + sqlite3_free(p); + } +} /* -** Internally, each RBU connection uses a separate SQLite database -** connection to access the target and rbu update databases. This -** API allows the application direct access to these database handles. -** -** The first argument passed to this function must be a valid, open, RBU -** handle. The second argument should be passed zero to access the target -** database handle, or non-zero to access the rbu update database handle. -** Accessing the underlying database handles may be useful in the -** following scenarios: -** -** * If any target tables are virtual tables, it may be necessary to -** call sqlite3_create_module() on the target database handle to -** register the required virtual table implementations. +** State vector for the geopoly_group_bbox() aggregate function. +*/ +typedef struct GeoBBox GeoBBox; +struct GeoBBox { + int isInit; + RtreeCoord a[4]; +}; + + +/* +** Implementation of the geopoly_group_bbox(X) aggregate SQL function. +*/ +static void geopolyBBoxStep( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + RtreeCoord a[4]; + int rc = SQLITE_OK; + (void)geopolyBBox(context, argv[0], a, &rc); + if( rc==SQLITE_OK ){ + GeoBBox *pBBox; + pBBox = (GeoBBox*)sqlite3_aggregate_context(context, sizeof(*pBBox)); + if( pBBox==0 ) return; + if( pBBox->isInit==0 ){ + pBBox->isInit = 1; + memcpy(pBBox->a, a, sizeof(RtreeCoord)*4); + }else{ + if( a[0].f < pBBox->a[0].f ) pBBox->a[0] = a[0]; + if( a[1].f > pBBox->a[1].f ) pBBox->a[1] = a[1]; + if( a[2].f < pBBox->a[2].f ) pBBox->a[2] = a[2]; + if( a[3].f > pBBox->a[3].f ) pBBox->a[3] = a[3]; + } + } +} +static void geopolyBBoxFinal( + sqlite3_context *context +){ + GeoPoly *p; + GeoBBox *pBBox; + pBBox = (GeoBBox*)sqlite3_aggregate_context(context, 0); + if( pBBox==0 ) return; + p = geopolyBBox(context, 0, pBBox->a, 0); + if( p ){ + sqlite3_result_blob(context, p->hdr, + 4+8*p->nVertex, SQLITE_TRANSIENT); + sqlite3_free(p); + } +} + + +/* +** Determine if point (x0,y0) is beneath line segment (x1,y1)->(x2,y2). +** Returns: ** -** * If the data_xxx tables in the RBU source database are virtual -** tables, the application may need to call sqlite3_create_module() on -** the rbu update db handle to any required virtual table -** implementations. +** +2 x0,y0 is on the line segement ** -** * If the application uses the "rbu_delta()" feature described above, -** it must use sqlite3_create_function() or similar to register the -** rbu_delta() implementation with the target database handle. +** +1 x0,y0 is beneath line segment ** -** If an error has occurred, either while opening or stepping the RBU object, -** this function may return NULL. The error code and message may be collected -** when sqlite3rbu_close() is called. +** 0 x0,y0 is not on or beneath the line segment or the line segment +** is vertical and x0,y0 is not on the line segment ** -** Database handles returned by this function remain valid until the next -** call to any sqlite3rbu_xxx() function other than sqlite3rbu_db(). +** The left-most coordinate min(x1,x2) is not considered to be part of +** the line segment for the purposes of this analysis. */ -SQLITE_API sqlite3 *sqlite3rbu_db(sqlite3rbu*, int bRbu); +static int pointBeneathLine( + double x0, double y0, + double x1, double y1, + double x2, double y2 +){ + double y; + if( x0==x1 && y0==y1 ) return 2; + if( x1x2 ) return 0; + }else if( x1>x2 ){ + if( x0<=x2 || x0>x1 ) return 0; + }else{ + /* Vertical line segment */ + if( x0!=x1 ) return 0; + if( y0y1 && y0>y2 ) return 0; + return 2; + } + y = y1 + (y2-y1)*(x0-x1)/(x2-x1); + if( y0==y ) return 2; + if( y0nVertex-1; ii++){ + v = pointBeneathLine(x0,y0,p1->a[ii*2],p1->a[ii*2+1], + p1->a[ii*2+2],p1->a[ii*2+3]); + if( v==2 ) break; + cnt += v; + } + if( v!=2 ){ + v = pointBeneathLine(x0,y0,p1->a[ii*2],p1->a[ii*2+1], + p1->a[0],p1->a[1]); + } + if( v==2 ){ + sqlite3_result_int(context, 1); + }else if( ((v+cnt)&1)==0 ){ + sqlite3_result_int(context, 0); + }else{ + sqlite3_result_int(context, 2); + } + sqlite3_free(p1); +} + +/* Forward declaration */ +static int geopolyOverlap(GeoPoly *p1, GeoPoly *p2); /* -** Force RBU to save its state to disk. +** SQL function: geopoly_within(P1,P2) ** -** If a power failure or application crash occurs during an update, following -** system recovery RBU may resume the update from the point at which the state -** was last saved. In other words, from the most recent successful call to -** sqlite3rbu_close() or this function. +** Return +2 if P1 and P2 are the same polygon +** Return +1 if P2 is contained within P1 +** Return 0 if any part of P2 is on the outside of P1 ** -** SQLITE_OK is returned if successful, or an SQLite error code otherwise. */ -SQLITE_API int sqlite3rbu_savestate(sqlite3rbu *pRbu); +static void geopolyWithinFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + GeoPoly *p1 = geopolyFuncParam(context, argv[0], 0); + GeoPoly *p2 = geopolyFuncParam(context, argv[1], 0); + if( p1 && p2 ){ + int x = geopolyOverlap(p1, p2); + if( x<0 ){ + sqlite3_result_error_nomem(context); + }else{ + sqlite3_result_int(context, x==2 ? 1 : x==4 ? 2 : 0); + } + } + sqlite3_free(p1); + sqlite3_free(p2); +} + +/* Objects used by the overlap algorihm. */ +typedef struct GeoEvent GeoEvent; +typedef struct GeoSegment GeoSegment; +typedef struct GeoOverlap GeoOverlap; +struct GeoEvent { + double x; /* X coordinate at which event occurs */ + int eType; /* 0 for ADD, 1 for REMOVE */ + GeoSegment *pSeg; /* The segment to be added or removed */ + GeoEvent *pNext; /* Next event in the sorted list */ +}; +struct GeoSegment { + double C, B; /* y = C*x + B */ + double y; /* Current y value */ + float y0; /* Initial y value */ + unsigned char side; /* 1 for p1, 2 for p2 */ + unsigned int idx; /* Which segment within the side */ + GeoSegment *pNext; /* Next segment in a list sorted by y */ +}; +struct GeoOverlap { + GeoEvent *aEvent; /* Array of all events */ + GeoSegment *aSegment; /* Array of all segments */ + int nEvent; /* Number of events */ + int nSegment; /* Number of segments */ +}; /* -** Close an RBU handle. -** -** If the RBU update has been completely applied, mark the RBU database -** as fully applied. Otherwise, assuming no error has occurred, save the -** current state of the RBU update appliation to the RBU database. -** -** If an error has already occurred as part of an sqlite3rbu_step() -** or sqlite3rbu_open() call, or if one occurs within this function, an -** SQLite error code is returned. Additionally, if pzErrmsg is not NULL, -** *pzErrmsg may be set to point to a buffer containing a utf-8 formatted -** English language error message. It is the responsibility of the caller to -** eventually free any such buffer using sqlite3_free(). -** -** Otherwise, if no error occurs, this function returns SQLITE_OK if the -** update has been partially applied, or SQLITE_DONE if it has been -** completely applied. +** Add a single segment and its associated events. +*/ +static void geopolyAddOneSegment( + GeoOverlap *p, + GeoCoord x0, + GeoCoord y0, + GeoCoord x1, + GeoCoord y1, + unsigned char side, + unsigned int idx +){ + GeoSegment *pSeg; + GeoEvent *pEvent; + if( x0==x1 ) return; /* Ignore vertical segments */ + if( x0>x1 ){ + GeoCoord t = x0; + x0 = x1; + x1 = t; + t = y0; + y0 = y1; + y1 = t; + } + pSeg = p->aSegment + p->nSegment; + p->nSegment++; + pSeg->C = (y1-y0)/(x1-x0); + pSeg->B = y1 - x1*pSeg->C; + pSeg->y0 = y0; + pSeg->side = side; + pSeg->idx = idx; + pEvent = p->aEvent + p->nEvent; + p->nEvent++; + pEvent->x = x0; + pEvent->eType = 0; + pEvent->pSeg = pSeg; + pEvent = p->aEvent + p->nEvent; + p->nEvent++; + pEvent->x = x1; + pEvent->eType = 1; + pEvent->pSeg = pSeg; +} + + + +/* +** Insert all segments and events for polygon pPoly. */ -SQLITE_API int sqlite3rbu_close(sqlite3rbu *pRbu, char **pzErrmsg); +static void geopolyAddSegments( + GeoOverlap *p, /* Add segments to this Overlap object */ + GeoPoly *pPoly, /* Take all segments from this polygon */ + unsigned char side /* The side of pPoly */ +){ + unsigned int i; + GeoCoord *x; + for(i=0; i<(unsigned)pPoly->nVertex-1; i++){ + x = pPoly->a + (i*2); + geopolyAddOneSegment(p, x[0], x[1], x[2], x[3], side, i); + } + x = pPoly->a + (i*2); + geopolyAddOneSegment(p, x[0], x[1], pPoly->a[0], pPoly->a[1], side, i); +} /* -** Return the total number of key-value operations (inserts, deletes or -** updates) that have been performed on the target database since the -** current RBU update was started. +** Merge two lists of sorted events by X coordinate */ -SQLITE_API sqlite3_int64 sqlite3rbu_progress(sqlite3rbu *pRbu); +static GeoEvent *geopolyEventMerge(GeoEvent *pLeft, GeoEvent *pRight){ + GeoEvent head, *pLast; + head.pNext = 0; + pLast = &head; + while( pRight && pLeft ){ + if( pRight->x <= pLeft->x ){ + pLast->pNext = pRight; + pLast = pRight; + pRight = pRight->pNext; + }else{ + pLast->pNext = pLeft; + pLast = pLeft; + pLeft = pLeft->pNext; + } + } + pLast->pNext = pRight ? pRight : pLeft; + return head.pNext; +} /* -** Obtain permyriadage (permyriadage is to 10000 as percentage is to 100) -** progress indications for the two stages of an RBU update. This API may -** be useful for driving GUI progress indicators and similar. -** -** An RBU update is divided into two stages: -** -** * Stage 1, in which changes are accumulated in an oal/wal file, and -** * Stage 2, in which the contents of the wal file are copied into the -** main database. -** -** The update is visible to non-RBU clients during stage 2. During stage 1 -** non-RBU reader clients may see the original database. -** -** If this API is called during stage 2 of the update, output variable -** (*pnOne) is set to 10000 to indicate that stage 1 has finished and (*pnTwo) -** to a value between 0 and 10000 to indicate the permyriadage progress of -** stage 2. A value of 5000 indicates that stage 2 is half finished, -** 9000 indicates that it is 90% finished, and so on. -** -** If this API is called during stage 1 of the update, output variable -** (*pnTwo) is set to 0 to indicate that stage 2 has not yet started. The -** value to which (*pnOne) is set depends on whether or not the RBU -** database contains an "rbu_count" table. The rbu_count table, if it -** exists, must contain the same columns as the following: -** -** CREATE TABLE rbu_count(tbl TEXT PRIMARY KEY, cnt INTEGER) WITHOUT ROWID; -** -** There must be one row in the table for each source (data_xxx) table within -** the RBU database. The 'tbl' column should contain the name of the source -** table. The 'cnt' column should contain the number of rows within the -** source table. -** -** If the rbu_count table is present and populated correctly and this -** API is called during stage 1, the *pnOne output variable is set to the -** permyriadage progress of the same stage. If the rbu_count table does -** not exist, then (*pnOne) is set to -1 during stage 1. If the rbu_count -** table exists but is not correctly populated, the value of the *pnOne -** output variable during stage 1 is undefined. +** Sort an array of nEvent event objects into a list. */ -SQLITE_API void sqlite3rbu_bp_progress(sqlite3rbu *pRbu, int *pnOne, int*pnTwo); +static GeoEvent *geopolySortEventsByX(GeoEvent *aEvent, int nEvent){ + int mx = 0; + int i, j; + GeoEvent *p; + GeoEvent *a[50]; + for(i=0; ipNext = 0; + for(j=0; j=mx ) mx = j+1; + } + p = 0; + for(i=0; iy - pLeft->y; + if( r==0.0 ) r = pRight->C - pLeft->C; + if( r<0.0 ){ + pLast->pNext = pRight; + pLast = pRight; + pRight = pRight->pNext; + }else{ + pLast->pNext = pLeft; + pLast = pLeft; + pLeft = pLeft->pNext; + } + } + pLast->pNext = pRight ? pRight : pLeft; + return head.pNext; +} + +/* +** Sort a list of GeoSegments in order of increasing Y and in the event of +** a tie, increasing C (slope). +*/ +static GeoSegment *geopolySortSegmentsByYAndC(GeoSegment *pList){ + int mx = 0; + int i; + GeoSegment *p; + GeoSegment *a[50]; + while( pList ){ + p = pList; + pList = pList->pNext; + p->pNext = 0; + for(i=0; i=mx ) mx = i+1; + } + p = 0; + for(i=0; inVertex + p2->nVertex + 2; + GeoOverlap *p; + int nByte; + GeoEvent *pThisEvent; + double rX; + int rc = 0; + int needSort = 0; + GeoSegment *pActive = 0; + GeoSegment *pSeg; + unsigned char aOverlap[4]; + + nByte = sizeof(GeoEvent)*nVertex*2 + + sizeof(GeoSegment)*nVertex + + sizeof(GeoOverlap); + p = sqlite3_malloc( nByte ); + if( p==0 ) return -1; + p->aEvent = (GeoEvent*)&p[1]; + p->aSegment = (GeoSegment*)&p->aEvent[nVertex*2]; + p->nEvent = p->nSegment = 0; + geopolyAddSegments(p, p1, 1); + geopolyAddSegments(p, p2, 2); + pThisEvent = geopolySortEventsByX(p->aEvent, p->nEvent); + rX = pThisEvent->x==0.0 ? -1.0 : 0.0; + memset(aOverlap, 0, sizeof(aOverlap)); + while( pThisEvent ){ + if( pThisEvent->x!=rX ){ + GeoSegment *pPrev = 0; + int iMask = 0; + GEODEBUG(("Distinct X: %g\n", pThisEvent->x)); + rX = pThisEvent->x; + if( needSort ){ + GEODEBUG(("SORT\n")); + pActive = geopolySortSegmentsByYAndC(pActive); + needSort = 0; + } + for(pSeg=pActive; pSeg; pSeg=pSeg->pNext){ + if( pPrev ){ + if( pPrev->y!=pSeg->y ){ + GEODEBUG(("MASK: %d\n", iMask)); + aOverlap[iMask] = 1; + } + } + iMask ^= pSeg->side; + pPrev = pSeg; + } + pPrev = 0; + for(pSeg=pActive; pSeg; pSeg=pSeg->pNext){ + double y = pSeg->C*rX + pSeg->B; + GEODEBUG(("Segment %d.%d %g->%g\n", pSeg->side, pSeg->idx, pSeg->y, y)); + pSeg->y = y; + if( pPrev ){ + if( pPrev->y>pSeg->y && pPrev->side!=pSeg->side ){ + rc = 1; + GEODEBUG(("Crossing: %d.%d and %d.%d\n", + pPrev->side, pPrev->idx, + pSeg->side, pSeg->idx)); + goto geopolyOverlapDone; + }else if( pPrev->y!=pSeg->y ){ + GEODEBUG(("MASK: %d\n", iMask)); + aOverlap[iMask] = 1; + } + } + iMask ^= pSeg->side; + pPrev = pSeg; + } + } + GEODEBUG(("%s %d.%d C=%g B=%g\n", + pThisEvent->eType ? "RM " : "ADD", + pThisEvent->pSeg->side, pThisEvent->pSeg->idx, + pThisEvent->pSeg->C, + pThisEvent->pSeg->B)); + if( pThisEvent->eType==0 ){ + /* Add a segment */ + pSeg = pThisEvent->pSeg; + pSeg->y = pSeg->y0; + pSeg->pNext = pActive; + pActive = pSeg; + needSort = 1; + }else{ + /* Remove a segment */ + if( pActive==pThisEvent->pSeg ){ + pActive = pActive->pNext; + }else{ + for(pSeg=pActive; pSeg; pSeg=pSeg->pNext){ + if( pSeg->pNext==pThisEvent->pSeg ){ + pSeg->pNext = pSeg->pNext->pNext; + break; + } + } + } + } + pThisEvent = pThisEvent->pNext; + } + if( aOverlap[3]==0 ){ + rc = 0; + }else if( aOverlap[1]!=0 && aOverlap[2]==0 ){ + rc = 3; + }else if( aOverlap[1]==0 && aOverlap[2]!=0 ){ + rc = 2; + }else if( aOverlap[1]==0 && aOverlap[2]==0 ){ + rc = 4; + }else{ + rc = 1; + } + +geopolyOverlapDone: + sqlite3_free(p); + return rc; +} + +/* +** SQL function: geopoly_overlap(P1,P2) ** -** SQLITE_RBU_STATE_OAL: -** RBU is currently building a *-oal file. The next call to sqlite3rbu_step() -** may either add further data to the *-oal file, or compute data that will -** be added by a subsequent call. +** Determine whether or not P1 and P2 overlap. Return value: ** -** SQLITE_RBU_STATE_MOVE: -** RBU has finished building the *-oal file. The next call to sqlite3rbu_step() -** will move the *-oal file to the equivalent *-wal path. If the current -** operation is an RBU update, then the updated version of the database -** file will become visible to ordinary SQLite clients following the next -** call to sqlite3rbu_step(). +** 0 The two polygons are disjoint +** 1 They overlap +** 2 P1 is completely contained within P2 +** 3 P2 is completely contained within P1 +** 4 P1 and P2 are the same polygon +** NULL Either P1 or P2 or both are not valid polygons +*/ +static void geopolyOverlapFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + GeoPoly *p1 = geopolyFuncParam(context, argv[0], 0); + GeoPoly *p2 = geopolyFuncParam(context, argv[1], 0); + if( p1 && p2 ){ + int x = geopolyOverlap(p1, p2); + if( x<0 ){ + sqlite3_result_error_nomem(context); + }else{ + sqlite3_result_int(context, x); + } + } + sqlite3_free(p1); + sqlite3_free(p2); +} + +/* +** Enable or disable debugging output +*/ +static void geopolyDebugFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ +#ifdef GEOPOLY_ENABLE_DEBUG + geo_debug = sqlite3_value_int(argv[0]); +#endif +} + +/* +** This function is the implementation of both the xConnect and xCreate +** methods of the geopoly virtual table. ** -** SQLITE_RBU_STATE_CHECKPOINT: -** RBU is currently performing an incremental checkpoint. The next call to -** sqlite3rbu_step() will copy a page of data from the *-wal file into -** the target database file. +** argv[0] -> module name +** argv[1] -> database name +** argv[2] -> table name +** argv[...] -> column names... +*/ +static int geopolyInit( + sqlite3 *db, /* Database connection */ + void *pAux, /* One of the RTREE_COORD_* constants */ + int argc, const char *const*argv, /* Parameters to CREATE TABLE statement */ + sqlite3_vtab **ppVtab, /* OUT: New virtual table */ + char **pzErr, /* OUT: Error message, if any */ + int isCreate /* True for xCreate, false for xConnect */ +){ + int rc = SQLITE_OK; + Rtree *pRtree; + int nDb; /* Length of string argv[1] */ + int nName; /* Length of string argv[2] */ + sqlite3_str *pSql; + char *zSql; + int ii; + + sqlite3_vtab_config(db, SQLITE_VTAB_CONSTRAINT_SUPPORT, 1); + + /* Allocate the sqlite3_vtab structure */ + nDb = (int)strlen(argv[1]); + nName = (int)strlen(argv[2]); + pRtree = (Rtree *)sqlite3_malloc(sizeof(Rtree)+nDb+nName+2); + if( !pRtree ){ + return SQLITE_NOMEM; + } + memset(pRtree, 0, sizeof(Rtree)+nDb+nName+2); + pRtree->nBusy = 1; + pRtree->base.pModule = &rtreeModule; + pRtree->zDb = (char *)&pRtree[1]; + pRtree->zName = &pRtree->zDb[nDb+1]; + pRtree->eCoordType = RTREE_COORD_REAL32; + pRtree->nDim = 2; + pRtree->nDim2 = 4; + memcpy(pRtree->zDb, argv[1], nDb); + memcpy(pRtree->zName, argv[2], nName); + + + /* Create/Connect to the underlying relational database schema. If + ** that is successful, call sqlite3_declare_vtab() to configure + ** the r-tree table schema. + */ + pSql = sqlite3_str_new(db); + sqlite3_str_appendf(pSql, "CREATE TABLE x(_shape"); + pRtree->nAux = 1; /* Add one for _shape */ + pRtree->nAuxNotNull = 1; /* The _shape column is always not-null */ + for(ii=3; iinAux++; + sqlite3_str_appendf(pSql, ",%s", argv[ii]); + } + sqlite3_str_appendf(pSql, ");"); + zSql = sqlite3_str_finish(pSql); + if( !zSql ){ + rc = SQLITE_NOMEM; + }else if( SQLITE_OK!=(rc = sqlite3_declare_vtab(db, zSql)) ){ + *pzErr = sqlite3_mprintf("%s", sqlite3_errmsg(db)); + } + sqlite3_free(zSql); + if( rc ) goto geopolyInit_fail; + pRtree->nBytesPerCell = 8 + pRtree->nDim2*4; + + /* Figure out the node size to use. */ + rc = getNodeSize(db, pRtree, isCreate, pzErr); + if( rc ) goto geopolyInit_fail; + rc = rtreeSqlInit(pRtree, db, argv[1], argv[2], isCreate); + if( rc ){ + *pzErr = sqlite3_mprintf("%s", sqlite3_errmsg(db)); + goto geopolyInit_fail; + } + + *ppVtab = (sqlite3_vtab *)pRtree; + return SQLITE_OK; + +geopolyInit_fail: + if( rc==SQLITE_OK ) rc = SQLITE_ERROR; + assert( *ppVtab==0 ); + assert( pRtree->nBusy==1 ); + rtreeRelease(pRtree); + return rc; +} + + +/* +** GEOPOLY virtual table module xCreate method. +*/ +static int geopolyCreate( + sqlite3 *db, + void *pAux, + int argc, const char *const*argv, + sqlite3_vtab **ppVtab, + char **pzErr +){ + return geopolyInit(db, pAux, argc, argv, ppVtab, pzErr, 1); +} + +/* +** GEOPOLY virtual table module xConnect method. +*/ +static int geopolyConnect( + sqlite3 *db, + void *pAux, + int argc, const char *const*argv, + sqlite3_vtab **ppVtab, + char **pzErr +){ + return geopolyInit(db, pAux, argc, argv, ppVtab, pzErr, 0); +} + + +/* +** GEOPOLY virtual table module xFilter method. ** -** SQLITE_RBU_STATE_DONE: -** The RBU operation has finished. Any subsequent calls to sqlite3rbu_step() -** will immediately return SQLITE_DONE. +** Query plans: ** -** SQLITE_RBU_STATE_ERROR: -** An error has occurred. Any subsequent calls to sqlite3rbu_step() will -** immediately return the SQLite error code associated with the error. +** 1 rowid lookup +** 2 search for objects overlapping the same bounding box +** that contains polygon argv[0] +** 3 search for objects overlapping the same bounding box +** that contains polygon argv[0] +** 4 full table scan */ -#define SQLITE_RBU_STATE_OAL 1 -#define SQLITE_RBU_STATE_MOVE 2 -#define SQLITE_RBU_STATE_CHECKPOINT 3 -#define SQLITE_RBU_STATE_DONE 4 -#define SQLITE_RBU_STATE_ERROR 5 +static int geopolyFilter( + sqlite3_vtab_cursor *pVtabCursor, /* The cursor to initialize */ + int idxNum, /* Query plan */ + const char *idxStr, /* Not Used */ + int argc, sqlite3_value **argv /* Parameters to the query plan */ +){ + Rtree *pRtree = (Rtree *)pVtabCursor->pVtab; + RtreeCursor *pCsr = (RtreeCursor *)pVtabCursor; + RtreeNode *pRoot = 0; + int rc = SQLITE_OK; + int iCell = 0; + sqlite3_stmt *pStmt; -SQLITE_API int sqlite3rbu_state(sqlite3rbu *pRbu); + rtreeReference(pRtree); + + /* Reset the cursor to the same state as rtreeOpen() leaves it in. */ + freeCursorConstraints(pCsr); + sqlite3_free(pCsr->aPoint); + pStmt = pCsr->pReadAux; + memset(pCsr, 0, sizeof(RtreeCursor)); + pCsr->base.pVtab = (sqlite3_vtab*)pRtree; + pCsr->pReadAux = pStmt; + + pCsr->iStrategy = idxNum; + if( idxNum==1 ){ + /* Special case - lookup by rowid. */ + RtreeNode *pLeaf; /* Leaf on which the required cell resides */ + RtreeSearchPoint *p; /* Search point for the leaf */ + i64 iRowid = sqlite3_value_int64(argv[0]); + i64 iNode = 0; + rc = findLeafNode(pRtree, iRowid, &pLeaf, &iNode); + if( rc==SQLITE_OK && pLeaf!=0 ){ + p = rtreeSearchPointNew(pCsr, RTREE_ZERO, 0); + assert( p!=0 ); /* Always returns pCsr->sPoint */ + pCsr->aNode[0] = pLeaf; + p->id = iNode; + p->eWithin = PARTLY_WITHIN; + rc = nodeRowidIndex(pRtree, pLeaf, iRowid, &iCell); + p->iCell = (u8)iCell; + RTREE_QUEUE_TRACE(pCsr, "PUSH-F1:"); + }else{ + pCsr->atEOF = 1; + } + }else{ + /* Normal case - r-tree scan. Set up the RtreeCursor.aConstraint array + ** with the configured constraints. + */ + rc = nodeAcquire(pRtree, 1, 0, &pRoot); + if( rc==SQLITE_OK && idxNum<=3 ){ + RtreeCoord bbox[4]; + RtreeConstraint *p; + assert( argc==1 ); + geopolyBBox(0, argv[0], bbox, &rc); + if( rc ){ + goto geopoly_filter_end; + } + pCsr->aConstraint = p = sqlite3_malloc(sizeof(RtreeConstraint)*4); + pCsr->nConstraint = 4; + if( p==0 ){ + rc = SQLITE_NOMEM; + }else{ + memset(pCsr->aConstraint, 0, sizeof(RtreeConstraint)*4); + memset(pCsr->anQueue, 0, sizeof(u32)*(pRtree->iDepth + 1)); + if( idxNum==2 ){ + /* Overlap query */ + p->op = 'B'; + p->iCoord = 0; + p->u.rValue = bbox[1].f; + p++; + p->op = 'D'; + p->iCoord = 1; + p->u.rValue = bbox[0].f; + p++; + p->op = 'B'; + p->iCoord = 2; + p->u.rValue = bbox[3].f; + p++; + p->op = 'D'; + p->iCoord = 3; + p->u.rValue = bbox[2].f; + }else{ + /* Within query */ + p->op = 'D'; + p->iCoord = 0; + p->u.rValue = bbox[0].f; + p++; + p->op = 'B'; + p->iCoord = 1; + p->u.rValue = bbox[1].f; + p++; + p->op = 'D'; + p->iCoord = 2; + p->u.rValue = bbox[2].f; + p++; + p->op = 'B'; + p->iCoord = 3; + p->u.rValue = bbox[3].f; + } + } + } + if( rc==SQLITE_OK ){ + RtreeSearchPoint *pNew; + pNew = rtreeSearchPointNew(pCsr, RTREE_ZERO, (u8)(pRtree->iDepth+1)); + if( pNew==0 ){ + rc = SQLITE_NOMEM; + goto geopoly_filter_end; + } + pNew->id = 1; + pNew->iCell = 0; + pNew->eWithin = PARTLY_WITHIN; + assert( pCsr->bPoint==1 ); + pCsr->aNode[0] = pRoot; + pRoot = 0; + RTREE_QUEUE_TRACE(pCsr, "PUSH-Fm:"); + rc = rtreeStepToLeaf(pCsr); + } + } + +geopoly_filter_end: + nodeRelease(pRtree, pRoot); + rtreeRelease(pRtree); + return rc; +} /* -** Create an RBU VFS named zName that accesses the underlying file-system -** via existing VFS zParent. Or, if the zParent parameter is passed NULL, -** then the new RBU VFS uses the default system VFS to access the file-system. -** The new object is registered as a non-default VFS with SQLite before -** returning. -** -** Part of the RBU implementation uses a custom VFS object. Usually, this -** object is created and deleted automatically by RBU. +** Rtree virtual table module xBestIndex method. There are three +** table scan strategies to choose from (in order from most to +** least desirable): ** -** The exception is for applications that also use zipvfs. In this case, -** the custom VFS must be explicitly created by the user before the RBU -** handle is opened. The RBU VFS should be installed so that the zipvfs -** VFS uses the RBU VFS, which in turn uses any other VFS layers in use -** (for example multiplexor) to access the file-system. For example, -** to assemble an RBU enabled VFS stack that uses both zipvfs and -** multiplexor (error checking omitted): +** idxNum idxStr Strategy +** ------------------------------------------------ +** 1 "rowid" Direct lookup by rowid. +** 2 "rtree" R-tree overlap query using geopoly_overlap() +** 3 "rtree" R-tree within query using geopoly_within() +** 4 "fullscan" full-table scan. +** ------------------------------------------------ +*/ +static int geopolyBestIndex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo){ + int ii; + int iRowidTerm = -1; + int iFuncTerm = -1; + int idxNum = 0; + + for(ii=0; iinConstraint; ii++){ + struct sqlite3_index_constraint *p = &pIdxInfo->aConstraint[ii]; + if( !p->usable ) continue; + if( p->iColumn<0 && p->op==SQLITE_INDEX_CONSTRAINT_EQ ){ + iRowidTerm = ii; + break; + } + if( p->iColumn==0 && p->op>=SQLITE_INDEX_CONSTRAINT_FUNCTION ){ + /* p->op==SQLITE_INDEX_CONSTRAINT_FUNCTION for geopoly_overlap() + ** p->op==(SQLITE_INDEX_CONTRAINT_FUNCTION+1) for geopoly_within(). + ** See geopolyFindFunction() */ + iFuncTerm = ii; + idxNum = p->op - SQLITE_INDEX_CONSTRAINT_FUNCTION + 2; + } + } + + if( iRowidTerm>=0 ){ + pIdxInfo->idxNum = 1; + pIdxInfo->idxStr = "rowid"; + pIdxInfo->aConstraintUsage[iRowidTerm].argvIndex = 1; + pIdxInfo->aConstraintUsage[iRowidTerm].omit = 1; + pIdxInfo->estimatedCost = 30.0; + pIdxInfo->estimatedRows = 1; + pIdxInfo->idxFlags = SQLITE_INDEX_SCAN_UNIQUE; + return SQLITE_OK; + } + if( iFuncTerm>=0 ){ + pIdxInfo->idxNum = idxNum; + pIdxInfo->idxStr = "rtree"; + pIdxInfo->aConstraintUsage[iFuncTerm].argvIndex = 1; + pIdxInfo->aConstraintUsage[iFuncTerm].omit = 0; + pIdxInfo->estimatedCost = 300.0; + pIdxInfo->estimatedRows = 10; + return SQLITE_OK; + } + pIdxInfo->idxNum = 4; + pIdxInfo->idxStr = "fullscan"; + pIdxInfo->estimatedCost = 3000000.0; + pIdxInfo->estimatedRows = 100000; + return SQLITE_OK; +} + + +/* +** GEOPOLY virtual table module xColumn method. +*/ +static int geopolyColumn(sqlite3_vtab_cursor *cur, sqlite3_context *ctx, int i){ + Rtree *pRtree = (Rtree *)cur->pVtab; + RtreeCursor *pCsr = (RtreeCursor *)cur; + RtreeSearchPoint *p = rtreeSearchPointFirst(pCsr); + int rc = SQLITE_OK; + RtreeNode *pNode = rtreeNodeOfFirstSearchPoint(pCsr, &rc); + + if( rc ) return rc; + if( p==0 ) return SQLITE_OK; + if( i==0 && sqlite3_vtab_nochange(ctx) ) return SQLITE_OK; + if( i<=pRtree->nAux ){ + if( !pCsr->bAuxValid ){ + if( pCsr->pReadAux==0 ){ + rc = sqlite3_prepare_v3(pRtree->db, pRtree->zReadAuxSql, -1, 0, + &pCsr->pReadAux, 0); + if( rc ) return rc; + } + sqlite3_bind_int64(pCsr->pReadAux, 1, + nodeGetRowid(pRtree, pNode, p->iCell)); + rc = sqlite3_step(pCsr->pReadAux); + if( rc==SQLITE_ROW ){ + pCsr->bAuxValid = 1; + }else{ + sqlite3_reset(pCsr->pReadAux); + if( rc==SQLITE_DONE ) rc = SQLITE_OK; + return rc; + } + } + sqlite3_result_value(ctx, sqlite3_column_value(pCsr->pReadAux, i+2)); + } + return SQLITE_OK; +} + + +/* +** The xUpdate method for GEOPOLY module virtual tables. ** -** // Create a VFS named "multiplex" (not the default). -** sqlite3_multiplex_initialize(0, 0); +** For DELETE: ** -** // Create an rbu VFS named "rbu" that uses multiplexor. If the -** // second argument were replaced with NULL, the "rbu" VFS would -** // access the file-system via the system default VFS, bypassing the -** // multiplexor. -** sqlite3rbu_create_vfs("rbu", "multiplex"); +** argv[0] = the rowid to be deleted ** -** // Create a zipvfs VFS named "zipvfs" that uses rbu. -** zipvfs_create_vfs_v3("zipvfs", "rbu", 0, xCompressorAlgorithmDetector); +** For INSERT: ** -** // Make zipvfs the default VFS. -** sqlite3_vfs_register(sqlite3_vfs_find("zipvfs"), 1); +** argv[0] = SQL NULL +** argv[1] = rowid to insert, or an SQL NULL to select automatically +** argv[2] = _shape column +** argv[3] = first application-defined column.... ** -** Because the default VFS created above includes a RBU functionality, it -** may be used by RBU clients. Attempting to use RBU with a zipvfs VFS stack -** that does not include the RBU layer results in an error. +** For UPDATE: ** -** The overhead of adding the "rbu" VFS to the system is negligible for -** non-RBU users. There is no harm in an application accessing the -** file-system via "rbu" all the time, even if it only uses RBU functionality -** occasionally. +** argv[0] = rowid to modify. Never NULL +** argv[1] = rowid after the change. Never NULL +** argv[2] = new value for _shape +** argv[3] = new value for first application-defined column.... */ -SQLITE_API int sqlite3rbu_create_vfs(const char *zName, const char *zParent); +static int geopolyUpdate( + sqlite3_vtab *pVtab, + int nData, + sqlite3_value **aData, + sqlite_int64 *pRowid +){ + Rtree *pRtree = (Rtree *)pVtab; + int rc = SQLITE_OK; + RtreeCell cell; /* New cell to insert if nData>1 */ + i64 oldRowid; /* The old rowid */ + int oldRowidValid; /* True if oldRowid is valid */ + i64 newRowid; /* The new rowid */ + int newRowidValid; /* True if newRowid is valid */ + int coordChange = 0; /* Change in coordinates */ + + if( pRtree->nNodeRef ){ + /* Unable to write to the btree while another cursor is reading from it, + ** since the write might do a rebalance which would disrupt the read + ** cursor. */ + return SQLITE_LOCKED_VTAB; + } + rtreeReference(pRtree); + assert(nData>=1); + + oldRowidValid = sqlite3_value_type(aData[0])!=SQLITE_NULL;; + oldRowid = oldRowidValid ? sqlite3_value_int64(aData[0]) : 0; + newRowidValid = nData>1 && sqlite3_value_type(aData[1])!=SQLITE_NULL; + newRowid = newRowidValid ? sqlite3_value_int64(aData[1]) : 0; + cell.iRowid = newRowid; + + if( nData>1 /* not a DELETE */ + && (!oldRowidValid /* INSERT */ + || !sqlite3_value_nochange(aData[2]) /* UPDATE _shape */ + || oldRowid!=newRowid) /* Rowid change */ + ){ + geopolyBBox(0, aData[2], cell.aCoord, &rc); + if( rc ){ + if( rc==SQLITE_ERROR ){ + pVtab->zErrMsg = + sqlite3_mprintf("_shape does not contain a valid polygon"); + } + goto geopoly_update_end; + } + coordChange = 1; + + /* If a rowid value was supplied, check if it is already present in + ** the table. If so, the constraint has failed. */ + if( newRowidValid && (!oldRowidValid || oldRowid!=newRowid) ){ + int steprc; + sqlite3_bind_int64(pRtree->pReadRowid, 1, cell.iRowid); + steprc = sqlite3_step(pRtree->pReadRowid); + rc = sqlite3_reset(pRtree->pReadRowid); + if( SQLITE_ROW==steprc ){ + if( sqlite3_vtab_on_conflict(pRtree->db)==SQLITE_REPLACE ){ + rc = rtreeDeleteRowid(pRtree, cell.iRowid); + }else{ + rc = rtreeConstraintError(pRtree, 0); + } + } + } + } + + /* If aData[0] is not an SQL NULL value, it is the rowid of a + ** record to delete from the r-tree table. The following block does + ** just that. + */ + if( rc==SQLITE_OK && (nData==1 || (coordChange && oldRowidValid)) ){ + rc = rtreeDeleteRowid(pRtree, oldRowid); + } + + /* If the aData[] array contains more than one element, elements + ** (aData[2]..aData[argc-1]) contain a new record to insert into + ** the r-tree structure. + */ + if( rc==SQLITE_OK && nData>1 && coordChange ){ + /* Insert the new record into the r-tree */ + RtreeNode *pLeaf = 0; + if( !newRowidValid ){ + rc = rtreeNewRowid(pRtree, &cell.iRowid); + } + *pRowid = cell.iRowid; + if( rc==SQLITE_OK ){ + rc = ChooseLeaf(pRtree, &cell, 0, &pLeaf); + } + if( rc==SQLITE_OK ){ + int rc2; + pRtree->iReinsertHeight = -1; + rc = rtreeInsertCell(pRtree, pLeaf, &cell, 0); + rc2 = nodeRelease(pRtree, pLeaf); + if( rc==SQLITE_OK ){ + rc = rc2; + } + } + } + + /* Change the data */ + if( rc==SQLITE_OK && nData>1 ){ + sqlite3_stmt *pUp = pRtree->pWriteAux; + int jj; + int nChange = 0; + sqlite3_bind_int64(pUp, 1, cell.iRowid); + assert( pRtree->nAux>=1 ); + if( sqlite3_value_nochange(aData[2]) ){ + sqlite3_bind_null(pUp, 2); + }else{ + GeoPoly *p = 0; + if( sqlite3_value_type(aData[2])==SQLITE_TEXT + && (p = geopolyFuncParam(0, aData[2], &rc))!=0 + && rc==SQLITE_OK + ){ + sqlite3_bind_blob(pUp, 2, p->hdr, 4+8*p->nVertex, SQLITE_TRANSIENT); + }else{ + sqlite3_bind_value(pUp, 2, aData[2]); + } + sqlite3_free(p); + nChange = 1; + } + for(jj=1; jjnAux; jj++){ + nChange++; + sqlite3_bind_value(pUp, jj+2, aData[jj+2]); + } + if( nChange ){ + sqlite3_step(pUp); + rc = sqlite3_reset(pUp); + } + } + +geopoly_update_end: + rtreeRelease(pRtree); + return rc; +} /* -** Deregister and destroy an RBU vfs created by an earlier call to -** sqlite3rbu_create_vfs(). -** -** VFS objects are not reference counted. If a VFS object is destroyed -** before all database handles that use it have been closed, the results -** are undefined. +** Report that geopoly_overlap() is an overloaded function suitable +** for use in xBestIndex. */ -SQLITE_API void sqlite3rbu_destroy_vfs(const char *zName); +static int geopolyFindFunction( + sqlite3_vtab *pVtab, + int nArg, + const char *zName, + void (**pxFunc)(sqlite3_context*,int,sqlite3_value**), + void **ppArg +){ + if( sqlite3_stricmp(zName, "geopoly_overlap")==0 ){ + *pxFunc = geopolyOverlapFunc; + *ppArg = 0; + return SQLITE_INDEX_CONSTRAINT_FUNCTION; + } + if( sqlite3_stricmp(zName, "geopoly_within")==0 ){ + *pxFunc = geopolyWithinFunc; + *ppArg = 0; + return SQLITE_INDEX_CONSTRAINT_FUNCTION+1; + } + return 0; +} -#if 0 -} /* end of the 'extern "C"' block */ -#endif -#endif /* _SQLITE3RBU_H */ +static sqlite3_module geopolyModule = { + 3, /* iVersion */ + geopolyCreate, /* xCreate - create a table */ + geopolyConnect, /* xConnect - connect to an existing table */ + geopolyBestIndex, /* xBestIndex - Determine search strategy */ + rtreeDisconnect, /* xDisconnect - Disconnect from a table */ + rtreeDestroy, /* xDestroy - Drop a table */ + rtreeOpen, /* xOpen - open a cursor */ + rtreeClose, /* xClose - close a cursor */ + geopolyFilter, /* xFilter - configure scan constraints */ + rtreeNext, /* xNext - advance a cursor */ + rtreeEof, /* xEof */ + geopolyColumn, /* xColumn - read data */ + rtreeRowid, /* xRowid - read data */ + geopolyUpdate, /* xUpdate - write data */ + rtreeBeginTransaction, /* xBegin - begin transaction */ + rtreeEndTransaction, /* xSync - sync transaction */ + rtreeEndTransaction, /* xCommit - commit transaction */ + rtreeEndTransaction, /* xRollback - rollback transaction */ + geopolyFindFunction, /* xFindFunction - function overloading */ + rtreeRename, /* xRename - rename the table */ + rtreeSavepoint, /* xSavepoint */ + 0, /* xRelease */ + 0, /* xRollbackTo */ + rtreeShadowName /* xShadowName */ +}; -/************** End of sqlite3rbu.h ******************************************/ -/************** Continuing where we left off in sqlite3rbu.c *****************/ +static int sqlite3_geopoly_init(sqlite3 *db){ + int rc = SQLITE_OK; + static const struct { + void (*xFunc)(sqlite3_context*,int,sqlite3_value**); + signed char nArg; + unsigned char bPure; + const char *zName; + } aFunc[] = { + { geopolyAreaFunc, 1, 1, "geopoly_area" }, + { geopolyBlobFunc, 1, 1, "geopoly_blob" }, + { geopolyJsonFunc, 1, 1, "geopoly_json" }, + { geopolySvgFunc, -1, 1, "geopoly_svg" }, + { geopolyWithinFunc, 2, 1, "geopoly_within" }, + { geopolyContainsPointFunc, 3, 1, "geopoly_contains_point" }, + { geopolyOverlapFunc, 2, 1, "geopoly_overlap" }, + { geopolyDebugFunc, 1, 0, "geopoly_debug" }, + { geopolyBBoxFunc, 1, 1, "geopoly_bbox" }, + { geopolyXformFunc, 7, 1, "geopoly_xform" }, + { geopolyRegularFunc, 4, 1, "geopoly_regular" }, + { geopolyCcwFunc, 1, 1, "geopoly_ccw" }, + }; + static const struct { + void (*xStep)(sqlite3_context*,int,sqlite3_value**); + void (*xFinal)(sqlite3_context*); + const char *zName; + } aAgg[] = { + { geopolyBBoxStep, geopolyBBoxFinal, "geopoly_group_bbox" }, + }; + int i; + for(i=0; ixDestructor ) pInfo->xDestructor(pInfo->pContext); + sqlite3_free(p); +} + +/* +** This routine frees the BLOB that is returned by geomCallback(). +*/ +static void rtreeMatchArgFree(void *pArg){ + int i; + RtreeMatchArg *p = (RtreeMatchArg*)pArg; + for(i=0; inParam; i++){ + sqlite3_value_free(p->apSqlParam[i]); + } + sqlite3_free(p); +} + +/* +** Each call to sqlite3_rtree_geometry_callback() or +** sqlite3_rtree_query_callback() creates an ordinary SQLite +** scalar function that is implemented by this routine. +** +** All this function does is construct an RtreeMatchArg object that +** contains the geometry-checking callback routines and a list of +** parameters to this function, then return that RtreeMatchArg object +** as a BLOB. +** +** The R-Tree MATCH operator will read the returned BLOB, deserialize +** the RtreeMatchArg object, and use the RtreeMatchArg object to figure +** out which elements of the R-Tree should be returned by the query. +*/ +static void geomCallback(sqlite3_context *ctx, int nArg, sqlite3_value **aArg){ + RtreeGeomCallback *pGeomCtx = (RtreeGeomCallback *)sqlite3_user_data(ctx); + RtreeMatchArg *pBlob; + int nBlob; + int memErr = 0; + + nBlob = sizeof(RtreeMatchArg) + (nArg-1)*sizeof(RtreeDValue) + + nArg*sizeof(sqlite3_value*); + pBlob = (RtreeMatchArg *)sqlite3_malloc(nBlob); + if( !pBlob ){ + sqlite3_result_error_nomem(ctx); + }else{ + int i; + pBlob->iSize = nBlob; + pBlob->cb = pGeomCtx[0]; + pBlob->apSqlParam = (sqlite3_value**)&pBlob->aParam[nArg]; + pBlob->nParam = nArg; + for(i=0; iapSqlParam[i] = sqlite3_value_dup(aArg[i]); + if( pBlob->apSqlParam[i]==0 ) memErr = 1; +#ifdef SQLITE_RTREE_INT_ONLY + pBlob->aParam[i] = sqlite3_value_int64(aArg[i]); +#else + pBlob->aParam[i] = sqlite3_value_double(aArg[i]); #endif + } + if( memErr ){ + sqlite3_result_error_nomem(ctx); + rtreeMatchArgFree(pBlob); + }else{ + sqlite3_result_pointer(ctx, pBlob, "RtreeMatchArg", rtreeMatchArgFree); + } + } +} /* -** Swap two objects of type TYPE. +** Register a new geometry function for use with the r-tree MATCH operator. */ -#if !defined(SQLITE_AMALGAMATION) -# define SWAP(TYPE,A,B) {TYPE t=A; A=B; B=t;} +SQLITE_API int sqlite3_rtree_geometry_callback( + sqlite3 *db, /* Register SQL function on this connection */ + const char *zGeom, /* Name of the new SQL function */ + int (*xGeom)(sqlite3_rtree_geometry*,int,RtreeDValue*,int*), /* Callback */ + void *pContext /* Extra data associated with the callback */ +){ + RtreeGeomCallback *pGeomCtx; /* Context object for new user-function */ + + /* Allocate and populate the context object. */ + pGeomCtx = (RtreeGeomCallback *)sqlite3_malloc(sizeof(RtreeGeomCallback)); + if( !pGeomCtx ) return SQLITE_NOMEM; + pGeomCtx->xGeom = xGeom; + pGeomCtx->xQueryFunc = 0; + pGeomCtx->xDestructor = 0; + pGeomCtx->pContext = pContext; + return sqlite3_create_function_v2(db, zGeom, -1, SQLITE_ANY, + (void *)pGeomCtx, geomCallback, 0, 0, rtreeFreeCallback + ); +} + +/* +** Register a new 2nd-generation geometry function for use with the +** r-tree MATCH operator. +*/ +SQLITE_API int sqlite3_rtree_query_callback( + sqlite3 *db, /* Register SQL function on this connection */ + const char *zQueryFunc, /* Name of new SQL function */ + int (*xQueryFunc)(sqlite3_rtree_query_info*), /* Callback */ + void *pContext, /* Extra data passed into the callback */ + void (*xDestructor)(void*) /* Destructor for the extra data */ +){ + RtreeGeomCallback *pGeomCtx; /* Context object for new user-function */ + + /* Allocate and populate the context object. */ + pGeomCtx = (RtreeGeomCallback *)sqlite3_malloc(sizeof(RtreeGeomCallback)); + if( !pGeomCtx ) return SQLITE_NOMEM; + pGeomCtx->xGeom = 0; + pGeomCtx->xQueryFunc = xQueryFunc; + pGeomCtx->xDestructor = xDestructor; + pGeomCtx->pContext = pContext; + return sqlite3_create_function_v2(db, zQueryFunc, -1, SQLITE_ANY, + (void *)pGeomCtx, geomCallback, 0, 0, rtreeFreeCallback + ); +} + +#if !SQLITE_CORE +#ifdef _WIN32 +__declspec(dllexport) +#endif +SQLITE_API int sqlite3_rtree_init( + sqlite3 *db, + char **pzErrMsg, + const sqlite3_api_routines *pApi +){ + SQLITE_EXTENSION_INIT2(pApi) + return sqlite3RtreeInit(db); +} +#endif + #endif +/************** End of rtree.c ***********************************************/ +/************** Begin file icu.c *********************************************/ /* -** The rbu_state table is used to save the state of a partially applied -** update so that it can be resumed later. The table consists of integer -** keys mapped to values as follows: +** 2007 May 6 ** -** RBU_STATE_STAGE: -** May be set to integer values 1, 2, 4 or 5. As follows: -** 1: the *-rbu file is currently under construction. -** 2: the *-rbu file has been constructed, but not yet moved -** to the *-wal path. -** 4: the checkpoint is underway. -** 5: the rbu update has been checkpointed. +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: ** -** RBU_STATE_TBL: -** Only valid if STAGE==1. The target database name of the table -** currently being written. +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. ** -** RBU_STATE_IDX: -** Only valid if STAGE==1. The target database name of the index -** currently being written, or NULL if the main table is currently being -** updated. +************************************************************************* +** $Id: icu.c,v 1.7 2007/12/13 21:54:11 drh Exp $ ** -** RBU_STATE_ROW: -** Only valid if STAGE==1. Number of rows already processed for the current -** table/index. +** This file implements an integration between the ICU library +** ("International Components for Unicode", an open-source library +** for handling unicode data) and SQLite. The integration uses +** ICU to provide the following to SQLite: ** -** RBU_STATE_PROGRESS: -** Trbul number of sqlite3rbu_step() calls made so far as part of this -** rbu update. +** * An implementation of the SQL regexp() function (and hence REGEXP +** operator) using the ICU uregex_XX() APIs. ** -** RBU_STATE_CKPT: -** Valid if STAGE==4. The 64-bit checksum associated with the wal-index -** header created by recovering the *-wal file. This is used to detect -** cases when another client appends frames to the *-wal file in the -** middle of an incremental checkpoint (an incremental checkpoint cannot -** be continued if this happens). +** * Implementations of the SQL scalar upper() and lower() functions +** for case mapping. ** -** RBU_STATE_COOKIE: -** Valid if STAGE==1. The current change-counter cookie value in the -** target db file. +** * Integration of ICU and SQLite collation sequences. ** -** RBU_STATE_OALSZ: -** Valid if STAGE==1. The size in bytes of the *-oal file. +** * An implementation of the LIKE operator that uses ICU to +** provide case-independent matching. */ -#define RBU_STATE_STAGE 1 -#define RBU_STATE_TBL 2 -#define RBU_STATE_IDX 3 -#define RBU_STATE_ROW 4 -#define RBU_STATE_PROGRESS 5 -#define RBU_STATE_CKPT 6 -#define RBU_STATE_COOKIE 7 -#define RBU_STATE_OALSZ 8 -#define RBU_STATE_PHASEONESTEP 9 - -#define RBU_STAGE_OAL 1 -#define RBU_STAGE_MOVE 2 -#define RBU_STAGE_CAPTURE 3 -#define RBU_STAGE_CKPT 4 -#define RBU_STAGE_DONE 5 +#if !defined(SQLITE_CORE) \ + || defined(SQLITE_ENABLE_ICU) \ + || defined(SQLITE_ENABLE_ICU_COLLATIONS) -#define RBU_CREATE_STATE \ - "CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)" +/* Include ICU headers */ +#include +#include +#include +#include -typedef struct RbuFrame RbuFrame; -typedef struct RbuObjIter RbuObjIter; -typedef struct RbuState RbuState; -typedef struct rbu_vfs rbu_vfs; -typedef struct rbu_file rbu_file; -typedef struct RbuUpdateStmt RbuUpdateStmt; +/* #include */ -#if !defined(SQLITE_AMALGAMATION) -typedef unsigned int u32; -typedef unsigned short u16; -typedef unsigned char u8; -typedef sqlite3_int64 i64; +#ifndef SQLITE_CORE +/* #include "sqlite3ext.h" */ + SQLITE_EXTENSION_INIT1 +#else +/* #include "sqlite3.h" */ #endif /* -** These values must match the values defined in wal.c for the equivalent -** locks. These are not magic numbers as they are part of the SQLite file -** format. +** This function is called when an ICU function called from within +** the implementation of an SQL scalar function returns an error. +** +** The scalar function context passed as the first argument is +** loaded with an error message based on the following two args. */ -#define WAL_LOCK_WRITE 0 -#define WAL_LOCK_CKPT 1 -#define WAL_LOCK_READ0 3 +static void icuFunctionError( + sqlite3_context *pCtx, /* SQLite scalar function context */ + const char *zName, /* Name of ICU function that failed */ + UErrorCode e /* Error code returned by ICU function */ +){ + char zBuf[128]; + sqlite3_snprintf(128, zBuf, "ICU error: %s(): %s", zName, u_errorName(e)); + zBuf[127] = '\0'; + sqlite3_result_error(pCtx, zBuf, -1); +} -#define SQLITE_FCNTL_RBUCNT 5149216 +#if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_ICU) /* -** A structure to store values read from the rbu_state table in memory. +** Maximum length (in bytes) of the pattern in a LIKE or GLOB +** operator. */ -struct RbuState { - int eStage; - char *zTbl; - char *zIdx; - i64 iWalCksum; - int nRow; - i64 nProgress; - u32 iCookie; - i64 iOalSz; - i64 nPhaseOneStep; -}; +#ifndef SQLITE_MAX_LIKE_PATTERN_LENGTH +# define SQLITE_MAX_LIKE_PATTERN_LENGTH 50000 +#endif -struct RbuUpdateStmt { - char *zMask; /* Copy of update mask used with pUpdate */ - sqlite3_stmt *pUpdate; /* Last update statement (or NULL) */ - RbuUpdateStmt *pNext; -}; +/* +** Version of sqlite3_free() that is always a function, never a macro. +*/ +static void xFree(void *p){ + sqlite3_free(p); +} /* -** An iterator of this type is used to iterate through all objects in -** the target database that require updating. For each such table, the -** iterator visits, in order: -** -** * the table itself, -** * each index of the table (zero or more points to visit), and -** * a special "cleanup table" state. -** -** abIndexed: -** If the table has no indexes on it, abIndexed is set to NULL. Otherwise, -** it points to an array of flags nTblCol elements in size. The flag is -** set for each column that is either a part of the PK or a part of an -** index. Or clear otherwise. -** +** This lookup table is used to help decode the first byte of +** a multi-byte UTF8 character. It is copied here from SQLite source +** code file utf8.c. */ -struct RbuObjIter { - sqlite3_stmt *pTblIter; /* Iterate through tables */ - sqlite3_stmt *pIdxIter; /* Index iterator */ - int nTblCol; /* Size of azTblCol[] array */ - char **azTblCol; /* Array of unquoted target column names */ - char **azTblType; /* Array of target column types */ - int *aiSrcOrder; /* src table col -> target table col */ - u8 *abTblPk; /* Array of flags, set on target PK columns */ - u8 *abNotNull; /* Array of flags, set on NOT NULL columns */ - u8 *abIndexed; /* Array of flags, set on indexed & PK cols */ - int eType; /* Table type - an RBU_PK_XXX value */ +static const unsigned char icuUtf8Trans1[] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0x00, 0x00, +}; - /* Output variables. zTbl==0 implies EOF. */ - int bCleanup; /* True in "cleanup" state */ - const char *zTbl; /* Name of target db table */ - const char *zDataTbl; /* Name of rbu db table (or null) */ - const char *zIdx; /* Name of target db index (or null) */ - int iTnum; /* Root page of current object */ - int iPkTnum; /* If eType==EXTERNAL, root of PK index */ - int bUnique; /* Current index is unique */ - int nIndex; /* Number of aux. indexes on table zTbl */ +#define SQLITE_ICU_READ_UTF8(zIn, c) \ + c = *(zIn++); \ + if( c>=0xc0 ){ \ + c = icuUtf8Trans1[c-0xc0]; \ + while( (*zIn & 0xc0)==0x80 ){ \ + c = (c<<6) + (0x3f & *(zIn++)); \ + } \ + } - /* Statements created by rbuObjIterPrepareAll() */ - int nCol; /* Number of columns in current object */ - sqlite3_stmt *pSelect; /* Source data */ - sqlite3_stmt *pInsert; /* Statement for INSERT operations */ - sqlite3_stmt *pDelete; /* Statement for DELETE ops */ - sqlite3_stmt *pTmpInsert; /* Insert into rbu_tmp_$zDataTbl */ +#define SQLITE_ICU_SKIP_UTF8(zIn) \ + assert( *zIn ); \ + if( *(zIn++)>=0xc0 ){ \ + while( (*zIn & 0xc0)==0x80 ){zIn++;} \ + } - /* Last UPDATE used (for PK b-tree updates only), or NULL. */ - RbuUpdateStmt *pRbuUpdate; -}; /* -** Values for RbuObjIter.eType -** -** 0: Table does not exist (error) -** 1: Table has an implicit rowid. -** 2: Table has an explicit IPK column. -** 3: Table has an external PK index. -** 4: Table is WITHOUT ROWID. -** 5: Table is a virtual table. +** Compare two UTF-8 strings for equality where the first string is +** a "LIKE" expression. Return true (1) if they are the same and +** false (0) if they are different. */ -#define RBU_PK_NOTABLE 0 -#define RBU_PK_NONE 1 -#define RBU_PK_IPK 2 -#define RBU_PK_EXTERNAL 3 -#define RBU_PK_WITHOUT_ROWID 4 -#define RBU_PK_VTAB 5 +static int icuLikeCompare( + const uint8_t *zPattern, /* LIKE pattern */ + const uint8_t *zString, /* The UTF-8 string to compare against */ + const UChar32 uEsc /* The escape character */ +){ + static const uint32_t MATCH_ONE = (uint32_t)'_'; + static const uint32_t MATCH_ALL = (uint32_t)'%'; + int prevEscape = 0; /* True if the previous character was uEsc */ -/* -** Within the RBU_STAGE_OAL stage, each call to sqlite3rbu_step() performs -** one of the following operations. -*/ -#define RBU_INSERT 1 /* Insert on a main table b-tree */ -#define RBU_DELETE 2 /* Delete a row from a main table b-tree */ -#define RBU_REPLACE 3 /* Delete and then insert a row */ -#define RBU_IDX_DELETE 4 /* Delete a row from an aux. index b-tree */ -#define RBU_IDX_INSERT 5 /* Insert on an aux. index b-tree */ + while( 1 ){ -#define RBU_UPDATE 6 /* Update a row in a main table b-tree */ + /* Read (and consume) the next character from the input pattern. */ + uint32_t uPattern; + SQLITE_ICU_READ_UTF8(zPattern, uPattern); + if( uPattern==0 ) break; -/* -** A single step of an incremental checkpoint - frame iWalFrame of the wal -** file should be copied to page iDbPage of the database file. -*/ -struct RbuFrame { - u32 iDbPage; - u32 iWalFrame; -}; + /* There are now 4 possibilities: + ** + ** 1. uPattern is an unescaped match-all character "%", + ** 2. uPattern is an unescaped match-one character "_", + ** 3. uPattern is an unescaped escape character, or + ** 4. uPattern is to be handled as an ordinary character + */ + if( !prevEscape && uPattern==MATCH_ALL ){ + /* Case 1. */ + uint8_t c; -/* -** RBU handle. -** -** nPhaseOneStep: -** If the RBU database contains an rbu_count table, this value is set to -** a running estimate of the number of b-tree operations required to -** finish populating the *-oal file. This allows the sqlite3_bp_progress() -** API to calculate the permyriadage progress of populating the *-oal file -** using the formula: -** -** permyriadage = (10000 * nProgress) / nPhaseOneStep -** -** nPhaseOneStep is initialized to the sum of: -** -** nRow * (nIndex + 1) -** -** for all source tables in the RBU database, where nRow is the number -** of rows in the source table and nIndex the number of indexes on the -** corresponding target database table. -** -** This estimate is accurate if the RBU update consists entirely of -** INSERT operations. However, it is inaccurate if: -** -** * the RBU update contains any UPDATE operations. If the PK specified -** for an UPDATE operation does not exist in the target table, then -** no b-tree operations are required on index b-trees. Or if the -** specified PK does exist, then (nIndex*2) such operations are -** required (one delete and one insert on each index b-tree). -** -** * the RBU update contains any DELETE operations for which the specified -** PK does not exist. In this case no operations are required on index -** b-trees. -** -** * the RBU update contains REPLACE operations. These are similar to -** UPDATE operations. -** -** nPhaseOneStep is updated to account for the conditions above during the -** first pass of each source table. The updated nPhaseOneStep value is -** stored in the rbu_state table if the RBU update is suspended. -*/ -struct sqlite3rbu { - int eStage; /* Value of RBU_STATE_STAGE field */ - sqlite3 *dbMain; /* target database handle */ - sqlite3 *dbRbu; /* rbu database handle */ - char *zTarget; /* Path to target db */ - char *zRbu; /* Path to rbu db */ - char *zState; /* Path to state db (or NULL if zRbu) */ - char zStateDb[5]; /* Db name for state ("stat" or "main") */ - int rc; /* Value returned by last rbu_step() call */ - char *zErrmsg; /* Error message if rc!=SQLITE_OK */ - int nStep; /* Rows processed for current object */ - int nProgress; /* Rows processed for all objects */ - RbuObjIter objiter; /* Iterator for skipping through tbl/idx */ - const char *zVfsName; /* Name of automatically created rbu vfs */ - rbu_file *pTargetFd; /* File handle open on target db */ - int nPagePerSector; /* Pages per sector for pTargetFd */ - i64 iOalSz; - i64 nPhaseOneStep; + /* Skip any MATCH_ALL or MATCH_ONE characters that follow a + ** MATCH_ALL. For each MATCH_ONE, skip one character in the + ** test string. + */ + while( (c=*zPattern) == MATCH_ALL || c == MATCH_ONE ){ + if( c==MATCH_ONE ){ + if( *zString==0 ) return 0; + SQLITE_ICU_SKIP_UTF8(zString); + } + zPattern++; + } - /* The following state variables are used as part of the incremental - ** checkpoint stage (eStage==RBU_STAGE_CKPT). See comments surrounding - ** function rbuSetupCheckpoint() for details. */ - u32 iMaxFrame; /* Largest iWalFrame value in aFrame[] */ - u32 mLock; - int nFrame; /* Entries in aFrame[] array */ - int nFrameAlloc; /* Allocated size of aFrame[] array */ - RbuFrame *aFrame; - int pgsz; - u8 *aBuf; - i64 iWalCksum; - i64 szTemp; /* Current size of all temp files in use */ - i64 szTempLimit; /* Total size limit for temp files */ + if( *zPattern==0 ) return 1; - /* Used in RBU vacuum mode only */ - int nRbu; /* Number of RBU VFS in the stack */ - rbu_file *pRbuFd; /* Fd for main db of dbRbu */ -}; + while( *zString ){ + if( icuLikeCompare(zPattern, zString, uEsc) ){ + return 1; + } + SQLITE_ICU_SKIP_UTF8(zString); + } + return 0; -/* -** An rbu VFS is implemented using an instance of this structure. -** -** Variable pRbu is only non-NULL for automatically created RBU VFS objects. -** It is NULL for RBU VFS objects created explicitly using -** sqlite3rbu_create_vfs(). It is used to track the total amount of temp -** space used by the RBU handle. -*/ -struct rbu_vfs { - sqlite3_vfs base; /* rbu VFS shim methods */ - sqlite3_vfs *pRealVfs; /* Underlying VFS */ - sqlite3_mutex *mutex; /* Mutex to protect pMain */ - sqlite3rbu *pRbu; /* Owner RBU object */ - rbu_file *pMain; /* Linked list of main db files */ -}; + }else if( !prevEscape && uPattern==MATCH_ONE ){ + /* Case 2. */ + if( *zString==0 ) return 0; + SQLITE_ICU_SKIP_UTF8(zString); + + }else if( !prevEscape && uPattern==(uint32_t)uEsc){ + /* Case 3. */ + prevEscape = 1; + + }else{ + /* Case 4. */ + uint32_t uString; + SQLITE_ICU_READ_UTF8(zString, uString); + uString = (uint32_t)u_foldCase((UChar32)uString, U_FOLD_CASE_DEFAULT); + uPattern = (uint32_t)u_foldCase((UChar32)uPattern, U_FOLD_CASE_DEFAULT); + if( uString!=uPattern ){ + return 0; + } + prevEscape = 0; + } + } + + return *zString==0; +} /* -** Each file opened by an rbu VFS is represented by an instance of -** the following structure. +** Implementation of the like() SQL function. This function implements +** the build-in LIKE operator. The first argument to the function is the +** pattern and the second argument is the string. So, the SQL statements: ** -** If this is a temporary file (pRbu!=0 && flags&DELETE_ON_CLOSE), variable -** "sz" is set to the current size of the database file. +** A LIKE B +** +** is implemented as like(B, A). If there is an escape character E, +** +** A LIKE B ESCAPE E +** +** is mapped to like(B, A, E). */ -struct rbu_file { - sqlite3_file base; /* sqlite3_file methods */ - sqlite3_file *pReal; /* Underlying file handle */ - rbu_vfs *pRbuVfs; /* Pointer to the rbu_vfs object */ - sqlite3rbu *pRbu; /* Pointer to rbu object (rbu target only) */ - i64 sz; /* Size of file in bytes (temp only) */ +static void icuLikeFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + const unsigned char *zA = sqlite3_value_text(argv[0]); + const unsigned char *zB = sqlite3_value_text(argv[1]); + UChar32 uEsc = 0; - int openFlags; /* Flags this file was opened with */ - u32 iCookie; /* Cookie value for main db files */ - u8 iWriteVer; /* "write-version" value for main db files */ - u8 bNolock; /* True to fail EXCLUSIVE locks */ + /* Limit the length of the LIKE or GLOB pattern to avoid problems + ** of deep recursion and N*N behavior in patternCompare(). + */ + if( sqlite3_value_bytes(argv[0])>SQLITE_MAX_LIKE_PATTERN_LENGTH ){ + sqlite3_result_error(context, "LIKE or GLOB pattern too complex", -1); + return; + } - int nShm; /* Number of entries in apShm[] array */ - char **apShm; /* Array of mmap'd *-shm regions */ - char *zDel; /* Delete this when closing file */ - const char *zWal; /* Wal filename for this main db file */ - rbu_file *pWalFd; /* Wal file descriptor for this main db */ - rbu_file *pMainNext; /* Next MAIN_DB file */ -}; + if( argc==3 ){ + /* The escape character string must consist of a single UTF-8 character. + ** Otherwise, return an error. + */ + int nE= sqlite3_value_bytes(argv[2]); + const unsigned char *zE = sqlite3_value_text(argv[2]); + int i = 0; + if( zE==0 ) return; + U8_NEXT(zE, i, nE, uEsc); + if( i!=nE){ + sqlite3_result_error(context, + "ESCAPE expression must be a single character", -1); + return; + } + } + + if( zA && zB ){ + sqlite3_result_int(context, icuLikeCompare(zA, zB, uEsc)); + } +} /* -** True for an RBU vacuum handle, or false otherwise. +** Function to delete compiled regexp objects. Registered as +** a destructor function with sqlite3_set_auxdata(). */ -#define rbuIsVacuum(p) ((p)->zTarget==0) - +static void icuRegexpDelete(void *p){ + URegularExpression *pExpr = (URegularExpression *)p; + uregex_close(pExpr); +} -/************************************************************************* -** The following three functions, found below: +/* +** Implementation of SQLite REGEXP operator. This scalar function takes +** two arguments. The first is a regular expression pattern to compile +** the second is a string to match against that pattern. If either +** argument is an SQL NULL, then NULL Is returned. Otherwise, the result +** is 1 if the string matches the pattern, or 0 otherwise. ** -** rbuDeltaGetInt() -** rbuDeltaChecksum() -** rbuDeltaApply() +** SQLite maps the regexp() function to the regexp() operator such +** that the following two are equivalent: ** -** are lifted from the fossil source code (http://fossil-scm.org). They -** are used to implement the scalar SQL function rbu_fossil_delta(). +** zString REGEXP zPattern +** regexp(zPattern, zString) +** +** Uses the following ICU regexp APIs: +** +** uregex_open() +** uregex_matches() +** uregex_close() */ +static void icuRegexpFunc(sqlite3_context *p, int nArg, sqlite3_value **apArg){ + UErrorCode status = U_ZERO_ERROR; + URegularExpression *pExpr; + UBool res; + const UChar *zString = sqlite3_value_text16(apArg[1]); -/* -** Read bytes from *pz and convert them into a positive integer. When -** finished, leave *pz pointing to the first character past the end of -** the integer. The *pLen parameter holds the length of the string -** in *pz and is decremented once for each character in the integer. -*/ -static unsigned int rbuDeltaGetInt(const char **pz, int *pLen){ - static const signed char zValue[] = { - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1, - -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, 36, - -1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, -1, 63, -1, - }; - unsigned int v = 0; - int c; - unsigned char *z = (unsigned char*)*pz; - unsigned char *zStart = z; - while( (c = zValue[0x7f&*(z++)])>=0 ){ - v = (v<<6) + c; + (void)nArg; /* Unused parameter */ + + /* If the left hand side of the regexp operator is NULL, + ** then the result is also NULL. + */ + if( !zString ){ + return; } - z--; - *pLen -= z - zStart; - *pz = (char*)z; - return v; -} -#if RBU_ENABLE_DELTA_CKSUM -/* -** Compute a 32-bit checksum on the N-byte buffer. Return the result. -*/ -static unsigned int rbuDeltaChecksum(const char *zIn, size_t N){ - const unsigned char *z = (const unsigned char *)zIn; - unsigned sum0 = 0; - unsigned sum1 = 0; - unsigned sum2 = 0; - unsigned sum3 = 0; - while(N >= 16){ - sum0 += ((unsigned)z[0] + z[4] + z[8] + z[12]); - sum1 += ((unsigned)z[1] + z[5] + z[9] + z[13]); - sum2 += ((unsigned)z[2] + z[6] + z[10]+ z[14]); - sum3 += ((unsigned)z[3] + z[7] + z[11]+ z[15]); - z += 16; - N -= 16; + pExpr = sqlite3_get_auxdata(p, 0); + if( !pExpr ){ + const UChar *zPattern = sqlite3_value_text16(apArg[0]); + if( !zPattern ){ + return; + } + pExpr = uregex_open(zPattern, -1, 0, 0, &status); + + if( U_SUCCESS(status) ){ + sqlite3_set_auxdata(p, 0, pExpr, icuRegexpDelete); + }else{ + assert(!pExpr); + icuFunctionError(p, "uregex_open", status); + return; + } } - while(N >= 4){ - sum0 += z[0]; - sum1 += z[1]; - sum2 += z[2]; - sum3 += z[3]; - z += 4; - N -= 4; + + /* Configure the text that the regular expression operates on. */ + uregex_setText(pExpr, zString, -1, &status); + if( !U_SUCCESS(status) ){ + icuFunctionError(p, "uregex_setText", status); + return; } - sum3 += (sum2 << 8) + (sum1 << 16) + (sum0 << 24); - switch(N){ - case 3: sum3 += (z[2] << 8); - case 2: sum3 += (z[1] << 16); - case 1: sum3 += (z[0] << 24); - default: ; + + /* Attempt the match */ + res = uregex_matches(pExpr, 0, &status); + if( !U_SUCCESS(status) ){ + icuFunctionError(p, "uregex_matches", status); + return; } - return sum3; + + /* Set the text that the regular expression operates on to a NULL + ** pointer. This is not really necessary, but it is tidier than + ** leaving the regular expression object configured with an invalid + ** pointer after this function returns. + */ + uregex_setText(pExpr, 0, 0, &status); + + /* Return 1 or 0. */ + sqlite3_result_int(p, res ? 1 : 0); } -#endif /* -** Apply a delta. +** Implementations of scalar functions for case mapping - upper() and +** lower(). Function upper() converts its input to upper-case (ABC). +** Function lower() converts to lower-case (abc). ** -** The output buffer should be big enough to hold the whole output -** file and a NUL terminator at the end. The delta_output_size() -** routine will determine this size for you. +** ICU provides two types of case mapping, "general" case mapping and +** "language specific". Refer to ICU documentation for the differences +** between the two. ** -** The delta string should be null-terminated. But the delta string -** may contain embedded NUL characters (if the input and output are -** binary files) so we also have to pass in the length of the delta in -** the lenDelta parameter. +** To utilise "general" case mapping, the upper() or lower() scalar +** functions are invoked with one argument: ** -** This function returns the size of the output file in bytes (excluding -** the final NUL terminator character). Except, if the delta string is -** malformed or intended for use with a source file other than zSrc, -** then this routine returns -1. +** upper('ABC') -> 'abc' +** lower('abc') -> 'ABC' ** -** Refer to the delta_create() documentation above for a description -** of the delta file format. +** To access ICU "language specific" case mapping, upper() or lower() +** should be invoked with two arguments. The second argument is the name +** of the locale to use. Passing an empty string ("") or SQL NULL value +** as the second argument is the same as invoking the 1 argument version +** of upper() or lower(). +** +** lower('I', 'en_us') -> 'i' +** lower('I', 'tr_tr') -> '\u131' (small dotless i) +** +** http://www.icu-project.org/userguide/posix.html#case_mappings */ -static int rbuDeltaApply( - const char *zSrc, /* The source or pattern file */ - int lenSrc, /* Length of the source file */ - const char *zDelta, /* Delta to apply to the pattern */ - int lenDelta, /* Length of the delta */ - char *zOut /* Write the output into this preallocated buffer */ -){ - unsigned int limit; - unsigned int total = 0; -#if RBU_ENABLE_DELTA_CKSUM - char *zOrigOut = zOut; -#endif +static void icuCaseFunc16(sqlite3_context *p, int nArg, sqlite3_value **apArg){ + const UChar *zInput; /* Pointer to input string */ + UChar *zOutput = 0; /* Pointer to output buffer */ + int nInput; /* Size of utf-16 input string in bytes */ + int nOut; /* Size of output buffer in bytes */ + int cnt; + int bToUpper; /* True for toupper(), false for tolower() */ + UErrorCode status; + const char *zLocale = 0; - limit = rbuDeltaGetInt(&zDelta, &lenDelta); - if( *zDelta!='\n' ){ - /* ERROR: size integer not terminated by "\n" */ - return -1; + assert(nArg==1 || nArg==2); + bToUpper = (sqlite3_user_data(p)!=0); + if( nArg==2 ){ + zLocale = (const char *)sqlite3_value_text(apArg[1]); } - zDelta++; lenDelta--; - while( *zDelta && lenDelta>0 ){ - unsigned int cnt, ofst; - cnt = rbuDeltaGetInt(&zDelta, &lenDelta); - switch( zDelta[0] ){ - case '@': { - zDelta++; lenDelta--; - ofst = rbuDeltaGetInt(&zDelta, &lenDelta); - if( lenDelta>0 && zDelta[0]!=',' ){ - /* ERROR: copy command not terminated by ',' */ - return -1; - } - zDelta++; lenDelta--; - total += cnt; - if( total>limit ){ - /* ERROR: copy exceeds output file size */ - return -1; - } - if( (int)(ofst+cnt) > lenSrc ){ - /* ERROR: copy extends past end of input */ - return -1; - } - memcpy(zOut, &zSrc[ofst], cnt); - zOut += cnt; - break; - } - case ':': { - zDelta++; lenDelta--; - total += cnt; - if( total>limit ){ - /* ERROR: insert command gives an output larger than predicted */ - return -1; - } - if( (int)cnt>lenDelta ){ - /* ERROR: insert count exceeds size of delta */ - return -1; - } - memcpy(zOut, zDelta, cnt); - zOut += cnt; - zDelta += cnt; - lenDelta -= cnt; - break; - } - case ';': { - zDelta++; lenDelta--; - zOut[0] = 0; -#if RBU_ENABLE_DELTA_CKSUM - if( cnt!=rbuDeltaChecksum(zOrigOut, total) ){ - /* ERROR: bad checksum */ - return -1; - } -#endif - if( total!=limit ){ - /* ERROR: generated size does not match predicted size */ - return -1; - } - return total; - } - default: { - /* ERROR: unknown delta operator */ - return -1; - } + + zInput = sqlite3_value_text16(apArg[0]); + if( !zInput ){ + return; + } + nOut = nInput = sqlite3_value_bytes16(apArg[0]); + if( nOut==0 ){ + sqlite3_result_text16(p, "", 0, SQLITE_STATIC); + return; + } + + for(cnt=0; cnt<2; cnt++){ + UChar *zNew = sqlite3_realloc(zOutput, nOut); + if( zNew==0 ){ + sqlite3_free(zOutput); + sqlite3_result_error_nomem(p); + return; } + zOutput = zNew; + status = U_ZERO_ERROR; + if( bToUpper ){ + nOut = 2*u_strToUpper(zOutput,nOut/2,zInput,nInput/2,zLocale,&status); + }else{ + nOut = 2*u_strToLower(zOutput,nOut/2,zInput,nInput/2,zLocale,&status); + } + + if( U_SUCCESS(status) ){ + sqlite3_result_text16(p, zOutput, nOut, xFree); + }else if( status==U_BUFFER_OVERFLOW_ERROR ){ + assert( cnt==0 ); + continue; + }else{ + icuFunctionError(p, bToUpper ? "u_strToUpper" : "u_strToLower", status); + } + return; } - /* ERROR: unterminated delta */ - return -1; + assert( 0 ); /* Unreachable */ } -static int rbuDeltaOutputSize(const char *zDelta, int lenDelta){ - int size; - size = rbuDeltaGetInt(&zDelta, &lenDelta); - if( *zDelta!='\n' ){ - /* ERROR: size integer not terminated by "\n" */ - return -1; - } - return size; +#endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_ICU) */ + +/* +** Collation sequence destructor function. The pCtx argument points to +** a UCollator structure previously allocated using ucol_open(). +*/ +static void icuCollationDel(void *pCtx){ + UCollator *p = (UCollator *)pCtx; + ucol_close(p); } /* -** End of code taken from fossil. -*************************************************************************/ +** Collation sequence comparison function. The pCtx argument points to +** a UCollator structure previously allocated using ucol_open(). +*/ +static int icuCollationColl( + void *pCtx, + int nLeft, + const void *zLeft, + int nRight, + const void *zRight +){ + UCollationResult res; + UCollator *p = (UCollator *)pCtx; + res = ucol_strcoll(p, (UChar *)zLeft, nLeft/2, (UChar *)zRight, nRight/2); + switch( res ){ + case UCOL_LESS: return -1; + case UCOL_GREATER: return +1; + case UCOL_EQUAL: return 0; + } + assert(!"Unexpected return value from ucol_strcoll()"); + return 0; +} /* -** Implementation of SQL scalar function rbu_fossil_delta(). +** Implementation of the scalar function icu_load_collation(). ** -** This function applies a fossil delta patch to a blob. Exactly two -** arguments must be passed to this function. The first is the blob to -** patch and the second the patch to apply. If no error occurs, this -** function returns the patched blob. +** This scalar function is used to add ICU collation based collation +** types to an SQLite database connection. It is intended to be called +** as follows: +** +** SELECT icu_load_collation(, ); +** +** Where is a string containing an ICU locale identifier (i.e. +** "en_AU", "tr_TR" etc.) and is the name of the +** collation sequence to create. */ -static void rbuFossilDeltaFunc( - sqlite3_context *context, - int argc, - sqlite3_value **argv +static void icuLoadCollation( + sqlite3_context *p, + int nArg, + sqlite3_value **apArg ){ - const char *aDelta; - int nDelta; - const char *aOrig; - int nOrig; - - int nOut; - int nOut2; - char *aOut; - - assert( argc==2 ); + sqlite3 *db = (sqlite3 *)sqlite3_user_data(p); + UErrorCode status = U_ZERO_ERROR; + const char *zLocale; /* Locale identifier - (eg. "jp_JP") */ + const char *zName; /* SQL Collation sequence name (eg. "japanese") */ + UCollator *pUCollator; /* ICU library collation object */ + int rc; /* Return code from sqlite3_create_collation_x() */ - nOrig = sqlite3_value_bytes(argv[0]); - aOrig = (const char*)sqlite3_value_blob(argv[0]); - nDelta = sqlite3_value_bytes(argv[1]); - aDelta = (const char*)sqlite3_value_blob(argv[1]); + assert(nArg==2); + (void)nArg; /* Unused parameter */ + zLocale = (const char *)sqlite3_value_text(apArg[0]); + zName = (const char *)sqlite3_value_text(apArg[1]); - /* Figure out the size of the output */ - nOut = rbuDeltaOutputSize(aDelta, nDelta); - if( nOut<0 ){ - sqlite3_result_error(context, "corrupt fossil delta", -1); + if( !zLocale || !zName ){ return; } - aOut = sqlite3_malloc(nOut+1); - if( aOut==0 ){ - sqlite3_result_error_nomem(context); - }else{ - nOut2 = rbuDeltaApply(aOrig, nOrig, aDelta, nDelta, aOut); - if( nOut2!=nOut ){ - sqlite3_result_error(context, "corrupt fossil delta", -1); - }else{ - sqlite3_result_blob(context, aOut, nOut, sqlite3_free); - } + pUCollator = ucol_open(zLocale, &status); + if( !U_SUCCESS(status) ){ + icuFunctionError(p, "ucol_open", status); + return; } -} - + assert(p); -/* -** Prepare the SQL statement in buffer zSql against database handle db. -** If successful, set *ppStmt to point to the new statement and return -** SQLITE_OK. -** -** Otherwise, if an error does occur, set *ppStmt to NULL and return -** an SQLite error code. Additionally, set output variable *pzErrmsg to -** point to a buffer containing an error message. It is the responsibility -** of the caller to (eventually) free this buffer using sqlite3_free(). -*/ -static int prepareAndCollectError( - sqlite3 *db, - sqlite3_stmt **ppStmt, - char **pzErrmsg, - const char *zSql -){ - int rc = sqlite3_prepare_v2(db, zSql, -1, ppStmt, 0); + rc = sqlite3_create_collation_v2(db, zName, SQLITE_UTF16, (void *)pUCollator, + icuCollationColl, icuCollationDel + ); if( rc!=SQLITE_OK ){ - *pzErrmsg = sqlite3_mprintf("%s", sqlite3_errmsg(db)); - *ppStmt = 0; + ucol_close(pUCollator); + sqlite3_result_error(p, "Error registering collation function", -1); } - return rc; } /* -** Reset the SQL statement passed as the first argument. Return a copy -** of the value returned by sqlite3_reset(). -** -** If an error has occurred, then set *pzErrmsg to point to a buffer -** containing an error message. It is the responsibility of the caller -** to eventually free this buffer using sqlite3_free(). +** Register the ICU extension functions with database db. */ -static int resetAndCollectError(sqlite3_stmt *pStmt, char **pzErrmsg){ - int rc = sqlite3_reset(pStmt); - if( rc!=SQLITE_OK ){ - *pzErrmsg = sqlite3_mprintf("%s", sqlite3_errmsg(sqlite3_db_handle(pStmt))); +SQLITE_PRIVATE int sqlite3IcuInit(sqlite3 *db){ + static const struct IcuScalar { + const char *zName; /* Function name */ + unsigned char nArg; /* Number of arguments */ + unsigned short enc; /* Optimal text encoding */ + unsigned char iContext; /* sqlite3_user_data() context */ + void (*xFunc)(sqlite3_context*,int,sqlite3_value**); + } scalars[] = { + {"icu_load_collation", 2, SQLITE_UTF8, 1, icuLoadCollation}, +#if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_ICU) + {"regexp", 2, SQLITE_ANY|SQLITE_DETERMINISTIC, 0, icuRegexpFunc}, + {"lower", 1, SQLITE_UTF16|SQLITE_DETERMINISTIC, 0, icuCaseFunc16}, + {"lower", 2, SQLITE_UTF16|SQLITE_DETERMINISTIC, 0, icuCaseFunc16}, + {"upper", 1, SQLITE_UTF16|SQLITE_DETERMINISTIC, 1, icuCaseFunc16}, + {"upper", 2, SQLITE_UTF16|SQLITE_DETERMINISTIC, 1, icuCaseFunc16}, + {"lower", 1, SQLITE_UTF8|SQLITE_DETERMINISTIC, 0, icuCaseFunc16}, + {"lower", 2, SQLITE_UTF8|SQLITE_DETERMINISTIC, 0, icuCaseFunc16}, + {"upper", 1, SQLITE_UTF8|SQLITE_DETERMINISTIC, 1, icuCaseFunc16}, + {"upper", 2, SQLITE_UTF8|SQLITE_DETERMINISTIC, 1, icuCaseFunc16}, + {"like", 2, SQLITE_UTF8|SQLITE_DETERMINISTIC, 0, icuLikeFunc}, + {"like", 3, SQLITE_UTF8|SQLITE_DETERMINISTIC, 0, icuLikeFunc}, +#endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_ICU) */ + }; + int rc = SQLITE_OK; + int i; + + for(i=0; rc==SQLITE_OK && i<(int)(sizeof(scalars)/sizeof(scalars[0])); i++){ + const struct IcuScalar *p = &scalars[i]; + rc = sqlite3_create_function( + db, p->zName, p->nArg, p->enc, + p->iContext ? (void*)db : (void*)0, + p->xFunc, 0, 0 + ); } + return rc; } +#if !SQLITE_CORE +#ifdef _WIN32 +__declspec(dllexport) +#endif +SQLITE_API int sqlite3_icu_init( + sqlite3 *db, + char **pzErrMsg, + const sqlite3_api_routines *pApi +){ + SQLITE_EXTENSION_INIT2(pApi) + return sqlite3IcuInit(db); +} +#endif + +#endif + +/************** End of icu.c *************************************************/ +/************** Begin file fts3_icu.c ****************************************/ /* -** Unless it is NULL, argument zSql points to a buffer allocated using -** sqlite3_malloc containing an SQL statement. This function prepares the SQL -** statement against database db and frees the buffer. If statement -** compilation is successful, *ppStmt is set to point to the new statement -** handle and SQLITE_OK is returned. +** 2007 June 22 ** -** Otherwise, if an error occurs, *ppStmt is set to NULL and an error code -** returned. In this case, *pzErrmsg may also be set to point to an error -** message. It is the responsibility of the caller to free this error message -** buffer using sqlite3_free(). +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: ** -** If argument zSql is NULL, this function assumes that an OOM has occurred. -** In this case SQLITE_NOMEM is returned and *ppStmt set to NULL. +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This file implements a tokenizer for fts3 based on the ICU library. */ -static int prepareFreeAndCollectError( - sqlite3 *db, - sqlite3_stmt **ppStmt, - char **pzErrmsg, - char *zSql -){ - int rc; - assert( *pzErrmsg==0 ); - if( zSql==0 ){ - rc = SQLITE_NOMEM; - *ppStmt = 0; - }else{ - rc = prepareAndCollectError(db, ppStmt, pzErrmsg, zSql); - sqlite3_free(zSql); - } - return rc; -} +/* #include "fts3Int.h" */ +#if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3) +#ifdef SQLITE_ENABLE_ICU + +/* #include */ +/* #include */ +/* #include "fts3_tokenizer.h" */ + +#include +/* #include */ +/* #include */ +#include + +typedef struct IcuTokenizer IcuTokenizer; +typedef struct IcuCursor IcuCursor; + +struct IcuTokenizer { + sqlite3_tokenizer base; + char *zLocale; +}; + +struct IcuCursor { + sqlite3_tokenizer_cursor base; + + UBreakIterator *pIter; /* ICU break-iterator object */ + int nChar; /* Number of UChar elements in pInput */ + UChar *aChar; /* Copy of input using utf-16 encoding */ + int *aOffset; /* Offsets of each character in utf-8 input */ + + int nBuffer; + char *zBuffer; + + int iToken; +}; /* -** Free the RbuObjIter.azTblCol[] and RbuObjIter.abTblPk[] arrays allocated -** by an earlier call to rbuObjIterCacheTableInfo(). +** Create a new tokenizer instance. */ -static void rbuObjIterFreeCols(RbuObjIter *pIter){ - int i; - for(i=0; inTblCol; i++){ - sqlite3_free(pIter->azTblCol[i]); - sqlite3_free(pIter->azTblType[i]); - } - sqlite3_free(pIter->azTblCol); - pIter->azTblCol = 0; - pIter->azTblType = 0; - pIter->aiSrcOrder = 0; - pIter->abTblPk = 0; - pIter->abNotNull = 0; - pIter->nTblCol = 0; - pIter->eType = 0; /* Invalid value */ -} +static int icuCreate( + int argc, /* Number of entries in argv[] */ + const char * const *argv, /* Tokenizer creation arguments */ + sqlite3_tokenizer **ppTokenizer /* OUT: Created tokenizer */ +){ + IcuTokenizer *p; + int n = 0; -/* -** Finalize all statements and free all allocations that are specific to -** the current object (table/index pair). -*/ -static void rbuObjIterClearStatements(RbuObjIter *pIter){ - RbuUpdateStmt *pUp; + if( argc>0 ){ + n = strlen(argv[0])+1; + } + p = (IcuTokenizer *)sqlite3_malloc(sizeof(IcuTokenizer)+n); + if( !p ){ + return SQLITE_NOMEM; + } + memset(p, 0, sizeof(IcuTokenizer)); - sqlite3_finalize(pIter->pSelect); - sqlite3_finalize(pIter->pInsert); - sqlite3_finalize(pIter->pDelete); - sqlite3_finalize(pIter->pTmpInsert); - pUp = pIter->pRbuUpdate; - while( pUp ){ - RbuUpdateStmt *pTmp = pUp->pNext; - sqlite3_finalize(pUp->pUpdate); - sqlite3_free(pUp); - pUp = pTmp; + if( n ){ + p->zLocale = (char *)&p[1]; + memcpy(p->zLocale, argv[0], n); } - - pIter->pSelect = 0; - pIter->pInsert = 0; - pIter->pDelete = 0; - pIter->pRbuUpdate = 0; - pIter->pTmpInsert = 0; - pIter->nCol = 0; + + *ppTokenizer = (sqlite3_tokenizer *)p; + + return SQLITE_OK; } /* -** Clean up any resources allocated as part of the iterator object passed -** as the only argument. +** Destroy a tokenizer */ -static void rbuObjIterFinalize(RbuObjIter *pIter){ - rbuObjIterClearStatements(pIter); - sqlite3_finalize(pIter->pTblIter); - sqlite3_finalize(pIter->pIdxIter); - rbuObjIterFreeCols(pIter); - memset(pIter, 0, sizeof(RbuObjIter)); +static int icuDestroy(sqlite3_tokenizer *pTokenizer){ + IcuTokenizer *p = (IcuTokenizer *)pTokenizer; + sqlite3_free(p); + return SQLITE_OK; } /* -** Advance the iterator to the next position. -** -** If no error occurs, SQLITE_OK is returned and the iterator is left -** pointing to the next entry. Otherwise, an error code and message is -** left in the RBU handle passed as the first argument. A copy of the -** error code is returned. +** Prepare to begin tokenizing a particular string. The input +** string to be tokenized is pInput[0..nBytes-1]. A cursor +** used to incrementally tokenize this string is returned in +** *ppCursor. */ -static int rbuObjIterNext(sqlite3rbu *p, RbuObjIter *pIter){ - int rc = p->rc; - if( rc==SQLITE_OK ){ +static int icuOpen( + sqlite3_tokenizer *pTokenizer, /* The tokenizer */ + const char *zInput, /* Input string */ + int nInput, /* Length of zInput in bytes */ + sqlite3_tokenizer_cursor **ppCursor /* OUT: Tokenization cursor */ +){ + IcuTokenizer *p = (IcuTokenizer *)pTokenizer; + IcuCursor *pCsr; - /* Free any SQLite statements used while processing the previous object */ - rbuObjIterClearStatements(pIter); - if( pIter->zIdx==0 ){ - rc = sqlite3_exec(p->dbMain, - "DROP TRIGGER IF EXISTS temp.rbu_insert_tr;" - "DROP TRIGGER IF EXISTS temp.rbu_update1_tr;" - "DROP TRIGGER IF EXISTS temp.rbu_update2_tr;" - "DROP TRIGGER IF EXISTS temp.rbu_delete_tr;" - , 0, 0, &p->zErrmsg - ); + const int32_t opt = U_FOLD_CASE_DEFAULT; + UErrorCode status = U_ZERO_ERROR; + int nChar; + + UChar32 c; + int iInput = 0; + int iOut = 0; + + *ppCursor = 0; + + if( zInput==0 ){ + nInput = 0; + zInput = ""; + }else if( nInput<0 ){ + nInput = strlen(zInput); + } + nChar = nInput+1; + pCsr = (IcuCursor *)sqlite3_malloc( + sizeof(IcuCursor) + /* IcuCursor */ + ((nChar+3)&~3) * sizeof(UChar) + /* IcuCursor.aChar[] */ + (nChar+1) * sizeof(int) /* IcuCursor.aOffset[] */ + ); + if( !pCsr ){ + return SQLITE_NOMEM; + } + memset(pCsr, 0, sizeof(IcuCursor)); + pCsr->aChar = (UChar *)&pCsr[1]; + pCsr->aOffset = (int *)&pCsr->aChar[(nChar+3)&~3]; + + pCsr->aOffset[iOut] = iInput; + U8_NEXT(zInput, iInput, nInput, c); + while( c>0 ){ + int isError = 0; + c = u_foldCase(c, opt); + U16_APPEND(pCsr->aChar, iOut, nChar, c, isError); + if( isError ){ + sqlite3_free(pCsr); + return SQLITE_ERROR; } + pCsr->aOffset[iOut] = iInput; - if( rc==SQLITE_OK ){ - if( pIter->bCleanup ){ - rbuObjIterFreeCols(pIter); - pIter->bCleanup = 0; - rc = sqlite3_step(pIter->pTblIter); - if( rc!=SQLITE_ROW ){ - rc = resetAndCollectError(pIter->pTblIter, &p->zErrmsg); - pIter->zTbl = 0; - }else{ - pIter->zTbl = (const char*)sqlite3_column_text(pIter->pTblIter, 0); - pIter->zDataTbl = (const char*)sqlite3_column_text(pIter->pTblIter,1); - rc = (pIter->zDataTbl && pIter->zTbl) ? SQLITE_OK : SQLITE_NOMEM; - } - }else{ - if( pIter->zIdx==0 ){ - sqlite3_stmt *pIdx = pIter->pIdxIter; - rc = sqlite3_bind_text(pIdx, 1, pIter->zTbl, -1, SQLITE_STATIC); - } - if( rc==SQLITE_OK ){ - rc = sqlite3_step(pIter->pIdxIter); - if( rc!=SQLITE_ROW ){ - rc = resetAndCollectError(pIter->pIdxIter, &p->zErrmsg); - pIter->bCleanup = 1; - pIter->zIdx = 0; - }else{ - pIter->zIdx = (const char*)sqlite3_column_text(pIter->pIdxIter, 0); - pIter->iTnum = sqlite3_column_int(pIter->pIdxIter, 1); - pIter->bUnique = sqlite3_column_int(pIter->pIdxIter, 2); - rc = pIter->zIdx ? SQLITE_OK : SQLITE_NOMEM; - } - } - } + if( iInputrc = rc; + pCsr->pIter = ubrk_open(UBRK_WORD, p->zLocale, pCsr->aChar, iOut, &status); + if( !U_SUCCESS(status) ){ + sqlite3_free(pCsr); + return SQLITE_ERROR; } - return rc; + pCsr->nChar = iOut; + + ubrk_first(pCsr->pIter); + *ppCursor = (sqlite3_tokenizer_cursor *)pCsr; + return SQLITE_OK; } +/* +** Close a tokenization cursor previously opened by a call to icuOpen(). +*/ +static int icuClose(sqlite3_tokenizer_cursor *pCursor){ + IcuCursor *pCsr = (IcuCursor *)pCursor; + ubrk_close(pCsr->pIter); + sqlite3_free(pCsr->zBuffer); + sqlite3_free(pCsr); + return SQLITE_OK; +} /* -** The implementation of the rbu_target_name() SQL function. This function -** accepts one or two arguments. The first argument is the name of a table - -** the name of a table in the RBU database. The second, if it is present, is 1 -** for a view or 0 for a table. -** -** For a non-vacuum RBU handle, if the table name matches the pattern: -** -** data[0-9]_ -** -** where is any sequence of 1 or more characters, is returned. -** Otherwise, if the only argument does not match the above pattern, an SQL -** NULL is returned. -** -** "data_t1" -> "t1" -** "data0123_t2" -> "t2" -** "dataAB_t3" -> NULL -** -** For an rbu vacuum handle, a copy of the first argument is returned if -** the second argument is either missing or 0 (not a view). +** Extract the next token from a tokenization cursor. */ -static void rbuTargetNameFunc( - sqlite3_context *pCtx, - int argc, - sqlite3_value **argv +static int icuNext( + sqlite3_tokenizer_cursor *pCursor, /* Cursor returned by simpleOpen */ + const char **ppToken, /* OUT: *ppToken is the token text */ + int *pnBytes, /* OUT: Number of bytes in token */ + int *piStartOffset, /* OUT: Starting offset of token */ + int *piEndOffset, /* OUT: Ending offset of token */ + int *piPosition /* OUT: Position integer of token */ ){ - sqlite3rbu *p = sqlite3_user_data(pCtx); - const char *zIn; - assert( argc==1 || argc==2 ); + IcuCursor *pCsr = (IcuCursor *)pCursor; - zIn = (const char*)sqlite3_value_text(argv[0]); - if( zIn ){ - if( rbuIsVacuum(p) ){ - if( argc==1 || 0==sqlite3_value_int(argv[1]) ){ - sqlite3_result_text(pCtx, zIn, -1, SQLITE_STATIC); - } - }else{ - if( strlen(zIn)>4 && memcmp("data", zIn, 4)==0 ){ - int i; - for(i=4; zIn[i]>='0' && zIn[i]<='9'; i++); - if( zIn[i]=='_' && zIn[i+1] ){ - sqlite3_result_text(pCtx, &zIn[i+1], -1, SQLITE_STATIC); - } + int iStart = 0; + int iEnd = 0; + int nByte = 0; + + while( iStart==iEnd ){ + UChar32 c; + + iStart = ubrk_current(pCsr->pIter); + iEnd = ubrk_next(pCsr->pIter); + if( iEnd==UBRK_DONE ){ + return SQLITE_DONE; + } + + while( iStartaChar, iWhite, pCsr->nChar, c); + if( u_isspace(c) ){ + iStart = iWhite; + }else{ + break; } } + assert(iStart<=iEnd); } -} - -/* -** Initialize the iterator structure passed as the second argument. -** -** If no error occurs, SQLITE_OK is returned and the iterator is left -** pointing to the first entry. Otherwise, an error code and message is -** left in the RBU handle passed as the first argument. A copy of the -** error code is returned. -*/ -static int rbuObjIterFirst(sqlite3rbu *p, RbuObjIter *pIter){ - int rc; - memset(pIter, 0, sizeof(RbuObjIter)); - rc = prepareFreeAndCollectError(p->dbRbu, &pIter->pTblIter, &p->zErrmsg, - sqlite3_mprintf( - "SELECT rbu_target_name(name, type='view') AS target, name " - "FROM sqlite_master " - "WHERE type IN ('table', 'view') AND target IS NOT NULL " - " %s " - "ORDER BY name" - , rbuIsVacuum(p) ? "AND rootpage!=0 AND rootpage IS NOT NULL" : "")); + do { + UErrorCode status = U_ZERO_ERROR; + if( nByte ){ + char *zNew = sqlite3_realloc(pCsr->zBuffer, nByte); + if( !zNew ){ + return SQLITE_NOMEM; + } + pCsr->zBuffer = zNew; + pCsr->nBuffer = nByte; + } - if( rc==SQLITE_OK ){ - rc = prepareAndCollectError(p->dbMain, &pIter->pIdxIter, &p->zErrmsg, - "SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' " - " FROM main.sqlite_master " - " WHERE type='index' AND tbl_name = ?" + u_strToUTF8( + pCsr->zBuffer, pCsr->nBuffer, &nByte, /* Output vars */ + &pCsr->aChar[iStart], iEnd-iStart, /* Input vars */ + &status /* Output success/failure */ ); - } + } while( nByte>pCsr->nBuffer ); - pIter->bCleanup = 1; - p->rc = rc; - return rbuObjIterNext(p, pIter); + *ppToken = pCsr->zBuffer; + *pnBytes = nByte; + *piStartOffset = pCsr->aOffset[iStart]; + *piEndOffset = pCsr->aOffset[iEnd]; + *piPosition = pCsr->iToken++; + + return SQLITE_OK; } /* -** This is a wrapper around "sqlite3_mprintf(zFmt, ...)". If an OOM occurs, -** an error code is stored in the RBU handle passed as the first argument. -** -** If an error has already occurred (p->rc is already set to something other -** than SQLITE_OK), then this function returns NULL without modifying the -** stored error code. In this case it still calls sqlite3_free() on any -** printf() parameters associated with %z conversions. +** The set of routines that implement the simple tokenizer */ -static char *rbuMPrintf(sqlite3rbu *p, const char *zFmt, ...){ - char *zSql = 0; - va_list ap; - va_start(ap, zFmt); - zSql = sqlite3_vmprintf(zFmt, ap); - if( p->rc==SQLITE_OK ){ - if( zSql==0 ) p->rc = SQLITE_NOMEM; - }else{ - sqlite3_free(zSql); - zSql = 0; - } - va_end(ap); - return zSql; -} +static const sqlite3_tokenizer_module icuTokenizerModule = { + 0, /* iVersion */ + icuCreate, /* xCreate */ + icuDestroy, /* xCreate */ + icuOpen, /* xOpen */ + icuClose, /* xClose */ + icuNext, /* xNext */ + 0, /* xLanguageid */ +}; /* -** Argument zFmt is a sqlite3_mprintf() style format string. The trailing -** arguments are the usual subsitution values. This function performs -** the printf() style substitutions and executes the result as an SQL -** statement on the RBU handles database. -** -** If an error occurs, an error code and error message is stored in the -** RBU handle. If an error has already occurred when this function is -** called, it is a no-op. +** Set *ppModule to point at the implementation of the ICU tokenizer. */ -static int rbuMPrintfExec(sqlite3rbu *p, sqlite3 *db, const char *zFmt, ...){ - va_list ap; - char *zSql; - va_start(ap, zFmt); - zSql = sqlite3_vmprintf(zFmt, ap); - if( p->rc==SQLITE_OK ){ - if( zSql==0 ){ - p->rc = SQLITE_NOMEM; - }else{ - p->rc = sqlite3_exec(db, zSql, 0, 0, &p->zErrmsg); - } - } - sqlite3_free(zSql); - va_end(ap); - return p->rc; +SQLITE_PRIVATE void sqlite3Fts3IcuTokenizerModule( + sqlite3_tokenizer_module const**ppModule +){ + *ppModule = &icuTokenizerModule; } +#endif /* defined(SQLITE_ENABLE_ICU) */ +#endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3) */ + +/************** End of fts3_icu.c ********************************************/ +/************** Begin file sqlite3rbu.c **************************************/ /* -** Attempt to allocate and return a pointer to a zeroed block of nByte -** bytes. +** 2014 August 30 ** -** If an error (i.e. an OOM condition) occurs, return NULL and leave an -** error code in the rbu handle passed as the first argument. Or, if an -** error has already occurred when this function is called, return NULL -** immediately without attempting the allocation or modifying the stored -** error code. +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** +** +** OVERVIEW +** +** The RBU extension requires that the RBU update be packaged as an +** SQLite database. The tables it expects to find are described in +** sqlite3rbu.h. Essentially, for each table xyz in the target database +** that the user wishes to write to, a corresponding data_xyz table is +** created in the RBU database and populated with one row for each row to +** update, insert or delete from the target table. +** +** The update proceeds in three stages: +** +** 1) The database is updated. The modified database pages are written +** to a *-oal file. A *-oal file is just like a *-wal file, except +** that it is named "-oal" instead of "-wal". +** Because regular SQLite clients do not look for file named +** "-oal", they go on using the original database in +** rollback mode while the *-oal file is being generated. +** +** During this stage RBU does not update the database by writing +** directly to the target tables. Instead it creates "imposter" +** tables using the SQLITE_TESTCTRL_IMPOSTER interface that it uses +** to update each b-tree individually. All updates required by each +** b-tree are completed before moving on to the next, and all +** updates are done in sorted key order. +** +** 2) The "-oal" file is moved to the equivalent "-wal" +** location using a call to rename(2). Before doing this the RBU +** module takes an EXCLUSIVE lock on the database file, ensuring +** that there are no other active readers. +** +** Once the EXCLUSIVE lock is released, any other database readers +** detect the new *-wal file and read the database in wal mode. At +** this point they see the new version of the database - including +** the updates made as part of the RBU update. +** +** 3) The new *-wal file is checkpointed. This proceeds in the same way +** as a regular database checkpoint, except that a single frame is +** checkpointed each time sqlite3rbu_step() is called. If the RBU +** handle is closed before the entire *-wal file is checkpointed, +** the checkpoint progress is saved in the RBU database and the +** checkpoint can be resumed by another RBU client at some point in +** the future. +** +** POTENTIAL PROBLEMS +** +** The rename() call might not be portable. And RBU is not currently +** syncing the directory after renaming the file. +** +** When state is saved, any commit to the *-oal file and the commit to +** the RBU update database are not atomic. So if the power fails at the +** wrong moment they might get out of sync. As the main database will be +** committed before the RBU update database this will likely either just +** pass unnoticed, or result in SQLITE_CONSTRAINT errors (due to UNIQUE +** constraint violations). +** +** If some client does modify the target database mid RBU update, or some +** other error occurs, the RBU extension will keep throwing errors. It's +** not really clear how to get out of this state. The system could just +** by delete the RBU update database and *-oal file and have the device +** download the update again and start over. +** +** At present, for an UPDATE, both the new.* and old.* records are +** collected in the rbu_xyz table. And for both UPDATEs and DELETEs all +** fields are collected. This means we're probably writing a lot more +** data to disk when saving the state of an ongoing update to the RBU +** update database than is strictly necessary. +** */ -static void *rbuMalloc(sqlite3rbu *p, int nByte){ - void *pRet = 0; - if( p->rc==SQLITE_OK ){ - assert( nByte>0 ); - pRet = sqlite3_malloc64(nByte); - if( pRet==0 ){ - p->rc = SQLITE_NOMEM; - }else{ - memset(pRet, 0, nByte); - } - } - return pRet; -} +/* #include */ +/* #include */ +/* #include */ + +/* #include "sqlite3.h" */ +#if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_RBU) +/************** Include sqlite3rbu.h in the middle of sqlite3rbu.c ***********/ +/************** Begin file sqlite3rbu.h **************************************/ /* -** Allocate and zero the pIter->azTblCol[] and abTblPk[] arrays so that -** there is room for at least nCol elements. If an OOM occurs, store an -** error code in the RBU handle passed as the first argument. +** 2014 August 30 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** +** This file contains the public interface for the RBU extension. */ -static void rbuAllocateIterArrays(sqlite3rbu *p, RbuObjIter *pIter, int nCol){ - int nByte = (2*sizeof(char*) + sizeof(int) + 3*sizeof(u8)) * nCol; - char **azNew; - - azNew = (char**)rbuMalloc(p, nByte); - if( azNew ){ - pIter->azTblCol = azNew; - pIter->azTblType = &azNew[nCol]; - pIter->aiSrcOrder = (int*)&pIter->azTblType[nCol]; - pIter->abTblPk = (u8*)&pIter->aiSrcOrder[nCol]; - pIter->abNotNull = (u8*)&pIter->abTblPk[nCol]; - pIter->abIndexed = (u8*)&pIter->abNotNull[nCol]; - } -} /* -** The first argument must be a nul-terminated string. This function -** returns a copy of the string in memory obtained from sqlite3_malloc(). -** It is the responsibility of the caller to eventually free this memory -** using sqlite3_free(). +** SUMMARY ** -** If an OOM condition is encountered when attempting to allocate memory, -** output variable (*pRc) is set to SQLITE_NOMEM before returning. Otherwise, -** if the allocation succeeds, (*pRc) is left unchanged. +** Writing a transaction containing a large number of operations on +** b-tree indexes that are collectively larger than the available cache +** memory can be very inefficient. +** +** The problem is that in order to update a b-tree, the leaf page (at least) +** containing the entry being inserted or deleted must be modified. If the +** working set of leaves is larger than the available cache memory, then a +** single leaf that is modified more than once as part of the transaction +** may be loaded from or written to the persistent media multiple times. +** Additionally, because the index updates are likely to be applied in +** random order, access to pages within the database is also likely to be in +** random order, which is itself quite inefficient. +** +** One way to improve the situation is to sort the operations on each index +** by index key before applying them to the b-tree. This leads to an IO +** pattern that resembles a single linear scan through the index b-tree, +** and all but guarantees each modified leaf page is loaded and stored +** exactly once. SQLite uses this trick to improve the performance of +** CREATE INDEX commands. This extension allows it to be used to improve +** the performance of large transactions on existing databases. +** +** Additionally, this extension allows the work involved in writing the +** large transaction to be broken down into sub-transactions performed +** sequentially by separate processes. This is useful if the system cannot +** guarantee that a single update process will run for long enough to apply +** the entire update, for example because the update is being applied on a +** mobile device that is frequently rebooted. Even after the writer process +** has committed one or more sub-transactions, other database clients continue +** to read from the original database snapshot. In other words, partially +** applied transactions are not visible to other clients. +** +** "RBU" stands for "Resumable Bulk Update". As in a large database update +** transmitted via a wireless network to a mobile device. A transaction +** applied using this extension is hence refered to as an "RBU update". +** +** +** LIMITATIONS +** +** An "RBU update" transaction is subject to the following limitations: +** +** * The transaction must consist of INSERT, UPDATE and DELETE operations +** only. +** +** * INSERT statements may not use any default values. +** +** * UPDATE and DELETE statements must identify their target rows by +** non-NULL PRIMARY KEY values. Rows with NULL values stored in PRIMARY +** KEY fields may not be updated or deleted. If the table being written +** has no PRIMARY KEY, affected rows must be identified by rowid. +** +** * UPDATE statements may not modify PRIMARY KEY columns. +** +** * No triggers will be fired. +** +** * No foreign key violations are detected or reported. +** +** * CHECK constraints are not enforced. +** +** * No constraint handling mode except for "OR ROLLBACK" is supported. +** +** +** PREPARATION +** +** An "RBU update" is stored as a separate SQLite database. A database +** containing an RBU update is an "RBU database". For each table in the +** target database to be updated, the RBU database should contain a table +** named "data_" containing the same set of columns as the +** target table, and one more - "rbu_control". The data_% table should +** have no PRIMARY KEY or UNIQUE constraints, but each column should have +** the same type as the corresponding column in the target database. +** The "rbu_control" column should have no type at all. For example, if +** the target database contains: +** +** CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c UNIQUE); +** +** Then the RBU database should contain: +** +** CREATE TABLE data_t1(a INTEGER, b TEXT, c, rbu_control); +** +** The order of the columns in the data_% table does not matter. +** +** Instead of a regular table, the RBU database may also contain virtual +** tables or view named using the data_ naming scheme. +** +** Instead of the plain data_ naming scheme, RBU database tables +** may also be named data_, where is any sequence +** of zero or more numeric characters (0-9). This can be significant because +** tables within the RBU database are always processed in order sorted by +** name. By judicious selection of the portion of the names +** of the RBU tables the user can therefore control the order in which they +** are processed. This can be useful, for example, to ensure that "external +** content" FTS4 tables are updated before their underlying content tables. +** +** If the target database table is a virtual table or a table that has no +** PRIMARY KEY declaration, the data_% table must also contain a column +** named "rbu_rowid". This column is mapped to the tables implicit primary +** key column - "rowid". Virtual tables for which the "rowid" column does +** not function like a primary key value cannot be updated using RBU. For +** example, if the target db contains either of the following: +** +** CREATE VIRTUAL TABLE x1 USING fts3(a, b); +** CREATE TABLE x1(a, b) +** +** then the RBU database should contain: +** +** CREATE TABLE data_x1(a, b, rbu_rowid, rbu_control); +** +** All non-hidden columns (i.e. all columns matched by "SELECT *") of the +** target table must be present in the input table. For virtual tables, +** hidden columns are optional - they are updated by RBU if present in +** the input table, or not otherwise. For example, to write to an fts4 +** table with a hidden languageid column such as: +** +** CREATE VIRTUAL TABLE ft1 USING fts4(a, b, languageid='langid'); +** +** Either of the following input table schemas may be used: +** +** CREATE TABLE data_ft1(a, b, langid, rbu_rowid, rbu_control); +** CREATE TABLE data_ft1(a, b, rbu_rowid, rbu_control); +** +** For each row to INSERT into the target database as part of the RBU +** update, the corresponding data_% table should contain a single record +** with the "rbu_control" column set to contain integer value 0. The +** other columns should be set to the values that make up the new record +** to insert. +** +** If the target database table has an INTEGER PRIMARY KEY, it is not +** possible to insert a NULL value into the IPK column. Attempting to +** do so results in an SQLITE_MISMATCH error. +** +** For each row to DELETE from the target database as part of the RBU +** update, the corresponding data_% table should contain a single record +** with the "rbu_control" column set to contain integer value 1. The +** real primary key values of the row to delete should be stored in the +** corresponding columns of the data_% table. The values stored in the +** other columns are not used. +** +** For each row to UPDATE from the target database as part of the RBU +** update, the corresponding data_% table should contain a single record +** with the "rbu_control" column set to contain a value of type text. +** The real primary key values identifying the row to update should be +** stored in the corresponding columns of the data_% table row, as should +** the new values of all columns being update. The text value in the +** "rbu_control" column must contain the same number of characters as +** there are columns in the target database table, and must consist entirely +** of 'x' and '.' characters (or in some special cases 'd' - see below). For +** each column that is being updated, the corresponding character is set to +** 'x'. For those that remain as they are, the corresponding character of the +** rbu_control value should be set to '.'. For example, given the tables +** above, the update statement: +** +** UPDATE t1 SET c = 'usa' WHERE a = 4; +** +** is represented by the data_t1 row created by: +** +** INSERT INTO data_t1(a, b, c, rbu_control) VALUES(4, NULL, 'usa', '..x'); +** +** Instead of an 'x' character, characters of the rbu_control value specified +** for UPDATEs may also be set to 'd'. In this case, instead of updating the +** target table with the value stored in the corresponding data_% column, the +** user-defined SQL function "rbu_delta()" is invoked and the result stored in +** the target table column. rbu_delta() is invoked with two arguments - the +** original value currently stored in the target table column and the +** value specified in the data_xxx table. +** +** For example, this row: +** +** INSERT INTO data_t1(a, b, c, rbu_control) VALUES(4, NULL, 'usa', '..d'); +** +** is similar to an UPDATE statement such as: +** +** UPDATE t1 SET c = rbu_delta(c, 'usa') WHERE a = 4; +** +** Finally, if an 'f' character appears in place of a 'd' or 's' in an +** ota_control string, the contents of the data_xxx table column is assumed +** to be a "fossil delta" - a patch to be applied to a blob value in the +** format used by the fossil source-code management system. In this case +** the existing value within the target database table must be of type BLOB. +** It is replaced by the result of applying the specified fossil delta to +** itself. +** +** If the target database table is a virtual table or a table with no PRIMARY +** KEY, the rbu_control value should not include a character corresponding +** to the rbu_rowid value. For example, this: +** +** INSERT INTO data_ft1(a, b, rbu_rowid, rbu_control) +** VALUES(NULL, 'usa', 12, '.x'); +** +** causes a result similar to: +** +** UPDATE ft1 SET b = 'usa' WHERE rowid = 12; +** +** The data_xxx tables themselves should have no PRIMARY KEY declarations. +** However, RBU is more efficient if reading the rows in from each data_xxx +** table in "rowid" order is roughly the same as reading them sorted by +** the PRIMARY KEY of the corresponding target database table. In other +** words, rows should be sorted using the destination table PRIMARY KEY +** fields before they are inserted into the data_xxx tables. +** +** USAGE +** +** The API declared below allows an application to apply an RBU update +** stored on disk to an existing target database. Essentially, the +** application: +** +** 1) Opens an RBU handle using the sqlite3rbu_open() function. +** +** 2) Registers any required virtual table modules with the database +** handle returned by sqlite3rbu_db(). Also, if required, register +** the rbu_delta() implementation. +** +** 3) Calls the sqlite3rbu_step() function one or more times on +** the new handle. Each call to sqlite3rbu_step() performs a single +** b-tree operation, so thousands of calls may be required to apply +** a complete update. +** +** 4) Calls sqlite3rbu_close() to close the RBU update handle. If +** sqlite3rbu_step() has been called enough times to completely +** apply the update to the target database, then the RBU database +** is marked as fully applied. Otherwise, the state of the RBU +** update application is saved in the RBU database for later +** resumption. +** +** See comments below for more detail on APIs. +** +** If an update is only partially applied to the target database by the +** time sqlite3rbu_close() is called, various state information is saved +** within the RBU database. This allows subsequent processes to automatically +** resume the RBU update from where it left off. +** +** To remove all RBU extension state information, returning an RBU database +** to its original contents, it is sufficient to drop all tables that begin +** with the prefix "rbu_" +** +** DATABASE LOCKING +** +** An RBU update may not be applied to a database in WAL mode. Attempting +** to do so is an error (SQLITE_ERROR). +** +** While an RBU handle is open, a SHARED lock may be held on the target +** database file. This means it is possible for other clients to read the +** database, but not to write it. +** +** If an RBU update is started and then suspended before it is completed, +** then an external client writes to the database, then attempting to resume +** the suspended RBU update is also an error (SQLITE_BUSY). */ -static char *rbuStrndup(const char *zStr, int *pRc){ - char *zRet = 0; - assert( *pRc==SQLITE_OK ); - if( zStr ){ - size_t nCopy = strlen(zStr) + 1; - zRet = (char*)sqlite3_malloc64(nCopy); - if( zRet ){ - memcpy(zRet, zStr, nCopy); - }else{ - *pRc = SQLITE_NOMEM; - } - } +#ifndef _SQLITE3RBU_H +#define _SQLITE3RBU_H - return zRet; -} +/* #include "sqlite3.h" ** Required for error code definitions ** */ + +#if 0 +extern "C" { +#endif + +typedef struct sqlite3rbu sqlite3rbu; /* -** Finalize the statement passed as the second argument. +** Open an RBU handle. ** -** If the sqlite3_finalize() call indicates that an error occurs, and the -** rbu handle error code is not already set, set the error code and error -** message accordingly. -*/ -static void rbuFinalize(sqlite3rbu *p, sqlite3_stmt *pStmt){ - sqlite3 *db = sqlite3_db_handle(pStmt); - int rc = sqlite3_finalize(pStmt); - if( p->rc==SQLITE_OK && rc!=SQLITE_OK ){ - p->rc = rc; - p->zErrmsg = sqlite3_mprintf("%s", sqlite3_errmsg(db)); - } -} - -/* Determine the type of a table. +** Argument zTarget is the path to the target database. Argument zRbu is +** the path to the RBU database. Each call to this function must be matched +** by a call to sqlite3rbu_close(). When opening the databases, RBU passes +** the SQLITE_CONFIG_URI flag to sqlite3_open_v2(). So if either zTarget +** or zRbu begin with "file:", it will be interpreted as an SQLite +** database URI, not a regular file name. ** -** peType is of type (int*), a pointer to an output parameter of type -** (int). This call sets the output parameter as follows, depending -** on the type of the table specified by parameters dbName and zTbl. +** If the zState argument is passed a NULL value, the RBU extension stores +** the current state of the update (how many rows have been updated, which +** indexes are yet to be updated etc.) within the RBU database itself. This +** can be convenient, as it means that the RBU application does not need to +** organize removing a separate state file after the update is concluded. +** Or, if zState is non-NULL, it must be a path to a database file in which +** the RBU extension can store the state of the update. ** -** RBU_PK_NOTABLE: No such table. -** RBU_PK_NONE: Table has an implicit rowid. -** RBU_PK_IPK: Table has an explicit IPK column. -** RBU_PK_EXTERNAL: Table has an external PK index. -** RBU_PK_WITHOUT_ROWID: Table is WITHOUT ROWID. -** RBU_PK_VTAB: Table is a virtual table. +** When resuming an RBU update, the zState argument must be passed the same +** value as when the RBU update was started. ** -** Argument *piPk is also of type (int*), and also points to an output -** parameter. Unless the table has an external primary key index -** (i.e. unless *peType is set to 3), then *piPk is set to zero. Or, -** if the table does have an external primary key index, then *piPk -** is set to the root page number of the primary key index before -** returning. +** Once the RBU update is finished, the RBU extension does not +** automatically remove any zState database file, even if it created it. ** -** ALGORITHM: +** By default, RBU uses the default VFS to access the files on disk. To +** use a VFS other than the default, an SQLite "file:" URI containing a +** "vfs=..." option may be passed as the zTarget option. ** -** if( no entry exists in sqlite_master ){ -** return RBU_PK_NOTABLE -** }else if( sql for the entry starts with "CREATE VIRTUAL" ){ -** return RBU_PK_VTAB -** }else if( "PRAGMA index_list()" for the table contains a "pk" index ){ -** if( the index that is the pk exists in sqlite_master ){ -** *piPK = rootpage of that index. -** return RBU_PK_EXTERNAL -** }else{ -** return RBU_PK_WITHOUT_ROWID -** } -** }else if( "PRAGMA table_info()" lists one or more "pk" columns ){ -** return RBU_PK_IPK -** }else{ -** return RBU_PK_NONE -** } +** IMPORTANT NOTE FOR ZIPVFS USERS: The RBU extension works with all of +** SQLite's built-in VFSs, including the multiplexor VFS. However it does +** not work out of the box with zipvfs. Refer to the comment describing +** the zipvfs_create_vfs() API below for details on using RBU with zipvfs. */ -static void rbuTableType( - sqlite3rbu *p, - const char *zTab, - int *peType, - int *piTnum, - int *piPk -){ - /* - ** 0) SELECT count(*) FROM sqlite_master where name=%Q AND IsVirtual(%Q) - ** 1) PRAGMA index_list = ? - ** 2) SELECT count(*) FROM sqlite_master where name=%Q - ** 3) PRAGMA table_info = ? - */ - sqlite3_stmt *aStmt[4] = {0, 0, 0, 0}; - - *peType = RBU_PK_NOTABLE; - *piPk = 0; +SQLITE_API sqlite3rbu *sqlite3rbu_open( + const char *zTarget, + const char *zRbu, + const char *zState +); - assert( p->rc==SQLITE_OK ); - p->rc = prepareFreeAndCollectError(p->dbMain, &aStmt[0], &p->zErrmsg, - sqlite3_mprintf( - "SELECT (sql LIKE 'create virtual%%'), rootpage" - " FROM sqlite_master" - " WHERE name=%Q", zTab - )); - if( p->rc!=SQLITE_OK || sqlite3_step(aStmt[0])!=SQLITE_ROW ){ - /* Either an error, or no such table. */ - goto rbuTableType_end; - } - if( sqlite3_column_int(aStmt[0], 0) ){ - *peType = RBU_PK_VTAB; /* virtual table */ - goto rbuTableType_end; - } - *piTnum = sqlite3_column_int(aStmt[0], 1); +/* +** Open an RBU handle to perform an RBU vacuum on database file zTarget. +** An RBU vacuum is similar to SQLite's built-in VACUUM command, except +** that it can be suspended and resumed like an RBU update. +** +** The second argument to this function identifies a database in which +** to store the state of the RBU vacuum operation if it is suspended. The +** first time sqlite3rbu_vacuum() is called, to start an RBU vacuum +** operation, the state database should either not exist or be empty +** (contain no tables). If an RBU vacuum is suspended by calling +** sqlite3rbu_close() on the RBU handle before sqlite3rbu_step() has +** returned SQLITE_DONE, the vacuum state is stored in the state database. +** The vacuum can be resumed by calling this function to open a new RBU +** handle specifying the same target and state databases. +** +** If the second argument passed to this function is NULL, then the +** name of the state database is "-vacuum", where +** is the name of the target database file. In this case, on UNIX, if the +** state database is not already present in the file-system, it is created +** with the same permissions as the target db is made. +** +** This function does not delete the state database after an RBU vacuum +** is completed, even if it created it. However, if the call to +** sqlite3rbu_close() returns any value other than SQLITE_OK, the contents +** of the state tables within the state database are zeroed. This way, +** the next call to sqlite3rbu_vacuum() opens a handle that starts a +** new RBU vacuum operation. +** +** As with sqlite3rbu_open(), Zipvfs users should rever to the comment +** describing the sqlite3rbu_create_vfs() API function below for +** a description of the complications associated with using RBU with +** zipvfs databases. +*/ +SQLITE_API sqlite3rbu *sqlite3rbu_vacuum( + const char *zTarget, + const char *zState +); - p->rc = prepareFreeAndCollectError(p->dbMain, &aStmt[1], &p->zErrmsg, - sqlite3_mprintf("PRAGMA index_list=%Q",zTab) - ); - if( p->rc ) goto rbuTableType_end; - while( sqlite3_step(aStmt[1])==SQLITE_ROW ){ - const u8 *zOrig = sqlite3_column_text(aStmt[1], 3); - const u8 *zIdx = sqlite3_column_text(aStmt[1], 1); - if( zOrig && zIdx && zOrig[0]=='p' ){ - p->rc = prepareFreeAndCollectError(p->dbMain, &aStmt[2], &p->zErrmsg, - sqlite3_mprintf( - "SELECT rootpage FROM sqlite_master WHERE name = %Q", zIdx - )); - if( p->rc==SQLITE_OK ){ - if( sqlite3_step(aStmt[2])==SQLITE_ROW ){ - *piPk = sqlite3_column_int(aStmt[2], 0); - *peType = RBU_PK_EXTERNAL; - }else{ - *peType = RBU_PK_WITHOUT_ROWID; - } - } - goto rbuTableType_end; - } - } +/* +** Configure a limit for the amount of temp space that may be used by +** the RBU handle passed as the first argument. The new limit is specified +** in bytes by the second parameter. If it is positive, the limit is updated. +** If the second parameter to this function is passed zero, then the limit +** is removed entirely. If the second parameter is negative, the limit is +** not modified (this is useful for querying the current limit). +** +** In all cases the returned value is the current limit in bytes (zero +** indicates unlimited). +** +** If the temp space limit is exceeded during operation, an SQLITE_FULL +** error is returned. +*/ +SQLITE_API sqlite3_int64 sqlite3rbu_temp_size_limit(sqlite3rbu*, sqlite3_int64); - p->rc = prepareFreeAndCollectError(p->dbMain, &aStmt[3], &p->zErrmsg, - sqlite3_mprintf("PRAGMA table_info=%Q",zTab) - ); - if( p->rc==SQLITE_OK ){ - while( sqlite3_step(aStmt[3])==SQLITE_ROW ){ - if( sqlite3_column_int(aStmt[3],5)>0 ){ - *peType = RBU_PK_IPK; /* explicit IPK column */ - goto rbuTableType_end; - } - } - *peType = RBU_PK_NONE; - } +/* +** Return the current amount of temp file space, in bytes, currently used by +** the RBU handle passed as the only argument. +*/ +SQLITE_API sqlite3_int64 sqlite3rbu_temp_size(sqlite3rbu*); -rbuTableType_end: { - unsigned int i; - for(i=0; iabIndexed[] array. +** Do some work towards applying the RBU update to the target db. +** +** Return SQLITE_DONE if the update has been completely applied, or +** SQLITE_OK if no error occurs but there remains work to do to apply +** the RBU update. If an error does occur, some other error code is +** returned. +** +** Once a call to sqlite3rbu_step() has returned a value other than +** SQLITE_OK, all subsequent calls on the same RBU handle are no-ops +** that immediately return the same value. */ -static void rbuObjIterCacheIndexedCols(sqlite3rbu *p, RbuObjIter *pIter){ - sqlite3_stmt *pList = 0; - int bIndex = 0; - - if( p->rc==SQLITE_OK ){ - memcpy(pIter->abIndexed, pIter->abTblPk, sizeof(u8)*pIter->nTblCol); - p->rc = prepareFreeAndCollectError(p->dbMain, &pList, &p->zErrmsg, - sqlite3_mprintf("PRAGMA main.index_list = %Q", pIter->zTbl) - ); - } +SQLITE_API int sqlite3rbu_step(sqlite3rbu *pRbu); - pIter->nIndex = 0; - while( p->rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pList) ){ - const char *zIdx = (const char*)sqlite3_column_text(pList, 1); - sqlite3_stmt *pXInfo = 0; - if( zIdx==0 ) break; - p->rc = prepareFreeAndCollectError(p->dbMain, &pXInfo, &p->zErrmsg, - sqlite3_mprintf("PRAGMA main.index_xinfo = %Q", zIdx) - ); - while( p->rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pXInfo) ){ - int iCid = sqlite3_column_int(pXInfo, 1); - if( iCid>=0 ) pIter->abIndexed[iCid] = 1; - } - rbuFinalize(p, pXInfo); - bIndex = 1; - pIter->nIndex++; - } +/* +** Force RBU to save its state to disk. +** +** If a power failure or application crash occurs during an update, following +** system recovery RBU may resume the update from the point at which the state +** was last saved. In other words, from the most recent successful call to +** sqlite3rbu_close() or this function. +** +** SQLITE_OK is returned if successful, or an SQLite error code otherwise. +*/ +SQLITE_API int sqlite3rbu_savestate(sqlite3rbu *pRbu); - if( pIter->eType==RBU_PK_WITHOUT_ROWID ){ - /* "PRAGMA index_list" includes the main PK b-tree */ - pIter->nIndex--; - } +/* +** Close an RBU handle. +** +** If the RBU update has been completely applied, mark the RBU database +** as fully applied. Otherwise, assuming no error has occurred, save the +** current state of the RBU update appliation to the RBU database. +** +** If an error has already occurred as part of an sqlite3rbu_step() +** or sqlite3rbu_open() call, or if one occurs within this function, an +** SQLite error code is returned. Additionally, if pzErrmsg is not NULL, +** *pzErrmsg may be set to point to a buffer containing a utf-8 formatted +** English language error message. It is the responsibility of the caller to +** eventually free any such buffer using sqlite3_free(). +** +** Otherwise, if no error occurs, this function returns SQLITE_OK if the +** update has been partially applied, or SQLITE_DONE if it has been +** completely applied. +*/ +SQLITE_API int sqlite3rbu_close(sqlite3rbu *pRbu, char **pzErrmsg); - rbuFinalize(p, pList); - if( bIndex==0 ) pIter->abIndexed = 0; -} +/* +** Return the total number of key-value operations (inserts, deletes or +** updates) that have been performed on the target database since the +** current RBU update was started. +*/ +SQLITE_API sqlite3_int64 sqlite3rbu_progress(sqlite3rbu *pRbu); +/* +** Obtain permyriadage (permyriadage is to 10000 as percentage is to 100) +** progress indications for the two stages of an RBU update. This API may +** be useful for driving GUI progress indicators and similar. +** +** An RBU update is divided into two stages: +** +** * Stage 1, in which changes are accumulated in an oal/wal file, and +** * Stage 2, in which the contents of the wal file are copied into the +** main database. +** +** The update is visible to non-RBU clients during stage 2. During stage 1 +** non-RBU reader clients may see the original database. +** +** If this API is called during stage 2 of the update, output variable +** (*pnOne) is set to 10000 to indicate that stage 1 has finished and (*pnTwo) +** to a value between 0 and 10000 to indicate the permyriadage progress of +** stage 2. A value of 5000 indicates that stage 2 is half finished, +** 9000 indicates that it is 90% finished, and so on. +** +** If this API is called during stage 1 of the update, output variable +** (*pnTwo) is set to 0 to indicate that stage 2 has not yet started. The +** value to which (*pnOne) is set depends on whether or not the RBU +** database contains an "rbu_count" table. The rbu_count table, if it +** exists, must contain the same columns as the following: +** +** CREATE TABLE rbu_count(tbl TEXT PRIMARY KEY, cnt INTEGER) WITHOUT ROWID; +** +** There must be one row in the table for each source (data_xxx) table within +** the RBU database. The 'tbl' column should contain the name of the source +** table. The 'cnt' column should contain the number of rows within the +** source table. +** +** If the rbu_count table is present and populated correctly and this +** API is called during stage 1, the *pnOne output variable is set to the +** permyriadage progress of the same stage. If the rbu_count table does +** not exist, then (*pnOne) is set to -1 during stage 1. If the rbu_count +** table exists but is not correctly populated, the value of the *pnOne +** output variable during stage 1 is undefined. +*/ +SQLITE_API void sqlite3rbu_bp_progress(sqlite3rbu *pRbu, int *pnOne, int*pnTwo); /* -** If they are not already populated, populate the pIter->azTblCol[], -** pIter->abTblPk[], pIter->nTblCol and pIter->bRowid variables according to -** the table (not index) that the iterator currently points to. +** Obtain an indication as to the current stage of an RBU update or vacuum. +** This function always returns one of the SQLITE_RBU_STATE_XXX constants +** defined in this file. Return values should be interpreted as follows: ** -** Return SQLITE_OK if successful, or an SQLite error code otherwise. If -** an error does occur, an error code and error message are also left in -** the RBU handle. +** SQLITE_RBU_STATE_OAL: +** RBU is currently building a *-oal file. The next call to sqlite3rbu_step() +** may either add further data to the *-oal file, or compute data that will +** be added by a subsequent call. +** +** SQLITE_RBU_STATE_MOVE: +** RBU has finished building the *-oal file. The next call to sqlite3rbu_step() +** will move the *-oal file to the equivalent *-wal path. If the current +** operation is an RBU update, then the updated version of the database +** file will become visible to ordinary SQLite clients following the next +** call to sqlite3rbu_step(). +** +** SQLITE_RBU_STATE_CHECKPOINT: +** RBU is currently performing an incremental checkpoint. The next call to +** sqlite3rbu_step() will copy a page of data from the *-wal file into +** the target database file. +** +** SQLITE_RBU_STATE_DONE: +** The RBU operation has finished. Any subsequent calls to sqlite3rbu_step() +** will immediately return SQLITE_DONE. +** +** SQLITE_RBU_STATE_ERROR: +** An error has occurred. Any subsequent calls to sqlite3rbu_step() will +** immediately return the SQLite error code associated with the error. */ -static int rbuObjIterCacheTableInfo(sqlite3rbu *p, RbuObjIter *pIter){ - if( pIter->azTblCol==0 ){ - sqlite3_stmt *pStmt = 0; - int nCol = 0; - int i; /* for() loop iterator variable */ - int bRbuRowid = 0; /* If input table has column "rbu_rowid" */ - int iOrder = 0; - int iTnum = 0; +#define SQLITE_RBU_STATE_OAL 1 +#define SQLITE_RBU_STATE_MOVE 2 +#define SQLITE_RBU_STATE_CHECKPOINT 3 +#define SQLITE_RBU_STATE_DONE 4 +#define SQLITE_RBU_STATE_ERROR 5 - /* Figure out the type of table this step will deal with. */ - assert( pIter->eType==0 ); - rbuTableType(p, pIter->zTbl, &pIter->eType, &iTnum, &pIter->iPkTnum); - if( p->rc==SQLITE_OK && pIter->eType==RBU_PK_NOTABLE ){ - p->rc = SQLITE_ERROR; - p->zErrmsg = sqlite3_mprintf("no such table: %s", pIter->zTbl); - } - if( p->rc ) return p->rc; - if( pIter->zIdx==0 ) pIter->iTnum = iTnum; +SQLITE_API int sqlite3rbu_state(sqlite3rbu *pRbu); - assert( pIter->eType==RBU_PK_NONE || pIter->eType==RBU_PK_IPK - || pIter->eType==RBU_PK_EXTERNAL || pIter->eType==RBU_PK_WITHOUT_ROWID - || pIter->eType==RBU_PK_VTAB - ); +/* +** Create an RBU VFS named zName that accesses the underlying file-system +** via existing VFS zParent. Or, if the zParent parameter is passed NULL, +** then the new RBU VFS uses the default system VFS to access the file-system. +** The new object is registered as a non-default VFS with SQLite before +** returning. +** +** Part of the RBU implementation uses a custom VFS object. Usually, this +** object is created and deleted automatically by RBU. +** +** The exception is for applications that also use zipvfs. In this case, +** the custom VFS must be explicitly created by the user before the RBU +** handle is opened. The RBU VFS should be installed so that the zipvfs +** VFS uses the RBU VFS, which in turn uses any other VFS layers in use +** (for example multiplexor) to access the file-system. For example, +** to assemble an RBU enabled VFS stack that uses both zipvfs and +** multiplexor (error checking omitted): +** +** // Create a VFS named "multiplex" (not the default). +** sqlite3_multiplex_initialize(0, 0); +** +** // Create an rbu VFS named "rbu" that uses multiplexor. If the +** // second argument were replaced with NULL, the "rbu" VFS would +** // access the file-system via the system default VFS, bypassing the +** // multiplexor. +** sqlite3rbu_create_vfs("rbu", "multiplex"); +** +** // Create a zipvfs VFS named "zipvfs" that uses rbu. +** zipvfs_create_vfs_v3("zipvfs", "rbu", 0, xCompressorAlgorithmDetector); +** +** // Make zipvfs the default VFS. +** sqlite3_vfs_register(sqlite3_vfs_find("zipvfs"), 1); +** +** Because the default VFS created above includes a RBU functionality, it +** may be used by RBU clients. Attempting to use RBU with a zipvfs VFS stack +** that does not include the RBU layer results in an error. +** +** The overhead of adding the "rbu" VFS to the system is negligible for +** non-RBU users. There is no harm in an application accessing the +** file-system via "rbu" all the time, even if it only uses RBU functionality +** occasionally. +*/ +SQLITE_API int sqlite3rbu_create_vfs(const char *zName, const char *zParent); - /* Populate the azTblCol[] and nTblCol variables based on the columns - ** of the input table. Ignore any input table columns that begin with - ** "rbu_". */ - p->rc = prepareFreeAndCollectError(p->dbRbu, &pStmt, &p->zErrmsg, - sqlite3_mprintf("SELECT * FROM '%q'", pIter->zDataTbl) - ); - if( p->rc==SQLITE_OK ){ - nCol = sqlite3_column_count(pStmt); - rbuAllocateIterArrays(p, pIter, nCol); - } - for(i=0; p->rc==SQLITE_OK && irc); - pIter->aiSrcOrder[pIter->nTblCol] = pIter->nTblCol; - pIter->azTblCol[pIter->nTblCol++] = zCopy; - } - else if( 0==sqlite3_stricmp("rbu_rowid", zName) ){ - bRbuRowid = 1; - } - } - sqlite3_finalize(pStmt); - pStmt = 0; +/* +** Deregister and destroy an RBU vfs created by an earlier call to +** sqlite3rbu_create_vfs(). +** +** VFS objects are not reference counted. If a VFS object is destroyed +** before all database handles that use it have been closed, the results +** are undefined. +*/ +SQLITE_API void sqlite3rbu_destroy_vfs(const char *zName); - if( p->rc==SQLITE_OK - && rbuIsVacuum(p)==0 - && bRbuRowid!=(pIter->eType==RBU_PK_VTAB || pIter->eType==RBU_PK_NONE) - ){ - p->rc = SQLITE_ERROR; - p->zErrmsg = sqlite3_mprintf( - "table %q %s rbu_rowid column", pIter->zDataTbl, - (bRbuRowid ? "may not have" : "requires") - ); - } +#if 0 +} /* end of the 'extern "C"' block */ +#endif - /* Check that all non-HIDDEN columns in the destination table are also - ** present in the input table. Populate the abTblPk[], azTblType[] and - ** aiTblOrder[] arrays at the same time. */ - if( p->rc==SQLITE_OK ){ - p->rc = prepareFreeAndCollectError(p->dbMain, &pStmt, &p->zErrmsg, - sqlite3_mprintf("PRAGMA table_info(%Q)", pIter->zTbl) - ); - } - while( p->rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pStmt) ){ - const char *zName = (const char*)sqlite3_column_text(pStmt, 1); - if( zName==0 ) break; /* An OOM - finalize() below returns S_NOMEM */ - for(i=iOrder; inTblCol; i++){ - if( 0==strcmp(zName, pIter->azTblCol[i]) ) break; - } - if( i==pIter->nTblCol ){ - p->rc = SQLITE_ERROR; - p->zErrmsg = sqlite3_mprintf("column missing from %q: %s", - pIter->zDataTbl, zName - ); - }else{ - int iPk = sqlite3_column_int(pStmt, 5); - int bNotNull = sqlite3_column_int(pStmt, 3); - const char *zType = (const char*)sqlite3_column_text(pStmt, 2); +#endif /* _SQLITE3RBU_H */ - if( i!=iOrder ){ - SWAP(int, pIter->aiSrcOrder[i], pIter->aiSrcOrder[iOrder]); - SWAP(char*, pIter->azTblCol[i], pIter->azTblCol[iOrder]); - } +/************** End of sqlite3rbu.h ******************************************/ +/************** Continuing where we left off in sqlite3rbu.c *****************/ - pIter->azTblType[iOrder] = rbuStrndup(zType, &p->rc); - pIter->abTblPk[iOrder] = (iPk!=0); - pIter->abNotNull[iOrder] = (u8)bNotNull || (iPk!=0); - iOrder++; - } - } +#if defined(_WIN32_WCE) +/* #include "windows.h" */ +#endif - rbuFinalize(p, pStmt); - rbuObjIterCacheIndexedCols(p, pIter); - assert( pIter->eType!=RBU_PK_VTAB || pIter->abIndexed==0 ); - assert( pIter->eType!=RBU_PK_VTAB || pIter->nIndex==0 ); - } +/* Maximum number of prepared UPDATE statements held by this module */ +#define SQLITE_RBU_UPDATE_CACHESIZE 16 - return p->rc; -} +/* Delta checksums disabled by default. Compile with -DRBU_ENABLE_DELTA_CKSUM +** to enable checksum verification. +*/ +#ifndef RBU_ENABLE_DELTA_CKSUM +# define RBU_ENABLE_DELTA_CKSUM 0 +#endif /* -** This function constructs and returns a pointer to a nul-terminated -** string containing some SQL clause or list based on one or more of the -** column names currently stored in the pIter->azTblCol[] array. +** Swap two objects of type TYPE. */ -static char *rbuObjIterGetCollist( - sqlite3rbu *p, /* RBU object */ - RbuObjIter *pIter /* Object iterator for column names */ -){ - char *zList = 0; - const char *zSep = ""; - int i; - for(i=0; inTblCol; i++){ - const char *z = pIter->azTblCol[i]; - zList = rbuMPrintf(p, "%z%s\"%w\"", zList, zSep, z); - zSep = ", "; - } - return zList; -} +#if !defined(SQLITE_AMALGAMATION) +# define SWAP(TYPE,A,B) {TYPE t=A; A=B; B=t;} +#endif /* -** This function is used to create a SELECT list (the list of SQL -** expressions that follows a SELECT keyword) for a SELECT statement -** used to read from an data_xxx or rbu_tmp_xxx table while updating the -** index object currently indicated by the iterator object passed as the -** second argument. A "PRAGMA index_xinfo = " statement is used -** to obtain the required information. +** The rbu_state table is used to save the state of a partially applied +** update so that it can be resumed later. The table consists of integer +** keys mapped to values as follows: ** -** If the index is of the following form: +** RBU_STATE_STAGE: +** May be set to integer values 1, 2, 4 or 5. As follows: +** 1: the *-rbu file is currently under construction. +** 2: the *-rbu file has been constructed, but not yet moved +** to the *-wal path. +** 4: the checkpoint is underway. +** 5: the rbu update has been checkpointed. ** -** CREATE INDEX i1 ON t1(c, b COLLATE nocase); +** RBU_STATE_TBL: +** Only valid if STAGE==1. The target database name of the table +** currently being written. ** -** and "t1" is a table with an explicit INTEGER PRIMARY KEY column -** "ipk", the returned string is: +** RBU_STATE_IDX: +** Only valid if STAGE==1. The target database name of the index +** currently being written, or NULL if the main table is currently being +** updated. ** -** "`c` COLLATE 'BINARY', `b` COLLATE 'NOCASE', `ipk` COLLATE 'BINARY'" +** RBU_STATE_ROW: +** Only valid if STAGE==1. Number of rows already processed for the current +** table/index. ** -** As well as the returned string, three other malloc'd strings are -** returned via output parameters. As follows: +** RBU_STATE_PROGRESS: +** Trbul number of sqlite3rbu_step() calls made so far as part of this +** rbu update. ** -** pzImposterCols: ... -** pzImposterPk: ... -** pzWhere: ... +** RBU_STATE_CKPT: +** Valid if STAGE==4. The 64-bit checksum associated with the wal-index +** header created by recovering the *-wal file. This is used to detect +** cases when another client appends frames to the *-wal file in the +** middle of an incremental checkpoint (an incremental checkpoint cannot +** be continued if this happens). +** +** RBU_STATE_COOKIE: +** Valid if STAGE==1. The current change-counter cookie value in the +** target db file. +** +** RBU_STATE_OALSZ: +** Valid if STAGE==1. The size in bytes of the *-oal file. +** +** RBU_STATE_DATATBL: +** Only valid if STAGE==1. The RBU database name of the table +** currently being read. */ -static char *rbuObjIterGetIndexCols( - sqlite3rbu *p, /* RBU object */ - RbuObjIter *pIter, /* Object iterator for column names */ - char **pzImposterCols, /* OUT: Columns for imposter table */ - char **pzImposterPk, /* OUT: Imposter PK clause */ - char **pzWhere, /* OUT: WHERE clause */ - int *pnBind /* OUT: Trbul number of columns */ -){ - int rc = p->rc; /* Error code */ - int rc2; /* sqlite3_finalize() return code */ - char *zRet = 0; /* String to return */ - char *zImpCols = 0; /* String to return via *pzImposterCols */ - char *zImpPK = 0; /* String to return via *pzImposterPK */ - char *zWhere = 0; /* String to return via *pzWhere */ - int nBind = 0; /* Value to return via *pnBind */ - const char *zCom = ""; /* Set to ", " later on */ - const char *zAnd = ""; /* Set to " AND " later on */ - sqlite3_stmt *pXInfo = 0; /* PRAGMA index_xinfo = ? */ +#define RBU_STATE_STAGE 1 +#define RBU_STATE_TBL 2 +#define RBU_STATE_IDX 3 +#define RBU_STATE_ROW 4 +#define RBU_STATE_PROGRESS 5 +#define RBU_STATE_CKPT 6 +#define RBU_STATE_COOKIE 7 +#define RBU_STATE_OALSZ 8 +#define RBU_STATE_PHASEONESTEP 9 +#define RBU_STATE_DATATBL 10 - if( rc==SQLITE_OK ){ - assert( p->zErrmsg==0 ); - rc = prepareFreeAndCollectError(p->dbMain, &pXInfo, &p->zErrmsg, - sqlite3_mprintf("PRAGMA main.index_xinfo = %Q", pIter->zIdx) - ); - } +#define RBU_STAGE_OAL 1 +#define RBU_STAGE_MOVE 2 +#define RBU_STAGE_CAPTURE 3 +#define RBU_STAGE_CKPT 4 +#define RBU_STAGE_DONE 5 - while( rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pXInfo) ){ - int iCid = sqlite3_column_int(pXInfo, 1); - int bDesc = sqlite3_column_int(pXInfo, 3); - const char *zCollate = (const char*)sqlite3_column_text(pXInfo, 4); - const char *zCol; - const char *zType; - if( iCid<0 ){ - /* An integer primary key. If the table has an explicit IPK, use - ** its name. Otherwise, use "rbu_rowid". */ - if( pIter->eType==RBU_PK_IPK ){ - int i; - for(i=0; pIter->abTblPk[i]==0; i++); - assert( inTblCol ); - zCol = pIter->azTblCol[i]; - }else if( rbuIsVacuum(p) ){ - zCol = "_rowid_"; - }else{ - zCol = "rbu_rowid"; - } - zType = "INTEGER"; - }else{ - zCol = pIter->azTblCol[iCid]; - zType = pIter->azTblType[iCid]; - } +#define RBU_CREATE_STATE \ + "CREATE TABLE IF NOT EXISTS %s.rbu_state(k INTEGER PRIMARY KEY, v)" - zRet = sqlite3_mprintf("%z%s\"%w\" COLLATE %Q", zRet, zCom, zCol, zCollate); - if( pIter->bUnique==0 || sqlite3_column_int(pXInfo, 5) ){ - const char *zOrder = (bDesc ? " DESC" : ""); - zImpPK = sqlite3_mprintf("%z%s\"rbu_imp_%d%w\"%s", - zImpPK, zCom, nBind, zCol, zOrder - ); - } - zImpCols = sqlite3_mprintf("%z%s\"rbu_imp_%d%w\" %s COLLATE %Q", - zImpCols, zCom, nBind, zCol, zType, zCollate - ); - zWhere = sqlite3_mprintf( - "%z%s\"rbu_imp_%d%w\" IS ?", zWhere, zAnd, nBind, zCol - ); - if( zRet==0 || zImpPK==0 || zImpCols==0 || zWhere==0 ) rc = SQLITE_NOMEM; - zCom = ", "; - zAnd = " AND "; - nBind++; - } +typedef struct RbuFrame RbuFrame; +typedef struct RbuObjIter RbuObjIter; +typedef struct RbuState RbuState; +typedef struct rbu_vfs rbu_vfs; +typedef struct rbu_file rbu_file; +typedef struct RbuUpdateStmt RbuUpdateStmt; - rc2 = sqlite3_finalize(pXInfo); - if( rc==SQLITE_OK ) rc = rc2; +#if !defined(SQLITE_AMALGAMATION) +typedef unsigned int u32; +typedef unsigned short u16; +typedef unsigned char u8; +typedef sqlite3_int64 i64; +#endif - if( rc!=SQLITE_OK ){ - sqlite3_free(zRet); - sqlite3_free(zImpCols); - sqlite3_free(zImpPK); - sqlite3_free(zWhere); - zRet = 0; - zImpCols = 0; - zImpPK = 0; - zWhere = 0; - p->rc = rc; - } +/* +** These values must match the values defined in wal.c for the equivalent +** locks. These are not magic numbers as they are part of the SQLite file +** format. +*/ +#define WAL_LOCK_WRITE 0 +#define WAL_LOCK_CKPT 1 +#define WAL_LOCK_READ0 3 - *pzImposterCols = zImpCols; - *pzImposterPk = zImpPK; - *pzWhere = zWhere; - *pnBind = nBind; - return zRet; -} +#define SQLITE_FCNTL_RBUCNT 5149216 /* -** Assuming the current table columns are "a", "b" and "c", and the zObj -** paramter is passed "old", return a string of the form: -** -** "old.a, old.b, old.b" -** -** With the column names escaped. -** -** For tables with implicit rowids - RBU_PK_EXTERNAL and RBU_PK_NONE, append -** the text ", old._rowid_" to the returned value. +** A structure to store values read from the rbu_state table in memory. */ -static char *rbuObjIterGetOldlist( - sqlite3rbu *p, - RbuObjIter *pIter, - const char *zObj -){ - char *zList = 0; - if( p->rc==SQLITE_OK && pIter->abIndexed ){ - const char *zS = ""; - int i; - for(i=0; inTblCol; i++){ - if( pIter->abIndexed[i] ){ - const char *zCol = pIter->azTblCol[i]; - zList = sqlite3_mprintf("%z%s%s.\"%w\"", zList, zS, zObj, zCol); - }else{ - zList = sqlite3_mprintf("%z%sNULL", zList, zS); - } - zS = ", "; - if( zList==0 ){ - p->rc = SQLITE_NOMEM; - break; - } - } +struct RbuState { + int eStage; + char *zTbl; + char *zDataTbl; + char *zIdx; + i64 iWalCksum; + int nRow; + i64 nProgress; + u32 iCookie; + i64 iOalSz; + i64 nPhaseOneStep; +}; - /* For a table with implicit rowids, append "old._rowid_" to the list. */ - if( pIter->eType==RBU_PK_EXTERNAL || pIter->eType==RBU_PK_NONE ){ - zList = rbuMPrintf(p, "%z, %s._rowid_", zList, zObj); - } - } - return zList; -} +struct RbuUpdateStmt { + char *zMask; /* Copy of update mask used with pUpdate */ + sqlite3_stmt *pUpdate; /* Last update statement (or NULL) */ + RbuUpdateStmt *pNext; +}; /* -** Return an expression that can be used in a WHERE clause to match the -** primary key of the current table. For example, if the table is: -** -** CREATE TABLE t1(a, b, c, PRIMARY KEY(b, c)); +** An iterator of this type is used to iterate through all objects in +** the target database that require updating. For each such table, the +** iterator visits, in order: ** -** Return the string: +** * the table itself, +** * each index of the table (zero or more points to visit), and +** * a special "cleanup table" state. ** -** "b = ?1 AND c = ?2" +** abIndexed: +** If the table has no indexes on it, abIndexed is set to NULL. Otherwise, +** it points to an array of flags nTblCol elements in size. The flag is +** set for each column that is either a part of the PK or a part of an +** index. Or clear otherwise. +** */ -static char *rbuObjIterGetWhere( - sqlite3rbu *p, - RbuObjIter *pIter -){ - char *zList = 0; - if( pIter->eType==RBU_PK_VTAB || pIter->eType==RBU_PK_NONE ){ - zList = rbuMPrintf(p, "_rowid_ = ?%d", pIter->nTblCol+1); - }else if( pIter->eType==RBU_PK_EXTERNAL ){ - const char *zSep = ""; - int i; - for(i=0; inTblCol; i++){ - if( pIter->abTblPk[i] ){ - zList = rbuMPrintf(p, "%z%sc%d=?%d", zList, zSep, i, i+1); - zSep = " AND "; - } - } - zList = rbuMPrintf(p, - "_rowid_ = (SELECT id FROM rbu_imposter2 WHERE %z)", zList - ); +struct RbuObjIter { + sqlite3_stmt *pTblIter; /* Iterate through tables */ + sqlite3_stmt *pIdxIter; /* Index iterator */ + int nTblCol; /* Size of azTblCol[] array */ + char **azTblCol; /* Array of unquoted target column names */ + char **azTblType; /* Array of target column types */ + int *aiSrcOrder; /* src table col -> target table col */ + u8 *abTblPk; /* Array of flags, set on target PK columns */ + u8 *abNotNull; /* Array of flags, set on NOT NULL columns */ + u8 *abIndexed; /* Array of flags, set on indexed & PK cols */ + int eType; /* Table type - an RBU_PK_XXX value */ - }else{ - const char *zSep = ""; - int i; - for(i=0; inTblCol; i++){ - if( pIter->abTblPk[i] ){ - const char *zCol = pIter->azTblCol[i]; - zList = rbuMPrintf(p, "%z%s\"%w\"=?%d", zList, zSep, zCol, i+1); - zSep = " AND "; - } - } - } - return zList; -} + /* Output variables. zTbl==0 implies EOF. */ + int bCleanup; /* True in "cleanup" state */ + const char *zTbl; /* Name of target db table */ + const char *zDataTbl; /* Name of rbu db table (or null) */ + const char *zIdx; /* Name of target db index (or null) */ + int iTnum; /* Root page of current object */ + int iPkTnum; /* If eType==EXTERNAL, root of PK index */ + int bUnique; /* Current index is unique */ + int nIndex; /* Number of aux. indexes on table zTbl */ -/* -** The SELECT statement iterating through the keys for the current object -** (p->objiter.pSelect) currently points to a valid row. However, there -** is something wrong with the rbu_control value in the rbu_control value -** stored in the (p->nCol+1)'th column. Set the error code and error message -** of the RBU handle to something reflecting this. -*/ -static void rbuBadControlError(sqlite3rbu *p){ - p->rc = SQLITE_ERROR; - p->zErrmsg = sqlite3_mprintf("invalid rbu_control value"); -} + /* Statements created by rbuObjIterPrepareAll() */ + int nCol; /* Number of columns in current object */ + sqlite3_stmt *pSelect; /* Source data */ + sqlite3_stmt *pInsert; /* Statement for INSERT operations */ + sqlite3_stmt *pDelete; /* Statement for DELETE ops */ + sqlite3_stmt *pTmpInsert; /* Insert into rbu_tmp_$zDataTbl */ + /* Last UPDATE used (for PK b-tree updates only), or NULL. */ + RbuUpdateStmt *pRbuUpdate; +}; /* -** Return a nul-terminated string containing the comma separated list of -** assignments that should be included following the "SET" keyword of -** an UPDATE statement used to update the table object that the iterator -** passed as the second argument currently points to if the rbu_control -** column of the data_xxx table entry is set to zMask. -** -** The memory for the returned string is obtained from sqlite3_malloc(). -** It is the responsibility of the caller to eventually free it using -** sqlite3_free(). +** Values for RbuObjIter.eType ** -** If an OOM error is encountered when allocating space for the new -** string, an error code is left in the rbu handle passed as the first -** argument and NULL is returned. Or, if an error has already occurred -** when this function is called, NULL is returned immediately, without -** attempting the allocation or modifying the stored error code. +** 0: Table does not exist (error) +** 1: Table has an implicit rowid. +** 2: Table has an explicit IPK column. +** 3: Table has an external PK index. +** 4: Table is WITHOUT ROWID. +** 5: Table is a virtual table. */ -static char *rbuObjIterGetSetlist( - sqlite3rbu *p, - RbuObjIter *pIter, - const char *zMask -){ - char *zList = 0; - if( p->rc==SQLITE_OK ){ - int i; +#define RBU_PK_NOTABLE 0 +#define RBU_PK_NONE 1 +#define RBU_PK_IPK 2 +#define RBU_PK_EXTERNAL 3 +#define RBU_PK_WITHOUT_ROWID 4 +#define RBU_PK_VTAB 5 - if( (int)strlen(zMask)!=pIter->nTblCol ){ - rbuBadControlError(p); - }else{ - const char *zSep = ""; - for(i=0; inTblCol; i++){ - char c = zMask[pIter->aiSrcOrder[i]]; - if( c=='x' ){ - zList = rbuMPrintf(p, "%z%s\"%w\"=?%d", - zList, zSep, pIter->azTblCol[i], i+1 - ); - zSep = ", "; - } - else if( c=='d' ){ - zList = rbuMPrintf(p, "%z%s\"%w\"=rbu_delta(\"%w\", ?%d)", - zList, zSep, pIter->azTblCol[i], pIter->azTblCol[i], i+1 - ); - zSep = ", "; - } - else if( c=='f' ){ - zList = rbuMPrintf(p, "%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)", - zList, zSep, pIter->azTblCol[i], pIter->azTblCol[i], i+1 - ); - zSep = ", "; - } - } - } - } - return zList; -} /* -** Return a nul-terminated string consisting of nByte comma separated -** "?" expressions. For example, if nByte is 3, return a pointer to -** a buffer containing the string "?,?,?". -** -** The memory for the returned string is obtained from sqlite3_malloc(). -** It is the responsibility of the caller to eventually free it using -** sqlite3_free(). -** -** If an OOM error is encountered when allocating space for the new -** string, an error code is left in the rbu handle passed as the first -** argument and NULL is returned. Or, if an error has already occurred -** when this function is called, NULL is returned immediately, without -** attempting the allocation or modifying the stored error code. +** Within the RBU_STAGE_OAL stage, each call to sqlite3rbu_step() performs +** one of the following operations. */ -static char *rbuObjIterGetBindlist(sqlite3rbu *p, int nBind){ - char *zRet = 0; - int nByte = nBind*2 + 1; +#define RBU_INSERT 1 /* Insert on a main table b-tree */ +#define RBU_DELETE 2 /* Delete a row from a main table b-tree */ +#define RBU_REPLACE 3 /* Delete and then insert a row */ +#define RBU_IDX_DELETE 4 /* Delete a row from an aux. index b-tree */ +#define RBU_IDX_INSERT 5 /* Insert on an aux. index b-tree */ - zRet = (char*)rbuMalloc(p, nByte); - if( zRet ){ - int i; - for(i=0; izIdx==0 ); - if( p->rc==SQLITE_OK ){ - const char *zSep = "PRIMARY KEY("; - sqlite3_stmt *pXList = 0; /* PRAGMA index_list = (pIter->zTbl) */ - sqlite3_stmt *pXInfo = 0; /* PRAGMA index_xinfo = */ - - p->rc = prepareFreeAndCollectError(p->dbMain, &pXList, &p->zErrmsg, - sqlite3_mprintf("PRAGMA main.index_list = %Q", pIter->zTbl) - ); - while( p->rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pXList) ){ - const char *zOrig = (const char*)sqlite3_column_text(pXList,3); - if( zOrig && strcmp(zOrig, "pk")==0 ){ - const char *zIdx = (const char*)sqlite3_column_text(pXList,1); - if( zIdx ){ - p->rc = prepareFreeAndCollectError(p->dbMain, &pXInfo, &p->zErrmsg, - sqlite3_mprintf("PRAGMA main.index_xinfo = %Q", zIdx) - ); - } - break; - } - } - rbuFinalize(p, pXList); - - while( p->rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pXInfo) ){ - if( sqlite3_column_int(pXInfo, 5) ){ - /* int iCid = sqlite3_column_int(pXInfo, 0); */ - const char *zCol = (const char*)sqlite3_column_text(pXInfo, 2); - const char *zDesc = sqlite3_column_int(pXInfo, 3) ? " DESC" : ""; - z = rbuMPrintf(p, "%z%s\"%w\"%s", z, zSep, zCol, zDesc); - zSep = ", "; - } - } - z = rbuMPrintf(p, "%z)", z); - rbuFinalize(p, pXInfo); - } - return z; -} +struct RbuFrame { + u32 iDbPage; + u32 iWalFrame; +}; /* -** This function creates the second imposter table used when writing to -** a table b-tree where the table has an external primary key. If the -** iterator passed as the second argument does not currently point to -** a table (not index) with an external primary key, this function is a -** no-op. +** RBU handle. ** -** Assuming the iterator does point to a table with an external PK, this -** function creates a WITHOUT ROWID imposter table named "rbu_imposter2" -** used to access that PK index. For example, if the target table is -** declared as follows: +** nPhaseOneStep: +** If the RBU database contains an rbu_count table, this value is set to +** a running estimate of the number of b-tree operations required to +** finish populating the *-oal file. This allows the sqlite3_bp_progress() +** API to calculate the permyriadage progress of populating the *-oal file +** using the formula: ** -** CREATE TABLE t1(a, b TEXT, c REAL, PRIMARY KEY(b, c)); +** permyriadage = (10000 * nProgress) / nPhaseOneStep ** -** then the imposter table schema is: +** nPhaseOneStep is initialized to the sum of: ** -** CREATE TABLE rbu_imposter2(c1 TEXT, c2 REAL, id INTEGER) WITHOUT ROWID; +** nRow * (nIndex + 1) +** +** for all source tables in the RBU database, where nRow is the number +** of rows in the source table and nIndex the number of indexes on the +** corresponding target database table. ** +** This estimate is accurate if the RBU update consists entirely of +** INSERT operations. However, it is inaccurate if: +** +** * the RBU update contains any UPDATE operations. If the PK specified +** for an UPDATE operation does not exist in the target table, then +** no b-tree operations are required on index b-trees. Or if the +** specified PK does exist, then (nIndex*2) such operations are +** required (one delete and one insert on each index b-tree). +** +** * the RBU update contains any DELETE operations for which the specified +** PK does not exist. In this case no operations are required on index +** b-trees. +** +** * the RBU update contains REPLACE operations. These are similar to +** UPDATE operations. +** +** nPhaseOneStep is updated to account for the conditions above during the +** first pass of each source table. The updated nPhaseOneStep value is +** stored in the rbu_state table if the RBU update is suspended. */ -static void rbuCreateImposterTable2(sqlite3rbu *p, RbuObjIter *pIter){ - if( p->rc==SQLITE_OK && pIter->eType==RBU_PK_EXTERNAL ){ - int tnum = pIter->iPkTnum; /* Root page of PK index */ - sqlite3_stmt *pQuery = 0; /* SELECT name ... WHERE rootpage = $tnum */ - const char *zIdx = 0; /* Name of PK index */ - sqlite3_stmt *pXInfo = 0; /* PRAGMA main.index_xinfo = $zIdx */ - const char *zComma = ""; - char *zCols = 0; /* Used to build up list of table cols */ - char *zPk = 0; /* Used to build up table PK declaration */ - - /* Figure out the name of the primary key index for the current table. - ** This is needed for the argument to "PRAGMA index_xinfo". Set - ** zIdx to point to a nul-terminated string containing this name. */ - p->rc = prepareAndCollectError(p->dbMain, &pQuery, &p->zErrmsg, - "SELECT name FROM sqlite_master WHERE rootpage = ?" - ); - if( p->rc==SQLITE_OK ){ - sqlite3_bind_int(pQuery, 1, tnum); - if( SQLITE_ROW==sqlite3_step(pQuery) ){ - zIdx = (const char*)sqlite3_column_text(pQuery, 0); - } - } - if( zIdx ){ - p->rc = prepareFreeAndCollectError(p->dbMain, &pXInfo, &p->zErrmsg, - sqlite3_mprintf("PRAGMA main.index_xinfo = %Q", zIdx) - ); - } - rbuFinalize(p, pQuery); +struct sqlite3rbu { + int eStage; /* Value of RBU_STATE_STAGE field */ + sqlite3 *dbMain; /* target database handle */ + sqlite3 *dbRbu; /* rbu database handle */ + char *zTarget; /* Path to target db */ + char *zRbu; /* Path to rbu db */ + char *zState; /* Path to state db (or NULL if zRbu) */ + char zStateDb[5]; /* Db name for state ("stat" or "main") */ + int rc; /* Value returned by last rbu_step() call */ + char *zErrmsg; /* Error message if rc!=SQLITE_OK */ + int nStep; /* Rows processed for current object */ + int nProgress; /* Rows processed for all objects */ + RbuObjIter objiter; /* Iterator for skipping through tbl/idx */ + const char *zVfsName; /* Name of automatically created rbu vfs */ + rbu_file *pTargetFd; /* File handle open on target db */ + int nPagePerSector; /* Pages per sector for pTargetFd */ + i64 iOalSz; + i64 nPhaseOneStep; - while( p->rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pXInfo) ){ - int bKey = sqlite3_column_int(pXInfo, 5); - if( bKey ){ - int iCid = sqlite3_column_int(pXInfo, 1); - int bDesc = sqlite3_column_int(pXInfo, 3); - const char *zCollate = (const char*)sqlite3_column_text(pXInfo, 4); - zCols = rbuMPrintf(p, "%z%sc%d %s COLLATE %s", zCols, zComma, - iCid, pIter->azTblType[iCid], zCollate - ); - zPk = rbuMPrintf(p, "%z%sc%d%s", zPk, zComma, iCid, bDesc?" DESC":""); - zComma = ", "; - } - } - zCols = rbuMPrintf(p, "%z, id INTEGER", zCols); - rbuFinalize(p, pXInfo); + /* The following state variables are used as part of the incremental + ** checkpoint stage (eStage==RBU_STAGE_CKPT). See comments surrounding + ** function rbuSetupCheckpoint() for details. */ + u32 iMaxFrame; /* Largest iWalFrame value in aFrame[] */ + u32 mLock; + int nFrame; /* Entries in aFrame[] array */ + int nFrameAlloc; /* Allocated size of aFrame[] array */ + RbuFrame *aFrame; + int pgsz; + u8 *aBuf; + i64 iWalCksum; + i64 szTemp; /* Current size of all temp files in use */ + i64 szTempLimit; /* Total size limit for temp files */ - sqlite3_test_control(SQLITE_TESTCTRL_IMPOSTER, p->dbMain, "main", 1, tnum); - rbuMPrintfExec(p, p->dbMain, - "CREATE TABLE rbu_imposter2(%z, PRIMARY KEY(%z)) WITHOUT ROWID", - zCols, zPk - ); - sqlite3_test_control(SQLITE_TESTCTRL_IMPOSTER, p->dbMain, "main", 0, 0); - } -} + /* Used in RBU vacuum mode only */ + int nRbu; /* Number of RBU VFS in the stack */ + rbu_file *pRbuFd; /* Fd for main db of dbRbu */ +}; /* -** If an error has already occurred when this function is called, it -** immediately returns zero (without doing any work). Or, if an error -** occurs during the execution of this function, it sets the error code -** in the sqlite3rbu object indicated by the first argument and returns -** zero. -** -** The iterator passed as the second argument is guaranteed to point to -** a table (not an index) when this function is called. This function -** attempts to create any imposter table required to write to the main -** table b-tree of the table before returning. Non-zero is returned if -** an imposter table are created, or zero otherwise. +** An rbu VFS is implemented using an instance of this structure. ** -** An imposter table is required in all cases except RBU_PK_VTAB. Only -** virtual tables are written to directly. The imposter table has the -** same schema as the actual target table (less any UNIQUE constraints). -** More precisely, the "same schema" means the same columns, types, -** collation sequences. For tables that do not have an external PRIMARY -** KEY, it also means the same PRIMARY KEY declaration. +** Variable pRbu is only non-NULL for automatically created RBU VFS objects. +** It is NULL for RBU VFS objects created explicitly using +** sqlite3rbu_create_vfs(). It is used to track the total amount of temp +** space used by the RBU handle. */ -static void rbuCreateImposterTable(sqlite3rbu *p, RbuObjIter *pIter){ - if( p->rc==SQLITE_OK && pIter->eType!=RBU_PK_VTAB ){ - int tnum = pIter->iTnum; - const char *zComma = ""; - char *zSql = 0; - int iCol; - sqlite3_test_control(SQLITE_TESTCTRL_IMPOSTER, p->dbMain, "main", 0, 1); - - for(iCol=0; p->rc==SQLITE_OK && iColnTblCol; iCol++){ - const char *zPk = ""; - const char *zCol = pIter->azTblCol[iCol]; - const char *zColl = 0; +struct rbu_vfs { + sqlite3_vfs base; /* rbu VFS shim methods */ + sqlite3_vfs *pRealVfs; /* Underlying VFS */ + sqlite3_mutex *mutex; /* Mutex to protect pMain */ + sqlite3rbu *pRbu; /* Owner RBU object */ + rbu_file *pMain; /* List of main db files */ + rbu_file *pMainRbu; /* List of main db files with pRbu!=0 */ +}; - p->rc = sqlite3_table_column_metadata( - p->dbMain, "main", pIter->zTbl, zCol, 0, &zColl, 0, 0, 0 - ); +/* +** Each file opened by an rbu VFS is represented by an instance of +** the following structure. +** +** If this is a temporary file (pRbu!=0 && flags&DELETE_ON_CLOSE), variable +** "sz" is set to the current size of the database file. +*/ +struct rbu_file { + sqlite3_file base; /* sqlite3_file methods */ + sqlite3_file *pReal; /* Underlying file handle */ + rbu_vfs *pRbuVfs; /* Pointer to the rbu_vfs object */ + sqlite3rbu *pRbu; /* Pointer to rbu object (rbu target only) */ + i64 sz; /* Size of file in bytes (temp only) */ - if( pIter->eType==RBU_PK_IPK && pIter->abTblPk[iCol] ){ - /* If the target table column is an "INTEGER PRIMARY KEY", add - ** "PRIMARY KEY" to the imposter table column declaration. */ - zPk = "PRIMARY KEY "; - } - zSql = rbuMPrintf(p, "%z%s\"%w\" %s %sCOLLATE %s%s", - zSql, zComma, zCol, pIter->azTblType[iCol], zPk, zColl, - (pIter->abNotNull[iCol] ? " NOT NULL" : "") - ); - zComma = ", "; - } + int openFlags; /* Flags this file was opened with */ + u32 iCookie; /* Cookie value for main db files */ + u8 iWriteVer; /* "write-version" value for main db files */ + u8 bNolock; /* True to fail EXCLUSIVE locks */ - if( pIter->eType==RBU_PK_WITHOUT_ROWID ){ - char *zPk = rbuWithoutRowidPK(p, pIter); - if( zPk ){ - zSql = rbuMPrintf(p, "%z, %z", zSql, zPk); - } - } + int nShm; /* Number of entries in apShm[] array */ + char **apShm; /* Array of mmap'd *-shm regions */ + char *zDel; /* Delete this when closing file */ - sqlite3_test_control(SQLITE_TESTCTRL_IMPOSTER, p->dbMain, "main", 1, tnum); - rbuMPrintfExec(p, p->dbMain, "CREATE TABLE \"rbu_imp_%w\"(%z)%s", - pIter->zTbl, zSql, - (pIter->eType==RBU_PK_WITHOUT_ROWID ? " WITHOUT ROWID" : "") - ); - sqlite3_test_control(SQLITE_TESTCTRL_IMPOSTER, p->dbMain, "main", 0, 0); - } -} + const char *zWal; /* Wal filename for this main db file */ + rbu_file *pWalFd; /* Wal file descriptor for this main db */ + rbu_file *pMainNext; /* Next MAIN_DB file */ + rbu_file *pMainRbuNext; /* Next MAIN_DB file with pRbu!=0 */ +}; /* -** Prepare a statement used to insert rows into the "rbu_tmp_xxx" table. -** Specifically a statement of the form: +** True for an RBU vacuum handle, or false otherwise. +*/ +#define rbuIsVacuum(p) ((p)->zTarget==0) + + +/************************************************************************* +** The following three functions, found below: ** -** INSERT INTO rbu_tmp_xxx VALUES(?, ?, ? ...); +** rbuDeltaGetInt() +** rbuDeltaChecksum() +** rbuDeltaApply() ** -** The number of bound variables is equal to the number of columns in -** the target table, plus one (for the rbu_control column), plus one more -** (for the rbu_rowid column) if the target table is an implicit IPK or -** virtual table. +** are lifted from the fossil source code (http://fossil-scm.org). They +** are used to implement the scalar SQL function rbu_fossil_delta(). */ -static void rbuObjIterPrepareTmpInsert( - sqlite3rbu *p, - RbuObjIter *pIter, - const char *zCollist, - const char *zRbuRowid -){ - int bRbuRowid = (pIter->eType==RBU_PK_EXTERNAL || pIter->eType==RBU_PK_NONE); - char *zBind = rbuObjIterGetBindlist(p, pIter->nTblCol + 1 + bRbuRowid); - if( zBind ){ - assert( pIter->pTmpInsert==0 ); - p->rc = prepareFreeAndCollectError( - p->dbRbu, &pIter->pTmpInsert, &p->zErrmsg, sqlite3_mprintf( - "INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)", - p->zStateDb, pIter->zDataTbl, zCollist, zRbuRowid, zBind - )); - } -} - -static void rbuTmpInsertFunc( - sqlite3_context *pCtx, - int nVal, - sqlite3_value **apVal -){ - sqlite3rbu *p = sqlite3_user_data(pCtx); - int rc = SQLITE_OK; - int i; - assert( sqlite3_value_int(apVal[0])!=0 - || p->objiter.eType==RBU_PK_EXTERNAL - || p->objiter.eType==RBU_PK_NONE - ); - if( sqlite3_value_int(apVal[0])!=0 ){ - p->nPhaseOneStep += p->objiter.nIndex; +/* +** Read bytes from *pz and convert them into a positive integer. When +** finished, leave *pz pointing to the first character past the end of +** the integer. The *pLen parameter holds the length of the string +** in *pz and is decremented once for each character in the integer. +*/ +static unsigned int rbuDeltaGetInt(const char **pz, int *pLen){ + static const signed char zValue[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1, + -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, 36, + -1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, -1, 63, -1, + }; + unsigned int v = 0; + int c; + unsigned char *z = (unsigned char*)*pz; + unsigned char *zStart = z; + while( (c = zValue[0x7f&*(z++)])>=0 ){ + v = (v<<6) + c; } + z--; + *pLen -= z - zStart; + *pz = (char*)z; + return v; +} - for(i=0; rc==SQLITE_OK && iobjiter.pTmpInsert, i+1, apVal[i]); +#if RBU_ENABLE_DELTA_CKSUM +/* +** Compute a 32-bit checksum on the N-byte buffer. Return the result. +*/ +static unsigned int rbuDeltaChecksum(const char *zIn, size_t N){ + const unsigned char *z = (const unsigned char *)zIn; + unsigned sum0 = 0; + unsigned sum1 = 0; + unsigned sum2 = 0; + unsigned sum3 = 0; + while(N >= 16){ + sum0 += ((unsigned)z[0] + z[4] + z[8] + z[12]); + sum1 += ((unsigned)z[1] + z[5] + z[9] + z[13]); + sum2 += ((unsigned)z[2] + z[6] + z[10]+ z[14]); + sum3 += ((unsigned)z[3] + z[7] + z[11]+ z[15]); + z += 16; + N -= 16; } - if( rc==SQLITE_OK ){ - sqlite3_step(p->objiter.pTmpInsert); - rc = sqlite3_reset(p->objiter.pTmpInsert); + while(N >= 4){ + sum0 += z[0]; + sum1 += z[1]; + sum2 += z[2]; + sum3 += z[3]; + z += 4; + N -= 4; } - - if( rc!=SQLITE_OK ){ - sqlite3_result_error_code(pCtx, rc); + sum3 += (sum2 << 8) + (sum1 << 16) + (sum0 << 24); + switch(N){ + case 3: sum3 += (z[2] << 8); + case 2: sum3 += (z[1] << 16); + case 1: sum3 += (z[0] << 24); + default: ; } + return sum3; } +#endif /* -** Ensure that the SQLite statement handles required to update the -** target database object currently indicated by the iterator passed -** as the second argument are available. +** Apply a delta. +** +** The output buffer should be big enough to hold the whole output +** file and a NUL terminator at the end. The delta_output_size() +** routine will determine this size for you. +** +** The delta string should be null-terminated. But the delta string +** may contain embedded NUL characters (if the input and output are +** binary files) so we also have to pass in the length of the delta in +** the lenDelta parameter. +** +** This function returns the size of the output file in bytes (excluding +** the final NUL terminator character). Except, if the delta string is +** malformed or intended for use with a source file other than zSrc, +** then this routine returns -1. +** +** Refer to the delta_create() documentation above for a description +** of the delta file format. */ -static int rbuObjIterPrepareAll( - sqlite3rbu *p, - RbuObjIter *pIter, - int nOffset /* Add "LIMIT -1 OFFSET $nOffset" to SELECT */ +static int rbuDeltaApply( + const char *zSrc, /* The source or pattern file */ + int lenSrc, /* Length of the source file */ + const char *zDelta, /* Delta to apply to the pattern */ + int lenDelta, /* Length of the delta */ + char *zOut /* Write the output into this preallocated buffer */ ){ - assert( pIter->bCleanup==0 ); - if( pIter->pSelect==0 && rbuObjIterCacheTableInfo(p, pIter)==SQLITE_OK ){ - const int tnum = pIter->iTnum; - char *zCollist = 0; /* List of indexed columns */ - char **pz = &p->zErrmsg; - const char *zIdx = pIter->zIdx; - char *zLimit = 0; - - if( nOffset ){ - zLimit = sqlite3_mprintf(" LIMIT -1 OFFSET %d", nOffset); - if( !zLimit ) p->rc = SQLITE_NOMEM; - } - - if( zIdx ){ - const char *zTbl = pIter->zTbl; - char *zImposterCols = 0; /* Columns for imposter table */ - char *zImposterPK = 0; /* Primary key declaration for imposter */ - char *zWhere = 0; /* WHERE clause on PK columns */ - char *zBind = 0; - int nBind = 0; - - assert( pIter->eType!=RBU_PK_VTAB ); - zCollist = rbuObjIterGetIndexCols( - p, pIter, &zImposterCols, &zImposterPK, &zWhere, &nBind - ); - zBind = rbuObjIterGetBindlist(p, nBind); - - /* Create the imposter table used to write to this index. */ - sqlite3_test_control(SQLITE_TESTCTRL_IMPOSTER, p->dbMain, "main", 0, 1); - sqlite3_test_control(SQLITE_TESTCTRL_IMPOSTER, p->dbMain, "main", 1,tnum); - rbuMPrintfExec(p, p->dbMain, - "CREATE TABLE \"rbu_imp_%w\"( %s, PRIMARY KEY( %s ) ) WITHOUT ROWID", - zTbl, zImposterCols, zImposterPK - ); - sqlite3_test_control(SQLITE_TESTCTRL_IMPOSTER, p->dbMain, "main", 0, 0); - - /* Create the statement to insert index entries */ - pIter->nCol = nBind; - if( p->rc==SQLITE_OK ){ - p->rc = prepareFreeAndCollectError( - p->dbMain, &pIter->pInsert, &p->zErrmsg, - sqlite3_mprintf("INSERT INTO \"rbu_imp_%w\" VALUES(%s)", zTbl, zBind) - ); - } - - /* And to delete index entries */ - if( rbuIsVacuum(p)==0 && p->rc==SQLITE_OK ){ - p->rc = prepareFreeAndCollectError( - p->dbMain, &pIter->pDelete, &p->zErrmsg, - sqlite3_mprintf("DELETE FROM \"rbu_imp_%w\" WHERE %s", zTbl, zWhere) - ); - } - - /* Create the SELECT statement to read keys in sorted order */ - if( p->rc==SQLITE_OK ){ - char *zSql; - if( rbuIsVacuum(p) ){ - zSql = sqlite3_mprintf( - "SELECT %s, 0 AS rbu_control FROM '%q' ORDER BY %s%s", - zCollist, - pIter->zDataTbl, - zCollist, zLimit - ); - }else + unsigned int limit; + unsigned int total = 0; +#if RBU_ENABLE_DELTA_CKSUM + char *zOrigOut = zOut; +#endif - if( pIter->eType==RBU_PK_EXTERNAL || pIter->eType==RBU_PK_NONE ){ - zSql = sqlite3_mprintf( - "SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' ORDER BY %s%s", - zCollist, p->zStateDb, pIter->zDataTbl, - zCollist, zLimit - ); - }else{ - zSql = sqlite3_mprintf( - "SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' " - "UNION ALL " - "SELECT %s, rbu_control FROM '%q' " - "WHERE typeof(rbu_control)='integer' AND rbu_control!=1 " - "ORDER BY %s%s", - zCollist, p->zStateDb, pIter->zDataTbl, - zCollist, pIter->zDataTbl, - zCollist, zLimit - ); + limit = rbuDeltaGetInt(&zDelta, &lenDelta); + if( *zDelta!='\n' ){ + /* ERROR: size integer not terminated by "\n" */ + return -1; + } + zDelta++; lenDelta--; + while( *zDelta && lenDelta>0 ){ + unsigned int cnt, ofst; + cnt = rbuDeltaGetInt(&zDelta, &lenDelta); + switch( zDelta[0] ){ + case '@': { + zDelta++; lenDelta--; + ofst = rbuDeltaGetInt(&zDelta, &lenDelta); + if( lenDelta>0 && zDelta[0]!=',' ){ + /* ERROR: copy command not terminated by ',' */ + return -1; } - p->rc = prepareFreeAndCollectError(p->dbRbu, &pIter->pSelect, pz, zSql); - } - - sqlite3_free(zImposterCols); - sqlite3_free(zImposterPK); - sqlite3_free(zWhere); - sqlite3_free(zBind); - }else{ - int bRbuRowid = (pIter->eType==RBU_PK_VTAB) - ||(pIter->eType==RBU_PK_NONE) - ||(pIter->eType==RBU_PK_EXTERNAL && rbuIsVacuum(p)); - const char *zTbl = pIter->zTbl; /* Table this step applies to */ - const char *zWrite; /* Imposter table name */ - - char *zBindings = rbuObjIterGetBindlist(p, pIter->nTblCol + bRbuRowid); - char *zWhere = rbuObjIterGetWhere(p, pIter); - char *zOldlist = rbuObjIterGetOldlist(p, pIter, "old"); - char *zNewlist = rbuObjIterGetOldlist(p, pIter, "new"); - - zCollist = rbuObjIterGetCollist(p, pIter); - pIter->nCol = pIter->nTblCol; - - /* Create the imposter table or tables (if required). */ - rbuCreateImposterTable(p, pIter); - rbuCreateImposterTable2(p, pIter); - zWrite = (pIter->eType==RBU_PK_VTAB ? "" : "rbu_imp_"); - - /* Create the INSERT statement to write to the target PK b-tree */ - if( p->rc==SQLITE_OK ){ - p->rc = prepareFreeAndCollectError(p->dbMain, &pIter->pInsert, pz, - sqlite3_mprintf( - "INSERT INTO \"%s%w\"(%s%s) VALUES(%s)", - zWrite, zTbl, zCollist, (bRbuRowid ? ", _rowid_" : ""), zBindings - ) - ); - } - - /* Create the DELETE statement to write to the target PK b-tree. - ** Because it only performs INSERT operations, this is not required for - ** an rbu vacuum handle. */ - if( rbuIsVacuum(p)==0 && p->rc==SQLITE_OK ){ - p->rc = prepareFreeAndCollectError(p->dbMain, &pIter->pDelete, pz, - sqlite3_mprintf( - "DELETE FROM \"%s%w\" WHERE %s", zWrite, zTbl, zWhere - ) - ); + zDelta++; lenDelta--; + total += cnt; + if( total>limit ){ + /* ERROR: copy exceeds output file size */ + return -1; + } + if( (int)(ofst+cnt) > lenSrc ){ + /* ERROR: copy extends past end of input */ + return -1; + } + memcpy(zOut, &zSrc[ofst], cnt); + zOut += cnt; + break; } - - if( rbuIsVacuum(p)==0 && pIter->abIndexed ){ - const char *zRbuRowid = ""; - if( pIter->eType==RBU_PK_EXTERNAL || pIter->eType==RBU_PK_NONE ){ - zRbuRowid = ", rbu_rowid"; + case ':': { + zDelta++; lenDelta--; + total += cnt; + if( total>limit ){ + /* ERROR: insert command gives an output larger than predicted */ + return -1; } - - /* Create the rbu_tmp_xxx table and the triggers to populate it. */ - rbuMPrintfExec(p, p->dbRbu, - "CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS " - "SELECT *%s FROM '%q' WHERE 0;" - , p->zStateDb, pIter->zDataTbl - , (pIter->eType==RBU_PK_EXTERNAL ? ", 0 AS rbu_rowid" : "") - , pIter->zDataTbl - ); - - rbuMPrintfExec(p, p->dbMain, - "CREATE TEMP TRIGGER rbu_delete_tr BEFORE DELETE ON \"%s%w\" " - "BEGIN " - " SELECT rbu_tmp_insert(3, %s);" - "END;" - - "CREATE TEMP TRIGGER rbu_update1_tr BEFORE UPDATE ON \"%s%w\" " - "BEGIN " - " SELECT rbu_tmp_insert(3, %s);" - "END;" - - "CREATE TEMP TRIGGER rbu_update2_tr AFTER UPDATE ON \"%s%w\" " - "BEGIN " - " SELECT rbu_tmp_insert(4, %s);" - "END;", - zWrite, zTbl, zOldlist, - zWrite, zTbl, zOldlist, - zWrite, zTbl, zNewlist - ); - - if( pIter->eType==RBU_PK_EXTERNAL || pIter->eType==RBU_PK_NONE ){ - rbuMPrintfExec(p, p->dbMain, - "CREATE TEMP TRIGGER rbu_insert_tr AFTER INSERT ON \"%s%w\" " - "BEGIN " - " SELECT rbu_tmp_insert(0, %s);" - "END;", - zWrite, zTbl, zNewlist - ); + if( (int)cnt>lenDelta ){ + /* ERROR: insert count exceeds size of delta */ + return -1; } - - rbuObjIterPrepareTmpInsert(p, pIter, zCollist, zRbuRowid); + memcpy(zOut, zDelta, cnt); + zOut += cnt; + zDelta += cnt; + lenDelta -= cnt; + break; } - - /* Create the SELECT statement to read keys from data_xxx */ - if( p->rc==SQLITE_OK ){ - const char *zRbuRowid = ""; - if( bRbuRowid ){ - zRbuRowid = rbuIsVacuum(p) ? ",_rowid_ " : ",rbu_rowid"; + case ';': { + zDelta++; lenDelta--; + zOut[0] = 0; +#if RBU_ENABLE_DELTA_CKSUM + if( cnt!=rbuDeltaChecksum(zOrigOut, total) ){ + /* ERROR: bad checksum */ + return -1; } - p->rc = prepareFreeAndCollectError(p->dbRbu, &pIter->pSelect, pz, - sqlite3_mprintf( - "SELECT %s,%s rbu_control%s FROM '%q'%s", - zCollist, - (rbuIsVacuum(p) ? "0 AS " : ""), - zRbuRowid, - pIter->zDataTbl, zLimit - ) - ); +#endif + if( total!=limit ){ + /* ERROR: generated size does not match predicted size */ + return -1; + } + return total; + } + default: { + /* ERROR: unknown delta operator */ + return -1; } - - sqlite3_free(zWhere); - sqlite3_free(zOldlist); - sqlite3_free(zNewlist); - sqlite3_free(zBindings); } - sqlite3_free(zCollist); - sqlite3_free(zLimit); } - - return p->rc; + /* ERROR: unterminated delta */ + return -1; +} + +static int rbuDeltaOutputSize(const char *zDelta, int lenDelta){ + int size; + size = rbuDeltaGetInt(&zDelta, &lenDelta); + if( *zDelta!='\n' ){ + /* ERROR: size integer not terminated by "\n" */ + return -1; + } + return size; } /* -** Set output variable *ppStmt to point to an UPDATE statement that may -** be used to update the imposter table for the main table b-tree of the -** table object that pIter currently points to, assuming that the -** rbu_control column of the data_xyz table contains zMask. -** -** If the zMask string does not specify any columns to update, then this -** is not an error. Output variable *ppStmt is set to NULL in this case. +** End of code taken from fossil. +*************************************************************************/ + +/* +** Implementation of SQL scalar function rbu_fossil_delta(). +** +** This function applies a fossil delta patch to a blob. Exactly two +** arguments must be passed to this function. The first is the blob to +** patch and the second the patch to apply. If no error occurs, this +** function returns the patched blob. */ -static int rbuGetUpdateStmt( - sqlite3rbu *p, /* RBU handle */ - RbuObjIter *pIter, /* Object iterator */ - const char *zMask, /* rbu_control value ('x.x.') */ - sqlite3_stmt **ppStmt /* OUT: UPDATE statement handle */ +static void rbuFossilDeltaFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv ){ - RbuUpdateStmt **pp; - RbuUpdateStmt *pUp = 0; - int nUp = 0; - - /* In case an error occurs */ - *ppStmt = 0; - - /* Search for an existing statement. If one is found, shift it to the front - ** of the LRU queue and return immediately. Otherwise, leave nUp pointing - ** to the number of statements currently in the cache and pUp to the - ** last object in the list. */ - for(pp=&pIter->pRbuUpdate; *pp; pp=&((*pp)->pNext)){ - pUp = *pp; - if( strcmp(pUp->zMask, zMask)==0 ){ - *pp = pUp->pNext; - pUp->pNext = pIter->pRbuUpdate; - pIter->pRbuUpdate = pUp; - *ppStmt = pUp->pUpdate; - return SQLITE_OK; - } - nUp++; - } - assert( pUp==0 || pUp->pNext==0 ); + const char *aDelta; + int nDelta; + const char *aOrig; + int nOrig; - if( nUp>=SQLITE_RBU_UPDATE_CACHESIZE ){ - for(pp=&pIter->pRbuUpdate; *pp!=pUp; pp=&((*pp)->pNext)); - *pp = 0; - sqlite3_finalize(pUp->pUpdate); - pUp->pUpdate = 0; - }else{ - pUp = (RbuUpdateStmt*)rbuMalloc(p, sizeof(RbuUpdateStmt)+pIter->nTblCol+1); - } + int nOut; + int nOut2; + char *aOut; - if( pUp ){ - char *zWhere = rbuObjIterGetWhere(p, pIter); - char *zSet = rbuObjIterGetSetlist(p, pIter, zMask); - char *zUpdate = 0; + assert( argc==2 ); - pUp->zMask = (char*)&pUp[1]; - memcpy(pUp->zMask, zMask, pIter->nTblCol); - pUp->pNext = pIter->pRbuUpdate; - pIter->pRbuUpdate = pUp; + nOrig = sqlite3_value_bytes(argv[0]); + aOrig = (const char*)sqlite3_value_blob(argv[0]); + nDelta = sqlite3_value_bytes(argv[1]); + aDelta = (const char*)sqlite3_value_blob(argv[1]); - if( zSet ){ - const char *zPrefix = ""; + /* Figure out the size of the output */ + nOut = rbuDeltaOutputSize(aDelta, nDelta); + if( nOut<0 ){ + sqlite3_result_error(context, "corrupt fossil delta", -1); + return; + } - if( pIter->eType!=RBU_PK_VTAB ) zPrefix = "rbu_imp_"; - zUpdate = sqlite3_mprintf("UPDATE \"%s%w\" SET %s WHERE %s", - zPrefix, pIter->zTbl, zSet, zWhere - ); - p->rc = prepareFreeAndCollectError( - p->dbMain, &pUp->pUpdate, &p->zErrmsg, zUpdate - ); - *ppStmt = pUp->pUpdate; + aOut = sqlite3_malloc(nOut+1); + if( aOut==0 ){ + sqlite3_result_error_nomem(context); + }else{ + nOut2 = rbuDeltaApply(aOrig, nOrig, aDelta, nDelta, aOut); + if( nOut2!=nOut ){ + sqlite3_result_error(context, "corrupt fossil delta", -1); + }else{ + sqlite3_result_blob(context, aOut, nOut, sqlite3_free); } - sqlite3_free(zWhere); - sqlite3_free(zSet); } - - return p->rc; } -static sqlite3 *rbuOpenDbhandle( - sqlite3rbu *p, - const char *zName, - int bUseVfs + +/* +** Prepare the SQL statement in buffer zSql against database handle db. +** If successful, set *ppStmt to point to the new statement and return +** SQLITE_OK. +** +** Otherwise, if an error does occur, set *ppStmt to NULL and return +** an SQLite error code. Additionally, set output variable *pzErrmsg to +** point to a buffer containing an error message. It is the responsibility +** of the caller to (eventually) free this buffer using sqlite3_free(). +*/ +static int prepareAndCollectError( + sqlite3 *db, + sqlite3_stmt **ppStmt, + char **pzErrmsg, + const char *zSql ){ - sqlite3 *db = 0; - if( p->rc==SQLITE_OK ){ - const int flags = SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE|SQLITE_OPEN_URI; - p->rc = sqlite3_open_v2(zName, &db, flags, bUseVfs ? p->zVfsName : 0); - if( p->rc ){ - p->zErrmsg = sqlite3_mprintf("%s", sqlite3_errmsg(db)); - sqlite3_close(db); - db = 0; - } + int rc = sqlite3_prepare_v2(db, zSql, -1, ppStmt, 0); + if( rc!=SQLITE_OK ){ + *pzErrmsg = sqlite3_mprintf("%s", sqlite3_errmsg(db)); + *ppStmt = 0; } - return db; + return rc; } /* -** Free an RbuState object allocated by rbuLoadState(). +** Reset the SQL statement passed as the first argument. Return a copy +** of the value returned by sqlite3_reset(). +** +** If an error has occurred, then set *pzErrmsg to point to a buffer +** containing an error message. It is the responsibility of the caller +** to eventually free this buffer using sqlite3_free(). */ -static void rbuFreeState(RbuState *p){ - if( p ){ - sqlite3_free(p->zTbl); - sqlite3_free(p->zIdx); - sqlite3_free(p); +static int resetAndCollectError(sqlite3_stmt *pStmt, char **pzErrmsg){ + int rc = sqlite3_reset(pStmt); + if( rc!=SQLITE_OK ){ + *pzErrmsg = sqlite3_mprintf("%s", sqlite3_errmsg(sqlite3_db_handle(pStmt))); } + return rc; } /* -** Allocate an RbuState object and load the contents of the rbu_state -** table into it. Return a pointer to the new object. It is the -** responsibility of the caller to eventually free the object using -** sqlite3_free(). +** Unless it is NULL, argument zSql points to a buffer allocated using +** sqlite3_malloc containing an SQL statement. This function prepares the SQL +** statement against database db and frees the buffer. If statement +** compilation is successful, *ppStmt is set to point to the new statement +** handle and SQLITE_OK is returned. ** -** If an error occurs, leave an error code and message in the rbu handle -** and return NULL. +** Otherwise, if an error occurs, *ppStmt is set to NULL and an error code +** returned. In this case, *pzErrmsg may also be set to point to an error +** message. It is the responsibility of the caller to free this error message +** buffer using sqlite3_free(). +** +** If argument zSql is NULL, this function assumes that an OOM has occurred. +** In this case SQLITE_NOMEM is returned and *ppStmt set to NULL. */ -static RbuState *rbuLoadState(sqlite3rbu *p){ - RbuState *pRet = 0; - sqlite3_stmt *pStmt = 0; +static int prepareFreeAndCollectError( + sqlite3 *db, + sqlite3_stmt **ppStmt, + char **pzErrmsg, + char *zSql +){ int rc; - int rc2; - - pRet = (RbuState*)rbuMalloc(p, sizeof(RbuState)); - if( pRet==0 ) return 0; - - rc = prepareFreeAndCollectError(p->dbRbu, &pStmt, &p->zErrmsg, - sqlite3_mprintf("SELECT k, v FROM %s.rbu_state", p->zStateDb) - ); - while( rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pStmt) ){ - switch( sqlite3_column_int(pStmt, 0) ){ - case RBU_STATE_STAGE: - pRet->eStage = sqlite3_column_int(pStmt, 1); - if( pRet->eStage!=RBU_STAGE_OAL - && pRet->eStage!=RBU_STAGE_MOVE - && pRet->eStage!=RBU_STAGE_CKPT - ){ - p->rc = SQLITE_CORRUPT; - } - break; - - case RBU_STATE_TBL: - pRet->zTbl = rbuStrndup((char*)sqlite3_column_text(pStmt, 1), &rc); - break; - - case RBU_STATE_IDX: - pRet->zIdx = rbuStrndup((char*)sqlite3_column_text(pStmt, 1), &rc); - break; - - case RBU_STATE_ROW: - pRet->nRow = sqlite3_column_int(pStmt, 1); - break; - - case RBU_STATE_PROGRESS: - pRet->nProgress = sqlite3_column_int64(pStmt, 1); - break; - - case RBU_STATE_CKPT: - pRet->iWalCksum = sqlite3_column_int64(pStmt, 1); - break; - - case RBU_STATE_COOKIE: - pRet->iCookie = (u32)sqlite3_column_int64(pStmt, 1); - break; - - case RBU_STATE_OALSZ: - pRet->iOalSz = (u32)sqlite3_column_int64(pStmt, 1); - break; - - case RBU_STATE_PHASEONESTEP: - pRet->nPhaseOneStep = sqlite3_column_int64(pStmt, 1); - break; - - default: - rc = SQLITE_CORRUPT; - break; - } + assert( *pzErrmsg==0 ); + if( zSql==0 ){ + rc = SQLITE_NOMEM; + *ppStmt = 0; + }else{ + rc = prepareAndCollectError(db, ppStmt, pzErrmsg, zSql); + sqlite3_free(zSql); } - rc2 = sqlite3_finalize(pStmt); - if( rc==SQLITE_OK ) rc = rc2; - - p->rc = rc; - return pRet; + return rc; } - /* -** Open the database handle and attach the RBU database as "rbu". If an -** error occurs, leave an error code and message in the RBU handle. +** Free the RbuObjIter.azTblCol[] and RbuObjIter.abTblPk[] arrays allocated +** by an earlier call to rbuObjIterCacheTableInfo(). */ -static void rbuOpenDatabase(sqlite3rbu *p, int *pbRetry){ - assert( p->rc || (p->dbMain==0 && p->dbRbu==0) ); - assert( p->rc || rbuIsVacuum(p) || p->zTarget!=0 ); - - /* Open the RBU database */ - p->dbRbu = rbuOpenDbhandle(p, p->zRbu, 1); - - if( p->rc==SQLITE_OK && rbuIsVacuum(p) ){ - sqlite3_file_control(p->dbRbu, "main", SQLITE_FCNTL_RBUCNT, (void*)p); - if( p->zState==0 ){ - const char *zFile = sqlite3_db_filename(p->dbRbu, "main"); - p->zState = rbuMPrintf(p, "file://%s-vacuum?modeof=%s", zFile, zFile); - } +static void rbuObjIterFreeCols(RbuObjIter *pIter){ + int i; + for(i=0; inTblCol; i++){ + sqlite3_free(pIter->azTblCol[i]); + sqlite3_free(pIter->azTblType[i]); } + sqlite3_free(pIter->azTblCol); + pIter->azTblCol = 0; + pIter->azTblType = 0; + pIter->aiSrcOrder = 0; + pIter->abTblPk = 0; + pIter->abNotNull = 0; + pIter->nTblCol = 0; + pIter->eType = 0; /* Invalid value */ +} - /* If using separate RBU and state databases, attach the state database to - ** the RBU db handle now. */ - if( p->zState ){ - rbuMPrintfExec(p, p->dbRbu, "ATTACH %Q AS stat", p->zState); - memcpy(p->zStateDb, "stat", 4); - }else{ - memcpy(p->zStateDb, "main", 4); - } +/* +** Finalize all statements and free all allocations that are specific to +** the current object (table/index pair). +*/ +static void rbuObjIterClearStatements(RbuObjIter *pIter){ + RbuUpdateStmt *pUp; -#if 0 - if( p->rc==SQLITE_OK && rbuIsVacuum(p) ){ - p->rc = sqlite3_exec(p->dbRbu, "BEGIN", 0, 0, 0); + sqlite3_finalize(pIter->pSelect); + sqlite3_finalize(pIter->pInsert); + sqlite3_finalize(pIter->pDelete); + sqlite3_finalize(pIter->pTmpInsert); + pUp = pIter->pRbuUpdate; + while( pUp ){ + RbuUpdateStmt *pTmp = pUp->pNext; + sqlite3_finalize(pUp->pUpdate); + sqlite3_free(pUp); + pUp = pTmp; } -#endif + + pIter->pSelect = 0; + pIter->pInsert = 0; + pIter->pDelete = 0; + pIter->pRbuUpdate = 0; + pIter->pTmpInsert = 0; + pIter->nCol = 0; +} - /* If it has not already been created, create the rbu_state table */ - rbuMPrintfExec(p, p->dbRbu, RBU_CREATE_STATE, p->zStateDb); +/* +** Clean up any resources allocated as part of the iterator object passed +** as the only argument. +*/ +static void rbuObjIterFinalize(RbuObjIter *pIter){ + rbuObjIterClearStatements(pIter); + sqlite3_finalize(pIter->pTblIter); + sqlite3_finalize(pIter->pIdxIter); + rbuObjIterFreeCols(pIter); + memset(pIter, 0, sizeof(RbuObjIter)); +} -#if 0 - if( rbuIsVacuum(p) ){ - if( p->rc==SQLITE_OK ){ - int rc2; - int bOk = 0; - sqlite3_stmt *pCnt = 0; - p->rc = prepareAndCollectError(p->dbRbu, &pCnt, &p->zErrmsg, - "SELECT count(*) FROM stat.sqlite_master" +/* +** Advance the iterator to the next position. +** +** If no error occurs, SQLITE_OK is returned and the iterator is left +** pointing to the next entry. Otherwise, an error code and message is +** left in the RBU handle passed as the first argument. A copy of the +** error code is returned. +*/ +static int rbuObjIterNext(sqlite3rbu *p, RbuObjIter *pIter){ + int rc = p->rc; + if( rc==SQLITE_OK ){ + + /* Free any SQLite statements used while processing the previous object */ + rbuObjIterClearStatements(pIter); + if( pIter->zIdx==0 ){ + rc = sqlite3_exec(p->dbMain, + "DROP TRIGGER IF EXISTS temp.rbu_insert_tr;" + "DROP TRIGGER IF EXISTS temp.rbu_update1_tr;" + "DROP TRIGGER IF EXISTS temp.rbu_update2_tr;" + "DROP TRIGGER IF EXISTS temp.rbu_delete_tr;" + , 0, 0, &p->zErrmsg ); - if( p->rc==SQLITE_OK - && sqlite3_step(pCnt)==SQLITE_ROW - && 1==sqlite3_column_int(pCnt, 0) - ){ - bOk = 1; - } - rc2 = sqlite3_finalize(pCnt); - if( p->rc==SQLITE_OK ) p->rc = rc2; + } - if( p->rc==SQLITE_OK && bOk==0 ){ - p->rc = SQLITE_ERROR; - p->zErrmsg = sqlite3_mprintf("invalid state database"); - } - - if( p->rc==SQLITE_OK ){ - p->rc = sqlite3_exec(p->dbRbu, "COMMIT", 0, 0, 0); + if( rc==SQLITE_OK ){ + if( pIter->bCleanup ){ + rbuObjIterFreeCols(pIter); + pIter->bCleanup = 0; + rc = sqlite3_step(pIter->pTblIter); + if( rc!=SQLITE_ROW ){ + rc = resetAndCollectError(pIter->pTblIter, &p->zErrmsg); + pIter->zTbl = 0; + }else{ + pIter->zTbl = (const char*)sqlite3_column_text(pIter->pTblIter, 0); + pIter->zDataTbl = (const char*)sqlite3_column_text(pIter->pTblIter,1); + rc = (pIter->zDataTbl && pIter->zTbl) ? SQLITE_OK : SQLITE_NOMEM; + } + }else{ + if( pIter->zIdx==0 ){ + sqlite3_stmt *pIdx = pIter->pIdxIter; + rc = sqlite3_bind_text(pIdx, 1, pIter->zTbl, -1, SQLITE_STATIC); + } + if( rc==SQLITE_OK ){ + rc = sqlite3_step(pIter->pIdxIter); + if( rc!=SQLITE_ROW ){ + rc = resetAndCollectError(pIter->pIdxIter, &p->zErrmsg); + pIter->bCleanup = 1; + pIter->zIdx = 0; + }else{ + pIter->zIdx = (const char*)sqlite3_column_text(pIter->pIdxIter, 0); + pIter->iTnum = sqlite3_column_int(pIter->pIdxIter, 1); + pIter->bUnique = sqlite3_column_int(pIter->pIdxIter, 2); + rc = pIter->zIdx ? SQLITE_OK : SQLITE_NOMEM; + } + } } } } -#endif - if( p->rc==SQLITE_OK && rbuIsVacuum(p) ){ - int bOpen = 0; - int rc; - p->nRbu = 0; - p->pRbuFd = 0; - rc = sqlite3_file_control(p->dbRbu, "main", SQLITE_FCNTL_RBUCNT, (void*)p); - if( rc!=SQLITE_NOTFOUND ) p->rc = rc; - if( p->eStage>=RBU_STAGE_MOVE ){ - bOpen = 1; - }else{ - RbuState *pState = rbuLoadState(p); - if( pState ){ - bOpen = (pState->eStage>=RBU_STAGE_MOVE); - rbuFreeState(pState); - } - } - if( bOpen ) p->dbMain = rbuOpenDbhandle(p, p->zRbu, p->nRbu<=1); + if( rc!=SQLITE_OK ){ + rbuObjIterFinalize(pIter); + p->rc = rc; } + return rc; +} - p->eStage = 0; - if( p->rc==SQLITE_OK && p->dbMain==0 ){ - if( !rbuIsVacuum(p) ){ - p->dbMain = rbuOpenDbhandle(p, p->zTarget, 1); - }else if( p->pRbuFd->pWalFd ){ - if( pbRetry ){ - p->pRbuFd->bNolock = 0; - sqlite3_close(p->dbRbu); - sqlite3_close(p->dbMain); - p->dbMain = 0; - p->dbRbu = 0; - *pbRetry = 1; - return; + +/* +** The implementation of the rbu_target_name() SQL function. This function +** accepts one or two arguments. The first argument is the name of a table - +** the name of a table in the RBU database. The second, if it is present, is 1 +** for a view or 0 for a table. +** +** For a non-vacuum RBU handle, if the table name matches the pattern: +** +** data[0-9]_ +** +** where is any sequence of 1 or more characters, is returned. +** Otherwise, if the only argument does not match the above pattern, an SQL +** NULL is returned. +** +** "data_t1" -> "t1" +** "data0123_t2" -> "t2" +** "dataAB_t3" -> NULL +** +** For an rbu vacuum handle, a copy of the first argument is returned if +** the second argument is either missing or 0 (not a view). +*/ +static void rbuTargetNameFunc( + sqlite3_context *pCtx, + int argc, + sqlite3_value **argv +){ + sqlite3rbu *p = sqlite3_user_data(pCtx); + const char *zIn; + assert( argc==1 || argc==2 ); + + zIn = (const char*)sqlite3_value_text(argv[0]); + if( zIn ){ + if( rbuIsVacuum(p) ){ + if( argc==1 || 0==sqlite3_value_int(argv[1]) ){ + sqlite3_result_text(pCtx, zIn, -1, SQLITE_STATIC); } - p->rc = SQLITE_ERROR; - p->zErrmsg = sqlite3_mprintf("cannot vacuum wal mode database"); }else{ - char *zTarget; - char *zExtra = 0; - if( strlen(p->zRbu)>=5 && 0==memcmp("file:", p->zRbu, 5) ){ - zExtra = &p->zRbu[5]; - while( *zExtra ){ - if( *zExtra++=='?' ) break; + if( strlen(zIn)>4 && memcmp("data", zIn, 4)==0 ){ + int i; + for(i=4; zIn[i]>='0' && zIn[i]<='9'; i++); + if( zIn[i]=='_' && zIn[i+1] ){ + sqlite3_result_text(pCtx, &zIn[i+1], -1, SQLITE_STATIC); } - if( *zExtra=='\0' ) zExtra = 0; - } - - zTarget = sqlite3_mprintf("file:%s-vacuum?rbu_memory=1%s%s", - sqlite3_db_filename(p->dbRbu, "main"), - (zExtra==0 ? "" : "&"), (zExtra==0 ? "" : zExtra) - ); - - if( zTarget==0 ){ - p->rc = SQLITE_NOMEM; - return; } - p->dbMain = rbuOpenDbhandle(p, zTarget, p->nRbu<=1); - sqlite3_free(zTarget); } } +} - if( p->rc==SQLITE_OK ){ - p->rc = sqlite3_create_function(p->dbMain, - "rbu_tmp_insert", -1, SQLITE_UTF8, (void*)p, rbuTmpInsertFunc, 0, 0 - ); - } +/* +** Initialize the iterator structure passed as the second argument. +** +** If no error occurs, SQLITE_OK is returned and the iterator is left +** pointing to the first entry. Otherwise, an error code and message is +** left in the RBU handle passed as the first argument. A copy of the +** error code is returned. +*/ +static int rbuObjIterFirst(sqlite3rbu *p, RbuObjIter *pIter){ + int rc; + memset(pIter, 0, sizeof(RbuObjIter)); - if( p->rc==SQLITE_OK ){ - p->rc = sqlite3_create_function(p->dbMain, - "rbu_fossil_delta", 2, SQLITE_UTF8, 0, rbuFossilDeltaFunc, 0, 0 - ); - } + rc = prepareFreeAndCollectError(p->dbRbu, &pIter->pTblIter, &p->zErrmsg, + sqlite3_mprintf( + "SELECT rbu_target_name(name, type='view') AS target, name " + "FROM sqlite_master " + "WHERE type IN ('table', 'view') AND target IS NOT NULL " + " %s " + "ORDER BY name" + , rbuIsVacuum(p) ? "AND rootpage!=0 AND rootpage IS NOT NULL" : "")); - if( p->rc==SQLITE_OK ){ - p->rc = sqlite3_create_function(p->dbRbu, - "rbu_target_name", -1, SQLITE_UTF8, (void*)p, rbuTargetNameFunc, 0, 0 + if( rc==SQLITE_OK ){ + rc = prepareAndCollectError(p->dbMain, &pIter->pIdxIter, &p->zErrmsg, + "SELECT name, rootpage, sql IS NULL OR substr(8, 6)=='UNIQUE' " + " FROM main.sqlite_master " + " WHERE type='index' AND tbl_name = ?" ); } - if( p->rc==SQLITE_OK ){ - p->rc = sqlite3_file_control(p->dbMain, "main", SQLITE_FCNTL_RBU, (void*)p); - } - rbuMPrintfExec(p, p->dbMain, "SELECT * FROM sqlite_master"); - - /* Mark the database file just opened as an RBU target database. If - ** this call returns SQLITE_NOTFOUND, then the RBU vfs is not in use. - ** This is an error. */ - if( p->rc==SQLITE_OK ){ - p->rc = sqlite3_file_control(p->dbMain, "main", SQLITE_FCNTL_RBU, (void*)p); - } - - if( p->rc==SQLITE_NOTFOUND ){ - p->rc = SQLITE_ERROR; - p->zErrmsg = sqlite3_mprintf("rbu vfs not found"); - } + pIter->bCleanup = 1; + p->rc = rc; + return rbuObjIterNext(p, pIter); } /* -** This routine is a copy of the sqlite3FileSuffix3() routine from the core. -** It is a no-op unless SQLITE_ENABLE_8_3_NAMES is defined. -** -** If SQLITE_ENABLE_8_3_NAMES is set at compile-time and if the database -** filename in zBaseFilename is a URI with the "8_3_names=1" parameter and -** if filename in z[] has a suffix (a.k.a. "extension") that is longer than -** three characters, then shorten the suffix on z[] to be the last three -** characters of the original suffix. -** -** If SQLITE_ENABLE_8_3_NAMES is set to 2 at compile-time, then always -** do the suffix shortening regardless of URI parameter. -** -** Examples: +** This is a wrapper around "sqlite3_mprintf(zFmt, ...)". If an OOM occurs, +** an error code is stored in the RBU handle passed as the first argument. ** -** test.db-journal => test.nal -** test.db-wal => test.wal -** test.db-shm => test.shm -** test.db-mj7f3319fa => test.9fa +** If an error has already occurred (p->rc is already set to something other +** than SQLITE_OK), then this function returns NULL without modifying the +** stored error code. In this case it still calls sqlite3_free() on any +** printf() parameters associated with %z conversions. */ -static void rbuFileSuffix3(const char *zBase, char *z){ -#ifdef SQLITE_ENABLE_8_3_NAMES -#if SQLITE_ENABLE_8_3_NAMES<2 - if( sqlite3_uri_boolean(zBase, "8_3_names", 0) ) -#endif - { - int i, sz; - sz = (int)strlen(z)&0xffffff; - for(i=sz-1; i>0 && z[i]!='/' && z[i]!='.'; i--){} - if( z[i]=='.' && sz>i+4 ) memmove(&z[i+1], &z[sz-3], 4); +static char *rbuMPrintf(sqlite3rbu *p, const char *zFmt, ...){ + char *zSql = 0; + va_list ap; + va_start(ap, zFmt); + zSql = sqlite3_vmprintf(zFmt, ap); + if( p->rc==SQLITE_OK ){ + if( zSql==0 ) p->rc = SQLITE_NOMEM; + }else{ + sqlite3_free(zSql); + zSql = 0; } -#endif + va_end(ap); + return zSql; } /* -** Return the current wal-index header checksum for the target database -** as a 64-bit integer. +** Argument zFmt is a sqlite3_mprintf() style format string. The trailing +** arguments are the usual subsitution values. This function performs +** the printf() style substitutions and executes the result as an SQL +** statement on the RBU handles database. ** -** The checksum is store in the first page of xShmMap memory as an 8-byte -** blob starting at byte offset 40. +** If an error occurs, an error code and error message is stored in the +** RBU handle. If an error has already occurred when this function is +** called, it is a no-op. */ -static i64 rbuShmChecksum(sqlite3rbu *p){ - i64 iRet = 0; +static int rbuMPrintfExec(sqlite3rbu *p, sqlite3 *db, const char *zFmt, ...){ + va_list ap; + char *zSql; + va_start(ap, zFmt); + zSql = sqlite3_vmprintf(zFmt, ap); if( p->rc==SQLITE_OK ){ - sqlite3_file *pDb = p->pTargetFd->pReal; - u32 volatile *ptr; - p->rc = pDb->pMethods->xShmMap(pDb, 0, 32*1024, 0, (void volatile**)&ptr); - if( p->rc==SQLITE_OK ){ - iRet = ((i64)ptr[10] << 32) + ptr[11]; + if( zSql==0 ){ + p->rc = SQLITE_NOMEM; + }else{ + p->rc = sqlite3_exec(db, zSql, 0, 0, &p->zErrmsg); } } - return iRet; + sqlite3_free(zSql); + va_end(ap); + return p->rc; } /* -** This function is called as part of initializing or reinitializing an -** incremental checkpoint. -** -** It populates the sqlite3rbu.aFrame[] array with the set of -** (wal frame -> db page) copy operations required to checkpoint the -** current wal file, and obtains the set of shm locks required to safely -** perform the copy operations directly on the file-system. +** Attempt to allocate and return a pointer to a zeroed block of nByte +** bytes. ** -** If argument pState is not NULL, then the incremental checkpoint is -** being resumed. In this case, if the checksum of the wal-index-header -** following recovery is not the same as the checksum saved in the RbuState -** object, then the rbu handle is set to DONE state. This occurs if some -** other client appends a transaction to the wal file in the middle of -** an incremental checkpoint. +** If an error (i.e. an OOM condition) occurs, return NULL and leave an +** error code in the rbu handle passed as the first argument. Or, if an +** error has already occurred when this function is called, return NULL +** immediately without attempting the allocation or modifying the stored +** error code. */ -static void rbuSetupCheckpoint(sqlite3rbu *p, RbuState *pState){ - - /* If pState is NULL, then the wal file may not have been opened and - ** recovered. Running a read-statement here to ensure that doing so - ** does not interfere with the "capture" process below. */ - if( pState==0 ){ - p->eStage = 0; - if( p->rc==SQLITE_OK ){ - p->rc = sqlite3_exec(p->dbMain, "SELECT * FROM sqlite_master", 0, 0, 0); - } - } - - /* Assuming no error has occurred, run a "restart" checkpoint with the - ** sqlite3rbu.eStage variable set to CAPTURE. This turns on the following - ** special behaviour in the rbu VFS: - ** - ** * If the exclusive shm WRITER or READ0 lock cannot be obtained, - ** the checkpoint fails with SQLITE_BUSY (normally SQLite would - ** proceed with running a passive checkpoint instead of failing). - ** - ** * Attempts to read from the *-wal file or write to the database file - ** do not perform any IO. Instead, the frame/page combinations that - ** would be read/written are recorded in the sqlite3rbu.aFrame[] - ** array. - ** - ** * Calls to xShmLock(UNLOCK) to release the exclusive shm WRITER, - ** READ0 and CHECKPOINT locks taken as part of the checkpoint are - ** no-ops. These locks will not be released until the connection - ** is closed. - ** - ** * Attempting to xSync() the database file causes an SQLITE_INTERNAL - ** error. - ** - ** As a result, unless an error (i.e. OOM or SQLITE_BUSY) occurs, the - ** checkpoint below fails with SQLITE_INTERNAL, and leaves the aFrame[] - ** array populated with a set of (frame -> page) mappings. Because the - ** WRITER, CHECKPOINT and READ0 locks are still held, it is safe to copy - ** data from the wal file into the database file according to the - ** contents of aFrame[]. - */ - if( p->rc==SQLITE_OK ){ - int rc2; - p->eStage = RBU_STAGE_CAPTURE; - rc2 = sqlite3_exec(p->dbMain, "PRAGMA main.wal_checkpoint=restart", 0, 0,0); - if( rc2!=SQLITE_INTERNAL ) p->rc = rc2; - } - - if( p->rc==SQLITE_OK && p->nFrame>0 ){ - p->eStage = RBU_STAGE_CKPT; - p->nStep = (pState ? pState->nRow : 0); - p->aBuf = rbuMalloc(p, p->pgsz); - p->iWalCksum = rbuShmChecksum(p); - } - +static void *rbuMalloc(sqlite3rbu *p, int nByte){ + void *pRet = 0; if( p->rc==SQLITE_OK ){ - if( p->nFrame==0 || (pState && pState->iWalCksum!=p->iWalCksum) ){ - p->rc = SQLITE_DONE; - p->eStage = RBU_STAGE_DONE; + assert( nByte>0 ); + pRet = sqlite3_malloc64(nByte); + if( pRet==0 ){ + p->rc = SQLITE_NOMEM; }else{ - int nSectorSize; - sqlite3_file *pDb = p->pTargetFd->pReal; - sqlite3_file *pWal = p->pTargetFd->pWalFd->pReal; - assert( p->nPagePerSector==0 ); - nSectorSize = pDb->pMethods->xSectorSize(pDb); - if( nSectorSize>p->pgsz ){ - p->nPagePerSector = nSectorSize / p->pgsz; - }else{ - p->nPagePerSector = 1; - } - - /* Call xSync() on the wal file. This causes SQLite to sync the - ** directory in which the target database and the wal file reside, in - ** case it has not been synced since the rename() call in - ** rbuMoveOalFile(). */ - p->rc = pWal->pMethods->xSync(pWal, SQLITE_SYNC_NORMAL); + memset(pRet, 0, nByte); } } + return pRet; } + /* -** Called when iAmt bytes are read from offset iOff of the wal file while -** the rbu object is in capture mode. Record the frame number of the frame -** being read in the aFrame[] array. +** Allocate and zero the pIter->azTblCol[] and abTblPk[] arrays so that +** there is room for at least nCol elements. If an OOM occurs, store an +** error code in the RBU handle passed as the first argument. */ -static int rbuCaptureWalRead(sqlite3rbu *pRbu, i64 iOff, int iAmt){ - const u32 mReq = (1<mLock!=mReq ){ - pRbu->rc = SQLITE_BUSY; - return SQLITE_INTERNAL; - } +static void rbuAllocateIterArrays(sqlite3rbu *p, RbuObjIter *pIter, int nCol){ + int nByte = (2*sizeof(char*) + sizeof(int) + 3*sizeof(u8)) * nCol; + char **azNew; - pRbu->pgsz = iAmt; - if( pRbu->nFrame==pRbu->nFrameAlloc ){ - int nNew = (pRbu->nFrameAlloc ? pRbu->nFrameAlloc : 64) * 2; - RbuFrame *aNew; - aNew = (RbuFrame*)sqlite3_realloc64(pRbu->aFrame, nNew * sizeof(RbuFrame)); - if( aNew==0 ) return SQLITE_NOMEM; - pRbu->aFrame = aNew; - pRbu->nFrameAlloc = nNew; + azNew = (char**)rbuMalloc(p, nByte); + if( azNew ){ + pIter->azTblCol = azNew; + pIter->azTblType = &azNew[nCol]; + pIter->aiSrcOrder = (int*)&pIter->azTblType[nCol]; + pIter->abTblPk = (u8*)&pIter->aiSrcOrder[nCol]; + pIter->abNotNull = (u8*)&pIter->abTblPk[nCol]; + pIter->abIndexed = (u8*)&pIter->abNotNull[nCol]; } - - iFrame = (u32)((iOff-32) / (i64)(iAmt+24)) + 1; - if( pRbu->iMaxFrame

    bU`@*YvVwcjUqAYz&NE=F3pH4D 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 z zpar>?1s9Nu@zE(k9N`*eT~0Eti~Z*~chW#r-b;?v?E^yYB=UU2T}5##PKKS5kvwaM zO=>Y-kxw&IG33Akr$8cFDWYmly< z9HA3s{jFU`UmJ|?i3{xT#(iq(KBe70La?Jh>pi-2kgg1Lc2a?OT(Jd^wkN-V0YT!s zdj_8a^0uLAzeL{hOU2?F8a$;<9@#LAv^MDL$1@z$Ey)K%htY3>A^EbnV@eJfSPX7M zFvVjGZSu6V++yD;|JciK$^5hq((SvXa_mdu2=Sa2kq>TY;+(R&9luK_rc3d=Un_i% zThjH|+$~1j-<*n!@1%~D;Rv77JV#}TbM9=qNi_!CO`JOw*9+gX4XPT8aC9ag1^0(a zOUrD>(xy^*BQ!K{Q;mW3-eUvcG~jqnR={rzaPCrki`%>n49r50>$NMVG#Jt2gU)oE z(%v{ioC?KuJgtSti3fns2q|YC@^_l zf9>x!>gU!Ia%$v94Pt+d*jRK0?~WU&%_o0#9DaTK5$*=#RH!(O81$6ZeT19f5OjI! zH*v}nyUBA_;)G<+6rNZa4K~S#0M|*V(_Q}aK zxA$Uxp_1Y3TP)&^7Jo)BCq-Lu_ho$~%d@zB9ZqRzH(tbt7f^5VqE^h4a_R zywCh=H;X`XO4~PFC04cihQQ$$YW1v?AO`g{+43uCGQxMk+$`07ZGbt z!JXHBJ|^QeMTX8AdMnxl<}>!3_Qx}ALE@|6tQmK=r_Sl4I+u;=cQ06qzpJ)k$&VHC z00t#Wm^6+)2$Lq#U&4H7F4^t$8n<#?)56vAT&emebDyYQD!Hs4K3Kmrr3OnZ0%x^k z^jANjYb|Aek}cQc9#fAs;GO}(9iII(=QNVFcqxR9ey)oT zk?w*~@k`)(OyUE3C5lbaJ$PuDF<|!S{sr$IjA>}!jySa9GI?ZD9V52UV^h zvy;c?lxGg6bXX-zFfC-297waKcJdo;5uU3bnpCy#7I+mQGpX~V+f%!XAw87t`O5wZ z=FGcuyEjLfS7zMzTf9rZ6Us)zw@m4s-RZUNn`{=8-(c>C3vVekgl~sm&v|HuMcqa9 zbbV+ys7v8l%n8{OdJ?-+H^le;*b(w3e7dDB#h$w(C6v}x6tSI6?Yb~&hLRiD?R|Bh zN8RMLeaJz4Rjwbpa^;{m{?lAv?v9ekkH;pfT-7FTYB-+RZRPq()zsj+)hR))DJ@vt z#C3)3>!*agurCGHt#jb`*nKI%EPswK+b^^`x`~I$eoh3^UA>^)K29ebt$i1?1>=s* z>B#4Bp4=T-&$%PV$I}8S!FaosSwg0SN$#8(#62%OX)u-KrlK{tS2C%$_E`gIp#r#| zO&vD|j1sj!vD@}3wXWKp>tEN-=jHBjN8TH!CtvT2W7M*>+lD)gDv=gOQJ4$=O9*N`{xzxT@TbAGP)|I6V|||+TTnGF zNsDACjZ^plFR5}(-zjbD5Qvgw2nfDy>_n+)DOX}1=zEyFTBJm7IEPfdw1Tj5<0)ZlX?W#qBy4|teDwr|bAv0g^4v0ZPtV>M|NdpqOp#Z|4l<8?f~?+ide9=S z<(!R$c9XhyxhPTjzm7X~$~=niOf23k^4oz+RB_!<&R59u<92jk>#F9(E56^_@?i54 zB#DVC9DK4|fTe8${QhO+Bk+1YUiaa(_$BF~Mdgsl7dr+FNEu~+7Vnx} zQ!Q__Z%<8bM(QqJq9aUT5;+$2hU7ZNtskn_ zxQjl!*8Lsj4y3>&_q_1Zc1Gcq(kXS5hnx18Hwp3G*Wq||DarjyNyRz=R*V>itim=?yJ4>0gd#9t$5!X&WOiD}5VXuR0zp{kWoY;u7yct+0~M8*By12Ja02L|s5~+J(Hc)|KX6pzvD_ zy>k&C?#zDgf!h{x(^I@>!Y}6Wu0?L!ff{#`GSlr==DRbM>r_J^**-Imb6%^i!TvV8 z9m-;NRTwI+3`2+6<%a9~PHKN2g^$6-$YTPf5#<{6C-6{)ErX&UDpM zVpR+!srbx*&r0#l*YJtOX;Jmkg?$8L5HdLRe(cDenaB5zi=4;oiGZ8t)n2=ho0g2_ z$wR!0d1Hc(IJ~ywyB+v0(iOpj;e&(j_A)no<{soB?wb5k>psqDgHDficAEF^VW+d+ zY(oy;$ztTJ93<~(AaWISjtnY@I-QmaYoWQlZFy5mD>Sz*0c4EZR;+4T^#JL5u4+a` z8Q{<50=$CBx)kRZQ%XflCTN0_TIn&Oj0?kVk^C2*)~-8C6fV;3P7$9TJ661iY^cfF z;6x2yKQkyZ#P92=w+(==vl1^9m(ipGR?f0>~?uYRy zT<4EsT7zk+s;~P-OgCeif$17duOWZy#@}}A;~Gqfcx}Wq_CEqV&h!tT+?~+*r|5~g zsWZOA=2x9>>z=tva+NnPlLU~p%^&f}ALr1>-+1)z6WE`q-R~b1!MrwNb99H2VY^=9MYxhrPl^uBDn3*lLPDs+a4Hm3wb_|2kFA!bC9{1Yate>i&oQ@pzo>nYn?_GT=#MxXsC_Uyf~{#cR*W8Yds((^?e2>1<; z+_31Di6`e>%ULV*XXMMuBR4kGOtfGz*1K1_HhNFKx!eA!1=RaVgT$4rT|vE16>n#~ ze`-X3r!n@6E7>XuZZPL2BZlOi1b&{&tKDEk2swo+BeXhA^55|g+{dDH-}<< z*yiM<9TRs4oGJLcq2cEfIdmqsVbRYf?&-{`f;q~dT06Xya0H&uguLH|3$KQTTAAcyo zFY)(pn7o+o!lYt4hUqM(m+-rl_@0XIe2A%Ej`{J9apP$d_R*X>eE^D*aZF1%SIb;` zy-fbfw~3P*>u_}{PETY1QXiF@_JsH7fcg#F$e7;E2!8JXrWXc;30*_IWNFMUki7nF z1|QZ_3`Og_)A#d!AsX|P^fI^y`4V^7Bb(({mPQ^T%*BbOa<2Odq?aht3X~sI9I7H# zHpWNR(kXrUu`ra3DDf?Oe@w9{3}Mo{K0`WCWd}*;0HGzK92kTEz5mvr-Wp4^-6oNs z0eNPMgBI5H2-joVPwy8d^s0%jyC$mJ%y*DR^&`mL`H`}iKHKk24|84Fd7R(;SK(R* z#82fmcQN1oJk+QhQg~bkv>=6t{OYwT6qerf$c!&wxRGRy+*HnGDbqf>GFmQPwjvMA zb-dM5FH_`q=Zz1~_|m>aPOo{V33t{q;^~T&?cO-WOL|a+8FzBU6*ZX)I*`WK!bGK6 zl?;663;P{%e~aD26%aQ}TJkY^kaW4@!^~6`)d>bTY$qz zPv?9~fK9~+OPF56)bMv9>Sxvg0<+?c6FppMquXxr5e3ER_8m^HDivFFE?n>G#GW3p zQ><8ok4in4>}le-rH!dMEp`*pU7u}Gjeb)nd8aS28`xP@i=FqoCp^`=8&7IWhs|5D zhh>a@JCF>V&ms!Jbv33Eiq~uDf`LTf%8CbYhgZzqP*#9+jo^=J(Xl;`3$)d|nRQC@ zTr@)2W%(2fq6F{PEh7)$Lhz*K8OGYXAjGMekPg&>vW6VV6tqg@6Sj4p+fKfKjikpf zAuPLd2DnOaxum{q?kdhr)=uR6^7MfXxppZ*HA!=j;xBLDM5YHW8iGQb5w8+dCzwNq zF20+dGc8exX=N)MWVeyORtTkorR$Bs8HaHVV;b5g0Kc?)X)?stu&(1d#3EP3Mb}rw zqUDQ*Slooz+T>Kq)7NJq){%;-|K7G)(AqYO(f7_v{zV^;`jdz7&(t0F-ZY!yk==-Y zdG@zG%=vYBczyJ1{8sXM56tVm?(<#{p`aAD&5{wHI0wk0tOVC~Ka1ULY)Mu75m>snHzV~s~wf zWBonGSskl$Ly*ZXF1PKr*} zUrTWlI4Aj7)qVdwsY{=m61qpE`0ibjt$Vp-?Jko}YEK_FN9DIaVfI%dSR!dJxBG`iQ%o^&3F%wW!vfOZ7z#1fdiz=+Ad@M}`r`6w5Tll6R&5^8u z4bgX|AfsD|?-*3QJXb_ASlhqo;3h|YbT+1g8(Za-EJD%H$NCvm*~c+ElZ4J>#MOyD zsJL3m?#>F59;qHz)dlvRBtMkIZ?Py8ler{}YYd+xDupWU9pwU}vr3q5Y5~-EpqvYH zlQP3az!fBQQ*KgMT1|~7+mjsND%ZNnzolg#l$dY_{#tusw6R|BCM)t~-dTvYya%D` zo;hwT(J+c@6Wg2B#WtWhUWFEIvaPVAUH8$opG@es6AA_q>-J+~Ca!Z*wLF$U}=sF%@00ojh?Z8{0bQ zVNr-}U8JR)Q{!bi%466f8)=PA)I6Q}854RS{Kz2XHbj<<#|3ps8R=2H*fh0?U@JLL z*+vn< z_pNSTResNXt&7*RtY{UN+{cPE;obesmwdh8q8qEbK(UDklc#=5S#;HT_x}JKFkz!0hIQ4}_@gMeMB06dj`sq%2ASisHXz;}cj6RB<#BVONi@23? z`}~tK(#V@L6(}r1j@uM8hZ-Wq7k79)ghdXxUcF;{)8IP_WT*_b2JV^;Wi5GcN#03)!=rUuz#96@XTOm)1oARMabE2dIDP_=W$E zFBKRW?QR2HKfUFID-IZX@}`j=KeAFSML3(oJp7Twx%v$GJS{Hm4RdG z@+NaYUTX+=9poG4Yi;jQ2oNbIMn1Vv3O;Xw;*$hAOCd^jk|C_Hb0%;lvk|X^6#Rzw zLcJLE{D_qJ@u=^|qhZeZpL{?553b*5vtwtCCXnUombh(SYsJTmh+&sCExX?>Qv{xt zTC3zlswH8Z;QGrEI*Yut=5dva6N|iPwb;@su92I?Rn05!YhJykd5O4qMeCa8_BHSg z8w)*_j80Y1t___?RdlIxzjHC;e=A^*^PUFcjiy0^vw8l%v#~ga@cz~ZF}flh5~H+e zGP4UI%%F%B4eyH;jb#l(?6e`qbs5!5Pjo3-0P9)%zt*MV8wdVvU6-Edb=`>dO#NT$ z+J|p^{BP^J^du_X!+M6^*XM}FjVn)OoNvK|pPMg5J87#n42eYz^u(zU-=ECRZ89gk z?R+VMlgc<*nIuN7(-*BOz4xUU$E2r2tkjoS3dG&7KaJnLAJfa2evhxv)XF50xFX;IVan41BHV~76|gSB|w50S6GhAjN*T59t-cgjFQ3whO`b~@p-Hu)S; z2)O$zZTY&aYV-ifk+L7e*w2)8nWFO}? zzAWr%8psSJAP;Ut^2Fwk_gPDf%8SUe@rX=ksg+z(D77WoUPEhs(q!d!IpYztlk_44 zC{;7$k6q6-La8lSq}b(TA5x}FA7D4~b8-HcMR%j%3lt1BT72(g&d~?uTA|C`Z|O2f z)lwqv@CmrXCqr_O{FB5-lFlUs>syljNbeMw5LOBR3QdeB25e2@=7i1h0c?3GN!_^V zh)=`G-M?h^G`|=yk(-}zGLyz7Gs;l6E!QJE5ESk{Lh%_c>8FUwwtKH)y6E3#y6E(` zEUJq>Z9*4aTv!bC(@D}^b<-m=^wm2xI_LT7x0ud3K@#sgqotfPk*DLyP<~~&Z`nHJ zJlA=X!Wlqzs`+Y$_$_?zTX_Ao7CBr@y25PU#zn!C0dz8(JNqpbp@L5C%qsDf26Zji zNqW>s+Df;bbIbId&(0!efH41iWfz0U--gNGILT%uwnI1@xvQNGI|lnRzNxRC{+<9I zW8Sfc1$gdZ{XBCw{+{0>!0EjLv^NWI0q?hG#Nv)v3c+2hth+aTwjakS4gd1&uO&== zAfdz_Ubl?Ao*}1ONZ2Zo>D_;=tvwunDJp5yuD~{jo~${Hi)Xj;`sM8kEfL@f{O-&K z0se6d^0WcuZLj7pYeONnA&s>mm9>HXnxbvU46k4I&)@g_$L~-5H{Z{}@BjQE0p9(t z0C(Z{pZ}Qv`S|?_ziG?cX6aT2NZDb%ZL@UC0Q0^$c9w2pI^J!wjO_1PAgYr*iMg=O zu?O{WzKFlG|4ScN1J>JLV=IZ@_Y`Dj*R?LGf>QH-54v8rUQ{TlqLm=V#3> z(zN8qV*Y^pb|-Zbb)D!Ni&CzlFS#SF0}4|&r)-`oeXV^sq(>0G^&sa`49Q(~&oP2o zlF1_76NmVX^yZVXj=1oU!T3ogm{js3%&X+P=t)^N#CIli2p{hgKWBX*YP7*~B~FOuGK_#@TkE5VUobT}bk;-Ml#`AFBMXVE*u zOqZS$H_WmH_e!|`FnRkQ)%RmEA<^QqbxTdSDtzkVy>;7~rR+H0`brV`fF+ghlE08G zu@eGHv&4kn;`u%iii#R;6osI3{;T31*5*B~jg6aKug!U;;q#W)=A_kp(X?&R!9~r@ zae*i9dG{XE_h)|p-NmLQGnYKEM6R7Fk*yfV{)#Xeh|kKrDA)c5?_K={mk7VcE6TND z?(-~Hgy-rh+7#u&MXKXhtd3t@R>#Q;a_uiz>1X;Vk9hRq3kA5-*cawAys|j_bFyYH zvO_|*6D(UMK|!Qy%+?h^&c1Q6#g!aP@jT_JEh_U?QS^tcDLYzf>!j2jf|T}LQXnxn zJMsp3Z?9OcSSoCRig0o$rJZ~u&t_}G7Eb6&YuiPB@k+P>bFii%F65WFD!)_=cC{EP zR1j$%ia~%A+TTZu)rT+BEPD`J{vfvQ!8w)qbnB=skTT)5=l<ujTP25sG9OSLS*9NhO^kkYbOO73>HlkU|`PS3)I1yD?uZgV2bam2G*_BPex z_XYAVx{7mI?E6SSoW zaFjE_t@!)j`0K^rt1*AoG68nt{k-|}>Tg0CbM*b>rt0}Mbws~xjoVTw;zQ?2?YC#0Ov~Ta3*p0RrIVmy`!QY= zrQ)Xda2!>M{z}qb{JV|)B^dj2-(DsgC7mZBYBl*6^%76}7UOB(#1ZBS2nP3#>SbQN ztjz0JSDln7?U^X`yJ)FrRmL?py(>K-{Q=>!S~5wm_EDL*5VkH_szXiM{JWbUodJb% zt+DAHX}y#b7H=dVeDYB|xb zTVqrK(mlPqXC+T+yi6}yR>F0 zILQxE#<@qtcYyp&(2kO(tcv1sTi2Ij8)@Gn=iq4A$FTp=ukMXfPJ>@j?w8_HR^s4S zEm8g;p?3lD-42)rNu7yXmPGdrvH>Og)O4k3!V)W~OSi?+pIDSTChW12x@bRYWM^)h zS)>P&+L}Jx4)d9YK~H01FKMjJo8U;(ePmsnz7t%wKw`%Z@`+mF!S^gmdY3Iwzx}k< zeKD~I)M=28n96&Un+oL#y-8ia4%>QZtTr9fJtNTwSbITv;H$^JN{(75eSZ)ND7s^H zUk#g~3)<#0I^5klctX24Le$NJxYnI;^WcBynV=@$1kYgl0Mk8dR!<{7Vbkvfc;FxU z{oPBN7q3{-3=6(_e|PJOR&w_QKl~z^&zzLt`o?z;VEP-T{g~+4{VNtXEh2e2#UsLR z{#Rb~oz*MuTeZ0PZhCJF*ZqD>17DAi@4??c;IHz31b7;+AI7u@)1!Fbim4K>o9GjYYfE0Iq|hy(KX7&r3-oak7DxumWOTHBZoN0SffIN*`KM;V0CvqjNo zh0$l^PxXO`r?-spK=7FYPtQ2Xj$FS~DwA6op#qh0kd*8wd%w>tT`n|8{$@lQB?~xuLzIk3dGtRL# zL&^8B#S6l7k$;+7m+UitAj?p^tX8UVrZ@- zv6SBj?nM8gDDDJh>sMaH`b8kuI)Q7dmN=<|TV?-9ep~94A4j}DPu6RAdIWKA5$@mk z{?NqRKfv}+!8Q~FwKW1Ijc&Ua-zdPgK7(y-b8y9+8{a88rs!|n^;OeX{k0E0Ai&EA z`^D`7?7?5a-&HT;zJ7<9*2a{(nQm&!gUzb|-o(7SaNj+IWe#Ba3#OaDC%`B9W_TK} zulp@q&r@mL=i_zR6PU2hq+$!i;q@KgvcQq`0=$R63jVHIv#Obpgz#qpp2hnSq$f_` zw>fM^FTVHaD?&6*?)ztAyvF0Z$@>|dFQ3qM41@cIFuz%k5&X6G2j(j#RdFM}J)tc< zQnrX9(b9O3<{p|k zQ^*xLe1>+Z3?(5LA2M`3F1;mjO@h-HvU)OW%qyXA*J9>BiKt>`pKFY~JT6Ah6S_7C zFs)jE_h$%@y%FK}Y93~^-OsFj-Cfy)GE#~+jp`7Mq0@5*0^X0@g8;x+C}zn z6bS_BqsTAL{QGmD#7Nrte?14HncMz*ecopLJ|=r3Y3LCd3Sm+*qb6+MI4>WPBLyQ3 zBL%|^CtWZ6n{()NtmowK{@?2wZWwXx`VV#O#d>yNn&l*2@mOqTGeRy&kbfBEj|3kS zTej+bdnh_`i2;MpvXf+-31>{WpBgutlq%%FU@NzE3fzw)!Us$7>2 zpLkCUm{ij01D^qYp_Tyzp75rH3&qNX;9P5-^07Gpkz3Eu*UA;QIPEU-Sr7X+scvqi z9B;?FG6=6#KYs|E6rWvCL>a${d*gFMTnG?)s~ucHj)&_IAJVmwpwlf*zH6Hd1zWt! z!mF1a5V(Q@&pqm;ewccax(y+c6{bkZL9Aa9rIY~K07A$rr3P_)x;ct1Au-R#lBEl2 zz%W!KhG7z&FlHlU{a~yFxpqEe?mDaOyl4PRCs#yKA99fYEn$AIPHR6sV_|2nST1t+ z7(rqoLZU7~cEcqs^1;~{7Rigww<9)}$m=FyS<>1eSrx}()6z(q5PNln$uD1E@VNH* z=sPb7AR}zdxdCzZ^#WKh9l#!c!{=wztt?Sn6-aQ!d}qCicz$emOs|gCo!HVZ-{h=b zSnKMWzrBTXg5QcGd~=cK&VGxTS+Y-t2O`&=1-BUHx8BpjSELVAGF>|ZSu!+IIqnAC za+&Pu9*7j3CI2aH4&FU{0HK*I=)!$15c1dbHO2fG;JWYN{01L+eJ&&m;LThyUj_rv zdymHuFtr#1q?c34@&1xVW8kFrhjE@+%2aZ0d%rAHf{P30N7^pZxng115Wsq-KIJ_y z5D#1+ndy~o8z)b0nPKvr%CY)zHcAo|s;y((sFLiB&in)fM}z{>+V#DvR7P?7mRSO< zn=XY@|y%HV7%sztvoRIx|iyCTxa7 zi`9QRow@WRcDA+&;bhfIF?Y>`FRcOy1!kGRrhe@7Hl~13<*C#ots_K}rdrWAJ*(-G z?rX43@4pz+`F?tLMrV3d=R2V@y(7(^w$tV}T?IwyZuoTWK@Y_AwX>KQ_DZ-H9)=%7 z5PD!cyagY?jodJtgp2rV<^(R4%j5cMPySkfahGxODYBu(uOHXmADwiNa=yl#uUXDJ zqppKABQ*LSA9EbE1-Lw$-zbxgv(4|34L(lfeI6d1R-e)TwKnr?G_qUX51kwFozusr zO6JXK-kVwVNgjKD@(jnpERro(F`qQL2Wwof$1Gcnfp=?;Yw^bjYn@h&f#X`?F$?|` zk0CW2DLMBKRsVLia}#j#r=&^PK(P5CLg|KCozbV9O!kd7-0S}jSx!iQBbb%?qfhr@ zpAuwtx)%PO`YzK5e+l1@_r>?T5G`YpcdE9akZ1G7%K`|MHlHfr#AfJ~`j`hv^2}0- zkV10HRcCZ-$fwm8qBFShU)nOmwPD_)YHaMtFD3buBbYj_{S7$=ibk-m=2~jUb0UZl z?}dk*@qugIq!p9^P0=?=V-w^~rVahQXdY=wg8UTAyD6Fn@suCZFgQaWtGV#cKS{*>0yiUy^(9 z@6RzgAs*qNPY$?tHgF}z0WedX!qb}lqOQNVBswP3pf!ra6PUd61=S6S6V?ZG7G_20 zDLzAf7$H1<$P%D2J$J~+ezil~7SmQkk2SCsN*m|q^CfW|wvSAuaSD{qQjB8!&f~~I z@}l624+v_BeUsdfAMg9C9I|hcj84JN6*POZ*-&E+ z9@o4_?iUoUr|*!N<(MK@Q+xs^T}>UYlKD`42kqT1Fn4{JGuM8TgL;+#*pB@_ z!v1lE#Slrh1mhN3T$7P@^LYdh$^1p+^G#q1kR5UIIOQ;{d}#4NiGVvuyw4nbn(6cZ z&j80HFQ(qR4;|N}k#2AuEq2VOr^NjSuv%4&cQy! zJAc9SGM0Z1Q!nOEeLjXC9gqRF@=K2hVu!{3F_iQBE0?ZX`b17zonZf=YaZ|O#_y}k z7rb%dszsH{X*V%mRk_3xx&I=Fl}jq+DiEtmk>>5aXsIvpOkO%SXXPUDV}E=T@3PjM zcudF1aB+N`{BOs2Dm`vbo&sgL3g=6%<9)P4OdjEbg2!#2=^$Si$x%#l;)ogOY2n0E zs2B|MD%PQLJ-XgG#Tll(CIiboHo~!ZHDye$K-cUHHC&3d)kPu~XpW3*zk;aG4;q7{ zsFu2+gT|TmxRzRoWQ{TZh}}$Qr6=Yim}~=yzHyRu;Oob=%}3-N0?gPEqc3Q`5!)-> z-mugzI=PzmlIz2qQ?l2zb5)g-&MN%oC3do0>R-rPbnS1?9?~An|AgBDq7^w#W72f4 zxTZUfD=P9V_r~GhBle_1hX**ZhVSaK-_f2%+UE-k$yZ$2;KzJdx1H;$ez%~V7hzIr zcwP>OyfdXVVL-rLig42UBe4i69JA0$ip;#I>)ei?w!j}T#rA5_N;NV}c2TPu(_=EF z3?#GNv0B!3R^t@1Yk2b^qW$>1o{kdd-v=?EvCCHDqm07$y-%F%I|FlBlJE z0e9E_O7S_ z;;v-$9oMeH{#>VUTge9#zuA~)@ZJ2u&F>KBo&e%BQ^0MX-L#>JE3FtHdpx86Wk3$& zw&U7?BZiQ_MVRYrf!jo+y1|K$yl&=YubL$>QK(80R90Ya|el z{e0($2##Pg$bzJNsnfC{&rWbB}A& zhn3gAId+yJ-2I2aeZ^&Cmw%D`%_IiF#Us~IBk6jMq{FkUHoIxR6q1OxGraxb#OU2T zF?#*A&*MV>AH*dbJ8SN*{i+gaE+@B=!+MBc>3NXNUJ%g=_zbAm04wjQj2^YK!A4ixWNE zR1O&cdRnGH2iKkuH?4-NyuSE5<@`R9_S}DGaoa|?t|$RZ@=h+~^JXgM_7~$ys8kWP zD)FXAX5725sO>w>L=RE68}Dpt3(8zoP~xXT=*>Zd`B1i$zp^h!0G{>t=mP@0jj0Ed zACpz)OH&lCl(dj@!qx|_cYddoe_7bW?~BKI>RMRcW@uaIFu3B>=(Byq`)^#xwN*QK z*YyRqw#V$rIc>8_u&(L{ba~g4yV+?=Q&{p#CalH!mWjzVjdPA`zG3rj(igu1VfMh4 z0+@stPi|n|_oCc*$)wLRW!z0Wk86%$-bWrE$P4<~Ge(dQGL*w+F#Q@t_ezt`;^PBO zc0PPu+d6E7%50)T1H&myKa@^=_-rGtYeSc&y?i!KwaeT_8%26l5+mo&b1KfjI^iC~ zuITex&bacrnMF+|E9~Rit;3wCyk3TIR$dva^SG9bHPZEQ&5Bq0YM}hRhjpz9lkzKZ zEx2UTT=C6PqGew_y!J9*=6sR47b-*rw(KO!f7#XuMY@;kz$_j_8A>h60;CUX8Ywq0 z3wo^Tlgl1!F|iYN-z*M{Oy6U7l)so+A;7Jec(H9(^3u6W+h)ZqUXojNixqtgNS9-i zmk$%an5m9Ct)84x^S-3|Fw^BA%xY5!lL~4l#NYU_2b`Z&mu|7gC7doyjJdAMeUqHU=-@_|&9PREaH zHy%z<-ST>zF*D9N4ZL|0Q$LN;MG653Gb-kDkyRV4ygO*OtZ4H}uK>=~;7qs;k zN!~QWdob$?)hvwW*`H_x&7c$Z|bC_)YbYs{P=iknZEwl{ya8j zDLB^xgJI6kcm69B>u2HxxW6O-A9N9CG{pI0W5#c}G-_s*-wZB+&Geojj!_}$xP~4B zKA^*!3F1|Ojb?Ztff>Y5RyL=R(km5g1Ku$Tc zUyMQy7luf|dAFSCljY;uqeFnahb)QhcaR5yhiwwj=l{LtofCaym`^!~nFW`K0#64wsws{%nc^xqaS) zyN$SzS-(jOk+O833?Is=ge8^Ph>v+)7b^U>FS4W5QsEHdyaKuQaVd9awPfiuNNWoc z10`@)n|(2h(cv)E=eX2EYe2Ne`WVs1MlIOKO1wHdYJ$GHcppW?N>sS=oDl4P<8!XS zN$-`M3*Y8=-b;Ja>F{qq=gMLKc9j#eed$|ldVFDLmY?wNQ>s78PyR@y-nx`BrWF;h z6vN7PZaUS}>Yk(AgJqk(Sc8A>`T`1G_GWd?`H;gpD%`Ua$+6p8^I^3E+AG{VQm0z@ zdNnpmB92ntKaG;S@Lo1bBRQm1mDL&1+D6UHw)v_rve@nv(R`x@$PI9~Gg`aTrMXge za59W(e>j`vqrSI|?sDXW(tEB{bGt>z4vuLJ=fK^eWcdo!tj@`~j$adZkkOfrWu?)K zfO|o1cUFK_wPOc3Bbq$QgAM3S{L(Q&b?k^}OD@Y>do0VB-m?b3ksYja?DS^)VE>B2 zEaoLLHxSV_9K+GZvDkR98UH?ca0x;Qd~WY)$hNv}=!=UAyt`{YULVkG;$_d482WyK7DxS84a<_ShJwUULwNlRETs ztTSV^IHLW>vH}@hk@*pOQpnqu7F^eMp)R#&$kT7>L9V?DM>QQwojjV2Up_Wc zoo)A}_&wB;;0AByXXG0`K9tebiER}SVQ|%%0l{t$)`KV7+MACVu(dT3>EWh+Zf6)U z2O-OIl;EZDSWZ`>+A6j!Xv?l%$*)|_B7xrLtZv(vXZPi7-K0)|{kY~+gVhTgv$?Ce zlAKQ4zU*KgzPsdDQYfWsc>a(buzaIqwVKv5vn?ycw`BzWrn$N!7=t9%IUH9?#Q;e2Ks0PKQ)pSKnR*{-}|RhafUCH6z>XZ4F&HQ3_${vAV_$9_nGA#L|mAFRiRX}$% z`+qu;9i%l-hWJmOFXKGgajjIsbA36Xh}McD!Byr&-&oGxc;QG6uE*?P$@~(#Jv5uG z$3)d7+PjA4AGU*Q_R2Dsb>-f+W#Wdm6=GeRX^OqG6bL`$bU^rdm9WANHVzT((Ge5Y zxc-P4+5k&Hw7u(dTKZ0mW(B7FdvHF&hJZFiLl2)l_0M>)a0^WU>0^iH`()$jJ&T?kG5l*!l%@hXZJ zd>3-YnoTJ zHZ2!f&NbrF)hiImG_6|QtmlYTRI0gs&8jBXorn|v_xHugmzS<8M0~nfo=nJ;aOrm_ zknMK>T+OXZVo3Iv%LRA<%MBx?YQ*0RO#8MV4R)^pb(q?UF46E2%{cP^M#GyG8jCk@ zBqQ2uM=s~bBHGhOh<5KrTJd)-UDos@leZ;{>A0`%KSH#~C4QF465g`(@h)Kw)#g6J ztLANPi4)B%E|CFA&3Q9t&1`G{M%ylKTE2Y6;%mg2H-Go0nK#Acm1(2{QplCeAAln4 zbSLj$b?3rTTX>bbk|34vYTTze3+&k|vuC$^ z+cvf%PMvC)R)$zLA)3#y?Nol6OLZYeU09kDUg)x^I+jfs$XUQmO;@chUQKX;>T=~Q z;HPm@6I6bhO|@rpJ_|zcjYl|yq0NV(%ZRv?5B|ja!hr6dzMST)9HMc1(&7H7lrz5L zzS(@qtgx|zBIj|=)7oS@y(vCX1LZd=h7L)l2+^mtZ=D7AcNJ4`wmc8{(OVVdc{Wc4 zbBF&nD6uJok6nkseY282U2-Iqk-e)q6dADWFz1n86ww!%I3x3w+qcp6t;1xUXA0Cb z)!YwqORXV9)_JG38_v<(WFGdbfZTqHC(dY8z?BAxkx$S6h$J$|$r+LFU#GIS@2_d1 zx2@85`^ets{%_<`owb;ser_r93*1Iy==0JL-nc?^M zhs^==`{w?{_Y?c`RqE5;Ve;gAoiayUPue55k<}6I09X#Pjg<(Q!oS;jYgt=j1~oA#~W?Zx`wr{3;6X{M`KbTC`(|TSH#8*USZ!H=CN>t*YIf#UEOX}$xiLD zW#sGOYUg{<)M%B-^FHCUS37llW@zcQKOyh(T0SJ3S!0t&?zdwvhjzaX5&zik*L9g) zN^~WgIt+f^N71}-rhJAVAD{?-5pBm|j&Q6?$EoJ%Y??wF5oSoHH>zEOCK>z$a~lp51@Y8j;!i38f^-coJP8%29p6EFb z6nb==NuCP#W|g);!8|+P!F4uPKQD7GzPH!Qq;DT_UC3JuaKyzR%#&p>dEdQy3|n0y z4AePFT4p;+o0iJ+=aXj`?LaJ&3OhS;K^dJ-jA}Wfu~Q9#xpD38@z{9+?FlJZWAd08 zX|}ilv872C>=ea!RJ(svY+0KvHt9a-qIwzNdW4)H@*>JRo%j9MATNsdZ9_h}Pja?!S9x+? z8Z`DiE0G`RD-|f5+4||6y&SBq`B3fs#C>sPIcL-u9F?W8a*@U$Cp> zPq{)U#xdE9JnYt*qF=+zJGOY?!>Ke*3UmX-8jRdH#;Fi7j*;9k<}=&LdPdULdgqLV z2moc%!#OJTt@?JXvk3W2I$8aw1V|f=PF?d@op@hjRr;XXJ`>xJa2q!*VJ<{gVcnT( zz4IyHZZl@n$re&ylAy*pZ{)b!Oxb)PlzfSKrP55c`nf5OHwe-5D?0NtL%mqJa4OVK zjYXrbRS6SRHtz7|F-$;L_D?Gz9wGJTY2`(xRZDBx!3rL)zH&&P5BIP>&3&Aw1i)eIaSGD6exaE7se@>P_JnHPBcuYUCy_YEWL+ zPYOlZiEETaCo3S2`{XBpWZ>mz2*+Cy8pIZ_!;L+9<7f=FunfTxLbjM^l61YF*jdhl z?U(Qn7kT(R6ziTb2G4yfY6)RgikJn2P24bxzFQF0W_VVH@*>5(l+JtQr3YI!NG*#F zHAQMviTpisGFQb(J8%u{XiCLZ#zmH2+_`jUDfy^aw`k{5UQJ`sb7;-(T}16wMyS-g z=MyKs8~=^(#v&T%8b|A&7T`fl%jvgUfJRL5c+F!v`IFdrVkQ{`_gKp3yRHw^~};2_DzLN$gxeKzlsBQ z8$<7R6``BYHFa15YnOA`#=xj%K57h5RMPZpVRK8h+5fwowRTQ5Z!rcaHi6M+@)@>H zLoP*?DJtfiR#T9qwMKZ>J4M0OwtrOHKLWDRoupi;&Q#PaAsCm9Z4OprT}aDhn{dAo z?Yyr%*Fv`G#Vxgok`OX?jcQLGgOZQ%{nzk)sR_h4YYd?@m0Bhs2W$)w_I-5(M7vrB zh7j&rswG&5bhtnh5ZPRZJP4Xvc z+MNk$m&9auOcM?p8*iFckOP0uGm;GHxA1!{X^wa1J)Zm0?s^Jm+5%7cnGeA8;Tg)L zZc)Iaf1mg{!^(WBZAX?>!S3P`{=ODnlAaU*New@3WyU}ur_mK!J?e=xq6TNQC~nQuK124lF)k>6(ob4Vc!!7WZHO7)cLDxI{Nh~( zo;t z?>@J%9^g%IZ^n=+UXHyzU3E8cRhMI9_@rihlDn1i8Hx@21kFDcZhC>N=w)}6X;u>2 zA?j4EI!Ug` z?@PVc3pv_2QkG>m(l_dVY)UwowGye*{v-(OVySLkK zlntfGp?ol+ zbLcbVehClZlZ;c0Sh|{1YoNH1_ZdpH+=U)Ck}B(@`sPxwsyd`b{7xpqHFLN^TuaGL zMlw7MrFjcG!TF_~kjzk*thK}?>JpnZ$lx!IH}vB^yX^q(J8W)jmQ;ZBLmW6f3~V~c z!8o>$@%TI*x1d<*MOZ4u=ETXg<{6fR@4y0P2-$hdH%af_n{?=1DcB#v09Ex)Tws4Xk5HF16Swlnh1;Y$) zIs6OFKMOvvMe+x&(HH#io=vh0{X(Pq;MuAaM!6n2#~jkK!y(_b>H=~iq2|J8>JQ`% z*K?B1X&!j6-Wp+U)rZT$5II<{kC>gNu&!r)J<^$;e!o`7>3u`gG%$#=mLX!3p79gC zgtFU}R4EhTCsi63gAI)PUBq@)VU=JQI3z%kHS(-q%OZU$7k-R1C6E4U_kp4xq`$gh zH!Q)u&Rpdpo1Esz-Sxk@3ui^HnIvAvg!gM>dnXNS1H*pH5WMdITeROF=XriBr$&v# zY3+C|)wFm`jglFO-&sf zL0&)Y3_U$1VjnmZzxs3hsrntf|E6lIOO*l# z^L=`EDy_K41fL$6jm=*63a=-w`L!Cq!r{)-avEg9^8Np!UHg;>C9|<^@`9ItqLQ!t zTx{Uec-`{{Ie?7dI= zDQhpBu7+ph62zGb{04HNX1{g;c{ib)aHdlGZ719OaMH_(vak{7M;YIYKC;ZgwK zzzY>E6ULM4eVx9v0Cx+NJs_t>-fX34Q=F@+cHah@tmAGXuvliANASThS@lm>S|5oiIJLHwRsb8d1rRyt$SDsy}~Nxq!q+whgE z@#>bK%uQMkQ=F_Ij0m=nD*XEbuK)d)aQ*L+@p?m};_)Cs9W&_?P9hI!4xempZ+UIu zz7t=%Z#+RG%#lVsYaIf`Ice#$!LJkj3AkdG=vu+uqWR!YzLL0}n?ynPVMpY-Tw1eR zW?J)TG$RM0WIu8nk4>h8E&Zty-)!qy6EJI)XVy%NYM476ci|5-%)MpOc(_m^IourS z)^aMqJ5;0k&78$il*8YTOXCGNSG5Y^Bhv4!o;;Pa$Ug1_D-?0P>+7=(#sFtGM>r>B zm_uX!f)AGJ!i}boA;3v#_*{D^ZM3z4DLO>YKH(6ikxr0?@4;(?J5wf25_!He%gl(U zKbjZ`+9C&VJnznaLT{*KO^!6vm~4@KII5IM?r>_<5m^;5_nZ@<+BHEsv8!4|343^Q zCFe_xp30%@1GJ_u>}_k1g!hC(fhp4QP|j)I@+|q>M(jhQD~!;QpRTm2cVP&v`;WfM(@5C3}M^AY^?T@Ibu6}A#hUAc6u`>>`A`gaECk_>%tK<%Qgx3vk*N$ z`WOdqAs*>C0Kh+ic;aym-oW-tY!bHTv2|e+v8}=OEb<|i41m8H;(RuZ0dNdk|85Me zi7|v~gZPbNn(@u1EyF31TFKH4uAlnZ4_<~Bf@_-?VPr2y(5;kf`iF85w2Vg0+U#W_ z)^vlI#4%dD&(o>{st~)zxpa!yqOl-4AO4RMQg-kMX=ph{W5FS@v|7h}D z{QLMvWec(CDW%CAbzZOzRp49=PR+*FP3y!WEel1rV2~OGmzE`o>a279B1|Bl?!zk#QH$TF z)E}VFuPJohUlg6xC5{KF>S5XhxXfXQ7{e%Eh1tmN8dLZm@X3d^j*CW@5oHL*yGb6? z`g?ibBB}?|8qc>1{L6kuUUk3`piFL86hnmbfxbYlY@}-|8ykHuA7Feh@9V_Bo%^6f zFU4a`JPG)}squRK*`>%CP)_9Q?=_*l7wfw5y|Vu9z1~!E)a!RVrQLDk^|rse9^~!k z4JE%qF5xMZoBJN-pzsk6o_bWPS)#>5t;6s6xV8kg47n)NP(4v|tdeAWO z8lSGkE{lFH#qJN%>MQ)-P$<#~TXq-9OpI!6j^GvAv6}8t3x|_&JE}`CZAe zAursc2h$Mn9>LvCl_A(f7R`v@=DyKSwm#gxGuVL#>53hco0;y2 zpZ#HHvNpFKuFqlK|2T)lzZFc7F2x+AU6d)8w9dx1U(kt;zoU$HjWXIA>C?VyCia8N z6dA7yYH%hdUv6^oFcTZUO!0jea9_QRZRm3oteiJ#x?ak(@YWNc!Ru_?ryx-S^_ejn z=%6aGB2R^w(hgSlqw*Js*YaHOXuUEXZbEm|yy50Dn_OSWXj0YR&ge#A_st%?tQ)O% zF&&^90gseCeQy~MAGrStkF=G4|9VBkl#*mc!<^L~l&NN7%P-HwKEJFJGZWNGH`*wq zYt$-D)2+Mln%c{$$#>JLsCyQwsL#Z_m-9N}GR*X6CfJW--HMGtndN2ttz0vK2Y)~Q zP%>|^zBhZdZ6M#rl>XIZA71J!2|)3O0jSc;GqGP@&UP_^Q`Pm^SKD*#t1Era`faD6 z(lTKg+}g0ny39}*So69bIi<%hBBZD@v60I*yn{5U@mvJN*TCHTJk9Y<{A{e_VmyEC zkuhCZ4>b$9KZAT1LNeQ9=mEtLVnPgmT(6UufIj@yyB}Xp^|}KhRq!=vG5b)JIl)#r z&(s7dTN=TJ8<7F7|LhLYGop*Icon#QkB~6=ei6Ray31qfs&tAHzg=M>57byB&c{Ybd;UW$x3vZN5jGN9k+cBt2|EMjb)1Rqp8e%E4w`pT zMLw!juYm;bF4^Jcn|H)vYt!Z(8@C5Lc0RP7Cm+0?yaiMr4otx#1i|4_`;EF~V1;2}%aOUBlj*wm~}6dMQ^>?8kbxkl5JksZd? zXj?_QWhPcQOS^T|EKwK+IFWopsEQE(>bnZn;%RJ&uM@$;r9H^&>_9med5;5EO>is1 z%BR?_=ejXMR-<)L@3Tov$Re?!xSy04bWz#^trwuoG11N2H6G5ZMT^8&%liIItVfg6 zKayE>CNL9wc9uMYI3bybXdaoV^c_iGKnoNkeOeB7= zn-tP=p9tz)@hfbyvFg80Ro#`;0=scHR#LSeoJZUjD4Vjk7(x_P#PQtGnb>PHP-2h_ z9USt~tqnyd=o;q>OMuQ8vpt)x$~e9)RaqRA>hQ9V#bl)0jL!bQ5pQd{_7LJwF2 zo7?S&UqZRr3-+OxlA1%s-Yc}(2Lir$HbhWtJ*927NT)A1;0AAP5%`us+3#fYVHey| zV+nu1eNr@qaliH$d%r4khmW+KZL`7-pWl}kK$%)D;>Y2uS}to&>dHN^D70cF;;paX zks8QuVv0Bk<;LikCT%kw^HB9^x}!$JA$SgP$jyYwLzMR=RaM1OjTcBkI=*NiFIsdL zc%D|m=Wo)kF%OYPNl83LnkPzdQZPj=0^_ztGJu}Js(IR#9r?LRDdK~(mu|3|YWRTD zVw<5AlUlt{Xf`blPpn(V2`Xt=~8!M1+I1arSXPitsGoz! zefXqkC^jB*Aztv^37&T3|8<9rqtMNGHp?vXaQdOqy_C6S_TeM^Z()PV)###JoL4Ub z^4%@A_gVU^J&em1{>lQxTM*)lz~ExM0mTaSYPZPM7{YN5KLt5_d)U(7<+6rt{Y788 zhw+xnv*Kce$jNrlasVPfjH_Tke0AF;!dD;5dQ}%SL|#Q|Sc~(km-dNSf2UK_;`4-f zm8?o2o}*>D2$Hs+6pdOqAyuOmEz{!-XGIRKZHwF7cHw6WeNP9-`NRZg|7L=NF%$f) z8{iloKlAN{`Xw+Xz7~Ya?XnsK&qE4n2ygj+G=#>4hR_&}YXrR%IgDKV$U&<6q3`Fx z={1B(z_t`hJ;bk1jKPs0*F@Y{rN)i9f}s@#bquH$HP;vyiiZV%$f9u07;|R=Sg}or!s77OQ7m4sAXhD?=I$V zW+E?9J+0Y=OVSc{Ve_4NeokSiRv)%)9#%H26q@Z2kLO*5IFs}Q4v$V-?|5DX&mJi5 z_GimX8C7EN>`YTfgBM(!rrV=AWO1KY?lj`lu1tZ*dKg)3W>-_5h4p{qz-yC!S=C>^{(alm<9liVac;71P+myb#*{8$*&i{zFYRah zxR-Rj4MqB1q9n!;`BS}rg}i)!cBO1DQxHgoXKrt7su;?*oTnK_W6#fn?z&V3P&6}L7%?N60I;|)GN?+K)!%)^U; zcH{*rDBjyb(Wl_rL}Mo3Y0|yKc^1maQI;5?K2#_2L0^z4ORh4{cYDeAE)#olt!!<8 zk}P4ZpnItd`D>W-T>(#;R=Y?KUifS55A&Z0Oi6CCCxqx?CC<6Hf;y?Oxq0hUpaMRN z-SUOWGp(%TT^o3+gH!gQvdY!G0m{@w6&yZM1;>@FaZux0^A2L&`!24-c_?H7oQMM~ zo8s&9>#@Av{2t_mLQ{z+-xgwuob2LI{UDU*_AKg6le2eg`Gcydp2Xx42kzakT?Egf z0Zyx9MsUa}jeLHD+rW6@d4%<^vPu`v`%aj3rC!zr`vMQJR-$fX6(axDs>Kn?Pv?_t zeyV$x-OIXk;0#*>={;m^(m_ryPnLtwY%K2!$`3)71MAt0e!d{zH4{5|F{>|M;)Uf} zo$1*a_l2oMuSMz4O!cfU!7VyXaL^_ixTSMHxo!#l-_}I&*4F zB}W6xooRKH8!sa~8@u)Mxb|OCDXTro6c@apdSzF~n#GdW>F~~NEQqWWO*KaY_0Cku z;&eDii{{pJZmQi>1EV#I!!^ieq=wTXQ1&(19{qYgH>m6Vv-7vkAC~M`I}>~Hg1&z# z{BS8$n&icjmUG8xi;x5>UGRu$5&Lj0(1<-^SMFDjSllQVXy47=)5ZEB&)T#Io!@`K zbAOd<-@RSA6mi+?+Slp$A%d|UoPi7AkNVWltDVrQU%31|(6FjBLoZbx0`&v#me{<g4CYIMkR$OsdGY72 zZt24GUwnzirDEiMM#RHPz*WkrgywS&`KO#RM!4PYU}UBY*qJgN)k}IJ@6< z)Uqd?UAf1sPYbwO)~q_{v<~n~ti4YZJ-|l&y3?!ih{f-aq0|~l5tyP}%?h>z(xVvx zsHjz-I3>DnXDL*wlLwtq?Bf_>@V)QtpLf~V>S%_gu&>CMnUWu{>eJXr30MTcV`)RieIEjQfh0;U}yy| zj%zcmlMl5Px=72jcxdumnv@-S?%bu=8#7NlK{-O(AKKUk5Zt=;VJ%N6!p?6ElrM<2 z5fHZv9K8EroL^+1TV!`rb{2569fj@#53C#W4rLw*^)je1%buojO*0_zo~BBW>YnsFweO@6dEN``tW9;7uW2$VlFI9;5hGHD`|FuoBK5Th?XxqZ&3cq64G|_fbpBFo?vnZd2hTo`)MMG< zZI?dO(Bx~pUO%my*GH%#k5SeKFU3B;6t8Q2g**TUbs@e};)|NzMQ-Wrqwm&H97XU6 zvq=|$cWZ#{-_}qgl;KEz^|=mlk$#XW)3(p6kCC*)gKqAX&s{3t4w~JCs;GFspcqbj z86#WD(iEf1wR5C}R-{0~2_qU#$k%W}u7(qYHPp*@G#|g@`^%0k4kn+m&Vd$u^7lPAf$QQPdgl(M^n@l!w>~`uLJH*JGgKF;ho0Ya1ieao1kT z;C8@tMJdBs{Oh|=THXAv#%WXRC(J#6g*2exCJ#2Uo%pV1s-7pn#JjMcSkG8y$z8^E9pEWYAONL4Mx| zCggfc<)`>8O}pX>LYd?JZadTSR!$Gg2D({rae3kT7lMBdMiKK|ibXFmQJhbz&)iC5 z8FZNv^49m8&$X};s9Yld%<>H!RAT%1fus%gzJvs02^&McpebbBhGVVXJz-k|;D6!2JRzti$^QsjZczMfOs#(-%++1H zPi<%?-?Mz>_Pg}urU)xH;*M;RZDON~=xfWgOUuG{3+_g*@N)rs+W6lay_@DqUtS4k z^srNqc+(({yvZt&>)G7i(sm$dwV8jsqr;lAq{C|YS;v2O=)K2tpvcgBDVBbzTs$SV zHt0eQK_6Z#=(Ws9l;uaNp_)HBNmrmBGDvsSTSSxOYiGo_#bATyI2RdNL9$s+awbrg zD^SS#8lQv1=gA`RR4a!#FaGBGX{6#Z7ddjClb#C3sVBu{P(KsOi-;-CkgdH5dkN*#=qF4xoBq+||~9vcrTm_#orW4xz;G9PwnmYGb=IMBjd*+NgFz zIJFPCq2k4Tg?((OAY_;LkVA5XSa8;!%5h3A$n43$Rk(ZF2o~U%wbbX2a$X%}y6|KT zS^GfAo1~mNdP+WASOb~SjDbtBTc&UEcGl-cd$uvR9rH7%a-)a0w1}w#i^KwPM%>n* zd&3E7;E0l!k0uHJdF0TeC_No{GHWO;nm+tBHCrMp8dTByQy%E_{nLhSX4>(^reHk~LHugvx(Y##DYA%~I`IJ?}nxDfZ}8Zlr?eHrSw| zj*gd|<-i?b=FVJ=*O0pTY%cj{iqE&{UFISSjIAg=>mIei6Ug^}1tn=C$^iRO7JyP? zXO*kI)9E_i>4=`#o|eLFPqWo;PqXaXz8C4UP_wVo_0aJh7Mp*EC57E#vFzWmu8wkg zbG!@Jb=g$TVSab>ZZpdSMs}awosO8pq2~fe9y$9+(IcB4DGl+gGmy?&0%>|Ca8uZQ z)PgJNMVZR^=D72FxrI)s3HxKG+(%FD`oniv+p1k`ie(pTIk>Af#qyn6+p6!>S`L1v z-VH^$Locnn+07LHaNUJX)teoX*fJ`z;=2fm8N$~E-aUeAN7X-Q{Yr53IT4>$kJ&DD zaa8k~C_0aK+!G8XRyqA_Zsd(~(tRBK+dM!{A5>X~a#3>MG`R%Qdb+jwenCy|ZEPit zpAAPlcQG#OeKPsNHgGw4raU{$$)Q36`H>aVe6UkqZ*x7qtC%PD5tcZ?xhV_I$ckDp zf@3!r*X}msOoVm=%LSC(OyJ@s$0K<35$)(Bbkx|RJi-LZHji%0jvUty21cC346Q z?^uVjBjh8j+0%xq6(}i0@J#I?i1Z^g)}OM>pZX@%P6oOv?-)ttv|$KBZV9_xrLX!N(zwn;S7IEXvQTg7!#g zMQ+3zx*5lx0yi(CS_rFxP+mU41+znxQ765J)-{f|&Rk$|U7dZ+_348Qf5e{|V$L`R zGJCTJqKK=V(h(d@rk0&5Tg!vxf?VY0tVlgyx#mI)buz7Kq4NKK zlp7()C$AB@>e)7gF}I;;1V?vUBlk2@YzOyI#!VJ^nEUO#X3s%P^@&^tIYUsrPGLW? z4p4Mq+y{lJ%9XMwpdwSri5$dtb7^BRf_6nUT@fr~tBey+O;KIB(zHyK1(|ZvLjvoF za6Yq*3HbTkXxcrwk=2{B$m4s+F6T+zn@+Yd-jf?SAg&^F{u6;!p*m$KL$M8xY^8{f z6vXR{VpZ`Ma==G}ts*mbWxgs1Rex1LHI*jw9hWC!P{@~h8s&DfxdN>F-&`WE2=QFO zWLAn0)q=1hZZA;ON2nq~oTFxC;SoI^8)=_x=QlTRCN7r|_3FVx!krnuLrXsJ)iGT6QIsy!7A?YS9y~8ABj-mRb-2K-^HAgiS^v+;e0v#dYSG=;@Zy{eq`ML9!QSzkX+|#kT%Vc9QNGRL*sCtP_;UA?s2S*;I zsyEmBCXX_{o$!!rYs=Pc4aPT&M{QcqAa6d;4jZKJCeBk#t}ePN9>s}QoH#!n^UZp2 z&G;i5|Kq(s8m=Dst_fCPBYBtN7Ej-uV4!EXcaM>K@LMDkM@k3+Q5l&>h zoFHu_PQFDf!&QC!nrQ&4vlZevUQyE35O0cDn@mVko<{DIq(oVS5g~%V`Of7kb@-CZE0-KKgX~qs+z&l?Pq4F$6>78$mTh;z?jOj6k z?E^NX;kf}8Jhjk+Tvtfn%l2{d{?_BIEx!AG6eG(h`Zl);L5k}vly#AnB9v5s;qcoz z4>&j1GsSGQ*RR#rJ#84)M-ThqjA2mwluL01^$JjxBF}lmbb8PYZ4>{J!y^3E5+;~= zC67TWM{)KePNu*p8G7^Z`1%<}dS(&sl!;;ysxxG$OhbBai1?ga#UID%;6ypN3XCB` z&vb10%r3lEH+12BCUP=|jUI67qigEP;(<6mnkJ+rvR*X`l^cOKEy&?V#`K8ko#Flj z2IRv=;Fjfv_KBqfD5>^-=YyM~7jmYZ_MSEMluh7zCV@9|y0t6<-3i~s7F@yH;hLZ= z+!^G;F9&nN{~gQ@GomSM3Hd~0$SdkX9ilZvIsEfR&Efnv^T(-;wWWqWY4f(HggV;w znoKqwyY13QFe?Nuu^|n)jm|q$C7sXE$3qIvSk~ak3MW$ZJ#y|~ZisZcmZ7B9H;tlW zu~{WSFi9T4D2aki;+r{1XwH$mLblW);IoHPPNuw0Ema!XXpq#6DH6X)FA1A+qbt<( z!$>8gw@-wEN)Y9XB{{w6gW0ePSBzHc?Mq{MPx-a{9uo%0l>j-Z3?(a+-Qz8oj`du+ zV-kjy z7`{+ZbE@_be9|wT&mClk zZ$>I``}BCjpH{~G%t<%;wZp1uyBs=zmoG^@>g%Sa2-Lfo-qn#Fv7 za6D)c8U^|u*V@G^2HYw`=+45u{BkBu)b}0n-}GJ=FrhxgQ`JZXT#$wHy=&SE&wy>| zvHNMo*j`*C$>v>Ie<^02r}}T(WrtRCMu*V!t7%;{Q#iJk9dL+xlnUNEZQ`AX?DqLi za}Fo_m?gmO0Ex6^drO>9hWF&-6B_WYZpZ-J5@*wve3E3x{L_f(z_rH%ry1x5hjU!> zP+ue7?&02HylVtH_J(l!{2FnO=WnO_Z#BCp^8dyA3ye%ICrpHO~*%8EHm-G^Y zpJP+_%ps4s$2%SScxqH2-N<}w*SrDP;Ss25BK@>ZnvZRrHw2ivy_KIR1XY7m9$cAY zYfb!-^E7+)LD7A1L%K0o^t%m<^cjIx`h{{xThW^v(gIA4UsQHkZC~GIOUc}2w;bN( z7r$BBd+&y#ch@~w^v8AIDpJ<@#Aa8u+rLgg{=~no#g&hLH@e2~ZxWLqbjGW*@vky+ zfw)2B2B4St5l^o0<{i1-+~v7($<(DXJ@chrmJM0OJPYe{rZ@u2^m%NpZ;>%0pbL0% zUw1Z&tc4xO^XXDD0xX^Zqa(mXodLjJIPB#=PvM#f%Y|h9tA85f!VKKG;N{cU4kfk_ z#s4{8&5%hmVo+*HLeh>{WSivj8m*1n5CvKFp=bPblzAspXi?{jx|VQKAaHA=C8YBi zdv%A|9&^}!jMH+)yo`L>dWGS;boQvj3Dt&vR<6;xZ)Mf)T9m|G*03>hC%obO?fSIE zrZCM1FN6E0JB>qi-PVXL*M{Ho$v4DtC(+>ci>Wtw z`j`}t=ILXAznrJL4=)(0v`k-ELx(!6u>WF)aA2>qD*^^xvZ>BOMH~N8`GO zJcT@LwcL+`FZi{53h(6sGl=rs2Tou#3`me~ROmi)kg^wb!dPLeSPi?atA^3Uw zLh22k6^vrg-tg@UrTA{#H#qp!eG5M8?ZK_Vo%}cISMxi9k0xBpVa%V*M_}k-kyp4S z5iid5==)vEmRe26bRp7KAGk*LjeE5nWs2CGH>0dUe$Lg6MxXn34sE^B3Q z<7k`DSq@*Tt$+Qz|`tni$(vvS+>{LWmulPH$BC_j(LcwVZIF|cWi>lzRmNo@6DHN>EcV)e1FR# zejiK)TGlY$LeEtt$-@qeWdRFU7QB{>6_y^yL~7}#3i#mdNdRC#pT8S0E=z@O!u-_- z0ynwt4>-gVZJ`yGDDrB>=K@e=>c2S}ah@a%e*vTd6q ztW1&k9q(j7#S$pydP@qNnqKqJqmXGN5*et(P<-L#j1gfk){3TPl=hKTZAI)s}jcwCYUpSzQe*(L7wZDp3Ai zJ;IN}(|$`7VNian8sWI=0Fr4!S1nP4=Ua-S zRl`BbFI1Y*G^nVdXZ%<-hu3KOBGyGcjjb?6EYbN=<1$_63iC4w(Dl7dZbBPB0Iz#}UON?eA4=iFcVh=V;Z5 z&TX`_v!HHi8cG8Cu&~6?ySAOAh|d>BY73K1Ek%j%LTfnww&ufD+=b>LOOyfXll2&I z-KY*7!MZhK;068f~!6{WzanNLIM zx04X7d4asHdV%}^xdG?yTCfg&bS}O#Y>|BeQ}_P4@rEuR2gV`fXa+#eKOaAvyW1As zkLSs+`)Sn@edAoWrY}x$gxI#37Ia=l#4TlCs{p z%m)5CQ^{0pWQJz&E9b#QaiE6qrP$cjxNe~8yk)4ho$q#f4JgGH;aGRh^4{k9sdimY z`Bt{47M!*Eo)R#H&EX>8qE9)^(e?G_o;+|2FfL=?pjI~lPG>;cpqa9NoI$vtPuYr6 z-R+8H=$M!x4v6gyJjzsp-~jU1CK=&og>jBCIVHlvw zbI9LI=7=eLTz0CK;SQV$YahXgS%U&@z&cn9OV1&8i#-34Ib?_&`iQFer2zBvE$0nj zk#v#cn~(}^e)-%~EPLh;UrXBE7KQcj#e&@pN(zp}ZM{=k1xcGsut!-&`p#DHtjo2o z7HNxX-6Dw*$fq$oly~?-z!_pnW*T!t1^Bl4eUyQ6Q3U1!pT(*f?!4Io8-x^=fa(PX+*<>JYvEOvf;_^ zO!5+xxI9@BobrGR@gT~Y3)wLU>X=t~Etg4jGUf0{eD9TzRCt%*KFXJpwIbfrk0x#X z_QUR@CwE^f()rxcbmQvX#rn*^!QJVsJCGMB9#~{t{b-3kf3P5M=+Q#90<8T@0)Ke4 zFfg)`vJiZGva_(pH@xbn&bZ$Xy!YTFd7D2liS#XuJcdhHx21)Addz(#(F{w{rzfMA zyn51&mVi5uAF+J9G;&k4sVIN&?7DUMcXC}u$^*q*fBx{2doyh7i|I3eFx_&0(b;vD zlyA^q+kN=gY`NEcWSt9E*AQG;B8@)xQKuV}P7xjb{gP6K8WHgr^>!)F0-CoJ&o7MrbPb&NR&=H+eCK zLoU}Co{s%_-mKYLuc@5GdyNrObZtE!4H2C?ZHl@mgUlJzprw!aPfOH1;6w}v<))~; zC!;5S(1!4T&!j$@VY5av0{UJz_-l1N;AV=fy`~;}k1cEojU?<(c43uZCa=zDaz&R; zQl!)3qlE|!2!C^reM+@5=xscci=#YPBlEG}d>X&DaI#RMNZ9;gYov42*d{%~8rL<~ zZVGv~+C!XV(J-A6-=0C1gCCIMx}Vcaz(qXtnOex`KcZ=WtWl=c+5;7qAzL(m@JI5; zs-RIBl(CV27+H}&7`OHOT-|bxAgBZ?mXc3W_V7zLTxq=F%I~Tk&4cy&S%Y@=qx0hp z{8u?3UT(kfiLa2~RQwuCQEJ2yrE6$(_bE9;9*yd(KNmkAx3476gL3ydI`2k#BV15`>{`Xq{4wwCs6DZ{(`$W-j-Q}H)Q)1FWY$!CnLprb~mBk@*d?X4DR9%*Sq>4TY(jA2_x z91r9Vnr@f@vo-@zg*~>>PPEH)H)Ip2rF?_Pk=NcyG`&7NMJH$Xh1Rfdv$ ziE!ldt0f&}jnDX<63AZ28>n#QN58%fklGa|WUz9S2yzv&!Pu`qL-QH3;xnvwW`v$Q zpFe1preYma8Muq=Qp%7i^0d-?ek!(nYP{k6aT7fLx(R~V&LFS9ee=eLc5U9ic@tl< ziQlrldF$pK`0>zIO-4!v_Ts-gPnh5=-t&8GKbegC$NgbxQud?VGo!&Vf7u6>tsadx z9s`%Ns7X&+pb9}r@c%vkfU?u;I&gV_MR;7KSsLS6Zl_{zPw69^=!R$3aN@ou6A}$w zG$6B5y{hX;_S%upB4nStNLqV}KI8-wzf@(V{ctLWz*KBlc-T~}+ zWQvtWn=4y%(Vv}X`zra04Wh`3>)JHl*Y%c;?9&X)^PG?Kn2@HFZ(xfu0u}3k=gJ6k z>!R!+Rr)aBpC%X<b?wrO_>pr#t%5&snL8d%?0(zM+6tjIlKpC+M zdCyxedRp1YzO_ujilqMMAIJ1ROnFTY>%2D2^PM=XS1y*q z>SZ_~9#(c}`Q8v3jX}*@U{v!KxVW2aY;!UbuIJqwNT)&BBjdDH7h=O4@{>#8TI`>$ zwX_odqmzsg`u&gBJbSRGJz7tDw4U}b0TnshLdCNe&+OIC?A6ZfWdi)xZa*7kBELpH zl@UCT;1!y8!l>q*aPbi)V8G*y`=#@2^yvAdT?XbduXuRZgT!M|dB*ou;;lX58CQ>kIx%B5s$yna2&5OJ(BwgPxh$IVEqN478vb7uhC;AF?yPR=HD za4CETXBp{mr0|^%o6za7jCAtAd8=_Qk8Yzn<={HLW8aSY9n6m7+xKm+-_C45-np-{ zzLV*s+C%jnOvg&q*t^aZ++Yab>pr?cAHJ{X;s#y#8+e2bH{lT`e1FmOhV}US0bKtR zcz2+ai7=gP@%O{{`(gb3uxVkulrwpsXd`QRv9UL@VCOJ|#zp(ksAlUJ zP1rgzwT#Kefxl43&Z{ zyQ+Qe+gY{S%Y>lxF!*vewZFJ18}1Gai>&!1bj}tH#cu8 z=Dv`uqQGjJF@nI0G2i9!1`E|potvMB@%j1wo0IlM=pp|Cih7z08a=Mlq*-s~8GpX) z4UYPA-}6$Qc$&}WyScunDvdP}qjF2?#U zGbqc&zjt2-l>u{9cY=#LHm}_*KLVaSg_C@b=snpor`f3E9t$g3&Tm(MpW8mRy<@v~ z`&{Q(XGf>EbFO2oqoc#yk)!?xKi9dDAL~5AcXaZ+xAQ7L*J0qtI{wIabiBuV5z=b5 zb18G%IosHF&eE}+!@cRP(eoE$bF+Ng+z!Upxr0fm*#VZZ9cpk6VXPBjtOj9hY$w^W z=Mc&|5z1;1%Elhn(UDzvWEURUg-3RIA>UgD`L|w-=`UL(+}nBj$l5&Qu1|B&kZ&H` zm1~k15%}l*Iqz^1w3GGS5-t*(#d6r%P$2|`EHFka1JVkYxH8uzG>hO~Ro^0jXHvE< z;6AF~Ant)u1M-?9e$)HG$H@MzuViG>Wwq~&+nmW0{jH!&izfe@BJP<@VA~TSQ&Q$% zB*Wq5t%t>@{V0_QSp~Y*LMUEF{xnOWQqZ?j<^xu)Y=I%8nknF39AXt$5nKH3x&x-{ zKZ2{iB~4^n$jiC0#i*_kc-Ptu^vmVCcb!8BQ!IhPJYhD$yCEU&ADxH>t^9^usbvy8 z;;%dnTSxq5?|I|duS()|u}v~%{y4Ffytv5g-nX@a@~w!>ZL0*zta@;(TX=T!TU)=L z|GUl4wlnVU`N?8z*#e$&*`0u$vENYsj(u%pJvBhO)(d#jWk&+?NawpxT)AkUkdioO z*75?;y?WKUaF)mY**-J&o4VUM=tDSv?SFCbIDX#q4;+l*_ZIwKhu@3w{Av7d!Os`* z_osMn_-3lBoF;U&#;tnKX?fODfQ5$^Yz$;YVXMD+N;0wUI`%N0^$5=nio)zM^_s(W z*?O!7@x4ASxywIQNx#WOO#|l09g4Bf5|(%?WHnvP*98VA|aj>o`rt4tb@EW{i?y9yq!Yz|R| z_TxEJxJn5%FYacV}ZK*Lkv| zyQ8s#>&RB06&xIT#RTqOnV=6_hC+-Y1A}GBSaFJJe(Wx)DWW@U=r#5{>!PS9HXP965?m$q z-_*G+zVX%?&8n>Llk1?oSms5tx}{%bz(^btZy=w?@_MB)2%g*JU-J5BS`$-~wgyUH zQ@389;nFso;WjPb8m-cY)4x#N;+k)oN+@6Oiz;)tn_nM~iD=D2XefuZLBvOA4ys|% zsGdAT@fX|^VA}o1m90?rH^i0!V0E1Vt17%{9crmu@5|p~su+Z8%+8V++F@T|pk)g__P}VRu zf-BX^y5s8u<;)PsH=oxkuHtOzC78SED)2^>pQ^#Daoa~^0Am#g-IW|{!2NNonu8Bf zo_`J7KmXhW<-at+Ahxn!m|z?~YyZ^**Kzr?yhV$ykaP>?JinC=)`)tMs`$JoGBxiB#}6?z$DfpcL$k+RN!E+W1PB{pv*-bb*Xg<# zyEauR@Z!xbaJR0jcD1gn!d8i`0$Vw@GHf3D1W!$QLEr>Ljy5y==#yTA@A=qo=dZ`Q z92jGvej(CoU68UTn?e-ZQVQ=bL*AjMP7Vi6$F9X*)Sy*ROo(@k(K307sPFaj&h^>A z>e;|Ne+Qf8bMl_RszO7=iu>j9X{wSWA!pMe>Oy*{OEikFi2D9*4Y$vssx zA=bBp4snPcsb#(@@uf|F$q5CSTPPY|-ReGm7-Wj9&khlu1y(+Okc7GdNg|= z?xv|-rJN?yKU0#d=fgkIWzzkTqIc$FfzMU(xX9dkTnM@JnvdFet4k!0LaJHyfBAYB z_$IC^fBej7q!~Rd%WwICGm;;XUsUF`q-|PRB0Q6 z14&l04Lg!-uS1ipA&(_}Z+}S_(rg!!{L&d9EnwOm6R^#jG))D@;Qu)znYj7&_viB& zG?wn%xsP+tUk|`ba~fOxH%}R+86MexRLg7DU#TN zze?ArOyauouIVn+6X$-ZCzd^Bs$tarrh7FI*_uU1lhH@%3T3KebzO1gm=T7a5`p3h z=Us!EJCLtV)7Tn8N&1~~3h3ot8K=D5$@h7$8EULYhc*+s?jaW;AFZsX=q}Fn^2$8z zug84pc`!7JMq*XdU&J91Rb9F^G4Uy0>e$3Y*7b>rl+1*KUwXx&yyA`rp911-N4_pwxz- z+=)FVEMwX?yL-qStw8ezjRH(shz9d5N4$m4ZK$f9G~ z<*VkfHEPj)3=F;dZu=O#t$P^Egh>wrv&^aVoH=BOp`H~pMd=*K9PV$1tEX<7|X^{LSLau5rRfl)cqxt8{m0TQN*$ak5o<(nI5BZGhw|!SSDlYY)R;QIYhBR58N=v ziCSH7td?+W|5lkuz%_FmrX%%MrRi~cgi9kRJDYM{P)1%_RbayvV*p$oI^MqcPAS?F zM8&*9oWb11T>TB!3m&JUKkufo5#Mnr=FXLyaU3g+s-=l>O(X3Sd2{e7(y|#bxWOFT zvtf7xL!Q-Dgj9UT6b)f|N<)C@`>|zjsV|4bCMfCf?>#~EdH` zwr&Ho->#{WG!Xo!5%N^F=$^_x9S7p)!;}8XKN|MJ+rwy2jAoV!P@gHl`3*dLJ^`@F zHN_Uh5ihw3<*%)x_gx)Ju5nJemAHQbu*Iy-EoLcXGgc@Rg4$|vO>m92fl2w9 zQ--jl<#re?H%mcG6pB?|UNPn0Vck5;cjclW}@Qi>RMq+fJXtH+A^4ZhQNUCLX%-|MvDvk3-obt3De#COR7m;Mfcr zO(*eJ9ev{L5V*2SVY;!?t$4-Oz=^ejlY^pfdgs!au~RXHMadp!L>~*T^NDFUOoX&C z9n`}^UfsWMH1W|DV=O&xm%YKXsHvCH(!dT*v`6)<0w79qqjR&o0q11*a>cZ(r{#Ey zJv);+b{P$qQu>rpXqgfQ{#eT0>7+x@oR z(g!Ci!4{9=C{kIdPV4okOsO=V3z7%n3_XJ5{EZ4oS}@{}7t(Oe3NiDpUAp%sX>xG1 z078vUZi=fQDd%wT*_#SZ2>X>1Ro6zbgRGC>bfSZvf8=73!beUIjVLLqB5L@K( zZHJ{!R?C<08>d-XE<@zYQ74*D+a(1VeSB$jDLa)1 zY+<{+#ZRNEe=4@lq>sN7y1fGaU+?9^HXZo_XUFA;WDPXUuMau~95~+Qh#Ty2xcZB6 zwDn~23Cvg1`f4TOe|+5bp~G3{1NXyq-MBXwLXQxawz%^OV|x=bi1 zP*X+T4IYoel+S{+-U^&CE4D`W&c?ZtBzy0GUq^HsoQ7|d{e*Q5l{pGiBF#4h)8#aj z9&q(C>J^03@`B%R1Zrr%|2XQ{d1{)>NIoe&Zt1i3Fz%OAxiHL8suc#!G5u4QPcN$G zUO}UhoOb#S0Y=jVNRL~43^L>K;|Rz&4-{Q%>e&;55?iOGYcvtOoDp&8)+@;s=6idZ zcKA)|ry&7nBRyt|mZ=$rpM}9cKU5m;YeV$tLfnC#wKRXt;DZyrpI0m z-CNAes&9s}XZ^M#j4rDkd!Zy%gjUm`rtM++zMpU9`h2*+-pfp};~K(vQ5!%S&LH{lUD!X8~NXHzx@WD{t= zSETO(<+qw8Z0i00#eJvkhpu5%@F~Gu^SQ?DG?VYwR6XCq)+rv50 z>{z;Nix&i!2iIv?J;5ToYNe5O<1cY%L8Q)do0j%m;vlPA1aE*iw@sdR$SNBpw}$PI ztkE=ykC{GLl5g%3c7NXoNi$%vj`U|&u{PP<1BGu-sc+LI%9D`Q&1gc*4iEZf z2cX8RX7;A{>AR>`S*K{4U)`4c!(dY(O|#1^Gl?7L1+ zI8}-ef7O5PXtIxF$I$aR@$6XU8=?942D9F<1<5wI-=Ol_6su<3y{00q57h6E3@qH@ zH>=4f8Es94N#%MAfepwzW2lEz8kIN1s)nA0JuiZtrBtfW=bUWA`kN>rRL@h4p4r_{ zVLVD_gqIQvCn!S3)=iOirYPn7NMhPdB$kfRIW-4A9Z7l){ZJt~_;<85DXL)}P=*z> z?xi?i z4od5b8tcv__D-ewkcdnUa;GEn~~j8h?&kHtg=*TBhhtH#kcSu-A@3%0BqQiu zQico3(1#MFhrHYts%ZH~jmYI9<6L+u8ig4pFril8ox(vPe`}+{%eLq!q1R!}G$xN; zFu1n!9RWhM5@dG)wKSr~hnjlfcm*8E%a3=V&f%H{799q=Ly_Iqm*ILZ|0l2wZq4U8y+5N+Y5-Bd3(b{+a zdctLAjTV0QY@f+KJ&?vRtZ7$;&uB^u%nq2NU2%s)ihp zfvYHAvdZoHxlUS-Tgr5zmK8jZw^H)gtqiUap~i+(L-A2B=ueL({_#BHea>%C4YA*j zuyAa|9PJ1_=Vwj`v5%2jajxS$(nkf1CytDBaoUr8kLJe1?wYMoK1=SdXX|F@k&Bsn zZ@sDB{=1qRO_x~R)LW^0{5#PqWP7=Ij#?m@qvqzrmDWL9{LnYDp?Afi{6pW& zFRNkp=^E3YPi^rVVpO(6wdknu$(EeH#l=~jwx1edY6SHq(HylritGF7mul(cPG~poDYmVKa=0e8Wv{<%;+DS<&Th)nt*swOO zcdhg)+JOb|sxG6c9W#K}2%Cgcw(R^sU|f-aId-hMT%sLNb1d^ILnV6x*S=b+L4_N+ zpQtt!Pm|8&L5T-xspI_TdaOInWh&0b+~=jUa2#(|_O9H&mMET$W`iwuE3tSCr9k`+ z4cvO0(S9}e*`kH2_h}aG-r6S)iL)B)`{-nijrL<*-luO;R--3qT&@n=Ww`o-F`O|s z-f8qCNxw70IZzVZ z5OVe?c^h~`b;)};-#v%Zy0IVKb3kN(uwkJDwT*lsVgbrMX71@vW-~qR1WOP3Hs-?~ zJ+IlCQsOtA z?Rtc*Zw~D_y`tF%TJ^}<(ZuuTAnBj1L^TjA=!BsbHTbZ<&MO&oA4=2vX-MVC7}|f* za%J+3ON(V$OjGc#xUNaxI5udE+NcKkuhsBf(hn`BSVqcEjl1oq#>btjj8RAGNoUJf zpIofwk>+VJ;p(#D>awt0kK1Q9Wd!mAOwcN`Qk~=g8UZt|8Ixp29@?32MQx_BZh5du z?^|}Q&|8VT;IFl;KsCmkGYs-Qb!k1`l&@Op!Q`(ld~3eXjV*SuWhf(DzUd}=AU8nk zbJ8=#5!+r+s}esl^rqeR#51rZKE{+E$OzaXbZRDxeAL`vi)1XcIA?{a*3NaEs^6oS{~Ofz#fk=!Xr$r3b8TQP zOK6~t2byS?M!X%@`sV%zQ~j%s(0;Upw8u0tjmXcCX0EHYfp*tO;=L=#cdGxMehUFg zRi<$#*!F$W05yJv>0;lihF3!dkde!pj?QeP9XJ8C<1bW;Hmk8L1U2O8mGm;@-WgRH ztpGWGR-;L_?Sm4gCu`~AqGElI>*(Mel`gfahke}*-5~}#LeFB2`Hez|P7MUCF-nx|O(e&88*Kas`U0Ub1=K-!(9jqDNG>zuW$961U*~%p{K6)}0wHi{Gl47G?Oh zY-36a{6@v#UW)fD*7e`ls66F)Oz!3KoyOZJ<7nxWnj*GV4{D5po(Ul7A^ECimW3$e zc2p#@g_IC>>7bkb*L_q#>DHj!ao7I3N?pEY1nYyAy_~*(N;<6xp4BEqjCf_|aJ;Ne5@@@|1Ff zFIPdd-NlCazUNbK_P;mzUTXOw)zU*P7w%$X;lF5`kSZfu3{k=7vNHjZDBirkvcBTvkUP1M|t?I?Mu7@vPCD) zb1Y#U$F3AA)+&`xF<+l3$?_ShzI#-5^Sj<`*nu+^UckY*yczVCT^^JOT<1&}N$j}{ z)yq`kpnjh@Zs=O#BV0tvdb&s<4MGsX5fjnRd5MxYGdth_auar3wvdQs-N=zl!}O`iIZh_bA~5H12!Zw0nv{$*CK zD>TZ_)?IB*`XXh%XGmpeC(g#nC=*vA1^xy8fT-gSj3n;A^cs%KPpwHBuUp5|);+d` zxS!k7NEsc+RK?|MAjD1PTKl_S;=U2GS*0TCCp4y}Eup=r!Q4pv>qPPl;R_XNvQA?asCitf*VR;ocu^5m)euG-p>#Mng; zwKd{n!BzAY-*sN+IqYVp6e{N^LJm(y7OS+OWBaK?D7UdN6M_>XIXg@Fhkg*F)s#%7wg2oUIow;hS7e55+x+w~@gK zW30-(bp`%bl3ayGsG7}GR1G4BRXwh{M-8>)Y1ZAG^rB`;t6QgORj#@fRF2-BOQ@)k ziq#T%5D2L{m9972{V07&0D#yPn~<5 zmQEq;cAj5Vwb~*}t1aEH<i9r)qK?{B=gwUEsUJnXdi>WlcWNfzdskdv>w zSOVMhm|fe6$8W#e7|)t%E&Cq6|9klUZq3l!09@4PG=+tj;|_Clk+l7p?IFCA zEh6$~A?9^5v%~(@Q`(N_{Cxb(plcJ;R|e)-eNoC|vFGi!$J+?6>$8o^olse#l)(I% zCe%>xI=ay)ME2hK;^URhDf&IpY=JwzwhE< zew2rw<3;lDa2F3N{)LB+@%j|+{{cTo@iKJt5W`QK%)?B)KZN&Rr+a+<*Z4UXpI3DG zUV^p1xB5fD@OTWk(me%R9~az_fWMioFe}E2OqFqMX)QEOQx3Kg5~HYri#$*%vjnpy zW9Pvw8BkDLpyf`9Wu=TP*;s4#5)u1+{JcY>=+=X)=}D{pTtt7axYpdkY+d^F!N&;? zo83=m(r*I5ooGzn$p9S0>nL6s*sp=zJQQFbte;QfUD{#mrnj9xdT7F3;Df51lMwd8 zGbMOmc5nXbwsKRE?+D`#%*kyjGSwJP5$1yU&S!(>e3V@BeMQ^a2#u8~Sy3cZai>0f zh+^u6cM^kX`R{Mvjw0m0GURV9^1{+0L(KJFM({g9R(^lG z@bw?~4JVi=Ty4H)(XzHONXG}9+!BM2b8%HP_)E7YF-*s?Pn>(_L%8Cq3@2@sbTXS5 zWEKg&)&JnfQ+-ip@6aS);rix9P2620iQMxG^FP~89!W+h+scW6lK5q5QNGU^ z-1?=j$@BZ!wszDmSrxVY(kHcfZO@clVv77m^$1hxa|fV=Ep5@bUB<|BZJmb7z?}PM z_@?To+6pOzbO8-tf*!HR+Eil`ckIyL#&P@qdS_yxval5&V5rZp0^^G!2pvz_~ zwLm~KMCvxaWv~bE9f6Yj^8LJOkPk2(p9xEtN@u_f4R$fR+0N%S8lu|`6@kLV(@@H0 z_!#*;24vP}39$07EPQD(S`}P0%~t`x-pKU6X_y@-#t|GMU8kng8&-9ow$Es3`2Pz{ zgdR$Fhf1wWcRWEzRGF@(`SJqu|K$-qlKAQ9c~*eG{oTaG-6!zE&u7^$b(C+?6D|Gz zZw!7T!a^BCnRI}qyk zvqwk*yx;gW%H$+5-i1NRSGq{*@UthX_3Tbnx8G1X=|x>LTczFX(Zn{gcySHaD5bh@ zs8{z5b>DtMOttBb+ixq@-$uExIwW6yN07Ai?fTn@2X_PuZa?cxy=`_X@5uaY0ltaX zpN#@k;%6~lALR(}9$wve{SdDKyiTHx-i>A2@EXATm6VGVzh8z|IbQSd`Z``M_*=Pg zQdj5TTetOevZ|XDM=yEG-L059`7R+sQ4k-5I2ZYH%u=iLd>B<;LVKb-7*I~J1g2sH$T%i0 ztSdIE7DWmpMOwXN2R+6<70p)*xqZ`OWUKsCJv>sh%c>c1t^PuT>S-}hexX&1nbC}8 z`EpVCj=c`Z#WB~eb8tr-s_Y6y;8}3x^MmBQK{*$a{u@;=Eyie7IA^(i6kAYw+TP_C zGamj<%QK>n&5UJoX;IlA_^cdSe}QQ-G;xv(g0aRTx>gW)M>f&(X z7nieS#v2Tl;eF3#zLZA9ysI89*WttuFPr6G4rN0Qwz)_@q5SC(wfRRwg0!^7Sc>xE z$eTk@S|qa`I5{xHiKTmo6ZR`!JvMUN&@??Z<;&>EzpfwGJ~XU`~< z?zJ?a_Ag2Ei{pWy__`rj@;dGLts7%zGva_x^j}m(xg?s`hVlB=2r85K{*rLAMZdh1*_##1=%JeP zqJrP9{Ph;lPFKxXR*dQ&#rNByLVP)nK%+CK=iXpO&kK~1O%@s-DeCgW$@@o&<>AEc zOHei%$iUh9PD{8YEzF38Q4Z|T4_2~oB+k3jUwk4b?Ci>m6n1Mx#o=82j4n@|#JI4O z6i10(V0u2T)jV9QXe+vmWy#f=7yp`8i!8TBD@0!CjOx4aN`{;hcLt%%3U_E!)`+V# zFJ34YC^XZuh9&h#RVtYqHMiyTh(U^W5N^NKtiN?y%o(qRLYaeL5m&uuurNaBeR*B7 zA6M+rH#MT}e^9?fy0GX-7ev{TVyt;g=PSvUo>O-tuP9P!g%~_mwKO`dM?_A2VZ1+y z3FIb@zyZ~0R+Fp6yz9kO+%BO}c#!@tU!lx$~1zJ#jW*h3XK`p9qmp^#Ot|e7{`r#F*32Y zX)>XrnPMf_jun?&5iu<3CFBy;sMb{c;p3{up~xYODdJ8qB@c=zpCRqopxM zOl3Db;sRH!j80=uinmW=O{q~MgiaBqqtj)QnE)GML}M7(bfh*u3~qCDiNsXF$rm+2 za)vWxN7yD?I~S)dZo-RVPpdU-W-I$Z8I>hfPPbND@bFNO#9i*|ki$J>+-NcaGi3Z$CO^>9hwOyL0=D z_=FH-ywhU2efKN8etx_`g|al+5#8d?lP$5?$A#z)|BMq`{YKe)yuO$agjszAe{pfH zx3O+otW!tISUcbFUk)%tO?@*`c|{vkhs?}%>0VyLiC1vmAHb4>w@W6=F{1AIg;K{7 z1C6pOqZVHSYO6lOoHA!516xS#)3ISfdDyOEHQWL&Q_PC>wq0a_#@Zkig(yNJIoqHV zjL<%YS;x4UN(Z2%jacQpC{ksaFtSKYkD6ETWoFvrQH?nUkxW?18We)GxigV6Ko!*RIKu%T!hQr#?6yY!aguaiiP7DD?Pw=Qw!2p;B&a zhnrS@#|5zoES?R)7Z?{C*}Fm7aBf4e$<^d@Go4LOi0*w)oPR8u+|>ROI~bTJF~J}!#2D6eX? zd%8!XCn$d>jl|-nG~|dbpi(R#F9?v{^v{}YFVgqb@-ghE9vl9=M&}~sx;J2nYUn;Z zMOSBC7L+ODiJ#mc8A3klCON6mTVf8>#=oQdXR@@5_F8Swj_Xq(w&CS%nsZM0-WcrCczDQFcYC6o@92yw(Ad;a-)2 z=^7WYcE2H7Vz~{J8H0^vwpjNz&(9Cmf}y(v*d7`udu6Tym4+S~q5rL9Yl`lx{BOzw zo5>0$@9*#eOLXB=Mo+K8hzmEwM!?OusJtakqjGDQMtQe(YmU5`e9Q^E{ZGRjs&eCr z={GDXFN_Prx_7T<9*$eFL~}JupD8c$Fe>AOH@r|;tJ0iJN6O|SX^|g?3eaLn8=yRC z202hfWvRAlY8v+O0MEyqO4AhN3W;)iQa;or9Io2oQHyN)zjEccks6XM$wJDVNPPEt zvV|o?@uh^9M!CG4NYOvm+g`LGTXSwCgpcF;xTGoB@Gy>yVRB^R4Jn`ah7IJQo2g8Q z4qqD1u?6X(b@-4tA6u1QZxWpwVk@QL;y?4y@&ymHzJwl777QQ96*)s+kx2v}r@Qo^ zeXqlv^pPxL7pqdl%rL(goq22Wsn{~zNa;dm^>u^7I>!(>d+{a?lu z-Hx3x5#HWa`5K+6KBbBqP2pFtKgMuB{?CPv9@0jpW-T9tp_;f6XX-EtZWQIIjy!^ ziBE1$?(^PtwC-JYT`&NZIcudgAyG8y}^atc5FGLB|4_wRH2 zEx^I5O>3I_n+@S#I|rTyzCE4ml%Zg{(_FYT;KdQY_cAB{*BV2VvV4%Y2m8(=C$r~xV4>F-_P{YO zi~o0fnXnKU2=QTW&>+4a@aTLwQ_-0S-B@(bhXQ?nmeH{TPQwqK znfV!w^^H<|gdZHWG zh3slv$u2+bxb^gSkfi_EfGsPoSz*wU28u5Ex-%0uV zF>{#YSE1_Gs`Zu`aLmpo`Y$nFD1FYKr?4_7nfF0Cm7l5a0zq{yXqz^(LFVh~UI7VKHTXqU= zOJM7^n~CaM%pB(Kt12IJJbeS{G2@B9=38(!AztdZ$iu@Ic*y-DKP6}3=G&39IJQr* zXtTf81k=k>T$@#c8(GxQ4akW-qIOZ6{>~niSPu)jSlRj8QHr{T!-A#V;J<{ zFMogC1OuU$LtFfCq`z@8zlfmkZT^Sm)#F#S(DQ!&g!mNa`90Pl=ye<)@#sEZ#0x)F z)e%wR!o-o1)Mi9#JEi|7D&7>ey>Q7SdxNj7Drs>dr9G)mh|dFME6Gw9qF!XewfxRS zJ#yUjLBJHR`&B_Of7S9;(N!xo5c^m0<@-lSN|h;J$1?3rOxOTyK$E{H^WnJ*4Pk!3 z)J2(_*)Y{}HX&a`8Bj4-A>=4i%n^*Bo)lii$;v8LcC4mYJ_grMEz|{PYsMJg*&pKf z-nod-VQo5J+S!!t;?Z8Wc}!|a3qOGNX!!q(Fr6Qc*yiY-kyv}VN)jjeR<;9ks4uh}=XD(UpX2AD^L%Q}-E%wdoj)YI9&F&lKB=qa zSW5=TwZ=$pv(QP%EQZM88ZK<=vJNtE=&njw^2nc^hrXU)QpoiB>7?h+r}$V{pV!DX z!W`)gW!cPom$YWtt*u#>ovk0VrqFtNbAro)Nl!-~<$|0&ug)m5QWB@+Lmijz-XIsH z-@O!5*|ZBq%U2CChoon;uk|?{!FuU% zUR~YNpwK(o#CS(n4m9&UFNekwTaczG^7DG)ySKc7Nm*{uWqES-Y`t(`zVjRp1*6Gx zbAwbTf%}6E+$N~DDzB6lE@!LQLB_>AuDrXmiTTFPmB>M#U>_Is*u_J74xJBz6Ny)D zC@C3~1BBKPY%;peCVqZ_1#Z{gLS{PCDI7-&I4mOfqSGfM^4%hhjg-NUi=N&Ivrju_5g!VK6PPjfdQof z$(=_pG*5Z!qI|YDSp0(jjKZNL8loJWICA|+YrnvY{F&M%UJLsv<%%(E;))kqYB~VU(u^E9o-R&!cz?yQBFlqa2uP1R= z7vG>&Y*y}_f-?V)s1Fg!JlSL{S`dtf~?CvEr9!2N15$e}JtH~%b z%UUFES7eA=ajI_7hOb9nNj~K$1eNaO0=ei~mBRV4PFIB#qYB9;iFozbK zF~XM8-+-1ioefjXW~`Z)2_N&H^_txz>yYB9-cw^%S6nHXT>aVvVZ2hQ4t(alF_^wpojHYcaRM;5u3vHw9VQNVgvQ+zAY@)x16ZhSu_))JH?SY!B3M(bgTxpbP z-pj9%zHS1d+i#xJMqXX@2i=Zhq5j3B^;F+RyJ$;W=ZlVq>!AL7hL#o1)osg>PF(@R zPOEQA^I@l9t#bw;NTl{LyUd+@gfxj)Z`(HOzIPF=xru~2;d#;2-PmL<;CBD8*|@8w zXfN|4|lNL+hm-ethHana(2sCBuoqn`DWB`XkNQ*V@R$mcsgA1l!R*+S*21 z()w1?ISp}htWYEBM}9uK4c3Qdz{lj*Io+mMcQfI3SQ@g|i{#CZCEgn~$4VeeVlL9Jb@vbx-46HEb3J_DYyPhvnT}kXj|x2$6zI?2+OXYO1t@@CEF^hvbqk)v3{P+qKwkb%Q{HnC?ETPpJU&NZXlO#JTJ>U?wTfkH#v zp_XXnkPYCrzHZVHRKI=A4YR-yHvxIbnhW>{OfOVmdb$dgX-dXzYU!S7EhiK^yN)|_ zCb92|V~V}Vr|ddBXaURa&)uP?j zhr7r}n2j*tzpWLcJ`(1`3!kD`^?3^HzFYsr+;k@Khbu;4d&*%$5nIj48AlDeWH^&J za;2`QwfIb8_{#SSNG`nYCm%&$f!E2*ebzs$yoEB-ARlZ(*?R)|3N+)JCOrxeuGU|x zXyZzj_zVFP%5I8DT~mfX^y%3j^?gyo=f`nD%?9VRlxVpG_`t%VXjj{(%&r{W4PG`i{nOYShreyQqysHz=2x`OSkYQ@!Cm8C3o zQpPgMw8NGR29mjUnB+Iu(@z7GZO0JH2olweCweA4DPC`^puMzdNAqq|lQ73xMtP)j zDD#GvEdT7pU(5O8K|AhD;_=J&$v&szt9gBt9>4s@Kk)F!GdwU?0oF9}Ft!%y3Tf;f zyg!Ba_v8Jo-zUfKU-oBp5$^QosqxN@fGabS6FDelM0TQ%kRDl1T0(j35nW3t&3{DK z63QNa#1e3X4>S!gv4^+%%Z@5*|||WGQ}4`!FDOwXAyfmcBur`YYzF~Q*;89 z^j6M54ty@LSg&oBn$_*-`=Y6(=uazao8H$)=S-shG6OIA8TAePw)Lqb8Vaa=r;!U) zXZ2;F(w`Y2O8MsHx}w*LX&u*JZY3=WX(O}mM@enXnbp^ichBNe+2QPc9&qV?LgVA~ z-aFOoo_=fvPpzotl>U|?w2fc8MJS>9I4}Q&EqZ??)6}18k#PArKa1^g$nURo^geu= z5i`TdehlBD`Yg)7q-Hi(w^2Vh?Swp>TP)Lzw)tIk4_a(nAGFxh226`3Ofp`D+woX*j8tXkl^;Oee%lDl`G z&XKL*t<7J}shh6n)XkJxQ<(}CC8|~L^NY9WnLAIX$);d`Gt-tC@waVjb3sPWE6oSm zrb9_t@WI*O7E6}7ME5dL%#690*<>cj$8)-hzzIJa3O2P1>|C_XPnb?ar6t03W-4S4 zWMOM3?EzDqts=f9_~=_pv>dg~QiXPgp4XUNP?i;gN|Yt)d5y)^gi$Zr0_m}(PRk}7 zg-!Y>Y@$&(yeT7)MW^h?k7d}n%Bwmz0{^|Kqv=e40EUEH{t{97F|?q+sb z`}X5F(I~x&BQ)CjdTUc_MXN>j7dvb(H!oc8unX%QmX7rwtbe!hZ>> zS){D-#HO1}FVq-&KpoQtu=bBqweKAoX#SIC?a7q+xNYc%xV|4}8I;{TjH0Z07}ve< zDG&dE@~89^59x8|CNM4EMDr_eqWL|si3xNRe7pp;>yyii{Qiz)?in0)OO&m+`=|ve zk1|}9!^_FB-JEHe=8 zXX_}sEHJZpIf?fnqLlkYrSnEmd-NWy(tBj>0mX-XqAV{1kRG);MQm}S-r|0}#Y5O) zVODYm#x%ldqPb;K_#DML)%a*9QE`I9N52UQ7o)RFhE4!_X{??kRQRA(UwwC`M)HDY zi7qUD&Tl!gJ=xQZOE$i^@$kl>)>m6swYpo=W6FBQwsbvX&sYzZ@Onq@XmeWBmOSIb z-dIrAWn6pwrlT&nmY8>oqJjx`fI(?WoWs^bD3N~{qqim7;f0x+C{Y{E5=TM9i0Sp{ zC$dJgTZo%HGhTwvQKb7cjrf4*O^?>Ka;=%sEvzH|(0ST@o#f#E zb)y7`%hCOR;ytyz_UwTE_s?$p{LGoeJLf-N$;0!H@o?=iIuDq5rfd}tKgavZ@A9w+ z?@!_V{doTyykCi*$G)4CySw)DU6xKd$JTBmH7%8l5h2V;=FZ(Mv=3-hyl^gYO2<8I zRQK;>U2H_~6H-+o@dcsl)I5aW7RCyq)`(ET0L2#5ET*(?okejWexU}EJ^B4*$VBc8jpV@x*G_O60Ro3Y`gYP!Grw3jInfdo0!EKbC0wC@xNZd7E~q)7 zTFBQ2XZDzqr-hNHnoa&T(o(jxS=p?>!M6MWoxj)yn&vx#oLi8sak%=M>o(+`|65Jl zNBbRL1GOlyW^3$DI(nmJBcq*f`0UBBOfcKU9TTNE?c3i&M-=L2oR3Sb?9 z{GE(XZl33~$OccfYL*Ra?Qfc8mmU>oj(c{PdNZP1{M9Gy1HK)ib9r;Dc~R3+XNQ0B zaf9n{fOd1(*pWbTKZi+vgDnF$eP;=9bE$o4YMmycjo+xF;`i&Q_(N@kN592CO=0G| z<^S>ETy5SI4a|@9>DSjs6|RuE=gj0Yf-`@4+#IK~gl@&wT?UIZYjmh}DxQ3fejYKo z(z0-+5pHpXUen2uua44Ney+C^XVmD)P#ZQyn*}Gc2}gL7KEj)l($*3XywnF!?;UYY zsk?0Emzp!_`NN~;IL==ctH?Nar>~PY)O*9Wf#gmPVfyh%2_Iau_5N)5OycC|+~4wg z-sj;q8R(=V!_N7rqgR-<%4^V9K(~t6yO*{p!Eq{XB zXCuCM{^qt7NO+*F&1{%_`05q1YOn49Ppv|8Zi@K)#xRtbWGPTPg|=#uw)P`!@u@sU z+pl{!fhSAV+PLt`Z7bVK+W0qgyfRZJ#|CJ;IT@+K&B|!!T%C1|x!WiY_>ZdeRJPi> z>1~{$_cm?W6xalt_&3(huMUE#kTc+u6vIFHobwtl8#Uq|zq`SQ!Lv^>{S~{eVD!Lz z#}OP?b<*}FDaye^w|i{YrG;7fyT3TQiE8vb*JJ`si3%d5yler*OM{2^N;c=p9iweq53}M{^De| zaWA&3?}~j&w()OkPm6VoTiW3_ALm7{o{RUYAUfI2I|A(Yy;>RAW^VYQWG*zMO`bcL$GrSUkb$d>C|2 z%SLEk0xPnC#kt+G!r=aGp#70`60>`4^Sb%7aCO)?E`ZY+U~yex58@Mv?YE|$jwVlc zK23C9e(hr(zWMRw_~iiBjccb=VPv25tW-=0Zc4E20B=*p)NTS(k$#*!7A}t`_vtgV z{${F)6UA0KS!89}C%%;!8>h_le^5cxd+cUp$}Rligcqjn??QDA+E!JHM_d>vcitr) zfU+j?RI#C+K-xlMi1uqd@Ofg#EzhhU`#(RLqlw$Civ+)ckS(sx9uu_5l2q!+TiAxi zc2V3yrOzED3JI1@#>0_M3{>YTOr>KmTdc=7W`BzjYacR+2LfCChEp>_q?wqnWq<26 z{~wQ#{``63{##TBo#SNGS}NuoKQJG;%Em?T&-08{qtTe|taVMtS}QAX{eGVKn_KPg zW?&r^*V^B`%XJtiYig0MOZZdY)HOgwHeu~uy)*RIuSiAUQxiXp}nI4w%?asJ|08ldZgQbN{=OzkhY)E~UzxOO@e3!}n-G zQ1-uDCiUxQbmXJnu^?IQlT^89alEopJk$_jB(}mdxV44OtSGt%^%jk73C-92yxo>1 zAk#|u;iWSPVbt*cBo2ZhwO_=cy!kZo@FmknJhVo;>puQ)(vPJ~qPLz&DC0rtWxXw1 zg7~S0g0$;GIl9H5VPUW_*|vYewjKJF=^>hrMK1pe1{T%QPU#!&tqo`ks@RfN#${&x z^)4J)e*^P%e?9Novg*%?c{e7{)_V2x|H+)HMd2zb6aw*!#b~Q5?L&)1=ZfsEMKd$I zXkUyM2UZ>sD;lcdz%1e@0@O(qTMt)f+@zKra!K_>Gym)6=vr#~-q1uMa_fDu0@50? zA~tw`7Kpjw1A)9S)Kn`u-I7G!LiOHr&6O=oWyYX0Oq4&}SwAPYhca$^B)Iy_O=gy- zIgFSW=2#bMID=YF_dwG`2@8&{0^gRBIAnA| ziL>kNCFxyhl@-UCvMT8E-B)^sDe=3N_7bblTxnFvp3EZ*!dRh}R+$~gu|ivbbuTjI zMKg~%Ap`Yx$9T33SGSF4#}|mxmVrAq z$7Mis3*ja^bgPcM|Fh#1A#7D&5?NQpvUGW1C80Re$e+4Jx#sT_4?;u3a;H7Qc(}nF zmzi0P>+DWtfou5+s3=heN}Zhr%WK;{G&8OxzL?(`!~zJ`Odid-yFHKrxmeOR zK@#vC&AEGTlOt~RVcTQ5eTqb`bcfQK_hkf28|Ts z%3p@RtaR##HMPhGET4dj^-%1KK^bi-SeNN6ciegkt?etm6QtFB|W zy97V44t(WX5jo~7sqgMyC^cs4aX1E@!a?M;y-lF!Jr!V1YRwm+-ULeD>1oLS2AUW* zc(y7pAr%?)vq{?h`kBVM+eY~A@42=^rDTnKr(r$bSt3gt{-*Q{n7gx=^JTVOZ!*HJ z2bSmLFQ@!}rD&7r`y?fVhel+gHWE<`8F(VcmcJAEX5@qZib3{I@l`3{qAvQgMu#^SuAlL8HtDO|lW}VFqcXA@rPo_Q~v6W~hoe=3FJw zdMVz-PS5Q#D9r5V{GSh&YpzWVxQ>|$t5Ubo>i)o|@+O7dY>zK5qBDc-{1fGjmRwh>$B0^fH#U`8&JWW_X2)%cg0oEVIvc<@r-D?p7S?2;tbs* zNs>wW)8S9K)(ieCgFY8|2fvFvBdd4DP@0UbL5@i?x<<>6 zufo>OZh+FlZfXbZl67$` zhG&t#Qb80dey4)R-jl0Zv^25%WqXesTcDjw)4lOsI=nf@bl-mScY_1;v=E?wz%gY&1Rs;fs|VS zd_0L57uTrdZ_m+hjF+-5XF6@2_tnuGiIzVcgM{$(IH~g0dt*A@S9T6peh;klKeDLpa1cDkx@Z|M^W(()` z(ObUsq$PPu?P@s(H479PO~!5Steb4UOY4}<8{hGB+4f?;k z8X7jieT&6a-)m_JtzPqW9TOD)UcIJe&4$#UfThd4a~kd{^Ui3X+?KgMfQNs_L-p_Y z6yAmje%v%$y1EWL-&VNp#bU(@rnX|42Nrt`;nFGnz9v>T5WcMku6dEasce|(^tcHX z^7F*oW2B8&Djpa0=h1UzD;dZlwi?-kCPk5Nr%eU=^2nTbfMy3BF zmW&)gZrCe|E9hR|)efUhTaJ8Z5Xz>ba^_CWwN+tvn>Im|iH#=y{w5=`(?Mb7#*hh^ z*)RIf56;tbX>^Yj|HT^)@D9CpLhKDnMlC|xWJwmNsW=YGa>PSKe;>NxW!fM%w&d7z}k9uA4E`?Z&?hb=RVnVn7NRS56{rOtzk+ig1VxsWvEikM^xsgxAYY zjs!{9>BGKOyf=e)UG$8`QoSnN=Q7E(^PO}#uIEVT>l{#JX~Y(WI*ljI}ylrhCHfPg@P{Hn)jq+N^D@yUw>A+I4g%)f*v1xFU0> z`vl(gy*AEsWlcxJZmIzgrfMuWst`8peg*oQs73*e+4WIwHyC>A@jOZ_X=3Ki$7GKI z?sb;@j0BE1gv)?xPCdD4!Q(%Zq|cd0FTMH!Ld&s`*U*>E7s=`&^{q zbNcIx$U|wWick=CK1kZ?K{rSnqqD*X-3*_pWR}Ih?V?&^r0+0Dm2C9NaoEX^WwMC5 zdiX_T)bCKN7O}mIUDA$;F z#3DDvmhUjZxrp*}4!_~^%YIeVhLYe%_|Ah?O^|UN!tYF`uxLn$V=?Ar!Uh-9%0V)6 zd(!l6is}7S-opUHd1oS$OgUZWA}22$^qh;FxHRM455ihbYiGS{s~Fk)c7vhD#`?GE zwKuMlE$%;xGB<3vky#o&!;Y9-)LW45iYUN!ZJsE|vj#frSh&Kl} zEa9NjwoHG1mkBJ$QD&|`n&MICQ4X=#^MOlQVN*NF^mY8X$i7RNSmS8up2fd zUyrUaP)mv~k)`yqwPF^wHU9k~ z`?}_N9TTc(TR6Ilcv_ca&d;56kfu} zwT(4;SblX7jO>8Uc{S3;CJ7!AI45|n6z8bB`4w^rX|042iQvD(faH#G6 zB~ly@-#t?yl<`@Llr%E0Gq1BpVEwtsQXC)g=Nh>0=QDDV8DL+`eq$X^`Di|jtc|IF z`~&qt-6&ZT&P6U>kWs=SDN$vMMoXk1lL$v3%79%hY_*3w|* zS!O@&b(>}Max+i+SqhQGHP0fFR-zuinfw<+%=BODqJ)7sU=iCWacw+notz-4k@}5c-J~wluPCi0c%?^$2I=^eTaR7XE*W#Qv z)|uK}?f1%mYYhENV_inpXGVfNx-+$#m&%y5Jah}sF4u-KbO8n(a){Hi}>4W0QQpNB8I)_2x%qPl`unPl`wLZIf-6WseHxVZWB^ zD=D*fr8&rYuP&K@Kj_alG6PIC44|aI^*IJrd{$#0wxKAviJ!yI<=IN4*Z^CJZK_m- z=Cng#b1NGjXov8YcBs$4 zjn3HGIQJKk>k?#pL>|@}lx>dFKD7NzsY^lCcnmzxoUo{8y@woy z|Aq0XMw_#*PL15Z)!nzA4I^KaEYZ@Q%zE5^gh7l{G_#{AkuT10ngW^A z&<^Rj$P=G+{Zs=>emcWva2$|N&f=Z89)A_5iaYG<5sFfD9(0DCj3GY%|*-t(o#W3aDruT^_;GtwgcQk=3OQqndn!jx~Y--Eqv1@hVs8eAly&+)RP z{0wJ7j=bocg4a2-H!>DO4{*6*sw-6uFbGn9 zlxuai{^S$F#Wd4gtA-=0EI@vf{s7?r+L^zIyiXSLr7FUOA>ub*L`?CF-*SeMsK#Js z-9RwR2d~I$%Jt7NXswmO8l~nv!lCMT<~nnT>nA^DLr=s|ZYcxZ>VpsUOw;1ts7aIc z9``VzX1ZrdB6H7tye9{H!7jM1@XTLSxlViIxk%!IVz^3MZZi-k`P7 zERYusW!J@LmoZC;FOx={9nEm$J8CuH#t*gkPt);)xK_$@h2r4ehnR}OU=EJOXk0@z zpMopS<%)0c;9?B>Y(09WLOsED*}4>+)=t*kXN?}u6?^wUDR=HovUiuOkTX7Id(+tr zIvW#if_=qG*X+TM^;Abp5j?)&i^zh6A{<(fhqO8?rJ(vym8hlQJGviI7+7x>o8x5+ zTJPKJEbl_Y+ibq~DuV|9D)8Q9$ny5H+1}Zx*<>ko-Y+-KK`npo0p;K~gJf4b8=fsP zCOExeQW$vKEBAY_>n&(#`7pd6qf;ZoR^+wH@kW zY+<}32ajoO%9U(52N?X!9c2vNCgxZX)P#|OO2>_P16P&J@(Xf}q1l61AD`oUhjt>% zn9{uc;nLarXO{}rtijylJvkbq&LSD|ZH1jp#aUjZK~cuy-QC9712>hj*%g-ABNeu+ zk&4bdzh6HakLL}nf}4!FNMVm>&9mhB=h6A}p;b8k zyKpyGApB&*Ed1mNBzwq9oqA6>z2S7}q;jM{yva;?B#m9nO24)C)N2&6rvGo**WicN zoFLaVj%N#ePgymgn@aSS0fx0PE5B#`BD50nAdhSuCG%m_HpjQQc$6&I72NTBU!QgE z=vBcvqQbn_T73M)&RJrf{)rq#$zsb%LzT_d>DAp-mTT$OjZ-xPY;k#Ko=$H$V`Ocg z6)QPSc#ePWDByQR=Nz4r zeW1Hcbs%eW_Wry9RrV^23TJ3mr`p$|?>1zO?9HmM=xo)UvwcnaENn}6sfy-HoYlDy z`!{r4De8-I{XwVWt6ADQF+E2(QZz^Vtd>(7GIL~j+h(1aBRpGx@)hUEp#6JuWS9$2 z;T$nlPg$?RIa(yoQPK1aEjTXdZlW5OI7^S|#>*C4a%~-*-8l+;*2xlutrBNPYdM3z z#)_3?N}3%V(lW|LMW?&r`-O8ye`tLf+isHEj%cXUQw*hxIt%)XHYlxZNN~}b&O^SI zlgRZeL}8Co%xkS{ox3r|GIyiFmfthiO%;<%5e+pp_K*ZJ^vl0c0^zU5W@T76ErD|V zLTkp?XuLL=CW}ov4bgO(4>jo*oGsoJ*7>pnZ|im5<)#&K`(LnLb1W-BZOK{+r%EPKuOpv1pJHGpixo@lJTJ8Z^Lnb3TKF*qrb+1aBxf)Rg_CN>%2 zKBub2R3+&4i5$^@N7^pcZ`!hXGSYI12~S4yK34!UtP*vjtba)u-#Gx%zeXv0omR~9 zO-A5ztw0t2Rsh|RBPhMpGp#=>Fd6yUrEIyjmC_3p%rHG6Cjb))+JW#XoHfW{G`?r7 z6g2>df|YW9ng>2Efcrkq!>1jS@22|-Ccs#+d2X2Xfp=w?6|6|1%1`p35OVw_c%|`D z>84U_@#0HkpOAF|TXl)v!uo&x39U2`h(hKc1CABSyNH(aPwI?T+de(jT9#w8C$vCU z66L&LRro(cx?+*abB<9?>WZ#?_G21FFvtIWdDVhX;fFBz)WaWr{7Fg;@4owP&ad$+ z?`nW5ig5(#(RWkn^uf12d;CxDPCh!VXB+2jRCwoYWCrrE&kApC9<>LS7X|Y+QjTjQ z&ckHnyBC$P3Q(W6aG>Xv_u{U_uhdZVF&@EL9RHkVRF1clwYcz` z__6)}=bh0%m|oI=_NAGaamq{0lroiy5K_}nKFpK3CX{-u%zoYJGPs%Y=}&Xd=mdnB zp_RZG>n(FFZ|d37TKx~K`Nx`3S{8O$<(as%@CS%QHQ~x~CGtu|=*~jCKTJnSrmK$? zg0{Yq+gY8}M5{InIXFI997bJ!~ve3>aZwjdq}Iu_o|* zjcSAt&%rRV?sjksp1Kc;{TQSE9aMeuhD=Sr#q>Fcuul3g~=xeUE)%S5wip;=Bsg z87QZm<&-Pzk3pSrlZ~D;htv5s*s^>&`mgtLQw!8PHX0)!aTl~GugKbJ*bzq3f}e;?d=1C`|PHj0~(WOzsqY3ZCnN1F5zxL z2c|ACbqwT(HgTSSUfzkItokn-ni?4#KZb3rGjQWj*vM2B)=`z+b}<#%kh$NuszO<5)vpBnIvw%6bT zeA2$g4-TawUrVjPwYg&iui-LLlI`Mn2bgw_>Ox3w!B+7x>)OyFD1ei=64a6+)js@u z+YfNQ)RHQ-6xv6AYVb6YKcGv@E9%Y*ZnD}aipmUSNMVhiQRa-=6#0(c?e~auS3zo% zp~g--0ct5X#gweT-qy&yEo5zV2E(u6DE9VfomxsK)12N?WP($F2p7Q5Hy*Vtg10qv z-|NYr$*p-k=^nampxpa)9BGq&fk0LvlfFo}np-H08!!)+3}@z_e?T5c{LnAM} zz2Yum!{ABwYT+u*!rmdIIj6vymkPaOO7m>N1h<(@_&sbc#_wCqTA>0qR-53Uc@bWr zShQqNYc7?m_F3`!gt-Q;hs@cU&m)foIK;vzG6&9~rppV^Gx zKQu2B>Q=4WZ-%$bH{jpn=C2D48|LGu3O~8{sm9L={M>_|n}xkxqp()Ug30Z0e%oN9Ef-ek7x%XuaQJdE^*>>XX#D- zIVB7fT3YsNS2>VJWrx7v@RF@X9c&R7gI3y>UI86`ham8DN3P!7udvt;Xjem}HUuSf zr7~z2wNg#G!>@oKzs}|sp|DwSh`(=|3&|`!ZkG-XgNrG!T`T_Xy7*}Ydi5l@$`SGt@t-2()919 zy~`On2Ne0T5dUFy0QcRcp4tLrhR9HO8nC zH!RIWNa-kwd>S1z3{pHT3!4|$iG4N23y;(wHo-gYiZKQ#Y4Q(cssJ4?0;(2VNZ)c5 zAP8Rjfl}HOYZqa6J>O5BjU`WYY99m>j%{e~2Q7m^-h@2eJ^BESV=iiMD?z)GMVUtS zz4MWH+zg*Ya;6l(^(l>cR{J2mwKmr51x<&aIiZxelpdNj z_Vw$(;q7%(-k7O$n;R-TqdP{JGioW4=zR$cg*{In*oSyeBl)A5*rIhG_4%F@_q+(D zm5?QUl2F1E;ytLhf|3pGle0ebj-?_O6a4-Tk?nF?TZ^eWms}UhguOYdlzx^}OaD)- zj`#BJ(PJ{Luhf_JH`zM%OnR3bH1y!Y9;eQLL#*2`e(Ej709J*DKr_C0#V2-5hfr3Yea=|hUI;=-*v zEAxU-+2Kds<3nCJ*jd-t4edUye%N4bWU8%o9e(7>Qw(>o6F6Sz@b4J8P0oY0Ym^D8 zq(jLce>n5>+QuVpSkgQ6$TCf+&9}a)s*UMFDS+?$TCDf5Mp~OvK(F}c)<1V1>4Zw+ z`q_yNpAPzYrd&AzCSIoLyd*!QmP)^B^UaN@(U~Cl^to5uYdE`Lwo@Ni>7BF^IaQ8y za!LtnxhlIE)|wj-zo-r{A%%2PdIPt?*5-drpQpE&Z!K=~)#_7`#nk7emZ4Jd0YC@kxz87U|Oc}}AT;w7d9zxf=t)a93N@q*y>?}N+ z*R@n`+l9mgVh2|GG*Qpbhu3&m;;AimwguL&Xcsk-J4$;rG%nA^XB=M68;pqLyjw@aVw3Rc&4lhK8pAfGshOjJ4D7c z*+vx#Sjn7ncrAUbk+qq48vB?`@mZmR{B!PJALV#d8XW1eRFZ1wn-9-H zaW#~9MojR>$UrPZEopAeFhJLQ6J4_=u|ce{u+qxJI*~H_c|_+3 z@tyC+Z}DYy^=oM5jK=4>Xiq8Im(Ak{imNTc7(v$If5EB(4$8#o?Fb`!z zfvDmcuH8?u|IQJQ2upDV;$08L4IoA4rIpfs@ph5fJr|mBLeJnL?r-G1_b;RNd>J&>b~{mzn^sea^*EtEGKxz=Q&|65Rw zSY?#j_KV~mUyGoW-i!jsSZ)q#Q~Ik zZ%^?uhmafM`pKuPmDg5*k*Ut^V#+2oijb)a%Jy2noZ!W7_nyP*2G81or4E($`J@R!Fa>O|BftKb?Ib??aQT$F;L0vlprTQ2Qat<~DJ? z`3d21p`IV$`P$Ne!b!Y-N#J7SwHV!}3aYS&D(TN@hU>*S9_LM^H`@+E?_ph|d$hBV z!Bt&|GeUc1>BwzSWq410XhDrrX<&LxtC*FFrJrJNm!;E3Wed5Cfj7%ON7TpvjxIv% zz?wWG%!FDx9t}n7(XuZ(BZJ?r~VE~NH z1IA8AuC2nao-@HszFg_SR0-IJn|+i6ne5Eem-$ob z16xI4%3WGLFRbG=LmcEvM^Yx2!)MWt^Gtio2+y-_$3U%{&b*p(h)*o!@##SWq7PaF zr;jd}@2?MpBPagwqU$rcLL>clx%v=2GoZmS%$0tUG8pLpPf~|b`=N2A7MWAj7HY?D zVyXjdS&K+=`#+;IN8gAk546Zt5H>!jLfH)l*G|Sw`8HMl6>urinbsJI@>SCJV>Ze@ zgs5vcwnHA%yF=gRK;7ueQX?Xnucc#ZnBQm3KGP!B@Ehc8B~+=h|6wMR??iMWC)4;g z^83C$pi#d^{{Ij{E#YCmH9JIA%2|_K*DAOOp1Ch`Zqt3m;#MEic|Y|@yvcV>AXoZ@ z+^4HU_g-=AKj@fg5w^crbaFm&Ct#(?i)>I`t(|i1u^m3nU(XjgNnWzrR|rb~JLDHi|A2^~cQ zImSB%krv~QK!<qqFgDj?V|->s`_gr90YBy>%cltzK{8@US0c^~@-}?``2TtT z4jI9`Hbu7WRHP@>;ZH{@rXKlzI$hJyP-EM0_0=_7xd&Re-+zC*V@Dh9VEwLI16lZK z#m}?!dqqZ94f1ncnK9Pt9YS3nn0Ach1T&+l4K}&naP70wyKbMd$X>O2JaYpgBjnu^ zDrrI5;mbh@qJ7AsZW**6AbsTO_*u%#E7!1Kp^^9TTfHuQ!$7}&oA)-G#(Z?a#@V|%{=tKVv?*Eird2mSgs|N82B8vc{j z5oWDkO8Gs{#0WX&Kg7Xye=)Y=H|Y|jWu>${UC$5lLEa&ljP-bLllNwQdH;N{ z54PBp&~V^;h30+*G<&mc6B>talkGV@Ar!LrWH8R}qT2@U^f&wRt(qWV$);GQKU{+A z!#2nnFFuakHhpwn!qi3RL>mHQ3nIQ`wiM}x++e5rk>A(y@)%(Wh!;sT&NSa>RY`1dee1Vy$$<4 zwn@FhTZ{S_RS4TY>h#YJ-dxOdwG8K5sAir@dNk$qU-{%OLcpm7jlh6I*d{1otEdFK zm%PN9yjttFQOewPZ>UC-cS2L9EoC&G6Cd$JA574|-&$CsMMP}rfSlFyZ7t#E!4lp! zw3ENEARn$7Y_c$AQ1WOw)!>Gc#o)HkZpnObNJWUw<{Ohj%QypxY)*)!t%^{+i*$n-C4J@Wj5RJ z@mVWuic+X-4$!#;!MA5`MZOW5U1)0#C`+N7j^+eaW$MyvWKXK)pfyko?<`=#%b__y zy;>Zk42%v@Z=+fd95fGp6nQt@8~{^3Qs%%Ea1P(bLWkE@qbr*o=J=xv)c!eo^?=5| zsYWxftmyLj?&Zv}rjc1VCRM<~ue0jag|=f^*)Z3}pici~NQH0wxYa&-xUfNNLpjaq zFKz19xA=!}P2Bj&BjwClM*3y?mST^n_A%0A`m#(VTb)Mw9pybM%d6xMkPKs_K$_Nd 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