improve PR #246 - part 2
Simplify link tags in rules and guidelines. Ran `make quick_www` to perform the above.
This commit is contained in:
1 parent
8a95f0c6bb
commit
a3fb61a6bf
5 files changed
+45
-57
No files matched your search
+13
-19
@@ -484,14 +484,14 @@ file happens to also be a code for another language.
|
||||
We would prefer if you do not use <code>#include</code> statements,
|
||||
especially <code>#include</code> statements just to include lots of data,
|
||||
to get around the
|
||||
<a href="rules.html#rule2-size-restrictions">Rule 2 - Size restrictions</a>
|
||||
<a href="rules.html#rule2-size">Rule 2 - Size restrictions</a>
|
||||
in an excessive way.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
We would prefer if you do not require lots and lots of implicit defines on the C compiler command line
|
||||
(i.e., lots of <code>-Dfoo</code>, and <code>-Dcurds=whey</code> style command line args to the C compiler)
|
||||
to get around the
|
||||
<a href="rules.html#rule2-size-restrictions">Rule 2 - Size restrictions</a>
|
||||
<a href="rules.html#rule2-size">Rule 2 - Size restrictions</a>
|
||||
in an excessive way.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
@@ -508,10 +508,8 @@ then try to make a case for why in your submission’s <code>remarks.md</code> f
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="guideline2">
|
||||
<div id="guideline-2---size">
|
||||
<div id="guideline2-size">
|
||||
<h1 id="guidelines-for-rule-2---size-restrictions">Guidelines for <a href="rules.html#rule2-size-restrictions">Rule 2 - Size restrictions</a></h1>
|
||||
</div>
|
||||
<h1 id="guidelines-for-rule-2---size-restrictions">Guidelines for <a href="rules.html#rule2-size">Rule 2 - Size restrictions</a></h1>
|
||||
</div>
|
||||
</div>
|
||||
<p class="leftbar">
|
||||
@@ -621,7 +619,7 @@ FAQ on “<a href="../faq.html#ai">May I use AI, LLM, Virtual coding assistants,
|
||||
<div id="guideline9">
|
||||
<div id="guideline9-no-interactive-compiling-allowed">
|
||||
<div id="guideline9-no-interactive">
|
||||
<h1 id="guidelines-for-rule-9---no-interactive-compiling-allowed">Guidelines for <a href="rules.html#rule-9---no-interactive-compiling-allowed">Rule 9 - No interactive compiling allowed</a></h1>
|
||||
<h1 id="guidelines-for-rule-9---no-interactive-compiling-allowed">Guidelines for <a href="rules.html#rule9-no-interactive">Rule 9 - No interactive compiling allowed</a></h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -643,11 +641,9 @@ alternate / human intervention based building.</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="guideline11">
|
||||
<div id="guideline11-abuse">
|
||||
<div id="guideline-11---abuse">
|
||||
<h1 id="guidelines-for-rule-11---legal-rule-abuse">Guidelines for <a href="rules.html#rule11-legal-rule-abuse">Rule 11 - Legal rule abuse</a></h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>We do realize that there are holes in the <a href="rules.html">Rules</a>, and invite
|
||||
submitters to attempt to apply creative rule interpretation. A rule abuse though, even
|
||||
if not rewarded, may result in a subsequent rule change for future contests.</p>
|
||||
@@ -706,14 +702,13 @@ This is one of the reasons why the <a href="rules.html">Rules</a> and
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="guideline12">
|
||||
<div id="guideline12-utf8">
|
||||
<h1 id="guidelines-for-rule-12---utf-8">Guidelines for <a href="rules.html#rule-12---utf-8">Rule 12 - UTF-8</a></h1>
|
||||
<p><a href="rules.html#rule12-utf8">Rule 12 - UTF-8</a></p>
|
||||
<h1 id="guidelines-for-rule-12---utf-8">Guidelines for <a href="rules.html#rule12-utf8">Rule 12 - UTF-8</a></h1>
|
||||
</div>
|
||||
</div>
|
||||
<p>The IOCCC no longer discourages the use of multibyte UTF-8 characters in <code>C</code> code.</p>
|
||||
<div id="guideline13">
|
||||
<div id="guideline13-nocr">
|
||||
<h1 id="guidelines-for-rule-13---no-carriage-returns-in-prog.c">Guidelines for <a href="rules.html#rule-13---no-carriage-returns-in-prog.c">Rule 13 - No carriage returns in prog.c</a></h1>
|
||||
<h1 id="guidelines-for-rule-13---no-carriage-returns-in-prog.c">Guidelines for <a href="rules.html#rule13-nocr">Rule 13 - No carriage returns in prog.c</a></h1>
|
||||
</div>
|
||||
</div>
|
||||
<p>We <strong>DISLIKE</strong> C code with trailing control-M’s (<code>\r</code> or <code>\015</code>) that results
|
||||
@@ -723,21 +718,22 @@ leave trailing control-M’s on lines. Users of such tools should strip
|
||||
off such control-M’s before submitting their submissions. In some cases
|
||||
tools have a “Save As” option that will prevent such trailing control-M’s
|
||||
being added.</p>
|
||||
<p>If your <code>prog.c</code> is near the
|
||||
<p class="leftbar">
|
||||
If your <code>prog.c</code> is near the
|
||||
<a href="rules.html#rule2a-gross-size">Rule 2a Gross Size</a> and/or
|
||||
<a href="rules.html#rule2b-net-size">Rule 2b Net Size</a>
|
||||
limit, you are permitted to <strong>NOT</strong> end source with a newline.
|
||||
If you need to do this, please document that in your <code>remarks.md</code> file.</p>
|
||||
<p>If your complains about about not ending in a newline,
|
||||
please this in your <code>remarks.md</code> file.</p>
|
||||
If you need to do this, please document that in your <code>remarks.md</code> file.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
If your complains about about not ending in a newline, please this in your <code>remarks.md</code> file.
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="guideline15">
|
||||
<div id="guideline-15---building">
|
||||
<div id="guideline15-gnu-makefile">
|
||||
<h1 id="guidelines-for-rule-15---gnu-makefile">Guidelines for <a href="rules.html#rule15-gnu-makefile">Rule 15 - GNU Makefile</a></h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>Submissions will be judged in an environment that has no <strong>IDE</strong>.
|
||||
Any submission that fails to compile/build because it requires
|
||||
an <strong>IDE</strong> will be rejected.</p>
|
||||
@@ -757,12 +753,10 @@ course.
|
||||
FAQ on “<a href="../faq.html#makefile_details">What are the detailed recommendations for a submission Makefile?</a>”.</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="guideline17">
|
||||
<div id="guideline-17---packaging">
|
||||
<div id="guideline17-mkiocccentry">
|
||||
<h1 id="guidelines-for-rule-17---use-mkiocccentry">Guidelines for <a href="rules.html#rule17-mkiocccentry">Rule 17 - Use mkiocccentry</a></h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="leftbar">
|
||||
We <strong>STRONGLY</strong> recommend you <strong>do</strong> install the most recent release of
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a>
|
||||
|
||||
+11
-17
@@ -42,7 +42,7 @@ file happens to also be a code for another language.
|
||||
We would prefer if you do not use `#include` statements,
|
||||
especially `#include` statements just to include lots of data,
|
||||
to get around the
|
||||
[Rule 2 - Size restrictions](rules.html#rule2-size-restrictions)
|
||||
[Rule 2 - Size restrictions](rules.html#rule2-size)
|
||||
in an excessive way.
|
||||
</p>
|
||||
|
||||
@@ -50,7 +50,7 @@ in an excessive way.
|
||||
We would prefer if you do not require lots and lots of implicit defines on the C compiler command line
|
||||
(i.e., lots of `-Dfoo`, and `-Dcurds=whey` style command line args to the C compiler)
|
||||
to get around the
|
||||
[Rule 2 - Size restrictions](rules.html#rule2-size-restrictions)
|
||||
[Rule 2 - Size restrictions](rules.html#rule2-size)
|
||||
in an excessive way.
|
||||
</p>
|
||||
|
||||
@@ -74,10 +74,8 @@ Jump to: [top](#)
|
||||
|
||||
|
||||
<div id="guideline2">
|
||||
<div id="guideline-2---size">
|
||||
<div id="guideline2-size">
|
||||
# Guidelines for [Rule 2 - Size restrictions](rules.html#rule2-size-restrictions)
|
||||
</div>
|
||||
# Guidelines for [Rule 2 - Size restrictions](rules.html#rule2-size)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -229,7 +227,7 @@ Jump to: [top](#)
|
||||
<div id="guideline9">
|
||||
<div id="guideline9-no-interactive-compiling-allowed">
|
||||
<div id="guideline9-no-interactive">
|
||||
# Guidelines for [Rule 9 - No interactive compiling allowed](rules.html#rule-9---no-interactive-compiling-allowed)
|
||||
# Guidelines for [Rule 9 - No interactive compiling allowed](rules.html#rule9-no-interactive)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -264,11 +262,9 @@ Jump to: [top](#)
|
||||
|
||||
<div id="guideline11">
|
||||
<div id="guideline11-abuse">
|
||||
<div id="guideline-11---abuse">
|
||||
# Guidelines for [Rule 11 - Legal rule abuse](rules.html#rule11-legal-rule-abuse)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
We do realize that there are holes in the [Rules](rules.html), and invite
|
||||
submitters to attempt to apply creative rule interpretation. A rule abuse though, even
|
||||
@@ -343,8 +339,7 @@ Jump to: [top](#)
|
||||
|
||||
<div id="guideline12">
|
||||
<div id="guideline12-utf8">
|
||||
# Guidelines for [Rule 12 - UTF-8](rules.html#rule-12---utf-8)
|
||||
[Rule 12 - UTF-8](rules.html#rule12-utf8)
|
||||
# Guidelines for [Rule 12 - UTF-8](rules.html#rule12-utf8)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -353,7 +348,7 @@ The IOCCC no longer discourages the use of multibyte UTF-8 characters in `C` cod
|
||||
|
||||
<div id="guideline13">
|
||||
<div id="guideline13-nocr">
|
||||
# Guidelines for [Rule 13 - No carriage returns in prog.c](rules.html#rule-13---no-carriage-returns-in-prog.c)
|
||||
# Guidelines for [Rule 13 - No carriage returns in prog.c](rules.html#rule13-nocr)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -366,26 +361,27 @@ off such control-M's before submitting their submissions. In some cases
|
||||
tools have a "Save As" option that will prevent such trailing control-M's
|
||||
being added.
|
||||
|
||||
<p class="leftbar">
|
||||
If your `prog.c` is near the
|
||||
[Rule 2a Gross Size](rules.html#rule2a-gross-size) and/or
|
||||
[Rule 2b Net Size](rules.html#rule2b-net-size)
|
||||
limit, you are permitted to **NOT** end source with a newline.
|
||||
If you need to do this, please document that in your `remarks.md` file.
|
||||
</p>
|
||||
|
||||
If your complains about about not ending in a newline,
|
||||
please this in your `remarks.md` file.
|
||||
<p class="leftbar">
|
||||
If your complains about about not ending in a newline, please this in your `remarks.md` file.
|
||||
</p>
|
||||
|
||||
|
||||
Jump to: [top](#)
|
||||
|
||||
|
||||
<div id="guideline15">
|
||||
<div id="guideline-15---building">
|
||||
<div id="guideline15-gnu-makefile">
|
||||
# Guidelines for [Rule 15 - GNU Makefile](rules.html#rule15-gnu-makefile)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Submissions will be judged in an environment that has no **IDE**.
|
||||
Any submission that fails to compile/build because it requires
|
||||
@@ -413,12 +409,10 @@ Jump to: [top](#)
|
||||
|
||||
|
||||
<div id="guideline17">
|
||||
<div id="guideline-17---packaging">
|
||||
<div id="guideline17-mkiocccentry">
|
||||
# Guidelines for [Rule 17 - Use mkiocccentry](rules.html#rule17-mkiocccentry)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="leftbar">
|
||||
We **STRONGLY** recommend you **do** install the most recent release of
|
||||
|
||||
+8
-8
@@ -525,12 +525,10 @@ Your submission <strong>MUST</strong> be a C program.
|
||||
<div id="rule2">
|
||||
<div id="rule2-size-restrictions">
|
||||
<div id="rule2-size">
|
||||
<div id="rule-2---size">
|
||||
<h2 id="rule-2---size-restrictions">Rule 2 - Size restrictions</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p><code>Rule 2</code> requires that your submission satisfy <strong>BOTH</strong>
|
||||
<a href="rules.html#rule2a">Rule 2a (Gross Size)</a>
|
||||
and
|
||||
@@ -540,21 +538,17 @@ During development this can be checked using <code>iocccsize(1)</code>:</p>
|
||||
<p>See the <a href="guidelines.html#guideline2-size">Guidelines for Rule 2 - Size restrictions</a>.</p>
|
||||
<div id="rule2a">
|
||||
<div id="rule2a-gross-size">
|
||||
<div id="rule-2a-gross-size">
|
||||
<h3 id="rule-2a---gross-size">Rule 2a - Gross Size</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>The overall maximum size of your <code>prog.c</code> program source <strong>MUST NOT</strong>
|
||||
exceed <strong>4993</strong> bytes.</p>
|
||||
<p>See <a href="../quick-start.html#enter">Entering the IOCCC: the bare minimum you need to know</a>.</p>
|
||||
<div id="rule2b">
|
||||
<div id="rule2b-net-size">
|
||||
<div id="rule-2b-net-size">
|
||||
<h3 id="rule-2b---net-size">Rule 2b - Net Size</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>When the filename of your program source (i.e., <code>prog.c</code>) is given as a
|
||||
command line argument to the latest version of the official IOCCC size
|
||||
tool (hereby referred to as <code>iocccsize(1)</code>), the value printed <strong>MUST
|
||||
@@ -678,7 +672,7 @@ Your code should be able to run under a
|
||||
<pre><code> while (!(ioccc(rule(you(are(number(6)))))) {
|
||||
ha(); ha(); ha();
|
||||
}</code></pre>
|
||||
<p>See <a href="rules.html#rule-19---prime">Rule 19 - Prime</a>.</p>
|
||||
<p>See <a href="rules.html#rule19-prime">Rule 19 - Prime</a>.</p>
|
||||
<div id="rule7">
|
||||
<div id="rule7-original-work">
|
||||
<h2 id="rule-7---original-work">Rule 7 - Original Work</h2>
|
||||
@@ -722,8 +716,10 @@ and
|
||||
<a href="rules.html#rule17-mkiocccentry">Rule 17 - Use mkiocccentry</a>.</p>
|
||||
<p>See <a href="guidelines.html#guideline8-submitting">Guidelines for Rule 8 - Submitting requirements</a>.</p>
|
||||
<div id="rule9">
|
||||
<div id="rule9-no-interactive">
|
||||
<h2 id="rule-9---no-interactive-compiling-allowed">Rule 9 - No interactive compiling allowed</h2>
|
||||
</div>
|
||||
</div>
|
||||
<p>Entries requiring human interaction to be initially compiled are <strong>NOT</strong>
|
||||
permitted. However, see the guidelines. Each entry <strong>MUST</strong> automate the
|
||||
build process using <code>bash</code>, <code>gmake</code>, <code>gcc</code> and/or <code>clang</code> and other commonly
|
||||
@@ -784,8 +780,10 @@ wrong slot by mistake.</p>
|
||||
IOCCC.</p>
|
||||
<p>See <a href="guidelines.html#guideline12-utf8">Guidelines for Rule 12 - UTF-8</a>.</p>
|
||||
<div id="rule13">
|
||||
<div id="rule13-nocr">
|
||||
<h2 id="rule-13---no-carriage-returns-in-prog.c">Rule 13 - No carriage returns in prog.c</h2>
|
||||
</div>
|
||||
</div>
|
||||
<p>Any C source that fails to compile because lines contain carriage-returns
|
||||
(CTRL+M, <code>\r</code>) in particular as part of DOS/Windows style newlines might
|
||||
be rejected. Please do <strong>NOT</strong> put trailing CTRL+M in <code>prog.c</code>, <code>Makefile</code>,
|
||||
@@ -925,10 +923,12 @@ FAQ on “<a href="../faq.html#mkiocccentry">What is the mkiocccentry tool, how
|
||||
</div>
|
||||
<p>The entirety of your submission <strong>MUST</strong> be submitted under the following license:</p>
|
||||
<p><a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International</a></p>
|
||||
<p>See <a href="rules.html#rule-7---original-work">Rule 7 - Original Work</a>.</p>
|
||||
<p>See <a href="rules.html#rule7-original-work">Rule 7 - Original Work</a>.</p>
|
||||
<div id="rule19">
|
||||
<div id="rule19-prime">
|
||||
<h2 id="rule-19---prime">Rule 19 - Prime</h2>
|
||||
</div>
|
||||
</div>
|
||||
<p class="leftbar">
|
||||
This 19th rule, while prime, is reserved for future abuse 😁.
|
||||
Additional rules, both humorous and otherwise, may be added
|
||||
|
||||
+8
-8
@@ -103,12 +103,10 @@ See the [Guidelines for Rule 1 - C program](guidelines.html#guideline1-c).
|
||||
<div id="rule2">
|
||||
<div id="rule2-size-restrictions">
|
||||
<div id="rule2-size">
|
||||
<div id="rule-2---size">
|
||||
## Rule 2 - Size restrictions
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
`Rule 2` requires that your submission satisfy **BOTH**
|
||||
[Rule 2a (Gross Size)](rules.html#rule2a)
|
||||
@@ -125,11 +123,9 @@ See the [Guidelines for Rule 2 - Size restrictions](guidelines.html#guideline2-s
|
||||
|
||||
<div id="rule2a">
|
||||
<div id="rule2a-gross-size">
|
||||
<div id="rule-2a-gross-size">
|
||||
### Rule 2a - Gross Size
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
The overall maximum size of your `prog.c` program source **MUST NOT**
|
||||
exceed **4993** bytes.
|
||||
@@ -139,11 +135,9 @@ See [Entering the IOCCC: the bare minimum you need to know](../quick-start.html#
|
||||
|
||||
<div id="rule2b">
|
||||
<div id="rule2b-net-size">
|
||||
<div id="rule-2b-net-size">
|
||||
### Rule 2b - Net Size
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
When the filename of your program source (i.e., `prog.c`) is given as a
|
||||
command line argument to the latest version of the official IOCCC size
|
||||
@@ -312,7 +306,7 @@ I am **NOT** a Rule, I am a `free(void *human);` ‼️
|
||||
ha(); ha(); ha();
|
||||
}
|
||||
```
|
||||
See [Rule 19 - Prime](rules.html#rule-19---prime).
|
||||
See [Rule 19 - Prime](rules.html#rule19-prime).
|
||||
|
||||
|
||||
<div id="rule7">
|
||||
@@ -370,8 +364,10 @@ See [Guidelines for Rule 8 - Submitting requirements](guidelines.html#guideline8
|
||||
|
||||
|
||||
<div id="rule9">
|
||||
<div id="rule9-no-interactive">
|
||||
## Rule 9 - No interactive compiling allowed
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Entries requiring human interaction to be initially compiled are **NOT**
|
||||
permitted. However, see the guidelines. Each entry **MUST** automate the
|
||||
@@ -456,8 +452,10 @@ See [Guidelines for Rule 12 - UTF-8](guidelines.html#guideline12-utf8).
|
||||
|
||||
|
||||
<div id="rule13">
|
||||
<div id="rule13-nocr">
|
||||
## Rule 13 - No carriage returns in prog.c
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Any C source that fails to compile because lines contain carriage-returns
|
||||
(CTRL+M, `\r`) in particular as part of DOS/Windows style newlines might
|
||||
@@ -648,12 +646,14 @@ The entirety of your submission **MUST** be submitted under the following licens
|
||||
|
||||
[CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/)
|
||||
|
||||
See [Rule 7 - Original Work](rules.html#rule-7---original-work).
|
||||
See [Rule 7 - Original Work](rules.html#rule7-original-work).
|
||||
|
||||
|
||||
<div id="rule19">
|
||||
<div id="rule19-prime">
|
||||
## Rule 19 - Prime
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="leftbar">
|
||||
This 19th rule, while prime, is reserved for future abuse 😁.
|
||||
|
||||
+5
-5
@@ -16826,11 +16826,11 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.ioccc.org/next/guidelines.html</loc>
|
||||
<lastmod>2025-12-02T03:51:13+00:00</lastmod>
|
||||
<lastmod>2025-12-02T04:22:32+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.ioccc.org/next/guidelines.md</loc>
|
||||
<lastmod>2025-12-02T03:41:39+00:00</lastmod>
|
||||
<lastmod>2025-12-02T04:21:09+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.ioccc.org/next/index.html</loc>
|
||||
@@ -16870,11 +16870,11 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.ioccc.org/next/rules.html</loc>
|
||||
<lastmod>2025-12-02T03:51:14+00:00</lastmod>
|
||||
<lastmod>2025-12-02T04:16:29+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.ioccc.org/next/rules.md</loc>
|
||||
<lastmod>2025-12-02T03:42:10+00:00</lastmod>
|
||||
<lastmod>2025-12-02T04:13:05+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.ioccc.org/next/submit.html</loc>
|
||||
@@ -16938,7 +16938,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.ioccc.org/status.html</loc>
|
||||
<lastmod>2025-12-02T03:51:32+00:00</lastmod>
|
||||
<lastmod>2025-12-02T04:16:46+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://www.ioccc.org/status.json</loc>
|
||||
|
||||
Reference in new issue
Block a user