Repository: apache/camel-k
Pull request #2521 (2021-07-22 16:20:35)

doc: Improve Helm configuration section and architecture integration platform
Improve the Helm configuration section by mentioning additional [common](https://camel.apache.org/camel-k/latest/installation/registry/registry.html) parameters and link to the [integration platform](https://camel.apache.org/camel-k/latest/architecture/cr/integration-platform.html) page. Also slightly improved that page. Would it be a good idea to describe the possible configuration settings on the integration platform in more detail in the main [configuration section](https://camel.apache.org/camel-k/latest/configuration/configuration.html)?

<!--
Enter your extended release note in the below block. If the PR requires
additional action from users switching to the new release, include the string
"action required". If no release note is required, write "NONE". 

You can (optionally) mark this PR with labels "kind/bug" or "kind/feature" to make sure
the text is added to the right section of the release notes. 
-->

**Release Note**
```release-note
NONE
```



Patch:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e11f7f4bb..c02018fbd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,11 @@
 
 **Closed issues:**
 
+- controller: panic on nil annotation [\#2556](https://github.com/apache/camel-k/issues/2556)
+- Remove "attributeRestrictions" from operator-role.yaml [\#2549](https://github.com/apache/camel-k/issues/2549)
+- Error in OpenShift image-pull delegation on IBM Cloud [\#2530](https://github.com/apache/camel-k/issues/2530)
+- Runtime issue: cannot use KameletBinding error handler [\#2525](https://github.com/apache/camel-k/issues/2525)
+- KameletBinding error handler nil map [\#2524](https://github.com/apache/camel-k/issues/2524)
 - camel-k-client tar.gz changes the uid/gid of cwd [\#2514](https://github.com/apache/camel-k/issues/2514)
 - \[CMD\] `kamel bind` empty error handler [\#2493](https://github.com/apache/camel-k/issues/2493)
 - ServiceBinding CR sometimes doesn't get created [\#2482](https://github.com/apache/camel-k/issues/2482)
@@ -14,10 +19,27 @@
 - Release 1.4.1 [\#2471](https://github.com/apache/camel-k/issues/2471)
 - Release 1.5.0 [\#2470](https://github.com/apache/camel-k/issues/2470)
 - Duplicated trait set as modeline and kamel run parameters causes error [\#2466](https://github.com/apache/camel-k/issues/2466)
+- Update Camel K Serverless api examples to not use --property-file [\#2463](https://github.com/apache/camel-k/issues/2463)
+- kamel CLI binary for apple silicon / arm [\#2022](https://github.com/apache/camel-k/issues/2022)
 
 **Merged pull requests:**
 
+- fix\(api\): property leading space [\#2564](https://github.com/apache/camel-k/pull/2564) ([squakez](https://github.com/squakez))
+- fix TestPermissionDenied should ignore darwin  [\#2561](https://github.com/apache/camel-k/pull/2561) ([Abirdcfly](https://github.com/Abirdcfly))
+- fix\(controller\): panic on nil annotation [\#2557](https://github.com/apache/camel-k/pull/2557) ([Abirdcfly](https://github.com/Abirdcfly))
+- postgres user on readme was different than the one created on the yam… [\#2554](https://github.com/apache/camel-k/pull/2554) ([josetesan](https://github.com/josetesan))
+- chore\(rbac\): Remove attributeRestrictions fields [\#2552](https://github.com/apache/camel-k/pull/2552) ([astefanutti](https://github.com/astefanutti))
+- fix: Fix cross-namespace creator resource events [\#2547](https://github.com/apache/camel-k/pull/2547) ([astefanutti](https://github.com/astefanutti))
+- fix\(builder\): Fix race-condition when Build transitions to running phase [\#2545](https://github.com/apache/camel-k/pull/2545) ([astefanutti](https://github.com/astefanutti))
+- Move bool pointer functions to trait package and use them throughout the traits [\#2543](https://github.com/apache/camel-k/pull/2543) ([tadayosi](https://github.com/tadayosi))
+- Forcelly set QUARKUS\_LOG\_CONSOLE\_JSON to false if the trait is not provided \(GH issue \#2539\) [\#2540](https://github.com/apache/camel-k/pull/2540) ([orpiske](https://github.com/orpiske))
+- Fix \#2530: fix type and do not add cross-namespace owner references [\#2535](https://github.com/apache/camel-k/pull/2535) ([nicolaferraro](https://github.com/nicolaferraro))
+- chore: add support for darwin/atm64 [\#2532](https://github.com/apache/camel-k/pull/2532) ([lburgazzoli](https://github.com/lburgazzoli))
+- \[test\] Remove 3rd party dependencies [\#2529](https://github.com/apache/camel-k/pull/2529) ([bouskaJ](https://github.com/bouskaJ))
+- Allow Probe Scheme to Be Customized [\#2527](https://github.com/apache/camel-k/pull/2527) ([Kyle-Cooley](https://github.com/Kyle-Cooley))
+- fix\(controller\): panic on nil application properties [\#2526](https://github.com/apache/camel-k/pull/2526) ([squakez](https://github.com/squakez))
 - Use https instead of http for xsd location [\#2517](https://github.com/apache/camel-k/pull/2517) ([apupier](https://github.com/apupier))
+- Add classpath kamelet loading test [\#2516](https://github.com/apache/camel-k/pull/2516) ([bouskaJ](https://github.com/bouskaJ))
 - fix\(\#2514\): Fix tar.gz changes the uid/gid of cwd [\#2515](https://github.com/apache/camel-k/pull/2515) ([christophd](https://github.com/christophd))
 - Fix Typo [\#2511](https://github.com/apache/camel-k/pull/2511) ([mattheh](https://github.com/mattheh))
 - chore\(release\): bump version to 1.6.0-SNAPSHOT and remove deprecated … [\#2510](https://github.com/apache/camel-k/pull/2510) ([nicolaferraro](https://github.com/nicolaferraro))
@@ -35,6 +57,7 @@
 - Fix \#2468: parse all YAML nodes in the tree [\#2476](https://github.com/apache/camel-k/pull/2476) ([nicolaferraro](https://github.com/nicolaferraro))
 - fix\(cli\) Duplicated trait set as modeline and kamel run parameters causes error [\#2467](https://github.com/apache/camel-k/pull/2467) ([claudio4j](https://github.com/claudio4j))
 - doc\(architecture\): trait section [\#2465](https://github.com/apache/camel-k/pull/2465) ([squakez](https://github.com/squakez))
+- test: Missing cli e2e tests implementation [\#2461](https://github.com/apache/camel-k/pull/2461) ([vsokolov00](https://github.com/vsokolov00))
 - chore: Remove Camel Sources support from Knative trait [\#2460](https://github.com/apache/camel-k/pull/2460) ([astefanutti](https://github.com/astefanutti))
 - chore: Update embedded camel-catalog-1.8.0-SNAPSHOT.yaml [\#2459](https://github.com/apache/camel-k/pull/2459) ([astefanutti](https://github.com/astefanutti))
 - chore: Remove unsupported probe-path property from container trait [\#2458](https://github.com/apache/camel-k/pull/2458) ([astefanutti](https://github.com/astefanutti))
diff --git a/addons/tracing/tracing.go b/addons/tracing/tracing.go
index 685f35d20..8c01fba46 100644
--- a/addons/tracing/tracing.go
+++ b/addons/tracing/tracing.go
@@ -76,11 +76,11 @@ func NewTracingTrait() trait.Trait {
 }
 
 func (t *tracingTrait) Configure(e *trait.Environment) (bool, error) {
-	if t.Enabled == nil || !*t.Enabled {
+	if trait.IsNilOrFalse(t.Enabled) {
 		return false, nil
 	}
 
-	if t.Auto == nil || *t.Auto {
+	if trait.IsNilOrTrue(t.Auto) {
 		if t.Endpoint == "" {
 			for _, locator := range discovery.TracingLocators {
 				endpoint, err := locator.FindEndpoint(e.C, t.Client, t.L, e)
diff --git a/config/rbac/builder-role-openshift.yaml b/config/rbac/builder-role-openshift.yaml
index d3c4f4fdb..251ab2dfc 100644
--- a/config/rbac/builder-role-openshift.yaml
+++ b/config/rbac/builder-role-openshift.yaml
@@ -95,7 +95,6 @@ rules:
 - apiGroups:
   - ""
   - build.openshift.io
-  attributeRestrictions: null
   resources:
   - buildconfigs/instantiate
   - buildconfigs/instantiatebinary
diff --git a/deploy/traits.yaml b/deploy/traits.yaml
index 7803458b8..e1b7d627f 100755
--- a/deploy/traits.yaml
+++ b/deploy/traits.yaml
@@ -129,6 +129,10 @@ traits:
   - name: probes-enabled
     type: bool
     description: ProbesEnabled enable/disable probes on the container (default `false`)
+  - name: liveness-scheme
+    type: string
+    description: Scheme to use when connecting. Defaults to HTTP. Applies to the liveness
+      probe.
   - name: liveness-initial-delay
     type: int32
     description: Number of seconds after the container has started before liveness
@@ -148,6 +152,10 @@ traits:
     type: int32
     description: Minimum consecutive failures for the probe to be considered failed
       after having succeeded.Applies to the liveness probe.
+  - name: readiness-scheme
+    type: string
+    description: Scheme to use when connecting. Defaults to HTTP. Applies to the readiness
+      probe.
   - name: readiness-initial-delay
     type: int32
     description: Number of seconds after the container has started before readiness
diff --git a/docs/modules/ROOT/assets/attachments/tekton/camel-k-pipeline-permissions.yaml b/docs/modules/ROOT/assets/attachments/tekton/camel-k-pipeline-permissions.yaml
index 3b05991dc..0949c0909 100644
--- a/docs/modules/ROOT/assets/attachments/tekton/camel-k-pipeline-permissions.yaml
+++ b/docs/modules/ROOT/assets/attachments/tekton/camel-k-pipeline-permissions.yaml
@@ -92,7 +92,6 @@ rules:
       - watch
   - apiGroups:
       - apps
-    attributeRestrictions: null
     resources:
       - daemonsets
     verbs:
@@ -136,7 +135,6 @@ rules:
   - apiGroups:
       - ""
       - build.openshift.io
-    attributeRestrictions: null
     resources:
       - buildconfigs/instantiate
       - buildconfigs/instantiatebinary
diff --git a/docs/modules/ROOT/pages/architecture/cr/integration-platform.adoc b/docs/modules/ROOT/pages/architecture/cr/integration-platform.adoc
index 8bb85b809..d6052e4c5 100644
--- a/docs/modules/ROOT/pages/architecture/cr/integration-platform.adoc
+++ b/docs/modules/ROOT/pages/architecture/cr/integration-platform.adoc
@@ -11,19 +11,21 @@ type IntegrationPlatform struct {
 }
 
 type IntegrationPlatformSpec struct {
-	Cluster       IntegrationPlatformCluster    // <3>
-	Profile       TraitProfile                  // <4>
-	Build         IntegrationPlatformBuildSpec  // <5>
-	Traits        map[string]TraitSpec          // <6>
-	Configuration []ConfigurationSpec           // <6>
+	Cluster       IntegrationPlatformCluster       // <3>
+	Profile       TraitProfile                     // <4>
+	Build         IntegrationPlatformBuildSpec     // <5>
+	Traits        map[string]TraitSpec             // <6>
+	Configuration []ConfigurationSpec              // <6>
+	Kamelet       []IntegrationPlatformKameletSpec // <7>
 }
 ----
 <1> The desired state
 <2> The status of the object at current time
 <3> The type of the Kubernetes Cluster (Kubernetes or OpenShift)
-<4> Configures the traits that have to be applied by default (Kubernetes, OpneShift, Knative)
-<5> Configuration options of the image build process such as the type of the builder (buildah, kanico, spectrum) and the maven repositories that have to be configured in order retrieve the artifacts needed by the integrations.
-<6> The traits and configuration options that have to be propagated to each integration.
+<4> Configures the traits that have to be applied by default (Kubernetes, OpenShift, Knative)
+<5> Configuration options of the image build process such as the type of the builder (buildah, kanico, spectrum), the container registry and the maven repositories that have to be configured in order retrieve the artifacts needed by the integrations.
+<6> The traits and configuration options (properties, secrets, configmaps) that have to be propagated to each integration.
+<7> Locations to look up Kamelet definitions
 
 [NOTE]
 ====
diff --git a/docs/modules/ROOT/pages/installation/minikube.adoc b/docs/modules/ROOT/pages/installation/minikube.adoc
index 960e70d5e..4b5afd0d7 100644
--- a/docs/modules/ROOT/pages/installation/minikube.adoc
+++ b/docs/modules/ROOT/pages/installation/minikube.adoc
@@ -16,4 +16,9 @@ After the startup process is completed, you need to **enable the `registry` addo
 minikube addons enable registry
 ```
 
+Alternatively, you can also start an instance with the `registry` addon in one command:
+```
+minikube start --addons registry
+```
+
 You can now proceed with the xref:installation/installation.adoc#procedure[standard Camel K installation procedure].
diff --git a/docs/modules/ROOT/pages/kamelets/kamelets-dev.adoc b/docs/modules/ROOT/pages/kamelets/kamelets-dev.adoc
index 81e234794..4be8afa92 100644
--- a/docs/modules/ROOT/pages/kamelets/kamelets-dev.adoc
+++ b/docs/modules/ROOT/pages/kamelets/kamelets-dev.adoc
@@ -580,7 +580,7 @@ with all the advantages that derive from a point of view of performance and reso
 
 If we managed to reduce our integration to contain only a Camel route, converting it to YAML is straightforward:
 
-.earthquake-source.kamelet.yaml
+.earthquake.yaml
 [source,yaml]
 ----
 # camel-k: language=yaml property=period=20000 property=lookAhead=120 dependency=camel-quarkus:caffeine dependency=camel-quarkus:http
diff --git a/docs/modules/traits/pages/container.adoc b/docs/modules/traits/pages/container.adoc
index 9fdf63b55..2a4dc45b8 100755
--- a/docs/modules/traits/pages/container.adoc
+++ b/docs/modules/traits/pages/container.adoc
@@ -81,6 +81,10 @@ The following configuration options are available:
 | bool
 | ProbesEnabled enable/disable probes on the container (default `false`)
 
+| container.liveness-scheme
+| string
+| Scheme to use when connecting. Defaults to HTTP. Applies to the liveness probe.
+
 | container.liveness-initial-delay
 | int32
 | Number of seconds after the container has started before liveness probes are initiated.
@@ -103,6 +107,10 @@ Applies to the liveness probe.
 | Minimum consecutive failures for the probe to be considered failed after having succeeded.
 Applies to the liveness probe.
 
+| container.readiness-scheme
+| string
+| Scheme to use when connecting. Defaults to HTTP. Applies to the readiness probe.
+
 | container.readiness-initial-delay
 | int32
 | Number of seconds after the container has started before readiness probes are initiated.
diff --git a/examples/databases/postgres-deploy/README.md b/examples/databases/postgres-deploy/README.md
index 1c4a9ecdf..11b280fbd 100644
--- a/examples/databases/postgres-deploy/README.md
+++ b/examples/databases/postgres-deploy/README.md
@@ -15,7 +15,7 @@ Connection credentials available in the _postgres-configmap.yaml_ descriptor.
 
 ```
 kubectl get svc postgres
-psql -h <IP> -U postgresadmin1 --password -p <PORT> postgresdb
+psql -h <IP> -U postgresadmin --password -p <PORT> postgresdb
 ```
 ## Create a test database and table
 ```
diff --git a/examples/traits/container/HttpsHealthChecks.java b/examples/traits/container/HttpsHealthChecks.java
new file mode 100644
index 000000000..3607fc748
--- /dev/null
+++ b/examples/traits/container/HttpsHealthChecks.java
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// Generate a certificate for the integration (provide at least Country Name, can use defaults for rest)
+// openssl req -x509 -newkey rsa:4096 -keyout /tmp/integration-key.pem -out /tmp/integration-cert.pem -days 365 -nodes
+
+// Create a secret containing the generated certificate
+// kubectl create secret tls my-tls-secret --cert=/tmp/integration-cert.pem --key=/tmp/integration-key.pem
+
+// Run the integration
+/*
+kamel run \
+  --property quarkus.http.ssl.certificate.file=/etc/camel/conf.d/_secrets/my-tls-secret/tls.crt \
+  --property quarkus.http.ssl.certificate.key-file=/etc/camel/conf.d/_secrets/my-tls-secret/tls.key \
+  --config secret:my-tls-secret \
+  HttpsHealthChecks.java \
+  --trait container.port=8443 \
+  --trait container.probes-enabled=true \
+  --trait container.liveness-scheme=HTTPS \
+  --trait container.readiness-scheme=HTTPS
+*/
+
+import org.apache.camel.builder.RouteBuilder;
+
+public class HttpsHealthChecks extends RouteBuilder {
+    @Override
+    public void configure() throws Exception {
+        from("timer:tick")
+            .setBody()
+            .constant("Hello Camel K!")
+            .to("log:info");
+    }
+}
diff --git a/examples/traits/container/README.md b/examples/traits/container/README.md
new file mode 100644
index 000000000..144142a31
--- /dev/null
+++ b/examples/traits/container/README.md
@@ -0,0 +1,3 @@
+# Camel K Container Trait
+
+In this section you will find examples about fine tuning your `Integration` using **Container** `trait` capability.
diff --git a/helm/camel-k/README.md b/helm/camel-k/README.md
index 086307605..e1bed176f 100644
--- a/helm/camel-k/README.md
+++ b/helm/camel-k/README.md
@@ -69,21 +69,24 @@ The command removes all the Kubernetes resources installed.
 ## Configuration
 
 The following table lists the most commonly configured parameters of the
-CouchDB chart and their default values:
+Camel-K chart and their default values. The chart allows configuration of an `IntegrationPlatform` resource, which among others includes build properties and traits configuration. A full list of parameters can be found [in the operator specification][1].
 
-|           Parameter                |             Description                                     |                Default                 |
-|------------------------------------|-------------------------------------------------------------|----------------------------------------|
-| `platform.build.registry.address`  | The address of a container image registry to push images    |                                        |
-| `platform.build.registry.insecure` | Indicates if the registry is secured                        | true                                   |
-| `platform.cluster`                 | The kind of Kubernetes cluster (Kubernetes or OpenShift)    | `Kubernetes`                           |
-| `platform.profile`                 | The trait profile to use (Knative, Kubernetes or OpenShift) | auto                                   |
+|           Parameter                    |             Description                                                   |            Default             |
+|----------------------------------------|---------------------------------------------------------------------------|--------------------------------|
+| `platform.build.registry.address`      | The address of a container image registry to push images                  |                                |
+| `platform.build.registry.secret`       | A secret used to push/pull images to the Docker registry                  |                                |
+| `platform.build.registry.organization` | An organization on the Docker registry that can be used to publish images |                                |
+| `platform.build.registry.insecure`     | Indicates if the registry is not secured                                  | true                           |
+| `platform.cluster`                     | The kind of Kubernetes cluster (Kubernetes or OpenShift)                  | `Kubernetes`                   |
+| `platform.profile`                     | The trait profile to use (Knative, Kubernetes or OpenShift)               | auto                           |
 
 ## Contributing
 
 We'd like to hear your feedback and we love any kind of contribution!
 
-The main contact points for the Camel K project are the [GitHub repository][1]
-and the [Chat room][2].
+The main contact points for the Camel K project are the [GitHub repository][2]
+and the [Chat room][3].
 
-[1]: https://github.com/apache/camel-k
-[2]: https://camel.zulipchat.com
+[1]: https://camel.apache.org/camel-k/latest/architecture/cr/integration-platform.html
+[2]: https://github.com/apache/camel-k
+[3]: https://camel.zulipchat.com
diff --git a/helm/camel-k/templates/operator-role.yaml b/helm/camel-k/templates/operator-role.yaml
index 1e9fc34bf..b5b1aad96 100644
--- a/helm/camel-k/templates/operator-role.yaml
+++ b/helm/camel-k/templates/operator-role.yaml
@@ -120,7 +120,6 @@ rules:
   - watch
 - apiGroups:
   - apps
-  attributeRestrictions: null
   resources:
   - daemonsets
   verbs:
@@ -177,7 +176,6 @@ rules:
 - apiGroups:
   - ""
   - build.openshift.io
-  attributeRestrictions: null
   resources:
   - buildconfigs/instantiate
   - buildconfigs/instantiatebinary
diff --git a/pkg/apis/camel/v1/integration_types_support.go b/pkg/apis/camel/v1/integration_types_support.go
index 31f09d5d9..c0df521e2 100644
--- a/pkg/apis/camel/v1/integration_types_support.go
+++ b/pkg/apis/camel/v1/integration_types_support.go
@@ -148,13 +148,20 @@ func (in *IntegrationSpec) GetConfigurationProperty(property string) string {
 		if confSpec.Type == "property" && strings.HasPrefix(confSpec.Value, property) {
 			splitConf := strings.Split(confSpec.Value, "=")
 			if len(splitConf) > 1 {
-				return splitConf[1]
+				return trimFirstLeadingSpace(splitConf[1])
 			}
 		}
 	}
 	return ""
 }
 
+func trimFirstLeadingSpace(val string) string {
+	if strings.HasPrefix(val, " ") {
+		return val[1:]
+	}
+	return val
+}
+
 // AddOrReplaceGeneratedResources --
 func (in *IntegrationStatus) AddOrReplaceGeneratedResources(resources ...ResourceSpec) {
 	newResources := make([]ResourceSpec, 0)
diff --git a/pkg/controller/build/monitor_pod.go b/pkg/controller/build/monitor_pod.go
index c14300d2b..3c3bf1307 100644
--- a/pkg/controller/build/monitor_pod.go
+++ b/pkg/controller/build/monitor_pod.go
@@ -224,7 +224,13 @@ func (action *monitorPodAction) addTimeoutAnnotation(ctx context.Context, pod *c
 		return nil
 	}
 	return action.patchPod(ctx, pod, func(p *corev1.Pod) {
-		p.GetAnnotations()[timeoutAnnotation] = time.String()
+		if p.GetAnnotations() != nil {
+			p.GetAnnotations()[timeoutAnnotation] = time.String()
+		} else {
+			p.SetAnnotations(map[string]string{
+				timeoutAnnotation: time.String(),
+			})
+		}
 	})
 }
 
diff --git a/pkg/controller/build/monitor_routine.go b/pkg/controller/build/monitor_routine.go
index 64a3bbd67..8ba1b6772 100644
--- a/pkg/controller/build/monitor_routine.go
+++ b/pkg/controller/build/monitor_routine.go
@@ -68,7 +68,11 @@ func (action *monitorRoutineAction) Handle(ctx context.Context, build *v1.Build)
 			build.Status.Error = "Build routine exists"
 			return build, nil
 		}
-		// Start the build asynchronously to avoid blocking the reconcile loop
+		status := v1.BuildStatus{Phase: v1.BuildPhaseRunning}
+		if err := action.updateBuildStatus(ctx, build, status); err != nil {
+			return nil, err
+		}
+		// Start the build asynchronously to avoid blocking the reconciliation loop
 		routines.Store(build.Name, true)
 		go action.runBuild(build)
 
@@ -92,11 +96,7 @@ func (action *monitorRoutineAction) runBuild(build *v1.Build) {
 	ctxWithTimeout, cancel := context.WithDeadline(ctx, build.Status.StartedAt.Add(build.Spec.Timeout.Duration))
 	defer cancel()
 
-	status := v1.BuildStatus{Phase: v1.BuildPhaseRunning}
-	if err := action.updateBuildStatus(ctx, build, status); err != nil {
-		return
-	}
-
+	status := v1.BuildStatus{}
 	buildDir := ""
 	Builder := builder.New(action.client)
 
diff --git a/pkg/controller/integration/build_kit.go b/pkg/controller/integration/build_kit.go
index 30a629f12..005ed45f9 100644
--- a/pkg/controller/integration/build_kit.go
+++ b/pkg/controller/integration/build_kit.go
@@ -122,13 +122,13 @@ func (action *buildKitAction) Handle(ctx context.Context, integration *v1.Integr
 	// Add some information for post-processing, this may need to be refactored
 	// to a proper data structure
 	platformKit.Labels = map[string]string{
-		"camel.apache.org/kit.type":             v1.IntegrationKitTypePlatform,
-		"camel.apache.org/created.by.kind":      v1.IntegrationKind,
-		"camel.apache.org/created.by.name":      integration.Name,
-		"camel.apache.org/created.by.namespace": integration.Namespace,
-		"camel.apache.org/created.by.version":   integration.ResourceVersion,
-		"camel.apache.org/runtime.version":      integration.Status.RuntimeVersion,
-		"camel.apache.org/runtime.provider":     string(integration.Status.RuntimeProvider),
+		"camel.apache.org/kit.type":           v1.IntegrationKitTypePlatform,
+		"camel.apache.org/runtime.version":    integration.Status.RuntimeVersion,
+		"camel.apache.org/runtime.provider":   string(integration.Status.RuntimeProvider),
+		kubernetes.CamelCreatorLabelKind:      v1.IntegrationKind,
+		kubernetes.CamelCreatorLabelName:      integration.Name,
+		kubernetes.CamelCreatorLabelNamespace: integration.Namespace,
+		kubernetes.CamelCreatorLabelVersion:   integration.ResourceVersion,
 	}
 
 	// Set the kit to have the same characteristics as the integrations
diff --git a/pkg/controller/kameletbinding/error_handler.go b/pkg/controller/kameletbinding/error_handler.go
index 4f7115624..57aa06b0a 100644
--- a/pkg/controller/kameletbinding/error_handler.go
+++ b/pkg/controller/kameletbinding/error_handler.go
@@ -100,6 +100,10 @@ func setErrorHandlerConfiguration(errorHandlerBinding *bindings.Binding, errorHa
 	if err != nil {
 		return err
 	}
+	// initialize map if not yet initialized
+	if errorHandlerBinding.ApplicationProperties == nil {
+		errorHandlerBinding.ApplicationProperties = make(map[string]string)
+	}
 	for key, value := range properties {
 		errorHandlerBinding.ApplicationProperties[key] = fmt.Sprintf("%v", value)
 	}
diff --git a/pkg/event/manager.go b/pkg/event/manager.go
index 6278ba8fe..c8362d2eb 100644
--- a/pkg/event/manager.go
+++ b/pkg/event/manager.go
@@ -21,15 +21,17 @@ import (
 	"context"
 	"fmt"
 
+	corev1 "k8s.io/api/core/v1"
+	"k8s.io/apimachinery/pkg/runtime"
+	"k8s.io/client-go/tools/record"
+
+	ctrl "sigs.k8s.io/controller-runtime/pkg/client"
+
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
 	"github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
 	"github.com/apache/camel-k/pkg/client"
 	"github.com/apache/camel-k/pkg/util/kubernetes"
 	"github.com/apache/camel-k/pkg/util/log"
-	corev1 "k8s.io/api/core/v1"
-	"k8s.io/apimachinery/pkg/runtime"
-	"k8s.io/client-go/tools/record"
-	runtimeclient "sigs.k8s.io/controller-runtime/pkg/client"
 )
 
 const (
@@ -260,17 +262,21 @@ func NotifyBuildError(ctx context.Context, c client.Client, recorder record.Even
 }
 
 // nolint:lll
-func notifyIfPhaseUpdated(ctx context.Context, c client.Client, recorder record.EventRecorder, new runtime.Object, oldPhase, newPhase string, resourceType, name, reason, info string) {
+func notifyIfPhaseUpdated(ctx context.Context, c client.Client, recorder record.EventRecorder, new ctrl.Object, oldPhase, newPhase string, resourceType, name, reason, info string) {
 	// Update information about phase changes
 	if oldPhase != newPhase {
 		phase := newPhase
 		if phase == "" {
 			phase = "[none]"
 		}
-		recorder.Eventf(new, corev1.EventTypeNormal, reason, "%s %s in phase %q%s", resourceType, name, phase, info)
+		recorder.Eventf(new, corev1.EventTypeNormal, reason, "%s %q in phase %q%s", resourceType, name, phase, info)
 
 		if creatorRef, creator := getCreatorObject(ctx, c, new); creatorRef != nil && creator != nil {
-			recorder.Eventf(creator, corev1.EventTypeNormal, ReasonRelatedObjectChanged, "%s %s subresource %s (%s) changed phase to %q%s", creatorRef.Kind, creatorRef.Name, name, resourceType, phase, info)
+			if namespace := new.GetNamespace(); namespace == creatorRef.Namespace {
+				recorder.Eventf(creator, corev1.EventTypeNormal, ReasonRelatedObjectChanged, "%s %q, created by %s %q, changed phase to %q%s", resourceType, name, creatorRef.Kind, creatorRef.Name, phase, info)
+			} else {
+				recorder.Eventf(creator, corev1.EventTypeNormal, ReasonRelatedObjectChanged, "%s \"%s/%s\", created by %s %q, changed phase to %q%s", resourceType, namespace, name, creatorRef.Kind, creatorRef.Name, phase, info)
+			}
 		}
 	}
 }
@@ -305,12 +311,8 @@ func getCreatorObject(ctx context.Context, c client.Client, obj runtime.Object)
 	if ref := kubernetes.GetCamelCreator(obj); ref != nil {
 		if ref.Kind == "Integration" {
 			it := v1.NewIntegration(ref.Namespace, ref.Name)
-			key := runtimeclient.ObjectKey{
-				Namespace: ref.Namespace,
-				Name:      ref.Name,
-			}
-			if err := c.Get(ctx, key, &it); err != nil {
-				log.Infof("Cannot get information about the Integration creating resource %v: %v", ref, err)
+			if err := c.Get(ctx, ctrl.ObjectKeyFromObject(&it), &it); err != nil {
+				log.Infof("Cannot get information about the creator Integration %v: %v", ref, err)
 				return nil, nil
 			}
 			return ref, &it
diff --git a/pkg/resources/resources.go b/pkg/resources/resources.go
index f1acd009a..b2abbd265 100644
--- a/pkg/resources/resources.go
+++ b/pkg/resources/resources.go
@@ -192,9 +192,9 @@ var assets = func() http.FileSystem {
 		"/rbac/builder-role-openshift.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "builder-role-openshift.yaml",
 			modTime:          time.Time{},
-			uncompressedSize: 2116,
+			uncompressedSize: 2086,
 
-			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xc4\x54\x4f\x8f\xdb\xb6\x13\xbd\xf3\x53\x3c\x48\x97\xe4\x87\xb5\xfc\x6b\x4f\x85\x7b\x72\x37\xbb\xad\xd1\xc0\x06\x56\x4e\x83\x1c\xc7\xd4\x58\x1a\x2c\x45\xb2\x24\xb5\xca\xf6\xd3\x17\xa2\xed\xae\x1d\xa7\xff\xd0\x00\xd1\xc5\xa3\xe1\xf0\xcd\x7b\xf3\xc6\x2a\x31\xfb\x72\x8f\x2a\xf1\x56\x34\xdb\xc8\x0d\x92\x43\xea\x18\x4b\x4f\xba\x63\xd4\x6e\x9f\x46\x0a\x8c\x7b\x37\xd8\x86\x92\x38\x8b\x57\xcb\xfa\xfe\x35\x06\xdb\x70\x80\xb3\x0c\x17\xd0\xbb\xc0\xaa\x84\x76\x36\x05\xd9\x0d\xc9\x05\x98\x03\x20\xa8\x0d\xcc\x3d\xdb\x14\x2b\xa0\x66\xce\xe8\xeb\xcd\x76\x75\x7b\x87\xbd\x18\x46\x23\xf1\x70\x89\x1b\x8c\x92\x3a\x55\x22\x75\x12\x31\xba\xf0\x88\xbd\x0b\xa0\xa6\x91\xa9\x31\x19\x88\xdd\xbb\xd0\x1f\x68\x04\x6e\x29\x34\x62\x5b\x68\xe7\x9f\x83\xb4\x5d\x82\x1b\x2d\x87\xd8\x89\xaf\x54\x89\xed\x24\xa3\xbe\x3f\x31\x89\x07\xd8\xdc\x33\x39\x7c\x70\xc3\x51\xc3\x99\xdc\xe3\x14\x6e\xf0\x0b\x87\x38\x35\xf9\xb6\xfa\xbf\x2a\xf1\x6a\x2a\x29\x8e\x87\xc5\xeb\xef\xf1\xec\x06\xf4\xf4\x0c\xeb\x12\x86\xc8\x67\xc8\xfc\x51\xb3\x4f\x10\x0b\xed\x7a\x6f\x84\xac\xe6\x17\x59\x7f\x74\xa8\x90\x09\x4c\x18\x6e\x97\x48\x2c\x28\xcb\x80\xdb\x9f\x97\x81\x92\x2a\x55\x89\xfc\x74\x29\xf9\xc5\x7c\x3e\x8e\x63\x45\x99\x6e\xe5\x42\x3b\x3f\xa9\x9b\xbf\x5d\xdd\xde\xad\xeb\xbb\x59\xa6\xac\x4a\xbc\xb3\x86\x63\x44\xe0\x5f\x07\x09\xdc\x60\xf7\x0c\xf2\xde\x88\xa6\x9d\x61\x18\x1a\x27\xe3\xb2\x3b\xd9\x74\xb1\x18\x83\x24\xb1\xed\x0d\xe2\xd1\x75\x55\x5e\xb8\xf3\x32\xae\x13\x3d\x89\x17\x05\xce\x82\x2c\x8a\x65\x8d\x55\x5d\xe0\x87\x65\xbd\xaa\x6f\x54\x89\xf7\xab\xed\x4f\x9b\x77\x5b\xbc\x5f\x3e\x3c\x2c\xd7\xdb\xd5\x5d\x8d\xcd\x03\x6e\x37\xeb\x37\xab\xed\x6a\xb3\xae\xb1\xb9\xc7\x72\xfd\x01\x3f\xaf\xd6\x6f\x6e\xc0\x92\x3a\x0e\xe0\x8f\x3e\x4c\xfc\x5d\x80\x4c\x83\xe4\x66\xf2\xf4\xb4\x40\x27\x02\xd3\x7e\x4c\xef\xd1\xb3\x96\xbd\x68\x18\xb2\xed\x40\x2d\xa3\x75\x4f\x1c\xec\xb4\x1e\x9e\x43\x2f\x71\xb2\x33\x82\x6c\xa3\x4a\x18\xe9\x25\xe5\x2d\x8a\xd7\xa2\xa6\x36\x5f\xf2\xbf\xa5\x1e\xc5\x36\x0b\x3c\x38\xc3\x8a\xbc\x1c\x37\x6b\x81\xb0\x23\x5d\xd1\x90\x3a\x17\xe4\xb7\x4c\xa6\x7a\xfc\x2e\x56\xe2\xe6\x4f\xdf\xa8\x9e\x13\x35\x94\x68\xa1\x00\x4b\x3d\x2f\xa0\xa9\x67\x33\x7b\x9c\xed\x06\x31\x0d\x07\x05\x18\xda\xb1\x89\x53\x05\x26\x67\x17\x28\x8e\x35\x85\x0a\x83\xe1\xb8\x50\x33\x90\x97\x1f\x83\x1b\x7c\x2e\x9b\x1d\x40\xce\xb6\x47\x01\x81\xa3\x1b\x82\xe6\x63\x45\xf1\xbf\x42\x01\x4f\x1c\x76\x67\x89\x2b\x9c\xa2\xb8\xbe\xe9\x5d\x13\x2f\xaf\xea\xc0\x94\x38\x87\x0d\x1b\xbe\x08\xb5\x33\x86\xf5\xa4\x3a\x27\x5b\x4e\xf9\xd7\x48\x3c\x04\x9e\x92\xee\x72\x34\xf8\xe6\x84\x32\xe6\xe4\x3f\x62\xa3\x9d\xdd\x4b\xdb\x93\x8f\xf9\x35\xb2\x0e\x9c\x3e\xe1\x77\xd5\xf4\x5f\xe0\xf3\xd3\xf4\x49\xfb\x0f\x78\x33\x14\xd9\xca\xca\x79\xb6\xb1\x93\x7d\xaa\xc4\x7d\xa6\x51\x2e\x3a\xa8\x89\x57\x89\xf9\xc8\xbb\xce\xb9\xc7\xb3\x93\xaf\xe9\xc1\x0c\x85\xf4\xd4\xf2\xdf\x69\xca\x45\x31\x05\xa6\xfe\x10\x7e\x9a\xed\xc9\x7b\xb1\xed\x55\xfe\x3a\x31\x7f\x71\xf6\xe2\x20\x51\xfb\x75\x27\x71\x6d\xae\x02\x28\x1d\xbf\x95\x0f\x13\x4d\xc9\x1d\xe3\x02\x76\x30\xe6\xaf\x9d\x9f\x8b\x8d\x89\x6c\x92\x53\xf3\x3f\x3b\xdc\x89\xa5\xf0\x7c\xb6\x0e\x73\x6d\x9c\xe5\xcf\x8e\xe2\xf7\x00\x00\x00\xff\xff\xc1\xd8\x41\x81\x44\x08\x00\x00"),
+			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xc4\x54\x4f\x8f\xdb\xb6\x13\xbd\xf3\x53\x3c\x48\x97\xe4\x87\xb5\xfc\x6b\x4f\x85\x7b\x72\x37\xbb\xad\xd1\xc0\x06\x56\x4e\x83\x1c\xc7\xd4\x58\x1a\x2c\x45\xb2\x24\xb5\xca\xf6\xd3\x17\xa2\xed\xae\x1d\xa7\xff\xd0\x00\xd1\xc5\xd4\xf0\xf1\xcd\x7b\x7c\x63\x95\x98\x7d\xb9\x47\x95\x78\x2b\x9a\x6d\xe4\x06\xc9\x21\x75\x8c\xa5\x27\xdd\x31\x6a\xb7\x4f\x23\x05\xc6\xbd\x1b\x6c\x43\x49\x9c\xc5\xab\x65\x7d\xff\x1a\x83\x6d\x38\xc0\x59\x86\x0b\xe8\x5d\x60\x55\x42\x3b\x9b\x82\xec\x86\xe4\x02\xcc\x81\x10\xd4\x06\xe6\x9e\x6d\x8a\x15\x50\x33\x67\xf6\xf5\x66\xbb\xba\xbd\xc3\x5e\x0c\xa3\x91\x78\x38\xc4\x0d\x46\x49\x9d\x2a\x91\x3a\x89\x18\x5d\x78\xc4\xde\x05\x50\xd3\xc8\xd4\x98\x0c\xc4\xee\x5d\xe8\x0f\x32\x02\xb7\x14\x1a\xb1\x2d\xb4\xf3\xcf\x41\xda\x2e\xc1\x8d\x96\x43\xec\xc4\x57\xaa\xc4\x76\xb2\x51\xdf\x9f\x94\xc4\x03\x6d\xee\x99\x1c\x3e\xb8\xe1\xe8\xe1\xcc\xee\xf1\x16\x6e\xf0\x0b\x87\x38\x35\xf9\xb6\xfa\xbf\x2a\xf1\x6a\x82\x14\xc7\xcd\xe2\xf5\xf7\x78\x76\x03\x7a\x7a\x86\x75\x09\x43\xe4\x33\x66\xfe\xa8\xd9\x27\x88\x85\x76\xbd\x37\x42\x56\xf3\x8b\xad\x3f\x3a\x54\xc8\x02\x26\x0e\xb7\x4b\x24\x16\x94\x6d\xc0\xed\xcf\x61\xa0\xa4\x4a\x55\x22\x3f\x5d\x4a\x7e\x31\x9f\x8f\xe3\x58\x51\x96\x5b\xb9\xd0\xce\x4f\xee\xe6\x6f\x57\xb7\x77\xeb\xfa\x6e\x96\x25\xab\x12\xef\xac\xe1\x18\x11\xf8\xd7\x41\x02\x37\xd8\x3d\x83\xbc\x37\xa2\x69\x67\x18\x86\xc6\x29\xb8\x9c\x4e\x0e\x5d\x2c\xc6\x20\x49\x6c\x7b\x83\x78\x4c\x5d\x95\x17\xe9\xbc\x5c\xd7\x49\x9e\xc4\x0b\x80\xb3\x20\x8b\x62\x59\x63\x55\x17\xf8\x61\x59\xaf\xea\x1b\x55\xe2\xfd\x6a\xfb\xd3\xe6\xdd\x16\xef\x97\x0f\x0f\xcb\xf5\x76\x75\x57\x63\xf3\x80\xdb\xcd\xfa\xcd\x6a\xbb\xda\xac\x6b\x6c\xee\xb1\x5c\x7f\xc0\xcf\xab\xf5\x9b\x1b\xb0\xa4\x8e\x03\xf8\xa3\x0f\x93\x7e\x17\x20\xd3\x45\x72\x33\x65\x7a\x1a\xa0\x93\x80\x69\x3e\xa6\xf7\xe8\x59\xcb\x5e\x34\x0c\xd9\x76\xa0\x96\xd1\xba\x27\x0e\x76\x1a\x0f\xcf\xa1\x97\x38\xc5\x19\x41\xb6\x51\x25\x8c\xf4\x92\xf2\x14\xc5\x6b\x53\x53\x9b\x2f\xf9\xdf\x52\x8f\x62\x9b\x05\x1e\x9c\x61\x45\x5e\x8e\x93\xb5\x40\xd8\x91\xae\x68\x48\x9d\x0b\xf2\x5b\x16\x53\x3d\x7e\x17\x2b\x71\xf3\xa7\x6f\x54\xcf\x89\x1a\x4a\xb4\x50\x80\xa5\x9e\x17\xd0\xd4\xb3\x99\x3d\xce\x76\x83\x98\x86\x83\x02\x0c\xed\xd8\xc4\x09\x81\x29\xd9\x05\x8a\x23\xa6\x50\x61\x30\x1c\x17\x6a\x06\xf2\xf2\x63\x70\x83\xcf\xb0\xd9\x81\xe4\x6c\x7a\x14\x10\x38\xba\x21\x68\x3e\x22\x8a\xff\x15\x0a\x78\xe2\xb0\x3b\x2b\x5c\xf1\x14\xc5\xf5\x49\xef\x9a\x78\x79\x54\x07\xa6\xc4\x79\xd9\xb0\xe1\x8b\xa5\x76\xc6\xb0\x9e\x5c\xe7\x62\xcb\x29\xff\x1a\x89\x87\x85\xa7\xa4\xbb\xbc\x1a\x7c\x73\x62\x19\x73\xf1\x1f\xa9\xd1\xce\xee\xa5\xed\xc9\xc7\xfc\x1a\x59\x07\x4e\x9f\xe8\xbb\x6a\xfa\x2f\xf8\xf9\x69\xfa\xa4\xfd\x07\xbe\x19\x8a\x1c\x65\xe5\x3c\xdb\xd8\xc9\x3e\x55\xe2\x3e\xd3\x28\x83\x0e\x6e\xe2\x55\x61\x3e\xf2\xae\x73\xee\xf1\x6c\xe7\x6b\x66\x30\x43\x21\x3d\xb5\xfc\x77\x9e\x32\x28\xa6\xc0\xd4\x1f\x96\x9f\x56\x7b\xf2\x5e\x6c\x7b\x55\xbf\x2e\xcc\x5f\x92\xbd\xd8\x48\xd4\x7e\xdd\x9b\xb8\x0e\xf7\xaf\xb3\x9d\x8b\x8d\x89\x6c\x92\x13\xfd\x9f\x6d\xee\xc4\x52\x78\x3e\x0b\x7c\xae\x8d\xb3\xfc\x59\xb3\xbf\x07\x00\x00\xff\xff\x3f\xeb\x2e\xed\x26\x08\x00\x00"),
 		},
 		"/rbac/operator-cluster-role-binding-openshift.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "operator-cluster-role-binding-openshift.yaml",
@@ -467,9 +467,9 @@ var assets = func() http.FileSystem {
 		"/traits.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "traits.yaml",
 			modTime:          time.Time{},
-			uncompressedSize: 38723,
+			uncompressedSize: 39017,
 
-			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x7d\x7b\x73\x1c\xb9\xf1\xd8\xff\xfa\x14\x28\xfe\x52\xc5\x47\xed\x0e\xa9\x73\x6c\x5f\x98\x28\x2e\x9e\xa4\xb3\x79\xa7\x07\x23\xca\xe7\x4a\x29\x57\x5e\xec\x4c\xef\x2e\x44\x0c\x30\x06\x30\xa4\xd6\xa9\x7c\xf7\x14\xba\xf1\x9a\xdd\x21\xb9\xd4\x1d\xaf\x8e\xa9\xd8\x7f\x9c\x48\xce\x34\x1a\x8d\x46\xbf\xbb\xc7\x19\x2e\x9c\x3d\x7d\x36\x65\x8a\xb7\x70\xca\xf8\x62\x21\x94\x70\xeb\x67\x8c\x75\x92\xbb\x85\x36\xed\x29\x5b\x70\x69\xc1\xff\xc6\xe8\x85\x90\x60\x4f\x9f\x31\x36\x65\x3f\xf6\x73\x30\x0a\x1c\x58\xfa\x51\x71\x27\xae\x01\xff\xfd\xbe\x03\x75\xb9\x12\x0b\xf7\x8c\xb1\x06\x6c\x6d\x44\xe7\x84\x56\xa7\xec\x4c\x4a\x7d\x63\x59\xad\x95\xf5\x2b\x2b\xa1\x96\xec\x66\x25\xea\x15\x53\xba\x01\xcb\xdc\x0a\x98\x50\x0e\x96\x86\xfb\x17\x58\xa7\x9b\x03\x7b\xc8\xb8\x01\x06\x52\x2c\xc5\x5c\xfa\x05\x18\x73\x9a\xcd\x81\xd9\x7a\x05\x4d\x2f\xa1\x61\x5a\x4d\xd8\x9c\x5b\xfc\x17\x93\x7c\x0e\xd2\xfa\x7f\x79\x70\x1e\xf0\x84\x69\xc3\x6e\x84\x5b\x21\x70\x33\xed\x74\x93\x76\xca\xb8\x6a\x10\x26\x57\x4e\x4c\xe3\x6f\x47\xc1\x75\xba\xf1\x28\x72\x87\x08\x71\x69\x80\x37\x6b\x66\x7a\x85\xfb\x28\xd6\xb3\x15\x42\x3c\x77\xfb\x96\x35\xc2\xf2\xb9\xc7\x71\xbe\x66\x0d\x2c\x78\x2f\x5d\x45\xb4\xec\xc0\x38\x11\xa9\x49\xe4\x07\x85\xcf\xd2\x1e\xd7\x1d\x9c\xb2\xb9\xd6\x12\x7f\x1c\xd0\xf1\x25\x57\x9e\x00\xbd\x47\xd1\xe9\xf0\x9a\xdf\x64\x58\x8d\x71\x86\x27\x5b\x79\x8a\xd3\x3f\x2d\xb3\x2b\x8f\xb6\x5b\x09\x7f\x00\x6d\xab\x15\xc2\x4d\xa8\xac\xab\x02\x91\x4e\x37\xd3\x82\x17\xee\xc6\xe6\x4c\xde\xf0\xb5\x07\x3a\x95\xba\xe6\x0e\x2c\x6b\x7b\xe9\x44\x27\x81\x19\xe8\xa4\xa8\xb9\x65\x7a\xb1\x75\xb8\x82\x08\x66\x79\x0b\x01\x13\x4f\x3b\x76\x10\xa8\xc4\x8e\x90\xef\x8e\x0e\xb7\xf0\x2a\x0f\xea\x5e\xe4\xde\xc1\x35\x98\xdf\x04\x37\xff\x44\xc2\x6b\x4a\x6c\x53\xa0\xb7\xff\xe9\x67\xeb\x8c\x50\xcb\xfd\x6d\x24\x5f\xc1\x42\x28\xb0\x8c\x33\x0b\xce\xe3\xb3\xf3\x75\xa0\xab\x10\x70\xdc\xf9\x42\xdc\x76\xd4\xbf\x10\x6b\xbc\x20\x07\x1e\xac\x5c\x33\xb7\xd2\x16\x58\xcb\x5d\xbd\xf2\xd7\xc3\x2f\x8d\xd0\x99\x05\x09\xb5\xd3\x66\x12\xb0\x36\x20\x51\x74\xf8\xad\xf8\xa7\x96\xe2\x1a\x14\x22\x67\x3b\x5e\xc3\x21\x5d\x39\xb7\x82\x11\x52\xd8\x95\xee\x65\xe3\xef\x42\x3a\xe1\x26\x80\xf5\xf7\xfd\x4e\xd6\x79\xaa\x9b\x55\xda\xdd\xb1\xe1\xb8\xdd\x79\x2f\x64\x03\x66\x20\xc8\x9d\xe9\x7f\x1d\x39\xfe\x71\x05\x71\x01\x92\x2e\x4c\x58\x92\xad\x8a\x4b\xb9\x4e\x82\xa9\x01\x07\xa6\x15\x0a\x70\xaf\x73\xb0\x8e\x79\xc1\xef\x60\xb9\x4e\x72\xdc\x83\xf1\x42\xd8\x6b\x85\x85\x58\xf6\x06\xd8\x79\xde\xfb\x8f\xc2\xd9\x27\x20\x2f\xaf\xc1\xcc\xb5\x85\x7b\x11\x79\x4d\x2b\x87\xc7\x99\xd4\xcb\x65\xd0\x1d\x44\x87\x5a\xb7\x9d\x56\xa0\x5c\x50\x34\xb6\xef\x3a\x6d\x1c\x13\x8e\x1d\x40\xb5\xac\x02\x0a\x3f\x72\x25\xae\x22\xed\x3a\xdd\x0c\x65\x64\x22\xd5\x8e\xac\x7d\xc6\xa4\xb0\xc4\xd3\xe9\xd5\xa0\x62\x3b\xa3\xaf\x45\x43\x54\x73\xf1\xd0\x99\xe3\xf6\x2a\x31\x5a\xed\x6f\xc0\xe3\xb1\xd9\x4b\x0f\x3e\x30\x59\x3d\x3c\xc6\xcc\x30\xd7\x60\xac\xd0\x0a\x45\xf9\x59\xc7\xeb\xf4\xde\x8f\xb8\x5b\xd3\x2b\x27\x5a\x40\x2e\xc3\x0b\x08\x0d\x93\x62\x6e\xb8\x11\x60\x27\x8c\x20\x87\x6b\x15\xf5\xf5\x13\x60\xba\xb0\xad\x69\xd8\x7d\x81\x10\x1d\xf5\x36\x4a\x9e\xa0\x78\x5e\xd3\xab\x69\x24\x4a\x78\xdb\xa3\xd8\x5b\x60\x0b\x6d\x36\xf5\x4e\xc5\xce\x1d\xd3\xd7\x60\x8c\x68\x02\x53\x31\x7c\x26\x6a\xc3\x08\xc2\x4b\xc6\xa0\x39\x8b\x2b\xcc\x2e\x02\x67\x64\xe1\x54\x6b\xe5\xb8\x50\x8f\x29\x9e\x5e\xc6\x25\xee\xe3\x9d\x82\xe7\x83\x21\x50\x62\xc7\xd8\xcd\x0a\x0c\x6c\xa9\xe2\x1b\x21\xa5\x3f\x00\xa4\x0d\x97\x56\xc7\xab\x62\x13\x68\x7a\xd0\xd3\xf3\x12\xcc\xb5\xa8\xbd\xf2\xb0\x56\xd7\x22\xc9\xec\x70\xa9\xd2\x7a\x4f\x80\xe7\x78\xef\xf4\xbd\x58\xec\xed\x95\x5c\x0a\xff\xea\xc1\xba\x69\xdd\xf5\x3b\x72\x68\x2b\x94\x68\xfb\x96\xf1\x56\xf7\x0a\xe5\xd2\xcb\x8b\xbf\x23\x1c\x61\xe8\x62\x6e\xc2\x6e\xa1\xd5\x66\xfd\xd5\xe0\xe9\xf5\xd1\x15\xa4\x68\xc5\x83\x70\xe7\x5f\x76\xc4\x9d\x20\x3f\x0c\xf3\x2d\xe0\x77\x60\x0e\x5f\xba\x5d\x34\xd2\x28\xc7\x1c\x47\x76\x41\x20\x28\x61\x05\x67\x57\xe9\x2a\x46\x8e\x1e\xda\x57\xc6\x15\xab\x09\xe5\x46\x36\x51\x5e\x3c\xce\x1a\xb1\x58\x80\x01\xe5\xf0\xe5\x80\x31\x7a\x4a\x83\x6b\x91\xcd\xee\xd9\xb7\x27\xdf\x9e\xcc\x0e\x37\x97\x9d\xaa\x68\xa7\xdf\x43\xc3\x3b\x97\xf7\x40\x92\xf8\xbb\x13\xa1\x70\x3f\x32\x5a\x2b\xe7\xba\x21\x5a\x96\x08\x34\x7d\x30\x55\x7a\xe5\x8d\x2a\x72\x8a\x03\x10\x42\x66\x48\x12\xb2\x0a\xec\xc0\xfc\x8f\xe8\x96\xe4\xba\x1d\xab\xaf\x22\xda\xad\xd8\x21\xf1\x46\x51\x8c\xfa\x02\xed\x89\x6d\x14\xb7\x49\xb7\x2b\x5e\x78\x21\x84\x2a\x56\xf4\x6f\x56\xe4\x76\xfb\x7f\x36\x6c\x56\x88\xec\xd9\x86\x07\x1e\x97\x13\x2d\x5f\x7e\xe5\x7a\xf1\xd5\xc2\xf2\x9a\x83\x9d\xee\x2a\xac\x2f\xf0\x71\x32\x09\x9b\xcd\x9b\x47\xb0\xa2\xd3\x36\x76\x17\xd0\x05\x9d\x1d\x0e\x44\xca\x35\x28\xb0\x76\xea\xfd\x1b\xc1\xe5\xb4\x01\xc9\xd7\x43\xf6\xfb\xc3\x37\x23\x3e\x72\xdf\xce\xc1\x78\x79\x62\xa1\xd6\xaa\xb1\x8c\x2f\x1c\x98\x8d\x95\x57\xdc\x32\xeb\xb8\xf1\xd6\xd3\x1c\x16\xda\x40\x5a\x30\x2b\x0c\x8f\xb3\xd7\x26\x84\x81\xdb\x14\x79\x01\x3f\x6f\x78\xe8\xde\x7d\x3d\x66\xc4\x81\x78\x51\xfd\x9a\xcc\x03\xb4\x4c\xf7\x5e\xb1\x75\x9d\x0c\x06\xac\x5b\xc5\xab\x11\x57\xa6\xc7\x47\x71\xea\xc0\x08\xdd\xdc\x8f\xd2\xdf\xf4\x0d\xd3\x0b\x07\x68\x31\x75\x60\xbc\xed\x92\x31\xd9\x5c\x7f\x97\x95\x6d\x5f\xd7\x48\x95\x95\x01\xbb\xd2\x72\x07\x24\xde\x06\x1d\x56\x6b\x65\xa1\xee\xd1\xa3\x0c\x60\xc0\x66\x21\x46\xb4\xd1\xe4\x2e\x2a\x2b\x1a\x30\xd0\xc4\x07\x17\xbd\x0c\xd4\x21\x9a\xae\xf8\xb5\xf7\x45\x16\x5c\x78\xf3\xf7\xe1\xdb\xf0\x2f\xf6\x06\x7e\xe9\x36\x02\x98\x7b\x77\x41\x78\x8e\xed\x00\xf7\x07\xcd\x43\x36\x61\x80\x37\xe2\x37\xbd\x3a\x69\xc5\x1d\xef\x4e\xc6\xf0\x37\xbf\x3c\x69\xe9\xbb\xe8\xf6\x48\xd7\x67\xa7\xb5\x9f\xc2\x05\xda\x69\x23\xbf\xff\x2b\xb4\xb5\x8d\xe4\xd2\x19\xf4\x1b\x1e\x23\x6b\xb0\x8f\xfe\x9c\xf1\xaa\x70\xd4\x95\xeb\xad\xd3\xad\xf8\x77\x0c\x32\xf9\x2d\xe8\x1e\xf9\x9e\x98\x52\xd4\x44\x46\xd1\x82\x39\xf6\x78\x86\xd0\x68\x61\x1c\xd8\x8a\xfd\x63\x25\x24\x30\xa5\x4d\x8b\x21\x2c\xae\x06\xfe\x5e\xb0\xb0\x2d\xe3\xac\xd3\x7e\x59\x04\x39\x07\xc6\x29\xf8\xdd\x77\x14\x5d\xa0\x64\xc0\x84\x59\xdd\x42\x5a\x1e\x03\x26\x76\xe2\xa9\xba\x62\xdc\xb2\x39\x77\xf5\x8a\x7d\xd6\x73\x3b\x89\x80\x4b\x88\xb5\x13\xd7\x18\xa3\xe0\x8e\xd9\x0e\x6a\xb1\x10\x35\x5b\xe9\xde\x24\x0f\xb5\xe1\xeb\x94\xd2\xe0\x79\x19\x94\x59\xe8\x16\x08\xd5\xbb\x98\x86\xf8\x5e\x1b\x5a\x39\x60\x81\xa2\x69\x48\xcd\x96\x3b\x30\x82\xcb\x48\xc4\x72\xe7\xdc\xef\x79\x70\x6c\x0c\x0f\xe3\x07\x3d\x67\x42\x59\x07\xbc\xf1\x4b\x72\x2f\xe0\x54\xc3\x4d\xc3\x1a\xe8\xa4\x5e\xb7\xa0\xdc\x84\x09\xc5\xb4\xc1\x30\xa1\x66\x96\x5f\x7b\x06\xb2\xba\x37\xde\x19\xbe\x59\x81\x4a\x52\xa6\x5c\xb1\xd1\x60\x31\xca\xa9\x80\x4e\x18\x0d\x47\xcf\xdc\xd0\x54\x65\x64\x21\x06\xc9\xbc\x64\x65\x0b\xa3\x49\x90\x2c\xb4\x94\xfa\x26\xda\x70\x45\x44\x0d\xe3\xe6\xd7\x5c\xf6\x48\xdc\x68\xd4\x27\x4a\x9c\xb2\x19\xb2\xc8\x6c\xc2\x66\xfe\xb7\xfe\xbf\xff\xea\xb9\x71\xff\x9e\x55\x68\xfd\x99\x5e\x86\xfd\xfb\x7b\xd5\x5b\x7f\x51\x4a\xd2\x24\xb2\xf0\x10\x30\x48\x98\x9c\xb2\x69\x04\x7e\x4a\xfb\xa6\x33\xb3\x9e\xfa\xf1\xdc\x6f\x8c\x70\x5e\x2e\x72\x4b\x48\xc1\x97\xce\x80\xb5\xc4\x9d\xaf\xab\x65\x15\x40\x9c\x3a\x51\x5f\xfd\x85\x00\xbc\xf8\xd3\xc9\xc9\xc9\xc9\xac\xf2\xf0\x37\x70\x3e\x8d\xd1\x0b\x95\xf7\x99\x41\x66\x22\x07\x2d\x95\x74\xc4\x41\x90\x19\x7b\xe1\x17\x7b\xac\xe3\xe4\x6b\x58\x70\x31\x6c\x71\x72\x18\x51\xf2\x70\x4f\x1d\x9f\xff\x25\x26\x1f\x5e\x9c\x1c\x7f\xf3\x9f\xfe\x77\x27\x7b\xfb\x7f\x8e\xc6\xfe\xf3\x97\x99\x67\xdd\x80\xe5\xa9\x33\x62\xb9\x04\xf3\x17\x0f\xe6\xc5\x09\x3d\x71\x72\xfc\xcd\x9d\xef\x57\xfb\xbf\xff\x38\x49\xa4\xc6\x8e\x8e\x45\xe4\x9c\xf8\x5a\x92\xdc\x37\x2b\x2d\x37\x83\x71\x8b\x22\x87\xa5\x7b\x97\x42\x72\x1e\xbb\x06\x6a\xc9\x0d\x34\x78\xcd\xd7\xac\xed\xad\xf3\x32\x1d\x52\x3a\x6b\x73\x09\x61\x5b\xa8\x57\x5c\x09\xdb\x7a\x4a\xdc\x68\x73\xc5\x6a\x6d\x0c\xd4\x4e\x0e\x76\x94\x2f\xd2\x0e\x7b\xda\x3f\x43\x12\x71\x66\xa1\xe3\x26\x04\x5c\x29\xc6\xec\x52\x70\x76\x33\xd8\x5d\x5c\xf7\x24\xd3\xa3\x76\x4a\x72\x24\x10\x26\x23\x9b\x38\x3c\x6d\xcc\xbb\xc5\xc4\x56\xde\xad\xfa\x92\xb2\x12\xf3\x75\x71\x59\xab\xb3\x98\x34\x8b\x12\x36\xad\x69\x3c\x84\x2c\x85\xfd\x8a\xc0\xbd\xc3\x4b\x4f\x42\x11\xa6\x0f\xb7\x20\x20\x15\x20\x86\x9b\x9e\x9f\x22\x99\x8b\x57\x65\x1a\xff\x56\x2e\x96\xd7\x3a\x10\x6e\x7f\xdf\xeb\x56\xb0\xa0\x1c\x13\xaa\x88\xb6\xce\xb4\x59\x56\x1c\xa3\xdb\x15\x06\x71\xab\xab\xd3\x18\xcc\xc5\xbb\x1f\x62\xda\xeb\xc3\xea\x92\xd2\x06\xd0\x6c\x8a\xbf\xba\x37\x06\x94\x93\xeb\xd3\x88\x6b\x94\x1a\x01\x2f\xaf\xc4\x92\xd4\xdb\x2f\x8e\x7f\xc1\xa5\x9c\xf3\xfa\xea\xde\xab\xf5\x77\x0b\x83\xe0\x30\x9d\xb5\x68\x3b\x09\x5e\x25\x90\x88\x0f\x7c\x40\xab\x33\x50\x4d\xa7\x85\x72\xec\x20\x2e\x7d\x98\x8e\x3d\x29\x18\x67\xd6\x98\x5a\xd3\x77\x69\x2b\x6e\x47\xe4\xf1\x90\x8b\x15\xd1\xa0\x5e\x4f\x3b\x2d\x45\xbd\x4b\xec\x6d\xff\x32\x9c\xbc\x65\x2b\x7d\x83\xa6\x90\x01\xee\x32\x30\x17\xf4\x53\xcc\x41\x70\xe6\x97\xfd\x89\x4b\xd1\x30\xaf\x70\xca\x2b\x7a\x3a\x65\x7b\x58\x07\xb1\x77\xca\x38\xd5\x43\x04\x3c\xd1\xc8\x32\xbd\x2a\xe0\xca\xf5\x7f\x9d\xb2\xbd\xef\xb5\x99\x8b\x66\x2f\xf9\xfe\x87\xa7\x9e\xe3\xe6\xa2\x89\x60\x0b\x44\x4c\xaf\xbc\xa5\x71\x25\xba\xce\x93\x4b\xc1\x17\xfc\x1d\x13\x0b\xcf\x55\xde\x32\xb2\xf8\xf3\x8a\x5b\xb5\xbf\xef\xd8\x42\x28\x61\x57\xd0\xb0\x35\x38\xbf\xd6\x07\xe8\x24\xaf\x61\x2f\x32\x48\xcd\x55\x0d\xd2\x66\xce\x49\x05\x0f\x9f\xbd\xa6\xc3\x8c\x0a\xbe\x61\x99\x70\xd1\x22\x51\x70\xc3\xb4\x82\xfd\x87\x06\x8e\xcf\x7a\xa7\x5b\xee\x44\x8d\xf7\x95\xec\x88\x31\x83\x24\x8a\x4b\xbc\xfb\x5c\xca\x20\x07\x3d\x79\x41\xb8\x55\x8a\xd0\xa1\x65\x80\x36\xb9\x37\x0e\x0a\x4b\xc9\x1b\xc1\x7d\x0b\x86\x1d\x68\x25\xd7\x77\xde\x02\xbc\x37\x36\x5e\xa8\xc8\x98\xda\x78\x70\xdc\x5a\x6f\x6f\x67\x68\x80\x3a\xb1\x11\x5e\x7c\xce\x50\x8c\x6c\x3d\x74\x58\x61\x80\x2a\x86\x6c\x51\xf4\x45\xee\x90\x72\x1b\x45\xbb\x21\xbf\xe9\x01\x44\x31\xdb\xc2\x41\xb1\x7b\x9b\xd1\x46\x53\x9c\x15\x15\x01\x11\xb3\xe7\xed\x6c\xf4\x95\xd9\xc9\xf1\x73\x76\x44\xff\x9f\x4d\x6e\xd0\x14\x9e\xfd\xe1\x8f\x2d\xe9\xea\x3f\x9e\xd8\x59\x48\x91\x0d\xc3\x89\x81\xbc\xd3\x06\x78\x23\x85\x82\x69\xb0\x19\x86\x6e\xcb\x9f\xfe\xf3\xf6\x49\xbf\xc7\xff\x72\xc9\xe2\xab\xac\x30\x41\xbc\x38\x4d\x47\xe7\x37\xee\x59\x4d\x2c\xfc\x7e\x5b\x81\x0e\x5a\xaa\x74\xf0\x07\x16\xf6\xea\xdf\xe2\x6a\xed\x5d\x14\xeb\xf5\x24\x7b\x2b\x70\x7b\xde\xce\x2e\xef\x27\xa6\x6e\xd0\x11\xea\x95\xa3\xed\x93\x23\xe4\x59\xd6\x66\x8f\xa6\x81\x0e\x54\x03\xaa\xa6\x4c\xea\x23\xe5\xa9\x5e\x15\xab\xdc\x99\x4b\xe7\x83\xbb\xc1\x9b\x26\xe6\xff\x02\x71\x0b\x30\xa9\xf2\x63\xf3\xea\xc4\xe2\x02\x0f\xd4\xb0\x1b\x8e\xaa\x17\x65\xce\x46\xea\x89\x7d\xfa\xb9\xa4\x83\xd4\xeb\xc7\xcc\xd5\xc5\x15\xc6\xfd\x3b\xf8\xd2\x49\x51\x0b\x2f\x7a\xa8\x9a\x02\x77\x70\x25\x14\xaa\x85\x95\x58\xae\x90\x02\x12\xae\x41\x26\xf7\x82\xb6\x8a\x47\x3d\x2e\x46\x9e\x40\xae\xcd\x6f\x71\x07\xed\x14\x8a\xea\x6e\xa5\x54\x03\x16\x05\x4d\x76\xcb\x88\x78\x73\x70\x37\x00\x8a\xcd\xf2\x1f\x66\x93\xd2\x2c\x98\x7e\xd6\x73\x12\x00\x57\x74\x92\xd3\x10\xf2\x9f\x91\xe0\xad\xbd\x12\x8c\x57\x34\xfb\x75\xfe\x1e\x46\x1d\x91\x8d\xa2\x01\xe9\x87\xac\xe5\x57\x7e\xd4\x0b\x16\xb7\x9d\xae\x97\x01\xdb\x69\x65\xb1\x80\xca\xa3\xbb\x04\x05\x26\xef\xa5\x30\x21\x06\x18\xb2\x82\xab\x5a\x7e\xe5\xd5\xc2\x1d\xa9\xe1\x98\x0a\xaf\x65\x6f\xdd\x56\x72\xb7\xbc\x61\xa0\xae\x85\xd1\xea\x71\xe9\x50\x2c\x92\x09\xd1\xc7\x38\x48\x10\x36\x4e\x33\xa1\x3e\x7b\xce\x49\xde\xfc\x10\x39\xc6\xae\xb9\x11\x9e\xbd\x6d\xdc\x5f\xb9\xf7\x14\xf2\xcc\xc1\x8e\xd9\xbb\xb3\xb7\xaf\x2f\x2f\xce\x5e\xbe\xf6\x0a\xf6\xe2\xfd\xab\x7f\xfa\x5f\x90\x8e\xd5\x5e\x57\x3f\x85\xfa\x9e\xb4\xaf\x69\x0b\x8e\xdf\x8b\x0f\xe5\x74\x6c\xa0\x65\x30\x78\x0b\x42\x90\x81\x91\x69\x51\x9e\x4d\xa2\xef\x56\x96\xd1\xb3\xc3\xec\x30\x73\x8d\x31\xda\x4c\x57\x5c\x35\xf2\x31\x85\xf3\x60\x99\x60\xd2\x84\x95\x02\x1f\x45\xb2\x07\xce\x79\xed\x5f\x60\x7f\x4b\x78\x31\x16\x44\xb2\x50\x21\x88\x38\x08\xac\x91\x12\x7b\x02\x3c\x60\x60\xb1\xa3\x37\x8f\x24\x63\x91\x64\x06\x16\x94\x1e\x4d\xc5\x54\xda\xbb\xb1\xbd\x37\xe0\x14\xe3\x1d\x56\xa1\x52\x9d\x5f\xae\xdc\x8a\x8b\x2e\xeb\x47\x0a\xaa\x7a\x3c\xff\xfa\x92\x7d\xc4\x13\x5c\x72\x33\xe7\x4b\x98\xd6\x5a\x7a\xb5\x61\xc9\xa6\x4e\x12\x3d\xd5\x3c\x2b\xcd\xa4\x56\x4b\x30\x4c\x41\x0d\xd6\xf2\x50\xba\xd0\x77\x7a\x18\x2e\xed\xbb\x86\x87\x00\xe4\xef\xfc\x54\x1b\x61\x6b\x7d\x0d\x66\x3d\xad\xbd\x67\x5d\x20\x54\x1d\x77\x57\xcb\x63\x82\x9e\x9e\x7a\xe9\x1f\xfa\xb8\xee\x60\x1b\xd5\x57\xf1\x19\x56\x4b\xe1\x6f\x32\x02\x0c\x01\x0d\xbf\x81\x09\x23\xe7\xc4\x3b\x08\x54\x64\xe6\x25\x62\x23\xec\x15\x69\x59\x2a\xe6\x98\x6d\xdd\xfb\xf0\xfb\x7c\xf3\x85\x5a\x1a\xca\x1c\x3d\x88\x33\xb6\xce\xff\x9c\xe0\xdc\x6a\x76\xe9\xe0\xca\xc7\x4c\x7f\x2e\x5f\x42\x47\xef\x59\x8c\x4c\x0c\x4c\x4c\xba\xe2\xba\x77\x56\x34\xc0\x6e\xb4\x91\x4d\x74\x0b\x0b\xbd\x1a\x96\x0e\xd9\xfa\xc0\x0d\x6c\xbe\x0e\x64\xa5\x9d\x7b\x2b\x03\xcb\xb7\x79\x2c\x38\x41\xf9\xd3\x14\x05\x89\xe5\xd2\x07\x6e\x65\x74\xbf\xa4\xd4\xd6\x2c\xda\x2a\x84\xa5\xdf\xe1\xe1\x13\x60\xc7\x95\xb6\x6e\x97\x88\xc4\xd1\xd1\x87\xe0\x40\x1e\x1d\x55\xc3\x1a\x0d\xbf\x7b\x0f\x66\xb3\x7c\x25\x70\x4d\xf5\x60\xaf\xfc\xe3\x98\xf3\x81\xf9\x11\x62\x9f\x74\x4c\x9b\x07\xd2\x5b\x4c\x98\xfc\xed\xe3\xc7\x8b\x58\xa2\x12\x23\x3d\xd1\xbb\xcd\xb6\xa0\xb0\x4e\xe8\x47\x14\x76\xe7\x1e\x7e\x60\x75\x9e\x4c\xe6\xd1\x3a\xc0\x58\x23\x1a\x78\xec\x3c\x60\xc6\xd2\x45\x68\xc1\xae\xb2\x85\xe3\x19\xbd\xe6\xa6\xd0\xf6\x68\xdb\xf4\x6e\x8e\x42\xfe\xfc\x82\x19\xae\x96\x4f\x42\x1a\x22\x61\x76\xe0\xbf\x97\x91\x6c\xfe\x7c\x0f\x30\xd4\x3b\x4d\xa1\xde\xc3\x14\xeb\x7d\x79\xfe\xea\x03\xb3\xfd\x5c\x41\x2a\x68\x4e\x35\xec\x01\x8b\x39\xb1\x8c\xa9\xa1\x2b\xb2\x32\x74\x58\x9d\xd1\x5f\xd6\xec\x60\xf6\xfc\xa4\xc2\xff\x1f\x7f\x3b\x79\xfe\xe7\x6f\xaa\xe7\x7f\xc2\x1f\x9e\x7f\x33\x79\xfe\x5f\xfc\x4f\xdf\xd2\x8f\x7f\x8a\x92\x33\xd7\xf9\x0c\xa2\x15\x74\x3c\xf7\xd2\xf8\x7b\x1d\x74\x1e\x50\xe8\x0e\x1d\x84\xd0\x42\x31\x0b\x47\x5d\x21\xb3\x56\x42\x1f\x13\xd0\x59\xc5\xbe\x4b\x8b\x16\x21\x5b\xea\x01\xa0\xd4\x89\x3f\x30\x32\xe1\xbc\x67\x5e\x38\x63\x9e\x59\x94\x76\xd4\x57\xa0\x22\x43\xe7\x12\xbb\x88\xff\x67\x2d\xf5\x95\xe0\x8f\x78\x45\x7e\xa0\x15\xe2\x25\x09\x51\x69\x3b\xac\xce\x27\xd2\xc4\x47\x7f\xe0\xd7\x9c\xf1\x25\x28\x47\xc9\xc6\x4b\x00\xb6\x72\xae\xb3\xa7\xc7\xc7\x01\xe1\x4a\x9b\xe5\xb1\x01\x2c\xb5\xab\xe1\x78\xe5\x5a\x79\x8c\x6f\xd8\xca\xff\xfb\xf7\x7f\x29\x6a\x3e\xad\xc1\xec\x22\x96\x3d\x11\x2f\x5e\xbf\x65\xa0\x6a\xed\x95\xd4\xcb\x33\xe6\xdf\x14\x8b\x68\xe1\xf9\x43\x62\x1d\x77\xab\x49\xc2\xf7\x1a\x8c\x58\x44\x9b\x21\x06\x5d\xd3\x4b\x60\x27\xc1\x42\xf4\x3b\x41\xb7\x7b\xd6\x19\xed\x74\xad\x25\x06\x18\xb1\x80\xce\x06\x8f\xa2\xb7\x30\xb5\x56\x4e\x09\xd8\x94\xf7\x6e\x05\xca\x85\xc5\xe3\xf5\xf0\x2f\x21\x1f\x66\x0b\xe3\xf8\x9a\x9b\x63\xd3\xab\x63\x0b\xb5\x01\x67\x8f\x73\xa9\xa7\x67\xf2\x20\xf6\x78\x8d\x21\xb3\xf8\xe3\xb4\xe6\x55\x6d\xdc\xac\x08\xbf\x25\xee\x1a\x5c\xbc\x80\x4d\x67\x84\xaa\x45\xc7\x65\x41\xc8\xbb\xda\x12\x3e\x62\xe1\x42\x78\xe7\xc0\x1e\x86\xba\x15\x4c\x69\xcd\x63\xe7\x8c\xb7\xa0\x93\xbd\x95\xa9\x86\x01\xb3\x24\xcb\x18\xe3\x58\xb0\x11\x05\x7a\x64\xde\xa8\x8d\x7e\x0b\x12\xd3\xf3\x17\x71\x3f\x2f\x6a\xf5\xc2\xae\xad\x83\xf6\xb4\xe5\x16\x9b\x12\xbd\xb0\xc3\xdc\xb3\x7a\xb1\xe2\x37\x4e\xe8\xa9\x56\x52\x28\xa8\xe8\xa7\xca\x5e\xd7\x11\x3e\x62\x52\xab\x17\x0b\x8f\x8d\x57\xa5\x5a\x42\xe5\x7f\xc0\x87\xee\x38\x8a\x6c\xed\xee\x7a\xbb\xde\x08\xeb\x80\xca\xd8\x31\xeb\x58\x73\xeb\x62\xdd\xb5\xbd\xb3\x1a\x11\xbe\x38\x50\x0d\x34\x91\x54\xf5\x0a\x76\x48\x1f\xbd\xe5\xaa\xc1\x03\xc4\xc8\xc9\xd6\xb9\x06\x47\xdc\xe6\x53\x5f\x48\xbe\x8c\xa1\x88\xb8\x64\x20\xd3\x15\xac\x59\x6f\xf9\xd2\x5b\xb0\xa8\x98\x7f\x8b\x83\x26\x11\x7f\xfb\x11\xec\x68\xe1\x79\xee\xff\x9b\xb7\xe2\x78\xd3\x98\xc0\xbb\xb9\x70\x2b\x72\x30\xca\xd1\xd4\x05\x27\x94\x97\x28\x98\x21\x9e\xed\xfd\xaf\xa3\xbd\x59\x4e\x56\xcc\xf6\x82\x0e\xdd\xc3\x9d\xe2\xe5\x99\x44\xdb\x1e\x8c\xc5\x97\x29\x88\x88\x2e\x8c\x02\x87\xd9\x55\xd4\xcd\x0b\x5e\xe7\xde\xc7\x18\x21\xdc\x3b\xda\xdb\xa8\xc4\xe6\xd6\xde\x68\xb3\x4b\xc8\x12\xaf\x76\x78\x9c\x04\x21\x06\xef\x07\x24\x9e\xb0\xcd\xc3\x42\xb3\xbe\xb7\x60\xd2\xbe\x3a\x6a\xd6\x44\xfd\xfa\xe0\x5a\xf4\x11\x41\x40\x35\xcb\x45\xfd\xf4\x9f\xff\xfc\xed\x6c\xb3\xb9\x0a\xf9\x65\xd7\x4d\x86\xc7\x43\x77\x4d\xf6\x00\xb1\xec\x19\x0f\x26\xf0\xdc\xb0\x22\xda\x22\x07\x85\x6d\x66\x3e\x2a\x10\xf1\x74\xd8\x11\x09\x0c\xf6\x67\x37\x74\x84\xd6\x43\xb8\xb7\xb3\xfd\xbd\xb7\xf7\x1f\x2b\xc0\xfd\x6d\xdf\x5c\x5b\xf4\x6a\xde\x82\xc5\x16\x8b\xdd\x77\x95\xe8\xfc\x1f\xde\xe6\xc6\x9b\x46\x84\xf4\x53\xe4\x80\x00\xca\x9b\xf3\x0d\x76\x7a\x36\x42\x3d\xd0\x90\xf9\x0f\xfc\xf7\xf4\xf3\x75\x3b\x25\x63\xe9\xd3\x0f\x3f\xbd\x8d\x02\x1b\xef\xe9\xb0\x33\x28\x2c\x99\xc3\xc0\x9f\xaf\xdb\xc7\x0b\xe3\xfd\xf0\xd3\xdb\x8d\xb0\xaf\xdb\x74\x1a\xf1\x11\x6f\xa4\x9b\x5e\x6d\x35\x1f\x3f\x01\xe7\xa5\x81\x79\xbf\xbc\x3f\xc7\x9c\xcc\x5a\x03\xad\x76\x40\xaf\x2d\x43\xd5\x5e\x88\x75\x85\x5f\x7a\x4e\x26\xac\xb9\x73\xbc\x5e\x41\xaa\xfc\x63\x91\x62\x13\x06\xd5\xb2\x9a\x84\x72\x30\x6c\xac\x58\x68\x73\xc3\x4d\x43\xf7\x71\x80\xdc\xd4\xf6\xb6\x03\x75\x3f\xad\x2e\xe9\x39\x3a\x05\xc7\xcd\x12\x1c\x1e\x8f\x68\x5b\x68\x04\x77\x20\xd7\xb1\x90\xd8\xa5\xbe\x04\xc9\xad\xf5\xa7\x2b\x35\x27\x1d\x98\x85\x96\xf0\xfa\xd7\x7b\x69\x3b\xac\xed\x6d\x14\x67\x43\x05\x33\xbe\x12\xce\xcc\x6b\x0b\x2c\xb5\x8b\xcc\x22\x36\x9b\x13\xa4\x5e\xda\xf1\x5b\x7c\xb8\x45\x8a\xa0\xd7\x76\x91\x61\x86\x2b\x8b\x92\x39\xea\x42\xee\xa2\x2e\xd4\x78\xa9\x83\x81\x82\xed\xed\x70\x23\xd7\x4c\xf2\x5e\xe1\x71\x79\x34\x37\x11\x3a\x3a\xfd\xe3\xc9\xc9\x1f\x07\x28\x7d\xad\x24\xf1\xe0\xf3\xbb\xd9\xe0\xe5\xd6\x7a\x2b\x7f\x97\xec\x5d\x21\x8b\x7e\x7a\x9b\x5f\x65\x07\xbd\x05\x36\x7b\x23\x54\xff\x65\x56\xfc\x3a\x78\xd9\xda\xe4\x70\xe0\x15\x6f\x41\x82\x7b\xc4\x24\x75\x5c\x21\x4b\x90\xfb\x92\x00\x3f\xc6\x37\x84\x8a\x11\xa6\x27\x1b\xf8\xff\x8a\xd2\x95\x40\x05\x0a\xa3\x07\x85\xd1\x64\xa2\xf8\x3b\xe5\x56\x20\x4c\x0a\x75\x0e\x54\x43\x8c\x00\xe7\xb0\x68\x0a\x68\x0c\x1a\x2f\x76\x32\x24\x5f\xde\x52\x87\x17\x90\xa1\xd9\x03\x78\x91\x34\x6f\x72\x8e\x26\xd6\x13\x15\x47\x96\x19\x6e\x98\x0e\xde\x25\x22\x91\x38\x6d\x8b\xb7\x36\xe2\x1d\x77\x44\xe8\xa2\x8e\x46\x63\x30\x64\x98\x47\x59\x8b\xdb\x04\x35\x46\xec\xc6\x2b\x95\x8b\x80\x74\x4e\x13\x53\x20\xe3\x43\xc8\x60\x97\x45\xe2\x25\xe0\xdc\xd3\xdb\x34\x16\x59\x64\x6a\x6b\x2e\xfd\x2b\x07\xfe\x78\xc3\x0f\x53\xa7\xa7\xff\x06\xa3\xa9\x6e\x68\x01\xdc\xf5\x06\xec\x84\xcd\x7b\x17\x86\x46\xc4\xdf\x61\x82\x05\xab\x91\x5a\xe0\x7e\xe9\x45\x2f\xb3\xdd\x1b\x0a\x9c\xbc\x4c\xa0\x80\x6a\xb2\x59\x11\x70\x0e\xa7\x3e\x89\xdb\x14\x89\x83\x62\xed\x61\xe1\x46\x57\xb0\x4c\x01\x2a\x68\xbf\xb8\x60\xa8\x77\x72\x1a\xa3\x6a\xb3\x55\xc7\xab\xe2\xe1\x2a\x30\x70\xd5\xc0\x75\xe9\x23\x5d\xdd\xf1\x58\xb9\xd8\x61\xf5\xc1\x5f\xea\x18\x4e\x88\xe8\x34\xba\xee\x53\x89\x63\x11\x15\x69\x35\x36\xf5\xf8\xfb\x91\x4c\xa9\x31\x6a\xb4\xe0\x4c\xec\x55\xf8\xa5\xe4\x20\x58\xb7\xd1\xa3\xa8\x82\x4c\x41\x53\xaa\x19\x32\x6c\x56\x77\xfd\x2c\xfc\xf8\xc0\x3d\xa7\xdd\xa6\x9a\x8f\x7b\xf7\x4c\xb6\xcd\x7d\xbe\xda\x25\x04\x83\x04\xc5\x02\x96\xb5\xa6\x0d\x84\xc2\x1f\x6d\xb0\xd3\xba\x03\x53\x7b\x74\x96\xe8\xb0\x7a\x1b\x8a\xe6\x6b\x14\x46\xdb\x36\x99\x0e\x73\x8d\xef\x85\x6e\x76\xdc\x68\x80\x78\xd7\xe1\xb6\x42\xa1\x50\x80\x5d\x7c\xd1\xd8\x96\xae\x52\xd7\xd6\x45\x9a\x37\x95\x5d\xa7\x58\x58\xe3\x8d\x54\xb5\xc6\x9e\x96\x02\x99\x91\xc1\x0d\xfb\x96\x1d\x1d\x79\x09\x74\x74\x54\xe8\x91\x49\x14\x32\x08\x7f\x6b\xfa\x91\x45\xf1\x95\xe2\x28\x8d\xbe\xc1\xc4\x9e\x07\x43\x22\x49\x69\x57\x78\x71\x59\x46\x37\x45\x6f\x3a\x6a\xf7\x31\x5a\x26\xa8\x63\xac\x73\x2b\x2d\xf9\x97\xdd\x68\x79\xa6\x58\xdf\x75\x60\x18\x65\x5f\x92\x5d\x38\x42\xd6\x60\xdb\x9b\x24\xea\x99\x57\x92\x52\x82\x2c\x6e\xef\x26\x4d\x23\x43\xac\xb8\x65\x5e\xf6\x79\xda\xd4\xbc\x0b\xc9\x02\x84\x4b\x8c\x67\x73\x05\x9e\x75\x5c\x4a\x7a\x1d\x09\x12\x8f\x6b\x97\xbb\x74\xd7\x2d\x7a\xa0\x55\x72\x7b\x41\xed\xa6\xba\x8c\x85\xb5\x31\x1e\xad\x15\x59\xa9\x96\xad\xb4\x6c\x4e\x8f\x06\xf3\x3d\xd0\xa1\x4c\xb5\x53\x01\x52\xd0\xff\x47\xa8\x26\x72\x79\x2e\xbb\xb3\x3e\x17\x15\x1b\x89\x9e\x54\x53\xbb\x63\xa5\x6d\x74\xb4\xb7\xeb\x6d\x37\xcd\x96\x5f\xc7\x5c\x09\x66\xca\x90\xbe\x21\xba\x6a\xa3\xa3\x42\x33\x45\xe2\x2b\xa9\xa0\x02\x71\xc5\x02\x5e\x32\x13\xb1\x9f\x21\x59\x5e\x66\xdb\xf2\xa0\xfe\xa3\x45\x2f\x65\x02\x36\x8c\x25\x84\xfd\x13\x3c\x2c\xe9\xa2\x3e\x8b\xb3\xb7\xaf\xdf\xfc\xf3\xc7\x77\x67\x1f\xcf\x7f\x7a\xfd\xcf\x97\xef\xdf\x7d\x7f\xfe\xd7\xbf\x7f\x38\xfb\x78\xfe\xfe\x9d\x7f\xe4\x87\xcb\xf7\xef\x18\x31\x57\x55\x0c\xdb\x29\xaf\x69\xea\x1f\xa0\xb2\x36\xe7\xf9\xa2\x0f\x65\x01\x88\xcf\x10\x8f\xad\x98\x02\x9d\x3c\x41\x47\x92\x11\x9e\x65\xca\x7f\x90\xee\x1f\xe3\xa1\xd4\x8e\xf1\x14\x9c\x85\x6d\x43\xfe\x1e\x5d\x3e\x44\x28\x3a\x0e\xc5\x39\xb7\x9d\x04\xb7\x75\xe0\xc3\xd3\x2b\x11\x58\x71\xa5\x40\x4e\x4b\x5e\xbb\xdf\xa5\x7d\x13\xbc\x82\xf0\x76\x08\x11\x71\x1b\x6b\xb7\xf4\x62\xe8\xbc\xd1\xb1\x7a\xe4\x83\xf7\x1f\x6f\x34\x36\x7a\x44\x30\xc1\xb9\xd0\x86\x78\x85\xd8\xeb\xef\x1f\xce\xed\x28\xc2\x42\x5d\xfd\x62\x74\x1b\xb0\x4e\xa8\xd4\x64\xf2\x58\x38\x47\xe3\xfb\x37\xa1\xf2\xe8\xba\x5f\x41\xac\xf8\xf2\xaf\x42\xad\x14\x32\xdf\x89\x5c\xd7\xf0\xd5\xb4\xc2\x77\xf1\x79\x9b\xeb\xd7\xb7\xea\x6d\xe7\xc0\x6c\x3f\xf7\xaf\xcf\xf1\x22\x79\xc4\xb3\xf2\xa2\x06\xc7\x80\x78\x01\x6f\x1b\x6b\x76\x10\xe6\x60\xf1\xdc\x18\x36\x37\xfa\x0a\x4c\x1e\x17\x13\x8d\x03\xaf\xb3\xf6\x82\xf0\xda\x3b\x1c\xd9\xef\xd7\x9c\xd1\x4e\xbb\xed\x8c\x6e\xfa\x1a\xee\x38\x9d\xaf\xdc\xe4\x60\x17\x0b\x21\x1d\x98\x70\x6c\xd3\xc8\xb3\xf7\x8a\xd8\x58\xfc\x4a\xaf\x87\xf1\x76\x88\xd0\x46\x67\xc2\x0a\x78\x03\x86\xed\xd5\x30\x0d\xaa\x79\x25\xac\xd3\x66\xbd\x17\xe7\xdc\x5d\x0a\x55\x07\xc1\x1b\x1e\xf6\x56\xd7\x1c\xbc\xff\x0f\xad\xbe\x26\x4d\xa7\xe0\x06\x4c\x39\x03\x2e\xc8\xce\x49\x81\x42\x32\x10\x6e\x99\xc7\x9a\x5a\x5a\x84\xba\x9a\xce\x85\x6a\x52\x6c\xe1\xce\xc1\xa7\x18\xa4\x08\x8f\x8f\x95\xc2\x71\x04\x88\xd3\x93\xb2\x48\xbf\x14\xea\xea\xbb\x62\x09\x96\x2c\x83\xea\x23\xea\x98\x42\x25\x24\x9d\x38\x00\x8c\x4e\x93\x25\xe8\x4b\x09\xb8\x48\x55\x56\xd2\x45\xa7\x6e\x44\xb9\xde\x0b\xe8\x00\xbe\xd4\xd0\x8d\xbf\x91\xd3\x9e\xfa\x46\x11\x11\xf3\xbe\x68\x0f\x87\x0f\x36\x52\xc3\x50\xc4\x64\x4b\xe5\x2c\x35\x86\x6b\xa2\x1e\x2e\x34\x7f\x2e\x8a\x09\x13\x14\x1f\xb1\x28\xe6\x4d\x98\xd1\x78\x47\xf2\xe4\x7c\x3b\xac\x59\x20\xc6\x52\xe0\xea\x20\x56\x8c\xd5\x5a\x62\xb3\x52\x13\xf4\xf7\x21\x19\x48\x71\x1c\xe4\x9c\xd7\x57\xe0\xcd\x43\x9b\x6b\x86\xe7\x6b\xf6\x3f\x7a\x6e\xae\x7a\x4b\x3d\x1a\x37\x18\x3c\xda\xb4\x02\x93\x0f\x41\xd3\x03\x62\x02\xeb\x5f\xf4\x66\x25\xf4\xf1\xb2\x17\x0d\xd8\xe3\xb0\xd4\x93\x30\xa8\xa4\x36\xf7\xa3\xe1\x9f\x8a\x0d\xa1\x52\x2f\x99\xee\x5d\x87\x43\x52\x92\x34\x43\x4a\xef\x60\x91\xbd\xd1\x4b\xcb\x5a\xb0\x58\x38\x90\xde\x4a\x0c\x07\xd7\xb0\x4b\xf6\xf7\xac\xf9\xdc\x5b\x17\xd1\xc1\x63\xa5\x40\x45\xcc\x46\x60\x70\xf3\xfc\xdd\xf7\xef\xcb\x98\xee\x67\xbb\x43\x92\xf5\x3d\x6e\x2d\x82\xb6\xd1\x16\xdc\x00\x33\xed\x0c\x38\xb7\xc6\xb2\x9b\xfb\xab\xde\xc2\x1d\xdc\xa3\x97\x28\x63\x24\xd4\x72\x2f\x76\xea\xa2\xb1\xe9\x57\x7b\x96\x1d\x72\xeb\x36\xfa\x0e\x7e\xe5\x91\x1f\x6f\x71\x85\x3b\x02\xc2\x63\x02\xb7\x74\xc8\x70\x9b\x9e\xea\xc6\x1f\x65\x11\xec\x1d\x36\x2b\x35\x9a\x4e\x07\x15\x0c\xf6\x4d\xc5\x1a\xce\xe4\x9f\x1e\xd1\x6e\x8f\x10\x62\xf0\x66\x31\x56\xab\x15\x26\xb9\xbd\x7d\x81\x6e\xbe\xaa\x81\x8a\x9a\xf7\xcb\x16\xf2\xa1\x9b\x78\x43\x4e\x54\xd9\x1f\x45\xe0\xb3\x51\x85\x65\x4d\xb8\x0e\xe5\x17\xd9\xcc\x5b\x1b\x07\x7b\xf4\xdc\xa9\xd4\xf5\x15\x9e\x82\x03\xe9\x77\xdf\x9e\xce\xb5\xb3\x7b\x87\x55\x55\xcd\x2a\xf6\xee\xfd\xc7\xd7\xa7\x21\x30\x2e\x62\xce\x06\xc3\xd4\xa8\xed\x39\x36\x99\xb6\x82\x46\x4b\x8c\x15\x52\xa7\x7a\x6f\x2a\xf8\x4a\xcd\xf7\xcf\x42\xd0\xc2\x00\x6f\x8e\x6f\x8c\x48\x5e\x49\xcb\x3b\x1b\x7a\x81\x39\x0e\xa4\x4d\x34\x30\xe0\x2f\x38\x16\xe5\xb0\x64\x74\xe4\xc1\x7b\x39\x83\xc0\xd2\x6a\x6e\xc5\x55\xb6\xab\x06\xd1\xfe\xad\x60\xcc\x13\x98\x04\xf1\x00\x15\x68\x0b\x1d\xb8\x51\x2b\x40\xb7\x90\x30\x19\xd4\xb4\xd6\xb2\x6f\x60\xda\x78\x3e\xe0\xce\xff\x63\xd0\xb4\x7a\x6f\xb5\x86\xa2\x5d\x50\x11\x55\x74\xb3\x69\x5e\x81\xdf\x0a\x77\xa8\xa7\xb8\x5c\xff\x3b\x04\x9b\x83\xa7\x52\xeb\x06\x72\x2e\x9c\x37\xcd\xb0\x03\x35\x75\x37\xa3\x05\x42\xb8\x65\xff\xa3\xc2\xa1\x09\xc5\x35\x98\x6d\xf1\x35\x0d\x62\xc9\x61\x4d\xc5\x66\x38\xeb\x20\xfc\x05\x71\xdd\xac\x49\xcf\x15\xdb\x61\x44\x77\x89\xd2\xdd\xe6\xd1\xb6\x07\xdf\xf2\x6e\x07\x29\xbf\xff\x8e\xb7\x50\xcc\x8d\xa5\x17\x8b\x36\xc1\x82\xb5\xbc\x69\x1b\xf5\x53\x7d\x55\xb1\x57\x41\x0f\xe4\x60\xe0\xde\x7f\x2b\x78\x1b\xe7\x33\xfe\xf7\xa9\x7f\x76\xaf\x7a\x05\x9d\x01\x1c\xf6\x7d\x1a\xfb\xed\x91\xb6\x7b\x51\x92\xe1\xd3\x7b\x83\xda\xfe\xc1\x9f\x76\xd8\xcb\xe8\x56\x8e\x25\x70\x0b\x63\x6d\xb5\x63\x3b\x0b\x5b\x19\xee\xef\xee\x9d\x8d\x21\xec\x62\x7f\xcd\x3d\x75\x01\xeb\x0e\x11\x1e\x11\xec\xe5\x34\x63\xbf\x0e\xa6\xe5\xf6\x28\x6f\xf2\x96\x77\x7b\xfe\x82\xef\xbd\xf1\x5b\x23\xc7\xcd\xff\x6f\x80\x2f\xfd\x6d\x30\xe7\x8e\xcf\x41\x4e\xaf\x60\x97\x81\x11\x6f\xb0\xee\x7b\x94\x56\xa2\x01\xe5\xc4\x62\x4d\xcd\xfe\x38\x02\x48\x2b\x07\xd9\x83\x40\xe2\x8d\xa1\x44\x33\x3f\xc2\x00\x10\x6d\x96\xc7\x05\x49\x47\x30\xc5\x78\xf4\xce\xb8\x16\xd1\xeb\x87\x62\x7c\xeb\xa1\x6f\xaa\x15\x1c\xcf\xf9\x2c\x97\x5c\x80\xe2\x9d\x78\xbc\xa2\x05\xff\xc7\xb3\x8b\x73\xf6\xea\xf2\xcd\xdd\x8d\xf5\xde\xb2\xc8\xcd\xcc\x65\xc2\xf7\x59\xf2\xf3\x79\x02\xe7\x75\xe8\x66\x2b\x47\xd9\xcc\xeb\x1d\xa3\x47\x6c\xc7\x7c\x7f\x93\x67\x5a\x83\xb2\x21\x09\xc8\xa9\xd6\x00\x37\x01\x4d\x61\xdf\xcc\x41\x6a\x9a\x9a\x32\xe6\xc9\xcd\x01\x53\xa7\xe1\x2d\xac\x4a\x30\x5c\xd9\x05\x86\xb0\x95\xd2\x2e\xe6\xbd\x55\xb3\xf1\x15\x89\xf2\x5c\x75\x88\x5c\x87\x69\xc3\xe4\x19\x26\x14\x9e\x80\x8b\x41\x6e\xf0\xb4\xd8\xf1\x8e\x51\x9b\x8f\x59\xd7\x94\xe4\xa2\x5a\xcb\x48\x4a\x33\xa8\xc5\x0a\x6b\x3d\xe8\xdb\x13\xc5\x32\xe1\x14\xb6\x57\x48\xb5\x5e\xcd\xfc\x11\x9d\xe1\x8b\x57\xdf\xdd\x63\x8f\x5f\xe8\xe6\x95\xb0\xa6\xc7\x97\xbe\xeb\x9b\x25\xb8\xc4\x0b\x74\x9d\x42\x4e\xed\x7c\xf8\x81\x8b\xa7\xc0\x27\xad\x50\x53\x7e\xcd\x85\xe4\xf3\x9d\x27\x7b\xe5\xbc\x23\x8a\xce\xb1\xdd\xe3\xf5\xc5\xb6\x06\xeb\x82\xec\x1d\xae\x12\x87\x33\x72\xc5\xe0\x5a\xa0\x7b\x52\x9d\xe7\xd9\x2f\x54\x52\xcc\x15\xe3\x73\xab\x65\xef\xf2\xa2\x86\x66\xde\x84\x8c\x78\xf5\x9e\x3c\x96\x08\x54\x2f\xd8\x6c\xb0\xa5\x50\xf9\xde\xf2\x2f\xd3\x5e\x15\xbf\x0d\x0b\xa5\xf9\x57\x9b\x79\xd9\xe2\xe1\x5f\x99\x2a\x31\x14\x96\x17\x20\x52\x44\xb2\xfc\x32\x82\x14\x45\xd7\xcf\x53\x45\xff\x36\x51\xbc\xad\x29\xad\x8e\x4d\x5a\x87\x89\x8e\x44\xc1\x4d\x6a\x11\x0d\x07\x20\x62\x24\x7a\x8b\x8e\xe9\xd6\x86\xfb\xfa\x78\x7a\x63\xa3\x5c\x0f\x4b\xf8\xe6\xde\xb4\xa3\x9f\x91\xda\x45\x70\x8b\x5b\x2b\x96\x6a\x63\x0a\x26\x6e\x23\x03\xd2\x1b\x7f\xae\xd8\xb9\x62\x35\x0f\xd9\xc1\xf4\x9c\xb0\x38\xb5\x07\x0b\x6c\x93\x13\x43\x44\xc5\x62\x8e\xe8\x55\x92\x1a\xc2\xda\x5b\x3a\x94\x08\xa1\x62\x18\x16\x0d\x85\x52\x98\x3c\x0c\x8e\x2c\x69\xf1\x45\x2f\x59\x98\xcb\x0d\x5f\x9c\xa5\x2f\x36\x04\xff\x17\x0c\xec\x5b\xa6\x74\x1a\x2e\x17\x02\x6a\x8c\x87\x11\x6c\x23\x9f\x6b\x18\x60\x4f\x89\x66\xad\x06\xd4\x1d\x7e\xfe\xc2\x82\xf3\x96\x83\xc5\x79\x74\x13\x66\x43\xd0\x9a\x96\xf6\x2c\xda\xce\x01\xbd\x93\x8d\xc9\xe1\xcc\xc0\x52\x58\x67\xd6\x4f\xa1\x31\x99\x4e\x67\x5a\x96\xd2\xde\xd3\x33\xbc\x75\x9e\x07\xd0\x76\x6e\x7d\x98\x69\x9b\x22\xcc\x23\xbc\x52\xae\xbd\x94\x7a\x3e\x68\x1b\x1b\x5f\xf3\x5c\x35\xa1\xd5\x40\x2c\x86\x60\x8b\xcf\x44\x05\x5b\x87\x40\x62\xa5\x26\x39\x3c\xdc\x16\x62\x91\xfe\x9a\x3d\xe0\x24\x27\xfc\x95\x7c\x78\x80\x7b\xab\x81\xba\x01\x07\x75\x31\xb2\xb4\x9c\xff\x21\x16\x23\x57\x60\x28\x40\xe2\x26\x0e\x44\xb6\xd6\xe3\xef\x4a\x4e\xc5\x10\xd5\x61\x21\x65\x70\x40\xf3\x63\xd9\x06\x38\x17\x77\x60\x1b\xac\xf2\x20\xc7\x41\x18\x63\x4b\xf5\xb3\x73\xe2\x28\x1e\x87\x0d\xaf\x80\xcd\x2e\x74\x73\xd9\x41\xfd\x11\x5a\x8f\x31\xcc\xbc\x42\xe9\xeb\x34\xb0\x34\x57\x39\x94\xe0\x66\x95\x17\x0d\x55\xa7\x9b\xf4\x1e\x59\x1d\x02\x64\x33\xc9\x45\x16\xe5\x3b\x45\x2f\x2e\xd5\x06\x85\x37\x63\x51\x7f\xf8\x64\x95\xa8\x59\x0b\x66\x89\xfd\x9b\xf5\x8a\x5c\xb4\xad\x7c\xcd\xd6\x3c\xe2\x7c\xe7\xe9\x43\x32\x94\x85\x0b\x21\xc4\x30\xd5\x76\xe2\x5d\x79\x5c\x2b\xc9\x96\xe1\x97\x0b\x36\x3e\x71\x70\xbb\xf3\xd1\x19\xdd\x82\x5b\x41\xff\xe0\xe1\x10\x0f\x09\xcc\x5e\xa4\x55\xe2\xe8\x88\xb2\x1d\x3c\xff\x75\x5a\xeb\xb6\xe3\x0e\xc7\x2c\xc5\xe0\x4f\xfc\x34\x22\xa9\x54\xe2\x5a\xff\x96\x3f\xee\xb7\x5a\x09\xa7\xcd\x2c\x19\x8c\xb9\x23\x83\x6e\x49\x1c\x1e\x10\xf4\x68\x6d\x78\xb7\x19\x5d\x8d\xd9\x91\x32\xc4\x5a\x22\x1c\xef\x34\x65\x5c\xa8\xfe\x2f\x54\x26\x85\x71\x09\xf4\xda\x5b\x51\x1b\x7d\x41\xf4\x42\x90\x6f\xe9\xd1\x8a\xfd\xe3\xec\xc3\xbb\xf3\x77\x7f\x0d\x5f\x53\x42\xb7\xb1\x98\x68\x39\xb6\x8d\x3c\x3d\x1a\xd3\x9e\x21\x29\xb3\x14\x6e\xd5\xcf\xab\x5a\xb7\xc7\xb5\x36\xa0\xed\x71\x3e\xbd\x69\x44\xf3\xd3\x45\x79\xa2\xd8\x0b\x86\xbf\xff\x39\xaa\xaf\xb4\x06\xb6\x2d\x89\x18\x07\x9f\xa7\xb2\x33\x68\x2a\xf6\x3f\x75\x8f\x44\xc3\xe2\xcf\x4e\x37\xd3\x36\xa0\x18\x75\x6f\x68\xdf\x4c\xea\x6f\xeb\x84\xd3\xb4\x55\xe1\x56\x3a\x24\x1f\x8a\x87\xde\x97\x54\x45\xa0\x5b\x10\xc4\xf8\xb7\x30\x9f\x40\x04\xb7\x20\xd8\x2e\x21\x55\x32\x3e\x6f\xe1\x04\xbf\x5e\x94\xde\x1b\x83\x9d\x6e\x59\xf2\xe1\xae\xe2\xf8\xca\x04\x66\xbb\xab\x72\xc0\x0f\x39\x4f\x4e\x48\x15\xba\xa3\x97\x72\x4a\xed\xe1\x8f\xe9\x5f\xf6\x52\xb2\x4b\x5c\x25\xb0\x8d\xa5\xfc\xb4\x5f\x9e\xd1\xf2\x31\x04\xd1\xe9\x66\x92\xe3\x37\x1b\x13\xca\x31\x4b\xe1\x8c\x80\xeb\x4d\x31\x4c\xa6\x17\x05\x75\x54\x1a\x0f\x9c\x6c\x31\x92\x0b\xe5\x72\xc5\x88\xee\x3c\x01\xb8\xe5\xaa\x47\x55\xae\x0d\x0e\x39\x47\xb3\x77\xad\xfb\xfd\xa2\x34\x8f\x44\x53\xd9\xe0\x48\x23\x2a\xd3\xa2\x08\x36\x63\x16\x51\x88\x1b\x9c\x15\x4a\x2a\x7e\x43\x6d\x46\x36\x34\x4d\x72\x26\xfc\x0a\xab\xdd\xa3\x8d\x40\x71\x93\xdb\xd3\x75\xb6\x27\xeb\xac\xbd\x64\xc8\xdf\x44\xfa\x1a\x74\x51\x48\x7b\xad\x6f\x6d\xdf\xc6\x68\xd4\x26\x5d\x45\x28\xff\xec\x0c\xa6\xc4\xb0\x47\x79\xad\x7b\xba\x50\x69\xe3\xc3\xc9\xef\x23\xd8\xf8\x0d\x62\x90\x0e\xf7\x37\x21\xf4\xb9\x4a\x57\xdd\x5f\x68\x3a\xff\x98\x29\xf9\x9d\xcb\x16\x3a\xc3\x9d\xbf\xc5\xb4\xc1\x9a\x38\x56\x2c\x14\xf5\x07\xa6\xb9\xd0\x0d\x12\x57\xc2\xc2\x31\x34\xb8\x09\x93\xcd\x84\x49\xcc\x3a\xf0\x2b\x50\xd9\x10\x1d\x65\xb9\x7c\x3e\x03\x5f\x69\xeb\x23\x4a\x53\x8f\x1a\x98\x98\x8c\xda\xb1\x5f\x58\xa5\x49\xfa\x9b\x56\x77\x98\x1a\x85\xe4\x6c\x92\xc8\x99\xd0\x7e\xe8\x28\x52\x55\x4f\x5a\x32\x29\xe2\x30\x5d\xa1\xc4\x6c\x16\x67\x31\x32\xa3\xfd\x31\xaa\x61\x9e\x4b\xc5\xaf\xb0\xe6\x8c\xcc\x3d\x99\xd1\x5f\x58\x8f\xbd\x31\x53\x25\xb9\x2b\x89\xde\x5b\x02\x2f\x07\x29\x48\xa3\xfa\xcd\xae\x3b\x60\xb3\xe1\xc0\x8e\x46\xd7\x57\x60\x08\xfc\x67\xab\x55\x21\xc7\x43\x29\xc8\xe3\x05\x1a\x42\x95\xca\xd6\x10\x19\x57\xfc\x2d\xf6\xfe\xdd\x26\x9f\x9e\xc0\xc5\x2d\x6a\xa4\xef\x74\xfd\xb6\x77\x4d\x27\x76\x60\x00\x47\x2f\x50\x87\xc2\xa2\xc7\xd0\x46\x6f\x21\x97\xab\xa3\x8f\xb0\x83\xae\xbd\xf3\x34\x3e\x78\x20\xf7\x7d\x02\xd3\x6d\x18\xb2\xc3\x50\x47\xf0\x55\xc6\x7a\x21\x7e\xff\xc7\xb4\xeb\xb4\x8d\x5d\x06\xa8\x21\x21\x06\x79\x03\x69\xa7\xf4\x81\xe3\x5d\xab\xbd\xfd\x91\x7c\x7c\x73\xc9\x8a\xb7\xf0\x8d\x09\x93\xe2\x0a\xd8\x0c\x9a\x25\xcc\x26\x6c\xd6\x71\x6b\xc3\x34\x3b\x9a\x12\x61\x00\x54\x6d\xd6\x9d\x9b\x8d\x75\x90\x64\x8f\x7f\xbb\x87\xa4\x18\x76\x70\x4b\x27\x89\xdf\x46\x31\xa9\xe1\x01\xdb\xd8\x9c\xcc\x82\xb3\x10\x06\x2d\x3f\xb7\x60\x16\xd0\xdf\x1d\xbf\xdd\xf2\xae\x63\x78\x5d\xc1\xfa\x91\x71\x0b\xf3\xa1\xbe\x8e\x7c\x68\xe5\x68\x23\xdc\xfa\x21\xd4\x8c\x6a\xef\x2b\x4f\xbb\xa8\xfb\xfe\x3a\xec\xcb\xc2\xf1\xc1\x90\x2b\xc8\xdf\xc1\x8d\x66\x37\x16\xfe\xc6\xba\x02\xce\x36\x17\x63\xf1\x6f\x0b\x41\xf3\xe0\x13\xe4\x8a\x95\xf6\x41\xba\x01\x83\xbb\x83\x81\x61\x21\x21\x84\xf8\x62\x61\x47\x31\x6c\xb5\xfc\x02\x11\x4e\xd2\xc7\x6b\x6c\xa8\x97\x56\x38\xa4\xda\x0a\xb8\x74\x2b\x86\x13\x8a\x52\x8a\xd3\x42\xdd\xa7\x56\xc6\x5a\x2b\x05\x21\xd1\xb0\x88\xcb\x82\xc4\x1a\x4d\xcc\x0b\x44\xcf\x60\x92\x45\x85\x61\x2d\x5f\xa7\x80\x73\xec\x15\x2b\x36\x18\x60\xbf\x3c\xc3\x9c\x41\xfc\x18\x9a\x17\x3d\x68\xd8\x5d\x73\x29\x9a\x38\x49\x51\xa8\x25\x22\xb5\xd2\x26\x95\x4d\x91\xfd\x77\x10\x7e\xaa\x92\xfd\x52\xd9\xeb\xfa\x30\x16\xcf\xd0\xa0\x84\x10\x92\x13\x6a\x61\x38\xc5\xd1\xbc\xa4\x0b\x73\xaf\xa1\x19\x4e\x6a\xd9\xac\xa3\xa3\x11\x65\x8f\x23\x78\x84\x22\x3a\x4f\xbd\xe8\x2b\xa5\xe9\xee\x9f\xe7\x18\x08\xef\xf0\x81\x8e\x06\xb8\x24\x03\x32\x2e\xe0\xb5\xc7\x62\x21\xea\x58\x50\x87\xc5\xdb\x5e\xd6\xbe\x22\x55\x53\x36\x02\x7f\x80\xd8\x58\x16\x5e\xda\x49\x70\xdc\xb9\xeb\x6c\xf0\xd3\xf0\xb4\x5c\x63\xfe\x68\x61\xba\xd8\x51\xff\x5d\xac\x4f\x2f\x83\xb3\xbd\xf5\x77\x80\xcc\x00\x85\x4d\x68\x9a\x5d\x78\x56\xb5\x42\x2b\x68\x52\x7f\x3b\xc5\x65\x55\xfa\x45\x00\x86\x55\xa7\x19\xb3\xd3\xb1\xa8\xd6\xd5\xb7\x76\xba\xb1\x5d\x7b\xec\x2f\xca\x7f\x6c\x13\x81\xb1\xb3\x50\x5f\x16\x1a\x12\x72\x27\x2a\xe6\x44\xe1\x5a\xcb\x6b\x0a\xe7\x91\x33\x63\xfb\xf9\xe7\x80\x76\xbd\xe2\x6a\x09\x4f\x20\x90\xb4\x49\x8c\x1d\x63\x3a\xb1\x37\x64\xec\x78\x6e\x3b\x1a\x14\xa8\x5e\x9a\x7c\xfa\xc4\x3b\xb1\x34\xba\xef\x8e\x7f\x0e\x2d\x12\xa7\x3f\x5f\x09\xd5\x9c\x7e\x4a\xf2\xe2\xf8\x67\xf4\x3f\x37\xd0\x7c\x38\x6b\xde\x69\x89\x0e\xe7\x3b\x90\x69\xb5\x35\x65\x28\xfa\x7c\xf1\xe1\x14\xbd\xb2\x71\x88\x08\x77\xc5\x67\x4f\x68\xac\x1f\x59\x68\x9a\xe2\x6e\x79\x9c\x36\x7d\xca\xac\x2c\xe7\x39\x8c\x94\xc1\xf0\x49\x16\x97\x21\x24\x3d\x1e\x2a\x09\xb9\x24\x31\x4c\x18\xc4\xfe\x5e\xbe\xf9\x2d\xab\x94\xb7\x46\xa0\x61\x88\xf2\xc6\xc8\x86\x27\x60\x37\xff\x3a\x79\x2d\xac\x12\xc5\x84\x56\x3c\x50\x05\xd0\xc4\xf2\x95\x10\x08\x1d\x78\x55\xba\xd9\xfa\x66\xf6\x9d\x05\xeb\x89\xab\x06\x9f\x97\xe6\x96\xbd\xd3\x0d\x5c\x78\x40\x11\xf4\x1f\x62\xf7\xf8\x63\xc5\x2e\x69\x81\x71\x5f\x6b\x48\xa6\x98\x19\x2d\x4b\x86\xe2\x57\x80\x28\x9a\x19\x61\xe9\xd4\x0b\x83\xf4\xcc\xfa\x3a\x05\x22\x54\x43\x9f\xa2\xf0\x92\x3d\xd5\x48\x78\x45\x74\x76\x71\xce\x5a\xae\xf8\x12\xf2\x50\x93\x2d\x34\x6f\x09\xca\xff\x3f\xc2\x9f\x5f\x5b\x55\x6d\xeb\x15\xec\x1c\x8f\xa3\x87\x63\xc1\x29\x29\x54\xc7\xc3\xb7\x57\xe2\x31\x6d\x7e\xef\xbc\x0c\xf5\xef\x36\x27\x8a\x46\x26\xba\x55\x48\x23\x7a\xe0\xfe\x84\x85\x65\x5d\x3f\x97\xf4\x09\xaf\x62\xa0\xeb\x70\x89\x1d\xc7\x21\xe2\x8c\xad\x0c\xdf\xe6\x99\xeb\xe3\x9f\x96\x1f\xcc\xf4\x4a\xb0\xa6\x5f\xbf\x23\x7f\xbf\xa6\xb1\xc8\x72\x60\x05\x8c\x6e\x32\x94\x90\x56\x18\xe2\xca\x81\x13\xa7\x25\xa4\x82\x95\x47\xb2\xae\x52\x5f\x05\xe6\x27\x3e\xa6\x15\x2d\xc3\xcb\xba\x9d\xe1\x2e\x1f\xc9\x93\x69\x0f\xe6\xbd\x37\x22\xd1\x85\x08\x49\xc2\xc3\x18\xeb\x43\x31\x99\x3e\xe0\x85\x45\x96\x5e\x3c\x5a\xd2\x91\x2d\x77\xf5\x0a\x0d\x22\x8e\x25\xf5\xec\x12\x88\x63\xa3\x21\xb6\x15\x11\xb4\xc7\xb5\x56\x35\x74\xce\x1e\x07\xa8\x42\x2d\xa7\xb1\x7e\xea\x18\xe1\x4c\xb9\x6a\xa6\x99\x7e\xc7\xcf\x58\x39\xc3\xa6\x01\xc7\x85\x8c\xdd\xfc\xe9\xa9\xa2\xbc\x22\x7f\x54\x0c\x3b\x58\xac\x68\x85\xe4\xde\x0f\x52\x58\xb5\x1a\x85\x9c\xbf\x78\x88\xf6\x84\x89\x0a\xaa\x09\x9b\xfd\x08\xeb\x4f\x2f\x7e\xe2\xb2\x87\x9f\x4f\x5f\x2f\x16\x50\xbb\x4f\xa7\x97\xf4\x39\xb0\x9f\x67\x93\xc0\x22\xf4\x29\x3d\xfc\x52\xd8\xbf\x7a\x2f\x2b\xe6\x86\xd7\x57\x10\x4a\xe8\x79\x1a\x11\xc5\x65\x85\x5f\xbd\x85\x2f\xbc\xed\xfc\x49\xb3\x29\x9b\xa1\x6a\x31\x5a\x42\x35\xa4\x4c\x68\x3d\x78\xa7\x2f\x03\xa9\x67\xf1\xe9\x8d\x07\xc3\x48\xd4\xb2\xd8\xeb\xf4\x9d\x7e\x4d\x29\xfc\xd3\x3f\x9c\x9c\x9c\x90\x0b\x31\xa5\x6f\x3a\x78\xe6\x7f\x61\x6d\x73\x7a\x81\x13\xc0\x4a\xf8\xd4\x1a\xf3\x44\xb3\xa1\x74\x70\x0f\x48\x47\xa6\x0f\x7f\x72\x11\xbe\x37\x16\x58\x07\x26\x03\x4b\xf5\x6e\x1e\xc8\xb7\xdb\xf0\xfa\x71\x3b\x3e\x3f\xd2\x0a\xbb\x68\xf2\x20\x96\x22\x52\xa5\xcb\x17\xd3\x90\x9c\x0a\x72\x22\xd0\xa2\x24\x22\x7c\x6d\x25\xd6\x22\xe4\xba\xb8\x39\xa9\xfe\xf1\xe1\x22\xa9\x44\x24\xae\x99\xca\x22\xb2\xfe\x0f\x64\x4d\x16\x2e\x3b\x08\x1f\x30\xb4\xec\xe8\xe8\x07\x0e\x4b\x30\x47\x47\xa1\xe9\xf4\x63\xa2\x27\xfb\xff\x46\xc1\x86\x51\x30\x09\x0d\x56\x98\x9f\x8a\xcf\xc7\xd8\x5b\xd9\xa4\x3c\x76\x1e\x63\x9e\xdf\x03\xf2\x7c\xaa\x68\xc7\x89\x9a\x18\x7d\x8b\xa8\x0a\x6d\x5a\xb1\xe1\x8e\x0f\xfa\x4a\x63\x90\x66\xa4\x01\xe3\x70\x64\x9a\xc4\x8e\x18\x85\x39\xa4\x89\xdf\x02\x72\x25\x77\x27\x7b\x67\x9c\x77\x47\x3a\xaf\x4a\x7c\x2c\x8a\x6b\xb3\x73\xff\x0f\x79\x72\xfe\x95\x90\x53\x89\xa6\xc1\x5e\xad\x95\x75\x7b\x63\xb0\x3b\x6e\x78\xfb\x40\xe0\x69\x48\x02\xbe\x5c\x2c\xf3\x7c\xef\xf0\xd9\xff\x0d\x00\x00\xff\xff\xe0\xfa\x79\x44\x43\x97\x00\x00"),
+			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x7d\x7b\x73\x1c\x37\xf2\xd8\xff\xfa\x14\x28\xfe\x52\xc5\x47\xed\x0c\x29\x5f\xee\xce\x61\xa2\x5c\xd1\x92\x7c\xa6\xad\x07\x23\xf2\x7c\x95\x52\x54\xb7\xd8\x99\xde\x5d\x88\x33\xc0\x1c\x80\x21\xb5\x4e\xe5\xbb\xa7\xd0\x8d\xd7\xec\x0e\x97\x4b\xd9\x74\x99\xa9\xdc\xfd\x61\x91\x9c\x01\x1a\x8d\x7e\xbf\xc6\x6a\x2e\xac\x39\x7d\x56\x30\xc9\x5b\x38\x65\x7c\x3e\x17\x52\xd8\xd5\x33\xc6\xba\x86\xdb\xb9\xd2\xed\x29\x9b\xf3\xc6\x80\xfb\x8d\x56\x73\xd1\x80\x39\x7d\xc6\x58\xc1\x7e\xea\x67\xa0\x25\x58\x30\xf4\xa3\xe4\x56\xdc\x00\xfe\xfb\x7d\x07\xf2\x72\x29\xe6\xf6\x19\x63\x35\x98\x4a\x8b\xce\x0a\x25\x4f\xd9\x59\xd3\xa8\x5b\xc3\x2a\x25\x8d\xdb\x59\x0a\xb9\x60\xb7\x4b\x51\x2d\x99\x54\x35\x18\x66\x97\xc0\x84\xb4\xb0\xd0\xdc\xbd\xc0\x3a\x55\x1f\x98\x43\xc6\x35\x30\x68\xc4\x42\xcc\x1a\xb7\x01\x63\x56\xb1\x19\x30\x53\x2d\xa1\xee\x1b\xa8\x99\x92\x13\x36\xe3\x06\xff\xc5\x1a\x3e\x83\xc6\xb8\x7f\xb9\xe5\xdc\xc2\x13\xa6\x34\xbb\x15\x76\x89\x8b\xeb\xa2\x53\x75\x3c\x29\xe3\xb2\xc6\x35\xb9\xb4\xa2\x08\xbf\x1d\x5d\xae\x53\xb5\x03\x91\x5b\x04\x88\x37\x1a\x78\xbd\x62\xba\x97\x78\x8e\x6c\x3f\x53\xe2\x8a\xe7\x76\xdf\xb0\x5a\x18\x3e\x73\x30\xce\x56\xac\x86\x39\xef\x1b\x5b\x12\x2e\x3b\xd0\x56\x04\x6c\x12\xfa\x41\xe2\xb3\x74\xc6\x55\x07\xa7\x6c\xa6\x54\x83\x3f\x0e\xf0\xf8\x92\x4b\x87\x80\xde\x81\x68\x95\x7f\xcd\x1d\xd2\xef\xc6\x38\xc3\x9b\x2d\x1d\xc6\xe9\x9f\x86\x99\xa5\x03\xdb\x2e\x85\xbb\x80\xb6\x55\x12\xd7\x8d\xa0\xac\xca\x0c\x90\x4e\xd5\x45\x46\x0b\xdb\xa1\x39\x6b\x6e\xf9\xca\x2d\x5a\x34\xaa\xe2\x16\x0c\x6b\xfb\xc6\x8a\xae\x01\xa6\xa1\x6b\x44\xc5\x0d\x53\xf3\x8d\xcb\x15\x84\x30\xc3\x5b\xf0\x90\x38\xdc\xb1\x03\x8f\x25\x76\x84\x74\x77\x74\xb8\x01\x57\x7e\x51\xf7\x02\xf7\x0e\x6e\x40\xff\x2e\xb0\xb9\x27\x22\x5c\x05\x91\x4d\x06\xde\xfe\xc7\x4f\xc6\x6a\x21\x17\xfb\x9b\x40\xbe\x82\xb9\x90\x60\x18\x67\x06\xac\x83\x67\x67\x76\x20\x56\xf0\x30\xee\xcc\x10\x77\x5d\xf5\xaf\x84\x1a\x19\xe4\xc0\x2d\xdb\xac\x98\x5d\x2a\x03\xac\xe5\xb6\x5a\x3a\xf6\x70\x5b\xe3\xea\xcc\x40\x03\x95\x55\x7a\xe2\xa1\xd6\xd0\xa0\xe8\x70\x47\x71\x4f\x2d\xc4\x0d\x48\x04\xce\x74\xbc\x82\x43\x62\x39\xbb\x84\x11\x54\x98\xa5\xea\x9b\xda\xf1\x42\xbc\xe1\xda\x2f\xeb\xf8\x7d\x2b\xe9\x3c\xd5\xc3\x4a\x65\xb7\x1c\x38\x1c\x77\xd6\x8b\xa6\x06\x3d\x10\xe4\x56\xf7\xbf\x8d\x1c\xbf\x5a\x42\xd8\x80\xa4\x0b\x13\x86\x64\xab\xe4\x4d\xb3\x8a\x82\xa9\x06\x0b\xba\x15\x12\xf0\xac\x33\x30\x96\x39\xc1\x6f\x61\xb1\x8a\x72\xdc\x2d\xe3\x84\xb0\xd3\x0a\x73\xb1\xe8\x35\xb0\xf3\x74\xf6\x9f\x84\x35\x4f\x40\x5e\xde\x80\x9e\x29\x03\xf7\x02\xf2\x9a\x76\xf6\x8f\xb3\x46\x2d\x16\x5e\x77\x10\x1e\x2a\xd5\x76\x4a\x82\xb4\x5e\xd1\x98\xbe\xeb\x94\xb6\x4c\x58\x76\x00\xe5\xa2\xf4\x20\xfc\xc4\xa5\xb8\x0e\xb8\xeb\x54\x3d\x94\x91\x11\x55\x3b\x92\xf6\x19\x6b\x84\x21\x9a\x8e\xaf\x7a\x15\xdb\x69\x75\x23\x6a\xc2\x9a\x0d\x97\xce\x2c\x37\xd7\x91\xd0\x2a\xc7\x01\x8f\x47\x66\x2f\xdd\xf2\x9e\xc8\xaa\xe1\x35\x26\x82\xb9\x01\x6d\x84\x92\x28\xca\xcf\x3a\x5e\xc5\xf7\x7e\xc2\xd3\xea\x5e\x5a\xd1\x02\x52\x19\x32\x20\xd4\xac\x11\x33\xcd\xb5\x00\x33\x61\xb4\xb2\x67\xab\xa0\xaf\x9f\x00\xd1\xf9\x63\x15\xfe\xf4\x19\x40\x74\xd5\x9b\x20\x39\x84\xe2\x7d\x15\xd7\x45\x40\x8a\x7f\xdb\x81\xd8\x1b\x60\x73\xa5\xd7\xf5\x4e\xc9\xce\x2d\x53\x37\xa0\xb5\xa8\x3d\x51\x31\x7c\x26\x68\xc3\xb0\x84\x93\x8c\x5e\x73\x66\x2c\xcc\x2e\x3c\x65\x24\xe1\x54\x29\x69\xb9\x90\x8f\x29\x9e\x5e\x86\x2d\xee\xa3\x9d\x8c\xe6\xbd\x21\x90\x43\xc7\xd8\xed\x12\x34\x6c\xa8\xe2\x5b\xd1\x34\xee\x02\x10\x37\xbc\x31\x2a\xb0\x8a\x89\x4b\xd3\x83\x0e\x9f\x97\xa0\x6f\x44\xe5\x94\x87\x31\xaa\x12\x51\x66\x7b\xa6\x8a\xfb\x3d\x01\x9a\xe3\xbd\x55\xf7\x42\xb1\xb7\x97\x53\x29\xfc\xbb\x07\x63\x8b\xaa\xeb\x77\xa4\xd0\x56\x48\xd1\xf6\x2d\xe3\xad\xea\x25\xca\xa5\x97\x17\xff\xc0\x75\x84\x26\xc6\x5c\x5f\xbb\x85\x56\xe9\xd5\x57\x2f\x4f\xaf\x8f\xee\xd0\x88\x56\x3c\x08\x76\xfe\x65\x47\xd8\x69\xe5\x87\x41\xbe\xb1\xf8\x16\xc8\xe1\x4b\xb7\x8b\x46\x1a\xa5\x98\xe3\x40\x2e\xb8\x08\x4a\x58\xc1\xd9\x75\x64\xc5\x40\xd1\x43\xfb\x4a\xdb\x6c\x37\x21\xed\xc8\x21\x72\xc6\xe3\xac\x16\xf3\x39\x68\x90\x16\x5f\xf6\x10\xa3\xa7\x34\x60\x8b\x64\x76\x4f\xbf\x3d\xf9\xf6\x64\x7a\xb8\xbe\x6d\x21\x83\x9d\x7e\x0f\x0e\xb7\x6e\xef\x16\x89\xe2\x6f\x2b\x40\x9e\x3f\x12\x58\x4b\x6b\xbb\x21\x58\x86\x10\x54\x3c\x18\x2b\xbd\x74\x46\x15\x39\xc5\x7e\x11\x02\x66\x88\x12\xb2\x0a\xcc\xc0\xfc\x0f\xe0\xe6\xe8\xba\x1b\xaa\xaf\x42\xda\x9d\xd0\x21\xf2\x46\x41\x0c\xfa\x02\xed\x89\x4d\x10\x37\x51\xb7\x2b\x5c\xc8\x10\x42\x66\x3b\xba\x37\x4b\x72\xbb\xdd\x3f\x6b\x36\xcd\x44\xf6\x74\xcd\x03\x0f\xdb\x89\x96\x2f\xbe\x72\xbf\xf0\x6a\x66\x79\xcd\xc0\x14\xbb\x0a\xeb\x0b\x7c\x9c\x4c\xc2\x7a\x9d\xf3\x68\xad\xe0\xb4\x8d\xf1\x02\xba\xa0\xd3\xc3\x81\x48\xb9\x01\x09\xc6\x14\xce\x11\xdc\x09\x89\x97\xf8\x60\xd0\xfd\xb7\x4b\xc0\xe3\x49\xa8\xac\x90\x8b\xd2\x39\x3d\x6e\x2f\x24\xb3\x1f\xae\xae\x2e\x4a\x76\xd6\x75\x8d\x37\x0f\xd1\xc9\xf1\x3b\x26\x8d\x31\x83\x72\x0c\x22\xe7\x71\x09\xde\x14\x35\x34\x7c\x35\x64\x88\x3f\x7d\x33\xe2\xb5\xf7\xed\x0c\xb4\x93\x70\x06\x2a\x25\x6b\xc3\xf8\xdc\x82\x5e\xc3\xc5\x92\x1b\x66\x2c\xd7\xce\x9e\x9b\xc1\x5c\xe9\x71\x80\x0c\x7a\xcc\x04\x81\x5d\x17\xc2\x1e\x3e\x67\x0a\xa9\xde\x7e\x3d\x64\xc4\x13\x28\x3a\xdc\x9e\xcc\x2d\x68\x98\xea\xed\x3a\xce\x3c\x64\x61\xe7\x2d\x38\xeb\x40\x0b\x55\xdf\x0f\xd2\x0f\xea\x96\xa9\xb9\x05\xb4\xe1\x3a\xd0\xce\x9a\x4a\x90\xdc\x79\x67\x5b\x76\x36\x7d\x55\x21\x56\x96\x1a\xcc\x52\x35\x3b\x00\xf1\xd6\x6b\xd5\x4a\x49\x03\x55\x8f\x3e\xae\x5f\x06\x4c\x12\xab\x84\x1b\x45\x0e\xac\x34\xa2\x06\x0d\x75\x78\x70\xde\x37\x1e\x3b\x84\xd3\x25\xbf\x71\xde\xd1\x9c\x0b\x67\x90\x3f\xfc\x18\xee\xc5\x5e\xc3\xaf\x3d\x86\x5f\xe6\xde\x53\x10\x9c\x63\x27\xc0\xf3\x41\xfd\x90\x43\x68\xe0\xb5\xf8\x7d\x99\x39\x6e\x79\x17\x37\x27\x98\x7e\x2f\x76\x1e\x05\x69\x0b\x3f\x27\x08\x7f\x77\x86\x8e\x5b\x6f\xc3\xdb\x23\xb1\xf4\x4e\x7b\x3f\x05\xa6\xde\xe9\x20\x7f\x7c\xb6\xde\x38\x46\x74\x7c\x35\x7a\x57\x8f\x91\x5b\xd9\x47\xaf\x57\x3b\x83\x61\xd4\xe1\xed\x8d\x55\xad\xf8\x25\x84\xe2\xdc\x11\x54\x8f\x74\x4f\x44\x29\x2a\x42\xa3\x68\x41\x1f\x3b\x38\x7d\x00\x39\x33\xa1\x4c\xc9\xfe\xb9\x14\x0d\x30\xa9\x74\x8b\x81\x3e\x2e\x07\x5e\xb1\xf7\x43\x0c\xe3\xac\x53\x6e\x5b\x5c\x72\x06\x8c\x53\x8a\xa0\xef\x28\x06\x43\x29\x93\x09\x33\xaa\x85\xb8\x3d\x86\x95\xcc\xc4\x61\x75\xc9\xb8\x61\x33\x6e\xab\x25\xfb\xac\x66\x66\x12\x16\xce\x57\xac\xac\xb8\xc1\x48\x0e\xb7\xcc\x74\x50\x89\xb9\xa8\xd8\x52\xf5\x3a\xfa\xf1\x35\x5f\xc5\xc4\x0f\x4f\xdb\xa0\xcc\x42\xe7\x49\xc8\xde\x86\x64\xcd\xf7\x4a\xd3\xce\x1e\x0a\x14\x4d\x43\x6c\xb6\xdc\x82\x16\xbc\x09\x48\xcc\x4f\xce\xdd\x99\x07\xd7\xc6\xf0\x32\x7e\x54\x33\x26\xa4\xb1\xc0\x6b\xb7\x25\x77\x02\x4e\xd6\x5c\xd7\xac\x86\xae\x51\xab\x16\xa4\x9d\x30\x21\x99\xd2\x18\x4c\x55\xcc\xf0\x1b\x47\x40\x46\xf5\xba\x02\x43\x62\x3c\x48\x99\x7c\xc7\x5a\x81\xc1\x58\xb0\x04\xba\x61\x34\xaf\x1d\x71\x43\x5d\xe6\xf1\x97\x10\x4a\x74\x92\x95\xcd\xb5\x22\x41\x32\x57\x4d\xa3\x6e\x83\x1e\xc9\xe2\x8e\x98\x5d\xb8\xe1\x4d\x8f\xc8\x0d\xae\x4f\xc4\xc4\x29\x9b\x22\x89\x4c\x27\x6c\xea\x7e\xeb\xfe\xfb\xef\x9e\x6b\xfb\xcb\xb4\x44\x1b\x59\xf7\x8d\x3f\xbf\xe3\xab\xde\x38\x46\xc9\x51\x13\xd1\xc2\x7d\x58\x25\x42\x72\xca\x8a\xb0\xf8\x29\x9d\x9b\xee\xcc\x38\xec\x87\x7b\xbf\xd5\xc2\x3a\xb9\xc8\x0d\x01\x05\x5f\x3a\x0d\xc6\x10\x75\xbe\x2e\x17\xa5\x5f\xe2\xd4\x8a\xea\xfa\x6f\xb4\xc0\x8b\xbf\x9c\x9c\x9c\x9c\x4c\x4b\xb7\xfe\x1a\xcc\xa7\x21\xc6\x23\xd3\x39\xd3\x92\x09\xc9\x5e\x4b\x45\x1d\x71\xe0\x65\xc6\x9e\xff\xc5\x1e\xeb\x38\x79\x64\x06\x6c\x08\xee\x9c\x1c\x06\x90\xdc\xba\xa7\x96\xcf\xfe\x16\x52\x34\x2f\x4e\x8e\xbf\xf9\x4f\xff\xbb\x6b\x7a\xf3\x7f\x8e\xc6\xfe\xf3\xb7\xa9\x23\x5d\x0f\xe5\xa9\xd5\x62\xb1\x00\xfd\x37\xb7\xcc\x8b\x13\x7a\xe2\xe4\xf8\x9b\xad\xef\x97\xfb\x7f\xfc\x68\x52\xc0\xc6\x8e\xee\x57\xa0\x9c\xf0\x5a\x94\xdc\xb7\x4b\xd5\xac\x87\x2c\xe7\x59\xa6\x4f\xf5\x36\x06\x2e\x1d\x74\x35\x54\x0d\xd7\x50\x23\x9b\xaf\x58\xdb\x1b\xeb\x64\x3a\xc4\xa4\xdf\xfa\x16\xc2\xb4\x50\x2d\xb9\x14\xa6\x75\x98\xb8\x55\xfa\x9a\x55\x4a\x6b\xa8\x6c\x33\x38\x51\x62\xa4\x1d\xce\xb4\x7f\x86\x28\xe2\xcc\x40\xc7\xb5\x0f\x4b\x53\x24\xde\xc6\x10\xf6\x7a\x4a\x20\x63\xf7\x28\xd3\x83\x76\x8a\x72\xc4\x23\x26\x01\x1b\x29\x3c\x1e\x4c\x18\xe6\xc9\xca\x39\x9f\x5f\x62\xee\x66\xb6\xca\x98\xb5\x3c\x0b\xa9\xc5\x20\x61\xe3\x9e\xda\xad\x90\xa4\xb0\xdb\x11\x78\xb5\x0c\x4f\x42\x96\xcc\xf0\x5c\xe0\x81\xf2\x2b\x7a\x4e\x4f\x4f\x91\xcc\x45\x56\x29\xc2\xdf\xf2\xcd\xd2\x5e\x07\xc2\xee\xef\x3b\xdd\x0a\x06\xa4\x65\x42\x66\x31\xe9\xa9\xd2\x8b\x92\x63\x0e\xa0\xc4\x50\x77\x79\x7d\x1a\x42\xde\xc8\xfb\x3e\xf2\xbf\x3a\x2c\x2f\x29\xb9\x02\xf5\xba\xf8\xab\x7a\xad\x41\xda\x66\x75\x1a\x60\x0d\x52\xc3\xc3\xe5\x94\x58\x94\x7a\xfb\xd9\xf5\xcf\x79\xd3\xcc\x78\x75\x7d\x2f\x6b\xfd\xc3\xc0\x20\x84\x4e\x77\x2d\xda\xae\x01\xa7\x12\x48\xc4\x7b\x3a\xa0\xdd\x19\xc8\xba\x53\x42\x5a\x76\x10\xb6\x3e\x8c\xd7\x1e\x15\x8c\xd5\x2b\x4c\x40\xaa\x6d\xda\x8a\x9b\x11\x79\x3c\xa4\x62\x49\x38\xa8\x56\x45\xa7\x1a\x51\xed\x12\xa1\xdc\xbf\xf4\x37\x6f\xd8\x52\xdd\xa2\x29\xa4\x81\xdb\xb4\x98\xf5\xfa\x29\x64\x6a\x38\x73\xdb\xfe\xcc\x1b\x51\x33\xa7\x70\x72\x16\x3d\x2d\xd8\x1e\x56\x8b\xec\x9d\x32\x4e\x55\x23\x1e\x4e\x34\xb2\x74\x2f\xb3\x75\x9b\xd5\x7f\x2d\xd8\xde\xf7\x4a\xcf\x44\xbd\x17\x23\x24\x87\xa7\x8e\xe2\x66\xa2\x0e\xcb\x66\x80\xe8\x5e\x3a\x4b\xe3\x5a\x74\x9d\x43\x97\x84\x2f\xf8\x3b\x26\xe6\x8e\xaa\x9c\x65\x64\xf0\xe7\x25\x37\x72\x7f\xdf\xb2\xb9\x90\xc2\x2c\xa1\x66\x2b\xb0\x6e\xaf\x0f\xd0\x35\xbc\x82\xbd\x40\x20\x15\x97\x15\x34\x26\x51\x4e\x2c\x0b\xf9\xec\x34\x1d\xe6\x9d\xf0\x0d\xc3\x84\x0d\x16\x89\x84\x5b\xa6\x24\xec\x3f\x34\xbc\x7e\xd6\x5b\xd5\x72\x2b\x2a\xe4\x57\xb2\x23\xc6\x0c\x92\x20\x2e\x91\xf7\x79\xd3\x78\x39\xe8\xd0\x0b\xc2\x2e\x63\x1c\x13\x2d\x03\xb4\xc9\x9d\x71\x90\x59\x4a\xce\x08\xee\x5b\xd0\xec\x40\xc9\x66\xb5\x95\x0b\x90\x6f\x4c\x60\xa8\x40\x98\x4a\xbb\xe5\xb8\x31\xce\xde\x4e\xab\x01\xea\xc4\x5a\x38\xf1\x39\x45\x31\xb2\xf1\xd0\x61\x89\x61\xbc\x10\xd8\x46\xd1\x17\xa8\xa3\x69\x36\x41\x34\x6b\xf2\x9b\x1e\x40\x10\x93\x2d\xec\x15\xbb\xb3\x19\x4d\x30\xc5\x59\x56\x37\x11\x20\x7b\xde\x4e\x47\x5f\x99\x9e\x1c\x3f\x67\x47\xf4\xff\xe9\xe4\x16\x4d\xe1\xe9\x9f\xfe\xdc\x92\xae\xfe\xf3\x89\x99\xfa\x44\xe2\x30\xe8\xea\xd1\x5b\xd4\xc0\xeb\x46\x48\x28\xbc\xcd\x30\x74\x5b\xfe\xf2\x9f\x37\x6f\xfa\x3d\xfe\x97\x37\x2c\xbc\xca\x32\x13\xc4\x89\xd3\x78\x75\xee\xe0\x8e\xd4\xc4\xdc\x9d\xb7\x15\xe8\xa0\xc5\x7a\x10\x77\x61\xfe\xac\xee\x2d\x2e\x57\xce\x45\x31\x4e\x4f\xb2\xb7\x02\x8f\xe7\xec\xec\x9c\x3f\x31\xc1\x85\x8e\x50\x2f\x2d\x1d\x9f\x1c\x21\x47\xb2\x26\x79\x34\x35\x74\x20\x6b\x90\x15\xe5\x9b\x1f\x29\x9b\xf7\x2a\xdb\x65\x6b\xc5\x01\x1f\xf0\x06\xaf\xeb\x90\x25\xf5\xc8\xcd\x96\x89\xf5\x31\xeb\xac\x13\x4a\x30\xdc\xa2\x9a\xdd\x72\x69\x83\xcc\x59\x4b\xd0\xb1\x8f\x9f\x72\x3c\x34\x6a\xf5\x98\x19\xcd\xb0\xc3\xb8\x7f\x07\x5f\xba\x46\x54\xc2\x89\x1e\xaa\x39\xc1\x13\x5c\x0b\x89\x6a\x61\x29\x16\x4b\xc4\x40\x03\x37\xd0\x44\xf7\x82\x8e\x8a\x57\x3d\x2e\x46\x9e\x40\x46\xd2\x1d\x71\x07\xed\xe4\x4b\x0f\xef\xc4\x54\x0d\x06\x05\x4d\x72\xcb\x08\x79\x33\xb0\xb7\x00\x92\x4d\xd3\x1f\xa6\x93\xdc\x2c\x28\x3e\xab\x19\x09\x80\x6b\xba\xc9\xc2\x27\x46\xa6\x3e\x04\xe7\x94\x60\x60\xd1\xe4\xd7\x39\x3e\x0c\x3a\x22\x19\x45\x03\xd4\x0f\x49\xcb\xed\xfc\xa8\x0c\x16\x8e\x1d\xd9\x4b\x83\xe9\x94\x34\x58\x66\xe6\xc0\x5d\x80\x04\x9d\xce\x92\x99\x10\x03\x08\x59\x46\x55\x2d\xbf\x76\x6a\x61\x4b\x02\x3d\x14\x0c\x54\x4d\x6f\xec\x46\x0a\x3c\xe7\x30\x90\x37\x42\x2b\xf9\xb8\x78\xc8\x36\x49\x88\xe8\x43\x1c\xc4\x0b\x1b\xab\x98\x90\x9f\x1d\xe5\x44\x6f\x7e\x08\x1c\x63\x37\x5c\x0b\x47\xde\x26\x9c\x2f\x3f\x7b\x0c\x79\xa6\x60\xc7\xf4\xdd\xd9\xdb\xd7\x97\x17\x67\x2f\x5f\x3b\x05\x7b\xf1\xfe\xd5\xbf\xdc\x2f\x48\xc7\x2a\xa7\xab\x9f\x42\x15\x54\x3c\x57\xd1\x82\xe5\xf7\xc2\x43\x99\x2f\xe3\x71\xe9\x0d\xde\x0c\x11\x64\x60\x24\x5c\xe4\x77\x13\xf1\xbb\x91\x8b\x75\xe4\x30\x3d\x4c\x54\xa3\xb5\xd2\xc5\x92\xcb\xba\x79\x4c\xe1\x3c\xd8\xc6\x9b\x34\x7e\x27\x4f\x47\x01\xed\x9e\x72\x5e\xbb\x17\xd8\x0f\x11\x2e\xc6\xbc\x48\x16\xd2\x07\x11\x07\x81\x35\x52\x62\x4f\x80\x06\x34\xcc\x77\xf4\xe6\x11\x65\x2c\xa0\x4c\xc3\x9c\x92\xc8\xb1\xe4\x4c\x39\x37\xb6\x77\x06\x9c\x64\xbc\xc3\x5a\x5d\xaa\x86\x4c\xf5\x6d\x61\xd3\x45\xf5\x48\x41\x55\x07\xe7\xdf\x5f\xb2\x2b\xbc\xc1\x05\xd7\x33\xbe\x80\xa2\x52\x8d\x53\x1b\x86\x6c\xea\x28\xd1\x63\x65\xb8\x54\xac\x51\x72\x01\x9a\x49\xa8\xc0\x18\xee\x0b\x3c\xfa\x4e\x0d\xc3\xa5\x7d\x57\x73\x1f\x80\xfc\x83\xdf\x6a\x2d\x4c\xa5\x6e\x40\xaf\x8a\xca\x79\xd6\x19\x40\xe5\x71\x77\xbd\x38\xa6\xd5\xe3\x53\x2f\xdd\x43\x57\xab\x0e\x36\x41\x7d\x15\x9e\x61\x55\x23\x1c\x27\xe3\x82\x3e\xa0\xe1\x0e\x30\x61\xe4\x9c\x38\x07\x81\x4a\xf1\x9c\x44\xac\x85\xb9\x26\x2d\x4b\x25\x2f\xd3\x0d\xbe\xf7\xbf\x4f\x9c\x2f\xe4\x42\x53\xe6\xe8\x41\x94\xb1\x71\xff\xe7\xb4\xce\x9d\x66\x97\xf2\xae\x7c\xa8\x87\x48\x45\x5e\xe8\xe8\x3d\x0b\x91\x89\x81\x89\x49\x2c\xae\x7a\x6b\x44\x0d\xec\x56\xe9\xa6\x0e\x6e\x61\xa6\x57\xfd\xd6\xbe\xa6\xc1\x53\x03\x9b\xad\x3c\x5a\xe9\xe4\xce\xca\xc0\x22\x77\x1e\xca\x72\x50\xfe\xd4\x59\xd9\x66\xbe\xf5\x81\x5d\x6a\xd5\x2f\x28\xb5\x35\x0d\xb6\x0a\x41\xe9\x4e\x78\xf8\x04\xc8\x71\xa9\x8c\xdd\x25\x22\x71\x74\xf4\xc1\x3b\x90\x47\x47\xe5\xb0\x92\xc5\x9d\xde\x2d\xb3\x5e\xe4\xe3\xa9\xa6\x7c\xb0\x57\x7e\x35\xe6\x7c\x60\x7e\x84\xc8\x27\x5e\xd3\xfa\x85\xf4\x06\x13\x26\x3f\x5c\x5d\x5d\x84\x42\x9e\x10\xe9\x09\xde\x6d\xb2\x05\x85\xb1\x42\x3d\xa2\xb0\x3b\x77\xeb\x7b\x52\xe7\xd1\x64\x1e\xad\x96\x0c\x95\xb4\x9e\xc6\xce\x3d\x64\x2c\x32\x42\x0b\x66\x99\x2c\x1c\x47\xe8\x15\xd7\x99\xb6\x47\xdb\xa6\xb7\x33\x14\xf2\xe7\x17\x4c\x73\xb9\x78\x12\xd2\x10\x11\xb3\x03\xfd\xbd\x0c\x68\x73\xf7\x7b\x80\xa1\xde\x22\x86\x7a\x0f\x63\xac\xf7\xe5\xf9\xab\x0f\xcc\xf4\x33\x09\xb1\xec\x3b\x56\xfa\x7b\x28\x66\x44\x32\xba\x82\x2e\xcb\xca\xd0\x65\x75\x5a\x7d\x59\xb1\x83\xe9\xf3\x93\x12\xff\x7f\xfc\xed\xe4\xf9\x5f\xbf\x29\x9f\xff\x05\x7f\x78\xfe\xcd\xe4\xf9\x7f\x71\x3f\x7d\x4b\x3f\xfe\x25\x48\xce\x54\x0d\x35\x88\x56\xd0\xf5\xdc\x8b\xe3\xef\x95\xd7\x79\x40\xa1\x3b\x74\x10\x7c\xa3\xc9\xd4\x5f\x75\x89\xc4\x5a\x0a\x75\x4c\x8b\x4e\x4b\xf6\x5d\xdc\x34\x0b\xd9\x52\xa7\x04\xa5\x4e\xdc\x85\x91\x09\xe7\x3c\xf3\xcc\x19\x73\xc4\x22\x95\xa5\xee\x0b\x19\x08\x3a\x15\x22\x06\xf8\x3f\xab\x46\x5d\x0b\xfe\x88\x2c\xf2\x23\xed\x10\x98\xc4\x47\xa5\xcd\xb0\x87\x81\x50\x13\x1e\xfd\x91\xdf\x70\xc6\x17\x20\x2d\x25\x1b\x2f\x01\xd8\xd2\xda\xce\x9c\x1e\x1f\x7b\x80\x4b\xa5\x17\xc7\x1a\xb0\x20\xb1\x82\xe3\xa5\x6d\x9b\x63\x7c\xc3\x94\xee\xdf\x7f\x7c\xa6\xa8\x78\x51\x81\xde\x45\x2c\x3b\x24\x5e\xbc\x7e\xcb\x40\x56\xca\x29\xa9\x97\x67\xcc\xbd\x29\xe6\xc1\xc2\x73\x97\xc4\x3a\x6e\x97\x93\x08\xef\x0d\x68\x31\x0f\x36\x43\x08\xba\xc6\x97\xc0\x4c\xbc\x85\xe8\x4e\x82\x6e\xf7\xb4\xd3\xca\xaa\x4a\x35\x18\x60\xc4\x32\x43\xe3\x3d\x8a\xde\x40\x61\x4c\x53\xd0\x62\x05\xef\xed\x12\xa4\xf5\x9b\x07\xf6\x70\x2f\x21\x1d\x26\x0b\xe3\xf8\x86\xeb\x63\xdd\xcb\x63\x03\x95\x06\x6b\x8e\x53\x41\xac\x23\x72\x2f\xf6\x78\x85\x21\xb3\xf0\x63\x51\xf1\xb2\xd2\x76\x9a\x85\xdf\x22\x75\x0d\x18\xcf\x43\xd3\x69\x21\x2b\xd1\xf1\x26\x43\xe4\xb6\xe6\x8d\x2b\x2c\x5c\xf0\xef\x1c\x98\x43\x5f\xb7\x82\x29\xad\x59\xe8\x2f\x72\x16\x74\xb4\xb7\x12\xd6\x30\x60\x16\x65\x19\x63\x1c\x0b\x36\x82\x40\x0f\xc4\x1b\xb4\xd1\xef\x81\x62\x7a\xfe\x22\x9c\xe7\x45\x25\x5f\x98\x95\xb1\xd0\x9e\xb6\xdc\x60\xeb\xa6\x13\x76\x98\x7b\x96\x2f\x96\xfc\xd6\x0a\x55\x28\xd9\x08\x09\x25\xfd\x54\x9a\x9b\x2a\xac\x8f\x90\x54\xf2\xc5\xdc\x41\xe3\x54\xa9\x6a\xa0\x74\x3f\xe0\x43\x5b\xae\x22\x59\xbb\xbb\x72\xd7\x1b\x61\x2c\x50\xb1\x3f\x66\x1d\x2b\x6e\x6c\xa8\x4e\x37\x5b\x6b\x36\xe1\x8b\x05\x59\x43\x1d\x50\x55\x2d\x61\x87\xf4\xd1\x5b\x2e\x6b\xbc\x40\x8c\x9c\x6c\xdc\xab\x77\xc4\x4d\xba\xf5\x79\xc3\x17\x21\x14\x11\xb6\xf4\x68\xba\x86\x15\xeb\x0d\x5f\x38\x0b\x16\x15\xf3\xef\x71\xd1\x24\xe2\xef\xbe\x82\x1d\x2d\x3c\x47\xfd\x3f\x38\x2b\x8e\xd7\xb5\xf6\xb4\x9b\x0a\xb7\x02\x05\xa3\x1c\x8d\xbd\x82\x42\x3a\x89\x82\x19\xe2\xe9\xde\xff\x3a\xda\x9b\xa6\x64\xc5\x74\xcf\xeb\xd0\x3d\x3c\x29\x32\xcf\x24\xd8\xf6\xa0\x0d\xbe\x4c\x41\x44\x74\x61\x24\x58\xcc\xae\xa2\x6e\x9e\xf3\x2a\x75\x88\x86\x08\xe1\xde\xd1\xde\x5a\xbd\x3a\x37\xe6\x56\xe9\x5d\x42\x96\xc8\xda\xfe\x71\x12\x84\x18\xbc\x1f\xa0\x78\xc2\xd6\x2f\x0b\xcd\xfa\xde\x80\x8e\xe7\xea\xa8\xa5\x15\xf5\xeb\x83\x2b\xf6\x47\x04\x01\x55\x76\x67\x55\xe6\x7f\xfd\xeb\xb7\xd3\xf5\x16\x34\xa4\x97\x5d\x0f\xe9\x1f\xf7\xa5\x8b\xc9\x03\xc4\xe2\x70\xbc\x18\x4f\x73\xc3\xba\x71\x83\x14\xe4\x8f\x99\xe8\x28\x03\xc4\xe1\x61\x47\x20\x30\xd8\x9f\xdc\xd0\x11\x5c\x0f\xd7\xbd\x9b\xec\xef\xe5\xde\x7f\x2e\x01\xcf\xb7\xc9\xb9\x26\xeb\x68\xbd\x03\x8a\x0d\x12\xbb\x8f\x95\xe8\xfe\x1f\xde\x0c\xc8\xeb\x5a\xf8\xf4\x53\xa0\x00\xbf\x94\x33\xe7\x6b\xec\x87\xad\x85\x7c\xa0\x21\xf3\x1f\xf8\xef\xe2\xf3\x4d\x5b\x90\xb1\xf4\xf1\xc7\x9f\xdf\x06\x81\x8d\x7c\x3a\xec\x9f\xf2\x5b\xa6\x30\xf0\xe7\x9b\xf6\xf1\xc2\x78\x3f\xfe\xfc\x76\x2d\xec\x6b\xd7\x9d\x46\x7c\xc4\x19\xe9\xba\x97\x1b\x2d\xda\x4f\xc0\x79\xa9\x61\xd6\x2f\xee\xcf\x31\x47\xb3\x56\x43\xab\x2c\xd0\x6b\x0b\x5f\xb5\xe7\x63\x5d\xfe\x97\x8e\x92\x09\x6a\x6e\x2d\xaf\x96\x10\x2b\xff\x58\xc0\xd8\x84\x41\xb9\x28\x27\xbe\x1c\x0c\xdb\x4f\xe6\x4a\xdf\x72\x5d\x13\x3f\x0e\x80\x2b\x4c\x6f\x3a\x90\xf7\xe3\xea\x92\x9e\xa3\x5b\xb0\x5c\x2f\xc0\xe2\xf5\x88\xb6\x85\x5a\x70\x0b\xcd\x2a\x14\x12\xdb\xd8\xbd\xd1\x70\x63\xdc\xed\x36\x8a\x93\x0e\x4c\x42\x4b\x38\xfd\xeb\xbc\xb4\x1d\xf6\x76\x36\x8a\x35\xbe\x82\x19\x5f\xf1\x77\xe6\xb4\x05\x96\xda\x05\x62\x11\xeb\x2d\x1c\x8d\x5a\x98\x71\x2e\x3e\xdc\x40\x85\xd7\x6b\xbb\xc8\x30\xcd\xa5\x41\xc9\x1c\x74\x21\xb7\x41\x17\x2a\x64\x6a\x6f\xa0\xe0\x10\x00\xb8\x6d\x56\xac\xe1\xbd\xc4\xeb\x72\x60\xae\x03\x74\x74\xfa\xe7\x93\x93\x3f\x0f\x40\xfa\x5a\x49\xe2\x96\x4f\xef\x26\x83\x97\x1b\xe3\xac\xfc\x5d\xb2\x77\x99\x2c\xfa\xf9\x6d\x7a\x95\x1d\xf4\x06\xd8\xf4\x8d\x90\xfd\x97\x69\xf6\x6b\xef\x65\x2b\x9d\xc2\x81\xd7\xbc\x85\x06\xec\x23\x26\xa9\xc3\x0e\x49\x82\xdc\x97\x04\xf8\x29\xbc\x21\x64\x88\x30\x3d\xd9\xc0\xff\x57\x94\xae\x78\x2c\x50\x18\xdd\x2b\x8c\x3a\x21\xc5\xf1\x94\x5d\x82\xd0\x31\xd4\x39\x50\x0d\x21\x02\x9c\xc2\xa2\x31\xa0\x31\x68\x06\xd9\xc9\x90\x7c\x79\x47\x1d\x9e\x07\x86\x26\x34\x20\x23\x29\x5e\xa7\x1c\x4d\xa8\x27\xca\xae\x2c\x11\xdc\x30\x1d\xbc\x4b\x44\x22\x52\xda\x06\x6d\xad\xc5\x3b\xb6\x44\xe8\x82\x8e\x46\x63\xd0\x67\x98\x47\x49\x8b\x9b\xb8\x6a\x88\xd8\x8d\x57\x2a\x67\x01\xe9\x94\x26\xa6\x40\xc6\x07\x9f\xc1\xce\x8b\xc4\xf3\x85\x53\xe7\x73\x5d\x1b\x24\x91\xc2\x54\xbc\x71\xaf\x1c\xb8\xeb\xf5\x3f\x14\x56\x15\xbf\x80\x56\x54\x37\x34\x07\x6e\x7b\x0d\x66\xc2\x66\xbd\xf5\xa3\x35\xc2\xef\x30\xc1\x82\xd5\x48\x2d\x70\xb7\xf5\xbc\x6f\x92\xdd\xeb\x0b\x9c\x9c\x4c\xa0\x80\x6a\xb4\x59\x71\xe1\x14\x4e\x7d\x12\xdc\x14\x90\x83\x62\xed\x61\xe1\x46\x9b\x91\x4c\xb6\x94\xd7\x7e\x61\x43\x5f\xef\x64\x15\x46\xd5\xa6\xcb\x8e\x97\xd9\xc3\xa5\x27\xe0\xb2\x86\x9b\xdc\x47\xba\xde\xf2\x58\xbe\xd9\x61\xf9\xc1\x31\x75\x08\x27\x04\x70\x6a\x55\xf5\xb1\xc4\x31\x8b\x8a\xb4\x0a\x9b\x7a\x1c\x7f\x44\x53\x6a\x0c\x1b\x2d\x58\x1d\x7a\x15\x7e\x2d\x3a\x68\xad\xbb\xf0\x91\x55\x41\xc6\xa0\x29\xd5\x0c\x69\x36\xad\xba\x7e\xea\x7f\x7c\xe0\x99\xe3\x69\x63\xcd\xc7\xbd\x67\x26\xdb\xe6\x3e\x5f\xed\x12\xbc\x41\x82\x62\x01\xcb\x5a\xe3\x01\x7c\xe1\x8f\xd2\xd8\x8f\xde\x81\xae\x1c\x38\x0b\x74\x58\x9d\x0d\x45\x53\x48\x32\xa3\x6d\x13\x4d\x87\xa9\xc6\xf7\x42\xd5\x3b\x1e\xd4\xaf\xb8\xed\x72\x5b\x21\x51\x28\xc0\x2e\xbe\x68\x68\xde\x97\xb1\x6b\xeb\x22\x4e\xe5\x4a\xae\x53\x28\xac\x71\x46\xaa\x5c\x61\x4f\x4b\x06\xcc\xc8\x78\x8b\x7d\xc3\x8e\x8e\x9c\x04\x3a\x3a\xca\xf4\xc8\x24\x08\x19\x5c\x7f\x63\x46\x94\x41\xf1\x15\xe3\x28\xb5\xba\xc5\xc4\x9e\x5b\x86\x44\x92\x54\x36\xf3\xe2\x92\x8c\xae\xb3\x0e\x7e\xd4\xee\x63\xb8\x8c\xab\x8e\x91\xce\x9d\xb8\xe4\x5f\x76\xc3\xe5\x99\x64\x7d\xd7\x81\x66\x94\x7d\x89\x76\xe1\x08\x5a\xbd\x6d\xaf\xa3\xa8\x67\x4e\x49\x36\x0d\x34\x19\xf7\xae\xe3\x34\x10\xc4\x92\x1b\xe6\x64\x9f\xc3\x4d\xc5\x3b\x9f\x2c\xc0\x75\x89\xf0\x4c\xaa\xc0\x33\x96\x37\x0d\xbd\x8e\x08\x09\xd7\xb5\x0b\x2f\x6d\xe3\xa2\x07\x5a\x25\x77\x17\xd4\xae\xab\xcb\x50\x58\x1b\xe2\xd1\x4a\x92\x95\x6a\xd8\x52\x35\xf5\xe9\xd1\x60\x0a\x0a\x3a\x94\xb1\x76\xca\xaf\xe4\xf5\xff\x11\xaa\x89\x54\x9e\xcb\xb6\xd6\xe7\xa2\x62\x23\xd1\x13\x6b\x6a\x77\xac\xb4\x0d\x8e\xf6\x66\xbd\xed\xba\xd9\xf2\xdb\x98\x2b\xde\x4c\x19\xe2\xd7\x47\x57\x4d\x70\x54\x68\xf2\x4a\x78\x25\x16\x54\x20\xac\x58\xc0\x4b\x66\x22\xf6\x33\x44\xcb\x4b\x6f\x5a\x1e\xd4\x7f\x34\xef\x9b\x26\x2e\x36\x8c\x25\xf8\xf3\xd3\x7a\x58\xd2\x45\x7d\x16\x67\x6f\x5f\xbf\xf9\xd7\x4f\xef\xce\xae\xce\x7f\x7e\xfd\xaf\x97\xef\xdf\x7d\x7f\xfe\xf7\x7f\x7c\x38\xbb\x3a\x7f\xff\xce\x3d\xf2\xe3\xe5\xfb\x77\x8c\x88\xab\xcc\x46\x12\xe5\x6c\x1a\xfb\x07\xa8\xac\xcd\x3a\xba\xe8\x7d\x59\x00\xc2\x33\x84\x63\x23\xa6\x40\x37\x4f\xab\x23\xca\x08\xce\x3c\xe5\x3f\x48\xf7\x8f\xd1\x50\x6c\xc7\x78\x0a\xce\xc2\xa6\x21\x7f\x8f\x2e\x1f\x02\x14\x1c\x87\xec\x9e\xdb\xae\x01\xbb\x71\xe1\xc3\xdb\xcb\x01\x58\x72\x29\xa1\x29\x72\x5a\xbb\xdf\xa5\x7d\xe3\xbd\x02\xff\xb6\x0f\x11\x71\x13\x6a\xb7\xd4\x7c\xe8\xbc\xd1\xb5\x3a\xe0\xbd\xf7\x1f\x38\x1a\x1b\x3d\xc2\x32\xde\xb9\x50\x9a\x68\x85\xc8\xeb\x1f\x1f\xce\xcd\x28\xc0\x42\x5e\xff\x6a\x70\x6b\x30\x56\xc8\xd8\x64\xf2\x58\x30\x07\xe3\xfb\x77\xc1\xf2\xe8\xbe\x5f\x81\xac\xf0\xf2\x6f\x82\xad\x18\x32\xdf\x09\x5d\x37\xf0\xd5\xb8\xc2\x77\xf1\x79\x93\xea\xd7\x37\xea\x6d\x67\xc0\x4c\x3f\x73\xaf\xcf\x90\x91\x1c\xe0\x49\x79\x51\x83\xa3\x07\x3c\x5b\x6f\x13\x6a\x76\xe0\x87\x0c\xf0\xd4\x18\x36\xd3\xea\x1a\x74\x1a\xaa\x13\x8c\x03\xa7\xb3\xf6\xbc\xf0\xda\x3b\x1c\x39\xef\xd7\xdc\xd1\x4e\xa7\xed\xb4\xaa\xfb\x0a\xb6\xdc\xce\x57\x1e\x72\x70\x8a\xb9\x68\x2c\x68\x7f\x6d\x45\xa0\xd9\x7b\x45\x6c\x28\x7e\xa5\xd7\xfd\x10\x40\x04\x68\xad\x33\x61\x09\xbc\x06\xcd\xf6\x2a\x28\xbc\x6a\x5e\x0a\x63\x95\x5e\xed\x85\x69\x80\x97\x42\x56\x5e\xf0\xfa\x87\x9d\xd5\x35\x03\xe7\xff\x43\xab\x6e\x48\xd3\x49\xb8\x05\x9d\x4f\xca\xf3\xb2\x73\x92\x81\x10\x0d\x84\x3b\xa6\xd6\xc6\x96\x16\x21\xaf\x8b\x99\x90\x75\x8c\x2d\x6c\x1d\x0f\x8b\x41\x0a\xff\xf8\x58\x29\x1c\xc7\x05\x71\xc6\x54\x12\xe9\x97\x42\x5e\x7f\x97\x6d\xc1\xa2\x65\x50\x5e\xa1\x8e\xc9\x54\x42\xd4\x89\x83\x85\xd1\x69\x32\xb4\xfa\xa2\x01\xdc\xa4\xcc\x2b\xe9\x82\x53\x37\xa2\x5c\xef\x5d\xe8\x00\xbe\x54\xd0\x8d\xbf\x91\xd2\x9e\xea\x56\x12\x12\xd3\xb9\xe8\x0c\x87\x0f\x36\x52\xfd\xe8\xc8\x68\x4b\xa5\x2c\x35\x86\x6b\x82\x1e\xce\x34\x7f\x2a\x8a\xf1\x73\x26\x1f\xb1\x28\xe6\x8d\x9f\x64\xb9\x25\x79\x72\xbe\x19\xd6\xcc\x00\x63\x31\x70\x75\x10\x2a\xc6\x2a\xd5\x60\xb3\x52\xed\xf5\xf7\x21\x19\x48\x61\x68\xe6\x8c\x57\xd7\xe0\xcc\x43\x93\x6a\x86\x67\x2b\xf6\x3f\x7a\xae\xaf\x7b\x43\x3d\x1a\xb7\x18\x3c\x5a\xb7\x02\xa3\x0f\x41\xd3\x03\x42\x02\xeb\xdf\xf4\x66\x29\xd4\xf1\xa2\x17\x35\x98\x63\xbf\xd5\x93\x30\xa8\x1a\xa5\xef\x07\xc3\x3d\x15\x1a\x42\x1b\xb5\x60\xaa\xb7\x1d\x0e\x49\x89\xd2\x0c\x31\xbd\x83\x45\xf6\x46\x2d\x0c\x6b\xc1\x60\xe1\x40\x7c\x2b\x12\x1c\xdc\xc0\x2e\xd9\xdf\xb3\xfa\x73\x6f\x6c\x00\x07\xaf\x95\x02\x15\x21\x1b\x81\xc1\xcd\xf3\x77\xdf\xbf\xcf\x63\xba\x9f\xcd\x0e\x49\xd6\xf7\x78\xb4\xb0\xb4\x09\xb6\xe0\xda\x32\x45\xa7\xc1\xda\x15\x96\xdd\xdc\x5f\xf5\xe6\x79\x70\x8f\x5e\xa2\x8c\x91\x90\x8b\xbd\xd0\xa9\x8b\xc6\xa6\xdb\xed\x59\x72\xc8\x8d\x5d\xeb\x3b\xf8\x8d\x47\x7e\xbc\xc5\x1d\xb6\x04\x84\xc7\x04\x6e\xee\x90\xe1\x31\x1d\xd6\xb5\xbb\xca\x2c\xd8\x3b\x6c\x56\xaa\x15\xdd\x0e\x2a\x18\xec\x9b\x0a\x35\x9c\xd1\x3f\x3d\xa2\xd3\x1e\xe1\x8a\xde\x9b\xc5\x58\xad\x92\x98\xe4\x76\xf6\x05\xba\xf9\xb2\x02\x2a\x6a\xde\xcf\x5b\xc8\x87\x6e\xe2\x2d\x39\x51\x79\x7f\x14\x2d\x9f\x8c\x2a\x2c\x6b\xc2\x7d\x28\xbf\xc8\xa6\xce\xda\x38\xd8\xa3\xe7\x4e\x1b\x55\x5d\xe3\x2d\x58\x68\xdc\xe9\xdb\xd3\x99\xb2\x66\xef\xb0\x2c\xcb\x69\xc9\xde\xbd\xbf\x7a\x7d\xea\x03\xe3\x22\xe4\x6c\x30\x4c\x8d\xda\x9e\x63\x93\x69\x2b\x68\xb4\xc4\x58\x21\x75\xac\xf7\xa6\x82\xaf\xd8\x7c\xff\xcc\x07\x2d\x34\xf0\xfa\xf8\x56\x8b\xe8\x95\xb4\xbc\x33\xbe\x17\x98\xe3\xd8\xde\x88\x03\x0d\x8e\xc1\xb1\x28\x87\x45\xa3\x23\x8d\x27\x4c\x19\x04\x16\x77\xb3\x4b\x2e\x93\x5d\x35\x88\xf6\x6f\x04\x63\x9e\xc0\x24\x88\x07\xa8\x40\x93\xe9\xc0\xb5\x5a\x01\xe2\x42\x82\x64\x50\xd3\x5a\x35\x7d\x0d\x45\xed\xe8\x80\x5b\xf7\x8f\x41\xd3\xea\xbd\xd5\x1a\x92\x4e\x41\x45\x54\xc1\xcd\xa6\x79\x05\xee\x28\xdc\xa2\x9e\xe2\xcd\xea\x17\x1f\x6c\xf6\x9e\x4a\xa5\x6a\x48\xb9\x70\x5e\xd7\xc3\x0e\xd4\xd8\xdd\x8c\x16\x08\xc1\x96\xfc\x8f\x12\x87\x26\x64\x6c\x30\xdd\xa0\x6b\x1a\xc4\x92\xc2\x9a\x92\x4d\x71\xd6\x81\xff\x0b\xc2\xba\x5e\x93\x9e\x2a\xb6\xfd\x20\xf3\x1c\xa4\xed\xe6\xd1\xa6\x07\xdf\xf2\x6e\x07\x29\xbf\xff\x8e\xb7\x90\x4d\xd7\xa5\x17\xb3\x36\xc1\x8c\xb4\x9c\x69\x1b\xf4\x53\x75\x9d\xa6\x96\xa5\x60\xe0\xde\x7f\xcb\x68\x1b\xa7\x58\xfe\xf7\xc2\x3d\xbb\x57\xbe\x82\x4e\x03\x8e\x44\x3f\x0d\xfd\xf6\x88\xdb\xbd\x20\xc9\xf0\xe9\xbd\x41\x6d\xff\xe0\x4f\x3b\x9c\x65\xf4\x28\xc7\x0d\x70\x03\x63\x6d\xb5\x63\x27\xf3\x47\x19\x9e\x6f\xfb\xc9\xc6\x00\xb6\xa1\xbf\xe6\x9e\xba\x80\x55\x87\x00\x8f\x08\xf6\x7c\xe6\xb3\xdb\x07\xd3\x72\x7b\x94\x37\x79\xcb\xbb\x3d\xc7\xe0\x7b\x6f\xdc\xd1\xc8\x71\x73\xff\x1b\xc0\x4b\x7f\x1b\xcc\xde\xe3\x33\x68\x8a\x6b\xd8\x65\x60\xc4\x1b\xac\xfb\x1e\xc5\x95\xa8\x41\x5a\x31\x5f\x51\xb3\x3f\x8e\x00\x52\xd2\x42\xf2\x20\x10\x79\x63\x20\xd1\xcc\x0f\x3f\x00\x44\xe9\xc5\x71\x86\xd2\x11\x48\x31\x1e\xbd\x33\xac\x59\xf4\xfa\xa1\x10\xdf\x79\xe9\xeb\x6a\x05\x87\x98\x3e\x4b\x25\x17\x20\x79\x27\x1e\xaf\x68\xc1\xfd\xf1\xec\xe2\x9c\xbd\xba\x7c\xb3\xbd\xb1\xde\x59\x16\xa9\x99\x39\x4f\xf8\x3e\x8b\x7e\x3e\x8f\xcb\x39\x1d\xba\xde\xca\x91\x37\xf3\x3a\xc7\xe8\x11\xdb\x31\xdf\xdf\xa6\xc9\xdf\x20\x8d\x4f\x02\x72\xaa\x35\xc0\x43\x40\x9d\xd9\x37\x33\x68\x14\x4d\x4d\x19\xf3\xe4\x66\x80\xa9\x53\xff\x16\x56\x25\x68\x2e\xcd\x1c\x43\xd8\x52\x2a\x1b\xf2\xde\xb2\x5e\xfb\xd6\x46\x7e\xaf\xca\x47\xae\xfd\x4c\x66\xf2\x0c\x23\x08\x4f\xc0\xc5\x20\x37\xb8\xc8\x4e\xbc\x63\xd4\xe6\x2a\xe9\x9a\x1c\x5d\x54\x6b\x19\x50\xa9\x07\xb5\x58\x7e\xaf\x07\x7d\xa1\x23\xdb\xc6\xdf\xc2\xe6\x0e\xb1\xd6\xab\x9e\x3d\xa2\x33\x7c\xf1\xea\xbb\x7b\xec\xf1\x0b\x55\xbf\x12\x46\xf7\xf8\xd2\x77\x7d\xbd\x00\x1b\x69\x81\xd8\xc9\xe7\xd4\xce\x87\x9f\x01\x79\x0a\x74\xd2\x0a\x59\xf0\x1b\x2e\x1a\x3e\xdb\x79\xb2\x57\xca\x3b\xa2\xe8\x1c\x3b\x3d\xb2\x2f\xb6\x35\x18\xeb\x65\xef\x70\x97\x30\x9c\x91\x4b\x06\x37\x02\xdd\x93\xf2\x3c\xcd\x7e\xa1\x92\x62\x2e\x19\x9f\x19\xd5\xf4\x36\x6d\xaa\x69\xe6\x8d\xcf\x88\x97\xef\xc9\x63\x09\x8b\xaa\x39\x9b\x0e\x8e\xe4\x2b\xdf\x5b\xfe\xa5\xe8\x65\xf6\x5b\xbf\x51\x9c\x7f\xb5\x9e\x97\xcd\x1e\xfe\x8d\xb1\x12\x42\x61\x69\x03\x42\x45\x40\xcb\xaf\x43\x48\x56\x74\xfd\x3c\x56\xf4\x6f\x22\xc5\xd9\x9a\x8d\x51\xa1\x49\xeb\x30\xe2\x91\x30\xb8\x8e\x2d\xc2\xe1\x60\x89\x10\x89\xde\xc0\x63\xe4\x5a\xcf\xaf\x8f\xa7\x37\xd6\xca\xf5\xb0\x84\x6f\xe6\x4c\x3b\xfa\x19\xb1\x9d\x05\xb7\xb8\x31\x62\x21\xd7\xa6\x60\xe2\x31\xd2\x42\x6a\xed\xcf\x25\x3b\x97\xac\xe2\x3e\x3b\x18\x9f\x13\x06\xa7\xf6\x60\x81\x6d\x74\x62\x08\xa9\x58\xcc\x11\xbc\x4a\x52\x43\x58\x7b\x4b\x97\x12\x56\x28\x19\x86\x45\x7d\xa1\x14\x26\x0f\xbd\x23\x4b\x5a\x7c\xde\x37\xcc\x4f\x2f\x87\x2f\xd6\xd0\x77\x2d\xbc\xff\x0b\x1a\xf6\x0d\x93\x2a\x0e\x97\xf3\x01\x35\xc6\xfd\x08\xb6\x91\x8f\x5a\x0c\xa0\xa7\x44\xb3\x92\x03\xec\x0e\x3f\x12\x62\xc0\x3a\xcb\xc1\xe0\x3c\xba\x09\x33\x3e\x68\x4d\x5b\x3b\x12\x6d\x67\x80\xde\xc9\xda\x7c\x75\xa6\x61\x21\x8c\xd5\xab\xa7\xd0\x98\x4c\xb7\x53\xe4\xa5\xb4\xf7\xf4\x0c\x6f\xdc\xe7\x01\xb4\x9d\x5d\x1d\x26\xdc\xc6\x08\xf3\x08\xad\xe4\x7b\x2f\x1a\x35\x1b\xb4\x8d\x8d\xef\x79\x2e\x6b\xdf\x6a\x20\xe6\xc3\x65\xb3\x8f\x69\x79\x5b\x87\x96\xc4\x4a\x4d\x72\x78\xb8\xc9\xc4\x22\xfd\x35\x79\xc0\x51\x4e\x38\x96\x7c\x78\x80\x7b\xa3\x81\xba\x06\x0b\x55\x36\xb2\x34\x9f\xff\x21\xe6\x23\x2c\x30\x14\x20\xe1\x10\x07\x22\x59\xeb\xe1\x77\x39\xa5\x62\x88\xea\x30\x93\x32\x38\xa0\xf9\xb1\x6c\x03\x9c\x8b\x3b\xb0\x0d\x96\x69\x90\xe3\x20\x8c\xb1\xa1\xfa\xd9\x39\x51\x14\x0f\xc3\x86\x97\xc0\xa6\x17\xaa\xbe\xec\xa0\xba\x82\xd6\x41\x0c\x53\xa7\x50\xfa\x2a\x0e\x2c\x4d\x55\x0e\xf9\x72\xd3\xd2\x89\x86\xb2\x53\x75\x7c\x8f\xac\x0e\x01\x4d\x3d\x49\x45\x16\xf9\x3b\x59\x2f\x2e\xd5\x06\xf9\x37\x43\x51\xbf\xff\xb0\x97\xa8\x58\x0b\x7a\x81\xfd\x9b\xd5\x92\x5c\xb4\x8d\x7c\xcd\xc6\x3c\xe2\xc4\xf3\xf4\xb9\x1d\xca\xc2\xf9\x10\xa2\x9f\x6a\x3b\x71\xae\x3c\xee\x15\x65\xcb\xf0\xfb\x0e\x6b\x1f\x82\xb8\xdb\xf9\xe8\xb4\x6a\xc1\x2e\xa1\x7f\xf0\x70\x88\x87\x04\x66\x2f\xe2\x2e\x61\x74\x44\xde\x0e\x9e\xfe\x5a\x54\xaa\xed\xb8\xc5\x31\x4b\x21\xf8\x13\x3e\x20\x49\x2a\x95\xa8\xd6\xbd\xe5\xae\xfb\xad\x92\xc2\x2a\x3d\x8d\x06\x63\xea\xc8\x20\x2e\x09\xc3\x03\xbc\x1e\xad\x34\xef\xd6\xa3\xab\x21\x3b\x92\x87\x58\x73\x80\x03\x4f\x53\xc6\x85\xea\xff\x7c\x65\x92\x1f\x97\x40\xaf\xbd\x15\x95\x56\x17\x84\x2f\x5c\xf2\x2d\x3d\x5a\xb2\x7f\x9e\x7d\x78\x77\xfe\xee\xef\xfe\x9b\x53\xe8\x36\x66\x13\x2d\xc7\x8e\x91\xa6\x47\x63\xda\xd3\x27\x65\x16\xc2\x2e\xfb\x59\x59\xa9\xf6\xb8\x52\x1a\x94\x39\x4e\xb7\x57\x04\x30\x3f\x5e\xe4\x37\x8a\xbd\x60\xf8\xfb\x4f\x41\x7d\xc5\x3d\xb0\x6d\x49\x84\x38\xf8\x2c\x96\x9d\x41\x5d\xb2\xff\xa9\x7a\x44\x1a\x16\x7f\x76\xaa\x2e\x5a\x0f\x62\xd0\xbd\xbe\x7d\x33\xaa\xbf\x8d\x1b\x8e\xd3\x56\x85\x5d\x2a\x9f\x7c\xc8\x1e\x7a\x9f\x63\x15\x17\xdd\x58\x41\x8c\x7f\x31\xf4\x09\x44\x70\x33\x84\xed\x12\x52\x25\xe3\xf3\x0e\x4a\x70\xfb\x05\xe9\xbd\x36\xd8\xe9\x8e\x2d\x1f\xee\x2a\x8e\xef\x4c\xcb\x6c\x76\x55\x0e\xe8\x21\xe5\xc9\x09\xa8\x4c\x77\xf4\x4d\x53\x50\x7b\xf8\x63\xfa\x97\x7d\xd3\xb0\x4b\xdc\xc5\x93\x8d\xa1\xfc\xb4\xdb\x9e\xd1\xf6\x21\x04\xd1\xa9\x7a\x92\xe2\x37\x6b\x13\xca\x31\x4b\x61\xb5\x80\x9b\x75\x31\x4c\xa6\x17\x05\x75\x64\x1c\x0f\x1c\x6d\x31\x92\x0b\xf9\x76\xd9\x88\xee\x34\x01\xb8\xe5\xb2\x47\x55\xae\x34\x0e\x39\x47\xb3\x77\xa5\xfa\xfd\xac\x34\x8f\x44\x53\xde\xe0\x48\x23\x2a\xe3\xa6\xb8\x6c\x82\x2c\x80\x10\x0e\x38\xcd\x94\x54\xf8\xd2\xdc\x94\x6c\x68\x9a\xe4\x4c\xf0\x65\x56\xbb\x03\x1b\x17\xc5\x43\x6e\x4e\xd7\xd9\x9c\xac\xb3\x72\x92\x21\x7d\x39\xea\x6b\xc0\x45\x21\xed\xb4\xbe\x31\x7d\x1b\xa2\x51\xeb\x78\x15\xbe\xfc\xb3\xd3\x98\x12\xc3\x1e\xe5\x95\xea\x89\xa1\xe2\xc1\x87\x93\xdf\x47\xa0\x71\x07\xc4\x20\x1d\x9e\x6f\x42\xe0\x73\x19\x59\xdd\x31\x34\xdd\x7f\xc8\x94\xfc\xc1\x65\x0b\xdd\xe1\xce\x5f\xac\x5a\x23\x4d\x1c\x2b\xe6\x8b\xfa\x3d\xd1\x5c\xa8\x1a\x91\xdb\xc0\xdc\x32\x34\xb8\x09\x92\xf5\x84\x49\xc8\x3a\xf0\x6b\x90\xc9\x10\x1d\x25\xb9\x74\x3f\x03\x5f\x69\xe3\x53\x53\x85\x03\x0d\x74\x48\x46\xed\xd8\x2f\x2c\xe3\x24\xfd\x75\xab\xdb\x4f\x8d\x42\x74\xd6\x51\xe4\x4c\xe8\x3c\x74\x15\xb1\xaa\x27\x6e\x19\x15\xb1\x9f\xae\x90\x43\x36\x0d\xb3\x18\x99\x56\xee\x1a\xe5\x30\xcf\x25\xc3\xb7\x6a\x53\x46\xe6\x9e\xcc\xe8\xaf\xac\xc7\x5e\x9b\xa9\x12\xdd\x95\x88\xef\x0d\x81\x97\x82\x14\xa4\x51\xdd\x61\x57\x1d\xb0\xe9\x70\x60\x47\xad\xaa\x6b\xd0\xb4\xfc\x67\xa3\x64\x26\xc7\x7d\x29\xc8\xe3\x05\x1a\x7c\x95\xca\xc6\x10\x19\x9b\xfd\x2d\xf4\xfe\xdd\x25\x9f\x9e\x00\xe3\x66\x35\xd2\x5b\x5d\xbf\xcd\x53\xd3\x8d\x1d\x68\xc0\xd1\x0b\xd4\xa1\x30\xef\x31\xb4\xd1\x1b\x48\xe5\xea\xe8\x23\xec\xa0\x6b\xb7\xde\xc6\x07\xb7\xc8\x7d\x1f\x0a\xb5\x6b\x86\xec\x30\xd4\xe1\x7d\x95\xb1\x5e\x88\x3f\xfe\x35\xed\x3a\x6d\x63\x97\x01\x6a\x88\x88\x41\xde\xa0\x31\x05\x7d\x06\x7a\xd7\x6a\x6f\x77\x25\x57\x6f\x2e\x59\xf6\x16\xbe\x31\x61\x8d\xb8\x06\x36\x85\x7a\x01\xd3\x09\x9b\x76\xdc\x18\x3f\xcd\x8e\xa6\x44\x68\x00\x59\xe9\x55\x67\xa7\x63\x1d\x24\xc9\xe3\xdf\xec\x21\xc9\x86\x1d\xdc\xd1\x49\xe2\x8e\x91\x4d\x6a\x78\xc0\x31\xd6\x27\xb3\xe0\x2c\x84\x41\xcb\xcf\x1d\x90\x79\xf0\x77\x87\x6f\xb7\xbc\xeb\x18\x5c\xd7\xb0\x7a\x64\xd8\xfc\x7c\xa8\xaf\x43\x1f\x5a\x39\x4a\x0b\xbb\x7a\x08\x36\x83\xda\xfb\xca\xdb\xce\xea\xbe\xbf\x0e\xfa\xbc\x70\x7c\x30\xe4\x0a\xd2\xd7\x82\x83\xd9\x8d\x85\xbf\xa1\xae\x80\xb3\xf5\xcd\x58\xf8\xdb\x5c\xd0\x3c\xf8\xb8\x72\xc9\x72\xfb\x20\x72\xc0\x80\x77\x30\x30\x2c\x1a\xf0\x21\xbe\x50\xd8\x91\x0d\x5b\xcd\xbf\x40\x84\x93\xf4\x91\x8d\x35\xf5\xd2\x0a\x8b\x58\x5b\x02\x6f\xec\x92\xe1\x84\xa2\x98\xe2\x34\x50\xf5\xb1\x95\x31\x7c\x6e\x4e\xc9\xf2\x7c\x1e\xb6\x85\x06\x6b\x34\x31\x2f\x10\x3c\x83\x49\x12\x15\x9a\xb5\x7c\x15\x03\xce\xa1\x57\x2c\x3b\xa0\x5f\xfb\xe5\x19\xe6\x0c\xc2\xc7\xd0\x9c\xe8\x41\xc3\xee\x86\x37\xa2\x0e\x93\x14\x85\x5c\x20\x50\x4b\xa5\x63\xd9\x14\xd9\x7f\x07\xfe\xa7\x32\xda\x2f\xa5\xb9\xa9\x0e\x43\xf1\x0c\x0d\x4a\xf0\x21\x39\x21\xe7\x9a\x53\x1c\xcd\x49\x3a\x3f\xf7\x1a\xea\xe1\xa4\x96\xf5\x3a\x3a\x1a\x51\xf6\x38\x82\x47\x48\xc2\x73\xe1\x44\x5f\x2e\x4d\x77\xff\x3c\xc7\x40\x78\xfb\x0f\x74\xd4\xc0\x1b\x32\x20\xc3\x06\x4e\x7b\xcc\xe7\xa2\x0a\x05\x75\x58\xbc\xed\x64\xed\x2b\x52\x35\x79\x23\xf0\x07\x08\x8d\x65\xfe\xa5\x9d\x04\xc7\xd6\x53\x27\x83\x9f\x86\xa7\xa5\x1a\xf3\x47\x0b\xd3\x85\x8e\xfa\xef\x42\x7d\x7a\x1e\x9c\xed\x8d\xe3\x01\x32\x03\x24\x36\xa1\x29\x76\xe1\x48\xd5\x08\x25\xa1\x8e\xfd\xed\x14\x97\x95\xf1\x17\x7e\x31\xac\x3a\x4d\x90\x9d\x8e\x45\xb5\xae\xbf\x35\xc5\xda\x71\xcd\xb1\x63\x94\xff\xd8\x44\x02\x63\x67\xbe\xbe\xcc\x37\x24\xa4\x4e\x54\xcc\x89\xc2\x8d\x6a\x6e\x28\x9c\x47\xce\x8c\xe9\x67\x9f\x3d\xd8\xd5\x92\xcb\x05\x3c\x81\x40\xd2\x3a\x32\x76\x8c\xe9\x84\xde\x90\xb1\xeb\xb9\xeb\x6a\x50\xa0\x3a\x69\xf2\xf1\x23\xef\xc4\x42\xab\xbe\x3b\xfe\xe4\x5b\x24\x4e\x3f\x5d\x0b\x59\x9f\x7e\x8c\xf2\xe2\xf8\x13\xfa\x9f\x6b\x60\x3e\x9c\x34\xb7\x5a\xa2\xc3\xf9\x0e\x64\x5a\x6d\x4c\x19\x0a\x3e\x5f\x78\x38\x46\xaf\x4c\x18\x22\xc2\x6d\xf6\xd9\x13\x1a\xeb\x47\x16\x9a\xa2\xb8\x5b\x1a\xa7\x4d\x9f\x32\xcb\xcb\x79\x0e\x03\x66\x30\x7c\x92\xc4\xa5\x0f\x49\x8f\x87\x4a\x7c\x2e\x49\x0c\x13\x06\xa1\xbf\x97\xaf\x7f\xcb\x2a\xe6\xad\x71\x51\x3f\x44\x79\x6d\x64\xc3\x13\xb0\x9b\x7f\x9b\xbc\x16\x56\x89\x62\x42\x2b\x5c\xa8\x04\xa8\x43\xf9\x8a\x0f\x84\x0e\xbc\x2a\x55\x6f\x7c\x59\x7c\x6b\xc1\x7a\xa4\xaa\xc1\x47\xb8\xb9\x61\xef\x54\x0d\x17\x6e\xa1\xb0\xf4\x9f\x42\xf7\xf8\x63\xc5\x2e\x69\x83\x71\x5f\x6b\x88\xa6\x90\x19\xcd\x4b\x86\xc2\x57\x80\x28\x9a\x19\xd6\x52\xb1\x17\x06\xf1\x99\xf4\x75\x0c\x44\xc8\x9a\x3e\x45\xe1\x24\x7b\xac\x91\x70\x8a\xe8\xec\xe2\x9c\xb5\x5c\xf2\x05\xa4\xa1\x26\x1b\x60\xde\x11\x94\xff\x7f\x84\x3e\xbf\xb6\xaa\x7a\xe7\xef\x12\x5f\xf9\xcf\xce\xa5\x6f\x13\x93\x42\xb5\xdc\x7f\x7b\x25\x5c\xd3\xfa\x57\xe1\xf3\x50\xff\x6e\x73\xa2\x68\x64\xa2\x5d\xfa\x34\xa2\x5b\xdc\xdd\xb0\x30\xac\xeb\x67\x0d\x7d\xc2\x2b\x1b\xe8\x3a\xdc\x62\xc7\x71\x88\x38\x63\x2b\xad\x6f\xd2\xcc\xf5\xf1\x0f\xf0\x0f\x66\x7a\xc5\xb5\x8a\xaf\x3f\x91\xe3\xaf\x22\x14\x59\x0e\xac\x80\xd1\x43\xfa\x12\xd2\x12\x43\x5c\x29\x70\x62\x55\x03\xb1\x60\xe5\x91\xac\xab\xd8\x57\x81\xf9\x89\xab\xb8\xa3\x61\xc8\xac\x9b\x19\xee\xfc\x91\x34\x99\xf6\x60\xd6\x3b\x23\x12\x5d\x08\x9f\x24\x3c\x0c\xb1\x3e\x14\x93\xf1\x03\x5e\x58\x64\xe9\xc4\xa3\x21\x1d\xd9\x72\x5b\x2d\xd1\x20\xe2\x58\x52\xcf\x2e\x81\x28\x36\x18\x62\x1b\x11\x41\x73\x5c\x29\x59\x41\x67\xcd\xb1\x5f\x55\xc8\x45\x11\xea\xa7\x8e\x71\x9d\x82\xcb\xba\x48\xf8\x3b\x7e\xc6\xf2\x19\x36\x35\x58\x2e\x9a\xd0\xcd\x1f\x9f\xca\xca\x2b\xd2\x47\xc5\xb0\x83\xc5\x88\x56\x34\xdc\xf9\x41\x12\xab\x56\x83\x90\x73\x8c\x87\x60\x4f\x98\x28\xa1\x9c\xb0\xe9\x4f\xb0\xfa\xf8\xe2\x67\xde\xf4\xf0\xe9\xf4\xf5\x7c\x0e\x95\xfd\x78\x7a\x49\x9f\x03\xfb\x34\x9d\x78\x12\xa1\x4f\xe9\xe1\x97\xc2\xfe\xdd\x3b\x59\x31\xd3\xbc\xba\x06\x5f\x42\xcf\xe3\x88\x28\xde\x94\xf8\xd5\x5b\xf8\xc2\xdb\xce\xdd\x34\x2b\xd8\x14\x55\x8b\x56\x0d\x94\x43\xcc\xf8\xd6\x83\x77\xea\xd2\xa3\x7a\x1a\x9e\x5e\x7b\xd0\x8f\x44\xcd\x8b\xbd\x4e\xdf\xa9\xd7\x94\xc2\x3f\xfd\xd3\xc9\xc9\x09\xb9\x10\x05\x7d\xd3\xc1\x11\xff\x0b\x63\xea\xd3\x0b\x9c\x00\x96\xaf\x4f\xad\x31\x4f\x34\x1b\x4a\x17\xf7\x80\x74\x64\xfc\xf0\x27\x17\xfe\x7b\x63\x9e\x74\x60\x32\xb0\x54\xb7\xd3\x40\xe2\x6e\xcd\xab\xc7\xed\xf8\xbc\xa2\x1d\x76\xd1\xe4\x5e\x2c\x05\xa0\x72\x97\x2f\xa4\x21\x39\x15\xe4\x84\x45\xb3\x92\x08\xff\xb5\x95\x50\x8b\x90\xea\xe2\x66\xa4\xfa\xc7\x87\x8b\xc4\x12\x91\xb0\x67\x2c\x8b\x48\xfa\xdf\xa3\x35\x5a\xb8\xec\xc0\x7f\xc0\xd0\xb0\xa3\xa3\x1f\x39\x2c\x40\x1f\x1d\xf9\xa6\xd3\xab\x88\x4f\xf6\xff\x8d\x82\x35\xa3\x60\xe2\x1b\xac\x30\x3f\x15\x9e\x0f\xb1\xb7\xbc\x49\x79\xec\x3e\xc6\x3c\xbf\x07\xe4\xf9\x64\xd6\x8e\x13\x34\x31\xfa\x16\x41\x15\x9a\xb8\x63\xcd\x2d\x1f\xf4\x95\x86\x20\xcd\x48\x03\xc6\xe1\xc8\x34\x89\x1d\x21\xf2\x73\x48\x23\xbd\x79\xe0\x72\xea\x8e\xf6\xce\x38\xed\x8e\x74\x5e\xe5\xf0\x18\x14\xd7\x7a\xe7\xfe\x1f\xf2\xe4\xdc\x2b\x3e\xa7\x12\x4c\x83\xbd\x4a\x49\x63\xf7\xc6\xd6\xee\xb8\xe6\xed\x03\x17\x8f\x43\x12\xf0\xe5\x6c\x9b\xe7\x7b\x87\xcf\xfe\x6f\x00\x00\x00\xff\xff\xbf\x17\xd9\x4b\x69\x98\x00\x00"),
 		},
 	}
 	fs["/"].(*vfsgen۰DirInfo).entries = []os.FileInfo{
diff --git a/pkg/trait/affinity.go b/pkg/trait/affinity.go
index ff86dbdec..330bd5879 100644
--- a/pkg/trait/affinity.go
+++ b/pkg/trait/affinity.go
@@ -27,7 +27,6 @@ import (
 	"k8s.io/apimachinery/pkg/selection"
 
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
-	"github.com/apache/camel-k/pkg/util"
 )
 
 // Allows constraining which nodes the integration pod(s) are eligible to be scheduled on, based on labels on the node,
@@ -55,17 +54,17 @@ type affinityTrait struct {
 func newAffinityTrait() Trait {
 	return &affinityTrait{
 		BaseTrait:       NewBaseTrait("affinity", 1300),
-		PodAffinity:     util.BoolP(false),
-		PodAntiAffinity: util.BoolP(false),
+		PodAffinity:     BoolP(false),
+		PodAntiAffinity: BoolP(false),
 	}
 }
 
 func (t *affinityTrait) Configure(e *Environment) (bool, error) {
-	if util.IsNilOrFalse(t.Enabled) {
+	if IsNilOrFalse(t.Enabled) {
 		return false, nil
 	}
 
-	if util.IsTrue(t.PodAffinity) && util.IsTrue(t.PodAntiAffinity) {
+	if IsTrue(t.PodAffinity) && IsTrue(t.PodAntiAffinity) {
 		return false, fmt.Errorf("both pod affinity and pod anti-affinity can't be set simultaneously")
 	}
 
@@ -132,7 +131,7 @@ func (t *affinityTrait) addNodeAffinity(_ *Environment, podSpec *corev1.PodSpec)
 }
 
 func (t *affinityTrait) addPodAffinity(e *Environment, podSpec *corev1.PodSpec) error {
-	if util.IsNilOrFalse(t.PodAffinity) && len(t.PodAffinityLabels) == 0 {
+	if IsNilOrFalse(t.PodAffinity) && len(t.PodAffinityLabels) == 0 {
 		return nil
 	}
 
@@ -157,7 +156,7 @@ func (t *affinityTrait) addPodAffinity(e *Environment, podSpec *corev1.PodSpec)
 		}
 	}
 
-	if util.IsTrue(t.PodAffinity) {
+	if IsTrue(t.PodAffinity) {
 		labelSelectorRequirements = append(labelSelectorRequirements, metav1.LabelSelectorRequirement{
 			Key:      v1.IntegrationLabel,
 			Operator: metav1.LabelSelectorOpIn,
@@ -183,7 +182,7 @@ func (t *affinityTrait) addPodAffinity(e *Environment, podSpec *corev1.PodSpec)
 }
 
 func (t *affinityTrait) addPodAntiAffinity(e *Environment, podSpec *corev1.PodSpec) error {
-	if util.IsNilOrFalse(t.PodAntiAffinity) && len(t.PodAntiAffinityLabels) == 0 {
+	if IsNilOrFalse(t.PodAntiAffinity) && len(t.PodAntiAffinityLabels) == 0 {
 		return nil
 	}
 
@@ -208,7 +207,7 @@ func (t *affinityTrait) addPodAntiAffinity(e *Environment, podSpec *corev1.PodSp
 		}
 	}
 
-	if util.IsTrue(t.PodAntiAffinity) {
+	if IsTrue(t.PodAntiAffinity) {
 		labelSelectorRequirements = append(labelSelectorRequirements, metav1.LabelSelectorRequirement{
 			Key:      v1.IntegrationLabel,
 			Operator: metav1.LabelSelectorOpIn,
diff --git a/pkg/trait/builder.go b/pkg/trait/builder.go
index ec8280703..c4da97b44 100644
--- a/pkg/trait/builder.go
+++ b/pkg/trait/builder.go
@@ -58,7 +58,7 @@ func (t *builderTrait) InfluencesKit() bool {
 }
 
 func (t *builderTrait) Configure(e *Environment) (bool, error) {
-	if t.Enabled != nil && !*t.Enabled {
+	if IsFalse(t.Enabled) {
 		return false, nil
 	}
 
diff --git a/pkg/trait/camel.go b/pkg/trait/camel.go
index d64e54ceb..e02c78b08 100644
--- a/pkg/trait/camel.go
+++ b/pkg/trait/camel.go
@@ -45,7 +45,7 @@ func newCamelTrait() Trait {
 }
 
 func (t *camelTrait) Configure(e *Environment) (bool, error) {
-	if t.Enabled != nil && !*t.Enabled {
+	if IsFalse(t.Enabled) {
 		return false, errors.New("trait camel cannot be disabled")
 	}
 
diff --git a/pkg/trait/container.go b/pkg/trait/container.go
index 429d10425..c8df0fe11 100644
--- a/pkg/trait/container.go
+++ b/pkg/trait/container.go
@@ -22,6 +22,7 @@ import (
 	"path"
 	"sort"
 
+	"github.com/apache/camel-k/pkg/util/kubernetes"
 	appsv1 "k8s.io/api/apps/v1"
 	"k8s.io/api/batch/v1beta1"
 	corev1 "k8s.io/api/core/v1"
@@ -81,6 +82,8 @@ type containerTrait struct {
 
 	// ProbesEnabled enable/disable probes on the container (default `false`)
 	ProbesEnabled *bool `property:"probes-enabled" json:"probesEnabled,omitempty"`
+	// Scheme to use when connecting. Defaults to HTTP. Applies to the liveness probe.
+	LivenessScheme string `property:"liveness-scheme" json:"livenessScheme,omitempty"`
 	// Number of seconds after the container has started before liveness probes are initiated.
 	LivenessInitialDelay int32 `property:"liveness-initial-delay" json:"livenessInitialDelay,omitempty"`
 	// Number of seconds after which the probe times out. Applies to the liveness probe.
@@ -93,6 +96,8 @@ type containerTrait struct {
 	// Minimum consecutive failures for the probe to be considered failed after having succeeded.
 	// Applies to the liveness probe.
 	LivenessFailureThreshold int32 `property:"liveness-failure-threshold" json:"livenessFailureThreshold,omitempty"`
+	// Scheme to use when connecting. Defaults to HTTP. Applies to the readiness probe.
+	ReadinessScheme string `property:"readiness-scheme" json:"readinessScheme,omitempty"`
 	// Number of seconds after the container has started before readiness probes are initiated.
 	ReadinessInitialDelay int32 `property:"readiness-initial-delay" json:"readinessInitialDelay,omitempty"`
 	// Number of seconds after which the probe times out. Applies to the readiness probe.
@@ -114,12 +119,14 @@ func newContainerTrait() Trait {
 		ServicePort:     defaultServicePort,
 		ServicePortName: defaultContainerPortName,
 		Name:            defaultContainerName,
-		ProbesEnabled:   util.BoolP(false),
+		ProbesEnabled:   BoolP(false),
+		LivenessScheme:  string(corev1.URISchemeHTTP),
+		ReadinessScheme: string(corev1.URISchemeHTTP),
 	}
 }
 
 func (t *containerTrait) Configure(e *Environment) (bool, error) {
-	if t.Enabled != nil && !*t.Enabled {
+	if IsFalse(t.Enabled) {
 		return false, nil
 	}
 
@@ -127,7 +134,7 @@ func (t *containerTrait) Configure(e *Environment) (bool, error) {
 		return false, nil
 	}
 
-	if util.IsNilOrTrue(t.Auto) {
+	if IsNilOrTrue(t.Auto) {
 		if t.Expose == nil {
 			e := e.Resources.GetServiceForIntegration(e.Integration) != nil
 			t.Expose = &e
@@ -175,18 +182,18 @@ func (t *containerTrait) configureDependencies(e *Environment) error {
 			// Add some information for post-processing, this may need to be refactored
 			// to a proper data structure
 			kit.Labels = map[string]string{
-				"camel.apache.org/kit.type":             v1.IntegrationKitTypeExternal,
-				"camel.apache.org/created.by.kind":      v1.IntegrationKind,
-				"camel.apache.org/created.by.name":      e.Integration.Name,
-				"camel.apache.org/created.by.namespace": e.Integration.Namespace,
-				"camel.apache.org/created.by.version":   e.Integration.ResourceVersion,
+				"camel.apache.org/kit.type":           v1.IntegrationKitTypeExternal,
+				kubernetes.CamelCreatorLabelKind:      v1.IntegrationKind,
+				kubernetes.CamelCreatorLabelName:      e.Integration.Name,
+				kubernetes.CamelCreatorLabelNamespace: e.Integration.Namespace,
+				kubernetes.CamelCreatorLabelVersion:   e.Integration.ResourceVersion,
 			}
 
 			t.L.Infof("image %s", kit.Spec.Image)
 			e.Resources.Add(&kit)
 			e.Integration.SetIntegrationKit(&kit)
 		}
-		if util.IsTrue(t.ProbesEnabled) {
+		if IsTrue(t.ProbesEnabled) {
 			if capability, ok := e.CamelCatalog.Runtime.Capabilities[v1.CapabilityHealth]; ok {
 				for _, dependency := range capability.Dependencies {
 					util.StringSliceUniqueAdd(&e.Integration.Status.Dependencies, dependency.GetDependencyID())
@@ -226,7 +233,7 @@ func (t *containerTrait) configureContainer(e *Environment) error {
 
 	t.configureResources(e, &container)
 
-	if t.Expose != nil && *t.Expose {
+	if IsTrue(t.Expose) {
 		t.configureService(e, &container)
 	}
 	t.configureCapabilities(e)
@@ -237,7 +244,7 @@ func (t *containerTrait) configureContainer(e *Environment) error {
 	}
 	// Deployment
 	if err := e.Resources.VisitDeploymentE(func(deployment *appsv1.Deployment) error {
-		if util.IsTrue(t.ProbesEnabled) && portName == defaultContainerPortName {
+		if IsTrue(t.ProbesEnabled) && portName == defaultContainerPortName {
 			t.configureProbes(&container, t.Port, defaultProbePath)
 		}
 
@@ -264,7 +271,7 @@ func (t *containerTrait) configureContainer(e *Environment) error {
 
 	// Knative Service
 	if err := e.Resources.VisitKnativeServiceE(func(service *serving.Service) error {
-		if util.IsTrue(t.ProbesEnabled) && portName == defaultContainerPortName {
+		if IsTrue(t.ProbesEnabled) && portName == defaultContainerPortName {
 			// don't set the port on Knative service as it is not allowed.
 			t.configureProbes(&container, 0, defaultProbePath)
 		}
@@ -303,7 +310,7 @@ func (t *containerTrait) configureContainer(e *Environment) error {
 
 	// CronJob
 	if err := e.Resources.VisitCronJobE(func(cron *v1beta1.CronJob) error {
-		if util.IsTrue(t.ProbesEnabled) && portName == defaultContainerPortName {
+		if IsTrue(t.ProbesEnabled) && portName == defaultContainerPortName {
 			t.configureProbes(&container, t.Port, defaultProbePath)
 		}
 
@@ -433,6 +440,7 @@ func (t *containerTrait) configureProbes(container *corev1.Container, port int,
 func (t *containerTrait) newLivenessProbe(port int, path string) *corev1.Probe {
 	action := corev1.HTTPGetAction{}
 	action.Path = path
+	action.Scheme = corev1.URIScheme(t.LivenessScheme)
 
 	if port > 0 {
 		action.Port = intstr.FromInt(port)
@@ -457,8 +465,9 @@ func (t *containerTrait) newReadinessProbe(port int, path string) *corev1.Probe
 	p := corev1.Probe{
 		Handler: corev1.Handler{
 			HTTPGet: &corev1.HTTPGetAction{
-				Port: intstr.FromInt(port),
-				Path: path,
+				Port:   intstr.FromInt(port),
+				Path:   path,
+				Scheme: corev1.URIScheme(t.ReadinessScheme),
 			},
 		},
 	}
diff --git a/pkg/trait/cron.go b/pkg/trait/cron.go
index daf92499f..45a325e47 100644
--- a/pkg/trait/cron.go
+++ b/pkg/trait/cron.go
@@ -114,7 +114,7 @@ func newCronTrait() Trait {
 }
 
 func (t *cronTrait) Configure(e *Environment) (bool, error) {
-	if t.Enabled != nil && !*t.Enabled {
+	if IsFalse(t.Enabled) {
 		e.Integration.Status.SetCondition(
 			v1.IntegrationConditionCronJobAvailable,
 			corev1.ConditionFalse,
@@ -140,7 +140,7 @@ func (t *cronTrait) Configure(e *Environment) (bool, error) {
 		return false, nil
 	}
 
-	if t.Auto == nil || *t.Auto {
+	if IsNilOrTrue(t.Auto) {
 		globalCron, err := t.getGlobalCron(e)
 		if err != nil {
 			e.Integration.Status.SetErrorCondition(
@@ -175,8 +175,7 @@ func (t *cronTrait) Configure(e *Environment) (bool, error) {
 			}
 			for _, fromURI := range fromURIs {
 				if uri.GetComponent(fromURI) == genericCronComponent {
-					_true := true
-					t.Fallback = &_true
+					t.Fallback = BoolP(true)
 					break
 				}
 			}
@@ -184,7 +183,7 @@ func (t *cronTrait) Configure(e *Environment) (bool, error) {
 	}
 
 	// Fallback strategy can be implemented in any other controller
-	if t.Fallback != nil && *t.Fallback {
+	if IsTrue(t.Fallback) {
 		if e.IntegrationInPhase(v1.IntegrationPhaseDeploying) {
 			e.Integration.Status.SetCondition(
 				v1.IntegrationConditionCronJobAvailable,
@@ -225,7 +224,7 @@ func (t *cronTrait) Apply(e *Environment) error {
 	if e.IntegrationInPhase(v1.IntegrationPhaseInitialization) {
 		util.StringSliceUniqueAdd(&e.Integration.Status.Capabilities, v1.CapabilityCron)
 
-		if t.Fallback != nil && *t.Fallback {
+		if IsTrue(t.Fallback) {
 			fallbackArtifact := e.CamelCatalog.GetArtifactByScheme(genericCronComponentFallbackScheme)
 			if fallbackArtifact == nil {
 				return fmt.Errorf("no fallback artifact for scheme %q has been found in camel catalog", genericCronComponentFallbackScheme)
@@ -235,7 +234,7 @@ func (t *cronTrait) Apply(e *Environment) error {
 		}
 	}
 
-	if (t.Fallback == nil || !*t.Fallback) && e.IntegrationInPhase(v1.IntegrationPhaseDeploying) {
+	if IsNilOrFalse(t.Fallback) && e.IntegrationInPhase(v1.IntegrationPhaseDeploying) {
 		if e.ApplicationProperties == nil {
 			e.ApplicationProperties = make(map[string]string)
 		}
@@ -312,16 +311,16 @@ func (t *cronTrait) getCronJobFor(e *Environment) *v1beta1.CronJob {
 // SelectControllerStrategy can be used to check if a CronJob can be generated given the integration and trait settings
 func (t *cronTrait) SelectControllerStrategy(e *Environment) (*ControllerStrategy, error) {
 	cronStrategy := ControllerStrategyCronJob
-	if t.Enabled != nil && !*t.Enabled {
+	if IsFalse(t.Enabled) {
 		return nil, nil
 	}
-	if t.Fallback != nil && *t.Fallback {
+	if IsTrue(t.Fallback) {
 		return nil, nil
 	}
 	if t.Schedule != "" {
 		return &cronStrategy, nil
 	}
-	if t.Auto == nil || *t.Auto {
+	if IsNilOrTrue(t.Auto) {
 		globalCron, err := t.getGlobalCron(e)
 		if err == nil && globalCron != nil {
 			return &cronStrategy, nil
diff --git a/pkg/trait/dependencies.go b/pkg/trait/dependencies.go
index 994d046b4..b5fd7a9ad 100644
--- a/pkg/trait/dependencies.go
+++ b/pkg/trait/dependencies.go
@@ -41,7 +41,7 @@ func newDependenciesTrait() Trait {
 }
 
 func (t *dependenciesTrait) Configure(e *Environment) (bool, error) {
-	if t.Enabled != nil && !*t.Enabled {
+	if IsFalse(t.Enabled) {
 		return false, nil
 	}
 
diff --git a/pkg/trait/deployer.go b/pkg/trait/deployer.go
index ba4f37857..301d7d066 100644
--- a/pkg/trait/deployer.go
+++ b/pkg/trait/deployer.go
@@ -170,7 +170,7 @@ func isIncompatibleServerError(err error) bool {
 }
 
 func (t *deployerTrait) SelectControllerStrategy(e *Environment) (*ControllerStrategy, error) {
-	if t.Enabled != nil && !*t.Enabled {
+	if IsFalse(t.Enabled) {
 		return nil, nil
 	}
 	if t.Kind != "" {
diff --git a/pkg/trait/deployment.go b/pkg/trait/deployment.go
index 11d24c6f8..cf788e790 100644
--- a/pkg/trait/deployment.go
+++ b/pkg/trait/deployment.go
@@ -44,7 +44,7 @@ func newDeploymentTrait() Trait {
 }
 
 func (t *deploymentTrait) Configure(e *Environment) (bool, error) {
-	if t.Enabled != nil && !*t.Enabled {
+	if IsFalse(t.Enabled) {
 		e.Integration.Status.SetCondition(
 			v1.IntegrationConditionDeploymentAvailable,
 			corev1.ConditionFalse,
@@ -86,7 +86,7 @@ func (t *deploymentTrait) Configure(e *Environment) (bool, error) {
 }
 
 func (t *deploymentTrait) SelectControllerStrategy(e *Environment) (*ControllerStrategy, error) {
-	if t.Enabled != nil && !*t.Enabled {
+	if IsFalse(t.Enabled) {
 		return nil, nil
 	}
 	deploymentStrategy := ControllerStrategyDeployment
diff --git a/pkg/trait/environment.go b/pkg/trait/environment.go
index bfc8cae57..6ea9e9bf7 100644
--- a/pkg/trait/environment.go
+++ b/pkg/trait/environment.go
@@ -19,7 +19,6 @@ package trait
 
 import (
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
-	"github.com/apache/camel-k/pkg/util"
 	"github.com/apache/camel-k/pkg/util/defaults"
 	"github.com/apache/camel-k/pkg/util/envvar"
 )
@@ -54,12 +53,12 @@ const (
 func newEnvironmentTrait() Trait {
 	return &environmentTrait{
 		BaseTrait:     NewBaseTrait("environment", 800),
-		ContainerMeta: util.BoolP(true),
+		ContainerMeta: BoolP(true),
 	}
 }
 
 func (t *environmentTrait) Configure(e *Environment) (bool, error) {
-	if t.Enabled == nil || *t.Enabled {
+	if IsNilOrTrue(t.Enabled) {
 		return e.IntegrationInPhase(v1.IntegrationPhaseDeploying, v1.IntegrationPhaseRunning), nil
 	}
 
@@ -75,7 +74,7 @@ func (t *environmentTrait) Apply(e *Environment) error {
 	envvar.SetVal(&e.EnvVars, envVarMountPathConfigMaps, configConfigmapsMountPath)
 	envvar.SetVal(&e.EnvVars, envVarMountPathSecrets, configSecretsMountPath)
 
-	if util.IsNilOrTrue(t.ContainerMeta) {
+	if IsNilOrTrue(t.ContainerMeta) {
 		envvar.SetValFrom(&e.EnvVars, envVarNamespace, "metadata.namespace")
 		envvar.SetValFrom(&e.EnvVars, envVarPodName, "metadata.name")
 	}
diff --git a/pkg/trait/error_handler.go b/pkg/trait/error_handler.go
index aa59b4e51..547ac5243 100644
--- a/pkg/trait/error_handler.go
+++ b/pkg/trait/error_handler.go
@@ -44,7 +44,7 @@ func (t *errorHandlerTrait) IsPlatformTrait() bool {
 }
 
 func (t *errorHandlerTrait) Configure(e *Environment) (bool, error) {
-	if t.Enabled != nil && !*t.Enabled {
+	if IsFalse(t.Enabled) {
 		return false, nil
 	}
 
diff --git a/pkg/trait/gc.go b/pkg/trait/gc.go
index 9c8380ba7..59210ea16 100644
--- a/pkg/trait/gc.go
+++ b/pkg/trait/gc.go
@@ -73,7 +73,7 @@ func newGarbageCollectorTrait() Trait {
 }
 
 func (t *garbageCollectorTrait) Configure(e *Environment) (bool, error) {
-	if t.Enabled != nil && !*t.Enabled {
+	if IsFalse(t.Enabled) {
 		return false, nil
 	}
 
diff --git a/pkg/trait/ingress.go b/pkg/trait/ingress.go
index 9ecb4aa22..c1f8207bc 100644
--- a/pkg/trait/ingress.go
+++ b/pkg/trait/ingress.go
@@ -57,7 +57,7 @@ func (t *ingressTrait) IsAllowedInProfile(profile v1.TraitProfile) bool {
 }
 
 func (t *ingressTrait) Configure(e *Environment) (bool, error) {
-	if t.Enabled != nil && !*t.Enabled {
+	if IsFalse(t.Enabled) {
 		e.Integration.Status.SetCondition(
 			v1.IntegrationConditionExposureAvailable,
 			corev1.ConditionFalse,
@@ -71,7 +71,7 @@ func (t *ingressTrait) Configure(e *Environment) (bool, error) {
 		return false, nil
 	}
 
-	if t.Auto == nil || *t.Auto {
+	if IsNilOrTrue(t.Auto) {
 		hasService := e.Resources.GetUserServiceForIntegration(e.Integration) != nil
 		hasHost := t.Host != ""
 		enabled := hasService && hasHost
diff --git a/pkg/trait/init.go b/pkg/trait/init.go
index afd9d3231..466c24e49 100644
--- a/pkg/trait/init.go
+++ b/pkg/trait/init.go
@@ -41,7 +41,7 @@ func newInitTrait() Trait {
 }
 
 func (t *initTrait) Configure(e *Environment) (bool, error) {
-	if t.Enabled != nil && !*t.Enabled {
+	if IsFalse(t.Enabled) {
 		return false, errors.New("trait init cannot be disabled")
 	}
 
diff --git a/pkg/trait/istio.go b/pkg/trait/istio.go
index 2c26a6044..f6fc9510b 100644
--- a/pkg/trait/istio.go
+++ b/pkg/trait/istio.go
@@ -52,7 +52,7 @@ func newIstioTrait() Trait {
 }
 
 func (t *istioTrait) Configure(e *Environment) (bool, error) {
-	if t.Enabled != nil && *t.Enabled {
+	if IsTrue(t.Enabled) {
 		return e.IntegrationInPhase(v1.IntegrationPhaseDeploying, v1.IntegrationPhaseRunning), nil
 	}
 
diff --git a/pkg/trait/jolokia.go b/pkg/trait/jolokia.go
index 6f4270059..f06bda80b 100644
--- a/pkg/trait/jolokia.go
+++ b/pkg/trait/jolokia.go
@@ -75,7 +75,7 @@ func newJolokiaTrait() Trait {
 }
 
 func (t *jolokiaTrait) Configure(e *Environment) (bool, error) {
-	return t.Enabled != nil && *t.Enabled && e.IntegrationInPhase(
+	return IsTrue(t.Enabled) && e.IntegrationInPhase(
 		v1.IntegrationPhaseInitialization,
 		v1.IntegrationPhaseDeploying,
 		v1.IntegrationPhaseRunning,
diff --git a/pkg/trait/jvm.go b/pkg/trait/jvm.go
index 1371e0378..b31bca69d 100644
--- a/pkg/trait/jvm.go
+++ b/pkg/trait/jvm.go
@@ -62,12 +62,12 @@ func newJvmTrait() Trait {
 	return &jvmTrait{
 		BaseTrait:    NewBaseTrait("jvm", 2000),
 		DebugAddress: "*:5005",
-		PrintCommand: util.BoolP(true),
+		PrintCommand: BoolP(true),
 	}
 }
 
 func (t *jvmTrait) Configure(e *Environment) (bool, error) {
-	if t.Enabled != nil && !*t.Enabled {
+	if IsFalse(t.Enabled) {
 		return false, nil
 	}
 
@@ -132,9 +132,9 @@ func (t *jvmTrait) Apply(e *Environment) error {
 	args := container.Args
 
 	// Remote debugging
-	if util.IsTrue(t.Debug) {
+	if IsTrue(t.Debug) {
 		suspend := "n"
-		if util.IsTrue(t.DebugSuspend) {
+		if IsTrue(t.DebugSuspend) {
 			suspend = "y"
 		}
 		args = append(args,
@@ -184,7 +184,7 @@ func (t *jvmTrait) Apply(e *Environment) error {
 	args = append(args, "-cp", strings.Join(items, ":"))
 	args = append(args, e.CamelCatalog.Runtime.ApplicationClass)
 
-	if util.IsNilOrTrue(t.PrintCommand) {
+	if IsNilOrTrue(t.PrintCommand) {
 		args = append([]string{"exec", "java"}, args...)
 		container.Command = []string{"/bin/sh", "-c"}
 		cmd := strings.Join(args, " ")
diff --git a/pkg/trait/kamelets.go b/pkg/trait/kamelets.go
index 2a3a2cf56..6b0b2a824 100644
--- a/pkg/trait/kamelets.go
+++ b/pkg/trait/kamelets.go
@@ -20,12 +20,13 @@ package trait
 import (
 	"errors"
 	"fmt"
-	"github.com/apache/camel-k/pkg/util/source"
 	"regexp"
 	"sort"
 	"strconv"
 	"strings"
 
+	"github.com/apache/camel-k/pkg/util/source"
+
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
 	"github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
 	kameletutils "github.com/apache/camel-k/pkg/kamelet"
@@ -87,7 +88,7 @@ func (t *kameletsTrait) IsPlatformTrait() bool {
 }
 
 func (t *kameletsTrait) Configure(e *Environment) (bool, error) {
-	if t.Enabled != nil && !*t.Enabled {
+	if IsFalse(t.Enabled) {
 		return false, nil
 	}
 
@@ -95,7 +96,7 @@ func (t *kameletsTrait) Configure(e *Environment) (bool, error) {
 		return false, nil
 	}
 
-	if t.Auto == nil || *t.Auto {
+	if IsNilOrTrue(t.Auto) {
 		var kamelets []string
 		if t.List == "" {
 			sources, err := kubernetes.ResolveIntegrationSources(e.C, e.Client, e.Integration, e.Resources)
diff --git a/pkg/trait/knative.go b/pkg/trait/knative.go
index 6a9018c8d..a76ae5700 100644
--- a/pkg/trait/knative.go
+++ b/pkg/trait/knative.go
@@ -104,7 +104,7 @@ func (t *knativeTrait) IsAllowedInProfile(profile v1.TraitProfile) bool {
 }
 
 func (t *knativeTrait) Configure(e *Environment) (bool, error) {
-	if util.IsFalse(t.Enabled) {
+	if IsFalse(t.Enabled) {
 		return false, nil
 	}
 
@@ -112,7 +112,7 @@ func (t *knativeTrait) Configure(e *Environment) (bool, error) {
 		return false, nil
 	}
 
-	if util.IsNilOrTrue(t.Auto) {
+	if IsNilOrTrue(t.Auto) {
 		if len(t.ChannelSources) == 0 {
 			items := make([]string, 0)
 			sources, err := kubernetes.ResolveIntegrationSources(e.C, e.Client, e.Integration, e.Resources)
@@ -193,8 +193,7 @@ func (t *knativeTrait) Configure(e *Environment) (bool, error) {
 		}
 		if t.FilterSourceChannels == nil {
 			// Filtering is no longer used by default
-			filter := false
-			t.FilterSourceChannels = &filter
+			t.FilterSourceChannels = BoolP(false)
 		}
 		if t.SinkBinding == nil {
 			allowed := t.isSinkBindingAllowed(e)
@@ -206,7 +205,7 @@ func (t *knativeTrait) Configure(e *Environment) (bool, error) {
 }
 
 func (t *knativeTrait) Apply(e *Environment) error {
-	if util.IsTrue(t.SinkBinding) {
+	if IsTrue(t.SinkBinding) {
 		util.StringSliceUniqueAdd(&e.Integration.Status.Dependencies, "mvn:org.apache.camel.k:camel-k-knative")
 	}
 
@@ -264,7 +263,7 @@ func (t *knativeTrait) configureChannels(e *Environment, env *knativeapi.CamelEn
 				knativeapi.CamelMetaKnativeKind:       ref.Kind,
 				knativeapi.CamelMetaKnativeReply:      "false",
 			}
-			if util.IsTrue(t.FilterSourceChannels) {
+			if IsTrue(t.FilterSourceChannels) {
 				meta[knativeapi.CamelMetaFilterPrefix+knativeHistoryHeader] = loc.Host
 			}
 			svc := knativeapi.CamelServiceDefinition{
@@ -285,7 +284,7 @@ func (t *knativeTrait) configureChannels(e *Environment, env *knativeapi.CamelEn
 		return err
 	}
 
-	if util.IsNilOrFalse(t.SinkBinding) {
+	if IsNilOrFalse(t.SinkBinding) {
 		// Sinks
 		err = t.ifServiceMissingDo(e, env, t.ChannelSinks, knativeapi.CamelServiceTypeChannel, knativeapi.CamelEndpointKindSink,
 			func(ref *corev1.ObjectReference, serviceURI string, urlProvider func() (*url.URL, error)) error {
@@ -345,7 +344,7 @@ func (t *knativeTrait) configureEndpoints(e *Environment, env *knativeapi.CamelE
 	}
 
 	// Sinks
-	if util.IsNilOrFalse(t.SinkBinding) {
+	if IsNilOrFalse(t.SinkBinding) {
 		err := t.ifServiceMissingDo(e, env, t.EndpointSinks, knativeapi.CamelServiceTypeEndpoint, knativeapi.CamelEndpointKindSink,
 			func(ref *corev1.ObjectReference, serviceURI string, urlProvider func() (*url.URL, error)) error {
 				loc, err := urlProvider()
@@ -403,7 +402,7 @@ func (t *knativeTrait) configureEvents(e *Environment, env *knativeapi.CamelEnvi
 	}
 
 	// Sinks
-	if util.IsNilOrFalse(t.SinkBinding) {
+	if IsNilOrFalse(t.SinkBinding) {
 		err = t.ifServiceMissingDo(e, env, t.EventSinks, knativeapi.CamelServiceTypeEvent, knativeapi.CamelEndpointKindSink,
 			func(ref *corev1.ObjectReference, serviceURI string, urlProvider func() (*url.URL, error)) error {
 				loc, err := urlProvider()
@@ -444,7 +443,7 @@ func (t *knativeTrait) isSinkBindingAllowed(e *Environment) bool {
 }
 
 func (t *knativeTrait) configureSinkBinding(e *Environment, env *knativeapi.CamelEnvironment) error {
-	if util.IsNilOrFalse(t.SinkBinding) {
+	if IsNilOrFalse(t.SinkBinding) {
 		return nil
 	}
 	var serviceType knativeapi.CamelServiceType
diff --git a/pkg/trait/knative_service.go b/pkg/trait/knative_service.go
index 9cc77aaf6..a86e7bd08 100644
--- a/pkg/trait/knative_service.go
+++ b/pkg/trait/knative_service.go
@@ -91,7 +91,7 @@ func (t *knativeServiceTrait) IsAllowedInProfile(profile v1.TraitProfile) bool {
 }
 
 func (t *knativeServiceTrait) Configure(e *Environment) (bool, error) {
-	if t.Enabled != nil && !*t.Enabled {
+	if IsFalse(t.Enabled) {
 		e.Integration.Status.SetCondition(
 			v1.IntegrationConditionKnativeServiceAvailable,
 			corev1.ConditionFalse,
@@ -139,7 +139,7 @@ func (t *knativeServiceTrait) Configure(e *Environment) (bool, error) {
 		return false, nil
 	}
 
-	if t.Auto == nil || *t.Auto {
+	if IsNilOrTrue(t.Auto) {
 		// Check the right value for minScale, as not all services are allowed to scale down to 0
 		if t.MinScale == nil {
 			sources, err := kubernetes.ResolveIntegrationSources(t.Ctx, t.Client, e.Integration, e.Resources)
diff --git a/pkg/trait/logging.go b/pkg/trait/logging.go
index d092aacb8..90e107b4c 100644
--- a/pkg/trait/logging.go
+++ b/pkg/trait/logging.go
@@ -59,7 +59,7 @@ func newLoggingTraitTrait() Trait {
 }
 
 func (l loggingTrait) Configure(environment *Environment) (bool, error) {
-	if util.IsFalse(l.Enabled) {
+	if IsFalse(l.Enabled) {
 		return false, nil
 	}
 
@@ -69,7 +69,7 @@ func (l loggingTrait) Configure(environment *Environment) (bool, error) {
 
 func (l loggingTrait) Apply(environment *Environment) error {
 	if environment.IntegrationInPhase(v1.IntegrationPhaseInitialization) {
-		if util.IsTrue(l.Json) {
+		if IsTrue(l.Json) {
 			if environment.Integration.Status.Dependencies == nil {
 				environment.Integration.Status.Dependencies = make([]string, 0)
 			}
@@ -85,13 +85,17 @@ func (l loggingTrait) Apply(environment *Environment) error {
 		envvar.SetVal(&environment.EnvVars, envVarQuarkusLogConsoleFormat, l.Format)
 	}
 
-	if util.IsTrue(l.Json) {
+	if IsTrue(l.Json) {
 		envvar.SetVal(&environment.EnvVars, envVarQuarkusLogConsoleJson, True)
-		if util.IsTrue(l.JsonPrettyPrint) {
+		if IsTrue(l.JsonPrettyPrint) {
 			envvar.SetVal(&environment.EnvVars, envVarQuarkusLogConsoleJsonPrettyPrint, True)
 		}
-	} else if util.IsNilOrTrue(l.Color) {
-		envvar.SetVal(&environment.EnvVars, envVarQuarkusLogConsoleColor, True)
+	} else {
+		envvar.SetVal(&environment.EnvVars, envVarQuarkusLogConsoleJson, False)
+
+		if IsNilOrTrue(l.Color) {
+			envvar.SetVal(&environment.EnvVars, envVarQuarkusLogConsoleColor, True)
+		}
 	}
 
 	return nil
diff --git a/pkg/trait/openapi.go b/pkg/trait/openapi.go
index 8ad421efd..11d63d262 100644
--- a/pkg/trait/openapi.go
+++ b/pkg/trait/openapi.go
@@ -64,7 +64,7 @@ func (t *openAPITrait) IsPlatformTrait() bool {
 }
 
 func (t *openAPITrait) Configure(e *Environment) (bool, error) {
-	if t.Enabled != nil && !*t.Enabled {
+	if IsFalse(t.Enabled) {
 		return false, nil
 	}
 
diff --git a/pkg/trait/owner.go b/pkg/trait/owner.go
index c821e0264..baf3b4517 100644
--- a/pkg/trait/owner.go
+++ b/pkg/trait/owner.go
@@ -44,7 +44,7 @@ func newOwnerTrait() Trait {
 }
 
 func (t *ownerTrait) Configure(e *Environment) (bool, error) {
-	if t.Enabled != nil && !*t.Enabled {
+	if IsFalse(t.Enabled) {
 		return false, nil
 	}
 
@@ -78,17 +78,22 @@ func (t *ownerTrait) Apply(e *Environment) error {
 	}
 
 	e.Resources.VisitMetaObject(func(res metav1.Object) {
-		references := []metav1.OwnerReference{
-			{
-				APIVersion:         e.Integration.APIVersion,
-				Kind:               e.Integration.Kind,
-				Name:               e.Integration.Name,
-				UID:                e.Integration.UID,
-				Controller:         &controller,
-				BlockOwnerDeletion: &blockOwnerDeletion,
-			},
+		// Cross-namespace references are forbidden and also asynchronously refused
+		// by the api server (sometimes no error is thrown but the resource is not created).
+		// Ref: https://github.com/kubernetes/kubernetes/issues/65200
+		if res.GetNamespace() == "" || res.GetNamespace() == e.Integration.Namespace {
+			references := []metav1.OwnerReference{
+				{
+					APIVersion:         e.Integration.APIVersion,
+					Kind:               e.Integration.Kind,
+					Name:               e.Integration.Name,
+					UID:                e.Integration.UID,
+					Controller:         &controller,
+					BlockOwnerDeletion: &blockOwnerDeletion,
+				},
+			}
+			res.SetOwnerReferences(references)
 		}
-		res.SetOwnerReferences(references)
 
 		// Transfer annotations
 		t.propagateLabelAndAnnotations(res, targetLabels, targetAnnotations)
diff --git a/pkg/trait/pdb.go b/pkg/trait/pdb.go
index 6569c93b3..f862dae36 100644
--- a/pkg/trait/pdb.go
+++ b/pkg/trait/pdb.go
@@ -49,7 +49,7 @@ func newPdbTrait() Trait {
 }
 
 func (t *pdbTrait) Configure(e *Environment) (bool, error) {
-	if t.Enabled == nil || !*t.Enabled {
+	if IsNilOrFalse(t.Enabled) {
 		return false, nil
 	}
 
@@ -86,7 +86,7 @@ func (t *pdbTrait) Apply(e *Environment) error {
 func (t *pdbTrait) podDisruptionBudgetFor(integration *v1.Integration) *v1beta1.PodDisruptionBudget {
 	pdb := &v1beta1.PodDisruptionBudget{
 		TypeMeta: metav1.TypeMeta{
-			Kind: "PodDisruptionBudget",
+			Kind:       "PodDisruptionBudget",
 			APIVersion: v1beta1.SchemeGroupVersion.String(),
 		},
 		ObjectMeta: metav1.ObjectMeta{
diff --git a/pkg/trait/platform.go b/pkg/trait/platform.go
index 854bd4619..525d9cdfc 100644
--- a/pkg/trait/platform.go
+++ b/pkg/trait/platform.go
@@ -48,7 +48,7 @@ func newPlatformTrait() Trait {
 }
 
 func (t *platformTrait) Configure(e *Environment) (bool, error) {
-	if t.Enabled != nil && !*t.Enabled {
+	if IsFalse(t.Enabled) {
 		return false, nil
 	}
 
@@ -56,7 +56,7 @@ func (t *platformTrait) Configure(e *Environment) (bool, error) {
 		return false, nil
 	}
 
-	if t.Auto == nil || !*t.Auto {
+	if IsNilOrFalse(t.Auto) {
 		if e.Platform == nil {
 			if t.CreateDefault == nil {
 				// Calculate if the platform should be automatically created when missing.
@@ -102,13 +102,13 @@ func (t *platformTrait) Apply(e *Environment) error {
 func (t *platformTrait) getOrCreatePlatform(e *Environment) (*v1.IntegrationPlatform, error) {
 	pl, err := platform.GetOrFind(t.Ctx, t.Client, e.Integration.Namespace, e.Integration.Status.Platform, false)
 	if err != nil && k8serrors.IsNotFound(err) {
-		if t.CreateDefault != nil && *t.CreateDefault {
+		if IsTrue(t.CreateDefault) {
 			platformName := e.Integration.Status.Platform
 			if platformName == "" {
 				platformName = platform.DefaultPlatformName
 			}
 			namespace := e.Integration.Namespace
-			if t.Global != nil && *t.Global {
+			if IsTrue(t.Global) {
 				operatorNamespace := platform.GetOperatorNamespace()
 				if operatorNamespace != "" {
 					namespace = operatorNamespace
diff --git a/pkg/trait/pod.go b/pkg/trait/pod.go
index 328fca939..e45edc00b 100644
--- a/pkg/trait/pod.go
+++ b/pkg/trait/pod.go
@@ -50,7 +50,7 @@ func newPodTrait() Trait {
 }
 
 func (t *podTrait) Configure(e *Environment) (bool, error) {
-	if t.Enabled != nil && !*t.Enabled {
+	if IsFalse(t.Enabled) {
 		return false, nil
 	}
 
diff --git a/pkg/trait/prometheus.go b/pkg/trait/prometheus.go
index 8ef81b54e..bf192f65d 100644
--- a/pkg/trait/prometheus.go
+++ b/pkg/trait/prometheus.go
@@ -52,12 +52,12 @@ type prometheusTrait struct {
 func newPrometheusTrait() Trait {
 	return &prometheusTrait{
 		BaseTrait:  NewBaseTrait("prometheus", 1900),
-		PodMonitor: util.BoolP(true),
+		PodMonitor: BoolP(true),
 	}
 }
 
 func (t *prometheusTrait) Configure(e *Environment) (bool, error) {
-	return t.Enabled != nil && *t.Enabled && e.IntegrationInPhase(
+	return IsTrue(t.Enabled) && e.IntegrationInPhase(
 		v1.IntegrationPhaseInitialization,
 		v1.IntegrationPhaseDeploying,
 		v1.IntegrationPhaseRunning,
@@ -102,7 +102,7 @@ func (t *prometheusTrait) Apply(e *Environment) (err error) {
 	condition.Message = fmt.Sprintf("%s(%d)", container.Name, containerPort.ContainerPort)
 
 	// Add the PodMonitor resource
-	if util.IsTrue(t.PodMonitor) {
+	if IsTrue(t.PodMonitor) {
 		portName := containerPort.Name
 		// Knative defaults to naming the userland container port "user-port".
 		// Let's rely on that default, granted it is not officially part of the Knative
diff --git a/pkg/trait/pull_secret.go b/pkg/trait/pull_secret.go
index 115d60142..005cdae4e 100644
--- a/pkg/trait/pull_secret.go
+++ b/pkg/trait/pull_secret.go
@@ -22,8 +22,9 @@ import (
 
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
 	"github.com/apache/camel-k/pkg/platform"
-	"github.com/apache/camel-k/pkg/util"
+	"github.com/apache/camel-k/pkg/util/kubernetes"
 	"github.com/apache/camel-k/pkg/util/openshift"
+	"github.com/pkg/errors"
 	corev1 "k8s.io/api/core/v1"
 	rbacv1 "k8s.io/api/rbac/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -59,7 +60,7 @@ func newPullSecretTrait() Trait {
 }
 
 func (t *pullSecretTrait) Configure(e *Environment) (bool, error) {
-	if util.IsFalse(t.Enabled) {
+	if IsFalse(t.Enabled) {
 		return false, nil
 	}
 
@@ -67,7 +68,7 @@ func (t *pullSecretTrait) Configure(e *Environment) (bool, error) {
 		return false, nil
 	}
 
-	if util.IsNilOrTrue(t.Auto) {
+	if IsNilOrTrue(t.Auto) {
 		if t.SecretName == "" {
 			secret := e.Platform.Status.Build.Registry.Secret
 			if secret != "" {
@@ -97,7 +98,7 @@ func (t *pullSecretTrait) Configure(e *Environment) (bool, error) {
 		}
 	}
 
-	return t.SecretName != "" || util.IsTrue(t.ImagePullerDelegation), nil
+	return t.SecretName != "" || IsTrue(t.ImagePullerDelegation), nil
 }
 
 func (t *pullSecretTrait) Apply(e *Environment) error {
@@ -108,23 +109,55 @@ func (t *pullSecretTrait) Apply(e *Environment) error {
 			})
 		})
 	}
-	if util.IsTrue(t.ImagePullerDelegation) {
-		rb := t.newImagePullerRoleBinding(e)
-		e.Resources.Add(rb)
+	if IsTrue(t.ImagePullerDelegation) {
+		if err := t.delegateImagePuller(e); err != nil {
+			return err
+		}
 	}
 
 	return nil
 }
 
+func (t *pullSecretTrait) delegateImagePuller(e *Environment) error {
+	// Applying the rolebinding directly because it's a resource in the operator namespace
+	// (different from the integration namespace when delegation is enabled).
+	rb := t.newImagePullerRoleBinding(e)
+	if err := kubernetes.ReplaceResource(e.C, e.Client, rb); err != nil {
+		return errors.Wrap(err, "error during the creation of the system:image-puller delegating role binding")
+	}
+	return nil
+}
+
 func (t *pullSecretTrait) newImagePullerRoleBinding(e *Environment) *rbacv1.RoleBinding {
+	targetNamespace := e.Integration.GetIntegrationKitNamespace(e.Platform)
+	var references []metav1.OwnerReference
+	if e.Platform != nil && e.Platform.Namespace == targetNamespace {
+		controller := true
+		blockOwnerDeletion := true
+		references = []metav1.OwnerReference{
+			{
+				APIVersion:         e.Platform.APIVersion,
+				Kind:               e.Platform.Kind,
+				Name:               e.Platform.Name,
+				UID:                e.Platform.UID,
+				Controller:         &controller,
+				BlockOwnerDeletion: &blockOwnerDeletion,
+			},
+		}
+	}
 	serviceAccount := e.Integration.Spec.ServiceAccountName
 	if serviceAccount == "" {
 		serviceAccount = "default"
 	}
 	return &rbacv1.RoleBinding{
+		TypeMeta: metav1.TypeMeta{
+			Kind:       "RoleBinding",
+			APIVersion: rbacv1.SchemeGroupVersion.String(),
+		},
 		ObjectMeta: metav1.ObjectMeta{
-			Namespace: e.Integration.GetIntegrationKitNamespace(e.Platform),
-			Name:      fmt.Sprintf("camel-k-puller-%s", e.Integration.Namespace),
+			Namespace:       targetNamespace,
+			Name:            fmt.Sprintf("camel-k-puller-%s-%s", e.Integration.Namespace, serviceAccount),
+			OwnerReferences: references,
 		},
 		RoleRef: rbacv1.RoleRef{
 			Kind: "ClusterRole",
diff --git a/pkg/trait/quarkus.go b/pkg/trait/quarkus.go
index 8bea05c2b..5c62f0431 100644
--- a/pkg/trait/quarkus.go
+++ b/pkg/trait/quarkus.go
@@ -38,12 +38,8 @@ func newQuarkusTrait() Trait {
 	}
 }
 
-func (t *quarkusTrait) isEnabled() bool {
-	return t.Enabled == nil || *t.Enabled
-}
-
 func (t *quarkusTrait) Configure(e *Environment) (bool, error) {
-	return t.isEnabled(), nil
+	return IsNilOrTrue(t.Enabled), nil
 }
 
 func (t *quarkusTrait) Apply(e *Environment) error {
diff --git a/pkg/trait/route.go b/pkg/trait/route.go
index c664ff517..72d20f75e 100644
--- a/pkg/trait/route.go
+++ b/pkg/trait/route.go
@@ -81,7 +81,7 @@ func (t *routeTrait) IsAllowedInProfile(profile v1.TraitProfile) bool {
 }
 
 func (t *routeTrait) Configure(e *Environment) (bool, error) {
-	if t.Enabled != nil && !*t.Enabled {
+	if IsFalse(t.Enabled) {
 		if e.Integration != nil {
 			e.Integration.Status.SetCondition(
 				v1.IntegrationConditionExposureAvailable,
diff --git a/pkg/trait/service.go b/pkg/trait/service.go
index 61cf4a91f..dc710e7a2 100644
--- a/pkg/trait/service.go
+++ b/pkg/trait/service.go
@@ -54,12 +54,8 @@ func (t *serviceTrait) IsAllowedInProfile(profile v1.TraitProfile) bool {
 		profile == v1.TraitProfileOpenShift
 }
 
-func (t *serviceTrait) isEnabled() bool {
-	return t.Enabled == nil || *t.Enabled
-}
-
 func (t *serviceTrait) Configure(e *Environment) (bool, error) {
-	if !t.isEnabled() {
+	if IsFalse(t.Enabled) {
 		e.Integration.Status.SetCondition(
 			v1.IntegrationConditionServiceAvailable,
 			corev1.ConditionFalse,
@@ -74,7 +70,7 @@ func (t *serviceTrait) Configure(e *Environment) (bool, error) {
 		return false, nil
 	}
 
-	if t.Auto == nil || *t.Auto {
+	if IsNilOrTrue(t.Auto) {
 		sources, err := kubernetes.ResolveIntegrationSources(t.Ctx, t.Client, e.Integration, e.Resources)
 		if err != nil {
 			e.Integration.Status.SetCondition(
@@ -103,18 +99,13 @@ func (t *serviceTrait) Configure(e *Environment) (bool, error) {
 	return true, nil
 }
 
-func (t *serviceTrait) isNodePort() bool {
-	return t.NodePort == nil || *t.NodePort
-
-}
-
 func (t *serviceTrait) Apply(e *Environment) error {
 	svc := e.Resources.GetServiceForIntegration(e.Integration)
 	// add a new service if not already created
 	if svc == nil {
 		svc = getServiceFor(e)
 
-		if t.isNodePort() {
+		if IsNilOrTrue(t.NodePort) {
 			svc.Spec.Type = corev1.ServiceTypeNodePort
 		}
 	}
diff --git a/pkg/trait/service_binding.go b/pkg/trait/service_binding.go
index 5c2fbe7ff..501205088 100644
--- a/pkg/trait/service_binding.go
+++ b/pkg/trait/service_binding.go
@@ -49,7 +49,7 @@ func newServiceBindingTrait() Trait {
 }
 
 func (t *serviceBindingTrait) Configure(e *Environment) (bool, error) {
-	if t.Enabled != nil && !*t.Enabled {
+	if IsFalse(t.Enabled) {
 		return false, nil
 	}
 
diff --git a/pkg/trait/toleration.go b/pkg/trait/toleration.go
index bc0fd8eca..add142826 100644
--- a/pkg/trait/toleration.go
+++ b/pkg/trait/toleration.go
@@ -23,7 +23,6 @@ import (
 	corev1 "k8s.io/api/core/v1"
 
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
-	"github.com/apache/camel-k/pkg/util"
 	"github.com/apache/camel-k/pkg/util/kubernetes"
 )
 
@@ -54,7 +53,7 @@ func newTolerationTrait() Trait {
 }
 
 func (t *tolerationTrait) Configure(e *Environment) (bool, error) {
-	if util.IsNilOrFalse(t.Enabled) {
+	if IsNilOrFalse(t.Enabled) {
 		return false, nil
 	}
 
diff --git a/pkg/trait/trait_types.go b/pkg/trait/trait_types.go
index f22e3d509..fc6d0f06e 100644
--- a/pkg/trait/trait_types.go
+++ b/pkg/trait/trait_types.go
@@ -46,6 +46,7 @@ import (
 
 // True --
 const True = "true"
+const False = "false"
 
 var (
 	basePath                  = "/etc/camel"
diff --git a/pkg/trait/util.go b/pkg/trait/util.go
index af88cc41f..630776df9 100644
--- a/pkg/trait/util.go
+++ b/pkg/trait/util.go
@@ -220,3 +220,32 @@ func AddSourceDependencies(source v1.SourceSpec, catalog *camel.RuntimeCatalog)
 
 	return dependencies
 }
+
+/// Bool pointer operations:
+
+// BoolP returns a pointer to a bool value
+func BoolP(b bool) *bool {
+	return &b
+}
+
+// IsTrue checks if the bool pointer is defined and true
+func IsTrue(b *bool) bool {
+	return b != nil && *b
+}
+
+// IsNilOrTrue checks if the bool pointer is nil or true.
+// You can use it if the bool pointer is meant to be true by default.
+func IsNilOrTrue(b *bool) bool {
+	return b == nil || *b
+}
+
+// IsFalse checks if the bool pointer is defined and false
+func IsFalse(b *bool) bool {
+	return b != nil && !*b
+}
+
+// IsNilOrFalse checks if the bool pointer is nil or false.
+// You can use it if the bool pointer is meant to be false by default.
+func IsNilOrFalse(b *bool) bool {
+	return b == nil || !*b
+}
diff --git a/pkg/util/kubernetes/camel.go b/pkg/util/kubernetes/camel.go
index ca487b519..5cc7e1e2f 100644
--- a/pkg/util/kubernetes/camel.go
+++ b/pkg/util/kubernetes/camel.go
@@ -20,18 +20,20 @@ package kubernetes
 import (
 	"strings"
 
-	v1 "k8s.io/api/core/v1"
+	corev1 "k8s.io/api/core/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/apimachinery/pkg/runtime"
 
-	camelv1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
 )
 
 const (
 	CamelCreatorLabelPrefix = "camel.apache.org/created.by"
 
-	CamelCreatorLabelKind = CamelCreatorLabelPrefix + ".kind"
-	CamelCreatorLabelName = CamelCreatorLabelPrefix + ".name"
+	CamelCreatorLabelKind      = CamelCreatorLabelPrefix + ".kind"
+	CamelCreatorLabelName      = CamelCreatorLabelPrefix + ".name"
+	CamelCreatorLabelNamespace = CamelCreatorLabelPrefix + ".namespace"
+	CamelCreatorLabelVersion   = CamelCreatorLabelPrefix + ".version"
 )
 
 // FilterCamelCreatorLabels is used to inherit the creator information among resources
@@ -57,16 +59,20 @@ func MergeCamelCreatorLabels(source map[string]string, target map[string]string)
 }
 
 // GetCamelCreator returns the Camel creator object referenced by this runtime object, if present
-func GetCamelCreator(obj runtime.Object) *v1.ObjectReference {
+func GetCamelCreator(obj runtime.Object) *corev1.ObjectReference {
 	if m, ok := obj.(metav1.Object); ok {
 		kind := m.GetLabels()[CamelCreatorLabelKind]
 		name := m.GetLabels()[CamelCreatorLabelName]
+		namespace, ok := m.GetLabels()[CamelCreatorLabelNamespace]
+		if !ok {
+			namespace = m.GetNamespace()
+		}
 		if kind != "" && name != "" {
-			return &v1.ObjectReference{
+			return &corev1.ObjectReference{
 				Kind:       kind,
-				Namespace:  m.GetNamespace(),
+				Namespace:  namespace,
 				Name:       name,
-				APIVersion: camelv1.SchemeGroupVersion.String(),
+				APIVersion: v1.SchemeGroupVersion.String(),
 			}
 		}
 	}
diff --git a/pkg/util/util.go b/pkg/util/util.go
index 7286301ee..4a2ffe347 100644
--- a/pkg/util/util.go
+++ b/pkg/util/util.go
@@ -498,35 +498,6 @@ func GetEnvironmentVariable(variable string) (string, error) {
 	return value, nil
 }
 
-/// Bool operations:
-
-// BoolP returns a pointer to a bool value
-func BoolP(b bool) *bool {
-	return &b
-}
-
-// IsTrue checks if the bool pointer is defined and true
-func IsTrue(b *bool) bool {
-	return b != nil && *b
-}
-
-// IsNilOrTrue checks if the bool pointer is nil or true.
-// You can use it if the bool pointer is meant to be true by default.
-func IsNilOrTrue(b *bool) bool {
-	return b == nil || *b
-}
-
-// IsFalse checks if the bool pointer is defined and false
-func IsFalse(b *bool) bool {
-	return b != nil && !*b
-}
-
-// IsNilOrFalse checks if the bool pointer is nil or false.
-// You can use it if the bool pointer is meant to be false by default.
-func IsNilOrFalse(b *bool) bool {
-	return b == nil || !*b
-}
-
 // EvaluateCLIAndLazyEnvVars -- Function that creates a list of environment
 // variables with entries VAR=value that can be passed when running the integration.
 func EvaluateCLIAndLazyEnvVars() ([]string, error) {
diff --git a/release.adoc b/release.adoc
index d1c822fef..eabcafa2f 100644
--- a/release.adoc
+++ b/release.adoc
@@ -72,11 +72,12 @@ First thing is to checkout main branch and sync with upstream.
 Next, the version of the runtime libraries to use need to be aligned in the Makefile (use the just released camel-k-runtime version if available).
 
 The following tasks need to be done:
-- Align KAMELET_CATALOG_REPO_BRANCH in Makefile to latest released tag of the camel-kamelets repository
-- Align RUNTIME_VERSION in Makefile to latest runtime release
-- Align all libraries to the ones used in the chosen runtime (e.g. CAMEL_QUARKUS_VERSION and QUARKUS_VERSION)
-- Set STAGING_RUNTIME_REPO to the URL of the staging repo (if using a staged camel-k-runtime version)
-- Ensure LAST_RELEASED_VERSION points to latest released version of Camel K
+
+- Align `KAMELET_CATALOG_REPO_BRANCH` in Makefile to latest released tag of the camel-kamelets repository
+- Align `RUNTIME_VERSION` in Makefile to latest runtime release
+- Align all libraries to the ones used in the chosen runtime (e.g. `CAMEL_QUARKUS_VERSION` and `QUARKUS_VERSION`)
+- Set `STAGING_RUNTIME_REPO` to the URL of the staging repo (if using a staged camel-k-runtime version)
+- Ensure `LAST_RELEASED_VERSION` points to latest released version of Camel K
 
 ```
 make clean codegen set-version build-resources check-licenses
diff --git a/script/cross_compile.sh b/script/cross_compile.sh
index 8c239b822..ad73ae249 100755
--- a/script/cross_compile.sh
+++ b/script/cross_compile.sh
@@ -58,6 +58,7 @@ cross_compile () {
 
 cross_compile ${basename}-${version}-linux-64bit linux amd64
 cross_compile ${basename}-${version}-mac-64bit darwin amd64
+cross_compile ${basename}-${version}-mac-arm64bit darwin arm64
 cross_compile ${basename}-${version}-windows-64bit windows amd64
 
 


Test patch:
diff --git a/addons/tracing/tracing_test.go b/addons/tracing/tracing_test.go
index 7a3c3e04d..04c47ab36 100644
--- a/addons/tracing/tracing_test.go
+++ b/addons/tracing/tracing_test.go
@@ -30,8 +30,7 @@ import (
 func TestTracingTraitOnQuarkus(t *testing.T) {
 	e := createEnvironment(t, camel.QuarkusCatalog)
 	tracing := NewTracingTrait()
-	enabled := true
-	tracing.(*tracingTrait).Enabled = &enabled
+	tracing.(*tracingTrait).Enabled = trait.BoolP(true)
 	tracing.(*tracingTrait).Endpoint = "http://endpoint3"
 	ok, err := tracing.Configure(e)
 	assert.Nil(t, err)
diff --git a/e2e/common/cli/bind_test.go b/e2e/common/cli/bind_test.go
new file mode 100644
index 000000000..cdab11582
--- /dev/null
+++ b/e2e/common/cli/bind_test.go
@@ -0,0 +1,53 @@
+// +build integration
+
+// To enable compilation of this file in Goland, go to "Settings -> Go -> Vendoring & Build Tags -> Custom Tags" and add "integration"
+
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package common
+
+import (
+	v1 "k8s.io/api/core/v1"
+	"testing"
+
+	. "github.com/onsi/gomega"
+
+	. "github.com/apache/camel-k/e2e/support"
+)
+
+func TestKamelCLIBind(t *testing.T) {
+	WithNewTestNamespace(t, func(ns string) {
+		Expect(Kamel("install", "-n", ns).Execute()).To(Succeed())
+		Expect(CreateTimerKamelet(ns, "test-timer-source")()).To(Succeed())
+
+		t.Run("bind timer to log", func(t *testing.T) {
+			Expect(Kamel("bind", "test-timer-source", "log:info", "-p", "source.message=helloTest", "-n", ns).Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(ns, "test-timer-source-to-log"), TestTimeoutLong).Should(Equal(v1.PodRunning))
+
+			Eventually(IntegrationLogs(ns, "test-timer-source-to-log")).Should(ContainSubstring("Body: helloTest"))
+			Expect(Kamel("bind", "test-timer-source", "log:info", "-p", "source.message=newText", "-n", ns).Execute()).To(Succeed())
+			Eventually(IntegrationLogs(ns, "test-timer-source-to-log")).Should(ContainSubstring("Body: newText"))
+
+			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		})
+
+		t.Run("unsuccessful binding, no property", func(t *testing.T) {
+			Expect(Kamel("bind", "timer-source", "log:info", "-n", ns).Execute()).NotTo(Succeed())
+		})
+	})
+}
diff --git a/e2e/common/cli/log_test.go b/e2e/common/cli/log_test.go
new file mode 100644
index 000000000..922b83220
--- /dev/null
+++ b/e2e/common/cli/log_test.go
@@ -0,0 +1,50 @@
+// +build integration
+
+// To enable compilation of this file in Goland, go to "Settings -> Go -> Vendoring & Build Tags -> Custom Tags" and add "integration"
+
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package common
+
+import (
+	v1 "k8s.io/api/core/v1"
+	"strings"
+	"testing"
+
+	. "github.com/onsi/gomega"
+
+	. "github.com/apache/camel-k/e2e/support"
+)
+
+func TestKamelCLILog(t *testing.T) {
+	WithNewTestNamespace(t, func(ns string) {
+		Expect(Kamel("install", "-n", ns).Execute()).To(Succeed())
+
+		t.Run("check integration log", func(t *testing.T) {
+			Expect(Kamel("run", "../files/yaml.yaml", "-n", ns).Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(ns, "yaml"), TestTimeoutMedium).Should(Equal(v1.PodRunning))
+			//first line of the integration logs
+			logs := strings.Split(IntegrationLogs(ns, "yaml")(), "\n")[0]
+			podName := IntegrationPod(ns, "yaml")().Name
+
+			logsCLI := GetOutputStringAsync(Kamel("log", "yaml", "-n", ns))
+			Eventually(logsCLI).Should(ContainSubstring("Monitoring pod " + podName))
+			Eventually(logsCLI).Should(ContainSubstring(logs))
+		})
+	})
+}
diff --git a/e2e/common/files/ChuckNorrisKamelet.java b/e2e/common/files/TimerKameletIntegration.java
similarity index 86%
rename from e2e/common/files/ChuckNorrisKamelet.java
rename to e2e/common/files/TimerKameletIntegration.java
index 34103073b..c3412a929 100644
--- a/e2e/common/files/ChuckNorrisKamelet.java
+++ b/e2e/common/files/TimerKameletIntegration.java
@@ -19,11 +19,10 @@ import java.lang.Exception;
 import java.lang.Override;
 import org.apache.camel.builder.RouteBuilder;
 
-public class ChuckNorrisKamelet extends RouteBuilder {
+public class TimerKameletIntegration extends RouteBuilder {
     @Override
     public void configure() throws Exception {
-        from("kamelet:chuck-norris-source")
-            .setBody(simple("Received another joke: ${body}"))
+        from("kamelet:timer-source?message=important%20message")
             .to("log:info");
     }
 }
diff --git a/e2e/common/files/timer-source.kamelet.yaml b/e2e/common/files/timer-source.kamelet.yaml
new file mode 100644
index 000000000..3c0957284
--- /dev/null
+++ b/e2e/common/files/timer-source.kamelet.yaml
@@ -0,0 +1,69 @@
+# ---------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ---------------------------------------------------------------------------
+
+apiVersion: camel.apache.org/v1alpha1
+kind: Kamelet
+metadata:
+  name: timer-source
+  annotations:
+    camel.apache.org/kamelet.support.level: "Preview"
+    camel.apache.org/catalog.version: "0.3.0"
+    camel.apache.org/kamelet.icon: data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gU3ZnIFZlY3RvciBJY29ucyA6IGh0dHA6Ly93d3cub25saW5ld2ViZm9udHMuY29tL2ljb24gLS0+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTAwMCAxMDAwIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAxMDAwIDEwMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPG1ldGFkYXRhPiBTdmcgVmVjdG9yIEljb25zIDogaHR0cDovL3d3dy5vbmxpbmV3ZWJmb250cy5jb20vaWNvbiA8L21ldGFkYXRhPg0KPGc+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsNTExLjAwMDAwMCkgc2NhbGUoMC4xMDAwMDAsLTAuMTAwMDAwKSI+PHBhdGggZD0iTTM4ODguMSw0Nzc0Ljl2LTIzNS4xaDQxMS40aDQxNC4zbC04LjgtMzI5LjFsLTguOC0zMzJsLTExNy41LTguOGMtMjI5LjItMTQuNy02MjAtOTkuOS05MjUuNi0xOTYuOUMyMjU3LjQsMzIyMC42LDExNjcuMiwyMDY1LjgsODAyLjksNjQ5LjZjLTUxMS4zLTE5ODYuMywzODQuOS00MDAyLDIyMDYuNy00OTY1LjhjMzAyLjYtMTYxLjYsNzU4LjEtMzIwLjIsMTE1NC44LTQwNS41YzQyNi4xLTkxLjEsMTI1MS43LTkxLjEsMTY4MC43LDBjMTc2OC45LDM4MiwzMDQ0LjEsMTY1Ny4yLDM0MjYuMSwzNDI2LjFjOTEuMSw0MjYuMSw5MS4xLDEyNTQuNiwwLDE2NzcuOGMtNDIwLjIsMTk0Mi4yLTE5MzYuNCwzMzAyLjYtMzg5MC4zLDM0OTYuNmwtMTk5LjgsMjAuNnYzMjAuM3YzMjAuM2g0MTEuNGg0MTEuNHYyMzUuMVY1MDEwSDQ5NDUuOUgzODg4LjFWNDc3NC45eiBNNTc1My45LDMzNDkuOWM3NzguNy0xNjEuNiwxNDE5LjItNTA4LjMsMTk4My40LTEwNzIuNWM1NjQuMi01NjEuMiw4ODcuNC0xMTU3LjcsMTA2MC43LTE5NDIuMmM5OS45LTQzNy44LDk5LjktMTE0MywzLTE1ODAuOEM4NTYzLTIzMDYuNCw3OTY2LjUtMzE1OC41LDcwNDMuOS0zNzUyYy0zMzUtMjE0LjUtNzg3LjUtMzk2LjctMTI0OC44LTQ5OS41Yy00MzcuOC05Ny0xMTQzLTk3LTE1ODAuOCwyLjljLTc4NC41LDE3My4zLTEzODEsNDk2LjYtMTk0Mi4yLDEwNjAuN2MtNTcwLDU2Ny4xLTkwNy45LDExOTguOC0xMDc4LjQsMTk5OC4xYy03My41LDM0Ni43LTczLjUsMTEyMi40LDAsMTQ2OS4yYzE3MC40LDc5OS4yLDUwOC4zLDE0MzEsMTA3OC40LDE5OThDMjg5NSwyOTAwLjMsMzYzOC40LDMyNzMuNSw0NDkzLjQsMzM5MUM0Nzc4LjQsMzQzMi4xLDU0NzQuOCwzNDA4LjYsNTc1My45LDMzNDkuOXoiLz48cGF0aCBkPSJNNDcxMC44LDEzNzUuM1YyMDUuOUw0NTUyLjIsNjcuOGMtMzE3LjMtMjc5LjEtMzQwLjgtNjc4LjctNTUuOC05OTMuMWMyODcuOS0zMjAuMyw2OTMuNC0zMTcuMywxMDEzLjcsNS45bDE3MC40LDE3MC40aDEwNDMuMWgxMDQzLjFWLTUxNFYtMjc5SDY3MjkuNUg1NjkyLjJsLTQ5LjksMTE0LjZjLTU4LjgsMTMyLjItMjUyLjcsMzE3LjMtMzc2LjEsMzYxLjRsLTg1LjIsMjkuNHYxMTU3Ljd2MTE1Ny43aC0yMzUuMWgtMjM1LjFWMTM3NS4zeiBNNTE2Ni4zLTI5My42YzE0Ni45LTE0NCw0NC4xLTM5Ni43LTE2MS42LTM5Ni43Yy01NS44LDAtMTE3LjUsMjYuNC0xNjEuNiw3My40Yy00Nyw0NC4xLTczLjUsMTA1LjgtNzMuNSwxNjEuNnMyNi40LDExNy41LDczLjUsMTYxLjZjNDQuMSw0NywxMDUuOCw3My41LDE2MS42LDczLjVDNTA2MC41LTIyMC4yLDUxMjIuMi0yNDYuNyw1MTY2LjMtMjkzLjZ6Ii8+PC9nPjwvZz4NCjwvc3ZnPg==
+    camel.apache.org/provider: "Apache Software Foundation"
+    camel.apache.org/kamelet.group: "Timer"
+  labels:
+    camel.apache.org/kamelet.type: source
+    camel.apache.org/kamelet.verified: "true"
+spec:
+  definition:
+    title: Timer Source
+    description: Produces periodic events with a custom payload.
+    required:
+      - message
+    type: object
+    properties:
+      period:
+        title: Period
+        description: The interval between two events in milliseconds
+        type: integer
+        default: 1000
+      message:
+        title: Message
+        description: The message to generate
+        type: string
+        example: hello world
+      contentType:
+        title: Content Type
+        description: The content type of the message being generated
+        type: string
+        default: text/plain
+  dependencies:
+    - "camel:core"
+    - "camel:timer"
+    - "camel:kamelet"
+  flow:
+    from:
+      uri: timer:tick
+      parameters:
+        period: "{{period}}"
+      steps:
+        - set-body:
+            constant: "{{message}}"
+        - set-header:
+            name: "Content-Type"
+            constant: "{{contentType}}"
+        - to: kamelet:sink
diff --git a/e2e/common/kamelet_test.go b/e2e/common/kamelet_test.go
index 13dd19f95..4db8a319d 100644
--- a/e2e/common/kamelet_test.go
+++ b/e2e/common/kamelet_test.go
@@ -34,21 +34,20 @@ func TestKameletClasspathLoading(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 		Expect(Kamel("install", "-n", ns).Execute()).To(Succeed())
 
-		kameletName := "chuck-norris-source"
+		kameletName := "timer-source"
 		removeKamelet(kameletName , ns)
 
 		Eventually(Kamelet(kameletName, ns)).Should(BeNil())
 
-		Expect(Kamel("run", "files/ChuckNorrisKamelet.java", "-n", ns, "-t", "kamelets.enabled=false",
-			"-d", "github:apache.camel-kamelets:camel-kamelets-catalog:main-SNAPSHOT",
+		Expect(Kamel("run", "files/TimerKameletIntegration.java", "-n", ns, "-t", "kamelets.enabled=false",
+			"--resource", "file:files/timer-source.kamelet.yaml@/kamelets/timer-source.kamelet.yaml",
+			"-p camel.component.kamelet.location=file:/kamelets",
 			"-d", "camel:yaml-dsl",
 			// kamelet dependencies
-			"-d", "camel:timer",
-			"-d", "camel:jsonpath",
-			"-d", "camel:http").Execute()).To(Succeed())
-		Eventually(IntegrationPodPhase(ns, "chuck-norris-kamelet"), TestTimeoutMedium).Should(Equal(v1.PodRunning))
+			"-d", "camel:timer").Execute()).To(Succeed())
+		Eventually(IntegrationPodPhase(ns, "timer-kamelet-integration"), TestTimeoutMedium).Should(Equal(v1.PodRunning))
 
-		Eventually(IntegrationLogs(ns, "chuck-norris-kamelet")).Should(ContainSubstring("Received another joke:"))
+		Eventually(IntegrationLogs(ns, "timer-kamelet-integration")).Should(ContainSubstring("important message"))
 
 		// Cleanup
 		Expect(Kamel("delete", "--all", "-n", ns).Execute()).Should(BeNil())
diff --git a/e2e/support/test_support.go b/e2e/support/test_support.go
index 01a4536bc..424e49232 100644
--- a/e2e/support/test_support.go
+++ b/e2e/support/test_support.go
@@ -1372,3 +1372,15 @@ func GetOutputString(command *cobra.Command) string {
 
 	return buf.String()
 }
+
+func GetOutputStringAsync(cmd *cobra.Command) func() string {
+	var buffer bytes.Buffer
+	stdout := bufio.NewWriter(&buffer)
+
+	cmd.SetOut(stdout)
+	go cmd.Execute()
+
+	return func() string {
+		return buffer.String()
+	}
+}
diff --git a/pkg/apis/camel/v1/integration_types_support_test.go b/pkg/apis/camel/v1/integration_types_support_test.go
index 0f028172a..6f4d4827c 100644
--- a/pkg/apis/camel/v1/integration_types_support_test.go
+++ b/pkg/apis/camel/v1/integration_types_support_test.go
@@ -73,3 +73,28 @@ func TestAddDependency(t *testing.T) {
 	integration.AddDependency("file:dep")
 	assert.Equal(t, integration.Dependencies, []string{"file:dep"})
 }
+
+func TestGetConfigurationProperty(t *testing.T) {
+	integration := IntegrationSpec{}
+	integration.AddConfiguration("property", "key1=value1")
+	integration.AddConfiguration("property", "key2 = value2")
+	integration.AddConfiguration("property", "key3 = value with trailing space ")
+	integration.AddConfiguration("property", "key4 =  value with leading space")
+	integration.AddConfiguration("property", "key5 = ")
+	integration.AddConfiguration("property", "key6=")
+
+	missing := integration.GetConfigurationProperty("missing")
+	assert.Equal(t, "", missing)
+	v1 := integration.GetConfigurationProperty("key")
+	assert.Equal(t, "value1", v1)
+	v2 := integration.GetConfigurationProperty("key2")
+	assert.Equal(t, "value2", v2)
+	v3 := integration.GetConfigurationProperty("key3")
+	assert.Equal(t, "value with trailing space ", v3)
+	v4 := integration.GetConfigurationProperty("key4")
+	assert.Equal(t, " value with leading space", v4)
+	v5 := integration.GetConfigurationProperty("key5")
+	assert.Equal(t, "", v5)
+	v6 := integration.GetConfigurationProperty("key6")
+	assert.Equal(t, "", v6)
+}
diff --git a/pkg/cmd/util_test.go b/pkg/cmd/util_test.go
index b47c07192..5938b86bf 100644
--- a/pkg/cmd/util_test.go
+++ b/pkg/cmd/util_test.go
@@ -1,3 +1,5 @@
+// +build !darwin
+
 /*
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
diff --git a/pkg/trait/affinity_test.go b/pkg/trait/affinity_test.go
index 065b4dc77..9dd21cb7f 100644
--- a/pkg/trait/affinity_test.go
+++ b/pkg/trait/affinity_test.go
@@ -26,7 +26,6 @@ import (
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
-	"github.com/apache/camel-k/pkg/util"
 )
 
 func TestConfigureAffinityTraitDoesSucceed(t *testing.T) {
@@ -41,8 +40,8 @@ func TestConfigureAffinityTraitDoesSucceed(t *testing.T) {
 func TestConfigureAffinityTraitWithConflictingAffinitiesFails(t *testing.T) {
 	affinityTrait := createNominalAffinityTest()
 	environment, _ := createNominalDeploymentTraitTest()
-	affinityTrait.PodAffinity = util.BoolP(true)
-	affinityTrait.PodAntiAffinity = util.BoolP(true)
+	affinityTrait.PodAffinity = BoolP(true)
+	affinityTrait.PodAntiAffinity = BoolP(true)
 	configured, err := affinityTrait.Configure(environment)
 
 	assert.False(t, configured)
@@ -51,7 +50,7 @@ func TestConfigureAffinityTraitWithConflictingAffinitiesFails(t *testing.T) {
 
 func TestConfigureDisabledAffinityTraitFails(t *testing.T) {
 	affinityTrait := createNominalAffinityTest()
-	affinityTrait.Enabled = new(bool)
+	affinityTrait.Enabled = BoolP(false)
 	environment, _ := createNominalDeploymentTraitTest()
 	configured, err := affinityTrait.Configure(environment)
 
@@ -117,7 +116,7 @@ func testApplyNodeAffinityLabelsDoesSucceed(t *testing.T, trait *affinityTrait,
 
 func TestApplyPodAntiAffinityLabelsDoesSucceed(t *testing.T) {
 	affinityTrait := createNominalAffinityTest()
-	affinityTrait.PodAntiAffinity = util.BoolP(true)
+	affinityTrait.PodAntiAffinity = BoolP(true)
 	affinityTrait.PodAntiAffinityLabels = []string{"criteria != value"}
 
 	environment, deployment := createNominalDeploymentTraitTest()
@@ -150,7 +149,7 @@ func testApplyPodAntiAffinityLabelsDoesSucceed(t *testing.T, trait *affinityTrai
 
 func TestApplyPodAffinityLabelsDoesSucceed(t *testing.T) {
 	affinityTrait := createNominalAffinityTest()
-	affinityTrait.PodAffinity = util.BoolP(true)
+	affinityTrait.PodAffinity = BoolP(true)
 	affinityTrait.PodAffinityLabels = []string{"!criteria"}
 
 	environment, deployment := createNominalDeploymentTraitTest()
@@ -182,8 +181,7 @@ func testApplyPodAffinityLabelsDoesSucceed(t *testing.T, trait *affinityTrait, e
 
 func createNominalAffinityTest() *affinityTrait {
 	trait := newAffinityTrait().(*affinityTrait)
-	enabled := true
-	trait.Enabled = &enabled
+	trait.Enabled = BoolP(true)
 
 	return trait
 }
diff --git a/pkg/trait/builder_test.go b/pkg/trait/builder_test.go
index 1c5282b1c..2c79bd64a 100644
--- a/pkg/trait/builder_test.go
+++ b/pkg/trait/builder_test.go
@@ -27,7 +27,6 @@ import (
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
-	"github.com/apache/camel-k/pkg/util"
 	"github.com/apache/camel-k/pkg/util/camel"
 	"github.com/apache/camel-k/pkg/util/defaults"
 	"github.com/apache/camel-k/pkg/util/kubernetes"
@@ -165,7 +164,7 @@ func TestMavenPropertyBuilderTrait(t *testing.T) {
 
 func createNominalBuilderTraitTest() *builderTrait {
 	builderTrait := newBuilderTrait().(*builderTrait)
-	builderTrait.Enabled = util.BoolP(true)
+	builderTrait.Enabled = BoolP(true)
 
 	return builderTrait
 }
diff --git a/pkg/trait/camel_test.go b/pkg/trait/camel_test.go
index 3d6b2352b..7b017fa69 100644
--- a/pkg/trait/camel_test.go
+++ b/pkg/trait/camel_test.go
@@ -40,7 +40,7 @@ func TestConfigureEnabledCamelTraitSucceeds(t *testing.T) {
 
 func TestConfigureDisabledCamelTraitFails(t *testing.T) {
 	trait, environment := createNominalCamelTest()
-	trait.Enabled = new(bool)
+	trait.Enabled = BoolP(false)
 
 	configured, err := trait.Configure(environment)
 	assert.NotNil(t, err)
@@ -72,8 +72,7 @@ func createNominalCamelTest() (*camelTrait, *Environment) {
 	client, _ := test.NewFakeClient()
 
 	trait := newCamelTrait().(*camelTrait)
-	enabled := true
-	trait.Enabled = &enabled
+	trait.Enabled = BoolP(true)
 
 	environment := &Environment{
 		CamelCatalog: &camel.RuntimeCatalog{
diff --git a/pkg/trait/container_probes_test.go b/pkg/trait/container_probes_test.go
index 57fb6fb8f..9c2cef63c 100644
--- a/pkg/trait/container_probes_test.go
+++ b/pkg/trait/container_probes_test.go
@@ -25,9 +25,9 @@ import (
 	serving "knative.dev/serving/pkg/apis/serving/v1"
 
 	appsv1 "k8s.io/api/apps/v1"
+	corev1 "k8s.io/api/core/v1"
 
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
-	"github.com/apache/camel-k/pkg/util"
 	"github.com/apache/camel-k/pkg/util/camel"
 	"github.com/apache/camel-k/pkg/util/kubernetes"
 )
@@ -58,7 +58,7 @@ func newTestProbesEnv(t *testing.T, provider v1.RuntimeProvider) Environment {
 
 func newTestContainerTrait() *containerTrait {
 	tr := newContainerTrait().(*containerTrait)
-	tr.ProbesEnabled = util.BoolP(true)
+	tr.ProbesEnabled = BoolP(true)
 
 	return tr
 }
@@ -85,11 +85,36 @@ func TestProbesOnDeployment(t *testing.T) {
 	env.Integration.Status.Phase = v1.IntegrationPhaseDeploying
 	env.Resources.Add(&target)
 
-	expose := true
+	ctr := newTestContainerTrait()
+	ctr.Expose = BoolP(true)
+	ctr.LivenessTimeout = 1234
+
+	err := ctr.Apply(&env)
+	assert.Nil(t, err)
+
+	assert.Equal(t, "", target.Spec.Template.Spec.Containers[0].LivenessProbe.HTTPGet.Host)
+	assert.Equal(t, int32(defaultContainerPort), target.Spec.Template.Spec.Containers[0].LivenessProbe.HTTPGet.Port.IntVal)
+	assert.Equal(t, defaultProbePath, target.Spec.Template.Spec.Containers[0].LivenessProbe.HTTPGet.Path)
+	assert.Equal(t, corev1.URISchemeHTTP, target.Spec.Template.Spec.Containers[0].ReadinessProbe.HTTPGet.Scheme)
+	assert.Equal(t, "", target.Spec.Template.Spec.Containers[0].ReadinessProbe.HTTPGet.Host)
+	assert.Equal(t, int32(defaultContainerPort), target.Spec.Template.Spec.Containers[0].ReadinessProbe.HTTPGet.Port.IntVal)
+	assert.Equal(t, defaultProbePath, target.Spec.Template.Spec.Containers[0].ReadinessProbe.HTTPGet.Path)
+	assert.Equal(t, corev1.URISchemeHTTP, target.Spec.Template.Spec.Containers[0].LivenessProbe.HTTPGet.Scheme)
+	assert.Equal(t, int32(1234), target.Spec.Template.Spec.Containers[0].LivenessProbe.TimeoutSeconds)
+}
+
+func TestProbesOnDeploymentWithCustomScheme(t *testing.T) {
+	target := appsv1.Deployment{}
+
+	env := newTestProbesEnv(t, v1.RuntimeProviderQuarkus)
+	env.Integration.Status.Phase = v1.IntegrationPhaseDeploying
+	env.Resources.Add(&target)
 
 	ctr := newTestContainerTrait()
-	ctr.Expose = &expose
+	ctr.Expose = BoolP(true)
 	ctr.LivenessTimeout = 1234
+	ctr.LivenessScheme = "HTTPS"
+	ctr.ReadinessScheme = "HTTPS"
 
 	err := ctr.Apply(&env)
 	assert.Nil(t, err)
@@ -97,9 +122,11 @@ func TestProbesOnDeployment(t *testing.T) {
 	assert.Equal(t, "", target.Spec.Template.Spec.Containers[0].LivenessProbe.HTTPGet.Host)
 	assert.Equal(t, int32(defaultContainerPort), target.Spec.Template.Spec.Containers[0].LivenessProbe.HTTPGet.Port.IntVal)
 	assert.Equal(t, defaultProbePath, target.Spec.Template.Spec.Containers[0].LivenessProbe.HTTPGet.Path)
+	assert.Equal(t, corev1.URISchemeHTTPS, target.Spec.Template.Spec.Containers[0].ReadinessProbe.HTTPGet.Scheme)
 	assert.Equal(t, "", target.Spec.Template.Spec.Containers[0].ReadinessProbe.HTTPGet.Host)
 	assert.Equal(t, int32(defaultContainerPort), target.Spec.Template.Spec.Containers[0].ReadinessProbe.HTTPGet.Port.IntVal)
 	assert.Equal(t, defaultProbePath, target.Spec.Template.Spec.Containers[0].ReadinessProbe.HTTPGet.Path)
+	assert.Equal(t, corev1.URISchemeHTTPS, target.Spec.Template.Spec.Containers[0].LivenessProbe.HTTPGet.Scheme)
 	assert.Equal(t, int32(1234), target.Spec.Template.Spec.Containers[0].LivenessProbe.TimeoutSeconds)
 }
 
@@ -127,10 +154,8 @@ func TestProbesOnKnativeService(t *testing.T) {
 	env.Integration.Status.Phase = v1.IntegrationPhaseDeploying
 	env.Resources.Add(&target)
 
-	expose := true
-
 	ctr := newTestContainerTrait()
-	ctr.Expose = &expose
+	ctr.Expose = BoolP(true)
 	ctr.LivenessTimeout = 1234
 
 	err := ctr.Apply(&env)
diff --git a/pkg/trait/deployment_test.go b/pkg/trait/deployment_test.go
index 2d5a838c6..a84ca82fb 100644
--- a/pkg/trait/deployment_test.go
+++ b/pkg/trait/deployment_test.go
@@ -34,7 +34,7 @@ import (
 
 func TestConfigureDisabledDeploymentTraitDoesNotSucceed(t *testing.T) {
 	deploymentTrait, environment := createNominalDeploymentTest()
-	deploymentTrait.Enabled = new(bool)
+	deploymentTrait.Enabled = BoolP(false)
 
 	configured, err := deploymentTrait.Configure(environment)
 
@@ -145,8 +145,7 @@ func TestApplyDeploymentTraitWhileRunningIntegrationDoesSucceed(t *testing.T) {
 
 func createNominalDeploymentTest() (*deploymentTrait, *Environment) {
 	trait := newDeploymentTrait().(*deploymentTrait)
-	enabled := true
-	trait.Enabled = &enabled
+	trait.Enabled = BoolP(true)
 	trait.Client, _ = test.NewFakeClient(&appsv1.Deployment{
 		ObjectMeta: metav1.ObjectMeta{
 			Name:      "integration-name",
diff --git a/pkg/trait/gc_test.go b/pkg/trait/gc_test.go
index 130006703..ac650c541 100644
--- a/pkg/trait/gc_test.go
+++ b/pkg/trait/gc_test.go
@@ -37,7 +37,7 @@ func TestConfigureGarbageCollectorTraitDoesSucceed(t *testing.T) {
 
 func TestConfigureDisabledGarbageCollectorTraitDoesNotSucceed(t *testing.T) {
 	gcTrait, environment := createNominalGarbageCollectorTest()
-	gcTrait.Enabled = new(bool)
+	gcTrait.Enabled = BoolP(false)
 
 	configured, err := gcTrait.Configure(environment)
 
@@ -68,8 +68,7 @@ func TestApplyGarbageCollectorTraitDuringInitializationPhaseSkipPostActions(t *t
 
 func createNominalGarbageCollectorTest() (*garbageCollectorTrait, *Environment) {
 	trait := newGarbageCollectorTrait().(*garbageCollectorTrait)
-	enabled := true
-	trait.Enabled = &enabled
+	trait.Enabled = BoolP(true)
 
 	environment := &Environment{
 		Catalog: NewCatalog(context.TODO(), nil),
diff --git a/pkg/trait/ingress_test.go b/pkg/trait/ingress_test.go
index 4536d028f..b0f08cac1 100644
--- a/pkg/trait/ingress_test.go
+++ b/pkg/trait/ingress_test.go
@@ -43,7 +43,7 @@ func TestConfigureIngressTraitDoesSucceed(t *testing.T) {
 
 func TestConfigureDisabledIngressTraitDoesNotSucceed(t *testing.T) {
 	ingressTrait, environment := createNominalIngressTest()
-	ingressTrait.Enabled = new(bool)
+	ingressTrait.Enabled = BoolP(false)
 
 	configured, err := ingressTrait.Configure(environment)
 
@@ -67,8 +67,7 @@ func TestConfigureIngressTraitInWrongPhaseDoesNotSucceed(t *testing.T) {
 
 func TestConfigureAutoIngressTraitWithoutUserServiceDoesNotSucceed(t *testing.T) {
 	ingressTrait, environment := createNominalIngressTest()
-	auto := true
-	ingressTrait.Auto = &auto
+	ingressTrait.Auto = BoolP(true)
 	environment.Resources = kubernetes.NewCollection()
 
 	configured, err := ingressTrait.Configure(environment)
@@ -156,9 +155,8 @@ func TestApplyIngressTraitDoesSucceed(t *testing.T) {
 
 func createNominalIngressTest() (*ingressTrait, *Environment) {
 	trait := newIngressTrait().(*ingressTrait)
-	enabled := true
-	trait.Enabled = &enabled
-	trait.Auto = new(bool)
+	trait.Enabled = BoolP(true)
+	trait.Auto = BoolP(false)
 	trait.Host = "hostname"
 
 	environment := &Environment{
diff --git a/pkg/trait/jolokia_test.go b/pkg/trait/jolokia_test.go
index deabf6451..c3b4a4e12 100644
--- a/pkg/trait/jolokia_test.go
+++ b/pkg/trait/jolokia_test.go
@@ -208,7 +208,7 @@ func TestSetDefaultBoolJolokiaOptionShouldSucceed(t *testing.T) {
 func TestSetDefaultBoolJolokiaOptionShouldNotOverrideExistingValue(t *testing.T) {
 	trait := newJolokiaTrait().(*jolokiaTrait)
 	options := map[string]string{}
-	option := new(bool)
+	option := BoolP(false)
 
 	trait.setDefaultJolokiaOption(options, &option, "key", true)
 
@@ -251,7 +251,7 @@ func TestAddBoolPointerOptionToJolokiaOptions(t *testing.T) {
 	trait := newJolokiaTrait().(*jolokiaTrait)
 	options := map[string]string{}
 
-	trait.addToJolokiaOptions(options, "key", new(bool))
+	trait.addToJolokiaOptions(options, "key", BoolP(false))
 
 	assert.Len(t, options, 1)
 	assert.Equal(t, "false", options["key"])
@@ -268,8 +268,7 @@ func TestAddWrongTypeOptionToJolokiaOptionsDoesNothing(t *testing.T) {
 
 func createNominalJolokiaTest() (*jolokiaTrait, *Environment) {
 	trait := newJolokiaTrait().(*jolokiaTrait)
-	enabled := true
-	trait.Enabled = &enabled
+	trait.Enabled = BoolP(true)
 
 	environment := &Environment{
 		Catalog: NewCatalog(context.TODO(), nil),
diff --git a/pkg/trait/jvm_test.go b/pkg/trait/jvm_test.go
index ebf7909bc..343b25dd8 100644
--- a/pkg/trait/jvm_test.go
+++ b/pkg/trait/jvm_test.go
@@ -35,7 +35,6 @@ import (
 
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
 	"github.com/apache/camel-k/pkg/builder"
-	"github.com/apache/camel-k/pkg/util"
 	"github.com/apache/camel-k/pkg/util/camel"
 	"github.com/apache/camel-k/pkg/util/kubernetes"
 	"github.com/apache/camel-k/pkg/util/test"
@@ -69,7 +68,7 @@ func TestConfigureJvmTraitInWrongIntegrationKitPhaseDoesNotSucceed(t *testing.T)
 
 func TestConfigureJvmDisabledTraitDoesNotSucceed(t *testing.T) {
 	trait, environment := createNominalJvmTest(v1.IntegrationKitTypePlatform)
-	trait.Enabled = new(bool)
+	trait.Enabled = BoolP(false)
 
 	configured, err := trait.Configure(environment)
 	assert.Nil(t, err)
@@ -148,8 +147,8 @@ func TestApplyJvmTraitWithKNativeResource(t *testing.T) {
 
 func TestApplyJvmTraitWithDebugEnabled(t *testing.T) {
 	trait, environment := createNominalJvmTest(v1.IntegrationKitTypePlatform)
-	trait.Debug = util.BoolP(true)
-	trait.DebugSuspend = util.BoolP(true)
+	trait.Debug = BoolP(true)
+	trait.DebugSuspend = BoolP(true)
 
 	d := appsv1.Deployment{
 		Spec: appsv1.DeploymentSpec{
@@ -257,8 +256,8 @@ func createNominalJvmTest(kitType string) (*jvmTrait, *Environment) {
 	client, _ := test.NewFakeClient()
 
 	trait := newJvmTrait().(*jvmTrait)
-	trait.Enabled = util.BoolP(true)
-	trait.PrintCommand = util.BoolP(false)
+	trait.Enabled = BoolP(true)
+	trait.PrintCommand = BoolP(false)
 	trait.Ctx = context.TODO()
 	trait.Client = client
 
diff --git a/pkg/trait/pdb_test.go b/pkg/trait/pdb_test.go
index d2e09aa22..358dc97c9 100644
--- a/pkg/trait/pdb_test.go
+++ b/pkg/trait/pdb_test.go
@@ -94,8 +94,7 @@ func findPdb(resources *kubernetes.Collection) *v1beta1.PodDisruptionBudget {
 
 func createPdbTest() (*pdbTrait, *Environment, *appsv1.Deployment) {
 	trait := newPdbTrait().(*pdbTrait)
-	enabled := true
-	trait.Enabled = &enabled
+	trait.Enabled = BoolP(true)
 
 	deployment := &appsv1.Deployment{
 		ObjectMeta: metav1.ObjectMeta{
diff --git a/pkg/trait/platform_test.go b/pkg/trait/platform_test.go
index 8932ad2cc..16bf16016 100644
--- a/pkg/trait/platform_test.go
+++ b/pkg/trait/platform_test.go
@@ -57,8 +57,7 @@ func TestPlatformTraitChangeStatus(t *testing.T) {
 			}
 
 			trait := newPlatformTrait().(*platformTrait)
-			createPlatform := false
-			trait.CreateDefault = &createPlatform
+			trait.CreateDefault = BoolP(false)
 
 			var err error
 			trait.Client, err = test.NewFakeClient()
@@ -92,8 +91,7 @@ func TestPlatformTraitCreatesDefaultPlatform(t *testing.T) {
 	}
 
 	trait := newPlatformTrait().(*platformTrait)
-	createPlatform := true
-	trait.CreateDefault = &createPlatform
+	trait.CreateDefault = BoolP(true)
 
 	var err error
 	trait.Client, err = test.NewFakeClient()
@@ -149,8 +147,7 @@ func TestPlatformTraitExisting(t *testing.T) {
 			}
 
 			trait := newPlatformTrait().(*platformTrait)
-			createPlatform := true
-			trait.CreateDefault = &createPlatform
+			trait.CreateDefault = BoolP(true)
 
 			var err error
 			existingPlatform := v1.NewIntegrationPlatform("ns1", "existing")
diff --git a/pkg/trait/pod_test.go b/pkg/trait/pod_test.go
index 48d20d049..ca4bf0c24 100755
--- a/pkg/trait/pod_test.go
+++ b/pkg/trait/pod_test.go
@@ -12,7 +12,6 @@ import (
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
-	"github.com/apache/camel-k/pkg/util"
 	"github.com/apache/camel-k/pkg/util/kubernetes"
 )
 
@@ -73,7 +72,7 @@ func TestChangeEnvVariables(t *testing.T) {
 
 func createPodTest(podSpecTemplate string) (*podTrait, *Environment, *appsv1.Deployment) {
 	trait := newPodTrait().(*podTrait)
-	trait.Enabled = util.BoolP(true)
+	trait.Enabled = BoolP(true)
 
 	var podSpec v1.PodSpec
 	if podSpecTemplate != "" {
diff --git a/pkg/trait/pull_secret_test.go b/pkg/trait/pull_secret_test.go
index 9efe192a1..12cf6b6d4 100644
--- a/pkg/trait/pull_secret_test.go
+++ b/pkg/trait/pull_secret_test.go
@@ -18,19 +18,23 @@ limitations under the License.
 package trait
 
 import (
-	"strings"
+	"context"
 	"testing"
 
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
 	"github.com/apache/camel-k/pkg/util/kubernetes"
+	"github.com/apache/camel-k/pkg/util/test"
 	appsv1 "k8s.io/api/apps/v1"
 	corev1 "k8s.io/api/core/v1"
+	rbacv1 "k8s.io/api/rbac/v1"
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	"sigs.k8s.io/controller-runtime/pkg/client"
 
 	"github.com/stretchr/testify/assert"
 )
 
 func TestPullSecret(t *testing.T) {
-	e, deployment := getEnvironmentAndDeployment()
+	e, deployment := getEnvironmentAndDeployment(t)
 
 	trait := newPullSecretTrait().(*pullSecretTrait)
 	trait.SecretName = "xxxy"
@@ -44,7 +48,7 @@ func TestPullSecret(t *testing.T) {
 }
 
 func TestPullSecretDoesNothingWhenNotSetOnPlatform(t *testing.T) {
-	e, _ := getEnvironmentAndDeployment()
+	e, _ := getEnvironmentAndDeployment(t)
 	e.Platform = &v1.IntegrationPlatform{}
 
 	trait := newPullSecretTrait()
@@ -54,48 +58,56 @@ func TestPullSecretDoesNothingWhenNotSetOnPlatform(t *testing.T) {
 }
 
 func TestPullSecretAuto(t *testing.T) {
-	e, _ := getEnvironmentAndDeployment()
+	e, _ := getEnvironmentAndDeployment(t)
 
 	trait := newPullSecretTrait().(*pullSecretTrait)
-	trait.Auto = newFalse()
+	trait.Auto = BoolP(false)
 	enabled, err := trait.Configure(e)
 	assert.Nil(t, err)
 	assert.False(t, enabled)
 }
 
 func TestPullSecretImagePullerDelegation(t *testing.T) {
-	e, _ := getEnvironmentAndDeployment()
+	e, _ := getEnvironmentAndDeployment(t)
 
 	trait := newPullSecretTrait().(*pullSecretTrait)
-	trait.Auto = newFalse()
-	trait.ImagePullerDelegation = newTrue()
+	trait.Auto = BoolP(false)
+	trait.ImagePullerDelegation = BoolP(true)
 	enabled, err := trait.Configure(e)
 	assert.Nil(t, err)
 	assert.True(t, enabled)
 	assert.True(t, *trait.ImagePullerDelegation)
 
 	err = trait.Apply(e)
-	assert.Nil(t, err)
+	assert.NoError(t, err)
 
-	found := false
-	for _, item := range e.Resources.Items() {
-		found = strings.HasPrefix(item.GetName(), "camel-k-puller")
-		if found {
-			break
-		}
+	var roleBinding rbacv1.RoleBinding
+	roleBindingKey := client.ObjectKey{
+		Namespace: "test",
+		Name:      "camel-k-puller-test-default",
 	}
-	assert.True(t, found)
+	err = e.Client.Get(e.C, roleBindingKey, &roleBinding)
+	assert.NoError(t, err)
+	assert.Len(t, roleBinding.Subjects, 1)
 }
 
-func getEnvironmentAndDeployment() (*Environment, *appsv1.Deployment) {
+func getEnvironmentAndDeployment(t *testing.T) (*Environment, *appsv1.Deployment) {
 	e := &Environment{}
 	e.Integration = &v1.Integration{
+		ObjectMeta: metav1.ObjectMeta{
+			Namespace: "test",
+			Name:      "myit",
+		},
 		Status: v1.IntegrationStatus{
 			Phase: v1.IntegrationPhaseDeploying,
 		},
 	}
 
 	deployment := appsv1.Deployment{
+		ObjectMeta: metav1.ObjectMeta{
+			Namespace: "test",
+			Name:      "myit",
+		},
 		Spec: appsv1.DeploymentSpec{
 			Template: corev1.PodTemplateSpec{
 				Spec: corev1.PodSpec{},
@@ -104,15 +116,10 @@ func getEnvironmentAndDeployment() (*Environment, *appsv1.Deployment) {
 	}
 	e.Resources = kubernetes.NewCollection(&deployment)
 
-	return e, &deployment
-}
-
-func newFalse() *bool {
-	b := false
-	return &b
-}
+	var err error
+	e.C = context.TODO()
+	e.Client, err = test.NewFakeClient(e.Integration, &deployment)
+	assert.NoError(t, err)
 
-func newTrue() *bool {
-	b := true
-	return &b
+	return e, &deployment
 }
diff --git a/pkg/trait/quarkus_test.go b/pkg/trait/quarkus_test.go
index 181ba78a0..318bbb341 100644
--- a/pkg/trait/quarkus_test.go
+++ b/pkg/trait/quarkus_test.go
@@ -38,7 +38,7 @@ func TestConfigureQuarkusTraitShouldSucceed(t *testing.T) {
 
 func TestConfigureDisabledQuarkusTraitShouldFail(t *testing.T) {
 	quarkusTrait, environment := createNominalQuarkusTest()
-	quarkusTrait.Enabled = new(bool)
+	quarkusTrait.Enabled = BoolP(false)
 
 	configured, err := quarkusTrait.Configure(environment)
 
@@ -67,8 +67,7 @@ func TestQuarkusTraitAddBuildStepsShouldSucceed(t *testing.T) {
 
 func createNominalQuarkusTest() (*quarkusTrait, *Environment) {
 	trait := newQuarkusTrait().(*quarkusTrait)
-	enabled := true
-	trait.Enabled = &enabled
+	trait.Enabled = BoolP(true)
 
 	environment := &Environment{
 		CamelCatalog: &camel.RuntimeCatalog{},
diff --git a/pkg/trait/toleration_test.go b/pkg/trait/toleration_test.go
index fcd26afd5..5e0b46bfb 100644
--- a/pkg/trait/toleration_test.go
+++ b/pkg/trait/toleration_test.go
@@ -23,8 +23,6 @@ import (
 	"github.com/stretchr/testify/assert"
 
 	corev1 "k8s.io/api/core/v1"
-
-	"github.com/apache/camel-k/pkg/util"
 )
 
 func TestConfigureTolerationTraitMissingTaint(t *testing.T) {
@@ -128,7 +126,7 @@ func TestTolerationValidTaints(t *testing.T) {
 
 func createNominalTolerationTrait() *tolerationTrait {
 	tolerationTrait := newTolerationTrait().(*tolerationTrait)
-	tolerationTrait.Enabled = util.BoolP(true)
+	tolerationTrait.Enabled = BoolP(true)
 	tolerationTrait.Taints = make([]string, 0)
 
 	return tolerationTrait
diff --git a/pkg/trait/util_test.go b/pkg/trait/util_test.go
index 87d70cf59..d1488ad41 100644
--- a/pkg/trait/util_test.go
+++ b/pkg/trait/util_test.go
@@ -101,3 +101,24 @@ func TestCollectConfigurationPairs(t *testing.T) {
 		{Name: "p4", Value: "integration"},
 	})
 }
+
+func TestBoolPointerFunctions(t *testing.T) {
+	trueP := BoolP(true)
+	falseP := BoolP(false)
+
+	assert.True(t, IsTrue(trueP))
+	assert.False(t, IsTrue(falseP))
+	assert.False(t, IsTrue(nil))
+
+	assert.True(t, IsNilOrTrue(trueP))
+	assert.False(t, IsNilOrTrue(falseP))
+	assert.True(t, IsNilOrTrue(nil))
+
+	assert.False(t, IsFalse(trueP))
+	assert.True(t, IsFalse(falseP))
+	assert.False(t, IsFalse(nil))
+
+	assert.False(t, IsNilOrFalse(trueP))
+	assert.True(t, IsNilOrFalse(falseP))
+	assert.True(t, IsNilOrFalse(nil))
+}