--- /srv/reproducible-results/rbuild-debian/r-b-build.lYyvG8dy/b1/python-gsd_4.0.0-1_amd64.changes +++ /srv/reproducible-results/rbuild-debian/r-b-build.lYyvG8dy/b2/python-gsd_4.0.0-1_amd64.changes ├── Files │ @@ -1,4 +1,4 @@ │ │ - 6616013932e9151835cceb14f9e36500 122480 doc optional python-gsd-doc_4.0.0-1_all.deb │ + 652f1f4e84b222e1c4c4cbb852a36009 122456 doc optional python-gsd-doc_4.0.0-1_all.deb │ d87cd6831dde921ada279435f407c06d 362300 debug optional python3-gsd-dbgsym_4.0.0-1_amd64.deb │ 7f9647f73192c62530ad5b20c3c04475 208964 python optional python3-gsd_4.0.0-1_amd64.deb ├── python-gsd-doc_4.0.0-1_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2025-08-11 08:32:38.000000 debian-binary │ │ -rw-r--r-- 0 0 0 2708 2025-08-11 08:32:38.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 119580 2025-08-11 08:32:38.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 119556 2025-08-11 08:32:38.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -71,15 +71,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 23272 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/python-api.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 88696 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/python-module-gsd.fl.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 95626 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/python-module-gsd.hoomd.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 49510 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/python-module-gsd.pygsd.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 18753 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/python-module-gsd.version.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 107552 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/schema-hoomd.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 16657 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/search.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 73229 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/searchindex.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 73241 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/searchindex.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32663 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/shapes.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 20809 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/specification.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 24982 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/style.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-08-11 08:32:38.000000 ./usr/share/doc-base/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 331 2025-08-11 08:32:38.000000 ./usr/share/doc-base/python-gsd-doc.python-gsd │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/_static/doctools.js -> ../../../../javascript/sphinxdoc/1.0/doctools.js │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/_static/language_data.js -> ../../../../javascript/sphinxdoc/1.0/language_data.js │ │ │ ├── ./usr/share/doc/python-gsd-doc/html/hoomd-examples.html │ │ │ │ @@ -354,23 +354,23 @@ │ │ │ │ Out[16]: np.uint64(5) │ │ │ │ │ │ │ │ In [17]: frame.particles.N │ │ │ │ Out[17]: np.uint32(9) │ │ │ │ │ │ │ │ In [18]: frame.particles.position │ │ │ │ Out[18]: │ │ │ │ -array([[0.2448324 , 0.4248788 , 0.03036282], │ │ │ │ - [0.09682854, 0.5456384 , 0.03632759], │ │ │ │ - [0.05022744, 0.04346096, 0.7365458 ], │ │ │ │ - [0.18079156, 0.7473205 , 0.51275426], │ │ │ │ - [0.7295292 , 0.37780795, 0.9342821 ], │ │ │ │ - [0.805061 , 0.6408879 , 0.67015564], │ │ │ │ - [0.6312153 , 0.35059008, 0.8324852 ], │ │ │ │ - [0.78022105, 0.32808965, 0.18684301], │ │ │ │ - [0.65824497, 0.21917616, 0.61023533]], dtype=float32) │ │ │ │ +array([[0.8300317 , 0.6433904 , 0.88677955], │ │ │ │ + [0.9174645 , 0.28754658, 0.7540563 ], │ │ │ │ + [0.7841679 , 0.73606324, 0.03237678], │ │ │ │ + [0.07652885, 0.78441316, 0.26030752], │ │ │ │ + [0.6771271 , 0.24711876, 0.89931047], │ │ │ │ + [0.28426662, 0.08380098, 0.07250234], │ │ │ │ + [0.06633534, 0.76704437, 0.22600213], │ │ │ │ + [0.8664561 , 0.89306444, 0.8969469 ], │ │ │ │ + [0.5709988 , 0.11224406, 0.94705933]], dtype=float32) │ │ │ │ │ │ │ │ │ │ │ │

gsd.hoomd.HOOMDTrajectory supports random indexing of frames in the file. │ │ │ │ Indexing into a trajectory returns a gsd.hoomd.Frame.

│ │ │ │ │ │ │ │
│ │ │ │

Slicing and selection

│ │ │ │ @@ -397,21 +397,21 @@ │ │ │ │

Pure python reader

│ │ │ │
In [23]: f = gsd.pygsd.GSDFile(open('example.gsd', 'rb'))
│ │ │ │  
│ │ │ │  In [24]: trajectory = gsd.hoomd.HOOMDTrajectory(f);
│ │ │ │  
│ │ │ │  In [25]: trajectory[3].particles.position
│ │ │ │  Out[25]: 
│ │ │ │ -array([[0.57121   , 0.731209  , 0.35579365],
│ │ │ │ -       [0.41756624, 0.9366235 , 0.6583382 ],
│ │ │ │ -       [0.641247  , 0.1326517 , 0.628977  ],
│ │ │ │ -       [0.29231876, 0.8117944 , 0.8759391 ],
│ │ │ │ -       [0.20119959, 0.5564307 , 0.46785906],
│ │ │ │ -       [0.6268789 , 0.2843572 , 0.11323138],
│ │ │ │ -       [0.75064737, 0.11587842, 0.03046744]], dtype=float32)
│ │ │ │ +array([[0.5927836 , 0.32609093, 0.04699515],
│ │ │ │ +       [0.32690832, 0.98091334, 0.7284996 ],
│ │ │ │ +       [0.08499312, 0.50255823, 0.02372489],
│ │ │ │ +       [0.6917006 , 0.16607437, 0.18782897],
│ │ │ │ +       [0.93474716, 0.3432794 , 0.9952016 ],
│ │ │ │ +       [0.5984785 , 0.4091289 , 0.55379504],
│ │ │ │ +       [0.7263609 , 0.05809404, 0.97646195]], dtype=float32)
│ │ │ │  
│ │ │ │
│ │ │ │

You can use GSD without needing to compile C code to read GSD files │ │ │ │ using gsd.pygsd.GSDFile in combination with gsd.hoomd.HOOMDTrajectory. It │ │ │ │ only supports the rb mode and does not read files as fast as the C │ │ │ │ implementation. It takes in a python file-like object, so it can be used with │ │ │ │ in-memory IO classes, and grid file classes that access data over the internet.

│ │ │ │ ├── html2text {} │ │ │ │ │ @@ -95,23 +95,23 @@ │ │ │ │ │ Out[16]: np.uint64(5) │ │ │ │ │ │ │ │ │ │ In [17]: frame.particles.N │ │ │ │ │ Out[17]: np.uint32(9) │ │ │ │ │ │ │ │ │ │ In [18]: frame.particles.position │ │ │ │ │ Out[18]: │ │ │ │ │ -array([[0.2448324 , 0.4248788 , 0.03036282], │ │ │ │ │ - [0.09682854, 0.5456384 , 0.03632759], │ │ │ │ │ - [0.05022744, 0.04346096, 0.7365458 ], │ │ │ │ │ - [0.18079156, 0.7473205 , 0.51275426], │ │ │ │ │ - [0.7295292 , 0.37780795, 0.9342821 ], │ │ │ │ │ - [0.805061 , 0.6408879 , 0.67015564], │ │ │ │ │ - [0.6312153 , 0.35059008, 0.8324852 ], │ │ │ │ │ - [0.78022105, 0.32808965, 0.18684301], │ │ │ │ │ - [0.65824497, 0.21917616, 0.61023533]], dtype=float32) │ │ │ │ │ +array([[0.8300317 , 0.6433904 , 0.88677955], │ │ │ │ │ + [0.9174645 , 0.28754658, 0.7540563 ], │ │ │ │ │ + [0.7841679 , 0.73606324, 0.03237678], │ │ │ │ │ + [0.07652885, 0.78441316, 0.26030752], │ │ │ │ │ + [0.6771271 , 0.24711876, 0.89931047], │ │ │ │ │ + [0.28426662, 0.08380098, 0.07250234], │ │ │ │ │ + [0.06633534, 0.76704437, 0.22600213], │ │ │ │ │ + [0.8664561 , 0.89306444, 0.8969469 ], │ │ │ │ │ + [0.5709988 , 0.11224406, 0.94705933]], dtype=float32) │ │ │ │ │ _g_s_d_._h_o_o_m_d_._H_O_O_M_D_T_r_a_j_e_c_t_o_r_y supports random indexing of frames in the file. │ │ │ │ │ Indexing into a trajectory returns a _g_s_d_._h_o_o_m_d_._F_r_a_m_e. │ │ │ │ │ ********** SSlliicciinngg aanndd sseelleeccttiioonn_?¶ ********** │ │ │ │ │ Use the slicing operator to select individual frames or a subset of a │ │ │ │ │ trajectory. │ │ │ │ │ In [19]: f = gsd.hoomd.open(name='example.gsd', mode='r') │ │ │ │ │ │ │ │ │ │ @@ -130,21 +130,21 @@ │ │ │ │ │ ********** PPuurree ppyytthhoonn rreeaaddeerr_?¶ ********** │ │ │ │ │ In [23]: f = gsd.pygsd.GSDFile(open('example.gsd', 'rb')) │ │ │ │ │ │ │ │ │ │ In [24]: trajectory = gsd.hoomd.HOOMDTrajectory(f); │ │ │ │ │ │ │ │ │ │ In [25]: trajectory[3].particles.position │ │ │ │ │ Out[25]: │ │ │ │ │ -array([[0.57121 , 0.731209 , 0.35579365], │ │ │ │ │ - [0.41756624, 0.9366235 , 0.6583382 ], │ │ │ │ │ - [0.641247 , 0.1326517 , 0.628977 ], │ │ │ │ │ - [0.29231876, 0.8117944 , 0.8759391 ], │ │ │ │ │ - [0.20119959, 0.5564307 , 0.46785906], │ │ │ │ │ - [0.6268789 , 0.2843572 , 0.11323138], │ │ │ │ │ - [0.75064737, 0.11587842, 0.03046744]], dtype=float32) │ │ │ │ │ +array([[0.5927836 , 0.32609093, 0.04699515], │ │ │ │ │ + [0.32690832, 0.98091334, 0.7284996 ], │ │ │ │ │ + [0.08499312, 0.50255823, 0.02372489], │ │ │ │ │ + [0.6917006 , 0.16607437, 0.18782897], │ │ │ │ │ + [0.93474716, 0.3432794 , 0.9952016 ], │ │ │ │ │ + [0.5984785 , 0.4091289 , 0.55379504], │ │ │ │ │ + [0.7263609 , 0.05809404, 0.97646195]], dtype=float32) │ │ │ │ │ You can use GGSSDD without needing to compile C code to read GGSSDD files using │ │ │ │ │ _g_s_d_._p_y_g_s_d_._G_S_D_F_i_l_e in combination with _g_s_d_._h_o_o_m_d_._H_O_O_M_D_T_r_a_j_e_c_t_o_r_y. It only │ │ │ │ │ supports the rb mode and does not read files as fast as the C implementation. │ │ │ │ │ It takes in a python file-like object, so it can be used with in-memory IO │ │ │ │ │ classes, and grid file classes that access data over the internet. │ │ │ │ │ Warning │ │ │ │ │ _g_s_d_._p_y_g_s_d is ssllooww. Use _g_s_d_._h_o_o_m_d_._o_p_e_n whenever possible. │ │ │ ├── ./usr/share/doc/python-gsd-doc/html/searchindex.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -1876,183 +1876,183 @@ │ │ │ │ │ "12": "py:property", │ │ │ │ │ "13": "std:chunk", │ │ │ │ │ "14": "std:cmdoption" │ │ │ │ │ }, │ │ │ │ │ "terms": { │ │ │ │ │ "": [1, 2, 3, 8, 11, 13, 14, 18, 21], │ │ │ │ │ "0": [0, 6, 7, 8, 11, 14, 15, 16, 18, 19], │ │ │ │ │ - "03036282": 8, │ │ │ │ │ - "03046744": 8, │ │ │ │ │ - "03632759": 8, │ │ │ │ │ - "04346096": 8, │ │ │ │ │ - "05022744": 8, │ │ │ │ │ - "09682854": 8, │ │ │ │ │ + "02372489": 8, │ │ │ │ │ + "03237678": 8, │ │ │ │ │ + "04699515": 8, │ │ │ │ │ + "05809404": 8, │ │ │ │ │ + "06633534": 8, │ │ │ │ │ + "07250234": 8, │ │ │ │ │ + "07652885": 8, │ │ │ │ │ + "08380098": 8, │ │ │ │ │ + "08499312": 8, │ │ │ │ │ "0x65df65df65df65df": 6, │ │ │ │ │ "0xaaaabbbb": 6, │ │ │ │ │ "1": [0, 7, 8, 12, 14, 15, 16, 18, 19, 20], │ │ │ │ │ "10": [7, 8, 11, 14, 15], │ │ │ │ │ "100": [8, 15, 21], │ │ │ │ │ "11": [7, 8, 14], │ │ │ │ │ - "11323138": 8, │ │ │ │ │ - "11587842": 8, │ │ │ │ │ + "11224406": 8, │ │ │ │ │ "12": [7, 8, 14], │ │ │ │ │ "127": 1, │ │ │ │ │ "13": [7, 8, 14], │ │ │ │ │ - "1326517": 8, │ │ │ │ │ "13_gsd": [7, 8, 14], │ │ │ │ │ "14": [7, 8, 11, 14], │ │ │ │ │ "15": [7, 8, 14], │ │ │ │ │ "16": [0, 6, 7, 8, 14], │ │ │ │ │ + "16607437": 8, │ │ │ │ │ "17": [7, 8, 14], │ │ │ │ │ "18": [7, 8, 11], │ │ │ │ │ - "18079156": 8, │ │ │ │ │ - "18684301": 8, │ │ │ │ │ + "18782897": 8, │ │ │ │ │ "19": [7, 8, 14], │ │ │ │ │ "1d": [14, 16], │ │ │ │ │ "1x1": [18, 19], │ │ │ │ │ "2": [0, 7, 8, 11, 12, 14, 15, 16, 18, 19, 20], │ │ │ │ │ "20": [7, 8], │ │ │ │ │ "200": [8, 15], │ │ │ │ │ - "20119959": 8, │ │ │ │ │ "2016": 12, │ │ │ │ │ "2019": 11, │ │ │ │ │ "2022": 11, │ │ │ │ │ "2025": 12, │ │ │ │ │ "21": [7, 8], │ │ │ │ │ - "21917616": 8, │ │ │ │ │ "22": [7, 8, 11], │ │ │ │ │ + "22600213": 8, │ │ │ │ │ "23": [7, 8], │ │ │ │ │ "235": 1, │ │ │ │ │ "237": 1, │ │ │ │ │ "238": 1, │ │ │ │ │ "24": [7, 8], │ │ │ │ │ - "2448324": 8, │ │ │ │ │ + "24711876": 8, │ │ │ │ │ "249": 1, │ │ │ │ │ "25": [7, 8], │ │ │ │ │ "255": 1, │ │ │ │ │ "256": [0, 6], │ │ │ │ │ "257": 1, │ │ │ │ │ "26": [7, 8], │ │ │ │ │ + "26030752": 8, │ │ │ │ │ "266": 1, │ │ │ │ │ "267": 1, │ │ │ │ │ "27": [7, 8], │ │ │ │ │ "270": 1, │ │ │ │ │ "28": [7, 8], │ │ │ │ │ "283": 1, │ │ │ │ │ - "2843572": 8, │ │ │ │ │ + "28426662": 8, │ │ │ │ │ + "28754658": 8, │ │ │ │ │ "29": [7, 8], │ │ │ │ │ - "29231876": 8, │ │ │ │ │ "2d": [14, 16, 18, 19], │ │ │ │ │ "2gib": 1, │ │ │ │ │ "3": [7, 8, 11, 14, 15, 16, 18, 19], │ │ │ │ │ "30": [7, 8], │ │ │ │ │ "300": [8, 15], │ │ │ │ │ "308": 1, │ │ │ │ │ "31": [7, 8], │ │ │ │ │ "317": 1, │ │ │ │ │ "319": 1, │ │ │ │ │ "32": [0, 6, 7, 18], │ │ │ │ │ "322": 1, │ │ │ │ │ "323": 1, │ │ │ │ │ "324": 1, │ │ │ │ │ "325": 1, │ │ │ │ │ - "32808965": 8, │ │ │ │ │ + "32609093": 8, │ │ │ │ │ + "32690832": 8, │ │ │ │ │ "33": 7, │ │ │ │ │ "34": 7, │ │ │ │ │ + "3432794": 8, │ │ │ │ │ "35": 7, │ │ │ │ │ - "35059008": 8, │ │ │ │ │ - "35579365": 8, │ │ │ │ │ "36": 7, │ │ │ │ │ "365": 1, │ │ │ │ │ "367": 1, │ │ │ │ │ "37": 7, │ │ │ │ │ "376": 1, │ │ │ │ │ - "37780795": 8, │ │ │ │ │ "38": 7, │ │ │ │ │ "388": 1, │ │ │ │ │ "39": 7, │ │ │ │ │ "391": 1, │ │ │ │ │ "3d": 20, │ │ │ │ │ "4": [0, 7, 8, 14, 15, 18, 21], │ │ │ │ │ "40": 7, │ │ │ │ │ "400": [8, 15], │ │ │ │ │ "405": 1, │ │ │ │ │ + "4091289": 8, │ │ │ │ │ "41": 7, │ │ │ │ │ "417": 1, │ │ │ │ │ - "41756624": 8, │ │ │ │ │ "422": 1, │ │ │ │ │ - "4248788": 8, │ │ │ │ │ "429": 1, │ │ │ │ │ "43": 7, │ │ │ │ │ "44": 7, │ │ │ │ │ "45": 7, │ │ │ │ │ "46": 7, │ │ │ │ │ - "46785906": 8, │ │ │ │ │ "47": 7, │ │ │ │ │ "48": 7, │ │ │ │ │ "49": 7, │ │ │ │ │ "5": [7, 8, 14, 15, 19], │ │ │ │ │ "50": 7, │ │ │ │ │ "500": [8, 15], │ │ │ │ │ + "50255823": 8, │ │ │ │ │ "51": 7, │ │ │ │ │ - "51275426": 8, │ │ │ │ │ "52": 7, │ │ │ │ │ "53": [0, 7], │ │ │ │ │ "54": 7, │ │ │ │ │ - "5456384": 8, │ │ │ │ │ "55": 7, │ │ │ │ │ - "5564307": 8, │ │ │ │ │ + "55379504": 8, │ │ │ │ │ "56": 7, │ │ │ │ │ - "57121": 8, │ │ │ │ │ + "5709988": 8, │ │ │ │ │ + "5927836": 8, │ │ │ │ │ + "5984785": 8, │ │ │ │ │ "6": [7, 8, 14, 15], │ │ │ │ │ "600": [8, 15], │ │ │ │ │ - "61023533": 8, │ │ │ │ │ - "6268789": 8, │ │ │ │ │ - "628977": 8, │ │ │ │ │ "63": [0, 6], │ │ │ │ │ "630": 8, │ │ │ │ │ - "6312153": 8, │ │ │ │ │ "64": [0, 6, 11], │ │ │ │ │ - "6408879": 8, │ │ │ │ │ - "641247": 8, │ │ │ │ │ + "6433904": 8, │ │ │ │ │ "648": 7, │ │ │ │ │ "65535": 6, │ │ │ │ │ - "65824497": 8, │ │ │ │ │ - "6583382": 8, │ │ │ │ │ - "67015564": 8, │ │ │ │ │ + "6771271": 8, │ │ │ │ │ + "6917006": 8, │ │ │ │ │ "6x1": 18, │ │ │ │ │ "7": [7, 8, 14, 15, 19], │ │ │ │ │ "70": 14, │ │ │ │ │ "700": [8, 15], │ │ │ │ │ - "7295292": 8, │ │ │ │ │ - "731209": 8, │ │ │ │ │ - "7365458": 8, │ │ │ │ │ - "7473205": 8, │ │ │ │ │ - "75064737": 8, │ │ │ │ │ + "7263609": 8, │ │ │ │ │ + "7284996": 8, │ │ │ │ │ + "73606324": 8, │ │ │ │ │ + "7540563": 8, │ │ │ │ │ "761": 14, │ │ │ │ │ + "76704437": 8, │ │ │ │ │ "774": 14, │ │ │ │ │ - "78022105": 8, │ │ │ │ │ + "7841679": 8, │ │ │ │ │ + "78441316": 8, │ │ │ │ │ "785": 8, │ │ │ │ │ "786": 8, │ │ │ │ │ "787": 8, │ │ │ │ │ "789": 8, │ │ │ │ │ "791": 8, │ │ │ │ │ "792": 8, │ │ │ │ │ "8": [0, 6, 7, 8, 14, 15, 18, 19], │ │ │ │ │ "80": [6, 14, 21], │ │ │ │ │ "800": [8, 15], │ │ │ │ │ - "805061": 8, │ │ │ │ │ - "8117944": 8, │ │ │ │ │ - "8324852": 8, │ │ │ │ │ - "8759391": 8, │ │ │ │ │ + "8300317": 8, │ │ │ │ │ + "8664561": 8, │ │ │ │ │ + "88677955": 8, │ │ │ │ │ + "89306444": 8, │ │ │ │ │ + "8969469": 8, │ │ │ │ │ + "89931047": 8, │ │ │ │ │ "9": [7, 8, 11, 14, 15], │ │ │ │ │ "90": 14, │ │ │ │ │ "900": [8, 15], │ │ │ │ │ - "9342821": 8, │ │ │ │ │ - "9366235": 8, │ │ │ │ │ + "9174645": 8, │ │ │ │ │ + "93474716": 8, │ │ │ │ │ + "94705933": 8, │ │ │ │ │ + "97646195": 8, │ │ │ │ │ + "98091334": 8, │ │ │ │ │ + "9952016": 8, │ │ │ │ │ "A": [0, 5, 6, 8, 9, 12, 18, 19], │ │ │ │ │ "AND": 12, │ │ │ │ │ "AS": 12, │ │ │ │ │ "As": 15, │ │ │ │ │ "BE": 12, │ │ │ │ │ "BUT": 12, │ │ │ │ │ "BY": 12,