azure_mgmt_data_migration 0.17.2 → 0.17.3
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.
- checksums.yaml +4 -4
- data/lib/2017-11-15-preview/generated/azure_mgmt_data_migration/data_migration_service_client.rb +1 -1
- data/lib/2018-03-15-preview/generated/azure_mgmt_data_migration/data_migration_service_client.rb +1 -1
- data/lib/2018-03-31-preview/generated/azure_mgmt_data_migration/data_migration_service_client.rb +1 -1
- data/lib/2018-04-19/generated/azure_mgmt_data_migration/data_migration_service_client.rb +1 -1
- data/lib/2018-07-15-preview/generated/azure_mgmt_data_migration.rb +126 -117
- data/lib/2018-07-15-preview/generated/azure_mgmt_data_migration/data_migration_service_client.rb +1 -1
- data/lib/2018-07-15-preview/generated/azure_mgmt_data_migration/models/connect_to_source_sql_server_task_input.rb +26 -0
- data/lib/2018-07-15-preview/generated/azure_mgmt_data_migration/models/connect_to_target_sql_mitask_input.rb +39 -0
- data/lib/2018-07-15-preview/generated/azure_mgmt_data_migration/models/migrate_oracle_azure_db_for_postgre_sql_sync_task_properties.rb +2 -2
- data/lib/2018-07-15-preview/generated/azure_mgmt_data_migration/models/migrate_oracle_azure_db_postgre_sql_sync_database_input.rb +12 -0
- data/lib/2018-07-15-preview/generated/azure_mgmt_data_migration/models/migrate_ssis_task_input.rb +66 -0
- data/lib/2018-07-15-preview/generated/azure_mgmt_data_migration/models/migrate_ssis_task_output.rb +60 -0
- data/lib/2018-07-15-preview/generated/azure_mgmt_data_migration/models/migrate_ssis_task_output_migration_level.rb +193 -0
- data/lib/2018-07-15-preview/generated/azure_mgmt_data_migration/models/migrate_ssis_task_output_project_level.rb +168 -0
- data/lib/2018-07-15-preview/generated/azure_mgmt_data_migration/models/migrate_ssis_task_properties.rb +150 -0
- data/lib/2018-07-15-preview/generated/azure_mgmt_data_migration/models/project_task_properties.rb +2 -1
- data/lib/2018-07-15-preview/generated/azure_mgmt_data_migration/models/ssis_migration_info.rb +72 -0
- data/lib/2018-07-15-preview/generated/azure_mgmt_data_migration/models/ssis_migration_overwrite_option.rb +16 -0
- data/lib/2018-07-15-preview/generated/azure_mgmt_data_migration/models/ssis_migration_stage.rb +18 -0
- data/lib/2018-07-15-preview/generated/azure_mgmt_data_migration/models/ssis_store_type.rb +15 -0
- data/lib/azure_mgmt_data_migration.rb +3 -3
- data/lib/profiles/latest/modules/datamigration_profile_module.rb +403 -367
- data/lib/version.rb +1 -1
- metadata +12 -3
@@ -15,7 +15,7 @@ module Azure::DataMigration::Mgmt::V2018_07_15_preview
|
|
15
15
|
|
16
16
|
|
17
17
|
def initialize
|
18
|
-
@taskType = "Migrate.Oracle.
|
18
|
+
@taskType = "Migrate.Oracle.AzureDbForPostgreSql.Sync"
|
19
19
|
end
|
20
20
|
|
21
21
|
attr_accessor :taskType
|
@@ -37,7 +37,7 @@ module Azure::DataMigration::Mgmt::V2018_07_15_preview
|
|
37
37
|
{
|
38
38
|
client_side_validation: true,
|
39
39
|
required: false,
|
40
|
-
serialized_name: 'Migrate.Oracle.
|
40
|
+
serialized_name: 'Migrate.Oracle.AzureDbForPostgreSql.Sync',
|
41
41
|
type: {
|
42
42
|
name: 'Composite',
|
43
43
|
class_name: 'MigrateOracleAzureDbForPostgreSqlSyncTaskProperties',
|
@@ -13,6 +13,10 @@ module Azure::DataMigration::Mgmt::V2018_07_15_preview
|
|
13
13
|
|
14
14
|
include MsRestAzure
|
15
15
|
|
16
|
+
# @return [String] How to handle object name casing: either Preserve or
|
17
|
+
# ToLower
|
18
|
+
attr_accessor :case_manipulation
|
19
|
+
|
16
20
|
# @return [String] Name of the migration pipeline
|
17
21
|
attr_accessor :name
|
18
22
|
|
@@ -53,6 +57,14 @@ module Azure::DataMigration::Mgmt::V2018_07_15_preview
|
|
53
57
|
name: 'Composite',
|
54
58
|
class_name: 'MigrateOracleAzureDbPostgreSqlSyncDatabaseInput',
|
55
59
|
model_properties: {
|
60
|
+
case_manipulation: {
|
61
|
+
client_side_validation: true,
|
62
|
+
required: false,
|
63
|
+
serialized_name: 'caseManipulation',
|
64
|
+
type: {
|
65
|
+
name: 'String'
|
66
|
+
}
|
67
|
+
},
|
56
68
|
name: {
|
57
69
|
client_side_validation: true,
|
58
70
|
required: false,
|
data/lib/2018-07-15-preview/generated/azure_mgmt_data_migration/models/migrate_ssis_task_input.rb
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# Code generated by Microsoft (R) AutoRest Code Generator.
|
3
|
+
# Changes may cause incorrect behavior and will be lost if the code is
|
4
|
+
# regenerated.
|
5
|
+
|
6
|
+
module Azure::DataMigration::Mgmt::V2018_07_15_preview
|
7
|
+
module Models
|
8
|
+
#
|
9
|
+
# Input for task that migrates SSIS packages from SQL Server to Azure SQL
|
10
|
+
# Database Managed Instance.
|
11
|
+
#
|
12
|
+
class MigrateSsisTaskInput < SqlMigrationTaskInput
|
13
|
+
|
14
|
+
include MsRestAzure
|
15
|
+
|
16
|
+
# @return [SsisMigrationInfo] SSIS package migration information.
|
17
|
+
attr_accessor :ssis_migration_info
|
18
|
+
|
19
|
+
|
20
|
+
#
|
21
|
+
# Mapper for MigrateSsisTaskInput class as Ruby Hash.
|
22
|
+
# This will be used for serialization/deserialization.
|
23
|
+
#
|
24
|
+
def self.mapper()
|
25
|
+
{
|
26
|
+
client_side_validation: true,
|
27
|
+
required: false,
|
28
|
+
serialized_name: 'MigrateSsisTaskInput',
|
29
|
+
type: {
|
30
|
+
name: 'Composite',
|
31
|
+
class_name: 'MigrateSsisTaskInput',
|
32
|
+
model_properties: {
|
33
|
+
source_connection_info: {
|
34
|
+
client_side_validation: true,
|
35
|
+
required: true,
|
36
|
+
serialized_name: 'sourceConnectionInfo',
|
37
|
+
type: {
|
38
|
+
name: 'Composite',
|
39
|
+
class_name: 'SqlConnectionInfo'
|
40
|
+
}
|
41
|
+
},
|
42
|
+
target_connection_info: {
|
43
|
+
client_side_validation: true,
|
44
|
+
required: true,
|
45
|
+
serialized_name: 'targetConnectionInfo',
|
46
|
+
type: {
|
47
|
+
name: 'Composite',
|
48
|
+
class_name: 'SqlConnectionInfo'
|
49
|
+
}
|
50
|
+
},
|
51
|
+
ssis_migration_info: {
|
52
|
+
client_side_validation: true,
|
53
|
+
required: true,
|
54
|
+
serialized_name: 'ssisMigrationInfo',
|
55
|
+
type: {
|
56
|
+
name: 'Composite',
|
57
|
+
class_name: 'SsisMigrationInfo'
|
58
|
+
}
|
59
|
+
}
|
60
|
+
}
|
61
|
+
}
|
62
|
+
}
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
data/lib/2018-07-15-preview/generated/azure_mgmt_data_migration/models/migrate_ssis_task_output.rb
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# Code generated by Microsoft (R) AutoRest Code Generator.
|
3
|
+
# Changes may cause incorrect behavior and will be lost if the code is
|
4
|
+
# regenerated.
|
5
|
+
|
6
|
+
module Azure::DataMigration::Mgmt::V2018_07_15_preview
|
7
|
+
module Models
|
8
|
+
#
|
9
|
+
# Output for task that migrates SSIS packages from SQL Server to Azure SQL
|
10
|
+
# Database Managed Instance.
|
11
|
+
#
|
12
|
+
class MigrateSsisTaskOutput
|
13
|
+
|
14
|
+
include MsRestAzure
|
15
|
+
|
16
|
+
@@discriminatorMap = Hash.new
|
17
|
+
@@discriminatorMap["SsisProjectLevelOutput"] = "MigrateSsisTaskOutputProjectLevel"
|
18
|
+
@@discriminatorMap["MigrationLevelOutput"] = "MigrateSsisTaskOutputMigrationLevel"
|
19
|
+
|
20
|
+
def initialize
|
21
|
+
@resultType = "MigrateSsisTaskOutput"
|
22
|
+
end
|
23
|
+
|
24
|
+
attr_accessor :resultType
|
25
|
+
|
26
|
+
# @return [String] Result identifier
|
27
|
+
attr_accessor :id
|
28
|
+
|
29
|
+
|
30
|
+
#
|
31
|
+
# Mapper for MigrateSsisTaskOutput class as Ruby Hash.
|
32
|
+
# This will be used for serialization/deserialization.
|
33
|
+
#
|
34
|
+
def self.mapper()
|
35
|
+
{
|
36
|
+
client_side_validation: true,
|
37
|
+
required: false,
|
38
|
+
serialized_name: 'MigrateSsisTaskOutput',
|
39
|
+
type: {
|
40
|
+
name: 'Composite',
|
41
|
+
polymorphic_discriminator: 'resultType',
|
42
|
+
uber_parent: 'MigrateSsisTaskOutput',
|
43
|
+
class_name: 'MigrateSsisTaskOutput',
|
44
|
+
model_properties: {
|
45
|
+
id: {
|
46
|
+
client_side_validation: true,
|
47
|
+
required: false,
|
48
|
+
read_only: true,
|
49
|
+
serialized_name: 'id',
|
50
|
+
type: {
|
51
|
+
name: 'String'
|
52
|
+
}
|
53
|
+
}
|
54
|
+
}
|
55
|
+
}
|
56
|
+
}
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,193 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# Code generated by Microsoft (R) AutoRest Code Generator.
|
3
|
+
# Changes may cause incorrect behavior and will be lost if the code is
|
4
|
+
# regenerated.
|
5
|
+
|
6
|
+
module Azure::DataMigration::Mgmt::V2018_07_15_preview
|
7
|
+
module Models
|
8
|
+
#
|
9
|
+
# Model object.
|
10
|
+
#
|
11
|
+
#
|
12
|
+
class MigrateSsisTaskOutputMigrationLevel < MigrateSsisTaskOutput
|
13
|
+
|
14
|
+
include MsRestAzure
|
15
|
+
|
16
|
+
|
17
|
+
def initialize
|
18
|
+
@resultType = "MigrationLevelOutput"
|
19
|
+
end
|
20
|
+
|
21
|
+
attr_accessor :resultType
|
22
|
+
|
23
|
+
# @return [DateTime] Migration start time
|
24
|
+
attr_accessor :started_on
|
25
|
+
|
26
|
+
# @return [DateTime] Migration end time
|
27
|
+
attr_accessor :ended_on
|
28
|
+
|
29
|
+
# @return [MigrationStatus] Current status of migration. Possible values
|
30
|
+
# include: 'Default', 'Connecting', 'SourceAndTargetSelected',
|
31
|
+
# 'SelectLogins', 'Configured', 'Running', 'Error', 'Stopped',
|
32
|
+
# 'Completed', 'CompletedWithWarnings'
|
33
|
+
attr_accessor :status
|
34
|
+
|
35
|
+
# @return [String] Migration progress message
|
36
|
+
attr_accessor :message
|
37
|
+
|
38
|
+
# @return [String] Source server version
|
39
|
+
attr_accessor :source_server_version
|
40
|
+
|
41
|
+
# @return [String] Source server brand version
|
42
|
+
attr_accessor :source_server_brand_version
|
43
|
+
|
44
|
+
# @return [String] Target server version
|
45
|
+
attr_accessor :target_server_version
|
46
|
+
|
47
|
+
# @return [String] Target server brand version
|
48
|
+
attr_accessor :target_server_brand_version
|
49
|
+
|
50
|
+
# @return [Array<ReportableException>] Migration exceptions and warnings.
|
51
|
+
attr_accessor :exceptions_and_warnings
|
52
|
+
|
53
|
+
# @return [SsisMigrationStage] Stage of SSIS migration. Possible values
|
54
|
+
# include: 'None', 'Initialize', 'InProgress', 'Completed'
|
55
|
+
attr_accessor :stage
|
56
|
+
|
57
|
+
|
58
|
+
#
|
59
|
+
# Mapper for MigrateSsisTaskOutputMigrationLevel class as Ruby Hash.
|
60
|
+
# This will be used for serialization/deserialization.
|
61
|
+
#
|
62
|
+
def self.mapper()
|
63
|
+
{
|
64
|
+
client_side_validation: true,
|
65
|
+
required: false,
|
66
|
+
serialized_name: 'MigrationLevelOutput',
|
67
|
+
type: {
|
68
|
+
name: 'Composite',
|
69
|
+
class_name: 'MigrateSsisTaskOutputMigrationLevel',
|
70
|
+
model_properties: {
|
71
|
+
id: {
|
72
|
+
client_side_validation: true,
|
73
|
+
required: false,
|
74
|
+
read_only: true,
|
75
|
+
serialized_name: 'id',
|
76
|
+
type: {
|
77
|
+
name: 'String'
|
78
|
+
}
|
79
|
+
},
|
80
|
+
resultType: {
|
81
|
+
client_side_validation: true,
|
82
|
+
required: true,
|
83
|
+
serialized_name: 'resultType',
|
84
|
+
type: {
|
85
|
+
name: 'String'
|
86
|
+
}
|
87
|
+
},
|
88
|
+
started_on: {
|
89
|
+
client_side_validation: true,
|
90
|
+
required: false,
|
91
|
+
read_only: true,
|
92
|
+
serialized_name: 'startedOn',
|
93
|
+
type: {
|
94
|
+
name: 'DateTime'
|
95
|
+
}
|
96
|
+
},
|
97
|
+
ended_on: {
|
98
|
+
client_side_validation: true,
|
99
|
+
required: false,
|
100
|
+
read_only: true,
|
101
|
+
serialized_name: 'endedOn',
|
102
|
+
type: {
|
103
|
+
name: 'DateTime'
|
104
|
+
}
|
105
|
+
},
|
106
|
+
status: {
|
107
|
+
client_side_validation: true,
|
108
|
+
required: false,
|
109
|
+
read_only: true,
|
110
|
+
serialized_name: 'status',
|
111
|
+
type: {
|
112
|
+
name: 'String'
|
113
|
+
}
|
114
|
+
},
|
115
|
+
message: {
|
116
|
+
client_side_validation: true,
|
117
|
+
required: false,
|
118
|
+
read_only: true,
|
119
|
+
serialized_name: 'message',
|
120
|
+
type: {
|
121
|
+
name: 'String'
|
122
|
+
}
|
123
|
+
},
|
124
|
+
source_server_version: {
|
125
|
+
client_side_validation: true,
|
126
|
+
required: false,
|
127
|
+
read_only: true,
|
128
|
+
serialized_name: 'sourceServerVersion',
|
129
|
+
type: {
|
130
|
+
name: 'String'
|
131
|
+
}
|
132
|
+
},
|
133
|
+
source_server_brand_version: {
|
134
|
+
client_side_validation: true,
|
135
|
+
required: false,
|
136
|
+
read_only: true,
|
137
|
+
serialized_name: 'sourceServerBrandVersion',
|
138
|
+
type: {
|
139
|
+
name: 'String'
|
140
|
+
}
|
141
|
+
},
|
142
|
+
target_server_version: {
|
143
|
+
client_side_validation: true,
|
144
|
+
required: false,
|
145
|
+
read_only: true,
|
146
|
+
serialized_name: 'targetServerVersion',
|
147
|
+
type: {
|
148
|
+
name: 'String'
|
149
|
+
}
|
150
|
+
},
|
151
|
+
target_server_brand_version: {
|
152
|
+
client_side_validation: true,
|
153
|
+
required: false,
|
154
|
+
read_only: true,
|
155
|
+
serialized_name: 'targetServerBrandVersion',
|
156
|
+
type: {
|
157
|
+
name: 'String'
|
158
|
+
}
|
159
|
+
},
|
160
|
+
exceptions_and_warnings: {
|
161
|
+
client_side_validation: true,
|
162
|
+
required: false,
|
163
|
+
read_only: true,
|
164
|
+
serialized_name: 'exceptionsAndWarnings',
|
165
|
+
type: {
|
166
|
+
name: 'Sequence',
|
167
|
+
element: {
|
168
|
+
client_side_validation: true,
|
169
|
+
required: false,
|
170
|
+
serialized_name: 'ReportableExceptionElementType',
|
171
|
+
type: {
|
172
|
+
name: 'Composite',
|
173
|
+
class_name: 'ReportableException'
|
174
|
+
}
|
175
|
+
}
|
176
|
+
}
|
177
|
+
},
|
178
|
+
stage: {
|
179
|
+
client_side_validation: true,
|
180
|
+
required: false,
|
181
|
+
read_only: true,
|
182
|
+
serialized_name: 'stage',
|
183
|
+
type: {
|
184
|
+
name: 'String'
|
185
|
+
}
|
186
|
+
}
|
187
|
+
}
|
188
|
+
}
|
189
|
+
}
|
190
|
+
end
|
191
|
+
end
|
192
|
+
end
|
193
|
+
end
|
@@ -0,0 +1,168 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# Code generated by Microsoft (R) AutoRest Code Generator.
|
3
|
+
# Changes may cause incorrect behavior and will be lost if the code is
|
4
|
+
# regenerated.
|
5
|
+
|
6
|
+
module Azure::DataMigration::Mgmt::V2018_07_15_preview
|
7
|
+
module Models
|
8
|
+
#
|
9
|
+
# Model object.
|
10
|
+
#
|
11
|
+
#
|
12
|
+
class MigrateSsisTaskOutputProjectLevel < MigrateSsisTaskOutput
|
13
|
+
|
14
|
+
include MsRestAzure
|
15
|
+
|
16
|
+
|
17
|
+
def initialize
|
18
|
+
@resultType = "SsisProjectLevelOutput"
|
19
|
+
end
|
20
|
+
|
21
|
+
attr_accessor :resultType
|
22
|
+
|
23
|
+
# @return [String] Name of the folder
|
24
|
+
attr_accessor :folder_name
|
25
|
+
|
26
|
+
# @return [String] Name of the project
|
27
|
+
attr_accessor :project_name
|
28
|
+
|
29
|
+
# @return [MigrationState] Current state of migration. Possible values
|
30
|
+
# include: 'None', 'InProgress', 'Failed', 'Warning', 'Completed',
|
31
|
+
# 'Skipped', 'Stopped'
|
32
|
+
attr_accessor :state
|
33
|
+
|
34
|
+
# @return [SsisMigrationStage] Stage of SSIS migration. Possible values
|
35
|
+
# include: 'None', 'Initialize', 'InProgress', 'Completed'
|
36
|
+
attr_accessor :stage
|
37
|
+
|
38
|
+
# @return [DateTime] Migration start time
|
39
|
+
attr_accessor :started_on
|
40
|
+
|
41
|
+
# @return [DateTime] Migration end time
|
42
|
+
attr_accessor :ended_on
|
43
|
+
|
44
|
+
# @return [String] Migration progress message
|
45
|
+
attr_accessor :message
|
46
|
+
|
47
|
+
# @return [Array<ReportableException>] Migration exceptions and warnings
|
48
|
+
attr_accessor :exceptions_and_warnings
|
49
|
+
|
50
|
+
|
51
|
+
#
|
52
|
+
# Mapper for MigrateSsisTaskOutputProjectLevel class as Ruby Hash.
|
53
|
+
# This will be used for serialization/deserialization.
|
54
|
+
#
|
55
|
+
def self.mapper()
|
56
|
+
{
|
57
|
+
client_side_validation: true,
|
58
|
+
required: false,
|
59
|
+
serialized_name: 'SsisProjectLevelOutput',
|
60
|
+
type: {
|
61
|
+
name: 'Composite',
|
62
|
+
class_name: 'MigrateSsisTaskOutputProjectLevel',
|
63
|
+
model_properties: {
|
64
|
+
id: {
|
65
|
+
client_side_validation: true,
|
66
|
+
required: false,
|
67
|
+
read_only: true,
|
68
|
+
serialized_name: 'id',
|
69
|
+
type: {
|
70
|
+
name: 'String'
|
71
|
+
}
|
72
|
+
},
|
73
|
+
resultType: {
|
74
|
+
client_side_validation: true,
|
75
|
+
required: true,
|
76
|
+
serialized_name: 'resultType',
|
77
|
+
type: {
|
78
|
+
name: 'String'
|
79
|
+
}
|
80
|
+
},
|
81
|
+
folder_name: {
|
82
|
+
client_side_validation: true,
|
83
|
+
required: false,
|
84
|
+
read_only: true,
|
85
|
+
serialized_name: 'folderName',
|
86
|
+
type: {
|
87
|
+
name: 'String'
|
88
|
+
}
|
89
|
+
},
|
90
|
+
project_name: {
|
91
|
+
client_side_validation: true,
|
92
|
+
required: false,
|
93
|
+
read_only: true,
|
94
|
+
serialized_name: 'projectName',
|
95
|
+
type: {
|
96
|
+
name: 'String'
|
97
|
+
}
|
98
|
+
},
|
99
|
+
state: {
|
100
|
+
client_side_validation: true,
|
101
|
+
required: false,
|
102
|
+
read_only: true,
|
103
|
+
serialized_name: 'state',
|
104
|
+
type: {
|
105
|
+
name: 'String'
|
106
|
+
}
|
107
|
+
},
|
108
|
+
stage: {
|
109
|
+
client_side_validation: true,
|
110
|
+
required: false,
|
111
|
+
read_only: true,
|
112
|
+
serialized_name: 'stage',
|
113
|
+
type: {
|
114
|
+
name: 'String'
|
115
|
+
}
|
116
|
+
},
|
117
|
+
started_on: {
|
118
|
+
client_side_validation: true,
|
119
|
+
required: false,
|
120
|
+
read_only: true,
|
121
|
+
serialized_name: 'startedOn',
|
122
|
+
type: {
|
123
|
+
name: 'DateTime'
|
124
|
+
}
|
125
|
+
},
|
126
|
+
ended_on: {
|
127
|
+
client_side_validation: true,
|
128
|
+
required: false,
|
129
|
+
read_only: true,
|
130
|
+
serialized_name: 'endedOn',
|
131
|
+
type: {
|
132
|
+
name: 'DateTime'
|
133
|
+
}
|
134
|
+
},
|
135
|
+
message: {
|
136
|
+
client_side_validation: true,
|
137
|
+
required: false,
|
138
|
+
read_only: true,
|
139
|
+
serialized_name: 'message',
|
140
|
+
type: {
|
141
|
+
name: 'String'
|
142
|
+
}
|
143
|
+
},
|
144
|
+
exceptions_and_warnings: {
|
145
|
+
client_side_validation: true,
|
146
|
+
required: false,
|
147
|
+
read_only: true,
|
148
|
+
serialized_name: 'exceptionsAndWarnings',
|
149
|
+
type: {
|
150
|
+
name: 'Sequence',
|
151
|
+
element: {
|
152
|
+
client_side_validation: true,
|
153
|
+
required: false,
|
154
|
+
serialized_name: 'ReportableExceptionElementType',
|
155
|
+
type: {
|
156
|
+
name: 'Composite',
|
157
|
+
class_name: 'ReportableException'
|
158
|
+
}
|
159
|
+
}
|
160
|
+
}
|
161
|
+
}
|
162
|
+
}
|
163
|
+
}
|
164
|
+
}
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|