@producerflow/producerflowapi 1.0.5 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -480,9 +480,9 @@ export type NewAgencyRequest_Agency = Message<"producerflow.producer.v1.NewAgenc
480
480
  /**
481
481
  * The phone number of the agency.
482
482
  *
483
- * @generated from field: string phone = 5;
483
+ * @generated from field: optional string phone = 5;
484
484
  */
485
- phone: string;
485
+ phone?: string;
486
486
  /**
487
487
  * The website of the agency.
488
488
  *
@@ -578,7 +578,8 @@ export type NewAgencyRequest_Agency = Message<"producerflow.producer.v1.NewAgenc
578
578
  * The map key is the question identifier/text, and the value is the answer provided.
579
579
  * This field is deprecated and will be removed in a future release.
580
580
  *
581
- * @generated from field: map<string, string> metadata_questions = 21;
581
+ * @generated from field: map<string, string> metadata_questions = 21 [deprecated = true];
582
+ * @deprecated
582
583
  */
583
584
  metadataQuestions: {
584
585
  [key: string]: string;
@@ -634,9 +635,9 @@ export type NewAgencyRequest_Agency_Principal = Message<"producerflow.producer.v
634
635
  /**
635
636
  * The phone number of the principal.
636
637
  *
637
- * @generated from field: string phone = 4;
638
+ * @generated from field: optional string phone = 4;
638
639
  */
639
- phone: string;
640
+ phone?: string;
640
641
  /**
641
642
  * The National Producer Number (NPN) of the principal.
642
643
  *
@@ -1742,7 +1743,8 @@ export type Agency_AgencyInfo = Message<"producerflow.producer.v1.Agency.AgencyI
1742
1743
  * The map key is the question identifier/text, and the value is the answer provided.
1743
1744
  * This field is deprecated and will be removed in a future release.
1744
1745
  *
1745
- * @generated from field: map<string, string> metadata_questions = 11;
1746
+ * @generated from field: map<string, string> metadata_questions = 11 [deprecated = true];
1747
+ * @deprecated
1746
1748
  */
1747
1749
  metadataQuestions: {
1748
1750
  [key: string]: string;
@@ -2339,6 +2341,12 @@ export type Agency_NIPR_License = Message<"producerflow.producer.v1.Agency.NIPR.
2339
2341
  * @generated from field: repeated producerflow.producer.v1.Agency.NIPR.License.LineOfAuthority lines_of_authority = 12;
2340
2342
  */
2341
2343
  linesOfAuthority: Agency_NIPR_License_LineOfAuthority[];
2344
+ /**
2345
+ * The unique identifier for this license.
2346
+ *
2347
+ * @generated from field: string license_id = 13;
2348
+ */
2349
+ licenseId: string;
2342
2350
  };
2343
2351
  /**
2344
2352
  * Describes the message producerflow.producer.v1.Agency.NIPR.License.
@@ -2709,7 +2717,8 @@ export type Producer = Message<"producerflow.producer.v1.Producer"> & {
2709
2717
  * The map key is the question identifier/text, and the value is the answer provided.
2710
2718
  * This field is deprecated and will be removed in a future release.
2711
2719
  *
2712
- * @generated from field: map<string, string> metadata_questions = 40;
2720
+ * @generated from field: map<string, string> metadata_questions = 40 [deprecated = true];
2721
+ * @deprecated
2713
2722
  */
2714
2723
  metadataQuestions: {
2715
2724
  [key: string]: string;
@@ -2811,6 +2820,19 @@ export type Producer_NIPR = Message<"producerflow.producer.v1.Producer.NIPR"> &
2811
2820
  * @generated from field: repeated producerflow.producer.v1.Producer.NIPR.Appointment appointments = 10;
2812
2821
  */
2813
2822
  appointments: Producer_NIPR_Appointment[];
2823
+ /**
2824
+ * Current synchronization status with NIPR.
2825
+ * Indicates whether NIPR data sync is active, failing, pending, or disabled.
2826
+ *
2827
+ * @generated from field: producerflow.producer.v1.NIPRSyncState nipr_sync_status = 11;
2828
+ */
2829
+ niprSyncStatus: NIPRSyncState;
2830
+ /**
2831
+ * Timestamp when the NIPR sync status was last updated.
2832
+ *
2833
+ * @generated from field: google.protobuf.Timestamp nipr_sync_status_updated_at = 12;
2834
+ */
2835
+ niprSyncStatusUpdatedAt?: Timestamp;
2814
2836
  };
2815
2837
  /**
2816
2838
  * Describes the message producerflow.producer.v1.Producer.NIPR.
@@ -2896,6 +2918,12 @@ export type Producer_NIPR_License = Message<"producerflow.producer.v1.Producer.N
2896
2918
  * @generated from field: repeated producerflow.producer.v1.Producer.NIPR.License.LineOfAuthority lines_of_authority = 8;
2897
2919
  */
2898
2920
  linesOfAuthority: Producer_NIPR_License_LineOfAuthority[];
2921
+ /**
2922
+ * The unique identifier for this license.
2923
+ *
2924
+ * @generated from field: string license_id = 9;
2925
+ */
2926
+ licenseId: string;
2899
2927
  };
2900
2928
  /**
2901
2929
  * Describes the message producerflow.producer.v1.Producer.NIPR.License.
@@ -3501,8 +3529,10 @@ export type NewProducer = Message<"producerflow.producer.v1.NewProducer"> & {
3501
3529
  *
3502
3530
  * Note: This data is stored but not validated by ProducerFlow. Ensure your
3503
3531
  * application handles any necessary validation of the responses.
3532
+ * Deprecated: Use tenant_additional_questions instead. This field will be removed in a future release.
3504
3533
  *
3505
- * @generated from field: map<string, string> metadata_questions = 11;
3534
+ * @generated from field: map<string, string> metadata_questions = 11 [deprecated = true];
3535
+ * @deprecated
3506
3536
  */
3507
3537
  metadataQuestions: {
3508
3538
  [key: string]: string;
@@ -3794,11 +3824,12 @@ export type NewContact = Message<"producerflow.producer.v1.NewContact"> & {
3794
3824
  address?: Address;
3795
3825
  /**
3796
3826
  * Role or position of the contact within the agency.
3797
- * Required and must be non-empty.
3827
+ * Required and must be a valid ContactRole enum value (not UNSPECIFIED).
3828
+ * See ContactRole enum for available options.
3798
3829
  *
3799
- * @generated from field: string role = 7;
3830
+ * @generated from field: producerflow.producer.v1.ContactRole role = 7;
3800
3831
  */
3801
- role: string;
3832
+ role: ContactRole;
3802
3833
  /**
3803
3834
  * Optional. External identifier for the contact in the tenant's system. This field allows tenants to maintain a reference to their own internal ID for this contact, enabling bi-directional synchronization between ProducerFlow and the tenant's system. Usage: Provide this when you have an existing identifier for the contact in your system. Omit if you don't need to track a reference to your internal system. This is independent of ProducerFlow's internal IDs and the authentication tenant context. Can be used with SetExternalID RPC to update this value after creation. Common use cases: Linking to an existing CRM or AMS system contact ID. Maintaining synchronization with legacy systems. Enabling lookups from external systems back to ProducerFlow. Format: Any string identifier that is meaningful in your system (e.g., "CONT-12345", "uuid"). Validation: Maximum length of 255 characters
3804
3835
  *
@@ -3953,8 +3984,10 @@ export type Contact = Message<"producerflow.producer.v1.Contact"> & {
3953
3984
  phone: string;
3954
3985
  /**
3955
3986
  * Role or position of the contact within the agency.
3987
+ * Deprecated: Use role_type instead. This field will be removed in a future version.
3956
3988
  *
3957
- * @generated from field: string role = 7;
3989
+ * @generated from field: string role = 7 [deprecated = true];
3990
+ * @deprecated
3958
3991
  */
3959
3992
  role: string;
3960
3993
  /**
@@ -3975,6 +4008,13 @@ export type Contact = Message<"producerflow.producer.v1.Contact"> & {
3975
4008
  * @generated from field: google.protobuf.Timestamp created_at = 10;
3976
4009
  */
3977
4010
  createdAt?: Timestamp;
4011
+ /**
4012
+ * The role type of the contact as an enum.
4013
+ * This field replaces the deprecated string-based 'role' field.
4014
+ *
4015
+ * @generated from field: producerflow.producer.v1.ContactRole role_type = 11;
4016
+ */
4017
+ roleType: ContactRole;
3978
4018
  };
3979
4019
  /**
3980
4020
  * Describes the message producerflow.producer.v1.Contact.
@@ -4018,6 +4058,108 @@ export type ListAgencyContactsResponse = Message<"producerflow.producer.v1.ListA
4018
4058
  * Use `create(ListAgencyContactsResponseSchema)` to create a new message.
4019
4059
  */
4020
4060
  export declare const ListAgencyContactsResponseSchema: GenMessage<ListAgencyContactsResponse>;
4061
+ /**
4062
+ * UpdateContactRequest is used to update an existing contact's information.
4063
+ *
4064
+ * @generated from message producerflow.producer.v1.UpdateContactRequest
4065
+ */
4066
+ export type UpdateContactRequest = Message<"producerflow.producer.v1.UpdateContactRequest"> & {
4067
+ /**
4068
+ * The UUID of the contact to update.
4069
+ * Must be a valid UUID format.
4070
+ *
4071
+ * @generated from field: string contact_id = 1;
4072
+ */
4073
+ contactId: string;
4074
+ /**
4075
+ * The contact information to update.
4076
+ * The field is required.
4077
+ *
4078
+ * @generated from field: producerflow.producer.v1.UpdateContactRequest.Contact contact = 2;
4079
+ */
4080
+ contact?: UpdateContactRequest_Contact;
4081
+ };
4082
+ /**
4083
+ * Describes the message producerflow.producer.v1.UpdateContactRequest.
4084
+ * Use `create(UpdateContactRequestSchema)` to create a new message.
4085
+ */
4086
+ export declare const UpdateContactRequestSchema: GenMessage<UpdateContactRequest>;
4087
+ /**
4088
+ * Contact contains the fields that can be updated for a contact.
4089
+ * All fields are optional, allowing partial updates.
4090
+ *
4091
+ * @generated from message producerflow.producer.v1.UpdateContactRequest.Contact
4092
+ */
4093
+ export type UpdateContactRequest_Contact = Message<"producerflow.producer.v1.UpdateContactRequest.Contact"> & {
4094
+ /**
4095
+ * First name of the contact.
4096
+ * If provided, must be non-empty.
4097
+ *
4098
+ * @generated from field: optional string first_name = 1;
4099
+ */
4100
+ firstName?: string;
4101
+ /**
4102
+ * Last name of the contact.
4103
+ * If provided, must be non-empty.
4104
+ *
4105
+ * @generated from field: optional string last_name = 2;
4106
+ */
4107
+ lastName?: string;
4108
+ /**
4109
+ * Middle name of the contact.
4110
+ * If provided, must be non-empty.
4111
+ *
4112
+ * @generated from field: optional string middle_name = 3;
4113
+ */
4114
+ middleName?: string;
4115
+ /**
4116
+ * Email address of the contact.
4117
+ * If provided, must be a valid email format.
4118
+ * Must be unique within the tenant.
4119
+ *
4120
+ * @generated from field: optional string email = 4;
4121
+ */
4122
+ email?: string;
4123
+ /**
4124
+ * Phone number of the contact.
4125
+ * If provided, must be a valid phone number format.
4126
+ *
4127
+ * @generated from field: optional string phone = 5;
4128
+ */
4129
+ phone?: string;
4130
+ /**
4131
+ * Role or position of the contact within the agency.
4132
+ * If provided, must be a valid ContactRole enum value (not UNSPECIFIED).
4133
+ * See ContactRole enum for available options.
4134
+ *
4135
+ * @generated from field: optional producerflow.producer.v1.ContactRole role = 6;
4136
+ */
4137
+ role?: ContactRole;
4138
+ /**
4139
+ * Mailing address of the contact.
4140
+ * If provided, all address fields should be included.
4141
+ * This replaces the entire address.
4142
+ *
4143
+ * @generated from field: optional producerflow.producer.v1.Address address = 7;
4144
+ */
4145
+ address?: Address;
4146
+ };
4147
+ /**
4148
+ * Describes the message producerflow.producer.v1.UpdateContactRequest.Contact.
4149
+ * Use `create(UpdateContactRequest_ContactSchema)` to create a new message.
4150
+ */
4151
+ export declare const UpdateContactRequest_ContactSchema: GenMessage<UpdateContactRequest_Contact>;
4152
+ /**
4153
+ * UpdateContactResponse is the empty response returned after successfully updating a contact.
4154
+ *
4155
+ * @generated from message producerflow.producer.v1.UpdateContactResponse
4156
+ */
4157
+ export type UpdateContactResponse = Message<"producerflow.producer.v1.UpdateContactResponse"> & {};
4158
+ /**
4159
+ * Describes the message producerflow.producer.v1.UpdateContactResponse.
4160
+ * Use `create(UpdateContactResponseSchema)` to create a new message.
4161
+ */
4162
+ export declare const UpdateContactResponseSchema: GenMessage<UpdateContactResponse>;
4021
4163
  /**
4022
4164
  * SetExternalIDRequest is used to associate an external identifier with a producer, agency, or contact.
4023
4165
  * This allows integration with external systems that use different ID schemes.
@@ -5315,6 +5457,63 @@ export type UnassignProducerFromLocationsResponse = Message<"producerflow.produc
5315
5457
  * Use `create(UnassignProducerFromLocationsResponseSchema)` to create a new message.
5316
5458
  */
5317
5459
  export declare const UnassignProducerFromLocationsResponseSchema: GenMessage<UnassignProducerFromLocationsResponse>;
5460
+ /**
5461
+ * ContactRole defines the role or position of a contact within an agency.
5462
+ *
5463
+ * Contacts represent non-producer personnel associated with an agency.
5464
+ * These roles help categorize and organize contacts based on their
5465
+ * responsibilities and access levels.
5466
+ *
5467
+ * @generated from enum producerflow.producer.v1.ContactRole
5468
+ */
5469
+ export declare enum ContactRole {
5470
+ /**
5471
+ * Default unspecified value. Do not use.
5472
+ * This value is invalid and will be rejected by the API.
5473
+ *
5474
+ * @generated from enum value: CONTACT_ROLE_UNSPECIFIED = 0;
5475
+ */
5476
+ UNSPECIFIED = 0,
5477
+ /**
5478
+ * Agency Administrator: A contact with administrative responsibilities.
5479
+ * Typically has elevated permissions and manages agency operations.
5480
+ *
5481
+ * @generated from enum value: CONTACT_ROLE_AGENCY_ADMINISTRATOR = 1;
5482
+ */
5483
+ AGENCY_ADMINISTRATOR = 1,
5484
+ /**
5485
+ * Other: A contact role that doesn't fit into predefined categories.
5486
+ * Use this for flexible role assignment.
5487
+ *
5488
+ * @generated from enum value: CONTACT_ROLE_OTHER = 2;
5489
+ */
5490
+ OTHER = 2,
5491
+ /**
5492
+ * Customer Service Representative (CSR): A contact who handles customer inquiries
5493
+ * and support. Does not hold an insurance producer license.
5494
+ *
5495
+ * @generated from enum value: CONTACT_ROLE_CSR = 3;
5496
+ */
5497
+ CSR = 3,
5498
+ /**
5499
+ * Unlicensed Producer: An individual working in a producer-like capacity
5500
+ * but who does not hold an active insurance producer license.
5501
+ *
5502
+ * @generated from enum value: CONTACT_ROLE_UNLICENSED_PRODUCER = 4;
5503
+ */
5504
+ UNLICENSED_PRODUCER = 4,
5505
+ /**
5506
+ * Unlicensed Service: A contact providing services to the agency
5507
+ * without requiring an insurance license.
5508
+ *
5509
+ * @generated from enum value: CONTACT_ROLE_UNLICENSED_SERVICE = 5;
5510
+ */
5511
+ UNLICENSED_SERVICE = 5
5512
+ }
5513
+ /**
5514
+ * Describes the enum producerflow.producer.v1.ContactRole.
5515
+ */
5516
+ export declare const ContactRoleSchema: GenEnum<ContactRole>;
5318
5517
  /**
5319
5518
  * EntityType defines the business structure of an agency.
5320
5519
  *
@@ -6292,6 +6491,63 @@ export declare const ProducerService: GenService<{
6292
6491
  input: typeof ListAgencyContactsRequestSchema;
6293
6492
  output: typeof ListAgencyContactsResponseSchema;
6294
6493
  };
6494
+ /**
6495
+ * UpdateContact updates editable fields for an existing contact.
6496
+ *
6497
+ * This endpoint allows updating contact information for non-producer personnel
6498
+ * associated with an agency. All fields are optional, enabling partial updates
6499
+ * where only specified fields are modified.
6500
+ *
6501
+ * Updatable Fields:
6502
+ * - Name fields (first name, middle name, last name)
6503
+ * - Email address (must remain unique within tenant)
6504
+ * - Phone number
6505
+ * - Mailing address components
6506
+ * - Role within the agency
6507
+ *
6508
+ * Validation Rules:
6509
+ * Proto validation (format checks):
6510
+ * - contact_id: Required, must be a valid UUID format
6511
+ * - contact: Required, contains the fields to update
6512
+ * - first_name: If provided, must be non-empty
6513
+ * - last_name: If provided, must be non-empty
6514
+ * - middle_name: If provided, must be non-empty
6515
+ * - email: If provided, must be a valid email format
6516
+ * - phone: If provided, must match E.164 pattern (e.g., +15551234567)
6517
+ * - role: If provided, must be non-empty
6518
+ * - address (if provided, uses address_line_1 and address_line_2):
6519
+ * - address_line_1: If provided, must be non-empty
6520
+ * - address_line_2: If provided, must be non-empty
6521
+ * - city: If provided, must be non-empty
6522
+ * - state: If provided, must be exactly 2 characters (state code)
6523
+ * - zip: If provided, must be 1-10 characters
6524
+ *
6525
+ * Business logic validation:
6526
+ * - contact_id: Contact must exist and belong to the authenticated tenant
6527
+ * - email: If provided, must be unique within the tenant (across both producers and contacts)
6528
+ *
6529
+ * Update Behavior:
6530
+ * - Only fields explicitly provided in the request are updated
6531
+ * - Omitted optional fields remain unchanged
6532
+ * - Empty strings are treated as clearing the field value
6533
+ * - Address updates are all-or-nothing (provide complete address or omit entirely)
6534
+ *
6535
+ * Returns:
6536
+ * Empty response on success. The contact is updated atomically.
6537
+ *
6538
+ * Common Error Codes:
6539
+ * - NOT_FOUND: Contact doesn't exist or doesn't belong to tenant
6540
+ * - ALREADY_EXISTS: Email is already in use by another producer or contact within the tenant
6541
+ * - INVALID_ARGUMENT: Validation failed for one or more fields
6542
+ *
6543
+ *
6544
+ * @generated from rpc producerflow.producer.v1.ProducerService.UpdateContact
6545
+ */
6546
+ updateContact: {
6547
+ methodKind: "unary";
6548
+ input: typeof UpdateContactRequestSchema;
6549
+ output: typeof UpdateContactResponseSchema;
6550
+ };
6295
6551
  /**
6296
6552
  * SetExternalID sets an external identifier for a producer, agency, contact,
6297
6553
  * or organization.
@@ -4,8 +4,8 @@
4
4
  /* eslint-disable */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Agency_PrincipalSchema = exports.Agency_EOInfoSchema = exports.Agency_BankAccount_AccountTypeSchema = exports.Agency_BankAccount_AccountType = exports.Agency_BankAccountSchema = exports.Agency_AddressSchema = exports.Agency_AgencyInfoSchema = exports.AgencySchema = exports.ListNewProducersResponseSchema = exports.ListNewProducersRequestSchema = exports.UpdateAgencyResponseSchema = exports.UpdateAgencyRequest_Agency_AddressSchema = exports.UpdateAgencyRequest_AgencySchema = exports.UpdateAgencyRequestSchema = exports.UpdateProducerResponseSchema = exports.UpdateProducerRequest_ProducerSchema = exports.UpdateProducerRequestSchema = exports.GetAgencyFilesResponseSchema = exports.GetAgencyFilesRequestSchema = exports.GetAgencyAndProducersResponseSchema = exports.GetAgencyAndProducersRequestSchema = exports.GetProducerResponseSchema = exports.GetProducerRequest_EmailLookupSchema = exports.GetProducerRequest_ProducerNPNLookupSchema = exports.GetProducerRequest_ProducerIDLookupSchema = exports.GetProducerRequestSchema = exports.NewAgencyResponseSchema = exports.NewAgencyRequest_Agency_PointOfContact_CommunicationRoleSchema = exports.NewAgencyRequest_Agency_PointOfContact_CommunicationRole = exports.NewAgencyRequest_Agency_PointOfContactSchema = exports.NewAgencyRequest_Agency_BusinessHours_BusinessHourSchema = exports.NewAgencyRequest_Agency_BusinessHoursSchema = exports.NewAgencyRequest_Agency_EOInfoSchema = exports.NewAgencyRequest_Agency_BankAccount_AccountTypeSchema = exports.NewAgencyRequest_Agency_BankAccount_AccountType = exports.NewAgencyRequest_Agency_BankAccountSchema = exports.NewAgencyRequest_Agency_PrincipalSchema = exports.NewAgencyRequest_AgencySchema = exports.NewAgencyRequestSchema = exports.CreateProducerOnboardingURLResponseSchema = exports.ProducerData_AddressSchema = exports.ProducerDataSchema = exports.CreateProducerOnboardingURLRequestSchema = exports.CreateAgencyOnboardingURLResponseSchema = exports.CreateAgencyOnboardingURLRequest_Agency_PrincipalSchema = exports.CreateAgencyOnboardingURLRequest_AgencySchema = exports.CreateAgencyOnboardingURLRequestSchema = exports.AddressSchema = exports.PaginationSchema = exports.file_producerflow_producer_v1_producer = void 0;
7
- exports.ResyncProducerRequestSchema = exports.ResyncAgencyResponseSchema = exports.ResyncAgencyRequestSchema = exports.LookupNPNByFEINResponseSchema = exports.LookupNPNByFEINRequestSchema = exports.ValidateAgencyNPNResponseSchema = exports.ValidateAgencyNPNRequestSchema = exports.ValidateProducerNPNResponseSchema = exports.ValidateProducerNPNRequestSchema = exports.SetExternalIDResponseSchema = exports.SetExternalIDRequestSchema = exports.ListAgencyContactsResponseSchema = exports.ListAgencyContactsRequestSchema = exports.ContactSchema = exports.NewContactsResponseSchema = exports.NewContactsRequestSchema = exports.NewContactResponseSchema = exports.NewContactRequestSchema = exports.NewContactSchema = exports.NewProducersResponseSchema = exports.NewProducersRequestSchema = exports.NewProducerResponseSchema = exports.NewProducerRequestSchema = exports.NewProducer_AddressSchema = exports.NewProducerSchema = exports.Producer_AddressSchema = exports.Producer_NIPR_AppointmentSchema = exports.Producer_NIPR_ProducerRegulatoryInfo_RegulatoryActionSchema = exports.Producer_NIPR_ProducerRegulatoryInfoSchema = exports.Producer_NIPR_BiographicSchema = exports.Producer_NIPR_License_LicenseStatusSchema = exports.Producer_NIPR_License_LicenseStatus = exports.Producer_NIPR_License_LineOfAuthoritySchema = exports.Producer_NIPR_LicenseSchema = exports.Producer_NIPRSchema = exports.Producer_AgencySchema = exports.ProducerSchema = exports.Agency_NIPR_AppointmentSchema = exports.Agency_NIPR_RegulatoryInfo_RegulatoryActionSchema = exports.Agency_NIPR_RegulatoryInfoSchema = exports.Agency_NIPR_License_LicenseStatusSchema = exports.Agency_NIPR_License_LicenseStatus = exports.Agency_NIPR_License_LineOfAuthoritySchema = exports.Agency_NIPR_LicenseSchema = exports.Agency_NIPR_AddressSchema = exports.Agency_NIPR_BiographicSchema = exports.Agency_NIPRSchema = exports.Agency_BusinessHours_BusinessHourSchema = exports.Agency_BusinessHoursSchema = exports.Agency_IvansAccountSchema = void 0;
8
- exports.ProducerService = exports.NIPRSyncStateSchema = exports.NIPRSyncState = exports.AgencyTypeSchema = exports.AgencyType = exports.EntityTypeSchema = exports.EntityType = exports.UnassignProducerFromLocationsResponseSchema = exports.UnassignProducerFromLocationsRequestSchema = exports.AssignProducerToLocationsResponseSchema = exports.AssignProducerToLocationsRequestSchema = exports.UpdateAgencyLocationResponseSchema = exports.UpdateAgencyLocationRequestSchema = exports.ListAgencyLocationsResponseSchema = exports.ListAgencyLocationsRequestSchema = exports.RemoveAgencyLocationsResponseSchema = exports.RemoveAgencyLocationsRequestSchema = exports.AddAgencyLocationsResponseSchema = exports.LocationInputSchema = exports.AddAgencyLocationsRequestSchema = exports.LocationSchema = exports.CreateProducerUploadURLResponseSchema = exports.CreateProducerUploadURLRequestSchema = exports.CreateOrganizationResponseSchema = exports.CreateOrganizationRequestSchema = exports.GetOrganizationResponseSchema = exports.GetOrganizationRequestSchema = exports.ListOrganizationsResponseSchema = exports.OrganizationSchema = exports.ListOrganizationsRequestSchema = exports.ListAgenciesResponseSchema = exports.ListAgenciesRequestSchema = exports.AgencySummarySchema = exports.StopSyncAgencyWithNIPRResponseSchema = exports.StopSyncAgencyWithNIPRRequestSchema = exports.StopSyncProducerWithNIPRResponseSchema = exports.StopSyncProducerWithNIPRRequestSchema = exports.SyncAgencyWithNIPRResponseSchema = exports.SyncAgencyWithNIPRRequestSchema = exports.SyncProducerWithNIPRResponseSchema = exports.SyncProducerWithNIPRRequestSchema = exports.ResyncProducerResponseSchema = void 0;
7
+ exports.LookupNPNByFEINResponseSchema = exports.LookupNPNByFEINRequestSchema = exports.ValidateAgencyNPNResponseSchema = exports.ValidateAgencyNPNRequestSchema = exports.ValidateProducerNPNResponseSchema = exports.ValidateProducerNPNRequestSchema = exports.SetExternalIDResponseSchema = exports.SetExternalIDRequestSchema = exports.UpdateContactResponseSchema = exports.UpdateContactRequest_ContactSchema = exports.UpdateContactRequestSchema = exports.ListAgencyContactsResponseSchema = exports.ListAgencyContactsRequestSchema = exports.ContactSchema = exports.NewContactsResponseSchema = exports.NewContactsRequestSchema = exports.NewContactResponseSchema = exports.NewContactRequestSchema = exports.NewContactSchema = exports.NewProducersResponseSchema = exports.NewProducersRequestSchema = exports.NewProducerResponseSchema = exports.NewProducerRequestSchema = exports.NewProducer_AddressSchema = exports.NewProducerSchema = exports.Producer_AddressSchema = exports.Producer_NIPR_AppointmentSchema = exports.Producer_NIPR_ProducerRegulatoryInfo_RegulatoryActionSchema = exports.Producer_NIPR_ProducerRegulatoryInfoSchema = exports.Producer_NIPR_BiographicSchema = exports.Producer_NIPR_License_LicenseStatusSchema = exports.Producer_NIPR_License_LicenseStatus = exports.Producer_NIPR_License_LineOfAuthoritySchema = exports.Producer_NIPR_LicenseSchema = exports.Producer_NIPRSchema = exports.Producer_AgencySchema = exports.ProducerSchema = exports.Agency_NIPR_AppointmentSchema = exports.Agency_NIPR_RegulatoryInfo_RegulatoryActionSchema = exports.Agency_NIPR_RegulatoryInfoSchema = exports.Agency_NIPR_License_LicenseStatusSchema = exports.Agency_NIPR_License_LicenseStatus = exports.Agency_NIPR_License_LineOfAuthoritySchema = exports.Agency_NIPR_LicenseSchema = exports.Agency_NIPR_AddressSchema = exports.Agency_NIPR_BiographicSchema = exports.Agency_NIPRSchema = exports.Agency_BusinessHours_BusinessHourSchema = exports.Agency_BusinessHoursSchema = exports.Agency_IvansAccountSchema = void 0;
8
+ exports.ProducerService = exports.NIPRSyncStateSchema = exports.NIPRSyncState = exports.AgencyTypeSchema = exports.AgencyType = exports.EntityTypeSchema = exports.EntityType = exports.ContactRoleSchema = exports.ContactRole = exports.UnassignProducerFromLocationsResponseSchema = exports.UnassignProducerFromLocationsRequestSchema = exports.AssignProducerToLocationsResponseSchema = exports.AssignProducerToLocationsRequestSchema = exports.UpdateAgencyLocationResponseSchema = exports.UpdateAgencyLocationRequestSchema = exports.ListAgencyLocationsResponseSchema = exports.ListAgencyLocationsRequestSchema = exports.RemoveAgencyLocationsResponseSchema = exports.RemoveAgencyLocationsRequestSchema = exports.AddAgencyLocationsResponseSchema = exports.LocationInputSchema = exports.AddAgencyLocationsRequestSchema = exports.LocationSchema = exports.CreateProducerUploadURLResponseSchema = exports.CreateProducerUploadURLRequestSchema = exports.CreateOrganizationResponseSchema = exports.CreateOrganizationRequestSchema = exports.GetOrganizationResponseSchema = exports.GetOrganizationRequestSchema = exports.ListOrganizationsResponseSchema = exports.OrganizationSchema = exports.ListOrganizationsRequestSchema = exports.ListAgenciesResponseSchema = exports.ListAgenciesRequestSchema = exports.AgencySummarySchema = exports.StopSyncAgencyWithNIPRResponseSchema = exports.StopSyncAgencyWithNIPRRequestSchema = exports.StopSyncProducerWithNIPRResponseSchema = exports.StopSyncProducerWithNIPRRequestSchema = exports.SyncAgencyWithNIPRResponseSchema = exports.SyncAgencyWithNIPRRequestSchema = exports.SyncProducerWithNIPRResponseSchema = exports.SyncProducerWithNIPRRequestSchema = exports.ResyncProducerResponseSchema = exports.ResyncProducerRequestSchema = exports.ResyncAgencyResponseSchema = exports.ResyncAgencyRequestSchema = void 0;
9
9
  const codegenv2_1 = require("@bufbuild/protobuf/codegenv2");
10
10
  const validate_pb_1 = require("../../../buf/validate/validate_pb");
11
11
  const wkt_1 = require("@bufbuild/protobuf/wkt");
@@ -14,7 +14,7 @@ const timeofday_pb_1 = require("../../../google/type/timeofday_pb");
14
14
  /**
15
15
  * Describes the file producerflow/producer/v1/producer.proto.
16
16
  */
17
- exports.file_producerflow_producer_v1_producer = (0, codegenv2_1.fileDesc)("Cidwcm9kdWNlcmZsb3cvcHJvZHVjZXIvdjEvcHJvZHVjZXIucHJvdG8SGHByb2R1Y2VyZmxvdy5wcm9kdWNlci52MSI9CgpQYWdpbmF0aW9uEhsKCXBhZ2Vfc2l6ZRgBIAEoBUIIukgFGgMYyAESEgoKcGFnZV90b2tlbhgCIAEoCSLGAQoHQWRkcmVzcxISCgZzdHJlZXQYASABKAlCAhgBEhYKDmFkZHJlc3NfbGluZV8xGAcgASgJEhUKBGNpdHkYAiABKAlCB7pIBHICEAESFwoFc3RhdGUYAyABKAlCCLpIBXIDmAECEhYKA3ppcBgEIAEoCUIJukgGcgQQARgKEg4KBmNvdW50eRgFIAEoCRIkCg5hZGRyZXNzX2xpbmVfMhgGIAEoCUIHukgEcgIQAUgAiAEBQhEKD19hZGRyZXNzX2xpbmVfMiLfBgogQ3JlYXRlQWdlbmN5T25ib2FyZGluZ1VSTFJlcXVlc3QSUQoGYWdlbmN5GAEgASgLMkEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkNyZWF0ZUFnZW5jeU9uYm9hcmRpbmdVUkxSZXF1ZXN0LkFnZW5jeRrnBQoGQWdlbmN5EgwKBG5hbWUYASABKAkSRwoLZW50aXR5X3R5cGUYAiABKA4yJC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuRW50aXR5VHlwZUIMukgJggEGGAEYAhgDEhgKEHRlbmFudF9hZ2VuY3lfaWQYAyABKAkSHAoUZG9jdXNpZ25fdGVtcGxhdGVfaWQYBCABKAkSDAoEZmVpbhgFIAEoCRINCgVlbWFpbBgGIAEoCRINCgVwaG9uZRgHIAEoCRILCgNmYXgYCCABKAkSDwoHd2Vic2l0ZRgJIAEoCRILCgNucG4YCiABKAkSOgoPbWFpbGluZ19hZGRyZXNzGAsgASgLMiEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFkZHJlc3MSOwoQcGh5c2ljYWxfYWRkcmVzcxgMIAEoCzIhLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZGRyZXNzEjwKEWludm9pY2luZ19hZGRyZXNzGA0gASgLMiEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFkZHJlc3MSFwoPb3JnYW5pemF0aW9uX2lkGA8gASgJEl4KCXByaW5jaXBhbBgOIAEoCzJLLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5DcmVhdGVBZ2VuY3lPbmJvYXJkaW5nVVJMUmVxdWVzdC5BZ2VuY3kuUHJpbmNpcGFsGsYBCglQcmluY2lwYWwSHgoJdGVuYW50X2lkGAEgASgJQgu6SAjYAQJyAxj/ARISCgpmaXJzdF9uYW1lGAIgASgJEhEKCWxhc3RfbmFtZRgDIAEoCRITCgttaWRkbGVfbmFtZRgEIAEoCRINCgVlbWFpbBgFIAEoCRINCgVwaG9uZRgGIAEoCRILCgNucG4YByABKAkSMgoHYWRkcmVzcxgIIAEoCzIhLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZGRyZXNzIjAKIUNyZWF0ZUFnZW5jeU9uYm9hcmRpbmdVUkxSZXNwb25zZRILCgN1cmwYASABKAkidgoiQ3JlYXRlUHJvZHVjZXJPbmJvYXJkaW5nVVJMUmVxdWVzdBIRCglhZ2VuY3lfaWQYASABKAkSPQoNcHJvZHVjZXJfZGF0YRgCIAEoCzImLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlckRhdGEi3AMKDFByb2R1Y2VyRGF0YRIbCgNucG4YASABKAlCCbpIBnIEEAEYCkgAiAEBEhcKCmZpcnN0X25hbWUYAiABKAlIAYgBARIWCglsYXN0X25hbWUYAyABKAlIAogBARIYCgttaWRkbGVfbmFtZRgEIAEoCUgDiAEBEhIKBWVtYWlsGAUgASgJSASIAQESEgoFcGhvbmUYBiABKAlIBYgBARJHCg9tYWlsaW5nX2FkZHJlc3MYByABKAsyLi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUHJvZHVjZXJEYXRhLkFkZHJlc3MaqQEKB0FkZHJlc3MSEgoGc3RyZWV0GAEgASgJQgIYARIMCgRjaXR5GAIgASgJEg0KBXN0YXRlGAMgASgJEgsKA3ppcBgEIAEoCRIPCgdjb3VudHJ5GAUgASgJEiQKDmFkZHJlc3NfbGluZV8yGAYgASgJQge6SARyAhABSACIAQESFgoOYWRkcmVzc19saW5lXzEYByABKAlCEQoPX2FkZHJlc3NfbGluZV8yQgYKBF9ucG5CDQoLX2ZpcnN0X25hbWVCDAoKX2xhc3RfbmFtZUIOCgxfbWlkZGxlX25hbWVCCAoGX2VtYWlsQggKBl9waG9uZSI9CiNDcmVhdGVQcm9kdWNlck9uYm9hcmRpbmdVUkxSZXNwb25zZRIWCg5vbmJvYXJkaW5nX3VybBgBIAEoCSLAGgoQTmV3QWdlbmN5UmVxdWVzdBJJCgZhZ2VuY3kYASABKAsyMS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3QWdlbmN5UmVxdWVzdC5BZ2VuY3lCBrpIA8gBARIbCg5zeW5jX3dpdGhfbmlwchgDIAEoCEgAiAEBGrAZCgZBZ2VuY3kSFQoEbmFtZRgBIAEoCUIHukgEcgIQARIWCgVlbWFpbBgCIAEoCUIHukgEcgJgARILCgNucG4YAyABKAkSKwoFcGhvbmUYBSABKAlCHLpIGdgBAnIUMhJeXCs/WzEtOV1cZHsxLDE0fSQSDwoHd2Vic2l0ZRgGIAEoCRJWCglwcmluY2lwYWwYByABKAsyOy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3QWdlbmN5UmVxdWVzdC5BZ2VuY3kuUHJpbmNpcGFsQga6SAPIAQESUwoMYmFua19hY2NvdW50GAkgASgLMj0ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0FnZW5jeVJlcXVlc3QuQWdlbmN5LkJhbmtBY2NvdW50EkkKB2VvX2luZm8YCiABKAsyOC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3QWdlbmN5UmVxdWVzdC5BZ2VuY3kuRU9JbmZvElcKDmJ1c2luZXNzX2hvdXJzGAsgASgLMj8ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0FnZW5jeVJlcXVlc3QuQWdlbmN5LkJ1c2luZXNzSG91cnMSOAoJcHJvZHVjZXJzGAwgAygLMiUucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld1Byb2R1Y2VyElsKEXBvaW50c19vZl9jb250YWN0GA0gAygLMkAucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0FnZW5jeVJlcXVlc3QuQWdlbmN5LlBvaW50T2ZDb250YWN0Ei8KFHJvb3Rfb3JnYW5pemF0aW9uX2lkGA4gASgJQgy6SAnYAQJyBBABGCRIAIgBARJFCgtlbnRpdHlfdHlwZRgPIAEoDjIkLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5FbnRpdHlUeXBlQgq6SAeCAQQYARgCEh4KBGZlaW4YECABKAlCC7pICNgBAnIDmAEJSAGIAQESOgoPbWFpbGluZ19hZGRyZXNzGAggASgLMiEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFkZHJlc3MSOwoQcGh5c2ljYWxfYWRkcmVzcxgRIAEoCzIhLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZGRyZXNzEjwKEWludm9pY2luZ19hZGRyZXNzGBIgASgLMiEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFkZHJlc3MSGAoQdGVuYW50X2FnZW5jeV9pZBgTIAEoCRJECglsb2NhdGlvbnMYFCADKAsyJy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTG9jYXRpb25JbnB1dEIIukgFkgECEGQSZAoSbWV0YWRhdGFfcXVlc3Rpb25zGBUgAygLMkgucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0FnZW5jeVJlcXVlc3QuQWdlbmN5Lk1ldGFkYXRhUXVlc3Rpb25zRW50cnkSdQobdGVuYW50X2FkZGl0aW9uYWxfcXVlc3Rpb25zGBYgAygLMlAucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0FnZW5jeVJlcXVlc3QuQWdlbmN5LlRlbmFudEFkZGl0aW9uYWxRdWVzdGlvbnNFbnRyeRqFBAoJUHJpbmNpcGFsEhsKCmZpcnN0X25hbWUYASABKAlCB7pIBHICEAESGgoJbGFzdF9uYW1lGAIgASgJQge6SARyAhABEhMKC21pZGRsZV9uYW1lGA0gASgJEhYKBWVtYWlsGAMgASgJQge6SARyAmABEisKBXBob25lGAQgASgJQhy6SBnYAQJyFDISXlwrP1sxLTldXGR7MSwxNH0kEhYKA25wbhgFIAEoCUIJukgGcgQQARgKEh4KCXRlbmFudF9pZBgGIAEoCUILukgI2AECcgMY/wESGwoOc3luY193aXRoX25pcHIYByABKAhIAIgBARJ/Cht0ZW5hbnRfYWRkaXRpb25hbF9xdWVzdGlvbnMYCCADKAsyWi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3QWdlbmN5UmVxdWVzdC5BZ2VuY3kuUHJpbmNpcGFsLlRlbmFudEFkZGl0aW9uYWxRdWVzdGlvbnNFbnRyeRI6Cg9tYWlsaW5nX2FkZHJlc3MYCSABKAsyIS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWRkcmVzcxpACh5UZW5hbnRBZGRpdGlvbmFsUXVlc3Rpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIRCg9fc3luY193aXRoX25pcHIawwIKC0JhbmtBY2NvdW50EiEKDmFjY291bnRfbnVtYmVyGAEgASgJQgm6SAZyBBAIGBESIAoOcm91dGluZ19udW1iZXIYAiABKAlCCLpIBXIDmAEJEmcKDGFjY291bnRfdHlwZRgDIAEoDjJJLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdBZ2VuY3lSZXF1ZXN0LkFnZW5jeS5CYW5rQWNjb3VudC5BY2NvdW50VHlwZUIGukgDyAEBEiQKE2FjY291bnRfaG9sZGVyX25hbWUYBCABKAlCB7pIBHICEAEiYAoLQWNjb3VudFR5cGUSHAoYQUNDT1VOVF9UWVBFX1VOU1BFQ0lGSUVEEAASGQoVQUNDT1VOVF9UWVBFX0NIRUNLSU5HEAESGAoUQUNDT1VOVF9UWVBFX1NBVklOR1MQAhrgAQoGRU9JbmZvEhgKB2NhcnJpZXIYASABKAlCB7pIBHICEAESPQoPZXhwaXJhdGlvbl9kYXRlGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIIukgFsgECQAESIAoPY292ZXJhZ2VfYW1vdW50GAMgASgJQge6SARyAhABEjoKDmVmZmVjdGl2ZV9kYXRlGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIGukgDyAEBEh8KDnBlcl9vY2N1cnJlbmNlGAUgASgJQge6SARyAhABGs8CCg1CdXNpbmVzc0hvdXJzEhkKCHRpbWV6b25lGAEgASgJQge6SARyAhABEmwKDmJ1c2luZXNzX2hvdXJzGAIgAygLMkwucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0FnZW5jeVJlcXVlc3QuQWdlbmN5LkJ1c2luZXNzSG91cnMuQnVzaW5lc3NIb3VyQga6SAPIAQEatAEKDEJ1c2luZXNzSG91chI4Cgl3ZWVrX2RheXMYASADKA4yFi5nb29nbGUudHlwZS5EYXlPZldlZWtCDbpICsgBAZIBBAgBEAcSNAoMb3BlbmluZ190aW1lGAIgASgLMhYuZ29vZ2xlLnR5cGUuVGltZU9mRGF5Qga6SAPIAQESNAoMY2xvc2luZ190aW1lGAMgASgLMhYuZ29vZ2xlLnR5cGUuVGltZU9mRGF5Qga6SAPIAQEalgMKDlBvaW50T2ZDb250YWN0EhYKBWVtYWlsGAEgASgJQge6SARyAmABEmgKBHJvbGUYAiABKA4yUi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3QWdlbmN5UmVxdWVzdC5BZ2VuY3kuUG9pbnRPZkNvbnRhY3QuQ29tbXVuaWNhdGlvblJvbGVCBrpIA8gBASKBAgoRQ29tbXVuaWNhdGlvblJvbGUSIgoeQ09NTVVOSUNBVElPTl9ST0xFX1VOU1BFQ0lGSUVEEAASIQodQ09NTVVOSUNBVElPTl9ST0xFX0FDQ09VTlRJTkcQARIgChxDT01NVU5JQ0FUSU9OX1JPTEVfTElDRU5TSU5HEAISIAocQ09NTVVOSUNBVElPTl9ST0xFX1JFUE9SVElORxADEhwKGENPTU1VTklDQVRJT05fUk9MRV9TQUxFUxAEEicKI0NPTU1VTklDQVRJT05fUk9MRV9DVVNUT01FUl9TRVJWSUNFEAUSGgoWQ09NTVVOSUNBVElPTl9ST0xFX0FMTBAGGjgKFk1ldGFkYXRhUXVlc3Rpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARpACh5UZW5hbnRBZGRpdGlvbmFsUXVlc3Rpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIXChVfcm9vdF9vcmdhbml6YXRpb25faWRCBwoFX2ZlaW5CEQoPX3N5bmNfd2l0aF9uaXByImgKEU5ld0FnZW5jeVJlc3BvbnNlEhEKCWFnZW5jeV9pZBgBIAEoCRIUCgxwcm9kdWNlcl9pZHMYAiADKAkSFAoMcHJpbmNpcGFsX2lkGAMgASgJEhQKDGxvY2F0aW9uX2lkcxgEIAMoCSK/AwoSR2V0UHJvZHVjZXJSZXF1ZXN0ElsKEnByb2R1Y2VyX2lkX2xvb2t1cBgBIAEoCzI9LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5HZXRQcm9kdWNlclJlcXVlc3QuUHJvZHVjZXJJRExvb2t1cEgAElQKCm5wbl9sb29rdXAYAiABKAsyPi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuR2V0UHJvZHVjZXJSZXF1ZXN0LlByb2R1Y2VyTlBOTG9va3VwSAASUAoMZW1haWxfbG9va3VwGAMgASgLMjgucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkdldFByb2R1Y2VyUmVxdWVzdC5FbWFpbExvb2t1cEgAGjEKEFByb2R1Y2VySURMb29rdXASHQoLcHJvZHVjZXJfaWQYASABKAlCCLpIBXIDsAEBGjIKEVByb2R1Y2VyTlBOTG9va3VwEh0KDHByb2R1Y2VyX25wbhgBIAEoCUIHukgEcgIQARolCgtFbWFpbExvb2t1cBIWCgVlbWFpbBgBIAEoCUIHukgEcgJgAUIWCg1sb29rdXBfbWV0aG9kEgW6SAIIASJLChNHZXRQcm9kdWNlclJlc3BvbnNlEjQKCHByb2R1Y2VyGAEgASgLMiIucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlByb2R1Y2VyIjsKHEdldEFnZW5jeUFuZFByb2R1Y2Vyc1JlcXVlc3QSGwoJYWdlbmN5X2lkGAEgASgJQgi6SAVyA7ABASKIAQodR2V0QWdlbmN5QW5kUHJvZHVjZXJzUmVzcG9uc2USMAoGYWdlbmN5GAEgASgLMiAucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeRI1Cglwcm9kdWNlcnMYAiADKAsyIi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUHJvZHVjZXIiNAoVR2V0QWdlbmN5RmlsZXNSZXF1ZXN0EhsKCWFnZW5jeV9pZBgBIAEoCUIIukgFcgOwAQEilAEKFkdldEFnZW5jeUZpbGVzUmVzcG9uc2USEgoKZW9fZG9jX3VybBgBIAEoCRIcChR2b2lkZWRfY2hlY2tfZG9jX3VybBgCIAEoCRISCgp3OV9kb2NfdXJsGAMgASgJEhcKD2xpY2Vuc2VfZG9jX3VybBgEIAEoCRIbChNicm9rZXJfYm9uZF9kb2NfdXJsGAUgASgJIt8GChVVcGRhdGVQcm9kdWNlclJlcXVlc3QSHQoLcHJvZHVjZXJfaWQYASABKAlCCLpIBXIDsAEBElIKCHByb2R1Y2VyGAIgASgLMjgucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlVwZGF0ZVByb2R1Y2VyUmVxdWVzdC5Qcm9kdWNlckIGukgDyAEBGtIFCghQcm9kdWNlchIgCgpmaXJzdF9uYW1lGAEgASgJQge6SARyAhABSACIAQESHwoJbGFzdF9uYW1lGAIgASgJQge6SARyAhABSAGIAQESIQoLbWlkZGxlX25hbWUYCiABKAlCB7pIBHICEAFIAogBARIbCgVlbWFpbBgDIAEoCUIHukgEcgJgAUgDiAEBEhsKA25wbhgEIAEoCUIJGAG6SARyAhABSASIAQESLQoFcGhvbmUYBSABKAlCGbpIFnIUMhJeXCs/WzEtOV1cZHsxLDE0fSRIBYgBARIeCgZzdHJlZXQYBiABKAlCCRgBukgEcgIQAUgGiAEBEiQKDmFkZHJlc3NfbGluZV8xGA4gASgJQge6SARyAhABSAeIAQESJAoOYWRkcmVzc19saW5lXzIYDSABKAlCB7pIBHICEAFICIgBARIaCgRjaXR5GAcgASgJQge6SARyAhABSAmIAQESGwoFc3RhdGUYCCABKAlCB7pIBHICGAJICogBARIZCgN6aXAYCSABKAlCB7pIBHICEAVIC4gBARJpChFleHRlcm5hbF9tZXRhZGF0YRgLIAMoCzJOLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5VcGRhdGVQcm9kdWNlclJlcXVlc3QuUHJvZHVjZXIuRXh0ZXJuYWxNZXRhZGF0YUVudHJ5GjcKFUV4dGVybmFsTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQg0KC19maXJzdF9uYW1lQgwKCl9sYXN0X25hbWVCDgoMX21pZGRsZV9uYW1lQggKBl9lbWFpbEIGCgRfbnBuQggKBl9waG9uZUIJCgdfc3RyZWV0QhEKD19hZGRyZXNzX2xpbmVfMUIRCg9fYWRkcmVzc19saW5lXzJCBwoFX2NpdHlCCAoGX3N0YXRlQgYKBF96aXAiGAoWVXBkYXRlUHJvZHVjZXJSZXNwb25zZSLkBwoTVXBkYXRlQWdlbmN5UmVxdWVzdBIbCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBEkwKBmFnZW5jeRgCIAEoCzI0LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5VcGRhdGVBZ2VuY3lSZXF1ZXN0LkFnZW5jeUIGukgDyAEBGuEGCgZBZ2VuY3kSGwoFZW1haWwYASABKAlCB7pIBHICYAFIAIgBARItCgVwaG9uZRgCIAEoCUIZukgWchQyEl5cKz9bMS05XVxkezEsMTR9JEgBiAEBEi4KA2ZheBgDIAEoCUIcukgZ2AECchQyEl5cKz9bMS05XVxkezEsMTR9JEgCiAEBEiEKB3dlYnNpdGUYBCABKAlCC7pICNgBAnIDiAEBSAOIAQESOAoWcmVxdWVzdGVkX2FwcG9pbnRtZW50cxgFIAMoCUIYukgVkgESGAEiDnIMMgpeW0EtWl17Mn0kEh8KBW5vdGVzGAYgASgJQgu6SAjYAQJyAxj0A0gEiAEBElsKEHBoeXNpY2FsX2FkZHJlc3MYByABKAsyPC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuVXBkYXRlQWdlbmN5UmVxdWVzdC5BZ2VuY3kuQWRkcmVzc0gFiAEBEmUKEWV4dGVybmFsX21ldGFkYXRhGAggAygLMkoucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlVwZGF0ZUFnZW5jeVJlcXVlc3QuQWdlbmN5LkV4dGVybmFsTWV0YWRhdGFFbnRyeRqYAgoHQWRkcmVzcxIeCgZzdHJlZXQYASABKAlCCRgBukgEcgIQAUgAiAEBEhoKBGNpdHkYAiABKAlCB7pIBHICEAFIAYgBARIcCgVzdGF0ZRgDIAEoCUIIukgFcgOYAQJIAogBARIbCgN6aXAYBCABKAlCCbpIBnIEEAEYCkgDiAEBEiQKDmFkZHJlc3NfbGluZV8yGAUgASgJQge6SARyAhABSASIAQESJAoOYWRkcmVzc19saW5lXzEYBiABKAlCB7pIBHICEAFIBYgBAUIJCgdfc3RyZWV0QgcKBV9jaXR5QggKBl9zdGF0ZUIGCgRfemlwQhEKD19hZGRyZXNzX2xpbmVfMkIRCg9fYWRkcmVzc19saW5lXzEaNwoVRXh0ZXJuYWxNZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCCAoGX2VtYWlsQggKBl9waG9uZUIGCgRfZmF4QgoKCF93ZWJzaXRlQggKBl9ub3Rlc0ITChFfcGh5c2ljYWxfYWRkcmVzcyIWChRVcGRhdGVBZ2VuY3lSZXNwb25zZSJJChdMaXN0TmV3UHJvZHVjZXJzUmVxdWVzdBIgCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBSACIAQFCDAoKX2FnZW5jeV9pZCJVChhMaXN0TmV3UHJvZHVjZXJzUmVzcG9uc2USOQoNbmV3X3Byb2R1Y2VycxgBIAMoCzIiLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlciLTJgoGQWdlbmN5EhEKCWFnZW5jeV9pZBgBIAEoCRJACgthZ2VuY3lfaW5mbxgCIAEoCzIrLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuQWdlbmN5SW5mbxJCChBwaHlzaWNhbF9hZGRyZXNzGAMgASgLMigucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeS5BZGRyZXNzEkEKD21haWxpbmdfYWRkcmVzcxgEIAEoCzIoLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuQWRkcmVzcxJDChFpbnZvaWNpbmdfYWRkcmVzcxgKIAEoCzIoLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuQWRkcmVzcxJCCgxiYW5rX2FjY291bnQYBSABKAsyLC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5LkJhbmtBY2NvdW50EjgKB2VvX2luZm8YBiABKAsyJy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5LkVPSW5mbxI9CglwcmluY2lwYWwYByABKAsyKi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5LlByaW5jaXBhbBJECg1pdmFuc19hY2NvdW50GAggASgLMi0ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeS5JdmFuc0FjY291bnQSHgoWcmVxdWVzdGVkX2FwcG9pbnRtZW50cxgJIAMoCRJGCg5idXNpbmVzc19ob3VycxgLIAEoCzIuLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuQnVzaW5lc3NIb3VycxIzCgRuaXByGAwgASgLMiUucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeS5OSVBSEjUKCWxvY2F0aW9ucxgNIAMoCzIiLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Mb2NhdGlvbhq5BQoKQWdlbmN5SW5mbxIVCg1vbmJvYXJkaW5nX2lkGAEgASgJEhwKFHJvb3Rfb3JnYW5pemF0aW9uX2lkGAIgASgJEhMKC2FnZW5jeV9uYW1lGAMgASgJEhMKC2FnZW5jeV9mZWluGAQgASgJEg0KBWVtYWlsGAUgASgJEg0KBXBob25lGAYgASgJEgsKA2ZheBgHIAEoCRIPCgd3ZWJzaXRlGAggASgJEgsKA25wbhgJIAEoCRIfChdwZGJfYWxlcnRzX3N5bmNfZW5hYmxlZBgKIAEoCBJeChJtZXRhZGF0YV9xdWVzdGlvbnMYCyADKAsyQi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5LkFnZW5jeUluZm8uTWV0YWRhdGFRdWVzdGlvbnNFbnRyeRJcChFleHRlcm5hbF9tZXRhZGF0YRgMIAMoCzJBLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuQWdlbmN5SW5mby5FeHRlcm5hbE1ldGFkYXRhRW50cnkSbwobdGVuYW50X2FkZGl0aW9uYWxfcXVlc3Rpb25zGA0gAygLMkoucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeS5BZ2VuY3lJbmZvLlRlbmFudEFkZGl0aW9uYWxRdWVzdGlvbnNFbnRyeRo4ChZNZXRhZGF0YVF1ZXN0aW9uc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaNwoVRXh0ZXJuYWxNZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaQAoeVGVuYW50QWRkaXRpb25hbFF1ZXN0aW9uc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEajwEKB0FkZHJlc3MSEgoGc3RyZWV0GAEgASgJQgIYARIMCgRjaXR5GAIgASgJEg0KBXN0YXRlGAMgASgJEgsKA3ppcBgEIAEoCRIWCg5hZGRyZXNzX2xpbmVfMRgFIAEoCRIbCg5hZGRyZXNzX2xpbmVfMhgGIAEoCUgAiAEBQhEKD19hZGRyZXNzX2xpbmVfMhqMAgoLQmFua0FjY291bnQSFgoOYWNjb3VudF9udW1iZXIYASABKAkSFgoOcm91dGluZ19udW1iZXIYAiABKAkSTgoMYWNjb3VudF90eXBlGAMgASgOMjgucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeS5CYW5rQWNjb3VudC5BY2NvdW50VHlwZRIbChNhY2NvdW50X2hvbGRlcl9uYW1lGAQgASgJImAKC0FjY291bnRUeXBlEhwKGEFDQ09VTlRfVFlQRV9VTlNQRUNJRklFRBAAEhkKFUFDQ09VTlRfVFlQRV9DSEVDS0lORxABEhgKFEFDQ09VTlRfVFlQRV9TQVZJTkdTEAIaswEKBkVPSW5mbxIPCgdjYXJyaWVyGAEgASgJEjMKD2V4cGlyYXRpb25fZGF0ZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoPY292ZXJhZ2VfYW1vdW50GAMgASgJEhYKDnBlcl9vY2N1cnJlbmNlGAQgASgJEjIKDmVmZmVjdGl2ZV9kYXRlGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBq5AQoJUHJpbmNpcGFsEgoKAmlkGAEgASgJEhIKCmZpcnN0X25hbWUYAiABKAkSEQoJbGFzdF9uYW1lGAMgASgJEhMKC21pZGRsZV9uYW1lGAkgASgJEg0KBWVtYWlsGAQgASgJEgsKA25wbhgFIAEoCRINCgVwaG9uZRgGIAEoCRI5CgdhZGRyZXNzGAggASgLMigucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeS5BZGRyZXNzGmkKDEl2YW5zQWNjb3VudBIWCg5hY2NvdW50X251bWJlchgBIAEoCRIUCgxhbXNfc29mdHdhcmUYAiABKAkSEwoLYW1zX3ZlcnNpb24YAyABKAkSFgoObWFpbGJveF9udW1iZXIYBCABKAkajgIKDUJ1c2luZXNzSG91cnMSEAoIdGltZXpvbmUYASABKAkSUwoOYnVzaW5lc3NfaG91cnMYAiADKAsyOy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5LkJ1c2luZXNzSG91cnMuQnVzaW5lc3NIb3VyGpUBCgxCdXNpbmVzc0hvdXISKQoJd2Vla19kYXlzGAEgAygOMhYuZ29vZ2xlLnR5cGUuRGF5T2ZXZWVrEiwKDG9wZW5pbmdfdGltZRgCIAEoCzIWLmdvb2dsZS50eXBlLlRpbWVPZkRheRIsCgxjbG9zaW5nX3RpbWUYAyABKAsyFi5nb29nbGUudHlwZS5UaW1lT2ZEYXkahRIKBE5JUFISRAoKYmlvZ3JhcGhpYxgBIAEoCzIwLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuTklQUi5CaW9ncmFwaGljEkAKCWFkZHJlc3NlcxgCIAMoCzItLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuTklQUi5BZGRyZXNzEj8KCGxpY2Vuc2VzGAMgAygLMi0ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeS5OSVBSLkxpY2Vuc2USTQoPcmVndWxhdG9yeV9pbmZvGAQgASgLMjQucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeS5OSVBSLlJlZ3VsYXRvcnlJbmZvEkcKDGFwcG9pbnRtZW50cxgFIAMoCzIxLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuTklQUi5BcHBvaW50bWVudBqdAQoKQmlvZ3JhcGhpYxIUCgxjb21wYW55X25hbWUYASABKAkSDAoEZmVpbhgCIAEoCRILCgNucG4YAyABKAkSFgoOYnVzaW5lc3NfZW1haWwYBCABKAkSFgoOYnVzaW5lc3NfcGhvbmUYBSABKAkSLgoKdXBkYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAahAIKB0FkZHJlc3MSFAoMYWRkcmVzc190eXBlGAEgASgJEg0KBXN0YXRlGAIgASgJEhUKDWFkZHJlc3Nfc3RhdGUYAyABKAkSEgoGc3RyZWV0GAQgASgJQgIYARIQCgh6aXBfY29kZRgFIAEoCRIMCgRjaXR5GAYgASgJEg8KB2NvdW50cnkYByABKAkSMAoMZGF0ZV91cGRhdGVkGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIWCg5hZGRyZXNzX2xpbmVfMRgKIAEoCRrqBQoHTGljZW5zZRIWCg5saWNlbnNlX251bWJlchgBIAEoCRIVCg1saWNlbnNlX3N0YXRlGAIgASgJEhgKEHJlc2lkZW5jeV9zdGF0dXMYAyABKAkSDgoGYWN0aXZlGAQgASgIEksKBnN0YXR1cxgFIAEoDjI7LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuTklQUi5MaWNlbnNlLkxpY2Vuc2VTdGF0dXMSMwoPZXhwaXJhdGlvbl9kYXRlGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIVCg1saWNlbnNlX2NsYXNzGAcgASgJEhoKEmxpY2Vuc2VfY2xhc3NfY29kZRgIIAEoBRIuCgppc3N1ZV9kYXRlGAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgt1cGRhdGVfZGF0ZRgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASWQoSbGluZXNfb2ZfYXV0aG9yaXR5GAwgAygLMj0ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeS5OSVBSLkxpY2Vuc2UuTGluZU9mQXV0aG9yaXR5Gl4KD0xpbmVPZkF1dGhvcml0eRILCgNsb2EYASABKAkSDgoGYWN0aXZlGAIgASgIEi4KCmlzc3VlX2RhdGUYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIoQBCg1MaWNlbnNlU3RhdHVzEh4KGkxJQ0VOU0VfU1RBVFVTX1VOU1BFQ0lGSUVEEAASGgoWTElDRU5TRV9TVEFUVVNfRVhQSVJFRBABEhgKFExJQ0VOU0VfU1RBVFVTX1ZBTElEEAISHQoZTElDRU5TRV9TVEFUVVNfTk9UX0FDVElWRRADGsMDCg5SZWd1bGF0b3J5SW5mbxJhChJyZWd1bGF0b3J5X2FjdGlvbnMYASADKAsyRS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5Lk5JUFIuUmVndWxhdG9yeUluZm8uUmVndWxhdG9yeUFjdGlvbhrNAgoQUmVndWxhdG9yeUFjdGlvbhIRCglhY3Rpb25faWQYASABKAkSEgoKc3RhdGVfY29kZRgCIAEoCRIZChFyZWFzb25fZm9yX2FjdGlvbhgDIAEoCRITCgtkaXNwb3NpdGlvbhgEIAEoCRIyCg5kYXRlX29mX2FjdGlvbhgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMgoOZWZmZWN0aXZlX2RhdGUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmVudGVyX2RhdGUYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhAKCGZpbGVfcmVmGAggASgJEh8KF3BlbmFsdHlfZmluZV9mb3JmZWl0dXJlGAkgASgJEhcKD2xlbmd0aF9vZl9vcmRlchgKIAEoCRrBAgoLQXBwb2ludG1lbnQSEQoJYnJhbmNoX2lkGAEgASgJEhQKDGNvbXBhbnlfbmFtZRgCIAEoCRIMCgRmZWluGAMgASgJEg8KB2NvX2NvZGUYBCABKAkSGQoRbGluZV9vZl9hdXRob3JpdHkYBSABKAkSEAoIbG9hX2NvZGUYBiABKAkSDgoGc3RhdHVzGAcgASgJEhoKEnRlcm1pbmF0aW9uX3JlYXNvbhgIIAEoCRI2ChJzdGF0dXNfcmVhc29uX2RhdGUYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjwKGGFwcG9pbnRtZW50X3JlbmV3YWxfZGF0ZRgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGwoTYWdlbmN5X2FmZmlsaWF0aW9ucxgLIAEoCSKlGQoIUHJvZHVjZXISCgoCaWQYASABKAkSEgoKZmlyc3RfbmFtZRgPIAEoCRITCgttaWRkbGVfbmFtZRgQIAEoCRIRCglsYXN0X25hbWUYESABKAkSDQoFZW1haWwYAyABKAkSCwoDbnBuGAQgASgJEg0KBXBob25lGAUgASgJEh8KF3BkYl9hbGVydHNfc3luY19lbmFibGVkGA0gASgIEjkKBmFnZW5jeRgHIAEoCzIpLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlci5BZ2VuY3kSNQoEbmlwchgGIAEoCzInLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlci5OSVBSEhQKDGlzX3ByaW5jaXBhbBgMIAEoCBIeChZyZXF1ZXN0ZWRfYXBwb2ludG1lbnRzGA4gAygJEjsKB2FkZHJlc3MYEiABKAsyKi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUHJvZHVjZXIuQWRkcmVzcxI1Cglsb2NhdGlvbnMYEyADKAsyIi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTG9jYXRpb24SVQoSbWV0YWRhdGFfcXVlc3Rpb25zGCggAygLMjkucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlByb2R1Y2VyLk1ldGFkYXRhUXVlc3Rpb25zRW50cnkSUwoRZXh0ZXJuYWxfbWV0YWRhdGEYKSADKAsyOC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUHJvZHVjZXIuRXh0ZXJuYWxNZXRhZGF0YUVudHJ5EmYKG3RlbmFudF9hZGRpdGlvbmFsX3F1ZXN0aW9ucxgqIAMoCzJBLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlci5UZW5hbnRBZGRpdGlvbmFsUXVlc3Rpb25zRW50cnkaKQoGQWdlbmN5EhEKCWFnZW5jeV9pZBgBIAEoCRIMCgRuYW1lGAIgASgJGtkQCgROSVBSEkEKCGxpY2Vuc2VzGAYgAygLMi8ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlByb2R1Y2VyLk5JUFIuTGljZW5zZRJGCgpiaW9ncmFwaGljGAggASgLMjIucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlByb2R1Y2VyLk5JUFIuQmlvZ3JhcGhpYxJXCg9yZWd1bGF0b3J5X2luZm8YCSABKAsyPi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUHJvZHVjZXIuTklQUi5Qcm9kdWNlclJlZ3VsYXRvcnlJbmZvEkkKDGFwcG9pbnRtZW50cxgKIAMoCzIzLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlci5OSVBSLkFwcG9pbnRtZW50GtoECgdMaWNlbnNlEhYKDmxpY2Vuc2VfbnVtYmVyGAEgASgJEhUKDWxpY2Vuc2Vfc3RhdGUYAiABKAkSGAoQcmVzaWRlbmN5X3N0YXR1cxgDIAEoCRIOCgZhY3RpdmUYBCABKAgSTQoGc3RhdHVzGAUgASgOMj0ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlByb2R1Y2VyLk5JUFIuTGljZW5zZS5MaWNlbnNlU3RhdHVzEjMKD2V4cGlyYXRpb25fZGF0ZRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASWwoSbGluZXNfb2ZfYXV0aG9yaXR5GAggAygLMj8ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlByb2R1Y2VyLk5JUFIuTGljZW5zZS5MaW5lT2ZBdXRob3JpdHkaXgoPTGluZU9mQXV0aG9yaXR5EgsKA2xvYRgBIAEoCRIOCgZhY3RpdmUYAiABKAgSLgoKaXNzdWVfZGF0ZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAihAEKDUxpY2Vuc2VTdGF0dXMSHgoaTElDRU5TRV9TVEFUVVNfVU5TUEVDSUZJRUQQABIaChZMSUNFTlNFX1NUQVRVU19FWFBJUkVEEAESGAoUTElDRU5TRV9TVEFUVVNfVkFMSUQQAhIdChlMSUNFTlNFX1NUQVRVU19OT1RfQUNUSVZFEAMatwEKCkJpb2dyYXBoaWMSEQoJbGFzdF9uYW1lGAEgASgJEhIKCmZpcnN0X25hbWUYAiABKAkSEwoLbWlkZGxlX25hbWUYAyABKAkSMQoNZGF0ZV9vZl9iaXJ0aBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDAoEZmVpbhgHIAEoCRIUCgxjb21wYW55X25hbWUYCCABKAkSFgoOc3RhdGVfZG9taWNpbGUYCSABKAkaxgUKFlByb2R1Y2VyUmVndWxhdG9yeUluZm8SgQEKG3JlZ3VsYXRvcnlfYWN0aW9uc19ieV9zdGF0ZRgBIAMoCzJcLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlci5OSVBSLlByb2R1Y2VyUmVndWxhdG9yeUluZm8uUmVndWxhdG9yeUFjdGlvbnNCeVN0YXRlRW50cnkSJAocY2xlYXJhbmNlX2NlcnRpZmljYXRpb25faW5mbxgCIAEoCRIZChFuYXNkX2V4YW1fZGV0YWlscxgDIAEoCRrTAgoQUmVndWxhdG9yeUFjdGlvbhIRCglhY3Rpb25faWQYASABKAkSGAoQb3JpZ2luX29mX2FjdGlvbhgCIAEoCRIZChFyZWFzb25fZm9yX2FjdGlvbhgDIAEoCRITCgtkaXNwb3NpdGlvbhgEIAEoCRIyCg5kYXRlX29mX2FjdGlvbhgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMgoOZWZmZWN0aXZlX2RhdGUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmVudGVyX2RhdGUYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhAKCGZpbGVfcmVmGAggASgJEh8KF3BlbmFsdHlfZmluZV9mb3JmZWl0dXJlGAkgASgJEhcKD2xlbmd0aF9vZl9vcmRlchgKIAEoCRqQAQodUmVndWxhdG9yeUFjdGlvbnNCeVN0YXRlRW50cnkSCwoDa2V5GAEgASgJEl4KBXZhbHVlGAIgASgLMk8ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlByb2R1Y2VyLk5JUFIuUHJvZHVjZXJSZWd1bGF0b3J5SW5mby5SZWd1bGF0b3J5QWN0aW9uOgI4ARrBAgoLQXBwb2ludG1lbnQSEQoJYnJhbmNoX2lkGAEgASgJEhQKDGNvbXBhbnlfbmFtZRgCIAEoCRIMCgRmZWluGAMgASgJEg8KB2NvX2NvZGUYBCABKAkSGQoRbGluZV9vZl9hdXRob3JpdHkYBSABKAkSEAoIbG9hX2NvZGUYBiABKAkSDgoGc3RhdHVzGAcgASgJEhoKEnRlcm1pbmF0aW9uX3JlYXNvbhgIIAEoCRI2ChJzdGF0dXNfcmVhc29uX2RhdGUYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjwKGGFwcG9pbnRtZW50X3JlbmV3YWxfZGF0ZRgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGwoTYWdlbmN5X2FmZmlsaWF0aW9ucxgLIAEoCRqYAQoHQWRkcmVzcxISCgZzdHJlZXQYASABKAlCAhgBEgwKBGNpdHkYAiABKAkSDQoFc3RhdGUYAyABKAkSCwoDemlwGAQgASgJEiQKDmFkZHJlc3NfbGluZV8yGA0gASgJQge6SARyAhABSACIAQESFgoOYWRkcmVzc19saW5lXzEYDiABKAlCEQoPX2FkZHJlc3NfbGluZV8yGjgKFk1ldGFkYXRhUXVlc3Rpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARo3ChVFeHRlcm5hbE1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARpACh5UZW5hbnRBZGRpdGlvbmFsUXVlc3Rpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASK2BgoLTmV3UHJvZHVjZXISGwoKZmlyc3RfbmFtZRgBIAEoCUIHukgEcgIQARIaCglsYXN0X25hbWUYAiABKAlCB7pIBHICEAESEwoLbWlkZGxlX25hbWUYByABKAkSFgoFZW1haWwYAyABKAlCB7pIBHICYAESCwoDbnBuGAQgASgJEisKBXBob25lGAUgASgJQhy6SBnYAQJyFDISXlwrP1sxLTldXGR7MSwxNH0kEkYKD21haWxpbmdfYWRkcmVzcxgGIAEoCzItLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdQcm9kdWNlci5BZGRyZXNzEh4KCXRlbmFudF9pZBgIIAEoCUILukgI2AECcgMY/wESJQoMbG9jYXRpb25faWRzGAogAygJQg+6SAySAQkQZCIFcgOwAQESWAoSbWV0YWRhdGFfcXVlc3Rpb25zGAsgAygLMjwucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld1Byb2R1Y2VyLk1ldGFkYXRhUXVlc3Rpb25zRW50cnkSaQobdGVuYW50X2FkZGl0aW9uYWxfcXVlc3Rpb25zGAwgAygLMkQucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld1Byb2R1Y2VyLlRlbmFudEFkZGl0aW9uYWxRdWVzdGlvbnNFbnRyeRq2AQoHQWRkcmVzcxISCgZzdHJlZXQYASABKAlCAhgBEhUKBGNpdHkYAiABKAlCB7pIBHICEAESFwoFc3RhdGUYAyABKAlCCLpIBXIDmAECEhYKA3ppcBgEIAEoCUIJukgGcgQQARgKEiQKDmFkZHJlc3NfbGluZV8yGAUgASgJQge6SARyAhABSACIAQESFgoOYWRkcmVzc19saW5lXzEYBiABKAlCEQoPX2FkZHJlc3NfbGluZV8yGjgKFk1ldGFkYXRhUXVlc3Rpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARpACh5UZW5hbnRBZGRpdGlvbmFsUXVlc3Rpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASKiAQoSTmV3UHJvZHVjZXJSZXF1ZXN0EhsKCWFnZW5jeV9pZBgBIAEoCUIIukgFcgOwAQESPwoIcHJvZHVjZXIYAiABKAsyJS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3UHJvZHVjZXJCBrpIA8gBARIbCg5zeW5jX3dpdGhfbmlwchgDIAEoCEgAiAEBQhEKD19zeW5jX3dpdGhfbmlwciI0ChNOZXdQcm9kdWNlclJlc3BvbnNlEh0KC3Byb2R1Y2VyX2lkGAEgASgJQgi6SAVyA7ABASKmAQoTTmV3UHJvZHVjZXJzUmVxdWVzdBIbCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBEkIKCXByb2R1Y2VycxgCIAMoCzIlLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdQcm9kdWNlckIIukgFkgECCAESGwoOc3luY193aXRoX25pcHIYAyABKAhIAIgBAUIRCg9fc3luY193aXRoX25pcHIiLAoUTmV3UHJvZHVjZXJzUmVzcG9uc2USFAoMcHJvZHVjZXJfaWRzGAEgAygJIqQCCgpOZXdDb250YWN0EhsKCmZpcnN0X25hbWUYASABKAlCB7pIBHICEAESGgoJbGFzdF9uYW1lGAIgASgJQge6SARyAhABEhMKC21pZGRsZV9uYW1lGAMgASgJEhYKBWVtYWlsGAQgASgJQge6SARyAmABEisKBXBob25lGAUgASgJQhy6SBnYAQJyFDISXlwrP1sxLTldXGR7MSwxNH0kEjIKB2FkZHJlc3MYBiABKAsyIS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWRkcmVzcxIVCgRyb2xlGAcgASgJQge6SARyAhABEh4KCXRlbmFudF9pZBgIIAEoCUILukgI2AECcgMY/wESEAoDbnBuGAkgASgJSACIAQFCBgoEX25wbiJvChFOZXdDb250YWN0UmVxdWVzdBIbCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBEj0KB2NvbnRhY3QYAiABKAsyJC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3Q29udGFjdEIGukgDyAEBIjIKEk5ld0NvbnRhY3RSZXNwb25zZRIcCgpjb250YWN0X2lkGAEgASgJQgi6SAVyA7ABASJzChJOZXdDb250YWN0c1JlcXVlc3QSGwoJYWdlbmN5X2lkGAEgASgJQgi6SAVyA7ABARJACghjb250YWN0cxgCIAMoCzIkLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdDb250YWN0Qgi6SAWSAQIIASIqChNOZXdDb250YWN0c1Jlc3BvbnNlEhMKC2NvbnRhY3RfaWRzGAEgAygJIu4BCgdDb250YWN0EgoKAmlkGAEgASgJEhIKCmZpcnN0X25hbWUYAiABKAkSEwoLbWlkZGxlX25hbWUYAyABKAkSEQoJbGFzdF9uYW1lGAQgASgJEg0KBWVtYWlsGAUgASgJEg0KBXBob25lGAYgASgJEgwKBHJvbGUYByABKAkSMgoHYWRkcmVzcxgIIAEoCzIhLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZGRyZXNzEgsKA25wbhgJIAEoCRIuCgpjcmVhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCI4ChlMaXN0QWdlbmN5Q29udGFjdHNSZXF1ZXN0EhsKCWFnZW5jeV9pZBgBIAEoCUIIukgFcgOwAQEiUQoaTGlzdEFnZW5jeUNvbnRhY3RzUmVzcG9uc2USMwoIY29udGFjdHMYASADKAsyIS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQ29udGFjdCLOAQoUU2V0RXh0ZXJuYWxJRFJlcXVlc3QSHwoLcHJvZHVjZXJfaWQYASABKAlCCLpIBXIDsAEBSAASHQoJYWdlbmN5X2lkGAIgASgJQgi6SAVyA7ABAUgAEh4KCmNvbnRhY3RfaWQYAyABKAlCCLpIBXIDsAEBSAASIwoPb3JnYW5pemF0aW9uX2lkGAUgASgJQgi6SAVyA7ABAUgAEh0KCXRlbmFudF9pZBgEIAEoCUIKukgHcgUQARj/AUISCgllbnRpdHlfaWQSBbpIAggBIhcKFVNldEV4dGVybmFsSURSZXNwb25zZSJOChpWYWxpZGF0ZVByb2R1Y2VyTlBOUmVxdWVzdBIUCgNucG4YASABKAlCB7pIBHICEAESEQoEbmFtZRgCIAEoCUgAiAEBQgcKBV9uYW1lIiwKG1ZhbGlkYXRlUHJvZHVjZXJOUE5SZXNwb25zZRINCgV2YWxpZBgBIAEoCCIwChhWYWxpZGF0ZUFnZW5jeU5QTlJlcXVlc3QSFAoDbnBuGAEgASgJQge6SARyAhABIioKGVZhbGlkYXRlQWdlbmN5TlBOUmVzcG9uc2USDQoFdmFsaWQYASABKAgiMAoWTG9va3VwTlBOQnlGRUlOUmVxdWVzdBIWCgRmZWluGAEgASgJQgi6SAVyA5gBCSImChdMb29rdXBOUE5CeUZFSU5SZXNwb25zZRILCgNucG4YASABKAkiMgoTUmVzeW5jQWdlbmN5UmVxdWVzdBIbCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBIhYKFFJlc3luY0FnZW5jeVJlc3BvbnNlIjYKFVJlc3luY1Byb2R1Y2VyUmVxdWVzdBIdCgtwcm9kdWNlcl9pZBgBIAEoCUIIukgFcgOwAQEiGAoWUmVzeW5jUHJvZHVjZXJSZXNwb25zZSI8ChtTeW5jUHJvZHVjZXJXaXRoTklQUlJlcXVlc3QSHQoLcHJvZHVjZXJfaWQYASABKAlCCLpIBXIDsAEBIh4KHFN5bmNQcm9kdWNlcldpdGhOSVBSUmVzcG9uc2UiVAoZU3luY0FnZW5jeVdpdGhOSVBSUmVxdWVzdBIbCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBEhoKEnN5bmNfYWxsX3Byb2R1Y2VycxgCIAEoCCIcChpTeW5jQWdlbmN5V2l0aE5JUFJSZXNwb25zZSJACh9TdG9wU3luY1Byb2R1Y2VyV2l0aE5JUFJSZXF1ZXN0Eh0KC3Byb2R1Y2VyX2lkGAEgASgJQgi6SAVyA7ABASIiCiBTdG9wU3luY1Byb2R1Y2VyV2l0aE5JUFJSZXNwb25zZSJYCh1TdG9wU3luY0FnZW5jeVdpdGhOSVBSUmVxdWVzdBIbCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBEhoKEnN0b3BfYWxsX3Byb2R1Y2VycxgCIAEoCCIgCh5TdG9wU3luY0FnZW5jeVdpdGhOSVBSUmVzcG9uc2UigQIKDUFnZW5jeVN1bW1hcnkSEQoJYWdlbmN5X2lkGAEgASgJEgwKBG5hbWUYAiABKAkSDQoFZW1haWwYAyABKAkSDQoFcGhvbmUYBCABKAkSCwoDbnBuGAUgASgJEgwKBGZlaW4YBiABKAkSHAoPb3JnYW5pemF0aW9uX2lkGAcgASgJSACIAQESGAoQaXNfdGVuYW50X2FnZW5jeRgIIAEoCBIaChJpc19zb2xlX3Byb3ByaWV0b3IYCSABKAgSLgoKY3JlYXRlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEgoQX29yZ2FuaXphdGlvbl9pZCKcAwoTTGlzdEFnZW5jaWVzUmVxdWVzdBImCg9vcmdhbml6YXRpb25faWQYASABKAlCCLpIBXIDsAEBSACIAQESGQoMc2VhcmNoX3F1ZXJ5GAIgASgJSAGIAQESOAoKcGFnaW5hdGlvbhgDIAEoCzIkLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5QYWdpbmF0aW9uEj4KC2FnZW5jeV90eXBlGAQgASgOMiQucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeVR5cGVIAogBARI+CgtlbnRpdHlfdHlwZRgFIAEoDjIkLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5FbnRpdHlUeXBlSAOIAQESQwoSbmlwcl9zeW5jX3N0YXR1c2VzGAYgAygOMicucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5JUFJTeW5jU3RhdGVCEgoQX29yZ2FuaXphdGlvbl9pZEIPCg1fc2VhcmNoX3F1ZXJ5Qg4KDF9hZ2VuY3lfdHlwZUIOCgxfZW50aXR5X3R5cGUifwoUTGlzdEFnZW5jaWVzUmVzcG9uc2USOQoIYWdlbmNpZXMYASADKAsyJy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5U3VtbWFyeRIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkSEwoLdG90YWxfY291bnQYAyABKAUiVAoYTGlzdE9yZ2FuaXphdGlvbnNSZXF1ZXN0EjgKCnBhZ2luYXRpb24YASABKAsyJC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUGFnaW5hdGlvbiJMCgxPcmdhbml6YXRpb24SCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRITCgtleHRlcm5hbF9pZBgDIAEoCRINCgVlbWFpbBgEIAEoCSKIAQoZTGlzdE9yZ2FuaXphdGlvbnNSZXNwb25zZRI9Cg1vcmdhbml6YXRpb25zGAEgAygLMiYucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk9yZ2FuaXphdGlvbhIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkSEwoLdG90YWxfY291bnQYAyABKAUiOwoWR2V0T3JnYW5pemF0aW9uUmVxdWVzdBIhCg9vcmdhbml6YXRpb25faWQYASABKAlCCLpIBXIDsAEBIlcKF0dldE9yZ2FuaXphdGlvblJlc3BvbnNlEjwKDG9yZ2FuaXphdGlvbhgBIAEoCzImLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Pcmdhbml6YXRpb24iVgoZQ3JlYXRlT3JnYW5pemF0aW9uUmVxdWVzdBIVCgRuYW1lGAEgASgJQge6SARyAhABEhMKC2V4dGVybmFsX2lkGAIgASgJEg0KBWVtYWlsGAMgASgJIjUKGkNyZWF0ZU9yZ2FuaXphdGlvblJlc3BvbnNlEhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCSJJCh5DcmVhdGVQcm9kdWNlclVwbG9hZFVSTFJlcXVlc3QSJwoKYWdlbmN5X25wbhgBIAEoCUITukgQcg4QAhgKMgheWzAtOV0rJCIuCh9DcmVhdGVQcm9kdWNlclVwbG9hZFVSTFJlc3BvbnNlEgsKA3VybBgBIAEoCSKbAQoITG9jYXRpb24SCgoCaWQYASABKAkSFQoEbmFtZRgCIAEoCUIHukgEcgIQARI6CgdhZGRyZXNzGAMgASgLMiEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFkZHJlc3NCBrpIA8gBARINCgVwaG9uZRgEIAEoCRINCgVlbWFpbBgFIAEoCRISCgppc19wcmltYXJ5GAYgASgIIoABChlBZGRBZ2VuY3lMb2NhdGlvbnNSZXF1ZXN0EhsKCWFnZW5jeV9pZBgBIAEoCUIIukgFcgOwAQESRgoJbG9jYXRpb25zGAIgAygLMicucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkxvY2F0aW9uSW5wdXRCCrpIB5IBBAgBEGQiuAEKDUxvY2F0aW9uSW5wdXQSFQoEbmFtZRgBIAEoCUIHukgEcgIQARI6CgdhZGRyZXNzGAIgASgLMiEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFkZHJlc3NCBrpIA8gBARIoCgVwaG9uZRgDIAEoCUIZukgWchQyEl5cKz9bMS05XVxkezEsMTR9JBIWCgVlbWFpbBgEIAEoCUIHukgEcgJgARISCgppc19wcmltYXJ5GAUgASgIIjIKGkFkZEFnZW5jeUxvY2F0aW9uc1Jlc3BvbnNlEhQKDGxvY2F0aW9uX2lkcxgBIAMoCSJkChxSZW1vdmVBZ2VuY3lMb2NhdGlvbnNSZXF1ZXN0EhsKCWFnZW5jeV9pZBgBIAEoCUIIukgFcgOwAQESJwoMbG9jYXRpb25faWRzGAIgAygJQhG6SA6SAQsIARBkIgVyA7ABASI9Ch1SZW1vdmVBZ2VuY3lMb2NhdGlvbnNSZXNwb25zZRIcChRyZW1vdmVkX2xvY2F0aW9uX2lkcxgBIAMoCSI5ChpMaXN0QWdlbmN5TG9jYXRpb25zUmVxdWVzdBIbCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBIlQKG0xpc3RBZ2VuY3lMb2NhdGlvbnNSZXNwb25zZRI1Cglsb2NhdGlvbnMYASADKAsyIi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTG9jYXRpb24iywIKG1VwZGF0ZUFnZW5jeUxvY2F0aW9uUmVxdWVzdBIbCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBEh0KC2xvY2F0aW9uX2lkGAIgASgJQgi6SAVyA7ABARIaCgRuYW1lGAMgASgJQge6SARyAhABSACIAQESNwoHYWRkcmVzcxgEIAEoCzIhLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZGRyZXNzSAGIAQESLQoFcGhvbmUYBSABKAlCGbpIFnIUMhJeXCs/WzEtOV1cZHsxLDE0fSRIAogBARIbCgVlbWFpbBgGIAEoCUIHukgEcgJgAUgDiAEBEhcKCmlzX3ByaW1hcnkYByABKAhIBIgBAUIHCgVfbmFtZUIKCghfYWRkcmVzc0IICgZfcGhvbmVCCAoGX2VtYWlsQg0KC19pc19wcmltYXJ5IlQKHFVwZGF0ZUFnZW5jeUxvY2F0aW9uUmVzcG9uc2USNAoIbG9jYXRpb24YASABKAsyIi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTG9jYXRpb24iagogQXNzaWduUHJvZHVjZXJUb0xvY2F0aW9uc1JlcXVlc3QSHQoLcHJvZHVjZXJfaWQYASABKAlCCLpIBXIDsAEBEicKDGxvY2F0aW9uX2lkcxgCIAMoCUIRukgOkgELCAEQZCIFcgOwAQEiQgohQXNzaWduUHJvZHVjZXJUb0xvY2F0aW9uc1Jlc3BvbnNlEh0KFWFzc2lnbmVkX2xvY2F0aW9uX2lkcxgBIAMoCSJuCiRVbmFzc2lnblByb2R1Y2VyRnJvbUxvY2F0aW9uc1JlcXVlc3QSHQoLcHJvZHVjZXJfaWQYASABKAlCCLpIBXIDsAEBEicKDGxvY2F0aW9uX2lkcxgCIAMoCUIRukgOkgELCAEQZCIFcgOwAQEiSAolVW5hc3NpZ25Qcm9kdWNlckZyb21Mb2NhdGlvbnNSZXNwb25zZRIfChd1bmFzc2lnbmVkX2xvY2F0aW9uX2lkcxgBIAMoCSqJAQoKRW50aXR5VHlwZRIbChdFTlRJVFlfVFlQRV9VTlNQRUNJRklFRBAAEh8KG0VOVElUWV9UWVBFX1NPTEVfUFJPUFJJRVRPUhABEhYKEkVOVElUWV9UWVBFX0FHRU5DWRACEiUKIUVOVElUWV9UWVBFX0FTS19EVVJJTkdfT05CT0FSRElORxADKl0KCkFnZW5jeVR5cGUSGwoXQUdFTkNZX1RZUEVfVU5TUEVDSUZJRUQQABIYChRBR0VOQ1lfVFlQRV9JTlRFUk5BTBABEhgKFEFHRU5DWV9UWVBFX0VYVEVSTkFMEAIqpAEKDU5JUFJTeW5jU3RhdGUSHwobTklQUl9TWU5DX1NUQVRFX1VOU1BFQ0lGSUVEEAASGgoWTklQUl9TWU5DX1NUQVRFX0FDVElWRRABEhsKF05JUFJfU1lOQ19TVEFURV9GQUlMSU5HEAISGwoXTklQUl9TWU5DX1NUQVRFX1BFTkRJTkcQAxIcChhOSVBSX1NZTkNfU1RBVEVfRElTQUJMRUQQBDKiIgoPUHJvZHVjZXJTZXJ2aWNlEpYBChlDcmVhdGVBZ2VuY3lPbmJvYXJkaW5nVVJMEjoucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkNyZWF0ZUFnZW5jeU9uYm9hcmRpbmdVUkxSZXF1ZXN0GjsucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkNyZWF0ZUFnZW5jeU9uYm9hcmRpbmdVUkxSZXNwb25zZSIAEpwBChtDcmVhdGVQcm9kdWNlck9uYm9hcmRpbmdVUkwSPC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQ3JlYXRlUHJvZHVjZXJPbmJvYXJkaW5nVVJMUmVxdWVzdBo9LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5DcmVhdGVQcm9kdWNlck9uYm9hcmRpbmdVUkxSZXNwb25zZSIAEmYKCU5ld0FnZW5jeRIqLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdBZ2VuY3lSZXF1ZXN0GisucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0FnZW5jeVJlc3BvbnNlIgASbwoMTGlzdEFnZW5jaWVzEi0ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkxpc3RBZ2VuY2llc1JlcXVlc3QaLi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTGlzdEFnZW5jaWVzUmVzcG9uc2UiABJ8ChFMaXN0T3JnYW5pemF0aW9ucxIyLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5MaXN0T3JnYW5pemF0aW9uc1JlcXVlc3QaMy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTGlzdE9yZ2FuaXphdGlvbnNSZXNwb25zZRJ2Cg9HZXRPcmdhbml6YXRpb24SMC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuR2V0T3JnYW5pemF0aW9uUmVxdWVzdBoxLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5HZXRPcmdhbml6YXRpb25SZXNwb25zZRJ/ChJDcmVhdGVPcmdhbml6YXRpb24SMy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQ3JlYXRlT3JnYW5pemF0aW9uUmVxdWVzdBo0LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5DcmVhdGVPcmdhbml6YXRpb25SZXNwb25zZRJsCgtOZXdQcm9kdWNlchIsLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdQcm9kdWNlclJlcXVlc3QaLS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3UHJvZHVjZXJSZXNwb25zZSIAEm8KDE5ld1Byb2R1Y2VycxItLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdQcm9kdWNlcnNSZXF1ZXN0Gi4ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld1Byb2R1Y2Vyc1Jlc3BvbnNlIgASiAEKFUdldEFnZW5jeUFuZFByb2R1Y2VycxI2LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5HZXRBZ2VuY3lBbmRQcm9kdWNlcnNSZXF1ZXN0GjcucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkdldEFnZW5jeUFuZFByb2R1Y2Vyc1Jlc3BvbnNlEmoKC0dldFByb2R1Y2VyEiwucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkdldFByb2R1Y2VyUmVxdWVzdBotLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5HZXRQcm9kdWNlclJlc3BvbnNlEnMKDkdldEFnZW5jeUZpbGVzEi8ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkdldEFnZW5jeUZpbGVzUmVxdWVzdBowLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5HZXRBZ2VuY3lGaWxlc1Jlc3BvbnNlEnUKDlVwZGF0ZVByb2R1Y2VyEi8ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlVwZGF0ZVByb2R1Y2VyUmVxdWVzdBowLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5VcGRhdGVQcm9kdWNlclJlc3BvbnNlIgASbwoMVXBkYXRlQWdlbmN5Ei0ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlVwZGF0ZUFnZW5jeVJlcXVlc3QaLi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuVXBkYXRlQWdlbmN5UmVzcG9uc2UiABJpCgpOZXdDb250YWN0EisucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0NvbnRhY3RSZXF1ZXN0GiwucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0NvbnRhY3RSZXNwb25zZSIAEmwKC05ld0NvbnRhY3RzEiwucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0NvbnRhY3RzUmVxdWVzdBotLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdDb250YWN0c1Jlc3BvbnNlIgASfwoSTGlzdEFnZW5jeUNvbnRhY3RzEjMucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkxpc3RBZ2VuY3lDb250YWN0c1JlcXVlc3QaNC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTGlzdEFnZW5jeUNvbnRhY3RzUmVzcG9uc2UScgoNU2V0RXh0ZXJuYWxJRBIuLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5TZXRFeHRlcm5hbElEUmVxdWVzdBovLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5TZXRFeHRlcm5hbElEUmVzcG9uc2UiABKCAQoTVmFsaWRhdGVQcm9kdWNlck5QThI0LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5WYWxpZGF0ZVByb2R1Y2VyTlBOUmVxdWVzdBo1LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5WYWxpZGF0ZVByb2R1Y2VyTlBOUmVzcG9uc2USfAoRVmFsaWRhdGVBZ2VuY3lOUE4SMi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuVmFsaWRhdGVBZ2VuY3lOUE5SZXF1ZXN0GjMucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlZhbGlkYXRlQWdlbmN5TlBOUmVzcG9uc2USdgoPTG9va3VwTlBOQnlGRUlOEjAucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkxvb2t1cE5QTkJ5RkVJTlJlcXVlc3QaMS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTG9va3VwTlBOQnlGRUlOUmVzcG9uc2USdQoOUmVzeW5jUHJvZHVjZXISLy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUmVzeW5jUHJvZHVjZXJSZXF1ZXN0GjAucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlJlc3luY1Byb2R1Y2VyUmVzcG9uc2UiABJvCgxSZXN5bmNBZ2VuY3kSLS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUmVzeW5jQWdlbmN5UmVxdWVzdBouLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5SZXN5bmNBZ2VuY3lSZXNwb25zZSIAEocBChRTeW5jUHJvZHVjZXJXaXRoTklQUhI1LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5TeW5jUHJvZHVjZXJXaXRoTklQUlJlcXVlc3QaNi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuU3luY1Byb2R1Y2VyV2l0aE5JUFJSZXNwb25zZSIAEoEBChJTeW5jQWdlbmN5V2l0aE5JUFISMy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuU3luY0FnZW5jeVdpdGhOSVBSUmVxdWVzdBo0LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5TeW5jQWdlbmN5V2l0aE5JUFJSZXNwb25zZSIAEpMBChhTdG9wU3luY1Byb2R1Y2VyV2l0aE5JUFISOS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuU3RvcFN5bmNQcm9kdWNlcldpdGhOSVBSUmVxdWVzdBo6LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5TdG9wU3luY1Byb2R1Y2VyV2l0aE5JUFJSZXNwb25zZSIAEo0BChZTdG9wU3luY0FnZW5jeVdpdGhOSVBSEjcucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlN0b3BTeW5jQWdlbmN5V2l0aE5JUFJSZXF1ZXN0GjgucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlN0b3BTeW5jQWdlbmN5V2l0aE5JUFJSZXNwb25zZSIAEpABChdDcmVhdGVQcm9kdWNlclVwbG9hZFVSTBI4LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5DcmVhdGVQcm9kdWNlclVwbG9hZFVSTFJlcXVlc3QaOS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQ3JlYXRlUHJvZHVjZXJVcGxvYWRVUkxSZXNwb25zZSIAEoEBChJBZGRBZ2VuY3lMb2NhdGlvbnMSMy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWRkQWdlbmN5TG9jYXRpb25zUmVxdWVzdBo0LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZGRBZ2VuY3lMb2NhdGlvbnNSZXNwb25zZSIAEooBChVSZW1vdmVBZ2VuY3lMb2NhdGlvbnMSNi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUmVtb3ZlQWdlbmN5TG9jYXRpb25zUmVxdWVzdBo3LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5SZW1vdmVBZ2VuY3lMb2NhdGlvbnNSZXNwb25zZSIAEoIBChNMaXN0QWdlbmN5TG9jYXRpb25zEjQucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkxpc3RBZ2VuY3lMb2NhdGlvbnNSZXF1ZXN0GjUucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkxpc3RBZ2VuY3lMb2NhdGlvbnNSZXNwb25zZRKWAQoZQXNzaWduUHJvZHVjZXJUb0xvY2F0aW9ucxI6LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Bc3NpZ25Qcm9kdWNlclRvTG9jYXRpb25zUmVxdWVzdBo7LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Bc3NpZ25Qcm9kdWNlclRvTG9jYXRpb25zUmVzcG9uc2UiABKiAQodVW5hc3NpZ25Qcm9kdWNlckZyb21Mb2NhdGlvbnMSPi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuVW5hc3NpZ25Qcm9kdWNlckZyb21Mb2NhdGlvbnNSZXF1ZXN0Gj8ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlVuYXNzaWduUHJvZHVjZXJGcm9tTG9jYXRpb25zUmVzcG9uc2UiABKHAQoUVXBkYXRlQWdlbmN5TG9jYXRpb24SNS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuVXBkYXRlQWdlbmN5TG9jYXRpb25SZXF1ZXN0GjYucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlVwZGF0ZUFnZW5jeUxvY2F0aW9uUmVzcG9uc2UiAEKDAgocY29tLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MUINUHJvZHVjZXJQcm90b1ABWlJnaXRodWIuY29tL3Byb2R1Y2VyZmxvdy9wcm9kdWNlcmZsb3dhcGkvZ2VuL2dvL3Byb2R1Y2VyZmxvdy9wcm9kdWNlci92MTtwcm9kdWNlcnYxogIDUFBYqgIYUHJvZHVjZXJmbG93LlByb2R1Y2VyLlYxygIYUHJvZHVjZXJmbG93XFByb2R1Y2VyXFYx4gIkUHJvZHVjZXJmbG93XFByb2R1Y2VyXFYxXEdQQk1ldGFkYXRh6gIaUHJvZHVjZXJmbG93OjpQcm9kdWNlcjo6VjFiBnByb3RvMw", [validate_pb_1.file_buf_validate_validate, wkt_1.file_google_protobuf_timestamp, dayofweek_pb_1.file_google_type_dayofweek, timeofday_pb_1.file_google_type_timeofday]);
17
+ exports.file_producerflow_producer_v1_producer = (0, codegenv2_1.fileDesc)("Cidwcm9kdWNlcmZsb3cvcHJvZHVjZXIvdjEvcHJvZHVjZXIucHJvdG8SGHByb2R1Y2VyZmxvdy5wcm9kdWNlci52MSI/CgpQYWdpbmF0aW9uEh0KCXBhZ2Vfc2l6ZRgBIAEoBUIKukgHGgUYyAEoABISCgpwYWdlX3Rva2VuGAIgASgJIsYBCgdBZGRyZXNzEhIKBnN0cmVldBgBIAEoCUICGAESFgoOYWRkcmVzc19saW5lXzEYByABKAkSFQoEY2l0eRgCIAEoCUIHukgEcgIQARIXCgVzdGF0ZRgDIAEoCUIIukgFcgOYAQISFgoDemlwGAQgASgJQgm6SAZyBBABGAoSDgoGY291bnR5GAUgASgJEiQKDmFkZHJlc3NfbGluZV8yGAYgASgJQge6SARyAhABSACIAQFCEQoPX2FkZHJlc3NfbGluZV8yIt8GCiBDcmVhdGVBZ2VuY3lPbmJvYXJkaW5nVVJMUmVxdWVzdBJRCgZhZ2VuY3kYASABKAsyQS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQ3JlYXRlQWdlbmN5T25ib2FyZGluZ1VSTFJlcXVlc3QuQWdlbmN5GucFCgZBZ2VuY3kSDAoEbmFtZRgBIAEoCRJHCgtlbnRpdHlfdHlwZRgCIAEoDjIkLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5FbnRpdHlUeXBlQgy6SAmCAQYYARgCGAMSGAoQdGVuYW50X2FnZW5jeV9pZBgDIAEoCRIcChRkb2N1c2lnbl90ZW1wbGF0ZV9pZBgEIAEoCRIMCgRmZWluGAUgASgJEg0KBWVtYWlsGAYgASgJEg0KBXBob25lGAcgASgJEgsKA2ZheBgIIAEoCRIPCgd3ZWJzaXRlGAkgASgJEgsKA25wbhgKIAEoCRI6Cg9tYWlsaW5nX2FkZHJlc3MYCyABKAsyIS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWRkcmVzcxI7ChBwaHlzaWNhbF9hZGRyZXNzGAwgASgLMiEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFkZHJlc3MSPAoRaW52b2ljaW5nX2FkZHJlc3MYDSABKAsyIS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWRkcmVzcxIXCg9vcmdhbml6YXRpb25faWQYDyABKAkSXgoJcHJpbmNpcGFsGA4gASgLMksucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkNyZWF0ZUFnZW5jeU9uYm9hcmRpbmdVUkxSZXF1ZXN0LkFnZW5jeS5QcmluY2lwYWwaxgEKCVByaW5jaXBhbBIeCgl0ZW5hbnRfaWQYASABKAlCC7pICNgBAnIDGP8BEhIKCmZpcnN0X25hbWUYAiABKAkSEQoJbGFzdF9uYW1lGAMgASgJEhMKC21pZGRsZV9uYW1lGAQgASgJEg0KBWVtYWlsGAUgASgJEg0KBXBob25lGAYgASgJEgsKA25wbhgHIAEoCRIyCgdhZGRyZXNzGAggASgLMiEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFkZHJlc3MiMAohQ3JlYXRlQWdlbmN5T25ib2FyZGluZ1VSTFJlc3BvbnNlEgsKA3VybBgBIAEoCSJ2CiJDcmVhdGVQcm9kdWNlck9uYm9hcmRpbmdVUkxSZXF1ZXN0EhEKCWFnZW5jeV9pZBgBIAEoCRI9Cg1wcm9kdWNlcl9kYXRhGAIgASgLMiYucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlByb2R1Y2VyRGF0YSLcAwoMUHJvZHVjZXJEYXRhEhsKA25wbhgBIAEoCUIJukgGcgQQARgKSACIAQESFwoKZmlyc3RfbmFtZRgCIAEoCUgBiAEBEhYKCWxhc3RfbmFtZRgDIAEoCUgCiAEBEhgKC21pZGRsZV9uYW1lGAQgASgJSAOIAQESEgoFZW1haWwYBSABKAlIBIgBARISCgVwaG9uZRgGIAEoCUgFiAEBEkcKD21haWxpbmdfYWRkcmVzcxgHIAEoCzIuLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlckRhdGEuQWRkcmVzcxqpAQoHQWRkcmVzcxISCgZzdHJlZXQYASABKAlCAhgBEgwKBGNpdHkYAiABKAkSDQoFc3RhdGUYAyABKAkSCwoDemlwGAQgASgJEg8KB2NvdW50cnkYBSABKAkSJAoOYWRkcmVzc19saW5lXzIYBiABKAlCB7pIBHICEAFIAIgBARIWCg5hZGRyZXNzX2xpbmVfMRgHIAEoCUIRCg9fYWRkcmVzc19saW5lXzJCBgoEX25wbkINCgtfZmlyc3RfbmFtZUIMCgpfbGFzdF9uYW1lQg4KDF9taWRkbGVfbmFtZUIICgZfZW1haWxCCAoGX3Bob25lIj0KI0NyZWF0ZVByb2R1Y2VyT25ib2FyZGluZ1VSTFJlc3BvbnNlEhYKDm9uYm9hcmRpbmdfdXJsGAEgASgJIuIaChBOZXdBZ2VuY3lSZXF1ZXN0EkkKBmFnZW5jeRgBIAEoCzIxLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdBZ2VuY3lSZXF1ZXN0LkFnZW5jeUIGukgDyAEBEhsKDnN5bmNfd2l0aF9uaXByGAMgASgISACIAQEa0hkKBkFnZW5jeRIVCgRuYW1lGAEgASgJQge6SARyAhABEhYKBWVtYWlsGAIgASgJQge6SARyAmABEgsKA25wbhgDIAEoCRIwCgVwaG9uZRgFIAEoCUIcukgZ2AECchQyEl5cKz9bMS05XVxkezEsMTR9JEgAiAEBEg8KB3dlYnNpdGUYBiABKAkSVgoJcHJpbmNpcGFsGAcgASgLMjsucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0FnZW5jeVJlcXVlc3QuQWdlbmN5LlByaW5jaXBhbEIGukgDyAEBElMKDGJhbmtfYWNjb3VudBgJIAEoCzI9LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdBZ2VuY3lSZXF1ZXN0LkFnZW5jeS5CYW5rQWNjb3VudBJJCgdlb19pbmZvGAogASgLMjgucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0FnZW5jeVJlcXVlc3QuQWdlbmN5LkVPSW5mbxJXCg5idXNpbmVzc19ob3VycxgLIAEoCzI/LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdBZ2VuY3lSZXF1ZXN0LkFnZW5jeS5CdXNpbmVzc0hvdXJzEjgKCXByb2R1Y2VycxgMIAMoCzIlLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdQcm9kdWNlchJbChFwb2ludHNfb2ZfY29udGFjdBgNIAMoCzJALnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdBZ2VuY3lSZXF1ZXN0LkFnZW5jeS5Qb2ludE9mQ29udGFjdBIvChRyb290X29yZ2FuaXphdGlvbl9pZBgOIAEoCUIMukgJ2AECcgQQARgkSAGIAQESRQoLZW50aXR5X3R5cGUYDyABKA4yJC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuRW50aXR5VHlwZUIKukgHggEEGAEYAhIeCgRmZWluGBAgASgJQgu6SAjYAQJyA5gBCUgCiAEBEjoKD21haWxpbmdfYWRkcmVzcxgIIAEoCzIhLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZGRyZXNzEjsKEHBoeXNpY2FsX2FkZHJlc3MYESABKAsyIS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWRkcmVzcxI8ChFpbnZvaWNpbmdfYWRkcmVzcxgSIAEoCzIhLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZGRyZXNzEhgKEHRlbmFudF9hZ2VuY3lfaWQYEyABKAkSRAoJbG9jYXRpb25zGBQgAygLMicucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkxvY2F0aW9uSW5wdXRCCLpIBZIBAhBkEmgKEm1ldGFkYXRhX3F1ZXN0aW9ucxgVIAMoCzJILnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdBZ2VuY3lSZXF1ZXN0LkFnZW5jeS5NZXRhZGF0YVF1ZXN0aW9uc0VudHJ5QgIYARJ1Cht0ZW5hbnRfYWRkaXRpb25hbF9xdWVzdGlvbnMYFiADKAsyUC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3QWdlbmN5UmVxdWVzdC5BZ2VuY3kuVGVuYW50QWRkaXRpb25hbFF1ZXN0aW9uc0VudHJ5GpQECglQcmluY2lwYWwSGwoKZmlyc3RfbmFtZRgBIAEoCUIHukgEcgIQARIaCglsYXN0X25hbWUYAiABKAlCB7pIBHICEAESEwoLbWlkZGxlX25hbWUYDSABKAkSFgoFZW1haWwYAyABKAlCB7pIBHICYAESMAoFcGhvbmUYBCABKAlCHLpIGdgBAnIUMhJeXCs/WzEtOV1cZHsxLDE0fSRIAIgBARIWCgNucG4YBSABKAlCCbpIBnIEEAEYChIeCgl0ZW5hbnRfaWQYBiABKAlCC7pICNgBAnIDGP8BEhsKDnN5bmNfd2l0aF9uaXByGAcgASgISAGIAQESfwobdGVuYW50X2FkZGl0aW9uYWxfcXVlc3Rpb25zGAggAygLMloucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0FnZW5jeVJlcXVlc3QuQWdlbmN5LlByaW5jaXBhbC5UZW5hbnRBZGRpdGlvbmFsUXVlc3Rpb25zRW50cnkSOgoPbWFpbGluZ19hZGRyZXNzGAkgASgLMiEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFkZHJlc3MaQAoeVGVuYW50QWRkaXRpb25hbFF1ZXN0aW9uc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCCAoGX3Bob25lQhEKD19zeW5jX3dpdGhfbmlwchrDAgoLQmFua0FjY291bnQSIQoOYWNjb3VudF9udW1iZXIYASABKAlCCbpIBnIEEAgYERIgCg5yb3V0aW5nX251bWJlchgCIAEoCUIIukgFcgOYAQkSZwoMYWNjb3VudF90eXBlGAMgASgOMkkucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0FnZW5jeVJlcXVlc3QuQWdlbmN5LkJhbmtBY2NvdW50LkFjY291bnRUeXBlQga6SAPIAQESJAoTYWNjb3VudF9ob2xkZXJfbmFtZRgEIAEoCUIHukgEcgIQASJgCgtBY2NvdW50VHlwZRIcChhBQ0NPVU5UX1RZUEVfVU5TUEVDSUZJRUQQABIZChVBQ0NPVU5UX1RZUEVfQ0hFQ0tJTkcQARIYChRBQ0NPVU5UX1RZUEVfU0FWSU5HUxACGuABCgZFT0luZm8SGAoHY2FycmllchgBIAEoCUIHukgEcgIQARI9Cg9leHBpcmF0aW9uX2RhdGUYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgi6SAWyAQJAARIgCg9jb3ZlcmFnZV9hbW91bnQYAyABKAlCB7pIBHICEAESOgoOZWZmZWN0aXZlX2RhdGUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQga6SAPIAQESHwoOcGVyX29jY3VycmVuY2UYBSABKAlCB7pIBHICEAEazwIKDUJ1c2luZXNzSG91cnMSGQoIdGltZXpvbmUYASABKAlCB7pIBHICEAESbAoOYnVzaW5lc3NfaG91cnMYAiADKAsyTC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3QWdlbmN5UmVxdWVzdC5BZ2VuY3kuQnVzaW5lc3NIb3Vycy5CdXNpbmVzc0hvdXJCBrpIA8gBARq0AQoMQnVzaW5lc3NIb3VyEjgKCXdlZWtfZGF5cxgBIAMoDjIWLmdvb2dsZS50eXBlLkRheU9mV2Vla0INukgKyAEBkgEECAEQBxI0CgxvcGVuaW5nX3RpbWUYAiABKAsyFi5nb29nbGUudHlwZS5UaW1lT2ZEYXlCBrpIA8gBARI0CgxjbG9zaW5nX3RpbWUYAyABKAsyFi5nb29nbGUudHlwZS5UaW1lT2ZEYXlCBrpIA8gBARqWAwoOUG9pbnRPZkNvbnRhY3QSFgoFZW1haWwYASABKAlCB7pIBHICYAESaAoEcm9sZRgCIAEoDjJSLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdBZ2VuY3lSZXF1ZXN0LkFnZW5jeS5Qb2ludE9mQ29udGFjdC5Db21tdW5pY2F0aW9uUm9sZUIGukgDyAEBIoECChFDb21tdW5pY2F0aW9uUm9sZRIiCh5DT01NVU5JQ0FUSU9OX1JPTEVfVU5TUEVDSUZJRUQQABIhCh1DT01NVU5JQ0FUSU9OX1JPTEVfQUNDT1VOVElORxABEiAKHENPTU1VTklDQVRJT05fUk9MRV9MSUNFTlNJTkcQAhIgChxDT01NVU5JQ0FUSU9OX1JPTEVfUkVQT1JUSU5HEAMSHAoYQ09NTVVOSUNBVElPTl9ST0xFX1NBTEVTEAQSJwojQ09NTVVOSUNBVElPTl9ST0xFX0NVU1RPTUVSX1NFUlZJQ0UQBRIaChZDT01NVU5JQ0FUSU9OX1JPTEVfQUxMEAYaOAoWTWV0YWRhdGFRdWVzdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGkAKHlRlbmFudEFkZGl0aW9uYWxRdWVzdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQggKBl9waG9uZUIXChVfcm9vdF9vcmdhbml6YXRpb25faWRCBwoFX2ZlaW5CEQoPX3N5bmNfd2l0aF9uaXByImgKEU5ld0FnZW5jeVJlc3BvbnNlEhEKCWFnZW5jeV9pZBgBIAEoCRIUCgxwcm9kdWNlcl9pZHMYAiADKAkSFAoMcHJpbmNpcGFsX2lkGAMgASgJEhQKDGxvY2F0aW9uX2lkcxgEIAMoCSK/AwoSR2V0UHJvZHVjZXJSZXF1ZXN0ElsKEnByb2R1Y2VyX2lkX2xvb2t1cBgBIAEoCzI9LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5HZXRQcm9kdWNlclJlcXVlc3QuUHJvZHVjZXJJRExvb2t1cEgAElQKCm5wbl9sb29rdXAYAiABKAsyPi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuR2V0UHJvZHVjZXJSZXF1ZXN0LlByb2R1Y2VyTlBOTG9va3VwSAASUAoMZW1haWxfbG9va3VwGAMgASgLMjgucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkdldFByb2R1Y2VyUmVxdWVzdC5FbWFpbExvb2t1cEgAGjEKEFByb2R1Y2VySURMb29rdXASHQoLcHJvZHVjZXJfaWQYASABKAlCCLpIBXIDsAEBGjIKEVByb2R1Y2VyTlBOTG9va3VwEh0KDHByb2R1Y2VyX25wbhgBIAEoCUIHukgEcgIQARolCgtFbWFpbExvb2t1cBIWCgVlbWFpbBgBIAEoCUIHukgEcgJgAUIWCg1sb29rdXBfbWV0aG9kEgW6SAIIASJLChNHZXRQcm9kdWNlclJlc3BvbnNlEjQKCHByb2R1Y2VyGAEgASgLMiIucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlByb2R1Y2VyIjsKHEdldEFnZW5jeUFuZFByb2R1Y2Vyc1JlcXVlc3QSGwoJYWdlbmN5X2lkGAEgASgJQgi6SAVyA7ABASKIAQodR2V0QWdlbmN5QW5kUHJvZHVjZXJzUmVzcG9uc2USMAoGYWdlbmN5GAEgASgLMiAucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeRI1Cglwcm9kdWNlcnMYAiADKAsyIi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUHJvZHVjZXIiNAoVR2V0QWdlbmN5RmlsZXNSZXF1ZXN0EhsKCWFnZW5jeV9pZBgBIAEoCUIIukgFcgOwAQEilAEKFkdldEFnZW5jeUZpbGVzUmVzcG9uc2USEgoKZW9fZG9jX3VybBgBIAEoCRIcChR2b2lkZWRfY2hlY2tfZG9jX3VybBgCIAEoCRISCgp3OV9kb2NfdXJsGAMgASgJEhcKD2xpY2Vuc2VfZG9jX3VybBgEIAEoCRIbChNicm9rZXJfYm9uZF9kb2NfdXJsGAUgASgJIuIGChVVcGRhdGVQcm9kdWNlclJlcXVlc3QSHQoLcHJvZHVjZXJfaWQYASABKAlCCLpIBXIDsAEBElIKCHByb2R1Y2VyGAIgASgLMjgucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlVwZGF0ZVByb2R1Y2VyUmVxdWVzdC5Qcm9kdWNlckIGukgDyAEBGtUFCghQcm9kdWNlchIgCgpmaXJzdF9uYW1lGAEgASgJQge6SARyAhABSACIAQESHwoJbGFzdF9uYW1lGAIgASgJQge6SARyAhABSAGIAQESIQoLbWlkZGxlX25hbWUYCiABKAlCB7pIBHICEAFIAogBARIbCgVlbWFpbBgDIAEoCUIHukgEcgJgAUgDiAEBEhsKA25wbhgEIAEoCUIJGAG6SARyAhABSASIAQESMAoFcGhvbmUYBSABKAlCHLpIGdgBAnIUMhJeXCs/WzEtOV1cZHsxLDE0fSRIBYgBARIeCgZzdHJlZXQYBiABKAlCCRgBukgEcgIQAUgGiAEBEiQKDmFkZHJlc3NfbGluZV8xGA4gASgJQge6SARyAhABSAeIAQESJAoOYWRkcmVzc19saW5lXzIYDSABKAlCB7pIBHICEAFICIgBARIaCgRjaXR5GAcgASgJQge6SARyAhABSAmIAQESGwoFc3RhdGUYCCABKAlCB7pIBHICGAJICogBARIZCgN6aXAYCSABKAlCB7pIBHICEAVIC4gBARJpChFleHRlcm5hbF9tZXRhZGF0YRgLIAMoCzJOLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5VcGRhdGVQcm9kdWNlclJlcXVlc3QuUHJvZHVjZXIuRXh0ZXJuYWxNZXRhZGF0YUVudHJ5GjcKFUV4dGVybmFsTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQg0KC19maXJzdF9uYW1lQgwKCl9sYXN0X25hbWVCDgoMX21pZGRsZV9uYW1lQggKBl9lbWFpbEIGCgRfbnBuQggKBl9waG9uZUIJCgdfc3RyZWV0QhEKD19hZGRyZXNzX2xpbmVfMUIRCg9fYWRkcmVzc19saW5lXzJCBwoFX2NpdHlCCAoGX3N0YXRlQgYKBF96aXAiGAoWVXBkYXRlUHJvZHVjZXJSZXNwb25zZSLnBwoTVXBkYXRlQWdlbmN5UmVxdWVzdBIbCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBEkwKBmFnZW5jeRgCIAEoCzI0LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5VcGRhdGVBZ2VuY3lSZXF1ZXN0LkFnZW5jeUIGukgDyAEBGuQGCgZBZ2VuY3kSGwoFZW1haWwYASABKAlCB7pIBHICYAFIAIgBARIwCgVwaG9uZRgCIAEoCUIcukgZ2AECchQyEl5cKz9bMS05XVxkezEsMTR9JEgBiAEBEi4KA2ZheBgDIAEoCUIcukgZ2AECchQyEl5cKz9bMS05XVxkezEsMTR9JEgCiAEBEiEKB3dlYnNpdGUYBCABKAlCC7pICNgBAnIDiAEBSAOIAQESOAoWcmVxdWVzdGVkX2FwcG9pbnRtZW50cxgFIAMoCUIYukgVkgESGAEiDnIMMgpeW0EtWl17Mn0kEh8KBW5vdGVzGAYgASgJQgu6SAjYAQJyAxj0A0gEiAEBElsKEHBoeXNpY2FsX2FkZHJlc3MYByABKAsyPC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuVXBkYXRlQWdlbmN5UmVxdWVzdC5BZ2VuY3kuQWRkcmVzc0gFiAEBEmUKEWV4dGVybmFsX21ldGFkYXRhGAggAygLMkoucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlVwZGF0ZUFnZW5jeVJlcXVlc3QuQWdlbmN5LkV4dGVybmFsTWV0YWRhdGFFbnRyeRqYAgoHQWRkcmVzcxIeCgZzdHJlZXQYASABKAlCCRgBukgEcgIQAUgAiAEBEhoKBGNpdHkYAiABKAlCB7pIBHICEAFIAYgBARIcCgVzdGF0ZRgDIAEoCUIIukgFcgOYAQJIAogBARIbCgN6aXAYBCABKAlCCbpIBnIEEAEYCkgDiAEBEiQKDmFkZHJlc3NfbGluZV8yGAUgASgJQge6SARyAhABSASIAQESJAoOYWRkcmVzc19saW5lXzEYBiABKAlCB7pIBHICEAFIBYgBAUIJCgdfc3RyZWV0QgcKBV9jaXR5QggKBl9zdGF0ZUIGCgRfemlwQhEKD19hZGRyZXNzX2xpbmVfMkIRCg9fYWRkcmVzc19saW5lXzEaNwoVRXh0ZXJuYWxNZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCCAoGX2VtYWlsQggKBl9waG9uZUIGCgRfZmF4QgoKCF93ZWJzaXRlQggKBl9ub3Rlc0ITChFfcGh5c2ljYWxfYWRkcmVzcyIWChRVcGRhdGVBZ2VuY3lSZXNwb25zZSJJChdMaXN0TmV3UHJvZHVjZXJzUmVxdWVzdBIgCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBSACIAQFCDAoKX2FnZW5jeV9pZCJVChhMaXN0TmV3UHJvZHVjZXJzUmVzcG9uc2USOQoNbmV3X3Byb2R1Y2VycxgBIAMoCzIiLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlciLrJgoGQWdlbmN5EhEKCWFnZW5jeV9pZBgBIAEoCRJACgthZ2VuY3lfaW5mbxgCIAEoCzIrLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuQWdlbmN5SW5mbxJCChBwaHlzaWNhbF9hZGRyZXNzGAMgASgLMigucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeS5BZGRyZXNzEkEKD21haWxpbmdfYWRkcmVzcxgEIAEoCzIoLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuQWRkcmVzcxJDChFpbnZvaWNpbmdfYWRkcmVzcxgKIAEoCzIoLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuQWRkcmVzcxJCCgxiYW5rX2FjY291bnQYBSABKAsyLC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5LkJhbmtBY2NvdW50EjgKB2VvX2luZm8YBiABKAsyJy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5LkVPSW5mbxI9CglwcmluY2lwYWwYByABKAsyKi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5LlByaW5jaXBhbBJECg1pdmFuc19hY2NvdW50GAggASgLMi0ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeS5JdmFuc0FjY291bnQSHgoWcmVxdWVzdGVkX2FwcG9pbnRtZW50cxgJIAMoCRJGCg5idXNpbmVzc19ob3VycxgLIAEoCzIuLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuQnVzaW5lc3NIb3VycxIzCgRuaXByGAwgASgLMiUucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeS5OSVBSEjUKCWxvY2F0aW9ucxgNIAMoCzIiLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Mb2NhdGlvbhq9BQoKQWdlbmN5SW5mbxIVCg1vbmJvYXJkaW5nX2lkGAEgASgJEhwKFHJvb3Rfb3JnYW5pemF0aW9uX2lkGAIgASgJEhMKC2FnZW5jeV9uYW1lGAMgASgJEhMKC2FnZW5jeV9mZWluGAQgASgJEg0KBWVtYWlsGAUgASgJEg0KBXBob25lGAYgASgJEgsKA2ZheBgHIAEoCRIPCgd3ZWJzaXRlGAggASgJEgsKA25wbhgJIAEoCRIfChdwZGJfYWxlcnRzX3N5bmNfZW5hYmxlZBgKIAEoCBJiChJtZXRhZGF0YV9xdWVzdGlvbnMYCyADKAsyQi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5LkFnZW5jeUluZm8uTWV0YWRhdGFRdWVzdGlvbnNFbnRyeUICGAESXAoRZXh0ZXJuYWxfbWV0YWRhdGEYDCADKAsyQS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5LkFnZW5jeUluZm8uRXh0ZXJuYWxNZXRhZGF0YUVudHJ5Em8KG3RlbmFudF9hZGRpdGlvbmFsX3F1ZXN0aW9ucxgNIAMoCzJKLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuQWdlbmN5SW5mby5UZW5hbnRBZGRpdGlvbmFsUXVlc3Rpb25zRW50cnkaOAoWTWV0YWRhdGFRdWVzdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjcKFUV4dGVybmFsTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGkAKHlRlbmFudEFkZGl0aW9uYWxRdWVzdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGo8BCgdBZGRyZXNzEhIKBnN0cmVldBgBIAEoCUICGAESDAoEY2l0eRgCIAEoCRINCgVzdGF0ZRgDIAEoCRILCgN6aXAYBCABKAkSFgoOYWRkcmVzc19saW5lXzEYBSABKAkSGwoOYWRkcmVzc19saW5lXzIYBiABKAlIAIgBAUIRCg9fYWRkcmVzc19saW5lXzIajAIKC0JhbmtBY2NvdW50EhYKDmFjY291bnRfbnVtYmVyGAEgASgJEhYKDnJvdXRpbmdfbnVtYmVyGAIgASgJEk4KDGFjY291bnRfdHlwZRgDIAEoDjI4LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuQmFua0FjY291bnQuQWNjb3VudFR5cGUSGwoTYWNjb3VudF9ob2xkZXJfbmFtZRgEIAEoCSJgCgtBY2NvdW50VHlwZRIcChhBQ0NPVU5UX1RZUEVfVU5TUEVDSUZJRUQQABIZChVBQ0NPVU5UX1RZUEVfQ0hFQ0tJTkcQARIYChRBQ0NPVU5UX1RZUEVfU0FWSU5HUxACGrMBCgZFT0luZm8SDwoHY2FycmllchgBIAEoCRIzCg9leHBpcmF0aW9uX2RhdGUYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD2NvdmVyYWdlX2Ftb3VudBgDIAEoCRIWCg5wZXJfb2NjdXJyZW5jZRgEIAEoCRIyCg5lZmZlY3RpdmVfZGF0ZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAauQEKCVByaW5jaXBhbBIKCgJpZBgBIAEoCRISCgpmaXJzdF9uYW1lGAIgASgJEhEKCWxhc3RfbmFtZRgDIAEoCRITCgttaWRkbGVfbmFtZRgJIAEoCRINCgVlbWFpbBgEIAEoCRILCgNucG4YBSABKAkSDQoFcGhvbmUYBiABKAkSOQoHYWRkcmVzcxgIIAEoCzIoLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuQWRkcmVzcxppCgxJdmFuc0FjY291bnQSFgoOYWNjb3VudF9udW1iZXIYASABKAkSFAoMYW1zX3NvZnR3YXJlGAIgASgJEhMKC2Ftc192ZXJzaW9uGAMgASgJEhYKDm1haWxib3hfbnVtYmVyGAQgASgJGo4CCg1CdXNpbmVzc0hvdXJzEhAKCHRpbWV6b25lGAEgASgJElMKDmJ1c2luZXNzX2hvdXJzGAIgAygLMjsucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeS5CdXNpbmVzc0hvdXJzLkJ1c2luZXNzSG91chqVAQoMQnVzaW5lc3NIb3VyEikKCXdlZWtfZGF5cxgBIAMoDjIWLmdvb2dsZS50eXBlLkRheU9mV2VlaxIsCgxvcGVuaW5nX3RpbWUYAiABKAsyFi5nb29nbGUudHlwZS5UaW1lT2ZEYXkSLAoMY2xvc2luZ190aW1lGAMgASgLMhYuZ29vZ2xlLnR5cGUuVGltZU9mRGF5GpkSCgROSVBSEkQKCmJpb2dyYXBoaWMYASABKAsyMC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5Lk5JUFIuQmlvZ3JhcGhpYxJACglhZGRyZXNzZXMYAiADKAsyLS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5Lk5JUFIuQWRkcmVzcxI/CghsaWNlbnNlcxgDIAMoCzItLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuTklQUi5MaWNlbnNlEk0KD3JlZ3VsYXRvcnlfaW5mbxgEIAEoCzI0LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuTklQUi5SZWd1bGF0b3J5SW5mbxJHCgxhcHBvaW50bWVudHMYBSADKAsyMS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5Lk5JUFIuQXBwb2ludG1lbnQanQEKCkJpb2dyYXBoaWMSFAoMY29tcGFueV9uYW1lGAEgASgJEgwKBGZlaW4YAiABKAkSCwoDbnBuGAMgASgJEhYKDmJ1c2luZXNzX2VtYWlsGAQgASgJEhYKDmJ1c2luZXNzX3Bob25lGAUgASgJEi4KCnVwZGF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wGoQCCgdBZGRyZXNzEhQKDGFkZHJlc3NfdHlwZRgBIAEoCRINCgVzdGF0ZRgCIAEoCRIVCg1hZGRyZXNzX3N0YXRlGAMgASgJEhIKBnN0cmVldBgEIAEoCUICGAESEAoIemlwX2NvZGUYBSABKAkSDAoEY2l0eRgGIAEoCRIPCgdjb3VudHJ5GAcgASgJEjAKDGRhdGVfdXBkYXRlZBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFgoOYWRkcmVzc19saW5lXzEYCiABKAka/gUKB0xpY2Vuc2USFgoObGljZW5zZV9udW1iZXIYASABKAkSFQoNbGljZW5zZV9zdGF0ZRgCIAEoCRIYChByZXNpZGVuY3lfc3RhdHVzGAMgASgJEg4KBmFjdGl2ZRgEIAEoCBJLCgZzdGF0dXMYBSABKA4yOy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5Lk5JUFIuTGljZW5zZS5MaWNlbnNlU3RhdHVzEjMKD2V4cGlyYXRpb25fZGF0ZRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFQoNbGljZW5zZV9jbGFzcxgHIAEoCRIaChJsaWNlbnNlX2NsYXNzX2NvZGUYCCABKAUSLgoKaXNzdWVfZGF0ZRgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoLdXBkYXRlX2RhdGUYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wElkKEmxpbmVzX29mX2F1dGhvcml0eRgMIAMoCzI9LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuTklQUi5MaWNlbnNlLkxpbmVPZkF1dGhvcml0eRISCgpsaWNlbnNlX2lkGA0gASgJGl4KD0xpbmVPZkF1dGhvcml0eRILCgNsb2EYASABKAkSDgoGYWN0aXZlGAIgASgIEi4KCmlzc3VlX2RhdGUYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIoQBCg1MaWNlbnNlU3RhdHVzEh4KGkxJQ0VOU0VfU1RBVFVTX1VOU1BFQ0lGSUVEEAASGgoWTElDRU5TRV9TVEFUVVNfRVhQSVJFRBABEhgKFExJQ0VOU0VfU1RBVFVTX1ZBTElEEAISHQoZTElDRU5TRV9TVEFUVVNfTk9UX0FDVElWRRADGsMDCg5SZWd1bGF0b3J5SW5mbxJhChJyZWd1bGF0b3J5X2FjdGlvbnMYASADKAsyRS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5Lk5JUFIuUmVndWxhdG9yeUluZm8uUmVndWxhdG9yeUFjdGlvbhrNAgoQUmVndWxhdG9yeUFjdGlvbhIRCglhY3Rpb25faWQYASABKAkSEgoKc3RhdGVfY29kZRgCIAEoCRIZChFyZWFzb25fZm9yX2FjdGlvbhgDIAEoCRITCgtkaXNwb3NpdGlvbhgEIAEoCRIyCg5kYXRlX29mX2FjdGlvbhgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMgoOZWZmZWN0aXZlX2RhdGUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmVudGVyX2RhdGUYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhAKCGZpbGVfcmVmGAggASgJEh8KF3BlbmFsdHlfZmluZV9mb3JmZWl0dXJlGAkgASgJEhcKD2xlbmd0aF9vZl9vcmRlchgKIAEoCRrBAgoLQXBwb2ludG1lbnQSEQoJYnJhbmNoX2lkGAEgASgJEhQKDGNvbXBhbnlfbmFtZRgCIAEoCRIMCgRmZWluGAMgASgJEg8KB2NvX2NvZGUYBCABKAkSGQoRbGluZV9vZl9hdXRob3JpdHkYBSABKAkSEAoIbG9hX2NvZGUYBiABKAkSDgoGc3RhdHVzGAcgASgJEhoKEnRlcm1pbmF0aW9uX3JlYXNvbhgIIAEoCRI2ChJzdGF0dXNfcmVhc29uX2RhdGUYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjwKGGFwcG9pbnRtZW50X3JlbmV3YWxfZGF0ZRgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGwoTYWdlbmN5X2FmZmlsaWF0aW9ucxgLIAEoCSLBGgoIUHJvZHVjZXISCgoCaWQYASABKAkSEgoKZmlyc3RfbmFtZRgPIAEoCRITCgttaWRkbGVfbmFtZRgQIAEoCRIRCglsYXN0X25hbWUYESABKAkSDQoFZW1haWwYAyABKAkSCwoDbnBuGAQgASgJEg0KBXBob25lGAUgASgJEh8KF3BkYl9hbGVydHNfc3luY19lbmFibGVkGA0gASgIEjkKBmFnZW5jeRgHIAEoCzIpLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlci5BZ2VuY3kSNQoEbmlwchgGIAEoCzInLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlci5OSVBSEhQKDGlzX3ByaW5jaXBhbBgMIAEoCBIeChZyZXF1ZXN0ZWRfYXBwb2ludG1lbnRzGA4gAygJEjsKB2FkZHJlc3MYEiABKAsyKi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUHJvZHVjZXIuQWRkcmVzcxI1Cglsb2NhdGlvbnMYEyADKAsyIi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTG9jYXRpb24SWQoSbWV0YWRhdGFfcXVlc3Rpb25zGCggAygLMjkucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlByb2R1Y2VyLk1ldGFkYXRhUXVlc3Rpb25zRW50cnlCAhgBElMKEWV4dGVybmFsX21ldGFkYXRhGCkgAygLMjgucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlByb2R1Y2VyLkV4dGVybmFsTWV0YWRhdGFFbnRyeRJmCht0ZW5hbnRfYWRkaXRpb25hbF9xdWVzdGlvbnMYKiADKAsyQS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUHJvZHVjZXIuVGVuYW50QWRkaXRpb25hbFF1ZXN0aW9uc0VudHJ5GikKBkFnZW5jeRIRCglhZ2VuY3lfaWQYASABKAkSDAoEbmFtZRgCIAEoCRrxEQoETklQUhJBCghsaWNlbnNlcxgGIAMoCzIvLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlci5OSVBSLkxpY2Vuc2USRgoKYmlvZ3JhcGhpYxgIIAEoCzIyLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlci5OSVBSLkJpb2dyYXBoaWMSVwoPcmVndWxhdG9yeV9pbmZvGAkgASgLMj4ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlByb2R1Y2VyLk5JUFIuUHJvZHVjZXJSZWd1bGF0b3J5SW5mbxJJCgxhcHBvaW50bWVudHMYCiADKAsyMy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUHJvZHVjZXIuTklQUi5BcHBvaW50bWVudBJBChBuaXByX3N5bmNfc3RhdHVzGAsgASgOMicucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5JUFJTeW5jU3RhdGUSPwobbmlwcl9zeW5jX3N0YXR1c191cGRhdGVkX2F0GAwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBruBAoHTGljZW5zZRIWCg5saWNlbnNlX251bWJlchgBIAEoCRIVCg1saWNlbnNlX3N0YXRlGAIgASgJEhgKEHJlc2lkZW5jeV9zdGF0dXMYAyABKAkSDgoGYWN0aXZlGAQgASgIEk0KBnN0YXR1cxgFIAEoDjI9LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlci5OSVBSLkxpY2Vuc2UuTGljZW5zZVN0YXR1cxIzCg9leHBpcmF0aW9uX2RhdGUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wElsKEmxpbmVzX29mX2F1dGhvcml0eRgIIAMoCzI/LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlci5OSVBSLkxpY2Vuc2UuTGluZU9mQXV0aG9yaXR5EhIKCmxpY2Vuc2VfaWQYCSABKAkaXgoPTGluZU9mQXV0aG9yaXR5EgsKA2xvYRgBIAEoCRIOCgZhY3RpdmUYAiABKAgSLgoKaXNzdWVfZGF0ZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAihAEKDUxpY2Vuc2VTdGF0dXMSHgoaTElDRU5TRV9TVEFUVVNfVU5TUEVDSUZJRUQQABIaChZMSUNFTlNFX1NUQVRVU19FWFBJUkVEEAESGAoUTElDRU5TRV9TVEFUVVNfVkFMSUQQAhIdChlMSUNFTlNFX1NUQVRVU19OT1RfQUNUSVZFEAMatwEKCkJpb2dyYXBoaWMSEQoJbGFzdF9uYW1lGAEgASgJEhIKCmZpcnN0X25hbWUYAiABKAkSEwoLbWlkZGxlX25hbWUYAyABKAkSMQoNZGF0ZV9vZl9iaXJ0aBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDAoEZmVpbhgHIAEoCRIUCgxjb21wYW55X25hbWUYCCABKAkSFgoOc3RhdGVfZG9taWNpbGUYCSABKAkaxgUKFlByb2R1Y2VyUmVndWxhdG9yeUluZm8SgQEKG3JlZ3VsYXRvcnlfYWN0aW9uc19ieV9zdGF0ZRgBIAMoCzJcLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlci5OSVBSLlByb2R1Y2VyUmVndWxhdG9yeUluZm8uUmVndWxhdG9yeUFjdGlvbnNCeVN0YXRlRW50cnkSJAocY2xlYXJhbmNlX2NlcnRpZmljYXRpb25faW5mbxgCIAEoCRIZChFuYXNkX2V4YW1fZGV0YWlscxgDIAEoCRrTAgoQUmVndWxhdG9yeUFjdGlvbhIRCglhY3Rpb25faWQYASABKAkSGAoQb3JpZ2luX29mX2FjdGlvbhgCIAEoCRIZChFyZWFzb25fZm9yX2FjdGlvbhgDIAEoCRITCgtkaXNwb3NpdGlvbhgEIAEoCRIyCg5kYXRlX29mX2FjdGlvbhgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMgoOZWZmZWN0aXZlX2RhdGUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmVudGVyX2RhdGUYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhAKCGZpbGVfcmVmGAggASgJEh8KF3BlbmFsdHlfZmluZV9mb3JmZWl0dXJlGAkgASgJEhcKD2xlbmd0aF9vZl9vcmRlchgKIAEoCRqQAQodUmVndWxhdG9yeUFjdGlvbnNCeVN0YXRlRW50cnkSCwoDa2V5GAEgASgJEl4KBXZhbHVlGAIgASgLMk8ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlByb2R1Y2VyLk5JUFIuUHJvZHVjZXJSZWd1bGF0b3J5SW5mby5SZWd1bGF0b3J5QWN0aW9uOgI4ARrBAgoLQXBwb2ludG1lbnQSEQoJYnJhbmNoX2lkGAEgASgJEhQKDGNvbXBhbnlfbmFtZRgCIAEoCRIMCgRmZWluGAMgASgJEg8KB2NvX2NvZGUYBCABKAkSGQoRbGluZV9vZl9hdXRob3JpdHkYBSABKAkSEAoIbG9hX2NvZGUYBiABKAkSDgoGc3RhdHVzGAcgASgJEhoKEnRlcm1pbmF0aW9uX3JlYXNvbhgIIAEoCRI2ChJzdGF0dXNfcmVhc29uX2RhdGUYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjwKGGFwcG9pbnRtZW50X3JlbmV3YWxfZGF0ZRgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGwoTYWdlbmN5X2FmZmlsaWF0aW9ucxgLIAEoCRqYAQoHQWRkcmVzcxISCgZzdHJlZXQYASABKAlCAhgBEgwKBGNpdHkYAiABKAkSDQoFc3RhdGUYAyABKAkSCwoDemlwGAQgASgJEiQKDmFkZHJlc3NfbGluZV8yGA0gASgJQge6SARyAhABSACIAQESFgoOYWRkcmVzc19saW5lXzEYDiABKAlCEQoPX2FkZHJlc3NfbGluZV8yGjgKFk1ldGFkYXRhUXVlc3Rpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARo3ChVFeHRlcm5hbE1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARpACh5UZW5hbnRBZGRpdGlvbmFsUXVlc3Rpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASK6BgoLTmV3UHJvZHVjZXISGwoKZmlyc3RfbmFtZRgBIAEoCUIHukgEcgIQARIaCglsYXN0X25hbWUYAiABKAlCB7pIBHICEAESEwoLbWlkZGxlX25hbWUYByABKAkSFgoFZW1haWwYAyABKAlCB7pIBHICYAESCwoDbnBuGAQgASgJEisKBXBob25lGAUgASgJQhy6SBnYAQJyFDISXlwrP1sxLTldXGR7MSwxNH0kEkYKD21haWxpbmdfYWRkcmVzcxgGIAEoCzItLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdQcm9kdWNlci5BZGRyZXNzEh4KCXRlbmFudF9pZBgIIAEoCUILukgI2AECcgMY/wESJQoMbG9jYXRpb25faWRzGAogAygJQg+6SAySAQkQZCIFcgOwAQESXAoSbWV0YWRhdGFfcXVlc3Rpb25zGAsgAygLMjwucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld1Byb2R1Y2VyLk1ldGFkYXRhUXVlc3Rpb25zRW50cnlCAhgBEmkKG3RlbmFudF9hZGRpdGlvbmFsX3F1ZXN0aW9ucxgMIAMoCzJELnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdQcm9kdWNlci5UZW5hbnRBZGRpdGlvbmFsUXVlc3Rpb25zRW50cnkatgEKB0FkZHJlc3MSEgoGc3RyZWV0GAEgASgJQgIYARIVCgRjaXR5GAIgASgJQge6SARyAhABEhcKBXN0YXRlGAMgASgJQgi6SAVyA5gBAhIWCgN6aXAYBCABKAlCCbpIBnIEEAEYChIkCg5hZGRyZXNzX2xpbmVfMhgFIAEoCUIHukgEcgIQAUgAiAEBEhYKDmFkZHJlc3NfbGluZV8xGAYgASgJQhEKD19hZGRyZXNzX2xpbmVfMho4ChZNZXRhZGF0YVF1ZXN0aW9uc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaQAoeVGVuYW50QWRkaXRpb25hbFF1ZXN0aW9uc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiogEKEk5ld1Byb2R1Y2VyUmVxdWVzdBIbCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBEj8KCHByb2R1Y2VyGAIgASgLMiUucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld1Byb2R1Y2VyQga6SAPIAQESGwoOc3luY193aXRoX25pcHIYAyABKAhIAIgBAUIRCg9fc3luY193aXRoX25pcHIiNAoTTmV3UHJvZHVjZXJSZXNwb25zZRIdCgtwcm9kdWNlcl9pZBgBIAEoCUIIukgFcgOwAQEipgEKE05ld1Byb2R1Y2Vyc1JlcXVlc3QSGwoJYWdlbmN5X2lkGAEgASgJQgi6SAVyA7ABARJCCglwcm9kdWNlcnMYAiADKAsyJS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3UHJvZHVjZXJCCLpIBZIBAggBEhsKDnN5bmNfd2l0aF9uaXByGAMgASgISACIAQFCEQoPX3N5bmNfd2l0aF9uaXByIiwKFE5ld1Byb2R1Y2Vyc1Jlc3BvbnNlEhQKDHByb2R1Y2VyX2lkcxgBIAMoCSLOAgoKTmV3Q29udGFjdBIbCgpmaXJzdF9uYW1lGAEgASgJQge6SARyAhABEhoKCWxhc3RfbmFtZRgCIAEoCUIHukgEcgIQARITCgttaWRkbGVfbmFtZRgDIAEoCRIWCgVlbWFpbBgEIAEoCUIHukgEcgJgARIrCgVwaG9uZRgFIAEoCUIcukgZ2AECchQyEl5cKz9bMS05XVxkezEsMTR9JBIyCgdhZGRyZXNzGAYgASgLMiEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFkZHJlc3MSPwoEcm9sZRgHIAEoDjIlLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Db250YWN0Um9sZUIKukgHggEEEAEgABIeCgl0ZW5hbnRfaWQYCCABKAlCC7pICNgBAnIDGP8BEhAKA25wbhgJIAEoCUgAiAEBQgYKBF9ucG4ibwoRTmV3Q29udGFjdFJlcXVlc3QSGwoJYWdlbmN5X2lkGAEgASgJQgi6SAVyA7ABARI9Cgdjb250YWN0GAIgASgLMiQucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0NvbnRhY3RCBrpIA8gBASIyChJOZXdDb250YWN0UmVzcG9uc2USHAoKY29udGFjdF9pZBgBIAEoCUIIukgFcgOwAQEicwoSTmV3Q29udGFjdHNSZXF1ZXN0EhsKCWFnZW5jeV9pZBgBIAEoCUIIukgFcgOwAQESQAoIY29udGFjdHMYAiADKAsyJC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3Q29udGFjdEIIukgFkgECCAEiKgoTTmV3Q29udGFjdHNSZXNwb25zZRITCgtjb250YWN0X2lkcxgBIAMoCSKsAgoHQ29udGFjdBIKCgJpZBgBIAEoCRISCgpmaXJzdF9uYW1lGAIgASgJEhMKC21pZGRsZV9uYW1lGAMgASgJEhEKCWxhc3RfbmFtZRgEIAEoCRINCgVlbWFpbBgFIAEoCRINCgVwaG9uZRgGIAEoCRIQCgRyb2xlGAcgASgJQgIYARIyCgdhZGRyZXNzGAggASgLMiEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFkZHJlc3MSCwoDbnBuGAkgASgJEi4KCmNyZWF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjgKCXJvbGVfdHlwZRgLIAEoDjIlLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Db250YWN0Um9sZSI4ChlMaXN0QWdlbmN5Q29udGFjdHNSZXF1ZXN0EhsKCWFnZW5jeV9pZBgBIAEoCUIIukgFcgOwAQEiUQoaTGlzdEFnZW5jeUNvbnRhY3RzUmVzcG9uc2USMwoIY29udGFjdHMYASADKAsyIS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQ29udGFjdCKbBAoUVXBkYXRlQ29udGFjdFJlcXVlc3QSHAoKY29udGFjdF9pZBgBIAEoCUIIukgFcgOwAQESTwoHY29udGFjdBgCIAEoCzI2LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5VcGRhdGVDb250YWN0UmVxdWVzdC5Db250YWN0Qga6SAPIAQEakwMKB0NvbnRhY3QSIAoKZmlyc3RfbmFtZRgBIAEoCUIHukgEcgIQAUgAiAEBEh8KCWxhc3RfbmFtZRgCIAEoCUIHukgEcgIQAUgBiAEBEiEKC21pZGRsZV9uYW1lGAMgASgJQge6SARyAhABSAKIAQESGwoFZW1haWwYBCABKAlCB7pIBHICYAFIA4gBARIwCgVwaG9uZRgFIAEoCUIcukgZ2AECchQyEl5cKz9bMS05XVxkezEsMTR9JEgEiAEBEkQKBHJvbGUYBiABKA4yJS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQ29udGFjdFJvbGVCCrpIB4IBBBABIABIBYgBARI3CgdhZGRyZXNzGAcgASgLMiEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFkZHJlc3NIBogBAUINCgtfZmlyc3RfbmFtZUIMCgpfbGFzdF9uYW1lQg4KDF9taWRkbGVfbmFtZUIICgZfZW1haWxCCAoGX3Bob25lQgcKBV9yb2xlQgoKCF9hZGRyZXNzIhcKFVVwZGF0ZUNvbnRhY3RSZXNwb25zZSLOAQoUU2V0RXh0ZXJuYWxJRFJlcXVlc3QSHwoLcHJvZHVjZXJfaWQYASABKAlCCLpIBXIDsAEBSAASHQoJYWdlbmN5X2lkGAIgASgJQgi6SAVyA7ABAUgAEh4KCmNvbnRhY3RfaWQYAyABKAlCCLpIBXIDsAEBSAASIwoPb3JnYW5pemF0aW9uX2lkGAUgASgJQgi6SAVyA7ABAUgAEh0KCXRlbmFudF9pZBgEIAEoCUIKukgHcgUQARj/AUISCgllbnRpdHlfaWQSBbpIAggBIhcKFVNldEV4dGVybmFsSURSZXNwb25zZSJOChpWYWxpZGF0ZVByb2R1Y2VyTlBOUmVxdWVzdBIUCgNucG4YASABKAlCB7pIBHICEAESEQoEbmFtZRgCIAEoCUgAiAEBQgcKBV9uYW1lIiwKG1ZhbGlkYXRlUHJvZHVjZXJOUE5SZXNwb25zZRINCgV2YWxpZBgBIAEoCCIwChhWYWxpZGF0ZUFnZW5jeU5QTlJlcXVlc3QSFAoDbnBuGAEgASgJQge6SARyAhABIioKGVZhbGlkYXRlQWdlbmN5TlBOUmVzcG9uc2USDQoFdmFsaWQYASABKAgiMAoWTG9va3VwTlBOQnlGRUlOUmVxdWVzdBIWCgRmZWluGAEgASgJQgi6SAVyA5gBCSImChdMb29rdXBOUE5CeUZFSU5SZXNwb25zZRILCgNucG4YASABKAkiMgoTUmVzeW5jQWdlbmN5UmVxdWVzdBIbCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBIhYKFFJlc3luY0FnZW5jeVJlc3BvbnNlIjYKFVJlc3luY1Byb2R1Y2VyUmVxdWVzdBIdCgtwcm9kdWNlcl9pZBgBIAEoCUIIukgFcgOwAQEiGAoWUmVzeW5jUHJvZHVjZXJSZXNwb25zZSI8ChtTeW5jUHJvZHVjZXJXaXRoTklQUlJlcXVlc3QSHQoLcHJvZHVjZXJfaWQYASABKAlCCLpIBXIDsAEBIh4KHFN5bmNQcm9kdWNlcldpdGhOSVBSUmVzcG9uc2UiVAoZU3luY0FnZW5jeVdpdGhOSVBSUmVxdWVzdBIbCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBEhoKEnN5bmNfYWxsX3Byb2R1Y2VycxgCIAEoCCIcChpTeW5jQWdlbmN5V2l0aE5JUFJSZXNwb25zZSJACh9TdG9wU3luY1Byb2R1Y2VyV2l0aE5JUFJSZXF1ZXN0Eh0KC3Byb2R1Y2VyX2lkGAEgASgJQgi6SAVyA7ABASIiCiBTdG9wU3luY1Byb2R1Y2VyV2l0aE5JUFJSZXNwb25zZSJYCh1TdG9wU3luY0FnZW5jeVdpdGhOSVBSUmVxdWVzdBIbCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBEhoKEnN0b3BfYWxsX3Byb2R1Y2VycxgCIAEoCCIgCh5TdG9wU3luY0FnZW5jeVdpdGhOSVBSUmVzcG9uc2UigQIKDUFnZW5jeVN1bW1hcnkSEQoJYWdlbmN5X2lkGAEgASgJEgwKBG5hbWUYAiABKAkSDQoFZW1haWwYAyABKAkSDQoFcGhvbmUYBCABKAkSCwoDbnBuGAUgASgJEgwKBGZlaW4YBiABKAkSHAoPb3JnYW5pemF0aW9uX2lkGAcgASgJSACIAQESGAoQaXNfdGVuYW50X2FnZW5jeRgIIAEoCBIaChJpc19zb2xlX3Byb3ByaWV0b3IYCSABKAgSLgoKY3JlYXRlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEgoQX29yZ2FuaXphdGlvbl9pZCKcAwoTTGlzdEFnZW5jaWVzUmVxdWVzdBImCg9vcmdhbml6YXRpb25faWQYASABKAlCCLpIBXIDsAEBSACIAQESGQoMc2VhcmNoX3F1ZXJ5GAIgASgJSAGIAQESOAoKcGFnaW5hdGlvbhgDIAEoCzIkLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5QYWdpbmF0aW9uEj4KC2FnZW5jeV90eXBlGAQgASgOMiQucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeVR5cGVIAogBARI+CgtlbnRpdHlfdHlwZRgFIAEoDjIkLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5FbnRpdHlUeXBlSAOIAQESQwoSbmlwcl9zeW5jX3N0YXR1c2VzGAYgAygOMicucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5JUFJTeW5jU3RhdGVCEgoQX29yZ2FuaXphdGlvbl9pZEIPCg1fc2VhcmNoX3F1ZXJ5Qg4KDF9hZ2VuY3lfdHlwZUIOCgxfZW50aXR5X3R5cGUifwoUTGlzdEFnZW5jaWVzUmVzcG9uc2USOQoIYWdlbmNpZXMYASADKAsyJy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5U3VtbWFyeRIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkSEwoLdG90YWxfY291bnQYAyABKAUiVAoYTGlzdE9yZ2FuaXphdGlvbnNSZXF1ZXN0EjgKCnBhZ2luYXRpb24YASABKAsyJC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUGFnaW5hdGlvbiJMCgxPcmdhbml6YXRpb24SCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRITCgtleHRlcm5hbF9pZBgDIAEoCRINCgVlbWFpbBgEIAEoCSKIAQoZTGlzdE9yZ2FuaXphdGlvbnNSZXNwb25zZRI9Cg1vcmdhbml6YXRpb25zGAEgAygLMiYucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk9yZ2FuaXphdGlvbhIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkSEwoLdG90YWxfY291bnQYAyABKAUiOwoWR2V0T3JnYW5pemF0aW9uUmVxdWVzdBIhCg9vcmdhbml6YXRpb25faWQYASABKAlCCLpIBXIDsAEBIlcKF0dldE9yZ2FuaXphdGlvblJlc3BvbnNlEjwKDG9yZ2FuaXphdGlvbhgBIAEoCzImLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Pcmdhbml6YXRpb24iVgoZQ3JlYXRlT3JnYW5pemF0aW9uUmVxdWVzdBIVCgRuYW1lGAEgASgJQge6SARyAhABEhMKC2V4dGVybmFsX2lkGAIgASgJEg0KBWVtYWlsGAMgASgJIjUKGkNyZWF0ZU9yZ2FuaXphdGlvblJlc3BvbnNlEhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCSJJCh5DcmVhdGVQcm9kdWNlclVwbG9hZFVSTFJlcXVlc3QSJwoKYWdlbmN5X25wbhgBIAEoCUITukgQcg4QAhgKMgheWzAtOV0rJCIuCh9DcmVhdGVQcm9kdWNlclVwbG9hZFVSTFJlc3BvbnNlEgsKA3VybBgBIAEoCSKbAQoITG9jYXRpb24SCgoCaWQYASABKAkSFQoEbmFtZRgCIAEoCUIHukgEcgIQARI6CgdhZGRyZXNzGAMgASgLMiEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFkZHJlc3NCBrpIA8gBARINCgVwaG9uZRgEIAEoCRINCgVlbWFpbBgFIAEoCRISCgppc19wcmltYXJ5GAYgASgIIoABChlBZGRBZ2VuY3lMb2NhdGlvbnNSZXF1ZXN0EhsKCWFnZW5jeV9pZBgBIAEoCUIIukgFcgOwAQESRgoJbG9jYXRpb25zGAIgAygLMicucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkxvY2F0aW9uSW5wdXRCCrpIB5IBBAgBEGQiuAEKDUxvY2F0aW9uSW5wdXQSFQoEbmFtZRgBIAEoCUIHukgEcgIQARI6CgdhZGRyZXNzGAIgASgLMiEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFkZHJlc3NCBrpIA8gBARIoCgVwaG9uZRgDIAEoCUIZukgWchQyEl5cKz9bMS05XVxkezEsMTR9JBIWCgVlbWFpbBgEIAEoCUIHukgEcgJgARISCgppc19wcmltYXJ5GAUgASgIIjIKGkFkZEFnZW5jeUxvY2F0aW9uc1Jlc3BvbnNlEhQKDGxvY2F0aW9uX2lkcxgBIAMoCSJkChxSZW1vdmVBZ2VuY3lMb2NhdGlvbnNSZXF1ZXN0EhsKCWFnZW5jeV9pZBgBIAEoCUIIukgFcgOwAQESJwoMbG9jYXRpb25faWRzGAIgAygJQhG6SA6SAQsIARBkIgVyA7ABASI9Ch1SZW1vdmVBZ2VuY3lMb2NhdGlvbnNSZXNwb25zZRIcChRyZW1vdmVkX2xvY2F0aW9uX2lkcxgBIAMoCSI5ChpMaXN0QWdlbmN5TG9jYXRpb25zUmVxdWVzdBIbCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBIlQKG0xpc3RBZ2VuY3lMb2NhdGlvbnNSZXNwb25zZRI1Cglsb2NhdGlvbnMYASADKAsyIi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTG9jYXRpb24izgIKG1VwZGF0ZUFnZW5jeUxvY2F0aW9uUmVxdWVzdBIbCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBEh0KC2xvY2F0aW9uX2lkGAIgASgJQgi6SAVyA7ABARIaCgRuYW1lGAMgASgJQge6SARyAhABSACIAQESNwoHYWRkcmVzcxgEIAEoCzIhLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZGRyZXNzSAGIAQESMAoFcGhvbmUYBSABKAlCHLpIGdgBAnIUMhJeXCs/WzEtOV1cZHsxLDE0fSRIAogBARIbCgVlbWFpbBgGIAEoCUIHukgEcgJgAUgDiAEBEhcKCmlzX3ByaW1hcnkYByABKAhIBIgBAUIHCgVfbmFtZUIKCghfYWRkcmVzc0IICgZfcGhvbmVCCAoGX2VtYWlsQg0KC19pc19wcmltYXJ5IlQKHFVwZGF0ZUFnZW5jeUxvY2F0aW9uUmVzcG9uc2USNAoIbG9jYXRpb24YASABKAsyIi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTG9jYXRpb24iagogQXNzaWduUHJvZHVjZXJUb0xvY2F0aW9uc1JlcXVlc3QSHQoLcHJvZHVjZXJfaWQYASABKAlCCLpIBXIDsAEBEicKDGxvY2F0aW9uX2lkcxgCIAMoCUIRukgOkgELCAEQZCIFcgOwAQEiQgohQXNzaWduUHJvZHVjZXJUb0xvY2F0aW9uc1Jlc3BvbnNlEh0KFWFzc2lnbmVkX2xvY2F0aW9uX2lkcxgBIAMoCSJuCiRVbmFzc2lnblByb2R1Y2VyRnJvbUxvY2F0aW9uc1JlcXVlc3QSHQoLcHJvZHVjZXJfaWQYASABKAlCCLpIBXIDsAEBEicKDGxvY2F0aW9uX2lkcxgCIAMoCUIRukgOkgELCAEQZCIFcgOwAQEiSAolVW5hc3NpZ25Qcm9kdWNlckZyb21Mb2NhdGlvbnNSZXNwb25zZRIfChd1bmFzc2lnbmVkX2xvY2F0aW9uX2lkcxgBIAMoCSrLAQoLQ29udGFjdFJvbGUSHAoYQ09OVEFDVF9ST0xFX1VOU1BFQ0lGSUVEEAASJQohQ09OVEFDVF9ST0xFX0FHRU5DWV9BRE1JTklTVFJBVE9SEAESFgoSQ09OVEFDVF9ST0xFX09USEVSEAISFAoQQ09OVEFDVF9ST0xFX0NTUhADEiQKIENPTlRBQ1RfUk9MRV9VTkxJQ0VOU0VEX1BST0RVQ0VSEAQSIwofQ09OVEFDVF9ST0xFX1VOTElDRU5TRURfU0VSVklDRRAFKokBCgpFbnRpdHlUeXBlEhsKF0VOVElUWV9UWVBFX1VOU1BFQ0lGSUVEEAASHwobRU5USVRZX1RZUEVfU09MRV9QUk9QUklFVE9SEAESFgoSRU5USVRZX1RZUEVfQUdFTkNZEAISJQohRU5USVRZX1RZUEVfQVNLX0RVUklOR19PTkJPQVJESU5HEAMqXQoKQWdlbmN5VHlwZRIbChdBR0VOQ1lfVFlQRV9VTlNQRUNJRklFRBAAEhgKFEFHRU5DWV9UWVBFX0lOVEVSTkFMEAESGAoUQUdFTkNZX1RZUEVfRVhURVJOQUwQAiqkAQoNTklQUlN5bmNTdGF0ZRIfChtOSVBSX1NZTkNfU1RBVEVfVU5TUEVDSUZJRUQQABIaChZOSVBSX1NZTkNfU1RBVEVfQUNUSVZFEAESGwoXTklQUl9TWU5DX1NUQVRFX0ZBSUxJTkcQAhIbChdOSVBSX1NZTkNfU1RBVEVfUEVORElORxADEhwKGE5JUFJfU1lOQ19TVEFURV9ESVNBQkxFRBAEMpYjCg9Qcm9kdWNlclNlcnZpY2USlgEKGUNyZWF0ZUFnZW5jeU9uYm9hcmRpbmdVUkwSOi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQ3JlYXRlQWdlbmN5T25ib2FyZGluZ1VSTFJlcXVlc3QaOy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQ3JlYXRlQWdlbmN5T25ib2FyZGluZ1VSTFJlc3BvbnNlIgASnAEKG0NyZWF0ZVByb2R1Y2VyT25ib2FyZGluZ1VSTBI8LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5DcmVhdGVQcm9kdWNlck9uYm9hcmRpbmdVUkxSZXF1ZXN0Gj0ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkNyZWF0ZVByb2R1Y2VyT25ib2FyZGluZ1VSTFJlc3BvbnNlIgASZgoJTmV3QWdlbmN5EioucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0FnZW5jeVJlcXVlc3QaKy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3QWdlbmN5UmVzcG9uc2UiABJvCgxMaXN0QWdlbmNpZXMSLS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTGlzdEFnZW5jaWVzUmVxdWVzdBouLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5MaXN0QWdlbmNpZXNSZXNwb25zZSIAEnwKEUxpc3RPcmdhbml6YXRpb25zEjIucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkxpc3RPcmdhbml6YXRpb25zUmVxdWVzdBozLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5MaXN0T3JnYW5pemF0aW9uc1Jlc3BvbnNlEnYKD0dldE9yZ2FuaXphdGlvbhIwLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5HZXRPcmdhbml6YXRpb25SZXF1ZXN0GjEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkdldE9yZ2FuaXphdGlvblJlc3BvbnNlEn8KEkNyZWF0ZU9yZ2FuaXphdGlvbhIzLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5DcmVhdGVPcmdhbml6YXRpb25SZXF1ZXN0GjQucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkNyZWF0ZU9yZ2FuaXphdGlvblJlc3BvbnNlEmwKC05ld1Byb2R1Y2VyEiwucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld1Byb2R1Y2VyUmVxdWVzdBotLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdQcm9kdWNlclJlc3BvbnNlIgASbwoMTmV3UHJvZHVjZXJzEi0ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld1Byb2R1Y2Vyc1JlcXVlc3QaLi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3UHJvZHVjZXJzUmVzcG9uc2UiABKIAQoVR2V0QWdlbmN5QW5kUHJvZHVjZXJzEjYucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkdldEFnZW5jeUFuZFByb2R1Y2Vyc1JlcXVlc3QaNy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuR2V0QWdlbmN5QW5kUHJvZHVjZXJzUmVzcG9uc2USagoLR2V0UHJvZHVjZXISLC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuR2V0UHJvZHVjZXJSZXF1ZXN0Gi0ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkdldFByb2R1Y2VyUmVzcG9uc2UScwoOR2V0QWdlbmN5RmlsZXMSLy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuR2V0QWdlbmN5RmlsZXNSZXF1ZXN0GjAucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkdldEFnZW5jeUZpbGVzUmVzcG9uc2USdQoOVXBkYXRlUHJvZHVjZXISLy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuVXBkYXRlUHJvZHVjZXJSZXF1ZXN0GjAucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlVwZGF0ZVByb2R1Y2VyUmVzcG9uc2UiABJvCgxVcGRhdGVBZ2VuY3kSLS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuVXBkYXRlQWdlbmN5UmVxdWVzdBouLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5VcGRhdGVBZ2VuY3lSZXNwb25zZSIAEmkKCk5ld0NvbnRhY3QSKy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3Q29udGFjdFJlcXVlc3QaLC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3Q29udGFjdFJlc3BvbnNlIgASbAoLTmV3Q29udGFjdHMSLC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3Q29udGFjdHNSZXF1ZXN0Gi0ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0NvbnRhY3RzUmVzcG9uc2UiABJ/ChJMaXN0QWdlbmN5Q29udGFjdHMSMy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTGlzdEFnZW5jeUNvbnRhY3RzUmVxdWVzdBo0LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5MaXN0QWdlbmN5Q29udGFjdHNSZXNwb25zZRJyCg1VcGRhdGVDb250YWN0Ei4ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlVwZGF0ZUNvbnRhY3RSZXF1ZXN0Gi8ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlVwZGF0ZUNvbnRhY3RSZXNwb25zZSIAEnIKDVNldEV4dGVybmFsSUQSLi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuU2V0RXh0ZXJuYWxJRFJlcXVlc3QaLy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuU2V0RXh0ZXJuYWxJRFJlc3BvbnNlIgASggEKE1ZhbGlkYXRlUHJvZHVjZXJOUE4SNC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuVmFsaWRhdGVQcm9kdWNlck5QTlJlcXVlc3QaNS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuVmFsaWRhdGVQcm9kdWNlck5QTlJlc3BvbnNlEnwKEVZhbGlkYXRlQWdlbmN5TlBOEjIucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlZhbGlkYXRlQWdlbmN5TlBOUmVxdWVzdBozLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5WYWxpZGF0ZUFnZW5jeU5QTlJlc3BvbnNlEnYKD0xvb2t1cE5QTkJ5RkVJThIwLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Mb29rdXBOUE5CeUZFSU5SZXF1ZXN0GjEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkxvb2t1cE5QTkJ5RkVJTlJlc3BvbnNlEnUKDlJlc3luY1Byb2R1Y2VyEi8ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlJlc3luY1Byb2R1Y2VyUmVxdWVzdBowLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5SZXN5bmNQcm9kdWNlclJlc3BvbnNlIgASbwoMUmVzeW5jQWdlbmN5Ei0ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlJlc3luY0FnZW5jeVJlcXVlc3QaLi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUmVzeW5jQWdlbmN5UmVzcG9uc2UiABKHAQoUU3luY1Byb2R1Y2VyV2l0aE5JUFISNS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuU3luY1Byb2R1Y2VyV2l0aE5JUFJSZXF1ZXN0GjYucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlN5bmNQcm9kdWNlcldpdGhOSVBSUmVzcG9uc2UiABKBAQoSU3luY0FnZW5jeVdpdGhOSVBSEjMucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlN5bmNBZ2VuY3lXaXRoTklQUlJlcXVlc3QaNC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuU3luY0FnZW5jeVdpdGhOSVBSUmVzcG9uc2UiABKTAQoYU3RvcFN5bmNQcm9kdWNlcldpdGhOSVBSEjkucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlN0b3BTeW5jUHJvZHVjZXJXaXRoTklQUlJlcXVlc3QaOi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuU3RvcFN5bmNQcm9kdWNlcldpdGhOSVBSUmVzcG9uc2UiABKNAQoWU3RvcFN5bmNBZ2VuY3lXaXRoTklQUhI3LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5TdG9wU3luY0FnZW5jeVdpdGhOSVBSUmVxdWVzdBo4LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5TdG9wU3luY0FnZW5jeVdpdGhOSVBSUmVzcG9uc2UiABKQAQoXQ3JlYXRlUHJvZHVjZXJVcGxvYWRVUkwSOC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQ3JlYXRlUHJvZHVjZXJVcGxvYWRVUkxSZXF1ZXN0GjkucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkNyZWF0ZVByb2R1Y2VyVXBsb2FkVVJMUmVzcG9uc2UiABKBAQoSQWRkQWdlbmN5TG9jYXRpb25zEjMucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFkZEFnZW5jeUxvY2F0aW9uc1JlcXVlc3QaNC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWRkQWdlbmN5TG9jYXRpb25zUmVzcG9uc2UiABKKAQoVUmVtb3ZlQWdlbmN5TG9jYXRpb25zEjYucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlJlbW92ZUFnZW5jeUxvY2F0aW9uc1JlcXVlc3QaNy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUmVtb3ZlQWdlbmN5TG9jYXRpb25zUmVzcG9uc2UiABKCAQoTTGlzdEFnZW5jeUxvY2F0aW9ucxI0LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5MaXN0QWdlbmN5TG9jYXRpb25zUmVxdWVzdBo1LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5MaXN0QWdlbmN5TG9jYXRpb25zUmVzcG9uc2USlgEKGUFzc2lnblByb2R1Y2VyVG9Mb2NhdGlvbnMSOi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQXNzaWduUHJvZHVjZXJUb0xvY2F0aW9uc1JlcXVlc3QaOy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQXNzaWduUHJvZHVjZXJUb0xvY2F0aW9uc1Jlc3BvbnNlIgASogEKHVVuYXNzaWduUHJvZHVjZXJGcm9tTG9jYXRpb25zEj4ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlVuYXNzaWduUHJvZHVjZXJGcm9tTG9jYXRpb25zUmVxdWVzdBo/LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5VbmFzc2lnblByb2R1Y2VyRnJvbUxvY2F0aW9uc1Jlc3BvbnNlIgAShwEKFFVwZGF0ZUFnZW5jeUxvY2F0aW9uEjUucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlVwZGF0ZUFnZW5jeUxvY2F0aW9uUmVxdWVzdBo2LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5VcGRhdGVBZ2VuY3lMb2NhdGlvblJlc3BvbnNlIgBCgwIKHGNvbS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjFCDVByb2R1Y2VyUHJvdG9QAVpSZ2l0aHViLmNvbS9wcm9kdWNlcmZsb3cvcHJvZHVjZXJmbG93YXBpL2dlbi9nby9wcm9kdWNlcmZsb3cvcHJvZHVjZXIvdjE7cHJvZHVjZXJ2MaICA1BQWKoCGFByb2R1Y2VyZmxvdy5Qcm9kdWNlci5WMcoCGFByb2R1Y2VyZmxvd1xQcm9kdWNlclxWMeICJFByb2R1Y2VyZmxvd1xQcm9kdWNlclxWMVxHUEJNZXRhZGF0YeoCGlByb2R1Y2VyZmxvdzo6UHJvZHVjZXI6OlYxYgZwcm90bzM", [validate_pb_1.file_buf_validate_validate, wkt_1.file_google_protobuf_timestamp, dayofweek_pb_1.file_google_type_dayofweek, timeofday_pb_1.file_google_type_timeofday]);
18
18
  /**
19
19
  * Describes the message producerflow.producer.v1.Pagination.
20
20
  * Use `create(PaginationSchema)` to create a new message.
@@ -595,236 +595,309 @@ exports.ListAgencyContactsRequestSchema = (0, codegenv2_1.messageDesc)(exports.f
595
595
  * Use `create(ListAgencyContactsResponseSchema)` to create a new message.
596
596
  */
597
597
  exports.ListAgencyContactsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 35);
598
+ /**
599
+ * Describes the message producerflow.producer.v1.UpdateContactRequest.
600
+ * Use `create(UpdateContactRequestSchema)` to create a new message.
601
+ */
602
+ exports.UpdateContactRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 36);
603
+ /**
604
+ * Describes the message producerflow.producer.v1.UpdateContactRequest.Contact.
605
+ * Use `create(UpdateContactRequest_ContactSchema)` to create a new message.
606
+ */
607
+ exports.UpdateContactRequest_ContactSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 36, 0);
608
+ /**
609
+ * Describes the message producerflow.producer.v1.UpdateContactResponse.
610
+ * Use `create(UpdateContactResponseSchema)` to create a new message.
611
+ */
612
+ exports.UpdateContactResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 37);
598
613
  /**
599
614
  * Describes the message producerflow.producer.v1.SetExternalIDRequest.
600
615
  * Use `create(SetExternalIDRequestSchema)` to create a new message.
601
616
  */
602
- exports.SetExternalIDRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 36);
617
+ exports.SetExternalIDRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 38);
603
618
  /**
604
619
  * Describes the message producerflow.producer.v1.SetExternalIDResponse.
605
620
  * Use `create(SetExternalIDResponseSchema)` to create a new message.
606
621
  */
607
- exports.SetExternalIDResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 37);
622
+ exports.SetExternalIDResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 39);
608
623
  /**
609
624
  * Describes the message producerflow.producer.v1.ValidateProducerNPNRequest.
610
625
  * Use `create(ValidateProducerNPNRequestSchema)` to create a new message.
611
626
  */
612
- exports.ValidateProducerNPNRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 38);
627
+ exports.ValidateProducerNPNRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 40);
613
628
  /**
614
629
  * Describes the message producerflow.producer.v1.ValidateProducerNPNResponse.
615
630
  * Use `create(ValidateProducerNPNResponseSchema)` to create a new message.
616
631
  */
617
- exports.ValidateProducerNPNResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 39);
632
+ exports.ValidateProducerNPNResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 41);
618
633
  /**
619
634
  * Describes the message producerflow.producer.v1.ValidateAgencyNPNRequest.
620
635
  * Use `create(ValidateAgencyNPNRequestSchema)` to create a new message.
621
636
  */
622
- exports.ValidateAgencyNPNRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 40);
637
+ exports.ValidateAgencyNPNRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 42);
623
638
  /**
624
639
  * Describes the message producerflow.producer.v1.ValidateAgencyNPNResponse.
625
640
  * Use `create(ValidateAgencyNPNResponseSchema)` to create a new message.
626
641
  */
627
- exports.ValidateAgencyNPNResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 41);
642
+ exports.ValidateAgencyNPNResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 43);
628
643
  /**
629
644
  * Describes the message producerflow.producer.v1.LookupNPNByFEINRequest.
630
645
  * Use `create(LookupNPNByFEINRequestSchema)` to create a new message.
631
646
  */
632
- exports.LookupNPNByFEINRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 42);
647
+ exports.LookupNPNByFEINRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 44);
633
648
  /**
634
649
  * Describes the message producerflow.producer.v1.LookupNPNByFEINResponse.
635
650
  * Use `create(LookupNPNByFEINResponseSchema)` to create a new message.
636
651
  */
637
- exports.LookupNPNByFEINResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 43);
652
+ exports.LookupNPNByFEINResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 45);
638
653
  /**
639
654
  * Describes the message producerflow.producer.v1.ResyncAgencyRequest.
640
655
  * Use `create(ResyncAgencyRequestSchema)` to create a new message.
641
656
  */
642
- exports.ResyncAgencyRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 44);
657
+ exports.ResyncAgencyRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 46);
643
658
  /**
644
659
  * Describes the message producerflow.producer.v1.ResyncAgencyResponse.
645
660
  * Use `create(ResyncAgencyResponseSchema)` to create a new message.
646
661
  */
647
- exports.ResyncAgencyResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 45);
662
+ exports.ResyncAgencyResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 47);
648
663
  /**
649
664
  * Describes the message producerflow.producer.v1.ResyncProducerRequest.
650
665
  * Use `create(ResyncProducerRequestSchema)` to create a new message.
651
666
  */
652
- exports.ResyncProducerRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 46);
667
+ exports.ResyncProducerRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 48);
653
668
  /**
654
669
  * Describes the message producerflow.producer.v1.ResyncProducerResponse.
655
670
  * Use `create(ResyncProducerResponseSchema)` to create a new message.
656
671
  */
657
- exports.ResyncProducerResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 47);
672
+ exports.ResyncProducerResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 49);
658
673
  /**
659
674
  * Describes the message producerflow.producer.v1.SyncProducerWithNIPRRequest.
660
675
  * Use `create(SyncProducerWithNIPRRequestSchema)` to create a new message.
661
676
  */
662
- exports.SyncProducerWithNIPRRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 48);
677
+ exports.SyncProducerWithNIPRRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 50);
663
678
  /**
664
679
  * Describes the message producerflow.producer.v1.SyncProducerWithNIPRResponse.
665
680
  * Use `create(SyncProducerWithNIPRResponseSchema)` to create a new message.
666
681
  */
667
- exports.SyncProducerWithNIPRResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 49);
682
+ exports.SyncProducerWithNIPRResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 51);
668
683
  /**
669
684
  * Describes the message producerflow.producer.v1.SyncAgencyWithNIPRRequest.
670
685
  * Use `create(SyncAgencyWithNIPRRequestSchema)` to create a new message.
671
686
  */
672
- exports.SyncAgencyWithNIPRRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 50);
687
+ exports.SyncAgencyWithNIPRRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 52);
673
688
  /**
674
689
  * Describes the message producerflow.producer.v1.SyncAgencyWithNIPRResponse.
675
690
  * Use `create(SyncAgencyWithNIPRResponseSchema)` to create a new message.
676
691
  */
677
- exports.SyncAgencyWithNIPRResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 51);
692
+ exports.SyncAgencyWithNIPRResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 53);
678
693
  /**
679
694
  * Describes the message producerflow.producer.v1.StopSyncProducerWithNIPRRequest.
680
695
  * Use `create(StopSyncProducerWithNIPRRequestSchema)` to create a new message.
681
696
  */
682
- exports.StopSyncProducerWithNIPRRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 52);
697
+ exports.StopSyncProducerWithNIPRRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 54);
683
698
  /**
684
699
  * Describes the message producerflow.producer.v1.StopSyncProducerWithNIPRResponse.
685
700
  * Use `create(StopSyncProducerWithNIPRResponseSchema)` to create a new message.
686
701
  */
687
- exports.StopSyncProducerWithNIPRResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 53);
702
+ exports.StopSyncProducerWithNIPRResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 55);
688
703
  /**
689
704
  * Describes the message producerflow.producer.v1.StopSyncAgencyWithNIPRRequest.
690
705
  * Use `create(StopSyncAgencyWithNIPRRequestSchema)` to create a new message.
691
706
  */
692
- exports.StopSyncAgencyWithNIPRRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 54);
707
+ exports.StopSyncAgencyWithNIPRRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 56);
693
708
  /**
694
709
  * Describes the message producerflow.producer.v1.StopSyncAgencyWithNIPRResponse.
695
710
  * Use `create(StopSyncAgencyWithNIPRResponseSchema)` to create a new message.
696
711
  */
697
- exports.StopSyncAgencyWithNIPRResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 55);
712
+ exports.StopSyncAgencyWithNIPRResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 57);
698
713
  /**
699
714
  * Describes the message producerflow.producer.v1.AgencySummary.
700
715
  * Use `create(AgencySummarySchema)` to create a new message.
701
716
  */
702
- exports.AgencySummarySchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 56);
717
+ exports.AgencySummarySchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 58);
703
718
  /**
704
719
  * Describes the message producerflow.producer.v1.ListAgenciesRequest.
705
720
  * Use `create(ListAgenciesRequestSchema)` to create a new message.
706
721
  */
707
- exports.ListAgenciesRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 57);
722
+ exports.ListAgenciesRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 59);
708
723
  /**
709
724
  * Describes the message producerflow.producer.v1.ListAgenciesResponse.
710
725
  * Use `create(ListAgenciesResponseSchema)` to create a new message.
711
726
  */
712
- exports.ListAgenciesResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 58);
727
+ exports.ListAgenciesResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 60);
713
728
  /**
714
729
  * Describes the message producerflow.producer.v1.ListOrganizationsRequest.
715
730
  * Use `create(ListOrganizationsRequestSchema)` to create a new message.
716
731
  */
717
- exports.ListOrganizationsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 59);
732
+ exports.ListOrganizationsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 61);
718
733
  /**
719
734
  * Describes the message producerflow.producer.v1.Organization.
720
735
  * Use `create(OrganizationSchema)` to create a new message.
721
736
  */
722
- exports.OrganizationSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 60);
737
+ exports.OrganizationSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 62);
723
738
  /**
724
739
  * Describes the message producerflow.producer.v1.ListOrganizationsResponse.
725
740
  * Use `create(ListOrganizationsResponseSchema)` to create a new message.
726
741
  */
727
- exports.ListOrganizationsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 61);
742
+ exports.ListOrganizationsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 63);
728
743
  /**
729
744
  * Describes the message producerflow.producer.v1.GetOrganizationRequest.
730
745
  * Use `create(GetOrganizationRequestSchema)` to create a new message.
731
746
  */
732
- exports.GetOrganizationRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 62);
747
+ exports.GetOrganizationRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 64);
733
748
  /**
734
749
  * Describes the message producerflow.producer.v1.GetOrganizationResponse.
735
750
  * Use `create(GetOrganizationResponseSchema)` to create a new message.
736
751
  */
737
- exports.GetOrganizationResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 63);
752
+ exports.GetOrganizationResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 65);
738
753
  /**
739
754
  * Describes the message producerflow.producer.v1.CreateOrganizationRequest.
740
755
  * Use `create(CreateOrganizationRequestSchema)` to create a new message.
741
756
  */
742
- exports.CreateOrganizationRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 64);
757
+ exports.CreateOrganizationRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 66);
743
758
  /**
744
759
  * Describes the message producerflow.producer.v1.CreateOrganizationResponse.
745
760
  * Use `create(CreateOrganizationResponseSchema)` to create a new message.
746
761
  */
747
- exports.CreateOrganizationResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 65);
762
+ exports.CreateOrganizationResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 67);
748
763
  /**
749
764
  * Describes the message producerflow.producer.v1.CreateProducerUploadURLRequest.
750
765
  * Use `create(CreateProducerUploadURLRequestSchema)` to create a new message.
751
766
  */
752
- exports.CreateProducerUploadURLRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 66);
767
+ exports.CreateProducerUploadURLRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 68);
753
768
  /**
754
769
  * Describes the message producerflow.producer.v1.CreateProducerUploadURLResponse.
755
770
  * Use `create(CreateProducerUploadURLResponseSchema)` to create a new message.
756
771
  */
757
- exports.CreateProducerUploadURLResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 67);
772
+ exports.CreateProducerUploadURLResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 69);
758
773
  /**
759
774
  * Describes the message producerflow.producer.v1.Location.
760
775
  * Use `create(LocationSchema)` to create a new message.
761
776
  */
762
- exports.LocationSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 68);
777
+ exports.LocationSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 70);
763
778
  /**
764
779
  * Describes the message producerflow.producer.v1.AddAgencyLocationsRequest.
765
780
  * Use `create(AddAgencyLocationsRequestSchema)` to create a new message.
766
781
  */
767
- exports.AddAgencyLocationsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 69);
782
+ exports.AddAgencyLocationsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 71);
768
783
  /**
769
784
  * Describes the message producerflow.producer.v1.LocationInput.
770
785
  * Use `create(LocationInputSchema)` to create a new message.
771
786
  */
772
- exports.LocationInputSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 70);
787
+ exports.LocationInputSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 72);
773
788
  /**
774
789
  * Describes the message producerflow.producer.v1.AddAgencyLocationsResponse.
775
790
  * Use `create(AddAgencyLocationsResponseSchema)` to create a new message.
776
791
  */
777
- exports.AddAgencyLocationsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 71);
792
+ exports.AddAgencyLocationsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 73);
778
793
  /**
779
794
  * Describes the message producerflow.producer.v1.RemoveAgencyLocationsRequest.
780
795
  * Use `create(RemoveAgencyLocationsRequestSchema)` to create a new message.
781
796
  */
782
- exports.RemoveAgencyLocationsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 72);
797
+ exports.RemoveAgencyLocationsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 74);
783
798
  /**
784
799
  * Describes the message producerflow.producer.v1.RemoveAgencyLocationsResponse.
785
800
  * Use `create(RemoveAgencyLocationsResponseSchema)` to create a new message.
786
801
  */
787
- exports.RemoveAgencyLocationsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 73);
802
+ exports.RemoveAgencyLocationsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 75);
788
803
  /**
789
804
  * Describes the message producerflow.producer.v1.ListAgencyLocationsRequest.
790
805
  * Use `create(ListAgencyLocationsRequestSchema)` to create a new message.
791
806
  */
792
- exports.ListAgencyLocationsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 74);
807
+ exports.ListAgencyLocationsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 76);
793
808
  /**
794
809
  * Describes the message producerflow.producer.v1.ListAgencyLocationsResponse.
795
810
  * Use `create(ListAgencyLocationsResponseSchema)` to create a new message.
796
811
  */
797
- exports.ListAgencyLocationsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 75);
812
+ exports.ListAgencyLocationsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 77);
798
813
  /**
799
814
  * Describes the message producerflow.producer.v1.UpdateAgencyLocationRequest.
800
815
  * Use `create(UpdateAgencyLocationRequestSchema)` to create a new message.
801
816
  */
802
- exports.UpdateAgencyLocationRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 76);
817
+ exports.UpdateAgencyLocationRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 78);
803
818
  /**
804
819
  * Describes the message producerflow.producer.v1.UpdateAgencyLocationResponse.
805
820
  * Use `create(UpdateAgencyLocationResponseSchema)` to create a new message.
806
821
  */
807
- exports.UpdateAgencyLocationResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 77);
822
+ exports.UpdateAgencyLocationResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 79);
808
823
  /**
809
824
  * Describes the message producerflow.producer.v1.AssignProducerToLocationsRequest.
810
825
  * Use `create(AssignProducerToLocationsRequestSchema)` to create a new message.
811
826
  */
812
- exports.AssignProducerToLocationsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 78);
827
+ exports.AssignProducerToLocationsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 80);
813
828
  /**
814
829
  * Describes the message producerflow.producer.v1.AssignProducerToLocationsResponse.
815
830
  * Use `create(AssignProducerToLocationsResponseSchema)` to create a new message.
816
831
  */
817
- exports.AssignProducerToLocationsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 79);
832
+ exports.AssignProducerToLocationsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 81);
818
833
  /**
819
834
  * Describes the message producerflow.producer.v1.UnassignProducerFromLocationsRequest.
820
835
  * Use `create(UnassignProducerFromLocationsRequestSchema)` to create a new message.
821
836
  */
822
- exports.UnassignProducerFromLocationsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 80);
837
+ exports.UnassignProducerFromLocationsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 82);
823
838
  /**
824
839
  * Describes the message producerflow.producer.v1.UnassignProducerFromLocationsResponse.
825
840
  * Use `create(UnassignProducerFromLocationsResponseSchema)` to create a new message.
826
841
  */
827
- exports.UnassignProducerFromLocationsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 81);
842
+ exports.UnassignProducerFromLocationsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 83);
843
+ /**
844
+ * ContactRole defines the role or position of a contact within an agency.
845
+ *
846
+ * Contacts represent non-producer personnel associated with an agency.
847
+ * These roles help categorize and organize contacts based on their
848
+ * responsibilities and access levels.
849
+ *
850
+ * @generated from enum producerflow.producer.v1.ContactRole
851
+ */
852
+ var ContactRole;
853
+ (function (ContactRole) {
854
+ /**
855
+ * Default unspecified value. Do not use.
856
+ * This value is invalid and will be rejected by the API.
857
+ *
858
+ * @generated from enum value: CONTACT_ROLE_UNSPECIFIED = 0;
859
+ */
860
+ ContactRole[ContactRole["UNSPECIFIED"] = 0] = "UNSPECIFIED";
861
+ /**
862
+ * Agency Administrator: A contact with administrative responsibilities.
863
+ * Typically has elevated permissions and manages agency operations.
864
+ *
865
+ * @generated from enum value: CONTACT_ROLE_AGENCY_ADMINISTRATOR = 1;
866
+ */
867
+ ContactRole[ContactRole["AGENCY_ADMINISTRATOR"] = 1] = "AGENCY_ADMINISTRATOR";
868
+ /**
869
+ * Other: A contact role that doesn't fit into predefined categories.
870
+ * Use this for flexible role assignment.
871
+ *
872
+ * @generated from enum value: CONTACT_ROLE_OTHER = 2;
873
+ */
874
+ ContactRole[ContactRole["OTHER"] = 2] = "OTHER";
875
+ /**
876
+ * Customer Service Representative (CSR): A contact who handles customer inquiries
877
+ * and support. Does not hold an insurance producer license.
878
+ *
879
+ * @generated from enum value: CONTACT_ROLE_CSR = 3;
880
+ */
881
+ ContactRole[ContactRole["CSR"] = 3] = "CSR";
882
+ /**
883
+ * Unlicensed Producer: An individual working in a producer-like capacity
884
+ * but who does not hold an active insurance producer license.
885
+ *
886
+ * @generated from enum value: CONTACT_ROLE_UNLICENSED_PRODUCER = 4;
887
+ */
888
+ ContactRole[ContactRole["UNLICENSED_PRODUCER"] = 4] = "UNLICENSED_PRODUCER";
889
+ /**
890
+ * Unlicensed Service: A contact providing services to the agency
891
+ * without requiring an insurance license.
892
+ *
893
+ * @generated from enum value: CONTACT_ROLE_UNLICENSED_SERVICE = 5;
894
+ */
895
+ ContactRole[ContactRole["UNLICENSED_SERVICE"] = 5] = "UNLICENSED_SERVICE";
896
+ })(ContactRole || (exports.ContactRole = ContactRole = {}));
897
+ /**
898
+ * Describes the enum producerflow.producer.v1.ContactRole.
899
+ */
900
+ exports.ContactRoleSchema = (0, codegenv2_1.enumDesc)(exports.file_producerflow_producer_v1_producer, 0);
828
901
  /**
829
902
  * EntityType defines the business structure of an agency.
830
903
  *
@@ -887,7 +960,7 @@ var EntityType;
887
960
  /**
888
961
  * Describes the enum producerflow.producer.v1.EntityType.
889
962
  */
890
- exports.EntityTypeSchema = (0, codegenv2_1.enumDesc)(exports.file_producerflow_producer_v1_producer, 0);
963
+ exports.EntityTypeSchema = (0, codegenv2_1.enumDesc)(exports.file_producerflow_producer_v1_producer, 1);
891
964
  /**
892
965
  * AgencyType defines whether an agency is internal (tenant agency) or external.
893
966
  *
@@ -917,7 +990,7 @@ var AgencyType;
917
990
  /**
918
991
  * Describes the enum producerflow.producer.v1.AgencyType.
919
992
  */
920
- exports.AgencyTypeSchema = (0, codegenv2_1.enumDesc)(exports.file_producerflow_producer_v1_producer, 1);
993
+ exports.AgencyTypeSchema = (0, codegenv2_1.enumDesc)(exports.file_producerflow_producer_v1_producer, 2);
921
994
  /**
922
995
  * NIPRSyncState defines the synchronization state with the NIPR system.
923
996
  *
@@ -959,7 +1032,7 @@ var NIPRSyncState;
959
1032
  /**
960
1033
  * Describes the enum producerflow.producer.v1.NIPRSyncState.
961
1034
  */
962
- exports.NIPRSyncStateSchema = (0, codegenv2_1.enumDesc)(exports.file_producerflow_producer_v1_producer, 2);
1035
+ exports.NIPRSyncStateSchema = (0, codegenv2_1.enumDesc)(exports.file_producerflow_producer_v1_producer, 3);
963
1036
  /**
964
1037
  * ProducerService provides a comprehensive API for managing insurance
965
1038
  * producers and agencies. This service simplifies producer and agency
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@producerflow/producerflowapi",
3
3
  "author": "Producerflow",
4
- "version": "1.0.5",
4
+ "version": "1.0.8",
5
5
  "description": "Generated TypeScript types for ProducerFlow API",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",