ghc-regex-posix-0.96.0.1-1.oe24090>    f ;G|`u` D 1|oU920K'D?^9:N3L%u#1:q6Z6.l !O8WK;!XJ  /G-9>..,>E#: E܎%Գ\O˔r=s{]]Fk?=&$#~ef`H#o4JJ fJ#BJȜ9j89#Q"RbhN/EK$FJŽJ B[i:xyw*oW=Wm4O nYT/i@/ˈ;];nf6!6G-a'BVm9p|J{|348667c6fc2a1c40560040c8a9879d9701110ed7db0a1f2d301233c5aa5e4f6af52d13be70f9fea3d9b07e39ee17e8886007a531h@8Ĩ=Շ>7(?(d $ P% :Ft     (`f#(89:F G,H8IDRHXLY\\]^def LPCghc-regex-posix0.96.0.11.oe2409POSIX Backend for "Text.Regex" (regex-base)The POSIX regex backend for . The main appeal of this backend is that it's very lightweight due to its reliance on the ubiquitous facility that is provided by the standard C library on most POSIX platforms. See also for more information.fdc-64g.compass-ciHBSD-3-Clausehttp://openeuler.orgUnspecifiedregex-posix.cabalregex-posix-0.96.0.1.tar.gzhttps://hackage.haskell.org/package/regex-posixlinuxx86_64 25 mfrfrfr00d23e755976e84b82272245b38179d9ad83d20863572144ddc6a1ff894ceca3c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c816d6acc560cb86672f347a7bef8129578dde26ed760f9e79b4976ed9bd7b9fd rootrootrootrootrootrootghc-regex-posixghc-regex-posix-develghc-regex-posix-helpghc-regex-posix-prof  ghc-Cabal-develghc-array-develghc-array-profghc-base-develghc-base-profghc-bytestring-develghc-bytestring-profghc-containers-develghc-containers-profghc-regex-base-develghc-regex-base-profghc-rpm-macrosrpmlib(CompressedFileNames)rpmlib(FileDigests)3.0.4-14.6.0-1i386i486i586i686pentium3pentium4athlongeode4.18.2d@Lin Runze 0.96.0.1-1- Initial packaging (Version 0.96.0.1)dc-64g.compass-ci 17266848480.96.0.1-1.oe24090.96.0.1-1.oe24090.96.0.1-1.oe24090.96.0.1-1.oe2409ghc-regex-posix.specregex-posix-0.96.0.1.tar.gzregex-posix.cabalcpiogzip9utf-82aaa2143a195600fd403fe68d3e4fd28e1f4bfb55051fb6cdd42e269feadde1b8b67ff9a198d19fd40ce713ad09a6f92a88d789a8e231acc16dd4ef07a7de667 Name: ghc-regex-posix Version: 0.96.0.1 Release: 1 Summary: POSIX Backend for "Text.Regex" (regex-base) License: BSD-3-Clause URL: https://hackage.haskell.org/package/regex-posix Source0: https://hackage.haskell.org/package/regex-posix-0.96.0.1/regex-posix-0.96.0.1.tar.gz Source1: https://hackage.haskell.org/package/regex-posix-0.96.0.1/revision/3.cabal#/regex-posix.cabal BuildRequires: ghc-Cabal-devel BuildRequires: ghc-array-devel BuildRequires: ghc-array-prof BuildRequires: ghc-base-devel BuildRequires: ghc-base-prof BuildRequires: ghc-bytestring-devel BuildRequires: ghc-bytestring-prof BuildRequires: ghc-containers-devel BuildRequires: ghc-containers-prof BuildRequires: ghc-regex-base-devel BuildRequires: ghc-regex-base-prof BuildRequires: ghc-rpm-macros ExcludeArch: i386 i486 i586 i686 pentium3 pentium4 athlon geode %description The POSIX regex backend for . The main appeal of this backend is that it's very lightweight due to its reliance on the ubiquitous facility that is provided by the standard C library on most POSIX platforms. See also for more information. %package devel Summary: Haskell regex-posix library development files Requires: ghc-regex-posix = 0.96.0.1-1.oe2409 Requires: ghc-compiler = 9.6.3 Requires(post): ghc-compiler = 9.6.3 Requires(postun): ghc-compiler = 9.6.3 %description devel This package provides the Haskell regex-posix library development files. %package -n ghc-regex-posix-help Summary: Haskell regex-posix library documentation BuildArch: noarch %description -n ghc-regex-posix-help This package provides the Haskell regex-posix library documentation. %package -n ghc-regex-posix-prof Summary: Haskell regex-posix profiling library Requires: ghc-regex-posix-devel = 0.96.0.1-1.oe2409 Supplements: (ghc-regex-posix-devel and ghc-prof) %description -n ghc-regex-posix-prof This package provides the Haskell regex-posix profiling library. %prep cd '/home/lkp/rpmbuild/BUILD' rm -rf 'regex-posix-0.96.0.1' /usr/lib/rpm/rpmuncompress -x '/home/lkp/rpmbuild/SOURCES/regex-posix-0.96.0.1.tar.gz' STATUS=$? if [ $STATUS -ne 0 ]; then exit $STATUS fi cd 'regex-posix-0.96.0.1' /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . cp -p /home/lkp/rpmbuild/SOURCES/regex-posix.cabal regex-posix.cabal for f in $(ls | grep -i -e '^\(ANNOUNCE\|AUTHORS\|CHANGELOG\|CHANGES\|CONTRIBUTORS\|README\|TODO\)'); do if [ -f $f -a -x $f ]; then chmod a-x $f; fi done # -Wunused-label is extremely noisy CFLAGS="${CFLAGS:--O2 -g -grecord-gcc-switches -pipe -fstack-protector-strong -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/generic-hardened-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection }" export CFLAGS export LDFLAGS="${LDFLAGS:--Wl,-z,relro -Wl,--as-needed }" if ! [ -f Setup.hs -o -f Setup.lhs ]; then cp /usr/share/ghc-rpm-macros/Setup.hs . fi if [ -d "/usr/lib64/ghc-9.6.3/lib" ]; then subsubdir=/lib fi [ -x Setup ] || ghc --make -package Cabal -no-user-package-db -dynamic Setup LANG=C.utf8 ./Setup --version [ -x Setup ] || ghc --make -package Cabal -no-user-package-db -dynamic Setup LANG=C.utf8 ./Setup configure --prefix=/usr --libdir=/usr/lib64 --docdir=/usr/share/licenses/ghc-regex-posix --libsubdir='$compiler'${subsubdir}/'$pkgid' --datasubdir='$pkgid' --libexecsubdir='$pkgid' --ghc --dynlibdir=/usr/lib64/ghc-9.6.3${subsubdir} --global --ghc-options="${CFLAGS:+$(echo ' '$CFLAGS | sed -e 's/ / -optc/g')} ${LDFLAGS:+$(echo ' '$LDFLAGS | sed -e 's/ / -optl/g')} -fhide-source-paths" -v $cabal_configure_extra_options -p --enable-shared --htmldir=/usr/share/doc/ghc-9.6.3/html/libraries/regex-posix-0.96.0.1 --global [ -x Setup ] || ghc --make -package Cabal -no-user-package-db -dynamic Setup LANG=C.utf8 ./Setup build -j${RPM_BUILD_NCPUS} -v if [ -n dist/build/libHSregex-posix-0.96.0.1*.so ]; then [ -x Setup ] || ghc --make -package Cabal -no-user-package-db -dynamic Setup LANG=C.utf8 ./Setup haddock --html --hyperlink-source --hoogle fi %install [ -x Setup ] || ghc --make -package Cabal -no-user-package-db -dynamic Setup LANG=C.utf8 ./Setup copy --destdir=/home/lkp/rpmbuild/BUILDROOT/ghc-regex-posix-0.96.0.1-1.oe2409.x86_64 -v [ -x Setup ] || ghc --make -package Cabal -no-user-package-db -dynamic Setup LANG=C.utf8 ./Setup register --gen-pkg-config if [ -d "/usr/lib64/ghc-9.6.3/lib" ]; then subsubdir=/lib fi if [ -d regex-posix-0.96.0.1.conf ]; then for i in $(ls "regex-posix-0.96.0.1.conf/"); do sub=$(echo $i | sed -e "s/^[0-9]\+-//") install -D --mode=0644 regex-posix-0.96.0.1.conf/${i} /home/lkp/rpmbuild/BUILDROOT/ghc-regex-posix-0.96.0.1-1.oe2409.x86_64/usr/lib64/ghc-9.6.3${subsubdir}/package.conf.d/${sub}.conf done else install -D --mode=0644 regex-posix-0.96.0.1.conf /home/lkp/rpmbuild/BUILDROOT/ghc-regex-posix-0.96.0.1-1.oe2409.x86_64/usr/lib64/ghc-9.6.3${subsubdir}/package.conf.d/regex-posix-0.96.0.1.conf fi if [ -d "/usr/lib64/ghc-9.6.3/lib" ]; then subsubdir=/lib fi if [ -z "$(ls /home/lkp/rpmbuild/BUILDROOT/ghc-regex-posix-0.96.0.1-1.oe2409.x86_64/usr/lib64/ghc-9.6.3${subsubdir}/package.conf.d/regex-posix-0.96.0.1*.conf)" ]; then echo "/home/lkp/rpmbuild/BUILDROOT/ghc-regex-posix-0.96.0.1-1.oe2409.x86_64/usr/lib64/ghc-9.6.3${subsubdir}/package.conf.d/regex-posix-0.96.0.1*.conf not found" exit 1 fi rm -f ghc-regex-posix.files ghc-regex-posix-help.files touch ghc-regex-posix.files ghc-regex-posix-help.files for i in /home/lkp/rpmbuild/BUILDROOT/ghc-regex-posix-0.96.0.1-1.oe2409.x86_64/usr/lib64/ghc-9.6.3${subsubdir}/libHSregex-posix-0.96.0.1-*ghc9.6.3.so; do if [ -x "$i" ]; then echo $i >> ghc-regex-posix.files echo "%dir /usr/lib64/ghc-9.6.3/lib" >> ghc-regex-posix.files else echo $i: not found exit 1 fi done pkgdir="/usr/lib64/ghc-9.6.3${subsubdir}/regex-posix-0.96.0.1" if [ -d "/home/lkp/rpmbuild/BUILDROOT/ghc-regex-posix-0.96.0.1-1.oe2409.x86_64${pkgdir}" ]; then find /home/lkp/rpmbuild/BUILDROOT/ghc-regex-posix-0.96.0.1-1.oe2409.x86_64${pkgdir} -type d -fprintf ghc-regex-posix-devel.files '%%dir %p\n' -o \( -name '*.p_hi' -o -name 'libHS*_p.a' \) -fprint ghc-regex-posix-prof.files -o -fprint ghc-regex-posix-devel.files echo "%dir /usr/lib64/ghc-9.6.3/lib" >> ghc-regex-posix-devel.files echo "%dir /usr/lib64/ghc-9.6.3/lib" >> ghc-regex-posix-prof.files else rm -f ghc-regex-posix-devel.files ghc-regex-posix-prof.files touch ghc-regex-posix-devel.files ghc-regex-posix-prof.files fi ls /home/lkp/rpmbuild/BUILDROOT/ghc-regex-posix-0.96.0.1-1.oe2409.x86_64/usr/lib64/ghc-9.6.3${subsubdir}/package.conf.d/regex-posix-0.96.0.1*.conf >> ghc-regex-posix-devel.files haddock_dir=/usr/share/doc/ghc-9.6.3/html/libraries/regex-posix-0.96.0.1 if [ -d /home/lkp/rpmbuild/BUILDROOT/ghc-regex-posix-0.96.0.1-1.oe2409.x86_64$haddock_dir ]; then echo $haddock_dir >> ghc-regex-posix-help.files fi for i in ghc-regex-posix.files ghc-regex-posix-devel.files ghc-regex-posix-help.files ghc-regex-posix-prof.files; do if [ -f "$i" ]; then sed -i -e "s!/home/lkp/rpmbuild/BUILDROOT/ghc-regex-posix-0.96.0.1-1.oe2409.x86_64!!g" $i fi done echo "running ghc_delete_rpaths:" if ! type chrpath > /dev/null; then exit 1; fi for i in $(find /home/lkp/rpmbuild/BUILDROOT/ghc-regex-posix-0.96.0.1-1.oe2409.x86_64 -type f -executable -exec sh -c "file {} | grep -q 'dynamically linked'" \; -print); do if [ -x "$i" ]; then rpath=$(chrpath $i | sed -e "s@^$i: R.*PATH=@@") case "$rpath" in *$PWD/*) chrpath -r "/usr/lib64/ghc-9.6.3/lib:/usr/lib64/ghc-9.6.3/lib/x86_64-linux-ghc-9.6.3" $i ;; *) ;; esac else echo "%ghc_delete_rpath: no $i executable" exit 1 fi done %post devel /usr/bin/ghc-pkg-9.6.3 recache --no-user-package-db || : %postun devel /usr/bin/ghc-pkg-9.6.3 recache --no-user-package-db || : %files -f ghc-regex-posix.files %license LICENSE %files devel -f ghc-regex-posix-devel.files %doc ChangeLog.md %files -n ghc-regex-posix-help -f ghc-regex-posix-help.files %license LICENSE %files -n ghc-regex-posix-prof -f ghc-regex-posix-prof.files %changelog * Tue Aug 22 2023 Lin Runze 0.96.0.1-1 - Initial packaging (Version 0.96.0.1) ?u@?L7(twt 003̐ %tt#-"- H;GϹ>Z?///_\FQQHLh/zD~98 @ /8 EAhh ;;܆]@X~#zV\~<>$# FH~=+K`~^ Q^~^}D 0pwq"1P7(mAP;= `2y_Xn JuM-6Ee!% "0D)R t: p}0w-_Q74pB -GO(!v Ww0; t t8fhov!`ÿS n@07T FoLE*^w;X}^⢨Tc!m`* M=4eWY^o:]P[p*a7G0ݨW7GƎ -K +}b-gw ΢4hVh̲=I?5tv)\)-;ukF#tge>oEbłrf~hK=#;\:w}ljvOvuv3|c+6uZ۝ܳ~ba5%U'ySJl1⯆l 9c6/nt215(>%[*}~c. NfJ5QOS&5~1yЭz:KkD+ +1uj7}vzr0U~dk+~c'wm~{rWSiJYX˼ eOSJ(Z<./F:f4-Y)ħO)삦KW_l~[OrɛBCvvSzb||:Q|Wq!ADSAۑd kZ޳tGlO5tlsSb1NpЌqG~}njln}R*A%Ѫr q?J#Vџ礡L^1xY Մ=ʯzخ(em"Ҝ;Ć1BU}X4]"5z~X5h"K'G,sKx7~"LQ^>jԺ}JN0\5ܭjgKGw]֋IdhMK;d*)%dUcvk0SȫRR(;M.ksyp 3]'K?G rv]4JzD)=yA7Q('Ox9Y\Ŭ[7<$W%tuJOf/Ϭ`ʌtT{QP*7~듸 :b^;C |x{Zn̾˳qd3zȚHizU҉o_*d z*u93yk-:b4 H=C٘޻wZ$wpJu#|<4,2-OBIqC|['B#t: qE$E.]ڧw_za ,Ƥ2j '۰E k-x.+t)<%fqn>ȿf> I6`ܒAa~7 ˒-ܹlk0dvmQrwvOܭqŏzc{Ϧ>x֟@\dgϯ3?[JWn;~/ ]:_ոK2AYr$f *=}fo'`~=8jxX)5P;GXAs &#C5tk})_/Upސ|UzO5맢 p`1NKaz♺\]]!dnmpV>'x>' NYlkQMR-UǪޘ.P6K.j_P"֚G(0R+h\ir6vYF=s~%N5^߹rT(|nӇC U|ׁlʒkφXx*s:*K`J/[}e|6G,nKe֟:xn%v0ag]Nc`8~/<O#x}Z^>g7^ Y|/ca@?7b]8..Y_]DZx|u<^~1"p͠xXQ*=23#F/hӺ$<νʈcy =Cj6>{7}0#*s;3C+pТ-^9D0(L~lTtkw{]#4:+K^JWq+WUY^O.e@K(x?J]#c|X빥ՀWUR5Gf#`UE0taUoE;A2kx蛃ֻή?mzdh$x9$6խ+E:ݧ~kk͈&܈o~~Oihj̫TEWWͳs>g\gG{j=$>ܬߐ+Wˋ(`s%82OgwF . @)Ś(E&"ӪyB U}j<#zɷ T8:8uyhW2L8Qh ˠ,-]7o2Y#T5QV EWsݭ[e'a0XLmqeѰ4,BLh5$A Z[誯JyL>Qd=^ӐXNRZxnOHv-3D=-]"=LీĶp7ݏ(p^$U.b2Ԗr1>) 5ћذȻUKFP 4)cliTb憭8Okʯ)”SOz;w(Oeat }JX3OkF7k K66RЫD Xʃq~i#H̄̒ zl!6k/1G.#R[@$͐3U1=[=y@GeƜZ+Wܬ6o"Tid80ifoMjDLGhû>[/xyK*>iBJCL1W`n..f*V9A&a~E߶`@"Z cX˞zXب㲰lM l˷@?g4$1T?̞@06&l(XPȈXMA[4Q=4~͖3M0|$6|3\BN]a~UmFZ|`3Z}Q7u Nr3󱌚v;U㷟S2i$TV7(l& 7_u?Jߏ);DuyyxHgێsӦC=w˻fO?05~*4{yMqt@lOU561Tk AMn(CgcF+yl@v>f &} MKuySwg_' e]J۸/d#^\xve, `DiVZ~Κp狿^"f1߆IS.TAעB@Ќb(++3KJp@L )9zA}._3gvΔ^?-[2#"9'F.{ ySߝ}rG6nN ʎ\W'xHa qLȇ[_ٗeĘ<Ϣ{[Lzݾ,wH|"KI;Rx1zK~FU3םZ{&nӟ[X=L #feMGl=6x&'AfLghOk`1܀,[됬S$H {@g.ךRBVIOvZ''d]]utK)%ukM{2  :EPX Y}KW; ZcpY a8 $ޚ>7RwLgLwlljJt^A͵Kҷ]fs=Zɴ7&@Ɉ/E pfl۹4U<^c{0cٺ3(,XbDu "I"HW-Å *^jFu+x?sTR;K-\=Ǎvm+p^m-7ltd_*>]>PXRvg-fW= 0G(6cSxqm'y?žEܷHI1lq,r]$gĜ@r/5=-=xv'h|N't)L551^SczŢ0hުC01.;!m:9]GѬ[ئ2iJOTruKu%ʙaX//ZZou.X+b9E+ٱD|bb,vfM$ZqY1٤xB(MY/M4|묞i9u+ sr܀ YqIwz0-EyQN Lŋ 48 s,daK0B׳tYn>p:q`oc ~êD9dִ3;u mdaąqD;h$+Apܔt:'pֳqSéZ|[]JrEgזKvϞo3ߧ+.Y.pvP^u^7ͳ5e-3` EUR!Rˆ"ՙ3L/{ d 0ic ! ähQ#*~7IAFm.5<33Y=#ӈBi,Et( !~PzH jѵ%E3f8A4xhs5ݥ_znFr N?W&i]  "4:t22&cCecK1~ʼ T]Rlդ/l7/*4 f!8%7$*5nfɑ_cx~?vI*?nzMjdUC̣k^g+6SVw^kSAy8||̵]lݭ!zkb54`966{X"?_IMIS3ʠL7]r7fu}ArXF_T?H/Vh3So|hwEuƛ~g7WhEz'C=4}WKC^ɂƢ Xk0ܗn컅߾ٽs-YSzOWI6 C9AvT{4W+kݧVExK6eǓTn1 }eG\}I]iy 8?yz ˞0 m%L /Aw,gc|k(Դuӹ2QaQdP;v 5a JAڂE1cF[f'X⏶=a({F8*(nRf&qoTO0sͱ#d>^ kTf5Na4+/+O<и|?߽Nuyvm>R1}wہr~ HJVbwخIl?Thl;פx鵝+Q{r/v}',]7L: /RoF?|onDcE_DƳ,g^1o!$2wVRKEޟ }[L0VWp`OϕŦ;sW6֍U6d9ibj0Q-W9Xށh jk93;0w>rv~y*o @\`\}hfܛj٧!GMO +7?G] 2E0pM=^f!E|t'_-?y#~ 'ko-*qh-ug9/t뵠$9ygMJG΄jPyzb[=>Qoeu>Νk[q݅ Vȹ&3a>7d.X |.#ݵXn=Y"o0?b `s]NA7)8^ bP/rH UWf7 J h+Tu_ IBox AfMCDWpH܃*+PhBz_[GnϭO9L9:uN,,@GR:ù%n6}\N'ٸ2x6Nhކ"ib).yWT=\l_;-T=́k1s[u'[PTG7Ō\c=bSB(ZTNn&Tjw^bp5pLT}YZ4z'PٓIrZR{u,9GODz"CzrD?֕=V`WO('5(d)NDvĐYu}h>NI:vOrhV_94]?w.BfNk>4>8" 0E0dQu~u"2Ik,ZsT< ޫJd?*HxzSi` map9 u"Phߤqq19ZA/Ve^z(k68h}.!Dg/?'%[N+7Ќ;t╸"]RQ&n=&<[E %F {KV"w7uݠ,xY\^&βE2}t`(D쨟!BT?SUL)/2Xhܤ>-k^JDrVӓ\Љ#Ay5ʭlx[l5]^t9׭wfBZ,sA-fy<?j>b"~>#W |;,vPAKnT[? 9ӾzI?hXۇmYW'n4jn_nu~)qu$՝֨V:tlydzpN&>u*L65viNUDP? "u>|NyhCs>=\\nX8bgO[YT꤆Ck%ʱ6F5!'6*BoR|VvtL"cWB Չ1J(n88 6u>Qjފ*hx@RYE.a.#y {%ᖼipgEqmtȞiDhIxq5iG~l%zFCQ{S#74*1{}nNx8 U \P\Nt-,"p0*Э_HQ#C<Wcm:ऊ!47W ro u^*+Լ*.J+0um>I3>A'bMf] t}0;.@1 "-{>~d{*)Oti*#[oһKu4Zx?k4,R݀$IҌJz5/,yVYZ͠}WU WR]RީhPE]]#/>iI] \-͠ ]YAjp˫"ILBst;L B!Wk=v6g׹vȻd}RFX=* UҢ4L6sΤ2]d)tz',Hx,f9Dɛ,X,SbCpǛ2n5gEMٽq޹lN@ֆ\{@A)fn+˪[)ogc]"U3ۂip~ g(lH''!iY^1l0:vR.9"/ؚX4$f[mϭd;LN)"nX 1ucERݧ mڽOSu֡fhqB,؏ x4MSb;y]~0B dZjPWIM@i;sRgoDoXd0S|`+ƀfb?B>y -,UPqÌ$).+_=.赹<,6m3hAȺH+ׂ C^UD30!6q=C ؑKE$_IzڹS"[ŌSUQuaDBƳz2_yu7܀$6 ̖M?_y)<-ҫu/ ('[tsįF}խ BASΉHSOg y5Ԟ_Pb4X΀0S7$(=UȥqP~4;xoYX`T.VWd\(k5TQ}hN< Gs7`܆ ZQ :(FjrǦSc+W ZvpntK\uUʾ7TN(y\s*ԾL!P8T/='j^+5(l)n( j(cjm}^3hK0yOSe" [}e\LeOv>u<%*Llke׌(۰\v\~oPƾz@űźY䔘1YָnjrZ vħ$7i${LDBD)6JxxJJJB5L*mnwZ4+%>xM6CZ\qG5޾.0]U겧G1NHٍT /iZzkr4_Ľx~0G[7/]/5 $\F\4E\<:1ATJ0 w!7ݝ! O# N{P!@@$@A8 vvE[ߏNUGNGzCap$WV{[[B>IK.eE2[VeU[woQDy>F-OS `kr= E=Ȏ jJ8/CQ^߇¼by  -R-PW🩂'bQuǖ/ fT7gI{!7K\.ttG"PoGE %!U@1 @w`SZ ?:{9ܑߑc v0Ou]ʨ" H;0U[, 0< L﵋W[i^O4oߐG**DWv{ 8x5w P|0T#]#{n/ 5`Hp,`{8 g.ľv TCiآGW3@b`$ퟫG[;sȣWyP' \HA hFm[Qy 7:*UC/!@M(ʂoe}ǻ=q^T8ԒS@7ŝbx[R J