eSIM RSP 测试用例对比站

人工切片(-man) ↔ Cas 盲生成(-cas)· 真机真卡执行证据对照

源码对照:4.2.23.2.4

ES10c 删除 Profile 异常用例(Case 4) / TC_eUICC_ES10c.DeleteProfile_ErrorCases_Case4

左侧为人工切片入口(-man,来自 原料/切片 的最小可执行脚本),右侧为 Cas 盲生成入口(-cas,仅依据规范生成)。文件按原始编码(多为 GBK)解码为 UTF-8 显示,行号自 1 起;字节级原文与 sha256 见两侧脚本包。完整 unified diff 见本页底部折叠区,以及 报告原文 §4。
-man 入口
Import/TestCase_SGP_23.js
388 行 / 17746 字符 / gb18030
-cas 入口
TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4/Import/TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4.js
423 行 / 33920 字符 / gb18030
默认折行显示长行;取消勾选可横向滚动查看原始行宽
-man 人工切片Import/TestCase_SGP_23.js388 行 / 17746 字符 / gb18030入口函数 @L3
1// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_01_Delete_Profile_not_possible_with_unknown_ISD_P_AID + TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_02_Delete_Profile_not_possible_with_unknown_ICCID + TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_03_Delete_Profile_by_ISDP_AID_not_possible_when_this_Operational_Profile_is_in_Enabled_state + TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_04_Delete_Profile_by_ICCID_not_possible_when_this_Operational_Profile_is_in_Enabled_state + TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_05_Delete_Profile_by_ISDP_AID_not_possible_not_possible_when_PPR2_is_set + TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_06_Delete_Profile_by_ICCID_not_possible_not_possible_when_PPR2_is_set (extracted verbatim)
2
3function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_01_Delete_Profile_not_possible_with_unknown_ISD_P_AID()
4{
5	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
6	var ISD_P_Test01 = curProfile_ISD_P_AID;
7	
8	initial_condition_PROFILE_OPERATIONAL2_is_Enabled();
9	var ISD_P_Test02 = curProfile_ISD_P_AID;
10
11	tracenamestr = "测试目的:通过未知的ISD-P AID删除profile应不成功";
12	curDis.TraceStart(sno++,tracenamestr);
13	
14	curLogicChannel = 0;
15	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
16	Ini_powerOn_eUICC_LPAe_not_activate();
17	
18	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
19	TS_MANAGE_CHANNEL_OPEN();
20	
21	curLogicChannel = 1;
22	
23	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
24	TS_SELECT("Select ISD",ISD_R_AID,"9000");
25	
26	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DeleteProfileRequest,通过ISD-P AID删除profile;");
27	var deleProfileRequest = new DeleteProfileRequest();
28	deleProfileRequest.isdpAid = ISD_P_AIDX;
29	deleProfileRequest.GenHexData();
30	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"91","00","9000");
31	
32	curStrHandle.CheckData("BF3303800101", respData, "DeleteProfileResponse");
33	
34		
35	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
36	var proInfoListRequest = new ProfileInfoListRequest();
37	proInfoListRequest.tagList = "5A4F9F70";
38	proInfoListRequest.GenHexData();
39	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
40	
41	
42	var proInfoListResponse = new  ProfileInfoListResponse();
43	proInfoListResponse.checkCardResDataFormat(respData);
44	
45	try
46	{
47		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
48		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
49		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
50		
51		curStrHandle.CheckData(ICCID_OP_PROF2, proInfoListResponse.profileInfoListOk.arrOfElement[1].iccid, "ICCID");
52		curStrHandle.CheckData(ISD_P_Test02, proInfoListResponse.profileInfoListOk.arrOfElement[1].isdpAid, "ISD-P AID");
53		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[1].profileState, "profile State");
54	}catch(e){
55		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
56	}
57	
58	
59	RecoverCard();
60}
61
62function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_02_Delete_Profile_not_possible_with_unknown_ICCID()
63{
64	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
65	var ISD_P_Test01 = curProfile_ISD_P_AID;
66	
67	initial_condition_PROFILE_OPERATIONAL2_is_Enabled();
68	var ISD_P_Test02 = curProfile_ISD_P_AID;
69
70	tracenamestr = "测试目的:通过未知的ICCID删除profile应不成功";
71	curDis.TraceStart(sno++,tracenamestr);
72	
73	curLogicChannel = 0;
74	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
75	Ini_powerOn_eUICC_LPAe_not_activate();
76	
77	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
78	TS_MANAGE_CHANNEL_OPEN();
79	
80	curLogicChannel = 1;
81	
82	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
83	TS_SELECT("Select ISD",ISD_R_AID,"9000");
84	
85	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DeleteProfileRequest,通过ISD-P AID删除profile;");
86	var deleProfileRequest = new DeleteProfileRequest();
87	deleProfileRequest.iccid = ICCID_OP_PROFX;
88	deleProfileRequest.GenHexData();
89	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"91","00","9000");
90	
91	curStrHandle.CheckData("BF3303800101", respData, "DeleteProfileResponse");
92	
93	
94	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
95	var proInfoListRequest = new ProfileInfoListRequest();
96	proInfoListRequest.tagList = "5A4F9F70";
97	proInfoListRequest.GenHexData();
98	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
99	
100	
101	var proInfoListResponse = new  ProfileInfoListResponse();
102	proInfoListResponse.checkCardResDataFormat(respData);
103	
104	try
105	{
106		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
107		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
108		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
109		
110		curStrHandle.CheckData(ICCID_OP_PROF2, proInfoListResponse.profileInfoListOk.arrOfElement[1].iccid, "ICCID");
111		curStrHandle.CheckData(ISD_P_Test02, proInfoListResponse.profileInfoListOk.arrOfElement[1].isdpAid, "ISD-P AID");
112		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[1].profileState, "profile State");
113	}catch(e){
114		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
115	}
116	
117	
118	RecoverCard();
119}
120
121function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_03_Delete_Profile_by_ISDP_AID_not_possible_when_this_Operational_Profile_is_in_Enabled_state()
122{
123	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
124	var ISD_P_Test01 = curProfile_ISD_P_AID;
125	
126	initial_condition_PROFILE_OPERATIONAL2_is_Enabled();
127	var ISD_P_Test02 = curProfile_ISD_P_AID;
128
129	tracenamestr = "测试目的:通过ISD-P AID删除处于激活状态的Operational Profile应不成功";
130	curDis.TraceStart(sno++,tracenamestr);
131	
132	curLogicChannel = 0;
133	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
134	Ini_powerOn_eUICC_LPAe_not_activate();
135	
136	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
137	TS_MANAGE_CHANNEL_OPEN();
138	
139	curLogicChannel = 1;
140	
141	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
142	TS_SELECT("Select ISD",ISD_R_AID,"9000");
143	
144	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DeleteProfileRequest,通过ISD-P AID删除profile;");
145	var deleProfileRequest = new DeleteProfileRequest();
146	deleProfileRequest.isdpAid = ISD_P_Test02;
147	deleProfileRequest.GenHexData();
148	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"91","00","9000");
149	
150	curStrHandle.CheckData("BF3303800102", respData, "DeleteProfileResponse");//profileNotInDisabledState(2)
151	
152	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
153	var proInfoListRequest = new ProfileInfoListRequest();
154	proInfoListRequest.tagList = "5A4F9F70";
155	proInfoListRequest.GenHexData();
156	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
157	
158	
159	var proInfoListResponse = new  ProfileInfoListResponse();
160	proInfoListResponse.checkCardResDataFormat(respData);
161	
162	try
163	{
164		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
165		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
166		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
167		
168		curStrHandle.CheckData(ICCID_OP_PROF2, proInfoListResponse.profileInfoListOk.arrOfElement[1].iccid, "ICCID");
169		curStrHandle.CheckData(ISD_P_Test02, proInfoListResponse.profileInfoListOk.arrOfElement[1].isdpAid, "ISD-P AID");
170		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[1].profileState, "profile State");
171	}catch(e){
172		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
173	}
174	
175	
176	RecoverCard();
177}
178
179function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_04_Delete_Profile_by_ICCID_not_possible_when_this_Operational_Profile_is_in_Enabled_state()
180{
181	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
182	var ISD_P_Test01 = curProfile_ISD_P_AID;
183	
184	initial_condition_PROFILE_OPERATIONAL2_is_Enabled();
185	var ISD_P_Test02 = curProfile_ISD_P_AID;
186
187	tracenamestr = "测试目的:通过ICCID删除处于激活状态的Operational Profile应不成功";
188	curDis.TraceStart(sno++,tracenamestr);
189	
190	curLogicChannel = 0;
191	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
192	Ini_powerOn_eUICC_LPAe_not_activate();
193	
194	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
195	TS_MANAGE_CHANNEL_OPEN();
196	
197	curLogicChannel = 1;
198	
199	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
200	TS_SELECT("Select ISD",ISD_R_AID,"9000");
201	
202	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DeleteProfileRequest,通过ICCID删除profile;");
203	var deleProfileRequest = new DeleteProfileRequest();
204	deleProfileRequest.iccid = ICCID_OP_PROF2;
205	deleProfileRequest.GenHexData();
206	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"91","00","9000");
207	
208	curStrHandle.CheckData("BF3303800102", respData, "DeleteProfileResponse");//profileNotInDisabledState(2)
209	
210	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
211	var proInfoListRequest = new ProfileInfoListRequest();
212	proInfoListRequest.tagList = "5A4F9F70";
213	proInfoListRequest.GenHexData();
214	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
215	
216	
217	var proInfoListResponse = new  ProfileInfoListResponse();
218	proInfoListResponse.checkCardResDataFormat(respData);
219	
220	try
221	{
222		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
223		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
224		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
225		
226		curStrHandle.CheckData(ICCID_OP_PROF2, proInfoListResponse.profileInfoListOk.arrOfElement[1].iccid, "ICCID");
227		curStrHandle.CheckData(ISD_P_Test02, proInfoListResponse.profileInfoListOk.arrOfElement[1].isdpAid, "ISD-P AID");
228		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[1].profileState, "profile State");
229	}catch(e){
230		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
231	}
232	
233	
234	RecoverCard();
235}
236
237function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_05_Delete_Profile_by_ISDP_AID_not_possible_not_possible_when_PPR2_is_set ()//PPR:0520
238{
239	initial_condition_PROFILE_OPERATIONAL3_is_Disabled();
240	var ISD_P_Test03 = curProfile_ISD_P_AID;
241
242	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
243	var ISD_P_Test01 = curProfile_ISD_P_AID;
244	
245	initial_condition_PROFILE_OPERATIONAL2_is_Enabled();
246	var ISD_P_Test02 = curProfile_ISD_P_AID;
247	
248	curDis.TestStepStart("读卡器向卡片发送 StoreData命令,执行SetNickname,profile3的Nickname为NICKNAME3;");
249	var setNicknameRequest = new SetNicknameRequest();
250	setNicknameRequest.iccid = ICCID_OP_PROF3;
251	setNicknameRequest.profileNickname = NICKNAME3;
252	setNicknameRequest.GenHexData();
253	var respData = LPAd_Transport_data_to_eUICC(setNicknameRequest.hexData);
254	curStrHandle.CheckData("BF2903800100", respData,"SetNickname Response");
255
256	tracenamestr = "Case3异常测试:当配置文件策略规则为“禁止删除此配置文件”时,无法删除该运营配置文件。";
257	curDis.TraceStart(sno++,tracenamestr);
258	
259	curLogicChannel = 0;
260	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
261	Ini_powerOn_eUICC_LPAe_not_activate();
262	
263	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
264	TS_MANAGE_CHANNEL_OPEN();
265	
266	curLogicChannel = 1;
267	
268	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
269	TS_SELECT("Select ISD",ISD_R_AID,"9000");
270	
271	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DeleteProfileRequest,通过ISD_P_AID删除profile3;");
272	var deleProfileRequest = new DeleteProfileRequest();
273	deleProfileRequest.isdpAid = ISD_P_Test03;
274	deleProfileRequest.GenHexData();
275	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"91","00","9000");   
276	
277	curStrHandle.CheckData("BF3303800103", respData, "DeleteProfileResponse");
278	
279	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
280	var proInfoListRequest = new ProfileInfoListRequest();
281	proInfoListRequest.GenHexData();
282	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
283	
284	
285	var proInfoListResponse = new  ProfileInfoListResponse();
286	proInfoListResponse.checkCardResDataFormat(respData);
287	
288	try
289	{
290		curStrHandle.CheckData(ICCID_OP_PROF3, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
291		curStrHandle.CheckData(ISD_P_Test03, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
292		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
293		curStrHandle.CheckData(NICKNAME3, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileNickname, "nickname");
294		
295		
296		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[1].iccid, "ICCID");
297		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[1].isdpAid, "ISD-P AID");
298		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[1].profileState, "profile State");
299		
300		curStrHandle.CheckData(ICCID_OP_PROF2, proInfoListResponse.profileInfoListOk.arrOfElement[2].iccid, "ICCID");
301		curStrHandle.CheckData(ISD_P_Test02, proInfoListResponse.profileInfoListOk.arrOfElement[2].isdpAid, "ISD-P AID");
302		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[2].profileState, "profile State");
303		
304		
305	}catch(e){
306		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
307	}
308	
309	
310	RecoverCard();
311}
312
313function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_06_Delete_Profile_by_ICCID_not_possible_not_possible_when_PPR2_is_set ()//PPR:0520
314{
315	initial_condition_PROFILE_OPERATIONAL3_is_Disabled();
316	var ISD_P_Test03 = curProfile_ISD_P_AID;
317
318	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
319	var ISD_P_Test01 = curProfile_ISD_P_AID;
320	
321	initial_condition_PROFILE_OPERATIONAL2_is_Enabled();
322	var ISD_P_Test02 = curProfile_ISD_P_AID;
323	
324	curDis.TestStepStart("读卡器向卡片发送 StoreData命令,执行SetNickname,profile3的Nickname为NICKNAME3;");
325	var setNicknameRequest = new SetNicknameRequest();
326	setNicknameRequest.iccid = ICCID_OP_PROF3;
327	setNicknameRequest.profileNickname = NICKNAME3;
328	setNicknameRequest.GenHexData();
329	var respData = LPAd_Transport_data_to_eUICC(setNicknameRequest.hexData);
330	curStrHandle.CheckData("BF2903800100", respData,"SetNickname Response");
331
332	tracenamestr = "Case3异常测试:当配置文件策略规则为“禁止删除此配置文件”时,无法删除该运营配置文件。";
333	curDis.TraceStart(sno++,tracenamestr);
334	
335	curLogicChannel = 0;
336	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
337	Ini_powerOn_eUICC_LPAe_not_activate();
338	
339	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
340	TS_MANAGE_CHANNEL_OPEN();
341	
342	curLogicChannel = 1;
343	
344	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
345	TS_SELECT("Select ISD",ISD_R_AID,"9000");
346	
347	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DeleteProfileRequest,通过ICCID删除profile3;");
348	var deleProfileRequest = new DeleteProfileRequest();
349    deleProfileRequest.iccid = ICCID_OP_PROF3;
350	deleProfileRequest.GenHexData();
351	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"91","00","9000");
352	
353	curStrHandle.CheckData("BF3303800103", respData, "DeleteProfileResponse");
354	
355	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
356	var proInfoListRequest = new ProfileInfoListRequest();
357	proInfoListRequest.GenHexData();
358	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
359	
360	
361	var proInfoListResponse = new  ProfileInfoListResponse();
362	proInfoListResponse.checkCardResDataFormat(respData);
363	
364	try
365	{
366		curStrHandle.CheckData(ICCID_OP_PROF3, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
367		curStrHandle.CheckData(ISD_P_Test03, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
368		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
369		curStrHandle.CheckData(NICKNAME3, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileNickname, "nickname");
370		
371		
372		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[1].iccid, "ICCID");
373		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[1].isdpAid, "ISD-P AID");
374		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[1].profileState, "profile State");
375		
376		curStrHandle.CheckData(ICCID_OP_PROF2, proInfoListResponse.profileInfoListOk.arrOfElement[2].iccid, "ICCID");
377		curStrHandle.CheckData(ISD_P_Test02, proInfoListResponse.profileInfoListOk.arrOfElement[2].isdpAid, "ISD-P AID");
378		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[2].profileState, "profile State");
379		
380		
381	}catch(e){
382		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
383	}
384	
385	
386	RecoverCard();
387}
388
-cas 盲生成TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4/Import/TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4.js423 行 / 33920 字符 / gb18030
1// Author: 卡思Cas智能体
2// Date: 20261004-021956
3// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_ES10c.DeleteProfile_ErrorCases_Case4,Test Sequence #01-#06 (Error: unknown ISD-P AID / unknown ICCID / Enabled by ISD-P AID / Enabled by ICCID / PPR2 by ISD-P AID / PPR2 by ICCID),适用性 M。
4// Test points: IC2-IC1-K1-C1 ATR_present;IC2-IC1-K2-C2 FCP_Template;IC2-IC1-K2-C4 SW
5//   IC2-IC1-K3-C4 SW;IC2-IC1-K4-C4 final SW;IC3-IC2-K1-C4 SW;IC3-IC2-K1-C3 CHANNEL_NUMBER extracted
6//   IC3-IC2-K2-C4 SW;S3-C1 SW;S3-C2 deleteResult iccidOrAidNotFound;S4-C1 SW
7//   S4-C2 contains PROFILE_INFO1_DISABLED;S4-C2 contains PROFILE_INFO2_ENABLED
8//   IC6-IC1-K1-C1 ATR_present;IC6-IC1-K2-C2 FCP_Template;IC6-IC1-K2-C4 SW;IC6-IC1-K3-C4 SW
9//   IC6-IC1-K4-C4 final SW;IC7-IC2-K1-C4 SW;IC7-IC2-K1-C3 CHANNEL_NUMBER extracted;IC7-IC2-K2-C4 SW
10//   S7-C1 SW;S7-C2 deleteResult iccidOrAidNotFound;S8-C1 SW;S8-C2 contains PROFILE_INFO1_DISABLED
11//   S8-C2 contains PROFILE_INFO2_ENABLED;IC10-IC1-K1-C1 ATR_present;IC10-IC1-K2-C2 FCP_Template
12//   IC10-IC1-K2-C4 SW;IC10-IC1-K3-C4 SW;IC10-IC1-K4-C4 final SW;IC11-IC2-K1-C4 SW
13//   IC11-IC2-K1-C3 CHANNEL_NUMBER extracted;IC11-IC2-K2-C4 SW;S11-C1 SW
14//   S11-C2 deleteResult profileNotInDisabledState;S12-C1 SW;S12-C2 contains PROFILE_INFO1_DISABLED
15//   S12-C2 contains PROFILE_INFO2_ENABLED;IC14-IC1-K1-C1 ATR_present;IC14-IC1-K2-C2 FCP_Template
16//   IC14-IC1-K2-C4 SW;IC14-IC1-K3-C4 SW;IC14-IC1-K4-C4 final SW;IC15-IC2-K1-C4 SW
17//   IC15-IC2-K1-C3 CHANNEL_NUMBER extracted;IC15-IC2-K2-C4 SW;S15-C1 SW
18//   S15-C2 deleteResult profileNotInDisabledState;S16-C1 SW;S16-C2 contains PROFILE_INFO1_DISABLED
19//   S16-C2 contains PROFILE_INFO2_ENABLED;IC18-IC1-K1-C1 ATR_present;IC18-IC1-K2-C2 FCP_Template
20//   IC18-IC1-K2-C4 SW;IC18-IC1-K3-C4 SW;IC18-IC1-K4-C4 final SW;IC19-IC2-K1-C4 SW
21//   IC19-IC2-K1-C3 CHANNEL_NUMBER extracted;IC19-IC2-K2-C4 SW;S19-C1 SW
22//   S19-C2 deleteResult disallowedByPolicy;S20-C1 SW;S20-C2 contains PROFILE_INFO1_DISABLED
23//   S20-C2 contains PROFILE_INFO2_ENABLED;S20-C2 contains PROFILE_INFO3;IC22-IC1-K1-C1 ATR_present
24//   IC22-IC1-K2-C2 FCP_Template;IC22-IC1-K2-C4 SW;IC22-IC1-K3-C4 SW;IC22-IC1-K4-C4 final SW
25//   IC23-IC2-K1-C4 SW;IC23-IC2-K1-C3 CHANNEL_NUMBER extracted;IC23-IC2-K2-C4 SW;S23-C1 SW
26//   S23-C2 deleteResult disallowedByPolicy;S24-C1 SW;S24-C2 contains PROFILE_INFO1_DISABLED
27//   S24-C2 contains PROFILE_INFO2_ENABLED;S24-C2 contains PROFILE_INFO3
28// 本函数由 CaseIR 4.2.23.2.4 编译生成(fullwave-blindgen-live-70-W1-laneA5,SGP.23 v1.16 × SGP.22 v2.7):字节权威=CaseIR,非誊录黄金脚本。
29// Value-free template: every data byte is injected from CaseIR fields; no scaffold globals (see docs/speconly/compile-symbol-migration.md).
30// 适用性 M:编译期门,运行时由 harness 环境前置承担。
31function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_01_06_merged() {
32    var bind = curBind;
33    var profileAidSession = BindEs10xProcProfileDynamic.beginSession(bind, "TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_01_06_merged");
34    // runtime-bound payload: ISD_P_AID2 stays in execution domain; context_lineage: {"context_id": "6c06e5257cb7cc55", "authority_reference": "E_tc_4223/330-330/G_annexB_dynamic:L52"}
35    var cardCtxLoad1 = BindCardContext.load(bind, profileAidSession, "ISD_P_AID2", {"tag":"4F","bytes":16,"range":{"minHex":"A0000005591010FFFFFFFF8900001000","maxHex":"A0000005591010FFFFFFFF8900FFFF00","lastByte":"00"}}, {token: CARD_CONTEXT_TOKEN, domainId: CARD_CONTEXT_DOMAIN});
36    // runtime-bound payload: ISD_P_AID3 stays in execution domain; context_lineage: {"context_id": "6c06e5257cb7cc55", "authority_reference": "E_tc_4223/373-373/G_annexB_dynamic:L53"}
37    var cardCtxLoad2 = BindCardContext.load(bind, profileAidSession, "ISD_P_AID3", {"tag":"4F","bytes":16,"range":{"minHex":"A0000005591010FFFFFFFF8900001000","maxHex":"A0000005591010FFFFFFFF8900FFFF00","lastByte":"00"}}, {token: CARD_CONTEXT_TOKEN, domainId: CARD_CONTEXT_DOMAIN});
38    // runtime-bound payload: ISD_P_AIDX stays in execution domain; context_lineage: {"context_id": "6c06e5257cb7cc55", "authority_reference": "E_tc_4223/281-281/G_annexB_dynamic:L55"}
39    var cardCtxLoad3 = BindCardContext.load(bind, profileAidSession, "ISD_P_AIDX", {"tag":"4F","bytes":16,"range":{"minHex":"A0000005591010FFFFFFFF8900001000","maxHex":"A0000005591010FFFFFFFF8900FFFF00","lastByte":"00"}}, {token: CARD_CONTEXT_TOKEN, domainId: CARD_CONTEXT_DOMAIN});
40    // GIC-1 卡态编排:PROFILE_OPERATIONAL1 已安装;PROFILE_OPERATIONAL2 已安装: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
41    // S1-IC <ISD_P_AIDX> 标识的 Profile 未装载;PROF1 Disabled(对应 <ISD_P_AID1>);PROF2 Enabled(对应 <ISD_P_AID2>): declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
42    // S2-IC #ICCID_OP_PROFX 标识的 Profile 未装载;PROF1 Disabled;PROF2 Enabled: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
43    // S3/S4-IC PROF1 Disabled(对应 <ISD_P_AID1>);PROF2 Enabled(对应 <ISD_P_AID2>): declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
44    // S5/S6-IC PROFILE_OPERATIONAL3 已安装且 Disabled(对应 <ISD_P_AID3>,Nickname=#NICKNAME3);PROF1 Disabled;PROF2 Enabled: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
45    // PREFLIGHT_CONTEXT AUTHORIZED_DISCOVERY: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
46
47    // 步骤 1:MTD_STORE_DATA(tc_step)
48    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
49    var s1 = bind.sendApdu("81", "E2", "91", "00", "BF2D035C014F", "00", "9000");
50
51    // IC ref inline @E 步骤 2(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
52    var s26 = bind.resetAndAtr();
53    bind.checkData("IC2-IC1-K1-C1 ATR_present", "1", s26.atr_hex !== "" ? "1" : "0");
54
55    // IC ref inline @E 步骤 2(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
56    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
57    var s27 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
58    bind.checkData("IC2-IC1-K2-C2 FCP_Template", "1", s27.resp.length > 0 ? "1" : "0");
59    bind.checkData("IC2-IC1-K2-C4 SW", "9000", s27.sw);
60
61    // IC ref inline @E 步骤 2(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
62    var s28 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
63    bind.checkData("IC2-IC1-K3-C4 SW", "9000", s28.sw);
64
65    // IC ref inline @E 步骤 2(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
66    var steady29 = bind.runToSteadyState(function () {
67        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
68    });
69    bind.checkData("IC2-IC1-K4-C4 final SW", "9000", steady29.final.sw);
70
71    // IC ref inline @E 步骤 3(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
72    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
73    var s30 = bind.manageChannelOpen("9000");
74    bind.checkData("IC3-IC2-K1-C4 SW", "9000", s30.sw);
75    bind.checkData("IC3-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s30.chan !== null ? "1" : "0");
76
77    // IC ref inline @E 步骤 3(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
78    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
79    var s31 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
80    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
81    bind.checkData("IC3-IC2-K2-C4 SW", "9000", s31.sw);
82
83    // 步骤 4:MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ32_049, RQ57_154, RQ57_157, RQ57_158, RQ57_159)
84    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
85    var sdCla4 = s30.chan !== null ? (s30.chan <= 3 ? 128 + s30.chan : 188 + s30.chan).toString(16).toUpperCase() : null;
86    // runtime-bound payload: ISD_P_AIDX stays in execution domain
87    var s4 = bind.sendApdu(sdCla4, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AIDX", "BF33124F10", "", profileAidSession), "00", "9000");
88    bind.checkData("S3-C1 SW", "9000", s4.sw);
89    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AIDX", s4.cmd, profileAidSession);
90    var r2w4 = BindGecaProc.parseGecaResponse(s4.resp, {outer: "BF33", required: ["80"]});
91    bind.checkData("S3-C2 deleteResult iccidOrAidNotFound", "01", (r2w4.ok && r2w4.fields["80"] === "01") ? "01" : (r2w4.fields["80"] || "absent"));
92
93    // 步骤 5:MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ32_049, RQ57_154, RQ57_157, RQ57_158, RQ57_159)
94    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
95    var sdCla5 = s30.chan !== null ? (s30.chan <= 3 ? 128 + s30.chan : 188 + s30.chan).toString(16).toUpperCase() : null;
96    var s5 = bind.sendApdu(sdCla5, "E2", "91", "00", "BF2D00", "00", "9000");
97    bind.checkData("S4-C1 SW", "9000", s5.sw);
98    var r2p5 = BindEs10xProcProfile.walkChoiceList(s5.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
99    var r2has5_0 = false;
100    for (var r2i5_0 = 0; r2i5_0 < r2p5.elements.length; r2i5_0++) {
101        var f = r2p5.elements[r2i5_0].fields;
102        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has5_0 = true; break; }
103    }
104    bind.checkData("S4-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p5.branch_tag === "A0" && r2has5_0) ? "1" : "0");
105    var r2has5_1 = false;
106    for (var r2i5_1 = 0; r2i5_1 < r2p5.elements.length; r2i5_1++) {
107        var f = r2p5.elements[r2i5_1].fields;
108        if (f["5A"] === "989209013254769810F9" && f["9F70"] === "01") { r2has5_1 = true; break; }
109    }
110    bind.checkData("S4-C2 contains PROFILE_INFO2_ENABLED", "1", (r2p5.branch_tag === "A0" && r2has5_1) ? "1" : "0");
111
112    // IC ref inline @E 步骤 6(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
113    var s32 = bind.resetAndAtr();
114    bind.checkData("IC6-IC1-K1-C1 ATR_present", "1", s32.atr_hex !== "" ? "1" : "0");
115
116    // IC ref inline @E 步骤 6(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
117    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
118    var s33 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
119    bind.checkData("IC6-IC1-K2-C2 FCP_Template", "1", s33.resp.length > 0 ? "1" : "0");
120    bind.checkData("IC6-IC1-K2-C4 SW", "9000", s33.sw);
121
122    // IC ref inline @E 步骤 6(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
123    var s34 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
124    bind.checkData("IC6-IC1-K3-C4 SW", "9000", s34.sw);
125
126    // IC ref inline @E 步骤 6(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
127    var steady35 = bind.runToSteadyState(function () {
128        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
129    });
130    bind.checkData("IC6-IC1-K4-C4 final SW", "9000", steady35.final.sw);
131
132    // IC ref inline @E 步骤 7(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
133    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
134    var s36 = bind.manageChannelOpen("9000");
135    bind.checkData("IC7-IC2-K1-C4 SW", "9000", s36.sw);
136    bind.checkData("IC7-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s36.chan !== null ? "1" : "0");
137
138    // IC ref inline @E 步骤 7(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
139    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
140    var s37 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
141    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
142    bind.checkData("IC7-IC2-K2-C4 SW", "9000", s37.sw);
143
144    // 步骤 8:MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ32_049, RQ57_154, RQ57_157, RQ57_158, RQ57_159)
145    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
146    var sdCla8 = s36.chan !== null ? (s36.chan <= 3 ? 128 + s36.chan : 188 + s36.chan).toString(16).toUpperCase() : null;
147    var s8 = bind.sendApdu(sdCla8, "E2", "91", "00", "BF330C5A0A9892090143658709FFFF", "00", "9000");
148    bind.checkData("S7-C1 SW", "9000", s8.sw);
149    var r2w8 = BindGecaProc.parseGecaResponse(s8.resp, {outer: "BF33", required: ["80"]});
150    bind.checkData("S7-C2 deleteResult iccidOrAidNotFound", "01", (r2w8.ok && r2w8.fields["80"] === "01") ? "01" : (r2w8.fields["80"] || "absent"));
151
152    // 步骤 9:MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ32_049, RQ57_154, RQ57_157, RQ57_158, RQ57_159)
153    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
154    var sdCla9 = s36.chan !== null ? (s36.chan <= 3 ? 128 + s36.chan : 188 + s36.chan).toString(16).toUpperCase() : null;
155    var s9 = bind.sendApdu(sdCla9, "E2", "91", "00", "BF2D00", "00", "9000");
156    bind.checkData("S8-C1 SW", "9000", s9.sw);
157    var r2p9 = BindEs10xProcProfile.walkChoiceList(s9.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
158    var r2has9_0 = false;
159    for (var r2i9_0 = 0; r2i9_0 < r2p9.elements.length; r2i9_0++) {
160        var f = r2p9.elements[r2i9_0].fields;
161        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has9_0 = true; break; }
162    }
163    bind.checkData("S8-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p9.branch_tag === "A0" && r2has9_0) ? "1" : "0");
164    var r2has9_1 = false;
165    for (var r2i9_1 = 0; r2i9_1 < r2p9.elements.length; r2i9_1++) {
166        var f = r2p9.elements[r2i9_1].fields;
167        if (f["5A"] === "989209013254769810F9" && f["9F70"] === "01") { r2has9_1 = true; break; }
168    }
169    bind.checkData("S8-C2 contains PROFILE_INFO2_ENABLED", "1", (r2p9.branch_tag === "A0" && r2has9_1) ? "1" : "0");
170
171    // IC ref inline @E 步骤 10(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
172    var s38 = bind.resetAndAtr();
173    bind.checkData("IC10-IC1-K1-C1 ATR_present", "1", s38.atr_hex !== "" ? "1" : "0");
174
175    // IC ref inline @E 步骤 10(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
176    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
177    var s39 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
178    bind.checkData("IC10-IC1-K2-C2 FCP_Template", "1", s39.resp.length > 0 ? "1" : "0");
179    bind.checkData("IC10-IC1-K2-C4 SW", "9000", s39.sw);
180
181    // IC ref inline @E 步骤 10(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
182    var s40 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
183    bind.checkData("IC10-IC1-K3-C4 SW", "9000", s40.sw);
184
185    // IC ref inline @E 步骤 10(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
186    var steady41 = bind.runToSteadyState(function () {
187        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
188    });
189    bind.checkData("IC10-IC1-K4-C4 final SW", "9000", steady41.final.sw);
190
191    // IC ref inline @E 步骤 11(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
192    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
193    var s42 = bind.manageChannelOpen("9000");
194    bind.checkData("IC11-IC2-K1-C4 SW", "9000", s42.sw);
195    bind.checkData("IC11-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s42.chan !== null ? "1" : "0");
196
197    // IC ref inline @E 步骤 11(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
198    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
199    var s43 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
200    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
201    bind.checkData("IC11-IC2-K2-C4 SW", "9000", s43.sw);
202
203    // 步骤 12:MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ32_049, RQ32_050, RQ57_154, RQ57_155, RQ57_158, RQ57_159)
204    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
205    var sdCla12 = s42.chan !== null ? (s42.chan <= 3 ? 128 + s42.chan : 188 + s42.chan).toString(16).toUpperCase() : null;
206    // runtime-bound payload: ISD_P_AID2 stays in execution domain
207    var s12 = bind.sendApdu(sdCla12, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID2", "BF33124F10", "", profileAidSession), "00", "9000");
208    bind.checkData("S11-C1 SW", "9000", s12.sw);
209    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID2", s12.cmd, profileAidSession);
210    var r2w12 = BindGecaProc.parseGecaResponse(s12.resp, {outer: "BF33", required: ["80"]});
211    bind.checkData("S11-C2 deleteResult profileNotInDisabledState", "02", (r2w12.ok && r2w12.fields["80"] === "02") ? "02" : (r2w12.fields["80"] || "absent"));
212
213    // 步骤 13:MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ32_049, RQ32_050, RQ57_154, RQ57_155, RQ57_158, RQ57_159)
214    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
215    var sdCla13 = s42.chan !== null ? (s42.chan <= 3 ? 128 + s42.chan : 188 + s42.chan).toString(16).toUpperCase() : null;
216    var s13 = bind.sendApdu(sdCla13, "E2", "91", "00", "BF2D00", "00", "9000");
217    bind.checkData("S12-C1 SW", "9000", s13.sw);
218    var r2p13 = BindEs10xProcProfile.walkChoiceList(s13.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
219    var r2has13_0 = false;
220    for (var r2i13_0 = 0; r2i13_0 < r2p13.elements.length; r2i13_0++) {
221        var f = r2p13.elements[r2i13_0].fields;
222        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has13_0 = true; break; }
223    }
224    bind.checkData("S12-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p13.branch_tag === "A0" && r2has13_0) ? "1" : "0");
225    var r2has13_1 = false;
226    for (var r2i13_1 = 0; r2i13_1 < r2p13.elements.length; r2i13_1++) {
227        var f = r2p13.elements[r2i13_1].fields;
228        if (f["5A"] === "989209013254769810F9" && f["9F70"] === "01") { r2has13_1 = true; break; }
229    }
230    bind.checkData("S12-C2 contains PROFILE_INFO2_ENABLED", "1", (r2p13.branch_tag === "A0" && r2has13_1) ? "1" : "0");
231
232    // IC ref inline @E 步骤 14(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
233    var s44 = bind.resetAndAtr();
234    bind.checkData("IC14-IC1-K1-C1 ATR_present", "1", s44.atr_hex !== "" ? "1" : "0");
235
236    // IC ref inline @E 步骤 14(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
237    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
238    var s45 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
239    bind.checkData("IC14-IC1-K2-C2 FCP_Template", "1", s45.resp.length > 0 ? "1" : "0");
240    bind.checkData("IC14-IC1-K2-C4 SW", "9000", s45.sw);
241
242    // IC ref inline @E 步骤 14(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
243    var s46 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
244    bind.checkData("IC14-IC1-K3-C4 SW", "9000", s46.sw);
245
246    // IC ref inline @E 步骤 14(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
247    var steady47 = bind.runToSteadyState(function () {
248        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
249    });
250    bind.checkData("IC14-IC1-K4-C4 final SW", "9000", steady47.final.sw);
251
252    // IC ref inline @E 步骤 15(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
253    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
254    var s48 = bind.manageChannelOpen("9000");
255    bind.checkData("IC15-IC2-K1-C4 SW", "9000", s48.sw);
256    bind.checkData("IC15-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s48.chan !== null ? "1" : "0");
257
258    // IC ref inline @E 步骤 15(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
259    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
260    var s49 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
261    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
262    bind.checkData("IC15-IC2-K2-C4 SW", "9000", s49.sw);
263
264    // 步骤 16:MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ32_049, RQ32_050, RQ57_154, RQ57_155, RQ57_158, RQ57_159)
265    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
266    var sdCla16 = s48.chan !== null ? (s48.chan <= 3 ? 128 + s48.chan : 188 + s48.chan).toString(16).toUpperCase() : null;
267    var s16 = bind.sendApdu(sdCla16, "E2", "91", "00", "BF330C5A0A989209013254769810F9", "00", "9000");
268    bind.checkData("S15-C1 SW", "9000", s16.sw);
269    var r2w16 = BindGecaProc.parseGecaResponse(s16.resp, {outer: "BF33", required: ["80"]});
270    bind.checkData("S15-C2 deleteResult profileNotInDisabledState", "02", (r2w16.ok && r2w16.fields["80"] === "02") ? "02" : (r2w16.fields["80"] || "absent"));
271
272    // 步骤 17:MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ32_049, RQ32_050, RQ57_154, RQ57_155, RQ57_158, RQ57_159)
273    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
274    var sdCla17 = s48.chan !== null ? (s48.chan <= 3 ? 128 + s48.chan : 188 + s48.chan).toString(16).toUpperCase() : null;
275    var s17 = bind.sendApdu(sdCla17, "E2", "91", "00", "BF2D00", "00", "9000");
276    bind.checkData("S16-C1 SW", "9000", s17.sw);
277    var r2p17 = BindEs10xProcProfile.walkChoiceList(s17.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
278    var r2has17_0 = false;
279    for (var r2i17_0 = 0; r2i17_0 < r2p17.elements.length; r2i17_0++) {
280        var f = r2p17.elements[r2i17_0].fields;
281        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has17_0 = true; break; }
282    }
283    bind.checkData("S16-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p17.branch_tag === "A0" && r2has17_0) ? "1" : "0");
284    var r2has17_1 = false;
285    for (var r2i17_1 = 0; r2i17_1 < r2p17.elements.length; r2i17_1++) {
286        var f = r2p17.elements[r2i17_1].fields;
287        if (f["5A"] === "989209013254769810F9" && f["9F70"] === "01") { r2has17_1 = true; break; }
288    }
289    bind.checkData("S16-C2 contains PROFILE_INFO2_ENABLED", "1", (r2p17.branch_tag === "A0" && r2has17_1) ? "1" : "0");
290
291    // IC ref inline @E 步骤 18(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
292    var s50 = bind.resetAndAtr();
293    bind.checkData("IC18-IC1-K1-C1 ATR_present", "1", s50.atr_hex !== "" ? "1" : "0");
294
295    // IC ref inline @E 步骤 18(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
296    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
297    var s51 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
298    bind.checkData("IC18-IC1-K2-C2 FCP_Template", "1", s51.resp.length > 0 ? "1" : "0");
299    bind.checkData("IC18-IC1-K2-C4 SW", "9000", s51.sw);
300
301    // IC ref inline @E 步骤 18(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
302    var s52 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
303    bind.checkData("IC18-IC1-K3-C4 SW", "9000", s52.sw);
304
305    // IC ref inline @E 步骤 18(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
306    var steady53 = bind.runToSteadyState(function () {
307        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
308    });
309    bind.checkData("IC18-IC1-K4-C4 final SW", "9000", steady53.final.sw);
310
311    // IC ref inline @E 步骤 19(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
312    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
313    var s54 = bind.manageChannelOpen("9000");
314    bind.checkData("IC19-IC2-K1-C4 SW", "9000", s54.sw);
315    bind.checkData("IC19-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s54.chan !== null ? "1" : "0");
316
317    // IC ref inline @E 步骤 19(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
318    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
319    var s55 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
320    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
321    bind.checkData("IC19-IC2-K2-C4 SW", "9000", s55.sw);
322
323    // 步骤 20:MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ29_002, RQ29_022, RQ32_049, RQ32_050, RQ57_154, RQ57_156, RQ57_158, RQ57_159)
324    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
325    var sdCla20 = s54.chan !== null ? (s54.chan <= 3 ? 128 + s54.chan : 188 + s54.chan).toString(16).toUpperCase() : null;
326    // runtime-bound payload: ISD_P_AID3 stays in execution domain
327    var s20 = bind.sendApdu(sdCla20, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID3", "BF33124F10", "", profileAidSession), "00", "9000");
328    bind.checkData("S19-C1 SW", "9000", s20.sw);
329    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID3", s20.cmd, profileAidSession);
330    var r2w20 = BindGecaProc.parseGecaResponse(s20.resp, {outer: "BF33", required: ["80"]});
331    bind.checkData("S19-C2 deleteResult disallowedByPolicy", "03", (r2w20.ok && r2w20.fields["80"] === "03") ? "03" : (r2w20.fields["80"] || "absent"));
332
333    // 步骤 21:MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ29_002, RQ32_049, RQ32_050, RQ57_154, RQ57_155, RQ57_158, RQ57_159)
334    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
335    var sdCla21 = s54.chan !== null ? (s54.chan <= 3 ? 128 + s54.chan : 188 + s54.chan).toString(16).toUpperCase() : null;
336    var s21 = bind.sendApdu(sdCla21, "E2", "91", "00", "BF2D00", "00", "9000");
337    bind.checkData("S20-C1 SW", "9000", s21.sw);
338    var r2p21 = BindEs10xProcProfile.walkChoiceList(s21.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
339    var r2has21_0 = false;
340    for (var r2i21_0 = 0; r2i21_0 < r2p21.elements.length; r2i21_0++) {
341        var f = r2p21.elements[r2i21_0].fields;
342        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has21_0 = true; break; }
343    }
344    bind.checkData("S20-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p21.branch_tag === "A0" && r2has21_0) ? "1" : "0");
345    var r2has21_1 = false;
346    for (var r2i21_1 = 0; r2i21_1 < r2p21.elements.length; r2i21_1++) {
347        var f = r2p21.elements[r2i21_1].fields;
348        if (f["5A"] === "989209013254769810F9" && f["9F70"] === "01") { r2has21_1 = true; break; }
349    }
350    bind.checkData("S20-C2 contains PROFILE_INFO2_ENABLED", "1", (r2p21.branch_tag === "A0" && r2has21_1) ? "1" : "0");
351    var r2has21_2 = false;
352    for (var r2i21_2 = 0; r2i21_2 < r2p21.elements.length; r2i21_2++) {
353        var f = r2p21.elements[r2i21_2].fields;
354        if (f["5A"] === "989209014365870921F5" && f["9F70"] === "00") { r2has21_2 = true; break; }
355    }
356    bind.checkData("S20-C2 contains PROFILE_INFO3", "1", (r2p21.branch_tag === "A0" && r2has21_2) ? "1" : "0");
357
358    // IC ref inline @E 步骤 22(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
359    var s56 = bind.resetAndAtr();
360    bind.checkData("IC22-IC1-K1-C1 ATR_present", "1", s56.atr_hex !== "" ? "1" : "0");
361
362    // IC ref inline @E 步骤 22(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
363    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
364    var s57 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
365    bind.checkData("IC22-IC1-K2-C2 FCP_Template", "1", s57.resp.length > 0 ? "1" : "0");
366    bind.checkData("IC22-IC1-K2-C4 SW", "9000", s57.sw);
367
368    // IC ref inline @E 步骤 22(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
369    var s58 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
370    bind.checkData("IC22-IC1-K3-C4 SW", "9000", s58.sw);
371
372    // IC ref inline @E 步骤 22(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
373    var steady59 = bind.runToSteadyState(function () {
374        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
375    });
376    bind.checkData("IC22-IC1-K4-C4 final SW", "9000", steady59.final.sw);
377
378    // IC ref inline @E 步骤 23(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
379    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
380    var s60 = bind.manageChannelOpen("9000");
381    bind.checkData("IC23-IC2-K1-C4 SW", "9000", s60.sw);
382    bind.checkData("IC23-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s60.chan !== null ? "1" : "0");
383
384    // IC ref inline @E 步骤 23(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
385    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
386    var s61 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
387    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
388    bind.checkData("IC23-IC2-K2-C4 SW", "9000", s61.sw);
389
390    // 步骤 24:MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ29_002, RQ29_022, RQ32_049, RQ32_050, RQ57_154, RQ57_156, RQ57_158, RQ57_159)
391    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
392    var sdCla24 = s60.chan !== null ? (s60.chan <= 3 ? 128 + s60.chan : 188 + s60.chan).toString(16).toUpperCase() : null;
393    var s24 = bind.sendApdu(sdCla24, "E2", "91", "00", "BF330C5A0A989209014365870921F5", "00", "9000");
394    bind.checkData("S23-C1 SW", "9000", s24.sw);
395    var r2w24 = BindGecaProc.parseGecaResponse(s24.resp, {outer: "BF33", required: ["80"]});
396    bind.checkData("S23-C2 deleteResult disallowedByPolicy", "03", (r2w24.ok && r2w24.fields["80"] === "03") ? "03" : (r2w24.fields["80"] || "absent"));
397
398    // 步骤 25:MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ29_002, RQ32_049, RQ32_050, RQ57_154, RQ57_155, RQ57_158, RQ57_159)
399    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
400    var sdCla25 = s60.chan !== null ? (s60.chan <= 3 ? 128 + s60.chan : 188 + s60.chan).toString(16).toUpperCase() : null;
401    var s25 = bind.sendApdu(sdCla25, "E2", "91", "00", "BF2D00", "00", "9000");
402    bind.checkData("S24-C1 SW", "9000", s25.sw);
403    var r2p25 = BindEs10xProcProfile.walkChoiceList(s25.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
404    var r2has25_0 = false;
405    for (var r2i25_0 = 0; r2i25_0 < r2p25.elements.length; r2i25_0++) {
406        var f = r2p25.elements[r2i25_0].fields;
407        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has25_0 = true; break; }
408    }
409    bind.checkData("S24-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p25.branch_tag === "A0" && r2has25_0) ? "1" : "0");
410    var r2has25_1 = false;
411    for (var r2i25_1 = 0; r2i25_1 < r2p25.elements.length; r2i25_1++) {
412        var f = r2p25.elements[r2i25_1].fields;
413        if (f["5A"] === "989209013254769810F9" && f["9F70"] === "01") { r2has25_1 = true; break; }
414    }
415    bind.checkData("S24-C2 contains PROFILE_INFO2_ENABLED", "1", (r2p25.branch_tag === "A0" && r2has25_1) ? "1" : "0");
416    var r2has25_2 = false;
417    for (var r2i25_2 = 0; r2i25_2 < r2p25.elements.length; r2i25_2++) {
418        var f = r2p25.elements[r2i25_2].fields;
419        if (f["5A"] === "989209014365870921F5" && f["9F70"] === "00") { r2has25_2 = true; break; }
420    }
421    bind.checkData("S24-C2 contains PROFILE_INFO3", "1", (r2p25.branch_tag === "A0" && r2has25_2) ? "1" : "0");
422}
423

完整 unified diff

行级差异:新增 421 行 / 删除 386 行(以 -man 为基准,unified 上下文 3 行)。

展开 diff(812 行)
--- -man
+++ -cas
@@ -1,388 +1,423 @@
-// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_01_Delete_Profile_not_possible_with_unknown_ISD_P_AID + TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_02_Delete_Profile_not_possible_with_unknown_ICCID + TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_03_Delete_Profile_by_ISDP_AID_not_possible_when_this_Operational_Profile_is_in_Enabled_state + TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_04_Delete_Profile_by_ICCID_not_possible_when_this_Operational_Profile_is_in_Enabled_state + TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_05_Delete_Profile_by_ISDP_AID_not_possible_not_possible_when_PPR2_is_set + TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_06_Delete_Profile_by_ICCID_not_possible_not_possible_when_PPR2_is_set (extracted verbatim)
-
-function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_01_Delete_Profile_not_possible_with_unknown_ISD_P_AID()
-{
-	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	initial_condition_PROFILE_OPERATIONAL2_is_Enabled();
-	var ISD_P_Test02 = curProfile_ISD_P_AID;
-
-	tracenamestr = "测试目的:通过未知的ISD-P AID删除profile应不成功";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DeleteProfileRequest,通过ISD-P AID删除profile;");
-	var deleProfileRequest = new DeleteProfileRequest();
-	deleProfileRequest.isdpAid = ISD_P_AIDX;
-	deleProfileRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"91","00","9000");
-	
-	curStrHandle.CheckData("BF3303800101", respData, "DeleteProfileResponse");
-	
-		
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.tagList = "5A4F9F70";
-	proInfoListRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
-	
-	
-	var proInfoListResponse = new  ProfileInfoListResponse();
-	proInfoListResponse.checkCardResDataFormat(respData);
-	
-	try
-	{
-		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
-		
-		curStrHandle.CheckData(ICCID_OP_PROF2, proInfoListResponse.profileInfoListOk.arrOfElement[1].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test02, proInfoListResponse.profileInfoListOk.arrOfElement[1].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[1].profileState, "profile State");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_02_Delete_Profile_not_possible_with_unknown_ICCID()
-{
-	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	initial_condition_PROFILE_OPERATIONAL2_is_Enabled();
-	var ISD_P_Test02 = curProfile_ISD_P_AID;
-
-	tracenamestr = "测试目的:通过未知的ICCID删除profile应不成功";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DeleteProfileRequest,通过ISD-P AID删除profile;");
-	var deleProfileRequest = new DeleteProfileRequest();
-	deleProfileRequest.iccid = ICCID_OP_PROFX;
-	deleProfileRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"91","00","9000");
-	
-	curStrHandle.CheckData("BF3303800101", respData, "DeleteProfileResponse");
-	
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.tagList = "5A4F9F70";
-	proInfoListRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
-	
-	
-	var proInfoListResponse = new  ProfileInfoListResponse();
-	proInfoListResponse.checkCardResDataFormat(respData);
-	
-	try
-	{
-		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
-		
-		curStrHandle.CheckData(ICCID_OP_PROF2, proInfoListResponse.profileInfoListOk.arrOfElement[1].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test02, proInfoListResponse.profileInfoListOk.arrOfElement[1].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[1].profileState, "profile State");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_03_Delete_Profile_by_ISDP_AID_not_possible_when_this_Operational_Profile_is_in_Enabled_state()
-{
-	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	initial_condition_PROFILE_OPERATIONAL2_is_Enabled();
-	var ISD_P_Test02 = curProfile_ISD_P_AID;
-
-	tracenamestr = "测试目的:通过ISD-P AID删除处于激活状态的Operational Profile应不成功";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DeleteProfileRequest,通过ISD-P AID删除profile;");
-	var deleProfileRequest = new DeleteProfileRequest();
-	deleProfileRequest.isdpAid = ISD_P_Test02;
-	deleProfileRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"91","00","9000");
-	
-	curStrHandle.CheckData("BF3303800102", respData, "DeleteProfileResponse");//profileNotInDisabledState(2)
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.tagList = "5A4F9F70";
-	proInfoListRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
-	
-	
-	var proInfoListResponse = new  ProfileInfoListResponse();
-	proInfoListResponse.checkCardResDataFormat(respData);
-	
-	try
-	{
-		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
-		
-		curStrHandle.CheckData(ICCID_OP_PROF2, proInfoListResponse.profileInfoListOk.arrOfElement[1].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test02, proInfoListResponse.profileInfoListOk.arrOfElement[1].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[1].profileState, "profile State");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_04_Delete_Profile_by_ICCID_not_possible_when_this_Operational_Profile_is_in_Enabled_state()
-{
-	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	initial_condition_PROFILE_OPERATIONAL2_is_Enabled();
-	var ISD_P_Test02 = curProfile_ISD_P_AID;
-
-	tracenamestr = "测试目的:通过ICCID删除处于激活状态的Operational Profile应不成功";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DeleteProfileRequest,通过ICCID删除profile;");
-	var deleProfileRequest = new DeleteProfileRequest();
-	deleProfileRequest.iccid = ICCID_OP_PROF2;
-	deleProfileRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"91","00","9000");
-	
-	curStrHandle.CheckData("BF3303800102", respData, "DeleteProfileResponse");//profileNotInDisabledState(2)
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.tagList = "5A4F9F70";
-	proInfoListRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
-	
-	
-	var proInfoListResponse = new  ProfileInfoListResponse();
-	proInfoListResponse.checkCardResDataFormat(respData);
-	
-	try
-	{
-		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
-		
-		curStrHandle.CheckData(ICCID_OP_PROF2, proInfoListResponse.profileInfoListOk.arrOfElement[1].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test02, proInfoListResponse.profileInfoListOk.arrOfElement[1].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[1].profileState, "profile State");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_05_Delete_Profile_by_ISDP_AID_not_possible_not_possible_when_PPR2_is_set ()//PPR:0520
-{
-	initial_condition_PROFILE_OPERATIONAL3_is_Disabled();
-	var ISD_P_Test03 = curProfile_ISD_P_AID;
-
-	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	initial_condition_PROFILE_OPERATIONAL2_is_Enabled();
-	var ISD_P_Test02 = curProfile_ISD_P_AID;
-	
-	curDis.TestStepStart("读卡器向卡片发送 StoreData命令,执行SetNickname,profile3的Nickname为NICKNAME3;");
-	var setNicknameRequest = new SetNicknameRequest();
-	setNicknameRequest.iccid = ICCID_OP_PROF3;
-	setNicknameRequest.profileNickname = NICKNAME3;
-	setNicknameRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(setNicknameRequest.hexData);
-	curStrHandle.CheckData("BF2903800100", respData,"SetNickname Response");
-
-	tracenamestr = "Case3异常测试:当配置文件策略规则为“禁止删除此配置文件”时,无法删除该运营配置文件。";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DeleteProfileRequest,通过ISD_P_AID删除profile3;");
-	var deleProfileRequest = new DeleteProfileRequest();
-	deleProfileRequest.isdpAid = ISD_P_Test03;
-	deleProfileRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"91","00","9000");   
-	
-	curStrHandle.CheckData("BF3303800103", respData, "DeleteProfileResponse");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
-	
-	
-	var proInfoListResponse = new  ProfileInfoListResponse();
-	proInfoListResponse.checkCardResDataFormat(respData);
-	
-	try
-	{
-		curStrHandle.CheckData(ICCID_OP_PROF3, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test03, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
-		curStrHandle.CheckData(NICKNAME3, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileNickname, "nickname");
-		
-		
-		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[1].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[1].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[1].profileState, "profile State");
-		
-		curStrHandle.CheckData(ICCID_OP_PROF2, proInfoListResponse.profileInfoListOk.arrOfElement[2].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test02, proInfoListResponse.profileInfoListOk.arrOfElement[2].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[2].profileState, "profile State");
-		
-		
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_06_Delete_Profile_by_ICCID_not_possible_not_possible_when_PPR2_is_set ()//PPR:0520
-{
-	initial_condition_PROFILE_OPERATIONAL3_is_Disabled();
-	var ISD_P_Test03 = curProfile_ISD_P_AID;
-
-	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	initial_condition_PROFILE_OPERATIONAL2_is_Enabled();
-	var ISD_P_Test02 = curProfile_ISD_P_AID;
-	
-	curDis.TestStepStart("读卡器向卡片发送 StoreData命令,执行SetNickname,profile3的Nickname为NICKNAME3;");
-	var setNicknameRequest = new SetNicknameRequest();
-	setNicknameRequest.iccid = ICCID_OP_PROF3;
-	setNicknameRequest.profileNickname = NICKNAME3;
-	setNicknameRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(setNicknameRequest.hexData);
-	curStrHandle.CheckData("BF2903800100", respData,"SetNickname Response");
-
-	tracenamestr = "Case3异常测试:当配置文件策略规则为“禁止删除此配置文件”时,无法删除该运营配置文件。";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DeleteProfileRequest,通过ICCID删除profile3;");
-	var deleProfileRequest = new DeleteProfileRequest();
-    deleProfileRequest.iccid = ICCID_OP_PROF3;
-	deleProfileRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"91","00","9000");
-	
-	curStrHandle.CheckData("BF3303800103", respData, "DeleteProfileResponse");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
-	
-	
-	var proInfoListResponse = new  ProfileInfoListResponse();
-	proInfoListResponse.checkCardResDataFormat(respData);
-	
-	try
-	{
-		curStrHandle.CheckData(ICCID_OP_PROF3, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test03, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
-		curStrHandle.CheckData(NICKNAME3, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileNickname, "nickname");
-		
-		
-		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[1].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[1].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[1].profileState, "profile State");
-		
-		curStrHandle.CheckData(ICCID_OP_PROF2, proInfoListResponse.profileInfoListOk.arrOfElement[2].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test02, proInfoListResponse.profileInfoListOk.arrOfElement[2].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[2].profileState, "profile State");
-		
-		
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	
-	RecoverCard();
+// Author: 卡思Cas智能体
+// Date: 20261004-021956
+// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_ES10c.DeleteProfile_ErrorCases_Case4,Test Sequence #01-#06 (Error: unknown ISD-P AID / unknown ICCID / Enabled by ISD-P AID / Enabled by ICCID / PPR2 by ISD-P AID / PPR2 by ICCID),适用性 M。
+// Test points: IC2-IC1-K1-C1 ATR_present;IC2-IC1-K2-C2 FCP_Template;IC2-IC1-K2-C4 SW
+//   IC2-IC1-K3-C4 SW;IC2-IC1-K4-C4 final SW;IC3-IC2-K1-C4 SW;IC3-IC2-K1-C3 CHANNEL_NUMBER extracted
+//   IC3-IC2-K2-C4 SW;S3-C1 SW;S3-C2 deleteResult iccidOrAidNotFound;S4-C1 SW
+//   S4-C2 contains PROFILE_INFO1_DISABLED;S4-C2 contains PROFILE_INFO2_ENABLED
+//   IC6-IC1-K1-C1 ATR_present;IC6-IC1-K2-C2 FCP_Template;IC6-IC1-K2-C4 SW;IC6-IC1-K3-C4 SW
+//   IC6-IC1-K4-C4 final SW;IC7-IC2-K1-C4 SW;IC7-IC2-K1-C3 CHANNEL_NUMBER extracted;IC7-IC2-K2-C4 SW
+//   S7-C1 SW;S7-C2 deleteResult iccidOrAidNotFound;S8-C1 SW;S8-C2 contains PROFILE_INFO1_DISABLED
+//   S8-C2 contains PROFILE_INFO2_ENABLED;IC10-IC1-K1-C1 ATR_present;IC10-IC1-K2-C2 FCP_Template
+//   IC10-IC1-K2-C4 SW;IC10-IC1-K3-C4 SW;IC10-IC1-K4-C4 final SW;IC11-IC2-K1-C4 SW
+//   IC11-IC2-K1-C3 CHANNEL_NUMBER extracted;IC11-IC2-K2-C4 SW;S11-C1 SW
+//   S11-C2 deleteResult profileNotInDisabledState;S12-C1 SW;S12-C2 contains PROFILE_INFO1_DISABLED
+//   S12-C2 contains PROFILE_INFO2_ENABLED;IC14-IC1-K1-C1 ATR_present;IC14-IC1-K2-C2 FCP_Template
+//   IC14-IC1-K2-C4 SW;IC14-IC1-K3-C4 SW;IC14-IC1-K4-C4 final SW;IC15-IC2-K1-C4 SW
+//   IC15-IC2-K1-C3 CHANNEL_NUMBER extracted;IC15-IC2-K2-C4 SW;S15-C1 SW
+//   S15-C2 deleteResult profileNotInDisabledState;S16-C1 SW;S16-C2 contains PROFILE_INFO1_DISABLED
+//   S16-C2 contains PROFILE_INFO2_ENABLED;IC18-IC1-K1-C1 ATR_present;IC18-IC1-K2-C2 FCP_Template
+//   IC18-IC1-K2-C4 SW;IC18-IC1-K3-C4 SW;IC18-IC1-K4-C4 final SW;IC19-IC2-K1-C4 SW
+//   IC19-IC2-K1-C3 CHANNEL_NUMBER extracted;IC19-IC2-K2-C4 SW;S19-C1 SW
+//   S19-C2 deleteResult disallowedByPolicy;S20-C1 SW;S20-C2 contains PROFILE_INFO1_DISABLED
+//   S20-C2 contains PROFILE_INFO2_ENABLED;S20-C2 contains PROFILE_INFO3;IC22-IC1-K1-C1 ATR_present
+//   IC22-IC1-K2-C2 FCP_Template;IC22-IC1-K2-C4 SW;IC22-IC1-K3-C4 SW;IC22-IC1-K4-C4 final SW
+//   IC23-IC2-K1-C4 SW;IC23-IC2-K1-C3 CHANNEL_NUMBER extracted;IC23-IC2-K2-C4 SW;S23-C1 SW
+//   S23-C2 deleteResult disallowedByPolicy;S24-C1 SW;S24-C2 contains PROFILE_INFO1_DISABLED
+//   S24-C2 contains PROFILE_INFO2_ENABLED;S24-C2 contains PROFILE_INFO3
+// 本函数由 CaseIR 4.2.23.2.4 编译生成(fullwave-blindgen-live-70-W1-laneA5,SGP.23 v1.16 × SGP.22 v2.7):字节权威=CaseIR,非誊录黄金脚本。
+// Value-free template: every data byte is injected from CaseIR fields; no scaffold globals (see docs/speconly/compile-symbol-migration.md).
+// 适用性 M:编译期门,运行时由 harness 环境前置承担。
+function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_01_06_merged() {
+    var bind = curBind;
+    var profileAidSession = BindEs10xProcProfileDynamic.beginSession(bind, "TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case4_01_06_merged");
+    // runtime-bound payload: ISD_P_AID2 stays in execution domain; context_lineage: {"context_id": "6c06e5257cb7cc55", "authority_reference": "E_tc_4223/330-330/G_annexB_dynamic:L52"}
+    var cardCtxLoad1 = BindCardContext.load(bind, profileAidSession, "ISD_P_AID2", {"tag":"4F","bytes":16,"range":{"minHex":"A0000005591010FFFFFFFF8900001000","maxHex":"A0000005591010FFFFFFFF8900FFFF00","lastByte":"00"}}, {token: CARD_CONTEXT_TOKEN, domainId: CARD_CONTEXT_DOMAIN});
+    // runtime-bound payload: ISD_P_AID3 stays in execution domain; context_lineage: {"context_id": "6c06e5257cb7cc55", "authority_reference": "E_tc_4223/373-373/G_annexB_dynamic:L53"}
+    var cardCtxLoad2 = BindCardContext.load(bind, profileAidSession, "ISD_P_AID3", {"tag":"4F","bytes":16,"range":{"minHex":"A0000005591010FFFFFFFF8900001000","maxHex":"A0000005591010FFFFFFFF8900FFFF00","lastByte":"00"}}, {token: CARD_CONTEXT_TOKEN, domainId: CARD_CONTEXT_DOMAIN});
+    // runtime-bound payload: ISD_P_AIDX stays in execution domain; context_lineage: {"context_id": "6c06e5257cb7cc55", "authority_reference": "E_tc_4223/281-281/G_annexB_dynamic:L55"}
+    var cardCtxLoad3 = BindCardContext.load(bind, profileAidSession, "ISD_P_AIDX", {"tag":"4F","bytes":16,"range":{"minHex":"A0000005591010FFFFFFFF8900001000","maxHex":"A0000005591010FFFFFFFF8900FFFF00","lastByte":"00"}}, {token: CARD_CONTEXT_TOKEN, domainId: CARD_CONTEXT_DOMAIN});
+    // GIC-1 卡态编排:PROFILE_OPERATIONAL1 已安装;PROFILE_OPERATIONAL2 已安装: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // S1-IC <ISD_P_AIDX> 标识的 Profile 未装载;PROF1 Disabled(对应 <ISD_P_AID1>);PROF2 Enabled(对应 <ISD_P_AID2>): declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // S2-IC #ICCID_OP_PROFX 标识的 Profile 未装载;PROF1 Disabled;PROF2 Enabled: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // S3/S4-IC PROF1 Disabled(对应 <ISD_P_AID1>);PROF2 Enabled(对应 <ISD_P_AID2>): declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // S5/S6-IC PROFILE_OPERATIONAL3 已安装且 Disabled(对应 <ISD_P_AID3>,Nickname=#NICKNAME3);PROF1 Disabled;PROF2 Enabled: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // PREFLIGHT_CONTEXT AUTHORIZED_DISCOVERY: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+
+    // 步骤 1:MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var s1 = bind.sendApdu("81", "E2", "91", "00", "BF2D035C014F", "00", "9000");
+
+    // IC ref inline @E 步骤 2(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
+    var s26 = bind.resetAndAtr();
+    bind.checkData("IC2-IC1-K1-C1 ATR_present", "1", s26.atr_hex !== "" ? "1" : "0");
+
+    // IC ref inline @E 步骤 2(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
+    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
+    var s27 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
+    bind.checkData("IC2-IC1-K2-C2 FCP_Template", "1", s27.resp.length > 0 ? "1" : "0");
+    bind.checkData("IC2-IC1-K2-C4 SW", "9000", s27.sw);
+
+    // IC ref inline @E 步骤 2(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
+    var s28 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
+    bind.checkData("IC2-IC1-K3-C4 SW", "9000", s28.sw);
+
+    // IC ref inline @E 步骤 2(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
+    var steady29 = bind.runToSteadyState(function () {
+        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
+    });
+    bind.checkData("IC2-IC1-K4-C4 final SW", "9000", steady29.final.sw);
+
+    // IC ref inline @E 步骤 3(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
+    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s30 = bind.manageChannelOpen("9000");
+    bind.checkData("IC3-IC2-K1-C4 SW", "9000", s30.sw);
+    bind.checkData("IC3-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s30.chan !== null ? "1" : "0");
+
+    // IC ref inline @E 步骤 3(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
+    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s31 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
+    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
+    bind.checkData("IC3-IC2-K2-C4 SW", "9000", s31.sw);
+
+    // 步骤 4:MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ32_049, RQ57_154, RQ57_157, RQ57_158, RQ57_159)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla4 = s30.chan !== null ? (s30.chan <= 3 ? 128 + s30.chan : 188 + s30.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: ISD_P_AIDX stays in execution domain
+    var s4 = bind.sendApdu(sdCla4, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AIDX", "BF33124F10", "", profileAidSession), "00", "9000");
+    bind.checkData("S3-C1 SW", "9000", s4.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AIDX", s4.cmd, profileAidSession);
+    var r2w4 = BindGecaProc.parseGecaResponse(s4.resp, {outer: "BF33", required: ["80"]});
+    bind.checkData("S3-C2 deleteResult iccidOrAidNotFound", "01", (r2w4.ok && r2w4.fields["80"] === "01") ? "01" : (r2w4.fields["80"] || "absent"));
+
+    // 步骤 5:MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ32_049, RQ57_154, RQ57_157, RQ57_158, RQ57_159)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla5 = s30.chan !== null ? (s30.chan <= 3 ? 128 + s30.chan : 188 + s30.chan).toString(16).toUpperCase() : null;
+    var s5 = bind.sendApdu(sdCla5, "E2", "91", "00", "BF2D00", "00", "9000");
+    bind.checkData("S4-C1 SW", "9000", s5.sw);
+    var r2p5 = BindEs10xProcProfile.walkChoiceList(s5.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2has5_0 = false;
+    for (var r2i5_0 = 0; r2i5_0 < r2p5.elements.length; r2i5_0++) {
+        var f = r2p5.elements[r2i5_0].fields;
+        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has5_0 = true; break; }
+    }
+    bind.checkData("S4-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p5.branch_tag === "A0" && r2has5_0) ? "1" : "0");
+    var r2has5_1 = false;
+    for (var r2i5_1 = 0; r2i5_1 < r2p5.elements.length; r2i5_1++) {
+        var f = r2p5.elements[r2i5_1].fields;
+        if (f["5A"] === "989209013254769810F9" && f["9F70"] === "01") { r2has5_1 = true; break; }
+    }
+    bind.checkData("S4-C2 contains PROFILE_INFO2_ENABLED", "1", (r2p5.branch_tag === "A0" && r2has5_1) ? "1" : "0");
+
+    // IC ref inline @E 步骤 6(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
+    var s32 = bind.resetAndAtr();
+    bind.checkData("IC6-IC1-K1-C1 ATR_present", "1", s32.atr_hex !== "" ? "1" : "0");
+
+    // IC ref inline @E 步骤 6(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
+    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
+    var s33 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
+    bind.checkData("IC6-IC1-K2-C2 FCP_Template", "1", s33.resp.length > 0 ? "1" : "0");
+    bind.checkData("IC6-IC1-K2-C4 SW", "9000", s33.sw);
+
+    // IC ref inline @E 步骤 6(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
+    var s34 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
+    bind.checkData("IC6-IC1-K3-C4 SW", "9000", s34.sw);
+
+    // IC ref inline @E 步骤 6(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
+    var steady35 = bind.runToSteadyState(function () {
+        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
+    });
+    bind.checkData("IC6-IC1-K4-C4 final SW", "9000", steady35.final.sw);
+
+    // IC ref inline @E 步骤 7(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
+    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s36 = bind.manageChannelOpen("9000");
+    bind.checkData("IC7-IC2-K1-C4 SW", "9000", s36.sw);
+    bind.checkData("IC7-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s36.chan !== null ? "1" : "0");
+
+    // IC ref inline @E 步骤 7(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
+    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s37 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
+    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
+    bind.checkData("IC7-IC2-K2-C4 SW", "9000", s37.sw);
+
+    // 步骤 8:MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ32_049, RQ57_154, RQ57_157, RQ57_158, RQ57_159)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla8 = s36.chan !== null ? (s36.chan <= 3 ? 128 + s36.chan : 188 + s36.chan).toString(16).toUpperCase() : null;
+    var s8 = bind.sendApdu(sdCla8, "E2", "91", "00", "BF330C5A0A9892090143658709FFFF", "00", "9000");
+    bind.checkData("S7-C1 SW", "9000", s8.sw);
+    var r2w8 = BindGecaProc.parseGecaResponse(s8.resp, {outer: "BF33", required: ["80"]});
+    bind.checkData("S7-C2 deleteResult iccidOrAidNotFound", "01", (r2w8.ok && r2w8.fields["80"] === "01") ? "01" : (r2w8.fields["80"] || "absent"));
+
+    // 步骤 9:MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ32_049, RQ57_154, RQ57_157, RQ57_158, RQ57_159)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla9 = s36.chan !== null ? (s36.chan <= 3 ? 128 + s36.chan : 188 + s36.chan).toString(16).toUpperCase() : null;
+    var s9 = bind.sendApdu(sdCla9, "E2", "91", "00", "BF2D00", "00", "9000");
+    bind.checkData("S8-C1 SW", "9000", s9.sw);
+    var r2p9 = BindEs10xProcProfile.walkChoiceList(s9.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2has9_0 = false;
+    for (var r2i9_0 = 0; r2i9_0 < r2p9.elements.length; r2i9_0++) {
+        var f = r2p9.elements[r2i9_0].fields;
+        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has9_0 = true; break; }
+    }
+    bind.checkData("S8-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p9.branch_tag === "A0" && r2has9_0) ? "1" : "0");
+    var r2has9_1 = false;
+    for (var r2i9_1 = 0; r2i9_1 < r2p9.elements.length; r2i9_1++) {
+        var f = r2p9.elements[r2i9_1].fields;
+        if (f["5A"] === "989209013254769810F9" && f["9F70"] === "01") { r2has9_1 = true; break; }
+    }
+    bind.checkData("S8-C2 contains PROFILE_INFO2_ENABLED", "1", (r2p9.branch_tag === "A0" && r2has9_1) ? "1" : "0");
+
+    // IC ref inline @E 步骤 10(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
+    var s38 = bind.resetAndAtr();
+    bind.checkData("IC10-IC1-K1-C1 ATR_present", "1", s38.atr_hex !== "" ? "1" : "0");
+
+    // IC ref inline @E 步骤 10(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
+    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
+    var s39 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
+    bind.checkData("IC10-IC1-K2-C2 FCP_Template", "1", s39.resp.length > 0 ? "1" : "0");
+    bind.checkData("IC10-IC1-K2-C4 SW", "9000", s39.sw);
+
+    // IC ref inline @E 步骤 10(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
+    var s40 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
+    bind.checkData("IC10-IC1-K3-C4 SW", "9000", s40.sw);
+
+    // IC ref inline @E 步骤 10(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
+    var steady41 = bind.runToSteadyState(function () {
+        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
+    });
+    bind.checkData("IC10-IC1-K4-C4 final SW", "9000", steady41.final.sw);
+
+    // IC ref inline @E 步骤 11(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
+    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s42 = bind.manageChannelOpen("9000");
+    bind.checkData("IC11-IC2-K1-C4 SW", "9000", s42.sw);
+    bind.checkData("IC11-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s42.chan !== null ? "1" : "0");
+
+    // IC ref inline @E 步骤 11(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
+    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s43 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
+    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
+    bind.checkData("IC11-IC2-K2-C4 SW", "9000", s43.sw);
+
+    // 步骤 12:MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ32_049, RQ32_050, RQ57_154, RQ57_155, RQ57_158, RQ57_159)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla12 = s42.chan !== null ? (s42.chan <= 3 ? 128 + s42.chan : 188 + s42.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: ISD_P_AID2 stays in execution domain
+    var s12 = bind.sendApdu(sdCla12, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID2", "BF33124F10", "", profileAidSession), "00", "9000");
+    bind.checkData("S11-C1 SW", "9000", s12.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID2", s12.cmd, profileAidSession);
+    var r2w12 = BindGecaProc.parseGecaResponse(s12.resp, {outer: "BF33", required: ["80"]});
+    bind.checkData("S11-C2 deleteResult profileNotInDisabledState", "02", (r2w12.ok && r2w12.fields["80"] === "02") ? "02" : (r2w12.fields["80"] || "absent"));
+
+    // 步骤 13:MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ32_049, RQ32_050, RQ57_154, RQ57_155, RQ57_158, RQ57_159)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla13 = s42.chan !== null ? (s42.chan <= 3 ? 128 + s42.chan : 188 + s42.chan).toString(16).toUpperCase() : null;
+    var s13 = bind.sendApdu(sdCla13, "E2", "91", "00", "BF2D00", "00", "9000");
+    bind.checkData("S12-C1 SW", "9000", s13.sw);
+    var r2p13 = BindEs10xProcProfile.walkChoiceList(s13.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2has13_0 = false;
+    for (var r2i13_0 = 0; r2i13_0 < r2p13.elements.length; r2i13_0++) {
+        var f = r2p13.elements[r2i13_0].fields;
+        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has13_0 = true; break; }
+    }
+    bind.checkData("S12-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p13.branch_tag === "A0" && r2has13_0) ? "1" : "0");
+    var r2has13_1 = false;
+    for (var r2i13_1 = 0; r2i13_1 < r2p13.elements.length; r2i13_1++) {
+        var f = r2p13.elements[r2i13_1].fields;
+        if (f["5A"] === "989209013254769810F9" && f["9F70"] === "01") { r2has13_1 = true; break; }
+    }
+    bind.checkData("S12-C2 contains PROFILE_INFO2_ENABLED", "1", (r2p13.branch_tag === "A0" && r2has13_1) ? "1" : "0");
+
+    // IC ref inline @E 步骤 14(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
+    var s44 = bind.resetAndAtr();
+    bind.checkData("IC14-IC1-K1-C1 ATR_present", "1", s44.atr_hex !== "" ? "1" : "0");
+
+    // IC ref inline @E 步骤 14(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
+    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
+    var s45 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
+    bind.checkData("IC14-IC1-K2-C2 FCP_Template", "1", s45.resp.length > 0 ? "1" : "0");
+    bind.checkData("IC14-IC1-K2-C4 SW", "9000", s45.sw);
+
+    // IC ref inline @E 步骤 14(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
+    var s46 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
+    bind.checkData("IC14-IC1-K3-C4 SW", "9000", s46.sw);
+
+    // IC ref inline @E 步骤 14(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
+    var steady47 = bind.runToSteadyState(function () {
+        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
+    });
+    bind.checkData("IC14-IC1-K4-C4 final SW", "9000", steady47.final.sw);
+
+    // IC ref inline @E 步骤 15(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
+    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s48 = bind.manageChannelOpen("9000");
+    bind.checkData("IC15-IC2-K1-C4 SW", "9000", s48.sw);
+    bind.checkData("IC15-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s48.chan !== null ? "1" : "0");
+
+    // IC ref inline @E 步骤 15(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
+    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s49 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
+    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
+    bind.checkData("IC15-IC2-K2-C4 SW", "9000", s49.sw);
+
+    // 步骤 16:MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ32_049, RQ32_050, RQ57_154, RQ57_155, RQ57_158, RQ57_159)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla16 = s48.chan !== null ? (s48.chan <= 3 ? 128 + s48.chan : 188 + s48.chan).toString(16).toUpperCase() : null;
+    var s16 = bind.sendApdu(sdCla16, "E2", "91", "00", "BF330C5A0A989209013254769810F9", "00", "9000");
+    bind.checkData("S15-C1 SW", "9000", s16.sw);
+    var r2w16 = BindGecaProc.parseGecaResponse(s16.resp, {outer: "BF33", required: ["80"]});
+    bind.checkData("S15-C2 deleteResult profileNotInDisabledState", "02", (r2w16.ok && r2w16.fields["80"] === "02") ? "02" : (r2w16.fields["80"] || "absent"));
+
+    // 步骤 17:MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ32_049, RQ32_050, RQ57_154, RQ57_155, RQ57_158, RQ57_159)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla17 = s48.chan !== null ? (s48.chan <= 3 ? 128 + s48.chan : 188 + s48.chan).toString(16).toUpperCase() : null;
+    var s17 = bind.sendApdu(sdCla17, "E2", "91", "00", "BF2D00", "00", "9000");
+    bind.checkData("S16-C1 SW", "9000", s17.sw);
+    var r2p17 = BindEs10xProcProfile.walkChoiceList(s17.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2has17_0 = false;
+    for (var r2i17_0 = 0; r2i17_0 < r2p17.elements.length; r2i17_0++) {
+        var f = r2p17.elements[r2i17_0].fields;
+        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has17_0 = true; break; }
+    }
+    bind.checkData("S16-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p17.branch_tag === "A0" && r2has17_0) ? "1" : "0");
+    var r2has17_1 = false;
+    for (var r2i17_1 = 0; r2i17_1 < r2p17.elements.length; r2i17_1++) {
+        var f = r2p17.elements[r2i17_1].fields;
+        if (f["5A"] === "989209013254769810F9" && f["9F70"] === "01") { r2has17_1 = true; break; }
+    }
+    bind.checkData("S16-C2 contains PROFILE_INFO2_ENABLED", "1", (r2p17.branch_tag === "A0" && r2has17_1) ? "1" : "0");
+
+    // IC ref inline @E 步骤 18(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
+    var s50 = bind.resetAndAtr();
+    bind.checkData("IC18-IC1-K1-C1 ATR_present", "1", s50.atr_hex !== "" ? "1" : "0");
+
+    // IC ref inline @E 步骤 18(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
+    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
+    var s51 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
+    bind.checkData("IC18-IC1-K2-C2 FCP_Template", "1", s51.resp.length > 0 ? "1" : "0");
+    bind.checkData("IC18-IC1-K2-C4 SW", "9000", s51.sw);
+
+    // IC ref inline @E 步骤 18(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
+    var s52 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
+    bind.checkData("IC18-IC1-K3-C4 SW", "9000", s52.sw);
+
+    // IC ref inline @E 步骤 18(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
+    var steady53 = bind.runToSteadyState(function () {
+        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
+    });
+    bind.checkData("IC18-IC1-K4-C4 final SW", "9000", steady53.final.sw);
+
+    // IC ref inline @E 步骤 19(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
+    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s54 = bind.manageChannelOpen("9000");
+    bind.checkData("IC19-IC2-K1-C4 SW", "9000", s54.sw);
+    bind.checkData("IC19-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s54.chan !== null ? "1" : "0");
+
+    // IC ref inline @E 步骤 19(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
+    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s55 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
+    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
+    bind.checkData("IC19-IC2-K2-C4 SW", "9000", s55.sw);
+
+    // 步骤 20:MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ29_002, RQ29_022, RQ32_049, RQ32_050, RQ57_154, RQ57_156, RQ57_158, RQ57_159)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla20 = s54.chan !== null ? (s54.chan <= 3 ? 128 + s54.chan : 188 + s54.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: ISD_P_AID3 stays in execution domain
+    var s20 = bind.sendApdu(sdCla20, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID3", "BF33124F10", "", profileAidSession), "00", "9000");
+    bind.checkData("S19-C1 SW", "9000", s20.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID3", s20.cmd, profileAidSession);
+    var r2w20 = BindGecaProc.parseGecaResponse(s20.resp, {outer: "BF33", required: ["80"]});
+    bind.checkData("S19-C2 deleteResult disallowedByPolicy", "03", (r2w20.ok && r2w20.fields["80"] === "03") ? "03" : (r2w20.fields["80"] || "absent"));
+
+    // 步骤 21:MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ29_002, RQ32_049, RQ32_050, RQ57_154, RQ57_155, RQ57_158, RQ57_159)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla21 = s54.chan !== null ? (s54.chan <= 3 ? 128 + s54.chan : 188 + s54.chan).toString(16).toUpperCase() : null;
+    var s21 = bind.sendApdu(sdCla21, "E2", "91", "00", "BF2D00", "00", "9000");
+    bind.checkData("S20-C1 SW", "9000", s21.sw);
+    var r2p21 = BindEs10xProcProfile.walkChoiceList(s21.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2has21_0 = false;
+    for (var r2i21_0 = 0; r2i21_0 < r2p21.elements.length; r2i21_0++) {
+        var f = r2p21.elements[r2i21_0].fields;
+        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has21_0 = true; break; }
+    }
+    bind.checkData("S20-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p21.branch_tag === "A0" && r2has21_0) ? "1" : "0");
+    var r2has21_1 = false;
+    for (var r2i21_1 = 0; r2i21_1 < r2p21.elements.length; r2i21_1++) {
+        var f = r2p21.elements[r2i21_1].fields;
+        if (f["5A"] === "989209013254769810F9" && f["9F70"] === "01") { r2has21_1 = true; break; }
+    }
+    bind.checkData("S20-C2 contains PROFILE_INFO2_ENABLED", "1", (r2p21.branch_tag === "A0" && r2has21_1) ? "1" : "0");
+    var r2has21_2 = false;
+    for (var r2i21_2 = 0; r2i21_2 < r2p21.elements.length; r2i21_2++) {
+        var f = r2p21.elements[r2i21_2].fields;
+        if (f["5A"] === "989209014365870921F5" && f["9F70"] === "00") { r2has21_2 = true; break; }
+    }
+    bind.checkData("S20-C2 contains PROFILE_INFO3", "1", (r2p21.branch_tag === "A0" && r2has21_2) ? "1" : "0");
+
+    // IC ref inline @E 步骤 22(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
+    var s56 = bind.resetAndAtr();
+    bind.checkData("IC22-IC1-K1-C1 ATR_present", "1", s56.atr_hex !== "" ? "1" : "0");
+
+    // IC ref inline @E 步骤 22(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
+    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
+    var s57 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
+    bind.checkData("IC22-IC1-K2-C2 FCP_Template", "1", s57.resp.length > 0 ? "1" : "0");
+    bind.checkData("IC22-IC1-K2-C4 SW", "9000", s57.sw);
+
+    // IC ref inline @E 步骤 22(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
+    var s58 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
+    bind.checkData("IC22-IC1-K3-C4 SW", "9000", s58.sw);
+
+    // IC ref inline @E 步骤 22(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
+    var steady59 = bind.runToSteadyState(function () {
+        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
+    });
+    bind.checkData("IC22-IC1-K4-C4 final SW", "9000", steady59.final.sw);
+
+    // IC ref inline @E 步骤 23(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
+    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s60 = bind.manageChannelOpen("9000");
+    bind.checkData("IC23-IC2-K1-C4 SW", "9000", s60.sw);
+    bind.checkData("IC23-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s60.chan !== null ? "1" : "0");
+
+    // IC ref inline @E 步骤 23(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
+    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s61 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
+    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
+    bind.checkData("IC23-IC2-K2-C4 SW", "9000", s61.sw);
+
+    // 步骤 24:MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ29_002, RQ29_022, RQ32_049, RQ32_050, RQ57_154, RQ57_156, RQ57_158, RQ57_159)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla24 = s60.chan !== null ? (s60.chan <= 3 ? 128 + s60.chan : 188 + s60.chan).toString(16).toUpperCase() : null;
+    var s24 = bind.sendApdu(sdCla24, "E2", "91", "00", "BF330C5A0A989209014365870921F5", "00", "9000");
+    bind.checkData("S23-C1 SW", "9000", s24.sw);
+    var r2w24 = BindGecaProc.parseGecaResponse(s24.resp, {outer: "BF33", required: ["80"]});
+    bind.checkData("S23-C2 deleteResult disallowedByPolicy", "03", (r2w24.ok && r2w24.fields["80"] === "03") ? "03" : (r2w24.fields["80"] || "absent"));
+
+    // 步骤 25:MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ29_002, RQ32_049, RQ32_050, RQ57_154, RQ57_155, RQ57_158, RQ57_159)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla25 = s60.chan !== null ? (s60.chan <= 3 ? 128 + s60.chan : 188 + s60.chan).toString(16).toUpperCase() : null;
+    var s25 = bind.sendApdu(sdCla25, "E2", "91", "00", "BF2D00", "00", "9000");
+    bind.checkData("S24-C1 SW", "9000", s25.sw);
+    var r2p25 = BindEs10xProcProfile.walkChoiceList(s25.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2has25_0 = false;
+    for (var r2i25_0 = 0; r2i25_0 < r2p25.elements.length; r2i25_0++) {
+        var f = r2p25.elements[r2i25_0].fields;
+        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has25_0 = true; break; }
+    }
+    bind.checkData("S24-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p25.branch_tag === "A0" && r2has25_0) ? "1" : "0");
+    var r2has25_1 = false;
+    for (var r2i25_1 = 0; r2i25_1 < r2p25.elements.length; r2i25_1++) {
+        var f = r2p25.elements[r2i25_1].fields;
+        if (f["5A"] === "989209013254769810F9" && f["9F70"] === "01") { r2has25_1 = true; break; }
+    }
+    bind.checkData("S24-C2 contains PROFILE_INFO2_ENABLED", "1", (r2p25.branch_tag === "A0" && r2has25_1) ? "1" : "0");
+    var r2has25_2 = false;
+    for (var r2i25_2 = 0; r2i25_2 < r2p25.elements.length; r2i25_2++) {
+        var f = r2p25.elements[r2i25_2].fields;
+        if (f["5A"] === "989209014365870921F5" && f["9F70"] === "00") { r2has25_2 = true; break; }
+    }
+    bind.checkData("S24-C2 contains PROFILE_INFO3", "1", (r2p25.branch_tag === "A0" && r2has25_2) ? "1" : "0");
 }