diff options
Diffstat (limited to 'po/pl/man2/semget.2.po')
-rw-r--r-- | po/pl/man2/semget.2.po | 281 |
1 files changed, 169 insertions, 112 deletions
diff --git a/po/pl/man2/semget.2.po b/po/pl/man2/semget.2.po index 528bc637..81192209 100644 --- a/po/pl/man2/semget.2.po +++ b/po/pl/man2/semget.2.po @@ -4,12 +4,12 @@ # Rafał Lewczuk <R.Lewczuk@elka.pw.edu.p>, 1999. # Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>, 2002. # Robert Luberda <robert@debian.org>, 2013. -# Michał Kułach <michal.kulach@gmail.com>, 2013, 2014, 2016. +# Michał Kułach <michal.kulach@gmail.com>, 2013, 2014, 2016, 2024. msgid "" msgstr "" "Project-Id-Version: manpages-pl\n" -"POT-Creation-Date: 2024-03-01 17:07+0100\n" -"PO-Revision-Date: 2021-01-08 12:18+0100\n" +"POT-Creation-Date: 2024-06-01 06:20+0200\n" +"PO-Revision-Date: 2024-03-31 09:20+0200\n" "Last-Translator: Michał Kułach <michal.kulach@gmail.com>\n" "Language-Team: Polish <manpages-pl-list@lists.sourceforge.net>\n" "Language: pl\n" @@ -18,27 +18,26 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -"X-Generator: Lokalize 1.5\n" +"X-Generator: Lokalize 22.12.3\n" #. type: TH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed -#, fuzzy, no-wrap -#| msgid "/* t_semget.c\n" +#, no-wrap msgid "semget" -msgstr "/* t_semget.c\n" +msgstr "semget" #. type: TH -#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#: archlinux debian-unstable opensuse-tumbleweed #, no-wrap -msgid "2023-10-31" -msgstr "31 października 2023 r." +msgid "2024-05-02" +msgstr "2 maja 2024 r." #. type: TH -#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#: archlinux debian-unstable #, no-wrap -msgid "Linux man-pages 6.06" -msgstr "Linux man-pages 6.06" +msgid "Linux man-pages 6.8" +msgstr "Linux man-pages 6.8" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide @@ -51,7 +50,7 @@ msgstr "NAZWA" #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "semget - get a System V semaphore set identifier" -msgstr "semget - pobranie identyfikatora zestawu semaforów Systemu V" +msgstr "semget - pobiera identyfikator zestawu semaforów Systemu V" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide @@ -100,13 +99,6 @@ msgstr "OPIS" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed -#, fuzzy -#| msgid "" -#| "The B<semget>() system call returns the System\\ V semaphore set " -#| "identifier associated with the argument I<key>. A new set of I<nsems> " -#| "semaphores is created if I<key> has the value B<IPC_PRIVATE> or if no " -#| "existing semaphore set is associated with I<key> and B<IPC_CREAT> is " -#| "specified in I<semflg>." msgid "" "The B<semget>() system call returns the System\\ V semaphore set identifier " "associated with the argument I<key>. It may be used either to obtain the " @@ -114,10 +106,10 @@ msgid "" "I<key> does not have the value B<IPC_PRIVATE>), or to create a new set." msgstr "" "Wywołanie systemowe B<semget>() zwraca identyfikator zestawu semaforów " -"Systemu\\ V skojarzonego z parametrem I<key>. Nowy zestaw składający się z " -"I<nsems> semaforów zostanie utworzony, jeśli parametr I<key> będzie mieć " -"wartość B<IPC_PRIVATE> lub gdy zestaw semaforów skojarzony z I<key> nie " -"istnieje, a w parametrze I<semflg> zostanie przekazany znacznik B<IPC_CREAT>." +"Systemu\\ V skojarzonego z parametrem I<key>. Może służyć albo do pozyskania " +"identyfikatora uprzednio utworzonego zestawu semaforów (gdy I<semflg> wynosi " +"zero, a I<key> nie ma wartości B<IPC_PRIVATE>) lub do utworzenia nowego " +"zestawu." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide @@ -143,20 +135,12 @@ msgid "" msgstr "" "Jeśli w parametrze I<semflg> podano zarówno B<IPC_CREAT>, jak i B<IPC_EXCL> " "oraz już istnieje zestaw semaforów o kluczu I<key>, to B<semget>() kończy " -"się błędem, ustawiając I<errno> na wartość B<EEXIST>. (Działa to " -"analogicznie do B<O_CREAT | O_EXCL> w B<open>(2))." +"się błędem, ustawiając I<errno> na wartość B<EEXIST> (działa to analogicznie " +"do B<O_CREAT | O_EXCL> w B<open>(2))." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed -#, fuzzy -#| msgid "" -#| "Upon creation, the least significant 9 bits of the argument I<semflg> " -#| "define the permissions (for owner, group and others) for the semaphore " -#| "set. These bits have the same format, and the same meaning, as the " -#| "I<mode> argument of B<open>(2) (though the execute permissions are not " -#| "meaningful for semaphores, and write permissions mean permission to alter " -#| "semaphore values)." msgid "" "Upon creation, the least significant 9 bits of the argument I<semflg> define " "the permissions (for owner, group, and others) for the semaphore set. " @@ -165,7 +149,7 @@ msgid "" "for semaphores, and write permissions mean permission to alter semaphore " "values)." msgstr "" -"Podczas tworzenia 9 najmniej znaczących bitów argumentu I<semflg> określa " +"Podczas tworzenia, 9 najmniej znaczących bitów argumentu I<semflg> określa " "prawa dostępu do zestawu semaforów (dla właściciela, grupy i innych). Bity " "te mają ten sam format i takie samo znaczenie, jak parametr I<mode> " "wywołania B<open>(2) (prawa uruchamiania nie są istotne dla semaforów, " @@ -267,19 +251,14 @@ msgstr "WARTOŚĆ ZWRACANA" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed -#, fuzzy -#| msgid "" -#| "If successful, the return value will be the semaphore set identifier (a " -#| "nonnegative integer), otherwise, -1 is returned, with I<errno> indicating " -#| "the error." msgid "" "On success, B<semget>() returns the semaphore set identifier (a nonnegative " "integer). On failure, -1 is returned, and I<errno> is set to indicate the " "error." msgstr "" -"W przypadku pomyślnego zakończenia, funkcja zwraca identyfikator zestawu " -"semaforów (liczbę nieujemną), a w przeciwnym przypadku zwraca -1 i " -"przypisuje zmiennej I<errno> stosowną wartość." +"W przypadku powodzenia, B<semget>() zwraca identyfikator zestawu semaforów " +"(liczbę nieujemną). W razie wystąpienia błędu zwracane jest -1 i ustawiane " +"I<errno> wskazując błąd." #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide @@ -298,19 +277,15 @@ msgstr "B<EACCES>" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed -#, fuzzy -#| msgid "" -#| "A semaphore set exists for I<key>, but the calling process does not have " -#| "permission to access the set, and does not have the B<CAP_IPC_OWNER> " -#| "capability." msgid "" "A semaphore set exists for I<key>, but the calling process does not have " "permission to access the set, and does not have the B<CAP_IPC_OWNER> " "capability in the user namespace that governs its IPC namespace." msgstr "" "Zestaw semaforów identyfikowany kluczem I<key> istnieje, ale proces " -"wywołujący ani nie ma praw dostępu do niego, ani nie ma ustawionego atrybutu " -"B<CAP_IPC_OWNER>." +"wywołujący ani nie ma praw dostępu do niego, ani nie ma ustawionego " +"przywileju B<CAP_IPC_OWNER> w przestrzeni nazw użytkownika, która zarządza " +"jego przestrzenią nazw IPC." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide @@ -535,22 +510,16 @@ msgstr "B<SEMMNI>" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed -#, fuzzy -#| msgid "" -#| "System-wide limit on the number of semaphore sets. On Linux systems " -#| "before version 3.19, the default value for this limit was 128. Since " -#| "Linux 3.19, the default value is 32,000. On Linux, this limit can be " -#| "read and modified via the fourth field of I</proc/sys/kernel/sem>." msgid "" "System-wide limit on the number of semaphore sets. Before Linux 3.19, the " "default value for this limit was 128. Since Linux 3.19, the default value " "is 32,000. On Linux, this limit can be read and modified via the fourth " "field of I</proc/sys/kernel/sem>." msgstr "" -"Limit liczby zestawów semaforów w systemie. W systemach Linux przed " -"wersją 3.19 domyślna wartość tego limitu wynosiła 128. Od Linuksa 3.19 jest " -"to 32 000. Pod Linuksem to ograniczenie można odczytać i zmienić, używając " -"czwartego pola pliku I</proc/sys/kernel/sem>)." +"Limit liczby zestawów semaforów w systemie. Przed Linuksem 3.19, domyślna " +"wartość tego limitu wynosiła 128. Od Linuksa 3.19 jest to 32\\ 000. Pod " +"Linuksem to ograniczenie można odczytać i zmienić, używając czwartego pola " +"pliku I</proc/sys/kernel/sem>)." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide @@ -563,22 +532,16 @@ msgstr "B<SEMMSL>" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed -#, fuzzy -#| msgid "" -#| "Maximum number of semaphores per semaphore ID. On Linux systems before " -#| "version 3.19, the default value for this limit was 250. Since Linux " -#| "3.19, the default value is 32,000. On Linux, this limit can be read and " -#| "modified via the first field of I</proc/sys/kernel/sem>." msgid "" "Maximum number of semaphores per semaphore ID. Before Linux 3.19, the " "default value for this limit was 250. Since Linux 3.19, the default value " "is 32,000. On Linux, this limit can be read and modified via the first " "field of I</proc/sys/kernel/sem>." msgstr "" -"Maksymalna liczba semaforów dla danego ID semafora. W systemach Linux przed " -"wersją 3.19 domyślna wartość tego limitu wynosiła 250. Od Linuksa 3.19 jest " -"to 32 000. Pod Linuksem to ograniczenie można odczytać i zmienić, używając " -"pierwszego pola pliku I</proc/sys/kernel/sem>)." +"Maksymalna liczba semaforów dla danego ID semafora. Przed Linuksem 3.19, " +"domyślna wartość tego limitu wynosiła 250. Od Linuksa 3.19 jest to 32\\ 000. " +"Pod Linuksem to ograniczenie można odczytać i zmienić, używając pierwszego " +"pola pliku I</proc/sys/kernel/sem>)." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide @@ -638,6 +601,14 @@ msgid "" "(I<-c>) and B<IPC_EXCL> (I<-x>) flags for the call to B<semget>(). The " "usage of this program is demonstrated below." msgstr "" +"Program pokazany niżej używa B<semget>() do utworzenia nowego zestawu " +"semaforów lub pozyskania identyfikatora zestawu istniejącego. Tworzy I<key> " +"do B<semget>() za pomocą B<ftok>(3). Pierwsze dwa argumenty wiersza poleceń " +"są używane jako argumenty I<pathname> i I<proj_id> do B<ftok>(3). Trzeci " +"argument wiersza poleceń jest liczbą, określającą argument I<nsems> do " +"B<semget>(). Opcje wiersza poleceń mogą posłużyć do określenia znaczników " +"B<IPC_CREAT> (I<-c>) i B<IPC_EXCL> (I<-x>) do wywołania B<semget>(). Użycie " +"programu pokazano poniżej." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide @@ -647,16 +618,14 @@ msgid "" "B<ftok>(3), create two semaphore sets using those files, and then list the " "sets using B<ipcs>(1):" msgstr "" +"Najpierw tworzone są dwa pliki, które posłużą do wygenerowania kluczy za " +"pomocą B<ftok>(3), utworzenia dwóch zestawów semaforów za pomocą tych " +"plików, a następnie wypisania zestawów używając B<ipcs>(1):" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed -#, fuzzy, no-wrap -#| msgid "" -#| "------ Semaphore Arrays --------\n" -#| "key semid owner perms nsems\n" -#| "0x7004136d 9 mtk 600 1\n" -#| "0x70041368 10 mtk 600 2\n" +#, no-wrap msgid "" "$ B<touch mykey mykey2>\n" "$ B<./t_semget -c mykey p 1>\n" @@ -670,6 +639,13 @@ msgid "" "0x7004136d 9 mtk 600 1\n" "0x70041368 10 mtk 600 2\n" msgstr "" +"$ B<touch mójklucz mójklucz2>\n" +"$ B<./t_semget -c mójklucz p 1>\n" +"ID = 9\n" +"$ B<./t_semget -c mójklucz2 p 2>\n" +"ID = 10\n" +"$ B<ipcs -s>\n" +"\\&\n" "------ Semaphore Arrays --------\n" "key semid owner perms nsems\n" "0x7004136d 9 mtk 600 1\n" @@ -683,6 +659,9 @@ msgid "" "generated by the same arguments to B<ftok>(3)), it returns the ID of the " "already existing semaphore set:" msgstr "" +"Następnie demonstrujemy fakt, że gdy B<semctl>(2) otrzymuje taki sam I<key> " +"(wygenerowany przez takie same argumenty do B<ftok>(3)), zwraca " +"identyfikator już istniejącego zestawu semaforów:" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide @@ -692,6 +671,8 @@ msgid "" "$ B<./t_semget -c mykey p 1>\n" "ID = 9\n" msgstr "" +"$ B<./t_semget -c mójklucz p 1>\n" +"ID = 9\n" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide @@ -701,6 +682,8 @@ msgid "" "B<ftok>(3) is given different I<pathname> arguments that have the same " "inode number:" msgstr "" +"Na końcu, demonstrujemy rodzaj kolizji, jaka może wystąpić gdy przekaże się " +"B<ftok>(3) różne argumenty I<pathname>, które mają ten sam numer i-węzła." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide @@ -714,6 +697,12 @@ msgid "" "$ B<./t_semget link p 1> # Generates same key as \\[aq]mykey\\[aq]\n" "ID = 9\n" msgstr "" +"$ B<ln mójklucz link>\n" +"$ B<ls -i1 link mójklucz>\n" +"2233197 link\n" +"2233197 mójklucz\n" +"$ B<./t_semget link p 1> # Generuje taki sam klucz, jak \\[aq]mójklucz\\[aq]\n" +"ID = 9\n" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide @@ -784,6 +773,62 @@ msgid "" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" +"/* t_semget.c\n" +"\\&\n" +" Na licencji GNU General Public License v2 lub późniejszej.\n" +"*/\n" +"#include E<lt>stdio.hE<gt>\n" +"#include E<lt>stdlib.hE<gt>\n" +"#include E<lt>sys/ipc.hE<gt>\n" +"#include E<lt>sys/sem.hE<gt>\n" +"#include E<lt>unistd.hE<gt>\n" +"\\&\n" +"static void\n" +"usage(const char *pname)\n" +"{\n" +" fprintf(stderr, \"Użycie: %s [-cx] ścieżka id-proj l-sem\\en\",\n" +" pname);\n" +" fprintf(stderr, \" -c Używa znacznika IPC_CREAT\\en\");\n" +" fprintf(stderr, \" -x Używa znacznika IPC_EXCL\\en\");\n" +" exit(EXIT_FAILURE);\n" +"}\n" +"\\&\n" +"int\n" +"main(int argc, char *argv[])\n" +"{\n" +" int semid, nsems, flags, opt;\n" +" key_t key;\n" +"\\&\n" +" flags = 0;\n" +" while ((opt = getopt(argc, argv, \"cx\")) != -1) {\n" +" switch (opt) {\n" +" case \\[aq]c\\[aq]: flags |= IPC_CREAT; break;\n" +" case \\[aq]x\\[aq]: flags |= IPC_EXCL; break;\n" +" default: usage(argv[0]);\n" +" }\n" +" }\n" +"\\&\n" +" if (argc != optind + 3)\n" +" usage(argv[0]);\n" +"\\&\n" +" key = ftok(argv[optind], argv[optind + 1][0]);\n" +" if (key == -1) {\n" +" perror(\"ftok\");\n" +" exit(EXIT_FAILURE);\n" +" }\n" +"\\&\n" +" nsems = atoi(argv[optind + 2]);\n" +"\\&\n" +" semid = semget(key, nsems, flags | 0600);\n" +" if (semid == -1) {\n" +" perror(\"semget\");\n" +" exit(EXIT_FAILURE);\n" +" }\n" +"\\&\n" +" printf(\"ID = %d\\en\", semid);\n" +"\\&\n" +" exit(EXIT_SUCCESS);\n" +"}\n" #. SRC END #. type: SH @@ -826,6 +871,12 @@ msgid "" "ID = 10\n" "$ B<ipcs -s>\n" msgstr "" +"$ B<touch mójklucz mójklucz2>\n" +"$ B<./t_semget -c mójklucz p 1>\n" +"ID = 9\n" +"$ B<./t_semget -c mójklucz2 p 2>\n" +"ID = 10\n" +"$ B<ipcs -s>\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 @@ -849,11 +900,7 @@ msgstr "/* t_semget.c\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 -#, fuzzy, no-wrap -#| msgid "" -#| "B<#include E<lt>sys/types.hE<gt>>\n" -#| "B<#include E<lt>sys/ipc.hE<gt>>\n" -#| "B<#include E<lt>sys/sem.hE<gt>>\n" +#, no-wrap msgid "" " Licensed under GNU General Public License v2 or later.\n" "*/\n" @@ -863,9 +910,13 @@ msgid "" "#include E<lt>sys/sem.hE<gt>\n" "#include E<lt>unistd.hE<gt>\n" msgstr "" -"B<#include E<lt>sys/types.hE<gt>>\n" -"B<#include E<lt>sys/ipc.hE<gt>>\n" -"B<#include E<lt>sys/sem.hE<gt>>\n" +" Na licencji GNU General Public License v2 lub późniejszej.\n" +"*/\n" +"#include E<lt>stdio.hE<gt>\n" +"#include E<lt>stdlib.hE<gt>\n" +"#include E<lt>sys/ipc.hE<gt>\n" +"#include E<lt>sys/sem.hE<gt>\n" +"#include E<lt>unistd.hE<gt>\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 @@ -881,16 +932,19 @@ msgid "" " exit(EXIT_FAILURE);\n" "}\n" msgstr "" +"static void\n" +"usage(const char *pname)\n" +"{\n" +" fprintf(stderr, \"Użycie: %s [-cx] ścieżka id-proj l-sem\\en\",\n" +" pname);\n" +" fprintf(stderr, \" -c Używa znacznika IPC_CREAT\\en\");\n" +" fprintf(stderr, \" -x Używa znacznika IPC_EXCL\\en\");\n" +" exit(EXIT_FAILURE);\n" +"}\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 -#, fuzzy, no-wrap -#| msgid "" -#| "int\n" -#| "main(int argc, char *argv[])\n" -#| "{\n" -#| " int semid, nsems, flags, opt;\n" -#| " key_t key;\n" +#, no-wrap msgid "" "int\n" "main(int argc, char *argv[])\n" @@ -901,21 +955,12 @@ msgstr "" "int\n" "main(int argc, char *argv[])\n" "{\n" -" int semid, nsems, flags, opt;\n" -" key_t key;\n" +" int semid, nsems, flags, opt;\n" +" key_t key;\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 -#, fuzzy, no-wrap -#| msgid "" -#| " flags = 0;\n" -#| " while ((opt = getopt(argc, argv, \"cx\")) != -1) {\n" -#| " switch (opt) {\n" -#| " case \\(aqc\\(aq: flags |= IPC_CREAT; break;\n" -#| " case \\(aqx\\(aq: flags |= IPC_EXCL; break;\n" -#| " default: usage(argv[0]);\n" -#| " }\n" -#| " }\n" +#, no-wrap msgid "" " flags = 0;\n" " while ((opt = getopt(argc, argv, \"cx\")) != -1) {\n" @@ -929,8 +974,8 @@ msgstr "" " flags = 0;\n" " while ((opt = getopt(argc, argv, \"cx\")) != -1) {\n" " switch (opt) {\n" -" case \\(aqc\\(aq: flags |= IPC_CREAT; break;\n" -" case \\(aqx\\(aq: flags |= IPC_EXCL; break;\n" +" case \\[aq]c\\[aq]: flags |= IPC_CREAT; break;\n" +" case \\[aq]x\\[aq]: flags |= IPC_EXCL; break;\n" " default: usage(argv[0]);\n" " }\n" " }\n" @@ -1000,16 +1045,22 @@ msgstr "" "}\n" #. type: TH -#: debian-unstable opensuse-tumbleweed +#: fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "2023-10-31" +msgstr "31 października 2023 r." + +#. type: TH +#: fedora-40 mageia-cauldron #, no-wrap -msgid "2023-05-03" -msgstr "3 maja 2023 r." +msgid "Linux man-pages 6.06" +msgstr "Linux man-pages 6.06" #. type: TH -#: debian-unstable opensuse-tumbleweed +#: fedora-rawhide #, no-wrap -msgid "Linux man-pages 6.05.01" -msgstr "Linux man-pages 6.05.01" +msgid "Linux man-pages 6.7" +msgstr "Linux man-pages 6.7" #. type: TH #: opensuse-leap-15-6 @@ -1022,3 +1073,9 @@ msgstr "30 marca 2023 r." #, no-wrap msgid "Linux man-pages 6.04" msgstr "Linux man-pages 6.04" + +#. type: TH +#: opensuse-tumbleweed +#, no-wrap +msgid "Linux man-pages (unreleased)" +msgstr "Linux man-pages (niewydane)" |