Commit ec660728 authored by Grigory Fedorov's avatar Grigory Fedorov

New module (customized ankusachdeva/emojicom) added - unicode IOS emoticons keyboard.

parent ce9f1246

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

......@@ -71,6 +71,7 @@ dependencies {
compile "org.igniterealtime.smack:smack-tcp:$smackVersion"
compile project('otr4j')
compile project('MemorizingTrustManager')
compile project('emojicon')
compile 'com.soundcloud.android:android-crop:1.0.0@aar'
}
apply plugin: 'com.android.library'
android {
compileSdkVersion 23
buildToolsVersion "23"
defaultConfig {
minSdkVersion 14
targetSdkVersion 23
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:support-v4:23.0.0'
}
<?xml version="1.0" encoding="utf-8"?>
<lint>
</lint>
\ No newline at end of file
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="github.ankushsachdeva.emojicon">
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="19"/>
<application android:allowBackup="true"
android:label="@string/app_name"
android:icon="@drawable/ic_launcher">
</application>
</manifest>
/*
* Copyright 2014 Ankush Sachdeva
*
* 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.
*/
package github.ankushsachdeva.emojicon;
import github.ankushsachdeva.emojicon.EmojiconGridView.OnEmojiconClickedListener;
import github.ankushsachdeva.emojicon.emoji.Emojicon;
import java.util.List;
import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import github.ankushsachdeva.emojicon.R;
/**
* @author Ankush Sachdeva (sankush@yahoo.co.in)
*/
class EmojiAdapter extends ArrayAdapter<Emojicon> {
OnEmojiconClickedListener emojiClickListener;
public EmojiAdapter(Context context, List<Emojicon> data) {
super(context, R.layout.emojicon_item, data);
}
public EmojiAdapter(Context context, Emojicon[] data) {
super(context, R.layout.emojicon_item, data);
}
public void setEmojiClickListener(OnEmojiconClickedListener listener){
this.emojiClickListener = listener;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
v = View.inflate(getContext(), R.layout.emojicon_item, null);
ViewHolder holder = new ViewHolder();
holder.icon = (TextView) v.findViewById(R.id.emojicon_icon);
v.setTag(holder);
}
Emojicon emoji = getItem(position);
ViewHolder holder = (ViewHolder) v.getTag();
holder.icon.setText(emoji.getEmoji());
holder.icon.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
emojiClickListener.onEmojiconClicked(getItem(position));
}
});
return v;
}
class ViewHolder {
TextView icon;
}
}
\ No newline at end of file
/*
* Copyright 2014 Ankush Sachdeva
*
* 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.
*/
package github.ankushsachdeva.emojicon;
import github.ankushsachdeva.emojicon.R;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.widget.EditText;
/**
* @author Hieu Rocker (rockerhieu@gmail.com).
*/
public class EmojiconEditText extends EditText {
private int mEmojiconSize;
public EmojiconEditText(Context context) {
super(context);
mEmojiconSize = (int) getTextSize();
}
public EmojiconEditText(Context context, AttributeSet attrs) {
super(context, attrs);
init(attrs);
}
public EmojiconEditText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init(attrs);
}
private void init(AttributeSet attrs) {
TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.Emojicon);
mEmojiconSize = (int) a.getDimension(R.styleable.Emojicon_emojiconSize, getTextSize());
a.recycle();
setText(getText());
}
@Override
protected void onTextChanged(CharSequence text, int start, int lengthBefore, int lengthAfter) {
EmojiconHandler.addEmojis(getContext(), getText(), mEmojiconSize);
}
/**
* Set the size of emojicon in pixels.
*/
public void setEmojiconSize(int pixels) {
mEmojiconSize = pixels;
}
}
/*
* Copyright 2014 Ankush Sachdeva
*
* 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.
*/
package github.ankushsachdeva.emojicon;
import github.ankushsachdeva.emojicon.emoji.Emojicon;
import github.ankushsachdeva.emojicon.emoji.People;
import java.util.Arrays;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.GridView;
import github.ankushsachdeva.emojicon.R;
/**
* @author Hieu Rocker (rockerhieu@gmail.com)
* @author Ankush Sachdeva (sankush@yahoo.co.in)
*/
public class EmojiconGridView{
public View rootView;
EmojiconsPopup mEmojiconPopup;
EmojiconRecents mRecents;
Emojicon[] mData;
public EmojiconGridView(Context context, Emojicon[] emojicons, EmojiconRecents recents, EmojiconsPopup emojiconPopup) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
mEmojiconPopup = emojiconPopup;
rootView = inflater.inflate(R.layout.emojicon_grid, null);
setRecents(recents);
GridView gridView = (GridView) rootView.findViewById(R.id.Emoji_GridView);
if (emojicons== null) {
mData = People.DATA;
} else {
Object[] o = (Object[]) emojicons;
mData = Arrays.asList(o).toArray(new Emojicon[o.length]);
}
EmojiAdapter mAdapter = new EmojiAdapter(rootView.getContext(), mData);
mAdapter.setEmojiClickListener(new OnEmojiconClickedListener() {
@Override
public void onEmojiconClicked(Emojicon emojicon) {
if (mEmojiconPopup.onEmojiconClickedListener != null) {
mEmojiconPopup.onEmojiconClickedListener.onEmojiconClicked(emojicon);
}
if (mRecents != null) {
mRecents.addRecentEmoji(rootView.getContext(), emojicon);
}
}
});
gridView.setAdapter(mAdapter);
}
private void setRecents(EmojiconRecents recents) {
mRecents = recents;
}
public interface OnEmojiconClickedListener {
void onEmojiconClicked(Emojicon emojicon);
}
}
/*
* Copyright 2014 Ankush Sachdeva
*
* 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.
*/
package github.ankushsachdeva.emojicon;
import github.ankushsachdeva.emojicon.emoji.Emojicon;
import android.content.Context;
/**
* @author Daniele Ricci
*/
public interface EmojiconRecents {
public void addRecentEmoji(Context context, Emojicon emojicon);
}
/*
* Copyright 2014 Ankush Sachdeva
*
* 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.
*/
package github.ankushsachdeva.emojicon;
import github.ankushsachdeva.emojicon.emoji.Emojicon;
import android.content.Context;
import android.widget.GridView;
import github.ankushsachdeva.emojicon.R;
/**
* @author Daniele Ricci
* @author Ankush Sachdeva (sankush@yahoo.co.in)
*/
public class EmojiconRecentsGridView extends EmojiconGridView implements EmojiconRecents {
EmojiAdapter mAdapter;
public EmojiconRecentsGridView(Context context, Emojicon[] emojicons,
EmojiconRecents recents,EmojiconsPopup emojiconsPopup) {
super(context, emojicons, recents, emojiconsPopup);
EmojiconRecentsManager recents1 = EmojiconRecentsManager
.getInstance(rootView.getContext());
mAdapter = new EmojiAdapter(rootView.getContext(), recents1);
mAdapter.setEmojiClickListener(new OnEmojiconClickedListener() {
@Override
public void onEmojiconClicked(Emojicon emojicon) {
if (mEmojiconPopup.onEmojiconClickedListener != null) {
mEmojiconPopup.onEmojiconClickedListener.onEmojiconClicked(emojicon);
}
}
});
GridView gridView = (GridView) rootView.findViewById(R.id.Emoji_GridView);
gridView.setAdapter(mAdapter);
}
@Override
public void addRecentEmoji(Context context, Emojicon emojicon) {
EmojiconRecentsManager recents = EmojiconRecentsManager
.getInstance(context);
recents.push(emojicon);
// notify dataset changed
if (mAdapter != null)
mAdapter.notifyDataSetChanged();
}
}
/*
* Copyright 2014 Ankush Sachdeva
*
* 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.
*/
package github.ankushsachdeva.emojicon;
import github.ankushsachdeva.emojicon.emoji.Emojicon;
import java.util.ArrayList;
import java.util.StringTokenizer;
import android.content.Context;
import android.content.SharedPreferences;
/**
* @author Daniele Ricci
*/
public class EmojiconRecentsManager extends ArrayList<Emojicon> {
private static final String PREFERENCE_NAME = "emojicon";
private static final String PREF_RECENTS = "recent_emojis";
private static final String PREF_PAGE = "recent_page";
private static final Object LOCK = new Object();
private static EmojiconRecentsManager sInstance;
private Context mContext;
private EmojiconRecentsManager(Context context) {
mContext = context.getApplicationContext();
loadRecents();
}
public static EmojiconRecentsManager getInstance(Context context) {
if (sInstance == null) {
synchronized (LOCK) {
if (sInstance == null) {
sInstance = new EmojiconRecentsManager(context);
}
}
}
return sInstance;
}
public int getRecentPage() {
return getPreferences().getInt(PREF_PAGE, 0);
}
public void setRecentPage(int page) {
getPreferences().edit().putInt(PREF_PAGE, page).commit();
}
public void push(Emojicon object) {
// FIXME totally inefficient way of adding the emoji to the adapter
// TODO this should be probably replaced by a deque
if (contains(object)) {
super.remove(object);
}
add(0, object);
}
@Override
public boolean add(Emojicon object) {
boolean ret = super.add(object);
return ret;
}
@Override
public void add(int index, Emojicon object) {
super.add(index, object);
}
@Override
public boolean remove(Object object) {
boolean ret = super.remove(object);
return ret;
}
private SharedPreferences getPreferences() {
return mContext.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
}
private void loadRecents() {
SharedPreferences prefs = getPreferences();
String str = prefs.getString(PREF_RECENTS, "");
StringTokenizer tokenizer = new StringTokenizer(str, "~");
while (tokenizer.hasMoreTokens()) {
try {
add(new Emojicon(tokenizer.nextToken()));
}
catch (NumberFormatException e) {
// ignored
}
}
}
public void saveRecents() {
StringBuilder str = new StringBuilder();
int c = size();
for (int i = 0; i < c; i++) {
Emojicon e = get(i);
str.append(e.getEmoji());
if (i < (c - 1)) {
str.append('~');
}
}
SharedPreferences prefs = getPreferences();
prefs.edit().putString(PREF_RECENTS, str.toString()).commit();
}
}
/*
* Copyright 2014 Ankush Sachdeva
*
* 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.
*/
package github.ankushsachdeva.emojicon;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.text.style.DynamicDrawableSpan;
/**
* @author Hieu Rocker (rockerhieu@gmail.com)
*/
class EmojiconSpan extends DynamicDrawableSpan {
private final Context mContext;
private final int mResourceId;
private final int mSize;
private Drawable mDrawable;
public EmojiconSpan(Context context, int resourceId, int size) {
super();
mContext = context;
mResourceId = resourceId;
mSize = size;
}
public Drawable getDrawable() {
if (mDrawable == null) {
try {
mDrawable = mContext.getResources().getDrawable(mResourceId);
int size = mSize;
mDrawable.setBounds(0, 0, size, size);
} catch (Exception e) {
// swallow
}
}
return mDrawable;
}
}
\ No newline at end of file
/*
* Copyright 2014 Ankush Sachdeva
*
* 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.
*/
package github.ankushsachdeva.emojicon;
import github.ankushsachdeva.emojicon.R;
import android.content.Context;
import android.content.res.TypedArray;
import android.text.SpannableStringBuilder;
import android.util.AttributeSet;
import android.widget.TextView;
/**
* @author Hieu Rocker (rockerhieu@gmail.com).
*/
public class EmojiconTextView extends TextView {
private int mEmojiconSize;
private int mTextStart = 0;
private int mTextLength = -1;
public EmojiconTextView(Context context) {
super(context);
init(null);
}
public EmojiconTextView(Context context, AttributeSet attrs) {
super(context, attrs);
init(attrs);
}
public EmojiconTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init(attrs);
}
private void init(AttributeSet attrs) {
if (attrs == null) {
mEmojiconSize = (int) getTextSize();
} else {
TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.Emojicon);
mEmojiconSize = (int) a.getDimension(R.styleable.Emojicon_emojiconSize, getTextSize());
mTextStart = a.getInteger(R.styleable.Emojicon_emojiconTextStart, 0);
mTextLength = a.getInteger(R.styleable.Emojicon_emojiconTextLength, -1);
a.recycle();
}
setText(getText());
}
@Override
public void setText(CharSequence text, BufferType type) {
SpannableStringBuilder builder = new SpannableStringBuilder(text);
EmojiconHandler.addEmojis(getContext(), builder, mEmojiconSize, mTextStart, mTextLength);
super.setText(builder, type);
}
/**
* Set the size of emojicon in pixels.
*/
public void setEmojiconSize(int pixels) {
mEmojiconSize = pixels;
}
}
/*
* Copyright 2014 Ankush Sachdeva
*
* 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.
*/
package github.ankushsachdeva.emojicon.emoji;
import java.io.Serializable;
/**
* @author Hieu Rocker (rockerhieu@gmail.com)
*/
public class Emojicon implements Serializable {
private static final long serialVersionUID = 1L;
private String emoji;
private Emojicon() {
}
public static Emojicon fromCodePoint(int codePoint) {
Emojicon emoji = new Emojicon();
emoji.emoji = newString(codePoint);
return emoji;
}
public static Emojicon fromChar(char ch) {
Emojicon emoji = new Emojicon();
emoji.emoji = Character.toString(ch);
return emoji;
}
public static Emojicon fromChars(String chars) {
Emojicon emoji = new Emojicon();
emoji.emoji = chars;
return emoji;
}
public Emojicon(String emoji) {
this.emoji = emoji;
}
public String getEmoji() {
return emoji;
}
@Override
public boolean equals(Object o) {
return o instanceof Emojicon && emoji.equals(((Emojicon) o).emoji);
}
@Override
public int hashCode() {
return emoji.hashCode();
}
public static final String newString(int codePoint) {
if (Character.charCount(codePoint) == 1) {
return String.valueOf(codePoint);
} else {
return new String(Character.toChars(codePoint));
}
}
}
/*
* Copyright 2014 Ankush Sachdeva
*
* 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.
*/
package github.ankushsachdeva.emojicon.emoji;
/**
* @author Hieu Rocker (rockerhieu@gmail.com)
*/
public class Nature {
public static final Emojicon[] DATA = new Emojicon[]{
Emojicon.fromCodePoint(0x1f436),
Emojicon.fromCodePoint(0x1f43a),
Emojicon.fromCodePoint(0x1f431),
Emojicon.fromCodePoint(0x1f42d),
Emojicon.fromCodePoint(0x1f439),
Emojicon.fromCodePoint(0x1f430),
Emojicon.fromCodePoint(0x1f438),
Emojicon.fromCodePoint(0x1f42f),
Emojicon.fromCodePoint(0x1f428),
Emojicon.fromCodePoint(0x1f43b),
Emojicon.fromCodePoint(0x1f437),
Emojicon.fromCodePoint(0x1f43d),
Emojicon.fromCodePoint(0x1f42e),
Emojicon.fromCodePoint(0x1f417),
Emojicon.fromCodePoint(0x1f435),
Emojicon.fromCodePoint(0x1f412),
Emojicon.fromCodePoint(0x1f434),
Emojicon.fromCodePoint(0x1f411),
Emojicon.fromCodePoint(0x1f418),
Emojicon.fromCodePoint(0x1f43c),
Emojicon.fromCodePoint(0x1f427),
Emojicon.fromCodePoint(0x1f426),
Emojicon.fromCodePoint(0x1f424),
Emojicon.fromCodePoint(0x1f425),
Emojicon.fromCodePoint(0x1f423),
Emojicon.fromCodePoint(0x1f414),
Emojicon.fromCodePoint(0x1f40d),
Emojicon.fromCodePoint(0x1f422),
Emojicon.fromCodePoint(0x1f41b),
Emojicon.fromCodePoint(0x1f41d),
Emojicon.fromCodePoint(0x1f41c),
Emojicon.fromCodePoint(0x1f41e),
Emojicon.fromCodePoint(0x1f40c),
Emojicon.fromCodePoint(0x1f419),
Emojicon.fromCodePoint(0x1f41a),
Emojicon.fromCodePoint(0x1f420),
Emojicon.fromCodePoint(0x1f41f),
Emojicon.fromCodePoint(0x1f42c),
Emojicon.fromCodePoint(0x1f433),
Emojicon.fromCodePoint(0x1f40b),
Emojicon.fromCodePoint(0x1f404),
Emojicon.fromCodePoint(0x1f40f),
Emojicon.fromCodePoint(0x1f400),
Emojicon.fromCodePoint(0x1f403),
Emojicon.fromCodePoint(0x1f405),
Emojicon.fromCodePoint(0x1f407),
Emojicon.fromCodePoint(0x1f409),
Emojicon.fromCodePoint(0x1f40e),
Emojicon.fromCodePoint(0x1f410),
Emojicon.fromCodePoint(0x1f413),
Emojicon.fromCodePoint(0x1f415),
Emojicon.fromCodePoint(0x1f416),
Emojicon.fromCodePoint(0x1f401),
Emojicon.fromCodePoint(0x1f402),
Emojicon.fromCodePoint(0x1f432),
Emojicon.fromCodePoint(0x1f421),
Emojicon.fromCodePoint(0x1f40a),
Emojicon.fromCodePoint(0x1f42b),
Emojicon.fromCodePoint(0x1f42a),
Emojicon.fromCodePoint(0x1f406),
Emojicon.fromCodePoint(0x1f408),
Emojicon.fromCodePoint(0x1f429),
Emojicon.fromCodePoint(0x1f43e),
Emojicon.fromCodePoint(0x1f490),
Emojicon.fromCodePoint(0x1f338),
Emojicon.fromCodePoint(0x1f337),
Emojicon.fromCodePoint(0x1f340),
Emojicon.fromCodePoint(0x1f339),
Emojicon.fromCodePoint(0x1f33b),
Emojicon.fromCodePoint(0x1f33a),
Emojicon.fromCodePoint(0x1f341),
Emojicon.fromCodePoint(0x1f343),
Emojicon.fromCodePoint(0x1f342),
Emojicon.fromCodePoint(0x1f33f),
Emojicon.fromCodePoint(0x1f33e),
Emojicon.fromCodePoint(0x1f344),
Emojicon.fromCodePoint(0x1f335),
Emojicon.fromCodePoint(0x1f334),
Emojicon.fromCodePoint(0x1f332),
Emojicon.fromCodePoint(0x1f333),
Emojicon.fromCodePoint(0x1f330),
Emojicon.fromCodePoint(0x1f331),
Emojicon.fromCodePoint(0x1f33c),
Emojicon.fromCodePoint(0x1f310),
Emojicon.fromCodePoint(0x1f31e),
Emojicon.fromCodePoint(0x1f31d),
Emojicon.fromCodePoint(0x1f31a),
Emojicon.fromCodePoint(0x1f311),
Emojicon.fromCodePoint(0x1f312),
Emojicon.fromCodePoint(0x1f313),
Emojicon.fromCodePoint(0x1f314),
Emojicon.fromCodePoint(0x1f315),
Emojicon.fromCodePoint(0x1f316),
Emojicon.fromCodePoint(0x1f317),
Emojicon.fromCodePoint(0x1f318),
Emojicon.fromCodePoint(0x1f31c),
Emojicon.fromCodePoint(0x1f31b),
Emojicon.fromCodePoint(0x1f319),
Emojicon.fromCodePoint(0x1f30d),
Emojicon.fromCodePoint(0x1f30e),
Emojicon.fromCodePoint(0x1f30f),
Emojicon.fromCodePoint(0x1f30b),
Emojicon.fromCodePoint(0x1f30c),
Emojicon.fromCodePoint(0x1f320),
Emojicon.fromChar((char) 0x2b50),
Emojicon.fromChar((char) 0x2600),
Emojicon.fromChar((char) 0x26c5),
Emojicon.fromChar((char) 0x2601),
Emojicon.fromChar((char) 0x26a1),
Emojicon.fromChar((char) 0x2614),
Emojicon.fromChar((char) 0x2744),
Emojicon.fromChar((char) 0x26c4),
Emojicon.fromCodePoint(0x1f300),
Emojicon.fromCodePoint(0x1f301),
Emojicon.fromCodePoint(0x1f308),
Emojicon.fromCodePoint(0x1f30a),
};
}
/*
* Copyright 2014 Ankush Sachdeva
*
* 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.
*/
package github.ankushsachdeva.emojicon.emoji;
/**
* @author Hieu Rocker (rockerhieu@gmail.com)
*/
public class People {
public static final Emojicon[] DATA = new Emojicon[]{
Emojicon.fromCodePoint(0x1f604),
Emojicon.fromCodePoint(0x1f603),
Emojicon.fromCodePoint(0x1f600),
Emojicon.fromCodePoint(0x1f60a),
Emojicon.fromChar((char) 0x263a),
Emojicon.fromCodePoint(0x1f609),
Emojicon.fromCodePoint(0x1f60d),
Emojicon.fromCodePoint(0x1f618),
Emojicon.fromCodePoint(0x1f61a),
Emojicon.fromCodePoint(0x1f617),
Emojicon.fromCodePoint(0x1f619),
Emojicon.fromCodePoint(0x1f61c),
Emojicon.fromCodePoint(0x1f61d),
Emojicon.fromCodePoint(0x1f61b),
Emojicon.fromCodePoint(0x1f633),
Emojicon.fromCodePoint(0x1f601),
Emojicon.fromCodePoint(0x1f614),
Emojicon.fromCodePoint(0x1f60c),
Emojicon.fromCodePoint(0x1f612),
Emojicon.fromCodePoint(0x1f61e),
Emojicon.fromCodePoint(0x1f623),
Emojicon.fromCodePoint(0x1f622),
Emojicon.fromCodePoint(0x1f602),
Emojicon.fromCodePoint(0x1f62d),
Emojicon.fromCodePoint(0x1f62a),
Emojicon.fromCodePoint(0x1f625),
Emojicon.fromCodePoint(0x1f630),
Emojicon.fromCodePoint(0x1f605),
Emojicon.fromCodePoint(0x1f613),
Emojicon.fromCodePoint(0x1f629),
Emojicon.fromCodePoint(0x1f62b),
Emojicon.fromCodePoint(0x1f628),
Emojicon.fromCodePoint(0x1f631),
Emojicon.fromCodePoint(0x1f620),
Emojicon.fromCodePoint(0x1f621),
Emojicon.fromCodePoint(0x1f624),
Emojicon.fromCodePoint(0x1f616),
Emojicon.fromCodePoint(0x1f606),
Emojicon.fromCodePoint(0x1f60b),
Emojicon.fromCodePoint(0x1f637),
Emojicon.fromCodePoint(0x1f60e),
Emojicon.fromCodePoint(0x1f634),
Emojicon.fromCodePoint(0x1f635),
Emojicon.fromCodePoint(0x1f632),
Emojicon.fromCodePoint(0x1f61f),
Emojicon.fromCodePoint(0x1f626),
Emojicon.fromCodePoint(0x1f627),
Emojicon.fromCodePoint(0x1f608),
Emojicon.fromCodePoint(0x1f47f),
Emojicon.fromCodePoint(0x1f62e),
Emojicon.fromCodePoint(0x1f62c),
Emojicon.fromCodePoint(0x1f610),
Emojicon.fromCodePoint(0x1f615),
Emojicon.fromCodePoint(0x1f62f),
Emojicon.fromCodePoint(0x1f636),
Emojicon.fromCodePoint(0x1f607),
Emojicon.fromCodePoint(0x1f60f),
Emojicon.fromCodePoint(0x1f611),
Emojicon.fromCodePoint(0x1f472),
Emojicon.fromCodePoint(0x1f473),
Emojicon.fromCodePoint(0x1f46e),
Emojicon.fromCodePoint(0x1f477),
Emojicon.fromCodePoint(0x1f482),
Emojicon.fromCodePoint(0x1f476),
Emojicon.fromCodePoint(0x1f466),
Emojicon.fromCodePoint(0x1f467),
Emojicon.fromCodePoint(0x1f468),
Emojicon.fromCodePoint(0x1f469),
Emojicon.fromCodePoint(0x1f474),
Emojicon.fromCodePoint(0x1f475),
Emojicon.fromCodePoint(0x1f471),
Emojicon.fromCodePoint(0x1f47c),
Emojicon.fromCodePoint(0x1f478),
Emojicon.fromCodePoint(0x1f63a),
Emojicon.fromCodePoint(0x1f638),
Emojicon.fromCodePoint(0x1f63b),
Emojicon.fromCodePoint(0x1f63d),
Emojicon.fromCodePoint(0x1f63c),
Emojicon.fromCodePoint(0x1f640),
Emojicon.fromCodePoint(0x1f63f),
Emojicon.fromCodePoint(0x1f639),
Emojicon.fromCodePoint(0x1f63e),
Emojicon.fromCodePoint(0x1f479),
Emojicon.fromCodePoint(0x1f47a),
Emojicon.fromCodePoint(0x1f648),
Emojicon.fromCodePoint(0x1f649),
Emojicon.fromCodePoint(0x1f64a),
Emojicon.fromCodePoint(0x1f480),
Emojicon.fromCodePoint(0x1f47d),
Emojicon.fromCodePoint(0x1f4a9),
Emojicon.fromCodePoint(0x1f525),
Emojicon.fromChar((char) 0x2728),
Emojicon.fromCodePoint(0x1f31f),
Emojicon.fromCodePoint(0x1f4ab),
Emojicon.fromCodePoint(0x1f4a5),
Emojicon.fromCodePoint(0x1f4a2),
Emojicon.fromCodePoint(0x1f4a6),
Emojicon.fromCodePoint(0x1f4a7),
Emojicon.fromCodePoint(0x1f4a4),
Emojicon.fromCodePoint(0x1f4a8),
Emojicon.fromCodePoint(0x1f442),
Emojicon.fromCodePoint(0x1f440),
Emojicon.fromCodePoint(0x1f443),
Emojicon.fromCodePoint(0x1f445),
Emojicon.fromCodePoint(0x1f444),
Emojicon.fromCodePoint(0x1f44d),
Emojicon.fromCodePoint(0x1f44e),
Emojicon.fromCodePoint(0x1f44c),
Emojicon.fromCodePoint(0x1f44a),
Emojicon.fromChar((char) 0x270a),
Emojicon.fromChar((char) 0x270c),
Emojicon.fromCodePoint(0x1f44b),
Emojicon.fromChar((char) 0x270b),
Emojicon.fromCodePoint(0x1f450),
Emojicon.fromCodePoint(0x1f446),
Emojicon.fromCodePoint(0x1f447),
Emojicon.fromCodePoint(0x1f449),
Emojicon.fromCodePoint(0x1f448),
Emojicon.fromCodePoint(0x1f64c),
Emojicon.fromCodePoint(0x1f64f),
Emojicon.fromChar((char) 0x261d),
Emojicon.fromCodePoint(0x1f44f),
Emojicon.fromCodePoint(0x1f4aa),
Emojicon.fromCodePoint(0x1f6b6),
Emojicon.fromCodePoint(0x1f3c3),
Emojicon.fromCodePoint(0x1f483),
Emojicon.fromCodePoint(0x1f46b),
Emojicon.fromCodePoint(0x1f46a),
Emojicon.fromCodePoint(0x1f46c),
Emojicon.fromCodePoint(0x1f46d),
Emojicon.fromCodePoint(0x1f48f),
Emojicon.fromCodePoint(0x1f491),
Emojicon.fromCodePoint(0x1f46f),
Emojicon.fromCodePoint(0x1f646),
Emojicon.fromCodePoint(0x1f645),
Emojicon.fromCodePoint(0x1f481),
Emojicon.fromCodePoint(0x1f64b),
Emojicon.fromCodePoint(0x1f486),
Emojicon.fromCodePoint(0x1f487),
Emojicon.fromCodePoint(0x1f485),
Emojicon.fromCodePoint(0x1f470),
Emojicon.fromCodePoint(0x1f64e),
Emojicon.fromCodePoint(0x1f64d),
Emojicon.fromCodePoint(0x1f647),
Emojicon.fromCodePoint(0x1f3a9),
Emojicon.fromCodePoint(0x1f451),
Emojicon.fromCodePoint(0x1f452),
Emojicon.fromCodePoint(0x1f45f),
Emojicon.fromCodePoint(0x1f45e),
Emojicon.fromCodePoint(0x1f461),
Emojicon.fromCodePoint(0x1f460),
Emojicon.fromCodePoint(0x1f462),
Emojicon.fromCodePoint(0x1f455),
Emojicon.fromCodePoint(0x1f454),
Emojicon.fromCodePoint(0x1f45a),
Emojicon.fromCodePoint(0x1f457),
Emojicon.fromCodePoint(0x1f3bd),
Emojicon.fromCodePoint(0x1f456),
Emojicon.fromCodePoint(0x1f458),
Emojicon.fromCodePoint(0x1f459),
Emojicon.fromCodePoint(0x1f4bc),
Emojicon.fromCodePoint(0x1f45c),
Emojicon.fromCodePoint(0x1f45d),
Emojicon.fromCodePoint(0x1f45b),
Emojicon.fromCodePoint(0x1f453),
Emojicon.fromCodePoint(0x1f380),
Emojicon.fromCodePoint(0x1f302),
Emojicon.fromCodePoint(0x1f484),
Emojicon.fromCodePoint(0x1f49b),
Emojicon.fromCodePoint(0x1f499),
Emojicon.fromCodePoint(0x1f49c),
Emojicon.fromCodePoint(0x1f49a),
Emojicon.fromChar((char) 0x2764),
Emojicon.fromCodePoint(0x1f494),
Emojicon.fromCodePoint(0x1f497),
Emojicon.fromCodePoint(0x1f493),
Emojicon.fromCodePoint(0x1f495),
Emojicon.fromCodePoint(0x1f496),
Emojicon.fromCodePoint(0x1f49e),
Emojicon.fromCodePoint(0x1f498),
Emojicon.fromCodePoint(0x1f48c),
Emojicon.fromCodePoint(0x1f48b),
Emojicon.fromCodePoint(0x1f48d),
Emojicon.fromCodePoint(0x1f48e),
Emojicon.fromCodePoint(0x1f464),
Emojicon.fromCodePoint(0x1f465),
Emojicon.fromCodePoint(0x1f4ac),
Emojicon.fromCodePoint(0x1f463),
Emojicon.fromCodePoint(0x1f4ad),
};
}
/*
* Copyright 2014 Ankush Sachdeva
*
* 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.
*/
package github.ankushsachdeva.emojicon.emoji;
/**
* @author Hieu Rocker (rockerhieu@gmail.com)
*/
public class Places {
public static final Emojicon[] DATA = new Emojicon[]{
Emojicon.fromCodePoint(0x1f3e0),
Emojicon.fromCodePoint(0x1f3e1),
Emojicon.fromCodePoint(0x1f3eb),
Emojicon.fromCodePoint(0x1f3e2),
Emojicon.fromCodePoint(0x1f3e3),
Emojicon.fromCodePoint(0x1f3e5),
Emojicon.fromCodePoint(0x1f3e6),
Emojicon.fromCodePoint(0x1f3ea),
Emojicon.fromCodePoint(0x1f3e9),
Emojicon.fromCodePoint(0x1f3e8),
Emojicon.fromCodePoint(0x1f492),
Emojicon.fromChar((char) 0x26ea),
Emojicon.fromCodePoint(0x1f3ec),
Emojicon.fromCodePoint(0x1f3e4),
Emojicon.fromCodePoint(0x1f307),
Emojicon.fromCodePoint(0x1f306),
Emojicon.fromCodePoint(0x1f3ef),
Emojicon.fromCodePoint(0x1f3f0),
Emojicon.fromChar((char) 0x26fa),
Emojicon.fromCodePoint(0x1f3ed),
Emojicon.fromCodePoint(0x1f5fc),
Emojicon.fromCodePoint(0x1f5fe),
Emojicon.fromCodePoint(0x1f5fb),
Emojicon.fromCodePoint(0x1f304),
Emojicon.fromCodePoint(0x1f305),
Emojicon.fromCodePoint(0x1f303),
Emojicon.fromCodePoint(0x1f5fd),
Emojicon.fromCodePoint(0x1f309),
Emojicon.fromCodePoint(0x1f3a0),
Emojicon.fromCodePoint(0x1f3a1),
Emojicon.fromChar((char) 0x26f2),
Emojicon.fromCodePoint(0x1f3a2),
Emojicon.fromCodePoint(0x1f6a2),
Emojicon.fromChar((char) 0x26f5),
Emojicon.fromCodePoint(0x1f6a4),
Emojicon.fromCodePoint(0x1f6a3),
Emojicon.fromChar((char) 0x2693),
Emojicon.fromCodePoint(0x1f680),
Emojicon.fromChar((char) 0x2708),
Emojicon.fromCodePoint(0x1f4ba),
Emojicon.fromCodePoint(0x1f681),
Emojicon.fromCodePoint(0x1f682),
Emojicon.fromCodePoint(0x1f68a),
Emojicon.fromCodePoint(0x1f689),
Emojicon.fromCodePoint(0x1f69e),
Emojicon.fromCodePoint(0x1f686),
Emojicon.fromCodePoint(0x1f684),
Emojicon.fromCodePoint(0x1f685),
Emojicon.fromCodePoint(0x1f688),
Emojicon.fromCodePoint(0x1f687),
Emojicon.fromCodePoint(0x1f69d),
Emojicon.fromCodePoint(0x1f68b),
Emojicon.fromCodePoint(0x1f683),
Emojicon.fromCodePoint(0x1f68e),
Emojicon.fromCodePoint(0x1f68c),
Emojicon.fromCodePoint(0x1f68d),
Emojicon.fromCodePoint(0x1f699),
Emojicon.fromCodePoint(0x1f698),
Emojicon.fromCodePoint(0x1f697),
Emojicon.fromCodePoint(0x1f695),
Emojicon.fromCodePoint(0x1f696),
Emojicon.fromCodePoint(0x1f69b),
Emojicon.fromCodePoint(0x1f69a),
Emojicon.fromCodePoint(0x1f6a8),
Emojicon.fromCodePoint(0x1f693),
Emojicon.fromCodePoint(0x1f694),
Emojicon.fromCodePoint(0x1f692),
Emojicon.fromCodePoint(0x1f691),
Emojicon.fromCodePoint(0x1f690),
Emojicon.fromCodePoint(0x1f6b2),
Emojicon.fromCodePoint(0x1f6a1),
Emojicon.fromCodePoint(0x1f69f),
Emojicon.fromCodePoint(0x1f6a0),
Emojicon.fromCodePoint(0x1f69c),
Emojicon.fromCodePoint(0x1f488),
Emojicon.fromCodePoint(0x1f68f),
Emojicon.fromCodePoint(0x1f3ab),
Emojicon.fromCodePoint(0x1f6a6),
Emojicon.fromCodePoint(0x1f6a5),
Emojicon.fromChar((char) 0x26a0),
Emojicon.fromCodePoint(0x1f6a7),
Emojicon.fromCodePoint(0x1f530),
Emojicon.fromChar((char) 0x26fd),
Emojicon.fromCodePoint(0x1f3ee),
Emojicon.fromCodePoint(0x1f3b0),
Emojicon.fromChar((char) 0x2668),
Emojicon.fromCodePoint(0x1f5ff),
Emojicon.fromCodePoint(0x1f3aa),
Emojicon.fromCodePoint(0x1f3ad),
Emojicon.fromCodePoint(0x1f4cd),
Emojicon.fromCodePoint(0x1f6a9),
Emojicon.fromChars("\ud83c\uddef\ud83c\uddf5"),
Emojicon.fromChars("\ud83c\uddf0\ud83c\uddf7"),
Emojicon.fromChars("\ud83c\udde9\ud83c\uddea"),
Emojicon.fromChars("\ud83c\udde8\ud83c\uddf3"),
Emojicon.fromChars("\ud83c\uddfa\ud83c\uddf8"),
Emojicon.fromChars("\ud83c\uddeb\ud83c\uddf7"),
Emojicon.fromChars("\ud83c\uddea\ud83c\uddf8"),
Emojicon.fromChars("\ud83c\uddee\ud83c\uddf9"),
Emojicon.fromChars("\ud83c\uddf7\ud83c\uddfa"),
Emojicon.fromChars("\ud83c\uddec\ud83c\udde7"),
};
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment