user: Demonstrate the C code that generates the assembly output below:

```asm
<test7>:
  endbr64
  push   %r15
  lea    D291(%rip),%r15
  push   %r14
  lea    D316(%rip),%r14
  push   %r13
  lea    D143(%rip),%r13
  push   %r12
  lea    D68(%rip),%r12
  push   %rbp
  push   %rbx
  lea    D306(%rip),%rbx
  sub    $0x28,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x18(%rsp)
  xor    %eax,%eax
  lea    0x8(%rsp),%rdi
  lea    0x10(%rsp),%rbp
  call   <KeyVal_new@plt>
  lea    D220(%rip),%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  mov    0x8(%rsp),%rsi
  mov    %r13,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x0,0x10(%rsp)
  lea    D66(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r13,%rdx
  mov    %rbp,%rdi
  lea    D442(%rip),%r13
  call   <KeyVal_findIndex@plt>
  xor    %edi,%edi
  lea    D468(%rip),%rsi
  cmp    $0x2,%eax
  sete   %dil
  call   <ok@plt>
  lea    D584(%rip),%r10
  mov    0x8(%rsp),%rdi
  mov    %r13,%rsi
  mov    %r10,%rdx
  call   <KeyVal_setValue@plt>
  lea    D476(%rip),%r11
  mov    %r11,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x0,0x10(%rsp)
  lea    D455(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIndex@plt>
  xor    %edi,%edi
  lea    D229(%rip),%rsi
  cmp    $0x2,%eax
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r13,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x0,0x10(%rsp)
  lea    D140(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r13,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIndex@plt>
  mov    %r14,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x0,0x10(%rsp)
  lea    D194(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r15,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x1,0x10(%rsp)
  lea    D121(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r15,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIndex@plt>
  xor    %edi,%edi
  lea    D422(%rip),%rsi
  cmp    $0x2,%eax
  sete   %dil
  call   <ok@plt>
  lea    D584(%rip),%r10
  mov    0x8(%rsp),%rdi
  lea    D398(%rip),%r8
  mov    %r10,%rdx
  mov    %r8,%rsi
  call   <KeyVal_setValue@plt>
  lea    D476(%rip),%r11
  mov    %r11,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x0,0x10(%rsp)
  lea    D247(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIndex@plt>
  xor    %edi,%edi
  lea    D166(%rip),%rsi
  cmp    $0x2,%eax
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r13,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x0,0x10(%rsp)
  lea    D110(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r13,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIndex@plt>
  mov    %r14,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x0,0x10(%rsp)
  lea    D546(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r15,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x1,0x10(%rsp)
  lea    D419(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r15,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIndex@plt>
  xor    %edi,%edi
  lea    D463(%rip),%rsi
  cmp    $0x2,%eax
  sete   %dil
  call   <ok@plt>
  lea    D398(%rip),%r8
  mov    0x8(%rsp),%rsi
  mov    %rbp,%rdi
  mov    %r8,%rdx
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x1,0x10(%rsp)
  lea    D17(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  lea    D398(%rip),%r8
  mov    0x8(%rsp),%rsi
  mov    %rbp,%rdi
  mov    %r8,%rdx
  call   <KeyVal_findIndex@plt>
  mov    %r14,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x1,0x10(%rsp)
  lea    D170(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  lea    D439(%rip),%r9
  mov    0x8(%rsp),%rsi
  mov    %rbp,%rdi
  mov    %r9,%rdx
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x2,0x10(%rsp)
  lea    D378(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  lea    D439(%rip),%r9
  mov    0x8(%rsp),%rsi
  mov    %rbp,%rdi
  mov    %r9,%rdx
  call   <KeyVal_findIndex@plt>
  xor    %edi,%edi
  lea    D421(%rip),%rsi
  cmp    $0x2,%eax
  sete   %dil
  call   <ok@plt>
  lea    D584(%rip),%r10
  mov    0x8(%rsp),%rdi
  mov    %r10,%rdx
  lea    D587(%rip),%r10
  mov    %r10,%rsi
  call   <KeyVal_setValue@plt>
  lea    D476(%rip),%r11
  mov    %r11,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x0,0x10(%rsp)
  lea    D321(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIndex@plt>
  xor    %edi,%edi
  lea    D459(%rip),%rsi
  cmp    $0x2,%eax
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r13,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x0,0x10(%rsp)
  lea    D114(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r13,%rdx
  mov    %rbp,%rdi
  lea    D213(%rip),%r13
  call   <KeyVal_findIndex@plt>
  mov    %r14,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x0,0x10(%rsp)
  lea    D541(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r15,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x1,0x10(%rsp)
  lea    D234(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r15,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIndex@plt>
  xor    %edi,%edi
  lea    D6(%rip),%rsi
  cmp    $0x2,%eax
  sete   %dil
  call   <ok@plt>
  lea    D398(%rip),%r8
  mov    0x8(%rsp),%rsi
  mov    %rbp,%rdi
  mov    %r8,%rdx
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x1,0x10(%rsp)
  lea    D403(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  lea    D398(%rip),%r8
  mov    0x8(%rsp),%rsi
  mov    %rbp,%rdi
  mov    %r8,%rdx
  call   <KeyVal_findIndex@plt>
  mov    %r14,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x1,0x10(%rsp)
  lea    D415(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  lea    D439(%rip),%r9
  mov    0x8(%rsp),%rsi
  mov    %rbp,%rdi
  mov    %r9,%rdx
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x2,0x10(%rsp)
  lea    D561(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  lea    D439(%rip),%r9
  mov    0x8(%rsp),%rsi
  mov    %rbp,%rdi
  mov    %r9,%rdx
  call   <KeyVal_findIndex@plt>
  xor    %edi,%edi
  lea    D144(%rip),%rsi
  cmp    $0x2,%eax
  sete   %dil
  call   <ok@plt>
  lea    D587(%rip),%r10
  mov    0x8(%rsp),%rsi
  mov    %rbp,%rdi
  mov    %r10,%rdx
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x2,0x10(%rsp)
  lea    D116(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  lea    D587(%rip),%r10
  mov    0x8(%rsp),%rsi
  mov    %rbp,%rdi
  mov    %r10,%rdx
  call   <KeyVal_findIndex@plt>
  mov    %r14,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x2,0x10(%rsp)
  lea    D500(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r13,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIdealIndex@plt>
  mov    %r12,%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  xor    %edi,%edi
  cmpq   $0x3,0x10(%rsp)
  lea    D560(%rip),%rsi
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rsi
  mov    %r13,%rdx
  mov    %rbp,%rdi
  call   <KeyVal_findIndex@plt>
  xor    %edi,%edi
  lea    D0(%rip),%rsi
  cmp    $0x2,%eax
  sete   %dil
  call   <ok@plt>
  mov    0x8(%rsp),%rdi
  call   <KeyVal_delete@plt>
  lea    D134(%rip),%rsi
  mov    %eax,%edi
  call   <_check_err@plt>
  mov    0x18(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L0
  add    $0x28,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L0:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: extract_symbolic_data
arguments: label: D291
type_infered: string
name: extract_symbolic_data
arguments: label: D316
type_infered: string
name: extract_symbolic_data
arguments: label: D143
type_infered: string
name: extract_symbolic_data
arguments: label: D68
type_infered: string
name: extract_symbolic_data
arguments: label: D306
type_infered: string
name: extract_symbolic_data
arguments: label: D220
type_infered: string
name: extract_symbolic_data
arguments: label: D66
type_infered: string
name: extract_symbolic_data
arguments: label: D442
type_infered: string
name: extract_symbolic_data
arguments: label: D468
type_infered: string
name: extract_symbolic_data
arguments: label: D584
type_infered: string
name: extract_symbolic_data
arguments: label: D476
type_infered: string
name: extract_symbolic_data
arguments: label: D455
type_infered: string
name: extract_symbolic_data
arguments: label: D229
type_infered: string
name: extract_symbolic_data
arguments: label: D140
type_infered: string
name: extract_symbolic_data
arguments: label: D194
type_infered: string
name: extract_symbolic_data
arguments: label: D121
type_infered: string
name: extract_symbolic_data
arguments: label: D422
type_infered: string
name: extract_symbolic_data
arguments: label: D398
type_infered: string
name: extract_symbolic_data
arguments: label: D247
type_infered: string
name: extract_symbolic_data
arguments: label: D166
type_infered: string
name: extract_symbolic_data
arguments: label: D110
type_infered: string
name: extract_symbolic_data
arguments: label: D546
type_infered: string
name: extract_symbolic_data
arguments: label: D419
type_infered: string
name: extract_symbolic_data
arguments: label: D463
type_infered: string
name: extract_symbolic_data
arguments: label: D17
type_infered: string
name: extract_symbolic_data
arguments: label: D170
type_infered: string
name: extract_symbolic_data
arguments: label: D439
type_infered: string
name: extract_symbolic_data
arguments: label: D378
type_infered: string
name: extract_symbolic_data
arguments: label: D421
type_infered: string
name: extract_symbolic_data
arguments: label: D587
type_infered: string
name: extract_symbolic_data
arguments: label: D321
type_infered: string
name: extract_symbolic_data
arguments: label: D459
type_infered: string
name: extract_symbolic_data
arguments: label: D114
type_infered: string
name: extract_symbolic_data
arguments: label: D213
type_infered: string
name: extract_symbolic_data
arguments: label: D541
type_infered: string
name: extract_symbolic_data
arguments: label: D234
type_infered: string
name: extract_symbolic_data
arguments: label: D6
type_infered: string
name: extract_symbolic_data
arguments: label: D403
type_infered: string
name: extract_symbolic_data
arguments: label: D415
type_infered: string
name: extract_symbolic_data
arguments: label: D561
type_infered: string
name: extract_symbolic_data
arguments: label: D144
type_infered: string
name: extract_symbolic_data
arguments: label: D116
type_infered: string
name: extract_symbolic_data
arguments: label: D500
type_infered: string
name: extract_symbolic_data
arguments: label: D560
type_infered: string
name: extract_symbolic_data
arguments: label: D0
type_infered: string
name: extract_symbolic_data
arguments: label: D134
type_infered: string

tool: D291: 3

tool: D316: KeyVal_findIndex

tool: D143: a

tool: D68: KeyVal_findIdealIndex

tool: D306: 1

tool: D220: KeyVal_new

tool: D66: 7a. findIdealIndex ok on empty array

tool: D442: 2

tool: D468: 7b. findIndex ok on empty array

tool: D584: asdf

tool: D476: KeyVal_setValue

tool: D455: 7d. findIdealIndex-1 ok on array1

tool: D229: 7e. findIndex-1 ok on array1

tool: D140: 7g. findIdealIndex-2 ok on array1

tool: D194: 7h. findIndex-2 ok on array1

tool: D121: 7j. findIdealIndex-3 ok on array1

tool: D422: 7k. findIndex-3 ok on array1

tool: D398: 4

tool: D247: 7m. findIdealIndex-1 ok on array2

tool: D166: 7n. findIndex-1 ok on array2

tool: D110: 7p. findIdealIndex-2 ok on array2

tool: D546: 7q. findIndex-2 ok on array2

tool: D419: 7s. findIdealIndex-3 ok on array2

tool: D463: 7t. findIndex-3 ok on array2

tool: D17: 7v. findIdealIndex-4 ok on array2

tool: D170: 7w. findIndex-4 ok on array2

tool: D439: 5

tool: D378: 7y. findIdealIndex-5 ok on array2

tool: D421: 7z. findIndex-5 ok on array2

tool: D587: 6

tool: D321: 7ab. findIdealIndex-1 ok on array3

tool: D459: 7ac. findIndex-1 ok on array3

tool: D114: 7ae. findIdealIndex-2 ok on array3

tool: D213: 7

tool: D541: 7af. findIndex-2 ok on array3

tool: D234: 7ah. findIdealIndex-3 ok on array3

tool: D6: 7ai. findIndex-3 ok on array3

tool: D403: 7ak. findIdealIndex-4 ok on array3

tool: D415: 7al. findIndex-4 ok on array3

tool: D561: 7an. findIdealIndex-5 ok on array3

tool: D144: 7ao. findIndex-5 ok on array3

tool: D116: 7aq. findIdealIndex-6 ok on array3

tool: D500: 7ar. findIndex-6 ok on array3

tool: D560: 7at. findIdealIndex-7 ok on array3

tool: D0: 7au. findIndex-7 ok on array3

tool: D134: KeyVal_delete

assistant: ```c
void test7() {
  struct KeyVal *kv;
  _check_err(KeyVal_new(&kv), "KeyVal_new");
  unsigned long index;
  _check_err(KeyVal_findIdealIndex(&index, kv, "a"), "KeyVal_findIdealIndex");
  ok(index == 0, "7a. findIdealIndex ok on empty array");
  ok(KeyVal_findIndex(&index, kv, "a") == 2, "7b. findIndex ok on empty array");
  _check_err(KeyVal_setValue(kv, "2", "asdf"), "KeyVal_setValue");
  _check_err(KeyVal_findIdealIndex(&index, kv, "1"), "KeyVal_findIdealIndex");
  ok(index == 0, "7d. findIdealIndex-1 ok on array1");
  ok(KeyVal_findIndex(&index, kv, "1") == 2, "7e. findIndex-1 ok on array1");
  _check_err(KeyVal_findIdealIndex(&index, kv, "2"), "KeyVal_findIdealIndex");
  ok(index == 0, "7g. findIdealIndex-2 ok on array1");
  _check_err(KeyVal_findIndex(&index, kv, "2"), "KeyVal_findIndex");
  ok(index == 0, "7h. findIndex-2 ok on array1");
  _check_err(KeyVal_findIdealIndex(&index, kv, "3"), "KeyVal_findIdealIndex");
  ok(index == 1, "7j. findIdealIndex-3 ok on array1");
  ok(KeyVal_findIndex(&index, kv, "3") == 2, "7k. findIndex-3 ok on array1");
  _check_err(KeyVal_setValue(kv, "4", "asdf"), "KeyVal_setValue");
  _check_err(KeyVal_findIdealIndex(&index, kv, "1"), "KeyVal_findIdealIndex");
  ok(index == 0, "7m. findIdealIndex-1 ok on array2");
  ok(KeyVal_findIndex(&index, kv, "1") == 2, "7n. findIndex-1 ok on array2");
  _check_err(KeyVal_findIdealIndex(&index, kv, "2"), "KeyVal_findIdealIndex");
  ok(index == 0, "7p. findIdealIndex-2 ok on array2");
  _check_err(KeyVal_findIndex(&index, kv, "2"), "KeyVal_findIndex");
  ok(index == 0, "7q. findIndex-2 ok on array2");
  _check_err(KeyVal_findIdealIndex(&index, kv, "3"), "KeyVal_findIdealIndex");
  ok(index == 1, "7s. findIdealIndex-3 ok on array2");
  ok(KeyVal_findIndex(&index, kv, "3") == 2, "7t. findIndex-3 ok on array2");
  _check_err(KeyVal_findIdealIndex(&index, kv, "4"), "KeyVal_findIdealIndex");
  ok(index == 1, "7v. findIdealIndex-4 ok on array2");
  _check_err(KeyVal_findIndex(&index, kv, "4"), "KeyVal_findIndex");
  ok(index == 1, "7w. findIndex-4 ok on array2");
  _check_err(KeyVal_findIdealIndex(&index, kv, "5"), "KeyVal_findIdealIndex");
  ok(index == 2, "7y. findIdealIndex-5 ok on array2");
  ok(KeyVal_findIndex(&index, kv, "5") == 2, "7z. findIndex-5 ok on array2");
  _check_err(KeyVal_setValue(kv, "6", "asdf"), "KeyVal_setValue");
  _check_err(KeyVal_findIdealIndex(&index, kv, "1"), "KeyVal_findIdealIndex");
  ok(index == 0, "7ab. findIdealIndex-1 ok on array3");
  ok(KeyVal_findIndex(&index, kv, "1") == 2, "7ac. findIndex-1 ok on array3");
  _check_err(KeyVal_findIdealIndex(&index, kv, "2"), "KeyVal_findIdealIndex");
  ok(index == 0, "7ae. findIdealIndex-2 ok on array3");
  _check_err(KeyVal_findIndex(&index, kv, "2"), "KeyVal_findIndex");
  ok(index == 0, "7af. findIndex-2 ok on array3");
  _check_err(KeyVal_findIdealIndex(&index, kv, "3"), "KeyVal_findIdealIndex");
  ok(index == 1, "7ah. findIdealIndex-3 ok on array3");
  ok(KeyVal_findIndex(&index, kv, "3") == 2, "7ai. findIndex-3 ok on array3");
  _check_err(KeyVal_findIdealIndex(&index, kv, "4"), "KeyVal_findIdealIndex");
  ok(index == 1, "7ak. findIdealIndex-4 ok on array3");
  _check_err(KeyVal_findIndex(&index, kv, "4"), "KeyVal_findIndex");
  ok(index == 1, "7al. findIndex-4 ok on array3");
  _check_err(KeyVal_findIdealIndex(&index, kv, "5"), "KeyVal_findIdealIndex");
  ok(index == 2, "7an. findIdealIndex-5 ok on array3");
  ok(KeyVal_findIndex(&index, kv, "5") == 2, "7ao. findIndex-5 ok on array3");
  _check_err(KeyVal_findIdealIndex(&index, kv, "6"), "KeyVal_findIdealIndex");
  ok(index == 2, "7aq. findIdealIndex-6 ok on array3");
  _check_err(KeyVal_findIndex(&index, kv, "6"), "KeyVal_findIndex");
  ok(index == 2, "7ar. findIndex-6 ok on array3");
  _check_err(KeyVal_findIdealIndex(&index, kv, "7"), "KeyVal_findIdealIndex");
  ok(index == 3, "7at. findIdealIndex-7 ok on array3");
  ok(KeyVal_findIndex(&index, kv, "7") == 2, "7au. findIndex-7 ok on array3");
  _check_err(KeyVal_delete(kv), "KeyVal_delete");
}
```