CN111382086B - Prefix tree storage method, device, storage medium and computer equipment - Google Patents
Prefix tree storage method, device, storage medium and computer equipment Download PDFInfo
- Publication number
- CN111382086B CN111382086B CN201811631830.9A CN201811631830A CN111382086B CN 111382086 B CN111382086 B CN 111382086B CN 201811631830 A CN201811631830 A CN 201811631830A CN 111382086 B CN111382086 B CN 111382086B
- Authority
- CN
- China
- Prior art keywords
- prefix tree
- storage unit
- node
- storage
- nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
The invention provides a prefix tree storage method, a prefix tree storage device, a prefix tree storage medium and computer equipment. The method relates to the field of data storage, and solves the problem that a prefix tree occupies a large storage space. The method comprises the following steps: splitting each original prefix tree node in a prefix tree into a plurality of prefix tree nodes with first-level capacity, and allocating a first storage unit to each prefix tree node, wherein the first storage unit stores child node conditions of the prefix tree nodes; allocating a second storage unit for each prefix tree node, wherein the second storage unit stores the number of a first child node of the prefix tree node; and creating a third storage unit for storing the number of nodes cut out among the nodes of the prefix tree. The technical scheme of the invention is suitable for prefix tree storage, and realizes a prefix tree storage structure with low memory cost.
Description
Technical Field
The present invention relates to the field of data storage, and in particular, to a prefix tree storage method, apparatus, storage medium, and computer device.
Background
Existing tree data structures are generally convenient to use for the first purpose, ignoring the cost issues that are paid in use. However, the basic data structure such as the tree data structure is frequently used in the ordinary project, and occupies a large storage space, so that the cost of daily use of the tree data structure is too high, and the cost accumulation becomes a short board of the whole project.
Disclosure of Invention
The present invention is directed to solving the problems described above.
According to a first aspect of the present invention, there is provided a prefix tree storage method, including:
splitting each original prefix tree node in a prefix tree into a plurality of prefix tree nodes with first-level capacity, and allocating a first storage unit to each prefix tree node, wherein the first storage unit stores child node conditions of the prefix tree nodes;
allocating a second storage unit for each prefix tree node, wherein the second storage unit stores the number of a first child node of the prefix tree node;
and creating a third storage unit for storing the number of nodes cut out among the nodes of the prefix tree.
Preferably, the size of the first-stage capacity is N bits, and the size of the first-stage storage unit is 2 N bit, the sizes of the second-level storage unit and the third-level storage unit are log 2 (2 x n) bit, where n is the number of leaf nodes.
Preferably, the size of the first-level capacity is 4 bits, n is 2^15, and the sizes of the first storage unit, the second storage unit and the third storage unit are all 2 bytes.
Preferably, before the step of allocating a second storage unit to each prefix tree node, the method further includes:
and carrying out breadth traversal numbering on each prefix tree node in the prefix tree from the root node of the prefix tree.
Preferably, the first storage unit, the second storage unit and the third storage unit of each prefix tree node constitute one element, elements of all prefix tree nodes of the prefix tree constitute an intermediate node storage array, and intermediate node information of the prefix tree is stored through intermediate node storage data.
According to still another aspect of the present invention, there is provided a prefix tree storage apparatus including:
the first storage unit management module is used for splitting each original prefix tree node in a prefix tree into a plurality of prefix tree nodes with first-level capacity, allocating a first storage unit to each prefix tree node, and storing child node conditions of the prefix tree nodes by the first storage unit;
The second storage unit management module is used for allocating a second storage unit for each prefix tree node, and the second storage unit stores the number of the first child node of the prefix tree node;
and the third storage unit management module is used for creating a third storage unit to store the number of the nodes cut out among the nodes of the prefix tree.
Preferably, the apparatus further comprises:
and the numbering module is used for carrying out breadth traversal numbering on each prefix tree node in the prefix tree from the root node of the prefix tree.
Preferably, the size of the first-stage capacity is N bits, and the size of the first-stage storage unit is 2 N bit, the sizes of the second-level storage unit and the third-level storage unit are both log 2 (2 x n) bit, where n is the number of leaf nodes, the apparatus further comprising:
and the memory occupation management module is used for forming an element by using the first storage unit, the second storage unit and the third storage unit of each prefix tree node, forming the elements of all the prefix tree nodes of the prefix tree into an intermediate node storage array, and storing data through the intermediate node storage array to store the intermediate node information of the prefix tree.
According to still another aspect of the present invention, there is also provided a storage medium having stored thereon a computer program which, when executed, implements the steps of the above-described prefix tree storage method.
According to yet another aspect of the present invention, there is also provided a computer device comprising a processor and a memory, the memory having stored thereon a computer program which, when executed by the processor, implements the steps of the above-described prefix tree storage method.
The invention provides a prefix tree storage method, a device, a storage medium and computer equipment, which divide each original prefix tree node in a prefix tree into a plurality of prefix tree nodes with first-level capacity, allocate a first storage unit for each prefix tree node, store the child node condition of the prefix tree node in the first storage unit, allocate a second storage unit for each prefix tree node, store the serial number of the first child node of the prefix tree node in the second storage unit, and create a third storage unit to store the number of the cut child nodes of the prefix tree node. By using the brand new design of the memory space layout, the storage space occupied by the prefix tree is greatly compressed, and the disadvantage of higher memory occupation of the prefix tree is improved. The memory cost of the basic data structure prefix tree is reduced, the problem that the prefix tree occupies a large storage space is solved, the memory occupation of the prefix tree is reduced, and the cost of using the items can be liberated.
Other characteristic features and advantages of the invention will become apparent from the following description of exemplary embodiments, which is to be read in connection with the accompanying drawings.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate embodiments of the invention and together with the description, serve to explain the principles of the invention. In the drawings, like reference numerals are used to indicate like elements. The drawings in the following description are directed to some, but not all embodiments of the invention. For a person skilled in the art, other figures can be derived from these figures without inventive effort.
Fig. 1 exemplarily illustrates a flow of a prefix tree storage method provided by an embodiment of the present invention;
FIG. 2 illustrates a prefix tree structure in an embodiment of the invention;
FIG. 3 illustrates a prefix tree drawn after splitting the prefix tree of FIG. 2;
FIG. 4 illustrates a generalized prefix tree implementation memory space layout, as an example;
fig. 5 exemplarily illustrates a layout of memory space occupied by a prefix tree storage method according to an embodiment of the present invention;
fig. 6 illustrates an exemplary prefix tree storage apparatus according to an embodiment of the present invention.
Detailed Description
In order to make the objects, technical solutions and advantages of the embodiments of the present invention clearer, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are some, but not all, embodiments of the present invention. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention. It should be noted that the embodiments and features of the embodiments in the present application may be arbitrarily combined with each other without conflict.
Existing tree data structures are generally convenient to use for the first purpose, ignoring the cost issues that are paid in use. However, the basic data structure such as the tree data structure is used more frequently in ordinary projects, and occupies a larger storage space, which results in a higher cost for daily use of the tree data structure.
In order to solve the above problem, embodiments of the present invention provide a prefix tree storage method, apparatus, storage medium, and computer device. The basic prefix tree data structure implementation scheme is reconsidered, the memory space layout realized by the prefix tree is improved, and the use cost is effectively reduced.
An embodiment of the present invention provides a prefix tree storage method, which saves storage space overhead of a prefix tree by improving a data structure for storing the prefix tree.
The implementation flow of the method is shown in fig. 1, and includes:
Since there are some useless intermediate nodes in the prefix tree, e.g., intermediate nodes with only one child node. And cutting the part of intermediate nodes to finish the compression edge processing. By compressing the edges, the tree structure is finally formed, wherein other nodes except the leaf nodes necessarily have more than 2 child nodes.
The step is an optional step, and whether the prefix tree is cut or not can be selected according to the actual application condition so as to further compress the storage space occupied by the prefix tree.
In this step, each original prefix tree node whose prefix tree node value exceeds the first-level capacity size in the prefix tree is split into a plurality of prefix tree nodes whose first-level capacity size is xbit. Preferably, the first stage capacity is 4 bits. For example, an original prefix tree node with 1byte can be split into 2 prefix tree nodes with 4 bits (for example, a node with 1byte ═ 8 bits can also be split into k nodes with 4 bits). By splitting, the number of child nodes of each node is compressed to 2^4 ^ 16, and then the child node condition of one node can be stored in a space of 2 bytes, namely the first storage unit.
And 103, carrying out breadth traversal numbering on each prefix tree node in the prefix tree from the root node of the prefix tree.
In this step, each prefix tree node is replaced with a number, and the breadth traversal numbers are sequentially increased from the root node (number 0). After a prefix tree is reasonably pruned in step 101, the total number of nodes should be less than 2n-1, where n is the number of leaf nodes (the case of the most nodes is the case of a full binary tree). If the number of n, i.e., the total number of entries for creating the prefix tree, is limited, the occupied space for storing one node information can be limited. In the embodiment of the invention, the information of one node is stored by using the first storage unit with the size of 2byte ^16 bit, then 2^16> -2 n-1, and the maximum number of entries is 2^16/2 ^ 32768. In actual use, the number of entries exceeds the number, and the problem can be solved by building a prefix tree in a layering mode.
And 104, allocating a second storage unit to each prefix tree node, wherein the second storage unit stores the number of the first child node of the prefix tree node.
In this step, for an intermediate node of the prefix tree, it is also necessary to store its branch structure, and the number of the first child node of the prefix tree node is stored using the second storage unit of 2^ x bit size. According to step 102, a bitmap (i.e., a first storage location) of the agent 16 may indicate which children nodes a node has. In this step, a number of the first child node of the prefix tree node, i.e., a number of the agent 16, is stored using a second storage location of 2 bytes size. Since the nodes are traversed and numbered in step 103, the numbers of the child nodes of any prefix tree node as an intermediate node are continuous, and therefore, only the number of the first child node is recorded in this step.
And 105, establishing a third storage unit to store the number of the nodes cut out from the nodes of the prefix tree.
In this step, a third storage unit of agent 16 is further needed to record the number of nodes compressed by the prefix tree node in step 101, that is, the number of sub-nodes clipped by the prefix tree node. The size of the third-level storage unit is related to the number of leaf nodes of the whole prefix tree, and if the number of the leaf nodes is n, the size of the third-level storage unit is as follows: log of 2 (2 x n) bits.
The first storage unit, the second storage unit and the third storage unit of each prefix tree node form one element, elements of all prefix tree nodes of the prefix tree form an intermediate node storage array, and intermediate node information of the prefix tree is stored through the intermediate node storage array. And constructing cutting information storage data by taking the third storage unit of each prefix tree node as an element. For leaf nodes, the value only needs to be saved, for example, by the leaf node storage array. The size of the first-stage capacity is N bits, the size of the first-stage storage unit is 2^ N bits, and the sizes of the second-stage storage unit and the third-stage storage unit are both log 2 (2 x n) bit, where n is the number of leaf nodes.
Preferably, the size of the first-level capacity is 4 bits, n is 2^15, and the sizes of the first storage unit, the second storage unit and the third storage unit are all 2 bytes. Thus, a prefix tree node as an intermediate node can be stored using a total of 6 bytes. Compared with the existing implementation in which pointers are used, one intermediate node at least needs the 8-byte pointer and the storage mode of the 8-byte node information, and the storage space is greatly saved.
An embodiment of the present invention further provides a prefix tree storage method, which is described by taking the prefix tree shown in fig. 2 as an example.
After splitting the original prefix tree nodes in the prefix tree shown in fig. 2, the prefix tree is described as follows:
abb--0x06 0x01,0x06 0x02,0x06 0x02
abc--0x06 0x01,0x06 0x02,0x06 0x03
ace--0x06 0x01,0x06 0x03,0x06 0x05
acf--0x06 0x01,0x06 0x03,0x06 0x06
b1--0x06 0x02,0x03 0x01
b2--0x06 0x03,0x03 0x02
as shown in fig. 3, a prefix tree is plotted according to the above information.
The final memory structure is:
^//id:00 children:01 bitmap:0x0007 step:1
0x01//id:0l children:04 bitmap:0x0006 step:1
0x02//id:02 children:$bitmap:0x0000 step:2
0x03//id:03 children:$bitmap:0x0000 step:2
0x02//id:04 children:06bitmap:0x0006 step:1
0x03//id:05 children:08bitmap:0x0030 step:1
0x02//id:06 children:$bitmap:0x0000 step:0
0x03//id:07 children:$bitmap:0x0000 step:0
0x05//id:08 children:$bitmap:0x0000 step:0
0x06//id:09 children:$bitmap:0x0000 step:0
the general prefix tree implementation scheme is shown in fig. 4, where each child node of the intermediate node corresponds to a child node pointer of 8 bytes.
The layout of the memory space occupied when storing the prefix tree by using the prefix tree storage method provided by the embodiment of the invention is shown in fig. 5.
As can be seen from a comparison between fig. 4 and fig. 5, the technical solution provided by the embodiment of the present invention has a great space saving.
An embodiment of the present invention further provides a prefix tree storage device, whose structure is shown in fig. 6, including:
a first storage unit management module 601, configured to split each original prefix tree node in a prefix tree into a plurality of prefix tree nodes with a first level capacity, and allocate a first storage unit to each prefix tree node, where the first storage unit stores child node conditions of the prefix tree node;
a second storage unit management module 602, configured to allocate a second storage unit to each prefix tree node, where the second storage unit stores a number of a first child node of the prefix tree node;
a third storage unit management module 603, configured to create a third storage unit for storing the number of nodes pruned from the nodes of the prefix tree.
Preferably, the apparatus further comprises:
a numbering module 604, configured to perform breadth traversal numbering on each prefix tree node in the prefix tree starting from a root node of the prefix tree.
Preferably, the first storage unit, the second storage unit, and the third storage unit are all 2 bytes in size, and the apparatus further includes:
the memory usage management module 605 is configured to use the first storage unit, the second storage unit, and the third storage unit of each prefix tree node to form one element, form elements of all prefix tree nodes of the prefix tree into an intermediate node storage array, and store intermediate node information of the prefix tree through the intermediate node storage data.
An embodiment of the present invention further provides a storage medium, on which a computer program is stored, and the computer program, when executed, implements the steps of the prefix tree storage method provided by the embodiment of the present invention.
An embodiment of the present invention further provides a computer device, including a processor and a memory, where the memory stores thereon a computer program, and the program, when executed by the processor, implements the steps of the prefix tree storage method provided by the embodiment of the present invention.
The embodiment of the invention provides a prefix tree storage method, a device, a storage medium and computer equipment, wherein each original prefix tree node in a prefix tree is divided into a plurality of prefix tree nodes with first-level capacity, a first storage unit is allocated to each prefix tree node, the first storage unit stores the sub-node condition of the prefix tree node, a second storage unit is allocated to each prefix tree node, the second storage unit stores the number of the first sub-node of the prefix tree node, and a third storage unit is created to store the number of the divided nodes among the prefix tree nodes. By using the brand new design of the memory space layout, the storage space occupied by the prefix tree is greatly compressed, and the disadvantage of higher memory occupation of the prefix tree is improved. The memory cost of the basic data structure prefix tree is reduced, the problem that the prefix tree occupies a large storage space is solved, the memory occupation of the prefix tree is reduced, and the cost of using the items can be liberated.
The above-described aspects may be implemented individually or in various combinations, and such variations are within the scope of the present invention.
Finally, it should be noted that: the above examples are only for illustrating the technical solutions of the present invention, and are not limited thereto. Although the present invention has been described in detail with reference to the foregoing embodiments, it will be understood by those of ordinary skill in the art that: the technical solutions described in the foregoing embodiments may still be modified, or some technical features may be equivalently replaced; and such modifications or substitutions do not depart from the spirit and scope of the corresponding technical solutions of the embodiments of the present invention.
Claims (8)
1. A prefix tree storage method, comprising:
splitting each original prefix tree node in a prefix tree into a plurality of prefix tree nodes with first-level capacity, and allocating a first storage unit to each prefix tree node, wherein the first storage unit stores child node conditions of the prefix tree nodes;
allocating a second storage unit for each prefix tree node, wherein the second storage unit stores the number of a first child node of the prefix tree node;
Creating a third storage unit for storing the number of the nodes cut out from the nodes of the prefix tree;
before the step of allocating a second storage unit to each prefix tree node, the method further includes:
and carrying out breadth traversal numbering on each prefix tree node in the prefix tree from the root node of the prefix tree.
2. The prefix tree storage method of claim 1, wherein the size of the first level capacity is N bits, and the size of the first level storage unit is 2 N bit, the sizes of the second-level storage unit and the third-level storage unit are log 2 (2 x n) bit, where n is the number of leaf nodes.
3. The prefix tree storage method of claim 2, wherein the size of the first level capacity is 4 bits, n is 2^15, and the sizes of the first storage unit, the second storage unit, and the third storage unit are all 2 bytes.
4. The prefix tree storage method according to claim 1, wherein the first storage unit, the second storage unit, and the third storage unit of each prefix tree node constitute one element, elements of all prefix tree nodes of the prefix tree constitute an intermediate node storage array, and intermediate node information of the prefix tree is stored by the intermediate node storage data.
5. A prefix tree storage apparatus, comprising:
the first storage unit management module is used for splitting each original prefix tree node in a prefix tree into a plurality of prefix tree nodes with first-level capacity, allocating a first storage unit to each prefix tree node, and storing child node conditions of the prefix tree nodes by the first storage unit;
the second storage unit management module is used for allocating a second storage unit for each prefix tree node, and the second storage unit stores the number of the first child node of the prefix tree node;
the third storage unit management module is used for creating a third storage unit to store the number of nodes cut out among the nodes of the prefix tree;
the device further comprises:
and the numbering module is used for carrying out breadth traversal numbering on each prefix tree node in the prefix tree from the root node of the prefix tree.
6. The prefix tree storage device of claim 5, wherein the size of the first level capacity is N bits, and the size of the first level storage unit is 2 N bit, the sizes of the second-level storage unit and the third-level storage unit are log 2 (2 x n) bit, where n is the number of leaf nodes, the apparatus further comprising:
And the memory occupation management module is used for forming an element by using the first storage unit, the second storage unit and the third storage unit of each prefix tree node, forming the elements of all the prefix tree nodes of the prefix tree into an intermediate node storage array, and storing data through the intermediate node storage array to store the intermediate node information of the prefix tree.
7. A storage medium, characterized in that the storage medium has stored thereon a computer program which, when executed, realizes the steps of the method of any one of claims 1-4.
8. A computer arrangement, characterized by comprising a processor and a memory, on which a computer program is stored, which program, when being executed by the processor, carries out the steps of the method of any one of claims 1-4.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811631830.9A CN111382086B (en) | 2018-12-29 | 2018-12-29 | Prefix tree storage method, device, storage medium and computer equipment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811631830.9A CN111382086B (en) | 2018-12-29 | 2018-12-29 | Prefix tree storage method, device, storage medium and computer equipment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111382086A CN111382086A (en) | 2020-07-07 |
CN111382086B true CN111382086B (en) | 2022-07-29 |
Family
ID=71214733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811631830.9A Active CN111382086B (en) | 2018-12-29 | 2018-12-29 | Prefix tree storage method, device, storage medium and computer equipment |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111382086B (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113407539B (en) * | 2021-06-21 | 2022-05-24 | 湖北央中巨石信息技术有限公司 | Prefix tree based regional coding query method, system and application thereof |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070198548A1 (en) * | 2005-11-28 | 2007-08-23 | Lee Won S | Compressed prefix trees and estDec+ method for finding frequent itemsets over data streams |
US20110153979A1 (en) * | 2009-12-22 | 2011-06-23 | Nathanial Kiel Boyle | Modified b+ tree to store nand memory indirection maps |
CN102662855A (en) * | 2012-04-17 | 2012-09-12 | 华为技术有限公司 | Storage method and system of binary tree |
-
2018
- 2018-12-29 CN CN201811631830.9A patent/CN111382086B/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070198548A1 (en) * | 2005-11-28 | 2007-08-23 | Lee Won S | Compressed prefix trees and estDec+ method for finding frequent itemsets over data streams |
US20110153979A1 (en) * | 2009-12-22 | 2011-06-23 | Nathanial Kiel Boyle | Modified b+ tree to store nand memory indirection maps |
CN102662855A (en) * | 2012-04-17 | 2012-09-12 | 华为技术有限公司 | Storage method and system of binary tree |
Non-Patent Citations (2)
Title |
---|
Efficient Name Lookup Scheme Based on Hash and Character Trie in Named Data Networking;Y. Tan and S. Zhu;《2015 12th Web Information System and Application Conference (WISA)》;20151231;第130-135页 * |
一种新的二叉树结构XML编码方案;桑俊霞等;《铁路计算机应用》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111382086A (en) | 2020-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110149803B (en) | Data storage method, system and terminal equipment | |
US7283072B1 (en) | Methods of creating a dictionary for data compression | |
US10228875B2 (en) | Data writing and reading methods for flash | |
CN102867071B (en) | Management method for massive network management historical data | |
US10127254B2 (en) | Method of index recommendation for NoSQL database | |
CN110196847A (en) | Data processing method and device, storage medium and electronic device | |
CN104462141A (en) | Data storage and query method and system and storage engine device | |
Müller et al. | Retrieval and perfect hashing using fingerprinting | |
CN109407985B (en) | Data management method and related device | |
CN116521956A (en) | Graph database query method and device, electronic equipment and storage medium | |
CN114490060A (en) | Memory allocation method and device, computer equipment and computer readable storage medium | |
CN108874930A (en) | File attribute information statistical method, device, system, equipment and storage medium | |
CN111382086B (en) | Prefix tree storage method, device, storage medium and computer equipment | |
CN115525580A (en) | Namespace setting method and device and readable storage medium | |
CN114254164A (en) | Graph data storage method and device | |
CN110532284A (en) | Mass data storage and search method, device, computer equipment and storage medium | |
CN111382323A (en) | Data retrieval optimization method and device and computer equipment | |
CN104063377A (en) | Information processing method and electronic equipment using same | |
CN110781101A (en) | One-to-many mapping relation storage method and device, electronic equipment and medium | |
CN110309137A (en) | A kind of data managing method and device | |
CN115408547A (en) | Dictionary tree construction method, device, equipment and storage medium | |
CN107688567B (en) | Index storage method and related device | |
CN110321358A (en) | User data editing method and device | |
CN111008195A (en) | Database free space management method, system, terminal and storage medium | |
CN112783896B (en) | Method for reducing memory usage rate by loading files |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |