rtint 0.0.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,74 @@
1
+ Metadata-Version: 2.4
2
+ Name: rtint
3
+ Version: 0.0.3
4
+ Summary: Python code to interface with Simulink Mechatronics Library.
5
+ Author-email: Thomas Dehaeze <thomas.dehaeze@esrf.fr>
6
+ Maintainer-email: Thomas Dehaeze <thomas.dehaeze@esrf.fr>
7
+ License-Expression: MIT
8
+ Project-URL: Homepage, https://gitlab.esrf.fr/dehaeze/mechatronics-simulink-interface
9
+ Project-URL: Issues, https://gitlab.esrf.fr/dehaeze/mechatronics-simulink-interface/-/work_items
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.9
12
+ Classifier: Programming Language :: Python :: 3.10
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
16
+ Requires-Python: <3.14,>=3.9
17
+ Description-Content-Type: text/markdown
18
+ License-File: LICENSE
19
+ Requires-Dist: resyst-client<0.20,>=0.19
20
+ Requires-Dist: numpy>=1.21.1
21
+ Requires-Dist: matplotlib
22
+ Requires-Dist: scipy
23
+ Requires-Dist: treelib
24
+ Requires-Dist: gevent
25
+ Requires-Dist: tabulate
26
+ Provides-Extra: build
27
+ Requires-Dist: build; extra == "build"
28
+ Requires-Dist: twine; extra == "build"
29
+ Provides-Extra: all
30
+ Requires-Dist: resyst-client[build]; extra == "all"
31
+ Dynamic: license-file
32
+
33
+ # rtint
34
+
35
+ Python package to interface with Simulink models running on real-time target machines through the Resyst (Communication Interface for Simulink-based Real Time Systems).
36
+
37
+ ## Installation
38
+
39
+ ```bash
40
+ pip install rtint
41
+ ```
42
+
43
+ ## Usage
44
+
45
+ ```python
46
+ from rtint.rtint_hardware import RtintController
47
+
48
+ config = {
49
+ "server": "resyst-hostname",
50
+ "port": 8080,
51
+ }
52
+
53
+ controller = RtintController("my_target", config)
54
+ controller._run_model("my_model")
55
+
56
+ # Access hardware components
57
+ controller.motor.start()
58
+ controller.regul.on()
59
+ controller.filter.low_pass(wn=100, xi=0.707)
60
+ ```
61
+
62
+ ## Dependencies
63
+
64
+ - resyst-client >=0.19,<0.20
65
+ - numpy >=1.21.1
66
+ - matplotlib
67
+ - scipy
68
+ - treelib
69
+ - gevent
70
+ - tabulate
71
+
72
+ ## License
73
+
74
+ MIT
@@ -0,0 +1,19 @@
1
+ rtint/_version.py,sha256=_imd66x09sTd41VCdBD0RFplr2e75yP5Ped99So9xP0,520
2
+ rtint/rtint_acquisition.py,sha256=B3vu2mPxWW5FMfTVO0DwntL30DylIsOT2yrMGPDUBD4,10964
3
+ rtint/rtint_counter.py,sha256=Rm2oN-tTblwerBpylflh90beppnQOJHII5Sg3xqdWQg,6507
4
+ rtint/rtint_ethercat.py,sha256=JxCnHSV4UEVBgFiJ92PdO0A0wbV-LBso99ByaP4iN84,4046
5
+ rtint/rtint_filter.py,sha256=oOxRAXr2N8kcNpyk_ZRSbfdwpE5scwy3RUn36C9CV-Q,28057
6
+ rtint/rtint_generator.py,sha256=OX0Uw4_cGrp4YQdtBkc2JsyRHJyoUUK7rpl6Zwh6vWY,18817
7
+ rtint/rtint_hardware.py,sha256=vyPd4Er2ynS6t0vVd2I5h4U5QDinVkxvUySspa9jBpo,11736
8
+ rtint/rtint_lut.py,sha256=M9nRJnpttq9BuyAxUFjBykD_Q8EaCEPUtpzkV_ewnfM,4307
9
+ rtint/rtint_motor.py,sha256=JMNo7pmeSlkIo65KuhZ5xGRVlcIiDywSgVTGHeXFWkQ,6007
10
+ rtint/rtint_parameter.py,sha256=BK3tstaqSv51LMNDsFU2451WpmHbY_m_S3DKuaDKOnc,3426
11
+ rtint/rtint_regul.py,sha256=JyFRdLI5LvYuU_B4eK2zpUnwjwrdKtL0lVg9j64gLKQ,10069
12
+ rtint/rtint_signal.py,sha256=GzBADWaIciND4ImG-JQBCK7eipOL0WeU8biaoUm6Ir0,1100
13
+ rtint/rtint_trigger.py,sha256=-ZxfwIS7RbTDkmrdQJF7yDZ905Ixfv96cqKyJn_2RAE,3271
14
+ rtint/rtint_utils.py,sha256=KPL8HH0DiQEzFJ2cjuDZKKKPL_LYMBic66SPE7petr8,19837
15
+ rtint-0.0.3.dist-info/licenses/LICENSE,sha256=XwFI7HDQEPEXKHrWJVDcfVk9V2_uKlOAmaZzfXhzerM,14574
16
+ rtint-0.0.3.dist-info/METADATA,sha256=Me7cRZy07Xt7TzNns0G_PnAinEuhEyLb9NOi4syx0G4,1916
17
+ rtint-0.0.3.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
18
+ rtint-0.0.3.dist-info/top_level.txt,sha256=UGNNIniMYf5aVosUQMn5OyzBm7L_jOgcOSHqZOPMFtQ,6
19
+ rtint-0.0.3.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (82.0.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,238 @@
1
+ <!DOCTYPE html>
2
+ <html class="html-devise-layout gl-system" lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta content="IE=edge" http-equiv="X-UA-Compatible">
6
+ <meta content="width=device-width, initial-scale=1" name="viewport">
7
+ <title>Sign in · GitLab</title>
8
+ <script>
9
+ //<![CDATA[
10
+ window.gon={};gon.features={"passkeys":true,"twoStepSignIn":false};
11
+ //]]>
12
+ </script>
13
+
14
+ <script>
15
+ //<![CDATA[
16
+ const root = document.documentElement;
17
+ if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
18
+ root.classList.add('gl-dark');
19
+ }
20
+
21
+ window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {
22
+ if (e.matches) {
23
+ root.classList.add('gl-dark');
24
+ } else {
25
+ root.classList.remove('gl-dark');
26
+ }
27
+ });
28
+
29
+ //]]>
30
+ </script>
31
+
32
+
33
+
34
+
35
+ <meta content="light dark" name="color-scheme">
36
+ <link rel="stylesheet" href="/assets/application-6cfc5bf1accc7be60a097014ba8b526bd361cfa9f5b0755ec6c38716971f3f05.css" media="(prefers-color-scheme: light)" />
37
+ <link rel="stylesheet" href="/assets/application_dark-78fb9312ecec789a0e5325c913c3401bf8b9ca4dac842db0da7f0127028c6117.css" media="(prefers-color-scheme: dark)" />
38
+ <link rel="stylesheet" href="/assets/page_bundles/login-7240ec00cf3969b710fe5e8959f8ef8eeff66d635ded28839b1b4256ae8d96a3.css" /><link rel="stylesheet" href="/assets/page_bundles/commit_description-9e7efe20f0cef17d0606edabfad0418e9eb224aaeaa2dae32c817060fa60abcc.css" /><link rel="stylesheet" href="/assets/page_bundles/work_items-fe78a3dcdbc87456d93535d15aa5ef609b9a8623591a687b335e85fa08fdbd12.css" /><link rel="stylesheet" href="/assets/page_bundles/notes_shared-e58f07f39b2c4557134baf9f32b68c875fffb37fe1c5d8808fb7607d19f5690b.css" />
39
+ <link rel="stylesheet" href="/assets/tailwind_cqs-ef4824f60d56559339ee7cfc71e29c445ebea667adc766d6ee1f6eb3bfc9f2bc.css" />
40
+
41
+
42
+ <link rel="stylesheet" href="/assets/fonts-deb7ad1d55ca77c0172d8538d53442af63604ff490c74acc2859db295c125bdb.css" />
43
+ <link rel="stylesheet" href="/assets/highlight/themes/white-91053d9b33e6ca83f1ccc9f675156756bb42617c9bc1cda4b3915abc0547ceda.css" media="(prefers-color-scheme: light)" />
44
+ <link rel="stylesheet" href="/assets/highlight/themes/dark-fa67ecd7679c9e378a28d89e0ab7f2423d7dbba3770b71f213b0453730ea247e.css" media="(prefers-color-scheme: dark)" />
45
+
46
+ <script src="/assets/webpack/runtime.f0ed7b7d.bundle.js" defer="defer"></script>
47
+ <script src="/assets/webpack/main.a61fc596.chunk.js" defer="defer"></script>
48
+ <script src="/assets/webpack/tracker.1eb446cb.chunk.js" defer="defer"></script>
49
+ <script>
50
+ //<![CDATA[
51
+ window.snowplowOptions = {"namespace":"gl","hostname":"gitlab.esrf.fr:443","postPath":"/-/collect_events","forceSecureTracker":true,"appId":"gitlab_sm"};
52
+ gl = window.gl || {};
53
+ gl.snowplowStandardContext = {"schema":"iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8","data":{"environment":"self-managed","source":"gitlab-rails","correlation_id":"01KPNGNYX6KY9VNQEREJP4RTN8","extra":{},"user_id":null,"global_user_id":null,"user_type":null,"is_gitlab_team_member":null,"namespace_id":null,"ultimate_parent_namespace_id":null,"project_id":null,"feature_enabled_by_namespace_ids":null,"realm":"self-managed","deployment_type":"self-managed","context_generated_at":"2026-04-20T15:18:37.012+02:00","organization_id":1}};
54
+ gl.snowplowPseudonymizedPageUrl = "https://gitlab.esrf.fr/users/sign_in";
55
+ gl.maskedDefaultReferrerUrl = null;
56
+ gl.ga4MeasurementId = 'G-ENFH3X7M5Y';
57
+ gl.duoEvents = [];
58
+ gl.onlySendDuoEvents = false;
59
+
60
+
61
+ //]]>
62
+ </script>
63
+ <link rel="preload" href="/assets/application-6cfc5bf1accc7be60a097014ba8b526bd361cfa9f5b0755ec6c38716971f3f05.css" as="style" type="text/css">
64
+ <link rel="preload" href="/assets/highlight/themes/white-91053d9b33e6ca83f1ccc9f675156756bb42617c9bc1cda4b3915abc0547ceda.css" as="style" type="text/css">
65
+
66
+
67
+
68
+
69
+ <script src="/assets/webpack/commons-pages.explore.catalog-pages.groups.harbor.repositories-pages.groups.issues-pages.groups.new--aa29c505.0ea1bdf9.chunk.js" defer="defer"></script>
70
+ <script src="/assets/webpack/commons-pages.search.show-super_sidebar.3d3a4264.chunk.js" defer="defer"></script>
71
+ <script src="/assets/webpack/super_sidebar.820fa925.chunk.js" defer="defer"></script>
72
+ <script src="/assets/webpack/commons-pages.admin.sessions-pages.ldap.omniauth_callbacks-pages.omniauth_callbacks-pages.profiles.p-27bfc84e.cfe4b2b4.chunk.js" defer="defer"></script>
73
+ <script src="/assets/webpack/commons-pages.admin.sessions-pages.ldap.omniauth_callbacks-pages.omniauth_callbacks-pages.sessions-p-ea3be603.4d9a7e0d.chunk.js" defer="defer"></script>
74
+ <script src="/assets/webpack/commons-pages.registrations.new-pages.sessions.new.d9de2f1d.chunk.js" defer="defer"></script>
75
+ <script src="/assets/webpack/pages.sessions.new.129b9eab.chunk.js" defer="defer"></script>
76
+
77
+
78
+
79
+ <meta name="csrf-param" content="authenticity_token" />
80
+ <meta name="csrf-token" content="mqnxDtwYRiy3uKTH5Zrmmbyb6Gsy5rMVc5TxUtU3k7XOp5Fshi0hF3D8eV_FnINuGHRRmZOSrJ5yFFzgZu8jsw" />
81
+ <meta name="csp-nonce" />
82
+ <meta name="action-cable-url" content="/-/cable" />
83
+ <link href="/-/manifest.json" rel="manifest">
84
+ <link rel="icon" type="image/png" href="/assets/favicon-72a2cad5025aa931d6ea56c3201d1f18e68a8cd39788c7c80d5b2b82aa5143ef.png" id="favicon" data-original-href="/assets/favicon-72a2cad5025aa931d6ea56c3201d1f18e68a8cd39788c7c80d5b2b82aa5143ef.png" />
85
+ <link rel="apple-touch-icon" type="image/x-icon" href="/assets/apple-touch-icon-b049d4bc0dd9626f31db825d61880737befc7835982586d015bded10b4435460.png" />
86
+ <link href="/search/opensearch.xml" rel="search" title="Search GitLab" type="application/opensearchdescription+xml">
87
+
88
+
89
+
90
+
91
+ <meta content="ESRF&#39;s GitLab instance" name="description">
92
+ <meta content="#F1F0F6" media="(prefers-color-scheme: light)" name="theme-color">
93
+ <meta content="#232128" media="(prefers-color-scheme: dark)" name="theme-color">
94
+ </head>
95
+
96
+ <body class="gl-h-full login-page gl-browser-generic gl-platform-other" data-page="sessions:new" data-testid="login-page">
97
+
98
+ <script>
99
+ //<![CDATA[
100
+ gl = window.gl || {};
101
+ gl.client = {"isGeneric":true,"isOther":true};
102
+
103
+
104
+ //]]>
105
+ </script>
106
+
107
+
108
+
109
+
110
+ <div class="gl-h-full gl-flex gl-flex-wrap">
111
+ <div class="container gl-self-center">
112
+ <main class="content">
113
+ <div class="flash-container flash-container-page sticky" data-testid="flash-container">
114
+ <div class="gl-alert gl-alert-info gl-alert-not-dismissible" role="alert">
115
+ <div class="gl-alert-icon-container">
116
+ <svg class="s16 gl-alert-icon gl-alert-icon-no-title" data-testid="information-o-icon"><use href="/assets/icons-41229992eca580608aadaaa9b83b717650b2863442574d0ebb87f859c42a3b6c.svg#information-o"></use></svg>
117
+ </div>
118
+ <div class="gl-alert-content" role="alert">
119
+ <div class="gl-alert-body">
120
+ <div class="gl-flex gl-items-center">
121
+ <div class="gl-grow">
122
+ Sign in before continuing.
123
+ </div>
124
+ </div>
125
+
126
+ </div>
127
+ </div>
128
+ </div>
129
+
130
+ <div id="js-global-alerts"></div>
131
+ </div>
132
+
133
+ <div class="row gl-mt-5 gl-gap-y-6">
134
+ <div class="col-md order-12">
135
+ <div class="col-sm-12">
136
+ <h1 class="gl-mb-5 gl-text-size-h2 gl-hidden md:gl-block">
137
+ ESRF&#39;s GitLab instance
138
+ </h1>
139
+ <div class="md" id="js-custom-sign-in-description"><h2 data-sourcepos="1:1-1:23" dir="auto">&#x000A;<a href="#esrf-code-repository" aria-hidden="true" class="anchor" id="user-content-esrf-code-repository"></a>ESRF code repository</h2>&#x000A;<p data-sourcepos="2:1-2:34" dir="auto"><gl-emoji title="hammer and wrench" data-name="tools" data-unicode-version="7.0">🛠</gl-emoji>️ Find ESRF code &amp; resources</p>&#x000A;<h4 data-sourcepos="4:1-4:19" dir="auto">&#x000A;<a href="#authentication" aria-hidden="true" class="anchor" id="user-content-authentication"></a>Authentication</h4>&#x000A;<p data-sourcepos="5:1-5:68" dir="auto"><gl-emoji title="bust in silhouette" data-name="bust_in_silhouette" data-unicode-version="6.0">👤</gl-emoji> Please use your individual ESRF user or staff account to log-in</p>&#x000A;<h4 data-sourcepos="7:1-7:20" dir="auto">&#x000A;<a href="#public-projects" aria-hidden="true" class="anchor" id="user-content-public-projects"></a>Public projects</h4>&#x000A;<p data-sourcepos="8:1-8:84" dir="auto"><gl-emoji title="sparkles" data-name="sparkles" data-unicode-version="6.0">✨</gl-emoji> You can also explore publicly visible software at <a href="https://gitlab.esrf.fr/explore">https://gitlab.esrf.fr/explore</a></p></div>
140
+ </div>
141
+ </div>
142
+ <div class="col-md order-md-12">
143
+ <div class="col-sm-12 bar">
144
+ <div class="gl-text-center gl-mb-5">
145
+ <img alt="ESRF&#39;s GitLab instance" class="gl-invisible gl-h-10 js-portrait-logo-detection lazy" data-src="/uploads/-/system/appearance/logo/1/logo-h.png" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" />
146
+ <h1 class="gl-mb-3 gl-text-size-h2 md:gl-hidden">
147
+ ESRF&#39;s GitLab instance
148
+ </h1>
149
+ </div>
150
+
151
+ <div class="js-non-oauth-login">
152
+ <ul class="-gl-mx-5 gl-my-5 nav-justified nav gl-tabs-nav" id="js-signin-tabs" role="tablist"><li role="presentation" class="nav-item"><a data-toggle="tab" data-testid="ldap-tab" role="tab" class="nav-link gl-tab-nav-item active gl-tab-nav-item-active" href="#ldapmain">Deprecated (use SSO)</a></li>
153
+
154
+ <li role="presentation" class="nav-item"><a data-toggle="tab" data-testid="standard-tab" role="tab" class="nav-link gl-tab-nav-item" href="#login-pane">Standard</a></li>
155
+ </ul><div class="tab-content">
156
+ <div class="tab-pane active" id="ldapmain" role="tabpanel">
157
+ <form class="gl-show-field-errors" aria-live="assertive" data-testid="new_ldap_user" action="/users/auth/ldapmain/callback" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="X5xuPDQDkHAbrwcUz8jIfn6WkFlpHTA5wN1yfq9VXPwLkg5ebjb3S9zr2ozvzq2J2nkpq8hpL7LBXd_MHI3s-g" autocomplete="off" /><div class="form-group">
158
+ <label for="ldapmain_username">Username</label>
159
+ <input name="username" autocomplete="username" class="form-control gl-form-input" title="This field is required." autofocus="autofocus" data-testid="username-field" required="required" type="text" id="ldapmain_username" />
160
+ </div>
161
+ <div class="form-group">
162
+ <label for="ldapmain_password">Password</label>
163
+ <input class="form-control gl-form-input js-password" data-id="ldapmain_password" data-name="password" data-testid="password-field">
164
+ </div>
165
+ <div class="gl-mb-3">
166
+ <div class="gl-form-checkbox custom-control custom-checkbox">
167
+ <input name="remember_me" type="hidden" value="0" autocomplete="off" /><input name="remember_me" autocomplete="off" class="custom-control-input" type="checkbox" value="1" id="ldapmain_remember_me" />
168
+ <label class="custom-control-label" for="ldapmain_remember_me"><span>Remember me</span></label>
169
+ </div>
170
+
171
+ </div>
172
+ <button data-testid="sign-in-button" type="submit" class="gl-button btn btn-block btn-md btn-confirm "><span class="gl-button-text">
173
+ Sign in
174
+
175
+ </span>
176
+
177
+ </button></form>
178
+ </div>
179
+
180
+ <div class="tab-pane" id="login-pane" role="tabpanel">
181
+ <div data-app-data="{&quot;sign_in_path&quot;:&quot;/users/sign_in&quot;,&quot;users_sign_in_path_path&quot;:&quot;/users/sign_in_path&quot;,&quot;passkeys_sign_in_path&quot;:&quot;/users/passkeys/sign_in&quot;,&quot;is_unconfirmed_email&quot;:false,&quot;new_user_confirmation_path&quot;:&quot;/users/confirmation/new&quot;,&quot;new_password_path&quot;:&quot;/users/password/new&quot;,&quot;show_captcha&quot;:false,&quot;is_remember_me_enabled&quot;:true}" id="js-sign-in-form">
182
+ <div class="gl-spinner-container gl-my-5" role="status"><span aria-hidden class="gl-spinner gl-spinner-md gl-spinner-dark !gl-align-text-bottom"></span><span class="gl-sr-only !gl-absolute">Loading</span>
183
+ </div>
184
+ <form action="/users/sign_in" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="42uC2AkqvffUhpiJ_G7DajkdxkzSGeTolarvN7TG9663ZeK6Ux_azBPCRRHcaKadnfJ_vnNt-2OUKkKFBx5HqA" autocomplete="off" /><input data-js-name="login" autocomplete="off" type="hidden" name="user[login]" id="user_login" />
185
+ <input data-js-name="password" autocomplete="off" type="hidden" name="user[password]" id="user_password" />
186
+ <input data-js-name="rememberMe" autocomplete="off" type="hidden" name="user[remember_me]" id="user_remember_me" />
187
+ </form></div>
188
+
189
+ </div>
190
+ </div>
191
+
192
+ </div>
193
+ <div class="gl-flex gl-items-center gl-gap-5" data-testid="divider">
194
+ <hr class="gl-grow gl-border-default">
195
+ or sign in with
196
+ <hr class="gl-grow gl-border-default">
197
+ </div>
198
+
199
+ <div class="gl-mt-5 gl-text-center gl-flex gl-flex-col gl-gap-3 js-oauth-login">
200
+ <form class="js-omniauth-form" method="post" action="/users/auth/saml"><button class="gl-button btn btn-block btn-md btn-default " data-testid="saml-login-button" type="submit"><span class="gl-button-text">
201
+ <span class="gl-button-text">
202
+ ESRF Single Sign-On
203
+ </span>
204
+
205
+ </span>
206
+
207
+ </button><input type="hidden" name="authenticity_token" value="EREvWPdOG29jtgkiAyjJtF3pEY-22NelMSuwj2t6P-NFH086rXt8VKTy1LojLqxD-QaofResyC4wqx092KKP5Q" autocomplete="off" /></form>
208
+ <div class="gl-form-checkbox custom-control custom-checkbox">
209
+ <input type="checkbox" name="js-remember-me-omniauth" id="js-remember-me-omniauth" class="custom-control-input" />
210
+ <label class="custom-control-label" for="js-remember-me-omniauth"><span>Remember me
211
+ </span></label>
212
+ </div>
213
+ </div>
214
+
215
+
216
+ </div>
217
+ </div>
218
+ </div>
219
+ </main>
220
+ </div>
221
+ <div class="footer-container gl-w-full gl-self-end">
222
+ <hr class="gl-m-0">
223
+ <div class="container gl-py-5 gl-flex gl-justify-between gl-items-start">
224
+ <div class="gl-hidden md:gl-flex gl-gap-5 gl-flex-wrap">
225
+ <a href="/explore">Explore</a>
226
+ <a href="/help">Help</a>
227
+ <a href="https://about.gitlab.com">About GitLab</a>
228
+ <a target="_blank" class="text-nowrap" rel="noopener noreferrer" href="https://forum.gitlab.com">GitLab community forum</a>
229
+ </div>
230
+ <div class="js-language-switcher" data-locales="[{&quot;value&quot;:&quot;en&quot;,&quot;percentage&quot;:100,&quot;text&quot;:&quot;English&quot;},{&quot;value&quot;:&quot;ja&quot;,&quot;percentage&quot;:99,&quot;text&quot;:&quot;日本語&quot;},{&quot;value&quot;:&quot;ga_IE&quot;,&quot;percentage&quot;:99,&quot;text&quot;:&quot;Gaeilge&quot;},{&quot;value&quot;:&quot;pt_BR&quot;,&quot;percentage&quot;:98,&quot;text&quot;:&quot;português (Brasil)&quot;},{&quot;value&quot;:&quot;ko&quot;,&quot;percentage&quot;:98,&quot;text&quot;:&quot;한국어&quot;},{&quot;value&quot;:&quot;it&quot;,&quot;percentage&quot;:98,&quot;text&quot;:&quot;italiano&quot;},{&quot;value&quot;:&quot;fr&quot;,&quot;percentage&quot;:98,&quot;text&quot;:&quot;français&quot;},{&quot;value&quot;:&quot;es&quot;,&quot;percentage&quot;:98,&quot;text&quot;:&quot;español&quot;},{&quot;value&quot;:&quot;de&quot;,&quot;percentage&quot;:95,&quot;text&quot;:&quot;Deutsch&quot;},{&quot;value&quot;:&quot;zh_CN&quot;,&quot;percentage&quot;:93,&quot;text&quot;:&quot;简体中文&quot;}]"></div>
231
+
232
+ </div>
233
+ </div>
234
+
235
+
236
+ </div>
237
+ </body>
238
+ </html>
@@ -0,0 +1 @@
1
+ rtint