text:
<!DOCTYPE html>

    <meta charset="utf-8">
    <meta name="google-site-verification" content="qq-qthh29CbdOq7Orduj7ArH1fyRxCjZygviLe5mrDw" />
    <link rel="stylesheet" href="staff.css">
    <title>Davenport West Athletics</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

Davenport West Athletics

      9th Boys Basketball

    Varsity Boys Basketball Schedule

        Girls Basketball

      Boys Swimming Schedule

      Bowling

      Wrestling

redpajama_set_name: RedPajamaGithub


text:
using System.IO;
using System;
using Aspose.Pdf;
using Aspose.Pdf.Text;

namespace Aspose.Pdf.Examples.CSharp.AsposePDF.Tables
{
    public class DetermineTableBreak
    {
        public static void Run()
        {
            // ExStart:DetermineTableBreak
            // The path to the documents directory.
            string dataDir = RunExamples.GetDataDir_AsposePdf_Tables();

            // Instantiate an object PDF class
            Document pdf = new Document();
            // Add the section to PDF document sections collection
            Aspose.Pdf.Page page = pdf.Pages.Add();
            // Instantiate a table object
            Aspose.Pdf.Table table1 = new Aspose.Pdf.Table();
            table1.Margin.Top = 300;
            // Add the table in paragraphs collection of the desired section
            page.Paragraphs.Add(table1);
            // Set with column widths of the table
            table1.ColumnWidths = "100 100 100";
            // Set default cell border using BorderInfo object
            table1.DefaultCellBorder = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, 0.1F);
            // Set table border using another customized BorderInfo object
            table1.Border = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, 1F);
            // Create MarginInfo object and set its left, bottom, right and top margins
            Aspose.Pdf.MarginInfo margin = new Aspose.Pdf.MarginInfo();
            margin.Top = 5f;
            margin.Left = 5f;
            margin.Right = 5f;
            margin.Bottom = 5f;
            // Set the default cell padding to the MarginInfo object
            table1.DefaultCellPadding = margin;
            // If you increase the counter to 17, table will break
            // Because it cannot be accommodated any more over this page
            for (int RowCounter = 0; RowCounter <= 16; RowCounter++)
            {
                // Create rows in the table and then cells in the rows
                Aspose.Pdf.Row row1 = table1.Rows.Add();
                row1.Cells.Add("col " + RowCounter.ToString() + ", 1");
                row1.Cells.Add("col " + RowCounter.ToString() + ", 2");
                row1.Cells.Add("col " + RowCounter.ToString() + ", 3");
            }
            // Get the Page Height information
            float PageHeight = (float)pdf.PageInfo.Height;
            // Get the total height information of Page Top & Bottom margin,
            // Table Top margin and table height.
            float TotalObjectsHeight = (float)page.PageInfo.Margin.Top + (float)page.PageInfo.Margin.Bottom + (float)table1.Margin.Top + (float)table1.GetHeight();

            // Display Page Height, Table Height, table Top margin and Page Top
            // And Bottom margin information
            Console.WriteLine("PDF document Height = " + pdf.PageInfo.Height.ToString() + "\nTop Margin Info = " + page.PageInfo.Margin.Top.ToString() + "\nBottom Margin Info = " + page.PageInfo.Margin.Bottom.ToString() + "\n\nTable-Top Margin Info = " + table1.Margin.Top.ToString() + "\nAverage Row Height = " + table1.Rows[0].MinRowHeight.ToString() + " \nTable height " + table1.GetHeight().ToString() + "\n ----------------------------------------" + "\nTotal Page Height =" + PageHeight.ToString() + "\nCummulative height including Table =" + TotalObjectsHeight.ToString());

            // Check if we deduct the sume of Page top margin + Page Bottom margin
            // + Table Top margin and table height from Page height and its less
            // Than 10 (an average row can be greater than 10)
            if ((PageHeight - TotalObjectsHeight) <= 10)
                // If the value is less than 10, then display the message.
                // Which shows that another row can not be placed and if we add new
                // Row, table will break. It depends upon the row height value.
                Console.WriteLine("Page Height - Objects Height < 10, so table will break");

            dataDir = dataDir + "DetermineTableBreak_out.pdf";
            // Save the pdf document
            pdf.Save(dataDir);
            // ExEnd:DetermineTableBreak
            Console.WriteLine("\nTable break determined successfully.\nFile saved at " + dataDir);

        }
    }
}


text:
from __future__ import unicode_literals

from django.db import models, migrations

class Migration(migrations.Migration):

    dependencies = [
        ('commenting', '0001_initial'),
    ]

    operations = [
        migrations.AlterModelOptions(
            name='molocomment',
            options={'ordering': ['-submit_date', 'tree_id', 'lft']},
        ),
    ]


text:
<!DOCTYPE HTML>

<meta charset="utf-8">
<title>Enkel floatlayout</title>

	      Länk 1

	      Länk 2

	      Länk 3

	      Länk 4

	      Länk 5

Enkel floatlayout

Bacon ipsum dolor sit amet tri-tip boudin turducken bresaola bacon. Beef turkey pork loin kielbasa tenderloin, shankle ribeye swine. Salami venison capicola, beef biltong turkey ground round short loin jerky meatloaf short ribs kielbasa bresaola flank tail. Turkey strip steak rump, prosciutto beef tail hamburger ground round pig turducken pork belly shank pork chop.

	    Bacon sausage fatback prosciutto, pancetta turducken pork chop jerky tongue swine shoulder. Tri-tip spare ribs swine strip steak jowl biltong, beef ribs shank shankle fatback turducken sirloin pork pork belly short loin.

Beef ribs spare ribs pork belly filet mignon fatback, strip steak shankle tail shoulder prosciutto beef shank tri-tip leberkas. Beef ribs leberkas turkey, bresaola brisket rump speck. Prosciutto pork chop andouille speck pork loin. Ball tip pork chop jowl strip steak.

	    Strip steak leberkas salami, pork cow pig rump pastrami capicola. Speck short loin andouille pancetta, ball tip jowl short ribs cow pig chuck tenderloin pastrami beef ribs sirloin. Filet mignon turducken meatball pancetta.

Swine pig chicken, shank ham pancetta pork belly turkey hamburger shoulder. Cow kielbasa filet mignon venison, frankfurter pork loin ham hock chuck sirloin turkey beef leberkas tri-tip tail meatloaf.

	    Bacon shoulder short ribs swine ham hock. T-bone tri-tip strip steak, beef ribs hamburger boudin fatback.

Venison t-bone andouille rump, ham jerky pork spare ribs chuck drumstick meatloaf ribeye salami. Turducken tongue capicola strip steak sirloin drumstick, hamburger venison tenderloin bresaola beef ground round. Cow pastrami andouille ground round swine biltong, kielbasa bresaola.

Short loin leberkas venison, flank chicken tongue brisket biltong jowl swine drumstick corned beef ground round turducken. Bacon pancetta drumstick spare ribs t-bone. Bresaola spare ribs boudin, hamburger andouille bacon biltong sirloin filet mignon swine t-bone shank ham hock fatback. Ground round drumstick leberkas kielbasa, ribeye prosciutto brisket pancetta. Shoulder rump boudin cow.

Floatdemo med bild från Kina


text:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <fragment
        android:id="@+id/fixed_remuxing"
        android:name="sagex.miniclient.android.ui.settings.CodecContainerFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</RelativeLayout>


text:
import { Placeholders, SnippetMapping } from '../types';

import {
  exportDefault,
  innerComponent,
  innerComponentReturn,
  react,
  reactComponent,
  reactComponentWithReduxConnect,
  reactPropTypes,
  reactPureComponent,
  reactWithMemo,
  reactWithReduxConnect,
  reduxComponentExport,
} from './sharedSnippets';

type ComponentMappings = {
  reactArrowFunctionComponent: 'rafc';
  reactArrowFunctionComponentWithPropTypes: 'rafcp';
  reactArrowFunctionExportComponent: 'rafce';
  reactClassComponentPropTypes: 'rccp';
  reactClassComponentRedux: 'rcredux';
  reactClassComponentReduxPropTypes: 'rcreduxp';
  reactClassComponent: 'rcc';
  reactClassExportComponent: 'rce';
  reactClassExportComponentWithPropTypes: 'rcep';
  reactClassExportPureComponent: 'rpce';
  reactClassPureComponent: 'rpc';
  reactClassPureComponentWithPropTypes: 'rpcp';
  reactFunctionMemoComponent: 'rmc';
  reactFunctionMemoComponentWithPropTypes: 'rmcp';
  reactFunctionalComponentRedux: 'rfcredux';
  reactFunctionalComponentReduxPropTypes: 'rfcreduxp';
  reactFunctionalComponent: 'rfc';
  reactFunctionalComponentWithPropTypes: 'rfcp';
  reactFunctionalExportComponent: 'rfce';
};

export type ComponentsSnippet = SnippetMapping<ComponentMappings>;

const reactClassComponent: ComponentsSnippet = {
  key: 'reactClassComponent',
  prefix: 'rcc',
  body: [
    ...reactComponent,
    '',
    `export default class ${Placeholders.FileName} extends Component {`,
    ...innerComponentReturn,
    '}',
    '',
  ],
  description: 'Creates a React component class with ES7 module system',
};

const reactClassExportComponent: ComponentsSnippet = {
  key: 'reactClassExportComponent',
  prefix: 'rce',
  body: [
    ...reactComponent,
    '',
    `export class ${Placeholders.FileName} extends Component {`,
    ...innerComponentReturn,
    '}',
    ...exportDefault,
  ],
  description: 'Creates a React component class with ES7 module system',
};

const reactFunctionalExportComponent: ComponentsSnippet = {
  key: 'reactFunctionalExportComponent',
  prefix: 'rfce',
  body: [
    ...react,
    '',
    `function ${Placeholders.FileName}() {`,
    ...innerComponent,
    '}',
    ...exportDefault,
  ],
  description: 'Creates a React Functional Component with ES7 module system',
};

const reactFunctionalComponent: ComponentsSnippet = {
  key: 'reactFunctionalComponent',
  prefix: 'rfc',
  body: [
    ...react,
    '',
    `export default function ${Placeholders.FileName}() {`,
    ...innerComponent,
    '}',
    '',
  ],
  description: 'Creates a React Functional Component with ES7 module system',
};

const reactFunctionalComponentWithPropTypes: ComponentsSnippet = {
  key: 'reactFunctionalComponentWithPropTypes',
  prefix: 'rfcp',
  body: [
    ...reactPropTypes,
    '',
    `function ${Placeholders.FileName}(props) {`,
    ...innerComponent,
    '}',
    '',
    `${Placeholders.FileName}.propTypes = {}`,
    ...exportDefault,
    '',
  ],
  description:
    'Creates a React Functional Component with ES7 module system with PropTypes',
};

const reactArrowFunctionExportComponent: ComponentsSnippet = {
  key: 'reactArrowFunctionExportComponent',
  prefix: 'rafce',
  body: [
    ...react,
    '',
    `const ${Placeholders.FileName} = () => {`,
    ...innerComponent,
    '}',
    ...exportDefault,
  ],
  description:
    'Creates a React Arrow Function Component with ES7 module system',
};

const reactArrowFunctionComponent: ComponentsSnippet = {
  key: 'reactArrowFunctionComponent',
  prefix: 'rafc',
  body: [
    ...react,
    '',
    `export const ${Placeholders.FileName} = () => {`,
    ...innerComponent,
    '}',
    '',
  ],
  description:
    'Creates a React Arrow Function Component with ES7 module system',
};

const reactArrowFunctionComponentWithPropTypes: ComponentsSnippet = {
  key: 'reactArrowFunctionComponentWithPropTypes',
  prefix: 'rafcp',
  body: [
    ...reactPropTypes,
    '',
    `const ${Placeholders.FileName} = props => {`,
    ...innerComponent,
    '}',
    '',
    `${Placeholders.FileName}.propTypes = {}`,
    ...exportDefault,
  ],
  description:
    'Creates a React Arrow Function Component with ES7 module system with PropTypes',
};

const reactClassExportComponentWithPropTypes: ComponentsSnippet = {
  key: 'reactClassExportComponentWithPropTypes',
  prefix: 'rcep',
  body: [
    "import PropTypes from 'prop-types'",
    ...reactComponent,
    '',
    `export class ${Placeholders.FileName} extends Component {`,
    '  static propTypes = {}',
    '',
    ...innerComponentReturn,
    '}',
    ...exportDefault,
  ],
  description: 'Creates a React component class with ES7 module system',
};

const reactClassPureComponent: ComponentsSnippet = {
  key: 'reactClassPureComponent',
  prefix: 'rpc',
  body: [
    ...reactPureComponent,
    '',
    `export default class ${Placeholders.FileName} extends PureComponent {`,
    ...innerComponentReturn,
    '}',
    '',
  ],
  description: 'Creates a React pure component class with ES7 module system',
};

const reactClassExportPureComponent: ComponentsSnippet = {
  key: 'reactClassExportPureComponent',
  prefix: 'rpce',
  body: [
    ...reactPureComponent,
    '',
    `export class ${Placeholders.FileName} extends PureComponent {`,
    ...innerComponentReturn,
    '}',
    ...exportDefault,
  ],
  description:
    'Creates a React pure component class with ES7 module system export',
};

const reactClassPureComponentWithPropTypes: ComponentsSnippet = {
  key: 'reactClassPureComponentWithPropTypes',
  prefix: 'rpcp',
  body: [
    "import PropTypes from 'prop-types'",
    ...reactPureComponent,
    '',
    `export default class ${Placeholders.FileName} extends PureComponent {`,
    '  static propTypes = {}',
    '',
    ...innerComponentReturn,
    '}',
    '',
  ],
  description: 'Creates a React component class with ES7 module system',
};

const reactFunctionMemoComponent: ComponentsSnippet = {
  key: 'reactFunctionMemoComponent',
  prefix: 'rmc',
  body: [
    ...reactWithMemo,
    '',
    `const ${Placeholders.FileName} = memo(() => {`,
    ...innerComponent,
    '})',
    ...exportDefault,
  ],
  description: 'Creates a React Memo Function Component with ES7 module system',
};

const reactFunctionMemoComponentWithPropTypes: ComponentsSnippet = {
  key: 'reactFunctionMemoComponentWithPropTypes',
  prefix: 'rmcp',
  body: [
    "import PropTypes from 'prop-types'",
    ...reactWithMemo,
    '',
    `const ${Placeholders.FileName} = memo((props) => {`,
    ...innerComponent,
    '})',
    '',
    `${Placeholders.FileName}.propTypes = {}`,
    ...exportDefault,
  ],
  description:
    'Creates a React Memo Function Component with ES7 module system with PropTypes',
};

const reactClassComponentPropTypes: ComponentsSnippet = {
  key: 'reactClassComponentPropTypes',
  prefix: 'rccp',
  body: [
    "import PropTypes from 'prop-types'",
    ...reactComponent,
    '',
    `export default class ${Placeholders.FileName} extends Component {`,
    `  static propTypes = {${Placeholders.SecondTab}: ${Placeholders.ThirdTab}}`,
    '',
    ...innerComponentReturn,
    '}',
    '',
  ],
  description:
    'Creates a React component class with PropTypes and ES7 module system',
};

const reactClassComponentRedux: ComponentsSnippet = {
  key: 'reactClassComponentRedux',
  prefix: 'rcredux',
  body: [
    ...reactComponentWithReduxConnect,
    '',
    `export class ${Placeholders.FileName} extends Component {`,
    ...innerComponentReturn,
    '}',
    ...reduxComponentExport,
  ],
  description:
    'Creates a React component class with connected redux and ES7 module system',
};

const reactClassComponentReduxPropTypes: ComponentsSnippet = {
  key: 'reactClassComponentReduxPropTypes',
  prefix: 'rcreduxp',
  body: [
    "import PropTypes from 'prop-types'",
    ...reactComponentWithReduxConnect,
    '',
    `export class ${Placeholders.FileName} extends Component {`,
    '  static propTypes = {',
    `    ${Placeholders.SecondTab}: ${Placeholders.ThirdTab}`,
    '  }',
    '',
    ...innerComponentReturn,
    '}',
    ...reduxComponentExport,
  ],
  description:
    'Creates a React component class with PropTypes with connected redux and ES7 module system',
};

const reactFunctionalComponentRedux: ComponentsSnippet = {
  key: 'reactFunctionalComponentRedux',
  prefix: 'rfcredux',
  body: [
    ...reactWithReduxConnect,
    '',
    `export const ${Placeholders.FileName} = (props) => {`,
    ...innerComponent,
    '}',
    ...reduxComponentExport,
  ],
  description:
    'Creates a React functional component with connected redux and ES7 module system',
};

const reactFunctionalComponentReduxPropTypes: ComponentsSnippet = {
  key: 'reactFunctionalComponentReduxPropTypes',
  prefix: 'rfcreduxp',
  body: [
    "import PropTypes from 'prop-types'",
    ...reactWithReduxConnect,
    '',
    `export const ${Placeholders.FileName} = (props) => {`,
    ...innerComponent,
    '}',
    '',
    `${Placeholders.FileName}.propTypes = {`,
    `  ${Placeholders.SecondTab}: PropTypes.${Placeholders.ThirdTab}`,
    '}',
    ...reduxComponentExport,
  ],
  description:
    'DEPRECATED: Creates a React functional component with PropTypes with connected redux and ES7 module system',
};

export default [
  reactArrowFunctionComponent,
  reactArrowFunctionComponentWithPropTypes,
  reactArrowFunctionExportComponent,
  reactClassComponent,
  reactClassComponentPropTypes,
  reactClassComponentRedux,
  reactClassComponentReduxPropTypes,
  reactClassExportComponent,
  reactClassExportComponentWithPropTypes,
  reactClassExportPureComponent,
  reactClassPureComponent,
  reactClassPureComponentWithPropTypes,
  reactFunctionMemoComponent,
  reactFunctionMemoComponentWithPropTypes,
  reactFunctionalComponent,
  reactFunctionalComponentRedux,
  reactFunctionalComponentReduxPropTypes,
  reactFunctionalComponentWithPropTypes,
  reactFunctionalExportComponent,
];


text:
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

/**
 * A representation of the information needed to run a Python executable.
 *
 * @prop command - the executable to execute in a new OS process
 * @prop args - the full list of arguments with which to invoke the command
 * @prop python - the command + the arguments needed just to invoke Python
 * @prop pythonExecutable - the path the the Python executable
 */
export type PythonExecInfo = {
    command: string;
    args: string[];

    python: string[];
    pythonExecutable: string;
};

/**
 * Compose Python execution info for the given executable.
 *
 * @param python - the path (or command + arguments) to use to invoke Python
 * @param pythonArgs - any extra arguments to use when running Python
 */
export function buildPythonExecInfo(
    python: string | string[],
    pythonArgs?: string[],
    pythonExecutable?: string,
): PythonExecInfo {
    if (Array.isArray(python)) {
        const args = python.slice(1);
        if (pythonArgs) {
            args.push(...pythonArgs);
        }
        return {
            args,
            command: python[0],
            python: [...python],
            pythonExecutable: pythonExecutable ?? python[python.length - 1],
        };
    }
    return {
        command: python,
        args: pythonArgs || [],
        python: [python],
        pythonExecutable: python,
    };
}

/**
 * Create a copy, optionally adding to the args to pass to Python.
 *
 * @param orig - the object to copy
 * @param extraPythonArgs - any arguments to add to the end of `orig.args`
 */
export function copyPythonExecInfo(orig: PythonExecInfo, extraPythonArgs?: string[]): PythonExecInfo {
    const info = {
        command: orig.command,
        args: [...orig.args],
        python: [...orig.python],
        pythonExecutable: orig.pythonExecutable,
    };
    if (extraPythonArgs) {
        info.args.push(...extraPythonArgs);
    }
    if (info.pythonExecutable === undefined) {
        info.pythonExecutable = info.python[info.python.length - 1]; // Default case
    }
    return info;
}


text:
<?php

namespace yii\mozayka\form;

class StringField extends ActiveField
{

    public $size = 255;

    public function init()
    {
        $this->inputOptions['maxlength'] = $this->size;
        parent::init();
    }
}


text: var data = {latestPosts: {}};


text:
<?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <corners android:radius="3dp"/>
    <solid android:color="@color/home_tab_pressed_color"/>
    </shape>


text:
// SampSharp
// Copyright 2022 Tim Potze
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

using System;
using System.Reflection;
using System.Text;
using SampSharp.Core.Natives.NativeObjects;

namespace SampSharp.Core;

/// Contains the methods of a SampSharp game mode client.
public interface IGameModeClient
{
    /// Gets the default encoding to use when translating server messages.
    Encoding Encoding { get; }

    /// Gets the factory for native method wrapper objects.
    INativeObjectProxyFactory NativeObjectProxyFactory { get; }

    /// Gets the provider which can be used for synchronizing a call to the main thread.
    ISynchronizationProvider SynchronizationProvider { get; }

    /// Gets the path to the server directory.
    string ServerPath { get; }

    /// Occurs when an exception is unhandled during the execution of a callback or tick.
    event EventHandler<UnhandledExceptionEventArgs>? UnhandledException;

    ///
    /// Registers a callback with the specified <paramref name="name" />. When the callback is called, the specified <paramref name="methodInfo" /> will be
    /// invoked on the specified <paramref name="target" />. If the method contains only one object[] parameter, all parameters are provided to the method in this
    /// array.
    ///
    /// <param name="name">The name af the callback to register.</param>
    /// <param name="target">The target on which to invoke the method.</param>
    /// <param name="methodInfo">The method information of the method to invoke when the callback is called.</param>
    /// <param name="parameterTypes">The types of the parameters the callback handler expects.</param>
    /// <param name="lengthIndices">The indices at which the lengths are provides for parameters which require lengths.</param>
    void RegisterCallback(string name, object? target, MethodInfo methodInfo, Type[]? parameterTypes, uint?[]? lengthIndices = null);

    ///
    /// Registers a callback with the specified <paramref name="name" />. When the callback is called, the specified <paramref name="methodInfo" /> will be
    /// invoked on the specified <paramref name="target" />.
    ///
    /// <param name="name">The name af the callback to register.</param>
    /// <param name="target">The target on which to invoke the method.</param>
    /// <param name="methodInfo">The method information of the method to invoke when the callback is called.</param>
    void RegisterCallback(string name, object? target, MethodInfo methodInfo);

    /// Prints the specified text to the server console.
    /// <param name="text">The text to print to the server console.</param>
    void Print(string text);
}


text:
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**pipeline_manifest** | **str** | Output. The runtime JSON manifest of the pipeline, including the status of pipeline steps and fields need for UI visualization etc. | [optional]
**workflow_manifest** | **str** | Output. The runtime JSON manifest of the argo workflow. This is deprecated after pipeline_runtime_manifest is in use. | [optional]

[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)


text:
<!--
If you have a support request or question please submit them to
[StackOverflow](http://stackoverflow.com/questions/tagged/babeljs) using the tag
`[babel]` or
the [Babel Slack](babeljs.slack.com). Future support requests will be closed.
-->
*Delete what isn't applicable below*
**I'm submitting a bug report**
**I'm submitting a feature request**
**I'm submitting a support request** => Please do not submit support request here, see note at the top of this template.

**Webpack Version:**
1.10.x/2.x

**Babel Core Version**:
6.x

**Babel Loader Version**:
5.4.x/6.2.x

**Please tell us about your environment:**
OSX 10.x / Linux / Windows 10

**Current behavior:**

**Expected/desired behavior:**

* **If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem along with a gist/jsbin of your webpack configuration.**

* **What is the expected behavior?**

* **What is the motivation / use case for changing the behavior?**


text:
<mvc:View controllerName="de.blogspot.openui5.fc.controller.Printer" xmlns:core="sap.ui.core" xmlns:l="sap.ui.layout"
	xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m">
	<Page showHeader="false">
		<l:BlockLayout background="Light">
			<l:BlockLayoutRow>
				<l:BlockLayoutCell width="4" title="Printer">
					<Text class="sapUiTinyMarginBottom" text="The Printer plugin supports printing documents in three ways:"/>
					<HBox class="sapUiTinyMarginTopBottom">
						<core:Icon class="sapUiTinyMarginBeginEnd" src="sap-icon://accept" tooltip="Accept"/>
						<Text text="Print the current page from within the application"/>
					</HBox>
					<HBox class="sapUiTinyMarginTopBottom">
						<core:Icon class="sapUiTinyMarginBeginEnd" src="sap-icon://accept" tooltip="Accept"/>
						<Text text="AttachmentViewer plugin – print a document opened with the AttachmentViewer using the InAppBrowser"/>
					</HBox>
					<HBox class="sapUiTinyMarginTopBottom">
						<core:Icon class="sapUiTinyMarginBeginEnd" src="sap-icon://accept" tooltip="Accept"/>
						<Text
							text="Background printing – print a document without the AttachmentViewer or the InAppBrowser. The content does not appear in a webview, and no preview is available prior to printing"/>
					</HBox>
				</l:BlockLayoutCell>
				<l:BlockLayoutCell titleAlignment="Center">
					<core:Icon src="sap-icon://print"/>
				</l:BlockLayoutCell>
			</l:BlockLayoutRow>
			<l:BlockLayoutRow>
				<l:BlockLayoutCell title="Print Data">
					<l:VerticalLayout>
						<TextArea value="{ui>/printText}" width="100%" rows="5" cols="40"/>
						<Button class="sapUiTinyMarginTop" text="Print" icon="sap-icon://print" type="Emphasized" enabled="{ui>/isFioriClientAvailable}"
							press="onPrint"/>
					</l:VerticalLayout>
				</l:BlockLayoutCell>
			</l:BlockLayoutRow>
		</l:BlockLayout>
	</Page>
</mvc:View>


text:
package com.datalint.open.client.util;

import static com.datalint.open.client.util.impl.DOMUtilImpl.getInstance;

import javax.annotation.Nullable;

import com.datalint.open.client.css.AwesomeWidget;
import com.datalint.open.shared.util.StringUtil;
import com.datalint.open.shared.xml.XMLUtil;
import com.google.gwt.dom.client.BodyElement;
import com.google.gwt.dom.client.DivElement;
import com.google.gwt.dom.client.Document;
import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.SpanElement;
import com.google.gwt.user.client.ui.UIObject;

public class DOMUtil {
	public static final String TAG_header = "header";
	public static final String TAG_footer = "footer";
	public static final String TAG_main = "main";
	public static final String TAG_nav = "nav";
	public static final String TAG_section = "section";
	public static final String TAG_sub = "sub";
	public static final String TAG_sup = "sup";

	private static final String ATTRIBUTE_placeholder = "placeholder";
	private static final String ATTRIBUTE_tabIndex = "tabIndex";

	public static String createAnchorHTML(@Nullable String awesomeClass, String anchorText) {
		return AwesomeWidget.createAwesomeHTML(awesomeClass, null) + XMLUtil.createElement(SpanElement.TAG, anchorText);
	}

	public static void toggleBodyStyle(String addedStyle, String... removedStyles) {
		BodyElement body = Document.get().getBody();

		for (String removedStyle : removedStyles) {
			body.removeClassName(removedStyle);
		}

		body.addClassName(addedStyle);
	}

	public static String createSpanHTML(@Nullable String className, @Nullable String childHTML) {
		return XMLUtil.createHTML(SpanElement.TAG, className, childHTML);
	}

	public static String createDivHTML(@Nullable String className, @Nullable String childHTML) {
		return XMLUtil.createHTML(DivElement.TAG, className, childHTML);
	}

	public static Element createEmailInputElement() {
		return getInstance().createEmailInputElement();
	}

	public static void removeTabIndex(Element element) {
		element.removeAttribute(ATTRIBUTE_tabIndex);
	}

	public static void setPlaceholder(UIObject uIObject, @Nullable String placeholder) {
		setPlaceholder(uIObject.getElement(), placeholder);
	}

	public static void setPlaceholder(Element element, @Nullable String placeholder) {
		if (StringUtil.isEmpty(placeholder))
			element.removeAttribute(ATTRIBUTE_placeholder);
		else
			element.setAttribute(ATTRIBUTE_placeholder, placeholder);
	}
}


text:
package com.lolay.android.tracker;

import android.app.Activity;
import android.content.Context;
import android.os.Build;
import android.provider.Settings;
import android.util.Log;

import com.flurry.android.Constants;
import com.flurry.android.FlurryAgent;

import java.util.HashMap;
import java.util.Map;

public class LolayFlurryTracker extends LolayBaseTracker {
	private static final String TAG = LolayFlurryTracker.class.getSimpleName();
	private String apiKey;
    private String platform;
    private Map<Object, Object> globalParametersValue;

    public LolayFlurryTracker(String apiKey, String version, Boolean logEnabled, Integer logLevel) {
    	this.apiKey = apiKey;
        this.platform = clientPlatform();
		FlurryAgent.setLogLevel(logLevel);
		FlurryAgent.setLogEnabled(logEnabled);
        FlurryAgent.setVersionName(version);
		Log.i(TAG, String.format("Initialized apiKey=%s,platform=%s", this.apiKey, this.platform));
    }

    public LolayFlurryTracker(String apiKey, String version) {
		this(apiKey, version, false, 10);
	}

    @Override
    public void setIdentifier(String identifier) {
        FlurryAgent.setUserId(identifier);
    }

    @Override
    public void setVersion(String version) {
        FlurryAgent.setVersionName(version);
    }

    @Override
    public void setAge(int age) {
        FlurryAgent.setAge(age);
    }

    @Override
    public void setGender(LolayTrackerGender gender) {
        switch (gender) {
            case MALE:
                FlurryAgent.setGender(Constants.MALE);
                break;
            case FEMALE:
                FlurryAgent.setGender(Constants.FEMALE);
                break;
            case UNKNOWN:
                break;
        }
    }

    @Override
    public String getTrackerId() {
    	return Settings.Secure.ANDROID_ID;
	}

    @Override
    public void logEvent(Context context, String name) {
        logEventWithParams(context, name, null);
    }

    @Override
    public void logEventWithParams(Context context, String name, Map<Object, Object> parameters) {
		//FlurryAgent.onStartSession(context, this.apiKey);
        FlurryAgent.logEvent(name, buildParameters(parameters));
		//FlurryAgent.onEndSession(context);
    }

    @Override
    public void logPage(Context context, String name) {
        logPageWithParams(context, name, null);
    }

    @Override
    public void logPageWithParams(Context context, String name, Map<Object, Object> parameters) {

        //FlurryAgent.onStartSession(context, this.apiKey);
		FlurryAgent.logEvent(name, buildParameters(parameters));
        FlurryAgent.onPageView();
		//FlurryAgent.onEndSession(context);
	}

    @Override
    public void logException(Context context, Throwable throwable) {
		//FlurryAgent.onStartSession(context, this.apiKey);
		FlurryAgent.onError(throwable.getMessage(), throwable.getMessage(), throwable.getClass().getSimpleName());
		//FlurryAgent.onEndSession(context);
	}

    @Override
    public void logException(Context context, String errorId, String message, Throwable throwable) {
		//FlurryAgent.onStartSession(context, this.apiKey);
		FlurryAgent.onError(errorId,message, throwable.getClass().getName());
		//FlurryAgent.onEndSession(context);
	}

    public void setGlobalParametersValue(Map<Object, Object> globalParametersValue) {
        this.globalParametersValue = globalParametersValue;
    }

    @Override
    public void setGlobalParameter(Object key, Object object) {
        if (this.globalParametersValue == null) {
        	this.globalParametersValue = new HashMap<Object,Object>();
        }

        this.globalParametersValue.put(key, object);
    }

    @Override
    public void removeGlobalParameter(Object key) {
        if (this.globalParametersValue != null) {
        	this.globalParametersValue.remove(key);
        }
    }

    Map<String, String> buildParameters(Map<Object, Object> parameters) {
        Map<String, String> flurryParameters = new HashMap<String, String>(1 + (globalParametersValue != null ? globalParametersValue.size() : 0));
        if (parameters != null) {
        	for(Object o : parameters.keySet()) {
        		Object v = parameters.get(o);
        		flurryParameters.put(o.toString(), v.toString());
        	}
        }

        if (globalParametersValue != null && !globalParametersValue.isEmpty()) {
        	for(Object o : globalParametersValue.keySet()) {
        		Object v = globalParametersValue.get(o);
        		flurryParameters.put(o.toString(), v.toString());
        	}
        }

        flurryParameters.put("platform", platform);

        return flurryParameters;
    }

    private String clientPlatform() {
        String manufacturer = Build.MANUFACTURER;
        String product = Build.PRODUCT;
        String model = Build.MODEL;
        String systemVersion = Build.VERSION.RELEASE;
        int sdk = Build.VERSION.SDK_INT;
        return String.format("%s %s (%s): %s %d", manufacturer, product, model, systemVersion, sdk);
    }

    @Override
    public void onStart(Activity activity){
        super.onStart(activity);
        FlurryAgent.onStartSession(activity, this.apiKey);
    }

    @Override
    public void onStop(Activity activity){
        super.onStop(activity);
        FlurryAgent.onEndSession(activity);
    }
}


text:
<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright 2009-2012 The 99 Software Foundation

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<project name="${project.name}">

  <custom>
    <fluidoSkin>
      <gitHub>
        <projectId>99soft/rocoto</projectId>
        <ribbonOrientation>right</ribbonOrientation>
        <ribbonColor>red</ribbonColor>
      </gitHub>
    </fluidoSkin>
  </custom>

  <bannerLeft>
    <name>Add some spice to Google Guice through configuration files!</name>
    <src>images/logo.png</src>
    <href>${project.url}/index.html</href>
  </bannerLeft>

  <body>
    <menu name="${project.name}">
      <item name="Home" href="index.html" />
      <item name="Getting started" href="getting-started.html" />
      <item name="Configuration" href="configuration.html" />
      <item name="Converters" href="converters.html" />
    </menu>

    <menu name="External Links">
      <item name="Project Page" href="https://github.com/99soft/Rocoto" />
      <item name="Google Guice" href="http://code.google.com/p/google-guice/" />
    </menu>
  </body>

</project>


text:
<?php

namespace Elkarte\Profile;

use Elkarte\Elkarte\Controller\AbstractController;
use Elkarte\Elkarte\Ips\IP;

/**
 * ProfileInfoController class, access all profile summary areas for a user
 * including overall summary, post listing, attachment listing, user statistics
 * user permissions, user warnings
 */
class ProfileInfoController extends AbstractController
{
	/**
	 * Member id for the profile being worked with
	 * @var int
	 */
	private $_memID = 0;

	/**
	 * Holds the current summary tabs to load
	 * @var array
	 */
	private $_summary_areas;

	/**
	 * Called before all other methods when coming from the dispatcher or
	 * action class.
	 *
	 * - If you initiate the class outside of those methods, call this method.
	 * or setup the class yourself or fall awaits.
	 */
	public function pre_dispatch()
	{
		$this->bootstrap();

		$this->_memID = $this->elk['profile']->currentMemberID();
	}

	/**
	 * Intended as entry point which delegates to methods in this class...
	 *
	 * - But here, today, for now, the methods are called from other places
	 * like menu picks and the like.
	 */
	public function action_index()
	{
		// what do we do, do you even know what you do?
		// $this->action_summary();
	}

	/**
	 * View the user profile summary.
	 *
	 * @uses ProfileInfo template
	 */
	public function action_summary()
	{
		global $context, $memberContext, $txt, $modSettings, $user_profile, $scripturl;

		// Attempt to load the member's profile data.
		if (!$this->elk['members.manager']->loadMemberContext($this->_memID) || !isset($memberContext[$this->_memID]))
			$this->_errors->fatal_lang_error('not_a_user', false);

		// Set up the context stuff and load the user.
		$context += array(
			'page_title' => sprintf($txt['profile_of_username'], $memberContext[$this->_memID]['name']),
			'can_send_pm' => allowedTo('pm_send'),
			'can_send_email' => allowedTo('send_email_to_members'),
			'can_have_buddy' => allowedTo('profile_identity_own') && !empty($modSettings['enable_buddylist']),
			'can_issue_warning' => in_array('w', $context['admin_features']) && allowedTo('issue_warning') && !empty($modSettings['warning_enable']),
		);
		$context['member'] = &$memberContext[$this->_memID];
		$context['can_view_warning'] = in_array('w', $context['admin_features']) && (allowedTo('issue_warning') && !$context['user']['is_owner']) || (!empty($modSettings['warning_show']) && ($modSettings['warning_show'] > 1 || $context['user']['is_owner']));

		// Set a canonical URL for this page.
		$context['canonical_url'] = $scripturl . '?action=profile;u=' . $this->_memID;

		// Are there things we don't show?
		$context['disabled_fields'] = isset($modSettings['disabled_profile_fields']) ? array_flip(explode(',', $modSettings['disabled_profile_fields'])) : array();

		// Menu tab
		$context[$context['profile_menu_name']]['tab_data'] = array();

		// Tab information for use in the summary page
		// Each tab template defines a div, the value of which are the template(s) to load in that div
		// Templates are named template_profile_block_YOURNAME
		$context['summarytabs'] = array(
			'summary' => array(
				'name' => $txt['summary'],
				'templates' => array(
					array('summary', 'user_info'),
					array('contact', 'other_info'),
					array('user_customprofileinfo', 'moderation'),
				),
				'active' => true,
			),
			'recent' => array(
				'name' => $txt['profile_recent_activity'],
				'templates' => array('posts', 'topics', 'attachments'),
				'active' => true,
			),
			'buddies' => array(
				'name' => $txt['buddies'],
				'templates' => array('buddies'),
				'active' => !empty($modSettings['enable_buddylist']) && $context['user']['is_owner'],
			),
		);

		// Let addons add or remove to the tabs array
		$GLOBALS['elk']['hooks']->hook('profile_summary', array($this->_memID));

		// Go forward with whats left
		$summary_areas = '';
		foreach ($context['summarytabs'] as $id => $tab)
		{
			// If the tab is active we add it
			if ($tab['active'] !== true)
				unset($context['summarytabs'][$id]);
			else
			{
				// All the active templates, used to prevent processing data we don't need
				foreach ($tab['templates'] as $template)
					$summary_areas .= is_array($template) ? implode(',', $template) : ',' . $template;
			}
		}
		$this->_summary_areas = explode(',', $summary_areas);

		// See if they have broken any warning levels...
		if (!empty($modSettings['warning_mute']) && $modSettings['warning_mute'] <= $context['member']['warning'])
			$context['warning_status'] = $txt['profile_warning_is_muted'];
		elseif (!empty($modSettings['warning_moderate']) && $modSettings['warning_moderate'] <= $context['member']['warning'])
			$context['warning_status'] = $txt['profile_warning_is_moderation'];
		elseif (!empty($modSettings['warning_watch']) && $modSettings['warning_watch'] <= $context['member']['warning'])
			$context['warning_status'] = $txt['profile_warning_is_watch'];

		// They haven't even been registered for a full day!?
		$days_registered = (int) ((time() - $user_profile[$this->_memID]['date_registered']) / (3600 * 24));
		if (empty($user_profile[$this->_memID]['date_registered']) || $days_registered < 1)
			$context['member']['posts_per_day'] = $txt['not_applicable'];
		else
			$context['member']['posts_per_day'] = comma_format($context['member']['real_posts'] / $days_registered, 3);

		// Set the age...
		if (empty($context['member']['birth_date']))
		{
			$context['member'] += array(
				'age' => $txt['not_applicable'],
				'today_is_birthday' => false
			);
		}
		else
		{
			list ($birth_year, $birth_month, $birth_day) = sscanf($context['member']['birth_date'], '%d-%d-%d');
			$datearray = getdate(forum_time());
			$context['member'] += array(
				'age' => $birth_year <= 4 ? $txt['not_applicable'] : $datearray['year'] - $birth_year - (($datearray['mon'] > $birth_month || ($datearray['mon'] == $birth_month && $datearray['mday'] >= $birth_day)) ? 0 : 1),
				'today_is_birthday' => $datearray['mon'] == $birth_month && $datearray['mday'] == $birth_day
			);
		}

		if (allowedTo('moderate_forum'))
		{
			// Make sure it's a valid ip address; otherwise, don't bother...
			if (preg_match('/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/', $memberContext[$this->_memID]['ip']) == 1 && empty($modSettings['disableHostnameLookup']))
				$context['member']['hostname'] = $this->elk['ip.manager']->host_from_ip(new IP($memberContext[$this->_memID]['ip']));
			else
				$context['member']['hostname'] = '';

			$context['can_see_ip'] = true;
		}
		else
			$context['can_see_ip'] = false;

		if (!empty($modSettings['who_enabled']) && $context['member']['online']['is_online'])
		{
			$action = $this->elk['onlinelog.viewing']->determineActions($user_profile[$this->_memID]['url']);
			loadLanguage('index');

			if ($action !== false)
				$context['member']['action'] = $action;
		}

		// If the user is awaiting activation, and the viewer has permission - setup some activation context messages.
		if ($context['member']['is_activated'] % 10 != 1 && allowedTo('moderate_forum'))
		{
			$context['activate_type'] = $context['member']['is_activated'];

			// What should the link text be?
			$context['activate_link_text'] = in_array($context['member']['is_activated'], array(3, 4, 5, 13, 14, 15)) ? $txt['account_approve'] : $txt['account_activate'];

			// Should we show a custom message?
			$context['activate_message'] = isset($txt['account_activate_method_' . $context['member']['is_activated'] % 10]) ? $txt['account_activate_method_' . $context['member']['is_activated'] % 10] : $txt['account_not_activated'];
			$context['activate_url'] = $scripturl . '?action=profile;save;area=activateaccount;u=' . $this->_memID . ';' . $context['session_var'] . '=' . $context['session_id'] . ';' . $context['profile-aa' . $this->_memID . '_token_var'] . '=' . $context['profile-aa' . $this->_memID . '_token'];
		}

		// Is the signature even enabled on this forum?
		$context['signature_enabled'] = substr($modSettings['signature_settings'], 0, 1) == 1;

		// How about, are they banned?
		if (allowedTo('moderate_forum'))
		{
			$hostname = !empty($context['member']['hostname']) ? $context['member']['hostname'] : '';
			$email = !empty($context['member']['email']) ? $context['member']['email'] : '';
			$context['member']['bans'] = $this->elk['bans.manager']->BanCheckUser($this->_memID, $hostname, $email);

			// Can they edit the ban?
			$context['can_edit_ban'] = allowedTo('manage_bans');
		}

		// Load data for the various summary tabs
		$this->_load_recent_attachments();
		$this->_load_buddies();
		$this->_load_recent_posts();
		$this->_load_recent_topics();

		// To finish this off, custom profile fields.
		$this->elk['profile']->loadCustomFields($this->_memID);

		$this->_templates->load('ProfileInfo');
	}

	/**
	 * Load a users recent topics
	 */
	protected function _load_recent_topics()
	{
		global $context, $modSettings, $scripturl;

		// How about the most recent topics that they started?
		if (in_array('topics', $this->_summary_areas))
		{
			// Is the load average still too high?
			if (checkLoad('show_posts'))
			{
				$context['loadaverage'] = true;
			}
			else
			{
				// Set up to get the last 10 topics of this member
				$topicCount = $this->elk['profile']->count_user_topics($this->_memID);
				$range_limit = '';
				$maxIndex = 10;
				$start = $this->http_req->getQuery('start', 'intval', 0);

				// If they are a frequent topic starter we guess the range to help the query
				if ($topicCount > 1000)
				{
					list ($min_topic_member, $max_topic_member) = $this->elk['profile']->findMinMaxUserTopic($this->_memID);
					$margin = floor(($max_topic_member - $min_topic_member) * (($start + $modSettings['defaultMaxMessages']) / $topicCount) + .1 * ($max_topic_member - $min_topic_member));
					$margin *= 5;
					$range_limit = 't.id_first_msg > ' . ($max_topic_member - $margin);
				}

				// Find this user's most recent topics
				$rows = $this->elk['profile']->load_user_topics($this->_memID, 0, $maxIndex, $range_limit);
				$context['topics'] = array();
				$bbc_parser = $GLOBALS['elk']['bbc'];

				foreach ($rows as $row)
				{
					// Censor....
					$row['body'] = censor($row['body']);
					$row['body'] = censor($row['subject']);

					// Do the code.
					$row['body'] = $bbc_parser->parseMessage($row['body'], $row['smileys_enabled']);
					$preview = strip_tags(strtr($row['body'], array('
' => '
')));
					$preview = $GLOBALS['elk']['text']->shorten_text($preview, 128);
					$short_subject = $GLOBALS['elk']['text']->shorten_text($row['subject'], 24);

					// And the array...
					$context['topics'][] = array(
						'board' => array(
							'name' => $row['bname'],
							'link' => '' . $row['bname'] . ''
						),
						'subject' => $row['subject'],
						'short_subject' => $short_subject,
						'body' => $preview,
						'time' => standardTime($row['poster_time']),
						'html_time' => htmlTime($row['poster_time']),
						'timestamp' => forum_time(true, $row['poster_time']),
						'link' => '' . $short_subject . '',
					);
				}
			}
		}
	}

	/**
	 * Load a members most recent posts
	 */
	protected function _load_recent_posts()
	{
		global $context, $modSettings, $scripturl;

		// How about their most recent posts?
		if (in_array('posts', $this->_summary_areas))
		{
			// Is the load average too high just now, then let them know
			if (checkLoad('show_posts'))
			{
				$context['loadaverage'] = true;
			}
			else
			{
				// Set up to get the last 10 posts of this member
				$msgCount = $this->elk['profile']->count_user_posts($this->_memID);
				$range_limit = '';
				$maxIndex = 10;
				$start = $this->http_req->getQuery('start', 'intval', 0);

				// If they are a frequent poster, we guess the range to help minimize what the query work
				if ($msgCount > 1000)
				{
					list ($min_msg_member, $max_msg_member) = $this->elk['profile']->findMinMaxUserMessage($this->_memID);
					$margin = floor(($max_msg_member - $min_msg_member) * (($start + $modSettings['defaultMaxMessages']) / $msgCount) + .1 * ($max_msg_member - $min_msg_member));
					$range_limit = 'm.id_msg > ' . ($max_msg_member - $margin);
				}

				// Find this user's most recent posts
				$rows = $this->elk['profile']->load_user_posts($this->_memID, 0, $maxIndex, $range_limit);
				$bbc_parser = $GLOBALS['elk']['bbc'];
				$context['posts'] = array();
				foreach ($rows as $row)
				{
					// Censor....
					$row['body'] = censor($row['body']);
					$row['body'] = censor($row['subject']);

					// Do the code.
					$row['body'] = $bbc_parser->parseMessage($row['body'], $row['smileys_enabled']);
					$preview = strip_tags(strtr($row['body'], array('
' => '
')));
					$preview = $GLOBALS['elk']['text']->shorten_text($preview, 128);
					$short_subject = $GLOBALS['elk']['text']->shorten_text($row['subject'], 24);

					// And the array...
					$context['posts'][] = array(
						'body' => $preview,
						'board' => array(
							'name' => $row['bname'],
							'link' => '' . $row['bname'] . ''
						),
						'subject' => $row['subject'],
						'short_subject' => $short_subject,
						'time' => standardTime($row['poster_time']),
						'html_time' => htmlTime($row['poster_time']),
						'timestamp' => forum_time(true, $row['poster_time']),
						'link' => '' . $short_subject . '',
					);
				}
			}
		}
	}

	/**
	 * Load the buddies tab with their buddies, real or imaginary
	 */
	protected function _load_buddies()
	{
		global $context, $modSettings, $memberContext, $user_info;

		// Would you be mine? Could you be mine? Be my buddy :D
		if (!empty($modSettings['enable_buddylist'])
			&& $context['user']['is_owner']
			&& !empty($user_info['buddies'])
			&& in_array('buddies', $this->_summary_areas))
		{
			$context['buddies'] = array();
			$this->elk['members.manager']->loadMemberData($user_info['buddies'], false, 'profile');

			// Get the info for this buddy
			foreach ($user_info['buddies'] as $buddy)
			{
				$this->elk['members.manager']->loadMemberContext($buddy, true);
				$context['buddies'][$buddy] = $memberContext[$buddy];
			}
		}
	}

	/**
	 * If they have made recent attachments, lets get a list of them to display
	 */
	protected function _load_recent_attachments()
	{
		global $context, $modSettings, $scripturl, $settings;

		$context['thumbs'] = array();

		// Load up the most recent attachments for this user for use in profile views etc.
		if (!empty($modSettings['attachmentEnable'])
			&& !empty($settings['attachments_on_summary'])
			&& in_array('attachments', $this->_summary_areas))
		{
			$boardsAllowed = boardsAllowedTo('view_attachments');

			if (empty($boardsAllowed))
			{
				$boardsAllowed = array(-1);
			}

			$attachments = $this->list_getAttachments(0, $settings['attachments_on_summary'], 'm.poster_time DESC', $boardsAllowed);

			// Some generic images for mime types
			$mime_images_url = $settings['default_images_url'] . '/mime_images/';
			$mime_path = $settings['default_theme_dir'] . '/images/mime_images/';

			// Load them in to $context for use in the template
			for ($i = 0, $count = count($attachments); $i < $count; $i++)
			{
				$context['thumbs'][$i] = array(
					'url' => $scripturl . '?action=dlattach;topic=' . $attachments[$i]['topic'] . '.0;attach=' . $attachments[$i]['id'],
					'img' => '',
					'filename' => $attachments[$i]['filename'],
					'downloads' => $attachments[$i]['downloads'],
					'subject' => $attachments[$i]['subject'],
					'id' => $attachments[$i]['id'],
				);

				// Show a thumbnail image as well?
				if ($attachments[$i]['is_image'] && !empty($modSettings['attachmentShowImages']) && !empty($modSettings['attachmentThumbnails']))
				{
					if (!empty($attachments[$i]['id_thumb']))
					{
						$context['thumbs'][$i]['img'] = '';
					}
					else
					{
						// No thumbnail available ... use html instead
						if (!empty($modSettings['attachmentThumbWidth']) && !empty($modSettings['attachmentThumbHeight']))
						{
							if ($attachments[$i]['width'] > $modSettings['attachmentThumbWidth'] || $attachments[$i]['height'] > $modSettings['attachmentThumbHeight'])
							{
								$context['thumbs'][$i]['img'] = '';
							}
							else
							{
								$context['thumbs'][$i]['img'] = '';
							}
						}
					}
				}
				// Not an image so lets set a mime thumbnail based off the filetype
				else
				{
					if ((!empty($modSettings['attachmentThumbWidth']) && !empty($modSettings['attachmentThumbHeight'])) && (128 > $modSettings['attachmentThumbWidth'] || 128 > $modSettings['attachmentThumbHeight']))
					{
						$context['thumbs'][$i]['img'] = '';
					}
					else
					{
						$context['thumbs'][$i]['img'] = '';
					}
				}
			}
		}
	}

	/**
	 * Show all posts by the current user.
	 *
	 * @todo This function needs to be split up properly.
	 */
	public function action_showPosts()
	{
		global $txt, $user_info, $scripturl, $modSettings, $context, $user_profile, $board;

		// Some initial context.
		$context['start'] = $this->http_req->getQuery('start', 'intval', 0);
		$context['current_member'] = $this->_memID;

		$this->_templates->load('ProfileInfo');

		// Create the tabs for the template.
		$context[$context['profile_menu_name']]['tab_data'] = array(
			'title' => $txt['showPosts'],
			'description' => $txt['showPosts_help'],
			'class' => 'profile',
			'tabs' => array(
				'messages' => array(
				),
				'topics' => array(
				),
				'unwatchedtopics' => array(
				),
				'attach' => array(
				),
			),
		);

		// Set the page title
		$context['page_title'] = $txt['showPosts'] . ' - ' . $user_profile[$this->_memID]['real_name'];

		// Is the load average too high to allow searching just now?
		if (checkLoad('show_posts'))
			$this->_errors->fatal_lang_error('loadavg_show_posts_disabled', false);

		// If we're specifically dealing with attachments use that function!
		if ($this->http_req->getQuery('sa', 'trim', '') === 'attach')
			return $this->action_showAttachments();
		// Instead, if we're dealing with unwatched topics (and the feature is enabled) use that other function.
		elseif ($this->http_req->getQuery('sa', 'trim', '') === 'unwatchedtopics' && $modSettings['enable_unwatch'])
			return $this->action_showUnwatched();

		// Are we just viewing topics?
		$context['is_topics'] = $this->http_req->getQuery('sa', 'trim', '') === 'topics' ? true : false;

		// If just deleting a message, do it and then redirect back.
		if (isset($this->http_req->query->delete) && !$context['is_topics'])
		{
			$this->session->check('get');

			// We can be lazy, since removeMessage() will check the permissions for us.
			$remover = new MessagesDelete($modSettings['recycle_enable'], $modSettings['recycle_board']);
			$remover->removeMessage((int) $this->http_req->query->delete);

			// Back to... where we are now ;).
			redirectexit('action=profile;u=' . $this->_memID . ';area=showposts;start=' . $context['start']);
		}

		if ($context['is_topics'])
			$msgCount = $this->elk['profile']->count_user_topics($this->_memID, $board);
		else
			$msgCount = $this->elk['profile']->count_user_posts($this->_memID, $board);

		list ($min_msg_member, $max_msg_member) = $this->elk['profile']->findMinMaxUserMessage($this->_memID, $board);
		$range_limit = '';
		$maxIndex = (int) $modSettings['defaultMaxMessages'];

		// Make sure the starting place makes sense and construct our friend the page index.
		$context['page_index'] = constructPageIndex($scripturl . '?action=profile;u=' . $this->_memID . ';area=showposts' . ($context['is_topics'] ? ';sa=topics' : ';sa=messages') . (!empty($board) ? ';board=' . $board : ''), $context['start'], $msgCount, $maxIndex);
		$context['current_page'] = $context['start'] / $maxIndex;

		// Reverse the query if we're past 50% of the pages for better performance.
		$start = $context['start'];
		$reverse = $this->http_req->getQuery('start', 'intval', 0) > $msgCount / 2;
		if ($reverse)
		{
			$maxIndex = $msgCount < $context['start'] + $modSettings['defaultMaxMessages'] + 1 && $msgCount > $context['start'] ? $msgCount - $context['start'] : (int) $modSettings['defaultMaxMessages'];
			$start = $msgCount < $context['start'] + $modSettings['defaultMaxMessages'] + 1 || $msgCount < $context['start'] + $modSettings['defaultMaxMessages'] ? 0 : $msgCount - $context['start'] - $modSettings['defaultMaxMessages'];
		}

		// Guess the range of messages to be shown to help minimize what the query needs to do
		if ($msgCount > 1000)
		{
			$margin = floor(($max_msg_member - $min_msg_member) * (($start + $modSettings['defaultMaxMessages']) / $msgCount) + .1 * ($max_msg_member - $min_msg_member));

			// Make a bigger margin for topics only.
			if ($context['is_topics'])
			{
				$margin *= 5;
				$range_limit = $reverse ? 't.id_first_msg < ' . ($min_msg_member + $margin) : 't.id_first_msg > ' . ($max_msg_member - $margin);
			}
			else
				$range_limit = $reverse ? 'm.id_msg < ' . ($min_msg_member + $margin) : 'm.id_msg > ' . ($max_msg_member - $margin);
		}

		// Find this user's posts or topics started
		if ($context['is_topics'])
			$rows = $this->elk['profile']->load_user_topics($this->_memID, $start, $maxIndex, $range_limit, $reverse, $board);
		else
			$rows = $this->elk['profile']->load_user_posts($this->_memID, $start, $maxIndex, $range_limit, $reverse, $board);

		// Start counting at the number of the first message displayed.
		$counter = $reverse ? $context['start'] + $maxIndex + 1 : $context['start'];
		$context['posts'] = array();
		$board_ids = array('own' => array(), 'any' => array());
		$bbc_parser = $GLOBALS['elk']['bbc'];
		foreach ($rows as $row)
		{
			// Censor....
			$row['body'] = censor($row['body']);
			$row['body'] = censor($row['subject']);

			// Do the code.
			$row['body'] = $bbc_parser->parseMessage($row['body'], $row['smileys_enabled']);

			// And the array...
			$context['posts'][$counter += $reverse ? -1 : 1] = array(
				'body' => $row['body'],
				'counter' => $counter,
				'alternate' => $counter % 2,
				'category' => array(
					'name' => $row['cname'],
					'id' => $row['id_cat']
				),
				'board' => array(
					'name' => $row['bname'],
					'id' => $row['id_board'],
					'link' => '' . $row['bname'] . '',
				),
				'topic' => array(
					'id' => $row['id_topic'],
					'link' => '' . $row['subject'] . '',
				),
				'subject' => $row['subject'],
				'start' => 'msg' . $row['id_msg'],
				'time' => standardTime($row['poster_time']),
				'html_time' => htmlTime($row['poster_time']),
				'timestamp' => forum_time(true, $row['poster_time']),
				'id' => $row['id_msg'],
				'tests' => array(
					'can_reply' => false,
					'can_mark_notify' => false,
					'can_delete' => false,
				),
				'delete_possible' => ($row['id_first_msg'] != $row['id_msg'] || $row['id_last_msg'] == $row['id_msg']) && (empty($modSettings['edit_disable_time']) || $row['poster_time'] + $modSettings['edit_disable_time'] * 60 >= time()),
				'approved' => $row['approved'],

				'buttons' => array(
					// How about... even... remove it entirely?!
					'remove' => array(
						'href' => $scripturl . '?action=deletemsg;msg=' . $row['id_msg'] . ';topic=' . $row['id_topic'] . ';profile;u=' . $context['member']['id'] . ';start=' . $context['start'] . ';' . $context['session_var'] . '=' . $context['session_id'],
						'text' => $txt['remove'],
						'test' => 'can_delete',
						'custom' => 'onclick="return confirm(' . JavaScriptEscape($txt['remove_message'] . '?') . ');"',
					),
					// Can we request notification of topics?
					'notify' => array(
						'href' => $scripturl . '?action=notify;topic=' . $row['id_topic'] . '.msg' . $row['id_msg'],
						'text' => $txt['notify'],
						'test' => 'can_mark_notify',
					),
					// If they *can* reply?
					'reply' => array(
						'href' => $scripturl . '?action=post;topic=' . $row['id_topic'] . '.msg' . $row['id_msg'],
						'text' => $txt['reply'],
						'test' => 'can_reply',
					),
					// If they *can* quote?
					'quote' => array(
						'href' => $scripturl . '?action=post;topic=' . $row['id_topic'] . '.msg' . $row['id_msg'] . ';quote=' . $row['id_msg'],
						'text' => $txt['quote'],
						'test' => 'can_quote',
					),
				)
			);

			if ($user_info['id'] == $row['id_member_started'])
				$board_ids['own'][$row['id_board']][] = $counter;
			$board_ids['any'][$row['id_board']][] = $counter;
		}

		// All posts were retrieved in reverse order, get them right again.
		if ($reverse)
			$context['posts'] = array_reverse($context['posts'], true);

		// These are all the permissions that are different from board to board..
		if ($context['is_topics'])
			$permissions = array(
				'own' => array(
					'post_reply_own' => 'can_reply',
				),
				'any' => array(
					'post_reply_any' => 'can_reply',
					'mark_any_notify' => 'can_mark_notify',
				)
			);
		else
			$permissions = array(
				'own' => array(
					'post_reply_own' => 'can_reply',
					'delete_own' => 'can_delete',
				),
				'any' => array(
					'post_reply_any' => 'can_reply',
					'mark_any_notify' => 'can_mark_notify',
					'delete_any' => 'can_delete',
				)
			);

		// For every permission in the own/any lists...
		foreach ($permissions as $type => $list)
		{
			foreach ($list as $permission => $allowed)
			{
				// Get the boards they can do this on...
				$boards = boardsAllowedTo($permission);

				// Hmm, they can do it on all boards, can they?
				if (!empty($boards) && $boards[0] == 0)
					$boards = array_keys($board_ids[$type]);

				// Now go through each board they can do the permission on.
				foreach ($boards as $board_id)
				{
					// There aren't any posts displayed from this board.
					if (!isset($board_ids[$type][$board_id]))
						continue;

					// Set the permission to true ;).
					foreach ($board_ids[$type][$board_id] as $counter)
						$context['posts'][$counter]['tests'][$allowed] = true;
				}
			}
		}

		// Clean up after posts that cannot be deleted and quoted.
		$quote_enabled = empty($modSettings['disabledBBC']) || !in_array('quote', explode(',', $modSettings['disabledBBC']));
		foreach ($context['posts'] as $counter => $dummy)
		{
			$context['posts'][$counter]['tests']['can_delete'] &= $context['posts'][$counter]['delete_possible'];
			$context['posts'][$counter]['tests']['can_quote'] = $context['posts'][$counter]['tests']['can_reply'] && $quote_enabled;
		}
	}

	/**
	 * Show all the attachments of a user.
	 */
	public function action_showAttachments()
	{
		global $txt, $scripturl, $modSettings, $context;

		// OBEY permissions!
		$boardsAllowed = boardsAllowedTo('view_attachments');

		// Make sure we can't actually see anything...
		if (empty($boardsAllowed))
			$boardsAllowed = array(-1);

		// This is all the information required to list attachments.
		$listOptions = array(
			'id' => 'profile_attachments',
			'title' => $txt['showAttachments'] . ($context['user']['is_owner'] ? '' : ' - ' . $context['member']['name']),
			'items_per_page' => $modSettings['defaultMaxMessages'],
			'no_items_label' => $txt['show_attachments_none'],
			'base_href' => $scripturl . '?action=profile;area=showposts;sa=attach;u=' . $this->_memID,
			'default_sort_col' => 'filename',
			'get_items' => array(
				'function' => array($this, 'list_getAttachments'),
				'params' => array(
					$boardsAllowed,
				),
			),
			'get_count' => array(
				'function' => array($this, 'list_getNumAttachments'),
				'params' => array(
					$boardsAllowed,
				),
			),
			'data_check' => array(
				'class' => function ($data) {
					return $data['approved'] ? '' : 'approvebg';
				},
			),
			'columns' => array(
				'filename' => array(
					'header' => array(
						'value' => $txt['show_attach_filename'],
						'class' => 'lefttext',
						'style' => 'width: 25%;',
					),
					'data' => array(
						'db' => 'filename',
					),
					'sort' => array(
						'default' => 'a.filename',
						'reverse' => 'a.filename DESC',
					),
				),
				'downloads' => array(
					'header' => array(
						'value' => $txt['show_attach_downloads'],
						'style' => 'width: 12%;',
					),
					'data' => array(
						'db' => 'downloads',
						'comma_format' => true,
					),
					'sort' => array(
						'default' => 'a.downloads',
						'reverse' => 'a.downloads DESC',
					),
				),
				'subject' => array(
					'header' => array(
						'value' => $txt['message'],
						'class' => 'lefttext',
						'style' => 'width: 30%;',
					),
					'data' => array(
						'db' => 'subject',
					),
					'sort' => array(
						'default' => 'm.subject',
						'reverse' => 'm.subject DESC',
					),
				),
				'posted' => array(
					'header' => array(
						'value' => $txt['show_attach_posted'],
						'class' => 'lefttext',
					),
					'data' => array(
						'db' => 'posted',
						'timeformat' => true,
					),
					'sort' => array(
						'default' => 'm.poster_time',
						'reverse' => 'm.poster_time DESC',
					),
				),
			),
		);

		// Create the request list.
		createList($listOptions);

		$context['sub_template'] = 'show_list';
		$context['default_list'] = 'profile_attachments';
	}

	/**
	 * Show all the unwatched topics.
	 */
	public function action_showUnwatched()
	{
		global $txt, $user_info, $scripturl, $modSettings, $context;

		// Only the owner can see the list (if the function is enabled of course)
		if ($user_info['id'] != $this->_memID || !$modSettings['enable_unwatch'])
			return;

		// And here they are: the topics you don't like
		$listOptions = array(
			'id' => 'unwatched_topics',
			'title' => $txt['showUnwatched'],
			'items_per_page' => $modSettings['defaultMaxMessages'],
			'no_items_label' => $txt['unwatched_topics_none'],
			'base_href' => $scripturl . '?action=profile;area=showposts;sa=unwatchedtopics;u=' . $this->_memID,
			'default_sort_col' => 'started_on',
			'get_items' => array(
				'function' => array($this, 'list_getUnwatched'),
			),
			'get_count' => array(
				'function' => array($this, 'list_getNumUnwatched'),
			),
			'columns' => array(
				'subject' => array(
					'header' => array(
						'value' => $txt['subject'],
						'class' => 'lefttext',
						'style' => 'width: 30%;',
					),
					'data' => array(
						'sprintf' => array(
							'format' => '%2$s',
							'params' => array(
								'id_topic' => false,
								'subject' => false,
							),
						),
					),
					'sort' => array(
						'default' => 'm.subject',
						'reverse' => 'm.subject DESC',
					),
				),
				'started_by' => array(
					'header' => array(
						'value' => $txt['started_by'],
						'style' => 'width: 15%;',
					),
					'data' => array(
						'db' => 'started_by',
					),
					'sort' => array(
						'default' => 'mem.real_name',
						'reverse' => 'mem.real_name DESC',
					),
				),
				'started_on' => array(
					'header' => array(
						'value' => $txt['on'],
						'class' => 'lefttext',
						'style' => 'width: 20%;',
					),
					'data' => array(
						'db' => 'started_on',
						'timeformat' => true,
					),
					'sort' => array(
						'default' => 'm.poster_time',
						'reverse' => 'm.poster_time DESC',
					),
				),
				'last_post_by' => array(
					'header' => array(
						'value' => $txt['last_post'],
						'style' => 'width: 15%;',
					),
					'data' => array(
						'db' => 'last_post_by',
					),
					'sort' => array(
						'default' => 'mem.real_name',
						'reverse' => 'mem.real_name DESC',
					),
				),
				'last_post_on' => array(
					'header' => array(
						'value' => $txt['on'],
						'class' => 'lefttext',
						'style' => 'width: 20%;',
					),
					'data' => array(
						'db' => 'last_post_on',
						'timeformat' => true,
					),
					'sort' => array(
						'default' => 'm.poster_time',
						'reverse' => 'm.poster_time DESC',
					),
				),
			),
		);

		// Create the request list.
		createList($listOptions);

		$context['sub_template'] = 'show_list';
		$context['default_list'] = 'unwatched_topics';
	}

	/**
	 * Gets the user stats for display.
	 */
	public function action_statPanel()
	{
		global $txt, $context, $user_profile, $modSettings;

		$context['page_title'] = $txt['statPanel_showStats'] . ' ' . $user_profile[$this->_memID]['real_name'];

		// Is the load average too high to allow searching just now?
		if (checkLoad('userstats'))
			$this->_errors->fatal_lang_error('loadavg_userstats_disabled', false);

		$this->_templates->load('ProfileInfo');

		// General user statistics.
		$timeDays = floor($user_profile[$this->_memID]['total_time_logged_in'] / 86400);
		$timeHours = floor(($user_profile[$this->_memID]['total_time_logged_in'] % 86400) / 3600);
		$context['time_logged_in'] = ($timeDays > 0 ? $timeDays . $txt['totalTimeLogged2'] : '') . ($timeHours > 0 ? $timeHours . $txt['totalTimeLogged3'] : '') . floor(($user_profile[$this->_memID]['total_time_logged_in'] % 3600) / 60) . $txt['totalTimeLogged4'];
		$context['num_posts'] = comma_format($user_profile[$this->_memID]['posts']);

		// Menu tab
		$context[$context['profile_menu_name']]['tab_data'] = array(
			'title' => $txt['statPanel_generalStats'] . ' - ' . $context['member']['name'],
			'class' => 'stats_info'
		);

		// Number of topics started.
		$context['num_topics'] = $this->elk['about.stats']->UserStatsTopicsStarted($this->_memID);

		// Number of polls started.
		$context['num_polls'] = $this->elk['about.stats']->UserStatsPollsStarted($this->_memID);

		// Number of polls voted in.
		$context['num_votes'] = $this->elk['about.stats']->UserStatsPollsVoted($this->_memID);

		// Format the numbers...
		$context['num_topics'] = comma_format($context['num_topics']);
		$context['num_polls'] = comma_format($context['num_polls']);
		$context['num_votes'] = comma_format($context['num_votes']);

		// Grab the boards this member posted in most often.
		$context['popular_boards'] = $this->elk['about.stats']->UserStatsMostPostedBoard($this->_memID);

		// Now get the 10 boards this user has most often participated in.
		$context['board_activity'] = $this->elk['about.stats']->UserStatsMostActiveBoard($this->_memID);

		// Posting activity by time.
		$context['posts_by_time'] = $this->elk['about.stats']->UserStatsPostingTime($this->_memID);

		// Custom stats (just add a template_layer to add it to the template!)
		$this->hooks->hook('profile_stats', array($this->_memID));
	}

	/**
	 * Show permissions for a user.
	 */
	public function action_showPermissions()
	{
		global $txt, $board, $user_profile, $context, $scripturl;

		// Verify if the user has sufficient permissions.
		isAllowedTo('manage_permissions');

		loadLanguage('ManagePermissions');
		loadLanguage('Admin');
		$this->_templates->load('ManageMembers');
		$this->_templates->load('ProfileInfo');

		// Load all the permission profiles.
		loadPermissionProfiles();

		$context['member']['id'] = $this->_memID;
		$context['member']['name'] = $user_profile[$this->_memID]['real_name'];

		$context['page_title'] = $txt['showPermissions'];
		$board = empty($board) ? 0 : (int) $board;
		$context['board'] = $board;

		// Determine which groups this user is in.
		if (empty($user_profile[$this->_memID]['additional_groups']))
			$curGroups = array();
		else
			$curGroups = explode(',', $user_profile[$this->_memID]['additional_groups']);

		$curGroups[] = $user_profile[$this->_memID]['id_group'];
		$curGroups[] = $user_profile[$this->_memID]['id_post_group'];

		// Load a list of boards for the jump box - except the defaults.

		$board_list = getBoardList(array('moderator' => $this->_memID), true);

		$context['boards'] = array();
		$context['no_access_boards'] = array();
		foreach ($board_list as $row)
		{
			if (count(array_intersect($curGroups, explode(',', $row['member_groups']))) === 0 && !$row['is_mod'])
				$context['no_access_boards'][] = array(
					'id' => $row['id_board'],
					'name' => $row['board_name'],
					'is_last' => false,
				);
			elseif ($row['id_profile'] != 1 || $row['is_mod'])
				$context['boards'][$row['id_board']] = array(
					'id' => $row['id_board'],
					'name' => $row['board_name'],
					'url' => $scripturl, '?board=', $row['id_board'], '.0',
					'selected' => $board == $row['id_board'],
					'profile' => $row['id_profile'],
					'profile_name' => $context['profiles'][$row['id_profile']]['name'],
				);
		}

		if (!empty($context['no_access_boards']))
			$context['no_access_boards'][count($context['no_access_boards']) - 1]['is_last'] = true;

		$context['member']['permissions'] = array(
			'general' => array(),
			'board' => array()
		);

		// If you're an Admin we know you can do everything, we might as well leave.
		$context['member']['has_all_permissions'] = in_array(1, $curGroups);
		if ($context['member']['has_all_permissions'])
			return;

		// Get all general permissions for the groups this member is in
		$context['member']['permissions']['general'] = getMemberGeneralPermissions($curGroups);

		// Get all board permissions for this member
		$context['member']['permissions']['board'] = getMemberBoardPermissions($this->_memID, $curGroups, $board);
	}

	/**
	 * View a members warnings.
	 */
	public function action_viewWarning()
	{
		global $modSettings, $context, $txt, $scripturl;

		// Firstly, can we actually even be here?
		if (!allowedTo('issue_warning') && (empty($modSettings['warning_show']) || ($modSettings['warning_show'] == 1 && !$context['user']['is_owner'])))
			$this->_errors->fatal_lang_error('no_access', false);

		$this->_templates->load('ProfileInfo');

		// We need this because of template_load_warning_variables
		$this->_templates->load('Profile');

		// Make sure things which are disabled stay disabled.
		$modSettings['warning_watch'] = !empty($modSettings['warning_watch']) ? $modSettings['warning_watch'] : 110;
		$modSettings['warning_moderate'] = !empty($modSettings['warning_moderate']) && !empty($modSettings['postmod_active']) ? $modSettings['warning_moderate'] : 110;
		$modSettings['warning_mute'] = !empty($modSettings['warning_mute']) ? $modSettings['warning_mute'] : 110;

		// Let's use a generic list to get all the current warnings
		// and use the issue warnings grab-a-granny thing.
		$listOptions = array(
			'id' => 'view_warnings',
			'title' => $txt['profile_viewwarning_previous_warnings'],
			'items_per_page' => $modSettings['defaultMaxMessages'],
			'no_items_label' => $txt['profile_viewwarning_no_warnings'],
			'base_href' => $scripturl . '?action=profile;area=viewwarning;sa=user;u=' . $this->_memID,
			'default_sort_col' => 'log_time',
			'get_items' => array(
				'function' => 'list_getUserWarnings',
				'params' => array(
					$this->_memID,
				),
			),
			'get_count' => array(
				'function' => 'list_getUserWarningCount',
				'params' => array(
					$this->_memID,
				),
			),
			'columns' => array(
				'log_time' => array(
					'header' => array(
						'value' => $txt['profile_warning_previous_time'],
					),
					'data' => array(
						'db' => 'time',
					),
					'sort' => array(
						'default' => 'lc.log_time DESC',
						'reverse' => 'lc.log_time',
					),
				),
				'reason' => array(
					'header' => array(
						'value' => $txt['profile_warning_previous_reason'],
						'style' => 'width: 50%;',
					),
					'data' => array(
						'db' => 'reason',
					),
				),
				'level' => array(
					'header' => array(
						'value' => $txt['profile_warning_previous_level'],
					),
					'data' => array(
						'db' => 'counter',
					),
					'sort' => array(
						'default' => 'lc.counter DESC',
						'reverse' => 'lc.counter',
					),
				),
			),
			'additional_rows' => array(
				array(
					'position' => 'after_title',
					'value' => $txt['profile_viewwarning_desc'],
					'class' => 'smalltext',
					'style' => 'padding: 2ex;',
				),
			),
		);

		// Create the list for viewing.
		createList($listOptions);

		// Create some common text bits for the template.
		$context['level_effects'] = array(
			0 => '',
			$modSettings['warning_watch'] => $txt['profile_warning_effect_own_watched'],
			$modSettings['warning_moderate'] => $txt['profile_warning_effect_own_moderated'],
			$modSettings['warning_mute'] => $txt['profile_warning_effect_own_muted'],
		);
		$context['current_level'] = 0;
		$context['sub_template'] = 'viewWarning';

		foreach ($context['level_effects'] as $limit => $dummy)
		{
			if ($context['member']['warning'] >= $limit)
				$context['current_level'] = $limit;
		}
	}

	/**
	 * Get a list of attachments for this user
	 * Callback for createList()
	 *
	 * @param int $start The item to start with (for pagination purposes)
	 * @param int $items_per_page  The number of items to show per page
	 * @param string $sort A string indicating how to sort the results
	 * @param int[] $boardsAllowed
	 */
	public function list_getAttachments($start, $items_per_page, $sort, $boardsAllowed)
	{
		// @todo tweak this method to use $context, etc,
		// then call subs function with params set.
		return $this->elk['profile']->profileLoadAttachments($start, $items_per_page, $sort, $boardsAllowed, $this->_memID);
	}

	/**
	 * Callback for createList()
	 *
	 * @param int[] $boardsAllowed
	 */
	public function list_getNumAttachments($boardsAllowed)
	{
		// @todo tweak this method to use $context, etc,
		// then call subs function with params set.
		return $this->elk['profile']->getNumAttachments($boardsAllowed, $this->_memID);
	}

	/**
	 * Get the relevant topics in the unwatched list
	 * Callback for createList()
	 *
	 * @param int $start The item to start with (for pagination purposes)
	 * @param int $items_per_page  The number of items to show per page
	 * @param string $sort A string indicating how to sort the results
	 */
	public function list_getUnwatched($start, $items_per_page, $sort)
	{
		return getUnwatchedBy($start, $items_per_page, $sort, $this->_memID);
	}

	/**
	 * Count the number of topics in the unwatched list
	 * Callback for createList()
	 */
	public function list_getNumUnwatched()
	{
		return getNumUnwatchedBy($this->_memID);
	}
}


text:
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ProjectModuleManager">
    <modules>
      <module fileurl="file://$PROJECT_DIR$/.idea/Kenjutsu.iml" filepath="$PROJECT_DIR$/.idea/Kenjutsu.iml" />
    </modules>
  </component>
</project>


text:
Set a performance budget

Test and measure constantly

Optimize images, CSS and Javascript

Optimize font loading

Cache and gzip

Choose your tools and techniques wisely

Test!


text:
using System;

namespace MSCL_Inertial_Example_CSharp
{
    class Example5
    {
        public static void parseData(mscl.InertialNode node)
        {
            //endless loop of reading in data
            while (true)
            {
                //get all of the next data packet from the node, with a timeout of 500 milliseconds
                mscl.MipDataPackets packets = node.getDataPackets(500);

                foreach (mscl.MipDataPacket packet in packets)
                {
                    //print out the data
                    Console.Write("Packet Received: ");

                    //iterate over all the data points in the packet
                    foreach (mscl.MipDataPoint dataPoint in packet.data())
                    {
                        Console.Write(dataPoint.channelName() + ":");

                        //print out the channel data
                        //Note: The as_string() function is being used here for simplicity.
                        //      Other methods (ie. as_float, as_uint16, as_Vector) are also available.
                        //      To determine the format that a dataPoint is stored in, use dataPoint.storedAs().
                        Console.Write(dataPoint.as_string() + " ");

                        //if the dataPoint is invalid
                        if (!dataPoint.valid())
                        {
                            //print out that it is invalid
                            Console.Write("[Invalid] ");
                        }
                    }
                    Console.WriteLine();
                }
            }
        }
    }
}


text:
<?xml version="1.0" encoding="UTF-8"?>
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
    <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
    <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
        <group>
            <file>file:/home/gaspar/Dropbox/Projects_UCR/Distributed_Systems/Client/src/node/Node.java</file>
            <file>file:/home/gaspar/Dropbox/Projects_UCR/Distributed_Systems/Client/src/chord/Chord.java</file>
        </group>
    </open-files>
</project-private>


text:
package exceptions;

/**
 *
 * @author Joris Schelfaut
 */
public class AuthenticationException extends RuntimeException {

    /**
     * @param username the username of the user that failed to authenticate.
     */
    public AuthenticationException(String username) {
        super("The user with name '" + username +
                "' was not authenticated for this operation.");
    }
}


text:
// Copyright 2022 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// ** This file is automatically generated by gapic-generator-typescript. **
// ** https://github.com/googleapis/gapic-generator-typescript **
// ** All changes to this file may be overwritten. **

'use strict';

function main(securityMarks) {
  // [START securitycenter_v1_generated_SecurityCenter_UpdateSecurityMarks_async]
  /**
   * This snippet has been automatically generated and should be regarded as a code template only.
   * It will require modifications to work.
   * It may require correct/in-range values for request initialization.
   * TODO(developer): Uncomment these variables before running the sample.
   */
  /**
   *  Required. The security marks resource to update.
   */
  // const securityMarks = {}
  /**
   *  The FieldMask to use when updating the security marks resource.
   *  The field mask must not contain duplicate fields.
   *  If empty or set to "marks", all marks will be replaced.  Individual
   *  marks can be updated using "marks.<mark_key>".
   */
  // const updateMask = {}
  /**
   *  The time at which the updated SecurityMarks take effect.
   *  If not set uses current server time.  Updates will be applied to the
   *  SecurityMarks that are active immediately preceding this time. Must be
   *  earlier or equal to the server time.
   */
  // const startTime = {}

  // Imports the Securitycenter library
  const {SecurityCenterClient} = require('@google-cloud/security-center').v1;

  // Instantiates a client
  const securitycenterClient = new SecurityCenterClient();

  async function callUpdateSecurityMarks() {
    // Construct request
    const request = {
      securityMarks,
    };

    // Run request
    const response = await securitycenterClient.updateSecurityMarks(request);
    console.log(response);
  }

  callUpdateSecurityMarks();
  // [END securitycenter_v1_generated_SecurityCenter_UpdateSecurityMarks_async]
}

process.on('unhandledRejection', err => {
  console.error(err.message);
  process.exitCode = 1;
});
main(...process.argv.slice(2));


text:
package com.microsoft.services.outlook.fetchers;

import com.microsoft.services.outlook.*;
import com.google.common.util.concurrent.*;
import com.microsoft.services.orc.core.*;
import com.microsoft.services.orc.core.Readable;

/**
 * The type  Notification
 */
public class NotificationFetcher extends OrcEntityFetcher<Notification,NotificationOperations>
                                     implements Readable<Notification> {

     /**
     * Instantiates a new NotificationFetcher.
     *
     * @param urlComponent the url component
     * @param parent the parent
     */
     public NotificationFetcher(String urlComponent, OrcExecutable parent) {
        super(urlComponent, parent, Notification.class, NotificationOperations.class);
    }

     /**
     * Add parameter.
     *
     * @param name the name
     * @param value the value
     * @return the fetcher
     */
    public NotificationFetcher addParameter(String name, Object value) {
        addCustomParameter(name, value);
        return this;
    }

	/**
     * Add header.
     *
     * @param name the name
     * @param value the value
     * @return the fetcher
     */
    public NotificationFetcher addHeader(String name, String value) {
        addCustomHeader(name, value);
        return this;
    }

         /**
     * Gets resourcedata.
     *
     * @return the resource data
     */
    public EntityFetcher getResourceDatum() {
        return new EntityFetcher("ResourceData", this);
    }

}


text:
package de.viktorreiser.androidtoolbox.showcase.drawable;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import de.viktorreiser.androidtoolbox.showcase.DrawableShowcaseActivity;
import de.viktorreiser.toolbox.graphics.drawable.StatusTextDrawable;
import de.viktorreiser.toolbox.util.AndroidUtils;

/**
 * Demonstration of {@link StatusTextDrawable}.
 *
 * @author Viktor Reiser <viktorreiser@gmx.de>
 */
public class StatusTextDrawableActivity extends Activity {

	// OVERRIDDEN =================================================================================

	@Override
	public void onCreate(Bundle bundle) {
		super.onCreate(bundle);
		setTitle(DrawableShowcaseActivity.getActivityTitle(this.getClass()));

		// we will create a 2 (width) x 4 (height) grid and set the custom drawable to each view

		LinearLayout mainLayout = getLinearRowLayout();
		mainLayout.setOrientation(LinearLayout.VERTICAL);
		mainLayout.setBackgroundColor(0xff000088);

		LinearLayout row;

		row = getLinearRowLayout();
		row.addView(getStatusTextView("1", true, 0xffffffff, 0x88ff0000, 0x88000000, 0.1f, -1, 0.3f));
		row.addView(getStatusTextView("41", false, 0xffffffff, 0x88ff0000, 0x88000000, 0.1f, -1, 0.3f));
		mainLayout.addView(row);

		row = getLinearRowLayout();
		row.addView(getStatusTextView("OK", true, 0x88ff0000, 0x880ff000, 0x550ff000, 0.2f, 0.2f, 0.2f));
		row.addView(getStatusTextView("WRONG", false, 0x88ff0000, 0x880ff000, 0x550ff000, 0.2f, 0.2f, 0.2f));
		mainLayout.addView(row);

		row = getLinearRowLayout();
		row.addView(getStatusTextView("1A", true, 0xffffffff, 0xffff0000, 0xff330000, 0.3f, 0, 0.1f));
		row.addView(getStatusTextView("2*", false, 0xffffffff, 0xffff0000, 0xff330000, 0.3f, 0, 0.1f));
		mainLayout.addView(row);

		row = getLinearRowLayout();
		row.addView(getStatusTextView(null, true, 0xffffffff, 0xffff0000, 0x88000000, 0, 0.5f, 0));
		row.addView(getStatusTextView("?", false, 0xffffffff, 0xffff0000, 0x88000000, 0, 1, 0.1f));
		mainLayout.addView(row);

		setContentView(mainLayout);
	}

	// PRIVATE ====================================================================================

	/**
	 * Create a view which will have the status text drawable.

	 *

	 * Parameters relate to status text drawable methods.
	 *
	 * @param text
	 * @param square
	 * @param textColor
	 * @param strokeColor
	 * @param fillColor
	 * @param strokeWidth
	 * @param cornerRadius
	 * @param textPadding
	 *
	 * @return view with status text drawable as background
	 */
	private View getStatusTextView(String text, boolean square, int textColor, int strokeColor,
			int fillColor, float strokeWidth, float cornerRadius, float textPadding) {
		StatusTextDrawable drawable = new StatusTextDrawable();
		drawable.setText(text);
		drawable.setSquare(square);
		drawable.setTextColor(textColor);
		drawable.setStrokeColor(strokeColor);
		drawable.setFillColor(fillColor);
		drawable.setStrokeWidth(strokeWidth);
		drawable.setCornerRadius(cornerRadius);
		drawable.setTextPadding(textPadding);

		View view = new View(this);
		view.setBackgroundDrawable(drawable);

		LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
				ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
		params.weight = 1f;
		params.bottomMargin = params.topMargin = params.leftMargin =
				params.rightMargin = AndroidUtils.dipToPixel(this, 10);
		view.setLayoutParams(params);

		return view;
	}

	/**
	 * Get row layout for demonstration UI (see onCreate).
	 *
	 * @return row layout for two status text drawable views
	 */
	private LinearLayout getLinearRowLayout() {
		LinearLayout row = new LinearLayout(this);
		row.setOrientation(LinearLayout.HORIZONTAL);

		LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
				ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
		params.weight = 1f;
		row.setLayoutParams(params);

		return row;
	}
}