aws-sdk-braket 1.13.0 → 1.14.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/VERSION +1 -1
- data/lib/aws-sdk-braket/client.rb +299 -1
- data/lib/aws-sdk-braket/client_api.rb +247 -2
- data/lib/aws-sdk-braket/types.rb +820 -0
- data/lib/aws-sdk-braket.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 800ffd346cd3ef47fa5950b43368a81c8c8f70da301df99e6b20d1fbd5009a9e
|
4
|
+
data.tar.gz: 401e021c9bdb4099fcc14f07b43f13a7f3d41e61a06e5d7d7e56552b52c7373f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c7c966f729b290d6f9dda54254aec12006800331715876ed1e446f995063b859b5926115295335c3a4e91ab454edacc0418170b662453d6a9f1a857849d78311
|
7
|
+
data.tar.gz: 3950af3d3e9aef731519a3663d1d4eb425410ac339944cf02a3d5e2db3bcfa7352417856dfe7ead9d77e93607923750cfaa06076c50a0ded31cfd5dadc3e403e
|
data/CHANGELOG.md
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.14.0
|
@@ -336,6 +336,36 @@ module Aws::Braket
|
|
336
336
|
|
337
337
|
# @!group API Operations
|
338
338
|
|
339
|
+
# Cancels an Amazon Braket job.
|
340
|
+
#
|
341
|
+
# @option params [required, String] :job_arn
|
342
|
+
# The ARN of the Amazon Braket job to cancel.
|
343
|
+
#
|
344
|
+
# @return [Types::CancelJobResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
345
|
+
#
|
346
|
+
# * {Types::CancelJobResponse#cancellation_status #cancellation_status} => String
|
347
|
+
# * {Types::CancelJobResponse#job_arn #job_arn} => String
|
348
|
+
#
|
349
|
+
# @example Request syntax with placeholder values
|
350
|
+
#
|
351
|
+
# resp = client.cancel_job({
|
352
|
+
# job_arn: "JobArn", # required
|
353
|
+
# })
|
354
|
+
#
|
355
|
+
# @example Response structure
|
356
|
+
#
|
357
|
+
# resp.cancellation_status #=> String, one of "CANCELLING", "CANCELLED"
|
358
|
+
# resp.job_arn #=> String
|
359
|
+
#
|
360
|
+
# @see http://docs.aws.amazon.com/goto/WebAPI/braket-2019-09-01/CancelJob AWS API Documentation
|
361
|
+
#
|
362
|
+
# @overload cancel_job(params = {})
|
363
|
+
# @param [Hash] params ({})
|
364
|
+
def cancel_job(params = {}, options = {})
|
365
|
+
req = build_request(:cancel_job, params)
|
366
|
+
req.send_request(options)
|
367
|
+
end
|
368
|
+
|
339
369
|
# Cancels the specified task.
|
340
370
|
#
|
341
371
|
# @option params [required, String] :client_token
|
@@ -373,6 +403,131 @@ module Aws::Braket
|
|
373
403
|
req.send_request(options)
|
374
404
|
end
|
375
405
|
|
406
|
+
# Creates an Amazon Braket job.
|
407
|
+
#
|
408
|
+
# @option params [required, Types::AlgorithmSpecification] :algorithm_specification
|
409
|
+
# Definition of the Amazon Braket job to be created. Specifies the
|
410
|
+
# container image the job uses and information about the Python scripts
|
411
|
+
# used for entry and training.
|
412
|
+
#
|
413
|
+
# @option params [Types::JobCheckpointConfig] :checkpoint_config
|
414
|
+
# Information about the output locations for job checkpoint data.
|
415
|
+
#
|
416
|
+
# @option params [required, String] :client_token
|
417
|
+
# A unique token that guarantees that the call to this API is
|
418
|
+
# idempotent.
|
419
|
+
#
|
420
|
+
# **A suitable default value is auto-generated.** You should normally
|
421
|
+
# not need to pass this option.**
|
422
|
+
#
|
423
|
+
# @option params [required, Types::DeviceConfig] :device_config
|
424
|
+
# The quantum processing unit (QPU) or simulator used to create an
|
425
|
+
# Amazon Braket job.
|
426
|
+
#
|
427
|
+
# @option params [Hash<String,String>] :hyper_parameters
|
428
|
+
# Algorithm-specific parameters used by an Amazon Braket job that
|
429
|
+
# influence the quality of the training job. The values are set with a
|
430
|
+
# string of JSON key:value pairs, where the key is the name of the
|
431
|
+
# hyperparameter and the value is the value of th hyperparameter.
|
432
|
+
#
|
433
|
+
# @option params [Array<Types::InputFileConfig>] :input_data_config
|
434
|
+
# A list of parameters that specify the name and type of input data and
|
435
|
+
# where it is located.
|
436
|
+
#
|
437
|
+
# @option params [required, Types::InstanceConfig] :instance_config
|
438
|
+
# Configuration of the resource instances to use while running the
|
439
|
+
# hybrid job on Amazon Braket.
|
440
|
+
#
|
441
|
+
# @option params [required, String] :job_name
|
442
|
+
# The name of the Amazon Braket job.
|
443
|
+
#
|
444
|
+
# @option params [required, Types::JobOutputDataConfig] :output_data_config
|
445
|
+
# The path to the S3 location where you want to store job artifacts and
|
446
|
+
# the encryption key used to store them.
|
447
|
+
#
|
448
|
+
# @option params [required, String] :role_arn
|
449
|
+
# The Amazon Resource Name (ARN) of an IAM role that Amazon Braket can
|
450
|
+
# assume to perform tasks on behalf of a user. It can access user
|
451
|
+
# resources, run an Amazon Braket job container on behalf of user, and
|
452
|
+
# output resources to the users' s3 buckets.
|
453
|
+
#
|
454
|
+
# @option params [Types::JobStoppingCondition] :stopping_condition
|
455
|
+
# The user-defined criteria that specifies when a job stops running.
|
456
|
+
#
|
457
|
+
# @option params [Hash<String,String>] :tags
|
458
|
+
# A tag object that consists of a key and an optional value, used to
|
459
|
+
# manage metadata for Amazon Braket resources.
|
460
|
+
#
|
461
|
+
# @return [Types::CreateJobResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
462
|
+
#
|
463
|
+
# * {Types::CreateJobResponse#job_arn #job_arn} => String
|
464
|
+
#
|
465
|
+
# @example Request syntax with placeholder values
|
466
|
+
#
|
467
|
+
# resp = client.create_job({
|
468
|
+
# algorithm_specification: { # required
|
469
|
+
# container_image: {
|
470
|
+
# uri: "Uri", # required
|
471
|
+
# },
|
472
|
+
# script_mode_config: {
|
473
|
+
# compression_type: "NONE", # accepts NONE, GZIP
|
474
|
+
# entry_point: "String", # required
|
475
|
+
# s3_uri: "S3Path", # required
|
476
|
+
# },
|
477
|
+
# },
|
478
|
+
# checkpoint_config: {
|
479
|
+
# local_path: "String4096",
|
480
|
+
# s3_uri: "S3Path", # required
|
481
|
+
# },
|
482
|
+
# client_token: "String64", # required
|
483
|
+
# device_config: { # required
|
484
|
+
# device: "String256", # required
|
485
|
+
# },
|
486
|
+
# hyper_parameters: {
|
487
|
+
# "String256" => "HyperParametersValueString",
|
488
|
+
# },
|
489
|
+
# input_data_config: [
|
490
|
+
# {
|
491
|
+
# channel_name: "InputFileConfigChannelNameString", # required
|
492
|
+
# content_type: "String256",
|
493
|
+
# data_source: { # required
|
494
|
+
# s3_data_source: { # required
|
495
|
+
# s3_uri: "S3Path", # required
|
496
|
+
# },
|
497
|
+
# },
|
498
|
+
# },
|
499
|
+
# ],
|
500
|
+
# instance_config: { # required
|
501
|
+
# instance_type: "ml.m4.xlarge", # required, accepts ml.m4.xlarge, ml.m4.2xlarge, ml.m4.4xlarge, ml.m4.10xlarge, ml.m4.16xlarge, ml.g4dn.xlarge, ml.g4dn.2xlarge, ml.g4dn.4xlarge, ml.g4dn.8xlarge, ml.g4dn.12xlarge, ml.g4dn.16xlarge, ml.m5.large, ml.m5.xlarge, ml.m5.2xlarge, ml.m5.4xlarge, ml.m5.12xlarge, ml.m5.24xlarge, ml.c4.xlarge, ml.c4.2xlarge, ml.c4.4xlarge, ml.c4.8xlarge, ml.p2.xlarge, ml.p2.8xlarge, ml.p2.16xlarge, ml.p3.2xlarge, ml.p3.8xlarge, ml.p3.16xlarge, ml.p3dn.24xlarge, ml.p4d.24xlarge, ml.c5.xlarge, ml.c5.2xlarge, ml.c5.4xlarge, ml.c5.9xlarge, ml.c5.18xlarge, ml.c5n.xlarge, ml.c5n.2xlarge, ml.c5n.4xlarge, ml.c5n.9xlarge, ml.c5n.18xlarge
|
502
|
+
# volume_size_in_gb: 1, # required
|
503
|
+
# },
|
504
|
+
# job_name: "CreateJobRequestJobNameString", # required
|
505
|
+
# output_data_config: { # required
|
506
|
+
# kms_key_id: "String2048",
|
507
|
+
# s3_path: "S3Path", # required
|
508
|
+
# },
|
509
|
+
# role_arn: "RoleArn", # required
|
510
|
+
# stopping_condition: {
|
511
|
+
# max_runtime_in_seconds: 1,
|
512
|
+
# },
|
513
|
+
# tags: {
|
514
|
+
# "String" => "String",
|
515
|
+
# },
|
516
|
+
# })
|
517
|
+
#
|
518
|
+
# @example Response structure
|
519
|
+
#
|
520
|
+
# resp.job_arn #=> String
|
521
|
+
#
|
522
|
+
# @see http://docs.aws.amazon.com/goto/WebAPI/braket-2019-09-01/CreateJob AWS API Documentation
|
523
|
+
#
|
524
|
+
# @overload create_job(params = {})
|
525
|
+
# @param [Hash] params ({})
|
526
|
+
def create_job(params = {}, options = {})
|
527
|
+
req = build_request(:create_job, params)
|
528
|
+
req.send_request(options)
|
529
|
+
end
|
530
|
+
|
376
531
|
# Creates a quantum task.
|
377
532
|
#
|
378
533
|
# @option params [required, String] :action
|
@@ -398,6 +553,10 @@ module Aws::Braket
|
|
398
553
|
# when the required value (Hash, Array, etc.) is provided according to
|
399
554
|
# the description.**
|
400
555
|
#
|
556
|
+
# @option params [String] :job_token
|
557
|
+
# The token for an Amazon Braket job that associates it with the quantum
|
558
|
+
# task.
|
559
|
+
#
|
401
560
|
# @option params [required, String] :output_s3_bucket
|
402
561
|
# The S3 bucket to store task result files in.
|
403
562
|
#
|
@@ -422,6 +581,7 @@ module Aws::Braket
|
|
422
581
|
# client_token: "String64", # required
|
423
582
|
# device_arn: "DeviceArn", # required
|
424
583
|
# device_parameters: "CreateQuantumTaskRequestDeviceParametersString",
|
584
|
+
# job_token: "JobToken",
|
425
585
|
# output_s3_bucket: "CreateQuantumTaskRequestOutputS3BucketString", # required
|
426
586
|
# output_s3_key_prefix: "CreateQuantumTaskRequestOutputS3KeyPrefixString", # required
|
427
587
|
# shots: 1, # required
|
@@ -481,6 +641,84 @@ module Aws::Braket
|
|
481
641
|
req.send_request(options)
|
482
642
|
end
|
483
643
|
|
644
|
+
# Retrieves the specified Amazon Braket job.
|
645
|
+
#
|
646
|
+
# @option params [required, String] :job_arn
|
647
|
+
# The ARN of the job to retrieve.
|
648
|
+
#
|
649
|
+
# @return [Types::GetJobResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
650
|
+
#
|
651
|
+
# * {Types::GetJobResponse#algorithm_specification #algorithm_specification} => Types::AlgorithmSpecification
|
652
|
+
# * {Types::GetJobResponse#billable_duration #billable_duration} => Integer
|
653
|
+
# * {Types::GetJobResponse#checkpoint_config #checkpoint_config} => Types::JobCheckpointConfig
|
654
|
+
# * {Types::GetJobResponse#created_at #created_at} => Time
|
655
|
+
# * {Types::GetJobResponse#device_config #device_config} => Types::DeviceConfig
|
656
|
+
# * {Types::GetJobResponse#ended_at #ended_at} => Time
|
657
|
+
# * {Types::GetJobResponse#events #events} => Array<Types::JobEventDetails>
|
658
|
+
# * {Types::GetJobResponse#failure_reason #failure_reason} => String
|
659
|
+
# * {Types::GetJobResponse#hyper_parameters #hyper_parameters} => Hash<String,String>
|
660
|
+
# * {Types::GetJobResponse#input_data_config #input_data_config} => Array<Types::InputFileConfig>
|
661
|
+
# * {Types::GetJobResponse#instance_config #instance_config} => Types::InstanceConfig
|
662
|
+
# * {Types::GetJobResponse#job_arn #job_arn} => String
|
663
|
+
# * {Types::GetJobResponse#job_name #job_name} => String
|
664
|
+
# * {Types::GetJobResponse#output_data_config #output_data_config} => Types::JobOutputDataConfig
|
665
|
+
# * {Types::GetJobResponse#role_arn #role_arn} => String
|
666
|
+
# * {Types::GetJobResponse#started_at #started_at} => Time
|
667
|
+
# * {Types::GetJobResponse#status #status} => String
|
668
|
+
# * {Types::GetJobResponse#stopping_condition #stopping_condition} => Types::JobStoppingCondition
|
669
|
+
# * {Types::GetJobResponse#tags #tags} => Hash<String,String>
|
670
|
+
#
|
671
|
+
# @example Request syntax with placeholder values
|
672
|
+
#
|
673
|
+
# resp = client.get_job({
|
674
|
+
# job_arn: "JobArn", # required
|
675
|
+
# })
|
676
|
+
#
|
677
|
+
# @example Response structure
|
678
|
+
#
|
679
|
+
# resp.algorithm_specification.container_image.uri #=> String
|
680
|
+
# resp.algorithm_specification.script_mode_config.compression_type #=> String, one of "NONE", "GZIP"
|
681
|
+
# resp.algorithm_specification.script_mode_config.entry_point #=> String
|
682
|
+
# resp.algorithm_specification.script_mode_config.s3_uri #=> String
|
683
|
+
# resp.billable_duration #=> Integer
|
684
|
+
# resp.checkpoint_config.local_path #=> String
|
685
|
+
# resp.checkpoint_config.s3_uri #=> String
|
686
|
+
# resp.created_at #=> Time
|
687
|
+
# resp.device_config.device #=> String
|
688
|
+
# resp.ended_at #=> Time
|
689
|
+
# resp.events #=> Array
|
690
|
+
# resp.events[0].event_type #=> String, one of "WAITING_FOR_PRIORITY", "QUEUED_FOR_EXECUTION", "STARTING_INSTANCE", "DOWNLOADING_DATA", "RUNNING", "DEPRIORITIZED_DUE_TO_INACTIVITY", "UPLOADING_RESULTS", "COMPLETED", "FAILED", "MAX_RUNTIME_EXCEEDED", "CANCELLED"
|
691
|
+
# resp.events[0].message #=> String
|
692
|
+
# resp.events[0].time_of_event #=> Time
|
693
|
+
# resp.failure_reason #=> String
|
694
|
+
# resp.hyper_parameters #=> Hash
|
695
|
+
# resp.hyper_parameters["String256"] #=> String
|
696
|
+
# resp.input_data_config #=> Array
|
697
|
+
# resp.input_data_config[0].channel_name #=> String
|
698
|
+
# resp.input_data_config[0].content_type #=> String
|
699
|
+
# resp.input_data_config[0].data_source.s3_data_source.s3_uri #=> String
|
700
|
+
# resp.instance_config.instance_type #=> String, one of "ml.m4.xlarge", "ml.m4.2xlarge", "ml.m4.4xlarge", "ml.m4.10xlarge", "ml.m4.16xlarge", "ml.g4dn.xlarge", "ml.g4dn.2xlarge", "ml.g4dn.4xlarge", "ml.g4dn.8xlarge", "ml.g4dn.12xlarge", "ml.g4dn.16xlarge", "ml.m5.large", "ml.m5.xlarge", "ml.m5.2xlarge", "ml.m5.4xlarge", "ml.m5.12xlarge", "ml.m5.24xlarge", "ml.c4.xlarge", "ml.c4.2xlarge", "ml.c4.4xlarge", "ml.c4.8xlarge", "ml.p2.xlarge", "ml.p2.8xlarge", "ml.p2.16xlarge", "ml.p3.2xlarge", "ml.p3.8xlarge", "ml.p3.16xlarge", "ml.p3dn.24xlarge", "ml.p4d.24xlarge", "ml.c5.xlarge", "ml.c5.2xlarge", "ml.c5.4xlarge", "ml.c5.9xlarge", "ml.c5.18xlarge", "ml.c5n.xlarge", "ml.c5n.2xlarge", "ml.c5n.4xlarge", "ml.c5n.9xlarge", "ml.c5n.18xlarge"
|
701
|
+
# resp.instance_config.volume_size_in_gb #=> Integer
|
702
|
+
# resp.job_arn #=> String
|
703
|
+
# resp.job_name #=> String
|
704
|
+
# resp.output_data_config.kms_key_id #=> String
|
705
|
+
# resp.output_data_config.s3_path #=> String
|
706
|
+
# resp.role_arn #=> String
|
707
|
+
# resp.started_at #=> Time
|
708
|
+
# resp.status #=> String, one of "QUEUED", "RUNNING", "COMPLETED", "FAILED", "CANCELLING", "CANCELLED"
|
709
|
+
# resp.stopping_condition.max_runtime_in_seconds #=> Integer
|
710
|
+
# resp.tags #=> Hash
|
711
|
+
# resp.tags["String"] #=> String
|
712
|
+
#
|
713
|
+
# @see http://docs.aws.amazon.com/goto/WebAPI/braket-2019-09-01/GetJob AWS API Documentation
|
714
|
+
#
|
715
|
+
# @overload get_job(params = {})
|
716
|
+
# @param [Hash] params ({})
|
717
|
+
def get_job(params = {}, options = {})
|
718
|
+
req = build_request(:get_job, params)
|
719
|
+
req.send_request(options)
|
720
|
+
end
|
721
|
+
|
484
722
|
# Retrieves the specified quantum task.
|
485
723
|
#
|
486
724
|
# @option params [required, String] :quantum_task_arn
|
@@ -493,6 +731,7 @@ module Aws::Braket
|
|
493
731
|
# * {Types::GetQuantumTaskResponse#device_parameters #device_parameters} => String
|
494
732
|
# * {Types::GetQuantumTaskResponse#ended_at #ended_at} => Time
|
495
733
|
# * {Types::GetQuantumTaskResponse#failure_reason #failure_reason} => String
|
734
|
+
# * {Types::GetQuantumTaskResponse#job_arn #job_arn} => String
|
496
735
|
# * {Types::GetQuantumTaskResponse#output_s3_bucket #output_s3_bucket} => String
|
497
736
|
# * {Types::GetQuantumTaskResponse#output_s3_directory #output_s3_directory} => String
|
498
737
|
# * {Types::GetQuantumTaskResponse#quantum_task_arn #quantum_task_arn} => String
|
@@ -513,6 +752,7 @@ module Aws::Braket
|
|
513
752
|
# resp.device_parameters #=> String
|
514
753
|
# resp.ended_at #=> Time
|
515
754
|
# resp.failure_reason #=> String
|
755
|
+
# resp.job_arn #=> String
|
516
756
|
# resp.output_s3_bucket #=> String
|
517
757
|
# resp.output_s3_directory #=> String
|
518
758
|
# resp.quantum_task_arn #=> String
|
@@ -611,6 +851,64 @@ module Aws::Braket
|
|
611
851
|
req.send_request(options)
|
612
852
|
end
|
613
853
|
|
854
|
+
# Searches for Amazon Braket jobs that match the specified filter
|
855
|
+
# values.
|
856
|
+
#
|
857
|
+
# @option params [required, Array<Types::SearchJobsFilter>] :filters
|
858
|
+
# The filter values to use when searching for a job.
|
859
|
+
#
|
860
|
+
# @option params [Integer] :max_results
|
861
|
+
# The maximum number of results to return in the response.
|
862
|
+
#
|
863
|
+
# @option params [String] :next_token
|
864
|
+
# A token used for pagination of results returned in the response. Use
|
865
|
+
# the token returned from the previous request to continue results where
|
866
|
+
# the previous request ended.
|
867
|
+
#
|
868
|
+
# @return [Types::SearchJobsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
869
|
+
#
|
870
|
+
# * {Types::SearchJobsResponse#jobs #jobs} => Array<Types::JobSummary>
|
871
|
+
# * {Types::SearchJobsResponse#next_token #next_token} => String
|
872
|
+
#
|
873
|
+
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
|
874
|
+
#
|
875
|
+
# @example Request syntax with placeholder values
|
876
|
+
#
|
877
|
+
# resp = client.search_jobs({
|
878
|
+
# filters: [ # required
|
879
|
+
# {
|
880
|
+
# name: "String64", # required
|
881
|
+
# operator: "LT", # required, accepts LT, LTE, EQUAL, GT, GTE, BETWEEN, CONTAINS
|
882
|
+
# values: ["String256"], # required
|
883
|
+
# },
|
884
|
+
# ],
|
885
|
+
# max_results: 1,
|
886
|
+
# next_token: "String",
|
887
|
+
# })
|
888
|
+
#
|
889
|
+
# @example Response structure
|
890
|
+
#
|
891
|
+
# resp.jobs #=> Array
|
892
|
+
# resp.jobs[0].created_at #=> Time
|
893
|
+
# resp.jobs[0].device #=> String
|
894
|
+
# resp.jobs[0].ended_at #=> Time
|
895
|
+
# resp.jobs[0].job_arn #=> String
|
896
|
+
# resp.jobs[0].job_name #=> String
|
897
|
+
# resp.jobs[0].started_at #=> Time
|
898
|
+
# resp.jobs[0].status #=> String, one of "QUEUED", "RUNNING", "COMPLETED", "FAILED", "CANCELLING", "CANCELLED"
|
899
|
+
# resp.jobs[0].tags #=> Hash
|
900
|
+
# resp.jobs[0].tags["String"] #=> String
|
901
|
+
# resp.next_token #=> String
|
902
|
+
#
|
903
|
+
# @see http://docs.aws.amazon.com/goto/WebAPI/braket-2019-09-01/SearchJobs AWS API Documentation
|
904
|
+
#
|
905
|
+
# @overload search_jobs(params = {})
|
906
|
+
# @param [Hash] params ({})
|
907
|
+
def search_jobs(params = {}, options = {})
|
908
|
+
req = build_request(:search_jobs, params)
|
909
|
+
req.send_request(options)
|
910
|
+
end
|
911
|
+
|
614
912
|
# Searches for tasks that match the specified filter values.
|
615
913
|
#
|
616
914
|
# @option params [required, Array<Types::SearchQuantumTasksFilter>] :filters
|
@@ -738,7 +1036,7 @@ module Aws::Braket
|
|
738
1036
|
params: params,
|
739
1037
|
config: config)
|
740
1038
|
context[:gem_name] = 'aws-sdk-braket'
|
741
|
-
context[:gem_version] = '1.
|
1039
|
+
context[:gem_version] = '1.14.0'
|
742
1040
|
Seahorse::Client::Request.new(handlers, context)
|
743
1041
|
end
|
744
1042
|
|