├── README.md └── 神经网络自适应 ├── Controller.m ├── Model.m ├── Picture.m ├── Sim.mdl ├── Sim.mdlPreview └── Sim.slx /README.md: -------------------------------------------------------------------------------- 1 | # RBF-Neural-Network-Adaptive-Control 2 | RBF Neural Network Adaptive Control 3 | -------------------------------------------------------------------------------- /神经网络自适应/Controller.m: -------------------------------------------------------------------------------- 1 | function [sys,x0,str,ts] = spacemodel(t,x,u,flag) 2 | switch flag, 3 | case 0, 4 | [sys,x0,str,ts]=mdlInitializeSizes; 5 | case 1, 6 | sys=mdlDerivatives(t,x,u); 7 | case 3, 8 | sys=mdlOutputs(t,x,u); 9 | case {2,4,9} 10 | sys=[]; 11 | otherwise 12 | error(['Unhandled flag = ',num2str(flag)]); 13 | end 14 | function [sys,x0,str,ts]=mdlInitializeSizes 15 | global node c b 16 | node=5; 17 | sizes = simsizes; 18 | sizes.NumContStates = node+1; 19 | sizes.NumDiscStates = 0; 20 | sizes.NumOutputs = 3; 21 | sizes.NumInputs = 2; 22 | sizes.DirFeedthrough = 1; 23 | sizes.NumSampleTimes = 0; 24 | sys = simsizes(sizes); 25 | x0 = [zeros(1,5),120]; 26 | c= [-1 -0.5 0 0.5 1; 27 | -1 -0.5 0 0.5 1]; 28 | b=2; 29 | str = []; 30 | ts = []; 31 | function sys=mdlDerivatives(t,x,u) 32 | global node c b 33 | yd=sin(t); 34 | dyd=cos(t); 35 | ddyd=-sin(t); 36 | 37 | e=u(1); 38 | de=u(2); 39 | x1=yd-e; 40 | x2=dyd-de; 41 | 42 | kp=30; 43 | kd=50; 44 | K=[kp kd]'; 45 | E=[e de]'; 46 | 47 | Fai=[0 1;-kp -kd]; 48 | A=Fai'; 49 | Q=[500 0;0 500]; 50 | P=lyap(A,Q); 51 | 52 | W=[x(1) x(2) x(3) x(4) x(5)]'; 53 | xi=[e;de]; 54 | h=zeros(5,1); 55 | for j=1:1:5 56 | h(j)=exp(-norm(xi-c(:,j))^2/(2*b^2)); 57 | end 58 | fxp=W'*h; 59 | 60 | mp=x(node+1); 61 | 62 | ut=1/mp*(-fxp+ddyd+K'*E); 63 | 64 | B=[0;1]; 65 | gama=1200; 66 | S=-gama*E'*P*B*h; 67 | for i=1:1:node 68 | sys(i)=S(i); 69 | end 70 | 71 | eta=0.0001; 72 | ml=100; 73 | if (E'*P*B*ut>0) 74 | dm=(1/eta)*E'*P*B*ut; 75 | end 76 | if (E'*P*B*ut<=0) 77 | if (mp>ml) 78 | dm=(1/eta)*E'*P*B*ut; 79 | else 80 | dm=1/eta; 81 | end 82 | end 83 | sys(node+1)=dm; 84 | 85 | function sys=mdlOutputs(t,x,u) 86 | global node c b 87 | yd=sin(t); 88 | dyd=cos(t); 89 | ddyd=-sin(t); 90 | 91 | e=u(1); 92 | de=u(2); 93 | x1=yd-e; 94 | x2=dyd-de; 95 | 96 | kp=30; 97 | kd=50; 98 | K=[kp kd]'; 99 | E=[e de]'; 100 | 101 | W=[x(1) x(2) x(3) x(4) x(5)]'; 102 | xi=[e;de]; 103 | h=zeros(5,1); 104 | for j=1:1:node 105 | h(j)=exp(-norm(xi-c(:,j))^2/(2*b^2)); 106 | end 107 | fxp=W'*h; 108 | 109 | mp=x(node+1); 110 | 111 | ut=1/mp*(-fxp+ddyd+K'*E); 112 | 113 | sys(1)=ut; 114 | sys(2)=fxp; 115 | sys(3)=mp; -------------------------------------------------------------------------------- /神经网络自适应/Model.m: -------------------------------------------------------------------------------- 1 | function [sys,x0,str,ts]=s_function(t,x,u,flag) 2 | switch flag, 3 | case 0, 4 | [sys,x0,str,ts]=mdlInitializeSizes; 5 | case 1, 6 | sys=mdlDerivatives(t,x,u); 7 | case 3, 8 | sys=mdlOutputs(t,x,u); 9 | case {2, 4, 9 } 10 | sys = []; 11 | otherwise 12 | error(['Unhandled flag = ',num2str(flag)]); 13 | end 14 | function [sys,x0,str,ts]=mdlInitializeSizes 15 | sizes = simsizes; 16 | sizes.NumContStates = 2; 17 | sizes.NumDiscStates = 0; 18 | sizes.NumOutputs = 4; 19 | sizes.NumInputs = 3; 20 | sizes.DirFeedthrough = 0; 21 | sizes.NumSampleTimes = 0; 22 | sys=simsizes(sizes); 23 | x0=[0.5 0]; 24 | str=[]; 25 | ts=[]; 26 | function sys=mdlDerivatives(t,x,u) 27 | ut=u(1); 28 | 29 | fx=-25*x(2)-10*x(1); 30 | m=133; 31 | 32 | sys(1)=x(2); 33 | sys(2)=fx+m*ut; 34 | function sys=mdlOutputs(t,x,u) 35 | fx=-25*x(2)-10*x(1); 36 | m=133; 37 | 38 | sys(1)=x(1); 39 | sys(2)=x(2); 40 | sys(3)=fx; 41 | sys(4)=m; -------------------------------------------------------------------------------- /神经网络自适应/Picture.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chengqian0210/RBF-Neural-Network-Adaptive-Control/596c695acb07c58400493a7f34a38999bfb80288/神经网络自适应/Picture.m -------------------------------------------------------------------------------- /神经网络自适应/Sim.mdl: -------------------------------------------------------------------------------- 1 | Model { 2 | Name "Sim" 3 | Version 9.3 4 | SavedCharacterEncoding "GBK" 5 | GraphicalInterface { 6 | NumRootInports 0 7 | NumRootOutports 0 8 | ParameterArgumentNames "" 9 | ComputedModelVersion "1.232" 10 | NumModelReferences 0 11 | NumTestPointedSignals 0 12 | NumProvidedFunctions 0 13 | NumRequiredFunctions 0 14 | NumResetEvents 0 15 | HasInitializeEvent 0 16 | HasTerminateEvent 0 17 | PreCompExecutionDomainType "Unset" 18 | IsExportFunctionModel 0 19 | IsArchitectureModel 0 20 | NumParameterArguments 0 21 | NumExternalFileReferences 0 22 | OrderedModelArguments 1 23 | } 24 | DiagnosticSuppressor "on" 25 | LogicAnalyzerPlugin "on" 26 | NotesPlugin "on" 27 | SLCCPlugin "on" 28 | WebScopes_FoundationPlugin "on" 29 | EnableAccessToBaseWorkspace on 30 | ScopeRefreshTime 0.035000 31 | OverrideScopeRefreshTime on 32 | DisableAllScopes off 33 | DataTypeOverride "UseLocalSettings" 34 | DataTypeOverrideAppliesTo "AllNumericTypes" 35 | MinMaxOverflowLogging "UseLocalSettings" 36 | MinMaxOverflowArchiveMode "Overwrite" 37 | FPTRunName "Run 1" 38 | MaxMDLFileLineLength 120 39 | LastSavedArchitecture "win64" 40 | Object { 41 | $PropName "BdWindowsInfo" 42 | $ObjectID 1 43 | $ClassName "Simulink.BDWindowsInfo" 44 | Object { 45 | $PropName "WindowsInfo" 46 | $ObjectID 2 47 | $ClassName "Simulink.WindowInfo" 48 | IsActive [1] 49 | Location [16.0, 52.0, 1068.0, 845.0] 50 | Object { 51 | $PropName "ModelBrowserInfo" 52 | $ObjectID 3 53 | $ClassName "Simulink.ModelBrowserInfo" 54 | Visible [1] 55 | DockPosition "Left" 56 | Width [50] 57 | Height [50] 58 | Filter [8] 59 | Minimized "On" 60 | } 61 | Object { 62 | $PropName "ExplorerBarInfo" 63 | $ObjectID 4 64 | $ClassName "Simulink.ExplorerBarInfo" 65 | Visible [1] 66 | } 67 | Object { 68 | $PropName "EditorsInfo" 69 | $ObjectID 5 70 | $ClassName "Simulink.EditorInfo" 71 | IsActive [1] 72 | ViewObjType "SimulinkTopLevel" 73 | LoadSaveID "0" 74 | Extents [1014.0, 667.0] 75 | ZoomFactor [1.28] 76 | Offset [0.78125, -79.9609375] 77 | } 78 | Object { 79 | $PropName "DockComponentsInfo" 80 | $ObjectID 6 81 | $ClassName "Simulink.DockComponentInfo" 82 | Type "GLUE2:PropertyInspector" 83 | ID "Property Inspector" 84 | Visible [1] 85 | CreateCallback "" 86 | UserData "" 87 | Floating [0] 88 | DockPosition "Right" 89 | Width [640] 90 | Height [480] 91 | Minimized "On" 92 | } 93 | WindowState "AAAA/wAAAAD9AAAAAgAAAAAAAAC9AAAB+PwCAAAAA/sAAAAWAEQAbwBjAGsAVwBpAGQAZwBlAHQAMwEAAAAxAAAB+AAAA" 94 | "AAAAAAA+wAAABYARABvAGMAawBXAGkAZABnAGUAdAA0AAAAAAD/////AAAAAAAAAAD7AAAAUgBHAEwAVQBFADIAIAB0AHIAZQBlACAAYwBvAG0Ac" 95 | "ABvAG4AZQBuAHQALwBHAEwAVQBFADIAIAB0AHIAZQBlACAAYwBvAG0AcABvAG4AZQBuAHQAAAAAAP////8AAABjAP///wAAAAEAAAAAAAAAAPwCA" 96 | "AAAAfsAAABUAEcATABVAEUAMgA6AFAAcgBvAHAAZQByAHQAeQBJAG4AcwBwAGUAYwB0AG8AcgAvAFAAcgBvAHAAZQByAHQAeQAgAEkAbgBzAHAAZ" 97 | "QBjAHQAbwByAAAAAAD/////AAABrAD///8AAAP+AAAC0wAAAAEAAAACAAAAAQAAAAL8AAAABAAAAAAAAAABAAAANgBjAG8AbABsAGEAcABzAGkAY" 98 | "gBsAGUAUABhAG4AZQBsAFQAbwBvAGwAQgBhAHIATABlAGYAdAMAAAAA/////wAAAAAAAAAAAAAAAQAAAAEAAAA4AGMAbwBsAGwAYQBwAHMAaQBiA" 99 | "GwAZQBQAGEAbgBlAGwAVABvAG8AbABCAGEAcgBSAGkAZwBoAHQCAAAAAP////8AAAAAAAAAAAAAAAIAAAAP/////wAAAAAA/////wAAAAAAAAAA/" 100 | "////wEAAAAA/////wAAAAAAAAAA/////wAAAAAA/////wAAAAAAAAAA/////wAAAAAA/////wAAAAAAAAAA/////wAAAAAA/////wAAAAAAAAAA/" 101 | "////wEAAAB5/////wAAAAAAAAAA/////wEAAADa/////wAAAAAAAAAA/////wAAAAAA/////wAAAAAAAAAA/////wEAAAFT/////wAAAAAAAAAA/" 102 | "////wAAAAAA/////wAAAAAAAAAA/////wAAAAAA/////wAAAAAAAAAA/////wAAAAAA/////wAAAAAAAAAA/////wEAAANS/////wAAAAAAAAAA/" 103 | "////wEAAAOB/////wAAAAAAAAAA/////wAAAAAA/////wAAAAAAAAAAAAAAAwAAAAEAAAA6AGMAbwBsAGwAYQBwAHMAaQBiAGwAZQBQAGEAbgBlA" 104 | "GwAVABvAG8AbABCAGEAcgBCAG8AdAB0AG8AbQAAAAAA/////wAAAAAAAAAA" 105 | } 106 | } 107 | HideAutomaticNames on 108 | Created "Thu May 08 09:06:03 2003" 109 | Creator "hp" 110 | UpdateHistory "UpdateHistoryNever" 111 | ModifiedByFormat "%" 112 | LastModifiedBy "Edison" 113 | ModifiedDateFormat "%" 114 | LastModifiedDate "Sun Apr 12 09:09:23 2020" 115 | RTWModifiedTimeStamp 508583359 116 | ModelVersionFormat "1.%" 117 | SampleTimeColors off 118 | SampleTimeAnnotations off 119 | LibraryLinkDisplay "none" 120 | WideLines off 121 | ShowLineDimensions off 122 | ShowPortDataTypes off 123 | ShowAllPropagatedSignalLabels off 124 | PortDataTypeDisplayFormat "AliasTypeOnly" 125 | ShowEditTimeErrors on 126 | ShowEditTimeWarnings on 127 | ShowEditTimeAdvisorChecks off 128 | ShowPortUnits off 129 | ShowDesignRanges off 130 | ShowLoopsOnError on 131 | IgnoreBidirectionalLines off 132 | ShowStorageClass off 133 | ShowTestPointIcons on 134 | ShowSignalResolutionIcons on 135 | ShowViewerIcons on 136 | SortedOrder off 137 | VariantCondition off 138 | ShowSubsystemDomainSpec off 139 | ExecutionContextIcon off 140 | ShowLinearizationAnnotations on 141 | ShowVisualizeInsertedRTB on 142 | ShowMarkup on 143 | BlockNameDataTip off 144 | BlockParametersDataTip on 145 | BlockDescriptionStringDataTip off 146 | BlockVariantConditionDataTip off 147 | ToolBar on 148 | StatusBar on 149 | BrowserShowLibraryLinks off 150 | FunctionConnectors off 151 | BrowserLookUnderMasks off 152 | MultiThreadCoSim on 153 | SimulationMode "normal" 154 | PauseTimes "5" 155 | NumberOfSteps 1 156 | SnapshotBufferSize 10 157 | SnapshotInterval 10 158 | NumberOfLastSnapshots 0 159 | EnablePacing off 160 | PacingRate 1 161 | LinearizationMsg "none" 162 | Profile off 163 | ParamWorkspaceSource "MATLABWorkspace" 164 | AccelSystemTargetFile "accel.tlc" 165 | AccelTemplateMakefile "accel_default_tmf" 166 | AccelMakeCommand "make_rtw" 167 | TryForcingSFcnDF off 168 | Object { 169 | $PropName "DataLoggingOverride" 170 | $ObjectID 7 171 | $ClassName "Simulink.SimulationData.ModelLoggingInfo" 172 | model_ "Sim" 173 | Array { 174 | Type "Cell" 175 | Dimension 1 176 | Cell "Sim" 177 | PropName "logAsSpecifiedByModels_" 178 | } 179 | Array { 180 | Type "Cell" 181 | Dimension 1 182 | Cell "" 183 | PropName "logAsSpecifiedByModelsSSIDs_" 184 | } 185 | } 186 | ExtModeBatchMode off 187 | ExtModeEnableFloating on 188 | ExtModeTrigType "manual" 189 | ExtModeTrigMode "oneshot" 190 | ExtModeTrigPort "1" 191 | ExtModeTrigElement "any" 192 | ExtModeTrigDuration 1000 193 | ExtModeTrigDurationFloating "auto" 194 | ExtModeTrigHoldOff 0 195 | ExtModeTrigDelay 0 196 | ExtModeTrigDirection "rising" 197 | ExtModeTrigLevel 0 198 | ExtModeArchiveMode "off" 199 | ExtModeAutoIncOneShot off 200 | ExtModeIncDirWhenArm off 201 | ExtModeAddSuffixToVar off 202 | ExtModeWriteAllDataToWs off 203 | ExtModeArmWhenConnect off 204 | ExtModeSkipDownloadWhenConnect off 205 | ExtModeLogAll on 206 | ExtModeAutoUpdateStatusClock on 207 | ShowModelReferenceBlockVersion off 208 | ShowModelReferenceBlockIO off 209 | OrderedModelArguments on 210 | Array { 211 | Type "Handle" 212 | Dimension 1 213 | Simulink.ConfigSet { 214 | $ObjectID 8 215 | Version "19.0.0" 216 | DisabledProps [] 217 | Description "" 218 | Array { 219 | Type "Handle" 220 | Dimension 9 221 | Simulink.SolverCC { 222 | $ObjectID 9 223 | Version "19.0.0" 224 | DisabledProps [] 225 | Description "" 226 | Components [] 227 | StartTime "0.0" 228 | StopTime "20" 229 | AbsTol "auto" 230 | AutoScaleAbsTol on 231 | FixedStep "auto" 232 | InitialStep "auto" 233 | MaxOrder 5 234 | ZcThreshold "auto" 235 | ConsecutiveZCsStepRelTol "10*128*eps" 236 | MaxConsecutiveZCs "1000" 237 | ExtrapolationOrder 4 238 | NumberNewtonIterations 1 239 | MaxStep "auto" 240 | MinStep "auto" 241 | MaxConsecutiveMinStep "1" 242 | RelTol "1e-5" 243 | EnableMultiTasking on 244 | ConcurrentTasks off 245 | Solver "ode45" 246 | SolverName "ode45" 247 | SolverJacobianMethodControl "auto" 248 | ShapePreserveControl "DisableAll" 249 | ZeroCrossControl "UseLocalSettings" 250 | ZeroCrossAlgorithm "Nonadaptive" 251 | AlgebraicLoopSolver "TrustRegion" 252 | SolverInfoToggleStatus off 253 | IsAutoAppliedInSIP off 254 | SolverResetMethod "Fast" 255 | PositivePriorityOrder off 256 | AutoInsertRateTranBlk off 257 | SampleTimeConstraint "Unconstrained" 258 | InsertRTBMode "Whenever possible" 259 | SampleTimeProperty [] 260 | DecoupledContinuousIntegration off 261 | MinimalZcImpactIntegration off 262 | SolverOrder 3 263 | } 264 | Simulink.DataIOCC { 265 | $ObjectID 10 266 | Version "19.0.0" 267 | DisabledProps [] 268 | Description "" 269 | Components [] 270 | Decimation "1" 271 | ExternalInput "[t, u]" 272 | FinalStateName "xFinal" 273 | InitialState "xInitial" 274 | LimitDataPoints off 275 | MaxDataPoints "1000" 276 | LoadExternalInput off 277 | LoadInitialState off 278 | SaveFinalState off 279 | SaveOperatingPoint off 280 | SaveFormat "Array" 281 | SignalLoggingSaveFormat "ModelDataLogs" 282 | SaveOutput on 283 | SaveState off 284 | SignalLogging on 285 | DSMLogging on 286 | InspectSignalLogs off 287 | VisualizeSimOutput on 288 | StreamToWorkspace off 289 | StreamVariableName "streamout" 290 | SaveTime on 291 | ReturnWorkspaceOutputs off 292 | StateSaveName "xout" 293 | TimeSaveName "tout" 294 | OutputSaveName "yout" 295 | SignalLoggingName "sigsOut" 296 | DSMLoggingName "dsmout" 297 | OutputOption "RefineOutputTimes" 298 | OutputTimes "[]" 299 | ReturnWorkspaceOutputsName "out" 300 | Refine "1" 301 | LoggingToFile off 302 | DatasetSignalFormat "timeseries" 303 | LoggingFileName "out.mat" 304 | LoggingIntervals "[-inf, inf]" 305 | } 306 | Simulink.OptimizationCC { 307 | $ObjectID 11 308 | Version "19.0.0" 309 | Array { 310 | Type "Cell" 311 | Dimension 8 312 | Cell "ZeroExternalMemoryAtStartup" 313 | Cell "ZeroInternalMemoryAtStartup" 314 | Cell "UseSpecifiedMinMax" 315 | Cell "OptimizeModelRefInitCode" 316 | Cell "NoFixptDivByZeroProtection" 317 | Cell "BooleansAsBitfields" 318 | Cell "PassReuseOutputArgsAs" 319 | Cell "PassReuseOutputArgsThreshold" 320 | PropName "DisabledProps" 321 | } 322 | Description "" 323 | Components [] 324 | BlockReduction on 325 | BooleanDataType off 326 | ConditionallyExecuteInputs on 327 | DefaultParameterBehavior "Tunable" 328 | UseDivisionForNetSlopeComputation "off" 329 | GainParamInheritBuiltInType off 330 | UseFloatMulNetSlope off 331 | DefaultUnderspecifiedDataType "double" 332 | UseSpecifiedMinMax off 333 | InlineInvariantSignals off 334 | OptimizeBlockIOStorage on 335 | BufferReuse on 336 | EnhancedBackFolding off 337 | CachingGlobalReferences off 338 | GlobalBufferReuse on 339 | StrengthReduction off 340 | AdvancedOptControl "" 341 | ExpressionFolding on 342 | BooleansAsBitfields off 343 | BitfieldContainerType "uint_T" 344 | EnableMemcpy on 345 | MemcpyThreshold 64 346 | PassReuseOutputArgsAs "Structure reference" 347 | PassReuseOutputArgsThreshold 12 348 | ExpressionDepthLimit 2147483647 349 | LocalBlockOutputs on 350 | RollThreshold 5 351 | StateBitsets off 352 | DataBitsets off 353 | ActiveStateOutputEnumStorageType "Native Integer" 354 | ZeroExternalMemoryAtStartup on 355 | ZeroInternalMemoryAtStartup on 356 | InitFltsAndDblsToZero on 357 | NoFixptDivByZeroProtection off 358 | EfficientFloat2IntCast off 359 | EfficientMapNaN2IntZero on 360 | LifeSpan "inf" 361 | MaxStackSize "Inherit from target" 362 | BufferReusableBoundary on 363 | SimCompilerOptimization "off" 364 | AccelVerboseBuild off 365 | OptimizeBlockOrder "off" 366 | OptimizeDataStoreBuffers on 367 | BusAssignmentInplaceUpdate on 368 | DifferentSizesBufferReuse off 369 | OptimizationLevel "level2" 370 | OptimizationPriority "Balanced" 371 | OptimizationCustomize on 372 | UseRowMajorAlgorithm off 373 | LabelGuidedReuse off 374 | MultiThreadedLoops off 375 | DenormalBehavior "GradualUnderflow" 376 | } 377 | Simulink.DebuggingCC { 378 | $ObjectID 12 379 | Version "19.0.0" 380 | Array { 381 | Type "Cell" 382 | Dimension 1 383 | Cell "UseOnlyExistingSharedCode" 384 | PropName "DisabledProps" 385 | } 386 | Description "" 387 | Components [] 388 | RTPrefix "error" 389 | ConsistencyChecking "none" 390 | ArrayBoundsChecking "none" 391 | SignalInfNanChecking "none" 392 | StringTruncationChecking "error" 393 | SignalRangeChecking "none" 394 | ReadBeforeWriteMsg "UseLocalSettings" 395 | WriteAfterWriteMsg "UseLocalSettings" 396 | WriteAfterReadMsg "UseLocalSettings" 397 | AlgebraicLoopMsg "warning" 398 | ArtificialAlgebraicLoopMsg "warning" 399 | SaveWithDisabledLinksMsg "warning" 400 | SaveWithParameterizedLinksMsg "none" 401 | CheckSSInitialOutputMsg on 402 | UnderspecifiedInitializationDetection "Classic" 403 | MergeDetectMultiDrivingBlocksExec "none" 404 | CheckExecutionContextPreStartOutputMsg off 405 | CheckExecutionContextRuntimeOutputMsg off 406 | SignalResolutionControl "TryResolveAllWithWarning" 407 | BlockPriorityViolationMsg "warning" 408 | MinStepSizeMsg "warning" 409 | TimeAdjustmentMsg "none" 410 | MaxConsecutiveZCsMsg "error" 411 | MaskedZcDiagnostic "warning" 412 | IgnoredZcDiagnostic "warning" 413 | SolverPrmCheckMsg "none" 414 | InheritedTsInSrcMsg "warning" 415 | MultiTaskDSMMsg "warning" 416 | MultiTaskCondExecSysMsg "none" 417 | MultiTaskRateTransMsg "error" 418 | SingleTaskRateTransMsg "none" 419 | TasksWithSamePriorityMsg "warning" 420 | ExportedTasksRateTransMsg "none" 421 | SigSpecEnsureSampleTimeMsg "warning" 422 | CheckMatrixSingularityMsg "none" 423 | IntegerOverflowMsg "warning" 424 | Int32ToFloatConvMsg "warning" 425 | ParameterDowncastMsg "error" 426 | ParameterOverflowMsg "error" 427 | ParameterUnderflowMsg "none" 428 | ParameterPrecisionLossMsg "warning" 429 | ParameterTunabilityLossMsg "warning" 430 | FixptConstUnderflowMsg "none" 431 | FixptConstOverflowMsg "none" 432 | FixptConstPrecisionLossMsg "none" 433 | UnderSpecifiedDataTypeMsg "none" 434 | UnnecessaryDatatypeConvMsg "none" 435 | VectorMatrixConversionMsg "none" 436 | InvalidFcnCallConnMsg "error" 437 | FcnCallInpInsideContextMsg "warning" 438 | SignalLabelMismatchMsg "none" 439 | UnconnectedInputMsg "warning" 440 | UnconnectedOutputMsg "warning" 441 | UnconnectedLineMsg "warning" 442 | UseOnlyExistingSharedCode "error" 443 | SFcnCompatibilityMsg "none" 444 | FrameProcessingCompatibilityMsg "error" 445 | UniqueDataStoreMsg "none" 446 | BusObjectLabelMismatch "warning" 447 | RootOutportRequireBusObject "warning" 448 | AssertControl "UseLocalSettings" 449 | AllowSymbolicDim on 450 | RowMajorDimensionSupport off 451 | ModelReferenceIOMsg "none" 452 | ModelReferenceMultiInstanceNormalModeStructChecksumCheck "error" 453 | ModelReferenceVersionMismatchMessage "none" 454 | ModelReferenceIOMismatchMessage "none" 455 | UnknownTsInhSupMsg "warning" 456 | ModelReferenceDataLoggingMessage "warning" 457 | ModelReferenceSymbolNameMessage "warning" 458 | ModelReferenceExtraNoncontSigs "error" 459 | StateNameClashWarn "warning" 460 | OperatingPointInterfaceChecksumMismatchMsg "warning" 461 | NonCurrentReleaseOperatingPointMsg "error" 462 | ChecksumConsistencyForSSReuse "none" 463 | PregeneratedLibrarySubsystemCodeDiagnostic "warning" 464 | MatchCodeGenerationContextForUpdateDiagram "none" 465 | InitInArrayFormatMsg "warning" 466 | StrictBusMsg "ErrorLevel1" 467 | BusNameAdapt "WarnAndRepair" 468 | NonBusSignalsTreatedAsBus "none" 469 | SymbolicDimMinMaxWarning "warning" 470 | LossOfSymbolicDimsSimulationWarning "warning" 471 | LossOfSymbolicDimsCodeGenerationWarning "error" 472 | SymbolicDimsDataTypeCodeGenerationDiagnostic "error" 473 | BlockIODiagnostic "none" 474 | SFUnusedDataAndEventsDiag "warning" 475 | SFUnexpectedBacktrackingDiag "warning" 476 | SFInvalidInputDataAccessInChartInitDiag "warning" 477 | SFNoUnconditionalDefaultTransitionDiag "warning" 478 | SFTransitionOutsideNaturalParentDiag "warning" 479 | SFUnreachableExecutionPathDiag "warning" 480 | SFUndirectedBroadcastEventsDiag "warning" 481 | SFTransitionActionBeforeConditionDiag "warning" 482 | SFOutputUsedAsStateInMooreChartDiag "error" 483 | SFTemporalDelaySmallerThanSampleTimeDiag "warning" 484 | SFSelfTransitionDiag "warning" 485 | SFExecutionAtInitializationDiag "none" 486 | SFMachineParentedDataDiag "warning" 487 | IntegerSaturationMsg "warning" 488 | AllowedUnitSystems "all" 489 | UnitsInconsistencyMsg "warning" 490 | AllowAutomaticUnitConversions on 491 | RCSCRenamedMsg "warning" 492 | RCSCObservableMsg "warning" 493 | ForceCombineOutputUpdateInSim off 494 | UnitDatabase "" 495 | UnderSpecifiedDimensionMsg "none" 496 | DebugExecutionForFMUViaOutOfProcess off 497 | ArithmeticOperatorsInVariantConditions "warning" 498 | } 499 | Simulink.HardwareCC { 500 | $ObjectID 13 501 | Version "19.0.0" 502 | DisabledProps [] 503 | Description "" 504 | Components [] 505 | ProdBitPerChar 8 506 | ProdBitPerShort 16 507 | ProdBitPerInt 32 508 | ProdBitPerLong 32 509 | ProdBitPerLongLong 64 510 | ProdBitPerFloat 32 511 | ProdBitPerDouble 64 512 | ProdBitPerPointer 32 513 | ProdBitPerSizeT 32 514 | ProdBitPerPtrDiffT 32 515 | ProdLargestAtomicInteger "Char" 516 | ProdLargestAtomicFloat "None" 517 | ProdIntDivRoundTo "Undefined" 518 | ProdEndianess "Unspecified" 519 | ProdWordSize 32 520 | ProdShiftRightIntArith on 521 | ProdLongLongMode off 522 | ProdHWDeviceType "32-bit Generic" 523 | TargetBitPerChar 8 524 | TargetBitPerShort 16 525 | TargetBitPerInt 32 526 | TargetBitPerLong 32 527 | TargetBitPerLongLong 64 528 | TargetBitPerFloat 32 529 | TargetBitPerDouble 64 530 | TargetBitPerPointer 32 531 | TargetBitPerSizeT 32 532 | TargetBitPerPtrDiffT 32 533 | TargetLargestAtomicInteger "Char" 534 | TargetLargestAtomicFloat "None" 535 | TargetShiftRightIntArith on 536 | TargetLongLongMode off 537 | TargetIntDivRoundTo "Undefined" 538 | TargetEndianess "Unspecified" 539 | TargetWordSize 32 540 | TargetPreprocMaxBitsSint 32 541 | TargetPreprocMaxBitsUint 32 542 | TargetHWDeviceType "Specified" 543 | TargetUnknown on 544 | ProdEqTarget on 545 | UseEmbeddedCoderFeatures on 546 | UseSimulinkCoderFeatures on 547 | HardwareBoardFeatureSet "EmbeddedCoderHSP" 548 | } 549 | Simulink.ModelReferenceCC { 550 | $ObjectID 14 551 | Version "19.0.0" 552 | DisabledProps [] 553 | Description "" 554 | Components [] 555 | UpdateModelReferenceTargets "IfOutOfDateOrStructuralChange" 556 | EnableRefExpFcnMdlSchedulingChecks on 557 | CheckModelReferenceTargetMessage "error" 558 | EnableParallelModelReferenceBuilds off 559 | ParallelModelReferenceErrorOnInvalidPool on 560 | ParallelModelReferenceMATLABWorkerInit "None" 561 | ModelReferenceNumInstancesAllowed "Multi" 562 | PropagateVarSize "Infer from blocks in model" 563 | ModelDependencies "" 564 | ModelReferencePassRootInputsByReference on 565 | ModelReferenceMinAlgLoopOccurrences off 566 | PropagateSignalLabelsOutOfModel off 567 | SupportModelReferenceSimTargetCustomCode off 568 | } 569 | Simulink.SFSimCC { 570 | $ObjectID 15 571 | Version "19.0.0" 572 | DisabledProps [] 573 | Description "" 574 | Components [] 575 | SimCustomSourceCode "" 576 | SimCustomHeaderCode "" 577 | SimCustomInitializer "" 578 | SimCustomTerminator "" 579 | SimReservedNameArray [] 580 | SimUserSources "" 581 | SimUserIncludeDirs "" 582 | SimUserLibraries "" 583 | SimUserDefines "" 584 | SimCustomCompilerFlags "" 585 | SimCustomLinkerFlags "" 586 | SFSimEcho on 587 | SimCtrlC on 588 | SimIntegrity on 589 | SimUseLocalCustomCode on 590 | SimParseCustomCode on 591 | SimAnalyzeCustomCode off 592 | SimBuildMode "sf_incremental_build" 593 | SimGenImportedTypeDefs off 594 | ModelFunctionsGlobalVisibility "on" 595 | CompileTimeRecursionLimit 50 596 | EnableRuntimeRecursion on 597 | MATLABDynamicMemAlloc on 598 | MATLABDynamicMemAllocThreshold 65536 599 | CustomCodeFunctionArrayLayout [] 600 | DefaultCustomCodeFunctionArrayLayout "NotSpecified" 601 | } 602 | Simulink.RTWCC { 603 | $BackupClass "Simulink.RTWCC" 604 | $ObjectID 16 605 | Version "19.0.0" 606 | Array { 607 | Type "Cell" 608 | Dimension 16 609 | Cell "IncludeHyperlinkInReport" 610 | Cell "GenerateTraceInfo" 611 | Cell "GenerateTraceReport" 612 | Cell "GenerateTraceReportSl" 613 | Cell "GenerateTraceReportSf" 614 | Cell "GenerateTraceReportEml" 615 | Cell "PortableWordSizes" 616 | Cell "GenerateWebview" 617 | Cell "GenerateCodeMetricsReport" 618 | Cell "GenerateCodeReplacementReport" 619 | Cell "GenerateMissedCodeReplacementReport" 620 | Cell "GenerateErtSFunction" 621 | Cell "CreateSILPILBlock" 622 | Cell "CodeExecutionProfiling" 623 | Cell "CodeProfilingSaveOptions" 624 | Cell "CodeProfilingInstrumentation" 625 | PropName "DisabledProps" 626 | } 627 | SystemTargetFile "grt.tlc" 628 | HardwareBoard "None" 629 | ShowCustomHardwareApp off 630 | ShowEmbeddedHardwareApp off 631 | TLCOptions "" 632 | GenCodeOnly off 633 | MakeCommand "make_rtw" 634 | GenerateMakefile on 635 | PackageGeneratedCodeAndArtifacts off 636 | PackageName "" 637 | TemplateMakefile "grt_default_tmf" 638 | PostCodeGenCommand "" 639 | Description "" 640 | GenerateReport off 641 | RTWVerbose on 642 | RetainRTWFile off 643 | RTWBuildHooks [] 644 | ProfileTLC off 645 | TLCDebug off 646 | TLCCoverage off 647 | TLCAssert off 648 | RTWUseLocalCustomCode on 649 | RTWUseSimCustomCode off 650 | CustomSourceCode "" 651 | CustomHeaderCode "" 652 | CustomInclude "" 653 | CustomSource "" 654 | CustomLibrary "" 655 | CustomDefine "" 656 | CustomBLASCallback "" 657 | CustomLAPACKCallback "" 658 | CustomFFTCallback "" 659 | CustomInitializer "" 660 | CustomTerminator "" 661 | Toolchain "Automatically locate an installed toolchain" 662 | BuildConfiguration "Faster Builds" 663 | CustomToolchainOptions [] 664 | IncludeHyperlinkInReport off 665 | LaunchReport off 666 | PortableWordSizes off 667 | CreateSILPILBlock "None" 668 | CodeExecutionProfiling off 669 | CodeExecutionProfileVariable "executionProfile" 670 | CodeProfilingSaveOptions "SummaryOnly" 671 | CodeProfilingInstrumentation "off" 672 | SILDebugging off 673 | TargetLang "C" 674 | IncludeBusHierarchyInRTWFileBlockHierarchyMap off 675 | GenerateTraceInfo off 676 | GenerateTraceReport off 677 | GenerateTraceReportSl off 678 | GenerateTraceReportSf off 679 | GenerateTraceReportEml off 680 | GenerateWebview off 681 | GenerateCodeMetricsReport off 682 | GenerateCodeReplacementReport off 683 | GenerateMissedCodeReplacementReport off 684 | RTWCompilerOptimization "off" 685 | ObjectivePriorities [] 686 | RTWCustomCompilerOptimizations "" 687 | CheckMdlBeforeBuild "Off" 688 | SharedConstantsCachingThreshold 1024 689 | Array { 690 | Type "Handle" 691 | Dimension 2 692 | Simulink.CodeAppCC { 693 | $ObjectID 17 694 | Version "19.0.0" 695 | Array { 696 | Type "Cell" 697 | Dimension 28 698 | Cell "IgnoreCustomStorageClasses" 699 | Cell "InsertBlockDesc" 700 | Cell "SFDataObjDesc" 701 | Cell "SimulinkDataObjDesc" 702 | Cell "DefineNamingRule" 703 | Cell "SignalNamingRule" 704 | Cell "ParamNamingRule" 705 | Cell "InlinedPrmAccess" 706 | Cell "CustomSymbolStr" 707 | Cell "CustomSymbolStrGlobalVar" 708 | Cell "CustomSymbolStrType" 709 | Cell "CustomSymbolStrField" 710 | Cell "CustomSymbolStrFcn" 711 | Cell "CustomSymbolStrBlkIO" 712 | Cell "CustomSymbolStrTmpVar" 713 | Cell "CustomSymbolStrMacro" 714 | Cell "IgnoreTestpoints" 715 | Cell "BlockCommentType" 716 | Cell "InsertPolySpaceComments" 717 | Cell "MATLABFcnDesc" 718 | Cell "InternalIdentifier" 719 | Cell "CustomSymbolStrModelFcn" 720 | Cell "CustomSymbolStrFcnArg" 721 | Cell "CustomSymbolStrUtil" 722 | Cell "CustomSymbolStrEmxType" 723 | Cell "CustomSymbolStrEmxFcn" 724 | Cell "CustomUserTokenString" 725 | Cell "ReqsInCode" 726 | PropName "DisabledProps" 727 | } 728 | Description "" 729 | Components [] 730 | Comment "" 731 | ForceParamTrailComments off 732 | GenerateComments on 733 | CommentStyle "Auto" 734 | IgnoreCustomStorageClasses on 735 | IgnoreTestpoints off 736 | MaxIdLength 31 737 | PreserveName off 738 | PreserveNameWithParent off 739 | ShowEliminatedStatement off 740 | OperatorAnnotations off 741 | SimulinkDataObjDesc off 742 | SFDataObjDesc off 743 | MATLABFcnDesc off 744 | MangleLength 1 745 | SharedChecksumLength 8 746 | CustomSymbolStrGlobalVar "$R$N$M" 747 | CustomSymbolStrType "$N$R$M_T" 748 | CustomSymbolStrField "$N$M" 749 | CustomSymbolStrFcn "$R$N$M$F" 750 | CustomSymbolStrModelFcn "$R$N" 751 | CustomSymbolStrFcnArg "rt$I$N$M" 752 | CustomSymbolStrBlkIO "rtb_$N$M" 753 | CustomSymbolStrTmpVar "$N$M" 754 | CustomSymbolStrMacro "$R$N$M" 755 | CustomSymbolStrUtil "$N$C" 756 | CustomSymbolStrEmxType "emxArray_$M$N" 757 | CustomSymbolStrEmxFcn "emx$M$N" 758 | CustomUserTokenString "" 759 | CustomCommentsFcn "" 760 | DefineNamingRule "None" 761 | DefineNamingFcn "" 762 | ParamNamingRule "None" 763 | ParamNamingFcn "" 764 | SignalNamingRule "None" 765 | SignalNamingFcn "" 766 | InsertBlockDesc off 767 | InsertPolySpaceComments off 768 | SimulinkBlockComments on 769 | BlockCommentType "BlockPathComment" 770 | StateflowObjectComments on 771 | MATLABSourceComments off 772 | EnableCustomComments off 773 | InternalIdentifierFile "" 774 | InternalIdentifier "Shortened" 775 | InlinedPrmAccess "Literals" 776 | ReqsInCode off 777 | UseSimReservedNames off 778 | ReservedNameArray [] 779 | } 780 | Simulink.GRTTargetCC { 781 | $BackupClass "Simulink.TargetCC" 782 | $ObjectID 18 783 | Version "19.0.0" 784 | Array { 785 | Type "Cell" 786 | Dimension 17 787 | Cell "IncludeMdlTerminateFcn" 788 | Cell "RemoveResetFunc" 789 | Cell "SuppressErrorStatus" 790 | Cell "ERTCustomFileBanners" 791 | Cell "GenerateSampleERTMain" 792 | Cell "GenerateTestInterfaces" 793 | Cell "ModelStepFunctionPrototypeControlCompliant" 794 | Cell "PortableWordSizes" 795 | Cell "PurelyIntegerCode" 796 | Cell "PreserveStateflowLocalDataDimensions" 797 | Cell "SupportComplex" 798 | Cell "SupportAbsoluteTime" 799 | Cell "SupportContinuousTime" 800 | Cell "SupportNonInlinedSFcns" 801 | Cell "GenerateAllocFcn" 802 | Cell "ExistingSharedCode" 803 | Cell "RemoveDisableFunc" 804 | PropName "DisabledProps" 805 | } 806 | Description "" 807 | Components [] 808 | TargetFcnLib "ansi_tfl_tmw.mat" 809 | TargetLibSuffix "" 810 | TargetPreCompLibLocation "" 811 | GenFloatMathFcnCalls "NOT IN USE" 812 | TargetLangStandard "C89/C90 (ANSI)" 813 | CodeReplacementLibrary "None" 814 | UtilityFuncGeneration "Auto" 815 | MultiwordTypeDef "System defined" 816 | MultiwordLength 2048 817 | DynamicStringBufferSize 256 818 | GenerateFullHeader on 819 | InferredTypesCompatibility off 820 | ExistingSharedCode "" 821 | GenerateSampleERTMain off 822 | GenerateTestInterfaces off 823 | ModelReferenceCompliant on 824 | ParMdlRefBuildCompliant on 825 | CompOptLevelCompliant on 826 | ConcurrentExecutionCompliant on 827 | IncludeMdlTerminateFcn on 828 | GeneratePreprocessorConditionals "Use local settings" 829 | CombineOutputUpdateFcns off 830 | CombineSignalStateStructs off 831 | GroupInternalDataByFunction off 832 | SuppressErrorStatus off 833 | IncludeFileDelimiter "Auto" 834 | ERTCustomFileBanners off 835 | SupportAbsoluteTime on 836 | LogVarNameModifier "rt_" 837 | MatFileLogging on 838 | MultiInstanceERTCode off 839 | CodeInterfacePackaging "Nonreusable function" 840 | PurelyIntegerCode off 841 | SupportNonFinite on 842 | SupportComplex on 843 | SupportContinuousTime on 844 | SupportNonInlinedSFcns on 845 | RemoveDisableFunc off 846 | RemoveResetFunc off 847 | SupportVariableSizeSignals off 848 | ParenthesesLevel "Nominal" 849 | CastingMode "Nominal" 850 | PreserveStateflowLocalDataDimensions off 851 | MATLABClassNameForMDSCustomization "Simulink.SoftwareTarget.GRTCustomization" 852 | ModelStepFunctionPrototypeControlCompliant off 853 | CPPClassGenCompliant on 854 | AutosarCompliant off 855 | MDXCompliant off 856 | GRTInterface on 857 | GenerateAllocFcn off 858 | UseToolchainInfoCompliant on 859 | GenerateSharedConstants on 860 | CoderGroups [] 861 | AccessMethods [] 862 | LookupTableObjectStructAxisOrder "1,2,3,4,..." 863 | LUTObjectStructOrderExplicitValues "Size,Breakpoints,Table" 864 | LUTObjectStructOrderEvenSpacing "Size,Breakpoints,Table" 865 | ArrayLayout "Column-major" 866 | UnsupportedSFcnMsg "error" 867 | ERTHeaderFileRootName "$R$E" 868 | ERTSourceFileRootName "$R$E" 869 | ERTDataFileRootName "$R_data" 870 | UseMalloc off 871 | ExtMode off 872 | ExtModeStaticAlloc off 873 | ExtModeTesting off 874 | ExtModeStaticAllocSize 1000000 875 | ExtModeTransport 0 876 | ExtModeMexFile "ext_comm" 877 | ExtModeMexArgs "" 878 | ExtModeIntrfLevel "Level1" 879 | RTWCAPISignals off 880 | RTWCAPIParams off 881 | RTWCAPIStates off 882 | RTWCAPIRootIO off 883 | GenerateASAP2 off 884 | MultiInstanceErrorCode "Error" 885 | } 886 | PropName "Components" 887 | } 888 | } 889 | SlCovCC.ConfigComp { 890 | $ObjectID 19 891 | Version "19.0.0" 892 | DisabledProps [] 893 | Description "Simulink Coverage Configuration Component" 894 | Components [] 895 | Name "Simulink Coverage" 896 | CovEnable off 897 | CovScope "EntireSystem" 898 | CovIncludeTopModel on 899 | RecordCoverage off 900 | CovPath "/" 901 | CovSaveName "covdata" 902 | CovCompData "" 903 | CovMetricSettings "dw" 904 | CovFilter "" 905 | CovHTMLOptions "" 906 | CovNameIncrementing off 907 | CovHtmlReporting on 908 | CovForceBlockReductionOff on 909 | CovEnableCumulative on 910 | CovSaveCumulativeToWorkspaceVar on 911 | CovSaveSingleToWorkspaceVar on 912 | CovCumulativeVarName "covCumulativeData" 913 | CovCumulativeReport off 914 | CovSaveOutputData on 915 | CovOutputDir "slcov_output/$ModelName$" 916 | CovDataFileName "$ModelName$_cvdata" 917 | CovShowResultsExplorer on 918 | CovReportOnPause on 919 | CovModelRefEnable "off" 920 | CovModelRefExcluded "" 921 | CovExternalEMLEnable on 922 | CovSFcnEnable on 923 | CovBoundaryAbsTol 1e-05 924 | CovBoundaryRelTol 0.01 925 | CovUseTimeInterval off 926 | CovStartTime 0 927 | CovStopTime 0 928 | CovMcdcMode "Masking" 929 | } 930 | PropName "Components" 931 | } 932 | Name "Configuration" 933 | CurrentDlgPage "Solver" 934 | ConfigPrmDlgPosition [ 500, 220, 1420, 860 ] 935 | ExtraOptions "" 936 | } 937 | PropName "ConfigurationSets" 938 | } 939 | Simulink.ConfigSet { 940 | $PropName "ActiveConfigurationSet" 941 | $ObjectID 8 942 | } 943 | Object { 944 | $PropName "DataTransfer" 945 | $ObjectID 20 946 | $ClassName "Simulink.GlobalDataTransfer" 947 | DefaultTransitionBetweenSyncTasks "Ensure deterministic transfer (maximum delay)" 948 | DefaultTransitionBetweenAsyncTasks "Ensure data integrity only" 949 | DefaultTransitionBetweenContTasks "Ensure deterministic transfer (minimum delay)" 950 | DefaultExtrapolationMethodBetweenContTasks "None" 951 | } 952 | ExplicitPartitioning off 953 | BlockDefaults { 954 | ForegroundColor "black" 955 | BackgroundColor "white" 956 | DropShadow off 957 | NamePlacement "normal" 958 | FontName "Helvetica" 959 | FontSize 10 960 | FontWeight "normal" 961 | FontAngle "normal" 962 | ShowName on 963 | HideAutomaticName on 964 | BlockRotation 0 965 | BlockMirror off 966 | } 967 | AnnotationDefaults { 968 | HorizontalAlignment "center" 969 | VerticalAlignment "middle" 970 | ForegroundColor "black" 971 | BackgroundColor "white" 972 | DropShadow off 973 | FontName "Helvetica" 974 | FontSize 10 975 | FontWeight "normal" 976 | FontAngle "normal" 977 | MarkupType "model" 978 | UseDisplayTextAsClickCallback off 979 | AnnotationType "note_annotation" 980 | FixedHeight off 981 | FixedWidth off 982 | Interpreter "off" 983 | } 984 | LineDefaults { 985 | FontName "Helvetica" 986 | FontSize 9 987 | FontWeight "normal" 988 | FontAngle "normal" 989 | } 990 | MaskDefaults { 991 | SelfModifiable "off" 992 | IconFrame "on" 993 | IconOpaque "opaque" 994 | RunInitForIconRedraw "analyze" 995 | IconRotate "none" 996 | PortRotate "default" 997 | IconUnits "autoscale" 998 | } 999 | MaskParameterDefaults { 1000 | Evaluate "on" 1001 | Tunable "on" 1002 | NeverSave "off" 1003 | Internal "off" 1004 | ReadOnly "off" 1005 | Enabled "on" 1006 | Visible "on" 1007 | ToolTip "on" 1008 | } 1009 | BlockParameterDefaults { 1010 | Block { 1011 | BlockType Clock 1012 | DisplayTime off 1013 | Decimation "10" 1014 | } 1015 | Block { 1016 | BlockType Demux 1017 | Outputs "4" 1018 | DisplayOption "none" 1019 | BusSelectionMode off 1020 | } 1021 | Block { 1022 | BlockType Derivative 1023 | CoefficientInTFapproximation "inf" 1024 | } 1025 | Block { 1026 | BlockType Mux 1027 | Inputs "4" 1028 | DisplayOption "none" 1029 | UseBusObject off 1030 | BusObject "BusObject" 1031 | NonVirtualBus off 1032 | } 1033 | Block { 1034 | BlockType S-Function 1035 | FunctionName "system" 1036 | SFunctionModules "''" 1037 | PortCounts "[]" 1038 | MultiThreadCoSim "auto" 1039 | } 1040 | Block { 1041 | BlockType Sin 1042 | SineType "Time based" 1043 | TimeSource "Use simulation time" 1044 | Amplitude "1" 1045 | Bias "0" 1046 | Frequency "1" 1047 | Phase "0" 1048 | Samples "10" 1049 | Offset "0" 1050 | SampleTime "-1" 1051 | VectorParams1D on 1052 | } 1053 | Block { 1054 | BlockType Sum 1055 | IconShape "rectangular" 1056 | Inputs "++" 1057 | CollapseMode "All dimensions" 1058 | CollapseDim "1" 1059 | InputSameDT on 1060 | AccumDataTypeStr "Inherit: Inherit via internal rule" 1061 | OutMin "[]" 1062 | OutMax "[]" 1063 | OutDataTypeStr "Inherit: Same as first input" 1064 | LockScale off 1065 | RndMeth "Floor" 1066 | SaturateOnIntegerOverflow on 1067 | SampleTime "-1" 1068 | } 1069 | Block { 1070 | BlockType ToWorkspace 1071 | VariableName "simulink_output" 1072 | MaxDataPoints "1000" 1073 | Decimation "1" 1074 | SaveFormat "Array" 1075 | Save2DSignal "3-D array (concatenate along third dimension)" 1076 | FixptAsFi off 1077 | NumInputs "1" 1078 | SampleTime "0" 1079 | } 1080 | } 1081 | System { 1082 | Name "Sim" 1083 | Location [16, 52, 1084, 897] 1084 | Open on 1085 | PortBlocksUseCompactNotation off 1086 | SetExecutionDomain off 1087 | ExecutionDomainType "Deduce" 1088 | ModelBrowserVisibility off 1089 | ModelBrowserWidth 200 1090 | ScreenColor "white" 1091 | PaperOrientation "landscape" 1092 | PaperPositionMode "auto" 1093 | PaperType "usletter" 1094 | PaperUnits "inches" 1095 | TiledPaperMargins [0.196850, 0.196850, 0.196850, 0.196850] 1096 | TiledPageScale 1 1097 | ShowPageBoundaries off 1098 | ZoomFactor "128" 1099 | ReportName "simulink-default.rpt" 1100 | SIDHighWatermark "15" 1101 | SimulinkSubDomain "Simulink" 1102 | Block { 1103 | BlockType Clock 1104 | Name "Clock" 1105 | SID "1" 1106 | Position [50, 295, 100, 335] 1107 | ZOrder -1 1108 | DisplayTime on 1109 | } 1110 | Block { 1111 | BlockType Demux 1112 | Name "Demux" 1113 | SID "2" 1114 | Ports [1, 4] 1115 | Position [530, 137, 560, 198] 1116 | ZOrder -2 1117 | ShowName off 1118 | } 1119 | Block { 1120 | BlockType Derivative 1121 | Name "Derivative" 1122 | SID "3" 1123 | Position [235, 40, 265, 70] 1124 | ZOrder -3 1125 | } 1126 | Block { 1127 | BlockType Derivative 1128 | Name "Derivative2" 1129 | SID "4" 1130 | Position [185, 175, 215, 205] 1131 | ZOrder -4 1132 | } 1133 | Block { 1134 | BlockType Mux 1135 | Name "Mux1" 1136 | SID "5" 1137 | Ports [4, 1] 1138 | Position [660, 107, 680, 168] 1139 | ZOrder -5 1140 | ShowName off 1141 | } 1142 | Block { 1143 | BlockType Mux 1144 | Name "Mux2" 1145 | SID "6" 1146 | Ports [2, 1] 1147 | Position [240, 124, 265, 211] 1148 | ZOrder -6 1149 | ShowName off 1150 | Inputs "2" 1151 | } 1152 | Block { 1153 | BlockType Mux 1154 | Name "Mux4" 1155 | SID "7" 1156 | Ports [3, 1] 1157 | Position [640, 270, 670, 330] 1158 | ZOrder -7 1159 | ShowName off 1160 | Inputs "3" 1161 | } 1162 | Block { 1163 | BlockType ToWorkspace 1164 | Name "Position" 1165 | SID "8" 1166 | Ports [1] 1167 | Position [715, 125, 745, 155] 1168 | ZOrder -8 1169 | VariableName "y" 1170 | MaxDataPoints "inf" 1171 | SampleTime "-1" 1172 | } 1173 | Block { 1174 | BlockType ToWorkspace 1175 | Name "Position1" 1176 | SID "9" 1177 | Ports [1] 1178 | Position [440, 80, 500, 110] 1179 | ZOrder -9 1180 | VariableName "u" 1181 | MaxDataPoints "inf" 1182 | SampleTime "-1" 1183 | } 1184 | Block { 1185 | BlockType ToWorkspace 1186 | Name "Position5" 1187 | SID "10" 1188 | Ports [1] 1189 | Position [695, 286, 730, 314] 1190 | ZOrder -10 1191 | VariableName "p" 1192 | MaxDataPoints "inf" 1193 | SampleTime "-1" 1194 | } 1195 | Block { 1196 | BlockType S-Function 1197 | Name "S-Function" 1198 | SID "11" 1199 | Ports [1, 1] 1200 | Position [290, 151, 370, 189] 1201 | ZOrder -11 1202 | FunctionName "Controller" 1203 | SFunctionDeploymentMode off 1204 | EnableBusSupport off 1205 | SFcnIsStateOwnerBlock off 1206 | } 1207 | Block { 1208 | BlockType S-Function 1209 | Name "S-Function1" 1210 | SID "12" 1211 | Ports [1, 1] 1212 | Position [430, 150, 505, 190] 1213 | ZOrder -12 1214 | FunctionName "Model" 1215 | SFunctionDeploymentMode off 1216 | EnableBusSupport off 1217 | SFcnIsStateOwnerBlock off 1218 | } 1219 | Block { 1220 | BlockType Sin 1221 | Name "Sine Wave" 1222 | SID "13" 1223 | Ports [0, 1] 1224 | Position [45, 150, 75, 180] 1225 | ZOrder -13 1226 | SampleTime "0" 1227 | } 1228 | Block { 1229 | BlockType Sum 1230 | Name "Sum" 1231 | SID "14" 1232 | Ports [2, 1] 1233 | Position [130, 155, 150, 175] 1234 | ZOrder -14 1235 | ShowName off 1236 | IconShape "round" 1237 | Inputs "|+-" 1238 | InputSameDT off 1239 | OutDataTypeStr "Inherit: Inherit via internal rule" 1240 | } 1241 | Block { 1242 | BlockType ToWorkspace 1243 | Name "To Workspace" 1244 | SID "15" 1245 | Ports [1] 1246 | Position [150, 301, 195, 329] 1247 | ZOrder -15 1248 | VariableName "t" 1249 | MaxDataPoints "inf" 1250 | SampleTime "-1" 1251 | } 1252 | Line { 1253 | ZOrder 1 1254 | SrcBlock "Mux1" 1255 | SrcPort 1 1256 | DstBlock "Position" 1257 | DstPort 1 1258 | } 1259 | Line { 1260 | ZOrder 2 1261 | SrcBlock "Demux" 1262 | SrcPort 1 1263 | Points [40, 0] 1264 | Branch { 1265 | ZOrder 3 1266 | Points [0, 125; -465, 0] 1267 | DstBlock "Sum" 1268 | DstPort 2 1269 | } 1270 | Branch { 1271 | ZOrder 4 1272 | DstBlock "Mux1" 1273 | DstPort 3 1274 | } 1275 | } 1276 | Line { 1277 | ZOrder 5 1278 | SrcBlock "S-Function1" 1279 | SrcPort 1 1280 | DstBlock "Demux" 1281 | DstPort 1 1282 | } 1283 | Line { 1284 | ZOrder 6 1285 | SrcBlock "Clock" 1286 | SrcPort 1 1287 | DstBlock "To Workspace" 1288 | DstPort 1 1289 | } 1290 | Line { 1291 | ZOrder 7 1292 | SrcBlock "Mux4" 1293 | SrcPort 1 1294 | DstBlock "Position5" 1295 | DstPort 1 1296 | } 1297 | Line { 1298 | ZOrder 8 1299 | SrcBlock "Sine Wave" 1300 | SrcPort 1 1301 | Points [35, 0] 1302 | Branch { 1303 | ZOrder 9 1304 | DstBlock "Sum" 1305 | DstPort 1 1306 | } 1307 | Branch { 1308 | ZOrder 10 1309 | Points [0, -110] 1310 | Branch { 1311 | ZOrder 11 1312 | Points [0, -30; 490, 0; 0, 90] 1313 | DstBlock "Mux1" 1314 | DstPort 1 1315 | } 1316 | Branch { 1317 | ZOrder 12 1318 | DstBlock "Derivative" 1319 | DstPort 1 1320 | } 1321 | } 1322 | } 1323 | Line { 1324 | ZOrder 13 1325 | SrcBlock "Mux2" 1326 | SrcPort 1 1327 | DstBlock "S-Function" 1328 | DstPort 1 1329 | } 1330 | Line { 1331 | ZOrder 14 1332 | SrcBlock "Sum" 1333 | SrcPort 1 1334 | Points [5, 0] 1335 | Branch { 1336 | ZOrder 15 1337 | Points [0, -20] 1338 | DstBlock "Mux2" 1339 | DstPort 1 1340 | } 1341 | Branch { 1342 | ZOrder 16 1343 | Points [0, 25] 1344 | DstBlock "Derivative2" 1345 | DstPort 1 1346 | } 1347 | } 1348 | Line { 1349 | ZOrder 17 1350 | SrcBlock "Derivative2" 1351 | SrcPort 1 1352 | DstBlock "Mux2" 1353 | DstPort 2 1354 | } 1355 | Line { 1356 | ZOrder 18 1357 | SrcBlock "Demux" 1358 | SrcPort 3 1359 | Points [55, 0; 0, 105] 1360 | DstBlock "Mux4" 1361 | DstPort 1 1362 | } 1363 | Line { 1364 | ZOrder 19 1365 | SrcBlock "S-Function" 1366 | SrcPort 1 1367 | Points [30, 0] 1368 | Branch { 1369 | ZOrder 20 1370 | DstBlock "S-Function1" 1371 | DstPort 1 1372 | } 1373 | Branch { 1374 | ZOrder 21 1375 | Points [0, -75] 1376 | DstBlock "Position1" 1377 | DstPort 1 1378 | } 1379 | Branch { 1380 | ZOrder 22 1381 | Points [0, 150] 1382 | DstBlock "Mux4" 1383 | DstPort 3 1384 | } 1385 | } 1386 | Line { 1387 | ZOrder 23 1388 | SrcBlock "Demux" 1389 | SrcPort 4 1390 | Points [25, 0; 0, 110] 1391 | DstBlock "Mux4" 1392 | DstPort 2 1393 | } 1394 | Line { 1395 | ZOrder 24 1396 | SrcBlock "Demux" 1397 | SrcPort 2 1398 | DstBlock "Mux1" 1399 | DstPort 4 1400 | } 1401 | Line { 1402 | ZOrder 25 1403 | SrcBlock "Derivative" 1404 | SrcPort 1 1405 | Points [310, 0; 0, 75] 1406 | DstBlock "Mux1" 1407 | DstPort 2 1408 | } 1409 | } 1410 | } 1411 | -------------------------------------------------------------------------------- /神经网络自适应/Sim.mdlPreview: -------------------------------------------------------------------------------- 1 | [Preview] 2 | LargeImageOriginalSize=710000 3 | LargeImageWidth=355 4 | LargeImageHeight=500 5 | LargeImage=78DAECDDEF5353599EC7F1CFFFB70F7A1FF4564DF7CC83A9DDAAADAD72B6677B76A67B77A69B519BB27544442142F8193560120D24400224E412228420573B1762C4544C75B0A2036565572CE9AD76AA987B2F12D7B6C7D951D4DECEFBC1ABC2FD75CEC93DA9E3F1DC73BE77777757BB0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000BC23D985C5C6DF5669C3FEDCE1BE00682AC75BCFAB688EAB7F74491FBFFFA17EF3AFFFA6DFFDEA635D191F97954B687A2EAB116FB78EB774CBCC049533CB9A9B1AD6FBEF7D20BFE78B032983999A77CB6165479FEEBB47DD0068CAB6B854AB2B1D8FE8D79F74A8BE6EBADB6BCB69F98211651211F57802F6F975259286B256493123A77AAD742065F0F7F46BF4FC8CDB06EFF58B698B010000000068369E2EBF0A0B6945E2731A0D861BE3C2474F8FA8FBF8AFDD71E4FF7CFF431DFAA45DE3A74EEA8BCFDAD475CAA79F7DF8913AEDE39E9327D4DF7158877EF9990EFDFCA7AF3E4ED167EA6AE88612999A7299553BDD8C0EF7596AFBADA1EE5319777F7B8B61976FD92EDFAA3A3A96E5B1F5F5E775BA735956E9BFF564FB91DABD37D4DABAA0C1A1759D3CB2A8909DA673FEF45C5523DE65057D37948A5A6AF79555B2369435B7D4D36AD8E92DB9E9F54ED694F0651AE7F11B01F0361CED0868757E42C974429BDB3B32532577BC76F54E4DB7CDB4D266C11D47F68F4DEBCEDA828EB5F5293934AD783AA7BC7DBCB36D40C1805733B32B4A8D86FFE6FC17D23519C6BADA3B4CADCC9694B51E6867F7B19DAEA953BD2BCAE7AA9A8F979F3EE3BB23FFD02DFBEFC7EAB97853E66C59F3E9B22E0CAF36D20BC5CA4A466E6A72F2AECED96D71D6AAB8E7B775AD2893B8A5F0C46DAD996545923599895B8D74F7D373DAE2A827D338CF295FC628F35B01F046D537B7DD3964CEB3BA6422A158CC78E99C3233774D46F6E0FA8B6BC5BA56AF5765E4EE6BFDABAAB69F38FBBF7D71DE9BDD46D7371EA85A79F4DCF155EBFE73E745125F2B162AECCD8FB3AFD97EF2EDF7A6D748D7EE172722CEF97F72B7779CF63C72FBB9F295BE930700BC2D898CA9273B75EE0500BC05475A3AB559B23499CE6BCCEFD34877BF162627DD63F9D4BC3BF6908845141C9D76E71B9B85B23BDFD8DB1B56D14C682818D5578BA957CE7F7229AF09BF9FBA00D0D456F225550A05C566E2CA6E7CA3DE23E7140F5CB0FFEF5E94198FEA97BF3BAB8F3EF88986072E68FCF245B575F5BAF38DF7C79553F3694D4FBD7A5B1C9F5FD6943F485D0060BC787747C55ADDEDF76E6F6E3C3BFE92318A502461F78B338A1959D54AAF3E7E6C162B323309EA02000000EF5471ED8EFBE9CC8D285959854211F7D32A6DBAE3C8FFFCEFA7958BFA65650D552B55995649C9584C46DAD0626641D76F7CA5A2957BED72844205BB7F5C96557CA81BF6A7339F3862EFCB595B76BFFBBE5D9E47328DDBF679B7DC79C1CB6B0F542BDE6FCC83B0B21519C9F2B3EDA7E753C700FE3F68EB18566EEC92C293295D0907149A98D6EE931DCDA7534AA5E7E5F58514BE7A4F236D9734EE3BA7C8F4923A8F7F26CF897EA52EB7ABF5E8594D07865FBB1CFF71CAD4E6EDAA4647D615F22D37E6FDA69225958B5BEE3CE254FE915DBE75BB7CDF6A6ABE26335E6A9C376AEF4FCD54952AFD8F76EFDD6D9CBF5BFF23F50CE007CF1F48AB525C50309A542078E52F9E371B0D2AD8EB3BF0FCA3D1AF357AF99ABCDE15A5237B6B36D276FFD699675CDFA86B6BEBD14BAF77FAC1C1DEE5C67675FB4F1AF1E79F4B3F317693BA060000C06BAFF9C82FCCFEDFE6C765B3DC33003800D56C42A381A0467C218D8D8D3F1D8F9DD7994F3E71C785D3F1B82A9BDB4A2567542EAE37AEABD5B755C8CC700F01E000F4F70C2AEA3FA7EE7357542B5AEE9A8F5878B8113BDE895B118FC5E4F174A952349FEF4347A3DC43000000FC2864D24BDC070078C7663205D5378ADC0B007887E653CE18F013EE0500BCCB35D1FF6B6E04000000D02C6266413BB575774DC7509747B1785A667CDADD3633510D5E8828E00BCADBE577B7F763CB1FE83AEC9E7E3736BD958DCB2A39313BEF5137009ACA55634157E7AE2A6B95DCD8F11F7E744C5743DDEEB6D3260E0E8C6BC0176EC48EDF8F2D7F906570D692ECA7BFB78FB61840F370E2EF38F131233143DBDF6CABBE517DEE981B637E6D6F4EC55F7B27E9EBC82E2C2A7F7DD54D7FAF5FBC43FD000000E0ADDADAFC71BFEBD9D3BB4A3D03F8C1DB8F259F9C8EAB56DF698CDB3A31E3C786BD9A9ACF6BCCEB57DFF084FB4C6F2C34A18EA317E4736207D9C7A723B1464CF9FE0EEF2B97231CB8A5B9D08DA7DB0FED746FE9D4E5755D9D296922FA2C66BC99DA728FEFC78E9F982C2B9D7C169F38142B2B1EBBA5D9E52D25035FC9EBB3141C596B5CBF952F2B95BEA3B8F9D08D49DF7A74C92EF78AE2B93FBADBBD976EEADCF9BCFDFDD6ECEFB7DC386FFFFAEFC6ACDF4F8FDF1280D7D1DE79C58D251F9DBBAAE170549D2786DDB6B858DD6CC4024AC723327296EEAC2DE8E35FFD5EFD67034A2C98AAD9C72391A432CB8BB24A355939E36FCEBFA7E7A6CE9C4AA8BDC394115D53E2FA03EDEC3EB6D32D2B912CAB5A79A0A25953D67A60FF5B70533D1EA79FFB58A9C59AFB8EA5E0A5BC92C6B3F7A5B67B6FA8FDF7192D2E6CC8C8DE573259D97B17D3D3EB630B356D56EFCB34B7641A65BBDC0FED72571ADBAD1DCBEAFEC3A2FDFD6AF6F77FD0D8EFC4ACEF6935EC7CEFBAE905D2F7F5B3F7461AE939DF63E0CC22BF290000801FD978B133BFB85EE5DD9D00F0569E6D75F9555848AB371097B7A75FBD474E6A6C68B031EFD7994F7CE8E73F956FE082FD7FF984A6E7B21AF176EB78EB7915CD719DF0F42B7EE5D22BE79F308BFA97BFFF3BEA0240533BDA11D0EAFC84C2E17125AE55EDB6F89C5652D36E0CF93B66D65D67971A0D2B3C3AADF1CB17D5D6D5AB4C22D278C6979A4F6B6A2AF1CAF9CF2D1574F5CA45EA024053AB6F6EEFADE9A8D5DD7EEFF6E6B3E760BB3B7F79BE5B2892B0FBC519C58CAC6A25EBB5CAB05E24462700BC8CD3E6BEAC4D7E73F996ED7C1F5307009AC291964E6DDAFDDA6034E9AE87EEF2F4BB9FA9C535AD2DA6D43930EEC6064A878695984A686C2AADF3FD7DF20DFA14095E502C1253D1CABD7639BCDE15C5C379F92EAE2A78316FE75BB4F35D95B72B2F3373CB2ECF7DFBF84DBB7C2B76F93634337BD7CEF7AEFCD1AF6544AFDBFB97353BB96A97AF62976FA5B1DF998B5634CB1A1EBEA968BCACAEFEBCBDBDE1A6B7B658E63700E00761255F52A550507832A5BEE1803E3FD12D3331A1C0544AA9A9805ABEEC53774F501D9F9E552E7A49C3932BFAF4D03FE837FFF40B794E7FEA3EDBBBD47EF895F3BF577BA48DEA7FE91F0F5F73D74EF45DBAADE840CECEF79A9DEF6A636D4760AAACF39756EDF22DD9E5BB65E7BB64E76BA83754D5D8F925B59C5C5224B06C97EFAE0E1F0A34F6EFF5AD1FEA8BF66BEAFBC3A29DEEA2AC6CC54D2F356535F2E7B700E087305E6C642D192F898559AD1495B0FBC0079DFF5AB1AED5EB55854205B78DFCEEF158CCD9F7ED5F1FD3B0AFAF95EEBFB07FAF5FFC7563BBB4F95819E3F60BF9F35B000000C073F37D7396EAB5A2D24BABAA152D77CDC7DC68403123E78E0B3BF32D6291907256F185F9138968947B080007E09B4A46F1E9981B433E1EB8E0CE331EEBF5E8FDF73E70C785A3F1399D1B0AEAC8E116558A66E3BA5A7D5B85CC0CF710000E80CF3FA995D988E653CFE2DC6CD46A2FAE9DDEDA7CF1396036CB3D040000C08F423814E73E00C03B369329A8BEC1BB3000807E3100000000006826DB4F76B53AD3AB13C7CE289159507BCB110DF77BE4E9E871D778E43241794E9ED0E1BEA08EB79C91696FF704A7D4F9DBC3EE7C63BFE70B0D0EC5D5F765CB6B97A5BFC754D4BFA48E8E653BFF65EA074053E9E9F85C7DA7BF54D62AB9B1E3CF7676CB9C4DBADB3BBB7575B60DE8546FBFFC43CE9ABABA22B359F93C6714F48FEAF6CAA2262757343ED0F9CAF92FA46B328C7555B3258D062CF55CBC69E75F6EECA78E0000000000680E5EAF5F3BF50D777C78A8CB236F975F66262AB3505666FCB2FBBEBB442CD28831FF26CAE0EFE957786A5EB70BCBB24ACE3B9EEE5137009A8AC73FA66226DD182FDE7FA7A8F38E5127F6CFFEBB473B07AFB831E6DF44199CF74DFB83134A27F7DF614A5B0CA0B984423119B1903BA7A2BE51552C66C8892DFF36CB905D5894E1C4EADC2C3DED17EF503700000078ABAC6C46463261F7476BEEB8702814919949289C2868D47BDAED2767CDD5EF8D1D7F5062A3113786BDF30ED4CAE6B6B6372B6EFFD81933A18E003483E3AD67143EEF77DF21FAD1073F51E7896177BCD6EF8FE9ECF163BAD077597DEDED2FC48E3FE8F1E2DEE1B00AE994FB772A7EB5B19F3A02D00C6623410587838DED6A65F3B9F1DA74D2703FBF2F76FC41F68B9DB678B352D4577736B4B19EA75F0C000080A6E3CCA378611CDBEE17D7374ADC1F004DA1FDF3631AECF4B86B3D9CD840C19E0137D6CFF45CD65DEBD179C2A381F391375A06675CD8179AD45C28A0D9CC752D1B538C1703682ABD9D6D9A0B0E36D67A047DA36EAC9FFDB51ECEB3BB887FE88DB7C5AD677A542B5A5ACA2C6A3EC9B33B0000FECCDED936B5716579FCFFD5F209B22F66AB66B2B3555BB555FB26B3A99AD9D9C9CE4E961807277EC00E36C820102040024920D442A8112DBA69094948A14DD408095009AD052513512EED18573CA9F556B1F75EE80E0FC6716C70FC705EFC4A56DF73FBDE7EA8EBC3D139FF4B1004411004F1BED1E570E0DBB40A355D801C0CC23F19839955A0CDC5A104DDF087E34213281894516076B9C226424ECF290D214B5BC8B2F37A8308CBEAB9CDD3EDDB807368157E4F1125731B92BE8392B1C5C67F88512769CF1304F176A32674CCCC28500DB616478208B2B5786A7C04095D452AEC169FC9EA1E8211B6C61A2A746315BA2CD9DAF2565CD98A375B763D232148EE578F33EBFA7D24B50A12EAB6F8CED7E28DA51A7AA7EB30335536FE1292CA9A6D47CF942088B7914020F0CCDAE615F3E0989631A1454FE7519CAC09B1B485CE7B7E4B2B3BCC2FDF4154DBC25679C73EFE8491D4364ED9D133250882200882205E86F51AF36F9F3445BC57623E7254D6456E19FFCE3582F4C5156495A8AD196469089D770D744062E7CE68879A994D7A360441BC572C68292CCC2F8878AF2187F1D1275F6221D02DBE738DA081FE29F4BB83B6C6BCA52174DEF9C5D6F90F8E91963C4110EF0F3CC6BBA24BE875FBB1F7B7BD63F15EDEC6E3C109F5A03ED9FAADEE22E6C1FDE2F9998C383FF9C5044110044110C42F41A9B0293ECBF5E6B1B8B0619661E674914FCC8F5B7164AE2D5FABD620B3CF7BAC5D8B46914EA6706FF9DB578A2347E31534CA3B50927564931576DE0DA4EFED400EAC61395D15C7A5C02A9BDF1A9B5F0571E53E34D667E530C7C22CFF15CDE663D66F0D1963977D6FC2D03660961E6199D99BE5476C7E6B767F89F52F19F7C579B5E82A6B7F2CC6AF551EA1B1FB885D6F955DEF8EE8C7F3992D3B7E6EDE8F8F9F31EA08481591E76CF5A7778A208897A1BDC38B6C680CF1988C7AF3891DB795628B08799D9849E4456D479F3702438E211488A0E3F230DCEE80688F4951A8E3B7D076F90E5C1DCE979E47D0B786F9C0F2E1F747ECBC6BB839BE8E85D93222E1F2615C7993B12BDA2723EB50676B884C57A0C78B3FE6E845CB189BAC20A157A0E61F63B22B81803BC7E6B7C8E6B764F7EF1D2B62D29F836C3CC2DE56EDC05EDFC448A002D7D70BEC7AD99A2D9745BF982F6FDB59F3B3C6571307FF9759FDE99D2208E265B8D539816A2985F0FC02BCC1B0BDAF47A9D640B35E16FE32AFEDE07B836E1652F8FD1F3E87EB8E0F4ACA409DB54B521CC95C5AE4579859ED678FDFD353C4ED9B0A6E7518D0C20528F71EE2C9FEF7ECBC1528CCEFAD551F32BFB38E8CF990AD8D45F4385658BFEFA1A6EBC26FF58FE511D7B6EC18F795CFE6D0C6CE69D6985F9C3AF08BC7BA16847F6B66ABECFAF2622D6DEBC82132BA0C83F9B971A50A737D178DDA0E32A91A8C52935DEF0EBBDEFBA25FB3FED0B6E3ED25634D8C9F5536F071EB221C57626CBCC7A2BF753DF46E110441100441BC5DEC369E9DB3C0F38B9BB50DBA47044110AF01479707AB291DBD3E19CE1E177A5B6F20343860E7FDF27CE28FFFE91FE0EE1F169A415C637ED4D98DAB6D43EC6FF5295C73B8204F8CBDBC1EC6E22AFA6E7C49CF8220088A179752F65A3CD6E112F91219A384663967C78179BCB890D3E1F64B482AD2B1B5786A6CE4E5F5268C3206EFB6D1B320088220088220DE68B84E04D7ABA07B4110047171B4B674A251366DCDF82E874B7C726D79AE09DFD93F059FDB0F3DE08532A32034A363C8D507F7801B927F1851298A92997DE55AEC527A0D837D7936EE361BB782E9E96DB8BA976CED785E6B31D89563F3CB616E7A059EF07D36CF2D66BF033958C48C5CC6D2C27F2357788890338FD9B96D51DBE10957851DAFD1F0F7E6100FAFC0EF5DB1B5E8ADFEFB4F7FA0F78120885F8CCB1D3EAC2422B6667CE7C0040C2522B4E5B9267C67FF84588B6F7EF25F3054152B9B754C4B1E745EB90EBFCFC9D6BC256C2CA55F7AFC945E87A6ADA3A74341DFD7F36CDC1D36EEC15A7CB7356D6BC75BB51E2D371631316C408AD7D93CD784BD1C29A29CAB20305E846E7C075D5E136BB13A596476DBC2CEEA7FA7330763AE626BD15BFD537355D2A22708E217A3D9D803D7003A4B33DEA2562D41613EF0798F5F283591CAD6B0D7F82B72195E43FCBF769B693EB4FFCD6B3D9A5B0F1108ACA2FE12B5C6DC2F56A455FBFB492D7A3E0FD2A2270882200882202CDC9E692CCD49181896909A9E16C7B26A027ECFA4880B2796561195029066E6C49EA347FBF27C64BA87044110AFCEDFAA49C8B1A8D090977DC322CF38D4EBC0AF3EFC0DC66E5D42589EC7DD413F5A2FB5883D47AD7EF5E61E5693B3740F098220CED12FB634E4395BF5FAE9DAE9DDC6E9BA8D4C86EE21411004411004F16ED4760402A2C6D92C3744DE71A9DE14F161AE1DCFB5E5792C22AB1DDD8BF4C02EAE249131962F7C7E66E101B6CA39113BE17B9536F79EB2F9CA626FA6A77B0D541B7B281949B8233934CBF7EC7EFC3A8CC379F3D84AF3C9FE29FBFDFDA7C76A5CF8F979FB5EA36A8FC335449B8DB2E8CFCF9364F3E0ED27FB5B763C5F83E79F285953DCA793E3D29E5204413C8B846AA0582A887C63554F409765B16E58DAF16A5C45A55CB335E72DBBC9480CEAECE285CFEFE41EA57DEE10FC43A33FB627D350674ECF23104B60E07A0FB23913B58DC24FDA5BE31CB4CFDBE328CA34D2FAFC89FEF3A7FA2B5A4ED84D4454B8AEB5E2AECB8BF8A8EF8C7169AF5582208EE3E8723EB7E6D98A13D7AA0D9197FCBAE767F9C5B5DDA6F027371B4D4C058376FBB79B5BC8C44F6BB9CB899CF0E33D9E085B8B8D9FB4B7F642E5ED5BEB797B9C94710FABF9946D37953044FBA91A96FC86B0E37EF07C6802BDDE201AD5D2A971C92F260882200882200882208867E3EC0DA2642862FFE70539067FAF1BD1F832FC8109A1256FAC568496BCB3CBC3FEE60F63B3B687DDCABAD0A578957DA05F145D2D63AB9C38FCEDEEE0373B430ED3B32308E29DC2FACD4A3756C55EA38BC63A166642084EC630353E82F6AE5E9167E1190C8B38A767D40FAF3728D6627532F8DA7FBBA37A3F8220DEC99C364911B956D677AE1974F437278B5FEAB7BBADC61EF38BCDC3DFEE9E08BFB8B955A667471004411004419C2B96B67C7A69158BB311B11FF4609703DE410F66A45111470E393D88CA3A0C390697F36C8DF98B8C1FFB4265ACA72A4263DED99563E32EB37197D91CD7D1DB6DD8DAF38A5685915C83D75B4458AE2028B13EC1E5C39A8BC7084FAC419F2F0BFBA3767E771113FD8B426B9E6BDBCF2BDB58982F09EDCD9251B1EDBA5C795B939EDBD13B4410C479B0942FA3BABA8AB83A7B24469BC0EFFE7207B1915BE81C9BC7F5DFFF0B3EFAE44B2C04BAE1EC0F211B1E83777A099F7EFCF7F8F77FFE1D1C5F7F2AF68FFEE437BF3EF7F93DA83FC656ED7FA02F7E87BC5E16BAC60B72918D3BC5C69D41C86B62A8BF7038EF4DD1BEBFFF085FDCFA067DD7D3B8746B19A9F08FF9C597EE16F1E77F0C30BBFA313B7F8F81A9FE347C3315A83326DA6F1BE8B8BD8CBDFACE31BB96AFD24293DEB2B3E647EF124110AF82C7A78B7DA133AB1B50C2C36C8D2A63D3385BF3C7DDE712B916AF6B7EDE60114AA888D4D277D0C205B13F5373EB74AD045F83378D9A683FAA4F9F99FBD177E5F5C95ED7327CD16DEC3ED83D66277236E2A7FD5CCB2FB66DF2BBC734E9C3E1FB981CFF86DE25822008822088B79C5261F3E0936BDBD44BD017579055A2F005246C2EA56096EB220ECCB56E78BE31D70AAA974D91EFAB4801A12DC4BF5F589EC7A1B60F3D2B8220DE65DA3BBCC886C6100C4E61D2E7C7A83B8088B16BC78DDB2EDF81ABC389554546B5563BD00A2AADDBED6A42473CAE5DD8FC4E6AFB100441BC8BDCEA9C10F1E25E9F8CB0E72EBAEF4E08BFF8E66018CD724EF8C5665683C6FCE2424E87DB7FE0A772BFB8A7AD152DAD973035367271F16C4F044BE9197A56044110044110C485B2DB78BE7EA3A3D7FF5C4D4D822008E2D5717479B09AD2D17ADB8B525AC22DF71CB4E06DF8DD4350C33E74F64FA1BBC78F812BEDF03A3A70F9EB51745EFD231C37AEE1529F1F1F7EF0013C8E2F2E7C9E975B1731D0B9286A346EB568F0BA16E1E8C86160701D375AD3F0852B1872AFA0B7E31B285E03AEC91AFEFCAB715C6D5B46C9584307B3E5F6BDD37528EEA4B057C326BD030441BC51F16287CB8B906F088651425CD1114D1968D44CC493CB227EECB8F49FE8696B47A9D640BD5E8624C5A1C41544B52C9AF58BD38768EF626BE8ED343EFF3C89EECBB350EE3DC466A60239BA817A690766E9116EFC471266ED318CD40632A91A74FD3ECAF5EFA1CB6BF65AACA6EBC2DEA7EFE0B71F8EE2DE7A9D5DDF0E7A7A8AB87D53A177812008822008E23D470A4878FA02F1E0C6DE53B1E726DD3382208857C7D5332072D7AEB70F8A38B09527CCF52478DC77429E17FB40F70D8F2239356EF78B8755D03E6D044110E7432DA3889A8E81FE294CFA8342BF98EB4F706DF88DA5B4D06BBB3BE847EBA59663F56EC735DD098220885781D732F35AE752E1402F7EABF9E48572D6284641100441100441BC4B1CD58EE7310A6B4F51AE0D7FB676FC82D0968FB076BF7BF0B569C7C77D2B6C7E7964936B6CDCE3DAF1FC38D782B734E42DADF7E8F8B2AD1D5F2DD5D1E5C8616E7A0583FE357C9BAEFC6C2DF95CE121BB0F65A19DE9EFCD211E5E81DFBB0249DFB135E5E56011FB4F7FA0F78B208817E6A476BC1507E6DAF06769C78F5E1F16DAF2126B6FF9F4ABD7A61D1FF1E4D1792D8F27FB8FD8B8FA31ED7843E5FA458F846EB121176DADF7C874E598767CCB8D4548BE1CD4C4266233959FAD25FFD5CD34BB0FB9C37BB589CF5A34C4460BA266C4D2941F1A5BC1838D6DD2942708E28539AA1DEF0D86EDFD9DCFB2E7DAF14129FDDAE677543B7EA87F05B5EA639CD47C17D731B8C63EBF3FA52DAFCD1DD783E77EB1A157845FBCA0977FB696BC85E517DBBF81EEFDDF294D793E6F7AC7088220088220DE0E8E6AC7736D783DAEA15E32C59EA36769C767B5A8C87D2B194944B5CCC56AC7B371CC8C46CF8A2088779AA3DAF1CA373568EE0042A129BBE6E399DAF1E59A1D57BE68ED78CA632608E27D8A174FEB79843C6E3C281CF1719F9167BCBBDB109FCEDE20F38B150CFAC358D2672F6C7EF33319AAEF230882200882202E1CD28E2708827883E2C5D32A26823E042231EC3F7D8284AE42D51370BA03082E3CC068FB18A6DC7721C516D179F53338AEB9A08EDF12F1E498CF7BE1F3EC1D2BE2EE501E0F16CA08B873B8F4D53206AFEB769EEF64641DEA6C0D93A3EBAC7D8DCDBF0235FF1823CE8CD0929F49D41172E6ED3C64CB5E2DFF80FD07DB07F6FA26BD130441FC221CD58EEF764F20AE7F03438BC3AC35CED48ECF6535E8B284642E2DF22C2E5A3BBEFF761A6D1D39745F4F23AA6C63B06B81B4E4098220088220887385B4E30982205E3F3C776D6CDC87D16E1752D3D378C28EE5D584D02BE6351DFEC998A8E930562BC7B4E329CF972008E2FC88CECAE88F45D1DB7A17B26F58D4B51972D8D6F6F1F60F636A7C04ED5DBDC7B4E3691F0F82208873F68B4747EC9A8EB3B4E3AD9A0E8BF54A137B8D12DD43822008822008E2DD8851681924150972548399D385463CD702B2347FA2F1B8D09637CCB268E71AECBBB502EB9745C9CCC22CD5A1319B929181242950341D653323B485F81EA56626C9DA15A12D240502C89A25A11DC473DF787FCBCE3ECECEA72B3A0201499CC7B2FBA9EBA8551EA1B1FB5868C04B8155A11DACC52B6872ED4A6543C4C11569839E3941106F2409D560EB60016EAE01E475A2CF1B11FB75589A3F415F04F3018FA8E9E0ED0BF359CCB3F5F6F69FFE246A3A26476504DC53B8F97527221343908D07A236449765541B7B884D44A0CE2E1EFEDE9760E79D45A5B46ED7845876D6F1C55915A170CCAE3179D1DA91914045D4709CACF5E87317E11FCA63225281EB1AE9BB1104F166E2F6459F1B1FF64DCE420B4F3CF71C7A7C19D7DADD78DAAC9D6AE37B48F3CF034DF7DAA9B8F359F1E817C5D296B7BE9FD48EDF6C7C8F2966C3FDF9F9508134DD09822008822088371A2D63624997E95E1004F15E1288CE221C91EC78F1F0C43C8A695D1C1F9B9CB7B5E1795CB9582A40D10D24E4E8B15A0F1E07B6E2C7969D757C321213F1624B83DE6AB7E2C056FB9616C5A8C76BC7A98FC6999F87358F8DCD2DD4360A309269A8338BF46C0982786BE0B1D52B9F7D8EBFFCDBE7505229A1E9B36C64A028BA38DED623A1A5F512A6C646D07EC723E2CAFD9E106E7639D1E3F0895A8F8C5916B5213CAF82F7B7EC947B656C66E62047A3222F83E74398590DAD2D5745BBA521A4A6EF09ADA1A892454E8FC3ED97445E87F35AFB0BEDD53439342BD6E2393D8FA5F40CB4C57B087BFDF47C09822008822008822008E22D83C71CB6D64DFCDDAFFF15A5B484D66B2E6C954DFCE18A03AEDB37D071BD0FDD37D96787138E8E1E7CF1593BBA6EBAF1DB8F3E41E7D53FC271E31A2EF5F9F1E1071FC0F3FFEC9DDB531B579EC7BF7FE056E52533BBD97D99A9DDC98BA732E56C2EBB1B8780ED38C6C65C226410922C0112A805BA34A08B5B171A8184406D15E222830A33165E41A05C4CC52E7B52EB87EC3907CEB1CDC5978C9D04E7F7F0A9761F9DCBAFD554BBEBA7733EC77EE1ADC5F9F1D7732C9E1C8B679EC5C38E9D7370F72FA9CF0BD62E2A059AAB4610C4E984FF1657CD9962DF8EEC540A53B1147676776195CB88840C2C140B988AA7D03B1881954EE1529B13294F1271B38805CB84ADCD8D6B7D2E68BE30D64AF9371EDF8CD9402EBBCEE2F95F164F8DC55367F1ACB3785610F5960FD5FF5ED4CF6657E9DE120471EAE692C56241048331D42A163B0651E06B9FB305F15BDB91790BC579D1E6E78A6FA9BAC7E2DA66F16CB2784EF625D7771FB3E3FF89FA8BB7EA746F09822008822088D79AD3A679FBD0EDF4C3D1ED8695D391D235B8FA35511E4D95E1F73891880EC13BC8CA06FDC2B119F179515C58C6EEFAAA72CE77DB5DC2E5133517852788BB803CDD768442712CE53398342C189363988FEBF07834F84249517FAAB42CDC40663404CDAFA976CFF63F7FABA8E20985C2A2BF8989125C3D4E911B39CE1DE4F5DD4629BD823BF51FB052AAB17EEEB1386FC3A76FB07137593CF7303D59657197C439770A59B9DBB096EF63C831879BC975D6EF3DFA3B2108E267C1EE09401FF2C0D6EA17F374CF359D47722828CA6DEE20FEFCC5B7480EB6C3391C83EEEE11EEF9C2E6DF313AE0424757AF72CE7FD9DA03CB1847DF4419954256ADF5D086FB914904D0D675039D5D83B8D8D18BE4B00B7DC182A8AFC727719D3D9B2F7DD58E24CF8F1CCC577EB6FFE1F666158FECEF86278EEB2D1D78FFBD0FC4E7F27AB61A0FB159FF1BFEBEB18178F236EB6316AEE1DBAC9F591667107D43AB6CDCDB2C1E8BC5536671CF8AF342E5BEC837B775979033F6EB0FB767557FF4B74210C4DB7C2FAE5A16E60A15D437788EF5F173E535E1D879FC5C1BEEB8E47B2E9DD4277753E6B231F14CDDDB3CBA1F743418C38F4F1E1C299775A543E8B8380FC753A9D48ECD2FF37CB151DCC65E63F7B5BE0B9E6F3EA93FFA7B21088220088278B7DF8BB3B1A8D8E38ECF9FB07286C82F44E386282F5855B186993BE48D545638E1E57BF19DC60E9E3CD8116B9979BE58BADF791B992FE6EEF858D6122EFAFA7A033BBB5B621CBEC6B952DB11E52163199FFEF1F7F8A4C589B0A343B5E371F0F1F8E7BCFC65D7526B3C62EFC1F731B7741F45638D8D7B4FE47BF9FC8B2077CBD71EC2CAAEB1F81FB1F8D76155EE23155B639FDD66D7BD8EFCF22E8B679BD5FB5EE4951B7B8FD160E78DBD1F50CC3EAD9732EE0A477DC8F88EC51D10E335AADBF4F74410C4A9CA17733710771507121951EEF3C5D0F4E525F86D0E7C7BF992CA17CB38F8E7BCFCA4F8653E772A734F38E46DC3EBB87256C7FBEF8D887C2F2FE7EEE240621DFDC38BD0350B632365F827EEA1F94C80B5D915796273F63B2C983595576EEBCC61A3DA50F9635BEB82A877A17D9EC5B5C4E2BACDE23671F57A19D3C139CA2B1304F10FBD174786FC703BFC47F2C5BC3C6CDC3A922F96F3284E9CE7FBE089CA174B8FFC73CFFE6EC7B1EEFA67633A9C2F7E11D225EFED5B84D6573E3A9F22B086CDDAC9EFAD3ECF6D767C8499D277C8EA4FD7F1EDEE3E7CEE58DF78786C3E59C21DF5E19179FABB22088220088278C7E1EFB98FF76AB0F7692F7CAFFDC96BB103BEFDF7E6B7D4FF9BFB1EEEB3EFE13E8B7391C5F988FE360882782370577C2491552E79B90728DF6BD476F99CC8EFF27A456B1D59D38483D50B4D6F29777C28340663BE8EC94913D3D9A272C4F33D481F6C16D51EA2327FBC356D20E875A87AFE91087A3ADA30C6FAD586C2AAFF675DF5FC285DF4726FD42DFE7B1DCF3D2F649031A78E5CD7B58E598C8F960FC6BDA38E9160958D95C7ECCD1A223AFBBFA5751E999169D6FF2C8B6781C5FD3D8BBBAEFC16667C151B3B3F88BCF3FEF7709F7D0FEB2CCE0A8BF37B7CF51F9A6897986A20E258A0BF2982207E12AD769770C51B339670BBDBEDDDD8A85AA8D677F6DDEF9F7D8EA8E6157390F33305A472E57DF7FB813BBE2F1087A3D7B53F772295558E78CBAA2265984899F3B0B229E596E7CEF8E1EE0E55AFC73785E911A7D83B843BE765FFF2B744DE8E3BEBA58B3E5BACE0CED20CAEF843F8E2EC45C458DC3BF5A77E8CDEDE15745D33F0C96779ECADDE13EFB1567C451DCF7E9C46EFC569542ADB308B0DF6ACBD8DDC5C5DCC9FE0F3302C6B97C5BD01237F4FE491F9FC8C786C8D7D0F37D9F75066DFC336FB1E36599C0D315F43B6E3F5785F6DDD737077E5E96F8B200882200882F2C5EF04B5CD4728996B74EF0982F8D972145A6058B8E17B2E7F02E7C01072632338DF31843FFDF33F29B7FC9DFA03583359D8DC63E8E9D5840782BBE3658E623C95C572715ACC37E6E5EDDE34B2A12E34357F23D680F0351CED4D2DD07ADD707ED3A4EABD6A9CD1D85F11709470E6B33CC6AEE5C43CE0337F18454B530EBD5D2602FA3A327A05A3F175C4A2CBEC7A26D8F52484F3A7BD290B9FD3C274B02CDAF9EC26929375E100720E2CB0EB5D3A70032D2A47BDD33687116F19AE701DFFFDFE08FDAD1004F1D67FBB4B240CE1865FB34CB43437897CF1E29D06D2519F72CB4FE82944223A7B168F22E0D5943B5EFE76672674F8FD21E155E3E5DCA916F10FC0766354AC0191F38D356F18636E9BAAF7B2F8A44B7E7F2DC72E7C11D6CFD25DE15DCB8457D46F6A196B1B4BD63AF2A5EF70DDB3C8AEE71EBB9E0DF59B5D7BA785527ADFD7B656AAAB351C2DCD19B1A663DF0DF44839EA6F26EF61F8C61C4CEB3B910736CDBB220EFA9B2108822008822008822088B703DF4B69B55A116E1FEE068AC54D31B7CCAAD4908AC5601ECC35E3F95EE10EAA35108D45C51CB668D480913585CB47B6CF2FAF0AE70F77087147BC74037DF89F1D28EA3E31178EBBDFE796EE887E5F169F740871E790C1FAE31EA3EA316BAB0982204E7BBE3899C8A8F9BCFFFAD1254C077BE09F28A1F9CCEFD0D7721DF1C0805A73215D40D2092FD770C8B519E6EC0A16CCA472C44B3750D3374EF59B1F77BFDB8627C5382F8B4F3A84B87328E6B8CCFAE954EE2182208877058FA6A364DE447D6307873D409CADA58A9AD3C6D75CA8F9176D5E3CD9ABABDFE47C1E5D7C3E535A41561F7DE37172E7D090CF0773614DB887E8DE11044110044110A781DFCA9A1082208837019F1F1C0E68CAED239D3FC7B97D783E383C1447D03BA6EA65CC050CB4F762D98863A35EC794B9EFEA39EC100AC6B2E8BB76E569BBDABE17588E23CB13530B88387C488E8E23737356388064AC3C2F6D6F752133D2AE5C41F233396E98C5CBDBD1BD2508E23421D6CD757728B78F74FE1CE7F6118E9E6A0357FFEBAAAA170CA5D1EFD684B36769CE44A5BE235C3D871D4236B71F9E6E9B3A0F988BB07FFD891A4796D71A7B30E351385ADBD0A855840388BB89F8F8CB85B4F82C379757AE2035DFE260DC4CFE961897EE2D41100441100441F95E822088D3452062606CC807AF7B40ECEFAC79FB91D103471C401F7F6DC7A8D725E6179FF9C3BF8979BE3CAF211D40B29E2B3C8BB16B57616BB5C3DD1F556E21BE56E472530BCE9F3B0F576733CEFCE5DC2BB981D2B95B98CB26C4FEA1DC93E11DD2C579667619CEAB97E00D4E60321850F5F831D4EF54F5E81E1304711AE0F9DED9F44D84C2498C8D0C22341EC7929539E200B2CA6544428670FA64C221FCCF85FD3517D20124EB99D6B270BD0F384710F579945B88CF435E66CF6EDBD757A0051CAFEC069ACDE531959A3E72BEBCBA055FDF655CECEA15EBF764F9FED13AD28E20088220088220DEC9F7F9A841F96C8220DEA135D063E8F77A91D235687E0D7E8F0F89E8106E0C44458EC2D1ED8395D3454EA15C2942EBF322962A430B8E8AFCF25469593880788E423A7FF8DEA0FCC8E709DB3D21912FCEE497100F85D06DB7233D114024618A71643DD95E1F9D803999442814C7523E039F3E235CF4D9740A5E4D17EE22DE3FCF67F3F864BC3C0E1E0F8FD388459FFA360EC695D747F79C20885FE5FB652C8B556B06DFDA7A60B1E79D74CADF60CFBAB01652CE1F99DF9DB556319D88A8FC729E3D038503E850BE981FF95C60992FCE58EC99381E42D3553B4607DCC255CFC791F5647BC7E84D74355F51796B9E8FE62E7ABE9663C01F802F9214FDCB7CB68C97C7C1E391F96CF52C3E18575E1FDD7382207E8D448DDCB1DEB3EA52551C6331FED9536750B650C1CE46F5D59FF5C1200ACFB87CF8395FC3715CDDC70C231A13631CFE6CB152A1FB451004F1021E3CD97FC672BF307D1F044110AF4F75B58AC6564339DEA53B9E3BE12DF63E6B142B220F2B9DEEC739E19F5D73CCDF691FEF6D8AFABC7DCA28A29C37D931878255468C9FE752C2555F9933D1D87B8022AB275DF4B21D7F57CFA60CD51F9F9FCC9DF5B2BF90B18C4FFFF87BD58EF7CFEB1FBEBE4AED21EB6F8DF5B7C13EA7FDEA0882F875D27C5D87FD529B72BC4B773C77C28FFB7CF0BB07441E563ADD8F73C25F39FBA1EACF302DD432A6A8DF3FAC61724C47A83F880BED4E38AFB48B7DA0F9DEA3DC559F1C6C475B771F724654B9EC65BB734DE7911C0A223491C178C82DFAE66E20D99FCF1743D39797543BDE3FAF2FE3D86A3CC466FD6FACBF75D6DF22EB2FCB3E5F52E574EF0982F8B5C0F3B37E970701AFF7E933ECC01DCF9DF0DCF9F3BA7D866326C23EC70BEBF0776FF9EFDDDD1D713CC965AFE929CC6412CA597FF8F393DAF9432B30222B47CA75FDEEB1E5044110044110C46F1B9E175E5DAC88DFDE78AE80BB2F79BE98BB2B791E38188CA97CADC8E7561B300D139FB438117674A83CAECCEFBEAD3829EF4B10C4BB0C77C14F067D98CA5858A92E61CB3250AFD7914AC6D1D87B8CAEDE7E14A7C60FEA6F61F66606113D89CD6C0C433EBFCAE3BE6D87FB94B98ECCC24336CE2A1BA74EF78E2088776BAD47288D90368A96A6CB624D71686408863E007D721AFE908E96E6564402FD077B8F6EA15259C47CD112F321E6CC7DC7FC9D421AF1584CBC4FBFE9F87A7B57E0EECAA35267EFC5336B6C9C3536CEB628EFBA66D03D240882200882207E15D436F71079C9BC09822008E2C55C38D786CBAD9DCA21EF1C18426E6C4439E3CF7CD62EDCF02D5D7E54F351F15B5D7B530B3AAF38D1C3CAF93CDFF60B9770B9A907564E4367A703F6CEDE371E67405F47BF77117ED72CEB7F8EEE1D4110EF14673FFE0ABD17DB109BB1C4DE9D767BB7D83F43EEEDC9E75570178FDDE55779632BAEA3BE5143D5B2C4BC8A582C855E7B007C6F52BEF7E79BCC1B53BE98200882200882F825785D0F9B9A8F11CB8A79C83F25DFCCE72DD3774F10C46F196F2006AFB74FB9DB356F18033D369117F674DBA1859398E37B92F679E1F168F07BBDD0E319E57097F5D2D905D4D72C78430998514D39DDBBED2EE182E76B99F951BAE953690BA3832EDC4C96F0F5179FAB72BF3F24FA7FED79D2F96D16FF3A6BBFC2DAD35A1082204E177C8D07775E4A773B7F160FDFE851FE07E98CE70EF9D5E20C7A0723887A3DCAE12ED77AA4F57144223AA2E9024C5D534E77DB8D51E582CF6D3C506E7AEEA4988AA7C4B3D866EB81CFA38B7CB3ECFF55E337CDBBC865D791B1D8B3D85A67ED5758FBB22AA77B4C10C46920962D1CBB6F1C7F3EEF6DD69FCB5DFCF8E4C1917AFC99BDB7597BA5DC4796BD271F76D34B4E72FCBC8CD2E2367BDFDE7EE5728220088220088238E9BD78B55A514EF6387B6FE58E77E96A97CE1FE99297EEF862A52AF64A926E20E99CE7AE215E4F3A843EFBD347628E9B74D0F37178DE98CF997BD645CFF714E5F5A44B5ED67BD5EBE0EEA09DDA3652C65D14AC06DD5B82204E15992913A95456E571BDDE20227E0792E17DF78F74FEF07C6FC69C42626A41ECDB9C49DDC47A7555E58B978D3836EA75E51A920EA131D69F361486831D43D35B08B2FE7E7CF21817CF7F8B64C0AFFA73FAC7C5FECE629C855D55EF95F3DEDC1D64DE2177104110A79256BB0B63C3836AAD86316361AF51536B38A4F3A752DF116B41B84B93EFDB2CD7844837105F13B2C4DEA7B96B28AB8F2A8750EA60CFA654AE2CDE7F53E63C7BEF4D89F7623E8EEC4FAE29E1E358334FEBBD2CFEB6EE39B51664A7BE8D4CBEC1C65953E5748F09822008822088576171738FBE078220885F983DCE6695BE0B8220885F902D717C42DF0541100441100441FC82901B882008E2285EDF044AE9287CFA0CB2BA5BF82946DD36E197E06B3354B92F2CCE27264A70753A8567DEE3F423932F09C79028EF71AA7A7C4D88A3DB8EF9B82E1C43BE5052ACE5906EA07E6F14C3832E369E07831359F8AE5F17EDB82B48F36BB096D731E4E8116B42F83CE493E22F5855F8D838742F098238CDD40B06C2010DD1541911FF8078168F1D3C8BD74AF9A7E5EC19CBCFF933F77A4B077A3BBF84B3E31B64AC25E11892E5B29E5C1332969A168E21DE0F77064937D042913D97E329D8DADCB8D6E752EDB82BC84AA7D0D6DD879CC1FE8F8824C53CE4175D031F87EE254110A719BE9679AFF1FCBC0ABE6EE3456DB81FE8C1CE26E6B83FE819BF4FA5527BAE0E77084583B1631D436FECFF92DDBD57721511044110044110C48B30837E180943B8DEFB7A5CF0DEF022AA0DC0E170201EF2C33BA8213491413491167B941E76C6CBFC6E2461A2DFE5548EF870CC7CCE25CFF3C7FC28DBC758DFC978FA697F2E3FAA56E1C43CB574CE73D73D7712C97ADC35C4FD16F27A6EAD6E622A314AF79620885345E7E7DFA2A80F23C29EA73DEE203EFDF73FC3DEF1B9D843E9C72D0BCEE1183A2EB7A3A5B949F828F87ED11F7DF02FF8B2B547E47F2FB43B911C0AC23F5142F399DF29E790615A08F5FB606BF58BF3FDF1B654FB76473FCCD8B83A6FFAA65338E2F8F9707B33FA820544FAAFE3FDF73E10E77C1CE79576F8DD03C2752FEBD9862771E5EC87CFE58E33718BEE2D4110A78AB4AE89FD940E977BB431B177923CDFFDFFF6CEEEA9AD23CDC3BF7F6DEEA76AF7225533EBDD8BADA99AEC4536D94DE2F5E4C36170620236980F830CE2C348B6049240480224E08873100209D91C1C64630D56614D440AB250534A2DAEF14E95A7CA7BBA49379F8AB1D77662FCBB780AFAE8ED3E2D9A3AD5F59EEEA7B7B74ED49E3AAF43CC8BBDA19076C667652E796FFFB598772F2FA4F6E6E7CB0F90B6E2FFEFEFF3CDC37564935C334708218410429E0F91172897CADA056FA52C64D2F3308CA43CE7D976E6B3C9F89EEB5D9555DCD29D6F64DE76A3B2839C33AF8D5B39BDBE381E0FC91C70346AC0B076F3C7CA599F3472B89D71EEE7B49559BAEBC44465BDA491962E7BDDDE8FCEF96AFD2F6DED38F748732C09216F34034D8318F55CD32E78D7A55E9843CDF27D5D6E760CD1C905B4379CD7AE77555671CA116F264DAC15CB683B774E9613F62676D673B8D2D28EB161AF2C8BFACA593FE7DC6FCCB9DF64348E2B4393BA9E72D9ABF69473BEEADAE27406E6C402C79210F246E3AAFD0C5D179BE49AE254CE969EF7F4AD0C5CBD7E44025E14CA5BC8E72CED7A17E55B4E59C52947BC2718957B33C4BC58946DBBE0CC7153387BAE1595555B96A553FE47677DB954C41DDB76E6C34918CE3C58D533334B721EACDA53CEF96AFDB7169610F30739968410420821841042C81B4EC3452F0AF6287A4716F0E13B67F05FEFFF273EFFE84334F7EEBEAB1B4ECC201E0D21D2ED86ABB54BBE936BAEB9809E1B0372EF8758E7EB737DA5E3D4F5D0C024EA2E34A2A6B65EB623E23ADBBE4247D345B97638E8E982190BE07A7F028D175AE43A62D1CEEE9E9093E71CA6D34B087B7B3896849053F12C5667821ECEEF8AEBE23C52F7A5266C14F3FAEC517516E9FE3345459CBEAECE22DD77F668B95C44DDF93FE2625714F1F97979B6A9C81F377ED2A8F3C5BBEB90374FDC7FE68B0921841042C8EB201435F0F431CF2B258490D7952FFEF49D33F8E88B3A24FC1D68E90922D8D381F6BE51747639BF7BBC32BFDBEC9986156ED379E13E5F04DBAB799D1FF6F7BA645EF970FE58E5810331135E4F50C6D537761D9B3FEEA9AF91F9E5F7FEF59FD150D3F993F963E68B0921A701E5F249D92B325FFCC9953E545673188EC411F3079C67F13002CEB3333C9690CE78E59657AE20E1002AA45348252DC44793B8DADE295DF099C5155CEB0FEA38E5A310EEF9C45858C77D75A5135FD45DD5ED0B27BD72D99B2361DDBF6AFD5F4867309BA40B8810F2E6E720F6EF210E8542725FF489DF9D65F3B0E2A167C6ED3C113F1F1FB956B06D7906DE4127FD9ECB3E2E7C7187EAED47EC952ED88B1C4B4208F3C73F03629E2D7C19CC6713424EC51E6857BF7CA61D76B78B1CC3C2D418CCCC3D8C86C3DA31DFDCD6277316FB5DF3C19B7EED8457AE77E5A6570E7AE59217ED259CF692C2D5E90FA23F1893ED87C3097C9331E559A4E23E4343A1036E7AE59277F587B15ECCA3F2F829CA0F6C99CF16FD51FD3EFCFDE617FF1BF7174B4EFDFB4EFD35C41325D889A2D3DFEF9CF8EF60AFFC0503EE5B78FAE46FFC7F2084FC6CB475793116EE3BE26E4F9A53F2F3C08489AEC1A076CCD7D4F7C87779BFAB756BD77CACAF533BE195EB5DB8E9BD7DA143F9E24DD99ED769EF7CCD97D2416FCEA6B0BCFD14C1412FE21301D4FCA15EDE47B9E9958B5EB9E467CDDDDCF0CDDE087ABA7B757F54BFD5F7DADC7884F5F20F4EBCF3BC351F3AF56F3BF53338F3410A73A15B4E7F179C780B4D1D8B481B7FD2F1FC9F2084FC5CF3E27973E2680E60E5018CD88DAAF5C4BC78BF6BBE1ACA417F5CBE5820E6C5E21CEA6AF5958B5EF7B7A9C199377B9E79DF58EC5B8C0CDD86A7FB2E82DD777EA27F8F74BC11B9CFFF094208218410420821E46742397FBE6C19C0EF7FF36BBC77AE19A3571A91C817E53B32B5E742387E0AF92C5C8D9750DB1344434D9BDC83D1DA7AB0FE7E6790A8A7F68EE4EC35ACE4E6F475B5276472268B0177E70BF79F7B3D0821A781A1EEDD67A272C62B77FB657F58E66585D347B9E4E7ADA476BF77B902BB7B377E74BFABFAFB9D41A22C9EC5A9409753C792A8EBC223B4DF19FFA2FDA71B88104208218410420839DDF9E2AC5D90CE20910FEEF30E6B478FCAEFAAB2A8D7D970563BE6D5F5AEE004DA3FABD58EF866B757E78D6726FCFABA6A5FE599992F2684BC8D345C6C739E653EDC7DB881E9A80FBEC8E4BEB33E37D1753382A8A71FBEFE98CC0F377574CBFCAE2A8B7A0FEC948CB7CD597D3D3A9D85C7D526F7C33D58CC2014B7A473C83710442C794B5F57EDAB3D21CFDB7FBA810821A781A5AC052B691CDDEB21E7C5E9AA7B2E0E97C5BEBACA7AF1C87545D4483F9773E8A4D00D4408218410425E06A9901FC6C49ECB473980FA3D1E4C26A6B5F3279E48C14E4CEAB272FEF40747A523E8617907F7170DEDE8512E1F1577EBDE4359FF79FB179BCEA2B492E35811424E35AD7FB88A5C6C50BA7C3AFB42DA0124F2BBA9F89876FE9CF9E06BCC85F61C402ABF2BE28423A8A5AD1DBD83E3DAD1A35C3E2AAE7D7046D67FDEFE891CB49998E35811424E35D3C25DD97DD4B5E30B27B0BC90AA5A4F397FC4BCF8A71C412AEE45199DB5B1BEBACCB1228410420821AF14B1B6A15C2A235FD840CA48C14A59C8A4E7118D4651582DCA3DCB223FEC8BE5D0F8F1BB3A2E148AC24E1B725D71319FD5717123873BE9A43C7B495C4F8A7226E5FC4CCBF51A858D8A3C9334972F60A39897F5A3A110E2968D2DA7ACE2447E3967C49FD9FFD2D6CE81F51E8410F22632D0348851CF352C4C9988C426E1BAD40B73A859E68113C1015CFCF22A7A5BDD78608511F2B8759C3A1334616FE2E993C73A6E73CE9071E24CD2D9441C734EFC98133F323609736A01A944423E3FCDE414D60AAB3A27BCBD6CC24CCDEAB889D96544DCBE67E793D31998130B1C4B42C85B992FAEB68E58AECD485A1889A7E00D859E9947168EF9CA7AF985FBFFCDC375648F591F4D082184104208218490D3912F0E8F9BC8CD8EC97CF0CE7A4EE773E7667298B1523A5F3C329090F961E68B0921E4C571D57E86AE8B4DC8E7EF2295B39D676514E95B19B87AFD8804BCB0ED0292460AF1791B5BE5BCF4C10BF78472C98B7515831D2DDA112FD65188729F2F822B1D6E944B45146C5B3BE78B1B15E99157CE7963A98887D969DDFEFE38D19767F59F2E794208218410721A28AE57E43A65FE2D08216F33D7EB9AE077B522343089BA0B8DF8F2FC97E86DADC56866FEC0D9A3CA31AF5CF2FFF8DBF751C844118899306301ED923F7CA6A872C65FEF4FA0A7BE0681888181E62EED9CF7F9E268FEEA6B5DEFB09B5EDDB7EA9A3CBAE40921A7802B1F7C01DB34E59AE0E1D124DAEB2E23187063797B1B5B0EC2CB668E84B5635EB9E4675326ACD9244CFB1EEED9A6CC213FB4B3B8DAEE3C63A7933A4E39E3C7C71731DAD78E50781A23BEA076CE4F4D2EA2DDA9A3EA1D71D31F70DB1F852E7942C869A05C2AC0881EDD6B2CDCEF59ABFA1EE450288E627EEF1978923D1BE2FDA07827974CC47F72AF8840B9E99FD57FBAE40921841042C8CBA09A4B3EE8E9407F8F1F6666118970D8298F60B8AF5DBBE4DD1D3ED8E998DC2BBDDF39DFD1EB77E6A9D9BDB2AB573A824479BF633E3832897CCE38E2AA7FDEFE2FADAE6376629863490879A3A9E69277F507101BE84760C28477308860579FCCF72A97BCDAEB71D8395F53DF2ADD6FAAFCC5A54ED8C6EEE7FB1DF3FEBE1B181DBA79C455FFBCFDDF75CD335F4C08397DF96291FB15FB336E65F30772BA22DFAB7E8F8BF33C9CCFE25616958DBDBC6E71AB82B4157F6DFD67BE981042082184BC0CAC5C5EEE39CE17B79073E6B3CA25FFBB7FFB6CF7FA8FEE78E57EDFEF8CB7924958E2F7A8E15C2FC376EA2B97BC8A53CEF9CA63E77E8F2B07AE8B3CB272C6AB38D10FE594CFDA774EFC3D42D135E4B325799F92D36723BD81B4F1271436FEEACCDBB77599634E08F925F2A868CA9F222FDC3518D4F9E29AFA1E44FAAFCB3CB2B72FA4CF1055F95D953F3E695E79CE9AC7DCCCDC913CB23893F4F287EFA2FD925FC68976CC8980CE2B3FABFF9B1B8FB05EFEC1B9CFB653FE1F7DBDB2F377D8993FCB67732A714F97553CC79E10F24B2236310D2376E39971C79D213A3E612132E0479FDB7F20AF2CF68DA8DFC59E8E9D2715043DDDE8F604F1F4C94E95BCF54FAF37AEDAFFD8B71819BA8D9909B1B6F9AF7BFBF1521B9837EF63D1DEC68ABDA6CBFEF07D1891FB1C7B4208218410F25AA0F38710424E8E72FC0827CFEF7FF36BD4D4D6CB776AA2DCDE7016AEC64BA8ED09E21F7EF52BE9F839ECFC69F64CE3AE13FFE1FB9FE3EC479F3AF52FC8FACAF9D37AB907ED571A653BC239F4DE7F9C97AEA1C30E21E528AA76DFDE91057CFACE198E1921E454A21C3FC2C9331DF5A1FDFAB07CA726CACB760AED4D7DB8D2DDAB1D3F879D3FD1E41D19BF60AF626E22A2EB2BE7CF722E8BA94452B6239C43CA3574D821A41C45D5EE9BB2578E75CBCFA7366059AB48A5BE45DA5AE3981242DE480E3B7E5E786D5C368FAD52E1A5EE393909F70A15DC5D2A63F1EEF7CEF7F89E634A08210ED9D7B8E78E10424E0BD5DC40FD1E8F74FE98997BD20D140E27702F63C25E5993F95D8F6F1C8BD351596FF866AFBEDE72E11AE6C7C7753DE506129FA74787E4DE8E939C29AAD7AC4D67515AC971AC0821A79A6A6E20E5FCD17B3806BD720F86CAEFFE6F298DC4645CD60B7B43FA7ACB8546B94744D5537B3AC4E762AF88DADB71D2FEEDBA7FE638568490534DB53CED61E7CF618C5CDEF9BCF0CAFB97CBAF6167ABCCB1228410420821AF14E11A2E97CADA01A4DC40D1681485D5A274F548E78F654B678F70540A8750286AA060A7A5C3C74A1A78F7E316E4623E1D27CE0EB5E221ED14127962E11A7ADEFEA5ED82332F2E71AC0821CC171F932F56CE1FE1F0991C0849975067D75E5C77288B88F79A760A893CF18BBBE2992F26849C6EA663CEF3B3DB73E4BA383B69792175E4BA7204B9BBC3CEBCF8D97B9C8F730A3D0FA3B336D6579739568410420821E4B5E0EA0E4AD7FBCF75FFD5B50A76B60A1C0B42C85B4172DA80AFD785D0D8249E3E790C8F278488DF0DB7F3333CB789C9E13198530B3FC66F229548A0B4B5A3E3540E57E58B479C7644BC9934B1562CA3EDDC394C06FC48D89BD859CFC19CDDCD73442717647DD59E8AD3FD8A09A77D85634408792B18316630311A4032751BB69584316FCB75C4C9F41D79D691FB52935CF7602C15E5B3B1B85141221ED771D97C11762286868B5E14EC51989925B93EC2138CCA777A712B27E36CBB80A491C27B173AE0AA3B8B42794B5E57EDA938D5AF85ECBA332FBEC331228410420821641FC2451FF1B9F9B720849C4A02110389011FFEE5CC07E86C388BB1A48595DCEE99A0C2F12ECE0EEDA9AF4134318385A931B45F72A1CF1BD5F1C21D6F85DB7479D889CBE78C631DF322EEA32FEA90F077A0B5D52DDDF1223E1E0D21E8F1C28C0570BD3F81C60B2D68A8E9849D0EEA38E5A2AFF63D868D3FE3F2C7A3B8D87A0BCD9D4BA86BB0100B70ED1B21E4CD20149EC6E2F41412A91C1ED829A42662F0FBC3DAF11EF48CC8739C9329031B9B65DCE81942D4D7AFE3853B3EE2BFA1CB99C5158C0EDD3CD6312FE23EB9D287CA6A0E5D3723D21D2FE2AFF507111E4BE09E6D627C7C11D79C67B138A354E4A7559C72D11FEEBF72C64F4CAFA254FE01DD83F7D1FA751A975B6FA3B4F29D76CB73AC0921841042082184905F36AB1B8FB15D5E95B984423EA75DEFCAF1EEEEF0C14EC7A40B5EB8E345FE2296305FDAFDED42110B3313C817D7F164670BE6C20AC67D1E8E0D21E4AD62CE9AC7C0D89C7CC736D85CAB5DEFCAF1DE7EC92FF77008279070FC08F74FCFE5E69776FFD4F20ADAEABB74B9F2F8297CDDCD1C1B42C85BC3CE93A7B0E25144E3169E3ED93936A65C122E9FC7AF6EADDA5605F99CA5CB1BDB3B07CA841042082184BC0EE2F15D777CC2F9B9746BCF1DBF74E71B18CE9CF9B5F523B986ADE2F730D21B0885569C7E949C7E7C8B273B8F384E8490538FBB2F22DDF1FFFEF955446F366B77BCD8EBF1C13FFDF695DF7F73E311D6CB3FC0172A623925FC167FC15CE2BED38F51A71F13FA738E1521E434E3E9E93DD61DFFBA88C5BEC5C8D06D04468AB062F7640EBBB25E39F0B911B9CFB12284104208212F15B16E226B1710B7E6E599A0E28CD13BE9A474568AF5C5A15014767AEFAC24BA2B0921E415F827E253181C99C1F6B20933358B9181046A5BDDDAE5AE9CF02A9E4E77420879F9D49DFF232E7645119F77E6C5E5DD79F160478B76B9ABBD1D9C17134208218410420821841042082184104208218410420821841042082184BC1CFE0F3C02227E 6 | MediumImageOriginalSize=177000 7 | MediumImageWidth=177 8 | MediumImageHeight=250 9 | MediumImage=78DAECDD5977DB46B605E0FDFF5F6F0FB9DD7D934E274EE238B6064BD62C599438139C09820408622000129C4789926CDF029CC949644B492CD9BDF6C3B7488004E405958F4EA10EAA5EBD7A855744444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444FF45DC5617B222E370EF3952C924EA7505A55C19B6ADE3F0E004BEDB7AEBF17D7F0A5529C16E34C4F619AF29DDB94EBB8F6EB78DBA5CC568D087613461E8062693114CCBC6E5C5F95B8F9F4ECEE17B16FADDAED8BEE035A5BB8FC35E17B669A15A9651299791CBE7918CA550CD971089C4914AA5118F463110EDFCBA73388E88C5551FE54A0779A98552C18722B7A11B43148A3E3ADE08AA3E40BDDA4536DD826D89F74A1755C13246A837BA28957DE88D0116F3257F2F742B2DB7075DAF8B3658C1783A84E7B9B06C0BE562119562056A4D4543E409E7F3D96FC7F1EE1CA7111386D683650DA18A574D19A0ED0D61D813686A1FB3D10252DE8351EFA228DA78CB1DC16E89386F8EA055FBA8D57C91CFF4208B762F2B7D919FCCF8BBA15BC5E166D344219B1371508794CA229795D06A59502A32B4460DE3E1E0DAE37BC331A602AF25DD671C2E160B383E782EDA6B53E40239218352A9886AA92CF2832CDAAE7BEDF175DDC4B4DFE3B5A47B8DC36ECB11798005CFF590156D58ABCA616CAE944B68A82ACE16F3B79EC36E4DD06C04396E0FA6318025720455EDA1DD9EC26A8E609803719E3E5C7782C5EC9CD79DFE54A56A1391C303444F4FA0692A5219091B6BDB38D83DC4DEF6160E0FF631F0BDEBEF6B887C786DBD8A74DAC3C9AE8E8AEC89FCB60B29EBA05CF2918FBBC8165BE2FC9688F71E5292CB7C97DE8BE1788CAEEF8BBE581B8E88CB7E4FC451CFC1C5F902B3D91257170B5E27FAA0E54B55EC6C6C41AED6C3F18EAAC887E3F13826A381C887FBA20D4F799DE883369DF2EF3B7DDC34D5C0E592F9027DBCCECE58EB401F27CB6923FA3C81BDFD3D1C6F1FE03412C1DEFA3E0E8F0EE0598D771EEF594354F249342A15B1CD7C84EEDE683442D70FC6285E60B9BCC0D96281F1781A6EDFE4F8E5C515C6C39EC8A76F7E0CD19FC9B4DAD06A3594F34594CB45C46271448F63C8C633D8DB3BC6FEFE110E77B7DF5A8359917BA8165D24D32DC44E7448490F95A2834AAD8758C281670FC27A8952C1C5DA8A825CCA83526D232339C84A1E4E224D485917DB3B1A0A9285A63A40516E239F765017E7984C98E7D0F5FCEE108E689FBA5AC36436C670F4BAEEA721B6B59A8A8E78EF76FC6B6B3083318E72A18D96C8297ABD195AEE14B63146AF3B41C79FC37327984FCFC3BA35AF3542B331846B4ED01FCDD1EF2DD0F6A6F03BB3B0AD06637CFDFE024D6D08CBE843515FD703D5C536C745E86D71B8565544FC8CA2A6D4113B8E22113D0D6BE12B8522945A19FDAE7FFD38B3EBC3772C5E4BBAD79A1FB55E4352E4108669C3B5ACB09E589665D445DB7E571BEE0FC798F4FBBC9674AF353F958A68ABD50A6CDB462C9A10396916D94C5EC4E3C83BEBDF03419E50A97411393650CA7930441E502AB591CD7A28973C54AB3EE2C9168A852047E989FF237D64736DD8D6089311EF49D31F8FC3C17374C9443C7C0E4996AB383A8820154B227E7A82583CFECE9A9F8DCD1AAA7237CC8BE59C8B4E6F2CFA791D64D22EAAE53676F6443F4FF4F7EA8A8FB2E8BBA96A07A7511B9AD64543EF31D7A53F271EB7BBD0354DF4A52CE8754DF4EBDA304D0353D1C71B8FCE7075C176461FB69AD6402C120DEBE0837C42ADCA902409CBB339BAFE886D983EFCB10E3E4F441F39A369B3E68788E81E9CC4E2F8EC1F5F62F7680F1B4F76B1B5B38D7FFDF30BC49251FCE7D3CF71B0BD0F399B7EEB7D899535054F562B90520EEF31D04727A8F9599E2F58F343F7F74CA8A221154921978A22998A606B7307DF7EF31043DFBDD1F141ED652C93405D4AB1F692EE4530561CCC95361E8F309DCD71B13CBB751CF6FD8E88C363C661BA178A5CC7C3876BD8595FC3F171042B5F7F838D8D4D0C3A378BC3BE3B464A4AA02ACB2824CB621FEF6DD01DC7E17E1FC3C110CBE5328CA3D3C9149797379FBF72B1B8806D19E88B7374BD8ED877C5EB4A77AADE3020257228E40BC84B69D4CA15788E77F3FF03FE14D98204AD5E8352A8817310D35D2BD734145212AC96836C261DD65B06F310DF787C6F3047464AC26EB5A0C9C1F3779C7B95EEBA6ECD83A635505394F0351FD4BDCBE570AE9452262BF28426544583A62AD0B5FAF7CFDEBDE39CCE14FB073AD47A174E6B8C29EB2BE97D8E315B36D4A05ECD3450556AA8564AA85465B89E03ABD9106DDC826DD8E8F4DA68369B984F266FCF4DF4317292173E6354AAF828E45C94E51EAECE395720BD1FE3F919DA22169B8601A361426F34443EA18AF86BBD73BECB40B0968169E8F09DE09951AE6540F730BF84692211955013B942BD541539838A62A684BA567B6BEDFBCFFB74ADA602CF6EB13F47F7E26C718EE97C01DBB4C3B9B283DA77D771D1F33BE8B47DB4445F2DD87E5B4CEEF616E2B8296C7B849629881C58D707E2F829BCF64CE4D0D3F03B764BBC8A7D419E6198C3709E62C79988F34F448E72F6FABBDD391C77129EABEBCFA03787E876E6B838678CA76BC69AAB4DE4D231E49209E85603B95C0EB1D3188E76F6F1E4BB751C1F45DE3A077150F373B8A78BFE9F8D62B98D58DC4026EA895CBA838A3A40346A63D29F222939388EE888C65B78B6AEA0903071781A3CBF6740517C64B30E9E1F36711A3C9397775148B5C4BFAD8B7DB1AFA67450ABFBAC27A26BE3F044C4614FE4B3C1DCC3DD8E0FC7F3D0EB8957118383381CCC417CDDF1C1B19717CC21E8FEE48B1AF676F7F0AFBF7E8262AE88ED8D1D3C5D5BC5FEDE0E369EACE0D9D61334D5FAB5C7CB7503B626F35AD2BDB9BCB87C33B7EDF6F0EAC525AF0D7D3472451591C3433CDDD840229EC0E6E636BEF9FC2B6C6DEEE2D37F7C82075F7EF9D6F92FA7D3259EEDA8D8785AC5F1818E4FFE9244F4C0C0C68E824DB12F11B7B0B555C3E67A0D4F9F54B1F2B88C5CDCC1FEB186676B0A12C916CAA5B6380FEF1FD3EF8DC357E80F8738FFFEBEC36030C270D0C364F4D333A217572F7175F1DB63C8F3C585C89D1758CC963FD6008DC7E7E17D8A972F7EBB1673383AC7D97C89E9FC226CBBA3F152FC7CDE77A03F981797AA587DBC8E4AA98495EF9EE2E4F91156579E843598AED1614D257DF08239527CD7C1F2F2059617AF63E20F359867E757220EF3DE037DE0B5F04A03D1440AB15814ABABEBD8DF7D86E7BBBBC815241CEEEFC1D29BB7AB25325B68D4EA2816F3702C1DBAD8562A8AF8EC256A4D0B27C751CC467EB8BEE30FFB1BAA0E556B20199710894631EE7A68340D98752DFCBC24FE8DF1480CDBCFB6C2FBD5C1390B4989BF3F0AB5DB9D37EE470431F887BAF8DF5587319E623A1A60B698613E9D84CF3C2DCF5EE7233D9173B782B169F1F3C6D3F98FFBA7E371F8BDC17080A661E2C5E532DC7EF1FDDF8376B78F816019065EBDBC0A3FEB7A2E7F7F14B26D07754D433E958194C9846B8ECBA5B2E89BD9229656DE39F7E5AFC69F3BBD700E5853D359534C775383D934E17A16EA751546430DE71FB68D2606031F5AC3C4F97C76EB36DC6FBBF03D8F6D98EEA67ECD7245BBEBA0D93050571458B60D533761EBC6ADD61FFF39C77DBDE6B852ED883CB78F7AADFFBA2EDE1EA25AED61349C63D89FA356EBFDB8AF29BED7F1C6686883B0F647AE76C3F510B85639BD8BAA0773BF97A0946A28172A28893C229B4E23711ABDF15CC4BFAC852FE51CD1E77250AE785044DB95F341FB1539863344226AE162798164AE8DF8A116EE2BE43B908B4EB866793A6685EB71709E62BA4D1C0E6A7E82398835B521F20813A665897DAE88C786D85713B17072F3DCA4E5E205D729A73B144BE645CC3D09D71D2F883E5CF23486A224219B95509264A433A76859375F3BA6ACE878B964DCA4BBADC10CEF5575C5DF7BC7454DA9C117F971AFDB0FEB2F0DC3B8552E1CDE2B9B5FA0EDCFD1B247E8889C36A87D1F0FCFD01D2C444E310E6BDCEDD6048EC01A77FAA34EA212D65656B0B5B589C3BD6D6CEFECE19F7FFB148FBEFA0E5F3DF81A7FFDCBFFDC68EDDB9FE7C30FBE2AE0EB4F0BD83D52B1BDAE62E5BBF2EBFA9F2D0D6BE2B3A38881478FABD8DCA8A2527299EFD21FD2E9F8B85ABED9F79FCFE61C63A60F5E3A2FE3C1BFBF4064E77958FF1ED4FAACADAD84B53E96AE8B36CC350EE8C3163C4B349B8C5ED7F9FCA2F6FDFC7C796DCD25D18754039F4B27903C8922918C616B7B1B8FBF7D8CAD27AB78F0E5A330177E571DFC9BCF882E904ABBD8DF50F0745DC1EEA68C9DA73548C916924903DF7C554653F5B11F31111179F2AAF8CE539127079FAD3C52B0B3A9E0F458C7C36FCA2826AD5FD5CABFBCE43326F4A6C1708A8EDF86D90C6AC37E9AB3B2D7EB61D8BBFD1AB62D77163E73FFF3FED9A0BFC0727915D69E0573AA04FB4C7B82667300D31CA2E34DC3CF96972F713EFF29EE0775F467F3730CC6E761AD7C70EEAB25EF5FD09B345DC4B76209AB8FD7108D44B1B9BA193E137A7474804C348A72252BDAD8CD6BC382FAC9C58CEB37D3DDC661D7757FAC7FFF21270E6A2F3DAF03C3D0C3DAC91BDF131E8FC13988E92E99561B39298F4C2689A6DEC0DEDE2122C17ACDF11476369EE270775BB4EFD62DE75DE9E13462606F57859470912F7B90E20EA4B48D54AA0529E3A2285EAB6A1F69F1BE5EEB61D0E3BD61FA7DFCEE308CB5BA6E8475F09D4E1BB5AA1CD6AF85F354757C5C5EDCBC662C18DB2814DAD0D401F25907B5B22FF2ED29FCCE1CA6311479F60C9E78DF507BF01C91131B23D46A3E1C67C4310EBA15AFD343219B83DED021A5B2A2CF5F0CEBDE8335C6B93E337D0C74D3C6F1C1F3708DF1BC94835C2CA024DA31D718A78FE6F939118765F975ADBBD772C2350C1CCB82D7F6E0B46CB46C178D7A1D55A52EFA765E387F76BDAE87730D9B4D239C1FD3340D584D13E57205AEE3FCAA2628B8576C3447D09B7DD8E608C3E102B331C7AEE9CF51AB35114FE7C2792E3389184E9F47113F8DA152C8E2E0F01445D1CF0BD6BA2DE624E8AA8A93E35314D21554E402928934AA2266C7E3F1B09D271219C463C937EAE3C31AF88283D4490B15B58358C4443269899F6330EFA53FC5683412F1D444A7ED8A3CD886AA36C2786B597678AFCD16F1D916EF5B22BE9AA625E2B20DC76D8B3E98117EDEF5DBC81564B82287F65C0FE78BD92FFA8AAF6B36FB8301C7ABE9BD2888BFFF8F1E3F455EC4E1A3C343ACAEAEE1F0E004E95C0147DB47301B06D25202C96802AADC10B1B48AD348321C9396B279643322F606F3401C1F8BFD519C8DDFAC0D7245BB0FEAE02B225E77DC36AF3911D12F441239FCDFDFFF8E6F1F3EC2EADA1A1E3F5EC7C6FA26BEFCF7D7F8E2B307B7AE7B0FF2DFB5A735711E599C47F415F5010A5957F401397F3BBD1FC173479AA6899C55E4BB96F9E338C66C3E17B9F2ED6B8683B92B83B5357E3E9FF162BEC47CC1392DE9FDC8E4F37828626D32798A959535FCED7F3FC3EECE1676B77671B4BF8795D56DAC3C7E8CA3830348B12CE20991F71E3FC77F3EFFFFF6CEFCA98D64CBC2E7FF9F8998898E89987E6F7AC36D6C8C5925814048420BDAB79254AA52492595B62A95F60D81C1BDCCCDC4806963B7FB056077BCFCE144CBB5754439E3F866E597E7AEC1B1E3402A1EC7CED60E0EF7FC88A7E274ED0EF69CDB585B5B47D017C4B7FFF3BF389B8D783E7124DE81D7A7D3332B3C7F387ED2C0FA7A09A968138924E3318B54738B0C62A1BFA625F92DEB35CEF2D4D86FB6EFE89A893F5BDE323E6FC857D9B7DFEBDC357ECF6FBF60717AC6FB822D170B7E6E42BE3E9B8C6F9E737676B52F9FE513DB365DF3DB87B96DD73CE6F575D77EBD38BDC4E585E08485FE64EFBCAA62776B9BFBB07BFF003FACBCE43E1CF007103909DDF87038188494CC930F87B90F7B0F7C3C1FD3ED3AC47FFCE737D87CB101CFB117ABCF37A048B71994CBB3B7A8D7C608049B78FE630EB96487EE6BC37B54C5D1918EA047433A69E2C0558173A78448D840C05345E0A485ADD71ABEFB471A237BFE6E9C8BBF2FA17B98CBF1987FD7651ECA7E8F86577D9887E319A6A3C12D4B79F686F7AEBBE629FF988F79C199F45FEF65E13BCD0926C3B377F79117BF970BCFB878D68B6E313DC7DBB7BF70FD71BCB267CCA7625D4FE823393CAD367CC71114726914F354A346A250D50AF9A41747075E643359E4F37924E31924E209FA2DA1A6D59097F2F079BC8886C378F57213FB7B474846E27CAD3A9D4A52FD1C203F96A15775CCE7D377B5778FBCBC45D70CC87BDB90B326D5DD55EC1FE8F4EC1654D9464DEF43926C140A36F7EA3D6715A94407D3FE42FC7D097D64CF10EBD16CC0343B7CDF914A63D0EAB4D16A5BDC9FD9FA9C61D4E9BA1ED5C063745A1DB48C16FA742DE3251AE4CD16CFB2B261515D3C1C0C315BCC795F3B4DD360D0B3995FB31E8C39AA1906BD0557BDCEEE9F70E69279F3644C75B531C66279C1C72F3BD66ACFF9FEA40979B0AC0C44BF72A147F1E1FBB878D6AB364AF56C2C443A69F23D9C4AA98700FD59CD7590220F0E050CC8790B2A1DD74815CDC6C66E157E7F5D78AED05F1EC39A56A17FC3AB180C07C86525B49A06544D47AD5283AED7A1A80ACF1EEEB44DE8151D46A58E56C7E4D9DA7FCC23666B1C05AA054A79D6EF79860AF9676FB8244F9FA14673BB6E6B0C45B161D446F4FF1CF16C4BDB9CD2B89F735E9EF577169E2BF497D8CBFE80C665159665A26D34695C9660E80DB4A93E68500D512EEBA85634BEC7A3CBB81FAA0DB2991C1FDF76AF87E5ECEE1EBB5E7FC8EFADD7EB385F8A7539A1A7D8CF6C509D9A42A3D38246B5702A12839AD750D135ECEF1F42CD16D06956516FD4381FAF6A2AF9A88A60E004522E8FD3C9E0CEF34CDB46AE5884FFF81803DB14EF58E869F27D1613BEAE6C5A16E7D91953C9E6688CB9ECF66CF47A3D2E9681C9E679FD5E97CFF1BA345E5936A649FECC3CB96B7639ABC9B8F806F9B045E7180F3F1A4D311EF471BA14DFC7841E5E65AA6DBDBE00CDA5A228D23C4D2EC8D00A15B45A0DEC6C6CD31C2F8ED4C909CA5A19C97486F7BE0D0682706C3B108BC791CB65697E16E69E1C3CF2D13C2E0E39A7209D49C0EFF3721EBED5E9202B49F47B28DEB9D0A38AF71917EF41E86FA644A688BDAD2D84C2219E35FCE377CFB0B1FE0A2F5F6C6065E519F6F7F6F0EAE53A3C1E2F0E36B6F0FDF7ABF01D04B0B5B9766FFE5ABAA0D09C50474A2AE0D81FC6F7DFFD13916814A1E310F6A8BE3EA59A42BC7721E1EB4242B78A53EDEA74EEC2E53C82736B0701F721FCC73E1C90FF3A7676707212C6B367CFB90FFB3C3E1CBB3DC851CDFC6A63130E878BE7633EFFF1199C0E079C3BBBF0504D1C0E47B0B9BE0ED7B68B6766262201ECEEBAB8674B45053B0E27A67657BC7FA187F1CAD11867A757EB62E767E798F1FD70BFF25E7497E757DF775B1D0BF3E9E46A7F5CB787D3C58C67B05DBEB9ED773499CEDE65ACDDF2968CCBBCBC10DF22841E57D9824A35F00AEF8314F40711F4F9786DBCBABA46FE7AE5BFFD9601A57A95A1E239F2F2BD4ADBAF5D70FDA12739F3D7E0E121F26909915884EA6A27D65656103889F35EE58CC3940A365DA7A26B4C044F29F4303E3C1C61321A61313F252F9DF38CAAFBAEEB0FC7988E6FEB5B968DB9982F3EE849DEB1EC3B8CE6D5B95B86F23A3758F094420F9691526D201E3A414ECAA2ACAA8884C3DC478BF92CD5B25B376C3BF3D1CFDA17425ECBF22E99D7D6B4A1F05AA14757BF3F42595138EF53376A90E52274AD86D3E51C5D7B8056A3C5F3E12FCF3FAFD727637E8CC60466670AB32D322C859E8097D09BBC1F73B9AC22194F73763D154BA22C2BC825520806A238F61CA1A2C9E89A9F977162751748644CBA5E3094428FAF76BB43E3B3CA73AA586F50C6AE335E8D79F1C0B6D1EF312F36309A8C3ECB8B850F0B3DF93E0EB38742BE80BC24239BC8902F6B28954A28E4B248A572284A0564D2496865853397B96C064A59434529A159AF2199C8227E1241D3A862F0111EC2B416A8EB033ABF14EF5CE8C1D56C5A54EFF6D0213F2E9734F407368AC512E7CE18B7D6D41B184F06D08D26DF7B64D40C6834F72BE525CC66233AD6A6FB4A543B5B58CEE7F7FA72D79CF0DE47F97C5FB0ED420FAEE168C2C7AA6D59A8D59B3C9FD5B47ABCAE18F4FB570C26EB65D035311E0C2165F3348635FEFDACCFCE73E6D2E23DC9D9737E7DFB61B6E568744EF79EDEF4F312127A50F6B2AA231E3E41BD5547219BC5D17108255985445E1CF279A14865B45A3A52C92CF2A92402C711442349246229A4E918632ED91E3CA5483547367767EDEEA63EAEF591952C24125DE1C3420FAEE944F46116FA7BCB6858787B7126DE85D0BFAD18D7B35C082F17FA3AF624B95CFBF0BA8FF0F2E71738E43DC75FC177E0C5EACA4FD871B86E722C23BE13ECEDBB78EE652C18C1EBD7DB78F66C9DE7141F79FDD873B93917C458A11BBFD7BBA2F7ADD0A3EF0D7D7B79CE599E6B76F296CF1CDDC9B19CCD582ECF88E75E7EEEF3CF9667B82F8F4D48E8A1944A4908FB02F8BF7F7C8FD5B5973809FAB1B9B909F7DE21CFBD0C1DFB3927EFDF772291899317FB21E70A9C97DFD9DDC1FABA131BEBEB703AF6B987B3FD4B47EE3DF263373636B76F18CE72BD899E25F877A147F84E3C1C62321CDDE4A630069371957FBC6E4C9EDC1F0ED0B72DFA3DE18C65CBB438473F9ECD71F1E6D3F343963B7F712EE690420F2FB9A8211A3CE13EEC746C21140A63EDC52A82C721FCF0CF6FF9FE4FBFF7908EBDE23EBBEF74C34135EF91DB8B97AB6B77EAE1C383A30FEAE1AED5C3B03710EF5AE851D91FD6A7CE683451ADD5F9DA5C9F65A3D8BD9B9EE32C1BD3EE5A3CFF522D96C8B787B02D1B16D50626DDDF364DF4E83AB65ED7EFD9777AD531FF3D5B088E4DE8F164750650CA0AFC470104C9831BF51AF2990C528902B4729173998C0392E502745543903C3B9B91108F4648313A57C4EEB6038A2461B918DDCB294F4763F1AE851E4D3D7B84C1C0464551B9BF323F656C4FB76391275F719913AA91AB950AC6E31179B2CD590A966D55A27B587E3C632D18AFF9FBEF97F7D6C1C287851E7B0C57741D994492EFEB08052328158B3C638D656857697C765B1DE4F232D47215F59A8E6A59E779984AB98C925C822415688CEBBC67B3441EBE5CDCEECD1B8DA7622D44E8D16B09ABDB422C1645CBA8F01CED1AAB8BDB6D28B20C99EA879A4663B5A4C1EC983C57BBDD6863341DA1AC69C84979643269D48D36CF256ED298FFFDF75B86AD3F1863369E8A772DF468AA353AA8E91524122954341546DD403A9DBBEA4B97CE706F4E2633908B051AE30D140BC53B3E2C15C89F95320A540FA71309645349CEC5E77232CF7A8D45A33CEFF5CDBB7E61667701A33644246A2215EF40AFF4B1988A6F6E42FFBA4A341EB3D90C6291380AF92C6A759D8FE72CCDE3DCEE03549522523486590631E3E3D3A92C0CBD89DEB08B5CA1C0F3E3B3B91C8DFB0C8DE702CA851CDA6613D170827FEBC8E54B5763F874CE7B7324621D24A26D7A8E45F798547B74202B43B17749E85FD66C36E759C22CC39DB1ED6CCDA3D16CF27C78C330D0EB9AFC3CFBB6C6CED5E9D86432BECA2D36D95E90FE07ECF01D3668798E5F2E2FC4BB167A34C52209FCFC6C1DAF5FAD61677D1B2ED701D6D75E6167DB858D17CFC893437CAD7973FD255F7FFEE69BFF462CE0E13D183736B738E733EE599FC8B130684ED816EF5A484848E8337CF868D78370E8105BAF9C482443F0B85C8827A2D8DB7421E477239A88E0D90F2BF87EE539F7E29F56D638DFB3BEB6818BE54CF8B0D097D993349B61F16E5F32CB5D3B5F2E6EFAD75EE7A931E6F2E2E2CD0D43F97E66E69F6979F646D4C3424FC65E3A1D1B9CA55C5FDF80736B17DB1BEB707B7C9092D13B9E1B089EDCE17AEE30F582B114FA82EC25EB31F7BEBF3206F39AC77CFF98602C85BE56F6D2BDB78DED1D375EAFBDC6D68B55383677114FC670B07F08D7B60307EE0344C331CE57FA7D41B89C0E448E2388C5C338607B91F6FD1FF8B3602F85BEA40FBF9F2FCCF62A1946EB4E16F15506F1E527F71ACD164BE1CB428F2A967F29672578DC1E848EBD281424A8B2C4FB38177205688AC27B8C33FF656C66B9A420934A239B2D701EB32C5750568BC8146444E2594CFB3DC15E0A7D51069EE5AF9934271B8FFAE4BB0DCCE6739EB7C67A802A347EEBBA0ECB64E7C79CC7B43A26E77F7AB6CD8FBDCFBF0BF652E829C478E08A5246229640A99047A954468C7ED7350DA94492E7B756CA3AB46A199A56C549384A3E5D825A2A41C917512CCA48D075B148926765E672D21D2F16ECA5D063AB5AA9A1AA6A90A422D2992CEAE4C5AD660BF5BA0E55555025DF6DD41B68B4C9A7690CB79A4D982D13F1680265AA3B86C301241ACB367937CBCA1C0CAD3B5E2CD84BA1A7F461AD2441261F5664F5866757942292A92CF2521685A2C273888BB2024D95A9762E214F75709CEEBD5CDECF9D091F167A6C158B65C8E4BF91933882E120AF0B94928A803F00399D825C2E227A42F3B96008D1680CF96C0E12CDF5182FAC291A79770E093AFEF623EC5AB7DBC7A82F727E841E4F6C7D99ED47AE280A796F0C6DA305BD5AE5F3B806CDF56A953274DD8041AA5575D46A35D854EF0E7A3DE8F4BB47FFAD962B7C8F87D56E61329EDC338E17984FCF60DB0BAA51C6F4DC3179B3C872157A18B19C13C6BDC7E371CEBD1B7A0D39AA8D65F2E22CD510471E0FF76656475C7B73AB5981D71FE69EACAA55548A7998B60D4555A9F6BD3B8619F75ECE5FAD3D5BF692E67C168AF4E79C243289859E5E22EB52E86B543092847B7F9F67A6B16C9F17AB2FF15FDF7C0BCFC1DE4DB6CFCED62EFD7EC1B32E7776F678B60FCBFFB966E07FFE6915CF575EF07B59E6CF75C6DAB50FC71396F05CA147135B837873F6E9BE4513BA66321E7EE23C63364F3FC25E5E52CD7C8A5FDF8ABEA1424FC35E7ABC41F2510FFCBE231CFB8F1138F2C1E5DCC3D6EB5D1CFB8270389C0805FC1FE52F057B29F4D43A5D2E319F5ED5B8AC57D2DBCBDB7FF327B319CF269E4C269FFDBCF9FC5430EF425F94BD0C84A2DC8743C163A42311F2E908BEFB6E156ED73E7C3E1FD5C9EE4F32F0F56607C35E5FBC5BA12FCE5E32AEB2DBED519D7BB77FA260E085BE1635AD1E796D10AAA2C2E570211249F1ACCB9A5E463299463A9EE20CA65E2D219F2F527D1C42229E80AA96A0281A7299148EBCC7E85B1D98AD163DF337F15E859E546C5F67A3D1E439C37DFAB7BFAE5578D6E562B980699AB03B5DB4DB4D5866EBAA9FE8BBFC61292FF3DC40968569991D5E3F5FD5D3620C0B3DAD6A54B7FABD0128721EC9788633EE2C2BAD5252108DA64811C41219EEB7954AF9C687D971A590E50C7CB150E0F9C391401025AD8A40200EA3AADD7EA3D0C7F0FBEBA42AD528E2FBB0D0C3AADE305129ABE89A6DE8B526AA1503522E8BA294E7BECB58F816F934F35F45513873D9699B38098751A57A82F111D55A159D5607854C1A8DB6C5F330C7A3ABBD73ACD76DA3D64734D1C1B1BF865CCE16996A420FBBB6313B453291E27996D59A81623ACBB32CEB7A85F71CFFB3FB678B05862C9F6DC4F860B1D748E80BB03EE4AB4ED721CDDBE41B6E876559326EE773BE8DD5C89307DD36BABD1106764BBC53A12FF04D6D8472A58632CDE56AD52ACEFF64BDF95E7EDE5AA0654C51567B58CCCFC57B157A72F6DDEFF1F33DCAD1580CE3FE5F5B1F662C4F38D4443E61422E759116F5AED053F193B329DA9D2E4683219FBB999685E562CEBF8FFD7229D62684FE06FE5B2AC1EBF7A1902F62636D1DF9B844C7CFF83AC52F97620FBD9090909090909090909090D0D7A6FF074E4BDD58 10 | SmallImageOriginalSize=63600 11 | SmallImageWidth=106 12 | SmallImageHeight=150 13 | SmallImage=78DAED5DD972DB48B23DFFFF3F736F4CB7A7AD8D3B091000018200088000B191E0BE48142579B24A5EDBB227E2B644BAE7E6C3094B70E92533AAF29CACCCAC0F1F3EE00383C16030180C0683C16030180C0683C16030180C0683C16030180C0683C16030180C0683C16030180C0683C16030180C0683C16030180C0683C16030180C0683C16030180C0683C16030180C0683C16030FEB648E2315A4D0583BE85AEA240372C1C0FB7DFADF36C076551B0CDCE845939433C4A30F40668D65AD0B41EF9AD813C4DBE5997E75BF2E504ED7A04CF29317066C8C74B18BD096CFA6E19199CC18C3085A16738DE3FB07D5F119382EC4C7B653E2B319D4E110C7DAC968BEFD685E10487BBA3FC79BFBBC7F1E1098F0F8FB4F616B7B7473C3D3EC97F8FC707ECF6F7D86CEED8BEAF88C57C09C7F150E4130C6C1B493446FAA7BD24309D4CD95E67C498FC526FB6E10E3DBCFBC71FA8D76BE819C677EBDA4A0A5DCDD0D35274F51CBE3BA3333086D2CD91254BB6E529CEBE728E6EBB837AA50ED332F1703C60399BB16D7E316CB67B8A3547B6C52F8C878707647981C56249DCAFC47EBF7F71DD6AB5C2ED7EC7363B977E4A7324E3047996231CB8C8D2ECE5B391BE6FD76BB6D91979445735483FD9523F5D5F555ED44F3DD2493D2D93FAC9E86630ED19D2688E4A2D46AD12C324CDA412A768773254AF8630B409F18D82BE27C429F76CEB57D0B9A665937675D16C34E10D1CDA53E977EBF22C637B9D59E70E49DB96C4EF46FE087E10621486DFFB73B6413C5ED33E5BA1986CA5BECDB2358A628BB2DCA1A46FDBED816DFA963AD7259D3B9D426DAA08FC219D8591E4175FAFB307538A632B4CB20D12F28FF8D9B20A24C9F3CF813F23FF6D886BDCB35DDF503F69A49F94B6FA593FAD97AC5D7FB918355BB17EFAC5911725C6A300A3D1186EBF0F97CEC094CEBDEFF4D3FA8024E63D76365E9EE4F03C8A4FC4E75CD7C562B9C266F5BD4EEADB29F27C89CD9239F6B9746E1A910F26E4277B800F4F8F2FAE0BC2315625E7CCCF05CB1CA0556FA34F675EB352253F3DBDB84ED74D847E806559B2DDCE80E130C4C07660193AC5A9E887EB7C5A978D136C572BB6DB39E293CCEFC574FEA50849E3C6C427E6A479B324C17CFEE55E77B3D9E2EE70C0F1FE5EDEB9CFE67BECF8CEF66428C917338A3B459123229E579633C92566B352E6C83FADBB27FF08885C9DC8418C49DF6609EFAD53218E13F47A169D7D0328D586AC8F78695D28EA26E673B6D9DF305F9E8CE6B8A98CD06AC4D03B092EAF43F4AD09FD7F8A762795EB3A4A4A7CBFC4D303D71F9D225F5E32CFFB5BE4CBCB728972BAC324DF20CB3614BFF69897BBE77F45CCCA9FBF71DDDE79F3E5AE37239EB180DB9FC2F3E6C8B315C6F192F4EF927E5E230A1608A325F97DC376E57CF9FFFB5CACEF7BC41F9A30B41E06EE10B349FEC3F5F3D90263D2BCE33080EF05D81D1EA0346A7436CE319B969816050CA30FCF7510D3DEDCEF6F613B1E3A8D06523A678B78CC76FF3F60BFBB93F52BE2CC2BF282E2CD9CCEC31FD7EF09BBAF68BFDDEEB8FEE8A4F57BEB1DD66BB1475299379F2F96B8DBEF7FEAA73DF988FD74E29CC46C49BCDC469B78B9C8B7B6EB6D5C5EFC017F387C71FD7275806D16A8DE84D0941CB63D81DA8A11442BD25263B4AB23F46DE225AD31EBA7D7E411D30554AD0BA55243B76B109F7351BDBEFA494EB0C0D391737BA7C66AB5453C1A415535D46EEAE8B4DAA85C5FFF70FDF1F848BE9C4117BD015A018BF6966B4D64FD5E10CC656F0DDBF59563D3867C14A718053E269309F96C83FBC3CFF7CA7627F2B13BD2588FB8FFA86BB79B03EEC97FB7770FD86F79AFBD360AE2D251104A6D2B70BB17367E62DBFC4DF3B05FF2177B34AA119D8D89ECF5B4CC097A7A4E675E8AF757E1373CC2A4EFDD7682166152706DFA5FF553A5DA80633B320F6B74750C6CEB87EBA7DC4B7D1688DCC2D00F90E639B49606AB6FC3F7863FFD1BD39A62485CDB272E11F80B8C464BC4C41F826081E964CB767D0388DEE9C9648AF56A85288CB05CCCB1DB6D7F92B7DD2349373207BBA49F458E5CF44C97D32DA6E59EB4D88E6BC75E194A4783EF3852330D5D1B1BAE51F925E1B8013ACD26BA9A8E1EE9DC56A345BAA94AB1AA2FBF6B9A01AB67124FE84A9F0E9DC1E77C8438F30447D0F482CE3CEEE57D5B3FF93247AEEB9AAC35EA9B7D394B62148E48C3AA50150D1D429D34AFAEF770F8D8F7B95AAE902619366BDE7FA7A9594E655EDC346D59B36C5B16F92BC076BB95F784BBDD97387377772775ACB8CF9D956BE4F902873BD6B3A740301AC3340C996F8D931C7D3AFF068E8787FB97FBCDD27C87913F238EB8C77A7360BE702274D42EBA1D15EF2F2E29CEE8505A4DB45A0A2CAB4F1A55C3F575ED73ACB2AC01EAB53A3AED262EDFDFE0F6F6169A92403726D045FD914E9AD722CD6B14ECBF13FBA9D5ECD0FE72F0EE7F7F23AED183A174BFBAD798A0591D491E61DB53689D316AB598CED082F6658A769B7CA766D8EFB917F4AF22CD0A84BE87A1E7234E53741A1D24C99874D488B4ABA83B8A89EF3DCF7BEB197DE20E295CD2C1699AE3FE7090FD9E49BC42389CA16F91BFFA5364E95AD6B598B4B72CD2C3BB35C7B0BF8A281E136F18C21B06F0FD40D6EE8DA248CEFDF03D57D6FEA749829274B0A8F3DBED6F49DF1630CC80F6D41D2C3AEB5C6746BE9E2126DD1B93CF3CFADDF7E7582C6E8987DC73FDD1ABF088189E3BC060E0128F48D0EBF6E00C06C41502C4A308519422749DAF6A9C57A48B4BE28553DA536B84E19C7CB480237CE53E7F137924B1BFD8BEAF07B33F9031A749FAD6A5BDF4AFDFDEC1507B52DB9AA68177EFAEC8E65F727DF138C1E5E505DBEED4E71ED95DED28307ACF3D68D5CB6BDA4F0E71068338420D8DA622397BAB5E87A2E8148B12D4AB55F9CDA133713E9DB01D4FD1F349BC40CC9E8AA2B1ECA711738EC230923974F1DD715CE21AD9E7BE1AD123B55C2E319996D86C363267CB763C819FC62971869CF647207BA94DDA575114230A2259CB1713CF187FD5FB3E9FCD254CD34436CE654D05DBF1EDD1EC08FDD446ABAAA0DF3771735D81D6D52856B96892A6BDAED6611A3A1A74D65D5C5CA1EF78E8366AA854DB743EDAF2CE5715793FAEE37B533448C7D66F1A50DB6DF2C10017BFFD413CDB9139D79EA6A3D9EC4AEDD4D754E98FAEA212EF50717355A1FD16C8BB2855CF51705FE11BEBDCFCA3A68D302D32DA5B5D19A30E3FA8853D1C1EC83F1C93CE31E343E4C76D3AC3C6148B84AEED5B7D6C56CB1FD4CDEEA5A6E5797AA7856DD9323FE4BA43788ED0B7217C37C474F272EFA0E89F0EC305FBE9C41077188D5A43F650B75B2DD42A5599CF338C9E8C5955FADD1D78C433EA1885D137F5E58E53C277783ECB69746E0ABDAB927FEA923F887A658FF6966B3BA8DD5471795593E7A04A3EECEA86EC5FFB54B7EC0CE72852E60F27A9FF9F4CBEE9EF7C7C7C94BF0B0DFB9FEA969F1E1EF96D861361BBF9CFB5764F82E7F1FDFAD9E187310C4D9377B6B54A4DC628953452F5F20AB56A53D64C749A6DFCFEFB7B5983A9932E167FF7407B6F3EE5F8742AF47B2E5AE4874AE51AED4603ED8E0ABBEF40EBB450AF36E41DE2F5C505AE6E6A30895F3CE76435F47A268A2C9577876CC713F46B6453C9CBC3C0C3A0DFA73DE3C0F58672B6A5433E8A88B75B86890E696091EF1B7DBCE710FD34DB2DDF019E6CBE519410E70EE0B80E86FEF38C8FAC28108F48FF5A03A4698688BE79E433915F5F2E9EEF008FC423D62B9E5D70B2391FB3396CF95E43427B68F07CB7E107E49B80F6584467A04D5A6900AD6B60392BBFAAE73B929F166CC353DD6DD05956ADB7A1EB5D8A4F1DF40C1D9AAACBFCABA8670EE89C5388575C12AF502976E99D8EFCBB5BF2D38CEF094F067718487ED7B74CD4EA0DFCCF3FFE095D33A0291D281493849FBA2A69E14613EDB642DF8973100FECB45579E7BBBF3D120F49612809C5B054BE17C0767D83736FB192B546E25D3BDFF3647E28CF9EE39398912DEE7985AF367F7AAB46F4E6EEF99DA1D3DD6D2419F96A8E2CCB30C927B2BF70B95C613229108AFB8E6949DF8B6F665B7EE27BBB2DF7A49D0A62DEB2883F0EE959857494986F24F691A5EBA8927E6AB7DB50DB1D349B9DCFF93D8E4FE7D3B975D2AFB5EB0AC5980E3AC4213EF9260A823FED3FD6B5E7E9A3CE243FE8993DBCFFFD02BAD2252D35449B3842DF76D193BD6A3AFAC4D9FBA4A7440EE2F96EF7C8FD4F27AD39CA2936A588462339DB52CCC22E292609BEEEFBA1E417538A555996CB79D9FB8F3D51C7C727D6B9A7CC478C9E7DE4798EEC5B133C42CC0DF36C1BAEE723239E21DE3D1E8FC7C88867AC96F3CFFB69BBE19910A78E4F0AC5A4E7F8A4C01B7AF23DDD067DD744ED58AB853A69E07ECFA47351611E71463F5D5D5FA25169A2556F4211F3A82A37C42D5AB217DED2BBA4815B387E35F788FD745AAC566B3AF302D8A6493AD78743DC41F4108A591F3671879C6296ECB1A135F138C366F925A727DE285C2CEF641FD4667DCBF67C43AC49AB2E16CF6F35CC6725D69BADCCC58AB71CC41C73918F582E16B46681ED6EF7F96E57F08859B191F3C166E58ED632F77BFBFC9E226B8CDEFFFE0E6A578365D968D7AB505543DEF1B66A75D46B4D3A17AB722E9FA8F5137E8A43AEB93C87CED5751D9AA6C1EC59A85D5EC91A23D143F34933B1CEFD3574AEF093E8FD541443D68B893EA83FE723E625F70A9E9C43AC37B25E4FDCD706E48F3CCF494BC5A47567727E9BE8B91133B245ACBABB7D9E9F28E611B0ED4E9C8B209E20E6C007FE48F635895A88229D483D3B220D158491BCE70D7C5FCEC17E223F718DD8196253DF81A175D169A9503B1DD9F76918168643179D7A0DD7C41B4CE3B957B75EA94B9E2EDE591375CB6D25C5BF7E1B70ADF929FC3470A57F34B58770E47FD33BF8B90EE2F848DF03B9EFD86667CAEDC52971700B23FFE7F32BA7C596E2D88CDF6E3FC77DFB7C8180B493EB79B29EFCE9F1E577C3854E4AA2857C37B22CF99EFDD4E89926FAA467C74188DDEE8EFCC47B85C160FC77E2DFDD0AE89A 14 | 15 | -------------------------------------------------------------------------------- /神经网络自适应/Sim.slx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chengqian0210/RBF-Neural-Network-Adaptive-Control/596c695acb07c58400493a7f34a38999bfb80288/神经网络自适应/Sim.slx --------------------------------------------------------------------------------