|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 43008 (0xa800) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Complement, seg_047b48
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
with Text_Io, Complement_Identifier_Array, Field_Identifier_Array; package body Complement is procedure Copy (Input_Item : in Object; Output_Item : in out Object) is begin Output_Item := Input_Item; case Input_Item.Kind is when Animate => --output_item := (kind =>animate, -- animate_name =>input_item.animate_name, -- animate_fields => field_array.null_object, -- animate_fields => field_list.null, -- animate_place => input_item.animate_place, -- trip => place_list.nil, -- trip_iterator =>null_trip_iterator); Field_List.Free (Output_Item.Animate_Fields); Field_List.Copy (Input_Item.Animate_Fields, Output_Item.Animate_Fields); when Place => -- output_item := (kind=>place, -- place_name => input_item.place_name, -- place_fields => field_array.null_object, -- place_fields => field_list.nil, -- exits =>link_list.nil, -- exits_iterator =>null_exits_iterator); Field_List.Free (Output_Item.Place_Fields); Field_List.Copy (Input_Item.Place_Fields, Output_Item.Place_Fields); -- field_list.free(output_item.exist); -- field_list.copy(input_item.exits,output_item.exits); when Entity => -- output_item := (kind =>entity, -- entity_name =>input_item.entity_name, -- entity_fields => field_array.null_object, -- entity_fields => field_list.nil, -- entity_place => input_item.entity_place); Field_List.Free (Output_Item.Entity_Fields); Field_List.Copy (Input_Item.Entity_Fields, Output_Item.Entity_Fields); when Word | Verb | Unknown => null; end case; end Copy; procedure Put_Name (Item : in out Object; Name : in Identifier.Object; Ok : out Boolean) is begin case Item.Kind is when Animate => Item.Animate_Name := Name; Group_Identifier_Array.Put (Name, Ok); Put_Group (Item, Group_Identifier_Array.Index (Identifier.Image (Name)), Ok); Ok := True; when Place => Item.Place_Name := Name; Group_Identifier_Array.Put (Name, Ok); Put_Group (Item, Group_Identifier_Array.Index (Identifier.Image (Name)), Ok); Ok := True; when Entity => Item.Entity_Name := Name; Group_Identifier_Array.Put (Name, Ok); Put_Group (Item, Group_Identifier_Array.Index (Identifier.Image (Name)), Ok); Ok := True; when Word | Verb | Unknown => Ok := False; end case; end Put_Name; procedure Put_Word (Item : in out Object; A_Word : in Identifier.Object) is Ok : Boolean; begin Item := (Group_List => Group_Index_List.Null_Object, Group_Iterator => Null_Group_Iterator, Kind => Word, Word_Value => A_Word); Group_Identifier_Array.Put (A_Word, Ok); Put_Group (Item, Group_Identifier_Array.Index (Identifier.Image (A_Word)), Ok); end Put_Word; procedure Put_Verb (Item : in out Object; A_Synonym, A_Verb : in Identifier.Object) is Ok : Boolean; begin Item := (Group_List => Group_Index_List.Null_Object, Group_Iterator => Null_Group_Iterator, Kind => Verb, Synonym => A_Synonym); Group_Identifier_Array.Put (A_Verb, Ok); Put_Group (Item, Group_Identifier_Array.Index (Identifier.Image (A_Verb)), Ok); end Put_Verb; --procedure get_field(item : in out object;a_field : out field.object;field_name:in string; ok : out boolean) is --begin -- case item.kind is -- when animate => -- field_array.get(item.animate_fields,a_field,field_name,ok); -- when place => -- field_array.get(item.place_fields,a_field,field_name,ok); -- when entity=> -- field_array.get(item.entity_fields,a_field,field_name,ok); -- when word | verb | unknown=> -- ok := false; -- end case; --end; procedure Get_Fields (Item : in Object; List : out Field_List.Object; Ok : out Boolean) is begin Ok := True; case Item.Kind is when Animate => List := Item.Animate_Fields; when Place => List := Item.Place_Fields; when Entity => List := Item.Entity_Fields; when Word | Verb | Unknown => Ok := False; end case; end Get_Fields; --procedure get_field(item : in object;a_field : out field.object;field_name: in string; ok : out boolean) is procedure Get_Field (Item : in Object; A_Field : out Field.Object; Field_Index : in Positive; Ok : out Boolean) is List : Field_List.Object; Local_Ok : Boolean; begin Get_Fields (Item, List, Local_Ok); if Local_Ok then Field_List.Get (List, A_Field, Field_Identifier_Array.Image (Field_Index), Ok); else Ok := False; end if; end Get_Field; procedure Put_Field (Item : in out Object; A_Field : in Field.Object) is List : Field_List.Object; Local_Ok : Boolean; begin -- Get_Fields (Item, List, Local_Ok); -- if Local_Ok then -- Field_List.Put (List, A_Field); -- end if; case Item.Kind is when Animate => Field_List.Put (Item.Animate_Fields, A_Field); when Place => Field_List.Put (Item.Place_Fields, A_Field); when Entity => Field_List.Put (Item.Entity_Fields, A_Field); when Word | Verb | Unknown => null; end case; end Put_Field; --procedure put_field(item : in out object;a_field : in field.object) is --begin -- case item.kind is -- when animate => -- field_array.put(item.animate_fields,a_field); -- when place => -- field_array.put(item.place_fields,a_field); -- when entity=> -- field_array.put(item.entity_fields,a_field); -- when word | verb | unknown=> -- null; -- end case; --end; -- procedure create_number_field(item : out object;field_name: in string; ok : out boolean) is procedure Create_Number_Field (Item : in out Object; Field_Index : in Positive; Ok : out Boolean) is A_Field : Field.Object; begin -- if is_a_subject(item) and not field_exist(item,field_name) then if Is_A_Subject (Item) and not Field_Belong (Item, Field_Index) then -- field.create_number(a_field,field_name); Field.Create_Number (A_Field, Field_Index); Put_Field (Item, A_Field); Ok := True; else Ok := False; end if; end Create_Number_Field; -- procedure create_sentence_field(item : in out object;field_name: in string; ok : out boolean); procedure Create_Sentence_Field (Item : in out Object; Field_Index : in Positive; Ok : out Boolean) is A_Field : Field.Object; begin -- if is_a_subject(item) and not field_exist(item,field_name) then if Is_A_Subject (Item) and not Field_Belong (Item, Field_Index) then -- field.create_sentence(a_field,field_name); Field.Create_Sentence (A_Field, Field_Index); Put_Field (Item, A_Field); Ok := True; else Ok := False; end if; end Create_Sentence_Field; -- procedure create_enumerate_field(item : in out object;field_name: in string; ok : out boolean); procedure Create_Enumerate_Field (Item : in out Object; Field_Index : in Positive; Ok : out Boolean) is A_Field : Field.Object; begin -- if is_a_subject(item) and not field_exist(item,field_name) then if Is_A_Subject (Item) and not Field_Belong (Item, Field_Index) then -- field.create_enumerate(a_field,field_name); Field.Create_Enumerate (A_Field, Field_Index); Put_Field (Item, A_Field); Ok := True; else Ok := False; end if; end Create_Enumerate_Field; -- procedure field_Put_number (Item : in out Object;field_name: in string;number : in integer; ok : out boolean); procedure Field_Put_Number (Item : in out Object; Field_Index : in Positive; Number : in Integer; Ok : out Boolean) is A_Field : Field.Object; Local_Ok : Boolean; begin -- get_field(item,a_field,field_name,local_ok); Get_Field (Item, A_Field, Field_Index, Local_Ok); if Local_Ok then Field.Put_Number (A_Field, Number, Local_Ok); if Local_Ok then Put_Field (Item, A_Field); end if; end if; Ok := Local_Ok; end Field_Put_Number; -- procedure field_Put_sentence (Item : in out Object;field_name: in string;sentence : in string; ok : out boolean); procedure Field_Put_Sentence (Item : in out Object; Field_Index : in Positive; Sentence : in Identifier.Object; Ok : out Boolean) is A_Field : Field.Object; Local_Ok : Boolean; begin -- get_field(item,a_field,field_name,local_ok); Get_Field (Item, A_Field, Field_Index, Local_Ok); if Local_Ok then Field.Put_Sentence (A_Field, Sentence, Local_Ok); if Local_Ok then Put_Field (Item, A_Field); end if; end if; Ok := Local_Ok; end Field_Put_Sentence; -- procedure field_Put_enumerate (Item : in out Object;field_name: in string;enumeration,literal : in positive; ok : out boolean); procedure Field_Put_Enumerate (Item : in out Object; Field_Index : in Positive; Enumeration, Literal : in Positive; Ok : out Boolean) is A_Field : Field.Object; Local_Ok : Boolean; begin -- get_field(item,a_field,field_name,local_ok); Get_Field (Item, A_Field, Field_Index, Local_Ok); if Local_Ok then Field.Put_Enumerate (A_Field, Enumeration, Literal, Local_Ok); if Local_Ok then Put_Field (Item, A_Field); end if; end if; Ok := Local_Ok; end Field_Put_Enumerate; procedure Put_Movement (Item : in out Object; Place : in Positive) is Place_Index : Complement_Index.Object; Iterator : Place_List.Iterator; Temporary_List : Place_List.List; begin if Item.Kind = Animate then Place_List.Init (Iterator, Item.Trip); while not Place_List.Done (Iterator) loop Place_Index := Place_List.Value (Iterator); Temporary_List := Place_List.Make (Place_Index, Temporary_List); Place_List.Next (Iterator); end loop; Complement_Index.Put (Place_Index, Place); Temporary_List := Place_List.Make (Place_Index, Temporary_List); Place_List.Free (Item.Trip); Place_List.Init (Iterator, Temporary_List); while not Place_List.Done (Iterator) loop Place_Index := Place_List.Value (Iterator); Item.Trip := Place_List.Make (Place_Index, Item.Trip); Place_List.Next (Iterator); end loop; end if; end Put_Movement; procedure Movement_Init (Item : in out Object) is begin -- if Item.Kind = Animate then -- Place_List.Init (Item.Trip_Iterator, Item.Trip); -- end if; null; end Movement_Init; procedure Move (Item : in out Object) is begin if Item.Kind = Animate then if not Place_List.Is_Empty (Item.Trip) then if Place_List.Done (Item.Trip_Iterator) then Place_List.Init (Item.Trip_Iterator, Item.Trip); end if; Item.Animate_Place := Complement_Index.Value (Place_List.Value (Item.Trip_Iterator)); Place_List.Next (Item.Trip_Iterator); end if; end if; end Move; function Exit_Exist (Item : in Object; Direction : in Positive) return Boolean is begin if Item.Kind = Place then return Link_List.Belong (Item.Exits, Complement_Identifier_Array.Image (Direction)); else return False; end if; end Exit_Exist; function Exits_Exist (Item : in Object) return Boolean is begin if Item.Kind = Place then return not Link_List.Is_Empty (Item.Exits); else return False; end if; end Exits_Exist; procedure Put_Exit (Item : in out Object; Name, Start_Place, Start_Direction, Next_Place, Next_Direction : in Positive; Ok : out Boolean) is A_Link : Link.Object; Local_Ok : Boolean; begin if Item.Kind = Place then if not Exit_Exist (Item, Start_Direction) then Link.Put (A_Link, Name, Start_Place, Start_Direction, Next_Place, Next_Direction); Link_List.Put (Item.Exits, A_Link); Ok := True; else Ok := False; end if; end if; end Put_Exit; --procedure put_exit(item : in out object;name,start_place,start_direction, --next_place,next_direction : in positive;ok : out boolean); --a_link : link.object; --begin -- if item.kind = place then -- link.put_name(a_link,name); -- link.put_start_escape(a_link,start_place,start_direction); -- link.put_next_escape(a_link,next_place,next_direction); -- link_list.put(item.exits,a_link,ok); -- else -- ok:=false; -- end if; --end; --procedure exit_put_enumerate(item : in out object;direction,numeration,literal: in positive;ok : out boolean); --a_link : link.object; --local_ok : boolean; --begin -- found_link(item,a_link,direction,local_ok); -- if local_ok then -- link.put_enumerate(a_link,enumeration,literal); -- link_list.put(item.exits,a_link); -- ok:=true; -- else -- ok := false; --end if; --end; -- procedure Found_Link (Item : in Object; -- A_Link : out Link.Object; -- Direction : in Positive; -- Ok : out Boolean) is -- -- begin -- if Is_A_Place (Item) then -- Link_List.Get (Item.Exits, A_Link, Positive'Image (Direction), Ok); -- else -- Ok := False; -- end if; -- end Found_Link; -- -- function Exit_Enumeration -- (Item : in Object; Direction : in Positive) return Natural is -- -- A_Link : Link.Object; -- Local_Ok : Boolean; -- -- begin -- Found_Link (Item, A_Link, Direction, Local_Ok); -- if Local_Ok then -- return Link.Enumeration (A_Link); -- else -- return 0; -- end if; -- end Exit_Enumeration; -- -- function Exit_Literal -- (Item : in Object; Direction : in Positive) return Natural is -- -- A_Link : Link.Object; -- Local_Ok : Boolean; -- -- begin -- Found_Link (Item, A_Link, Direction, Local_Ok); -- if Local_Ok then -- return Link.Literal (A_Link); -- else -- return 0; -- end if; -- end Exit_Literal; function Exit_Name (Item : in Object; Direction : in Positive) return Natural is A_Link : Link.Object; Local_Ok : Boolean; begin if Item.Kind = Place then Link_List.Get (Item.Exits, A_Link, Complement_Identifier_Array.Image (Direction), Local_Ok); if Local_Ok then return Link.Name (A_Link); else return 0; end if; return 0; end if; end Exit_Name; function Next_Place (Item : in Object; Direction : in Positive) return Natural is A_Link : Link.Object; Local_Ok : Boolean; begin if Item.Kind = Place then Link_List.Get (Item.Exits, A_Link, Complement_Identifier_Array.Image (Direction), Local_Ok); if Local_Ok then return Link.Next_Place (A_Link); end if; end if; return 0; end Next_Place; function Next_Direction (Item : in Object; Direction : in Positive) return Natural is A_Link : Link.Object; Local_Ok : Boolean; begin if Item.Kind = Place then Link_List.Get (Item.Exits, A_Link, Complement_Identifier_Array.Image (Direction), Local_Ok); if Local_Ok then return Link.Next_Direction (A_Link); else return 0; end if; end if; end Next_Direction; procedure Put_Place (Item : in out Object; Place : in Natural; Ok : out Boolean) is begin if Item.Kind = Animate then Item.Animate_Place := Place; Ok := True; elsif Item.Kind = Entity then Item.Entity_Place := Place; Ok := True; else Ok := False; end if; end Put_Place; procedure Show (Item : in Object) is Trip_Iterator : Place_List.Iterator; begin Text_Io.Put_Line ("Complement : Kind : " & Complement_Kind'Image (Item.Kind)); case Item.Kind is when Animate => Text_Io.Put_Line (" Name : " & Name (Item) & " Place : " & Complement_Identifier_Array.Image (Place (Item))); Field_List.Show (Item.Animate_Fields); Place_List.Init (Trip_Iterator, Item.Trip); while not Place_List.Done (Trip_Iterator) loop Complement_Index.Show (Place_List.Value (Trip_Iterator)); Place_List.Next (Trip_Iterator); end loop; when Place => Text_Io.Put_Line (" Name : " & Name (Item)); Field_List.Show (Item.Place_Fields); Link_List.Show (Item.Exits); when Entity => Text_Io.Put_Line (" Name : " & Name (Item) & " Place : " & Complement_Identifier_Array.Image (Place (Item))); Field_List.Show (Item.Entity_Fields); when Word => Text_Io.Put_Line (" Name : " & Name (Item)); when Verb => Text_Io.Put_Line (" Name : " & Name (Item)); -- " Reference Verb : " & -- Identifier.Image (Item.Reference_Verb)); when Unknown => Text_Io.New_Line; end case; end Show; procedure List_Exits_Init (Item : in out Object) is begin if Item.Kind = Place then Link_List.Init (Item.Exits_Iterator, Item.Exits); end if; end List_Exits_Init; procedure List_Exits_Next (Item : in out Object) is begin if Item.Kind = Place then Link_List.Next (Item.Exits_Iterator); end if; end List_Exits_Next; function List_Exits_Direction (Item : in Object) return Natural is begin if Item.Kind = Place then return Link.Start_Direction (Link_List.Value (Item.Exits_Iterator)); else return 0; end if; end List_Exits_Direction; function List_Exits_Done (Item : in Object) return Boolean is begin if Item.Kind = Place then return Link_List.Done (Item.Exits_Iterator); else return True; end if; end List_Exits_Done; procedure Put_Group (Item : in out Object; An_Index : in Positive; Ok : out Boolean) is A_Group_Index : Group_Index.Object; Local_Ok : Boolean := False; begin Group_Index.Put (A_Group_Index, An_Index); Group_Index_List.Put (Item.Group_List, A_Group_Index, Ok); end Put_Group; procedure List_Group_Init (Item : in out Object) is begin Group_Index_List.Init (Item.Group_Iterator, Item.Group_List); -- voir ordre end List_Group_Init; procedure List_Group_Next (Item : in out Object) is begin Group_Index_List.Next (Item.Group_Iterator); end List_Group_Next; function List_Group_Name (Item : in Object) return String is begin return Group_Index.Image (Group_Index_List.Value (Item.Group_Iterator)); end List_Group_Name; function List_Group_Done (Item : in Object) return Boolean is begin return Group_Index_List.Done (Item.Group_Iterator); end List_Group_Done; --function field_is_a_number (item : in object;field_name : in string) return boolean is function Field_Is_A_Number (Item : in Object; Field_Index : in Positive) return Boolean is A_Field : Field.Object; Local_Ok : Boolean; begin -- get_field(item,a_field,field_name,local_ok); Get_Field (Item, A_Field, Field_Index, Local_Ok); if Local_Ok then return Field.Is_A_Number (A_Field); else return False; end if; end Field_Is_A_Number; --function field_is_a_sentence (item : in object;field_name : in string) return boolean is function Field_Is_A_Sentence (Item : in Object; Field_Index : in Positive) return Boolean is A_Field : Field.Object; Local_Ok : Boolean; begin -- get_field(item,a_field,field_name,local_ok); Get_Field (Item, A_Field, Field_Index, Local_Ok); if Local_Ok then return Field.Is_A_Sentence (A_Field); else return False; end if; end Field_Is_A_Sentence; --function field_is_an_enumerate (item : in object;field_name : in string) return boolean is function Field_Is_An_Enumerate (Item : in Object; Field_Index : in Positive) return Boolean is A_Field : Field.Object; Local_Ok : Boolean; begin -- get_field(item,a_field,field_name,local_ok); Get_Field (Item, A_Field, Field_Index, Local_Ok); if Local_Ok then return Field.Is_An_Enumerate (A_Field); else return False; end if; end Field_Is_An_Enumerate; --function field_exist (item : in object;field_name : in string) return boolean is --begin -- case item.kind is -- when animate => -- return field_array.belong(item.animate_fields,field_name); -- when place => -- return field_array.belong(item.place_fields,field_name); -- when entity=> -- return field_array.belong(item.entity_fields,field_name); -- when word | unknown=> -- return false; -- end case; --end; --function field_exist (item : in object;field_name : in string) return boolean is function Field_Belong (Item : in Object; Field_Index : in Positive) return Boolean is List : Field_List.Object; Local_Ok : Boolean; begin Get_Fields (Item, List, Local_Ok); if Local_Ok then -- return field_list.belong(list,field_name); return Field_List.Belong (List, Field_Identifier_Array.Image (Field_Index)); else return False; end if; end Field_Belong; function Is_A_Subject (Item : in Object) return Boolean is begin return Item.Kind = Animate or Item.Kind = Place or Item.Kind = Entity; end Is_A_Subject; function Is_An_Animate (Item : in Object) return Boolean is begin return Item.Kind = Animate; end Is_An_Animate; function Is_A_Place (Item : in Object) return Boolean is begin return Item.Kind = Place; end Is_A_Place; function Is_An_Entity (Item : in Object) return Boolean is begin return Item.Kind = Entity; end Is_An_Entity; function Is_A_Word (Item : in Object) return Boolean is begin return Item.Kind = Word; end Is_A_Word; function Is_A_Verb (Item : in Object) return Boolean is begin return Item.Kind = Verb; end Is_A_Verb; function Name (Item : in Object) return String is begin case Item.Kind is when Animate => return Identifier.Image (Item.Animate_Name); when Place => return Identifier.Image (Item.Place_Name); when Entity => return Identifier.Image (Item.Entity_Name); when Word => return Identifier.Image (Item.Word_Value); when Verb => return Identifier.Image (Item.Synonym); when Unknown => return ""; end case; end Name; function Place (Item : in Object) return Natural is begin case Item.Kind is when Animate => return Item.Animate_Place; when Entity => return Item.Entity_Place; when Place | Word | Verb | Unknown => return 0; end case; end Place; --function field_number (Item : in Object,field_name:in string) return Integer is function Field_Number (Item : in Object; Field_Index : in Positive) return Integer is A_Field : Field.Object; Local_Ok : Boolean; begin -- get_field(item,a_field,field_name,local_ok); Get_Field (Item, A_Field, Field_Index, Local_Ok); if Local_Ok then return Field.Number (A_Field); else return 0; end if; end Field_Number; --function field_sentence (Item : in Object,field_name:in string) return String is function Field_Sentence (Item : in Object; Field_Index : in Positive) return String is A_Field : Field.Object; Local_Ok : Boolean; begin -- get_field(item,a_field,field_name,local_ok); Get_Field (Item, A_Field, Field_Index, Local_Ok); if Local_Ok then return Field.Sentence (A_Field); else return ""; end if; end Field_Sentence; --function field_Enumeration (Item : in Object,field_name:in string) return Natural is function Field_Enumeration (Item : in Object; Field_Index : in Positive) return Natural is A_Field : Field.Object; Local_Ok : Boolean; begin -- get_field(item,a_field,field_name,local_ok); Get_Field (Item, A_Field, Field_Index, Local_Ok); if Local_Ok then return Field.Enumeration (A_Field); else return 0; end if; end Field_Enumeration; --function field_Literal (Item : in Object,field_name:in string) return Natural is function Field_Literal (Item : in Object; Field_Index : in Positive) return Natural is A_Field : Field.Object; Local_Ok : Boolean; begin -- get_field(item,a_field,field_name,local_ok); Get_Field (Item, A_Field, Field_Index, Local_Ok); if Local_Ok then return Field.Literal (A_Field); else return 0; end if; end Field_Literal; -- function Synonym (Item : in Object) return Natural is -- begin -- if Item.Kind = Verb then -- return Complement_Identifier_Array.Index -- (Identifier.Image (Item.Reference_Verb)); -- else -- return 0; -- end if; -- end Synonym; -- begin -- -- --create_sentence (animate_object,"nom",local_ok); -- --put_sentence(animate_object,"nom","anime",local_ok); -- -- Field_Identifier_Array.Put ("description"); -- -- Create_Sentence_Field -- (Animate_Object, -- Field_Identifier_Array.Index ("description"), Global_Ok); -- Field_Put_Sentence (Animate_Object, -- Field_Identifier_Array.Index ("description"), -- "Ca bouge !", Global_Ok); -- -- --create_sentence (place_object,"nom",local_ok); -- --put_sentence(place_object,"nom","lieu",local_ok); -- Create_Sentence_Field -- (Place_Object, Field_Identifier_Array.Index ("description"), Global_Ok); -- Field_Put_Sentence (Place_Object, -- Field_Identifier_Array.Index ("description"), -- "C'est une piece !", Global_Ok); -- -- --create_sentence (entity_object,"nom",local_ok); -- --put_sentence(entity_object,"nom","entite",local_ok); -- Create_Sentence_Field -- (Entity_Object, Field_Identifier_Array.Index ("description"), Global_Ok); -- Field_Put_Sentence (Entity_Object, -- Field_Identifier_Array.Index ("description"), -- "C'est un objet !", Global_Ok); end Complement;
nblk1=29 nid=25 hdr6=4e [0x00] rec0=1d rec1=00 rec2=01 rec3=02c [0x01] rec0=1e rec1=00 rec2=10 rec3=02c [0x02] rec0=18 rec1=00 rec2=0b rec3=028 [0x03] rec0=1d rec1=00 rec2=19 rec3=052 [0x04] rec0=1f rec1=00 rec2=02 rec3=038 [0x05] rec0=06 rec1=00 rec2=22 rec3=054 [0x06] rec0=20 rec1=00 rec2=23 rec3=030 [0x07] rec0=02 rec1=00 rec2=06 rec3=010 [0x08] rec0=1f rec1=00 rec2=09 rec3=054 [0x09] rec0=19 rec1=00 rec2=07 rec3=006 [0x0a] rec0=18 rec1=00 rec2=08 rec3=03c [0x0b] rec0=18 rec1=00 rec2=15 rec3=05e [0x0c] rec0=0e rec1=00 rec2=04 rec3=00c [0x0d] rec0=1b rec1=00 rec2=0d rec3=014 [0x0e] rec0=15 rec1=00 rec2=24 rec3=01e [0x0f] rec0=23 rec1=00 rec2=1d rec3=026 [0x10] rec0=03 rec1=00 rec2=0a rec3=040 [0x11] rec0=21 rec1=00 rec2=1b rec3=018 [0x12] rec0=25 rec1=00 rec2=21 rec3=01a [0x13] rec0=01 rec1=00 rec2=0c rec3=00e [0x14] rec0=1e rec1=00 rec2=03 rec3=024 [0x15] rec0=23 rec1=00 rec2=20 rec3=034 [0x16] rec0=23 rec1=00 rec2=0e rec3=02e [0x17] rec0=1d rec1=00 rec2=0f rec3=002 [0x18] rec0=17 rec1=00 rec2=17 rec3=00e [0x19] rec0=00 rec1=00 rec2=1f rec3=014 [0x1a] rec0=25 rec1=00 rec2=11 rec3=044 [0x1b] rec0=21 rec1=00 rec2=26 rec3=00e [0x1c] rec0=1a rec1=00 rec2=27 rec3=06a [0x1d] rec0=20 rec1=00 rec2=12 rec3=04c [0x1e] rec0=21 rec1=00 rec2=1e rec3=004 [0x1f] rec0=00 rec1=00 rec2=14 rec3=04e [0x20] rec0=29 rec1=00 rec2=13 rec3=04e [0x21] rec0=1d rec1=00 rec2=05 rec3=07a [0x22] rec0=00 rec1=00 rec2=16 rec3=01e [0x23] rec0=21 rec1=00 rec2=18 rec3=032 [0x24] rec0=21 rec1=00 rec2=1a rec3=02e [0x25] rec0=1d rec1=00 rec2=1c rec3=094 [0x26] rec0=0e rec1=00 rec2=28 rec3=000 [0x27] rec0=00 rec1=40 rec2=10 rec3=634 [0x28] rec0=5c rec1=31 rec2=a1 rec3=530 tail 0x2174b604a86549ad3b3ce 0x42a00088462060003 Free Block Chain: 0x25: 0000 00 29 00 18 80 15 4c 69 73 74 29 3b 20 20 2d 2d ┆ ) List); --┆ 0x29: 0000 00 00 01 1a 80 07 62 2c 20 4f 6b 29 3b 07 00 18 ┆ b, Ok); ┆