diff --git a/assets/swagger.json b/assets/swagger.json index fb78f9420dc12..157baf3b774a9 100644 --- a/assets/swagger.json +++ b/assets/swagger.json @@ -6529,6 +6529,10 @@ "kustomize": { "$ref": "#/definitions/v1alpha1ApplicationSourceKustomize" }, + "name": { + "description": "Name is used to refer to a source and is displayed in the UI. It is used in multi-source Applications.", + "type": "string" + }, "path": { "description": "Path is a directory path within the Git repository, and is only valid for applications sourced from Git.", "type": "string" diff --git a/cmd/argocd/commands/app.go b/cmd/argocd/commands/app.go index c48382e23fede..6f517cde2920e 100644 --- a/cmd/argocd/commands/app.go +++ b/cmd/argocd/commands/app.go @@ -317,6 +317,17 @@ func printHeader(acdClient argocdclient.Client, app *argoappv1.Application, ctx } } +// getSourceNameToPositionMap returns a map of source name to position +func getSourceNameToPositionMap(app *argoappv1.Application) map[string]int64 { + sourceNameToPosition := make(map[string]int64) + for i, s := range app.Spec.Sources { + if s.Name != "" { + sourceNameToPosition[s.Name] = int64(i + 1) + } + } + return sourceNameToPosition +} + // NewApplicationGetCommand returns a new instance of an `argocd app get` command func NewApplicationGetCommand(clientOpts *argocdclient.ClientOptions) *cobra.Command { var ( @@ -327,6 +338,7 @@ func NewApplicationGetCommand(clientOpts *argocdclient.ClientOptions) *cobra.Com showOperation bool appNamespace string sourcePosition int + sourceName string ) command := &cobra.Command{ Use: "get APPNAME", @@ -350,6 +362,9 @@ func NewApplicationGetCommand(clientOpts *argocdclient.ClientOptions) *cobra.Com # Show application parameters and overrides for a source at position 1 under spec.sources of app my-app argocd app get my-app --show-params --source-position 1 + # Show application parameters and overrides for a source named "test" + argocd app get my-app --show-params --source-name test + # Refresh application data when retrieving argocd app get my-app --refresh @@ -382,6 +397,19 @@ func NewApplicationGetCommand(clientOpts *argocdclient.ClientOptions) *cobra.Com }) errors.CheckError(err) + if sourceName != "" && sourcePosition != -1 { + errors.CheckError(fmt.Errorf("Only one of source-position and source-name can be specified.")) + } + + if sourceName != "" { + sourceNameToPosition := getSourceNameToPositionMap(app) + if pos, ok := sourceNameToPosition[sourceName]; !ok { + log.Fatalf("Unknown source name '%s'", sourceName) + } else { + sourcePosition = int(pos) + } + } + // check for source position if --show-params is set if app.Spec.HasMultipleSources() && showParams { if sourcePosition <= 0 { @@ -437,6 +465,7 @@ func NewApplicationGetCommand(clientOpts *argocdclient.ClientOptions) *cobra.Com command.Flags().BoolVar(&hardRefresh, "hard-refresh", false, "Refresh application data as well as target manifests cache") command.Flags().StringVarP(&appNamespace, "app-namespace", "N", "", "Only get application from namespace") command.Flags().IntVar(&sourcePosition, "source-position", -1, "Position of the source from the list of sources of the app. Counting starts at 1.") + command.Flags().StringVar(&sourceName, "source-name", "", "Name of the source from the list of sources of the app.") return command } @@ -766,6 +795,7 @@ func NewApplicationSetCommand(clientOpts *argocdclient.ClientOptions) *cobra.Com appOpts cmdutil.AppOptions appNamespace string sourcePosition int + sourceName string ) command := &cobra.Command{ Use: "set APPNAME", @@ -780,6 +810,9 @@ func NewApplicationSetCommand(clientOpts *argocdclient.ClientOptions) *cobra.Com # Set and override application parameters for a source at position 1 under spec.sources of app my-app. source-position starts at 1. argocd app set my-app --source-position 1 --repo https://github.com/argoproj/argocd-example-apps.git + # Set and override application parameters for a source named "test" under spec.sources of app my-app. + argocd app set my-app --source-name test --repo https://github.com/argoproj/argocd-example-apps.git + # Set application parameters and specify the namespace argocd app set my-app --parameter key1=value1 --parameter key2=value2 --namespace my-namespace `), @@ -798,6 +831,20 @@ func NewApplicationSetCommand(clientOpts *argocdclient.ClientOptions) *cobra.Com app, err := appIf.Get(ctx, &application.ApplicationQuery{Name: &appName, AppNamespace: &appNs}) errors.CheckError(err) + sourceName = appOpts.SourceName + if sourceName != "" && sourcePosition != -1 { + errors.CheckError(fmt.Errorf("Only one of source-position and source-name can be specified.")) + } + + if sourceName != "" { + sourceNameToPosition := getSourceNameToPositionMap(app) + if pos, ok := sourceNameToPosition[sourceName]; !ok { + log.Fatalf("Unknown source name '%s'", sourceName) + } else { + sourcePosition = int(pos) + } + } + if app.Spec.HasMultipleSources() { if sourcePosition <= 0 { errors.CheckError(fmt.Errorf("Source position should be specified and must be greater than 0 for applications with multiple sources")) @@ -861,6 +908,7 @@ func (o *unsetOpts) KustomizeIsZero() bool { // NewApplicationUnsetCommand returns a new instance of an `argocd app unset` command func NewApplicationUnsetCommand(clientOpts *argocdclient.ClientOptions) *cobra.Command { var sourcePosition int + var sourceName string appOpts := cmdutil.AppOptions{} opts := unsetOpts{} var appNamespace string @@ -876,6 +924,9 @@ func NewApplicationUnsetCommand(clientOpts *argocdclient.ClientOptions) *cobra.C # Unset kustomize override suffix for source at position 1 under spec.sources of app my-app. source-position starts at 1. argocd app unset my-app --source-position 1 --namesuffix + # Unset kustomize override suffix for source named "test" under spec.sources of app my-app. + argocd app unset my-app --source-name test --namesuffix + # Unset parameter override argocd app unset my-app -p COMPONENT=PARAM`, @@ -893,6 +944,20 @@ func NewApplicationUnsetCommand(clientOpts *argocdclient.ClientOptions) *cobra.C app, err := appIf.Get(ctx, &application.ApplicationQuery{Name: &appName, AppNamespace: &appNs}) errors.CheckError(err) + sourceName = appOpts.SourceName + if sourceName != "" && sourcePosition != -1 { + errors.CheckError(fmt.Errorf("Only one of source-position and source-name can be specified.")) + } + + if sourceName != "" { + sourceNameToPosition := getSourceNameToPositionMap(app) + if pos, ok := sourceNameToPosition[sourceName]; !ok { + log.Fatalf("Unknown source name '%s'", sourceName) + } else { + sourcePosition = int(pos) + } + } + if app.Spec.HasMultipleSources() { if sourcePosition <= 0 { errors.CheckError(fmt.Errorf("Source position should be specified and must be greater than 0 for applications with multiple sources")) @@ -1161,6 +1226,7 @@ func NewApplicationDiffCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co appNamespace string revisions []string sourcePositions []int64 + sourceNames []string ignoreNormalizerOpts normalizers.IgnoreNormalizerOpts ) shortDesc := "Perform a diff against the target and live state." @@ -1176,8 +1242,16 @@ func NewApplicationDiffCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co os.Exit(2) } - if len(revisions) != len(sourcePositions) { - errors.CheckError(fmt.Errorf("While using revisions and source-positions, length of values for both flags should be same.")) + if len(sourceNames) > 0 && len(sourcePositions) > 0 { + errors.CheckError(fmt.Errorf("Only one of source-positions and source-names can be specified.")) + } + + if len(sourcePositions) > 0 && len(revisions) != len(sourcePositions) { + errors.CheckError(fmt.Errorf("While using --revisions and --source-positions, length of values for both flags should be same.")) + } + + if len(sourceNames) > 0 && len(revisions) != len(sourceNames) { + errors.CheckError(fmt.Errorf("While using --revisions and --source-names, length of values for both flags should be same.")) } clientset := headless.NewClientOrDie(clientOpts, c) @@ -1191,6 +1265,18 @@ func NewApplicationDiffCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co }) errors.CheckError(err) + if len(sourceNames) > 0 { + sourceNameToPosition := getSourceNameToPositionMap(app) + + for _, name := range sourceNames { + if pos, ok := sourceNameToPosition[name]; !ok { + log.Fatalf("Unknown source name '%s'", name) + } else { + sourcePositions = append(sourcePositions, pos) + } + } + } + resources, err := appIf.ManagedResources(ctx, &application.ResourcesQuery{ApplicationName: &appName, AppNamespace: &appNs}) errors.CheckError(err) conn, settingsIf := clientset.NewSettingsClientOrDie() @@ -1271,6 +1357,7 @@ func NewApplicationDiffCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co command.Flags().StringVarP(&appNamespace, "app-namespace", "N", "", "Only render the difference in namespace") command.Flags().StringArrayVar(&revisions, "revisions", []string{}, "Show manifests at specific revisions for source position in source-positions") command.Flags().Int64SliceVar(&sourcePositions, "source-positions", []int64{}, "List of source positions. Default is empty array. Counting start at 1.") + command.Flags().StringArrayVar(&sourceNames, "source-names", []string{}, "List of source names. Default is an empty array.") command.Flags().DurationVar(&ignoreNormalizerOpts.JQExecutionTimeout, "ignore-normalizer-jq-execution-timeout", normalizers.DefaultJQExecutionTimeout, "Set ignore normalizer JQ execution timeout") return command } @@ -1835,6 +1922,7 @@ func NewApplicationSyncCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co revision string revisions []string sourcePositions []int64 + sourceNames []string resources []string labels []string selector string @@ -1878,7 +1966,8 @@ func NewApplicationSyncCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co argocd app sync -l 'app.kubernetes.io/instance notin (my-app,other-app)' # Sync a multi-source application for specific revision of specific sources - argocd app manifests my-app --revisions 0.0.1 --source-positions 1 --revisions 0.0.2 --source-positions 2 + argocd app sync my-app --revisions 0.0.1 --source-positions 1 --revisions 0.0.2 --source-positions 2 + argocd app sync my-app --revisions 0.0.1 --source-names my-chart --revisions 0.0.2 --source-names my-values # Sync a specific resource # Resource should be formatted as GROUP:KIND:NAME. If no GROUP is specified then :KIND:NAME @@ -1903,10 +1992,22 @@ func NewApplicationSyncCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co log.Fatal("Cannot use --revisions and --source-positions options when 0 or more than 1 application names are passed as argument(s)") } - if len(revisions) != len(sourcePositions) { + if len(args) != 1 && (len(revisions) > 0 || len(sourceNames) > 0) { + log.Fatal("Cannot use --revisions and --source-names options when 0 or more than 1 application names are passed as argument(s)") + } + + if len(sourceNames) > 0 && len(sourcePositions) > 0 { + log.Fatal("Only one of source-positions and source-names can be specified.") + } + + if len(sourcePositions) > 0 && len(revisions) != len(sourcePositions) { log.Fatal("While using --revisions and --source-positions, length of values for both flags should be same.") } + if len(sourceNames) > 0 && len(revisions) != len(sourceNames) { + log.Fatal("While using --revisions and --source-names, length of values for both flags should be same.") + } + for _, pos := range sourcePositions { if pos <= 0 { log.Fatal("source-position cannot be less than or equal to 0, Counting starts at 1") @@ -1920,6 +2021,22 @@ func NewApplicationSyncCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co selectedLabels, err := label.Parse(labels) errors.CheckError(err) + if len(args) == 1 && len(sourceNames) > 0 { + appName, _ := argo.ParseFromQualifiedName(args[0], appNamespace) + app, err := appIf.Get(context.Background(), &application.ApplicationQuery{Name: &appName}) + errors.CheckError(err) + + sourceNameToPosition := getSourceNameToPositionMap(app) + + for _, name := range sourceNames { + if pos, ok := sourceNameToPosition[name]; !ok { + log.Fatalf("Unknown source name '%s'", name) + } else { + sourcePositions = append(sourcePositions, pos) + } + } + } + appNames := args if selector != "" || len(projects) > 0 { list, err := appIf.List(ctx, &application.ApplicationQuery{ @@ -2178,6 +2295,7 @@ func NewApplicationSyncCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co command.Flags().DurationVar(&ignoreNormalizerOpts.JQExecutionTimeout, "ignore-normalizer-jq-execution-timeout", normalizers.DefaultJQExecutionTimeout, "Set ignore normalizer JQ execution timeout") command.Flags().StringArrayVar(&revisions, "revisions", []string{}, "Show manifests at specific revisions for source position in source-positions") command.Flags().Int64SliceVar(&sourcePositions, "source-positions", []int64{}, "List of source positions. Default is empty array. Counting start at 1.") + command.Flags().StringArrayVar(&sourceNames, "source-names", []string{}, "List of source names. Default is an empty array.") return command } @@ -2818,6 +2936,7 @@ func NewApplicationManifestsCommand(clientOpts *argocdclient.ClientOptions) *cob revision string revisions []string sourcePositions []int64 + sourceNames []string local string localRepoRoot string ) @@ -2831,6 +2950,9 @@ func NewApplicationManifestsCommand(clientOpts *argocdclient.ClientOptions) *cob # Get manifests for an application at a specific revision argocd app manifests my-app --revision 0.0.1 + # Get manifests for a multi-source application at specific revisions for specific sources + argocd app manifests my-app --revisions 0.0.1 --source-names src-base --revisions 0.0.2 --source-names src-values + # Get manifests for a multi-source application at specific revisions for specific sources argocd app manifests my-app --revisions 0.0.1 --source-positions 1 --revisions 0.0.2 --source-positions 2 `), @@ -2842,8 +2964,16 @@ func NewApplicationManifestsCommand(clientOpts *argocdclient.ClientOptions) *cob os.Exit(1) } - if len(revisions) != len(sourcePositions) { - errors.CheckError(fmt.Errorf("While using revisions and source-positions, length of values for both flags should be same.")) + if len(sourceNames) > 0 && len(sourcePositions) > 0 { + errors.CheckError(fmt.Errorf("Only one of source-positions and source-names can be specified.")) + } + + if len(sourcePositions) > 0 && len(revisions) != len(sourcePositions) { + errors.CheckError(fmt.Errorf("While using --revisions and --source-positions, length of values for both flags should be same.")) + } + + if len(sourceNames) > 0 && len(revisions) != len(sourceNames) { + errors.CheckError(fmt.Errorf("While using --revisions and --source-names, length of values for both flags should be same.")) } for _, pos := range sourcePositions { @@ -2857,6 +2987,24 @@ func NewApplicationManifestsCommand(clientOpts *argocdclient.ClientOptions) *cob conn, appIf := clientset.NewApplicationClientOrDie() defer argoio.Close(conn) + app, err := appIf.Get(context.Background(), &application.ApplicationQuery{ + Name: &appName, + AppNamespace: &appNs, + }) + errors.CheckError(err) + + if len(sourceNames) > 0 { + sourceNameToPosition := getSourceNameToPositionMap(app) + + for _, name := range sourceNames { + if pos, ok := sourceNameToPosition[name]; !ok { + log.Fatalf("Unknown source name '%s'", name) + } else { + sourcePositions = append(sourcePositions, pos) + } + } + } + resources, err := appIf.ManagedResources(ctx, &application.ResourcesQuery{ ApplicationName: &appName, AppNamespace: &appNs, @@ -2867,9 +3015,6 @@ func NewApplicationManifestsCommand(clientOpts *argocdclient.ClientOptions) *cob switch source { case "git": if local != "" { - app, err := appIf.Get(context.Background(), &application.ApplicationQuery{Name: &appName}) - errors.CheckError(err) - settingsConn, settingsIf := clientset.NewSettingsClientOrDie() defer argoio.Close(settingsConn) argoSettings, err := settingsIf.Get(context.Background(), &settings.SettingsQuery{}) @@ -2938,6 +3083,7 @@ func NewApplicationManifestsCommand(clientOpts *argocdclient.ClientOptions) *cob command.Flags().StringVar(&revision, "revision", "", "Show manifests at a specific revision") command.Flags().StringArrayVar(&revisions, "revisions", []string{}, "Show manifests at specific revisions for the source at position in source-positions") command.Flags().Int64SliceVar(&sourcePositions, "source-positions", []int64{}, "List of source positions. Default is empty array. Counting start at 1.") + command.Flags().StringArrayVar(&sourceNames, "source-names", []string{}, "List of source names. Default is an empty array.") command.Flags().StringVar(&local, "local", "", "If set, show locally-generated manifests. Value is the absolute path to app manifests within the manifest repo. Example: '/home/username/apps/env/app-1'.") command.Flags().StringVar(&localRepoRoot, "local-repo-root", ".", "Path to the local repository root. Used together with --local allows setting the repository root. Example: '/home/username/apps'.") return command @@ -3086,7 +3232,7 @@ func NewApplicationAddSourceCommand(clientOpts *argocdclient.ClientOptions) *cob Use: "add-source APPNAME", Short: "Adds a source to the list of sources in the application", Example: ` # Append a source to the list of sources in the application - argocd app add-source guestbook --repo https://github.com/argoproj/argocd-example-apps.git --path guestbook`, + argocd app add-source guestbook --repo https://github.com/argoproj/argocd-example-apps.git --path guestbook --source-name guestbook`, Run: func(c *cobra.Command, args []string) { ctx := c.Context() if len(args) != 1 { @@ -3144,13 +3290,17 @@ func NewApplicationAddSourceCommand(clientOpts *argocdclient.ClientOptions) *cob func NewApplicationRemoveSourceCommand(clientOpts *argocdclient.ClientOptions) *cobra.Command { var ( sourcePosition int + sourceName string appNamespace string ) command := &cobra.Command{ Use: "remove-source APPNAME", - Short: "Remove a source from multiple sources application. Counting starts with 1. Default value is -1.", + Short: "Remove a source from multiple sources application.", Example: ` # Remove the source at position 1 from application's sources. Counting starts at 1. - argocd app remove-source myapplication --source-position 1`, + argocd app remove-source myapplication --source-position 1 + + # Remove the source named "test" from application's sources. + argocd app remove-source myapplication --source-name test`, Run: func(c *cobra.Command, args []string) { ctx := c.Context() @@ -3159,7 +3309,7 @@ func NewApplicationRemoveSourceCommand(clientOpts *argocdclient.ClientOptions) * os.Exit(1) } - if sourcePosition <= 0 { + if sourceName == "" && sourcePosition <= 0 { errors.CheckError(fmt.Errorf("Value of source-position must be greater than 0")) } @@ -3176,6 +3326,19 @@ func NewApplicationRemoveSourceCommand(clientOpts *argocdclient.ClientOptions) * }) errors.CheckError(err) + if sourceName != "" && sourcePosition != -1 { + errors.CheckError(fmt.Errorf("Only one of source-position and source-name can be specified.")) + } + + if sourceName != "" { + sourceNameToPosition := getSourceNameToPositionMap(app) + if pos, ok := sourceNameToPosition[sourceName]; !ok { + log.Fatalf("Unknown source name '%s'", sourceName) + } else { + sourcePosition = int(pos) + } + } + if !app.Spec.HasMultipleSources() { errors.CheckError(fmt.Errorf("Application does not have multiple sources configured")) } @@ -3208,6 +3371,7 @@ func NewApplicationRemoveSourceCommand(clientOpts *argocdclient.ClientOptions) * } command.Flags().StringVarP(&appNamespace, "app-namespace", "N", "", "Namespace of the target application where the source will be appended") command.Flags().IntVar(&sourcePosition, "source-position", -1, "Position of the source from the list of sources of the app. Counting starts at 1.") + command.Flags().StringVar(&sourceName, "source-name", "", "Name of the source from the list of sources of the app.") return command } diff --git a/cmd/util/app.go b/cmd/util/app.go index 025ef968097e5..f53b808f8a938 100644 --- a/cmd/util/app.go +++ b/cmd/util/app.go @@ -89,6 +89,7 @@ type AppOptions struct { retryBackoffMaxDuration time.Duration retryBackoffFactor int64 ref string + SourceName string } // SetAutoMaxProcs sets the GOMAXPROCS value based on the binary name. @@ -164,6 +165,7 @@ func AddAppFlags(command *cobra.Command, opts *AppOptions) { command.Flags().DurationVar(&opts.retryBackoffMaxDuration, "sync-retry-backoff-max-duration", argoappv1.DefaultSyncRetryMaxDuration, "Max sync retry backoff duration. Input needs to be a duration (e.g. 2m, 1h)") command.Flags().Int64Var(&opts.retryBackoffFactor, "sync-retry-backoff-factor", argoappv1.DefaultSyncRetryFactor, "Factor multiplies the base duration after each failed sync retry") command.Flags().StringVar(&opts.ref, "ref", "", "Ref is reference to another source within sources field") + command.Flags().StringVar(&opts.SourceName, "source-name", "", "Name of the source from the list of sources of the app.") } func SetAppSpecOptions(flags *pflag.FlagSet, spec *argoappv1.ApplicationSpec, appOpts *AppOptions, sourcePosition int) int { @@ -751,6 +753,8 @@ func ConstructSource(source *argoappv1.ApplicationSource, appOpts AppOptions, fl setPluginOptEnvs(source, appOpts.pluginEnvs) case "ref": source.Ref = appOpts.ref + case "source-name": + source.Name = appOpts.SourceName } }) return source, visited diff --git a/docs/user-guide/commands/argocd_admin_app_generate-spec.md b/docs/user-guide/commands/argocd_admin_app_generate-spec.md index 9e863fe7b10ce..60ad136c4111f 100644 --- a/docs/user-guide/commands/argocd_admin_app_generate-spec.md +++ b/docs/user-guide/commands/argocd_admin_app_generate-spec.md @@ -93,6 +93,7 @@ argocd admin app generate-spec APPNAME [flags] --revision-history-limit int How many items to keep in revision history (default 10) --self-heal Set self healing when sync is automated --set-finalizer Sets deletion finalizer on the application, application resources will be cascaded on deletion + --source-name string Name of the source from the list of sources of the app. --sync-option Prune=false Add or remove a sync option, e.g add Prune=false. Remove using `!` prefix, e.g. `!Prune=false` --sync-policy string Set the sync policy (one of: manual (aliases of manual: none), automated (aliases of automated: auto, automatic)) --sync-retry-backoff-duration duration Sync retry backoff base duration. Input needs to be a duration (e.g. 2m, 1h) (default 5s) diff --git a/docs/user-guide/commands/argocd_app.md b/docs/user-guide/commands/argocd_app.md index b66326093ae6e..2ff8e6cf830ff 100644 --- a/docs/user-guide/commands/argocd_app.md +++ b/docs/user-guide/commands/argocd_app.md @@ -94,7 +94,7 @@ argocd app [flags] * [argocd app manifests](argocd_app_manifests.md) - Print manifests of an application * [argocd app patch](argocd_app_patch.md) - Patch application * [argocd app patch-resource](argocd_app_patch-resource.md) - Patch resource in an application -* [argocd app remove-source](argocd_app_remove-source.md) - Remove a source from multiple sources application. Counting starts with 1. Default value is -1. +* [argocd app remove-source](argocd_app_remove-source.md) - Remove a source from multiple sources application. * [argocd app resources](argocd_app_resources.md) - List resource of application * [argocd app rollback](argocd_app_rollback.md) - Rollback application to a previous deployed version by History ID, omitted will Rollback to the previous version * [argocd app set](argocd_app_set.md) - Set application parameters diff --git a/docs/user-guide/commands/argocd_app_add-source.md b/docs/user-guide/commands/argocd_app_add-source.md index 07c0c1f44b5a6..4597aa4a08035 100644 --- a/docs/user-guide/commands/argocd_app_add-source.md +++ b/docs/user-guide/commands/argocd_app_add-source.md @@ -12,7 +12,7 @@ argocd app add-source APPNAME [flags] ``` # Append a source to the list of sources in the application - argocd app add-source guestbook --repo https://github.com/argoproj/argocd-example-apps.git --path guestbook + argocd app add-source guestbook --repo https://github.com/argoproj/argocd-example-apps.git --path guestbook --source-name guestbook ``` ### Options @@ -70,6 +70,7 @@ argocd app add-source APPNAME [flags] --revision string The tracking source branch, tag, commit or Helm chart version the application will sync to --revision-history-limit int How many items to keep in revision history (default 10) --self-heal Set self healing when sync is automated + --source-name string Name of the source from the list of sources of the app. --sync-option Prune=false Add or remove a sync option, e.g add Prune=false. Remove using `!` prefix, e.g. `!Prune=false` --sync-policy string Set the sync policy (one of: manual (aliases of manual: none), automated (aliases of automated: auto, automatic)) --sync-retry-backoff-duration duration Sync retry backoff base duration. Input needs to be a duration (e.g. 2m, 1h) (default 5s) diff --git a/docs/user-guide/commands/argocd_app_create.md b/docs/user-guide/commands/argocd_app_create.md index c4c8ca69cb23c..cf5393ab04ac8 100644 --- a/docs/user-guide/commands/argocd_app_create.md +++ b/docs/user-guide/commands/argocd_app_create.md @@ -93,6 +93,7 @@ argocd app create APPNAME [flags] --revision-history-limit int How many items to keep in revision history (default 10) --self-heal Set self healing when sync is automated --set-finalizer Sets deletion finalizer on the application, application resources will be cascaded on deletion + --source-name string Name of the source from the list of sources of the app. --sync-option Prune=false Add or remove a sync option, e.g add Prune=false. Remove using `!` prefix, e.g. `!Prune=false` --sync-policy string Set the sync policy (one of: manual (aliases of manual: none), automated (aliases of automated: auto, automatic)) --sync-retry-backoff-duration duration Sync retry backoff base duration. Input needs to be a duration (e.g. 2m, 1h) (default 5s) diff --git a/docs/user-guide/commands/argocd_app_diff.md b/docs/user-guide/commands/argocd_app_diff.md index 88eba2e7a255f..743fa6e2b203d 100644 --- a/docs/user-guide/commands/argocd_app_diff.md +++ b/docs/user-guide/commands/argocd_app_diff.md @@ -31,6 +31,7 @@ argocd app diff APPNAME [flags] --revision string Compare live app to a particular revision --revisions stringArray Show manifests at specific revisions for source position in source-positions --server-side-generate Used with --local, this will send your manifests to the server for diffing + --source-names stringArray List of source names. Default is an empty array. --source-positions int64Slice List of source positions. Default is empty array. Counting start at 1. (default []) ``` diff --git a/docs/user-guide/commands/argocd_app_get.md b/docs/user-guide/commands/argocd_app_get.md index dc436d5b92f18..667978ee27c85 100644 --- a/docs/user-guide/commands/argocd_app_get.md +++ b/docs/user-guide/commands/argocd_app_get.md @@ -29,6 +29,9 @@ argocd app get APPNAME [flags] # Show application parameters and overrides for a source at position 1 under spec.sources of app my-app argocd app get my-app --show-params --source-position 1 + # Show application parameters and overrides for a source named "test" + argocd app get my-app --show-params --source-name test + # Refresh application data when retrieving argocd app get my-app --refresh @@ -52,6 +55,7 @@ argocd app get APPNAME [flags] --refresh Refresh application data when retrieving --show-operation Show application operation --show-params Show application parameters and overrides + --source-name string Name of the source from the list of sources of the app. --source-position int Position of the source from the list of sources of the app. Counting starts at 1. (default -1) ``` diff --git a/docs/user-guide/commands/argocd_app_manifests.md b/docs/user-guide/commands/argocd_app_manifests.md index 2ea32ccc91e8b..e2cbe3bfb8c7a 100644 --- a/docs/user-guide/commands/argocd_app_manifests.md +++ b/docs/user-guide/commands/argocd_app_manifests.md @@ -17,6 +17,9 @@ argocd app manifests APPNAME [flags] # Get manifests for an application at a specific revision argocd app manifests my-app --revision 0.0.1 + # Get manifests for a multi-source application at specific revisions for specific sources + argocd app manifests my-app --revisions 0.0.1 --source-names src-base --revisions 0.0.2 --source-names src-values + # Get manifests for a multi-source application at specific revisions for specific sources argocd app manifests my-app --revisions 0.0.1 --source-positions 1 --revisions 0.0.2 --source-positions 2 ``` @@ -30,6 +33,7 @@ argocd app manifests APPNAME [flags] --revision string Show manifests at a specific revision --revisions stringArray Show manifests at specific revisions for the source at position in source-positions --source string Source of manifests. One of: live|git (default "git") + --source-names stringArray List of source names. Default is an empty array. --source-positions int64Slice List of source positions. Default is empty array. Counting start at 1. (default []) ``` diff --git a/docs/user-guide/commands/argocd_app_remove-source.md b/docs/user-guide/commands/argocd_app_remove-source.md index 1835ef38adc0d..2b0aa9ec29841 100644 --- a/docs/user-guide/commands/argocd_app_remove-source.md +++ b/docs/user-guide/commands/argocd_app_remove-source.md @@ -2,7 +2,7 @@ ## argocd app remove-source -Remove a source from multiple sources application. Counting starts with 1. Default value is -1. +Remove a source from multiple sources application. ``` argocd app remove-source APPNAME [flags] @@ -13,6 +13,9 @@ argocd app remove-source APPNAME [flags] ``` # Remove the source at position 1 from application's sources. Counting starts at 1. argocd app remove-source myapplication --source-position 1 + + # Remove the source named "test" from application's sources. + argocd app remove-source myapplication --source-name test ``` ### Options @@ -20,6 +23,7 @@ argocd app remove-source APPNAME [flags] ``` -N, --app-namespace string Namespace of the target application where the source will be appended -h, --help help for remove-source + --source-name string Name of the source from the list of sources of the app. --source-position int Position of the source from the list of sources of the app. Counting starts at 1. (default -1) ``` diff --git a/docs/user-guide/commands/argocd_app_set.md b/docs/user-guide/commands/argocd_app_set.md index 91cd421edc242..7beefcac5955e 100644 --- a/docs/user-guide/commands/argocd_app_set.md +++ b/docs/user-guide/commands/argocd_app_set.md @@ -20,6 +20,9 @@ argocd app set APPNAME [flags] # Set and override application parameters for a source at position 1 under spec.sources of app my-app. source-position starts at 1. argocd app set my-app --source-position 1 --repo https://github.com/argoproj/argocd-example-apps.git + # Set and override application parameters for a source named "test" under spec.sources of app my-app. + argocd app set my-app --source-name test --repo https://github.com/argoproj/argocd-example-apps.git + # Set application parameters and specify the namespace argocd app set my-app --parameter key1=value1 --parameter key2=value2 --namespace my-namespace ``` @@ -79,6 +82,7 @@ argocd app set APPNAME [flags] --revision string The tracking source branch, tag, commit or Helm chart version the application will sync to --revision-history-limit int How many items to keep in revision history (default 10) --self-heal Set self healing when sync is automated + --source-name string Name of the source from the list of sources of the app. --source-position int Position of the source from the list of sources of the app. Counting starts at 1. (default -1) --sync-option Prune=false Add or remove a sync option, e.g add Prune=false. Remove using `!` prefix, e.g. `!Prune=false` --sync-policy string Set the sync policy (one of: manual (aliases of manual: none), automated (aliases of automated: auto, automatic)) diff --git a/docs/user-guide/commands/argocd_app_sync.md b/docs/user-guide/commands/argocd_app_sync.md index 8cb89b0c97483..0a59bc8229334 100644 --- a/docs/user-guide/commands/argocd_app_sync.md +++ b/docs/user-guide/commands/argocd_app_sync.md @@ -25,7 +25,8 @@ argocd app sync [APPNAME... | -l selector | --project project-name] [flags] argocd app sync -l 'app.kubernetes.io/instance notin (my-app,other-app)' # Sync a multi-source application for specific revision of specific sources - argocd app manifests my-app --revisions 0.0.1 --source-positions 1 --revisions 0.0.2 --source-positions 2 + argocd app sync my-app --revisions 0.0.1 --source-positions 1 --revisions 0.0.2 --source-positions 2 + argocd app sync my-app --revisions 0.0.1 --source-names my-chart --revisions 0.0.2 --source-names my-values # Sync a specific resource # Resource should be formatted as GROUP:KIND:NAME. If no GROUP is specified then :KIND:NAME @@ -67,6 +68,7 @@ argocd app sync [APPNAME... | -l selector | --project project-name] [flags] --revisions stringArray Show manifests at specific revisions for source position in source-positions -l, --selector string Sync apps that match this label. Supports '=', '==', '!=', in, notin, exists & not exists. Matching apps must satisfy all of the specified label constraints. --server-side Use server-side apply while syncing the application + --source-names stringArray List of source names. Default is an empty array. --source-positions int64Slice List of source positions. Default is empty array. Counting start at 1. (default []) --strategy string Sync strategy (one of: apply|hook) --timeout uint Time out after this many seconds diff --git a/docs/user-guide/commands/argocd_app_unset.md b/docs/user-guide/commands/argocd_app_unset.md index 10b4846341d40..a4ff76356539c 100644 --- a/docs/user-guide/commands/argocd_app_unset.md +++ b/docs/user-guide/commands/argocd_app_unset.md @@ -20,6 +20,9 @@ argocd app unset APPNAME parameters [flags] # Unset kustomize override suffix for source at position 1 under spec.sources of app my-app. source-position starts at 1. argocd app unset my-app --source-position 1 --namesuffix + # Unset kustomize override suffix for source named "test" under spec.sources of app my-app. + argocd app unset my-app --source-name test --namesuffix + # Unset parameter override argocd app unset my-app -p COMPONENT=PARAM ``` diff --git a/manifests/core-install.yaml b/manifests/core-install.yaml index c5714d95fc1eb..5566652a5f3d7 100644 --- a/manifests/core-install.yaml +++ b/manifests/core-install.yaml @@ -460,6 +460,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -832,6 +836,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -1314,6 +1322,10 @@ spec: use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -1676,6 +1688,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -2204,6 +2220,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -2579,6 +2599,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -3103,6 +3127,11 @@ spec: Kustomize to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and + is displayed in the UI. It is used in multi-source + Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced @@ -3497,6 +3526,11 @@ spec: of Kustomize to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and + is displayed in the UI. It is used in multi-source + Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications @@ -4001,6 +4035,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -4387,6 +4425,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced @@ -4917,6 +4959,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -5303,6 +5349,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced @@ -5739,6 +5789,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -5971,6 +6023,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -6367,6 +6421,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -6599,6 +6655,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -6994,6 +7052,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -7226,6 +7286,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -7601,6 +7663,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -7833,6 +7897,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -8233,6 +8299,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -8465,6 +8533,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -8861,6 +8931,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -9093,6 +9165,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -9488,6 +9562,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -9720,6 +9796,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10095,6 +10173,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10327,6 +10407,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10710,6 +10792,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10942,6 +11026,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -11544,6 +11630,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -11776,6 +11864,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -12373,6 +12463,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -12605,6 +12697,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -12997,6 +13091,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -13229,6 +13325,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -13631,6 +13729,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -13863,6 +13963,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -14259,6 +14361,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -14491,6 +14595,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -14886,6 +14992,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -15118,6 +15226,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -15493,6 +15603,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -15725,6 +15837,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -16108,6 +16222,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -16340,6 +16456,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -16942,6 +17060,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -17174,6 +17294,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -17771,6 +17893,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -18003,6 +18127,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -18399,6 +18525,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -18631,6 +18759,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -19013,6 +19143,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -19245,6 +19377,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -19847,6 +19981,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -20079,6 +20215,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -20676,6 +20814,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -20908,6 +21048,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -21375,6 +21517,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -21607,6 +21751,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: diff --git a/manifests/crds/application-crd.yaml b/manifests/crds/application-crd.yaml index 1f08621786eeb..fa052fa83ca7a 100644 --- a/manifests/crds/application-crd.yaml +++ b/manifests/crds/application-crd.yaml @@ -459,6 +459,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -831,6 +835,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -1313,6 +1321,10 @@ spec: use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -1675,6 +1687,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -2203,6 +2219,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -2578,6 +2598,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -3102,6 +3126,11 @@ spec: Kustomize to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and + is displayed in the UI. It is used in multi-source + Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced @@ -3496,6 +3525,11 @@ spec: of Kustomize to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and + is displayed in the UI. It is used in multi-source + Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications @@ -4000,6 +4034,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -4386,6 +4424,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced @@ -4916,6 +4958,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -5302,6 +5348,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced diff --git a/manifests/crds/applicationset-crd.yaml b/manifests/crds/applicationset-crd.yaml index b9a8c84e0620d..46f12a9f6a735 100644 --- a/manifests/crds/applicationset-crd.yaml +++ b/manifests/crds/applicationset-crd.yaml @@ -331,6 +331,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -563,6 +565,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -959,6 +963,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -1191,6 +1197,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -1586,6 +1594,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -1818,6 +1828,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -2193,6 +2205,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -2425,6 +2439,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -2825,6 +2841,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -3057,6 +3075,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -3453,6 +3473,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -3685,6 +3707,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -4080,6 +4104,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -4312,6 +4338,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -4687,6 +4715,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -4919,6 +4949,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -5302,6 +5334,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -5534,6 +5568,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -6136,6 +6172,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -6368,6 +6406,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -6965,6 +7005,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -7197,6 +7239,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -7589,6 +7633,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -7821,6 +7867,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -8223,6 +8271,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -8455,6 +8505,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -8851,6 +8903,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -9083,6 +9137,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -9478,6 +9534,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -9710,6 +9768,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10085,6 +10145,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10317,6 +10379,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10700,6 +10764,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10932,6 +10998,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -11534,6 +11602,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -11766,6 +11836,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -12363,6 +12435,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -12595,6 +12669,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -12991,6 +13067,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -13223,6 +13301,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -13605,6 +13685,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -13837,6 +13919,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -14439,6 +14523,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -14671,6 +14757,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -15268,6 +15356,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -15500,6 +15590,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -15967,6 +16059,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -16199,6 +16293,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: diff --git a/manifests/ha/install.yaml b/manifests/ha/install.yaml index aa71c208ed4cc..27c6dad079abf 100644 --- a/manifests/ha/install.yaml +++ b/manifests/ha/install.yaml @@ -460,6 +460,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -832,6 +836,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -1314,6 +1322,10 @@ spec: use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -1676,6 +1688,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -2204,6 +2220,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -2579,6 +2599,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -3103,6 +3127,11 @@ spec: Kustomize to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and + is displayed in the UI. It is used in multi-source + Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced @@ -3497,6 +3526,11 @@ spec: of Kustomize to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and + is displayed in the UI. It is used in multi-source + Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications @@ -4001,6 +4035,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -4387,6 +4425,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced @@ -4917,6 +4959,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -5303,6 +5349,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced @@ -5739,6 +5789,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -5971,6 +6023,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -6367,6 +6421,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -6599,6 +6655,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -6994,6 +7052,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -7226,6 +7286,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -7601,6 +7663,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -7833,6 +7897,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -8233,6 +8299,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -8465,6 +8533,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -8861,6 +8931,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -9093,6 +9165,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -9488,6 +9562,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -9720,6 +9796,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10095,6 +10173,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10327,6 +10407,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10710,6 +10792,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10942,6 +11026,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -11544,6 +11630,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -11776,6 +11864,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -12373,6 +12463,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -12605,6 +12697,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -12997,6 +13091,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -13229,6 +13325,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -13631,6 +13729,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -13863,6 +13963,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -14259,6 +14361,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -14491,6 +14595,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -14886,6 +14992,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -15118,6 +15226,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -15493,6 +15603,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -15725,6 +15837,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -16108,6 +16222,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -16340,6 +16456,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -16942,6 +17060,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -17174,6 +17294,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -17771,6 +17893,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -18003,6 +18127,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -18399,6 +18525,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -18631,6 +18759,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -19013,6 +19143,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -19245,6 +19377,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -19847,6 +19981,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -20079,6 +20215,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -20676,6 +20814,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -20908,6 +21048,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -21375,6 +21517,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -21607,6 +21751,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: diff --git a/manifests/install.yaml b/manifests/install.yaml index 70db9f4a37e9f..cb0091139af2c 100644 --- a/manifests/install.yaml +++ b/manifests/install.yaml @@ -460,6 +460,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -832,6 +836,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -1314,6 +1322,10 @@ spec: use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -1676,6 +1688,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -2204,6 +2220,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is displayed + in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -2579,6 +2599,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -3103,6 +3127,11 @@ spec: Kustomize to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and + is displayed in the UI. It is used in multi-source + Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced @@ -3497,6 +3526,11 @@ spec: of Kustomize to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and + is displayed in the UI. It is used in multi-source + Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications @@ -4001,6 +4035,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -4387,6 +4425,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced @@ -4917,6 +4959,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced from Git. @@ -5303,6 +5349,10 @@ spec: to use for rendering manifests type: string type: object + name: + description: Name is used to refer to a source and is + displayed in the UI. It is used in multi-source Applications. + type: string path: description: Path is a directory path within the Git repository, and is only valid for applications sourced @@ -5739,6 +5789,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -5971,6 +6023,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -6367,6 +6421,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -6599,6 +6655,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -6994,6 +7052,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -7226,6 +7286,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -7601,6 +7663,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -7833,6 +7897,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -8233,6 +8299,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -8465,6 +8533,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -8861,6 +8931,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -9093,6 +9165,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -9488,6 +9562,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -9720,6 +9796,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10095,6 +10173,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10327,6 +10407,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10710,6 +10792,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -10942,6 +11026,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -11544,6 +11630,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -11776,6 +11864,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -12373,6 +12463,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -12605,6 +12697,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -12997,6 +13091,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -13229,6 +13325,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -13631,6 +13729,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -13863,6 +13963,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -14259,6 +14361,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -14491,6 +14595,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -14886,6 +14992,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -15118,6 +15226,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -15493,6 +15603,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -15725,6 +15837,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -16108,6 +16222,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -16340,6 +16456,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -16942,6 +17060,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -17174,6 +17294,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -17771,6 +17893,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -18003,6 +18127,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -18399,6 +18525,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -18631,6 +18759,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -19013,6 +19143,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -19245,6 +19377,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -19847,6 +19981,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -20079,6 +20215,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -20676,6 +20814,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -20908,6 +21048,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -21375,6 +21517,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: @@ -21607,6 +21751,8 @@ spec: version: type: string type: object + name: + type: string path: type: string plugin: diff --git a/pkg/apis/application/v1alpha1/generated.pb.go b/pkg/apis/application/v1alpha1/generated.pb.go index 3f31bf6dacd21..929dcb1e0c6c8 100644 --- a/pkg/apis/application/v1alpha1/generated.pb.go +++ b/pkg/apis/application/v1alpha1/generated.pb.go @@ -4593,7 +4593,7 @@ func init() { } var fileDescriptor_030104ce3b95bcac = []byte{ - // 11491 bytes of a gzipped FileDescriptorProto + // 11498 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6f, 0x70, 0x1c, 0xc9, 0x75, 0x18, 0xae, 0xd9, 0xc5, 0x02, 0xbb, 0x0f, 0xff, 0x88, 0x26, 0x79, 0x87, 0xa3, 0x78, 0x07, 0x7a, 0x4e, 0x3e, 0x9d, 0x7f, 0xba, 0x03, 0x7c, 0xf4, 0x9d, 0x7c, 0x3f, 0x9d, 0x25, 0x19, 0x7f, @@ -4770,549 +4770,549 @@ var fileDescriptor_030104ce3b95bcac = []byte{ 0x32, 0xcf, 0x26, 0x84, 0xd3, 0x66, 0xe0, 0x1e, 0x39, 0x6d, 0x52, 0x6e, 0xa8, 0x6a, 0xe1, 0x6e, 0x28, 0xfb, 0x53, 0x1d, 0x9e, 0xfb, 0xb5, 0x88, 0x10, 0x14, 0x42, 0x25, 0x08, 0xeb, 0x44, 0xda, 0xb8, 0x97, 0x8b, 0x31, 0xd8, 0xae, 0x86, 0x75, 0x23, 0x5c, 0x9c, 0xfe, 0x8b, 0x31, 0xe7, 0x63, - 0xdf, 0xae, 0x40, 0xca, 0x9c, 0xe4, 0xdf, 0xfd, 0xc7, 0x60, 0x20, 0x22, 0xad, 0xf0, 0x1a, 0x5e, - 0x14, 0xba, 0x4c, 0x67, 0x94, 0xf0, 0x66, 0x2c, 0xe1, 0x54, 0xe7, 0xb5, 0x9c, 0x64, 0x53, 0x28, - 0x33, 0xa5, 0xf3, 0x56, 0x9c, 0x64, 0x13, 0x33, 0x08, 0x7a, 0x0f, 0x8c, 0x24, 0xa9, 0xa3, 0x70, - 0x71, 0xe4, 0xfb, 0x90, 0xc0, 0x1d, 0x49, 0x1f, 0x94, 0xe3, 0x0c, 0x36, 0x7a, 0x15, 0xfa, 0x36, - 0x89, 0xdf, 0x14, 0x9f, 0x7e, 0xb5, 0x38, 0x5d, 0xc3, 0xde, 0xf5, 0x12, 0xf1, 0x9b, 0x5c, 0x12, - 0xd2, 0x5f, 0x98, 0xb1, 0xa2, 0xf3, 0xbe, 0xb6, 0xd5, 0x8e, 0x93, 0xb0, 0xe9, 0xbd, 0x26, 0x3d, - 0x9d, 0xef, 0x2b, 0x98, 0xf1, 0x15, 0x49, 0x9f, 0xbb, 0x94, 0xd4, 0x5f, 0xac, 0x39, 0xb3, 0x7e, - 0xd4, 0xbd, 0x88, 0x4d, 0x99, 0x5d, 0xe1, 0xb0, 0x2c, 0xba, 0x1f, 0x73, 0x92, 0x3e, 0xef, 0x87, - 0xfa, 0x8b, 0x35, 0x67, 0xb4, 0xab, 0xd6, 0xdf, 0x20, 0xeb, 0xc3, 0xb5, 0x82, 0xfb, 0xc0, 0xd7, - 0x5e, 0xee, 0x3a, 0x7c, 0x1c, 0x2a, 0xee, 0xa6, 0x13, 0x25, 0xe3, 0x43, 0x6c, 0xd2, 0xa8, 0x59, - 0x3c, 0x4b, 0x1b, 0x31, 0x87, 0xa1, 0x47, 0xa1, 0x1c, 0x91, 0x0d, 0x16, 0x9d, 0x6c, 0xc4, 0x45, - 0x61, 0xb2, 0x81, 0x69, 0xbb, 0xfd, 0xab, 0xa5, 0xb4, 0xd9, 0x96, 0x7e, 0x6f, 0x3e, 0xdb, 0xdd, - 0x76, 0x14, 0x4b, 0xf7, 0x97, 0x31, 0xdb, 0x59, 0x33, 0x96, 0x70, 0xf4, 0x71, 0x0b, 0x06, 0x6e, - 0xc6, 0x61, 0x10, 0x90, 0x44, 0xa8, 0xc8, 0xeb, 0x05, 0x0f, 0xc5, 0x65, 0x4e, 0x5d, 0xf7, 0x41, - 0x34, 0x60, 0xc9, 0x97, 0x76, 0x97, 0xec, 0xb8, 0x7e, 0xbb, 0xde, 0x11, 0xea, 0x72, 0x81, 0x37, - 0x63, 0x09, 0xa7, 0xa8, 0x5e, 0xc0, 0x51, 0xfb, 0xd2, 0xa8, 0x0b, 0x81, 0x40, 0x15, 0x70, 0xfb, - 0xfb, 0x03, 0x70, 0x3a, 0x77, 0x71, 0x50, 0x83, 0x8a, 0x99, 0x2c, 0x17, 0x3d, 0x9f, 0xc8, 0x20, - 0x2f, 0x66, 0x50, 0x5d, 0x57, 0xad, 0xd8, 0xc0, 0x40, 0x3f, 0x07, 0xd0, 0x72, 0x22, 0xa7, 0x49, - 0x94, 0x7b, 0xfa, 0xc8, 0x76, 0x0b, 0xed, 0xc7, 0x8a, 0xa4, 0xa9, 0xb7, 0xe8, 0xaa, 0x29, 0xc6, - 0x06, 0x4b, 0xf4, 0x1c, 0x0c, 0x46, 0xc4, 0x27, 0x4e, 0xcc, 0x82, 0xdb, 0xb3, 0x99, 0x3a, 0x58, - 0x83, 0xb0, 0x89, 0x87, 0x9e, 0x50, 0xf1, 0x70, 0x99, 0xb8, 0xa0, 0x74, 0x4c, 0x1c, 0x7a, 0xdd, - 0x82, 0x91, 0x0d, 0xcf, 0x27, 0x9a, 0xbb, 0xc8, 0xab, 0x59, 0x3e, 0xfa, 0x4b, 0x5e, 0x34, 0xe9, - 0x6a, 0x09, 0x99, 0x6a, 0x8e, 0x71, 0x86, 0x3d, 0xfd, 0xcc, 0xdb, 0x24, 0x62, 0xa2, 0xb5, 0x3f, - 0xfd, 0x99, 0xaf, 0xf3, 0x66, 0x2c, 0xe1, 0x68, 0x1a, 0x46, 0x5b, 0x4e, 0x1c, 0xcf, 0x46, 0xa4, - 0x4e, 0x82, 0xc4, 0x73, 0x7c, 0x9e, 0xf5, 0x52, 0xd5, 0xc1, 0xe2, 0x2b, 0x69, 0x30, 0xce, 0xe2, - 0xa3, 0xf7, 0xc3, 0xc3, 0xdc, 0xff, 0xb3, 0xe4, 0xc5, 0xb1, 0x17, 0x34, 0xf4, 0x34, 0x10, 0x6e, - 0xb0, 0x09, 0x41, 0xea, 0xe1, 0x85, 0x7c, 0x34, 0xdc, 0xed, 0x79, 0xf4, 0x14, 0x54, 0xe3, 0x2d, - 0xaf, 0x35, 0x1b, 0xd5, 0x63, 0x76, 0xf6, 0x53, 0xd5, 0x4e, 0xd7, 0x55, 0xd1, 0x8e, 0x15, 0x06, - 0x72, 0x61, 0x88, 0x7f, 0x12, 0x1e, 0xd0, 0x27, 0xe4, 0xe3, 0xd3, 0x5d, 0xd5, 0xb4, 0x48, 0xe2, - 0x9c, 0xc4, 0xce, 0xad, 0x0b, 0xf2, 0x24, 0x8a, 0x1f, 0x9c, 0x5c, 0x37, 0xc8, 0xe0, 0x14, 0xd1, - 0xf4, 0x8e, 0x6d, 0xb0, 0x87, 0x1d, 0xdb, 0x73, 0x30, 0xb8, 0xd5, 0x5e, 0x27, 0x62, 0xe4, 0x85, - 0xd8, 0x52, 0xb3, 0xef, 0x8a, 0x06, 0x61, 0x13, 0x8f, 0xc5, 0x52, 0xb6, 0x3c, 0xf1, 0x2f, 0x1e, - 0x1f, 0x36, 0x62, 0x29, 0x57, 0x16, 0x64, 0x33, 0x36, 0x71, 0x68, 0xd7, 0xe8, 0x58, 0xac, 0x91, - 0x98, 0xa5, 0x4a, 0xd0, 0xe1, 0x52, 0x5d, 0x5b, 0x95, 0x00, 0xac, 0x71, 0xec, 0x5f, 0x2e, 0xa5, - 0xbd, 0x18, 0xa6, 0xc0, 0x41, 0x31, 0x15, 0x2b, 0xc9, 0x75, 0x27, 0x92, 0xc6, 0xc7, 0x11, 0x13, - 0x8d, 0x04, 0xdd, 0xeb, 0x4e, 0x64, 0x0a, 0x28, 0xc6, 0x00, 0x4b, 0x4e, 0xe8, 0x26, 0xf4, 0x25, - 0xbe, 0x53, 0x50, 0x66, 0xa2, 0xc1, 0x51, 0x3b, 0x95, 0x16, 0xa7, 0x63, 0xcc, 0x78, 0xa0, 0xb3, - 0x74, 0x27, 0xb5, 0x2e, 0x4f, 0xbd, 0xc4, 0xe6, 0x67, 0x3d, 0xc6, 0xac, 0xd5, 0xfe, 0xb3, 0xc1, - 0x1c, 0x1d, 0xa1, 0x94, 0x32, 0x3a, 0x0f, 0x40, 0x3f, 0xf1, 0x4a, 0x44, 0x36, 0xbc, 0x1d, 0x61, - 0x14, 0x29, 0x39, 0x74, 0x55, 0x41, 0xb0, 0x81, 0x25, 0x9f, 0x59, 0x6d, 0x6f, 0xd0, 0x67, 0x4a, - 0x9d, 0xcf, 0x70, 0x08, 0x36, 0xb0, 0xd0, 0xb3, 0xd0, 0xef, 0x35, 0x9d, 0x86, 0x0a, 0xca, 0x3d, - 0x4b, 0x05, 0xd0, 0x02, 0x6b, 0xb9, 0xb3, 0x37, 0x31, 0xa2, 0x3a, 0xc4, 0x9a, 0xb0, 0xc0, 0x45, - 0xbf, 0x6e, 0xc1, 0x90, 0x1b, 0x36, 0x9b, 0x61, 0xc0, 0xb7, 0xb2, 0x62, 0x5f, 0x7e, 0xf3, 0xb8, - 0x4c, 0x96, 0xc9, 0x59, 0x83, 0x19, 0xdf, 0x98, 0xab, 0x14, 0x4a, 0x13, 0x84, 0x53, 0xbd, 0x32, - 0xe5, 0x54, 0xe5, 0x00, 0x39, 0xf5, 0x1b, 0x16, 0x8c, 0xf1, 0x67, 0x8d, 0x1d, 0xb6, 0xc8, 0x16, - 0x0c, 0x8f, 0xf9, 0xb5, 0x3a, 0x9c, 0x0e, 0xca, 0xf1, 0xda, 0x01, 0xc7, 0x9d, 0x9d, 0x44, 0xf3, - 0x30, 0xb6, 0x11, 0x46, 0x2e, 0x31, 0x07, 0x42, 0x08, 0x59, 0x45, 0xe8, 0x62, 0x16, 0x01, 0x77, - 0x3e, 0x83, 0xae, 0xc3, 0x43, 0x46, 0xa3, 0x39, 0x0e, 0x5c, 0xce, 0x3e, 0x26, 0xa8, 0x3d, 0x74, - 0x31, 0x17, 0x0b, 0x77, 0x79, 0x3a, 0x2d, 0xd2, 0x6a, 0x3d, 0x88, 0xb4, 0x57, 0xe0, 0x11, 0xb7, - 0x73, 0x64, 0xb6, 0xe3, 0xf6, 0x7a, 0xcc, 0xa5, 0x6e, 0x75, 0xe6, 0x47, 0x04, 0x81, 0x47, 0x66, - 0xbb, 0x21, 0xe2, 0xee, 0x34, 0xd0, 0x87, 0xa1, 0x1a, 0x11, 0xf6, 0x55, 0x62, 0x91, 0x3a, 0x77, - 0x44, 0xcf, 0x83, 0xb6, 0xa6, 0x39, 0x59, 0xad, 0x47, 0x44, 0x43, 0x8c, 0x15, 0x47, 0x74, 0x0b, - 0x06, 0x5a, 0x4e, 0xe2, 0x6e, 0x8a, 0x84, 0xb9, 0x23, 0xfb, 0xc9, 0x15, 0x73, 0x76, 0xac, 0x61, - 0xa4, 0xd8, 0x73, 0x26, 0x58, 0x72, 0xa3, 0x96, 0x95, 0x1b, 0x36, 0x5b, 0x61, 0x40, 0x82, 0x44, - 0x8a, 0xfc, 0x11, 0x7e, 0xf6, 0x20, 0x5b, 0xb1, 0x81, 0x81, 0x56, 0xe0, 0x14, 0xf3, 0xc3, 0xdd, - 0xf0, 0x92, 0xcd, 0xb0, 0x9d, 0xc8, 0x6d, 0xa5, 0x90, 0xfd, 0xea, 0xf4, 0x69, 0x31, 0x07, 0x07, - 0xe7, 0x3e, 0x99, 0x55, 0x56, 0xa3, 0x77, 0xa7, 0xac, 0x4e, 0x1c, 0xac, 0xac, 0xce, 0xbc, 0x17, - 0xc6, 0x3a, 0x84, 0xc6, 0xa1, 0x9c, 0x6d, 0x73, 0xf0, 0x50, 0xfe, 0xf2, 0x3c, 0x94, 0xcb, 0xed, - 0x9f, 0x67, 0x62, 0xae, 0x8d, 0xed, 0x47, 0x0f, 0xee, 0x5b, 0x07, 0xca, 0x24, 0xd8, 0x16, 0xda, - 0xea, 0xe2, 0xd1, 0x66, 0xc9, 0x85, 0x60, 0x9b, 0x4b, 0x17, 0xe6, 0xa3, 0xba, 0x10, 0x6c, 0x63, - 0x4a, 0x1b, 0x7d, 0xd1, 0x4a, 0x99, 0xcf, 0xdc, 0xe9, 0xfb, 0xc1, 0x63, 0xd9, 0x6f, 0xf5, 0x6c, - 0x51, 0xdb, 0xff, 0xbe, 0x04, 0xe7, 0x0e, 0x22, 0xd2, 0xc3, 0xf0, 0x3d, 0x0e, 0xfd, 0x31, 0x8b, - 0xa2, 0x10, 0xe2, 0x7f, 0x90, 0xae, 0x0a, 0x1e, 0x57, 0xf1, 0x0a, 0x16, 0x20, 0xe4, 0x43, 0xb9, - 0xe9, 0xb4, 0x84, 0x2f, 0x70, 0xe1, 0xa8, 0xb9, 0x69, 0xf4, 0xbf, 0xe3, 0x2f, 0x39, 0x2d, 0x3e, - 0x3d, 0x8d, 0x06, 0x4c, 0xd9, 0xa0, 0x04, 0x2a, 0x4e, 0x14, 0x39, 0xf2, 0xc8, 0xfe, 0x4a, 0x31, - 0xfc, 0xa6, 0x29, 0x49, 0x7e, 0xe2, 0x99, 0x6a, 0xc2, 0x9c, 0x99, 0xfd, 0xd9, 0x81, 0x54, 0x22, - 0x13, 0x8b, 0xc3, 0x88, 0xa1, 0x5f, 0xb8, 0x00, 0xad, 0xa2, 0x53, 0x02, 0x79, 0xa6, 0x30, 0xdb, - 0x5d, 0x8b, 0x7a, 0x0b, 0x82, 0x15, 0xfa, 0x8c, 0xc5, 0xaa, 0x1a, 0xc8, 0xec, 0x30, 0xb1, 0xa7, - 0x3d, 0x9e, 0x22, 0x0b, 0x66, 0xad, 0x04, 0xd9, 0x88, 0x4d, 0xee, 0xa2, 0x3a, 0x09, 0xb3, 0xe5, - 0x3b, 0xab, 0x93, 0x30, 0xdb, 0x5c, 0xc2, 0xd1, 0x4e, 0x4e, 0xbc, 0x45, 0x01, 0x99, 0xf1, 0x3d, - 0x44, 0x58, 0x7c, 0xd5, 0x82, 0x31, 0x2f, 0x7b, 0x70, 0x2e, 0x76, 0x80, 0x37, 0x8a, 0xf1, 0xd7, - 0x75, 0x9e, 0xcb, 0x2b, 0xc3, 0xa1, 0x03, 0x84, 0x3b, 0x3b, 0x83, 0xea, 0xd0, 0xe7, 0x05, 0x1b, - 0xa1, 0x30, 0x97, 0x66, 0x8e, 0xd6, 0xa9, 0x85, 0x60, 0x23, 0xd4, 0xab, 0x99, 0xfe, 0xc3, 0x8c, - 0x3a, 0x5a, 0x84, 0x53, 0x32, 0x97, 0xe5, 0x92, 0x17, 0x27, 0x61, 0xb4, 0xbb, 0xe8, 0x35, 0xbd, - 0x84, 0x99, 0x3a, 0xe5, 0x99, 0x71, 0xaa, 0x89, 0x70, 0x0e, 0x1c, 0xe7, 0x3e, 0x85, 0x5e, 0x83, - 0x01, 0x79, 0x58, 0x5d, 0x2d, 0x62, 0x37, 0xdd, 0x39, 0xff, 0xd5, 0x64, 0x5a, 0x15, 0xa7, 0xd5, - 0x92, 0xa1, 0xfd, 0xfa, 0x20, 0x74, 0x9e, 0xa9, 0xa7, 0x0f, 0xd0, 0xad, 0x7b, 0x7d, 0x80, 0x4e, - 0xb7, 0x46, 0xb1, 0x3e, 0xfb, 0x2e, 0x60, 0x6e, 0x0b, 0xae, 0xfa, 0x5c, 0x73, 0x37, 0x70, 0x31, - 0xe3, 0x81, 0x22, 0xe8, 0xdf, 0x24, 0x8e, 0x9f, 0x6c, 0x16, 0x73, 0x04, 0x73, 0x89, 0xd1, 0xca, - 0x26, 0xa0, 0xf1, 0x56, 0x2c, 0x38, 0xa1, 0x1d, 0x18, 0xd8, 0xe4, 0x13, 0x40, 0xec, 0x56, 0x96, - 0x8e, 0x3a, 0xb8, 0xa9, 0x59, 0xa5, 0x3f, 0xb7, 0x68, 0xc0, 0x92, 0x1d, 0x0b, 0xd6, 0x32, 0xc2, - 0x49, 0xf8, 0xd2, 0x2d, 0x2e, 0xf7, 0xae, 0xf7, 0x58, 0x92, 0x0f, 0xc1, 0x50, 0x44, 0xdc, 0x30, - 0x70, 0x3d, 0x9f, 0xd4, 0xa7, 0xe5, 0xf1, 0xca, 0x61, 0x52, 0xae, 0x98, 0xf7, 0x02, 0x1b, 0x34, - 0x70, 0x8a, 0x22, 0xfa, 0xb4, 0x05, 0x23, 0x2a, 0x0d, 0x9b, 0x7e, 0x10, 0x22, 0xdc, 0xe8, 0x8b, - 0x05, 0x25, 0x7d, 0x33, 0x9a, 0x33, 0xe8, 0xf6, 0xde, 0xc4, 0x48, 0xba, 0x0d, 0x67, 0xf8, 0xa2, - 0x97, 0x00, 0xc2, 0x75, 0x1e, 0x91, 0x35, 0x9d, 0x08, 0x9f, 0xfa, 0x61, 0x5e, 0x75, 0x84, 0xa7, - 0x6e, 0x4a, 0x0a, 0xd8, 0xa0, 0x86, 0xae, 0x00, 0xf0, 0x65, 0xb3, 0xb6, 0xdb, 0x92, 0x5b, 0x1a, - 0x99, 0x33, 0x07, 0xab, 0x0a, 0x72, 0x67, 0x6f, 0xa2, 0xd3, 0xc7, 0xc9, 0xc2, 0x4e, 0x8c, 0xc7, - 0xd1, 0xcf, 0xc2, 0x40, 0xdc, 0x6e, 0x36, 0x1d, 0xe5, 0x71, 0x2f, 0x30, 0x19, 0x94, 0xd3, 0x35, - 0x44, 0x11, 0x6f, 0xc0, 0x92, 0x23, 0xba, 0x49, 0x85, 0x6a, 0x2c, 0x9c, 0xaf, 0x6c, 0x15, 0x71, - 0x9b, 0x80, 0x7b, 0x9e, 0xde, 0x29, 0x4d, 0x7c, 0x9c, 0x83, 0x73, 0x67, 0x6f, 0xe2, 0xa1, 0x74, - 0xfb, 0x62, 0x28, 0xd2, 0x33, 0x73, 0x69, 0xa2, 0xcb, 0xb2, 0x2a, 0x13, 0x7d, 0x6d, 0x59, 0x2c, - 0xe4, 0x49, 0x5d, 0x95, 0x89, 0x35, 0x77, 0x1f, 0x33, 0xf3, 0x61, 0xb4, 0x04, 0x27, 0xdd, 0x30, - 0x48, 0xa2, 0xd0, 0xf7, 0x79, 0x55, 0x32, 0xbe, 0xbb, 0xe4, 0x1e, 0xf9, 0xb7, 0x8a, 0x6e, 0x9f, - 0x9c, 0xed, 0x44, 0xc1, 0x79, 0xcf, 0xd9, 0x41, 0xfa, 0x74, 0x4c, 0x0c, 0xce, 0xb3, 0x30, 0x44, - 0x76, 0x12, 0x12, 0x05, 0x8e, 0x7f, 0x0d, 0x2f, 0x4a, 0x5f, 0x34, 0x5b, 0x03, 0x17, 0x8c, 0x76, - 0x9c, 0xc2, 0x42, 0xb6, 0x72, 0xa9, 0x18, 0x29, 0xc7, 0xdc, 0xa5, 0x22, 0x1d, 0x28, 0xf6, 0x37, - 0xca, 0x29, 0x83, 0xec, 0xbe, 0x9c, 0xc5, 0xb1, 0xda, 0x36, 0xb2, 0x08, 0x10, 0x03, 0x88, 0x8d, - 0x46, 0x91, 0x9c, 0x55, 0x6d, 0x9b, 0x65, 0x93, 0x11, 0x4e, 0xf3, 0x45, 0x5b, 0x50, 0xd9, 0x0c, - 0xe3, 0x44, 0x6e, 0x3f, 0x8e, 0xb8, 0xd3, 0xb9, 0x14, 0xc6, 0x09, 0xb3, 0x22, 0xd4, 0x6b, 0xd3, - 0x96, 0x18, 0x73, 0x1e, 0x74, 0x0f, 0x1a, 0x6f, 0x3a, 0x51, 0x3d, 0x9e, 0x65, 0x05, 0x02, 0xfa, - 0x98, 0xf9, 0xa0, 0x8c, 0xc5, 0x55, 0x0d, 0xc2, 0x26, 0x9e, 0xfd, 0xe7, 0x56, 0xea, 0xc0, 0xe2, - 0x06, 0x8b, 0xf6, 0xde, 0x26, 0x01, 0x95, 0x06, 0x66, 0x7c, 0xd9, 0x4f, 0x66, 0x72, 0x67, 0xdf, - 0xde, 0xad, 0x56, 0xdf, 0x2d, 0x4a, 0x61, 0x92, 0x91, 0x30, 0x42, 0xd1, 0x3e, 0x66, 0xa5, 0x93, - 0xa0, 0x4b, 0x45, 0xec, 0x4b, 0xcc, 0x42, 0x00, 0x07, 0xe6, 0x53, 0xdb, 0x5f, 0xb4, 0x60, 0x60, - 0xc6, 0x71, 0xb7, 0xc2, 0x8d, 0x0d, 0xf4, 0x14, 0x54, 0xeb, 0xed, 0xc8, 0xcc, 0xc7, 0x56, 0x9e, - 0x8d, 0x39, 0xd1, 0x8e, 0x15, 0x06, 0x9d, 0xfa, 0x1b, 0x8e, 0x2b, 0xcb, 0x01, 0x94, 0xf9, 0xd4, - 0xbf, 0xc8, 0x5a, 0xb0, 0x80, 0xd0, 0xe1, 0x6f, 0x3a, 0x3b, 0xf2, 0xe1, 0xec, 0x69, 0xc9, 0x92, - 0x06, 0x61, 0x13, 0xcf, 0xfe, 0xd7, 0x16, 0x8c, 0xcf, 0x38, 0xb1, 0xe7, 0x4e, 0xb7, 0x93, 0xcd, - 0x19, 0x2f, 0x59, 0x6f, 0xbb, 0x5b, 0x24, 0xe1, 0x65, 0x23, 0x68, 0x2f, 0xdb, 0x31, 0x5d, 0x81, - 0x6a, 0x3b, 0xa8, 0x7a, 0x79, 0x4d, 0xb4, 0x63, 0x85, 0x81, 0x5e, 0x83, 0xc1, 0x96, 0x13, 0xc7, - 0xb7, 0xc2, 0xa8, 0x8e, 0xc9, 0x46, 0x31, 0x85, 0x65, 0x56, 0x89, 0x1b, 0x91, 0x04, 0x93, 0x0d, - 0x11, 0x59, 0xa0, 0xe9, 0x63, 0x93, 0x99, 0xfd, 0x4b, 0x16, 0x9c, 0x9a, 0x21, 0x4e, 0x44, 0x22, - 0x56, 0x87, 0x46, 0xbd, 0x08, 0x7a, 0x15, 0xaa, 0x09, 0x6d, 0xa1, 0x3d, 0xb2, 0x8a, 0xed, 0x11, - 0x8b, 0x09, 0x58, 0x13, 0xc4, 0xb1, 0x62, 0x63, 0x7f, 0xde, 0x82, 0x47, 0xf2, 0xfa, 0x32, 0xeb, - 0x87, 0xed, 0xfa, 0xfd, 0xe8, 0xd0, 0xdf, 0xb1, 0x60, 0x88, 0x9d, 0xb3, 0xce, 0x91, 0xc4, 0xf1, - 0xfc, 0x8e, 0x1a, 0x78, 0x56, 0x8f, 0x35, 0xf0, 0xce, 0x41, 0xdf, 0x66, 0xd8, 0x24, 0xd9, 0x18, - 0x81, 0x4b, 0x61, 0x93, 0x60, 0x06, 0x41, 0xcf, 0xd0, 0x49, 0xe8, 0x05, 0x89, 0x43, 0x97, 0xa3, - 0xf4, 0x7d, 0x8f, 0xf2, 0x09, 0xa8, 0x9a, 0xb1, 0x89, 0x63, 0xff, 0xab, 0x1a, 0x0c, 0x88, 0x80, - 0x96, 0x9e, 0xcb, 0x98, 0x48, 0x17, 0x45, 0xa9, 0xab, 0x8b, 0x22, 0x86, 0x7e, 0x97, 0x15, 0xe3, - 0x14, 0x96, 0xf0, 0x95, 0x42, 0x22, 0xa0, 0x78, 0x7d, 0x4f, 0xdd, 0x2d, 0xfe, 0x1f, 0x0b, 0x56, - 0xe8, 0x0b, 0x16, 0x8c, 0xba, 0x61, 0x10, 0x10, 0x57, 0x9b, 0x69, 0x7d, 0x45, 0x04, 0xba, 0xcc, - 0xa6, 0x89, 0xea, 0x43, 0xbe, 0x0c, 0x00, 0x67, 0xd9, 0xa3, 0x17, 0x60, 0x98, 0x8f, 0xd9, 0xf5, - 0x94, 0xc3, 0x5e, 0x97, 0x46, 0x33, 0x81, 0x38, 0x8d, 0x8b, 0x26, 0xf9, 0xc1, 0x87, 0x28, 0x42, - 0xd6, 0xaf, 0xfd, 0x9a, 0x46, 0xf9, 0x31, 0x03, 0x03, 0x45, 0x80, 0x22, 0xb2, 0x11, 0x91, 0x78, - 0x53, 0x04, 0xfc, 0x30, 0x13, 0x71, 0xe0, 0xee, 0x0a, 0x10, 0xe0, 0x0e, 0x4a, 0x38, 0x87, 0x3a, - 0xda, 0x12, 0x7b, 0xe4, 0x6a, 0x11, 0xf2, 0x5c, 0x7c, 0xe6, 0xae, 0x5b, 0xe5, 0x09, 0xa8, 0x30, - 0xd5, 0xc5, 0x4c, 0xd3, 0x32, 0x4f, 0x7a, 0x63, 0x8a, 0x0d, 0xf3, 0x76, 0x34, 0x07, 0x27, 0x32, - 0x85, 0xdd, 0x62, 0xe1, 0x58, 0x57, 0x09, 0x4e, 0x99, 0x92, 0x70, 0x31, 0xee, 0x78, 0xc2, 0xf4, - 0x9f, 0x0c, 0x1e, 0xe0, 0x3f, 0xd9, 0x55, 0x61, 0xa5, 0xdc, 0xe5, 0xfd, 0x62, 0x21, 0x03, 0xd0, - 0x53, 0x0c, 0xe9, 0xe7, 0x32, 0x31, 0xa4, 0xc3, 0xac, 0x03, 0xd7, 0x8b, 0xe9, 0xc0, 0xe1, 0x03, - 0x46, 0xef, 0x67, 0x00, 0xe8, 0xff, 0xb2, 0x40, 0x7e, 0xd7, 0x59, 0xc7, 0xdd, 0x24, 0x74, 0xca, - 0xa0, 0xf7, 0xc0, 0x88, 0xf2, 0x02, 0x70, 0x93, 0xc8, 0x62, 0xb3, 0x46, 0x45, 0x03, 0xe0, 0x14, - 0x14, 0x67, 0xb0, 0xd1, 0x14, 0xd4, 0xe8, 0x38, 0xf1, 0x47, 0xb9, 0xde, 0x57, 0x9e, 0x86, 0xe9, - 0x95, 0x05, 0xf1, 0x94, 0xc6, 0x41, 0x21, 0x8c, 0xf9, 0x4e, 0x9c, 0xb0, 0x1e, 0xac, 0xee, 0x06, - 0xee, 0x5d, 0x96, 0xff, 0x60, 0x59, 0x34, 0x8b, 0x59, 0x42, 0xb8, 0x93, 0xb6, 0xfd, 0x1f, 0x2a, - 0x30, 0x9c, 0x92, 0x8c, 0x87, 0x34, 0x18, 0x9e, 0x82, 0xaa, 0xd4, 0xe1, 0xd9, 0x3a, 0x47, 0x4a, - 0xd1, 0x2b, 0x0c, 0xaa, 0xb4, 0xd6, 0xb5, 0x56, 0xcd, 0x1a, 0x38, 0x86, 0xc2, 0xc5, 0x26, 0x1e, - 0x13, 0xca, 0x89, 0x1f, 0xcf, 0xfa, 0x1e, 0x09, 0x12, 0xde, 0xcd, 0x62, 0x84, 0xf2, 0xda, 0xe2, - 0xaa, 0x49, 0x54, 0x0b, 0xe5, 0x0c, 0x00, 0x67, 0xd9, 0xa3, 0x4f, 0x5a, 0x30, 0xec, 0xdc, 0x8a, - 0x75, 0xc5, 0x68, 0x11, 0x2d, 0x7a, 0x44, 0x25, 0x95, 0x2a, 0x42, 0xcd, 0xbd, 0xd6, 0xa9, 0x26, - 0x9c, 0x66, 0x8a, 0xde, 0xb0, 0x00, 0x91, 0x1d, 0xe2, 0xca, 0x78, 0x56, 0xd1, 0x97, 0xfe, 0x22, - 0x36, 0xcb, 0x17, 0x3a, 0xe8, 0x72, 0xa9, 0xde, 0xd9, 0x8e, 0x73, 0xfa, 0x80, 0x2e, 0x03, 0xaa, - 0x7b, 0xb1, 0xb3, 0xee, 0x93, 0xd9, 0xb0, 0x29, 0x33, 0x3f, 0xc5, 0xe1, 0xeb, 0x19, 0x31, 0xce, - 0x68, 0xae, 0x03, 0x03, 0xe7, 0x3c, 0xc5, 0x66, 0x59, 0x14, 0xee, 0xec, 0x5e, 0x8b, 0x7c, 0xa6, - 0x25, 0xcc, 0x59, 0x26, 0xda, 0xb1, 0xc2, 0xb0, 0xff, 0xa2, 0xac, 0x96, 0xb2, 0x0e, 0xde, 0x76, - 0x8c, 0x20, 0x52, 0xeb, 0xee, 0x83, 0x48, 0x75, 0x10, 0x4c, 0x67, 0x3e, 0x73, 0x2a, 0xfd, 0xb1, - 0x74, 0x9f, 0xd2, 0x1f, 0x7f, 0xde, 0x4a, 0xd5, 0x12, 0x1b, 0x3c, 0xff, 0x52, 0xb1, 0x81, 0xe3, - 0x93, 0x3c, 0x40, 0x27, 0xa3, 0x57, 0x32, 0x71, 0x59, 0x4f, 0x41, 0x75, 0xc3, 0x77, 0x58, 0x05, - 0x0c, 0xb6, 0x50, 0x8d, 0xe0, 0xa1, 0x8b, 0xa2, 0x1d, 0x2b, 0x0c, 0x2a, 0xf5, 0x0d, 0xa2, 0x87, - 0x92, 0xda, 0xff, 0xa9, 0x0c, 0x83, 0x86, 0xc6, 0xcf, 0x35, 0xdf, 0xac, 0x07, 0xcc, 0x7c, 0x2b, - 0x1d, 0xc2, 0x7c, 0xfb, 0x39, 0xa8, 0xb9, 0x52, 0x1b, 0x15, 0x53, 0x1b, 0x3d, 0xab, 0xe3, 0xb4, - 0x42, 0x52, 0x4d, 0x58, 0xf3, 0x44, 0xf3, 0xa9, 0x14, 0xbb, 0x94, 0x5f, 0x20, 0x2f, 0x07, 0x4e, - 0x68, 0xb4, 0xce, 0x67, 0xb2, 0xe7, 0xd4, 0x95, 0x83, 0xcf, 0xa9, 0xed, 0xef, 0x58, 0xea, 0xe3, - 0xde, 0x83, 0x5a, 0x2a, 0x37, 0xd3, 0xb5, 0x54, 0x2e, 0x14, 0x32, 0xcc, 0x5d, 0x8a, 0xa8, 0x5c, - 0x85, 0x81, 0xd9, 0xb0, 0xd9, 0x74, 0x82, 0x3a, 0xfa, 0x51, 0x18, 0x70, 0xf9, 0x4f, 0xe1, 0x43, - 0x63, 0x27, 0xb1, 0x02, 0x8a, 0x25, 0x0c, 0x9d, 0x85, 0x3e, 0x27, 0x6a, 0x48, 0xbf, 0x19, 0x8b, - 0x98, 0x9a, 0x8e, 0x1a, 0x31, 0x66, 0xad, 0xf6, 0x3f, 0xeb, 0x03, 0x16, 0xa8, 0xe0, 0x44, 0xa4, - 0xbe, 0x16, 0xb2, 0x92, 0xa6, 0xc7, 0x7a, 0x7e, 0xa9, 0x37, 0x75, 0x0f, 0xf2, 0x19, 0xa6, 0x71, - 0x8e, 0x55, 0xbe, 0xc7, 0xe7, 0x58, 0x5d, 0x8e, 0x26, 0xfb, 0x1e, 0xa0, 0xa3, 0x49, 0xfb, 0xb3, - 0x16, 0x20, 0x15, 0xdd, 0xa2, 0x63, 0x07, 0xa6, 0xa0, 0xa6, 0xe2, 0x5c, 0x84, 0x01, 0xa8, 0x45, - 0x84, 0x04, 0x60, 0x8d, 0xd3, 0xc3, 0x4e, 0xfe, 0x71, 0x29, 0xbf, 0xcb, 0xe9, 0xc0, 0x71, 0x26, - 0xf5, 0x85, 0x38, 0xb7, 0x7f, 0xb7, 0x04, 0x0f, 0x71, 0xd3, 0x61, 0xc9, 0x09, 0x9c, 0x06, 0x69, - 0xd2, 0x5e, 0xf5, 0x1a, 0x0d, 0xe2, 0xd2, 0x2d, 0xa4, 0x27, 0x03, 0xc1, 0x8f, 0xba, 0x76, 0xf9, - 0x9a, 0xe3, 0xab, 0x6c, 0x21, 0xf0, 0x12, 0xcc, 0x88, 0xa3, 0x18, 0xaa, 0xf2, 0xe2, 0x10, 0x21, - 0x8b, 0x0b, 0x62, 0xa4, 0xc4, 0x92, 0xd0, 0xb2, 0x04, 0x2b, 0x46, 0x54, 0x95, 0xfa, 0xa1, 0xbb, - 0x85, 0x49, 0x2b, 0xcc, 0xaa, 0xd2, 0x45, 0xd1, 0x8e, 0x15, 0x86, 0xdd, 0x84, 0x51, 0x39, 0x86, - 0xad, 0x2b, 0x64, 0x17, 0x93, 0x0d, 0xaa, 0x7f, 0x5c, 0xd9, 0x64, 0xdc, 0x65, 0xa2, 0xf4, 0xcf, - 0xac, 0x09, 0xc4, 0x69, 0x5c, 0x59, 0xe5, 0xb4, 0x94, 0x5f, 0xe5, 0xd4, 0xfe, 0x5d, 0x0b, 0xb2, - 0x0a, 0xd0, 0xa8, 0xe9, 0x68, 0xed, 0x5b, 0xd3, 0xf1, 0x10, 0x55, 0x11, 0x7f, 0x06, 0x06, 0x9d, - 0x84, 0x5a, 0x38, 0xdc, 0x1b, 0x51, 0xbe, 0xbb, 0x03, 0xab, 0xa5, 0xb0, 0xee, 0x6d, 0x78, 0xcc, - 0x0b, 0x61, 0x92, 0xb3, 0xff, 0xaa, 0x0f, 0xc6, 0x3a, 0xb2, 0xb4, 0xd0, 0xf3, 0x30, 0xa4, 0x86, - 0x42, 0xfa, 0xf9, 0x6a, 0x66, 0x68, 0xa5, 0x86, 0xe1, 0x14, 0x66, 0x0f, 0xeb, 0x61, 0x01, 0x4e, - 0x46, 0xe4, 0xd5, 0x36, 0x69, 0x93, 0xe9, 0x8d, 0x84, 0x44, 0xab, 0xc4, 0x0d, 0x83, 0x3a, 0xaf, - 0x3c, 0x5a, 0x9e, 0x79, 0xf8, 0xf6, 0xde, 0xc4, 0x49, 0xdc, 0x09, 0xc6, 0x79, 0xcf, 0xa0, 0x16, - 0x0c, 0xfb, 0xa6, 0x81, 0x2a, 0xf6, 0x45, 0x77, 0x65, 0xdb, 0xaa, 0x29, 0x91, 0x6a, 0xc6, 0x69, - 0x06, 0x69, 0x2b, 0xb7, 0x72, 0x9f, 0xac, 0xdc, 0x4f, 0x68, 0x2b, 0x97, 0x47, 0x56, 0x7c, 0xa0, - 0xe0, 0x2c, 0xbd, 0x5e, 0xcc, 0xdc, 0xa3, 0x18, 0xae, 0x2f, 0x42, 0x55, 0x46, 0x9d, 0xf5, 0x14, - 0xad, 0x65, 0xd2, 0xe9, 0x22, 0x40, 0x9f, 0x80, 0xb7, 0x5d, 0x88, 0x22, 0x63, 0x30, 0xaf, 0x86, - 0xc9, 0xb4, 0xef, 0x87, 0xb7, 0xa8, 0x4d, 0x70, 0x2d, 0x26, 0xc2, 0xf1, 0x64, 0xdf, 0x29, 0x41, - 0xce, 0x1e, 0x8e, 0xae, 0x47, 0x6d, 0x88, 0xa4, 0xd6, 0xe3, 0xe1, 0x8c, 0x11, 0xb4, 0xc3, 0x23, - 0xf3, 0xb8, 0xca, 0x7d, 0x7f, 0xd1, 0x7b, 0x50, 0x1d, 0xac, 0xa7, 0xc4, 0x91, 0x0a, 0xd8, 0x3b, - 0x0f, 0xa0, 0xed, 0x47, 0x91, 0x3a, 0xa2, 0x0e, 0xfe, 0xb5, 0x99, 0x89, 0x0d, 0x2c, 0xf4, 0x1c, - 0x0c, 0x7a, 0x41, 0x9c, 0x38, 0xbe, 0x7f, 0xc9, 0x0b, 0x12, 0xe1, 0x5b, 0x55, 0xb6, 0xc5, 0x82, - 0x06, 0x61, 0x13, 0xef, 0xcc, 0x3b, 0x8d, 0xef, 0x77, 0x98, 0xef, 0xbe, 0x09, 0x8f, 0xcc, 0x7b, - 0x89, 0x4a, 0x78, 0x52, 0xf3, 0x8d, 0x9a, 0x87, 0x2a, 0x81, 0xcf, 0xea, 0x9a, 0xc0, 0x67, 0x24, - 0x1c, 0x95, 0xd2, 0xf9, 0x51, 0xd9, 0x84, 0x23, 0xfb, 0x79, 0x38, 0x35, 0xef, 0x25, 0x17, 0x3d, - 0x9f, 0x1c, 0x92, 0x89, 0xfd, 0x3b, 0xfd, 0x30, 0x64, 0xa6, 0xee, 0x1e, 0x26, 0x07, 0xf1, 0xf3, - 0xd4, 0x02, 0x14, 0x6f, 0xe7, 0xa9, 0x63, 0xd3, 0x1b, 0x47, 0xce, 0x23, 0xce, 0x1f, 0x31, 0xc3, - 0x08, 0xd4, 0x3c, 0xb1, 0xd9, 0x01, 0x74, 0x0b, 0x2a, 0x1b, 0x2c, 0x21, 0xa6, 0x5c, 0x44, 0x6c, - 0x49, 0xde, 0x88, 0xea, 0xe5, 0xc8, 0x53, 0x6a, 0x38, 0x3f, 0xaa, 0xb8, 0xa3, 0x74, 0x96, 0xa5, - 0x11, 0xf8, 0x2c, 0xf2, 0x2b, 0x15, 0x46, 0x37, 0x95, 0x50, 0xb9, 0x0b, 0x95, 0x90, 0x12, 0xd0, - 0xfd, 0xf7, 0x49, 0x40, 0xb3, 0xe4, 0xa6, 0x64, 0x93, 0x99, 0x95, 0x22, 0x53, 0x63, 0x80, 0x0d, - 0x82, 0x91, 0xdc, 0x94, 0x02, 0xe3, 0x2c, 0x3e, 0xfa, 0xa8, 0x12, 0xf1, 0xd5, 0x22, 0xdc, 0xd2, - 0xe6, 0x8c, 0x3e, 0x6e, 0xe9, 0xfe, 0xd9, 0x12, 0x8c, 0xcc, 0x07, 0xed, 0x95, 0xf9, 0x95, 0xf6, - 0xba, 0xef, 0xb9, 0x57, 0xc8, 0x2e, 0x15, 0xe1, 0x5b, 0x64, 0x77, 0x61, 0x4e, 0xac, 0x20, 0x35, - 0x67, 0xae, 0xd0, 0x46, 0xcc, 0x61, 0x54, 0x18, 0x6d, 0x78, 0x41, 0x83, 0x44, 0xad, 0xc8, 0x13, - 0x1e, 0x63, 0x43, 0x18, 0x5d, 0xd4, 0x20, 0x6c, 0xe2, 0x51, 0xda, 0xe1, 0xad, 0x80, 0x44, 0x59, - 0xfb, 0x7a, 0x99, 0x36, 0x62, 0x0e, 0xa3, 0x48, 0x49, 0xd4, 0x16, 0x0e, 0x19, 0x03, 0x69, 0x8d, - 0x36, 0x62, 0x0e, 0xa3, 0x2b, 0x3d, 0x6e, 0xaf, 0xb3, 0xd0, 0x9d, 0x4c, 0x5a, 0xc8, 0x2a, 0x6f, - 0xc6, 0x12, 0x4e, 0x51, 0xb7, 0xc8, 0xee, 0x1c, 0xdd, 0x8c, 0x67, 0x32, 0xdd, 0xae, 0xf0, 0x66, - 0x2c, 0xe1, 0xac, 0x36, 0x6a, 0x7a, 0x38, 0x7e, 0xe0, 0x6a, 0xa3, 0xa6, 0xbb, 0xdf, 0x65, 0x5b, - 0xff, 0x6b, 0x16, 0x0c, 0x99, 0x01, 0x77, 0xa8, 0x91, 0xb1, 0x85, 0x97, 0x3b, 0x4a, 0x6b, 0xbf, - 0x3b, 0xef, 0xda, 0xc9, 0x86, 0x97, 0x84, 0xad, 0xf8, 0x69, 0x12, 0x34, 0xbc, 0x80, 0xb0, 0x80, - 0x08, 0x1e, 0xa8, 0x97, 0x8a, 0xe6, 0x9b, 0x0d, 0xeb, 0xe4, 0x2e, 0x8c, 0x69, 0xfb, 0x06, 0x8c, - 0x75, 0xa4, 0x37, 0xf6, 0x60, 0x82, 0x1c, 0x98, 0x5c, 0x6e, 0x63, 0x18, 0xa4, 0x84, 0x65, 0x7d, - 0xae, 0x59, 0x18, 0xe3, 0x0b, 0x89, 0x72, 0x5a, 0x75, 0x37, 0x49, 0x53, 0xa5, 0xac, 0xb2, 0xe3, - 0x89, 0xeb, 0x59, 0x20, 0xee, 0xc4, 0xb7, 0x3f, 0x67, 0xc1, 0x70, 0x2a, 0xe3, 0xb4, 0x20, 0x63, - 0x89, 0xad, 0xb4, 0x90, 0xc5, 0x7f, 0xb2, 0x20, 0xf8, 0x32, 0x53, 0xa6, 0x7a, 0xa5, 0x69, 0x10, - 0x36, 0xf1, 0xec, 0x2f, 0x96, 0xa0, 0x2a, 0x63, 0x68, 0x7a, 0xe8, 0xca, 0x67, 0x2c, 0x18, 0x56, - 0x47, 0x42, 0xcc, 0x87, 0x57, 0x2a, 0x22, 0xa5, 0x86, 0xf6, 0x40, 0x79, 0x01, 0x82, 0x8d, 0x50, - 0x5b, 0xee, 0xd8, 0x64, 0x86, 0xd3, 0xbc, 0xd1, 0x75, 0x80, 0x78, 0x37, 0x4e, 0x48, 0xd3, 0xf0, - 0x26, 0xda, 0xc6, 0x8a, 0x9b, 0x74, 0xc3, 0x88, 0xd0, 0xf5, 0x75, 0x35, 0xac, 0x93, 0x55, 0x85, - 0xa9, 0x4d, 0x28, 0xdd, 0x86, 0x0d, 0x4a, 0xf6, 0x3f, 0x29, 0xc1, 0x89, 0x6c, 0x97, 0xd0, 0x07, - 0x60, 0x48, 0x72, 0x37, 0x76, 0x9d, 0x32, 0x02, 0x68, 0x08, 0x1b, 0xb0, 0x3b, 0x7b, 0x13, 0x13, - 0x9d, 0x57, 0x98, 0x4e, 0x9a, 0x28, 0x38, 0x45, 0x8c, 0x9f, 0xcb, 0x89, 0x03, 0xe4, 0x99, 0xdd, - 0xe9, 0x56, 0x4b, 0x1c, 0xae, 0x19, 0xe7, 0x72, 0x26, 0x14, 0x67, 0xb0, 0xd1, 0x0a, 0x9c, 0x32, - 0x5a, 0xae, 0x12, 0xaf, 0xb1, 0xb9, 0x1e, 0x46, 0x72, 0x07, 0x76, 0x56, 0x87, 0xf6, 0x75, 0xe2, - 0xe0, 0xdc, 0x27, 0xa9, 0xb6, 0x77, 0x9d, 0x96, 0xe3, 0x7a, 0xc9, 0xae, 0x70, 0x8f, 0x2a, 0xd9, - 0x34, 0x2b, 0xda, 0xb1, 0xc2, 0xb0, 0x97, 0xa0, 0xaf, 0xc7, 0x19, 0xd4, 0x93, 0xe5, 0xff, 0x22, - 0x54, 0x29, 0x39, 0x69, 0xde, 0x15, 0x41, 0x32, 0x84, 0xaa, 0xbc, 0x10, 0x0a, 0xd9, 0x50, 0xf6, - 0x1c, 0x79, 0xf4, 0xa9, 0x5e, 0x6b, 0x21, 0x8e, 0xdb, 0x6c, 0x33, 0x4d, 0x81, 0xe8, 0x71, 0x28, - 0x93, 0x9d, 0x56, 0xf6, 0x8c, 0xf3, 0xc2, 0x4e, 0xcb, 0x8b, 0x48, 0x4c, 0x91, 0xc8, 0x4e, 0x0b, - 0x9d, 0x81, 0x92, 0x57, 0x17, 0x4a, 0x0a, 0x04, 0x4e, 0x69, 0x61, 0x0e, 0x97, 0xbc, 0xba, 0xbd, - 0x03, 0x35, 0x75, 0x03, 0x15, 0xda, 0x92, 0xb2, 0xdb, 0x2a, 0x22, 0xe8, 0x4d, 0xd2, 0xed, 0x22, - 0xb5, 0xdb, 0x00, 0x3a, 0x5d, 0xb5, 0x28, 0xf9, 0x72, 0x0e, 0xfa, 0xdc, 0x50, 0x94, 0x05, 0xa8, - 0x6a, 0x32, 0x4c, 0x68, 0x33, 0x88, 0x7d, 0x03, 0x46, 0xae, 0x04, 0xe1, 0x2d, 0x76, 0x51, 0x04, - 0xab, 0x8b, 0x48, 0x09, 0x6f, 0xd0, 0x1f, 0x59, 0x13, 0x81, 0x41, 0x31, 0x87, 0xa9, 0x8a, 0x6d, - 0xa5, 0x6e, 0x15, 0xdb, 0xec, 0x8f, 0x59, 0x30, 0xa4, 0xf2, 0xde, 0xe6, 0xb7, 0xb7, 0x28, 0xdd, - 0x46, 0x14, 0xb6, 0x5b, 0x59, 0xba, 0xec, 0xb2, 0x3b, 0xcc, 0x61, 0x66, 0x42, 0x68, 0xe9, 0x80, - 0x84, 0xd0, 0x73, 0xd0, 0xb7, 0xe5, 0x05, 0xf5, 0xec, 0xa5, 0x47, 0x57, 0xbc, 0xa0, 0x8e, 0x19, - 0x84, 0x76, 0xe1, 0x84, 0xea, 0x82, 0x54, 0x08, 0xcf, 0xc3, 0xd0, 0x7a, 0xdb, 0xf3, 0xeb, 0xb2, - 0xe0, 0x63, 0xc6, 0xa3, 0x32, 0x63, 0xc0, 0x70, 0x0a, 0x93, 0xee, 0xeb, 0xd6, 0xbd, 0xc0, 0x89, - 0x76, 0x57, 0xb4, 0x06, 0x52, 0x42, 0x69, 0x46, 0x41, 0xb0, 0x81, 0x65, 0xbf, 0x5e, 0x86, 0x91, - 0x74, 0xf6, 0x5f, 0x0f, 0xdb, 0xab, 0xc7, 0xa1, 0xc2, 0x12, 0x02, 0xb3, 0x9f, 0x96, 0xd7, 0x48, - 0xe4, 0x30, 0x14, 0x43, 0x3f, 0x2f, 0x8b, 0x52, 0xcc, 0x85, 0x61, 0xaa, 0x93, 0xca, 0x0f, 0xc3, - 0x42, 0x03, 0x45, 0x25, 0x16, 0xc1, 0x0a, 0x7d, 0xd2, 0x82, 0x81, 0xb0, 0x65, 0x56, 0xfa, 0x7a, - 0x7f, 0x91, 0x99, 0x91, 0x22, 0x5d, 0x4a, 0x58, 0xc4, 0xea, 0xd3, 0xcb, 0xcf, 0x21, 0x59, 0x9f, - 0x79, 0x17, 0x0c, 0x99, 0x98, 0x07, 0x19, 0xc5, 0x55, 0xd3, 0x28, 0xfe, 0x8c, 0x39, 0x29, 0x44, - 0xee, 0x67, 0x0f, 0xcb, 0xed, 0x1a, 0x54, 0x5c, 0x15, 0x3f, 0x71, 0x57, 0x65, 0x82, 0x55, 0x9d, - 0x12, 0x76, 0x36, 0xc5, 0xa9, 0xd9, 0xdf, 0xb1, 0x8c, 0xf9, 0x81, 0x49, 0xbc, 0x50, 0x47, 0x11, - 0x94, 0x1b, 0xdb, 0x5b, 0xc2, 0x14, 0xbd, 0x5c, 0xd0, 0xf0, 0xce, 0x6f, 0x6f, 0xe9, 0x39, 0x6e, - 0xb6, 0x62, 0xca, 0xac, 0x07, 0x67, 0x61, 0x2a, 0x45, 0xb8, 0x7c, 0x70, 0x8a, 0xb0, 0xfd, 0x46, - 0x09, 0xc6, 0x3a, 0x26, 0x15, 0x7a, 0x0d, 0x2a, 0x11, 0x7d, 0x4b, 0xf1, 0x7a, 0x8b, 0x85, 0x25, - 0xf5, 0xc6, 0x0b, 0x75, 0xad, 0x77, 0xd3, 0xed, 0x98, 0xb3, 0x44, 0x97, 0x01, 0xe9, 0x28, 0x1f, - 0xe5, 0xa9, 0xe4, 0xaf, 0xac, 0x42, 0x01, 0xa6, 0x3b, 0x30, 0x70, 0xce, 0x53, 0xe8, 0x85, 0xac, - 0xc3, 0xb3, 0x9c, 0x76, 0x67, 0xef, 0xe7, 0xbb, 0xb4, 0x7f, 0xab, 0x04, 0xc3, 0xa9, 0xc2, 0x6b, - 0xc8, 0x87, 0x2a, 0xf1, 0xd9, 0x59, 0x83, 0x54, 0x36, 0x47, 0x2d, 0xa3, 0xae, 0x14, 0xe4, 0x05, - 0x41, 0x17, 0x2b, 0x0e, 0x0f, 0x46, 0x84, 0xc0, 0xf3, 0x30, 0x24, 0x3b, 0xf4, 0x7e, 0xa7, 0xe9, - 0x8b, 0x01, 0x54, 0x73, 0xf4, 0x82, 0x01, 0xc3, 0x29, 0x4c, 0xfb, 0xf7, 0xca, 0x30, 0xce, 0x0f, - 0x67, 0xea, 0x6a, 0xe6, 0x2d, 0xc9, 0xfd, 0xd6, 0xdf, 0xd0, 0xe5, 0x11, 0xad, 0x22, 0xee, 0x0a, - 0xed, 0xc6, 0xa8, 0xa7, 0xc0, 0xb6, 0xaf, 0x64, 0x02, 0xdb, 0xb8, 0xd9, 0xdd, 0x38, 0xa6, 0x1e, - 0xfd, 0x60, 0x45, 0xba, 0xfd, 0xc3, 0x12, 0x8c, 0x66, 0xae, 0x84, 0x41, 0xaf, 0xa7, 0xab, 0x88, - 0x5b, 0x45, 0xf8, 0xd4, 0xf7, 0xbd, 0x25, 0xe4, 0x70, 0xb5, 0xc4, 0xef, 0xd3, 0x52, 0xb1, 0xbf, - 0x5d, 0x82, 0x91, 0xf4, 0x5d, 0x36, 0x0f, 0xe0, 0x48, 0xbd, 0x03, 0x6a, 0xec, 0xba, 0x06, 0x76, - 0x05, 0x33, 0x77, 0xc9, 0xf3, 0xca, 0xf8, 0xb2, 0x11, 0x6b, 0xf8, 0x03, 0x51, 0xa2, 0xdd, 0xfe, - 0xc7, 0x16, 0x9c, 0xe6, 0x6f, 0x99, 0x9d, 0x87, 0x7f, 0x33, 0x6f, 0x74, 0x5f, 0x2e, 0xb6, 0x83, - 0x99, 0xb2, 0x9e, 0x07, 0x8d, 0x2f, 0xbb, 0x31, 0x55, 0xf4, 0x36, 0x3d, 0x15, 0x1e, 0xc0, 0xce, - 0x1e, 0x6a, 0x32, 0xd8, 0xdf, 0x2e, 0x83, 0xbe, 0x24, 0x16, 0x79, 0x22, 0xcb, 0xb5, 0x90, 0xf2, - 0xa6, 0xab, 0xbb, 0x81, 0xab, 0xaf, 0xa3, 0xad, 0x66, 0x92, 0x5c, 0x7f, 0xd1, 0x82, 0x41, 0x2f, - 0xf0, 0x12, 0xcf, 0x61, 0xdb, 0xe8, 0x62, 0x6e, 0x7a, 0x54, 0xec, 0x16, 0x38, 0xe5, 0x30, 0x32, - 0xcf, 0x71, 0x14, 0x33, 0x6c, 0x72, 0x46, 0x1f, 0x12, 0xb1, 0xe7, 0xe5, 0xc2, 0xf2, 0xb3, 0xab, - 0x99, 0x80, 0xf3, 0x16, 0x35, 0xbc, 0x92, 0xa8, 0xa0, 0xb2, 0x06, 0x98, 0x92, 0x52, 0x95, 0xb2, - 0x95, 0x69, 0xcb, 0x9a, 0x31, 0x67, 0x64, 0xc7, 0x80, 0x3a, 0xc7, 0xe2, 0x90, 0x71, 0xbd, 0x53, - 0x50, 0x73, 0xda, 0x49, 0xd8, 0xa4, 0xc3, 0x24, 0x8e, 0x9a, 0x74, 0xe4, 0xb2, 0x04, 0x60, 0x8d, - 0x63, 0xbf, 0x5e, 0x81, 0x4c, 0xda, 0x29, 0xda, 0x31, 0x2f, 0x38, 0xb6, 0x8a, 0xbd, 0xe0, 0x58, - 0x75, 0x26, 0xef, 0x92, 0x63, 0xd4, 0x80, 0x4a, 0x6b, 0xd3, 0x89, 0xa5, 0x59, 0xfd, 0xa2, 0xda, - 0xc7, 0xd1, 0xc6, 0x3b, 0x7b, 0x13, 0x3f, 0xdd, 0x9b, 0xd7, 0x95, 0xce, 0xd5, 0x29, 0x5e, 0x2a, - 0x47, 0xb3, 0x66, 0x34, 0x30, 0xa7, 0x7f, 0x98, 0xbb, 0x2e, 0x3f, 0x2e, 0xee, 0xa5, 0xc0, 0x24, - 0x6e, 0xfb, 0x89, 0x98, 0x0d, 0x2f, 0x16, 0xb8, 0xca, 0x38, 0x61, 0x5d, 0x30, 0x81, 0xff, 0xc7, - 0x06, 0x53, 0xf4, 0x01, 0xa8, 0xc5, 0x89, 0x13, 0x25, 0x77, 0x99, 0xe2, 0xac, 0x4b, 0x9a, 0x49, - 0x22, 0x58, 0xd3, 0x43, 0x2f, 0xb1, 0x6a, 0xcf, 0x5e, 0xbc, 0x79, 0x97, 0x29, 0x23, 0xb2, 0x32, - 0xb4, 0xa0, 0x80, 0x0d, 0x6a, 0xe8, 0x3c, 0x00, 0x9b, 0xdb, 0x3c, 0xfe, 0xb0, 0xca, 0xbc, 0x4c, - 0x4a, 0x14, 0x62, 0x05, 0xc1, 0x06, 0x96, 0xfd, 0xe3, 0x90, 0xae, 0xf8, 0x81, 0x26, 0x64, 0x81, - 0x11, 0xee, 0x85, 0x66, 0xa9, 0x1f, 0xa9, 0x5a, 0x20, 0xbf, 0x61, 0x81, 0x59, 0x96, 0x04, 0xbd, - 0xca, 0xeb, 0x9f, 0x58, 0x45, 0x9c, 0x1c, 0x1a, 0x74, 0x27, 0x97, 0x9c, 0x56, 0xe6, 0x08, 0x5b, - 0x16, 0x41, 0x39, 0xf3, 0x4e, 0xa8, 0x4a, 0xe8, 0xa1, 0x8c, 0xba, 0x8f, 0xc2, 0x49, 0x99, 0x46, - 0x2a, 0xfd, 0xa6, 0xe2, 0xd4, 0xe9, 0x60, 0xd7, 0x8f, 0xf4, 0xe7, 0x94, 0xba, 0xf9, 0x73, 0x7a, - 0xb8, 0xe6, 0xfa, 0x37, 0x2d, 0x38, 0x97, 0xed, 0x40, 0xbc, 0x14, 0x06, 0x5e, 0x12, 0x46, 0xab, - 0x24, 0x49, 0xbc, 0xa0, 0xc1, 0xca, 0xbe, 0xdd, 0x72, 0x22, 0x59, 0x86, 0x9f, 0x09, 0xca, 0x1b, - 0x4e, 0x14, 0x60, 0xd6, 0x8a, 0x76, 0xa1, 0x9f, 0x07, 0xa9, 0x09, 0x6b, 0xfd, 0x88, 0x6b, 0x23, - 0x67, 0x38, 0xf4, 0x76, 0x81, 0x07, 0xc8, 0x61, 0xc1, 0xd0, 0xfe, 0x9e, 0x05, 0x68, 0x79, 0x9b, - 0x44, 0x91, 0x57, 0x37, 0xc2, 0xea, 0xd8, 0xfd, 0x4e, 0xc6, 0x3d, 0x4e, 0x66, 0x92, 0x73, 0xe6, - 0x7e, 0x27, 0xe3, 0x5f, 0xfe, 0xfd, 0x4e, 0xa5, 0xc3, 0xdd, 0xef, 0x84, 0x96, 0xe1, 0x74, 0x93, - 0x6f, 0x37, 0xf8, 0x9d, 0x29, 0x7c, 0xef, 0xa1, 0xf2, 0xf1, 0x1e, 0xb9, 0xbd, 0x37, 0x71, 0x7a, - 0x29, 0x0f, 0x01, 0xe7, 0x3f, 0x67, 0xbf, 0x13, 0x10, 0x8f, 0xa6, 0x9b, 0xcd, 0x8b, 0x55, 0xea, - 0xea, 0x7e, 0xb1, 0xbf, 0x5c, 0x81, 0xd1, 0x4c, 0x91, 0x66, 0xba, 0xd5, 0xeb, 0x0c, 0x8e, 0x3a, - 0xb2, 0xfe, 0xee, 0xec, 0x5e, 0x4f, 0xe1, 0x56, 0x01, 0x54, 0xbc, 0xa0, 0xd5, 0x4e, 0x8a, 0x49, - 0x07, 0xe6, 0x9d, 0x58, 0xa0, 0x04, 0x0d, 0x77, 0x31, 0xfd, 0x8b, 0x39, 0x9b, 0x22, 0x83, 0xb7, - 0x52, 0xc6, 0x78, 0xdf, 0x7d, 0x72, 0x07, 0x7c, 0x5c, 0x87, 0x52, 0x55, 0x8a, 0x70, 0x2c, 0x66, - 0x26, 0xcb, 0x71, 0x1f, 0xb5, 0x7f, 0xa3, 0x04, 0x83, 0xc6, 0x47, 0x43, 0xbf, 0x9a, 0x2e, 0xda, - 0x65, 0x15, 0xf7, 0x4a, 0x8c, 0xfe, 0xa4, 0x2e, 0xcb, 0xc5, 0x5f, 0xe9, 0x89, 0xce, 0x7a, 0x5d, - 0x77, 0xf6, 0x26, 0x4e, 0x64, 0x2a, 0x72, 0xa5, 0x6a, 0x78, 0x9d, 0xf9, 0x08, 0x8c, 0x66, 0xc8, - 0xe4, 0xbc, 0xf2, 0x9a, 0xf9, 0xca, 0x47, 0x76, 0x4b, 0x99, 0x43, 0xf6, 0x75, 0x3a, 0x64, 0x22, - 0x0b, 0x31, 0xf4, 0x49, 0x0f, 0x3e, 0xd8, 0x4c, 0xb2, 0x71, 0xa9, 0xc7, 0x64, 0xe3, 0x27, 0xa1, - 0xda, 0x0a, 0x7d, 0xcf, 0xf5, 0x54, 0x0d, 0x4d, 0x96, 0xde, 0xbc, 0x22, 0xda, 0xb0, 0x82, 0xa2, - 0x5b, 0x50, 0xbb, 0x79, 0x2b, 0xe1, 0xa7, 0x3f, 0xc2, 0xbf, 0x5d, 0xd4, 0xa1, 0x8f, 0x32, 0x5a, - 0xd4, 0xf1, 0x12, 0xd6, 0xbc, 0x90, 0x0d, 0xfd, 0x4c, 0x09, 0xca, 0x8c, 0x04, 0xe6, 0x7b, 0x67, - 0xda, 0x31, 0xc6, 0x02, 0x62, 0x7f, 0xad, 0x06, 0xa7, 0xf2, 0x2a, 0xe5, 0xa3, 0x0f, 0x43, 0x3f, - 0xef, 0x63, 0x31, 0x97, 0xb1, 0xe4, 0xf1, 0x98, 0x67, 0x04, 0x45, 0xb7, 0xd8, 0x6f, 0x2c, 0x78, - 0x0a, 0xee, 0xbe, 0xb3, 0x2e, 0x66, 0xc8, 0xf1, 0x70, 0x5f, 0x74, 0x34, 0xf7, 0x45, 0x87, 0x73, - 0xf7, 0x9d, 0x75, 0xb4, 0x03, 0x95, 0x86, 0x97, 0x10, 0x47, 0x38, 0x11, 0x6e, 0x1c, 0x0b, 0x73, - 0xe2, 0x70, 0x2b, 0x8d, 0xfd, 0xc4, 0x9c, 0x21, 0xfa, 0xaa, 0x05, 0xa3, 0xeb, 0xe9, 0x2a, 0x07, - 0x42, 0x78, 0x3a, 0xc7, 0x70, 0x1b, 0x42, 0x9a, 0x11, 0xbf, 0xe0, 0x2c, 0xd3, 0x88, 0xb3, 0xdd, - 0x41, 0x9f, 0xb0, 0x60, 0x60, 0xc3, 0xf3, 0x8d, 0x82, 0xd4, 0xc7, 0xf0, 0x71, 0x2e, 0x32, 0x06, - 0x7a, 0xc7, 0xc1, 0xff, 0xc7, 0x58, 0x72, 0xee, 0xa6, 0xa9, 0xfa, 0x8f, 0xaa, 0xa9, 0x06, 0xee, - 0x93, 0xa6, 0xfa, 0xb4, 0x05, 0x35, 0x35, 0xd2, 0x22, 0x5b, 0xfc, 0x03, 0xc7, 0xf8, 0xc9, 0xb9, - 0xe7, 0x44, 0xfd, 0xc5, 0x9a, 0x39, 0xfa, 0x82, 0x05, 0x83, 0xce, 0x6b, 0xed, 0x88, 0xd4, 0xc9, - 0x76, 0xd8, 0x8a, 0xc5, 0xed, 0xa8, 0x2f, 0x17, 0xdf, 0x99, 0x69, 0xca, 0x64, 0x8e, 0x6c, 0x2f, - 0xb7, 0x62, 0x91, 0x2d, 0xa5, 0x1b, 0xb0, 0xd9, 0x05, 0x7b, 0xaf, 0x04, 0x13, 0x07, 0x50, 0x40, - 0xcf, 0xc3, 0x50, 0x18, 0x35, 0x9c, 0xc0, 0x7b, 0xcd, 0x2c, 0x5b, 0xa2, 0xac, 0xac, 0x65, 0x03, - 0x86, 0x53, 0x98, 0x66, 0x3e, 0x7b, 0xe9, 0x80, 0x7c, 0xf6, 0x73, 0xd0, 0x17, 0x91, 0x56, 0x98, - 0xdd, 0x2c, 0xb0, 0x4c, 0x05, 0x06, 0x41, 0x8f, 0x42, 0xd9, 0x69, 0x79, 0x22, 0x10, 0x4d, 0xed, - 0x81, 0xa6, 0x57, 0x16, 0x30, 0x6d, 0x4f, 0x95, 0xd7, 0xa8, 0xdc, 0x93, 0xf2, 0x1a, 0x54, 0x0d, - 0x88, 0xb3, 0x8b, 0x7e, 0xad, 0x06, 0xd2, 0x67, 0x0a, 0xf6, 0x1b, 0x65, 0x78, 0x74, 0xdf, 0xf9, - 0xa2, 0xe3, 0xf0, 0xac, 0x7d, 0xe2, 0xf0, 0xe4, 0xf0, 0x94, 0x0e, 0x1a, 0x9e, 0x72, 0x97, 0xe1, - 0xf9, 0x04, 0x5d, 0x06, 0xb2, 0xdc, 0x4b, 0x31, 0xf7, 0x5b, 0x76, 0xab, 0x1e, 0x23, 0x56, 0x80, - 0x84, 0x62, 0xcd, 0x97, 0xee, 0x01, 0x52, 0xb9, 0xdc, 0x95, 0x22, 0xd4, 0x40, 0xd7, 0x92, 0x2b, - 0x7c, 0xee, 0x77, 0x4b, 0x10, 0xb7, 0x7f, 0xbb, 0x0f, 0x1e, 0xef, 0x41, 0x7a, 0x9b, 0xb3, 0xd8, - 0xea, 0x71, 0x16, 0xff, 0x80, 0x7f, 0xa6, 0x4f, 0xe5, 0x7e, 0x26, 0x5c, 0xfc, 0x67, 0xda, 0xff, - 0x0b, 0xa1, 0xa7, 0xa0, 0xea, 0x05, 0x31, 0x71, 0xdb, 0x11, 0x8f, 0x49, 0x36, 0xd2, 0x98, 0x16, - 0x44, 0x3b, 0x56, 0x18, 0x74, 0x4f, 0xe7, 0x3a, 0x74, 0xf9, 0x0f, 0x14, 0x94, 0xbb, 0x6b, 0x66, - 0x44, 0x71, 0x93, 0x62, 0x76, 0x9a, 0x4a, 0x00, 0xce, 0xc6, 0xfe, 0x5b, 0x16, 0x9c, 0xe9, 0xae, - 0x62, 0xd1, 0x33, 0x30, 0xb8, 0x1e, 0x39, 0x81, 0xbb, 0xc9, 0x6e, 0x36, 0x96, 0x53, 0x87, 0xbd, - 0xaf, 0x6e, 0xc6, 0x26, 0x0e, 0x9a, 0x85, 0x31, 0x1e, 0xb9, 0x61, 0x60, 0xc8, 0xcc, 0xdf, 0xdb, - 0x7b, 0x13, 0x63, 0x6b, 0x59, 0x20, 0xee, 0xc4, 0xb7, 0xbf, 0x5f, 0xce, 0xef, 0x16, 0x37, 0xc5, - 0x0e, 0x33, 0x9b, 0xc5, 0x5c, 0x2d, 0xf5, 0x20, 0x71, 0xcb, 0xf7, 0x5a, 0xe2, 0xf6, 0x75, 0x93, - 0xb8, 0x68, 0x0e, 0x4e, 0x18, 0x57, 0x4f, 0xf1, 0x6c, 0x6e, 0x1e, 0x96, 0xac, 0x4a, 0xb1, 0xac, - 0x64, 0xe0, 0xb8, 0xe3, 0x89, 0x07, 0x7c, 0xea, 0xfd, 0x5a, 0x09, 0x1e, 0xe9, 0x6a, 0xfd, 0xde, - 0x23, 0x8d, 0x62, 0x7e, 0xfe, 0xbe, 0x7b, 0xf3, 0xf9, 0xcd, 0x8f, 0x52, 0x39, 0xe8, 0xa3, 0xd8, - 0x7f, 0x5c, 0xea, 0xba, 0x10, 0xe8, 0x4e, 0xe8, 0x87, 0x76, 0x94, 0x5e, 0x80, 0x61, 0xa7, 0xd5, - 0xe2, 0x78, 0x2c, 0x8a, 0x36, 0x53, 0xfa, 0x69, 0xda, 0x04, 0xe2, 0x34, 0x6e, 0x4f, 0x36, 0xcd, - 0x9f, 0x58, 0x50, 0xc3, 0x64, 0x83, 0x4b, 0x23, 0x74, 0x53, 0x0c, 0x91, 0x55, 0x44, 0x9d, 0x5b, - 0x3a, 0xb0, 0xb1, 0xc7, 0xea, 0xbf, 0xe6, 0x0d, 0x76, 0xe7, 0x55, 0x64, 0xa5, 0x43, 0x5d, 0x45, - 0xa6, 0x2e, 0xa3, 0x2a, 0x77, 0xbf, 0x8c, 0xca, 0xfe, 0xee, 0x00, 0x7d, 0xbd, 0x56, 0x38, 0x1b, - 0x91, 0x7a, 0x4c, 0xbf, 0x6f, 0x3b, 0xf2, 0xc5, 0x24, 0x51, 0xdf, 0xf7, 0x1a, 0x5e, 0xc4, 0xb4, - 0x3d, 0x75, 0x40, 0x56, 0x3a, 0x54, 0xe1, 0x9b, 0xf2, 0x81, 0x85, 0x6f, 0x5e, 0x80, 0xe1, 0x38, - 0xde, 0x5c, 0x89, 0xbc, 0x6d, 0x27, 0x21, 0x57, 0xc8, 0xae, 0xb0, 0x7d, 0x75, 0x11, 0x88, 0xd5, - 0x4b, 0x1a, 0x88, 0xd3, 0xb8, 0x68, 0x1e, 0xc6, 0x74, 0xf9, 0x19, 0x12, 0x25, 0x2c, 0xe7, 0x82, - 0xcf, 0x04, 0x95, 0xf1, 0xad, 0x0b, 0xd6, 0x08, 0x04, 0xdc, 0xf9, 0x0c, 0x95, 0xa7, 0xa9, 0x46, - 0xda, 0x91, 0xfe, 0xb4, 0x3c, 0x4d, 0xd1, 0xa1, 0x7d, 0xe9, 0x78, 0x02, 0x2d, 0xc1, 0x49, 0x3e, - 0x31, 0xa6, 0x5b, 0x2d, 0xe3, 0x8d, 0x06, 0xd2, 0xf5, 0x45, 0xe7, 0x3b, 0x51, 0x70, 0xde, 0x73, - 0xe8, 0x39, 0x18, 0x54, 0xcd, 0x0b, 0x73, 0xe2, 0x6c, 0x47, 0xf9, 0x96, 0x14, 0x99, 0x85, 0x3a, - 0x36, 0xf1, 0xd0, 0xfb, 0xe1, 0x61, 0xfd, 0x97, 0x27, 0xe6, 0xf1, 0x03, 0xcf, 0x39, 0x51, 0xd9, - 0x4b, 0x5d, 0x7d, 0x34, 0x9f, 0x8b, 0x56, 0xc7, 0xdd, 0x9e, 0x47, 0xeb, 0x70, 0x46, 0x81, 0x2e, - 0x04, 0x09, 0xcb, 0xb2, 0x89, 0xc9, 0x8c, 0x13, 0x93, 0x6b, 0x91, 0x2f, 0xae, 0xd0, 0x56, 0xb7, - 0xe3, 0xce, 0x7b, 0xc9, 0xa5, 0x3c, 0x4c, 0xbc, 0x88, 0xf7, 0xa1, 0x82, 0xa6, 0xa0, 0x46, 0x02, - 0x67, 0xdd, 0x27, 0xcb, 0xb3, 0x0b, 0xac, 0x42, 0x98, 0x71, 0xbe, 0x7a, 0x41, 0x02, 0xb0, 0xc6, - 0x51, 0x71, 0xbf, 0x43, 0x5d, 0x6f, 0x6a, 0x5e, 0x81, 0x53, 0x0d, 0xb7, 0x45, 0x2d, 0x42, 0xcf, - 0x25, 0xd3, 0x2e, 0x0b, 0x73, 0xa4, 0x1f, 0x86, 0x17, 0x7e, 0x55, 0x41, 0xed, 0xf3, 0xb3, 0x2b, - 0x1d, 0x38, 0x38, 0xf7, 0x49, 0x16, 0x0e, 0x1b, 0x85, 0x3b, 0xbb, 0xe3, 0x27, 0x33, 0xe1, 0xb0, - 0xb4, 0x11, 0x73, 0x18, 0xba, 0x0c, 0x88, 0x65, 0x48, 0x5c, 0x4a, 0x92, 0x96, 0x32, 0x41, 0xc7, - 0x4f, 0xa5, 0xeb, 0xfc, 0x5c, 0xec, 0xc0, 0xc0, 0x39, 0x4f, 0x51, 0x8b, 0x26, 0x08, 0x19, 0xf5, - 0xf1, 0x87, 0xd3, 0x16, 0xcd, 0x55, 0xde, 0x8c, 0x25, 0xdc, 0xfe, 0xcf, 0x16, 0x0c, 0xab, 0xa5, - 0x7d, 0x0f, 0xd2, 0x89, 0xfc, 0x74, 0x3a, 0xd1, 0xfc, 0xd1, 0x85, 0x23, 0xeb, 0x79, 0x97, 0x98, - 0xf4, 0x6f, 0x0c, 0x02, 0x68, 0x01, 0xaa, 0x74, 0x97, 0xd5, 0x55, 0x77, 0x3d, 0xb0, 0xc2, 0x2b, - 0xaf, 0x22, 0x4f, 0xe5, 0xfe, 0x56, 0xe4, 0x59, 0x85, 0xd3, 0xd2, 0xb2, 0xe0, 0x87, 0x7d, 0x97, - 0xc2, 0x58, 0xc9, 0xc2, 0xea, 0xcc, 0xa3, 0x82, 0xd0, 0xe9, 0x85, 0x3c, 0x24, 0x9c, 0xff, 0x6c, - 0xca, 0xa0, 0x19, 0x38, 0xd0, 0xca, 0x54, 0xcb, 0x7f, 0x71, 0x43, 0x5e, 0x21, 0x94, 0x59, 0xfe, - 0x8b, 0x17, 0x57, 0xb1, 0xc6, 0xc9, 0xd7, 0x01, 0xb5, 0x82, 0x74, 0x00, 0x1c, 0x5a, 0x07, 0x48, - 0x69, 0x34, 0xd8, 0x55, 0x1a, 0xc9, 0x43, 0x85, 0xa1, 0xae, 0x87, 0x0a, 0xef, 0x81, 0x11, 0x2f, - 0xd8, 0x24, 0x91, 0x97, 0x90, 0x3a, 0x5b, 0x0b, 0x4c, 0x52, 0x55, 0xb5, 0x05, 0xb0, 0x90, 0x82, - 0xe2, 0x0c, 0x76, 0x5a, 0x84, 0x8e, 0xf4, 0x20, 0x42, 0xbb, 0x28, 0xae, 0xd1, 0x62, 0x14, 0xd7, - 0x89, 0xa3, 0x2b, 0xae, 0xb1, 0x63, 0x55, 0x5c, 0xa8, 0x10, 0xc5, 0xd5, 0x93, 0x4e, 0x30, 0x76, - 0xa6, 0xa7, 0x0e, 0xd8, 0x99, 0x76, 0xd3, 0x5a, 0xa7, 0xef, 0x5a, 0x6b, 0xe5, 0x2b, 0xa4, 0x87, - 0x8e, 0x5b, 0x21, 0x7d, 0xba, 0x04, 0xa7, 0xb5, 0xc8, 0xa6, 0x0b, 0xc5, 0xdb, 0xa0, 0x42, 0x8b, - 0x5d, 0x58, 0xc7, 0xcf, 0xe8, 0x8c, 0x44, 0x38, 0x9d, 0x53, 0xa7, 0x20, 0xd8, 0xc0, 0x62, 0xf9, - 0x64, 0x24, 0x62, 0xd5, 0xaf, 0xb3, 0xf2, 0x7c, 0x56, 0xb4, 0x63, 0x85, 0x41, 0xa7, 0x22, 0xfd, - 0x2d, 0x72, 0x74, 0xb3, 0x75, 0x15, 0x67, 0x35, 0x08, 0x9b, 0x78, 0xe8, 0x49, 0xce, 0x84, 0xc9, - 0x12, 0x2a, 0xd3, 0x87, 0xc4, 0xad, 0xe0, 0x52, 0x7c, 0x28, 0xa8, 0xec, 0x0e, 0x4b, 0x1c, 0xac, - 0x74, 0x76, 0x87, 0x85, 0xbb, 0x29, 0x0c, 0xfb, 0x7f, 0x5a, 0xf0, 0x48, 0xee, 0x50, 0xdc, 0x03, - 0x3d, 0xbd, 0x93, 0xd6, 0xd3, 0xab, 0x45, 0x6d, 0x62, 0x8c, 0xb7, 0xe8, 0xa2, 0xb3, 0xff, 0xa3, - 0x05, 0x23, 0x1a, 0xff, 0x1e, 0xbc, 0xaa, 0x97, 0x7e, 0xd5, 0xe2, 0xf6, 0x6b, 0xb5, 0x8e, 0x77, - 0xfb, 0xbd, 0x12, 0xa8, 0x5a, 0xa7, 0xd3, 0xae, 0xac, 0x24, 0x7d, 0xc0, 0xa9, 0xf1, 0x2e, 0xf4, - 0xb3, 0x43, 0xef, 0xb8, 0x98, 0x80, 0x9e, 0x34, 0x7f, 0x76, 0x80, 0xae, 0x03, 0x0a, 0xd8, 0xdf, - 0x18, 0x0b, 0x86, 0xac, 0x36, 0x3b, 0x2f, 0x23, 0x59, 0x17, 0x29, 0x78, 0xba, 0x36, 0xbb, 0x68, - 0xc7, 0x0a, 0x83, 0x6a, 0x12, 0xcf, 0x0d, 0x83, 0x59, 0xdf, 0x89, 0xe5, 0x8d, 0xb3, 0x4a, 0x93, - 0x2c, 0x48, 0x00, 0xd6, 0x38, 0xec, 0x3c, 0xdc, 0x8b, 0x5b, 0xbe, 0xb3, 0x6b, 0xec, 0xca, 0x8d, - 0x5a, 0x14, 0x0a, 0x84, 0x4d, 0x3c, 0xbb, 0x09, 0xe3, 0xe9, 0x97, 0x98, 0x23, 0x1b, 0x2c, 0x18, - 0xb5, 0xa7, 0xe1, 0x9c, 0x82, 0x9a, 0xc3, 0x9e, 0x5a, 0x6c, 0x3b, 0x42, 0x26, 0xe8, 0x90, 0x4c, - 0x09, 0xc0, 0x1a, 0xc7, 0xfe, 0x47, 0x16, 0x9c, 0xcc, 0x19, 0xb4, 0x02, 0x53, 0x1c, 0x13, 0x2d, - 0x6d, 0xf2, 0x6c, 0x80, 0x1f, 0x83, 0x81, 0x3a, 0xd9, 0x70, 0x64, 0xb8, 0xa3, 0x21, 0x3d, 0xe7, - 0x78, 0x33, 0x96, 0x70, 0xfb, 0xb7, 0x4a, 0x30, 0x9a, 0xee, 0x6b, 0xcc, 0xd2, 0x86, 0xf8, 0x30, - 0x79, 0xb1, 0x1b, 0x6e, 0x93, 0x68, 0x97, 0xbe, 0xb9, 0x95, 0x49, 0x1b, 0xea, 0xc0, 0xc0, 0x39, - 0x4f, 0xb1, 0x4a, 0xc7, 0x75, 0x35, 0xda, 0x72, 0x46, 0x5e, 0x2f, 0x72, 0x46, 0xea, 0x8f, 0x69, - 0x86, 0x46, 0x28, 0x96, 0xd8, 0xe4, 0x4f, 0x6d, 0x11, 0x16, 0x87, 0x3d, 0xd3, 0xf6, 0xfc, 0xc4, - 0x0b, 0xc4, 0x2b, 0x8b, 0xb9, 0xaa, 0x6c, 0x91, 0xa5, 0x4e, 0x14, 0x9c, 0xf7, 0x9c, 0xfd, 0xbd, - 0x3e, 0x50, 0x29, 0xd5, 0x2c, 0x74, 0xad, 0xa0, 0xc0, 0xbf, 0xc3, 0x26, 0x9f, 0xa9, 0xb9, 0xd5, - 0xb7, 0x5f, 0x2c, 0x09, 0x77, 0xe5, 0x98, 0xfe, 0x5c, 0x35, 0x60, 0x6b, 0x1a, 0x84, 0x4d, 0x3c, - 0xda, 0x13, 0xdf, 0xdb, 0x26, 0xfc, 0xa1, 0xfe, 0x74, 0x4f, 0x16, 0x25, 0x00, 0x6b, 0x1c, 0xda, - 0x93, 0xba, 0xb7, 0xb1, 0x21, 0xfc, 0x12, 0xaa, 0x27, 0x74, 0x74, 0x30, 0x83, 0xf0, 0x5a, 0xf8, - 0xe1, 0x96, 0xb0, 0xbf, 0x8d, 0x5a, 0xf8, 0xe1, 0x16, 0x66, 0x10, 0xfa, 0x95, 0x82, 0x30, 0x6a, - 0x3a, 0xbe, 0xf7, 0x1a, 0xa9, 0x2b, 0x2e, 0xc2, 0xee, 0x56, 0x5f, 0xe9, 0x6a, 0x27, 0x0a, 0xce, - 0x7b, 0x8e, 0x4e, 0xe8, 0x56, 0x44, 0xea, 0x9e, 0x9b, 0x98, 0xd4, 0x20, 0x3d, 0xa1, 0x57, 0x3a, - 0x30, 0x70, 0xce, 0x53, 0x68, 0x1a, 0x46, 0x65, 0x4a, 0xbc, 0x2c, 0x78, 0x34, 0x98, 0x2e, 0xb0, - 0x82, 0xd3, 0x60, 0x9c, 0xc5, 0xa7, 0x42, 0xb2, 0x29, 0x6a, 0xa2, 0x31, 0x33, 0xdd, 0x10, 0x92, - 0xb2, 0x56, 0x1a, 0x56, 0x18, 0xf6, 0xc7, 0xcb, 0x54, 0xa9, 0x77, 0x29, 0x3d, 0x78, 0xcf, 0x02, - 0x4d, 0xd3, 0x33, 0xb2, 0xaf, 0x87, 0x19, 0xf9, 0x2c, 0x0c, 0xdd, 0x8c, 0xc3, 0x40, 0x05, 0x71, - 0x56, 0xba, 0x06, 0x71, 0x1a, 0x58, 0xf9, 0x41, 0x9c, 0xfd, 0x45, 0x05, 0x71, 0x0e, 0xdc, 0x65, - 0x10, 0xe7, 0x1f, 0x54, 0x40, 0xdd, 0x2b, 0x74, 0x95, 0x24, 0xb7, 0xc2, 0x68, 0xcb, 0x0b, 0x1a, - 0xac, 0x94, 0xc0, 0x57, 0x2d, 0x18, 0xe2, 0xeb, 0x65, 0xd1, 0x4c, 0xc2, 0xdb, 0x28, 0xe8, 0xc2, - 0x9a, 0x14, 0xb3, 0xc9, 0x35, 0x83, 0x51, 0xe6, 0xce, 0x61, 0x13, 0x84, 0x53, 0x3d, 0x42, 0x1f, - 0x01, 0x90, 0x4e, 0xdc, 0x0d, 0x29, 0x81, 0x17, 0x8a, 0xe9, 0x1f, 0x26, 0x1b, 0xda, 0xa4, 0x5e, - 0x53, 0x4c, 0xb0, 0xc1, 0x10, 0x7d, 0x5a, 0x27, 0x28, 0xf2, 0x6c, 0x8f, 0x0f, 0x1d, 0xcb, 0xd8, - 0xf4, 0x92, 0x9e, 0x88, 0x61, 0xc0, 0x0b, 0x1a, 0x74, 0x9e, 0x88, 0x60, 0xb7, 0xb7, 0xe7, 0x95, - 0xe1, 0x58, 0x0c, 0x9d, 0xfa, 0x8c, 0xe3, 0x3b, 0x81, 0x4b, 0xa2, 0x05, 0x8e, 0xae, 0x35, 0xa8, - 0x68, 0xc0, 0x92, 0x50, 0xc7, 0x8d, 0x4c, 0x95, 0x5e, 0x6e, 0x64, 0x3a, 0xf3, 0x5e, 0x18, 0xeb, - 0xf8, 0x98, 0x87, 0xca, 0x46, 0xbc, 0xfb, 0x44, 0x46, 0xfb, 0xb7, 0xfb, 0xb5, 0xd2, 0xba, 0x1a, - 0xd6, 0xf9, 0x05, 0x3f, 0x91, 0xfe, 0xa2, 0xc2, 0x64, 0x2e, 0x70, 0x8a, 0x28, 0x35, 0x63, 0x34, - 0x62, 0x93, 0x25, 0x9d, 0xa3, 0x2d, 0x27, 0x22, 0xc1, 0x71, 0xcf, 0xd1, 0x15, 0xc5, 0x04, 0x1b, - 0x0c, 0xd1, 0x66, 0x2a, 0x1d, 0xe9, 0xe2, 0xd1, 0xd3, 0x91, 0x58, 0x81, 0xb2, 0xbc, 0x7b, 0x30, - 0xbe, 0x60, 0xc1, 0x48, 0x90, 0x9a, 0xb9, 0xc5, 0x44, 0x20, 0xe7, 0xaf, 0x0a, 0x7e, 0x2d, 0x5d, - 0xba, 0x0d, 0x67, 0xf8, 0xe7, 0xa9, 0xb4, 0xca, 0x21, 0x55, 0x9a, 0xbe, 0x60, 0xac, 0xbf, 0xdb, - 0x05, 0x63, 0x28, 0x50, 0x37, 0x2c, 0x0e, 0x14, 0x7e, 0xc3, 0x22, 0xe4, 0xdc, 0xae, 0x78, 0x03, - 0x6a, 0x6e, 0x44, 0x9c, 0xe4, 0x2e, 0x2f, 0xdb, 0x63, 0xb1, 0x1d, 0xb3, 0x92, 0x00, 0xd6, 0xb4, - 0xec, 0xff, 0xd3, 0x07, 0x27, 0xe4, 0x88, 0xc8, 0xec, 0x05, 0xaa, 0x1f, 0x39, 0x5f, 0x6d, 0x2b, - 0x2b, 0xfd, 0x78, 0x49, 0x02, 0xb0, 0xc6, 0xa1, 0xf6, 0x58, 0x3b, 0x26, 0xcb, 0x2d, 0x12, 0x2c, - 0x7a, 0xeb, 0xb1, 0x38, 0x8c, 0x55, 0x0b, 0xe5, 0x9a, 0x06, 0x61, 0x13, 0x8f, 0xda, 0xf6, 0x8e, - 0x61, 0xb4, 0x1a, 0xb6, 0xbd, 0x34, 0x54, 0x25, 0x1c, 0xfd, 0x72, 0x6e, 0x2d, 0xe4, 0x62, 0x72, - 0xfe, 0x3a, 0x92, 0x36, 0x0e, 0x79, 0x3f, 0xeb, 0xdf, 0xb7, 0xe0, 0x34, 0x6f, 0x95, 0x23, 0x79, - 0xad, 0x55, 0x77, 0x12, 0x12, 0x17, 0x73, 0x87, 0x42, 0x4e, 0xff, 0xb4, 0x7b, 0x39, 0x8f, 0x2d, - 0xce, 0xef, 0x0d, 0x7a, 0xdd, 0x82, 0xd1, 0xad, 0x54, 0xb9, 0x18, 0xa9, 0x3a, 0x8e, 0x5a, 0xc9, - 0x21, 0x45, 0x54, 0x2f, 0xb5, 0x74, 0x7b, 0x8c, 0xb3, 0xdc, 0xed, 0xff, 0x61, 0x81, 0x29, 0x46, - 0xef, 0x7d, 0x95, 0x99, 0xc3, 0x9b, 0x82, 0xd2, 0xba, 0xac, 0x74, 0xb5, 0x2e, 0x1f, 0x85, 0x72, - 0xdb, 0xab, 0x8b, 0xfd, 0x85, 0x3e, 0x22, 0x5e, 0x98, 0xc3, 0xb4, 0xdd, 0xfe, 0x97, 0x15, 0xed, - 0x06, 0x11, 0x29, 0x75, 0x3f, 0x14, 0xaf, 0xbd, 0xa1, 0xea, 0xd4, 0xf1, 0x37, 0xbf, 0xda, 0x51, - 0xa7, 0xee, 0xa7, 0x0e, 0x9f, 0x31, 0xc9, 0x07, 0xa8, 0x5b, 0x99, 0xba, 0x81, 0x03, 0xd2, 0x25, - 0x6f, 0x42, 0x95, 0x6e, 0xc1, 0x98, 0x3f, 0xb3, 0x9a, 0xea, 0x54, 0xf5, 0x92, 0x68, 0xbf, 0xb3, - 0x37, 0xf1, 0xae, 0xc3, 0x77, 0x4b, 0x3e, 0x8d, 0x15, 0x7d, 0x14, 0x43, 0x8d, 0xfe, 0x66, 0x99, - 0x9d, 0x62, 0x73, 0x77, 0x4d, 0xc9, 0x4c, 0x09, 0x28, 0x24, 0x6d, 0x54, 0xf3, 0x41, 0x01, 0xd4, - 0xd8, 0x55, 0xd6, 0x8c, 0x29, 0xdf, 0x03, 0xae, 0xa8, 0xfc, 0x4a, 0x09, 0xb8, 0xb3, 0x37, 0xf1, - 0xc2, 0xe1, 0x99, 0xaa, 0xc7, 0xb1, 0x66, 0x61, 0xff, 0x75, 0x9f, 0x9e, 0xbb, 0xa2, 0x3c, 0xe1, - 0x0f, 0xc5, 0xdc, 0x7d, 0x3e, 0x33, 0x77, 0xcf, 0x75, 0xcc, 0xdd, 0x11, 0x7d, 0xe5, 0x72, 0x6a, - 0x36, 0xde, 0x6b, 0x43, 0xe0, 0x60, 0x7f, 0x03, 0xb3, 0x80, 0x5e, 0x6d, 0x7b, 0x11, 0x89, 0x57, - 0xa2, 0x76, 0xe0, 0x05, 0x0d, 0x36, 0x1d, 0xab, 0xa6, 0x05, 0x94, 0x02, 0xe3, 0x2c, 0x3e, 0xdd, - 0xd4, 0xd3, 0x6f, 0x7e, 0xc3, 0xd9, 0xe6, 0xb3, 0xca, 0xa8, 0xd8, 0xb6, 0x2a, 0xda, 0xb1, 0xc2, - 0x40, 0x9b, 0x70, 0x56, 0x12, 0x98, 0x23, 0x3e, 0x11, 0x77, 0x26, 0x6f, 0x78, 0x51, 0x93, 0x07, - 0x88, 0xf3, 0xc8, 0x84, 0xb7, 0x09, 0x0a, 0x67, 0xf1, 0x3e, 0xb8, 0x78, 0x5f, 0x4a, 0xf6, 0xd7, - 0xd9, 0x79, 0xbd, 0x91, 0xbc, 0x4e, 0x67, 0x9f, 0xcf, 0x6e, 0x29, 0xe7, 0x85, 0xe5, 0xd4, 0xec, - 0xe3, 0x57, 0x93, 0x73, 0x18, 0xba, 0x05, 0x03, 0xeb, 0xfc, 0xbe, 0xcd, 0x62, 0x6a, 0xfb, 0x8b, - 0xcb, 0x3b, 0xd9, 0x4d, 0x46, 0xf2, 0x26, 0xcf, 0x3b, 0xfa, 0x27, 0x96, 0xdc, 0xec, 0x6f, 0x55, - 0x60, 0x34, 0x73, 0x8f, 0x75, 0xaa, 0xa4, 0x6f, 0xe9, 0xc0, 0x92, 0xbe, 0x1f, 0x04, 0xa8, 0x93, - 0x96, 0x1f, 0xee, 0x32, 0xc3, 0xaf, 0xef, 0xd0, 0x86, 0x9f, 0xda, 0x2b, 0xcc, 0x29, 0x2a, 0xd8, - 0xa0, 0x28, 0xaa, 0xe9, 0xf1, 0x0a, 0xc1, 0x99, 0x6a, 0x7a, 0xc6, 0x0d, 0x20, 0xfd, 0xf7, 0xf6, - 0x06, 0x10, 0x0f, 0x46, 0x79, 0x17, 0x55, 0x8a, 0xf8, 0x5d, 0x64, 0x82, 0xb3, 0x24, 0x9b, 0xb9, - 0x34, 0x19, 0x9c, 0xa5, 0x7b, 0x3f, 0xaf, 0xa9, 0x47, 0xef, 0x80, 0x9a, 0xfc, 0xce, 0xf1, 0x78, - 0x4d, 0x97, 0xd9, 0x90, 0xd3, 0x80, 0x5d, 0x1f, 0x2f, 0x7e, 0x76, 0x54, 0xbb, 0x80, 0xfb, 0x55, - 0xed, 0xc2, 0xfe, 0x7c, 0x89, 0xee, 0x18, 0x78, 0xbf, 0x54, 0xe1, 0xa6, 0x27, 0xa0, 0xdf, 0x69, - 0x27, 0x9b, 0x61, 0xc7, 0x8d, 0x9d, 0xd3, 0xac, 0x15, 0x0b, 0x28, 0x5a, 0x84, 0xbe, 0xba, 0x2e, - 0xc6, 0x73, 0x98, 0xef, 0xa9, 0x9d, 0xaf, 0x4e, 0x42, 0x30, 0xa3, 0x82, 0xce, 0x42, 0x5f, 0xe2, - 0x34, 0x64, 0x5e, 0x20, 0xcb, 0x05, 0x5f, 0x73, 0x1a, 0x31, 0x66, 0xad, 0xa6, 0xa1, 0xd0, 0x77, - 0x80, 0xa1, 0xf0, 0x02, 0x0c, 0xc7, 0x5e, 0x23, 0x70, 0x92, 0x76, 0x44, 0x8c, 0xf3, 0x49, 0x1d, - 0x9d, 0x62, 0x02, 0x71, 0x1a, 0xd7, 0xfe, 0x9d, 0x21, 0x38, 0xb5, 0x3a, 0xbb, 0x24, 0x4b, 0xcc, - 0x1f, 0x5b, 0x6a, 0x5f, 0x1e, 0x8f, 0x7b, 0x97, 0xda, 0xd7, 0x85, 0xbb, 0x6f, 0xa4, 0xf6, 0xf9, - 0x46, 0x6a, 0x5f, 0x3a, 0xcf, 0xaa, 0x5c, 0x44, 0x9e, 0x55, 0x5e, 0x0f, 0x7a, 0xc9, 0xb3, 0x3a, - 0xb6, 0x5c, 0xbf, 0x7d, 0x3b, 0x74, 0xa8, 0x5c, 0x3f, 0x95, 0x08, 0x59, 0x48, 0x06, 0x4c, 0x97, - 0x4f, 0x95, 0x9b, 0x08, 0xa9, 0x92, 0xd0, 0x78, 0x76, 0x97, 0x10, 0xf5, 0x2f, 0x17, 0xdf, 0x81, - 0x1e, 0x92, 0xd0, 0x44, 0x82, 0x99, 0x99, 0xf8, 0x38, 0x50, 0x44, 0xe2, 0x63, 0x5e, 0x77, 0x0e, - 0x4c, 0x7c, 0x7c, 0x01, 0x86, 0x5d, 0x3f, 0x0c, 0xc8, 0x4a, 0x14, 0x26, 0xa1, 0x1b, 0xca, 0x3b, - 0x03, 0xf5, 0x95, 0x37, 0x26, 0x10, 0xa7, 0x71, 0xbb, 0x65, 0x4d, 0xd6, 0x8e, 0x9a, 0x35, 0x09, - 0xf7, 0x29, 0x6b, 0xf2, 0x17, 0x74, 0x7e, 0xff, 0x20, 0xfb, 0x22, 0x1f, 0x2c, 0xfe, 0x8b, 0xf4, - 0x74, 0x29, 0xe0, 0x1b, 0xfc, 0xca, 0x4c, 0x6a, 0x82, 0xcf, 0x86, 0x4d, 0x6a, 0xf8, 0x0d, 0xb1, - 0x21, 0x79, 0xe5, 0x18, 0x26, 0xec, 0x8d, 0x55, 0xcd, 0x46, 0x5d, 0xa3, 0xa9, 0x9b, 0x70, 0xba, - 0x23, 0x47, 0xa9, 0x3f, 0xf0, 0xe5, 0x12, 0xfc, 0xc8, 0x81, 0x5d, 0x40, 0xb7, 0x00, 0x12, 0xa7, - 0x21, 0x26, 0xaa, 0x38, 0x9a, 0x39, 0x62, 0x08, 0xe9, 0x9a, 0xa4, 0xc7, 0x0b, 0xe7, 0xa8, 0xbf, - 0xec, 0xd0, 0x43, 0xfe, 0x66, 0x91, 0xa3, 0xa1, 0xdf, 0x51, 0x5f, 0x14, 0x87, 0x3e, 0xc1, 0x0c, - 0x42, 0xd5, 0x7f, 0x44, 0x1a, 0xfa, 0xbe, 0x79, 0xf5, 0xf9, 0x30, 0x6b, 0xc5, 0x02, 0x8a, 0x9e, - 0x83, 0x41, 0xc7, 0xf7, 0x79, 0x7a, 0x12, 0x89, 0xc5, 0x5d, 0x54, 0xba, 0xd0, 0xa1, 0x06, 0x61, - 0x13, 0xcf, 0xfe, 0xcb, 0x12, 0x4c, 0x1c, 0x20, 0x53, 0x3a, 0xd2, 0x52, 0x2b, 0x3d, 0xa7, 0xa5, - 0x8a, 0x94, 0x8d, 0xfe, 0x2e, 0x29, 0x1b, 0xcf, 0xc1, 0x60, 0x42, 0x9c, 0xa6, 0x08, 0x3a, 0x13, - 0x3e, 0x07, 0x7d, 0xd6, 0xac, 0x41, 0xd8, 0xc4, 0xa3, 0x52, 0x6c, 0xc4, 0x71, 0x5d, 0x12, 0xc7, - 0x32, 0x27, 0x43, 0xf8, 0x6d, 0x0b, 0x4b, 0xf8, 0x60, 0xee, 0xf0, 0xe9, 0x14, 0x0b, 0x9c, 0x61, - 0x99, 0x1d, 0xf0, 0x5a, 0x8f, 0x03, 0xfe, 0xb5, 0x12, 0x3c, 0xba, 0xaf, 0x76, 0xeb, 0x39, 0x5d, - 0xa6, 0x1d, 0x93, 0x28, 0x3b, 0x71, 0xae, 0xc5, 0x24, 0xc2, 0x0c, 0xc2, 0x47, 0xa9, 0xd5, 0x32, - 0xee, 0xf3, 0x2f, 0x3a, 0x77, 0x8c, 0x8f, 0x52, 0x8a, 0x05, 0xce, 0xb0, 0xbc, 0xdb, 0x69, 0xf9, - 0xad, 0x3e, 0x78, 0xbc, 0x07, 0x1b, 0xa0, 0xc0, 0x1c, 0xbb, 0x74, 0x3e, 0x68, 0xf9, 0x3e, 0xe5, - 0x83, 0xde, 0xdd, 0x70, 0xbd, 0x99, 0x46, 0xda, 0x53, 0x2e, 0xdf, 0xd7, 0x4b, 0x70, 0xa6, 0xbb, - 0xc1, 0x82, 0xde, 0x0d, 0xa3, 0x91, 0x0a, 0xb2, 0x33, 0x53, 0x49, 0x4f, 0x72, 0xcf, 0x4e, 0x0a, - 0x84, 0xb3, 0xb8, 0x68, 0x12, 0xa0, 0xe5, 0x24, 0x9b, 0xf1, 0x85, 0x1d, 0x2f, 0x4e, 0x44, 0x41, - 0xa9, 0x11, 0x7e, 0x96, 0x28, 0x5b, 0xb1, 0x81, 0x41, 0xd9, 0xb1, 0x7f, 0x73, 0xe1, 0xd5, 0x30, - 0xe1, 0x0f, 0xf1, 0xcd, 0xd6, 0x49, 0x79, 0xfd, 0x8e, 0x01, 0xc2, 0x59, 0x5c, 0xca, 0x8e, 0x9d, - 0x56, 0xf3, 0x8e, 0xf2, 0x5d, 0x18, 0x63, 0xb7, 0xa8, 0x5a, 0xb1, 0x81, 0x91, 0x4d, 0x92, 0xad, - 0x1c, 0x9c, 0x24, 0x6b, 0xff, 0x8b, 0x12, 0x3c, 0xd2, 0xd5, 0xe0, 0xed, 0x4d, 0x4c, 0x3d, 0x78, - 0x89, 0xad, 0x77, 0xb9, 0xc2, 0x0e, 0x97, 0x10, 0xf9, 0x27, 0x5d, 0x66, 0x9a, 0x48, 0x88, 0xbc, - 0xfb, 0x3a, 0x0f, 0x0f, 0xde, 0x78, 0x76, 0xe4, 0x40, 0xf6, 0x1d, 0x22, 0x07, 0x32, 0xf3, 0x31, - 0x2a, 0x3d, 0x6a, 0x87, 0x3f, 0xeb, 0xeb, 0x3a, 0xbc, 0x74, 0x83, 0xdc, 0x93, 0xdf, 0x7c, 0x0e, - 0x4e, 0x78, 0x01, 0xbb, 0x8a, 0x6d, 0xb5, 0xbd, 0x2e, 0x6a, 0x0c, 0xf1, 0x42, 0x9a, 0x2a, 0xd1, - 0x62, 0x21, 0x03, 0xc7, 0x1d, 0x4f, 0x3c, 0x80, 0x39, 0xa9, 0x77, 0x37, 0xa4, 0x87, 0x94, 0xdc, - 0xcb, 0x70, 0x5a, 0x0e, 0xc5, 0xa6, 0x13, 0x91, 0xba, 0x50, 0xb6, 0xb1, 0x48, 0xad, 0x79, 0x84, - 0xa7, 0xe7, 0xe4, 0x20, 0xe0, 0xfc, 0xe7, 0xd8, 0xed, 0x57, 0x61, 0xcb, 0x73, 0xc5, 0x56, 0x50, - 0xdf, 0x7e, 0x45, 0x1b, 0x31, 0x87, 0x69, 0x7d, 0x51, 0xbb, 0x37, 0xfa, 0xe2, 0x83, 0x50, 0x53, - 0xe3, 0xcd, 0xb3, 0x04, 0xd4, 0x24, 0xef, 0xc8, 0x12, 0x50, 0x33, 0xdc, 0xc0, 0x3a, 0xe8, 0x7a, - 0xd6, 0x9f, 0x80, 0x21, 0xe5, 0xfd, 0xea, 0xf5, 0x0e, 0x32, 0xfb, 0xcf, 0xfb, 0x61, 0x38, 0x55, - 0x57, 0x34, 0xe5, 0xf6, 0xb6, 0x0e, 0x74, 0x7b, 0xb3, 0x04, 0x91, 0x76, 0x20, 0x2f, 0x28, 0x34, - 0x12, 0x44, 0xda, 0x01, 0xc1, 0x1c, 0x46, 0x37, 0x1d, 0xf5, 0x68, 0x17, 0xb7, 0x03, 0x11, 0xf1, - 0xaa, 0x36, 0x1d, 0x73, 0xac, 0x15, 0x0b, 0x28, 0xfa, 0x98, 0x05, 0x43, 0x31, 0x3b, 0xbd, 0xe1, - 0x87, 0x06, 0x62, 0x92, 0x5f, 0x3e, 0x7a, 0xd9, 0x54, 0x55, 0x43, 0x97, 0x45, 0x48, 0x99, 0x2d, - 0x38, 0xc5, 0x11, 0x7d, 0xd2, 0x82, 0x9a, 0xba, 0x47, 0x49, 0xdc, 0x36, 0xba, 0x5a, 0x6c, 0xd9, - 0x56, 0xee, 0x6d, 0x56, 0x07, 0x61, 0xaa, 0x7e, 0x26, 0xd6, 0x8c, 0x51, 0xac, 0x3c, 0xfa, 0x03, - 0xc7, 0xe3, 0xd1, 0x87, 0x1c, 0x6f, 0xfe, 0x3b, 0xa0, 0xd6, 0x74, 0x02, 0x6f, 0x83, 0xc4, 0x09, - 0x77, 0xb2, 0xcb, 0x6a, 0xd2, 0xb2, 0x11, 0x6b, 0x38, 0x35, 0x00, 0x62, 0xf6, 0x62, 0x89, 0xe1, - 0x15, 0x67, 0x06, 0xc0, 0xaa, 0x6e, 0xc6, 0x26, 0x8e, 0xe9, 0xc2, 0x87, 0xfb, 0xea, 0xc2, 0x1f, - 0x3c, 0xc0, 0x85, 0xbf, 0x0a, 0xa7, 0x9d, 0x76, 0x12, 0x5e, 0x22, 0x8e, 0x3f, 0xcd, 0xaf, 0x0e, - 0x16, 0x57, 0xe1, 0x0f, 0x31, 0xb7, 0x90, 0x8a, 0xe9, 0x58, 0x25, 0xfe, 0x46, 0x07, 0x12, 0xce, - 0x7f, 0xd6, 0xfe, 0xa7, 0x16, 0x9c, 0xce, 0x9d, 0x0a, 0x0f, 0x6e, 0x34, 0xad, 0xfd, 0xa5, 0x0a, - 0x9c, 0xcc, 0xa9, 0x3a, 0x8c, 0x76, 0xcd, 0x45, 0x62, 0x15, 0x11, 0x98, 0x92, 0x8e, 0xb3, 0x90, - 0xdf, 0x26, 0x67, 0x65, 0x1c, 0xee, 0x54, 0x4e, 0x9f, 0x8c, 0x95, 0xef, 0xed, 0xc9, 0x98, 0x31, - 0xd7, 0xfb, 0xee, 0xeb, 0x5c, 0xaf, 0x1c, 0x30, 0xd7, 0xbf, 0x61, 0xc1, 0x78, 0xb3, 0xcb, 0x55, - 0x17, 0xc2, 0xc7, 0x7c, 0xfd, 0x78, 0x2e, 0xd2, 0x98, 0x39, 0x7b, 0x7b, 0x6f, 0xa2, 0xeb, 0x0d, - 0x23, 0xb8, 0x6b, 0xaf, 0xec, 0xef, 0x95, 0x81, 0x95, 0xbc, 0x66, 0x95, 0x25, 0x77, 0xd1, 0x47, - 0xcd, 0xe2, 0xe5, 0x56, 0x51, 0x85, 0xb6, 0x39, 0x71, 0x55, 0xfc, 0x9c, 0x8f, 0x60, 0x5e, 0x2d, - 0xf4, 0xac, 0x24, 0x2c, 0xf5, 0x20, 0x09, 0x7d, 0x59, 0x25, 0xbe, 0x5c, 0x7c, 0x95, 0xf8, 0x5a, - 0xb6, 0x42, 0xfc, 0xfe, 0x9f, 0xb8, 0xef, 0x81, 0xfc, 0xc4, 0xbf, 0x62, 0x71, 0xc1, 0x93, 0xf9, - 0x0a, 0xda, 0xdc, 0xb0, 0xf6, 0x31, 0x37, 0x9e, 0x82, 0x6a, 0x2c, 0x24, 0xb3, 0x30, 0x4b, 0x74, - 0x50, 0x84, 0x68, 0xc7, 0x0a, 0x83, 0x5d, 0x23, 0xed, 0xfb, 0xe1, 0xad, 0x0b, 0xcd, 0x56, 0xb2, - 0x2b, 0x0c, 0x14, 0x7d, 0x8d, 0xb4, 0x82, 0x60, 0x03, 0xcb, 0xfe, 0x7b, 0x25, 0x3e, 0x03, 0x45, - 0x64, 0xcd, 0xf3, 0x99, 0x8b, 0x3f, 0x7b, 0x0f, 0x4a, 0xf9, 0x30, 0x80, 0x1b, 0x36, 0x5b, 0xd4, - 0x78, 0x5d, 0x0b, 0xc5, 0xf1, 0xdf, 0xa5, 0xa3, 0x1a, 0xa2, 0x92, 0x9e, 0x7e, 0x0d, 0xdd, 0x86, - 0x0d, 0x7e, 0x29, 0x59, 0x5a, 0x3e, 0x50, 0x96, 0xa6, 0xc4, 0x4a, 0xdf, 0xfe, 0x62, 0xc5, 0xfe, - 0x4b, 0x0b, 0x52, 0x66, 0x16, 0x6a, 0x41, 0x85, 0x76, 0x77, 0x57, 0xac, 0xd0, 0xe5, 0xe2, 0x6c, - 0x3a, 0x2a, 0x1a, 0xc5, 0xb4, 0x67, 0x3f, 0x31, 0x67, 0x84, 0x7c, 0x11, 0x80, 0xc3, 0x47, 0xf5, - 0x6a, 0x71, 0x0c, 0x2f, 0x85, 0xe1, 0x16, 0x3f, 0xc3, 0xd6, 0xc1, 0x3c, 0xf6, 0xf3, 0x30, 0xd6, - 0xd1, 0x29, 0x76, 0xc7, 0x5f, 0x48, 0xb5, 0x4f, 0x66, 0xba, 0xb2, 0x7c, 0x64, 0xcc, 0x61, 0xf6, - 0xd7, 0x2d, 0x38, 0x91, 0x25, 0x8f, 0xde, 0xb0, 0x60, 0x2c, 0xce, 0xd2, 0x3b, 0xae, 0xb1, 0x53, - 0x41, 0xb4, 0x1d, 0x20, 0xdc, 0xd9, 0x09, 0xfb, 0xaf, 0xc5, 0xe4, 0xbf, 0xe1, 0x05, 0xf5, 0xf0, - 0x96, 0x32, 0x4c, 0xac, 0xae, 0x86, 0x09, 0x5d, 0x8f, 0xee, 0x26, 0xa9, 0xb7, 0xfd, 0x8e, 0xec, - 0xe6, 0x55, 0xd1, 0x8e, 0x15, 0x06, 0x4b, 0xe6, 0x6c, 0x8b, 0x6b, 0x24, 0x32, 0x93, 0x72, 0x4e, - 0xb4, 0x63, 0x85, 0x81, 0x9e, 0x85, 0x21, 0xe3, 0x25, 0xe5, 0xbc, 0x64, 0x56, 0xbe, 0xa1, 0x32, - 0x63, 0x9c, 0xc2, 0x42, 0x93, 0x00, 0xca, 0xc8, 0x91, 0x2a, 0x92, 0x79, 0xbb, 0x94, 0x24, 0x8a, - 0xb1, 0x81, 0xc1, 0x52, 0xa7, 0xfd, 0x76, 0xcc, 0x8e, 0x73, 0xfa, 0x75, 0x69, 0xe3, 0x59, 0xd1, - 0x86, 0x15, 0x94, 0x4a, 0x93, 0xa6, 0x13, 0xb4, 0x1d, 0x9f, 0x8e, 0x90, 0xd8, 0xbf, 0xaa, 0x65, - 0xb8, 0xa4, 0x20, 0xd8, 0xc0, 0xa2, 0x6f, 0x9c, 0x78, 0x4d, 0xf2, 0x52, 0x18, 0xc8, 0xe0, 0x47, - 0x7d, 0xc2, 0x27, 0xda, 0xb1, 0xc2, 0xb0, 0xff, 0xc2, 0x82, 0x51, 0x5d, 0xb3, 0x81, 0xdf, 0xe6, - 0x6f, 0x6e, 0xb7, 0xad, 0x03, 0xb7, 0xdb, 0xe9, 0x0c, 0xf5, 0x52, 0x4f, 0x19, 0xea, 0x66, 0xf2, - 0x78, 0x79, 0xdf, 0xe4, 0xf1, 0x1f, 0xd5, 0x37, 0x45, 0xf3, 0x2c, 0xf3, 0xc1, 0xbc, 0x5b, 0xa2, - 0x91, 0x0d, 0xfd, 0xae, 0xa3, 0x6a, 0x1b, 0x0d, 0xf1, 0x0d, 0xc9, 0xec, 0x34, 0x43, 0x12, 0x10, - 0x7b, 0x19, 0x6a, 0xea, 0xa0, 0x4b, 0xee, 0x7e, 0xad, 0xfc, 0xdd, 0x6f, 0x4f, 0x49, 0xac, 0x33, - 0xeb, 0xdf, 0xfc, 0xfe, 0x63, 0x6f, 0xf9, 0xa3, 0xef, 0x3f, 0xf6, 0x96, 0xef, 0x7e, 0xff, 0xb1, - 0xb7, 0x7c, 0xec, 0xf6, 0x63, 0xd6, 0x37, 0x6f, 0x3f, 0x66, 0xfd, 0xd1, 0xed, 0xc7, 0xac, 0xef, - 0xde, 0x7e, 0xcc, 0xfa, 0xde, 0xed, 0xc7, 0xac, 0x2f, 0xfc, 0xd7, 0xc7, 0xde, 0xf2, 0x52, 0x6e, - 0xf4, 0x2b, 0xfd, 0xf1, 0xb4, 0x5b, 0x9f, 0xda, 0x3e, 0xcf, 0x02, 0x30, 0xe9, 0xf2, 0x9a, 0x32, - 0xe6, 0xd4, 0x94, 0x5c, 0x5e, 0xff, 0x37, 0x00, 0x00, 0xff, 0xff, 0x0a, 0x57, 0x97, 0x8d, 0x5b, - 0xec, 0x00, 0x00, + 0x7f, 0xb2, 0x1f, 0x52, 0xe6, 0x24, 0xff, 0xee, 0x3f, 0x06, 0x03, 0x11, 0x69, 0x85, 0xd7, 0xf0, + 0xa2, 0xd0, 0x65, 0x3a, 0xa3, 0x84, 0x37, 0x63, 0x09, 0xa7, 0x3a, 0xaf, 0xe5, 0x24, 0x9b, 0x42, + 0x99, 0x29, 0x9d, 0xb7, 0xe2, 0x24, 0x9b, 0x98, 0x41, 0xd0, 0x7b, 0x60, 0x24, 0x49, 0x1d, 0x85, + 0x8b, 0x23, 0xdf, 0x87, 0x04, 0xee, 0x48, 0xfa, 0xa0, 0x1c, 0x67, 0xb0, 0xd1, 0xab, 0xd0, 0xb7, + 0x49, 0xfc, 0xa6, 0xf8, 0xf4, 0xab, 0xc5, 0xe9, 0x1a, 0xf6, 0xae, 0x97, 0x88, 0xdf, 0xe4, 0x92, + 0x90, 0xfe, 0xc2, 0x8c, 0x15, 0x9d, 0xf7, 0xb5, 0xad, 0x76, 0x9c, 0x84, 0x4d, 0xef, 0x35, 0xe9, + 0xe9, 0x7c, 0x5f, 0xc1, 0x8c, 0xaf, 0x48, 0xfa, 0xdc, 0xa5, 0xa4, 0xfe, 0x62, 0xcd, 0x99, 0xf5, + 0xa3, 0xee, 0x45, 0x6c, 0xca, 0xec, 0x0a, 0x87, 0x65, 0xd1, 0xfd, 0x98, 0x93, 0xf4, 0x79, 0x3f, + 0xd4, 0x5f, 0xac, 0x39, 0xa3, 0x5d, 0xb5, 0xfe, 0x06, 0x59, 0x1f, 0xae, 0x15, 0xdc, 0x07, 0xbe, + 0xf6, 0x72, 0xd7, 0xe1, 0xe3, 0x50, 0x71, 0x37, 0x9d, 0x28, 0x19, 0x1f, 0x62, 0x93, 0x46, 0xcd, + 0xe2, 0x59, 0xda, 0x88, 0x39, 0x0c, 0x3d, 0x0a, 0xe5, 0x88, 0x6c, 0xb0, 0xe8, 0x64, 0x23, 0x2e, + 0x0a, 0x93, 0x0d, 0x4c, 0xdb, 0x95, 0x5d, 0x36, 0xd2, 0x35, 0x60, 0xee, 0x57, 0x4b, 0x69, 0xc3, + 0x2e, 0x3d, 0x32, 0x7c, 0x3d, 0xb8, 0xed, 0x28, 0x96, 0x0e, 0x32, 0x63, 0x3d, 0xb0, 0x66, 0x2c, + 0xe1, 0xe8, 0xe3, 0x16, 0x0c, 0xdc, 0x8c, 0xc3, 0x20, 0x20, 0x89, 0x50, 0xa2, 0xd7, 0x0b, 0x1e, + 0xac, 0xcb, 0x9c, 0xba, 0xee, 0x83, 0x68, 0xc0, 0x92, 0x2f, 0xed, 0x2e, 0xd9, 0x71, 0xfd, 0x76, + 0xbd, 0x23, 0x18, 0xe6, 0x02, 0x6f, 0xc6, 0x12, 0x4e, 0x51, 0xbd, 0x80, 0xa3, 0xf6, 0xa5, 0x51, + 0x17, 0x02, 0x81, 0x2a, 0xe0, 0xf6, 0xf7, 0x07, 0xe0, 0x74, 0xee, 0xf2, 0xa1, 0x26, 0x17, 0x33, + 0x6a, 0x2e, 0x7a, 0x3e, 0x91, 0x61, 0x60, 0xcc, 0xe4, 0xba, 0xae, 0x5a, 0xb1, 0x81, 0x81, 0x7e, + 0x0e, 0xa0, 0xe5, 0x44, 0x4e, 0x93, 0x28, 0x07, 0xf6, 0x91, 0x2d, 0x1b, 0xda, 0x8f, 0x15, 0x49, + 0x53, 0x6f, 0xe2, 0x55, 0x53, 0x8c, 0x0d, 0x96, 0xe8, 0x39, 0x18, 0x8c, 0x88, 0x4f, 0x9c, 0x98, + 0x85, 0xbf, 0x67, 0x73, 0x79, 0xb0, 0x06, 0x61, 0x13, 0x0f, 0x3d, 0xa1, 0x22, 0xe6, 0x32, 0x91, + 0x43, 0xe9, 0xa8, 0x39, 0xf4, 0xba, 0x05, 0x23, 0x1b, 0x9e, 0x4f, 0x34, 0x77, 0x91, 0x79, 0xb3, + 0x7c, 0xf4, 0x97, 0xbc, 0x68, 0xd2, 0xd5, 0x32, 0x34, 0xd5, 0x1c, 0xe3, 0x0c, 0x7b, 0xfa, 0x99, + 0xb7, 0x49, 0xc4, 0x84, 0x6f, 0x7f, 0xfa, 0x33, 0x5f, 0xe7, 0xcd, 0x58, 0xc2, 0xd1, 0x34, 0x8c, + 0xb6, 0x9c, 0x38, 0x9e, 0x8d, 0x48, 0x9d, 0x04, 0x89, 0xe7, 0xf8, 0x3c, 0x2f, 0xa6, 0xaa, 0xc3, + 0xc9, 0x57, 0xd2, 0x60, 0x9c, 0xc5, 0x47, 0xef, 0x87, 0x87, 0xb9, 0x87, 0x68, 0xc9, 0x8b, 0x63, + 0x2f, 0x68, 0xe8, 0x69, 0x20, 0x1c, 0x65, 0x13, 0x82, 0xd4, 0xc3, 0x0b, 0xf9, 0x68, 0xb8, 0xdb, + 0xf3, 0xe8, 0x29, 0xa8, 0xc6, 0x5b, 0x5e, 0x6b, 0x36, 0xaa, 0xc7, 0xec, 0x74, 0xa8, 0xaa, 0xdd, + 0xb2, 0xab, 0xa2, 0x1d, 0x2b, 0x0c, 0xe4, 0xc2, 0x10, 0xff, 0x24, 0x3c, 0xe4, 0x4f, 0x48, 0xd0, + 0xa7, 0xbb, 0x2a, 0x72, 0x91, 0xe6, 0x39, 0x89, 0x9d, 0x5b, 0x17, 0xe4, 0x59, 0x15, 0x3f, 0x5a, + 0xb9, 0x6e, 0x90, 0xc1, 0x29, 0xa2, 0xe9, 0x3d, 0xdd, 0x60, 0x0f, 0x7b, 0xba, 0xe7, 0x60, 0x70, + 0xab, 0xbd, 0x4e, 0xc4, 0xc8, 0x0b, 0xc1, 0xa6, 0x66, 0xdf, 0x15, 0x0d, 0xc2, 0x26, 0x1e, 0x8b, + 0xb6, 0x6c, 0x79, 0xe2, 0x5f, 0x3c, 0x3e, 0x6c, 0x44, 0x5b, 0xae, 0x2c, 0xc8, 0x66, 0x6c, 0xe2, + 0xd0, 0xae, 0xd1, 0xb1, 0x58, 0x23, 0x31, 0x4b, 0xa6, 0xa0, 0xc3, 0xa5, 0xba, 0xb6, 0x2a, 0x01, + 0x58, 0xe3, 0xd8, 0xbf, 0x5c, 0x4a, 0xfb, 0x39, 0x4c, 0x81, 0x83, 0x62, 0x2a, 0x56, 0x92, 0xeb, + 0x4e, 0x24, 0xcd, 0x93, 0x23, 0xa6, 0x22, 0x09, 0xba, 0xd7, 0x9d, 0xc8, 0x14, 0x50, 0x8c, 0x01, + 0x96, 0x9c, 0xd0, 0x4d, 0xe8, 0x4b, 0x7c, 0xa7, 0xa0, 0xdc, 0x45, 0x83, 0xa3, 0x76, 0x3b, 0x2d, + 0x4e, 0xc7, 0x98, 0xf1, 0x40, 0x67, 0xe9, 0x5e, 0x6b, 0x5d, 0x9e, 0x8b, 0x89, 0xed, 0xd1, 0x7a, + 0x8c, 0x59, 0xab, 0xfd, 0x67, 0x83, 0x39, 0x3a, 0x42, 0xa9, 0x6d, 0x74, 0x1e, 0x80, 0x7e, 0xe2, + 0x95, 0x88, 0x6c, 0x78, 0x3b, 0xc2, 0x6c, 0x52, 0x72, 0xe8, 0xaa, 0x82, 0x60, 0x03, 0x4b, 0x3e, + 0xb3, 0xda, 0xde, 0xa0, 0xcf, 0x94, 0x3a, 0x9f, 0xe1, 0x10, 0x6c, 0x60, 0xa1, 0x67, 0xa1, 0xdf, + 0x6b, 0x3a, 0x0d, 0x15, 0xb6, 0x7b, 0x96, 0x0a, 0xa0, 0x05, 0xd6, 0x72, 0x67, 0x6f, 0x62, 0x44, + 0x75, 0x88, 0x35, 0x61, 0x81, 0x8b, 0x7e, 0xdd, 0x82, 0x21, 0x37, 0x6c, 0x36, 0xc3, 0x80, 0x6f, + 0x76, 0xc5, 0xce, 0xfd, 0xe6, 0x71, 0x19, 0x35, 0x93, 0xb3, 0x06, 0x33, 0xbe, 0x75, 0x57, 0x49, + 0x96, 0x26, 0x08, 0xa7, 0x7a, 0x65, 0xca, 0xa9, 0xca, 0x01, 0x72, 0xea, 0x37, 0x2c, 0x18, 0xe3, + 0xcf, 0x1a, 0x7b, 0x70, 0x91, 0x4f, 0x18, 0x1e, 0xf3, 0x6b, 0x75, 0xb8, 0x25, 0x94, 0x6b, 0xb6, + 0x03, 0x8e, 0x3b, 0x3b, 0x89, 0xe6, 0x61, 0x6c, 0x23, 0x8c, 0x5c, 0x62, 0x0e, 0x84, 0x10, 0xb2, + 0x8a, 0xd0, 0xc5, 0x2c, 0x02, 0xee, 0x7c, 0x06, 0x5d, 0x87, 0x87, 0x8c, 0x46, 0x73, 0x1c, 0xb8, + 0x9c, 0x7d, 0x4c, 0x50, 0x7b, 0xe8, 0x62, 0x2e, 0x16, 0xee, 0xf2, 0x74, 0x5a, 0xa4, 0xd5, 0x7a, + 0x10, 0x69, 0xaf, 0xc0, 0x23, 0x6e, 0xe7, 0xc8, 0x6c, 0xc7, 0xed, 0xf5, 0x98, 0x4b, 0xdd, 0xea, + 0xcc, 0x8f, 0x08, 0x02, 0x8f, 0xcc, 0x76, 0x43, 0xc4, 0xdd, 0x69, 0xa0, 0x0f, 0x43, 0x35, 0x22, + 0xec, 0xab, 0xc4, 0x22, 0xb9, 0xee, 0x88, 0xbe, 0x09, 0x6d, 0x6f, 0x73, 0xb2, 0x5a, 0x8f, 0x88, + 0x86, 0x18, 0x2b, 0x8e, 0xe8, 0x16, 0x0c, 0xb4, 0x9c, 0xc4, 0xdd, 0x14, 0x29, 0x75, 0x47, 0xf6, + 0xa4, 0x2b, 0xe6, 0xec, 0xe0, 0xc3, 0x48, 0xc2, 0xe7, 0x4c, 0xb0, 0xe4, 0x46, 0x2d, 0x2b, 0x37, + 0x6c, 0xb6, 0xc2, 0x80, 0x04, 0x89, 0x14, 0xf9, 0x23, 0xfc, 0x74, 0x42, 0xb6, 0x62, 0x03, 0x03, + 0xad, 0xc0, 0x29, 0xe6, 0xa9, 0xbb, 0xe1, 0x25, 0x9b, 0x61, 0x3b, 0x91, 0x1b, 0x4f, 0x21, 0xfb, + 0xd5, 0xf9, 0xd4, 0x62, 0x0e, 0x0e, 0xce, 0x7d, 0x32, 0xab, 0xac, 0x46, 0xef, 0x4e, 0x59, 0x9d, + 0x38, 0x58, 0x59, 0x9d, 0x79, 0x2f, 0x8c, 0x75, 0x08, 0x8d, 0x43, 0xb9, 0xe3, 0xe6, 0xe0, 0xa1, + 0xfc, 0xe5, 0x79, 0x28, 0xa7, 0xdc, 0x3f, 0xcf, 0x44, 0x65, 0x1b, 0x1b, 0x94, 0x1e, 0x1c, 0xbc, + 0x0e, 0x94, 0x49, 0xb0, 0x2d, 0xb4, 0xd5, 0xc5, 0xa3, 0xcd, 0x92, 0x0b, 0xc1, 0x36, 0x97, 0x2e, + 0xcc, 0x8b, 0x75, 0x21, 0xd8, 0xc6, 0x94, 0x36, 0xfa, 0xa2, 0x95, 0x32, 0x9f, 0xb9, 0x5b, 0xf8, + 0x83, 0xc7, 0xb2, 0x23, 0xeb, 0xd9, 0xa2, 0xb6, 0xff, 0x7d, 0x09, 0xce, 0x1d, 0x44, 0xa4, 0x87, + 0xe1, 0x7b, 0x1c, 0xfa, 0x63, 0x16, 0x67, 0x21, 0xc4, 0xff, 0x20, 0x5d, 0x15, 0x3c, 0xf2, 0xe2, + 0x15, 0x2c, 0x40, 0xc8, 0x87, 0x72, 0xd3, 0x69, 0x09, 0x6f, 0xe1, 0xc2, 0x51, 0xb3, 0xd7, 0xe8, + 0x7f, 0xc7, 0x5f, 0x72, 0x5a, 0x7c, 0x7a, 0x1a, 0x0d, 0x98, 0xb2, 0x41, 0x09, 0x54, 0x9c, 0x28, + 0x72, 0xe4, 0xa1, 0xfe, 0x95, 0x62, 0xf8, 0x4d, 0x53, 0x92, 0xfc, 0x4c, 0x34, 0xd5, 0x84, 0x39, + 0x33, 0xfb, 0xb3, 0x03, 0xa9, 0x54, 0x27, 0x16, 0xa9, 0x11, 0x43, 0xbf, 0x70, 0x12, 0x5a, 0x45, + 0x27, 0x0d, 0xf2, 0x5c, 0x62, 0xb6, 0xff, 0x16, 0x15, 0x19, 0x04, 0x2b, 0xf4, 0x19, 0x8b, 0xd5, + 0x3d, 0x90, 0xf9, 0x63, 0x62, 0x4f, 0x7b, 0x3c, 0x65, 0x18, 0xcc, 0x6a, 0x0a, 0xb2, 0x11, 0x9b, + 0xdc, 0x45, 0xfd, 0x12, 0x66, 0xcb, 0x77, 0xd6, 0x2f, 0x61, 0xb6, 0xb9, 0x84, 0xa3, 0x9d, 0x9c, + 0x88, 0x8c, 0x02, 0x72, 0xe7, 0x7b, 0x88, 0xc1, 0xf8, 0xaa, 0x05, 0x63, 0x5e, 0xf6, 0x68, 0x5d, + 0xec, 0x00, 0x6f, 0x14, 0xe3, 0xd1, 0xeb, 0x3c, 0xb9, 0x57, 0x86, 0x43, 0x07, 0x08, 0x77, 0x76, + 0x06, 0xd5, 0xa1, 0xcf, 0x0b, 0x36, 0x42, 0x61, 0x2e, 0xcd, 0x1c, 0xad, 0x53, 0x0b, 0xc1, 0x46, + 0xa8, 0x57, 0x33, 0xfd, 0x87, 0x19, 0x75, 0xb4, 0x08, 0xa7, 0x64, 0xb6, 0xcb, 0x25, 0x2f, 0x4e, + 0xc2, 0x68, 0x77, 0xd1, 0x6b, 0x7a, 0x09, 0x33, 0x75, 0xca, 0x33, 0xe3, 0x54, 0x13, 0xe1, 0x1c, + 0x38, 0xce, 0x7d, 0x0a, 0xbd, 0x06, 0x03, 0xf2, 0x38, 0xbb, 0x5a, 0xc4, 0x6e, 0xba, 0x73, 0xfe, + 0xab, 0xc9, 0xb4, 0x2a, 0xce, 0xb3, 0x25, 0x43, 0xfb, 0xf5, 0x41, 0xe8, 0x3c, 0x75, 0x4f, 0x1f, + 0xb1, 0x5b, 0xf7, 0xfa, 0x88, 0x9d, 0x6e, 0x8d, 0x62, 0x7d, 0x3a, 0x5e, 0xc0, 0xdc, 0x16, 0x5c, + 0xf5, 0xc9, 0xe7, 0x6e, 0xe0, 0x62, 0xc6, 0x03, 0x45, 0xd0, 0xbf, 0x49, 0x1c, 0x3f, 0xd9, 0x2c, + 0xe6, 0x90, 0xe6, 0x12, 0xa3, 0x95, 0x4d, 0x51, 0xe3, 0xad, 0x58, 0x70, 0x42, 0x3b, 0x30, 0xb0, + 0xc9, 0x27, 0x80, 0xd8, 0xad, 0x2c, 0x1d, 0x75, 0x70, 0x53, 0xb3, 0x4a, 0x7f, 0x6e, 0xd1, 0x80, + 0x25, 0x3b, 0x16, 0xce, 0x65, 0x04, 0x9c, 0xf0, 0xa5, 0x5b, 0x5c, 0x76, 0x5e, 0xef, 0xd1, 0x26, + 0x1f, 0x82, 0xa1, 0x88, 0xb8, 0x61, 0xe0, 0x7a, 0x3e, 0xa9, 0x4f, 0xcb, 0x03, 0x98, 0xc3, 0x24, + 0x65, 0x31, 0xef, 0x05, 0x36, 0x68, 0xe0, 0x14, 0x45, 0xf4, 0x69, 0x0b, 0x46, 0x54, 0xa2, 0x36, + 0xfd, 0x20, 0x44, 0x38, 0xda, 0x17, 0x0b, 0x4a, 0x0b, 0x67, 0x34, 0x67, 0xd0, 0xed, 0xbd, 0x89, + 0x91, 0x74, 0x1b, 0xce, 0xf0, 0x45, 0x2f, 0x01, 0x84, 0xeb, 0x3c, 0x66, 0x6b, 0x3a, 0x11, 0x5e, + 0xf7, 0xc3, 0xbc, 0xea, 0x08, 0x4f, 0xee, 0x94, 0x14, 0xb0, 0x41, 0x0d, 0x5d, 0x01, 0xe0, 0xcb, + 0x66, 0x6d, 0xb7, 0x25, 0xb7, 0x34, 0x32, 0xab, 0x0e, 0x56, 0x15, 0xe4, 0xce, 0xde, 0x44, 0xa7, + 0x8f, 0x93, 0x05, 0xa6, 0x18, 0x8f, 0xa3, 0x9f, 0x85, 0x81, 0xb8, 0xdd, 0x6c, 0x3a, 0xca, 0x27, + 0x5f, 0x60, 0xba, 0x28, 0xa7, 0x6b, 0x88, 0x22, 0xde, 0x80, 0x25, 0x47, 0x74, 0x93, 0x0a, 0xd5, + 0x58, 0x38, 0x5f, 0xd9, 0x2a, 0xe2, 0x36, 0x01, 0xf7, 0x3c, 0xbd, 0x53, 0x9a, 0xf8, 0x38, 0x07, + 0xe7, 0xce, 0xde, 0xc4, 0x43, 0xe9, 0xf6, 0xc5, 0x50, 0x24, 0x70, 0xe6, 0xd2, 0x44, 0x97, 0x65, + 0xdd, 0x26, 0xfa, 0xda, 0xb2, 0x9c, 0xc8, 0x93, 0xba, 0x6e, 0x13, 0x6b, 0xee, 0x3e, 0x66, 0xe6, + 0xc3, 0x68, 0x09, 0x4e, 0xba, 0x61, 0x90, 0x44, 0xa1, 0xef, 0xf3, 0xba, 0x65, 0x7c, 0x77, 0xc9, + 0x7d, 0xf6, 0x6f, 0x15, 0xdd, 0x3e, 0x39, 0xdb, 0x89, 0x82, 0xf3, 0x9e, 0xb3, 0x83, 0xf4, 0xf9, + 0x99, 0x18, 0x9c, 0x67, 0x61, 0x88, 0xec, 0x24, 0x24, 0x0a, 0x1c, 0xff, 0x1a, 0x5e, 0x94, 0xbe, + 0x68, 0xb6, 0x06, 0x2e, 0x18, 0xed, 0x38, 0x85, 0x85, 0x6c, 0xe5, 0x52, 0x31, 0x92, 0x92, 0xb9, + 0x4b, 0x45, 0x3a, 0x50, 0xec, 0x6f, 0x94, 0x53, 0x06, 0xd9, 0x7d, 0x39, 0xad, 0x63, 0xd5, 0x6f, + 0x64, 0x99, 0x20, 0x06, 0x10, 0x1b, 0x8d, 0x22, 0x39, 0xab, 0xea, 0x37, 0xcb, 0x26, 0x23, 0x9c, + 0xe6, 0x8b, 0xb6, 0xa0, 0xb2, 0x19, 0xc6, 0x89, 0xdc, 0x7e, 0x1c, 0x71, 0xa7, 0x73, 0x29, 0x8c, + 0x13, 0x66, 0x45, 0xa8, 0xd7, 0xa6, 0x2d, 0x31, 0xe6, 0x3c, 0xe8, 0x1e, 0x34, 0xde, 0x74, 0xa2, + 0x7a, 0x3c, 0xcb, 0x4a, 0x08, 0xf4, 0x31, 0xf3, 0x41, 0x19, 0x8b, 0xab, 0x1a, 0x84, 0x4d, 0x3c, + 0xfb, 0xcf, 0xad, 0xd4, 0x81, 0xc5, 0x0d, 0x16, 0x0f, 0xbe, 0x4d, 0x02, 0x2a, 0x0d, 0xcc, 0x08, + 0xb4, 0x9f, 0xcc, 0x64, 0xd7, 0xbe, 0xbd, 0x5b, 0x35, 0xbf, 0x5b, 0x94, 0xc2, 0x24, 0x23, 0x61, + 0x04, 0xab, 0x7d, 0xcc, 0x4a, 0xa7, 0x49, 0x97, 0x8a, 0xd8, 0x97, 0x98, 0xa5, 0x02, 0x0e, 0xcc, + 0xb8, 0xb6, 0xbf, 0x68, 0xc1, 0xc0, 0x8c, 0xe3, 0x6e, 0x85, 0x1b, 0x1b, 0xe8, 0x29, 0xa8, 0xd6, + 0xdb, 0x91, 0x99, 0xb1, 0xad, 0x3c, 0x1b, 0x73, 0xa2, 0x1d, 0x2b, 0x0c, 0x3a, 0xf5, 0x37, 0x1c, + 0x57, 0x16, 0x0c, 0x28, 0xf3, 0xa9, 0x7f, 0x91, 0xb5, 0x60, 0x01, 0xa1, 0xc3, 0xdf, 0x74, 0x76, + 0xe4, 0xc3, 0xd9, 0xd3, 0x92, 0x25, 0x0d, 0xc2, 0x26, 0x9e, 0xfd, 0xaf, 0x2d, 0x18, 0x9f, 0x71, + 0x62, 0xcf, 0x9d, 0x6e, 0x27, 0x9b, 0x33, 0x5e, 0xb2, 0xde, 0x76, 0xb7, 0x48, 0xc2, 0x0b, 0x4b, + 0xd0, 0x5e, 0xb6, 0x63, 0xba, 0x02, 0xd5, 0x76, 0x50, 0xf5, 0xf2, 0x9a, 0x68, 0xc7, 0x0a, 0x03, + 0xbd, 0x06, 0x83, 0x2d, 0x27, 0x8e, 0x6f, 0x85, 0x51, 0x1d, 0x93, 0x8d, 0x62, 0x4a, 0xcf, 0xac, + 0x12, 0x37, 0x22, 0x09, 0x26, 0x1b, 0x22, 0xf6, 0x40, 0xd3, 0xc7, 0x26, 0x33, 0xfb, 0x97, 0x2c, + 0x38, 0x35, 0x43, 0x9c, 0x88, 0x44, 0xac, 0x52, 0x8d, 0x7a, 0x11, 0xf4, 0x2a, 0x54, 0x13, 0xda, + 0x42, 0x7b, 0x64, 0x15, 0xdb, 0x23, 0x16, 0x35, 0xb0, 0x26, 0x88, 0x63, 0xc5, 0xc6, 0xfe, 0xbc, + 0x05, 0x8f, 0xe4, 0xf5, 0x65, 0xd6, 0x0f, 0xdb, 0xf5, 0xfb, 0xd1, 0xa1, 0xbf, 0x63, 0xc1, 0x10, + 0x3b, 0x89, 0x9d, 0x23, 0x89, 0xe3, 0xf9, 0x1d, 0x55, 0xf2, 0xac, 0x1e, 0xab, 0xe4, 0x9d, 0x83, + 0xbe, 0xcd, 0xb0, 0x49, 0xb2, 0x51, 0x04, 0x97, 0xc2, 0x26, 0xc1, 0x0c, 0x82, 0x9e, 0xa1, 0x93, + 0xd0, 0x0b, 0x12, 0x87, 0x2e, 0x47, 0xe9, 0xfb, 0x1e, 0xe5, 0x13, 0x50, 0x35, 0x63, 0x13, 0xc7, + 0xfe, 0x57, 0x35, 0x18, 0x10, 0x21, 0x2f, 0x3d, 0x17, 0x3a, 0x91, 0x2e, 0x8a, 0x52, 0x57, 0x17, + 0x45, 0x0c, 0xfd, 0x2e, 0x2b, 0xd7, 0x29, 0x2c, 0xe1, 0x2b, 0x85, 0xc4, 0x48, 0xf1, 0x0a, 0xa0, + 0xba, 0x5b, 0xfc, 0x3f, 0x16, 0xac, 0xd0, 0x17, 0x2c, 0x18, 0x75, 0xc3, 0x20, 0x20, 0xae, 0x36, + 0xd3, 0xfa, 0x8a, 0x08, 0x85, 0x99, 0x4d, 0x13, 0xd5, 0x87, 0x7c, 0x19, 0x00, 0xce, 0xb2, 0x47, + 0x2f, 0xc0, 0x30, 0x1f, 0xb3, 0xeb, 0x29, 0x87, 0xbd, 0x2e, 0x9e, 0x66, 0x02, 0x71, 0x1a, 0x17, + 0x4d, 0xf2, 0x83, 0x0f, 0x51, 0xa6, 0xac, 0x5f, 0xfb, 0x35, 0x8d, 0x02, 0x65, 0x06, 0x06, 0x8a, + 0x00, 0x45, 0x64, 0x23, 0x22, 0xf1, 0xa6, 0x08, 0x09, 0x62, 0x26, 0xe2, 0xc0, 0xdd, 0x95, 0x28, + 0xc0, 0x1d, 0x94, 0x70, 0x0e, 0x75, 0xb4, 0x25, 0xf6, 0xc8, 0xd5, 0x22, 0xe4, 0xb9, 0xf8, 0xcc, + 0x5d, 0xb7, 0xca, 0x13, 0x50, 0x61, 0xaa, 0x8b, 0x99, 0xa6, 0x65, 0x9e, 0x16, 0xc7, 0x14, 0x1b, + 0xe6, 0xed, 0x68, 0x0e, 0x4e, 0x64, 0x4a, 0xbf, 0xc5, 0xc2, 0xb1, 0xae, 0x52, 0xa0, 0x32, 0x45, + 0xe3, 0x62, 0xdc, 0xf1, 0x84, 0xe9, 0x3f, 0x19, 0x3c, 0xc0, 0x7f, 0xb2, 0xab, 0x02, 0x4f, 0xb9, + 0xcb, 0xfb, 0xc5, 0x42, 0x06, 0xa0, 0xa7, 0x28, 0xd3, 0xcf, 0x65, 0xa2, 0x4c, 0x87, 0x59, 0x07, + 0xae, 0x17, 0xd3, 0x81, 0xc3, 0x87, 0x94, 0xde, 0xcf, 0x10, 0xd1, 0xff, 0x65, 0x81, 0xfc, 0xae, + 0xb3, 0x8e, 0xbb, 0x49, 0xe8, 0x94, 0x41, 0xef, 0x81, 0x11, 0xe5, 0x05, 0xe0, 0x26, 0x91, 0xc5, + 0x66, 0x8d, 0x8a, 0x06, 0xc0, 0x29, 0x28, 0xce, 0x60, 0xa3, 0x29, 0xa8, 0xd1, 0x71, 0xe2, 0x8f, + 0x72, 0xbd, 0xaf, 0x3c, 0x0d, 0xd3, 0x2b, 0x0b, 0xe2, 0x29, 0x8d, 0x83, 0x42, 0x18, 0xf3, 0x9d, + 0x38, 0x61, 0x3d, 0x58, 0xdd, 0x0d, 0xdc, 0xbb, 0x2c, 0x10, 0xc2, 0xf2, 0x6c, 0x16, 0xb3, 0x84, + 0x70, 0x27, 0x6d, 0xfb, 0x3f, 0x54, 0x60, 0x38, 0x25, 0x19, 0x0f, 0x69, 0x30, 0x3c, 0x05, 0x55, + 0xa9, 0xc3, 0xb3, 0x95, 0x90, 0x94, 0xa2, 0x57, 0x18, 0x54, 0x69, 0xad, 0x6b, 0xad, 0x9a, 0x35, + 0x70, 0x0c, 0x85, 0x8b, 0x4d, 0x3c, 0x26, 0x94, 0x13, 0x3f, 0x9e, 0xf5, 0x3d, 0x12, 0x24, 0xbc, + 0x9b, 0xc5, 0x08, 0xe5, 0xb5, 0xc5, 0x55, 0x93, 0xa8, 0x16, 0xca, 0x19, 0x00, 0xce, 0xb2, 0x47, + 0x9f, 0xb4, 0x60, 0xd8, 0xb9, 0x15, 0xeb, 0x9a, 0xd2, 0x22, 0x9e, 0xf4, 0x88, 0x4a, 0x2a, 0x55, + 0xa6, 0x9a, 0x7b, 0xad, 0x53, 0x4d, 0x38, 0xcd, 0x14, 0xbd, 0x61, 0x01, 0x22, 0x3b, 0xc4, 0x95, + 0x11, 0xaf, 0xa2, 0x2f, 0xfd, 0x45, 0x6c, 0x96, 0x2f, 0x74, 0xd0, 0xe5, 0x52, 0xbd, 0xb3, 0x1d, + 0xe7, 0xf4, 0x01, 0x5d, 0x06, 0x54, 0xf7, 0x62, 0x67, 0xdd, 0x27, 0xb3, 0x61, 0x53, 0xe6, 0x86, + 0x8a, 0xc3, 0xd7, 0x33, 0x62, 0x9c, 0xd1, 0x5c, 0x07, 0x06, 0xce, 0x79, 0x8a, 0xcd, 0xb2, 0x28, + 0xdc, 0xd9, 0xbd, 0x16, 0xf9, 0x4c, 0x4b, 0x98, 0xb3, 0x4c, 0xb4, 0x63, 0x85, 0x61, 0xff, 0x45, + 0x59, 0x2d, 0x65, 0x1d, 0xde, 0xed, 0x18, 0x61, 0xa6, 0xd6, 0xdd, 0x87, 0x99, 0xea, 0x20, 0x98, + 0xce, 0x8c, 0xe7, 0x54, 0x82, 0x64, 0xe9, 0x3e, 0x25, 0x48, 0xfe, 0xbc, 0x95, 0xaa, 0x36, 0x36, + 0x78, 0xfe, 0xa5, 0x62, 0x43, 0xcb, 0x27, 0x79, 0x80, 0x4e, 0x46, 0xaf, 0x64, 0xe2, 0xb2, 0x9e, + 0x82, 0xea, 0x86, 0xef, 0xb0, 0x1a, 0x19, 0x6c, 0xa1, 0x1a, 0xc1, 0x43, 0x17, 0x45, 0x3b, 0x56, + 0x18, 0x54, 0xea, 0x1b, 0x44, 0x0f, 0x25, 0xb5, 0xff, 0x53, 0x19, 0x06, 0x0d, 0x8d, 0x9f, 0x6b, + 0xbe, 0x59, 0x0f, 0x98, 0xf9, 0x56, 0x3a, 0x84, 0xf9, 0xf6, 0x73, 0x50, 0x73, 0xa5, 0x36, 0x2a, + 0xa6, 0x7a, 0x7a, 0x56, 0xc7, 0x69, 0x85, 0xa4, 0x9a, 0xb0, 0xe6, 0x89, 0xe6, 0x53, 0x49, 0x78, + 0x29, 0xbf, 0x40, 0x5e, 0x96, 0x9c, 0xd0, 0x68, 0x9d, 0xcf, 0x64, 0xcf, 0xa9, 0x2b, 0x07, 0x9f, + 0x53, 0xdb, 0xdf, 0xb1, 0xd4, 0xc7, 0xbd, 0x07, 0xd5, 0x56, 0x6e, 0xa6, 0xab, 0xad, 0x5c, 0x28, + 0x64, 0x98, 0xbb, 0x94, 0x59, 0xb9, 0x0a, 0x03, 0xb3, 0x61, 0xb3, 0xe9, 0x04, 0x75, 0xf4, 0xa3, + 0x30, 0xe0, 0xf2, 0x9f, 0xc2, 0x87, 0xc6, 0x4e, 0x62, 0x05, 0x14, 0x4b, 0x18, 0x3a, 0x0b, 0x7d, + 0x4e, 0xd4, 0x90, 0x7e, 0x33, 0x16, 0x31, 0x35, 0x1d, 0x35, 0x62, 0xcc, 0x5a, 0xed, 0x7f, 0xd6, + 0x07, 0x2c, 0x50, 0xc1, 0x89, 0x48, 0x7d, 0x2d, 0x64, 0x45, 0x4f, 0x8f, 0xf5, 0xfc, 0x52, 0x6f, + 0xea, 0x1e, 0xe4, 0x33, 0x4c, 0xe3, 0x1c, 0xab, 0x7c, 0x8f, 0xcf, 0xb1, 0xba, 0x1c, 0x4d, 0xf6, + 0x3d, 0x40, 0x47, 0x93, 0xf6, 0x67, 0x2d, 0x40, 0x2a, 0xba, 0x45, 0xc7, 0x0e, 0x4c, 0x41, 0x4d, + 0xc5, 0xb9, 0x08, 0x03, 0x50, 0x8b, 0x08, 0x09, 0xc0, 0x1a, 0xa7, 0x87, 0x9d, 0xfc, 0xe3, 0x52, + 0x7e, 0x97, 0xd3, 0xa1, 0xe5, 0x4c, 0xea, 0x0b, 0x71, 0x6e, 0xff, 0x6e, 0x09, 0x1e, 0xe2, 0xa6, + 0xc3, 0x92, 0x13, 0x38, 0x0d, 0xd2, 0xa4, 0xbd, 0xea, 0x35, 0x1a, 0xc4, 0xa5, 0x5b, 0x48, 0x4f, + 0x06, 0x82, 0x1f, 0x75, 0xed, 0xf2, 0x35, 0xc7, 0x57, 0xd9, 0x42, 0xe0, 0x25, 0x98, 0x11, 0x47, + 0x31, 0x54, 0xe5, 0xd5, 0x22, 0x42, 0x16, 0x17, 0xc4, 0x48, 0x89, 0x25, 0xa1, 0x65, 0x09, 0x56, + 0x8c, 0xa8, 0x2a, 0xf5, 0x43, 0x77, 0x0b, 0x93, 0x56, 0x98, 0x55, 0xa5, 0x8b, 0xa2, 0x1d, 0x2b, + 0x0c, 0xbb, 0x09, 0xa3, 0x72, 0x0c, 0x5b, 0x57, 0xc8, 0x2e, 0x26, 0x1b, 0x54, 0xff, 0xb8, 0xb2, + 0xc9, 0xb8, 0xed, 0x44, 0xe9, 0x9f, 0x59, 0x13, 0x88, 0xd3, 0xb8, 0xb2, 0x0e, 0x6a, 0x29, 0xbf, + 0x0e, 0xaa, 0xfd, 0xbb, 0x16, 0x64, 0x15, 0xa0, 0x51, 0xf5, 0xd1, 0xda, 0xb7, 0xea, 0xe3, 0x21, + 0xea, 0x26, 0xfe, 0x0c, 0x0c, 0x3a, 0x09, 0xb5, 0x70, 0xb8, 0x37, 0xa2, 0x7c, 0x77, 0x07, 0x56, + 0x4b, 0x61, 0xdd, 0xdb, 0xf0, 0x98, 0x17, 0xc2, 0x24, 0x67, 0xff, 0x55, 0x1f, 0x8c, 0x75, 0xe4, + 0x71, 0xa1, 0xe7, 0x61, 0x48, 0x0d, 0x85, 0xf4, 0xf3, 0xd5, 0xcc, 0xd0, 0x4a, 0x0d, 0xc3, 0x29, + 0xcc, 0x1e, 0xd6, 0xc3, 0x02, 0x9c, 0x8c, 0xc8, 0xab, 0x6d, 0xd2, 0x26, 0xd3, 0x1b, 0x09, 0x89, + 0x56, 0x89, 0x1b, 0x06, 0x75, 0x5e, 0x9b, 0xb4, 0x3c, 0xf3, 0xf0, 0xed, 0xbd, 0x89, 0x93, 0xb8, + 0x13, 0x8c, 0xf3, 0x9e, 0x41, 0x2d, 0x18, 0xf6, 0x4d, 0x03, 0x55, 0xec, 0x8b, 0xee, 0xca, 0xb6, + 0x55, 0x53, 0x22, 0xd5, 0x8c, 0xd3, 0x0c, 0xd2, 0x56, 0x6e, 0xe5, 0x3e, 0x59, 0xb9, 0x9f, 0xd0, + 0x56, 0x2e, 0x8f, 0xac, 0xf8, 0x40, 0xc1, 0x79, 0x7c, 0xbd, 0x98, 0xb9, 0x47, 0x31, 0x5c, 0x5f, + 0x84, 0xaa, 0x8c, 0x3a, 0xeb, 0x29, 0x5a, 0xcb, 0xa4, 0xd3, 0x45, 0x80, 0x3e, 0x01, 0x6f, 0xbb, + 0x10, 0x45, 0xc6, 0x60, 0x5e, 0x0d, 0x93, 0x69, 0xdf, 0x0f, 0x6f, 0x51, 0x9b, 0xe0, 0x5a, 0x4c, + 0x84, 0xe3, 0xc9, 0xbe, 0x53, 0x82, 0x9c, 0x3d, 0x1c, 0x5d, 0x8f, 0xda, 0x10, 0x49, 0xad, 0xc7, + 0xc3, 0x19, 0x23, 0x68, 0x87, 0x47, 0xe6, 0x71, 0x95, 0xfb, 0xfe, 0xa2, 0xf7, 0xa0, 0x3a, 0x58, + 0x4f, 0x89, 0x23, 0x15, 0xb0, 0x77, 0x1e, 0x40, 0xdb, 0x8f, 0x22, 0x75, 0x44, 0x1d, 0xfc, 0x6b, + 0x33, 0x13, 0x1b, 0x58, 0xe8, 0x39, 0x18, 0xf4, 0x82, 0x38, 0x71, 0x7c, 0xff, 0x92, 0x17, 0x24, + 0xc2, 0xb7, 0xaa, 0x6c, 0x8b, 0x05, 0x0d, 0xc2, 0x26, 0xde, 0x99, 0x77, 0x1a, 0xdf, 0xef, 0x30, + 0xdf, 0x7d, 0x13, 0x1e, 0x99, 0xf7, 0x12, 0x95, 0xf0, 0xa4, 0xe6, 0x1b, 0x35, 0x0f, 0x55, 0x8a, + 0x9f, 0xd5, 0x35, 0xc5, 0xcf, 0x48, 0x38, 0x2a, 0xa5, 0xf3, 0xa3, 0xb2, 0x09, 0x47, 0xf6, 0xf3, + 0x70, 0x6a, 0xde, 0x4b, 0x2e, 0x7a, 0x3e, 0x39, 0x24, 0x13, 0xfb, 0x77, 0xfa, 0x61, 0xc8, 0x4c, + 0xee, 0x3d, 0x4c, 0x96, 0xe2, 0xe7, 0xa9, 0x05, 0x28, 0xde, 0xce, 0x53, 0xc7, 0xa6, 0x37, 0x8e, + 0x9c, 0x69, 0x9c, 0x3f, 0x62, 0x86, 0x11, 0xa8, 0x79, 0x62, 0xb3, 0x03, 0xe8, 0x16, 0x54, 0x36, + 0x58, 0x42, 0x4c, 0xb9, 0x88, 0xd8, 0x92, 0xbc, 0x11, 0xd5, 0xcb, 0x91, 0xa7, 0xd4, 0x70, 0x7e, + 0x54, 0x71, 0x47, 0xe9, 0x3c, 0x4c, 0x23, 0xf0, 0x59, 0x64, 0x60, 0x2a, 0x8c, 0x6e, 0x2a, 0xa1, + 0x72, 0x17, 0x2a, 0x21, 0x25, 0xa0, 0xfb, 0xef, 0x93, 0x80, 0x66, 0xc9, 0x4d, 0xc9, 0x26, 0x33, + 0x2b, 0x45, 0xa6, 0xc6, 0x00, 0x1b, 0x04, 0x23, 0xb9, 0x29, 0x05, 0xc6, 0x59, 0x7c, 0xf4, 0x51, + 0x25, 0xe2, 0xab, 0x45, 0xb8, 0xa5, 0xcd, 0x19, 0x7d, 0xdc, 0xd2, 0xfd, 0xb3, 0x25, 0x18, 0x99, + 0x0f, 0xda, 0x2b, 0xf3, 0x2b, 0xed, 0x75, 0xdf, 0x73, 0xaf, 0x90, 0x5d, 0x2a, 0xc2, 0xb7, 0xc8, + 0xee, 0xc2, 0x9c, 0x58, 0x41, 0x6a, 0xce, 0x5c, 0xa1, 0x8d, 0x98, 0xc3, 0xa8, 0x30, 0xda, 0xf0, + 0x82, 0x06, 0x89, 0x5a, 0x91, 0x27, 0x3c, 0xc6, 0x86, 0x30, 0xba, 0xa8, 0x41, 0xd8, 0xc4, 0xa3, + 0xb4, 0xc3, 0x5b, 0x01, 0x89, 0xb2, 0xf6, 0xf5, 0x32, 0x6d, 0xc4, 0x1c, 0x46, 0x91, 0x92, 0xa8, + 0x2d, 0x1c, 0x32, 0x06, 0xd2, 0x1a, 0x6d, 0xc4, 0x1c, 0x46, 0x57, 0x7a, 0xdc, 0x5e, 0x67, 0xa1, + 0x3b, 0x99, 0xb4, 0x90, 0x55, 0xde, 0x8c, 0x25, 0x9c, 0xa2, 0x6e, 0x91, 0xdd, 0x39, 0xba, 0x19, + 0xcf, 0x64, 0xba, 0x5d, 0xe1, 0xcd, 0x58, 0xc2, 0x59, 0xf5, 0xd4, 0xf4, 0x70, 0xfc, 0xc0, 0x55, + 0x4f, 0x4d, 0x77, 0xbf, 0xcb, 0xb6, 0xfe, 0xd7, 0x2c, 0x18, 0x32, 0x03, 0xee, 0x50, 0x23, 0x63, + 0x0b, 0x2f, 0x77, 0x14, 0xdf, 0x7e, 0x77, 0xde, 0xc5, 0x94, 0x0d, 0x2f, 0x09, 0x5b, 0xf1, 0xd3, + 0x24, 0x68, 0x78, 0x01, 0x61, 0x01, 0x11, 0x3c, 0x50, 0x2f, 0x15, 0xcd, 0x37, 0x1b, 0xd6, 0xc9, + 0x5d, 0x18, 0xd3, 0xf6, 0x0d, 0x18, 0xeb, 0x48, 0x6f, 0xec, 0xc1, 0x04, 0x39, 0x30, 0xfd, 0xdc, + 0xc6, 0x30, 0x48, 0x09, 0xcb, 0x0a, 0x5e, 0xb3, 0x30, 0xc6, 0x17, 0x12, 0xe5, 0xb4, 0xea, 0x6e, + 0x92, 0xa6, 0x4a, 0x59, 0x65, 0xc7, 0x13, 0xd7, 0xb3, 0x40, 0xdc, 0x89, 0x6f, 0x7f, 0xce, 0x82, + 0xe1, 0x54, 0xc6, 0x69, 0x41, 0xc6, 0x12, 0x5b, 0x69, 0x21, 0x8b, 0xff, 0x64, 0x41, 0xf0, 0x65, + 0xa6, 0x4c, 0xf5, 0x4a, 0xd3, 0x20, 0x6c, 0xe2, 0xd9, 0x5f, 0x2c, 0x41, 0x55, 0xc6, 0xd0, 0xf4, + 0xd0, 0x95, 0xcf, 0x58, 0x30, 0xac, 0x8e, 0x84, 0x98, 0x0f, 0xaf, 0x54, 0x44, 0x4a, 0x0d, 0xed, + 0x81, 0xf2, 0x02, 0x04, 0x1b, 0xa1, 0xb6, 0xdc, 0xb1, 0xc9, 0x0c, 0xa7, 0x79, 0xa3, 0xeb, 0x00, + 0xf1, 0x6e, 0x9c, 0x90, 0xa6, 0xe1, 0x4d, 0xb4, 0x8d, 0x15, 0x37, 0xe9, 0x86, 0x11, 0xa1, 0xeb, + 0xeb, 0x6a, 0x58, 0x27, 0xab, 0x0a, 0x53, 0x9b, 0x50, 0xba, 0x0d, 0x1b, 0x94, 0xec, 0x7f, 0x52, + 0x82, 0x13, 0xd9, 0x2e, 0xa1, 0x0f, 0xc0, 0x90, 0xe4, 0x6e, 0xec, 0x3a, 0x65, 0x04, 0xd0, 0x10, + 0x36, 0x60, 0x77, 0xf6, 0x26, 0x26, 0x3a, 0x2f, 0x39, 0x9d, 0x34, 0x51, 0x70, 0x8a, 0x18, 0x3f, + 0x97, 0x13, 0x07, 0xc8, 0x33, 0xbb, 0xd3, 0xad, 0x96, 0x38, 0x5c, 0x33, 0xce, 0xe5, 0x4c, 0x28, + 0xce, 0x60, 0xa3, 0x15, 0x38, 0x65, 0xb4, 0x5c, 0x25, 0x5e, 0x63, 0x73, 0x3d, 0x8c, 0xe4, 0x0e, + 0xec, 0xac, 0x0e, 0xed, 0xeb, 0xc4, 0xc1, 0xb9, 0x4f, 0x52, 0x6d, 0xef, 0x3a, 0x2d, 0xc7, 0xf5, + 0x92, 0x5d, 0xe1, 0x1e, 0x55, 0xb2, 0x69, 0x56, 0xb4, 0x63, 0x85, 0x61, 0x2f, 0x41, 0x5f, 0x8f, + 0x33, 0xa8, 0x27, 0xcb, 0xff, 0x45, 0xa8, 0x52, 0x72, 0xd2, 0xbc, 0x2b, 0x82, 0x64, 0x08, 0x55, + 0x79, 0x65, 0x14, 0xb2, 0xa1, 0xec, 0x39, 0xf2, 0xe8, 0x53, 0xbd, 0xd6, 0x42, 0x1c, 0xb7, 0xd9, + 0x66, 0x9a, 0x02, 0xd1, 0xe3, 0x50, 0x26, 0x3b, 0xad, 0xec, 0x19, 0xe7, 0x85, 0x9d, 0x96, 0x17, + 0x91, 0x98, 0x22, 0x91, 0x9d, 0x16, 0x3a, 0x03, 0x25, 0xaf, 0x2e, 0x94, 0x14, 0x08, 0x9c, 0xd2, + 0xc2, 0x1c, 0x2e, 0x79, 0x75, 0x7b, 0x07, 0x6a, 0xea, 0x8e, 0x2a, 0xb4, 0x25, 0x65, 0xb7, 0x55, + 0x44, 0xd0, 0x9b, 0xa4, 0xdb, 0x45, 0x6a, 0xb7, 0x01, 0x74, 0xba, 0x6a, 0x51, 0xf2, 0xe5, 0x1c, + 0xf4, 0xb9, 0xa1, 0x28, 0x0b, 0x50, 0xd5, 0x64, 0x98, 0xd0, 0x66, 0x10, 0xfb, 0x06, 0x8c, 0x5c, + 0x09, 0xc2, 0x5b, 0xec, 0x2a, 0x09, 0x56, 0x39, 0x91, 0x12, 0xde, 0xa0, 0x3f, 0xb2, 0x26, 0x02, + 0x83, 0x62, 0x0e, 0x53, 0x35, 0xdd, 0x4a, 0xdd, 0x6a, 0xba, 0xd9, 0x1f, 0xb3, 0x60, 0x48, 0xe5, + 0xbd, 0xcd, 0x6f, 0x6f, 0x51, 0xba, 0x8d, 0x28, 0x6c, 0xb7, 0xb2, 0x74, 0xd9, 0x75, 0x78, 0x98, + 0xc3, 0xcc, 0x84, 0xd0, 0xd2, 0x01, 0x09, 0xa1, 0xe7, 0xa0, 0x6f, 0xcb, 0x0b, 0xea, 0xd9, 0x6b, + 0x91, 0xae, 0x78, 0x41, 0x1d, 0x33, 0x08, 0xed, 0xc2, 0x09, 0xd5, 0x05, 0xa9, 0x10, 0x9e, 0x87, + 0xa1, 0xf5, 0xb6, 0xe7, 0xd7, 0x65, 0x49, 0xc8, 0x8c, 0x47, 0x65, 0xc6, 0x80, 0xe1, 0x14, 0x26, + 0xdd, 0xd7, 0xad, 0x7b, 0x81, 0x13, 0xed, 0xae, 0x68, 0x0d, 0xa4, 0x84, 0xd2, 0x8c, 0x82, 0x60, + 0x03, 0xcb, 0x7e, 0xbd, 0x0c, 0x23, 0xe9, 0xec, 0xbf, 0x1e, 0xb6, 0x57, 0x8f, 0x43, 0x85, 0x25, + 0x04, 0x66, 0x3f, 0x2d, 0xaf, 0xa2, 0xc8, 0x61, 0x28, 0x86, 0x7e, 0x5e, 0x38, 0xa5, 0x98, 0x2b, + 0xc5, 0x54, 0x27, 0x95, 0x1f, 0x86, 0x85, 0x06, 0x8a, 0x5a, 0x2d, 0x82, 0x15, 0xfa, 0xa4, 0x05, + 0x03, 0x61, 0xcb, 0xac, 0x05, 0xf6, 0xfe, 0x22, 0x33, 0x23, 0x45, 0xba, 0x94, 0xb0, 0x88, 0xd5, + 0xa7, 0x97, 0x9f, 0x43, 0xb2, 0x3e, 0xf3, 0x2e, 0x18, 0x32, 0x31, 0x0f, 0x32, 0x8a, 0xab, 0xa6, + 0x51, 0xfc, 0x19, 0x73, 0x52, 0x88, 0xdc, 0xcf, 0x1e, 0x96, 0xdb, 0x35, 0xa8, 0xb8, 0x2a, 0x7e, + 0xe2, 0xae, 0x0a, 0x09, 0xab, 0x4a, 0x26, 0xec, 0x6c, 0x8a, 0x53, 0xb3, 0xbf, 0x63, 0x19, 0xf3, + 0x03, 0x93, 0x78, 0xa1, 0x8e, 0x22, 0x28, 0x37, 0xb6, 0xb7, 0x84, 0x29, 0x7a, 0xb9, 0xa0, 0xe1, + 0x9d, 0xdf, 0xde, 0xd2, 0x73, 0xdc, 0x6c, 0xc5, 0x94, 0x59, 0x0f, 0xce, 0xc2, 0x54, 0x8a, 0x70, + 0xf9, 0xe0, 0x14, 0x61, 0xfb, 0x8d, 0x12, 0x8c, 0x75, 0x4c, 0x2a, 0xf4, 0x1a, 0x54, 0x22, 0xfa, + 0x96, 0xe2, 0xf5, 0x16, 0x0b, 0x4b, 0xea, 0x8d, 0x17, 0xea, 0x5a, 0xef, 0xa6, 0xdb, 0x31, 0x67, + 0x89, 0x2e, 0x03, 0xd2, 0x51, 0x3e, 0xca, 0x53, 0xc9, 0x5f, 0x59, 0x85, 0x02, 0x4c, 0x77, 0x60, + 0xe0, 0x9c, 0xa7, 0xd0, 0x0b, 0x59, 0x87, 0x67, 0x39, 0xed, 0xce, 0xde, 0xcf, 0x77, 0x69, 0xff, + 0x56, 0x09, 0x86, 0x53, 0xa5, 0xd9, 0x90, 0x0f, 0x55, 0xe2, 0xb3, 0xb3, 0x06, 0xa9, 0x6c, 0x8e, + 0x5a, 0x68, 0x5d, 0x29, 0xc8, 0x0b, 0x82, 0x2e, 0x56, 0x1c, 0x1e, 0x8c, 0x08, 0x81, 0xe7, 0x61, + 0x48, 0x76, 0xe8, 0xfd, 0x4e, 0xd3, 0x17, 0x03, 0xa8, 0xe6, 0xe8, 0x05, 0x03, 0x86, 0x53, 0x98, + 0xf6, 0xef, 0x95, 0x61, 0x9c, 0x1f, 0xce, 0xd4, 0xd5, 0xcc, 0x5b, 0x92, 0xfb, 0xad, 0xbf, 0xa1, + 0x0b, 0x28, 0x5a, 0x45, 0xdc, 0x26, 0xda, 0x8d, 0x51, 0x4f, 0x81, 0x6d, 0x5f, 0xc9, 0x04, 0xb6, + 0x71, 0xb3, 0xbb, 0x71, 0x4c, 0x3d, 0xfa, 0xc1, 0x8a, 0x74, 0xfb, 0x87, 0x25, 0x18, 0xcd, 0x5c, + 0x1a, 0x83, 0x5e, 0x4f, 0xd7, 0x19, 0xb7, 0x8a, 0xf0, 0xa9, 0xef, 0x7b, 0x8f, 0xc8, 0xe1, 0xaa, + 0x8d, 0xdf, 0xa7, 0xa5, 0x62, 0x7f, 0xbb, 0x04, 0x23, 0xe9, 0xdb, 0x6e, 0x1e, 0xc0, 0x91, 0x7a, + 0x07, 0xd4, 0xd8, 0x85, 0x0e, 0xec, 0x92, 0x66, 0xee, 0x92, 0xe7, 0xb5, 0xf3, 0x65, 0x23, 0xd6, + 0xf0, 0x07, 0xa2, 0x88, 0xbb, 0xfd, 0x8f, 0x2d, 0x38, 0xcd, 0xdf, 0x32, 0x3b, 0x0f, 0xff, 0x66, + 0xde, 0xe8, 0xbe, 0x5c, 0x6c, 0x07, 0x33, 0x85, 0x3f, 0x0f, 0x1a, 0x5f, 0x76, 0xa7, 0xaa, 0xe8, + 0x6d, 0x7a, 0x2a, 0x3c, 0x80, 0x9d, 0x3d, 0xd4, 0x64, 0xb0, 0xbf, 0x5d, 0x06, 0x7d, 0x8d, 0x2c, + 0xf2, 0x44, 0x96, 0x6b, 0x21, 0x05, 0x50, 0x57, 0x77, 0x03, 0x57, 0x5f, 0x58, 0x5b, 0xcd, 0x24, + 0xb9, 0xfe, 0xa2, 0x05, 0x83, 0x5e, 0xe0, 0x25, 0x9e, 0xc3, 0xb6, 0xd1, 0xc5, 0xdc, 0x05, 0xa9, + 0xd8, 0x2d, 0x70, 0xca, 0x61, 0x64, 0x9e, 0xe3, 0x28, 0x66, 0xd8, 0xe4, 0x8c, 0x3e, 0x24, 0x62, + 0xcf, 0xcb, 0x85, 0xe5, 0x67, 0x57, 0x33, 0x01, 0xe7, 0x2d, 0x6a, 0x78, 0x25, 0x51, 0x41, 0x65, + 0x0d, 0x30, 0x25, 0xa5, 0x6a, 0x69, 0x2b, 0xd3, 0x96, 0x35, 0x63, 0xce, 0xc8, 0x8e, 0x01, 0x75, + 0x8e, 0xc5, 0x21, 0xe3, 0x7a, 0xa7, 0xa0, 0xe6, 0xb4, 0x93, 0xb0, 0x49, 0x87, 0x49, 0x1c, 0x35, + 0xe9, 0xc8, 0x65, 0x09, 0xc0, 0x1a, 0xc7, 0x7e, 0xbd, 0x02, 0x99, 0xb4, 0x53, 0xb4, 0x63, 0x5e, + 0x81, 0x6c, 0x15, 0x7b, 0x05, 0xb2, 0xea, 0x4c, 0xde, 0x35, 0xc8, 0xa8, 0x01, 0x95, 0xd6, 0xa6, + 0x13, 0x4b, 0xb3, 0xfa, 0x45, 0xb5, 0x8f, 0xa3, 0x8d, 0x77, 0xf6, 0x26, 0x7e, 0xba, 0x37, 0xaf, + 0x2b, 0x9d, 0xab, 0x53, 0xbc, 0x54, 0x8e, 0x66, 0xcd, 0x68, 0x60, 0x4e, 0xff, 0x30, 0xb7, 0x61, + 0x7e, 0x5c, 0xdc, 0x5c, 0x81, 0x49, 0xdc, 0xf6, 0x13, 0x31, 0x1b, 0x5e, 0x2c, 0x70, 0x95, 0x71, + 0xc2, 0xba, 0x60, 0x02, 0xff, 0x8f, 0x0d, 0xa6, 0xe8, 0x03, 0x50, 0x8b, 0x13, 0x27, 0x4a, 0xee, + 0x32, 0xc5, 0x59, 0x97, 0x34, 0x93, 0x44, 0xb0, 0xa6, 0x87, 0x5e, 0x62, 0xf5, 0xa0, 0xbd, 0x78, + 0xf3, 0x2e, 0x53, 0x46, 0x64, 0xed, 0x68, 0x41, 0x01, 0x1b, 0xd4, 0xd0, 0x79, 0x00, 0x36, 0xb7, + 0x79, 0xfc, 0x61, 0x95, 0x79, 0x99, 0x94, 0x28, 0xc4, 0x0a, 0x82, 0x0d, 0x2c, 0xfb, 0xc7, 0x21, + 0x5d, 0xf1, 0x03, 0x4d, 0xc8, 0x02, 0x23, 0xdc, 0x0b, 0xcd, 0x52, 0x3f, 0x52, 0xb5, 0x40, 0x7e, + 0xc3, 0x02, 0xb3, 0x2c, 0x09, 0x7a, 0x95, 0xd7, 0x3f, 0xb1, 0x8a, 0x38, 0x39, 0x34, 0xe8, 0x4e, + 0x2e, 0x39, 0xad, 0xcc, 0x11, 0xb6, 0x2c, 0x82, 0x72, 0xe6, 0x9d, 0x50, 0x95, 0xd0, 0x43, 0x19, + 0x75, 0x1f, 0x85, 0x93, 0x32, 0x8d, 0x54, 0xfa, 0x4d, 0xc5, 0xa9, 0xd3, 0xc1, 0xae, 0x1f, 0xe9, + 0xcf, 0x29, 0x75, 0xf3, 0xe7, 0xf4, 0x70, 0x11, 0xf6, 0x6f, 0x5a, 0x70, 0x2e, 0xdb, 0x81, 0x78, + 0x29, 0x0c, 0xbc, 0x24, 0x8c, 0x56, 0x49, 0x92, 0x78, 0x41, 0x83, 0x95, 0x7d, 0xbb, 0xe5, 0x44, + 0xb2, 0x50, 0x3f, 0x13, 0x94, 0x37, 0x9c, 0x28, 0xc0, 0xac, 0x15, 0xed, 0x42, 0x3f, 0x0f, 0x52, + 0x13, 0xd6, 0xfa, 0x11, 0xd7, 0x46, 0xce, 0x70, 0xe8, 0xed, 0x02, 0x0f, 0x90, 0xc3, 0x82, 0xa1, + 0xfd, 0x3d, 0x0b, 0xd0, 0xf2, 0x36, 0x89, 0x22, 0xaf, 0x6e, 0x84, 0xd5, 0xb1, 0x1b, 0xa0, 0x8c, + 0x9b, 0x9e, 0xcc, 0x24, 0xe7, 0xcc, 0x0d, 0x50, 0xc6, 0xbf, 0xfc, 0x1b, 0xa0, 0x4a, 0x87, 0xbb, + 0x01, 0x0a, 0x2d, 0xc3, 0xe9, 0x26, 0xdf, 0x6e, 0xf0, 0x5b, 0x55, 0xf8, 0xde, 0x43, 0xe5, 0xe3, + 0x3d, 0x72, 0x7b, 0x6f, 0xe2, 0xf4, 0x52, 0x1e, 0x02, 0xce, 0x7f, 0xce, 0x7e, 0x27, 0x20, 0x1e, + 0x4d, 0x37, 0x9b, 0x17, 0xab, 0xd4, 0xd5, 0xfd, 0x62, 0x7f, 0xb9, 0x02, 0xa3, 0x99, 0x32, 0xce, + 0x74, 0xab, 0xd7, 0x19, 0x1c, 0x75, 0x64, 0xfd, 0xdd, 0xd9, 0xbd, 0x9e, 0xc2, 0xad, 0x02, 0xa8, + 0x78, 0x41, 0xab, 0x9d, 0x14, 0x93, 0x0e, 0xcc, 0x3b, 0xb1, 0x40, 0x09, 0x1a, 0xee, 0x62, 0xfa, + 0x17, 0x73, 0x36, 0x45, 0x06, 0x6f, 0xa5, 0x8c, 0xf1, 0xbe, 0xfb, 0xe4, 0x0e, 0xf8, 0xb8, 0x0e, + 0xa5, 0xaa, 0x14, 0xe1, 0x58, 0xcc, 0x4c, 0x96, 0xe3, 0x3e, 0x6a, 0xff, 0x46, 0x09, 0x06, 0x8d, + 0x8f, 0x86, 0x7e, 0x35, 0x5d, 0xb4, 0xcb, 0x2a, 0xee, 0x95, 0x18, 0xfd, 0x49, 0x5d, 0x96, 0x8b, + 0xbf, 0xd2, 0x13, 0x9d, 0xf5, 0xba, 0xee, 0xec, 0x4d, 0x9c, 0xc8, 0x54, 0xe4, 0x4a, 0xd5, 0xf0, + 0x3a, 0xf3, 0x11, 0x18, 0xcd, 0x90, 0xc9, 0x79, 0xe5, 0x35, 0xf3, 0x95, 0x8f, 0xec, 0x96, 0x32, + 0x87, 0xec, 0xeb, 0x74, 0xc8, 0x44, 0x16, 0x62, 0xe8, 0x93, 0x1e, 0x7c, 0xb0, 0x99, 0x64, 0xe3, + 0x52, 0x8f, 0xc9, 0xc6, 0x4f, 0x42, 0xb5, 0x15, 0xfa, 0x9e, 0xeb, 0xa9, 0x1a, 0x9a, 0x2c, 0xbd, + 0x79, 0x45, 0xb4, 0x61, 0x05, 0x45, 0xb7, 0xa0, 0x76, 0xf3, 0x56, 0xc2, 0x4f, 0x7f, 0x84, 0x7f, + 0xbb, 0xa8, 0x43, 0x1f, 0x65, 0xb4, 0xa8, 0xe3, 0x25, 0xac, 0x79, 0x21, 0x1b, 0xfa, 0x99, 0x12, + 0x94, 0x19, 0x09, 0xcc, 0xf7, 0xce, 0xb4, 0x63, 0x8c, 0x05, 0xc4, 0xfe, 0x5a, 0x0d, 0x4e, 0xe5, + 0xd5, 0xd2, 0x47, 0x1f, 0x86, 0x7e, 0xde, 0xc7, 0x62, 0xae, 0x6b, 0xc9, 0xe3, 0x31, 0xcf, 0x08, + 0x8a, 0x6e, 0xb1, 0xdf, 0x58, 0xf0, 0x14, 0xdc, 0x7d, 0x67, 0x5d, 0xcc, 0x90, 0xe3, 0xe1, 0xbe, + 0xe8, 0x68, 0xee, 0x8b, 0x0e, 0xe7, 0xee, 0x3b, 0xeb, 0x68, 0x07, 0x2a, 0x0d, 0x2f, 0x21, 0x8e, + 0x70, 0x22, 0xdc, 0x38, 0x16, 0xe6, 0xc4, 0xe1, 0x56, 0x1a, 0xfb, 0x89, 0x39, 0x43, 0xf4, 0x55, + 0x0b, 0x46, 0xd7, 0xd3, 0x55, 0x0e, 0x84, 0xf0, 0x74, 0x8e, 0xe1, 0xbe, 0x84, 0x34, 0x23, 0x7e, + 0x05, 0x5a, 0xa6, 0x11, 0x67, 0xbb, 0x83, 0x3e, 0x61, 0xc1, 0xc0, 0x86, 0xe7, 0x1b, 0x05, 0xa9, + 0x8f, 0xe1, 0xe3, 0x5c, 0x64, 0x0c, 0xf4, 0x8e, 0x83, 0xff, 0x8f, 0xb1, 0xe4, 0xdc, 0x4d, 0x53, + 0xf5, 0x1f, 0x55, 0x53, 0x0d, 0xdc, 0x27, 0x4d, 0xf5, 0x69, 0x0b, 0x6a, 0x6a, 0xa4, 0x45, 0xb6, + 0xf8, 0x07, 0x8e, 0xf1, 0x93, 0x73, 0xcf, 0x89, 0xfa, 0x8b, 0x35, 0x73, 0xf4, 0x05, 0x0b, 0x06, + 0x9d, 0xd7, 0xda, 0x11, 0xa9, 0x93, 0xed, 0xb0, 0x15, 0x8b, 0xfb, 0x53, 0x5f, 0x2e, 0xbe, 0x33, + 0xd3, 0x94, 0xc9, 0x1c, 0xd9, 0x5e, 0x6e, 0xc5, 0x22, 0x5b, 0x4a, 0x37, 0x60, 0xb3, 0x0b, 0xf6, + 0x5e, 0x09, 0x26, 0x0e, 0xa0, 0x80, 0x9e, 0x87, 0xa1, 0x30, 0x6a, 0x38, 0x81, 0xf7, 0x9a, 0x59, + 0xb6, 0x44, 0x59, 0x59, 0xcb, 0x06, 0x0c, 0xa7, 0x30, 0xcd, 0x7c, 0xf6, 0xd2, 0x01, 0xf9, 0xec, + 0xe7, 0xa0, 0x2f, 0x22, 0xad, 0x30, 0xbb, 0x59, 0x60, 0x99, 0x0a, 0x0c, 0x82, 0x1e, 0x85, 0xb2, + 0xd3, 0xf2, 0x44, 0x20, 0x9a, 0xda, 0x03, 0x4d, 0xaf, 0x2c, 0x60, 0xda, 0x9e, 0x2a, 0xaf, 0x51, + 0xb9, 0x27, 0xe5, 0x35, 0xa8, 0x1a, 0x10, 0x67, 0x17, 0xfd, 0x5a, 0x0d, 0xa4, 0xcf, 0x14, 0xec, + 0x37, 0xca, 0xf0, 0xe8, 0xbe, 0xf3, 0x45, 0xc7, 0xe1, 0x59, 0xfb, 0xc4, 0xe1, 0xc9, 0xe1, 0x29, + 0x1d, 0x34, 0x3c, 0xe5, 0x2e, 0xc3, 0xf3, 0x09, 0xba, 0x0c, 0x64, 0xb9, 0x97, 0x62, 0x6e, 0xc0, + 0xec, 0x56, 0x3d, 0x46, 0xac, 0x00, 0x09, 0xc5, 0x9a, 0x2f, 0xdd, 0x03, 0xa4, 0x72, 0xb9, 0x2b, + 0x45, 0xa8, 0x81, 0xae, 0x25, 0x57, 0xf8, 0xdc, 0xef, 0x96, 0x20, 0x6e, 0xff, 0x76, 0x1f, 0x3c, + 0xde, 0x83, 0xf4, 0x36, 0x67, 0xb1, 0xd5, 0xe3, 0x2c, 0xfe, 0x01, 0xff, 0x4c, 0x9f, 0xca, 0xfd, + 0x4c, 0xb8, 0xf8, 0xcf, 0xb4, 0xff, 0x17, 0x42, 0x4f, 0x41, 0xd5, 0x0b, 0x62, 0xe2, 0xb6, 0x23, + 0x1e, 0x93, 0x6c, 0xa4, 0x31, 0x2d, 0x88, 0x76, 0xac, 0x30, 0xe8, 0x9e, 0xce, 0x75, 0xe8, 0xf2, + 0x1f, 0x28, 0x28, 0x77, 0xd7, 0xcc, 0x88, 0xe2, 0x26, 0xc5, 0xec, 0x34, 0x95, 0x00, 0x9c, 0x8d, + 0xfd, 0xb7, 0x2c, 0x38, 0xd3, 0x5d, 0xc5, 0xa2, 0x67, 0x60, 0x70, 0x3d, 0x72, 0x02, 0x77, 0x93, + 0xdd, 0x7d, 0x2c, 0xa7, 0x0e, 0x7b, 0x5f, 0xdd, 0x8c, 0x4d, 0x1c, 0x34, 0x0b, 0x63, 0x3c, 0x72, + 0xc3, 0xc0, 0x90, 0x99, 0xbf, 0xb7, 0xf7, 0x26, 0xc6, 0xd6, 0xb2, 0x40, 0xdc, 0x89, 0x6f, 0x7f, + 0xbf, 0x9c, 0xdf, 0x2d, 0x6e, 0x8a, 0x1d, 0x66, 0x36, 0x8b, 0xb9, 0x5a, 0xea, 0x41, 0xe2, 0x96, + 0xef, 0xb5, 0xc4, 0xed, 0xeb, 0x26, 0x71, 0xd1, 0x1c, 0x9c, 0x30, 0x2e, 0xa7, 0xe2, 0xd9, 0xdc, + 0x3c, 0x2c, 0x59, 0x95, 0x62, 0x59, 0xc9, 0xc0, 0x71, 0xc7, 0x13, 0x0f, 0xf8, 0xd4, 0xfb, 0xb5, + 0x12, 0x3c, 0xd2, 0xd5, 0xfa, 0xbd, 0x47, 0x1a, 0xc5, 0xfc, 0xfc, 0x7d, 0xf7, 0xe6, 0xf3, 0x9b, + 0x1f, 0xa5, 0x72, 0xd0, 0x47, 0xb1, 0xff, 0xb8, 0xd4, 0x75, 0x21, 0xd0, 0x9d, 0xd0, 0x0f, 0xed, + 0x28, 0xbd, 0x00, 0xc3, 0x4e, 0xab, 0xc5, 0xf1, 0x58, 0x14, 0x6d, 0xa6, 0xf4, 0xd3, 0xb4, 0x09, + 0xc4, 0x69, 0xdc, 0x9e, 0x6c, 0x9a, 0x3f, 0xb1, 0xa0, 0x86, 0xc9, 0x06, 0x97, 0x46, 0xe8, 0xa6, + 0x18, 0x22, 0xab, 0x88, 0x3a, 0xb7, 0x74, 0x60, 0x63, 0x8f, 0xd5, 0x7f, 0xcd, 0x1b, 0xec, 0xce, + 0xcb, 0xca, 0x4a, 0x87, 0xba, 0xac, 0x4c, 0x5d, 0x57, 0x55, 0xee, 0x7e, 0x5d, 0x95, 0xfd, 0xdd, + 0x01, 0xfa, 0x7a, 0xad, 0x70, 0x36, 0x22, 0xf5, 0x98, 0x7e, 0xdf, 0x76, 0xe4, 0x8b, 0x49, 0xa2, + 0xbe, 0xef, 0x35, 0xbc, 0x88, 0x69, 0x7b, 0xea, 0x80, 0xac, 0x74, 0xa8, 0xc2, 0x37, 0xe5, 0x03, + 0x0b, 0xdf, 0xbc, 0x00, 0xc3, 0x71, 0xbc, 0xb9, 0x12, 0x79, 0xdb, 0x4e, 0x42, 0xae, 0x90, 0x5d, + 0x61, 0xfb, 0xea, 0x22, 0x10, 0xab, 0x97, 0x34, 0x10, 0xa7, 0x71, 0xd1, 0x3c, 0x8c, 0xe9, 0xf2, + 0x33, 0x24, 0x4a, 0x58, 0xce, 0x05, 0x9f, 0x09, 0x2a, 0xe3, 0x5b, 0x17, 0xac, 0x11, 0x08, 0xb8, + 0xf3, 0x19, 0x2a, 0x4f, 0x53, 0x8d, 0xb4, 0x23, 0xfd, 0x69, 0x79, 0x9a, 0xa2, 0x43, 0xfb, 0xd2, + 0xf1, 0x04, 0x5a, 0x82, 0x93, 0x7c, 0x62, 0x4c, 0xb7, 0x5a, 0xc6, 0x1b, 0x0d, 0xa4, 0xeb, 0x8b, + 0xce, 0x77, 0xa2, 0xe0, 0xbc, 0xe7, 0xd0, 0x73, 0x30, 0xa8, 0x9a, 0x17, 0xe6, 0xc4, 0xd9, 0x8e, + 0xf2, 0x2d, 0x29, 0x32, 0x0b, 0x75, 0x6c, 0xe2, 0xa1, 0xf7, 0xc3, 0xc3, 0xfa, 0x2f, 0x4f, 0xcc, + 0xe3, 0x07, 0x9e, 0x73, 0xa2, 0xb2, 0x97, 0xba, 0xfa, 0x68, 0x3e, 0x17, 0xad, 0x8e, 0xbb, 0x3d, + 0x8f, 0xd6, 0xe1, 0x8c, 0x02, 0x5d, 0x08, 0x12, 0x96, 0x65, 0x13, 0x93, 0x19, 0x27, 0x26, 0xd7, + 0x22, 0x5f, 0x5c, 0xb2, 0xad, 0xee, 0xcf, 0x9d, 0xf7, 0x92, 0x4b, 0x79, 0x98, 0x78, 0x11, 0xef, + 0x43, 0x05, 0x4d, 0x41, 0x8d, 0x04, 0xce, 0xba, 0x4f, 0x96, 0x67, 0x17, 0x58, 0x85, 0x30, 0xe3, + 0x7c, 0xf5, 0x82, 0x04, 0x60, 0x8d, 0xa3, 0xe2, 0x7e, 0x87, 0xba, 0xde, 0xe5, 0xbc, 0x02, 0xa7, + 0x1a, 0x6e, 0x8b, 0x5a, 0x84, 0x9e, 0x4b, 0xa6, 0x5d, 0x16, 0xe6, 0x48, 0x3f, 0x0c, 0x2f, 0xfc, + 0xaa, 0x82, 0xda, 0xe7, 0x67, 0x57, 0x3a, 0x70, 0x70, 0xee, 0x93, 0x2c, 0x1c, 0x36, 0x0a, 0x77, + 0x76, 0xc7, 0x4f, 0x66, 0xc2, 0x61, 0x69, 0x23, 0xe6, 0x30, 0x74, 0x19, 0x10, 0xcb, 0x90, 0xb8, + 0x94, 0x24, 0x2d, 0x65, 0x82, 0x8e, 0x9f, 0x4a, 0xd7, 0xf9, 0xb9, 0xd8, 0x81, 0x81, 0x73, 0x9e, + 0xa2, 0x16, 0x4d, 0x10, 0x32, 0xea, 0xe3, 0x0f, 0xa7, 0x2d, 0x9a, 0xab, 0xbc, 0x19, 0x4b, 0xb8, + 0xfd, 0x9f, 0x2d, 0x18, 0x56, 0x4b, 0xfb, 0x1e, 0xa4, 0x13, 0xf9, 0xe9, 0x74, 0xa2, 0xf9, 0xa3, + 0x0b, 0x47, 0xd6, 0xf3, 0x2e, 0x31, 0xe9, 0xdf, 0x18, 0x04, 0xd0, 0x02, 0x54, 0xe9, 0x2e, 0xab, + 0xab, 0xee, 0x7a, 0x60, 0x85, 0x57, 0x5e, 0x45, 0x9e, 0xca, 0xfd, 0xad, 0xc8, 0xb3, 0x0a, 0xa7, + 0xa5, 0x65, 0xc1, 0x0f, 0xfb, 0x2e, 0x85, 0xb1, 0x92, 0x85, 0xd5, 0x99, 0x47, 0x05, 0xa1, 0xd3, + 0x0b, 0x79, 0x48, 0x38, 0xff, 0xd9, 0x94, 0x41, 0x33, 0x70, 0xa0, 0x95, 0xa9, 0x96, 0xff, 0xe2, + 0x86, 0xbc, 0x42, 0x28, 0xb3, 0xfc, 0x17, 0x2f, 0xae, 0x62, 0x8d, 0x93, 0xaf, 0x03, 0x6a, 0x05, + 0xe9, 0x00, 0x38, 0xb4, 0x0e, 0x90, 0xd2, 0x68, 0xb0, 0xab, 0x34, 0x92, 0x87, 0x0a, 0x43, 0x5d, + 0x0f, 0x15, 0xde, 0x03, 0x23, 0x5e, 0xb0, 0x49, 0x22, 0x2f, 0x21, 0x75, 0xb6, 0x16, 0x98, 0xa4, + 0xaa, 0x6a, 0x0b, 0x60, 0x21, 0x05, 0xc5, 0x19, 0xec, 0xb4, 0x08, 0x1d, 0xe9, 0x41, 0x84, 0x76, + 0x51, 0x5c, 0xa3, 0xc5, 0x28, 0xae, 0x13, 0x47, 0x57, 0x5c, 0x63, 0xc7, 0xaa, 0xb8, 0x50, 0x21, + 0x8a, 0xab, 0x27, 0x9d, 0x60, 0xec, 0x4c, 0x4f, 0x1d, 0xb0, 0x33, 0xed, 0xa6, 0xb5, 0x4e, 0xdf, + 0xb5, 0xd6, 0xca, 0x57, 0x48, 0x0f, 0x1d, 0xb7, 0x42, 0xfa, 0x74, 0x09, 0x4e, 0x6b, 0x91, 0x4d, + 0x17, 0x8a, 0xb7, 0x41, 0x85, 0x16, 0xbb, 0xb0, 0x8e, 0x9f, 0xd1, 0x19, 0x89, 0x70, 0x3a, 0xa7, + 0x4e, 0x41, 0xb0, 0x81, 0xc5, 0xf2, 0xc9, 0x48, 0xc4, 0xaa, 0x5f, 0x67, 0xe5, 0xf9, 0xac, 0x68, + 0xc7, 0x0a, 0x83, 0x4e, 0x45, 0xfa, 0x5b, 0xe4, 0xe8, 0x66, 0xeb, 0x2a, 0xce, 0x6a, 0x10, 0x36, + 0xf1, 0xd0, 0x93, 0x9c, 0x09, 0x93, 0x25, 0x54, 0xa6, 0x0f, 0x89, 0x7b, 0xc3, 0xa5, 0xf8, 0x50, + 0x50, 0xd9, 0x1d, 0x96, 0x38, 0x58, 0xe9, 0xec, 0x0e, 0x0b, 0x77, 0x53, 0x18, 0xf6, 0xff, 0xb4, + 0xe0, 0x91, 0xdc, 0xa1, 0xb8, 0x07, 0x7a, 0x7a, 0x27, 0xad, 0xa7, 0x57, 0x8b, 0xda, 0xc4, 0x18, + 0x6f, 0xd1, 0x45, 0x67, 0xff, 0x47, 0x0b, 0x46, 0x34, 0xfe, 0x3d, 0x78, 0x55, 0x2f, 0xfd, 0xaa, + 0xc5, 0xed, 0xd7, 0x6a, 0x1d, 0xef, 0xf6, 0x7b, 0x25, 0x50, 0xb5, 0x4e, 0xa7, 0x5d, 0x59, 0x49, + 0xfa, 0x80, 0x53, 0xe3, 0x5d, 0xe8, 0x67, 0x87, 0xde, 0x71, 0x31, 0x01, 0x3d, 0x69, 0xfe, 0xec, + 0x00, 0x5d, 0x07, 0x14, 0xb0, 0xbf, 0x31, 0x16, 0x0c, 0x59, 0x6d, 0x76, 0x5e, 0x46, 0xb2, 0x2e, + 0x52, 0xf0, 0x74, 0x6d, 0x76, 0xd1, 0x8e, 0x15, 0x06, 0xd5, 0x24, 0x9e, 0x1b, 0x06, 0xb3, 0xbe, + 0x13, 0xcb, 0x1b, 0x67, 0x95, 0x26, 0x59, 0x90, 0x00, 0xac, 0x71, 0xd8, 0x79, 0xb8, 0x17, 0xb7, + 0x7c, 0x67, 0xd7, 0xd8, 0x95, 0x1b, 0xb5, 0x28, 0x14, 0x08, 0x9b, 0x78, 0x76, 0x13, 0xc6, 0xd3, + 0x2f, 0x31, 0x47, 0x36, 0x58, 0x30, 0x6a, 0x4f, 0xc3, 0x39, 0x05, 0x35, 0x87, 0x3d, 0xb5, 0xd8, + 0x76, 0x84, 0x4c, 0xd0, 0x21, 0x99, 0x12, 0x80, 0x35, 0x8e, 0xfd, 0x8f, 0x2c, 0x38, 0x99, 0x33, + 0x68, 0x05, 0xa6, 0x38, 0x26, 0x5a, 0xda, 0xe4, 0xd9, 0x00, 0x3f, 0x06, 0x03, 0x75, 0xb2, 0xe1, + 0xc8, 0x70, 0x47, 0x43, 0x7a, 0xce, 0xf1, 0x66, 0x2c, 0xe1, 0xf6, 0x6f, 0x95, 0x60, 0x34, 0xdd, + 0xd7, 0x98, 0xa5, 0x0d, 0xf1, 0x61, 0xf2, 0x62, 0x37, 0xdc, 0x26, 0xd1, 0x2e, 0x7d, 0x73, 0x2b, + 0x93, 0x36, 0xd4, 0x81, 0x81, 0x73, 0x9e, 0x62, 0x95, 0x8e, 0xeb, 0x6a, 0xb4, 0xe5, 0x8c, 0xbc, + 0x5e, 0xe4, 0x8c, 0xd4, 0x1f, 0xd3, 0x0c, 0x8d, 0x50, 0x2c, 0xb1, 0xc9, 0x9f, 0xda, 0x22, 0x2c, + 0x0e, 0x7b, 0xa6, 0xed, 0xf9, 0x89, 0x17, 0x88, 0x57, 0x16, 0x73, 0x55, 0xd9, 0x22, 0x4b, 0x9d, + 0x28, 0x38, 0xef, 0x39, 0xfb, 0x7b, 0x7d, 0xa0, 0x52, 0xaa, 0x59, 0xe8, 0x5a, 0x41, 0x81, 0x7f, + 0x87, 0x4d, 0x3e, 0x53, 0x73, 0xab, 0x6f, 0xbf, 0x58, 0x12, 0xee, 0xca, 0x31, 0xfd, 0xb9, 0x6a, + 0xc0, 0xd6, 0x34, 0x08, 0x9b, 0x78, 0xb4, 0x27, 0xbe, 0xb7, 0x4d, 0xf8, 0x43, 0xfd, 0xe9, 0x9e, + 0x2c, 0x4a, 0x00, 0xd6, 0x38, 0xb4, 0x27, 0x75, 0x6f, 0x63, 0x43, 0xf8, 0x25, 0x54, 0x4f, 0xe8, + 0xe8, 0x60, 0x06, 0xe1, 0xb5, 0xf0, 0xc3, 0x2d, 0x61, 0x7f, 0x1b, 0xb5, 0xf0, 0xc3, 0x2d, 0xcc, + 0x20, 0xf4, 0x2b, 0x05, 0x61, 0xd4, 0x74, 0x7c, 0xef, 0x35, 0x52, 0x57, 0x5c, 0x84, 0xdd, 0xad, + 0xbe, 0xd2, 0xd5, 0x4e, 0x14, 0x9c, 0xf7, 0x1c, 0x9d, 0xd0, 0xad, 0x88, 0xd4, 0x3d, 0x37, 0x31, + 0xa9, 0x41, 0x7a, 0x42, 0xaf, 0x74, 0x60, 0xe0, 0x9c, 0xa7, 0xd0, 0x34, 0x8c, 0xca, 0x94, 0x78, + 0x59, 0xf0, 0x68, 0x30, 0x5d, 0x60, 0x05, 0xa7, 0xc1, 0x38, 0x8b, 0x4f, 0x85, 0x64, 0x53, 0xd4, + 0x44, 0x63, 0x66, 0xba, 0x21, 0x24, 0x65, 0xad, 0x34, 0xac, 0x30, 0xec, 0x8f, 0x97, 0xa9, 0x52, + 0xef, 0x52, 0x7a, 0xf0, 0x9e, 0x05, 0x9a, 0xa6, 0x67, 0x64, 0x5f, 0x0f, 0x33, 0xf2, 0x59, 0x18, + 0xba, 0x19, 0x87, 0x81, 0x0a, 0xe2, 0xac, 0x74, 0x0d, 0xe2, 0x34, 0xb0, 0xf2, 0x83, 0x38, 0xfb, + 0x8b, 0x0a, 0xe2, 0x1c, 0xb8, 0xcb, 0x20, 0xce, 0x3f, 0xa8, 0x80, 0xba, 0x57, 0xe8, 0x2a, 0x49, + 0x6e, 0x85, 0xd1, 0x96, 0x17, 0x34, 0x58, 0x29, 0x81, 0xaf, 0x5a, 0x30, 0xc4, 0xd7, 0xcb, 0xa2, + 0x99, 0x84, 0xb7, 0x51, 0xd0, 0x85, 0x35, 0x29, 0x66, 0x93, 0x6b, 0x06, 0xa3, 0xcc, 0x9d, 0xc3, + 0x26, 0x08, 0xa7, 0x7a, 0x84, 0x3e, 0x02, 0x20, 0x9d, 0xb8, 0x1b, 0x52, 0x02, 0x2f, 0x14, 0xd3, + 0x3f, 0x4c, 0x36, 0xb4, 0x49, 0xbd, 0xa6, 0x98, 0x60, 0x83, 0x21, 0xfa, 0xb4, 0x4e, 0x50, 0xe4, + 0xd9, 0x1e, 0x1f, 0x3a, 0x96, 0xb1, 0xe9, 0x25, 0x3d, 0x11, 0xc3, 0x80, 0x17, 0x34, 0xe8, 0x3c, + 0x11, 0xc1, 0x6e, 0x6f, 0xcf, 0x2b, 0xc3, 0xb1, 0x18, 0x3a, 0xf5, 0x19, 0xc7, 0x77, 0x02, 0x97, + 0x44, 0x0b, 0x1c, 0x5d, 0x6b, 0x50, 0xd1, 0x80, 0x25, 0xa1, 0x8e, 0x1b, 0x99, 0x2a, 0xbd, 0xdc, + 0xc8, 0x74, 0xe6, 0xbd, 0x30, 0xd6, 0xf1, 0x31, 0x0f, 0x95, 0x8d, 0x78, 0xf7, 0x89, 0x8c, 0xf6, + 0x6f, 0xf7, 0x6b, 0xa5, 0x75, 0x35, 0xac, 0xf3, 0x0b, 0x7e, 0x22, 0xfd, 0x45, 0x85, 0xc9, 0x5c, + 0xe0, 0x14, 0x51, 0x6a, 0xc6, 0x68, 0xc4, 0x26, 0x4b, 0x3a, 0x47, 0x5b, 0x4e, 0x44, 0x82, 0xe3, + 0x9e, 0xa3, 0x2b, 0x8a, 0x09, 0x36, 0x18, 0xa2, 0xcd, 0x54, 0x3a, 0xd2, 0xc5, 0xa3, 0xa7, 0x23, + 0xb1, 0x02, 0x65, 0x79, 0xf7, 0x60, 0x7c, 0xc1, 0x82, 0x91, 0x20, 0x35, 0x73, 0x8b, 0x89, 0x40, + 0xce, 0x5f, 0x15, 0xfc, 0x5a, 0xba, 0x74, 0x1b, 0xce, 0xf0, 0xcf, 0x53, 0x69, 0x95, 0x43, 0xaa, + 0x34, 0x7d, 0xc1, 0x58, 0x7f, 0xb7, 0x0b, 0xc6, 0x50, 0xa0, 0x6e, 0x58, 0x1c, 0x28, 0xfc, 0x86, + 0x45, 0xc8, 0xb9, 0x5d, 0xf1, 0x06, 0xd4, 0xdc, 0x88, 0x38, 0xc9, 0x5d, 0x5e, 0xb6, 0xc7, 0x62, + 0x3b, 0x66, 0x25, 0x01, 0xac, 0x69, 0xd9, 0xff, 0xa7, 0x0f, 0x4e, 0xc8, 0x11, 0x91, 0xd9, 0x0b, + 0x54, 0x3f, 0x72, 0xbe, 0xda, 0x56, 0x56, 0xfa, 0xf1, 0x92, 0x04, 0x60, 0x8d, 0x43, 0xed, 0xb1, + 0x76, 0x4c, 0x96, 0x5b, 0x24, 0x58, 0xf4, 0xd6, 0x63, 0x71, 0x18, 0xab, 0x16, 0xca, 0x35, 0x0d, + 0xc2, 0x26, 0x1e, 0xb5, 0xed, 0x1d, 0xc3, 0x68, 0x35, 0x6c, 0x7b, 0x69, 0xa8, 0x4a, 0x38, 0xfa, + 0xe5, 0xdc, 0x5a, 0xc8, 0xc5, 0xe4, 0xfc, 0x75, 0x24, 0x6d, 0x1c, 0xf2, 0x7e, 0xd6, 0xbf, 0x6f, + 0xc1, 0x69, 0xde, 0x2a, 0x47, 0xf2, 0x5a, 0xab, 0xee, 0x24, 0x24, 0x2e, 0xe6, 0x0e, 0x85, 0x9c, + 0xfe, 0x69, 0xf7, 0x72, 0x1e, 0x5b, 0x9c, 0xdf, 0x1b, 0xf4, 0xba, 0x05, 0xa3, 0x5b, 0xa9, 0x72, + 0x31, 0x52, 0x75, 0x1c, 0xb5, 0x92, 0x43, 0x8a, 0xa8, 0x5e, 0x6a, 0xe9, 0xf6, 0x18, 0x67, 0xb9, + 0xdb, 0xff, 0xc3, 0x02, 0x53, 0x8c, 0xde, 0xfb, 0x2a, 0x33, 0x87, 0x37, 0x05, 0xa5, 0x75, 0x59, + 0xe9, 0x6a, 0x5d, 0x3e, 0x0a, 0xe5, 0xb6, 0x57, 0x17, 0xfb, 0x0b, 0x7d, 0x44, 0xbc, 0x30, 0x87, + 0x69, 0xbb, 0xfd, 0x2f, 0x2b, 0xda, 0x0d, 0x22, 0x52, 0xea, 0x7e, 0x28, 0x5e, 0x7b, 0x43, 0xd5, + 0xa9, 0xe3, 0x6f, 0x7e, 0xb5, 0xa3, 0x4e, 0xdd, 0x4f, 0x1d, 0x3e, 0x63, 0x92, 0x0f, 0x50, 0xb7, + 0x32, 0x75, 0x03, 0x07, 0xa4, 0x4b, 0xde, 0x84, 0x2a, 0xdd, 0x82, 0x31, 0x7f, 0x66, 0x35, 0xd5, + 0xa9, 0xea, 0x25, 0xd1, 0x7e, 0x67, 0x6f, 0xe2, 0x5d, 0x87, 0xef, 0x96, 0x7c, 0x1a, 0x2b, 0xfa, + 0x28, 0x86, 0x1a, 0xfd, 0xcd, 0x32, 0x3b, 0xc5, 0xe6, 0xee, 0x9a, 0x92, 0x99, 0x12, 0x50, 0x48, + 0xda, 0xa8, 0xe6, 0x83, 0x02, 0xa8, 0xb1, 0xab, 0xac, 0x19, 0x53, 0xbe, 0x07, 0x5c, 0x51, 0xf9, + 0x95, 0x12, 0x70, 0x67, 0x6f, 0xe2, 0x85, 0xc3, 0x33, 0x55, 0x8f, 0x63, 0xcd, 0xc2, 0xfe, 0xeb, + 0x3e, 0x3d, 0x77, 0x45, 0x79, 0xc2, 0x1f, 0x8a, 0xb9, 0xfb, 0x7c, 0x66, 0xee, 0x9e, 0xeb, 0x98, + 0xbb, 0x23, 0xfa, 0xca, 0xe5, 0xd4, 0x6c, 0xbc, 0xd7, 0x86, 0xc0, 0xc1, 0xfe, 0x06, 0x66, 0x01, + 0xbd, 0xda, 0xf6, 0x22, 0x12, 0xaf, 0x44, 0xed, 0xc0, 0x0b, 0x1a, 0x6c, 0x3a, 0x56, 0x4d, 0x0b, + 0x28, 0x05, 0xc6, 0x59, 0x7c, 0xba, 0xa9, 0xa7, 0xdf, 0xfc, 0x86, 0xb3, 0xcd, 0x67, 0x95, 0x51, + 0xb1, 0x6d, 0x55, 0xb4, 0x63, 0x85, 0x81, 0x36, 0xe1, 0xac, 0x24, 0x30, 0x47, 0x7c, 0x22, 0xee, + 0x4c, 0xde, 0xf0, 0xa2, 0x26, 0x0f, 0x10, 0xe7, 0x91, 0x09, 0x6f, 0x13, 0x14, 0xce, 0xe2, 0x7d, + 0x70, 0xf1, 0xbe, 0x94, 0xec, 0xaf, 0xb3, 0xf3, 0x7a, 0x23, 0x79, 0x9d, 0xce, 0x3e, 0x9f, 0xdd, + 0x52, 0xce, 0x0b, 0xcb, 0xa9, 0xd9, 0xc7, 0xaf, 0x26, 0xe7, 0x30, 0x74, 0x0b, 0x06, 0xd6, 0xf9, + 0x7d, 0x9b, 0xc5, 0xd4, 0xf6, 0x17, 0x97, 0x77, 0xb2, 0x9b, 0x8c, 0xe4, 0x4d, 0x9e, 0x77, 0xf4, + 0x4f, 0x2c, 0xb9, 0xd9, 0xdf, 0xaa, 0xc0, 0x68, 0xe6, 0x1e, 0xeb, 0x54, 0x49, 0xdf, 0xd2, 0x81, + 0x25, 0x7d, 0x3f, 0x08, 0x50, 0x27, 0x2d, 0x3f, 0xdc, 0x65, 0x86, 0x5f, 0xdf, 0xa1, 0x0d, 0x3f, + 0xb5, 0x57, 0x98, 0x53, 0x54, 0xb0, 0x41, 0x51, 0x54, 0xd3, 0xe3, 0x15, 0x82, 0x33, 0xd5, 0xf4, + 0x8c, 0x1b, 0x40, 0xfa, 0xef, 0xed, 0x0d, 0x20, 0x1e, 0x8c, 0xf2, 0x2e, 0xaa, 0x14, 0xf1, 0xbb, + 0xc8, 0x04, 0x67, 0x49, 0x36, 0x73, 0x69, 0x32, 0x38, 0x4b, 0xf7, 0x7e, 0x5e, 0x53, 0x8f, 0xde, + 0x01, 0x35, 0xf9, 0x9d, 0xe3, 0xf1, 0x9a, 0x2e, 0xb3, 0x21, 0xa7, 0x01, 0xbb, 0x3e, 0x5e, 0xfc, + 0xec, 0xa8, 0x76, 0x01, 0xf7, 0xab, 0xda, 0x85, 0xfd, 0xf9, 0x12, 0xdd, 0x31, 0xf0, 0x7e, 0xa9, + 0xc2, 0x4d, 0x4f, 0x40, 0xbf, 0xd3, 0x4e, 0x36, 0xc3, 0x8e, 0x1b, 0x3b, 0xa7, 0x59, 0x2b, 0x16, + 0x50, 0xb4, 0x08, 0x7d, 0x75, 0x5d, 0x8c, 0xe7, 0x30, 0xdf, 0x53, 0x3b, 0x5f, 0x9d, 0x84, 0x60, + 0x46, 0x05, 0x9d, 0x85, 0xbe, 0xc4, 0x69, 0xc8, 0xbc, 0x40, 0x96, 0x0b, 0xbe, 0xe6, 0x34, 0x62, + 0xcc, 0x5a, 0x4d, 0x43, 0xa1, 0xef, 0x00, 0x43, 0xe1, 0x05, 0x18, 0x8e, 0xbd, 0x46, 0xe0, 0x24, + 0xed, 0x88, 0x18, 0xe7, 0x93, 0x3a, 0x3a, 0xc5, 0x04, 0xe2, 0x34, 0xae, 0xfd, 0x3b, 0x43, 0x70, + 0x6a, 0x75, 0x76, 0x49, 0x96, 0x98, 0x3f, 0xb6, 0xd4, 0xbe, 0x3c, 0x1e, 0xf7, 0x2e, 0xb5, 0xaf, + 0x0b, 0x77, 0xdf, 0x48, 0xed, 0xf3, 0x8d, 0xd4, 0xbe, 0x74, 0x9e, 0x55, 0xb9, 0x88, 0x3c, 0xab, + 0xbc, 0x1e, 0xf4, 0x92, 0x67, 0x75, 0x6c, 0xb9, 0x7e, 0xfb, 0x76, 0xe8, 0x50, 0xb9, 0x7e, 0x2a, + 0x11, 0xb2, 0x90, 0x0c, 0x98, 0x2e, 0x9f, 0x2a, 0x37, 0x11, 0x52, 0x25, 0xa1, 0xf1, 0xec, 0x2e, + 0x21, 0xea, 0x5f, 0x2e, 0xbe, 0x03, 0x3d, 0x24, 0xa1, 0x89, 0x04, 0x33, 0x33, 0xf1, 0x71, 0xa0, + 0x88, 0xc4, 0xc7, 0xbc, 0xee, 0x1c, 0x98, 0xf8, 0xf8, 0x02, 0x0c, 0xbb, 0x7e, 0x18, 0x90, 0x95, + 0x28, 0x4c, 0x42, 0x37, 0x94, 0x77, 0x06, 0xea, 0x2b, 0x6f, 0x4c, 0x20, 0x4e, 0xe3, 0x76, 0xcb, + 0x9a, 0xac, 0x1d, 0x35, 0x6b, 0x12, 0xee, 0x53, 0xd6, 0xe4, 0x2f, 0xe8, 0xfc, 0xfe, 0x41, 0xf6, + 0x45, 0x3e, 0x58, 0xfc, 0x17, 0xe9, 0xe9, 0x52, 0xc0, 0x37, 0xf8, 0x95, 0x99, 0xd4, 0x04, 0x9f, + 0x0d, 0x9b, 0xd4, 0xf0, 0x1b, 0x62, 0x43, 0xf2, 0xca, 0x31, 0x4c, 0xd8, 0x1b, 0xab, 0x9a, 0x8d, + 0xba, 0x46, 0x53, 0x37, 0xe1, 0x74, 0x47, 0x8e, 0x52, 0x7f, 0xe0, 0xcb, 0x25, 0xf8, 0x91, 0x03, + 0xbb, 0x80, 0x6e, 0x01, 0x24, 0x4e, 0x43, 0x4c, 0x54, 0x71, 0x34, 0x73, 0xc4, 0x10, 0xd2, 0x35, + 0x49, 0x8f, 0x17, 0xce, 0x51, 0x7f, 0xd9, 0xa1, 0x87, 0xfc, 0xcd, 0x22, 0x47, 0x43, 0xbf, 0xa3, + 0xbe, 0x28, 0x0e, 0x7d, 0x82, 0x19, 0x84, 0xaa, 0xff, 0x88, 0x34, 0xf4, 0x7d, 0xf3, 0xea, 0xf3, + 0x61, 0xd6, 0x8a, 0x05, 0x14, 0x3d, 0x07, 0x83, 0x8e, 0xef, 0xf3, 0xf4, 0x24, 0x12, 0x8b, 0xbb, + 0xa8, 0x74, 0xa1, 0x43, 0x0d, 0xc2, 0x26, 0x9e, 0xfd, 0x97, 0x25, 0x98, 0x38, 0x40, 0xa6, 0x74, + 0xa4, 0xa5, 0x56, 0x7a, 0x4e, 0x4b, 0x15, 0x29, 0x1b, 0xfd, 0x5d, 0x52, 0x36, 0x9e, 0x83, 0xc1, + 0x84, 0x38, 0x4d, 0x11, 0x74, 0x26, 0x7c, 0x0e, 0xfa, 0xac, 0x59, 0x83, 0xb0, 0x89, 0x47, 0xa5, + 0xd8, 0x88, 0xe3, 0xba, 0x24, 0x8e, 0x65, 0x4e, 0x86, 0xf0, 0xdb, 0x16, 0x96, 0xf0, 0xc1, 0xdc, + 0xe1, 0xd3, 0x29, 0x16, 0x38, 0xc3, 0x32, 0x3b, 0xe0, 0xb5, 0x1e, 0x07, 0xfc, 0x6b, 0x25, 0x78, + 0x74, 0x5f, 0xed, 0xd6, 0x73, 0xba, 0x4c, 0x3b, 0x26, 0x51, 0x76, 0xe2, 0x5c, 0x8b, 0x49, 0x84, + 0x19, 0x84, 0x8f, 0x52, 0xab, 0x65, 0xdc, 0xe7, 0x5f, 0x74, 0xee, 0x18, 0x1f, 0xa5, 0x14, 0x0b, + 0x9c, 0x61, 0x79, 0xb7, 0xd3, 0xf2, 0x5b, 0x7d, 0xf0, 0x78, 0x0f, 0x36, 0x40, 0x81, 0x39, 0x76, + 0xe9, 0x7c, 0xd0, 0xf2, 0x7d, 0xca, 0x07, 0xbd, 0xbb, 0xe1, 0x7a, 0x33, 0x8d, 0xb4, 0xa7, 0x5c, + 0xbe, 0xaf, 0x97, 0xe0, 0x4c, 0x77, 0x83, 0x05, 0xbd, 0x1b, 0x46, 0x23, 0x15, 0x64, 0x67, 0xa6, + 0x92, 0x9e, 0xe4, 0x9e, 0x9d, 0x14, 0x08, 0x67, 0x71, 0xd1, 0x24, 0x40, 0xcb, 0x49, 0x36, 0xe3, + 0x0b, 0x3b, 0x5e, 0x9c, 0x88, 0x82, 0x52, 0x23, 0xfc, 0x2c, 0x51, 0xb6, 0x62, 0x03, 0x83, 0xb2, + 0x63, 0xff, 0xe6, 0xc2, 0xab, 0x61, 0xc2, 0x1f, 0xe2, 0x9b, 0xad, 0x93, 0xf2, 0xfa, 0x1d, 0x03, + 0x84, 0xb3, 0xb8, 0x94, 0x1d, 0x3b, 0xad, 0xe6, 0x1d, 0xe5, 0xbb, 0x30, 0xc6, 0x6e, 0x51, 0xb5, + 0x62, 0x03, 0x23, 0x9b, 0x24, 0x5b, 0x39, 0x38, 0x49, 0xd6, 0xfe, 0x17, 0x25, 0x78, 0xa4, 0xab, + 0xc1, 0xdb, 0x9b, 0x98, 0x7a, 0xf0, 0x12, 0x5b, 0xef, 0x72, 0x85, 0x1d, 0x2e, 0x21, 0xf2, 0x4f, + 0xba, 0xcc, 0x34, 0x91, 0x10, 0x79, 0xf7, 0x75, 0x1e, 0x1e, 0xbc, 0xf1, 0xec, 0xc8, 0x81, 0xec, + 0x3b, 0x44, 0x0e, 0x64, 0xe6, 0x63, 0x54, 0x7a, 0xd4, 0x0e, 0x7f, 0xd6, 0xd7, 0x75, 0x78, 0xe9, + 0x06, 0xb9, 0x27, 0xbf, 0xf9, 0x1c, 0x9c, 0xf0, 0x02, 0x76, 0x15, 0xdb, 0x6a, 0x7b, 0x5d, 0xd4, + 0x18, 0xe2, 0x85, 0x34, 0x55, 0xa2, 0xc5, 0x42, 0x06, 0x8e, 0x3b, 0x9e, 0x78, 0x00, 0x73, 0x52, + 0xef, 0x6e, 0x48, 0x0f, 0x29, 0xb9, 0x97, 0xe1, 0xb4, 0x1c, 0x8a, 0x4d, 0x27, 0x22, 0x75, 0xa1, + 0x6c, 0x63, 0x91, 0x5a, 0xf3, 0x08, 0x4f, 0xcf, 0xc9, 0x41, 0xc0, 0xf9, 0xcf, 0xb1, 0xdb, 0xaf, + 0xc2, 0x96, 0xe7, 0x8a, 0xad, 0xa0, 0xbe, 0xfd, 0x8a, 0x36, 0x62, 0x0e, 0xd3, 0xfa, 0xa2, 0x76, + 0x6f, 0xf4, 0xc5, 0x07, 0xa1, 0xa6, 0xc6, 0x9b, 0x67, 0x09, 0xa8, 0x49, 0xde, 0x91, 0x25, 0xa0, + 0x66, 0xb8, 0x81, 0x75, 0xd0, 0xf5, 0xac, 0x3f, 0x01, 0x43, 0xca, 0xfb, 0xd5, 0xeb, 0x1d, 0x64, + 0xf6, 0x9f, 0xf7, 0xc3, 0x70, 0xaa, 0xae, 0x68, 0xca, 0xed, 0x6d, 0x1d, 0xe8, 0xf6, 0x66, 0x09, + 0x22, 0xed, 0x40, 0x5e, 0x50, 0x68, 0x24, 0x88, 0xb4, 0x03, 0x82, 0x39, 0x8c, 0x6e, 0x3a, 0xea, + 0xd1, 0x2e, 0x6e, 0x07, 0x22, 0xe2, 0x55, 0x6d, 0x3a, 0xe6, 0x58, 0x2b, 0x16, 0x50, 0xf4, 0x31, + 0x0b, 0x86, 0x62, 0x76, 0x7a, 0xc3, 0x0f, 0x0d, 0xc4, 0x24, 0xbf, 0x7c, 0xf4, 0xb2, 0xa9, 0xaa, + 0x86, 0x2e, 0x8b, 0x90, 0x32, 0x5b, 0x70, 0x8a, 0x23, 0xfa, 0xa4, 0x05, 0x35, 0x75, 0x8f, 0x92, + 0xb8, 0x6d, 0x74, 0xb5, 0xd8, 0xb2, 0xad, 0xdc, 0xdb, 0xac, 0x0e, 0xc2, 0x54, 0xfd, 0x4c, 0xac, + 0x19, 0xa3, 0x58, 0x79, 0xf4, 0x07, 0x8e, 0xc7, 0xa3, 0x0f, 0x39, 0xde, 0xfc, 0x77, 0x40, 0xad, + 0xe9, 0x04, 0xde, 0x06, 0x89, 0x13, 0xee, 0x64, 0x97, 0xd5, 0xa4, 0x65, 0x23, 0xd6, 0x70, 0x6a, + 0x00, 0xc4, 0xec, 0xc5, 0x12, 0xc3, 0x2b, 0xce, 0x0c, 0x80, 0x55, 0xdd, 0x8c, 0x4d, 0x1c, 0xd3, + 0x85, 0x0f, 0xf7, 0xd5, 0x85, 0x3f, 0x78, 0x80, 0x0b, 0x7f, 0x15, 0x4e, 0x3b, 0xed, 0x24, 0xbc, + 0x44, 0x1c, 0x7f, 0x9a, 0x5f, 0x1d, 0x2c, 0xae, 0xc2, 0x1f, 0x62, 0x6e, 0x21, 0x15, 0xd3, 0xb1, + 0x4a, 0xfc, 0x8d, 0x0e, 0x24, 0x9c, 0xff, 0xac, 0xfd, 0x4f, 0x2d, 0x38, 0x9d, 0x3b, 0x15, 0x1e, + 0xdc, 0x68, 0x5a, 0xfb, 0x4b, 0x15, 0x38, 0x99, 0x53, 0x75, 0x18, 0xed, 0x9a, 0x8b, 0xc4, 0x2a, + 0x22, 0x30, 0x25, 0x1d, 0x67, 0x21, 0xbf, 0x4d, 0xce, 0xca, 0x38, 0xdc, 0xa9, 0x9c, 0x3e, 0x19, + 0x2b, 0xdf, 0xdb, 0x93, 0x31, 0x63, 0xae, 0xf7, 0xdd, 0xd7, 0xb9, 0x5e, 0x39, 0x60, 0xae, 0x7f, + 0xc3, 0x82, 0xf1, 0x66, 0x97, 0xab, 0x2e, 0x84, 0x8f, 0xf9, 0xfa, 0xf1, 0x5c, 0xa4, 0x31, 0x73, + 0xf6, 0xf6, 0xde, 0x44, 0xd7, 0x1b, 0x46, 0x70, 0xd7, 0x5e, 0xd9, 0xdf, 0x2b, 0x03, 0x2b, 0x79, + 0xcd, 0x2a, 0x4b, 0xee, 0xa2, 0x8f, 0x9a, 0xc5, 0xcb, 0xad, 0xa2, 0x0a, 0x6d, 0x73, 0xe2, 0xaa, + 0xf8, 0x39, 0x1f, 0xc1, 0xbc, 0x5a, 0xe8, 0x59, 0x49, 0x58, 0xea, 0x41, 0x12, 0xfa, 0xb2, 0x4a, + 0x7c, 0xb9, 0xf8, 0x2a, 0xf1, 0xb5, 0x6c, 0x85, 0xf8, 0xfd, 0x3f, 0x71, 0xdf, 0x03, 0xf9, 0x89, + 0x7f, 0xc5, 0xe2, 0x82, 0x27, 0xf3, 0x15, 0xb4, 0xb9, 0x61, 0xed, 0x63, 0x6e, 0x3c, 0x05, 0xd5, + 0x58, 0x48, 0x66, 0x61, 0x96, 0xe8, 0xa0, 0x08, 0xd1, 0x8e, 0x15, 0x06, 0xbb, 0x46, 0xda, 0xf7, + 0xc3, 0x5b, 0x17, 0x9a, 0xad, 0x64, 0x57, 0x18, 0x28, 0xfa, 0x1a, 0x69, 0x05, 0xc1, 0x06, 0x96, + 0xfd, 0xf7, 0x4a, 0x7c, 0x06, 0x8a, 0xc8, 0x9a, 0xe7, 0x33, 0x17, 0x7f, 0xf6, 0x1e, 0x94, 0xf2, + 0x61, 0x00, 0x37, 0x6c, 0xb6, 0xa8, 0xf1, 0xba, 0x16, 0x8a, 0xe3, 0xbf, 0x4b, 0x47, 0x35, 0x44, + 0x25, 0x3d, 0xfd, 0x1a, 0xba, 0x0d, 0x1b, 0xfc, 0x52, 0xb2, 0xb4, 0x7c, 0xa0, 0x2c, 0x4d, 0x89, + 0x95, 0xbe, 0xfd, 0xc5, 0x8a, 0xfd, 0x97, 0x16, 0xa4, 0xcc, 0x2c, 0xd4, 0x82, 0x0a, 0xed, 0xee, + 0xae, 0x58, 0xa1, 0xcb, 0xc5, 0xd9, 0x74, 0x54, 0x34, 0x8a, 0x69, 0xcf, 0x7e, 0x62, 0xce, 0x08, + 0xf9, 0x22, 0x00, 0x87, 0x8f, 0xea, 0xd5, 0xe2, 0x18, 0x5e, 0x0a, 0xc3, 0x2d, 0x7e, 0x86, 0xad, + 0x83, 0x79, 0xec, 0xe7, 0x61, 0xac, 0xa3, 0x53, 0xec, 0x8e, 0xbf, 0x90, 0x6a, 0x9f, 0xcc, 0x74, + 0x65, 0xf9, 0xc8, 0x98, 0xc3, 0xec, 0xaf, 0x5b, 0x70, 0x22, 0x4b, 0x1e, 0xbd, 0x61, 0xc1, 0x58, + 0x9c, 0xa5, 0x77, 0x5c, 0x63, 0xa7, 0x82, 0x68, 0x3b, 0x40, 0xb8, 0xb3, 0x13, 0xf6, 0x5f, 0x8b, + 0xc9, 0x7f, 0xc3, 0x0b, 0xea, 0xe1, 0x2d, 0x65, 0x98, 0x58, 0x5d, 0x0d, 0x13, 0xba, 0x1e, 0xdd, + 0x4d, 0x52, 0x6f, 0xfb, 0x1d, 0xd9, 0xcd, 0xab, 0xa2, 0x1d, 0x2b, 0x0c, 0x96, 0xcc, 0xd9, 0x16, + 0xd7, 0x48, 0x64, 0x26, 0xe5, 0x9c, 0x68, 0xc7, 0x0a, 0x03, 0x3d, 0x0b, 0x43, 0xc6, 0x4b, 0xca, + 0x79, 0xc9, 0xac, 0x7c, 0x43, 0x65, 0xc6, 0x38, 0x85, 0x85, 0x26, 0x01, 0x94, 0x91, 0x23, 0x55, + 0x24, 0xf3, 0x76, 0x29, 0x49, 0x14, 0x63, 0x03, 0x83, 0xa5, 0x4e, 0xfb, 0xed, 0x98, 0x1d, 0xe7, + 0xf4, 0xeb, 0xd2, 0xc6, 0xb3, 0xa2, 0x0d, 0x2b, 0x28, 0x95, 0x26, 0x4d, 0x27, 0x68, 0x3b, 0x3e, + 0x1d, 0x21, 0xb1, 0x7f, 0x55, 0xcb, 0x70, 0x49, 0x41, 0xb0, 0x81, 0x45, 0xdf, 0x38, 0xf1, 0x9a, + 0xe4, 0xa5, 0x30, 0x90, 0xc1, 0x8f, 0xfa, 0x84, 0x4f, 0xb4, 0x63, 0x85, 0x61, 0xff, 0x85, 0x05, + 0xa3, 0xba, 0x66, 0x03, 0xbf, 0xcd, 0xdf, 0xdc, 0x6e, 0x5b, 0x07, 0x6e, 0xb7, 0xd3, 0x19, 0xea, + 0xa5, 0x9e, 0x32, 0xd4, 0xcd, 0xe4, 0xf1, 0xf2, 0xbe, 0xc9, 0xe3, 0x3f, 0xaa, 0x6f, 0x8a, 0xe6, + 0x59, 0xe6, 0x83, 0x79, 0xb7, 0x44, 0x23, 0x1b, 0xfa, 0x5d, 0x47, 0xd5, 0x36, 0x1a, 0xe2, 0x1b, + 0x92, 0xd9, 0x69, 0x86, 0x24, 0x20, 0xf6, 0x32, 0xd4, 0xd4, 0x41, 0x97, 0xdc, 0xfd, 0x5a, 0xf9, + 0xbb, 0xdf, 0x9e, 0x92, 0x58, 0x67, 0xd6, 0xbf, 0xf9, 0xfd, 0xc7, 0xde, 0xf2, 0x47, 0xdf, 0x7f, + 0xec, 0x2d, 0xdf, 0xfd, 0xfe, 0x63, 0x6f, 0xf9, 0xd8, 0xed, 0xc7, 0xac, 0x6f, 0xde, 0x7e, 0xcc, + 0xfa, 0xa3, 0xdb, 0x8f, 0x59, 0xdf, 0xbd, 0xfd, 0x98, 0xf5, 0xbd, 0xdb, 0x8f, 0x59, 0x5f, 0xf8, + 0xaf, 0x8f, 0xbd, 0xe5, 0xa5, 0xdc, 0xe8, 0x57, 0xfa, 0xe3, 0x69, 0xb7, 0x3e, 0xb5, 0x7d, 0x9e, + 0x05, 0x60, 0xd2, 0xe5, 0x35, 0x65, 0xcc, 0xa9, 0x29, 0xb9, 0xbc, 0xfe, 0x6f, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x54, 0x39, 0x21, 0x09, 0x7d, 0xec, 0x00, 0x00, } func (m *AWSAuthConfig) Marshal() (dAtA []byte, err error) { @@ -7231,6 +7231,11 @@ func (m *ApplicationSource) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x72 i -= len(m.Ref) copy(dAtA[i:], m.Ref) i = encodeVarintGenerated(dAtA, i, uint64(len(m.Ref))) @@ -15672,6 +15677,8 @@ func (m *ApplicationSource) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) l = len(m.Ref) n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) return n } @@ -19046,6 +19053,7 @@ func (this *ApplicationSource) String() string { `Plugin:` + strings.Replace(this.Plugin.String(), "ApplicationSourcePlugin", "ApplicationSourcePlugin", 1) + `,`, `Chart:` + fmt.Sprintf("%v", this.Chart) + `,`, `Ref:` + fmt.Sprintf("%v", this.Ref) + `,`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, `}`, }, "") return s @@ -27189,6 +27197,38 @@ func (m *ApplicationSource) Unmarshal(dAtA []byte) error { } m.Ref = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) diff --git a/pkg/apis/application/v1alpha1/generated.proto b/pkg/apis/application/v1alpha1/generated.proto index 5911cfd171e3d..729286e069e5f 100644 --- a/pkg/apis/application/v1alpha1/generated.proto +++ b/pkg/apis/application/v1alpha1/generated.proto @@ -454,6 +454,9 @@ message ApplicationSource { // Ref is reference to another source within sources field. This field will not be used if used with a `source` tag. optional string ref = 13; + + // Name is used to refer to a source and is displayed in the UI. It is used in multi-source Applications. + optional string name = 14; } // ApplicationSourceDirectory holds options for applications of type plain YAML or Jsonnet diff --git a/pkg/apis/application/v1alpha1/types.go b/pkg/apis/application/v1alpha1/types.go index 998b1fbf1dfb6..75a5c12f7e277 100644 --- a/pkg/apis/application/v1alpha1/types.go +++ b/pkg/apis/application/v1alpha1/types.go @@ -191,6 +191,8 @@ type ApplicationSource struct { Chart string `json:"chart,omitempty" protobuf:"bytes,12,opt,name=chart"` // Ref is reference to another source within sources field. This field will not be used if used with a `source` tag. Ref string `json:"ref,omitempty" protobuf:"bytes,13,opt,name=ref"` + // Name is used to refer to a source and is displayed in the UI. It is used in multi-source Applications. + Name string `json:"name,omitempty" protobuf:"bytes,14,opt,name=name"` } // ApplicationSources contains list of required information about the sources of an application diff --git a/server/application/application.go b/server/application/application.go index de961c82ea5f7..838110c388e1d 100644 --- a/server/application/application.go +++ b/server/application/application.go @@ -1229,6 +1229,18 @@ func (s *Server) validateAndNormalizeApp(ctx context.Context, app *appv1.Applica if app.GetName() == "" { return fmt.Errorf("resource name may not be empty") } + + // ensure sources names are unique + if app.Spec.HasMultipleSources() { + sourceNames := make(map[string]bool) + for _, source := range app.Spec.Sources { + if len(source.Name) > 0 && sourceNames[source.Name] { + return fmt.Errorf("application %s has duplicate source name: %s", app.Name, source.Name) + } + sourceNames[source.Name] = true + } + } + appNs := s.appNamespaceOrDefault(app.Namespace) currApp, err := s.appclientset.ArgoprojV1alpha1().Applications(appNs).Get(ctx, app.Name, metav1.GetOptions{}) if err != nil { diff --git a/test/e2e/app_multiple_sources_test.go b/test/e2e/app_multiple_sources_test.go index fd5f2d8d5fb69..e3118244e18d0 100644 --- a/test/e2e/app_multiple_sources_test.go +++ b/test/e2e/app_multiple_sources_test.go @@ -167,3 +167,131 @@ func TestMultiSourceAppWithSourceOverride(t *testing.T) { assert.Contains(t, output, "foo=bar") }) } + +func TestMultiSourceAppWithSourceName(t *testing.T) { + sources := []ApplicationSource{{ + RepoURL: RepoURL(RepoURLTypeFile), + Path: guestbookPath, + Name: "guestbook", + }, { + RepoURL: RepoURL(RepoURLTypeFile), + Path: "two-nice-pods", + Name: "dynamic duo", + }} + ctx := Given(t) + ctx. + Sources(sources). + When(). + CreateMultiSourceAppFromFile(). + Then(). + And(func(app *Application) { + assert.Equal(t, Name(), app.Name) + for i, source := range app.Spec.GetSources() { + assert.Equal(t, sources[i].RepoURL, source.RepoURL) + assert.Equal(t, sources[i].Path, source.Path) + assert.Equal(t, sources[i].Name, source.Name) + } + assert.Equal(t, DeploymentNamespace(), app.Spec.Destination.Namespace) + assert.Equal(t, KubernetesInternalAPIServerAddr, app.Spec.Destination.Server) + }). + Expect(Event(EventReasonResourceCreated, "create")). + And(func(app *Application) { + // we remove the first source + output, err := RunCli("app", "remove-source", Name(), "--source-name", sources[0].Name) + require.NoError(t, err) + assert.Contains(t, output, "updated successfully") + }). + Expect(Success("")). + And(func(app *Application) { + assert.Len(t, app.Spec.GetSources(), 1) + // we add a source + output, err := RunCli("app", "add-source", Name(), "--source-name", sources[0].Name, "--repo", RepoURL(RepoURLTypeFile), "--path", guestbookPath) + require.NoError(t, err) + assert.Contains(t, output, "updated successfully") + }). + Expect(Success("")). + Given().Timeout(60). + When().Wait().Then(). + Expect(Success("")). + And(func(app *Application) { + assert.Len(t, app.Spec.GetSources(), 2) + // sources order has been inverted + assert.Equal(t, sources[1].Name, app.Spec.GetSources()[0].Name) + assert.Equal(t, sources[0].Name, app.Spec.GetSources()[1].Name) + statusByName := map[string]SyncStatusCode{} + for _, r := range app.Status.Resources { + statusByName[r.Name] = r.Status + } + // check if the app has 3 resources, guestbook and 2 pods + assert.Len(t, statusByName, 3) + assert.Equal(t, SyncStatusCodeSynced, statusByName["pod-1"]) + assert.Equal(t, SyncStatusCodeSynced, statusByName["pod-2"]) + assert.Equal(t, SyncStatusCodeSynced, statusByName["guestbook-ui"]) + }) +} + +func TestMultiSourceAppSetWithSourceName(t *testing.T) { + sources := []ApplicationSource{{ + RepoURL: RepoURL(RepoURLTypeFile), + Path: guestbookPath, + Name: "guestbook", + }, { + RepoURL: RepoURL(RepoURLTypeFile), + Path: "two-nice-pods", + Name: "dynamic duo", + }} + ctx := Given(t) + ctx. + Sources(sources). + When(). + CreateMultiSourceAppFromFile(). + Then(). + And(func(app *Application) { + assert.Equal(t, Name(), app.Name) + for i, source := range app.Spec.GetSources() { + assert.Equal(t, sources[i].RepoURL, source.RepoURL) + assert.Equal(t, sources[i].Path, source.Path) + assert.Equal(t, sources[i].Name, source.Name) + } + assert.Equal(t, DeploymentNamespace(), app.Spec.Destination.Namespace) + assert.Equal(t, KubernetesInternalAPIServerAddr, app.Spec.Destination.Server) + }). + Expect(Event(EventReasonResourceCreated, "create")). + And(func(app *Application) { + _, err := RunCli("app", "set", Name(), "--source-name", sources[1].Name, "--path", "deployment") + require.NoError(t, err) + }). + Expect(Success("")). + And(func(app *Application) { + assert.Equal(t, "deployment", app.Spec.GetSources()[1].Path) + }) +} + +func TestMultiSourceApptErrorWhenSourceNameAndSourcePosition(t *testing.T) { + sources := []ApplicationSource{{ + RepoURL: RepoURL(RepoURLTypeFile), + Path: guestbookPath, + Name: "guestbook", + }, { + RepoURL: RepoURL(RepoURLTypeFile), + Path: "two-nice-pods", + Name: "dynamic duo", + }} + ctx := Given(t) + ctx. + Sources(sources). + When(). + CreateMultiSourceAppFromFile(). + Then(). + Expect(Event(EventReasonResourceCreated, "create")). + And(func(app *Application) { + _, err := RunCli("app", "get", Name(), "--source-name", sources[1].Name, "--source-position", "1") + require.Error(t, err) + assert.Contains(t, err.Error(), "Only one of source-position and source-name can be specified.") + }). + And(func(app *Application) { + _, err := RunCli("app", "manifests", Name(), "--revisions", "0.0.2", "--source-names", sources[0].Name, "--revisions", "0.0.2", "--source-positions", "1") + require.Error(t, err) + assert.Contains(t, err.Error(), "Only one of source-positions and source-names can be specified.") + }) +} diff --git a/ui/src/app/applications/components/application-parameters/application-parameters.tsx b/ui/src/app/applications/components/application-parameters/application-parameters.tsx index 3771d32d3cf1a..aacbfc6b20bfd 100644 --- a/ui/src/app/applications/components/application-parameters/application-parameters.tsx +++ b/ui/src/app/applications/components/application-parameters/application-parameters.tsx @@ -307,7 +307,7 @@ export const ApplicationParameters = (props: {