browserscale-ts 1.1.0 → 1.2.0

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/dist/browser.d.ts CHANGED
@@ -4,8 +4,8 @@ export { WebSocketTransport } from "./ws-transport.ts";
4
4
  export { BrowserConfig } from "./config.ts";
5
5
  export { Locator, css, js, node, at, AllFrames } from "./locator.ts";
6
6
  export { DefaultWaitTimeoutMs, DefaultVisible, DefaultSteadyMs, } from "./defaults.ts";
7
- export { BrowserScaleError } from "./errors.ts";
8
- export type { Rect, FrameInfo, PageInfo, Header, InterceptedRequest, InterceptedResponse, WaitResult, NavigateResult, EvaluateResult, ElementResult, DragResult, SelectOptionResult, ObservationResult, ScreenshotResult, ReadCanvasResult, DOMResult, InspectResult, RentResponse, } from "./types.ts";
7
+ export { BrowserScaleError, ClickError, FillError, DragError, ScrollError, MoveError, SelectOptionError, WaitError, } from "./errors.ts";
8
+ export type { Rect, FrameInfo, PageInfo, Header, InterceptedRequest, InterceptedResponse, WaitResult, WaitConditionStatus, OccluderInfo, NavigateResult, EvaluateResult, ElementResult, DragResult, SelectOptionResult, ObservationResult, ScreenshotResult, ReadCanvasResult, DOMResult, InspectResult, RentResponse, } from "./types.ts";
9
9
  export type { Button, ClickAction, ClickOpts, FillOpts, SelectOpts, WaitOpts, WaitUntil, NavigateOpts, LoadHTMLOpts, GetDOMOpts, GetObservationOpts, ScreenshotOpts, ReadCanvasOpts, } from "./options.ts";
10
10
  export { type RequestPattern, type HeaderModification, type HeaderModificationAction, } from "./network.ts";
11
11
  export type { CookieParam } from "./cookies.ts";
package/dist/browser.js CHANGED
@@ -8,8 +8,8 @@ export { BrowserConfig } from "./config.js";
8
8
  export { Locator, css, js, node, at, AllFrames } from "./locator.js";
9
9
  // Defaults the SDK applies before sending a request
10
10
  export { DefaultWaitTimeoutMs, DefaultVisible, DefaultSteadyMs, } from "./defaults.js";
11
- // Errors
12
- export { BrowserScaleError } from "./errors.js";
11
+ // Errors — base class plus the typed semantic-failure subclasses
12
+ export { BrowserScaleError, ClickError, FillError, DragError, ScrollError, MoveError, SelectOptionError, WaitError, } from "./errors.js";
13
13
  // Browser-side factory functions ───────────────────────────────────────
14
14
  /**
15
15
  * Attaches a {@link CloudBrowser} to an existing session over a raw
@@ -3799,49 +3799,49 @@ function serviceDesc(file, path, ...paths) {
3799
3799
  }
3800
3800
 
3801
3801
  // src/gen/wrc_pb.ts
3802
- var file_wrc = /* @__PURE__ */ fileDesc("Cgl3cmMucHJvdG8SD2Jyb3dzZXJzY2FsZS52MSI7CgRSZWN0EgkKAXgYASABKAESCQoBeRgCIAEoARINCgV3aWR0aBgDIAEoARIOCgZoZWlnaHQYBCABKAEihgIKCUZyYW1lSW5mbxIQCghmcmFtZV9pZBgBIAEoCRILCgN1cmwYAiABKAkSEAoIaXNfb29waWYYAyABKAgSFgoOaGFzX2pzX2NvbnRleHQYBCABKAgSEgoKaXNfbG9hZGluZxgFIAEoCBISCgppc192aXNpYmxlGAYgASgIEiwKDWFic29sdXRlX3JlY3QYByABKAsyFS5icm93c2Vyc2NhbGUudjEuUmVjdBIsCg1yZWxhdGl2ZV9yZWN0GAggASgLMhUuYnJvd3NlcnNjYWxlLnYxLlJlY3QSLAoIY2hpbGRyZW4YCSADKAsyGi5icm93c2Vyc2NhbGUudjEuRnJhbWVJbmZvIqwBCghQYWdlSW5mbxIPCgdwYWdlX2lkGAEgASgJEhoKEmJyb3dzZXJfY29udGV4dF9pZBgCIAEoCRILCgN1cmwYAyABKAkSDQoFdGl0bGUYBCABKAkSJwoIdmlld3BvcnQYBSABKAsyFS5icm93c2Vyc2NhbGUudjEuUmVjdBIuCgpmcmFtZV90cmVlGAYgASgLMhouYnJvd3NlcnNjYWxlLnYxLkZyYW1lSW5mbyIlCgZIZWFkZXISDAoEbmFtZRgBIAEoCRINCgV2YWx1ZRgCIAEoCSKAAQoSSW50ZXJjZXB0ZWRSZXF1ZXN0Eg4KBm1ldGhvZBgBIAEoCRILCgN1cmwYAiABKAkSKAoHaGVhZGVycxgDIAMoCzIXLmJyb3dzZXJzY2FsZS52MS5IZWFkZXISDAoEYm9keRgEIAEoCRIVCg1yZXNvdXJjZV90eXBlGAUgASgJIm8KE0ludGVyY2VwdGVkUmVzcG9uc2USCwoDdXJsGAEgASgJEhMKC3N0YXR1c19jb2RlGAIgASgFEigKB2hlYWRlcnMYAyADKAsyFy5icm93c2Vyc2NhbGUudjEuSGVhZGVyEgwKBGJvZHkYBCABKAkijgEKEkhlYWRlck1vZGlmaWNhdGlvbhIMCgRuYW1lGAEgASgJEhIKBXZhbHVlGAIgASgJSACIAQESDgoGYWN0aW9uGAMgASgJEhMKBmJlZm9yZRgEIAEoCUgBiAEBEhIKBWFmdGVyGAUgASgJSAKIAQFCCAoGX3ZhbHVlQgkKB19iZWZvcmVCCAoGX2FmdGVyIk0KEkNvb2tpZVBhcnRpdGlvbktleRIWCg50b3BfbGV2ZWxfc2l0ZRgBIAEoCRIfChdoYXNfY3Jvc3Nfc2l0ZV9hbmNlc3RvchgCIAEoCCK/AwoLQ29va2llUGFyYW0SDAoEbmFtZRgBIAEoCRINCgV2YWx1ZRgCIAEoCRIQCgN1cmwYAyABKAlIAIgBARIOCgZkb21haW4YBCABKAkSDAoEcGF0aBgFIAEoCRITCgZzZWN1cmUYBiABKAhIAYgBARIWCglodHRwX29ubHkYByABKAhIAogBARIWCglzYW1lX3NpdGUYCCABKAlIA4gBARIUCgdleHBpcmVzGAkgASgBSASIAQESFQoIcHJpb3JpdHkYCiABKAlIBYgBARIaCg1zb3VyY2Vfc2NoZW1lGAsgASgJSAaIAQESGAoLc291cmNlX3BvcnQYDCABKAVIB4gBARI/Cg1wYXJ0aXRpb25fa2V5GA0gASgLMiMuYnJvd3NlcnNjYWxlLnYxLkNvb2tpZVBhcnRpdGlvbktleUgIiAEBQgYKBF91cmxCCQoHX3NlY3VyZUIMCgpfaHR0cF9vbmx5QgwKCl9zYW1lX3NpdGVCCgoIX2V4cGlyZXNCCwoJX3ByaW9yaXR5QhAKDl9zb3VyY2Vfc2NoZW1lQg4KDF9zb3VyY2VfcG9ydEIQCg5fcGFydGl0aW9uX2tleSKtAQoNV2FpdENvbmRpdGlvbhIVCghzZWxlY3RvchgBIAEoCUgAiAEBEhoKDWpzX2V4cHJlc3Npb24YAiABKAlIAYgBARIUCgd2aXNpYmxlGAMgASgISAKIAQESGAoLc3RlYWR5X3RpbWUYBCABKAFIA4gBAUILCglfc2VsZWN0b3JCEAoOX2pzX2V4cHJlc3Npb25CCgoIX3Zpc2libGVCDgoMX3N0ZWFkeV90aW1lIoEBCgpXYWl0UmVzdWx0Eg0KBWluZGV4GAEgASgFEhAKCGZyYW1lX2lkGAIgASgJEhcKD2JhY2tlbmRfbm9kZV9pZBgDIAEoBRISCgppc192aXNpYmxlGAQgASgIEiUKBmJvdW5kcxgFIAEoCzIVLmJyb3dzZXJzY2FsZS52MS5SZWN0IqYBCg1FbGVtZW50UmVzdWx0Eg8KB3N1Y2Nlc3MYASABKAgSEAoIZnJhbWVfaWQYAiABKAkSFwoPYmFja2VuZF9ub2RlX2lkGAMgASgFEhIKCmlzX3Zpc2libGUYBCABKAgSJQoGYm91bmRzGAUgASgLMhUuYnJvd3NlcnNjYWxlLnYxLlJlY3QSDgoGcm9vdF94GAYgASgBEg4KBnJvb3RfeRgHIAEoASKIAQoKRHJhZ1Jlc3VsdBIPCgdzdWNjZXNzGAEgASgIEhAKCGZyYW1lX2lkGAIgASgJEhcKD2JhY2tlbmRfbm9kZV9pZBgDIAEoBRIPCgdzdGFydF94GAQgASgBEg8KB3N0YXJ0X3kYBSABKAESDQoFZW5kX3gYBiABKAESDQoFZW5kX3kYByABKAEiWwoSU2VsZWN0T3B0aW9uUmVzdWx0EhYKDnNlbGVjdGVkX2luZGV4GAEgASgFEhYKDnNlbGVjdGVkX3ZhbHVlGAIgASgJEhUKDXNlbGVjdGVkX3RleHQYAyABKAki5gEKD1NldFByb3h5UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSFwoKcHJveHlfaG9zdBgDIAEoCUgAiAEBEhcKCnByb3h5X3BvcnQYBCABKAVIAYgBARIbCg5wcm94eV91c2VybmFtZRgFIAEoCUgCiAEBEhsKDnByb3h5X3Bhc3N3b3JkGAYgASgJSAOIAQFCDQoLX3Byb3h5X2hvc3RCDQoLX3Byb3h5X3BvcnRCEQoPX3Byb3h5X3VzZXJuYW1lQhEKD19wcm94eV9wYXNzd29yZCI2Cg9HZXRQYWdlc1JlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJIjwKEEdldFBhZ2VzUmVzcG9uc2USKAoFcGFnZXMYASADKAsyGS5icm93c2Vyc2NhbGUudjEuUGFnZUluZm8imgEKD05hdmlnYXRlUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRILCgN1cmwYBCABKAkSFQoIcmVmZXJyZXIYBSABKAlIAIgBARIUCgd0aW1lb3V0GAYgASgBSAGIAQFCCwoJX3JlZmVycmVyQgoKCF90aW1lb3V0IjEKEE5hdmlnYXRlUmVzcG9uc2USEAoIZnJhbWVfaWQYASABKAkSCwoDdXJsGAIgASgJIrYBCg9Mb2FkSFRNTFJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSCwoDdXJsGAQgASgJEgwKBGh0bWwYBSABKAkSKAoHaGVhZGVycxgGIAMoCzIXLmJyb3dzZXJzY2FsZS52MS5IZWFkZXISGAoLc3RhdHVzX2NvZGUYByABKAVIAIgBAUIOCgxfc3RhdHVzX2NvZGUifwoPRXZhbHVhdGVSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRIPCgdwYWdlX2lkGAMgASgJEhIKCmV4cHJlc3Npb24YBCABKAkSFQoIZnJhbWVfaWQYBSABKAlIAIgBAUILCglfZnJhbWVfaWQidgoQRXZhbHVhdGVSZXNwb25zZRIOCgZyZXN1bHQYASABKAkSFwoPYmFja2VuZF9ub2RlX2lkGAIgASgFEhIKCmlzX3Zpc2libGUYAyABKAgSJQoGYm91bmRzGAQgASgLMhUuYnJvd3NlcnNjYWxlLnYxLlJlY3QiwgEKEFdhaXRGb3JBbnlQYXJhbXMSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSMgoKY29uZGl0aW9ucxgEIAMoCzIeLmJyb3dzZXJzY2FsZS52MS5XYWl0Q29uZGl0aW9uEhUKCGZyYW1lX2lkGAUgASgJSACIAQESFAoHdGltZW91dBgGIAEoAUgBiAEBQgsKCV9mcmFtZV9pZEIKCghfdGltZW91dCL1AgoTU2VsZWN0T3B0aW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRIcCg9iYWNrZW5kX25vZGVfaWQYBCABKAVIAIgBARIVCghzZWxlY3RvchgFIAEoCUgBiAEBEhoKDWpzX2V4cHJlc3Npb24YBiABKAlIAogBARIVCghmcmFtZV9pZBgHIAEoCUgDiAEBEhIKBWluZGV4GAggASgFSASIAQESEgoFdmFsdWUYCSABKAlIBYgBARIRCgR0ZXh0GAogASgJSAaIAQESGAoLZmlyZV9ldmVudHMYCyABKAhIB4gBAUISChBfYmFja2VuZF9ub2RlX2lkQgsKCV9zZWxlY3RvckIQCg5fanNfZXhwcmVzc2lvbkILCglfZnJhbWVfaWRCCAoGX2luZGV4QggKBl92YWx1ZUIHCgVfdGV4dEIOCgxfZmlyZV9ldmVudHMi7wEKD1Njcm9sbFRvUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRIcCg9iYWNrZW5kX25vZGVfaWQYBCABKAVIAIgBARIVCghzZWxlY3RvchgFIAEoCUgBiAEBEhoKDWpzX2V4cHJlc3Npb24YBiABKAlIAogBARIVCghmcmFtZV9pZBgHIAEoCUgDiAEBQhIKEF9iYWNrZW5kX25vZGVfaWRCCwoJX3NlbGVjdG9yQhAKDl9qc19leHByZXNzaW9uQgsKCV9mcmFtZV9pZCKZAgoNTW92ZVRvUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRIcCg9iYWNrZW5kX25vZGVfaWQYBCABKAVIAIgBARIVCghzZWxlY3RvchgFIAEoCUgBiAEBEhoKDWpzX2V4cHJlc3Npb24YBiABKAlIAogBARIVCghmcmFtZV9pZBgHIAEoCUgDiAEBEg4KAXgYCCABKAFIBIgBARIOCgF5GAkgASgBSAWIAQFCEgoQX2JhY2tlbmRfbm9kZV9pZEILCglfc2VsZWN0b3JCEAoOX2pzX2V4cHJlc3Npb25CCwoJX2ZyYW1lX2lkQgQKAl94QgQKAl95IoIDCgxDbGlja1JlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSHAoPYmFja2VuZF9ub2RlX2lkGAQgASgFSACIAQESFQoIc2VsZWN0b3IYBSABKAlIAYgBARIaCg1qc19leHByZXNzaW9uGAYgASgJSAKIAQESFQoIZnJhbWVfaWQYByABKAlIA4gBARITCgZidXR0b24YCCABKAlIBIgBARIYCgtjbGlja19jb3VudBgJIAEoBUgFiAEBEg4KAXgYCiABKAFIBogBARIOCgF5GAsgASgBSAeIAQESEwoGYWN0aW9uGAwgASgJSAiIAQFCEgoQX2JhY2tlbmRfbm9kZV9pZEILCglfc2VsZWN0b3JCEAoOX2pzX2V4cHJlc3Npb25CCwoJX2ZyYW1lX2lkQgkKB19idXR0b25CDgoMX2NsaWNrX2NvdW50QgQKAl94QgQKAl95QgkKB19hY3Rpb24igwMKC0RyYWdSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRIPCgdwYWdlX2lkGAMgASgJEhwKD2JhY2tlbmRfbm9kZV9pZBgEIAEoBUgAiAEBEhUKCHNlbGVjdG9yGAUgASgJSAGIAQESGgoNanNfZXhwcmVzc2lvbhgGIAEoCUgCiAEBEhUKCGZyYW1lX2lkGAcgASgJSAOIAQESFQoIb2Zmc2V0X3gYCCABKAFIBIgBARIVCghvZmZzZXRfeRgJIAEoAUgFiAEBEhcKCmFic29sdXRlX3gYCiABKAFIBogBARIXCgphYnNvbHV0ZV95GAsgASgBSAeIAQFCEgoQX2JhY2tlbmRfbm9kZV9pZEILCglfc2VsZWN0b3JCEAoOX2pzX2V4cHJlc3Npb25CCwoJX2ZyYW1lX2lkQgsKCV9vZmZzZXRfeEILCglfb2Zmc2V0X3lCDQoLX2Fic29sdXRlX3hCDQoLX2Fic29sdXRlX3kiowIKC0ZpbGxSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRIPCgdwYWdlX2lkGAMgASgJEhwKD2JhY2tlbmRfbm9kZV9pZBgEIAEoBUgAiAEBEhUKCHNlbGVjdG9yGAUgASgJSAGIAQESGgoNanNfZXhwcmVzc2lvbhgGIAEoCUgCiAEBEhUKCGZyYW1lX2lkGAcgASgJSAOIAQESDAoEdGV4dBgIIAEoCRIYCgtjbGVhcl9maXJzdBgJIAEoCEgEiAEBQhIKEF9iYWNrZW5kX25vZGVfaWRCCwoJX3NlbGVjdG9yQhAKDl9qc19leHByZXNzaW9uQgsKCV9mcmFtZV9pZEIOCgxfY2xlYXJfZmlyc3QiTAoTU2V0QmxvY2tMaXN0UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSEAoIcGF0dGVybnMYAyADKAkiYQoVU2V0U3RhdGljUGF0aHNSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRIQCghwYXR0ZXJucxgDIAMoCRIRCglibG9iX25hbWUYBCABKAkiiAEKGFdhaXRGb3JBbnlSZXF1ZXN0UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSEAoIcGF0dGVybnMYAyADKAkSEwoLYWJvcnRfZmxhZ3MYBCADKAUSFAoHdGltZW91dBgFIAEoAUgAiAEBQgoKCF90aW1lb3V0ImAKGVdhaXRGb3JBbnlSZXF1ZXN0UmVzcG9uc2USDQoFaW5kZXgYASABKAUSNAoHcmVxdWVzdBgCIAEoCzIjLmJyb3dzZXJzY2FsZS52MS5JbnRlcmNlcHRlZFJlcXVlc3QiiQEKGVdhaXRGb3JBbnlSZXNwb25zZVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEhAKCHBhdHRlcm5zGAMgAygJEhMKC2Fib3J0X2ZsYWdzGAQgAygFEhQKB3RpbWVvdXQYBSABKAFIAIgBAUIKCghfdGltZW91dCJjChpXYWl0Rm9yQW55UmVzcG9uc2VSZXNwb25zZRINCgVpbmRleBgBIAEoBRI2CghyZXNwb25zZRgCIAEoCzIkLmJyb3dzZXJzY2FsZS52MS5JbnRlcmNlcHRlZFJlc3BvbnNlIsoBChRNb2RpZnlSZXF1ZXN0UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSEwoLdXJsX3BhdHRlcm4YAyABKAkSOgoNbW9kaWZpY2F0aW9ucxgEIAMoCzIjLmJyb3dzZXJzY2FsZS52MS5IZWFkZXJNb2RpZmljYXRpb24SEQoEYm9keRgFIAEoCUgAiAEBEhQKB3RpbWVvdXQYBiABKAFIAYgBAUIHCgVfYm9keUIKCghfdGltZW91dCJNChVNb2RpZnlSZXF1ZXN0UmVzcG9uc2USNAoHcmVxdWVzdBgBIAEoCzIjLmJyb3dzZXJzY2FsZS52MS5JbnRlcmNlcHRlZFJlcXVlc3QiOAoRR2V0Q29va2llc1JlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJIkMKEkdldENvb2tpZXNSZXNwb25zZRItCgdjb29raWVzGAEgAygLMhwuYnJvd3NlcnNjYWxlLnYxLkNvb2tpZVBhcmFtImcKEVNldENvb2tpZXNSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRItCgdjb29raWVzGAMgAygLMhwuYnJvd3NlcnNjYWxlLnYxLkNvb2tpZVBhcmFtIjoKE0NsZWFyQ29va2llc1JlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJIikKC1N0b3JhZ2VJdGVtEgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCSJRChJTdG9yYWdlT3JpZ2luRW50cnkSDgoGb3JpZ2luGAEgASgJEisKBWl0ZW1zGAIgAygLMhwuYnJvd3NlcnNjYWxlLnYxLlN0b3JhZ2VJdGVtIlgKEUdldFN0b3JhZ2VSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRITCgZvcmlnaW4YAyABKAlIAIgBAUIJCgdfb3JpZ2luIkoKEkdldFN0b3JhZ2VSZXNwb25zZRI0CgdzdG9yYWdlGAEgAygLMiMuYnJvd3NlcnNjYWxlLnYxLlN0b3JhZ2VPcmlnaW5FbnRyeSKYAQoRU2V0U3RvcmFnZVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEjQKB3N0b3JhZ2UYAyADKAsyIy5icm93c2Vyc2NhbGUudjEuU3RvcmFnZU9yaWdpbkVudHJ5EhgKC2NsZWFyX2ZpcnN0GAQgASgISACIAQFCDgoMX2NsZWFyX2ZpcnN0IloKE0NsZWFyU3RvcmFnZVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEhMKBm9yaWdpbhgDIAEoCUgAiAEBQgkKB19vcmlnaW4ihwEKDUdldERPTVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSFQoIZnJhbWVfaWQYBCABKAlIAIgBARISCgVkZXB0aBgFIAEoBUgBiAEBQgsKCV9mcmFtZV9pZEIICgZfZGVwdGgiHQoOR2V0RE9NUmVzcG9uc2USCwoDZG9tGAEgASgJIr8BChVHZXRPYnNlcnZhdGlvblJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSIwoWbWF4X2VsZW1lbnRzX3Blcl9mcmFtZRgEIAEoBUgAiAEBEhwKD21heF90ZXh0X2xlbmd0aBgFIAEoBUgBiAEBQhkKF19tYXhfZWxlbWVudHNfcGVyX2ZyYW1lQhIKEF9tYXhfdGV4dF9sZW5ndGgiTAoWR2V0T2JzZXJ2YXRpb25SZXNwb25zZRIYChBvYnNlcnZhdGlvbl90ZXh0GAEgASgJEhgKEG9ic2VydmF0aW9uX2pzb24YAiABKAkibQoRR2V0RE9NSGFzaFJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSFQoIZnJhbWVfaWQYBCABKAlIAIgBAUILCglfZnJhbWVfaWQiIgoSR2V0RE9NSGFzaFJlc3BvbnNlEgwKBGhhc2gYASABKAkiZgoYSW5zcGVjdEF0UG9zaXRpb25SZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRIPCgdwYWdlX2lkGAMgASgJEgkKAXgYBCABKAESCQoBeRgFIAEoASKpAQoZSW5zcGVjdEF0UG9zaXRpb25SZXNwb25zZRIXCg9iYWNrZW5kX25vZGVfaWQYASABKAUSEAoIZnJhbWVfaWQYAiABKAkSEAoIdGFnX25hbWUYAyABKAkSFAoMdGV4dF9jb250ZW50GAQgASgJEhIKCmlzX3Zpc2libGUYBSABKAgSJQoGYm91bmRzGAYgASgLMhUuYnJvd3NlcnNjYWxlLnYxLlJlY3QiiQEKFEhpZ2hsaWdodE5vZGVSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRIPCgdwYWdlX2lkGAMgASgJEhcKD2JhY2tlbmRfbm9kZV9pZBgEIAEoBRIVCghmcmFtZV9pZBgFIAEoCUgAiAEBQgsKCV9mcmFtZV9pZCJXChFJbnNlcnRUZXh0UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRIMCgR0ZXh0GAQgASgJIroBCg9QcmVzc0tleVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSCwoDa2V5GAQgASgJEhEKBGNvZGUYBSABKAlIAIgBARIWCgltb2RpZmllcnMYBiABKAVIAYgBARIVCghsb2NhdGlvbhgHIAEoBUgCiAEBQgcKBV9jb2RlQgwKCl9tb2RpZmllcnNCCwoJX2xvY2F0aW9uIrwBChFSZWxlYXNlS2V5UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRILCgNrZXkYBCABKAkSEQoEY29kZRgFIAEoCUgAiAEBEhYKCW1vZGlmaWVycxgGIAEoBUgBiAEBEhUKCGxvY2F0aW9uGAcgASgFSAKIAQFCBwoFX2NvZGVCDAoKX21vZGlmaWVyc0ILCglfbG9jYXRpb24iSwoTR2V0U2VsZWN0aW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCSIkChRHZXRTZWxlY3Rpb25SZXNwb25zZRIMCgR0ZXh0GAEgASgJIosBChFTY3JlZW5zaG90UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRITCgZmb3JtYXQYBCABKAlIAIgBARIUCgdxdWFsaXR5GAUgASgFSAGIAQFCCQoHX2Zvcm1hdEIKCghfcXVhbGl0eSJIChJTY3JlZW5zaG90UmVzcG9uc2USEwoLZGF0YV9iYXNlNjQYASABKAkSDQoFd2lkdGgYAiABKAUSDgoGaGVpZ2h0GAMgASgFIpMDChFSZWFkQ2FudmFzUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRIcCg9iYWNrZW5kX25vZGVfaWQYBCABKAVIAIgBARIVCghzZWxlY3RvchgFIAEoCUgBiAEBEhoKDWpzX2V4cHJlc3Npb24YBiABKAlIAogBARIVCghmcmFtZV9pZBgHIAEoCUgDiAEBEhMKBmZvcm1hdBgIIAEoCUgEiAEBEhQKB3F1YWxpdHkYCSABKAVIBYgBARIPCgJzeBgKIAEoBUgGiAEBEg8KAnN5GAsgASgFSAeIAQESDwoCc3cYDCABKAVICIgBARIPCgJzaBgNIAEoBUgJiAEBQhIKEF9iYWNrZW5kX25vZGVfaWRCCwoJX3NlbGVjdG9yQhAKDl9qc19leHByZXNzaW9uQgsKCV9mcmFtZV9pZEIJCgdfZm9ybWF0QgoKCF9xdWFsaXR5QgUKA19zeEIFCgNfc3lCBQoDX3N3QgUKA19zaCKaAQoSUmVhZENhbnZhc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSEAoIZnJhbWVfaWQYAiABKAkSFwoPYmFja2VuZF9ub2RlX2lkGAMgASgFEhMKC2RhdGFfYmFzZTY0GAQgASgJEg0KBXdpZHRoGAUgASgFEg4KBmhlaWdodBgGIAEoBRIUCgxvcmlnaW5fY2xlYW4YByABKAgiZAoTU29sdmVDYXB0Y2hhUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSEgoKdGltZW91dF9tcxgDIAEoBRIUCgxyZXRyeV9hbW91bnQYBCABKAUiJgoUU29sdmVDYXB0Y2hhUmVzcG9uc2USDgoGcmVzdWx0GAEgASgJMtYWCgdCcm93c2VyEkQKCFNldFByb3h5EiAuYnJvd3NlcnNjYWxlLnYxLlNldFByb3h5UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJPCghHZXRQYWdlcxIgLmJyb3dzZXJzY2FsZS52MS5HZXRQYWdlc1JlcXVlc3QaIS5icm93c2Vyc2NhbGUudjEuR2V0UGFnZXNSZXNwb25zZRJPCghOYXZpZ2F0ZRIgLmJyb3dzZXJzY2FsZS52MS5OYXZpZ2F0ZVJlcXVlc3QaIS5icm93c2Vyc2NhbGUudjEuTmF2aWdhdGVSZXNwb25zZRJECghMb2FkSFRNTBIgLmJyb3dzZXJzY2FsZS52MS5Mb2FkSFRNTFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSTwoIRXZhbHVhdGUSIC5icm93c2Vyc2NhbGUudjEuRXZhbHVhdGVSZXF1ZXN0GiEuYnJvd3NlcnNjYWxlLnYxLkV2YWx1YXRlUmVzcG9uc2USTAoKV2FpdEZvckFueRIhLmJyb3dzZXJzY2FsZS52MS5XYWl0Rm9yQW55UGFyYW1zGhsuYnJvd3NlcnNjYWxlLnYxLldhaXRSZXN1bHQSWQoMU2VsZWN0T3B0aW9uEiQuYnJvd3NlcnNjYWxlLnYxLlNlbGVjdE9wdGlvblJlcXVlc3QaIy5icm93c2Vyc2NhbGUudjEuU2VsZWN0T3B0aW9uUmVzdWx0EkwKCFNjcm9sbFRvEiAuYnJvd3NlcnNjYWxlLnYxLlNjcm9sbFRvUmVxdWVzdBoeLmJyb3dzZXJzY2FsZS52MS5FbGVtZW50UmVzdWx0EkgKBk1vdmVUbxIeLmJyb3dzZXJzY2FsZS52MS5Nb3ZlVG9SZXF1ZXN0Gh4uYnJvd3NlcnNjYWxlLnYxLkVsZW1lbnRSZXN1bHQSRgoFQ2xpY2sSHS5icm93c2Vyc2NhbGUudjEuQ2xpY2tSZXF1ZXN0Gh4uYnJvd3NlcnNjYWxlLnYxLkVsZW1lbnRSZXN1bHQSQQoERHJhZxIcLmJyb3dzZXJzY2FsZS52MS5EcmFnUmVxdWVzdBobLmJyb3dzZXJzY2FsZS52MS5EcmFnUmVzdWx0EkQKBEZpbGwSHC5icm93c2Vyc2NhbGUudjEuRmlsbFJlcXVlc3QaHi5icm93c2Vyc2NhbGUudjEuRWxlbWVudFJlc3VsdBJMCgxTZXRCbG9ja0xpc3QSJC5icm93c2Vyc2NhbGUudjEuU2V0QmxvY2tMaXN0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJQCg5TZXRTdGF0aWNQYXRocxImLmJyb3dzZXJzY2FsZS52MS5TZXRTdGF0aWNQYXRoc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSagoRV2FpdEZvckFueVJlcXVlc3QSKS5icm93c2Vyc2NhbGUudjEuV2FpdEZvckFueVJlcXVlc3RSZXF1ZXN0GiouYnJvd3NlcnNjYWxlLnYxLldhaXRGb3JBbnlSZXF1ZXN0UmVzcG9uc2USbQoSV2FpdEZvckFueVJlc3BvbnNlEiouYnJvd3NlcnNjYWxlLnYxLldhaXRGb3JBbnlSZXNwb25zZVJlcXVlc3QaKy5icm93c2Vyc2NhbGUudjEuV2FpdEZvckFueVJlc3BvbnNlUmVzcG9uc2USXgoNTW9kaWZ5UmVxdWVzdBIlLmJyb3dzZXJzY2FsZS52MS5Nb2RpZnlSZXF1ZXN0UmVxdWVzdBomLmJyb3dzZXJzY2FsZS52MS5Nb2RpZnlSZXF1ZXN0UmVzcG9uc2USVQoKR2V0Q29va2llcxIiLmJyb3dzZXJzY2FsZS52MS5HZXRDb29raWVzUmVxdWVzdBojLmJyb3dzZXJzY2FsZS52MS5HZXRDb29raWVzUmVzcG9uc2USSAoKU2V0Q29va2llcxIiLmJyb3dzZXJzY2FsZS52MS5TZXRDb29raWVzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJMCgxDbGVhckNvb2tpZXMSJC5icm93c2Vyc2NhbGUudjEuQ2xlYXJDb29raWVzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJVCgpHZXRTdG9yYWdlEiIuYnJvd3NlcnNjYWxlLnYxLkdldFN0b3JhZ2VSZXF1ZXN0GiMuYnJvd3NlcnNjYWxlLnYxLkdldFN0b3JhZ2VSZXNwb25zZRJICgpTZXRTdG9yYWdlEiIuYnJvd3NlcnNjYWxlLnYxLlNldFN0b3JhZ2VSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkwKDENsZWFyU3RvcmFnZRIkLmJyb3dzZXJzY2FsZS52MS5DbGVhclN0b3JhZ2VSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkkKBkdldERPTRIeLmJyb3dzZXJzY2FsZS52MS5HZXRET01SZXF1ZXN0Gh8uYnJvd3NlcnNjYWxlLnYxLkdldERPTVJlc3BvbnNlElUKCkdldERPTUhhc2gSIi5icm93c2Vyc2NhbGUudjEuR2V0RE9NSGFzaFJlcXVlc3QaIy5icm93c2Vyc2NhbGUudjEuR2V0RE9NSGFzaFJlc3BvbnNlEmEKDkdldE9ic2VydmF0aW9uEiYuYnJvd3NlcnNjYWxlLnYxLkdldE9ic2VydmF0aW9uUmVxdWVzdBonLmJyb3dzZXJzY2FsZS52MS5HZXRPYnNlcnZhdGlvblJlc3BvbnNlEmoKEUluc3BlY3RBdFBvc2l0aW9uEikuYnJvd3NlcnNjYWxlLnYxLkluc3BlY3RBdFBvc2l0aW9uUmVxdWVzdBoqLmJyb3dzZXJzY2FsZS52MS5JbnNwZWN0QXRQb3NpdGlvblJlc3BvbnNlEk4KDUhpZ2hsaWdodE5vZGUSJS5icm93c2Vyc2NhbGUudjEuSGlnaGxpZ2h0Tm9kZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSVQoKU2NyZWVuc2hvdBIiLmJyb3dzZXJzY2FsZS52MS5TY3JlZW5zaG90UmVxdWVzdBojLmJyb3dzZXJzY2FsZS52MS5TY3JlZW5zaG90UmVzcG9uc2USVQoKUmVhZENhbnZhcxIiLmJyb3dzZXJzY2FsZS52MS5SZWFkQ2FudmFzUmVxdWVzdBojLmJyb3dzZXJzY2FsZS52MS5SZWFkQ2FudmFzUmVzcG9uc2USSAoKSW5zZXJ0VGV4dBIiLmJyb3dzZXJzY2FsZS52MS5JbnNlcnRUZXh0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJECghQcmVzc0tleRIgLmJyb3dzZXJzY2FsZS52MS5QcmVzc0tleVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSSAoKUmVsZWFzZUtleRIiLmJyb3dzZXJzY2FsZS52MS5SZWxlYXNlS2V5UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJbCgxHZXRTZWxlY3Rpb24SJC5icm93c2Vyc2NhbGUudjEuR2V0U2VsZWN0aW9uUmVxdWVzdBolLmJyb3dzZXJzY2FsZS52MS5HZXRTZWxlY3Rpb25SZXNwb25zZRJbCgxTb2x2ZUNhcHRjaGESJC5icm93c2Vyc2NhbGUudjEuU29sdmVDYXB0Y2hhUmVxdWVzdBolLmJyb3dzZXJzY2FsZS52MS5Tb2x2ZUNhcHRjaGFSZXNwb25zZUIzWjFnaXRodWIuY29tL2Jyb3dzZXJzY2FsZS9icm93c2Vyc2NhbGUtZ28vZ2VuZXJhdGVkYgZwcm90bzM", [file_google_protobuf_empty]);
3802
+ var file_wrc = /* @__PURE__ */ fileDesc("Cgl3cmMucHJvdG8SD2Jyb3dzZXJzY2FsZS52MSI7CgRSZWN0EgkKAXgYASABKAESCQoBeRgCIAEoARINCgV3aWR0aBgDIAEoARIOCgZoZWlnaHQYBCABKAEihgIKCUZyYW1lSW5mbxIQCghmcmFtZV9pZBgBIAEoCRILCgN1cmwYAiABKAkSEAoIaXNfb29waWYYAyABKAgSFgoOaGFzX2pzX2NvbnRleHQYBCABKAgSEgoKaXNfbG9hZGluZxgFIAEoCBISCgppc192aXNpYmxlGAYgASgIEiwKDWFic29sdXRlX3JlY3QYByABKAsyFS5icm93c2Vyc2NhbGUudjEuUmVjdBIsCg1yZWxhdGl2ZV9yZWN0GAggASgLMhUuYnJvd3NlcnNjYWxlLnYxLlJlY3QSLAoIY2hpbGRyZW4YCSADKAsyGi5icm93c2Vyc2NhbGUudjEuRnJhbWVJbmZvIqwBCghQYWdlSW5mbxIPCgdwYWdlX2lkGAEgASgJEhoKEmJyb3dzZXJfY29udGV4dF9pZBgCIAEoCRILCgN1cmwYAyABKAkSDQoFdGl0bGUYBCABKAkSJwoIdmlld3BvcnQYBSABKAsyFS5icm93c2Vyc2NhbGUudjEuUmVjdBIuCgpmcmFtZV90cmVlGAYgASgLMhouYnJvd3NlcnNjYWxlLnYxLkZyYW1lSW5mbyIlCgZIZWFkZXISDAoEbmFtZRgBIAEoCRINCgV2YWx1ZRgCIAEoCSKAAQoSSW50ZXJjZXB0ZWRSZXF1ZXN0Eg4KBm1ldGhvZBgBIAEoCRILCgN1cmwYAiABKAkSKAoHaGVhZGVycxgDIAMoCzIXLmJyb3dzZXJzY2FsZS52MS5IZWFkZXISDAoEYm9keRgEIAEoCRIVCg1yZXNvdXJjZV90eXBlGAUgASgJIm8KE0ludGVyY2VwdGVkUmVzcG9uc2USCwoDdXJsGAEgASgJEhMKC3N0YXR1c19jb2RlGAIgASgFEigKB2hlYWRlcnMYAyADKAsyFy5icm93c2Vyc2NhbGUudjEuSGVhZGVyEgwKBGJvZHkYBCABKAkijgEKEkhlYWRlck1vZGlmaWNhdGlvbhIMCgRuYW1lGAEgASgJEhIKBXZhbHVlGAIgASgJSACIAQESDgoGYWN0aW9uGAMgASgJEhMKBmJlZm9yZRgEIAEoCUgBiAEBEhIKBWFmdGVyGAUgASgJSAKIAQFCCAoGX3ZhbHVlQgkKB19iZWZvcmVCCAoGX2FmdGVyIk0KEkNvb2tpZVBhcnRpdGlvbktleRIWCg50b3BfbGV2ZWxfc2l0ZRgBIAEoCRIfChdoYXNfY3Jvc3Nfc2l0ZV9hbmNlc3RvchgCIAEoCCK/AwoLQ29va2llUGFyYW0SDAoEbmFtZRgBIAEoCRINCgV2YWx1ZRgCIAEoCRIQCgN1cmwYAyABKAlIAIgBARIOCgZkb21haW4YBCABKAkSDAoEcGF0aBgFIAEoCRITCgZzZWN1cmUYBiABKAhIAYgBARIWCglodHRwX29ubHkYByABKAhIAogBARIWCglzYW1lX3NpdGUYCCABKAlIA4gBARIUCgdleHBpcmVzGAkgASgBSASIAQESFQoIcHJpb3JpdHkYCiABKAlIBYgBARIaCg1zb3VyY2Vfc2NoZW1lGAsgASgJSAaIAQESGAoLc291cmNlX3BvcnQYDCABKAVIB4gBARI/Cg1wYXJ0aXRpb25fa2V5GA0gASgLMiMuYnJvd3NlcnNjYWxlLnYxLkNvb2tpZVBhcnRpdGlvbktleUgIiAEBQgYKBF91cmxCCQoHX3NlY3VyZUIMCgpfaHR0cF9vbmx5QgwKCl9zYW1lX3NpdGVCCgoIX2V4cGlyZXNCCwoJX3ByaW9yaXR5QhAKDl9zb3VyY2Vfc2NoZW1lQg4KDF9zb3VyY2VfcG9ydEIQCg5fcGFydGl0aW9uX2tleSKtAQoNV2FpdENvbmRpdGlvbhIVCghzZWxlY3RvchgBIAEoCUgAiAEBEhoKDWpzX2V4cHJlc3Npb24YAiABKAlIAYgBARIUCgd2aXNpYmxlGAMgASgISAKIAQESGAoLc3RlYWR5X3RpbWUYBCABKAFIA4gBAUILCglfc2VsZWN0b3JCEAoOX2pzX2V4cHJlc3Npb25CCgoIX3Zpc2libGVCDgoMX3N0ZWFkeV90aW1lIrsBCgpXYWl0UmVzdWx0Eg0KBWluZGV4GAEgASgFEhAKCGZyYW1lX2lkGAIgASgJEhcKD2JhY2tlbmRfbm9kZV9pZBgDIAEoBRISCgppc192aXNpYmxlGAQgASgIEiUKBmJvdW5kcxgFIAEoCzIVLmJyb3dzZXJzY2FsZS52MS5SZWN0Ei4KBWVycm9yGAYgASgLMhouYnJvd3NlcnNjYWxlLnYxLldhaXRFcnJvckgAiAEBQggKBl9lcnJvciLsAQoTV2FpdENvbmRpdGlvblN0YXR1cxINCgVpbmRleBgBIAEoBRINCgVzdGF0ZRgCIAEoCRIXCg9iYWNrZW5kX25vZGVfaWQYAyABKAUSEAoIZnJhbWVfaWQYBCABKAkSEgoKaXNfdmlzaWJsZRgFIAEoCBIqCgZib3VuZHMYBiABKAsyFS5icm93c2Vyc2NhbGUudjEuUmVjdEgAiAEBEjQKCG9jY2x1ZGVyGAcgASgLMh0uYnJvd3NlcnNjYWxlLnYxLk9jY2x1ZGVySW5mb0gBiAEBQgkKB19ib3VuZHNCCwoJX29jY2x1ZGVyImQKCVdhaXRFcnJvchIMCgRjb2RlGAEgASgJEg8KB21lc3NhZ2UYAiABKAkSOAoKY29uZGl0aW9ucxgDIAMoCzIkLmJyb3dzZXJzY2FsZS52MS5XYWl0Q29uZGl0aW9uU3RhdHVzIqYBCg1FbGVtZW50UmVzdWx0Eg8KB3N1Y2Nlc3MYASABKAgSEAoIZnJhbWVfaWQYAiABKAkSFwoPYmFja2VuZF9ub2RlX2lkGAMgASgFEhIKCmlzX3Zpc2libGUYBCABKAgSJQoGYm91bmRzGAUgASgLMhUuYnJvd3NlcnNjYWxlLnYxLlJlY3QSDgoGcm9vdF94GAYgASgBEg4KBnJvb3RfeRgHIAEoASKuAwoMT2NjbHVkZXJJbmZvEhcKD2JhY2tlbmRfbm9kZV9pZBgBIAEoBRIQCghmcmFtZV9pZBgCIAEoCRIQCgh0YWdfbmFtZRgDIAEoCRIPCgJpZBgEIAEoCUgAiAEBEhcKCmNsYXNzX25hbWUYBSABKAlIAYgBARIRCgR0ZXh0GAYgASgJSAKIAQESJQoGYm91bmRzGAcgASgLMhUuYnJvd3NlcnNjYWxlLnYxLlJlY3QSGwoOcG9pbnRlcl9ldmVudHMYCCABKAlIA4gBARIXCgp2aXNpYmlsaXR5GAkgASgJSASIAQESFAoHb3BhY2l0eRgKIAEoAUgFiAEBEhQKB3pfaW5kZXgYCyABKAlIBogBARIlChhoaXR0YWJsZV93aGlsZV9pbnZpc2libGUYDCABKAhIB4gBAUIFCgNfaWRCDQoLX2NsYXNzX25hbWVCBwoFX3RleHRCEQoPX3BvaW50ZXJfZXZlbnRzQg0KC192aXNpYmlsaXR5QgoKCF9vcGFjaXR5QgoKCF96X2luZGV4QhsKGV9oaXR0YWJsZV93aGlsZV9pbnZpc2libGUioAEKCkNsaWNrRXJyb3ISDAoEY29kZRgBIAEoCRIPCgdtZXNzYWdlGAIgASgJEjQKCG9jY2x1ZGVyGAMgASgLMh0uYnJvd3NlcnNjYWxlLnYxLk9jY2x1ZGVySW5mb0gAiAEBEhwKD2V2YWRlX2F0dGVtcHRlZBgEIAEoCEgBiAEBQgsKCV9vY2NsdWRlckISChBfZXZhZGVfYXR0ZW1wdGVkIt8BCgtDbGlja1Jlc3VsdBIPCgdzdWNjZXNzGAEgASgIEhAKCGZyYW1lX2lkGAIgASgJEhcKD2JhY2tlbmRfbm9kZV9pZBgDIAEoBRISCgppc192aXNpYmxlGAQgASgIEiUKBmJvdW5kcxgFIAEoCzIVLmJyb3dzZXJzY2FsZS52MS5SZWN0Eg4KBnJvb3RfeBgGIAEoARIOCgZyb290X3kYByABKAESLwoFZXJyb3IYCCABKAsyGy5icm93c2Vyc2NhbGUudjEuQ2xpY2tFcnJvckgAiAEBQggKBl9lcnJvciJxCglGaWxsRXJyb3ISDAoEY29kZRgBIAEoCRIPCgdtZXNzYWdlGAIgASgJEjUKC2NsaWNrX2Vycm9yGAMgASgLMhsuYnJvd3NlcnNjYWxlLnYxLkNsaWNrRXJyb3JIAIgBAUIOCgxfY2xpY2tfZXJyb3IiogEKCkZpbGxSZXN1bHQSDwoHc3VjY2VzcxgBIAEoCBIQCghmcmFtZV9pZBgCIAEoCRIXCg9iYWNrZW5kX25vZGVfaWQYAyABKAUSDgoGcm9vdF94GAYgASgBEg4KBnJvb3RfeRgHIAEoARIuCgVlcnJvchgIIAEoCzIaLmJyb3dzZXJzY2FsZS52MS5GaWxsRXJyb3JIAIgBAUIICgZfZXJyb3IiwgEKCkRyYWdSZXN1bHQSDwoHc3VjY2VzcxgBIAEoCBIQCghmcmFtZV9pZBgCIAEoCRIXCg9iYWNrZW5kX25vZGVfaWQYAyABKAUSDwoHc3RhcnRfeBgEIAEoARIPCgdzdGFydF95GAUgASgBEg0KBWVuZF94GAYgASgBEg0KBWVuZF95GAcgASgBEi4KBWVycm9yGAggASgLMhouYnJvd3NlcnNjYWxlLnYxLkRyYWdFcnJvckgAiAEBQggKBl9lcnJvciJxCglEcmFnRXJyb3ISDAoEY29kZRgBIAEoCRIPCgdtZXNzYWdlGAIgASgJEjUKC2NsaWNrX2Vycm9yGAMgASgLMhsuYnJvd3NlcnNjYWxlLnYxLkNsaWNrRXJyb3JIAIgBAUIOCgxfY2xpY2tfZXJyb3IirgEKElNlbGVjdE9wdGlvblJlc3VsdBIWCg5zZWxlY3RlZF9pbmRleBgBIAEoBRIWCg5zZWxlY3RlZF92YWx1ZRgCIAEoCRIVCg1zZWxlY3RlZF90ZXh0GAMgASgJEg8KB3N1Y2Nlc3MYBCABKAgSNgoFZXJyb3IYBSABKAsyIi5icm93c2Vyc2NhbGUudjEuU2VsZWN0T3B0aW9uRXJyb3JIAIgBAUIICgZfZXJyb3IiMgoRU2VsZWN0T3B0aW9uRXJyb3ISDAoEY29kZRgBIAEoCRIPCgdtZXNzYWdlGAIgASgJIsEBCgxTY3JvbGxSZXN1bHQSDwoHc3VjY2VzcxgBIAEoCBIQCghmcmFtZV9pZBgCIAEoCRIXCg9iYWNrZW5kX25vZGVfaWQYAyABKAUSEgoKaXNfdmlzaWJsZRgEIAEoCBIlCgZib3VuZHMYBSABKAsyFS5icm93c2Vyc2NhbGUudjEuUmVjdBIwCgVlcnJvchgIIAEoCzIcLmJyb3dzZXJzY2FsZS52MS5TY3JvbGxFcnJvckgAiAEBQggKBl9lcnJvciIsCgtTY3JvbGxFcnJvchIMCgRjb2RlGAEgASgJEg8KB21lc3NhZ2UYAiABKAki3QEKCk1vdmVSZXN1bHQSDwoHc3VjY2VzcxgBIAEoCBIQCghmcmFtZV9pZBgCIAEoCRIXCg9iYWNrZW5kX25vZGVfaWQYAyABKAUSEgoKaXNfdmlzaWJsZRgEIAEoCBIlCgZib3VuZHMYBSABKAsyFS5icm93c2Vyc2NhbGUudjEuUmVjdBIOCgZyb290X3gYBiABKAESDgoGcm9vdF95GAcgASgBEi4KBWVycm9yGAggASgLMhouYnJvd3NlcnNjYWxlLnYxLk1vdmVFcnJvckgAiAEBQggKBl9lcnJvciIqCglNb3ZlRXJyb3ISDAoEY29kZRgBIAEoCRIPCgdtZXNzYWdlGAIgASgJIuYBCg9TZXRQcm94eVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEhcKCnByb3h5X2hvc3QYAyABKAlIAIgBARIXCgpwcm94eV9wb3J0GAQgASgFSAGIAQESGwoOcHJveHlfdXNlcm5hbWUYBSABKAlIAogBARIbCg5wcm94eV9wYXNzd29yZBgGIAEoCUgDiAEBQg0KC19wcm94eV9ob3N0Qg0KC19wcm94eV9wb3J0QhEKD19wcm94eV91c2VybmFtZUIRCg9fcHJveHlfcGFzc3dvcmQiNgoPR2V0UGFnZXNSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCSI8ChBHZXRQYWdlc1Jlc3BvbnNlEigKBXBhZ2VzGAEgAygLMhkuYnJvd3NlcnNjYWxlLnYxLlBhZ2VJbmZvIpoBCg9OYXZpZ2F0ZVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSCwoDdXJsGAQgASgJEhUKCHJlZmVycmVyGAUgASgJSACIAQESFAoHdGltZW91dBgGIAEoAUgBiAEBQgsKCV9yZWZlcnJlckIKCghfdGltZW91dCIxChBOYXZpZ2F0ZVJlc3BvbnNlEhAKCGZyYW1lX2lkGAEgASgJEgsKA3VybBgCIAEoCSK2AQoPTG9hZEhUTUxSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRIPCgdwYWdlX2lkGAMgASgJEgsKA3VybBgEIAEoCRIMCgRodG1sGAUgASgJEigKB2hlYWRlcnMYBiADKAsyFy5icm93c2Vyc2NhbGUudjEuSGVhZGVyEhgKC3N0YXR1c19jb2RlGAcgASgFSACIAQFCDgoMX3N0YXR1c19jb2RlIn8KD0V2YWx1YXRlUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRISCgpleHByZXNzaW9uGAQgASgJEhUKCGZyYW1lX2lkGAUgASgJSACIAQFCCwoJX2ZyYW1lX2lkInYKEEV2YWx1YXRlUmVzcG9uc2USDgoGcmVzdWx0GAEgASgJEhcKD2JhY2tlbmRfbm9kZV9pZBgCIAEoBRISCgppc192aXNpYmxlGAMgASgIEiUKBmJvdW5kcxgEIAEoCzIVLmJyb3dzZXJzY2FsZS52MS5SZWN0ImMKClJ1blJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg4KBnNvdXJjZRgDIAEoCRIUCgdwYWdlX2lkGAQgASgJSACIAQFCCgoIX3BhZ2VfaWQiLgoLUnVuUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIOCgZyZXN1bHQYAiABKAkiwgEKEFdhaXRGb3JBbnlQYXJhbXMSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSMgoKY29uZGl0aW9ucxgEIAMoCzIeLmJyb3dzZXJzY2FsZS52MS5XYWl0Q29uZGl0aW9uEhUKCGZyYW1lX2lkGAUgASgJSACIAQESFAoHdGltZW91dBgGIAEoAUgBiAEBQgsKCV9mcmFtZV9pZEIKCghfdGltZW91dCL1AgoTU2VsZWN0T3B0aW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRIcCg9iYWNrZW5kX25vZGVfaWQYBCABKAVIAIgBARIVCghzZWxlY3RvchgFIAEoCUgBiAEBEhoKDWpzX2V4cHJlc3Npb24YBiABKAlIAogBARIVCghmcmFtZV9pZBgHIAEoCUgDiAEBEhIKBWluZGV4GAggASgFSASIAQESEgoFdmFsdWUYCSABKAlIBYgBARIRCgR0ZXh0GAogASgJSAaIAQESGAoLZmlyZV9ldmVudHMYCyABKAhIB4gBAUISChBfYmFja2VuZF9ub2RlX2lkQgsKCV9zZWxlY3RvckIQCg5fanNfZXhwcmVzc2lvbkILCglfZnJhbWVfaWRCCAoGX2luZGV4QggKBl92YWx1ZUIHCgVfdGV4dEIOCgxfZmlyZV9ldmVudHMi7wEKD1Njcm9sbFRvUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRIcCg9iYWNrZW5kX25vZGVfaWQYBCABKAVIAIgBARIVCghzZWxlY3RvchgFIAEoCUgBiAEBEhoKDWpzX2V4cHJlc3Npb24YBiABKAlIAogBARIVCghmcmFtZV9pZBgHIAEoCUgDiAEBQhIKEF9iYWNrZW5kX25vZGVfaWRCCwoJX3NlbGVjdG9yQhAKDl9qc19leHByZXNzaW9uQgsKCV9mcmFtZV9pZCKZAgoNTW92ZVRvUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRIcCg9iYWNrZW5kX25vZGVfaWQYBCABKAVIAIgBARIVCghzZWxlY3RvchgFIAEoCUgBiAEBEhoKDWpzX2V4cHJlc3Npb24YBiABKAlIAogBARIVCghmcmFtZV9pZBgHIAEoCUgDiAEBEg4KAXgYCCABKAFIBIgBARIOCgF5GAkgASgBSAWIAQFCEgoQX2JhY2tlbmRfbm9kZV9pZEILCglfc2VsZWN0b3JCEAoOX2pzX2V4cHJlc3Npb25CCwoJX2ZyYW1lX2lkQgQKAl94QgQKAl95IoIDCgxDbGlja1JlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSHAoPYmFja2VuZF9ub2RlX2lkGAQgASgFSACIAQESFQoIc2VsZWN0b3IYBSABKAlIAYgBARIaCg1qc19leHByZXNzaW9uGAYgASgJSAKIAQESFQoIZnJhbWVfaWQYByABKAlIA4gBARITCgZidXR0b24YCCABKAlIBIgBARIYCgtjbGlja19jb3VudBgJIAEoBUgFiAEBEg4KAXgYCiABKAFIBogBARIOCgF5GAsgASgBSAeIAQESEwoGYWN0aW9uGAwgASgJSAiIAQFCEgoQX2JhY2tlbmRfbm9kZV9pZEILCglfc2VsZWN0b3JCEAoOX2pzX2V4cHJlc3Npb25CCwoJX2ZyYW1lX2lkQgkKB19idXR0b25CDgoMX2NsaWNrX2NvdW50QgQKAl94QgQKAl95QgkKB19hY3Rpb24igwMKC0RyYWdSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRIPCgdwYWdlX2lkGAMgASgJEhwKD2JhY2tlbmRfbm9kZV9pZBgEIAEoBUgAiAEBEhUKCHNlbGVjdG9yGAUgASgJSAGIAQESGgoNanNfZXhwcmVzc2lvbhgGIAEoCUgCiAEBEhUKCGZyYW1lX2lkGAcgASgJSAOIAQESFQoIb2Zmc2V0X3gYCCABKAFIBIgBARIVCghvZmZzZXRfeRgJIAEoAUgFiAEBEhcKCmFic29sdXRlX3gYCiABKAFIBogBARIXCgphYnNvbHV0ZV95GAsgASgBSAeIAQFCEgoQX2JhY2tlbmRfbm9kZV9pZEILCglfc2VsZWN0b3JCEAoOX2pzX2V4cHJlc3Npb25CCwoJX2ZyYW1lX2lkQgsKCV9vZmZzZXRfeEILCglfb2Zmc2V0X3lCDQoLX2Fic29sdXRlX3hCDQoLX2Fic29sdXRlX3kiowIKC0ZpbGxSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRIPCgdwYWdlX2lkGAMgASgJEhwKD2JhY2tlbmRfbm9kZV9pZBgEIAEoBUgAiAEBEhUKCHNlbGVjdG9yGAUgASgJSAGIAQESGgoNanNfZXhwcmVzc2lvbhgGIAEoCUgCiAEBEhUKCGZyYW1lX2lkGAcgASgJSAOIAQESDAoEdGV4dBgIIAEoCRIYCgtjbGVhcl9maXJzdBgJIAEoCEgEiAEBQhIKEF9iYWNrZW5kX25vZGVfaWRCCwoJX3NlbGVjdG9yQhAKDl9qc19leHByZXNzaW9uQgsKCV9mcmFtZV9pZEIOCgxfY2xlYXJfZmlyc3QiTAoTU2V0QmxvY2tMaXN0UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSEAoIcGF0dGVybnMYAyADKAkiYQoVU2V0U3RhdGljUGF0aHNSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRIQCghwYXR0ZXJucxgDIAMoCRIRCglibG9iX25hbWUYBCABKAkiiAEKGFdhaXRGb3JBbnlSZXF1ZXN0UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSEAoIcGF0dGVybnMYAyADKAkSEwoLYWJvcnRfZmxhZ3MYBCADKAUSFAoHdGltZW91dBgFIAEoAUgAiAEBQgoKCF90aW1lb3V0ImAKGVdhaXRGb3JBbnlSZXF1ZXN0UmVzcG9uc2USDQoFaW5kZXgYASABKAUSNAoHcmVxdWVzdBgCIAEoCzIjLmJyb3dzZXJzY2FsZS52MS5JbnRlcmNlcHRlZFJlcXVlc3QiiQEKGVdhaXRGb3JBbnlSZXNwb25zZVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEhAKCHBhdHRlcm5zGAMgAygJEhMKC2Fib3J0X2ZsYWdzGAQgAygFEhQKB3RpbWVvdXQYBSABKAFIAIgBAUIKCghfdGltZW91dCJjChpXYWl0Rm9yQW55UmVzcG9uc2VSZXNwb25zZRINCgVpbmRleBgBIAEoBRI2CghyZXNwb25zZRgCIAEoCzIkLmJyb3dzZXJzY2FsZS52MS5JbnRlcmNlcHRlZFJlc3BvbnNlIsoBChRNb2RpZnlSZXF1ZXN0UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSEwoLdXJsX3BhdHRlcm4YAyABKAkSOgoNbW9kaWZpY2F0aW9ucxgEIAMoCzIjLmJyb3dzZXJzY2FsZS52MS5IZWFkZXJNb2RpZmljYXRpb24SEQoEYm9keRgFIAEoCUgAiAEBEhQKB3RpbWVvdXQYBiABKAFIAYgBAUIHCgVfYm9keUIKCghfdGltZW91dCJNChVNb2RpZnlSZXF1ZXN0UmVzcG9uc2USNAoHcmVxdWVzdBgBIAEoCzIjLmJyb3dzZXJzY2FsZS52MS5JbnRlcmNlcHRlZFJlcXVlc3QiOAoRR2V0Q29va2llc1JlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJIkMKEkdldENvb2tpZXNSZXNwb25zZRItCgdjb29raWVzGAEgAygLMhwuYnJvd3NlcnNjYWxlLnYxLkNvb2tpZVBhcmFtImcKEVNldENvb2tpZXNSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRItCgdjb29raWVzGAMgAygLMhwuYnJvd3NlcnNjYWxlLnYxLkNvb2tpZVBhcmFtIjoKE0NsZWFyQ29va2llc1JlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJIikKC1N0b3JhZ2VJdGVtEgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCSJRChJTdG9yYWdlT3JpZ2luRW50cnkSDgoGb3JpZ2luGAEgASgJEisKBWl0ZW1zGAIgAygLMhwuYnJvd3NlcnNjYWxlLnYxLlN0b3JhZ2VJdGVtIlgKEUdldFN0b3JhZ2VSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRITCgZvcmlnaW4YAyABKAlIAIgBAUIJCgdfb3JpZ2luIkoKEkdldFN0b3JhZ2VSZXNwb25zZRI0CgdzdG9yYWdlGAEgAygLMiMuYnJvd3NlcnNjYWxlLnYxLlN0b3JhZ2VPcmlnaW5FbnRyeSKYAQoRU2V0U3RvcmFnZVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEjQKB3N0b3JhZ2UYAyADKAsyIy5icm93c2Vyc2NhbGUudjEuU3RvcmFnZU9yaWdpbkVudHJ5EhgKC2NsZWFyX2ZpcnN0GAQgASgISACIAQFCDgoMX2NsZWFyX2ZpcnN0IloKE0NsZWFyU3RvcmFnZVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEhMKBm9yaWdpbhgDIAEoCUgAiAEBQgkKB19vcmlnaW4ihwEKDUdldERPTVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSFQoIZnJhbWVfaWQYBCABKAlIAIgBARISCgVkZXB0aBgFIAEoBUgBiAEBQgsKCV9mcmFtZV9pZEIICgZfZGVwdGgiHQoOR2V0RE9NUmVzcG9uc2USCwoDZG9tGAEgASgJIr8BChVHZXRPYnNlcnZhdGlvblJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSIwoWbWF4X2VsZW1lbnRzX3Blcl9mcmFtZRgEIAEoBUgAiAEBEhwKD21heF90ZXh0X2xlbmd0aBgFIAEoBUgBiAEBQhkKF19tYXhfZWxlbWVudHNfcGVyX2ZyYW1lQhIKEF9tYXhfdGV4dF9sZW5ndGgiTAoWR2V0T2JzZXJ2YXRpb25SZXNwb25zZRIYChBvYnNlcnZhdGlvbl90ZXh0GAEgASgJEhgKEG9ic2VydmF0aW9uX2pzb24YAiABKAkibQoRR2V0RE9NSGFzaFJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSFQoIZnJhbWVfaWQYBCABKAlIAIgBAUILCglfZnJhbWVfaWQiIgoSR2V0RE9NSGFzaFJlc3BvbnNlEgwKBGhhc2gYASABKAkiZgoYSW5zcGVjdEF0UG9zaXRpb25SZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRIPCgdwYWdlX2lkGAMgASgJEgkKAXgYBCABKAESCQoBeRgFIAEoASKpAQoZSW5zcGVjdEF0UG9zaXRpb25SZXNwb25zZRIXCg9iYWNrZW5kX25vZGVfaWQYASABKAUSEAoIZnJhbWVfaWQYAiABKAkSEAoIdGFnX25hbWUYAyABKAkSFAoMdGV4dF9jb250ZW50GAQgASgJEhIKCmlzX3Zpc2libGUYBSABKAgSJQoGYm91bmRzGAYgASgLMhUuYnJvd3NlcnNjYWxlLnYxLlJlY3QiiQEKFEhpZ2hsaWdodE5vZGVSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRIPCgdwYWdlX2lkGAMgASgJEhcKD2JhY2tlbmRfbm9kZV9pZBgEIAEoBRIVCghmcmFtZV9pZBgFIAEoCUgAiAEBQgsKCV9mcmFtZV9pZCJXChFJbnNlcnRUZXh0UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRIMCgR0ZXh0GAQgASgJIroBCg9QcmVzc0tleVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSCwoDa2V5GAQgASgJEhEKBGNvZGUYBSABKAlIAIgBARIWCgltb2RpZmllcnMYBiABKAVIAYgBARIVCghsb2NhdGlvbhgHIAEoBUgCiAEBQgcKBV9jb2RlQgwKCl9tb2RpZmllcnNCCwoJX2xvY2F0aW9uIrwBChFSZWxlYXNlS2V5UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRILCgNrZXkYBCABKAkSEQoEY29kZRgFIAEoCUgAiAEBEhYKCW1vZGlmaWVycxgGIAEoBUgBiAEBEhUKCGxvY2F0aW9uGAcgASgFSAKIAQFCBwoFX2NvZGVCDAoKX21vZGlmaWVyc0ILCglfbG9jYXRpb24iSwoTR2V0U2VsZWN0aW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCSIkChRHZXRTZWxlY3Rpb25SZXNwb25zZRIMCgR0ZXh0GAEgASgJIosBChFTY3JlZW5zaG90UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRITCgZmb3JtYXQYBCABKAlIAIgBARIUCgdxdWFsaXR5GAUgASgFSAGIAQFCCQoHX2Zvcm1hdEIKCghfcXVhbGl0eSJIChJTY3JlZW5zaG90UmVzcG9uc2USEwoLZGF0YV9iYXNlNjQYASABKAkSDQoFd2lkdGgYAiABKAUSDgoGaGVpZ2h0GAMgASgFIpMDChFSZWFkQ2FudmFzUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRIcCg9iYWNrZW5kX25vZGVfaWQYBCABKAVIAIgBARIVCghzZWxlY3RvchgFIAEoCUgBiAEBEhoKDWpzX2V4cHJlc3Npb24YBiABKAlIAogBARIVCghmcmFtZV9pZBgHIAEoCUgDiAEBEhMKBmZvcm1hdBgIIAEoCUgEiAEBEhQKB3F1YWxpdHkYCSABKAVIBYgBARIPCgJzeBgKIAEoBUgGiAEBEg8KAnN5GAsgASgFSAeIAQESDwoCc3cYDCABKAVICIgBARIPCgJzaBgNIAEoBUgJiAEBQhIKEF9iYWNrZW5kX25vZGVfaWRCCwoJX3NlbGVjdG9yQhAKDl9qc19leHByZXNzaW9uQgsKCV9mcmFtZV9pZEIJCgdfZm9ybWF0QgoKCF9xdWFsaXR5QgUKA19zeEIFCgNfc3lCBQoDX3N3QgUKA19zaCKaAQoSUmVhZENhbnZhc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSEAoIZnJhbWVfaWQYAiABKAkSFwoPYmFja2VuZF9ub2RlX2lkGAMgASgFEhMKC2RhdGFfYmFzZTY0GAQgASgJEg0KBXdpZHRoGAUgASgFEg4KBmhlaWdodBgGIAEoBRIUCgxvcmlnaW5fY2xlYW4YByABKAgiZAoTU29sdmVDYXB0Y2hhUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSEgoKdGltZW91dF9tcxgDIAEoBRIUCgxyZXRyeV9hbW91bnQYBCABKAUiJgoUU29sdmVDYXB0Y2hhUmVzcG9uc2USDgoGcmVzdWx0GAEgASgJMo8XCgdCcm93c2VyEkQKCFNldFByb3h5EiAuYnJvd3NlcnNjYWxlLnYxLlNldFByb3h5UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJPCghHZXRQYWdlcxIgLmJyb3dzZXJzY2FsZS52MS5HZXRQYWdlc1JlcXVlc3QaIS5icm93c2Vyc2NhbGUudjEuR2V0UGFnZXNSZXNwb25zZRJPCghOYXZpZ2F0ZRIgLmJyb3dzZXJzY2FsZS52MS5OYXZpZ2F0ZVJlcXVlc3QaIS5icm93c2Vyc2NhbGUudjEuTmF2aWdhdGVSZXNwb25zZRJECghMb2FkSFRNTBIgLmJyb3dzZXJzY2FsZS52MS5Mb2FkSFRNTFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSTwoIRXZhbHVhdGUSIC5icm93c2Vyc2NhbGUudjEuRXZhbHVhdGVSZXF1ZXN0GiEuYnJvd3NlcnNjYWxlLnYxLkV2YWx1YXRlUmVzcG9uc2USQAoDUnVuEhsuYnJvd3NlcnNjYWxlLnYxLlJ1blJlcXVlc3QaHC5icm93c2Vyc2NhbGUudjEuUnVuUmVzcG9uc2USTAoKV2FpdEZvckFueRIhLmJyb3dzZXJzY2FsZS52MS5XYWl0Rm9yQW55UGFyYW1zGhsuYnJvd3NlcnNjYWxlLnYxLldhaXRSZXN1bHQSWQoMU2VsZWN0T3B0aW9uEiQuYnJvd3NlcnNjYWxlLnYxLlNlbGVjdE9wdGlvblJlcXVlc3QaIy5icm93c2Vyc2NhbGUudjEuU2VsZWN0T3B0aW9uUmVzdWx0EksKCFNjcm9sbFRvEiAuYnJvd3NlcnNjYWxlLnYxLlNjcm9sbFRvUmVxdWVzdBodLmJyb3dzZXJzY2FsZS52MS5TY3JvbGxSZXN1bHQSRQoGTW92ZVRvEh4uYnJvd3NlcnNjYWxlLnYxLk1vdmVUb1JlcXVlc3QaGy5icm93c2Vyc2NhbGUudjEuTW92ZVJlc3VsdBJECgVDbGljaxIdLmJyb3dzZXJzY2FsZS52MS5DbGlja1JlcXVlc3QaHC5icm93c2Vyc2NhbGUudjEuQ2xpY2tSZXN1bHQSQQoERHJhZxIcLmJyb3dzZXJzY2FsZS52MS5EcmFnUmVxdWVzdBobLmJyb3dzZXJzY2FsZS52MS5EcmFnUmVzdWx0EkEKBEZpbGwSHC5icm93c2Vyc2NhbGUudjEuRmlsbFJlcXVlc3QaGy5icm93c2Vyc2NhbGUudjEuRmlsbFJlc3VsdBJMCgxTZXRCbG9ja0xpc3QSJC5icm93c2Vyc2NhbGUudjEuU2V0QmxvY2tMaXN0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJQCg5TZXRTdGF0aWNQYXRocxImLmJyb3dzZXJzY2FsZS52MS5TZXRTdGF0aWNQYXRoc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSagoRV2FpdEZvckFueVJlcXVlc3QSKS5icm93c2Vyc2NhbGUudjEuV2FpdEZvckFueVJlcXVlc3RSZXF1ZXN0GiouYnJvd3NlcnNjYWxlLnYxLldhaXRGb3JBbnlSZXF1ZXN0UmVzcG9uc2USbQoSV2FpdEZvckFueVJlc3BvbnNlEiouYnJvd3NlcnNjYWxlLnYxLldhaXRGb3JBbnlSZXNwb25zZVJlcXVlc3QaKy5icm93c2Vyc2NhbGUudjEuV2FpdEZvckFueVJlc3BvbnNlUmVzcG9uc2USXgoNTW9kaWZ5UmVxdWVzdBIlLmJyb3dzZXJzY2FsZS52MS5Nb2RpZnlSZXF1ZXN0UmVxdWVzdBomLmJyb3dzZXJzY2FsZS52MS5Nb2RpZnlSZXF1ZXN0UmVzcG9uc2USVQoKR2V0Q29va2llcxIiLmJyb3dzZXJzY2FsZS52MS5HZXRDb29raWVzUmVxdWVzdBojLmJyb3dzZXJzY2FsZS52MS5HZXRDb29raWVzUmVzcG9uc2USSAoKU2V0Q29va2llcxIiLmJyb3dzZXJzY2FsZS52MS5TZXRDb29raWVzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJMCgxDbGVhckNvb2tpZXMSJC5icm93c2Vyc2NhbGUudjEuQ2xlYXJDb29raWVzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJVCgpHZXRTdG9yYWdlEiIuYnJvd3NlcnNjYWxlLnYxLkdldFN0b3JhZ2VSZXF1ZXN0GiMuYnJvd3NlcnNjYWxlLnYxLkdldFN0b3JhZ2VSZXNwb25zZRJICgpTZXRTdG9yYWdlEiIuYnJvd3NlcnNjYWxlLnYxLlNldFN0b3JhZ2VSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkwKDENsZWFyU3RvcmFnZRIkLmJyb3dzZXJzY2FsZS52MS5DbGVhclN0b3JhZ2VSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkkKBkdldERPTRIeLmJyb3dzZXJzY2FsZS52MS5HZXRET01SZXF1ZXN0Gh8uYnJvd3NlcnNjYWxlLnYxLkdldERPTVJlc3BvbnNlElUKCkdldERPTUhhc2gSIi5icm93c2Vyc2NhbGUudjEuR2V0RE9NSGFzaFJlcXVlc3QaIy5icm93c2Vyc2NhbGUudjEuR2V0RE9NSGFzaFJlc3BvbnNlEmEKDkdldE9ic2VydmF0aW9uEiYuYnJvd3NlcnNjYWxlLnYxLkdldE9ic2VydmF0aW9uUmVxdWVzdBonLmJyb3dzZXJzY2FsZS52MS5HZXRPYnNlcnZhdGlvblJlc3BvbnNlEmoKEUluc3BlY3RBdFBvc2l0aW9uEikuYnJvd3NlcnNjYWxlLnYxLkluc3BlY3RBdFBvc2l0aW9uUmVxdWVzdBoqLmJyb3dzZXJzY2FsZS52MS5JbnNwZWN0QXRQb3NpdGlvblJlc3BvbnNlEk4KDUhpZ2hsaWdodE5vZGUSJS5icm93c2Vyc2NhbGUudjEuSGlnaGxpZ2h0Tm9kZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSVQoKU2NyZWVuc2hvdBIiLmJyb3dzZXJzY2FsZS52MS5TY3JlZW5zaG90UmVxdWVzdBojLmJyb3dzZXJzY2FsZS52MS5TY3JlZW5zaG90UmVzcG9uc2USVQoKUmVhZENhbnZhcxIiLmJyb3dzZXJzY2FsZS52MS5SZWFkQ2FudmFzUmVxdWVzdBojLmJyb3dzZXJzY2FsZS52MS5SZWFkQ2FudmFzUmVzcG9uc2USSAoKSW5zZXJ0VGV4dBIiLmJyb3dzZXJzY2FsZS52MS5JbnNlcnRUZXh0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJECghQcmVzc0tleRIgLmJyb3dzZXJzY2FsZS52MS5QcmVzc0tleVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSSAoKUmVsZWFzZUtleRIiLmJyb3dzZXJzY2FsZS52MS5SZWxlYXNlS2V5UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJbCgxHZXRTZWxlY3Rpb24SJC5icm93c2Vyc2NhbGUudjEuR2V0U2VsZWN0aW9uUmVxdWVzdBolLmJyb3dzZXJzY2FsZS52MS5HZXRTZWxlY3Rpb25SZXNwb25zZRJbCgxTb2x2ZUNhcHRjaGESJC5icm93c2Vyc2NhbGUudjEuU29sdmVDYXB0Y2hhUmVxdWVzdBolLmJyb3dzZXJzY2FsZS52MS5Tb2x2ZUNhcHRjaGFSZXNwb25zZUIzWjFnaXRodWIuY29tL2Jyb3dzZXJzY2FsZS9icm93c2Vyc2NhbGUtZ28vZ2VuZXJhdGVkYgZwcm90bzM", [file_google_protobuf_empty]);
3803
3803
  var HeaderSchema = /* @__PURE__ */ messageDesc(file_wrc, 3);
3804
3804
  var HeaderModificationSchema = /* @__PURE__ */ messageDesc(file_wrc, 6);
3805
3805
  var CookiePartitionKeySchema = /* @__PURE__ */ messageDesc(file_wrc, 7);
3806
3806
  var CookieParamSchema = /* @__PURE__ */ messageDesc(file_wrc, 8);
3807
3807
  var WaitConditionSchema = /* @__PURE__ */ messageDesc(file_wrc, 9);
3808
- var SetProxyRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 14);
3809
- var GetPagesRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 15);
3810
- var NavigateRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 17);
3811
- var LoadHTMLRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 19);
3812
- var EvaluateRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 20);
3813
- var WaitForAnyParamsSchema = /* @__PURE__ */ messageDesc(file_wrc, 22);
3814
- var SelectOptionRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 23);
3815
- var ScrollToRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 24);
3816
- var MoveToRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 25);
3817
- var ClickRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 26);
3818
- var DragRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 27);
3819
- var FillRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 28);
3820
- var SetBlockListRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 29);
3821
- var SetStaticPathsRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 30);
3822
- var WaitForAnyRequestRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 31);
3823
- var WaitForAnyResponseRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 33);
3824
- var ModifyRequestRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 35);
3825
- var GetCookiesRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 37);
3826
- var SetCookiesRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 39);
3827
- var ClearCookiesRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 40);
3828
- var StorageItemSchema = /* @__PURE__ */ messageDesc(file_wrc, 41);
3829
- var StorageOriginEntrySchema = /* @__PURE__ */ messageDesc(file_wrc, 42);
3830
- var GetStorageRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 43);
3831
- var SetStorageRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 45);
3832
- var ClearStorageRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 46);
3833
- var GetDOMRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 47);
3834
- var GetObservationRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 49);
3835
- var GetDOMHashRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 51);
3836
- var InspectAtPositionRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 53);
3837
- var HighlightNodeRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 55);
3838
- var InsertTextRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 56);
3839
- var PressKeyRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 57);
3840
- var ReleaseKeyRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 58);
3841
- var GetSelectionRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 59);
3842
- var ScreenshotRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 61);
3843
- var ReadCanvasRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 63);
3844
- var SolveCaptchaRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 65);
3808
+ var SetProxyRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 27);
3809
+ var GetPagesRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 28);
3810
+ var NavigateRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 30);
3811
+ var LoadHTMLRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 32);
3812
+ var EvaluateRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 33);
3813
+ var WaitForAnyParamsSchema = /* @__PURE__ */ messageDesc(file_wrc, 37);
3814
+ var SelectOptionRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 38);
3815
+ var ScrollToRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 39);
3816
+ var MoveToRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 40);
3817
+ var ClickRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 41);
3818
+ var DragRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 42);
3819
+ var FillRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 43);
3820
+ var SetBlockListRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 44);
3821
+ var SetStaticPathsRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 45);
3822
+ var WaitForAnyRequestRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 46);
3823
+ var WaitForAnyResponseRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 48);
3824
+ var ModifyRequestRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 50);
3825
+ var GetCookiesRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 52);
3826
+ var SetCookiesRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 54);
3827
+ var ClearCookiesRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 55);
3828
+ var StorageItemSchema = /* @__PURE__ */ messageDesc(file_wrc, 56);
3829
+ var StorageOriginEntrySchema = /* @__PURE__ */ messageDesc(file_wrc, 57);
3830
+ var GetStorageRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 58);
3831
+ var SetStorageRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 60);
3832
+ var ClearStorageRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 61);
3833
+ var GetDOMRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 62);
3834
+ var GetObservationRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 64);
3835
+ var GetDOMHashRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 66);
3836
+ var InspectAtPositionRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 68);
3837
+ var HighlightNodeRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 70);
3838
+ var InsertTextRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 71);
3839
+ var PressKeyRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 72);
3840
+ var ReleaseKeyRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 73);
3841
+ var GetSelectionRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 74);
3842
+ var ScreenshotRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 76);
3843
+ var ReadCanvasRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 78);
3844
+ var SolveCaptchaRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 80);
3845
3845
  var Browser = /* @__PURE__ */ serviceDesc(file_wrc, 0);
3846
3846
 
3847
3847
  // src/defaults.ts
@@ -3857,6 +3857,71 @@ var BrowserScaleError = class extends Error {
3857
3857
  this.name = "BrowserScaleError";
3858
3858
  }
3859
3859
  };
3860
+ var ClickError = class extends BrowserScaleError {
3861
+ constructor(init) {
3862
+ super(formatMessage("click", init.code, init.message));
3863
+ this.name = "ClickError";
3864
+ this.code = init.code;
3865
+ this.occluder = init.occluder;
3866
+ this.evadeAttempted = init.evadeAttempted ?? false;
3867
+ this.result = init.result;
3868
+ }
3869
+ };
3870
+ var FillError = class extends BrowserScaleError {
3871
+ constructor(init) {
3872
+ super(formatMessage("fill", init.code, init.message));
3873
+ this.name = "FillError";
3874
+ this.code = init.code;
3875
+ this.clickError = init.clickError;
3876
+ this.result = init.result;
3877
+ }
3878
+ };
3879
+ var DragError = class extends BrowserScaleError {
3880
+ constructor(init) {
3881
+ super(formatMessage("drag", init.code, init.message));
3882
+ this.name = "DragError";
3883
+ this.code = init.code;
3884
+ this.clickError = init.clickError;
3885
+ this.result = init.result;
3886
+ }
3887
+ };
3888
+ var ScrollError = class extends BrowserScaleError {
3889
+ constructor(init) {
3890
+ super(formatMessage("scrollTo", init.code, init.message));
3891
+ this.name = "ScrollError";
3892
+ this.code = init.code;
3893
+ this.result = init.result;
3894
+ }
3895
+ };
3896
+ var MoveError = class extends BrowserScaleError {
3897
+ constructor(init) {
3898
+ super(formatMessage("moveTo", init.code, init.message));
3899
+ this.name = "MoveError";
3900
+ this.code = init.code;
3901
+ this.result = init.result;
3902
+ }
3903
+ };
3904
+ var SelectOptionError = class extends BrowserScaleError {
3905
+ constructor(init) {
3906
+ super(formatMessage("selectOption", init.code, init.message));
3907
+ this.name = "SelectOptionError";
3908
+ this.code = init.code;
3909
+ this.result = init.result;
3910
+ }
3911
+ };
3912
+ var WaitError = class extends BrowserScaleError {
3913
+ constructor(init) {
3914
+ super(formatMessage("wait", init.code, init.message));
3915
+ this.name = "WaitError";
3916
+ this.code = init.code;
3917
+ this.conditions = init.conditions;
3918
+ this.result = init.result;
3919
+ }
3920
+ };
3921
+ function formatMessage(action, code, message) {
3922
+ const base = `${action} failed: ${code}`;
3923
+ return message ? `${base}: ${message}` : base;
3924
+ }
3860
3925
 
3861
3926
  // src/locator.ts
3862
3927
  var AllFrames = "ALL_FRAMES";
@@ -4027,19 +4092,84 @@ function rectFromProto(r) {
4027
4092
  if (!r) return { x: 0, y: 0, width: 0, height: 0 };
4028
4093
  return { x: r.x, y: r.y, width: r.width, height: r.height };
4029
4094
  }
4030
- function elementResultFromProto(r) {
4095
+ function elementResult(r, isVisible, bounds, rootX, rootY) {
4031
4096
  return {
4032
4097
  success: r.success,
4033
4098
  frameId: r.frameId,
4034
4099
  backendNodeId: r.backendNodeId,
4035
- isVisible: r.isVisible,
4036
- bounds: rectFromProto(r.bounds),
4037
- rootX: r.rootX,
4038
- rootY: r.rootY
4100
+ isVisible,
4101
+ bounds,
4102
+ rootX,
4103
+ rootY
4039
4104
  };
4040
4105
  }
4041
- function dragResultFromProto(r) {
4106
+ function occluderFromProto(o) {
4107
+ if (!o) return void 0;
4042
4108
  return {
4109
+ backendNodeId: o.backendNodeId,
4110
+ frameId: o.frameId,
4111
+ tagName: o.tagName,
4112
+ id: o.id ?? "",
4113
+ className: o.className ?? "",
4114
+ text: o.text ?? "",
4115
+ bounds: rectFromProto(o.bounds),
4116
+ pointerEvents: o.pointerEvents ?? "",
4117
+ visibility: o.visibility ?? "",
4118
+ opacity: o.opacity ?? 0,
4119
+ zIndex: o.zIndex ?? "",
4120
+ hittableWhileInvisible: o.hittableWhileInvisible ?? false
4121
+ };
4122
+ }
4123
+ function clickDetailFromProto(e) {
4124
+ if (!e) return void 0;
4125
+ return new ClickError({
4126
+ code: e.code,
4127
+ message: e.message,
4128
+ occluder: occluderFromProto(e.occluder),
4129
+ evadeAttempted: e.evadeAttempted ?? false
4130
+ });
4131
+ }
4132
+ function unwrapClick(r) {
4133
+ const res = elementResult(r, r.isVisible, rectFromProto(r.bounds), r.rootX, r.rootY);
4134
+ if (!r.success && r.error) {
4135
+ throw new ClickError({
4136
+ code: r.error.code,
4137
+ message: r.error.message,
4138
+ occluder: occluderFromProto(r.error.occluder),
4139
+ evadeAttempted: r.error.evadeAttempted ?? false,
4140
+ result: res
4141
+ });
4142
+ }
4143
+ return res;
4144
+ }
4145
+ function unwrapFill(r) {
4146
+ const res = elementResult(r, false, rectFromProto(void 0), r.rootX, r.rootY);
4147
+ if (!r.success && r.error) {
4148
+ throw new FillError({
4149
+ code: r.error.code,
4150
+ message: r.error.message,
4151
+ clickError: clickDetailFromProto(r.error.clickError),
4152
+ result: res
4153
+ });
4154
+ }
4155
+ return res;
4156
+ }
4157
+ function unwrapMove(r) {
4158
+ const res = elementResult(r, r.isVisible, rectFromProto(r.bounds), r.rootX, r.rootY);
4159
+ if (!r.success && r.error) {
4160
+ throw new MoveError({ code: r.error.code, message: r.error.message, result: res });
4161
+ }
4162
+ return res;
4163
+ }
4164
+ function unwrapScroll(r) {
4165
+ const res = elementResult(r, r.isVisible, rectFromProto(r.bounds), 0, 0);
4166
+ if (!r.success && r.error) {
4167
+ throw new ScrollError({ code: r.error.code, message: r.error.message, result: res });
4168
+ }
4169
+ return res;
4170
+ }
4171
+ function unwrapDrag(r) {
4172
+ const res = {
4043
4173
  success: r.success,
4044
4174
  frameId: r.frameId,
4045
4175
  backendNodeId: r.backendNodeId,
@@ -4048,15 +4178,55 @@ function dragResultFromProto(r) {
4048
4178
  endX: r.endX,
4049
4179
  endY: r.endY
4050
4180
  };
4181
+ if (!r.success && r.error) {
4182
+ throw new DragError({
4183
+ code: r.error.code,
4184
+ message: r.error.message,
4185
+ clickError: clickDetailFromProto(r.error.clickError),
4186
+ result: res
4187
+ });
4188
+ }
4189
+ return res;
4051
4190
  }
4052
- function waitResultFromProto(r) {
4191
+ function unwrapSelect(r) {
4192
+ const res = {
4193
+ selectedIndex: r.selectedIndex,
4194
+ selectedValue: r.selectedValue,
4195
+ selectedText: r.selectedText
4196
+ };
4197
+ if (!r.success && r.error) {
4198
+ throw new SelectOptionError({ code: r.error.code, message: r.error.message, result: res });
4199
+ }
4200
+ return res;
4201
+ }
4202
+ function waitConditionStatusFromProto(c) {
4053
4203
  return {
4204
+ index: c.index,
4205
+ state: c.state,
4206
+ backendNodeId: c.backendNodeId,
4207
+ frameId: c.frameId,
4208
+ isVisible: c.isVisible,
4209
+ bounds: c.bounds ? rectFromProto(c.bounds) : void 0,
4210
+ occluder: occluderFromProto(c.occluder)
4211
+ };
4212
+ }
4213
+ function unwrapWait(r) {
4214
+ const res = {
4054
4215
  index: r.index,
4055
4216
  frameId: r.frameId,
4056
4217
  backendNodeId: r.backendNodeId,
4057
4218
  isVisible: r.isVisible,
4058
4219
  bounds: rectFromProto(r.bounds)
4059
4220
  };
4221
+ if (r.error) {
4222
+ throw new WaitError({
4223
+ code: r.error.code,
4224
+ message: r.error.message,
4225
+ conditions: r.error.conditions.map(waitConditionStatusFromProto),
4226
+ result: res
4227
+ });
4228
+ }
4229
+ return res;
4060
4230
  }
4061
4231
  function frameInfoFromProto(f) {
4062
4232
  return {
@@ -4474,7 +4644,10 @@ var CloudBrowser = class {
4474
4644
  *
4475
4645
  * @returns WaitResult for the first matching condition
4476
4646
  *
4477
- * @throws UNKNOWN_ERROR - the wait timed out or a condition was invalid
4647
+ * @throws {@link WaitError} - no condition matched before the deadline;
4648
+ * `.conditions` holds the per-condition breakdown of why each never matched
4649
+ * @throws {@link BrowserScaleError} - a condition was invalid, or a
4650
+ * server/transport error occurred
4478
4651
  *
4479
4652
  * @example
4480
4653
  * const r = await browser.waitAny(
@@ -4514,8 +4687,7 @@ var CloudBrowser = class {
4514
4687
  timeout: opts?.timeoutMs ?? DefaultWaitTimeoutMs
4515
4688
  });
4516
4689
  if (frameId) req.frameId = frameId;
4517
- const resp = await this.client.waitForAny(req);
4518
- return waitResultFromProto(resp);
4690
+ return unwrapWait(await this.client.waitForAny(req));
4519
4691
  }
4520
4692
  // ──────────────────────────────────────────────────────────────────
4521
4693
  // Element actions
@@ -4538,15 +4710,18 @@ var CloudBrowser = class {
4538
4710
  * post-scroll isVisible, element bounds, and the root-viewport
4539
4711
  * (rootX, rootY) where the click landed
4540
4712
  *
4541
- * @throws INVALID_LOCATOR - target is empty or has multiple targets set
4542
- * @throws ELEMENT_NOT_FOUND - no element matched the locator
4543
- * @throws FRAME_NOT_FOUND - the requested frame does not exist
4544
- * @throws CLICK_FAILED - the click could not be dispatched
4545
- * @throws TIMEOUT - the operation exceeded the server-side timeout
4546
- * @throws PAGE_NOT_ALIVE - the page has been closed
4713
+ * @throws {@link ClickError} - the target was found but the click could not
4714
+ * land because another element covered it; `.code`, `.occluder` and
4715
+ * `.result` describe the blocker and the resolved coordinates
4716
+ * @throws {@link BrowserScaleError} - invalid locator, or a server/transport
4717
+ * error (element not found, frame not found, timeout, page closed)
4547
4718
  *
4548
4719
  * @example
4549
- * await browser.click(css("button.submit"));
4720
+ * try {
4721
+ * await browser.click(css("button.submit"));
4722
+ * } catch (e) {
4723
+ * if (e instanceof ClickError) console.log(e.code, e.occluder?.tagName);
4724
+ * }
4550
4725
  *
4551
4726
  * @example
4552
4727
  * // Right double-click on a context menu trigger.
@@ -4562,8 +4737,7 @@ var CloudBrowser = class {
4562
4737
  if (opts?.button) req.button = opts.button;
4563
4738
  if (opts?.clickCount) req.clickCount = opts.clickCount;
4564
4739
  if (opts?.action) req.action = opts.action;
4565
- const resp = await this.client.click(req);
4566
- return elementResultFromProto(resp);
4740
+ return unwrapClick(await this.client.click(req));
4567
4741
  }
4568
4742
  /**
4569
4743
  * Clicks the target and types text into it, appending to any existing
@@ -4584,12 +4758,10 @@ var CloudBrowser = class {
4584
4758
  * @returns ElementResult with success, resolved frameId, backendNodeId
4585
4759
  * and the root-viewport (rootX, rootY) where the element was clicked
4586
4760
  *
4587
- * @throws INVALID_LOCATOR - target is empty or has multiple targets set
4588
- * @throws ELEMENT_NOT_FOUND - no element matched the locator
4589
- * @throws FRAME_NOT_FOUND - the requested frame does not exist
4590
- * @throws FILL_FAILED - the input could not be filled
4591
- * @throws TIMEOUT - the operation exceeded the server-side timeout
4592
- * @throws PAGE_NOT_ALIVE - the page has been closed
4761
+ * @throws {@link FillError} - the field could not be focused/typed; `.code`
4762
+ * and `.clickError` (the underlying click-core failure) describe why
4763
+ * @throws {@link BrowserScaleError} - invalid locator, or a server/transport
4764
+ * error (element not found, frame not found, timeout, page closed)
4593
4765
  *
4594
4766
  * @example
4595
4767
  * await browser.fill(css("input[name=email]"), "user@example.com");
@@ -4607,8 +4779,7 @@ var CloudBrowser = class {
4607
4779
  ...elementFields(target, opts?.inFrame)
4608
4780
  });
4609
4781
  if (opts?.clearFirst) req.clearFirst = true;
4610
- const resp = await this.client.fill(req);
4611
- return elementResultFromProto(resp);
4782
+ return unwrapFill(await this.client.fill(req));
4612
4783
  }
4613
4784
  /**
4614
4785
  * Moves the mouse cursor over the given target.
@@ -4623,7 +4794,9 @@ var CloudBrowser = class {
4623
4794
  * post-scroll isVisible, element bounds and the root-viewport
4624
4795
  * (rootX, rootY) where the cursor ended up
4625
4796
  *
4626
- * @throws UNKNOWN_ERROR - the move could not be completed
4797
+ * @throws {@link MoveError} - the target could not be located (`.code` is
4798
+ * `"not_found"`); `.result` carries the resolved payload
4799
+ * @throws {@link BrowserScaleError} - invalid locator or a server/transport error
4627
4800
  *
4628
4801
  * @example
4629
4802
  * await browser.moveTo(css("nav .menu"));
@@ -4635,8 +4808,7 @@ var CloudBrowser = class {
4635
4808
  apiKey: this.apiKey,
4636
4809
  ...elementFields(target)
4637
4810
  });
4638
- const resp = await this.client.moveTo(req);
4639
- return elementResultFromProto(resp);
4811
+ return unwrapMove(await this.client.moveTo(req));
4640
4812
  }
4641
4813
  /**
4642
4814
  * Scrolls the given element into view.
@@ -4652,7 +4824,9 @@ var CloudBrowser = class {
4652
4824
  * @returns ElementResult with the resolved frameId, backendNodeId,
4653
4825
  * post-scroll isVisible and the element's bounds after the scroll
4654
4826
  *
4655
- * @throws UNKNOWN_ERROR - the element could not be scrolled into view
4827
+ * @throws {@link ScrollError} - the target could not be located/scrolled
4828
+ * (`.code` is `"not_found"`); `.result` carries the resolved payload
4829
+ * @throws {@link BrowserScaleError} - invalid locator or a server/transport error
4656
4830
  *
4657
4831
  * @example
4658
4832
  * await browser.scrollTo(css("#footer"));
@@ -4664,8 +4838,7 @@ var CloudBrowser = class {
4664
4838
  apiKey: this.apiKey,
4665
4839
  ...elementFields(target)
4666
4840
  });
4667
- const resp = await this.client.scrollTo(req);
4668
- return elementResultFromProto(resp);
4841
+ return unwrapScroll(await this.client.scrollTo(req));
4669
4842
  }
4670
4843
  /**
4671
4844
  * Picks up the target and drops it at an offset relative to the pickup
@@ -4683,7 +4856,9 @@ var CloudBrowser = class {
4683
4856
  * @returns DragResult with the resolved frameId, backendNodeId and the
4684
4857
  * final cursor position (rootX, rootY) where the drop happened
4685
4858
  *
4686
- * @throws UNKNOWN_ERROR - the drag could not be performed
4859
+ * @throws {@link DragError} - the source could not be acquired/pressed;
4860
+ * `.code` and `.clickError` describe the underlying click-core failure
4861
+ * @throws {@link BrowserScaleError} - invalid locator or a server/transport error
4687
4862
  *
4688
4863
  * @example
4689
4864
  * await browser.dragBy(css(".slider .handle"), 120, 0);
@@ -4704,7 +4879,9 @@ var CloudBrowser = class {
4704
4879
  * @returns DragResult with the resolved frameId, backendNodeId and the
4705
4880
  * final cursor position (rootX, rootY) where the drop happened
4706
4881
  *
4707
- * @throws UNKNOWN_ERROR - the drag could not be performed
4882
+ * @throws {@link DragError} - the source could not be acquired/pressed;
4883
+ * `.code` and `.clickError` describe the underlying click-core failure
4884
+ * @throws {@link BrowserScaleError} - invalid locator or a server/transport error
4708
4885
  *
4709
4886
  * @example
4710
4887
  * await browser.dragTo(css(".card"), 800, 400);
@@ -4723,8 +4900,7 @@ var CloudBrowser = class {
4723
4900
  if (spec.offsetY !== void 0) req.offsetY = spec.offsetY;
4724
4901
  if (spec.absoluteX !== void 0) req.absoluteX = spec.absoluteX;
4725
4902
  if (spec.absoluteY !== void 0) req.absoluteY = spec.absoluteY;
4726
- const resp = await this.client.drag(req);
4727
- return dragResultFromProto(resp);
4903
+ return unwrapDrag(await this.client.drag(req));
4728
4904
  }
4729
4905
  /**
4730
4906
  * Picks the `<option>` at the zero-based index inside the targeted
@@ -4744,13 +4920,10 @@ var CloudBrowser = class {
4744
4920
  * @returns SelectOptionResult with the resolved selectedIndex,
4745
4921
  * selectedValue and selectedText after the change
4746
4922
  *
4747
- * @throws INVALID_LOCATOR - target is empty or has multiple targets set
4748
- * @throws ELEMENT_NOT_FOUND - no element matched the locator
4749
- * @throws FRAME_NOT_FOUND - the requested frame does not exist
4750
- * @throws SELECT_FAILED - the option could not be selected
4751
- * (out of range, or element is not a `<select>`)
4752
- * @throws TIMEOUT - the operation exceeded the server-side timeout
4753
- * @throws PAGE_NOT_ALIVE - the page has been closed
4923
+ * @throws {@link SelectOptionError} - the option could not be selected;
4924
+ * `.code` is `"not_found"` (no `<select>`) or `"option_not_found"`
4925
+ * @throws {@link BrowserScaleError} - invalid locator, or a server/transport
4926
+ * error (frame not found, timeout, page closed)
4754
4927
  *
4755
4928
  * @example
4756
4929
  * await browser.selectByIndex(css("select#country"), 2);
@@ -4803,12 +4976,7 @@ var CloudBrowser = class {
4803
4976
  });
4804
4977
  withKey(req);
4805
4978
  if (opts?.fireEvents === false) req.fireEvents = false;
4806
- const resp = await this.client.selectOption(req);
4807
- return {
4808
- selectedIndex: resp.selectedIndex,
4809
- selectedValue: resp.selectedValue,
4810
- selectedText: resp.selectedText
4811
- };
4979
+ return unwrapSelect(await this.client.selectOption(req));
4812
4980
  }
4813
4981
  // ──────────────────────────────────────────────────────────────────
4814
4982
  // DOM / observation
@@ -5708,11 +5876,18 @@ export {
5708
5876
  AllFrames,
5709
5877
  BrowserConfig,
5710
5878
  BrowserScaleError,
5879
+ ClickError,
5711
5880
  CloudBrowser,
5712
5881
  DefaultSteadyMs,
5713
5882
  DefaultVisible,
5714
5883
  DefaultWaitTimeoutMs,
5884
+ DragError,
5885
+ FillError,
5715
5886
  Locator,
5887
+ MoveError,
5888
+ ScrollError,
5889
+ SelectOptionError,
5890
+ WaitError,
5716
5891
  WebSocketTransport,
5717
5892
  at,
5718
5893
  createWebSocketBrowser,