diff --git a/BuildParams b/BuildParams
index ebfc640023eb5a85537730dfb3190ea9797ae7b2..cfe21696b076a33d3fd97a0d82a486ae5216a951 100644
--- a/BuildParams
+++ b/BuildParams
@@ -8,9 +8,13 @@ Darwin.symbolfiles = "newview/Release/secondlife-symbols-darwin.tar.bz2"
 CYGWIN.symbolfiles = "newview/Release/secondlife-symbols-windows.tar.bz2"
 Linux.symbolfiles = "newview/secondlife-symbols-linux.tar.bz2"
 
+variants=Release
+
 # Use Public Upload Locations
 public_build = true
 
+clean_on_success = false
+
 # skip windows debug build until we can get a fix in.
 build_CYGWIN_Debug = false
 
diff --git a/autobuild.xml b/autobuild.xml
index a86c8fd866b9f71dfd668ad1a3c1774ffd208738..28964b1d5f4f5208ba388f267fba91337cc06ed4 100644
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -1239,6 +1239,32 @@
           </map>
         </map>
       </map>
+      <key>llappearanceutility-source</key>
+      <map>
+        <key>license</key>
+        <string>TEMPORARY</string>
+        <key>license_file</key>
+        <string>LICENSES/llappearanceutility.txt</string>
+        <key>name</key>
+        <string>llappearanceutility-source</string>
+        <key>platforms</key>
+        <map>
+          <key>linux</key>
+          <map>
+            <key>archive</key>
+            <map>
+              <key>hash</key>
+              <string>a1197a789ccedb6cdd9d8aeb30e52b1b</string>
+              <key>url</key>
+              <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/llappearanceutility-source/rev/264759/arch/Linux/installer/llappearanceutility_source-0.1-linux-20120914.tar.bz2</string>
+            </map>
+            <key>name</key>
+            <string>linux</string>
+          </map>
+        </map>
+        <key>version</key>
+        <string>0.1</string>
+      </map>
       <key>llphysicsextensions_source</key>
       <map>
         <key>license</key>
diff --git a/build.sh b/build.sh
index 2f4f440a9297fff6649bfa19acf2322dd56dd31f..a85d4af6fc8e376f7b0877b301f6df59395ece0b 100755
--- a/build.sh
+++ b/build.sh
@@ -113,11 +113,23 @@ build()
     check_for "Before 'autobuild build'" ${build_dir}/packages/dictionaries
 
     "$AUTOBUILD" build --no-configure -c $variant
-    viewer_build_ok=$?
+    build_ok=$?
     end_section "Viewer$variant"
+
+    # Run build extensions
+    if [ $build_ok -eq 0 -a -d ${build_dir}/packages/build-extensions ]; then
+        for extension in ${build_dir}/packages/build-extensions/*.sh; do
+            . $extension
+            if [ $build_ok -ne 0 ]; then
+                break
+            fi
+        done
+    fi
+
+    # *TODO: Make this a build extension.
     package_llphysicsextensions_tpv
     tpvlib_build_ok=$?
-    if [ $viewer_build_ok -eq 0 -a $tpvlib_build_ok -eq 0 ]
+    if [ $build_ok -eq 0 -a $tpvlib_build_ok -eq 0 ]
     then
       echo true >"$build_dir"/build_ok
     else
@@ -299,7 +311,7 @@ then
   then
     if $build_viewer_deb && [ "$last_built_variant" == "Release" ]
     then
-      begin_section "Build Debian Package"
+      begin_section "Build Viewer Debian Package"
       # mangle the changelog
       dch --force-bad-version \
           --distribution unstable \
@@ -313,7 +325,16 @@ then
       # Unmangle the changelog file
       hg revert debian/changelog
 
-      end_section "Build Debian Package"
+      end_section "Build Viewer Debian Package"
+
+      # Run debian extensions
+      if [ -d ${build_dir}/packages/debian-extensions ]; then
+          for extension in ${build_dir}/packages/debian-extensions/*.sh; do
+              . $extension
+          done
+      fi
+      # Move any .deb results.
+      mv ${build_dir}/packages/*.deb ../ 2>/dev/null || true
 
       # upload debian package and create repository
       begin_section "Upload Debian Repository"
@@ -394,8 +415,9 @@ then
         do
           upload_item symbolfile "$build_dir/$symbolfile" binary/octet-stream
         done
-        
+
         # Upload the llphysicsextensions_tpv package, if one was produced
+        # *TODO: Make this an upload-extension
         if [ -r "$build_dir/llphysicsextensions_package" ]
         then
             llphysicsextensions_package=$(cat $build_dir/llphysicsextensions_package)
@@ -409,6 +431,13 @@ then
         ;;
       esac
 
+      # Run upload extensions
+      if [ -d ${build_dir}/packages/upload-extensions ]; then
+          for extension in ${build_dir}/packages/upload-extensions/*.sh; do
+              . $extension
+          done
+      fi
+
       # Upload stub installers
       upload_stub_installers "$build_dir_stubs"
     fi
diff --git a/debian/changelog b/debian/changelog
index b3df2fcab397b36352407dc33bf5439ad8c57e3d..ce54b54c6f107de19d88453456b9a243b6559ed4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,3 @@
-secondlife-viewer (0.4) unstable; urgency=low
-
-  * Adding appearance utility package
-
- -- Don Kjer <don@lindenlab.com>  Thu, 06 Sep 2012 19:32:55 +0000
-
 secondlife-viewer (0.3) unstable; urgency=low
 
   * Initial debian configuration
diff --git a/debian/control b/debian/control
index 9ebd71df656d389482f1fc62e8dca174612b09d2..50b9ed9a264abf7dbf48dc789484056635f36753 100644
--- a/debian/control
+++ b/debian/control
@@ -14,11 +14,3 @@ Depends: ${shlibs:Depends}, ${misc:Depends},
 Description: Second Life Viewer
  Second Life is an online virtual world developed by Linden Lab.
  
-Package: secondlife-appearance-utility
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends},
- ia32-libs,
- ia32-libs-gtk
-Description: Second Life Appearance Utility
- Utility for manipulating Second Life avatar appearance.
-
diff --git a/debian/copyright b/debian/copyright
index ecfceb392760e42352044cb24ff8f38d0af019c2..106fa3802f1b7d6b7550167cb8d928ef098ee197 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -1,7 +1,32 @@
-Copyright: 2012 Linden Research, Inc.
+Second Life Viewer Copyright: 2000-2012 Linden Research, Inc.
 
 License:
 
-No license to distribute, copy, modify, or make derivitave works of this
-software is granted unless specifically granted in writing by Linden Research,
-Inc.
+3Dconnexion SDK Copyright (C) 1992-2009 3Dconnexion
+APR Copyright (C) 2011 The Apache Software Foundation
+Collada DOM Copyright 2006 Sony Computer Entertainment Inc.
+cURL Copyright (C) 1996-2010, Daniel Stenberg, (daniel@haxx.se)
+DBus/dbus-glib Copyright (C) 2002, 2003  CodeFactory AB / Copyright (C) 2003, 2004 Red Hat, Inc.
+expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd.
+FreeType Copyright (C) 1996-2002, 2006 David Turner, Robert Wilhelm, and Werner Lemberg.
+GL Copyright (C) 1999-2004 Brian Paul.
+GLOD Copyright (C) 2003-04 Jonathan Cohen, Nat Duca, Chris Niski, Johns Hopkins University and David Luebke, Brenden Schubert, University of Virginia.
+google-perftools Copyright (c) 2005, Google Inc.
+Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
+jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW)
+jpeglib Copyright (C) 1991-1998, Thomas G. Lane.
+ogg/vorbis Copyright (C) 2002, Xiphophorus
+OpenSSL Copyright (C) 1998-2008 The OpenSSL Project.
+PCRE Copyright (c) 1997-2012 University of Cambridge
+SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga
+SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+xmlrpc-epi Copyright (C) 2000 Epinions, Inc.
+zlib Copyright (C) 1995-2012 Jean-loup Gailly and Mark Adler.
+
+Second Life Viewer uses Havok (TM) Physics. (c)Copyright 1999-2010 Havok.com Inc. (and its Licensors). All Rights Reserved. See www.havok.com for details.
+
+This software contains source code provided by NVIDIA Corporation.
+
+All rights reserved.  See licenses.txt for details.
+
+Voice chat Audio coding: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)
diff --git a/debian/rules b/debian/rules
index 10301bf7d3233ae72d9687be42b02d3188323e33..305fc58bb401b7ca74dbcabb111b80ea4f925530 100755
--- a/debian/rules
+++ b/debian/rules
@@ -17,12 +17,6 @@ VIEWER_DESTDIR=$(CURDIR)/debian/$(VIEWER_PKG)
 VIEWER_VERSION:=$(shell dpkg-parsechangelog | grep ^Version | sed 's/^Version: //')
 VIEWER_INSTALLDIR:=$(BASEDIR)/viewer/SecondLife-i686-$(VIEWER_VERSION)
 
-UTILITY_PKG=secondlife-appearance-utility
-UTILITY_SRCDIR=indra/appearance_utility
-UTILITY_PACKAGEDIR=build-linux-i686/appearance_utility
-UTILITY_DESTDIR=$(CURDIR)/debian/$(UTILITY_PKG)
-UTILITY_INSTALLDIR:=$(BASEDIR)/utilities
-
 configure: configure-stamp
 configure-stamp:
 	dh_testdir
@@ -77,43 +71,6 @@ install: build
 	dh_link -p $(VIEWER_PKG) /$(VIEWER_INSTALLDIR)/secondlife /usr/bin/secondlife
 	dh_link -p $(VIEWER_PKG) $(BASEDIR)/viewer/SecondLife-i686-$(VIEWER_VERSION) $(BASEDIR)/viewer/SecondLife
 
-	# Add here commands to install the package into debian/secondlife-appearance-utility
-	# create containing directory
-	install -v -m 755 -o root -g root -d "$(UTILITY_DESTDIR)/$(UTILITY_INSTALLDIR)"
-	# install utility wrapper
-	install -v -m 755 -o root -g root "$(UTILITY_SRCDIR)/wrapper.sh" "$(UTILITY_DESTDIR)/$(UTILITY_INSTALLDIR)/wrapper.sh"
-	# install appearance-utility
-	install -v -m 755 -o root -g root "$(UTILITY_PACKAGEDIR)/appearance-utility-bin" "$(UTILITY_DESTDIR)/$(UTILITY_INSTALLDIR)/appearance-utility-bin"
-	dh_link -p $(UTILITY_PKG) $(UTILITY_INSTALLDIR)/wrapper.sh $(UTILITY_INSTALLDIR)/appearance-utility
-	# install xml/image resources from viewer package
-	for file in $$(find $(VIEWER_PACKAGEDIR)/character -name "avatar_*.xml" -o -name "*.tga" | sed 's~$(VIEWER_PACKAGEDIR)/~~'); do \
-		# create containing directory \
-		install -v -m 755 -o root -g root -d "$$(dirname "$(UTILITY_DESTDIR)/$(UTILITY_INSTALLDIR)/$$file")"; \
-		PERM=644; \
-		if [ -x "$(VIEWER_PACKAGEDIR)/$$file" ]; then \
-			PERM=755; \
-		fi; \
-		install -v -m $$PERM -o root -g root "$(VIEWER_PACKAGEDIR)/$$file" "$(UTILITY_DESTDIR)/$(UTILITY_INSTALLDIR)/$$file"; \
-	done
-	# install viewer libraries
-	for file in $$(find $(VIEWER_PACKAGEDIR)/lib -type f -o -type l | sed 's~$(VIEWER_PACKAGEDIR)/~~'); do \
-		# create containing directory \
-		install -v -m 755 -o root -g root -d "$$(dirname "$(UTILITY_DESTDIR)/$(UTILITY_INSTALLDIR)/$$file")"; \
-		PERM=644; \
-		if [ -x "$(VIEWER_PACKAGEDIR)/$$file" ]; then \
-			PERM=755; \
-		fi; \
-		if [ -L "$(VIEWER_PACKAGEDIR)/$$file" ]; then \
-			REAL="$$( readlink -f $(VIEWER_PACKAGEDIR)/$$file )"; \
-			RELATIVE="$$( echo $$REAL | sed 's~$(CURDIR)/$(VIEWER_PACKAGEDIR)/~~' )"; \
-			echo dh_link -p $(UTILITY_PKG) "$(UTILITY_INSTALLDIR)/$$RELATIVE" "$(UTILITY_INSTALLDIR)/$$file" ; \
-			dh_link -p $(UTILITY_PKG) "$(UTILITY_INSTALLDIR)/$$RELATIVE" "$(UTILITY_INSTALLDIR)/$$file" ; \
-		else \
-			install -v -m $$PERM -o root -g root "$(VIEWER_PACKAGEDIR)/$$file" "$(UTILITY_DESTDIR)/$(UTILITY_INSTALLDIR)/$$file"; \
-		fi; \
-	done
-	dh_link -p $(UTILITY_PKG) /$(UTILITY_INSTALLDIR)/appearance-utility /usr/bin/appearance-utility
-
 
 # Build architecture-independent files here.
 binary-indep: build install
diff --git a/debian/secondlife-appearance-utility.substvars b/debian/secondlife-appearance-utility.substvars
deleted file mode 100644
index abd3ebebc30de133ecc51d80b32908bd4a077b9a..0000000000000000000000000000000000000000
--- a/debian/secondlife-appearance-utility.substvars
+++ /dev/null
@@ -1 +0,0 @@
-misc:Depends=
diff --git a/indra/CMakeLists.txt b/indra/CMakeLists.txt
index 4e209ff75af5208c1935bd5901ee708fd26036e6..f5ed9632fab5653f931b41a3b3be5716c989dc93 100644
--- a/indra/CMakeLists.txt
+++ b/indra/CMakeLists.txt
@@ -83,7 +83,10 @@ if (VIEWER)
   if (LINUX)
     add_subdirectory(${VIEWER_PREFIX}linux_crash_logger)
     add_subdirectory(${VIEWER_PREFIX}linux_updater)
-    add_subdirectory(${VIEWER_PREFIX}appearance_utility)
+    if (INSTALL_PROPRIETARY)
+        include(LLAppearanceUtility)
+        add_subdirectory(${LLAPPEARANCEUTILITY_SRC_DIR} ${LLAPPEARANCEUTILITY_BIN_DIR})
+    endif (INSTALL_PROPRIETARY)
     add_dependencies(viewer linux-crash-logger-strip-target linux-updater)
   elseif (DARWIN)
     add_subdirectory(${VIEWER_PREFIX}mac_crash_logger)
diff --git a/indra/appearance_utility/CMakeLists.txt b/indra/appearance_utility/CMakeLists.txt
deleted file mode 100644
index 92898fa48bfa707a422c21c093faa09ec6f70980..0000000000000000000000000000000000000000
--- a/indra/appearance_utility/CMakeLists.txt
+++ /dev/null
@@ -1,66 +0,0 @@
-# -*- cmake -*-
-
-project(appearance_utility)
-
-include(00-Common)
-include(LLAppearance)
-include(LLCharacter)
-include(LLCommon)
-include(LLImage)
-include(LLInventory)
-include(LLMath)
-include(LLRender)
-include(LLVFS)
-include(LLXML)
-include(Linking)
-include(GooglePerfTools)
-
-include_directories(
-    ${LLCOMMON_INCLUDE_DIRS}
-    ${LLVFS_INCLUDE_DIRS}
-    ${LLXML_INCLUDE_DIRS}
-    ${LLCHARACTER_INCLUDE_DIRS}
-    ${LLIMAGE_INCLUDE_DIRS}
-    ${LLMATH_INCLUDE_DIRS}
-    ${LLINVENTORY_INCLUDE_DIRS}
-    ${LLRENDER_INCLUDE_DIRS}
-    ${LLAPPEARANCE_INCLUDE_DIRS}
-    )
-
-set(appearance_utility_SOURCE_FILES
-    appearance_utility.cpp
-    llappappearanceutility.cpp
-    llbakingavatar.cpp
-    llbakingjoint.cpp
-    llbakingjointmesh.cpp
-    llbakingshadermgr.cpp
-    llbakingtexlayer.cpp
-    llprocessparams.cpp
-    )
-
-set(appearance_utility_HEADER_FILES
-    CMakeLists.txt
-    llappappearanceutility.h
-    llbakingavatar.h
-    llbakingjoint.h
-    llbakingjointmesh.h
-    llbakingprocess.h
-    llbakingshadermgr.h
-    llbakingtexlayer.h
-    llprocessparams.h
-    )
-
-set_source_files_properties(${appearance_utility_HEADER_FILES}
-                            PROPERTIES HEADER_FILES_ONLY TRUE)
-
-list(APPEND appearance_utility_SOURCE_FILES ${appearance_utility_HEADER_FILES})
-
-add_executable(appearance-utility-bin ${appearance_utility_SOURCE_FILES})
-
-target_link_libraries(appearance-utility-bin
-    ${LLAPPEARANCE_LIBRARIES}
-    ${TCMALLOC_LIBRARIES}
-    )
-
-add_custom_target(appearance-utility-bin-target ALL
-                  DEPENDS appearance-utility-bin)
diff --git a/indra/appearance_utility/appearance_utility.cpp b/indra/appearance_utility/appearance_utility.cpp
deleted file mode 100644
index 098c3550dedc70420851613628f6f47c3d3890fb..0000000000000000000000000000000000000000
--- a/indra/appearance_utility/appearance_utility.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
- * @file appearance_utility.cpp
- * @author Don Kjer <don@lindenlab.com>, Nyx Linden
- * @brief Utility for processing avatar appearance without a full viewer implementation.
- *
- * $LicenseInfo:firstyear=2012&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2012, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-// linden includes
-#include "linden_common.h"
-#include "llapr.h"
-
-// project includes
-#include "llappappearanceutility.h"
-
-int main(int argc, char** argv)
-{
-	// Create an application instance.
-	ll_init_apr();
-	LLAppAppearanceUtility* app = new LLAppAppearanceUtility(argc, argv);
-
-	// Assume success, unless exception is thrown.
-	EResult rv = RV_SUCCESS;
-	try
-	{
-		// Process command line and initialize system.
-		if (app->init())
-		{
-			// Run process.
-			app->mainLoop();
-		}
-	}
-	catch (LLAppException& e)
-	{
-		// Deal with errors.
-		rv = e.getStatusCode();
-	}
-
-	// Clean up application instance.
-	app->cleanup();
-	delete app;
-	ll_cleanup_apr();
-
-	return (int) rv;
-}
-
-
diff --git a/indra/appearance_utility/llappappearanceutility.cpp b/indra/appearance_utility/llappappearanceutility.cpp
deleted file mode 100644
index 66e59e1b89a9fa2fe9a9ef4999ae3f2065b71d19..0000000000000000000000000000000000000000
--- a/indra/appearance_utility/llappappearanceutility.cpp
+++ /dev/null
@@ -1,445 +0,0 @@
-/** 
- * @file llappappearanceutility.cpp
- * @brief Implementation of LLAppAppearanceUtility class.
- *
- * $LicenseInfo:firstyear=2012&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2012, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-#include <iostream>
-#include <sstream>
-#include <string>
-
-// linden includes
-#include "linden_common.h"
-
-#include "llapr.h"
-#include "llerrorcontrol.h"
-#include "llsd.h"
-#include "llsdserialize.h"
-#include "llsdutil.h"
-
-// appearance includes
-#include "llavatarappearance.h"
-#include "llwearabletype.h"
-
-// project includes
-#include "llappappearanceutility.h"
-#include "llbakingprocess.h"
-#include "llprocessparams.h"
-
-const std::string NOTHING_EXTRA("");
-
-////////////////////////////////////////////
-// LLAppException
-////////////////////////////////////////////
-
-static const std::string MESSAGE_RV_UNKNOWN("Unknown error.");
-static const std::string MESSAGE_RV_ARGUMENTS 
-("Invalid arguments: ");
-static const std::string MESSAGE_RV_UNABLE_OPEN("Unable to open file: ");
-static const std::string MESSAGE_RV_UNABLE_TO_PARSE("Unable to parse input LLSD.");
-static const std::string MESSAGE_DUPLICATE_MODES = "Cannot specify more than one process mode.";
-
-
-LLAppException::LLAppException(EResult status_code, const std::string& extra) :
-	mStatusCode(status_code)
-{
-	switch(status_code)
-	{
-	case RV_UNKNOWN_ERROR:
-		printErrorLLSD("unknown", MESSAGE_RV_UNKNOWN);
-	case RV_BAD_ARGUMENTS:
-		printErrorLLSD("arguments", MESSAGE_RV_ARGUMENTS + extra);
-		break;
-	case RV_UNABLE_OPEN:
-		printErrorLLSD("file", MESSAGE_RV_UNABLE_OPEN + extra);
-		break;
-	case RV_UNABLE_TO_PARSE:
-		printErrorLLSD("input", MESSAGE_RV_UNABLE_TO_PARSE);
-		break;
-	default:
-		printErrorLLSD("arguments", "Unknown exception.");
-		break;
-	}
-}
-
-void LLAppException::printErrorLLSD(const std::string& key, const std::string& message)
-{
-	LLSD error_llsd;
-	error_llsd["success"] = false;
-	error_llsd["error"]["key"] = key;
-	error_llsd["error"]["message"] = message;
-
-	std::cerr << LLSDOStreamer<LLSDXMLFormatter>(error_llsd);
-}
-
-
-
-////////////////////////////////////////////
-// LLAppAppearanceUtility
-////////////////////////////////////////////
-
-///////// Option Parsing /////////
-
-// Simple usage command.
-class LLProcessUsage : public LLBakingProcess
-{
-public:
-	LLProcessUsage(LLAppAppearanceUtility* app) :
-		LLBakingProcess(app) {}
-	/*virtual*/ void process(LLSD& input, std::ostream& output)
-	{
-		mApp->usage(output);
-	}
-};
-
-
-static const apr_getopt_option_t APPEARANCE_UTILITY_OPTIONS[] =
-{
-	{"params", 'p', 0, "Generate appearance parameters for an agent."},
-	{"output", 'o', 1, "The output file to write to.  Default is stdout"},
-	{"agent-id", 'a', 1, "The agent-id of the user."},
-	//{"grid", 'g', 1, "The grid."},
-	{"help", 'h', 0, "Print the help message."},
-	{0, 0, 0, 0}
-};
-
-void LLAppAppearanceUtility::usage(std::ostream& ostr)
-{
-	ostr << "Utilities for processing agent appearance data."
-		<< std::endl << std::endl
-		<< "Usage:" << std::endl
-		<< "\t" << mAppName << " [options] filename" << std::endl << std::endl
-		<< "Will read from stdin if filename is set to '-'." << std::endl << std::endl
-		<< "Options:" << std::endl;
-	const apr_getopt_option_t* option = &APPEARANCE_UTILITY_OPTIONS[0];
-	while(option->name)
-	{
-		ostr << "\t--" << option->name << "\t\t"
-			<< option->description << std::endl;
-		++option;
-	}
-	ostr << std::endl << "Return Values:" << std::endl
-		<< "\t0\t\tSuccess." << std::endl
-		<< "\t1\t\tUnknown error." << std::endl
-		<< "\t2\t\tBad arguments." << std::endl
-		<< "\t3\t\tUnable to open file. Possibly wrong filename"
-		<< " or bad permissions." << std::endl
-		<< "\t4\t\tUnable to parse input LLSD." << std::endl
-		<< std::endl
-		<< "Output:" << std::endl
-		<< "If a non-zero status code is returned, additional error information"
-		<< " will be returned on stderr." << std::endl
-		<< "* This will be in the form of an LLSD document." << std::endl
-		<< "* Check ['error']['message'] to get a human readable message." << std::endl
-		<< "If a zero status code is returned, processed output will be written"
-		<< " to the file specified by --out (or stdout, if not specified)." << std::endl
-		<< std::endl
-		<< std::endl;
-}
-
-
-/////// LLApp Interface ////////
-
-LLAppAppearanceUtility::LLAppAppearanceUtility(int argc, char** argv) :
-	LLApp(),
-	mArgc(argc),
-	mArgv(argv),
-	mProcess(NULL),
-	mInput(NULL),
-	mOutput(NULL),
-	mAppName(argv[0])
-{
-}
-
-// virtual
-LLAppAppearanceUtility::~LLAppAppearanceUtility()
-{
-}
-
-void LLAppAppearanceUtility::verifyNoProcess()
-{
-	if (mProcess)
-	{
-		std::cerr << "Invalid arguments. " << MESSAGE_DUPLICATE_MODES << std::endl;
-		usage(std::cerr);
-		throw LLAppException(RV_BAD_ARGUMENTS, MESSAGE_DUPLICATE_MODES);
-	}
-}
-
-void LLAppAppearanceUtility::parseArguments()
-{
-	////// BEGIN OPTION PARSING //////
-	// Check for '-' as last option, since apr doesn't seem to like that.
-	if (std::string(mArgv[mArgc-1]) == "-")
-	{
-		mInputFilename.assign("-");
-		mArgc--;
-	}
-
-	apr_status_t apr_err;
-	const char* opt_arg = NULL;
-	int opt_id = 0;
-	apr_getopt_t* os = NULL;
-	if(APR_SUCCESS != apr_getopt_init(&os, gAPRPoolp, mArgc, mArgv))
-	{
-		std::cerr << "Unable to initialize apr" << std::endl;
-		throw LLAppException(RV_UNKNOWN_ERROR);
-	}
-
-	//std::string grid;
-	while(true)
-	{
-		apr_err = apr_getopt_long(os, APPEARANCE_UTILITY_OPTIONS, &opt_id, &opt_arg);
-		if(APR_STATUS_IS_EOF(apr_err)) break;
-		if(apr_err)
-		{
-			char buf[MAX_STRING];		/* Flawfinder: ignore */
-			std::cerr << "Error parsing options: "
-				<< apr_strerror(apr_err, buf, MAX_STRING) << std::endl;
-			usage(std::cerr);
-			throw LLAppException(RV_BAD_ARGUMENTS, buf);
-		}
-		switch (opt_id)
-		{
-		case 'h':
-			verifyNoProcess();
-			mProcess = new LLProcessUsage(this);
-			break;
-		case 'p':
-			verifyNoProcess();
-			mProcess = new LLProcessParams(this);
-			break;
-		case 'o':
-			mOutputFilename.assign(opt_arg);
-			break;
-		case 'a':
-			mAgentID.set(opt_arg);
-			if (mAgentID.isNull())
-			{
-				const char* INVALID_AGENT_ID="agent-id must be a valid uuid.";
-				std::cerr << "Invalid arguments. " << INVALID_AGENT_ID << std::endl;
-				usage(std::cerr);
-				throw LLAppException(RV_BAD_ARGUMENTS, INVALID_AGENT_ID);
-			}
-			break;
-		//case 'g':
-		//	grid = opt_arg;
-		//	break;
-		default:
-			usage(std::cerr);
-			throw LLAppException(RV_BAD_ARGUMENTS, "Unknown option.");
-		}
-	}
-
-	if ("-" != mInputFilename)
-	{
-		bool valid_input_filename = false;
-		// Try to grab the input filename.
-		if (os->argv && os->argv[os->ind])
-		{
-			mInputFilename.assign(os->argv[os->ind]);
-			if (! mInputFilename.empty() )
-			{
-				valid_input_filename = true;
-			}
-		}
-		if (!valid_input_filename)
-		{
-			const char* INVALID_FILENAME="Must specify input file.";
-			std::cerr << "Invalid arguments. " << INVALID_FILENAME << std::endl;
-			usage(std::cerr);
-			throw LLAppException(RV_BAD_ARGUMENTS, INVALID_FILENAME);
-		}
-	}
-
-	////// END OPTION PARSING //////
-}
-
-void LLAppAppearanceUtility::validateArguments()
-{
-	/////  BEGIN ARGUMENT VALIDATION /////
-
-	// Make sure we have a command specified.
-	if (!mProcess)
-	{
-		const char* INVALID_MODE="No process mode specified.";
-		std::cerr << "Invalid arguments. " << INVALID_MODE
-				  << std::endl;
-		usage(std::cerr);
-		throw LLAppException(RV_BAD_ARGUMENTS, INVALID_MODE);
-	}
-
-	/////  END ARGUMENT VALIDATION /////
-}
-
-void LLAppAppearanceUtility::initializeIO()
-{
-	/////  BEGIN OPEN INPUT FILE ////
-
-	if ( "-" == mInputFilename )
-	{
-		// Read unformated data from stdin in to memory.
-		std::stringstream* data = new std::stringstream();
-		const S32 BUFFER_SIZE = BUFSIZ;
-		char buffer[BUFFER_SIZE];
-		while (true)
-		{
-			std::cin.read(buffer, BUFFER_SIZE);
-			// Check if anything out of the ordinary happened.
-			if (!std::cin)
-			{
-				// See if something 'really bad' happened, or if we just
-				// used up all of our buffer.
-				if (std::cin.bad())
-				{
-					std::cerr << "Problem reading standard input." << std::endl;
-					delete data;
-					throw (RV_UNKNOWN_ERROR);
-				}
-				else
-				{
-					// Output normally.
-					data->write(buffer, std::cin.gcount());
-					if (std::cin.eof()) break;
-
-					// Clear this problem.  We have handled it.
-					std::cin.clear();
-				}
-			}
-			else
-			{
-				data->write(buffer, std::cin.gcount());
-				if (std::cin.eof()) break;
-			}
-		}
-		mInput = data;
-	}
-	else
-	{
-		// Make sure we can open the input file.
-		std::ifstream* input_file = new std::ifstream();
-		input_file->open( mInputFilename.c_str(), std::fstream::in );
-		if ( input_file->fail())
-		{
-			std::cerr << "Couldn't open input file '" << mInputFilename << "'." << std::endl;
-			delete input_file;
-			throw LLAppException(RV_UNABLE_OPEN, mInputFilename);
-		}
-		mInput = input_file;
-	}
-	/////  END OPEN INPUT FILE ////
-
-	/////  BEGIN OPEN OUTPUT FILE ////
-
-	if ("" == mOutputFilename)
-	{
-		mOutput = &std::cout;
-	}
-	else
-	{
-		// Make sure we can open the output file.
-		std::fstream* output_file = new std::fstream();
-		output_file->open( mOutputFilename.c_str(), std::fstream::out );
-		if ( output_file->fail() )
-		{
-			std::cerr << "Couldn't open output file '" << mOutputFilename << "'." << std::endl;
-			delete output_file;
-			throw LLAppException(RV_UNABLE_OPEN, mOutputFilename);
-		}
-		mOutput = output_file;
-	}
-	/////  END OPEN OUTPUT FILE ////
-
-	/////  BEGIN INPUT PARSING ////
-	LLSDSerialize::fromXML( mInputData, *mInput );
-	if (mInputData.isUndefined())
-	{
-		throw LLAppException(RV_UNABLE_TO_PARSE);
-	}
-	/////  END INPUT PARSING ////
-}
-
-class LLPassthroughTranslationBridge : public LLTranslationBridge
-{
-public:
-	virtual std::string getString(const std::string &xml_desc)
-	{
-		// Just pass back the input string.
-		return xml_desc;
-	}
-};
-
-
-bool LLAppAppearanceUtility::init()
-{
-	parseArguments();
-
-	bool log_to_stderr = true;
-	LLError::initForApplication("", log_to_stderr);
-	// *TODO: Add debug mode(s).  Skip this in debug mode.
-	LLError::setDefaultLevel(LLError::LEVEL_WARN);
-
-	validateArguments();
-	initializeIO();
-
-	// Initialize classes.
-	LLWearableType::initClass(new LLPassthroughTranslationBridge());
-
-	// *TODO: Create a texture bridge?
-	LLAvatarAppearance::initClass();
-
-	return true;
-}
-
-bool LLAppAppearanceUtility::cleanup()
-{
-	LLAvatarAppearance::cleanupClass();
-	LLWearableType::cleanupClass();
-
-	if (mProcess)
-	{
-		delete mProcess;
-		mProcess = NULL;
-	}
-	if ("-" != mInputFilename && mInput)
-	{
-		static_cast<std::ifstream*>(mInput)->close();
-	}
-	if ("" != mOutputFilename && mOutput)
-	{
-		static_cast<std::ofstream*>(mOutput)->close();
-		delete mOutput;
-		mOutput = NULL;
-	}
-	delete mInput;
-	mInput = NULL;
-	return true;
-}
-
-bool LLAppAppearanceUtility::mainLoop()
-{
-	// This isn't really a loop, for this application.  We just execute the requested command.
-	mProcess->process(mInputData, *mOutput);
-	return true;
-}
-
diff --git a/indra/appearance_utility/llappappearanceutility.h b/indra/appearance_utility/llappappearanceutility.h
deleted file mode 100644
index 2a5b8232ebc0c57a8dd0bc30d92ea4494caf1f9f..0000000000000000000000000000000000000000
--- a/indra/appearance_utility/llappappearanceutility.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/** 
- * @file llappappearanceutility.h
- * @brief Declaration of LLAppAppearanceUtility class.
- *
- * $LicenseInfo:firstyear=2012&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2012, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-#ifndef LL_LLAPPAPPEARANCEUTILITY_H
-#define LL_LLAPPAPPEARANCEUTILITY_H
-
-#include <exception>
-
-#include "llapp.h"
-
-enum EResult
-{
-	RV_SUCCESS = 0,
-	RV_UNKNOWN_ERROR,
-	RV_BAD_ARGUMENTS,
-	RV_UNABLE_OPEN,
-	RV_UNABLE_TO_PARSE,
-};
-
-extern const std::string NOTHING_EXTRA;
-
-class LLAppAppearanceUtility;
-class LLBakingProcess;
-
-// Translate error status into error messages.
-class LLAppException : public std::exception
-{
-public:
-	LLAppException(EResult status_code, const std::string& extra = NOTHING_EXTRA);
-	EResult getStatusCode() { return mStatusCode; }
-
-private:
-	void printErrorLLSD(const std::string& key, const std::string& message);
-	EResult mStatusCode;
-};
-
-
-class LLAppAppearanceUtility : public LLApp
-{
-public:
-	LLAppAppearanceUtility(int argc, char** argv);
-	virtual ~LLAppAppearanceUtility();
-
-	// LLApp interface.
-	/*virtual*/ bool init();
-	/*virtual*/ bool cleanup();
-	/*virtual*/ bool mainLoop();
-
-private:
-	// Option parsing.
-	void verifyNoProcess();
-	void parseArguments();
-	void validateArguments();
-	void initializeIO();
-public:
-	void usage(std::ostream& ostr);
-
-
-private:
-	int mArgc;
-	char** mArgv;
-	LLBakingProcess* mProcess;
-	std::istream* mInput;
-	std::ostream* mOutput;
-	std::string mAppName;
-	std::string mInputFilename;
-	std::string mOutputFilename;
-	LLUUID mAgentID;
-	LLSD mInputData;
-};
-
-
-#endif /* LL_LLAPPAPPEARANCEUTILITY_H */
-
diff --git a/indra/appearance_utility/llbakingavatar.cpp b/indra/appearance_utility/llbakingavatar.cpp
deleted file mode 100644
index 0424e8134b9766fe7c3041bac90155b840d558e2..0000000000000000000000000000000000000000
--- a/indra/appearance_utility/llbakingavatar.cpp
+++ /dev/null
@@ -1,159 +0,0 @@
-/** 
- * @File llbakingavatar.cpp
- * @brief Implementation of LLBakingAvatar class which is a derivation of LLAvatarAppearance
- *
- * $LicenseInfo:firstyear=2012&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2012, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-// linden includes
-#include "linden_common.h"
-#include "v3dmath.h"
-
-// project includes
-#include "llbakingavatar.h"
-#include "llbakingjoint.h"
-#include "llbakingjointmesh.h"
-#include "llbakingtexlayer.h"
-
-LLBakingAvatar::LLBakingAvatar(LLWearableData* wearable_data) :
-	LLAvatarAppearance(wearable_data)
-{
-}
-
-// virtual
-LLBakingAvatar::~LLBakingAvatar()
-{
-}
-
-//-----------------------------------------------------------------------------
-// Implemented methods
-//-----------------------------------------------------------------------------
-
-LLAvatarJoint* LLBakingAvatar::createAvatarJoint()
-{
-	return new LLBakingJoint();
-}
-
-LLAvatarJoint* LLBakingAvatar::createAvatarJoint(S32 joint_num)
-{
-	return new LLBakingJoint(joint_num);
-}
-
-LLAvatarJointMesh* LLBakingAvatar::createAvatarJointMesh()
-{
-	return new LLBakingJointMesh();
-}
-
-LLTexLayerSet* LLBakingAvatar::createTexLayerSet()
-{
-	return new LLBakingTexLayerSet(this);
-}
-
-//-----------------------------------------------------------------------------
-// (Ignored) Non-implemented methods.
-//-----------------------------------------------------------------------------
-
-void LLBakingAvatar::bodySizeChanged() {}
-void LLBakingAvatar::applyMorphMask(U8* tex_data, S32 width, S32 height, S32 num_components,
-		LLAvatarAppearanceDefines::EBakedTextureIndex index) {}
-void LLBakingAvatar::invalidateComposite(LLTexLayerSet* layerset, BOOL upload_result) {}
-void LLBakingAvatar::updateMeshTextures() {}
-void LLBakingAvatar::dirtyMesh() {}
-void LLBakingAvatar::dirtyMesh(S32 priority) {}
-void LLBakingAvatar::onGlobalColorChanged(const LLTexGlobalColor* global_color, BOOL upload_bake) {}
-
-BOOL LLBakingAvatar::isTextureDefined(LLAvatarAppearanceDefines::ETextureIndex type, U32 index) const
-{
-	return TRUE;
-}
-
-
-//-----------------------------------------------------------------------------
-// (LLERR) Non-implemented methods.
-//-----------------------------------------------------------------------------
-
-LLVector3 LLBakingAvatar::getCharacterPosition()
-{
-	LL_ERRS("AppearanceUtility") << "Not implemented." << LL_ENDL;
-	return LLVector3::zero;
-}
-
-LLQuaternion LLBakingAvatar::getCharacterRotation()
-{
-	LL_ERRS("AppearanceUtility") << "Not implemented." << LL_ENDL;
-	return LLQuaternion::DEFAULT;
-}
-
-LLVector3 LLBakingAvatar::getCharacterVelocity()
-{
-	LL_ERRS("AppearanceUtility") << "Not implemented." << LL_ENDL;
-	return LLVector3::zero;
-}
-
-LLVector3 LLBakingAvatar::getCharacterAngularVelocity()
-{
-	LL_ERRS("AppearanceUtility") << "Not implemented." << LL_ENDL;
-	return LLVector3::zero;
-}
-
-const LLUUID& LLBakingAvatar::getID() const
-{
-	LL_ERRS("AppearanceUtility") << "Not implemented." << LL_ENDL;
-	return LLUUID::null;
-}
-
-void LLBakingAvatar::addDebugText(const std::string& text)
-{
-	LL_ERRS("AppearanceUtility") << "Not implemented." << LL_ENDL;
-}
-
-F32 LLBakingAvatar::getTimeDilation()
-{
-	LL_ERRS("AppearanceUtility") << "Not implemented." << LL_ENDL;
-	return 0.0f;
-}
-
-void LLBakingAvatar::getGround(const LLVector3 &inPos, LLVector3 &outPos, LLVector3 &outNorm)
-{
-	LL_ERRS("AppearanceUtility") << "Not implemented." << LL_ENDL;
-}
-
-F32 LLBakingAvatar::getPixelArea() const
-{
-	LL_ERRS("AppearanceUtility") << "Not implemented." << LL_ENDL;
-	return 0.0f;
-}
-
-LLVector3d LLBakingAvatar::getPosGlobalFromAgent(const LLVector3 &position)
-{
-	LL_ERRS("AppearanceUtility") << "Not implemented." << LL_ENDL;
-	return LLVector3d::zero;
-}
-
-LLVector3 LLBakingAvatar::getPosAgentFromGlobal(const LLVector3d &position)
-{
-	LL_ERRS("AppearanceUtility") << "Not implemented." << LL_ENDL;
-	return LLVector3::zero;
-}
-
-
-
diff --git a/indra/appearance_utility/llbakingavatar.h b/indra/appearance_utility/llbakingavatar.h
deleted file mode 100644
index 7f20d316749c91a13cc8b86c0561aa59820ce8f4..0000000000000000000000000000000000000000
--- a/indra/appearance_utility/llbakingavatar.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/**
- * @file llbakingavatar.h
- * @brief Declaration of LLBakingAvatar class which is a derivation of LLAvatarAppearance
- *
- * $LicenseInfo:firstyear=2012&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2012, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-#ifndef LL_LLBAKINGAVATAR_H
-#define LL_LLBAKINGAVATAR_H
-
-#include "llavatarappearance.h"
-
-class LLBakingAvatar : public LLAvatarAppearance
-{
-	LOG_CLASS(LLBakingAvatar);
-
-/********************************************************************************
- **                                                                            **
- **                    INITIALIZATION
- **/
-public:
-	void* operator new(size_t size)
-	{
-		return ll_aligned_malloc_16(size);
-	}
-
-	void operator delete(void* ptr)
-	{
-		ll_aligned_free_16(ptr);
-	}
-
-	LLBakingAvatar(LLWearableData* wearable_data);
-	virtual ~LLBakingAvatar();
-
-	static void initClass(); // initializes static members
-
-/**                    Initialization
- **                                                                            **
- *******************************************************************************/
-
-/********************************************************************************
- **                                                                            **
- **                    INHERITED
- **/
-
-	//--------------------------------------------------------------------
-	// LLCharacter interface
-	//--------------------------------------------------------------------
-public:
-	/*virtual*/ LLVector3    	getCharacterPosition();
-	/*virtual*/ LLQuaternion 	getCharacterRotation();
-	/*virtual*/ LLVector3    	getCharacterVelocity();
-	/*virtual*/ LLVector3    	getCharacterAngularVelocity();
-
-	/*virtual*/ const LLUUID&	getID() const;
-	/*virtual*/ void			addDebugText(const std::string& text);
-	/*virtual*/ F32				getTimeDilation();
-	/*virtual*/ void			getGround(const LLVector3 &inPos, LLVector3 &outPos, LLVector3 &outNorm);
-	/*virtual*/ F32				getPixelArea() const;
-	/*virtual*/ LLVector3d		getPosGlobalFromAgent(const LLVector3 &position);
-	/*virtual*/ LLVector3		getPosAgentFromGlobal(const LLVector3d &position);
-
-	//--------------------------------------------------------------------
-	// LLAvatarAppearance interface
-	//--------------------------------------------------------------------
-public:
-	/*virtual*/ void	bodySizeChanged();
-	/*virtual*/ void	applyMorphMask(U8* tex_data, S32 width, S32 height, S32 num_components,
-							LLAvatarAppearanceDefines::EBakedTextureIndex index);
-	/*virtual*/ void	invalidateComposite(LLTexLayerSet* layerset, BOOL upload_result);
-	/*virtual*/ void 	updateMeshTextures();
-	/*virtual*/ void	dirtyMesh(); // Dirty the avatar mesh
-	/*virtual*/ void	onGlobalColorChanged(const LLTexGlobalColor* global_color, BOOL upload_bake);
-	/*virtual*/ BOOL	isTextureDefined(LLAvatarAppearanceDefines::ETextureIndex type, U32 index = 0) const;
-private:
-	/*virtual*/ void	dirtyMesh(S32 priority); // Dirty the avatar mesh, with priority
-
-	// LLAvatarAppearance instance factories:
-protected:
-	/*virtual*/ LLAvatarJoint*	createAvatarJoint();
-	/*virtual*/ LLAvatarJoint*	createAvatarJoint(S32 joint_num);
-	/*virtual*/ LLAvatarJointMesh*	createAvatarJointMesh();
-	/*virtual*/ LLTexLayerSet*	createTexLayerSet();
-
-
-/**                    Inherited
- **                                                                            **
- *******************************************************************************/
-
-/********************************************************************************
- **                                                                            **
- **                    STATE
- **/
-public:
-	/*virtual*/ bool 	isSelf() const { return true; }
-	/*virtual*/ BOOL	isValid() const { return TRUE; }
-	/*virtual*/ BOOL	isUsingBakedTextures() const { return TRUE; }
-
-/**                    State
- **                                                                            **
- *******************************************************************************/
-
-};
-
-#endif /* LL_LLBAKINGAVATAR_H */
-
diff --git a/indra/appearance_utility/llbakingjoint.cpp b/indra/appearance_utility/llbakingjoint.cpp
deleted file mode 100644
index 96f7b686b2ceb1a70baad939cf201dbd04067a35..0000000000000000000000000000000000000000
--- a/indra/appearance_utility/llbakingjoint.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-/** 
- * @file llbakingjoint.cpp
- * @brief Implementation of LLBakingJoint class
- *
- * $LicenseInfo:firstyear=2012&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2012, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-
-#include "linden_common.h"
-
-#include "llbakingjoint.h"
-
-
-LLBakingJoint::LLBakingJoint() :
-	LLAvatarJoint()
-{
-}
-
-LLBakingJoint::LLBakingJoint(S32 joint_num) :
-	LLAvatarJoint(joint_num)
-{
-}
-
-// virtual
-LLBakingJoint::~LLBakingJoint()
-{
-}
-
-// virtual
-U32 LLBakingJoint::render( F32 pixelArea, BOOL first_pass, BOOL is_dummy)
-{
-	llerrs << "LLBakingJoint::render() should never be called!" << llendl;
-	return 0;
-}
-
diff --git a/indra/appearance_utility/llbakingjoint.h b/indra/appearance_utility/llbakingjoint.h
deleted file mode 100644
index 5247eb7510aa7ff7af2b59f4d15a892d0ca7ace8..0000000000000000000000000000000000000000
--- a/indra/appearance_utility/llbakingjoint.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/** 
- * @file llbakingjoint.h
- * @brief Implementation of LLBakingJoint class
- *
- * $LicenseInfo:firstyear=2012&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2012, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-#ifndef LL_LLBAKINGJOINT_H
-#define LL_LLBAKINGJOINT_H
-
-#include "llavatarjoint.h"
-
-class LLBakingJoint : public virtual LLAvatarJoint
-{
-public:
-	LLBakingJoint();
-	LLBakingJoint(S32 joint_num);
-	virtual ~LLBakingJoint();
-
-	// LLViewerJoint interface
-	virtual U32 render( F32 pixelArea, BOOL first_pass = TRUE, BOOL is_dummy = FALSE );
-};
-
-#endif /* LL_LLBAKINGJOINT_H */
-
diff --git a/indra/appearance_utility/llbakingjointmesh.cpp b/indra/appearance_utility/llbakingjointmesh.cpp
deleted file mode 100644
index 877317deb8599f38d78157f673f2c53df0df2b03..0000000000000000000000000000000000000000
--- a/indra/appearance_utility/llbakingjointmesh.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/** 
- * @file llbakingjointmesh.cpp
- * @brief Implementation of LLBakingJointMesh class
- *
- * $LicenseInfo:firstyear=2012&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2012, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-
-#include "linden_common.h"
-
-#include "llbakingjointmesh.h"
-
-
-LLBakingJointMesh::LLBakingJointMesh() :
-	LLAvatarJointMesh()
-{
-}
-
-// virtual
-LLBakingJointMesh::~LLBakingJointMesh()
-{
-}
-
-
diff --git a/indra/appearance_utility/llbakingjointmesh.h b/indra/appearance_utility/llbakingjointmesh.h
deleted file mode 100644
index 6252f6cee33da13243504db06dd1fcdb795a4c50..0000000000000000000000000000000000000000
--- a/indra/appearance_utility/llbakingjointmesh.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/** 
- * @file llbakingjoint.h
- * @brief Implementation of LLBakingJointMesh class
- *
- * $LicenseInfo:firstyear=2012&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2012, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-#ifndef LL_LLBAKINGJOINTMESH_H
-#define LL_LLBAKINGJOINTMESH_H
-
-#include "llavatarjointmesh.h"
-#include "llbakingjoint.h"
-
-class LLBakingJointMesh : public LLAvatarJointMesh, public LLBakingJoint
-{
-public:
-	LLBakingJointMesh();
-	LLBakingJointMesh(S32 joint_num);
-	virtual ~LLBakingJointMesh();
-
-};
-
-#endif /* LL_LLBAKINGJOINTMESH_H */
-
diff --git a/indra/appearance_utility/llbakingprocess.h b/indra/appearance_utility/llbakingprocess.h
deleted file mode 100644
index a32eae64431f01c120d9cceb25e4a7d11c2e6e0a..0000000000000000000000000000000000000000
--- a/indra/appearance_utility/llbakingprocess.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/** 
- * @file llbakingprocess.h
- * @brief Declaration of LLBakingProcess interface.
- *
- * $LicenseInfo:firstyear=2012&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2012, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-#ifndef LL_LLBAKINGPROCESS_H
-#define LL_LLBAKINGPROCESS_H
-
-#include <ostream>
-
-class LLAppAppearanceUtility;
-class LLSD;
-
-// Simple wrapper for various process modes.
-class LLBakingProcess
-{
-private:
-	// Hide default constructor.
-	LLBakingProcess() {}
-public:
-	LLBakingProcess(LLAppAppearanceUtility* app) :
-		mApp(app) {}
-	virtual ~LLBakingProcess() {}
-
-	//virtual std::string getProcessName() const = 0;
-	virtual void process(LLSD& input, std::ostream& output) = 0;
-
-protected:
-	LLAppAppearanceUtility* mApp;
-};
-
-
-#endif /* LL_LLBAKINGPROCESS_H */
-
diff --git a/indra/appearance_utility/llbakingshadermgr.cpp b/indra/appearance_utility/llbakingshadermgr.cpp
deleted file mode 100644
index a858fc760fa3617ce0e7334270a8c78750e1e0c8..0000000000000000000000000000000000000000
--- a/indra/appearance_utility/llbakingshadermgr.cpp
+++ /dev/null
@@ -1,226 +0,0 @@
-
-/** 
- * @file LLBakingShaderMgr.cpp
- * @brief Viewer shader manager implementation.
- *
- * $LicenseInfo:firstyear=2005&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-
-#include "linden_common.h"
-
-#include "llbakingshadermgr.h"
-
-#include "lldir.h"
-#include "llfile.h"
-#include "llrender.h"
-#include "llvertexbuffer.h"
-
-#if LL_DARWIN
-#include "OpenGL/OpenGL.h"
-#endif
-
-#ifdef LL_RELEASE_FOR_DOWNLOAD
-#define UNIFORM_ERRS LL_WARNS_ONCE("Shader")
-#else
-#define UNIFORM_ERRS LL_ERRS("Shader")
-#endif
-
-// Lots of STL stuff in here, using namespace std to keep things more readable
-using std::vector;
-using std::pair;
-using std::make_pair;
-using std::string;
-
-BOOL				LLBakingShaderMgr::sInitialized = FALSE;
-bool				LLBakingShaderMgr::sSkipReload = false;
-
-//utility shaders
-LLGLSLShader	gAlphaMaskProgram;
-
-
-LLBakingShaderMgr::LLBakingShaderMgr() :
-	mVertexShaderLevel(SHADER_COUNT, 0),
-	mMaxAvatarShaderLevel(0)
-{	
-}
-
-LLBakingShaderMgr::~LLBakingShaderMgr()
-{
-	mVertexShaderLevel.clear();
-	mShaderList.clear();
-}
-
-// static
-LLBakingShaderMgr * LLBakingShaderMgr::instance()
-{
-	if(NULL == sInstance)
-	{
-		sInstance = new LLBakingShaderMgr();
-	}
-
-	return static_cast<LLBakingShaderMgr*>(sInstance);
-}
-
-void LLBakingShaderMgr::initAttribsAndUniforms(void)
-{
-	if (mReservedAttribs.empty())
-	{
-		LLShaderMgr::initAttribsAndUniforms();
-	}	
-}
-	
-
-//============================================================================
-// Set Levels
-
-S32 LLBakingShaderMgr::getVertexShaderLevel(S32 type)
-{
-	return mVertexShaderLevel[type];
-}
-
-//============================================================================
-// Shader Management
-
-void LLBakingShaderMgr::setShaders()
-{
-	//setShaders might be called redundantly by gSavedSettings, so return on reentrance
-	static bool reentrance = false;
-	
-	if (!sInitialized || reentrance || sSkipReload)
-	{
-		return;
-	}
-
-	LLGLSLShader::sIndexedTextureChannels = llmax(gGLManager.mNumTextureImageUnits, 1);
-
-	//NEVER use more than 16 texture channels (work around for prevalent driver bug)
-	LLGLSLShader::sIndexedTextureChannels = llmin(LLGLSLShader::sIndexedTextureChannels, 16);
-
-	if (gGLManager.mGLSLVersionMajor < 1 ||
-		(gGLManager.mGLSLVersionMajor == 1 && gGLManager.mGLSLVersionMinor <= 20))
-	{ //NEVER use indexed texture rendering when GLSL version is 1.20 or earlier
-		LLGLSLShader::sIndexedTextureChannels = 1;
-	}
-
-	reentrance = true;
-
-	//setup preprocessor definitions
-	LLShaderMgr::instance()->mDefinitions["NUM_TEX_UNITS"] = llformat("%d", gGLManager.mNumTextureImageUnits);
-	
-	// Make sure the compiled shader map is cleared before we recompile shaders.
-	mShaderObjects.clear();
-	
-	initAttribsAndUniforms();
-
-	// Shaders
-	LL_INFOS("ShaderLoading") << "\n~~~~~~~~~~~~~~~~~~\n Loading Shaders:\n~~~~~~~~~~~~~~~~~~" << LL_ENDL;
-	LL_INFOS("ShaderLoading") << llformat("Using GLSL %d.%d", gGLManager.mGLSLVersionMajor, gGLManager.mGLSLVersionMinor) << llendl;
-
-	for (S32 i = 0; i < SHADER_COUNT; i++)
-	{
-		mVertexShaderLevel[i] = 0;
-	}
-	mMaxAvatarShaderLevel = 0;
-
-	LLGLSLShader::sNoFixedFunction = false;
-	LLVertexBuffer::unbind();
-	if (gGLManager.mGLSLVersionMajor > 1 || gGLManager.mGLSLVersionMinor >= 10)
-	{
-		//using shaders, disable fixed function
-		LLGLSLShader::sNoFixedFunction = true;
-
-		//gPipeline.mVertexShadersEnabled = TRUE;
-		//gPipeline.mVertexShadersLoaded = 1;
-
-		loadShadersInterface();
-	}
-	else
-	{
-		LLGLSLShader::sNoFixedFunction = false;
-		//gPipeline.mVertexShadersEnabled = FALSE;
-		//gPipeline.mVertexShadersLoaded = 0;
-		mVertexShaderLevel[SHADER_LIGHTING] = 0;
-		mVertexShaderLevel[SHADER_INTERFACE] = 0;
-		mVertexShaderLevel[SHADER_ENVIRONMENT] = 0;
-		mVertexShaderLevel[SHADER_WATER] = 0;
-		mVertexShaderLevel[SHADER_OBJECT] = 0;
-		mVertexShaderLevel[SHADER_EFFECT] = 0;
-		mVertexShaderLevel[SHADER_WINDLIGHT] = 0;
-		mVertexShaderLevel[SHADER_AVATAR] = 0;
-	}
-	
-	//gPipeline.createGLBuffers();
-
-	reentrance = false;
-}
-
-void LLBakingShaderMgr::unloadShaders()
-{
-	gAlphaMaskProgram.unload();
-
-	mVertexShaderLevel[SHADER_INTERFACE] = 0;
-
-	//gPipeline.mVertexShadersLoaded = 0;
-}
-
-BOOL LLBakingShaderMgr::loadShadersInterface()
-{
-	BOOL success = TRUE;
-
-	if (success)
-	{
-		gAlphaMaskProgram.mName = "Alpha Mask Shader";
-		gAlphaMaskProgram.mShaderFiles.clear();
-		gAlphaMaskProgram.mShaderFiles.push_back(make_pair("interface/alphamaskV.glsl", GL_VERTEX_SHADER_ARB));
-		gAlphaMaskProgram.mShaderFiles.push_back(make_pair("interface/alphamaskF.glsl", GL_FRAGMENT_SHADER_ARB));
-		gAlphaMaskProgram.mShaderLevel = mVertexShaderLevel[SHADER_INTERFACE];
-		success = gAlphaMaskProgram.createShader(NULL, NULL);
-	}
-
-	if( !success )
-	{
-		mVertexShaderLevel[SHADER_INTERFACE] = 0;
-		return FALSE;
-	}
-	
-	return TRUE;
-}
-
-std::string LLBakingShaderMgr::getShaderDirPrefix(void)
-{
-	return gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "shaders/class");
-}
-
-void LLBakingShaderMgr::updateShaderUniforms(LLGLSLShader * shader)
-{
-}
-
-LLBakingShaderMgr::shader_iter LLBakingShaderMgr::beginShaders() const
-{
-	return mShaderList.begin();
-}
-
-LLBakingShaderMgr::shader_iter LLBakingShaderMgr::endShaders() const
-{
-	return mShaderList.end();
-}
diff --git a/indra/appearance_utility/llbakingshadermgr.h b/indra/appearance_utility/llbakingshadermgr.h
deleted file mode 100644
index 88d43ab7693251c6076bb9c80da21c7a54a1ee53..0000000000000000000000000000000000000000
--- a/indra/appearance_utility/llbakingshadermgr.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/** 
- * @file llbakingshadermgr.h
- * @brief Texture Baking Shader Manager
- *
- * $LicenseInfo:firstyear=2012&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2012, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-#ifndef LL_BAKING_SHADER_MGR_H
-#define LL_BAKING_SHADER_MGR_H
-
-#include "llshadermgr.h"
-
-class LLBakingShaderMgr: public LLShaderMgr
-{
-public:
-	static BOOL sInitialized;
-	static bool sSkipReload;
-
-	LLBakingShaderMgr();
-	/* virtual */ ~LLBakingShaderMgr();
-
-	// singleton pattern implementation
-	static LLBakingShaderMgr * instance();
-
-	void initAttribsAndUniforms(void);
-	void setShaders();
-	void unloadShaders();
-	S32 getVertexShaderLevel(S32 type);
-	BOOL loadShadersInterface();
-
-	std::vector<S32> mVertexShaderLevel;
-	S32	mMaxAvatarShaderLevel;
-
-	enum EShaderClass
-	{
-		SHADER_LIGHTING,
-		SHADER_OBJECT,
-		SHADER_AVATAR,
-		SHADER_ENVIRONMENT,
-		SHADER_INTERFACE,
-		SHADER_EFFECT,
-		SHADER_WINDLIGHT,
-		SHADER_WATER,
-		SHADER_DEFERRED,
-		SHADER_TRANSFORM,
-		SHADER_COUNT
-	};
-
-	// simple model of forward iterator
-	// http://www.sgi.com/tech/stl/ForwardIterator.html
-	class shader_iter
-	{
-	private:
-		friend bool operator == (shader_iter const & a, shader_iter const & b);
-		friend bool operator != (shader_iter const & a, shader_iter const & b);
-
-		typedef std::vector<LLGLSLShader *>::const_iterator base_iter_t;
-	public:
-		shader_iter()
-		{
-		}
-
-		shader_iter(base_iter_t iter) : mIter(iter)
-		{
-		}
-
-		LLGLSLShader & operator * () const
-		{
-			return **mIter;
-		}
-
-		LLGLSLShader * operator -> () const
-		{
-			return *mIter;
-		}
-
-		shader_iter & operator++ ()
-		{
-			++mIter;
-			return *this;
-		}
-
-		shader_iter operator++ (int)
-		{
-			return mIter++;
-		}
-
-	private:
-		base_iter_t mIter;
-	};
-
-	shader_iter beginShaders() const;
-	shader_iter endShaders() const;
-
-	/* virtual */ std::string getShaderDirPrefix(void);
-
-	/* virtual */ void updateShaderUniforms(LLGLSLShader * shader);
-
-private:
-	
-	// the list of shaders we need to propagate parameters to.
-	std::vector<LLGLSLShader *> mShaderList;
-
-}; //LLBakingShaderMgr
-
-inline bool operator == (LLBakingShaderMgr::shader_iter const & a, LLBakingShaderMgr::shader_iter const & b)
-{
-	return a.mIter == b.mIter;
-}
-
-inline bool operator != (LLBakingShaderMgr::shader_iter const & a, LLBakingShaderMgr::shader_iter const & b)
-{
-	return a.mIter != b.mIter;
-}
-
-extern LLVector4			gShinyOrigin;
-
-#endif // LL_BAKING_SHADER_MGR_H
diff --git a/indra/appearance_utility/llbakingtexlayer.cpp b/indra/appearance_utility/llbakingtexlayer.cpp
deleted file mode 100644
index 38fbd7c557a929ea289e965393799a69773ca9c8..0000000000000000000000000000000000000000
--- a/indra/appearance_utility/llbakingtexlayer.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-/** 
- * @file llbakingtexlayer.cpp
- * @brief Implementation of LLBakingTexLayer class
- *
- * $LicenseInfo:firstyear=2012&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2012, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-#include "linden_common.h"
-
-#include "llbakingtexlayer.h"
-
-LLBakingTexLayerSet::LLBakingTexLayerSet(LLAvatarAppearance* const appearance) :
-	LLTexLayerSet(appearance)
-{
-}
-
-// virtual
-LLBakingTexLayerSet::~LLBakingTexLayerSet()
-{
-}
-
-// Ignored.
-void LLBakingTexLayerSet::requestUpdate()
-{
-}
-
-void LLBakingTexLayerSet::createComposite()
-{
-	llerrs << "TODO: Create a composite." << llendl;
-}
-
-
diff --git a/indra/appearance_utility/llbakingtexlayer.h b/indra/appearance_utility/llbakingtexlayer.h
deleted file mode 100644
index 2ed9863d4a7afdf6edbd63f58e5e286dc82a8f16..0000000000000000000000000000000000000000
--- a/indra/appearance_utility/llbakingtexlayer.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/** 
- * @file llbakingtexlayer.h
- * @brief Declaration of LLBakingTexLayerSet.
- *
- * $LicenseInfo:firstyear=2012&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2012, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-#ifndef LL_LLBAKINGTEXLAYER_H
-#define LL_LLBAKINGTEXLAYER_H
-
-#include "lltexlayer.h"
-
-class LLBakingTexLayerSet : public LLTexLayerSet
-{
-public:
-	LLBakingTexLayerSet(LLAvatarAppearance* const appearance);
-	virtual ~LLBakingTexLayerSet();
-
-	/*virtual*/void				requestUpdate();
-	/*virtual*/void				createComposite();
-};
-
-#endif /* LL_LLBAKINGTEXLAYER_H */
-
diff --git a/indra/appearance_utility/llprocessparams.cpp b/indra/appearance_utility/llprocessparams.cpp
deleted file mode 100644
index 723bae0dd630261f0540aafe250f5772aa05fd8d..0000000000000000000000000000000000000000
--- a/indra/appearance_utility/llprocessparams.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-/** 
- * @file llprocessparams.cpp
- * @brief Implementation of LLProcessParams class.
- *
- * $LicenseInfo:firstyear=2012&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2012, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-// linden includes
-#include "linden_common.h"
-
-#include "llsd.h"
-#include "llsdserialize.h"
-#include "llsdutil.h"
-
-// appearance includes
-#include "llwearabledata.h"
-
-// project includes
-#include "llappappearanceutility.h"
-#include "llbakingavatar.h"
-#include "llprocessparams.h"
-
-void LLProcessParams::process(LLSD& input, std::ostream& output)
-{
-	LLWearableData wearable_data;
-	LLBakingAvatar avatar(&wearable_data);
-	avatar.initInstance();
-
-	LLSD result;
-	result["success"] = true;
-	result["input"] = input;
-	output << LLSDOStreamer<LLSDXMLFormatter>(result);
-}
-
diff --git a/indra/appearance_utility/llprocessparams.h b/indra/appearance_utility/llprocessparams.h
deleted file mode 100644
index d1e64cb4f01c53683cea7742253dee86f2ec8848..0000000000000000000000000000000000000000
--- a/indra/appearance_utility/llprocessparams.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/** 
- * @file llprocessparams.h
- * @brief Declaration of LLProcessParams class.
- *
- * $LicenseInfo:firstyear=2012&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2012, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-#ifndef LL_LLPROCESSPARAMS_H
-#define LL_LLPROCESSPARAMS_H
-
-#include "llbakingprocess.h"
-
-class LLProcessParams : public LLBakingProcess
-{
-public:
-	LLProcessParams(LLAppAppearanceUtility* app) :
-		LLBakingProcess(app) {}
-
-	/*virtual*/ void process(LLSD& intput, std::ostream& output);
-};
-
-#endif /* LL_LLPROCESSPARAMS_H */
-
diff --git a/indra/appearance_utility/wrapper.sh b/indra/appearance_utility/wrapper.sh
deleted file mode 100755
index 87d2179a1376f41638d78a2cfa7112b4c0ab3b71..0000000000000000000000000000000000000000
--- a/indra/appearance_utility/wrapper.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash
-
-# Simple wrapper for secondlife utilities.
-
-## - Avoids an often-buggy X feature that doesn't really benefit us anyway.
-export SDL_VIDEO_X11_DGAMOUSE=0
-
-## - Works around a problem with misconfigured 64-bit systems not finding GL
-export LIBGL_DRIVERS_PATH="${LIBGL_DRIVERS_PATH}":/usr/lib64/dri:/usr/lib32/dri:/usr/lib/dri
-
-## - The 'scim' GTK IM module widely crashes the viewer.  Avoid it.
-if [ "$GTK_IM_MODULE" = "scim" ]; then
-    export GTK_IM_MODULE=xim
-fi
-
-EXECUTABLE="$(basename "$0")-bin"
-SCRIPTSRC="$(readlink -f "$0" || echo "$0")"
-RUN_PATH="$(dirname "${SCRIPTSRC}" || echo .)"
-cd "${RUN_PATH}"
-
-export LD_LIBRARY_PATH="$PWD/lib:${LD_LIBRARY_PATH}"
-
-# Run the program.
-"./$EXECUTABLE" "$@"
-exit $?
diff --git a/indra/cmake/LLAppearanceUtility.cmake b/indra/cmake/LLAppearanceUtility.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..bea45543dea2fbe0e37381f4d6f0b162660f478f
--- /dev/null
+++ b/indra/cmake/LLAppearanceUtility.cmake
@@ -0,0 +1,12 @@
+# -*- cmake -*-
+include(Prebuilt)
+
+# Linux proprietary build only
+if (INSTALL_PROPRIETARY)
+    if(LINUX)
+        use_prebuilt_binary(llappearanceutility-source)
+        set(LLAPPEARANCEUTILITY_SRC_DIR ${LIBS_PREBUILT_DIR}/llappearanceutility/src)
+        set(LLAPPEARANCEUTILITY_BIN_DIR ${CMAKE_BINARY_DIR}/llappearanceutility)
+    endif (LINUX)
+endif (INSTALL_PROPRIETARY)
+
diff --git a/indra/llcommon/llversionserver.h b/indra/llcommon/llversionserver.h
index b19ba3bf7407eddf5d34dd1ace14e527e1cddc79..ef68a0eaf5cbd4b9272f8b35d70ed17b51c8f42c 100644
--- a/indra/llcommon/llversionserver.h
+++ b/indra/llcommon/llversionserver.h
@@ -30,7 +30,7 @@
 const S32 LL_VERSION_MAJOR = 2;
 const S32 LL_VERSION_MINOR = 1;
 const S32 LL_VERSION_PATCH = 0;
-const S32 LL_VERSION_BUILD = 13828;
+const S32 LL_VERSION_BUILD = 264760;
 
 const char * const LL_CHANNEL = "Second Life Server";
 
diff --git a/indra/llcommon/llversionviewer.h b/indra/llcommon/llversionviewer.h
index bcc661a920465ebc73b42fd1dad40c3875162ecd..295fed3c4b0c136adf3cd50159e04bd1b707c869 100644
--- a/indra/llcommon/llversionviewer.h
+++ b/indra/llcommon/llversionviewer.h
@@ -30,7 +30,7 @@
 const S32 LL_VERSION_MAJOR = 3;
 const S32 LL_VERSION_MINOR = 4;
 const S32 LL_VERSION_PATCH = 1;
-const S32 LL_VERSION_BUILD = 0;
+const S32 LL_VERSION_BUILD = 264760;
 
 const char * const LL_CHANNEL = "Second Life Developer";
 
diff --git a/indra/newview/English.lproj/InfoPlist.strings b/indra/newview/English.lproj/InfoPlist.strings
index 5c7cacedec00fd61740b972f0c2095deddaf3ece..1802e14703520d12ca79c529f217af4eb6a094c8 100644
--- a/indra/newview/English.lproj/InfoPlist.strings
+++ b/indra/newview/English.lproj/InfoPlist.strings
@@ -2,6 +2,6 @@
 
 CFBundleName = "Second Life";
 
-CFBundleShortVersionString = "Second Life version 2.1.0.13828";
-CFBundleGetInfoString = "Second Life version 2.1.0.13828, Copyright 2004-2009 Linden Research, Inc.";
+CFBundleShortVersionString = "Second Life version 3.4.1.264760";
+CFBundleGetInfoString = "Second Life version 3.4.1.264760, Copyright 2004-2009 Linden Research, Inc.";
 
diff --git a/indra/newview/Info-SecondLife.plist b/indra/newview/Info-SecondLife.plist
index f7b11b217c928cd41a89fa6826256158f9972e34..035d6cbe6cd423b0ef9e65cba74ec728dfe313e3 100644
--- a/indra/newview/Info-SecondLife.plist
+++ b/indra/newview/Info-SecondLife.plist
@@ -60,7 +60,7 @@
 		</dict>
 	</array>
 	<key>CFBundleVersion</key>
-	<string>2.1.0.13828</string>
+	<string>3.4.1.264760</string>
 	<key>CSResourcesFileMapped</key>
 	<true/>
 </dict>
diff --git a/indra/newview/res/viewerRes.rc b/indra/newview/res/viewerRes.rc
index df75f3f697f7fd2adc591037ca33c56d38d4d920..471a896019d86937f4bcb42e7da9f191a64189f9 100644
--- a/indra/newview/res/viewerRes.rc
+++ b/indra/newview/res/viewerRes.rc
@@ -135,8 +135,8 @@ TOOLNO                  CURSOR                  "llno.cur"
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,1,1,0
- PRODUCTVERSION 2,1,1,0
+ FILEVERSION 3,4,1,264760
+ PRODUCTVERSION 3,4,1,264760
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -153,12 +153,12 @@ BEGIN
         BEGIN
             VALUE "CompanyName", "Linden Lab"
             VALUE "FileDescription", "Second Life"
-            VALUE "FileVersion", "2.1.1.0"
+            VALUE "FileVersion", "3.4.1.264760"
             VALUE "InternalName", "Second Life"
             VALUE "LegalCopyright", "Copyright � 2001-2010, Linden Research, Inc."
             VALUE "OriginalFilename", "SecondLife.exe"
             VALUE "ProductName", "Second Life"
-            VALUE "ProductVersion", "2.1.1.0"
+            VALUE "ProductVersion", "3.4.1.264760"
         END
     END
     BLOCK "VarFileInfo"