about summary refs log tree commit diff
path: root/pkgs/games
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/games')
-rw-r--r--pkgs/games/brogue/default.nix4
-rw-r--r--pkgs/games/bzflag/default.nix4
-rw-r--r--pkgs/games/crawl/default.nix4
-rw-r--r--pkgs/games/empty-epsilon/default.nix10
-rw-r--r--pkgs/games/freedroidrpg/default.nix1
-rw-r--r--pkgs/games/gzdoom/default.nix4
-rw-r--r--pkgs/games/ivan/default.nix8
-rw-r--r--pkgs/games/ivan/homedir.patch75
-rw-r--r--pkgs/games/ivan/new.patch33
-rw-r--r--pkgs/games/nethack/default.nix22
-rw-r--r--pkgs/games/openarena/default.nix2
-rw-r--r--pkgs/games/planetaryannihilation/default.nix2
-rw-r--r--pkgs/games/snipes/default.nix45
-rw-r--r--pkgs/games/spring/springlobby.nix4
-rw-r--r--pkgs/games/steam/steam.nix6
-rw-r--r--pkgs/games/ue4demos/default.nix2
-rw-r--r--pkgs/games/urbanterror/default.nix10
17 files changed, 134 insertions, 102 deletions
diff --git a/pkgs/games/brogue/default.nix b/pkgs/games/brogue/default.nix
index d48dc8e8006e5..4cfac27451b03 100644
--- a/pkgs/games/brogue/default.nix
+++ b/pkgs/games/brogue/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "brogue-${version}";
-  version = "1.7.4";
+  version = "1.7.5";
 
   src = fetchurl {
     url = "https://sites.google.com/site/broguegame/brogue-${version}-linux-amd64.tbz2";
-    sha256 = "1lygf17hm7wqlp0jppaz8dn9a9ksmxz12vw7jyfavvqpwdgz79gb";
+    sha256 = "0i042zb3axjf0cpgpdh8hvfn66dbfizidyvw0iymjk2n760z2kx7";
   };
 
   prePatch = ''
diff --git a/pkgs/games/bzflag/default.nix b/pkgs/games/bzflag/default.nix
index e6d23cf1b9f0f..c8618c13347d5 100644
--- a/pkgs/games/bzflag/default.nix
+++ b/pkgs/games/bzflag/default.nix
@@ -4,11 +4,11 @@
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
   pname = "bzflag";
-  version = "2.4.14";
+  version = "2.4.16";
 
   src = fetchurl {
     url = "https://download.bzflag.org/${pname}/source/${version}/${name}.tar.bz2";
-    sha256 = "1p4vaap8msk7cfqkcc2nrchw7pp4inbyx706zmlwnmpr9k0nx909";
+    sha256 = "00y2ifjgl4yz1pb2fgkg00vrfb6yk5cfxwjbx3fw2alnsaw6cqgg";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/games/crawl/default.nix b/pkgs/games/crawl/default.nix
index b444f5b0be0ff..b2015a28947a7 100644
--- a/pkgs/games/crawl/default.nix
+++ b/pkgs/games/crawl/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   name = "crawl-${version}${lib.optionalString tileMode "-tiles"}";
-  version = "0.22.0";
+  version = "0.22.1";
 
   src = fetchFromGitHub {
     owner = "crawl-ref";
     repo = "crawl-ref";
     rev = version;
-    sha256 = "1bzhqrc944rgpdnnid3c5h2r3dvyw70cs70hazzm0cv5aipdkhbl";
+    sha256 = "19yzl241glv2zazifgz59bw3jlh4hj59xx5w002hnh9rp1w15rnr";
   };
 
   # Patch hard-coded paths in the makefile
diff --git a/pkgs/games/empty-epsilon/default.nix b/pkgs/games/empty-epsilon/default.nix
index bf3b16dc9a406..fcefc5989b0e7 100644
--- a/pkgs/games/empty-epsilon/default.nix
+++ b/pkgs/games/empty-epsilon/default.nix
@@ -2,7 +2,11 @@
 
 let
 
-  version = "2018.02.15";
+  major = "2018";
+  minor = "02";
+  patch = "15";
+
+  version = "${major}.${minor}.${patch}";
 
   serious-proton = stdenv.mkDerivation rec {
     name = "serious-proton-${version}";
@@ -46,6 +50,10 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-DSERIOUS_PROTON_DIR=${serious-proton.src}"
+    "-DCPACK_PACKAGE_VERSION=${version}"
+    "-DCPACK_PACKAGE_VERSION_MAJOR=${major}"
+    "-DCPACK_PACKAGE_VERSION_MINOR=${minor}"
+    "-DCPACK_PACKAGE_VERSION_PATCH=${patch}"
   ];
 
   meta = with lib; {
diff --git a/pkgs/games/freedroidrpg/default.nix b/pkgs/games/freedroidrpg/default.nix
index 875af8e06642b..2ebb60f3d5dbf 100644
--- a/pkgs/games/freedroidrpg/default.nix
+++ b/pkgs/games/freedroidrpg/default.nix
@@ -58,5 +58,6 @@ in stdenv.mkDerivation rec {
 
     maintainers = with maintainers; [ jtojnar ];
     platforms = platforms.unix;
+    hydraPlatforms = platforms.linux; # sdl-config times out on darwin
   };
 }
diff --git a/pkgs/games/gzdoom/default.nix b/pkgs/games/gzdoom/default.nix
index 3720c109ced77..0f95fa9aaf7f0 100644
--- a/pkgs/games/gzdoom/default.nix
+++ b/pkgs/games/gzdoom/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   name = "gzdoom-${version}";
-  version = "3.5.0";
+  version = "3.5.1";
 
   src = fetchFromGitHub {
     owner = "coelckers";
     repo = "gzdoom";
     rev = "g${version}";
-    sha256 = "04wdcm7jky8bm01ndx46q3pq7ma6npjwmp204gxidmdwjhn0bfyp";
+    sha256 = "109qmjkafr1xghpn0k1a8a0zgladc8r6hyw99v8r51ryjf5qf9sd";
   };
 
   nativeBuildInputs = [ cmake makeWrapper ];
diff --git a/pkgs/games/ivan/default.nix b/pkgs/games/ivan/default.nix
index 07b67fa639780..6d31369a15927 100644
--- a/pkgs/games/ivan/default.nix
+++ b/pkgs/games/ivan/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
 
   name = "ivan-${version}";
-  version = "053";
+  version = "054";
 
   src = fetchFromGitHub {
     owner = "Attnam";
     repo = "ivan";
     rev = "v${version}";
-    sha256 = "1r3fcccgpjmzzkg0lfmq76igjapr01kh97vz671z60jg7gyh301b";
+    sha256 = "0ayhp9qvxsi5dsgjvy43i3lpdis883g1xn2b8l5xkwxcqfnvsfmq";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
@@ -19,10 +19,10 @@ stdenv.mkDerivation rec {
   hardeningDisable = ["all"];
 
   # To store bone and high score files in ~/.ivan of the current user
-  patches = [./homedir.patch];
+  patches = [./new.patch];
 
   # Enable wizard mode
-  cmakeFlags = ["-DCMAKE_CXX_FLAGS=-DWIZARD"];
+  cmakeFlags = ["-DCMAKE_CXX_FLAGS=-DWIZARD" "-DFORCE_HOME_AS_STATE_DIR=ON"];
 
   # Help CMake find SDL_mixer.h
   NIX_CFLAGS_COMPILE = "-I${SDL2_mixer}/include/SDL2";
diff --git a/pkgs/games/ivan/homedir.patch b/pkgs/games/ivan/homedir.patch
deleted file mode 100644
index 312099f7ffd98..0000000000000
--- a/pkgs/games/ivan/homedir.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-diff --git a/FeLib/Include/hscore.h b/FeLib/Include/hscore.h
-index 4caf3ff..1a02845 100644
---- a/FeLib/Include/hscore.h
-+++ b/FeLib/Include/hscore.h
-@@ -31,11 +31,11 @@ class festring;
- class highscore
- {
-  public:
--  highscore(cfestring& = HIGH_SCORE_FILENAME);
-+  highscore();
-   truth Add(long, cfestring&);
-   void Draw() const;
--  void Save(cfestring& = HIGH_SCORE_FILENAME) const;
--  void Load(cfestring& = HIGH_SCORE_FILENAME);
-+  void Save() const;
-+  void Load();
-   truth LastAddFailed() const;
-   void AddToFile(highscore*) const;
-   truth MergeToFile(highscore*) const;
-diff --git a/FeLib/Source/hscore.cpp b/FeLib/Source/hscore.cpp
-index 2e5318d..ff9c174 100644
---- a/FeLib/Source/hscore.cpp
-+++ b/FeLib/Source/hscore.cpp
-@@ -23,7 +23,7 @@ cfestring& highscore::GetEntry(int I) const { return Entry[I]; }
- long highscore::GetScore(int I) const { return Score[I]; }
- long highscore::GetSize() const { return Entry.size(); }
- 
--highscore::highscore(cfestring& File) : LastAdd(0xFF), Version(HIGH_SCORE_VERSION) { Load(File); }
-+highscore::highscore() : LastAdd(0xFF), Version(HIGH_SCORE_VERSION) { Load(); }
- 
- truth highscore::Add(long NewScore, cfestring& NewEntry,
-                      time_t NewTime, long NewRandomID)
-@@ -98,8 +98,12 @@ void highscore::Draw() const
-   List.Draw();
- }
- 
--void highscore::Save(cfestring& File) const
-+void highscore::Save() const
- {
-+  std::string buffer(getenv("HOME"));
-+  buffer.append("/.ivan/ivan-highscore.scores");
-+  cfestring& File = buffer.c_str();
-+
-   outputfile HighScore(File);
-   long CheckSum = HIGH_SCORE_VERSION + LastAdd;
-   for(ushort c = 0; c < Score.size(); ++c)
-@@ -112,8 +116,12 @@ void highscore::Save(cfestring& File) const
- }
- 
- /* This function needs much more error handling */
--void highscore::Load(cfestring& File)
-+void highscore::Load()
- {
-+  std::string buffer(getenv("HOME"));
-+  buffer.append("/.ivan/ivan-highscore.scores");
-+  cfestring& File = buffer.c_str();
-+
-   {
-     inputfile HighScore(File, 0, false);
- 
-diff --git a/Main/Source/game.cpp b/Main/Source/game.cpp
-index 8927305..c18e790 100644
---- a/Main/Source/game.cpp
-+++ b/Main/Source/game.cpp
-@@ -2380,7 +2380,9 @@ festring game::GetDataDir()
- festring game::GetBoneDir()
- {
- #ifdef UNIX
--  return LOCAL_STATE_DIR "/Bones/";
-+  festring BoneDir;
-+  BoneDir << getenv("HOME") << "/.ivan/Bones/";
-+  return BoneDir;
- #endif
- 
- #if defined(WIN32) || defined(__DJGPP__)
diff --git a/pkgs/games/ivan/new.patch b/pkgs/games/ivan/new.patch
new file mode 100644
index 0000000000000..d0ed866b3f32d
--- /dev/null
+++ b/pkgs/games/ivan/new.patch
@@ -0,0 +1,33 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 13e143e..a6f9176 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -13,10 +13,14 @@ set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")
+ add_definitions(-DIVAN_VERSION="${PROJECT_VERSION}" -DUSE_SDL)
+ 
+ option(BUILD_MAC_APP "Build standalone application for MacOS" OFF)
++option(FORCE_HOME_AS_STATE_DIR "Statedir will be /.ivan/ in current user's homedir" OFF)
+ 
+ if(UNIX)
+   add_definitions(-DUNIX)
+   include(GNUInstallDirs)
++  if(FORCE_HOME_AS_STATE_DIR)
++    add_definitions(-DFORCE_HOME_AS_STATE_DIR)
++  endif(FORCE_HOME_AS_STATE_DIR)
+ 
+   if(BUILD_MAC_APP)
+     install(DIRECTORY Graphics Script Music Sound DESTINATION "ivan")
+diff --git a/Main/Source/game.cpp b/Main/Source/game.cpp
+index 323a185..012feb3 100644
+--- a/Main/Source/game.cpp
++++ b/Main/Source/game.cpp
+@@ -5191,6 +5191,9 @@ festring game::GetDataDir()
+ 
+ festring game::GetStateDir()
+ {
++#ifdef FORCE_HOME_AS_STATE_DIR
++  return GetHomeDir()+"/.ivan/";
++#endif
+ #ifdef UNIX
+ #ifdef MAC_APP
+   return GetHomeDir();
diff --git a/pkgs/games/nethack/default.nix b/pkgs/games/nethack/default.nix
index 2a39e3499ed9f..56904ae2dfe1f 100644
--- a/pkgs/games/nethack/default.nix
+++ b/pkgs/games/nethack/default.nix
@@ -1,6 +1,7 @@
 { stdenv, lib, fetchurl, coreutils, ncurses, gzip, flex, bison
 , less, makeWrapper
-, x11Mode ? false, qtMode ? false, libXaw, libXext, mkfontdir, pkgconfig, qt5
+, buildPackages
+, x11Mode ? false, qtMode ? false, libXaw, libXext, bdftopcf, mkfontdir, pkgconfig, qt5
 }:
 
 let
@@ -33,10 +34,11 @@ in stdenv.mkDerivation rec {
                 ++ lib.optionals qtMode [ gzip qt5.qtbase.bin qt5.qtmultimedia.bin ];
 
   nativeBuildInputs = [ flex bison ]
-                      ++ lib.optionals x11Mode [ mkfontdir ]
+                      ++ lib.optionals x11Mode [ mkfontdir bdftopcf ]
                       ++ lib.optionals qtMode [
                            pkgconfig mkfontdir qt5.qtbase.dev
                            qt5.qtmultimedia.dev makeWrapper
+                           bdftopcf
                          ];
 
   makeFlags = [ "PREFIX=$(out)" ];
@@ -64,12 +66,24 @@ in stdenv.mkDerivation rec {
       -e 's,^CFLAGS=-g,CFLAGS=,' \
       -i sys/unix/hints/macosx10.10
     sed -e '/define CHDIR/d' -i include/config.h
+    ${lib.optionalString qtMode ''
     sed \
       -e 's,^QTDIR *=.*,QTDIR=${qt5.qtbase.dev},' \
       -e 's,CFLAGS.*QtGui.*,CFLAGS += `pkg-config Qt5Gui --cflags`,' \
       -e 's,CFLAGS+=-DCOMPRESS.*,CFLAGS+=-DCOMPRESS=\\"${gzip}/bin/gzip\\" \\\
         -DCOMPRESS_EXTENSION=\\".gz\\",' \
       -i sys/unix/hints/linux-qt4
+    ''}
+    ${lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform)
+    # If we're cross-compiling, replace the paths to the data generation tools
+    # with the ones from the build platform's nethack package, since we can't
+    # run the ones we've built here.
+    ''
+    ${buildPackages.perl}/bin/perl -p \
+      -e 's,[a-z./]+/(makedefs|dgn_comp|lev_comp|dlb)(?!\.),${buildPackages.nethack}/libexec/nethack/\1,g' \
+      -i sys/unix/Makefile.*
+    ''}
+    sed -i -e '/rm -f $(MAKEDEFS)/d' sys/unix/Makefile.src
   '';
 
   configurePhase = ''
@@ -80,6 +94,8 @@ in stdenv.mkDerivation rec {
     popd
   '';
 
+  enableParallelBuilding = true;
+
   postInstall = ''
     mkdir -p $out/games/lib/nethackuserdir
     for i in xlogfile logfile perm record save; do
@@ -116,6 +132,8 @@ in stdenv.mkDerivation rec {
     chmod +x $out/bin/nethack
     ${lib.optionalString x11Mode "mv $out/bin/nethack $out/bin/nethack-x11"}
     ${lib.optionalString qtMode "mv $out/bin/nethack $out/bin/nethack-qt"}
+    install -Dm 555 util/{makedefs,dgn_comp,lev_comp} -t $out/libexec/nethack/
+    ${lib.optionalString (!(x11Mode || qtMode)) "install -Dm 555 util/dlb -t $out/libexec/nethack/"}
   '';
 
   postFixup = lib.optionalString qtMode ''
diff --git a/pkgs/games/openarena/default.nix b/pkgs/games/openarena/default.nix
index 19e608f393a19..d5592e4f74046 100644
--- a/pkgs/games/openarena/default.nix
+++ b/pkgs/games/openarena/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "0jmc1cmdz1rcvqc9ilzib1kilpwap6v0d331l6q53wsibdzsz3ss";
   };
 
-  buildInputs = [ pkgs.unzip patchelf makeWrapper];
+  nativeBuildInputs = [ pkgs.unzip patchelf makeWrapper];
 
   installPhase = let
     gameDir = "$out/openarena-$version";
diff --git a/pkgs/games/planetaryannihilation/default.nix b/pkgs/games/planetaryannihilation/default.nix
index 95674822aa36d..391ced362075c 100644
--- a/pkgs/games/planetaryannihilation/default.nix
+++ b/pkgs/games/planetaryannihilation/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
     inherit (config.planetary_annihilation) url sha256;
   };
 
-  buildInputs = [ patchelf makeWrapper ];
+  nativeBuildInputs = [ patchelf makeWrapper ];
  
   installPhase = ''
     mkdir -p $out/{bin,lib}
diff --git a/pkgs/games/snipes/default.nix b/pkgs/games/snipes/default.nix
new file mode 100644
index 0000000000000..e8d915dd31a54
--- /dev/null
+++ b/pkgs/games/snipes/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchFromGitHub, fetchurl, SDL2, SDL2_ttf }:
+
+let
+  font = fetchurl {
+    url    = "http://kingbird.myphotos.cc/ee22d44076adb8a34d8e20df4be3730a/SnipesConsole.ttf";
+    sha256 = "06n8gq18js0bv4svx84ljzhs9zmi81wy0zqcqj3b4g0rsrkr20a7";
+  };
+
+in stdenv.mkDerivation rec {
+  name = "snipes-${version}";
+  version = "20180930";
+
+  src = fetchFromGitHub {
+    owner  = "Davidebyzero";
+    repo   = "Snipes";
+    rev    = "343e14104b7848eb1f882401888e685b7918ef9f";
+    sha256 = "1rl70d5miak34warbwfv27z11vln4lvf7maqqc78z0gdc5zivdv2";
+  };
+
+  postPatch = ''
+    substitute config-sample.h config.h \
+      --replace SnipesConsole.ttf $out/share/snipes/SnipesConsole.ttf
+  '';
+
+  enableParallelBuilding = true;
+
+  buildInputs = [ SDL2 SDL2_ttf ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm755 -t $out/bin snipes
+    install -Dm644 -t $out/share/doc/snipes *.md
+    install -Dm644 ${font} $out/share/snipes/SnipesConsole.ttf
+
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Modern port of the classic 1982 text-mode game Snipes";
+    homepage    = https://www.vogons.org/viewtopic.php?f=7&t=49073;
+    license     = licenses.free; # This reverse-engineered source code is released with the original authors' permission.
+    maintainers = with maintainers; [ peterhoeg ];
+  };
+}
diff --git a/pkgs/games/spring/springlobby.nix b/pkgs/games/spring/springlobby.nix
index 632a047e96c71..fa7fad3ecd921 100644
--- a/pkgs/games/spring/springlobby.nix
+++ b/pkgs/games/spring/springlobby.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "springlobby-${version}";
-  version = "0.264";
+  version = "0.267";
 
   src = fetchurl {
     url = "http://www.springlobby.info/tarballs/springlobby-${version}.tar.bz2";
-    sha256 = "1i31anvvywhl2m8014m3vk74cj74l37j6a0idzfhd4ack8b9hg2x";
+    sha256 = "0yv7j9l763iqx7hdi2pcz5jkj0068yrffb8nrav7pwg0g3s0znak";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/games/steam/steam.nix b/pkgs/games/steam/steam.nix
index b8e1982a989f4..dd6e9a070b196 100644
--- a/pkgs/games/steam/steam.nix
+++ b/pkgs/games/steam/steam.nix
@@ -2,14 +2,14 @@
 
 let
   traceLog = "/tmp/steam-trace-dependencies.log";
-  version = "1.0.0.51";
+  version = "1.0.0.56";
 
 in stdenv.mkDerivation rec {
   name = "steam-original-${version}";
 
   src = fetchurl {
     url = "http://repo.steampowered.com/steam/pool/steam/s/steam/steam_${version}.tar.gz";
-    sha256 = "1ghrfznm9rckm8v87zvh7hx820r5pp7sq575wxwq0fncbyq6sxmz";
+    sha256 = "01jgp909biqf4rr56kb08jkl7g5xql6r2g4ch6lc71njgcsbn5fs";
   };
 
   makeFlags = [ "DESTDIR=$(out)" "PREFIX=" ];
@@ -25,6 +25,8 @@ in stdenv.mkDerivation rec {
       EOF
       chmod +x $out/bin/steamdeps
     ''}
+    install -d $out/lib/udev/rules.d
+    install -m644 lib/udev/rules.d/*.rules $out/lib/udev/rules.d
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/games/ue4demos/default.nix b/pkgs/games/ue4demos/default.nix
index 0bdb759048ad3..b8b165ee05186 100644
--- a/pkgs/games/ue4demos/default.nix
+++ b/pkgs/games/ue4demos/default.nix
@@ -5,7 +5,7 @@ let
     stdenv.mkDerivation rec {
       inherit name src;
 
-      buildInputs = [ unzip patchelf ];
+      nativeBuildInputs = [ unzip patchelf ];
 
       rtdeps = stdenv.lib.makeLibraryPath
         [ xorg.libXxf86vm xorg.libXext openal ]
diff --git a/pkgs/games/urbanterror/default.nix b/pkgs/games/urbanterror/default.nix
index 8ceff15b93d0e..1cd87541b8c30 100644
--- a/pkgs/games/urbanterror/default.nix
+++ b/pkgs/games/urbanterror/default.nix
@@ -2,16 +2,16 @@
 
 stdenv.mkDerivation rec {
   name = "urbanterror-${version}";
-  version = "4.3.3";
+  version = "4.3.4";
 
   srcs =
     [ (fetchurl {
-         url = "http://cdn.fs1.urbanterror.info/urt/43/releases/zips/UrbanTerror433_full.zip";
-         sha256 = "0rrh08ypnw805gd2wrs6af34nvp02x7vggfp0ymcmbr44wcjfn63";
+         url = "http://cdn.urbanterror.info/urt/43/releases/zips/UrbanTerror434_full.zip";
+         sha256 = "1rx4nnndsk88nvd7k4p35cw6znclkkzm2bl5j6vn6mjjdk66jrki";
        })
       (fetchurl {
-         url = "https://github.com/Barbatos/ioq3-for-UrbanTerror-4/archive/release-${version}.zip";
-         sha256 = "1624zsnr02nhdksmwnwmvw129lw3afd8h0hvv2j8qmcyxa7jw68b";
+         url = "https://github.com/FrozenSand/ioq3-for-UrbanTerror-4/archive/release-${version}.zip";
+         sha256 = "1s9pmw7rbnzwzl1llcs0kr2krf4daf8hhnz1j89qk4bq9a9qfp71";
        })
     ];