@vtex/faststore 0.0.6 → 0.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.
- package/CHANGELOG.md +99 -0
- package/dist/actions.json +152 -1
- package/dist/catalog.json +2541 -1278
- package/dist/cli/UnreachableCaseError-Crd168Vu.js +10 -0
- package/dist/cli/UnreachableCaseError-Crd168Vu.js.map +1 -0
- package/dist/cli/cacheControl-CEojH_TM.js +158 -0
- package/dist/cli/cacheControl-CEojH_TM.js.map +1 -0
- package/dist/cli/cachePolicy-m2vASMRW.js +26 -0
- package/dist/cli/cachePolicy-m2vASMRW.js.map +1 -0
- package/dist/cli/computeCoreSchemaHash-DPJZj-qJ.js +10 -0
- package/dist/cli/computeCoreSchemaHash-DPJZj-qJ.js.map +1 -0
- package/dist/cli/default-BCQHcwbL.js +253 -0
- package/dist/cli/default-BCQHcwbL.js.map +1 -0
- package/dist/cli/disableSuggestions-yO9UqiWn.js +21 -0
- package/dist/cli/disableSuggestions-yO9UqiWn.js.map +1 -0
- package/dist/cli/dist-C1JhdHfo.js +2001 -0
- package/dist/cli/dist-C1JhdHfo.js.map +1 -0
- package/dist/cli/graphql-DG9thCDG.js +14589 -0
- package/dist/cli/graphql-DG9thCDG.js.map +1 -0
- package/dist/cli/index.d.ts +799 -0
- package/dist/cli/index.js +36459 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/index.min-BsIHDfFK.js +613 -0
- package/dist/cli/index.min-BsIHDfFK.js.map +1 -0
- package/dist/cli/inlineTrace-uLgOJ3TH.js +52 -0
- package/dist/cli/inlineTrace-uLgOJ3TH.js.map +1 -0
- package/dist/cli/internalPlugin-DnuwN4_4.js +11 -0
- package/dist/cli/internalPlugin-DnuwN4_4.js.map +1 -0
- package/dist/cli/packageVersion-DQAnIEil.js +6 -0
- package/dist/cli/packageVersion-DQAnIEil.js.map +1 -0
- package/dist/cli/rolldown-runtime-BMI-E3GI.js +44 -0
- package/dist/cli/schemaIsSubgraph-DoGh3OYj.js +17 -0
- package/dist/cli/schemaIsSubgraph-DoGh3OYj.js.map +1 -0
- package/dist/cli/schemaReporting-K-me-3-v.js +199 -0
- package/dist/cli/schemaReporting-K-me-3-v.js.map +1 -0
- package/dist/cli/server-runtime.js +49879 -0
- package/dist/cli/server-runtime.js.map +1 -0
- package/dist/cli/traceTreeBuilder-BIcV2U7b.js +9118 -0
- package/dist/cli/traceTreeBuilder-BIcV2U7b.js.map +1 -0
- package/dist/cli/usageReporting-Bpl8vSZX.js +10201 -0
- package/dist/cli/usageReporting-Bpl8vSZX.js.map +1 -0
- package/dist/cli/v4-CBhFvC49.js +42 -0
- package/dist/cli/v4-CBhFvC49.js.map +1 -0
- package/dist/client.d.ts +5 -1
- package/dist/client.js +5 -1
- package/dist/components.d.ts +38 -9
- package/dist/components.js +42 -13
- package/dist/content-types.json +616 -0
- package/dist/core/dist/define-component.d.ts +43 -1
- package/dist/core/dist/index.d.ts +2 -2
- package/dist/docs/account-access-gate.md +4 -4
- package/dist/docs/account-address-book.md +519 -0
- package/dist/docs/account-entry-point.md +1 -1
- package/dist/docs/account-menu-identity.md +160 -0
- package/dist/docs/account-menu.md +107 -24
- package/dist/docs/alert-dialog.md +2 -2
- package/dist/docs/avatar.md +103 -0
- package/dist/docs/billing-address.md +17 -9
- package/dist/docs/card-entry.md +37 -6
- package/dist/docs/cardholder-document.md +16 -14
- package/dist/docs/cart-item.md +1 -1
- package/dist/docs/cart.md +8 -8
- package/dist/docs/client-profile-fieldset.md +7 -5
- package/dist/docs/copy-text.md +84 -0
- package/dist/docs/document-field.md +8 -8
- package/dist/docs/footer-link-group.md +2 -2
- package/dist/docs/header-root.md +1 -1
- package/dist/docs/incentives.md +2 -2
- package/dist/docs/logo.md +5 -5
- package/dist/docs/my-account-profile.md +5 -5
- package/dist/docs/navigation-link-list.md +2 -2
- package/dist/docs/navigation-link.md +3 -3
- package/dist/docs/order-cancel.md +52 -0
- package/dist/docs/order-delivery-address.md +63 -0
- package/dist/docs/order-delivery-group.md +83 -0
- package/dist/docs/order-details-back.md +41 -0
- package/dist/docs/order-details-header.md +48 -0
- package/dist/docs/order-list-row.md +46 -0
- package/dist/docs/order-list-search.md +101 -0
- package/dist/docs/order-list-views.md +97 -0
- package/dist/docs/order-list.md +94 -0
- package/dist/docs/order-payment.md +94 -0
- package/dist/docs/order-placed-date.md +49 -0
- package/dist/docs/order-placed-payment-summary.md +13 -15
- package/dist/docs/order-placed.md +225 -0
- package/dist/docs/order-progress.md +88 -0
- package/dist/docs/order-status-badge.md +91 -0
- package/dist/docs/order-summary.md +53 -0
- package/dist/docs/payment-method-badges.md +14 -3
- package/dist/docs/place-order.md +13 -9
- package/dist/docs/product-shelf.md +20 -13
- package/dist/docs/saved-cards.md +2 -2
- package/dist/docs/select.md +19 -6
- package/dist/docs/session.md +1 -1
- package/dist/docs/shipping-address.md +1 -1
- package/dist/docs/sign-in-redirect.md +6 -6
- package/dist/docs/toast.md +7 -3
- package/dist/index.d.ts +7 -3
- package/dist/index.js +2 -1
- package/dist/internal/client.d.ts +6 -1
- package/dist/internal/client.js +8 -3
- package/dist/internal/content.d.ts +2 -2
- package/dist/internal/server.d.ts +8 -1
- package/dist/internal/server.js +8 -1
- package/dist/matter/account-access-gate/account-access-gate.d.ts +2 -1
- package/dist/matter/account-access-gate/account-access-gate.js +19 -16
- package/dist/matter/account-access-gate/account-access-gate.js.map +1 -1
- package/dist/matter/account-address-book/account-address-book-delete.d.ts +60 -0
- package/dist/matter/account-address-book/account-address-book-delete.js +184 -0
- package/dist/matter/account-address-book/account-address-book-delete.js.map +1 -0
- package/dist/matter/account-address-book/account-address-book-deliverability.d.ts +19 -0
- package/dist/matter/account-address-book/account-address-book-deliverability.js +50 -0
- package/dist/matter/account-address-book/account-address-book-deliverability.js.map +1 -0
- package/dist/matter/account-address-book/account-address-book-form-parts.d.ts +42 -0
- package/dist/matter/account-address-book/account-address-book-form-parts.js +146 -0
- package/dist/matter/account-address-book/account-address-book-form-parts.js.map +1 -0
- package/dist/matter/account-address-book/account-address-book-profile-notice.d.ts +25 -0
- package/dist/matter/account-address-book/account-address-book-profile-notice.js +72 -0
- package/dist/matter/account-address-book/account-address-book-profile-notice.js.map +1 -0
- package/dist/matter/account-address-book/account-address-book.d.ts +120 -0
- package/dist/matter/account-address-book/account-address-book.js +469 -0
- package/dist/matter/account-address-book/account-address-book.js.map +1 -0
- package/dist/matter/account-address-book/account-address-country-switch.js +59 -0
- package/dist/matter/account-address-book/account-address-country-switch.js.map +1 -0
- package/dist/matter/account-address-book/account-address-country.d.ts +36 -0
- package/dist/matter/account-address-book/account-address-country.js +151 -0
- package/dist/matter/account-address-book/account-address-country.js.map +1 -0
- package/dist/matter/account-address-book/account-address-first-line.js +11 -0
- package/dist/matter/account-address-book/account-address-first-line.js.map +1 -0
- package/dist/matter/account-address-book/account-address-form-context.d.ts +55 -0
- package/dist/matter/account-address-book/account-address-form-context.js +14 -0
- package/dist/matter/account-address-book/account-address-form-context.js.map +1 -0
- package/dist/matter/account-address-book/account-address-form.d.ts +85 -0
- package/dist/matter/account-address-book/account-address-form.js +946 -0
- package/dist/matter/account-address-book/account-address-form.js.map +1 -0
- package/dist/matter/account-address-book/account-address-postal-autofill.js +189 -0
- package/dist/matter/account-address-book/account-address-postal-autofill.js.map +1 -0
- package/dist/matter/account-address-book/account-address-record.d.ts +26 -0
- package/dist/matter/account-address-book/account-address-record.js +138 -0
- package/dist/matter/account-address-book/account-address-record.js.map +1 -0
- package/dist/matter/account-entry-point/account-entry-point.js +11 -11
- package/dist/matter/account-entry-point/account-entry-point.js.map +1 -1
- package/dist/matter/account-menu/account-menu.d.ts +77 -3
- package/dist/matter/account-menu/account-menu.js +252 -19
- package/dist/matter/account-menu/account-menu.js.map +1 -1
- package/dist/matter/account-menu/sign-out-failure.js +50 -0
- package/dist/matter/account-menu/sign-out-failure.js.map +1 -0
- package/dist/matter/account-menu-identity/account-menu-identity.d.ts +21 -0
- package/dist/matter/account-menu-identity/account-menu-identity.js +88 -0
- package/dist/matter/account-menu-identity/account-menu-identity.js.map +1 -0
- package/dist/matter/billing-address/billing-address.d.ts +30 -17
- package/dist/matter/billing-address/billing-address.js +128 -33
- package/dist/matter/billing-address/billing-address.js.map +1 -1
- package/dist/matter/breadcrumb/breadcrumb.js +2 -2
- package/dist/matter/breadcrumb/breadcrumb.js.map +1 -1
- package/dist/matter/card-entry/card-capture.js +4 -3
- package/dist/matter/card-entry/card-capture.js.map +1 -1
- package/dist/matter/card-entry/card-entry.d.ts +5 -3
- package/dist/matter/card-entry/card-entry.js +78 -27
- package/dist/matter/card-entry/card-entry.js.map +1 -1
- package/dist/matter/cardholder-document/cardholder-document.d.ts +10 -9
- package/dist/matter/cardholder-document/cardholder-document.js +36 -16
- package/dist/matter/cardholder-document/cardholder-document.js.map +1 -1
- package/dist/matter/cart/cart.d.ts +7 -2
- package/dist/matter/cart/cart.js +29 -26
- package/dist/matter/cart/cart.js.map +1 -1
- package/dist/matter/cart-item/cart-item.js +2 -2
- package/dist/matter/cart-item/cart-item.js.map +1 -1
- package/dist/matter/client-preferences/client-preferences-fieldset.js +2 -2
- package/dist/matter/client-profile-form/client-profile-fieldset.js +9 -6
- package/dist/matter/client-profile-form/client-profile-fieldset.js.map +1 -1
- package/dist/matter/identity-edit/identity-edit.js +3 -3
- package/dist/matter/identity-edit/identity-edit.js.map +1 -1
- package/dist/matter/identity-summary/identity-summary.js +4 -3
- package/dist/matter/identity-summary/identity-summary.js.map +1 -1
- package/dist/matter/my-account-profile/my-account-profile.d.ts +6 -3
- package/dist/matter/my-account-profile/my-account-profile.js +6 -5
- package/dist/matter/my-account-profile/my-account-profile.js.map +1 -1
- package/dist/matter/order-cancel/order-cancel.d.ts +110 -0
- package/dist/matter/order-cancel/order-cancel.js +344 -0
- package/dist/matter/order-cancel/order-cancel.js.map +1 -0
- package/dist/matter/order-delivery-address/order-delivery-address.d.ts +73 -0
- package/dist/matter/order-delivery-address/order-delivery-address.js +172 -0
- package/dist/matter/order-delivery-address/order-delivery-address.js.map +1 -0
- package/dist/matter/order-delivery-group/order-delivery-group.d.ts +128 -0
- package/dist/matter/order-delivery-group/order-delivery-group.js +408 -0
- package/dist/matter/order-delivery-group/order-delivery-group.js.map +1 -0
- package/dist/matter/order-details-header/order-details-header.d.ts +104 -0
- package/dist/matter/order-details-header/order-details-header.js +190 -0
- package/dist/matter/order-details-header/order-details-header.js.map +1 -0
- package/dist/matter/order-list/customer-orders-filter.d.ts +12 -0
- package/dist/matter/order-list/customer-orders-filter.js +30 -0
- package/dist/matter/order-list/customer-orders-filter.js.map +1 -0
- package/dist/matter/order-list/order-list.d.ts +121 -0
- package/dist/matter/order-list/order-list.js +395 -0
- package/dist/matter/order-list/order-list.js.map +1 -0
- package/dist/matter/order-list-row/order-list-row.d.ts +44 -0
- package/dist/matter/order-list-row/order-list-row.js +127 -0
- package/dist/matter/order-list-row/order-list-row.js.map +1 -0
- package/dist/matter/order-list-search/order-list-search.d.ts +72 -0
- package/dist/matter/order-list-search/order-list-search.js +296 -0
- package/dist/matter/order-list-search/order-list-search.js.map +1 -0
- package/dist/matter/order-list-views/order-list-views.d.ts +65 -0
- package/dist/matter/order-list-views/order-list-views.js +154 -0
- package/dist/matter/order-list-views/order-list-views.js.map +1 -0
- package/dist/matter/order-payment/order-payment.d.ts +83 -0
- package/dist/matter/order-payment/order-payment.js +258 -0
- package/dist/matter/order-payment/order-payment.js.map +1 -0
- package/dist/matter/order-placed/order-placed-deliveries.d.ts +145 -0
- package/dist/matter/order-placed/order-placed-deliveries.js +380 -0
- package/dist/matter/order-placed/order-placed-deliveries.js.map +1 -0
- package/dist/matter/order-placed/order-placed.d.ts +122 -0
- package/dist/matter/order-placed/order-placed.js +452 -0
- package/dist/matter/order-placed/order-placed.js.map +1 -0
- package/dist/matter/order-placed-date/order-placed-date.d.ts +45 -0
- package/dist/matter/order-placed-date/order-placed-date.js +92 -0
- package/dist/matter/order-placed-date/order-placed-date.js.map +1 -0
- package/dist/matter/order-placed-payment-summary/order-placed-payment-summary.d.ts +5 -8
- package/dist/matter/order-placed-payment-summary/order-placed-payment-summary.js +29 -81
- package/dist/matter/order-placed-payment-summary/order-placed-payment-summary.js.map +1 -1
- package/dist/matter/order-progress/order-progress.d.ts +85 -0
- package/dist/matter/order-progress/order-progress.js +203 -0
- package/dist/matter/order-progress/order-progress.js.map +1 -0
- package/dist/matter/order-summary/order-summary.d.ts +81 -0
- package/dist/matter/order-summary/order-summary.js +192 -0
- package/dist/matter/order-summary/order-summary.js.map +1 -0
- package/dist/matter/payment/cardholder-document-rule.d.ts +35 -0
- package/dist/matter/payment/cardholder-document-rule.js +35 -0
- package/dist/matter/payment/cardholder-document-rule.js.map +1 -0
- package/dist/matter/payment/payment-card-capture.js +38 -23
- package/dist/matter/payment/payment-card-capture.js.map +1 -1
- package/dist/matter/payment/payment-controller.js +12 -0
- package/dist/matter/payment/payment-controller.js.map +1 -1
- package/dist/matter/payment/payment-method-badges.js +4 -2
- package/dist/matter/payment/payment-method-badges.js.map +1 -1
- package/dist/matter/payment/payment.js +12 -0
- package/dist/matter/payment/payment.js.map +1 -1
- package/dist/matter/payment/use-payment-method-selection.d.ts +39 -0
- package/dist/matter/payment/use-payment-method-selection.js +30 -2
- package/dist/matter/payment/use-payment-method-selection.js.map +1 -1
- package/dist/matter/payment/use-payment-submit-gate.d.ts +16 -2
- package/dist/matter/payment/use-payment-submit-gate.js +42 -14
- package/dist/matter/payment/use-payment-submit-gate.js.map +1 -1
- package/dist/matter/place-order/place-order.d.ts +12 -7
- package/dist/matter/place-order/place-order.js +126 -103
- package/dist/matter/place-order/place-order.js.map +1 -1
- package/dist/matter/pricing/pricing.js +5 -5
- package/dist/matter/pricing/pricing.js.map +1 -1
- package/dist/matter/product-shelf/product-shelf.d.ts +61 -31
- package/dist/matter/product-shelf/product-shelf.js +157 -57
- package/dist/matter/product-shelf/product-shelf.js.map +1 -1
- package/dist/matter/region/region.js +1 -1
- package/dist/matter/saved-cards/saved-cards.js +27 -15
- package/dist/matter/saved-cards/saved-cards.js.map +1 -1
- package/dist/matter/session/session.js +2 -2
- package/dist/matter/session/session.js.map +1 -1
- package/dist/matter/shipping-address/country-descriptors.d.ts +1 -0
- package/dist/matter/shipping-address/country-descriptors.js +23 -1
- package/dist/matter/shipping-address/country-descriptors.js.map +1 -1
- package/dist/matter/shipping-address/shipping-address.js +63 -15
- package/dist/matter/shipping-address/shipping-address.js.map +1 -1
- package/dist/matter/shipping-simulator/shipping-simulator.d.ts +1 -1
- package/dist/matter/shipping-simulator/shipping-simulator.js.map +1 -1
- package/dist/matter/sign-in-redirect/sign-in-redirect.js +48 -10
- package/dist/matter/sign-in-redirect/sign-in-redirect.js.map +1 -1
- package/dist/matter/variant-selector/variant-selector.js +2 -2
- package/dist/matter/variant-selector/variant-selector.js.map +1 -1
- package/dist/particles/address-summary/address-summary.js +2 -2
- package/dist/particles/address-summary/address-summary.js.map +1 -1
- package/dist/particles/alert-dialog/alert-dialog.d.ts +5 -1
- package/dist/particles/alert-dialog/alert-dialog.js +5 -2
- package/dist/particles/alert-dialog/alert-dialog.js.map +1 -1
- package/dist/particles/avatar/avatar.d.ts +17 -0
- package/dist/particles/avatar/avatar.js +65 -0
- package/dist/particles/avatar/avatar.js.map +1 -0
- package/dist/particles/copy-text/copy-text.d.ts +28 -0
- package/dist/particles/copy-text/copy-text.js +140 -0
- package/dist/particles/copy-text/copy-text.js.map +1 -0
- package/dist/particles/document-field/document-field.d.ts +34 -5
- package/dist/particles/document-field/document-field.js +115 -19
- package/dist/particles/document-field/document-field.js.map +1 -1
- package/dist/particles/field/field.js +1 -1
- package/dist/particles/field/field.js.map +1 -1
- package/dist/particles/footer-link-group/footer-link-group.d.ts +6 -2
- package/dist/particles/footer-link-group/footer-link-group.js +18 -7
- package/dist/particles/footer-link-group/footer-link-group.js.map +1 -1
- package/dist/particles/incentives/incentives.d.ts +6 -2
- package/dist/particles/incentives/incentives.js +7 -2
- package/dist/particles/incentives/incentives.js.map +1 -1
- package/dist/particles/logo/logo.d.ts +3 -2
- package/dist/particles/logo/logo.js +20 -8
- package/dist/particles/logo/logo.js.map +1 -1
- package/dist/particles/navigation-link/navigation-link.d.ts +2 -3
- package/dist/particles/navigation-link/navigation-link.js +4 -4
- package/dist/particles/navigation-link/navigation-link.js.map +1 -1
- package/dist/particles/navigation-link-list/navigation-link-list.d.ts +6 -2
- package/dist/particles/navigation-link-list/navigation-link-list.js +18 -7
- package/dist/particles/navigation-link-list/navigation-link-list.js.map +1 -1
- package/dist/particles/order-details-back/order-details-back.d.ts +28 -0
- package/dist/particles/order-details-back/order-details-back.js +52 -0
- package/dist/particles/order-details-back/order-details-back.js.map +1 -0
- package/dist/particles/order-status-badge/order-status-badge.d.ts +19 -0
- package/dist/particles/order-status-badge/order-status-badge.js +50 -0
- package/dist/particles/order-status-badge/order-status-badge.js.map +1 -0
- package/dist/particles/phone-field/phone-field.js +2 -2
- package/dist/particles/phone-field/phone-field.js.map +1 -1
- package/dist/particles/select/select.js +6 -6
- package/dist/particles/select/select.js.map +1 -1
- package/dist/particles/toast/toast.d.ts +1 -1
- package/dist/particles/toast/toast.js +32 -6
- package/dist/particles/toast/toast.js.map +1 -1
- package/dist/schema.graphql +1079 -54
- package/dist/sdk/actions/address-action-provider.d.ts +16 -0
- package/dist/sdk/actions/address-action-provider.js +20 -0
- package/dist/sdk/actions/address-action-provider.js.map +1 -0
- package/dist/sdk/actions/analytics-action-provider.js +1 -1
- package/dist/sdk/actions/index.d.ts +3 -1
- package/dist/sdk/actions/index.js +3 -1
- package/dist/sdk/actions/order-action-provider.d.ts +12 -0
- package/dist/sdk/actions/order-action-provider.js +16 -0
- package/dist/sdk/actions/order-action-provider.js.map +1 -0
- package/dist/sdk/actions/types.d.ts +6 -2
- package/dist/sdk/address/address-fields.js +38 -0
- package/dist/sdk/address/address-fields.js.map +1 -0
- package/dist/sdk/address/checkout-readiness.js +17 -0
- package/dist/sdk/address/checkout-readiness.js.map +1 -0
- package/dist/sdk/address/constants.js +60 -0
- package/dist/sdk/address/constants.js.map +1 -0
- package/dist/sdk/address/country-display.js +19 -0
- package/dist/sdk/address/country-display.js.map +1 -0
- package/dist/sdk/address/country-rules.js +30 -0
- package/dist/sdk/address/country-rules.js.map +1 -0
- package/dist/sdk/address/format-address.js +18 -0
- package/dist/sdk/address/format-address.js.map +1 -0
- package/dist/sdk/address/iso-countries.js +262 -0
- package/dist/sdk/address/iso-countries.js.map +1 -0
- package/dist/sdk/address/layouts.js +56 -0
- package/dist/sdk/address/layouts.js.map +1 -0
- package/dist/sdk/address/messages.js +97 -0
- package/dist/sdk/address/messages.js.map +1 -0
- package/dist/sdk/address/operations.d.ts +54 -0
- package/dist/sdk/address/operations.js +83 -0
- package/dist/sdk/address/operations.js.map +1 -0
- package/dist/sdk/address/postal-code-lookup-operations.js +23 -0
- package/dist/sdk/address/postal-code-lookup-operations.js.map +1 -0
- package/dist/sdk/address/postal-code.js +11 -0
- package/dist/sdk/address/postal-code.js.map +1 -0
- package/dist/sdk/address/schema.js +14 -0
- package/dist/sdk/address/schema.js.map +1 -0
- package/dist/sdk/address/server-fields.js +25 -0
- package/dist/sdk/address/server-fields.js.map +1 -0
- package/dist/sdk/address/switch-country.js +57 -0
- package/dist/sdk/address/switch-country.js.map +1 -0
- package/dist/sdk/address/types.d.ts +26 -0
- package/dist/sdk/address/use-address-actions.d.ts +29 -0
- package/dist/sdk/address/use-address-actions.js +247 -0
- package/dist/sdk/address/use-address-actions.js.map +1 -0
- package/dist/sdk/address/use-address-by-postal-code.js +57 -0
- package/dist/sdk/address/use-address-by-postal-code.js.map +1 -0
- package/dist/sdk/address/validate-address.js +62 -0
- package/dist/sdk/address/validate-address.js.map +1 -0
- package/dist/sdk/analytics/use-analytics-actions.js +2 -1
- package/dist/sdk/analytics/use-analytics-actions.js.map +1 -1
- package/dist/sdk/cache/storefront-cache.js +29 -4
- package/dist/sdk/cache/storefront-cache.js.map +1 -1
- package/dist/sdk/cart/use-cart-actions.js +9 -8
- package/dist/sdk/cart/use-cart-actions.js.map +1 -1
- package/dist/sdk/cart/use-cart-validate-on-open.js +2 -1
- package/dist/sdk/cart/use-cart-validate-on-open.js.map +1 -1
- package/dist/sdk/client/fetch-page-data.d.ts +11 -0
- package/dist/sdk/client/fetch-page-data.js +12 -1
- package/dist/sdk/client/fetch-page-data.js.map +1 -1
- package/dist/sdk/content/create-content-runtime.d.ts +22 -1
- package/dist/sdk/content/create-content-runtime.js +90 -9
- package/dist/sdk/content/create-content-runtime.js.map +1 -1
- package/dist/sdk/data/empty-content-value.js +16 -0
- package/dist/sdk/data/empty-content-value.js.map +1 -0
- package/dist/sdk/data/failed-fields.js +23 -0
- package/dist/sdk/data/failed-fields.js.map +1 -0
- package/dist/sdk/data/hot-data-provider.js +2 -1
- package/dist/sdk/data/hot-data-provider.js.map +1 -1
- package/dist/sdk/data/index.js +1 -1
- package/dist/sdk/data/page-reactive-data-root.d.ts +45 -7
- package/dist/sdk/data/page-reactive-data-root.js +88 -12
- package/dist/sdk/data/page-reactive-data-root.js.map +1 -1
- package/dist/sdk/data/variables-from-content.d.ts +43 -0
- package/dist/sdk/data/variables-from-content.js +57 -0
- package/dist/sdk/data/variables-from-content.js.map +1 -0
- package/dist/sdk/generated/fragment-types.js +2 -0
- package/dist/sdk/generated/fragment-types.js.map +1 -1
- package/dist/sdk/generated/gql.js +4 -1
- package/dist/sdk/generated/gql.js.map +1 -1
- package/dist/sdk/generated/graphql.d.ts +8 -0
- package/dist/sdk/generated/graphql.js +296 -1
- package/dist/sdk/generated/graphql.js.map +1 -1
- package/dist/sdk/i18n/messages/en-US.js +138 -1
- package/dist/sdk/i18n/messages/en-US.json +138 -1
- package/dist/sdk/i18n/messages/en-US.json.d.ts +137 -0
- package/dist/sdk/i18n/messages/es-ES.js +138 -1
- package/dist/sdk/i18n/messages/es-ES.json +138 -1
- package/dist/sdk/i18n/messages/pt-BR.js +138 -1
- package/dist/sdk/i18n/messages/pt-BR.json +138 -1
- package/dist/sdk/identity/use-identity-actions.js +5 -4
- package/dist/sdk/identity/use-identity-actions.js.map +1 -1
- package/dist/sdk/navigation/current-page.js +30 -0
- package/dist/sdk/navigation/current-page.js.map +1 -0
- package/dist/sdk/navigation/not-found-log.d.ts +28 -0
- package/dist/sdk/navigation/not-found-log.js +133 -0
- package/dist/sdk/navigation/not-found-log.js.map +1 -0
- package/dist/sdk/navigation/path.js +25 -0
- package/dist/sdk/navigation/path.js.map +1 -0
- package/dist/sdk/navigation/redirect.d.ts +11 -0
- package/dist/sdk/navigation/redirect.js +22 -0
- package/dist/sdk/navigation/redirect.js.map +1 -0
- package/dist/sdk/navigation/report.js +70 -0
- package/dist/sdk/navigation/report.js.map +1 -0
- package/dist/sdk/navigation/resolve-storefront-href.d.ts +12 -0
- package/dist/sdk/navigation/resolve-storefront-href.js +214 -0
- package/dist/sdk/navigation/resolve-storefront-href.js.map +1 -0
- package/dist/sdk/navigation/route-identity-provider.d.ts +11 -0
- package/dist/sdk/navigation/route-identity-provider.js +20 -0
- package/dist/sdk/navigation/route-identity-provider.js.map +1 -0
- package/dist/sdk/navigation/route-map-provider.d.ts +19 -0
- package/dist/sdk/navigation/route-map-provider.js +29 -0
- package/dist/sdk/navigation/route-map-provider.js.map +1 -0
- package/dist/sdk/navigation/storefront-link.d.ts +16 -0
- package/dist/sdk/navigation/storefront-link.js +66 -0
- package/dist/sdk/navigation/storefront-link.js.map +1 -0
- package/dist/sdk/navigation/types.d.ts +45 -0
- package/dist/sdk/navigation/use-storefront-navigation.d.ts +26 -0
- package/dist/sdk/navigation/use-storefront-navigation.js +73 -0
- package/dist/sdk/navigation/use-storefront-navigation.js.map +1 -0
- package/dist/sdk/navigation/use-storefront-route.d.ts +26 -0
- package/dist/sdk/navigation/use-storefront-route.js +87 -0
- package/dist/sdk/navigation/use-storefront-route.js.map +1 -0
- package/dist/sdk/navigation/use-storefront-search-params.d.ts +11 -0
- package/dist/sdk/navigation/use-storefront-search-params.js +16 -0
- package/dist/sdk/navigation/use-storefront-search-params.js.map +1 -0
- package/dist/sdk/orders/completion-badge.d.ts +8 -0
- package/dist/sdk/orders/completion-badge.js +47 -0
- package/dist/sdk/orders/completion-badge.js.map +1 -0
- package/dist/sdk/orders/order-operations.d.ts +19 -0
- package/dist/sdk/orders/order-operations.js +21 -0
- package/dist/sdk/orders/order-operations.js.map +1 -0
- package/dist/sdk/orders/use-order-actions.d.ts +23 -0
- package/dist/sdk/orders/use-order-actions.js +62 -0
- package/dist/sdk/orders/use-order-actions.js.map +1 -0
- package/dist/sdk/payment/gateway-origin.js +26 -13
- package/dist/sdk/payment/gateway-origin.js.map +1 -1
- package/dist/sdk/payment/gateway.d.ts +14 -2
- package/dist/sdk/payment/gateway.js +32 -14
- package/dist/sdk/payment/gateway.js.map +1 -1
- package/dist/sdk/payment/operations.js +11 -0
- package/dist/sdk/payment/operations.js.map +1 -1
- package/dist/sdk/payment/submission-registry.d.ts +2 -1
- package/dist/sdk/payment/submission-registry.js +12 -8
- package/dist/sdk/payment/submission-registry.js.map +1 -1
- package/dist/sdk/payment/use-payment-actions.d.ts +5 -3
- package/dist/sdk/payment/use-payment-actions.js +6 -3
- package/dist/sdk/payment/use-payment-actions.js.map +1 -1
- package/dist/sdk/payment/use-place-order.d.ts +6 -3
- package/dist/sdk/payment/use-place-order.js +334 -144
- package/dist/sdk/payment/use-place-order.js.map +1 -1
- package/dist/sdk/region/use-region-actions.js +2 -1
- package/dist/sdk/region/use-region-actions.js.map +1 -1
- package/dist/sdk/seo/page-alternates.d.ts +55 -0
- package/dist/sdk/seo/page-alternates.js +132 -0
- package/dist/sdk/seo/page-alternates.js.map +1 -0
- package/dist/sdk/session/read-server-session.d.ts +21 -0
- package/dist/sdk/session/read-server-session.js +61 -0
- package/dist/sdk/session/read-server-session.js.map +1 -0
- package/dist/sdk/session/use-session-actions.js +5 -4
- package/dist/sdk/session/use-session-actions.js.map +1 -1
- package/dist/sdk/session/use-session-revalidation.js +2 -1
- package/dist/sdk/session/use-session-revalidation.js.map +1 -1
- package/dist/sdk/shipping/use-shipping-actions.js +3 -2
- package/dist/sdk/shipping/use-shipping-actions.js.map +1 -1
- package/dist/utils/own-value.js +19 -0
- package/dist/utils/own-value.js.map +1 -0
- package/dist/utils/safe-href.d.ts +11 -0
- package/dist/utils/safe-href.js +31 -22
- package/dist/utils/safe-href.js.map +1 -1
- package/package.json +17 -2
- package/skills/storefront-asset/SKILL.md +111 -0
- package/skills/storefront-asset/references/api-side.md +153 -0
- package/skills/storefront-asset/references/findings.md +40 -0
- package/skills/storefront-asset/references/ui-side.md +94 -0
- package/src/styles/tailwind.css +27 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usageReporting-Bpl8vSZX.js","names":["LRUCache","LRUCache","printSchema","retry","usageReportingSignature","calculateReferencedFieldsByType"],"sources":["../../../../node_modules/.pnpm/@apollo+usage-reporting-protobuf@4.1.1/node_modules/@apollo/usage-reporting-protobuf/generated/cjs/protobuf.js","../../../../node_modules/.pnpm/@apollo+utils.usagereporting@2.1.0_graphql@16.13.1/node_modules/@apollo/utils.usagereporting/dist/calculateReferencedFieldsByType.js","../../../../node_modules/.pnpm/@apollo+utils.dropunuseddefinitions@2.0.1_graphql@16.13.1/node_modules/@apollo/utils.dropunuseddefinitions/dist/index.js","../../../../node_modules/.pnpm/@apollo+utils.stripsensitiveliterals@2.0.1_graphql@16.13.1/node_modules/@apollo/utils.stripsensitiveliterals/dist/index.js","../../../../node_modules/.pnpm/@apollo+utils.printwithreducedwhitespace@2.0.1_graphql@16.13.1/node_modules/@apollo/utils.printwithreducedwhitespace/dist/index.js","../../../../node_modules/.pnpm/@apollo+utils.removealiases@2.0.1_graphql@16.13.1/node_modules/@apollo/utils.removealiases/dist/index.js","../../../../node_modules/.pnpm/lodash.sortby@4.7.0/node_modules/lodash.sortby/index.js","../../../../node_modules/.pnpm/@apollo+utils.sortast@2.0.1_graphql@16.13.1/node_modules/@apollo/utils.sortast/dist/index.js","../../../../node_modules/.pnpm/@apollo+utils.usagereporting@2.1.0_graphql@16.13.1/node_modules/@apollo/utils.usagereporting/dist/signature.js","../../../../node_modules/.pnpm/@apollo+utils.usagereporting@2.1.0_graphql@16.13.1/node_modules/@apollo/utils.usagereporting/dist/index.js","../../../../node_modules/.pnpm/retry@0.13.1/node_modules/retry/lib/retry_operation.js","../../../../node_modules/.pnpm/retry@0.13.1/node_modules/retry/lib/retry.js","../../../../node_modules/.pnpm/retry@0.13.1/node_modules/retry/index.js","../../../../node_modules/.pnpm/async-retry@1.3.3/node_modules/async-retry/lib/index.js","../../../../node_modules/.pnpm/@apollo+server@5.5.0_graphql@16.13.1/node_modules/@apollo/server/dist/esm/plugin/usageReporting/iterateOverTrace.js","../../../../node_modules/.pnpm/@apollo+server@5.5.0_graphql@16.13.1/node_modules/@apollo/server/dist/esm/plugin/usageReporting/durationHistogram.js","../../../../node_modules/.pnpm/@apollo+server@5.5.0_graphql@16.13.1/node_modules/@apollo/server/dist/esm/plugin/usageReporting/defaultSendOperationsAsTrace.js","../../../../node_modules/.pnpm/@apollo+server@5.5.0_graphql@16.13.1/node_modules/@apollo/server/dist/esm/plugin/usageReporting/operationDerivedDataCache.js","../../../../node_modules/.pnpm/@apollo+server@5.5.0_graphql@16.13.1/node_modules/@apollo/server/dist/esm/plugin/usageReporting/stats.js","../../../../node_modules/.pnpm/@apollo+server@5.5.0_graphql@16.13.1/node_modules/@apollo/server/dist/esm/plugin/usageReporting/traceDetails.js","../../../../node_modules/.pnpm/@apollo+server@5.5.0_graphql@16.13.1/node_modules/@apollo/server/dist/esm/plugin/usageReporting/plugin.js"],"sourcesContent":["/*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/\n\"use strict\";\n\nvar $protobuf = require(\"@apollo/protobufjs/minimal\");\n\n// Common aliases\nvar $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;\n\n// Exported root namespace\nvar $root = $protobuf.roots[\"default\"] || ($protobuf.roots[\"default\"] = {});\n\n$root.Trace = (function() {\n\n /**\n * Properties of a Trace.\n * @exports ITrace\n * @interface ITrace\n * @property {google.protobuf.ITimestamp|null} [startTime] Trace startTime\n * @property {google.protobuf.ITimestamp|null} [endTime] Trace endTime\n * @property {number|null} [durationNs] Trace durationNs\n * @property {Trace.INode|null} [root] Trace root\n * @property {boolean|null} [isIncomplete] Trace isIncomplete\n * @property {string|null} [signature] Trace signature\n * @property {string|null} [unexecutedOperationBody] Trace unexecutedOperationBody\n * @property {string|null} [unexecutedOperationName] Trace unexecutedOperationName\n * @property {Trace.IDetails|null} [details] Trace details\n * @property {string|null} [clientName] Trace clientName\n * @property {string|null} [clientVersion] Trace clientVersion\n * @property {Trace.IHTTP|null} [http] Trace http\n * @property {Trace.ICachePolicy|null} [cachePolicy] Trace cachePolicy\n * @property {Trace.IQueryPlanNode|null} [queryPlan] Trace queryPlan\n * @property {boolean|null} [fullQueryCacheHit] Trace fullQueryCacheHit\n * @property {boolean|null} [persistedQueryHit] Trace persistedQueryHit\n * @property {boolean|null} [persistedQueryRegister] Trace persistedQueryRegister\n * @property {boolean|null} [registeredOperation] Trace registeredOperation\n * @property {boolean|null} [forbiddenOperation] Trace forbiddenOperation\n * @property {number|null} [fieldExecutionWeight] Trace fieldExecutionWeight\n */\n\n /**\n * Constructs a new Trace.\n * @exports Trace\n * @classdesc Represents a Trace.\n * @implements ITrace\n * @constructor\n * @param {ITrace=} [properties] Properties to set\n */\n function Trace(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Trace startTime.\n * @member {google.protobuf.ITimestamp|null|undefined} startTime\n * @memberof Trace\n * @instance\n */\n Trace.prototype.startTime = null;\n\n /**\n * Trace endTime.\n * @member {google.protobuf.ITimestamp|null|undefined} endTime\n * @memberof Trace\n * @instance\n */\n Trace.prototype.endTime = null;\n\n /**\n * Trace durationNs.\n * @member {number} durationNs\n * @memberof Trace\n * @instance\n */\n Trace.prototype.durationNs = 0;\n\n /**\n * Trace root.\n * @member {Trace.INode|null|undefined} root\n * @memberof Trace\n * @instance\n */\n Trace.prototype.root = null;\n\n /**\n * Trace isIncomplete.\n * @member {boolean} isIncomplete\n * @memberof Trace\n * @instance\n */\n Trace.prototype.isIncomplete = false;\n\n /**\n * Trace signature.\n * @member {string} signature\n * @memberof Trace\n * @instance\n */\n Trace.prototype.signature = \"\";\n\n /**\n * Trace unexecutedOperationBody.\n * @member {string} unexecutedOperationBody\n * @memberof Trace\n * @instance\n */\n Trace.prototype.unexecutedOperationBody = \"\";\n\n /**\n * Trace unexecutedOperationName.\n * @member {string} unexecutedOperationName\n * @memberof Trace\n * @instance\n */\n Trace.prototype.unexecutedOperationName = \"\";\n\n /**\n * Trace details.\n * @member {Trace.IDetails|null|undefined} details\n * @memberof Trace\n * @instance\n */\n Trace.prototype.details = null;\n\n /**\n * Trace clientName.\n * @member {string} clientName\n * @memberof Trace\n * @instance\n */\n Trace.prototype.clientName = \"\";\n\n /**\n * Trace clientVersion.\n * @member {string} clientVersion\n * @memberof Trace\n * @instance\n */\n Trace.prototype.clientVersion = \"\";\n\n /**\n * Trace http.\n * @member {Trace.IHTTP|null|undefined} http\n * @memberof Trace\n * @instance\n */\n Trace.prototype.http = null;\n\n /**\n * Trace cachePolicy.\n * @member {Trace.ICachePolicy|null|undefined} cachePolicy\n * @memberof Trace\n * @instance\n */\n Trace.prototype.cachePolicy = null;\n\n /**\n * Trace queryPlan.\n * @member {Trace.IQueryPlanNode|null|undefined} queryPlan\n * @memberof Trace\n * @instance\n */\n Trace.prototype.queryPlan = null;\n\n /**\n * Trace fullQueryCacheHit.\n * @member {boolean} fullQueryCacheHit\n * @memberof Trace\n * @instance\n */\n Trace.prototype.fullQueryCacheHit = false;\n\n /**\n * Trace persistedQueryHit.\n * @member {boolean} persistedQueryHit\n * @memberof Trace\n * @instance\n */\n Trace.prototype.persistedQueryHit = false;\n\n /**\n * Trace persistedQueryRegister.\n * @member {boolean} persistedQueryRegister\n * @memberof Trace\n * @instance\n */\n Trace.prototype.persistedQueryRegister = false;\n\n /**\n * Trace registeredOperation.\n * @member {boolean} registeredOperation\n * @memberof Trace\n * @instance\n */\n Trace.prototype.registeredOperation = false;\n\n /**\n * Trace forbiddenOperation.\n * @member {boolean} forbiddenOperation\n * @memberof Trace\n * @instance\n */\n Trace.prototype.forbiddenOperation = false;\n\n /**\n * Trace fieldExecutionWeight.\n * @member {number} fieldExecutionWeight\n * @memberof Trace\n * @instance\n */\n Trace.prototype.fieldExecutionWeight = 0;\n\n /**\n * Creates a new Trace instance using the specified properties.\n * @function create\n * @memberof Trace\n * @static\n * @param {ITrace=} [properties] Properties to set\n * @returns {Trace} Trace instance\n */\n Trace.create = function create(properties) {\n return new Trace(properties);\n };\n\n /**\n * Encodes the specified Trace message. Does not implicitly {@link Trace.verify|verify} messages.\n * @function encode\n * @memberof Trace\n * @static\n * @param {ITrace} message Trace message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Trace.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.endTime != null && Object.hasOwnProperty.call(message, \"endTime\"))\n $root.google.protobuf.Timestamp.encode(message.endTime, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.startTime != null && Object.hasOwnProperty.call(message, \"startTime\"))\n $root.google.protobuf.Timestamp.encode(message.startTime, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();\n if (message.details != null && Object.hasOwnProperty.call(message, \"details\"))\n $root.Trace.Details.encode(message.details, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();\n if (message.clientName != null && Object.hasOwnProperty.call(message, \"clientName\"))\n writer.uint32(/* id 7, wireType 2 =*/58).string(message.clientName);\n if (message.clientVersion != null && Object.hasOwnProperty.call(message, \"clientVersion\"))\n writer.uint32(/* id 8, wireType 2 =*/66).string(message.clientVersion);\n if (message.http != null && Object.hasOwnProperty.call(message, \"http\"))\n $root.Trace.HTTP.encode(message.http, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim();\n if (message.durationNs != null && Object.hasOwnProperty.call(message, \"durationNs\"))\n writer.uint32(/* id 11, wireType 0 =*/88).uint64(message.durationNs);\n if (message.root != null && Object.hasOwnProperty.call(message, \"root\"))\n $root.Trace.Node.encode(message.root, writer.uint32(/* id 14, wireType 2 =*/114).fork()).ldelim();\n if (message.cachePolicy != null && Object.hasOwnProperty.call(message, \"cachePolicy\"))\n $root.Trace.CachePolicy.encode(message.cachePolicy, writer.uint32(/* id 18, wireType 2 =*/146).fork()).ldelim();\n if (message.signature != null && Object.hasOwnProperty.call(message, \"signature\"))\n writer.uint32(/* id 19, wireType 2 =*/154).string(message.signature);\n if (message.fullQueryCacheHit != null && Object.hasOwnProperty.call(message, \"fullQueryCacheHit\"))\n writer.uint32(/* id 20, wireType 0 =*/160).bool(message.fullQueryCacheHit);\n if (message.persistedQueryHit != null && Object.hasOwnProperty.call(message, \"persistedQueryHit\"))\n writer.uint32(/* id 21, wireType 0 =*/168).bool(message.persistedQueryHit);\n if (message.persistedQueryRegister != null && Object.hasOwnProperty.call(message, \"persistedQueryRegister\"))\n writer.uint32(/* id 22, wireType 0 =*/176).bool(message.persistedQueryRegister);\n if (message.registeredOperation != null && Object.hasOwnProperty.call(message, \"registeredOperation\"))\n writer.uint32(/* id 24, wireType 0 =*/192).bool(message.registeredOperation);\n if (message.forbiddenOperation != null && Object.hasOwnProperty.call(message, \"forbiddenOperation\"))\n writer.uint32(/* id 25, wireType 0 =*/200).bool(message.forbiddenOperation);\n if (message.queryPlan != null && Object.hasOwnProperty.call(message, \"queryPlan\"))\n $root.Trace.QueryPlanNode.encode(message.queryPlan, writer.uint32(/* id 26, wireType 2 =*/210).fork()).ldelim();\n if (message.unexecutedOperationBody != null && Object.hasOwnProperty.call(message, \"unexecutedOperationBody\"))\n writer.uint32(/* id 27, wireType 2 =*/218).string(message.unexecutedOperationBody);\n if (message.unexecutedOperationName != null && Object.hasOwnProperty.call(message, \"unexecutedOperationName\"))\n writer.uint32(/* id 28, wireType 2 =*/226).string(message.unexecutedOperationName);\n if (message.fieldExecutionWeight != null && Object.hasOwnProperty.call(message, \"fieldExecutionWeight\"))\n writer.uint32(/* id 31, wireType 1 =*/249).double(message.fieldExecutionWeight);\n if (message.isIncomplete != null && Object.hasOwnProperty.call(message, \"isIncomplete\"))\n writer.uint32(/* id 33, wireType 0 =*/264).bool(message.isIncomplete);\n return writer;\n };\n\n /**\n * Encodes the specified Trace message, length delimited. Does not implicitly {@link Trace.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace\n * @static\n * @param {ITrace} message Trace message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Trace.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Trace message from the specified reader or buffer.\n * @function decode\n * @memberof Trace\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace} Trace\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Trace.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 4:\n message.startTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32());\n break;\n case 3:\n message.endTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32());\n break;\n case 11:\n message.durationNs = reader.uint64();\n break;\n case 14:\n message.root = $root.Trace.Node.decode(reader, reader.uint32());\n break;\n case 33:\n message.isIncomplete = reader.bool();\n break;\n case 19:\n message.signature = reader.string();\n break;\n case 27:\n message.unexecutedOperationBody = reader.string();\n break;\n case 28:\n message.unexecutedOperationName = reader.string();\n break;\n case 6:\n message.details = $root.Trace.Details.decode(reader, reader.uint32());\n break;\n case 7:\n message.clientName = reader.string();\n break;\n case 8:\n message.clientVersion = reader.string();\n break;\n case 10:\n message.http = $root.Trace.HTTP.decode(reader, reader.uint32());\n break;\n case 18:\n message.cachePolicy = $root.Trace.CachePolicy.decode(reader, reader.uint32());\n break;\n case 26:\n message.queryPlan = $root.Trace.QueryPlanNode.decode(reader, reader.uint32());\n break;\n case 20:\n message.fullQueryCacheHit = reader.bool();\n break;\n case 21:\n message.persistedQueryHit = reader.bool();\n break;\n case 22:\n message.persistedQueryRegister = reader.bool();\n break;\n case 24:\n message.registeredOperation = reader.bool();\n break;\n case 25:\n message.forbiddenOperation = reader.bool();\n break;\n case 31:\n message.fieldExecutionWeight = reader.double();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Trace message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace} Trace\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Trace.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Trace message.\n * @function verify\n * @memberof Trace\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Trace.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.startTime != null && message.hasOwnProperty(\"startTime\")) {\n var error = $root.google.protobuf.Timestamp.verify(message.startTime);\n if (error)\n return \"startTime.\" + error;\n }\n if (message.endTime != null && message.hasOwnProperty(\"endTime\")) {\n var error = $root.google.protobuf.Timestamp.verify(message.endTime);\n if (error)\n return \"endTime.\" + error;\n }\n if (message.durationNs != null && message.hasOwnProperty(\"durationNs\"))\n if (!$util.isInteger(message.durationNs) && !(message.durationNs && $util.isInteger(message.durationNs.low) && $util.isInteger(message.durationNs.high)))\n return \"durationNs: integer|Long expected\";\n if (message.root != null && message.hasOwnProperty(\"root\")) {\n var error = $root.Trace.Node.verify(message.root);\n if (error)\n return \"root.\" + error;\n }\n if (message.isIncomplete != null && message.hasOwnProperty(\"isIncomplete\"))\n if (typeof message.isIncomplete !== \"boolean\")\n return \"isIncomplete: boolean expected\";\n if (message.signature != null && message.hasOwnProperty(\"signature\"))\n if (!$util.isString(message.signature))\n return \"signature: string expected\";\n if (message.unexecutedOperationBody != null && message.hasOwnProperty(\"unexecutedOperationBody\"))\n if (!$util.isString(message.unexecutedOperationBody))\n return \"unexecutedOperationBody: string expected\";\n if (message.unexecutedOperationName != null && message.hasOwnProperty(\"unexecutedOperationName\"))\n if (!$util.isString(message.unexecutedOperationName))\n return \"unexecutedOperationName: string expected\";\n if (message.details != null && message.hasOwnProperty(\"details\")) {\n var error = $root.Trace.Details.verify(message.details);\n if (error)\n return \"details.\" + error;\n }\n if (message.clientName != null && message.hasOwnProperty(\"clientName\"))\n if (!$util.isString(message.clientName))\n return \"clientName: string expected\";\n if (message.clientVersion != null && message.hasOwnProperty(\"clientVersion\"))\n if (!$util.isString(message.clientVersion))\n return \"clientVersion: string expected\";\n if (message.http != null && message.hasOwnProperty(\"http\")) {\n var error = $root.Trace.HTTP.verify(message.http);\n if (error)\n return \"http.\" + error;\n }\n if (message.cachePolicy != null && message.hasOwnProperty(\"cachePolicy\")) {\n var error = $root.Trace.CachePolicy.verify(message.cachePolicy);\n if (error)\n return \"cachePolicy.\" + error;\n }\n if (message.queryPlan != null && message.hasOwnProperty(\"queryPlan\")) {\n var error = $root.Trace.QueryPlanNode.verify(message.queryPlan);\n if (error)\n return \"queryPlan.\" + error;\n }\n if (message.fullQueryCacheHit != null && message.hasOwnProperty(\"fullQueryCacheHit\"))\n if (typeof message.fullQueryCacheHit !== \"boolean\")\n return \"fullQueryCacheHit: boolean expected\";\n if (message.persistedQueryHit != null && message.hasOwnProperty(\"persistedQueryHit\"))\n if (typeof message.persistedQueryHit !== \"boolean\")\n return \"persistedQueryHit: boolean expected\";\n if (message.persistedQueryRegister != null && message.hasOwnProperty(\"persistedQueryRegister\"))\n if (typeof message.persistedQueryRegister !== \"boolean\")\n return \"persistedQueryRegister: boolean expected\";\n if (message.registeredOperation != null && message.hasOwnProperty(\"registeredOperation\"))\n if (typeof message.registeredOperation !== \"boolean\")\n return \"registeredOperation: boolean expected\";\n if (message.forbiddenOperation != null && message.hasOwnProperty(\"forbiddenOperation\"))\n if (typeof message.forbiddenOperation !== \"boolean\")\n return \"forbiddenOperation: boolean expected\";\n if (message.fieldExecutionWeight != null && message.hasOwnProperty(\"fieldExecutionWeight\"))\n if (typeof message.fieldExecutionWeight !== \"number\")\n return \"fieldExecutionWeight: number expected\";\n return null;\n };\n\n /**\n * Creates a plain object from a Trace message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace\n * @static\n * @param {Trace} message Trace\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Trace.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.endTime = null;\n object.startTime = null;\n object.details = null;\n object.clientName = \"\";\n object.clientVersion = \"\";\n object.http = null;\n object.durationNs = 0;\n object.root = null;\n object.cachePolicy = null;\n object.signature = \"\";\n object.fullQueryCacheHit = false;\n object.persistedQueryHit = false;\n object.persistedQueryRegister = false;\n object.registeredOperation = false;\n object.forbiddenOperation = false;\n object.queryPlan = null;\n object.unexecutedOperationBody = \"\";\n object.unexecutedOperationName = \"\";\n object.fieldExecutionWeight = 0;\n object.isIncomplete = false;\n }\n if (message.endTime != null && message.hasOwnProperty(\"endTime\"))\n object.endTime = $root.google.protobuf.Timestamp.toObject(message.endTime, options);\n if (message.startTime != null && message.hasOwnProperty(\"startTime\"))\n object.startTime = $root.google.protobuf.Timestamp.toObject(message.startTime, options);\n if (message.details != null && message.hasOwnProperty(\"details\"))\n object.details = $root.Trace.Details.toObject(message.details, options);\n if (message.clientName != null && message.hasOwnProperty(\"clientName\"))\n object.clientName = message.clientName;\n if (message.clientVersion != null && message.hasOwnProperty(\"clientVersion\"))\n object.clientVersion = message.clientVersion;\n if (message.http != null && message.hasOwnProperty(\"http\"))\n object.http = $root.Trace.HTTP.toObject(message.http, options);\n if (message.durationNs != null && message.hasOwnProperty(\"durationNs\"))\n if (typeof message.durationNs === \"number\")\n object.durationNs = options.longs === String ? String(message.durationNs) : message.durationNs;\n else\n object.durationNs = options.longs === String ? $util.Long.prototype.toString.call(message.durationNs) : options.longs === Number ? new $util.LongBits(message.durationNs.low >>> 0, message.durationNs.high >>> 0).toNumber(true) : message.durationNs;\n if (message.root != null && message.hasOwnProperty(\"root\"))\n object.root = $root.Trace.Node.toObject(message.root, options);\n if (message.cachePolicy != null && message.hasOwnProperty(\"cachePolicy\"))\n object.cachePolicy = $root.Trace.CachePolicy.toObject(message.cachePolicy, options);\n if (message.signature != null && message.hasOwnProperty(\"signature\"))\n object.signature = message.signature;\n if (message.fullQueryCacheHit != null && message.hasOwnProperty(\"fullQueryCacheHit\"))\n object.fullQueryCacheHit = message.fullQueryCacheHit;\n if (message.persistedQueryHit != null && message.hasOwnProperty(\"persistedQueryHit\"))\n object.persistedQueryHit = message.persistedQueryHit;\n if (message.persistedQueryRegister != null && message.hasOwnProperty(\"persistedQueryRegister\"))\n object.persistedQueryRegister = message.persistedQueryRegister;\n if (message.registeredOperation != null && message.hasOwnProperty(\"registeredOperation\"))\n object.registeredOperation = message.registeredOperation;\n if (message.forbiddenOperation != null && message.hasOwnProperty(\"forbiddenOperation\"))\n object.forbiddenOperation = message.forbiddenOperation;\n if (message.queryPlan != null && message.hasOwnProperty(\"queryPlan\"))\n object.queryPlan = $root.Trace.QueryPlanNode.toObject(message.queryPlan, options);\n if (message.unexecutedOperationBody != null && message.hasOwnProperty(\"unexecutedOperationBody\"))\n object.unexecutedOperationBody = message.unexecutedOperationBody;\n if (message.unexecutedOperationName != null && message.hasOwnProperty(\"unexecutedOperationName\"))\n object.unexecutedOperationName = message.unexecutedOperationName;\n if (message.fieldExecutionWeight != null && message.hasOwnProperty(\"fieldExecutionWeight\"))\n object.fieldExecutionWeight = options.json && !isFinite(message.fieldExecutionWeight) ? String(message.fieldExecutionWeight) : message.fieldExecutionWeight;\n if (message.isIncomplete != null && message.hasOwnProperty(\"isIncomplete\"))\n object.isIncomplete = message.isIncomplete;\n return object;\n };\n\n /**\n * Converts this Trace to JSON.\n * @function toJSON\n * @memberof Trace\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Trace.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n Trace.CachePolicy = (function() {\n\n /**\n * Properties of a CachePolicy.\n * @memberof Trace\n * @interface ICachePolicy\n * @property {Trace.CachePolicy.Scope|null} [scope] CachePolicy scope\n * @property {number|null} [maxAgeNs] CachePolicy maxAgeNs\n */\n\n /**\n * Constructs a new CachePolicy.\n * @memberof Trace\n * @classdesc Represents a CachePolicy.\n * @implements ICachePolicy\n * @constructor\n * @param {Trace.ICachePolicy=} [properties] Properties to set\n */\n function CachePolicy(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * CachePolicy scope.\n * @member {Trace.CachePolicy.Scope} scope\n * @memberof Trace.CachePolicy\n * @instance\n */\n CachePolicy.prototype.scope = 0;\n\n /**\n * CachePolicy maxAgeNs.\n * @member {number} maxAgeNs\n * @memberof Trace.CachePolicy\n * @instance\n */\n CachePolicy.prototype.maxAgeNs = 0;\n\n /**\n * Creates a new CachePolicy instance using the specified properties.\n * @function create\n * @memberof Trace.CachePolicy\n * @static\n * @param {Trace.ICachePolicy=} [properties] Properties to set\n * @returns {Trace.CachePolicy} CachePolicy instance\n */\n CachePolicy.create = function create(properties) {\n return new CachePolicy(properties);\n };\n\n /**\n * Encodes the specified CachePolicy message. Does not implicitly {@link Trace.CachePolicy.verify|verify} messages.\n * @function encode\n * @memberof Trace.CachePolicy\n * @static\n * @param {Trace.ICachePolicy} message CachePolicy message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CachePolicy.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.scope != null && Object.hasOwnProperty.call(message, \"scope\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int32(message.scope);\n if (message.maxAgeNs != null && Object.hasOwnProperty.call(message, \"maxAgeNs\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int64(message.maxAgeNs);\n return writer;\n };\n\n /**\n * Encodes the specified CachePolicy message, length delimited. Does not implicitly {@link Trace.CachePolicy.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.CachePolicy\n * @static\n * @param {Trace.ICachePolicy} message CachePolicy message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CachePolicy.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a CachePolicy message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.CachePolicy\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.CachePolicy} CachePolicy\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CachePolicy.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.CachePolicy();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.scope = reader.int32();\n break;\n case 2:\n message.maxAgeNs = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a CachePolicy message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.CachePolicy\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.CachePolicy} CachePolicy\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CachePolicy.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a CachePolicy message.\n * @function verify\n * @memberof Trace.CachePolicy\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n CachePolicy.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.scope != null && message.hasOwnProperty(\"scope\"))\n switch (message.scope) {\n default:\n return \"scope: enum value expected\";\n case 0:\n case 1:\n case 2:\n break;\n }\n if (message.maxAgeNs != null && message.hasOwnProperty(\"maxAgeNs\"))\n if (!$util.isInteger(message.maxAgeNs) && !(message.maxAgeNs && $util.isInteger(message.maxAgeNs.low) && $util.isInteger(message.maxAgeNs.high)))\n return \"maxAgeNs: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a plain object from a CachePolicy message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.CachePolicy\n * @static\n * @param {Trace.CachePolicy} message CachePolicy\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n CachePolicy.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.scope = options.enums === String ? \"UNKNOWN\" : 0;\n object.maxAgeNs = 0;\n }\n if (message.scope != null && message.hasOwnProperty(\"scope\"))\n object.scope = options.enums === String ? $root.Trace.CachePolicy.Scope[message.scope] : message.scope;\n if (message.maxAgeNs != null && message.hasOwnProperty(\"maxAgeNs\"))\n if (typeof message.maxAgeNs === \"number\")\n object.maxAgeNs = options.longs === String ? String(message.maxAgeNs) : message.maxAgeNs;\n else\n object.maxAgeNs = options.longs === String ? $util.Long.prototype.toString.call(message.maxAgeNs) : options.longs === Number ? new $util.LongBits(message.maxAgeNs.low >>> 0, message.maxAgeNs.high >>> 0).toNumber() : message.maxAgeNs;\n return object;\n };\n\n /**\n * Converts this CachePolicy to JSON.\n * @function toJSON\n * @memberof Trace.CachePolicy\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n CachePolicy.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n /**\n * Scope enum.\n * @name Trace.CachePolicy.Scope\n * @enum {string}\n * @property {number} UNKNOWN=0 UNKNOWN value\n * @property {number} PUBLIC=1 PUBLIC value\n * @property {number} PRIVATE=2 PRIVATE value\n */\n CachePolicy.Scope = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"UNKNOWN\"] = 0;\n values[valuesById[1] = \"PUBLIC\"] = 1;\n values[valuesById[2] = \"PRIVATE\"] = 2;\n return values;\n })();\n\n return CachePolicy;\n })();\n\n Trace.Details = (function() {\n\n /**\n * Properties of a Details.\n * @memberof Trace\n * @interface IDetails\n * @property {Object.<string,string>|null} [variablesJson] Details variablesJson\n * @property {string|null} [operationName] Details operationName\n */\n\n /**\n * Constructs a new Details.\n * @memberof Trace\n * @classdesc Represents a Details.\n * @implements IDetails\n * @constructor\n * @param {Trace.IDetails=} [properties] Properties to set\n */\n function Details(properties) {\n this.variablesJson = {};\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Details variablesJson.\n * @member {Object.<string,string>} variablesJson\n * @memberof Trace.Details\n * @instance\n */\n Details.prototype.variablesJson = $util.emptyObject;\n\n /**\n * Details operationName.\n * @member {string} operationName\n * @memberof Trace.Details\n * @instance\n */\n Details.prototype.operationName = \"\";\n\n /**\n * Creates a new Details instance using the specified properties.\n * @function create\n * @memberof Trace.Details\n * @static\n * @param {Trace.IDetails=} [properties] Properties to set\n * @returns {Trace.Details} Details instance\n */\n Details.create = function create(properties) {\n return new Details(properties);\n };\n\n /**\n * Encodes the specified Details message. Does not implicitly {@link Trace.Details.verify|verify} messages.\n * @function encode\n * @memberof Trace.Details\n * @static\n * @param {Trace.IDetails} message Details message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Details.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.operationName != null && Object.hasOwnProperty.call(message, \"operationName\"))\n writer.uint32(/* id 3, wireType 2 =*/26).string(message.operationName);\n if (message.variablesJson != null && Object.hasOwnProperty.call(message, \"variablesJson\"))\n for (var keys = Object.keys(message.variablesJson), i = 0; i < keys.length; ++i)\n writer.uint32(/* id 4, wireType 2 =*/34).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.variablesJson[keys[i]]).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified Details message, length delimited. Does not implicitly {@link Trace.Details.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.Details\n * @static\n * @param {Trace.IDetails} message Details message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Details.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Details message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.Details\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.Details} Details\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Details.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.Details(), key;\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 4:\n reader.skip().pos++;\n if (message.variablesJson === $util.emptyObject)\n message.variablesJson = {};\n key = reader.string();\n reader.pos++;\n message.variablesJson[key] = reader.string();\n break;\n case 3:\n message.operationName = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Details message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.Details\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.Details} Details\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Details.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Details message.\n * @function verify\n * @memberof Trace.Details\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Details.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.variablesJson != null && message.hasOwnProperty(\"variablesJson\")) {\n if (!$util.isObject(message.variablesJson))\n return \"variablesJson: object expected\";\n var key = Object.keys(message.variablesJson);\n for (var i = 0; i < key.length; ++i)\n if (!$util.isString(message.variablesJson[key[i]]))\n return \"variablesJson: string{k:string} expected\";\n }\n if (message.operationName != null && message.hasOwnProperty(\"operationName\"))\n if (!$util.isString(message.operationName))\n return \"operationName: string expected\";\n return null;\n };\n\n /**\n * Creates a plain object from a Details message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.Details\n * @static\n * @param {Trace.Details} message Details\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Details.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.objects || options.defaults)\n object.variablesJson = {};\n if (options.defaults)\n object.operationName = \"\";\n if (message.operationName != null && message.hasOwnProperty(\"operationName\"))\n object.operationName = message.operationName;\n var keys2;\n if (message.variablesJson && (keys2 = Object.keys(message.variablesJson)).length) {\n object.variablesJson = {};\n for (var j = 0; j < keys2.length; ++j)\n object.variablesJson[keys2[j]] = message.variablesJson[keys2[j]];\n }\n return object;\n };\n\n /**\n * Converts this Details to JSON.\n * @function toJSON\n * @memberof Trace.Details\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Details.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Details;\n })();\n\n Trace.Error = (function() {\n\n /**\n * Properties of an Error.\n * @memberof Trace\n * @interface IError\n * @property {string|null} [message] Error message\n * @property {Array.<Trace.ILocation>|null} [location] Error location\n * @property {number|null} [timeNs] Error timeNs\n * @property {string|null} [json] Error json\n */\n\n /**\n * Constructs a new Error.\n * @memberof Trace\n * @classdesc Represents an Error.\n * @implements IError\n * @constructor\n * @param {Trace.IError=} [properties] Properties to set\n */\n function Error(properties) {\n this.location = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Error message.\n * @member {string} message\n * @memberof Trace.Error\n * @instance\n */\n Error.prototype.message = \"\";\n\n /**\n * Error location.\n * @member {Array.<Trace.ILocation>} location\n * @memberof Trace.Error\n * @instance\n */\n Error.prototype.location = $util.emptyArray;\n\n /**\n * Error timeNs.\n * @member {number} timeNs\n * @memberof Trace.Error\n * @instance\n */\n Error.prototype.timeNs = 0;\n\n /**\n * Error json.\n * @member {string} json\n * @memberof Trace.Error\n * @instance\n */\n Error.prototype.json = \"\";\n\n /**\n * Creates a new Error instance using the specified properties.\n * @function create\n * @memberof Trace.Error\n * @static\n * @param {Trace.IError=} [properties] Properties to set\n * @returns {Trace.Error} Error instance\n */\n Error.create = function create(properties) {\n return new Error(properties);\n };\n\n /**\n * Encodes the specified Error message. Does not implicitly {@link Trace.Error.verify|verify} messages.\n * @function encode\n * @memberof Trace.Error\n * @static\n * @param {Trace.IError} message Error message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Error.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.message != null && Object.hasOwnProperty.call(message, \"message\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.message);\n if (message.location != null && message.location.length)\n for (var i = 0; i < message.location.length; ++i)\n $root.Trace.Location.encode(message.location[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.timeNs != null && Object.hasOwnProperty.call(message, \"timeNs\"))\n writer.uint32(/* id 3, wireType 0 =*/24).uint64(message.timeNs);\n if (message.json != null && Object.hasOwnProperty.call(message, \"json\"))\n writer.uint32(/* id 4, wireType 2 =*/34).string(message.json);\n return writer;\n };\n\n /**\n * Encodes the specified Error message, length delimited. Does not implicitly {@link Trace.Error.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.Error\n * @static\n * @param {Trace.IError} message Error message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Error.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an Error message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.Error\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.Error} Error\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Error.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.Error();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.message = reader.string();\n break;\n case 2:\n if (!(message.location && message.location.length))\n message.location = [];\n message.location.push($root.Trace.Location.decode(reader, reader.uint32()));\n break;\n case 3:\n message.timeNs = reader.uint64();\n break;\n case 4:\n message.json = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an Error message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.Error\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.Error} Error\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Error.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an Error message.\n * @function verify\n * @memberof Trace.Error\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Error.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.message != null && message.hasOwnProperty(\"message\"))\n if (!$util.isString(message.message))\n return \"message: string expected\";\n if (message.location != null && message.hasOwnProperty(\"location\")) {\n if (!Array.isArray(message.location))\n return \"location: array expected\";\n for (var i = 0; i < message.location.length; ++i) {\n var error = $root.Trace.Location.verify(message.location[i]);\n if (error)\n return \"location.\" + error;\n }\n }\n if (message.timeNs != null && message.hasOwnProperty(\"timeNs\"))\n if (!$util.isInteger(message.timeNs) && !(message.timeNs && $util.isInteger(message.timeNs.low) && $util.isInteger(message.timeNs.high)))\n return \"timeNs: integer|Long expected\";\n if (message.json != null && message.hasOwnProperty(\"json\"))\n if (!$util.isString(message.json))\n return \"json: string expected\";\n return null;\n };\n\n /**\n * Creates a plain object from an Error message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.Error\n * @static\n * @param {Trace.Error} message Error\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Error.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.location = [];\n if (options.defaults) {\n object.message = \"\";\n object.timeNs = 0;\n object.json = \"\";\n }\n if (message.message != null && message.hasOwnProperty(\"message\"))\n object.message = message.message;\n if (message.location && message.location.length) {\n object.location = [];\n for (var j = 0; j < message.location.length; ++j)\n object.location[j] = $root.Trace.Location.toObject(message.location[j], options);\n }\n if (message.timeNs != null && message.hasOwnProperty(\"timeNs\"))\n if (typeof message.timeNs === \"number\")\n object.timeNs = options.longs === String ? String(message.timeNs) : message.timeNs;\n else\n object.timeNs = options.longs === String ? $util.Long.prototype.toString.call(message.timeNs) : options.longs === Number ? new $util.LongBits(message.timeNs.low >>> 0, message.timeNs.high >>> 0).toNumber(true) : message.timeNs;\n if (message.json != null && message.hasOwnProperty(\"json\"))\n object.json = message.json;\n return object;\n };\n\n /**\n * Converts this Error to JSON.\n * @function toJSON\n * @memberof Trace.Error\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Error.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Error;\n })();\n\n Trace.HTTP = (function() {\n\n /**\n * Properties of a HTTP.\n * @memberof Trace\n * @interface IHTTP\n * @property {Trace.HTTP.Method|null} [method] HTTP method\n * @property {Object.<string,Trace.HTTP.IValues>|null} [requestHeaders] HTTP requestHeaders\n * @property {Object.<string,Trace.HTTP.IValues>|null} [responseHeaders] HTTP responseHeaders\n * @property {number|null} [statusCode] HTTP statusCode\n */\n\n /**\n * Constructs a new HTTP.\n * @memberof Trace\n * @classdesc Represents a HTTP.\n * @implements IHTTP\n * @constructor\n * @param {Trace.IHTTP=} [properties] Properties to set\n */\n function HTTP(properties) {\n this.requestHeaders = {};\n this.responseHeaders = {};\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * HTTP method.\n * @member {Trace.HTTP.Method} method\n * @memberof Trace.HTTP\n * @instance\n */\n HTTP.prototype.method = 0;\n\n /**\n * HTTP requestHeaders.\n * @member {Object.<string,Trace.HTTP.IValues>} requestHeaders\n * @memberof Trace.HTTP\n * @instance\n */\n HTTP.prototype.requestHeaders = $util.emptyObject;\n\n /**\n * HTTP responseHeaders.\n * @member {Object.<string,Trace.HTTP.IValues>} responseHeaders\n * @memberof Trace.HTTP\n * @instance\n */\n HTTP.prototype.responseHeaders = $util.emptyObject;\n\n /**\n * HTTP statusCode.\n * @member {number} statusCode\n * @memberof Trace.HTTP\n * @instance\n */\n HTTP.prototype.statusCode = 0;\n\n /**\n * Creates a new HTTP instance using the specified properties.\n * @function create\n * @memberof Trace.HTTP\n * @static\n * @param {Trace.IHTTP=} [properties] Properties to set\n * @returns {Trace.HTTP} HTTP instance\n */\n HTTP.create = function create(properties) {\n return new HTTP(properties);\n };\n\n /**\n * Encodes the specified HTTP message. Does not implicitly {@link Trace.HTTP.verify|verify} messages.\n * @function encode\n * @memberof Trace.HTTP\n * @static\n * @param {Trace.IHTTP} message HTTP message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n HTTP.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.method != null && Object.hasOwnProperty.call(message, \"method\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int32(message.method);\n if (message.requestHeaders != null && Object.hasOwnProperty.call(message, \"requestHeaders\"))\n for (var keys = Object.keys(message.requestHeaders), i = 0; i < keys.length; ++i) {\n writer.uint32(/* id 4, wireType 2 =*/34).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]);\n $root.Trace.HTTP.Values.encode(message.requestHeaders[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim();\n }\n if (message.responseHeaders != null && Object.hasOwnProperty.call(message, \"responseHeaders\"))\n for (var keys = Object.keys(message.responseHeaders), i = 0; i < keys.length; ++i) {\n writer.uint32(/* id 5, wireType 2 =*/42).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]);\n $root.Trace.HTTP.Values.encode(message.responseHeaders[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim();\n }\n if (message.statusCode != null && Object.hasOwnProperty.call(message, \"statusCode\"))\n writer.uint32(/* id 6, wireType 0 =*/48).uint32(message.statusCode);\n return writer;\n };\n\n /**\n * Encodes the specified HTTP message, length delimited. Does not implicitly {@link Trace.HTTP.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.HTTP\n * @static\n * @param {Trace.IHTTP} message HTTP message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n HTTP.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a HTTP message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.HTTP\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.HTTP} HTTP\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n HTTP.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.HTTP(), key;\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.method = reader.int32();\n break;\n case 4:\n reader.skip().pos++;\n if (message.requestHeaders === $util.emptyObject)\n message.requestHeaders = {};\n key = reader.string();\n reader.pos++;\n message.requestHeaders[key] = $root.Trace.HTTP.Values.decode(reader, reader.uint32());\n break;\n case 5:\n reader.skip().pos++;\n if (message.responseHeaders === $util.emptyObject)\n message.responseHeaders = {};\n key = reader.string();\n reader.pos++;\n message.responseHeaders[key] = $root.Trace.HTTP.Values.decode(reader, reader.uint32());\n break;\n case 6:\n message.statusCode = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a HTTP message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.HTTP\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.HTTP} HTTP\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n HTTP.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a HTTP message.\n * @function verify\n * @memberof Trace.HTTP\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n HTTP.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.method != null && message.hasOwnProperty(\"method\"))\n switch (message.method) {\n default:\n return \"method: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n case 7:\n case 8:\n case 9:\n break;\n }\n if (message.requestHeaders != null && message.hasOwnProperty(\"requestHeaders\")) {\n if (!$util.isObject(message.requestHeaders))\n return \"requestHeaders: object expected\";\n var key = Object.keys(message.requestHeaders);\n for (var i = 0; i < key.length; ++i) {\n var error = $root.Trace.HTTP.Values.verify(message.requestHeaders[key[i]]);\n if (error)\n return \"requestHeaders.\" + error;\n }\n }\n if (message.responseHeaders != null && message.hasOwnProperty(\"responseHeaders\")) {\n if (!$util.isObject(message.responseHeaders))\n return \"responseHeaders: object expected\";\n var key = Object.keys(message.responseHeaders);\n for (var i = 0; i < key.length; ++i) {\n var error = $root.Trace.HTTP.Values.verify(message.responseHeaders[key[i]]);\n if (error)\n return \"responseHeaders.\" + error;\n }\n }\n if (message.statusCode != null && message.hasOwnProperty(\"statusCode\"))\n if (!$util.isInteger(message.statusCode))\n return \"statusCode: integer expected\";\n return null;\n };\n\n /**\n * Creates a plain object from a HTTP message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.HTTP\n * @static\n * @param {Trace.HTTP} message HTTP\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n HTTP.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.objects || options.defaults) {\n object.requestHeaders = {};\n object.responseHeaders = {};\n }\n if (options.defaults) {\n object.method = options.enums === String ? \"UNKNOWN\" : 0;\n object.statusCode = 0;\n }\n if (message.method != null && message.hasOwnProperty(\"method\"))\n object.method = options.enums === String ? $root.Trace.HTTP.Method[message.method] : message.method;\n var keys2;\n if (message.requestHeaders && (keys2 = Object.keys(message.requestHeaders)).length) {\n object.requestHeaders = {};\n for (var j = 0; j < keys2.length; ++j)\n object.requestHeaders[keys2[j]] = $root.Trace.HTTP.Values.toObject(message.requestHeaders[keys2[j]], options);\n }\n if (message.responseHeaders && (keys2 = Object.keys(message.responseHeaders)).length) {\n object.responseHeaders = {};\n for (var j = 0; j < keys2.length; ++j)\n object.responseHeaders[keys2[j]] = $root.Trace.HTTP.Values.toObject(message.responseHeaders[keys2[j]], options);\n }\n if (message.statusCode != null && message.hasOwnProperty(\"statusCode\"))\n object.statusCode = message.statusCode;\n return object;\n };\n\n /**\n * Converts this HTTP to JSON.\n * @function toJSON\n * @memberof Trace.HTTP\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n HTTP.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n HTTP.Values = (function() {\n\n /**\n * Properties of a Values.\n * @memberof Trace.HTTP\n * @interface IValues\n * @property {Array.<string>|null} [value] Values value\n */\n\n /**\n * Constructs a new Values.\n * @memberof Trace.HTTP\n * @classdesc Represents a Values.\n * @implements IValues\n * @constructor\n * @param {Trace.HTTP.IValues=} [properties] Properties to set\n */\n function Values(properties) {\n this.value = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Values value.\n * @member {Array.<string>} value\n * @memberof Trace.HTTP.Values\n * @instance\n */\n Values.prototype.value = $util.emptyArray;\n\n /**\n * Creates a new Values instance using the specified properties.\n * @function create\n * @memberof Trace.HTTP.Values\n * @static\n * @param {Trace.HTTP.IValues=} [properties] Properties to set\n * @returns {Trace.HTTP.Values} Values instance\n */\n Values.create = function create(properties) {\n return new Values(properties);\n };\n\n /**\n * Encodes the specified Values message. Does not implicitly {@link Trace.HTTP.Values.verify|verify} messages.\n * @function encode\n * @memberof Trace.HTTP.Values\n * @static\n * @param {Trace.HTTP.IValues} message Values message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Values.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.value != null && message.value.length)\n for (var i = 0; i < message.value.length; ++i)\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.value[i]);\n return writer;\n };\n\n /**\n * Encodes the specified Values message, length delimited. Does not implicitly {@link Trace.HTTP.Values.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.HTTP.Values\n * @static\n * @param {Trace.HTTP.IValues} message Values message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Values.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Values message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.HTTP.Values\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.HTTP.Values} Values\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Values.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.HTTP.Values();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.value && message.value.length))\n message.value = [];\n message.value.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Values message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.HTTP.Values\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.HTTP.Values} Values\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Values.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Values message.\n * @function verify\n * @memberof Trace.HTTP.Values\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Values.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.value != null && message.hasOwnProperty(\"value\")) {\n if (!Array.isArray(message.value))\n return \"value: array expected\";\n for (var i = 0; i < message.value.length; ++i)\n if (!$util.isString(message.value[i]))\n return \"value: string[] expected\";\n }\n return null;\n };\n\n /**\n * Creates a plain object from a Values message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.HTTP.Values\n * @static\n * @param {Trace.HTTP.Values} message Values\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Values.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.value = [];\n if (message.value && message.value.length) {\n object.value = [];\n for (var j = 0; j < message.value.length; ++j)\n object.value[j] = message.value[j];\n }\n return object;\n };\n\n /**\n * Converts this Values to JSON.\n * @function toJSON\n * @memberof Trace.HTTP.Values\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Values.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Values;\n })();\n\n /**\n * Method enum.\n * @name Trace.HTTP.Method\n * @enum {string}\n * @property {number} UNKNOWN=0 UNKNOWN value\n * @property {number} OPTIONS=1 OPTIONS value\n * @property {number} GET=2 GET value\n * @property {number} HEAD=3 HEAD value\n * @property {number} POST=4 POST value\n * @property {number} PUT=5 PUT value\n * @property {number} DELETE=6 DELETE value\n * @property {number} TRACE=7 TRACE value\n * @property {number} CONNECT=8 CONNECT value\n * @property {number} PATCH=9 PATCH value\n */\n HTTP.Method = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"UNKNOWN\"] = 0;\n values[valuesById[1] = \"OPTIONS\"] = 1;\n values[valuesById[2] = \"GET\"] = 2;\n values[valuesById[3] = \"HEAD\"] = 3;\n values[valuesById[4] = \"POST\"] = 4;\n values[valuesById[5] = \"PUT\"] = 5;\n values[valuesById[6] = \"DELETE\"] = 6;\n values[valuesById[7] = \"TRACE\"] = 7;\n values[valuesById[8] = \"CONNECT\"] = 8;\n values[valuesById[9] = \"PATCH\"] = 9;\n return values;\n })();\n\n return HTTP;\n })();\n\n Trace.Location = (function() {\n\n /**\n * Properties of a Location.\n * @memberof Trace\n * @interface ILocation\n * @property {number|null} [line] Location line\n * @property {number|null} [column] Location column\n */\n\n /**\n * Constructs a new Location.\n * @memberof Trace\n * @classdesc Represents a Location.\n * @implements ILocation\n * @constructor\n * @param {Trace.ILocation=} [properties] Properties to set\n */\n function Location(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Location line.\n * @member {number} line\n * @memberof Trace.Location\n * @instance\n */\n Location.prototype.line = 0;\n\n /**\n * Location column.\n * @member {number} column\n * @memberof Trace.Location\n * @instance\n */\n Location.prototype.column = 0;\n\n /**\n * Creates a new Location instance using the specified properties.\n * @function create\n * @memberof Trace.Location\n * @static\n * @param {Trace.ILocation=} [properties] Properties to set\n * @returns {Trace.Location} Location instance\n */\n Location.create = function create(properties) {\n return new Location(properties);\n };\n\n /**\n * Encodes the specified Location message. Does not implicitly {@link Trace.Location.verify|verify} messages.\n * @function encode\n * @memberof Trace.Location\n * @static\n * @param {Trace.ILocation} message Location message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Location.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.line != null && Object.hasOwnProperty.call(message, \"line\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.line);\n if (message.column != null && Object.hasOwnProperty.call(message, \"column\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.column);\n return writer;\n };\n\n /**\n * Encodes the specified Location message, length delimited. Does not implicitly {@link Trace.Location.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.Location\n * @static\n * @param {Trace.ILocation} message Location message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Location.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Location message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.Location\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.Location} Location\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Location.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.Location();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.line = reader.uint32();\n break;\n case 2:\n message.column = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Location message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.Location\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.Location} Location\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Location.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Location message.\n * @function verify\n * @memberof Trace.Location\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Location.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.line != null && message.hasOwnProperty(\"line\"))\n if (!$util.isInteger(message.line))\n return \"line: integer expected\";\n if (message.column != null && message.hasOwnProperty(\"column\"))\n if (!$util.isInteger(message.column))\n return \"column: integer expected\";\n return null;\n };\n\n /**\n * Creates a plain object from a Location message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.Location\n * @static\n * @param {Trace.Location} message Location\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Location.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.line = 0;\n object.column = 0;\n }\n if (message.line != null && message.hasOwnProperty(\"line\"))\n object.line = message.line;\n if (message.column != null && message.hasOwnProperty(\"column\"))\n object.column = message.column;\n return object;\n };\n\n /**\n * Converts this Location to JSON.\n * @function toJSON\n * @memberof Trace.Location\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Location.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Location;\n })();\n\n Trace.Node = (function() {\n\n /**\n * Properties of a Node.\n * @memberof Trace\n * @interface INode\n * @property {string|null} [responseName] Node responseName\n * @property {number|null} [index] Node index\n * @property {string|null} [originalFieldName] Node originalFieldName\n * @property {string|null} [type] Node type\n * @property {string|null} [parentType] Node parentType\n * @property {Trace.ICachePolicy|null} [cachePolicy] Node cachePolicy\n * @property {number|null} [startTime] Node startTime\n * @property {number|null} [endTime] Node endTime\n * @property {Array.<Trace.IError>|null} [error] Node error\n * @property {Array.<Trace.INode>|null} [child] Node child\n */\n\n /**\n * Constructs a new Node.\n * @memberof Trace\n * @classdesc Represents a Node.\n * @implements INode\n * @constructor\n * @param {Trace.INode=} [properties] Properties to set\n */\n function Node(properties) {\n this.error = [];\n this.child = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Node responseName.\n * @member {string} responseName\n * @memberof Trace.Node\n * @instance\n */\n Node.prototype.responseName = \"\";\n\n /**\n * Node index.\n * @member {number} index\n * @memberof Trace.Node\n * @instance\n */\n Node.prototype.index = 0;\n\n /**\n * Node originalFieldName.\n * @member {string} originalFieldName\n * @memberof Trace.Node\n * @instance\n */\n Node.prototype.originalFieldName = \"\";\n\n /**\n * Node type.\n * @member {string} type\n * @memberof Trace.Node\n * @instance\n */\n Node.prototype.type = \"\";\n\n /**\n * Node parentType.\n * @member {string} parentType\n * @memberof Trace.Node\n * @instance\n */\n Node.prototype.parentType = \"\";\n\n /**\n * Node cachePolicy.\n * @member {Trace.ICachePolicy|null|undefined} cachePolicy\n * @memberof Trace.Node\n * @instance\n */\n Node.prototype.cachePolicy = null;\n\n /**\n * Node startTime.\n * @member {number} startTime\n * @memberof Trace.Node\n * @instance\n */\n Node.prototype.startTime = 0;\n\n /**\n * Node endTime.\n * @member {number} endTime\n * @memberof Trace.Node\n * @instance\n */\n Node.prototype.endTime = 0;\n\n /**\n * Node error.\n * @member {Array.<Trace.IError>} error\n * @memberof Trace.Node\n * @instance\n */\n Node.prototype.error = $util.emptyArray;\n\n /**\n * Node child.\n * @member {Array.<Trace.INode>} child\n * @memberof Trace.Node\n * @instance\n */\n Node.prototype.child = $util.emptyArray;\n\n // OneOf field names bound to virtual getters and setters\n var $oneOfFields;\n\n /**\n * Node id.\n * @member {\"responseName\"|\"index\"|undefined} id\n * @memberof Trace.Node\n * @instance\n */\n Object.defineProperty(Node.prototype, \"id\", {\n get: $util.oneOfGetter($oneOfFields = [\"responseName\", \"index\"]),\n set: $util.oneOfSetter($oneOfFields)\n });\n\n /**\n * Creates a new Node instance using the specified properties.\n * @function create\n * @memberof Trace.Node\n * @static\n * @param {Trace.INode=} [properties] Properties to set\n * @returns {Trace.Node} Node instance\n */\n Node.create = function create(properties) {\n return new Node(properties);\n };\n\n /**\n * Encodes the specified Node message. Does not implicitly {@link Trace.Node.verify|verify} messages.\n * @function encode\n * @memberof Trace.Node\n * @static\n * @param {Trace.INode} message Node message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Node.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.responseName != null && Object.hasOwnProperty.call(message, \"responseName\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.responseName);\n if (message.index != null && Object.hasOwnProperty.call(message, \"index\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.index);\n if (message.type != null && Object.hasOwnProperty.call(message, \"type\"))\n writer.uint32(/* id 3, wireType 2 =*/26).string(message.type);\n if (message.cachePolicy != null && Object.hasOwnProperty.call(message, \"cachePolicy\"))\n $root.Trace.CachePolicy.encode(message.cachePolicy, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();\n if (message.startTime != null && Object.hasOwnProperty.call(message, \"startTime\"))\n writer.uint32(/* id 8, wireType 0 =*/64).uint64(message.startTime);\n if (message.endTime != null && Object.hasOwnProperty.call(message, \"endTime\"))\n writer.uint32(/* id 9, wireType 0 =*/72).uint64(message.endTime);\n if (message.error != null && message.error.length)\n for (var i = 0; i < message.error.length; ++i)\n $root.Trace.Error.encode(message.error[i], writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim();\n if (message.child != null && message.child.length)\n for (var i = 0; i < message.child.length; ++i)\n $root.Trace.Node.encode(message.child[i], writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim();\n if (message.parentType != null && Object.hasOwnProperty.call(message, \"parentType\"))\n writer.uint32(/* id 13, wireType 2 =*/106).string(message.parentType);\n if (message.originalFieldName != null && Object.hasOwnProperty.call(message, \"originalFieldName\"))\n writer.uint32(/* id 14, wireType 2 =*/114).string(message.originalFieldName);\n return writer;\n };\n\n /**\n * Encodes the specified Node message, length delimited. Does not implicitly {@link Trace.Node.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.Node\n * @static\n * @param {Trace.INode} message Node message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Node.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Node message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.Node\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.Node} Node\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Node.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.Node();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.responseName = reader.string();\n break;\n case 2:\n message.index = reader.uint32();\n break;\n case 14:\n message.originalFieldName = reader.string();\n break;\n case 3:\n message.type = reader.string();\n break;\n case 13:\n message.parentType = reader.string();\n break;\n case 5:\n message.cachePolicy = $root.Trace.CachePolicy.decode(reader, reader.uint32());\n break;\n case 8:\n message.startTime = reader.uint64();\n break;\n case 9:\n message.endTime = reader.uint64();\n break;\n case 11:\n if (!(message.error && message.error.length))\n message.error = [];\n message.error.push($root.Trace.Error.decode(reader, reader.uint32()));\n break;\n case 12:\n if (!(message.child && message.child.length))\n message.child = [];\n message.child.push($root.Trace.Node.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Node message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.Node\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.Node} Node\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Node.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Node message.\n * @function verify\n * @memberof Trace.Node\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Node.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n var properties = {};\n if (message.responseName != null && message.hasOwnProperty(\"responseName\")) {\n properties.id = 1;\n if (!$util.isString(message.responseName))\n return \"responseName: string expected\";\n }\n if (message.index != null && message.hasOwnProperty(\"index\")) {\n if (properties.id === 1)\n return \"id: multiple values\";\n properties.id = 1;\n if (!$util.isInteger(message.index))\n return \"index: integer expected\";\n }\n if (message.originalFieldName != null && message.hasOwnProperty(\"originalFieldName\"))\n if (!$util.isString(message.originalFieldName))\n return \"originalFieldName: string expected\";\n if (message.type != null && message.hasOwnProperty(\"type\"))\n if (!$util.isString(message.type))\n return \"type: string expected\";\n if (message.parentType != null && message.hasOwnProperty(\"parentType\"))\n if (!$util.isString(message.parentType))\n return \"parentType: string expected\";\n if (message.cachePolicy != null && message.hasOwnProperty(\"cachePolicy\")) {\n var error = $root.Trace.CachePolicy.verify(message.cachePolicy);\n if (error)\n return \"cachePolicy.\" + error;\n }\n if (message.startTime != null && message.hasOwnProperty(\"startTime\"))\n if (!$util.isInteger(message.startTime) && !(message.startTime && $util.isInteger(message.startTime.low) && $util.isInteger(message.startTime.high)))\n return \"startTime: integer|Long expected\";\n if (message.endTime != null && message.hasOwnProperty(\"endTime\"))\n if (!$util.isInteger(message.endTime) && !(message.endTime && $util.isInteger(message.endTime.low) && $util.isInteger(message.endTime.high)))\n return \"endTime: integer|Long expected\";\n if (message.error != null && message.hasOwnProperty(\"error\")) {\n if (!Array.isArray(message.error))\n return \"error: array expected\";\n for (var i = 0; i < message.error.length; ++i) {\n var error = $root.Trace.Error.verify(message.error[i]);\n if (error)\n return \"error.\" + error;\n }\n }\n if (message.child != null && message.hasOwnProperty(\"child\")) {\n if (!Array.isArray(message.child))\n return \"child: array expected\";\n for (var i = 0; i < message.child.length; ++i) {\n var error = $root.Trace.Node.verify(message.child[i]);\n if (error)\n return \"child.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a plain object from a Node message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.Node\n * @static\n * @param {Trace.Node} message Node\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Node.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.error = [];\n object.child = [];\n }\n if (options.defaults) {\n object.type = \"\";\n object.cachePolicy = null;\n object.startTime = 0;\n object.endTime = 0;\n object.parentType = \"\";\n object.originalFieldName = \"\";\n }\n if (message.responseName != null && message.hasOwnProperty(\"responseName\")) {\n object.responseName = message.responseName;\n if (options.oneofs)\n object.id = \"responseName\";\n }\n if (message.index != null && message.hasOwnProperty(\"index\")) {\n object.index = message.index;\n if (options.oneofs)\n object.id = \"index\";\n }\n if (message.type != null && message.hasOwnProperty(\"type\"))\n object.type = message.type;\n if (message.cachePolicy != null && message.hasOwnProperty(\"cachePolicy\"))\n object.cachePolicy = $root.Trace.CachePolicy.toObject(message.cachePolicy, options);\n if (message.startTime != null && message.hasOwnProperty(\"startTime\"))\n if (typeof message.startTime === \"number\")\n object.startTime = options.longs === String ? String(message.startTime) : message.startTime;\n else\n object.startTime = options.longs === String ? $util.Long.prototype.toString.call(message.startTime) : options.longs === Number ? new $util.LongBits(message.startTime.low >>> 0, message.startTime.high >>> 0).toNumber(true) : message.startTime;\n if (message.endTime != null && message.hasOwnProperty(\"endTime\"))\n if (typeof message.endTime === \"number\")\n object.endTime = options.longs === String ? String(message.endTime) : message.endTime;\n else\n object.endTime = options.longs === String ? $util.Long.prototype.toString.call(message.endTime) : options.longs === Number ? new $util.LongBits(message.endTime.low >>> 0, message.endTime.high >>> 0).toNumber(true) : message.endTime;\n if (message.error && message.error.length) {\n object.error = [];\n for (var j = 0; j < message.error.length; ++j)\n object.error[j] = $root.Trace.Error.toObject(message.error[j], options);\n }\n if (message.child && message.child.length) {\n object.child = [];\n for (var j = 0; j < message.child.length; ++j)\n object.child[j] = $root.Trace.Node.toObject(message.child[j], options);\n }\n if (message.parentType != null && message.hasOwnProperty(\"parentType\"))\n object.parentType = message.parentType;\n if (message.originalFieldName != null && message.hasOwnProperty(\"originalFieldName\"))\n object.originalFieldName = message.originalFieldName;\n return object;\n };\n\n /**\n * Converts this Node to JSON.\n * @function toJSON\n * @memberof Trace.Node\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Node.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Node;\n })();\n\n Trace.QueryPlanNode = (function() {\n\n /**\n * Properties of a QueryPlanNode.\n * @memberof Trace\n * @interface IQueryPlanNode\n * @property {Trace.QueryPlanNode.ISequenceNode|null} [sequence] QueryPlanNode sequence\n * @property {Trace.QueryPlanNode.IParallelNode|null} [parallel] QueryPlanNode parallel\n * @property {Trace.QueryPlanNode.IFetchNode|null} [fetch] QueryPlanNode fetch\n * @property {Trace.QueryPlanNode.IFlattenNode|null} [flatten] QueryPlanNode flatten\n * @property {Trace.QueryPlanNode.IDeferNode|null} [defer] QueryPlanNode defer\n * @property {Trace.QueryPlanNode.IConditionNode|null} [condition] QueryPlanNode condition\n */\n\n /**\n * Constructs a new QueryPlanNode.\n * @memberof Trace\n * @classdesc Represents a QueryPlanNode.\n * @implements IQueryPlanNode\n * @constructor\n * @param {Trace.IQueryPlanNode=} [properties] Properties to set\n */\n function QueryPlanNode(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * QueryPlanNode sequence.\n * @member {Trace.QueryPlanNode.ISequenceNode|null|undefined} sequence\n * @memberof Trace.QueryPlanNode\n * @instance\n */\n QueryPlanNode.prototype.sequence = null;\n\n /**\n * QueryPlanNode parallel.\n * @member {Trace.QueryPlanNode.IParallelNode|null|undefined} parallel\n * @memberof Trace.QueryPlanNode\n * @instance\n */\n QueryPlanNode.prototype.parallel = null;\n\n /**\n * QueryPlanNode fetch.\n * @member {Trace.QueryPlanNode.IFetchNode|null|undefined} fetch\n * @memberof Trace.QueryPlanNode\n * @instance\n */\n QueryPlanNode.prototype.fetch = null;\n\n /**\n * QueryPlanNode flatten.\n * @member {Trace.QueryPlanNode.IFlattenNode|null|undefined} flatten\n * @memberof Trace.QueryPlanNode\n * @instance\n */\n QueryPlanNode.prototype.flatten = null;\n\n /**\n * QueryPlanNode defer.\n * @member {Trace.QueryPlanNode.IDeferNode|null|undefined} defer\n * @memberof Trace.QueryPlanNode\n * @instance\n */\n QueryPlanNode.prototype.defer = null;\n\n /**\n * QueryPlanNode condition.\n * @member {Trace.QueryPlanNode.IConditionNode|null|undefined} condition\n * @memberof Trace.QueryPlanNode\n * @instance\n */\n QueryPlanNode.prototype.condition = null;\n\n // OneOf field names bound to virtual getters and setters\n var $oneOfFields;\n\n /**\n * QueryPlanNode node.\n * @member {\"sequence\"|\"parallel\"|\"fetch\"|\"flatten\"|\"defer\"|\"condition\"|undefined} node\n * @memberof Trace.QueryPlanNode\n * @instance\n */\n Object.defineProperty(QueryPlanNode.prototype, \"node\", {\n get: $util.oneOfGetter($oneOfFields = [\"sequence\", \"parallel\", \"fetch\", \"flatten\", \"defer\", \"condition\"]),\n set: $util.oneOfSetter($oneOfFields)\n });\n\n /**\n * Creates a new QueryPlanNode instance using the specified properties.\n * @function create\n * @memberof Trace.QueryPlanNode\n * @static\n * @param {Trace.IQueryPlanNode=} [properties] Properties to set\n * @returns {Trace.QueryPlanNode} QueryPlanNode instance\n */\n QueryPlanNode.create = function create(properties) {\n return new QueryPlanNode(properties);\n };\n\n /**\n * Encodes the specified QueryPlanNode message. Does not implicitly {@link Trace.QueryPlanNode.verify|verify} messages.\n * @function encode\n * @memberof Trace.QueryPlanNode\n * @static\n * @param {Trace.IQueryPlanNode} message QueryPlanNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n QueryPlanNode.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.sequence != null && Object.hasOwnProperty.call(message, \"sequence\"))\n $root.Trace.QueryPlanNode.SequenceNode.encode(message.sequence, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.parallel != null && Object.hasOwnProperty.call(message, \"parallel\"))\n $root.Trace.QueryPlanNode.ParallelNode.encode(message.parallel, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.fetch != null && Object.hasOwnProperty.call(message, \"fetch\"))\n $root.Trace.QueryPlanNode.FetchNode.encode(message.fetch, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.flatten != null && Object.hasOwnProperty.call(message, \"flatten\"))\n $root.Trace.QueryPlanNode.FlattenNode.encode(message.flatten, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();\n if (message.defer != null && Object.hasOwnProperty.call(message, \"defer\"))\n $root.Trace.QueryPlanNode.DeferNode.encode(message.defer, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();\n if (message.condition != null && Object.hasOwnProperty.call(message, \"condition\"))\n $root.Trace.QueryPlanNode.ConditionNode.encode(message.condition, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified QueryPlanNode message, length delimited. Does not implicitly {@link Trace.QueryPlanNode.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.QueryPlanNode\n * @static\n * @param {Trace.IQueryPlanNode} message QueryPlanNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n QueryPlanNode.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a QueryPlanNode message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.QueryPlanNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.QueryPlanNode} QueryPlanNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n QueryPlanNode.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.QueryPlanNode();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sequence = $root.Trace.QueryPlanNode.SequenceNode.decode(reader, reader.uint32());\n break;\n case 2:\n message.parallel = $root.Trace.QueryPlanNode.ParallelNode.decode(reader, reader.uint32());\n break;\n case 3:\n message.fetch = $root.Trace.QueryPlanNode.FetchNode.decode(reader, reader.uint32());\n break;\n case 4:\n message.flatten = $root.Trace.QueryPlanNode.FlattenNode.decode(reader, reader.uint32());\n break;\n case 5:\n message.defer = $root.Trace.QueryPlanNode.DeferNode.decode(reader, reader.uint32());\n break;\n case 6:\n message.condition = $root.Trace.QueryPlanNode.ConditionNode.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a QueryPlanNode message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.QueryPlanNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.QueryPlanNode} QueryPlanNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n QueryPlanNode.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a QueryPlanNode message.\n * @function verify\n * @memberof Trace.QueryPlanNode\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n QueryPlanNode.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n var properties = {};\n if (message.sequence != null && message.hasOwnProperty(\"sequence\")) {\n properties.node = 1;\n {\n var error = $root.Trace.QueryPlanNode.SequenceNode.verify(message.sequence);\n if (error)\n return \"sequence.\" + error;\n }\n }\n if (message.parallel != null && message.hasOwnProperty(\"parallel\")) {\n if (properties.node === 1)\n return \"node: multiple values\";\n properties.node = 1;\n {\n var error = $root.Trace.QueryPlanNode.ParallelNode.verify(message.parallel);\n if (error)\n return \"parallel.\" + error;\n }\n }\n if (message.fetch != null && message.hasOwnProperty(\"fetch\")) {\n if (properties.node === 1)\n return \"node: multiple values\";\n properties.node = 1;\n {\n var error = $root.Trace.QueryPlanNode.FetchNode.verify(message.fetch);\n if (error)\n return \"fetch.\" + error;\n }\n }\n if (message.flatten != null && message.hasOwnProperty(\"flatten\")) {\n if (properties.node === 1)\n return \"node: multiple values\";\n properties.node = 1;\n {\n var error = $root.Trace.QueryPlanNode.FlattenNode.verify(message.flatten);\n if (error)\n return \"flatten.\" + error;\n }\n }\n if (message.defer != null && message.hasOwnProperty(\"defer\")) {\n if (properties.node === 1)\n return \"node: multiple values\";\n properties.node = 1;\n {\n var error = $root.Trace.QueryPlanNode.DeferNode.verify(message.defer);\n if (error)\n return \"defer.\" + error;\n }\n }\n if (message.condition != null && message.hasOwnProperty(\"condition\")) {\n if (properties.node === 1)\n return \"node: multiple values\";\n properties.node = 1;\n {\n var error = $root.Trace.QueryPlanNode.ConditionNode.verify(message.condition);\n if (error)\n return \"condition.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a plain object from a QueryPlanNode message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.QueryPlanNode\n * @static\n * @param {Trace.QueryPlanNode} message QueryPlanNode\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n QueryPlanNode.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (message.sequence != null && message.hasOwnProperty(\"sequence\")) {\n object.sequence = $root.Trace.QueryPlanNode.SequenceNode.toObject(message.sequence, options);\n if (options.oneofs)\n object.node = \"sequence\";\n }\n if (message.parallel != null && message.hasOwnProperty(\"parallel\")) {\n object.parallel = $root.Trace.QueryPlanNode.ParallelNode.toObject(message.parallel, options);\n if (options.oneofs)\n object.node = \"parallel\";\n }\n if (message.fetch != null && message.hasOwnProperty(\"fetch\")) {\n object.fetch = $root.Trace.QueryPlanNode.FetchNode.toObject(message.fetch, options);\n if (options.oneofs)\n object.node = \"fetch\";\n }\n if (message.flatten != null && message.hasOwnProperty(\"flatten\")) {\n object.flatten = $root.Trace.QueryPlanNode.FlattenNode.toObject(message.flatten, options);\n if (options.oneofs)\n object.node = \"flatten\";\n }\n if (message.defer != null && message.hasOwnProperty(\"defer\")) {\n object.defer = $root.Trace.QueryPlanNode.DeferNode.toObject(message.defer, options);\n if (options.oneofs)\n object.node = \"defer\";\n }\n if (message.condition != null && message.hasOwnProperty(\"condition\")) {\n object.condition = $root.Trace.QueryPlanNode.ConditionNode.toObject(message.condition, options);\n if (options.oneofs)\n object.node = \"condition\";\n }\n return object;\n };\n\n /**\n * Converts this QueryPlanNode to JSON.\n * @function toJSON\n * @memberof Trace.QueryPlanNode\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n QueryPlanNode.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n QueryPlanNode.SequenceNode = (function() {\n\n /**\n * Properties of a SequenceNode.\n * @memberof Trace.QueryPlanNode\n * @interface ISequenceNode\n * @property {Array.<Trace.IQueryPlanNode>|null} [nodes] SequenceNode nodes\n */\n\n /**\n * Constructs a new SequenceNode.\n * @memberof Trace.QueryPlanNode\n * @classdesc Represents a SequenceNode.\n * @implements ISequenceNode\n * @constructor\n * @param {Trace.QueryPlanNode.ISequenceNode=} [properties] Properties to set\n */\n function SequenceNode(properties) {\n this.nodes = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * SequenceNode nodes.\n * @member {Array.<Trace.IQueryPlanNode>} nodes\n * @memberof Trace.QueryPlanNode.SequenceNode\n * @instance\n */\n SequenceNode.prototype.nodes = $util.emptyArray;\n\n /**\n * Creates a new SequenceNode instance using the specified properties.\n * @function create\n * @memberof Trace.QueryPlanNode.SequenceNode\n * @static\n * @param {Trace.QueryPlanNode.ISequenceNode=} [properties] Properties to set\n * @returns {Trace.QueryPlanNode.SequenceNode} SequenceNode instance\n */\n SequenceNode.create = function create(properties) {\n return new SequenceNode(properties);\n };\n\n /**\n * Encodes the specified SequenceNode message. Does not implicitly {@link Trace.QueryPlanNode.SequenceNode.verify|verify} messages.\n * @function encode\n * @memberof Trace.QueryPlanNode.SequenceNode\n * @static\n * @param {Trace.QueryPlanNode.ISequenceNode} message SequenceNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n SequenceNode.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.nodes != null && message.nodes.length)\n for (var i = 0; i < message.nodes.length; ++i)\n $root.Trace.QueryPlanNode.encode(message.nodes[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified SequenceNode message, length delimited. Does not implicitly {@link Trace.QueryPlanNode.SequenceNode.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.QueryPlanNode.SequenceNode\n * @static\n * @param {Trace.QueryPlanNode.ISequenceNode} message SequenceNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n SequenceNode.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a SequenceNode message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.QueryPlanNode.SequenceNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.QueryPlanNode.SequenceNode} SequenceNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n SequenceNode.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.QueryPlanNode.SequenceNode();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.nodes && message.nodes.length))\n message.nodes = [];\n message.nodes.push($root.Trace.QueryPlanNode.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a SequenceNode message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.QueryPlanNode.SequenceNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.QueryPlanNode.SequenceNode} SequenceNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n SequenceNode.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a SequenceNode message.\n * @function verify\n * @memberof Trace.QueryPlanNode.SequenceNode\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n SequenceNode.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.nodes != null && message.hasOwnProperty(\"nodes\")) {\n if (!Array.isArray(message.nodes))\n return \"nodes: array expected\";\n for (var i = 0; i < message.nodes.length; ++i) {\n var error = $root.Trace.QueryPlanNode.verify(message.nodes[i]);\n if (error)\n return \"nodes.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a plain object from a SequenceNode message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.QueryPlanNode.SequenceNode\n * @static\n * @param {Trace.QueryPlanNode.SequenceNode} message SequenceNode\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n SequenceNode.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.nodes = [];\n if (message.nodes && message.nodes.length) {\n object.nodes = [];\n for (var j = 0; j < message.nodes.length; ++j)\n object.nodes[j] = $root.Trace.QueryPlanNode.toObject(message.nodes[j], options);\n }\n return object;\n };\n\n /**\n * Converts this SequenceNode to JSON.\n * @function toJSON\n * @memberof Trace.QueryPlanNode.SequenceNode\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n SequenceNode.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return SequenceNode;\n })();\n\n QueryPlanNode.ParallelNode = (function() {\n\n /**\n * Properties of a ParallelNode.\n * @memberof Trace.QueryPlanNode\n * @interface IParallelNode\n * @property {Array.<Trace.IQueryPlanNode>|null} [nodes] ParallelNode nodes\n */\n\n /**\n * Constructs a new ParallelNode.\n * @memberof Trace.QueryPlanNode\n * @classdesc Represents a ParallelNode.\n * @implements IParallelNode\n * @constructor\n * @param {Trace.QueryPlanNode.IParallelNode=} [properties] Properties to set\n */\n function ParallelNode(properties) {\n this.nodes = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ParallelNode nodes.\n * @member {Array.<Trace.IQueryPlanNode>} nodes\n * @memberof Trace.QueryPlanNode.ParallelNode\n * @instance\n */\n ParallelNode.prototype.nodes = $util.emptyArray;\n\n /**\n * Creates a new ParallelNode instance using the specified properties.\n * @function create\n * @memberof Trace.QueryPlanNode.ParallelNode\n * @static\n * @param {Trace.QueryPlanNode.IParallelNode=} [properties] Properties to set\n * @returns {Trace.QueryPlanNode.ParallelNode} ParallelNode instance\n */\n ParallelNode.create = function create(properties) {\n return new ParallelNode(properties);\n };\n\n /**\n * Encodes the specified ParallelNode message. Does not implicitly {@link Trace.QueryPlanNode.ParallelNode.verify|verify} messages.\n * @function encode\n * @memberof Trace.QueryPlanNode.ParallelNode\n * @static\n * @param {Trace.QueryPlanNode.IParallelNode} message ParallelNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ParallelNode.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.nodes != null && message.nodes.length)\n for (var i = 0; i < message.nodes.length; ++i)\n $root.Trace.QueryPlanNode.encode(message.nodes[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified ParallelNode message, length delimited. Does not implicitly {@link Trace.QueryPlanNode.ParallelNode.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.QueryPlanNode.ParallelNode\n * @static\n * @param {Trace.QueryPlanNode.IParallelNode} message ParallelNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ParallelNode.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ParallelNode message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.QueryPlanNode.ParallelNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.QueryPlanNode.ParallelNode} ParallelNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ParallelNode.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.QueryPlanNode.ParallelNode();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.nodes && message.nodes.length))\n message.nodes = [];\n message.nodes.push($root.Trace.QueryPlanNode.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ParallelNode message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.QueryPlanNode.ParallelNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.QueryPlanNode.ParallelNode} ParallelNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ParallelNode.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ParallelNode message.\n * @function verify\n * @memberof Trace.QueryPlanNode.ParallelNode\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ParallelNode.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.nodes != null && message.hasOwnProperty(\"nodes\")) {\n if (!Array.isArray(message.nodes))\n return \"nodes: array expected\";\n for (var i = 0; i < message.nodes.length; ++i) {\n var error = $root.Trace.QueryPlanNode.verify(message.nodes[i]);\n if (error)\n return \"nodes.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a plain object from a ParallelNode message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.QueryPlanNode.ParallelNode\n * @static\n * @param {Trace.QueryPlanNode.ParallelNode} message ParallelNode\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ParallelNode.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.nodes = [];\n if (message.nodes && message.nodes.length) {\n object.nodes = [];\n for (var j = 0; j < message.nodes.length; ++j)\n object.nodes[j] = $root.Trace.QueryPlanNode.toObject(message.nodes[j], options);\n }\n return object;\n };\n\n /**\n * Converts this ParallelNode to JSON.\n * @function toJSON\n * @memberof Trace.QueryPlanNode.ParallelNode\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ParallelNode.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ParallelNode;\n })();\n\n QueryPlanNode.FetchNode = (function() {\n\n /**\n * Properties of a FetchNode.\n * @memberof Trace.QueryPlanNode\n * @interface IFetchNode\n * @property {string|null} [serviceName] FetchNode serviceName\n * @property {boolean|null} [traceParsingFailed] FetchNode traceParsingFailed\n * @property {ITrace|null} [trace] FetchNode trace\n * @property {number|null} [sentTimeOffset] FetchNode sentTimeOffset\n * @property {google.protobuf.ITimestamp|null} [sentTime] FetchNode sentTime\n * @property {google.protobuf.ITimestamp|null} [receivedTime] FetchNode receivedTime\n */\n\n /**\n * Constructs a new FetchNode.\n * @memberof Trace.QueryPlanNode\n * @classdesc Represents a FetchNode.\n * @implements IFetchNode\n * @constructor\n * @param {Trace.QueryPlanNode.IFetchNode=} [properties] Properties to set\n */\n function FetchNode(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * FetchNode serviceName.\n * @member {string} serviceName\n * @memberof Trace.QueryPlanNode.FetchNode\n * @instance\n */\n FetchNode.prototype.serviceName = \"\";\n\n /**\n * FetchNode traceParsingFailed.\n * @member {boolean} traceParsingFailed\n * @memberof Trace.QueryPlanNode.FetchNode\n * @instance\n */\n FetchNode.prototype.traceParsingFailed = false;\n\n /**\n * FetchNode trace.\n * @member {ITrace|null|undefined} trace\n * @memberof Trace.QueryPlanNode.FetchNode\n * @instance\n */\n FetchNode.prototype.trace = null;\n\n /**\n * FetchNode sentTimeOffset.\n * @member {number} sentTimeOffset\n * @memberof Trace.QueryPlanNode.FetchNode\n * @instance\n */\n FetchNode.prototype.sentTimeOffset = 0;\n\n /**\n * FetchNode sentTime.\n * @member {google.protobuf.ITimestamp|null|undefined} sentTime\n * @memberof Trace.QueryPlanNode.FetchNode\n * @instance\n */\n FetchNode.prototype.sentTime = null;\n\n /**\n * FetchNode receivedTime.\n * @member {google.protobuf.ITimestamp|null|undefined} receivedTime\n * @memberof Trace.QueryPlanNode.FetchNode\n * @instance\n */\n FetchNode.prototype.receivedTime = null;\n\n /**\n * Creates a new FetchNode instance using the specified properties.\n * @function create\n * @memberof Trace.QueryPlanNode.FetchNode\n * @static\n * @param {Trace.QueryPlanNode.IFetchNode=} [properties] Properties to set\n * @returns {Trace.QueryPlanNode.FetchNode} FetchNode instance\n */\n FetchNode.create = function create(properties) {\n return new FetchNode(properties);\n };\n\n /**\n * Encodes the specified FetchNode message. Does not implicitly {@link Trace.QueryPlanNode.FetchNode.verify|verify} messages.\n * @function encode\n * @memberof Trace.QueryPlanNode.FetchNode\n * @static\n * @param {Trace.QueryPlanNode.IFetchNode} message FetchNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FetchNode.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.serviceName != null && Object.hasOwnProperty.call(message, \"serviceName\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.serviceName);\n if (message.traceParsingFailed != null && Object.hasOwnProperty.call(message, \"traceParsingFailed\"))\n writer.uint32(/* id 2, wireType 0 =*/16).bool(message.traceParsingFailed);\n if (message.trace != null && Object.hasOwnProperty.call(message, \"trace\"))\n $root.Trace.encode(message.trace, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.sentTimeOffset != null && Object.hasOwnProperty.call(message, \"sentTimeOffset\"))\n writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.sentTimeOffset);\n if (message.sentTime != null && Object.hasOwnProperty.call(message, \"sentTime\"))\n $root.google.protobuf.Timestamp.encode(message.sentTime, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();\n if (message.receivedTime != null && Object.hasOwnProperty.call(message, \"receivedTime\"))\n $root.google.protobuf.Timestamp.encode(message.receivedTime, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified FetchNode message, length delimited. Does not implicitly {@link Trace.QueryPlanNode.FetchNode.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.QueryPlanNode.FetchNode\n * @static\n * @param {Trace.QueryPlanNode.IFetchNode} message FetchNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FetchNode.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a FetchNode message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.QueryPlanNode.FetchNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.QueryPlanNode.FetchNode} FetchNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FetchNode.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.QueryPlanNode.FetchNode();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.serviceName = reader.string();\n break;\n case 2:\n message.traceParsingFailed = reader.bool();\n break;\n case 3:\n message.trace = $root.Trace.decode(reader, reader.uint32());\n break;\n case 4:\n message.sentTimeOffset = reader.uint64();\n break;\n case 5:\n message.sentTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32());\n break;\n case 6:\n message.receivedTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a FetchNode message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.QueryPlanNode.FetchNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.QueryPlanNode.FetchNode} FetchNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FetchNode.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a FetchNode message.\n * @function verify\n * @memberof Trace.QueryPlanNode.FetchNode\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n FetchNode.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.serviceName != null && message.hasOwnProperty(\"serviceName\"))\n if (!$util.isString(message.serviceName))\n return \"serviceName: string expected\";\n if (message.traceParsingFailed != null && message.hasOwnProperty(\"traceParsingFailed\"))\n if (typeof message.traceParsingFailed !== \"boolean\")\n return \"traceParsingFailed: boolean expected\";\n if (message.trace != null && message.hasOwnProperty(\"trace\")) {\n var error = $root.Trace.verify(message.trace);\n if (error)\n return \"trace.\" + error;\n }\n if (message.sentTimeOffset != null && message.hasOwnProperty(\"sentTimeOffset\"))\n if (!$util.isInteger(message.sentTimeOffset) && !(message.sentTimeOffset && $util.isInteger(message.sentTimeOffset.low) && $util.isInteger(message.sentTimeOffset.high)))\n return \"sentTimeOffset: integer|Long expected\";\n if (message.sentTime != null && message.hasOwnProperty(\"sentTime\")) {\n var error = $root.google.protobuf.Timestamp.verify(message.sentTime);\n if (error)\n return \"sentTime.\" + error;\n }\n if (message.receivedTime != null && message.hasOwnProperty(\"receivedTime\")) {\n var error = $root.google.protobuf.Timestamp.verify(message.receivedTime);\n if (error)\n return \"receivedTime.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a plain object from a FetchNode message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.QueryPlanNode.FetchNode\n * @static\n * @param {Trace.QueryPlanNode.FetchNode} message FetchNode\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n FetchNode.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.serviceName = \"\";\n object.traceParsingFailed = false;\n object.trace = null;\n object.sentTimeOffset = 0;\n object.sentTime = null;\n object.receivedTime = null;\n }\n if (message.serviceName != null && message.hasOwnProperty(\"serviceName\"))\n object.serviceName = message.serviceName;\n if (message.traceParsingFailed != null && message.hasOwnProperty(\"traceParsingFailed\"))\n object.traceParsingFailed = message.traceParsingFailed;\n if (message.trace != null && message.hasOwnProperty(\"trace\"))\n object.trace = $root.Trace.toObject(message.trace, options);\n if (message.sentTimeOffset != null && message.hasOwnProperty(\"sentTimeOffset\"))\n if (typeof message.sentTimeOffset === \"number\")\n object.sentTimeOffset = options.longs === String ? String(message.sentTimeOffset) : message.sentTimeOffset;\n else\n object.sentTimeOffset = options.longs === String ? $util.Long.prototype.toString.call(message.sentTimeOffset) : options.longs === Number ? new $util.LongBits(message.sentTimeOffset.low >>> 0, message.sentTimeOffset.high >>> 0).toNumber(true) : message.sentTimeOffset;\n if (message.sentTime != null && message.hasOwnProperty(\"sentTime\"))\n object.sentTime = $root.google.protobuf.Timestamp.toObject(message.sentTime, options);\n if (message.receivedTime != null && message.hasOwnProperty(\"receivedTime\"))\n object.receivedTime = $root.google.protobuf.Timestamp.toObject(message.receivedTime, options);\n return object;\n };\n\n /**\n * Converts this FetchNode to JSON.\n * @function toJSON\n * @memberof Trace.QueryPlanNode.FetchNode\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n FetchNode.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return FetchNode;\n })();\n\n QueryPlanNode.FlattenNode = (function() {\n\n /**\n * Properties of a FlattenNode.\n * @memberof Trace.QueryPlanNode\n * @interface IFlattenNode\n * @property {Array.<Trace.QueryPlanNode.IResponsePathElement>|null} [responsePath] FlattenNode responsePath\n * @property {Trace.IQueryPlanNode|null} [node] FlattenNode node\n */\n\n /**\n * Constructs a new FlattenNode.\n * @memberof Trace.QueryPlanNode\n * @classdesc Represents a FlattenNode.\n * @implements IFlattenNode\n * @constructor\n * @param {Trace.QueryPlanNode.IFlattenNode=} [properties] Properties to set\n */\n function FlattenNode(properties) {\n this.responsePath = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * FlattenNode responsePath.\n * @member {Array.<Trace.QueryPlanNode.IResponsePathElement>} responsePath\n * @memberof Trace.QueryPlanNode.FlattenNode\n * @instance\n */\n FlattenNode.prototype.responsePath = $util.emptyArray;\n\n /**\n * FlattenNode node.\n * @member {Trace.IQueryPlanNode|null|undefined} node\n * @memberof Trace.QueryPlanNode.FlattenNode\n * @instance\n */\n FlattenNode.prototype.node = null;\n\n /**\n * Creates a new FlattenNode instance using the specified properties.\n * @function create\n * @memberof Trace.QueryPlanNode.FlattenNode\n * @static\n * @param {Trace.QueryPlanNode.IFlattenNode=} [properties] Properties to set\n * @returns {Trace.QueryPlanNode.FlattenNode} FlattenNode instance\n */\n FlattenNode.create = function create(properties) {\n return new FlattenNode(properties);\n };\n\n /**\n * Encodes the specified FlattenNode message. Does not implicitly {@link Trace.QueryPlanNode.FlattenNode.verify|verify} messages.\n * @function encode\n * @memberof Trace.QueryPlanNode.FlattenNode\n * @static\n * @param {Trace.QueryPlanNode.IFlattenNode} message FlattenNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FlattenNode.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.responsePath != null && message.responsePath.length)\n for (var i = 0; i < message.responsePath.length; ++i)\n $root.Trace.QueryPlanNode.ResponsePathElement.encode(message.responsePath[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.node != null && Object.hasOwnProperty.call(message, \"node\"))\n $root.Trace.QueryPlanNode.encode(message.node, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified FlattenNode message, length delimited. Does not implicitly {@link Trace.QueryPlanNode.FlattenNode.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.QueryPlanNode.FlattenNode\n * @static\n * @param {Trace.QueryPlanNode.IFlattenNode} message FlattenNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FlattenNode.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a FlattenNode message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.QueryPlanNode.FlattenNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.QueryPlanNode.FlattenNode} FlattenNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FlattenNode.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.QueryPlanNode.FlattenNode();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.responsePath && message.responsePath.length))\n message.responsePath = [];\n message.responsePath.push($root.Trace.QueryPlanNode.ResponsePathElement.decode(reader, reader.uint32()));\n break;\n case 2:\n message.node = $root.Trace.QueryPlanNode.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a FlattenNode message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.QueryPlanNode.FlattenNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.QueryPlanNode.FlattenNode} FlattenNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FlattenNode.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a FlattenNode message.\n * @function verify\n * @memberof Trace.QueryPlanNode.FlattenNode\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n FlattenNode.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.responsePath != null && message.hasOwnProperty(\"responsePath\")) {\n if (!Array.isArray(message.responsePath))\n return \"responsePath: array expected\";\n for (var i = 0; i < message.responsePath.length; ++i) {\n var error = $root.Trace.QueryPlanNode.ResponsePathElement.verify(message.responsePath[i]);\n if (error)\n return \"responsePath.\" + error;\n }\n }\n if (message.node != null && message.hasOwnProperty(\"node\")) {\n var error = $root.Trace.QueryPlanNode.verify(message.node);\n if (error)\n return \"node.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a plain object from a FlattenNode message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.QueryPlanNode.FlattenNode\n * @static\n * @param {Trace.QueryPlanNode.FlattenNode} message FlattenNode\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n FlattenNode.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.responsePath = [];\n if (options.defaults)\n object.node = null;\n if (message.responsePath && message.responsePath.length) {\n object.responsePath = [];\n for (var j = 0; j < message.responsePath.length; ++j)\n object.responsePath[j] = $root.Trace.QueryPlanNode.ResponsePathElement.toObject(message.responsePath[j], options);\n }\n if (message.node != null && message.hasOwnProperty(\"node\"))\n object.node = $root.Trace.QueryPlanNode.toObject(message.node, options);\n return object;\n };\n\n /**\n * Converts this FlattenNode to JSON.\n * @function toJSON\n * @memberof Trace.QueryPlanNode.FlattenNode\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n FlattenNode.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return FlattenNode;\n })();\n\n QueryPlanNode.DeferNode = (function() {\n\n /**\n * Properties of a DeferNode.\n * @memberof Trace.QueryPlanNode\n * @interface IDeferNode\n * @property {Trace.QueryPlanNode.IDeferNodePrimary|null} [primary] DeferNode primary\n * @property {Array.<Trace.QueryPlanNode.IDeferredNode>|null} [deferred] DeferNode deferred\n */\n\n /**\n * Constructs a new DeferNode.\n * @memberof Trace.QueryPlanNode\n * @classdesc Represents a DeferNode.\n * @implements IDeferNode\n * @constructor\n * @param {Trace.QueryPlanNode.IDeferNode=} [properties] Properties to set\n */\n function DeferNode(properties) {\n this.deferred = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * DeferNode primary.\n * @member {Trace.QueryPlanNode.IDeferNodePrimary|null|undefined} primary\n * @memberof Trace.QueryPlanNode.DeferNode\n * @instance\n */\n DeferNode.prototype.primary = null;\n\n /**\n * DeferNode deferred.\n * @member {Array.<Trace.QueryPlanNode.IDeferredNode>} deferred\n * @memberof Trace.QueryPlanNode.DeferNode\n * @instance\n */\n DeferNode.prototype.deferred = $util.emptyArray;\n\n /**\n * Creates a new DeferNode instance using the specified properties.\n * @function create\n * @memberof Trace.QueryPlanNode.DeferNode\n * @static\n * @param {Trace.QueryPlanNode.IDeferNode=} [properties] Properties to set\n * @returns {Trace.QueryPlanNode.DeferNode} DeferNode instance\n */\n DeferNode.create = function create(properties) {\n return new DeferNode(properties);\n };\n\n /**\n * Encodes the specified DeferNode message. Does not implicitly {@link Trace.QueryPlanNode.DeferNode.verify|verify} messages.\n * @function encode\n * @memberof Trace.QueryPlanNode.DeferNode\n * @static\n * @param {Trace.QueryPlanNode.IDeferNode} message DeferNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DeferNode.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.primary != null && Object.hasOwnProperty.call(message, \"primary\"))\n $root.Trace.QueryPlanNode.DeferNodePrimary.encode(message.primary, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.deferred != null && message.deferred.length)\n for (var i = 0; i < message.deferred.length; ++i)\n $root.Trace.QueryPlanNode.DeferredNode.encode(message.deferred[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified DeferNode message, length delimited. Does not implicitly {@link Trace.QueryPlanNode.DeferNode.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.QueryPlanNode.DeferNode\n * @static\n * @param {Trace.QueryPlanNode.IDeferNode} message DeferNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DeferNode.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a DeferNode message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.QueryPlanNode.DeferNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.QueryPlanNode.DeferNode} DeferNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DeferNode.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.QueryPlanNode.DeferNode();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.primary = $root.Trace.QueryPlanNode.DeferNodePrimary.decode(reader, reader.uint32());\n break;\n case 2:\n if (!(message.deferred && message.deferred.length))\n message.deferred = [];\n message.deferred.push($root.Trace.QueryPlanNode.DeferredNode.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a DeferNode message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.QueryPlanNode.DeferNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.QueryPlanNode.DeferNode} DeferNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DeferNode.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a DeferNode message.\n * @function verify\n * @memberof Trace.QueryPlanNode.DeferNode\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n DeferNode.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.primary != null && message.hasOwnProperty(\"primary\")) {\n var error = $root.Trace.QueryPlanNode.DeferNodePrimary.verify(message.primary);\n if (error)\n return \"primary.\" + error;\n }\n if (message.deferred != null && message.hasOwnProperty(\"deferred\")) {\n if (!Array.isArray(message.deferred))\n return \"deferred: array expected\";\n for (var i = 0; i < message.deferred.length; ++i) {\n var error = $root.Trace.QueryPlanNode.DeferredNode.verify(message.deferred[i]);\n if (error)\n return \"deferred.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a plain object from a DeferNode message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.QueryPlanNode.DeferNode\n * @static\n * @param {Trace.QueryPlanNode.DeferNode} message DeferNode\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n DeferNode.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.deferred = [];\n if (options.defaults)\n object.primary = null;\n if (message.primary != null && message.hasOwnProperty(\"primary\"))\n object.primary = $root.Trace.QueryPlanNode.DeferNodePrimary.toObject(message.primary, options);\n if (message.deferred && message.deferred.length) {\n object.deferred = [];\n for (var j = 0; j < message.deferred.length; ++j)\n object.deferred[j] = $root.Trace.QueryPlanNode.DeferredNode.toObject(message.deferred[j], options);\n }\n return object;\n };\n\n /**\n * Converts this DeferNode to JSON.\n * @function toJSON\n * @memberof Trace.QueryPlanNode.DeferNode\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n DeferNode.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return DeferNode;\n })();\n\n QueryPlanNode.ConditionNode = (function() {\n\n /**\n * Properties of a ConditionNode.\n * @memberof Trace.QueryPlanNode\n * @interface IConditionNode\n * @property {string|null} [condition] ConditionNode condition\n * @property {Trace.IQueryPlanNode|null} [ifClause] ConditionNode ifClause\n * @property {Trace.IQueryPlanNode|null} [elseClause] ConditionNode elseClause\n */\n\n /**\n * Constructs a new ConditionNode.\n * @memberof Trace.QueryPlanNode\n * @classdesc Represents a ConditionNode.\n * @implements IConditionNode\n * @constructor\n * @param {Trace.QueryPlanNode.IConditionNode=} [properties] Properties to set\n */\n function ConditionNode(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ConditionNode condition.\n * @member {string} condition\n * @memberof Trace.QueryPlanNode.ConditionNode\n * @instance\n */\n ConditionNode.prototype.condition = \"\";\n\n /**\n * ConditionNode ifClause.\n * @member {Trace.IQueryPlanNode|null|undefined} ifClause\n * @memberof Trace.QueryPlanNode.ConditionNode\n * @instance\n */\n ConditionNode.prototype.ifClause = null;\n\n /**\n * ConditionNode elseClause.\n * @member {Trace.IQueryPlanNode|null|undefined} elseClause\n * @memberof Trace.QueryPlanNode.ConditionNode\n * @instance\n */\n ConditionNode.prototype.elseClause = null;\n\n /**\n * Creates a new ConditionNode instance using the specified properties.\n * @function create\n * @memberof Trace.QueryPlanNode.ConditionNode\n * @static\n * @param {Trace.QueryPlanNode.IConditionNode=} [properties] Properties to set\n * @returns {Trace.QueryPlanNode.ConditionNode} ConditionNode instance\n */\n ConditionNode.create = function create(properties) {\n return new ConditionNode(properties);\n };\n\n /**\n * Encodes the specified ConditionNode message. Does not implicitly {@link Trace.QueryPlanNode.ConditionNode.verify|verify} messages.\n * @function encode\n * @memberof Trace.QueryPlanNode.ConditionNode\n * @static\n * @param {Trace.QueryPlanNode.IConditionNode} message ConditionNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ConditionNode.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.condition != null && Object.hasOwnProperty.call(message, \"condition\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.condition);\n if (message.ifClause != null && Object.hasOwnProperty.call(message, \"ifClause\"))\n $root.Trace.QueryPlanNode.encode(message.ifClause, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.elseClause != null && Object.hasOwnProperty.call(message, \"elseClause\"))\n $root.Trace.QueryPlanNode.encode(message.elseClause, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified ConditionNode message, length delimited. Does not implicitly {@link Trace.QueryPlanNode.ConditionNode.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.QueryPlanNode.ConditionNode\n * @static\n * @param {Trace.QueryPlanNode.IConditionNode} message ConditionNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ConditionNode.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ConditionNode message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.QueryPlanNode.ConditionNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.QueryPlanNode.ConditionNode} ConditionNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ConditionNode.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.QueryPlanNode.ConditionNode();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.condition = reader.string();\n break;\n case 2:\n message.ifClause = $root.Trace.QueryPlanNode.decode(reader, reader.uint32());\n break;\n case 3:\n message.elseClause = $root.Trace.QueryPlanNode.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ConditionNode message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.QueryPlanNode.ConditionNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.QueryPlanNode.ConditionNode} ConditionNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ConditionNode.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ConditionNode message.\n * @function verify\n * @memberof Trace.QueryPlanNode.ConditionNode\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ConditionNode.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.condition != null && message.hasOwnProperty(\"condition\"))\n if (!$util.isString(message.condition))\n return \"condition: string expected\";\n if (message.ifClause != null && message.hasOwnProperty(\"ifClause\")) {\n var error = $root.Trace.QueryPlanNode.verify(message.ifClause);\n if (error)\n return \"ifClause.\" + error;\n }\n if (message.elseClause != null && message.hasOwnProperty(\"elseClause\")) {\n var error = $root.Trace.QueryPlanNode.verify(message.elseClause);\n if (error)\n return \"elseClause.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a plain object from a ConditionNode message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.QueryPlanNode.ConditionNode\n * @static\n * @param {Trace.QueryPlanNode.ConditionNode} message ConditionNode\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ConditionNode.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.condition = \"\";\n object.ifClause = null;\n object.elseClause = null;\n }\n if (message.condition != null && message.hasOwnProperty(\"condition\"))\n object.condition = message.condition;\n if (message.ifClause != null && message.hasOwnProperty(\"ifClause\"))\n object.ifClause = $root.Trace.QueryPlanNode.toObject(message.ifClause, options);\n if (message.elseClause != null && message.hasOwnProperty(\"elseClause\"))\n object.elseClause = $root.Trace.QueryPlanNode.toObject(message.elseClause, options);\n return object;\n };\n\n /**\n * Converts this ConditionNode to JSON.\n * @function toJSON\n * @memberof Trace.QueryPlanNode.ConditionNode\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ConditionNode.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ConditionNode;\n })();\n\n QueryPlanNode.DeferNodePrimary = (function() {\n\n /**\n * Properties of a DeferNodePrimary.\n * @memberof Trace.QueryPlanNode\n * @interface IDeferNodePrimary\n * @property {Trace.IQueryPlanNode|null} [node] DeferNodePrimary node\n */\n\n /**\n * Constructs a new DeferNodePrimary.\n * @memberof Trace.QueryPlanNode\n * @classdesc Represents a DeferNodePrimary.\n * @implements IDeferNodePrimary\n * @constructor\n * @param {Trace.QueryPlanNode.IDeferNodePrimary=} [properties] Properties to set\n */\n function DeferNodePrimary(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * DeferNodePrimary node.\n * @member {Trace.IQueryPlanNode|null|undefined} node\n * @memberof Trace.QueryPlanNode.DeferNodePrimary\n * @instance\n */\n DeferNodePrimary.prototype.node = null;\n\n /**\n * Creates a new DeferNodePrimary instance using the specified properties.\n * @function create\n * @memberof Trace.QueryPlanNode.DeferNodePrimary\n * @static\n * @param {Trace.QueryPlanNode.IDeferNodePrimary=} [properties] Properties to set\n * @returns {Trace.QueryPlanNode.DeferNodePrimary} DeferNodePrimary instance\n */\n DeferNodePrimary.create = function create(properties) {\n return new DeferNodePrimary(properties);\n };\n\n /**\n * Encodes the specified DeferNodePrimary message. Does not implicitly {@link Trace.QueryPlanNode.DeferNodePrimary.verify|verify} messages.\n * @function encode\n * @memberof Trace.QueryPlanNode.DeferNodePrimary\n * @static\n * @param {Trace.QueryPlanNode.IDeferNodePrimary} message DeferNodePrimary message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DeferNodePrimary.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.node != null && Object.hasOwnProperty.call(message, \"node\"))\n $root.Trace.QueryPlanNode.encode(message.node, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified DeferNodePrimary message, length delimited. Does not implicitly {@link Trace.QueryPlanNode.DeferNodePrimary.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.QueryPlanNode.DeferNodePrimary\n * @static\n * @param {Trace.QueryPlanNode.IDeferNodePrimary} message DeferNodePrimary message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DeferNodePrimary.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a DeferNodePrimary message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.QueryPlanNode.DeferNodePrimary\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.QueryPlanNode.DeferNodePrimary} DeferNodePrimary\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DeferNodePrimary.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.QueryPlanNode.DeferNodePrimary();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.node = $root.Trace.QueryPlanNode.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a DeferNodePrimary message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.QueryPlanNode.DeferNodePrimary\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.QueryPlanNode.DeferNodePrimary} DeferNodePrimary\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DeferNodePrimary.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a DeferNodePrimary message.\n * @function verify\n * @memberof Trace.QueryPlanNode.DeferNodePrimary\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n DeferNodePrimary.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.node != null && message.hasOwnProperty(\"node\")) {\n var error = $root.Trace.QueryPlanNode.verify(message.node);\n if (error)\n return \"node.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a plain object from a DeferNodePrimary message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.QueryPlanNode.DeferNodePrimary\n * @static\n * @param {Trace.QueryPlanNode.DeferNodePrimary} message DeferNodePrimary\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n DeferNodePrimary.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults)\n object.node = null;\n if (message.node != null && message.hasOwnProperty(\"node\"))\n object.node = $root.Trace.QueryPlanNode.toObject(message.node, options);\n return object;\n };\n\n /**\n * Converts this DeferNodePrimary to JSON.\n * @function toJSON\n * @memberof Trace.QueryPlanNode.DeferNodePrimary\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n DeferNodePrimary.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return DeferNodePrimary;\n })();\n\n QueryPlanNode.DeferredNode = (function() {\n\n /**\n * Properties of a DeferredNode.\n * @memberof Trace.QueryPlanNode\n * @interface IDeferredNode\n * @property {Array.<Trace.QueryPlanNode.IDeferredNodeDepends>|null} [depends] DeferredNode depends\n * @property {string|null} [label] DeferredNode label\n * @property {Array.<Trace.QueryPlanNode.IResponsePathElement>|null} [path] DeferredNode path\n * @property {Trace.IQueryPlanNode|null} [node] DeferredNode node\n */\n\n /**\n * Constructs a new DeferredNode.\n * @memberof Trace.QueryPlanNode\n * @classdesc Represents a DeferredNode.\n * @implements IDeferredNode\n * @constructor\n * @param {Trace.QueryPlanNode.IDeferredNode=} [properties] Properties to set\n */\n function DeferredNode(properties) {\n this.depends = [];\n this.path = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * DeferredNode depends.\n * @member {Array.<Trace.QueryPlanNode.IDeferredNodeDepends>} depends\n * @memberof Trace.QueryPlanNode.DeferredNode\n * @instance\n */\n DeferredNode.prototype.depends = $util.emptyArray;\n\n /**\n * DeferredNode label.\n * @member {string} label\n * @memberof Trace.QueryPlanNode.DeferredNode\n * @instance\n */\n DeferredNode.prototype.label = \"\";\n\n /**\n * DeferredNode path.\n * @member {Array.<Trace.QueryPlanNode.IResponsePathElement>} path\n * @memberof Trace.QueryPlanNode.DeferredNode\n * @instance\n */\n DeferredNode.prototype.path = $util.emptyArray;\n\n /**\n * DeferredNode node.\n * @member {Trace.IQueryPlanNode|null|undefined} node\n * @memberof Trace.QueryPlanNode.DeferredNode\n * @instance\n */\n DeferredNode.prototype.node = null;\n\n /**\n * Creates a new DeferredNode instance using the specified properties.\n * @function create\n * @memberof Trace.QueryPlanNode.DeferredNode\n * @static\n * @param {Trace.QueryPlanNode.IDeferredNode=} [properties] Properties to set\n * @returns {Trace.QueryPlanNode.DeferredNode} DeferredNode instance\n */\n DeferredNode.create = function create(properties) {\n return new DeferredNode(properties);\n };\n\n /**\n * Encodes the specified DeferredNode message. Does not implicitly {@link Trace.QueryPlanNode.DeferredNode.verify|verify} messages.\n * @function encode\n * @memberof Trace.QueryPlanNode.DeferredNode\n * @static\n * @param {Trace.QueryPlanNode.IDeferredNode} message DeferredNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DeferredNode.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.depends != null && message.depends.length)\n for (var i = 0; i < message.depends.length; ++i)\n $root.Trace.QueryPlanNode.DeferredNodeDepends.encode(message.depends[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.label != null && Object.hasOwnProperty.call(message, \"label\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.label);\n if (message.path != null && message.path.length)\n for (var i = 0; i < message.path.length; ++i)\n $root.Trace.QueryPlanNode.ResponsePathElement.encode(message.path[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.node != null && Object.hasOwnProperty.call(message, \"node\"))\n $root.Trace.QueryPlanNode.encode(message.node, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified DeferredNode message, length delimited. Does not implicitly {@link Trace.QueryPlanNode.DeferredNode.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.QueryPlanNode.DeferredNode\n * @static\n * @param {Trace.QueryPlanNode.IDeferredNode} message DeferredNode message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DeferredNode.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a DeferredNode message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.QueryPlanNode.DeferredNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.QueryPlanNode.DeferredNode} DeferredNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DeferredNode.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.QueryPlanNode.DeferredNode();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.depends && message.depends.length))\n message.depends = [];\n message.depends.push($root.Trace.QueryPlanNode.DeferredNodeDepends.decode(reader, reader.uint32()));\n break;\n case 2:\n message.label = reader.string();\n break;\n case 3:\n if (!(message.path && message.path.length))\n message.path = [];\n message.path.push($root.Trace.QueryPlanNode.ResponsePathElement.decode(reader, reader.uint32()));\n break;\n case 4:\n message.node = $root.Trace.QueryPlanNode.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a DeferredNode message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.QueryPlanNode.DeferredNode\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.QueryPlanNode.DeferredNode} DeferredNode\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DeferredNode.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a DeferredNode message.\n * @function verify\n * @memberof Trace.QueryPlanNode.DeferredNode\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n DeferredNode.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.depends != null && message.hasOwnProperty(\"depends\")) {\n if (!Array.isArray(message.depends))\n return \"depends: array expected\";\n for (var i = 0; i < message.depends.length; ++i) {\n var error = $root.Trace.QueryPlanNode.DeferredNodeDepends.verify(message.depends[i]);\n if (error)\n return \"depends.\" + error;\n }\n }\n if (message.label != null && message.hasOwnProperty(\"label\"))\n if (!$util.isString(message.label))\n return \"label: string expected\";\n if (message.path != null && message.hasOwnProperty(\"path\")) {\n if (!Array.isArray(message.path))\n return \"path: array expected\";\n for (var i = 0; i < message.path.length; ++i) {\n var error = $root.Trace.QueryPlanNode.ResponsePathElement.verify(message.path[i]);\n if (error)\n return \"path.\" + error;\n }\n }\n if (message.node != null && message.hasOwnProperty(\"node\")) {\n var error = $root.Trace.QueryPlanNode.verify(message.node);\n if (error)\n return \"node.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a plain object from a DeferredNode message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.QueryPlanNode.DeferredNode\n * @static\n * @param {Trace.QueryPlanNode.DeferredNode} message DeferredNode\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n DeferredNode.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.depends = [];\n object.path = [];\n }\n if (options.defaults) {\n object.label = \"\";\n object.node = null;\n }\n if (message.depends && message.depends.length) {\n object.depends = [];\n for (var j = 0; j < message.depends.length; ++j)\n object.depends[j] = $root.Trace.QueryPlanNode.DeferredNodeDepends.toObject(message.depends[j], options);\n }\n if (message.label != null && message.hasOwnProperty(\"label\"))\n object.label = message.label;\n if (message.path && message.path.length) {\n object.path = [];\n for (var j = 0; j < message.path.length; ++j)\n object.path[j] = $root.Trace.QueryPlanNode.ResponsePathElement.toObject(message.path[j], options);\n }\n if (message.node != null && message.hasOwnProperty(\"node\"))\n object.node = $root.Trace.QueryPlanNode.toObject(message.node, options);\n return object;\n };\n\n /**\n * Converts this DeferredNode to JSON.\n * @function toJSON\n * @memberof Trace.QueryPlanNode.DeferredNode\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n DeferredNode.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return DeferredNode;\n })();\n\n QueryPlanNode.DeferredNodeDepends = (function() {\n\n /**\n * Properties of a DeferredNodeDepends.\n * @memberof Trace.QueryPlanNode\n * @interface IDeferredNodeDepends\n * @property {string|null} [id] DeferredNodeDepends id\n * @property {string|null} [deferLabel] DeferredNodeDepends deferLabel\n */\n\n /**\n * Constructs a new DeferredNodeDepends.\n * @memberof Trace.QueryPlanNode\n * @classdesc Represents a DeferredNodeDepends.\n * @implements IDeferredNodeDepends\n * @constructor\n * @param {Trace.QueryPlanNode.IDeferredNodeDepends=} [properties] Properties to set\n */\n function DeferredNodeDepends(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * DeferredNodeDepends id.\n * @member {string} id\n * @memberof Trace.QueryPlanNode.DeferredNodeDepends\n * @instance\n */\n DeferredNodeDepends.prototype.id = \"\";\n\n /**\n * DeferredNodeDepends deferLabel.\n * @member {string} deferLabel\n * @memberof Trace.QueryPlanNode.DeferredNodeDepends\n * @instance\n */\n DeferredNodeDepends.prototype.deferLabel = \"\";\n\n /**\n * Creates a new DeferredNodeDepends instance using the specified properties.\n * @function create\n * @memberof Trace.QueryPlanNode.DeferredNodeDepends\n * @static\n * @param {Trace.QueryPlanNode.IDeferredNodeDepends=} [properties] Properties to set\n * @returns {Trace.QueryPlanNode.DeferredNodeDepends} DeferredNodeDepends instance\n */\n DeferredNodeDepends.create = function create(properties) {\n return new DeferredNodeDepends(properties);\n };\n\n /**\n * Encodes the specified DeferredNodeDepends message. Does not implicitly {@link Trace.QueryPlanNode.DeferredNodeDepends.verify|verify} messages.\n * @function encode\n * @memberof Trace.QueryPlanNode.DeferredNodeDepends\n * @static\n * @param {Trace.QueryPlanNode.IDeferredNodeDepends} message DeferredNodeDepends message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DeferredNodeDepends.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.id != null && Object.hasOwnProperty.call(message, \"id\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.id);\n if (message.deferLabel != null && Object.hasOwnProperty.call(message, \"deferLabel\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.deferLabel);\n return writer;\n };\n\n /**\n * Encodes the specified DeferredNodeDepends message, length delimited. Does not implicitly {@link Trace.QueryPlanNode.DeferredNodeDepends.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.QueryPlanNode.DeferredNodeDepends\n * @static\n * @param {Trace.QueryPlanNode.IDeferredNodeDepends} message DeferredNodeDepends message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DeferredNodeDepends.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a DeferredNodeDepends message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.QueryPlanNode.DeferredNodeDepends\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.QueryPlanNode.DeferredNodeDepends} DeferredNodeDepends\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DeferredNodeDepends.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.QueryPlanNode.DeferredNodeDepends();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.id = reader.string();\n break;\n case 2:\n message.deferLabel = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a DeferredNodeDepends message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.QueryPlanNode.DeferredNodeDepends\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.QueryPlanNode.DeferredNodeDepends} DeferredNodeDepends\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DeferredNodeDepends.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a DeferredNodeDepends message.\n * @function verify\n * @memberof Trace.QueryPlanNode.DeferredNodeDepends\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n DeferredNodeDepends.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.id != null && message.hasOwnProperty(\"id\"))\n if (!$util.isString(message.id))\n return \"id: string expected\";\n if (message.deferLabel != null && message.hasOwnProperty(\"deferLabel\"))\n if (!$util.isString(message.deferLabel))\n return \"deferLabel: string expected\";\n return null;\n };\n\n /**\n * Creates a plain object from a DeferredNodeDepends message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.QueryPlanNode.DeferredNodeDepends\n * @static\n * @param {Trace.QueryPlanNode.DeferredNodeDepends} message DeferredNodeDepends\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n DeferredNodeDepends.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.id = \"\";\n object.deferLabel = \"\";\n }\n if (message.id != null && message.hasOwnProperty(\"id\"))\n object.id = message.id;\n if (message.deferLabel != null && message.hasOwnProperty(\"deferLabel\"))\n object.deferLabel = message.deferLabel;\n return object;\n };\n\n /**\n * Converts this DeferredNodeDepends to JSON.\n * @function toJSON\n * @memberof Trace.QueryPlanNode.DeferredNodeDepends\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n DeferredNodeDepends.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return DeferredNodeDepends;\n })();\n\n QueryPlanNode.ResponsePathElement = (function() {\n\n /**\n * Properties of a ResponsePathElement.\n * @memberof Trace.QueryPlanNode\n * @interface IResponsePathElement\n * @property {string|null} [fieldName] ResponsePathElement fieldName\n * @property {number|null} [index] ResponsePathElement index\n */\n\n /**\n * Constructs a new ResponsePathElement.\n * @memberof Trace.QueryPlanNode\n * @classdesc Represents a ResponsePathElement.\n * @implements IResponsePathElement\n * @constructor\n * @param {Trace.QueryPlanNode.IResponsePathElement=} [properties] Properties to set\n */\n function ResponsePathElement(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ResponsePathElement fieldName.\n * @member {string} fieldName\n * @memberof Trace.QueryPlanNode.ResponsePathElement\n * @instance\n */\n ResponsePathElement.prototype.fieldName = \"\";\n\n /**\n * ResponsePathElement index.\n * @member {number} index\n * @memberof Trace.QueryPlanNode.ResponsePathElement\n * @instance\n */\n ResponsePathElement.prototype.index = 0;\n\n // OneOf field names bound to virtual getters and setters\n var $oneOfFields;\n\n /**\n * ResponsePathElement id.\n * @member {\"fieldName\"|\"index\"|undefined} id\n * @memberof Trace.QueryPlanNode.ResponsePathElement\n * @instance\n */\n Object.defineProperty(ResponsePathElement.prototype, \"id\", {\n get: $util.oneOfGetter($oneOfFields = [\"fieldName\", \"index\"]),\n set: $util.oneOfSetter($oneOfFields)\n });\n\n /**\n * Creates a new ResponsePathElement instance using the specified properties.\n * @function create\n * @memberof Trace.QueryPlanNode.ResponsePathElement\n * @static\n * @param {Trace.QueryPlanNode.IResponsePathElement=} [properties] Properties to set\n * @returns {Trace.QueryPlanNode.ResponsePathElement} ResponsePathElement instance\n */\n ResponsePathElement.create = function create(properties) {\n return new ResponsePathElement(properties);\n };\n\n /**\n * Encodes the specified ResponsePathElement message. Does not implicitly {@link Trace.QueryPlanNode.ResponsePathElement.verify|verify} messages.\n * @function encode\n * @memberof Trace.QueryPlanNode.ResponsePathElement\n * @static\n * @param {Trace.QueryPlanNode.IResponsePathElement} message ResponsePathElement message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ResponsePathElement.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.fieldName != null && Object.hasOwnProperty.call(message, \"fieldName\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.fieldName);\n if (message.index != null && Object.hasOwnProperty.call(message, \"index\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.index);\n return writer;\n };\n\n /**\n * Encodes the specified ResponsePathElement message, length delimited. Does not implicitly {@link Trace.QueryPlanNode.ResponsePathElement.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Trace.QueryPlanNode.ResponsePathElement\n * @static\n * @param {Trace.QueryPlanNode.IResponsePathElement} message ResponsePathElement message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ResponsePathElement.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ResponsePathElement message from the specified reader or buffer.\n * @function decode\n * @memberof Trace.QueryPlanNode.ResponsePathElement\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Trace.QueryPlanNode.ResponsePathElement} ResponsePathElement\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ResponsePathElement.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.Trace.QueryPlanNode.ResponsePathElement();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.fieldName = reader.string();\n break;\n case 2:\n message.index = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ResponsePathElement message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Trace.QueryPlanNode.ResponsePathElement\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Trace.QueryPlanNode.ResponsePathElement} ResponsePathElement\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ResponsePathElement.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ResponsePathElement message.\n * @function verify\n * @memberof Trace.QueryPlanNode.ResponsePathElement\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ResponsePathElement.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n var properties = {};\n if (message.fieldName != null && message.hasOwnProperty(\"fieldName\")) {\n properties.id = 1;\n if (!$util.isString(message.fieldName))\n return \"fieldName: string expected\";\n }\n if (message.index != null && message.hasOwnProperty(\"index\")) {\n if (properties.id === 1)\n return \"id: multiple values\";\n properties.id = 1;\n if (!$util.isInteger(message.index))\n return \"index: integer expected\";\n }\n return null;\n };\n\n /**\n * Creates a plain object from a ResponsePathElement message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Trace.QueryPlanNode.ResponsePathElement\n * @static\n * @param {Trace.QueryPlanNode.ResponsePathElement} message ResponsePathElement\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ResponsePathElement.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (message.fieldName != null && message.hasOwnProperty(\"fieldName\")) {\n object.fieldName = message.fieldName;\n if (options.oneofs)\n object.id = \"fieldName\";\n }\n if (message.index != null && message.hasOwnProperty(\"index\")) {\n object.index = message.index;\n if (options.oneofs)\n object.id = \"index\";\n }\n return object;\n };\n\n /**\n * Converts this ResponsePathElement to JSON.\n * @function toJSON\n * @memberof Trace.QueryPlanNode.ResponsePathElement\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ResponsePathElement.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ResponsePathElement;\n })();\n\n return QueryPlanNode;\n })();\n\n return Trace;\n})();\n\n$root.ReportHeader = (function() {\n\n /**\n * Properties of a ReportHeader.\n * @exports IReportHeader\n * @interface IReportHeader\n * @property {string|null} [graphRef] ReportHeader graphRef\n * @property {string|null} [hostname] ReportHeader hostname\n * @property {string|null} [agentVersion] ReportHeader agentVersion\n * @property {string|null} [serviceVersion] ReportHeader serviceVersion\n * @property {string|null} [runtimeVersion] ReportHeader runtimeVersion\n * @property {string|null} [uname] ReportHeader uname\n * @property {string|null} [executableSchemaId] ReportHeader executableSchemaId\n */\n\n /**\n * Constructs a new ReportHeader.\n * @exports ReportHeader\n * @classdesc Represents a ReportHeader.\n * @implements IReportHeader\n * @constructor\n * @param {IReportHeader=} [properties] Properties to set\n */\n function ReportHeader(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ReportHeader graphRef.\n * @member {string} graphRef\n * @memberof ReportHeader\n * @instance\n */\n ReportHeader.prototype.graphRef = \"\";\n\n /**\n * ReportHeader hostname.\n * @member {string} hostname\n * @memberof ReportHeader\n * @instance\n */\n ReportHeader.prototype.hostname = \"\";\n\n /**\n * ReportHeader agentVersion.\n * @member {string} agentVersion\n * @memberof ReportHeader\n * @instance\n */\n ReportHeader.prototype.agentVersion = \"\";\n\n /**\n * ReportHeader serviceVersion.\n * @member {string} serviceVersion\n * @memberof ReportHeader\n * @instance\n */\n ReportHeader.prototype.serviceVersion = \"\";\n\n /**\n * ReportHeader runtimeVersion.\n * @member {string} runtimeVersion\n * @memberof ReportHeader\n * @instance\n */\n ReportHeader.prototype.runtimeVersion = \"\";\n\n /**\n * ReportHeader uname.\n * @member {string} uname\n * @memberof ReportHeader\n * @instance\n */\n ReportHeader.prototype.uname = \"\";\n\n /**\n * ReportHeader executableSchemaId.\n * @member {string} executableSchemaId\n * @memberof ReportHeader\n * @instance\n */\n ReportHeader.prototype.executableSchemaId = \"\";\n\n /**\n * Creates a new ReportHeader instance using the specified properties.\n * @function create\n * @memberof ReportHeader\n * @static\n * @param {IReportHeader=} [properties] Properties to set\n * @returns {ReportHeader} ReportHeader instance\n */\n ReportHeader.create = function create(properties) {\n return new ReportHeader(properties);\n };\n\n /**\n * Encodes the specified ReportHeader message. Does not implicitly {@link ReportHeader.verify|verify} messages.\n * @function encode\n * @memberof ReportHeader\n * @static\n * @param {IReportHeader} message ReportHeader message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ReportHeader.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.hostname != null && Object.hasOwnProperty.call(message, \"hostname\"))\n writer.uint32(/* id 5, wireType 2 =*/42).string(message.hostname);\n if (message.agentVersion != null && Object.hasOwnProperty.call(message, \"agentVersion\"))\n writer.uint32(/* id 6, wireType 2 =*/50).string(message.agentVersion);\n if (message.serviceVersion != null && Object.hasOwnProperty.call(message, \"serviceVersion\"))\n writer.uint32(/* id 7, wireType 2 =*/58).string(message.serviceVersion);\n if (message.runtimeVersion != null && Object.hasOwnProperty.call(message, \"runtimeVersion\"))\n writer.uint32(/* id 8, wireType 2 =*/66).string(message.runtimeVersion);\n if (message.uname != null && Object.hasOwnProperty.call(message, \"uname\"))\n writer.uint32(/* id 9, wireType 2 =*/74).string(message.uname);\n if (message.executableSchemaId != null && Object.hasOwnProperty.call(message, \"executableSchemaId\"))\n writer.uint32(/* id 11, wireType 2 =*/90).string(message.executableSchemaId);\n if (message.graphRef != null && Object.hasOwnProperty.call(message, \"graphRef\"))\n writer.uint32(/* id 12, wireType 2 =*/98).string(message.graphRef);\n return writer;\n };\n\n /**\n * Encodes the specified ReportHeader message, length delimited. Does not implicitly {@link ReportHeader.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ReportHeader\n * @static\n * @param {IReportHeader} message ReportHeader message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ReportHeader.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ReportHeader message from the specified reader or buffer.\n * @function decode\n * @memberof ReportHeader\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ReportHeader} ReportHeader\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ReportHeader.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ReportHeader();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 12:\n message.graphRef = reader.string();\n break;\n case 5:\n message.hostname = reader.string();\n break;\n case 6:\n message.agentVersion = reader.string();\n break;\n case 7:\n message.serviceVersion = reader.string();\n break;\n case 8:\n message.runtimeVersion = reader.string();\n break;\n case 9:\n message.uname = reader.string();\n break;\n case 11:\n message.executableSchemaId = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ReportHeader message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ReportHeader\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ReportHeader} ReportHeader\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ReportHeader.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ReportHeader message.\n * @function verify\n * @memberof ReportHeader\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ReportHeader.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.graphRef != null && message.hasOwnProperty(\"graphRef\"))\n if (!$util.isString(message.graphRef))\n return \"graphRef: string expected\";\n if (message.hostname != null && message.hasOwnProperty(\"hostname\"))\n if (!$util.isString(message.hostname))\n return \"hostname: string expected\";\n if (message.agentVersion != null && message.hasOwnProperty(\"agentVersion\"))\n if (!$util.isString(message.agentVersion))\n return \"agentVersion: string expected\";\n if (message.serviceVersion != null && message.hasOwnProperty(\"serviceVersion\"))\n if (!$util.isString(message.serviceVersion))\n return \"serviceVersion: string expected\";\n if (message.runtimeVersion != null && message.hasOwnProperty(\"runtimeVersion\"))\n if (!$util.isString(message.runtimeVersion))\n return \"runtimeVersion: string expected\";\n if (message.uname != null && message.hasOwnProperty(\"uname\"))\n if (!$util.isString(message.uname))\n return \"uname: string expected\";\n if (message.executableSchemaId != null && message.hasOwnProperty(\"executableSchemaId\"))\n if (!$util.isString(message.executableSchemaId))\n return \"executableSchemaId: string expected\";\n return null;\n };\n\n /**\n * Creates a plain object from a ReportHeader message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ReportHeader\n * @static\n * @param {ReportHeader} message ReportHeader\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ReportHeader.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.hostname = \"\";\n object.agentVersion = \"\";\n object.serviceVersion = \"\";\n object.runtimeVersion = \"\";\n object.uname = \"\";\n object.executableSchemaId = \"\";\n object.graphRef = \"\";\n }\n if (message.hostname != null && message.hasOwnProperty(\"hostname\"))\n object.hostname = message.hostname;\n if (message.agentVersion != null && message.hasOwnProperty(\"agentVersion\"))\n object.agentVersion = message.agentVersion;\n if (message.serviceVersion != null && message.hasOwnProperty(\"serviceVersion\"))\n object.serviceVersion = message.serviceVersion;\n if (message.runtimeVersion != null && message.hasOwnProperty(\"runtimeVersion\"))\n object.runtimeVersion = message.runtimeVersion;\n if (message.uname != null && message.hasOwnProperty(\"uname\"))\n object.uname = message.uname;\n if (message.executableSchemaId != null && message.hasOwnProperty(\"executableSchemaId\"))\n object.executableSchemaId = message.executableSchemaId;\n if (message.graphRef != null && message.hasOwnProperty(\"graphRef\"))\n object.graphRef = message.graphRef;\n return object;\n };\n\n /**\n * Converts this ReportHeader to JSON.\n * @function toJSON\n * @memberof ReportHeader\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ReportHeader.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ReportHeader;\n})();\n\n$root.PathErrorStats = (function() {\n\n /**\n * Properties of a PathErrorStats.\n * @exports IPathErrorStats\n * @interface IPathErrorStats\n * @property {Object.<string,IPathErrorStats>|null} [children] PathErrorStats children\n * @property {number|null} [errorsCount] PathErrorStats errorsCount\n * @property {number|null} [requestsWithErrorsCount] PathErrorStats requestsWithErrorsCount\n */\n\n /**\n * Constructs a new PathErrorStats.\n * @exports PathErrorStats\n * @classdesc Represents a PathErrorStats.\n * @implements IPathErrorStats\n * @constructor\n * @param {IPathErrorStats=} [properties] Properties to set\n */\n function PathErrorStats(properties) {\n this.children = {};\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * PathErrorStats children.\n * @member {Object.<string,IPathErrorStats>} children\n * @memberof PathErrorStats\n * @instance\n */\n PathErrorStats.prototype.children = $util.emptyObject;\n\n /**\n * PathErrorStats errorsCount.\n * @member {number} errorsCount\n * @memberof PathErrorStats\n * @instance\n */\n PathErrorStats.prototype.errorsCount = 0;\n\n /**\n * PathErrorStats requestsWithErrorsCount.\n * @member {number} requestsWithErrorsCount\n * @memberof PathErrorStats\n * @instance\n */\n PathErrorStats.prototype.requestsWithErrorsCount = 0;\n\n /**\n * Creates a new PathErrorStats instance using the specified properties.\n * @function create\n * @memberof PathErrorStats\n * @static\n * @param {IPathErrorStats=} [properties] Properties to set\n * @returns {PathErrorStats} PathErrorStats instance\n */\n PathErrorStats.create = function create(properties) {\n return new PathErrorStats(properties);\n };\n\n /**\n * Encodes the specified PathErrorStats message. Does not implicitly {@link PathErrorStats.verify|verify} messages.\n * @function encode\n * @memberof PathErrorStats\n * @static\n * @param {IPathErrorStats} message PathErrorStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n PathErrorStats.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.children != null && Object.hasOwnProperty.call(message, \"children\"))\n for (var keys = Object.keys(message.children), i = 0; i < keys.length; ++i) {\n writer.uint32(/* id 1, wireType 2 =*/10).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]);\n $root.PathErrorStats.encode(message.children[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim();\n }\n if (message.errorsCount != null && Object.hasOwnProperty.call(message, \"errorsCount\"))\n writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.errorsCount);\n if (message.requestsWithErrorsCount != null && Object.hasOwnProperty.call(message, \"requestsWithErrorsCount\"))\n writer.uint32(/* id 5, wireType 0 =*/40).uint64(message.requestsWithErrorsCount);\n return writer;\n };\n\n /**\n * Encodes the specified PathErrorStats message, length delimited. Does not implicitly {@link PathErrorStats.verify|verify} messages.\n * @function encodeDelimited\n * @memberof PathErrorStats\n * @static\n * @param {IPathErrorStats} message PathErrorStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n PathErrorStats.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a PathErrorStats message from the specified reader or buffer.\n * @function decode\n * @memberof PathErrorStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {PathErrorStats} PathErrorStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n PathErrorStats.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.PathErrorStats(), key;\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n reader.skip().pos++;\n if (message.children === $util.emptyObject)\n message.children = {};\n key = reader.string();\n reader.pos++;\n message.children[key] = $root.PathErrorStats.decode(reader, reader.uint32());\n break;\n case 4:\n message.errorsCount = reader.uint64();\n break;\n case 5:\n message.requestsWithErrorsCount = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a PathErrorStats message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof PathErrorStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {PathErrorStats} PathErrorStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n PathErrorStats.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a PathErrorStats message.\n * @function verify\n * @memberof PathErrorStats\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n PathErrorStats.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.children != null && message.hasOwnProperty(\"children\")) {\n if (!$util.isObject(message.children))\n return \"children: object expected\";\n var key = Object.keys(message.children);\n for (var i = 0; i < key.length; ++i) {\n var error = $root.PathErrorStats.verify(message.children[key[i]]);\n if (error)\n return \"children.\" + error;\n }\n }\n if (message.errorsCount != null && message.hasOwnProperty(\"errorsCount\"))\n if (!$util.isInteger(message.errorsCount) && !(message.errorsCount && $util.isInteger(message.errorsCount.low) && $util.isInteger(message.errorsCount.high)))\n return \"errorsCount: integer|Long expected\";\n if (message.requestsWithErrorsCount != null && message.hasOwnProperty(\"requestsWithErrorsCount\"))\n if (!$util.isInteger(message.requestsWithErrorsCount) && !(message.requestsWithErrorsCount && $util.isInteger(message.requestsWithErrorsCount.low) && $util.isInteger(message.requestsWithErrorsCount.high)))\n return \"requestsWithErrorsCount: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a plain object from a PathErrorStats message. Also converts values to other types if specified.\n * @function toObject\n * @memberof PathErrorStats\n * @static\n * @param {PathErrorStats} message PathErrorStats\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n PathErrorStats.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.objects || options.defaults)\n object.children = {};\n if (options.defaults) {\n object.errorsCount = 0;\n object.requestsWithErrorsCount = 0;\n }\n var keys2;\n if (message.children && (keys2 = Object.keys(message.children)).length) {\n object.children = {};\n for (var j = 0; j < keys2.length; ++j)\n object.children[keys2[j]] = $root.PathErrorStats.toObject(message.children[keys2[j]], options);\n }\n if (message.errorsCount != null && message.hasOwnProperty(\"errorsCount\"))\n if (typeof message.errorsCount === \"number\")\n object.errorsCount = options.longs === String ? String(message.errorsCount) : message.errorsCount;\n else\n object.errorsCount = options.longs === String ? $util.Long.prototype.toString.call(message.errorsCount) : options.longs === Number ? new $util.LongBits(message.errorsCount.low >>> 0, message.errorsCount.high >>> 0).toNumber(true) : message.errorsCount;\n if (message.requestsWithErrorsCount != null && message.hasOwnProperty(\"requestsWithErrorsCount\"))\n if (typeof message.requestsWithErrorsCount === \"number\")\n object.requestsWithErrorsCount = options.longs === String ? String(message.requestsWithErrorsCount) : message.requestsWithErrorsCount;\n else\n object.requestsWithErrorsCount = options.longs === String ? $util.Long.prototype.toString.call(message.requestsWithErrorsCount) : options.longs === Number ? new $util.LongBits(message.requestsWithErrorsCount.low >>> 0, message.requestsWithErrorsCount.high >>> 0).toNumber(true) : message.requestsWithErrorsCount;\n return object;\n };\n\n /**\n * Converts this PathErrorStats to JSON.\n * @function toJSON\n * @memberof PathErrorStats\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n PathErrorStats.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return PathErrorStats;\n})();\n\n$root.QueryLatencyStats = (function() {\n\n /**\n * Properties of a QueryLatencyStats.\n * @exports IQueryLatencyStats\n * @interface IQueryLatencyStats\n * @property {$protobuf.ToArray.<number>|Array.<number>|null} [latencyCount] QueryLatencyStats latencyCount\n * @property {number|null} [requestCount] QueryLatencyStats requestCount\n * @property {number|null} [cacheHits] QueryLatencyStats cacheHits\n * @property {number|null} [persistedQueryHits] QueryLatencyStats persistedQueryHits\n * @property {number|null} [persistedQueryMisses] QueryLatencyStats persistedQueryMisses\n * @property {$protobuf.ToArray.<number>|Array.<number>|null} [cacheLatencyCount] QueryLatencyStats cacheLatencyCount\n * @property {IPathErrorStats|null} [rootErrorStats] QueryLatencyStats rootErrorStats\n * @property {number|null} [requestsWithErrorsCount] QueryLatencyStats requestsWithErrorsCount\n * @property {$protobuf.ToArray.<number>|Array.<number>|null} [publicCacheTtlCount] QueryLatencyStats publicCacheTtlCount\n * @property {$protobuf.ToArray.<number>|Array.<number>|null} [privateCacheTtlCount] QueryLatencyStats privateCacheTtlCount\n * @property {number|null} [registeredOperationCount] QueryLatencyStats registeredOperationCount\n * @property {number|null} [forbiddenOperationCount] QueryLatencyStats forbiddenOperationCount\n * @property {number|null} [requestsWithoutFieldInstrumentation] QueryLatencyStats requestsWithoutFieldInstrumentation\n */\n\n /**\n * Constructs a new QueryLatencyStats.\n * @exports QueryLatencyStats\n * @classdesc Represents a QueryLatencyStats.\n * @implements IQueryLatencyStats\n * @constructor\n * @param {IQueryLatencyStats=} [properties] Properties to set\n */\n function QueryLatencyStats(properties) {\n this.latencyCount = [];\n this.cacheLatencyCount = [];\n this.publicCacheTtlCount = [];\n this.privateCacheTtlCount = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * QueryLatencyStats latencyCount.\n * @member {Array.<number>} latencyCount\n * @memberof QueryLatencyStats\n * @instance\n */\n QueryLatencyStats.prototype.latencyCount = $util.emptyArray;\n\n /**\n * QueryLatencyStats requestCount.\n * @member {number} requestCount\n * @memberof QueryLatencyStats\n * @instance\n */\n QueryLatencyStats.prototype.requestCount = 0;\n\n /**\n * QueryLatencyStats cacheHits.\n * @member {number} cacheHits\n * @memberof QueryLatencyStats\n * @instance\n */\n QueryLatencyStats.prototype.cacheHits = 0;\n\n /**\n * QueryLatencyStats persistedQueryHits.\n * @member {number} persistedQueryHits\n * @memberof QueryLatencyStats\n * @instance\n */\n QueryLatencyStats.prototype.persistedQueryHits = 0;\n\n /**\n * QueryLatencyStats persistedQueryMisses.\n * @member {number} persistedQueryMisses\n * @memberof QueryLatencyStats\n * @instance\n */\n QueryLatencyStats.prototype.persistedQueryMisses = 0;\n\n /**\n * QueryLatencyStats cacheLatencyCount.\n * @member {Array.<number>} cacheLatencyCount\n * @memberof QueryLatencyStats\n * @instance\n */\n QueryLatencyStats.prototype.cacheLatencyCount = $util.emptyArray;\n\n /**\n * QueryLatencyStats rootErrorStats.\n * @member {IPathErrorStats|null|undefined} rootErrorStats\n * @memberof QueryLatencyStats\n * @instance\n */\n QueryLatencyStats.prototype.rootErrorStats = null;\n\n /**\n * QueryLatencyStats requestsWithErrorsCount.\n * @member {number} requestsWithErrorsCount\n * @memberof QueryLatencyStats\n * @instance\n */\n QueryLatencyStats.prototype.requestsWithErrorsCount = 0;\n\n /**\n * QueryLatencyStats publicCacheTtlCount.\n * @member {Array.<number>} publicCacheTtlCount\n * @memberof QueryLatencyStats\n * @instance\n */\n QueryLatencyStats.prototype.publicCacheTtlCount = $util.emptyArray;\n\n /**\n * QueryLatencyStats privateCacheTtlCount.\n * @member {Array.<number>} privateCacheTtlCount\n * @memberof QueryLatencyStats\n * @instance\n */\n QueryLatencyStats.prototype.privateCacheTtlCount = $util.emptyArray;\n\n /**\n * QueryLatencyStats registeredOperationCount.\n * @member {number} registeredOperationCount\n * @memberof QueryLatencyStats\n * @instance\n */\n QueryLatencyStats.prototype.registeredOperationCount = 0;\n\n /**\n * QueryLatencyStats forbiddenOperationCount.\n * @member {number} forbiddenOperationCount\n * @memberof QueryLatencyStats\n * @instance\n */\n QueryLatencyStats.prototype.forbiddenOperationCount = 0;\n\n /**\n * QueryLatencyStats requestsWithoutFieldInstrumentation.\n * @member {number} requestsWithoutFieldInstrumentation\n * @memberof QueryLatencyStats\n * @instance\n */\n QueryLatencyStats.prototype.requestsWithoutFieldInstrumentation = 0;\n\n /**\n * Creates a new QueryLatencyStats instance using the specified properties.\n * @function create\n * @memberof QueryLatencyStats\n * @static\n * @param {IQueryLatencyStats=} [properties] Properties to set\n * @returns {QueryLatencyStats} QueryLatencyStats instance\n */\n QueryLatencyStats.create = function create(properties) {\n return new QueryLatencyStats(properties);\n };\n\n /**\n * Encodes the specified QueryLatencyStats message. Does not implicitly {@link QueryLatencyStats.verify|verify} messages.\n * @function encode\n * @memberof QueryLatencyStats\n * @static\n * @param {IQueryLatencyStats} message QueryLatencyStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n QueryLatencyStats.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.requestCount != null && Object.hasOwnProperty.call(message, \"requestCount\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint64(message.requestCount);\n if (message.cacheHits != null && Object.hasOwnProperty.call(message, \"cacheHits\"))\n writer.uint32(/* id 3, wireType 0 =*/24).uint64(message.cacheHits);\n if (message.persistedQueryHits != null && Object.hasOwnProperty.call(message, \"persistedQueryHits\"))\n writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.persistedQueryHits);\n if (message.persistedQueryMisses != null && Object.hasOwnProperty.call(message, \"persistedQueryMisses\"))\n writer.uint32(/* id 5, wireType 0 =*/40).uint64(message.persistedQueryMisses);\n if (message.rootErrorStats != null && Object.hasOwnProperty.call(message, \"rootErrorStats\"))\n $root.PathErrorStats.encode(message.rootErrorStats, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim();\n if (message.requestsWithErrorsCount != null && Object.hasOwnProperty.call(message, \"requestsWithErrorsCount\"))\n writer.uint32(/* id 8, wireType 0 =*/64).uint64(message.requestsWithErrorsCount);\n if (message.registeredOperationCount != null && Object.hasOwnProperty.call(message, \"registeredOperationCount\"))\n writer.uint32(/* id 11, wireType 0 =*/88).uint64(message.registeredOperationCount);\n if (message.forbiddenOperationCount != null && Object.hasOwnProperty.call(message, \"forbiddenOperationCount\"))\n writer.uint32(/* id 12, wireType 0 =*/96).uint64(message.forbiddenOperationCount);\n var array13;\n if (message.latencyCount != null && message.latencyCount.toArray)\n array13 = message.latencyCount.toArray();\n else\n array13 = message.latencyCount;\n if (array13 != null && array13.length) {\n writer.uint32(/* id 13, wireType 2 =*/106).fork();\n for (var i = 0; i < array13.length; ++i)\n writer.sint64(array13[i]);\n writer.ldelim();\n }\n var array14;\n if (message.cacheLatencyCount != null && message.cacheLatencyCount.toArray)\n array14 = message.cacheLatencyCount.toArray();\n else\n array14 = message.cacheLatencyCount;\n if (array14 != null && array14.length) {\n writer.uint32(/* id 14, wireType 2 =*/114).fork();\n for (var i = 0; i < array14.length; ++i)\n writer.sint64(array14[i]);\n writer.ldelim();\n }\n var array15;\n if (message.publicCacheTtlCount != null && message.publicCacheTtlCount.toArray)\n array15 = message.publicCacheTtlCount.toArray();\n else\n array15 = message.publicCacheTtlCount;\n if (array15 != null && array15.length) {\n writer.uint32(/* id 15, wireType 2 =*/122).fork();\n for (var i = 0; i < array15.length; ++i)\n writer.sint64(array15[i]);\n writer.ldelim();\n }\n var array16;\n if (message.privateCacheTtlCount != null && message.privateCacheTtlCount.toArray)\n array16 = message.privateCacheTtlCount.toArray();\n else\n array16 = message.privateCacheTtlCount;\n if (array16 != null && array16.length) {\n writer.uint32(/* id 16, wireType 2 =*/130).fork();\n for (var i = 0; i < array16.length; ++i)\n writer.sint64(array16[i]);\n writer.ldelim();\n }\n if (message.requestsWithoutFieldInstrumentation != null && Object.hasOwnProperty.call(message, \"requestsWithoutFieldInstrumentation\"))\n writer.uint32(/* id 17, wireType 0 =*/136).uint64(message.requestsWithoutFieldInstrumentation);\n return writer;\n };\n\n /**\n * Encodes the specified QueryLatencyStats message, length delimited. Does not implicitly {@link QueryLatencyStats.verify|verify} messages.\n * @function encodeDelimited\n * @memberof QueryLatencyStats\n * @static\n * @param {IQueryLatencyStats} message QueryLatencyStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n QueryLatencyStats.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a QueryLatencyStats message from the specified reader or buffer.\n * @function decode\n * @memberof QueryLatencyStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {QueryLatencyStats} QueryLatencyStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n QueryLatencyStats.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.QueryLatencyStats();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 13:\n if (!(message.latencyCount && message.latencyCount.length))\n message.latencyCount = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.latencyCount.push(reader.sint64());\n } else\n message.latencyCount.push(reader.sint64());\n break;\n case 2:\n message.requestCount = reader.uint64();\n break;\n case 3:\n message.cacheHits = reader.uint64();\n break;\n case 4:\n message.persistedQueryHits = reader.uint64();\n break;\n case 5:\n message.persistedQueryMisses = reader.uint64();\n break;\n case 14:\n if (!(message.cacheLatencyCount && message.cacheLatencyCount.length))\n message.cacheLatencyCount = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.cacheLatencyCount.push(reader.sint64());\n } else\n message.cacheLatencyCount.push(reader.sint64());\n break;\n case 7:\n message.rootErrorStats = $root.PathErrorStats.decode(reader, reader.uint32());\n break;\n case 8:\n message.requestsWithErrorsCount = reader.uint64();\n break;\n case 15:\n if (!(message.publicCacheTtlCount && message.publicCacheTtlCount.length))\n message.publicCacheTtlCount = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.publicCacheTtlCount.push(reader.sint64());\n } else\n message.publicCacheTtlCount.push(reader.sint64());\n break;\n case 16:\n if (!(message.privateCacheTtlCount && message.privateCacheTtlCount.length))\n message.privateCacheTtlCount = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.privateCacheTtlCount.push(reader.sint64());\n } else\n message.privateCacheTtlCount.push(reader.sint64());\n break;\n case 11:\n message.registeredOperationCount = reader.uint64();\n break;\n case 12:\n message.forbiddenOperationCount = reader.uint64();\n break;\n case 17:\n message.requestsWithoutFieldInstrumentation = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a QueryLatencyStats message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof QueryLatencyStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {QueryLatencyStats} QueryLatencyStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n QueryLatencyStats.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a QueryLatencyStats message.\n * @function verify\n * @memberof QueryLatencyStats\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n QueryLatencyStats.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.latencyCount != null && message.hasOwnProperty(\"latencyCount\")) {\n var array13;\n if (message.latencyCount != null && message.latencyCount.toArray)\n array13 = message.latencyCount.toArray();\n else\n array13 = message.latencyCount;\n if (!Array.isArray(array13))\n return \"latencyCount: array expected\";\n for (var i = 0; i < array13.length; ++i)\n if (!$util.isInteger(array13[i]) && !(array13[i] && $util.isInteger(array13[i].low) && $util.isInteger(array13[i].high)))\n return \"latencyCount: integer|Long[] expected\";\n }\n if (message.requestCount != null && message.hasOwnProperty(\"requestCount\"))\n if (!$util.isInteger(message.requestCount) && !(message.requestCount && $util.isInteger(message.requestCount.low) && $util.isInteger(message.requestCount.high)))\n return \"requestCount: integer|Long expected\";\n if (message.cacheHits != null && message.hasOwnProperty(\"cacheHits\"))\n if (!$util.isInteger(message.cacheHits) && !(message.cacheHits && $util.isInteger(message.cacheHits.low) && $util.isInteger(message.cacheHits.high)))\n return \"cacheHits: integer|Long expected\";\n if (message.persistedQueryHits != null && message.hasOwnProperty(\"persistedQueryHits\"))\n if (!$util.isInteger(message.persistedQueryHits) && !(message.persistedQueryHits && $util.isInteger(message.persistedQueryHits.low) && $util.isInteger(message.persistedQueryHits.high)))\n return \"persistedQueryHits: integer|Long expected\";\n if (message.persistedQueryMisses != null && message.hasOwnProperty(\"persistedQueryMisses\"))\n if (!$util.isInteger(message.persistedQueryMisses) && !(message.persistedQueryMisses && $util.isInteger(message.persistedQueryMisses.low) && $util.isInteger(message.persistedQueryMisses.high)))\n return \"persistedQueryMisses: integer|Long expected\";\n if (message.cacheLatencyCount != null && message.hasOwnProperty(\"cacheLatencyCount\")) {\n var array14;\n if (message.cacheLatencyCount != null && message.cacheLatencyCount.toArray)\n array14 = message.cacheLatencyCount.toArray();\n else\n array14 = message.cacheLatencyCount;\n if (!Array.isArray(array14))\n return \"cacheLatencyCount: array expected\";\n for (var i = 0; i < array14.length; ++i)\n if (!$util.isInteger(array14[i]) && !(array14[i] && $util.isInteger(array14[i].low) && $util.isInteger(array14[i].high)))\n return \"cacheLatencyCount: integer|Long[] expected\";\n }\n if (message.rootErrorStats != null && message.hasOwnProperty(\"rootErrorStats\")) {\n var error = $root.PathErrorStats.verify(message.rootErrorStats);\n if (error)\n return \"rootErrorStats.\" + error;\n }\n if (message.requestsWithErrorsCount != null && message.hasOwnProperty(\"requestsWithErrorsCount\"))\n if (!$util.isInteger(message.requestsWithErrorsCount) && !(message.requestsWithErrorsCount && $util.isInteger(message.requestsWithErrorsCount.low) && $util.isInteger(message.requestsWithErrorsCount.high)))\n return \"requestsWithErrorsCount: integer|Long expected\";\n if (message.publicCacheTtlCount != null && message.hasOwnProperty(\"publicCacheTtlCount\")) {\n var array15;\n if (message.publicCacheTtlCount != null && message.publicCacheTtlCount.toArray)\n array15 = message.publicCacheTtlCount.toArray();\n else\n array15 = message.publicCacheTtlCount;\n if (!Array.isArray(array15))\n return \"publicCacheTtlCount: array expected\";\n for (var i = 0; i < array15.length; ++i)\n if (!$util.isInteger(array15[i]) && !(array15[i] && $util.isInteger(array15[i].low) && $util.isInteger(array15[i].high)))\n return \"publicCacheTtlCount: integer|Long[] expected\";\n }\n if (message.privateCacheTtlCount != null && message.hasOwnProperty(\"privateCacheTtlCount\")) {\n var array16;\n if (message.privateCacheTtlCount != null && message.privateCacheTtlCount.toArray)\n array16 = message.privateCacheTtlCount.toArray();\n else\n array16 = message.privateCacheTtlCount;\n if (!Array.isArray(array16))\n return \"privateCacheTtlCount: array expected\";\n for (var i = 0; i < array16.length; ++i)\n if (!$util.isInteger(array16[i]) && !(array16[i] && $util.isInteger(array16[i].low) && $util.isInteger(array16[i].high)))\n return \"privateCacheTtlCount: integer|Long[] expected\";\n }\n if (message.registeredOperationCount != null && message.hasOwnProperty(\"registeredOperationCount\"))\n if (!$util.isInteger(message.registeredOperationCount) && !(message.registeredOperationCount && $util.isInteger(message.registeredOperationCount.low) && $util.isInteger(message.registeredOperationCount.high)))\n return \"registeredOperationCount: integer|Long expected\";\n if (message.forbiddenOperationCount != null && message.hasOwnProperty(\"forbiddenOperationCount\"))\n if (!$util.isInteger(message.forbiddenOperationCount) && !(message.forbiddenOperationCount && $util.isInteger(message.forbiddenOperationCount.low) && $util.isInteger(message.forbiddenOperationCount.high)))\n return \"forbiddenOperationCount: integer|Long expected\";\n if (message.requestsWithoutFieldInstrumentation != null && message.hasOwnProperty(\"requestsWithoutFieldInstrumentation\"))\n if (!$util.isInteger(message.requestsWithoutFieldInstrumentation) && !(message.requestsWithoutFieldInstrumentation && $util.isInteger(message.requestsWithoutFieldInstrumentation.low) && $util.isInteger(message.requestsWithoutFieldInstrumentation.high)))\n return \"requestsWithoutFieldInstrumentation: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a plain object from a QueryLatencyStats message. Also converts values to other types if specified.\n * @function toObject\n * @memberof QueryLatencyStats\n * @static\n * @param {QueryLatencyStats} message QueryLatencyStats\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n QueryLatencyStats.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.latencyCount = [];\n object.cacheLatencyCount = [];\n object.publicCacheTtlCount = [];\n object.privateCacheTtlCount = [];\n }\n if (options.defaults) {\n object.requestCount = 0;\n object.cacheHits = 0;\n object.persistedQueryHits = 0;\n object.persistedQueryMisses = 0;\n object.rootErrorStats = null;\n object.requestsWithErrorsCount = 0;\n object.registeredOperationCount = 0;\n object.forbiddenOperationCount = 0;\n object.requestsWithoutFieldInstrumentation = 0;\n }\n if (message.requestCount != null && message.hasOwnProperty(\"requestCount\"))\n if (typeof message.requestCount === \"number\")\n object.requestCount = options.longs === String ? String(message.requestCount) : message.requestCount;\n else\n object.requestCount = options.longs === String ? $util.Long.prototype.toString.call(message.requestCount) : options.longs === Number ? new $util.LongBits(message.requestCount.low >>> 0, message.requestCount.high >>> 0).toNumber(true) : message.requestCount;\n if (message.cacheHits != null && message.hasOwnProperty(\"cacheHits\"))\n if (typeof message.cacheHits === \"number\")\n object.cacheHits = options.longs === String ? String(message.cacheHits) : message.cacheHits;\n else\n object.cacheHits = options.longs === String ? $util.Long.prototype.toString.call(message.cacheHits) : options.longs === Number ? new $util.LongBits(message.cacheHits.low >>> 0, message.cacheHits.high >>> 0).toNumber(true) : message.cacheHits;\n if (message.persistedQueryHits != null && message.hasOwnProperty(\"persistedQueryHits\"))\n if (typeof message.persistedQueryHits === \"number\")\n object.persistedQueryHits = options.longs === String ? String(message.persistedQueryHits) : message.persistedQueryHits;\n else\n object.persistedQueryHits = options.longs === String ? $util.Long.prototype.toString.call(message.persistedQueryHits) : options.longs === Number ? new $util.LongBits(message.persistedQueryHits.low >>> 0, message.persistedQueryHits.high >>> 0).toNumber(true) : message.persistedQueryHits;\n if (message.persistedQueryMisses != null && message.hasOwnProperty(\"persistedQueryMisses\"))\n if (typeof message.persistedQueryMisses === \"number\")\n object.persistedQueryMisses = options.longs === String ? String(message.persistedQueryMisses) : message.persistedQueryMisses;\n else\n object.persistedQueryMisses = options.longs === String ? $util.Long.prototype.toString.call(message.persistedQueryMisses) : options.longs === Number ? new $util.LongBits(message.persistedQueryMisses.low >>> 0, message.persistedQueryMisses.high >>> 0).toNumber(true) : message.persistedQueryMisses;\n if (message.rootErrorStats != null && message.hasOwnProperty(\"rootErrorStats\"))\n object.rootErrorStats = $root.PathErrorStats.toObject(message.rootErrorStats, options);\n if (message.requestsWithErrorsCount != null && message.hasOwnProperty(\"requestsWithErrorsCount\"))\n if (typeof message.requestsWithErrorsCount === \"number\")\n object.requestsWithErrorsCount = options.longs === String ? String(message.requestsWithErrorsCount) : message.requestsWithErrorsCount;\n else\n object.requestsWithErrorsCount = options.longs === String ? $util.Long.prototype.toString.call(message.requestsWithErrorsCount) : options.longs === Number ? new $util.LongBits(message.requestsWithErrorsCount.low >>> 0, message.requestsWithErrorsCount.high >>> 0).toNumber(true) : message.requestsWithErrorsCount;\n if (message.registeredOperationCount != null && message.hasOwnProperty(\"registeredOperationCount\"))\n if (typeof message.registeredOperationCount === \"number\")\n object.registeredOperationCount = options.longs === String ? String(message.registeredOperationCount) : message.registeredOperationCount;\n else\n object.registeredOperationCount = options.longs === String ? $util.Long.prototype.toString.call(message.registeredOperationCount) : options.longs === Number ? new $util.LongBits(message.registeredOperationCount.low >>> 0, message.registeredOperationCount.high >>> 0).toNumber(true) : message.registeredOperationCount;\n if (message.forbiddenOperationCount != null && message.hasOwnProperty(\"forbiddenOperationCount\"))\n if (typeof message.forbiddenOperationCount === \"number\")\n object.forbiddenOperationCount = options.longs === String ? String(message.forbiddenOperationCount) : message.forbiddenOperationCount;\n else\n object.forbiddenOperationCount = options.longs === String ? $util.Long.prototype.toString.call(message.forbiddenOperationCount) : options.longs === Number ? new $util.LongBits(message.forbiddenOperationCount.low >>> 0, message.forbiddenOperationCount.high >>> 0).toNumber(true) : message.forbiddenOperationCount;\n if (message.latencyCount && message.latencyCount.length) {\n object.latencyCount = [];\n for (var j = 0; j < message.latencyCount.length; ++j)\n if (typeof message.latencyCount[j] === \"number\")\n object.latencyCount[j] = options.longs === String ? String(message.latencyCount[j]) : message.latencyCount[j];\n else\n object.latencyCount[j] = options.longs === String ? $util.Long.prototype.toString.call(message.latencyCount[j]) : options.longs === Number ? new $util.LongBits(message.latencyCount[j].low >>> 0, message.latencyCount[j].high >>> 0).toNumber() : message.latencyCount[j];\n }\n if (message.cacheLatencyCount && message.cacheLatencyCount.length) {\n object.cacheLatencyCount = [];\n for (var j = 0; j < message.cacheLatencyCount.length; ++j)\n if (typeof message.cacheLatencyCount[j] === \"number\")\n object.cacheLatencyCount[j] = options.longs === String ? String(message.cacheLatencyCount[j]) : message.cacheLatencyCount[j];\n else\n object.cacheLatencyCount[j] = options.longs === String ? $util.Long.prototype.toString.call(message.cacheLatencyCount[j]) : options.longs === Number ? new $util.LongBits(message.cacheLatencyCount[j].low >>> 0, message.cacheLatencyCount[j].high >>> 0).toNumber() : message.cacheLatencyCount[j];\n }\n if (message.publicCacheTtlCount && message.publicCacheTtlCount.length) {\n object.publicCacheTtlCount = [];\n for (var j = 0; j < message.publicCacheTtlCount.length; ++j)\n if (typeof message.publicCacheTtlCount[j] === \"number\")\n object.publicCacheTtlCount[j] = options.longs === String ? String(message.publicCacheTtlCount[j]) : message.publicCacheTtlCount[j];\n else\n object.publicCacheTtlCount[j] = options.longs === String ? $util.Long.prototype.toString.call(message.publicCacheTtlCount[j]) : options.longs === Number ? new $util.LongBits(message.publicCacheTtlCount[j].low >>> 0, message.publicCacheTtlCount[j].high >>> 0).toNumber() : message.publicCacheTtlCount[j];\n }\n if (message.privateCacheTtlCount && message.privateCacheTtlCount.length) {\n object.privateCacheTtlCount = [];\n for (var j = 0; j < message.privateCacheTtlCount.length; ++j)\n if (typeof message.privateCacheTtlCount[j] === \"number\")\n object.privateCacheTtlCount[j] = options.longs === String ? String(message.privateCacheTtlCount[j]) : message.privateCacheTtlCount[j];\n else\n object.privateCacheTtlCount[j] = options.longs === String ? $util.Long.prototype.toString.call(message.privateCacheTtlCount[j]) : options.longs === Number ? new $util.LongBits(message.privateCacheTtlCount[j].low >>> 0, message.privateCacheTtlCount[j].high >>> 0).toNumber() : message.privateCacheTtlCount[j];\n }\n if (message.requestsWithoutFieldInstrumentation != null && message.hasOwnProperty(\"requestsWithoutFieldInstrumentation\"))\n if (typeof message.requestsWithoutFieldInstrumentation === \"number\")\n object.requestsWithoutFieldInstrumentation = options.longs === String ? String(message.requestsWithoutFieldInstrumentation) : message.requestsWithoutFieldInstrumentation;\n else\n object.requestsWithoutFieldInstrumentation = options.longs === String ? $util.Long.prototype.toString.call(message.requestsWithoutFieldInstrumentation) : options.longs === Number ? new $util.LongBits(message.requestsWithoutFieldInstrumentation.low >>> 0, message.requestsWithoutFieldInstrumentation.high >>> 0).toNumber(true) : message.requestsWithoutFieldInstrumentation;\n return object;\n };\n\n /**\n * Converts this QueryLatencyStats to JSON.\n * @function toJSON\n * @memberof QueryLatencyStats\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n QueryLatencyStats.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return QueryLatencyStats;\n})();\n\n$root.StatsContext = (function() {\n\n /**\n * Properties of a StatsContext.\n * @exports IStatsContext\n * @interface IStatsContext\n * @property {string|null} [clientName] StatsContext clientName\n * @property {string|null} [clientVersion] StatsContext clientVersion\n */\n\n /**\n * Constructs a new StatsContext.\n * @exports StatsContext\n * @classdesc Represents a StatsContext.\n * @implements IStatsContext\n * @constructor\n * @param {IStatsContext=} [properties] Properties to set\n */\n function StatsContext(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * StatsContext clientName.\n * @member {string} clientName\n * @memberof StatsContext\n * @instance\n */\n StatsContext.prototype.clientName = \"\";\n\n /**\n * StatsContext clientVersion.\n * @member {string} clientVersion\n * @memberof StatsContext\n * @instance\n */\n StatsContext.prototype.clientVersion = \"\";\n\n /**\n * Creates a new StatsContext instance using the specified properties.\n * @function create\n * @memberof StatsContext\n * @static\n * @param {IStatsContext=} [properties] Properties to set\n * @returns {StatsContext} StatsContext instance\n */\n StatsContext.create = function create(properties) {\n return new StatsContext(properties);\n };\n\n /**\n * Encodes the specified StatsContext message. Does not implicitly {@link StatsContext.verify|verify} messages.\n * @function encode\n * @memberof StatsContext\n * @static\n * @param {IStatsContext} message StatsContext message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n StatsContext.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.clientName != null && Object.hasOwnProperty.call(message, \"clientName\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.clientName);\n if (message.clientVersion != null && Object.hasOwnProperty.call(message, \"clientVersion\"))\n writer.uint32(/* id 3, wireType 2 =*/26).string(message.clientVersion);\n return writer;\n };\n\n /**\n * Encodes the specified StatsContext message, length delimited. Does not implicitly {@link StatsContext.verify|verify} messages.\n * @function encodeDelimited\n * @memberof StatsContext\n * @static\n * @param {IStatsContext} message StatsContext message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n StatsContext.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a StatsContext message from the specified reader or buffer.\n * @function decode\n * @memberof StatsContext\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {StatsContext} StatsContext\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n StatsContext.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.StatsContext();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 2:\n message.clientName = reader.string();\n break;\n case 3:\n message.clientVersion = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a StatsContext message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof StatsContext\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {StatsContext} StatsContext\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n StatsContext.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a StatsContext message.\n * @function verify\n * @memberof StatsContext\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n StatsContext.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.clientName != null && message.hasOwnProperty(\"clientName\"))\n if (!$util.isString(message.clientName))\n return \"clientName: string expected\";\n if (message.clientVersion != null && message.hasOwnProperty(\"clientVersion\"))\n if (!$util.isString(message.clientVersion))\n return \"clientVersion: string expected\";\n return null;\n };\n\n /**\n * Creates a plain object from a StatsContext message. Also converts values to other types if specified.\n * @function toObject\n * @memberof StatsContext\n * @static\n * @param {StatsContext} message StatsContext\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n StatsContext.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.clientName = \"\";\n object.clientVersion = \"\";\n }\n if (message.clientName != null && message.hasOwnProperty(\"clientName\"))\n object.clientName = message.clientName;\n if (message.clientVersion != null && message.hasOwnProperty(\"clientVersion\"))\n object.clientVersion = message.clientVersion;\n return object;\n };\n\n /**\n * Converts this StatsContext to JSON.\n * @function toJSON\n * @memberof StatsContext\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n StatsContext.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return StatsContext;\n})();\n\n$root.ContextualizedQueryLatencyStats = (function() {\n\n /**\n * Properties of a ContextualizedQueryLatencyStats.\n * @exports IContextualizedQueryLatencyStats\n * @interface IContextualizedQueryLatencyStats\n * @property {IQueryLatencyStats|null} [queryLatencyStats] ContextualizedQueryLatencyStats queryLatencyStats\n * @property {IStatsContext|null} [context] ContextualizedQueryLatencyStats context\n */\n\n /**\n * Constructs a new ContextualizedQueryLatencyStats.\n * @exports ContextualizedQueryLatencyStats\n * @classdesc Represents a ContextualizedQueryLatencyStats.\n * @implements IContextualizedQueryLatencyStats\n * @constructor\n * @param {IContextualizedQueryLatencyStats=} [properties] Properties to set\n */\n function ContextualizedQueryLatencyStats(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ContextualizedQueryLatencyStats queryLatencyStats.\n * @member {IQueryLatencyStats|null|undefined} queryLatencyStats\n * @memberof ContextualizedQueryLatencyStats\n * @instance\n */\n ContextualizedQueryLatencyStats.prototype.queryLatencyStats = null;\n\n /**\n * ContextualizedQueryLatencyStats context.\n * @member {IStatsContext|null|undefined} context\n * @memberof ContextualizedQueryLatencyStats\n * @instance\n */\n ContextualizedQueryLatencyStats.prototype.context = null;\n\n /**\n * Creates a new ContextualizedQueryLatencyStats instance using the specified properties.\n * @function create\n * @memberof ContextualizedQueryLatencyStats\n * @static\n * @param {IContextualizedQueryLatencyStats=} [properties] Properties to set\n * @returns {ContextualizedQueryLatencyStats} ContextualizedQueryLatencyStats instance\n */\n ContextualizedQueryLatencyStats.create = function create(properties) {\n return new ContextualizedQueryLatencyStats(properties);\n };\n\n /**\n * Encodes the specified ContextualizedQueryLatencyStats message. Does not implicitly {@link ContextualizedQueryLatencyStats.verify|verify} messages.\n * @function encode\n * @memberof ContextualizedQueryLatencyStats\n * @static\n * @param {IContextualizedQueryLatencyStats} message ContextualizedQueryLatencyStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ContextualizedQueryLatencyStats.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.queryLatencyStats != null && Object.hasOwnProperty.call(message, \"queryLatencyStats\"))\n $root.QueryLatencyStats.encode(message.queryLatencyStats, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.context != null && Object.hasOwnProperty.call(message, \"context\"))\n $root.StatsContext.encode(message.context, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified ContextualizedQueryLatencyStats message, length delimited. Does not implicitly {@link ContextualizedQueryLatencyStats.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ContextualizedQueryLatencyStats\n * @static\n * @param {IContextualizedQueryLatencyStats} message ContextualizedQueryLatencyStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ContextualizedQueryLatencyStats.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ContextualizedQueryLatencyStats message from the specified reader or buffer.\n * @function decode\n * @memberof ContextualizedQueryLatencyStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ContextualizedQueryLatencyStats} ContextualizedQueryLatencyStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ContextualizedQueryLatencyStats.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ContextualizedQueryLatencyStats();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.queryLatencyStats = $root.QueryLatencyStats.decode(reader, reader.uint32());\n break;\n case 2:\n message.context = $root.StatsContext.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ContextualizedQueryLatencyStats message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ContextualizedQueryLatencyStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ContextualizedQueryLatencyStats} ContextualizedQueryLatencyStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ContextualizedQueryLatencyStats.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ContextualizedQueryLatencyStats message.\n * @function verify\n * @memberof ContextualizedQueryLatencyStats\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ContextualizedQueryLatencyStats.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.queryLatencyStats != null && message.hasOwnProperty(\"queryLatencyStats\")) {\n var error = $root.QueryLatencyStats.verify(message.queryLatencyStats);\n if (error)\n return \"queryLatencyStats.\" + error;\n }\n if (message.context != null && message.hasOwnProperty(\"context\")) {\n var error = $root.StatsContext.verify(message.context);\n if (error)\n return \"context.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a plain object from a ContextualizedQueryLatencyStats message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ContextualizedQueryLatencyStats\n * @static\n * @param {ContextualizedQueryLatencyStats} message ContextualizedQueryLatencyStats\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ContextualizedQueryLatencyStats.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.queryLatencyStats = null;\n object.context = null;\n }\n if (message.queryLatencyStats != null && message.hasOwnProperty(\"queryLatencyStats\"))\n object.queryLatencyStats = $root.QueryLatencyStats.toObject(message.queryLatencyStats, options);\n if (message.context != null && message.hasOwnProperty(\"context\"))\n object.context = $root.StatsContext.toObject(message.context, options);\n return object;\n };\n\n /**\n * Converts this ContextualizedQueryLatencyStats to JSON.\n * @function toJSON\n * @memberof ContextualizedQueryLatencyStats\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ContextualizedQueryLatencyStats.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ContextualizedQueryLatencyStats;\n})();\n\n$root.ContextualizedTypeStats = (function() {\n\n /**\n * Properties of a ContextualizedTypeStats.\n * @exports IContextualizedTypeStats\n * @interface IContextualizedTypeStats\n * @property {IStatsContext|null} [context] ContextualizedTypeStats context\n * @property {Object.<string,ITypeStat>|null} [perTypeStat] ContextualizedTypeStats perTypeStat\n */\n\n /**\n * Constructs a new ContextualizedTypeStats.\n * @exports ContextualizedTypeStats\n * @classdesc Represents a ContextualizedTypeStats.\n * @implements IContextualizedTypeStats\n * @constructor\n * @param {IContextualizedTypeStats=} [properties] Properties to set\n */\n function ContextualizedTypeStats(properties) {\n this.perTypeStat = {};\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ContextualizedTypeStats context.\n * @member {IStatsContext|null|undefined} context\n * @memberof ContextualizedTypeStats\n * @instance\n */\n ContextualizedTypeStats.prototype.context = null;\n\n /**\n * ContextualizedTypeStats perTypeStat.\n * @member {Object.<string,ITypeStat>} perTypeStat\n * @memberof ContextualizedTypeStats\n * @instance\n */\n ContextualizedTypeStats.prototype.perTypeStat = $util.emptyObject;\n\n /**\n * Creates a new ContextualizedTypeStats instance using the specified properties.\n * @function create\n * @memberof ContextualizedTypeStats\n * @static\n * @param {IContextualizedTypeStats=} [properties] Properties to set\n * @returns {ContextualizedTypeStats} ContextualizedTypeStats instance\n */\n ContextualizedTypeStats.create = function create(properties) {\n return new ContextualizedTypeStats(properties);\n };\n\n /**\n * Encodes the specified ContextualizedTypeStats message. Does not implicitly {@link ContextualizedTypeStats.verify|verify} messages.\n * @function encode\n * @memberof ContextualizedTypeStats\n * @static\n * @param {IContextualizedTypeStats} message ContextualizedTypeStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ContextualizedTypeStats.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.context != null && Object.hasOwnProperty.call(message, \"context\"))\n $root.StatsContext.encode(message.context, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.perTypeStat != null && Object.hasOwnProperty.call(message, \"perTypeStat\"))\n for (var keys = Object.keys(message.perTypeStat), i = 0; i < keys.length; ++i) {\n writer.uint32(/* id 2, wireType 2 =*/18).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]);\n $root.TypeStat.encode(message.perTypeStat[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim();\n }\n return writer;\n };\n\n /**\n * Encodes the specified ContextualizedTypeStats message, length delimited. Does not implicitly {@link ContextualizedTypeStats.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ContextualizedTypeStats\n * @static\n * @param {IContextualizedTypeStats} message ContextualizedTypeStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ContextualizedTypeStats.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ContextualizedTypeStats message from the specified reader or buffer.\n * @function decode\n * @memberof ContextualizedTypeStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ContextualizedTypeStats} ContextualizedTypeStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ContextualizedTypeStats.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ContextualizedTypeStats(), key;\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.context = $root.StatsContext.decode(reader, reader.uint32());\n break;\n case 2:\n reader.skip().pos++;\n if (message.perTypeStat === $util.emptyObject)\n message.perTypeStat = {};\n key = reader.string();\n reader.pos++;\n message.perTypeStat[key] = $root.TypeStat.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ContextualizedTypeStats message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ContextualizedTypeStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ContextualizedTypeStats} ContextualizedTypeStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ContextualizedTypeStats.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ContextualizedTypeStats message.\n * @function verify\n * @memberof ContextualizedTypeStats\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ContextualizedTypeStats.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.context != null && message.hasOwnProperty(\"context\")) {\n var error = $root.StatsContext.verify(message.context);\n if (error)\n return \"context.\" + error;\n }\n if (message.perTypeStat != null && message.hasOwnProperty(\"perTypeStat\")) {\n if (!$util.isObject(message.perTypeStat))\n return \"perTypeStat: object expected\";\n var key = Object.keys(message.perTypeStat);\n for (var i = 0; i < key.length; ++i) {\n var error = $root.TypeStat.verify(message.perTypeStat[key[i]]);\n if (error)\n return \"perTypeStat.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a plain object from a ContextualizedTypeStats message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ContextualizedTypeStats\n * @static\n * @param {ContextualizedTypeStats} message ContextualizedTypeStats\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ContextualizedTypeStats.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.objects || options.defaults)\n object.perTypeStat = {};\n if (options.defaults)\n object.context = null;\n if (message.context != null && message.hasOwnProperty(\"context\"))\n object.context = $root.StatsContext.toObject(message.context, options);\n var keys2;\n if (message.perTypeStat && (keys2 = Object.keys(message.perTypeStat)).length) {\n object.perTypeStat = {};\n for (var j = 0; j < keys2.length; ++j)\n object.perTypeStat[keys2[j]] = $root.TypeStat.toObject(message.perTypeStat[keys2[j]], options);\n }\n return object;\n };\n\n /**\n * Converts this ContextualizedTypeStats to JSON.\n * @function toJSON\n * @memberof ContextualizedTypeStats\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ContextualizedTypeStats.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ContextualizedTypeStats;\n})();\n\n$root.FieldStat = (function() {\n\n /**\n * Properties of a FieldStat.\n * @exports IFieldStat\n * @interface IFieldStat\n * @property {string|null} [returnType] FieldStat returnType\n * @property {number|null} [errorsCount] FieldStat errorsCount\n * @property {number|null} [observedExecutionCount] FieldStat observedExecutionCount\n * @property {number|null} [estimatedExecutionCount] FieldStat estimatedExecutionCount\n * @property {number|null} [requestsWithErrorsCount] FieldStat requestsWithErrorsCount\n * @property {$protobuf.ToArray.<number>|Array.<number>|null} [latencyCount] FieldStat latencyCount\n */\n\n /**\n * Constructs a new FieldStat.\n * @exports FieldStat\n * @classdesc Represents a FieldStat.\n * @implements IFieldStat\n * @constructor\n * @param {IFieldStat=} [properties] Properties to set\n */\n function FieldStat(properties) {\n this.latencyCount = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * FieldStat returnType.\n * @member {string} returnType\n * @memberof FieldStat\n * @instance\n */\n FieldStat.prototype.returnType = \"\";\n\n /**\n * FieldStat errorsCount.\n * @member {number} errorsCount\n * @memberof FieldStat\n * @instance\n */\n FieldStat.prototype.errorsCount = 0;\n\n /**\n * FieldStat observedExecutionCount.\n * @member {number} observedExecutionCount\n * @memberof FieldStat\n * @instance\n */\n FieldStat.prototype.observedExecutionCount = 0;\n\n /**\n * FieldStat estimatedExecutionCount.\n * @member {number} estimatedExecutionCount\n * @memberof FieldStat\n * @instance\n */\n FieldStat.prototype.estimatedExecutionCount = 0;\n\n /**\n * FieldStat requestsWithErrorsCount.\n * @member {number} requestsWithErrorsCount\n * @memberof FieldStat\n * @instance\n */\n FieldStat.prototype.requestsWithErrorsCount = 0;\n\n /**\n * FieldStat latencyCount.\n * @member {Array.<number>} latencyCount\n * @memberof FieldStat\n * @instance\n */\n FieldStat.prototype.latencyCount = $util.emptyArray;\n\n /**\n * Creates a new FieldStat instance using the specified properties.\n * @function create\n * @memberof FieldStat\n * @static\n * @param {IFieldStat=} [properties] Properties to set\n * @returns {FieldStat} FieldStat instance\n */\n FieldStat.create = function create(properties) {\n return new FieldStat(properties);\n };\n\n /**\n * Encodes the specified FieldStat message. Does not implicitly {@link FieldStat.verify|verify} messages.\n * @function encode\n * @memberof FieldStat\n * @static\n * @param {IFieldStat} message FieldStat message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FieldStat.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.returnType != null && Object.hasOwnProperty.call(message, \"returnType\"))\n writer.uint32(/* id 3, wireType 2 =*/26).string(message.returnType);\n if (message.errorsCount != null && Object.hasOwnProperty.call(message, \"errorsCount\"))\n writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.errorsCount);\n if (message.observedExecutionCount != null && Object.hasOwnProperty.call(message, \"observedExecutionCount\"))\n writer.uint32(/* id 5, wireType 0 =*/40).uint64(message.observedExecutionCount);\n if (message.requestsWithErrorsCount != null && Object.hasOwnProperty.call(message, \"requestsWithErrorsCount\"))\n writer.uint32(/* id 6, wireType 0 =*/48).uint64(message.requestsWithErrorsCount);\n var array9;\n if (message.latencyCount != null && message.latencyCount.toArray)\n array9 = message.latencyCount.toArray();\n else\n array9 = message.latencyCount;\n if (array9 != null && array9.length) {\n writer.uint32(/* id 9, wireType 2 =*/74).fork();\n for (var i = 0; i < array9.length; ++i)\n writer.sint64(array9[i]);\n writer.ldelim();\n }\n if (message.estimatedExecutionCount != null && Object.hasOwnProperty.call(message, \"estimatedExecutionCount\"))\n writer.uint32(/* id 10, wireType 0 =*/80).uint64(message.estimatedExecutionCount);\n return writer;\n };\n\n /**\n * Encodes the specified FieldStat message, length delimited. Does not implicitly {@link FieldStat.verify|verify} messages.\n * @function encodeDelimited\n * @memberof FieldStat\n * @static\n * @param {IFieldStat} message FieldStat message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FieldStat.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a FieldStat message from the specified reader or buffer.\n * @function decode\n * @memberof FieldStat\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {FieldStat} FieldStat\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FieldStat.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.FieldStat();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 3:\n message.returnType = reader.string();\n break;\n case 4:\n message.errorsCount = reader.uint64();\n break;\n case 5:\n message.observedExecutionCount = reader.uint64();\n break;\n case 10:\n message.estimatedExecutionCount = reader.uint64();\n break;\n case 6:\n message.requestsWithErrorsCount = reader.uint64();\n break;\n case 9:\n if (!(message.latencyCount && message.latencyCount.length))\n message.latencyCount = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.latencyCount.push(reader.sint64());\n } else\n message.latencyCount.push(reader.sint64());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a FieldStat message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof FieldStat\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {FieldStat} FieldStat\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FieldStat.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a FieldStat message.\n * @function verify\n * @memberof FieldStat\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n FieldStat.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.returnType != null && message.hasOwnProperty(\"returnType\"))\n if (!$util.isString(message.returnType))\n return \"returnType: string expected\";\n if (message.errorsCount != null && message.hasOwnProperty(\"errorsCount\"))\n if (!$util.isInteger(message.errorsCount) && !(message.errorsCount && $util.isInteger(message.errorsCount.low) && $util.isInteger(message.errorsCount.high)))\n return \"errorsCount: integer|Long expected\";\n if (message.observedExecutionCount != null && message.hasOwnProperty(\"observedExecutionCount\"))\n if (!$util.isInteger(message.observedExecutionCount) && !(message.observedExecutionCount && $util.isInteger(message.observedExecutionCount.low) && $util.isInteger(message.observedExecutionCount.high)))\n return \"observedExecutionCount: integer|Long expected\";\n if (message.estimatedExecutionCount != null && message.hasOwnProperty(\"estimatedExecutionCount\"))\n if (!$util.isInteger(message.estimatedExecutionCount) && !(message.estimatedExecutionCount && $util.isInteger(message.estimatedExecutionCount.low) && $util.isInteger(message.estimatedExecutionCount.high)))\n return \"estimatedExecutionCount: integer|Long expected\";\n if (message.requestsWithErrorsCount != null && message.hasOwnProperty(\"requestsWithErrorsCount\"))\n if (!$util.isInteger(message.requestsWithErrorsCount) && !(message.requestsWithErrorsCount && $util.isInteger(message.requestsWithErrorsCount.low) && $util.isInteger(message.requestsWithErrorsCount.high)))\n return \"requestsWithErrorsCount: integer|Long expected\";\n if (message.latencyCount != null && message.hasOwnProperty(\"latencyCount\")) {\n var array9;\n if (message.latencyCount != null && message.latencyCount.toArray)\n array9 = message.latencyCount.toArray();\n else\n array9 = message.latencyCount;\n if (!Array.isArray(array9))\n return \"latencyCount: array expected\";\n for (var i = 0; i < array9.length; ++i)\n if (!$util.isInteger(array9[i]) && !(array9[i] && $util.isInteger(array9[i].low) && $util.isInteger(array9[i].high)))\n return \"latencyCount: integer|Long[] expected\";\n }\n return null;\n };\n\n /**\n * Creates a plain object from a FieldStat message. Also converts values to other types if specified.\n * @function toObject\n * @memberof FieldStat\n * @static\n * @param {FieldStat} message FieldStat\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n FieldStat.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.latencyCount = [];\n if (options.defaults) {\n object.returnType = \"\";\n object.errorsCount = 0;\n object.observedExecutionCount = 0;\n object.requestsWithErrorsCount = 0;\n object.estimatedExecutionCount = 0;\n }\n if (message.returnType != null && message.hasOwnProperty(\"returnType\"))\n object.returnType = message.returnType;\n if (message.errorsCount != null && message.hasOwnProperty(\"errorsCount\"))\n if (typeof message.errorsCount === \"number\")\n object.errorsCount = options.longs === String ? String(message.errorsCount) : message.errorsCount;\n else\n object.errorsCount = options.longs === String ? $util.Long.prototype.toString.call(message.errorsCount) : options.longs === Number ? new $util.LongBits(message.errorsCount.low >>> 0, message.errorsCount.high >>> 0).toNumber(true) : message.errorsCount;\n if (message.observedExecutionCount != null && message.hasOwnProperty(\"observedExecutionCount\"))\n if (typeof message.observedExecutionCount === \"number\")\n object.observedExecutionCount = options.longs === String ? String(message.observedExecutionCount) : message.observedExecutionCount;\n else\n object.observedExecutionCount = options.longs === String ? $util.Long.prototype.toString.call(message.observedExecutionCount) : options.longs === Number ? new $util.LongBits(message.observedExecutionCount.low >>> 0, message.observedExecutionCount.high >>> 0).toNumber(true) : message.observedExecutionCount;\n if (message.requestsWithErrorsCount != null && message.hasOwnProperty(\"requestsWithErrorsCount\"))\n if (typeof message.requestsWithErrorsCount === \"number\")\n object.requestsWithErrorsCount = options.longs === String ? String(message.requestsWithErrorsCount) : message.requestsWithErrorsCount;\n else\n object.requestsWithErrorsCount = options.longs === String ? $util.Long.prototype.toString.call(message.requestsWithErrorsCount) : options.longs === Number ? new $util.LongBits(message.requestsWithErrorsCount.low >>> 0, message.requestsWithErrorsCount.high >>> 0).toNumber(true) : message.requestsWithErrorsCount;\n if (message.latencyCount && message.latencyCount.length) {\n object.latencyCount = [];\n for (var j = 0; j < message.latencyCount.length; ++j)\n if (typeof message.latencyCount[j] === \"number\")\n object.latencyCount[j] = options.longs === String ? String(message.latencyCount[j]) : message.latencyCount[j];\n else\n object.latencyCount[j] = options.longs === String ? $util.Long.prototype.toString.call(message.latencyCount[j]) : options.longs === Number ? new $util.LongBits(message.latencyCount[j].low >>> 0, message.latencyCount[j].high >>> 0).toNumber() : message.latencyCount[j];\n }\n if (message.estimatedExecutionCount != null && message.hasOwnProperty(\"estimatedExecutionCount\"))\n if (typeof message.estimatedExecutionCount === \"number\")\n object.estimatedExecutionCount = options.longs === String ? String(message.estimatedExecutionCount) : message.estimatedExecutionCount;\n else\n object.estimatedExecutionCount = options.longs === String ? $util.Long.prototype.toString.call(message.estimatedExecutionCount) : options.longs === Number ? new $util.LongBits(message.estimatedExecutionCount.low >>> 0, message.estimatedExecutionCount.high >>> 0).toNumber(true) : message.estimatedExecutionCount;\n return object;\n };\n\n /**\n * Converts this FieldStat to JSON.\n * @function toJSON\n * @memberof FieldStat\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n FieldStat.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return FieldStat;\n})();\n\n$root.TypeStat = (function() {\n\n /**\n * Properties of a TypeStat.\n * @exports ITypeStat\n * @interface ITypeStat\n * @property {Object.<string,IFieldStat>|null} [perFieldStat] TypeStat perFieldStat\n */\n\n /**\n * Constructs a new TypeStat.\n * @exports TypeStat\n * @classdesc Represents a TypeStat.\n * @implements ITypeStat\n * @constructor\n * @param {ITypeStat=} [properties] Properties to set\n */\n function TypeStat(properties) {\n this.perFieldStat = {};\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * TypeStat perFieldStat.\n * @member {Object.<string,IFieldStat>} perFieldStat\n * @memberof TypeStat\n * @instance\n */\n TypeStat.prototype.perFieldStat = $util.emptyObject;\n\n /**\n * Creates a new TypeStat instance using the specified properties.\n * @function create\n * @memberof TypeStat\n * @static\n * @param {ITypeStat=} [properties] Properties to set\n * @returns {TypeStat} TypeStat instance\n */\n TypeStat.create = function create(properties) {\n return new TypeStat(properties);\n };\n\n /**\n * Encodes the specified TypeStat message. Does not implicitly {@link TypeStat.verify|verify} messages.\n * @function encode\n * @memberof TypeStat\n * @static\n * @param {ITypeStat} message TypeStat message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TypeStat.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.perFieldStat != null && Object.hasOwnProperty.call(message, \"perFieldStat\"))\n for (var keys = Object.keys(message.perFieldStat), i = 0; i < keys.length; ++i) {\n writer.uint32(/* id 3, wireType 2 =*/26).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]);\n $root.FieldStat.encode(message.perFieldStat[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim();\n }\n return writer;\n };\n\n /**\n * Encodes the specified TypeStat message, length delimited. Does not implicitly {@link TypeStat.verify|verify} messages.\n * @function encodeDelimited\n * @memberof TypeStat\n * @static\n * @param {ITypeStat} message TypeStat message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TypeStat.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a TypeStat message from the specified reader or buffer.\n * @function decode\n * @memberof TypeStat\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {TypeStat} TypeStat\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TypeStat.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.TypeStat(), key;\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 3:\n reader.skip().pos++;\n if (message.perFieldStat === $util.emptyObject)\n message.perFieldStat = {};\n key = reader.string();\n reader.pos++;\n message.perFieldStat[key] = $root.FieldStat.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a TypeStat message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof TypeStat\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {TypeStat} TypeStat\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TypeStat.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a TypeStat message.\n * @function verify\n * @memberof TypeStat\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n TypeStat.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.perFieldStat != null && message.hasOwnProperty(\"perFieldStat\")) {\n if (!$util.isObject(message.perFieldStat))\n return \"perFieldStat: object expected\";\n var key = Object.keys(message.perFieldStat);\n for (var i = 0; i < key.length; ++i) {\n var error = $root.FieldStat.verify(message.perFieldStat[key[i]]);\n if (error)\n return \"perFieldStat.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a plain object from a TypeStat message. Also converts values to other types if specified.\n * @function toObject\n * @memberof TypeStat\n * @static\n * @param {TypeStat} message TypeStat\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n TypeStat.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.objects || options.defaults)\n object.perFieldStat = {};\n var keys2;\n if (message.perFieldStat && (keys2 = Object.keys(message.perFieldStat)).length) {\n object.perFieldStat = {};\n for (var j = 0; j < keys2.length; ++j)\n object.perFieldStat[keys2[j]] = $root.FieldStat.toObject(message.perFieldStat[keys2[j]], options);\n }\n return object;\n };\n\n /**\n * Converts this TypeStat to JSON.\n * @function toJSON\n * @memberof TypeStat\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n TypeStat.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return TypeStat;\n})();\n\n$root.ReferencedFieldsForType = (function() {\n\n /**\n * Properties of a ReferencedFieldsForType.\n * @exports IReferencedFieldsForType\n * @interface IReferencedFieldsForType\n * @property {Array.<string>|null} [fieldNames] ReferencedFieldsForType fieldNames\n * @property {boolean|null} [isInterface] ReferencedFieldsForType isInterface\n */\n\n /**\n * Constructs a new ReferencedFieldsForType.\n * @exports ReferencedFieldsForType\n * @classdesc Represents a ReferencedFieldsForType.\n * @implements IReferencedFieldsForType\n * @constructor\n * @param {IReferencedFieldsForType=} [properties] Properties to set\n */\n function ReferencedFieldsForType(properties) {\n this.fieldNames = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ReferencedFieldsForType fieldNames.\n * @member {Array.<string>} fieldNames\n * @memberof ReferencedFieldsForType\n * @instance\n */\n ReferencedFieldsForType.prototype.fieldNames = $util.emptyArray;\n\n /**\n * ReferencedFieldsForType isInterface.\n * @member {boolean} isInterface\n * @memberof ReferencedFieldsForType\n * @instance\n */\n ReferencedFieldsForType.prototype.isInterface = false;\n\n /**\n * Creates a new ReferencedFieldsForType instance using the specified properties.\n * @function create\n * @memberof ReferencedFieldsForType\n * @static\n * @param {IReferencedFieldsForType=} [properties] Properties to set\n * @returns {ReferencedFieldsForType} ReferencedFieldsForType instance\n */\n ReferencedFieldsForType.create = function create(properties) {\n return new ReferencedFieldsForType(properties);\n };\n\n /**\n * Encodes the specified ReferencedFieldsForType message. Does not implicitly {@link ReferencedFieldsForType.verify|verify} messages.\n * @function encode\n * @memberof ReferencedFieldsForType\n * @static\n * @param {IReferencedFieldsForType} message ReferencedFieldsForType message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ReferencedFieldsForType.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.fieldNames != null && message.fieldNames.length)\n for (var i = 0; i < message.fieldNames.length; ++i)\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.fieldNames[i]);\n if (message.isInterface != null && Object.hasOwnProperty.call(message, \"isInterface\"))\n writer.uint32(/* id 2, wireType 0 =*/16).bool(message.isInterface);\n return writer;\n };\n\n /**\n * Encodes the specified ReferencedFieldsForType message, length delimited. Does not implicitly {@link ReferencedFieldsForType.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ReferencedFieldsForType\n * @static\n * @param {IReferencedFieldsForType} message ReferencedFieldsForType message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ReferencedFieldsForType.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ReferencedFieldsForType message from the specified reader or buffer.\n * @function decode\n * @memberof ReferencedFieldsForType\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ReferencedFieldsForType} ReferencedFieldsForType\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ReferencedFieldsForType.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ReferencedFieldsForType();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.fieldNames && message.fieldNames.length))\n message.fieldNames = [];\n message.fieldNames.push(reader.string());\n break;\n case 2:\n message.isInterface = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ReferencedFieldsForType message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ReferencedFieldsForType\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ReferencedFieldsForType} ReferencedFieldsForType\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ReferencedFieldsForType.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ReferencedFieldsForType message.\n * @function verify\n * @memberof ReferencedFieldsForType\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ReferencedFieldsForType.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.fieldNames != null && message.hasOwnProperty(\"fieldNames\")) {\n if (!Array.isArray(message.fieldNames))\n return \"fieldNames: array expected\";\n for (var i = 0; i < message.fieldNames.length; ++i)\n if (!$util.isString(message.fieldNames[i]))\n return \"fieldNames: string[] expected\";\n }\n if (message.isInterface != null && message.hasOwnProperty(\"isInterface\"))\n if (typeof message.isInterface !== \"boolean\")\n return \"isInterface: boolean expected\";\n return null;\n };\n\n /**\n * Creates a plain object from a ReferencedFieldsForType message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ReferencedFieldsForType\n * @static\n * @param {ReferencedFieldsForType} message ReferencedFieldsForType\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ReferencedFieldsForType.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.fieldNames = [];\n if (options.defaults)\n object.isInterface = false;\n if (message.fieldNames && message.fieldNames.length) {\n object.fieldNames = [];\n for (var j = 0; j < message.fieldNames.length; ++j)\n object.fieldNames[j] = message.fieldNames[j];\n }\n if (message.isInterface != null && message.hasOwnProperty(\"isInterface\"))\n object.isInterface = message.isInterface;\n return object;\n };\n\n /**\n * Converts this ReferencedFieldsForType to JSON.\n * @function toJSON\n * @memberof ReferencedFieldsForType\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ReferencedFieldsForType.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ReferencedFieldsForType;\n})();\n\n$root.Report = (function() {\n\n /**\n * Properties of a Report.\n * @exports IReport\n * @interface IReport\n * @property {IReportHeader|null} [header] Report header\n * @property {Object.<string,ITracesAndStats>|null} [tracesPerQuery] Report tracesPerQuery\n * @property {google.protobuf.ITimestamp|null} [endTime] Report endTime\n * @property {number|null} [operationCount] Report operationCount\n * @property {boolean|null} [tracesPreAggregated] Report tracesPreAggregated\n */\n\n /**\n * Constructs a new Report.\n * @exports Report\n * @classdesc Represents a Report.\n * @implements IReport\n * @constructor\n * @param {IReport=} [properties] Properties to set\n */\n function Report(properties) {\n this.tracesPerQuery = {};\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Report header.\n * @member {IReportHeader|null|undefined} header\n * @memberof Report\n * @instance\n */\n Report.prototype.header = null;\n\n /**\n * Report tracesPerQuery.\n * @member {Object.<string,ITracesAndStats>} tracesPerQuery\n * @memberof Report\n * @instance\n */\n Report.prototype.tracesPerQuery = $util.emptyObject;\n\n /**\n * Report endTime.\n * @member {google.protobuf.ITimestamp|null|undefined} endTime\n * @memberof Report\n * @instance\n */\n Report.prototype.endTime = null;\n\n /**\n * Report operationCount.\n * @member {number} operationCount\n * @memberof Report\n * @instance\n */\n Report.prototype.operationCount = 0;\n\n /**\n * Report tracesPreAggregated.\n * @member {boolean} tracesPreAggregated\n * @memberof Report\n * @instance\n */\n Report.prototype.tracesPreAggregated = false;\n\n /**\n * Creates a new Report instance using the specified properties.\n * @function create\n * @memberof Report\n * @static\n * @param {IReport=} [properties] Properties to set\n * @returns {Report} Report instance\n */\n Report.create = function create(properties) {\n return new Report(properties);\n };\n\n /**\n * Encodes the specified Report message. Does not implicitly {@link Report.verify|verify} messages.\n * @function encode\n * @memberof Report\n * @static\n * @param {IReport} message Report message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Report.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.header != null && Object.hasOwnProperty.call(message, \"header\"))\n $root.ReportHeader.encode(message.header, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.endTime != null && Object.hasOwnProperty.call(message, \"endTime\"))\n $root.google.protobuf.Timestamp.encode(message.endTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.tracesPerQuery != null && Object.hasOwnProperty.call(message, \"tracesPerQuery\"))\n for (var keys = Object.keys(message.tracesPerQuery), i = 0; i < keys.length; ++i) {\n writer.uint32(/* id 5, wireType 2 =*/42).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]);\n $root.TracesAndStats.encode(message.tracesPerQuery[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim();\n }\n if (message.operationCount != null && Object.hasOwnProperty.call(message, \"operationCount\"))\n writer.uint32(/* id 6, wireType 0 =*/48).uint64(message.operationCount);\n if (message.tracesPreAggregated != null && Object.hasOwnProperty.call(message, \"tracesPreAggregated\"))\n writer.uint32(/* id 7, wireType 0 =*/56).bool(message.tracesPreAggregated);\n return writer;\n };\n\n /**\n * Encodes the specified Report message, length delimited. Does not implicitly {@link Report.verify|verify} messages.\n * @function encodeDelimited\n * @memberof Report\n * @static\n * @param {IReport} message Report message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Report.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Report message from the specified reader or buffer.\n * @function decode\n * @memberof Report\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {Report} Report\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Report.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.Report(), key;\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.header = $root.ReportHeader.decode(reader, reader.uint32());\n break;\n case 5:\n reader.skip().pos++;\n if (message.tracesPerQuery === $util.emptyObject)\n message.tracesPerQuery = {};\n key = reader.string();\n reader.pos++;\n message.tracesPerQuery[key] = $root.TracesAndStats.decode(reader, reader.uint32());\n break;\n case 2:\n message.endTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32());\n break;\n case 6:\n message.operationCount = reader.uint64();\n break;\n case 7:\n message.tracesPreAggregated = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Report message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof Report\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Report} Report\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Report.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Report message.\n * @function verify\n * @memberof Report\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Report.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.header != null && message.hasOwnProperty(\"header\")) {\n var error = $root.ReportHeader.verify(message.header);\n if (error)\n return \"header.\" + error;\n }\n if (message.tracesPerQuery != null && message.hasOwnProperty(\"tracesPerQuery\")) {\n if (!$util.isObject(message.tracesPerQuery))\n return \"tracesPerQuery: object expected\";\n var key = Object.keys(message.tracesPerQuery);\n for (var i = 0; i < key.length; ++i) {\n var error = $root.TracesAndStats.verify(message.tracesPerQuery[key[i]]);\n if (error)\n return \"tracesPerQuery.\" + error;\n }\n }\n if (message.endTime != null && message.hasOwnProperty(\"endTime\")) {\n var error = $root.google.protobuf.Timestamp.verify(message.endTime);\n if (error)\n return \"endTime.\" + error;\n }\n if (message.operationCount != null && message.hasOwnProperty(\"operationCount\"))\n if (!$util.isInteger(message.operationCount) && !(message.operationCount && $util.isInteger(message.operationCount.low) && $util.isInteger(message.operationCount.high)))\n return \"operationCount: integer|Long expected\";\n if (message.tracesPreAggregated != null && message.hasOwnProperty(\"tracesPreAggregated\"))\n if (typeof message.tracesPreAggregated !== \"boolean\")\n return \"tracesPreAggregated: boolean expected\";\n return null;\n };\n\n /**\n * Creates a plain object from a Report message. Also converts values to other types if specified.\n * @function toObject\n * @memberof Report\n * @static\n * @param {Report} message Report\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Report.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.objects || options.defaults)\n object.tracesPerQuery = {};\n if (options.defaults) {\n object.header = null;\n object.endTime = null;\n object.operationCount = 0;\n object.tracesPreAggregated = false;\n }\n if (message.header != null && message.hasOwnProperty(\"header\"))\n object.header = $root.ReportHeader.toObject(message.header, options);\n if (message.endTime != null && message.hasOwnProperty(\"endTime\"))\n object.endTime = $root.google.protobuf.Timestamp.toObject(message.endTime, options);\n var keys2;\n if (message.tracesPerQuery && (keys2 = Object.keys(message.tracesPerQuery)).length) {\n object.tracesPerQuery = {};\n for (var j = 0; j < keys2.length; ++j)\n object.tracesPerQuery[keys2[j]] = $root.TracesAndStats.toObject(message.tracesPerQuery[keys2[j]], options);\n }\n if (message.operationCount != null && message.hasOwnProperty(\"operationCount\"))\n if (typeof message.operationCount === \"number\")\n object.operationCount = options.longs === String ? String(message.operationCount) : message.operationCount;\n else\n object.operationCount = options.longs === String ? $util.Long.prototype.toString.call(message.operationCount) : options.longs === Number ? new $util.LongBits(message.operationCount.low >>> 0, message.operationCount.high >>> 0).toNumber(true) : message.operationCount;\n if (message.tracesPreAggregated != null && message.hasOwnProperty(\"tracesPreAggregated\"))\n object.tracesPreAggregated = message.tracesPreAggregated;\n return object;\n };\n\n /**\n * Converts this Report to JSON.\n * @function toJSON\n * @memberof Report\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Report.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Report;\n})();\n\n$root.ContextualizedStats = (function() {\n\n /**\n * Properties of a ContextualizedStats.\n * @exports IContextualizedStats\n * @interface IContextualizedStats\n * @property {IStatsContext|null} [context] ContextualizedStats context\n * @property {IQueryLatencyStats|null} [queryLatencyStats] ContextualizedStats queryLatencyStats\n * @property {Object.<string,ITypeStat>|null} [perTypeStat] ContextualizedStats perTypeStat\n */\n\n /**\n * Constructs a new ContextualizedStats.\n * @exports ContextualizedStats\n * @classdesc Represents a ContextualizedStats.\n * @implements IContextualizedStats\n * @constructor\n * @param {IContextualizedStats=} [properties] Properties to set\n */\n function ContextualizedStats(properties) {\n this.perTypeStat = {};\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ContextualizedStats context.\n * @member {IStatsContext|null|undefined} context\n * @memberof ContextualizedStats\n * @instance\n */\n ContextualizedStats.prototype.context = null;\n\n /**\n * ContextualizedStats queryLatencyStats.\n * @member {IQueryLatencyStats|null|undefined} queryLatencyStats\n * @memberof ContextualizedStats\n * @instance\n */\n ContextualizedStats.prototype.queryLatencyStats = null;\n\n /**\n * ContextualizedStats perTypeStat.\n * @member {Object.<string,ITypeStat>} perTypeStat\n * @memberof ContextualizedStats\n * @instance\n */\n ContextualizedStats.prototype.perTypeStat = $util.emptyObject;\n\n /**\n * Creates a new ContextualizedStats instance using the specified properties.\n * @function create\n * @memberof ContextualizedStats\n * @static\n * @param {IContextualizedStats=} [properties] Properties to set\n * @returns {ContextualizedStats} ContextualizedStats instance\n */\n ContextualizedStats.create = function create(properties) {\n return new ContextualizedStats(properties);\n };\n\n /**\n * Encodes the specified ContextualizedStats message. Does not implicitly {@link ContextualizedStats.verify|verify} messages.\n * @function encode\n * @memberof ContextualizedStats\n * @static\n * @param {IContextualizedStats} message ContextualizedStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ContextualizedStats.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.context != null && Object.hasOwnProperty.call(message, \"context\"))\n $root.StatsContext.encode(message.context, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.queryLatencyStats != null && Object.hasOwnProperty.call(message, \"queryLatencyStats\"))\n $root.QueryLatencyStats.encode(message.queryLatencyStats, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.perTypeStat != null && Object.hasOwnProperty.call(message, \"perTypeStat\"))\n for (var keys = Object.keys(message.perTypeStat), i = 0; i < keys.length; ++i) {\n writer.uint32(/* id 3, wireType 2 =*/26).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]);\n $root.TypeStat.encode(message.perTypeStat[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim();\n }\n return writer;\n };\n\n /**\n * Encodes the specified ContextualizedStats message, length delimited. Does not implicitly {@link ContextualizedStats.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ContextualizedStats\n * @static\n * @param {IContextualizedStats} message ContextualizedStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ContextualizedStats.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ContextualizedStats message from the specified reader or buffer.\n * @function decode\n * @memberof ContextualizedStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ContextualizedStats} ContextualizedStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ContextualizedStats.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ContextualizedStats(), key;\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.context = $root.StatsContext.decode(reader, reader.uint32());\n break;\n case 2:\n message.queryLatencyStats = $root.QueryLatencyStats.decode(reader, reader.uint32());\n break;\n case 3:\n reader.skip().pos++;\n if (message.perTypeStat === $util.emptyObject)\n message.perTypeStat = {};\n key = reader.string();\n reader.pos++;\n message.perTypeStat[key] = $root.TypeStat.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ContextualizedStats message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ContextualizedStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ContextualizedStats} ContextualizedStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ContextualizedStats.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ContextualizedStats message.\n * @function verify\n * @memberof ContextualizedStats\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ContextualizedStats.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.context != null && message.hasOwnProperty(\"context\")) {\n var error = $root.StatsContext.verify(message.context);\n if (error)\n return \"context.\" + error;\n }\n if (message.queryLatencyStats != null && message.hasOwnProperty(\"queryLatencyStats\")) {\n var error = $root.QueryLatencyStats.verify(message.queryLatencyStats);\n if (error)\n return \"queryLatencyStats.\" + error;\n }\n if (message.perTypeStat != null && message.hasOwnProperty(\"perTypeStat\")) {\n if (!$util.isObject(message.perTypeStat))\n return \"perTypeStat: object expected\";\n var key = Object.keys(message.perTypeStat);\n for (var i = 0; i < key.length; ++i) {\n var error = $root.TypeStat.verify(message.perTypeStat[key[i]]);\n if (error)\n return \"perTypeStat.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a plain object from a ContextualizedStats message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ContextualizedStats\n * @static\n * @param {ContextualizedStats} message ContextualizedStats\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ContextualizedStats.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.objects || options.defaults)\n object.perTypeStat = {};\n if (options.defaults) {\n object.context = null;\n object.queryLatencyStats = null;\n }\n if (message.context != null && message.hasOwnProperty(\"context\"))\n object.context = $root.StatsContext.toObject(message.context, options);\n if (message.queryLatencyStats != null && message.hasOwnProperty(\"queryLatencyStats\"))\n object.queryLatencyStats = $root.QueryLatencyStats.toObject(message.queryLatencyStats, options);\n var keys2;\n if (message.perTypeStat && (keys2 = Object.keys(message.perTypeStat)).length) {\n object.perTypeStat = {};\n for (var j = 0; j < keys2.length; ++j)\n object.perTypeStat[keys2[j]] = $root.TypeStat.toObject(message.perTypeStat[keys2[j]], options);\n }\n return object;\n };\n\n /**\n * Converts this ContextualizedStats to JSON.\n * @function toJSON\n * @memberof ContextualizedStats\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ContextualizedStats.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ContextualizedStats;\n})();\n\n$root.TracesAndStats = (function() {\n\n /**\n * Properties of a TracesAndStats.\n * @exports ITracesAndStats\n * @interface ITracesAndStats\n * @property {Array.<ITrace|Uint8Array>|null} [trace] TracesAndStats trace\n * @property {$protobuf.ToArray.<IContextualizedStats>|Array.<IContextualizedStats>|null} [statsWithContext] TracesAndStats statsWithContext\n * @property {Object.<string,IReferencedFieldsForType>|null} [referencedFieldsByType] TracesAndStats referencedFieldsByType\n * @property {Array.<ITrace|Uint8Array>|null} [internalTracesContributingToStats] TracesAndStats internalTracesContributingToStats\n */\n\n /**\n * Constructs a new TracesAndStats.\n * @exports TracesAndStats\n * @classdesc Represents a TracesAndStats.\n * @implements ITracesAndStats\n * @constructor\n * @param {ITracesAndStats=} [properties] Properties to set\n */\n function TracesAndStats(properties) {\n this.trace = [];\n this.statsWithContext = [];\n this.referencedFieldsByType = {};\n this.internalTracesContributingToStats = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * TracesAndStats trace.\n * @member {Array.<ITrace|Uint8Array>} trace\n * @memberof TracesAndStats\n * @instance\n */\n TracesAndStats.prototype.trace = $util.emptyArray;\n\n /**\n * TracesAndStats statsWithContext.\n * @member {Array.<IContextualizedStats>} statsWithContext\n * @memberof TracesAndStats\n * @instance\n */\n TracesAndStats.prototype.statsWithContext = $util.emptyArray;\n\n /**\n * TracesAndStats referencedFieldsByType.\n * @member {Object.<string,IReferencedFieldsForType>} referencedFieldsByType\n * @memberof TracesAndStats\n * @instance\n */\n TracesAndStats.prototype.referencedFieldsByType = $util.emptyObject;\n\n /**\n * TracesAndStats internalTracesContributingToStats.\n * @member {Array.<ITrace|Uint8Array>} internalTracesContributingToStats\n * @memberof TracesAndStats\n * @instance\n */\n TracesAndStats.prototype.internalTracesContributingToStats = $util.emptyArray;\n\n /**\n * Creates a new TracesAndStats instance using the specified properties.\n * @function create\n * @memberof TracesAndStats\n * @static\n * @param {ITracesAndStats=} [properties] Properties to set\n * @returns {TracesAndStats} TracesAndStats instance\n */\n TracesAndStats.create = function create(properties) {\n return new TracesAndStats(properties);\n };\n\n /**\n * Encodes the specified TracesAndStats message. Does not implicitly {@link TracesAndStats.verify|verify} messages.\n * @function encode\n * @memberof TracesAndStats\n * @static\n * @param {ITracesAndStats} message TracesAndStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TracesAndStats.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.trace != null && message.trace.length)\n for (var i = 0; i < message.trace.length; ++i)\n if (message.trace[i] instanceof Uint8Array) {\n writer.uint32(/* id 1, wireType 2 =*/10);\n writer.bytes(message.trace[i]);\n } else\n $root.Trace.encode(message.trace[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n var array2;\n if (message.statsWithContext != null && message.statsWithContext.toArray)\n array2 = message.statsWithContext.toArray();\n else\n array2 = message.statsWithContext;\n if (array2 != null && array2.length)\n for (var i = 0; i < array2.length; ++i)\n $root.ContextualizedStats.encode(array2[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.internalTracesContributingToStats != null && message.internalTracesContributingToStats.length)\n for (var i = 0; i < message.internalTracesContributingToStats.length; ++i)\n if (message.internalTracesContributingToStats[i] instanceof Uint8Array) {\n writer.uint32(/* id 3, wireType 2 =*/26);\n writer.bytes(message.internalTracesContributingToStats[i]);\n } else\n $root.Trace.encode(message.internalTracesContributingToStats[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.referencedFieldsByType != null && Object.hasOwnProperty.call(message, \"referencedFieldsByType\"))\n for (var keys = Object.keys(message.referencedFieldsByType), i = 0; i < keys.length; ++i) {\n writer.uint32(/* id 4, wireType 2 =*/34).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]);\n $root.ReferencedFieldsForType.encode(message.referencedFieldsByType[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim();\n }\n return writer;\n };\n\n /**\n * Encodes the specified TracesAndStats message, length delimited. Does not implicitly {@link TracesAndStats.verify|verify} messages.\n * @function encodeDelimited\n * @memberof TracesAndStats\n * @static\n * @param {ITracesAndStats} message TracesAndStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TracesAndStats.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a TracesAndStats message from the specified reader or buffer.\n * @function decode\n * @memberof TracesAndStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {TracesAndStats} TracesAndStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TracesAndStats.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.TracesAndStats(), key;\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.trace && message.trace.length))\n message.trace = [];\n message.trace.push($root.Trace.decode(reader, reader.uint32()));\n break;\n case 2:\n if (!(message.statsWithContext && message.statsWithContext.length))\n message.statsWithContext = [];\n message.statsWithContext.push($root.ContextualizedStats.decode(reader, reader.uint32()));\n break;\n case 4:\n reader.skip().pos++;\n if (message.referencedFieldsByType === $util.emptyObject)\n message.referencedFieldsByType = {};\n key = reader.string();\n reader.pos++;\n message.referencedFieldsByType[key] = $root.ReferencedFieldsForType.decode(reader, reader.uint32());\n break;\n case 3:\n if (!(message.internalTracesContributingToStats && message.internalTracesContributingToStats.length))\n message.internalTracesContributingToStats = [];\n message.internalTracesContributingToStats.push($root.Trace.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a TracesAndStats message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof TracesAndStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {TracesAndStats} TracesAndStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TracesAndStats.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a TracesAndStats message.\n * @function verify\n * @memberof TracesAndStats\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n TracesAndStats.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.trace != null && message.hasOwnProperty(\"trace\")) {\n if (!Array.isArray(message.trace))\n return \"trace: array expected\";\n for (var i = 0; i < message.trace.length; ++i)\n if (!(message.trace[i] instanceof Uint8Array)) {\n var error = $root.Trace.verify(message.trace[i]);\n if (error)\n return \"trace.\" + error;\n }\n }\n if (message.statsWithContext != null && message.hasOwnProperty(\"statsWithContext\")) {\n var array2;\n if (message.statsWithContext != null && message.statsWithContext.toArray)\n array2 = message.statsWithContext.toArray();\n else\n array2 = message.statsWithContext;\n if (!Array.isArray(array2))\n return \"statsWithContext: array expected\";\n for (var i = 0; i < array2.length; ++i) {\n var error = $root.ContextualizedStats.verify(array2[i]);\n if (error)\n return \"statsWithContext.\" + error;\n }\n }\n if (message.referencedFieldsByType != null && message.hasOwnProperty(\"referencedFieldsByType\")) {\n if (!$util.isObject(message.referencedFieldsByType))\n return \"referencedFieldsByType: object expected\";\n var key = Object.keys(message.referencedFieldsByType);\n for (var i = 0; i < key.length; ++i) {\n var error = $root.ReferencedFieldsForType.verify(message.referencedFieldsByType[key[i]]);\n if (error)\n return \"referencedFieldsByType.\" + error;\n }\n }\n if (message.internalTracesContributingToStats != null && message.hasOwnProperty(\"internalTracesContributingToStats\")) {\n if (!Array.isArray(message.internalTracesContributingToStats))\n return \"internalTracesContributingToStats: array expected\";\n for (var i = 0; i < message.internalTracesContributingToStats.length; ++i)\n if (!(message.internalTracesContributingToStats[i] instanceof Uint8Array)) {\n var error = $root.Trace.verify(message.internalTracesContributingToStats[i]);\n if (error)\n return \"internalTracesContributingToStats.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a plain object from a TracesAndStats message. Also converts values to other types if specified.\n * @function toObject\n * @memberof TracesAndStats\n * @static\n * @param {TracesAndStats} message TracesAndStats\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n TracesAndStats.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.trace = [];\n object.statsWithContext = [];\n object.internalTracesContributingToStats = [];\n }\n if (options.objects || options.defaults)\n object.referencedFieldsByType = {};\n if (message.trace && message.trace.length) {\n object.trace = [];\n for (var j = 0; j < message.trace.length; ++j)\n object.trace[j] = $root.Trace.toObject(message.trace[j], options);\n }\n if (message.statsWithContext && message.statsWithContext.length) {\n object.statsWithContext = [];\n for (var j = 0; j < message.statsWithContext.length; ++j)\n object.statsWithContext[j] = $root.ContextualizedStats.toObject(message.statsWithContext[j], options);\n }\n if (message.internalTracesContributingToStats && message.internalTracesContributingToStats.length) {\n object.internalTracesContributingToStats = [];\n for (var j = 0; j < message.internalTracesContributingToStats.length; ++j)\n object.internalTracesContributingToStats[j] = $root.Trace.toObject(message.internalTracesContributingToStats[j], options);\n }\n var keys2;\n if (message.referencedFieldsByType && (keys2 = Object.keys(message.referencedFieldsByType)).length) {\n object.referencedFieldsByType = {};\n for (var j = 0; j < keys2.length; ++j)\n object.referencedFieldsByType[keys2[j]] = $root.ReferencedFieldsForType.toObject(message.referencedFieldsByType[keys2[j]], options);\n }\n return object;\n };\n\n /**\n * Converts this TracesAndStats to JSON.\n * @function toJSON\n * @memberof TracesAndStats\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n TracesAndStats.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return TracesAndStats;\n})();\n\n$root.google = (function() {\n\n /**\n * Namespace google.\n * @exports google\n * @namespace\n */\n var google = {};\n\n google.protobuf = (function() {\n\n /**\n * Namespace protobuf.\n * @memberof google\n * @namespace\n */\n var protobuf = {};\n\n protobuf.Timestamp = (function() {\n\n /**\n * Properties of a Timestamp.\n * @memberof google.protobuf\n * @interface ITimestamp\n * @property {number|null} [seconds] Timestamp seconds\n * @property {number|null} [nanos] Timestamp nanos\n */\n\n /**\n * Constructs a new Timestamp.\n * @memberof google.protobuf\n * @classdesc Represents a Timestamp.\n * @implements ITimestamp\n * @constructor\n * @param {google.protobuf.ITimestamp=} [properties] Properties to set\n */\n function Timestamp(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Timestamp seconds.\n * @member {number} seconds\n * @memberof google.protobuf.Timestamp\n * @instance\n */\n Timestamp.prototype.seconds = 0;\n\n /**\n * Timestamp nanos.\n * @member {number} nanos\n * @memberof google.protobuf.Timestamp\n * @instance\n */\n Timestamp.prototype.nanos = 0;\n\n /**\n * Creates a new Timestamp instance using the specified properties.\n * @function create\n * @memberof google.protobuf.Timestamp\n * @static\n * @param {google.protobuf.ITimestamp=} [properties] Properties to set\n * @returns {google.protobuf.Timestamp} Timestamp instance\n */\n Timestamp.create = function create(properties) {\n return new Timestamp(properties);\n };\n\n /**\n * Encodes the specified Timestamp message. Does not implicitly {@link google.protobuf.Timestamp.verify|verify} messages.\n * @function encode\n * @memberof google.protobuf.Timestamp\n * @static\n * @param {google.protobuf.ITimestamp} message Timestamp message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Timestamp.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.seconds != null && Object.hasOwnProperty.call(message, \"seconds\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int64(message.seconds);\n if (message.nanos != null && Object.hasOwnProperty.call(message, \"nanos\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int32(message.nanos);\n return writer;\n };\n\n /**\n * Encodes the specified Timestamp message, length delimited. Does not implicitly {@link google.protobuf.Timestamp.verify|verify} messages.\n * @function encodeDelimited\n * @memberof google.protobuf.Timestamp\n * @static\n * @param {google.protobuf.ITimestamp} message Timestamp message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Timestamp.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Timestamp message from the specified reader or buffer.\n * @function decode\n * @memberof google.protobuf.Timestamp\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {google.protobuf.Timestamp} Timestamp\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Timestamp.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.protobuf.Timestamp();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.seconds = reader.int64();\n break;\n case 2:\n message.nanos = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Timestamp message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof google.protobuf.Timestamp\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {google.protobuf.Timestamp} Timestamp\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Timestamp.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Timestamp message.\n * @function verify\n * @memberof google.protobuf.Timestamp\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Timestamp.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.seconds != null && message.hasOwnProperty(\"seconds\"))\n if (!$util.isInteger(message.seconds) && !(message.seconds && $util.isInteger(message.seconds.low) && $util.isInteger(message.seconds.high)))\n return \"seconds: integer|Long expected\";\n if (message.nanos != null && message.hasOwnProperty(\"nanos\"))\n if (!$util.isInteger(message.nanos))\n return \"nanos: integer expected\";\n return null;\n };\n\n /**\n * Creates a plain object from a Timestamp message. Also converts values to other types if specified.\n * @function toObject\n * @memberof google.protobuf.Timestamp\n * @static\n * @param {google.protobuf.Timestamp} message Timestamp\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Timestamp.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.seconds = 0;\n object.nanos = 0;\n }\n if (message.seconds != null && message.hasOwnProperty(\"seconds\"))\n if (typeof message.seconds === \"number\")\n object.seconds = options.longs === String ? String(message.seconds) : message.seconds;\n else\n object.seconds = options.longs === String ? $util.Long.prototype.toString.call(message.seconds) : options.longs === Number ? new $util.LongBits(message.seconds.low >>> 0, message.seconds.high >>> 0).toNumber() : message.seconds;\n if (message.nanos != null && message.hasOwnProperty(\"nanos\"))\n object.nanos = message.nanos;\n return object;\n };\n\n /**\n * Converts this Timestamp to JSON.\n * @function toJSON\n * @memberof google.protobuf.Timestamp\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Timestamp.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Timestamp;\n })();\n\n return protobuf;\n })();\n\n return google;\n})();\n\nmodule.exports = $root;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calculateReferencedFieldsByType = void 0;\nconst graphql_1 = require(\"graphql\");\nconst usage_reporting_protobuf_1 = require(\"@apollo/usage-reporting-protobuf\");\nfunction calculateReferencedFieldsByType({ document, schema, resolvedOperationName, }) {\n const documentSeparatedByOperation = (0, graphql_1.separateOperations)(document);\n const filteredDocument = documentSeparatedByOperation[resolvedOperationName !== null && resolvedOperationName !== void 0 ? resolvedOperationName : \"\"];\n if (!filteredDocument) {\n throw Error(`shouldn't happen: operation '${resolvedOperationName !== null && resolvedOperationName !== void 0 ? resolvedOperationName : \"\"}' not found`);\n }\n const typeInfo = new graphql_1.TypeInfo(schema);\n const interfaces = new Set();\n const referencedFieldSetByType = Object.create(null);\n (0, graphql_1.visit)(filteredDocument, (0, graphql_1.visitWithTypeInfo)(typeInfo, {\n Field(field) {\n const fieldName = field.name.value;\n const parentType = typeInfo.getParentType();\n if (!parentType) {\n throw Error(`shouldn't happen: missing parent type for field ${fieldName}`);\n }\n const parentTypeName = parentType.name;\n if (!referencedFieldSetByType[parentTypeName]) {\n referencedFieldSetByType[parentTypeName] = new Set();\n if ((0, graphql_1.isInterfaceType)(parentType)) {\n interfaces.add(parentTypeName);\n }\n }\n referencedFieldSetByType[parentTypeName].add(fieldName);\n },\n }));\n const referencedFieldsByType = Object.create(null);\n for (const [typeName, fieldNames] of Object.entries(referencedFieldSetByType)) {\n referencedFieldsByType[typeName] = new usage_reporting_protobuf_1.ReferencedFieldsForType({\n fieldNames: [...fieldNames],\n isInterface: interfaces.has(typeName),\n });\n }\n return referencedFieldsByType;\n}\nexports.calculateReferencedFieldsByType = calculateReferencedFieldsByType;\n//# sourceMappingURL=calculateReferencedFieldsByType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dropUnusedDefinitions = void 0;\nconst graphql_1 = require(\"graphql\");\nfunction dropUnusedDefinitions(ast, operationName) {\n const separated = (0, graphql_1.separateOperations)(ast)[operationName];\n if (!separated) {\n return ast;\n }\n return separated;\n}\nexports.dropUnusedDefinitions = dropUnusedDefinitions;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stripSensitiveLiterals = void 0;\nconst graphql_1 = require(\"graphql\");\nfunction stripSensitiveLiterals(ast, options = {\n hideListAndObjectLiterals: false,\n}) {\n const listAndObjectVisitorIfEnabled = options.hideListAndObjectLiterals\n ? {\n ListValue(node) {\n return { ...node, values: [] };\n },\n ObjectValue(node) {\n return { ...node, fields: [] };\n },\n }\n : {};\n return (0, graphql_1.visit)(ast, {\n IntValue(node) {\n return { ...node, value: \"0\" };\n },\n FloatValue(node) {\n return { ...node, value: \"0\" };\n },\n StringValue(node) {\n return { ...node, value: \"\", block: false };\n },\n ...listAndObjectVisitorIfEnabled,\n });\n}\nexports.stripSensitiveLiterals = stripSensitiveLiterals;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.printWithReducedWhitespace = void 0;\nconst graphql_1 = require(\"graphql\");\nfunction printWithReducedWhitespace(ast) {\n const sanitizedAST = (0, graphql_1.visit)(ast, {\n StringValue(node) {\n return {\n ...node,\n value: Buffer.from(node.value, \"utf8\").toString(\"hex\"),\n block: false,\n };\n },\n });\n const withWhitespace = (0, graphql_1.print)(sanitizedAST);\n const minimizedButStillHex = withWhitespace\n .replace(/\\s+/g, \" \")\n .replace(/([^_a-zA-Z0-9]) /g, (_, c) => c)\n .replace(/ ([^_a-zA-Z0-9])/g, (_, c) => c);\n return minimizedButStillHex.replace(/\"([a-f0-9]+)\"/g, (_, hex) => JSON.stringify(Buffer.from(hex, \"hex\").toString(\"utf8\")));\n}\nexports.printWithReducedWhitespace = printWithReducedWhitespace;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.removeAliases = void 0;\nconst graphql_1 = require(\"graphql\");\nfunction removeAliases(ast) {\n return (0, graphql_1.visit)(ast, {\n Field(node) {\n const { alias, ...rest } = node;\n return rest;\n },\n });\n}\nexports.removeAliases = removeAliases;\n//# sourceMappingURL=index.js.map","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for comparison styles. */\nvar UNORDERED_COMPARE_FLAG = 1,\n PARTIAL_COMPARE_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n reLeadingDot = /^\\./,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max;\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values ? values.length : 0;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {boolean} [bitmask] The bitmask of comparison flags.\n * The bitmask may be composed of the following flags:\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, customizer, bitmask, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, equalFunc, customizer, bitmask, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = arrayTag,\n othTag = arrayTag;\n\n if (!objIsArr) {\n objTag = getTag(object);\n objTag = objTag == argsTag ? objectTag : objTag;\n }\n if (!othIsArr) {\n othTag = getTag(other);\n othTag = othTag == argsTag ? objectTag : othTag;\n }\n var objIsObj = objTag == objectTag && !isHostObject(object),\n othIsObj = othTag == objectTag && !isHostObject(other),\n isSameTag = objTag == othTag;\n\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, equalFunc, customizer, bitmask, stack)\n : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack);\n }\n if (!(bitmask & PARTIAL_COMPARE_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, customizer, bitmask, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, equalFunc, customizer, bitmask, stack);\n}\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, customizer, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[objectToString.call(value)];\n}\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, undefined, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG);\n };\n}\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n var index = -1;\n iteratees = arrayMap(iteratees.length ? iteratees : [identity], baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value) {\n return isArray(value) ? value : stringToPath(value);\n}\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & UNORDERED_COMPARE_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!seen.has(othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) {\n return seen.add(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, customizer, bitmask, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= UNORDERED_COMPARE_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n objProps = keys(object),\n objLength = objProps.length,\n othProps = keys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, customizer, bitmask, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var result,\n index = -1,\n length = path.length;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result) {\n return result;\n }\n var length = object ? object.length : 0;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\n/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoize(function(string) {\n string = toString(string);\n\n var result = [];\n if (reLeadingDot.test(string)) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, function(o) { return o.user; });\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]]\n *\n * _.sortBy(users, 'user', function(o) {\n * return Math.floor(o.age / 10);\n * });\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = sortBy;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sortAST = void 0;\nconst graphql_1 = require(\"graphql\");\nconst lodash_sortby_1 = __importDefault(require(\"lodash.sortby\"));\nfunction sortAST(ast) {\n return (0, graphql_1.visit)(ast, {\n Document(node) {\n return {\n ...node,\n definitions: (0, lodash_sortby_1.default)(node.definitions, \"kind\", \"name.value\"),\n };\n },\n OperationDefinition(node) {\n return sortVariableDefinitions(node);\n },\n SelectionSet(node) {\n return {\n ...node,\n selections: (0, lodash_sortby_1.default)(node.selections, \"kind\", \"name.value\"),\n };\n },\n Field(node) {\n return sortArguments(node);\n },\n FragmentSpread(node) {\n return sortDirectives(node);\n },\n InlineFragment(node) {\n return sortDirectives(node);\n },\n FragmentDefinition(node) {\n return sortDirectives(sortVariableDefinitions(node));\n },\n Directive(node) {\n return sortArguments(node);\n },\n });\n}\nexports.sortAST = sortAST;\nfunction sortDirectives(node) {\n return \"directives\" in node\n ? { ...node, directives: (0, lodash_sortby_1.default)(node.directives, \"name.value\") }\n : node;\n}\nfunction sortArguments(node) {\n return \"arguments\" in node\n ? { ...node, arguments: (0, lodash_sortby_1.default)(node.arguments, \"name.value\") }\n : node;\n}\nfunction sortVariableDefinitions(node) {\n return \"variableDefinitions\" in node\n ? {\n ...node,\n variableDefinitions: (0, lodash_sortby_1.default)(node.variableDefinitions, \"variable.name.value\"),\n }\n : node;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.usageReportingSignature = void 0;\nconst utils_dropunuseddefinitions_1 = require(\"@apollo/utils.dropunuseddefinitions\");\nconst utils_stripsensitiveliterals_1 = require(\"@apollo/utils.stripsensitiveliterals\");\nconst utils_printwithreducedwhitespace_1 = require(\"@apollo/utils.printwithreducedwhitespace\");\nconst utils_removealiases_1 = require(\"@apollo/utils.removealiases\");\nconst utils_sortast_1 = require(\"@apollo/utils.sortast\");\nfunction usageReportingSignature(ast, operationName) {\n return (0, utils_printwithreducedwhitespace_1.printWithReducedWhitespace)((0, utils_sortast_1.sortAST)((0, utils_removealiases_1.removeAliases)((0, utils_stripsensitiveliterals_1.stripSensitiveLiterals)((0, utils_dropunuseddefinitions_1.dropUnusedDefinitions)(ast, operationName), {\n hideListAndObjectLiterals: true,\n }))));\n}\nexports.usageReportingSignature = usageReportingSignature;\n//# sourceMappingURL=signature.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.usageReportingSignature = exports.calculateReferencedFieldsByType = void 0;\nvar calculateReferencedFieldsByType_1 = require(\"./calculateReferencedFieldsByType\");\nObject.defineProperty(exports, \"calculateReferencedFieldsByType\", { enumerable: true, get: function () { return calculateReferencedFieldsByType_1.calculateReferencedFieldsByType; } });\nvar signature_1 = require(\"./signature\");\nObject.defineProperty(exports, \"usageReportingSignature\", { enumerable: true, get: function () { return signature_1.usageReportingSignature; } });\n//# sourceMappingURL=index.js.map","function RetryOperation(timeouts, options) {\n // Compatibility for the old (timeouts, retryForever) signature\n if (typeof options === 'boolean') {\n options = { forever: options };\n }\n\n this._originalTimeouts = JSON.parse(JSON.stringify(timeouts));\n this._timeouts = timeouts;\n this._options = options || {};\n this._maxRetryTime = options && options.maxRetryTime || Infinity;\n this._fn = null;\n this._errors = [];\n this._attempts = 1;\n this._operationTimeout = null;\n this._operationTimeoutCb = null;\n this._timeout = null;\n this._operationStart = null;\n this._timer = null;\n\n if (this._options.forever) {\n this._cachedTimeouts = this._timeouts.slice(0);\n }\n}\nmodule.exports = RetryOperation;\n\nRetryOperation.prototype.reset = function() {\n this._attempts = 1;\n this._timeouts = this._originalTimeouts.slice(0);\n}\n\nRetryOperation.prototype.stop = function() {\n if (this._timeout) {\n clearTimeout(this._timeout);\n }\n if (this._timer) {\n clearTimeout(this._timer);\n }\n\n this._timeouts = [];\n this._cachedTimeouts = null;\n};\n\nRetryOperation.prototype.retry = function(err) {\n if (this._timeout) {\n clearTimeout(this._timeout);\n }\n\n if (!err) {\n return false;\n }\n var currentTime = new Date().getTime();\n if (err && currentTime - this._operationStart >= this._maxRetryTime) {\n this._errors.push(err);\n this._errors.unshift(new Error('RetryOperation timeout occurred'));\n return false;\n }\n\n this._errors.push(err);\n\n var timeout = this._timeouts.shift();\n if (timeout === undefined) {\n if (this._cachedTimeouts) {\n // retry forever, only keep last error\n this._errors.splice(0, this._errors.length - 1);\n timeout = this._cachedTimeouts.slice(-1);\n } else {\n return false;\n }\n }\n\n var self = this;\n this._timer = setTimeout(function() {\n self._attempts++;\n\n if (self._operationTimeoutCb) {\n self._timeout = setTimeout(function() {\n self._operationTimeoutCb(self._attempts);\n }, self._operationTimeout);\n\n if (self._options.unref) {\n self._timeout.unref();\n }\n }\n\n self._fn(self._attempts);\n }, timeout);\n\n if (this._options.unref) {\n this._timer.unref();\n }\n\n return true;\n};\n\nRetryOperation.prototype.attempt = function(fn, timeoutOps) {\n this._fn = fn;\n\n if (timeoutOps) {\n if (timeoutOps.timeout) {\n this._operationTimeout = timeoutOps.timeout;\n }\n if (timeoutOps.cb) {\n this._operationTimeoutCb = timeoutOps.cb;\n }\n }\n\n var self = this;\n if (this._operationTimeoutCb) {\n this._timeout = setTimeout(function() {\n self._operationTimeoutCb();\n }, self._operationTimeout);\n }\n\n this._operationStart = new Date().getTime();\n\n this._fn(this._attempts);\n};\n\nRetryOperation.prototype.try = function(fn) {\n console.log('Using RetryOperation.try() is deprecated');\n this.attempt(fn);\n};\n\nRetryOperation.prototype.start = function(fn) {\n console.log('Using RetryOperation.start() is deprecated');\n this.attempt(fn);\n};\n\nRetryOperation.prototype.start = RetryOperation.prototype.try;\n\nRetryOperation.prototype.errors = function() {\n return this._errors;\n};\n\nRetryOperation.prototype.attempts = function() {\n return this._attempts;\n};\n\nRetryOperation.prototype.mainError = function() {\n if (this._errors.length === 0) {\n return null;\n }\n\n var counts = {};\n var mainError = null;\n var mainErrorCount = 0;\n\n for (var i = 0; i < this._errors.length; i++) {\n var error = this._errors[i];\n var message = error.message;\n var count = (counts[message] || 0) + 1;\n\n counts[message] = count;\n\n if (count >= mainErrorCount) {\n mainError = error;\n mainErrorCount = count;\n }\n }\n\n return mainError;\n};\n","var RetryOperation = require('./retry_operation');\n\nexports.operation = function(options) {\n var timeouts = exports.timeouts(options);\n return new RetryOperation(timeouts, {\n forever: options && (options.forever || options.retries === Infinity),\n unref: options && options.unref,\n maxRetryTime: options && options.maxRetryTime\n });\n};\n\nexports.timeouts = function(options) {\n if (options instanceof Array) {\n return [].concat(options);\n }\n\n var opts = {\n retries: 10,\n factor: 2,\n minTimeout: 1 * 1000,\n maxTimeout: Infinity,\n randomize: false\n };\n for (var key in options) {\n opts[key] = options[key];\n }\n\n if (opts.minTimeout > opts.maxTimeout) {\n throw new Error('minTimeout is greater than maxTimeout');\n }\n\n var timeouts = [];\n for (var i = 0; i < opts.retries; i++) {\n timeouts.push(this.createTimeout(i, opts));\n }\n\n if (options && options.forever && !timeouts.length) {\n timeouts.push(this.createTimeout(i, opts));\n }\n\n // sort the array numerically ascending\n timeouts.sort(function(a,b) {\n return a - b;\n });\n\n return timeouts;\n};\n\nexports.createTimeout = function(attempt, opts) {\n var random = (opts.randomize)\n ? (Math.random() + 1)\n : 1;\n\n var timeout = Math.round(random * Math.max(opts.minTimeout, 1) * Math.pow(opts.factor, attempt));\n timeout = Math.min(timeout, opts.maxTimeout);\n\n return timeout;\n};\n\nexports.wrap = function(obj, options, methods) {\n if (options instanceof Array) {\n methods = options;\n options = null;\n }\n\n if (!methods) {\n methods = [];\n for (var key in obj) {\n if (typeof obj[key] === 'function') {\n methods.push(key);\n }\n }\n }\n\n for (var i = 0; i < methods.length; i++) {\n var method = methods[i];\n var original = obj[method];\n\n obj[method] = function retryWrapper(original) {\n var op = exports.operation(options);\n var args = Array.prototype.slice.call(arguments, 1);\n var callback = args.pop();\n\n args.push(function(err) {\n if (op.retry(err)) {\n return;\n }\n if (err) {\n arguments[0] = op.mainError();\n }\n callback.apply(this, arguments);\n });\n\n op.attempt(function() {\n original.apply(obj, args);\n });\n }.bind(obj, original);\n obj[method].options = options;\n }\n};\n","module.exports = require('./lib/retry');","// Packages\nvar retrier = require('retry');\n\nfunction retry(fn, opts) {\n function run(resolve, reject) {\n var options = opts || {};\n var op;\n\n // Default `randomize` to true\n if (!('randomize' in options)) {\n options.randomize = true;\n }\n\n op = retrier.operation(options);\n\n // We allow the user to abort retrying\n // this makes sense in the cases where\n // knowledge is obtained that retrying\n // would be futile (e.g.: auth errors)\n\n function bail(err) {\n reject(err || new Error('Aborted'));\n }\n\n function onError(err, num) {\n if (err.bail) {\n bail(err);\n return;\n }\n\n if (!op.retry(err)) {\n reject(op.mainError());\n } else if (options.onRetry) {\n options.onRetry(err, num);\n }\n }\n\n function runAttempt(num) {\n var val;\n\n try {\n val = fn(bail, num);\n } catch (err) {\n onError(err, num);\n return;\n }\n\n Promise.resolve(val)\n .then(resolve)\n .catch(function catchIt(err) {\n onError(err, num);\n });\n }\n\n op.attempt(runAttempt);\n }\n\n return new Promise(run);\n}\n\nmodule.exports = retry;\n","export function iterateOverTrace(trace, f, includePath) {\n const rootPath = includePath\n ? new RootCollectingPathsResponseNamePath()\n : notCollectingPathsResponseNamePath;\n if (trace.root) {\n if (iterateOverTraceNode(trace.root, rootPath, f))\n return;\n }\n if (trace.queryPlan) {\n if (iterateOverQueryPlan(trace.queryPlan, rootPath, f))\n return;\n }\n}\nfunction iterateOverQueryPlan(node, rootPath, f) {\n if (!node)\n return false;\n if (node.fetch?.trace?.root && node.fetch.serviceName) {\n return iterateOverTraceNode(node.fetch.trace.root, rootPath.child(`service:${node.fetch.serviceName}`), f);\n }\n if (node.flatten?.node) {\n return iterateOverQueryPlan(node.flatten.node, rootPath, f);\n }\n if (node.parallel?.nodes) {\n return node.parallel.nodes.some((node) => iterateOverQueryPlan(node, rootPath, f));\n }\n if (node.sequence?.nodes) {\n return node.sequence.nodes.some((node) => iterateOverQueryPlan(node, rootPath, f));\n }\n return false;\n}\nfunction iterateOverTraceNode(node, path, f) {\n if (f(node, path)) {\n return true;\n }\n return (node.child?.some((child) => {\n const childPath = child.responseName\n ? path.child(child.responseName)\n : path;\n return iterateOverTraceNode(child, childPath, f);\n }) ?? false);\n}\nconst notCollectingPathsResponseNamePath = {\n toArray() {\n throw Error('not collecting paths!');\n },\n child() {\n return this;\n },\n};\nclass RootCollectingPathsResponseNamePath {\n toArray() {\n return [];\n }\n child(responseName) {\n return new ChildCollectingPathsResponseNamePath(responseName, this);\n }\n}\nclass ChildCollectingPathsResponseNamePath {\n responseName;\n prev;\n constructor(responseName, prev) {\n this.responseName = responseName;\n this.prev = prev;\n }\n toArray() {\n const out = [];\n let curr = this;\n while (curr instanceof ChildCollectingPathsResponseNamePath) {\n out.push(curr.responseName);\n curr = curr.prev;\n }\n return out.reverse();\n }\n child(responseName) {\n return new ChildCollectingPathsResponseNamePath(responseName, this);\n }\n}\n//# sourceMappingURL=iterateOverTrace.js.map","export class DurationHistogram {\n buckets;\n static BUCKET_COUNT = 384;\n static EXPONENT_LOG = Math.log(1.1);\n toArray() {\n let bufferedZeroes = 0;\n const outputArray = [];\n for (const value of this.buckets) {\n if (value === 0) {\n bufferedZeroes++;\n }\n else {\n if (bufferedZeroes === 1) {\n outputArray.push(0);\n }\n else if (bufferedZeroes !== 0) {\n outputArray.push(-bufferedZeroes);\n }\n outputArray.push(Math.floor(value));\n bufferedZeroes = 0;\n }\n }\n return outputArray;\n }\n static durationToBucket(durationNs) {\n const log = Math.log(durationNs / 1000.0);\n const unboundedBucket = Math.ceil(log / DurationHistogram.EXPONENT_LOG);\n return unboundedBucket <= 0 || Number.isNaN(unboundedBucket)\n ? 0\n : unboundedBucket >= DurationHistogram.BUCKET_COUNT\n ? DurationHistogram.BUCKET_COUNT - 1\n : unboundedBucket;\n }\n incrementDuration(durationNs, value = 1) {\n this.incrementBucket(DurationHistogram.durationToBucket(durationNs), value);\n return this;\n }\n incrementBucket(bucket, value = 1) {\n if (bucket >= DurationHistogram.BUCKET_COUNT) {\n throw Error('Bucket is out of bounds of the buckets array');\n }\n if (bucket >= this.buckets.length) {\n const oldLength = this.buckets.length;\n this.buckets.length = bucket + 1;\n this.buckets.fill(0, oldLength);\n }\n this.buckets[bucket] += value;\n }\n combine(otherHistogram) {\n for (let i = 0; i < otherHistogram.buckets.length; i++) {\n this.incrementBucket(i, otherHistogram.buckets[i]);\n }\n }\n constructor(options) {\n const initSize = options?.initSize || 74;\n const buckets = options?.buckets;\n const arrayInitSize = Math.max(buckets?.length || 0, initSize);\n this.buckets = Array(arrayInitSize).fill(0);\n if (buckets) {\n buckets.forEach((val, index) => (this.buckets[index] = val));\n }\n }\n}\n//# sourceMappingURL=durationHistogram.js.map","import { LRUCache } from 'lru-cache';\nimport { iterateOverTrace } from './iterateOverTrace.js';\nimport { DurationHistogram } from './durationHistogram.js';\nexport function defaultSendOperationsAsTrace() {\n const cache = new LRUCache({\n maxSize: Math.pow(2, 20),\n sizeCalculation: (_val, key) => {\n return (key && Buffer.byteLength(key)) || 0;\n },\n });\n return (trace, statsReportKey) => {\n const endTimeSeconds = trace.endTime?.seconds;\n if (endTimeSeconds == null) {\n throw Error('programming error: endTime not set on trace');\n }\n const hasErrors = traceHasErrors(trace);\n const cacheKey = JSON.stringify([\n statsReportKey,\n DurationHistogram.durationToBucket(trace.durationNs),\n Math.floor(endTimeSeconds / 60),\n hasErrors ? Math.floor(endTimeSeconds / 5) : '',\n ]);\n if (cache.get(cacheKey)) {\n return false;\n }\n cache.set(cacheKey, true);\n return true;\n };\n}\nfunction traceHasErrors(trace) {\n let hasErrors = false;\n function traceNodeStats(node) {\n if ((node.error?.length ?? 0) > 0) {\n hasErrors = true;\n }\n return hasErrors;\n }\n iterateOverTrace(trace, traceNodeStats, false);\n return hasErrors;\n}\n//# sourceMappingURL=defaultSendOperationsAsTrace.js.map","import { LRUCache } from 'lru-cache';\nexport function createOperationDerivedDataCache({ logger, }) {\n let lastWarn;\n let lastDisposals = 0;\n return new LRUCache({\n sizeCalculation(obj) {\n return Buffer.byteLength(JSON.stringify(obj), 'utf8');\n },\n maxSize: Math.pow(2, 20) * 10,\n dispose() {\n lastDisposals++;\n if (!lastWarn || new Date().getTime() - lastWarn.getTime() > 60000) {\n lastWarn = new Date();\n logger.warn([\n 'This server is processing a high number of unique operations. ',\n `A total of ${lastDisposals} records have been `,\n 'ejected from the ApolloServerPluginUsageReporting signature cache in the past ',\n 'interval. If you see this warning frequently, please open an ',\n 'issue on the Apollo Server repository.',\n ].join(''));\n lastDisposals = 0;\n }\n },\n });\n}\nexport function operationDerivedDataCacheKey(queryHash, operationName) {\n return `${queryHash}${operationName && ':' + operationName}`;\n}\n//# sourceMappingURL=operationDerivedDataCache.js.map","import { Trace, } from '@apollo/usage-reporting-protobuf';\nimport { DurationHistogram } from './durationHistogram.js';\nimport { iterateOverTrace } from './iterateOverTrace.js';\nexport class SizeEstimator {\n bytes = 0;\n}\nexport class OurReport {\n header;\n tracesPreAggregated = false;\n constructor(header) {\n this.header = header;\n }\n tracesPerQuery = Object.create(null);\n endTime = null;\n operationCount = 0;\n sizeEstimator = new SizeEstimator();\n ensureCountsAreIntegers() {\n for (const tracesAndStats of Object.values(this.tracesPerQuery)) {\n tracesAndStats.ensureCountsAreIntegers();\n }\n }\n addTrace({ statsReportKey, trace, asTrace, referencedFieldsByType, maxTraceBytes = 10 * 1024 * 1024, nonFtv1ErrorPaths, }) {\n const tracesAndStats = this.getTracesAndStats({\n statsReportKey,\n referencedFieldsByType,\n });\n if (asTrace) {\n const encodedTrace = Trace.encode(trace).finish();\n if (!isNaN(maxTraceBytes) && encodedTrace.length > maxTraceBytes) {\n tracesAndStats.statsWithContext.addTrace(trace, this.sizeEstimator, nonFtv1ErrorPaths);\n }\n else {\n tracesAndStats.trace.push(encodedTrace);\n this.sizeEstimator.bytes += 2 + encodedTrace.length;\n }\n }\n else {\n tracesAndStats.statsWithContext.addTrace(trace, this.sizeEstimator, nonFtv1ErrorPaths);\n }\n }\n getTracesAndStats({ statsReportKey, referencedFieldsByType, }) {\n const existing = this.tracesPerQuery[statsReportKey];\n if (existing) {\n return existing;\n }\n this.sizeEstimator.bytes += estimatedBytesForString(statsReportKey);\n for (const [typeName, referencedFieldsForType] of Object.entries(referencedFieldsByType)) {\n this.sizeEstimator.bytes += 2 + 2;\n if (referencedFieldsForType.isInterface) {\n this.sizeEstimator.bytes += 2;\n }\n this.sizeEstimator.bytes += estimatedBytesForString(typeName);\n for (const fieldName of referencedFieldsForType.fieldNames) {\n this.sizeEstimator.bytes += estimatedBytesForString(fieldName);\n }\n }\n return (this.tracesPerQuery[statsReportKey] = new OurTracesAndStats(referencedFieldsByType));\n }\n}\nclass OurTracesAndStats {\n referencedFieldsByType;\n constructor(referencedFieldsByType) {\n this.referencedFieldsByType = referencedFieldsByType;\n }\n trace = [];\n statsWithContext = new StatsByContext();\n internalTracesContributingToStats = [];\n ensureCountsAreIntegers() {\n this.statsWithContext.ensureCountsAreIntegers();\n }\n}\nclass StatsByContext {\n map = Object.create(null);\n toArray() {\n return Object.values(this.map);\n }\n ensureCountsAreIntegers() {\n for (const contextualizedStats of Object.values(this.map)) {\n contextualizedStats.ensureCountsAreIntegers();\n }\n }\n addTrace(trace, sizeEstimator, nonFtv1ErrorPaths) {\n this.getContextualizedStats(trace, sizeEstimator).addTrace(trace, sizeEstimator, nonFtv1ErrorPaths);\n }\n getContextualizedStats(trace, sizeEstimator) {\n const statsContext = {\n clientName: trace.clientName,\n clientVersion: trace.clientVersion,\n };\n const statsContextKey = JSON.stringify(statsContext);\n const existing = this.map[statsContextKey];\n if (existing) {\n return existing;\n }\n sizeEstimator.bytes +=\n 20 +\n estimatedBytesForString(trace.clientName) +\n estimatedBytesForString(trace.clientVersion);\n const contextualizedStats = new OurContextualizedStats(statsContext);\n this.map[statsContextKey] = contextualizedStats;\n return contextualizedStats;\n }\n}\nexport class OurContextualizedStats {\n context;\n queryLatencyStats = new OurQueryLatencyStats();\n perTypeStat = Object.create(null);\n constructor(context) {\n this.context = context;\n }\n ensureCountsAreIntegers() {\n for (const typeStat of Object.values(this.perTypeStat)) {\n typeStat.ensureCountsAreIntegers();\n }\n }\n addTrace(trace, sizeEstimator, nonFtv1ErrorPaths = []) {\n const { fieldExecutionWeight } = trace;\n if (!fieldExecutionWeight) {\n this.queryLatencyStats.requestsWithoutFieldInstrumentation++;\n }\n this.queryLatencyStats.requestCount++;\n if (trace.fullQueryCacheHit) {\n this.queryLatencyStats.cacheLatencyCount.incrementDuration(trace.durationNs);\n this.queryLatencyStats.cacheHits++;\n }\n else {\n this.queryLatencyStats.latencyCount.incrementDuration(trace.durationNs);\n }\n if (!trace.fullQueryCacheHit && trace.cachePolicy?.maxAgeNs != null) {\n switch (trace.cachePolicy.scope) {\n case Trace.CachePolicy.Scope.PRIVATE:\n this.queryLatencyStats.privateCacheTtlCount.incrementDuration(trace.cachePolicy.maxAgeNs);\n break;\n case Trace.CachePolicy.Scope.PUBLIC:\n this.queryLatencyStats.publicCacheTtlCount.incrementDuration(trace.cachePolicy.maxAgeNs);\n break;\n }\n }\n if (trace.persistedQueryHit) {\n this.queryLatencyStats.persistedQueryHits++;\n }\n if (trace.persistedQueryRegister) {\n this.queryLatencyStats.persistedQueryMisses++;\n }\n if (trace.forbiddenOperation) {\n this.queryLatencyStats.forbiddenOperationCount++;\n }\n if (trace.registeredOperation) {\n this.queryLatencyStats.registeredOperationCount++;\n }\n let hasError = false;\n const errorPathStats = new Set();\n const traceNodeStats = (node, path) => {\n if (node.error?.length) {\n hasError = true;\n let currPathErrorStats = this.queryLatencyStats.rootErrorStats;\n path.toArray().forEach((subPath) => {\n currPathErrorStats = currPathErrorStats.getChild(subPath, sizeEstimator);\n });\n errorPathStats.add(currPathErrorStats);\n currPathErrorStats.errorsCount += node.error.length;\n }\n if (fieldExecutionWeight) {\n const fieldName = node.originalFieldName || node.responseName;\n if (node.parentType &&\n fieldName &&\n node.type &&\n node.endTime != null &&\n node.startTime != null &&\n node.endTime >= node.startTime) {\n const typeStat = this.getTypeStat(node.parentType, sizeEstimator);\n const fieldStat = typeStat.getFieldStat(fieldName, node.type, sizeEstimator);\n fieldStat.errorsCount += node.error?.length ?? 0;\n fieldStat.observedExecutionCount++;\n fieldStat.estimatedExecutionCount += fieldExecutionWeight;\n fieldStat.requestsWithErrorsCount +=\n (node.error?.length ?? 0) > 0 ? 1 : 0;\n fieldStat.latencyCount.incrementDuration(node.endTime - node.startTime, fieldExecutionWeight);\n }\n }\n return false;\n };\n iterateOverTrace(trace, traceNodeStats, true);\n for (const { subgraph, path } of nonFtv1ErrorPaths) {\n hasError = true;\n if (path) {\n let currPathErrorStats = this.queryLatencyStats.rootErrorStats.getChild(`service:${subgraph}`, sizeEstimator);\n path.forEach((subPath) => {\n if (typeof subPath === 'string') {\n currPathErrorStats = currPathErrorStats.getChild(subPath, sizeEstimator);\n }\n });\n errorPathStats.add(currPathErrorStats);\n currPathErrorStats.errorsCount += 1;\n }\n }\n for (const errorPath of errorPathStats) {\n errorPath.requestsWithErrorsCount += 1;\n }\n if (hasError) {\n this.queryLatencyStats.requestsWithErrorsCount++;\n }\n }\n getTypeStat(parentType, sizeEstimator) {\n const existing = this.perTypeStat[parentType];\n if (existing) {\n return existing;\n }\n sizeEstimator.bytes += estimatedBytesForString(parentType);\n const typeStat = new OurTypeStat();\n this.perTypeStat[parentType] = typeStat;\n return typeStat;\n }\n}\nclass OurQueryLatencyStats {\n latencyCount = new DurationHistogram();\n requestCount = 0;\n requestsWithoutFieldInstrumentation = 0;\n cacheHits = 0;\n persistedQueryHits = 0;\n persistedQueryMisses = 0;\n cacheLatencyCount = new DurationHistogram();\n rootErrorStats = new OurPathErrorStats();\n requestsWithErrorsCount = 0;\n publicCacheTtlCount = new DurationHistogram();\n privateCacheTtlCount = new DurationHistogram();\n registeredOperationCount = 0;\n forbiddenOperationCount = 0;\n}\nclass OurPathErrorStats {\n children = Object.create(null);\n errorsCount = 0;\n requestsWithErrorsCount = 0;\n getChild(subPath, sizeEstimator) {\n const existing = this.children[subPath];\n if (existing) {\n return existing;\n }\n const child = new OurPathErrorStats();\n this.children[subPath] = child;\n sizeEstimator.bytes += estimatedBytesForString(subPath) + 4;\n return child;\n }\n}\nclass OurTypeStat {\n perFieldStat = Object.create(null);\n getFieldStat(fieldName, returnType, sizeEstimator) {\n const existing = this.perFieldStat[fieldName];\n if (existing) {\n return existing;\n }\n sizeEstimator.bytes +=\n estimatedBytesForString(fieldName) +\n estimatedBytesForString(returnType) +\n 10;\n const fieldStat = new OurFieldStat(returnType);\n this.perFieldStat[fieldName] = fieldStat;\n return fieldStat;\n }\n ensureCountsAreIntegers() {\n for (const fieldStat of Object.values(this.perFieldStat)) {\n fieldStat.ensureCountsAreIntegers();\n }\n }\n}\nclass OurFieldStat {\n returnType;\n errorsCount = 0;\n observedExecutionCount = 0;\n estimatedExecutionCount = 0;\n requestsWithErrorsCount = 0;\n latencyCount = new DurationHistogram();\n constructor(returnType) {\n this.returnType = returnType;\n }\n ensureCountsAreIntegers() {\n this.estimatedExecutionCount = Math.floor(this.estimatedExecutionCount);\n }\n}\nfunction estimatedBytesForString(s) {\n return 2 + Buffer.byteLength(s);\n}\n//# sourceMappingURL=stats.js.map","import { Trace } from '@apollo/usage-reporting-protobuf';\nexport function makeTraceDetails(variables, sendVariableValues, operationString) {\n const details = new Trace.Details();\n const variablesToRecord = (() => {\n if (sendVariableValues && 'transform' in sendVariableValues) {\n const originalKeys = Object.keys(variables);\n try {\n const modifiedVariables = sendVariableValues.transform({\n variables: variables,\n operationString: operationString,\n });\n return cleanModifiedVariables(originalKeys, modifiedVariables);\n }\n catch (e) {\n return handleVariableValueTransformError(originalKeys);\n }\n }\n else {\n return variables;\n }\n })();\n Object.keys(variablesToRecord).forEach((name) => {\n if (!sendVariableValues ||\n ('none' in sendVariableValues && sendVariableValues.none) ||\n ('all' in sendVariableValues && !sendVariableValues.all) ||\n ('exceptNames' in sendVariableValues &&\n sendVariableValues.exceptNames.includes(name)) ||\n ('onlyNames' in sendVariableValues &&\n !sendVariableValues.onlyNames.includes(name))) {\n details.variablesJson[name] = '';\n }\n else {\n try {\n details.variablesJson[name] =\n typeof variablesToRecord[name] === 'undefined'\n ? ''\n : JSON.stringify(variablesToRecord[name]);\n }\n catch (e) {\n details.variablesJson[name] = JSON.stringify('[Unable to convert value to JSON]');\n }\n }\n });\n return details;\n}\nfunction handleVariableValueTransformError(variableNames) {\n const modifiedVariables = Object.create(null);\n variableNames.forEach((name) => {\n modifiedVariables[name] = '[PREDICATE_FUNCTION_ERROR]';\n });\n return modifiedVariables;\n}\nfunction cleanModifiedVariables(originalKeys, modifiedVariables) {\n const cleanedVariables = Object.create(null);\n originalKeys.forEach((name) => {\n cleanedVariables[name] = modifiedVariables[name];\n });\n return cleanedVariables;\n}\n//# sourceMappingURL=traceDetails.js.map","import { Report, ReportHeader, Trace } from '@apollo/usage-reporting-protobuf';\nimport { usageReportingSignature, calculateReferencedFieldsByType, } from '@apollo/utils.usagereporting';\nimport retry from 'async-retry';\nimport { printSchema } from 'graphql';\nimport os from 'os';\nimport { gzip } from 'zlib';\nimport { internalPlugin } from '../../internalPlugin.js';\nimport { dateToProtoTimestamp, TraceTreeBuilder } from '../traceTreeBuilder.js';\nimport { defaultSendOperationsAsTrace } from './defaultSendOperationsAsTrace.js';\nimport { createOperationDerivedDataCache, operationDerivedDataCacheKey, } from './operationDerivedDataCache.js';\nimport { OurReport } from './stats.js';\nimport { makeTraceDetails } from './traceDetails.js';\nimport { packageVersion } from '../../generated/packageVersion.js';\nimport { computeCoreSchemaHash } from '../../utils/computeCoreSchemaHash.js';\nimport { schemaIsSubgraph } from '../schemaIsSubgraph.js';\nconst reportHeaderDefaults = {\n hostname: os.hostname(),\n agentVersion: `@apollo/server@${packageVersion}`,\n runtimeVersion: `node ${process.version}`,\n uname: `${os.platform()}, ${os.type()}, ${os.release()}, ${os.arch()})`,\n};\nexport function ApolloServerPluginUsageReporting(options = Object.create(null)) {\n const fieldLevelInstrumentationOption = options.fieldLevelInstrumentation;\n const fieldLevelInstrumentation = typeof fieldLevelInstrumentationOption === 'number'\n ? async () => Math.random() < fieldLevelInstrumentationOption\n ? 1 / fieldLevelInstrumentationOption\n : 0\n : fieldLevelInstrumentationOption\n ? fieldLevelInstrumentationOption\n : async () => true;\n let requestDidStartHandler = null;\n return internalPlugin({\n __internal_plugin_id__: 'UsageReporting',\n __is_disabled_plugin__: false,\n async requestDidStart(requestContext) {\n if (requestDidStartHandler) {\n return requestDidStartHandler(requestContext);\n }\n return {};\n },\n async serverWillStart({ logger: serverLogger, apollo, startedInBackground, schema, }) {\n const logger = options.logger ?? serverLogger;\n const { key, graphRef } = apollo;\n if (!(key && graphRef)) {\n throw new Error(\"You've enabled usage reporting via ApolloServerPluginUsageReporting, \" +\n 'but you also need to provide your Apollo API key and graph ref, via ' +\n 'the APOLLO_KEY/APOLLO_GRAPH_REF environment ' +\n 'variables or via `new ApolloServer({apollo: {key, graphRef})`.');\n }\n if (schemaIsSubgraph(schema)) {\n if (options.__onlyIfSchemaIsNotSubgraph) {\n logger.warn('You have specified an Apollo API key and graph ref but this server appears ' +\n 'to be a subgraph. Typically usage reports are sent to Apollo by your Router ' +\n 'or Gateway, not directly from your subgraph; usage reporting is disabled. To ' +\n 'enable usage reporting anyway, explicitly install `ApolloServerPluginUsageReporting`. ' +\n 'To disable this warning, install `ApolloServerPluginUsageReportingDisabled`.');\n return {};\n }\n else {\n logger.warn('You have installed `ApolloServerPluginUsageReporting` but this server appears to ' +\n 'be a subgraph. Typically usage reports are sent to Apollo by your Router ' +\n 'or Gateway, not directly from your subgraph. If this was unintentional, remove ' +\n \"`ApolloServerPluginUsageReporting` from your server's `plugins` array.\");\n }\n }\n logger.info('Apollo usage reporting starting! See your graph at ' +\n `https://studio.apollographql.com/graph/${encodeURI(graphRef)}/`);\n const sendReportsImmediately = options.sendReportsImmediately ?? startedInBackground;\n let operationDerivedDataCache = null;\n const reportByExecutableSchemaId = new Map();\n const getReportWhichMustBeUsedImmediately = (executableSchemaId) => {\n const existing = reportByExecutableSchemaId.get(executableSchemaId);\n if (existing) {\n return existing;\n }\n const report = new OurReport(new ReportHeader({\n ...reportHeaderDefaults,\n executableSchemaId,\n graphRef,\n }));\n reportByExecutableSchemaId.set(executableSchemaId, report);\n return report;\n };\n const getAndDeleteReport = (executableSchemaId) => {\n const report = reportByExecutableSchemaId.get(executableSchemaId);\n if (report) {\n reportByExecutableSchemaId.delete(executableSchemaId);\n return report;\n }\n return null;\n };\n const overriddenExecutableSchemaId = options.overrideReportedSchema\n ? computeCoreSchemaHash(options.overrideReportedSchema)\n : undefined;\n let lastSeenExecutableSchemaToId;\n let reportTimer;\n if (!sendReportsImmediately) {\n reportTimer = setInterval(() => sendAllReportsAndReportErrors(), options.reportIntervalMs || 10 * 1000);\n }\n let sendTraces = options.sendTraces ?? true;\n const sendOperationAsTrace = options.experimental_sendOperationAsTrace ??\n defaultSendOperationsAsTrace();\n let stopped = false;\n function executableSchemaIdForSchema(schema) {\n if (lastSeenExecutableSchemaToId?.executableSchema === schema) {\n return lastSeenExecutableSchemaToId.executableSchemaId;\n }\n const id = computeCoreSchemaHash(printSchema(schema));\n lastSeenExecutableSchemaToId = {\n executableSchema: schema,\n executableSchemaId: id,\n };\n return id;\n }\n async function sendAllReportsAndReportErrors() {\n await Promise.all([...reportByExecutableSchemaId.keys()].map((executableSchemaId) => sendReportAndReportErrors(executableSchemaId)));\n }\n async function sendReportAndReportErrors(executableSchemaId) {\n return sendReport(executableSchemaId).catch((err) => {\n if (options.reportErrorFunction) {\n options.reportErrorFunction(err);\n }\n else {\n logger.error(err.message);\n }\n });\n }\n const sendReport = async (executableSchemaId) => {\n let report = getAndDeleteReport(executableSchemaId);\n if (!report ||\n (Object.keys(report.tracesPerQuery).length === 0 &&\n report.operationCount === 0)) {\n return;\n }\n report.endTime = dateToProtoTimestamp(new Date());\n report.ensureCountsAreIntegers();\n const protobufError = Report.verify(report);\n if (protobufError) {\n throw new Error(`Error verifying report: ${protobufError}`);\n }\n let message = Report.encode(report).finish();\n report = null;\n if (options.debugPrintReports) {\n const decodedReport = Report.decode(message);\n logger.info(`Apollo usage report: ${JSON.stringify(decodedReport.toJSON())}`);\n }\n const compressed = await new Promise((resolve, reject) => {\n gzip(message, (error, result) => {\n error ? reject(error) : resolve(result);\n });\n });\n message = null;\n const fetcher = options.fetcher ?? fetch;\n const response = await retry(async () => {\n const curResponse = await fetcher((options.endpointUrl ||\n 'https://usage-reporting.api.apollographql.com') +\n '/api/ingress/traces', {\n method: 'POST',\n headers: {\n 'user-agent': 'ApolloServerPluginUsageReporting',\n 'x-api-key': key,\n 'content-encoding': 'gzip',\n accept: 'application/json',\n },\n body: compressed,\n signal: AbortSignal.timeout(options.requestTimeoutMs ?? 30_000),\n });\n if (curResponse.status >= 500 && curResponse.status < 600) {\n throw new Error(`HTTP status ${curResponse.status}, ${(await curResponse.text()) || '(no body)'}`);\n }\n else {\n return curResponse;\n }\n }, {\n retries: (options.maxAttempts || 5) - 1,\n minTimeout: options.minimumRetryDelayMs || 100,\n factor: 2,\n }).catch((err) => {\n throw new Error(`Error sending report to Apollo servers: ${err.message}`);\n });\n if (response.status < 200 || response.status >= 300) {\n throw new Error(`Error sending report to Apollo servers: HTTP status ${response.status}, ${(await response.text()) || '(no body)'}`);\n }\n if (sendTraces &&\n response.status === 200 &&\n response.headers\n .get('content-type')\n ?.match(/^\\s*application\\/json\\s*(?:;|$)/i)) {\n const body = await response.text();\n let parsedBody;\n try {\n parsedBody = JSON.parse(body);\n }\n catch (e) {\n throw new Error(`Error parsing response from Apollo servers: ${e}`);\n }\n if (parsedBody.tracesIgnored === true) {\n logger.debug(\"This graph's organization does not have access to traces; sending all \" +\n 'subsequent operations as stats.');\n sendTraces = false;\n }\n }\n if (options.debugPrintReports) {\n logger.info(`Apollo usage report: status ${response.status}`);\n }\n };\n requestDidStartHandler = ({ metrics, schema, request: { http, variables }, }) => {\n const treeBuilder = new TraceTreeBuilder({\n maskedBy: 'ApolloServerPluginUsageReporting',\n sendErrors: options.sendErrors,\n });\n treeBuilder.startTiming();\n metrics.startHrTime = treeBuilder.startHrTime;\n let graphqlValidationFailure = false;\n let graphqlUnknownOperationName = false;\n let includeOperationInUsageReporting = null;\n if (http) {\n treeBuilder.trace.http = new Trace.HTTP({\n method: Trace.HTTP.Method[http.method] || Trace.HTTP.Method.UNKNOWN,\n });\n if (options.sendHeaders) {\n makeHTTPRequestHeaders(treeBuilder.trace.http, http.headers, options.sendHeaders);\n }\n }\n async function maybeCallIncludeRequestHook(requestContext) {\n if (includeOperationInUsageReporting !== null)\n return;\n if (typeof options.includeRequest !== 'function') {\n includeOperationInUsageReporting = true;\n return;\n }\n includeOperationInUsageReporting =\n await options.includeRequest(requestContext);\n if (typeof includeOperationInUsageReporting !== 'boolean') {\n logger.warn(\"The 'includeRequest' async predicate function must return a boolean value.\");\n includeOperationInUsageReporting = true;\n }\n }\n let didResolveSource = false;\n return {\n async didResolveSource(requestContext) {\n didResolveSource = true;\n if (metrics.persistedQueryHit) {\n treeBuilder.trace.persistedQueryHit = true;\n }\n if (metrics.persistedQueryRegister) {\n treeBuilder.trace.persistedQueryRegister = true;\n }\n if (variables) {\n treeBuilder.trace.details = makeTraceDetails(variables, options.sendVariableValues, requestContext.source);\n }\n const clientInfo = (options.generateClientInfo || defaultGenerateClientInfo)(requestContext);\n if (clientInfo) {\n const { clientName, clientVersion } = clientInfo;\n treeBuilder.trace.clientVersion = clientVersion || '';\n treeBuilder.trace.clientName = clientName || '';\n }\n },\n async validationDidStart() {\n return async (validationErrors) => {\n graphqlValidationFailure = validationErrors\n ? validationErrors.length !== 0\n : false;\n };\n },\n async didResolveOperation(requestContext) {\n graphqlUnknownOperationName =\n requestContext.operation === undefined;\n await maybeCallIncludeRequestHook(requestContext);\n if (includeOperationInUsageReporting &&\n !graphqlUnknownOperationName) {\n if (metrics.captureTraces === undefined) {\n const rawWeight = await fieldLevelInstrumentation(requestContext);\n treeBuilder.trace.fieldExecutionWeight =\n typeof rawWeight === 'number' ? rawWeight : rawWeight ? 1 : 0;\n metrics.captureTraces =\n !!treeBuilder.trace.fieldExecutionWeight;\n }\n }\n },\n async executionDidStart() {\n if (!metrics.captureTraces)\n return;\n return {\n willResolveField({ info }) {\n return treeBuilder.willResolveField(info);\n },\n };\n },\n async didEncounterSubsequentErrors(_requestContext, errors) {\n treeBuilder.didEncounterErrors(errors);\n },\n async willSendSubsequentPayload(requestContext, payload) {\n if (!payload.hasNext) {\n await operationFinished(requestContext);\n }\n },\n async willSendResponse(requestContext) {\n if (!didResolveSource)\n return;\n if (requestContext.errors) {\n treeBuilder.didEncounterErrors(requestContext.errors);\n }\n if (requestContext.response.body.kind === 'single') {\n await operationFinished(requestContext);\n }\n },\n };\n async function operationFinished(requestContext) {\n const resolvedOperation = !!requestContext.operation;\n await maybeCallIncludeRequestHook(requestContext);\n treeBuilder.stopTiming();\n const executableSchemaId = overriddenExecutableSchemaId ?? executableSchemaIdForSchema(schema);\n if (includeOperationInUsageReporting === false) {\n if (resolvedOperation) {\n getReportWhichMustBeUsedImmediately(executableSchemaId)\n .operationCount++;\n }\n return;\n }\n treeBuilder.trace.fullQueryCacheHit = !!metrics.responseCacheHit;\n treeBuilder.trace.forbiddenOperation = !!metrics.forbiddenOperation;\n treeBuilder.trace.registeredOperation = !!metrics.registeredOperation;\n const policyIfCacheable = requestContext.overallCachePolicy.policyIfCacheable();\n if (policyIfCacheable) {\n treeBuilder.trace.cachePolicy = new Trace.CachePolicy({\n scope: policyIfCacheable.scope === 'PRIVATE'\n ? Trace.CachePolicy.Scope.PRIVATE\n : policyIfCacheable.scope === 'PUBLIC'\n ? Trace.CachePolicy.Scope.PUBLIC\n : Trace.CachePolicy.Scope.UNKNOWN,\n maxAgeNs: policyIfCacheable.maxAge * 1e9,\n });\n }\n if (metrics.queryPlanTrace) {\n treeBuilder.trace.queryPlan = metrics.queryPlanTrace;\n }\n addTrace().catch(logger.error.bind(logger));\n async function addTrace() {\n if (stopped) {\n return;\n }\n await new Promise((res) => setImmediate(res));\n const executableSchemaId = overriddenExecutableSchemaId ??\n executableSchemaIdForSchema(schema);\n const { trace } = treeBuilder;\n let statsReportKey = undefined;\n let referencedFieldsByType;\n if (!requestContext.document) {\n statsReportKey = `## GraphQLParseFailure\\n`;\n }\n else if (graphqlValidationFailure) {\n statsReportKey = `## GraphQLValidationFailure\\n`;\n }\n else if (graphqlUnknownOperationName) {\n statsReportKey = `## GraphQLUnknownOperationName\\n`;\n }\n const isExecutable = statsReportKey === undefined;\n if (statsReportKey) {\n if (options.sendUnexecutableOperationDocuments) {\n trace.unexecutedOperationBody = requestContext.source;\n trace.unexecutedOperationName =\n requestContext.request.operationName || '';\n }\n referencedFieldsByType = Object.create(null);\n }\n else {\n const operationDerivedData = getOperationDerivedData();\n statsReportKey = `# ${requestContext.operationName || '-'}\\n${operationDerivedData.signature}`;\n referencedFieldsByType =\n operationDerivedData.referencedFieldsByType;\n }\n const protobufError = Trace.verify(trace);\n if (protobufError) {\n throw new Error(`Error encoding trace: ${protobufError}`);\n }\n if (resolvedOperation) {\n getReportWhichMustBeUsedImmediately(executableSchemaId)\n .operationCount++;\n }\n getReportWhichMustBeUsedImmediately(executableSchemaId).addTrace({\n statsReportKey,\n trace,\n asTrace: sendTraces &&\n (!isExecutable || !!metrics.captureTraces) &&\n !metrics.nonFtv1ErrorPaths?.length &&\n sendOperationAsTrace(trace, statsReportKey),\n referencedFieldsByType,\n nonFtv1ErrorPaths: metrics.nonFtv1ErrorPaths ?? [],\n });\n if (sendReportsImmediately ||\n getReportWhichMustBeUsedImmediately(executableSchemaId)\n .sizeEstimator.bytes >=\n (options.maxUncompressedReportSize || 4 * 1024 * 1024)) {\n await sendReportAndReportErrors(executableSchemaId);\n }\n }\n function getOperationDerivedData() {\n if (!requestContext.document) {\n throw new Error('No document?');\n }\n const cacheKey = operationDerivedDataCacheKey(requestContext.queryHash, requestContext.operationName || '');\n if (!operationDerivedDataCache ||\n operationDerivedDataCache.forSchema !== schema) {\n operationDerivedDataCache = {\n forSchema: schema,\n cache: createOperationDerivedDataCache({ logger }),\n };\n }\n const cachedOperationDerivedData = operationDerivedDataCache.cache.get(cacheKey);\n if (cachedOperationDerivedData) {\n return cachedOperationDerivedData;\n }\n const generatedSignature = (options.calculateSignature || usageReportingSignature)(requestContext.document, requestContext.operationName || '');\n const generatedOperationDerivedData = {\n signature: generatedSignature,\n referencedFieldsByType: calculateReferencedFieldsByType({\n document: requestContext.document,\n schema,\n resolvedOperationName: requestContext.operationName ?? null,\n }),\n };\n operationDerivedDataCache.cache.set(cacheKey, generatedOperationDerivedData);\n return generatedOperationDerivedData;\n }\n }\n };\n return {\n async serverWillStop() {\n if (reportTimer) {\n clearInterval(reportTimer);\n reportTimer = undefined;\n }\n stopped = true;\n await sendAllReportsAndReportErrors();\n },\n };\n },\n });\n}\nexport function makeHTTPRequestHeaders(http, headers, sendHeaders) {\n if (!sendHeaders ||\n ('none' in sendHeaders && sendHeaders.none) ||\n ('all' in sendHeaders && !sendHeaders.all)) {\n return;\n }\n for (const [key, value] of headers) {\n if (('exceptNames' in sendHeaders &&\n sendHeaders.exceptNames.some((exceptHeader) => {\n return exceptHeader.toLowerCase() === key;\n })) ||\n ('onlyNames' in sendHeaders &&\n !sendHeaders.onlyNames.some((header) => {\n return header.toLowerCase() === key;\n }))) {\n continue;\n }\n switch (key) {\n case 'authorization':\n case 'cookie':\n case 'set-cookie':\n break;\n default:\n http.requestHeaders[key] = new Trace.HTTP.Values({\n value: [value],\n });\n }\n }\n}\nfunction defaultGenerateClientInfo({ request, }) {\n const clientNameHeaderKey = 'apollographql-client-name';\n const clientVersionHeaderKey = 'apollographql-client-version';\n if (request.http?.headers?.get(clientNameHeaderKey) ||\n request.http?.headers?.get(clientVersionHeaderKey)) {\n return {\n clientName: request.http?.headers?.get(clientNameHeaderKey),\n clientVersion: request.http?.headers?.get(clientVersionHeaderKey),\n };\n }\n else if (request.extensions?.clientInfo) {\n return request.extensions.clientInfo;\n }\n else {\n return {};\n }\n}\n//# sourceMappingURL=plugin.js.map"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"mappings":"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"}
|