From 16e3f94842680f535311fc5a051f9106a6add414 Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Tue, 14 Jan 2025 09:59:44 +0100 Subject: [PATCH] feat: Detect deprecated 'type' in `Fragment.load` / `` This adds the detection of the partial deprecation of the Fragment.load factory. In addition, nested fragments within XML are now also detected when using a deprecated 'type'. JIRA: CPOUI5FOUNDATION-907 --- src/linter/messages.ts | 10 ++ src/linter/ui5Types/SourceFileLinter.ts | 38 +++++++ .../generator/AbstractGenerator.ts | 39 +++++--- .../NoDeprecatedApi/PartialDeprecation.js | 26 ++++- .../rules/NoDeprecatedApi/XMLView.view.xml | 9 ++ ...FragmentDefinitionNestedViews.fragment.xml | 5 + .../xml/XMLFragmentNestedViews.fragment.xml | 6 ++ .../xml/XMLViewNestedViews.view.xml | 6 ++ .../rules/snapshots/NoDeprecatedApi.ts.md | 94 ++++++++++-------- .../rules/snapshots/NoDeprecatedApi.ts.snap | Bin 18763 -> 18874 bytes .../xmlTemplate/snapshots/transpiler.ts.md | 91 +++++++++++++++-- .../xmlTemplate/snapshots/transpiler.ts.snap | Bin 6736 -> 6952 bytes 12 files changed, 264 insertions(+), 60 deletions(-) diff --git a/src/linter/messages.ts b/src/linter/messages.ts index 8292aab03..995dd77a8 100644 --- a/src/linter/messages.ts +++ b/src/linter/messages.ts @@ -67,6 +67,7 @@ export enum MESSAGE { PARTIALLY_DEPRECATED_ODATA_MODEL_V2_CREATE_ENTRY_PROPERTIES_ARRAY, PARTIALLY_DEPRECATED_PARAMETERS_GET, PARTIALLY_DEPRECATED_VIEW_CREATE, + PARTIALLY_DEPRECATED_FRAGMENT_LOAD, PREFER_TEST_STARTER, REDUNDANT_BOOTSTRAP_PARAM, REDUNDANT_BOOTSTRAP_PARAM_ERROR, @@ -494,6 +495,15 @@ export const MESSAGE_INFO = { details: () => `{@link sap.ui.core.mvc.View#sap.ui.core.mvc.View.create View.create}`, }, + [MESSAGE.PARTIALLY_DEPRECATED_FRAGMENT_LOAD]: { + severity: LintMessageSeverity.Error, + ruleId: RULES["no-deprecated-api"], + + message: ({typeValue}: {typeValue: string}) => + `Usage of deprecated value '${typeValue}' for parameter 'type' in 'sap/ui/core/Fragment.load'`, + details: () => `{@link sap.ui.core.Fragment#sap.ui.core.Fragment.load Fragment.load}`, + }, + [MESSAGE.REDUNDANT_BOOTSTRAP_PARAM]: { severity: LintMessageSeverity.Warning, ruleId: RULES["no-deprecated-api"], diff --git a/src/linter/ui5Types/SourceFileLinter.ts b/src/linter/ui5Types/SourceFileLinter.ts index c7dc6c3b6..e9291266f 100644 --- a/src/linter/ui5Types/SourceFileLinter.ts +++ b/src/linter/ui5Types/SourceFileLinter.ts @@ -814,6 +814,8 @@ export default class SourceFileLinter { this.#analyzeThemingSetTheme(node); } else if (symbolName === "create" && moduleName === "sap/ui/core/mvc/View") { this.#analyzeViewCreate(node); + } else if (symbolName === "load" && moduleName === "sap/ui/core/Fragment") { + this.#analyzeFragmentLoad(node); } else if (/\.qunit\.(js|ts)$/.test(this.sourceFile.fileName) && symbolName === "ready" && moduleName === "sap/ui/core/Core") { this.#reportTestStarter(node); @@ -1164,6 +1166,42 @@ export default class SourceFileLinter { } } + #analyzeFragmentLoad(node: ts.CallExpression) { + if (!node.arguments?.length) { + return; + } + + const optionsArg = node.arguments[0]; + + if (!ts.isObjectLiteralExpression(optionsArg)) { + return; + } + + // Find "type" property + let typeProperty; + for (const property of optionsArg.properties) { + if (!ts.isPropertyAssignment(property)) { + continue; + } + if ( + (ts.isIdentifier(property.name) || ts.isStringLiteral(property.name)) && + property.name.text === "type" + ) { + typeProperty = property; + break; + } + } + + if (typeProperty && ts.isStringLiteralLike(typeProperty.initializer)) { + const typeValue = typeProperty.initializer.text; + if (typeValue === "HTML") { + this.#reporter.addMessage(MESSAGE.PARTIALLY_DEPRECATED_FRAGMENT_LOAD, { + typeValue, + }, node); + } + } + } + getDeprecationInfoForAccess(node: ts.AccessExpression): DeprecationInfo | null { let symbol; if (ts.isPropertyAccessExpression(node)) { diff --git a/src/linter/xmlTemplate/generator/AbstractGenerator.ts b/src/linter/xmlTemplate/generator/AbstractGenerator.ts index 2ceb14bbc..baac71098 100644 --- a/src/linter/xmlTemplate/generator/AbstractGenerator.ts +++ b/src/linter/xmlTemplate/generator/AbstractGenerator.ts @@ -48,18 +48,7 @@ export default abstract class AbstractGenerator { controlDeclaration.variableName = this._getUniqueVariableName(`o${controlDeclaration.name}`); // Create the control - this._body.write(`const ${controlDeclaration.variableName} = `); - - // Special case: Use View.create for nested views - if (!rootControl && moduleName === "sap/ui/core/mvc/View") { - this._body.writeln( - `await ${importVariableName}.create({`, controlDeclaration.start, controlDeclaration.end - ); - } else { - this._body.writeln( - `new ${importVariableName}({`, controlDeclaration.start, controlDeclaration.end - ); - } + this._writeControlFactoryCall(moduleName, importVariableName, controlDeclaration, rootControl); // Write properties controlDeclaration.properties.forEach((attribute) => { @@ -139,4 +128,30 @@ export default abstract class AbstractGenerator { this._variableNames.add(variableNameCandidate); return variableNameCandidate; } + + _writeControlFactoryCall( + moduleName: string, importVariableName: string, controlDeclaration: ControlDeclaration, rootControl: boolean + ) { + this._body.write(`const ${controlDeclaration.variableName} = `); + if (!rootControl) { + // Special case: Use View.create for nested views + if (moduleName === "sap/ui/core/mvc/View") { + this._body.writeln( + `await ${importVariableName}.create({`, controlDeclaration.start, controlDeclaration.end + ); + return; + } + // Special case: Use Fragment.load for nested fragments + if (moduleName === "sap/ui/core/Fragment") { + this._body.writeln( + `await ${importVariableName}.load({`, controlDeclaration.start, controlDeclaration.end + ); + return; + } + } + // Default case: Use new for controls + this._body.writeln( + `new ${importVariableName}({`, controlDeclaration.start, controlDeclaration.end + ); + } } diff --git a/test/fixtures/linter/rules/NoDeprecatedApi/PartialDeprecation.js b/test/fixtures/linter/rules/NoDeprecatedApi/PartialDeprecation.js index 0404bdb38..6abb2cd83 100644 --- a/test/fixtures/linter/rules/NoDeprecatedApi/PartialDeprecation.js +++ b/test/fixtures/linter/rules/NoDeprecatedApi/PartialDeprecation.js @@ -7,8 +7,9 @@ sap.ui.define([ "sap/ui/core/routing/Router", "sap/ui/util/Mobile", "sap/ui/core/mvc/View", - "sap/ui/core/mvc/ViewType" -], function(Parameters, JSONModel, ODataModelV4, ODataModelV2, Component, Router, Mobile, View, ViewType) { + "sap/ui/core/mvc/ViewType", + "sap/ui/core/Fragment", +], function(Parameters, JSONModel, ODataModelV4, ODataModelV2, Component, Router, Mobile, View, ViewType, Fragment) { Parameters.get(); // (deprecated since 1.92) If no parameter is given Parameters.get("sapUiParam1"); // (deprecated since 1.94) If a string is given as first parameter @@ -127,4 +128,25 @@ sap.ui.define([ viewName: "myapp.view.Home" }); + + Fragment.load({ + type: "HTML", // Deprecated type HTML + name: "myapp.fragment.Details" + }); + + // Negative test: Default type is XML + Fragment.load({ + name: "myapp.fragment.Details" + }); + // Negative test: XML + Fragment.load({ + type: "XML", + name: "myapp.fragment.Details" + }); + // Negative test: JS + Fragment.load({ + type: "JS", + name: "myapp.fragment.Details" + }); + }); diff --git a/test/fixtures/linter/rules/NoDeprecatedApi/XMLView.view.xml b/test/fixtures/linter/rules/NoDeprecatedApi/XMLView.view.xml index e3458bab2..17d3b792c 100644 --- a/test/fixtures/linter/rules/NoDeprecatedApi/XMLView.view.xml +++ b/test/fixtures/linter/rules/NoDeprecatedApi/XMLView.view.xml @@ -1,5 +1,6 @@ @@ -32,4 +33,12 @@ + + + + + + + + diff --git a/test/fixtures/transpiler/xml/XMLFragmentDefinitionNestedViews.fragment.xml b/test/fixtures/transpiler/xml/XMLFragmentDefinitionNestedViews.fragment.xml index 2dc958ced..658db24bb 100644 --- a/test/fixtures/transpiler/xml/XMLFragmentDefinitionNestedViews.fragment.xml +++ b/test/fixtures/transpiler/xml/XMLFragmentDefinitionNestedViews.fragment.xml @@ -15,4 +15,9 @@ + + + + + diff --git a/test/fixtures/transpiler/xml/XMLFragmentNestedViews.fragment.xml b/test/fixtures/transpiler/xml/XMLFragmentNestedViews.fragment.xml index 1a880a42a..dd00bb916 100644 --- a/test/fixtures/transpiler/xml/XMLFragmentNestedViews.fragment.xml +++ b/test/fixtures/transpiler/xml/XMLFragmentNestedViews.fragment.xml @@ -1,4 +1,5 @@ @@ -14,4 +15,9 @@ + + + + + diff --git a/test/fixtures/transpiler/xml/XMLViewNestedViews.view.xml b/test/fixtures/transpiler/xml/XMLViewNestedViews.view.xml index 2ae4eaff4..853af3dc6 100644 --- a/test/fixtures/transpiler/xml/XMLViewNestedViews.view.xml +++ b/test/fixtures/transpiler/xml/XMLViewNestedViews.view.xml @@ -1,5 +1,6 @@ @@ -15,4 +16,9 @@ + + + + + diff --git a/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.md b/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.md index 320ca0ebe..ba1789aae 100644 --- a/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.md +++ b/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.md @@ -1464,13 +1464,13 @@ Generated by [AVA](https://avajs.dev). [ { coverageInfo: [], - errorCount: 23, + errorCount: 24, fatalErrorCount: 0, filePath: 'PartialDeprecation.js', messages: [ { column: 2, - line: 13, + line: 14, message: 'Usage of deprecated variant of \'sap/ui/core/theming/Parameters.get\'', messageDetails: 'Parameters.get (https://ui5.sap.com/1.120/#/api/sap.ui.core.theming.Parameters%23methods/sap.ui.core.theming.Parameters.get)', ruleId: 'no-deprecated-api', @@ -1478,7 +1478,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 2, - line: 14, + line: 15, message: 'Usage of deprecated variant of \'sap/ui/core/theming/Parameters.get\'', messageDetails: 'Parameters.get (https://ui5.sap.com/1.120/#/api/sap.ui.core.theming.Parameters%23methods/sap.ui.core.theming.Parameters.get)', ruleId: 'no-deprecated-api', @@ -1486,7 +1486,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 2, - line: 15, + line: 16, message: 'Usage of deprecated variant of \'sap/ui/core/theming/Parameters.get\'', messageDetails: 'Parameters.get (https://ui5.sap.com/1.120/#/api/sap.ui.core.theming.Parameters%23methods/sap.ui.core.theming.Parameters.get)', ruleId: 'no-deprecated-api', @@ -1494,7 +1494,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 2, - line: 24, + line: 25, message: 'Usage of deprecated variant of \'sap/ui/core/theming/Parameters.get\'', messageDetails: 'Parameters.get (https://ui5.sap.com/1.120/#/api/sap.ui.core.theming.Parameters%23methods/sap.ui.core.theming.Parameters.get)', ruleId: 'no-deprecated-api', @@ -1502,7 +1502,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 46, - line: 28, + line: 29, message: 'Usage of deprecated value for parameter \'bAsync\' of \'sap/ui/model/json/JSONModel#loadData\'', messageDetails: 'Parameter \'bAsync\' must be either omitted or set to true. See API reference (https://ui5.sap.com/1.120/#/api/sap.ui.model.json.JSONModel%23methods/loadData)', ruleId: 'no-deprecated-api', @@ -1510,7 +1510,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 66, - line: 29, + line: 30, message: 'Usage of deprecated value for parameter \'bCache\' of \'sap/ui/model/json/JSONModel#loadData\'', messageDetails: 'Parameter \'bCache\' must be either omitted or set to true. See API reference (https://ui5.sap.com/1.120/#/api/sap.ui.model.json.JSONModel%23methods/loadData)', ruleId: 'no-deprecated-api', @@ -1518,7 +1518,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 3, - line: 32, + line: 33, message: 'Usage of deprecated parameter \'synchronizationMode\' of constructor \'sap/ui/model/odata/v4/ODataModel\'', messageDetails: 'As of version 1.110.0, the \'synchronizationMode\' parameter is obsolete and must be omitted. See the API reference (https://ui5.sap.com/1.120/#/api/sap/ui/model/odata/v4/ODataModel#constructor)', ruleId: 'no-deprecated-api', @@ -1526,7 +1526,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 3, - line: 35, + line: 36, message: 'Usage of deprecated parameter \'synchronizationMode\' of constructor \'sap/ui/model/odata/v4/ODataModel\'', messageDetails: 'As of version 1.110.0, the \'synchronizationMode\' parameter is obsolete and must be omitted. See the API reference (https://ui5.sap.com/1.120/#/api/sap/ui/model/odata/v4/ODataModel#constructor)', ruleId: 'no-deprecated-api', @@ -1534,7 +1534,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 3, - line: 43, + line: 44, message: 'Usage of deprecated parameter \'batchGroupId\' in \'sap/ui/model/odata/v2/ODataModel#createEntry\'', messageDetails: 'Use the \'groupId\' parameter instead. See the API reference (https://ui5.sap.com/1.120/#/api/sap.ui.model.odata.v2.ODataModel%23methods/createEntry)', ruleId: 'no-deprecated-api', @@ -1542,7 +1542,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 3, - line: 44, + line: 45, message: 'Usage of deprecated value for parameter \'properties\' in \'sap/ui/model/odata/v2/ODataModel#createEntry\'', messageDetails: 'Passing a list of property names is deprecated. Pass the initial values as an object instead. See the API reference (https://ui5.sap.com/1.120/#/api/sap.ui.model.odata.v2.ODataModel%23methods/createEntry)', ruleId: 'no-deprecated-api', @@ -1550,7 +1550,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 4, - line: 56, + line: 57, message: 'Usage of deprecated value for parameter \'async\' of \'sap/ui/core/Component#createComponent\'', messageDetails: 'The \'async\' property must be either omitted or set to true. See the API reference (https://ui5.sap.com/1.120/#/api/sap.ui.core.Component%23methods/createComponent)', ruleId: 'no-deprecated-api', @@ -1558,7 +1558,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 2, - line: 71, + line: 72, message: 'Usage of deprecated value for parameter \'oConfig.async\' of constructor \'sap/ui/core/Router\'', messageDetails: 'The \'oConfig.async\' parameter must be set to true. See the API reference (https://ui5.sap.com/1.120/#/api/sap/ui/core/routing/Router#constructor)', ruleId: 'no-deprecated-api', @@ -1566,7 +1566,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 2, - line: 72, + line: 73, message: 'Usage of deprecated value for parameter \'oConfig.async\' of constructor \'sap/ui/core/Router\'', messageDetails: 'The \'oConfig.async\' parameter must be set to true. See the API reference (https://ui5.sap.com/1.120/#/api/sap/ui/core/routing/Router#constructor)', ruleId: 'no-deprecated-api', @@ -1574,7 +1574,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 3, - line: 76, + line: 77, message: 'Usage of deprecated value for parameter \'homeIcon\' of \'sap/ui/util/Mobile#init\'', messageDetails: 'Parameter \'homeIcon\' must be either omitted or set to true. See API reference (https://ui5.sap.com/1.120/#/api/sap.ui.util.Mobile%23methods/init)', ruleId: 'no-deprecated-api', @@ -1582,7 +1582,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 3, - line: 77, + line: 78, message: 'Usage of deprecated value for parameter \'homeIconPrecomposed\' of \'sap/ui/util/Mobile#init\'', messageDetails: 'Parameter \'homeIconPrecomposed\' must be either omitted or set to true. See API reference (https://ui5.sap.com/1.120/#/api/sap.ui.util.Mobile%23methods/init)', ruleId: 'no-deprecated-api', @@ -1590,7 +1590,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 2, - line: 81, + line: 82, message: 'Usage of deprecated value \'JS\' for parameter \'type\' in \'sap/ui/core/mvc/View.create\'', messageDetails: 'View.create (https://ui5.sap.com/1.120/#/api/sap.ui.core.mvc.View%23methods/sap.ui.core.mvc.View.create)', ruleId: 'no-deprecated-api', @@ -1598,7 +1598,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 9, - line: 86, + line: 87, message: 'Use of deprecated property \'JS\'', messageDetails: 'Deprecated test message', ruleId: 'no-deprecated-api', @@ -1606,7 +1606,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 2, - line: 90, + line: 91, message: 'Usage of deprecated value \'JSON\' for parameter \'type\' in \'sap/ui/core/mvc/View.create\'', messageDetails: 'View.create (https://ui5.sap.com/1.120/#/api/sap.ui.core.mvc.View%23methods/sap.ui.core.mvc.View.create)', ruleId: 'no-deprecated-api', @@ -1614,7 +1614,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 9, - line: 95, + line: 96, message: 'Use of deprecated property \'JSON\'', messageDetails: 'Deprecated test message', ruleId: 'no-deprecated-api', @@ -1622,7 +1622,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 2, - line: 99, + line: 100, message: 'Usage of deprecated value \'HTML\' for parameter \'type\' in \'sap/ui/core/mvc/View.create\'', messageDetails: 'View.create (https://ui5.sap.com/1.120/#/api/sap.ui.core.mvc.View%23methods/sap.ui.core.mvc.View.create)', ruleId: 'no-deprecated-api', @@ -1630,7 +1630,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 9, - line: 104, + line: 105, message: 'Use of deprecated property \'HTML\'', messageDetails: 'Deprecated test message', ruleId: 'no-deprecated-api', @@ -1638,7 +1638,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 2, - line: 108, + line: 109, message: 'Usage of deprecated value \'Template\' for parameter \'type\' in \'sap/ui/core/mvc/View.create\'', messageDetails: 'View.create (https://ui5.sap.com/1.120/#/api/sap.ui.core.mvc.View%23methods/sap.ui.core.mvc.View.create)', ruleId: 'no-deprecated-api', @@ -1646,12 +1646,20 @@ Generated by [AVA](https://avajs.dev). }, { column: 9, - line: 113, + line: 114, message: 'Use of deprecated property \'Template\'', messageDetails: 'Deprecated test message', ruleId: 'no-deprecated-api', severity: 2, }, + { + column: 2, + line: 132, + message: 'Usage of deprecated value \'HTML\' for parameter \'type\' in \'sap/ui/core/Fragment.load\'', + messageDetails: 'Fragment.load (https://ui5.sap.com/1.120/#/api/sap.ui.core.Fragment%23methods/sap.ui.core.Fragment.load)', + ruleId: 'no-deprecated-api', + severity: 2, + }, ], warningCount: 0, }, @@ -1920,13 +1928,13 @@ Generated by [AVA](https://avajs.dev). [ { coverageInfo: [], - errorCount: 14, + errorCount: 15, fatalErrorCount: 0, filePath: 'XMLView.view.xml', messages: [ { column: 2, - line: 7, + line: 8, message: 'Import of deprecated module \'sap/m/DateTimeInput\'', messageDetails: 'Deprecated test message', ruleId: 'no-deprecated-api', @@ -1934,7 +1942,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 2, - line: 28, + line: 29, message: 'Import of deprecated module \'sap/ui/core/mvc/HTMLView\'', messageDetails: 'Deprecated test message', ruleId: 'no-deprecated-api', @@ -1942,7 +1950,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 2, - line: 27, + line: 28, message: 'Import of deprecated module \'sap/ui/core/mvc/JSONView\'', messageDetails: 'Deprecated test message', ruleId: 'no-deprecated-api', @@ -1950,7 +1958,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 2, - line: 26, + line: 27, message: 'Import of deprecated module \'sap/ui/core/mvc/JSView\'', messageDetails: 'Deprecated test message', ruleId: 'no-deprecated-api', @@ -1958,7 +1966,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 2, - line: 29, + line: 30, message: 'Import of deprecated module \'sap/ui/core/mvc/TemplateView\'', messageDetails: 'Deprecated test message', ruleId: 'no-deprecated-api', @@ -1966,7 +1974,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 10, - line: 9, + line: 10, message: 'Use of deprecated property \'blocked\' of class \'Button\'', messageDetails: 'Deprecated test message', ruleId: 'no-deprecated-api', @@ -1974,7 +1982,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 15, - line: 11, + line: 12, message: 'Use of deprecated property \'groupBy\' of class \'Table\'', messageDetails: 'Deprecated test message', ruleId: 'no-deprecated-api', @@ -1982,7 +1990,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 4, - line: 12, + line: 13, message: 'Use of deprecated property \'plugins\' of class \'Table\'', messageDetails: 'Deprecated test message', ruleId: 'no-deprecated-api', @@ -1990,7 +1998,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 11, - line: 18, + line: 19, message: 'Use of deprecated property \'tap\' of class \'Button\'', messageDetails: 'Deprecated test message', ruleId: 'no-deprecated-api', @@ -1998,7 +2006,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 3, - line: 18, + line: 19, message: 'Use of deprecated property \'buttons\' of class \'SegmentedButton\'', messageDetails: 'Deprecated test message', ruleId: 'no-deprecated-api', @@ -2006,7 +2014,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 2, - line: 21, + line: 22, message: 'Usage of deprecated value \'JS\' for parameter \'type\' in \'sap/ui/core/mvc/View.create\'', messageDetails: 'View.create (https://ui5.sap.com/1.120/#/api/sap.ui.core.mvc.View%23methods/sap.ui.core.mvc.View.create)', ruleId: 'no-deprecated-api', @@ -2014,7 +2022,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 2, - line: 22, + line: 23, message: 'Usage of deprecated value \'JSON\' for parameter \'type\' in \'sap/ui/core/mvc/View.create\'', messageDetails: 'View.create (https://ui5.sap.com/1.120/#/api/sap.ui.core.mvc.View%23methods/sap.ui.core.mvc.View.create)', ruleId: 'no-deprecated-api', @@ -2022,7 +2030,7 @@ Generated by [AVA](https://avajs.dev). }, { column: 2, - line: 23, + line: 24, message: 'Usage of deprecated value \'HTML\' for parameter \'type\' in \'sap/ui/core/mvc/View.create\'', messageDetails: 'View.create (https://ui5.sap.com/1.120/#/api/sap.ui.core.mvc.View%23methods/sap.ui.core.mvc.View.create)', ruleId: 'no-deprecated-api', @@ -2030,12 +2038,20 @@ Generated by [AVA](https://avajs.dev). }, { column: 2, - line: 24, + line: 25, message: 'Usage of deprecated value \'Template\' for parameter \'type\' in \'sap/ui/core/mvc/View.create\'', messageDetails: 'View.create (https://ui5.sap.com/1.120/#/api/sap.ui.core.mvc.View%23methods/sap.ui.core.mvc.View.create)', ruleId: 'no-deprecated-api', severity: 2, }, + { + column: 2, + line: 37, + message: 'Usage of deprecated value \'HTML\' for parameter \'type\' in \'sap/ui/core/Fragment.load\'', + messageDetails: 'Fragment.load (https://ui5.sap.com/1.120/#/api/sap.ui.core.Fragment%23methods/sap.ui.core.Fragment.load)', + ruleId: 'no-deprecated-api', + severity: 2, + }, ], warningCount: 0, }, diff --git a/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.snap b/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.snap index 07a2b68f39a88e577fa70492e38fd52db13f7153..8e5815b4f21851fa3d8f627ac4691e0bec95bdb7 100644 GIT binary patch literal 18874 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 literal 18763 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 source - `import HTMLView from "sap/ui/core/mvc/HTMLView";␊ + `import Fragment from "sap/ui/core/Fragment";␊ + import Fragment2 from "sap/ui/core/Fragment";␊ + import Fragment3 from "sap/ui/core/Fragment";␊ + import Fragment4 from "sap/ui/core/Fragment";␊ + import HTMLView from "sap/ui/core/mvc/HTMLView";␊ import JSONView from "sap/ui/core/mvc/JSONView";␊ import JSView from "sap/ui/core/mvc/JSView";␊ import TemplateView from "sap/ui/core/mvc/TemplateView";␊ @@ -650,9 +654,28 @@ Generated by [AVA](https://avajs.dev). viewName: "com.myapp.view.Home",␊ });␊ ␊ + const oFragment = await Fragment.load({␊ + fragmentName: "com.myapp.fragment.Details",␊ + });␊ + ␊ + const oFragment2 = await Fragment2.load({␊ + type: "XML",␊ + fragmentName: "com.myapp.fragment.Details",␊ + });␊ + ␊ + const oFragment3 = await Fragment3.load({␊ + type: "JS",␊ + fragmentName: "com.myapp.fragment.Details",␊ + });␊ + ␊ + const oFragment4 = await Fragment4.load({␊ + type: "HTML",␊ + fragmentName: "com.myapp.fragment.Details",␊ + });␊ + ␊ export default {␊ createContent: function () {␊ - return [oView, oView2, oView3, oView4, oView5, oXMLView, oJSView, oJSONView, oHTMLView, oTemplateView];␊ + return [oView, oView2, oView3, oView4, oView5, oXMLView, oJSView, oJSONView, oHTMLView, oTemplateView, oFragment, oFragment2, oFragment3, oFragment4];␊ };␊ }␊ ` @@ -661,7 +684,7 @@ Generated by [AVA](https://avajs.dev). { file: 'XMLFragmentDefinitionNestedViews.fragment.js', - mappings: 'AAcC,gDAA8C;AAD9C,gDAA8C;AAD9C,4CAA4C;AAG5C,wDAAkD;AAVlD,wCAAqD;AACrD,yCAAoD;AACpD,yCAAsD;AACtD,yCAAsD;AACtD,yCAA0D;AAE1D,8CAA6C;cAN7C,mBAAqD;IAA3C,YAAU;IAAC,gCAA8B;;;eACnD,oBAAoD;IAA1C,WAAS;IAAC,gCAA8B;;;eAClD,oBAAsD;IAA5C,aAAW;IAAC,gCAA8B;;;eACpD,oBAAsD;IAA5C,aAAW;IAAC,gCAA8B;;;eACpD,oBAA0D;IAAhD,iBAAe;IAAC,gCAA8B;;;iBAExD,aAA6C;IAAhC,gCAA8B;;;gBAC3C,YAA4C;IAAhC,gCAA8B;;;kBAC1C,cAA8C;IAAhC,gCAA8B;;;kBAC5C,cAA8C;IAAhC,gCAA8B;;;sBAC5C,kBAAkD;IAAhC,gCAA8B', + mappings: 'AAiBC,4CAA2D;AAC3D,6CAAsE;AACtE,6CAAqE;AACrE,6CAAuE;AANvE,gDAA8C;AAD9C,gDAA8C;AAD9C,4CAA4C;AAG5C,wDAAkD;AAVlD,wCAAqD;AACrD,yCAAoD;AACpD,yCAAsD;AACtD,yCAAsD;AACtD,yCAA0D;AAE1D,8CAA6C;cAN7C,mBAAqD;IAA3C,YAAU;IAAC,gCAA8B;;;eACnD,oBAAoD;IAA1C,WAAS;IAAC,gCAA8B;;;eAClD,oBAAsD;IAA5C,aAAW;IAAC,gCAA8B;;;eACpD,oBAAsD;IAA5C,aAAW;IAAC,gCAA8B;;;eACpD,oBAA0D;IAAhD,iBAAe;IAAC,gCAA8B;;;iBAExD,aAA6C;IAAhC,gCAA8B;;;gBAC3C,YAA4C;IAAhC,gCAA8B;;;kBAC1C,cAA8C;IAAhC,gCAA8B;;;kBAC5C,cAA8C;IAAhC,gCAA8B;;;sBAC5C,kBAAkD;IAAhC,gCAA8B;;;kBAEhD,qBAA2D;IAA5C,2CAAyC;;;mBACxD,sBAAsE;IAAvD,YAAU;IAAC,2CAAyC;;;mBACnE,sBAAqE;IAAtD,WAAS;IAAC,2CAAyC;;;mBAClE,sBAAuE;IAAxD,aAAW;IAAC,2CAAyC', names: [], sources: [ 'XMLFragmentDefinitionNestedViews.fragment.xml', @@ -765,7 +788,11 @@ Generated by [AVA](https://avajs.dev). > source - `import HTMLView from "sap/ui/core/mvc/HTMLView";␊ + `import Fragment from "sap/ui/core/Fragment";␊ + import Fragment2 from "sap/ui/core/Fragment";␊ + import Fragment3 from "sap/ui/core/Fragment";␊ + import Fragment4 from "sap/ui/core/Fragment";␊ + import HTMLView from "sap/ui/core/mvc/HTMLView";␊ import JSONView from "sap/ui/core/mvc/JSONView";␊ import JSView from "sap/ui/core/mvc/JSView";␊ import TemplateView from "sap/ui/core/mvc/TemplateView";␊ @@ -821,6 +848,25 @@ Generated by [AVA](https://avajs.dev). viewName: "com.myapp.view.Home",␊ });␊ ␊ + const oFragment = await Fragment.load({␊ + fragmentName: "com.myapp.fragment.Details",␊ + });␊ + ␊ + const oFragment2 = await Fragment2.load({␊ + type: "XML",␊ + fragmentName: "com.myapp.fragment.Details",␊ + });␊ + ␊ + const oFragment3 = await Fragment3.load({␊ + type: "JS",␊ + fragmentName: "com.myapp.fragment.Details",␊ + });␊ + ␊ + const oFragment4 = await Fragment4.load({␊ + type: "HTML",␊ + fragmentName: "com.myapp.fragment.Details",␊ + });␊ + ␊ const oVBox = new VBox({␊ items: [␊ oView,␊ @@ -833,6 +879,10 @@ Generated by [AVA](https://avajs.dev). oJSONView,␊ oHTMLView,␊ oTemplateView,␊ + oFragment,␊ + oFragment2,␊ + oFragment3,␊ + oFragment4,␊ ],␊ });␊ ␊ @@ -847,7 +897,7 @@ Generated by [AVA](https://avajs.dev). { file: 'XMLFragmentNestedViews.fragment.js', - mappings: 'AAaC,gDAA8C;AAD9C,gDAA8C;AAD9C,4CAA4C;AAG5C,wDAAkD;AAdnD,8BAEC;AAEA,wCAAqD;AACrD,yCAAoD;AACpD,yCAAsD;AACtD,yCAAsD;AACtD,yCAA0D;AAE1D,8CAA6C;cAN7C,mBAAqD;IAA3C,YAAU;IAAC,gCAA8B;;;eACnD,oBAAoD;IAA1C,WAAS;IAAC,gCAA8B;;;eAClD,oBAAsD;IAA5C,aAAW;IAAC,gCAA8B;;;eACpD,oBAAsD;IAA5C,aAAW;IAAC,gCAA8B;;;eACpD,oBAA0D;IAAhD,iBAAe;IAAC,gCAA8B;;;iBAExD,aAA6C;IAAhC,gCAA8B;;;gBAC3C,YAA4C;IAAhC,gCAA8B;;;kBAC1C,cAA8C;IAAhC,gCAA8B;;;kBAC5C,cAA8C;IAAhC,gCAA8B;;;sBAC5C,kBAAkD;IAAhC,gCAA8B;;;cAdjD,UAEC;IAEA,KAAqD', + mappings: 'AAiBC,4CAA2D;AAC3D,6CAAsE;AACtE,6CAAqE;AACrE,6CAAuE;AANvE,gDAA8C;AAD9C,gDAA8C;AAD9C,4CAA4C;AAG5C,wDAAkD;AAfnD,8BAGC;AAEA,wCAAqD;AACrD,yCAAoD;AACpD,yCAAsD;AACtD,yCAAsD;AACtD,yCAA0D;AAE1D,8CAA6C;cAN7C,mBAAqD;IAA3C,YAAU;IAAC,gCAA8B;;;eACnD,oBAAoD;IAA1C,WAAS;IAAC,gCAA8B;;;eAClD,oBAAsD;IAA5C,aAAW;IAAC,gCAA8B;;;eACpD,oBAAsD;IAA5C,aAAW;IAAC,gCAA8B;;;eACpD,oBAA0D;IAAhD,iBAAe;IAAC,gCAA8B;;;iBAExD,aAA6C;IAAhC,gCAA8B;;;gBAC3C,YAA4C;IAAhC,gCAA8B;;;kBAC1C,cAA8C;IAAhC,gCAA8B;;;kBAC5C,cAA8C;IAAhC,gCAA8B;;;sBAC5C,kBAAkD;IAAhC,gCAA8B;;;kBAEhD,qBAA2D;IAA5C,2CAAyC;;;mBACxD,sBAAsE;IAAvD,YAAU;IAAC,2CAAyC;;;mBACnE,sBAAqE;IAAtD,WAAS;IAAC,2CAAyC;;;mBAClE,sBAAuE;IAAxD,aAAW;IAAC,2CAAyC;;;cApBrE,UAGC;IAEA,KAAqD', names: [], sources: [ 'XMLFragmentNestedViews.fragment.xml', @@ -1217,7 +1267,11 @@ Generated by [AVA](https://avajs.dev). > source - `import HTMLView from "sap/ui/core/mvc/HTMLView";␊ + `import Fragment from "sap/ui/core/Fragment";␊ + import Fragment2 from "sap/ui/core/Fragment";␊ + import Fragment3 from "sap/ui/core/Fragment";␊ + import Fragment4 from "sap/ui/core/Fragment";␊ + import HTMLView from "sap/ui/core/mvc/HTMLView";␊ import JSONView from "sap/ui/core/mvc/JSONView";␊ import JSView from "sap/ui/core/mvc/JSView";␊ import TemplateView from "sap/ui/core/mvc/TemplateView";␊ @@ -1273,6 +1327,25 @@ Generated by [AVA](https://avajs.dev). viewName: "com.myapp.view.Home",␊ });␊ ␊ + const oFragment = await Fragment.load({␊ + fragmentName: "com.myapp.fragment.Details",␊ + });␊ + ␊ + const oFragment2 = await Fragment2.load({␊ + type: "XML",␊ + fragmentName: "com.myapp.fragment.Details",␊ + });␊ + ␊ + const oFragment3 = await Fragment3.load({␊ + type: "JS",␊ + fragmentName: "com.myapp.fragment.Details",␊ + });␊ + ␊ + const oFragment4 = await Fragment4.load({␊ + type: "HTML",␊ + fragmentName: "com.myapp.fragment.Details",␊ + });␊ + ␊ export default const oView6 = new View6({␊ controllerName: "com.myapp.controller.Main",␊ content: [␊ @@ -1286,6 +1359,10 @@ Generated by [AVA](https://avajs.dev). oJSONView,␊ oHTMLView,␊ oTemplateView,␊ + oFragment,␊ + oFragment2,␊ + oFragment3,␊ + oFragment4,␊ ],␊ });␊ ␊ @@ -1295,7 +1372,7 @@ Generated by [AVA](https://avajs.dev). { file: 'XMLViewNestedViews.view.js', - mappings: 'AAcC,gDAA8C;AAD9C,gDAA8C;AAD9C,4CAA4C;AAG5C,wDAAkD;AAVlD,wCAAqD;AACrD,yCAAoD;AACpD,yCAAsD;AACtD,yCAAsD;AACtD,yCAA0D;AAT3D,yCAGC;AAQA,8CAA6C;cAN7C,mBAAqD;IAA3C,YAAU;IAAC,gCAA8B;;;eACnD,oBAAoD;IAA1C,WAAS;IAAC,gCAA8B;;;eAClD,oBAAsD;IAA5C,aAAW;IAAC,gCAA8B;;;eACpD,oBAAsD;IAA5C,aAAW;IAAC,gCAA8B;;;eACpD,oBAA0D;IAAhD,iBAAe;IAAC,gCAA8B;;;iBAExD,aAA6C;IAAhC,gCAA8B;;;gBAC3C,YAA4C;IAAhC,gCAA8B;;;kBAC1C,cAA8C;IAAhC,gCAA8B;;;kBAC5C,cAA8C;IAAhC,gCAA8B;;;sBAC5C,kBAAkD;IAAhC,gCAA8B;;;8BAfjD,WAGC;IADA,4CAA0C;IAG1C,OAAqD', + mappings: 'AAkBC,4CAA2D;AAC3D,6CAAsE;AACtE,6CAAqE;AACrE,6CAAuE;AANvE,gDAA8C;AAD9C,gDAA8C;AAD9C,4CAA4C;AAG5C,wDAAkD;AAVlD,wCAAqD;AACrD,yCAAoD;AACpD,yCAAsD;AACtD,yCAAsD;AACtD,yCAA0D;AAV3D,yCAIC;AAQA,8CAA6C;cAN7C,mBAAqD;IAA3C,YAAU;IAAC,gCAA8B;;;eACnD,oBAAoD;IAA1C,WAAS;IAAC,gCAA8B;;;eAClD,oBAAsD;IAA5C,aAAW;IAAC,gCAA8B;;;eACpD,oBAAsD;IAA5C,aAAW;IAAC,gCAA8B;;;eACpD,oBAA0D;IAAhD,iBAAe;IAAC,gCAA8B;;;iBAExD,aAA6C;IAAhC,gCAA8B;;;gBAC3C,YAA4C;IAAhC,gCAA8B;;;kBAC1C,cAA8C;IAAhC,gCAA8B;;;kBAC5C,cAA8C;IAAhC,gCAA8B;;;sBAC5C,kBAAkD;IAAhC,gCAA8B;;;kBAEhD,qBAA2D;IAA5C,2CAAyC;;;mBACxD,sBAAsE;IAAvD,YAAU;IAAC,2CAAyC;;;mBACnE,sBAAqE;IAAtD,WAAS;IAAC,2CAAyC;;;mBAClE,sBAAuE;IAAxD,aAAW;IAAC,2CAAyC;;;8BArBrE,WAIC;IADA,4CAA0C;IAG1C,OAAqD', names: [], sources: [ 'XMLViewNestedViews.view.xml', diff --git a/test/lib/linter/xmlTemplate/snapshots/transpiler.ts.snap b/test/lib/linter/xmlTemplate/snapshots/transpiler.ts.snap index 6c1b47b4c625ce652730a268eb8e968ae164db05..965f0940265ce0f2f3b6b405e7fb8394e73d2af8 100644 GIT binary patch literal 6952 zcmV+@8`tDPRzV3|?ZSUAK5`~~7B042X1X9AQ>YnNDshOVfhnV0!={!~S>Q!}p-mhN0`taJSVU;$V_kD!A zx@*wwbJuLmbZWXmld4s%8FZVtuC1@uU3y(J>eRWgrPIcR?W&ay3`C%sFb*sGVH1t!i@E(Q2u>o~l}9YNRa0 zkcvVM=T3S!l)CF$W}s#@#j{!06;f4!sWWT(JEe`j-yp*xOXMXrYWza z1$tel4FOzrtCYf`;oQlRWjb!sVokm-Y0?I3{p{V7$z(FQZqv1k$>F=tn9sQQUrn=J z=VJ0{KmCk*Cbg#9j(bI`(lc@}+t9pRKl9mU@tS2k?x`}}X2VyeYg*lK zlO8TMnj97W^e~ky)1{_+G5Iu0;y*T=ax2NZ9mrrk;pu1nCJoG6bF8{uqW(gCu(?oA zNXMQ8fII*^4*&}iKv@E~CjmSt9lKvTwzztmmRw0{{ycs9G)OPOB`%$U2c^WzqydnI z?w1DFbc6bdN4jmE+fJnFiK1M_8G7_HvLS|LDS|B7nmm_33GbeATgf!F~A?mg& zS5!hKlpG;XO)Bz~LKf!n_horh^=izG&&dsy6xCdbs6<{th$6Y7%Jn(2Fqg~aDhg5O zj5^B}!cl72%1 z@V{rs)T-2B*`E$%ALo-0{rclu)OK{sWa&Zt-w8hUL&UbV9Vy}eI(6z4PFUg_62Q0o z3G#pjLO>@$l0bSfw$g0<(HMHh7fPwB)%Ys8`FLxQgqo59P4PZ~O-4mq zJ_R7P4Qq^QahDj_$JtX!At zc|tajs$8xqNIeQ_uAv|yvJ_U3%T*PUHx-#;l_FMI@d_Aez-lX4t4In+8psVs1Lnk} zp?mxQWvLc^!H#YfiYlagtkE;M z2=s;T%vOfCKR4*k#pJNNQ=`LtH*O(mM+plDQ!BYord+C39n~@nZFRAR0;ZE1O>NMf zs8|&Ij%aJ?P;<1Z=|;!)SZVJvmtL~W`2Hf)J+DdEvJ6+R#aHqG{dzTy!`ilV5E6NC5sl)<4dL@SMr2dc_h@e zysRUoMq%)&n#w4(HIuUxGH=Yt6@|eS3902#zH9zQLT}}Bx!k70aVQK&kq|?bwZQLD zUch9;OQtH{V!bGmE2hGbq?zoOQRQl$5FOFa-pOPZ)(o-?b4FgoQpO$rPRumEe*jG5u>`=GM88bqK>-auY#ie?B98Ig zOkw${3v0GksZ!JJpvwPKh;@85aX47V5l1-U2tG&fNWV=rm#RJkSgV^Q?053)IS&B; z+0?DuX7XuoxS!3jl6$$6_rxqAEn*381^`O}_&EvSLwjTiuj;rP<9Wkh0U?WwH!P)* z9b6vE3weX3ki4ND2s^-ri{$E9em~g3QaaBl`)9=j|LX@p@c%~w80wqgzq%UV>e>or3!X)Yy|icKrbyxPr-d(sKf{&F8CSe{Pz0F&v?LoB0SHN)J%)m9Cf;w4eY zbnl>tVZw|+F)qb$Ipzcac;A+5T8V~xA1c|6;k~m@gd zrt}C)X5Yjs;?HosyI8?zoDG|k=8MVUHO+9Mh`dGY$qX#vA#3Pmcl}~=cx=q3RSy~4 z&|zbD$e7JLQLP!8OG9AT$uOhzKZK3G_a*q-mn_OC8nKCx1!Lkw$0IaH9=c#ww8 z(l}aeg#ApVw34fD>8?(lHW|iQw;D;^EbAreB(1fiLk(JTX*sF8wCY4emkM>4z49Wj zB9ybzp7Ot*y{%!E3a>Da+C zEg8B=+j>?qsAji166pggT@DlmJK#|T-ab!w%{wkza>K4&ry+R`SKcD_tl3f^e+^H# zthKeaK2nnr7v9OFW*DIvEv;*2g)*GH6DrGybT&%&c&{V5&F=3Qh)~6^_gfJd4A>S4 z$f2P%-tExITTN{_nLrNz7U4GaI7NU|rNy+WSdNSW=Tf{P`|Z_h>K&V;{vsjiu>?(T?A9<#xE*$9pHD~i856Z+~*xIFJMfBPdoSr$m?(?|N=$^a@=X0AgswAPaefqwrjobo)S4pCGqgEOr4)IIkQHVmq-60rHo3|0jw@Juh2uqy zmF9A}x`U(@r%ueMK^p zQP`1tg#oUsOszi85-C+q0VwP-vI<&fxyrB~A?iJT%m=UE-1M3jQIsOcX1oWz#b1R1S(+PK;Gr zQbLxAjPKvDY*neiT_F|752(LZm3DG)NJR@<3T3bjPe^X%L{y-*CR!ClP7eEE*bMYV zZf`%%;3@rDCr0}v0QeUG7}}%3^WiR29q*_xLCCx+XOV0(Bj#P43IP8Od)qlNqa43^9%ZhC zD5EYj0qhzIM$5<=ugMy@LfCdVE#4*a0ql|`3E)QGyX3Lh#dg>>%5ZC=++4Uk~eN>xQd0O-5IZdPNtSIxg_Ep+W_!U3E(plz+dlC>iP*G;fXhFoRs_{ zX2Pr&%iCP{WOj|4liU|c$Hc;_JW=qB2E{unH#=a#mD}9VP{opKH5E1RSrt|F0%@sw zs0Q9}C!hQbb?nfgk}%pK;GURB%Fx^)%xHOdq@T_FqWOnc1w znq|{_bw?rjjHf8`icBBOa(|=}Sy!f&fDSm1V2lsGAZCxJ68p~{vk8EUeVYDd(@hUyf20`TKIkrCrr2bLJ`-%~c&tOzl895i z9RPmbbB6l#9y!%xF~lIAXZ-^Zvb1kJtIl1W4jrRnZ09RtZuG(dC~L1s06fw+HyVy7 z?T3voO~&x0E7Wmm8PB!ijFcy;Ar|$<6CR!RaSGg5{Gt|7_j5!Zv7MnaeL-h?f}Xp! zaJh@ujbGfVaA|q*N|y?Laj-&H@G$T-?{KwCl^{qzoTByFt~YKpd5y+zqM__3(ZCT3Ne6*(B@!{5I7v!_vwgMxSG} zVQsRKJaskQh`Oz{*gzC}I*7h)^X|31Oj~;yL3_>Jyw~QkZOvr`%>}k!-wp1AP>l;j z_DG%gH{<=ydVj~|=0=qLog}yRg4|lma(FGut+5FFOb32v0>86y^7`P*MDqGC0l@1A z0B#Hb)CTq@ugkp)N%5lldlD$-@&i70r9sW`n*~k*6K;VeHd(^vi8>~(Y!#SPKZTNf zep(GD5L*@#v*W7VKxY<2eci~TFALdZ?bvzdl+(OA!8~+W!WAS&^UT#IFHfNd4MtYD zGRbv>O?IgwqXwK)JSQF&O~K4F(Vkzu7-P!8ayyj4p&SM^&hB8`Xosrx12xK^*7Kg< zMHoz1NMSpV2qydx5X~}lP~o4GZ7bVAmlx)VF(oV;?@;FOGV})8$O|eK*7Ho`N&BCc zR+&2yyLIlL>N*81+{y<=Is|4G7}zEQbMt|r4uKgQtj@srAlwLoF@@^g142FP;{*Gz zXZ_^>z?TR5)w4$WQdJI{%Jo{I%2lYY(sG%W<6J?uLRwbEcLiy8>S$ghY>RWTKeoGl zv3rFbMS2Tv5o_Yw`zeOkk+?(f-x9H#w*tW50>FO&z)SaN9(uIv0*OBZe;vVCHKQs~ z851GC0SMg!ZM9{)(G@bYg)~(y@bES(SipAuh}h^-JOHDMDFL{BpOD9HqQkcT$GYx+ zOy}uZ92uyE$bfc41`dD>JRR!=^C=Mlcqah-BLI9K03O;S0eDR>E2JknFt6^74rIl2 z;OYU;fw}~6w{JRdrpL{6*vP?%kR0@GcfBtYA_Y&}cVu@x6n57RZaGJ0*(0;;ky-Z0 zEPG^@{V_Jn_UY`$Or_yuI+D&r(%DFQJdpNHwXGb_WE;%zOt-D9rU^ITTNpIuwz8Wh z-S(`sATJ}x%kH;E--BP`;1eQg{$~N;4Fdq10|39UN9*x$oPZZ^GyeS_qRn{C%zN&O z1l z*)45=0eJx(N=?^6$1a7#e>haLOY2d2EZRR$E{kM`+!1~5`fTU07}$^fWN$vv8v&iA}z;%!WCAcPQk3Yo_&68zhN?GcPy`!N9c8~}W6k2en=hz>yf+JA_x zeI6@fLLqZ`#{by*{4WqL+m{`{vYnOyex~nb`=DUHqpS1QvF`;&eP{{*aOCFzU>N}3 z2+(oOvPK6%dXXgQ9Knku>7)2pVn4r$KNIZdD1n`+5fUgVzJaG)*QqYQp}dWAjgVyz`j&DFOkGgc&Z6Sp|qXin1r>m+ptk6LVs0Ts#-#4q&_ zduptoeS5{x%}Vl02jt1KErjQiXV+b~=3Gpr>iYNvN2^^ZS=H3zDc7p$rPL}N&rXkz zmNYsxnjKpkpDt%LZF*9hSk=ljU7k7@9V5GL&|=w7-fvnXt+qzAnjYP;4&9=*?(TRa zm)PUTpNJXxk$kf^$-2X)VEOuNaCDNE-83)sHrj7mrZlNw#I>t7Mry+Vach>H%+oDu zST$-p-N!gRwN@&RkFSnqC&shWlas3xnX*<|rF3+BJUuy<{=XRGM3*tX?`VwoWsC>9 zjPc2%F^(VOADYD`)!LG8}0YUK)ja+#Jav#i-WIPko8XXIq?)iC}|-rHek z`hGEt1q)9u(8nTiClzb^0>;cddxkv=_ShLYd3TH2u3plN<6W%+wZ%>7_ zqNgVNc@IMR*G_VEMgq7b0hIRo9z=A7$6Gr;=)DJ~k|G*0XJ>e5vY8wqSJ!9cjXcjU z%4xZ$cGHww%q#w~V}1vHCQX1p>lY#TFc;mbgq zc^)V0dJ4^2OU(zs$ax-V=j~#}^n(W=;eSB__>)~p_)*ew*!0gcAwuXKEa+yX2a@>h z5J~*ne!jjq7p1FnA&T1Fw$(rVbF|uXb^STkx93>jo?FDQ>kF9Cx&JMgcvLH{Za6Wh z7);N>u6rihJsSCH>sB+uuOFQ>&4QEm9z6f`j<|Z2j_7P;dVcW-EAw+1kL>Srpp9lDRV*KAhKV2HQxWAXhba^X z>$c<1_Xr=Q5#2PYAJTnagLMd-^CxAOfjnXvAEyOvzB8?&3k#ZVc8OqrK(Vky-1b8v zZd(I@Z%Y99yv{442I@Y!?Wqvqi)XOcB|?^Y_zxD?W4XrEB_1&J<{kb-lEVUB8!B`A z){%`C?E;JcQCFF7h}w!-b(24=Hy?~y<*;+RErp%aS$NGzf{K<~{8nGYybpZJA4_f#X0DKVuz5)RM?6o%3YAq3NZHTq@ zJpj00YPR-(l)zK*d?@F(1n|yK&hJV9e;Ug9?hjy&CqlhG6=7*0JuD?g5&)S*Xe5>? zJ59pBtZ!KN7^j!4%8dlTv+Y#|BUN55=1&a8odm#J+ffWfQHXg3L-B_RfX}s~I2J*1 zI*Ni-{zd}eTkVyP2P)quGCc@HCNboTgJPH%`lUjBO_IrhWSfyk5lE*k!*#5?;Tz1bmsO(YpS&uAFHYb5}6k9znc-Bwn-i-JSQ z{5%r?*s~Wilbq)>(O_;%^`1RPch4f@*gIZKuSw>2>9n&{lX1${Bj}gx<|F9bJnAvg zRk4ozmIKg{e^UbZSl{N+M`O0^VbhX-s-4&bd=)zrn)}8=gl72YqS)cMDE9yDCK#qB zj_!;d-5EQ&Gj?=m?C8$ee%%@CEXYm-B-x4mG^`!nI}=?K8x~3WcLCr{0|1QyfM40; zHL+KA66@m4fnP|VNd6-dQtWz$C5ni7i5y)I`*FA)Hl+|7?}y#MX&2gFy~|>s6kitm zvjey+h8M;Dv+v7duj-NVO5t9iNeUKWy#ENv3DBQ;*JgZ8FZT zZkY9BJF01BxIk`DQqj^%VKC`a+wFmd34iIr@5Pk u${w|x<%dSzWwD0X==9zLFgoEA0H5vK==4M{`|z-kk^cqSs7DemnE(LV#%)Oe literal 6736 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 moLH%cYrgM20?ik%Z2eT