Repository: numaproj/numaflow
Pull request #598 (2023-03-09 23:00:25)

feat: expose dnspolicy and dnsconfig to pod template
Explain what this PR does.

<!--

Before you push your changes:

* Run `make pre-push -B` to fix codegen and lint problems.

Then, you MUST:

* Sign-off your commit (otherwise the DCO check will fail).
* Use [a conventional commit message](https://www.conventionalcommits.org/en/v1.0.0/) (otherwise the commit message check will fail).

If you did not do this, reset all your commit and replace them with a single commit:

```
git reset HEAD~1 ;# change 1 to how many commits you made
git commit --signoff -m 'feat: my feat. Fixes #1234'
```

When creating your PR: 

* Make sure that "Fixes #" or "Closes #" is in both the PR title (for release notes) and description (to automatically link and close the issue).
* Say how you tested your changes. If you changed the UI, attach screenshots.
* Set your PR as a draft initially.
* Your PR needs to pass the required checks before it can be approved. 
* Once required tests have passed, mark your PR "Ready for review".

If changes were requested, once you've made them, you MUST dismiss the review to get it reviewed again.

-->


sandangel: thanks a lot for the PR. it really helps

Patch:
diff --git a/api/json-schema/schema.json b/api/json-schema/schema.json
index 1a62b3e0..aabb69bd 100644
--- a/api/json-schema/schema.json
+++ b/api/json-schema/schema.json
@@ -17264,6 +17264,14 @@
           "description": "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.",
           "type": "boolean"
         },
+        "dnsConfig": {
+          "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfig",
+          "description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy."
+        },
+        "dnsPolicy": {
+          "description": "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
+          "type": "string"
+        },
         "imagePullSecrets": {
           "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod",
           "items": {
@@ -17328,6 +17336,14 @@
         "containerTemplate": {
           "$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.ContainerTemplate"
         },
+        "dnsConfig": {
+          "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfig",
+          "description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy."
+        },
+        "dnsPolicy": {
+          "description": "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
+          "type": "string"
+        },
         "imagePullSecrets": {
           "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod",
           "items": {
@@ -17562,6 +17578,14 @@
         "containerTemplate": {
           "$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.ContainerTemplate"
         },
+        "dnsConfig": {
+          "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfig",
+          "description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy."
+        },
+        "dnsPolicy": {
+          "description": "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
+          "type": "string"
+        },
         "imagePullSecrets": {
           "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod",
           "items": {
@@ -18138,6 +18162,14 @@
           "$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.ContainerTemplate",
           "description": "ContainerTemplate contains customized spec for NATS container"
         },
+        "dnsConfig": {
+          "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfig",
+          "description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy."
+        },
+        "dnsPolicy": {
+          "description": "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
+          "type": "string"
+        },
         "encryption": {
           "description": "Whether encrypt the data at rest, defaults to false Enabling encryption might impact the performance, see https://docs.nats.io/running-a-nats-service/nats_admin/jetstream_admin/encryption_at_rest for the detail Toggling the value will impact encypting/decrypting existing messages.",
           "type": "boolean"
@@ -18265,6 +18297,14 @@
         "containerTemplate": {
           "$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.ContainerTemplate"
         },
+        "dnsConfig": {
+          "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfig",
+          "description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy."
+        },
+        "dnsPolicy": {
+          "description": "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
+          "type": "string"
+        },
         "imagePullSecrets": {
           "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod",
           "items": {
@@ -18416,6 +18456,14 @@
           "description": "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.",
           "type": "boolean"
         },
+        "dnsConfig": {
+          "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfig",
+          "description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy."
+        },
+        "dnsPolicy": {
+          "description": "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
+          "type": "string"
+        },
         "imagePullSecrets": {
           "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod",
           "items": {
@@ -19113,6 +19161,14 @@
         "containerTemplate": {
           "$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.ContainerTemplate"
         },
+        "dnsConfig": {
+          "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfig",
+          "description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy."
+        },
+        "dnsPolicy": {
+          "description": "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
+          "type": "string"
+        },
         "fromEdges": {
           "items": {
             "$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.Edge"
diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json
index e5bf5a16..b2ad1708 100644
--- a/api/openapi-spec/swagger.json
+++ b/api/openapi-spec/swagger.json
@@ -17269,6 +17269,14 @@
           "description": "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.",
           "type": "boolean"
         },
+        "dnsConfig": {
+          "description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.",
+          "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfig"
+        },
+        "dnsPolicy": {
+          "description": "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
+          "type": "string"
+        },
         "imagePullSecrets": {
           "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod",
           "type": "array",
@@ -17336,6 +17344,14 @@
         "containerTemplate": {
           "$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.ContainerTemplate"
         },
+        "dnsConfig": {
+          "description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.",
+          "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfig"
+        },
+        "dnsPolicy": {
+          "description": "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
+          "type": "string"
+        },
         "imagePullSecrets": {
           "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod",
           "type": "array",
@@ -17567,6 +17583,14 @@
         "containerTemplate": {
           "$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.ContainerTemplate"
         },
+        "dnsConfig": {
+          "description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.",
+          "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfig"
+        },
+        "dnsPolicy": {
+          "description": "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
+          "type": "string"
+        },
         "imagePullSecrets": {
           "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod",
           "type": "array",
@@ -18134,6 +18158,14 @@
           "description": "ContainerTemplate contains customized spec for NATS container",
           "$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.ContainerTemplate"
         },
+        "dnsConfig": {
+          "description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.",
+          "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfig"
+        },
+        "dnsPolicy": {
+          "description": "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
+          "type": "string"
+        },
         "encryption": {
           "description": "Whether encrypt the data at rest, defaults to false Enabling encryption might impact the performance, see https://docs.nats.io/running-a-nats-service/nats_admin/jetstream_admin/encryption_at_rest for the detail Toggling the value will impact encypting/decrypting existing messages.",
           "type": "boolean"
@@ -18261,6 +18293,14 @@
         "containerTemplate": {
           "$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.ContainerTemplate"
         },
+        "dnsConfig": {
+          "description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.",
+          "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfig"
+        },
+        "dnsPolicy": {
+          "description": "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
+          "type": "string"
+        },
         "imagePullSecrets": {
           "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod",
           "type": "array",
@@ -18412,6 +18452,14 @@
           "description": "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.",
           "type": "boolean"
         },
+        "dnsConfig": {
+          "description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.",
+          "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfig"
+        },
+        "dnsPolicy": {
+          "description": "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
+          "type": "string"
+        },
         "imagePullSecrets": {
           "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod",
           "type": "array",
@@ -19095,6 +19143,14 @@
         "containerTemplate": {
           "$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.ContainerTemplate"
         },
+        "dnsConfig": {
+          "description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.",
+          "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfig"
+        },
+        "dnsPolicy": {
+          "description": "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
+          "type": "string"
+        },
         "fromEdges": {
           "type": "array",
           "items": {
diff --git a/config/base/crds/full/numaflow.numaproj.io_interstepbufferservices.yaml b/config/base/crds/full/numaflow.numaproj.io_interstepbufferservices.yaml
index 903b3b36..b25dcb14 100644
--- a/config/base/crds/full/numaflow.numaproj.io_interstepbufferservices.yaml
+++ b/config/base/crds/full/numaflow.numaproj.io_interstepbufferservices.yaml
@@ -547,6 +547,28 @@ spec:
                             type: object
                         type: object
                     type: object
+                  dnsConfig:
+                    properties:
+                      nameservers:
+                        items:
+                          type: string
+                        type: array
+                      options:
+                        items:
+                          properties:
+                            name:
+                              type: string
+                            value:
+                              type: string
+                          type: object
+                        type: array
+                      searches:
+                        items:
+                          type: string
+                        type: array
+                    type: object
+                  dnsPolicy:
+                    type: string
                   encryption:
                     type: boolean
                   imagePullSecrets:
@@ -1371,6 +1393,28 @@ spec:
                         type: object
                       automountServiceAccountToken:
                         type: boolean
+                      dnsConfig:
+                        properties:
+                          nameservers:
+                            items:
+                              type: string
+                            type: array
+                          options:
+                            items:
+                              properties:
+                                name:
+                                  type: string
+                                value:
+                                  type: string
+                              type: object
+                            type: array
+                          searches:
+                            items:
+                              type: string
+                            type: array
+                        type: object
+                      dnsPolicy:
+                        type: string
                       imagePullSecrets:
                         items:
                           properties:
diff --git a/config/base/crds/full/numaflow.numaproj.io_pipelines.yaml b/config/base/crds/full/numaflow.numaproj.io_pipelines.yaml
index 0efa4cc8..5f3a05c0 100644
--- a/config/base/crds/full/numaflow.numaproj.io_pipelines.yaml
+++ b/config/base/crds/full/numaflow.numaproj.io_pipelines.yaml
@@ -637,6 +637,28 @@ spec:
                                 type: object
                             type: object
                         type: object
+                      dnsConfig:
+                        properties:
+                          nameservers:
+                            items:
+                              type: string
+                            type: array
+                          options:
+                            items:
+                              properties:
+                                name:
+                                  type: string
+                                value:
+                                  type: string
+                              type: object
+                            type: array
+                          searches:
+                            items:
+                              type: string
+                            type: array
+                        type: object
+                      dnsPolicy:
+                        type: string
                       imagePullSecrets:
                         items:
                           properties:
@@ -1403,6 +1425,28 @@ spec:
                                 type: object
                             type: object
                         type: object
+                      dnsConfig:
+                        properties:
+                          nameservers:
+                            items:
+                              type: string
+                            type: array
+                          options:
+                            items:
+                              properties:
+                                name:
+                                  type: string
+                                value:
+                                  type: string
+                              type: object
+                            type: array
+                          searches:
+                            items:
+                              type: string
+                            type: array
+                        type: object
+                      dnsPolicy:
+                        type: string
                       imagePullSecrets:
                         items:
                           properties:
@@ -2023,6 +2067,28 @@ spec:
                               type: object
                           type: object
                       type: object
+                    dnsConfig:
+                      properties:
+                        nameservers:
+                          items:
+                            type: string
+                          type: array
+                        options:
+                          items:
+                            properties:
+                              name:
+                                type: string
+                              value:
+                                type: string
+                            type: object
+                          type: array
+                        searches:
+                          items:
+                            type: string
+                          type: array
+                      type: object
+                    dnsPolicy:
+                      type: string
                     imagePullSecrets:
                       items:
                         properties:
diff --git a/config/base/crds/full/numaflow.numaproj.io_vertices.yaml b/config/base/crds/full/numaflow.numaproj.io_vertices.yaml
index e30e1be1..78c44d81 100644
--- a/config/base/crds/full/numaflow.numaproj.io_vertices.yaml
+++ b/config/base/crds/full/numaflow.numaproj.io_vertices.yaml
@@ -546,6 +546,28 @@ spec:
                         type: object
                     type: object
                 type: object
+              dnsConfig:
+                properties:
+                  nameservers:
+                    items:
+                      type: string
+                    type: array
+                  options:
+                    items:
+                      properties:
+                        name:
+                          type: string
+                        value:
+                          type: string
+                      type: object
+                    type: array
+                  searches:
+                    items:
+                      type: string
+                    type: array
+                type: object
+              dnsPolicy:
+                type: string
               fromEdges:
                 items:
                   properties:
diff --git a/config/install.yaml b/config/install.yaml
index fd516865..d802c711 100644
--- a/config/install.yaml
+++ b/config/install.yaml
@@ -546,6 +546,28 @@ spec:
                             type: object
                         type: object
                     type: object
+                  dnsConfig:
+                    properties:
+                      nameservers:
+                        items:
+                          type: string
+                        type: array
+                      options:
+                        items:
+                          properties:
+                            name:
+                              type: string
+                            value:
+                              type: string
+                          type: object
+                        type: array
+                      searches:
+                        items:
+                          type: string
+                        type: array
+                    type: object
+                  dnsPolicy:
+                    type: string
                   encryption:
                     type: boolean
                   imagePullSecrets:
@@ -1370,6 +1392,28 @@ spec:
                         type: object
                       automountServiceAccountToken:
                         type: boolean
+                      dnsConfig:
+                        properties:
+                          nameservers:
+                            items:
+                              type: string
+                            type: array
+                          options:
+                            items:
+                              properties:
+                                name:
+                                  type: string
+                                value:
+                                  type: string
+                              type: object
+                            type: array
+                          searches:
+                            items:
+                              type: string
+                            type: array
+                        type: object
+                      dnsPolicy:
+                        type: string
                       imagePullSecrets:
                         items:
                           properties:
@@ -2891,6 +2935,28 @@ spec:
                                 type: object
                             type: object
                         type: object
+                      dnsConfig:
+                        properties:
+                          nameservers:
+                            items:
+                              type: string
+                            type: array
+                          options:
+                            items:
+                              properties:
+                                name:
+                                  type: string
+                                value:
+                                  type: string
+                              type: object
+                            type: array
+                          searches:
+                            items:
+                              type: string
+                            type: array
+                        type: object
+                      dnsPolicy:
+                        type: string
                       imagePullSecrets:
                         items:
                           properties:
@@ -3657,6 +3723,28 @@ spec:
                                 type: object
                             type: object
                         type: object
+                      dnsConfig:
+                        properties:
+                          nameservers:
+                            items:
+                              type: string
+                            type: array
+                          options:
+                            items:
+                              properties:
+                                name:
+                                  type: string
+                                value:
+                                  type: string
+                              type: object
+                            type: array
+                          searches:
+                            items:
+                              type: string
+                            type: array
+                        type: object
+                      dnsPolicy:
+                        type: string
                       imagePullSecrets:
                         items:
                           properties:
@@ -4277,6 +4365,28 @@ spec:
                               type: object
                           type: object
                       type: object
+                    dnsConfig:
+                      properties:
+                        nameservers:
+                          items:
+                            type: string
+                          type: array
+                        options:
+                          items:
+                            properties:
+                              name:
+                                type: string
+                              value:
+                                type: string
+                            type: object
+                          type: array
+                        searches:
+                          items:
+                            type: string
+                          type: array
+                      type: object
+                    dnsPolicy:
+                      type: string
                     imagePullSecrets:
                       items:
                         properties:
@@ -8010,6 +8120,28 @@ spec:
                         type: object
                     type: object
                 type: object
+              dnsConfig:
+                properties:
+                  nameservers:
+                    items:
+                      type: string
+                    type: array
+                  options:
+                    items:
+                      properties:
+                        name:
+                          type: string
+                        value:
+                          type: string
+                      type: object
+                    type: array
+                  searches:
+                    items:
+                      type: string
+                    type: array
+                type: object
+              dnsPolicy:
+                type: string
               fromEdges:
                 items:
                   properties:
diff --git a/config/namespace-install.yaml b/config/namespace-install.yaml
index 63bcc96f..cd87c5f4 100644
--- a/config/namespace-install.yaml
+++ b/config/namespace-install.yaml
@@ -546,6 +546,28 @@ spec:
                             type: object
                         type: object
                     type: object
+                  dnsConfig:
+                    properties:
+                      nameservers:
+                        items:
+                          type: string
+                        type: array
+                      options:
+                        items:
+                          properties:
+                            name:
+                              type: string
+                            value:
+                              type: string
+                          type: object
+                        type: array
+                      searches:
+                        items:
+                          type: string
+                        type: array
+                    type: object
+                  dnsPolicy:
+                    type: string
                   encryption:
                     type: boolean
                   imagePullSecrets:
@@ -1370,6 +1392,28 @@ spec:
                         type: object
                       automountServiceAccountToken:
                         type: boolean
+                      dnsConfig:
+                        properties:
+                          nameservers:
+                            items:
+                              type: string
+                            type: array
+                          options:
+                            items:
+                              properties:
+                                name:
+                                  type: string
+                                value:
+                                  type: string
+                              type: object
+                            type: array
+                          searches:
+                            items:
+                              type: string
+                            type: array
+                        type: object
+                      dnsPolicy:
+                        type: string
                       imagePullSecrets:
                         items:
                           properties:
@@ -2891,6 +2935,28 @@ spec:
                                 type: object
                             type: object
                         type: object
+                      dnsConfig:
+                        properties:
+                          nameservers:
+                            items:
+                              type: string
+                            type: array
+                          options:
+                            items:
+                              properties:
+                                name:
+                                  type: string
+                                value:
+                                  type: string
+                              type: object
+                            type: array
+                          searches:
+                            items:
+                              type: string
+                            type: array
+                        type: object
+                      dnsPolicy:
+                        type: string
                       imagePullSecrets:
                         items:
                           properties:
@@ -3657,6 +3723,28 @@ spec:
                                 type: object
                             type: object
                         type: object
+                      dnsConfig:
+                        properties:
+                          nameservers:
+                            items:
+                              type: string
+                            type: array
+                          options:
+                            items:
+                              properties:
+                                name:
+                                  type: string
+                                value:
+                                  type: string
+                              type: object
+                            type: array
+                          searches:
+                            items:
+                              type: string
+                            type: array
+                        type: object
+                      dnsPolicy:
+                        type: string
                       imagePullSecrets:
                         items:
                           properties:
@@ -4277,6 +4365,28 @@ spec:
                               type: object
                           type: object
                       type: object
+                    dnsConfig:
+                      properties:
+                        nameservers:
+                          items:
+                            type: string
+                          type: array
+                        options:
+                          items:
+                            properties:
+                              name:
+                                type: string
+                              value:
+                                type: string
+                            type: object
+                          type: array
+                        searches:
+                          items:
+                            type: string
+                          type: array
+                      type: object
+                    dnsPolicy:
+                      type: string
                     imagePullSecrets:
                       items:
                         properties:
@@ -8010,6 +8120,28 @@ spec:
                         type: object
                     type: object
                 type: object
+              dnsConfig:
+                properties:
+                  nameservers:
+                    items:
+                      type: string
+                    type: array
+                  options:
+                    items:
+                      properties:
+                        name:
+                          type: string
+                        value:
+                          type: string
+                      type: object
+                    type: array
+                  searches:
+                    items:
+                      type: string
+                    type: array
+                type: object
+              dnsPolicy:
+                type: string
               fromEdges:
                 items:
                   properties:
diff --git a/docs/APIs.md b/docs/APIs.md
index 23a498da..b6fc29c4 100644
--- a/docs/APIs.md
+++ b/docs/APIs.md
@@ -201,6 +201,37 @@ should be automatically mounted.
 </p>
 </td>
 </tr>
+<tr>
+<td>
+<code>dnsPolicy</code></br> <em>
+<a href="https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#dnspolicy-v1-core">
+Kubernetes core/v1.DNSPolicy </a> </em>
+</td>
+<td>
+<em>(Optional)</em>
+<p>
+Set DNS policy for the pod. Defaults to “ClusterFirst”. Valid values are
+‘ClusterFirstWithHostNet’, ‘ClusterFirst’, ‘Default’ or ‘None’. DNS
+parameters given in DNSConfig will be merged with the policy selected
+with DNSPolicy. To have DNS options set along with hostNetwork, you have
+to specify DNS policy explicitly to ‘ClusterFirstWithHostNet’.
+</p>
+</td>
+</tr>
+<tr>
+<td>
+<code>dnsConfig</code></br> <em>
+<a href="https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#poddnsconfig-v1-core">
+Kubernetes core/v1.PodDNSConfig </a> </em>
+</td>
+<td>
+<em>(Optional)</em>
+<p>
+Specifies the DNS parameters of a pod. Parameters specified here will be
+merged to the generated DNS configuration based on DNSPolicy.
+</p>
+</td>
+</tr>
 </tbody>
 </table>
 <h3 id="numaflow.numaproj.io/v1alpha1.AbstractVertex">
diff --git a/pkg/apis/numaflow/v1alpha1/generated.pb.go b/pkg/apis/numaflow/v1alpha1/generated.pb.go
index 68758b63..dcf8823d 100644
--- a/pkg/apis/numaflow/v1alpha1/generated.pb.go
+++ b/pkg/apis/numaflow/v1alpha1/generated.pb.go
@@ -2037,359 +2037,363 @@ func init() {
 }
 
 var fileDescriptor_9d0d1b17d3865563 = []byte{
-	// 5627 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7c, 0x5d, 0x6c, 0x24, 0xd9,
-	0x55, 0xff, 0x56, 0x7f, 0xb9, 0xfb, 0xb4, 0x3d, 0x1f, 0x77, 0x76, 0x66, 0x7b, 0x9c, 0x59, 0xf7,
-	0xa4, 0xa2, 0x5d, 0x4d, 0xfe, 0xff, 0xc4, 0x66, 0xcd, 0x86, 0x4c, 0x80, 0x64, 0xd7, 0x6d, 0x8f,
-	0x67, 0x67, 0xc6, 0x9e, 0x75, 0x4e, 0xdb, 0x33, 0x9b, 0x04, 0xb2, 0x94, 0xab, 0x6f, 0xb7, 0x6b,
-	0xbb, 0xba, 0xaa, 0x53, 0x75, 0xdb, 0x33, 0x5e, 0x88, 0x88, 0x92, 0x87, 0x04, 0x11, 0x14, 0x24,
-	0x84, 0x14, 0x11, 0x05, 0x09, 0x09, 0x09, 0x81, 0x14, 0x89, 0x07, 0xf2, 0x42, 0x5e, 0x78, 0x42,
-	0x81, 0x07, 0xc8, 0x03, 0x12, 0x41, 0x8a, 0x5a, 0xc4, 0x3c, 0xf1, 0x00, 0x0a, 0xca, 0x4b, 0x34,
-	0x42, 0x02, 0xdd, 0x8f, 0xfa, 0xec, 0x6a, 0x8f, 0xdd, 0x6d, 0x6f, 0x66, 0xc5, 0x5b, 0xd5, 0xb9,
-	0xe7, 0xfc, 0xce, 0xbd, 0xb7, 0xee, 0x3d, 0xf7, 0xdc, 0x73, 0xee, 0x2d, 0xb8, 0xdd, 0xb1, 0xd8,
-	0xde, 0x60, 0x77, 0xd1, 0x74, 0x7b, 0x4b, 0xce, 0xa0, 0x67, 0xf4, 0x3d, 0xf7, 0x1d, 0xf1, 0xd0,
-	0xb6, 0xdd, 0x47, 0x4b, 0xfd, 0x6e, 0x67, 0xc9, 0xe8, 0x5b, 0x7e, 0x44, 0xd9, 0x7f, 0xc5, 0xb0,
-	0xfb, 0x7b, 0xc6, 0x2b, 0x4b, 0x1d, 0xea, 0x50, 0xcf, 0x60, 0xb4, 0xb5, 0xd8, 0xf7, 0x5c, 0xe6,
-	0x92, 0x8f, 0x47, 0x40, 0x8b, 0x01, 0xd0, 0x62, 0x20, 0xb6, 0xd8, 0xef, 0x76, 0x16, 0x39, 0x50,
-	0x44, 0x09, 0x80, 0xe6, 0x3f, 0x1a, 0xab, 0x41, 0xc7, 0xed, 0xb8, 0x4b, 0x02, 0x6f, 0x77, 0xd0,
-	0x16, 0x6f, 0xe2, 0x45, 0x3c, 0x49, 0x3d, 0xf3, 0x7a, 0xf7, 0xa6, 0xbf, 0x68, 0xb9, 0xbc, 0x5a,
-	0x4b, 0xa6, 0xeb, 0xd1, 0xa5, 0xfd, 0x91, 0xba, 0xcc, 0xbf, 0x1a, 0xf1, 0xf4, 0x0c, 0x73, 0xcf,
-	0x72, 0xa8, 0x77, 0x10, 0xb4, 0x65, 0xc9, 0xa3, 0xbe, 0x3b, 0xf0, 0x4c, 0x7a, 0x22, 0x29, 0x7f,
-	0xa9, 0x47, 0x99, 0x91, 0xa5, 0x6b, 0x69, 0x9c, 0x94, 0x37, 0x70, 0x98, 0xd5, 0x1b, 0x55, 0xf3,
-	0x4b, 0x4f, 0x13, 0xf0, 0xcd, 0x3d, 0xda, 0x33, 0xd2, 0x72, 0xfa, 0xf7, 0xca, 0x70, 0x69, 0x65,
-	0xd7, 0x67, 0x9e, 0x61, 0xb2, 0x2d, 0xb7, 0xb5, 0x4d, 0x7b, 0x7d, 0xdb, 0x60, 0x94, 0x74, 0xa1,
-	0xcc, 0xeb, 0xd6, 0x32, 0x98, 0x51, 0xd3, 0xae, 0x6b, 0x37, 0xaa, 0xcb, 0x2b, 0x8b, 0x13, 0x7e,
-	0x8b, 0xc5, 0x4d, 0x05, 0xd4, 0x98, 0x3d, 0x1c, 0xd6, 0xcb, 0xc1, 0x1b, 0x86, 0x0a, 0xc8, 0x37,
-	0x35, 0x98, 0x75, 0xdc, 0x16, 0x6d, 0x52, 0x9b, 0x9a, 0xcc, 0xf5, 0x6a, 0xb9, 0xeb, 0xf9, 0x1b,
-	0xd5, 0xe5, 0xcf, 0x4f, 0xac, 0x31, 0xa3, 0x45, 0x8b, 0xf7, 0x63, 0x0a, 0x6e, 0x39, 0xcc, 0x3b,
-	0x68, 0x3c, 0xff, 0xfd, 0x61, 0xfd, 0xb9, 0xc3, 0x61, 0x7d, 0x36, 0x5e, 0x84, 0x89, 0x9a, 0x90,
-	0x1d, 0xa8, 0x32, 0xd7, 0xe6, 0x5d, 0x66, 0xb9, 0x8e, 0x5f, 0xcb, 0x8b, 0x8a, 0x2d, 0x2c, 0xca,
-	0xde, 0xe6, 0xea, 0x17, 0xf9, 0x70, 0x59, 0xdc, 0x7f, 0x65, 0x71, 0x3b, 0x64, 0x6b, 0x5c, 0x52,
-	0xc0, 0xd5, 0x88, 0xe6, 0x63, 0x1c, 0x87, 0x50, 0x38, 0xef, 0x53, 0x73, 0xe0, 0x59, 0xec, 0x60,
-	0xd5, 0x75, 0x18, 0x7d, 0xcc, 0x6a, 0x05, 0xd1, 0xcb, 0x2f, 0x67, 0x41, 0x6f, 0xb9, 0xad, 0x66,
-	0x92, 0xbb, 0x71, 0xe9, 0x70, 0x58, 0x3f, 0x9f, 0x22, 0x62, 0x1a, 0x93, 0x38, 0x70, 0xc1, 0xea,
-	0x19, 0x1d, 0xba, 0x35, 0xb0, 0xed, 0x26, 0x35, 0x3d, 0xca, 0xfc, 0x5a, 0x51, 0x34, 0xe1, 0x46,
-	0x96, 0x9e, 0x0d, 0xd7, 0x34, 0xec, 0x37, 0x77, 0xdf, 0xa1, 0x26, 0x43, 0xda, 0xa6, 0x1e, 0x75,
-	0x4c, 0xda, 0xa8, 0xa9, 0xc6, 0x5c, 0xb8, 0x93, 0x42, 0xc2, 0x11, 0x6c, 0x72, 0x1b, 0x2e, 0xf6,
-	0x3d, 0xcb, 0x15, 0x55, 0xb0, 0x0d, 0xdf, 0xbf, 0x6f, 0xf4, 0x68, 0xad, 0x74, 0x5d, 0xbb, 0x51,
-	0x69, 0x5c, 0x55, 0x30, 0x17, 0xb7, 0xd2, 0x0c, 0x38, 0x2a, 0x43, 0x6e, 0x40, 0x39, 0x20, 0xd6,
-	0x66, 0xae, 0x6b, 0x37, 0x8a, 0x72, 0xec, 0x04, 0xb2, 0x18, 0x96, 0x92, 0x75, 0x28, 0x1b, 0xed,
-	0xb6, 0xe5, 0x70, 0xce, 0xb2, 0xe8, 0xc2, 0x6b, 0x59, 0x4d, 0x5b, 0x51, 0x3c, 0x12, 0x27, 0x78,
-	0xc3, 0x50, 0x96, 0xdc, 0x05, 0xe2, 0x53, 0x6f, 0xdf, 0x32, 0xe9, 0x8a, 0x69, 0xba, 0x03, 0x87,
-	0x89, 0xba, 0x57, 0x44, 0xdd, 0xe7, 0x55, 0xdd, 0x49, 0x73, 0x84, 0x03, 0x33, 0xa4, 0xc8, 0xeb,
-	0x70, 0x41, 0x4d, 0xbb, 0xa8, 0x17, 0x40, 0x20, 0x3d, 0xcf, 0x3b, 0x12, 0x53, 0x65, 0x38, 0xc2,
-	0x4d, 0x5a, 0x70, 0xcd, 0x18, 0x30, 0xb7, 0xc7, 0x21, 0x93, 0x4a, 0xb7, 0xdd, 0x2e, 0x75, 0x6a,
-	0xd5, 0xeb, 0xda, 0x8d, 0x72, 0xe3, 0xfa, 0xe1, 0xb0, 0x7e, 0x6d, 0xe5, 0x08, 0x3e, 0x3c, 0x12,
-	0x65, 0xfe, 0x35, 0xb8, 0x38, 0x32, 0x2b, 0xc8, 0x05, 0xc8, 0x77, 0xe9, 0x81, 0x98, 0xf4, 0x15,
-	0xe4, 0x8f, 0xe4, 0x79, 0x28, 0xee, 0x1b, 0xf6, 0x80, 0xd6, 0x72, 0x82, 0x26, 0x5f, 0x7e, 0x39,
-	0x77, 0x53, 0xd3, 0x87, 0x15, 0x38, 0x17, 0xcc, 0xb5, 0x07, 0xd4, 0x63, 0xf4, 0x31, 0xb9, 0x0e,
-	0x05, 0x87, 0xb7, 0x57, 0xc8, 0x37, 0x66, 0x55, 0xcf, 0x15, 0x44, 0x3b, 0x45, 0x09, 0x31, 0xa1,
-	0x24, 0x6d, 0xa5, 0xc0, 0xab, 0x2e, 0xbf, 0x36, 0xf1, 0x34, 0x6f, 0x0a, 0x98, 0x06, 0x1c, 0x0e,
-	0xeb, 0x25, 0xf9, 0x8c, 0x0a, 0x9a, 0x7c, 0x0e, 0x0a, 0xbe, 0xe5, 0x74, 0x6b, 0x79, 0xa1, 0xe2,
-	0x93, 0x93, 0xab, 0xb0, 0x9c, 0x6e, 0xa3, 0xcc, 0x5b, 0xc0, 0x9f, 0x50, 0x80, 0x92, 0x87, 0x90,
-	0x1f, 0xb4, 0xda, 0x6a, 0xc6, 0xfe, 0xea, 0xc4, 0xd8, 0x3b, 0x6b, 0xeb, 0x8d, 0x99, 0xc3, 0x61,
-	0x3d, 0xbf, 0xb3, 0xb6, 0x8e, 0x1c, 0x91, 0x7c, 0x43, 0x83, 0x8b, 0xa6, 0xeb, 0x30, 0x83, 0xdb,
-	0xef, 0xc0, 0x72, 0xd5, 0x8a, 0x42, 0xcf, 0xdd, 0x89, 0xf5, 0xac, 0xa6, 0x11, 0x1b, 0x97, 0xf9,
-	0x44, 0x1c, 0x21, 0xe3, 0xa8, 0x6e, 0xf2, 0x2d, 0x0d, 0x2e, 0xf3, 0x09, 0x32, 0xc2, 0x2c, 0xa6,
-	0xf5, 0xe9, 0xd6, 0xea, 0xea, 0xe1, 0xb0, 0x7e, 0xf9, 0x4e, 0x96, 0x32, 0xcc, 0xae, 0x03, 0xaf,
-	0xdd, 0x25, 0x63, 0xd4, 0xd6, 0x0b, 0x93, 0x51, 0x5d, 0xde, 0x38, 0xcd, 0xf5, 0xa3, 0xf1, 0x01,
-	0x35, 0x94, 0xb3, 0x96, 0x4b, 0xcc, 0xaa, 0x05, 0xb9, 0x05, 0x33, 0xfb, 0xae, 0x3d, 0xe8, 0x51,
-	0xbf, 0x56, 0x16, 0x46, 0x77, 0x3e, 0xcb, 0x32, 0x3d, 0x10, 0x2c, 0x8d, 0xf3, 0x0a, 0x7e, 0x46,
-	0xbe, 0xfb, 0x18, 0xc8, 0x12, 0x0b, 0x4a, 0xb6, 0xd5, 0xb3, 0x98, 0x2f, 0xac, 0x51, 0x75, 0xf9,
-	0xd6, 0xc4, 0xcd, 0x92, 0x53, 0x74, 0x43, 0x80, 0xc9, 0x59, 0x23, 0x9f, 0x51, 0x29, 0x20, 0x26,
-	0x14, 0x7d, 0xd3, 0xb0, 0xa5, 0xb5, 0xaa, 0x2e, 0x7f, 0x6a, 0xf2, 0x69, 0xc3, 0x51, 0x1a, 0x73,
-	0xaa, 0x4d, 0x45, 0xf1, 0x8a, 0x12, 0x9b, 0xfc, 0x3a, 0x9c, 0x4b, 0x7c, 0x4d, 0xbf, 0x56, 0x15,
-	0xbd, 0xf3, 0x62, 0x56, 0xef, 0x84, 0x5c, 0x8d, 0x2b, 0x0a, 0xec, 0x5c, 0x62, 0x84, 0xf8, 0x98,
-	0x02, 0x23, 0xf7, 0xa0, 0xec, 0x5b, 0x2d, 0x6a, 0x1a, 0x9e, 0x5f, 0x9b, 0x3d, 0x0e, 0xf0, 0x05,
-	0x05, 0x5c, 0x6e, 0x2a, 0x31, 0x0c, 0x01, 0xf4, 0x87, 0x30, 0xb7, 0x32, 0x60, 0x7b, 0xae, 0x67,
-	0xbd, 0x2b, 0x56, 0x6e, 0xb2, 0x0e, 0x45, 0x26, 0x2c, 0xb0, 0x74, 0x8a, 0x5e, 0xca, 0x82, 0x96,
-	0xab, 0xe1, 0x3d, 0x7a, 0x10, 0x18, 0xd6, 0x46, 0x85, 0x77, 0x82, 0xb4, 0xc8, 0x52, 0x5c, 0xff,
-	0x13, 0x0d, 0x2a, 0x0d, 0xc3, 0xb7, 0x4c, 0x0e, 0x4f, 0x56, 0xa1, 0x30, 0xf0, 0xa9, 0x77, 0x32,
-	0x50, 0x61, 0x95, 0x76, 0x7c, 0xea, 0xa1, 0x10, 0x26, 0x6f, 0x42, 0xb9, 0x6f, 0xf8, 0xfe, 0x23,
-	0xd7, 0x6b, 0x29, 0xcb, 0x7a, 0x4c, 0x20, 0xb9, 0xb4, 0x2a, 0x51, 0x0c, 0x41, 0xf4, 0x2a, 0x54,
-	0x1a, 0xb6, 0x61, 0x76, 0xf7, 0x5c, 0x9b, 0xea, 0x9f, 0x85, 0x52, 0x63, 0xd0, 0x6e, 0x53, 0xef,
-	0x18, 0x16, 0x7e, 0x11, 0x0a, 0xec, 0xa0, 0xaf, 0xd6, 0x8b, 0x70, 0xf5, 0x2c, 0x6c, 0x1f, 0xf4,
-	0xe9, 0x93, 0x61, 0x1d, 0x24, 0x0e, 0x7f, 0x43, 0xc1, 0xa7, 0xff, 0x54, 0x83, 0x4b, 0x92, 0xa8,
-	0x56, 0xa9, 0x55, 0xd7, 0x69, 0x5b, 0x1d, 0x42, 0xa1, 0xe8, 0xd1, 0x96, 0xe5, 0xab, 0x7e, 0x59,
-	0x9b, 0x78, 0x38, 0x22, 0x47, 0x91, 0xa0, 0xf2, 0x5b, 0x08, 0x02, 0x4a, 0x74, 0x32, 0x80, 0xca,
-	0x3b, 0x94, 0xf9, 0xcc, 0xa3, 0x46, 0x4f, 0xf5, 0xdc, 0x1b, 0x13, 0xab, 0xba, 0x4b, 0x59, 0x53,
-	0x20, 0x29, 0x75, 0x73, 0x87, 0xc3, 0x7a, 0x25, 0x24, 0x62, 0xa4, 0x49, 0xff, 0x59, 0x01, 0x2a,
-	0xe1, 0x28, 0x24, 0x1f, 0x82, 0xa2, 0x70, 0xa7, 0x54, 0xb7, 0x86, 0x53, 0x47, 0x78, 0x5d, 0x28,
-	0xcb, 0xc8, 0x4b, 0x30, 0x63, 0xba, 0xbd, 0x9e, 0xe1, 0xb4, 0x84, 0x8b, 0x5c, 0x69, 0x54, 0xb9,
-	0xc5, 0x58, 0x95, 0x24, 0x0c, 0xca, 0xc8, 0x35, 0x28, 0x18, 0x5e, 0x47, 0x7a, 0xab, 0x15, 0x39,
-	0x4e, 0x56, 0xbc, 0x8e, 0x8f, 0x82, 0x4a, 0x3e, 0x01, 0x79, 0xea, 0xec, 0xd7, 0x0a, 0xe3, 0x4d,
-	0xd2, 0x2d, 0x67, 0xff, 0x81, 0xe1, 0x35, 0xaa, 0xaa, 0x0e, 0xf9, 0x5b, 0xce, 0x3e, 0x72, 0x19,
-	0xb2, 0x01, 0x33, 0xd4, 0xd9, 0x5f, 0xf7, 0xdc, 0x9e, 0x72, 0x23, 0x3f, 0x38, 0x46, 0x9c, 0xb3,
-	0xa8, 0xd5, 0x39, 0x34, 0x6c, 0x8a, 0x8c, 0x01, 0x04, 0xf9, 0x0c, 0xcc, 0x4a, 0x1b, 0xb7, 0xc9,
-	0x5d, 0x12, 0xbf, 0x56, 0x12, 0x90, 0xf5, 0xf1, 0x46, 0x52, 0xf0, 0x45, 0x6e, 0x7b, 0x8c, 0xe8,
-	0x63, 0x02, 0x8a, 0x7c, 0x06, 0x2a, 0xc1, 0x8e, 0xcc, 0x57, 0xab, 0x41, 0xa6, 0xc7, 0x8b, 0x8a,
-	0x09, 0xe9, 0x17, 0x06, 0x96, 0x47, 0x7b, 0xd4, 0x61, 0x7e, 0xe3, 0xa2, 0x52, 0x50, 0x09, 0x4a,
-	0x7d, 0x8c, 0xd0, 0xc8, 0xee, 0xa8, 0xeb, 0x2e, 0xfd, 0xce, 0x0f, 0x8d, 0x99, 0x6d, 0x13, 0xf8,
-	0xed, 0x9f, 0x87, 0xf3, 0xa1, 0x6f, 0xbd, 0xe5, 0xda, 0x96, 0x79, 0xa0, 0x3c, 0xd1, 0x57, 0xb9,
-	0xf8, 0x9d, 0x64, 0xd1, 0x93, 0x61, 0xfd, 0xc5, 0xd1, 0xed, 0xeb, 0x62, 0xc4, 0x80, 0x69, 0x30,
-	0xfd, 0xbf, 0x72, 0x30, 0xba, 0xfc, 0x27, 0x3b, 0x4d, 0x3b, 0xed, 0x4e, 0x4b, 0x37, 0x48, 0x1a,
-	0x87, 0x9b, 0x4a, 0x6c, 0xfa, 0x46, 0x65, 0x7d, 0x98, 0xfc, 0x69, 0x7f, 0x98, 0xc9, 0xe7, 0x8e,
-	0xfe, 0xb5, 0x02, 0x9c, 0x5b, 0x33, 0x68, 0xcf, 0x75, 0x9e, 0xea, 0xbe, 0x68, 0xcf, 0x84, 0xfb,
-	0x72, 0x03, 0xca, 0x1e, 0xed, 0xdb, 0x96, 0x69, 0xf8, 0xe2, 0x63, 0xa9, 0x3d, 0x18, 0x2a, 0x1a,
-	0x86, 0xa5, 0x63, 0xdc, 0xd6, 0xfc, 0x33, 0xe9, 0xb6, 0x16, 0x7e, 0xfe, 0x6e, 0xab, 0xfe, 0xa3,
-	0x1c, 0x14, 0x6e, 0xb5, 0x3a, 0x94, 0x2f, 0xa5, 0x6d, 0x6e, 0x4c, 0x53, 0x4b, 0xa9, 0x30, 0x93,
-	0xa2, 0x84, 0xcc, 0x43, 0x8e, 0xb9, 0x6a, 0xae, 0x80, 0x2a, 0xcf, 0x6d, 0xbb, 0x98, 0x63, 0x2e,
-	0x79, 0x17, 0xc0, 0x74, 0x9d, 0x96, 0x15, 0x84, 0x26, 0xa6, 0x6b, 0xd8, 0xba, 0xeb, 0x3d, 0x32,
-	0xbc, 0xd6, 0x6a, 0x88, 0xd8, 0x38, 0x77, 0x38, 0xac, 0x43, 0xf4, 0x8e, 0x31, 0x6d, 0xa4, 0x13,
-	0x3a, 0xa5, 0xb2, 0x43, 0x57, 0x27, 0xd6, 0xcb, 0x3b, 0xe2, 0x08, 0x97, 0xf4, 0x15, 0xa8, 0xf6,
-	0x0d, 0xcf, 0xb0, 0x6d, 0x6a, 0x5b, 0x7e, 0x4f, 0xec, 0x85, 0x8a, 0x8d, 0xf3, 0x87, 0xc3, 0x7a,
-	0x75, 0x2b, 0x22, 0x63, 0x9c, 0x47, 0xff, 0x3d, 0x0d, 0x20, 0x42, 0x25, 0x9f, 0x84, 0xf3, 0xbb,
-	0xc2, 0xb9, 0xd8, 0x34, 0x1e, 0x6f, 0x50, 0xa7, 0xc3, 0xf6, 0x44, 0x7f, 0x17, 0xe4, 0x94, 0x6f,
-	0x24, 0x8b, 0x30, 0xcd, 0xcb, 0x37, 0xf3, 0x92, 0xb4, 0xe3, 0x1b, 0x0a, 0x53, 0x7c, 0x8f, 0x39,
-	0xb9, 0x99, 0x6f, 0xa4, 0xca, 0x70, 0x84, 0x5b, 0x37, 0xa0, 0xba, 0x6e, 0x3d, 0xa6, 0xad, 0x87,
-	0x96, 0xd3, 0x72, 0x1f, 0x11, 0x84, 0x92, 0x1d, 0x55, 0xa3, 0xba, 0xbc, 0x18, 0x33, 0x23, 0x61,
-	0xec, 0x2e, 0xea, 0xb1, 0x1e, 0x65, 0x06, 0x37, 0x2c, 0x6b, 0x03, 0x15, 0x5d, 0x92, 0xbd, 0x24,
-	0x6b, 0xab, 0x90, 0xf4, 0x57, 0xe1, 0xe2, 0xc8, 0xf7, 0x23, 0x75, 0x28, 0x76, 0xe9, 0xc1, 0x1d,
-	0xee, 0xab, 0x72, 0x3f, 0x40, 0x38, 0x3e, 0xf7, 0x38, 0x01, 0x25, 0x5d, 0xff, 0x6f, 0x0d, 0xca,
-	0xeb, 0x03, 0xc7, 0x14, 0x9e, 0xed, 0xd3, 0xdd, 0xba, 0xc0, 0xad, 0xc8, 0x65, 0xba, 0x15, 0x03,
-	0x28, 0x75, 0x1f, 0x85, 0x6e, 0x47, 0x75, 0x79, 0x73, 0xf2, 0x91, 0xa8, 0xaa, 0xb4, 0x78, 0x4f,
-	0xe0, 0xc9, 0x60, 0xdd, 0x39, 0x55, 0xa1, 0xd2, 0xbd, 0x87, 0x42, 0xa9, 0x52, 0x36, 0xff, 0x09,
-	0xa8, 0xc6, 0xd8, 0x4e, 0x14, 0xbd, 0xf8, 0x99, 0x06, 0xe7, 0x6f, 0xcb, 0x78, 0xa8, 0xeb, 0x49,
-	0x6f, 0x85, 0x5c, 0x85, 0xbc, 0xd7, 0x1f, 0x08, 0xf9, 0xbc, 0xdc, 0x9c, 0xe3, 0xd6, 0x0e, 0x72,
-	0x1a, 0x79, 0x0b, 0xca, 0x2d, 0xf5, 0x0d, 0x94, 0x97, 0x78, 0xd2, 0x2f, 0x27, 0xec, 0x67, 0xf0,
-	0x86, 0x21, 0x1a, 0x77, 0xeb, 0x7a, 0x7e, 0xa7, 0x69, 0xbd, 0x2b, 0x8d, 0x66, 0x51, 0xba, 0x75,
-	0x9b, 0x92, 0x84, 0x41, 0x19, 0x37, 0xc8, 0x5d, 0x7a, 0xb0, 0xca, 0x3d, 0x1c, 0x31, 0xeb, 0x94,
-	0x41, 0xbe, 0xa7, 0x68, 0x18, 0x96, 0xf2, 0x2f, 0x2f, 0xdb, 0x5c, 0x14, 0x03, 0x5d, 0x7c, 0xf9,
-	0x07, 0x9c, 0xa0, 0x9a, 0xaf, 0x7f, 0x23, 0x07, 0x57, 0x6e, 0x53, 0x26, 0xd7, 0xa3, 0x35, 0xda,
-	0xb7, 0xdd, 0x03, 0xbe, 0x8c, 0x23, 0xfd, 0x02, 0x79, 0x1d, 0xc0, 0xf2, 0x77, 0x9b, 0xfb, 0x26,
-	0x77, 0xd0, 0xd5, 0x68, 0xb8, 0xae, 0x3a, 0x1f, 0xee, 0x34, 0x1b, 0xaa, 0xe4, 0x49, 0xe2, 0x0d,
-	0x63, 0x32, 0x91, 0x2b, 0x9b, 0x3b, 0xc2, 0x95, 0x6d, 0x02, 0xf4, 0x23, 0x67, 0x20, 0x2f, 0x38,
-	0x7f, 0x31, 0x50, 0x73, 0x12, 0x3f, 0x20, 0x06, 0x33, 0xcd, 0xf2, 0xfc, 0xd7, 0x79, 0x98, 0xbf,
-	0x4d, 0x59, 0xe8, 0xa9, 0xab, 0x9d, 0x48, 0xb3, 0x4f, 0x4d, 0xde, 0x2b, 0x5f, 0xd5, 0xa0, 0x64,
-	0x1b, 0xbb, 0xd4, 0xf6, 0xc5, 0x6c, 0xaa, 0x2e, 0xbf, 0x3d, 0xf1, 0xf0, 0x1e, 0xaf, 0x65, 0x71,
-	0x43, 0x68, 0x48, 0x0d, 0x78, 0x49, 0x44, 0xa5, 0x9e, 0x7c, 0x0c, 0xaa, 0xa6, 0x3d, 0xf0, 0x19,
-	0xf5, 0xb6, 0x5c, 0x8f, 0xa9, 0x95, 0x39, 0x8c, 0x38, 0xaf, 0x46, 0x45, 0x18, 0xe7, 0x23, 0xcb,
-	0x00, 0xa6, 0x6d, 0x51, 0x87, 0x09, 0x29, 0x39, 0xcc, 0x48, 0xd0, 0xdf, 0xab, 0x61, 0x09, 0xc6,
-	0xb8, 0xb8, 0xaa, 0x9e, 0xeb, 0x58, 0xcc, 0x95, 0xaa, 0x0a, 0x49, 0x55, 0x9b, 0x51, 0x11, 0xc6,
-	0xf9, 0x84, 0x18, 0x65, 0x9e, 0x65, 0xfa, 0x42, 0xac, 0x98, 0x12, 0x8b, 0x8a, 0x30, 0xce, 0xc7,
-	0x67, 0x72, 0xac, 0xfd, 0x27, 0x9a, 0xc9, 0xdf, 0x2b, 0xc3, 0x42, 0xa2, 0x5b, 0x99, 0xc1, 0x68,
-	0x7b, 0x60, 0x37, 0x29, 0x0b, 0x3e, 0xe0, 0xc7, 0xa0, 0xaa, 0x22, 0xb5, 0xf7, 0x23, 0x2b, 0x17,
-	0x56, 0xaa, 0x19, 0x15, 0x61, 0x9c, 0x8f, 0xfc, 0x6e, 0xf4, 0xdd, 0x65, 0x52, 0xc2, 0x3c, 0x9d,
-	0xef, 0x3e, 0x52, 0xc1, 0x63, 0x7d, 0xfb, 0x25, 0xa8, 0x38, 0x06, 0xf3, 0xc5, 0x44, 0x52, 0x73,
-	0x26, 0xf4, 0xbb, 0xef, 0x07, 0x05, 0x18, 0xf1, 0x90, 0x2d, 0x78, 0x5e, 0x75, 0xf1, 0xad, 0xc7,
-	0x7d, 0xd7, 0x63, 0xd4, 0x93, 0xb2, 0x05, 0x21, 0x7b, 0x4d, 0xc9, 0x3e, 0xbf, 0x99, 0xc1, 0x83,
-	0x99, 0x92, 0x64, 0x13, 0x2e, 0x99, 0x62, 0x67, 0x8b, 0xd4, 0x76, 0x8d, 0x56, 0x00, 0x58, 0x14,
-	0x80, 0xa1, 0x93, 0xb9, 0x3a, 0xca, 0x82, 0x59, 0x72, 0xe9, 0xd1, 0x5c, 0x9a, 0x68, 0x34, 0xcf,
-	0x4c, 0x32, 0x9a, 0xcb, 0x93, 0x8d, 0xe6, 0xca, 0xf1, 0x46, 0x33, 0xef, 0x79, 0x3e, 0x8e, 0xa8,
-	0xb7, 0x32, 0x60, 0x7b, 0x32, 0xe6, 0x12, 0xcb, 0x03, 0x84, 0x3d, 0xdf, 0xcc, 0xe0, 0xc1, 0x4c,
-	0x49, 0xb2, 0x0b, 0xf3, 0x92, 0x7e, 0xcb, 0x31, 0xbd, 0x83, 0x3e, 0x5f, 0x39, 0x62, 0xb8, 0x55,
-	0x81, 0xab, 0x2b, 0xdc, 0xf9, 0xe6, 0x58, 0x4e, 0x3c, 0x02, 0x85, 0xfc, 0x0a, 0xcc, 0xc9, 0xaf,
-	0xb4, 0x69, 0xf4, 0x05, 0xec, 0xac, 0x80, 0xbd, 0xac, 0x60, 0xe7, 0x56, 0xe3, 0x85, 0x98, 0xe4,
-	0x25, 0x2b, 0x70, 0xbe, 0xbf, 0x6f, 0xf2, 0xc7, 0x3b, 0xed, 0xfb, 0x94, 0xb6, 0x68, 0xab, 0x36,
-	0x27, 0xc4, 0x5f, 0x08, 0x36, 0x79, 0x5b, 0xc9, 0x62, 0x4c, 0xf3, 0x93, 0x9b, 0x30, 0xeb, 0x33,
-	0xc3, 0x63, 0x2a, 0xa4, 0x51, 0x3b, 0x27, 0xb3, 0x26, 0xc1, 0x8e, 0xbf, 0x19, 0x2b, 0xc3, 0x04,
-	0xe7, 0x34, 0xd6, 0xe3, 0x89, 0x5c, 0x0c, 0x45, 0x4c, 0x28, 0x65, 0xf6, 0xbf, 0x92, 0x36, 0xfb,
-	0x9f, 0x9b, 0x66, 0xfa, 0x67, 0x68, 0x38, 0xd6, 0xb4, 0xbf, 0x0b, 0xc4, 0x53, 0x11, 0x2c, 0xb9,
-	0x93, 0x88, 0x59, 0xfe, 0x30, 0x37, 0x85, 0x23, 0x1c, 0x98, 0x21, 0x45, 0x9a, 0x70, 0xd9, 0xa7,
-	0x0e, 0xb3, 0x1c, 0x6a, 0x27, 0xe1, 0xe4, 0x92, 0xf0, 0xa2, 0x82, 0xbb, 0xdc, 0xcc, 0x62, 0xc2,
-	0x6c, 0xd9, 0x69, 0x3a, 0xff, 0x47, 0x15, 0xb1, 0xee, 0xca, 0xae, 0x39, 0x35, 0xb3, 0xfd, 0xd5,
-	0xb4, 0xd9, 0x7e, 0x7b, 0xfa, 0xef, 0x36, 0x99, 0xc9, 0x5e, 0x06, 0x10, 0x5f, 0x21, 0x6e, 0xb3,
-	0x43, 0x4b, 0x85, 0x61, 0x09, 0xc6, 0xb8, 0xf8, 0x2c, 0x0c, 0xfa, 0x39, 0x6e, 0xae, 0xc3, 0x59,
-	0xd8, 0x8c, 0x17, 0x62, 0x92, 0x77, 0xac, 0xc9, 0x2f, 0x4e, 0x6c, 0xf2, 0xef, 0x02, 0x49, 0xec,
-	0x63, 0x25, 0x5e, 0x29, 0x99, 0x1a, 0xbd, 0x33, 0xc2, 0x81, 0x19, 0x52, 0x63, 0x86, 0xf2, 0xcc,
-	0xe9, 0x0e, 0xe5, 0xf2, 0xe4, 0x43, 0x99, 0xbc, 0x0d, 0x57, 0x85, 0x2a, 0xd5, 0x3f, 0x49, 0x60,
-	0x69, 0xfc, 0x3f, 0xa8, 0x80, 0xaf, 0xe2, 0x38, 0x46, 0x1c, 0x8f, 0xc1, 0xbf, 0x8f, 0xe9, 0xd1,
-	0x16, 0x57, 0x6e, 0xd8, 0xe3, 0x17, 0x86, 0xd5, 0x0c, 0x1e, 0xcc, 0x94, 0xe4, 0x43, 0x8c, 0xf1,
-	0x61, 0x68, 0xec, 0xda, 0xb4, 0xa5, 0x52, 0xc3, 0xe1, 0x10, 0xdb, 0xde, 0x68, 0xaa, 0x12, 0x8c,
-	0x71, 0x65, 0xd9, 0xea, 0xd9, 0x13, 0xda, 0xea, 0xdb, 0x22, 0xe8, 0xd3, 0x4e, 0x2c, 0x09, 0xca,
-	0xe0, 0x87, 0xc9, 0xfe, 0xd5, 0x34, 0x03, 0x8e, 0xca, 0x88, 0xa5, 0xd2, 0xf4, 0xac, 0x3e, 0xf3,
-	0x93, 0x58, 0xe7, 0x52, 0x4b, 0x65, 0x06, 0x0f, 0x66, 0x4a, 0x72, 0x27, 0x65, 0x8f, 0x1a, 0x36,
-	0xdb, 0x4b, 0x02, 0x9e, 0x4f, 0x3a, 0x29, 0x6f, 0x8c, 0xb2, 0x60, 0x96, 0xdc, 0x34, 0xe6, 0xed,
-	0xeb, 0x39, 0xb8, 0x74, 0x9b, 0xaa, 0xe4, 0xf8, 0x96, 0xdb, 0x0a, 0xec, 0xda, 0xff, 0xd1, 0x5d,
-	0xd6, 0x57, 0x72, 0x30, 0x73, 0xdb, 0x73, 0x07, 0xfd, 0xc6, 0x01, 0xe9, 0x40, 0xe9, 0x91, 0x88,
-	0x88, 0xa8, 0x38, 0xc8, 0xe4, 0xe7, 0x00, 0x64, 0x60, 0x25, 0x32, 0xc1, 0xf2, 0x1d, 0x15, 0x3c,
-	0xef, 0xa9, 0x2e, 0x3d, 0xa0, 0x32, 0x2b, 0x56, 0x8e, 0x7a, 0xea, 0x1e, 0x27, 0xa2, 0x2c, 0x23,
-	0xef, 0xc0, 0x8c, 0xcf, 0x5c, 0x2f, 0x30, 0xd2, 0xd3, 0x44, 0xb4, 0xb6, 0x1a, 0x9f, 0x6e, 0x4a,
-	0x28, 0xb9, 0x91, 0x57, 0x2f, 0x18, 0x28, 0xd0, 0xbf, 0xad, 0x01, 0xbc, 0xb1, 0xbd, 0xbd, 0xa5,
-	0x62, 0x0e, 0x2d, 0x28, 0x18, 0x83, 0x30, 0x1c, 0xb4, 0x3e, 0x79, 0xd8, 0x37, 0x9e, 0xa9, 0x54,
-	0xf1, 0x99, 0x01, 0xdb, 0x43, 0x81, 0x4e, 0x3e, 0x0c, 0x33, 0x6a, 0x85, 0x54, 0xfd, 0x10, 0x26,
-	0x66, 0xd4, 0x2a, 0x8a, 0x41, 0xb9, 0xfe, 0x93, 0x1c, 0x5c, 0xb9, 0xe3, 0x30, 0xea, 0x35, 0x19,
-	0xed, 0x27, 0x12, 0x73, 0xe4, 0x37, 0x46, 0xce, 0x85, 0xfd, 0xc2, 0xf1, 0x82, 0x20, 0xf2, 0x58,
-	0xd1, 0x26, 0x65, 0x46, 0x64, 0x9b, 0x22, 0x5a, 0xec, 0x30, 0xd8, 0x00, 0x0a, 0x7e, 0x9f, 0x9a,
-	0x2a, 0xc4, 0xd2, 0x9c, 0xb8, 0x37, 0xb2, 0x1b, 0xc0, 0xe7, 0x5f, 0x14, 0xdc, 0x12, 0xb3, 0x51,
-	0xa8, 0x23, 0x5f, 0x84, 0x92, 0xcf, 0x0c, 0x36, 0x08, 0x02, 0xa9, 0x3b, 0xa7, 0xad, 0x58, 0x80,
-	0x47, 0x63, 0x54, 0xbe, 0xa3, 0x52, 0xaa, 0xff, 0x44, 0x83, 0xf9, 0x6c, 0xc1, 0x0d, 0xcb, 0x67,
-	0xe4, 0xd7, 0x46, 0xba, 0xfd, 0x98, 0xb1, 0x27, 0x2e, 0x2d, 0x3a, 0x3d, 0xcc, 0x72, 0x07, 0x94,
-	0x58, 0x97, 0x33, 0x28, 0x5a, 0x8c, 0xf6, 0x02, 0x5f, 0xe9, 0xcd, 0x53, 0x6e, 0x7a, 0xcc, 0x36,
-	0x71, 0x2d, 0x28, 0x95, 0xe9, 0x5f, 0xcb, 0x8d, 0x6b, 0x32, 0xff, 0x2c, 0xc4, 0x4e, 0x26, 0x7f,
-	0xef, 0x4d, 0x97, 0xfc, 0x4d, 0x56, 0x68, 0x34, 0x07, 0xfc, 0x5b, 0xa3, 0x39, 0xe0, 0x37, 0xa7,
-	0xcf, 0x01, 0xa7, 0xba, 0x61, 0x6c, 0x2a, 0xf8, 0xeb, 0x79, 0xb8, 0x76, 0xd4, 0xb0, 0xe1, 0xb6,
-	0x52, 0x8d, 0xce, 0x69, 0x6d, 0xe5, 0xd1, 0xe3, 0x90, 0x2c, 0x43, 0xb1, 0xbf, 0x67, 0xf8, 0xc1,
-	0xaa, 0x12, 0x2c, 0xbe, 0xc5, 0x2d, 0x4e, 0x7c, 0x32, 0xac, 0x57, 0xe5, 0x6a, 0x24, 0x5e, 0x51,
-	0xb2, 0x72, 0xcb, 0xd2, 0xa3, 0xbe, 0x1f, 0xf9, 0xb7, 0xa1, 0x65, 0xd9, 0x94, 0x64, 0x0c, 0xca,
-	0x09, 0x83, 0x92, 0xdc, 0x33, 0xaa, 0xb4, 0xc1, 0xe4, 0x39, 0xae, 0x8c, 0xf3, 0x02, 0x51, 0xa3,
-	0x54, 0xf8, 0x41, 0xe9, 0x0a, 0xcf, 0x23, 0x14, 0xb3, 0xcf, 0x23, 0xc4, 0x16, 0x58, 0x79, 0x1e,
-	0xe1, 0x1f, 0xcb, 0x70, 0x25, 0xfb, 0x1b, 0xf2, 0xb6, 0xee, 0x53, 0xcf, 0xb7, 0x5c, 0x47, 0x2d,
-	0xda, 0xd1, 0xb9, 0x1d, 0x49, 0xc6, 0xa0, 0xfc, 0x7d, 0x9d, 0x3f, 0xfb, 0x33, 0x8d, 0xbb, 0xc1,
-	0x32, 0x50, 0xf3, 0x5e, 0xe4, 0xd0, 0x5e, 0x94, 0xee, 0xf4, 0x18, 0x85, 0x38, 0xbe, 0x2e, 0xe4,
-	0x4f, 0x35, 0xa8, 0xf5, 0x52, 0x7e, 0xf6, 0x19, 0x9e, 0x9c, 0xbb, 0x76, 0x38, 0xac, 0xd7, 0x36,
-	0xc7, 0xe8, 0xc3, 0xb1, 0x35, 0x21, 0xbf, 0x0d, 0xd5, 0x3e, 0x1f, 0x17, 0x3e, 0xa3, 0x8e, 0x19,
-	0x1c, 0x9e, 0x9b, 0x7c, 0xf4, 0x6f, 0x45, 0x58, 0x4d, 0xe6, 0x19, 0x8c, 0x76, 0x0e, 0x54, 0x52,
-	0x2c, 0x2a, 0xc0, 0xb8, 0xc6, 0x67, 0xfc, 0xa8, 0xdc, 0x0d, 0x28, 0xfb, 0x94, 0x31, 0xcb, 0xe9,
-	0xf8, 0x62, 0xf7, 0x56, 0x91, 0x73, 0xa5, 0xa9, 0x68, 0x18, 0x96, 0x92, 0xff, 0x0f, 0x15, 0x11,
-	0xf7, 0x59, 0xf1, 0x3a, 0x7e, 0xad, 0x22, 0x32, 0x51, 0xc2, 0xae, 0x36, 0x03, 0x22, 0x46, 0xe5,
-	0xe4, 0x55, 0x98, 0x95, 0xd9, 0x38, 0x69, 0x10, 0xd4, 0x1e, 0xeb, 0xc2, 0xe1, 0xb0, 0x3e, 0xdb,
-	0x88, 0xd1, 0x31, 0xc1, 0xc5, 0xf7, 0x53, 0x34, 0x0c, 0x8e, 0xa5, 0xf7, 0x53, 0x51, 0xd8, 0x0c,
-	0x63, 0x5c, 0xe4, 0x45, 0xc8, 0x33, 0xdb, 0x17, 0x7b, 0xa8, 0x72, 0xe4, 0xf7, 0x6e, 0x6f, 0x34,
-	0x91, 0xd3, 0xf5, 0xff, 0xd1, 0xe0, 0x7c, 0xea, 0x64, 0x10, 0x17, 0x19, 0x78, 0xb6, 0x32, 0x23,
-	0xa1, 0xc8, 0x0e, 0x6e, 0x20, 0xa7, 0x93, 0xb7, 0x95, 0x57, 0x98, 0x9b, 0xf2, 0xf4, 0xfd, 0x7d,
-	0x83, 0xf9, 0xdc, 0x0d, 0x1c, 0x71, 0x08, 0x6f, 0xa6, 0x3a, 0x27, 0x9f, 0x8c, 0xb5, 0x1d, 0xdd,
-	0x41, 0xb1, 0x0d, 0x67, 0xe1, 0x38, 0x1b, 0x4e, 0xfd, 0xef, 0xf3, 0x50, 0xbd, 0xeb, 0xee, 0xbe,
-	0x4f, 0xce, 0x3e, 0x64, 0x5b, 0xe4, 0xdc, 0xcf, 0xd1, 0x22, 0xef, 0xc0, 0x0b, 0x8c, 0xf1, 0x5d,
-	0xbf, 0xeb, 0xb4, 0xfc, 0x95, 0x36, 0xa3, 0xde, 0xba, 0xe5, 0x58, 0xfe, 0x1e, 0x6d, 0xa9, 0xc8,
-	0xdd, 0x07, 0x0e, 0x87, 0xf5, 0x17, 0xb6, 0xb7, 0x37, 0xb2, 0x58, 0x70, 0x9c, 0xac, 0x98, 0x21,
-	0x86, 0xd9, 0x75, 0xdb, 0x6d, 0x99, 0xd9, 0x96, 0x39, 0x1e, 0x39, 0x43, 0x62, 0x74, 0x4c, 0x70,
-	0xe9, 0x3f, 0xd4, 0xa0, 0x72, 0xcf, 0x68, 0x77, 0x8d, 0xa6, 0xe5, 0x74, 0xc9, 0x4b, 0x30, 0xb3,
-	0xeb, 0xb9, 0x5d, 0xea, 0xf9, 0x2a, 0xd3, 0x2c, 0x76, 0x3d, 0x0d, 0x49, 0xc2, 0xa0, 0x8c, 0x6f,
-	0xc3, 0x98, 0xdb, 0xb7, 0xcc, 0xf4, 0x86, 0x75, 0x9b, 0x13, 0x51, 0x96, 0x91, 0x87, 0x72, 0x1e,
-	0xe5, 0xa7, 0x3c, 0x5a, 0xbd, 0xbd, 0xd1, 0x94, 0xd9, 0xdb, 0x60, 0x06, 0x92, 0x97, 0x13, 0x9e,
-	0x47, 0x65, 0x9c, 0xaf, 0xa0, 0x7f, 0x2b, 0x07, 0x55, 0xd9, 0x34, 0xb9, 0x39, 0x3b, 0xcd, 0xc6,
-	0xbd, 0x26, 0xa2, 0xeb, 0xfe, 0xa0, 0x47, 0x3d, 0xb1, 0x09, 0x56, 0x53, 0x2e, 0x1e, 0x2d, 0x89,
-	0x0a, 0xc3, 0x08, 0x7b, 0x44, 0x0a, 0x7a, 0xa7, 0x70, 0x86, 0xbd, 0x53, 0x3c, 0xb2, 0x77, 0xfe,
-	0x52, 0x83, 0xca, 0x86, 0xd5, 0xa6, 0xe6, 0x81, 0x69, 0x53, 0xf2, 0x16, 0xd4, 0x5a, 0xd4, 0xa6,
-	0x8c, 0xde, 0xf6, 0x0c, 0x93, 0x6e, 0x51, 0xcf, 0x12, 0x17, 0x55, 0xf8, 0x28, 0x13, 0xf3, 0xb8,
-	0x28, 0x97, 0xcb, 0xb5, 0x31, 0x3c, 0x38, 0x56, 0x9a, 0xdc, 0x81, 0xd9, 0x16, 0xf5, 0x2d, 0x8f,
-	0xb6, 0xb6, 0x62, 0xde, 0xe8, 0x4b, 0x81, 0x6d, 0x5a, 0x8b, 0x95, 0x3d, 0x19, 0xd6, 0xe7, 0xb6,
-	0xac, 0x3e, 0xb5, 0x2d, 0x87, 0x4a, 0xb7, 0x34, 0x21, 0xaa, 0x17, 0x21, 0xbf, 0xe1, 0x76, 0xf4,
-	0xaf, 0xe5, 0x21, 0xbc, 0x7a, 0x44, 0x7e, 0x47, 0x83, 0xaa, 0xe1, 0x38, 0x2e, 0x53, 0xd7, 0x7a,
-	0x64, 0x6c, 0x1f, 0xa7, 0xbe, 0xe1, 0xb4, 0xb8, 0x12, 0x81, 0xca, 0xb0, 0x70, 0x18, 0xaa, 0x8e,
-	0x95, 0x60, 0x5c, 0x37, 0x19, 0xa4, 0x22, 0xd5, 0x9b, 0xd3, 0xd7, 0xe2, 0x18, 0x71, 0xe9, 0xf9,
-	0x4f, 0xc1, 0x85, 0x74, 0x65, 0x4f, 0x12, 0xd8, 0x9a, 0x26, 0x26, 0xf6, 0x95, 0x0a, 0x54, 0xef,
-	0x1b, 0xcc, 0xda, 0xa7, 0x62, 0x0b, 0x76, 0x36, 0x3e, 0xf5, 0x1f, 0x6b, 0x70, 0x25, 0x19, 0x33,
-	0x3e, 0x43, 0xc7, 0x7a, 0xfe, 0x70, 0x58, 0xbf, 0x82, 0x99, 0xda, 0x70, 0x4c, 0x2d, 0x84, 0x8b,
-	0x3d, 0x12, 0x82, 0x3e, 0x6b, 0x17, 0xbb, 0x39, 0x4e, 0x21, 0x8e, 0xaf, 0xcb, 0xfb, 0xc5, 0xc5,
-	0x7e, 0xb6, 0xaf, 0xaa, 0xa4, 0x36, 0x00, 0x33, 0xcf, 0xcc, 0x06, 0xa0, 0xfc, 0x4c, 0x38, 0x5c,
-	0xfd, 0xd8, 0x06, 0xa0, 0x32, 0x65, 0x1c, 0x54, 0xa5, 0x59, 0x25, 0xda, 0xb8, 0x8d, 0x84, 0x38,
-	0xfc, 0x16, 0xf8, 0xc6, 0xc4, 0x84, 0xe2, 0xae, 0xe1, 0x5b, 0xa6, 0x72, 0x3f, 0x1b, 0x93, 0x87,
-	0x25, 0x82, 0x3b, 0x1d, 0x32, 0xc6, 0x24, 0x5e, 0x51, 0x62, 0x47, 0x77, 0x47, 0x72, 0x53, 0xdd,
-	0x1d, 0x21, 0xab, 0x50, 0x70, 0xb8, 0xb1, 0xcd, 0x9f, 0xf8, 0xb6, 0xc8, 0xfd, 0x7b, 0xf4, 0x00,
-	0x85, 0xb0, 0xfe, 0xdd, 0x1c, 0x00, 0x6f, 0xbe, 0x72, 0x73, 0x9e, 0xb2, 0x19, 0xf9, 0x30, 0xcc,
-	0xf8, 0x03, 0x11, 0xad, 0x55, 0x4b, 0x71, 0x14, 0x3c, 0x96, 0x64, 0x0c, 0xca, 0xb9, 0x27, 0xf4,
-	0x85, 0x01, 0x1d, 0x04, 0xb1, 0xa0, 0xd0, 0x13, 0xfa, 0x34, 0x27, 0xa2, 0x2c, 0x3b, 0x3b, 0x47,
-	0x26, 0xd8, 0x35, 0x15, 0xcf, 0x68, 0xd7, 0xa4, 0x7f, 0x29, 0x07, 0x10, 0x05, 0xf8, 0xc9, 0xb7,
-	0x35, 0xb8, 0x1c, 0xce, 0x32, 0x26, 0x6f, 0x24, 0xac, 0xda, 0x86, 0xd5, 0x9b, 0x7a, 0x23, 0x93,
-	0x35, 0xc3, 0x85, 0xd9, 0xd9, 0xca, 0x52, 0x87, 0xd9, 0xb5, 0x20, 0x08, 0x65, 0xda, 0xeb, 0xb3,
-	0x83, 0x35, 0xcb, 0x53, 0xc3, 0x2e, 0xf3, 0x48, 0xff, 0x2d, 0xc5, 0x23, 0x45, 0xd5, 0xcd, 0x0d,
-	0x31, 0x73, 0x82, 0x12, 0x0c, 0x71, 0xf4, 0x6f, 0xe6, 0xe0, 0x52, 0x46, 0xed, 0xc8, 0xeb, 0x70,
-	0x41, 0x65, 0x38, 0xa2, 0x6b, 0xaf, 0x5a, 0x74, 0xed, 0xb5, 0x99, 0x2a, 0xc3, 0x11, 0x6e, 0xf2,
-	0x36, 0x80, 0x61, 0x9a, 0xd4, 0xf7, 0x37, 0xdd, 0x56, 0xe0, 0xf4, 0xbd, 0xc6, 0x37, 0x95, 0x2b,
-	0x21, 0xf5, 0xc9, 0xb0, 0xfe, 0xd1, 0xac, 0x54, 0x55, 0xaa, 0xf5, 0x91, 0x00, 0xc6, 0x20, 0xc9,
-	0xe7, 0x01, 0xe4, 0x3d, 0x91, 0xf0, 0xb0, 0xe5, 0x53, 0x22, 0xe9, 0x8b, 0xc1, 0x1d, 0x86, 0xc5,
-	0x4f, 0x0f, 0x0c, 0x87, 0x59, 0xec, 0x40, 0x1e, 0x8b, 0x7e, 0x10, 0xa2, 0x60, 0x0c, 0x51, 0xff,
-	0xdb, 0x1c, 0x94, 0x03, 0x67, 0xf4, 0x3d, 0xc8, 0x95, 0x74, 0x12, 0xb9, 0x92, 0xc9, 0x2f, 0x06,
-	0x06, 0x55, 0x1e, 0x9b, 0x1d, 0x71, 0x53, 0xd9, 0x91, 0xdb, 0xd3, 0xab, 0x3a, 0x3a, 0x1f, 0xf2,
-	0x9d, 0x1c, 0x9c, 0x0b, 0x58, 0xd5, 0x39, 0xee, 0x8f, 0xc3, 0x9c, 0x47, 0x8d, 0x56, 0xc3, 0x60,
-	0xe6, 0x9e, 0xf8, 0x7c, 0xf2, 0x14, 0xf7, 0xc5, 0xc3, 0x61, 0x7d, 0x0e, 0xe3, 0x05, 0x98, 0xe4,
-	0xcb, 0x3a, 0x00, 0x9e, 0x9b, 0xf2, 0x00, 0x78, 0xfe, 0x24, 0x07, 0xc0, 0x89, 0x01, 0x55, 0x5e,
-	0xa3, 0x6d, 0xab, 0x47, 0xdd, 0x41, 0x70, 0xd3, 0xff, 0xa4, 0x87, 0x87, 0xc5, 0xea, 0x8e, 0x11,
-	0x0c, 0xc6, 0x31, 0xf5, 0x7f, 0xd2, 0x60, 0x36, 0xea, 0xaf, 0x33, 0xcf, 0x18, 0xb5, 0x93, 0x19,
-	0xa3, 0x95, 0xa9, 0x87, 0xc3, 0x98, 0x1c, 0xd1, 0x1f, 0x96, 0xa2, 0x66, 0x89, 0xac, 0xd0, 0x2e,
-	0xcc, 0x5b, 0x99, 0x89, 0x92, 0x98, 0xb5, 0x09, 0x0f, 0xc1, 0xdd, 0x19, 0xcb, 0x89, 0x47, 0xa0,
-	0x90, 0x01, 0x94, 0xf7, 0xa9, 0xc7, 0x2c, 0x93, 0x06, 0xed, 0xbb, 0x3d, 0xb5, 0x77, 0x24, 0x0f,
-	0x00, 0x44, 0x7d, 0xfa, 0x40, 0x29, 0xc0, 0x50, 0x15, 0xd9, 0x85, 0x22, 0x6d, 0x75, 0x68, 0x70,
-	0x7e, 0xfe, 0x93, 0x53, 0xdd, 0xa8, 0x88, 0xfa, 0x93, 0xbf, 0xf9, 0x28, 0xa1, 0x89, 0x0f, 0x15,
-	0x3b, 0xd8, 0xbe, 0xab, 0x71, 0x38, 0xb9, 0xaf, 0x13, 0x06, 0x02, 0xa2, 0x43, 0xa8, 0x21, 0x09,
-	0x23, 0x3d, 0xa4, 0x1b, 0xde, 0x15, 0x29, 0x9e, 0x92, 0xf1, 0x38, 0xe2, 0xbe, 0x88, 0x0f, 0x95,
-	0x47, 0x06, 0xa3, 0x5e, 0xcf, 0xf0, 0xba, 0xca, 0xf1, 0x9f, 0xbc, 0x85, 0x0f, 0x03, 0xa4, 0xa8,
-	0x85, 0x21, 0x09, 0x23, 0x3d, 0xc4, 0x85, 0x0a, 0x53, 0x9e, 0x6c, 0x70, 0xdd, 0x70, 0x72, 0xa5,
-	0x81, 0x4f, 0xec, 0xcb, 0xc0, 0x76, 0xf8, 0x8a, 0x91, 0x0e, 0xfd, 0x49, 0x3e, 0x32, 0x8f, 0xef,
-	0x75, 0x8a, 0xf0, 0xd5, 0x64, 0x8a, 0x70, 0x21, 0x9d, 0x22, 0x4c, 0x45, 0x63, 0x4e, 0x9e, 0x24,
-	0x34, 0xa0, 0x6a, 0x1b, 0x3e, 0xdb, 0xe9, 0xb7, 0x0c, 0xa6, 0xe2, 0xcb, 0xd5, 0xe5, 0xff, 0x77,
-	0x3c, 0xeb, 0xc5, 0xed, 0x61, 0x14, 0x74, 0xd9, 0x88, 0x60, 0x30, 0x8e, 0x49, 0x5e, 0x81, 0xea,
-	0xbe, 0x98, 0x91, 0xf2, 0x36, 0x45, 0x51, 0x98, 0x73, 0x61, 0x61, 0x1f, 0x44, 0x64, 0x8c, 0xf3,
-	0x70, 0x11, 0xe9, 0x09, 0x48, 0x91, 0x52, 0x24, 0xd2, 0x8c, 0xc8, 0x18, 0xe7, 0x11, 0xb9, 0x0a,
-	0xcb, 0xe9, 0x4a, 0x81, 0x19, 0x21, 0x20, 0x73, 0x15, 0x01, 0x11, 0xa3, 0x72, 0x72, 0x03, 0xca,
-	0x83, 0x56, 0x5b, 0xf2, 0x96, 0x05, 0xaf, 0xf0, 0xbf, 0x76, 0xd6, 0xd6, 0xd5, 0xed, 0x8e, 0xa0,
-	0x54, 0xff, 0x4f, 0x0d, 0xc8, 0x68, 0x52, 0x9b, 0xec, 0x41, 0xc9, 0x11, 0x51, 0x95, 0xa9, 0xaf,
-	0x4b, 0xc7, 0x82, 0x33, 0x72, 0x8e, 0x29, 0x82, 0xc2, 0x27, 0x0e, 0x94, 0xe9, 0x63, 0x46, 0x3d,
-	0xc7, 0xb0, 0x95, 0xeb, 0x71, 0x3a, 0x57, 0xb3, 0xa5, 0xc3, 0xa9, 0x90, 0x31, 0xd4, 0xa1, 0xff,
-	0x34, 0x07, 0xd5, 0x18, 0xdf, 0xd3, 0x36, 0x2b, 0xe2, 0xcc, 0xa8, 0x0c, 0x66, 0xec, 0x78, 0xb6,
-	0x1a, 0xa6, 0xb1, 0x33, 0xa3, 0xaa, 0x08, 0x37, 0x30, 0xce, 0x47, 0x96, 0x01, 0x7a, 0x86, 0xcf,
-	0xa8, 0x27, 0x96, 0x92, 0xd4, 0x49, 0xcd, 0xcd, 0xb0, 0x04, 0x63, 0x5c, 0xe4, 0xba, 0xba, 0xb8,
-	0x5f, 0x48, 0x5e, 0x9a, 0x1a, 0x73, 0x2b, 0xbf, 0x78, 0x0a, 0xb7, 0xf2, 0x49, 0x07, 0x2e, 0x04,
-	0xb5, 0x0e, 0x4a, 0x95, 0x9d, 0x3b, 0x26, 0xb0, 0x74, 0xc6, 0x53, 0x10, 0x38, 0x02, 0xaa, 0x7f,
-	0x57, 0x83, 0xb9, 0xc4, 0x56, 0x9a, 0x6f, 0xed, 0xa2, 0x23, 0x19, 0xb1, 0xad, 0x5d, 0xe2, 0x24,
-	0xc5, 0xcb, 0x50, 0x92, 0x1d, 0xa4, 0x3a, 0x3e, 0x34, 0x23, 0xb2, 0x0b, 0x51, 0x95, 0x72, 0x83,
-	0xa0, 0x82, 0x75, 0x69, 0x83, 0xa0, 0xa2, 0x79, 0x18, 0x94, 0x93, 0x8f, 0x40, 0x39, 0xa8, 0x9d,
-	0xea, 0xe9, 0xe8, 0x9f, 0x0d, 0x8a, 0x8e, 0x21, 0x87, 0xfe, 0xe5, 0x22, 0xc8, 0x1f, 0x4e, 0x70,
-	0xb9, 0x96, 0xe5, 0xcb, 0x2c, 0x95, 0x26, 0xb2, 0x54, 0xa1, 0xdc, 0x9a, 0xa2, 0x63, 0xc8, 0x41,
-	0xae, 0x42, 0xbe, 0x67, 0x39, 0x2a, 0xac, 0x28, 0x76, 0x95, 0x9b, 0x96, 0x83, 0x9c, 0x26, 0x8a,
-	0x8c, 0xc7, 0x2a, 0xd1, 0x22, 0x8b, 0x8c, 0xc7, 0xc8, 0x69, 0xdc, 0xb9, 0xb4, 0x5d, 0xb7, 0xbb,
-	0x6b, 0x98, 0xdd, 0x20, 0xf4, 0x5d, 0x10, 0xb3, 0x57, 0x38, 0x97, 0x1b, 0xc9, 0x22, 0x4c, 0xf3,
-	0x72, 0x71, 0xd3, 0x75, 0xed, 0x96, 0xfb, 0xc8, 0x09, 0xc4, 0x8b, 0x91, 0xf8, 0x6a, 0xb2, 0x08,
-	0xd3, 0xbc, 0x64, 0x07, 0x5e, 0x78, 0x97, 0x7a, 0xae, 0xea, 0xb1, 0xa6, 0x4d, 0x69, 0x3f, 0x80,
-	0x91, 0x06, 0x4a, 0x64, 0x85, 0x3e, 0x9b, 0xcd, 0x82, 0xe3, 0x64, 0x45, 0xb2, 0xc9, 0xf0, 0x3a,
-	0x94, 0x6d, 0x79, 0x2e, 0xdf, 0x3b, 0x59, 0x4e, 0x27, 0x80, 0x9d, 0x89, 0x60, 0xb7, 0xb3, 0x59,
-	0x70, 0x9c, 0x2c, 0xd9, 0x84, 0x8b, 0xb2, 0x28, 0xe6, 0x33, 0x2b, 0x5b, 0x57, 0x3f, 0x1c, 0xd6,
-	0x3f, 0xb0, 0x46, 0xfb, 0x1e, 0x35, 0xb9, 0x81, 0xde, 0x4e, 0xb3, 0xe1, 0xa8, 0xa4, 0xf8, 0xcd,
-	0x92, 0x0a, 0xf7, 0x6e, 0x51, 0x4f, 0x7c, 0x72, 0x11, 0x3b, 0x52, 0x8e, 0x39, 0xa6, 0xca, 0x70,
-	0x84, 0x9b, 0xbc, 0x05, 0xb5, 0x38, 0xec, 0xca, 0xbe, 0x61, 0xd9, 0xc6, 0xae, 0x65, 0x5b, 0xec,
-	0x40, 0xe4, 0x8a, 0xe7, 0x64, 0x30, 0x72, 0x7b, 0x0c, 0x0f, 0x8e, 0x95, 0xd6, 0xff, 0x28, 0x0f,
-	0xe2, 0x8f, 0x41, 0xe4, 0x21, 0xe4, 0x6d, 0xb7, 0xa3, 0x4c, 0xf2, 0xe4, 0x91, 0x8e, 0x0d, 0xb7,
-	0x23, 0x07, 0xde, 0x86, 0xdb, 0x41, 0x8e, 0x48, 0x4c, 0x28, 0x76, 0x8d, 0x76, 0xd7, 0x50, 0x16,
-	0x78, 0x72, 0x7f, 0x23, 0x4c, 0xe4, 0xa9, 0x1b, 0xa2, 0xfc, 0x15, 0x25, 0x36, 0x77, 0x6c, 0x76,
-	0x83, 0x5f, 0x80, 0xa8, 0xad, 0xdf, 0x14, 0xb1, 0xb1, 0x00, 0x49, 0xae, 0x82, 0xe1, 0x2b, 0x46,
-	0x3a, 0x88, 0x09, 0xa5, 0x41, 0x4b, 0xfc, 0xb9, 0xa9, 0x30, 0xa5, 0x17, 0xb3, 0xb3, 0x26, 0xda,
-	0x24, 0xd6, 0x2f, 0xf9, 0x8c, 0x0a, 0x5a, 0xff, 0x2b, 0x0d, 0xe6, 0x9a, 0xb6, 0xd5, 0xb2, 0x9c,
-	0xce, 0xd9, 0xdd, 0xc9, 0x25, 0x6f, 0x42, 0xd1, 0xb7, 0xad, 0x16, 0x9d, 0xf0, 0xb2, 0xa8, 0xf8,
-	0x18, 0xbc, 0x96, 0x14, 0x25, 0x8e, 0xfe, 0xe7, 0x05, 0x50, 0xbf, 0xb9, 0x22, 0x03, 0xa8, 0x74,
-	0x82, 0x9b, 0xab, 0xaa, 0xca, 0x6f, 0x4c, 0x71, 0xc3, 0x21, 0x71, 0x07, 0x56, 0x7e, 0x9d, 0x90,
-	0x88, 0x91, 0x26, 0x42, 0x93, 0x63, 0x6e, 0x6d, 0xca, 0x31, 0x27, 0xd5, 0x8d, 0x8e, 0x3a, 0x03,
-	0x0a, 0x7b, 0x8c, 0xf5, 0xa7, 0x3e, 0x88, 0x1b, 0x9d, 0xb1, 0x95, 0x61, 0x3c, 0xfe, 0x8e, 0x02,
-	0x9a, 0xab, 0x70, 0x8c, 0x53, 0xb8, 0xbd, 0x1e, 0x85, 0x50, 0x55, 0x84, 0xd5, 0x60, 0x3e, 0x0a,
-	0x68, 0xf2, 0x9b, 0x50, 0x65, 0x9e, 0xe1, 0xf8, 0x6d, 0xd7, 0xeb, 0x51, 0x4f, 0x2d, 0xfe, 0xeb,
-	0x53, 0x8c, 0xe7, 0xed, 0x08, 0x4d, 0x46, 0x3d, 0x12, 0x24, 0x8c, 0x6b, 0xd3, 0x7b, 0xa0, 0xdc,
-	0x76, 0x62, 0x26, 0xfe, 0x12, 0x20, 0x33, 0x9d, 0x4b, 0xc7, 0x1b, 0x8b, 0xe1, 0x5d, 0xf2, 0xd8,
-	0xdd, 0xba, 0xcc, 0xdf, 0x01, 0xe8, 0xff, 0x92, 0x83, 0xfc, 0xf6, 0x46, 0x53, 0x5e, 0x15, 0x11,
-	0x3f, 0xcd, 0xa0, 0xcd, 0xae, 0xd5, 0x7f, 0x40, 0x3d, 0xab, 0x7d, 0xa0, 0xd6, 0xde, 0xd8, 0x55,
-	0x91, 0x34, 0x07, 0x66, 0x48, 0x91, 0xcf, 0xc1, 0xac, 0x69, 0xac, 0x52, 0x8f, 0x49, 0x17, 0xe6,
-	0x64, 0x51, 0x73, 0x71, 0x82, 0x61, 0x75, 0x25, 0x12, 0xc7, 0x04, 0x18, 0xd9, 0x01, 0x30, 0x23,
-	0xe8, 0x13, 0x45, 0xd2, 0xe5, 0x6f, 0x11, 0x22, 0xe0, 0x18, 0x10, 0x41, 0xa8, 0x74, 0x39, 0xab,
-	0x40, 0x2d, 0x9c, 0x04, 0x55, 0x4c, 0xba, 0x7b, 0x81, 0x2c, 0x46, 0x30, 0xfa, 0xbf, 0x6b, 0x10,
-	0x6d, 0x02, 0x89, 0x0f, 0xa5, 0x96, 0xb8, 0xb5, 0xad, 0xa6, 0xfd, 0xe4, 0x9b, 0xe9, 0xe4, 0xcf,
-	0x48, 0x1a, 0xe4, 0x70, 0x58, 0x4f, 0xfd, 0xa0, 0x04, 0x95, 0x2a, 0xd2, 0x81, 0xfc, 0x3b, 0xee,
-	0xee, 0xd4, 0xb3, 0x3e, 0x76, 0xfe, 0x47, 0xee, 0x9c, 0x62, 0x04, 0xe4, 0x1a, 0xf4, 0x2f, 0xe7,
-	0xa0, 0x1a, 0x1b, 0xd3, 0x53, 0xff, 0x94, 0xe0, 0x71, 0xea, 0xa7, 0x04, 0x5b, 0x93, 0xef, 0xca,
-	0xa3, 0x5a, 0x9d, 0xf5, 0x7f, 0x09, 0xfe, 0x2e, 0x07, 0xf9, 0x9d, 0xb5, 0x75, 0xbe, 0xf8, 0x86,
-	0xe7, 0x80, 0xa6, 0x4e, 0x4c, 0x45, 0xff, 0x3b, 0x13, 0x23, 0x2d, 0x7c, 0xc5, 0x48, 0x07, 0xd9,
-	0x83, 0x99, 0xdd, 0x81, 0x65, 0x33, 0xcb, 0x99, 0xfa, 0xd4, 0x59, 0xf0, 0x0f, 0x07, 0x75, 0x5c,
-	0x46, 0xa2, 0x62, 0x00, 0x4f, 0x3a, 0x30, 0xd3, 0x91, 0xd7, 0x40, 0xd4, 0xdc, 0x7b, 0x7d, 0xf2,
-	0xd5, 0x4b, 0xe2, 0x48, 0x45, 0xea, 0x05, 0x03, 0x74, 0xfd, 0x8b, 0xa0, 0x16, 0x7f, 0xe2, 0x9f,
-	0x4d, 0x6f, 0x86, 0x81, 0xa1, 0xac, 0x1e, 0xd5, 0xff, 0x43, 0x83, 0xa4, 0x95, 0x7e, 0xef, 0x3f,
-	0x6a, 0x37, 0xfd, 0x51, 0xd7, 0x4e, 0x63, 0x0e, 0x64, 0x7f, 0x57, 0xfd, 0x6f, 0x72, 0x50, 0x52,
-	0x3f, 0x02, 0x3d, 0xfb, 0xec, 0x07, 0x4d, 0x64, 0x3f, 0x56, 0xa7, 0xfc, 0x2d, 0xe2, 0xd8, 0xdc,
-	0x47, 0x2f, 0x95, 0xfb, 0x98, 0xf6, 0xff, 0x8b, 0x4f, 0xc9, 0x7c, 0xfc, 0x83, 0x06, 0xe7, 0x24,
-	0xe3, 0x1d, 0xc7, 0x67, 0x86, 0x63, 0x0a, 0xa7, 0x58, 0x46, 0xa2, 0xa6, 0x0e, 0xed, 0xa9, 0x30,
-	0xb4, 0x70, 0x57, 0xe5, 0x33, 0x2a, 0x68, 0xbe, 0x59, 0xde, 0x73, 0x7d, 0x26, 0xcc, 0x6d, 0x2e,
-	0xb9, 0xc9, 0x7e, 0x43, 0xd1, 0x31, 0xe4, 0x48, 0xef, 0xde, 0x8b, 0xe3, 0x77, 0xef, 0xfa, 0x5f,
-	0x68, 0x30, 0x1b, 0xff, 0xf3, 0xe4, 0xe4, 0x89, 0x9c, 0x54, 0x1e, 0x25, 0x77, 0x06, 0x79, 0x94,
-	0x1f, 0x68, 0x00, 0x41, 0x65, 0xcf, 0x3c, 0x8b, 0xd2, 0x4a, 0x66, 0x51, 0xa6, 0xfe, 0xac, 0xd9,
-	0x39, 0x94, 0xef, 0x14, 0x83, 0x26, 0x89, 0x0c, 0xca, 0x57, 0x35, 0x38, 0x67, 0x24, 0xb2, 0x12,
-	0x53, 0x7b, 0x12, 0xa9, 0x24, 0x47, 0xf8, 0xa7, 0xce, 0x24, 0x1d, 0x53, 0x6a, 0xc9, 0x4d, 0x98,
-	0xed, 0xab, 0x50, 0xf1, 0xfd, 0x68, 0xd4, 0x85, 0x07, 0x90, 0xb7, 0x62, 0x65, 0x98, 0xe0, 0x7c,
-	0x4a, 0x16, 0x28, 0x7f, 0x2a, 0x59, 0xa0, 0xf8, 0x51, 0xb3, 0xc2, 0x91, 0x47, 0xcd, 0x1c, 0xa8,
-	0xb4, 0x3d, 0xb7, 0x27, 0x12, 0x2d, 0xea, 0xbf, 0x88, 0x53, 0x26, 0x6f, 0xc2, 0x45, 0x65, 0x3d,
-	0xc0, 0xc5, 0x48, 0x05, 0x5f, 0xa6, 0x99, 0x2b, 0xb5, 0x95, 0x4e, 0x43, 0x5b, 0x38, 0x75, 0xb7,
-	0x25, 0x2a, 0x06, 0xf0, 0xc9, 0x64, 0xca, 0xcc, 0x7b, 0x93, 0x4c, 0xd1, 0xff, 0x39, 0x17, 0xd8,
-	0x8b, 0x66, 0xea, 0x4e, 0x92, 0x36, 0xe6, 0x4e, 0x92, 0xba, 0x5d, 0x1b, 0x4f, 0x37, 0xbc, 0x0c,
-	0x25, 0x8f, 0x1a, 0xbe, 0xeb, 0xa8, 0x7b, 0xea, 0xa1, 0xb5, 0x45, 0x41, 0x45, 0x55, 0x1a, 0x4f,
-	0x4b, 0xe4, 0x9e, 0x92, 0x96, 0xf8, 0x48, 0x6c, 0x40, 0xc8, 0xfc, 0x6f, 0x38, 0xb7, 0x33, 0x06,
-	0x85, 0x88, 0x59, 0xaa, 0xdf, 0xd9, 0x17, 0xd3, 0x31, 0x4b, 0xf5, 0xab, 0xf9, 0x90, 0x83, 0xb4,
-	0x60, 0xd6, 0x36, 0x7c, 0x26, 0xa2, 0x52, 0xad, 0x15, 0x36, 0x41, 0xce, 0x23, 0x9c, 0x36, 0x1b,
-	0x31, 0x1c, 0x4c, 0xa0, 0xea, 0x7f, 0xa0, 0x41, 0xd4, 0xe5, 0x27, 0x8c, 0x8e, 0xbe, 0x05, 0xe5,
-	0x9e, 0xf1, 0x78, 0x8d, 0xda, 0xc6, 0xc1, 0x34, 0x7f, 0xbf, 0xda, 0x54, 0x18, 0x18, 0xa2, 0xe9,
-	0x43, 0x0d, 0xd4, 0x8d, 0x5d, 0x42, 0xa1, 0xd8, 0xb6, 0x1e, 0xab, 0xfa, 0x4c, 0xe3, 0xa9, 0xc4,
-	0xfe, 0xb7, 0x26, 0xe3, 0x0b, 0x82, 0x80, 0x12, 0x9d, 0xf4, 0x60, 0xc6, 0x97, 0xe1, 0x1f, 0xd5,
-	0x94, 0xc9, 0x77, 0xe5, 0x89, 0x30, 0x92, 0xba, 0xee, 0x2b, 0x49, 0x18, 0xe8, 0x68, 0x2c, 0x7e,
-	0xff, 0xc7, 0x0b, 0xcf, 0xfd, 0xe0, 0xc7, 0x0b, 0xcf, 0xfd, 0xf0, 0xc7, 0x0b, 0xcf, 0x7d, 0xe9,
-	0x70, 0x41, 0xfb, 0xfe, 0xe1, 0x82, 0xf6, 0x83, 0xc3, 0x05, 0xed, 0x87, 0x87, 0x0b, 0xda, 0xbf,
-	0x1e, 0x2e, 0x68, 0xbf, 0xff, 0x6f, 0x0b, 0xcf, 0x7d, 0xb6, 0x1c, 0x60, 0xfe, 0x6f, 0x00, 0x00,
-	0x00, 0xff, 0xff, 0x3b, 0xe0, 0x13, 0x75, 0x3e, 0x63, 0x00, 0x00,
+	// 5683 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7c, 0x5d, 0x6c, 0x1c, 0xd7,
+	0x75, 0xbf, 0xf7, 0x93, 0xbb, 0x67, 0x49, 0x7d, 0x5c, 0x59, 0xf2, 0x8a, 0x91, 0xb9, 0xca, 0x04,
+	0x36, 0x94, 0xff, 0x3f, 0x21, 0x2b, 0xd6, 0x69, 0x94, 0xb6, 0x89, 0xcd, 0x25, 0x45, 0x59, 0x12,
+	0x29, 0xd1, 0x67, 0x49, 0xc9, 0xb1, 0x5b, 0xbb, 0xc3, 0xd9, 0xbb, 0xcb, 0xf1, 0xce, 0xce, 0xac,
+	0x67, 0xee, 0x52, 0xa2, 0xdb, 0xa0, 0x41, 0xfc, 0x60, 0x17, 0x4d, 0x91, 0x02, 0x45, 0x81, 0xa0,
+	0x41, 0x0a, 0x14, 0x28, 0x50, 0xb4, 0x40, 0x80, 0x3e, 0x34, 0x2f, 0xed, 0x4b, 0x9f, 0x0a, 0xb7,
+	0x0f, 0xad, 0x1f, 0x0a, 0xd4, 0x45, 0x83, 0x45, 0xcd, 0x3e, 0xf5, 0xa1, 0x45, 0x8a, 0xbc, 0x04,
+	0x42, 0x81, 0x16, 0xf7, 0x63, 0x3e, 0x77, 0x96, 0x22, 0x77, 0x49, 0x47, 0x46, 0xdf, 0x66, 0xee,
+	0x39, 0xe7, 0x77, 0xee, 0xdc, 0x8f, 0x73, 0xcf, 0x3d, 0xe7, 0xde, 0x81, 0x1b, 0x6d, 0x93, 0xed,
+	0xf4, 0xb7, 0xe7, 0x0d, 0xa7, 0xbb, 0x60, 0xf7, 0xbb, 0x7a, 0xcf, 0x75, 0xde, 0x12, 0x0f, 0x2d,
+	0xcb, 0x79, 0xb0, 0xd0, 0xeb, 0xb4, 0x17, 0xf4, 0x9e, 0xe9, 0x85, 0x25, 0xbb, 0x57, 0x75, 0xab,
+	0xb7, 0xa3, 0x5f, 0x5d, 0x68, 0x53, 0x9b, 0xba, 0x3a, 0xa3, 0xcd, 0xf9, 0x9e, 0xeb, 0x30, 0x87,
+	0x7c, 0x39, 0x04, 0x9a, 0xf7, 0x81, 0xe6, 0x7d, 0xb1, 0xf9, 0x5e, 0xa7, 0x3d, 0xcf, 0x81, 0xc2,
+	0x12, 0x1f, 0x68, 0xf6, 0x8b, 0x91, 0x1a, 0xb4, 0x9d, 0xb6, 0xb3, 0x20, 0xf0, 0xb6, 0xfb, 0x2d,
+	0xf1, 0x26, 0x5e, 0xc4, 0x93, 0xd4, 0x33, 0xab, 0x75, 0xae, 0x79, 0xf3, 0xa6, 0xc3, 0xab, 0xb5,
+	0x60, 0x38, 0x2e, 0x5d, 0xd8, 0x1d, 0xaa, 0xcb, 0xec, 0x0b, 0x21, 0x4f, 0x57, 0x37, 0x76, 0x4c,
+	0x9b, 0xba, 0x7b, 0xfe, 0xb7, 0x2c, 0xb8, 0xd4, 0x73, 0xfa, 0xae, 0x41, 0x8f, 0x24, 0xe5, 0x2d,
+	0x74, 0x29, 0xd3, 0xd3, 0x74, 0x2d, 0x8c, 0x92, 0x72, 0xfb, 0x36, 0x33, 0xbb, 0xc3, 0x6a, 0x7e,
+	0xe1, 0x71, 0x02, 0x9e, 0xb1, 0x43, 0xbb, 0x7a, 0x52, 0x4e, 0xfb, 0x97, 0x32, 0x9c, 0x5b, 0xda,
+	0xf6, 0x98, 0xab, 0x1b, 0x6c, 0xc3, 0x69, 0x6e, 0xd2, 0x6e, 0xcf, 0xd2, 0x19, 0x25, 0x1d, 0x28,
+	0xf1, 0xba, 0x35, 0x75, 0xa6, 0x57, 0x33, 0x97, 0x33, 0x57, 0x2a, 0x8b, 0x4b, 0xf3, 0x63, 0xf6,
+	0xc5, 0xfc, 0xba, 0x02, 0xaa, 0x4f, 0xef, 0x0f, 0x6a, 0x25, 0xff, 0x0d, 0x03, 0x05, 0xe4, 0xbb,
+	0x19, 0x98, 0xb6, 0x9d, 0x26, 0x6d, 0x50, 0x8b, 0x1a, 0xcc, 0x71, 0xab, 0xd9, 0xcb, 0xb9, 0x2b,
+	0x95, 0xc5, 0x37, 0xc6, 0xd6, 0x98, 0xf2, 0x45, 0xf3, 0x77, 0x22, 0x0a, 0xae, 0xdb, 0xcc, 0xdd,
+	0xab, 0x3f, 0xfd, 0xc1, 0xa0, 0xf6, 0xd4, 0xfe, 0xa0, 0x36, 0x1d, 0x25, 0x61, 0xac, 0x26, 0x64,
+	0x0b, 0x2a, 0xcc, 0xb1, 0x78, 0x93, 0x99, 0x8e, 0xed, 0x55, 0x73, 0xa2, 0x62, 0x73, 0xf3, 0xb2,
+	0xb5, 0xb9, 0xfa, 0x79, 0x3e, 0x5c, 0xe6, 0x77, 0xaf, 0xce, 0x6f, 0x06, 0x6c, 0xf5, 0x73, 0x0a,
+	0xb8, 0x12, 0x96, 0x79, 0x18, 0xc5, 0x21, 0x14, 0x4e, 0x7b, 0xd4, 0xe8, 0xbb, 0x26, 0xdb, 0x5b,
+	0x76, 0x6c, 0x46, 0x1f, 0xb2, 0x6a, 0x5e, 0xb4, 0xf2, 0xf3, 0x69, 0xd0, 0x1b, 0x4e, 0xb3, 0x11,
+	0xe7, 0xae, 0x9f, 0xdb, 0x1f, 0xd4, 0x4e, 0x27, 0x0a, 0x31, 0x89, 0x49, 0x6c, 0x38, 0x63, 0x76,
+	0xf5, 0x36, 0xdd, 0xe8, 0x5b, 0x56, 0x83, 0x1a, 0x2e, 0x65, 0x5e, 0xb5, 0x20, 0x3e, 0xe1, 0x4a,
+	0x9a, 0x9e, 0x35, 0xc7, 0xd0, 0xad, 0xbb, 0xdb, 0x6f, 0x51, 0x83, 0x21, 0x6d, 0x51, 0x97, 0xda,
+	0x06, 0xad, 0x57, 0xd5, 0xc7, 0x9c, 0xb9, 0x99, 0x40, 0xc2, 0x21, 0x6c, 0x72, 0x03, 0xce, 0xf6,
+	0x5c, 0xd3, 0x11, 0x55, 0xb0, 0x74, 0xcf, 0xbb, 0xa3, 0x77, 0x69, 0xb5, 0x78, 0x39, 0x73, 0xa5,
+	0x5c, 0xbf, 0xa8, 0x60, 0xce, 0x6e, 0x24, 0x19, 0x70, 0x58, 0x86, 0x5c, 0x81, 0x92, 0x5f, 0x58,
+	0x9d, 0xba, 0x9c, 0xb9, 0x52, 0x90, 0x63, 0xc7, 0x97, 0xc5, 0x80, 0x4a, 0x56, 0xa1, 0xa4, 0xb7,
+	0x5a, 0xa6, 0xcd, 0x39, 0x4b, 0xa2, 0x09, 0x2f, 0xa5, 0x7d, 0xda, 0x92, 0xe2, 0x91, 0x38, 0xfe,
+	0x1b, 0x06, 0xb2, 0xe4, 0x16, 0x10, 0x8f, 0xba, 0xbb, 0xa6, 0x41, 0x97, 0x0c, 0xc3, 0xe9, 0xdb,
+	0x4c, 0xd4, 0xbd, 0x2c, 0xea, 0x3e, 0xab, 0xea, 0x4e, 0x1a, 0x43, 0x1c, 0x98, 0x22, 0x45, 0x5e,
+	0x82, 0x33, 0x6a, 0xda, 0x85, 0xad, 0x00, 0x02, 0xe9, 0x69, 0xde, 0x90, 0x98, 0xa0, 0xe1, 0x10,
+	0x37, 0x69, 0xc2, 0x25, 0xbd, 0xcf, 0x9c, 0x2e, 0x87, 0x8c, 0x2b, 0xdd, 0x74, 0x3a, 0xd4, 0xae,
+	0x56, 0x2e, 0x67, 0xae, 0x94, 0xea, 0x97, 0xf7, 0x07, 0xb5, 0x4b, 0x4b, 0x07, 0xf0, 0xe1, 0x81,
+	0x28, 0xe4, 0x2e, 0x94, 0x9b, 0xb6, 0xb7, 0xe1, 0x58, 0xa6, 0xb1, 0x57, 0x9d, 0x16, 0x15, 0xbc,
+	0xaa, 0x3e, 0xb5, 0xbc, 0x72, 0xa7, 0x21, 0x09, 0x8f, 0x06, 0xb5, 0x4b, 0xc3, 0xd6, 0x71, 0x3e,
+	0xa0, 0x63, 0x88, 0x41, 0xd6, 0x05, 0xe0, 0xb2, 0x63, 0xb7, 0xcc, 0x76, 0x75, 0x46, 0xf4, 0xc6,
+	0xe5, 0x11, 0x03, 0x7a, 0xe5, 0x4e, 0x43, 0xf2, 0xd5, 0x67, 0x94, 0x3a, 0xf9, 0x8a, 0x21, 0xc2,
+	0xec, 0x8b, 0x70, 0x76, 0x68, 0xd6, 0x92, 0x33, 0x90, 0xeb, 0xd0, 0x3d, 0x61, 0x94, 0xca, 0xc8,
+	0x1f, 0xc9, 0xd3, 0x50, 0xd8, 0xd5, 0xad, 0x3e, 0xad, 0x66, 0x45, 0x99, 0x7c, 0xf9, 0xc5, 0xec,
+	0xb5, 0x8c, 0x36, 0x28, 0xc3, 0x29, 0xdf, 0x16, 0xdc, 0xa3, 0x2e, 0xa3, 0x0f, 0xc9, 0x65, 0xc8,
+	0xdb, 0xbc, 0x3f, 0x84, 0x7c, 0x7d, 0x5a, 0x7d, 0x6e, 0x5e, 0xf4, 0x83, 0xa0, 0x10, 0x03, 0x8a,
+	0xd2, 0x96, 0x0b, 0xbc, 0xca, 0xe2, 0x8b, 0x63, 0x9b, 0xa1, 0x86, 0x80, 0xa9, 0xc3, 0xfe, 0xa0,
+	0x56, 0x94, 0xcf, 0xa8, 0xa0, 0xc9, 0xeb, 0x90, 0xf7, 0x4c, 0xbb, 0x53, 0xcd, 0x09, 0x15, 0x5f,
+	0x1d, 0x5f, 0x85, 0x69, 0x77, 0xea, 0x25, 0xfe, 0x05, 0xfc, 0x09, 0x05, 0x28, 0xb9, 0x0f, 0xb9,
+	0x7e, 0xb3, 0xa5, 0x2c, 0xca, 0x2f, 0x8f, 0x8d, 0xbd, 0xb5, 0xb2, 0x5a, 0x9f, 0xda, 0x1f, 0xd4,
+	0x72, 0x5b, 0x2b, 0xab, 0xc8, 0x11, 0xc9, 0x77, 0x32, 0x70, 0xd6, 0x70, 0x6c, 0xa6, 0xf3, 0xf5,
+	0xc5, 0xb7, 0xac, 0xd5, 0x82, 0xd0, 0x73, 0x6b, 0x6c, 0x3d, 0xcb, 0x49, 0xc4, 0xfa, 0x79, 0x6e,
+	0x28, 0x86, 0x8a, 0x71, 0x58, 0x37, 0xf9, 0x5e, 0x06, 0xce, 0xf3, 0x09, 0x3c, 0xc4, 0x2c, 0xcc,
+	0xce, 0xf1, 0xd6, 0xea, 0xe2, 0xfe, 0xa0, 0x76, 0xfe, 0x66, 0x9a, 0x32, 0x4c, 0xaf, 0x03, 0xaf,
+	0xdd, 0x39, 0x7d, 0x78, 0x2d, 0x12, 0x26, 0xad, 0xb2, 0xb8, 0x76, 0x9c, 0xeb, 0x5b, 0xfd, 0x33,
+	0x6a, 0x28, 0xa7, 0x2d, 0xe7, 0x98, 0x56, 0x0b, 0x72, 0x1d, 0xa6, 0x76, 0x1d, 0xab, 0xdf, 0xa5,
+	0x5e, 0xb5, 0x24, 0x16, 0x85, 0xd9, 0xb4, 0xb9, 0x7a, 0x4f, 0xb0, 0xd4, 0x4f, 0x2b, 0xf8, 0x29,
+	0xf9, 0xee, 0xa1, 0x2f, 0x4b, 0x4c, 0x28, 0x5a, 0x66, 0xd7, 0x64, 0x9e, 0xb0, 0x96, 0x95, 0xc5,
+	0xeb, 0x63, 0x7f, 0x96, 0x9c, 0xa2, 0x6b, 0x02, 0x4c, 0xce, 0x1a, 0xf9, 0x8c, 0x4a, 0x01, 0x31,
+	0xa0, 0xe0, 0x19, 0xba, 0x25, 0xad, 0x69, 0x65, 0xf1, 0x6b, 0xe3, 0x4f, 0x1b, 0x8e, 0x52, 0x9f,
+	0x51, 0xdf, 0x54, 0x10, 0xaf, 0x28, 0xb1, 0xc9, 0xaf, 0xc2, 0xa9, 0x58, 0x6f, 0x7a, 0xd5, 0x8a,
+	0x68, 0x9d, 0x67, 0xd3, 0x5a, 0x27, 0xe0, 0xaa, 0x5f, 0x50, 0x60, 0xa7, 0x62, 0x23, 0xc4, 0xc3,
+	0x04, 0x18, 0xb9, 0x0d, 0x25, 0xcf, 0x6c, 0x52, 0x43, 0x77, 0xbd, 0xea, 0xf4, 0x61, 0x80, 0xcf,
+	0x28, 0xe0, 0x52, 0x43, 0x89, 0x61, 0x00, 0xa0, 0xdd, 0x87, 0x99, 0xa5, 0x3e, 0xdb, 0x71, 0x5c,
+	0xf3, 0x1d, 0xe1, 0x59, 0x90, 0x55, 0x28, 0x30, 0xb1, 0x42, 0x48, 0xa7, 0xed, 0xb9, 0x34, 0x68,
+	0xb9, 0x5a, 0xdf, 0xa6, 0x7b, 0xbe, 0x61, 0xad, 0x97, 0x79, 0x23, 0xc8, 0x15, 0x43, 0x8a, 0x6b,
+	0x7f, 0x94, 0x81, 0x72, 0x5d, 0xf7, 0x4c, 0x83, 0xc3, 0x93, 0x65, 0xc8, 0xf7, 0x3d, 0xea, 0x1e,
+	0x0d, 0x54, 0x58, 0xa5, 0x2d, 0x8f, 0xba, 0x28, 0x84, 0xc9, 0x5d, 0x28, 0xf5, 0x74, 0xcf, 0x7b,
+	0xe0, 0xb8, 0x4d, 0x65, 0x59, 0x0f, 0x09, 0x24, 0x97, 0x7e, 0x25, 0x8a, 0x01, 0x88, 0x56, 0x81,
+	0x72, 0xdd, 0xd2, 0x8d, 0xce, 0x8e, 0x63, 0x51, 0xed, 0x35, 0x28, 0xd6, 0xfb, 0xad, 0x16, 0x75,
+	0x0f, 0x61, 0xe1, 0xe7, 0x21, 0xcf, 0xf6, 0x7a, 0x6a, 0xbd, 0x08, 0x56, 0xf7, 0xfc, 0xe6, 0x5e,
+	0x8f, 0x3e, 0x1a, 0xd4, 0x40, 0xe2, 0xf0, 0x37, 0x14, 0x7c, 0xda, 0x4f, 0x32, 0x70, 0x4e, 0x16,
+	0xaa, 0x55, 0x54, 0xae, 0x4f, 0x84, 0x42, 0xc1, 0xa5, 0x4d, 0xd3, 0x53, 0xed, 0xb2, 0x32, 0xf6,
+	0x70, 0x44, 0x8e, 0xa2, 0x96, 0x43, 0xd1, 0x17, 0xa2, 0x00, 0x25, 0x3a, 0xe9, 0x43, 0xf9, 0x2d,
+	0xca, 0x3c, 0xe6, 0x52, 0xbd, 0xab, 0x5a, 0xee, 0xe5, 0xb1, 0x55, 0xdd, 0xa2, 0xac, 0x21, 0x90,
+	0xa2, 0xab, 0x6f, 0x50, 0x88, 0xa1, 0x26, 0xed, 0xa7, 0x79, 0x28, 0x07, 0xa3, 0x90, 0x7c, 0x0e,
+	0x0a, 0xc2, 0xdd, 0x53, 0xcd, 0x1a, 0x4c, 0x1d, 0xe1, 0x15, 0xa2, 0xa4, 0x91, 0xe7, 0x60, 0xca,
+	0x70, 0xba, 0x5d, 0xdd, 0x6e, 0x0a, 0x17, 0xbe, 0x5c, 0xaf, 0x70, 0x8b, 0xb1, 0x2c, 0x8b, 0xd0,
+	0xa7, 0x91, 0x4b, 0x90, 0xd7, 0xdd, 0xb6, 0xf4, 0xa6, 0xcb, 0x72, 0x9c, 0x2c, 0xb9, 0x6d, 0x0f,
+	0x45, 0x29, 0xf9, 0x0a, 0xe4, 0xa8, 0xbd, 0x5b, 0xcd, 0x8f, 0x36, 0x49, 0xd7, 0xed, 0xdd, 0x7b,
+	0xba, 0x5b, 0xaf, 0xa8, 0x3a, 0xe4, 0xae, 0xdb, 0xbb, 0xc8, 0x65, 0xc8, 0x1a, 0x4c, 0x51, 0x7b,
+	0x77, 0xd5, 0x75, 0xba, 0xca, 0xcd, 0xfd, 0xec, 0x08, 0x71, 0xce, 0xa2, 0x56, 0xe7, 0xc0, 0xb0,
+	0xa9, 0x62, 0xf4, 0x21, 0xc8, 0xd7, 0x61, 0x5a, 0xda, 0xb8, 0x75, 0xee, 0x32, 0x79, 0xd5, 0xa2,
+	0x80, 0xac, 0x8d, 0x36, 0x92, 0x82, 0x2f, 0xdc, 0x56, 0x44, 0x0a, 0x3d, 0x8c, 0x41, 0x91, 0xaf,
+	0x43, 0xd9, 0xdf, 0x31, 0x7a, 0x6a, 0x35, 0x48, 0xf5, 0xc8, 0x51, 0x31, 0x21, 0x7d, 0xbb, 0x6f,
+	0xba, 0xb4, 0x4b, 0x6d, 0xe6, 0xd5, 0xcf, 0xfa, 0x3e, 0x9a, 0x4f, 0xf5, 0x30, 0x44, 0x23, 0xdb,
+	0xc3, 0x5b, 0x0b, 0xe9, 0x17, 0x7f, 0x6e, 0xc4, 0x6c, 0x1b, 0x63, 0x5f, 0xf1, 0x06, 0x9c, 0x0e,
+	0x7c, 0x7f, 0xe5, 0x3e, 0x4a, 0x4f, 0xf9, 0x05, 0x2e, 0x7e, 0x33, 0x4e, 0x7a, 0x34, 0xa8, 0x3d,
+	0x9b, 0xe2, 0x40, 0x86, 0x0c, 0x98, 0x04, 0xd3, 0xfe, 0x2b, 0x0b, 0xc3, 0xcb, 0x7f, 0xbc, 0xd1,
+	0x32, 0xc7, 0xdd, 0x68, 0xc9, 0x0f, 0x92, 0xc6, 0xe1, 0x9a, 0x12, 0x9b, 0xfc, 0xa3, 0xd2, 0x3a,
+	0x26, 0x77, 0xdc, 0x1d, 0x33, 0xfe, 0xdc, 0xd1, 0xde, 0xcf, 0xc3, 0xa9, 0x15, 0x9d, 0x76, 0x1d,
+	0xfb, 0xb1, 0xee, 0x4b, 0xe6, 0x89, 0x70, 0x5f, 0xae, 0x40, 0xc9, 0xa5, 0x3d, 0xcb, 0x34, 0x74,
+	0x4f, 0x74, 0x96, 0xda, 0x23, 0xa2, 0x2a, 0xc3, 0x80, 0x3a, 0xc2, 0x6d, 0xcd, 0x3d, 0x91, 0x6e,
+	0x6b, 0xfe, 0x67, 0xef, 0xb6, 0x6a, 0x3f, 0xca, 0x42, 0xfe, 0x7a, 0xb3, 0x4d, 0xf9, 0x52, 0xda,
+	0xe2, 0xc6, 0x34, 0xb1, 0x94, 0x0a, 0x33, 0x29, 0x28, 0x64, 0x16, 0xb2, 0xcc, 0x51, 0x73, 0x05,
+	0x14, 0x3d, 0xbb, 0xe9, 0x60, 0x96, 0x39, 0xe4, 0x1d, 0x00, 0xc3, 0xb1, 0x9b, 0xa6, 0x1f, 0x3a,
+	0x99, 0xec, 0xc3, 0x56, 0x1d, 0xf7, 0x81, 0xee, 0x36, 0x97, 0x03, 0xc4, 0xfa, 0xa9, 0xfd, 0x41,
+	0x0d, 0xc2, 0x77, 0x8c, 0x68, 0x23, 0xed, 0xc0, 0x29, 0x95, 0x0d, 0xba, 0x3c, 0xb6, 0x5e, 0xde,
+	0x10, 0x07, 0xb8, 0xa4, 0x57, 0xa1, 0xd2, 0xd3, 0x5d, 0xdd, 0xb2, 0xa8, 0x65, 0x7a, 0x5d, 0xb1,
+	0x17, 0x2a, 0xd4, 0x4f, 0xef, 0x0f, 0x6a, 0x95, 0x8d, 0xb0, 0x18, 0xa3, 0x3c, 0xda, 0xef, 0x64,
+	0x00, 0x42, 0x54, 0xf2, 0x55, 0x38, 0xbd, 0x2d, 0x9c, 0x8b, 0x75, 0xfd, 0xe1, 0x1a, 0xb5, 0xdb,
+	0x6c, 0x47, 0xb4, 0x77, 0x5e, 0x4e, 0xf9, 0x7a, 0x9c, 0x84, 0x49, 0x5e, 0xf2, 0x12, 0x9c, 0x91,
+	0x45, 0x5b, 0x9e, 0xae, 0x30, 0x45, 0x7f, 0xcc, 0xc8, 0x60, 0x43, 0x3d, 0x41, 0xc3, 0x21, 0x6e,
+	0x4d, 0x87, 0xca, 0xaa, 0xf9, 0x90, 0x36, 0xef, 0x9b, 0x76, 0xd3, 0x79, 0x40, 0x10, 0x8a, 0x56,
+	0x58, 0x8d, 0xca, 0xe2, 0x7c, 0xc4, 0x8c, 0x04, 0xb1, 0xc5, 0xb0, 0xc5, 0xba, 0x94, 0xe9, 0xdc,
+	0xb0, 0xac, 0xf4, 0x55, 0xf4, 0x4b, 0xb6, 0x92, 0xac, 0xad, 0x42, 0xd2, 0x5e, 0x80, 0xb3, 0x43,
+	0xfd, 0x47, 0x6a, 0x50, 0xe8, 0xd0, 0xbd, 0x9b, 0xdc, 0x57, 0xe5, 0x7e, 0x80, 0x70, 0x7c, 0x6e,
+	0xf3, 0x02, 0x94, 0xe5, 0xda, 0x7f, 0x67, 0xa0, 0xb4, 0xda, 0xb7, 0x0d, 0xe1, 0xd9, 0x3e, 0xde,
+	0xad, 0xf3, 0xdd, 0x8a, 0x6c, 0xaa, 0x5b, 0xd1, 0x87, 0x62, 0xe7, 0x41, 0xe0, 0x76, 0x54, 0x16,
+	0xd7, 0xc7, 0x1f, 0x89, 0xaa, 0x4a, 0xf3, 0xb7, 0x05, 0x9e, 0x0c, 0x26, 0x9e, 0x52, 0x15, 0x2a,
+	0xde, 0xbe, 0x2f, 0x94, 0x2a, 0x65, 0xb3, 0x5f, 0x81, 0x4a, 0x84, 0xed, 0x48, 0xd1, 0x8b, 0x9f,
+	0x66, 0xe0, 0xf4, 0x0d, 0x19, 0xaf, 0x75, 0x5c, 0xe9, 0xad, 0x90, 0x8b, 0x90, 0x73, 0x7b, 0x7d,
+	0x21, 0x9f, 0x93, 0x9b, 0x73, 0xdc, 0xd8, 0x42, 0x5e, 0x46, 0x5e, 0x85, 0x52, 0x53, 0xf5, 0x81,
+	0xf2, 0x12, 0x8f, 0xda, 0x73, 0xc2, 0x7e, 0xfa, 0x6f, 0x18, 0xa0, 0x71, 0xb7, 0xae, 0xeb, 0xb5,
+	0x1b, 0xe6, 0x3b, 0xd2, 0x68, 0x16, 0xa4, 0x5b, 0xb7, 0x2e, 0x8b, 0xd0, 0xa7, 0x71, 0x83, 0xdc,
+	0xa1, 0x7b, 0xcb, 0xdc, 0xc3, 0x11, 0xb3, 0x4e, 0x19, 0xe4, 0xdb, 0xaa, 0x0c, 0x03, 0x2a, 0xef,
+	0x79, 0xf9, 0xcd, 0x05, 0x31, 0xd0, 0x45, 0xcf, 0xdf, 0xe3, 0x05, 0xea, 0xf3, 0xb5, 0xef, 0x64,
+	0xe1, 0xc2, 0x0d, 0xca, 0xe4, 0x7a, 0xb4, 0x42, 0x7b, 0x96, 0xb3, 0xc7, 0x97, 0x71, 0xa4, 0x6f,
+	0x93, 0x97, 0x00, 0x4c, 0x6f, 0xbb, 0xb1, 0x6b, 0x70, 0x07, 0x5d, 0x8d, 0x86, 0xcb, 0xaa, 0xf1,
+	0xe1, 0x66, 0xa3, 0xae, 0x28, 0x8f, 0x62, 0x6f, 0x18, 0x91, 0x09, 0x5d, 0xd9, 0xec, 0x01, 0xae,
+	0x6c, 0x03, 0xa0, 0x17, 0x3a, 0x03, 0x39, 0xc1, 0xf9, 0xf3, 0xbe, 0x9a, 0xa3, 0xf8, 0x01, 0x11,
+	0x98, 0x49, 0x96, 0xe7, 0xbf, 0xcc, 0xc1, 0xec, 0x0d, 0xca, 0x02, 0x4f, 0x5d, 0xed, 0x44, 0x1a,
+	0x3d, 0x6a, 0xf0, 0x56, 0x79, 0x2f, 0x03, 0x45, 0x4b, 0xdf, 0xa6, 0x96, 0x27, 0x66, 0x53, 0x65,
+	0xf1, 0xcd, 0xb1, 0x87, 0xf7, 0x68, 0x2d, 0xf3, 0x6b, 0x42, 0x43, 0x62, 0xc0, 0xcb, 0x42, 0x54,
+	0xea, 0xc9, 0x97, 0xa0, 0x62, 0x58, 0x7d, 0x8f, 0x51, 0x77, 0xc3, 0x71, 0x99, 0x5a, 0x99, 0x83,
+	0x88, 0xf8, 0x72, 0x48, 0xc2, 0x28, 0x1f, 0x59, 0x04, 0x30, 0x2c, 0x93, 0xda, 0x4c, 0x48, 0xc9,
+	0x61, 0x46, 0xfc, 0xf6, 0x5e, 0x0e, 0x28, 0x18, 0xe1, 0xe2, 0xaa, 0xba, 0x8e, 0x6d, 0x32, 0x47,
+	0xaa, 0xca, 0xc7, 0x55, 0xad, 0x87, 0x24, 0x8c, 0xf2, 0x09, 0x31, 0xca, 0x5c, 0xd3, 0xf0, 0x84,
+	0x58, 0x21, 0x21, 0x16, 0x92, 0x30, 0xca, 0xc7, 0x67, 0x72, 0xe4, 0xfb, 0x8f, 0x34, 0x93, 0xff,
+	0xaa, 0x04, 0x73, 0xb1, 0x66, 0x65, 0x3a, 0xa3, 0xad, 0xbe, 0xd5, 0xa0, 0xcc, 0xef, 0xc0, 0x2f,
+	0x41, 0x45, 0x45, 0x92, 0xef, 0x84, 0x56, 0x2e, 0xa8, 0x54, 0x23, 0x24, 0x61, 0x94, 0x8f, 0xfc,
+	0x76, 0xd8, 0xef, 0x32, 0x69, 0x62, 0x1c, 0x4f, 0xbf, 0x0f, 0x55, 0xf0, 0x50, 0x7d, 0xbf, 0x00,
+	0x65, 0x5b, 0x67, 0x9e, 0x98, 0x48, 0x6a, 0xce, 0x04, 0x7e, 0xf7, 0x1d, 0x9f, 0x80, 0x21, 0x0f,
+	0xd9, 0x80, 0xa7, 0x55, 0x13, 0x5f, 0x7f, 0xd8, 0x73, 0x5c, 0x46, 0x5d, 0x29, 0x9b, 0x17, 0xb2,
+	0x97, 0x94, 0xec, 0xd3, 0xeb, 0x29, 0x3c, 0x98, 0x2a, 0x49, 0xd6, 0xe1, 0x9c, 0x21, 0x03, 0xc9,
+	0xd4, 0x72, 0xf4, 0xa6, 0x0f, 0x58, 0x10, 0x80, 0x81, 0x93, 0xb9, 0x3c, 0xcc, 0x82, 0x69, 0x72,
+	0xc9, 0xd1, 0x5c, 0x1c, 0x6b, 0x34, 0x4f, 0x8d, 0x33, 0x9a, 0x4b, 0xe3, 0x8d, 0xe6, 0xf2, 0xe1,
+	0x46, 0x33, 0x6f, 0x79, 0x3e, 0x8e, 0xa8, 0xbb, 0xd4, 0x67, 0x3b, 0x32, 0xe6, 0x12, 0xc9, 0x53,
+	0x04, 0x2d, 0xdf, 0x48, 0xe1, 0xc1, 0x54, 0x49, 0xb2, 0x0d, 0xb3, 0xb2, 0xfc, 0xba, 0x6d, 0xb8,
+	0x7b, 0x3d, 0xbe, 0x72, 0x44, 0x70, 0x2b, 0x02, 0x57, 0x53, 0xb8, 0xb3, 0x8d, 0x91, 0x9c, 0x78,
+	0x00, 0x0a, 0xf9, 0x25, 0x98, 0x91, 0xbd, 0xb4, 0xae, 0xf7, 0x04, 0xac, 0xcc, 0x5a, 0x9c, 0x57,
+	0xb0, 0x33, 0xcb, 0x51, 0x22, 0xc6, 0x79, 0xc9, 0x12, 0x9c, 0xee, 0xed, 0x1a, 0xfc, 0xf1, 0x66,
+	0xeb, 0x0e, 0xa5, 0x4d, 0xda, 0x14, 0x39, 0x8a, 0x72, 0xfd, 0x19, 0x7f, 0x93, 0xb7, 0x11, 0x27,
+	0x63, 0x92, 0x9f, 0x5c, 0x83, 0x69, 0x8f, 0xe9, 0x2e, 0x53, 0x21, 0x8d, 0xea, 0x29, 0x99, 0xd5,
+	0xf1, 0x77, 0xfc, 0x8d, 0x08, 0x0d, 0x63, 0x9c, 0x93, 0x58, 0x8f, 0x47, 0x72, 0x31, 0x14, 0x31,
+	0xa1, 0x84, 0xd9, 0x7f, 0x37, 0x69, 0xf6, 0x5f, 0x9f, 0x64, 0xfa, 0xa7, 0x68, 0x38, 0xd4, 0xb4,
+	0xbf, 0x05, 0xc4, 0x55, 0x11, 0x2c, 0xb9, 0x93, 0x88, 0x58, 0xfe, 0x20, 0x77, 0x86, 0x43, 0x1c,
+	0x98, 0x22, 0x45, 0x1a, 0x70, 0xde, 0xa3, 0x36, 0x33, 0x6d, 0x6a, 0xc5, 0xe1, 0xe4, 0x92, 0xf0,
+	0xac, 0x82, 0x3b, 0xdf, 0x48, 0x63, 0xc2, 0x74, 0xd9, 0x49, 0x1a, 0xff, 0x47, 0x65, 0xb1, 0xee,
+	0xca, 0xa6, 0x39, 0x36, 0xb3, 0xfd, 0x5e, 0xd2, 0x6c, 0xbf, 0x39, 0x79, 0xbf, 0x8d, 0x67, 0xb2,
+	0x17, 0x01, 0x44, 0x2f, 0x44, 0x6d, 0x76, 0x60, 0xa9, 0x30, 0xa0, 0x60, 0x84, 0x8b, 0xcf, 0x42,
+	0xbf, 0x9d, 0xa3, 0xe6, 0x3a, 0x98, 0x85, 0x8d, 0x28, 0x11, 0xe3, 0xbc, 0x23, 0x4d, 0x7e, 0x61,
+	0x6c, 0x93, 0x7f, 0x0b, 0x48, 0x6c, 0x1f, 0x2b, 0xf1, 0x8a, 0xf1, 0xd4, 0xed, 0xcd, 0x21, 0x0e,
+	0x4c, 0x91, 0x1a, 0x31, 0x94, 0xa7, 0x8e, 0x77, 0x28, 0x97, 0xc6, 0x1f, 0xca, 0xe4, 0x4d, 0xb8,
+	0x28, 0x54, 0xa9, 0xf6, 0x89, 0x03, 0x4b, 0xe3, 0xff, 0x59, 0x05, 0x7c, 0x11, 0x47, 0x31, 0xe2,
+	0x68, 0x0c, 0xde, 0x3f, 0x86, 0x4b, 0x9b, 0x5c, 0xb9, 0x6e, 0x8d, 0x5e, 0x18, 0x96, 0x53, 0x78,
+	0x30, 0x55, 0x92, 0x0f, 0x31, 0xc6, 0x87, 0xa1, 0xbe, 0x6d, 0xd1, 0xa6, 0x4a, 0x5d, 0x07, 0x43,
+	0x6c, 0x73, 0xad, 0xa1, 0x28, 0x18, 0xe1, 0x4a, 0xb3, 0xd5, 0xd3, 0x47, 0xb4, 0xd5, 0x37, 0x44,
+	0xd0, 0xa7, 0x15, 0x5b, 0x12, 0x94, 0xc1, 0x0f, 0x0e, 0x23, 0x2c, 0x27, 0x19, 0x70, 0x58, 0x46,
+	0x2c, 0x95, 0x86, 0x6b, 0xf6, 0x98, 0x17, 0xc7, 0x3a, 0x95, 0x58, 0x2a, 0x53, 0x78, 0x30, 0x55,
+	0x92, 0x3b, 0x29, 0x3b, 0x54, 0xb7, 0xd8, 0x4e, 0x1c, 0xf0, 0x74, 0xdc, 0x49, 0x79, 0x79, 0x98,
+	0x05, 0xd3, 0xe4, 0x26, 0x31, 0x6f, 0xdf, 0xce, 0xc2, 0xb9, 0x1b, 0x54, 0x25, 0xc7, 0x37, 0x9c,
+	0xa6, 0x6f, 0xd7, 0xfe, 0x8f, 0xee, 0xb2, 0xde, 0xcd, 0xc2, 0xd4, 0x0d, 0xd7, 0xe9, 0xf7, 0xea,
+	0x7b, 0xa4, 0x0d, 0xc5, 0x07, 0x22, 0x22, 0xa2, 0xe2, 0x20, 0xe3, 0x9f, 0x03, 0x90, 0x81, 0x95,
+	0xd0, 0x04, 0xcb, 0x77, 0x54, 0xf0, 0xbc, 0xa5, 0x3a, 0x74, 0x8f, 0xca, 0xac, 0x58, 0x29, 0x6c,
+	0xa9, 0xdb, 0xbc, 0x10, 0x25, 0x8d, 0xbc, 0x05, 0x53, 0x1e, 0x73, 0x5c, 0xdf, 0x48, 0x4f, 0x12,
+	0xd1, 0xda, 0xa8, 0xbf, 0xd2, 0x90, 0x50, 0x72, 0x23, 0xaf, 0x5e, 0xd0, 0x57, 0xa0, 0x7d, 0x3f,
+	0x03, 0xf0, 0xf2, 0xe6, 0xe6, 0x86, 0x8a, 0x39, 0x34, 0x21, 0xaf, 0xf7, 0x83, 0x70, 0xd0, 0xea,
+	0xf8, 0x61, 0xdf, 0x68, 0xa6, 0x52, 0xc5, 0x67, 0xfa, 0x6c, 0x07, 0x05, 0x3a, 0xf9, 0x3c, 0x4c,
+	0xa9, 0x15, 0x52, 0xb5, 0x43, 0x90, 0x98, 0x51, 0xab, 0x28, 0xfa, 0x74, 0xed, 0xc7, 0x59, 0xb8,
+	0x70, 0xd3, 0x66, 0xd4, 0x6d, 0x30, 0xda, 0x8b, 0x25, 0xe6, 0xc8, 0xaf, 0x0d, 0x9d, 0x5b, 0xfb,
+	0xb9, 0xc3, 0x05, 0x41, 0xe4, 0xb1, 0xa7, 0x75, 0xca, 0xf4, 0xd0, 0x36, 0x85, 0x65, 0x91, 0xc3,
+	0x6a, 0x7d, 0xc8, 0x7b, 0x3d, 0x6a, 0xa8, 0x10, 0x4b, 0x63, 0xec, 0xd6, 0x48, 0xff, 0x00, 0x3e,
+	0xff, 0xc2, 0xe0, 0x96, 0x98, 0x8d, 0x42, 0x1d, 0xf9, 0x06, 0x14, 0x3d, 0xa6, 0xb3, 0xbe, 0x1f,
+	0x48, 0xdd, 0x3a, 0x6e, 0xc5, 0x02, 0x3c, 0x1c, 0xa3, 0xf2, 0x1d, 0x95, 0x52, 0xed, 0xc7, 0x19,
+	0x98, 0x4d, 0x17, 0x5c, 0x33, 0x3d, 0x46, 0x7e, 0x65, 0xa8, 0xd9, 0x0f, 0x19, 0x7b, 0xe2, 0xd2,
+	0xa2, 0xd1, 0x83, 0x2c, 0xb7, 0x5f, 0x12, 0x69, 0x72, 0x06, 0x05, 0x93, 0xd1, 0xae, 0xef, 0x2b,
+	0xdd, 0x3d, 0xe6, 0x4f, 0x8f, 0xd8, 0x26, 0xae, 0x05, 0xa5, 0x32, 0xed, 0xfd, 0xec, 0xa8, 0x4f,
+	0xe6, 0xdd, 0x42, 0xac, 0x78, 0xf2, 0xf7, 0xf6, 0x64, 0xc9, 0xdf, 0x78, 0x85, 0x86, 0x73, 0xc0,
+	0xbf, 0x31, 0x9c, 0x03, 0xbe, 0x3b, 0x79, 0x0e, 0x38, 0xd1, 0x0c, 0x23, 0x53, 0xc1, 0xdf, 0xce,
+	0xc1, 0xa5, 0x83, 0x86, 0x0d, 0xb7, 0x95, 0x6a, 0x74, 0x4e, 0x6a, 0x2b, 0x0f, 0x1e, 0x87, 0x64,
+	0x11, 0x0a, 0xbd, 0x1d, 0xdd, 0xf3, 0x57, 0x15, 0x7f, 0xf1, 0x2d, 0x6c, 0xf0, 0xc2, 0x47, 0x83,
+	0x5a, 0x45, 0xae, 0x46, 0xe2, 0x15, 0x25, 0x2b, 0xb7, 0x2c, 0x5d, 0xea, 0x79, 0xa1, 0x7f, 0x1b,
+	0x58, 0x96, 0x75, 0x59, 0x8c, 0x3e, 0x9d, 0x30, 0x28, 0xca, 0x3d, 0xa3, 0x4a, 0x1b, 0x8c, 0x9f,
+	0xe3, 0x4a, 0x39, 0x2f, 0x10, 0x7e, 0x94, 0x0a, 0x3f, 0x28, 0x5d, 0xc1, 0x79, 0x84, 0x42, 0xfa,
+	0x79, 0x84, 0xc8, 0x02, 0x2b, 0xcf, 0x23, 0xfc, 0x43, 0x09, 0x2e, 0xa4, 0xf7, 0x21, 0xff, 0xd6,
+	0x5d, 0xea, 0x7a, 0xa6, 0x63, 0xab, 0x45, 0x3b, 0x3c, 0xb7, 0x23, 0x8b, 0xd1, 0xa7, 0x7f, 0xaa,
+	0xf3, 0x67, 0x7f, 0x92, 0xe1, 0x6e, 0xb0, 0x0c, 0xd4, 0x7c, 0x12, 0x39, 0xb4, 0x67, 0xa5, 0x3b,
+	0x3d, 0x42, 0x21, 0x8e, 0xae, 0x0b, 0xf9, 0xe3, 0x0c, 0x54, 0xbb, 0x09, 0x3f, 0xfb, 0x04, 0x4f,
+	0xce, 0x5d, 0xda, 0x1f, 0xd4, 0xaa, 0xeb, 0x23, 0xf4, 0xe1, 0xc8, 0x9a, 0x90, 0xdf, 0x84, 0x4a,
+	0x8f, 0x8f, 0x0b, 0x8f, 0x51, 0xdb, 0xf0, 0x0f, 0xcf, 0x8d, 0x3f, 0xfa, 0x37, 0x42, 0xac, 0x06,
+	0x73, 0x75, 0x46, 0xdb, 0x7b, 0x2a, 0x29, 0x16, 0x12, 0x30, 0xaa, 0xf1, 0x09, 0x3f, 0x2a, 0x77,
+	0x05, 0x4a, 0x1e, 0x65, 0xcc, 0xb4, 0xdb, 0x9e, 0xd8, 0xbd, 0x95, 0xe5, 0x5c, 0x69, 0xa8, 0x32,
+	0x0c, 0xa8, 0xe4, 0xff, 0x43, 0x59, 0xc4, 0x7d, 0x96, 0xdc, 0xb6, 0x57, 0x2d, 0x8b, 0x4c, 0x94,
+	0xb0, 0xab, 0x0d, 0xbf, 0x10, 0x43, 0x3a, 0x79, 0x01, 0xa6, 0x65, 0x36, 0x4e, 0x1d, 0x99, 0x95,
+	0x7b, 0xac, 0x33, 0xfb, 0x83, 0xda, 0x74, 0x3d, 0x52, 0x8e, 0x31, 0x2e, 0xbe, 0x9f, 0xa2, 0x41,
+	0x70, 0x2c, 0xb9, 0x9f, 0x0a, 0xc3, 0x66, 0x18, 0xe1, 0x22, 0xcf, 0x42, 0x8e, 0x59, 0x9e, 0xd8,
+	0x43, 0x95, 0x42, 0xbf, 0x77, 0x73, 0xad, 0x81, 0xbc, 0x5c, 0xfb, 0x9f, 0x0c, 0x9c, 0x4e, 0x9c,
+	0x0c, 0xe2, 0x22, 0x7d, 0xd7, 0x52, 0x66, 0x24, 0x10, 0xd9, 0xc2, 0x35, 0xe4, 0xe5, 0xe4, 0x4d,
+	0xe5, 0x15, 0x66, 0x27, 0xbc, 0x1d, 0x70, 0x47, 0x67, 0x1e, 0x77, 0x03, 0x87, 0x1c, 0xc2, 0x6b,
+	0x89, 0xc6, 0xc9, 0xc5, 0x63, 0x6d, 0x07, 0x37, 0x50, 0x64, 0xc3, 0x99, 0x3f, 0xcc, 0x86, 0x53,
+	0xfb, 0xbb, 0x1c, 0x54, 0x6e, 0x39, 0xdb, 0x9f, 0x92, 0xb3, 0x0f, 0xe9, 0x16, 0x39, 0xfb, 0x33,
+	0xb4, 0xc8, 0x5b, 0xf0, 0x0c, 0x63, 0x7c, 0xd7, 0xef, 0xd8, 0x4d, 0x6f, 0xa9, 0xc5, 0xa8, 0xbb,
+	0x6a, 0xda, 0xa6, 0xb7, 0x43, 0x9b, 0x2a, 0x72, 0xf7, 0x99, 0xfd, 0x41, 0xed, 0x99, 0xcd, 0xcd,
+	0xb5, 0x34, 0x16, 0x1c, 0x25, 0x2b, 0x66, 0x88, 0x6e, 0x74, 0x9c, 0x56, 0x4b, 0x66, 0xb6, 0x65,
+	0x8e, 0x47, 0xce, 0x90, 0x48, 0x39, 0xc6, 0xb8, 0xb4, 0x8f, 0x32, 0x50, 0xbe, 0xad, 0xb7, 0x3a,
+	0x7a, 0xc3, 0xb4, 0x3b, 0xe4, 0x39, 0x98, 0xda, 0x76, 0x9d, 0x0e, 0x75, 0x3d, 0x95, 0x69, 0x16,
+	0xbb, 0x9e, 0xba, 0x2c, 0x42, 0x9f, 0xc6, 0xb7, 0x61, 0xcc, 0xe9, 0x99, 0x46, 0x72, 0xc3, 0xba,
+	0xc9, 0x0b, 0x51, 0xd2, 0xc8, 0x7d, 0x39, 0x8f, 0x72, 0x13, 0x1e, 0xad, 0xde, 0x5c, 0x6b, 0xc8,
+	0xec, 0xad, 0x3f, 0x03, 0xc9, 0xf3, 0x31, 0xcf, 0xa3, 0x3c, 0xca, 0x57, 0xd0, 0xbe, 0x97, 0x85,
+	0x8a, 0xfc, 0x34, 0xb9, 0x39, 0x3b, 0xce, 0x8f, 0x7b, 0x51, 0x44, 0xd7, 0xbd, 0x7e, 0x97, 0xba,
+	0x62, 0x13, 0xac, 0xa6, 0x5c, 0x34, 0x5a, 0x12, 0x12, 0x83, 0x08, 0x7b, 0x58, 0xe4, 0xb7, 0x4e,
+	0xfe, 0x04, 0x5b, 0xa7, 0x70, 0x60, 0xeb, 0xfc, 0x79, 0x06, 0xca, 0x6b, 0x66, 0x8b, 0x1a, 0x7b,
+	0x86, 0x45, 0xc9, 0xab, 0x50, 0x6d, 0x52, 0x8b, 0x32, 0x7a, 0xc3, 0xd5, 0x0d, 0xba, 0x41, 0x5d,
+	0x53, 0x5c, 0xa4, 0xe1, 0xa3, 0x4c, 0xcc, 0xe3, 0x82, 0x5c, 0x2e, 0x57, 0x46, 0xf0, 0xe0, 0x48,
+	0x69, 0x72, 0x13, 0xa6, 0x9b, 0xd4, 0x33, 0x5d, 0xda, 0xdc, 0x88, 0x78, 0xa3, 0xcf, 0xf9, 0xb6,
+	0x69, 0x25, 0x42, 0x7b, 0x34, 0xa8, 0xcd, 0x6c, 0x98, 0x3d, 0x6a, 0x99, 0x36, 0x95, 0x6e, 0x69,
+	0x4c, 0x54, 0x2b, 0x40, 0x6e, 0xcd, 0x69, 0x6b, 0xef, 0xe7, 0x20, 0xb8, 0x1a, 0x45, 0x7e, 0x2b,
+	0x03, 0x15, 0xdd, 0xb6, 0x1d, 0xa6, 0xae, 0x1d, 0xc9, 0xd8, 0x3e, 0x4e, 0x7c, 0x03, 0x6b, 0x7e,
+	0x29, 0x04, 0x95, 0x61, 0xe1, 0x20, 0x54, 0x1d, 0xa1, 0x60, 0x54, 0x37, 0xe9, 0x27, 0x22, 0xd5,
+	0xeb, 0x93, 0xd7, 0xe2, 0x10, 0x71, 0xe9, 0xd9, 0xaf, 0xc1, 0x99, 0x64, 0x65, 0x8f, 0x12, 0xd8,
+	0x9a, 0x24, 0x26, 0xf6, 0x6e, 0x19, 0x2a, 0x77, 0x74, 0x66, 0xee, 0x52, 0xb1, 0x05, 0x3b, 0x19,
+	0x9f, 0xfa, 0x0f, 0x33, 0x70, 0x21, 0x1e, 0x33, 0x3e, 0x41, 0xc7, 0x7a, 0x76, 0x7f, 0x50, 0xbb,
+	0x80, 0xa9, 0xda, 0x70, 0x44, 0x2d, 0x84, 0x8b, 0x3d, 0x14, 0x82, 0x3e, 0x69, 0x17, 0xbb, 0x31,
+	0x4a, 0x21, 0x8e, 0xae, 0xcb, 0xa7, 0xc5, 0xc5, 0x7e, 0xb2, 0xaf, 0xaa, 0x24, 0x36, 0x00, 0x53,
+	0x4f, 0xcc, 0x06, 0xa0, 0xf4, 0x44, 0x38, 0x5c, 0xbd, 0xc8, 0x06, 0xa0, 0x3c, 0x61, 0x1c, 0x54,
+	0xa5, 0x59, 0x25, 0xda, 0xa8, 0x8d, 0x84, 0x38, 0xfc, 0xe6, 0xfb, 0xc6, 0xc4, 0x80, 0xc2, 0xb6,
+	0xee, 0x99, 0x86, 0x72, 0x3f, 0xeb, 0xe3, 0x87, 0x25, 0xfc, 0x3b, 0x1d, 0x32, 0xc6, 0x24, 0x5e,
+	0x51, 0x62, 0x87, 0x77, 0x47, 0xb2, 0x13, 0xdd, 0x1d, 0x21, 0xcb, 0x90, 0xb7, 0xb9, 0xb1, 0xcd,
+	0x1d, 0xf9, 0xb6, 0xc8, 0x9d, 0xdb, 0x74, 0x0f, 0x85, 0xb0, 0xf6, 0xc3, 0x2c, 0x00, 0xff, 0x7c,
+	0xe5, 0xe6, 0x3c, 0x66, 0x33, 0xf2, 0x79, 0x98, 0xf2, 0xfa, 0x22, 0x5a, 0xab, 0x96, 0xe2, 0x30,
+	0x78, 0x2c, 0x8b, 0xd1, 0xa7, 0x73, 0x4f, 0xe8, 0xed, 0x3e, 0xed, 0xfb, 0xb1, 0xa0, 0xc0, 0x13,
+	0x7a, 0x85, 0x17, 0xa2, 0xa4, 0x9d, 0x9c, 0x23, 0xe3, 0xef, 0x9a, 0x0a, 0x27, 0xb4, 0x6b, 0xd2,
+	0xbe, 0x99, 0x05, 0x08, 0x03, 0xfc, 0xe4, 0xfb, 0x19, 0x38, 0x1f, 0xcc, 0x32, 0x26, 0x6f, 0x24,
+	0x2c, 0x5b, 0xba, 0xd9, 0x9d, 0x78, 0x23, 0x93, 0x36, 0xc3, 0x85, 0xd9, 0xd9, 0x48, 0x53, 0x87,
+	0xe9, 0xb5, 0x20, 0x08, 0x25, 0xda, 0xed, 0xb1, 0xbd, 0x15, 0xd3, 0x55, 0xc3, 0x2e, 0xf5, 0x48,
+	0xff, 0x75, 0xc5, 0x23, 0x45, 0xd5, 0xcd, 0x0d, 0x31, 0x73, 0x7c, 0x0a, 0x06, 0x38, 0xda, 0x77,
+	0xb3, 0x70, 0x2e, 0xa5, 0x76, 0xe4, 0x25, 0x38, 0xa3, 0x32, 0x1c, 0xe1, 0xb5, 0xdc, 0x4c, 0x78,
+	0x2d, 0xb7, 0x91, 0xa0, 0xe1, 0x10, 0x37, 0x79, 0x13, 0x40, 0x37, 0x0c, 0xea, 0x79, 0xeb, 0x4e,
+	0xd3, 0x77, 0xfa, 0x5e, 0xe4, 0x9b, 0xca, 0xa5, 0xa0, 0xf4, 0xd1, 0xa0, 0xf6, 0xc5, 0xb4, 0x54,
+	0x55, 0xe2, 0xeb, 0x43, 0x01, 0x8c, 0x40, 0x92, 0x37, 0x00, 0xe4, 0x3d, 0x91, 0xe0, 0xb0, 0xe5,
+	0x63, 0x22, 0xe9, 0xf3, 0xfe, 0x1d, 0x86, 0xf9, 0x57, 0xfa, 0xba, 0xcd, 0x4c, 0xb6, 0x27, 0x8f,
+	0x45, 0xdf, 0x0b, 0x50, 0x30, 0x82, 0xa8, 0xfd, 0x4d, 0x16, 0x4a, 0xbe, 0x33, 0xfa, 0x09, 0xe4,
+	0x4a, 0xda, 0xb1, 0x5c, 0xc9, 0xf8, 0x17, 0x03, 0xfd, 0x2a, 0x8f, 0xcc, 0x8e, 0x38, 0x89, 0xec,
+	0xc8, 0x8d, 0xc9, 0x55, 0x1d, 0x9c, 0x0f, 0xf9, 0x41, 0x16, 0x4e, 0xf9, 0xac, 0xea, 0x1c, 0xf7,
+	0x97, 0x61, 0xc6, 0xa5, 0x7a, 0xb3, 0xae, 0x33, 0x63, 0x47, 0x74, 0x9f, 0x3c, 0xc5, 0x7d, 0x76,
+	0x7f, 0x50, 0x9b, 0xc1, 0x28, 0x01, 0xe3, 0x7c, 0x69, 0x07, 0xc0, 0xb3, 0x13, 0x1e, 0x00, 0xcf,
+	0x1d, 0xe5, 0x00, 0x38, 0xd1, 0xa1, 0xc2, 0x6b, 0xb4, 0x69, 0x76, 0xa9, 0xd3, 0xf7, 0xff, 0x44,
+	0x70, 0xd4, 0xc3, 0xc3, 0x62, 0x75, 0xc7, 0x10, 0x06, 0xa3, 0x98, 0xda, 0x3f, 0x66, 0x60, 0x3a,
+	0x6c, 0xaf, 0x13, 0xcf, 0x18, 0xb5, 0xe2, 0x19, 0xa3, 0xa5, 0x89, 0x87, 0xc3, 0x88, 0x1c, 0xd1,
+	0xef, 0x17, 0xc3, 0xcf, 0x12, 0x59, 0xa1, 0x6d, 0x98, 0x35, 0x53, 0x13, 0x25, 0x11, 0x6b, 0x13,
+	0x1c, 0x82, 0xbb, 0x39, 0x92, 0x13, 0x0f, 0x40, 0x21, 0x7d, 0x28, 0xed, 0x52, 0x97, 0x99, 0x06,
+	0xf5, 0xbf, 0xef, 0xc6, 0xc4, 0xde, 0x91, 0x3c, 0x00, 0x10, 0xb6, 0xe9, 0x3d, 0xa5, 0x00, 0x03,
+	0x55, 0x64, 0x1b, 0x0a, 0xb4, 0xd9, 0xa6, 0xfe, 0xf9, 0xf9, 0xaf, 0x4e, 0x74, 0xa3, 0x22, 0x6c,
+	0x4f, 0xfe, 0xe6, 0xa1, 0x84, 0x26, 0x1e, 0x94, 0x2d, 0x7f, 0xfb, 0xae, 0xc6, 0xe1, 0xf8, 0xbe,
+	0x4e, 0x10, 0x08, 0x08, 0x0f, 0xa1, 0x06, 0x45, 0x18, 0xea, 0x21, 0x9d, 0xe0, 0xae, 0x48, 0xe1,
+	0x98, 0x8c, 0xc7, 0x01, 0xf7, 0x45, 0x3c, 0x28, 0x3f, 0xd0, 0x19, 0x75, 0xbb, 0xba, 0xdb, 0x51,
+	0x8e, 0xff, 0xf8, 0x5f, 0x78, 0xdf, 0x47, 0x0a, 0xbf, 0x30, 0x28, 0xc2, 0x50, 0x0f, 0x71, 0xa0,
+	0xcc, 0x94, 0x27, 0xeb, 0x5f, 0x37, 0x1c, 0x5f, 0xa9, 0xef, 0x13, 0x7b, 0x32, 0xb0, 0x1d, 0xbc,
+	0x62, 0xa8, 0x43, 0x7b, 0x94, 0x0b, 0xcd, 0xe3, 0x27, 0x9d, 0x22, 0x7c, 0x21, 0x9e, 0x22, 0x9c,
+	0x4b, 0xa6, 0x08, 0x13, 0xd1, 0x98, 0xa3, 0x27, 0x09, 0x75, 0xa8, 0x58, 0xba, 0xc7, 0xb6, 0x7a,
+	0x4d, 0x9d, 0xa9, 0xf8, 0x72, 0x65, 0xf1, 0xff, 0x1d, 0xce, 0x7a, 0x71, 0x7b, 0x18, 0x06, 0x5d,
+	0xd6, 0x42, 0x18, 0x8c, 0x62, 0x92, 0xab, 0x50, 0xd9, 0x15, 0x33, 0x52, 0xde, 0xa6, 0x28, 0x08,
+	0x73, 0x2e, 0x2c, 0xec, 0xbd, 0xb0, 0x18, 0xa3, 0x3c, 0x5c, 0x44, 0x7a, 0x02, 0x52, 0xa4, 0x18,
+	0x8a, 0x34, 0xc2, 0x62, 0x8c, 0xf2, 0x88, 0x5c, 0x85, 0x69, 0x77, 0xa4, 0xc0, 0x94, 0x10, 0x90,
+	0xb9, 0x0a, 0xbf, 0x10, 0x43, 0x3a, 0xb9, 0x02, 0xa5, 0x7e, 0xb3, 0x25, 0x79, 0x4b, 0x82, 0x57,
+	0xf8, 0x5f, 0x5b, 0x2b, 0xab, 0xea, 0x76, 0x87, 0x4f, 0xd5, 0xfe, 0x33, 0x03, 0x64, 0x38, 0xa9,
+	0x4d, 0x76, 0xa0, 0x68, 0x8b, 0xa8, 0xca, 0xc4, 0xd7, 0xa5, 0x23, 0xc1, 0x19, 0x39, 0xc7, 0x54,
+	0x81, 0xc2, 0x27, 0x36, 0x94, 0xe8, 0x43, 0x46, 0x5d, 0x5b, 0xb7, 0x94, 0xeb, 0x71, 0x3c, 0x57,
+	0xb3, 0xa5, 0xc3, 0xa9, 0x90, 0x31, 0xd0, 0xa1, 0xfd, 0x24, 0x0b, 0x95, 0x08, 0xdf, 0xe3, 0x36,
+	0x2b, 0xe2, 0xcc, 0xa8, 0x0c, 0x66, 0x6c, 0xb9, 0x96, 0x1a, 0xa6, 0x91, 0x33, 0xa3, 0x8a, 0x84,
+	0x6b, 0x18, 0xe5, 0x23, 0x8b, 0x00, 0x5d, 0xdd, 0x63, 0xd4, 0x15, 0x4b, 0x49, 0xe2, 0xa4, 0xe6,
+	0x7a, 0x40, 0xc1, 0x08, 0x17, 0xb9, 0xac, 0x2e, 0xee, 0xe7, 0xe3, 0x97, 0xa6, 0x46, 0xdc, 0xca,
+	0x2f, 0x1c, 0xc3, 0xad, 0x7c, 0xd2, 0x86, 0x33, 0x7e, 0xad, 0x7d, 0xaa, 0xb2, 0x73, 0x87, 0x04,
+	0x96, 0xce, 0x78, 0x02, 0x02, 0x87, 0x40, 0xb5, 0x1f, 0x66, 0x60, 0x26, 0xb6, 0x95, 0xe6, 0x5b,
+	0xbb, 0xf0, 0x48, 0x46, 0x64, 0x6b, 0x17, 0x3b, 0x49, 0xf1, 0x3c, 0x14, 0x65, 0x03, 0xa9, 0x86,
+	0x0f, 0xcc, 0x88, 0x6c, 0x42, 0x54, 0x54, 0x6e, 0x10, 0x54, 0xb0, 0x2e, 0x69, 0x10, 0x54, 0x34,
+	0x0f, 0x7d, 0x3a, 0xf9, 0x02, 0x94, 0xfc, 0xda, 0xa9, 0x96, 0x0e, 0xff, 0xd9, 0xa0, 0xca, 0x31,
+	0xe0, 0xd0, 0xbe, 0x55, 0x00, 0xf9, 0xc3, 0x09, 0x2e, 0xd7, 0x34, 0x3d, 0x99, 0xa5, 0xca, 0x88,
+	0x2c, 0x55, 0x20, 0xb7, 0xa2, 0xca, 0x31, 0xe0, 0x20, 0x17, 0x21, 0xd7, 0x35, 0x6d, 0x15, 0x56,
+	0x14, 0xbb, 0xca, 0x75, 0xd3, 0x46, 0x5e, 0x26, 0x48, 0xfa, 0x43, 0x95, 0x68, 0x91, 0x24, 0xfd,
+	0x21, 0xf2, 0x32, 0xee, 0x5c, 0x5a, 0x8e, 0xd3, 0xd9, 0xd6, 0x8d, 0x8e, 0x1f, 0xfa, 0xce, 0x8b,
+	0xd9, 0x2b, 0x9c, 0xcb, 0xb5, 0x38, 0x09, 0x93, 0xbc, 0x5c, 0xdc, 0x70, 0x1c, 0xab, 0xe9, 0x3c,
+	0xb0, 0x7d, 0xf1, 0x42, 0x28, 0xbe, 0x1c, 0x27, 0x61, 0x92, 0x97, 0x6c, 0xc1, 0x33, 0xef, 0x50,
+	0xd7, 0x51, 0x2d, 0xd6, 0xb0, 0x28, 0xed, 0xf9, 0x30, 0xd2, 0x40, 0x89, 0xac, 0xd0, 0x6b, 0xe9,
+	0x2c, 0x38, 0x4a, 0x56, 0x24, 0x9b, 0x74, 0xb7, 0x4d, 0xd9, 0x86, 0xeb, 0xf0, 0xbd, 0x93, 0x69,
+	0xb7, 0x7d, 0xd8, 0xa9, 0x10, 0x76, 0x33, 0x9d, 0x05, 0x47, 0xc9, 0x92, 0x75, 0x38, 0x2b, 0x49,
+	0x11, 0x9f, 0x59, 0xd9, 0xba, 0xda, 0xfe, 0xa0, 0xf6, 0x99, 0x15, 0xda, 0x73, 0xa9, 0xc1, 0x0d,
+	0xf4, 0x66, 0x92, 0x0d, 0x87, 0x25, 0xc5, 0x6f, 0xa0, 0x54, 0xb8, 0x77, 0x83, 0xba, 0xa2, 0xcb,
+	0x45, 0xec, 0x48, 0x39, 0xe6, 0x98, 0xa0, 0xe1, 0x10, 0x37, 0x79, 0x15, 0xaa, 0x51, 0xd8, 0xa5,
+	0x5d, 0xdd, 0xb4, 0xf4, 0x6d, 0xd3, 0x32, 0xd9, 0x9e, 0xc8, 0x15, 0xcf, 0xc8, 0x60, 0xe4, 0xe6,
+	0x08, 0x1e, 0x1c, 0x29, 0xad, 0xfd, 0x41, 0x0e, 0xc4, 0x1f, 0x83, 0xc8, 0x7d, 0xc8, 0x59, 0x4e,
+	0x5b, 0x99, 0xe4, 0xf1, 0x23, 0x1d, 0x6b, 0x4e, 0x5b, 0x0e, 0xbc, 0x35, 0xa7, 0x8d, 0x1c, 0x91,
+	0x18, 0x50, 0xe8, 0xe8, 0xad, 0x8e, 0xae, 0x2c, 0xf0, 0xf8, 0xfe, 0x46, 0x90, 0xc8, 0x53, 0x37,
+	0x44, 0xf9, 0x2b, 0x4a, 0x6c, 0xee, 0xd8, 0x6c, 0xfb, 0xbf, 0x00, 0x51, 0x5b, 0xbf, 0x09, 0x62,
+	0x63, 0x3e, 0x92, 0x5c, 0x05, 0x83, 0x57, 0x0c, 0x75, 0x10, 0x03, 0x8a, 0xfd, 0xa6, 0xf8, 0x73,
+	0x53, 0x7e, 0x42, 0x2f, 0x66, 0x6b, 0x45, 0x7c, 0x93, 0x58, 0xbf, 0xe4, 0x33, 0x2a, 0x68, 0xed,
+	0x2f, 0x32, 0x30, 0xd3, 0xb0, 0xcc, 0xa6, 0x69, 0xb7, 0x4f, 0xee, 0x4e, 0x2e, 0xb9, 0x0b, 0x05,
+	0xcf, 0x32, 0x9b, 0x74, 0xcc, 0xcb, 0xa2, 0xa2, 0x33, 0x78, 0x2d, 0x29, 0x4a, 0x1c, 0xed, 0x4f,
+	0xf3, 0xa0, 0x7e, 0x73, 0x45, 0xfa, 0x50, 0x6e, 0xfb, 0x37, 0x57, 0x55, 0x95, 0x5f, 0x9e, 0xe0,
+	0x86, 0x43, 0xec, 0x0e, 0xac, 0xec, 0x9d, 0xa0, 0x10, 0x43, 0x4d, 0x84, 0xc6, 0xc7, 0xdc, 0xca,
+	0x84, 0x63, 0x4e, 0xaa, 0x1b, 0x1e, 0x75, 0x3a, 0xe4, 0x77, 0x18, 0xeb, 0x4d, 0x7c, 0x10, 0x37,
+	0x3c, 0x63, 0x2b, 0xc3, 0x78, 0xfc, 0x1d, 0x05, 0x34, 0x57, 0x61, 0xeb, 0xc7, 0x70, 0x7b, 0x3d,
+	0x0c, 0xa1, 0xaa, 0x08, 0xab, 0xce, 0x3c, 0x14, 0xd0, 0xe4, 0xd7, 0xa1, 0xc2, 0x5c, 0xdd, 0xf6,
+	0x5a, 0x8e, 0xdb, 0xa5, 0xae, 0x5a, 0xfc, 0x57, 0x27, 0x18, 0xcf, 0x9b, 0x21, 0x9a, 0x8c, 0x7a,
+	0xc4, 0x8a, 0x30, 0xaa, 0x4d, 0xeb, 0x82, 0x72, 0xdb, 0x89, 0x11, 0xfb, 0x4b, 0x80, 0xcc, 0x74,
+	0x2e, 0x1c, 0x6e, 0x2c, 0x06, 0x77, 0xc9, 0x23, 0x77, 0xeb, 0x52, 0x7f, 0x07, 0xa0, 0xfd, 0x73,
+	0x16, 0x72, 0x9b, 0x6b, 0x0d, 0x79, 0x55, 0x44, 0xfc, 0x34, 0x83, 0x36, 0x3a, 0x66, 0xef, 0x1e,
+	0x75, 0xcd, 0xd6, 0x9e, 0x5a, 0x7b, 0x23, 0x57, 0x45, 0x92, 0x1c, 0x98, 0x22, 0x45, 0x5e, 0x87,
+	0x69, 0x43, 0x5f, 0xa6, 0x2e, 0x93, 0x2e, 0xcc, 0xd1, 0xa2, 0xe6, 0xe2, 0x04, 0xc3, 0xf2, 0x52,
+	0x28, 0x8e, 0x31, 0x30, 0xb2, 0x05, 0x60, 0x84, 0xd0, 0x47, 0x8a, 0xa4, 0xcb, 0xdf, 0x22, 0x84,
+	0xc0, 0x11, 0x20, 0x82, 0x50, 0xee, 0x70, 0x56, 0x81, 0x9a, 0x3f, 0x0a, 0xaa, 0x98, 0x74, 0xb7,
+	0x7d, 0x59, 0x0c, 0x61, 0xb4, 0x7f, 0xcf, 0x40, 0xb8, 0x09, 0x24, 0x1e, 0x14, 0x9b, 0xe2, 0xd6,
+	0xb6, 0x9a, 0xf6, 0xe3, 0x6f, 0xa6, 0xe3, 0x3f, 0x23, 0xa9, 0x93, 0xfd, 0x41, 0x2d, 0xf1, 0x83,
+	0x12, 0x54, 0xaa, 0x48, 0x1b, 0x72, 0x6f, 0x39, 0xdb, 0x13, 0xcf, 0xfa, 0xc8, 0xf9, 0x1f, 0xb9,
+	0x73, 0x8a, 0x14, 0x20, 0xd7, 0xa0, 0x7d, 0x2b, 0x0b, 0x95, 0xc8, 0x98, 0x9e, 0xf8, 0xa7, 0x04,
+	0x0f, 0x13, 0x3f, 0x25, 0xd8, 0x18, 0x7f, 0x57, 0x1e, 0xd6, 0xea, 0xa4, 0xff, 0x4b, 0xf0, 0xb7,
+	0x59, 0xc8, 0x6d, 0xad, 0xac, 0xf2, 0xc5, 0x37, 0x38, 0x07, 0x34, 0x71, 0x62, 0x2a, 0xfc, 0xdf,
+	0x99, 0x18, 0x69, 0xc1, 0x2b, 0x86, 0x3a, 0xc8, 0x0e, 0x4c, 0x6d, 0xf7, 0x4d, 0x8b, 0x99, 0xf6,
+	0xc4, 0xa7, 0xce, 0xfc, 0x7f, 0x38, 0xa8, 0xe3, 0x32, 0x12, 0x15, 0x7d, 0x78, 0xd2, 0x86, 0xa9,
+	0xb6, 0xbc, 0x06, 0xa2, 0xe6, 0xde, 0x4b, 0xe3, 0xaf, 0x5e, 0x12, 0x47, 0x2a, 0x52, 0x2f, 0xe8,
+	0xa3, 0x6b, 0xdf, 0x00, 0xb5, 0xf8, 0x13, 0xef, 0x64, 0x5a, 0x33, 0x08, 0x0c, 0xa5, 0xb5, 0xa8,
+	0xf6, 0x1f, 0x19, 0x88, 0x5b, 0xe9, 0x4f, 0xbe, 0x53, 0x3b, 0xc9, 0x4e, 0x5d, 0x39, 0x8e, 0x39,
+	0x90, 0xde, 0xaf, 0xda, 0x5f, 0x67, 0xa1, 0xa8, 0x7e, 0x04, 0x7a, 0xf2, 0xd9, 0x0f, 0x1a, 0xcb,
+	0x7e, 0x2c, 0x4f, 0xf8, 0x5b, 0xc4, 0x91, 0xb9, 0x8f, 0x6e, 0x22, 0xf7, 0x31, 0xe9, 0xff, 0x17,
+	0x1f, 0x93, 0xf9, 0xf8, 0xfb, 0x0c, 0x9c, 0x92, 0x8c, 0x37, 0x6d, 0x8f, 0xe9, 0xb6, 0x21, 0x9c,
+	0x62, 0x19, 0x89, 0x9a, 0x38, 0xb4, 0xa7, 0xc2, 0xd0, 0xc2, 0x5d, 0x95, 0xcf, 0xa8, 0xa0, 0xf9,
+	0x66, 0x79, 0xc7, 0xf1, 0x98, 0x30, 0xb7, 0xd9, 0xf8, 0x26, 0xfb, 0x65, 0x55, 0x8e, 0x01, 0x47,
+	0x72, 0xf7, 0x5e, 0x18, 0xbd, 0x7b, 0xd7, 0xfe, 0x2c, 0x03, 0xd3, 0xd1, 0x3f, 0x4f, 0x8e, 0x9f,
+	0xc8, 0x49, 0xe4, 0x51, 0xb2, 0x27, 0x90, 0x47, 0xf9, 0x30, 0x03, 0xe0, 0x57, 0xf6, 0xc4, 0xb3,
+	0x28, 0xcd, 0x78, 0x16, 0x65, 0xe2, 0x6e, 0x4d, 0xcf, 0xa1, 0xfc, 0xa0, 0xe0, 0x7f, 0x92, 0xc8,
+	0xa0, 0xbc, 0x97, 0x81, 0x53, 0x7a, 0x2c, 0x2b, 0x31, 0xb1, 0x27, 0x91, 0x48, 0x72, 0x04, 0x7f,
+	0xea, 0x8c, 0x97, 0x63, 0x42, 0x2d, 0xb9, 0x06, 0xd3, 0x3d, 0x15, 0x2a, 0xbe, 0x13, 0x8e, 0xba,
+	0xe0, 0x00, 0xf2, 0x46, 0x84, 0x86, 0x31, 0xce, 0xc7, 0x64, 0x81, 0x72, 0xc7, 0x92, 0x05, 0x8a,
+	0x1e, 0x35, 0xcb, 0x1f, 0x78, 0xd4, 0xcc, 0x86, 0x72, 0xcb, 0x75, 0xba, 0x22, 0xd1, 0xa2, 0xfe,
+	0x8b, 0x38, 0x61, 0xf2, 0x26, 0x58, 0x54, 0x56, 0x7d, 0x5c, 0x0c, 0x55, 0xf0, 0x65, 0x9a, 0x39,
+	0x52, 0x5b, 0xf1, 0x38, 0xb4, 0x05, 0x53, 0x77, 0x53, 0xa2, 0xa2, 0x0f, 0x1f, 0x4f, 0xa6, 0x4c,
+	0x7d, 0x32, 0xc9, 0x14, 0xed, 0x9f, 0xb2, 0xbe, 0xbd, 0x68, 0x24, 0xee, 0x24, 0x65, 0x46, 0xdc,
+	0x49, 0x52, 0xb7, 0x6b, 0xa3, 0xe9, 0x86, 0xe7, 0xa1, 0xe8, 0x52, 0xdd, 0x73, 0x6c, 0x75, 0x4f,
+	0x3d, 0xb0, 0xb6, 0x28, 0x4a, 0x51, 0x51, 0xa3, 0x69, 0x89, 0xec, 0x63, 0xd2, 0x12, 0x5f, 0x88,
+	0x0c, 0x08, 0x99, 0xff, 0x0d, 0xe6, 0x76, 0xca, 0xa0, 0x10, 0x31, 0x4b, 0xf5, 0xbb, 0xfd, 0x42,
+	0x32, 0x66, 0xa9, 0x7e, 0x85, 0x1f, 0x70, 0x90, 0x26, 0x4c, 0x5b, 0xba, 0xc7, 0x44, 0x54, 0xaa,
+	0xb9, 0xc4, 0xc6, 0xc8, 0x79, 0x04, 0xd3, 0x66, 0x2d, 0x82, 0x83, 0x31, 0x54, 0xed, 0xf7, 0x32,
+	0x10, 0x36, 0xf9, 0x11, 0xa3, 0xa3, 0xaf, 0x42, 0xa9, 0xab, 0x3f, 0x5c, 0xa1, 0x96, 0xbe, 0x37,
+	0xc9, 0xdf, 0xaf, 0xd6, 0x15, 0x06, 0x06, 0x68, 0xda, 0x20, 0x03, 0xea, 0xc6, 0x2e, 0xa1, 0x50,
+	0x68, 0x99, 0x0f, 0x55, 0x7d, 0x26, 0xf1, 0x54, 0x22, 0xff, 0x5b, 0x93, 0xf1, 0x05, 0x51, 0x80,
+	0x12, 0x9d, 0x74, 0x61, 0xca, 0x93, 0xe1, 0x1f, 0xf5, 0x29, 0xe3, 0xef, 0xca, 0x63, 0x61, 0x24,
+	0x75, 0xdd, 0x57, 0x16, 0xa1, 0xaf, 0xa3, 0x3e, 0xff, 0xc1, 0xc7, 0x73, 0x4f, 0x7d, 0xf8, 0xf1,
+	0xdc, 0x53, 0x1f, 0x7d, 0x3c, 0xf7, 0xd4, 0x37, 0xf7, 0xe7, 0x32, 0x1f, 0xec, 0xcf, 0x65, 0x3e,
+	0xdc, 0x9f, 0xcb, 0x7c, 0xb4, 0x3f, 0x97, 0xf9, 0xd7, 0xfd, 0xb9, 0xcc, 0xef, 0xfe, 0xdb, 0xdc,
+	0x53, 0xaf, 0x95, 0x7c, 0xcc, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xcb, 0x5b, 0xd2, 0x27, 0xde,
+	0x63, 0x00, 0x00,
 }
 
 func (m *AbstractPodTemplate) Marshal() (dAtA []byte, err error) {
@@ -2412,6 +2416,23 @@ func (m *AbstractPodTemplate) MarshalToSizedBuffer(dAtA []byte) (int, error) {
 	_ = i
 	var l int
 	_ = l
+	if m.DNSConfig != nil {
+		{
+			size, err := m.DNSConfig.MarshalToSizedBuffer(dAtA[:i])
+			if err != nil {
+				return 0, err
+			}
+			i -= size
+			i = encodeVarintGenerated(dAtA, i, uint64(size))
+		}
+		i--
+		dAtA[i] = 0x6a
+	}
+	i -= len(m.DNSPolicy)
+	copy(dAtA[i:], m.DNSPolicy)
+	i = encodeVarintGenerated(dAtA, i, uint64(len(m.DNSPolicy)))
+	i--
+	dAtA[i] = 0x62
 	if m.AutomountServiceAccountToken != nil {
 		i--
 		if *m.AutomountServiceAccountToken {
@@ -6534,6 +6555,12 @@ func (m *AbstractPodTemplate) Size() (n int) {
 	if m.AutomountServiceAccountToken != nil {
 		n += 2
 	}
+	l = len(m.DNSPolicy)
+	n += 1 + l + sovGenerated(uint64(l))
+	if m.DNSConfig != nil {
+		l = m.DNSConfig.Size()
+		n += 1 + l + sovGenerated(uint64(l))
+	}
 	return n
 }
 
@@ -8043,6 +8070,8 @@ func (this *AbstractPodTemplate) String() string {
 		`ServiceAccountName:` + fmt.Sprintf("%v", this.ServiceAccountName) + `,`,
 		`RuntimeClassName:` + valueToStringGenerated(this.RuntimeClassName) + `,`,
 		`AutomountServiceAccountToken:` + valueToStringGenerated(this.AutomountServiceAccountToken) + `,`,
+		`DNSPolicy:` + fmt.Sprintf("%v", this.DNSPolicy) + `,`,
+		`DNSConfig:` + strings.Replace(fmt.Sprintf("%v", this.DNSConfig), "PodDNSConfig", "v1.PodDNSConfig", 1) + `,`,
 		`}`,
 	}, "")
 	return s
@@ -9563,6 +9592,74 @@ func (m *AbstractPodTemplate) Unmarshal(dAtA []byte) error {
 			}
 			b := bool(v != 0)
 			m.AutomountServiceAccountToken = &b
+		case 12:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field DNSPolicy", wireType)
+			}
+			var stringLen uint64
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowGenerated
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				stringLen |= uint64(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			intStringLen := int(stringLen)
+			if intStringLen < 0 {
+				return ErrInvalidLengthGenerated
+			}
+			postIndex := iNdEx + intStringLen
+			if postIndex < 0 {
+				return ErrInvalidLengthGenerated
+			}
+			if postIndex > l {
+				return io.ErrUnexpectedEOF
+			}
+			m.DNSPolicy = k8s_io_api_core_v1.DNSPolicy(dAtA[iNdEx:postIndex])
+			iNdEx = postIndex
+		case 13:
+			if wireType != 2 {
+				return fmt.Errorf("proto: wrong wireType = %d for field DNSConfig", wireType)
+			}
+			var msglen int
+			for shift := uint(0); ; shift += 7 {
+				if shift >= 64 {
+					return ErrIntOverflowGenerated
+				}
+				if iNdEx >= l {
+					return io.ErrUnexpectedEOF
+				}
+				b := dAtA[iNdEx]
+				iNdEx++
+				msglen |= int(b&0x7F) << shift
+				if b < 0x80 {
+					break
+				}
+			}
+			if msglen < 0 {
+				return ErrInvalidLengthGenerated
+			}
+			postIndex := iNdEx + msglen
+			if postIndex < 0 {
+				return ErrInvalidLengthGenerated
+			}
+			if postIndex > l {
+				return io.ErrUnexpectedEOF
+			}
+			if m.DNSConfig == nil {
+				m.DNSConfig = &v1.PodDNSConfig{}
+			}
+			if err := m.DNSConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+				return err
+			}
+			iNdEx = postIndex
 		default:
 			iNdEx = preIndex
 			skippy, err := skipGenerated(dAtA[iNdEx:])
diff --git a/pkg/apis/numaflow/v1alpha1/generated.proto b/pkg/apis/numaflow/v1alpha1/generated.proto
index 6b2eb796..9ac2592f 100644
--- a/pkg/apis/numaflow/v1alpha1/generated.proto
+++ b/pkg/apis/numaflow/v1alpha1/generated.proto
@@ -99,6 +99,21 @@ message AbstractPodTemplate {
   // AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.
   // +optional
   optional bool automountServiceAccountToken = 11;
+
+  // Set DNS policy for the pod.
+  // Defaults to "ClusterFirst".
+  // Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.
+  // DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.
+  // To have DNS options set along with hostNetwork, you have to specify DNS policy
+  // explicitly to 'ClusterFirstWithHostNet'.
+  // +optional
+  optional string dnsPolicy = 12;
+
+  // Specifies the DNS parameters of a pod.
+  // Parameters specified here will be merged to the generated DNS
+  // configuration based on DNSPolicy.
+  // +optional
+  optional k8s.io.api.core.v1.PodDNSConfig dnsConfig = 13;
 }
 
 message AbstractVertex {
diff --git a/pkg/apis/numaflow/v1alpha1/openapi_generated.go b/pkg/apis/numaflow/v1alpha1/openapi_generated.go
index f155f64c..d1044d46 100644
--- a/pkg/apis/numaflow/v1alpha1/openapi_generated.go
+++ b/pkg/apis/numaflow/v1alpha1/openapi_generated.go
@@ -213,11 +213,24 @@ func schema_pkg_apis_numaflow_v1alpha1_AbstractPodTemplate(ref common.ReferenceC
 							Format:      "",
 						},
 					},
+					"dnsPolicy": {
+						SchemaProps: spec.SchemaProps{
+							Description: "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
+							Type:        []string{"string"},
+							Format:      "",
+						},
+					},
+					"dnsConfig": {
+						SchemaProps: spec.SchemaProps{
+							Description: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.",
+							Ref:         ref("k8s.io/api/core/v1.PodDNSConfig"),
+						},
+					},
 				},
 			},
 		},
 		Dependencies: []string{
-			"github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"},
+			"github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"},
 	}
 }
 
@@ -362,6 +375,19 @@ func schema_pkg_apis_numaflow_v1alpha1_AbstractVertex(ref common.ReferenceCallba
 							Format:      "",
 						},
 					},
+					"dnsPolicy": {
+						SchemaProps: spec.SchemaProps{
+							Description: "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
+							Type:        []string{"string"},
+							Format:      "",
+						},
+					},
+					"dnsConfig": {
+						SchemaProps: spec.SchemaProps{
+							Description: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.",
+							Ref:         ref("k8s.io/api/core/v1.PodDNSConfig"),
+						},
+					},
 					"volumes": {
 						VendorExtensible: spec.VendorExtensible{
 							Extensions: spec.Extensions{
@@ -427,7 +453,7 @@ func schema_pkg_apis_numaflow_v1alpha1_AbstractVertex(ref common.ReferenceCallba
 			},
 		},
 		Dependencies: []string{
-			"github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Scale", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Sink", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Source", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.UDF", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.VertexLimits", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.Volume"},
+			"github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Scale", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Sink", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Source", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.UDF", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.VertexLimits", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.Volume"},
 	}
 }
 
@@ -800,6 +826,19 @@ func schema_pkg_apis_numaflow_v1alpha1_DaemonTemplate(ref common.ReferenceCallba
 							Format:      "",
 						},
 					},
+					"dnsPolicy": {
+						SchemaProps: spec.SchemaProps{
+							Description: "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
+							Type:        []string{"string"},
+							Format:      "",
+						},
+					},
+					"dnsConfig": {
+						SchemaProps: spec.SchemaProps{
+							Description: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.",
+							Ref:         ref("k8s.io/api/core/v1.PodDNSConfig"),
+						},
+					},
 					"replicas": {
 						SchemaProps: spec.SchemaProps{
 							Description: "Replicas is the number of desired replicas of the Deployment. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller",
@@ -821,7 +860,7 @@ func schema_pkg_apis_numaflow_v1alpha1_DaemonTemplate(ref common.ReferenceCallba
 			},
 		},
 		Dependencies: []string{
-			"github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"},
+			"github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"},
 	}
 }
 
@@ -1869,6 +1908,19 @@ func schema_pkg_apis_numaflow_v1alpha1_JetStreamBufferService(ref common.Referen
 							Format:      "",
 						},
 					},
+					"dnsPolicy": {
+						SchemaProps: spec.SchemaProps{
+							Description: "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
+							Type:        []string{"string"},
+							Format:      "",
+						},
+					},
+					"dnsConfig": {
+						SchemaProps: spec.SchemaProps{
+							Description: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.",
+							Ref:         ref("k8s.io/api/core/v1.PodDNSConfig"),
+						},
+					},
 					"settings": {
 						SchemaProps: spec.SchemaProps{
 							Description: "JetStream configuration, if not specified, global settings in numaflow-controller-config will be used. See https://docs.nats.io/running-a-nats-service/configuration#jetstream. Only configure \"max_memory_store\" or \"max_file_store\", do not set \"store_dir\" as it has been hardcoded.",
@@ -1916,7 +1968,7 @@ func schema_pkg_apis_numaflow_v1alpha1_JetStreamBufferService(ref common.Referen
 			},
 		},
 		Dependencies: []string{
-			"github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.PersistenceStrategy", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"},
+			"github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.PersistenceStrategy", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"},
 	}
 }
 
@@ -2068,6 +2120,19 @@ func schema_pkg_apis_numaflow_v1alpha1_JobTemplate(ref common.ReferenceCallback)
 							Format:      "",
 						},
 					},
+					"dnsPolicy": {
+						SchemaProps: spec.SchemaProps{
+							Description: "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
+							Type:        []string{"string"},
+							Format:      "",
+						},
+					},
+					"dnsConfig": {
+						SchemaProps: spec.SchemaProps{
+							Description: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.",
+							Ref:         ref("k8s.io/api/core/v1.PodDNSConfig"),
+						},
+					},
 					"containerTemplate": {
 						SchemaProps: spec.SchemaProps{
 							Ref: ref("github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate"),
@@ -2091,7 +2156,7 @@ func schema_pkg_apis_numaflow_v1alpha1_JobTemplate(ref common.ReferenceCallback)
 			},
 		},
 		Dependencies: []string{
-			"github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"},
+			"github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"},
 	}
 }
 
@@ -2426,6 +2491,19 @@ func schema_pkg_apis_numaflow_v1alpha1_NativeRedis(ref common.ReferenceCallback)
 							Format:      "",
 						},
 					},
+					"dnsPolicy": {
+						SchemaProps: spec.SchemaProps{
+							Description: "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
+							Type:        []string{"string"},
+							Format:      "",
+						},
+					},
+					"dnsConfig": {
+						SchemaProps: spec.SchemaProps{
+							Description: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.",
+							Ref:         ref("k8s.io/api/core/v1.PodDNSConfig"),
+						},
+					},
 					"settings": {
 						SchemaProps: spec.SchemaProps{
 							Description: "Redis configuration, if not specified, global settings in numaflow-controller-config will be used.",
@@ -2436,7 +2514,7 @@ func schema_pkg_apis_numaflow_v1alpha1_NativeRedis(ref common.ReferenceCallback)
 			},
 		},
 		Dependencies: []string{
-			"github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.PersistenceStrategy", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.RedisSettings", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"},
+			"github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.PersistenceStrategy", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.RedisSettings", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration"},
 	}
 }
 
@@ -3693,6 +3771,19 @@ func schema_pkg_apis_numaflow_v1alpha1_VertexSpec(ref common.ReferenceCallback)
 							Format:      "",
 						},
 					},
+					"dnsPolicy": {
+						SchemaProps: spec.SchemaProps{
+							Description: "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
+							Type:        []string{"string"},
+							Format:      "",
+						},
+					},
+					"dnsConfig": {
+						SchemaProps: spec.SchemaProps{
+							Description: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.",
+							Ref:         ref("k8s.io/api/core/v1.PodDNSConfig"),
+						},
+					},
 					"volumes": {
 						VendorExtensible: spec.VendorExtensible{
 							Extensions: spec.Extensions{
@@ -3811,7 +3902,7 @@ func schema_pkg_apis_numaflow_v1alpha1_VertexSpec(ref common.ReferenceCallback)
 			},
 		},
 		Dependencies: []string{
-			"github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Edge", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Scale", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Sink", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Source", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.UDF", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.VertexLimits", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Watermark", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.Volume"},
+			"github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Edge", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Scale", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Sink", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Source", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.UDF", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.VertexLimits", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Watermark", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.Volume"},
 	}
 }
 
diff --git a/pkg/apis/numaflow/v1alpha1/pod_template.go b/pkg/apis/numaflow/v1alpha1/pod_template.go
index f21537ff..7e325752 100644
--- a/pkg/apis/numaflow/v1alpha1/pod_template.go
+++ b/pkg/apis/numaflow/v1alpha1/pod_template.go
@@ -77,6 +77,19 @@ type AbstractPodTemplate struct {
 	// AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.
 	// +optional
 	AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty" protobuf:"bytes,11,opt,name=automountServiceAccountToken"`
+	// Set DNS policy for the pod.
+	// Defaults to "ClusterFirst".
+	// Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.
+	// DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.
+	// To have DNS options set along with hostNetwork, you have to specify DNS policy
+	// explicitly to 'ClusterFirstWithHostNet'.
+	// +optional
+	DNSPolicy corev1.DNSPolicy `json:"dnsPolicy,omitempty" protobuf:"bytes,12,opt,name=dnsPolicy,casttype=DNSPolicy"`
+	// Specifies the DNS parameters of a pod.
+	// Parameters specified here will be merged to the generated DNS
+	// configuration based on DNSPolicy.
+	// +optional
+	DNSConfig *corev1.PodDNSConfig `json:"dnsConfig,omitempty" protobuf:"bytes,13,opt,name=dnsConfig"`
 }
 
 // ApplyToPodSpec updates the PodSpec with the values in the AbstractPodTemplate
@@ -91,6 +104,8 @@ func (apt *AbstractPodTemplate) ApplyToPodSpec(ps *corev1.PodSpec) {
 	ps.ServiceAccountName = apt.ServiceAccountName
 	ps.RuntimeClassName = apt.RuntimeClassName
 	ps.AutomountServiceAccountToken = apt.AutomountServiceAccountToken
+	ps.DNSPolicy = apt.DNSPolicy
+	ps.DNSConfig = apt.DNSConfig
 }
 
 // ApplyToPodTemplateSpec updates the PodTemplateSpec with the values in the AbstractPodTemplate
diff --git a/pkg/apis/numaflow/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/numaflow/v1alpha1/zz_generated.deepcopy.go
index 83204278..1e09b34b 100644
--- a/pkg/apis/numaflow/v1alpha1/zz_generated.deepcopy.go
+++ b/pkg/apis/numaflow/v1alpha1/zz_generated.deepcopy.go
@@ -79,6 +79,11 @@ func (in *AbstractPodTemplate) DeepCopyInto(out *AbstractPodTemplate) {
 		*out = new(bool)
 		**out = **in
 	}
+	if in.DNSConfig != nil {
+		in, out := &in.DNSConfig, &out.DNSConfig
+		*out = new(v1.PodDNSConfig)
+		(*in).DeepCopyInto(*out)
+	}
 	return
 }
 


Test patch:
diff --git a/pkg/apis/numaflow/v1alpha1/vertex_types_test.go b/pkg/apis/numaflow/v1alpha1/vertex_types_test.go
index 74c243ce..28868c29 100644
--- a/pkg/apis/numaflow/v1alpha1/vertex_types_test.go
+++ b/pkg/apis/numaflow/v1alpha1/vertex_types_test.go
@@ -200,6 +200,8 @@ func TestGetPodSpec(t *testing.T) {
 			ServiceAccountName:           "sa",
 			RuntimeClassName:             pointer.String("run"),
 			AutomountServiceAccountToken: pointer.Bool(true),
+			DNSPolicy:                    corev1.DNSClusterFirstWithHostNet,
+			DNSConfig:                    &corev1.PodDNSConfig{Nameservers: []string{"aaa.aaa"}},
 		}
 		s, err := testObj.GetPodSpec(req)
 		assert.NoError(t, err)
@@ -217,6 +219,8 @@ func TestGetPodSpec(t *testing.T) {
 		assert.Equal(t, "run", *s.RuntimeClassName)
 		assert.NotNil(t, s.AutomountServiceAccountToken)
 		assert.True(t, *s.AutomountServiceAccountToken)
+		assert.Equal(t, corev1.DNSClusterFirstWithHostNet, s.DNSPolicy)
+		assert.Equal(t, s.DNSConfig, testObj.Spec.DNSConfig)
 		assert.Equal(t, 1, len(s.Containers))
 		assert.Equal(t, CtrMain, s.Containers[0].Name)
 		assert.Equal(t, testFlowImage, s.Containers[0].Image)